From: Sungguk Na Date: Fri, 27 Nov 2020 08:40:20 +0000 (+0900) Subject: Imported Upstream version 5.9 X-Git-Tag: upstream/5.9^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c05744e3da6d9bc95d3404993f2e06bc0e109785;p=platform%2Fupstream%2Fstrace.git Imported Upstream version 5.9 Change-Id: I83bddf1df5402cf81551931148f4b34f0536a489 --- diff --git a/.strace.1.in.date b/.strace.1.in.date index 53f3c932..34c8ca46 100644 --- a/.strace.1.in.date +++ b/.strace.1.in.date @@ -1 +1 @@ -2019-03-17 +2020-09-23 diff --git a/.tarball-version b/.tarball-version index a75b92f1..95ee81a4 100644 --- a/.tarball-version +++ b/.tarball-version @@ -1 +1 @@ -5.1 +5.9 diff --git a/.version b/.version index a75b92f1..95ee81a4 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -5.1 +5.9 diff --git a/.year b/.year index 80ace6aa..e0fbadda 100644 --- a/.year +++ b/.year @@ -1 +1 @@ -2019 +2020 diff --git a/COPYING b/COPYING index 3c57e7f8..cb860431 100644 --- a/COPYING +++ b/COPYING @@ -4,7 +4,7 @@ Copyright (c) 1993 Ulrich Pegelow Copyright (c) 1995, 1996 Michael Elizabeth Chastain Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey Copyright (c) 1998-2001 Wichert Akkerman -Copyright (c) 2001-2019 The strace developers. +Copyright (c) 2001-2020 The strace developers. All rights reserved. strace is free software; you can redistribute it and/or modify it diff --git a/CREDITS b/CREDITS index 179a1320..5a43fb9a 100644 --- a/CREDITS +++ b/CREDITS @@ -16,14 +16,17 @@ strace-devel@lists.strace.io mailing list. Abhishek Tiwari Adrien Kunysz Alexey Brodkin + Alexey Gladkov Alexey Neyman Ali Polatel + Alistair Francis Anatoly Pugachev Anchit Jain Andi Kleen Andre McCurdy Andreas Schwab Andrew Guertin + Andrey Zax Angelo Castello Anton Blanchard Arkadiusz Miskiewicz @@ -34,9 +37,11 @@ strace-devel@lists.strace.io mailing list. Baruch Siach Ben Noordhuis Bernhard Reutner-Fischer + Bharath Vedartham Bo Kullmar Bryan Matsuo Bryce Gibson + Burkhard Kohl Cai Fei Carlos O'Donell Carmelo Amoroso @@ -45,14 +50,17 @@ strace-devel@lists.strace.io mailing list. Chris Dearman Chris Lamb Chris Metcalf + Chris Packham Chris Zankel Christian Neukirchen Christian Svensson Christopher Covington + Chunmei Xu D.J. Barrow DJ Delorie Damien Profeta Damir Shayhutdinov + Dan Horák Daniel P. Berrange David Daney David Mosberger-Tang @@ -77,6 +85,8 @@ strace-devel@lists.strace.io mailing list. Eugeniy Paltsev Ezequiel Garcia Fabien Siron + Fabrice Fontaine + Fanda Uchytil Fei Jie Felix Janda Fernando Luis Vazquez Cao @@ -109,10 +119,12 @@ strace-devel@lists.strace.io mailing list. James Hogan James Yang Jan Kratochvil + Jann Horn Janosch Frank JayRJoshi Jeff Law Jeff Mahoney + Jeremy Kerr Jian Zhen Jiri Slaby Joakim Bech @@ -129,6 +141,7 @@ strace-devel@lists.strace.io mailing list. Katerina Koukiou Keith Owens Keith Thompson + Kemeng Shi Khem Raj Kirill A. Shutemov Kyle McMartin @@ -141,6 +154,7 @@ strace-devel@lists.strace.io mailing list. Lubomir Rintel Luca Clementi Lupe Christoph + Ma Jun Maarten ter Huurne Mark Hills Mark Wielaard @@ -150,6 +164,7 @@ strace-devel@lists.strace.io mailing list. Matt Day Matthias Pfaller Max Filippov + Maxim Akhmedov Maxim Shchetynin Maxin B. John Md Haris Iqbal @@ -159,8 +174,10 @@ strace-devel@lists.strace.io mailing list. Michael Shigorin Michail Litvak Michal Ludvig + Michal Sekletar Michal Simek Mike Frysinger + Mike Gilbert Mike Stroyan Mikulas Patocka Miroslav Lichvar @@ -170,12 +187,15 @@ strace-devel@lists.strace.io mailing list. Nate Eldredge Nate Sammons Neil Campbell + Niklas Cathor Nikolay Marchuk Orion Poplawski Paolo Bonzini Patrik Jakobsson + Paul Chaignon Paul Mundt Pavel Machek + Pavel Zhukov Peter Jones Peter Zotov Philipp Marek @@ -183,12 +203,13 @@ strace-devel@lists.strace.io mailing list. Philippe Ombredanne Pierre Marsais Pádraig Brady - Quentin Monnet + Quentin Monnet Rajeev V. Pillai Ralf Baechle Randolph Chung Rasmus Villemoes Reuben Sumner + Rich Felker Richard Braakman Richard Henderson Richard Hirst @@ -200,6 +221,7 @@ strace-devel@lists.strace.io mailing list. Roland McGrath Rolf Eike Beer Romain Naour + Ruinland ChuanTzu Tsai Sami Farin Sandhya Bankar Scott Tsai @@ -215,16 +237,20 @@ strace-devel@lists.strace.io mailing list. Stanislav Brabec Stefan Sørensen Steve Bennett + Steve Langasek Steve McIntyre Steven Honeyman + Sven Schnelle Szabolcs Nagy Thanh Ma Thiemo Seufer Thomas Bogendoerfer Thomas De Schampheleire + Thomas Deutschmann Tim Yamin Timo Lindfors Tom Dyas + Tom Stellard Tommi Rantala Topi Miettinen Tuan Hoang @@ -233,6 +259,7 @@ strace-devel@lists.strace.io mailing list. Victor Krapivensky Vineet Gupta Vitaly Chaykovsky + Vladimir D. Seleznev Wang Chao Weichuan Yan Wichert Akkerman @@ -243,6 +270,7 @@ strace-devel@lists.strace.io mailing list. Zach Brown Zev Weiss Zhang Le - Zhibin Li <08826794brmt@gmail.com> + Zhibin Li Zubin Mithra + Ákos Uzonyi Марк Коренберг diff --git a/ChangeLog b/ChangeLog index cc7f2d19..514bcfca 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11075 @@ +2020-09-24 Dmitry V. Levin + + Prepare for 5.9 release. + * NEWS: Update for 5.9 release. + +2020-09-23 Dmitry V. Levin + + Update copyright headers. + Headers updated automatically using maint/update_copyright_years.sh + script. + +2020-09-23 Dmitry V. Levin + + Fix preprocessor indentation. + Indent the C preprocessor directives to reflect their nesting + using the following script: + + $ cppi -l $(git grep -El '^[[:space:]]*#[[:space:]]*(if|ifdef|ifndef|elif|else|endif|define|pragma)[[:space:]]' |grep -v '\.sh$') |while read f; do + cppi < "$f" > "$f".cppi; mv "$f".cppi "$f" + done + +2020-09-23 Gleb Fotengauer-Malinovskiy + + Update ioctl entries from linux v5.9. + * linux/32/ioctls_inc_align16.h: Update from linux v5.9-rc6 + using ioctls_gen.sh. + * linux/32/ioctls_inc_align32.h: Likewise. + * linux/32/ioctls_inc_align64.h: Likewise. + * linux/64/ioctls_inc.h: Likewise. + * linux/x32/ioctls_inc0.h: Likewise. + * NEWS: Mention this. + * tests/ioctl_v4l2.c (main): Skip conflicting ioctl command + VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES. + + maint: update for linux v5.9. + * maint/ioctls_gen.sh: Add arch//include/generated/uapi and + arch//include/generated directories to INCLUDES. + * maint/ioctls_sym.sh: Add workaround definitions of + __no_kasan_or_inline and __no_sanitize_or_inline macros. + +2020-09-23 Eugene Syromyatnikov + + strace.1.in: mention --seccomp-bpf in "A traced process runs slowly" bug + As it is worth mentioning here, probably. + + * strace.1.in (.SH BUGS): Refer to --seccomp-bpf option description in + "A traced process runs slowly" bug. + +2020-09-23 Eugene Syromyatnikov + + NEWS: provide a Fedora bug number for the --pidns-translation entry. + +2020-09-23 Eugene Syromyatnikov + + tee: use types/ directory for the type definitions header. + Also, switch ioctl_tee test to system header usage, to double-check + things. + + * tee.h: Rename to... + * types/tee.h: ...this. Remove "xlat/tee_ioctl_cmds.h", + "xlat/tee_ioctl_gen_caps.h", "xlat/tee_ioctl_impl_ids.h", + "xlat/tee_ioctl_login_types.h", "xlat/tee_ioctl_max_arg_size.h", + "xlat/tee_ioctl_origins.h", "xlat/tee_ioctl_optee_caps.h", + "xlat/tee_ioctl_param_attr_types.h", "xlat/tee_ioctl_shm_flags.h" + includes. Add header guard. + [!HAVE_STRUCT_TEE_IOCTL_BUF_DATA, !HAVE_STRUCT_TEE_IOCTL_CANCEL_ARG, + !HAVE_STRUCT_TEE_IOCTL_CLOSE_SESSION_ARG, + !HAVE_STRUCT_TEE_IOCTL_SHM_ALLOC_DATA, + !HAVE_STRUCT_TEE_IOCTL_SHM_REGISTER_FD_DATA, + !HAVE_STRUCT_TEE_IOCTL_SHM_REGISTER_DATA, + !HAVE_STRUCT_TEE_IOCTL_VERSION_DATA, !HAVE_STRUCT_TEE_IOCTL_PARAM, + !HAVE_STRUCT_TEE_IOCTL_INVOKE_ARG, !HAVE_STRUCT_TEE_IOCL_SUPP_RECV_ARG, + !HAVE_STRUCT_TEE_IOCL_SUPP_SEND_ARG, + !HAVE_STRUCT_TEE_IOCTL_OPEN_SESSION_ARG]: Remove ifdefs. + (struct tee_ioctl_buf_data): Change to... + (typedef struct_tee_ioctl_buf_data): ...this. + (struct tee_ioctl_cancel_arg): Change to... + (typedef struct_tee_ioctl_cancel_arg): ...this. + (struct tee_ioctl_close_session_arg): Change to... + (typedef struct_tee_ioctl_close_session_arg): ...this. + (struct tee_ioctl_shm_alloc_data): Change to... + (typedef struct_tee_ioctl_shm_alloc_data): ...this. + (struct tee_ioctl_shm_register_fd_data): Change to... + (typedef struct_tee_ioctl_shm_register_fd_data): ...this. + (struct tee_ioctl_shm_register_data): Change to... + (typedef struct_tee_ioctl_shm_register_data): ...this. + (struct tee_ioctl_version_data): Change to... + (typedef struct_tee_ioctl_version_data): ...this. + (struct tee_ioctl_param): Change to... + (typedef struct_tee_ioctl_param): ...this. + (struct tee_ioctl_invoke_arg): Change to... + (typedef struct_tee_ioctl_invoke_arg): ...this. Change params field + type from struct tee_ioctl_param to struct_tee_ioctl_param. + (struct tee_iocl_supp_recv_arg): Change to... + (typedef struct_tee_iocl_supp_recv_arg): ...this. Change params field + type from struct tee_ioctl_param to struct_tee_ioctl_param. + (struct tee_iocl_supp_send_arg): Change to... + (typedef struct_tee_iocl_supp_send_arg): ...this. Change params field + type from struct tee_ioctl_param to struct_tee_ioctl_param. + (struct tee_ioctl_open_session_arg): Change to... + (typedef struct_tee_ioctl_open_session_arg): ...this. Change params + field type from struct tee_ioctl_param to struct_tee_ioctl_param. + [TEE_IOCTL_PARAM_SIZE]: Move to tee.c. + * Makefile.am (libstrace_a_SOURCES): Remove tee.h. + * configure.ac (AC_CHECK_HEADERS([linux/tee.h])): Remove in favour of + auto-generated checks courtesy of types/tee.h. + * tee.c: Remove "tee.h" include. Add "types/tee.h", + "xlat/tee_ioctl_cmds.h" (under XLAT_MACROS_ONLY definition), + "xlat/tee_ioctl_gen_caps.h", "xlat/tee_ioctl_impl_ids.h", + "xlat/tee_ioctl_login_types.h", "xlat/tee_ioctl_max_arg_size.h", + "xlat/tee_ioctl_origins.h", "xlat/tee_ioctl_optee_caps.h", + "xlat/tee_ioctl_param_attr_types.h", "xlat/tee_ioctl_shm_flags.h" + includes. + [TEE_IOCTL_PARAM_SIZE]: Move from tee.h. + (tee_print_buf, tee_fetch_buf_data): Change the buf argument type + from struct tee_ioctl_buf_data to struct_tee_ioctl_buf_data. + (tee_print_param_fn): Change the param variable type from + struct tee_ioctl_param to struct_tee_ioctl_param. + (tee_print_params): Change the param_buffer variable type from + struct tee_ioctl_param to struct_tee_ioctl_param. + (tee_version): Change the version variable type from + struct tee_ioctl_version_data to struct_tee_ioctl_version_data. + (tee_open_session): Change the buf_data variable type from + struct_tee ioctl_buf_data to struct_tee_ioctl_buf_data. Change + the open_session variable type from struct tee_ioctl_open_session_arg + to struct_tee_ioctl_open_session_arg. + (tee_invoke): Change the buf_data variable type from + struct_tee ioctl_buf_data to struct_tee_ioctl_buf_data. Change + the invoke variable type from struct tee_ioctl_invoke_arg to + struct_tee_ioctl_invoke_arg. + (tee_cancel): Change the cancel variable type from + struct tee_ioctl_cancel_arg to struct_tee_ioctl_cancel_arg. + (tee_close_session): Change the close_session variable type from + struct tee_ioctl_close_session_arg to + struct_tee_ioctl_close_session_arg. + (tee_suppl_recv): Change the buf_data variable type from + struct_tee ioctl_buf_data to struct_tee_ioctl_buf_data. Change + the supp_recv variable type from struct tee_iocl_supp_recv_arg + to struct_tee_iocl_supp_recv_arg. + (tee_suppl_send): Change the buf_data variable type from + struct_tee ioctl_buf_data to struct_tee_ioctl_buf_data. Change + the supp_send variable type from struct tee_iocl_supp_send_arg + to struct_tee_iocl_supp_send_arg. + (tee_shm_alloc): Change the shm_alloc variable type from + struct tee_ioctl_shm_alloc_data to struct_tee_ioctl_shm_alloc_data. + (tee_shm_register_fd): Change the shm_register_fd variable type from + struct tee_ioctl_shm_register_fd_data to + struct_tee_ioctl_shm_register_fd_data. + (tee_shm_register): Change the shm_register variable type from + struct tee_ioctl_shm_register_data to + struct_tee_ioctl_shm_register_data. + * tests/ioctl_tee.c: Put the contents under HAVE_LINUX_TEE_H ifdef. + Remove "tee.h" include. Add include. + [!TEE_IOCTL_PARAM_ATTR_META] (TEE_IOCTL_PARAM_ATTR_META): New + definition. + [!HAVE_STRUCT_TEE_IOCTL_SHM_REGISTER_FD_DATA] (struct + tee_ioctl_shm_register_fd_data): New type definition. + [!HAVE_STRUCT_TEE_IOCTL_SHM_REGISTER_DATA] (struct + tee_ioctl_shm_register_data): Likewise. + [!TEE_IOC_SHM_REGISTER_FD] (TEE_IOC_SHM_REGISTER_FD): New definition. + [!TEE_IOC_SHM_REGISTER] (TEE_IOC_SHM_REGISTER): Likewise. + * xlat/tee_ioctl_cmds.in (TEE_IOC_VERSION): Change type in the _IOR + macro argument from struct tee_ioctl_version_data to + struct_tee_ioctl_version_data. + (TEE_IOC_SHM_ALLOC): Change the type in the _IOWR macro argument from + struct tee_ioctl_shm_alloc_data to struct_tee_ioctl_shm_alloc_data. + (TEE_IOC_OPEN_SESSION): Change the type in the _IOR macro argument from + struct tee_ioctl_buf_data to struct_tee_ioctl_buf_data. + (TEE_IOC_INVOKE): Change the type in the _IOR macro argument from + struct tee_ioctl_buf_data to struct_tee_ioctl_buf_data. + (TEE_IOC_CANCEL): Change the type in the _IOR macro argument from + struct tee_ioctl_cancel_arg to struct_tee_ioctl_cancel_arg. + (TEE_IOC_CLOSE_SESSION): Change the type in the _IOR macro argument + from struct tee_ioctl_close_session_arg + to struct_tee_ioctl_close_session_arg. + (TEE_IOC_SUPPL_RECV): Change the type in the _IOR macro argument + from struct tee_ioctl_buf_data to struct_tee_ioctl_buf_data. + (TEE_IOC_SUPPL_SEND): Change the type in the _IOR macro argument + from struct tee_ioctl_buf_data to struct_tee_ioctl_buf_data. + (TEE_IOC_SHM_REGISTER_FD): Change the type in the _IOWR macro argument + from struct tee_ioctl_shm_register_fd_data + to struct_tee_ioctl_shm_register_fd_data. + (TEE_IOC_SHM_REGISTER): Change the type in the _IOWR macro argument + from struct tee_ioctl_shm_register_data + to struct_tee_ioctl_shm_register_data. + +2020-09-23 Elvira Khabirova + + Implement decoding of TEE_* ioctls. + * tee.c: New file. + * tee.h: Likewise. + * Makefile.am (libstrace_a_SOURCES): Add them. + * configure.ac (AC_CHECK_HEADERS): Add linux/tee.h. + * defs.h (DECL_IOCTL): Add tee. + * ioctl.c (ioctl_decode): Add 0xa4 (tee) case. + * xlat/tee_ioctl_cmds.in: New file. + * xlat/tee_ioctl_gen_caps.in: Likewise. + * xlat/tee_ioctl_impl_ids.in: Likewise. + * xlat/tee_ioctl_login_types.in: Likewise. + * xlat/tee_ioctl_max_arg_size.in: Likewise. + * xlat/tee_ioctl_optee_caps.in: Likewise. + * xlat/tee_ioctl_origins.in: Likewise. + * xlat/tee_ioctl_param_attr_types.in: Likewise. + * xlat/tee_ioctl_shm_flags.in: Likewise. + * tests/gen_tests.in (ioctl_tee): New entry. + * tests/ioctl_tee.c: New file. + * tests/.gitignore: Add ioctl_tee. + * tests/pure_executables.list: Likewise. + * NEWS: Mention the change. + +2020-09-20 Dmitry V. Levin + + xlat: update KVM_* constants. + * xlat/kvm_cap.in (KVM_CAP_STEAL_TIME): New constant introduced by Linux + kernel commit v5.9-rc5~6^2~16^2~3. + +2020-09-19 Dmitry V. Levin + + semctl: decode struct arguments of IPC_* and SEM_* commands. + * ipc_semctl.c: New file. + * Makefile.am (libstrace_a_SOURCES): Add it. + * ipc_defs.h (NAME_OF_STRUCT_SEMID_DS): New macro. + * ipc_sem.c: Stop including "xlat/semctl_flags.h". + (SYS_FUNC(semctl)): Remove. + * tests/ipc_sem.c (str_ipc_info): New macro. + (print_semid_ds, print_sem_info): New functions. + (main): Use them to check decoding IPC_INFO, SEM_INFO, IPC_SET, + IPC_STAT, SEM_STAT, and SEM_STAT_ANY semctl syscall commands. + * NEWS: Mention this change. + +2020-09-19 Dmitry V. Levin + + tests: disable shmctl IPC_STAT test with a bogus address on glibc >= 2.32 + Starting with commit glibc-2.32~80, on every 32-bit architecture where + 32-bit time_t support is enabled, glibc tries to retrieve the data + provided in the third argument of shmctl call. This results to + segfaults inside glibc when shmctl is called with a bogus address. + + * tests/ipc_shm.c [GLIBC_PREREQ_GE(2, 32) && __TIMESIZE != 64] + (TEST_SHMCTL_BOGUS_ADDR): Define to 0. + (main): Conditionalize on TEST_SHMCTL_BOGUS_ADDR the shmctl IPC_STAT + invocation with a bogus address. + +2020-09-19 Dmitry V. Levin + + shmctl: decode some commands on entering syscall. + * ipc_shmctl.c (SYS_FUNC(shmctl)): Handle all commands except IPC_INFO, + IPC_STAT, SHM_INFO, SHM_STAT, and SHM_STAT_ANY on entering syscall. + + shmctl: decode struct shminfo argument of IPC_INFO command. + * ipc_defs.h (NAME_OF_STRUCT_SHMINFO): New macro. + * ipc_shmctl.c (struct_shm_ipc_info_t): New typedef. Mpersify it. + (print_ipc_info): New function. + (SYS_FUNC(shmctl)): Use it to decode struct shminfo argument + of IPC_INFO command. + * tests/ipc_shm.c (str_ipc_info): New macro. + (print_ipc_info): New function. + (main): Use it to check decoding of IPC_INFO command. + * NEWS: Mention this change. + + shmctl: decode struct shm_info argument of SHM_INFO command. + * ipc_shmctl.c (struct_shm_info_t): New typedef. Mpersify it. + (print_shm_info): New function. + (SYS_FUNC(shmctl)): Use it to decode struct shm_info argument + of SHM_INFO command. + * tests/ipc_shm.c (print_shm_info): New function. + (main): Use it to check decoding of SHM_INFO command. + * NEWS: Mention this change. + + shmctl: fix printing of struct shmid_ds argument of IPC_SET command. + * ipc_shmctl.c (print_shmid_ds) : Do not print + misleading ellipsis. + * tests/ipc_shm.c (main): Update expected output. + + shmctl: decode struct shmid_ds argument of SHM_STAT and SHM_STAT_ANY commands + * ipc_shmctl.c (print_shmid_ds): Handle SHM_STAT and SHM_STAT_ANY. + * tests/ipc_shm.c (print_shmid_ds): New function. + (main): Use it to update expected output. + * NEWS: Mention this change. + + shmctl: consistently use macros from print_fields.h. + * ipc_shmctl.c (key): Define. + (print_shmid_ds): Use PRINT_FIELD_U instead of tprintf. + + msgctl: decode some commands on entering syscall. + * ipc_msgctl.c (SYS_FUNC(msgctl)): Handle all commands except IPC_INFO, + IPC_STAT, MSG_INFO, MSG_STAT, and MSG_STAT_ANY on entering syscall. + + msgctl: decode struct msginfo argument of IPC_INFO and MSG_INFO commands + * ipc_msgctl.c (print_msginfo): New function. + (SYS_FUNC(msgctl)): Use it to decode struct msginfo argument of IPC_INFO + and MSG_INFO commands. + * tests/ipc_msg.c (print_msginfo): New function. + (main): Use it to check decoding of IPC_INFO and MSG_INFO commands. + * NEWS: Mention this change. + + msgctl: print struct msqid_ds.msg_qbytes of IPC_SET command. + * ipc_msgctl.c (print_msqid_ds) : Print + struct msqid_ds.msg_qbytes. + * tests/ipc_msg.c (main): Update expected output. + + msgctl: decode struct msqid_ds argument of MSG_STAT and MSG_STAT_ANY commands + * ipc_msgctl.c (print_msqid_ds): Handle MSG_STAT and MSG_STAT_ANY. + * tests/ipc_msg.c (print_msqid_ds): New function. + (main): Use it to update expected output. + * NEWS: Mention this change. + + msgctl: consistently use macros from print_fields.h. + * ipc_msgctl.c (key): Define. + (print_msqid_ds): Use PRINT_FIELD_U instead of tprintf. + +2020-09-18 Dmitry V. Levin + + ci: add a git status check. + * ci/run-build-and-tests.sh: Check that "git status" does not report + any differences or untracked files. + [$CHECK == coverage]: Remove ./codecov.bash after use. + * .gitignore: Add "/travis_wait_*.log". + + .gitignore: ignore files generated by gcov. + * .gitignore: Add *.gcov. + +2020-09-18 Elvira Khabirova + + xlat: fix file descriptor closing typo. + * xlat/gen.sh (gen_header): Replace 3>- with 3>&-. + + Fixes: v5.7~28 "xlat: generate m4 checks for enumerations" + +2020-09-14 Elvira Khabirova + + .gitignore: add missing files that should be ignored. + ar-lib is an autotools helper script. + tags, TAGS, cscope.* and ncscope.* are files generated by ctags and cscope, + source code analysers and navigation tools. + + * .gitignore: Add /ar-lib, /cscope.*, /ncscope.*, /tags and /TAGS. + +2020-09-12 Dmitry V. Levin + + tests/ipc_msg.c: disable TEST_MSGCTL_BOGUS_ADDR on glibc >= 2.32. + Starting with commit glibc-2.32~83, on every 32-bit architecture where + 32-bit time_t support is enabled, glibc tries to retrieve the data + provided in the third argument of msgctl call. This results to + segfaults inside glibc if TEST_MSGCTL_BOGUS_ADDR is enabled. + + * tests/ipc_msg.c [GLIBC_PREREQ_GE(2, 32) && __TIMESIZE != 64] + (TEST_MSGCTL_BOGUS_ADDR): Define to 0. + + Reported-by: Ruinland ChuanTzu Tsai + +2020-09-12 Dmitry V. Levin + + Introduce GLIBC_PREREQ_GE and GLIBC_PREREQ_LT macros. + * gcc_compat.h (GLIBC_PREREQ_GE, GLIBC_PREREQ_LT): New macros. + * tests/ipc_msg.c: Use GLIBC_PREREQ_LT instead of manual checking + for __GLIBC__ and __GLIBC_MINOR__. + * tests/readahead.c: Likewise. + +2020-09-06 Dmitry V. Levin + + ci: re-enable testing with the latest mainline kernel headers. + There should be no issues with v5.9-rc4. + This reverts commit 1c84f0b04d0fd8d37afd29a4c959fb8c863bcfdb. + + * .github/workflows/ci.yml (env): Remove KBRANCH. + * .gitlab-ci.yml (variables): Likewise. + * .travis.yml (env:global): Likewise. + +2020-09-06 Dmitry V. Levin + + types/v4l2.h: update definition of struct_v4l2_create_buffers. + * types/v4l2.h (struct_v4l2_create_buffers): Add "flags" field and + update "reserved" field to sync with changes introduced by Linux kernel + commit v5.9-rc1~94^2~295. + + xlat: update V4L2_FMT_FLAG_* constants. + * xlat/v4l2_format_description_flags.in + (V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL): New constant introduced by Linux + kernel commit v5.9-rc1~94^2~283. + * NEWS: Mention this change. + * tests/ioctl_v4l2-success.c (fmtdesc_flags): Update expected output. + + xlat: update RTPROT_* constants. + * xlat/routing_protocols.in (RTPROT_KEEPALIVED): New constant introduced + by Linux kernel commit v5.9-rc1~133^2~449. + * NEWS: Mention this change. + + xlat: update PTP_PEROUT_* constants. + * xlat/rtnl_neigh_attrs.in (PTP_PEROUT_DUTY_CYCLE): New constant + introduced by Linux kernel commit v5.9-rc1~133^2~199^2~2. + (PTP_PEROUT_PHASE): New constant introduced by Linux kernel commit + v5.9-rc1~133^2~199^2~1. + * NEWS: Mention this change. + + xlat: update NDA_* constants. + * xlat/rtnl_neigh_attrs.in (NDA_FDB_EXT_ATTRS): New constant introduced + by Linux kernel commit v5.9-rc1~133^2~430^2~2. + * NEWS: Mention this change. + + xlat: update KVM_* constants. + * xlat/kvm_cap.in (KVM_CAP_LAST_CPU): New constant introduced by Linux + kernel commit v5.9-rc1~121^2~108. + (KVM_CAP_SMALLER_MAXPHYADDR): New constant introduced by Linux kernel + commit v5.9-rc1~121^2~15. + (KVM_CAP_S390_DIAG318): New constant introduced by Linux kernel commit + v5.9-rc1~121^2^2. + * NEWS: Mention this change. + + xlat: update IORING_FEAT_* constants. + * xlat/uring_setup_features.in (IORING_FEAT_POLL_32BITS): New constant + introduced by Linux kernel commit v5.9-rc1~212^2~116. + * NEWS: Mention this change. + + xlat: update INET_DIAG_REQ_* constants. + * linux/inet_diag.h (INET_DIAG_REQ_SK_BPF_STORAGES): New constant + introduced by Linux kernel commit v5.7-rc1~146^2~287^2^2. + (INET_DIAG_REQ_PROTOCOL): New constant introduced by Linux kernel commit + v5.9-rc1~133^2~292^2~3. + * xlat/inet_diag_req_attrs.in: Likewise. + * NEWS: Mention this change. + + xlat: update IFLA_* constants. + * xlat/rtnl_link_attrs.in (IFLA_PROTO_DOWN_REASON): New constant + introduced by Linux kernel commit v5.9-rc1~133^2~77. + * NEWS: Mention this change. + + xlat: update IPV6_* constants. + * xlat/sock_ip_options.in (IPV6_RECVERR_RFC4884): New constant + introduced by Linux kernel commit v5.9-rc1~133^2~130^2. + * NEWS: Mention this change. + + xlat: update IP_* constants. + * xlat/sock_ip_options.in (IP_RECVERR_RFC4884): New constant introduced + by Linux kernel commit v5.9-rc1~133^2~200. + * NEWS: Mention this change. + + xlat: update FAN_* constants. + * xlat/fan_init_flags.in (FAN_REPORT_DIR_FID): New constant introduced + by Linux kernel commit v5.9-rc1~110^2~6. + (FAN_REPORT_NAME): New constant introduced by Linux kernel commit + v5.9-rc1~110^2~4. + * NEWS: Mention this change. + * tests/fanotify_init.c (main): Update expected output. + + xlat: update CAP_* constants. + * caps1.h (CAP_CHECKPOINT_RESTORE): New constant introduced + by Linux kernel commit v5.9-rc1~161^2~6. + * xlat/cap.in (CAP_CHECKPOINT_RESTORE): Likewise. + * xlat/cap_mask1.in (1< + + Implement decoding of close_range syscall. + Introduced by Linux kernel commit v5.9-rc1~160. + + * close_range.c: New file. + * Makefile.am (libstrace_a_SOURCES): Add it. + * configure.ac (AC_CHECK_HEADERS): Add linux/close_range.h. + * xlat/close_range_flags.in: New file. + * pathtrace.c (pathtrace_match_set): Handle SEN_close_range. + * linux/syscallent-common.h [BASE_NR + 436]: Wire up close_range. + * NEWS: Mention this change. + * tests/close_range.c: New file. + * tests/close_range-P.c: Likewise. + * tests/close_range-y.c: Likewise. + * tests/close_range-yy.c: Likewise. + * tests/gen_tests.in (close_range. close_range-P, close_range-y, + close_range-yy): New entries. + * tests/pure_executables.list: Add close_range, close_range-P, + close_range-y, and close_range-yy. + * tests/.gitignore: Likewise. + +2020-09-03 Eugene Syromyatnikov + + tests: reduce looping_threads iteration duration to 1/16th of TIMEOUT_DURATION + * tests/looping_threads.test (timeout_8): Rename to... + (timeout_16): ...this, reduce value by half. + Use $timeout_16 instead of $timeout_8. + + Complements: v5.7~4 "tests: increase default TIMEOUT_DURATION" + +2020-09-03 Eugene Syromyatnikov + Tom Stellard + + strace.spec.in: use %make_build/%make_install macros. + As suggested in [1][2]. + + [1] https://src.fedoraproject.org/fork/tstellar/rpms/strace/c/c7358b588cb5f2893dec3b7daa84e63d9389773a.patch + [2] https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro + + * strace.spec.in [?!__make] (%__make): New definition. + [?!__install] (%__install): Likewise. + [?!make_build] (%make_build): Likewise. + [?!make_install] (%make_install): Likewise. + (%build, %check): Use %make_build. + (%install): Use %make_install. + +2020-09-03 Eugene Syromyatnikov + + mpers_test.sh: check proper handling of sized integer types. + The commit v5.6~62 ("v4l2: always decode VIDIOC_*_EXT_CTRLS ioctl + commands") unraveled a possibility of buggy handling of sized integer + types in some libc implementations[1][2]. Add checks for these types + to mpers_test.sh to catch such issues early. + + [1] https://strace.io/logs/strace/2020-04-22#17477; + [2] https://lists.strace.io/pipermail/strace-devel/2020-August/010213.html + + * mpers_test.sh: Add checks for (u)int{8,16,32,64}_t types. + + Complements: v5.6~62 "v4l2: always decode VIDIOC_*_EXT_CTRLS ioctl commands" + +2020-08-25 Ákos Uzonyi + + Add tests for PID namespace translation. + * Makefile.am (CODE_COVERAGE_IGNORE_PATTERN): Add test directories. + * tests/.gitignore: Add new test executables. + * tests/Makefile.am (check_PROGRAMS): Add new test executables. + (DECODER_TESTS) Add new test files. + (libtests_a_SOURCES): Add trie_for_tests.c, xmalloc_for_tests.c. + * tests/gen_tests.in: Add new tests. + * tests/trie_test.c: New file. + * tests/trie_for_tests.c: New file. + * tests/xmalloc_for_tests.c: New file. + * tests/pidns-cache.c: New file. + * tests/pidns-cache.test: New file. + * tests/fcntl--pidns-translation.c: New file. + * tests/fcntl64--pidns-translation.c: New file. + * tests/fork--pidns-translation.awk: New file. + * tests/fork--pidns-translation.c: New file. + * tests/fork--pidns-translation.test: New file. + * tests/getpgrp--pidns-translation.c: New file. + * tests/getpid--pidns-translation.c: New file. + * tests/getsid--pidns-translation.c: New file. + * tests/gettid--pidns-translation.c: New file. + * tests/gettid--pidns-translation.test: New file. + * tests/ioctl_block--pidns-translation.c: New file. + * tests/ioctl_block--pidns-translation.test: New file. + * tests/ioprio--pidns-translation.c: New file. + * tests/kill--pidns-translation.c: New file. + * tests/migrate_pages--pidns-translation.c: New file. + * tests/move_pages--pidns-translation.c: New file. + * tests/net-sockaddr--pidns-translation.c: New file. + * tests/netlink_audit--pidns-translation.c: New file. + * tests/netlink_audit--pidns-translation.test: New file. + * tests/pidfd_open--pidns-translation.c: New file. + * tests/pidfd_send_signal--pidns-translation.c: New file. + * tests/prlimit64--pidns-translation.c: New file. + * tests/process_vm_readv--pidns-translation.c: New file. + * tests/process_vm_writev--pidns-translation.c: New file. + * tests/rt_sigqueueinfo--pidns-translation.c: New file. + * tests/rt_tgsigqueueinfo--pidns-translation.c: New file. + * tests/sched_xetaffinity--pidns-translation.c: New file. + * tests/sched_xetattr--pidns-translation.c: New file. + * tests/sched_xetparam--pidns-translation.c: New file. + * tests/sched_xetscheduler--pidns-translation.c: New file. + * tests/signal_receive--pidns-translation.c: New file. + * tests/so_peercred--pidns-translation.c: New file. + * tests/tkill--pidns-translation.c: New file. + * tests/tgkill--pidns-translation.c: New file. + * tests/xet_robust_list--pidns-translation.c: New file. + * tests/xetpgid--pidns-translation.c: New file. + * tests/xetpriority--pidns-translation.c: New file. + * tests/fcntl-common.c: Print PID translation string after PIDs. + * tests/fcntl.c: Likewise. + * tests/fcntl64.c: Likewise. + * tests/getpgrp.c: Likewise. + * tests/getpid.c: Likewise. + * tests/getsid.c: Likewise. + * tests/gettid.c: Likewise. + * tests/ioctl_block.c: Likewise. + * tests/ioprio.c: Likewise. + * tests/kcmp.c: Likewise. + * tests/kill.c: Likewise. + * tests/migrate_pages.c: Likewise. + * tests/move_pages.c: Likewise. + * tests/net-sockaddr.c: Likewise. + * tests/netlink_audit.c: Likewise. + * tests/pidfd_open.c: Likewise. + * tests/pidfd_send_signal.c: Likewise. + * tests/prlimit64.c: Likewise. + * tests/process_vm_readv_writev.c: Likewise. + * tests/rt_sigqueueinfo.c: Likewise. + * tests/rt_tgsigqueueinfo.c: Likewise. + * tests/sched_xetaffinity.c: Likewise. + * tests/sched_xetattr.c: Likewise. + * tests/sched_xetparam.c: Likewise. + * tests/sched_xetscheduler.c: Likewise. + * tests/signal_receive.c: Likewise. + * tests/so_peercred.c: Likewise. + * tests/tgkill.c: Likewise. + * tests/tkill.c: Likewise. + * tests/xet_robust_list.c: Likewise. + * tests/xetpgid.c: Likewise. + * tests/xetpriority.c: Likewise. + + Implement testing framework for pidns. + * tests/pidns.c: New file. + * tests/pidns.h: New file. + * tests/Makefile.am (libtests_a_SOURCES): Add pidns.c, pidns.h. + * tests/init.sh (test_pidns, test_pidns_run_strace): New functions. + + Use get_proc_pid for /proc paths. + * mmap_cache.c (mmap_cache_rebuild_if_invalid): Use proc pid instead of + tcp->pid for /proc path. + * util.c (getfdproto): Likewise. + (pidfd_get_pid): Likewise. + * pathtrace.c (getfdpath_pid): Likewise. + * strace.c (attach_tcb): Likewise. + + Use printpid in decoders. + * getpid.c: New file. + * Makefile.am (libstrace_a_SOURCES): Add it. + * linux/dummy.h (sys_getpid, sys_getppid, sys_gettid, + sys_setpgid, sys_setpgrp): Remove. + * util.c (printfd_pid_tracee_ns): Implement using translate_pid. + * defs.h (printnum_pid): New function definition. + (printfd_pid_tracee_ns): Update documentation + * util.c: (printnum_pid): New function. + * print_fields.h (PRINT_FIELD_TID): New macro. + (PRINT_FIELD_TGID): Likewise. + (PRINT_FIELD_PGID): Likewise. + (PRINT_FIELD_SID): Likewise. + * affinity.c: Print PIDs with printpid. + * block.c: Likewise. + * bpf.c: Likewise. + * capability.c: Likewise. + * clone.c: Likewise. + * fcntl.c: Likewise. + * get_robust_list.c: Likewise. + * ioprio.c: Likewise. + * kcmp.c: Likewise. + * msghdr.c: Likewise. + * net.c: Likewise. + * netlink.c: Likewise. + * numa.c: Likewise. + * pidfd_open.c: Likewise. + * printsiginfo.c: Likewise. + * process.c: Likewise. + * process_vm.c: Likewise. + * resource.c: Likewise. + * sched.c: Likewise. + * signal.c: Likewise. + * sockaddr.c: Likewise. + * wait.c: Likewise. + * kcmp.c (SYS_FUNC(kcmp)): Fix KCMP_FILE pid arguments. + * tests/kcmp.c (printpidfd): Print path if VERBOSE_FD. + (main): Use our real pid if real fds are used. + +2020-08-25 Ákos Uzonyi + + PID namespace translation support. + * defs.h (pidns_translation): New variable. + (tcb): Add pid_ns field. + (RVAL_MASK): Change value from 013 to 017. + (RVAL_TID, RVAL_SID, RVAL_TGID, RVAL_PGID): New definitions. + (pid_type): New enum. + (pidns_init, translate_pid, get_proc_pid, printpid, printpid_tgid_pgid): + New function declarations. + * largefile_wrappers.h (fstat_fd): New macro. + * pidns.c: New file. + * trie.c: New file. + * trie.h: New file. + * Makefile.am (libstrace_a_SOURCES): Add trie.c, trie.h, pidns.c. + * strace.c (pidns_translation): New variable. + (init): Add --pidns-translation option. + * syscall.c (syscall_exiting_trace): Handle RVAL_* return values. + * NEWS: Mention this. + * strace.1.in: Add description for new option. + + Co-Authored-by: Eugene Syromyatnikov + +2020-08-25 Ákos Uzonyi + + tests/mknod.c: add workaround for ppc bug in travis. + On ppc travis builds syscall(mknod) sometimes does not fail with EEXISTS + as expected, but returns successfully. This commit uses sprintrc for + errno printing, which handles successful return values too. + + * tests/mknod.c (main): Use sprintrc for printing errno. + +2020-08-21 Elvira Khabirova + + tests: check -n/--syscall-number option. + * tests/strace-n.c: New file. + * tests/gen_tests.in (strace-n): New entry. + * tests/pure_executables.list: Add strace-n. + * tests/.gitignore: Likewise. + + strace: add an option for printing syscall numbers. + * print_syscall_number.c: New file. + * Makefile.am (libstrace_a_SOURCES): Add it. + * defs.h (struct tcb): Add true_scno field. + (print_syscall_number): New function declaration. + * strace.c: Add -n/--syscall-number option. + (printleader): Call print_syscall_number. + * syscall.c (get_scno): Assign tcp->true_scno. + * tests/options-syntax.test: Check with -c/--summary-only. + * strace.1.in: Document new option. + * NEWS: Mention the new option. + +2020-08-06 Dmitry V. Levin + + Post-release administrivia. + * NEWS: Add a header line for the next release. + * debian/changelog.in: Add a changelog entry for 5.8-1. + * strace.spec.in: Likewise. + + Prepare for 5.8 release. + * NEWS: Update for 5.8 release. + +2020-08-04 Dmitry V. Levin + + ci: use kernel headers from Linux kernel v5.8. + When Linux kernel merge window opens, changes of all sorts start to pour + down, breaking UAPI in various ways. This does not work for strace, + we need a stable UAPI. + + * .github/workflows/ci.yml (env): Add KBRANCH. + * .gitlab-ci.yml (variables): Likewise. + * .travis.yml (env:global): Likewise. + +2020-08-03 Dmitry V. Levin + + Update copyright headers. + Headers updated automatically using maint/update_copyright_years.sh + script. + +2020-08-01 Dmitry V. Levin + + tests: check decoding of tgkill syscall. + * tests/tgkill.c: New file. + * tests/gen_tests.in (tgkill): New entry. + * tests/pure_executables.list: Add tgkill. + * tests/.gitignore: Likewise. + + tests: check decoding of tkill syscall. + * tests/tkill.c: New file. + * tests/gen_tests.in (tkill): New entry. + * tests/pure_executables.list: Add tkill. + * tests/.gitignore: Likewise. + +2020-08-01 Ákos Uzonyi + + Introduce SYS_FUNC(tkill) + This is going to be needed to implement pidns support + in tkill syscall decoder. + + syscallent*.h files are updated automatically by: + git grep -l 'SEN(kill).*"tkill"' | + xargs sed -i '/"tkill"/ s/SEN(kill)/SEN(tkill)/' + + * signal.c (SYS_FUNC(tkill)): New syscall decoder. + * linux/32/syscallent.h: Use SEN(tkill) for "tkill" syscall. + * 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/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. + +2020-08-01 Ákos Uzonyi + + Add "struct tcb *" parameters to various functions. + This is going to be needed to implement pidns support. + + * defs.h (print_sockaddr): Add a "struct tcb *" parameter. + * printsiginfo.h (printsiginfo): Likewise. + * fcntl.c (print_struct_flock64): Likewise. All callers updated. + * print_fields.h (PRINT_FIELD_SOCKADDR): Likewise. All callers updated. + * printsiginfo.c (printsigsource, print_si_info, printsiginfo): Likewise. + All callers updated. + * sockaddr.c (print_sockaddr_data_un, print_sockaddr_data_in, + print_sockaddr_data_in6, print_sockaddr_data_ax25, + print_sockaddr_data_ipx, print_sockaddr_data_x25, + print_sockaddr_data_nl, print_sockaddr_data_ll, + print_sockaddr_data_bt, sockaddr_printer, print_sockaddr): Likewise. + All callers updated. + +2020-07-30 Dmitry V. Levin + + Use tprints instead of tprintf in a few more places. + * bpf.c (BPF_PROG_LOAD, BPF_OBJ_PIN, BPF_OBJ_GET_INFO_BY_FD, + BPF_RAW_TRACEPOINT_OPEN, BPF_TASK_FD_QUERY, BPF_MAP_LOOKUP_BATCH, + BPF_MAP_UPDATE_BATCH, BPF_MAP_DELETE_BATCH): Replace tprintf + with tprints for printing strings without format specifiers. + * btrfs.c (btrfs_ioctl): Likewise. + * ioctl.c (evdev_decode_number): Likewise. + * perf_ioctl.c (perf_ioctl): Likewise. + * rtnl_addr.c (decode_ifa_cacheinfo): Likewise. + * v4l2.c (print_v4l2_capability, print_v4l2_requestbuffers, + print_v4l2_streamparm): Likewise. + +2020-07-24 Janosch Frank + + s390x: sthyi: Fix section size requirement and error. + Some old z/VM instances report only 40 bytes for the partition + section, as they don't report the last three struct members. + + Let's lower the size check of that section to 40 to accommodate them. + + Also we expect a section to be at least x bytes, so we should make + that clear in the error message. + + Reviewed-by: Eugene Syromyatnikov + +2020-07-21 Ákos Uzonyi + + Remove tcb parameter of read_int_from_file. + * defs.h (read_int_from_file): Remove tcb parameter. + * util.c (read_int_from_file): Likewise. + * msghdr.c (get_optmem_max): Remove tcb parameter of read_int_from_file. + +2020-07-18 Dmitry V. Levin + + Consistently print process ids as signed integers. + * block.c (block_ioctl): Print struct_blk_user_trace_setup.pid using + PRINT_FIELD_D instead of PRINT_FIELD_U. + * bpf.c (BPF_TASK_FD_QUERY): Print task_fd_query.pid using PRINT_FIELD_D + instead of PRINT_FIELD_U. + * ipc_msgctl.c (print_msqid_ds): Print msqid_ds.msg_lspid + and msqid_ds.msg_lrpid using PRINT_FIELD_D. + * ipc_shmctl.c (print_shmid_ds): Print shmid_ds.shm_cpid and shm_lpid + using PRINT_FIELD_D. + * msghdr.c (print_scm_creds): Print ucred.pid using PRINT_FIELD_D + instead of PRINT_FIELD_U. + * netlink.c (print_nlmsghdr): Print nlmsghdr.nlmsg_pid using %d format + instead of %u. + * tests/bpf.c (BPF_TASK_FD_QUERY_checks): Update expected output. + * tests/ioctl_block.c (main): Update expected output. + * tests/ipc_msg.c (main): Likewise. + * tests/ipc_shm.c (main): Likewise. + * tests/net-yy-netlink.c (main): Likewise. + * tests/netlink_protocol.c (test_nlmsgerr): Likewise. + + Introduce PRINT_FIELD_NUMERIC_UMODE_T. + * print_fields.h (PRINT_FIELD_NUMERIC_UMODE_T): New macro. + * ipc_msgctl.c (print_msqid_ds): Use it instead of print_numeric_umode_t. + * ipc_shmctl.c (print_shmid_ds): Likewise. + * open.c (print_open_how): Use it instead of print_numeric_ll_umode_t. + + Fix printing of syscall return value in octal mode. + * defs.h (print_numeric_long_umask): Remove. + * printmode.c (print_numeric_long_umask): Likewise. + * syscall.c (syscall_exiting_trace) : Fix printing + of tcp->u_rval when sizeof(tcp->u_rval) > sizeof(long) or when + sizeof(tcp->u_rval) > current_klongsize. + + Rename print_numeric_umode_t_64 to print_numeric_ll_umode_t. + * printmode.c (print_numeric_umode_t_64): Rename + to print_numeric_ll_umode_t, change the type of its argument + to unsigned long long. + * defs.h: Likewise. + * open.c (print_open_how): Use print_numeric_ll_umode_t instead of + print_numeric_umode_t_64. + +2020-07-17 Dmitry V. Levin + + Use PRINT_FIELD_UID instead of printuid where appropriate. + * ipc_msgctl.c: Include "print_fields.h". + (print_msqid_ds): Use PRINT_FIELD_UID instead of printuid. + * ipc_shmctl.c: Include "print_fields.h". + (print_shmid_ds): Use PRINT_FIELD_UID instead of printuid. + * statx.c (SYS_FUNC(statx)): Use PRINT_FIELD_UID instead of printuid. + + printsiginfo: fix printing of siginfo_t.si_pid and siginfo_t.si_uid. + * printsiginfo.c (printsigsource): Print siginfo_t.si_pid using + PRINT_FIELD_D, print siginfo_t.si_uid using PRINT_FIELD_UID. + * tests/clone_ptrace.c (main): Update expected output. + * tests/orphaned_process_group.c (main): Likewise. + * tests/pidfd_send_signal.c (main): Likewise. + * tests/ptrace.c (test_peeksiginfo): Likewise. + * tests/rt_sigqueueinfo.c (main): Likewise. + * tests/rt_tgsigqueueinfo.c (main): Likewise. + * tests/siginfo.c (main): Likewise. + * tests/waitid.c (sprint_siginfo): Likewise. + + statx: use PRINT_FIELD_FLAGS. + * statx.c (SYS_FUNC(statx)): Use PRINT_FIELD_FLAGS instead of + printflags. + +2020-07-17 Ákos Uzonyi + + kcmp: fix KCMP_FILE decoding. + * kcmp.c (SYS_FUNC(kcmp)): Fix KCMP_FILE pid arguments. + + Fixes: v4.20~66 ("kcmp: output fds using a separate function") + +2020-07-13 Dmitry V. Levin + + fcntl: use print_fields.h macros. + * fcntl.c: Include "print_fields.h". + (print_struct_flock64, print_f_owner_ex): Use PRINT_FIELD_* macros + from print_fields.h. + + evdev_mpers: use print_fields.h macros. + * evdev_mpers.c: Include "print_fields.h". + (decode_envelope, ff_effect_ioctl): Use PRINT_FIELD_* macros + from print_fields.h. + * tests/ioctl_evdev.c (print_ffe_common): Update expected output. + +2020-07-12 Dmitry V. Levin + + ustat: use print_fields.h macros. + * ustat.c: Include "print_fields.h". + (SYS_FUNC(ustat)): Use PRINT_FIELD_* macros from print_fields.h. + + file_ioctl: use print_fields.h macros. + * file_ioctl.c: Include "print_fields.h". + (print_file_dedupe_range_info, print_fiemap_extent, file_ioctl): Use + PRINT_FIELD_* macros from print_fields.h. + + evdev: use print_fields.h macros. + * evdev.c (abs_ioctl, keycode_V2_ioctl): Use PRINT_FIELD_* macros + from print_fields.h. + + evdev: fix formatting of struct input_id. + * evdev.c (getid_ioctl): Use PRINT_FIELD_U. + * tests/ioctl_evdev.c (main): Update expected output. + + btrfs: use PRINT_FIELD_X_ARRAY. + * types/btrfs.h: New file. + * btrfs.c: Include "types/btrfs.h". + (btrfs_ioctl): Use struct_btrfs_ioctl_logical_ino_args and + PRINT_FIELD_X_ARRAY. + * configure.ac (AC_CHECK_MEMBERS): Remove + struct btrfs_ioctl_search_args_v2.buf_size and + struct btrfs_ioctl_logical_ino_args.flags. + +2020-07-10 Dmitry V. Levin + + travis: reintroduce ppc64le and s390x builds. + Let's give travis another chance. + This reverts commits 86a53f791ad34a825b8633eb0272d954647ce705 + and 36f32a255db09886f7f9ba08ec712b8742f0c312. + + * .travis.yml (arch: ppc64le, arch: s390x): New entries. + +2020-07-10 Dmitry V. Levin + + README.md: migrate from travis-ci.org to travis-ci.com. + +2020-07-08 Dmitry V. Levin + + evdev: fix formatting of struct input_keymap_entry.scancode. + * evdev.c (keycode_V2_ioctl): Use PRINT_FIELD_X_ARRAY. + * tests/ioctl_evdev.c (main): Update expected output. + + x86_64/arch_kvm: use PRINT_FIELD_X_ARRAY. + * linux/x86_64/arch_kvm.c (arch_print_kvm_sregs): Use PRINT_FIELD_X_ARRAY. + + loop: implement decoding of LOOP_CONFIGURE ioctl command. + * types/loop.h: New file. + * loop.c: Include it instead of and . + (ecode_loop_config): New function. + (loop_ioctl): Use it to decode LOOP_CONFIGURE ioctl command. + * NEWS: Mention this change. + * tests/ioctl_loop.c: Check it. + +2020-07-08 Dmitry V. Levin + + loop: factor out print_loop_info64. + It is going to be used to implement LOOP_CONFIGURE decoding. + + * loop.c (print_loop_info64): New function. + (decode_loop_info64): Use it. + +2020-07-08 Dmitry V. Levin + + loop: use print_fields.h macros. + * loop.c (decode_loop_info, decode_loop_info64): Use PRINT_FIELD_* + macros from print_fields.h. + + print_fields: introduce PRINT_FIELD_U_ARRAY and PRINT_FIELD_X_ARRAY. + * print_fields.h: Include "static_assert.h". + (PRINT_FIELD_UINT_ARRAY, PRINT_FIELD_U_ARRAY, PRINT_FIELD_X_ARRAY): + New macros. + (PRINT_FIELD_COOKIE): Rewrite using PRINT_FIELD_U_ARRAY. + +2020-07-06 Gleb Fotengauer-Malinovskiy + + Update ioctl entries from linux v5.8. + * linux/32/ioctls_inc_align16.h: Update from linux v5.8-rc4 + using ioctls_gen.sh. + * linux/32/ioctls_inc_align32.h: Likewise. + * linux/32/ioctls_inc_align64.h: Likewise. + * linux/64/ioctls_inc.h: Likewise. + * linux/x32/ioctls_inc0.h: Likewise. + * linux/powerpc/ioctls_arch0.h: Likewise. + * NEWS: Mention this. + * tests/ioctl_loop.c (main): Update. + +2020-07-04 Dmitry V. Levin + + Implement decoding of faccessat2 syscall. + Introduced by Linux kernel commit v5.8-rc1~203^2. + + * xlat/faccessat_flags.in: New file. + * access.c: Include "xlat/faccessat_flags.h". + (decode_access): Change return type to void. + (SYS_FUNC(access)): Return RVAL_DECODED. + (decode_faccessat): New function. + (SYS_FUNC(faccessat)): Use it. + (SYS_FUNC(faccessat2)): New function. + * pathtrace.c (pathtrace_match_set): Handle SEN_faccessat2. + * linux/syscallent-common.h [BASE_NR + 439]: Wire up faccessat2. + * NEWS: Mention this change. + * tests/faccessat2.c: New file. + * tests/faccessat2-P.c: Likewise. + * tests/faccessat2-y.c: Likewise. + * tests/faccessat2-yy.c: Likewise. + * tests/faccessat2.test: New test. + * tests/Makefile.am (DECODER_TESTS): Add faccessat2.test. + * tests/gen_tests.in (faccessat2-P, faccessat2-y, faccessat2-yy): New + entries. + * tests/pure_executables.list: Add faccessat2, faccessat2-P, + faccessat2-y, and faccessat2-yy. + * tests/.gitignore: Likewise. + +2020-07-04 Dmitry V. Levin + + xlat: rename access_flags to access_modes. + Since faccessat2 syscall has both "mode" and "flags" arguments, + rename access_flags to access_modes to avoid confusion. + + * xlat/access_flags.in: Rename to ... + * xlat/access_modes.in: ... this file, add fallback definitions. + (EFF_ONLY_OK, EX_OK): Remove non-Linux constants. + * access.c: Include "xlat/access_modes.h" instead of + "xlat/access_flags.h". + (decode_access): Replace access_flags woth access_modes. + +2020-07-04 Dmitry V. Levin + + tests: check decoding of faccessat syscall in -P, -y, and -yy modes. + * tests/faccessat.c: Rewrite. + * tests/faccessat-P.c: New file. + * tests/faccessat-y.c: Likewise. + * tests/faccessat-yy.c: Likewise. + * tests/faccessat.test: New test. + * tests/Makefile.am (DECODER_TESTS): Add faccessat.test. + * tests/gen_tests.in (faccessat): Remove. + (faccessat-P, faccessat-y, faccessat-yy): New entries. + * tests/pure_executables.list: Add faccessat-P, faccessat-y, + and faccessat-yy. + * tests/.gitignore: Likewise. + +2020-06-30 Dmitry V. Levin + + xlat: update BPF_* constants. + * xlat/bpf_attach_type.in (BPF_TRACE_ITER): New constant introduced + by Linux kernel commit v5.8-rc1~165^2~185^2~16^2~19. + (BPF_CGROUP_INET4_GETPEERNAME, BPF_CGROUP_INET6_GETPEERNAME, + BPF_CGROUP_INET4_GETSOCKNAME, BPF_CGROUP_INET6_GETSOCKNAME): New + constants introduced by Linux kernel commit v5.8-rc1~165^2~130^2~8^2~3.` + (BPF_XDP_DEVMAP): New constant introduced by Linux kernel commit + v5.8-rc1~165^2~6^2~9^2~3. + * xlat/bpf_commands.in (BPF_LINK_GET_FD_BY_ID, BPF_LINK_GET_NEXT_ID): + New constants introduced by Linux kernel commit + v5.8-rc1~165^2~343^2~16^2~7. + (BPF_ENABLE_STATS): New constant introduced by Linux kernel commit + v5.8-rc1~165^2~343^2~3^2~2. + (BPF_ITER_CREATE): New constant introduced by Linux kernel commit + v5.8-rc1~165^2~185^2~16^2~15. + * xlat/bpf_map_types.in (BPF_MAP_TYPE_RINGBUF): New constant introduced + by Linux kernel commit v5.8-rc1~165^2~6^2~12^2~4. + * NEWS: Mention this change. + * tests/bpf.c: Update. + +2020-06-29 Ákos Uzonyi + + .gitignore: add missing files that should be ignored. + * .gitignore: Add .dirstamp. + * tests/.gitignore: Add setpgrp-exec and stack-fcall-attach. + +2020-06-29 Dmitry V. Levin + + xlat: update STATX_* constants. + * xlat/statx_attrs.in (STATX_ATTR_MOUNT_ROOT): New constant introduced + by Linux kernel commit v5.8-rc1~203^2~4. + * xlat/statx_masks.in (STATX_MNT_ID): New constant introduced by Linux + kernel commit v5.8-rc1~203^2~5. + * NEWS: Mention this change. + * tests/xstatx.c (main): Update expected output. + + xlat: update TCA_* constants. + * xlat/rtnl_tc_attrs.in (TCA_DUMP_FLAGS): New constant introduced + by Linux kernel commit v5.8-rc1~165^2~183^2~3. + * rtnl_tc.c (tcmsg_nla_decoders): Add TCA_DUMP_FLAGS. + * NEWS: Mention this change. + + xlat: update RTC_* constants. + * xlat/rtc_vl_flags.in (RTC_VL_BACKUP_SWITCH): New constant introduced + by Linux kernel commit v5.8-rc1~100^2~23. + * NEWS: Mention this change. + +2020-06-28 Dmitry V. Levin + + xlat: update NDA_* constants. + * xlat/rtnl_neigh_attrs.in (NDA_NH_ID): New constant introduced by Linux + kernel commit v5.8-rc1~165^2~141^2~3. + * rtnl_neigh.c (ndmsg_nla_decoders): Add NDA_NH_ID. + * NEWS: Mention this change. + + xlat: update *_MAGIC constants. + * xlat/fsmagic.in (DEVMEM_MAGIC): New constant introduced by Linux + kernel commit v5.8-rc1~104^2~8. + * NEWS: Mention this change. + + xlat: update LOOP_* constants. + * xlat/loop_cmds.in (LOOP_CONFIGURE): New constant introduced by Linux + kernel commit v5.8-rc1~191^2~11. + * NEWS: Mention this change. + + xlat: update KVM_* constants. + * xlat/kvm_cap.in (KVM_CAP_HALT_POLL): New constant introduced by Linux + kernel commit v5.8-rc1~168^2~136. + (KVM_CAP_ASYNC_PF_INT): New constant introduced by Linux kernel commit + v5.8-rc1~168^2~14. + * NEWS: Mention this change. + + xlat: update KEYCTL_* constants. + * xlat/keyctl_commands.in (KEYCTL_WATCH_KEY): New constant introduced + by Linux kernel commit v5.8-rc1~22^2~6. + * xlat/keyctl_caps1.in (KEYCTL_CAPS1_NOTIFICATIONS): Likewise. + * NEWS: Mention this change. + + xlat: update IORING_* constants. + * xlat/uring_ops.in (IORING_OP_TEE): New constant introduced by Linux + kernel commit v5.8-rc1~190^2~14. + * tests/io_uring_register.c: Update expected output. + + xlat: update INET_DIAG_* constants. + * linux/inet_diag.h (INET_DIAG_MD5SIG): New constant introduced + by Linux kernel commit v4.14-rc1~130^2~39^2. + (INET_DIAG_ULP_INFO): New constant introduced by Linux kernel commit + v5.4-rc1~131^2~103^2~1. + (INET_DIAG_SK_BPF_STORAGES): New constant introduced by Linux kernel + commit v5.7-rc1~146^2~287^2^2. + (INET_DIAG_CGROUP_ID): New constant introduced by Linux kernel commit + v5.8-rc1~165^2~383^2~1. + (INET_DIAG_BC_CGROUP_COND): New constant introduced by Linux kernel + commit v5.8-rc1~165^2~383^2. + * xlat/inet_diag_attrs.in (INET_DIAG_MD5SIG, INET_DIAG_ULP_INFO, + INET_DIAG_SK_BPF_STORAGES, INET_DIAG_CGROUP_ID): Likewise. + * xlat/inet_diag_bytecodes.in (INET_DIAG_BC_CGROUP_COND): Likewise. + * xlat/inet_diag_extended_flags.in (1<<(INET_DIAG_MD5SIG-1), + 1<<(INET_DIAG_ULP_INFO-1), 1<<(INET_DIAG_SK_BPF_STORAGES-1), + 1<<(INET_DIAG_CGROUP_ID-1)): Likewise. + * NEWS: Mention this change. + + xlat: update ETH_* constants. + * xlat/ethernet_protocols.in (ETH_P_MRP): New constant introduced + by Linux kernel commit v5.8-rc1~165^2~412^2~10. + * NEWS: Mention this change. + + xlat: update CAP_* constants. + * caps1.h (CAP_PERFMON): New constant introduced by Linux kernel commit + v5.8-rc1~224^2~14^2~55. + (CAP_BPF): New constant introduced by Linux kernel commit + v5.8-rc1~165^2~181^2^2~2. + * xlat/cap.in (CAP_PERFMON, CAP_BPF): Likewise. + * xlat/cap_mask1.in (1< + + tests: workaround LTO in strace -k tests. + Link time optimization in gcc 10 became too smart, resulting to most + of function calls in strace -k tests being optimized out, + subsequently breaking these tests. + + Make the functions more complex to bypass unwanted side effects + of link time optimization in strace -k tests. + + * tests/stack-fcall.h: Include and "scno.h". + (COMPLEX_BODY): New macro. + * tests/stack-fcall-0.c (f0): Use it. + * tests/stack-fcall-1.c (f1): Likewise. + * tests/stack-fcall-2.c (f2): Likewise. + * tests/stack-fcall-3.c (f3): Likewise. Rewrite switch. + * tests/stack-fcall.c (main): Call f0 in a loop. + +2020-06-16 Ákos Uzonyi + + Modify %process class: trace syscalls associated with process lifecycle. + The description is rephrased as: + "Trace system calls associated with process lifecycle + (creation, exec, termination)." + + kill, tkill, tgkill, pidfd_send_signal and rt_sigqueueinfo are added, + arch_prctl and unshare are removed from the %process class. + + syscallent*.h files are updated automatically by: + find linux -name syscallent*.h -exec \ + sed -i -r -e ' + /(arch_prctl|unshare)/ { + s/(\{[^,]*,\t[^,]*)TP\|/\1/ + s/(\{[^,]*,\t[^,]*)\|TP/\1/ + s/(\{[^,]*,\t[^,]*)TP,/\10,/ + } + ' -e ' + /(kill|pidfd_send_signal|rt_sigqueueinfo)/ { + s/(\{[^,]*,\t[^0][^,]*)/\1|TP/ + s/(\{[^,]*,\s*)0/\1TP/ + } + ' {} + + + [ldv: document this change in NEWS.] + + * strace.1.in: Rephrase %process description. + * linux/32/syscallent.h: Add TP flag to *kill, pidfd_send_signal and + rt_sigqueueinfo; remove TP flag from arch_prctl and unshare. + * 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/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-compat.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/syscallent-common.h: Likewise. + * linux/x32/syscallent.h: Likewise. + * linux/x86_64/syscallent.h: Likewise. + * linux/xtensa/syscallent.h: Likewise. + * NEWS: Mention this change. + +2020-06-16 Ákos Uzonyi + + tests/inject-nf.test: replace getpid with geteuid. + Since we treat PIDs as signed integers, large values (>=2^31) will + cause overflow when we use printpid. + UIDs are treated as unsigned integers, so geteuid is a good alternative. + (getuid would be problematic, as it does not exists on alpha). + Also, on systems where geteuid32 exists, geteuid returns maximum 16 bit + values, so we have to use geteuid32 in this case. + + [ldv: geteuid syscall was introduced on Alpha by Linux kernel commit + v5.1-rc1~160^2~3^2~1, so this test will not work on old Alpha kernels.] + + * tests/inject-nf.c: Replace getpid with either geteuid32 or geteuid. + [__alpha__]: Remove. + [__NR_geteuid32]: New condition. + * tests/inject-nf.test (SYSCALL): Replace getpid with '/^geteuid(32)?$'. + Remove alpha workaround. + +2020-06-16 Dmitry V. Levin + + travis: remove s390x builds. + They are currently unusable, permanently failing without any reason + whatsoever. + + * .travis.yml (arch: s390x): Remove. + +2020-06-16 Dmitry V. Levin + + ci: re-enable testing with the latest mainline kernel headers. + There should be no issues with v5.8-rc1. + This reverts commit 734066585ba865740ab45651bc6e3e8ab249927f. + + * .github/workflows/ci.yml (env): Remove KBRANCH. + * .gitlab-ci.yml (variables): Likewise. + * .travis.yml (env:global): Likewise. + +2020-06-16 Chris Packham + Dmitry V. Levin + + io_uring: Add io_cqring_offset flags. + Add support for displaying struct io_cqring_offsets.flags introduced + by Linux kernel commits v5.8-rc1~190^2~22 and v5.8-rc1~190^2~21. + + * types/io_uring.h (struct_io_cqring_offsets): Replace resv array + with flags, resv1, and resv2 fields. + * xlat/uring_cqring_flags.in: New file. + * configure.ac (AC_CHECK_MEMBERS): Check struct io_cqring_offsets.flags. + * io_uring.c: Include "xlat/uring_cqring_flags.h". + (SYS_FUNC(io_uring_setup)): Replace printing of the resv array + of struct io_cqring_offsets with flags, resv1, and resv2 fields. + * tests/io_uring_setup.c: Check it. + + Resolves: https://github.com/strace/strace/issues/138 + +2020-06-16 Chris Packham + + io_uring: Remove struct io_cqring_offsets compile time asserts. + The generated types/check-io_uring.c already checks the kernel's struct + io_cqring_offsets for compatibility with the strace definition so + there's no need for manual checks. + + * io_uring.c [HAVE_STRUCT_IO_CQRING_OFFSETS]: Remove static_asserts. + +2020-06-16 Dmitry V. Levin + + types: skip field lines that start with comments. + This allows to exclude certain fields from type checks by placing + comments at the beginning of the corresponding lines. + + * types/find_last_type_fields.awk: Skip lines starting with spaces + followed by "/". + +2020-06-14 Dmitry V. Levin + + Add statx syscall to %fstat trace class. + statx syscall with AT_EMPTY_PATH flag is similar to newfstatat/fstatat64 + syscall with AT_EMPTY_PATH flag. + + * linux/32/syscallent.h (statx): Add TFST flag. + * linux/64/syscallent.h: Likewise. + * linux/alpha/syscallent.h: Likewise. + * linux/arm/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/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. + * strace.1.in (.SS Filtering): Document it. + * NEWS: Mention this fix. + * tests/trace_fstat.in (statx): New entry. + +2020-06-13 Ákos Uzonyi + + Move ilog* functions from util.c to defs.h. + * util.c (ILOG2_ITER_, ilog2_klong, ilog2_64, ilog2_32): Move ... + * defs.h: ... here. + + print_fields.h: add PRINT_FIELD_LEN macro. + * print_fields.h (PRINT_FIELD_LEN): New macro. + * net.c: (print_get_linger, print_get_ucred, print_tpacket_stats): + Rewrite using PRINT_FIELD_LEN. + +2020-06-10 Dmitry V. Levin + + Move make-dist and make-dsc scripts to maint/ + * make-dsc: Rename to maint/make-dsc. + * make-dist: Rename to maint/make-dist. + * maint/README-release: Update. + * dist/INSTALL: Likewise. + +2020-06-07 Sven Schnelle + + tests: clone3 might return EBADF with invalid cgroup. + Both on s390 and x86 linux-5.7 return EBADF when an invalid cgroup + is supplied, so add that to the list of possible return values. + + + * tests/clone3.c (main): Add EBADF to the list of possible + CLONE_INTO_CGROUP return values. + +2020-06-03 Dmitry V. Levin + + ci: use kernel headers from Linux kernel v5.7. + When Linux kernel merge window opens, changes of all sorts start to pour + down, breaking UAPI in various ways. This does not work for strace, + we need a stable UAPI. + + * .github/workflows/ci.yml (env): Add KBRANCH. + * .gitlab-ci.yml (variables): Likewise. + * .travis.yml (env:global): Likewise. + +2020-06-02 Dmitry V. Levin + + s390: use a more appropriate regset type. + * linux/s390/arch_regs.c (s390_regset): Change the type from + struct user_regs_struct to s390_regs, the latter is the subset of + struct user_regs_struct used by the kernel, it's also the type + used on s390x. + +2020-06-02 Steve Langasek + + tests/perf_event_open: avoid unaligned access on ARM. + The test suite already handles alignment requirements on POWER and + Sparc, add ARM to the list as well. Not all ARM environments raise + SIGBUS on unaligned access, but some do. + + * tests/perf_event_open.c (ATTR_REC) [ARM]: Use aligned access. + +2020-06-02 Dmitry V. Levin + + tests/wait4: invoke wait4 syscall directly instead of using libc wait4. + glibc-2.31.9000-312-g600f00b747ff42eb0aa778536d3ef602e8bcd550 introduced + a change in its wait4 implementation that makes it unsuitable for the + wait4 test. + + * tests/wait4.c: Include "kernel_rusage.h" instead of . + (sprint_rusage): Replace struct rusage with kernel_rusage_t, + cast member values from kernel_long_t to unsigned long long + using zero_extend_signed_to_ull, update format strings. + (k_wait4): New function. + (do_wait4, main): Use it instead of wait4. + +2020-06-02 Dmitry V. Levin + + Post-release administrivia. + * NEWS: Add a header line for the next release. + * debian/changelog.in: Add a changelog entry for 5.7-1. + * strace.spec.in: Likewise. + +2020-06-01 Dmitry V. Levin + + Prepare for 5.7 release. + * NEWS: Update for 5.7 release. + + .mailmap: add more entries to avoid duplication in CREDITS. + + Update copyright headers. + Headers updated automatically using maint/update_copyright_years.sh + script. + +2020-06-01 Gleb Fotengauer-Malinovskiy + + Update ioctl entries from linux v5.7. + * linux/32/ioctls_inc_align16.h: Update from linux v5.7 + using ioctls_gen.sh. + * linux/32/ioctls_inc_align32.h: Likewise. + * linux/32/ioctls_inc_align64.h: Likewise. + * linux/64/ioctls_inc.h: Likewise. + * linux/s390/ioctls_arch0.h: Likewise. + * linux/s390x/ioctls_arch0.h: Likewise. + * linux/x32/ioctls_inc0.h: Likewise. + * NEWS: Mention this. + +2020-05-31 Dmitry V. Levin + + tests: increase default TIMEOUT_DURATION. + * tests/init.sh (TIMEOUT_DURATION): Increase from 600 to 1500. + * .travis.yml (matrix): Remove TIMEOUT_DURATION. + +2020-05-31 Dmitry V. Levin + + configure.ac: robustify linux headers checks. + Some linux headers used to require other headers to be included + beforehand. While these linux headers are no longer insufficient + nowadays, configure checks need to handle old headers properly. + + * configure.ac (AC_CHECK_TYPES): Include before + . + (AC_CHECK_HEADERS): Include and + before linux/if_addr.h, linux/if_link.h, linux/neighbour.h. + Include before other linux headers. + +2020-05-31 Dmitry V. Levin + + Include before and + and used to require + to be included beforehand. + + * file_ioctl.c [HAVE_LINUX_FIEMAP_H]: Include + before . + * tests/file_ioctl.c: Likewise. + * tests/ioctl.c: Include before . + +2020-05-31 Dmitry V. Levin + + debian/rules: fix build-udeb/Makefile target. + * debian/rules (build-udeb/Makefile): Rename --without-stacktrace + to --disable-stacktrace. + +2020-05-30 Dmitry V. Levin + + Turn getfdpath and printfd functions into static inline wrappers. + * defs.h (printfd): Copy here from util.c, turn into an inline wrapper. + (getfdpath): Copy here from pathtrace.c, turn into an inline wrapper. + * pathtrace.c (getfdpath): Remove. + * util.c (printfd): Remove. + +2020-05-30 Ákos Uzonyi + + tests/pidfd_getfd.c: test decoding of targetfd. + * tests/pidfd_getfd.c (k_pidfd_getfd): Rename pid argument to pidfd. + (main): Test decoding of targetfd. + * tests/gen_tests.in: Add "-e signal=none" argument to pidfd_getfd + tests. + +2020-05-30 Ákos Uzonyi + + pidfd_getfd: fix decoder. + The decoder incorrectly assumed the first argument being a pid, + but actually it is a pidfd. + + The patch also makes the decoder be able to decode the targetfd + (-y and -yy options). + + * pidfd_getfd.c: Include "number_set.h". + (SYS_FUNC(pidfd_getfd)): Rewrite using pidfd_get_pid. + + Fixes: v5.6~46 "Implement pidfd_getfd syscall decoding" + +2020-05-30 Ákos Uzonyi + + util.c: add pidfd_get_pid. + * defs.h (pidfd_get_pid): New function declaration. + * utils.c (pidfd_get_pid): New function, returns the pid of a pidfd. + (printpidfd): Rewrite using pidfd_get_pid. + (printfd_pid): Change printpidfd arguments. + +2020-05-30 Ákos Uzonyi + + Rename print_pid_fd to printfd_pid_tracee_ns. + To avoid confusion with the new printfd_pid fucntion. + + defs.h (print_pid_fd): Rename to printfd_pid_tracee_ns. + util.c: Likewise. All users updated. + +2020-05-30 Ákos Uzonyi + + util.c: add printfd_pid. + defs.h (printfd_pid): New function definition. + util.c (printfd_pid): New function printing the fd of an other process. + (printfd): Rewritten using printfd_pid. + + pathtrace.c: add getfdpath_pid. + * defs.h (getfdpath_pid): New function definition. + * pathtrace.c (getfdpath_pid): New function, returns the path + associated with fd of the process with pid. + (getfdpath): Rewrite using getfdpath_pid. + +2020-05-30 Eugene Syromyatnikov + + xlat: annotate btrfs_compress_types with #enum. + * xlat/btrfs_compress_types.in: Add #enum, #include , + and #include + * configure.ac (AC_CHECK_DECL(BTRFS_COMPRESS_*)): Remove. + +2020-05-30 Eugene Syromyatnikov + + xlat: annotate rtnl_ifla_xdp_attached_mode with #enum. + And use proper checks in tests/nlattr_ifla_xdp.c. + + * xlat/rtnl_ifla_xdp_attached_mode.in: Add #enum, #include , + and #include annotations. + * tests/nlattr_ifla_xdp.c [!XDP_ATTACHED_NONE] (XDP_ATTACHED_NONE): + Remove. + [!XDP_ATTACHED_MULTI] (XDP_ATTACHED_MULTI): Remove. + [!HAVE_DECL_XDP_ATTACHED_NONE] (XDP_ATTACHED_NONE): New enum definition. + [!HAVE_DECL_XDP_ATTACHED_MULTI] (XDP_ATTACHED_MULTI): Likewise. + +2020-05-30 Eugene Syromyatnikov + + rtnl_link: support IFLA_XDP_EXPECTED_FD attribute decoding. + Introduced by Linux commit v5.7-rc1~146^2~10^2~13^2~3. + + * xlat/rtnl_ifla_xdp_attrs.in: Add #enum, #include , + and #include annotations. + (IFLA_XDP_EXPECTED_FD): New constant. + * rtnl_link.c (ifla_xdp_nla_decoders): Add [IFLA_XDP_EXPECTED_FD], set + value to decode_nla_fd. + * tests/nlattr_ifla_xdp-y.c: New file. + * tests/.gitignore: Add nlattr_ifla_xdp-y. + * tests/Makefile.am (check_PROGRAMS): Likewise. + * tests/gen_tests.in: Add nlattr_ifla_xdp-y test. + * tests/nlattr_ifla_xdp.c: Include "xlat/rtnl_ifla_xdp_attrs.h" under + XLAT_MACROS_ONLY definition. + (IFLA_XDP_FD, IFLA_XDP_ATTACHED, IFLA_XDP_PROG_ID, IFLA_XDP_DRV_PROG_ID, + IFLA_XDP_SKB_PROG_ID, IFLA_XDP_HW_PROG_ID): Remove. + [!FD9_PATH] (FD9_PATH): New macro, define to empty string. + (main): Add checks for IFLA_XDP_EXPECTED_FD. + +2020-05-30 Eugene Syromyatnikov + + tests: support -y mode for sockfd printing. + * tests/test_nlattr.h [!PRINT_SOCK] (PRINT_SOCK): New macro, define to 0. + (print_sockfd): New function. + (TEST_NLATTR_EX_): Call print_sockfd for sock fd printing. + + rtnl_tc_action: implement TCA_ACT_HW_STATS and TCA_ACT_USED_HW_STATS decoding + * xlat/rtnl_tca_act_hw_stats.in: New file. + * rtnl_tc_action.c: Include "xlat/rtnl_tca_act_hw_stats.h". + (decode_tca_act_hw_stats): New function. + (tcamsg_nla_decoders): Add [TCA_ACT_HW_STATS] + and [TCA_ACT_USED_HW_STATS], set them to decode_tca_act_hw_stats. + * tests/nlattr_tcamsg.c: Add checks, update expected output. + * xlat/rtnl_tc_action_attrs.in (TCA_ACT_HW_STATS): New constant, + introduced by Linux commit v5.7-rc1~146^2~230^2 and renamed in Linux + commit v5.7-rc1~146^2~101. + (TCA_ACT_USED_HW_STATS): New constant, introduced by Linux commit + v5.7-rc1~146^2~25^2. + + xlat: annotate rtnl_tca_stab_attrs with #enum. + * xlat/rtnl_tca_stab_attrs.in: Add #enum, #include , + #include . + * configure.ac (AC_CHECK_DECLS(TCA_STAB_DATA)): Remove. + + xlat: annotate rtnl_tca_stats_attrs with #enum. + * xlat/rtnl_tca_stats_attrs.in: Add #enum, #include . + * configure.ac (AC_CHECK_DECL(TCA_STATS_PKT64)): Remove. + + xlat: add #enum to v4l2 xlats. + * xlat/v4l2_buf_types.in: Add #enum, #include , #include + , #include , and #include + . + * xlat/v4l2_colorspaces.in: Likewise. + * xlat/v4l2_control_types.in: Likewise. + * xlat/v4l2_fields.in: Likewise. + * xlat/v4l2_framesize_types.in: Likewise. + * xlat/v4l2_memories.in: Likewise. + * xlat/v4l2_tuner_types.in: Likewise. + * configure.ac (AC_CHECK_DECL(V4L2_*)): Remove. + + xlat: annotate rtnl_link_attrs with #enum. + * xlat/rtnl_link_attrs.in: Add #enum, #include , #include + . + * configure.ac (AC_CHECK_DECL(IFLA_*)): Remove. + + xlat: annotate rtnl_tc_action_attrs with #enum. + * xlat/rtnl_tc_action_attrs.in: Add #enum, #include + * configure.ac (AC_CHECK_DECL(TCA_ACT_*)): Remove. + + xlat: annotate sysctl xlats with #enum. + * configure.ac (AC_CHECK_DECL(CTL_* KERN_* NET_* VM_*)): Remove. + * xlat/sysctl_kern.in: Add #enum, #include , #include + descriptors. + * xlat/sysctl_net.in: Likewise. + * xlat/sysctl_net_core.in: Likewise. + * xlat/sysctl_net_ipv4.in: Likewise. + * xlat/sysctl_net_ipv4_conf.in: Likewise. + * xlat/sysctl_net_ipv4_route.in: Likewise. + * xlat/sysctl_net_ipv6.in: Likewise. + * xlat/sysctl_net_ipv6_route.in: Likewise. + * xlat/sysctl_net_unix.in: Likewise. + * xlat/sysctl_root.in: Likewise. + * xlat/sysctl_vm.in: Likewise. + +2020-05-30 Eugene Syromyatnikov + + configure: annotate waitid_types with #enum. + This also syncs up the configure checks with the actual list of xlat + values. + + * xlat/waitid_types.in: Add #enum, #include , and #include + . + * configure.ac (AC_CHECK_DECL(P_*)): Remove. + + Complements: v5.4~82 "xlat: update waitid_types" + +2020-05-30 Eugene Syromyatnikov + + xlat: mark loop_flags_options as #enum. + * xlat/loop_flags_options.in: Add #enum and #include + descriptors. + * configure.ac (AC_CHECK_DECLS(LO_FLAGS_*)): Remove. + + xlat: generate m4 checks for enumerations. + * xlat/gen.sh (print_m4_record, gen_m4_entry): New functions. + (print_xlat_pair): Accept macro name in the third argument. + (print_xlat, print_xlat_pair): Call print_m4_record. + (cond_xlat): Pass $m to print_xlat_pair call. Set first_enum to 0. + (gen_header, gen_make, gen_git): Output the "generating ..." line + to stderr. + (gen_header): Get output_m4 as the fourth parameter, redirect fd 3 + to stdout, set enum to 1 if #enum is present and $output_m4 is set, + append #include argument to includes, generate $output_m4 is $enum + is set to 1, pass macro name to print_xlat_pair call, close fd 3. + (gen_git): Add st_check_enums.m4 and "/*.m4". + (main): Allow passing $output_m4 as the third argument, pass m4 file + name as the fourth argument to gen_header calls, pipe gen_header output + to gen_m4_entry in case of no-argument invocation, redirect gen_header + output to /dev/null in case of single-file invocation. + * Makefile.am (ACLOCAL_AMFLAGS): Add "-I xlat". + * configure.ac: Add st_CHECK_ENUMS. + +2020-05-30 Pierre Marsais + + configure.ac: remove unused checks. + Those unused configure.ac checks were found with the following commands: + + $ ./bootstrap + $ ./configure + $ grep '^#undef HAVE' config.h.in | cut -d' ' -f2 | sort >in_configure + $ find -iname '*.[ch]' -exec ifnames \{\} + | grep ^HAVE | \ + cut -d' ' -f1 | sort >in_source + $ comm -23 in_configure in_source | grep -vE '^HAVE_(UNION|STRUCT)' + + * configure.ac (AC_CHECK_FUNCS): Remove utimensat, the last user was + removed by commit 589cff6. Remove strsignal, the last user was + removed by commit 2c4fb90. + (AC_CHECK_HEADERS): Remove sys/conf.h, the last user was removed by + commit 811bda6. Remove inttypes.h, the last user was removed by commit + a6d91de. Remove stropts.h, the last user was removed by commit a56a81c. + (AC_CHECK_DECLS): remove P_PPID, P_PGID, P_SID, P_CID, P_UID, P_GID, + P_ALL, and P_LWPID, the last user was removed by commit 7da9d19. + +2020-05-29 Dmitry V. Levin + + maint: remove ioctl duplicates generated from linux/dma-buf.h. + Starting with commit v5.7-rc4~13^2~2^2~7, linux/dma-buf.h defines + DMA_BUF_SET_NAME_A and DMA_BUF_SET_NAME_B constants, and + DMA_BUF_SET_NAME equals to one of them. + + * maint/ioctls_sym.sh: Edit linux/dma-buf.h to omit DMA_BUF_SET_NAME. + +2020-05-29 Dmitry V. Levin + + maint: force time64 based definitions in linux/videodev2.h. + Starting with commit v5.6-rc1~93^2~103, linux/videodev2.h provides either + time32 or time64 based definitions depending on the flavour provided by + libc headers. While media/v4l2-ioctl.h already provides time32 based + definitions, linux/videodev2.h has to be twisted to force time64 based + definitions. + + * maint/ioctls_sym.sh: Edit linux/videodev2.h to force time64 based API. + +2020-05-29 Dmitry V. Levin + + xlat: add 1<<_UFFDIO_WRITEPROTECT to uffd_register_ioctl_flags. + * xlat/uffd_register_ioctl_flags.in (1<<_UFFDIO_WRITEPROTECT): New + constant introduced by Linux kernel commit v5.7-rc1~58^2~113. + +2020-05-28 Dmitry V. Levin + + Replace struct v4l2_event with a reliable alternative definition. + Since the definition of struct v4l2_event provided by the kernel depends + on the flavour of struct timespec provided by libc, we cannot use the + definition provided by the kernel, neither in the decoder nor in tests. + + * kernel_v4l2_types.h: Include "kernel_timespec.h". + (kernel_v4l2_event_t): New type. + * linux/32/ioctls_inc_align16.h (VIDIOC_DQEVENT): Update. + * linux/32/ioctls_inc_align32.h: Likewise. + * linux/32/ioctls_inc_align64.h: Likewise. + * xlat/v4l2_ioctl_cmds.in (VIDIOC_DQEVENT): Redefine. + * v4l2.c (kernel_v4l2_event_t): Mpersify. + +2020-05-28 Dmitry V. Levin + + v4l2: move redefinitions of v4l2_buffer based constants to xlat. + * kernel_v4l2_types.h: Include "types/v4l2.h". + * v4l2.c (VIDIOC_QUERYBUF, VIDIOC_QBUF, VIDIOC_DQBUF, + VIDIOC_PREPARE_BUF): Move redefinitions ... + * xlat/v4l2_ioctl_cmds.in: ... here. + * tests/ioctl_v4l2.c: Include "xlat/v4l2_ioctl_cmds.h" + in XLAT_MACROS_ONLY mode. + (VIDIOC_QUERYBUF, VIDIOC_QBUF, VIDIOC_DQBUF, VIDIOC_PREPARE_BUF): Remove. + (main): Check for HAVE_STRUCT_V4L2_FRMSIZEENUM, + HAVE_STRUCT_V4L2_FRMIVALENUM, and HAVE_STRUCT_V4L2_CREATE_BUFFERS + instead of VIDIOC_ENUM_FRAMESIZES, VIDIOC_ENUM_FRAMEINTERVALS, and + VIDIOC_CREATE_BUFS as the latter are always defined now. + * tests/ioctl_v4l2-success.c: Likewise. + +2020-05-27 Dmitry V. Levin + + Update NEWS. + + tests: robustify strace-D.test against personality mismatch issues. + * tests/print_ppid_tracerpid.c: New file. + * tests/.gitignore: Add print_ppid_tracerpid. + * tests/Makefile.am (check_PROGRAMS): Likewise. + * tests/strace-D.test: Use print_ppid_tracerpid instead of + "sed -r -n '/^(P|Tracer)Pid:/p' /proc/self/status" to avoid + unrelated issues caused by potential personality mismatch. + + tests: robustify pc.test against personality mismatch issues. + * tests/pc.test: Pass --quiet=attach,personality option to strace + to suppress some unrelated diagnostics that can confuse scripts + that parse strace output. + +2020-05-27 Dmitry V. Levin + + ci: re-enable testing with the latest mainline kernel headers. + There should be no issues with v5.7-rc7. + This reverts commit dc6a196f3a83103e8ba21b6809246d37356ffd3d. + + * .github/workflows/ci.yml (env): Remove KBRANCH. + * .gitlab-ci.yml (variables): Likewise. + * .travis.yml (env:global): Likewise. + +2020-05-27 Dmitry V. Levin + + clone: implement decoding of cgroup field in struct clone_args. + * configure.ac (AC_CHECK_MEMBERS): Check for struct clone_args.cgroup + instead of struct clone_args.set_tid_size. + * clone.c (struct strace_clone_args): Add cgroup field. + (SYS_FUNC(clone3)): Decode cgroup field of struct clone_args introduced + by Linux kernel commit v5.7-rc1~107^2~9. + * NEWS: Mention this change. + * tests/clone3.c: Check HAVE_STRUCT_CLONE_ARGS_CGROUP instead of + HAVE_STRUCT_CLONE_ARGS_SET_TID_SIZE. + (struct test_clone_args): Add cgroup field. + (main): Check decoding of cgroup field. + + xlat: update CLONE_* constants. + * xlat/clone3_flags.in (CLONE_INTO_CGROUP): New constant, introduced + by Linux kernel commit v5.7-rc1~107^2~9. + * NEWS: Mention this. + * tests/clone3.c (main): Update the expected output. + + x32: workaround syscall(2) limitations in PTRACE_GET_SYSCALL_INFO check. + * ptrace_syscall_info.c (test_ptrace_get_syscall_info) + [SIZEOF_KERNEL_LONG_T > SIZEOF_LONG]: Cast elements of info.entry.args + array to (unsigned long). + * tests/ptrace_syscall_info.c (test_entry): Likewise. + +2020-05-27 Dmitry V. Levin + + tests: silence compilation warnings in pc.test. + Silence the following compilation warnings produced by fresh gcc+glibc: + + In file included from pc.c:9: + pc.c: In function 'main': + pc.c:30:9: warning: argument 2 is null but the corresponding size argument 3 value is 16 [-Wnonnull] + 30 | assert(write(-1, NULL, 2 * sizeof(void *)) < 0); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + In file included from pc.c:12: + /usr/include/unistd.h:367:16: note: in a call to function 'write' declared with attribute 'read_only (2, 3)' + 367 | extern ssize_t write (int __fd, const void *__buf, size_t __n) __wur + | ^~~~~ + + * tests/pc.c (main): Use 8UL instead of NULL as a marker. + * tests/pc.test: Update expected output. + +2020-05-26 Dmitry V. Levin + + Replace struct v4l2_buffer with a reliable alternative definition. + Starting with Linux kernel commit v5.6-rc1~93^2~102, the definition + of struct v4l2_buffer provided by the kernel depends on the flavour + of struct timeval provided by libc. This effectively means that we + cannot use the definition provided by the kernel, neither in the decoder + nor in tests. + + * kernel_v4l2_types.h: New file. + * Makefile.am (libstrace_a_SOURCES): Add it. + * types/v4l2.h (struct_v4l2_buffer): Remove. + * v4l2.c: Include "kernel_v4l2_types.h". + Replace struct_v4l2_buffer with kernel_v4l2_buffer_t. + (VIDIOC_QUERYBUF, VIDIOC_QBUF, VIDIOC_DQBUF, VIDIOC_PREPARE_BUF): + Redefine. + (print_v4l2_buffer): Use print_timeval64_data_size to print timestamp + field. + * linux/32/ioctls_inc_align16.h (VIDIOC_QUERYBUF, VIDIOC_QBUF, + VIDIOC_DQBUF, VIDIOC_PREPARE_BUF): Update. + * linux/32/ioctls_inc_align32.h: Likewise. + * linux/32/ioctls_inc_align64.h: Likewise. + * xlat/v4l2_ioctl_cmds.in (VIDIOC_QUERYBUF, VIDIOC_QBUF, + VIDIOC_DQBUF, VIDIOC_PREPARE_BUF): Comment out. + * tests/ioctl_v4l2.c: Include "kernel_v4l2_types.h". + (main): Replace struct_v4l2_buffer with kernel_v4l2_buffer_t. + (VIDIOC_QUERYBUF, VIDIOC_QBUF, VIDIOC_DQBUF, VIDIOC_PREPARE_BUF): + Redefine. + * tests/ioctl_v4l2-success.c: Likewise. + + Resolves: https://github.com/strace/strace/issues/133 + +2020-05-26 Dmitry V. Levin + + configure: move AM_PROG_AR after AC_USE_SYSTEM_EXTENSIONS. + This fixes the following autoreconf warning: + configure.ac:41: warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS + + * configure.ac: Move AM_PROG_AR after AC_USE_SYSTEM_EXTENSIONS. + + Fixes: v5.6-65-g81e11a9b8 "configure: check AR variable for 'ar' tool" + +2020-05-02 Mike Gilbert + + configure: check AR variable for 'ar' tool. + Without this, automake always hardcodes 'AR = ar' in Makefile.in + + Bug: https://bugs.gentoo.org/720712 + +2020-05-02 Dmitry V. Levin + + configure.ac: do not check for perl. + The last user of this check was removed by commit v4.7~160. + + * configure.ac (AC_PATH_PROG): Remove perl. + + Complements: v4.7~160 "Manual removal of non-Linux source, documentation, etc." + +2020-04-27 Dmitry V. Levin + + configure.ac: fix dladdr check. + * configure.ac: Check for the library providing dladdr using + AC_SEARCH_LIBS instead of AC_CHECK_LIB to handle the case when dladdr + is a part of libc. + +2020-04-24 Dmitry V. Levin + + Rewrite decoders of dup, dup2, and dup3 syscalls. + * dup.c: New file. + * Makefile.am (libstrace_a_SOURCES): Add it. + * desc.c (do_dup2, SYS_FUNC(dup), SYS_FUNC(dup2), SYS_FUNC(dup3)): + Remove. + + tests: check decoding of dup3 syscall in -y, -yy, and -P modes. + * tests/dup3.c: Rewrite. + * tests/dup3-P.c: New file. + * tests/dup3-y.c: Likewise. + * tests/dup3-yy.c: Likewise. + * tests/gen_tests.in (dup3): Add 7>>/dev/full. + (dup3-P, dup3-y, dup3-yy): New entries. + * tests/pure_executables.list: Add dup3-P, dup3-y, and dup3-yy. + * tests/.gitignore: Likewise. + + tests: check decoding of dup2 syscall in -y, -yy, and -P modes. + * tests/dup2.c: Rewrite. + * tests/dup2-P.c: New file. + * tests/dup2-y.c: Likewise. + * tests/dup2-yy.c: Likewise. + * tests/gen_tests.in (dup2): Add 9>>/dev/full. + (dup2-P, dup2-y, dup2-yy): New entries. + * tests/pure_executables.list: Add dup2-P, dup2-y, and dup2-yy. + * tests/.gitignore: Likewise. + + tests: check decoding of dup syscall in -y, -yy, and -P modes. + * tests/dup.c: Rewrite. + * tests/dup-P.c: New file. + * tests/dup-y.c: Likewise. + * tests/dup-yy.c: Likewise. + * tests/gen_tests.in (dup): Add 9>>/dev/full. + (dup-P, dup-y, dup-yy): New entries. + * tests/pure_executables.list: Add dup-P, dup-y, and dup-yy. + * tests/.gitignore: Likewise. + +2020-04-24 Niklas Cathor + + strace.1: fix description of "open" example. + * strace.1.in (DESCRIPTION): In the example of "open" syscall with three + arguments, the rest of the sentence talks about the `flag` and the + `mode` arguments, not just about the `mode`. + + Resolves: https://gitlab.com/strace/strace/merge_requests/1 + +2020-04-24 Dmitry V. Levin + + github: add gcc-10 jobs. + * .github/workflows/ci.yml (gcc10-x86_64-kheaders, gcc10-x86_64-dw, + gcc10-x86_64-unwind, gcc10-x32-kheaders, gcc10-x32-nostacktrace, + gcc10-x86-kheaders, gcc10-x86-nostacktrace): New jobs. + +2020-04-23 Maxim Akhmedov + Dmitry V. Levin + + Implement interval specification in syscall tampering expressions. + Before this change, strace allows syscall tampering only for syscalls + with 1) fixed invocation index or 2) all invocations starting from n-th + (possibly with some step). + + These two options do not cover a useful scenario of testing + retrying/backoffing policy of traced program, which may be done by + introducing delays/errors on first n invocations, and then stopping + tampering. + + This change adds possibility to invoke strace like the following: + + strace -e inject=recvfrom:delay_exit=100000:when=3,100 ./bin + + which results in invocations from third to hundredth (inclusive) being + tampered. Formally, syntax now looks like `when=first[..last][+step]`. + + This change does not affect the existing behavior. + + * defs.h (INJECT_LAST_INF): New macro. + (struct inject_opts): Add "last" field. + * filter_qualify.c (parse_inject_token) : Add interval support. + (qualify_inject_common): Initialize struct inject_opts.last. + * syscall.c (tamper_with_syscall_entering): Handle + struct inject_opts.last. + * strace.1.in (Tampering): Document the new feature. + * strace.c (usage): Likewise. + * NEWS: Mention this change. + * tests/qual_fault-syntax.test: Check handling of invalid "when" + intervals. + * tests/qual_inject-syntax.test: Likewise. + * tests/qual_fault.c (last): New variable. + (main): Take "last" argument, handle it. + * tests/qual_fault.test: Check handling of valid "when" intervals. + + Resolves: https://github.com/strace/strace/pull/136 + +2020-04-21 Dmitry V. Levin + + pathtrace: fix matching of openat2 syscall. + * pathtrace.c (pathtrace_match_set): Handle SEN_openat2. + + Fixes: v5.6~48 "open: implement openat2 syscall decoding" + +2020-04-19 Eugene Syromyatnikov + + xlat: add BTRFS_COMPRESS_ZSTD to btrfs_compress_types. + * xlat/btrfs_compress_types.in (BTRFS_COMPRESS_ZSTD): New constant, + introduced by Linux commit v4.14-rc1~22^2~1. + * tests/btrfs.c (BTRFS_COMPRESS_TYPES): Change value to 3. + +2020-04-19 Alistair Francis + + tests/xetitimer: Use syscalls instead of libc functions. + The new glibc implementation for y2038 safe arches (32-bit arch with + 64-bit time_t) will set the itimerval struct inside libc instead of + inside the kernel. This is because the kernel expects a 32-bit version + of timeval while libc exposes a 64-bit version. As libc sets this, when + we pass a faulting pointer we will get a segfault instead of the kernel + reporint EFAULT back. + + To avoid a seg fault let's use the kernel's equivalent of struct + __kernel_old_itimerval in the tests and call the syscall directly + instead of using libc. This way we can trigger the kernels EFAULT + response correctly. + + + * tests/xetitimer.c: Include "kernel_timeval.h" + (kernel_old_itimerval_t): New type. + (main): Use it instead of struct itimerval, replace getitimer with + syscall(__NR_getitimer), replace setitimer with syscall(__NR_setitimer). + +2020-04-19 Alistair Francis + Dmitry V. Levin + + tests/semtimedop: Skip tests if semtimedop syscall is not available. + New y2038 safe 32-bit architectures don't have the __NR_semtimedop + syscall, so let's skip the test. + + + * tests/semtimedop.c: Include "scno.h". + [!(__NR_semtimedop || __NR_socketcall)]: Skip the test. + +2020-04-19 Alistair Francis + + tests/xettimeofday: Skip tests if __NR_gettimeofday syscall is not defined + New y2038 safe 32-bit architectures don't have the + __NR_gettimeofday/__NR_settimeofday syscalls, so let's skip the test. + + + * tests/xettimeofday.c: Include "scno.h". + [!__NR_gettimeofday]: Skip the test. + +2020-04-19 Alistair Francis + + tests/wait4: Skip tests if __NR_wait4 syscall is not defined. + New y2038 safe 32-bit architectures don't have the __NR_wait4 syscall, + so let's skip the test. + + + * tests/wait4.c: Include "scno.h". + [!__NR_wait4]: Skip the test. + +2020-04-19 Alistair Francis + + tests/msg_control: Use old time structures for old timestamps. + The SO_TIMESTAMP_OLD returns a timeval that matches the struct + kernel_old_timeval_t instead of the struct timeval. This is different + on new 32-bit architectures (like RV32) where timeval uses 64-bit time_t + while kernel_old_timeval_t uses 32-bit. + + To fix overflow errors let's use kernel_old_timeval_t instead of + the libc struct timeval. + + + Likewise, SO_TIMESTAMPNS_OLD and SO_TIMESTAMPING_OLD return + kernel_old_timespec_t. + + * tests/msg_control.c: Include "kernel_timeval.h" and + "kernel_old_timespec.h". + (test_scm_timestamp_old): Replace struct timeval with + kernel_old_timeval_t. + (test_scm_timestampns_old, test_scm_timestamping_old): Replace + struct timespec with kernel_old_timespec_t. + +2020-04-19 Alistair Francis + + tests/sockopt-timestamp: Use old time structures for old timestamps. + The SO_TIMESTAMP_OLD returns a timeval that matches the struct + kernel_old_timeval_t instead of the struct timeval. This is different + on new 32-bit architectures (like RV32) where timeval uses 64-bit time_t + while kernel_old_timeval_t uses 32-bit. + + To fix overflow errors let's use kernel_old_timeval_t instead of + the libc struct timeval. + + + Likewise, SO_TIMESTAMPNS_OLD returns kernel_old_timespec_t. + + * tests/sockopt-timestamp.c: Include "kernel_timeval.h" and + "kernel_old_timespec.h". + (print_timestamp_old): Replace struct timeval with kernel_old_timeval_t. + (print_timestampns_old): Replace struct timespec with + kernel_old_timespec_t. + +2020-04-19 Dmitry V. Levin + + Rework printing of SO_TIMESTAMPNS_OLD and SO_TIMESTAMPING_OLD timestamps + On architectures with 32-bit kernel_long_t the kernel sends 32-bit + timespecs in SO_TIMESTAMPNS_OLD and SO_TIMESTAMPING_OLD messages. + Unfortunately, this applies to all 32-bit architectures including + those (like RV32) that do not define __ARCH_WANT_TIME32_SYSCALLS. + + * print_timespec.c: Remove. + * Makefile.am (libstrace_a_SOURCES): Remove it. + * linux/arch_defs_.h (ARCH_TIMESIZE): Remove. + (MIN_KLONGSIZE, HAVE_ARCH_TIMESPEC32): New macros. + * linux/x32/arch_defs_.h (ARCH_TIMESIZE): Remove. + * defs.h (print_timespec32_data_size, print_timespec32_array_data_size): + Declare for [HAVE_ARCH_TIMESPEC32]. + * kernel_timespec.h (kernel_timespec32_t): Define for + [HAVE_ARCH_TIMESPEC32]. + * print_timespec32.c (TIMESPEC_T, PRINT_TIMESPEC_DATA_SIZE, + PRINT_TIMESPEC_ARRAY_DATA_SIZE): Define for [HAVE_ARCH_TIMESPEC32]. + * msghdr.c (PRINT_TIMESPEC_DATA_SIZE, PRINT_TIMESPEC_ARRAY_DATA_SIZE): + Define. + (print_scm_timestampns_old): Use PRINT_TIMESPEC_DATA_SIZE + instead of print_struct_timespec_data_size. + (print_scm_timestamping_old): Use PRINT_TIMESPEC_ARRAY_DATA_SIZE + instead of print_struct_timespec_array_data_size. + +2020-04-19 Alistair Francis + + tests/waitid: Correctly use the long types from the rusage struct. + The kernel's rusage struct uses the kernel's __kernel_old_timeval which + means that even for 32-bit archs with 64-bit time_t (like RV32) the time + values are 32-bit. + + We can fix this by making sure we don't use libc's rusage struct and + instead use our own with the kernel's old timeval. + + + * configure.ac (AC_CHECK_MEMBERS): Do not check for members of struct + rusage. + * tests/waitid.c: Include "kernel_rusage.h" instead of . + (RU_MAXRSS, RU_IXRSS, RU_IDRSS, RU_ISRSS, RU_MINFLT, RU_MAJFLT, + RU_NSWAP, RU_INBLOCK, RU_OUBLOCK, RU_MSGSND, RU_MSGRCV, RU_NSIGNALS, + RU_NVCSW, RU_NIVCSW): Remove. + (sprint_rusage): Replace struct rusage with kernel_rusage_t. + Use the respective ru_* field names instead of removed macros. + (do_waitid, main): Replace struct rusage with kernel_rusage_t. + + This partially reverts commit v5.6~192. + +2020-04-19 Alistair Francis + Dmitry V. Levin + + tests/getrusage: Correctly use the long types from the rusage struct. + The kernel's rusage struct uses the kernel's __kernel_old_timeval which + means that even for 32-bit archs with 64-bit time_t (like RV32) the time + values are 32-bit. + + We can fix this by making sure we don't use libc's rusage struct and + instead use our own with the kernel's old timeval. + + + * tests/getrusage.c: Include "kernel_rusage.h". + (invoke_print): Replace struct rusage with kernel_rusage_t, + cast member values from kernel_long_t to unsigned long long + using zero_extend_signed_to_ull, update format strings. + +2020-04-19 Alistair Francis + Dmitry V. Levin + + kernel_rusage.h: introduce kernel_rusage_t. + + * printrusage.c: Include "kernel_rusage.h" instead of "kernel_timeval.h". + (rusage_t): Rename to kernel_rusage_t, move the definition to ... + * kernel_rusage.h: ... new file. + * Makefile.am (libstrace_a_SOURCES): Add it. + +2020-04-19 Alistair Francis + Dmitry V. Levin + + time: Protect the print_timezone() function. + To avoid the following error: + time.c:17:1: error: 'print_timezone' defined but not used [-Werror=unused-function] + + ensure that print_timezone is only defined if we are going to use it. + + + * time.c (print_timezone): Place under + [HAVE_ARCH_TIME32_SYSCALLS || HAVE_ARCH_OLD_TIME64_SYSCALLS] guard. + + Complements: v5.6~28 "linux/32: move wait4 and [gs]ettimeofday from syscallent.h to syscallent-time32.h" + +2020-04-18 Kemeng Shi + + tests: correct error message in io_uring_register test. + * tests/io_uring_register.c (main): If path_full failed to open, + print its name instead of mistakenly used path_null. + +2020-04-18 Paul Chaignon + + bpf: support new commands BPF_LINK_{CREATE,UPDATE} + * xlat/bpf_commands.in (BPF_LINK_CREATE): New constant introduced by Linux + commit v5.7-rc1~146^2~10^2^2~3. + (BPF_LINK_UPDATE): New constant introduced by Linux commit + v5.7-rc1~146^2~10^2^2~2. + * bpf.c (BEGIN_BPF_CMD_DECODER(BPF_LINK_CREATE), + BEGIN_BPF_CMD_DECODER(BPF_LINK_UPDATE)): Decode the new commands. + (SYS_FUNC(bpf)): Decode the new commands. + * bpf_attr.h (BPF_LINK_CREATE_struct): New structure introduced by Linux + commit v5.7-rc1~146^2~10^2^2~3. + (BPF_LINK_UPDATE_struct): New structure introduced by Linux commit + v5.7-rc1~146^2~10^2^2~2. + (BPF_LINK_CREATE_struct_size, BPF_LINK_UPDATE_struct_size): New macros. + * NEWS: Mention this. + * tests/bpf.c (BPF_LINK_CREATE_checks, BPF_LINK_UPDATE_checks): Tests for + the new commands. + +2020-04-18 Dmitry V. Levin + + types: do not generate TYPES_M4_FILES variable. + * types/gen.sh (gen_makefile): Do not generate TYPES_M4_FILES variable, + it isn't used anywhere. + +2020-04-17 Ákos Uzonyi + + Add test for %clock trace class. + * tests/Makefile.am (EXTRA_DIST): Add trace_clock.in. + * tests/gen_tests.in (trace_clock): New entry. + * tests/trace_clock.in: New file. + +2020-04-17 Ákos Uzonyi + + Add %clock trace class. + The %clock class includes the syscalls that read or modify system clock. + + linux/*/syscallent*.h part is updated automatically by: + sed -i -r ' + /"(.*adjtime.*|.*clock_([gs]et|adj).*|.*[gs]ettimeofday.*|time)"/ { + s/(\{[^,]*,\t[^0][^,]*)/\1|TCL/ + s/(\{[^,]*,\s*)0/\1TCL/ + } + ' linux/*/syscallent*.h + + * basic_filters.c (loopup_class): Add %clock member to syscall_class[]. + * linux/32/syscallent-time32.h: Add TCL flag to clock related 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/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-compat.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. + * strace.1.in: Add %clock description. + * strace.c (usage): Add %clock group to help message. + * sysent.h (TRACE_CLOCK): New definition. + * sysent_shorthand_defs.h (TC): Likewise. + * sysent_shorthand_undefs.h (TC): Add undef. + * NEWS: Mention this. + +2020-04-17 Ákos Uzonyi + + sysent_shorthand_undefs.h: add missing undefs. + Add undefs that were missing from sysent_shorthand_undefs.h + (mirroring defs in sysent_shorthand_defs.h). + + * sysent_shorthand_undefs.h (PU): Add undef. + (TSD): Likewise. + (TC): Likewise. + + Fixes: v4.21~29 "Add pure syscall flag" + Fixes: v5.3~36 "Add seccomp filter syscall flag" + Fixes: v5.5~100 "Implement %creds trace class" + +2020-04-17 Dmitry V. Levin + + tests: use create_tmpfile. + * tests/fchmod.c (main): Use create_tmpfile instead of open+unlink. + * tests/preadv.c: Likewise. + * tests/sendfile.c: Likewise. + * tests/sendfile64.c: Likewise. + * tests/fcntl-common.c (create_sample): Use create_tmpfile instead of + mkstemp. + +2020-04-17 Dmitry V. Levin + + tests: introduce create_tmpfile function. + There are few cases in tests where a file is created and immediately + unlinked. Add a function to perform this action in a more systematic + way. + + * tests/tests.h (create_tmpfile): New prototype. + * tests/create_tmpfile.c: New file. + * tests/Makefile.am (libtests_a_SOURCES): Add create_tmpfile.c. + +2020-04-16 Dmitry V. Levin + + Extend memory caching of umove* functions. + * ucopy.c (cached_raddr): Double the size. + (get_next_unused_idx, lookup_cached_raddr_idx, set_cached_raddr_idx): + New functions. + (vm_read_mem): Use them. When the data to be fetched resides in + up to 4 adjacent memory pages, fetch these pages and cache them. + * tests/umovestr_cached_adjacent.c: New file. + * tests/pure_executables.list: Add umovestr_cached_adjacent. + * tests/.gitignore: Likewise. + * tests/umovestr_cached.test: Handle the first argument. + * tests/gen_tests.in (umovestr_cached_adjacent): New test. + +2020-04-15 Dmitry V. Levin + + filter_seccomp: implement on systems without + Provide fallback definitions required to implement seccomp-assisted + syscall filtering. + + * filter_seccomp.c [!HAVE_LINUX_SECCOMP_H]: Include + "xlat/prctl_options.h", "xlat/seccomp_mode.h" and + "xlat/seccomp_ret_action.h" in XLAT_MACROS_ONLY mode, remove #warning. + [!HAVE_LINUX_SECCOMP_H] (struct seccomp_data): Define. + [!HAVE_LINUX_SECCOMP_H] (check_seccomp_filter_properties, + init_seccomp_filter, seccomp_filter_restart_operator): Remove stubs. + + Complements: v5.3~7 "Introduce seccomp-assisted syscall filtering" + +2020-04-15 Dmitry V. Levin + + x86_64: provide a fallback definition of __X32_SYSCALL_BIT. + Make sure __X32_SYSCALL_BIT is defined on __x86_64__, + move fallback definitions from various files to x86_64/arch_defs_.h. + + * linux/x86_64/arch_defs_.h [!__X32_SYSCALL_BIT] (__X32_SYSCALL_BIT): + Define. + * linux/x86_64/arch_get_personality.c [!__X32_SYSCALL_BIT] + (__X32_SYSCALL_BIT): Remove. + * linux/x86_64/get_scno.c: Likewise. + * tests/filter_seccomp-flag.c [__x86_64__]: Likewise. + + Complements: v5.3~7 "Introduce seccomp-assisted syscall filtering" + +2020-04-15 Eugene Syromyatnikov + + xlat: add UFFDIO_COPY_MODE_WP to uffd_copy_flags. + * xlat/uffd_copy_flags.in (UFFDIO_COPY_MODE_WP): New constant, + introduced by Linux commit v5.7-rc1~58^2~121. + (UFFDIO_COPY_MODE_DONTWAKE): Add fall-back value. + * tests/ioctl_uffdio.c: Add a check for the new flag. + + xlat: update mremap_flags. + * xlat/mremap_flags.in: Add fallback values. + (MREMAP_DONTUNMAP): New constant, introduced by Linux commit + v5.7-rc1~124^2~49. + + xlat: update lwtunnel_encap_types. + * xlat/lwtunnel_encap_types.in (LWTUNNEL_ENCAP_SEG6_LOCAL): New + constant, introduced by Linux commit v4.14-rc1~130^2~348^2~2. + (LWTUNNEL_ENCAP_RPL): New constant, introduced by Linux commit + v5.7-rc1~146^2~38^2. + + xlat: add XDP_FLAGS_REPLACE to xdp_flags. + * xlat/xdp_flags.in: Add leading zeroes to fallback values. + (XDP_FLAGS_REPLACE): New constant, introduced by Linux commit + v5.7-rc1~146^2~10^2~13^2~3. + + xlat: add FAN_DIR_MODIFY to fan_event_flags. + * xlat/fan_event_flags.in (FAN_DIR_MODIFY): New constant, introduced + by Linux commit v5.7-rc1~72^2~5. + * tests/fanotify_mark.c: Update expected output. + + xlat: update v4l2_pix_fmts. + * xlat/v4l2_pix_fmts.in (V4L2_PIX_FMT_SBGGR14, V4L2_PIX_FMT_SGBRG14, + V4L2_PIX_FMT_SGRBG14, V4L2_PIX_FMT_SRGGB14): New constants, introduced + by Linux commit v5.7-rc1~193^2~35. + (V4L2_PIX_FMT_Y14): New constant, introduced by Linux commit + v5.7-rc1~193^2~34. + + xlat: update uring_ops. + * xlat/uring_ops.in (IORING_OP_SPLICE): New constant, introduced + by Linux commit v5.7-rc1~201^2~46. + (IORING_OP_PROVIDE_BUFFERS): New constant, introduced by Linux commit + v5.7-rc1~201^2~23. + (IORING_OP_REMOVE_BUFFERS): New constant, introduced by Linux commit + v5.7-rc1~201^2~18. + * tests/io_uring_register.c: Update expected output. + + xlat: add SECCOMP_FILTER_FLAG_TSYNC_ESRCH to seccomp_filter_flags. + * xlat/seccomp_filter_flags.in: Use (1< + + tests: allow passing arguments to netlink_sock_diag.test. + And remove netlink_sock_diag-v.sh, since it is no longer needed. + + * tests/netlink_sock_diag.test: Pass script's arguments to + run_strace_match_diff call. + * tests/gen_tests.in (nlattr_packet_diag_msg): Call + netlink_sock_diag.test with -v instead of netlink_sock_diag-v.sh.. + * tests/netlink_sock_diag-v.sh: Remove. + * tests/Makefile.am (EXTRA_DIST): Remove netlink_sock_diag-v.sh. + +2020-04-15 Eugene Syromyatnikov + + tests: use the FLAG macro instead of a locally defined one in clone3 test + * tests/clone3.c (_): Remove. + (enum validity_flags): Use FLAG() instead of _(). + +2020-04-15 Eugene Syromyatnikov + + clone: add more elaborate comments for struct strace_clone_args field. + Try to capture field semantics and type. + + * clone.c (struct strace_clone_args): Add/extend comments for the + fields. + +2020-04-14 Fabrice Fontaine + + ptrace_syscall_info.c: fix build without fork. + Build without fork fails on: + + ptrace_syscall_info.c:33:27: error: 'expected_entry_size' defined but not used [-Werror=unused-const-variable=] + static const unsigned int expected_entry_size = + ^~~~~~~~~~~~~~~~~~~ + ptrace_syscall_info.c:31:27: error: 'expected_none_size' defined but not used [-Werror=unused-const-variable=] + static const unsigned int expected_none_size = + ^~~~~~~~~~~~~~~~~~ + ptrace_syscall_info.c:24:1: error: 'kill_tracee' defined but not used [-Werror=unused-function] + kill_tracee(pid_t pid) + ^~~~~~~~~~~ + + Fixes: + - http://autobuild.buildroot.org/results/ffc81d3798379a9c34c7a708ebbdea27409f755d + + + * ptrace_syscall_info.c (kill_tracee, expected_none_size, + expected_entry_size): Move definitions under [HAVE_FORK] guard. + + Resolves: https://github.com/strace/strace/pull/135 + +2020-04-13 Paul Chaignon + + bpf: update BPF_* constants. + * xlat/bpf_attach_types.in (BPF_MODIFY_RETURN): New constant introduced by + Linux kernel commit v5.7-rc1~146^2~174^2~45^2~4. + (BPF_LSM_MAC): New constant introduced by Linux kernel commit + v5.7-rc1~146^2~10^2~9^2~7. + * xlat/bpf_prog_types.in (BPF_PROG_TYPE_LSM): New constant introduced by + Linux kernel commit v5.7-rc1~146^2~10^2~9^2~7. + * NEWS: Mention this. + * tests/bpf.c (BPF_PROG_LOAD_checks, BPF_PROG_QUERY_checks): Update checks + and their expected output. + * tests/kernel_version.c (print_bpf_attr, main): Likewise. + +2020-04-12 Dmitry V. Levin + + Makefile.am: move almost all of strace_SOURCES to libstrace_a_SOURCES. + There is no need to track files that are used conditionally. + + * Makefile.am (strace_SOURCES): Move all except strace.c ... + (libstrace_a_SOURCES): ... here. + +2020-04-12 Dmitry V. Levin + + Rewrite decoders of getdents, getdents64, and readdir syscalls. + The old approach of allocating memory for all dentries returned by + getdents/getdents64 was problematic, fix it by fetching and printing + dentries sequentially. + + * dirent_types.c: New file. + * xgetdents.c: Likewise. + * xgetdents.h: Likewise. + * Makefile.am (strace_SOURCES): Add them. + * dirent.c: Include "xgetdents.h" and "print_fields.h". + (header_size): New variable. + (print_dentry_head, decode_dentry_head, decode_dentry_tail): New + functions. + (print_old_dirent): Rewrite using print_dentry_head. + (SYS_FUNC(getdents)): Rewrite using xgetdents, decode_dentry_head, + and decode_dentry_tail. + * dirent64.c: Include "xgetdents.h", "kernel_dirent.h" + and "print_fields.h" instead of "defs.h", + and "xlat/dirent_types.h". + (decode_dentry_head, decode_dentry_tail): New functions. + (SYS_FUNC(getdents64)): Rewrite using xgetdents, decode_dentry_head, + and decode_dentry_tail. + + Resolves: https://github.com/strace/strace/issues/19 + Resolves: https://github.com/strace/strace/pull/20 + +2020-04-11 Dmitry V. Levin + + Guard against invalid return values of getdents/getdents64 syscalls. + The kernel is not expected to return more bytes than requested. + If this ever happens, treat it as an error. + + * dirent.c (SYS_FUNC(getdents)): Treat the return value greater than + the third argument of syscall as an error. + * dirent64.c (SYS_FUNC(getdents64)): Likewise. + +2020-04-11 Dmitry V. Levin + + Print the second argument of getdents/getdents64 syscalls in abbrev mode + * dirent.c (SYS_FUNC(getdents)) [!abbrev(tcp)]: Print u_arg[1] along + with the number of entries. + * dirent64.c (SYS_FUNC(getdents64)) [!abbrev(tcp)]: Likewise. + * tests/xgetdents.c (ls): Update expected output. + + tests: check abbreviated decoding of getdents and getdents64 syscalls. + * tests/getdents-v.c: New file. + * tests/getdents64-v.c: Likewise. + * tests/pure_executables.list: Add getdents-v and getdents64-v. + * tests/.gitignore: Likewise. + * tests/gen_tests.in (getdents-v, getdents64-v): New entries. + (getdents, getdents64): Update. + * tests/getdents.c (print_dirent): Define only if [VERBOSE]. + * tests/getdents64.c (print_dirent): Likewise. + * tests/xgetdents.c (str_d_type): Likewise. + (ls): Handle [!VERBOSE] case. + (main) [VERBOSE]: Add "-v" to dname. + + tests: refactor getdents and getdents64 tests. + * tests/xgetdents.c: New file. + * tests/Makefile.am (EXTRA_DIST): Add xgetdents.c. + * tests/getdents.c: Rewrite using xgetdents.c. + * tests/getdents64.c: Likewise. + +2020-04-11 Dmitry V. Levin + + Move kernel_dirent64 definition to kernel_dirent.h. + ... and rename kernel_dirent64 type to kernel_dirent64_t + + * tests/getdents64.c: Include "kernel_dirent.h", rename kernel_dirent64 + to kernel_dirent64_t. + (kernel_dirent64_t): Move ... + * kernel_dirent.h: ... here. + +2020-04-11 Dmitry V. Levin + + Move kernel_dirent definition from kernel_types.h to a separate header. + ... and rename kernel_dirent type to kernel_dirent_t + + * kernel_types.h (kernel_dirent): Rename to kernel_dirent_t, move ... + * kernel_dirent.h: ... to new file. + * Makefile.am (strace_SOURCES): Add it. + * dirent.c: Include "kernel_dirent.h", rename kernel_dirent + to kernel_dirent_t. + * tests/getdents.c: Likewise. + +2020-04-09 Eugene Syromyatnikov + Dmitry V. Levin + + strace: fix -E/--env options affecting strace environment. + The current approach with putenv() during parsing has a problem: + it changes strace's own environment which may affect its behaviour + in an unacceptable way. + + As a solution, let's apply an approach similar to path tracing option + parsing: collect the provided optarg's in an array, then construct + a new environment and pass it to startup_child(). + + * strace.c (struct exec_params): Add env field. + (exec_or_die): Call execve() instead of execv(); pass params->env + as the third argument. + (startup_child): Add env parameter, set params_for_tracee.env to it. + (remove_from_env, add_to_env, update_env, make_env): New functions. + (init): Add env_changes, env_change_size, env_change_count local + variables; store optarg in env_changes array on -E option occurrence; + construct new environment using make_env and pass it to startup_child + in the second argument. + * tests/strace-E-override.test: New test. + * tests/Makefile.am (MISC_TESTS): Add strace-E-override.test. + +2020-04-09 Eugene Syromyatnikov + Dmitry V. Levin + + xmalloc: add xallocarray. + Add a wrapper around malloc with calloc interface. + + * xmalloc.h (xallocarray): New function declaration. + * xmalloc.c (xallocarray): New function. + +2020-04-09 Eugene Syromiatnikov + Dmitry V. Levin + + strace: move pathtrace_select calls to a later initialisation stage. + Since path name resolution is specific to the tracing backend + (especially when tracees are remote), let's first collect the list + of paths to trace in a temporary array and add it later during the + initialisation. + + * strace.c (init): Add pathtrace_paths temporary array, with its + element count stored in pathtrace_count and size in pathtrace_size. + (init) : Store argument in pathtrace_paths, grow it if needed. + (init): Iterate over pathtrace_paths and call pathtrace_select for each + element. Free the array. + * tests/options-syntax.test: Check that path name resolution happens + but not too early. + +2020-04-09 Eugene Syromyatnikov + Dmitry V. Levin + + tests: check -E/--env unset behaviour. + * tests/strace-E-unset.test: Likewise. + * tests/strace-E-unset.expected: New file. + * tests/Makefile.am (MISC_TESTS): Add strace-E-unset.test. + (EXTRA_DIST): Add strace-E-unset.expected. + +2020-04-09 Eugene Syromyatnikov + Dmitry V. Levin + + tests: add support for negative match patterns to match_grep. + For the cases when we want that some patterns do not appear in the + output. + + * tests/init.sh (match_grep): Add rc and negated local variables; set + negated to 1 if pattern starts with "!", otherwise to 0; fail if negated + pattern has been matched. + +2020-04-09 Dmitry V. Levin + + Post-release administrivia. + * NEWS: Add a header line for the next release. + * debian/changelog.in: Add a changelog entry for 5.6-1. + * strace.spec.in: Likewise. + +2020-04-07 Dmitry V. Levin + + Prepare for 5.6 release. + * NEWS: Update for 5.6 release. + + .mailmap: add more entries to avoid duplication in CREDITS. + +2020-04-07 Dmitry V. Levin + + tests: cleanup temporary files left by read-write test executable. + This test executable is invoked by 19 tests, leaving about 100M + of data in temporary files. + + In each of these tests read-write is invoked twice: the first time by + run_prog and the second time by run_strace. Since the temporary file + created during the first invocation is used by strace during the second + invocation, this file can only be cleaned up at the end of the second + invocation. + + * tests/read-write.c (main): If the temporary file was not created, + unlink it before the exit. + +2020-04-07 Dmitry V. Levin + + tests: rewrite redirect.test without a busy loop. + * tests/redirect.test: Invoke $SLEEP_A_BIT while waiting + for synchronization with the tracer. + +2020-04-06 Dmitry V. Levin + + README.md: add github CI status badge. + +2020-04-06 Eugene Syromyatnikov + + strace: make -yy equivalent to --decode-fds=all. + With inclusion of device file and, later, pidfd decoding into -yy + semantics, it is clear that one cannot rely on stability of set + of file descriptor decoding features enabled by -yy. State that + formally by aliasing -yy to --decode-fds=all. Those who want only + specific FD decoding capabilities being enabled know that they need + it and can resort to --decode-fds=SET syntax. + + * strace.1.in (.SS Output formatting): Change -yy alias + to --decode-fds=all, update the -yy option description. + * strace.c (usage): Likewise; expand --decode-fds description. + (init): Change yyflag_qual value to "all". + +2020-04-06 Dmitry V. Levin + + travis: remove build jobs covered by github actions. + * .travis.yml: Remove all bionic build jobs on x86_64, x86, and x32 except + the first one which is probably the fasted and is kept for reference. + Remove all gcc-8 and gcc-9 jobs since the corresponding repositories + are broken. + +2020-04-06 Dmitry V. Levin + + github: add CI action. + Somewhat similar to Travis CI, this runs "make distcheck" on Ubuntu + 18.04 using gcc-9, gcc-7, clang-9, and clang-6 on x86_64, x86, and x32 + architectures. + + Compared with Travis CI, GitHub Actions service currently provides + a significantly better parallelism as well as (unsurprisingly) + better integration with github. + + However, GitHub Actions cannot replace Travis CI completely as + the latter can build on aarch64, s390x, and ppc64le architectures. + + * .github/workflows/source-code-check.yml: Remove. + * .github/workflows/ci.yml: New file. + +2020-04-06 Dmitry V. Levin + + tests: fix poll-P.test. + All invocations of poll-P executable must have a properly created + descriptor 9. + + * tests/poll-P.test: Fix run_prog invocations. + + Fixes: v4.21~122 "tests: check path tracing of poll syscall" + +2020-04-06 Dmitry V. Levin + + tests: remove poll-P and ppoll-P from pure_executables.list. + Since these executables have to be invoked in a special way, + it was not correct to include them into pure_executables.list. + + * tests/pure_executables.list: Move poll-P and ppoll-P ... + * tests/Makefile.am (check_PROGRAMS): ... here. + + Fixes: v4.21~122 "tests: check path tracing of poll syscall" + Fixes: v4.21~121 "tests: check path tracing of ppoll syscall" + +2020-04-06 Dmitry V. Levin + + tests: workaround clang compilation warning. + Silence the following incorrect compilation warning produced by clang: + + tests/io_uring_register.c:271:10: error: format specifies type 'unsigned short' but the argument has type 'int' [-Werror,-Wformat] + probe->ops[i].flags & (typeof(probe->ops[i].flags)) ~1, + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + * tests/io_uring_register.c (main): Cast the whole + struct io_uring_probe_op.flags based expression + to the type of the first operand. + + Complements: v5.5-183-g8b6487f9a "tests: fix clang compilation warning" + +2020-04-05 Dmitry V. Levin + + travis: update coverage configuration. + * .travis.yml [$CHECK == coverage]: Change dist from trusty to bionic, + change the compiler from gcc to gcc-9, change STACKTRACE from libunwind + to libdw. + * ci/run-build-and-tests.sh [$CHECK == coverage] (GCOV): New variable, + pass its value to ./codecov.bash. + +2020-04-05 Dmitry V. Levin + + ci: workaround unusable codecov-python. + As codecov-python, starting with commit + v2.0.15-44-g9f50cca7e5c5e0bb5e2859db238da08e3195e105 released almost + a month ago, became an utterly unusable pile of garbage, switch to + codecov-bash that still works. + + * ci/install-dependencies.sh [$CHECK == coverage]: Do not install + lcov, python-pip, python-setuptools, and codecov. Download + https://codecov.io/bash and save it as codecov.bash. + * ci/run-build-and-tests.sh [$CHECK == coverage] (ac_cv_prog_LCOV, + ac_cv_prog_GENHTML): New variables, export them. + [[$CHECK == coverage]: Invoke codecov.bash instead of codecov. + +2020-04-05 Dmitry V. Levin + + ci: use twice as many cpus for tests. + Since many tests sleep a lot, running more of them in parallel + increases overall performance. + + * ci/run-build-and-tests.sh (j2): New variable. + Use it instead of $j for "make check" and "make distcheck". + +2020-04-05 Dmitry V. Levin + + ci: use -Og instead of -O0 for coverage builds. + Also, do not apply this debugging optimization level to tests. + + * ci/run-build-and-tests.sh [$CHECK == coverage] (CFLAGS, + CFLAGS_FOR_BUILD): Remove. + [$CHECK == coverage]: Specify CFLAGS='-g -Og' to "make all". + +2020-04-05 Dmitry V. Levin + + travis: switch from clang 7 to clang-9. + * .travis.yml (matrix): Switch all clang 7 builds to clang-9. + +2020-04-05 Eugene Syromyatnikov + + NEWS: mention libdw symbol-to-address cache introduction. + Complements: v5.5-178-g2101456 "unwind-libdw: add caching" + +2020-04-05 Dmitry V. Levin + + tests: fix clang compilation warning. + Silence the following compilation warning produced by clang: + + tests/io_uring_register.c:271:10: error: format specifies type 'unsigned short' but the argument has type 'int' [-Werror,-Wformat] + probe->ops[i].flags & ~1, + ^~~~~~~~~~~~~~~~~~~~~~~~ + + * tests/io_uring_register.c (main): Cast the second operand + of struct io_uring_probe_op.flags based expression to the type + of the first operand. + +2020-04-05 Paul Chaignon + + bpf: support new commands BPF_MAP_*_BATCH. + * xlat/bpf_commands.in (BPF_MAP_LOOKUP_BATCH): New constant introduced + by Linux commit v5.6-rc1~151^2~46^2~23^2~7. + (BPF_MAP_LOOKUP_AND_DELETE_BATCH): New constant introduced by Linux + commit v5.6-rc1~151^2~46^2~23^2~4. + (BPF_MAP_UPDATE_BATCH, BPF_MAP_DELETE_BATCH): New constants introduced + by Linux commit v5.6-rc1~151^2~46^2~23^2~6. + * bpf.c (BEGIN_BPF_CMD_DECODER(BPF_MAP_LOOKUP_BATCH), + BEGIN_BPF_CMD_DECODER(BPF_MAP_UPDATE_BATCH), + BEGIN_BPF_CMD_DECODER(BPF_MAP_DELETE_BATCH)): Decode the new commands. + (decode_BPF_MAP_LOOKUP_AND_DELETE_BATCH): New macro. + (SYS_FUNC(bpf)): Decode the new commands. + * bpf_attr.h (BPF_MAP_LOOKUP_BATCH_struct, + BPF_MAP_LOOKUP_AND_DELETE_BATCH_struct, BPF_MAP_UPDATE_BATCH_struct, + BPF_MAP_DELETE_BATCH_struct): New structs introduced by Linux commit + v5.6-rc1~151^2~46^2~23^2~7. + (BPF_MAP_LOOKUP_BATCH_struct_size, + BPF_MAP_LOOKUP_AND_DELETE_BATCH_struct_size, + BPF_MAP_UPDATE_BATCH_struct_size, BPF_MAP_DELETE_BATCH_struct_size): New + macros. + * NEWS: Mention this. + * tests/bpf.c (BPF_MAP_LOOKUP_BATCH_checks, BPF_MAP_UPDATE_BATCH_checks, + BPF_MAP_DELETE_BATCH_checks): Tests for the new commands. + +2020-04-05 Eugene Syromyatnikov + + Print PIDs associated with pidfds. + * number_set.h (decode_fd_bits): Add DECODE_FD_PIDFD to enum. + * filter_qualify.c (decode_fd_str_to_uint) : Add pidfd + argument name and value. + * util.c (printpidfd): New function. + (printfd): Call printpidfd if DECODE_FD_PIDFD is set. + * strace.c (init) : Add pidfd. + (usage): Document pidfd option argument. + * strace.1.in (.SS Output format): Likewise. + * tests/pidfd_getfd-yy.c: New file. + * tests/pidfd_open--decode-fd-pidfd.c: Likewise. + * tests/pidfd_open--decode-fd-socket.c: Likewise. + * tests/pidfd_open-yy.c: Likewise. + * tests/.gitignore: Add pidfd_getfd-yy, pidfd_open--decode-fd-pidfd, + pidfd_open--decode-fd-socket, and pidfd_open-yy. + * tests/pure_executables.list: Likewise. + * tests/gen_tests.in: Add pidfd_getfd-yy, pidfd_open--decode-fd-pidfd, + pidfd_open--decode-fd-socket, and pidfd_open-yy tests. + * tests/pidfd_getfd.c [!PRINT_PIDFD] (PRINT_PIDFD): New macro, define + to 0. + (main) [PRINT_PIDFD]: New variable pidfd_str, print expected pidfd + string to it. + (main) [!PRINT_PIDFD]: New variable pidfd_str, set it to PIDFD_PATH. + (main): Print pidfd_str instead of PIDFD_PATH. + * tests/pidfd_open.c (main) [PRINT_PIDFD]: Print pidfd using "" + format. + * NEWS: Mention the change. + +2020-04-03 Dmitry V. Levin + + Update copyright headers. + Headers updated automatically using maint/update_copyright_years.sh + script. + +2020-04-03 Dmitry V. Levin + + Fix preprocessor indentation. + Indent the C preprocessor directives to reflect their nesting + using the following script: + + $ cppi -l $(git grep -El '^[[:space:]]*#[[:space:]]*(if|ifdef|ifndef|elif|else|endif|define|pragma)[[:space:]]' |grep -v '\.sh$') |while read f; do + cppi < "$f" > "$f".cppi; mv "$f".cppi "$f" + done + +2020-04-03 Jann Horn + + unwind-libdw: add caching. + libdw's address-to-symbol logic is quite slow. Since when stracing a + process, it is normal to see the same call sites over and over again, + let's address that by adding a straightforward N-way associative cache + in front of libdw. + + The cache parameters could probably use some fine-tuning, + but ought to be good enough for now. + + The resulting performance improvement: + + $ time ./strace-orig -o /dev/null -k bash -c 'for i in {0..10000}; do echo; done' >/dev/null + + real 0m12,014s + user 0m11,512s + sys 0m0,575s + $ time ./strace-cache -o /dev/null -k bash -c 'for i in {0..10000}; do echo; done' >/dev/null + + real 0m0,765s + user 0m0,451s + sys 0m0,371s + + Reviewed-By: Masatake YAMATO + + * unwind-libdw.c: Include "static_assert.h". + (STRACE_UW_CACHE_SIZE, STRACE_UW_CACHE_ASSOC): New macros. + (struct cache_entry): New type. + (struct ctx): Add "cache" field, extend the type of "last_proc_updating" + field. + (mapping_generation): Extend the type, initialize to 1. + (uwcache_clock): New variable. + (tcb_init): Initialize struct ctx.cache. + (truct frame_user_data): Add "ctx" field. + (find_bucket): New function. + (frame_callback): Use it. + (tcb_walk): Initialize user_data.ctx. + +2020-04-02 Dmitry V. Levin + + sparc, sparc64: wire up former vserver syscall. + ... because Linux kernel arch/sparc/kernel/syscalls/syscall.tbl + still lists it. + + * linux/sparc/syscallent.h [267]: Add vserver entry. + * linux/sparc64/syscallent.h [267]: Add vserver entry. + +2020-04-02 Dmitry V. Levin + + hppa: wire up kexec_file_load syscall. + ... introduced on hppa by Linux kernel commit v5.4-rc1~188^2~3. + + * linux/hppa/syscallent.h [355]: Add kexec_file_load entry. + * NEWS: Mention this. + +2020-04-02 Eugene Syromyatnikov + + hdio: implement HDIO_DRIVE_CMD ioctl command decoding. + * xlat/hdio_drive_cmds.in: New file. + * hdio.c: Include "xlat/hdio_drive_cmds.h". + (print_hdio_drive_cmd): New function. + (hdio_ioctl): Call print_hdio_drive_cmd if code is HDIO_DRIVE_CMD. + * tests/ioctl_hdio.c (main) : Remove HDIO_DRIVE_CMD. + (main): Add HDIO_DRIVE_CMD checks. + + Closes: https://github.com/strace/strace/issues/83 + +2020-04-02 Eugene Syromyatnikov + + hdio: factor out the HDIO_GETGEO handler into a separate function. + And update it up to the current coding style. + + * hdio.c: Include "print_fields.h". + (print_hdio_getgeo): New function. + (hdio_ioctl) : Call print_hdio_getgeo instead + of decoding in place. + +2020-04-02 Eugene Syromyatnikov + + tests: check decoding of HDIO_* ioctls. + * tests/.gitignore: Add ioctl_hdio, ioctl_hdio-success, + ioctl_hdio-success-Xabbrev, ioctl_hdio-success-Xraw, + ioctl_hdio-success-Xverbose, ioctl_hdio-success-v, + ioctl_hdio-success-v-Xabbrev, ioctl_hdio-success-v-Xraw, + ioctl_hdio-success-v-Xverbose, ioctl_hdio-Xabbrev, + ioctl_hdio-Xraw, ioctl_hdio-Xverbose, ioctl_hdio-v, + ioctl_hdio-v-Xabbrev, ioctl_hdio-v-Xraw, and ioctl_hdio-v-Xverbose. + * tests/Makefile.am (check_PROGRAMS): Add ioctl_hdio-success, + ioctl_hdio-success-Xabbrev, ioctl_hdio-success-Xraw, + ioctl_hdio-success-Xverbose, ioctl_hdio-success-v, + ioctl_hdio-success-v-Xabbrev, ioctl_hdio-success-v-Xraw, + and ioctl_hdio-success-v-Xverbose. + * tests/gen_tests.in (ioctl_hdio, ioctl_hdio-Xabbrev, ioctl_hdio-Xraw, + ioctl_hdio-Xverbose, ioctl_hdio-v, ioctl_hdio-v-Xabbrev, + ioctl_hdio-v-Xraw, ioctl_hdio-v-Xverbose, ioctl_hdio-success, + ioctl_hdio-success-Xabbrev, ioctl_hdio-success-Xraw, + ioctl_hdio-success-Xverbose, ioctl_hdio-success-v, + ioctl_hdio-success-v-Xabbrev, ioctl_hdio-success-v-Xraw, + ioctl_hdio-success-v-Xverbose): New tests. + * tests/ioctl_hdio.c: New file. + * tests/ioctl_hdio-Xabbrev.c: Likewise. + * tests/ioctl_hdio-Xraw.c: Likewise. + * tests/ioctl_hdio-Xverbose.c: Likewise. + * tests/ioctl_hdio-success.c: Likewise. + * tests/ioctl_hdio-success-Xabbrev.c: Likewise. + * tests/ioctl_hdio-success-Xraw.c: Likewise. + * tests/ioctl_hdio-success-Xverbose.c: Likewise. + * tests/ioctl_hdio-success-v.c: Likewise. + * tests/ioctl_hdio-success-v-Xabbrev.c: Likewise. + * tests/ioctl_hdio-success-v-Xraw.c: Likewise. + * tests/ioctl_hdio-success-v-Xverbose.c: Likewise. + * tests/ioctl_hdio-v.c: Likewise. + * tests/ioctl_hdio-v-Xabbrev.c: Likewise. + * tests/ioctl_hdio-v-Xraw.c: Likewise. + * tests/ioctl_hdio-v-Xverbose.c: Likewise. + * tests/pure_executables.list: Add ioctl_hdio, ioctl_hdio-Xabbrev, + ioctl_hdio-Xraw, ioctl_hdio-Xverbose, ioctl_hdio-v, + ioctl_hdio-v-Xabbrev, ioctl_hdio-v-Xraw, and ioctl_hdio-v-Xverbose. + +2020-04-02 Dmitry V. Levin + + linux/32: move wait4 and [gs]ettimeofday from syscallent.h to syscallent-time32.h + According to Linux kernel include/uapi/asm-generic/unistd.h, starting + with commit v5.1-rc1~160^2~1^2~3 __NR_wait4, __NR_gettimeofday, and + __NR_settimeofday are placed under __ARCH_WANT_TIME32_SYSCALLS and + therefore should belong to syscallent-time32.h along with other 32-bit + time_t based syscalls. + + * linux/32/syscallent.h [169, 170, 260]: Move entries ... + * linux/32/syscallent-time32.h: ... here. + * time.c (SYS_FUNC(gettimeofday), SYS_FUNC(settimeofday)): Place under + [HAVE_ARCH_TIME32_SYSCALLS || HAVE_ARCH_OLD_TIME64_SYSCALLS] guard. + * wait.c (SYS_FUNC(wait4)): Likewise. + + Complements: v5.5-39-gcc7e89011 "linux/32: Split 32-bit time_t based syscalls into a separate header" + +2020-04-02 Dmitry V. Levin + + tests: fix another race condition in strace-DD.test. + Apparently, timeout(1) utility first sends its signal to the child + process, then installs a signal handler, and finally sends its signal to + the process group. This creates a race between timeout(1) and strace, + the latter can manage to handle tracee syscall exit trap before a signal + to the process group is delivered. + + * tests/setpgrp-exec.c: New file. + * tests/strace-DD.test: Rewrite without use of timeout(1). + * tests/strace-DD.expected: Remove. + * tests/Makefile.am (check_PROGRAMS): Add setpgrp-exec. + (EXTRA_DIST): Remove strace-DD.expected. + + Fixes: v5.4~106 "tests: check -DD and -DDD options" + +2020-04-01 Dmitry V. Levin + + tests: add a workaround for trace_creds test on mips o32. + Since every mips o32 executable used by trace_creds test invokes + prctl(PR_GET_FP_MODE) on their own and these calls are not filtered out + by %creds, they have to be filtered out manually before comparison. + + * tests/init.sh (test_pure_prog_set) [$STRACE_ARCH == mips && + $MIPS_ABI == o32 && $NAME == *creds]: Filter out prctl(PR_GET_FP_MODE) + from the strace log before comparison. + +2020-04-01 Dmitry V. Levin + + Lift experimental status from --seccomp-bpf feature. + * strace.1.in (.SH OPTIONS) <--seccomp-bpf>: Remove " (experimental)". + + strace.1: enhance --seccomp-bpf description. + * strace.1.in (.SH OPTIONS) <--seccomp-bpf>: Reword for clarity. + +2020-04-01 Dmitry V. Levin + + strace.1: fix --seccomp-bpf description. + * strace.1.in (.SH OPTIONS) <--seccomp-bpf>: Remove the claim that this + option implies -f, document that --seccomp-bpf has no effect unless + -f/--follow-forks is also specified. + + Complements: v5.5-38-g2a7ba2a97 "strace: disable seccomp-bpf instead of enabling following forks" + +2020-04-01 Dmitry V. Levin + + ci: use kernel headers from Linux kernel v5.6. + When Linux kernel merge window opens, changes of all sorts start to pour + down, breaking UAPI in various ways. This does not work for strace, + we need a stable UAPI. + + * .gitlab-ci.yml (variables): Add KBRANCH. + * .travis.yml (env:global): Likewise. + +2020-03-31 Dmitry V. Levin + + tests: fix get*id-creds tests on mips. + Apparently, mips executables may invoke prctl(PR_GET_FP_MODE) on their + own. Since these calls are not filtered out by %creds, they have to be + dealt with before comparison. + + * tests/getuid.test [$STRACE_ARCH == mips]: Filter out + prctl(PR_GET_FP_MODE) from the log of %creds tests. + +2020-03-31 Gleb Fotengauer-Malinovskiy + + Update ioctl entries from linux v5.6. + * linux/32/ioctls_inc_align16.h: Update from linux v5.6 + using ioctls_gen.sh. + * linux/32/ioctls_inc_align32.h: Likewise. + * linux/32/ioctls_inc_align64.h: Likewise. + * linux/64/ioctls_inc.h: Likewise. + * linux/x32/ioctls_inc0.h: Likewise. + * linux/s390/ioctls_arch0.h: Likewise. + * linux/s390x/ioctls_arch0.h: Likewise. + * NEWS: Mention this. + + maint: update for linux v5.6. + * maint/ioctls_sym.sh: Add workarounds for media/v4l2-ioctl.h and + sound/pcm.h headers. + +2020-03-31 Eugene Syromyatnikov + + Update NEWS. + +2020-03-31 Dmitry V. Levin + + tests: fix race condition in strace-D.test. + * tests/strace-D.test (test_parent_tracer_pid): Wait for the tracer + completion before checking its log. + + Fixes: v5.4~110 "tests: check -D option" + +2020-03-31 Dmitry V. Levin + + tests: fix race condition in strace-DDD.test. + * tests/tracer_ppid_pgid_sid.c (main): Print tracer pid. + * tests/strace-DDD.test: Check tracer pid, wait for the tracer + completion before checking its log. + + Reported-by: Eugene Syromyatnikov + Fixes: v5.4~106 "tests: check -DD and -DDD options" + +2020-03-31 Dmitry V. Levin + + tests: fix race condition in strace-DD.test. + Apparently, $SLEEP_A_BIT might be insufficient for the tracer + to complete. + + * tests/strace-DD.test: Find out the tracer pid and wait for the tracer + completion before checking its log. + + Suggested-by: Eugene Syromyatnikov + Fixes: v5.4~106 "tests: check -DD and -DDD options" + +2020-03-31 Dmitry V. Levin + + tests: split getxxid test. + getxxid used to test alpha-specific getxgid, getxuid, and getxgid + syscalls. Now each of these syscalls has its own test. + This hopefully fixes trace_creds test on alpha. + + * tests/getxxid.c: Split into getxpid.c, getxuid.c, and getxgid.c. + * tests/gen_tests.in (getxxid): Remove. + (getxgid, getxpid, getxuid): New tests. + * tests/pure_executables.list: Replace getxxid with getxgid, getxpid, + and getxuid. + * tests/.gitignore: Likewise. + +2020-03-30 Dmitry V. Levin + + ia64: rename getpagesize syscall entry to old_getpagesize. + ... to match the Linux kernel that introduced __NR_old_getpagesize + by commit v5.0-rc1~164^2~4. + + * linux/ia64/syscallent.h [BASE_NR + 147]: Rename "getpagesize" + to "old_getpagesize". + +2020-03-30 Dmitry V. Levin + + tests: disable umovestr_cached.test on mips o32 unless PTRACE_GET_SYSCALL_INFO works + If PTRACE_GET_SYSCALL_INFO does not work, then the test has to be + skipped on mips o32 because only the first four syscall arguments are + obtained from registers on that architecture, remaining syscall + arguments have to be fetched from the tracee memory. + + * tests/umovestr_cached.test [$STRACE_ARCH == mips && $MIPS_ABI == o32]: + Skip the test if PTRACE_GET_SYSCALL_INFO does not work. + +2020-03-30 Dmitry V. Levin + + tests: re-enable umovestr_cached.test on ia64 if PTRACE_GET_SYSCALL_INFO works + If PTRACE_GET_SYSCALL_INFO works, then the exception made for ia64 + earlier is not relevant. + + * tests/umovestr_cached.test [$STRACE_ARCH == ia64]: Do not skip + the test if PTRACE_GET_SYSCALL_INFO works. + + Complements: v5.3~23 "tests: disable umovestr_cached.test on ia64" + +2020-03-30 Eugene Syromyatnikov + + Implement pidfd_getfd syscall decoding. + Introduced by Linux commit v5.6-rc1~122^2~4 and wired up in Linux commit + v5.6-rc1~122^2~3. + + * pidfd_getfd.c: New file. + * Makefile.am (strace_SOURCES): Add it. + * linux/syscallent-common.h ([BASE_NR + 438]): Wire up pidfd_getfd. + * tests/pidfd_getfd.c: New file. + * tests/pidfd_getfd-y.c: Likewise. + * tests/.gitignore: Add pidfd_getfd and pidfd_getfd-y. + * tests/pure_executables.list: Likewise. + * tests/gen_tests.in: Add pidfd_getfd and pidfd_getfd-y tests. + +2020-03-30 Eugene Syromyatnikov + + Move printpidfd from kcmp.c to util.c. + And rename it to print_pid_fd in an attempt to minimise confusion with + the kernel's pidfd concept. + + * kcmp (PRINT_FIELD_PIDFD, SYS_FUNC(kcmp)): Change printpidfd calls to + print_pid_fd. + (printpidfd): Move it... + * util.c (print_pid_fd): ...here. Drop the static qualifier, update + the comment describing why this is a stub. + * defs.h (print_pid_fd): New declaration. + +2020-03-30 Eugene Syromyatnikov + + open: implement openat2 syscall decoding. + Introduced by Linux commit v5.6-rc1~133^2~2. + + * configure.ac (AC_CHECK_HEADERS): Check for linux/openat2.h. + * defs.h (print_numeric_umode_t_64): New declaration. + * linux/syscallent-common.h ([BASE_NR + 437]): Wire up openat2. + * types/openat2.h: New file. + * open.c: Include "print_fields.h", "types/openat2.h", + and "xlat/open_resolve_flags.h". + (sprint_open_modes64): Rename from sprint_open_modes, change argument + type to uint64_t. + (sprint_open_modes): New function, a wrapper for sprint_open_modes64 + with argument type of unsigned int. + (tprint_open_modes64): Rename from tprint_open_modes, change argument + type to uint64_t, call sprint_open_modes64 instead of sprint_open_modes. + (tprint_open_modes): New function, a wrapper for tprint_open_modes64 + with an argument of type unsigned int. + (print_open_how): New function. + (SYS_FUNC(openat2)): New decoder. + * printmode.c (print_numeric_umode_t_64): New function. + * tests/openat2.c: New file. + * tests/openat2-Xabbrev.c: Likewise. + * tests/openat2-Xraw.c: Likewise. + * tests/openat2-Xverbose.c: Likewise. + * tests/openat2-v.c: Likewise. + * tests/openat2-v-y.c: Likewise. + * tests/openat2-v-y-Xabbrev.c: Likewise. + * tests/openat2-v-y-Xraw.c: Likewise. + * tests/openat2-v-y-Xverbose.c: Likewise. + * tests/openat2-y.c: Likewise. + * tests/.gitignore: Add openat2, openat2-Xabbrev, openat2-Xraw, + openat2-Xverbose, openat2-v, openat2-v-y, openat2-v-y-Xabbrev, + openat2-v-y-Xraw, openat2-v-y-Xverbose, openat2-y. + * tests/pure_executables.list: Likewise. + * tests/gen_tests.in: Add openat2, openat2-Xabbrev, openat2-Xraw, + openat2-Xverbose, openat2-v, openat2-v-y, openat2-v-y-Xabbrev, + openat2-v-y-Xraw, openat2-v-y-Xverbose, openat2-y tests. + * xlat/open_resolve_flags.in: New file. + +2020-03-30 Eugene Syromyatnikov + + Move print_nonzero_bytes from clone.c to util.c. + As it is to be used elsewhere. + + * clone.c (print_nonzero_bytes): Move it... + * util.c (print_nonzero_bytes): ...here. Remove static qualifier. + * defs.h (print_nonzero_bytes): New declaration. + +2020-03-30 Eugene Syromyatnikov + + travis: remove ppc64le builds. + They are currently unusable, permanently failing with + "Disk quota exceeded" error diagnostics. + + * .travis.yml (arch: ppc64le): Remove. + +2020-03-30 Dmitry V. Levin + + xtensa: switch to PTRACE_GETREGS API. + Implement PTRACE_GETREGS API introduced on xtensa by Linux kernel commit + v2.6.13-rc1~68^2~366. + + * configure.ac [xtensa]: Remove arch_enable_Werror=no. + * linux/xtensa/get_syscall_result.c: Remove. + * Makefile.am (EXTRA_DIST): Remove it. + * linux/xtensa/arch_regs.c (xtensa_regs): New variable. + (ARCH_REGS_FOR_GETREGS, ARCH_PC_REG, ARCH_SP_REG): New macros. + (xtensa_a2, ARCH_PC_PEEK_ADDR, ARCH_SP_PEEK_ADDR): Remove. + * linux/xtensa/get_error.c (arch_get_error): Use xtensa_regs.a[2]. + * linux/xtensa/get_syscall_args.c (arch_get_syscall_args): Use + xtensa_regs.a. + * linux/xtensa/set_error.c (arch_set_error, arch_set_success): Use + xtensa_regs.a[2]. + * NEWS: Mention this change. + +2020-03-30 Dmitry V. Levin + + sh64: switch to PTRACE_GETREGS API. + Implement PTRACE_GETREGS API introduced on sh64 by Linux kernel commit + v2.6.28-rc1~99^2~56. + + * configure.ac [sh64]: Remove arch_enable_Werror=no. + * linux/sh64/arch_regs.h: Remove. + * linux/sh64/get_syscall_result.c: Likewise. + * Makefile.am (EXTRA_DIST): Remove them. + * linux/sh64/arch_regs.c (sh64_regs): New variable. + (ARCH_REGS_FOR_GETREGS, ARCH_PC_REG, ARCH_SP_REG): New macros. + (sh64_r9, ARCH_PC_PEEK_ADDR, ARCH_SP_PEEK_ADDR): Remove. + * linux/sh64/get_error.c (arch_get_error): Use sh64_regs.regs[9]. + * linux/sh64/get_scno.c (arch_get_scno): Use sh64_regs.regs[9]. + * linux/sh64/get_syscall_args.c (arch_get_syscall_args): Use sh64_regs.regs. + * linux/sh64/set_error.c (arch_set_error, arch_set_success): Use + sh64_regs.gr[9]. + * linux/sh64/set_scno.c (arch_set_scno): Use sh64_regs.regs[9]. + * NEWS: Mention this change. + +2020-03-30 Dmitry V. Levin + + sh: switch to PTRACE_GETREGS API. + Implement PTRACE_GETREGS API introduced on sh by Linux kernel commit + v2.6.28-rc1~99^2~56. + + * configure.ac [sh]: Remove arch_enable_Werror=no. + * linux/sh/get_syscall_result.c: Remove. + * Makefile.am (EXTRA_DIST): Remove it. + * linux/sh/arch_regs.c (sh_regs): New variable. + (ARCH_REGS_FOR_GETREGS, ARCH_PC_REG, ARCH_SP_REG): New macros. + (sh_r0, ARCH_PC_PEEK_ADDR, ARCH_SP_PEEK_ADDR): Remove. + * linux/sh/arch_getrval2.c (getrval2): Use sh_regs.regs[1]. + * linux/sh/get_error.c (arch_get_error): Use sh_regs.regs[0]. + * linux/sh/get_scno.c (arch_get_scno): Use sh_regs.regs[3]. + * linux/sh/get_syscall_args.c (arch_get_syscall_args): Use sh_regs.regs. + * linux/sh/set_error.c (arch_set_error, arch_set_success): Use + sh_regs.gr[0]. + * linux/sh/set_scno.c (arch_set_scno): Use sh_regs.regs[3]. + * NEWS: Mention this change. + +2020-03-30 Eugene Syromyatnikov + + v4l2: use PRINT_FIELD_* macros, add abbreviating in print_v4l2_queryctrl + * v4l2.c (print_v4l2_queryctrl): Use PRINT_FIELD_XVAL for the type field + printing; use PRINT_FIELD_D for minimum, maximum, step, and + default_value fields printing; use PRINT_FIELD_FLAGS for the flags field + printing; print minimum, maximum, step, default_value, and flags fields + only if abbrev(tcp) is not set. + * tests/ioctl_v4l2-success.c: Update expected output. + + Suggested-by: Philippe De Muyter + References: https://github.com/strace/strace/issues/63 + +2020-03-30 Eugene Syromyatnikov + + v4l2: simplify print_v4l2_queryctrl and use print_v4l2_cid. + Instead of fragile hacks aroung V4L2_CTRL_FLAG_NEXT_CTRL flag, (always) + save the id field on entering, restore it later on exiting, and print it + second time only if it has changed. That also simplifies the flow + with clear entering/exiting code parts separation. + + The usage of print_v4l2_cid for id field printing has introduced several + (anticipated) output formatting changes, hence the changes in expected + output. + + * v4l2.c (print_v4l2_queryctrl): Save c.id on entering, print it using + print_v4l2_cid with next_flags set to true, and return 0; remove + "entering(tcp) || get_tcb_priv_ulong(tcp)" logic; restore the entering + id value into entry_id variable on exiting, compare it to the exiting + c.id value and print c.id again if it is different; do not check if tcp + is exiting; always return RVAL_IOCTL_DECODED at the end of the function. + * tests/ioctl_v4l2.c: Update expected output. + * tests/ioctl_v4l2-success.c: Likewise. + +2020-03-30 Eugene Syromyatnikov + + v4l2: add support for V4L2_CTRL_FLAG_NEXT_* flags printing to print_v4l2_cid + * v4l2.c: Move "xlat/v4l2_control_query_flags.h" inclusion before + print_v4l2_cid. + (print_v4l2_cid): Remove const qualifier from cid, add bool next_flags + argument; print v4l2_control_query_flags and NAND them from cid if they + are present. + (print_v4l2_control): Pass false as next_flags to the print_v4l2_cid + call. + + References: https://github.com/strace/strace/issues/63 + +2020-03-30 Eugene Syromyatnikov + + xlat: add generation of flags-related fields. + Generate known flags mask and maximum string length. + + * xlat.h (struct xlat): Add fields flags_strsz and flags_mask. + * xlat/gen.sh (print_xlat, print_xlat_pair): Add generation of + XLAT_VAL_n and XLAT_STR_n macros. + (gen_header): Generate flags_strsz and flags_mask fields' values using + the generated XLAT_VAL_n and XLAT_STR_n macros, undefine them + afterwards. + +2020-03-30 Eugene Syromyatnikov + + v4l2: handle -Xraw in print_v4l2_cid. + Print class ID as simple hex value in that case. + + * v4l2.c (print_v4l2_cid): Print cid as hex and return if + xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW. + +2020-03-30 Eugene Syromyatnikov + + v4l2: use xsprintf instead of asprintf in print_v4l2_cid. + Avoid an allocation and steamline code a bit. + + * v4l2.c (print_v4l2_cid): Change tmp_str to a stack-allocated char array, + print to it with xsprintf, eliminate no longer needed free() call. + +2020-03-30 Eugene Syromyatnikov + + v4l2: provide V4L2_CTRL_FLAG_NEXT_CTRL in an xlat. + * xlat/v4l2_control_query_flags.in: New file. + * v4l2.c: Include "xlat/v4l2_control_query_flags.h". + (print_v4l2_queryctrl): Remove "ifdef V4L2_CTRL_FLAG_NEXT_CTRL" guard. + * tests/ioctl_v4l2.c [!V4L2_CTRL_FLAG_NEXT_CTRL] + (V4L2_CTRL_FLAG_NEXT_CTRL): New macro. + (main) [!V4L2_CTRL_FLAG_NEXT_CTRL]: Remove. + + References: https://bugzilla.redhat.com/show_bug.cgi?id=1758201 + +2020-03-30 Eugene Syromyatnikov + + v4l2: decode frame intervals/sizes unconditionally. + * configure.ac (AC_CHECK_TYPES): Check for struct v4l2_frmsizeenum + and struct v4l2_frmivalenum. + * types/v4l2.h (struct_v4l2_frmsize_discrete, struct_v4l2_frmsize_stepwise, + struct_v4l2_frmsizeenum, struct_v4l2_frmival_stepwise, + struct_v4l2_frmivalenum): New type definitions. + v4l2.c: Remove "ifdef VIDIOC_ENUM_FRAMESIZES" guards. + * xlat/v4l2_ioctl_cmds.in (VIDIOC_ENUM_FRAMESIZES, + VIDIOC_ENUM_FRAMEINTERVALS): Uncomment. + + References: https://bugzilla.redhat.com/show_bug.cgi?id=1758201 + +2020-03-30 Eugene Syromyatnikov + + v4l2: always decode VIDIOC_*_EXT_CTRLS ioctl commands. + * types/v4l2.h (struct_v4l2_area, struct_v4l2_ext_control, + struct_v4l2_ext_controls): New type definitions. + * v4l2.c (print_v4l2_ext_control, print_v4l2_ext_controls): Do not guard + with VIDIOC_S_EXT_CTRLS anymore. + (v4l2_ioctl) : Likewise. + (print_v4l2_ext_control): Do not guard size and string field printing + with HAVE_STRUCT_V4L2_EXT_CONTROL_STRING. + * xlat/v4l2_ioctl_cmds.in (VIDIOC_G_EXT_CTRLS, VIDIOC_S_EXT_CTRLS, + VIDIOC_TRY_EXT_CTRLS): Uncomment. + + References: https://bugzilla.redhat.com/show_bug.cgi?id=1758201 + +2020-03-30 Eugene Syromyatnikov + + v4l2: bundle struct v4l2_format and related types. + * configure.ac (AC_CHECK_TYPES): Check for struct v4l2_meta_format, + struct v4l2_pix_format_mplane, struct v4l2_plane_pix_format, + and struct v4l2_sdr_format. + * types/v4l2.h (struct_v4l2_clip, struct_v4l2_format): Typedef to an anonymous + type definition. + (struct_v4l2_pix_format, struct_v4l2_plane_pix_format, + struct_v4l2_pix_format_mplane, struct_v4l2_window, + struct_v4l2_vbi_format, struct_v4l2_sliced_vbi_format, + struct_v4l2_sliced_vbi_cap, struct_v4l2_sdr_format, + struct_v4l2_meta_format): New typedefs. + * v4l2.c (print_v4l2_format_fmt): Remove guard macros, decode + fmt.win.global_alpha and fmt.sdr.buffersize only when they are non-zero. + + References: https://bugzilla.redhat.com/show_bug.cgi?id=1758201 + +2020-03-30 Eugene Syromyatnikov + + v4l2: provide struct v4l2_capability definition. + * types/v4l2.h (struct_v4l2_capability): New typedef. + * v4l2.c: Check struct v4l2_capability + with CHECK_V4L2_STRUCT_RESERVED_SIZE. + (print_v4l2_capability): Change type of caps variable + to struct_v4l2_capability; drop HAVE_STRUCT_V4L2_CAPABILITY_DEVICE_CAPS + guard; print device_caps field only if it's non-zero. + + References: https://bugzilla.redhat.com/show_bug.cgi?id=1758201 + +2020-03-30 Eugene Syromyatnikov + + v4l2: bundle struct v4l2_create_buffers definition. + * configure.ac (AC_CHECK_TYPES): Add a check for + struct v4l2_create_buffers definition. + * types/v4l2.h: New file. + * v4l2.c (DEF_MPERS_TYPE(struct_v4l2_create_buffers)): Remove + VIDIOC_CREATE_BUFS guard. + (struct_v4l2_create_buffers): Remove typedef. + (struct_v4l2_buffer, struct_v4l2_clip, struct_v4l2_ext_control, + struct_v4l2_ext_controls, struct_v4l2_format, struct_v4l2_framebuffer, + struct_v4l2_input, struct_v4l2_standard): Move to types/v4l2.h. + [HAVE_STRUCT_V4L2_CREATE_BUFFERS]: Check struct v4l2_create_buffers + with CHECK_V4L2_STRUCT_RESERVED_SIZE. + * xlat/v4l2_ioctl_cmds.in (VIDIOC_CREATE_BUFS): Uncomment. + + References: https://bugzilla.redhat.com/show_bug.cgi?id=1758201 + +2020-03-30 Eugene Syromyatnikov + + v4l2: add V4L2 ioctl command constant macros. + For now, only those that we support, and only for those we don't + conditionalise in code, since the fall-back definitions require + the relevant type definitions, and not all of them are always + available. + + * xlat/v4l2_ioctl_cmds.in: New file. + * v4l2.c: Include "xlat/v4l2_ioctl_cmds.h" under XLAT_MACRO_ONLY + definition. + +2020-03-30 Eugene Syromyatnikov + + v4l2: add shorthand macros for v4l2 type checks. + Some wrappers for common static_assert checks. + + * v4l2.c (CHECK_V4L2_STRUCT_SIZE, CHECK_V4L2_RESERVED_SIZE. + CHECK_V4L2_STRUCT_RESERVED_SIZE): New macros. + + References: https://bugzilla.redhat.com/show_bug.cgi?id=1758201 + +2020-03-30 Eugene Syromyatnikov + + v4l2: improve buffer flag decoding. + * xlat/v4l2_buf_flags.in: Add fallback values. + * xlat/v4l2_buf_flags_masks.in: New file. + * xlat/v4l2_buf_flags_ts_src.in: Likewise. + * xlat/v4l2_buf_flags_ts_type.in: Likewise. + * v4l2.c: Include xlat/v4l2_buf_flags_ts_type.h, + xlat/v4l2_buf_flags_ts_src.h, xlat/v4l2_buf_flags_masks.h. + (print_v4l2_buffer_flags): New function. + (print_v4l2_buffer): Call print_v4l2_buffer_flags for printing flags field. + * tests/ioctl_v4l2-success.c: Update expected output. + + References: https://github.com/strace/strace/issues/63 + +2020-03-30 Eugene Syromyatnikov + + v4l2: use standard kernel version printing routine. + The way kernel version is printed in print_v4l2_capability was + non-standard, didn't respect xlat styles, and was incorrect for major + values 256 and greater. Moreover, there is a routine that exists + specifically for this purpose now. Let's use it and solve all + the aforementioned issues. + + * v4l2.c (print_v4l2_capability): Use print_kernel_version for the + kernel version printing. + * tests/ioctl_v4l2-success.c: Update the expected output. + +2020-03-30 Eugene Syromyatnikov + + tests: add v4l2 ioctl success injection-based tests. + * tests/ioctl_v4l2-success.c: New file. + * tests/ioctl_v4l2-success-Xabbrev.c: Likewise. + * tests/ioctl_v4l2-success-Xraw.c: Likewise. + * tests/ioctl_v4l2-success-Xverbose.c: Likewise. + * tests/ioctl_v4l2-success-v.c: Likewise. + * tests/ioctl_v4l2-success-v-Xabbrev.c: Likewise. + * tests/ioctl_v4l2-success-v-Xraw.c: Likewise. + * tests/ioctl_v4l2-success-v-Xverbose.c: Likewise. + * tests/.gitignore: Add ioctl_v4l2-success, + ioctl_v4l2-success-Xabbrev, ioctl_v4l2-success-Xraw, + ioctl_v4l2-success-Xverbose, ioctl_v4l2-success-v, + ioctl_v4l2-success-v-Xabbrev, ioctl_v4l2-success-v-Xraw, + ioctl_v4l2-success-v-Xverbose. + * tests/Makefile.am (check_PROGRAMS): Likewise. + * tests/gen_tests.in: Add ioctl_v4l2-success, + ioctl_v4l2-success-Xabbrev, ioctl_v4l2-success-Xraw, + ioctl_v4l2-success-Xverbose, ioctl_v4l2-success-v, + ioctl_v4l2-success-v-Xabbrev, ioctl_v4l2-success-v-Xraw tests, + * tests/tests.h (struct strval32): New type, similar to struct strval64. + + tests: use ioctl-success.sh for ioctl_perf-success test. + * tests/ioctl_perf-success.test: Remove. + * tests/Makefile.am (DECODER_TESTS): Remove it. + * tests/gen_tests.in: Add ioctl_perf-success test. + +2020-03-30 Eugene Syromyatnikov + + tests: always check ioctl_perf-success. + It makes little sense to conditionalise this test, since it bundles + all the required definitions and types in case of absense of them + in the kernel headers. + + * tests/ioctl_perf-success.c: Remove HAVE_LINUX_PERF_EVENT_H guard, + update directives' indentation. + (include ): Put under HAVE_LINUX_PERF_EVENT_H guard. + +2020-03-30 Eugene Syromyatnikov + + tests: add a runner for ioctl decoder tests that use success injection. + * tests/ioctl-success.sh: New file. + * tests/Makefile.am (EXTRA_DIST): Add it. + + v4l2: print capability and rxsubchans fields of struct v4l2_tuner as flags + * v4l2.c (print_v4l2_tuner): Use printflags instead of printxval + for printing capability and rxsubchans fields of struct v4l2_tuner. + +2020-03-30 Eugene Syromyatnikov + + v4l2: comment unknown tuner types with "V4L2_TUNER_???" and not "V4L2_TUNER_TYPE_???" + All the xlat constants include only "V4L2_TUNER_" part. + + * v4l2.c (print_v4l2_tuner) : Change + the last argument from V4L2_TUNER_TYPE_???" to "V4L2_TUNER_???" + +2020-03-30 Eugene Syromyatnikov + + v4l2: do not print struct v4l2_control.value field name second time on exiting + To conform the output formatting in other places. + + * v4l2.c (print_v4l2_control): Do not print "value=" on exiting to + prefix the changed value. + +2020-03-30 Eugene Syromyatnikov + + v4l2: print exiting structure fields as a separate structure. + To conform with the output formatting in other places. + + * v4l2.c (print_v4l2_format, print_v4l2_streamparm): Close the structure + with "}" before the arrow and open it again with "{". + +2020-03-30 Eugene Syromyatnikov + + v4l2: print struct v4l2_standard.framelines as unsigned. + Since it is defined that way. + + * v4l2.c (print_v4l2_standard): Print framelines as unsigned. + +2020-03-30 Eugene Syromyatnikov + + v4l2: print struct v4l2_outputparm.outputmode using v4l2_capture_modes flags + As it is treated the same way as struct v4l2_captureparm.capturemode. + + * v4l2.c (print_v4l2_streamparm): Print struct + v4l2_outputparm.outputmode using v4l2_capture_modes flags. + +2020-03-30 Eugene Syromyatnikov + + v4l2: print struct v4l2_{capture,output}parm.extendedmode as hex. + As it is likely to be treated similarly to capturemode/outputmode, which + are bit sets. + + * v4l2.c (print_v4l2_streamparm): Print extendedmode field as hex. + * tests/ioctl_v4l2.c: Update expected output. + +2020-03-30 Eugene Syromyatnikov + + tests/fill_memory: add 16-bit-wide and 32-bit-wide memory-filling routines + * tests/tests.h (fill_memory16_ex, fill_memory16, fill_memory32_ex, + fill_memory32): New declarations. + * tests/fill_memory.c (fill_memory16_ex, fill_memory16, + fill_memory32_ex, fill_memory32): New functions. + + tests: move struct strval64 definition to tests.h. + * tests/fanotify_mark.c (struct strval64): Move it... + * tests/tests.h: ...here. Include . + + v4l2: remove spaces around "=" in struct v4l2_buffer.timestamp output. + * v4l2.c (print_v4l2_buffer): Remove spaces around equality sign + in ", timestamp = ". + +2020-03-30 Eugene Syromyatnikov + + v4l2: print struct v4l2_vbi_format.flags as flags. + Since V4L2_VBI_UNSYNC and V4L2_VBI_INTERLACED are treated as independent + bits in code. + + * v4l2.c (print_v4l2_format_fmt): Use printflags instead of printxval + for f->fmt.vbi.flags printing. + + Fixes: v4.17~103 "v4l2: Implement decoding of the remaining V4L2_BUF_TYPE_* types" + +2020-03-30 Eugene Syromyatnikov + + v4l2: print struct v4l2_vbi_format.start elements as signed integers. + Since they are defined in videodev2.h that way. + + * v4l2.c (dprint_ioctl_v4l2): Print struct v4l2_vbi_format.start + elements using %d and not %u. + * tests/ioctl_v4l2.c (print_v4l2_format_fmt): Likewise. + + Fixes: v4.17~103 "v4l2: Implement decoding of the remaining V4L2_BUF_TYPE_* types" + +2020-03-30 Eugene Syromyatnikov + + tests/ioctl_v4l2: add checks for decoding unknown/unsupported commands. + * tests/ioctl_v4l2.c: Include . + (main): Add checks for decoding of unknown and unsupported ioctl + commands that have 'V' command type. + +2020-03-30 Eugene Syromyatnikov + + ioctl: re-define broken _IOC_SIZE on sparc. + _IOC_SIZE macro definition on sparc breaks the invariant + + _IOC_SIZE(_IOC(dir, type, nr, size)) == size + + for _IOC_DIR(val) that contains neither _IOC_READ nor _IOC_WRITE, + so it is unsuitable for strace's purposes. Re-define it in a way + that preserves the aforementioned invariant. + + * ioctl.c [SPARC || SPARC64] (_IOC_SIZE): Re-define. + +2020-03-29 Eugene Syromyatnikov + + v4l2: short-circuit handling of unknown buffer types. + We do not need to call print_v4l2_format_fmt on exiting to get empty + output again. + + * v4l2.c (print_v4l2_format_fmt): Add a default branch that returns + false. + +2020-03-29 Eugene Syromyatnikov + + tests/ioctl_v4l2: increase coverage a bit. + Try to hit some previously missed branches. + + * tests/ioctl_v4l2.c (init_v4l2_format): Set num_planes to 1 if buffer + type is V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE; set clipcount to 3 if + buffer type is V4L2_BUF_TYPE_VIDEO_OVERLAY. + (dprint_ioctl_v4l2): Update expected output. + +2020-03-29 Eugene Syromyatnikov + + xlat: add KEY_SELECTIVE_SCREENSHOT to evdev_keycode. + * xlat/evdev_keycode.in (KEY_SELECTIVE_SCREENSHOT): New constant, + introduced by Linux commit v5.5-rc5-51-g3b059da9835c and updated + in Linux commit v5.5-rc5-55-gfbf66796a0ae. + +2020-03-29 Eugene Syromyatnikov + + debian/control: remove ppc64el from gcc-multilib architectures. + Little-endian POWER ISA has no 32-bit compat on Linux (and strace has + no mpers support on ppc64le), so gcc-multilib package is not needed + there. + + * debian/control (Build-Depends): Remove ppc64el from the list + of gcc-multilib architectures. + + Suggested-by: Dmitry V. Levin + Fixes: v4.23~364 "debian: enable mpers support for ppc64el and s390x" + +2020-03-29 Eugene Syromyatnikov + + strace: warn about -S option uselessness in absence of -c/-C. + * strace.c (init): Add sortby_set local variable. + (init) : Set sortby_set to true. + (init): Warn if sortby_set is set and cflag is not. + * tests/options-syntax.test: Add a check. + +2020-03-28 Eugene Syromyatnikov + + io_uring: add support for IORING_{UN,}REGISTER_PERSONALITY commands. + Introduced by Linux commit v5.6-rc1~123^2~5. + + * xlat/uring_register_opcodes.in (IORING_REGISTER_PERSONALITY, + IORING_UNREGISTER_PERSONALITY): New constants. + * tests/io_uring_register.c: Update expected output. + +2020-03-28 Eugene Syromyatnikov + + io_uring: support IORING_REGISTER_PROBE io_uring_register command. + Introduced by Linux commit v5.6-rc1~123^2~22. + + * xlat/uring_op_flags.in: New file. + * xlat/uring_ops.in: Likewise. + * xlat/uring_register_opcodes.in (IORING_REGISTER_PROBE): New constant. + * types/io_uring.h (struct_io_uring_probe_op, struct_io_uring_probe): + New type definitions. + * io_uring.c: Include "xlat/uring_op_flags.h", "xlat/uring_ops.h". + (print_io_uring_probe_op, print_io_uring_probe): New functions. + (SYS_FUNC(io_uring_register)): Add rc variable; print fd and opcode + on entering only, call print_io_uring_probe if opcode + is IORING_REGISTER_PROBE; print nargs if rc is non-zero or if it is + exiting; return rc in the end. + * tests/io_uring_register.c [HAVE_STRUCT_IO_URING_PROBE]: Add checks. + +2020-03-28 Eugene Syromyatnikov + + io_uring: de-indent some code in io_uring_setup decoder. + * io_uring.c (SYS_FUNC(io_uring_setup)): De-indent code in the exiting + path. + +2020-03-28 Dmitry V. Levin + + Fix various typos found using codespell tool. + * NEWS: Replace "Enchanced" with "Enhanced". + * list.h: Replace "embedded withing" with "embedded within". + * maint/gen-contributors-list.sh: Replace "contributer" + with "contributor". + * tests/futex.c: Replace "succeedes" with "succeeds". + * tests/nsyscalls-d.test: Replace "debug ouput" with "debug output". + * tests/s390_sthyi.c: Replace "descriptior" with "descriptor". + +2020-03-28 Dmitry V. Levin + + tests: fix strace-DDD.test for the case when strace has a process subreaper + The test used to assume that the process reaper has pid 1, which is not + necessarily the case, e.g. there might be a process subreaper different + from pid 1. + + * tests/get_process_reaper.c: New file. + * tests/Makefile.am (check_PROGRAMS): Add get_process_reaper. + * tests/.gitignore: Likewise. + * tests/strace-DDD.test: Invoke get_process_reaper to find out + the process reaper id, use the latter in subsequent checks + instead of pid 1. + + References: https://bugs.debian.org/947396 + Resolves: https://github.com/strace/strace/issues/129 + +2020-03-28 Eugene Syromyatnikov + + tests/ioctl_v4l2.c: whitespace fix. + +2020-03-28 Eugene Syromyatnikov + + tests: add ARG_XLAT_KNOWN and ARG_XLAT_UNKNOWN macros. + An amalgam of ARG_STR and XLAT_KNOWN/XLAT_UNKNOWN. + + * tests/tests.h (ARG_XLAT_KNOWN, ARG_XLAT_UNKNOWN): New macros. + +2020-03-28 Eugene Syromyatnikov + + tests: add v4l2 ioctl -v tests. + * tests/ioctl_v4l2-v.c: New file. + * tests/ioctl_v4l2-v-Xabbrev.c: Likewise. + * tests/ioctl_v4l2-v-Xraw.c: Likewise. + * tests/ioctl_v4l2-v-Xverbose.c: Likewise. + * tests/.gitignore: Add ioctl_v4l2-v, ioctl_v4l2-v-Xabbrev, + ioctl_v4l2-v-Xraw, ioctl_v4l2-v-Xverbose. + * tests/pure_executables.list: Likewise. + * tests/gen_tests.in (ioctl_v4l2-v, ioctl_v4l2-v-Xabbrev, + ioctl_v4l2-v-Xraw, ioctl_v4l2-v-Xverbose): New tests. + + v4l2: do not fancy-print fourcc if -Xraw is set. + * v4l2.c (print_pixelformat): Print fourcc as a hexadecimal value and + return. + * tests/ioctl_v4l2.c (dprint_ioctl_v4l2, main): Update expected output. + + tests: add ioctl_v4l2 xlat style tests. + * tests/ioctl_v4l2-Xabbrev.c: New file. + * tests/ioctl_v4l2-Xraw.c: Likewise. + * tests/ioctl_v4l2-Xverbose.c: Likewise. + * tests/.gitignore: Add ioctl_v4l2-Xabbrev, ioctl_v4l2-Xraw, + ioctl_v4l2-Xverbose. + * tests/pure_executables.list: Likewise. + * tests/gen_tests.in (ioctl_v4l2-Xabbrev, ioctl_v4l2-Xraw, + ioctl_v4l2-Xverbose): New tests. + * tests/tests.h: (XLAT_SEL, ABBR, RAW, VERB, NABBR, NRAW, NVERB): New + macros. + * tests/ioctl_v4l2.c (dprint_ioctl_v4l2): Change request + to XLAT_SEL(reqval, reqstr); use XLAT_SEL(buf_type, buf_type_string) + in printed strings. + (print_ioctl_v4l2): Pass XLAT_SEL(request, #request) instead of the + second argument. + (main): Update expected output. + +2020-03-28 Eugene Syromyatnikov + + tests: move XLAT_FMT and XLAT_ARGS macros from sock_filter-v.c to tests.h + In preparation of using elsewhere. + + * tests/sock_filter-v.c (XLAT_FMT, XLAT_ARGS): Move ... + * tests/tests.h: ... here, replacing HEX_FMT with "%#x". + +2020-03-27 Dmitry V. Levin + + hppa: switch to PTRACE_GETREGS API. + Implement PTRACE_GETREGS API introduced on hppa by Linux kernel commit + v4.7-rc1~58^2~10. + + * configure.ac [hppa]: Remove arch_enable_Werror=no. + * linux/hppa/get_syscall_result.c: Remove. + * Makefile.am (EXTRA_DIST): Remove it. + * linux/hppa/arch_regs.c (hppa_regs): New variable. + (ARCH_REGS_FOR_GETREGS, ARCH_PC_REG, ARCH_SP_REG): New macros. + (hppa_r28, PT_GR20, PT_GR28, ARCH_PC_PEEK_ADDR, ARCH_SP_PEEK_ADDR): + Remove. + * linux/hppa/get_error.c (arch_get_error): Use hppa_regs.gr[28]. + * linux/hppa/get_scno.c (arch_get_scno): Use hppa_regs.gr[20]. + * linux/hppa/get_syscall_args.c (arch_get_syscall_args): Use + hppa_regs.gr. + * linux/hppa/set_error.c (arch_set_error, arch_set_success): Use + hppa_regs.gr[28]. + * linux/hppa/set_scno.c (arch_set_scno): Use hppa_regs.gr[20]. + * NEWS: Mention this change. + +2020-03-26 Dmitry V. Levin + + build: enable compiler -Werror option by default. + If gcc is 4.8+ or clang is 6.0+, and the architecture implements either + PTRACE_GETREGS or PTRACE_GETREGSET, enable compiler -Werror option + by default. + + * configure.ac: Call st_WARN_CFLAGS and AX_PROG_CC_FOR_BUILD after + architecture checks. + (arch_enable_Werror): New variable, defined to "yes" on all architectures + except alpha, bfin, hppa, microblaze, sh, sh64, and xtensa. + * m4/st_warn_cflags.m4 (st_cv_cc_enable_Werror, st_cv_enable_Werror): + Compute new cached variables. + (AC_ARG_ENABLE(gcc-Werror)): Default to $st_cv_enable_Werror + if no option was given, do not add -Werror to WARN_CFLAGS. + [enable_gcc_Werror == yes]: Add -Werror to WARN_CFLAGS. + * m4/ax_prog_cc_for_build.m4 (AX_PROG_CC_FOR_BUILD): Redirect + st_cv_enable_Werror and st_cv_cc_enable_Werror using pushdef/popdef. + * ci/run-build-and-tests.sh (DISTCHECK_CONFIGURE_FLAGS): Add + --enable-gcc-Werror unconditionally. + +2020-03-26 Dmitry V. Levin + + tests: workaround clang compilation warnings. + Silence the following incorrect compilation warnings produced by clang: + + tests/filter_seccomp-flag.c:39:28: warning: variable 'sysent1' is not needed and will not be emitted [-Wunneeded-internal-declaration] + static const struct_sysent sysent1[] = { + tests/filter_seccomp-flag.c:45:28: warning: variable 'sysent2' is not needed and will not be emitted [-Wunneeded-internal-declaration] + static const struct_sysent sysent2[] = { + + * tests/filter_seccomp-flag.c (sysent1, sysent2): Remove static + qualifier. + +2020-03-26 Dmitry V. Levin + + tests: fix musl compilation warnings. + Silence the following types of compilation warnings generated by gcc + with musl system headers: + + tests/net-sockaddr.c: In function 'check_x25': + tests/net-sockaddr.c:430:19: warning: passing argument 2 of 'connect' from incompatible pointer type [-Wincompatible-pointer-types] + rc = connect(-1, x25, sizeof(c_x25) - 1); + ^~~ + In file included from tests/net-sockaddr.c:16:0: + /opt/musl/include/sys/socket.h:332:5: note: expected 'const struct sockaddr *' but argument is of type 'struct sockaddr_x25 *' + int connect (int, const struct sockaddr *, socklen_t); + ^~~~~~~ + + tests/so_error.c: In function 'reserve_ephemeral_port': + tests/so_error.c:40:16: warning: passing argument 2 of 'bind' from incompatible pointer type [-Wincompatible-pointer-types] + if (bind(sd, &addr, sizeof(addr)) == 0) + ^ + In file included from /opt/musl/include/netinet/in.h:10:0, + from tests/so_error.c:14: + /opt/musl/include/sys/socket.h:331:5: note: expected 'const struct sockaddr *' but argument is of type 'struct sockaddr_in *' + int bind (int, const struct sockaddr *, socklen_t); + ^~~~ + + * tests/net-sockaddr.c (check_x25): Pass a pointer of type 'void *' as + the second argument of connect() call. + * tests/so_error.c (main): Likewise. + (reserve_ephemeral_port): Pass a pointer of type 'void *' as the second + argument of bind() call. + +2020-03-23 Eugene Syromyatnikov + + count: store average time as struct timespec. + * count.c (struct call_counts): Change the type of time_avg field + to struct timespec, all users updated. + + util: change the integer type in ts_mul and ts_div to uint64_t. + * defs.h (ts_mul, ts_div): Change the type of the last argument + to uint64_t. + * util.c (ts_mul, ts_div): Likewise. + +2020-03-23 Eugene Syromyatnikov + + count: use dashes in option argument names. + Dashes are more common among long optiona arguments, so let's support + (and prefer) them. + + * count.c (column_aliases): Add variants with dashes for aliases with + underscores. + * strace.1.in (.SS Statistics): Use dashes in column names in -S and -U + option descriptions. + * strace.c (usage): Likewise. + * tests/options-syntax.test: Add checks. + * tests/strace-S.test: Use dashes in some column names. + +2020-03-23 Eugene Syromyatnikov + + count: add information about minimum and maximum call duration. + * count.c (struct call_counts): Add time_min, time_max fields. + (max_ts): New constant. + (enum count_summary_columns): Add CSC_TIME_MIN, CSC_TIME_MAX. + (count_syscall): Fill time_min field with max_ts in counts + initialisation, update time_min and time_max. + (min_time_cmp, max_time_cmp): New functions. + (set_sortby): Add keys for them. + (set_count_summary_columns): Add support for time_min and time_max + fields printing. + * strace.1.in (.SH OPTIONS) <-S, -U>: Document it. + * strace.c (usage): Likewise. + * tests/strace-S.test: Add checks. + * tests/options-syntax.test: Likewise. + + Closes: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=240945 + Closes: https://github.com/strace/strace/issues/32 + +2020-03-23 Eugene Syromyatnikov + Dmitry V. Levin + + count: add ability to select columns being shown. + * count.c (set_count_summary_columns): New function. + * defs.h (set_count_summary_columns): New declaration. + * strace.c (init) : New local variable. + (init) : Add "U:". + (init) : Add "summary-columns" long option. + (init) : Pass option argument to set_count_summary_columns. + (usage): Document it. Add missing -O/-S options to synopsis. + * strace.1.in (.SS Statistics): Likewise. + * strace.c (usage): Likewise. + * tests/options-syntax.test: Add option syntax checks. + +2020-03-23 Eugene Syromyatnikov + + count: factor out column alias names. + Since any column can be sorted now, we can maintain just an alias + to column mapping, which is also going to be used for column selection + functionality. + + * count.c (column_aliases): New static constant array. + (sort_func): New typedef. + (sortfun): Change type to sort_func. + (set_sortby): Replace alias to sort function mapping with an + column-indexed array of sorting functions in sort_fns, ajust the code + accordingly. + * tests/options-syntax.test: Add checks. + +2020-03-23 Eugene Syromyatnikov + + count: add ability to sort on avg_time field. + For completeness. + + * count.c (avg_time_cmp): New function. + (set_sortby): Add sort keys for avg_time sorting. + * strace.1.in (.SH OPTIONS) <-S>: Document it. + * strace.c (usage): Likewise. + * tests/strace-S.test: Add check. + +2020-03-23 Eugene Syromyatnikov + + count: refactor statistics calculation/output. + In preparation to extension. + + * count.c (enum count_summary_columns): New enumeration type. + (struct call_counts): Add time_avg field. + (DEF_COLUMNS): New macro. + (columns, visible): New variables. + (num_chars): New function. + (call_summary_pers): Calculate aggregate data first, then output table + based on columns configuration. + +2020-03-23 Eugene Syromyatnikov + + xlat: wire up PR_SET_IO_FLUSHER and PR_GET_IO_FLUSHER prctl options. + * xlat/prctl_options.in (PR_SET_IO_FLUSHER, PR_GET_IO_FLUSHER): New + constants, introduced by Linux kernel commit v5.6-rc1~122^2. + * prctl.c (SYS_FUNC(prctl)): Wire up PR_SET_IO_FLUSHER + and PR_GET_IO_FLUSHER options. + + xlat: sort prctl_options entries, add #sorted. + * xlat/prctl_options.in: Sort the entries, align the values, add #sorted, + add comments about PR_SET_VMA and PR_SET_PTRACER. + +2020-03-23 Eugene Syromyatnikov + + rtc: decode RTC Voltage Low value as flags. + Introduced by Linux kernel commit v5.6-rc1~71^2~57 + + * xlat/rtc_vl_flags.in: New file. + * rtc.c (decode_rtc_vl): New function. + (rtc_ioctl) : Call it instead of printnum_int. + +2020-03-23 Eugene Syromyatnikov + + rtc: bundle ioctl number definitions. + This makes decoding more reliable as it no longer depends + on definitions of these ioctl commands the kernel headers. + + * xlat/rtc_ioctl_cmds.in: New file. + * rtc.c: Include . + (rtc_ioctl): Remove RTC_VL_READ and RTC_VL_CLR guards. + +2020-03-23 Eugene Syromyatnikov + + sched: implement utilisation clamping fields decoding. + And also handle the piggybacked SCHED_FLAG_KEEP_PARAMS flag + introduced by Linux kernel commit v5.3-rc1~201^2~5. + + * xlat/sched_flags.in (SCHED_FLAG_KEEP_PARAMS, + SCHED_FLAG_UTIL_CLAMP_MIN, SCHED_FLAG_UTIL_CLAMP_MAX): New constants. + * sched_attr.h (struct sched_attr): Add sched_util_min and + sched_util_max fields. + (SCHED_ATTR_SIZE_VER1): New macro. + * sched.c (print_sched_attr): Do not print sched_policy field if + SCHED_FLAG_KEEP_PARAMS flag is set in sched_setattr; do not print + sched_nice, sched_priority, sched_runtime, sched_deadline, + and sched_period fields if SCHED_FLAG_KEEP_PARAMS flag is set + in sched_setattr; print sched_util_min and sched_util_max field if + size is at least PRINT_FIELD_U; use attr.size instead of usize in + sched_getattr for determining whether ellipsis is needed to be printed. + * tests/sched_xetattr.c: Update expected output, add checks. + +2020-03-23 Eugene Syromyatnikov + Dmitry V. Levin + + sched: add SCHED_FLAG_KEEP_POLICY flag support. + Introduced by Linux kernel commit v5.3-rc1~201^2~6. + + * xlat/sched_flags.in (SCHED_FLAG_KEEP_POLICY): New constant. + * sched.c (print_sched_attr): Add is_set variable, set it to true + if passed usize is zero, print policy if it is sched_getattr, + it is negative, or if SCHED_FLAG_KEEP_POLICY is not set. + * tests/sched_xetattr.c: Update expected output, add a check. + +2020-03-23 Eugene Syromyatnikov + + sched: refactor print_sched_attr. + Steamline it a bit and convert to PRINT_FIELD_* macros usage, + in anticipation of the upcoming changes. + + * sched.c: Include "print_fields.h". + (PRINT_SCHED_FIELD): Remove macro. + (print_sched_attr): Use PRINT_FIELD_* macros for printing fields, use + goto instead of size-checking condition block. + +2020-03-20 Dmitry V. Levin + + github: check source code for whitespace errors on every push and pull request + * .github/workflows/source-code-check.yml: New file. + +2020-03-20 Eugene Syromyatnikov + + rtnl_link: decode IFLA_PERM_ADDRESS attribute. + Introduced by Linux commit v5.6-rc1~151^2~262^2~4. + + * configure.ac (AC_CHECK_DECLS): Check for IFLA_PERM_ADDRESS. + * rtnl_link.c (ifinfomsg_nla_decoders): Wire up IFLA_PERM_ADDRESS + attribute using decode_nla_hwaddr. + * xlat/rtnl_link_attrs.in (IFLA_PERM_ADDRESS): New constant. + +2020-03-20 Eugene Syromyatnikov + + rtnl_link: use the family from ifinfomsg. + * rtnl_link.c (decode_ifla_hwaddr): New function, + decode_nla_hwaddr_family wrapper that passes the value from + struct ifinfomsg (passed in opaque data) to it. + (ifinfomsg_nla_decoders) : Use + decode_ifla_hwaddr as decoder. + (decode_ifinfomsg): Pass ifinfo as opaque_data in decode_nlattr call. + + nlattr: implement generic hardware address nlattr decoder. + * nlattr.c (decode_nla_hwaddr): New function. + * nlattr.h (DECL_NLA(hwaddr)): New declaration. + (NLA_HWADDR_FAMILY_OFFSET): New macro. + (decode_nla_hwaddr_family, decode_nla_hwaddr_nofamily): New functions. + * rtnl_link.c (ifla_info_data_bridge_nla_decoders) : + Use nlattr_hwaddr_nofamily. + * rtnl_neigh.c (decode_neigh_lladdr): Remove. + (ndmsg_nla_decoders) : Change decoder + from decode_neigh_lladdr to decode_nla_hwaddr_nofamily. + * tests/nlattr_ifla_linkinfo.c: Update expected output. + * tests/nlattr_ndmsg.c: Likewise. + +2020-03-19 Eugene Syromyatnikov + + print_mac: avoid passing sizes greater than MAX_ADDR_LEN to sprint_mac_addr + As sprint_mac_addr (rightfully) bails out on those, simply print those + as strings. + + * print_mac.c (print_mac_addr, print_hwaddr): Print address raw and + avoid calling sprint_mac_addr if the size is greater than MAX_ADDR_LEN. + +2020-03-19 Eugene Syromyatnikov + + print_mac: do not limit address length for hwaddr families 806..819. + It seems that it has been overlooked. + + * print_mac.c (hwaddr_sizes): Initialise array with default value of 255 + up to ARPHRD_VSOCKMON. + + Fixes: v4.23~129 "sock: guess ifr_hwaddr size in SIOCSIFHWADDR/SIOCGIFHWADDR" + +2020-03-19 Eugene Syromyatnikov + + rtnl_link: add IFLA_PROP_LIST and IFLA_ALT_IFNAME attribute type support + Introduced by Linux commit v5.5-rc1~174^2~448^2~4. + + * configure.ac (AC_CHECK_DECLS): Check for IFLA_PROP_LIST + and IFLA_ALT_IFNAME. + * rtnl_link.c (decode_ifla_prop_list_attr, decode_ifla_prop_list): New + functions. + (ifinfomsg_nla_decoders): Decode IFLA_PROP_LIST with + decode_ifla_prop_list, decode IFLA_ALT_IFNAME with decode_nla_str. + * tests/nlattr_ifinfomsg.c: Add checks. + * xlat/rtnl_link_attrs.in (IFLA_PROP_LIST, IFLA_ALT_IFNAME): New + constants. + +2020-03-19 Eugene Syromyatnikov + + nlattr: use QUOTE_EXPECT_TRAILING_0 in decode_nla_str. + In order to signify the absence of the trailing \0 in string + and print embedded \0 at the same time. + + * nlattr.c (decode_nla_str): Provide + QUOTE_OMIT_TRAILING_0 | QUOTE_EXPECT_TRAILING_0 flags instead + of QUOTE_0_TERMINATED flag to printstr_ex call. + +2020-03-19 Eugene Syromyatnikov + + util: add a separate flag for printing ellipsis in absence of \0 in strings + In cases where we know the size of the string to be printed + (for example, in decode_nla_str and likely somewhere else), + it is probably better to print embedded \0's (so, do not pass + QUOTE_0_TERMINATED). Unfortunately, printstr_ex doesn't have a separate + flag for printing ellipsis in case no \0 occurred at all, so let's + introduce it. + + * defs.h (QUOTE_EXPECT_TRAILING_0): New macro. + (QUOTE_0_TERMINATED, QUOTE_OMIT_LEADING_TRAILING_QUOTES, + QUOTE_OMIT_TRAILING_0): Document. + (QUOTE_FORCE_HEX, QUOTE_EMIT_COMMENT): Update values, document. + * util.c (printstr_ex): Print ellipsis not only on QUOTE_0_TERMINATED, + but also on QUOTE_EXPECT_TRAILING_0. + +2020-03-16 Eugene Syromyatnikov + + xlat: add IPPROTO_ETHERNET to inet_protocols. + * xlat/inet_protocols.in (IPPROTO_ETHERNET): New constant, introduced + by Linux commit v5.6-rc6~23^2~9. + +2020-03-15 Dmitry V. Levin + + tests: robustify read-write test. + * tests/read-write.c (main): Explicitly close descriptors 4 and 5 that + might be inherited from the parent process. + +2020-03-10 Dmitry V. Levin + + Robustify configure checks. + Prior to Linux kernel commit v3.18-rc5~22^2~32 was + incomplete: it used struct in6_addr but didn't include a header with a + definition. Apply the same workaround in configure checks as in other + parts of strace: include before . + + * configure.ac: Include before . + * types/gen.sh (gen_m4_check): Specify INCLUDES parameter in the + generated AC_CHECK_HEADERS invocation. + +2020-03-10 Eugene Syromyatnikov + + xlat: change style argument type of print_xlat_ex to uint32_t. + ...and add some documentation. Otherwise, clang complains about it: + + warning: implicit conversion from enumeration type + 'enum xlat_style_private_flags' to different enumeration type + 'enum xlat_style' [-Wenum-conversion] + print_xlat_ex(cid, "V4L2_CID_???", PXF_DEFAULT_STR); + ~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~ + + * defs.h (print_xlat_ex): Change the type of style argument to uint32_t, + add doxydoc. + * xlat.c (print_xlat_ex): Change the type of style argument to uint32_t. + +2020-03-09 Dmitry V. Levin + + util: define either ilog2_64 or ilog2_32. + Depending on the value of SIZEOF_KERNEL_LONG_T, either ilog2_64 or + ilog2_32 is used as an implementation of ilog2_klong. Do not define + the other one to pacify clang that otherwise complains with either + + util.c:1060:1: warning: unused function 'ilog2_32' [-Wunused-function] + ilog2_32(uint32_t val) + + or + + util.c:1038:1: warning: unused function 'ilog2_64' [-Wunused-function] + ilog2_64(uint64_t val) + + * util.c (ilog2_64): Define only for [SIZEOF_KERNEL_LONG_T > 4]. + (ilog2_32): Define only for [SIZEOF_KERNEL_LONG_T == 4]. + +2020-03-09 Dmitry V. Levin + + tests: include instead of + is an old stub that exists for compatibility with some + ancient systems, it just includes . + + * tests/prctl-pdeathsig.c: Include instead of . + +2020-03-09 Dmitry V. Levin + + Assume that prctl() and are always available. + They were introduced in the GNU libc back in 1997, + so we can safely use them without further checks. + + * configure.ac (AC_CHECK_FUNCS): Remove prctl. + * strace.c: Include unconditionally. + (startup_child): Do not test for HAVE_PRCTL. + * tests/prctl-name.c: Include unconditionally, do not test + for HAVE_PRCTL. + * tests/prctl-seccomp-filter-v.c: Likewise. + * tests/prctl-seccomp-strict.c: Likewise. + * tests/printpath-umovestr-undumpable.c: Likewise. + * tests/printstrn-umoven-undumpable.c: Likewise. + * tests/set_ptracer_any.c: Likewise. + * tests/seccomp-filter-v.c: Include unconditionally. + +2020-03-09 Dmitry V. Levin + + strace.1: fix typo. + * strace.1.in (.SH HISTORY): Fix spelling of OpenRISC. + + Resolves: https://github.com/strace/strace/issues/128 + +2020-03-06 Dmitry V. Levin + + print_timeval: do not use struct timeval provided by libc. + Use kernel_old_timeval_t provided by our kernel_timeval.h instead of + struct timeval provided by libc to avoid potential issues if libc + changes the definition of struct timeval to use 64-bit types on 32-bit + systems. + + * print_timeval.c: Include "kernel_timeval.h". + (timeval_t): Change from struct timeval to kernel_old_timeval_t. + + Complements: v5.5-8-g94d56c9c3 "printrusage: bundle rusage_t definition" + +2020-03-06 Dmitry V. Levin + + Move kernel_old_timeval definition to kernel_timeval.h. + It's going to be used later in print_timeval.c + + * kernel_timeval.h: Include "kernel_types.h". + (kernel_old_timeval_t): New type. + * printrusage.c: Include "kernel_timeval.h". + (struct kernel_old_timeval): Remove. + (rusage_t): Replace struct kernel_old_timeval with kernel_old_timeval_t. + +2020-03-06 Dmitry V. Levin + + printrusage: fix kernel_old_timeval definition to match the kernel. + The type of struct kernel_old_timeval.tv_usec field is the same + kernel_long_t as the type of tv_sec field, with one notable exception: + sparc64 is the only 64-bit architecture where tv_usec field is 32-bit. + + * printrusage.c (struct kernel_old_timeval) [__sparc__ && __arch64__]: + Change the type of tv_usec field from long to int. + [!(__sparc__ && __arch64__)]: Change the type of tv_usec field + from long to kernel_long_t. + + Fixes: v5.5-8-g94d56c9c3 "printrusage: bundle rusage_t definition" + +2020-03-06 Alistair Francis + + printrusage: fix kernel_old_timeval typo. + The timeval struct should contain a tv_sec and tv_usec type, + fix the typo to indicate that it's usec and not nsec. + + This member is never directly accessed here so there are no other + changes required. + + + * printrusage.c (struct kernel_old_timeval): Rename tv_nsec to tv_usec. + + Fixes: v5.5-8-g94d56c9c3 "printrusage: bundle rusage_t definition" + +2020-03-02 Paul Chaignon + Eugene Syromyatnikov + Dmitry V. Levin + + bpf: implement decoding of BPF_PROG_ATTACH replace_bpf_fd field. + * bpf_attr.h (BPF_PROG_ATTACH_struct): Add replace_bpf_fd field + introduced by Linux kernel commit v5.6-rc1~151^2~199^2~7^2~3. + (expected_BPF_PROG_ATTACH_struct_size): Update. + * bpf.c (BEGIN_BPF_CMD_DECODER(BPF_PROG_ATTACH)): Decode the new field. + * NEWS: Mention this. + * tests/bpf.c (BPF_PROG_ATTACH_checks): Check it. + + bpf: update BPF_* constants. + * xlat/bpf_attach_flags.in (BPF_F_REPLACE): New constant introduced + by Linux kernel commit v5.6-rc1~151^2~199^2~7^2~3. + * xlat/bpf_map_types.in (BPF_MAP_TYPE_STRUCT_OPS): New constant + introduced by Linux kernel commit v5.6-rc1~151^2~46^2~37^2~5. + * xlat/bpf_prog_types.in (BPF_PROG_TYPE_STRUCT_OPS): New constant + introduced by Linux kernel commit v5.6-rc1~151^2~46^2~37^2~6. + (BPF_PROG_TYPE_EXT): New constant introduced by Linux kernel commit + v5.6-rc1~151^2~46^2~1^2~2. + * NEWS: Mention this. + * tests/bpf.c (BPF_MAP_CREATE_checks, BPF_PROG_LOAD_checks, + BPF_PROG_QUERY_checks): Update checks and their expected output. + * tests/kernel_version.c (print_bpf_attr, main): Likewise. + +2020-03-02 Eugene Syromyatnikov + Dmitry V. Levin + + tests/bpf: add a guard against untested bpf_map_types updates. + * tests/bpf.c: Include "xlat/bpf_map_types.h", add a static_assert + for bpf_map_types_xdata. + (BPF_MAP_CREATE_checks): Update the first check. + + bpf: implement decoding of struct bpf_map_info.btf_vmlinux_value_type_id field + * bpf_attr.h (struct bpf_map_info_struct): Insert + btf_vmlinux_value_type_id field between ifindex and netns_dev fields + introduced by Linux kernel commit v5.6-rc1~151^2~46^2~37^2~5. + * bpf.c (print_bpf_map_info): Print btf_vmlinux_value_type_id field. + * tests/bpf-obj_get_info_by_fd.c [VERBOSE] (main): Print + btf_vmlinux_value_type_id field if the structure is big enough. + +2020-03-02 Paul Chaignon + Eugene Syromyatnikov + Dmitry V. Levin + + bpf: implement decoding of BPF_MAP_CREATE btf_vmlinux_value_type_id field + * bpf_attr.h (BPF_MAP_CREATE_struct): Add btf_vmlinux_value_type_id + field introduced by Linux kernel commit v5.6-rc1~151^2~46^2~37^2~5. + (expected_BPF_MAP_CREATE_struct_size): Update. + * bpf.c (BEGIN_BPF_CMD_DECODER(BPF_MAP_CREATE)): Decode the new field. + * NEWS: Mention this. + * tests/bpf-obj_get_info_by_fd.c (print_map_create): Update expected + output. + * tests/bpf.c (BPF_MAP_CREATE_checks): Add a check that includes + btf_vmlinux_value_type_id field. + +2020-03-01 Eugene Syromyatnikov + + ioctl: add HIDIOCGRAWUNIQ ioctl number decoding. + * ioctl.c (hiddev_decode_number): Decode HIDIOCGRAWUNIQ introduced + by Linux kernel commit v5.6-rc1~198^2~1^2. + + ioctl: fix indentation in switch clauses. + * ioctl.c: Fix indentation in switch clauses, no code changes. + + xlat: update AUDIT_* constants. + * xlat/nl_audit_types.in: Add #sorted. + (AUDIT_BPF): New constant, introduced by Linux kernel commit + v5.6-rc1~151^2~199^2~47. + + xlat: update CLONE_* constants. + * xlat/clone3_flags.in (CLONE_NEWTIME): New constant, introduced + by Linux kernel commit v5.6-rc1~177^2~41. + * xlat/setns_types.in (CLONE_NEWTIME): Likewise. + * xlat/unshare_flags.in (CLONE_NEWTIME): Likewise. + * tests/clone3.c (main): Update the expected output. + * tests/unshare.c (main): Likewise. + + xlat/unshare_flags: reorder and provide fallback definitions for constants + * xlat/unshare_flags.in: Provide fallback definitions for constants, + reorder in the ascending order, add #sorted. + * tests/unshare.c (main): Update the expected output. + + xlat: update GRND_* constants. + * xlat/getrandom_flags.in (GRND_INSECURE): New constant, introduced + by Linux kernel commit v5.6-rc1~91^2~20. + + xlat: update IPPROTO_* constants. + * xlat/inet_protocols.in (IPPROTO_MPTCP): New constant, introduced + by Linux kernel commit v5.6-rc1~151^2~118^2~8. + + xlat: update RTM_F_* constants. + * xlat/routing_flags.in: Add #sorted. + (RTM_F_NOTIFY, RTM_F_CLONED, RTM_F_EQUALIZE, RTM_F_PREFIX, + RTM_F_LOOKUP_TABLE): Add fallback definitions. + (RTM_F_FIB_MATCH): New constant, introduced by Linux kernel commit + v4.13-rc1~157^2~364^2~2. + (RTM_F_OFFLOAD, RTM_F_TRAP): New constants, introduced by Linux kernel + commit v5.6-rc1~151^2~91^2~7. + + io_uring: decode IORING_REGISTER_EVENTFD_ASYNC io_uring_reginster command + * xlat/uring_register_opcodes.in (IORING_REGISTER_EVENTFD_ASYNC): New + constant introduced by Linux kernel commit v5.6-rc1~123^2~28. + * io_uring.c (io_uring_register): Handle IORING_REGISTER_EVENTFD_ASYNC + along with IORING_REGISTER_FILES and IORING_REGISTER_EVENTFD. + * tests/io_uring_register.c (main): Check it, update expected output. + + xlat: update KVM_* constants. + * xlat/kvm_cap.in (KVM_CAP_S390_VCPU_RESETS): New constant, introduced + by Linux kernel commit v5.6-rc1~39^2~3^2~3. + + xlat: add ZONEFS_MAGIC to fsmagic. + * xlat/fsmagic.in (ZONEFS_MAGIC): New constant, introduced by Linux + kernel commit v5.6-rc1~2^2~1. + +2020-02-26 Alistair Francis + + tests/clock_nanosleep: Skip test if __NR_clock_nanosleep isn't defined. + Modern (added since Linux kernel 5.1+) 32-bit architectures don't have + the __NR_clock_nanosleep syscall, if we don't have the syscall let's + skip the test. + + + * tests/clock_nanosleep.c [!__NR_clock_nanosleep]: Skip the test. + +2020-02-26 Alistair Francis + Dmitry V. Levin + + linux/32: Split 32-bit time_t based syscalls into a separate header. + + Starting with Linux kernel v5.1, new 32-bit architectures + do not implement old 32-bit time_t based system calls, so + they should not have the corresponding syscallent records. + + * linux/32/syscallent-time32.h: New file, generated using the following + command: grep 'timex\?32)' linux/32/syscallent.h + * Makefile.am (EXTRA_DIST): Add it. + * linux/32/syscallent.h: Replace entries for 32-bit time_t based + syscalls with stub comments using the following command: + sed -i '/timex\?32)/ s/\(^\[[^]]\+\]\)[^"]*"\([^"]\+\)".*/\/\* \1 \2 \*\//' + [HAVE_ARCH_TIME32_SYSCALLS]: Include "32/syscallent-time32.h". + +2020-02-24 Eugene Syromyatnikov + + strace: disable seccomp-bpf instead of enabling following forks. + It is in line with the rest of the checks that disable seccomp-bpf + usage if it is impossible. + + * strace.c (init) : Rephrase the error + if followfork is not set; set seccomp_filtering to false; do not set + followfork to true. + * tests/options-syntax.test: Update the expected output. + +2020-02-24 Eugene Syromyatnikov + + strace: warn about uselessness of -A/--output-separately in absence of -o + * strace.c (init) : Print warnings if output_separately + and/or open_append. + * tests/options-syntax.test: Check this. + + Update NEWS. + + strace: add a long option alias for -t. + * strace.c (tflag): Remove. + (tflag_scale, tflag_width, tflag_format): New static variables. + (printleader): Rewrite time stamp printing to allow custom format + and precision. + (printleader) : Use tflag_format instead of tflag + as an indicator for presence of absolute timestamps. + (parse_ts_arg): New function. + (init) : New static constants. + (init) : New variables. + (init) : Add GETOPT_TS. + (init) : Add "absolute-timestamps" and "timestamps" long + options. + (init) : Increment tflag_short instead of tflag. + (init) : Handle the new option using parse_ts_arg. + (init): Check if tflag_short is set; if tflag_long_set is set as well, + then bail out, otherwise call parse_ts_arg with the appropriate + argument; update the message that mentions -t. + (usage): Document it. + * strace.1.in (.SS Output format): Likewise. + * tests/gen_tests.in (strace--absolute-timestamps, + strace--absolute-timestamps-format-time, + strace--absolute-timestamps-format-time-precision-s, + strace--absolute-timestamps-format-time-precision-ms, + strace--absolute-timestamps-format-time-precision-us, + strace--absolute-timestamps-format-time-precision-ns, + strace--absolute-timestamps-format-unix-precision-s, + strace--absolute-timestamps-format-unix-precision-ms, + strace--absolute-timestamps-format-unix-precision-us, + strace--absolute-timestamps-format-unix-precision-ns, + strace--relative-timestamps, strace--relative-timestamps-s, + strace--relative-timestamps-ms, strace--relative-timestamps-us, + strace--relative-timestamps-ns, strace--timestamps, + strace--timestamps-time, strace--timestamps-time-s, + strace--timestamps-time-ms, strace--timestamps-time-us, + strace--timestamps-time-ns, strace--timestamps-unix-s, + strace--timestamps-unix-ms, strace--timestamps-unix-us, + strace--timestamps-unix-ns): New tests. + * tests/options-syntax.test: Add new checks. + * tests/strace-t.test: Get the option to check via command-line + arguments. + * tests/strace-tt.test: Get the precision and option to check + via command-line arguments. + * tests/strace-ttt.test: Get the precision and option to check + via command-line arguments, generate subsec_re appropriately. + +2020-02-24 Eugene Syromyatnikov + + strace: establish -qqq as an alias for --quiet=all. + Addition of thread-execve and path-resolution quiet flags introduced + discrepancy between the -qq and --quiet=all settings; let's establish + that -qqq is the ultimate quietness setting and leave the more + fine-grained control to the -e quiet/--quiet option. + + * strace.c (init) : New static constant. + (init) Supply qqqflag_qual to qualify_quiet if qflag_short is set to 3 + or higher. + (usage): Document it. + * strace.1.in: Likewise. + * tests/threads-execve--quiet-thread-execve.c: New file. + * tests/threads-execve-q.c: Likewise. + * tests/threads-execve-qq.c: Likewise. + * tests/threads-execve-qqq.c: Likewise. + * tests/.gitignore: Add threads-execve--quiet-thread-execve, + threads-execve-q, threads-execve-qq, threads-execve-qqq. + * tests/Makefile.am (check_PROGRAMS): Likewise. + (threads_execve__quiet_thread_execve_LDADD, threads_execve_q_LDADD, + threads_execve_qq_LDADD, threads_execve_qqq_LDADD): New variables. + * tests/gen_tests.in (threads-execve--quiet-thread-execve, + threads-execve-q, threads-execve-qq, threads-execve-qqq): New tests. + * tests/threads-execve.c [!PRINT_EXITED] (PRINT_EXITED): New macro. + [!PRINT_SUPERSEDED] (PRINT_SUPERSEDED): Likewise. + (thread): Put "superseded by execve in pid"... message printing under + PRINT_SUPERSEDED. + (main): Put "+++ exited with 0 +++" message printing under PRINT_EXITED. + * tests/threads-execve.test: Inject the arguments supplied to the tests + into the strace's arguments. + +2020-02-24 Dmitry V. Levin + + tests: fix require_min_nproc on systems without nproc. + * tests/init.sh (require_min_nproc): Fix typo in the check for nproc + that manifests itself in "set -e" mode. + + Fixes: v5.4~59 "tests: skip a few tests on systems with nproc == 1" + +2020-02-24 Eugene Syromyatnikov + + strace: add a long option alias for -y. + Provide a new qualifier, decode-fds, and add (hopefully) sensible + handling for it. + + * defs.h (show_fd_path): Remove declaration. + (qualify_decode_fd): New declaration. + * filter_qualify.c (decode_fd_set, decode_fd_set_updated): New + variables. + (decode_fd_str_to_uint, qualify_decode_fd): New functions. + (qual_options): Add "decode-fd" and "decode-fds" that are handled + by qualify_decode_fd. + * number_set.h (enum decode_fd_bits): New enumeration. + (decode_fd_set_updated, decode_fd_set): New declarations. + * strace.c (show_fd_path): Remove. + (init) : New static constants. + (init) : New local variable. + (init) : Add GETOPT_QUAL_FD. + (init) : Add "decode-fds" long option. + (init) : Increment yflag_short instead of show_fd_path. + (init) : Call qualify_decode_fd with either optarg + or yflag_qual is the former is NULL. + (init): Check if yflag_short is set, if decode_fd_set_updated is set + as well, bail out, call qualify_decode_fd with the appropriate set + otherwise; update the message that mentions -y. + (usage): Document it. + * strace.1.in (.SS Output format): Likewise. + * util.c: Include "number_set.h". + (printfd): Rewrite using appropriate is_number_in_set checks. + * tests/dev--decode-fds-dev.c: New file. + * tests/dev--decode-fds-path.c: Likewise. + * tests/dev--decode-fds-socket.c: Likewise. + * tests/net--decode-fds-dev-netlink.c: Likewise. + * tests/net--decode-fds-none-netlink.c: Likewise. + * tests/net--decode-fds-path-netlink.c: Likewise. + * tests/net--decode-fds-socket-netlink.c: Likewise. + * tests/pidfd_open--decode-fd-path.c: Likewise. + * tests/.gitignore: Add dev--decode-fds-dev, dev--decode-fds-path, + dev--decode-fds-socket, net--decode-fds-dev-netlink, + net--decode-fds-none-netlink, net--decode-fds-path-netlink, + net--decode-fds-socket-netlink, and pidfd_open--decode-fd-path. + * tests/pure_executables.list: Likewise. + * tests/dev-yy.c [!PRINT_DEVNUM] (PRINT_DEVNUM): New macro, define to 1. + (DEV_FMT): New macro. + (main): Parametrize the output using DEV_FMT in accordance with + PRINT_DEVNUM value. + * tests/gen_tests.in (dev--decode-fds-dev, dev--decode-fds-path, + dev--decode-fds-socket, net--decode-fds-dev-netlink, + net--decode-fds-none-netlink, net--decode-fds-path-netlink, + net--decode-fds-socket-netlink, pidfd_open--decode-fd-path): New tests. + (open_tree-P): Use the long option. + * tests/net-yy-netlink.c [!PRINT_SOCK] (PRINT_SOCK): New macro, define + to 2. + (FMT_UNBOUND, FMT_BOUND, ARG_UNBOUND, ARG_BOUND): New macros, defined + based on PRINT_SOCK value. + (main): Parametrize the output using FMT_UNBOUND, FMT_BOUND, + ARG_UNBOUND, and ARG_BOUND. + * tests/net-yy-netlink.test: Append options passed to the test instead + of "-yy". + * tests/options-syntax.test: Add checks, update expected output. + +2020-02-24 Eugene Syromyatnikov + + strace: add a long option aliases for -f and -ff. + Introduce a new option, --output-separately, and make -ff an alias + for a combination of -f and this new option. + + * defs.h (followfork): Change type to bool. + (output_separately): New declaration. + * strace.c (followfork): Change type to bool. + (output_separately): New variable. + (outf_perror, printleader, after_successful_attach, droptcb, init, + print_event_exit, print_syscall_resume): Use output_separately + instead of followfork check. + (init) : New local variable. + (init) : Add GETOPT_FOLLOWFORKS and GETOPT_OUTPUT_SEPARATELY. + (init) : Add "follow-forks" and "output-separately" long + options. + (init) : Increase followfork_short instead of followfork. + (init) : Set followfork to true. + (init) : Set output_separately to true. + (init): Fail if either both followfork_short and followfork are set, + or followfork_short >= 2 and output_separately is set; + set followfork/output_separately appropriately otherwise; + update the error messages that mention -f/-ff options with the aliases. + (init) : Set followfork to true and not 1. + (usage): Document it. + * strace.1.in (.SS Tracing): Likewise. + * tests/strace--follow-forks-output-separately.expected: New file. + * tests/Makefile.am (EXTRA_DIST): Add it. + * tests/delay.test: Use --follow-forks instead of -f. + * tests/gen_tests.in: Add strace--follow-forks-output-separately test. + * tests/looping_threads.test: Use --follow-forks instead of -f. + * tests/options-syntax.test: Add --follow-forks-related syntax checks, + update the expected output. + * tests/strace-ff.test: Add -efu as the interpreter argument; set the + arguments to ff_opt variable ("-ff" being the default) and use it + instead of -ff in the strace call; put set +f before "set -- "$LOG".*". + +2020-02-24 Eugene Syromyatnikov + + tests/syntax: add suffixes to produced log/exp files. + In order to enable inspection of them. + + * tests/syntax.sh (log_sfx): New functions. + (check_exit_status_and_stderr, check_exit_status_and_stderr_using_grep): + Get suffix from the first argument, append it to LOG/EXP usage instances; + open-code dump_log_and_fail_with in order to print the file with the + suffix. + check_e, check_e_using_grep, check_h): Assign log_sfx result to sfx, + append it to LOG/EXP usage instances, pass it to + check_exit_status_and_stderr/check_exit_status_and_stderr_using_grep. + +2020-02-19 Eugene Syromyatnikov + + strace: add arguments to --syscall-times and --relative-timestamps. + * defs.h (Tflag_scale, Tflag_width): New declarations. + * strace.c (Tflag_scale, Tflag_width, rflag_scale, rflag_width): New + variables. + (printleader): Parametrise relative timestamp printing with rflag_width + and rflag_scale. + (init) : Change second field of "relative-timestamps" and + "syscall-times" from no_argument to optional_argument. + (init) : Handle optarg, fail if the scale variable + is set to -1. + (usage): Document it. + * strace.1.in (.SS Output format): Likewise. + * syscall.c (syscall_exiting_trace): Parametrise syscall time printing + * with Tflag_width and Tflag_scale. + * tests/gen_tests.in (strace--relative-timestamps-s, + strace--relative-timestamps-ms, strace--relative-timestamps-us, + strace--relative-timestamps-ns): New tests. + * tests/options-syntax.test: New checks for --relative-timestamps and + --syscall-times option syntax. + * tests/strace--relative-timestamps-ms.expected: New file. + * tests/strace--relative-timestamps-ns.expected: Likewise. + * tests/strace--relative-timestamps-s.expected: Likewise. + * tests/strace--relative-timestamps-us.expected: Likewise. + * tests/strace--syscall-times-ms.expected: Likewise. + * tests/strace--syscall-times-ns.expected: Likewise. + * tests/strace--syscall-times-s.expected: Likewise. + * tests/strace--syscall-times-us.expected: Likewise. + * tests/Makefile.am (EXTRA_DIST): Add them. + +2020-02-19 Eugene Syromyatnikov + + util: factor out time scale parsing. + In preparation of using elsewhere. + + * defs.h (str2timescale_ex): New declaration. + (str2timescale_optarg, str2timescale_sfx): New macros. + * util.c (str2timescale_ex): New function. + (parse_ts): Remove units, unit, assign str2timescale_sfx result to a new + variable scale and use it instead of unit->val. + +2020-02-19 Eugene Syromyatnikov + + pathtrace: add a quiet flag for path resolution messages. + And also quote the paths. + + * number_set.h (enum quiet_bits): Add QUIET_PATH_RESOLVE. + * filter_qualify.c (quietstr_to_uint) : Add a string + representation for QUIET_PATH_RESOLVE. + * pathtrace.c (pathtrace_select_set): Put "Requested path"... message + under QUIET_PATH_RESOLVE flag check; process path and rpath with + string_quote. + * strace.c (usage): Document it. + * strace.1.in (.SS Output format) <-e quiet>: Likewise. + +2020-02-19 Eugene Syromyatnikov + + strace: add a quiet flag for "superseded by execve" messages. + * filter_qualify.c (quietstr_to_uint) : Add + a string representation for QUIET_THREAD_EXECVE, + * number_set.h (enum quiet_bits): Add QUIET_THREAD_EXECVE. + * strace.c (maybe_switch_tcbs): Put message printing under + QUIET_THREAD_EXECVE flag check. + (usage): Document it. + * strace.1.in (.SS Output format) <-e quiet>: Likewise. + * tests/maybe_switch_current_tcp--quiet-thread-execve.c: New file. + * tests/.gitignore: Add maybe_switch_current_tcp--quiet-thread-execve. + * tests/pure_executables.list: Likewise. + * tests/Makefile.am (maybe_switch_current_tcp__quiet_thread_execve_LDADD): + New variable. + * tests/gen_tests.in (maybe_switch_current_tcp--quiet-thread-execve): + New test. + * tests/maybe_switch_current_tcp.c [!QUIET_MSG] (QUIET_MSG): New macro. + (thread): Print "superseded"... message only is QUIET_MSG is 0. + +2020-02-19 Eugene Syromyatnikov + + syscall: print personality switch messages in tcb's output. + Personality switch is a rather normal event, it's unclear why it has + been always treated as a diagnostics/error information. Having it under + qflag makes even less sense, as it was impossible to get + this information when the -o option was used. With this change, + it is at least possible to get it with something like + + strace -f -o out --quiet=none PROG + + One caveat, though, is its rather odd format, with square brackets, + "PID=", and a dot, but it seems that we're stuck with it forever, as it + traces back for decades, albeit with a prefix change in commit + v4.11~509 ("Consistently use error_msg instead of fprintf(stderr)"). + + * syscall.c (update_personality): Use printleader/tprintf/line_ended + instead of error_msg. + * tests/bexecve.test: Add --quiet=personality to strace invocations. + * tests/strace-ff.test: Likewise. + +2020-02-19 Eugene Syromyatnikov + + strace: respect quietness setting when reporting unknown tracees. + Since the situations where these processes can appear are relatively + normal, it makes little sense to print them irrespective of quietness + setting. + + * strace.c (maybe_allocate_tcb): Put the message about exit of unknown + process under QUIET_EXIT check; put message about detach of unknown + process under QUIET_ATTACH check. + * tests/clone_parent--quiet-exit.c: New file. + * tests/clone_parent-q.c: Likewise. + * tests/clone_parent-qq.c: Likewise. + * tests/clone_ptrace--quiet-attach.c: Likewise. + * tests/clone_ptrace--quiet-exit.c: Likewise. + * tests/clone_ptrace-q.c: Likewise. + * tests/clone_ptrace-qq.c: Likewise. + * tests/.gitignore: Add clone_parent--quiet-exit, clone_parent-q, + clone_parent-qq, clone_ptrace--quiet-attach, clone_ptrace--quiet-exit, + clone_ptrace-q, and clone_ptrace-qq. + * tests/Makefile.am (check_PROGRAMS): Likewise. + * tests/gen_tests.in: Add clone_parent--quiet-exit, clone_parent-q, + clone_parent-qq, clone_ptrace--quiet-attach, clone_ptrace--quiet-exit, + clone_ptrace-q, and clone_ptrace-qq tests. + * tests/clone_parent.c [!QUIET_MSG] (QUIET_MSG): New macro. + (main): Print exit messages only if QUIET_MSG set to zero. + * tests/clone_ptrace.c [!QUIET_ATTACH] (QUIET_ATTACH): New macro. + [!QUIET_EXIT] (QUIET_EXIT): Likewise. + (main): Print information about unknown pid detach only if QUIET_ATTACH + is 0; print information about process exiting only if QUIET_EXIT is 0. + * tests/clone_ptrace.test: Add the first argument to args, add + "--quiet=personality" if it is empty. + +2020-02-19 Eugene Syromyatnikov + + strace: add long option aliases for -r, -T, and -O. + The last trivial ones. + + * strace.c (init) : Add "summary-syscall-overhead" as an alias + for 'O', "relative-timestamps" as an alias for 'r', and "syscall-times" + as an alias for 'T'. + (usage): Document it. + * strace.1.in: Likewise. + * tests/count.test: Add --summary-syscall-overhead checks. + * tests/gen_tests.in: Add strace--relative-timestamps and + strace--syscall-times tests. + * tests/strace-T.test: Allow passing option to check as the first + * argument. + * tests/strace-r.test: Likewise. + * tests/strace--relative-timestamps.expected: New file. + * tests/strace--syscall-times.expected: Likewise. + * tests/Makefile.am (EXTRA_DIST): Add them. + +2020-02-19 Eugene Syromyatnikov + + strace.1: document possible quialifier aliases. + * strace.1.in (.SS General) <-e expr>: Document possible aliases + for quialifiers. + +2020-02-19 Eugene Syromyatnikov + + strace: add long option aliases for -q. + Provide a new qualifier, quiet, and add a (hopefully) sensible handling + for it. + + * defs.h (qflag): Remove declaration. + (qualify_quiet): New declaration. + * filter_qualify.c (quiet_set, quiet_set_updated): New variables. + (quietstr_to_uint, qualify_quiet): New functions. + (qual_options): Add "quiet", "silence", "silent", "q" that are handled + by qualify_quiet. + * number_set.h (enum quiet_bits): New enumeration. + (quiet_set_updated, quiet_set): New declarations. + * strace.c (qflag): Remove. + (detach, attach_tcb, maybe_allocate_tcb): Change qflag check to + is_number_in_set(QUIET_ATTACH, quiet_set). + (init) : New static constants. + (init) : Add GETOPT_QUAL_QUIET. + (init) : Add "quiet", "silent", "silence". + (init) : Increment qflag_short instead of qflag. + (init) : Call qualify_quiet with either optarg + or qflag_qual is the former is NULL. + (init) : Check qflag_short and quiet_set_updated + instead of qflag for changing the default quietness setting. + (init): Check if qflag_short is set, if quiet_set_updated is set as well, + bail out, call qualify_quiet with the appropriate set otherwise. + (print_exited): Change qflag check to + is_number_in_set(QUIET_EXIT, quiet_set). + (usage): Document it. + * strace.1.in: Likewise. + * syscall.c (update_personality): Change qflag check to + is_number_in_set(QUIET_PERSONALITY, quiet_set). + * tests/clone-flags.test: Use --silence=exits instead of -qq. + * tests/count-f.test: Use -e silent=attach instead of -q. + * tests/options-syntax.test: Add checks. + * tests/strace-D.test: Use -e q=attach instead of -q. + +2020-02-19 Eugene Syromyatnikov + + strace: add long option aliases for -x. + * defs.h (enum xflag_opts): New enumeration. + * strace.c (xflag_str): New static variable. + (init) : New variable. + (init) : Add GETOPT_HEX_STR. + (init) : Add "string-in-hex" long option. + (init) : Parse the argument using find_arg_val. + (init): Fail if both xflag_long and xflag are set; copy xflag_long + to xflag if only the former is set. + (usage): Document it. + * strace.1.in: Likewise. + * tests/gen_tests.in (strace--strings-in-hex, + strace--strings-in-hex-all, strace--strings-in-hex-non-ascii, strace-x, + strace-xx): New tests. + * tests/pure_executables.list: Add them. + * tests/.gitignore: Likewise. + * tests/options-syntax.test: Add checks. + * tests/strace--strings-in-hex-all.c: New file. + * tests/strace--strings-in-hex-non-ascii.c: Likewise. + * tests/strace--strings-in-hex.c: Likewise. + * tests/strace-x.c: Likewise. + * tests/strace-xx.c: Likewise. + + strace: add long option aliases for -z and -Z. + * strace.c (init) : Add "successful-only" and "failed-only" + long options for -z and -Z, respectively. + (init): Update the related error message. + (usage): Document it. + * strace.1.in: Likewise. + * tests/options-syntax.test: Add checks, update expected output. + * tests/status-failed-long.c: New file. + * tests/status-failed-status.c: Likewise. + * tests/status-successful-long.c: Likewise. + * tests/status-successful-status.c: Likewise. + * tests/.gitignore: Add them. + * tests/pure_executables.list: Likewise + * tests/gen_tests.in (status-failed-long, status-failed-status, + status-successful-long, status-successful-status): New tests. + +2020-02-19 Eugene Syromyatnikov + + strace: add --daemonize long option alias for -D. + Don't fail those who provide --daemonise or --daemonized as well. + + Since multiple -D instances change behaviour and with long options + the last instance wins, it is better just to forbid the simultaneous + usage of the short and long option variants. + + * strace.c (daemonize_str): New static constant. + (init) : New variable. + (init) : Add GETOPT_DAEMONIZE. + (init) : Add "daemonize" long option variants. + (init) : Use find_arg_val for argument parsing. + (init): Fail if both daemonized_tracer_long and daemonized_tracer are + set; copy daemonized_tracer_long to daemonized_tracer if only the former + is set; update the error messages that mention -D option with the alias. + (usage): Document it. + * strace.1.in: Likewise. + * tests/options-syntax.test: Add checks, update existing ones. + +2020-02-19 Eugene Syromyatnikov + + strace: mention long option aliases in error messages. + If a user has provided a long option alias, current error messages could + be confusing otherwise. + + * strace.c (init): Augment error messages with long option aliases where + appropriate. + * tests/options-syntax.test: Update expected output. + +2020-02-19 Eugene Syromyatnikov + + strace: print long options in the option error message. + If a long option alias is used with incorrect argument, it's better show it + in the error message instead of the short option equivalent. + + * strace.c (error_opt_arg): Add lopt argument, print its name + if it is non-NULL. + (init): Add lopt_idx variable, pass it to getopt_long, set loop-local + lopt variable to an option pointer based on lopt_idx; pass lopt + in error_opt_arg calls. + * tests/options-syntax.test: Update expected output. + +2020-02-19 Eugene Syromyatnikov + + strace: add a long option alias for -I. + And add more human-comprehensible values for it. + + * strace.c (parse_interruptible_arg): New function. + (init) : Add "interruptible" long option alias for 'I'. + (init) : Call parse_interruptible_arg. + (usage): Document new long option alias and values. + * strace.1.in (parse_interruptible_arg): Likewise. + * tests/options-syntax.test: Add checks for the new syntax. + * tests/sigblock.test: Introduce -I syntax variety. + * tests/sigign.test: Likewise. + +2020-02-19 Eugene Syromyatnikov + + filter_qualify: rewrite statusstr_to_uint using find_xlat_val. + * filter_qualify.c (*statuses): Move inside statusstr_to_uint, change + the type to const struct xlat_data[], change the initialisation + accordingly. + (statusstr_to_uint): Call find_arg_val instead of open-coding search + in a string array. + +2020-02-19 Eugene Syromyatnikov + + util: rewrite parse_ts suffix matching using find_xlat_val. + A known behavioural change is that suffix can have any case, which + matches other places of option argument parsing. + + * util.c (parse_ts): Change type of units to struct xlat_data[]; move + definition of units variable to its first usage, change its type + to const struct xlat_data *; use find_xlat_val instead of open-coding + search in units array. + +2020-02-19 Eugene Syromyatnikov + + util: introduce find_xlat_val and find_arg_val. + The commonly open-coded snippet throughout the code, especially in the + argument parsing code, is searching in a string-value pair array of + string, so let's provide a function (or, more precisely, two functions, + one generic and another one that targets specifically argument parsing) + that does precisely that, on top of existing string-value pair + struct xlat_data type. + + * defs.h (enum find_xlat_flag_bits, enum find_xlat_flags): New + enumerations. + (find_xlat_val_ex, find_arg_val_): New declarations. + (find_xlat_val, find_xlat_val_case, find_arg_val): New macros. + * util.c (find_xlat_val_ex, find_arg_val_): New functions. + +2020-02-19 Eugene Syromyatnikov + + syscall: handle fd printing regardless of show_fd_path setting. + As of now, the way the higher 32 bits of the syscall return value + are printed depends on the show_fd_path (-y) setting: if it is set, + they are trimmed, which is pretty inconsistent. + + * syscall.c (syscall_exiting_trace) : Check if tcp->u_rval + fits in int before passing it to printfd instead of a (redundant) show_fd_path + check (that is also done inside printfd itself). + * tests/bpf-success-long-y.c: New file. + * tests/bpf-success-long-y.test: New test. + * tests/.gitignore: Add bpf-success-long-y. + * tests/Makefile.am (check_PROGRAMS): Likewise. + (DECODER_TESTS): Add bpf-success-long-y.test. + * tests/bpf.c [!FD0_PATH] (FD0_PATH): New macro. + [INJECT_RETVAL] (sys_bpf): Print INJECT_RETVAL as long. + (BPF_MAP_CREATE_checks, BPF_OBJ_PIN_checks, BPF_OBJ_PIN_checks, + BPF_PROG_ATTACH_checks, BPF_RAW_TRACEPOINT_OPEN_checks, + BPF_TASK_FD_QUERY_checks): Append FD0_PATH to places where fd 0 + is printed. + (print_BPF_PROG_QUERY_attr4, print_BPF_PROG_QUERY_attr5): Do not + conditionalise part of the strings with INJECT_RETVAL > 0, as we always + inject positive values so far. + +2020-02-19 Eugene Syromyatnikov + + tests/io_uring_register: properly handle big endian architectures. + tests/io_uring_register.c (BE_LE): New macro. + (main): Use BE_LE to select the address to print based on endianness. + + Fixes: v5.5~41 "io_uring: add support for IORING_REGISTER_FILES_UPDATE" + +2020-02-12 Eugene Syromyatnikov + + strace: typo in usage (s/milliseconds/microseconds/) + * strace.c (usage): s/milliseconds/microseconds/ + + Fixes: v5.5~14 "strace: describe -e options in the help message" + +2020-02-12 Eugene Syromyatnikov + + printrusage: bundle rusage_t definition. + * printrusage.c (struct kernel_old_timeval, rusage_t): New type + definitions. + * configure.ac (AC_CHECK_MEMBERS): Check for __ru_maxrss_word, + __ru_ixrss_word, __ru_idrss_word, __ru_isrss_word, __ru_minflt_word, + __ru_majflt_word, __ru_nswap_word, __ru_inblock_word, __ru_oublock_word, + __ru_msgsnd_word, __ru_msgrcv_word, __ru_nsignals_word, __ru_nvcsw_word, + and __ru_nivcsw_word members of struct rusage. + * tests/waitid.c (RU_MAXRSS, RU_IXRSS, RU_IDRSS, RU_ISRSS, RU_MINFLT, + RU_MAJFLT, RU_NSWAP, RU_INBLOCK, RU_OUBLOCK, RU_MSGSND, RU_MSGRCV, + RU_NSIGNALS, RU_NVCSW, RU_NIVCSW): New macros. + (sprint_rusage): Use them instead of the respective ru_* field names. + + Resolves: https://github.com/strace/strace/issues/122 + +2020-02-10 Eugene Syromyatnikov + Dmitry V. Levin + + tests: fail if patterns file is not readable in match_grep. + Otherwise, the test will not fail if the patterns file is missing. + + * tests/init.sh (match_grep): Fail in case of non-zero exit status + of the read loop. + +2020-02-10 Eugene Syromyatnikov + + tests: turn clone_parent into a generated test. + clone_parent.tests does nothing, only sources clone_ptrace. + + * tests/clone_parent.test: Remove. + * tests/Makefile.am (MISC_TESTS): Remove clone_parent.test. + * tests/gen_tests.in (clone_parent): New entry. + +2020-02-10 Eugene Syromyatnikov + + tests: support --trace syntax in run_strace_match_{diff,grep} + * tests/init.sh (run_strace_match_diff, run_strace_match_grep): Do not + add -e trace option if --trace is provided already. + +2020-02-10 Eugene Syromyatnikov + + strace --help: document long option aliases of -w and -X options. + * strace.c (usage): Document --summary-wall-clock as the long option + alias of -w option; document --const-print-style as the long option + alias of -X option. + + Fixes: v5.5~11 "Add long option aliases to some options" + +2020-02-10 Eugene Syromyatnikov + + strace --help: add missing newline before "Miscellaneous:" + * strace (usage): Add newline before "Miscellaneous:". + + Fixes: v5.5~14 "strace: describe -e options in the help message" + +2020-02-10 MaJun + + csky abiv1: fix compilation error. + struct pt_regs has no member r1, only a1. + + * linux/csky/get_scno.c (arch_get_scno) [!__CSKYABIV2__]: Replace + csky_regs.r1 with csky_regs.a1. + * linux/csky/set_scno.c (arch_set_scno) [!__CSKYABIV2__]: Likewise. + * NEWS: Mention this fix. + + Fixes: v5.1~99 "Add C-SKY architecture support" + +2020-02-10 Dmitry V. Levin + + Post-release administrivia. + * NEWS: Add a header line for the next release. + * debian/changelog.in: Add a changelog entry for 5.5-1. + * strace.spec.in: Likewise. + +2020-02-06 Dmitry V. Levin + + Prepare for 5.5 release. + * NEWS: Update for 5.5 release. + + Update copyright year number range. + * COPYING: Update copyright year number range. + * tests/COPYING: Likewise. + * debian/copyright: Likewise. + + Update copyright headers. + Headers updated automatically using maint/update_copyright_years.sh + script. + +2020-02-06 Dmitry V. Levin + + maint/update_copyright_years.sh: fix concurrent execution. + * maint/update_copyright_years.sh (process_file): Replace "continue" + with "return". + + Fixes: v4.21~318 "maint/update_copyright_years.sh: implement concurrent execution" + +2020-02-06 Dmitry V. Levin + + maint/update_copyright_years.sh: fix "integer expression expected" error + * maint/update_copyright_years.sh: Check $copyright_year before use + in arithmetic operations. + +2020-02-05 Eugene Syromyatnikov + + strace: produce a sensible error if -k option is used but not compiled in + * strace.c (init) : Do not put "k" option under + ENABLE_STACKTRACE. + (init) : Do not put "stack-traces" option under + ENABLE_STACKTRACE. + (init) [!ENABLE_STACKTRACE]: Print an error message. + * tests/options-syntax.test: Check that the expected error message + is printed if -k is not compiled in. + +2020-02-05 Eugene Syromyatnikov + + tests: move getstr/getoption from strace-V.test to init.sh. + And rename to more generic get_config_str/get_config_option. + + * tests/strace-V.test (getstr, getoption): Rename to get_config_str + and get_config_option, respectively. All users updated. + (get_config_str, get_config_option): Move ... + * tests/init.sh: ... here. + +2020-02-05 Eugene Syromyatnikov + + tests/syntax: fix incorrect match_diff/macth_grep usage. + match_diff and match_grep take the error message as the third argument + and pass it on to fail_, while the calling code expects that they simply + return non-zero in case of error. + + * tests/syntax.sh (check_exit_status_and_stderr, + check_exit_status_and_stderr_using_grep): Specify the error message as + the third argument to match_diff/match grep instead of trying to handle + the erroneous status code. + +2020-02-05 Dmitry V. Levin + + strace: use qualify_* + * strace.c (init): Use qualify_trace, qualify_abbrev, qualify_verbose, + qualify_status, and qualify_signals instead of qualify. + + Complements: v5.4-100-g490bfd465 "Add long options for qualifiers" + +2020-02-05 Dmitry V. Levin + + strace: rename *_OPTION to GETOPT_* + * strace.c (init) : Rename *_OPTION to GETOPT_*. All users + updated. + +2020-02-04 Dmitry V. Levin + + tests: add tests for new long options. + * tests/gen_tests.in (access): Check --trace-path. + (fstatat64, lstat, lstat64, newfstatat, stat, stat64, statx): Check + --no-abbrev and --trace-path. + * tests/options-syntax.test: Check --attach, --detach-on, --output, + --summary, --summary-only, --summary-wall-clock, --string-limit, + --const-print-style, --user, and --instruction-pointer. + * tests/qual_syscall.test: Check --columns. + * tests/strace-E.test: Check --env. + * tests/strace-S.test: Check --summary-sort-by. + * tests/strace-k.test: Check --stack-trace. + +2020-02-04 Eugene Syromyatnikov + + Add long option aliases to some options. + * strace.c (init) : Add "columns" for "a", + "detach-on" for "b", "summary-only" for "c", "summary" for "C", + "env" for "E", "instruction-pointer" for "i", "stack-traces" for "k", + "output" for "o", "attach" for "p", "trace-path" for "P", "string-limit" + for "s", "summary-sort-by" for "S", "user" for "u", "no-abbrev" for "v", + "summary-wall-clock" for "w", and "const-print-style" for "X". + (usage): Document it. + * strace.1.in: Likewise. + +2020-02-04 Dmitry V. Levin + + tests: add tests for new long options. + * tests/filtering_fd-syntax.test: Check --read and --write. + * tests/filtering_syscall-syntax.test: Check --trace, --abbrev, + --verbose, --raw, --inject, and --fault. + * tests/gen_tests.in: Check --status. + * tests/options-syntax.test: Check --kvm. + * tests/qual_signal.test: Check --signal. + * tests/qual_syscall.test: Check --trace, --abbrev, --raw, + and --verbose. + +2020-02-04 Eugene Syromyatnikov + + Add long options for qualifiers. + Add a long option for each respective -e qualifier. + + * defs.h (qualify_trace, qualify_abbrev, qualify_verbose, qualify_raw, + qualify_signals, qualify_status, qualify_read, qualify_write, + qualify_fault, qualify_inject, qualify_kvm): Add declarations. + * filter_qualify.c (qualify_trace, qualify_abbrev, qualify_verbose, + qualify_raw, qualify_signals, qualify_status, qualify_read, + qualify_write, qualify_fault, qualify_inject, qualify_kvm): Remove + static qualifier. + * strace.1.in: Document long option aliases. + * strace.c (usage): Likewise. + (init) : Add QUAL_TRACE_OPTION, QUAL_ABBREV_OPTION, + QUAL_VERBOSE_OPTION, QUAL_RAW_OPTION, QUAL_SIGNAL_OPTION, + QUAL_STATUS_OPTION, QUAL_READ_OPTION, QUAL_WRITE_OPTION, + QUAL_FAULT_OPTION, QUAL_INJECT_OPTION, QUAL_KVM_OPTION. + (init) : Add items for qualifiers. + (init): Handle new *_OPTION options. + +2020-02-04 Eugene Syromyatnikov + + strace: describe -e options in the help message. + So it is a bit more clear how to use them (especially such elaborate + ones as -e inject). + + * strace.c (usage): Add -e trace, -e signal, and -e status option + descriptions to the Filtering section; add -e abbrev, -e verbose, + -e raw, -e read, -e write, and -e kvm option descriptions to the Output + format section; add Tampering section with description of -e inject + and -e fault options. + +2020-02-04 Eugene Syromyatnikov + + strace: document supported constant formats in the usage message. + * strace.c (usage): Provide the list of supported formats + for the -X option. + +2020-02-04 Eugene Syromyatnikov + + strace: capitalise placeholders in option declarations in usage. + It is already capitalised in descriptions (rather inconsistently, + however), the capitalisation is already used for "PROG" and "ARGS", + and it allows consistently distinguish placeholders from literals. + The manual page does not need the same treatment, it seems, + as the italic script is used there for that purpose. + + Capitalise the "usage:" part, as it is often capitalised in the usage + messages of some other programs. + + * strace.c (usage): Capitalise "expr", "column", "interruptible", + "path", "file", "var", "val", "strsize", "pid", "format", "overhead", + "sortby" placeholders where appropriate. Capitalise the first letter + in "usage:". + +2020-02-04 Eugene Syromyatnikov + + strace: sync up help message with the manual page. + They had discrepancies in section/optoin order for no reason. + + * strace.c (usage): Move -e option in a separate General section, + put the rest of the sections in Startup, Tracing, Filtering, Output + format, Statistics, Miscellaneous order, as it is in the manual page; + add -ttt option description, swap -E var=val and -E var options, put + -A option description after -o, put --seccomp-bpf option description + after -h. + * NEWS: Mention this change. + +2020-02-04 Eugene Syromyatnikov + + strace.1: use .UR macro for the link to the mailing list. + * strace.1.in (.SH REPORTING BUGS): Use .UR for the mailing list link. + + strace.1: s/PERSONALITY/PERSONALITIES/ + * strace.1.in (.SH "MULTIPLE PERSONALITY SUPPORT"): Change to... + (.SH "MULTIPLE PERSONALITIES SUPPORT"): ...this. + +2020-02-04 Eugene Syromyatnikov + + strace.1: remove commas between option variants. + Comma is not historically used in strace.1 to separate option aliases. + + * strace.1.in (.SS Miscellaneous): Remove comma after -d, -h, and -V + declarations. + +2020-02-04 Eugene Syromyatnikov + + strace.1: re-factor -e trace description. + Moreover, -e features description was incorrect ("?" option + is applicable only to -e trace) + + * strace.1.in: Re-factor -e trace description. + * NEWS: Mention this change. + +2020-02-04 Eugene Syromyatnikov + + printrusage: use PRINT_FIELD_U instead of PRINT_RUSAGE_MEMBER. + As the former is standard. + + * printrusage.c (printrusage, printrusage32): Use PRINT_FIELD_U instead + of PRINT_RUSAGE_MEMBER. + (printrusage, printrusage32) : Remove. + +2020-02-04 Eugene Syromyatnikov + + filter_qualify.c: make statuses definition a bit more explicit. + Avoid imlicit relying on the same ordering of statuses in the enum + and in the string array. + + * filter_qualify.c (statuses): Add index designators to initialisers. + +2020-02-03 Dmitry V. Levin + + strace: add --debug alias for -d. + * strace.1.in (.SH OPTIONS): Document --debug option. + * strace.c (usage): Likewise. + (longopts): Add "debug" as an alias to "d". + * tests/options-syntax.test: Check -d and --debug options. + +2020-02-03 Eugene Syromyatnikov + + io_uring: add support of wq_fd field decoding to io_uring_setup. + Introduced by Linux commit v5.5-rc7-74-g24369c2e3bb0. + + * configure.ac (AC_CHECK_HEADERS([linux/io_uring.h])): Add + struct io_uring_params.wq_fd field check. + * io_uring.c (io_uring_setup): Print wq_fd field. + * tests/io_uring_setup.c: Update expected output. + * types/io_uring.h (struct_io_uring_params): Add wq_fd field. + * xlat/uring_setup_flags.in (IORING_SETUP_ATTACH_WQ): New constant. + +2020-02-02 Eugene Syromyatnikov + + xlat: add IORING_SETUP_CLAMP to uring_setup_flags. + * xlat/uring_setup_flags.in (IORING_SETUP_CLAMP): New constant, + introduced by Linux commit v5.5-rc7-43-g8110c1a6212e. + * tests/io_uring_setup.c: Update expected output. + + xlat: update uring_setup_features constants. + * xlat/uring_setup_features.in (IORING_FEAT_RW_CUR_POS): New constant, + introduced by Linux commit v5.5-rc7-35-gba04291eb66e. + (IORING_FEAT_CUR_PERSONALITY): New constant, introduced by Linux commit + v5.5-rc7-72-gcccf0ee83455. + +2020-01-29 Eugene Syromyatnikov + + Update NEWS. + +2020-01-29 Eugene Syromyatnikov + + xlat: provide values to ptrace_cmds. + Use the output of maint/gen_xlat_defs.sh and perform some re-ordering. + + * xlat/ptrace_cmds.in: Provide values to constants. + (PTRACE_GETREGS, PTRACE_SETREGS, PTRACE_GETFPREGS, PTRACE_SETFPREGS, + PTRACE_GETFPXREGS, PTRACE_SETFPXREGS, PTRACE_GETHBPREGS, + PTRACE_SETHBPREGS, PTRACE_GETREGS64, PTRACE_SETREGS64, PTRACE_SYSEMU, + PTRACE_SYSEMU_SINGLESTEP): Move to arch-specific section. + (PTRACE_SET_SYSCALL): Move to arm section. + (PTRACE_GETVRREGS, PTRACE_SETVRREGS): Move to powerpc section. + (PPC_PTRACE_POKEUSR_3264, PPC_PTRACE_PEEKUSR_3264, + PPC_PTRACE_POKEDATA_3264, PPC_PTRACE_POKETEXT_3264, + PPC_PTRACE_PEEKDATA_3264, PPC_PTRACE_PEEKTEXT_3264): Add constants. + + References: https://bugzilla.redhat.com/show_bug.cgi?id=1758201 + +2020-01-28 Eugene Syromyatnikov + + maint: gen_xlat_defs.sh updates. + Allow whitespace between "#" and "define" and allow passing glob + expressions to the -a option. + + * maint/gen_xlat_defs.sh: Add "[[:space:]]*" between "#" and "define" + in regular expressions; match "[^:]*" instead of "$ARCH_DEFS_FILE". + +2020-01-28 Dmitry V. Levin + + .mailmap: add more entries to avoid duplication in CREDITS. + +2020-01-27 Gleb Fotengauer-Malinovskiy + + Update ioctl entries from linux v5.5. + * linux/32/ioctls_inc_align16.h: Update from linux v5.5 + using ioctls_gen.sh. + * linux/32/ioctls_inc_align32.h: Likewise. + * linux/32/ioctls_inc_align64.h: Likewise. + * linux/64/ioctls_inc.h: Likewise. + * linux/x32/ioctls_inc0.h: Likewise. + * linux/powerpc/ioctls_arch0.h: Likewise. + * NEWS: Mention this. + + maint: update for linux v5.5. + * maint/ioctls_sym.sh: Define UL and ULL macros for every processed + file. Add a workaround for linux/platform_data/cros_ec_chardev.h file. + +2020-01-27 Eugene Syromyatnikov + Dmitry V. Levin + + keyctl: implement KEYCTL_CAPABILITIES operation decoding. + Introduced by Linux kernel commit v5.3-rc1~189^2. + + * xlat/keyctl_caps0.in: New file. + * xlat/keyctl_caps1.in: Likewise. + * keyctl.c: Include "xlat/keyctl_caps0.h" and "xlat/keyctl_caps1.h". + (print_keyctl_caps, keyctl_capabilities): New functions. + (SYS_FUNC(keyctl)) : Call keyctl_capabilities. + * tests/keyctl.c: Add checks. + +2020-01-27 Eugene Syromyatnikov + + keyctl: implement KEYCTL_MOVE operation decoding. + Introduced by Linux kernel commit v5.3-rc1~189^2. + + * xlat/keyctl_move_flags.in: New file. + * keyctl.c: Include "xlat/keyctl_move_flags.h". + (keyctl_move): New function. + (SYS_FUNC(keyctl)) : Call it. + * tests/keyctl.c: Add checks. + +2020-01-27 Eugene Syromyatnikov + Dmitry V. Levin + + keyctl: implement KEYCTL_PKEY_* operations decoding. + Introduced by Linux kernel commit v5.0-rc1~453^2~20. + + * configure.ac (AC_CHECK_TYPES): Check for struct keyctl_pkey_params + and struct keyctl_pkey_query. + * keyctl.c: Include "xlat/keyctl_pkey_ops.h". + (struct keyctl_pkey_query, struct keyctl_pkey_params): New type + definitions. + (print_pkey_query, keyctl_pkey_query, fetch_print_pkey_params, + keyctl_pkey_op): New functions. + (SYS_FUNC(keyctl)) : Call keyctl_pkey_query. + (case KEYCTL_PKEY_ENCRYPT, case KEYCTL_PKEY_DECRYPT, case + KEYCTL_PKEY_SIGN, case KEYCTL_PKEY_VERIFY): Call keyctl_pkey_op. + * xlat/keyctl_pkey_ops.in: New file. + * tests/keyctl.c: Add checks. + +2020-01-27 Eugene Syromyatnikov + + keyctl: do not open-code struct keyctl_kdf_params.__spare printing. + * keyctl.c (keyctl_dh_compute): Replace open-coded printing of + struct keyctl_kdf_params.__spare with a pair of IS_ARRAY_ZERO and + PRINT_FIELD_ARRAY calls. + +2020-01-27 Eugene Syromyatnikov + + keyctl: consolidate xlat headers in the beginning of the file. + This gives a better overview of the xlat usage. + + * keyctl.c: Move "xlat/key_perms.h", "xlat/key_reqkeys.h", and + "xlat/keyctl_commands.h" includes to the beginning of the file. + +2020-01-27 Eugene Syromyatnikov + + rtnl_tc: add support for TCA_STATS_PKT64 attribute decoding. + Introduced by Linux kernel commit v5.5-rc1~174^2~219^2. + + * configure.ac (AC_CHECK_DECLS): Check for TCA_STATS_PKT64. + * rtnl_tc.c (tca_stats_nla_decoders) <[TCA_STATS_PKT64]>: New array + item, call decode_nla_u64. + * xlat/rtnl_tca_stats_attrs.in (TCA_STATS_PKT64): New constant. + * tests/nlattr_tc_stats.c: Add TCA_STATS_PKT64 attribute decoding check. + +2020-01-27 Eugene Syromyatnikov + + rtnl_tc_action: add support for TCA_ACT_FLAGS attribute decoding. + Introduced by Linux kernel commit v5.5-rc1~174^2~265^2~2. + + * xlat/rtnl_tca_act_flags.in: New file. + * xlat/rtnl_tc_action_attrs.in (TCA_ACT_FLAGS): New constant. + * configure.ac (AC_CHECK_DECLS): Check for TCA_ACT_PAD, TCA_ACT_COOKIE, + and TCA_ACT_FLAGS. + * rtnl_tc_action.c: Include and + "xlat/rtnl_tca_act_flags.h". + (decode_tca_act_flags): New function. + (tcamsg_nla_decoders) <[TCA_ACT_FLAGS]>: New array element, use + decode_tca_act_flags as a decoder. + * tests/nlattr_tcamsg.c: Add checks. + +2020-01-27 Eugene Syromyatnikov + + io_uring: add support for IORING_REGISTER_FILES_UPDATE. + Introduced by Linux kernel commits v5.5-rc1~204^2~61 and v5.5~1^2~2. + + * io_uring.c (print_io_uring_files_update): New function. + (SYS_FUNC(io_uring_register)) : Call + it. + * types/io_uring.h (struct_io_uring_files_update): New type definition. + * xlat/uring_register_opcodes.in (IORING_REGISTER_FILES_UPDATE): New + constant. + * tests/io_uring_register.c (main): Update invalid op check. + [HAVE_STRUCT_IO_URING_FILES_UPDATE]: Add checks. + +2020-01-21 Dmitry V. Levin + + io_uring: check struct io_* types automatically. + Move definitions of struct_io_sqring_offsets, struct_io_cqring_offsets, + and struct_io_uring_params to a separate types/ header file. + + * configure.ac (AC_CHECK_TYPES): Remove struct io_sqring_offsets, + struct io_cqring_offsets, and struct io_uring_params. + (AC_CHECK_MEMBERS): Remove struct io_cqring_offsets.resv. + * io_uring.c: Include "types/io_uring.h" instead of . + [HAVE_STRUCT_IO_CQRING_OFFSETS]: Remove static_assert checks of + sizeof(struct io_sqring_offsets). + (struct_io_sqring_offsets, struct_io_cqring_offsets, + struct_io_uring_params): Move to ... + * types/io_uring.h: ... new file. + +2020-01-21 Dmitry V. Levin + + evdev: check struct input_* types automatically. + Move definitions of struct_input_absinfo, struct_input_keymap_entry, + and struct_input_mask to a separate types/ header file. + + * configure.ac (AC_CHECK_TYPES): Remove struct input_keymap_entry and + struct input_mask. + (AC_CHECK_MEMBERS): Remove struct input_absinfo.resolution. + * evdev.c: Include "types/evdev.h" instead of . + Remove static_assert checks. + (struct_input_absinfo, struct_input_keymap_entry, struct_input_mask): + Move to ... + * types/evdev.h: ... new file. + +2020-01-21 Dmitry V. Levin + + rtnl_route: check struct rta_mfc_stats and struct rtvia automatically. + Move definitions of struct_rta_mfc_stats and struct_rtvia to a separate + types/ header file. + + * configure.ac (AC_CHECK_TYPES): Remove struct rta_mfc_stats and + struct rtvia. + * rtnl_route.c: Include "types/rtnl_route.h" instead of "netlink.h" and + . + [HAVE_STRUCT_RTA_MFC_STATS, HAVE_STRUCT_RTVIA]: Remove static_assert checks. + (struct_rta_mfc_stats, struct_rtvia): Move to ... + * types/rtnl_route.h: ... new file. + +2020-01-21 Dmitry V. Levin + + rtnl_mdb: check struct br_mdb_entry and struct br_port_msg automatically + Move definitions of struct_br_mdb_entry and struct_br_port_msg + to a separate types/ header file. + + * configure.ac (AC_CHECK_TYPES): Remove struct br_mdb_entry and + struct br_port_msg. + * rtnl_mdb.c: Include "types/rtnl_mdb.h" instead of and + . + [HAVE_STRUCT_BR_PORT_MSG, HAVE_STRUCT_BR_NDB_ENTRY]: Remove static_assert checks. + (struct_br_mdb_entry, struct_br_port_msg): Move to ... + * types/rtnl_mdb.h: ... new file. + * tests/nlattr_mdba_router_port.c: Include before + to obtain a definition of struct in6_addr needed + for struct br_mdb_entry. + +2020-01-21 Dmitry V. Levin + + rtnl_neightbl: check all struct ndt_* types automatically. + Move definitions of struct_ndt_* types to a separate types/ header file. + + * configure.ac (AC_CHECK_TYPES): Remove struct ndt_config and + struct ndt_stats. + (AC_CHECK_MEMBERS): Remove struct ndt_stats.ndts_table_fulls. + * rtnl_neightbl.c: Include "types/rtnl_neightbl.h". + [HAVE_LINUX_NEIGHBOUR_H]: Remove. + [HAVE_STRUCT_NDT_CONFIG, HAVE_STRUCT_NDT_STATS]: Remove static_assert + checks. + (struct_ndt_config, struct_ndt_stats): Move to ... + * types/rtnl_neightbl.h: ... new file. + +2020-01-21 Dmitry V. Levin + + rtnl_link: check all struct rtnl_link_stats* and struct ifla_port_vsi types automatically + Move definitions of struct_rtnl_link_stats* and struct_ifla_port_vsi + types to a separate types/ header file. + + * configure.ac (AC_CHECK_TYPES): Remove struct ifla_bridge_id, + struct ifla_port_vsi and struct rtnl_link_stats64. + (AC_CHECK_MEMBERS): Remove struct rtnl_link_stats.rx_nohandler and + struct rtnl_link_stats64.rx_nohandler. + * rtnl_link.c: Include "types/rtnl_link.h". + [HAVE_LINUX_IF_LINK_H]: Remove. + [HAVE_STRUCT_RTNL_LINK_STATS_RX_NOHANDLER, + HAVE_STRUCT_RTNL_LINK_STATS64_RX_NOHANDLER, HAVE_STRUCT_IFLA_PORT_VSI]: + Remove static_assert checks. + (struct_rtnl_link_stats, struct_rtnl_link_stats64, + struct_ifla_port_vsi): Move to ... + * types/rtnl_link.h: ... new file. + (struct_ifla_bridge_id): New typedef. + +2020-01-21 Dmitry V. Levin + + netlink_crypto: check all struct crypto_* types automatically. + Move definitions of struct_crypto_* types to a separate types/ header + file. + + * configure.ac (AC_CHECK_TYPES): Remove struct crypto_*. + * netlink_crypto.c: Include "types/cryptouser.h". + [HAVE_LINUX_CRYPTOUSER_H, !CRYPTO_MAX_NAME]: Remove. + [HAVE_STRUCT_CRYPTO_USER_ALG, HAVE_STRUCT_CRYPTO_REPORT_HASH, + HAVE_STRUCT_CRYPTO_REPORT_CIPHER, HAVE_STRUCT_CRYPTO_REPORT_BLKCIPHER, + HAVE_STRUCT_CRYPTO_REPORT_AEAD, HAVE_STRUCT_CRYPTO_REPORT_RNG]: Remove + static_assert checks. + (struct_crypto_user_alg, struct_crypto_report_hash, + struct_crypto_report_cipher, struct_crypto_report_blkcipher, + struct_crypto_report_aead, struct_crypto_report_rng): Move to ... + * types/cryptouser.h: ... new file. + +2020-01-21 Dmitry V. Levin + + types: new infrastructure for automatic checking of structure types. + * types/gen.sh: New file. + * bootstrap: Invoke it. + * types/find_last_type_fields.awk: New file. + * configure.ac: Invoke st_CHECK_TYPES. + (AM_INIT_AUTOMAKE): Add subdir-objects. + * Makefile.am: Include types/Makemodule.am. + (ACLOCAL_AMFLAGS): Add -I types. + (strace_SOURCES): Add $(TYPES_HEADER_FILES). + (strace_SOURCES_check): Add $(TYPES_CHECK_FILES). + (EXTRA_DIST): Add types/find_last_type_fields.awk and types/gen.sh. + +2020-01-21 Eugene Syromyatnikov + + tests: add strace-k-p test. + Add a check of the stack unwinding for attached processes. + + * tests/stack-fcall-attach.c: New file. + * tests/strace-k-p.expected: Likewise. + * tests/strace-k-p.test: New test. + * tests/Makefile.am (EXTRA_DIST): Add strace-k-p.expected and strace-k-p.test. + (STACKTRACE_TESTS): Add strace-k-p.test + (check_PROGRAMS): Add stack-fcall-attach. + (stack_fcall_attach_SOURCES): New variable. + * tests/stack-fcall.c: Include "tests.h" and . + [!ATTACH_MODE] (ATTACH_MODE): Define to 0. + (main) [ATTACH_MODE]: Wait a bit. + * tests/strace-k.test: Add attach mode. + + Complements: v5.4-18-g69b2c33 "unwind-libdw: fix initialization of libdwfl cache" + +2020-01-21 Eugene Syromyatnikov + + ci: enable building for x32 and x86 targets with the latest gcc and headers + + xlat: add KEY_PRIVACY_SCREEN_TOGGLE and KEY_KBD_LCD_MENU* to evdev_keycode + * xlat/evdev_keycode.in (KEY_PRIVACY_SCREEN_TOGGLE): New constant, + introduced by Linux commit v5.5-rc1~6^2^2~3. + (KEY_KBD_LCD_MENU1, KEY_KBD_LCD_MENU2, KEY_KBD_LCD_MENU3, + KEY_KBD_LCD_MENU4, KEY_KBD_LCD_MENU5): New constants, introduced by + Linux commit v5.5-rc1~6. + + xlat: add STATX_ATTR_VERITY to statx_attrs. + * xlat/statx_attrs.in (STATX_ATTR_VERITY): New constant, introduced + by Linux commit v5.5-rc1~192^2~3. + +2020-01-21 Eugene Syromyatnikov + + perf: decode PERF_SAMPLE_AUX flag and aux_sample_size field. + Introduced by Linux commit v5.5-rc1~152^2~9. + + * configure.ac (AC_CHECK_MEMBERS): Check + for struct perf_event_attr.__reserved_2 + and struct perf_event_attr.aux_sample_size. + * perf.c (print_perf_event_attr): Print __reserved_2 field if non-zero; + print aux_sample_size field. + * perf_event_struct.h (struct perf_event_attr): Add aux_sample_size + and __reserved_3 fields. + * tests/perf_event_open.c: Add checks for nrw struct sizes, fields, + and PERF_SAMPLE_AUX flag. + * xlat/perf_attr_size.in (PERF_ATTR_SIZE_VER6): New constant. + * xlat/perf_event_sample_format.in (PERF_SAMPLE_AUX): Likewise. + +2020-01-21 Eugene Syromyatnikov + + xlat: add PPC_CMM_MAGIC to fsmagic. + * xlat/fsmagic.in (PPC_CMM_MAGIC): New constant, introduced by Linux + commit v5.5-rc1~110^2~59. + + xlat: update sock_sctp_options constants. + * xlat/sock_sctp_options.in (SCTP_PEER_ADDR_THLDS_V2): New constant, + introduced by Linux commit v5.5-rc1~174^2~159^2. + (SCTP_EXPOSE_POTENTIALLY_FAILED_STATE): New constant, introduced + by Linux commit v5.5-rc1~174^2~159^2~2. + + xlat: add TIPC_NODELAY to sock_tipc_options. + * xlat/sock_tipc_options.in (TIPC_NODELAY): New constant, introduced + by Linux commit v5.5-rc1~174^2~274. + + xlat: add IORING_SETUP_CQSIZE to uring_setup_flags. + * xlat/uring_setup_flags.in (IORING_SETUP_CQSIZE): New constant, + introduced by Linux commit v5.5-rc1~204^2~60. + * tests/io_uring_setup.c (main): Update expected output. + +2020-01-21 Eugene Syromyatnikov + + io_uring: implement decoding of struct io_uring_params.features. + Introduced by Linux commit v5.4-rc1~28^2~17. + + * xlat/uring_setup_features.in: New file. + * io_uring.c: Include "xlat/uring_setup_features.h". + (struct_io_uring_params): Add features field, decrease resv field size. + [HAVE_STRUCT_IO_URING_PARAMS]: Add checks for the + struct io_uring_params.resv field. + (SYS_FUNC(io_uring_setup)): Decode struct io_uring_params.features + field. + * tests/io_uring_setup.c: Update the expected output. + +2020-01-21 Eugene Syromyatnikov + + io_uring: add support for IORING_REGISTER_EVENTFD and IORING_UNREGISTER_EVENTFD + Introduced by Linux commit v5.2-rc1~148^2~3. + + * xlat/uring_register_opcodes.in (IORING_REGISTER_EVENTFD, + IORING_UNREGISTER_EVENTFD): New constants. + * io_uring.c (SYS_FUNC(io_uring_register)): Wire up + IORING_REGISTER_EVENTFD. + * tests/io_uring_register.c (main): Add checks for the new operations. + +2020-01-21 Eugene Syromyatnikov + + io_uring: print io_sqring_offsets and io_cqring_offsets reserved fields. + * io_uring.c (SYS_FUNC(io_uring_setup)): Print + struct io_sqring_offsets.resv1, struct io_sqring_offsets.resv2, and + struct io_cqring_offsets.resv if non-zero. + * tests/io_uring_setup.c (main): Update expected output. + +2020-01-21 Eugene Syromyatnikov + + io_uring: decode io_uring_params.resv with IS_ARRAY_ZERO and PRINT_FIELD_ARRAY + That also makes struct io_uring_params.resv printing in line with + the rest of array printing formatting. + + * io_uring.c (SYS_FUNC(io_uring_setup)): Replace open-coded resv field + non-zeroeness check/printing with IS_ARRAY_ZERO and PRINT_FIELD_ARRAY + macro invocations. + * tests/io_uring_setup.c (main): Use square brackets instead of curly + braces for enclosing struct io_uring_params.resv elements. + +2020-01-21 Eugene Syromyatnikov + + Rework interface for printing local arrays. + As it should be simpler to get it used. In order to make the common + case as simple as possible, split it into print_local_array_ex with all + the arguments and convert print_local_array to a macro wrapper that gets + the element count and size from the provided array argument itself, + along with dropping all the arguments that are not expected to be + commonly used. + + * defs.h (print_local_array_ex): Rename from print_local_array, + remove elem_buf argument, add index_xlat and index_dflt arguments. + (print_local_array): New macro wrapper from print_local_array_ex. + * evdev.c (decode_bitset): Remove unused elem variable, update the + print_local_array call. + * print_fields.h (PRINT_FIELD_ARRAY): New macro wrapper for printing + array fields. + +2020-01-21 Eugene Syromyatnikov + + io_uring: de-indent the switch case statements. + * io_uring.c (SYS_FUNC(io_uring_register)): Decrease indentation for + switch case labels and the related code. + + io_uring: do not depend on kernel header definitions. + * configure.ac (AC_CHECK_HEADERS): Remove linux/io_uring.h. + (AC_CHECK_HEADERS): Add a separate check for linux/io_uring.h header + that additionally performs AC_CHECK_TYPES on struct io_sqring_offsets, + struct io_cqring_offsets, and struct io_uring_params, and + AC_CHECK_MEMBERS on struct io_cqring_offsets.resv, struct + io_uring_params.features, and struct io_uring_params.resv. + * io_uring.c [!HAVE_LINUX_IO_URING_H]: Include "print_fields.h". + (struct_io_sqring_offsets, struct_io_cqring_offsets, + struct_io_uring_params): New struct type definitions. + [HAVE_STRUCT_IO_SQRING_OFFSETS]: Check struct_io_sqring_offsets size + against struct io_sqring_offsets. + [HAVE_STRUCT_IO_CQRING_OFFSETS]: Check struct_io_cqring_offsets size + against struct io_cqring_offsets. + [HAVE_STRUCT_IO_CQRING_OFFSETS][HAVE_STRUCT_IO_CQRING_OFFSETS_RESV]: + Check struct_io_cqring_offsets.resv offset and size against + struct io_cqring_offsets.resv. + [HAVE_STRUCT_IO_CQRING_OFFSETS][!HAVE_STRUCT_IO_CQRING_OFFSETS_RESV]: + Fail unconditionally. + [HAVE_STRUCT_IO_URING_PARAMS]: Check struct_io_cqring_offsets size + against struct io_cqring_offsets. + (SYS_FUNC(io_uring_setup)): Remove HAVE_LINUX_IO_URING_H guard. + * tests/io_uring_setup.c: Add a workaround for kernel headers where + struct io_uring_params.features is defined. + +2020-01-21 Chunmei Xu + Eugene Syromyatnikov + + tests: properly fix printing errno in modify_ldt test. + The fix in commit v5.4-40-g2939bbd is incorrect, as it leads to errno + information not being expected by the test: + + modify_ldt(0, NULL, 0) = -1 + modify_ldt(-629534633, 0xffffffffffffffff, 16045756814261206767) = -1 + modify_ldt(-629534633, 0x7f354d38a000, 0) = -1 + ... + + * tests/modify_ldt.c (printrc): Avoid only errno update in case of rc + being -1 and not the whole printing routine. + + Complements: v5.4-40-g2939bbd "tests: fix printing errno in modify_ldt test" + Resolves: https://github.com/strace/strace/issues/118 + Resolves: https://github.com/strace/strace/issues/119 + +2020-01-17 Dmitry V. Levin + + Make SysV IPC decoders on 32-bit architectures 64-bit time_t compatible. + When libc moves to 64-bit time_t on 32-bit architectures, IPC + definitions provided by sys/ipc.h, sys/msg.h, sys/sem.h, and sys/shm.h + header files become unsuitable for SysV IPC decoders. + + Prepare for this change by using Linux kernel uapi headers instead of + libc headers as the preferred source of SysV IPC definitions. + + Fall back to libc headers if Linux kernel uapi headers have known bugs + in their SysV IPC definitions. + + * configure.ac (AC_CHECK_SIZEOF): Check for struct msqid64_ds in + . + * m4/mpers.m4 (st_MPERS): Likewise. + * ipc_defs.h: Prioritize HAVE_LINUX_IPC_H over HAVE_SYS_IPC_H. + [HAVE_LINUX_IPC_H && !IN_MPERS]: Undefine HAVE_LINUX_IPC_H if + ARCH_SIZEOF_STRUCT_MSQID64_DS != SIZEOF_STRUCT_MSQID64_DS. + [HAVE_LINUX_IPC_H && MPERS_IS_m32]: Undefine HAVE_LINUX_IPC_H if + ARCH_M32_SIZEOF_STRUCT_MSQID64_DS != M32_SIZEOF_STRUCT_MSQID64_DS. + [HAVE_LINUX_IPC_H && MPERS_IS_mx32]: Undefine HAVE_LINUX_IPC_H if + ARCH_MX32_SIZEOF_STRUCT_MSQID64_DS != MX32_SIZEOF_STRUCT_MSQID64_DS. + * linux/sparc/arch_defs_.h (ARCH_SIZEOF_STRUCT_MSQID64_DS): New macro. + * linux/sparc64/arch_defs_.h (ARCH_M32_SIZEOF_STRUCT_MSQID64_DS): + Likewise. + * linux/x32/arch_defs_.h (ARCH_SIZEOF_STRUCT_MSQID64_DS): Likewise. + * linux/x86_64/arch_defs_.h (ARCH_MX32_SIZEOF_STRUCT_MSQID64_DS): + Likewise. + + Reported-by: Khem Raj + Reported-by: Rich Felker + Resolves: https://github.com/strace/strace/issues/116 + +2020-01-17 Dmitry V. Levin + + Consistently choose SysV IPC definitions between libc and uapi providers + strace decoders should use SysV IPC definitions provided by either libc + or Linux kernel uapi headers, not a random mix of them. + + * configure.ac (AC_CHECK_HEADERS): Remove linux/msg.h, linux/sem.h, + linux/shm.h, sys/msg.h, sys/sem.h, and sys/shm.h. + * ipc_defs.h (MSG_H_PROVIDER, SEM_H_PROVIDER, SHM_H_PROVIDER, + NAME_OF_STRUCT_MSQID_DS, NAME_OF_STRUCT_SHMID_DS, + NAME_OF_STRUCT_IPC_PERM_KEY): New macros. + * ipc_msg.c: Include MSG_H_PROVIDER instead of or + . + * ipc_msgctl.c: Likewise. + (msqid_ds_t): Redefine to struct NAME_OF_STRUCT_MSQID_DS. + (print_msqid_ds): Replace __key with NAME_OF_STRUCT_IPC_PERM_KEY. + * ipc_sem.c: Include SEM_H_PROVIDER instead of or + . + (print_sembuf): Define unconditionally. + (tprint_sembuf_array): Use print_sembuf unconditionally. + * ipc_shm.c: Include SHM_H_PROVIDER instead of or + . + * ipc_shmctl.c: Likewise. + (shmid_ds_t): Redefine to struct NAME_OF_STRUCT_SHMID_DS. + (print_shmid_ds): Replace __key with NAME_OF_STRUCT_IPC_PERM_KEY. + * print_msgbuf.c: Include MSG_H_PROVIDER instead of . + +2020-01-17 Dmitry V. Levin + + Consistently use ipc_defs.h. + Include "ipc_defs.h" in all decoder files that also include + one of system ipc header files. + + * ipc_shm.c: Include "ipc_defs.h". + * print_msgbuf.c: Likewise. + +2020-01-17 Dmitry V. Levin + + Consistently use sizeof_field macro. + * gen_bpf_attr_check.sh (SoM): Remove. + Replace SoM with sizeof_field. + * sockaddr.c (SIZEOF_SA_FAMILY): Use sizeof_field macro. + * socketutils.c (UNIX_PATH_MAX): Likewise. + +2020-01-17 Eugene Syromyatnikov + + macros.h: introduce sizeof_field macro. + Handy for field size checks. + + * macros.h (sizeof_field): New macro. + (offsetofend): Use it. + +2020-01-17 Dmitry V. Levin + + tests: consistently use offsetofend macro. + * tests/msg_control.c (MIN_SIZE_OF): Remove. + (test_scm_rights1, test_scm_rights2): Replace MIN_SIZE_OF with + offsetofend. + +2020-01-16 Eugene Syromyatnikov + + tests: fix printing errno in modify_ldt test. + Before this change, the test expected that the syscall always returns + a value of type int, which is not the case when the Linux kernel + is built with CONFIG_MODIFY_LDT_SYSCALL disabled. + + * tests/modify_ldt.c (printrc): Do not mangle errno if rc is not in + the suitable range. + + Resolves: https://github.com/strace/strace/issues/118 + +2020-01-15 Dmitry V. Levin + + Fix build with glibc-2.31 and Linux kernel headers < 5.3. + PTRACE_GET_SYSCALL_INFO support was added in strace since version 4.26 + released in December 2018, in Linux kernel headers since version 5.3 + released in September 2019, and in glibc since version 2.31 released + in February 2020. strace is expected to support all reasonable + combinations of Linux kernel header versions and glibc versions, in + particular, in cases when PTRACE_GET_SYSCALL_INFO definitions are not + available in system headers or available only in Linux kernel headers + or glibc. Due to the longer release cycle of glibc compared to Linux + kernel, it's more likely to have PTRACE_GET_SYSCALL_INFO definitions + provided by rather than . + + This change fixes build in a less likely environment when + PTRACE_GET_SYSCALL_INFO definitions are provided by only, + e.g. with glibc >= 2.31 and Linux kernel headers < 5.3. + + * configure.ac (AC_CHECK_TYPES): Check for struct __ptrace_syscall_info + in , check for struct ptrace_syscall_info in + . + * ptrace.h (struct ptrace_syscall_info): Define only if + !HAVE_STRUCT_PTRACE_SYSCALL_INFO && !HAVE_STRUCT___PTRACE_SYSCALL_INFO. + (struct_ptrace_syscall_info): New typedef. + * get_personality.h: Replace struct ptrace_syscall_info with + struct_ptrace_syscall_info. + * linux/aarch64/arch_get_personality.c: Likewise. + * linux/powerpc64/arch_get_personality.c: Likewise. + * linux/s390x/arch_get_personality.c: Likewise. + * linux/sparc64/arch_get_personality.c: Likewise. + * linux/tile/arch_get_personality.c: Likewise. + * linux/x86_64/arch_get_personality.c: Likewise. + * ptrace_syscall_info.c: Likewise. + * syscall.c: Likewise. + * tests/ptrace_syscall_info.c: Likewise. + * NEWS: Mention this fix. + + Reported-by: Vineet Gupta + Fixes: v4.26~51 "Add definitions for PTRACE_GET_SYSCALL_INFO API" + +2020-01-14 Dmitry V. Levin + + Update NEWS. + +2020-01-14 Dmitry V. Levin + + ci: re-enable testing with the latest mainline kernel headers. + There should be no issues with v5.5-rc6. + This reverts commit 1aa46bd14ec63869aa2c8870bd1c261e0c3a5c65. + + * .gitlab-ci.yml (variables): Remove KBRANCH. + * .travis.yml (env:global): Likewise. + +2020-01-14 Baruch Siach + + filter_seccomp: fix no-MMU build. + Move the declaration of filter_generators out of HAVE_FORK ifdef + to fix build for no-MMU targets: + + filter_seccomp.c: In function ‘check_seccomp_filter_properties’: + filter_seccomp.c:608:42: error: ‘filter_generators’ undeclared (first use in this function); did you mean ‘linear_filter_generator’? + for (unsigned int i = 0; i < ARRAY_SIZE(filter_generators); ++i) { + ^~~~~~~~~~~~~~~~~ + + * filter_seccomp.c (linear_filter_generator, + binary_match_filter_generator): Declare unconditionally. + (filter_generator_t, filter_generators, filters, bpf_prog): Define + unconditionally. + * NEWS: Mention this fix. + + Fixes: v5.4~57 "filter_seccomp: list of seccomp filter generation strategies" + +2020-01-14 Dmitry V. Levin + + clone: implement decoding of new fields in struct clone_args. + * configure.ac (AC_CHECK_TYPES): Remove struct clone_args. + (AC_CHECK_MEMBERS): Check for struct clone_args.set_tid_size + in . + * clone.c (struct strace_clone_args): Add set_tid and set_tid_size + fields. + (SYS_FUNC(clone3)): Decode set_tid and set_tid_size fields of struct + clone_args introduced by Linux kernel commit v5.5-rc1~180^2~5. + * NEWS: Mention this change. + * tests/clone3.c: Check HAVE_STRUCT_CLONE_ARGS_SET_TID_SIZE instead of + HAVE_STRUCT_CLONE_ARGS. + (struct test_clone_args): Add set_tid and set_tid_size fields. + (MAX_SET_TID_SIZE): New macro. + (print_set_tid): New function. + (print_clone3): Use it. + (main): Check decoding of set_tid and set_tid_size fields. + +2020-01-14 Eugene Syromyatnikov + + clone: add support for clone3-specific CLONE_CLEAR_SIGHAND flag decoding + Introduced by Linux commit v5.5-rc1~180^2~8. + + * xlat/clone3_flags.in: New file. + * clone.c: Include "xlat/clone3_flags.h". + (SYS_FUNC(clone3)): Use both clone_flags and clone3_flags for flag field + decoding. + * gcc_compat.h [!GNUC_PREREQ(3, 0)] (FAIL_BUILD_ON_ZERO): Stub + definition. + * tests/clone3.c: Include "xlat/clone3_flags.h". + (ERR): New macro. + (do_clone3_): Accept possible_errors bitmask instead of should_Fail + flag. + (main): Add CLONE_CLEAR_SIGHAND-specific checks, update flag-related + checks. + +2020-01-12 Dmitry V. Levin + + tests: prepare clone3 test for upcoming changes. + * tests/clone3.c: Include and "xlat/clone_flags.h" + unconditionally. Do not include . + (struct clone_args): Rename to struct test_clone_args, define + unconditionally. + (struct_clone_args): New typedef. + (do_clone3_, print_clone3, main): Switch all users of + struct test_clone_args to struct_clone_args. + (main): Use TAIL_ALLOC_OBJECT_CONST_PTR. Move printing of "clone3(" + prefix ... + (print_clone3): ... here to fix errno clobbering. + +2020-01-08 Dmitry V. Levin + + travis: add s390x builds. + * .travis.yml (matrix): Add s390x builds. + +2020-01-08 Dmitry V. Levin + + s390: workaround Linux kernel bug in syscall_get_nr. + Apparently, arch/s390/include/asm/syscall.h:syscall_get_nr() returns 0 + for out-of-range syscall numbers. + This kernel bug is exposed via PTRACE_GET_SYSCALL_INFO interface. + Workaround it by falling back to get_regs() for the zero syscall number. + + * linux/s390/check_scno.c: New file. + * linux/s390x/check_scno.c: Likewise. + * Makefile.am (EXTRA_DIST): Add them. + * syscall.c (get_scno): Update comment. + +2020-01-08 Dmitry V. Levin + + ci: support Travis CI's ppc64le builds. + * .travis.yml (matrix): Add ppc64le builds. + * ci/install-dependencies.sh: Do not attempt to install multilib + packages on ppc64le. + +2020-01-08 Dmitry V. Levin + + tests: skip stack tracing tests when /proc/self/maps is invalid. + Apparently, some container orchestration systems are capable of messing + up with /proc/self/maps. For example, one can face with the following + garbage in Travis CI: + + $ cat /proc/self/maps + ee72dcc0000-ee72dcd0000 r-xp 00000000 00:43 16 /var/snap/lxd/common/lxd/storage-pools/instances/containers/travis-job-strace-strace-634261782/rootfs/bin/cat + ee72dcd0000-ee72dce0000 r--p 00000000 00:43 16 /var/snap/lxd/common/lxd/storage-pools/instances/containers/travis-job-strace-strace-634261782/rootfs/bin/cat + ee72dce0000-ee72dcf0000 rw-p 00010000 00:43 16 /var/snap/lxd/common/lxd/storage-pools/instances/containers/travis-job-strace-strace-634261782/rootfs/bin/cat + ... + + Our stack tracing cannot work properly when /proc/self/maps is damaged + this way. + + * tests/strace-k.test: Check that the path to executable recorded + in /proc/self/maps is valid and skip the test if it's not the case. + +2020-01-08 Dmitry V. Levin + + filter_seccomp: fix stack trace caching. + * filter_seccomp.c (traced_by_seccomp): Trace all syscalls that have + MEMORY_MAPPING_CHANGE flag set when stack tracing is enabled. + * NEWS: Mention this fix. + + syscall: do not capture stack trace while the tracee executes strace code + * syscall.c (syscall_entering_trace) [ENABLE_STACKTRACE]: Do not capture + stack trace when TCB_CHECK_EXEC_SYSCALL flag is set. + +2020-01-07 Eugene Syromyatnikov + + clone: simplify signal printing in legacy clone handler a bit. + printsignal() does the right thing for quite a while (since v4.26~66 + "Stop using SIG_0") so the signal printing code can be simplified. + This change is covered by a check in clone-flags test. + + * clone.c (SYS_FUNC(clone)): Simplify signal printing in absence + of flags. + +2020-01-07 Eugene Syromyatnikov + + xlat: update KVM_* constants. + * xlat/kvm_cap.in (KVM_CAP_PPC_GUEST_DEBUG_SSTEP): New constant + introduced by Linux kernel commit v5.5-rc1~47^2~5^2~14. + (KVM_CAP_ARM_NISV_TO_USER): New constant introduced by Linux kernel + commits v5.5-rc1~47^2~16^2~3 and v5.5-rc1~47^2~16. + (KVM_CAP_ARM_INJECT_EXT_DABT): New constant introduced by Linux kernel + commits v5.5-rc1~47^2~16^2~2 and v5.5-rc1~47^2~16. + * xlat/kvm_exit_reason.in (KVM_EXIT_ARM_NISV): New constant introduced + by Linux kernel commit v5.5-rc1~47^2~16^2~3. + + xlat: add V4L2_CID_UNIT_CELL_SIZE to v4l2_control_ids. + * xlat/v4l2_control_ids.in (V4L2_CID_UNIT_CELL_SIZE): New constant + introduced by Linux kernel commit v5.5-rc1~143^2^2~223. + + xlat: add V4L2_CTRL_TYPE_AREA to v4l2_control_types. + * xlat/v4l2_control_types.in (V4L2_CTRL_TYPE_AREA): New constant + introduced by Linux kernel commit v5.5-rc1~143^2^2~225. + * configure.ac (V4L2_CTRL_TYPE_U8, V4L2_CTRL_TYPE_U16, + V4L2_CTRL_TYPE_U32): Add missing definition checks. + (V4L2_CTRL_TYPE_AREA): Add corresponding definition check. + + xlat: add KEY_MACRO* definitions to evdev_keycode. + * xlat/evdev_keycode.in: Add new constants introduced by Linux kernel + commit v5.5-rc1~92^2~1^2~8. + + xlat: add AUDIT_ANOM_CREAT to nl_audit_types. + * xlat/nl_audit_types.in (AUDIT_ANOM_CREAT): New constant introduced + by Linux kernel commit v5.5-rc1~104^2~1. + + prctl: improve arch_prctl decoding. + * prctl.c (arch_prctl): ARCH_GET_GS and ARCH_GET_FS return 64-bit value + even on x32; ARCH_GET_CPUID ignores the second argument. + +2020-01-07 Eugene Syromyatnikov + + NEWS: mention Fedora bug number for the libdwfl cache issue. + Also, mention the reporter in the git commit message. + + * NEWS: Mention Fedora bug number for the libdwfl cache issue. + + Reported-by: Pavel Zhukov + Complements: v5.4-18-g69b2c33 "unwind-libdw: fix initialization of libdwfl cache" + +2020-01-07 Dmitry V. Levin + + unwind-libdw: fix initialization of libdwfl cache. + This fixes stack trace printing for early syscalls that precede + the first syscall from memory mapping or execve families. + + * unwind-libdw.c (tcb_init): Set struct ctx.last_proc_updating + to a value different from mapping_generation so that libdwfl cache + is properly initialized before the first use. + * NEWS: Mention this fix. + + Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1788636 + +2020-01-06 Dmitry V. Levin + + tests: Do not dereference SCM_TIMESTAMP* control messages in-place. + * tests/sockopt-timestamp.c (print_timestamp_old, + print_timestampns_old): Do not dereference SCM_TIMESTAMP* control + messages in-place to avoid potential alignment issues in the future. + * tests/msg_control.c (test_scm_timestamp_old, test_scm_timestampns_old, + test_scm_timestamping_old, test_scm_timestamp_new, + test_scm_timestampns_new, test_scm_timestamping_new): Likewise. + (main): Use "tail_alloc(1024) + 1024" instead of "tail_alloc(1) + 1" + for obtaining a tail_alloc'ed page to avoid false -Warray-bounds + warnings from some versions of gcc. + + print_timespec.h: cleanup PRINT_TIMESPEC_ARRAY_DATA_SIZE. + * print_timespec.h (PRINT_TIMESPEC_ARRAY_DATA_SIZE): Use loop initial + declaration. Do not treat potentially unaligned pointers as pointers + to TIMESPEC_T. + +2020-01-06 Dmitry V. Levin + + Fix potentially unaligned access in SO_TIMESTAMP*_NEW decoder and tests. + * print_timespec.h [PRINT_TIMESPEC_DATA_SIZE || + PRINT_TIMESPEC_ARRAY_DATA_SIZE] (print_unaligned_timespec_t): New + function. + (PRINT_TIMESPEC_DATA_SIZE, PRINT_TIMESPEC_ARRAY_DATA_SIZE): Use it + instead of print_timespec_t. + * tests/sockopt-timestamp.c: Include . + (print_timestamp_new, print_timestampns_new): Fix potentially unaligned + access of CMSG_DATA. + * NEWS: Mention this fix. + + Fixes: v5.1~21 "Implement decoding of SO_TIMESTAMP*_NEW control messages" + +2020-01-05 Dmitry V. Levin + + tests: check %creds. + * tests/trace_creds.in: New file. + * tests/Makefile.am (EXTRA_DIST): Add trace_creds.in. + * tests/getuid.test: Extend to handle *-creds tests. + * tests/gen_tests.in (getegid-creds, getegid32-creds, geteuid-creds, + geteuid32-creds, getgid-creds, getgid32-creds, getuid-creds, + getuid32-creds, trace_creds): New entries. + +2019-12-29 Andrey Zax + Dmitry V. Levin + + Implement %creds trace class. + This patch implements a new trace class (%creds) to trace syscalls + related to process credentials. + + syscallent headers are updated using the following command: + + sed -i -r '/[gs]et[^p]*([gu]id|groups)|cap[gs]et|\(prctl/ { + s/(\{ [0-6],\t)([A-Z]+\|[A-Z|]+,)\t/\1TC|\2/; + s/(\{ [0-6],\t)([A-Z]+,)/\1TC|\2/; + s/(\{ [0-6],\t)0/\1TC/ + }' linux/*/syscallent*.h + + * basic_filters.c (lookup_class): Add %creds member to syscall_class[]. + * sysent.h (TRACE_CREDS): New macro. + * sysent_shorthand_defs.h (TC): Likewise. + * strace.1.in (.SS Filtering): Add a description for `-e trace=%creds`. + * linux/32/syscallent.h: Add TC flag to credentials 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/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-compat.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. + * NEWS: Mention this change. + +2019-12-29 Dmitry V. Levin + + tests: increase the child stack size in some tests that invoke clone. + Increase the child stack size from the half page size to the full page + size in those few tests that invoke clone syscall. + + The former size appears to be insufficient in some build setups. + For example, clang 7 on Ubuntu bionic x86_64 makes ioctl_nsfs test fail + due to child process segfaults. + + * tests/clone_parent.c (child_stack_size, clone): Remove. + (do_clone): New macro. + (main): Use it. + * tests/clone_ptrace.c: Likewise. + * tests/ioctl_nsfs.c (child_stack_size, clone): Remove. + (do_clone): New macro. + (test_user_namespace): Use it. + +2019-12-15 Vladimir D. Seleznev + + Fix typos in comments. + * io.c (tprint_iov_upto): Fix typo in the function header comment. + * tests/tests.h (f8ill_ptr_to_kulong): Likewise. + * printsiginfo.c (print_si_info): Fix typo in the comment. + * stage_output.c (strace_open_memstream): Likewise. + * tests/prctl-seccomp-strict.c (main): Likewise. + * tests/seccomp-strict.c (main): Likewise. + * largefile_wrappers.h: Fix typos in the file header comment. + * tests/zeroargc.c: Fix typo in the file header comment. + +2019-12-11 Dmitry V. Levin + + tests: insert a delay into bpf-obj_get_info_by_fd tests. + According to Quentin Monnet [1], there is a delay when the locked memory + is being reclaimed after a BPF program or map is removed. + + Privileged tools like iproute2 and bpftool workaround this Linux kernel + limitation by raising RLIMIT_MEMLOCK to infinity prior to creating BPF + objects. + + Our BPF tests are expected to be invoked without extra privileges + and therefore do not have this option. + + Instead, we serialize all BPF tests invocations and insert a delay + long enough to let the locked memory be reclaimed. + + [1] https://lists.strace.io/pipermail/strace-devel/2019-December/009274.html + + * tests/bpf-obj_get_info_by_fd.c (main): Add a comment and a sleep + invocation. + * tests/pure_executables.list: Remove bpf-obj_get_info_by_fd, + bpf-obj_get_info_by_fd-prog, bpf-obj_get_info_by_fd-prog-v, + and bpf-obj_get_info_by_fd-v because they call sleep function + that may be implemented on top of clock_nanosleep* syscalls. + + Thanks-to: Quentin Monnet + References: https://github.com/strace/strace/issues/74 + +2019-12-10 Paul Chaignon + + bpf: support new fields for BPF_PROG_LOAD. + * bpf_attr.h (BPF_PROG_LOAD_struct): New fields introduced in Linux + commits v5.5-rc1~174^2~310^2~19^2~7 and v5.5-rc1~174^2~49^2~12^2~3. + * bpf.c (BEGIN_BPF_CMD_DECODER(BPF_PROG_LOAD)): Decode the new fields. + * NEWS: Mention this. + * tests/bpf.c (BPF_PROG_LOAD_checks): Update expected outputs. + * tests/bpf-obj_get_info_by_fd.c (print_prog_load): Likewise. + * tests/kernel_version.c (print_bpf_attr): Likewise. + + bpf: update BPF constants. + * xlat/bpf_attach_type.in (BPF_TRACE_RAW_TP): New constant introduced in + Linux commit v5.5-rc1~174^2~249^2~4^2~1. + (BPF_TRACE_FENTRY, BPF_TRACE_FEXIT): New constants introduced in Linux + commit v5.5-rc1~174^2~49^2~12^2~16. + * xlat/bpf_map_flags.in (BPF_F_MMAPABLE): New constant introduced in Linux + commit v5.5-rc1~174^2~49^2~11^2~2. + * xlat/bpf_prog_types.in (BPF_PROG_TYPE_TRACING): New constant + introduced in Linux commit v5.5-rc1~174^2~249^2~4^2~1. + * NEWS: Mention this. + * tests/bpf.c (BPF_MAP_CREATE_checks, BPF_PROG_LOAD_checks, + BPF_PROG_QUERY_checks): Update expected outputs. + * tests/kernel_version.c (print_bpf_attr, main): Likewise. + +2019-12-03 Dmitry V. Levin + + tests: check decoding of NDA_LLADDR netlink neighbour table attribute. + * tests/nlattr_ndmsg.c (main): Check decoding of NDA_LLADDR. + +2019-12-03 Jamal Hadi Salim + Dmitry V. Levin + + rtnl_neigh: fix NDA_LLADDR netlink neighbour table attribute decoder. + + Before this fix NDA_LLADDR attributes used to be printed + as inet addresses, not as mac addresses. + + * rtnl_neigh.c (decode_neigh_lladdr): New function. + (ndmsg_nla_decoders): Use it for NDA_LLADDR decoding. + * NEWS: Mention this fix. + + Fixes: v4.19~33 "rtnl_neigh: decode ndmsg netlink attributes" + +2019-12-03 Dmitry V. Levin + + mpers.m4: use AC_LANG_PROGRAM instead of AC_LANG_SOURCE. + AC_LANG_PROGRAM is a convenient wrapper around AC_LANG_SOURCE. + + * m4/mpers.m4 (st_MPERS): Use AC_LANG_PROGRAM instead of AC_LANG_SOURCE. + +2019-12-03 Dmitry V. Levin + + mpers.m4: modify CPPFLAGS and CFLAGS separately. + * m4/mpers.m4 (st_MPERS): Add $IFLAG to CPPFLAGS, add MPERS_CFLAGS + to CFLAGS. This change is not expected to change behaviour. + +2019-12-03 Dmitry V. Levin + + configure.ac: do not copy CFLAGS to CFLAGS_FOR_{M32,MX32} + As result, CFLAGS is no longer passed to mpers.sh, + reintroducing the traditional behaviour changed by commit v5.4~32. + + The copying behaviour in it's current form was problematic because some + of compiler options may break mpers.sh; for example, if CFLAGS includes + -flto, then mpers.sh breaks, since intermediate *.o files created by + mpers.sh do not contain any real code. + + * configure.ac [$arch != aarch64]: Initialize CFLAGS_FOR_M32 and + CFLAGS_FOR_MX32 to empty strings by default. + * NEWS: Mention this fix. + + Reported-by: Andreas Schwab + Reported-by: Thomas Deutschmann + Resolves: https://github.com/strace/strace/issues/114 + Fixes: v5.4~32 "Add support for per-mpers compiler settings" + +2019-12-02 Dmitry V. Levin + + tests: tweak restart_syscall test to workaround nanosleep changes. + nanosleep function in glibc used to be implemented as a simple syscall + wrapper around __NR_nanosleep, but starting with glibc commit + glibc-2.30.9000-234-g3537ecb49c, it is implemented on top of + __clock_nanosleep function which in turn is implemented on top of + __clock_nanosleep_time64 function. + + These functions do not forward the last argument written by the kernel + when the underlying syscall succeeds, breaking the expected output. + Besides that, these proxy functions pass garbage in the upper 32-bits + of tv_nsec on 32-bit architectures . + + Rather than changing restart_syscall test to use __NR_nanosleep syscall + directly, relax the expected output with regards to the remaining time + written by the kernel as this not what is being tested by + restart_syscall test. + + * tests/restart_syscall.c: Stop including . + (main): Do not use assert. Change the initial value of rem variable. + Use regexps instead of specific values of rem.tv_sec and rem.tv_nsec + in the expected output. + * NEWS: Mention this change. + +2019-12-01 Dmitry V. Levin + + Post-release administrivia. + * NEWS: Add a header line for the next release. + * debian/changelog.in: Add a changelog entry for 5.4-1. + * strace.spec.in: Likewise. + +2019-11-28 Dmitry V. Levin + + Prepare for 5.4 release. + * NEWS: Update for 5.4 release. + + Update copyright headers. + Headers updated automatically using maint/update_copyright_years.sh + script. + +2019-11-28 Dmitry V. Levin + + Fix preprocessor indentation. + Indent the C preprocessor directives to reflect their nesting + using the following script: + + $ cppi -l $(git grep -El '^[[:space:]]*#[[:space:]]*(if|ifdef|ifndef|elif|else|endif|define|pragma)[[:space:]]' |grep -v '\.sh$') |while read f; do + cppi < "$f" > "$f".cppi; mv "$f".cppi "$f" + done + +2019-11-28 Dmitry V. Levin + + tests: tweak restart_syscall test to break in a more obvious way in case of faulty libc + If libc implements nanosleep on top of clock_nanosleep, there is + a chance of struct timespec translation bugs in libc breaking this test. + Tweak the test to make this breakage more obvious. + + * tests/restart_syscall.c (main): Initialize rem variable with invalid + timespec data. + +2019-11-28 Dmitry V. Levin + + tests: fix restart_syscall test on systems with emulated nanosleep. + When libc emulates nanosleep on top of clock_nanosleep, the address + of the structure passed to the kernel is not the same as the address + of the structure passed to nanosleep. + + * tests/restart_syscall.c (main): Update expected output. + +2019-11-27 Eugene Syromyatnikov + Dmitry V. Levin + + Update NEWS. + +2019-11-27 Dmitry V. Levin + + ci: use kernel headers from Linux v5.4. + There is too much noise when using unreleased kernel uapi. + + * .gitlab-ci.yml (variables): Add KBRANCH. + * .travis.yml (env:global): Likewise. + +2019-11-27 Dmitry V. Levin + + Use an LFS version of fcntl function when available. + glibc-2.28 introduced fcntl64 as an LFS version of fcntl function, + use this new function when available. + + * configure.ac (AC_CHECK_FUNCS): Add fcntl64. + * largefile_wrappers.h (fcntl_fd): New macro. + * strace.c (set_cloexec_flag): Use it instead of fcntl. + +2019-11-27 Paul Chaignon + + bpf: update BPF constants. + * xlat/bpf_prog_types.in (BPF_PROG_TYPE_CGROUP_SOCK_ADDR): New constant + introduced by Linux commit v4.17-rc1~148^2~19^2^2~6. + (BPF_PROG_TYPE_LWT_SEG6LOCAL, BPF_PROG_TYPE_LIRC_MODE2, + BPF_PROG_TYPE_LIRC_MODE2, BPF_PROG_TYPE_FLOW_DISSECTOR, + BPF_PROG_TYPE_CGROUP_SYSCTL, BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE, + BPF_PROG_TYPE_CGROUP_SOCKOPT): Update constant values following missing + entry in enum. + * tests/bpf.c (BPF_PROG_LOAD_checks): Update expected outputs and add test. + * tests/kernel_version.c (print_bpf_attr, main): Likewise. + + Fixes: v4.24~49 "xlat: update bpf(2)-related constants" + Fixes: v4.25~58 "xlat: add BPF_PROG_TYPE_SK_REUSEPORT to bpf_prog_types.in" + Fixes: v4.26~12 "xlat: add flow dissector bpf program type constants" + Fixes: v5.2~38 "xlat: update BPF_* constants" + Fixes: v5.3~60 "xlat: update BPF_* constants" + +2019-11-27 Paul Chaignon + + bpf: support new field in BPF_MAP_LOOKUP_ELEM. + * bpf_attr.h (BPF_MAP_LOOKUP_ELEM_struct): New field introduced by Linux + commit v5.1-rc1~178^2~375^2~4^2~3. + * xlat/bpf_map_lookup_elem_flags.in: New file. + * bpf.c: Include "xlat/bpf_map_lookup_elem_flags.h". + (BEGIN_BPF_CMD_DECODER(BPF_MAP_LOOKUP_ELEM)): Decode the new field. + * tests/bpf.c (BPF_MAP_LOOKUP_ELEM_checks): Update expected outputs. + +2019-11-19 Dmitry V. Levin + + xlat: provide fallback definitions for IPC_* and SHM_* constants. + * xlat/shm_flags.in: Provide fallback definitions for constants. + * xlat/shm_resource_flags.in: Likewise. + + xlat: update MSG_* constants. + * xlat/ipc_msg_flags.in: Provide fallback definitions for constants. + (MSG_COPY): New constant introduced by Linux kernel commit + v3.8-rc3~16^2~30. + * NEWS: Mention this. + +2019-11-19 Dmitry V. Levin + + tests: change status-unfinished-threads test to use __NR_nanosleep. + Starting with glibc commit glibc-2.30.9000-234-g3537ecb49c, + nanosleep function in glibc is implemented on top of clock_nanosleep, + which makes it unsuitable for this test that is based on nanosleep + syscall. + + * tests/status-unfinished-threads.c: Skip the test if __NR_nanosleep + is not defined, include "kernel_old_timespec.h". + (thread, main): Change the type of ts variable to kernel_old_timespec_t, + invoke nanosleep syscall using __NR_nanosleep. + +2019-11-19 Dmitry V. Levin + + tests: change threads-execve test to use __NR_nanosleep. + Starting with glibc commit glibc-2.30.9000-234-g3537ecb49c, + nanosleep function in glibc is implemented on top of clock_nanosleep, + which makes it unsuitable for this test that uses both nanosleep + and clock_nanosleep syscalls for different purposes. + + * tests/threads-execve.c: Skip the test if __NR_nanosleep is not defined. + Include "kernel_old_timespec.h". + (thread, main): Invoke nanosleep syscall using __NR_nanosleep. + +2019-11-19 Dmitry V. Levin + + tests: robustify umoven-illptr test against undefined __NR_nanosleep. + * tests/umoven-illptr.c: Skip the test if __NR_nanosleep is not defined. + Include "kernel_old_timespec.h" instead of , use + kernel_old_timespec_t instead of struct timespec. + +2019-11-19 Dmitry V. Levin + + tests: change sleep helper to use __NR_nanosleep. + Starting with glibc commit glibc-2.30.9000-234-g3537ecb49c, + nanosleep function in glibc is implemented on top of clock_nanosleep, + which makes it unsuitable for the sleep helper that is expected to + invoke nanosleep syscall. + + * tests/sleep.c: Skip the test if __NR_nanosleep is not defined. + Include "kernel_old_timespec.h" instead of . + (main): Change the type of ts variable to kernel_old_timespec_t, + invoke nanosleep syscall using __NR_nanosleep. + +2019-11-19 Dmitry V. Levin + + tests: consistently check before use that sleep executable works. + Add the required check to those few tests that miss it. + + * tests/status-detached.test: Invoke "run_prog ../sleep 0". + * tests/strace-DD.test: Likewise. + * tests/strace-ff.test: Likewise. + +2019-11-19 Dmitry V. Levin + + tests: change restart_syscall test not to assume nanosleep syscall. + Starting with glibc commit glibc-2.30.9000-234-g3537ecb49c, + nanosleep function in glibc is implemented on top of clock_nanosleep, + which makes any code relying on the old behaviour fragile. + + Resolve this issue by allowing other syscalls from the nanosleep family. + + * tests/restart_syscall.c (NANOSLEEP_NAME_RE, NANOSLEEP_CALL_RE): New + macros. + (main): Use them to extend regular expressions to allow clock_nanosleep + and clock_nanosleep_time64 syscalls. + * tests/restart_syscall.test: Replace nanosleep with /nanosleep in the + list of matched syscalls. + +2019-11-19 Dmitry V. Levin + + tests: change nanosleep test to use __NR_nanosleep. + Starting with glibc commit glibc-2.30.9000-234-g3537ecb49c, + nanosleep function in glibc is implemented on top of clock_nanosleep, + which makes it unsuitable for the test of nanosleep decoder. + + * tests/nanosleep.c: Skip the test if __NR_nanosleep is not defined. + Include "kernel_old_timespec.h" instead of . + (k_nanosleep): New function. + (main): Change the type of ts variable to kernel_old_timespec_t, + use k_nanosleep to invoke nanosleep syscall using __NR_nanosleep. + +2019-11-19 Dmitry V. Levin + + tests: introduce kernel_old_timespec.h. + This header file defines kernel_old_timespec_t type that is going to be + used to define objects passed to such system calls as nanosleep. + + * tests/kernel_old_timespec.h: New file. + * tests/Makefile.am (EXTRA_DIST): Add kernel_old_timespec.h. + +2019-11-19 Dmitry V. Levin + + tests: change adjtimex test to use __NR_adjtimex. + Starting with glibc commit glibc-2.30.9000-215-gc81aa64e81, + adjtimex function in glibc is implemented on top of clock_adjtime, + which makes it unsuitable for the test of adjtimex decoder. + + * configure.ac (AC_CHECK_MEMBERS): Remove struct timex.tai. + * tests/adjtimex.c: Skip the test if __NR_adjtimex is not defined. + Include "kernel_old_timex.h". + (k_adjtimex): New function. + (main): Change the type of tx pointer to kernel_old_timex_t, + use k_adjtimex to invoke adjtimex syscall. + +2019-11-19 Dmitry V. Levin + + tests: introduce kernel_old_timex.h. + This header file defines kernel_old_timex_t type that is going to be + used to define objects passed to such system calls as adjtimex. + + * tests/kernel_old_timex.h: New file. + * tests/Makefile.am (EXTRA_DIST): Add kernel_old_timex.h. + +2019-11-18 Dmitry V. Levin + + tests: rewrite semop test. + Starting with glibc commit glibc-2.30.9000-169-g765cdd0bff, + semop function in glibc is implemented on top of semtimedop, + which makes it unsuitable for the test of semop decoder. + + Resolve this issue by creating two tests: one that checks decoding + of __NR_semop, and another that checks decoding of __NR_ipc SEMOP. + + * tests/semop-common.c: New file. + * tests/Makefile.am (EXTRA_DIST): Add semop-common.c. + * tests/semop-indirect.c: New file. + * tests/semop.c: Rewrite using __NR_semop. + * tests/pure_executables.list: Add semop-indirect. + * tests/.gitignore: Likewise. + * tests/gen_tests.in (semop): Update. + (semop-indirect): New entry. + +2019-11-18 Dmitry V. Levin + + tests: add a separate semtimedop test. + The semop test is going to be changed soon, so create a separate + semtimedop test based on the test we have. + + * tests/semtimedop.c: New file. + * tests/pure_executables.list: Add semtimedop. + * tests/.gitignore: Likewise. + * tests/gen_tests.in (semtimedop): New entry. + +2019-11-17 Dmitry V. Levin + + xlat: update PTP_* constants. + * xlat/ptp_extts_flags.in (PTP_STRICT_FLAGS): New constant introduced + by Linux kernel commit v5.4-rc8~8^2~9^2~5. + +2019-11-15 Dmitry V. Levin + + travis: switch from gcc-8 to gcc-9. + * .travis.yml (matrix): Switch all gcc-8 builds except arm64 ones + to gcc-9. gcc-8 arm64 builds have to remain until gcc-9 arm64 builds + are fixed, currently they error out because of missing + gcc-9-multilib-arm-linux-gnueabihf package. + +2019-11-15 Dmitry V. Levin + + travis: switch some stack trace enabled builds from libunwind to libdw. + Switch to Bionic allows to use libdw instead of libunwind. + + * .travis.yml (matrix): Change STACKTRACE from libunwind to libdw + in most of Bionic-based builds. + +2019-11-15 Dmitry V. Levin + + travis: switch from Trusty to Bionic. + Ideally, all builds have to be switched, but coverage build, + unfortunately, errors out by Travis CI with a build timeout, + musl-gcc x86 build fails with + "undefined reference to `__stack_chk_fail_local'" error, and gcc-8 arm64 + builds error out because of missing gcc-8-multilib-arm-linux-gnueabihf + package. + + * .travis.yml (dist): Change to bionic. + (matrix): Add "dist: trusty" to coverage, musl-gcc x86, and gcc-8 arm64 + builds. + +2019-11-15 Dmitry V. Levin + + ci: enable mpers in aarch64 builds. + * ci/install-dependencies.sh (aarch64): Install libc6-dev-armhf-cross + and linux-libc-dev-armhf-cross packages. + * ci/run-build-and-tests.sh (aarch64): Enable strict mpers check + by removing --enable-mpers=check configure option. + +2019-11-15 Paul Chaignon + + ci: support Travis CI's aarch64 builds. + Travis CI now supports aarch64 builds, launched with the new "arch: arm64" + tag. These builds are running inside LXD only for the moment. + + The aarch64 builds tend to be a lot slower than their x86_64 counterparts, + so several timeout values need to be increased. + + Some tests occasionally take more than 10 minutes, hitting Travis CI's + timeout on output inactivity. Using "travis_wait 40" disables that + timeout; it delays the start time for the output inactivity timeout by 40 + minutes, bringing it to the maximum build timeout of 50 minutes. + + * .travis.yml (matrix): Add aarch64 builds and mark previous builds as + amd64. + * ci/install-dependencies.sh: Install packages for aarch64 builds. + * ci/run-build-and-tests.sh: Check mpers for aarch64. + +2019-11-15 Eugene Syromyatnikov + + debian/control: add build dependencies for aarch64 mpers. + * debian/control (Build-Depends): Add gcc-arm-linux-gnueabi, + libc6-dev-armel-cross, linux-libc-dev-armel-cross as additional + dependencies on arm64 in order to build proper mpers support. + +2019-11-15 Eugene Syromyatnikov + + configure.ac: use a separate compiler for ARM EABI on AArch64. + As gcc on AArch64 doesn't support compat ABI target, we have to find + and use a separate compiler in order to get proper compat personality + support on AArch64. + + * configure.ac (arch == aarch64): Try to find a compiler for ARM EABI + based on known names for it in various distributions. + +2019-11-15 Eugene Syromyatnikov + + Add support for per-mpers compiler settings. + As some very special architectures require a separate compiler + in order to compile binaries for additional supported personalities, + we have to introduce such support. + + * Makefile.am (mpers_CPPFLAGS): Move $(strace_CPPFLAGS) ... + (mpers_sh_opts): ... here. + (mpers-m%.stamp:): Use $(mpers_CC) instead of $(CC) for compiler, + pass $(mpers_CC_FLAGS) in quotes as it might be empty or contain spaces. + ($(mpers_m32_targets)): Add @CFLAGS_FOR_M32@ to mpers_CC_FLAGS, set + mpers_CPPFLAGS and mpers_CC. + ($(mpers_mx32_targets)): Add @CFLAGS_FOR_MX32@ to mpers_CC_FLAGS, set + mpers_CPPFLAGS and mpers_CC. + * bootstrap (m_upper): Derive uppercase personality name. + Set CC for mpers Makefile.am, add @CFLAGS_FOR_{M32,MX32}@ to + MPERS_CC_FLAGS definition. + * configure.ac: Derive default values for + {CC,CPP,CFLAGS,CPPFLAGS}_FOR_{M32,MX32} from the respective CC, CPP, + CFLAGS, and CPPFLAGS values. + * m4/mpers.m4 (AC_DEFUN([st_MPERS])): Use + {CC,CPP,CFLAGS,CPPFLAGS}_FOR_<$1> as CC, CPP, CFLAGS, and CPPFLAGS, + respectively. Enclose MPERS_CFLAGS in quotes in mpers.sh call. Provide + information about compiler in the AC_CACHE_CHECK message. + * tests/Makefile.am (CC): New variable. + + Co-Authored-by: Dmitry V. Levin + +2019-11-15 Dmitry V. Levin + + ci: enable symbols demangling in stack trace enabled builds. + * ci/install-dependencies.sh: Install libiberty-dev when STACKTRACE + is specified. + + tests: lower expected performance gain in filter_seccomp-perf.test. + * tests/filter_seccomp-perf.test (min_ratio): Change from 8 to 6, + the former expectation was too optimistic for such slow architectures + as parisc. + + tests: fix invalid copyright years range in a few tests. + * maint/update_copyright_years.sh (process_file): When updating + copyright years, if there is existing notice and its starting year is + earlier than the year of the first commit, the former takes precedence. + * tests/filter_seccomp-flag.c: Fix copyright years range. + * tests/filter_seccomp-perf.c: Likewise. + * tests/filter_seccomp-perf.test: Likewise. + * tests/filter_seccomp.sh: Likewise. + * tests/status-none-f.c: Likewise. + + ptp: add support of new PTP_*2 ioctls. + * ptp.c [!PTP_CLOCK_GETCAPS2] (PTP_CLOCK_GETCAPS2): Define. + [!PTP_EXTTS_REQUEST2] (PTP_EXTTS_REQUEST2): Likewise. + [!PTP_PEROUT_REQUEST2] (PTP_PEROUT_REQUEST2): Likewise. + [!PTP_ENABLE_PPS2] (PTP_ENABLE_PPS2): Likewise. + [!PTP_SYS_OFFSET2] (PTP_SYS_OFFSET2): Likewise. + (ptp_ioctl): Handle PTP_CLOCK_GETCAPS2, PTP_EXTTS_REQUEST2, + PTP_PEROUT_REQUEST2, PTP_ENABLE_PPS2, and PTP_SYS_OFFSET2. + * tests/ioctl_ptp.c: Check decoding of PTP_*2 ioctls. + + tests: rewrite ioctl_ptp test using sprintrc. + * tests/ioctl_ptp.c: Do not include . + (main): Use sprintrc. + + ptp: prepare for support of new PTP_*2 ioctls. + * xlat/ptp_flags_options.in: Rename to ... + * xlat/ptp_extts_flags.in: ... new file, add fallback definitions + for constants. + * xlat/ptp_perout_flags.in: New file. + * ptp.c: Include "xlat/ptp_extts_flags.h" and "xlat/ptp_perout_flags.h" + instead of "xlat/ptp_flags_options.h". + (ptp_ioctl): Use ptp_extts_flags and ptp_perout_flags instead of + ptp_flags_options. + * tests/ioctl_ptp.c: Include "xlat/ptp_extts_flags.h" and + "xlat/ptp_perout_flags.h" instead of "xlat/ptp_flags_options.h". + (test_no_device): Use ptp_extts_flags and ptp_perout_flags instead of + ptp_flags_options. + + prctl: implement decoding of PR_[GS]ET_TAGGED_ADDR_CTRL. + * xlat/prctl_options.in (PR_SET_TAGGED_ADDR_CTRL, + PR_GET_TAGGED_ADDR_CTRL): New constants introduced by Linux kernel commit + v5.4-rc1~100^2~6^9~8. + * prctl.c (SYS_FUNC(prctl)): Handle them. + * NEWS: Mention this. + * tests/prctl-no-args.c: Check PR_GET_TAGGED_ADDR_CTRL decoding. + + xlat: update KVM_CAP_* constants. + * xlat/kvm_cap.in (KVM_CAP_ARM_IRQ_LINE_LAYOUT_2): New constant + introduced by Linux kernel commit v5.4-rc1~138^2~20^2. + (KVM_CAP_HYPERV_DIRECT_TLBFLUSH): New constant introduced by Linux + kernel commit v5.4-rc1~26^2~53. + * NEWS: Mention this. + + xlat: update KEXEC_* constants. + * xlat/kexec_arch_values.in (KEXEC_ARCH_PARISC): New constant introduced + by Linux kernel commit v5.4-rc1~188^2~4. + * NEWS: Mention this. + + xlat: update CAN_* constants. + * xlat/can_protocols.in (CAN_J1939): New constant introduced by Linux + kernel commit v5.4-rc1~131^2~78^2~2. + * NEWS: Mention this. + +2019-11-14 Dmitry V. Levin + + bpf: implement decoding of BPF_BTF_GET_NEXT_ID command. + * xlat/bpf_commands.in (BPF_BTF_GET_NEXT_ID): New constant introduced + by Linux kernel commit v5.4-rc1~131^2~62^2~28^2~4. + * bpf_attr.h (BPF_BTF_GET_NEXT_ID_struct, + BPF_BTF_GET_NEXT_ID_struct_size): New macros. + * bpf.c (decode_BPF_BTF_GET_NEXT_ID): Likewise. + (bpf_cmd_decoders): Add BPF_CMD_ENTRY(BPF_BTF_GET_NEXT_ID). + * NEWS: Mention this change. + * tests/bpf.c (BPF_BTF_GET_NEXT_ID_checks): New macro. + (checks): Add CHK(BPF_BTF_GET_NEXT_ID). + +2019-11-13 Dmitry V. Levin + + xlat: update MADV_* constants. + * xlat/madvise_cmds.in (MADV_COLD): New constant introduced by Linux + kernel commit v5.4-rc1~46^2~13. + (MADV_PAGEOUT): New constant introduced by Linux kernel commit + v5.4-rc1~46^2~11. + * NEWS: Mention this. + +2019-11-13 Gleb Fotengauer-Malinovskiy + + Update ioctl entries from linux v5.4. + * linux/32/ioctls_inc_align16.h: Update from linux v5.4-rc7 + using ioctls_gen.sh. + * linux/32/ioctls_inc_align32.h: Likewise. + * linux/32/ioctls_inc_align64.h: Likewise. + * linux/64/ioctls_inc.h: Likewise. + * linux/x32/ioctls_inc0.h: Likewise. + * linux/riscv64/ioctls_arch0.h: Likewise. + * linux/s390/ioctls_arch0.h: Likewise. + * linux/s390x/ioctls_arch0.h: Likewise. + * NEWS: Mention this. + +2019-11-09 Paul Chaignon + + filter_seccomp: fix jump offset overflow in binary match generator. + binary_match_filter_generator() is missing a check for jump offset + overflows which might result in incorrect behavior if the binary match + strategy is selected and overflows. + + I have only been able to reproduce the bug on mips after forcing strace to + use the binary match generator. Due to the large number of syscalls on + mips, the binary match algorithm is suboptimal and the linear one is + selected. This bug could however be triggered inadvertently if tracing a + very large set of syscalls not grouped together; in that case, the linear + strategy might have a jump offset overflow itself and strace would + fallback to the binary match one. + + * filter_seccomp (binary_match_filter_generator): Check for jump offset + overflows. + +2019-11-08 Paul Chaignon + + tests: fix potentially missing SHM_NORESERVE for mips. + * tests/ipc_shm.c [!SHM_NORESERVE] (SHM_NORESERVE): Define. + +2019-11-07 Dmitry V. Levin + + tests: tolerate zero process group ID and session ID in strace-DDD.test. + Paul Chaignon reported [1] that in some of Travis CI build environments + process group ID and session ID may be equal to zero. + + Change the affected strace-DDD.test to tolerate these odd values as long + as they don't interfere with the purpose of the test. + + [1] https://travis-ci.community/t/unexpected-zero-values-in-proc-pid-stat/5774 + + * tests/strace-DDD.test: Tolerate zero process group ID and session ID. + + Reported-by: Paul Chaignon + +2019-11-07 Dmitry V. Levin + + tests: fix -a argument in ipc_msgbuf-Xraw test. + * tests/gen_tests.in (ipc_msgbuf-Xraw): Change -a argument from 20 to 19. + +2019-11-07 Paul Chaignon + Dmitry V. Levin + + tests: robustify umount2.test against filtered umount2 syscall. + Do not assume that umount2 syscall invoked with invalid arguments always + fail with EINVAL as in some environments it can be filtered out e.g. + using seccomp-bpf. + + * tests/umount2.c (main): Use sprintrc() to prepare expected output. + +2019-11-02 Dmitry V. Levin + + tests: enhance termination signal forwarding check. + Check that termination signal forwarding works properly when strace + is invoked with the corresponding termination signal blocked. + + * tests/block_reset_run.c: New file. + * tests/Makefile.am (check_PROGRAMS): Add block_reset_run. + * tests/.gitignore: Likewise. + * tests/termsig.test: Extend the check to cover the case when + strace is invoked with the termination signal blocked. + +2019-11-02 Dmitry V. Levin + + Use __gcov_dump declaration from if available. + The function declaration provided by is fine, + use it when is available. + + * configure.ac (AC_CHECK_HEADERS): Add gcov.h. + * defs.h [ENABLE_COVERAGE_GCOV && HAVE_GCOV_H]: Include . + +2019-11-02 Dmitry V. Levin + + Use __gcov_dump instead of __gcov_flush to dump profile information. + __gcov_flush is essentially __gcov_dump followed by __gcov_reset. + The way we use __gcov_flush so far does not need any __gcov_reset, + so use __gcov_dump instead. + + * defs.h [ENABLE_COVERAGE_GCOV] (__gcov_flush): Replace with + __gcov_dump. + (GCOV_FLUSH): Replace with GCOV_DUMP. + * filter_seccomp.c (check_seccomp_order_do_child): Replace GCOV_FLUSH + with GCOV_DUMP. + * strace.c (terminate): Likewise. + +2019-11-02 Dmitry V. Levin + + Reduce ENABLE_COVERAGE_GCOV ifdefery. + Introduce a new macro GCOV_FLUSH and use it instead of __gcov_flush. + + * defs.h (GCOV_FLUSH): New macro. + [ENABLE_COVERAGE_GCOV] (__gcov_flush): New prototype. + * filter_seccomp.c (__gcov_flush): Remove. + (check_seccomp_order_do_child): Call GCOV_FLUSH instead of __gcov_flush. + * strace.c (__gcov_flush): Remove. + (terminate): Call GCOV_FLUSH instead of __gcov_flush. + +2019-10-31 Dmitry V. Levin + + filter_seccomp: simplify check_seccomp_filter_properties. + * filter_seccomp.c (check_seccomp_filter_properties): Simplify slightly + by removing a redundant "if" expression. + +2019-10-31 Paul Chaignon + + filter_seccomp: binary match generation strategy. + This commit introduces a new BPF program generation strategy. Traced + syscalls are encoded in 32-bit bit arrays in the BPF program. Syscalls + are then matched against bit arrays at runtime with two ALU operations: + a division to select the appropriate bit array to compare with, + and a shift to select the appropriate bit in the bit array. + + Since there is no way to implement a jump table in BPF (jumps have fixed + offsets), we have to iterate over all bit arrays to select the appropriate + bit array. The division and modulo are also converted into a shift and + a bitwise AND, to improve performance and because seccomp-bpf disallows + modulos in BPF. + + Compared to the linear generation strategy, this strategy generates + programs of near constant size. There is a single optimization that + depends on traced syscalls: if a bit array is all-0 or all-1, we don't + need to do a jset against it, we can simply jump to either RET_ALLOW + or RET_TRACE. + + * filter_seccomp.c (JMP_PLACEHOLDER_ALLOW): New constant. + (binary_match_filter_generator): New prototype. + (filter_generators): Add binary_match_filter_generator. + (replace_jmp_placeholders): Handle JMP_PLACEHOLDER_ALLOW case. + (linear_filter_generator): New argument for replace_jmp_placeholders. + (bpf_syscalls_match, binary_match_filter_generator): New functions. + (dump_seccomp_bpf): Handle ldwimm, jset, rsh, lsh, and, tax, and txa + instructions. + +2019-10-31 Paul Chaignon + + filter_seccomp: list of seccomp filter generation strategies. + Iterate over a list of BPF program generators, to select the shortest + program. This commit doesn't introduce new generation strategies. + + * filter_seccomp.c (filter_generator_t): New typedef. + (linear_filter_generator): New prototype. + (filter_generators, filters): New variables. + (seccomp_filter): Remove. + (init_sock_filter): Rename to linear_filter_generator, signal overflow + via function argument instead of erroring out. + (check_seccomp_filter): Find the shortest program generated by all + generation strategies, error in case of overflow in all generated + programs. + +2019-10-28 Dmitry V. Levin + + ci: install rsync for headers_install. + Starting with Linux commit v5.3-rc1~111^2~40, "make headers_install" + needs rsync. + + * ci/install-dependencies.sh: Install rsync before invoking + "make headers_install". + +2019-10-28 Dmitry V. Levin + + tests: skip a few tests on systems with nproc == 1. + Several tests require some concurrency between threads, + skip these tests if nproc reports 1. + + * tests/init.sh (require_min_nproc): New function. + * tests/status-none-threads.test: Use it. + * tests/threads-execve.test: Likewise. + +2019-10-28 Eugene Syromyatnikov + + xlat: update v4l2_sliced_flags. + * xlat/v4l2_sliced_flags.in (V4L2_SLICED_TELETEXT_B, V4L2_SLICED_VPS, + V4L2_SLICED_CAPTION_525, V4L2_SLICED_WSS_625): Add fallback definitions. + (V4L2_SLICED_VBI_525): Comment out as it has the same value as + V4L2_SLICED_CAPTION_525. + (V4L2_SLICED_VBI_625): Add fallback definition, move up. + +2019-10-28 Eugene Syromyatnikov + + xlat: update v4l2_vbi_flags. + For some reason, it also used to include V4L2_VBI_ITU_[56]25_F[12]_START + constants that are definitely unrelated to V4L2_VBI_* flags. + + * xlat/v4l2_vbi_flags.in (V4L2_VBI_UNSYNC, V4L2_VBI_INTERLACED): Add + fallback definitions. + (V4L2_VBI_ITU_525_F1_START, V4L2_VBI_ITU_525_F2_START, + V4L2_VBI_ITU_625_F1_START, V4L2_VBI_ITU_625_F2_START): Remove. + +2019-10-28 Eugene Syromyatnikov + + xlat: provide fallback definitions for V4L2_TUNER_* constants. + Also, since V4L2_TUNER_*_SAP have the same values as V4L2_TUNER_*_LANG2, + comment out the former. + + * xlat/v4l2_tuner_audmodes.in: Add fallback definitions for constants, + add #value_indexed. + (V4L2_TUNER_MODE_SAP): Comment out. + * xlat/v4l2_tuner_capabilities.in: Add fallback definitions for + constants. + (V4L2_TUNER_CAP_SAP): Comment out. + * xlat/v4l2_tuner_rxsubchanses.in: Add fallback definitions for + constants. + (V4L2_TUNER_SUB_SAP): Comment out. + +2019-10-28 Eugene Syromyatnikov + + xlat: provide fallback definitions for some V4L2_* constants. + * xlat/v4l2_capture_modes.in: Add fallback definitions for constants. + * xlat/v4l2_control_flags.in: Likewise. + * xlat/v4l2_streaming_capabilities.in: Likewise. + * xlat/v4l2_frameinterval_types.in: Add fallback definitions for + constants, add #value_indexed. + * xlat/v4l2_framesize_types.in: Likewise. + * xlat/v4l2_input_types.in: Likewise. + * xlat/v4l2_memories.in: Likewise. + * xlat/v4l2_tuner_types.in: Likewise. + +2019-10-25 Dmitry V. Levin + + ci: consistently parallelize make jobs. + * ci/run-build-and-tests.sh: Use "nproc" instead of + "getconf _NPROCESSORS_ONLN". + * ci/install-dependencies.sh: Use "nproc" to parallelize make jobs. + +2019-10-25 Dmitry V. Levin + + tests: workaround clang oddness. + When a structure is initialized using designated initializers, + clang >= 7, apparently, does not initialize trailing padding + of the structure. + + * tests/bpf-obj_get_info_by_fd.c [CHECK_OBJ_PROG] + (bpf_prog_load_attr_sizes): Replace the size of struct + BPF_PROG_LOAD_struct with BPF_PROG_LOAD_struct_size. + +2019-10-25 Paul Chaignon + + filter_seccomp: use init_sock_filter to check the number of BPF instructions + With this commit, the number of instructions in the seccomp BPF program + is checked by directly constructing the program. The BPF program is + therefore created during the check for seccomp availability instead of + when seccomp filtering is initialized. The BPF program is saved + as a global variable between the two operations. + + * filter_seccomp.c (seccomp_filter, bpf_prog): New variables. + (init_sock_filter): Disable seccomp-filter in case of overflow, move dump + of BPF program in debug mode... + (init_seccomp_filter): ...here. + (check_bpf_program_size): Remove. + (dump_seccomp_bpf): Remove arguments as they are now global variables. + +2019-10-23 Dmitry V. Levin + + Remove XLAT_END. + * xlat.h (XLAT_END): Remove. + * process.c (struct_user_offsets_data): Replace XLAT_END with a zero + xlat_data entry. + + Complements: v5.3~105 "Add xlat description structure" + +2019-10-23 Dmitry V. Levin + + bfin, csky, m68k, sh: fix build regression. + * xlat/cacheflush_flags.in: New file. + * cacheflush.c [M68K || BFIN || CSKY || SH] (cacheflush_flags): Remove, + include "xlat/cacheflush_flags.h" instead. + + Fixes: v5.3~105 "Add xlat description structure" + +2019-10-22 Eugene Syromyatnikov + + strace.spec.in: add support for old distros that cannot handle .tar.xz. + + xlat: update V4L2_CTRL_TYPE_* constants. + * xlat/v4l2_control_types.in: Add fallback definitions for constants, + and #sorted. + * configure.ac (AC_CHECK_MEMBERS): Check for struct + v4l2_ext_control.string field. + * v4l2.c (print_v4l2_ext_control): Change guard macro + to HAVE_STRUCT_V4L2_EXT_CONTROL_STRING. + + xlat: update V4L2_COLORSPACE_* constants. + * xlat/v4l2_colorspaces.in: Add #value_indexed. + (V4L2_COLORSPACE_DEFAULT): New constant introduced by Linux commit + v4.2-rc1~107^2~184. + (V4L2_COLORSPACE_ADOBERGB): Rename to V4L2_COLORSPACE_OPRGB, per Linux + commit v4.20-rc1~69^2~122. + (V4L2_COLORSPACE_SMPTE170M, V4L2_COLORSPACE_SMPTE240M, + V4L2_COLORSPACE_REC709, V4L2_COLORSPACE_BT878, + V4L2_COLORSPACE_470_SYSTEM_M, V4L2_COLORSPACE_470_SYSTEM_BG, + V4L2_COLORSPACE_JPEG, V4L2_COLORSPACE_SRGB, V4L2_COLORSPACE_OPRGB, + V4L2_COLORSPACE_BT2020, V4L2_COLORSPACE_RAW, V4L2_COLORSPACE_DCI_P3): + Add fallback definitions. + + xlat: Provide fallback definitions for V4L2_FIELD_* constants. + * xlat/v4l2_fields.in: Add fallback definitions for constants. + + xlat: update V4L2_BUF_TYPE_* constants. + * xlat/v4l2_buf_types.in: Add fallback definitions for constants, + mention V4L2_BUF_TYPE_PRIVATE in comment, add #value_indexed. + * configure.ac (AC_CHECK_MEMBERS): Add checks for + struct v4l2_format.fmt.pix_mp, struct v4l2_format.fmt.sdr, and + struct v4l2_format.fmt.sliced. + * v4l2.c (print_v4l2_format_fmt): Use the relevant HAVE_STRUCT_* macros + instead of HAVE_DECL_V4L2_BUF_TYPE_*. + + xlat: provide fallback definitions for V4L2_CAP_* constants. + * xlat/v4l2_device_capabilities_flags.in: Sort, add fallback definitions + for constants. + * configure.ac (AC_CHECK_MEMBERS): Check for struct + v4l2_capability.device_caps. + * v4l2.c (print_v4l2_capability): Change V4L2_CAP_DEVICE_CAPS guard + to HAVE_STRUCT_V4L2_CAPABILITY_DEVICE_CAPS. + +2019-10-22 Eugene Syromyatnikov + + evdev: decode struct input_absinfo regardless of in-kernel definitions. + * evdev.c (struct_input_absinfo): New typedef. + (abs_ioctl): Add code argument. Add orig_sz, res_sz, sz, read_sz local + variables. Decode resolution field regardless of + HAVE_STRUCT_INPUT_ABSINFO_RESOLUTION. + (evdev_read_ioctl, evdev_write_ioctl): Pass code to abs_ioctl. + * tests/ioctl_evdev-success.c (print_input_absinfo): Update expected + output. + (main): Add absinfo_sz, absinfo_24, absinfo_32 local variables; add + additional checks for struct input_absinfo. + + References: https://bugzilla.redhat.com/show_bug.cgi?id=1758201 + +2019-10-22 Eugene Syromyatnikov + + evdev: do not rely on EVIOC* constants provided in + * xlat/evdev_ioctl_cmds.in: New file. + * configure.ac (AC_CHECK_HEADERS([linux/input.h])): Check for struct + input_keymap_entry and struct input_mask. + * evdev.c [!INPUT_PROP_MAX] (INPUT_PROP_MAX): New macro definition. + (struct_input_keymap_entry, struct_input_mask): New typedefs. + [HAVE_STRUCT_INPUT_KEYMAP_ENTRY]: Add a static_assert to check + that sizeof(struct input_keymap_entry) has the expected value. + [HAVE_STRUCT_INPUT_MASK]: Add a static_assert to check + that sizeof(struct input_mask) has the expected value. + [!EVIOCGPROP] (EVIOCGPROP): New macro definition. + [!EVIOCGMTSLOTS] (EVIOCGMTSLOTS): Likewise. + [!EVIOCGSW] (EVIOCGSW): Likewise. + [!EVIOCGKEYCODE_V2] (keycode_V2_ioctl): Remove guard. + (keycode_V2_ioctl): Change type of ike to struct_input_keymap_entry. + [!EVIOCGMTSLOTS] (mtslots_ioctl): Remove guard. + [!EVIOCGREP || EVIOCSREP] (repeat_ioctl): Likewise. + (evdev_read_ioctl) [!EVIOCGREP] : Likewise. + (evdev_read_ioctl) [!EVIOCGKEYCODE_V2] : + Likewise. + (evdev_read_ioctl) [!EVIOCGMTSLOTS] : Likewise. + (evdev_read_ioctl) [!EVIOCGPROP] : Likewise. + (evdev_read_ioctl) [!EVIOCGSW] : Likewise. + (evdev_write_ioctl) [!EVIOCSREP] : Likewise. + (evdev_write_ioctl) [!EVIOCSKEYCODE_V2] : Likewise. + (evdev_write_ioctl) [!EVIOCREVOKE] : Likewise. + (evdev_write_ioctl) [!EVIOCSCLOCKID] : Likewise. + + References: https://bugzilla.redhat.com/show_bug.cgi?id=1758201 + +2019-10-21 Dmitry V. Levin + + tests/nsyscalls.c: remove redundant definition of SYSCALL_BIT. + Starting with commit v5.3~111, tests/nsyscalls.c includes "scno.h" + which already defines SYSCALL_BIT where appropriate. + + * tests/nsyscalls.c (SYSCALL_BIT): Remove. + +2019-10-21 Dmitry V. Levin + + tests: replace "sed -E" with "sed -r" + because the latter is more portable. + + * tests/strace-D.test: Replace "sed -E" with "sed -r". + +2019-10-20 Eugene Syromyatnikov + + xlat: add BPF_MAP_TYPE_DEVMAP_HASH to bpf_map_types. + * xlat/bpf_map_types.in (BPF_MAP_TYPE_DEVMAP_HASH): New constant, + introduced by Linux commit v5.4-rc1~131^2~248^2~16^2~3. + * tests/bpf.c: Update expected output. + + xlat: add BPF_F_CLONE to bpf_map_flags. + * xlat/bpf_map_flags.in (BPF_F_CLONE): New flag, introduced by Linux + commit v5.4-rc1~131^2~62^2~34^2~2. + * tests/bpf.c: Update expected output. + + xlat: add BPF_F_TEST_STATE_FREQ to bpf_prog_flags. + * xlat/bpf_prog_flags.in (BPF_F_TEST_STATE_FREQ): New constant, + introduced by Linux commit v5.4-rc1~131^2~62^2~17^2~3. + * tests/bpf.c: Update expected output. + + xlat: update waitid_types. + * xlat/waitid_types.in (P_PIDFD): New constant, introduced by Linux + commit v5.4-rc1~203^2~4. + (P_ALL, P_PID, P_PGID): Add fallback values. + (P_PPID, P_SID, P_CID, P_UID, P_GID, P_LWPID): Remove. + + xlat: update v4l2_format_description_flags. + * xlat/v4l2_format_description_flags.in (V4L2_FMT_FLAG_COMPRESSED, + V4L2_FMT_FLAG_EMULATED): Add fallback definitions. + (V4L2_FMT_FLAG_CONTINUOUS_BYTESTREAM): New constant, introduced by Linux + commit v5.4-rc1~145^2~69. + (V4L2_FMT_FLAG_DYN_RESOLUTION): New constant, introduced by Linux commit + v5.4-rc1~145^2~68. + + xlat: update sock_sctp_options. + * xlat/sock_sctp_options.in (SCTP_ASCONF_SUPPORTED): New constant, + introduced by Linux commit v5.4-rc1~131^2~204^2~4. + (SCTP_AUTH_SUPPORTED): New constant, introduced by Linux commit + v5.4-rc1~131^2~204^2~1. + (SCTP_ECN_SUPPORTED): New constant, introduced by Linux commit + v5.4-rc1~131^2~140^2. + + xlat: add EROFS_SUPER_MAGIC_V1 to fsmagic. + * xlat/fsmagic.in (EROFS_SUPER_MAGIC_V1): New constant, introduced + by Linux commit v5.4-rc1~134^2~105. + +2019-10-20 Eugene Syromyatnikov + + rtnl_route: decode struct rta_mfc_stats and struct rtvia unconditionally + * rtnl_route.c (struct_rta_mfc_stats, struct_rtvia): New typedefs. + [HAVE_STRUCT_RTA_MFC_STATS]: Add a static_assert to check + that sizeof(struct rta_mfc_stats) has the expected value. + [HAVE_STRUCT_RTVIA]: Add a static_assert to check that sizeof(struct + rtvia) has the expected value. + (decode_rta_mfc_stats) [HAVE_STRUCT_RTA_MFC_STATS]: Remove guard. + (decode_rta_mfc_stats): Change the type of mfcs variable to + struct_rta_mfc_stats. + (decode_rtvia): Change the type of via variable to struct_rtvia. + + References: https://bugzilla.redhat.com/show_bug.cgi?id=1758201 + +2019-10-20 Eugene Syromyatnikov + + rtnl_neightbl: always decode struct ndt_config and struct ndt_stats. + * rtnl_neightbl.c (struct_ndt_config, struct_ndt_stats): New typedefs. + [HAVE_STRUCT_NDT_CONFIG]: New static_assert to check + that sizeof(struct ndt_config) has the expected value. + [HAVE_STRUCT_NDT_STATS]: New static_assert to check + that sizeof(struct ndt_stats) has the expected value. + (decode_ndt_config) [HAVE_STRUCT_NDT_CONFIG]: Remove guard. + (decode_ndt_config): Change the type of ndtc variable + to struct_ndt_config. + (decode_ndt_stats) [HAVE_STRUCT_NDT_STATS]: Remove guard. + (decode_ndt_stats): Change the type of ndtst variable + to struct_ndt_stats. + + References: https://bugzilla.redhat.com/show_bug.cgi?id=1758201 + +2019-10-19 Eugene Syromyatnikov + + rtnl_mdb: decode messages regardless of availability of kernel headers. + * netlink_route.c [!HAVE_STRUCT_BR_PORT_MSG]: Do not skip decoding of + RTM_DELMDB, RTM_GETMDB, and RTM_NEWMDB messages. + * rtnl_mdb.c: Remove #ifdef HAVE_STRUCT_BR_PORT_MSG guard. + (struct_br_port_msg, struct_br_mdb_entry): New typedefs. + [HAVE_STRUCT_BR_PORT_MSG]: Static assert check for struct br_port_msg + size. + [HAVE_STRUCT_BR_NDB_ENTRY]: Static assert check for strucr br_mdb_entry + size. + (decode_mdba_mdb_entry_info) [!HAVE_STRUCT_BR_MDB_ENTRY]: Remove. + (decode_mdba_mdb_entry_info): Change entry type to struct_br_mdb_entry. + (decode_mdba_mdb_entry_info) [HAVE_STRUCT_BR_MDB_ENTRY_FLAGS, + HAVE_STRUCT_BR_MDB_ENTRY_VID]: Remove guards. + (decode_br_port_msg): Change bpm type to struct_br_port_msg. + * tests/nlattr_ifinfomsg.c: Use TEST_NLATTR_OBJECT_MINSZ to test + struct rtnl_link_stats printing. + * tests/nlattr_mdba_mdb_entry.c: Update expected output. + + References: https://bugzilla.redhat.com/show_bug.cgi?id=1758201 + +2019-10-19 Eugene Syromyatnikov + + rtnl_link: print pad field in the struct ifla_port_vsi decoder. + And steamline the flow a bit. + + * rtnl_link.c (decode_ifla_port_vsi): Factor the printing code out of + the conditional statement, add pad field printing. + * tests/nlattr_ifla_port.c: Add check for the pad field printing. + +2019-10-19 Eugene Syromyatnikov + + rtnl_link: use internal rtnl_link_stats* and ifla_port_vsi definitions. + Define substitutes for struct rtnl_link_stats, struct + rtnl_link_stats64, and struct ifla_port_vsi internally. + Add a static_assert that informs about future growth of the structures + provided by the kernel headers. + + * rtnl_link.c (struct_rtnl_link_stats, struct_rtnl_link_stats64, + struct_ifla_port_vsi): New typedefs. + [HAVE_STRUCT_RTNL_LINK_STATS_RX_NOHANDLER]: Add a static_assert to check + that sizeof(struct rtnl_link_stats) has the expected value. + [HAVE_STRUCT_RTNL_LINK_STATS64_RX_NOHANDLER]: Add a static_assert + to check that sizeof(struct rtnl_link_stats) has the expected value. + [HAVE_STRUCT_IFLA_PORT_VSI]: Add a static_assert to check + that sizeof(struct ifla_port_vsi) has the expected value. + (decode_rtnl_link_stats) [HAVE_STRUCT_RTNL_LINK_STATS_RX_NOHANDLER]: + Remove guard. + (decode_rtnl_link_stats): Change the type of st variable to + struct_rtnl_link_stats; use struct_rtnl_link_stats in offsetofend + statement for min_size definition. + (decode_rtnl_link_stats64) [HAVE_STRUCT_RTNL_LINK_STATS64, + HAVE_STRUCT_RTNL_LINK_STATS64_RX_NOHANDLER]: Remove guards. + (decode_rtnl_link_stats64): Change the type of st variable + to struct_rtnl_link_stats64. + (decode_ifla_port_vsi) [HAVE_STRUCT_IFLA_PORT_VSI]: Remove guard. + (decode_ifla_port_vsi): Change the type of vsi variable + to struct_ifla_port_vsi. + + References: https://bugzilla.redhat.com/show_bug.cgi?id=1758201 + +2019-10-19 Eugene Syromyatnikov + + Enable building of netlink_crypto decoder without linux/cryptouser.h. + * xlat/crypto_msgs.in: New file. + * configure.ac (AC_CHECK_TYPES): Check for struct crypto_user_alg. + * netlink.c: Include "xlat/crypto_msgs.h" with XLAT_MACROS_ONLY defined. + (netlink_decoders[]): Remove HAVE_LINUX_CRYPTOUSER_H guard around + [NETLINK_CRYPTO] item. + * netlink_crypto.c: Remove HAVE_LINUX_CRYPTOUSER_H guard; include + under HAVE_LINUX_CRYPTOUSER_H; include + "xlat/crypto_msgs.h" with XLAT_MACROS_ONLY defined. + [!CRYPTO_MAX_NAME] (CRYPTO_MAX_NAME): New macro. + (struct_crypto_user_alg, struct_crypto_report_hash, + struct_crypto_report_cipher, struct_crypto_report_blkcipher, + struct_crypto_report_aead, struct_crypto_report_rng): New typedefs. + [HAVE_STRUCT_CRYPTO_USER_ALG]: New static_assert to check + that sizeof(struct crypto_user_alg) has the expected value. + [HAVE_STRUCT_CRYPTO_REPORT_HASH]: New static_assert to check + that sizeof(struct crypto_report_hash) has the expected value. + [HAVE_STRUCT_CRYPTO_REPORT_CIPHER]: New static_assert to check + that sizeof(struct crypto_report_cipher) has the expected value. + [HAVE_STRUCT_CRYPTO_REPORT_BLKCIPHER]: New static_assert to check + that sizeof(struct crypto_report_blkcipher) has the expected value. + [HAVE_STRUCT_CRYPTO_REPORT_AEAD]: New static_assert to check + that sizeof(struct crypto_report_aead) has the expected value. + [HAVE_STRUCT_CRYPTO_REPORT_RNG]: New static_assert to check + that sizeof(struct crypto_report_rng) has the expected value. + (decode_crypto_report_hash) [!HAVE_STRUCT_CRYPTO_REPORT_HASH]: Remove. + (decode_crypto_report_hash): Change type of rhash to + struct_crypto_report_hash. + (decode_crypto_report_blkcipher) [!HAVE_STRUCT_CRYPTO_REPORT_BLKCIPHER]: + Remove. + (decode_crypto_report_blkcipher): Change type of rblkcipher to + struct_crypto_report_blkcipher. + (decode_crypto_report_aead) [!HAVE_STRUCT_CRYPTO_REPORT_AEAD]: Remove. + (decode_crypto_report_aead): Change type of raead to + struct_crypto_report_aead. + (decode_crypto_report_rng) [!HAVE_STRUCT_CRYPTO_REPORT_RNG]: Remove. + (decode_crypto_report_rng): Change type of rrng to + struct_crypto_report_rng. + (decode_crypto_report_cipher) [!HAVE_STRUCT_CRYPTO_REPORT_CIPHER]: + Remove. + (decode_crypto_report_cipher): Change type of rcipher to + struct_crypto_report_cipher. + (decode_crypto_user_alg): Change type of alg to struct_crypto_user_alg. + + References: https://bugzilla.redhat.com/show_bug.cgi?id=1758201 + +2019-10-18 Eugene Syromyatnikov + + macros.h: include + Since offsetofend macro definition relies on presence of offsetof + declaration. + + * macros.h: Include . + +2019-10-18 Eugene Syromyatnikov + + evdev: remove additional indentation level for switch case labels. + And while we are here, factor out evdev_write_ioctl_mpers call + out of the switch statement. + + * evdev.c (bit_ioctl, evdev_read_ioctl, evdev_ioctl): Remove + one indentation level inside the switch statements. + (evedev_write_ioctl): Remove one indentation level inside the switch + statement; move default branch out of the switch statement. + +2019-10-18 Eugene Syromyatnikov + + tests: introduce TEST_NLATTR_OBJECT_MINSZ. + It is useful in cases where a structure grows over time and we support + decoding of only part of it. + + * tests/test_nlattr.h (TEST_NLATTR_OBJECT_EX_, TEST_NLATTR_OBJECT_EX): + Add minsz_ parameter, use it instead of sizeof(obj_). + (TEST_NLATTR_OBJECT): Pass sizeof(obj_) as minsz_. + (TEST_NLATTR_OBJECT_MINSZ): New macro. + * tests/nlattr_crypto_user_alg.c (main): Add proper minsz_ argument to + TEST_NLATTR_OBJECT_EX instances. + +2019-10-18 Eugene Syromyatnikov + + xlat: provide fallback definitions for ABS_MT_* constants. + * xlat/evdev_mtslots.in: Add fallback definitions. Add #sorted. + + References: https://bugzilla.redhat.com/show_bug.cgi?id=1758201 + +2019-10-18 Eugene Syromyatnikov + + defs.h: compact struct tcb a bit by moving currpers field. + As reported by pahole, struct tcb has size of 328 bytes and 8 bytes + of holes on x86_64; by moving currpers after qual_flg, both holes are + leminated and the structure fits into 8 cache lines now. This should + also benefit other 64-bit architectures. + + * defs.h [SUPPORTED_PERSONALITIES > 1] (struct tcb): Move currpers field + after qual_flg field. + +2019-10-18 Eugene Syromyatnikov + + xlat: use unsgined type for mount_flags fallback values. + Reported by cppcheck: + + strace/xlat/mount_flags.h:256: error[shiftTooManyBitsSigned]: + Shifting signed 32-bit value by 31 bits is undefined behaviour + # 254| XLAT(MS_BORN), + # 255| XLAT(MS_ACTIVE), + # 256|-> XLAT(MS_NOUSER), + # 257| XLAT_END + # 258| }; + + * xlat/mount_flags.in: Use 1U instead of 1 as a bit shifting operand. + + References: https://bugzilla.redhat.com/show_bug.cgi?id=1747524 + +2019-10-12 Eugene Syromyatnikov + + rtnl_rule: decode fib_rule_uid_range without use of + * rtnl_rule.c (decode_fib_rule_uid_range): Define struct type for + fib_rule_uid_range explicitly. + (decode_fib_rule_uid_range) [!HAVE_STRUCT_FIB_RULE_UID_RANGE]: Remove. + * xlat/fib_rule_flags.in: Add fallback definitions. + + References: https://bugzilla.redhat.com/show_bug.cgi?id=1758201 + +2019-10-12 Eugene Syromyatnikov + + xlat: update MDB_FLAGS_* constants. + Also, provide fallback definitions for constants. + + * xlat/mdb_flags.in (MDB_FLAGS_OFFLOAD): Add fallback definition. + (MDB_FLAGS_FAST_LEAVE): New constant, introduced by Linux commit + v5.4-rc1~131^2~321. + +2019-10-12 Eugene Syromyatnikov + + xlat: provide fallback definitions for XDP_FLAGS_* constants. + * xlat/xdp_flags.in: Add fallback definitions. + + References: https://bugzilla.redhat.com/show_bug.cgi?id=1758201 + +2019-10-12 Eugene Syromyatnikov + + xlat: provide fallback definitions for netlink_ack_flags constants. + * xlat/netlink_ack_flags.in: Add fallback definitions. + + References: https://bugzilla.redhat.com/show_bug.cgi?id=1758201 + +2019-10-12 Eugene Syromyatnikov + + xlat: provide fallback definitions for UFFD_FEATURE_* constants. + * xlat/uffd_api_features.in: Add fallback definitions. + + References: https://bugzilla.redhat.com/show_bug.cgi?id=1758201 + +2019-10-12 Eugene Syromyatnikov + + riscv64: remove dead code left after riscv64 mpers removal. + Since there is no compat on RISCV64 so far, its dead remains are only + confusing. + + * linux/riscv64/arch_get_personality.c: Remove. + * Makefile.am (EXTRA_DIST): Remove it. + + Reported-by: Elvira Khabirova + Suggested-by: Dmitry V. Levin + Complements: v5.3~18 "riscv64: remove mpers support" + +2019-10-11 Eugene Syromyatnikov + + tests: try to avoid false positives in times sanity check. + Checking clock_gettime(CLOCK_PROCESS_CPUTIME_ID) starting from the + second iteration may produce false positives sometimes, try to spend + more iterations before starting checking it. + + * tests/times.c (NUM_USER_ITERS_SQRT): New enum entity. + (NUM_USER_ITERS): Define via NUM_USER_ITERS_SQRT. + (main): Check i against NUM_USER_ITERS_SQRT first before checking + the returned CPU time for sanity. + +2019-10-09 Dmitry V. Levin + + filter_seccomp: fix build on antique systems. + Fixed build on systems that do not provide necessary definitions + of AUDIT_ARCH_* constants. + + * filter_seccomp.c [PERSONALITY0_AUDIT_ARCH]: Include + "xlat/elf_em.h" and "xlat/audit_arch.h" under XLAT_MACROS_ONLY. + * tests/filter_seccomp-flag.c: Likewise. + * NEWS: Mention this fix. + + Fixes: v5.3~7 "Introduce seccomp-assisted syscall filtering" + +2019-10-07 Dmitry V. Levin + + tests: check -DD and -DDD options. + * tests/strace-D.test: Check -DD and -DDD. + * tests/strace-DD.test: New test. + * tests/strace-DDD.test: Likewise. + * tests/strace-DD.expected: New file. + * tests/strace-DDD.expected: Likewise. + * tests/tracer_ppid_pgid_sid.c: Likewise. + * tests/Makefile.am (check_PROGRAMS): Add tracer_ppid_pgid_sid. + (MISC_TESTS): Add strace-DD.test and strace-DDD.test. + (EXTRA_DIST): Add strace-DD.expected and strace-DDD.expected. + +2019-10-07 Fanda Uchytil + Eugene Syromyatnikov + Dmitry V. Levin + + strace: expand -D option. + As of now, despite of being stated that -D option runs strace as a "detached" + grandchild (and the option name being named after "daemon"), strace + still runs in the same process group and session, thus not being + "detached" in a common sense and being subjected to process group kill + and session termination kill. Quoting[1]: + + I stumble upon unexpected behavior: if strace is used with option '-D' + (tracer as a detached grandchild) and process (leader) kills whole + process group, it will kill strace too. + + It can be easily reproduced by `timeout` from "coreutils": + + # timeout -s KILL 2 strace -D -o ./strace-inside.log /bin/sleep 10 & + + Here we can see, that `strace` didn't finished its output (because it + was killed): + + # tail -n 1 ./strace-inside.log + nanosleep({tv_sec=10, tv_nsec=0}, + + If `timeout` is not run in '--foreground' mode, it changes process group + and after "timeout" it sends two kills: + + setpgid(0, 0) = 0 + kill(37337, SIGKILL) = 0 + kill(0, SIGKILL) = ? + + The first kill is for the `sleep` and the second one is for the process + group (which is `strace` part of). PIDs and their relations are: + + timeout pid=30595 [ppid=476 bash ] pgrp=30595 + sleep pid=37337 [ppid=30595 timeout] pgrp=30595 + strace pid=30603 [ppid=1 systemd] pgrp=30595 + + Here is "strace log" of `strace` inside `timeout`: + + strace: Process 30603 attached + wait4(-1, ) = ? + +++ killed by SIGKILL +++ + + I think that detached `strace` should not be killed like that -- it + should not be part of former grandparents' "job pipeline". + + While this behaviour is not exactly intuitive, it is implemented this + way for quite some time, so it might be relied upon by some of strace + users. In order to address this issue, two new levels of + "daemonisation" are added, that put strace in a separate process group + and session, respectively. + + [1] https://lists.strace.io/pipermail/strace-devel/2019-October/009160.html + + * strace.1.in (.SH SYNOPSIS): Update. + (.SS Tracing): Document -DD and -DDD. + * strace.c (DAEMONIZE_NONE, DAEMONIZE_GRANDCHILD, DAEMONIZE_NEW_PGROUP, + * DAEMONIZE_NEW_SESSION, DAEMONIZE_OPTS_GUARD__, MAX_DAEMONIZE_OPTS): + * New enumeration entities. + (daemonized_tracer): Change type to unsigned int. + (usage): Document -DD and -DDD. + (startup_attach) : Call + setpgid. + : Call setsid. + (init) : Increase daemonized_tracer instead of setting to 1. + (init): Bail out if too many -D's are given. + * NEWS: Mention this improvement. + * tests/options-syntax.test: Add checks for -D option usage. + +2019-10-04 Dmitry V. Levin + + Fix -b execve when --seccomp-bpf option is specified. + As --seccomp-bpf does not support detaching, explicitly turn off + this option when -b execve is specified. + + * strace.c (init): Turn off --seccomp-bpf when -b execve is specified. + * NEWS: Mention this fix. + * tests/bexecve.test: Check it. + + Fixes: v5.3~7 "Introduce seccomp-assisted syscall filtering" + +2019-10-04 Dmitry V. Levin + + filter_seccomp: fix build for no-MMU targets. + Avoid unsupported fork() call on no-MMU Linux systems to fix + the following link error: + + ld: strace-filter_seccomp.o: in function `check_seccomp_filter': + filter_seccomp.c:(.text+0x39a): undefined reference to `fork' + collect2: error: ld returned 1 exit status + + * filter_seccomp.c (__gcov_flush, check_seccomp_order_do_child, + check_seccomp_order_tracer): Move under HAVE_FORK guard. + (check_seccomp_order): Move fork code under HAVE_FORK guard. + (check_seccomp_filter_properties): Do not check for NOMMU_SYSTEM. + * NEWS: Mention this fix. + + Reported-and-tested-by: Baruch Siach + Fixes: v5.3~7 "Introduce seccomp-assisted syscall filtering" + +2019-10-04 Dmitry V. Levin + + tests: check -D option. + * tests/strace-D.test: New test. + * tests/strace-D.expected: New file. + * tests/Makefile.am (MISC_TESTS): Add strace-D.test. + (EXTRA_DIST): Add strace-D.expected. + + tests: check -F and -zZ options. + * tests/options-syntax.test: Check error diagnostics of -F and -zZ + options. + + tests: extend checks of --seccomp-bpf diagnostics. + * tests/options-syntax.test: Add --seccomp-bpf checks. + + tests: add support of multi-line diagnostics to check_h. + * tests/syntax.sh (check_h): Add support of multi-line diagnostics. + +2019-10-04 Eugene Syromyatnikov + + Move FLAG_ macro from defs.h to macros.h. + Rename it to FLAG and implement via newly added BIT helper macro, + in preparation for general use + + * defs.h: Use FLAG instead of FLAG_. + (FLAG_): Move it... + * macros.h (FLAG): Here, implement using BIT macro. + [!BIT] (BIT): New macro. + +2019-10-04 Eugene Syromyatnikov + + ioctl: sort entries in ioctl_decode switch statement. + * ioctl.c (ioctl_decode): Sort case branches in the switch statement. + +2019-10-04 Eugene Syromyatnikov + + util: avoid double printing of ellipsis in print_array. + When PAF_ARRAY_TRUNCATED flag is provided to print_array_ex. + + * util.c (print_array_ex): Add truncated flag, set it when the output + is truncated, avoid explicit ellipsis printing when it is set. + + Fixes: v5.3~14 "Add PAF_ARRAY_TRUNCATED flag for print_array_ex" + +2019-10-03 Eugene Syromyatnikov + + tests: add ioctl_evdev-success* test binaries to .gitignore. + * tests/.gitignore: Add ioctl_evdev-success-Xabbrev, + ioctl_evdev-success-Xraw, ioctl_evdev-success-Xverbose, + ioctl_evdev-success-v-Xabbrev, ioctl_evdev-success-v-Xraw, + and ioctl_evdev-success-v-Xverbose. + + Fixes: v5.3~9 "Handle xlat verbosity in evdev bitset printing" + +2019-10-02 Dmitry V. Levin + + tests/sigaction: workaround odd libcs on alpha and mips. + Apparently, some libcs define SA_RESTORER on alpha and mips + despite of the absence of sa_restorer field. Workaround this + to match the logic implemented in decode_old_sigaction(). + + * tests/sigaction.c (main) [ALPHA || MIPS]: Do not check decoding + of sa_restorer field. + +2019-10-02 Dmitry V. Levin + + Distribute copyright-year-gen, file-date-gen, and git-version-gen. + These scripts have to be distributed along with configure.ac since + the latter uses them. + + * Makefile.am (EXTRA_DIST): Add copyright-year-gen, file-date-gen, + and git-version-gen. + +2019-10-01 Dmitry V. Levin + + tests: fix -a argument in stat and lstat tests. + * tests/trace_lstat.in (lstat): Change -a argument from 32 to 31. + * tests/trace_stat.in (stat): Change -a argument from 32 to 30. + * tests/gen_tests.in (lstat): Change -a argument from 32 to 31. + (stat): Change -a argument from 32 to 30. + + This fixes Debian bug #929715. + +2019-10-01 Dmitry V. Levin + + Prefer https URLs where possible. + * maint/README-release: Use https URL instead of http. + * xlat/elf_em.in: Likewise. + + Update debian/watch. + * debian/watch: Sync with Debian strace-4.26-0.2 package. + + Update ax_prog_cc_for_build.m4. + * m4/ax_prog_cc_for_build.m4: Update from autoconf-archive. + + Update auxiliary maintainer mode build tools. + * git-set-file-times: Update from rsync. + * git-version-gen: Update from gnulib. + * gitlog-to-changelog: Likewise. + +2019-09-27 Andreas Schwab + + Remove traces of riscv64 mpers. + * tests/options-syntax.test: Remove riscv64. + * tests/qualify_personality.sh: Likewise. + * tests/strace-V.test: Likewise. + + Fixes: v5.3~18 "riscv64: remove mpers support" + +2019-09-25 Eugene Syromyatnikov + + strace.1.in: move --seccomp-bpf description down. + Option descriptions generally maintain lexicographical order. + + * strace.1.in (.SS Miscellaneous): Move --seccomp-bpf option description + down in order to maintain lexicographical option description order. + +2019-09-25 Eugene Syromyatnikov + + strace.1.in: mention seccomp(2) in --seccomp-bpf option description. + And format ptrace(2) properly as well. + + * strace.1.in (.SS Miscellaneous): Mention seccomp(2), format ptrace(2) + mention. + +2019-09-25 Eugene Syromyatnikov + + strace.1.in: describe time format specification. + Commits v5.3~74 and v5.3~73 have introduced an extended syntax + for time interval sizes specification, but the relevant descriotion + was lacking. Fix it by adding the relevant section to the man page + and reference to it in the descriptions of the respective options. + + * strace.1.in (.SH OPTIONS): Rewrite descriptions of -O, + -e inject=delay_enter, and -e inject=delay_exit values, refer to section + "Time specification format description". + (.SS "Time specification format description"): New section. + + Complements: v5.3~74 "delay: use parse_ts for parsing delay value" + Complements: v5.3~73 "count: use parse_ts for parsing overhead value" + +2019-09-25 Eugene Syromyatnikov + + strace.1.in: add a missing comma before "but" + * strace.1.in (.SH DESCRIPTION): Add a missing comma. + + strace.1.in: eliminate empty lines. + Replace them with .IP or just remove. + +2019-09-25 Eugene Syromyatnikov + + strace.1.in: properly indent -e inject description. + As inject option description is moved to a separate section, its + .TP macro now requires an argument. + + * strace.1.in (.SS Tampering): Add indent size argument to the first + .TP macro instance. + + Fixes: v5.3~99 "strace.1.in: reorder options" + +2019-09-25 Dmitry V. Levin + + Post-release administrivia. + * NEWS: Add a header line for the next release. + * debian/changelog.in: Add a changelog entry for 5.3-1. + * strace.spec.in: Likewise. + + Prepare for 5.3 release. + * NEWS: Update for 5.3 release. + + tests: workaround systemd-nspawn habit of disabling unimplemented syscalls + * tests/clone3.c (do_clone3_): Do not assume that unimplemented + syscalls always fail with ENOSYS. + + Update copyright headers. + Headers updated automatically using maint/update_copyright_years.sh + script. + +2019-09-25 Dmitry V. Levin + + Fix preprocessor indentation. + Indent the C preprocessor directives to reflect their nesting + using the following script: + + $ cppi -l $(git grep -El '^[[:space:]]*#[[:space:]]*(if|ifdef|ifndef|elif|else|endif|define|pragma)[[:space:]]' |grep -v '\.sh$') |while read f; do + cppi < "$f" > "$f".cppi; mv "$f".cppi "$f" + done + +2019-09-25 Eugene Syromyatnikov + + Update NEWS. + +2019-09-25 Chen Jingpiao + Paul Chaignon + + tests: check seccomp-assisted syscall filtering. + Test filter_seccomp-perf checks whether seccomp-filter is actually + enabled by comparing the number of syscalls performed in a time interval + when seccomp-filter is enabled vs. disabled. The number of syscalls + should be at least one order of magnitude higher when seccomp-filter + is enabled. + + Test filter_seccomp-flag ensures the audit_arch_vec[].flag constants do + not conflict with syscall numbers. If this test fails, then the number + of syscalls grew high enough that the code for seccomp-filter needs to + be updated. + + * tests/init.sh (test_prog_set): New function. + * tests/status-none-f.c: New file. + * tests/filter_seccomp.in: Likewise. + * tests/filter_seccomp.sh: Likewise. + * tests/filter_seccomp-perf.c: Likewise. + * tests/filter_seccomp-flag.c: Likewise. + * tests/filter_seccomp-perf.test: New test. + * tests/Makefile.am (EXTRA_DIST): Add filter_seccomp.in and + filter_seccomp.sh. + (MISC_TESTS): Add filter_seccomp-perf.test. + (check_PROGRAMS): Add filter_seccomp-perf and filter_seccomp-flag. + * tests/pure_executables.list: Add status-none-f. + * tests/.gitignore: Add status-none-f, filter_seccomp-perf, and + filter_seccomp-flag. + * tests/gen_tests.in (filter_seccomp, filter_seccomp-flag): New entries. + + Co-Authored-by: Dmitry V. Levin + +2019-09-25 Paul Chaignon + + filter_seccomp: skip seccomp setup when there's nothing to filter. + If the trace_set set is complete (no syscalls are filtered), seccomp + filtering is disabled. This patch adds a new is_complete_set_array + function to check whether all sets of a set array are complete. + + * number_set.c (is_complete_set_array): New function. + * number_set.h (is_complete_set_array): New prototype. + * filter_seccomp.c (check_seccomp_filter): Skip seccomp setup if there is + nothing to filter. + +2019-09-25 Chen Jingpiao + Paul Chaignon + + Introduce seccomp-assisted syscall filtering. + With this patch, strace can rely on seccomp to only be stopped at syscalls + of interest, instead of stopping at all syscalls. The seccomp filtering + of syscalls is opt-in only; it must be enabled with the --seccomp-bpf + option. Kernel support is first checked with check_seccomp_filter(), + which also ensures the BPF program derived from the syscalls to filter + is not larger than the kernel's limit. + + The --seccomp-bpf option implies -f, but a warning is emitted if -f is not + explicitly specified. Since a task's children inherit its seccomp + filters, we want to ensure all children are also traced to avoid their + syscalls failing with ENOSYS (cf. SECCOMP_RET_TRACE in seccomp man page). + + Fork/vfork/clone children of traced processes are marked as not having a + seccomp filter until we receive a first seccomp-stop. They are therefore + stopped at every syscall entries and exits until that first seccomp-stop. + + The current BPF program implements a simple linear match of the syscall + numbers. Contiguous sequences of syscall numbers are however matched as + an interval, with two instructions only. The algorithm can be improved + or replaced in the future without impacting user-observed behavior. + + The behavior of SECCOMP_RET_TRACE changed between Linux 4.7 and 4.8 + (cf. PTRACE_EVENT_SECCOMP in ptrace man page). This patch supports both + behaviors by checking the kernel's actual behavior before installing the + seccomp filter. + + * filter_seccomp.c: New file. + * filter_seccomp.h: New file. + * Makefile.am (strace_SOURCES): Add filter_seccomp.c and + filter_seccomp.h. + * linux/aarch64/arch_defs_.h (PERSONALITY0_AUDIT_ARCH, + PERSONALITY1_AUDIT_ARCH): Define for aarch64. + * linux/powerpc64/arch_defs_.h (PERSONALITY0_AUDIT_ARCH, + PERSONALITY1_AUDIT_ARCH): Likewise for powerpc64. + * linux/s390x/arch_defs_.h (PERSONALITY0_AUDIT_ARCH, + * linux/sparc64/arch_defs_.h (PERSONALITY0_AUDIT_ARCH, + PERSONALITY1_AUDIT_ARCH): Likewise for sparc64. + PERSONALITY1_AUDIT_ARCH): Likewise for s390x. + * linux/tile/arch_defs_.h (PERSONALITY0_AUDIT_ARCH, + PERSONALITY1_AUDIT_ARCH): Likewise for tile. + * linux/x32/arch_defs_.h (PERSONALITY0_AUDIT_ARCH, + PERSONALITY1_AUDIT_ARCH): Likewise for x32. + * linux/x86_64/arch_defs_.h (PERSONALITY0_AUDIT_ARCH, + PERSONALITY1_AUDIT_ARCH, PERSONALITY2_AUDIT_ARCH): Likewise for x86_64. + * linux/ia64/arch_defs_.h (PERSONALITY0_AUDIT_ARCH): Likewise for IA64. + * strace.c (usage): Document --seccomp-bpf option. + (startup_child): Mark process has having seccomp filter. + (exec_or_die): Initialize seccomp filtering if requested. + (init): Handle --seccomp-bpf option and check that seccomp can be + enabled. + (print_debug_info): Handle PTRACE_EVENT_SECCOMP. + (next_event): Capture PTRACE_EVENT_SECCOMP event. + (dispatch_event): Handle PTRACE_EVENT_SECCOMP event. + * trace_event.h (trace_event): New enumeration entity. + * strace.1.in: Document new --seccomp-bpf option. + * NEWS: Mention this change. + + Co-Authored-by: Dmitry V. Levin + +2019-09-25 Dmitry V. Levin + + Add support for long options. + Recognize --help and --version options as aliases to -h and -V options, + respectively. + + * strace.c: Include . + (init): Move short options to optstring, add longopts array, use + getopt_long instead of getopt. + (usage): Document --help and --version options. + * strace.1.in: Likewise. + * tests/strace-V.test: Check that "strace --version" output is the same + as "strace -V" output. + +2019-09-24 Eugene Syromyatnikov + + Handle xlat verbosity in evdev bitset printing. + * defs.h (print_xint32_array_member, print_xint64_array_member): New + function declarations. + (print_xlong_array_member): New static inline function. + * util.c (print_xint32_array_member, print_xint64_array_member): New + functions. + * evdev.c (decode_bitset): Handle xlat verbosity option. + * tests/ioctl_evdev-Xabbrev.c: New file. + * tests/ioctl_evdev-Xraw.c: Likewise. + * tests/ioctl_evdev-Xverbose.c: Likewise. + * tests/ioctl_evdev-success-Xabbrev.c: Likewise. + * tests/ioctl_evdev-success-Xraw.c: Likewise. + * tests/ioctl_evdev-success-Xverbose.c: Likewise. + * tests/ioctl_evdev-success-v-Xabbrev.c: Likewise. + * tests/ioctl_evdev-success-v-Xraw.c: Likewise. + * tests/ioctl_evdev-success-v-Xverbose.c: Likewise. + * tests/ioctl_evdev-v-Xabbrev.c: Likewise. + * tests/ioctl_evdev-v-Xraw.c: Likewise. + * tests/ioctl_evdev-v-Xverbose.c: Likewise. + * tests/ioctl_evdev-success.c (test_evdev, print_getbit, main): Update + expected output. + * tests/ioctl_evdev.c (UNK_CMD): New macro. + (print_ffe_common, main): Update expected output. + * tests/Makefile.am (check_PROGRAMS): Add ioctl_evdev-success-Xabbrev, + ioctl_evdev-success-Xraw, ioctl_evdev-success-Xverbose, + ioctl_evdev-success-v-Xabbrev, ioctl_evdev-success-v-Xraw, and + ioctl_evdev-success-v-Xverbose. + * tests/gen_tests.in (ioctl_evdev-Xabbrev, ioctl_evdev-Xraw, + ioctl_evdev-Xverbose, ioctl_evdev-v-Xabbrev, ioctl_evdev-v-Xraw, + ioctl_evdev-v-Xverbose, ioctl_evdev-success-Xabbrev, + ioctl_evdev-success-Xraw, ioctl_evdev-success-Xverbose, + ioctl_evdev-success-v-Xabbrev, ioctl_evdev-success-v-Xraw, + ioctl_evdev-success-v-Xverbose tests): New entries. + (ioctl_evdev, ioctl_evdev-v): Add alignment option. + * tests/pure_executables.list: Add ioctl_evdev-Xabbrev, + ioctl_evdev-Xraw, ioctl_evdev-Xverbose, ioctl_evdev-v-Xabbrev, + ioctl_evdev-v-Xraw, ioctl_evdev-v-Xverbose. + * tests/.gitignore: Likewise. + +2019-09-24 Eugene Syromyatnikov + + ioctl: do not print comments twice in -Xverbose. + Figure out whether the ioctl code is decoded inside a comment and adjust + printflags/printxval calls accordingly. + + * ioctl.c (ioctl_print_code, evdev_decode_number): Add abbrev variable, + set it to true if xlat style is not XLAT_STYLE_VERBOSE, do not provide + dflt and set xlat style to XLAT_STYLE_ABBREV in printflags/printxval + calls (that are now changed to printflags_ex/printxval_ex to accomodate + the change). + +2019-09-24 Eugene Syromyatnikov + + tests/ioctl_evdev-success: rewrite ABS_MT check. + Use null-terminating array instead of providing array size in the first + element. + + * tests/ioctl_evdev-success.c (print_mtslots, main): Update + mtslots_str/invalid_mtslot_str array usage. + +2019-09-24 Eugene Syromyatnikov + + tests: add xlat verbosity support to printxval. + * tests/Makefile.am (libtests_a_SOURCES): Remove printxval.c, add + printxval-Xabbrev.c, printxval-Xraw.c, and printxval-Xverbose.c. + (EXTRA_DIST): Add printxval.c. + * tests/printxval.c [!XLAT_RAW] (lookup_xlat): New function. + (printxval): Wrap in XLAT_NAME. + (sprintxlat, sprintxval): New functions. + * tests/printxval-Xabbrev.c: New file. + * tests/printxval-Xraw.c: Likewise. + * tests/printxval-Xverbose.c: Likewise. + * tests/tests.h (printxval): Remove declaration. + (printxval_abbrev, printxval_raw, printxval_verbose, sprintxlat_abbrev, + sprintxlat_raw, sprintxlat_verbose, sprintxval_abbrev, sprintxval_raw, + sprintxval_verbose): New declarations. + (printxval, sprintxlat, sprintxval): New macros, defined based on values + of XLAT_RAW amd XLAT_VERBOSE macros. + * tests/ioprio.c: Simplify the printing code since printxval now has + xlat verbosity support. + +2019-09-24 Eugene Syromyatnikov + + tests/tests.h: add XLAT_STR macro. + XLAT_STR allows describing expected output succintly in some simple + cases. + + * tests/tests.h (XLAT_STR): New macro. + +2019-09-24 Eugene Syromyatnikov + + Add PAF_ARRAY_TRUNCATED flag for print_array_ex. + PAF_ARRAY_TRUNCATED allows enforcing the fact that an array + is truncated, which is useful for arrays in local memory that are known + as being truncated. + + * defs.h (xlat_style_private_flag_bits): Add PAF_ARRAY_TRUNCATED_BIT. + (xlat_style_private_flags): Add PAF_ARRAY_TRUNCATED. + * util.c (print_array_ex): Handle PAF_ARRAY_TRUNCATED in flags. + +2019-09-24 Eugene Syromyatnikov + + Add support for printing local arrays to print_array. + * defs.h (print_array_ex): Describe parameters. + (print_local_array): A wrapper for printing arrays in local memory + via print_array_ex. + * util.c (print_array_ex): Handle case of NULL tfetch_mem_func by + printing elements of array in local memory pointed by start_addr + parameter. + + tests: move ioctl_evdev-v binary to pure_executables.list. + * tests/Makefile.am (check_PROGRAMS): Move ioctl_evdev-v ... + * tests/pure_executables.list: ... here. + + tests: implement ioctl_evdev-success-v.test via ioctl_evdev-success.test + * tests/ioctl_evdev-success-v.test: Remove. + * tests/Makefile.am (DECODER_TESTS): Remove ioctl_evdev-success-v.test. + * tests/gen_tests.in: Add ioctl_evdev-success-v as a wrapper for + ioctl_evdev-success.test. + * tests/ioctl_evdev-success.test: Save "$args" to $prog, increase -a + parameter value to 26 columns, inject "$@" into run_strace arguments, + call $prog instead of axplicit program name. + +2019-09-24 Eugene Syromyatnikov + + riscv64: remove mpers support. + There is no riscv32 Linux support in Linux mainline, + and no compat support in riscv64 as well. + + * linux/riscv64/arch_defs_.h: Remove. + * linux/riscv64/ioctls_arch1.h: Likewise. + * linux/riscv64/ioctls_inc1.h: Likewise. + * linux/riscv64/syscallent1.h: Likewise. + * Makefile.am (EXTRA_DIST): Remove them. + * configure.ac (st_MPERS([m32])): Remove riscv64. + * strace.1.in (.SH "MULTIPLE PERSONALITY SUPPORT"): Remove RISC-V + from the list. + + Co-Authored-by: Dmitry V. Levin + +2019-09-23 Dmitry V. Levin + + riscv: rename to riscv64. + The only currently supported RISC-V architecture is the 64-bit RISC-V. + As the generic name we use causes confusion [1], rename it to riscv64. + + [1] https://lists.strace.io/pipermail/strace-devel/2019-August/009057.html + + * Makefile.am (EXTRA_DIST): Rename linux/riscv to linux/riscv64. + * configure.ac: Rename riscv to riscv64, RISCV to RISCV64. + * linux/riscv: Rename to linux/riscv64. + * riscv.c: Rename RISCV to RISCV64. + * tests/options-syntax.test: Rename riscv to riscv64. + * tests/qualify_personality.sh: Likewise. + * tests/strace-V.test: Likewise. + +2019-09-23 Eugene Syromyatnikov + + clone: implement clone3 syscall decoding. + * configure.ac (AC_CHECK_HEADERS): Check for linux/sched.h presence. + (AC_CHECK_TYPES): Check for struct clone_args in . + * clone.c: Include "print_fields.h". + (struct strace_clone_args): New type. + (print_nonzero_bytes): New function. + (SYS_FUNC(clone3)): New decoder. + * linux/syscallent-common.h ([BASE_NR + 435]): Wire up clone3. + * NEWS: Mention this change. + * tests/clone3.c: New file. + * tests/clone3-Xabbrev.c: Likewise. + * tests/clone3-Xraw.c: Likewise. + * tests/clone3-Xverbose.c: Likewise. + * tests/clone3-success.c: Likewise. + * tests/clone3-success-Xabbrev.c: Likewise. + * tests/clone3-success-Xraw.c: Likewise. + * tests/clone3-success-Xverbose.c: Likewise. + * tests/clone3-success.test: New test. + * tests/Makefile.am (check_PROGRAMS): Add clone3-success, + clone3-success-Xabbrev, clone3-success-Xraw, and + clone3-success-Xverbose. + (DECODER_TESTS): Add clone3-success.test. + * tests/gen_tests.in (clone3, clone3-Xabbrev, clone3-Xraw, + clone3-Xverbose, clone3-success-Xabbrev, clone3-success-Xraw, + clone3-success-Xverbose): New entries. + * tests/pure_executables.list: Add clone3, clone3-Xabbrev, clone3-Xraw, + and clone3-Xverbose. + * tests/.gitignore: Add clone3, clone3-Xabbrev, clone3-Xraw, + clone3-Xverbose, clone3-success, clone3-success-Xabbrev, + clone3-success-Xraw, and clone3-success-Xverbose. + + Co-Authored-by: Dmitry V. Levin + +2019-09-23 Eugene Syromyatnikov + + tests/tests.h: add XLAT_KNOWN and XLAT_UNKNOWN macros. + XLAT_KNOWN allows describing expected output succintly in some simple + cases. + + * tests/tests.h (XLAT_KNOWN, XLAT_UNKNOWN): New macros, define based + on values of XLAT_RAW and XLAT_VERBOSE macros. + +2019-09-23 Dmitry V. Levin + + tests: fix umovestr_cached.test when process_vm_readv is not implemented + * tests/umovestr_cached.test: Run strace with -z option to filter out + failing process_vm_readv invocations. + +2019-09-23 Dmitry V. Levin + + tests: disable umovestr_cached.test on ia64. + ia64 invokes extra process_vm_readv syscalls to obtain syscall + arguments, see linux/ia64/get_syscall_args.c for details. + + * tests/umovestr_cached.test [ $STRACE_ARCH == ia64 ]: Skip. + +2019-09-15 Paul Chaignon + + tests: fix format warnings on x32. + The type of __X32_SYSCALL_BIT changed from int to unsigned long by Linux + kernel commit v5.3-rc1-1-g45e29d119e9923ff14dfb840e3482bef1667bbfb. + Consequently, __NR_* macros are now defined to values of an unsigned long + integer type on x32. + + tests/prctl-seccomp-filter-v.c (PRINT_ALLOW_SYSCALL, PRINT_DENY_SYSCALL): + Fix format warning. + tests/seccomp-filter-v.c (PRINT_ALLOW_SYSCALL, PRINT_DENY_SYSCALL): + Likewise. + +2019-09-15 Dmitry V. Levin + + Implement memory caching for umove* functions. + When the data to be fetched by vm_read_mem resides in a single memory + page, fetch the whole page and cache it. This implementation caches + up to two memory pages. + + * defs.h (invalidate_umove_cache): New prototype. + * strace.c (next_event): Call invalidate_umove_cache. + * ucopy.c (cached_idx, cached_raddr): New static variables. + (process_read_mem): New function. + (vm_read_mem): Use them. Implement fetched page caching. + * tests/umovestr_cached.test: New test. + * tests/Makefile.am (MISC_TESTS): Add umovestr_cached.test. + * tests/umovestr_cached.c: New file. + * tests/pure_executables.list: Add umovestr_cached. + * tests/.gitignore: Likewise. + +2019-09-10 Gleb Fotengauer-Malinovskiy + + Update ioctl entries from linux v5.3. + * linux/32/ioctls_inc_align16.h: Update from linux v5.3-rc8 + using ioctls_gen.sh. + * linux/32/ioctls_inc_align32.h: Likewise. + * linux/32/ioctls_inc_align64.h: Likewise. + * linux/64/ioctls_inc.h: Likewise. + * linux/x32/ioctls_inc0.h: Likewise. + * linux/i386/ioctls_arch0.h: Likewise. + * linux/s390/ioctls_arch0.h: Likewise. + * linux/s390x/ioctls_arch0.h: Likewise. + * linux/x86_64/ioctls_arch0.h: Likewise. + * NEWS: Mention this. + + maint: update for linux v5.3-rc8. + * maint/ioctls_sym.sh (x86_list): Add KVM_SET_PMU_EVENT_FILTER. + +2019-09-08 Eugene Syromyatnikov + + Rewrite printnum_{slong,ulong,ptr,kptr} using dispatch_{word,klong}size. + * defs.h (printnum_long_int, printnum_addr_long_int, printnum_addr_klong_int): + Remove declaration. + (printnum_slong, printnum_ulong): Implement unconditionally using + dispatch_wordsize and opt_wordsize for the last argument. + (printnum_ptr): Implement unconditionally using dispatch_wordsize. + (printnum_kptr): Implement unconditionally using dispatch_klongsize. + * util.c (printnum_long_int, printnum_addr_long_int, printnum_addr_klong_int): + Remove. + + defs.h: introduce {opt,dispatch}_{word,klong}size. + * defs.h (set_personality, current_personality, current_wordsize, + current_klongsize, max_addr, max_kaddr): Move upwards. + (opt_wordsize): New macro, calls the first or the second argument + depending on the word size. + (dispatch_wordsize): New macro, calls the first or the second function + with the rest of macro parameters as arguments depending on the word + size. + (opt_klongsize): New macro, calls the first or the second argument + depending on the kernel long size. + (dispatch_klongsize): New macro, calls the first or the second function + with the rest of macro parameters as arguments depending on the kernel + long size. + +2019-09-04 Eugene Syromyatnikov + + s390: fix PRINT_UNKNOWN_TAIL_EX. + In the conversion of PRINT_UNKNOWN_TAIL into PRINT_UNKNOWN_TAIL_EX + the usage of sizeof(*(hdr_)) hasn't been replaced to (hdr_size_) + in all places. Offset calculation also had to be changed. + + * s390.c (PRINT_UNKNOWN_TAIL_EX): Fix addr and len arguments + in is_filled and print_quoted_string calls. + + Fixes: v5.2-97-g210593c "s390: update sthyi decoder" + Reported-by: Dan Horák + Resolves: https://github.com/strace/strace/issues/108 + +2019-09-03 Eugene Syromyatnikov + + xlat: add comment about CLONE_DETACHED to clone_flags.in. + It's ignored by kernel, but present in the UAPI header. + + * xlat/clone_flags.in: Add a comment about CLONE_DETACHED. + +2019-09-03 Eugene Syromyatnikov + + clone: fix print_tls_arg on x86. + When strace is built for (32-bit) x86, it has HAVE_STRUCT_USER_DESC + and SUPPORTED_PERSONALITIES == 1, which led to execution of the both + branches. Simplify the logic by including the SUPPORTED_PERSONALITIES + into the condition. + + * clone.c (print_tls_arg): Include SUPPORTED_PERSONALITIES into the "if" + condition. + +2019-09-01 Eugene Syromyatnikov + + s390: update sthyi decoder. + Sync up with the description[1]. + + [1] https://www.ibm.com/support/knowledgecenter/SSB27U_6.4.0/com.ibm.zvm.v640.hcpb4/hcpb4sth.htm + + * s390.c (struct sthyi_machine): Add fields reserved_1__, infmplnm; + update comment for the infmval1 field; update the related static_assert. + (struct sthyi_partition): Update infpflg1 comment; update infpval1 + comment; add infpplnm field; update the related static_assert. + (struct sthyi_hypervisor): Update infyflg1 field comment; add + infyinsf and infyautf fields; update the related static_assert. + (CHECK_SIZE_EX): Rename from CHECK_SIZE; add min_size_ argument, check size_ + against it. + (CHECK_SIZE): New macro, a wrapper for CHECK_SIZE_EX. + (PRINT_UNKNOWN_TAIL_EX): Rename from PRINT_UNKNOWN_TAIL, add hdr_size_ + argument. + (PRINT_UNKNOWN_TAIL): New macro, a wrapper for PRINT_UNKNOWN_TAIL_EX. + (print_sthyi_machine): New local variable last_decoded; use + CHECK_SIZE_EX instead of CHECK_SIZE to check against the initial value + of last_decoded; decode reserved_1__ and infmplnm fields if the returned + size indicates that they are present; use PRINT_UNKNOWN_TAIL_EX for + printing structure's tail. + (print_sthyi_partition): New local variable last_decoded; use + CHECK_SIZE_EX instead of CHECK_SIZE to check against the initial value + of last_decoded; decode infpplnm field if the returned size indicates + that it is present; use PRINT_UNKNOWN_TAIL_EX for printing structure's + tail. + (print_funcs): New function. + (print_sthyi_hypervisor): New local variable last_decoded; use + CHECK_SIZE_EX instead of CHECK_SIZE to check against the initial value + of last_decoded; update infyflg1 field decoding; decode infyinsf + and infyautf fields if the returned size indicates that they + are present; use PRINT_UNKNOWN_TAIL_EX for printing structure's tail. + (s390_sthyi): Update specification URL. + * tests/s390_sthyi.c: Update expected output. + +2019-09-01 Eugene Syromyatnikov + + s390: replace structure size comments with static_assert's. + * s390.c: Add static_assert statements for compile-time check of + struct sthyi_hdr, struct sthyi_machine, struct sthyi_partition, + struct sthyi_hypervisor, and struct sthyi_guest sizes. + +2019-08-31 Dmitry V. Levin + + tests: convert ksysent.test into a generated test. + * tests/ksysent.test: Remove. + * tests/Makefile.am (MISC_TESTS): Remove ksysent.test. + * tests/gen_tests.in (ksysent): New entry. + * ci/run-build-and-tests.sh: Replace ksysent.log with ksysent.gen.log. + * strace.spec.in: Likewise. + +2019-08-31 Paul Chaignon + + Add seccomp filter syscall flag. + This commit adds a new syscall flag for syscall that are traced by default + under seccomp filter. + + The syscallent changes can be reproduced with the following script: + + git grep -l 'SEN(\(execv\|ipc\|socketcall\|ipc\)' | + xargs -r sed -i -e '/SEN(execv/ s/TP|/&TSD|/' \ + -e '/SEN(ipc)/ s/TI/&|TSD/' -e '/SEN(socketcall)/ s/TD/&|TSD/' \ + -e '/SEN(syscall)/ s/0,/TSD,/' + + * sysent.h (TRACE_SECCOMP_DEFAULT): Define new flag. + * sysent_shorthand_defs.h (TSD): Define new flag shorthand. + * linux/32/syscallent.h: Add TSD flag. + * 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/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. + +2019-08-29 Eugene Syromyatnikov + + strace.spec: lower CentOS version requirement for pkgconfig(bluez) + bluez-libs-devel provides pkgconfig(bluez) and the actual headers both + in RHEL 6 and RHEL 7, so the version condition for enablement + of pkgconfig(bluez) in spec file can be lowered. However, the package + in question is in the "optional" repository in RHEL, and there seems to be + no easy way to enable it in OBS (where this spec file is mainly used) + so only %centos check is actually changed for now. + + * strace.spec.in: Change "0%{?centos} >= 8" to "0%{?centos} >= 6" + for "BuildRequires: pkgconfig(bluez)" enablement. + + References: https://bugzilla.redhat.com/show_bug.cgi?id=1746885 + +2019-08-29 Eugene Syromyatnikov + + sockaddr: properly decode sockaddr_hci addresses without hci_channel. + Before Linux commit v2.6.38-rc1~476^2~14^2~3^2~43^2~9, + struct sockaddr_hci did not contain hci_channel field. + + * configure.ac (AC_CHECK_HEADERS([bluetooth/bluetooth.h])): Add check + for struct sockaddr_hci.hci_channel. + * sockaddr.c (print_sockaddr_data_bt): Decode struct sockaddr_hci + without hci_channel field. + * tests/net-sockaddr.c (check_hci): Add check for struct sockaddr_hci + decoding without hci_channel field; guard hci_channel with #ifdef + HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL. + (check_raw): Remove "len++", as 4-byte AF_BLUETOOTH socket addresses are + interpreted as struct sockaddr_hci without hci_channel field. + +2019-08-27 Eugene Syromyatnikov + + strace.1.in: try to be more clear with -e trace=class deprecation notice + It was reported that the current way of labelling of the percent-less + -e trace=class syntax variant may be confusing, as it can be read + as deprecation of the whole option and not specific syntax; try to be + more clear by moving the deprecation notices into the option + descriptions. + + * strace.1.in (.SS Filtering): Move the deprecation notice + of -e trace={file,process,network,signal,ipc,desc,memory} syntax + to the descriptions of the respective options. + + Reported-by: Alexey Gladkov + +2019-08-26 Eugene Syromyatnikov + + xlat: normalise fsmagic formatting. + For historical reasons, it was this way as there was no support for + explicitly defined xlat values, which is no longer the case. + + The following command was used: + + sed -ri \ + -e 's/^\{ ([^]*),[[:space:]]*"([^"]*)"([[:space:]]*)\},$/\2\3\1/' \ + -e 's/^([^\t]{14,15}\t)/\1\t/' \ + xlat/fsmagic.in + + * xlat/fsmagic.in: Normalise the formatting. + +2019-08-23 Rasmus Villemoes + + Add support for /dev/watchdog ioctls. + * watchdog_ioctl.c: New file. + * Makefile.am (strace_SOURCES): Add it. + * defs.h (DECL_IOCTL): Add watchdog. + * ioctl.c (ioctl_decode): Add 'W' case. + * xlat/watchdog_ioctl_cmds.in: New file. + * tests/ioctl_watchdog.c: New file. + * tests/.gitignore: Add ioctl_watchdog. + * tests/pure_executables.list: Likewise. + * tests/gen_tests.in (ioctl_watchdog): New entry. + +2019-08-16 Dmitry V. Levin + + umoven: use error_func_msg instead of error_msg. + * ucopy.c (umoven): Use error_func_msg instead of error_msg. + +2019-08-15 Dmitry V. Levin + + Use perror_func_msg instead of perror_msg where appropriate. + * linux/aarch64/set_scno.c (arch_set_scno): Use perror_func_msg + instead of perror_msg. + * ucopy.c (umoven_peekdata, umoven, umovestr_peekdata, umovestr): + Likewise. + * upeek.c (upeek): Likewise. + * upoke.c (upoke): Likewise. + +2019-08-15 Dmitry V. Levin + + Fix syscall tampering when PTRACE_GET_SYSCALL_INFO is in use on some architectures + When PTRACE_GET_SYSCALL_INFO is in use on those architectures + that invoke set_regs in arch_set_scno, get_regs is not called, + so it has to be invoked explicitly before tampering. + + * linux/arc/set_scno.c (arch_set_scno): Explicitly call get_regs + when PTRACE_GET_SYSCALL_INFO is in use. + * linux/avr32/set_scno.c: Likewise. + * linux/csky/set_scno.c: Likewise. + * linux/ia64/set_scno.c: Likewise. + * linux/m68k/set_scno.c: Likewise. + * linux/metag/set_scno.c: Likewise. + * linux/mips/set_scno.c: Likewise. + * linux/nios2/set_scno.c: Likewise. + * linux/or1k/set_scno.c: Likewise. + * linux/riscv/set_scno.c: Likewise. + * linux/s390/set_scno.c: Likewise. + * linux/sparc/set_scno.c: Likewise. + * linux/tile/set_scno.c: Likewise. + * NEWS: Mention this fix. + + Thanks-to: Anatoly Pugachev + Fixes: v5.2~27 "sparc, sparc64: fix syscall tampering when PTRACE_GET_SYSCALL_INFO is in use" + +2019-08-15 Dmitry V. Levin + + sparc, sparc64: fix redundant get_regs invocation. + An explicit get_regs invocation was added to arch_set_error and + arch_set_success on sparc/sparc64 by commit v5.2~27 in attempt to fix + syscall tampering on these architectures when PTRACE_GET_SYSCALL_INFO + is in use. + + That change, however, did not fix the bug because set_error and + set_success already invoke get_regs on all architectures where + ptrace_setregset_or_setregs is defined, this includes sparc and sparc64. + + * linux/sparc/set_error.c (sparc_set_o0_psr): Do not invoke get_regs. + * linux/sparc64/set_error.c (sparc64_set_o0_tstate): Likewise. + * NEWS (5.2): Remove the statement about syscall tampering fix + on sparc and sparc64 when PTRACE_GET_SYSCALL_INFO is in use. + +2019-08-15 Eugene Syromyatnikov + + v4l2: avoid shifting left a signed number by 31 bit. + cppcheck warns about it with the following diagnostics: + + error[shiftTooManyBitsSigned]: Shifting signed 32-bit value by 31 bits is + undefined behaviour + + * v4l2.c [!v4l2_fourcc_be] (v4l2_fourcc_be): Shift left 1U and not 1 in + order to get 0x80000000. + +2019-08-15 Eugene Syromyatnikov + + strace.spec.in: use SPDX shortname format in License: tag. + Otherwise some rpm lintians complain about it: + + strace.src: W: invalid-license LGPL-2.1-or-later + strace.src: W: invalid-license GPL-2.0-or-later + + * strace.spec.in (License): Change license description from + "LGPL-2.1-or-later and GPL-2.0-or-later" to "LGPL-2.1+ and GPL-2.0+". + +2019-08-15 Dmitry V. Levin + + Implement decoding of pidfd_open syscall. + ... introduced by Linux kernel commits v5.3-rc1~142^2~2 + and v5.3-rc1~142^2~1. + + * pidfd_open.c: New file. + * Makefile.am (strace_SOURCES): Add it. + * pathtrace.c (pathtrace_match_set): Add SEN_pidfd_open. + * linux/syscallent-common.h [BASE_NR + 434]: Wire up pidfd_open. + * NEWS: Mention this change. + * tests/pidfd_open.c: New file. + * tests/pidfd_open-P.c: Likewise. + * tests/pidfd_open-y.c: Likewise. + * tests/gen_tests.in (pidfd_open, pidfd_open-P, pidfd_open-y): New + entries. + * tests/pure_executables.list: Add pidfd_open, pidfd_open-P, and + pidfd_open-y. + * tests/.gitignore: Likewise. + +2019-08-14 Dmitry V. Levin + + xlat/gen.sh: remove #stop support. + There are no users of #stop directive anymore. + + * xlat/gen.sh (gen_header): Remove '#stop' support. + +2019-08-14 Dmitry V. Levin + + xlat/skf_off: use XLAT_MACROS_ONLY instead of #stop. + * xlat/skf_off.in: Remove #stop. + * bpf_sock_filter.c: Wrap "xlat/skf_off.h" inclusion in XLAT_MACROS_ONLY. + + xlat/scsi_sg_commands: use XLAT_MACROS_ONLY instead of #stop. + * xlat/scsi_sg_commands.in: Remove #stop. + * scsi.c: Wrap "xlat/scsi_sg_commands.h" inclusion in XLAT_MACROS_ONLY. + * tests/ioctl_scsi.c: Likewise. + * tests/ioctl_sg_io_v4.c: Likewise. + +2019-08-14 Dmitry V. Levin + + xlat: mark as value indexed those files that meet certain criteria. + Automatically prepend #value_indexed using the following script: + + for f in xlat/*.in; do + awk -n 'BEGINFILE {if (FILENAME ~ /flag/) exit 1; nr=0} + (nr == 0 && $1 ~ /^#/) {exit 1} + $1 !~ /^[A-Z_0-9]/ {next} + NF < 2 || $2 !~ /^[0-9]/ || ($2 - nr != 0 && $2 - nr != 1) {exit 1} + {nr++} + ENDFILE {if (nr < 2) exit 1}' "$f" && + sed -i '1i#value_indexed' "$f" + done + + * xlat/blkpg_ops.in: Prepend #value_indexed. + * xlat/btrfs_balance_ctl_cmds.in: Likewise. + * xlat/btrfs_compress_types.in: Likewise. + * xlat/btrfs_cont_reading_from_srcdev_mode.in: Likewise. + * xlat/crypto_nl_attrs.in: Likewise. + * xlat/dcb_commands.in: Likewise. + * xlat/epollctls.in: Likewise. + * xlat/f_owner_types.in: Likewise. + * xlat/fib_rule_actions.in: Likewise. + * xlat/futexwakecmps.in: Likewise. + * xlat/futexwakeops.in: Likewise. + * xlat/ioprio_class.in: Likewise. + * xlat/ioprio_who.in: Likewise. + * xlat/kcmp_types.in: Likewise. + * xlat/keyctl_commands.in: Likewise. + * xlat/lwtunnel_encap_types.in: Likewise. + * xlat/mpol_modes.in: Likewise. + * xlat/multicast_router_types.in: Likewise. + * xlat/netfilter_versions.in: Likewise. + * xlat/netlink_protocols.in: Likewise. + * xlat/netlink_types.in: Likewise. + * xlat/nf_acct_msg_types.in: Likewise. + * xlat/nf_cthelper_msg_types.in: Likewise. + * xlat/nf_ctnetlink_exp_msg_types.in: Likewise. + * xlat/nf_ctnetlink_msg_types.in: Likewise. + * xlat/nf_cttimeout_msg_types.in: Likewise. + * xlat/nf_ipset_msg_types.in: Likewise. + * xlat/nf_nftables_msg_types.in: Likewise. + * xlat/nf_osf_msg_types.in: Likewise. + * xlat/nf_queue_msg_types.in: Likewise. + * xlat/nf_ulog_msg_types.in: Likewise. + * xlat/nl_netfilter_subsys_ids.in: Likewise. + * xlat/nlmsgerr_attrs.in: Likewise. + * xlat/pr_cap_ambient.in: Likewise. + * xlat/pr_dumpable.in: Likewise. + * xlat/pr_mce_kill.in: Likewise. + * xlat/pr_mce_kill_policy.in: Likewise. + * xlat/pr_set_mm.in: Likewise. + * xlat/pr_tsc.in: Likewise. + * xlat/quota_formats.in: Likewise. + * xlat/quotatypes.in: Likewise. + * xlat/routing_types.in: Likewise. + * xlat/rtnl_addr_attrs.in: Likewise. + * xlat/rtnl_addrlabel_attrs.in: Likewise. + * xlat/rtnl_dcb_attrs.in: Likewise. + * xlat/rtnl_ifla_brport_attrs.in: Likewise. + * xlat/rtnl_ifla_events.in: Likewise. + * xlat/rtnl_ifla_info_attrs.in: Likewise. + * xlat/rtnl_ifla_port_attrs.in: Likewise. + * xlat/rtnl_ifla_vf_port_attrs.in: Likewise. + * xlat/rtnl_ifla_xdp_attrs.in: Likewise. + * xlat/rtnl_link_attrs.in: Likewise. + * xlat/rtnl_mdb_attrs.in: Likewise. + * xlat/rtnl_mdba_mdb_attrs.in: Likewise. + * xlat/rtnl_mdba_mdb_eattr_attrs.in: Likewise. + * xlat/rtnl_mdba_mdb_entry_attrs.in: Likewise. + * xlat/rtnl_mdba_router_attrs.in: Likewise. + * xlat/rtnl_mdba_router_pattr_attrs.in: Likewise. + * xlat/rtnl_neigh_attrs.in: Likewise. + * xlat/rtnl_neightbl_attrs.in: Likewise. + * xlat/rtnl_neightbl_parms_attrs.in: Likewise. + * xlat/rtnl_netconf_attrs.in: Likewise. + * xlat/rtnl_route_attrs.in: Likewise. + * xlat/rtnl_rta_metrics_attrs.in: Likewise. + * xlat/rtnl_rule_attrs.in: Likewise. + * xlat/rtnl_tc_action_attrs.in: Likewise. + * xlat/rtnl_tc_attrs.in: Likewise. + * xlat/rtnl_tca_stab_attrs.in: Likewise. + * xlat/rtnl_tca_stats_attrs.in: Likewise. + * xlat/s390_guarded_storage_commands.in: Likewise. + * xlat/s390_runtime_instr_commands.in: Likewise. + * xlat/seccomp_mode.in: Likewise. + * xlat/seccomp_ops.in: Likewise. + * xlat/shutdown_modes.in: Likewise. + * xlat/sigchld_codes.in: Likewise. + * xlat/sigev_value.in: Likewise. + * xlat/sigpoll_codes.in: Likewise. + * xlat/smc_link_group_roles.in: Likewise. + * xlat/sock_netlink_options.in: Likewise. + * xlat/sock_pnp_options.in: Likewise. + * xlat/sock_tls_options.in: Likewise. + * xlat/socketcalls.in: Likewise. + * xlat/tcp_states.in: Likewise. + * xlat/uring_register_opcodes.in: Likewise. + * tests/socketcall.c (main): Update assertion. + +2019-08-14 Eugene Syromyatnikov + + Replace direct usage of err_name/errnoent with print_err. + Introduce print_err function that prints error number respecting current + xlat verbosity settings, and switch err_name/errnoent callers to use + this new function instead. + + * defs.h (err_name): Remove. + (print_err): New declaration. + * print_fields.h (PRINT_FIELD_ERR_D, PRINT_FIELD_ERR_U): New macros. + * syscall.c (err_name): Add static qualifier, change argument type + to uint64_t. + (print_err): New function. + * keyctl.c (keyctl_reject_key): Use print_err for printing error + argument. + * net.c (print_get_error): Use print_err for printing err. + * numa.c (print_status): Use print_err for printing errno. + * netlink.c: Include "print_fields.h". + (decode_nlmsgerr): Use PRINT_FIELD_ERR_D for printing errno field. + * printsiginfo.c: Include "print_fields.h". + (print_si_info): Use PRINT_FIELD_ERR_U for printing si_errno field. + * ptrace_syscall_info.c (print_ptrace_syscall_info): Use + PRINT_FIELD_ERR_D for printing info.exit.rval. + * tests/pidfd_send_signal.c (main): Update expected output. + * tests/ptrace.c (main): Likewise. + + Co-Authored-by: Dmitry V. Levin + +2019-08-13 Dmitry V. Levin + + netlink_unix_diag: implement UDIAG_SHOW_UID/UNIX_DIAG_UID decoding. + ... introduced by Linux kernel commit v5.3-rc1~140^2~467. + + * linux/unix_diag.h (UDIAG_SHOW_UID, UNIX_DIAG_FIRST_UNUSED): New macro + constants. + (UNIX_DIAG_UID): New enum constant. + * xlat/unix_diag_attrs.in: Add UNIX_DIAG_UID. + * xlat/unix_diag_show.in: Add UDIAG_SHOW_UID. + * netlink_unix_diag.c (unix_diag_msg_nla_decoders): Handle + UNIX_DIAG_UID. + * NEWS: Mention this. + * tests/nlattr.c (test_nlattr, test_nla_type): Replace + UNIX_DIAG_SHUTDOWN + 1 with UNIX_DIAG_FIRST_UNUSED. + +2019-08-13 Eugene Syromyatnikov + + netlink_route: implement RTM_{NEW,DEL,GET}CHAIN decoding. + * xlat/nl_route_types.in (RTM_NEWCHAIN, RTM_DELCHAIN, RTM_GETCHAIN): New + constants introduced by Linux kernel commit v4.19-rc1~140^2~279^2~9. + * netlink_route.c (route_decoders) <[RTM_NEWCHAIN - RTM_BASE], + [RTM_DELCHAIN - RTM_BASE], [RTM_GETCHAIN - RTM_BASE]>: Invoke + decode_tcmsg. + * NEWS: Mention this. + +2019-08-13 Dmitry V. Levin + + xlat: update TCP_* constants. + * xlat/sock_tcp_options.in (TCP_TX_DELAY): New constant introduced + by Linux kernel commit v5.3-rc1~140^2~269. + * NEWS: Mention this. + + xlat: update *_MAGIC constants. + * xlat/fsmagic.in (Z3FOLD_MAGIC): New constant introduced + by Linux kernel commit v5.3-rc1~31^2~30. + (DMA_BUF_MAGIC): New constant introduced by Linux kernel commit + v5.3-rc1~22^2~20^2~42. + * NEWS: Mention this. + + xlat: update KVM_CAP_* constants. + * xlat/kvm_cap.in (KVM_CAP_PMU_EVENT_FILTER): New constant introduced + by Linux kernel commit v5.3-rc1~115^2~5. + * NEWS: Mention this. + + xlat: update KEYCTL_* constants. + * xlat/keyctl_commands.in (KEYCTL_PKEY_QUERY, KEYCTL_PKEY_ENCRYPT, + KEYCTL_PKEY_DECRYPT, KEYCTL_PKEY_SIGN, KEYCTL_PKEY_VERIFY): New + constants introduced by Linux kernel commit v4.20-rc1~29^2~20. + (KEYCTL_MOVE): New constant introduced by Linux kernel commit + v5.3-rc1~189^2~3. + (KEYCTL_CAPABILITIES): New constant introduced by Linux kernel commit + v5.3-rc1~189^2. + * NEWS: Mention this. + + xlat: update BPF_* constants. + * xlat/bpf_attach_type.in (BPF_CGROUP_GETSOCKOPT, + BPF_CGROUP_SETSOCKOPT): New constants introduced by Linux kernel commit + v5.3-rc1~140^2~65^2~8^2~8. + * xlat/bpf_prog_flags.in (BPF_F_TEST_RND_HI32): New constant + introduced by Linux kernel commit v5.3-rc1~140^2~371^2~28^2~12. + * xlat/bpf_prog_types.in (BPF_PROG_TYPE_CGROUP_SOCKOPT): New constant + introduced by Linux kernel commit v5.3-rc1~140^2~65^2~8^2~8. + * NEWS: Mention this. + * tests/bpf.c (print_BPF_PROG_LOAD_attr3, print_BPF_PROG_LOAD_attr4, + BPF_PROG_LOAD_checks, BPF_PROG_QUERY_checks): Update expected output. + * tests/kernel_version.c (print_bpf_attr, main): Likewise. + + xlat: update XDP_* constants. + * xlat/sock_xdp_options.in (XDP_OPTIONS): New constant introduced + by Linux kernel commit v5.3-rc1~140^2~65^2~9^2~13. + + xlat: update ETH_* constants. + * xlat/ethernet_protocols.in (ETH_P_LLDP): New constant introduced + by Linux kernel commit v5.3-rc1~140^2~329^2~6. + +2019-08-11 Dmitry V. Levin + + xlat: update SO_* constants. + * xlat/sock_options.in (SO_BINDTOIFINDEX): New constant introduced + by Linux commit v5.1-rc1~178^2~508. + (SO_RCVTIMEO_NEW, SO_SNDTIMEO_NEW): New constants introduced by Linux + commit v5.1-rc1~178^2~363^2. + (SO_DETACH_REUSEPORT_BPF): New constant introduced by Linux commit + v5.3-rc1~140^2~179^2~12. + + * xlat/setsock_options.in: Regenerate using maint/gen_xlat_defs.sh. + +2019-08-11 Dmitry V. Levin + + xlat: provide fallback definition for MAP_UNINITIALIZED. + Linux commit v5.3-rc1~65^2~86 fixed the definition of MAP_UNINITIALIZED + flag that used to depend on CONFIG_MMAP_ALLOW_UNINITIALIZED. + + * xlat/mmap_flags.in (MAP_UNINITIALIZED): Add fallback definition. + +2019-08-08 Eugene Syromyatnikov + + count: add ability to sort on errors field. + For completeness. + + * count.c (error_cmp): New function. + (set_sortby): Add sort keys for errors field. + * strace.1.in (.SH OPTIONS) <-S>: Document it. + * strace.c (usage): Likewise. + * tests/strace-S.test: Check it. + + Co-Authored-by: Dmitry V. Levin + +2019-08-06 Eugene Syromyatnikov + + count: provide alternative names for sorting options. + as some might be easier to remember than others. + + * count.c (set_sortby): Add aliases for the existing sorting options. + * strace.1.in (.SH OPTIONS) <-S>: Document new aliases. + * tests/strace-S.test: Check new sort keys. + + Co-Authored-by: Dmitry V. Levin + +2019-08-06 Eugene Syromyatnikov + + count: rewrite sort function selection using a table. + * count.c (set_sortby): Replace nested if's with iteration over a table. + + Co-Authored-by: Dmitry V. Levin + +2019-08-06 Dmitry V. Levin + + tests: extend -S option check. + * tests/strace-S.test: Check default sorting method and "-S time". + +2019-08-06 Eugene Syromyatnikov + + syscall: track syscall system time a bit more explicitly. + Before, it relied on implicit assumptions that syscall-exit event is + right the next one after syscall-enter. Also, there's some additional + debugging output that might help someone someday. + + * count.c (count_syscall): Calculate system time as difference of tcp's + stime and ltime. + * defs.h (struct tcb): Add ltime, atime fields, remove dtime. + * strace.c (droptcb): Print total system time spent by a tcb. + (startup_tcb): Store initial system time in atime. + (next_event): Update stime directly. + * syscall.c (syscall_entering_finish): Store current system time in + tcb's ltime field. + (syscall_exiting_finish): Likewise. + +2019-08-06 Eugene Syromyatnikov + + count: substract overhead per call. + * count.c (zero_ts): New variable. + (count_syscall): Calculate the spent time in the wts variable, then add + it to cc->time. + (call_summary_pers): Do not perform overhead correction. + +2019-08-06 Eugene Syromyatnikov + + util: add ts_min and ts_max. + * defs.h (ts_min, ts_max): New declarations. + * util.c (ts_min, ts_max): New functions. + + Co-Authored-by: Dmitry V. Levin + +2019-08-06 Eugene Syromyatnikov + + count: use parse_ts for parsing overhead value. + * count.c (set_overhead): Change argument type to const char *, call + parse_ts to parse it and set to overhead. + * defs.h (set_overhead): Update declaration. + * strace.c: (init) : do not parse argument, pass optarg to + set_overhead call. + * tests/count.test (GENERIC, WALLCLOCK, WALLCLOCK1, HALFCLOCK): New + variables with expected patterns. + Add checks for the new -O syntax. + + delay: use parse_ts for parsing delay value. + * delay.c (fill_delay_data): Change intval argument to struct timespec + *val, assign val to ts. + * delay.h (fill_delay_data): Update function declaration. + * filter_qualify.c (parse_delay_token): Parse input with parse_ts, + supply the resulting struct timespec to fill_delay_data. + * tests/delay.c (check_): New function for providing diagnostic in case + of check failure. + (check_delay): Use it. + * tests/delay.test: Check new delay syntax. + + util.c: add parse_ts. + * defs.h (parse_ts): New declaration. + * util.c (parse_ts): New function. + +2019-08-06 Eugene Syromyatnikov + + count: fix types in sorting comparison callbacks. + * count.c (time_cmp. syscall_cmp): Change arguments type + to "const void *", change indices cast type to "unsigned int *". + (count cmp): Likewise. Change count variables type to unsigned int. + (sortfun): Specify types of arguments. + + Co-Authored-by: Dmitry V. Levin + +2019-08-05 Eugene Syromyatnikov + + v4l2: improve control ID printing. + Control ID space is hierarchical, so, higher bits provide information + about control class. + + * v4l2.c (print_v4l2_cid): New function. + (print_v4l2_control): Use print_v4l2_cid for printing control ID field. + * tests/ioctl_v4l2.c: Add checks for control ID printing. + +2019-08-05 Eugene Syromyatnikov + + tests: add syslog-success test. + * tests/.gitignore: Add syslog-success + * tests/Makefile.am (check_PROGRAMS): Likewise. + (DECODER_TESTS): Add syslog-success.test. + * tests/syslog-success.c: New file. + * tests/syslog-success.test: New test. + * tests/syslog.c: Add support for running under syscall retval + injection, add checks. + + syslog: decode log level in SYSLOG_ACTION_CONSOLE_LEVEL command. + * xlat/syslog_console_levels.in: New file. + * syslog.c: Include "xlat/syslog_console_levels.h". + (SYS_FUNC(syslog)): Add SYSLOG_ACTION_CONSOLE_LEVEL case. + * tests/syslog.c: Add checks. + + syslog: fix argument printing. + * syslog.c (SYS_FUNC(syslog)): Store conversion to int of tcp->u_arg[2] + in len; print address using printaddr64 (as syslog doesn't use compat + for x32), and third argument as int (as it has this type in the syscall + handler). + * tests/syslog.c: Add checks. + + syslog: do not print bufp and len for commands that ignore them. + * syslog.c (SYS_FUNC(syslog)): Defer printing of comma after the first + argument to the specific command handlers, return RVAL_DECODED without + additional printing for SYSLOG_ACTION_CLOSE, SYSLOG_ACTION_OPEN, + SYSLOG_ACTION_CLEAR, SYSLOG_ACTION_CONSOLE_OFF, + SYSLOG_ACTION_CONSOLE_ON, SYSLOG_ACTION_SIZE_UNREAD, + SYSLOG_ACTION_SIZE_BUFFER. + * tests/syslog.c: Add checks. + + syslog: fix switch statement indentation. + * syslog.c (SYS_FUNC(syslog)): Decrease indentation level of case + clauses in the switch statement. + + syslog: print syslog command with verbose style, as it is not in UAPI. + * syslog.c (SYS_FUNC(syslog)): Print syslog_action_type using + XLAT_STYLE_VERBOSE. + * tests/syslog.c: Update expected output. + +2019-08-05 Dmitry V. Levin + + tests: update hppa workaround in remap_file_pages test. + ... to cater for the change of MAP_TYPE on hppa introduced + by Linux kernel commit v4.17-rc1~146^2~9. + + * tests/remap_file_pages.c (main) [__hppa__ && MAP_TYPE != 0x03] + (MAP_TYPE_str): Define to "0x2b /* MAP_??? */". + +2019-08-05 Dmitry V. Levin + + Remove AUDIT_ARCH_* fallback definitions from arch_get_personality.c files + Since xlat/audit_arch.h provides definitions for all AUDIT_ARCH_* + constants, remove their fallback definitions from other files. + + * get_personality.c [SUPPORTED_PERSONALITIES > 1]: Include + "xlat/elf_em.h" and "xlat/audit_arch.h" under XLAT_MACROS_ONLY. + * linux/aarch64/arch_get_personality.c (AUDIT_ARCH_ARM): Remove. + * linux/powerpc64/arch_get_personality.c (AUDIT_ARCH_PPC): Remove. + * linux/riscv/arch_get_personality.c (AUDIT_ARCH_RISCV32): Remove. + * linux/s390x/arch_get_personality.c (AUDIT_ARCH_S390): Remove. + * linux/sparc64/arch_get_personality.c (AUDIT_ARCH_SPARC): Remove. + * linux/tile/arch_get_personality.c (AUDIT_ARCH_TILEGX32, + AUDIT_ARCH_TILEPRO): Remove. + * linux/x86_64/arch_get_personality.c (AUDIT_ARCH_I386): Remove. + +2019-08-05 Eugene Syromyatnikov + + xlat: update audit_arch.in. + * xlat/audit_arch.in: Add fallback definitions. + (__AUDIT_ARCH_CONVENTION_MIPS64_N32, __AUDIT_ARCH_64BIT, + __AUDIT_ARCH_LE): New macros. + (AUDIT_ARCH_V850): New constant. + + Co-Authored-by: Dmitry V. Levin + +2019-08-05 Eugene Syromyatnikov + + xlat: add elf_em.in. + For now, it's a source of fallback values for AUDIT_ARCH_* constants. + + * xlat/elf_em.in: New file. + * xlat/audit_arch.in (AUDIT_ARCH_ARM, AUDIT_ARCH_ARMEB, AUDIT_ARCH_FRV, + AUDIT_ARCH_MICROBLAZE, AUDIT_ARCH_OPENRISC): Define unconditionally. + * printsiginfo.c: Include "xlat/elf_em.h". + * tests/ptrace_syscall_info.c: Likewise. + + Co-Authored-by: Dmitry V. Levin + +2019-08-04 Eugene Syromyatnikov + + strace.c: sync up strace -h message with the man page. + Especially synopsis. + + * strace.c (usage): copy synopsis over from the man page; add "-A" + and "-qq" options description. + +2019-08-04 Eugene Syromyatnikov + + strace.1.in: add missing options to synopsis. + * strace.1.in (.SH SYNOPSIS): add second "-q", "-w", second "-y", "-z", + and "-Z" to normal call variant; add "-w", "-z" and "-Z" to syscall + statistics call variant. + + strace.c: split lines in strace -h output to fit into 80 columns. + * strace.c (usage): split "-yy", "-c", "-e" options descriptions to fit + into 80 columns width. + +2019-08-04 Eugene Syromyatnikov + + strace.c: move -v to Output format section in strace -h message. + And also reword it into a more general and concise form in order to fit + into 80-columnt width. + + * strace.c (usage): Move "-v" option to the "Output format" option of + the help message, reword its description. + +2019-08-04 Eugene Syromyatnikov + + strace.c: add "-k" to strace -h list of options. + It is mentioned in the "Output format" section below, but not in the + usage section. + + * strace.c (usage): Define K_OPT macro with a value that depends + on ENABLE_STACKTRACE macro presence, use it in the help output, undefine + it. + +2019-08-04 Eugene Syromyatnikov + + strace.1.in: rewrite supported -e status options in a more compact form. + * strace.1.in (.SS Filtering): Rewrite -e status value options in a + sublist. + +2019-08-04 Eugene Syromyatnikov + + strace.1.in: reformat mpers support matrix table. + In order to make it much less wider. + + * strace.1.in (.SH MULTIPLE PERSONALITY SUPPORT): Move additional text + in x86_64 line to notes under the table, clarify PowerPC specifics. + +2019-08-04 Eugene Syromyatnikov + + strace.1.in: compact small named lists. + And also rewrite nested .RS/.RE abomination. + + * strace.1.in (.SS Output format): compact -X option values variants + using ".TQ". + (.SS Tampering): Rewrite -e inject=:when= expression variants using + ".TP"/".TQ". + (.SH MULTIPLE PERSONALITY SUPPORT): compact optional features list using + ".TQ". + +2019-08-04 Eugene Syromyatnikov + + strace.1.in: rewrite conditional parts. + The current implementation doesn't work as intended since in case the + condition is false, .ig has no effect and it results in "warning: macro + 'end_unwind_opt' not defined". Rewrite it into something more dumb and + verbose, but hopefully correct. + + * strace.1.in (.SH SYNOPSYS, .SS Output format): Prepend each + conditional line with respective ".if" instead of trying to wrap + it in ".ig". + +2019-08-04 Eugene Syromyatnikov + + strace.1.in: add AUTHORS section. + * strace.1.in: Add .SH AUTHORS, refer to the CREDITS file. + + strace.1.in: add a link to the current project's home page. + * strace.1.in (.SH SEE ALSO): Add a link to strace's home page. + +2019-08-04 Eugene Syromyatnikov + + strace.1.in: reorder options. + In an attempt to make the order more sensible. + + * strace.1.in (.SH OPTIONS): Insert ".SS General" at the beginning of + the section; move ".SS Startup" after ".SS General"; move ".SS Tracing" + after ".SS Startup"; move ".SS Filtering" after ".SS Startup"; insert + ".SS Tampering" after ".SS Statistics"; move "-e expr" from ".SS + Filtering" to ".SS General"; move "-e abbrev", "-e verbose", "-e raw", + "-e read", "-e write", "-e kvm=vcpu" and "-v" from ".SS Filtering" + to ".SS Output format"; move "-e inject" and "-e fault" from + ".SS Filtering" to ".SS Tampering". + +2019-08-04 Eugene Syromyatnikov + + Treat PowerPC 64 LE as a separate architecture. + That seems to be the easiest way to properly handle the fact that + PPC64LE does not have a meaningful m32 personality. + + * configure.ac: Move AC_C_BIGENDIAN before arch detection; determine + powerpc64/powerpc64le arch based on $ac_cv_c_bigendian value. + * linux/dummy.h [POWERPC64LE] (sys_oldselect): Redirect to printargs. + * linux/powerpc64le/arch_defs_.h: New file. + * linux/powerpc64le/arch_regs.c: Likewise. + * linux/powerpc64le/arch_rt_sigframe.c: Likewise. + * linux/powerpc64le/errnoent.h: Likewise. + * linux/powerpc64le/get_error.c: Likewise. + * linux/powerpc64le/get_scno.c: Likewise. + * linux/powerpc64le/get_syscall_args.c: Likewise. + * linux/powerpc64le/ioctls_arch0.h: Likewise. + * linux/powerpc64le/ioctls_inc0.h: Likewise. + * linux/powerpc64le/raw_syscall.h: Likewise. + * linux/powerpc64le/rt_sigframe.h: Likewise. + * linux/powerpc64le/set_error.c: Likewise. + * linux/powerpc64le/set_scno.c: Likewise. + * linux/powerpc64le/syscallent.h: Likewise. + * linux/powerpc64le/userent.h: Likewise. + * Makefile.am (EXTRA_DIST): Add them. + * tests/ipc_msg.c: Check for POWERPC64LE definition in addition to + POWERPC64. + * util.c (getllval): Add check for POWERPC64LE definition in addition to + POWERPC64. + * strace.1.in (.SH MULTIPLE PERSONALITY SUPPORT): Mention that only big + endian PowerPC 64 has mpers support. + + Co-Authored-by: Dmitry V. Levin + +2019-08-04 Pierre Marsais + + Fix invalid free in trace_close_memstream. + In maybe_switch_tcbs we exchange the pointers to the memstream's buffers + between 2 tcb, however the libc doesn't know and keeps updating the + tcb->memfptr as if the exchange didn't happen. This leads to + unsynchronized tcb->memfptr and tcb->outf and invalid frees. + Adding a new indirection fixes the problem. + + * stage_output.c (struct staged_output_data): New struct. + (strace_open_memstream, strace_close_memstream): Use it. + * defs.h (struct tcb): Replace real_outf, memfptr, and memfloc + with a pointer to struct staged_output_data. + * strace.c (maybe_switch_tcbs): Use it. + * syscall.c (print_syscall_resume): Ditto. + +2019-08-04 Dmitry V. Levin + + tests: fix expected output for some ipc tests. + * tests/gen_tests.in (ipc_msgbuf-Xraw, ipc_shm, ipc_shm-Xabbrev, + ipc_shm-Xverbose): Adjust -a argument. + +2019-08-02 Dmitry V. Levin + + tests: check the latest MSG_TRUNC decoding fix. + * tests/recv-MSG_TRUNC.c: New file. + * tests/recvfrom-MSG_TRUNC.c: Likewise. + * tests/gen_tests.in (recv-MSG_TRUNC, recvfrom-MSG_TRUNC): New entries. + * tests/pure_executables.list: Add recv-MSG_TRUNC and + recvfrom-MSG_TRUNC. + * tests/.gitignore: Likewise. + +2019-08-02 Jeremy Kerr + + net: Fix access beyond tracee buffer for MSG_TRUNC receives. + The recv(), recvfrom() and recvmsg() calls allow a MSG_TRUNC flag, which + indicates that the kernel should return the available size of an + incoming message, rather than the received size. + + When strace-ing a truncated recv(), strace will try to access a + return-value size area of the tracee's buffer, which may be larger than + the actual buffer: + + $ obj/strace -e trace=recvfrom ~/tmp/recv-test + recvfrom(3, "\1\2\3\4\0\0\0\0", 4, MSG_TRUNC, NULL, NULL) = 8 + + If I add a non-readable guard page after the tracee's recv buffer, we + see strace failing to read the vm area: + + $ obj/strace -e trace=recvfrom ~/tmp/recv-test+guard + recvfrom(3, obj/strace: umoven: short read (4 < 8) @0x7f0b0d7ddffc + 0x7f0b0d7ddffc, 4, MSG_TRUNC, NULL, NULL) = 8 + + This change restricts the maximum read size to the size of the tracee's + actual buffer. + + The recvmsg() handler will do the right thing by using the .iov_len + data, so no change is required there. + + * net.c (sys_recv, sys_recvfrom): Clamp maximum sockbuf size. + +2019-07-24 Eugene Syromyatnikov + + Add xlat description structure. + Rename struct xlat to struct xlat_data and make struct xlat an xlat + descriptor that contains various information about xlat. + So far it's the type and the number of items. + + As a result, xlookup/printxval now have enough information for handling + xlat depending on its type, so *index/*_search API is not needed any + longer. + + * xlat.h (struct xlat_data): Rename from struct xlat. + (struct xlat): New type definition. + * xlat.c (xlat_search, printxval_sized, printxval_searchn_ex, xlat_idx, + printxval_indexn_ex, printxval_dispatch_ex): Remove. + (xlookup): Handle xlat_data based on xlat type. + (xlat_search_eq_or_less, xlookup_le): New functions. + (sprintflags_ex, printflags_ex): Update. + * xlat/gen.sh (gen_header): Add handling for #sorted, generate new + struct xlat descriptor. + * defs.h (arp_hardware_types_size, ethernet_protocols_size, + inet_protocols_size, evdev_abs_size, xlat_search, xlat_idx, + printxval_searchn_ex, printxval_searchn, printxval_search, + printxval_search_ex, printxval_indexn_ex, printxval_indexn, + printxval_index, printxval_index_ex, printxval_dispatch_ex, + printxval_dispatch): Remove. + (enum xlat_style_private_flag_bits): Remove PAF_INDEX_XLAT_SORTED_BIT + and PAF_INDEX_XLAT_VALUE_INDEXED_BIT. + (enum xlat_style_private_flag): Remove PAF_INDEX_XLAT_SORTED and + PAF_INDEX_XLAT_VALUE_INDEXED. + (print_array_ex): Remove index_xlat_size argument. + (xlookup_le): New declaration. + (printxval_ex): New macro. + * dyxlat.c (struct dyxlat): Remove used field (use xlat.size instead), + embed struct xlat, add pointer to struct xlat_data. + (MARK_END): Remove. + (dyxlat_alloc, dyxlat_free, dyxlat_get, dyxlat_add_pair): Update in + accordance with the structure changes. + * evdev.c (evdev_abs_size): Remove. + (keycode_ioctl): Use printxval instead of printxval_index. + (decode_bitset): Remove. + (decode_bitset_): Rename to decode_bitset, remove decode_nr_size and xt + arguments, call printxval instead of printxval_dispatch. + (bit_ioctl, evdev_read_ioctl): Do not pass xlat type to decode_bitset. + * fsconfig.c (SYS_FUNC(fsconfig)): Use printxval instead of + printxval_index. + * print_fields.h (PRINT_FIELD_XVAL_SORTED_SIZED, + PRINT_FIELD_XVAL_INDEX): Remove. + * nlattr.h (struct decode_nla_xlat_opts): Remove xlat_size and xt + fields. + * nlattr.c (decode_nla_meminfo): Do not pass + PAF_INDEX_XLAT_VALUE_INDEXED flag and netlink_sk_meminfo_indices size + in a print_array_ex call. + (decode_nla_xval): Call printxval_ex instead of printxval_dispatch_ex. + (decode_nla_ether_proto, decode_nla_ip_proto): Do not pass xlat_size and + xt fields in opts. + (decode_nla_flags): Remove XT_INDEXED unsupported warning. + * process.c (struct_user_offsets_data): Rename from struct_user_offsets, + change type to struct xlat_data[]. + (struct_user_offsets): New xlat description. + (print_user_offset_addr): Rewrite using xlookup_le. + * util.c (print_array_ex): Remove index_xlat_size argument, simply call + printxval_ex for index printing. + * aio.c (tprint_lio_opcode): Use printxval_ex instead of + printxval_indexn_ex. + * bpf.c: Use printxval instead of printxval_index; use PRINT_FIELD_XVAL + instead of PRINT_FIELD_XVAL_INDEX. + * bpf_filter.c (print_bpf_filter_code): Use printxval instead of + printxval_index. + * ioctl.c (evdev_decode_number): Use printxval instead of + printxval_indexn. + * kvm.c (kvm_ioctl_decode_check_extension): Use printxval64 instead of + printxval_index. + (kvm_ioctl_run_attach_auxstr): Use xlookup instead of xlat_idx. + * net.c: Use printxval instead of printxval_search/printxval_index, use + printxval_ex instead of printxval_searchn_ex. + * netlink.c (get_fd_nl_family): Rewrite using xlat descriptor structure. + * netlink_packet_diag.c (decode_packet_diag_msg): Use PRINT_FIELD_XVAL + instead of PRINT_FIELD_XVAL_SORTED_SIZED. + * netlink_smc_diag.c (decode_smc_diag_shutdown): Remove ARRSZ_PAIR + wrapper. + (decode_smc_diag_fallback): Use printxval_ex instead of + printxval_search_ex. + (decode_smc_diag_msg): Use PRINT_FIELD_XVAL instead of + PRINT_FIELD_XVAL_INDEX. + * print_statfs.c (print_statfs_type): Use printxval instead of + printxval_search. + * ptrace_syscall_info.c (print_ptrace_syscall_info): Use + PRINT_FIELD_XVAL instead of PRINT_FIELD_XVAL_INDEX. + * rtnl_link.c (decode_ifla_inet6_flags, decode_ifla_inet6_agm): + Likewise. + (decode_nla_tun_type, decode_ifla_xdp_attached): Remove xlat_size, + xt fields. + (decode_ifla_inet_conf, decode_ifla_inet6_conf, decode_ifla_inet6_stats, + decode_ifla_inet6_icmp6_stats): Remove PAF_INDEX_XLAT_VALUE_INDEXED flag + and ARRSZ_PAIR wrapper in print_array_ex calls. + (decode_ifinfomsg): Use PRINT_FIELD_XVAL instead of + PRINT_FIELD_XVAL_SORTED_SIZED. + * rtnl_route.c (decode_nla_rt_proto): Use printxval instead of + printxval_search. + * sock.c (print_ifreq): Use PRINT_FIELD_XVAL instead of + PRINT_FIELD_XVAL_SORTED_SIZED. + * sockaddr.c (print_sockaddr_data_ll, print_sockaddr_data_bt, + print_sockaddr): Use printxval instead of printxval_search and + printxval_index. + * time.c (getitimer, osf_getitimer, setitimer, osf_setitimer, + printclockname): Use printxval instead of printxval_index. + (do_adjtimex): Use xlookup instead of xlat_idx. + * tests/btrfs.c: Update xlat handling, use struct xlat_data instead of + struct xlat for XLAT() arrays. + * tests/ioctl_block.c: Likewise. + * tests/ioctl_rtc.c: Likewise. + * tests/printflags.c: Likewise. + * tests/printxval.c: Likewise. + * tests/prlimit64.c: Likewise. + * tests/setrlimit.c: Likewise. + * tests/socketcall.c: Likewise. + * tests/xgetrlimit.c: Likewise. + * tests/xstatfsx.c: Likewise. + * xlat/af_packet_versions.in: Add #value_indexed. + * xlat/arp_hardware_types.in: Add #sorted. + * xlat/ax25_protocols.in: Likewise. + * xlat/bluetooth_l2_cid.in: Likewise. + * xlat/bluetooth_l2_psm.in: Likewise. + * xlat/ethernet_protocols.in: Likewise. + * xlat/evdev_ff_types.in: Likewise. + * xlat/fsmagic.in: Likewise. + * xlat/hw_breakpoint_type.in: Likewise. + * xlat/iffflags.in: Likewise. + * xlat/inet6_if_flags.in: Likewise. + * xlat/inet_protocols.in: Likewise. + * xlat/msgctl_flags.in: Likewise. + * xlat/perf_hw_cache_id.in: Likewise. + * xlat/perf_hw_cache_op_id.in: Likewise. + * xlat/perf_hw_cache_op_result_id.in: Likewise. + * xlat/perf_hw_id.in: Likewise. + * xlat/perf_sw_ids.in: Likewise. + * xlat/perf_type_id.in: Likewise. + * xlat/routing_protocols.in: Likewise. + * xlat/semctl_flags.in: Likewise. + * xlat/shmctl_flags.in: Likewise. + * xlat/smc_decl_codes.in: Likewise. + * xlat/sock_ax25_options.in: Likewise. + * xlat/sock_bluetooth_options.in: Likewise. + * xlat/sock_dccp_options.in: Likewise. + * xlat/sock_tipc_options.in: Likewise. + * xlat/socketlayers.in: Likewise. + * xlat/v4l2_control_classes.in: Likewise. + * xlat/v4l2_pix_fmts.in: Likewise. + * xlat/v4l2_sdr_fmts.in: Likewise. + + Co-Authored-by: Dmitry V. Levin + +2019-07-23 Eugene Syromyatnikov + + NEWS: retroactively mention that -z/-Z fix addresses Debian bug #176376. + + xlat/v4l2_pix_fmts.in: work around V4L2_PIX_FMT_BGRA444 value change. + * xlat/v4l2_pix_fmts.in: Undefine V4L2_PIX_FMT_BGRA444 as it has changed + its value in Linux commit v5.2-rc5-403-g22be8233b34f. + +2019-07-18 Anatoly Pugachev + + README-configure: recommend 'make -k check' instead of 'make check' + * maint/install.texi: Replace 'make check' with 'make -k check'. + * README-configure: Regenerate. + +2019-07-18 Eugene Syromyatnikov + + Generalise hardware address printing. + * defs.h [!MAX_ADDR_LEN] (MAX_ADDR_LEN): New macro. + (sprint_hwaddr): New declaration. + (print_hwaddr): New inline function, a wrapper for sprint_hwaddr. + * print_fields.h (PRINT_FIELD_HWADDR_SZ): New macro. + * print_mac.c: Include "xlat/arp_hardware_types.h" under + XLAT_MACROS_ONLY. + [!MAX_ADDR_LEN] (MAX_ADDR_LEN): Remove. + (sprint_hwaddr): New function. + * sock.c (print_ifreq) : Print hardware + address using PRINT_FIELD_HWADDR_SZ. + + open: implement sprint_open_modes using sprintflags_ex. + * defs.h (sprintflags_ex): Add "sep" argument. + (sprintflags): Pass '\0' in "sep" argument. + * open.c (sprint_open_modes): Use sprintflags_ex for printing + open_mode_flags. + * xlat.c (sprintflags_ex): Add "sep" argument, use it as initial + separator (if not nul). + +2019-07-16 Dmitry V. Levin + + Consistently define __NR_* constants. + Include from "scno.h", include "scno.h" instead of + , do not include where "scno.h" is already + included. + + * scno.head: Include . + * clone.c: Include "scno.h" instead of . + * syscall.c: Likewise. + * tests/_newselect.c: Likewise. + * tests/accept.c: Likewise. + * tests/accept_compat.h: Likewise. + * tests/access.c: Likewise. + * tests/acct.c: Likewise. + * tests/aio.c: Likewise. + * tests/alarm.c: Likewise. + * tests/answer.c: Likewise. + * tests/attach-f-p.c: Likewise. + * tests/brk.c: Likewise. + * tests/chmod.c: Likewise. + * tests/chown.c: Likewise. + * tests/chown32.c: Likewise. + * tests/chroot.c: Likewise. + * tests/clock_adjtime.c: Likewise. + * tests/clock_nanosleep.c: Likewise. + * tests/clock_xettime.c: Likewise. + * tests/creat.c: Likewise. + * tests/delay.c: Likewise. + * tests/delete_module.c: Likewise. + * tests/dev-yy.c: Likewise. + * tests/dup2.c: Likewise. + * tests/dup3.c: Likewise. + * tests/epoll_create.c: Likewise. + * tests/epoll_create1.c: Likewise. + * tests/epoll_ctl.c: Likewise. + * tests/epoll_pwait.c: Likewise. + * tests/epoll_wait.c: Likewise. + * tests/eventfd.c: Likewise. + * tests/faccessat.c: Likewise. + * tests/fadvise64.c: Likewise. + * tests/fadvise64_64.c: Likewise. + * tests/fallocate.c: Likewise. + * tests/fanotify_init.c: Likewise. + * tests/fanotify_mark.c: Likewise. + * tests/fchdir.c: Likewise. + * tests/fchmod.c: Likewise. + * tests/fchmodat.c: Likewise. + * tests/fchown.c: Likewise. + * tests/fchown32.c: Likewise. + * tests/fchownat.c: Likewise. + * tests/fcntl.c: Likewise. + * tests/fcntl64.c: Likewise. + * tests/fdatasync.c: Likewise. + * tests/file_handle.c: Likewise. + * tests/flock.c: Likewise. + * tests/fstat.c: Likewise. + * tests/fstat64.c: Likewise. + * tests/fstatat64.c: Likewise. + * tests/fstatfs.c: Likewise. + * tests/fstatfs64.c: Likewise. + * tests/fsync.c: Likewise. + * tests/ftruncate.c: Likewise. + * tests/ftruncate64.c: Likewise. + * tests/futex.c: Likewise. + * tests/futimesat.c: Likewise. + * tests/get_mempolicy.c: Likewise. + * tests/get_sigset_size.c: Likewise. + * tests/getcpu.c: Likewise. + * tests/getcwd.c: Likewise. + * tests/getdents.c: Likewise. + * tests/getdents64.c: Likewise. + * tests/getegid32.c: Likewise. + * tests/geteuid32.c: Likewise. + * tests/getgid.c: Likewise. + * tests/getgid32.c: Likewise. + * tests/getgroups.c: Likewise. + * tests/getgroups32.c: Likewise. + * tests/getpgrp.c: Likewise. + * tests/getpid.c: Likewise. + * tests/getrandom.c: Likewise. + * tests/getresgid.c: Likewise. + * tests/getresgid32.c: Likewise. + * tests/getresuid.c: Likewise. + * tests/getresuid32.c: Likewise. + * tests/getrlimit.c: Likewise. + * tests/getrusage.c: Likewise. + * tests/gettid.c: Likewise. + * tests/getuid.c: Likewise. + * tests/getuid32.c: Likewise. + * tests/getxxid.c: Likewise. + * tests/init_module.c: Likewise. + * tests/inject-nf.c: Likewise. + * tests/inotify.c: Likewise. + * tests/inotify_init1.c: Likewise. + * tests/ioctl_inotify.c: Likewise. + * tests/ioctl_loop.c: Likewise. + * tests/ioctl_perf.c: Likewise. + * tests/ioctl_uffdio.c: Likewise. + * tests/ioperm.c: Likewise. + * tests/iopl.c: Likewise. + * tests/ioprio.c: Likewise. + * tests/ipc.c: Likewise. + * tests/ipc_msgbuf.c: Likewise. + * tests/kexec_load.c: Likewise. + * tests/keyctl.c: Likewise. + * tests/kill.c: Likewise. + * tests/ksysent.c: Likewise. + * tests/lchown.c: Likewise. + * tests/lchown32.c: Likewise. + * tests/libmmsg.c: Likewise. + * tests/libsocketcall.c: Likewise. + * tests/link.c: Likewise. + * tests/linkat.c: Likewise. + * tests/llseek.c: Likewise. + * tests/localtime.c: Likewise. + * tests/lookup_dcookie.c: Likewise. + * tests/lseek.c: Likewise. + * tests/lstat.c: Likewise. + * tests/lstat64.c: Likewise. + * tests/madvise.c: Likewise. + * tests/migrate_pages.c: Likewise. + * tests/mkdir.c: Likewise. + * tests/mkdirat.c: Likewise. + * tests/mknod.c: Likewise. + * tests/mknodat.c: Likewise. + * tests/mlock.c: Likewise. + * tests/modify_ldt.c: Likewise. + * tests/move_pages.c: Likewise. + * tests/mq_sendrecv.c: Likewise. + * tests/newfstatat.c: Likewise. + * tests/nsyscalls.c: Likewise. + * tests/old_mmap.c: Likewise. + * tests/oldfstat.c: Likewise. + * tests/oldlstat.c: Likewise. + * tests/oldselect-efault.c: Likewise. + * tests/oldselect.c: Likewise. + * tests/oldstat.c: Likewise. + * tests/open.c: Likewise. + * tests/openat.c: Likewise. + * tests/osf_utimes.c: Likewise. + * tests/pause.c: Likewise. + * tests/perf_event_open.c: Likewise. + * tests/perf_event_open_nonverbose.c: Likewise. + * tests/pipe.c: Likewise. + * tests/pipe2.c: Likewise. + * tests/poll.c: Likewise. + * tests/ppoll.c: Likewise. + * tests/prctl-arg2-intptr.c: Likewise. + * tests/prctl-dumpable.c: Likewise. + * tests/prctl-no-args.c: Likewise. + * tests/prctl-pdeathsig.c: Likewise. + * tests/prctl-seccomp-filter-v.c: Likewise. + * tests/prctl-seccomp-strict.c: Likewise. + * tests/prctl-securebits.c: Likewise. + * tests/prctl-spec-inject.c: Likewise. + * tests/prctl-tid_address.c: Likewise. + * tests/prctl-tsc.c: Likewise. + * tests/prlimit64.c: Likewise. + * tests/process_vm_readv.c: Likewise. + * tests/process_vm_writev.c: Likewise. + * tests/pselect6.c: Likewise. + * tests/ptrace.c: Likewise. + * tests/qual_inject-error-signal.c: Likewise. + * tests/qual_inject-retval.c: Likewise. + * tests/qual_inject-signal.c: Likewise. + * tests/quotactl-xfs.c: Likewise. + * tests/quotactl.c: Likewise. + * tests/read-write.c: Likewise. + * tests/readahead.c: Likewise. + * tests/readdir.c: Likewise. + * tests/readlink.c: Likewise. + * tests/readlinkat.c: Likewise. + * tests/reboot.c: Likewise. + * tests/rename.c: Likewise. + * tests/renameat.c: Likewise. + * tests/request_key.c: Likewise. + * tests/rmdir.c: Likewise. + * tests/rt_sigpending.c: Likewise. + * tests/rt_sigprocmask.c: Likewise. + * tests/rt_sigsuspend.c: Likewise. + * tests/rt_sigtimedwait.c: Likewise. + * tests/rt_tgsigqueueinfo.c: Likewise. + * tests/s390_guarded_storage.c: Likewise. + * tests/s390_pci_mmio_read_write.c: Likewise. + * tests/s390_runtime_instr.c: Likewise. + * tests/s390_sthyi.c: Likewise. + * tests/sched_get_priority_mxx.c: Likewise. + * tests/sched_rr_get_interval.c: Likewise. + * tests/sched_xetaffinity.c: Likewise. + * tests/sched_xetattr.c: Likewise. + * tests/sched_xetparam.c: Likewise. + * tests/sched_xetscheduler.c: Likewise. + * tests/sched_yield.c: Likewise. + * tests/seccomp-filter-v.c: Likewise. + * tests/seccomp-filter.c: Likewise. + * tests/seccomp-strict.c: Likewise. + * tests/seccomp_get_action_avail.c: Likewise. + * tests/select.c: Likewise. + * tests/sendfile.c: Likewise. + * tests/sendfile64.c: Likewise. + * tests/setdomainname.c: Likewise. + * tests/setfsgid.c: Likewise. + * tests/setfsgid32.c: Likewise. + * tests/setfsuid.c: Likewise. + * tests/setfsuid32.c: Likewise. + * tests/setgid.c: Likewise. + * tests/setgid32.c: Likewise. + * tests/setgroups.c: Likewise. + * tests/setgroups32.c: Likewise. + * tests/sethostname.c: Likewise. + * tests/setns.c: Likewise. + * tests/setregid.c: Likewise. + * tests/setregid32.c: Likewise. + * tests/setresgid.c: Likewise. + * tests/setresgid32.c: Likewise. + * tests/setresuid.c: Likewise. + * tests/setresuid32.c: Likewise. + * tests/setreuid.c: Likewise. + * tests/setreuid32.c: Likewise. + * tests/setrlimit.c: Likewise. + * tests/setuid.c: Likewise. + * tests/setuid32.c: Likewise. + * tests/sigaction.c: Likewise. + * tests/signal.c: Likewise. + * tests/signalfd4.c: Likewise. + * tests/sigpending.c: Likewise. + * tests/sigprocmask.c: Likewise. + * tests/sigreturn.c: Likewise. + * tests/sigsuspend.c: Likewise. + * tests/socketcall.c: Likewise. + * tests/splice.c: Likewise. + * tests/stack-fcall-3.c: Likewise. + * tests/stat.c: Likewise. + * tests/stat64.c: Likewise. + * tests/statfs.c: Likewise. + * tests/statfs64.c: Likewise. + * tests/status-none-threads.c: Likewise. + * tests/status-unfinished-threads.c: Likewise. + * tests/statx.c: Likewise. + * tests/swap.c: Likewise. + * tests/sxetmask.c: Likewise. + * tests/symlink.c: Likewise. + * tests/symlinkat.c: Likewise. + * tests/sync.c: Likewise. + * tests/sync_file_range.c: Likewise. + * tests/sync_file_range2.c: Likewise. + * tests/syslog.c: Likewise. + * tests/tee.c: Likewise. + * tests/threads-execve.c: Likewise. + * tests/time.c: Likewise. + * tests/timer_create.c: Likewise. + * tests/timer_xettime.c: Likewise. + * tests/timerfd_xettime.c: Likewise. + * tests/times-fail.c: Likewise. + * tests/times.c: Likewise. + * tests/truncate.c: Likewise. + * tests/truncate64.c: Likewise. + * tests/ugetrlimit.c: Likewise. + * tests/umount.c: Likewise. + * tests/umount2.c: Likewise. + * tests/umoven-illptr.c: Likewise. + * tests/umovestr-illptr.c: Likewise. + * tests/uname.c: Likewise. + * tests/unix-pair-send-recv.c: Likewise. + * tests/unlink.c: Likewise. + * tests/unlinkat.c: Likewise. + * tests/unshare.c: Likewise. + * tests/ustat.c: Likewise. + * tests/utime.c: Likewise. + * tests/utimensat.c: Likewise. + * tests/utimes.c: Likewise. + * tests/vhangup.c: Likewise. + * tests/vmsplice.c: Likewise. + * tests/waitid.c: Likewise. + * tests/waitpid.c: Likewise. + * tests/xet_robust_list.c: Likewise. + * tests/xet_thread_area_x86.c: Likewise. + * tests/xetitimer.c: Likewise. + * tests/xetpgid.c: Likewise. + * tests/xetpriority.c: Likewise. + * tests/xettimeofday.c: Likewise. + * strace.c: Do not include . + * ucopy.c: Likewise. + * tests/add_key.c: Likewise. + * tests/aio_pgetevents.c: Likewise. + * tests/bpf-obj_get_info_by_fd.c: Likewise. + * tests/bpf.c: Likewise. + * tests/copy_file_range.c: Likewise. + * tests/execveat.c: Likewise. + * tests/finit_module.c: Likewise. + * tests/fsconfig.c: Likewise. + * tests/fsmount.c: Likewise. + * tests/fsopen.c: Likewise. + * tests/fspick.c: Likewise. + * tests/getegid.c: Likewise. + * tests/geteuid.c: Likewise. + * tests/getppid.c: Likewise. + * tests/inotify_init.c: Likewise. + * tests/io_uring_enter.c: Likewise. + * tests/io_uring_register.c: Likewise. + * tests/io_uring_setup.c: Likewise. + * tests/kcmp.c: Likewise. + * tests/kern_features.c: Likewise. + * tests/kernel_version.c: Likewise. + * tests/kexec_file_load.c: Likewise. + * tests/maybe_switch_current_tcp.c: Likewise. + * tests/mbind.c: Likewise. + * tests/membarrier.c: Likewise. + * tests/memfd_create.c: Likewise. + * tests/mlock2.c: Likewise. + * tests/move_mount.c: Likewise. + * tests/open_tree.c: Likewise. + * tests/pidfd_send_signal.c: Likewise. + * tests/pkey_alloc.c: Likewise. + * tests/pkey_free.c: Likewise. + * tests/pkey_mprotect.c: Likewise. + * tests/preadv2-pwritev2.c: Likewise. + * tests/ptrace_syscall_info.c: Likewise. + * tests/remap_file_pages.c: Likewise. + * tests/renameat2.c: Likewise. + * tests/riscv_flush_icache.c: Likewise. + * tests/set_mempolicy.c: Likewise. + * tests/test_printstrn.c: Likewise. + * tests/test_ucopy.c: Likewise. + * tests/userfaultfd.c: Likewise. + +2019-07-16 Dmitry V. Levin + + aarch64: remove syscall numbers range [1024...1079] from syscallent.h. + Remove support for decoding syscalls in range [1024...1079] on aarch64 + as this range has never been implemented in mainline kernel releases. + + * linux/aarch64/syscallent.h [1024...1079]: Remove. + * NEWS: Mention this change. + +2019-07-16 Dmitry V. Levin + + tests: skip socketcall test on arm eabi. + arm eabi has no socketcall even if __NR_socketcall is defined. + + * tests/socketcall.c: Conditionalize on !__ARM_EABI__ along with + __NR_socketcall. + +2019-07-16 Dmitry V. Levin + + tests: robustify statx test. + Do not assume that defines struct statx. + + * configure.ac (AC_CHECK_TYPES): Check for struct statx in + . + * tests/statx.c: Conditionalize on HAVE_STRUCT_STATX along with + __NR_statx. + +2019-07-16 Dmitry V. Levin + + tests: robustify old_mmap test. + Do not assume that old mmap syscall is implemented in the kernel + when __NR_mmap is defined. + + * tests/alarm.c (main): Print mmap return code using sprintrc, + do not invoke mprotect if mmap is not implemented. + +2019-07-16 Dmitry V. Levin + + tests: robustify alarm test. + Do not assume that alarm syscall always succeeds. + + * tests/alarm.c (main): Use sprintrc. + +2019-07-16 Eugene Syromyatnikov + + defs.h: add ability to pass style to printxval_index_ex macro. + So it matches its name. + + * defs.h (printxval_index_ex): Add style__ macro, pass it as the 5th + argument to the printxval_indexn_ex call. + +2019-07-16 Bharath Vedartham + + tests: extend coverage of syslog tests. + The current syslog test covers only those cases where the type parameter + is one of SYSLOG_ACTION_READ, SYSLOG_ACTION_READ_ALL, + SYSLOG_ACTION_READ_CLEAR as per codecov. + + Add test case to cover the default case. + + * tests/syslog.c (SYSLOG_ACTION_SIZE_BUFFER): New macro. + (main): Check SYSLOG_ACTION_SIZE_BUFFER decoding. + + Co-Authored-by: Eugene Syromyatnikov + +2019-07-16 Eugene Syromyatnikov + + aio: assorted iocb decoder updates. + * xlat/aio_iocb_flags.in: New file. + * defs.h (pollflags, rwf_flags): New declarations. + * configure.ac (AC_CHECK_MEMBERS): Check for aio_flags and aio_rw_flags + fields of struct iocb. + * aio.c [HAVE_STRUCT_IOCB_AIO_FLAGS]: Include "xlat/aio_iocb_flags.h". + (AIO_RW_FLAGS_FIELD): New macro definition, defined based on the + presence of HAVE_STRUCT_IOCB_AIO_RW_FLAGS macro. + (iocb_sub): Add SUB_POLL. + (tprint_lio_opcode): Change IOCB_CMD_POLL subtype to SUB_POLL. + (print_common_flags): Conditionalize on HAVE_STRUCT_IOCB_AIO_FLAGS + instead of IOCB_FLAG_RESFD. Print aio_flags using aio_iocb_flags xlat. + (print_iocb_header): Always print aio_data. Print aio_rw_flags if it + is non-zero. Print aio_reqprio based on the presence of + IOCB_FLAG_IOPRIO flag in aio_flags (use print_ioprio if it set and print + as a signed integer otherwise). + (print_iocb): Decode SUB_POLL subtype. + * tests/aio.c: Update expected output. + + Co-Authored-by: Dmitry V. Levin + +2019-07-16 Eugene Syromyatnikov + + ioprio: add print_ioprio function. + That respects xlat style settings. + + * ioprio.c (print_ioprio): New function. + * defs.h (print_ioprio): New declaration. + +2019-07-15 Dmitry V. Levin + + tests: serialize bpf-obj_get_info_by_fd based executables. + Concurrent execution of many bpf-obj_get_info_by_fd based tests may + lead to a temporary resource shortage that causes them to fail with + the following error diagnostics: + + BPF_MAP_CREATE failed: Operation not permitted + + Avoid this issue by serializing execution of all relevant tests. + + * tests/lock_file.c: New file. + * tests/Makefile.am (libtests_a_SOURCES): Add lock_file.c + * tests/tests.h (lock_file_by_dirname): New prototype. + * tests/bpf-obj_get_info_by_fd.c (main): Call lock_file_by_dirname + to obtain an exclusive lock on bpf-obj_get_info_by_fd executable. + + References: https://github.com/strace/strace/issues/74 + References: https://github.com/strace/strace/issues/105 + +2019-07-15 Dmitry V. Levin + + tests: fix build and run on alpha with fresh kernel headers. + Fix tests on alpha with Linux kernel headers containing commits + v5.1-rc1~160^2~3^2~12 and v5.1-rc1~160^2~3^2~1. + + * tests/getegid.c: Include "scno.h". + (main): Use sprintrc. + * tests/geteuid.c: Likewise. + * tests/getppid.c: Likewise. + * tests/getgid.c [__NR_getgid == __NR_getxgid]: Skip. + * tests/getuid.c [__NR_getuid == __NR_getxuid]: Skip. + * tests/getpid.c [__NR_getpid == __NR_getxpid]: Skip. + * tests/umount2.c (__NR_umount2): Remove. + (TEST_SYSCALL_NR): New macro. + (main): Use it instead of __NR_umount2. + * tests/ksysent.sed: Remove new __NR_get[gup]id aliases to traditional + __NR_getx[gup]id names (on alpha). + Prioritize __NR_umount over __NR_umount2, __NR_osf_shmat over __NR_shmat. + * NEWS: Mention these fixes. + +2019-07-15 Dmitry V. Levin + + copyright-year-gen, file-date-gen: enhance error diagnostics. + * copyright-year-gen: Prefix error message with the script name. + * file-date-gen: Likewise. Bail out in case of invalid date. + +2019-07-15 Dmitry V. Levin + + configure.ac: honor exit status of commands run by m4_esyscmd. + If the command run by m4_esyscmd exits with non-zero exit status, + autom4te shall terminate. + + * m4/st_esyscmd_s.m4: New file. + * configure.ac: Replace m4_esyscmd with st_esyscmd_s. + + References: https://github.com/strace/strace/issues/105 + +2019-07-13 Eugene Syromyatnikov + + tests: test evdev bitset decoding more thoroughly. + * tests/ioctl_evdev-success-v.test: Inject various values. + * tests/ioctl_evdev-success.test: Likewise. + * tests/ioctl_evdev-success.c (NUM_WORDS): New macro. + (struct evdev_check): Constify arg_ptr and print_arg args. + (invoke_test_syscall, test_evdev, print_input_absinfo, print_input_id, + print_mtslots): Add const qualifiers. + (print_getbit): Add const qualifiers, rewrite to expect trailing NULL + in the string array instead of leading string count. + (main): Set size for ev_more, ev_less, ev_zero arrays; replace leading + count element in ev_more_str, ev_less_str, ev_zero_str with trailing + NULL; replace ev_more_str and ev_less_str with ev_more_str_2/ev_less_str_2 + and ev_more_str_3/ev_less_str_3 that differ by presence of flags that reside + beyond first two bytes; add static and const qualifiers where possible; + add key/key_sts_8/key_str_16 values; update a to provide either ev_more_str_2 + or ev_more_str_3 and either key_str_8 or key_str_16 depending on inject_retval + value. + +2019-07-13 Eugene Syromyatnikov + + evdev: fix array size calculation in decode_bitset_ + max_nr is in bits (as it is a number of flags), result is in bytes, and + the array allocation has to be in personality words. + + There's still an open question, however, what to do on big-endian + architectures when a non-divisible-by-4 value is returned. + + * evdev.c (decode_bitset_): Declare size_bits, initialise it and use it + later instead of size; round up size by personality's word boundary. + +2019-07-13 Eugene Syromyatnikov + + evdev: avoid bit vector decoding on non-successful and 0 return codes. + Reported by Clang. + + strace/evdev.c:157:3: note: The value 0 is assigned to 'size' + # size = tcp->u_rval * 8; + # ^~~~~~~~~~~~~~~~~~~~~~ + strace/evdev.c:158:2: warning: Declared variable-length array (VLA) + has zero size + # char decoded_arg[size]; + # ^ + + * evdev.c (decode_bitset_): Bail out before decoded_arg VLA definition. + +2019-07-13 Chen Jingpiao + + filter_qualify: export trace_set set. + In preparation for seccomp-assisted syscall filtering, export + trace_set set, which will be used to derive the BPF program. + + * filter_qualify.c (trace_set): Remove static qualifier. + * number_set.h (trace_set): New declaration. + +2019-07-13 Dmitry V. Levin + + Post-release administrivia. + * NEWS: Add a header line for the next release. + * debian/changelog.in: Add a changelog entry for 5.2-1. + * strace.spec.in: Likewise. + +2019-07-12 Dmitry V. Levin + + Prepare for 5.2 release. + * NEWS: Update for 5.2 release. + + Update .mailmap. + * .mailmap: Add both email addresses of Zhibin Li to avoid duplication + in CREDITS file. + +2019-07-11 Dmitry V. Levin + + Update copyright headers. + Headers updated automatically using maint/update_copyright_years.sh + script. + +2019-07-11 Dmitry V. Levin + + maint/update_copyright_years.sh: take all commits into account. + This helps to avoid accidental shrinking of copyright years range. + + * maint/update_copyright_years.sh: Take all commits into account + to find copyright years of the earliest and the latest commit. + +2019-07-11 Dmitry V. Levin + + Fix preprocessor indentation. + Indent the C preprocessor directives to reflect their nesting + using the following script: + + $ cppi -l $(git grep -El '^[[:space:]]*#[[:space:]]*(if|ifdef|ifndef|elif|else|endif|define|pragma)[[:space:]]' |grep -v '\.sh$') |while read f; do + cppi < "$f" > "$f".cppi; mv "$f".cppi "$f" + done + +2019-07-10 Paul Chaignon + + tests: check status qualifier. + This change adds 8 test cases for -e status with unfinished, failed, + none, successful, detached, and the whole set. The test cases for + failed, successful, and the whole set use chdir(2). Threaded test cases + for unfinished and none rely on a child thread execve'ing the lead + thread. There are additional single-threaded tests for status=none and + status=unfinished. The test case for detached interrupts strace while + attached to a sleeping process. + + * tests/status.c: New file. + * tests/status-all.c: Likewise. + * tests/status-failed.c: Likewise. + * tests/status-detached.expected: Likewise. + * tests/status-none.c: Likewise. + * tests/status-none-threads.c: Likewise. + * tests/status-successful.c: Likewise. + * tests/status-unfinished-threads.c: Likewise. + * tests/status-unfinished.c: Likewise. + * tests/status-detached.test: New test. + * tests/status-none-threads.test: Likewise. + * tests/status-unfinished-threads.test: Likewise. + * tests/tests.h (test_status_chdir): New prototype. + * tests/.gitignore: Add status-all, status-failed, status-none, + status-none-threads, status-successful, status-unfinished, + and status-unfinished-threads. + * tests/gen_tests.in: Add status-all, status-failed, status-successful, + status-none, and status-unfinished. + * tests/pure_executables.list: Likewise. + * tests/Makefile.am (libtests_a_SOURCES): Add status.c. + (check_PROGRAMS): Add status-none-threads and status-unfinished-threads. + (status_none_threads_LDADD, status_unfinished_threads_LDADD): New + variables. + (MISC_TESTS): Add status-detached.test, status-none-threads.test, and + status-unfinished-threads.test. + (EXTRA_DIST): Add status-detached.expected. + + Co-Authored-by: Burkhard Kohl + Co-Authored-by: Dmitry V. Levin + +2019-07-10 Paul Chaignon + + Implement -e status=set option. + The status qualifier enables filtering based on the return status of + syscalls. -z and -Z become aliases for -e status=successful and -e + status=failed. Staged output is only enabled when at least one status + is filtered, that is, when the set is incomplete. + + * signal.c (popcount32): Move ... + * defs.h (popcount32): ... here. + (not_failing_only, failing_only): Remove. + * filter_qualify.c (status_set): New number_set variable. + (statuses): New variable for names of statuses. + (statusstr_to_uint, qualify_status): New functions. + (qual_options): Handle status qualifier. + * number_set.c (get_number_setbit, is_complete_set): New functions. + * number_set.h (is_complete_set): New prototype. + (status_t): New enumeration for statuses. + (status_set): New prototype. + * strace.1.in: Document new status qualifier. + * strace.c (not_failing_only, failing_only): Remove. + (droptcb): Handle status=detached option. + (init): Handle new status qualifier, set status_set variable on -z and -Z + options, warn on -zZ and -Zz, use is_complete_set. + (maybe_switch_tcbs): Reopen memstream after tcb switch. + (print_event_exit): Handle status=unfinished option. + * syscall.c (syscall_entering_trace): Use is_complete_set. + (syscall_exiting_trace): Use is_complete_set, handle status=unavailable + option. + * NEWS: Mention this change. + +2019-07-10 Paul Chaignon + + Stage output for -z and -Z options. + -z and -Z options print only successful and failing syscalls respectively. + However, failure of syscall is only known after syscall return. Thus, we + end up with something like this on, e.g., ENOENT: + + open("does_not_exist", O_RDONLY + + whereas the intended result is that the open(...) line is not shown at all. + + This change fixes this issue using open_memstream. When either the -z or + the -Z option is used, the output is staged in memory (using + open_memstream) until we know the syscall return status. If the + open_memstream function is not available, these new options error out. + + Document -z and -Z options as new features since they have never worked + properly before and were undocumented since commit v4.4.95~21. + + * stage_output.c: New file. + * Makefile.am (strace_SOURCES): Add it. + * configure.ac (AC_CHECK_FUNCS): Add open_memstream. + * defs.h (struct tcb): Add real_outf, memfptr, and memfloc fields for + memstream. + (strace_open_memstream, strace_close_memstream): New prototypes. + * strace.1.in: Document -z and -Z options. + * strace.c (usage): Mention -z and -Z options. + (init): Error on -z and -Z options if open_memstream if unavailable. + (maybe_switch_tcbs): Handle switch of memstream between tcbs. + (printleader): Avoid marking staged syscalls as unfinished. + * syscall.c (syscall_entering_trace): Open memstream. + (syscall_exiting_trace): Filter failed syscalls if failing_only is set, + handle raw(tcp) case. + (print_syscall_resume): Avoid marking staged syscalls as resumed. + * NEWS: Mention this change. + + Resolves: https://github.com/strace/strace/issues/49 + Resolves: https://github.com/strace/strace/issues/50 + Co-Authored-by: Burkhard Kohl + +2019-07-10 Paul Chaignon + + Add -Z option to print only failing syscalls. + Existing -z option prints only successful syscalls. + This change adds a -Z option to print only failing syscalls. + + Both options will start to behave properly with the subsequent commit. + + * strace.c (init): Handle new -Z option. + * defs.h (failing_only): New prototype. + * syscall.c (failing_only): New variable. + (syscall_exiting_trace): Ignore failed syscalls if failing_only is set. + + References: https://github.com/strace/strace/issues/50 + Co-Authored-by: Burkhard Kohl + +2019-07-10 Dmitry V. Levin + + syscall.c: rename ptrace_get_syscall_info to strace_get_syscall_info. + ... to avoid potential conflict with future glibc versions. + + * syscall.c (ptrace_get_syscall_info): Rename to + strace_get_syscall_info. All callers updated. + +2019-07-10 Dmitry V. Levin + + tests: fix build with cutting-edge glibc. + Fix the following compilation error: + + In file included from statx.c:44: + xstatx.c:47:16: error: ‘struct libc_statx’ declared inside parameter list will not be visible outside of this definition or declaration [-Werror] + + * tests/xstatx.c (struct statx): New forward declaration. + +2019-07-10 Dmitry V. Levin + + Fix misleading stray PTRACE_EVENT_EXEC diagnostics. + If current_tcp is to be switched, entering(current_tcp) is irrelevant. + + * strace.c (maybe_switch_tcbs): Update comment. + (dispatch_event) : Invoke + maybe_switch_current_tcp early, skip the check for a stray + PTRACE_EVENT_EXEC if current_tcp was switched. + * tests/maybe_switch_current_tcp.c: New file. + * tests/pure_executables.list: Add maybe_switch_current_tcp. + * tests/.gitignore: Likewise. + * tests/gen_tests.in (maybe_switch_current_tcp): New entry. + * tests/Makefile.am (maybe_switch_current_tcp_LDADD): New variable. + +2019-07-10 Dmitry V. Levin + + Refactor maybe_switch_tcbs. + Change maybe_switch_tcbs to return NULL when no switching is necessary. + Introduce maybe_switch_current_tcp as a thing wrapper around + maybe_switch_tcbs. + + * strace.c (maybe_switch_current_tcp): New function. + (dispatch_event): Use it instead of maybe_switch_tcbs, move comments + and the os_release check before maybe_switch_tcbs invocation ... + (maybe_switch_tcbs): ... here. Change return value to NULL + if no switching was performed. + +2019-07-09 Dmitry V. Levin + + tests: robustify strace -k tests against link-time optimizer. + Some distributions enable by default a link-time optimizer that + mangles stack_fcall sample executables in a way that renders them + unusable for test purposes. + + Robustify tests to defeat link-time optimizer. + + * tests/stack-fcall.h (f0, f1, f2, f3): Add second parameter. + * tests/stack-fcall.c (main): Pass main as the second parameter to f0. + * tests/stack-fcall-0.c (f0): Add second parameter f, pass the xor of it + and f0 to f1. + * tests/stack-fcall-1.c (f1): Add second parameter f, pass the xor of it + and f1 to f2. + * tests/stack-fcall-2.c (f2): Add second parameter f, pass the xor of it + and f2 to f3. + * tests/stack-fcall-3.c: Include . + (f3): Add second parameter f, invoke __NR_gettid syscall with the xor + of f and f3 as its argument. + +2019-07-09 Eugene Syromyatnikov + + ia64: optimize syscallent table. + Use shuffle_scno since all valid syscall numbers start from 1024. + + * linux/syscallent_base_nr.h: New file. + * linux/ia64/syscallent_base_nr.h: Likewise. + * linux/ia64/shuffle_scno.c: Likewise. + * Makefile.am (EXTRA_DIST): Add them. + * linux/ia64/syscallent.h [SYSCALLENT_BASE_NR] (BASE_NR): Define to 0. + * syscall.c: Include "syscallent_base_nr.h". + * clone.c [IA64] (ARG_STACKSIZE, ARG_PTID, ARG_CTID, ARG_TLS): Use + shuffle_scno. + + Co-Authored-by: Dmitry V. Levin + +2019-07-09 Eugene Syromyatnikov + + inotify: decode file descriptor returned by inotify_init. + * inotify.c (SYS_FUNC(inotify_init)): New function. + * linux/dummy.h (sys_inotify_init): Remove macro definition. + * tests/inotify_init.c: New file. + * tests/inotify_init-y.c: Likewise. + * tests/inotify_init1-y.c: Likewise. + * tests/inotify_init1.c [PRINT_PATHS]: Print inotify fd path. + * tests/inotify_init-y.test: New test. + * tests/.gitignore: Add inotify_init, inotify_init-y, inotify_init1-y. + * tests/pure_executables.list: Likewise. + * tests/gen_tests.in (inotify_init, inotify_init1-y): New tests. + * tests/Makefile.am (DECODER_TESTS): Add inotify_init-y.test. + +2019-07-08 Eugene Syromyatnikov + + rtnl_addr: decode IFA_RT_PRIORITY and IFA_TARGET_NETNSID. + * rtnl_addr.c (ifaddrmsg_nla_decoders): Decode IFA_RT_PRIORITY as u32, + decode IFA_TARGET_NETNSID as s32. + +2019-07-08 Eugene Syromyatnikov + + mips o32: print an error message when fetching of syscall arguments fails + ... instead of failing silently. + + * linux/mips/get_syscall_args.c (get_syscall_args): Print an error message + when umoven fails. + +2019-07-08 Eugene Syromyatnikov + + linux/smc_diag.h: update struct smc_diag_req definition. + In accordance with Linux commit v4.19-rc8~22^2~17^2. + + * linux/smc_diag.h (struct smc_diag_req): Use an anonymous union + for diag_fallback/diag_mode fields. + +2019-07-08 Eugene Syromyatnikov + + kvm: avoid bogus vcpu_info assignment in vcpu_register. + Also reformat code a bit to make nesting a bit clearer. + + Reported by Clang. + + * kvm.c (vcpu_register): Do not assign vcpu_alloc result to vcpu_info + as this value is not used afterwards in the function. + +2019-07-08 Eugene Syromyatnikov + + sync_file_range2: remove unneeded argn assignment. + clang complains about it: + + argn = printllval(tcp, "%lld", argn); + ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + sync_file_range2.c:43:2: note: Value stored to 'argn' is never read + + * sync_file_range2.c (SYS_FUNC(sync_file_range2)): Do not assign + printllval result to argn for the second time. + +2019-07-08 Eugene Syromyatnikov + + syscall.c: avoid infinite loop in subcalls parsing. + clang complains about it, so it might be a good reason to refactor it + into something more linear. + + * syscall.c (syscall_entering_decode): Put syscall subcall decoding + before ipc/socket subcall decoding, remove the loop. + +2019-07-05 Dmitry V. Levin + + tests: check decoding of mode argument of mbind and set_mempolicy syscalls + * tests/mbind.c: Include "scno.h". + (errstr): New variable. + (k_mbind): New function. + (out_str): New macro. + (mpol_modes): New array. + (main): Use it and k_mbind. + * tests/set_mempolicy.c: Include "scno.h", do not include , + "xlat.h" and "xlat/mpol_modes.h". + (errstr): New variable. + (k_set_mempolicy): New function. + (out_str): New macro. + (mpol_modes): New array. + (print_nodes): Use it and k_set_mempolicy. + (main): Likewise. + * tests/mbind-Xabbrev.c: New file. + * tests/mbind-Xraw.c: Likewise. + * tests/mbind-Xverbose.c: Likewise. + * tests/set_mempolicy-Xabbrev.c: Likewise. + * tests/set_mempolicy-Xraw.c: Likewise. + * tests/set_mempolicy-Xverbose.c: Likewise. + * tests/gen_tests.in (mbind-Xabbrev, mbind-Xraw, mbind-Xverbose, + set_mempolicy-Xabbrev, set_mempolicy-Xraw, set_mempolicy-Xverbose): + New entries. + * tests/pure_executables.list: Add mbind-Xabbrev, mbind-Xraw, + mbind-Xverbose, set_mempolicy-Xabbrev, set_mempolicy-Xraw, + and set_mempolicy-Xverbose. + * tests/.gitignore: Likewise. + +2019-07-05 Dmitry V. Levin + + numa: enhance decoding of mode argument of mbind and set_mempolicy syscalls + Implement decoding of memory policy mode flags introduced by Linux + kernel commits v2.6.26-rc1~990 and v2.6.26-rc1~988. + + * xlat/mpol_mode_flags.in: New file. + * numa.c: Include "xlat/mpol_mode_flags.h". + (print_mode): Print MPOL_MODE_FLAGS part of mode argument as flags. + * NEWS: Mention this. + +2019-07-05 Dmitry V. Levin + + numa: factor out printing of mode argument of mbind and set_mempolicy syscalls + This printing is going to be extended by subsequent changes. + + * numa.c (print_mode): New function. + (SYS_FUNC(mbind), SYS_FUNC(set_mempolicy)): Use it. + +2019-07-04 Gleb Fotengauer-Malinovskiy + + Update ioctl entries from linux v5.2. + * linux/32/ioctls_inc_align16.h: Update from linux v5.2-rc7 + using ioctls_gen.sh. + * linux/32/ioctls_inc_align32.h: Likewise. + * linux/32/ioctls_inc_align64.h: Likewise. + * linux/64/ioctls_inc.h: Likewise. + * linux/x32/ioctls_inc0.h: Likewise. + * linux/aarch64/ioctls_arch0.h: Likewise. + * linux/arm/ioctls_arch0.h: Likewise. + * linux/mips/ioctls_arch0.h: Likewise. + * NEWS: Mention this. + +2019-07-04 Dmitry V. Levin + + sparc, sparc64: refactor arch_set_error and arch_set_success. + * linux/sparc/set_error.c (sparc_set_o0_psr): New function. + (arch_set_error, arch_set_success): Use it. + * linux/sparc64/set_error.c (sparc64_set_o0_tstate): New function. + (arch_set_error, arch_set_success): Use it. + +2019-07-04 Dmitry V. Levin + + sparc, sparc64: fix syscall tampering when PTRACE_GET_SYSCALL_INFO is in use + When PTRACE_GET_SYSCALL_INFO is in use on sparc, psr is not loaded, + so it has to be loaded explicitly before tampering. + Likewise, when PTRACE_GET_SYSCALL_INFO is in use on sparc64, tstate + is not loaded, so it has to be loaded explicitly before tampering. + + * linux/sparc/set_error.c (arch_set_error, arch_set_success): Explicitly + call get_regs before changing psr when PTRACE_GET_SYSCALL_INFO is in use. + * linux/sparc64/set_error.c (arch_set_error, arch_set_success): + Explicitly call get_regs before changing tstate when + PTRACE_GET_SYSCALL_INFO is in use. + * NEWS: Mention this fix. + +2019-07-04 Dmitry V. Levin + + powerpc: skip poking CCR if it is unchanged. + * linux/powerpc/set_error.c (arch_set_r3_ccr): New function. + (arch_set_error, arch_set_success): Use it. + +2019-07-04 Dmitry V. Levin + + powerpc: fix syscall tampering when PTRACE_GET_SYSCALL_INFO is in use. + When PTRACE_GET_SYSCALL_INFO is in use, CCR is not loaded, so it has + to be loaded explicitly before tampering. + + * linux/powerpc/set_error.c (arch_set_error, arch_set_success): + Explicitly load CCR before changing it when PTRACE_GET_SYSCALL_INFO + is in use. + * NEWS: Mention this fix. + +2019-07-03 Dmitry V. Levin + + xlat: rename mbindflags to mbind_flags. + The former name was not consistent with others. + + * xlat/mbindflags.in: Rename to xlat/mbind_flags.in; all users updated. + +2019-07-03 Dmitry V. Levin + + xlat: update MPOL_F_* get_mempolicy flags. + * xlat/get_mempolicy_flags.in (MPOL_F_MEMS_ALLOWED): New constant + introduced by Linux kernel v2.6.24-rc1~1212. + * NEWS: Mention this. + * tests/get_mempolicy.c (main): Update expected output. + +2019-07-03 Dmitry V. Levin + + xlat: rename mempolicyflags to get_mempolicy_flags. + The former name was ambiguous. + + * xlat/mempolicyflags.in: Rename to xlat/get_mempolicy_flags.in; + all users updated. + +2019-07-03 Dmitry V. Levin + + xlat: rename policies to mpol_modes. + The former name was too vague. + + * xlat/policies.in: Rename to xlat/mpol_modes.in; all users updated. + +2019-07-03 Michal Sekletar + + xlat: add MPOL_LOCAL constant. + * xlat/policies.in (MPOL_LOCAL): New constant introduced by Linux kernel + commit v3.8-rc1~92^2~33. + + Resolves: https://github.com/strace/strace/pull/102 + +2019-07-03 Zhibin Li + + ioctl: remove redundant _IOC_NR. + * ioctl.c (evdev_decode_number): Replace _IOC_NR(nr) with nr + as the latter is defined to _IOC_NR(code). + + Co-Authored-by: Dmitry V. Levin + +2019-07-02 Dmitry V. Levin + + bpf: add support for new fields in BPF_PROG_TEST_RUN. + * bpf_attr.h (struct BPF_PROG_TEST_RUN_struct): Add ctx_size_in, + ctx_size_out, ctx_in, and ctx_out fields. + * bpf.c (BEGIN_BPF_CMD_DECODER(BPF_PROG_TEST_RUN)): Decode these fields + introduced by Linux kernel commit v5.2-rc1~133^2~193^2~6. + * tests/bpf.c (BPF_PROG_TEST_RUN_checks): Check it. + +2019-07-02 Dmitry V. Levin + + bpf: implement decoding of BPF_MAP_FREEZE command. + BPF_MAP_FREEZE command was introduced by Linux commit + v5.2-rc1~133^2~193^2~12^2~12. + + * bpf_attr.h (struct BPF_MAP_FREEZE_struct): New type. + (BPF_MAP_FREEZE_struct_size, expected_BPF_MAP_FREEZE_struct_size): New + macros. + * bpf.c (BEGIN_BPF_CMD_DECODER(BPF_MAP_FREEZE)): New bpf command + decoder. + (SYS_FUNC(bpf)) : Add BPF_CMD_ENTRY(BPF_MAP_FREEZE). + * NEWS: Mention this. + * tests/bpf.c (union bpf_attr_data): Add + BPF_ATTR_DATA_FIELD(BPF_MAP_FREEZE). + (BPF_MAP_FREEZE_checks): New checks array. + (main) : Add CHK(BPF_MAP_FREEZE). + +2019-07-01 Dmitry V. Levin + + xlat: update BPF_* constants. + * xlat/bpf_attach_type.in (BPF_CGROUP_SYSCTL): New constant introduced + by Linux kernel commit v5.2-rc1~133^2~132^2~39^2~19. + (BPF_CGROUP_UDP4_RECVMSG, BPF_CGROUP_UDP6_RECVMSG): New constants + introduced by Linux kernel commit v5.2-rc6~33^2~44^2^2~5. + * xlat/bpf_commands.in (BPF_MAP_FREEZE): New constant introduced + by Linux kernel commit v5.2-rc1~133^2~193^2~12^2~12. + * xlat/bpf_map_flags.in (BPF_F_RDONLY_PROG, BPF_F_WRONLY_PROG): New + constants introduced by Linux kernel commit + v5.2-rc1~133^2~193^2~12^2~13. + * xlat/bpf_map_types.in (BPF_MAP_TYPE_SK_STORAGE): New constant + introduced by Linux kernel commit v5.2-rc1~133^2~80^2^2~6. + * xlat/bpf_prog_types.in (BPF_PROG_TYPE_CGROUP_SYSCTL): New constant + introduced by Linux kernel commit v5.2-rc1~133^2~132^2~39^2~19. + (BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE): New constant introduced + by Linux kernel commit v5.2-rc1~133^2~80^2~1^2~4. + * NEWS: Mention this. + * tests/bpf.c (BPF_MAP_CREATE_checks, BPF_PROG_LOAD_checks, + BPF_PROG_QUERY_checks): Update. + * tests/kernel_version.c (print_bpf_attr): Update. + +2019-06-29 Dmitry V. Levin + + Implement decoding of fspick syscall. + ... introduced by Linux kernel commits v5.2-rc1~141^2~1, + v5.2-rc1~20^2~1, and v5.2-rc1~20^2. + + * fspick.c: New file. + * Makefile.am (strace_SOURCES): Add it. + * pathtrace.c (pathtrace_match_set): Add SEN_fspick. + * xlat/fspick_flags.in: New file. + * linux/syscallent-common.h [BASE_NR + 433]: Wire up fspick. + * NEWS: Mention this change. + * tests/fspick.c: New file. + * tests/fspick-P.c: Likewise. + * tests/gen_tests.in (fspick, fspick-P): New entries. + * tests/pure_executables.list: Add fspick and fspick-P. + * tests/.gitignore: Likewise. + +2019-06-29 Dmitry V. Levin + + Implement decoding of fsmount syscall. + ... introduced by Linux kernel commits v5.2-rc1~141^2~2, + v5.2-rc1~20^2~1, and v5.2-rc1~20^2. + + * fsmount.c: New file. + * Makefile.am (strace_SOURCES): Add it. + * pathtrace.c (pathtrace_match_set): Add SEN_fsmount. + * xlat/fsmount_cmds.in: New file. + * xlat/mount_attr_atime.in: Likewise. + * xlat/mount_attr_flags.in: Likewise. + * linux/syscallent-common.h [BASE_NR + 432]: Wire up fsmount. + * NEWS: Mention this change. + * tests/fsmount.c: New file. + * tests/gen_tests.in (fsmount): New entry. + * tests/pure_executables.list: Add fsmount. + * tests/.gitignore: Likewise. + +2019-06-29 Dmitry V. Levin + + Implement decoding of fsconfig syscall. + ... introduced by Linux kernel commits v5.2-rc1~141^2~3, + v5.2-rc1~20^2~1, and v5.2-rc1~20^2. + + * fsconfig.c: New file. + * Makefile.am (strace_SOURCES): Add it. + * pathtrace.c (pathtrace_match_set): Add SEN_fsconfig. + * xlat/fsconfig_cmds.in: New file. + * linux/syscallent-common.h [BASE_NR + 431]: Wire up fsconfig. + * NEWS: Mention this change. + * tests/fsconfig.c: New file. + * tests/fsconfig-P.c: Likewise. + * tests/gen_tests.in (fsconfig, fsconfig-P): New entries. + * tests/pure_executables.list: Add fsconfig and fsconfig-P. + * tests/.gitignore: Likewise. + +2019-06-29 Dmitry V. Levin + + print_dirfd: do not print trailing comma. + It was fine to print trailing comma in print_dirfd until introduction + of a syscall with the last argument being a dirfd. + Now it's time to change print_dirfd. + + * open.c (print_dirfd): Do not print comma. + (SYS_FUNC(open)): Print comma after print_dirfd() invocation. + * access.c (SYS_FUNC(faccessat)): Likewise. + * chmod.c (SYS_FUNC(fchmodat)): Likewise. + * execve.c (SYS_FUNC(execveat)): Likewise. + * fanotify.c (SYS_FUNC(fanotify_mark)): Likewise. + * fchownat.c (SYS_FUNC(fchownat)): Likewise. + * file_handle.c (SYS_FUNC(name_to_handle_at)): Likewise. + * link.c (SYS_FUNC(linkat), SYS_FUNC(unlinkat), SYS_FUNC(symlinkat)): + Likewise. + * mknod.c (SYS_FUNC(mknodat)): Likewise. + * move_mount.c (SYS_FUNC(move_mount)): Likewise. + * open_tree.c (SYS_FUNC(open_tree)): Likewise. + * readlink.c (SYS_FUNC(readlinkat)): Likewise. + * renameat.c (decode_renameat): Likewise. + * stat.c (SYS_FUNC(newfstatat)): Likewise. + * stat64.c (SYS_FUNC(fstatat64)): Likewise. + * statx.c (SYS_FUNC(statx)): Likewise. + * utimes.c (SYS_FUNC(futimesat), do_utimensat): Likewise. + +2019-06-29 Dmitry V. Levin + + Implement decoding of fsopen syscall. + ... introduced by Linux kernel commits v5.2-rc1~141^2~5, + v5.2-rc1~20^2~1, and v5.2-rc1~20^2. + + * fsopen.c: New file. + * Makefile.am (strace_SOURCES): Add it. + * pathtrace.c (pathtrace_match_set): Add SEN_fsopen. + * xlat/fsopen_flags.in: New file. + * linux/syscallent-common.h [BASE_NR + 430]: Wire up fsopen. + * NEWS: Mention this change. + * tests/fsopen.c: New file. + * tests/gen_tests.in (fsopen): New entry. + * tests/pure_executables.list: Add fsopen. + * tests/.gitignore: Likewise. + +2019-06-29 Dmitry V. Levin + + Implement decoding of move_mount syscall. + ... introduced by Linux kernel commits v5.2-rc1~141^2~8, + v5.2-rc1~20^2~1, and v5.2-rc1~20^2. + + * move_mount.c: New file. + * Makefile.am (strace_SOURCES): Add it. + * pathtrace.c (pathtrace_match_set): Add SEN_move_mount. + * xlat/move_mount_flags.in: New file. + * linux/syscallent-common.h [BASE_NR + 429]: Wire up move_mount. + * NEWS: Mention this change. + * tests/move_mount.c: New file. + * tests/move_mount-P.c: Likewise. + * tests/gen_tests.in (move_mount, move_mount-P): New entries. + * tests/pure_executables.list: Add move_mount and move_mount-P. + * tests/.gitignore: Likewise. + +2019-06-29 Dmitry V. Levin + + Implement decoding of open_tree syscall. + ... introduced by Linux kernel commits v5.2-rc1~141^2~9, + v5.2-rc1~20^2~1, and v5.2-rc1~20^2. + + * configure.ac (AC_CHECK_HEADERS): Add linux/mount.h. + * open_tree.c: New file. + * Makefile.am (strace_SOURCES): Add it. + * pathtrace.c (pathtrace_match_set): Add SEN_open_tree. + * xlat/open_tree_flags.in: New file. + * linux/syscallent-common.h [BASE_NR + 428]: Wire up open_tree. + * NEWS: Mention this change. + * tests/open_tree.c: New file. + * tests/open_tree-P.c: Likewise. + * tests/gen_tests.in (open_tree, open_tree-P): New entries. + * tests/pure_executables.list: Add open_tree and open_tree-P. + * tests/.gitignore: Likewise. + +2019-06-29 Dmitry V. Levin + + Introduce linux/syscallent-common.h and linux/syscallent-common-32.h. + These files are going to be used to define syscall entries for common + syscalls added in Linux kernel 5.1+. + + * linux/syscallent-common.h: New file. + * linux/syscallent-common-32.h: Likewise. + * Makefile.am (EXTRA_DIST): Add them. + (syscallent_names): Add syscallent-common.h and syscallent-common-32.h. + * linux/mips/.gitignore: Add syscallent-common-32-stub.h + and syscallent-common-stub.h. + * linux/mips/genstub.sh: Parametrize source directory. Change syscall + name prefix to SYSCALL_NAME_PREFIX. + * configure.ac [MIPS]: Generate stubs for linux/syscallent-common.h + and linux/syscallent-common-32.h files. + * linux/mips/syscallent-n32.h [LINUX_MIPSN32] + [BASE_NR + 403..BASE_NR + 427]: Remove, include "syscallent-common-32.h" + and "syscallent-common.h" instead. + [!LINUX_MIPSN32] (SYSCALL_NAME_PREFIX): Define. + [!LINUX_MIPSN32]: Include "syscallent-common-32-sub.h" + and "syscallent-common-stub.h". + * linux/mips/syscallent-o32.h [LINUX_MIPSO32] + [BASE_NR + 403..BASE_NR + 427]: Remove, include "syscallent-common-32.h" + and "syscallent-common.h" instead. + [!LINUX_MIPSO32] (SYSCALL_NAME_PREFIX): Define. + [!LINUX_MIPSO32]: Include "syscallent-common-32-sub.h" + * linux/32/syscallent.h [403..427]: Remove, include + "syscallent-common-32.h" and "syscallent-common.h" instead. + * linux/arm/syscallent.h: Likewise. + * linux/hppa/syscallent.h: Likewise. + * linux/i386/syscallent.h: Likewise. + * linux/m68k/syscallent.h: Likewise. + * linux/microblaze/syscallent.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. + * linux/alpha/syscallent.h (BASE_NR): Define. + [534..537]: Remove, include "syscallent-common.h" instead. + * linux/ia64/syscallent.h [BASE_NR + 424..BASE_NR + 427]: Remove, + include "syscallent-common.h" instead. + * linux/mips/syscallent-n64.h [LINUX_MIPSN64]: Likewise. + [!LINUX_MIPSN64] (SYSCALL_NAME_PREFIX): Define. + [!LINUX_MIPSN64]: Include "syscallent-common-stub.h". + * linux/64/syscallent.h [424..427]: Remove, include + "syscallent-common.h" instead. + * 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. + +2019-06-29 Dmitry V. Levin + + ia64: introduce BASE_NR to syscallent initializers. + * linux/ia64/syscallent.h (BASE_NR): New macro. Use it instead of 1024. + +2019-06-29 Dmitry V. Levin + + mips: refactor syscallent initializers. + Change format of designated initializers to BASE_NR + offset. + + * linux/mips/syscallent-n32.h (BASE_NR): New macro. Use it in designated + initializers. + * linux/mips/syscallent-n64.h: Likewise. + * linux/mips/syscallent-o32.h: Likewise. + +2019-06-29 Dmitry V. Levin + + xlat: update AT_* constants. + * xlat/at_flags.in (AT_RECURSIVE): New constant introduced + by Linux kernel commit v5.2-rc1~141^2~9. + * NEWS: Mention this. + * tests/linkat.c: Update expected output. + * tests/unlinkat.c: Update expected output. + * tests/utimensat.c: Update expected output. + * tests/xstatx.c: Update expected output. + +2019-06-28 Paul Chaignon + + travis: Move fastest test configuration first. + I use Travis CI to check each patch before sending my patchsets. Most + failures are simple and make all test configurations fail. However, since + Travis CI runs test configurations in order and given that the first three + configurations are the slowest ones, it takes about twenty minutes to see + the failure. Moving the fastest test configuration first would allow to + fail earlier. It would become about 3x faster to fail in case of simple + mistakes. + + * .travis.yml (CC=gcc, STACKTRACE=no): Move to first position. + +2019-06-22 Dmitry V. Levin + + get_os_release: tolerate malformed kernel release strings. + * strace.c (get_os_release): Handle malformed kernel release strings + gracefully. + + Resolves: https://github.com/strace/strace/issues/101 + +2019-06-20 Dmitry V. Levin + + Implement decoding of CLONE_PIDFD flag of clone syscall. + * clone.c (SYS_FUNC(clone)): Print pidfd returned by the kernel + when CLONE_PIDFD flag is set. + * tests/clone-flags.c (main): Check it. + +2019-06-20 Dmitry V. Levin + + Introduce printnum_fd. + This is going to be used to implement decoding of CLONE_PIDFD flag + of clone syscall. + + * defs.h (printnum_fd): New prototype. + * util.c (printnum_fd): New function. + +2019-06-20 Dmitry V. Levin + + Enhance decoding of CLONE_PARENT_SETTID flag of clone syscall. + * clone.c (SYS_FUNC(clone)): Print the parent_tid returned by the kernel + instead of its address when CLONE_PARENT_SETTID flag is set. + * tests/clone-flags.c (main): Check it. + + clone: fix printing of zero clone flags. + * clone.c (SYS_FUNC(clone)): Fix printing of zero clone flags. + * tests/clone-flags.c (main): Check it. + + clone: print read-only arguments on entering syscall. + * clone.c (SYS_FUNC(clone)): Print child_stack, stack_size, and flags + arguments on entering syscall. + * NEWS: Mention this change. + + tests: check decoding of clone flags. + * tests/clone-flags.c: New file. + * tests/pure_executables.list: Add clone-flags. + * tests/.gitignore: Likewise. + * tests/clone-flags.test: New test. + * tests/Makefile.am (DECODER_TESTS): Add clone-flags.test. + +2019-06-18 Dmitry V. Levin + + clone: cleanup. + * clone.c (print_tls_arg): Use addr argument. + +2019-06-18 Dmitry V. Levin + + xlat: update CLONE_* constants. + * xlat/clone_flags.in (CLONE_IDLETASK): Remove unused flag conflicting + with CLONE_PIDFD. + + Fixes: v5.1-8-gb43f44bca "xlat: update CLONE_* constants" + +2019-06-14 Paul Chaignon + + Use debug_msg macro where possible. + * linux/alpha/get_scno.c (arch_get_scno): Use debug_msg instead of + open-coding it. + * linux/mips/get_scno.c: Likewise. + * linux/sh/get_scno.c: Likewise. + +2019-05-27 Dmitry V. Levin + + xlat: update ETH_* constants. + * xlat/ethernet_protocols.in (ETH_P_DSA_8021Q): New constant introduced + by Linux kernel commit v5.2-rc1~133^2~58^2~7. + * NEWS: Mention this. + + xlat: update KBD_* constants. + * xlat/evdev_keycode.in (KEY_KBD_LAYOUT_NEXT): New constant + introduced by Linux kernel commit v5.2-rc1~79^2^2~7. + * NEWS: Mention this. + + xlat: update TIPC_* constants. + * xlat/sock_tipc_options.in (TIPC_SOCK_RECVQ_USED): New constant + introduced by Linux kernel commit v5.2-rc1~133^2~143. + * NEWS: Mention this. + + xlat: update KVM_CAP_* constants. + * xlat/clone_flags.in (KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2): New + constant introduced by Linux kernel commit v5.2-rc1~17^2~11. + (KVM_CAP_PPC_IRQ_XIVE): New constant introduced by Linux kernel commits + v5.2-rc1~17^2~2^2~19 and v5.2-rc1~17^2~2. + (KVM_CAP_ARM_SVE): New constant introduced by Linux kernel commit + v5.2-rc1~17^2~1^2~31. + (KVM_CAP_ARM_PTRAUTH_ADDRESS, KVM_CAP_ARM_PTRAUTH_GENERIC): New + constants introduced by Linux kernel commits v5.2-rc1~17^2~1^2~10 + and v5.2-rc1~17^2~1. + * NEWS: Mention this. + + xlat: update CLONE_* constants. + * xlat/clone_flags.in (CLONE_PIDFD): New constant introduced by Linux + kernel commit v5.2-rc1~158^2~2. + * NEWS: Mention this. + +2019-05-26 Dmitry V. Levin + + xlat: update V4L2_PIX_* constants. + * xlat/v4l2_pix_fmts.in (V4L2_PIX_FMT_FWHT_STATELESS): New constant + introduced by Linux kernel commit v5.2-rc1~33^2~132. + (V4L2_PIX_FMT_BGRA32, V4L2_PIX_FMT_BGRX32, V4L2_PIX_FMT_RGBA32, + V4L2_PIX_FMT_RGBX32): New constants introduced by Linux kernel commit + v5.2-rc1~33^2~25. + (V4L2_PIX_FMT_RGBA444, V4L2_PIX_FMT_RGBX444, V4L2_PIX_FMT_ABGR444, + V4L2_PIX_FMT_XBGR444, V4L2_PIX_FMT_XBGR444, V4L2_PIX_FMT_BGRX444): New + constants introduced by Linux kernel commit v5.2-rc1~33^2~24. + (V4L2_PIX_FMT_RGBA555, V4L2_PIX_FMT_RGBX555, V4L2_PIX_FMT_ABGR555, + V4L2_PIX_FMT_XBGR555, V4L2_PIX_FMT_BGRA555, V4L2_PIX_FMT_BGRX555): New + constants introduced by Linux kernel commit v5.2-rc1~33^2~23. + + xlat: fix v4l2_pix_fmts sorting order. + * xlat/v4l2_pix_fmts.in: Fix sorting order. + + xlat: update V4L2_CID_* constants. + * xlat/v4l2_control_ids.in (V4L2_CID_FWHT_I_FRAME_QP, + V4L2_CID_FWHT_P_FRAME_QP): New constants introduced by Linux kernel + commit v5.2-rc1~33^2~132. + (V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP, + V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP, + V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP, + V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP): New constants introduced by + Linux kernel commit v5.2-rc1~33^2~95. + * NEWS: Mention this. + +2019-05-25 Dmitry V. Levin + + xlat: update AUDIT_* constants. + * xlat/nl_audit_types.in (AUDIT_FANOTIFY): New constant introduced by + Linux kernel commit v4.15-rc1~130^2^2~11. + (AUDIT_TIME_INJOFFSET): New constant introduced by Linux kernel commit + v5.2-rc1~144^2~2. + (AUDIT_TIME_ADJNTPVAL): New constant introduced by Linux kernel commit + v5.2-rc1~144^2~1. + +2019-05-24 Dmitry V. Levin + + xlat: update AUDIT_ARCH_* constants. + * xlat/audit_arch.in (AUDIT_ARCH_ARCOMPACT, AUDIT_ARCH_ARCOMPACTBE, + AUDIT_ARCH_ARCV2, AUDIT_ARCH_ARCV2BE): New constants introduced by Linux + kernel commit v5.2-rc1~144^2~16. + (AUDIT_ARCH_C6X, AUDIT_ARCH_C6XBE): New constants introduced by Linux + kernel commit v5.2-rc1~144^2~15. + (AUDIT_ARCH_CSKY): New constant introduced by Linux kernel commit + v5.0-rc1~37^2~15. + (AUDIT_ARCH_H8300): New constant introduced by Linux kernel commit + v5.2-rc1~144^2~14. + (AUDIT_ARCH_HEXAGON): New constant introduced by Linux kernel commit + v5.2-rc1~144^2~12. + (AUDIT_ARCH_NDS32, AUDIT_ARCH_NDS32BE): New constants introduced by + Linux kernel commit v5.2-rc1~144^2~9. + (AUDIT_ARCH_NIOS2): New constant introduced by Linux kernel commit + v5.2-rc1~144^2~8. + (AUDIT_ARCH_RISCV32, AUDIT_ARCH_RISCV64): New constants introduced by + Linux kernel commit v5.0-rc2~23^2~1^2~5. + (AUDIT_ARCH_TILEGX, AUDIT_ARCH_TILEGX32, AUDIT_ARCH_TILEPRO): New + constants introduced by Linux kernel commit v4.3-rc1~83^2~3. + (AUDIT_ARCH_UNICORE): New constant introduced by Linux kernel commit + v5.2-rc1~144^2~6. + (AUDIT_ARCH_XTENSA): New constant introduced by Linux kernel commit + v5.0-rc1~92^2~8. + * NEWS: Mention this. + +2019-05-23 Masatake YAMATO + + tests: print the reason of failure in ioctl_kvm_run tests. + * tests/ioctl_kvm_run_common.c (run_kvm): Print + hardware_entry_failure_reason field of kvm_run + when KVM_RUN is failed with KVM_EXIT_FAIL_ENTRY. + +2019-05-23 Dmitry V. Levin + + Post-release administrivia. + * NEWS: Add a header line for the next release. + * debian/changelog.in: Add a changelog entry for 5.1-1. + * strace.spec.in: Likewise. + 2019-05-22 Dmitry V. Levin Prepare for 5.1 release. diff --git a/INSTALL b/INSTALL index 0d22512b..c48f22c4 100644 --- a/INSTALL +++ b/INSTALL @@ -125,7 +125,7 @@ make install 6.1. Distribution tarball -./make-dist +maint/make-dist Requires git diff --git a/Makefile.am b/Makefile.am index a8ace321..723460f2 100644 --- a/Makefile.am +++ b/Makefile.am @@ -4,7 +4,7 @@ # Copyright (c) 2006-2016 Dmitry V. Levin # Copyright (c) 2008-2015 Mike Frysinger # Copyright (c) 2015 Elvira Khabirova -# Copyright (c) 2002-2019 The strace developers. +# Copyright (c) 2002-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: LGPL-2.1-or-later @@ -27,7 +27,7 @@ ARCH = @arch@ READELF = @READELF@ -ACLOCAL_AMFLAGS = -I m4 +ACLOCAL_AMFLAGS = -I m4 -I types -I xlat AM_CFLAGS = $(WARN_CFLAGS) AM_CPPFLAGS = -I$(builddir)/$(OS)/$(ARCH) \ -I$(srcdir)/$(OS)/$(ARCH) \ @@ -39,35 +39,19 @@ AM_CPPFLAGS = -I$(builddir)/$(OS)/$(ARCH) \ AM_CFLAGS_FOR_BUILD = $(WARN_CFLAGS_FOR_BUILD) AM_CPPFLAGS_FOR_BUILD = $(AM_CPPFLAGS) +include types/Makemodule.am include xlat/Makemodule.am strace_CPPFLAGS = $(AM_CPPFLAGS) strace_CFLAGS = $(AM_CFLAGS) strace_LDFLAGS = strace_LDADD = libstrace.a $(clock_LIBS) $(timer_LIBS) -noinst_LIBRARIES = libstrace.a +strace_SOURCES = strace.c +noinst_LIBRARIES = libstrace.a libstrace_a_CPPFLAGS = $(strace_CPPFLAGS) libstrace_a_CFLAGS = $(strace_CFLAGS) libstrace_a_SOURCES = \ - fetch_indirect_syscall_args.c \ - fstatfs.c \ - fstatfs64.c \ - getpagesize.c \ - ipc.c \ - mmap_cache.c \ - mmap_cache.h \ - sigreturn.c \ - socketcall.c \ - statfs.c \ - statfs64.c \ - sync_file_range.c \ - sync_file_range2.c \ - upeek.c \ - upoke.c \ - # end of libstrace_a_SOURCES - -strace_SOURCES = \ access.c \ affinity.c \ aio.c \ @@ -92,6 +76,7 @@ strace_SOURCES = \ chdir.c \ chmod.c \ clone.c \ + close_range.c \ copy_file_range.c \ count.c \ defs.h \ @@ -100,7 +85,9 @@ strace_SOURCES = \ desc.c \ dirent.c \ dirent64.c \ + dirent_types.c \ dm.c \ + dup.c \ dyxlat.c \ empty.h \ epoll.c \ @@ -117,6 +104,7 @@ strace_SOURCES = \ fchownat.c \ fcntl.c \ fetch_bpf_fprog.c \ + fetch_indirect_syscall_args.c \ fetch_struct_flock.c \ fetch_struct_keyctl_kdf_params.c \ fetch_struct_mmsghdr.c \ @@ -129,9 +117,17 @@ strace_SOURCES = \ file_ioctl.c \ filter.h \ filter_qualify.c \ + filter_seccomp.c \ + filter_seccomp.h \ flock.c \ flock.h \ fs_x_ioctl.c \ + fsconfig.c \ + fsmount.c \ + fsopen.c \ + fspick.c \ + fstatfs.c \ + fstatfs64.c \ futex.c \ gcc_compat.h \ get_personality.c \ @@ -139,6 +135,8 @@ strace_SOURCES = \ get_robust_list.c \ getcpu.c \ getcwd.c \ + getpagesize.c \ + getpid.c \ getrandom.c \ hdio.c \ hostname.c \ @@ -150,17 +148,22 @@ strace_SOURCES = \ ioperm.c \ iopl.c \ ioprio.c \ + ipc.c \ ipc_defs.h \ ipc_msg.c \ ipc_msgctl.c \ ipc_sem.c \ + ipc_semctl.c \ ipc_shm.c \ ipc_shmctl.c \ kcmp.c \ + kernel_dirent.h \ + kernel_rusage.h \ kernel_timespec.h \ kernel_timeval.h \ kernel_timex.h \ kernel_types.h \ + kernel_v4l2_types.h \ kexec.c \ keyctl.c \ keyctl_kdf_params.h \ @@ -182,10 +185,13 @@ strace_SOURCES = \ membarrier.c \ memfd_create.c \ mknod.c \ + mmap_cache.c \ + mmap_cache.h \ mmap_notify.c \ mmap_notify.h \ mmsghdr.c \ mount.c \ + move_mount.c \ mpers_type.h \ mq.c \ msghdr.c \ @@ -221,12 +227,16 @@ strace_SOURCES = \ number_set.h \ oldstat.c \ open.c \ + open_tree.c \ or1k_atomic.c \ pathtrace.c \ perf.c \ perf_event_struct.h \ perf_ioctl.c \ personality.c \ + pidfd_getfd.c \ + pidfd_open.c \ + pidns.c \ pkeys.c \ poll.c \ prctl.c \ @@ -244,8 +254,8 @@ strace_SOURCES = \ print_sigevent.c \ print_statfs.c \ print_struct_stat.c \ + print_syscall_number.c \ print_time.c \ - print_timespec.c \ print_timespec.h \ print_timespec32.c \ print_timespec64.c \ @@ -304,23 +314,29 @@ strace_SOURCES = \ sigevent.h \ signal.c \ signalfd.c \ + sigreturn.c \ sock.c \ sockaddr.c \ + socketcall.c \ socketutils.c \ sparc.c \ sram_alloc.c \ + stage_output.c \ stat.c \ stat.h \ stat64.c \ statfs.c \ + statfs.c \ statfs.h \ + statfs64.c \ static_assert.h \ statx.c \ statx.h \ - strace.c \ string_to_uint.c \ string_to_uint.h \ swapon.c \ + sync_file_range.c \ + sync_file_range2.c \ syscall.c \ sysctl.c \ sysent.h \ @@ -329,10 +345,13 @@ strace_SOURCES = \ sysinfo.c \ syslog.c \ sysmips.c \ + tee.c \ term.c \ time.c \ times.c \ trace_event.h \ + trie.c \ + trie.h \ truncate.c \ ubi.c \ ucopy.c \ @@ -341,6 +360,8 @@ strace_SOURCES = \ umask.c \ umount.c \ uname.c \ + upeek.c \ + upoke.c \ userfaultfd.c \ ustat.c \ util.c \ @@ -349,29 +370,33 @@ strace_SOURCES = \ v4l2.c \ wait.c \ wait.h \ + watchdog_ioctl.c \ xattr.c \ xfs_quota_stat.h \ + xgetdents.c \ + xgetdents.h \ xlat.c \ xlat.h \ xmalloc.c \ xmalloc.h \ xstring.h \ + $(TYPES_HEADER_FILES) \ $(strace_SOURCES_check) \ - # end of strace_SOURCES + # end of libstrace_a_SOURCES -strace_SOURCES_check = bpf_attr_check.c +strace_SOURCES_check = bpf_attr_check.c $(TYPES_CHECK_FILES) if ENABLE_STACKTRACE -strace_SOURCES += unwind.c unwind.h +libstrace_a_SOURCES += unwind.c unwind.h if USE_LIBDW -strace_SOURCES += unwind-libdw.c +libstrace_a_SOURCES += unwind-libdw.c strace_CPPFLAGS += $(libdw_CPPFLAGS) strace_CFLAGS += $(libdw_CFLAGS) strace_LDFLAGS += $(libdw_LDFLAGS) strace_LDADD += $(libdw_LIBS) endif if USE_LIBUNWIND -strace_SOURCES += unwind-libunwind.c +libstrace_a_SOURCES += unwind-libunwind.c strace_CPPFLAGS += $(libunwind_CPPFLAGS) strace_LDFLAGS += $(libunwind_LDFLAGS) strace_LDADD += $(libunwind_LIBS) @@ -387,7 +412,7 @@ endif CODE_COVERAGE_BRANCH_COVERAGE = 1 CODE_COVERAGE_GENHTML_OPTIONS = $(CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT) \ --prefix $(shell cd $(abs_top_srcdir)/.. && pwd || echo .) -CODE_COVERAGE_IGNORE_PATTERN = '/usr/include/*' +CODE_COVERAGE_IGNORE_PATTERN = '/usr/include/*' '*/tests/*' '*/tests-m32/*' '*/tests-mx32/*' strace_CPPFLAGS += $(CODE_COVERAGE_CPPFLAGS) strace_CFLAGS += $(CODE_COVERAGE_CFLAGS) strace_LDADD += $(CODE_COVERAGE_LIBS) @@ -405,6 +430,7 @@ EXTRA_DIST = \ LGPL-2.1-or-later \ README-configure \ README-linux-ptrace \ + copyright-year-gen \ debian/changelog \ debian/compat \ debian/control \ @@ -419,14 +445,17 @@ EXTRA_DIST = \ debian/strace64.install \ debian/strace64.manpages \ debian/watch \ + file-date-gen \ gen_bpf_attr_check.sh \ generate_sen.sh \ + git-version-gen \ ioctl_iocdef.c \ ioctlsort.c \ linux/32/ioctls_inc.h \ linux/32/ioctls_inc_align16.h \ linux/32/ioctls_inc_align32.h \ linux/32/ioctls_inc_align64.h \ + linux/32/syscallent-time32.h \ linux/32/syscallent.h \ linux/64/ioctls_inc.h \ linux/64/syscallent.h \ @@ -541,7 +570,6 @@ EXTRA_DIST = \ linux/hppa/get_error.c \ linux/hppa/get_scno.c \ linux/hppa/get_syscall_args.c \ - linux/hppa/get_syscall_result.c \ linux/hppa/ioctls_arch0.h \ linux/hppa/ioctls_inc0.h \ linux/hppa/raw_syscall.h \ @@ -582,7 +610,9 @@ EXTRA_DIST = \ linux/ia64/rt_sigframe.h \ linux/ia64/set_error.c \ linux/ia64/set_scno.c \ + linux/ia64/shuffle_scno.c \ linux/ia64/syscallent.h \ + linux/ia64/syscallent_base_nr.h \ linux/ia64/userent.h \ linux/inet_diag.h \ linux/m68k/arch_defs_.h \ @@ -711,27 +741,38 @@ EXTRA_DIST = \ linux/powerpc64/syscallent.h \ linux/powerpc64/syscallent1.h \ linux/powerpc64/userent.h \ + linux/powerpc64le/arch_defs_.h \ + linux/powerpc64le/arch_regs.c \ + linux/powerpc64le/arch_rt_sigframe.c \ + linux/powerpc64le/errnoent.h \ + linux/powerpc64le/get_error.c \ + linux/powerpc64le/get_scno.c \ + linux/powerpc64le/get_syscall_args.c \ + linux/powerpc64le/ioctls_arch0.h \ + linux/powerpc64le/ioctls_inc0.h \ + linux/powerpc64le/raw_syscall.h \ + linux/powerpc64le/rt_sigframe.h \ + linux/powerpc64le/set_error.c \ + linux/powerpc64le/set_scno.c \ + linux/powerpc64le/syscallent.h \ + linux/powerpc64le/userent.h \ linux/ptrace_pokeuser.c \ linux/raw_syscall.h \ - linux/riscv/arch_defs_.h \ - linux/riscv/arch_get_personality.c \ - linux/riscv/arch_regs.c \ - linux/riscv/get_error.c \ - linux/riscv/get_scno.c \ - linux/riscv/get_syscall_args.c \ - linux/riscv/ioctls_arch0.h \ - linux/riscv/ioctls_arch1.h \ - linux/riscv/ioctls_inc0.h \ - linux/riscv/ioctls_inc1.h \ - linux/riscv/raw_syscall.h \ - linux/riscv/set_error.c \ - linux/riscv/set_scno.c \ - linux/riscv/syscallent.h \ - linux/riscv/syscallent1.h \ + linux/riscv64/arch_regs.c \ + linux/riscv64/get_error.c \ + linux/riscv64/get_scno.c \ + linux/riscv64/get_syscall_args.c \ + linux/riscv64/ioctls_arch0.h \ + linux/riscv64/ioctls_inc0.h \ + linux/riscv64/raw_syscall.h \ + linux/riscv64/set_error.c \ + linux/riscv64/set_scno.c \ + linux/riscv64/syscallent.h \ linux/rt_sigframe.h \ linux/s390/arch_defs_.h \ linux/s390/arch_regs.c \ linux/s390/arch_sigreturn.c \ + linux/s390/check_scno.c \ linux/s390/get_error.c \ linux/s390/get_scno.c \ linux/s390/get_syscall_args.c \ @@ -749,6 +790,7 @@ EXTRA_DIST = \ linux/s390x/arch_get_personality.c \ linux/s390x/arch_regs.c \ linux/s390x/arch_sigreturn.c \ + linux/s390x/check_scno.c \ linux/s390x/get_error.c \ linux/s390x/get_scno.c \ linux/s390x/get_syscall_args.c \ @@ -769,7 +811,6 @@ EXTRA_DIST = \ linux/sh/get_error.c \ linux/sh/get_scno.c \ linux/sh/get_syscall_args.c \ - linux/sh/get_syscall_result.c \ linux/sh/ioctls_arch0.h \ linux/sh/ioctls_inc0.h \ linux/sh/raw_syscall.h \ @@ -780,11 +821,9 @@ EXTRA_DIST = \ linux/sh/userent0.h \ linux/sh64/arch_defs_.h \ linux/sh64/arch_regs.c \ - linux/sh64/arch_regs.h \ linux/sh64/get_error.c \ linux/sh64/get_scno.c \ linux/sh64/get_syscall_args.c \ - linux/sh64/get_syscall_result.c \ linux/sh64/ioctls_arch0.h \ linux/sh64/ioctls_inc0.h \ linux/sh64/raw_syscall.h \ @@ -841,6 +880,9 @@ EXTRA_DIST = \ linux/subcall32.h \ linux/subcall64.h \ linux/syscall.h \ + linux/syscallent-common-32.h \ + linux/syscallent-common.h \ + linux/syscallent_base_nr.h \ linux/tile/arch_defs_.h \ linux/tile/arch_get_personality.c \ linux/tile/arch_regs.c \ @@ -917,7 +959,6 @@ EXTRA_DIST = \ linux/xtensa/get_error.c \ linux/xtensa/get_scno.c \ linux/xtensa/get_syscall_args.c \ - linux/xtensa/get_syscall_result.c \ linux/xtensa/ioctls_arch0.h \ linux/xtensa/ioctls_inc0.h \ linux/xtensa/raw_syscall.h \ @@ -933,6 +974,8 @@ EXTRA_DIST = \ strace-graph \ strace-log-merge \ strace.spec \ + types/find_last_type_fields.awk \ + types/gen.sh \ $(XLAT_INPUT_FILES) \ $(XLAT_HEADER_FILES) \ xlat/gen.sh \ @@ -963,6 +1006,7 @@ sys_func.h: $(patsubst %,$(srcdir)/%,$(sys_func_h_sources)) done | sort -u > $@ syscallent_names = subcall.h syscallent.h syscallent1.h \ + syscallent-common.h syscallent-common-32.h \ syscallent-n32.h syscallent-n64.h syscallent-o32.h syscallent_patterns = $(patsubst %,\%/%,$(syscallent_names)) syscallent_files = $(filter $(syscallent_patterns),$(EXTRA_DIST)) @@ -1052,8 +1096,8 @@ mpers_NAME = mpers_PREFIX = $(mpers_NAME)_ mpers_DEFS = $(DEFS) mpers_INCLUDES = $(DEFAULT_INCLUDES) $(INCLUDES) -mpers_CPPFLAGS = $(strace_CPPFLAGS) $(CPPFLAGS) -mpers_sh_opts = $(mpers_DEFS) $(mpers_INCLUDES) $(mpers_CPPFLAGS) +mpers_CPPFLAGS = $(CPPFLAGS) +mpers_sh_opts = $(mpers_DEFS) $(mpers_INCLUDES) $(strace_CPPFLAGS) $(mpers_CPPFLAGS) libmpers_CPPFLAGS = $(strace_CPPFLAGS) -DIN_MPERS libmpers_CFLAGS = $(strace_CFLAGS) @@ -1063,11 +1107,11 @@ mpers-m%.stamp: $(srcdir_mpers_source_files) | printers.h for f in $^; do \ D="$(D)" \ READELF="$(READELF)" \ - CC="$(CC)" \ + CC="$(mpers_CC)" \ CFLAGS="$(mpers_sh_opts) -DMPERS_IS_$(mpers_NAME)" \ CPP="$(CPP)" \ CPPFLAGS="$(mpers_sh_opts) -DIN_MPERS -DMPERS_IS_$(mpers_NAME)" \ - $(srcdir)/mpers.sh $(mpers_NAME) $(mpers_CC_FLAGS) $$f || exit; \ + $(srcdir)/mpers.sh $(mpers_NAME) "$(mpers_CC_FLAGS)" $$f || exit; \ done > $@ @@ -1138,7 +1182,9 @@ BUILT_SOURCES += $(mpers_m32_targets) CLEANFILES += $(mpers_m32_targets) $(mpers_m32_targets): mpers_NAME = m32 -$(mpers_m32_targets): mpers_CC_FLAGS = @cc_flags_m32@ +$(mpers_m32_targets): mpers_CC_FLAGS = @CFLAGS_FOR_M32@ @cc_flags_m32@ +$(mpers_m32_targets): mpers_CPPFLAGS = @CPPFLAGS_FOR_M32@ +$(mpers_m32_targets): mpers_CC = @CC_FOR_M32@ endif # HAVE_M32_MPERS @@ -1155,7 +1201,9 @@ BUILT_SOURCES += $(mpers_mx32_targets) CLEANFILES += $(mpers_mx32_targets) $(mpers_mx32_targets): mpers_NAME = mx32 -$(mpers_mx32_targets): mpers_CC_FLAGS = @cc_flags_mx32@ +$(mpers_mx32_targets): mpers_CC_FLAGS = @CFLAGS_FOR_MX32@ @cc_flags_mx32@ +$(mpers_mx32_targets): mpers_CPPFLAGS = @CPPFLAGS_FOR_MX32@ +$(mpers_mx32_targets): mpers_CC = @CC_FOR_MX32@ endif # HAVE_MX32_MPERS diff --git a/Makefile.in b/Makefile.in index 6485a588..b0ec9f68 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. +# Makefile.in generated by automake 1.16.2 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2018 Free Software Foundation, Inc. +# Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -20,7 +20,7 @@ # Copyright (c) 2006-2016 Dmitry V. Levin # Copyright (c) 2008-2015 Mike Frysinger # Copyright (c) 2015 Elvira Khabirova -# Copyright (c) 2002-2019 The strace developers. +# Copyright (c) 2002-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: LGPL-2.1-or-later @@ -132,11 +132,54 @@ bin_PROGRAMS = strace$(EXEEXT) @HAVE_MX32_MPERS_TRUE@am__append_21 = $(mpers_mx32_targets) subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ax_code_coverage.m4 \ +am__aclocal_m4_deps = $(top_srcdir)/xlat/btrfs_compress_types.m4 \ + $(top_srcdir)/xlat/close_range_flags.m4 \ + $(top_srcdir)/xlat/loop_flags_options.m4 \ + $(top_srcdir)/xlat/rtnl_ifla_xdp_attached_mode.m4 \ + $(top_srcdir)/xlat/rtnl_ifla_xdp_attrs.m4 \ + $(top_srcdir)/xlat/rtnl_link_attrs.m4 \ + $(top_srcdir)/xlat/rtnl_tc_action_attrs.m4 \ + $(top_srcdir)/xlat/rtnl_tca_stab_attrs.m4 \ + $(top_srcdir)/xlat/rtnl_tca_stats_attrs.m4 \ + $(top_srcdir)/xlat/st_check_enums.m4 \ + $(top_srcdir)/xlat/sysctl_kern.m4 \ + $(top_srcdir)/xlat/sysctl_net.m4 \ + $(top_srcdir)/xlat/sysctl_net_core.m4 \ + $(top_srcdir)/xlat/sysctl_net_ipv4.m4 \ + $(top_srcdir)/xlat/sysctl_net_ipv4_conf.m4 \ + $(top_srcdir)/xlat/sysctl_net_ipv4_route.m4 \ + $(top_srcdir)/xlat/sysctl_net_ipv6.m4 \ + $(top_srcdir)/xlat/sysctl_net_ipv6_route.m4 \ + $(top_srcdir)/xlat/sysctl_net_unix.m4 \ + $(top_srcdir)/xlat/sysctl_root.m4 \ + $(top_srcdir)/xlat/sysctl_vm.m4 \ + $(top_srcdir)/xlat/v4l2_buf_types.m4 \ + $(top_srcdir)/xlat/v4l2_colorspaces.m4 \ + $(top_srcdir)/xlat/v4l2_control_types.m4 \ + $(top_srcdir)/xlat/v4l2_fields.m4 \ + $(top_srcdir)/xlat/v4l2_framesize_types.m4 \ + $(top_srcdir)/xlat/v4l2_memories.m4 \ + $(top_srcdir)/xlat/v4l2_tuner_types.m4 \ + $(top_srcdir)/xlat/waitid_types.m4 \ + $(top_srcdir)/types/check-btrfs.m4 \ + $(top_srcdir)/types/check-cryptouser.m4 \ + $(top_srcdir)/types/check-evdev.m4 \ + $(top_srcdir)/types/check-io_uring.m4 \ + $(top_srcdir)/types/check-loop.m4 \ + $(top_srcdir)/types/check-openat2.m4 \ + $(top_srcdir)/types/check-rtnl_link.m4 \ + $(top_srcdir)/types/check-rtnl_mdb.m4 \ + $(top_srcdir)/types/check-rtnl_neightbl.m4 \ + $(top_srcdir)/types/check-rtnl_route.m4 \ + $(top_srcdir)/types/check-tee.m4 \ + $(top_srcdir)/types/check-v4l2.m4 \ + $(top_srcdir)/types/st_check_types.m4 \ + $(top_srcdir)/m4/ax_code_coverage.m4 \ $(top_srcdir)/m4/ax_prog_cc_for_build.m4 \ $(top_srcdir)/m4/ax_valgrind_check.m4 \ $(top_srcdir)/m4/bpf_attr.m4 $(top_srcdir)/m4/mpers.m4 \ - $(top_srcdir)/m4/st_demangle.m4 $(top_srcdir)/m4/st_libdw.m4 \ + $(top_srcdir)/m4/st_demangle.m4 \ + $(top_srcdir)/m4/st_esyscmd_s.m4 $(top_srcdir)/m4/st_libdw.m4 \ $(top_srcdir)/m4/st_libunwind.m4 \ $(top_srcdir)/m4/st_save_restore_var.m4 \ $(top_srcdir)/m4/st_stacktrace.m4 \ @@ -157,7 +200,6 @@ am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(man1dir)" PROGRAMS = $(bin_PROGRAMS) LIBRARIES = $(noinst_LIBRARIES) -AR = ar ARFLAGS = cru AM_V_AR = $(am__v_AR_@AM_V@) am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) @@ -170,12 +212,13 @@ am__libmpers_m32_a_SOURCES_DIST = block.c btrfs.c dirent.c \ fetch_struct_keyctl_kdf_params.c fetch_struct_mmsghdr.c \ fetch_struct_msghdr.c fetch_struct_stat.c \ fetch_struct_stat64.c fetch_struct_statfs.c \ - fetch_struct_xfs_quotastat.c hdio.c ipc_msgctl.c ipc_shmctl.c \ - loop.c mtd.c perf_ioctl.c print_aio_sigset.c print_group_req.c \ - print_mq_attr.c print_msgbuf.c print_sg_req_info.c \ - print_sigevent.c print_time.c print_timespec.c print_timeval.c \ - printrusage.c printsiginfo.c rt_sigreturn.c rtc.c sg_io_v3.c \ - sigaltstack.c sock.c sysinfo.c times.c ustat.c utime.c v4l2.c + fetch_struct_xfs_quotastat.c hdio.c ipc_msgctl.c ipc_semctl.c \ + ipc_shmctl.c loop.c mtd.c perf_ioctl.c print_aio_sigset.c \ + print_group_req.c print_mq_attr.c print_msgbuf.c \ + print_sg_req_info.c print_sigevent.c print_time.c \ + print_timeval.c printrusage.c printsiginfo.c rt_sigreturn.c \ + rtc.c sg_io_v3.c sigaltstack.c sock.c sysinfo.c times.c \ + ustat.c utime.c v4l2.c am__objects_1 = libmpers_m32_a-block.$(OBJEXT) \ libmpers_m32_a-btrfs.$(OBJEXT) libmpers_m32_a-dirent.$(OBJEXT) \ libmpers_m32_a-evdev_mpers.$(OBJEXT) \ @@ -190,6 +233,7 @@ am__objects_1 = libmpers_m32_a-block.$(OBJEXT) \ libmpers_m32_a-fetch_struct_xfs_quotastat.$(OBJEXT) \ libmpers_m32_a-hdio.$(OBJEXT) \ libmpers_m32_a-ipc_msgctl.$(OBJEXT) \ + libmpers_m32_a-ipc_semctl.$(OBJEXT) \ libmpers_m32_a-ipc_shmctl.$(OBJEXT) \ libmpers_m32_a-loop.$(OBJEXT) libmpers_m32_a-mtd.$(OBJEXT) \ libmpers_m32_a-perf_ioctl.$(OBJEXT) \ @@ -200,7 +244,6 @@ am__objects_1 = libmpers_m32_a-block.$(OBJEXT) \ libmpers_m32_a-print_sg_req_info.$(OBJEXT) \ libmpers_m32_a-print_sigevent.$(OBJEXT) \ libmpers_m32_a-print_time.$(OBJEXT) \ - libmpers_m32_a-print_timespec.$(OBJEXT) \ libmpers_m32_a-print_timeval.$(OBJEXT) \ libmpers_m32_a-printrusage.$(OBJEXT) \ libmpers_m32_a-printsiginfo.$(OBJEXT) \ @@ -219,12 +262,13 @@ am__libmpers_mx32_a_SOURCES_DIST = block.c btrfs.c dirent.c \ fetch_struct_keyctl_kdf_params.c fetch_struct_mmsghdr.c \ fetch_struct_msghdr.c fetch_struct_stat.c \ fetch_struct_stat64.c fetch_struct_statfs.c \ - fetch_struct_xfs_quotastat.c hdio.c ipc_msgctl.c ipc_shmctl.c \ - loop.c mtd.c perf_ioctl.c print_aio_sigset.c print_group_req.c \ - print_mq_attr.c print_msgbuf.c print_sg_req_info.c \ - print_sigevent.c print_time.c print_timespec.c print_timeval.c \ - printrusage.c printsiginfo.c rt_sigreturn.c rtc.c sg_io_v3.c \ - sigaltstack.c sock.c sysinfo.c times.c ustat.c utime.c v4l2.c + fetch_struct_xfs_quotastat.c hdio.c ipc_msgctl.c ipc_semctl.c \ + ipc_shmctl.c loop.c mtd.c perf_ioctl.c print_aio_sigset.c \ + print_group_req.c print_mq_attr.c print_msgbuf.c \ + print_sg_req_info.c print_sigevent.c print_time.c \ + print_timeval.c printrusage.c printsiginfo.c rt_sigreturn.c \ + rtc.c sg_io_v3.c sigaltstack.c sock.c sysinfo.c times.c \ + ustat.c utime.c v4l2.c am__objects_2 = libmpers_mx32_a-block.$(OBJEXT) \ libmpers_mx32_a-btrfs.$(OBJEXT) \ libmpers_mx32_a-dirent.$(OBJEXT) \ @@ -240,6 +284,7 @@ am__objects_2 = libmpers_mx32_a-block.$(OBJEXT) \ libmpers_mx32_a-fetch_struct_xfs_quotastat.$(OBJEXT) \ libmpers_mx32_a-hdio.$(OBJEXT) \ libmpers_mx32_a-ipc_msgctl.$(OBJEXT) \ + libmpers_mx32_a-ipc_semctl.$(OBJEXT) \ libmpers_mx32_a-ipc_shmctl.$(OBJEXT) \ libmpers_mx32_a-loop.$(OBJEXT) libmpers_mx32_a-mtd.$(OBJEXT) \ libmpers_mx32_a-perf_ioctl.$(OBJEXT) \ @@ -250,7 +295,6 @@ am__objects_2 = libmpers_mx32_a-block.$(OBJEXT) \ libmpers_mx32_a-print_sg_req_info.$(OBJEXT) \ libmpers_mx32_a-print_sigevent.$(OBJEXT) \ libmpers_mx32_a-print_time.$(OBJEXT) \ - libmpers_mx32_a-print_timespec.$(OBJEXT) \ libmpers_mx32_a-print_timeval.$(OBJEXT) \ libmpers_mx32_a-printrusage.$(OBJEXT) \ libmpers_mx32_a-printsiginfo.$(OBJEXT) \ @@ -267,61 +311,54 @@ am__objects_2 = libmpers_mx32_a-block.$(OBJEXT) \ libmpers_mx32_a_OBJECTS = $(am_libmpers_mx32_a_OBJECTS) libstrace_a_AR = $(AR) $(ARFLAGS) libstrace_a_LIBADD = -am_libstrace_a_OBJECTS = \ - libstrace_a-fetch_indirect_syscall_args.$(OBJEXT) \ - libstrace_a-fstatfs.$(OBJEXT) libstrace_a-fstatfs64.$(OBJEXT) \ - libstrace_a-getpagesize.$(OBJEXT) libstrace_a-ipc.$(OBJEXT) \ - libstrace_a-mmap_cache.$(OBJEXT) \ - libstrace_a-sigreturn.$(OBJEXT) \ - libstrace_a-socketcall.$(OBJEXT) libstrace_a-statfs.$(OBJEXT) \ - libstrace_a-statfs64.$(OBJEXT) \ - libstrace_a-sync_file_range.$(OBJEXT) \ - libstrace_a-sync_file_range2.$(OBJEXT) \ - libstrace_a-upeek.$(OBJEXT) libstrace_a-upoke.$(OBJEXT) -libstrace_a_OBJECTS = $(am_libstrace_a_OBJECTS) -am__strace_SOURCES_DIST = access.c affinity.c aio.c alpha.c \ +am__libstrace_a_SOURCES_DIST = access.c affinity.c aio.c alpha.c \ arch_defs.h basic_filters.c bind.c bjm.c block.c bpf.c \ bpf_attr.h bpf_filter.c bpf_filter.h bpf_fprog.h \ bpf_seccomp_filter.c bpf_sock_filter.c btrfs.c cacheflush.c \ capability.c caps0.h caps1.h chdir.c chmod.c clone.c \ - copy_file_range.c count.c defs.h delay.c delay.h desc.c \ - dirent.c dirent64.c dm.c dyxlat.c empty.h epoll.c \ - error_prints.c error_prints.h evdev.c evdev_mpers.c eventfd.c \ - execve.c f_owner_ex.h fadvise.c fallocate.c fanotify.c \ - fchownat.c fcntl.c fetch_bpf_fprog.c fetch_struct_flock.c \ + close_range.c copy_file_range.c count.c defs.h delay.c delay.h \ + desc.c dirent.c dirent64.c dirent_types.c dm.c dup.c dyxlat.c \ + empty.h epoll.c error_prints.c error_prints.h evdev.c \ + evdev_mpers.c eventfd.c execve.c f_owner_ex.h fadvise.c \ + fallocate.c fanotify.c fchownat.c fcntl.c fetch_bpf_fprog.c \ + fetch_indirect_syscall_args.c fetch_struct_flock.c \ fetch_struct_keyctl_kdf_params.c fetch_struct_mmsghdr.c \ fetch_struct_msghdr.c fetch_struct_stat.c \ fetch_struct_stat64.c fetch_struct_statfs.c \ fetch_struct_xfs_quotastat.c file_handle.c file_ioctl.c \ - filter.h filter_qualify.c flock.c flock.h fs_x_ioctl.c futex.c \ - gcc_compat.h get_personality.c get_personality.h \ - get_robust_list.c getcpu.c getcwd.c getrandom.c hdio.c \ - hostname.c inotify.c inotify_ioctl.c io.c io_uring.c ioctl.c \ - ioperm.c iopl.c ioprio.c ipc_defs.h ipc_msg.c ipc_msgctl.c \ - ipc_sem.c ipc_shm.c ipc_shmctl.c kcmp.c kernel_timespec.h \ - kernel_timeval.h kernel_timex.h kernel_types.h kexec.c \ - keyctl.c keyctl_kdf_params.h kill_save_errno.h kvm.c \ - largefile_wrappers.h ldt.c link.c linux/asm_stat.h \ - linux/x32/asm_stat.h linux/x86_64/asm_stat.h list.h listen.c \ - lookup_dcookie.c loop.c lseek.c macros.h mem.c membarrier.c \ - memfd_create.c mknod.c mmap_notify.c mmap_notify.h mmsghdr.c \ - mount.c mpers_type.h mq.c msghdr.c msghdr.h mtd.c \ - native_defs.h nbd_ioctl.c negated_errno.h net.c netlink.c \ - netlink.h netlink_crypto.c netlink_inet_diag.c \ - netlink_kobject_uevent.c netlink_kobject_uevent.h \ - netlink_netfilter.c netlink_netlink_diag.c \ - netlink_packet_diag.c netlink_route.c netlink_route.h \ - netlink_selinux.c netlink_smc_diag.c netlink_sock_diag.c \ - netlink_sock_diag.h netlink_unix_diag.c nlattr.c nlattr.h \ - nsfs.c nsfs.h nsig.h numa.c number_set.c number_set.h \ - oldstat.c open.c or1k_atomic.c pathtrace.c perf.c \ - perf_event_struct.h perf_ioctl.c personality.c pkeys.c poll.c \ - prctl.c print_aio_sigset.c print_dev_t.c print_fields.h \ + filter.h filter_qualify.c filter_seccomp.c filter_seccomp.h \ + flock.c flock.h fs_x_ioctl.c fsconfig.c fsmount.c fsopen.c \ + fspick.c fstatfs.c fstatfs64.c futex.c gcc_compat.h \ + get_personality.c get_personality.h get_robust_list.c getcpu.c \ + getcwd.c getpagesize.c getpid.c getrandom.c hdio.c hostname.c \ + inotify.c inotify_ioctl.c io.c io_uring.c ioctl.c ioperm.c \ + iopl.c ioprio.c ipc.c ipc_defs.h ipc_msg.c ipc_msgctl.c \ + ipc_sem.c ipc_semctl.c ipc_shm.c ipc_shmctl.c kcmp.c \ + kernel_dirent.h kernel_rusage.h kernel_timespec.h \ + kernel_timeval.h kernel_timex.h kernel_types.h \ + kernel_v4l2_types.h kexec.c keyctl.c keyctl_kdf_params.h \ + kill_save_errno.h kvm.c largefile_wrappers.h ldt.c link.c \ + linux/asm_stat.h linux/x32/asm_stat.h linux/x86_64/asm_stat.h \ + list.h listen.c lookup_dcookie.c loop.c lseek.c macros.h mem.c \ + membarrier.c memfd_create.c mknod.c mmap_cache.c mmap_cache.h \ + mmap_notify.c mmap_notify.h mmsghdr.c mount.c move_mount.c \ + mpers_type.h mq.c msghdr.c msghdr.h mtd.c native_defs.h \ + nbd_ioctl.c negated_errno.h net.c netlink.c netlink.h \ + netlink_crypto.c netlink_inet_diag.c netlink_kobject_uevent.c \ + netlink_kobject_uevent.h netlink_netfilter.c \ + netlink_netlink_diag.c netlink_packet_diag.c netlink_route.c \ + netlink_route.h netlink_selinux.c netlink_smc_diag.c \ + netlink_sock_diag.c netlink_sock_diag.h netlink_unix_diag.c \ + nlattr.c nlattr.h nsfs.c nsfs.h nsig.h numa.c number_set.c \ + number_set.h oldstat.c open.c open_tree.c or1k_atomic.c \ + pathtrace.c perf.c perf_event_struct.h perf_ioctl.c \ + personality.c pidfd_getfd.c pidfd_open.c pidns.c pkeys.c \ + poll.c prctl.c print_aio_sigset.c print_dev_t.c print_fields.h \ print_group_req.c print_ifindex.c print_instruction_pointer.c \ print_kernel_version.c print_mac.c print_mq_attr.c \ print_msgbuf.c print_sg_req_info.c print_sigevent.c \ - print_statfs.c print_struct_stat.c print_time.c \ - print_timespec.c print_timespec.h print_timespec32.c \ + print_statfs.c print_struct_stat.c print_syscall_number.c \ + print_time.c print_timespec.h print_timespec32.c \ print_timespec64.c print_timeval.c print_timeval64.c \ print_timex.c print_timex.h print_utils.h printmode.c \ printrusage.c printsiginfo.c printsiginfo.h process.c \ @@ -334,148 +371,222 @@ am__strace_SOURCES_DIST = access.c affinity.c aio.c alpha.c \ rtnl_route.c rtnl_rule.c rtnl_tc.c rtnl_tc_action.c s390.c \ sched.c sched_attr.h scsi.c seccomp.c sendfile.c sg_io_v3.c \ sg_io_v4.c shutdown.c sigaltstack.c sigevent.h signal.c \ - signalfd.c sock.c sockaddr.c socketutils.c sparc.c \ - sram_alloc.c stat.c stat.h stat64.c statfs.c statfs.h \ - static_assert.h statx.c statx.h strace.c string_to_uint.c \ - string_to_uint.h swapon.c syscall.c sysctl.c sysent.h \ - sysent_shorthand_defs.h sysent_shorthand_undefs.h sysinfo.c \ - syslog.c sysmips.c term.c time.c times.c trace_event.h \ - truncate.c ubi.c ucopy.c uid.c uid16.c umask.c umount.c \ - uname.c userfaultfd.c ustat.c util.c utime.c utimes.c v4l2.c \ - wait.c wait.h xattr.c xfs_quota_stat.h xlat.c xlat.h xmalloc.c \ - xmalloc.h xstring.h bpf_attr_check.c unwind.c unwind.h \ - unwind-libdw.c unwind-libunwind.c -am__objects_3 = strace-bpf_attr_check.$(OBJEXT) -@ENABLE_STACKTRACE_TRUE@am__objects_4 = strace-unwind.$(OBJEXT) -@ENABLE_STACKTRACE_TRUE@@USE_LIBDW_TRUE@am__objects_5 = strace-unwind-libdw.$(OBJEXT) -@ENABLE_STACKTRACE_TRUE@@USE_LIBUNWIND_TRUE@am__objects_6 = strace-unwind-libunwind.$(OBJEXT) -am_strace_OBJECTS = strace-access.$(OBJEXT) strace-affinity.$(OBJEXT) \ - strace-aio.$(OBJEXT) strace-alpha.$(OBJEXT) \ - strace-basic_filters.$(OBJEXT) strace-bind.$(OBJEXT) \ - strace-bjm.$(OBJEXT) strace-block.$(OBJEXT) \ - strace-bpf.$(OBJEXT) strace-bpf_filter.$(OBJEXT) \ - strace-bpf_seccomp_filter.$(OBJEXT) \ - strace-bpf_sock_filter.$(OBJEXT) strace-btrfs.$(OBJEXT) \ - strace-cacheflush.$(OBJEXT) strace-capability.$(OBJEXT) \ - strace-chdir.$(OBJEXT) strace-chmod.$(OBJEXT) \ - strace-clone.$(OBJEXT) strace-copy_file_range.$(OBJEXT) \ - strace-count.$(OBJEXT) strace-delay.$(OBJEXT) \ - strace-desc.$(OBJEXT) strace-dirent.$(OBJEXT) \ - strace-dirent64.$(OBJEXT) strace-dm.$(OBJEXT) \ - strace-dyxlat.$(OBJEXT) strace-epoll.$(OBJEXT) \ - strace-error_prints.$(OBJEXT) strace-evdev.$(OBJEXT) \ - strace-evdev_mpers.$(OBJEXT) strace-eventfd.$(OBJEXT) \ - strace-execve.$(OBJEXT) strace-fadvise.$(OBJEXT) \ - strace-fallocate.$(OBJEXT) strace-fanotify.$(OBJEXT) \ - strace-fchownat.$(OBJEXT) strace-fcntl.$(OBJEXT) \ - strace-fetch_bpf_fprog.$(OBJEXT) \ - strace-fetch_struct_flock.$(OBJEXT) \ - strace-fetch_struct_keyctl_kdf_params.$(OBJEXT) \ - strace-fetch_struct_mmsghdr.$(OBJEXT) \ - strace-fetch_struct_msghdr.$(OBJEXT) \ - strace-fetch_struct_stat.$(OBJEXT) \ - strace-fetch_struct_stat64.$(OBJEXT) \ - strace-fetch_struct_statfs.$(OBJEXT) \ - strace-fetch_struct_xfs_quotastat.$(OBJEXT) \ - strace-file_handle.$(OBJEXT) strace-file_ioctl.$(OBJEXT) \ - strace-filter_qualify.$(OBJEXT) strace-flock.$(OBJEXT) \ - strace-fs_x_ioctl.$(OBJEXT) strace-futex.$(OBJEXT) \ - strace-get_personality.$(OBJEXT) \ - strace-get_robust_list.$(OBJEXT) strace-getcpu.$(OBJEXT) \ - strace-getcwd.$(OBJEXT) strace-getrandom.$(OBJEXT) \ - strace-hdio.$(OBJEXT) strace-hostname.$(OBJEXT) \ - strace-inotify.$(OBJEXT) strace-inotify_ioctl.$(OBJEXT) \ - strace-io.$(OBJEXT) strace-io_uring.$(OBJEXT) \ - strace-ioctl.$(OBJEXT) strace-ioperm.$(OBJEXT) \ - strace-iopl.$(OBJEXT) strace-ioprio.$(OBJEXT) \ - strace-ipc_msg.$(OBJEXT) strace-ipc_msgctl.$(OBJEXT) \ - strace-ipc_sem.$(OBJEXT) strace-ipc_shm.$(OBJEXT) \ - strace-ipc_shmctl.$(OBJEXT) strace-kcmp.$(OBJEXT) \ - strace-kexec.$(OBJEXT) strace-keyctl.$(OBJEXT) \ - strace-kvm.$(OBJEXT) strace-ldt.$(OBJEXT) \ - strace-link.$(OBJEXT) strace-listen.$(OBJEXT) \ - strace-lookup_dcookie.$(OBJEXT) strace-loop.$(OBJEXT) \ - strace-lseek.$(OBJEXT) strace-mem.$(OBJEXT) \ - strace-membarrier.$(OBJEXT) strace-memfd_create.$(OBJEXT) \ - strace-mknod.$(OBJEXT) strace-mmap_notify.$(OBJEXT) \ - strace-mmsghdr.$(OBJEXT) strace-mount.$(OBJEXT) \ - strace-mq.$(OBJEXT) strace-msghdr.$(OBJEXT) \ - strace-mtd.$(OBJEXT) strace-nbd_ioctl.$(OBJEXT) \ - strace-net.$(OBJEXT) strace-netlink.$(OBJEXT) \ - strace-netlink_crypto.$(OBJEXT) \ - strace-netlink_inet_diag.$(OBJEXT) \ - strace-netlink_kobject_uevent.$(OBJEXT) \ - strace-netlink_netfilter.$(OBJEXT) \ - strace-netlink_netlink_diag.$(OBJEXT) \ - strace-netlink_packet_diag.$(OBJEXT) \ - strace-netlink_route.$(OBJEXT) \ - strace-netlink_selinux.$(OBJEXT) \ - strace-netlink_smc_diag.$(OBJEXT) \ - strace-netlink_sock_diag.$(OBJEXT) \ - strace-netlink_unix_diag.$(OBJEXT) strace-nlattr.$(OBJEXT) \ - strace-nsfs.$(OBJEXT) strace-numa.$(OBJEXT) \ - strace-number_set.$(OBJEXT) strace-oldstat.$(OBJEXT) \ - strace-open.$(OBJEXT) strace-or1k_atomic.$(OBJEXT) \ - strace-pathtrace.$(OBJEXT) strace-perf.$(OBJEXT) \ - strace-perf_ioctl.$(OBJEXT) strace-personality.$(OBJEXT) \ - strace-pkeys.$(OBJEXT) strace-poll.$(OBJEXT) \ - strace-prctl.$(OBJEXT) strace-print_aio_sigset.$(OBJEXT) \ - strace-print_dev_t.$(OBJEXT) strace-print_group_req.$(OBJEXT) \ - strace-print_ifindex.$(OBJEXT) \ - strace-print_instruction_pointer.$(OBJEXT) \ - strace-print_kernel_version.$(OBJEXT) \ - strace-print_mac.$(OBJEXT) strace-print_mq_attr.$(OBJEXT) \ - strace-print_msgbuf.$(OBJEXT) \ - strace-print_sg_req_info.$(OBJEXT) \ - strace-print_sigevent.$(OBJEXT) strace-print_statfs.$(OBJEXT) \ - strace-print_struct_stat.$(OBJEXT) strace-print_time.$(OBJEXT) \ - strace-print_timespec.$(OBJEXT) \ - strace-print_timespec32.$(OBJEXT) \ - strace-print_timespec64.$(OBJEXT) \ - strace-print_timeval.$(OBJEXT) \ - strace-print_timeval64.$(OBJEXT) strace-print_timex.$(OBJEXT) \ - strace-printmode.$(OBJEXT) strace-printrusage.$(OBJEXT) \ - strace-printsiginfo.$(OBJEXT) strace-process.$(OBJEXT) \ - strace-process_vm.$(OBJEXT) strace-ptp.$(OBJEXT) \ - strace-ptrace_syscall_info.$(OBJEXT) strace-quota.$(OBJEXT) \ - strace-random_ioctl.$(OBJEXT) strace-readahead.$(OBJEXT) \ - strace-readlink.$(OBJEXT) strace-reboot.$(OBJEXT) \ - strace-renameat.$(OBJEXT) strace-resource.$(OBJEXT) \ - strace-retval.$(OBJEXT) strace-riscv.$(OBJEXT) \ - strace-rt_sigframe.$(OBJEXT) strace-rt_sigreturn.$(OBJEXT) \ - strace-rtc.$(OBJEXT) strace-rtnl_addr.$(OBJEXT) \ - strace-rtnl_addrlabel.$(OBJEXT) strace-rtnl_dcb.$(OBJEXT) \ - strace-rtnl_link.$(OBJEXT) strace-rtnl_mdb.$(OBJEXT) \ - strace-rtnl_neigh.$(OBJEXT) strace-rtnl_neightbl.$(OBJEXT) \ - strace-rtnl_netconf.$(OBJEXT) strace-rtnl_nsid.$(OBJEXT) \ - strace-rtnl_route.$(OBJEXT) strace-rtnl_rule.$(OBJEXT) \ - strace-rtnl_tc.$(OBJEXT) strace-rtnl_tc_action.$(OBJEXT) \ - strace-s390.$(OBJEXT) strace-sched.$(OBJEXT) \ - strace-scsi.$(OBJEXT) strace-seccomp.$(OBJEXT) \ - strace-sendfile.$(OBJEXT) strace-sg_io_v3.$(OBJEXT) \ - strace-sg_io_v4.$(OBJEXT) strace-shutdown.$(OBJEXT) \ - strace-sigaltstack.$(OBJEXT) strace-signal.$(OBJEXT) \ - strace-signalfd.$(OBJEXT) strace-sock.$(OBJEXT) \ - strace-sockaddr.$(OBJEXT) strace-socketutils.$(OBJEXT) \ - strace-sparc.$(OBJEXT) strace-sram_alloc.$(OBJEXT) \ - strace-stat.$(OBJEXT) strace-stat64.$(OBJEXT) \ - strace-statfs.$(OBJEXT) strace-statx.$(OBJEXT) \ - strace-strace.$(OBJEXT) strace-string_to_uint.$(OBJEXT) \ - strace-swapon.$(OBJEXT) strace-syscall.$(OBJEXT) \ - strace-sysctl.$(OBJEXT) strace-sysinfo.$(OBJEXT) \ - strace-syslog.$(OBJEXT) strace-sysmips.$(OBJEXT) \ - strace-term.$(OBJEXT) strace-time.$(OBJEXT) \ - strace-times.$(OBJEXT) strace-truncate.$(OBJEXT) \ - strace-ubi.$(OBJEXT) strace-ucopy.$(OBJEXT) \ - strace-uid.$(OBJEXT) strace-uid16.$(OBJEXT) \ - strace-umask.$(OBJEXT) strace-umount.$(OBJEXT) \ - strace-uname.$(OBJEXT) strace-userfaultfd.$(OBJEXT) \ - strace-ustat.$(OBJEXT) strace-util.$(OBJEXT) \ - strace-utime.$(OBJEXT) strace-utimes.$(OBJEXT) \ - strace-v4l2.$(OBJEXT) strace-wait.$(OBJEXT) \ - strace-xattr.$(OBJEXT) strace-xlat.$(OBJEXT) \ - strace-xmalloc.$(OBJEXT) $(am__objects_3) $(am__objects_4) \ - $(am__objects_5) $(am__objects_6) + signalfd.c sigreturn.c sock.c sockaddr.c socketcall.c \ + socketutils.c sparc.c sram_alloc.c stage_output.c stat.c \ + stat.h stat64.c statfs.c statfs.h statfs64.c static_assert.h \ + statx.c statx.h string_to_uint.c string_to_uint.h swapon.c \ + sync_file_range.c sync_file_range2.c syscall.c sysctl.c \ + sysent.h sysent_shorthand_defs.h sysent_shorthand_undefs.h \ + sysinfo.c syslog.c sysmips.c tee.c term.c time.c times.c \ + trace_event.h trie.c trie.h truncate.c ubi.c ucopy.c uid.c \ + uid16.c umask.c umount.c uname.c upeek.c upoke.c userfaultfd.c \ + ustat.c util.c utime.c utimes.c v4l2.c wait.c wait.h \ + watchdog_ioctl.c xattr.c xfs_quota_stat.h xgetdents.c \ + xgetdents.h xlat.c xlat.h xmalloc.c xmalloc.h xstring.h \ + types/btrfs.h types/cryptouser.h types/evdev.h \ + types/io_uring.h types/loop.h types/openat2.h \ + types/rtnl_link.h types/rtnl_mdb.h types/rtnl_neightbl.h \ + types/rtnl_route.h types/tee.h types/v4l2.h bpf_attr_check.c \ + types/check-btrfs.c types/check-cryptouser.c \ + types/check-evdev.c types/check-io_uring.c types/check-loop.c \ + types/check-openat2.c types/check-rtnl_link.c \ + types/check-rtnl_mdb.c types/check-rtnl_neightbl.c \ + types/check-rtnl_route.c types/check-tee.c types/check-v4l2.c \ + unwind.c unwind.h unwind-libdw.c unwind-libunwind.c +am__objects_3 = +am__dirstamp = $(am__leading_dot)dirstamp +am__objects_4 = types/libstrace_a-check-btrfs.$(OBJEXT) \ + types/libstrace_a-check-cryptouser.$(OBJEXT) \ + types/libstrace_a-check-evdev.$(OBJEXT) \ + types/libstrace_a-check-io_uring.$(OBJEXT) \ + types/libstrace_a-check-loop.$(OBJEXT) \ + types/libstrace_a-check-openat2.$(OBJEXT) \ + types/libstrace_a-check-rtnl_link.$(OBJEXT) \ + types/libstrace_a-check-rtnl_mdb.$(OBJEXT) \ + types/libstrace_a-check-rtnl_neightbl.$(OBJEXT) \ + types/libstrace_a-check-rtnl_route.$(OBJEXT) \ + types/libstrace_a-check-tee.$(OBJEXT) \ + types/libstrace_a-check-v4l2.$(OBJEXT) +am__objects_5 = libstrace_a-bpf_attr_check.$(OBJEXT) $(am__objects_4) +@ENABLE_STACKTRACE_TRUE@am__objects_6 = libstrace_a-unwind.$(OBJEXT) +@ENABLE_STACKTRACE_TRUE@@USE_LIBDW_TRUE@am__objects_7 = libstrace_a-unwind-libdw.$(OBJEXT) +@ENABLE_STACKTRACE_TRUE@@USE_LIBUNWIND_TRUE@am__objects_8 = libstrace_a-unwind-libunwind.$(OBJEXT) +am_libstrace_a_OBJECTS = libstrace_a-access.$(OBJEXT) \ + libstrace_a-affinity.$(OBJEXT) libstrace_a-aio.$(OBJEXT) \ + libstrace_a-alpha.$(OBJEXT) \ + libstrace_a-basic_filters.$(OBJEXT) libstrace_a-bind.$(OBJEXT) \ + libstrace_a-bjm.$(OBJEXT) libstrace_a-block.$(OBJEXT) \ + libstrace_a-bpf.$(OBJEXT) libstrace_a-bpf_filter.$(OBJEXT) \ + libstrace_a-bpf_seccomp_filter.$(OBJEXT) \ + libstrace_a-bpf_sock_filter.$(OBJEXT) \ + libstrace_a-btrfs.$(OBJEXT) libstrace_a-cacheflush.$(OBJEXT) \ + libstrace_a-capability.$(OBJEXT) libstrace_a-chdir.$(OBJEXT) \ + libstrace_a-chmod.$(OBJEXT) libstrace_a-clone.$(OBJEXT) \ + libstrace_a-close_range.$(OBJEXT) \ + libstrace_a-copy_file_range.$(OBJEXT) \ + libstrace_a-count.$(OBJEXT) libstrace_a-delay.$(OBJEXT) \ + libstrace_a-desc.$(OBJEXT) libstrace_a-dirent.$(OBJEXT) \ + libstrace_a-dirent64.$(OBJEXT) \ + libstrace_a-dirent_types.$(OBJEXT) libstrace_a-dm.$(OBJEXT) \ + libstrace_a-dup.$(OBJEXT) libstrace_a-dyxlat.$(OBJEXT) \ + libstrace_a-epoll.$(OBJEXT) libstrace_a-error_prints.$(OBJEXT) \ + libstrace_a-evdev.$(OBJEXT) libstrace_a-evdev_mpers.$(OBJEXT) \ + libstrace_a-eventfd.$(OBJEXT) libstrace_a-execve.$(OBJEXT) \ + libstrace_a-fadvise.$(OBJEXT) libstrace_a-fallocate.$(OBJEXT) \ + libstrace_a-fanotify.$(OBJEXT) libstrace_a-fchownat.$(OBJEXT) \ + libstrace_a-fcntl.$(OBJEXT) \ + libstrace_a-fetch_bpf_fprog.$(OBJEXT) \ + libstrace_a-fetch_indirect_syscall_args.$(OBJEXT) \ + libstrace_a-fetch_struct_flock.$(OBJEXT) \ + libstrace_a-fetch_struct_keyctl_kdf_params.$(OBJEXT) \ + libstrace_a-fetch_struct_mmsghdr.$(OBJEXT) \ + libstrace_a-fetch_struct_msghdr.$(OBJEXT) \ + libstrace_a-fetch_struct_stat.$(OBJEXT) \ + libstrace_a-fetch_struct_stat64.$(OBJEXT) \ + libstrace_a-fetch_struct_statfs.$(OBJEXT) \ + libstrace_a-fetch_struct_xfs_quotastat.$(OBJEXT) \ + libstrace_a-file_handle.$(OBJEXT) \ + libstrace_a-file_ioctl.$(OBJEXT) \ + libstrace_a-filter_qualify.$(OBJEXT) \ + libstrace_a-filter_seccomp.$(OBJEXT) \ + libstrace_a-flock.$(OBJEXT) libstrace_a-fs_x_ioctl.$(OBJEXT) \ + libstrace_a-fsconfig.$(OBJEXT) libstrace_a-fsmount.$(OBJEXT) \ + libstrace_a-fsopen.$(OBJEXT) libstrace_a-fspick.$(OBJEXT) \ + libstrace_a-fstatfs.$(OBJEXT) libstrace_a-fstatfs64.$(OBJEXT) \ + libstrace_a-futex.$(OBJEXT) \ + libstrace_a-get_personality.$(OBJEXT) \ + libstrace_a-get_robust_list.$(OBJEXT) \ + libstrace_a-getcpu.$(OBJEXT) libstrace_a-getcwd.$(OBJEXT) \ + libstrace_a-getpagesize.$(OBJEXT) libstrace_a-getpid.$(OBJEXT) \ + libstrace_a-getrandom.$(OBJEXT) libstrace_a-hdio.$(OBJEXT) \ + libstrace_a-hostname.$(OBJEXT) libstrace_a-inotify.$(OBJEXT) \ + libstrace_a-inotify_ioctl.$(OBJEXT) libstrace_a-io.$(OBJEXT) \ + libstrace_a-io_uring.$(OBJEXT) libstrace_a-ioctl.$(OBJEXT) \ + libstrace_a-ioperm.$(OBJEXT) libstrace_a-iopl.$(OBJEXT) \ + libstrace_a-ioprio.$(OBJEXT) libstrace_a-ipc.$(OBJEXT) \ + libstrace_a-ipc_msg.$(OBJEXT) libstrace_a-ipc_msgctl.$(OBJEXT) \ + libstrace_a-ipc_sem.$(OBJEXT) libstrace_a-ipc_semctl.$(OBJEXT) \ + libstrace_a-ipc_shm.$(OBJEXT) libstrace_a-ipc_shmctl.$(OBJEXT) \ + libstrace_a-kcmp.$(OBJEXT) libstrace_a-kexec.$(OBJEXT) \ + libstrace_a-keyctl.$(OBJEXT) libstrace_a-kvm.$(OBJEXT) \ + libstrace_a-ldt.$(OBJEXT) libstrace_a-link.$(OBJEXT) \ + libstrace_a-listen.$(OBJEXT) \ + libstrace_a-lookup_dcookie.$(OBJEXT) \ + libstrace_a-loop.$(OBJEXT) libstrace_a-lseek.$(OBJEXT) \ + libstrace_a-mem.$(OBJEXT) libstrace_a-membarrier.$(OBJEXT) \ + libstrace_a-memfd_create.$(OBJEXT) libstrace_a-mknod.$(OBJEXT) \ + libstrace_a-mmap_cache.$(OBJEXT) \ + libstrace_a-mmap_notify.$(OBJEXT) \ + libstrace_a-mmsghdr.$(OBJEXT) libstrace_a-mount.$(OBJEXT) \ + libstrace_a-move_mount.$(OBJEXT) libstrace_a-mq.$(OBJEXT) \ + libstrace_a-msghdr.$(OBJEXT) libstrace_a-mtd.$(OBJEXT) \ + libstrace_a-nbd_ioctl.$(OBJEXT) libstrace_a-net.$(OBJEXT) \ + libstrace_a-netlink.$(OBJEXT) \ + libstrace_a-netlink_crypto.$(OBJEXT) \ + libstrace_a-netlink_inet_diag.$(OBJEXT) \ + libstrace_a-netlink_kobject_uevent.$(OBJEXT) \ + libstrace_a-netlink_netfilter.$(OBJEXT) \ + libstrace_a-netlink_netlink_diag.$(OBJEXT) \ + libstrace_a-netlink_packet_diag.$(OBJEXT) \ + libstrace_a-netlink_route.$(OBJEXT) \ + libstrace_a-netlink_selinux.$(OBJEXT) \ + libstrace_a-netlink_smc_diag.$(OBJEXT) \ + libstrace_a-netlink_sock_diag.$(OBJEXT) \ + libstrace_a-netlink_unix_diag.$(OBJEXT) \ + libstrace_a-nlattr.$(OBJEXT) libstrace_a-nsfs.$(OBJEXT) \ + libstrace_a-numa.$(OBJEXT) libstrace_a-number_set.$(OBJEXT) \ + libstrace_a-oldstat.$(OBJEXT) libstrace_a-open.$(OBJEXT) \ + libstrace_a-open_tree.$(OBJEXT) \ + libstrace_a-or1k_atomic.$(OBJEXT) \ + libstrace_a-pathtrace.$(OBJEXT) libstrace_a-perf.$(OBJEXT) \ + libstrace_a-perf_ioctl.$(OBJEXT) \ + libstrace_a-personality.$(OBJEXT) \ + libstrace_a-pidfd_getfd.$(OBJEXT) \ + libstrace_a-pidfd_open.$(OBJEXT) libstrace_a-pidns.$(OBJEXT) \ + libstrace_a-pkeys.$(OBJEXT) libstrace_a-poll.$(OBJEXT) \ + libstrace_a-prctl.$(OBJEXT) \ + libstrace_a-print_aio_sigset.$(OBJEXT) \ + libstrace_a-print_dev_t.$(OBJEXT) \ + libstrace_a-print_group_req.$(OBJEXT) \ + libstrace_a-print_ifindex.$(OBJEXT) \ + libstrace_a-print_instruction_pointer.$(OBJEXT) \ + libstrace_a-print_kernel_version.$(OBJEXT) \ + libstrace_a-print_mac.$(OBJEXT) \ + libstrace_a-print_mq_attr.$(OBJEXT) \ + libstrace_a-print_msgbuf.$(OBJEXT) \ + libstrace_a-print_sg_req_info.$(OBJEXT) \ + libstrace_a-print_sigevent.$(OBJEXT) \ + libstrace_a-print_statfs.$(OBJEXT) \ + libstrace_a-print_struct_stat.$(OBJEXT) \ + libstrace_a-print_syscall_number.$(OBJEXT) \ + libstrace_a-print_time.$(OBJEXT) \ + libstrace_a-print_timespec32.$(OBJEXT) \ + libstrace_a-print_timespec64.$(OBJEXT) \ + libstrace_a-print_timeval.$(OBJEXT) \ + libstrace_a-print_timeval64.$(OBJEXT) \ + libstrace_a-print_timex.$(OBJEXT) \ + libstrace_a-printmode.$(OBJEXT) \ + libstrace_a-printrusage.$(OBJEXT) \ + libstrace_a-printsiginfo.$(OBJEXT) \ + libstrace_a-process.$(OBJEXT) libstrace_a-process_vm.$(OBJEXT) \ + libstrace_a-ptp.$(OBJEXT) \ + libstrace_a-ptrace_syscall_info.$(OBJEXT) \ + libstrace_a-quota.$(OBJEXT) libstrace_a-random_ioctl.$(OBJEXT) \ + libstrace_a-readahead.$(OBJEXT) libstrace_a-readlink.$(OBJEXT) \ + libstrace_a-reboot.$(OBJEXT) libstrace_a-renameat.$(OBJEXT) \ + libstrace_a-resource.$(OBJEXT) libstrace_a-retval.$(OBJEXT) \ + libstrace_a-riscv.$(OBJEXT) libstrace_a-rt_sigframe.$(OBJEXT) \ + libstrace_a-rt_sigreturn.$(OBJEXT) libstrace_a-rtc.$(OBJEXT) \ + libstrace_a-rtnl_addr.$(OBJEXT) \ + libstrace_a-rtnl_addrlabel.$(OBJEXT) \ + libstrace_a-rtnl_dcb.$(OBJEXT) libstrace_a-rtnl_link.$(OBJEXT) \ + libstrace_a-rtnl_mdb.$(OBJEXT) \ + libstrace_a-rtnl_neigh.$(OBJEXT) \ + libstrace_a-rtnl_neightbl.$(OBJEXT) \ + libstrace_a-rtnl_netconf.$(OBJEXT) \ + libstrace_a-rtnl_nsid.$(OBJEXT) \ + libstrace_a-rtnl_route.$(OBJEXT) \ + libstrace_a-rtnl_rule.$(OBJEXT) libstrace_a-rtnl_tc.$(OBJEXT) \ + libstrace_a-rtnl_tc_action.$(OBJEXT) \ + libstrace_a-s390.$(OBJEXT) libstrace_a-sched.$(OBJEXT) \ + libstrace_a-scsi.$(OBJEXT) libstrace_a-seccomp.$(OBJEXT) \ + libstrace_a-sendfile.$(OBJEXT) libstrace_a-sg_io_v3.$(OBJEXT) \ + libstrace_a-sg_io_v4.$(OBJEXT) libstrace_a-shutdown.$(OBJEXT) \ + libstrace_a-sigaltstack.$(OBJEXT) libstrace_a-signal.$(OBJEXT) \ + libstrace_a-signalfd.$(OBJEXT) libstrace_a-sigreturn.$(OBJEXT) \ + libstrace_a-sock.$(OBJEXT) libstrace_a-sockaddr.$(OBJEXT) \ + libstrace_a-socketcall.$(OBJEXT) \ + libstrace_a-socketutils.$(OBJEXT) libstrace_a-sparc.$(OBJEXT) \ + libstrace_a-sram_alloc.$(OBJEXT) \ + libstrace_a-stage_output.$(OBJEXT) libstrace_a-stat.$(OBJEXT) \ + libstrace_a-stat64.$(OBJEXT) libstrace_a-statfs.$(OBJEXT) \ + libstrace_a-statfs.$(OBJEXT) libstrace_a-statfs64.$(OBJEXT) \ + libstrace_a-statx.$(OBJEXT) \ + libstrace_a-string_to_uint.$(OBJEXT) \ + libstrace_a-swapon.$(OBJEXT) \ + libstrace_a-sync_file_range.$(OBJEXT) \ + libstrace_a-sync_file_range2.$(OBJEXT) \ + libstrace_a-syscall.$(OBJEXT) libstrace_a-sysctl.$(OBJEXT) \ + libstrace_a-sysinfo.$(OBJEXT) libstrace_a-syslog.$(OBJEXT) \ + libstrace_a-sysmips.$(OBJEXT) libstrace_a-tee.$(OBJEXT) \ + libstrace_a-term.$(OBJEXT) libstrace_a-time.$(OBJEXT) \ + libstrace_a-times.$(OBJEXT) libstrace_a-trie.$(OBJEXT) \ + libstrace_a-truncate.$(OBJEXT) libstrace_a-ubi.$(OBJEXT) \ + libstrace_a-ucopy.$(OBJEXT) libstrace_a-uid.$(OBJEXT) \ + libstrace_a-uid16.$(OBJEXT) libstrace_a-umask.$(OBJEXT) \ + libstrace_a-umount.$(OBJEXT) libstrace_a-uname.$(OBJEXT) \ + libstrace_a-upeek.$(OBJEXT) libstrace_a-upoke.$(OBJEXT) \ + libstrace_a-userfaultfd.$(OBJEXT) libstrace_a-ustat.$(OBJEXT) \ + libstrace_a-util.$(OBJEXT) libstrace_a-utime.$(OBJEXT) \ + libstrace_a-utimes.$(OBJEXT) libstrace_a-v4l2.$(OBJEXT) \ + libstrace_a-wait.$(OBJEXT) \ + libstrace_a-watchdog_ioctl.$(OBJEXT) \ + libstrace_a-xattr.$(OBJEXT) libstrace_a-xgetdents.$(OBJEXT) \ + libstrace_a-xlat.$(OBJEXT) libstrace_a-xmalloc.$(OBJEXT) \ + $(am__objects_3) $(am__objects_5) $(am__objects_6) \ + $(am__objects_7) $(am__objects_8) +libstrace_a_OBJECTS = $(am_libstrace_a_OBJECTS) +am_strace_OBJECTS = strace-strace.$(OBJEXT) strace_OBJECTS = $(am_strace_OBJECTS) am__DEPENDENCIES_1 = @ENABLE_STACKTRACE_TRUE@@USE_LIBDW_TRUE@am__DEPENDENCIES_2 = \ @@ -546,6 +657,7 @@ am__depfiles_remade = ./$(DEPDIR)/libmpers_m32_a-block.Po \ ./$(DEPDIR)/libmpers_m32_a-fetch_struct_xfs_quotastat.Po \ ./$(DEPDIR)/libmpers_m32_a-hdio.Po \ ./$(DEPDIR)/libmpers_m32_a-ipc_msgctl.Po \ + ./$(DEPDIR)/libmpers_m32_a-ipc_semctl.Po \ ./$(DEPDIR)/libmpers_m32_a-ipc_shmctl.Po \ ./$(DEPDIR)/libmpers_m32_a-loop.Po \ ./$(DEPDIR)/libmpers_m32_a-mtd.Po \ @@ -557,7 +669,6 @@ am__depfiles_remade = ./$(DEPDIR)/libmpers_m32_a-block.Po \ ./$(DEPDIR)/libmpers_m32_a-print_sg_req_info.Po \ ./$(DEPDIR)/libmpers_m32_a-print_sigevent.Po \ ./$(DEPDIR)/libmpers_m32_a-print_time.Po \ - ./$(DEPDIR)/libmpers_m32_a-print_timespec.Po \ ./$(DEPDIR)/libmpers_m32_a-print_timeval.Po \ ./$(DEPDIR)/libmpers_m32_a-printrusage.Po \ ./$(DEPDIR)/libmpers_m32_a-printsiginfo.Po \ @@ -586,6 +697,7 @@ am__depfiles_remade = ./$(DEPDIR)/libmpers_m32_a-block.Po \ ./$(DEPDIR)/libmpers_mx32_a-fetch_struct_xfs_quotastat.Po \ ./$(DEPDIR)/libmpers_mx32_a-hdio.Po \ ./$(DEPDIR)/libmpers_mx32_a-ipc_msgctl.Po \ + ./$(DEPDIR)/libmpers_mx32_a-ipc_semctl.Po \ ./$(DEPDIR)/libmpers_mx32_a-ipc_shmctl.Po \ ./$(DEPDIR)/libmpers_mx32_a-loop.Po \ ./$(DEPDIR)/libmpers_mx32_a-mtd.Po \ @@ -597,7 +709,6 @@ am__depfiles_remade = ./$(DEPDIR)/libmpers_m32_a-block.Po \ ./$(DEPDIR)/libmpers_mx32_a-print_sg_req_info.Po \ ./$(DEPDIR)/libmpers_mx32_a-print_sigevent.Po \ ./$(DEPDIR)/libmpers_mx32_a-print_time.Po \ - ./$(DEPDIR)/libmpers_mx32_a-print_timespec.Po \ ./$(DEPDIR)/libmpers_mx32_a-print_timeval.Po \ ./$(DEPDIR)/libmpers_mx32_a-printrusage.Po \ ./$(DEPDIR)/libmpers_mx32_a-printsiginfo.Po \ @@ -611,170 +722,272 @@ am__depfiles_remade = ./$(DEPDIR)/libmpers_m32_a-block.Po \ ./$(DEPDIR)/libmpers_mx32_a-ustat.Po \ ./$(DEPDIR)/libmpers_mx32_a-utime.Po \ ./$(DEPDIR)/libmpers_mx32_a-v4l2.Po \ + ./$(DEPDIR)/libstrace_a-access.Po \ + ./$(DEPDIR)/libstrace_a-affinity.Po \ + ./$(DEPDIR)/libstrace_a-aio.Po \ + ./$(DEPDIR)/libstrace_a-alpha.Po \ + ./$(DEPDIR)/libstrace_a-basic_filters.Po \ + ./$(DEPDIR)/libstrace_a-bind.Po ./$(DEPDIR)/libstrace_a-bjm.Po \ + ./$(DEPDIR)/libstrace_a-block.Po \ + ./$(DEPDIR)/libstrace_a-bpf.Po \ + ./$(DEPDIR)/libstrace_a-bpf_attr_check.Po \ + ./$(DEPDIR)/libstrace_a-bpf_filter.Po \ + ./$(DEPDIR)/libstrace_a-bpf_seccomp_filter.Po \ + ./$(DEPDIR)/libstrace_a-bpf_sock_filter.Po \ + ./$(DEPDIR)/libstrace_a-btrfs.Po \ + ./$(DEPDIR)/libstrace_a-cacheflush.Po \ + ./$(DEPDIR)/libstrace_a-capability.Po \ + ./$(DEPDIR)/libstrace_a-chdir.Po \ + ./$(DEPDIR)/libstrace_a-chmod.Po \ + ./$(DEPDIR)/libstrace_a-clone.Po \ + ./$(DEPDIR)/libstrace_a-close_range.Po \ + ./$(DEPDIR)/libstrace_a-copy_file_range.Po \ + ./$(DEPDIR)/libstrace_a-count.Po \ + ./$(DEPDIR)/libstrace_a-delay.Po \ + ./$(DEPDIR)/libstrace_a-desc.Po \ + ./$(DEPDIR)/libstrace_a-dirent.Po \ + ./$(DEPDIR)/libstrace_a-dirent64.Po \ + ./$(DEPDIR)/libstrace_a-dirent_types.Po \ + ./$(DEPDIR)/libstrace_a-dm.Po ./$(DEPDIR)/libstrace_a-dup.Po \ + ./$(DEPDIR)/libstrace_a-dyxlat.Po \ + ./$(DEPDIR)/libstrace_a-epoll.Po \ + ./$(DEPDIR)/libstrace_a-error_prints.Po \ + ./$(DEPDIR)/libstrace_a-evdev.Po \ + ./$(DEPDIR)/libstrace_a-evdev_mpers.Po \ + ./$(DEPDIR)/libstrace_a-eventfd.Po \ + ./$(DEPDIR)/libstrace_a-execve.Po \ + ./$(DEPDIR)/libstrace_a-fadvise.Po \ + ./$(DEPDIR)/libstrace_a-fallocate.Po \ + ./$(DEPDIR)/libstrace_a-fanotify.Po \ + ./$(DEPDIR)/libstrace_a-fchownat.Po \ + ./$(DEPDIR)/libstrace_a-fcntl.Po \ + ./$(DEPDIR)/libstrace_a-fetch_bpf_fprog.Po \ ./$(DEPDIR)/libstrace_a-fetch_indirect_syscall_args.Po \ + ./$(DEPDIR)/libstrace_a-fetch_struct_flock.Po \ + ./$(DEPDIR)/libstrace_a-fetch_struct_keyctl_kdf_params.Po \ + ./$(DEPDIR)/libstrace_a-fetch_struct_mmsghdr.Po \ + ./$(DEPDIR)/libstrace_a-fetch_struct_msghdr.Po \ + ./$(DEPDIR)/libstrace_a-fetch_struct_stat.Po \ + ./$(DEPDIR)/libstrace_a-fetch_struct_stat64.Po \ + ./$(DEPDIR)/libstrace_a-fetch_struct_statfs.Po \ + ./$(DEPDIR)/libstrace_a-fetch_struct_xfs_quotastat.Po \ + ./$(DEPDIR)/libstrace_a-file_handle.Po \ + ./$(DEPDIR)/libstrace_a-file_ioctl.Po \ + ./$(DEPDIR)/libstrace_a-filter_qualify.Po \ + ./$(DEPDIR)/libstrace_a-filter_seccomp.Po \ + ./$(DEPDIR)/libstrace_a-flock.Po \ + ./$(DEPDIR)/libstrace_a-fs_x_ioctl.Po \ + ./$(DEPDIR)/libstrace_a-fsconfig.Po \ + ./$(DEPDIR)/libstrace_a-fsmount.Po \ + ./$(DEPDIR)/libstrace_a-fsopen.Po \ + ./$(DEPDIR)/libstrace_a-fspick.Po \ ./$(DEPDIR)/libstrace_a-fstatfs.Po \ ./$(DEPDIR)/libstrace_a-fstatfs64.Po \ + ./$(DEPDIR)/libstrace_a-futex.Po \ + ./$(DEPDIR)/libstrace_a-get_personality.Po \ + ./$(DEPDIR)/libstrace_a-get_robust_list.Po \ + ./$(DEPDIR)/libstrace_a-getcpu.Po \ + ./$(DEPDIR)/libstrace_a-getcwd.Po \ ./$(DEPDIR)/libstrace_a-getpagesize.Po \ + ./$(DEPDIR)/libstrace_a-getpid.Po \ + ./$(DEPDIR)/libstrace_a-getrandom.Po \ + ./$(DEPDIR)/libstrace_a-hdio.Po \ + ./$(DEPDIR)/libstrace_a-hostname.Po \ + ./$(DEPDIR)/libstrace_a-inotify.Po \ + ./$(DEPDIR)/libstrace_a-inotify_ioctl.Po \ + ./$(DEPDIR)/libstrace_a-io.Po \ + ./$(DEPDIR)/libstrace_a-io_uring.Po \ + ./$(DEPDIR)/libstrace_a-ioctl.Po \ + ./$(DEPDIR)/libstrace_a-ioperm.Po \ + ./$(DEPDIR)/libstrace_a-iopl.Po \ + ./$(DEPDIR)/libstrace_a-ioprio.Po \ ./$(DEPDIR)/libstrace_a-ipc.Po \ + ./$(DEPDIR)/libstrace_a-ipc_msg.Po \ + ./$(DEPDIR)/libstrace_a-ipc_msgctl.Po \ + ./$(DEPDIR)/libstrace_a-ipc_sem.Po \ + ./$(DEPDIR)/libstrace_a-ipc_semctl.Po \ + ./$(DEPDIR)/libstrace_a-ipc_shm.Po \ + ./$(DEPDIR)/libstrace_a-ipc_shmctl.Po \ + ./$(DEPDIR)/libstrace_a-kcmp.Po \ + ./$(DEPDIR)/libstrace_a-kexec.Po \ + ./$(DEPDIR)/libstrace_a-keyctl.Po \ + ./$(DEPDIR)/libstrace_a-kvm.Po ./$(DEPDIR)/libstrace_a-ldt.Po \ + ./$(DEPDIR)/libstrace_a-link.Po \ + ./$(DEPDIR)/libstrace_a-listen.Po \ + ./$(DEPDIR)/libstrace_a-lookup_dcookie.Po \ + ./$(DEPDIR)/libstrace_a-loop.Po \ + ./$(DEPDIR)/libstrace_a-lseek.Po \ + ./$(DEPDIR)/libstrace_a-mem.Po \ + ./$(DEPDIR)/libstrace_a-membarrier.Po \ + ./$(DEPDIR)/libstrace_a-memfd_create.Po \ + ./$(DEPDIR)/libstrace_a-mknod.Po \ ./$(DEPDIR)/libstrace_a-mmap_cache.Po \ + ./$(DEPDIR)/libstrace_a-mmap_notify.Po \ + ./$(DEPDIR)/libstrace_a-mmsghdr.Po \ + ./$(DEPDIR)/libstrace_a-mount.Po \ + ./$(DEPDIR)/libstrace_a-move_mount.Po \ + ./$(DEPDIR)/libstrace_a-mq.Po \ + ./$(DEPDIR)/libstrace_a-msghdr.Po \ + ./$(DEPDIR)/libstrace_a-mtd.Po \ + ./$(DEPDIR)/libstrace_a-nbd_ioctl.Po \ + ./$(DEPDIR)/libstrace_a-net.Po \ + ./$(DEPDIR)/libstrace_a-netlink.Po \ + ./$(DEPDIR)/libstrace_a-netlink_crypto.Po \ + ./$(DEPDIR)/libstrace_a-netlink_inet_diag.Po \ + ./$(DEPDIR)/libstrace_a-netlink_kobject_uevent.Po \ + ./$(DEPDIR)/libstrace_a-netlink_netfilter.Po \ + ./$(DEPDIR)/libstrace_a-netlink_netlink_diag.Po \ + ./$(DEPDIR)/libstrace_a-netlink_packet_diag.Po \ + ./$(DEPDIR)/libstrace_a-netlink_route.Po \ + ./$(DEPDIR)/libstrace_a-netlink_selinux.Po \ + ./$(DEPDIR)/libstrace_a-netlink_smc_diag.Po \ + ./$(DEPDIR)/libstrace_a-netlink_sock_diag.Po \ + ./$(DEPDIR)/libstrace_a-netlink_unix_diag.Po \ + ./$(DEPDIR)/libstrace_a-nlattr.Po \ + ./$(DEPDIR)/libstrace_a-nsfs.Po \ + ./$(DEPDIR)/libstrace_a-numa.Po \ + ./$(DEPDIR)/libstrace_a-number_set.Po \ + ./$(DEPDIR)/libstrace_a-oldstat.Po \ + ./$(DEPDIR)/libstrace_a-open.Po \ + ./$(DEPDIR)/libstrace_a-open_tree.Po \ + ./$(DEPDIR)/libstrace_a-or1k_atomic.Po \ + ./$(DEPDIR)/libstrace_a-pathtrace.Po \ + ./$(DEPDIR)/libstrace_a-perf.Po \ + ./$(DEPDIR)/libstrace_a-perf_ioctl.Po \ + ./$(DEPDIR)/libstrace_a-personality.Po \ + ./$(DEPDIR)/libstrace_a-pidfd_getfd.Po \ + ./$(DEPDIR)/libstrace_a-pidfd_open.Po \ + ./$(DEPDIR)/libstrace_a-pidns.Po \ + ./$(DEPDIR)/libstrace_a-pkeys.Po \ + ./$(DEPDIR)/libstrace_a-poll.Po \ + ./$(DEPDIR)/libstrace_a-prctl.Po \ + ./$(DEPDIR)/libstrace_a-print_aio_sigset.Po \ + ./$(DEPDIR)/libstrace_a-print_dev_t.Po \ + ./$(DEPDIR)/libstrace_a-print_group_req.Po \ + ./$(DEPDIR)/libstrace_a-print_ifindex.Po \ + ./$(DEPDIR)/libstrace_a-print_instruction_pointer.Po \ + ./$(DEPDIR)/libstrace_a-print_kernel_version.Po \ + ./$(DEPDIR)/libstrace_a-print_mac.Po \ + ./$(DEPDIR)/libstrace_a-print_mq_attr.Po \ + ./$(DEPDIR)/libstrace_a-print_msgbuf.Po \ + ./$(DEPDIR)/libstrace_a-print_sg_req_info.Po \ + ./$(DEPDIR)/libstrace_a-print_sigevent.Po \ + ./$(DEPDIR)/libstrace_a-print_statfs.Po \ + ./$(DEPDIR)/libstrace_a-print_struct_stat.Po \ + ./$(DEPDIR)/libstrace_a-print_syscall_number.Po \ + ./$(DEPDIR)/libstrace_a-print_time.Po \ + ./$(DEPDIR)/libstrace_a-print_timespec32.Po \ + ./$(DEPDIR)/libstrace_a-print_timespec64.Po \ + ./$(DEPDIR)/libstrace_a-print_timeval.Po \ + ./$(DEPDIR)/libstrace_a-print_timeval64.Po \ + ./$(DEPDIR)/libstrace_a-print_timex.Po \ + ./$(DEPDIR)/libstrace_a-printmode.Po \ + ./$(DEPDIR)/libstrace_a-printrusage.Po \ + ./$(DEPDIR)/libstrace_a-printsiginfo.Po \ + ./$(DEPDIR)/libstrace_a-process.Po \ + ./$(DEPDIR)/libstrace_a-process_vm.Po \ + ./$(DEPDIR)/libstrace_a-ptp.Po \ + ./$(DEPDIR)/libstrace_a-ptrace_syscall_info.Po \ + ./$(DEPDIR)/libstrace_a-quota.Po \ + ./$(DEPDIR)/libstrace_a-random_ioctl.Po \ + ./$(DEPDIR)/libstrace_a-readahead.Po \ + ./$(DEPDIR)/libstrace_a-readlink.Po \ + ./$(DEPDIR)/libstrace_a-reboot.Po \ + ./$(DEPDIR)/libstrace_a-renameat.Po \ + ./$(DEPDIR)/libstrace_a-resource.Po \ + ./$(DEPDIR)/libstrace_a-retval.Po \ + ./$(DEPDIR)/libstrace_a-riscv.Po \ + ./$(DEPDIR)/libstrace_a-rt_sigframe.Po \ + ./$(DEPDIR)/libstrace_a-rt_sigreturn.Po \ + ./$(DEPDIR)/libstrace_a-rtc.Po \ + ./$(DEPDIR)/libstrace_a-rtnl_addr.Po \ + ./$(DEPDIR)/libstrace_a-rtnl_addrlabel.Po \ + ./$(DEPDIR)/libstrace_a-rtnl_dcb.Po \ + ./$(DEPDIR)/libstrace_a-rtnl_link.Po \ + ./$(DEPDIR)/libstrace_a-rtnl_mdb.Po \ + ./$(DEPDIR)/libstrace_a-rtnl_neigh.Po \ + ./$(DEPDIR)/libstrace_a-rtnl_neightbl.Po \ + ./$(DEPDIR)/libstrace_a-rtnl_netconf.Po \ + ./$(DEPDIR)/libstrace_a-rtnl_nsid.Po \ + ./$(DEPDIR)/libstrace_a-rtnl_route.Po \ + ./$(DEPDIR)/libstrace_a-rtnl_rule.Po \ + ./$(DEPDIR)/libstrace_a-rtnl_tc.Po \ + ./$(DEPDIR)/libstrace_a-rtnl_tc_action.Po \ + ./$(DEPDIR)/libstrace_a-s390.Po \ + ./$(DEPDIR)/libstrace_a-sched.Po \ + ./$(DEPDIR)/libstrace_a-scsi.Po \ + ./$(DEPDIR)/libstrace_a-seccomp.Po \ + ./$(DEPDIR)/libstrace_a-sendfile.Po \ + ./$(DEPDIR)/libstrace_a-sg_io_v3.Po \ + ./$(DEPDIR)/libstrace_a-sg_io_v4.Po \ + ./$(DEPDIR)/libstrace_a-shutdown.Po \ + ./$(DEPDIR)/libstrace_a-sigaltstack.Po \ + ./$(DEPDIR)/libstrace_a-signal.Po \ + ./$(DEPDIR)/libstrace_a-signalfd.Po \ ./$(DEPDIR)/libstrace_a-sigreturn.Po \ + ./$(DEPDIR)/libstrace_a-sock.Po \ + ./$(DEPDIR)/libstrace_a-sockaddr.Po \ ./$(DEPDIR)/libstrace_a-socketcall.Po \ + ./$(DEPDIR)/libstrace_a-socketutils.Po \ + ./$(DEPDIR)/libstrace_a-sparc.Po \ + ./$(DEPDIR)/libstrace_a-sram_alloc.Po \ + ./$(DEPDIR)/libstrace_a-stage_output.Po \ + ./$(DEPDIR)/libstrace_a-stat.Po \ + ./$(DEPDIR)/libstrace_a-stat64.Po \ ./$(DEPDIR)/libstrace_a-statfs.Po \ ./$(DEPDIR)/libstrace_a-statfs64.Po \ + ./$(DEPDIR)/libstrace_a-statx.Po \ + ./$(DEPDIR)/libstrace_a-string_to_uint.Po \ + ./$(DEPDIR)/libstrace_a-swapon.Po \ ./$(DEPDIR)/libstrace_a-sync_file_range.Po \ ./$(DEPDIR)/libstrace_a-sync_file_range2.Po \ + ./$(DEPDIR)/libstrace_a-syscall.Po \ + ./$(DEPDIR)/libstrace_a-sysctl.Po \ + ./$(DEPDIR)/libstrace_a-sysinfo.Po \ + ./$(DEPDIR)/libstrace_a-syslog.Po \ + ./$(DEPDIR)/libstrace_a-sysmips.Po \ + ./$(DEPDIR)/libstrace_a-tee.Po ./$(DEPDIR)/libstrace_a-term.Po \ + ./$(DEPDIR)/libstrace_a-time.Po \ + ./$(DEPDIR)/libstrace_a-times.Po \ + ./$(DEPDIR)/libstrace_a-trie.Po \ + ./$(DEPDIR)/libstrace_a-truncate.Po \ + ./$(DEPDIR)/libstrace_a-ubi.Po \ + ./$(DEPDIR)/libstrace_a-ucopy.Po \ + ./$(DEPDIR)/libstrace_a-uid.Po \ + ./$(DEPDIR)/libstrace_a-uid16.Po \ + ./$(DEPDIR)/libstrace_a-umask.Po \ + ./$(DEPDIR)/libstrace_a-umount.Po \ + ./$(DEPDIR)/libstrace_a-uname.Po \ + ./$(DEPDIR)/libstrace_a-unwind-libdw.Po \ + ./$(DEPDIR)/libstrace_a-unwind-libunwind.Po \ + ./$(DEPDIR)/libstrace_a-unwind.Po \ ./$(DEPDIR)/libstrace_a-upeek.Po \ - ./$(DEPDIR)/libstrace_a-upoke.Po ./$(DEPDIR)/strace-access.Po \ - ./$(DEPDIR)/strace-affinity.Po ./$(DEPDIR)/strace-aio.Po \ - ./$(DEPDIR)/strace-alpha.Po \ - ./$(DEPDIR)/strace-basic_filters.Po ./$(DEPDIR)/strace-bind.Po \ - ./$(DEPDIR)/strace-bjm.Po ./$(DEPDIR)/strace-block.Po \ - ./$(DEPDIR)/strace-bpf.Po ./$(DEPDIR)/strace-bpf_attr_check.Po \ - ./$(DEPDIR)/strace-bpf_filter.Po \ - ./$(DEPDIR)/strace-bpf_seccomp_filter.Po \ - ./$(DEPDIR)/strace-bpf_sock_filter.Po \ - ./$(DEPDIR)/strace-btrfs.Po ./$(DEPDIR)/strace-cacheflush.Po \ - ./$(DEPDIR)/strace-capability.Po ./$(DEPDIR)/strace-chdir.Po \ - ./$(DEPDIR)/strace-chmod.Po ./$(DEPDIR)/strace-clone.Po \ - ./$(DEPDIR)/strace-copy_file_range.Po \ - ./$(DEPDIR)/strace-count.Po ./$(DEPDIR)/strace-delay.Po \ - ./$(DEPDIR)/strace-desc.Po ./$(DEPDIR)/strace-dirent.Po \ - ./$(DEPDIR)/strace-dirent64.Po ./$(DEPDIR)/strace-dm.Po \ - ./$(DEPDIR)/strace-dyxlat.Po ./$(DEPDIR)/strace-epoll.Po \ - ./$(DEPDIR)/strace-error_prints.Po ./$(DEPDIR)/strace-evdev.Po \ - ./$(DEPDIR)/strace-evdev_mpers.Po \ - ./$(DEPDIR)/strace-eventfd.Po ./$(DEPDIR)/strace-execve.Po \ - ./$(DEPDIR)/strace-fadvise.Po ./$(DEPDIR)/strace-fallocate.Po \ - ./$(DEPDIR)/strace-fanotify.Po ./$(DEPDIR)/strace-fchownat.Po \ - ./$(DEPDIR)/strace-fcntl.Po \ - ./$(DEPDIR)/strace-fetch_bpf_fprog.Po \ - ./$(DEPDIR)/strace-fetch_struct_flock.Po \ - ./$(DEPDIR)/strace-fetch_struct_keyctl_kdf_params.Po \ - ./$(DEPDIR)/strace-fetch_struct_mmsghdr.Po \ - ./$(DEPDIR)/strace-fetch_struct_msghdr.Po \ - ./$(DEPDIR)/strace-fetch_struct_stat.Po \ - ./$(DEPDIR)/strace-fetch_struct_stat64.Po \ - ./$(DEPDIR)/strace-fetch_struct_statfs.Po \ - ./$(DEPDIR)/strace-fetch_struct_xfs_quotastat.Po \ - ./$(DEPDIR)/strace-file_handle.Po \ - ./$(DEPDIR)/strace-file_ioctl.Po \ - ./$(DEPDIR)/strace-filter_qualify.Po \ - ./$(DEPDIR)/strace-flock.Po ./$(DEPDIR)/strace-fs_x_ioctl.Po \ - ./$(DEPDIR)/strace-futex.Po \ - ./$(DEPDIR)/strace-get_personality.Po \ - ./$(DEPDIR)/strace-get_robust_list.Po \ - ./$(DEPDIR)/strace-getcpu.Po ./$(DEPDIR)/strace-getcwd.Po \ - ./$(DEPDIR)/strace-getrandom.Po ./$(DEPDIR)/strace-hdio.Po \ - ./$(DEPDIR)/strace-hostname.Po ./$(DEPDIR)/strace-inotify.Po \ - ./$(DEPDIR)/strace-inotify_ioctl.Po ./$(DEPDIR)/strace-io.Po \ - ./$(DEPDIR)/strace-io_uring.Po ./$(DEPDIR)/strace-ioctl.Po \ - ./$(DEPDIR)/strace-ioperm.Po ./$(DEPDIR)/strace-iopl.Po \ - ./$(DEPDIR)/strace-ioprio.Po ./$(DEPDIR)/strace-ipc_msg.Po \ - ./$(DEPDIR)/strace-ipc_msgctl.Po ./$(DEPDIR)/strace-ipc_sem.Po \ - ./$(DEPDIR)/strace-ipc_shm.Po ./$(DEPDIR)/strace-ipc_shmctl.Po \ - ./$(DEPDIR)/strace-kcmp.Po ./$(DEPDIR)/strace-kexec.Po \ - ./$(DEPDIR)/strace-keyctl.Po ./$(DEPDIR)/strace-kvm.Po \ - ./$(DEPDIR)/strace-ldt.Po ./$(DEPDIR)/strace-link.Po \ - ./$(DEPDIR)/strace-listen.Po \ - ./$(DEPDIR)/strace-lookup_dcookie.Po \ - ./$(DEPDIR)/strace-loop.Po ./$(DEPDIR)/strace-lseek.Po \ - ./$(DEPDIR)/strace-mem.Po ./$(DEPDIR)/strace-membarrier.Po \ - ./$(DEPDIR)/strace-memfd_create.Po ./$(DEPDIR)/strace-mknod.Po \ - ./$(DEPDIR)/strace-mmap_notify.Po \ - ./$(DEPDIR)/strace-mmsghdr.Po ./$(DEPDIR)/strace-mount.Po \ - ./$(DEPDIR)/strace-mq.Po ./$(DEPDIR)/strace-msghdr.Po \ - ./$(DEPDIR)/strace-mtd.Po ./$(DEPDIR)/strace-nbd_ioctl.Po \ - ./$(DEPDIR)/strace-net.Po ./$(DEPDIR)/strace-netlink.Po \ - ./$(DEPDIR)/strace-netlink_crypto.Po \ - ./$(DEPDIR)/strace-netlink_inet_diag.Po \ - ./$(DEPDIR)/strace-netlink_kobject_uevent.Po \ - ./$(DEPDIR)/strace-netlink_netfilter.Po \ - ./$(DEPDIR)/strace-netlink_netlink_diag.Po \ - ./$(DEPDIR)/strace-netlink_packet_diag.Po \ - ./$(DEPDIR)/strace-netlink_route.Po \ - ./$(DEPDIR)/strace-netlink_selinux.Po \ - ./$(DEPDIR)/strace-netlink_smc_diag.Po \ - ./$(DEPDIR)/strace-netlink_sock_diag.Po \ - ./$(DEPDIR)/strace-netlink_unix_diag.Po \ - ./$(DEPDIR)/strace-nlattr.Po ./$(DEPDIR)/strace-nsfs.Po \ - ./$(DEPDIR)/strace-numa.Po ./$(DEPDIR)/strace-number_set.Po \ - ./$(DEPDIR)/strace-oldstat.Po ./$(DEPDIR)/strace-open.Po \ - ./$(DEPDIR)/strace-or1k_atomic.Po \ - ./$(DEPDIR)/strace-pathtrace.Po ./$(DEPDIR)/strace-perf.Po \ - ./$(DEPDIR)/strace-perf_ioctl.Po \ - ./$(DEPDIR)/strace-personality.Po ./$(DEPDIR)/strace-pkeys.Po \ - ./$(DEPDIR)/strace-poll.Po ./$(DEPDIR)/strace-prctl.Po \ - ./$(DEPDIR)/strace-print_aio_sigset.Po \ - ./$(DEPDIR)/strace-print_dev_t.Po \ - ./$(DEPDIR)/strace-print_group_req.Po \ - ./$(DEPDIR)/strace-print_ifindex.Po \ - ./$(DEPDIR)/strace-print_instruction_pointer.Po \ - ./$(DEPDIR)/strace-print_kernel_version.Po \ - ./$(DEPDIR)/strace-print_mac.Po \ - ./$(DEPDIR)/strace-print_mq_attr.Po \ - ./$(DEPDIR)/strace-print_msgbuf.Po \ - ./$(DEPDIR)/strace-print_sg_req_info.Po \ - ./$(DEPDIR)/strace-print_sigevent.Po \ - ./$(DEPDIR)/strace-print_statfs.Po \ - ./$(DEPDIR)/strace-print_struct_stat.Po \ - ./$(DEPDIR)/strace-print_time.Po \ - ./$(DEPDIR)/strace-print_timespec.Po \ - ./$(DEPDIR)/strace-print_timespec32.Po \ - ./$(DEPDIR)/strace-print_timespec64.Po \ - ./$(DEPDIR)/strace-print_timeval.Po \ - ./$(DEPDIR)/strace-print_timeval64.Po \ - ./$(DEPDIR)/strace-print_timex.Po \ - ./$(DEPDIR)/strace-printmode.Po \ - ./$(DEPDIR)/strace-printrusage.Po \ - ./$(DEPDIR)/strace-printsiginfo.Po \ - ./$(DEPDIR)/strace-process.Po ./$(DEPDIR)/strace-process_vm.Po \ - ./$(DEPDIR)/strace-ptp.Po \ - ./$(DEPDIR)/strace-ptrace_syscall_info.Po \ - ./$(DEPDIR)/strace-quota.Po ./$(DEPDIR)/strace-random_ioctl.Po \ - ./$(DEPDIR)/strace-readahead.Po ./$(DEPDIR)/strace-readlink.Po \ - ./$(DEPDIR)/strace-reboot.Po ./$(DEPDIR)/strace-renameat.Po \ - ./$(DEPDIR)/strace-resource.Po ./$(DEPDIR)/strace-retval.Po \ - ./$(DEPDIR)/strace-riscv.Po ./$(DEPDIR)/strace-rt_sigframe.Po \ - ./$(DEPDIR)/strace-rt_sigreturn.Po ./$(DEPDIR)/strace-rtc.Po \ - ./$(DEPDIR)/strace-rtnl_addr.Po \ - ./$(DEPDIR)/strace-rtnl_addrlabel.Po \ - ./$(DEPDIR)/strace-rtnl_dcb.Po ./$(DEPDIR)/strace-rtnl_link.Po \ - ./$(DEPDIR)/strace-rtnl_mdb.Po \ - ./$(DEPDIR)/strace-rtnl_neigh.Po \ - ./$(DEPDIR)/strace-rtnl_neightbl.Po \ - ./$(DEPDIR)/strace-rtnl_netconf.Po \ - ./$(DEPDIR)/strace-rtnl_nsid.Po \ - ./$(DEPDIR)/strace-rtnl_route.Po \ - ./$(DEPDIR)/strace-rtnl_rule.Po ./$(DEPDIR)/strace-rtnl_tc.Po \ - ./$(DEPDIR)/strace-rtnl_tc_action.Po \ - ./$(DEPDIR)/strace-s390.Po ./$(DEPDIR)/strace-sched.Po \ - ./$(DEPDIR)/strace-scsi.Po ./$(DEPDIR)/strace-seccomp.Po \ - ./$(DEPDIR)/strace-sendfile.Po ./$(DEPDIR)/strace-sg_io_v3.Po \ - ./$(DEPDIR)/strace-sg_io_v4.Po ./$(DEPDIR)/strace-shutdown.Po \ - ./$(DEPDIR)/strace-sigaltstack.Po ./$(DEPDIR)/strace-signal.Po \ - ./$(DEPDIR)/strace-signalfd.Po ./$(DEPDIR)/strace-sock.Po \ - ./$(DEPDIR)/strace-sockaddr.Po \ - ./$(DEPDIR)/strace-socketutils.Po ./$(DEPDIR)/strace-sparc.Po \ - ./$(DEPDIR)/strace-sram_alloc.Po ./$(DEPDIR)/strace-stat.Po \ - ./$(DEPDIR)/strace-stat64.Po ./$(DEPDIR)/strace-statfs.Po \ - ./$(DEPDIR)/strace-statx.Po ./$(DEPDIR)/strace-strace.Po \ - ./$(DEPDIR)/strace-string_to_uint.Po \ - ./$(DEPDIR)/strace-swapon.Po ./$(DEPDIR)/strace-syscall.Po \ - ./$(DEPDIR)/strace-sysctl.Po ./$(DEPDIR)/strace-sysinfo.Po \ - ./$(DEPDIR)/strace-syslog.Po ./$(DEPDIR)/strace-sysmips.Po \ - ./$(DEPDIR)/strace-term.Po ./$(DEPDIR)/strace-time.Po \ - ./$(DEPDIR)/strace-times.Po ./$(DEPDIR)/strace-truncate.Po \ - ./$(DEPDIR)/strace-ubi.Po ./$(DEPDIR)/strace-ucopy.Po \ - ./$(DEPDIR)/strace-uid.Po ./$(DEPDIR)/strace-uid16.Po \ - ./$(DEPDIR)/strace-umask.Po ./$(DEPDIR)/strace-umount.Po \ - ./$(DEPDIR)/strace-uname.Po ./$(DEPDIR)/strace-unwind-libdw.Po \ - ./$(DEPDIR)/strace-unwind-libunwind.Po \ - ./$(DEPDIR)/strace-unwind.Po ./$(DEPDIR)/strace-userfaultfd.Po \ - ./$(DEPDIR)/strace-ustat.Po ./$(DEPDIR)/strace-util.Po \ - ./$(DEPDIR)/strace-utime.Po ./$(DEPDIR)/strace-utimes.Po \ - ./$(DEPDIR)/strace-v4l2.Po ./$(DEPDIR)/strace-wait.Po \ - ./$(DEPDIR)/strace-xattr.Po ./$(DEPDIR)/strace-xlat.Po \ - ./$(DEPDIR)/strace-xmalloc.Po + ./$(DEPDIR)/libstrace_a-upoke.Po \ + ./$(DEPDIR)/libstrace_a-userfaultfd.Po \ + ./$(DEPDIR)/libstrace_a-ustat.Po \ + ./$(DEPDIR)/libstrace_a-util.Po \ + ./$(DEPDIR)/libstrace_a-utime.Po \ + ./$(DEPDIR)/libstrace_a-utimes.Po \ + ./$(DEPDIR)/libstrace_a-v4l2.Po \ + ./$(DEPDIR)/libstrace_a-wait.Po \ + ./$(DEPDIR)/libstrace_a-watchdog_ioctl.Po \ + ./$(DEPDIR)/libstrace_a-xattr.Po \ + ./$(DEPDIR)/libstrace_a-xgetdents.Po \ + ./$(DEPDIR)/libstrace_a-xlat.Po \ + ./$(DEPDIR)/libstrace_a-xmalloc.Po \ + ./$(DEPDIR)/strace-strace.Po \ + types/$(DEPDIR)/libstrace_a-check-btrfs.Po \ + types/$(DEPDIR)/libstrace_a-check-cryptouser.Po \ + types/$(DEPDIR)/libstrace_a-check-evdev.Po \ + types/$(DEPDIR)/libstrace_a-check-io_uring.Po \ + types/$(DEPDIR)/libstrace_a-check-loop.Po \ + types/$(DEPDIR)/libstrace_a-check-openat2.Po \ + types/$(DEPDIR)/libstrace_a-check-rtnl_link.Po \ + types/$(DEPDIR)/libstrace_a-check-rtnl_mdb.Po \ + types/$(DEPDIR)/libstrace_a-check-rtnl_neightbl.Po \ + types/$(DEPDIR)/libstrace_a-check-rtnl_route.Po \ + types/$(DEPDIR)/libstrace_a-check-tee.Po \ + types/$(DEPDIR)/libstrace_a-check-v4l2.Po am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -795,8 +1008,8 @@ am__v_CCLD_1 = SOURCES = $(libmpers_m32_a_SOURCES) $(libmpers_mx32_a_SOURCES) \ $(libstrace_a_SOURCES) $(strace_SOURCES) DIST_SOURCES = $(am__libmpers_m32_a_SOURCES_DIST) \ - $(am__libmpers_mx32_a_SOURCES_DIST) $(libstrace_a_SOURCES) \ - $(am__strace_SOURCES_DIST) + $(am__libmpers_mx32_a_SOURCES_DIST) \ + $(am__libstrace_a_SOURCES_DIST) $(strace_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ @@ -825,8 +1038,8 @@ am__extra_recursive_targets = check-valgrind-recursive \ check-valgrind-memcheck-recursive \ check-valgrind-helgrind-recursive check-valgrind-drd-recursive \ check-valgrind-sgcheck-recursive -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ - $(LISP)config.h.in +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \ + config.h.in # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. @@ -850,10 +1063,10 @@ DIST_SUBDIRS = . tests tests-m32 tests-mx32 am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(srcdir)/mpers.am $(srcdir)/scno.am \ $(srcdir)/strace-log-merge.1.in $(srcdir)/strace.1.in \ - $(srcdir)/strace.spec.in $(srcdir)/xlat/Makemodule.am \ - $(top_srcdir)/debian/changelog.in AUTHORS COPYING INSTALL NEWS \ - README compile config.guess config.sub depcomp install-sh \ - missing + $(srcdir)/strace.spec.in $(srcdir)/types/Makemodule.am \ + $(srcdir)/xlat/Makemodule.am $(top_srcdir)/debian/changelog.in \ + AUTHORS COPYING INSTALL NEWS README ar-lib compile \ + config.guess config.sub depcomp install-sh missing DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) @@ -892,6 +1105,8 @@ am__relativize = \ DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.xz GZIP_ENV = --best DIST_TARGETS = dist-xz dist-gzip +# Exists only to be overridden by the user if desired. +AM_DISTCHECK_DVI_TARGET = dvi distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' @@ -899,6 +1114,7 @@ distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -908,8 +1124,12 @@ BUILD_OBJEXT = @BUILD_OBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ +CC_FOR_M32 = @CC_FOR_M32@ +CC_FOR_MX32 = @CC_FOR_MX32@ CFLAGS = @CFLAGS@ CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ +CFLAGS_FOR_M32 = @CFLAGS_FOR_M32@ +CFLAGS_FOR_MX32 = @CFLAGS_FOR_MX32@ CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@ CODE_COVERAGE_CPPFLAGS = @CODE_COVERAGE_CPPFLAGS@ CODE_COVERAGE_CXXFLAGS = @CODE_COVERAGE_CXXFLAGS@ @@ -920,7 +1140,11 @@ COPYRIGHT_YEAR = @COPYRIGHT_YEAR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@ +CPPFLAGS_FOR_M32 = @CPPFLAGS_FOR_M32@ +CPPFLAGS_FOR_MX32 = @CPPFLAGS_FOR_MX32@ CPP_FOR_BUILD = @CPP_FOR_BUILD@ +CPP_FOR_M32 = @CPP_FOR_M32@ +CPP_FOR_MX32 = @CPP_FOR_MX32@ CYGPATH_W = @CYGPATH_W@ DEB_CHANGELOGTIME = @DEB_CHANGELOGTIME@ DEFS = @DEFS@ @@ -962,7 +1186,6 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PERL = @PERL@ RANLIB = @RANLIB@ READELF = @READELF@ RPM_CHANGELOGTIME = @RPM_CHANGELOGTIME@ @@ -981,6 +1204,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CC_FOR_BUILD = @ac_ct_CC_FOR_BUILD@ am__include = @am__include@ @@ -1058,7 +1282,7 @@ bin_SCRIPTS = strace-graph strace-log-merge OS = linux # ARCH is `i386', `m68k', `sparc', etc. ARCH = @arch@ -ACLOCAL_AMFLAGS = -I m4 +ACLOCAL_AMFLAGS = -I m4 -I types -I xlat AM_CFLAGS = $(WARN_CFLAGS) AM_CPPFLAGS = -I$(builddir)/$(OS)/$(ARCH) \ -I$(srcdir)/$(OS)/$(ARCH) \ @@ -1069,10 +1293,13 @@ AM_CPPFLAGS = -I$(builddir)/$(OS)/$(ARCH) \ AM_CFLAGS_FOR_BUILD = $(WARN_CFLAGS_FOR_BUILD) AM_CPPFLAGS_FOR_BUILD = $(AM_CPPFLAGS) -XLAT_INPUT_FILES = xlat/access_flags.in xlat/addrfams.in \ +TYPES_HEADER_FILES = types/btrfs.h types/cryptouser.h types/evdev.h types/io_uring.h types/loop.h types/openat2.h types/rtnl_link.h types/rtnl_mdb.h types/rtnl_neightbl.h types/rtnl_route.h types/tee.h types/v4l2.h +TYPES_CHECK_FILES = types/check-btrfs.c types/check-cryptouser.c types/check-evdev.c types/check-io_uring.c types/check-loop.c types/check-openat2.c types/check-rtnl_link.c types/check-rtnl_mdb.c types/check-rtnl_neightbl.c types/check-rtnl_route.c types/check-tee.c types/check-v4l2.c +XLAT_INPUT_FILES = xlat/access_modes.in xlat/addrfams.in \ xlat/adjtimex_modes.in xlat/adjtimex_state.in \ xlat/adjtimex_status.in xlat/advise.in xlat/af_packet_types.in \ - xlat/af_packet_versions.in xlat/aio_cmds.in xlat/archvals.in \ + xlat/af_packet_versions.in xlat/aio_cmds.in \ + xlat/aio_iocb_flags.in xlat/archvals.in \ xlat/arp_hardware_types.in xlat/at_flags.in \ xlat/at_statx_sync_types.in xlat/atomic_ops.in \ xlat/audit_arch.in xlat/ax25_protocols.in xlat/baud_options.in \ @@ -1082,12 +1309,12 @@ XLAT_INPUT_FILES = xlat/access_flags.in xlat/addrfams.in \ xlat/bootflags3.in xlat/bpf_attach_flags.in \ xlat/bpf_attach_type.in xlat/bpf_class.in xlat/bpf_commands.in \ xlat/bpf_file_mode_flags.in xlat/bpf_map_flags.in \ - xlat/bpf_map_types.in xlat/bpf_map_update_elem_flags.in \ - xlat/bpf_miscop.in xlat/bpf_mode.in xlat/bpf_op_alu.in \ - xlat/bpf_op_jmp.in xlat/bpf_prog_flags.in \ - xlat/bpf_prog_types.in xlat/bpf_query_flags.in \ - xlat/bpf_rval.in xlat/bpf_size.in xlat/bpf_src.in \ - xlat/bpf_task_fd_type.in xlat/bsg_flags.in \ + xlat/bpf_map_lookup_elem_flags.in xlat/bpf_map_types.in \ + xlat/bpf_map_update_elem_flags.in xlat/bpf_miscop.in \ + xlat/bpf_mode.in xlat/bpf_op_alu.in xlat/bpf_op_jmp.in \ + xlat/bpf_prog_flags.in xlat/bpf_prog_types.in \ + xlat/bpf_query_flags.in xlat/bpf_rval.in xlat/bpf_size.in \ + xlat/bpf_src.in xlat/bpf_task_fd_type.in xlat/bsg_flags.in \ xlat/bsg_protocol.in xlat/bsg_subprotocol.in \ xlat/bt_protocols.in xlat/btrfs_balance_args.in \ xlat/btrfs_balance_ctl_cmds.in xlat/btrfs_balance_flags.in \ @@ -1106,33 +1333,38 @@ XLAT_INPUT_FILES = xlat/access_flags.in xlat/addrfams.in \ xlat/btrfs_qgroup_status_flags.in xlat/btrfs_scrub_flags.in \ xlat/btrfs_send_flags.in xlat/btrfs_snap_flags_v2.in \ xlat/btrfs_space_info_flags.in xlat/btrfs_tree_objectids.in \ - xlat/cacheflush_scope.in xlat/caif_protocols.in \ - xlat/can_protocols.in xlat/cap.in xlat/cap_mask0.in \ - xlat/cap_mask1.in xlat/cap_version.in xlat/clockflags.in \ - xlat/clocknames.in xlat/clone_flags.in xlat/cpuclocknames.in \ + xlat/cacheflush_flags.in xlat/cacheflush_scope.in \ + xlat/caif_protocols.in xlat/can_protocols.in xlat/cap.in \ + xlat/cap_mask0.in xlat/cap_mask1.in xlat/cap_version.in \ + xlat/clockflags.in xlat/clocknames.in xlat/clone3_flags.in \ + xlat/clone_flags.in xlat/close_range_flags.in \ + xlat/cpuclocknames.in xlat/crypto_msgs.in \ xlat/crypto_nl_attrs.in xlat/dcb_commands.in \ xlat/delete_module_flags.in xlat/dirent_types.in \ xlat/dm_flags.in xlat/ebpf_class.in xlat/ebpf_mode.in \ xlat/ebpf_op_alu.in xlat/ebpf_op_jmp.in xlat/ebpf_regs.in \ - xlat/ebpf_size.in xlat/efd_flags.in xlat/epollctls.in \ - xlat/epollevents.in xlat/epollflags.in \ + xlat/ebpf_size.in xlat/efd_flags.in xlat/elf_em.in \ + xlat/epollctls.in xlat/epollevents.in xlat/epollflags.in \ xlat/ethernet_protocols.in xlat/evdev_abs.in \ xlat/evdev_autorepeat.in xlat/evdev_ev.in \ xlat/evdev_ff_status.in xlat/evdev_ff_types.in \ - xlat/evdev_keycode.in xlat/evdev_leds.in xlat/evdev_misc.in \ - xlat/evdev_mtslots.in xlat/evdev_prop.in \ - xlat/evdev_relative_axes.in xlat/evdev_snd.in \ - xlat/evdev_switch.in xlat/f_owner_types.in xlat/f_seals.in \ - xlat/falloc_flags.in xlat/fan_classes.in \ - xlat/fan_event_flags.in xlat/fan_init_flags.in \ - xlat/fan_mark_flags.in xlat/fcntlcmds.in xlat/fdflags.in \ - xlat/fib_rule_actions.in xlat/fib_rule_flags.in \ - xlat/fiemap_extent_flags.in xlat/fiemap_flags.in \ - xlat/flockcmds.in xlat/fsmagic.in xlat/futexbitset.in \ - xlat/futexops.in xlat/futexwakecmps.in xlat/futexwakeops.in \ - xlat/getrandom_flags.in xlat/getsock_ip_options.in \ - xlat/getsock_ipv6_options.in xlat/getsock_options.in \ - xlat/hci_channels.in xlat/hw_breakpoint_len.in \ + xlat/evdev_ioctl_cmds.in xlat/evdev_keycode.in \ + xlat/evdev_leds.in xlat/evdev_misc.in xlat/evdev_mtslots.in \ + xlat/evdev_prop.in xlat/evdev_relative_axes.in \ + xlat/evdev_snd.in xlat/evdev_switch.in xlat/f_owner_types.in \ + xlat/f_seals.in xlat/faccessat_flags.in xlat/falloc_flags.in \ + xlat/fan_classes.in xlat/fan_event_flags.in \ + xlat/fan_init_flags.in xlat/fan_mark_flags.in \ + xlat/fcntlcmds.in xlat/fdflags.in xlat/fib_rule_actions.in \ + xlat/fib_rule_flags.in xlat/fiemap_extent_flags.in \ + xlat/fiemap_flags.in xlat/flockcmds.in xlat/fsconfig_cmds.in \ + xlat/fsmagic.in xlat/fsmount_flags.in xlat/fsopen_flags.in \ + xlat/fspick_flags.in xlat/futexbitset.in xlat/futexops.in \ + xlat/futexwakecmps.in xlat/futexwakeops.in \ + xlat/get_mempolicy_flags.in xlat/getrandom_flags.in \ + xlat/getsock_ip_options.in xlat/getsock_ipv6_options.in \ + xlat/getsock_options.in xlat/hci_channels.in \ + xlat/hdio_drive_cmds.in xlat/hw_breakpoint_len.in \ xlat/hw_breakpoint_type.in xlat/icmpfilterflags.in \ xlat/if_dqblk_valid.in xlat/if_dqinfo_flags.in \ xlat/if_dqinfo_valid.in xlat/ifaddrflags.in xlat/iffflags.in \ @@ -1149,19 +1381,23 @@ XLAT_INPUT_FILES = xlat/access_flags.in xlat/addrfams.in \ xlat/kcm_protocols.in xlat/kcmp_types.in \ xlat/kexec_arch_values.in xlat/kexec_file_load_flags.in \ xlat/kexec_load_flags.in xlat/key_perms.in xlat/key_reqkeys.in \ - xlat/key_spec.in xlat/keyctl_commands.in xlat/kvm_cap.in \ + xlat/key_spec.in xlat/keyctl_caps0.in xlat/keyctl_caps1.in \ + xlat/keyctl_commands.in xlat/keyctl_move_flags.in \ + xlat/keyctl_pkey_ops.in xlat/kvm_cap.in \ xlat/kvm_cpuid_flags.in xlat/kvm_exit_reason.in \ xlat/kvm_mem_flags.in xlat/lockfcmds.in xlat/loop_cmds.in \ xlat/loop_crypt_type_options.in xlat/loop_flags_options.in \ xlat/lwtunnel_encap_types.in xlat/madvise_cmds.in \ - xlat/mbindflags.in xlat/mctl_sync.in xlat/mdb_flags.in \ + xlat/mbind_flags.in xlat/mctl_sync.in xlat/mdb_flags.in \ xlat/mdb_states.in xlat/membarrier_cmds.in \ - xlat/memfd_create_flags.in xlat/mempolicyflags.in \ - xlat/mlock_flags.in xlat/mlockall_flags.in xlat/mmap_flags.in \ - xlat/mmap_prot.in xlat/modem_flags.in xlat/modetypes.in \ - xlat/module_init_flags.in xlat/mount_flags.in \ - xlat/move_pages_flags.in xlat/mq_attr_flags.in \ - xlat/mremap_flags.in xlat/msg_flags.in xlat/msgctl_flags.in \ + xlat/memfd_create_flags.in xlat/mlock_flags.in \ + xlat/mlockall_flags.in xlat/mmap_flags.in xlat/mmap_prot.in \ + xlat/modem_flags.in xlat/modetypes.in \ + xlat/module_init_flags.in xlat/mount_attr_flags.in \ + xlat/mount_flags.in xlat/move_mount_flags.in \ + xlat/move_pages_flags.in xlat/mpol_mode_flags.in \ + xlat/mpol_modes.in xlat/mq_attr_flags.in xlat/mremap_flags.in \ + xlat/msg_flags.in xlat/msgctl_flags.in \ xlat/mtd_file_mode_options.in xlat/mtd_flags_options.in \ xlat/mtd_mode_options.in xlat/mtd_nandecc_options.in \ xlat/mtd_otp_options.in xlat/mtd_type_options.in \ @@ -1189,7 +1425,8 @@ XLAT_INPUT_FILES = xlat/access_flags.in xlat/addrfams.in \ xlat/nl_xfrm_types.in xlat/nlmsgerr_attrs.in \ xlat/notifyflags.in xlat/nt_descriptor_types.in \ xlat/numa_node.in xlat/open_access_modes.in \ - xlat/open_mode_flags.in xlat/packet_diag_attrs.in \ + xlat/open_mode_flags.in xlat/open_resolve_flags.in \ + xlat/open_tree_flags.in xlat/packet_diag_attrs.in \ xlat/packet_diag_info_flags.in xlat/packet_diag_show.in \ xlat/packet_mreq_type.in xlat/perf_attr_size.in \ xlat/perf_branch_sample_type.in xlat/perf_event_open_flags.in \ @@ -1200,16 +1437,15 @@ XLAT_INPUT_FILES = xlat/access_flags.in xlat/addrfams.in \ xlat/perf_ioctl_flags.in xlat/perf_sw_ids.in \ xlat/perf_type_id.in xlat/personality_flags.in \ xlat/personality_types.in xlat/phonet_protocols.in \ - xlat/pkey_access.in xlat/policies.in xlat/pollflags.in \ - xlat/pr_cap_ambient.in xlat/pr_dumpable.in xlat/pr_fp_mode.in \ - xlat/pr_mce_kill.in xlat/pr_mce_kill_policy.in \ - xlat/pr_set_mm.in xlat/pr_spec_cmds.in \ - xlat/pr_spec_get_store_bypass_flags.in \ + xlat/pkey_access.in xlat/pollflags.in xlat/pr_cap_ambient.in \ + xlat/pr_dumpable.in xlat/pr_fp_mode.in xlat/pr_mce_kill.in \ + xlat/pr_mce_kill_policy.in xlat/pr_set_mm.in \ + xlat/pr_spec_cmds.in xlat/pr_spec_get_store_bypass_flags.in \ xlat/pr_spec_set_store_bypass_flags.in xlat/pr_sve_vl_flags.in \ xlat/pr_tsc.in xlat/pr_unalign_flags.in xlat/prctl_options.in \ - xlat/priorities.in xlat/ptp_flags_options.in \ - xlat/ptrace_cmds.in xlat/ptrace_events.in \ - xlat/ptrace_peeksiginfo_flags.in \ + xlat/priorities.in xlat/ptp_extts_flags.in \ + xlat/ptp_perout_flags.in xlat/ptrace_cmds.in \ + xlat/ptrace_events.in xlat/ptrace_peeksiginfo_flags.in \ xlat/ptrace_setoptions_flags.in xlat/ptrace_syscall_info_op.in \ xlat/quota_formats.in xlat/quotacmds.in xlat/quotatypes.in \ xlat/random_ioctl_cmds.in xlat/rename_flags.in \ @@ -1217,7 +1453,8 @@ XLAT_INPUT_FILES = xlat/access_flags.in xlat/addrfams.in \ xlat/riscv_flush_icache_flags.in xlat/route_nexthop_flags.in \ xlat/routing_flags.in xlat/routing_protocols.in \ xlat/routing_scopes.in xlat/routing_table_ids.in \ - xlat/routing_types.in xlat/rtnl_addr_attrs.in \ + xlat/routing_types.in xlat/rtc_ioctl_cmds.in \ + xlat/rtc_vl_flags.in xlat/rtnl_addr_attrs.in \ xlat/rtnl_addrlabel_attrs.in xlat/rtnl_dcb_attrs.in \ xlat/rtnl_ifla_af_spec_inet6_attrs.in \ xlat/rtnl_ifla_af_spec_inet_attrs.in \ @@ -1237,7 +1474,8 @@ XLAT_INPUT_FILES = xlat/access_flags.in xlat/addrfams.in \ xlat/rtnl_netconf_attrs.in xlat/rtnl_nsid_attrs.in \ xlat/rtnl_route_attrs.in xlat/rtnl_rta_metrics_attrs.in \ xlat/rtnl_rule_attrs.in xlat/rtnl_tc_action_attrs.in \ - xlat/rtnl_tc_attrs.in xlat/rtnl_tca_stab_attrs.in \ + xlat/rtnl_tc_attrs.in xlat/rtnl_tca_act_flags.in \ + xlat/rtnl_tca_act_hw_stats.in xlat/rtnl_tca_stab_attrs.in \ xlat/rtnl_tca_stats_attrs.in xlat/rwf_flags.in \ xlat/s390_guarded_storage_commands.in \ xlat/s390_runtime_instr_commands.in \ @@ -1289,39 +1527,51 @@ XLAT_INPUT_FILES = xlat/access_flags.in xlat/addrfams.in \ xlat/sysctl_net_ipv4_route.in xlat/sysctl_net_ipv6.in \ xlat/sysctl_net_ipv6_route.in xlat/sysctl_net_unix.in \ xlat/sysctl_root.in xlat/sysctl_vm.in \ - xlat/syslog_action_type.in xlat/sysmips_operations.in \ - xlat/tcflsh_options.in xlat/tcp_state_flags.in \ - xlat/tcp_states.in xlat/tcxonc_options.in xlat/timerfdflags.in \ - xlat/tun_device_types.in xlat/ubi_volume_props.in \ - xlat/ubi_volume_types.in xlat/uffd_api_features.in \ - xlat/uffd_api_flags.in xlat/uffd_copy_flags.in \ - xlat/uffd_flags.in xlat/uffd_register_ioctl_flags.in \ + xlat/syslog_action_type.in xlat/syslog_console_levels.in \ + xlat/sysmips_operations.in xlat/tcflsh_options.in \ + xlat/tcp_state_flags.in xlat/tcp_states.in \ + xlat/tcxonc_options.in xlat/tee_ioctl_cmds.in \ + xlat/tee_ioctl_gen_caps.in xlat/tee_ioctl_impl_ids.in \ + xlat/tee_ioctl_login_types.in xlat/tee_ioctl_max_arg_size.in \ + xlat/tee_ioctl_optee_caps.in xlat/tee_ioctl_origins.in \ + xlat/tee_ioctl_param_attr_types.in xlat/tee_ioctl_shm_flags.in \ + xlat/timerfdflags.in xlat/tun_device_types.in \ + xlat/ubi_volume_props.in xlat/ubi_volume_types.in \ + xlat/uffd_api_features.in xlat/uffd_api_flags.in \ + xlat/uffd_copy_flags.in xlat/uffd_flags.in \ + xlat/uffd_register_ioctl_flags.in \ xlat/uffd_register_mode_flags.in xlat/uffd_zeropage_flags.in \ xlat/umount_flags.in xlat/unix_diag_attrs.in \ xlat/unix_diag_show.in xlat/unshare_flags.in \ - xlat/uring_enter_flags.in xlat/uring_register_opcodes.in \ + xlat/uring_cqring_flags.in xlat/uring_enter_flags.in \ + xlat/uring_op_flags.in xlat/uring_ops.in \ + xlat/uring_register_opcodes.in xlat/uring_setup_features.in \ xlat/uring_setup_flags.in xlat/usagewho.in \ - xlat/v4l2_buf_flags.in xlat/v4l2_buf_types.in \ - xlat/v4l2_capture_modes.in xlat/v4l2_colorspaces.in \ - xlat/v4l2_control_classes.in xlat/v4l2_control_flags.in \ - xlat/v4l2_control_id_bases.in xlat/v4l2_control_ids.in \ + xlat/v4l2_buf_flags.in xlat/v4l2_buf_flags_masks.in \ + xlat/v4l2_buf_flags_ts_src.in xlat/v4l2_buf_flags_ts_type.in \ + xlat/v4l2_buf_types.in xlat/v4l2_capture_modes.in \ + xlat/v4l2_colorspaces.in xlat/v4l2_control_classes.in \ + xlat/v4l2_control_flags.in xlat/v4l2_control_id_bases.in \ + xlat/v4l2_control_ids.in xlat/v4l2_control_query_flags.in \ xlat/v4l2_control_types.in \ xlat/v4l2_device_capabilities_flags.in xlat/v4l2_fields.in \ xlat/v4l2_format_description_flags.in \ xlat/v4l2_frameinterval_types.in xlat/v4l2_framesize_types.in \ - xlat/v4l2_input_types.in xlat/v4l2_memories.in \ - xlat/v4l2_pix_fmts.in xlat/v4l2_sdr_fmts.in \ - xlat/v4l2_sliced_flags.in xlat/v4l2_streaming_capabilities.in \ + xlat/v4l2_input_types.in xlat/v4l2_ioctl_cmds.in \ + xlat/v4l2_memories.in xlat/v4l2_pix_fmts.in \ + xlat/v4l2_sdr_fmts.in xlat/v4l2_sliced_flags.in \ + xlat/v4l2_streaming_capabilities.in \ xlat/v4l2_tuner_audmodes.in xlat/v4l2_tuner_capabilities.in \ xlat/v4l2_tuner_rxsubchanses.in xlat/v4l2_tuner_types.in \ xlat/v4l2_vbi_flags.in xlat/wait4_options.in \ - xlat/waitid_types.in xlat/whence_codes.in xlat/xattrflags.in \ - xlat/xdp_flags.in xlat/xfs_dqblk_flags.in \ - xlat/xfs_quota_flags.in -XLAT_HEADER_FILES = xlat/access_flags.h xlat/addrfams.h \ + xlat/waitid_types.in xlat/watchdog_ioctl_cmds.in \ + xlat/whence_codes.in xlat/xattrflags.in xlat/xdp_flags.in \ + xlat/xfs_dqblk_flags.in xlat/xfs_quota_flags.in +XLAT_HEADER_FILES = xlat/access_modes.h xlat/addrfams.h \ xlat/adjtimex_modes.h xlat/adjtimex_state.h \ xlat/adjtimex_status.h xlat/advise.h xlat/af_packet_types.h \ - xlat/af_packet_versions.h xlat/aio_cmds.h xlat/archvals.h \ + xlat/af_packet_versions.h xlat/aio_cmds.h \ + xlat/aio_iocb_flags.h xlat/archvals.h \ xlat/arp_hardware_types.h xlat/at_flags.h \ xlat/at_statx_sync_types.h xlat/atomic_ops.h xlat/audit_arch.h \ xlat/ax25_protocols.h xlat/baud_options.h xlat/bdaddr_types.h \ @@ -1331,9 +1581,10 @@ XLAT_HEADER_FILES = xlat/access_flags.h xlat/addrfams.h \ xlat/bpf_attach_flags.h xlat/bpf_attach_type.h \ xlat/bpf_class.h xlat/bpf_commands.h \ xlat/bpf_file_mode_flags.h xlat/bpf_map_flags.h \ - xlat/bpf_map_types.h xlat/bpf_map_update_elem_flags.h \ - xlat/bpf_miscop.h xlat/bpf_mode.h xlat/bpf_op_alu.h \ - xlat/bpf_op_jmp.h xlat/bpf_prog_flags.h xlat/bpf_prog_types.h \ + xlat/bpf_map_lookup_elem_flags.h xlat/bpf_map_types.h \ + xlat/bpf_map_update_elem_flags.h xlat/bpf_miscop.h \ + xlat/bpf_mode.h xlat/bpf_op_alu.h xlat/bpf_op_jmp.h \ + xlat/bpf_prog_flags.h xlat/bpf_prog_types.h \ xlat/bpf_query_flags.h xlat/bpf_rval.h xlat/bpf_size.h \ xlat/bpf_src.h xlat/bpf_task_fd_type.h xlat/bsg_flags.h \ xlat/bsg_protocol.h xlat/bsg_subprotocol.h xlat/bt_protocols.h \ @@ -1352,57 +1603,66 @@ XLAT_HEADER_FILES = xlat/access_flags.h xlat/addrfams.h \ xlat/btrfs_qgroup_status_flags.h xlat/btrfs_scrub_flags.h \ xlat/btrfs_send_flags.h xlat/btrfs_snap_flags_v2.h \ xlat/btrfs_space_info_flags.h xlat/btrfs_tree_objectids.h \ - xlat/cacheflush_scope.h xlat/caif_protocols.h \ - xlat/can_protocols.h xlat/cap.h xlat/cap_mask0.h \ - xlat/cap_mask1.h xlat/cap_version.h xlat/clockflags.h \ - xlat/clocknames.h xlat/clone_flags.h xlat/cpuclocknames.h \ - xlat/crypto_nl_attrs.h xlat/dcb_commands.h \ - xlat/delete_module_flags.h xlat/dirent_types.h xlat/dm_flags.h \ - xlat/ebpf_class.h xlat/ebpf_mode.h xlat/ebpf_op_alu.h \ - xlat/ebpf_op_jmp.h xlat/ebpf_regs.h xlat/ebpf_size.h \ - xlat/efd_flags.h xlat/epollctls.h xlat/epollevents.h \ + xlat/cacheflush_flags.h xlat/cacheflush_scope.h \ + xlat/caif_protocols.h xlat/can_protocols.h xlat/cap.h \ + xlat/cap_mask0.h xlat/cap_mask1.h xlat/cap_version.h \ + xlat/clockflags.h xlat/clocknames.h xlat/clone3_flags.h \ + xlat/clone_flags.h xlat/close_range_flags.h \ + xlat/cpuclocknames.h xlat/crypto_msgs.h xlat/crypto_nl_attrs.h \ + xlat/dcb_commands.h xlat/delete_module_flags.h \ + xlat/dirent_types.h xlat/dm_flags.h xlat/ebpf_class.h \ + xlat/ebpf_mode.h xlat/ebpf_op_alu.h xlat/ebpf_op_jmp.h \ + xlat/ebpf_regs.h xlat/ebpf_size.h xlat/efd_flags.h \ + xlat/elf_em.h xlat/epollctls.h xlat/epollevents.h \ xlat/epollflags.h xlat/ethernet_protocols.h xlat/evdev_abs.h \ xlat/evdev_autorepeat.h xlat/evdev_ev.h xlat/evdev_ff_status.h \ - xlat/evdev_ff_types.h xlat/evdev_keycode.h xlat/evdev_leds.h \ - xlat/evdev_misc.h xlat/evdev_mtslots.h xlat/evdev_prop.h \ + xlat/evdev_ff_types.h xlat/evdev_ioctl_cmds.h \ + xlat/evdev_keycode.h xlat/evdev_leds.h xlat/evdev_misc.h \ + xlat/evdev_mtslots.h xlat/evdev_prop.h \ xlat/evdev_relative_axes.h xlat/evdev_snd.h \ xlat/evdev_switch.h xlat/f_owner_types.h xlat/f_seals.h \ - xlat/falloc_flags.h xlat/fan_classes.h xlat/fan_event_flags.h \ - xlat/fan_init_flags.h xlat/fan_mark_flags.h xlat/fcntlcmds.h \ - xlat/fdflags.h xlat/fib_rule_actions.h xlat/fib_rule_flags.h \ + xlat/faccessat_flags.h xlat/falloc_flags.h xlat/fan_classes.h \ + xlat/fan_event_flags.h xlat/fan_init_flags.h \ + xlat/fan_mark_flags.h xlat/fcntlcmds.h xlat/fdflags.h \ + xlat/fib_rule_actions.h xlat/fib_rule_flags.h \ xlat/fiemap_extent_flags.h xlat/fiemap_flags.h \ - xlat/flockcmds.h xlat/fsmagic.h xlat/futexbitset.h \ - xlat/futexops.h xlat/futexwakecmps.h xlat/futexwakeops.h \ + xlat/flockcmds.h xlat/fsconfig_cmds.h xlat/fsmagic.h \ + xlat/fsmount_flags.h xlat/fsopen_flags.h xlat/fspick_flags.h \ + xlat/futexbitset.h xlat/futexops.h xlat/futexwakecmps.h \ + xlat/futexwakeops.h xlat/get_mempolicy_flags.h \ xlat/getrandom_flags.h xlat/getsock_ip_options.h \ xlat/getsock_ipv6_options.h xlat/getsock_options.h \ - xlat/hci_channels.h xlat/hw_breakpoint_len.h \ - xlat/hw_breakpoint_type.h xlat/icmpfilterflags.h \ - xlat/if_dqblk_valid.h xlat/if_dqinfo_flags.h \ - xlat/if_dqinfo_valid.h xlat/ifaddrflags.h xlat/iffflags.h \ - xlat/in6_addr_gen_mode.h xlat/inet6_devconf_indices.h \ - xlat/inet6_if_flags.h xlat/inet_devconf_indices.h \ - xlat/inet_diag_attrs.h xlat/inet_diag_bytecodes.h \ - xlat/inet_diag_extended_flags.h xlat/inet_diag_req_attrs.h \ - xlat/inet_protocols.h xlat/inotify_flags.h \ - xlat/inotify_init_flags.h xlat/ioctl_dirs.h \ - xlat/ioprio_class.h xlat/ioprio_who.h xlat/ip_cmsg_types.h \ - xlat/ip_type_of_services.h xlat/ipc_msg_flags.h \ - xlat/ipc_private.h xlat/ipccalls.h xlat/irda_protocols.h \ - xlat/isdn_protocols.h xlat/itimer_which.h xlat/kcm_protocols.h \ - xlat/kcmp_types.h xlat/kexec_arch_values.h \ - xlat/kexec_file_load_flags.h xlat/kexec_load_flags.h \ - xlat/key_perms.h xlat/key_reqkeys.h xlat/key_spec.h \ - xlat/keyctl_commands.h xlat/kvm_cap.h xlat/kvm_cpuid_flags.h \ + xlat/hci_channels.h xlat/hdio_drive_cmds.h \ + xlat/hw_breakpoint_len.h xlat/hw_breakpoint_type.h \ + xlat/icmpfilterflags.h xlat/if_dqblk_valid.h \ + xlat/if_dqinfo_flags.h xlat/if_dqinfo_valid.h \ + xlat/ifaddrflags.h xlat/iffflags.h xlat/in6_addr_gen_mode.h \ + xlat/inet6_devconf_indices.h xlat/inet6_if_flags.h \ + xlat/inet_devconf_indices.h xlat/inet_diag_attrs.h \ + xlat/inet_diag_bytecodes.h xlat/inet_diag_extended_flags.h \ + xlat/inet_diag_req_attrs.h xlat/inet_protocols.h \ + xlat/inotify_flags.h xlat/inotify_init_flags.h \ + xlat/ioctl_dirs.h xlat/ioprio_class.h xlat/ioprio_who.h \ + xlat/ip_cmsg_types.h xlat/ip_type_of_services.h \ + xlat/ipc_msg_flags.h xlat/ipc_private.h xlat/ipccalls.h \ + xlat/irda_protocols.h xlat/isdn_protocols.h \ + xlat/itimer_which.h xlat/kcm_protocols.h xlat/kcmp_types.h \ + xlat/kexec_arch_values.h xlat/kexec_file_load_flags.h \ + xlat/kexec_load_flags.h xlat/key_perms.h xlat/key_reqkeys.h \ + xlat/key_spec.h xlat/keyctl_caps0.h xlat/keyctl_caps1.h \ + xlat/keyctl_commands.h xlat/keyctl_move_flags.h \ + xlat/keyctl_pkey_ops.h xlat/kvm_cap.h xlat/kvm_cpuid_flags.h \ xlat/kvm_exit_reason.h xlat/kvm_mem_flags.h xlat/lockfcmds.h \ xlat/loop_cmds.h xlat/loop_crypt_type_options.h \ xlat/loop_flags_options.h xlat/lwtunnel_encap_types.h \ - xlat/madvise_cmds.h xlat/mbindflags.h xlat/mctl_sync.h \ + xlat/madvise_cmds.h xlat/mbind_flags.h xlat/mctl_sync.h \ xlat/mdb_flags.h xlat/mdb_states.h xlat/membarrier_cmds.h \ - xlat/memfd_create_flags.h xlat/mempolicyflags.h \ - xlat/mlock_flags.h xlat/mlockall_flags.h xlat/mmap_flags.h \ - xlat/mmap_prot.h xlat/modem_flags.h xlat/modetypes.h \ - xlat/module_init_flags.h xlat/mount_flags.h \ - xlat/move_pages_flags.h xlat/mq_attr_flags.h \ + xlat/memfd_create_flags.h xlat/mlock_flags.h \ + xlat/mlockall_flags.h xlat/mmap_flags.h xlat/mmap_prot.h \ + xlat/modem_flags.h xlat/modetypes.h xlat/module_init_flags.h \ + xlat/mount_attr_flags.h xlat/mount_flags.h \ + xlat/move_mount_flags.h xlat/move_pages_flags.h \ + xlat/mpol_mode_flags.h xlat/mpol_modes.h xlat/mq_attr_flags.h \ xlat/mremap_flags.h xlat/msg_flags.h xlat/msgctl_flags.h \ xlat/mtd_file_mode_options.h xlat/mtd_flags_options.h \ xlat/mtd_mode_options.h xlat/mtd_nandecc_options.h \ @@ -1430,6 +1690,7 @@ XLAT_HEADER_FILES = xlat/access_flags.h xlat/addrfams.h \ xlat/nl_xfrm_types.h xlat/nlmsgerr_attrs.h xlat/notifyflags.h \ xlat/nt_descriptor_types.h xlat/numa_node.h \ xlat/open_access_modes.h xlat/open_mode_flags.h \ + xlat/open_resolve_flags.h xlat/open_tree_flags.h \ xlat/packet_diag_attrs.h xlat/packet_diag_info_flags.h \ xlat/packet_diag_show.h xlat/packet_mreq_type.h \ xlat/perf_attr_size.h xlat/perf_branch_sample_type.h \ @@ -1439,14 +1700,14 @@ XLAT_HEADER_FILES = xlat/access_flags.h xlat/addrfams.h \ xlat/perf_hw_id.h xlat/perf_ioctl_cmds.h \ xlat/perf_ioctl_flags.h xlat/perf_sw_ids.h xlat/perf_type_id.h \ xlat/personality_flags.h xlat/personality_types.h \ - xlat/phonet_protocols.h xlat/pkey_access.h xlat/policies.h \ - xlat/pollflags.h xlat/pr_cap_ambient.h xlat/pr_dumpable.h \ - xlat/pr_fp_mode.h xlat/pr_mce_kill.h xlat/pr_mce_kill_policy.h \ - xlat/pr_set_mm.h xlat/pr_spec_cmds.h \ - xlat/pr_spec_get_store_bypass_flags.h \ + xlat/phonet_protocols.h xlat/pkey_access.h xlat/pollflags.h \ + xlat/pr_cap_ambient.h xlat/pr_dumpable.h xlat/pr_fp_mode.h \ + xlat/pr_mce_kill.h xlat/pr_mce_kill_policy.h xlat/pr_set_mm.h \ + xlat/pr_spec_cmds.h xlat/pr_spec_get_store_bypass_flags.h \ xlat/pr_spec_set_store_bypass_flags.h xlat/pr_sve_vl_flags.h \ xlat/pr_tsc.h xlat/pr_unalign_flags.h xlat/prctl_options.h \ - xlat/priorities.h xlat/ptp_flags_options.h xlat/ptrace_cmds.h \ + xlat/priorities.h xlat/ptp_extts_flags.h \ + xlat/ptp_perout_flags.h xlat/ptrace_cmds.h \ xlat/ptrace_events.h xlat/ptrace_peeksiginfo_flags.h \ xlat/ptrace_setoptions_flags.h xlat/ptrace_syscall_info_op.h \ xlat/quota_formats.h xlat/quotacmds.h xlat/quotatypes.h \ @@ -1455,9 +1716,9 @@ XLAT_HEADER_FILES = xlat/access_flags.h xlat/addrfams.h \ xlat/riscv_flush_icache_flags.h xlat/route_nexthop_flags.h \ xlat/routing_flags.h xlat/routing_protocols.h \ xlat/routing_scopes.h xlat/routing_table_ids.h \ - xlat/routing_types.h xlat/rtnl_addr_attrs.h \ - xlat/rtnl_addrlabel_attrs.h xlat/rtnl_dcb_attrs.h \ - xlat/rtnl_ifla_af_spec_inet6_attrs.h \ + xlat/routing_types.h xlat/rtc_ioctl_cmds.h xlat/rtc_vl_flags.h \ + xlat/rtnl_addr_attrs.h xlat/rtnl_addrlabel_attrs.h \ + xlat/rtnl_dcb_attrs.h xlat/rtnl_ifla_af_spec_inet6_attrs.h \ xlat/rtnl_ifla_af_spec_inet_attrs.h \ xlat/rtnl_ifla_brport_attrs.h xlat/rtnl_ifla_events.h \ xlat/rtnl_ifla_info_attrs.h \ @@ -1473,7 +1734,8 @@ XLAT_HEADER_FILES = xlat/access_flags.h xlat/addrfams.h \ xlat/rtnl_netconf_attrs.h xlat/rtnl_nsid_attrs.h \ xlat/rtnl_route_attrs.h xlat/rtnl_rta_metrics_attrs.h \ xlat/rtnl_rule_attrs.h xlat/rtnl_tc_action_attrs.h \ - xlat/rtnl_tc_attrs.h xlat/rtnl_tca_stab_attrs.h \ + xlat/rtnl_tc_attrs.h xlat/rtnl_tca_act_flags.h \ + xlat/rtnl_tca_act_hw_stats.h xlat/rtnl_tca_stab_attrs.h \ xlat/rtnl_tca_stats_attrs.h xlat/rwf_flags.h \ xlat/s390_guarded_storage_commands.h \ xlat/s390_runtime_instr_commands.h \ @@ -1523,8 +1785,13 @@ XLAT_HEADER_FILES = xlat/access_flags.h xlat/addrfams.h \ xlat/sysctl_net_ipv4_route.h xlat/sysctl_net_ipv6.h \ xlat/sysctl_net_ipv6_route.h xlat/sysctl_net_unix.h \ xlat/sysctl_root.h xlat/sysctl_vm.h xlat/syslog_action_type.h \ - xlat/sysmips_operations.h xlat/tcflsh_options.h \ - xlat/tcp_state_flags.h xlat/tcp_states.h xlat/tcxonc_options.h \ + xlat/syslog_console_levels.h xlat/sysmips_operations.h \ + xlat/tcflsh_options.h xlat/tcp_state_flags.h xlat/tcp_states.h \ + xlat/tcxonc_options.h xlat/tee_ioctl_cmds.h \ + xlat/tee_ioctl_gen_caps.h xlat/tee_ioctl_impl_ids.h \ + xlat/tee_ioctl_login_types.h xlat/tee_ioctl_max_arg_size.h \ + xlat/tee_ioctl_optee_caps.h xlat/tee_ioctl_origins.h \ + xlat/tee_ioctl_param_attr_types.h xlat/tee_ioctl_shm_flags.h \ xlat/timerfdflags.h xlat/tun_device_types.h \ xlat/ubi_volume_props.h xlat/ubi_volume_types.h \ xlat/uffd_api_features.h xlat/uffd_api_flags.h \ @@ -1533,23 +1800,28 @@ XLAT_HEADER_FILES = xlat/access_flags.h xlat/addrfams.h \ xlat/uffd_register_mode_flags.h xlat/uffd_zeropage_flags.h \ xlat/umount_flags.h xlat/unix_diag_attrs.h \ xlat/unix_diag_show.h xlat/unshare_flags.h \ - xlat/uring_enter_flags.h xlat/uring_register_opcodes.h \ + xlat/uring_cqring_flags.h xlat/uring_enter_flags.h \ + xlat/uring_op_flags.h xlat/uring_ops.h \ + xlat/uring_register_opcodes.h xlat/uring_setup_features.h \ xlat/uring_setup_flags.h xlat/usagewho.h xlat/v4l2_buf_flags.h \ - xlat/v4l2_buf_types.h xlat/v4l2_capture_modes.h \ - xlat/v4l2_colorspaces.h xlat/v4l2_control_classes.h \ - xlat/v4l2_control_flags.h xlat/v4l2_control_id_bases.h \ - xlat/v4l2_control_ids.h xlat/v4l2_control_types.h \ + xlat/v4l2_buf_flags_masks.h xlat/v4l2_buf_flags_ts_src.h \ + xlat/v4l2_buf_flags_ts_type.h xlat/v4l2_buf_types.h \ + xlat/v4l2_capture_modes.h xlat/v4l2_colorspaces.h \ + xlat/v4l2_control_classes.h xlat/v4l2_control_flags.h \ + xlat/v4l2_control_id_bases.h xlat/v4l2_control_ids.h \ + xlat/v4l2_control_query_flags.h xlat/v4l2_control_types.h \ xlat/v4l2_device_capabilities_flags.h xlat/v4l2_fields.h \ xlat/v4l2_format_description_flags.h \ xlat/v4l2_frameinterval_types.h xlat/v4l2_framesize_types.h \ - xlat/v4l2_input_types.h xlat/v4l2_memories.h \ - xlat/v4l2_pix_fmts.h xlat/v4l2_sdr_fmts.h \ + xlat/v4l2_input_types.h xlat/v4l2_ioctl_cmds.h \ + xlat/v4l2_memories.h xlat/v4l2_pix_fmts.h xlat/v4l2_sdr_fmts.h \ xlat/v4l2_sliced_flags.h xlat/v4l2_streaming_capabilities.h \ xlat/v4l2_tuner_audmodes.h xlat/v4l2_tuner_capabilities.h \ xlat/v4l2_tuner_rxsubchanses.h xlat/v4l2_tuner_types.h \ xlat/v4l2_vbi_flags.h xlat/wait4_options.h xlat/waitid_types.h \ - xlat/whence_codes.h xlat/xattrflags.h xlat/xdp_flags.h \ - xlat/xfs_dqblk_flags.h xlat/xfs_quota_flags.h + xlat/watchdog_ioctl_cmds.h xlat/whence_codes.h \ + xlat/xattrflags.h xlat/xdp_flags.h xlat/xfs_dqblk_flags.h \ + xlat/xfs_quota_flags.h strace_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_3) $(am__append_8) \ $(am__append_11) $(CODE_COVERAGE_CPPFLAGS) strace_CFLAGS = $(AM_CFLAGS) $(am__append_4) $(CODE_COVERAGE_CFLAGS) @@ -1557,69 +1829,58 @@ strace_LDFLAGS = $(am__append_5) $(am__append_9) $(am__append_12) strace_LDADD = libstrace.a $(clock_LIBS) $(timer_LIBS) $(am__append_6) \ $(am__append_10) $(am__append_13) $(CODE_COVERAGE_LIBS) \ $(am__append_14) $(am__append_18) +strace_SOURCES = strace.c noinst_LIBRARIES = libstrace.a $(am__append_15) $(am__append_19) libstrace_a_CPPFLAGS = $(strace_CPPFLAGS) libstrace_a_CFLAGS = $(strace_CFLAGS) -libstrace_a_SOURCES = \ - fetch_indirect_syscall_args.c \ - fstatfs.c \ - fstatfs64.c \ - getpagesize.c \ - ipc.c \ - mmap_cache.c \ - mmap_cache.h \ - sigreturn.c \ - socketcall.c \ - statfs.c \ - statfs64.c \ - sync_file_range.c \ - sync_file_range2.c \ - upeek.c \ - upoke.c \ - # end of libstrace_a_SOURCES - -strace_SOURCES = access.c affinity.c aio.c alpha.c arch_defs.h \ +libstrace_a_SOURCES = access.c affinity.c aio.c alpha.c arch_defs.h \ basic_filters.c bind.c bjm.c block.c bpf.c bpf_attr.h \ bpf_filter.c bpf_filter.h bpf_fprog.h bpf_seccomp_filter.c \ bpf_sock_filter.c btrfs.c cacheflush.c capability.c caps0.h \ - caps1.h chdir.c chmod.c clone.c copy_file_range.c count.c \ - defs.h delay.c delay.h desc.c dirent.c dirent64.c dm.c \ - dyxlat.c empty.h epoll.c error_prints.c error_prints.h evdev.c \ - evdev_mpers.c eventfd.c execve.c f_owner_ex.h fadvise.c \ - fallocate.c fanotify.c fchownat.c fcntl.c fetch_bpf_fprog.c \ - fetch_struct_flock.c fetch_struct_keyctl_kdf_params.c \ - fetch_struct_mmsghdr.c fetch_struct_msghdr.c \ - fetch_struct_stat.c fetch_struct_stat64.c \ - fetch_struct_statfs.c fetch_struct_xfs_quotastat.c \ - file_handle.c file_ioctl.c filter.h filter_qualify.c flock.c \ - flock.h fs_x_ioctl.c futex.c gcc_compat.h get_personality.c \ - get_personality.h get_robust_list.c getcpu.c getcwd.c \ - getrandom.c hdio.c hostname.c inotify.c inotify_ioctl.c io.c \ - io_uring.c ioctl.c ioperm.c iopl.c ioprio.c ipc_defs.h \ - ipc_msg.c ipc_msgctl.c ipc_sem.c ipc_shm.c ipc_shmctl.c kcmp.c \ - kernel_timespec.h kernel_timeval.h kernel_timex.h \ - kernel_types.h kexec.c keyctl.c keyctl_kdf_params.h \ + caps1.h chdir.c chmod.c clone.c close_range.c \ + copy_file_range.c count.c defs.h delay.c delay.h desc.c \ + dirent.c dirent64.c dirent_types.c dm.c dup.c dyxlat.c empty.h \ + epoll.c error_prints.c error_prints.h evdev.c evdev_mpers.c \ + eventfd.c execve.c f_owner_ex.h fadvise.c fallocate.c \ + fanotify.c fchownat.c fcntl.c fetch_bpf_fprog.c \ + fetch_indirect_syscall_args.c fetch_struct_flock.c \ + fetch_struct_keyctl_kdf_params.c fetch_struct_mmsghdr.c \ + fetch_struct_msghdr.c fetch_struct_stat.c \ + fetch_struct_stat64.c fetch_struct_statfs.c \ + fetch_struct_xfs_quotastat.c file_handle.c file_ioctl.c \ + filter.h filter_qualify.c filter_seccomp.c filter_seccomp.h \ + flock.c flock.h fs_x_ioctl.c fsconfig.c fsmount.c fsopen.c \ + fspick.c fstatfs.c fstatfs64.c futex.c gcc_compat.h \ + get_personality.c get_personality.h get_robust_list.c getcpu.c \ + getcwd.c getpagesize.c getpid.c getrandom.c hdio.c hostname.c \ + inotify.c inotify_ioctl.c io.c io_uring.c ioctl.c ioperm.c \ + iopl.c ioprio.c ipc.c ipc_defs.h ipc_msg.c ipc_msgctl.c \ + ipc_sem.c ipc_semctl.c ipc_shm.c ipc_shmctl.c kcmp.c \ + kernel_dirent.h kernel_rusage.h kernel_timespec.h \ + kernel_timeval.h kernel_timex.h kernel_types.h \ + kernel_v4l2_types.h kexec.c keyctl.c keyctl_kdf_params.h \ kill_save_errno.h kvm.c largefile_wrappers.h ldt.c link.c \ linux/asm_stat.h linux/x32/asm_stat.h linux/x86_64/asm_stat.h \ list.h listen.c lookup_dcookie.c loop.c lseek.c macros.h mem.c \ - membarrier.c memfd_create.c mknod.c mmap_notify.c \ - mmap_notify.h mmsghdr.c mount.c mpers_type.h mq.c msghdr.c \ - msghdr.h mtd.c native_defs.h nbd_ioctl.c negated_errno.h net.c \ - netlink.c netlink.h netlink_crypto.c netlink_inet_diag.c \ - netlink_kobject_uevent.c netlink_kobject_uevent.h \ - netlink_netfilter.c netlink_netlink_diag.c \ - netlink_packet_diag.c netlink_route.c netlink_route.h \ - netlink_selinux.c netlink_smc_diag.c netlink_sock_diag.c \ - netlink_sock_diag.h netlink_unix_diag.c nlattr.c nlattr.h \ - nsfs.c nsfs.h nsig.h numa.c number_set.c number_set.h \ - oldstat.c open.c or1k_atomic.c pathtrace.c perf.c \ - perf_event_struct.h perf_ioctl.c personality.c pkeys.c poll.c \ - prctl.c print_aio_sigset.c print_dev_t.c print_fields.h \ + membarrier.c memfd_create.c mknod.c mmap_cache.c mmap_cache.h \ + mmap_notify.c mmap_notify.h mmsghdr.c mount.c move_mount.c \ + mpers_type.h mq.c msghdr.c msghdr.h mtd.c native_defs.h \ + nbd_ioctl.c negated_errno.h net.c netlink.c netlink.h \ + netlink_crypto.c netlink_inet_diag.c netlink_kobject_uevent.c \ + netlink_kobject_uevent.h netlink_netfilter.c \ + netlink_netlink_diag.c netlink_packet_diag.c netlink_route.c \ + netlink_route.h netlink_selinux.c netlink_smc_diag.c \ + netlink_sock_diag.c netlink_sock_diag.h netlink_unix_diag.c \ + nlattr.c nlattr.h nsfs.c nsfs.h nsig.h numa.c number_set.c \ + number_set.h oldstat.c open.c open_tree.c or1k_atomic.c \ + pathtrace.c perf.c perf_event_struct.h perf_ioctl.c \ + personality.c pidfd_getfd.c pidfd_open.c pidns.c pkeys.c \ + poll.c prctl.c print_aio_sigset.c print_dev_t.c print_fields.h \ print_group_req.c print_ifindex.c print_instruction_pointer.c \ print_kernel_version.c print_mac.c print_mq_attr.c \ print_msgbuf.c print_sg_req_info.c print_sigevent.c \ - print_statfs.c print_struct_stat.c print_time.c \ - print_timespec.c print_timespec.h print_timespec32.c \ + print_statfs.c print_struct_stat.c print_syscall_number.c \ + print_time.c print_timespec.h print_timespec32.c \ print_timespec64.c print_timeval.c print_timeval64.c \ print_timex.c print_timex.h print_utils.h printmode.c \ printrusage.c printsiginfo.c printsiginfo.h process.c \ @@ -1632,23 +1893,26 @@ strace_SOURCES = access.c affinity.c aio.c alpha.c arch_defs.h \ rtnl_route.c rtnl_rule.c rtnl_tc.c rtnl_tc_action.c s390.c \ sched.c sched_attr.h scsi.c seccomp.c sendfile.c sg_io_v3.c \ sg_io_v4.c shutdown.c sigaltstack.c sigevent.h signal.c \ - signalfd.c sock.c sockaddr.c socketutils.c sparc.c \ - sram_alloc.c stat.c stat.h stat64.c statfs.c statfs.h \ - static_assert.h statx.c statx.h strace.c string_to_uint.c \ - string_to_uint.h swapon.c syscall.c sysctl.c sysent.h \ - sysent_shorthand_defs.h sysent_shorthand_undefs.h sysinfo.c \ - syslog.c sysmips.c term.c time.c times.c trace_event.h \ - truncate.c ubi.c ucopy.c uid.c uid16.c umask.c umount.c \ - uname.c userfaultfd.c ustat.c util.c utime.c utimes.c v4l2.c \ - wait.c wait.h xattr.c xfs_quota_stat.h xlat.c xlat.h xmalloc.c \ - xmalloc.h xstring.h $(strace_SOURCES_check) $(am__append_1) \ - $(am__append_2) $(am__append_7) -strace_SOURCES_check = bpf_attr_check.c + signalfd.c sigreturn.c sock.c sockaddr.c socketcall.c \ + socketutils.c sparc.c sram_alloc.c stage_output.c stat.c \ + stat.h stat64.c statfs.c statfs.c statfs.h statfs64.c \ + static_assert.h statx.c statx.h string_to_uint.c \ + string_to_uint.h swapon.c sync_file_range.c sync_file_range2.c \ + syscall.c sysctl.c sysent.h sysent_shorthand_defs.h \ + sysent_shorthand_undefs.h sysinfo.c syslog.c sysmips.c tee.c \ + term.c time.c times.c trace_event.h trie.c trie.h truncate.c \ + ubi.c ucopy.c uid.c uid16.c umask.c umount.c uname.c upeek.c \ + upoke.c userfaultfd.c ustat.c util.c utime.c utimes.c v4l2.c \ + wait.c wait.h watchdog_ioctl.c xattr.c xfs_quota_stat.h \ + xgetdents.c xgetdents.h xlat.c xlat.h xmalloc.c xmalloc.h \ + xstring.h $(TYPES_HEADER_FILES) $(strace_SOURCES_check) \ + $(am__append_1) $(am__append_2) $(am__append_7) +strace_SOURCES_check = bpf_attr_check.c $(TYPES_CHECK_FILES) CODE_COVERAGE_BRANCH_COVERAGE = 1 CODE_COVERAGE_GENHTML_OPTIONS = $(CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT) \ --prefix $(shell cd $(abs_top_srcdir)/.. && pwd || echo .) -CODE_COVERAGE_IGNORE_PATTERN = '/usr/include/*' +CODE_COVERAGE_IGNORE_PATTERN = '/usr/include/*' '*/tests/*' '*/tests-m32/*' '*/tests-mx32/*' # Enable this to get link map generated #strace_LDFLAGS += -Wl,-Map=strace.mapfile @@ -1662,6 +1926,7 @@ EXTRA_DIST = \ LGPL-2.1-or-later \ README-configure \ README-linux-ptrace \ + copyright-year-gen \ debian/changelog \ debian/compat \ debian/control \ @@ -1676,14 +1941,17 @@ EXTRA_DIST = \ debian/strace64.install \ debian/strace64.manpages \ debian/watch \ + file-date-gen \ gen_bpf_attr_check.sh \ generate_sen.sh \ + git-version-gen \ ioctl_iocdef.c \ ioctlsort.c \ linux/32/ioctls_inc.h \ linux/32/ioctls_inc_align16.h \ linux/32/ioctls_inc_align32.h \ linux/32/ioctls_inc_align64.h \ + linux/32/syscallent-time32.h \ linux/32/syscallent.h \ linux/64/ioctls_inc.h \ linux/64/syscallent.h \ @@ -1798,7 +2066,6 @@ EXTRA_DIST = \ linux/hppa/get_error.c \ linux/hppa/get_scno.c \ linux/hppa/get_syscall_args.c \ - linux/hppa/get_syscall_result.c \ linux/hppa/ioctls_arch0.h \ linux/hppa/ioctls_inc0.h \ linux/hppa/raw_syscall.h \ @@ -1839,7 +2106,9 @@ EXTRA_DIST = \ linux/ia64/rt_sigframe.h \ linux/ia64/set_error.c \ linux/ia64/set_scno.c \ + linux/ia64/shuffle_scno.c \ linux/ia64/syscallent.h \ + linux/ia64/syscallent_base_nr.h \ linux/ia64/userent.h \ linux/inet_diag.h \ linux/m68k/arch_defs_.h \ @@ -1968,27 +2237,38 @@ EXTRA_DIST = \ linux/powerpc64/syscallent.h \ linux/powerpc64/syscallent1.h \ linux/powerpc64/userent.h \ + linux/powerpc64le/arch_defs_.h \ + linux/powerpc64le/arch_regs.c \ + linux/powerpc64le/arch_rt_sigframe.c \ + linux/powerpc64le/errnoent.h \ + linux/powerpc64le/get_error.c \ + linux/powerpc64le/get_scno.c \ + linux/powerpc64le/get_syscall_args.c \ + linux/powerpc64le/ioctls_arch0.h \ + linux/powerpc64le/ioctls_inc0.h \ + linux/powerpc64le/raw_syscall.h \ + linux/powerpc64le/rt_sigframe.h \ + linux/powerpc64le/set_error.c \ + linux/powerpc64le/set_scno.c \ + linux/powerpc64le/syscallent.h \ + linux/powerpc64le/userent.h \ linux/ptrace_pokeuser.c \ linux/raw_syscall.h \ - linux/riscv/arch_defs_.h \ - linux/riscv/arch_get_personality.c \ - linux/riscv/arch_regs.c \ - linux/riscv/get_error.c \ - linux/riscv/get_scno.c \ - linux/riscv/get_syscall_args.c \ - linux/riscv/ioctls_arch0.h \ - linux/riscv/ioctls_arch1.h \ - linux/riscv/ioctls_inc0.h \ - linux/riscv/ioctls_inc1.h \ - linux/riscv/raw_syscall.h \ - linux/riscv/set_error.c \ - linux/riscv/set_scno.c \ - linux/riscv/syscallent.h \ - linux/riscv/syscallent1.h \ + linux/riscv64/arch_regs.c \ + linux/riscv64/get_error.c \ + linux/riscv64/get_scno.c \ + linux/riscv64/get_syscall_args.c \ + linux/riscv64/ioctls_arch0.h \ + linux/riscv64/ioctls_inc0.h \ + linux/riscv64/raw_syscall.h \ + linux/riscv64/set_error.c \ + linux/riscv64/set_scno.c \ + linux/riscv64/syscallent.h \ linux/rt_sigframe.h \ linux/s390/arch_defs_.h \ linux/s390/arch_regs.c \ linux/s390/arch_sigreturn.c \ + linux/s390/check_scno.c \ linux/s390/get_error.c \ linux/s390/get_scno.c \ linux/s390/get_syscall_args.c \ @@ -2006,6 +2286,7 @@ EXTRA_DIST = \ linux/s390x/arch_get_personality.c \ linux/s390x/arch_regs.c \ linux/s390x/arch_sigreturn.c \ + linux/s390x/check_scno.c \ linux/s390x/get_error.c \ linux/s390x/get_scno.c \ linux/s390x/get_syscall_args.c \ @@ -2026,7 +2307,6 @@ EXTRA_DIST = \ linux/sh/get_error.c \ linux/sh/get_scno.c \ linux/sh/get_syscall_args.c \ - linux/sh/get_syscall_result.c \ linux/sh/ioctls_arch0.h \ linux/sh/ioctls_inc0.h \ linux/sh/raw_syscall.h \ @@ -2037,11 +2317,9 @@ EXTRA_DIST = \ linux/sh/userent0.h \ linux/sh64/arch_defs_.h \ linux/sh64/arch_regs.c \ - linux/sh64/arch_regs.h \ linux/sh64/get_error.c \ linux/sh64/get_scno.c \ linux/sh64/get_syscall_args.c \ - linux/sh64/get_syscall_result.c \ linux/sh64/ioctls_arch0.h \ linux/sh64/ioctls_inc0.h \ linux/sh64/raw_syscall.h \ @@ -2098,6 +2376,9 @@ EXTRA_DIST = \ linux/subcall32.h \ linux/subcall64.h \ linux/syscall.h \ + linux/syscallent-common-32.h \ + linux/syscallent-common.h \ + linux/syscallent_base_nr.h \ linux/tile/arch_defs_.h \ linux/tile/arch_get_personality.c \ linux/tile/arch_regs.c \ @@ -2174,7 +2455,6 @@ EXTRA_DIST = \ linux/xtensa/get_error.c \ linux/xtensa/get_scno.c \ linux/xtensa/get_syscall_args.c \ - linux/xtensa/get_syscall_result.c \ linux/xtensa/ioctls_arch0.h \ linux/xtensa/ioctls_inc0.h \ linux/xtensa/raw_syscall.h \ @@ -2190,6 +2470,8 @@ EXTRA_DIST = \ strace-graph \ strace-log-merge \ strace.spec \ + types/find_last_type_fields.awk \ + types/gen.sh \ $(XLAT_INPUT_FILES) \ $(XLAT_HEADER_FILES) \ xlat/gen.sh \ @@ -2200,6 +2482,7 @@ strace_SOURCES_c = \ sys_func_h_sources = $(filter-out $(strace_SOURCES_check),$(strace_SOURCES_c)) syscallent_names = subcall.h syscallent.h syscallent1.h \ + syscallent-common.h syscallent-common-32.h \ syscallent-n32.h syscallent-n64.h syscallent-o32.h syscallent_patterns = $(patsubst %,\%/%,$(syscallent_names)) @@ -2233,7 +2516,7 @@ al_nums = [[:alnum:]_][[:alnum:]_]* SCNO_SED = /TRACE_INDIRECT_SUBCALL/d; s/^\[[[:space:]]*\($(digits)\([[:space:]]*+[[:space:]]*$(digits)\)\?\)\][[:space:]]*=[[:space:]]*{[^,]*,[^,]*,[^,]*,[[:space:]]*"\($(al_nums)\)"[[:space:]]*},.*/\#ifndef __NR_\3\n\# define __NR_\3 (SYSCALL_BIT | (\1))\n\#endif/p # Generated by ./generate_mpers_am.sh; do not edit. -mpers_source_files = block.c btrfs.c dirent.c evdev_mpers.c fetch_bpf_fprog.c fetch_struct_flock.c fetch_struct_keyctl_kdf_params.c fetch_struct_mmsghdr.c fetch_struct_msghdr.c fetch_struct_stat.c fetch_struct_stat64.c fetch_struct_statfs.c fetch_struct_xfs_quotastat.c hdio.c ipc_msgctl.c ipc_shmctl.c loop.c mtd.c perf_ioctl.c print_aio_sigset.c print_group_req.c print_mq_attr.c print_msgbuf.c print_sg_req_info.c print_sigevent.c print_time.c print_timespec.c print_timeval.c printrusage.c printsiginfo.c rt_sigreturn.c rtc.c sg_io_v3.c sigaltstack.c sock.c sysinfo.c times.c ustat.c utime.c v4l2.c +mpers_source_files = block.c btrfs.c dirent.c evdev_mpers.c fetch_bpf_fprog.c fetch_struct_flock.c fetch_struct_keyctl_kdf_params.c fetch_struct_mmsghdr.c fetch_struct_msghdr.c fetch_struct_stat.c fetch_struct_stat64.c fetch_struct_statfs.c fetch_struct_xfs_quotastat.c hdio.c ipc_msgctl.c ipc_semctl.c ipc_shmctl.c loop.c mtd.c perf_ioctl.c print_aio_sigset.c print_group_req.c print_mq_attr.c print_msgbuf.c print_sg_req_info.c print_sigevent.c print_time.c print_timeval.c printrusage.c printsiginfo.c rt_sigreturn.c rtc.c sg_io_v3.c sigaltstack.c sock.c sysinfo.c times.c ustat.c utime.c v4l2.c # defines mpers_source_files srcdir_mpers_source_files = $(patsubst %,$(srcdir)/%,$(mpers_source_files)) @@ -2242,8 +2525,8 @@ mpers_NAME = mpers_PREFIX = $(mpers_NAME)_ mpers_DEFS = $(DEFS) mpers_INCLUDES = $(DEFAULT_INCLUDES) $(INCLUDES) -mpers_CPPFLAGS = $(strace_CPPFLAGS) $(CPPFLAGS) -mpers_sh_opts = $(mpers_DEFS) $(mpers_INCLUDES) $(mpers_CPPFLAGS) +mpers_CPPFLAGS = $(CPPFLAGS) +mpers_sh_opts = $(mpers_DEFS) $(mpers_INCLUDES) $(strace_CPPFLAGS) $(mpers_CPPFLAGS) libmpers_CPPFLAGS = $(strace_CPPFLAGS) -DIN_MPERS libmpers_CFLAGS = $(strace_CFLAGS) mpers_printer_decl_pattern = ^MPERS_PRINTER_DECL\(([^,)]+),[[:space:]]*([^,)]+),[[:space:]]*([^)]+)\)$$ @@ -2263,7 +2546,7 @@ all: $(BUILT_SOURCES) config.h .SUFFIXES: .c .o .obj am--refresh: Makefile @: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/xlat/Makemodule.am $(srcdir)/scno.am $(srcdir)/mpers.am $(am__configure_deps) +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/types/Makemodule.am $(srcdir)/xlat/Makemodule.am $(srcdir)/scno.am $(srcdir)/mpers.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ @@ -2285,7 +2568,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ esac; -$(srcdir)/xlat/Makemodule.am $(srcdir)/scno.am $(srcdir)/mpers.am $(am__empty): +$(srcdir)/types/Makemodule.am $(srcdir)/xlat/Makemodule.am $(srcdir)/scno.am $(srcdir)/mpers.am $(am__empty): $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck @@ -2373,6 +2656,36 @@ libmpers-mx32.a: $(libmpers_mx32_a_OBJECTS) $(libmpers_mx32_a_DEPENDENCIES) $(EX $(AM_V_at)-rm -f libmpers-mx32.a $(AM_V_AR)$(libmpers_mx32_a_AR) libmpers-mx32.a $(libmpers_mx32_a_OBJECTS) $(libmpers_mx32_a_LIBADD) $(AM_V_at)$(RANLIB) libmpers-mx32.a +types/$(am__dirstamp): + @$(MKDIR_P) types + @: > types/$(am__dirstamp) +types/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) types/$(DEPDIR) + @: > types/$(DEPDIR)/$(am__dirstamp) +types/libstrace_a-check-btrfs.$(OBJEXT): types/$(am__dirstamp) \ + types/$(DEPDIR)/$(am__dirstamp) +types/libstrace_a-check-cryptouser.$(OBJEXT): types/$(am__dirstamp) \ + types/$(DEPDIR)/$(am__dirstamp) +types/libstrace_a-check-evdev.$(OBJEXT): types/$(am__dirstamp) \ + types/$(DEPDIR)/$(am__dirstamp) +types/libstrace_a-check-io_uring.$(OBJEXT): types/$(am__dirstamp) \ + types/$(DEPDIR)/$(am__dirstamp) +types/libstrace_a-check-loop.$(OBJEXT): types/$(am__dirstamp) \ + types/$(DEPDIR)/$(am__dirstamp) +types/libstrace_a-check-openat2.$(OBJEXT): types/$(am__dirstamp) \ + types/$(DEPDIR)/$(am__dirstamp) +types/libstrace_a-check-rtnl_link.$(OBJEXT): types/$(am__dirstamp) \ + types/$(DEPDIR)/$(am__dirstamp) +types/libstrace_a-check-rtnl_mdb.$(OBJEXT): types/$(am__dirstamp) \ + types/$(DEPDIR)/$(am__dirstamp) +types/libstrace_a-check-rtnl_neightbl.$(OBJEXT): \ + types/$(am__dirstamp) types/$(DEPDIR)/$(am__dirstamp) +types/libstrace_a-check-rtnl_route.$(OBJEXT): types/$(am__dirstamp) \ + types/$(DEPDIR)/$(am__dirstamp) +types/libstrace_a-check-tee.$(OBJEXT): types/$(am__dirstamp) \ + types/$(DEPDIR)/$(am__dirstamp) +types/libstrace_a-check-v4l2.$(OBJEXT): types/$(am__dirstamp) \ + types/$(DEPDIR)/$(am__dirstamp) libstrace.a: $(libstrace_a_OBJECTS) $(libstrace_a_DEPENDENCIES) $(EXTRA_libstrace_a_DEPENDENCIES) $(AM_V_at)-rm -f libstrace.a @@ -2420,6 +2733,7 @@ uninstall-binSCRIPTS: mostlyclean-compile: -rm -f *.$(OBJEXT) + -rm -f types/*.$(OBJEXT) distclean-compile: -rm -f *.tab.c @@ -2439,6 +2753,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_m32_a-fetch_struct_xfs_quotastat.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_m32_a-hdio.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_m32_a-ipc_msgctl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_m32_a-ipc_semctl.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_m32_a-ipc_shmctl.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_m32_a-loop.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_m32_a-mtd.Po@am__quote@ # am--include-marker @@ -2450,7 +2765,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_m32_a-print_sg_req_info.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_m32_a-print_sigevent.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_m32_a-print_time.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_m32_a-print_timespec.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_m32_a-print_timeval.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_m32_a-printrusage.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_m32_a-printsiginfo.Po@am__quote@ # am--include-marker @@ -2479,6 +2793,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-fetch_struct_xfs_quotastat.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-hdio.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-ipc_msgctl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-ipc_semctl.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-ipc_shmctl.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-loop.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-mtd.Po@am__quote@ # am--include-marker @@ -2490,7 +2805,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-print_sg_req_info.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-print_sigevent.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-print_time.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-print_timespec.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-print_timeval.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-printrusage.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-printsiginfo.Po@am__quote@ # am--include-marker @@ -2504,245 +2818,276 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-ustat.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-utime.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-v4l2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-access.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-affinity.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-aio.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-alpha.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-basic_filters.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-bind.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-bjm.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-block.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-bpf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-bpf_attr_check.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-bpf_filter.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-bpf_seccomp_filter.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-bpf_sock_filter.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-btrfs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-cacheflush.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-capability.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-chdir.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-chmod.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-clone.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-close_range.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-copy_file_range.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-count.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-delay.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-desc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-dirent.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-dirent64.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-dirent_types.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-dm.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-dup.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-dyxlat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-epoll.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-error_prints.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-evdev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-evdev_mpers.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-eventfd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-execve.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-fadvise.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-fallocate.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-fanotify.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-fchownat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-fcntl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-fetch_bpf_fprog.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-fetch_indirect_syscall_args.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-fetch_struct_flock.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-fetch_struct_keyctl_kdf_params.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-fetch_struct_mmsghdr.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-fetch_struct_msghdr.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-fetch_struct_stat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-fetch_struct_stat64.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-fetch_struct_statfs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-fetch_struct_xfs_quotastat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-file_handle.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-file_ioctl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-filter_qualify.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-filter_seccomp.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-flock.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-fs_x_ioctl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-fsconfig.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-fsmount.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-fsopen.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-fspick.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-fstatfs.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-fstatfs64.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-futex.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-get_personality.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-get_robust_list.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-getcpu.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-getcwd.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-getpagesize.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-getpid.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-getrandom.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-hdio.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-hostname.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-inotify.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-inotify_ioctl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-io.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-io_uring.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-ioctl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-ioperm.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-iopl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-ioprio.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-ipc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-ipc_msg.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-ipc_msgctl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-ipc_sem.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-ipc_semctl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-ipc_shm.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-ipc_shmctl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-kcmp.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-kexec.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-keyctl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-kvm.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-ldt.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-link.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-listen.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-lookup_dcookie.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-loop.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-lseek.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-mem.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-membarrier.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-memfd_create.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-mknod.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-mmap_cache.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-mmap_notify.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-mmsghdr.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-mount.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-move_mount.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-mq.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-msghdr.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-mtd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-nbd_ioctl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-net.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-netlink.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-netlink_crypto.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-netlink_inet_diag.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-netlink_kobject_uevent.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-netlink_netfilter.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-netlink_netlink_diag.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-netlink_packet_diag.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-netlink_route.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-netlink_selinux.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-netlink_smc_diag.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-netlink_sock_diag.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-netlink_unix_diag.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-nlattr.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-nsfs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-numa.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-number_set.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-oldstat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-open.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-open_tree.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-or1k_atomic.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-pathtrace.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-perf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-perf_ioctl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-personality.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-pidfd_getfd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-pidfd_open.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-pidns.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-pkeys.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-poll.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-prctl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-print_aio_sigset.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-print_dev_t.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-print_group_req.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-print_ifindex.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-print_instruction_pointer.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-print_kernel_version.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-print_mac.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-print_mq_attr.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-print_msgbuf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-print_sg_req_info.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-print_sigevent.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-print_statfs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-print_struct_stat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-print_syscall_number.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-print_time.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-print_timespec32.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-print_timespec64.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-print_timeval.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-print_timeval64.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-print_timex.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-printmode.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-printrusage.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-printsiginfo.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-process.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-process_vm.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-ptp.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-ptrace_syscall_info.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-quota.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-random_ioctl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-readahead.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-readlink.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-reboot.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-renameat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-resource.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-retval.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-riscv.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-rt_sigframe.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-rt_sigreturn.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-rtc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-rtnl_addr.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-rtnl_addrlabel.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-rtnl_dcb.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-rtnl_link.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-rtnl_mdb.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-rtnl_neigh.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-rtnl_neightbl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-rtnl_netconf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-rtnl_nsid.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-rtnl_route.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-rtnl_rule.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-rtnl_tc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-rtnl_tc_action.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-s390.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-sched.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-scsi.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-seccomp.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-sendfile.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-sg_io_v3.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-sg_io_v4.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-shutdown.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-sigaltstack.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-signal.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-signalfd.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-sigreturn.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-sock.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-sockaddr.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-socketcall.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-socketutils.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-sparc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-sram_alloc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-stage_output.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-stat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-stat64.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-statfs.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-statfs64.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-statx.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-string_to_uint.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-swapon.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-sync_file_range.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-sync_file_range2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-syscall.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-sysctl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-sysinfo.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-syslog.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-sysmips.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-tee.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-term.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-time.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-times.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-trie.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-truncate.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-ubi.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-ucopy.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-uid.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-uid16.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-umask.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-umount.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-uname.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-unwind-libdw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-unwind-libunwind.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-unwind.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-upeek.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-upoke.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-access.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-affinity.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-aio.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-alpha.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-basic_filters.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-bind.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-bjm.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-block.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-bpf.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-bpf_attr_check.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-bpf_filter.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-bpf_seccomp_filter.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-bpf_sock_filter.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-btrfs.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-cacheflush.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-capability.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-chdir.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-chmod.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-clone.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-copy_file_range.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-count.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-delay.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-desc.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-dirent.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-dirent64.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-dm.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-dyxlat.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-epoll.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-error_prints.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-evdev.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-evdev_mpers.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-eventfd.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-execve.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-fadvise.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-fallocate.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-fanotify.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-fchownat.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-fcntl.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-fetch_bpf_fprog.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-fetch_struct_flock.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-fetch_struct_keyctl_kdf_params.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-fetch_struct_mmsghdr.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-fetch_struct_msghdr.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-fetch_struct_stat.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-fetch_struct_stat64.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-fetch_struct_statfs.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-fetch_struct_xfs_quotastat.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-file_handle.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-file_ioctl.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-filter_qualify.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-flock.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-fs_x_ioctl.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-futex.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-get_personality.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-get_robust_list.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-getcpu.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-getcwd.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-getrandom.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-hdio.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-hostname.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-inotify.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-inotify_ioctl.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-io.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-io_uring.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-ioctl.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-ioperm.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-iopl.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-ioprio.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-ipc_msg.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-ipc_msgctl.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-ipc_sem.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-ipc_shm.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-ipc_shmctl.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-kcmp.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-kexec.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-keyctl.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-kvm.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-ldt.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-link.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-listen.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-lookup_dcookie.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-loop.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-lseek.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-mem.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-membarrier.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-memfd_create.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-mknod.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-mmap_notify.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-mmsghdr.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-mount.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-mq.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-msghdr.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-mtd.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-nbd_ioctl.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-net.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-netlink.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-netlink_crypto.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-netlink_inet_diag.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-netlink_kobject_uevent.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-netlink_netfilter.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-netlink_netlink_diag.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-netlink_packet_diag.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-netlink_route.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-netlink_selinux.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-netlink_smc_diag.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-netlink_sock_diag.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-netlink_unix_diag.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-nlattr.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-nsfs.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-numa.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-number_set.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-oldstat.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-open.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-or1k_atomic.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-pathtrace.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-perf.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-perf_ioctl.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-personality.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-pkeys.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-poll.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-prctl.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-print_aio_sigset.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-print_dev_t.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-print_group_req.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-print_ifindex.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-print_instruction_pointer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-print_kernel_version.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-print_mac.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-print_mq_attr.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-print_msgbuf.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-print_sg_req_info.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-print_sigevent.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-print_statfs.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-print_struct_stat.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-print_time.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-print_timespec.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-print_timespec32.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-print_timespec64.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-print_timeval.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-print_timeval64.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-print_timex.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-printmode.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-printrusage.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-printsiginfo.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-process.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-process_vm.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-ptp.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-ptrace_syscall_info.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-quota.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-random_ioctl.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-readahead.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-readlink.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-reboot.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-renameat.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-resource.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-retval.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-riscv.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-rt_sigframe.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-rt_sigreturn.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-rtc.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-rtnl_addr.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-rtnl_addrlabel.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-rtnl_dcb.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-rtnl_link.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-rtnl_mdb.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-rtnl_neigh.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-rtnl_neightbl.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-rtnl_netconf.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-rtnl_nsid.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-rtnl_route.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-rtnl_rule.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-rtnl_tc.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-rtnl_tc_action.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-s390.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-sched.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-scsi.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-seccomp.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-sendfile.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-sg_io_v3.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-sg_io_v4.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-shutdown.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-sigaltstack.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-signal.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-signalfd.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-sock.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-sockaddr.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-socketutils.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-sparc.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-sram_alloc.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-stat.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-stat64.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-statfs.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-statx.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-userfaultfd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-ustat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-util.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-utime.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-utimes.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-v4l2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-wait.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-watchdog_ioctl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-xattr.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-xgetdents.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-xlat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-xmalloc.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-strace.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-string_to_uint.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-swapon.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-syscall.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-sysctl.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-sysinfo.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-syslog.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-sysmips.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-term.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-time.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-times.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-truncate.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-ubi.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-ucopy.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-uid.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-uid16.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-umask.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-umount.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-uname.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-unwind-libdw.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-unwind-libunwind.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-unwind.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-userfaultfd.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-ustat.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-util.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-utime.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-utimes.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-v4l2.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-wait.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-xattr.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-xlat.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-xmalloc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@types/$(DEPDIR)/libstrace_a-check-btrfs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@types/$(DEPDIR)/libstrace_a-check-cryptouser.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@types/$(DEPDIR)/libstrace_a-check-evdev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@types/$(DEPDIR)/libstrace_a-check-io_uring.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@types/$(DEPDIR)/libstrace_a-check-loop.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@types/$(DEPDIR)/libstrace_a-check-openat2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@types/$(DEPDIR)/libstrace_a-check-rtnl_link.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@types/$(DEPDIR)/libstrace_a-check-rtnl_mdb.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@types/$(DEPDIR)/libstrace_a-check-rtnl_neightbl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@types/$(DEPDIR)/libstrace_a-check-rtnl_route.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@types/$(DEPDIR)/libstrace_a-check-tee.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@types/$(DEPDIR)/libstrace_a-check-v4l2.Po@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @@ -2751,15 +3096,17 @@ $(am__depfiles_remade): am--depfiles: $(am__depfiles_remade) .c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` @@ -2974,6 +3321,20 @@ libmpers_m32_a-ipc_msgctl.obj: ipc_msgctl.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -c -o libmpers_m32_a-ipc_msgctl.obj `if test -f 'ipc_msgctl.c'; then $(CYGPATH_W) 'ipc_msgctl.c'; else $(CYGPATH_W) '$(srcdir)/ipc_msgctl.c'; fi` +libmpers_m32_a-ipc_semctl.o: ipc_semctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -MT libmpers_m32_a-ipc_semctl.o -MD -MP -MF $(DEPDIR)/libmpers_m32_a-ipc_semctl.Tpo -c -o libmpers_m32_a-ipc_semctl.o `test -f 'ipc_semctl.c' || echo '$(srcdir)/'`ipc_semctl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_m32_a-ipc_semctl.Tpo $(DEPDIR)/libmpers_m32_a-ipc_semctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc_semctl.c' object='libmpers_m32_a-ipc_semctl.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -c -o libmpers_m32_a-ipc_semctl.o `test -f 'ipc_semctl.c' || echo '$(srcdir)/'`ipc_semctl.c + +libmpers_m32_a-ipc_semctl.obj: ipc_semctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -MT libmpers_m32_a-ipc_semctl.obj -MD -MP -MF $(DEPDIR)/libmpers_m32_a-ipc_semctl.Tpo -c -o libmpers_m32_a-ipc_semctl.obj `if test -f 'ipc_semctl.c'; then $(CYGPATH_W) 'ipc_semctl.c'; else $(CYGPATH_W) '$(srcdir)/ipc_semctl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_m32_a-ipc_semctl.Tpo $(DEPDIR)/libmpers_m32_a-ipc_semctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc_semctl.c' object='libmpers_m32_a-ipc_semctl.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -c -o libmpers_m32_a-ipc_semctl.obj `if test -f 'ipc_semctl.c'; then $(CYGPATH_W) 'ipc_semctl.c'; else $(CYGPATH_W) '$(srcdir)/ipc_semctl.c'; fi` + libmpers_m32_a-ipc_shmctl.o: ipc_shmctl.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -MT libmpers_m32_a-ipc_shmctl.o -MD -MP -MF $(DEPDIR)/libmpers_m32_a-ipc_shmctl.Tpo -c -o libmpers_m32_a-ipc_shmctl.o `test -f 'ipc_shmctl.c' || echo '$(srcdir)/'`ipc_shmctl.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_m32_a-ipc_shmctl.Tpo $(DEPDIR)/libmpers_m32_a-ipc_shmctl.Po @@ -3128,20 +3489,6 @@ libmpers_m32_a-print_time.obj: print_time.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -c -o libmpers_m32_a-print_time.obj `if test -f 'print_time.c'; then $(CYGPATH_W) 'print_time.c'; else $(CYGPATH_W) '$(srcdir)/print_time.c'; fi` -libmpers_m32_a-print_timespec.o: print_timespec.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -MT libmpers_m32_a-print_timespec.o -MD -MP -MF $(DEPDIR)/libmpers_m32_a-print_timespec.Tpo -c -o libmpers_m32_a-print_timespec.o `test -f 'print_timespec.c' || echo '$(srcdir)/'`print_timespec.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_m32_a-print_timespec.Tpo $(DEPDIR)/libmpers_m32_a-print_timespec.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_timespec.c' object='libmpers_m32_a-print_timespec.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -c -o libmpers_m32_a-print_timespec.o `test -f 'print_timespec.c' || echo '$(srcdir)/'`print_timespec.c - -libmpers_m32_a-print_timespec.obj: print_timespec.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -MT libmpers_m32_a-print_timespec.obj -MD -MP -MF $(DEPDIR)/libmpers_m32_a-print_timespec.Tpo -c -o libmpers_m32_a-print_timespec.obj `if test -f 'print_timespec.c'; then $(CYGPATH_W) 'print_timespec.c'; else $(CYGPATH_W) '$(srcdir)/print_timespec.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_m32_a-print_timespec.Tpo $(DEPDIR)/libmpers_m32_a-print_timespec.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_timespec.c' object='libmpers_m32_a-print_timespec.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -c -o libmpers_m32_a-print_timespec.obj `if test -f 'print_timespec.c'; then $(CYGPATH_W) 'print_timespec.c'; else $(CYGPATH_W) '$(srcdir)/print_timespec.c'; fi` - libmpers_m32_a-print_timeval.o: print_timeval.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -MT libmpers_m32_a-print_timeval.o -MD -MP -MF $(DEPDIR)/libmpers_m32_a-print_timeval.Tpo -c -o libmpers_m32_a-print_timeval.o `test -f 'print_timeval.c' || echo '$(srcdir)/'`print_timeval.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_m32_a-print_timeval.Tpo $(DEPDIR)/libmpers_m32_a-print_timeval.Po @@ -3534,6 +3881,20 @@ libmpers_mx32_a-ipc_msgctl.obj: ipc_msgctl.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -c -o libmpers_mx32_a-ipc_msgctl.obj `if test -f 'ipc_msgctl.c'; then $(CYGPATH_W) 'ipc_msgctl.c'; else $(CYGPATH_W) '$(srcdir)/ipc_msgctl.c'; fi` +libmpers_mx32_a-ipc_semctl.o: ipc_semctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -MT libmpers_mx32_a-ipc_semctl.o -MD -MP -MF $(DEPDIR)/libmpers_mx32_a-ipc_semctl.Tpo -c -o libmpers_mx32_a-ipc_semctl.o `test -f 'ipc_semctl.c' || echo '$(srcdir)/'`ipc_semctl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_mx32_a-ipc_semctl.Tpo $(DEPDIR)/libmpers_mx32_a-ipc_semctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc_semctl.c' object='libmpers_mx32_a-ipc_semctl.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -c -o libmpers_mx32_a-ipc_semctl.o `test -f 'ipc_semctl.c' || echo '$(srcdir)/'`ipc_semctl.c + +libmpers_mx32_a-ipc_semctl.obj: ipc_semctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -MT libmpers_mx32_a-ipc_semctl.obj -MD -MP -MF $(DEPDIR)/libmpers_mx32_a-ipc_semctl.Tpo -c -o libmpers_mx32_a-ipc_semctl.obj `if test -f 'ipc_semctl.c'; then $(CYGPATH_W) 'ipc_semctl.c'; else $(CYGPATH_W) '$(srcdir)/ipc_semctl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_mx32_a-ipc_semctl.Tpo $(DEPDIR)/libmpers_mx32_a-ipc_semctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc_semctl.c' object='libmpers_mx32_a-ipc_semctl.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -c -o libmpers_mx32_a-ipc_semctl.obj `if test -f 'ipc_semctl.c'; then $(CYGPATH_W) 'ipc_semctl.c'; else $(CYGPATH_W) '$(srcdir)/ipc_semctl.c'; fi` + libmpers_mx32_a-ipc_shmctl.o: ipc_shmctl.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -MT libmpers_mx32_a-ipc_shmctl.o -MD -MP -MF $(DEPDIR)/libmpers_mx32_a-ipc_shmctl.Tpo -c -o libmpers_mx32_a-ipc_shmctl.o `test -f 'ipc_shmctl.c' || echo '$(srcdir)/'`ipc_shmctl.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_mx32_a-ipc_shmctl.Tpo $(DEPDIR)/libmpers_mx32_a-ipc_shmctl.Po @@ -3688,20 +4049,6 @@ libmpers_mx32_a-print_time.obj: print_time.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -c -o libmpers_mx32_a-print_time.obj `if test -f 'print_time.c'; then $(CYGPATH_W) 'print_time.c'; else $(CYGPATH_W) '$(srcdir)/print_time.c'; fi` -libmpers_mx32_a-print_timespec.o: print_timespec.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -MT libmpers_mx32_a-print_timespec.o -MD -MP -MF $(DEPDIR)/libmpers_mx32_a-print_timespec.Tpo -c -o libmpers_mx32_a-print_timespec.o `test -f 'print_timespec.c' || echo '$(srcdir)/'`print_timespec.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_mx32_a-print_timespec.Tpo $(DEPDIR)/libmpers_mx32_a-print_timespec.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_timespec.c' object='libmpers_mx32_a-print_timespec.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -c -o libmpers_mx32_a-print_timespec.o `test -f 'print_timespec.c' || echo '$(srcdir)/'`print_timespec.c - -libmpers_mx32_a-print_timespec.obj: print_timespec.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -MT libmpers_mx32_a-print_timespec.obj -MD -MP -MF $(DEPDIR)/libmpers_mx32_a-print_timespec.Tpo -c -o libmpers_mx32_a-print_timespec.obj `if test -f 'print_timespec.c'; then $(CYGPATH_W) 'print_timespec.c'; else $(CYGPATH_W) '$(srcdir)/print_timespec.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_mx32_a-print_timespec.Tpo $(DEPDIR)/libmpers_mx32_a-print_timespec.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_timespec.c' object='libmpers_mx32_a-print_timespec.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -c -o libmpers_mx32_a-print_timespec.obj `if test -f 'print_timespec.c'; then $(CYGPATH_W) 'print_timespec.c'; else $(CYGPATH_W) '$(srcdir)/print_timespec.c'; fi` - libmpers_mx32_a-print_timeval.o: print_timeval.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -MT libmpers_mx32_a-print_timeval.o -MD -MP -MF $(DEPDIR)/libmpers_mx32_a-print_timeval.Tpo -c -o libmpers_mx32_a-print_timeval.o `test -f 'print_timeval.c' || echo '$(srcdir)/'`print_timeval.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_mx32_a-print_timeval.Tpo $(DEPDIR)/libmpers_mx32_a-print_timeval.Po @@ -3884,3351 +4231,3785 @@ libmpers_mx32_a-v4l2.obj: v4l2.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -c -o libmpers_mx32_a-v4l2.obj `if test -f 'v4l2.c'; then $(CYGPATH_W) 'v4l2.c'; else $(CYGPATH_W) '$(srcdir)/v4l2.c'; fi` -libstrace_a-fetch_indirect_syscall_args.o: fetch_indirect_syscall_args.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fetch_indirect_syscall_args.o -MD -MP -MF $(DEPDIR)/libstrace_a-fetch_indirect_syscall_args.Tpo -c -o libstrace_a-fetch_indirect_syscall_args.o `test -f 'fetch_indirect_syscall_args.c' || echo '$(srcdir)/'`fetch_indirect_syscall_args.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fetch_indirect_syscall_args.Tpo $(DEPDIR)/libstrace_a-fetch_indirect_syscall_args.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_indirect_syscall_args.c' object='libstrace_a-fetch_indirect_syscall_args.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-access.o: access.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-access.o -MD -MP -MF $(DEPDIR)/libstrace_a-access.Tpo -c -o libstrace_a-access.o `test -f 'access.c' || echo '$(srcdir)/'`access.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-access.Tpo $(DEPDIR)/libstrace_a-access.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='access.c' object='libstrace_a-access.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fetch_indirect_syscall_args.o `test -f 'fetch_indirect_syscall_args.c' || echo '$(srcdir)/'`fetch_indirect_syscall_args.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-access.o `test -f 'access.c' || echo '$(srcdir)/'`access.c -libstrace_a-fetch_indirect_syscall_args.obj: fetch_indirect_syscall_args.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fetch_indirect_syscall_args.obj -MD -MP -MF $(DEPDIR)/libstrace_a-fetch_indirect_syscall_args.Tpo -c -o libstrace_a-fetch_indirect_syscall_args.obj `if test -f 'fetch_indirect_syscall_args.c'; then $(CYGPATH_W) 'fetch_indirect_syscall_args.c'; else $(CYGPATH_W) '$(srcdir)/fetch_indirect_syscall_args.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fetch_indirect_syscall_args.Tpo $(DEPDIR)/libstrace_a-fetch_indirect_syscall_args.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_indirect_syscall_args.c' object='libstrace_a-fetch_indirect_syscall_args.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-access.obj: access.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-access.obj -MD -MP -MF $(DEPDIR)/libstrace_a-access.Tpo -c -o libstrace_a-access.obj `if test -f 'access.c'; then $(CYGPATH_W) 'access.c'; else $(CYGPATH_W) '$(srcdir)/access.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-access.Tpo $(DEPDIR)/libstrace_a-access.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='access.c' object='libstrace_a-access.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fetch_indirect_syscall_args.obj `if test -f 'fetch_indirect_syscall_args.c'; then $(CYGPATH_W) 'fetch_indirect_syscall_args.c'; else $(CYGPATH_W) '$(srcdir)/fetch_indirect_syscall_args.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-access.obj `if test -f 'access.c'; then $(CYGPATH_W) 'access.c'; else $(CYGPATH_W) '$(srcdir)/access.c'; fi` -libstrace_a-fstatfs.o: fstatfs.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fstatfs.o -MD -MP -MF $(DEPDIR)/libstrace_a-fstatfs.Tpo -c -o libstrace_a-fstatfs.o `test -f 'fstatfs.c' || echo '$(srcdir)/'`fstatfs.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fstatfs.Tpo $(DEPDIR)/libstrace_a-fstatfs.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fstatfs.c' object='libstrace_a-fstatfs.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-affinity.o: affinity.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-affinity.o -MD -MP -MF $(DEPDIR)/libstrace_a-affinity.Tpo -c -o libstrace_a-affinity.o `test -f 'affinity.c' || echo '$(srcdir)/'`affinity.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-affinity.Tpo $(DEPDIR)/libstrace_a-affinity.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='affinity.c' object='libstrace_a-affinity.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fstatfs.o `test -f 'fstatfs.c' || echo '$(srcdir)/'`fstatfs.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-affinity.o `test -f 'affinity.c' || echo '$(srcdir)/'`affinity.c -libstrace_a-fstatfs.obj: fstatfs.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fstatfs.obj -MD -MP -MF $(DEPDIR)/libstrace_a-fstatfs.Tpo -c -o libstrace_a-fstatfs.obj `if test -f 'fstatfs.c'; then $(CYGPATH_W) 'fstatfs.c'; else $(CYGPATH_W) '$(srcdir)/fstatfs.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fstatfs.Tpo $(DEPDIR)/libstrace_a-fstatfs.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fstatfs.c' object='libstrace_a-fstatfs.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-affinity.obj: affinity.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-affinity.obj -MD -MP -MF $(DEPDIR)/libstrace_a-affinity.Tpo -c -o libstrace_a-affinity.obj `if test -f 'affinity.c'; then $(CYGPATH_W) 'affinity.c'; else $(CYGPATH_W) '$(srcdir)/affinity.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-affinity.Tpo $(DEPDIR)/libstrace_a-affinity.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='affinity.c' object='libstrace_a-affinity.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fstatfs.obj `if test -f 'fstatfs.c'; then $(CYGPATH_W) 'fstatfs.c'; else $(CYGPATH_W) '$(srcdir)/fstatfs.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-affinity.obj `if test -f 'affinity.c'; then $(CYGPATH_W) 'affinity.c'; else $(CYGPATH_W) '$(srcdir)/affinity.c'; fi` -libstrace_a-fstatfs64.o: fstatfs64.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fstatfs64.o -MD -MP -MF $(DEPDIR)/libstrace_a-fstatfs64.Tpo -c -o libstrace_a-fstatfs64.o `test -f 'fstatfs64.c' || echo '$(srcdir)/'`fstatfs64.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fstatfs64.Tpo $(DEPDIR)/libstrace_a-fstatfs64.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fstatfs64.c' object='libstrace_a-fstatfs64.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-aio.o: aio.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-aio.o -MD -MP -MF $(DEPDIR)/libstrace_a-aio.Tpo -c -o libstrace_a-aio.o `test -f 'aio.c' || echo '$(srcdir)/'`aio.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-aio.Tpo $(DEPDIR)/libstrace_a-aio.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='aio.c' object='libstrace_a-aio.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fstatfs64.o `test -f 'fstatfs64.c' || echo '$(srcdir)/'`fstatfs64.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-aio.o `test -f 'aio.c' || echo '$(srcdir)/'`aio.c -libstrace_a-fstatfs64.obj: fstatfs64.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fstatfs64.obj -MD -MP -MF $(DEPDIR)/libstrace_a-fstatfs64.Tpo -c -o libstrace_a-fstatfs64.obj `if test -f 'fstatfs64.c'; then $(CYGPATH_W) 'fstatfs64.c'; else $(CYGPATH_W) '$(srcdir)/fstatfs64.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fstatfs64.Tpo $(DEPDIR)/libstrace_a-fstatfs64.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fstatfs64.c' object='libstrace_a-fstatfs64.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-aio.obj: aio.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-aio.obj -MD -MP -MF $(DEPDIR)/libstrace_a-aio.Tpo -c -o libstrace_a-aio.obj `if test -f 'aio.c'; then $(CYGPATH_W) 'aio.c'; else $(CYGPATH_W) '$(srcdir)/aio.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-aio.Tpo $(DEPDIR)/libstrace_a-aio.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='aio.c' object='libstrace_a-aio.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fstatfs64.obj `if test -f 'fstatfs64.c'; then $(CYGPATH_W) 'fstatfs64.c'; else $(CYGPATH_W) '$(srcdir)/fstatfs64.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-aio.obj `if test -f 'aio.c'; then $(CYGPATH_W) 'aio.c'; else $(CYGPATH_W) '$(srcdir)/aio.c'; fi` -libstrace_a-getpagesize.o: getpagesize.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-getpagesize.o -MD -MP -MF $(DEPDIR)/libstrace_a-getpagesize.Tpo -c -o libstrace_a-getpagesize.o `test -f 'getpagesize.c' || echo '$(srcdir)/'`getpagesize.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-getpagesize.Tpo $(DEPDIR)/libstrace_a-getpagesize.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getpagesize.c' object='libstrace_a-getpagesize.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-alpha.o: alpha.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-alpha.o -MD -MP -MF $(DEPDIR)/libstrace_a-alpha.Tpo -c -o libstrace_a-alpha.o `test -f 'alpha.c' || echo '$(srcdir)/'`alpha.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-alpha.Tpo $(DEPDIR)/libstrace_a-alpha.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='alpha.c' object='libstrace_a-alpha.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-getpagesize.o `test -f 'getpagesize.c' || echo '$(srcdir)/'`getpagesize.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-alpha.o `test -f 'alpha.c' || echo '$(srcdir)/'`alpha.c -libstrace_a-getpagesize.obj: getpagesize.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-getpagesize.obj -MD -MP -MF $(DEPDIR)/libstrace_a-getpagesize.Tpo -c -o libstrace_a-getpagesize.obj `if test -f 'getpagesize.c'; then $(CYGPATH_W) 'getpagesize.c'; else $(CYGPATH_W) '$(srcdir)/getpagesize.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-getpagesize.Tpo $(DEPDIR)/libstrace_a-getpagesize.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getpagesize.c' object='libstrace_a-getpagesize.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-alpha.obj: alpha.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-alpha.obj -MD -MP -MF $(DEPDIR)/libstrace_a-alpha.Tpo -c -o libstrace_a-alpha.obj `if test -f 'alpha.c'; then $(CYGPATH_W) 'alpha.c'; else $(CYGPATH_W) '$(srcdir)/alpha.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-alpha.Tpo $(DEPDIR)/libstrace_a-alpha.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='alpha.c' object='libstrace_a-alpha.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-getpagesize.obj `if test -f 'getpagesize.c'; then $(CYGPATH_W) 'getpagesize.c'; else $(CYGPATH_W) '$(srcdir)/getpagesize.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-alpha.obj `if test -f 'alpha.c'; then $(CYGPATH_W) 'alpha.c'; else $(CYGPATH_W) '$(srcdir)/alpha.c'; fi` -libstrace_a-ipc.o: ipc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ipc.o -MD -MP -MF $(DEPDIR)/libstrace_a-ipc.Tpo -c -o libstrace_a-ipc.o `test -f 'ipc.c' || echo '$(srcdir)/'`ipc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ipc.Tpo $(DEPDIR)/libstrace_a-ipc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc.c' object='libstrace_a-ipc.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-basic_filters.o: basic_filters.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-basic_filters.o -MD -MP -MF $(DEPDIR)/libstrace_a-basic_filters.Tpo -c -o libstrace_a-basic_filters.o `test -f 'basic_filters.c' || echo '$(srcdir)/'`basic_filters.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-basic_filters.Tpo $(DEPDIR)/libstrace_a-basic_filters.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='basic_filters.c' object='libstrace_a-basic_filters.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ipc.o `test -f 'ipc.c' || echo '$(srcdir)/'`ipc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-basic_filters.o `test -f 'basic_filters.c' || echo '$(srcdir)/'`basic_filters.c -libstrace_a-ipc.obj: ipc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ipc.obj -MD -MP -MF $(DEPDIR)/libstrace_a-ipc.Tpo -c -o libstrace_a-ipc.obj `if test -f 'ipc.c'; then $(CYGPATH_W) 'ipc.c'; else $(CYGPATH_W) '$(srcdir)/ipc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ipc.Tpo $(DEPDIR)/libstrace_a-ipc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc.c' object='libstrace_a-ipc.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-basic_filters.obj: basic_filters.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-basic_filters.obj -MD -MP -MF $(DEPDIR)/libstrace_a-basic_filters.Tpo -c -o libstrace_a-basic_filters.obj `if test -f 'basic_filters.c'; then $(CYGPATH_W) 'basic_filters.c'; else $(CYGPATH_W) '$(srcdir)/basic_filters.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-basic_filters.Tpo $(DEPDIR)/libstrace_a-basic_filters.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='basic_filters.c' object='libstrace_a-basic_filters.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ipc.obj `if test -f 'ipc.c'; then $(CYGPATH_W) 'ipc.c'; else $(CYGPATH_W) '$(srcdir)/ipc.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-basic_filters.obj `if test -f 'basic_filters.c'; then $(CYGPATH_W) 'basic_filters.c'; else $(CYGPATH_W) '$(srcdir)/basic_filters.c'; fi` -libstrace_a-mmap_cache.o: mmap_cache.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-mmap_cache.o -MD -MP -MF $(DEPDIR)/libstrace_a-mmap_cache.Tpo -c -o libstrace_a-mmap_cache.o `test -f 'mmap_cache.c' || echo '$(srcdir)/'`mmap_cache.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-mmap_cache.Tpo $(DEPDIR)/libstrace_a-mmap_cache.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmap_cache.c' object='libstrace_a-mmap_cache.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-bind.o: bind.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-bind.o -MD -MP -MF $(DEPDIR)/libstrace_a-bind.Tpo -c -o libstrace_a-bind.o `test -f 'bind.c' || echo '$(srcdir)/'`bind.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-bind.Tpo $(DEPDIR)/libstrace_a-bind.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bind.c' object='libstrace_a-bind.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-mmap_cache.o `test -f 'mmap_cache.c' || echo '$(srcdir)/'`mmap_cache.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-bind.o `test -f 'bind.c' || echo '$(srcdir)/'`bind.c -libstrace_a-mmap_cache.obj: mmap_cache.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-mmap_cache.obj -MD -MP -MF $(DEPDIR)/libstrace_a-mmap_cache.Tpo -c -o libstrace_a-mmap_cache.obj `if test -f 'mmap_cache.c'; then $(CYGPATH_W) 'mmap_cache.c'; else $(CYGPATH_W) '$(srcdir)/mmap_cache.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-mmap_cache.Tpo $(DEPDIR)/libstrace_a-mmap_cache.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmap_cache.c' object='libstrace_a-mmap_cache.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-bind.obj: bind.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-bind.obj -MD -MP -MF $(DEPDIR)/libstrace_a-bind.Tpo -c -o libstrace_a-bind.obj `if test -f 'bind.c'; then $(CYGPATH_W) 'bind.c'; else $(CYGPATH_W) '$(srcdir)/bind.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-bind.Tpo $(DEPDIR)/libstrace_a-bind.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bind.c' object='libstrace_a-bind.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-mmap_cache.obj `if test -f 'mmap_cache.c'; then $(CYGPATH_W) 'mmap_cache.c'; else $(CYGPATH_W) '$(srcdir)/mmap_cache.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-bind.obj `if test -f 'bind.c'; then $(CYGPATH_W) 'bind.c'; else $(CYGPATH_W) '$(srcdir)/bind.c'; fi` -libstrace_a-sigreturn.o: sigreturn.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sigreturn.o -MD -MP -MF $(DEPDIR)/libstrace_a-sigreturn.Tpo -c -o libstrace_a-sigreturn.o `test -f 'sigreturn.c' || echo '$(srcdir)/'`sigreturn.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sigreturn.Tpo $(DEPDIR)/libstrace_a-sigreturn.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sigreturn.c' object='libstrace_a-sigreturn.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-bjm.o: bjm.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-bjm.o -MD -MP -MF $(DEPDIR)/libstrace_a-bjm.Tpo -c -o libstrace_a-bjm.o `test -f 'bjm.c' || echo '$(srcdir)/'`bjm.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-bjm.Tpo $(DEPDIR)/libstrace_a-bjm.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bjm.c' object='libstrace_a-bjm.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sigreturn.o `test -f 'sigreturn.c' || echo '$(srcdir)/'`sigreturn.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-bjm.o `test -f 'bjm.c' || echo '$(srcdir)/'`bjm.c -libstrace_a-sigreturn.obj: sigreturn.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sigreturn.obj -MD -MP -MF $(DEPDIR)/libstrace_a-sigreturn.Tpo -c -o libstrace_a-sigreturn.obj `if test -f 'sigreturn.c'; then $(CYGPATH_W) 'sigreturn.c'; else $(CYGPATH_W) '$(srcdir)/sigreturn.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sigreturn.Tpo $(DEPDIR)/libstrace_a-sigreturn.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sigreturn.c' object='libstrace_a-sigreturn.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-bjm.obj: bjm.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-bjm.obj -MD -MP -MF $(DEPDIR)/libstrace_a-bjm.Tpo -c -o libstrace_a-bjm.obj `if test -f 'bjm.c'; then $(CYGPATH_W) 'bjm.c'; else $(CYGPATH_W) '$(srcdir)/bjm.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-bjm.Tpo $(DEPDIR)/libstrace_a-bjm.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bjm.c' object='libstrace_a-bjm.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sigreturn.obj `if test -f 'sigreturn.c'; then $(CYGPATH_W) 'sigreturn.c'; else $(CYGPATH_W) '$(srcdir)/sigreturn.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-bjm.obj `if test -f 'bjm.c'; then $(CYGPATH_W) 'bjm.c'; else $(CYGPATH_W) '$(srcdir)/bjm.c'; fi` -libstrace_a-socketcall.o: socketcall.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-socketcall.o -MD -MP -MF $(DEPDIR)/libstrace_a-socketcall.Tpo -c -o libstrace_a-socketcall.o `test -f 'socketcall.c' || echo '$(srcdir)/'`socketcall.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-socketcall.Tpo $(DEPDIR)/libstrace_a-socketcall.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='socketcall.c' object='libstrace_a-socketcall.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-block.o: block.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-block.o -MD -MP -MF $(DEPDIR)/libstrace_a-block.Tpo -c -o libstrace_a-block.o `test -f 'block.c' || echo '$(srcdir)/'`block.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-block.Tpo $(DEPDIR)/libstrace_a-block.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='block.c' object='libstrace_a-block.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-socketcall.o `test -f 'socketcall.c' || echo '$(srcdir)/'`socketcall.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-block.o `test -f 'block.c' || echo '$(srcdir)/'`block.c -libstrace_a-socketcall.obj: socketcall.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-socketcall.obj -MD -MP -MF $(DEPDIR)/libstrace_a-socketcall.Tpo -c -o libstrace_a-socketcall.obj `if test -f 'socketcall.c'; then $(CYGPATH_W) 'socketcall.c'; else $(CYGPATH_W) '$(srcdir)/socketcall.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-socketcall.Tpo $(DEPDIR)/libstrace_a-socketcall.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='socketcall.c' object='libstrace_a-socketcall.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-block.obj: block.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-block.obj -MD -MP -MF $(DEPDIR)/libstrace_a-block.Tpo -c -o libstrace_a-block.obj `if test -f 'block.c'; then $(CYGPATH_W) 'block.c'; else $(CYGPATH_W) '$(srcdir)/block.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-block.Tpo $(DEPDIR)/libstrace_a-block.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='block.c' object='libstrace_a-block.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-socketcall.obj `if test -f 'socketcall.c'; then $(CYGPATH_W) 'socketcall.c'; else $(CYGPATH_W) '$(srcdir)/socketcall.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-block.obj `if test -f 'block.c'; then $(CYGPATH_W) 'block.c'; else $(CYGPATH_W) '$(srcdir)/block.c'; fi` -libstrace_a-statfs.o: statfs.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-statfs.o -MD -MP -MF $(DEPDIR)/libstrace_a-statfs.Tpo -c -o libstrace_a-statfs.o `test -f 'statfs.c' || echo '$(srcdir)/'`statfs.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-statfs.Tpo $(DEPDIR)/libstrace_a-statfs.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='statfs.c' object='libstrace_a-statfs.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-bpf.o: bpf.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-bpf.o -MD -MP -MF $(DEPDIR)/libstrace_a-bpf.Tpo -c -o libstrace_a-bpf.o `test -f 'bpf.c' || echo '$(srcdir)/'`bpf.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-bpf.Tpo $(DEPDIR)/libstrace_a-bpf.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bpf.c' object='libstrace_a-bpf.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-statfs.o `test -f 'statfs.c' || echo '$(srcdir)/'`statfs.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-bpf.o `test -f 'bpf.c' || echo '$(srcdir)/'`bpf.c -libstrace_a-statfs.obj: statfs.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-statfs.obj -MD -MP -MF $(DEPDIR)/libstrace_a-statfs.Tpo -c -o libstrace_a-statfs.obj `if test -f 'statfs.c'; then $(CYGPATH_W) 'statfs.c'; else $(CYGPATH_W) '$(srcdir)/statfs.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-statfs.Tpo $(DEPDIR)/libstrace_a-statfs.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='statfs.c' object='libstrace_a-statfs.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-bpf.obj: bpf.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-bpf.obj -MD -MP -MF $(DEPDIR)/libstrace_a-bpf.Tpo -c -o libstrace_a-bpf.obj `if test -f 'bpf.c'; then $(CYGPATH_W) 'bpf.c'; else $(CYGPATH_W) '$(srcdir)/bpf.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-bpf.Tpo $(DEPDIR)/libstrace_a-bpf.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bpf.c' object='libstrace_a-bpf.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-statfs.obj `if test -f 'statfs.c'; then $(CYGPATH_W) 'statfs.c'; else $(CYGPATH_W) '$(srcdir)/statfs.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-bpf.obj `if test -f 'bpf.c'; then $(CYGPATH_W) 'bpf.c'; else $(CYGPATH_W) '$(srcdir)/bpf.c'; fi` -libstrace_a-statfs64.o: statfs64.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-statfs64.o -MD -MP -MF $(DEPDIR)/libstrace_a-statfs64.Tpo -c -o libstrace_a-statfs64.o `test -f 'statfs64.c' || echo '$(srcdir)/'`statfs64.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-statfs64.Tpo $(DEPDIR)/libstrace_a-statfs64.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='statfs64.c' object='libstrace_a-statfs64.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-bpf_filter.o: bpf_filter.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-bpf_filter.o -MD -MP -MF $(DEPDIR)/libstrace_a-bpf_filter.Tpo -c -o libstrace_a-bpf_filter.o `test -f 'bpf_filter.c' || echo '$(srcdir)/'`bpf_filter.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-bpf_filter.Tpo $(DEPDIR)/libstrace_a-bpf_filter.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bpf_filter.c' object='libstrace_a-bpf_filter.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-statfs64.o `test -f 'statfs64.c' || echo '$(srcdir)/'`statfs64.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-bpf_filter.o `test -f 'bpf_filter.c' || echo '$(srcdir)/'`bpf_filter.c -libstrace_a-statfs64.obj: statfs64.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-statfs64.obj -MD -MP -MF $(DEPDIR)/libstrace_a-statfs64.Tpo -c -o libstrace_a-statfs64.obj `if test -f 'statfs64.c'; then $(CYGPATH_W) 'statfs64.c'; else $(CYGPATH_W) '$(srcdir)/statfs64.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-statfs64.Tpo $(DEPDIR)/libstrace_a-statfs64.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='statfs64.c' object='libstrace_a-statfs64.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-bpf_filter.obj: bpf_filter.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-bpf_filter.obj -MD -MP -MF $(DEPDIR)/libstrace_a-bpf_filter.Tpo -c -o libstrace_a-bpf_filter.obj `if test -f 'bpf_filter.c'; then $(CYGPATH_W) 'bpf_filter.c'; else $(CYGPATH_W) '$(srcdir)/bpf_filter.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-bpf_filter.Tpo $(DEPDIR)/libstrace_a-bpf_filter.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bpf_filter.c' object='libstrace_a-bpf_filter.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-statfs64.obj `if test -f 'statfs64.c'; then $(CYGPATH_W) 'statfs64.c'; else $(CYGPATH_W) '$(srcdir)/statfs64.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-bpf_filter.obj `if test -f 'bpf_filter.c'; then $(CYGPATH_W) 'bpf_filter.c'; else $(CYGPATH_W) '$(srcdir)/bpf_filter.c'; fi` -libstrace_a-sync_file_range.o: sync_file_range.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sync_file_range.o -MD -MP -MF $(DEPDIR)/libstrace_a-sync_file_range.Tpo -c -o libstrace_a-sync_file_range.o `test -f 'sync_file_range.c' || echo '$(srcdir)/'`sync_file_range.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sync_file_range.Tpo $(DEPDIR)/libstrace_a-sync_file_range.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sync_file_range.c' object='libstrace_a-sync_file_range.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-bpf_seccomp_filter.o: bpf_seccomp_filter.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-bpf_seccomp_filter.o -MD -MP -MF $(DEPDIR)/libstrace_a-bpf_seccomp_filter.Tpo -c -o libstrace_a-bpf_seccomp_filter.o `test -f 'bpf_seccomp_filter.c' || echo '$(srcdir)/'`bpf_seccomp_filter.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-bpf_seccomp_filter.Tpo $(DEPDIR)/libstrace_a-bpf_seccomp_filter.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bpf_seccomp_filter.c' object='libstrace_a-bpf_seccomp_filter.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sync_file_range.o `test -f 'sync_file_range.c' || echo '$(srcdir)/'`sync_file_range.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-bpf_seccomp_filter.o `test -f 'bpf_seccomp_filter.c' || echo '$(srcdir)/'`bpf_seccomp_filter.c -libstrace_a-sync_file_range.obj: sync_file_range.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sync_file_range.obj -MD -MP -MF $(DEPDIR)/libstrace_a-sync_file_range.Tpo -c -o libstrace_a-sync_file_range.obj `if test -f 'sync_file_range.c'; then $(CYGPATH_W) 'sync_file_range.c'; else $(CYGPATH_W) '$(srcdir)/sync_file_range.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sync_file_range.Tpo $(DEPDIR)/libstrace_a-sync_file_range.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sync_file_range.c' object='libstrace_a-sync_file_range.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-bpf_seccomp_filter.obj: bpf_seccomp_filter.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-bpf_seccomp_filter.obj -MD -MP -MF $(DEPDIR)/libstrace_a-bpf_seccomp_filter.Tpo -c -o libstrace_a-bpf_seccomp_filter.obj `if test -f 'bpf_seccomp_filter.c'; then $(CYGPATH_W) 'bpf_seccomp_filter.c'; else $(CYGPATH_W) '$(srcdir)/bpf_seccomp_filter.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-bpf_seccomp_filter.Tpo $(DEPDIR)/libstrace_a-bpf_seccomp_filter.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bpf_seccomp_filter.c' object='libstrace_a-bpf_seccomp_filter.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sync_file_range.obj `if test -f 'sync_file_range.c'; then $(CYGPATH_W) 'sync_file_range.c'; else $(CYGPATH_W) '$(srcdir)/sync_file_range.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-bpf_seccomp_filter.obj `if test -f 'bpf_seccomp_filter.c'; then $(CYGPATH_W) 'bpf_seccomp_filter.c'; else $(CYGPATH_W) '$(srcdir)/bpf_seccomp_filter.c'; fi` -libstrace_a-sync_file_range2.o: sync_file_range2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sync_file_range2.o -MD -MP -MF $(DEPDIR)/libstrace_a-sync_file_range2.Tpo -c -o libstrace_a-sync_file_range2.o `test -f 'sync_file_range2.c' || echo '$(srcdir)/'`sync_file_range2.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sync_file_range2.Tpo $(DEPDIR)/libstrace_a-sync_file_range2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sync_file_range2.c' object='libstrace_a-sync_file_range2.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-bpf_sock_filter.o: bpf_sock_filter.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-bpf_sock_filter.o -MD -MP -MF $(DEPDIR)/libstrace_a-bpf_sock_filter.Tpo -c -o libstrace_a-bpf_sock_filter.o `test -f 'bpf_sock_filter.c' || echo '$(srcdir)/'`bpf_sock_filter.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-bpf_sock_filter.Tpo $(DEPDIR)/libstrace_a-bpf_sock_filter.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bpf_sock_filter.c' object='libstrace_a-bpf_sock_filter.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sync_file_range2.o `test -f 'sync_file_range2.c' || echo '$(srcdir)/'`sync_file_range2.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-bpf_sock_filter.o `test -f 'bpf_sock_filter.c' || echo '$(srcdir)/'`bpf_sock_filter.c -libstrace_a-sync_file_range2.obj: sync_file_range2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sync_file_range2.obj -MD -MP -MF $(DEPDIR)/libstrace_a-sync_file_range2.Tpo -c -o libstrace_a-sync_file_range2.obj `if test -f 'sync_file_range2.c'; then $(CYGPATH_W) 'sync_file_range2.c'; else $(CYGPATH_W) '$(srcdir)/sync_file_range2.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sync_file_range2.Tpo $(DEPDIR)/libstrace_a-sync_file_range2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sync_file_range2.c' object='libstrace_a-sync_file_range2.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-bpf_sock_filter.obj: bpf_sock_filter.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-bpf_sock_filter.obj -MD -MP -MF $(DEPDIR)/libstrace_a-bpf_sock_filter.Tpo -c -o libstrace_a-bpf_sock_filter.obj `if test -f 'bpf_sock_filter.c'; then $(CYGPATH_W) 'bpf_sock_filter.c'; else $(CYGPATH_W) '$(srcdir)/bpf_sock_filter.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-bpf_sock_filter.Tpo $(DEPDIR)/libstrace_a-bpf_sock_filter.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bpf_sock_filter.c' object='libstrace_a-bpf_sock_filter.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sync_file_range2.obj `if test -f 'sync_file_range2.c'; then $(CYGPATH_W) 'sync_file_range2.c'; else $(CYGPATH_W) '$(srcdir)/sync_file_range2.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-bpf_sock_filter.obj `if test -f 'bpf_sock_filter.c'; then $(CYGPATH_W) 'bpf_sock_filter.c'; else $(CYGPATH_W) '$(srcdir)/bpf_sock_filter.c'; fi` -libstrace_a-upeek.o: upeek.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-upeek.o -MD -MP -MF $(DEPDIR)/libstrace_a-upeek.Tpo -c -o libstrace_a-upeek.o `test -f 'upeek.c' || echo '$(srcdir)/'`upeek.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-upeek.Tpo $(DEPDIR)/libstrace_a-upeek.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='upeek.c' object='libstrace_a-upeek.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-btrfs.o: btrfs.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-btrfs.o -MD -MP -MF $(DEPDIR)/libstrace_a-btrfs.Tpo -c -o libstrace_a-btrfs.o `test -f 'btrfs.c' || echo '$(srcdir)/'`btrfs.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-btrfs.Tpo $(DEPDIR)/libstrace_a-btrfs.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='btrfs.c' object='libstrace_a-btrfs.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-upeek.o `test -f 'upeek.c' || echo '$(srcdir)/'`upeek.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-btrfs.o `test -f 'btrfs.c' || echo '$(srcdir)/'`btrfs.c -libstrace_a-upeek.obj: upeek.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-upeek.obj -MD -MP -MF $(DEPDIR)/libstrace_a-upeek.Tpo -c -o libstrace_a-upeek.obj `if test -f 'upeek.c'; then $(CYGPATH_W) 'upeek.c'; else $(CYGPATH_W) '$(srcdir)/upeek.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-upeek.Tpo $(DEPDIR)/libstrace_a-upeek.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='upeek.c' object='libstrace_a-upeek.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-btrfs.obj: btrfs.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-btrfs.obj -MD -MP -MF $(DEPDIR)/libstrace_a-btrfs.Tpo -c -o libstrace_a-btrfs.obj `if test -f 'btrfs.c'; then $(CYGPATH_W) 'btrfs.c'; else $(CYGPATH_W) '$(srcdir)/btrfs.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-btrfs.Tpo $(DEPDIR)/libstrace_a-btrfs.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='btrfs.c' object='libstrace_a-btrfs.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-upeek.obj `if test -f 'upeek.c'; then $(CYGPATH_W) 'upeek.c'; else $(CYGPATH_W) '$(srcdir)/upeek.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-btrfs.obj `if test -f 'btrfs.c'; then $(CYGPATH_W) 'btrfs.c'; else $(CYGPATH_W) '$(srcdir)/btrfs.c'; fi` -libstrace_a-upoke.o: upoke.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-upoke.o -MD -MP -MF $(DEPDIR)/libstrace_a-upoke.Tpo -c -o libstrace_a-upoke.o `test -f 'upoke.c' || echo '$(srcdir)/'`upoke.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-upoke.Tpo $(DEPDIR)/libstrace_a-upoke.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='upoke.c' object='libstrace_a-upoke.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-cacheflush.o: cacheflush.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-cacheflush.o -MD -MP -MF $(DEPDIR)/libstrace_a-cacheflush.Tpo -c -o libstrace_a-cacheflush.o `test -f 'cacheflush.c' || echo '$(srcdir)/'`cacheflush.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-cacheflush.Tpo $(DEPDIR)/libstrace_a-cacheflush.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cacheflush.c' object='libstrace_a-cacheflush.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-upoke.o `test -f 'upoke.c' || echo '$(srcdir)/'`upoke.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-cacheflush.o `test -f 'cacheflush.c' || echo '$(srcdir)/'`cacheflush.c -libstrace_a-upoke.obj: upoke.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-upoke.obj -MD -MP -MF $(DEPDIR)/libstrace_a-upoke.Tpo -c -o libstrace_a-upoke.obj `if test -f 'upoke.c'; then $(CYGPATH_W) 'upoke.c'; else $(CYGPATH_W) '$(srcdir)/upoke.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-upoke.Tpo $(DEPDIR)/libstrace_a-upoke.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='upoke.c' object='libstrace_a-upoke.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-cacheflush.obj: cacheflush.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-cacheflush.obj -MD -MP -MF $(DEPDIR)/libstrace_a-cacheflush.Tpo -c -o libstrace_a-cacheflush.obj `if test -f 'cacheflush.c'; then $(CYGPATH_W) 'cacheflush.c'; else $(CYGPATH_W) '$(srcdir)/cacheflush.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-cacheflush.Tpo $(DEPDIR)/libstrace_a-cacheflush.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cacheflush.c' object='libstrace_a-cacheflush.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-upoke.obj `if test -f 'upoke.c'; then $(CYGPATH_W) 'upoke.c'; else $(CYGPATH_W) '$(srcdir)/upoke.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-cacheflush.obj `if test -f 'cacheflush.c'; then $(CYGPATH_W) 'cacheflush.c'; else $(CYGPATH_W) '$(srcdir)/cacheflush.c'; fi` -strace-access.o: access.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-access.o -MD -MP -MF $(DEPDIR)/strace-access.Tpo -c -o strace-access.o `test -f 'access.c' || echo '$(srcdir)/'`access.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-access.Tpo $(DEPDIR)/strace-access.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='access.c' object='strace-access.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-capability.o: capability.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-capability.o -MD -MP -MF $(DEPDIR)/libstrace_a-capability.Tpo -c -o libstrace_a-capability.o `test -f 'capability.c' || echo '$(srcdir)/'`capability.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-capability.Tpo $(DEPDIR)/libstrace_a-capability.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='capability.c' object='libstrace_a-capability.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-access.o `test -f 'access.c' || echo '$(srcdir)/'`access.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-capability.o `test -f 'capability.c' || echo '$(srcdir)/'`capability.c -strace-access.obj: access.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-access.obj -MD -MP -MF $(DEPDIR)/strace-access.Tpo -c -o strace-access.obj `if test -f 'access.c'; then $(CYGPATH_W) 'access.c'; else $(CYGPATH_W) '$(srcdir)/access.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-access.Tpo $(DEPDIR)/strace-access.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='access.c' object='strace-access.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-capability.obj: capability.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-capability.obj -MD -MP -MF $(DEPDIR)/libstrace_a-capability.Tpo -c -o libstrace_a-capability.obj `if test -f 'capability.c'; then $(CYGPATH_W) 'capability.c'; else $(CYGPATH_W) '$(srcdir)/capability.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-capability.Tpo $(DEPDIR)/libstrace_a-capability.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='capability.c' object='libstrace_a-capability.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-access.obj `if test -f 'access.c'; then $(CYGPATH_W) 'access.c'; else $(CYGPATH_W) '$(srcdir)/access.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-capability.obj `if test -f 'capability.c'; then $(CYGPATH_W) 'capability.c'; else $(CYGPATH_W) '$(srcdir)/capability.c'; fi` -strace-affinity.o: affinity.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-affinity.o -MD -MP -MF $(DEPDIR)/strace-affinity.Tpo -c -o strace-affinity.o `test -f 'affinity.c' || echo '$(srcdir)/'`affinity.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-affinity.Tpo $(DEPDIR)/strace-affinity.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='affinity.c' object='strace-affinity.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-chdir.o: chdir.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-chdir.o -MD -MP -MF $(DEPDIR)/libstrace_a-chdir.Tpo -c -o libstrace_a-chdir.o `test -f 'chdir.c' || echo '$(srcdir)/'`chdir.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-chdir.Tpo $(DEPDIR)/libstrace_a-chdir.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='chdir.c' object='libstrace_a-chdir.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-affinity.o `test -f 'affinity.c' || echo '$(srcdir)/'`affinity.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-chdir.o `test -f 'chdir.c' || echo '$(srcdir)/'`chdir.c -strace-affinity.obj: affinity.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-affinity.obj -MD -MP -MF $(DEPDIR)/strace-affinity.Tpo -c -o strace-affinity.obj `if test -f 'affinity.c'; then $(CYGPATH_W) 'affinity.c'; else $(CYGPATH_W) '$(srcdir)/affinity.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-affinity.Tpo $(DEPDIR)/strace-affinity.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='affinity.c' object='strace-affinity.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-chdir.obj: chdir.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-chdir.obj -MD -MP -MF $(DEPDIR)/libstrace_a-chdir.Tpo -c -o libstrace_a-chdir.obj `if test -f 'chdir.c'; then $(CYGPATH_W) 'chdir.c'; else $(CYGPATH_W) '$(srcdir)/chdir.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-chdir.Tpo $(DEPDIR)/libstrace_a-chdir.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='chdir.c' object='libstrace_a-chdir.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-affinity.obj `if test -f 'affinity.c'; then $(CYGPATH_W) 'affinity.c'; else $(CYGPATH_W) '$(srcdir)/affinity.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-chdir.obj `if test -f 'chdir.c'; then $(CYGPATH_W) 'chdir.c'; else $(CYGPATH_W) '$(srcdir)/chdir.c'; fi` -strace-aio.o: aio.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-aio.o -MD -MP -MF $(DEPDIR)/strace-aio.Tpo -c -o strace-aio.o `test -f 'aio.c' || echo '$(srcdir)/'`aio.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-aio.Tpo $(DEPDIR)/strace-aio.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='aio.c' object='strace-aio.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-chmod.o: chmod.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-chmod.o -MD -MP -MF $(DEPDIR)/libstrace_a-chmod.Tpo -c -o libstrace_a-chmod.o `test -f 'chmod.c' || echo '$(srcdir)/'`chmod.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-chmod.Tpo $(DEPDIR)/libstrace_a-chmod.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='chmod.c' object='libstrace_a-chmod.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-aio.o `test -f 'aio.c' || echo '$(srcdir)/'`aio.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-chmod.o `test -f 'chmod.c' || echo '$(srcdir)/'`chmod.c -strace-aio.obj: aio.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-aio.obj -MD -MP -MF $(DEPDIR)/strace-aio.Tpo -c -o strace-aio.obj `if test -f 'aio.c'; then $(CYGPATH_W) 'aio.c'; else $(CYGPATH_W) '$(srcdir)/aio.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-aio.Tpo $(DEPDIR)/strace-aio.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='aio.c' object='strace-aio.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-chmod.obj: chmod.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-chmod.obj -MD -MP -MF $(DEPDIR)/libstrace_a-chmod.Tpo -c -o libstrace_a-chmod.obj `if test -f 'chmod.c'; then $(CYGPATH_W) 'chmod.c'; else $(CYGPATH_W) '$(srcdir)/chmod.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-chmod.Tpo $(DEPDIR)/libstrace_a-chmod.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='chmod.c' object='libstrace_a-chmod.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-aio.obj `if test -f 'aio.c'; then $(CYGPATH_W) 'aio.c'; else $(CYGPATH_W) '$(srcdir)/aio.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-chmod.obj `if test -f 'chmod.c'; then $(CYGPATH_W) 'chmod.c'; else $(CYGPATH_W) '$(srcdir)/chmod.c'; fi` -strace-alpha.o: alpha.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-alpha.o -MD -MP -MF $(DEPDIR)/strace-alpha.Tpo -c -o strace-alpha.o `test -f 'alpha.c' || echo '$(srcdir)/'`alpha.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-alpha.Tpo $(DEPDIR)/strace-alpha.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='alpha.c' object='strace-alpha.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-clone.o: clone.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-clone.o -MD -MP -MF $(DEPDIR)/libstrace_a-clone.Tpo -c -o libstrace_a-clone.o `test -f 'clone.c' || echo '$(srcdir)/'`clone.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-clone.Tpo $(DEPDIR)/libstrace_a-clone.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='clone.c' object='libstrace_a-clone.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-alpha.o `test -f 'alpha.c' || echo '$(srcdir)/'`alpha.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-clone.o `test -f 'clone.c' || echo '$(srcdir)/'`clone.c -strace-alpha.obj: alpha.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-alpha.obj -MD -MP -MF $(DEPDIR)/strace-alpha.Tpo -c -o strace-alpha.obj `if test -f 'alpha.c'; then $(CYGPATH_W) 'alpha.c'; else $(CYGPATH_W) '$(srcdir)/alpha.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-alpha.Tpo $(DEPDIR)/strace-alpha.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='alpha.c' object='strace-alpha.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-clone.obj: clone.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-clone.obj -MD -MP -MF $(DEPDIR)/libstrace_a-clone.Tpo -c -o libstrace_a-clone.obj `if test -f 'clone.c'; then $(CYGPATH_W) 'clone.c'; else $(CYGPATH_W) '$(srcdir)/clone.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-clone.Tpo $(DEPDIR)/libstrace_a-clone.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='clone.c' object='libstrace_a-clone.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-alpha.obj `if test -f 'alpha.c'; then $(CYGPATH_W) 'alpha.c'; else $(CYGPATH_W) '$(srcdir)/alpha.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-clone.obj `if test -f 'clone.c'; then $(CYGPATH_W) 'clone.c'; else $(CYGPATH_W) '$(srcdir)/clone.c'; fi` -strace-basic_filters.o: basic_filters.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-basic_filters.o -MD -MP -MF $(DEPDIR)/strace-basic_filters.Tpo -c -o strace-basic_filters.o `test -f 'basic_filters.c' || echo '$(srcdir)/'`basic_filters.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-basic_filters.Tpo $(DEPDIR)/strace-basic_filters.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='basic_filters.c' object='strace-basic_filters.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-close_range.o: close_range.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-close_range.o -MD -MP -MF $(DEPDIR)/libstrace_a-close_range.Tpo -c -o libstrace_a-close_range.o `test -f 'close_range.c' || echo '$(srcdir)/'`close_range.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-close_range.Tpo $(DEPDIR)/libstrace_a-close_range.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='close_range.c' object='libstrace_a-close_range.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-basic_filters.o `test -f 'basic_filters.c' || echo '$(srcdir)/'`basic_filters.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-close_range.o `test -f 'close_range.c' || echo '$(srcdir)/'`close_range.c -strace-basic_filters.obj: basic_filters.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-basic_filters.obj -MD -MP -MF $(DEPDIR)/strace-basic_filters.Tpo -c -o strace-basic_filters.obj `if test -f 'basic_filters.c'; then $(CYGPATH_W) 'basic_filters.c'; else $(CYGPATH_W) '$(srcdir)/basic_filters.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-basic_filters.Tpo $(DEPDIR)/strace-basic_filters.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='basic_filters.c' object='strace-basic_filters.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-close_range.obj: close_range.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-close_range.obj -MD -MP -MF $(DEPDIR)/libstrace_a-close_range.Tpo -c -o libstrace_a-close_range.obj `if test -f 'close_range.c'; then $(CYGPATH_W) 'close_range.c'; else $(CYGPATH_W) '$(srcdir)/close_range.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-close_range.Tpo $(DEPDIR)/libstrace_a-close_range.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='close_range.c' object='libstrace_a-close_range.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-basic_filters.obj `if test -f 'basic_filters.c'; then $(CYGPATH_W) 'basic_filters.c'; else $(CYGPATH_W) '$(srcdir)/basic_filters.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-close_range.obj `if test -f 'close_range.c'; then $(CYGPATH_W) 'close_range.c'; else $(CYGPATH_W) '$(srcdir)/close_range.c'; fi` -strace-bind.o: bind.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-bind.o -MD -MP -MF $(DEPDIR)/strace-bind.Tpo -c -o strace-bind.o `test -f 'bind.c' || echo '$(srcdir)/'`bind.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-bind.Tpo $(DEPDIR)/strace-bind.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bind.c' object='strace-bind.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-copy_file_range.o: copy_file_range.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-copy_file_range.o -MD -MP -MF $(DEPDIR)/libstrace_a-copy_file_range.Tpo -c -o libstrace_a-copy_file_range.o `test -f 'copy_file_range.c' || echo '$(srcdir)/'`copy_file_range.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-copy_file_range.Tpo $(DEPDIR)/libstrace_a-copy_file_range.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='copy_file_range.c' object='libstrace_a-copy_file_range.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-bind.o `test -f 'bind.c' || echo '$(srcdir)/'`bind.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-copy_file_range.o `test -f 'copy_file_range.c' || echo '$(srcdir)/'`copy_file_range.c -strace-bind.obj: bind.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-bind.obj -MD -MP -MF $(DEPDIR)/strace-bind.Tpo -c -o strace-bind.obj `if test -f 'bind.c'; then $(CYGPATH_W) 'bind.c'; else $(CYGPATH_W) '$(srcdir)/bind.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-bind.Tpo $(DEPDIR)/strace-bind.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bind.c' object='strace-bind.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-copy_file_range.obj: copy_file_range.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-copy_file_range.obj -MD -MP -MF $(DEPDIR)/libstrace_a-copy_file_range.Tpo -c -o libstrace_a-copy_file_range.obj `if test -f 'copy_file_range.c'; then $(CYGPATH_W) 'copy_file_range.c'; else $(CYGPATH_W) '$(srcdir)/copy_file_range.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-copy_file_range.Tpo $(DEPDIR)/libstrace_a-copy_file_range.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='copy_file_range.c' object='libstrace_a-copy_file_range.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-bind.obj `if test -f 'bind.c'; then $(CYGPATH_W) 'bind.c'; else $(CYGPATH_W) '$(srcdir)/bind.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-copy_file_range.obj `if test -f 'copy_file_range.c'; then $(CYGPATH_W) 'copy_file_range.c'; else $(CYGPATH_W) '$(srcdir)/copy_file_range.c'; fi` -strace-bjm.o: bjm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-bjm.o -MD -MP -MF $(DEPDIR)/strace-bjm.Tpo -c -o strace-bjm.o `test -f 'bjm.c' || echo '$(srcdir)/'`bjm.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-bjm.Tpo $(DEPDIR)/strace-bjm.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bjm.c' object='strace-bjm.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-count.o: count.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-count.o -MD -MP -MF $(DEPDIR)/libstrace_a-count.Tpo -c -o libstrace_a-count.o `test -f 'count.c' || echo '$(srcdir)/'`count.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-count.Tpo $(DEPDIR)/libstrace_a-count.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='count.c' object='libstrace_a-count.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-bjm.o `test -f 'bjm.c' || echo '$(srcdir)/'`bjm.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-count.o `test -f 'count.c' || echo '$(srcdir)/'`count.c -strace-bjm.obj: bjm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-bjm.obj -MD -MP -MF $(DEPDIR)/strace-bjm.Tpo -c -o strace-bjm.obj `if test -f 'bjm.c'; then $(CYGPATH_W) 'bjm.c'; else $(CYGPATH_W) '$(srcdir)/bjm.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-bjm.Tpo $(DEPDIR)/strace-bjm.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bjm.c' object='strace-bjm.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-count.obj: count.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-count.obj -MD -MP -MF $(DEPDIR)/libstrace_a-count.Tpo -c -o libstrace_a-count.obj `if test -f 'count.c'; then $(CYGPATH_W) 'count.c'; else $(CYGPATH_W) '$(srcdir)/count.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-count.Tpo $(DEPDIR)/libstrace_a-count.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='count.c' object='libstrace_a-count.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-bjm.obj `if test -f 'bjm.c'; then $(CYGPATH_W) 'bjm.c'; else $(CYGPATH_W) '$(srcdir)/bjm.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-count.obj `if test -f 'count.c'; then $(CYGPATH_W) 'count.c'; else $(CYGPATH_W) '$(srcdir)/count.c'; fi` -strace-block.o: block.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-block.o -MD -MP -MF $(DEPDIR)/strace-block.Tpo -c -o strace-block.o `test -f 'block.c' || echo '$(srcdir)/'`block.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-block.Tpo $(DEPDIR)/strace-block.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='block.c' object='strace-block.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-delay.o: delay.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-delay.o -MD -MP -MF $(DEPDIR)/libstrace_a-delay.Tpo -c -o libstrace_a-delay.o `test -f 'delay.c' || echo '$(srcdir)/'`delay.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-delay.Tpo $(DEPDIR)/libstrace_a-delay.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='delay.c' object='libstrace_a-delay.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-block.o `test -f 'block.c' || echo '$(srcdir)/'`block.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-delay.o `test -f 'delay.c' || echo '$(srcdir)/'`delay.c -strace-block.obj: block.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-block.obj -MD -MP -MF $(DEPDIR)/strace-block.Tpo -c -o strace-block.obj `if test -f 'block.c'; then $(CYGPATH_W) 'block.c'; else $(CYGPATH_W) '$(srcdir)/block.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-block.Tpo $(DEPDIR)/strace-block.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='block.c' object='strace-block.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-delay.obj: delay.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-delay.obj -MD -MP -MF $(DEPDIR)/libstrace_a-delay.Tpo -c -o libstrace_a-delay.obj `if test -f 'delay.c'; then $(CYGPATH_W) 'delay.c'; else $(CYGPATH_W) '$(srcdir)/delay.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-delay.Tpo $(DEPDIR)/libstrace_a-delay.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='delay.c' object='libstrace_a-delay.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-block.obj `if test -f 'block.c'; then $(CYGPATH_W) 'block.c'; else $(CYGPATH_W) '$(srcdir)/block.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-delay.obj `if test -f 'delay.c'; then $(CYGPATH_W) 'delay.c'; else $(CYGPATH_W) '$(srcdir)/delay.c'; fi` -strace-bpf.o: bpf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-bpf.o -MD -MP -MF $(DEPDIR)/strace-bpf.Tpo -c -o strace-bpf.o `test -f 'bpf.c' || echo '$(srcdir)/'`bpf.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-bpf.Tpo $(DEPDIR)/strace-bpf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bpf.c' object='strace-bpf.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-desc.o: desc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-desc.o -MD -MP -MF $(DEPDIR)/libstrace_a-desc.Tpo -c -o libstrace_a-desc.o `test -f 'desc.c' || echo '$(srcdir)/'`desc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-desc.Tpo $(DEPDIR)/libstrace_a-desc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='desc.c' object='libstrace_a-desc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-bpf.o `test -f 'bpf.c' || echo '$(srcdir)/'`bpf.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-desc.o `test -f 'desc.c' || echo '$(srcdir)/'`desc.c -strace-bpf.obj: bpf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-bpf.obj -MD -MP -MF $(DEPDIR)/strace-bpf.Tpo -c -o strace-bpf.obj `if test -f 'bpf.c'; then $(CYGPATH_W) 'bpf.c'; else $(CYGPATH_W) '$(srcdir)/bpf.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-bpf.Tpo $(DEPDIR)/strace-bpf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bpf.c' object='strace-bpf.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-desc.obj: desc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-desc.obj -MD -MP -MF $(DEPDIR)/libstrace_a-desc.Tpo -c -o libstrace_a-desc.obj `if test -f 'desc.c'; then $(CYGPATH_W) 'desc.c'; else $(CYGPATH_W) '$(srcdir)/desc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-desc.Tpo $(DEPDIR)/libstrace_a-desc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='desc.c' object='libstrace_a-desc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-bpf.obj `if test -f 'bpf.c'; then $(CYGPATH_W) 'bpf.c'; else $(CYGPATH_W) '$(srcdir)/bpf.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-desc.obj `if test -f 'desc.c'; then $(CYGPATH_W) 'desc.c'; else $(CYGPATH_W) '$(srcdir)/desc.c'; fi` -strace-bpf_filter.o: bpf_filter.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-bpf_filter.o -MD -MP -MF $(DEPDIR)/strace-bpf_filter.Tpo -c -o strace-bpf_filter.o `test -f 'bpf_filter.c' || echo '$(srcdir)/'`bpf_filter.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-bpf_filter.Tpo $(DEPDIR)/strace-bpf_filter.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bpf_filter.c' object='strace-bpf_filter.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-dirent.o: dirent.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-dirent.o -MD -MP -MF $(DEPDIR)/libstrace_a-dirent.Tpo -c -o libstrace_a-dirent.o `test -f 'dirent.c' || echo '$(srcdir)/'`dirent.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-dirent.Tpo $(DEPDIR)/libstrace_a-dirent.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dirent.c' object='libstrace_a-dirent.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-bpf_filter.o `test -f 'bpf_filter.c' || echo '$(srcdir)/'`bpf_filter.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-dirent.o `test -f 'dirent.c' || echo '$(srcdir)/'`dirent.c -strace-bpf_filter.obj: bpf_filter.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-bpf_filter.obj -MD -MP -MF $(DEPDIR)/strace-bpf_filter.Tpo -c -o strace-bpf_filter.obj `if test -f 'bpf_filter.c'; then $(CYGPATH_W) 'bpf_filter.c'; else $(CYGPATH_W) '$(srcdir)/bpf_filter.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-bpf_filter.Tpo $(DEPDIR)/strace-bpf_filter.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bpf_filter.c' object='strace-bpf_filter.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-dirent.obj: dirent.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-dirent.obj -MD -MP -MF $(DEPDIR)/libstrace_a-dirent.Tpo -c -o libstrace_a-dirent.obj `if test -f 'dirent.c'; then $(CYGPATH_W) 'dirent.c'; else $(CYGPATH_W) '$(srcdir)/dirent.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-dirent.Tpo $(DEPDIR)/libstrace_a-dirent.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dirent.c' object='libstrace_a-dirent.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-bpf_filter.obj `if test -f 'bpf_filter.c'; then $(CYGPATH_W) 'bpf_filter.c'; else $(CYGPATH_W) '$(srcdir)/bpf_filter.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-dirent.obj `if test -f 'dirent.c'; then $(CYGPATH_W) 'dirent.c'; else $(CYGPATH_W) '$(srcdir)/dirent.c'; fi` -strace-bpf_seccomp_filter.o: bpf_seccomp_filter.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-bpf_seccomp_filter.o -MD -MP -MF $(DEPDIR)/strace-bpf_seccomp_filter.Tpo -c -o strace-bpf_seccomp_filter.o `test -f 'bpf_seccomp_filter.c' || echo '$(srcdir)/'`bpf_seccomp_filter.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-bpf_seccomp_filter.Tpo $(DEPDIR)/strace-bpf_seccomp_filter.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bpf_seccomp_filter.c' object='strace-bpf_seccomp_filter.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-dirent64.o: dirent64.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-dirent64.o -MD -MP -MF $(DEPDIR)/libstrace_a-dirent64.Tpo -c -o libstrace_a-dirent64.o `test -f 'dirent64.c' || echo '$(srcdir)/'`dirent64.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-dirent64.Tpo $(DEPDIR)/libstrace_a-dirent64.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dirent64.c' object='libstrace_a-dirent64.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-bpf_seccomp_filter.o `test -f 'bpf_seccomp_filter.c' || echo '$(srcdir)/'`bpf_seccomp_filter.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-dirent64.o `test -f 'dirent64.c' || echo '$(srcdir)/'`dirent64.c -strace-bpf_seccomp_filter.obj: bpf_seccomp_filter.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-bpf_seccomp_filter.obj -MD -MP -MF $(DEPDIR)/strace-bpf_seccomp_filter.Tpo -c -o strace-bpf_seccomp_filter.obj `if test -f 'bpf_seccomp_filter.c'; then $(CYGPATH_W) 'bpf_seccomp_filter.c'; else $(CYGPATH_W) '$(srcdir)/bpf_seccomp_filter.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-bpf_seccomp_filter.Tpo $(DEPDIR)/strace-bpf_seccomp_filter.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bpf_seccomp_filter.c' object='strace-bpf_seccomp_filter.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-dirent64.obj: dirent64.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-dirent64.obj -MD -MP -MF $(DEPDIR)/libstrace_a-dirent64.Tpo -c -o libstrace_a-dirent64.obj `if test -f 'dirent64.c'; then $(CYGPATH_W) 'dirent64.c'; else $(CYGPATH_W) '$(srcdir)/dirent64.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-dirent64.Tpo $(DEPDIR)/libstrace_a-dirent64.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dirent64.c' object='libstrace_a-dirent64.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-bpf_seccomp_filter.obj `if test -f 'bpf_seccomp_filter.c'; then $(CYGPATH_W) 'bpf_seccomp_filter.c'; else $(CYGPATH_W) '$(srcdir)/bpf_seccomp_filter.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-dirent64.obj `if test -f 'dirent64.c'; then $(CYGPATH_W) 'dirent64.c'; else $(CYGPATH_W) '$(srcdir)/dirent64.c'; fi` -strace-bpf_sock_filter.o: bpf_sock_filter.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-bpf_sock_filter.o -MD -MP -MF $(DEPDIR)/strace-bpf_sock_filter.Tpo -c -o strace-bpf_sock_filter.o `test -f 'bpf_sock_filter.c' || echo '$(srcdir)/'`bpf_sock_filter.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-bpf_sock_filter.Tpo $(DEPDIR)/strace-bpf_sock_filter.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bpf_sock_filter.c' object='strace-bpf_sock_filter.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-dirent_types.o: dirent_types.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-dirent_types.o -MD -MP -MF $(DEPDIR)/libstrace_a-dirent_types.Tpo -c -o libstrace_a-dirent_types.o `test -f 'dirent_types.c' || echo '$(srcdir)/'`dirent_types.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-dirent_types.Tpo $(DEPDIR)/libstrace_a-dirent_types.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dirent_types.c' object='libstrace_a-dirent_types.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-bpf_sock_filter.o `test -f 'bpf_sock_filter.c' || echo '$(srcdir)/'`bpf_sock_filter.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-dirent_types.o `test -f 'dirent_types.c' || echo '$(srcdir)/'`dirent_types.c -strace-bpf_sock_filter.obj: bpf_sock_filter.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-bpf_sock_filter.obj -MD -MP -MF $(DEPDIR)/strace-bpf_sock_filter.Tpo -c -o strace-bpf_sock_filter.obj `if test -f 'bpf_sock_filter.c'; then $(CYGPATH_W) 'bpf_sock_filter.c'; else $(CYGPATH_W) '$(srcdir)/bpf_sock_filter.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-bpf_sock_filter.Tpo $(DEPDIR)/strace-bpf_sock_filter.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bpf_sock_filter.c' object='strace-bpf_sock_filter.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-dirent_types.obj: dirent_types.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-dirent_types.obj -MD -MP -MF $(DEPDIR)/libstrace_a-dirent_types.Tpo -c -o libstrace_a-dirent_types.obj `if test -f 'dirent_types.c'; then $(CYGPATH_W) 'dirent_types.c'; else $(CYGPATH_W) '$(srcdir)/dirent_types.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-dirent_types.Tpo $(DEPDIR)/libstrace_a-dirent_types.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dirent_types.c' object='libstrace_a-dirent_types.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-bpf_sock_filter.obj `if test -f 'bpf_sock_filter.c'; then $(CYGPATH_W) 'bpf_sock_filter.c'; else $(CYGPATH_W) '$(srcdir)/bpf_sock_filter.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-dirent_types.obj `if test -f 'dirent_types.c'; then $(CYGPATH_W) 'dirent_types.c'; else $(CYGPATH_W) '$(srcdir)/dirent_types.c'; fi` -strace-btrfs.o: btrfs.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-btrfs.o -MD -MP -MF $(DEPDIR)/strace-btrfs.Tpo -c -o strace-btrfs.o `test -f 'btrfs.c' || echo '$(srcdir)/'`btrfs.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-btrfs.Tpo $(DEPDIR)/strace-btrfs.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='btrfs.c' object='strace-btrfs.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-dm.o: dm.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-dm.o -MD -MP -MF $(DEPDIR)/libstrace_a-dm.Tpo -c -o libstrace_a-dm.o `test -f 'dm.c' || echo '$(srcdir)/'`dm.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-dm.Tpo $(DEPDIR)/libstrace_a-dm.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dm.c' object='libstrace_a-dm.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-btrfs.o `test -f 'btrfs.c' || echo '$(srcdir)/'`btrfs.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-dm.o `test -f 'dm.c' || echo '$(srcdir)/'`dm.c -strace-btrfs.obj: btrfs.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-btrfs.obj -MD -MP -MF $(DEPDIR)/strace-btrfs.Tpo -c -o strace-btrfs.obj `if test -f 'btrfs.c'; then $(CYGPATH_W) 'btrfs.c'; else $(CYGPATH_W) '$(srcdir)/btrfs.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-btrfs.Tpo $(DEPDIR)/strace-btrfs.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='btrfs.c' object='strace-btrfs.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-dm.obj: dm.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-dm.obj -MD -MP -MF $(DEPDIR)/libstrace_a-dm.Tpo -c -o libstrace_a-dm.obj `if test -f 'dm.c'; then $(CYGPATH_W) 'dm.c'; else $(CYGPATH_W) '$(srcdir)/dm.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-dm.Tpo $(DEPDIR)/libstrace_a-dm.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dm.c' object='libstrace_a-dm.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-btrfs.obj `if test -f 'btrfs.c'; then $(CYGPATH_W) 'btrfs.c'; else $(CYGPATH_W) '$(srcdir)/btrfs.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-dm.obj `if test -f 'dm.c'; then $(CYGPATH_W) 'dm.c'; else $(CYGPATH_W) '$(srcdir)/dm.c'; fi` -strace-cacheflush.o: cacheflush.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-cacheflush.o -MD -MP -MF $(DEPDIR)/strace-cacheflush.Tpo -c -o strace-cacheflush.o `test -f 'cacheflush.c' || echo '$(srcdir)/'`cacheflush.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-cacheflush.Tpo $(DEPDIR)/strace-cacheflush.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cacheflush.c' object='strace-cacheflush.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-dup.o: dup.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-dup.o -MD -MP -MF $(DEPDIR)/libstrace_a-dup.Tpo -c -o libstrace_a-dup.o `test -f 'dup.c' || echo '$(srcdir)/'`dup.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-dup.Tpo $(DEPDIR)/libstrace_a-dup.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dup.c' object='libstrace_a-dup.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-cacheflush.o `test -f 'cacheflush.c' || echo '$(srcdir)/'`cacheflush.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-dup.o `test -f 'dup.c' || echo '$(srcdir)/'`dup.c -strace-cacheflush.obj: cacheflush.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-cacheflush.obj -MD -MP -MF $(DEPDIR)/strace-cacheflush.Tpo -c -o strace-cacheflush.obj `if test -f 'cacheflush.c'; then $(CYGPATH_W) 'cacheflush.c'; else $(CYGPATH_W) '$(srcdir)/cacheflush.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-cacheflush.Tpo $(DEPDIR)/strace-cacheflush.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cacheflush.c' object='strace-cacheflush.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-dup.obj: dup.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-dup.obj -MD -MP -MF $(DEPDIR)/libstrace_a-dup.Tpo -c -o libstrace_a-dup.obj `if test -f 'dup.c'; then $(CYGPATH_W) 'dup.c'; else $(CYGPATH_W) '$(srcdir)/dup.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-dup.Tpo $(DEPDIR)/libstrace_a-dup.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dup.c' object='libstrace_a-dup.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-cacheflush.obj `if test -f 'cacheflush.c'; then $(CYGPATH_W) 'cacheflush.c'; else $(CYGPATH_W) '$(srcdir)/cacheflush.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-dup.obj `if test -f 'dup.c'; then $(CYGPATH_W) 'dup.c'; else $(CYGPATH_W) '$(srcdir)/dup.c'; fi` -strace-capability.o: capability.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-capability.o -MD -MP -MF $(DEPDIR)/strace-capability.Tpo -c -o strace-capability.o `test -f 'capability.c' || echo '$(srcdir)/'`capability.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-capability.Tpo $(DEPDIR)/strace-capability.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='capability.c' object='strace-capability.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-dyxlat.o: dyxlat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-dyxlat.o -MD -MP -MF $(DEPDIR)/libstrace_a-dyxlat.Tpo -c -o libstrace_a-dyxlat.o `test -f 'dyxlat.c' || echo '$(srcdir)/'`dyxlat.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-dyxlat.Tpo $(DEPDIR)/libstrace_a-dyxlat.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dyxlat.c' object='libstrace_a-dyxlat.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-capability.o `test -f 'capability.c' || echo '$(srcdir)/'`capability.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-dyxlat.o `test -f 'dyxlat.c' || echo '$(srcdir)/'`dyxlat.c -strace-capability.obj: capability.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-capability.obj -MD -MP -MF $(DEPDIR)/strace-capability.Tpo -c -o strace-capability.obj `if test -f 'capability.c'; then $(CYGPATH_W) 'capability.c'; else $(CYGPATH_W) '$(srcdir)/capability.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-capability.Tpo $(DEPDIR)/strace-capability.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='capability.c' object='strace-capability.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-dyxlat.obj: dyxlat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-dyxlat.obj -MD -MP -MF $(DEPDIR)/libstrace_a-dyxlat.Tpo -c -o libstrace_a-dyxlat.obj `if test -f 'dyxlat.c'; then $(CYGPATH_W) 'dyxlat.c'; else $(CYGPATH_W) '$(srcdir)/dyxlat.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-dyxlat.Tpo $(DEPDIR)/libstrace_a-dyxlat.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dyxlat.c' object='libstrace_a-dyxlat.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-capability.obj `if test -f 'capability.c'; then $(CYGPATH_W) 'capability.c'; else $(CYGPATH_W) '$(srcdir)/capability.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-dyxlat.obj `if test -f 'dyxlat.c'; then $(CYGPATH_W) 'dyxlat.c'; else $(CYGPATH_W) '$(srcdir)/dyxlat.c'; fi` -strace-chdir.o: chdir.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-chdir.o -MD -MP -MF $(DEPDIR)/strace-chdir.Tpo -c -o strace-chdir.o `test -f 'chdir.c' || echo '$(srcdir)/'`chdir.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-chdir.Tpo $(DEPDIR)/strace-chdir.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='chdir.c' object='strace-chdir.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-epoll.o: epoll.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-epoll.o -MD -MP -MF $(DEPDIR)/libstrace_a-epoll.Tpo -c -o libstrace_a-epoll.o `test -f 'epoll.c' || echo '$(srcdir)/'`epoll.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-epoll.Tpo $(DEPDIR)/libstrace_a-epoll.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epoll.c' object='libstrace_a-epoll.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-chdir.o `test -f 'chdir.c' || echo '$(srcdir)/'`chdir.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-epoll.o `test -f 'epoll.c' || echo '$(srcdir)/'`epoll.c -strace-chdir.obj: chdir.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-chdir.obj -MD -MP -MF $(DEPDIR)/strace-chdir.Tpo -c -o strace-chdir.obj `if test -f 'chdir.c'; then $(CYGPATH_W) 'chdir.c'; else $(CYGPATH_W) '$(srcdir)/chdir.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-chdir.Tpo $(DEPDIR)/strace-chdir.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='chdir.c' object='strace-chdir.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-epoll.obj: epoll.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-epoll.obj -MD -MP -MF $(DEPDIR)/libstrace_a-epoll.Tpo -c -o libstrace_a-epoll.obj `if test -f 'epoll.c'; then $(CYGPATH_W) 'epoll.c'; else $(CYGPATH_W) '$(srcdir)/epoll.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-epoll.Tpo $(DEPDIR)/libstrace_a-epoll.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epoll.c' object='libstrace_a-epoll.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-chdir.obj `if test -f 'chdir.c'; then $(CYGPATH_W) 'chdir.c'; else $(CYGPATH_W) '$(srcdir)/chdir.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-epoll.obj `if test -f 'epoll.c'; then $(CYGPATH_W) 'epoll.c'; else $(CYGPATH_W) '$(srcdir)/epoll.c'; fi` -strace-chmod.o: chmod.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-chmod.o -MD -MP -MF $(DEPDIR)/strace-chmod.Tpo -c -o strace-chmod.o `test -f 'chmod.c' || echo '$(srcdir)/'`chmod.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-chmod.Tpo $(DEPDIR)/strace-chmod.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='chmod.c' object='strace-chmod.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-error_prints.o: error_prints.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-error_prints.o -MD -MP -MF $(DEPDIR)/libstrace_a-error_prints.Tpo -c -o libstrace_a-error_prints.o `test -f 'error_prints.c' || echo '$(srcdir)/'`error_prints.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-error_prints.Tpo $(DEPDIR)/libstrace_a-error_prints.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='error_prints.c' object='libstrace_a-error_prints.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-chmod.o `test -f 'chmod.c' || echo '$(srcdir)/'`chmod.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-error_prints.o `test -f 'error_prints.c' || echo '$(srcdir)/'`error_prints.c -strace-chmod.obj: chmod.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-chmod.obj -MD -MP -MF $(DEPDIR)/strace-chmod.Tpo -c -o strace-chmod.obj `if test -f 'chmod.c'; then $(CYGPATH_W) 'chmod.c'; else $(CYGPATH_W) '$(srcdir)/chmod.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-chmod.Tpo $(DEPDIR)/strace-chmod.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='chmod.c' object='strace-chmod.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-error_prints.obj: error_prints.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-error_prints.obj -MD -MP -MF $(DEPDIR)/libstrace_a-error_prints.Tpo -c -o libstrace_a-error_prints.obj `if test -f 'error_prints.c'; then $(CYGPATH_W) 'error_prints.c'; else $(CYGPATH_W) '$(srcdir)/error_prints.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-error_prints.Tpo $(DEPDIR)/libstrace_a-error_prints.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='error_prints.c' object='libstrace_a-error_prints.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-chmod.obj `if test -f 'chmod.c'; then $(CYGPATH_W) 'chmod.c'; else $(CYGPATH_W) '$(srcdir)/chmod.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-error_prints.obj `if test -f 'error_prints.c'; then $(CYGPATH_W) 'error_prints.c'; else $(CYGPATH_W) '$(srcdir)/error_prints.c'; fi` -strace-clone.o: clone.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-clone.o -MD -MP -MF $(DEPDIR)/strace-clone.Tpo -c -o strace-clone.o `test -f 'clone.c' || echo '$(srcdir)/'`clone.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-clone.Tpo $(DEPDIR)/strace-clone.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='clone.c' object='strace-clone.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-evdev.o: evdev.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-evdev.o -MD -MP -MF $(DEPDIR)/libstrace_a-evdev.Tpo -c -o libstrace_a-evdev.o `test -f 'evdev.c' || echo '$(srcdir)/'`evdev.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-evdev.Tpo $(DEPDIR)/libstrace_a-evdev.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evdev.c' object='libstrace_a-evdev.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-clone.o `test -f 'clone.c' || echo '$(srcdir)/'`clone.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-evdev.o `test -f 'evdev.c' || echo '$(srcdir)/'`evdev.c -strace-clone.obj: clone.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-clone.obj -MD -MP -MF $(DEPDIR)/strace-clone.Tpo -c -o strace-clone.obj `if test -f 'clone.c'; then $(CYGPATH_W) 'clone.c'; else $(CYGPATH_W) '$(srcdir)/clone.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-clone.Tpo $(DEPDIR)/strace-clone.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='clone.c' object='strace-clone.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-evdev.obj: evdev.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-evdev.obj -MD -MP -MF $(DEPDIR)/libstrace_a-evdev.Tpo -c -o libstrace_a-evdev.obj `if test -f 'evdev.c'; then $(CYGPATH_W) 'evdev.c'; else $(CYGPATH_W) '$(srcdir)/evdev.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-evdev.Tpo $(DEPDIR)/libstrace_a-evdev.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evdev.c' object='libstrace_a-evdev.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-clone.obj `if test -f 'clone.c'; then $(CYGPATH_W) 'clone.c'; else $(CYGPATH_W) '$(srcdir)/clone.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-evdev.obj `if test -f 'evdev.c'; then $(CYGPATH_W) 'evdev.c'; else $(CYGPATH_W) '$(srcdir)/evdev.c'; fi` -strace-copy_file_range.o: copy_file_range.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-copy_file_range.o -MD -MP -MF $(DEPDIR)/strace-copy_file_range.Tpo -c -o strace-copy_file_range.o `test -f 'copy_file_range.c' || echo '$(srcdir)/'`copy_file_range.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-copy_file_range.Tpo $(DEPDIR)/strace-copy_file_range.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='copy_file_range.c' object='strace-copy_file_range.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-evdev_mpers.o: evdev_mpers.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-evdev_mpers.o -MD -MP -MF $(DEPDIR)/libstrace_a-evdev_mpers.Tpo -c -o libstrace_a-evdev_mpers.o `test -f 'evdev_mpers.c' || echo '$(srcdir)/'`evdev_mpers.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-evdev_mpers.Tpo $(DEPDIR)/libstrace_a-evdev_mpers.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evdev_mpers.c' object='libstrace_a-evdev_mpers.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-copy_file_range.o `test -f 'copy_file_range.c' || echo '$(srcdir)/'`copy_file_range.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-evdev_mpers.o `test -f 'evdev_mpers.c' || echo '$(srcdir)/'`evdev_mpers.c -strace-copy_file_range.obj: copy_file_range.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-copy_file_range.obj -MD -MP -MF $(DEPDIR)/strace-copy_file_range.Tpo -c -o strace-copy_file_range.obj `if test -f 'copy_file_range.c'; then $(CYGPATH_W) 'copy_file_range.c'; else $(CYGPATH_W) '$(srcdir)/copy_file_range.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-copy_file_range.Tpo $(DEPDIR)/strace-copy_file_range.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='copy_file_range.c' object='strace-copy_file_range.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-evdev_mpers.obj: evdev_mpers.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-evdev_mpers.obj -MD -MP -MF $(DEPDIR)/libstrace_a-evdev_mpers.Tpo -c -o libstrace_a-evdev_mpers.obj `if test -f 'evdev_mpers.c'; then $(CYGPATH_W) 'evdev_mpers.c'; else $(CYGPATH_W) '$(srcdir)/evdev_mpers.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-evdev_mpers.Tpo $(DEPDIR)/libstrace_a-evdev_mpers.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evdev_mpers.c' object='libstrace_a-evdev_mpers.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-copy_file_range.obj `if test -f 'copy_file_range.c'; then $(CYGPATH_W) 'copy_file_range.c'; else $(CYGPATH_W) '$(srcdir)/copy_file_range.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-evdev_mpers.obj `if test -f 'evdev_mpers.c'; then $(CYGPATH_W) 'evdev_mpers.c'; else $(CYGPATH_W) '$(srcdir)/evdev_mpers.c'; fi` -strace-count.o: count.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-count.o -MD -MP -MF $(DEPDIR)/strace-count.Tpo -c -o strace-count.o `test -f 'count.c' || echo '$(srcdir)/'`count.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-count.Tpo $(DEPDIR)/strace-count.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='count.c' object='strace-count.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-eventfd.o: eventfd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-eventfd.o -MD -MP -MF $(DEPDIR)/libstrace_a-eventfd.Tpo -c -o libstrace_a-eventfd.o `test -f 'eventfd.c' || echo '$(srcdir)/'`eventfd.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-eventfd.Tpo $(DEPDIR)/libstrace_a-eventfd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='eventfd.c' object='libstrace_a-eventfd.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-count.o `test -f 'count.c' || echo '$(srcdir)/'`count.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-eventfd.o `test -f 'eventfd.c' || echo '$(srcdir)/'`eventfd.c -strace-count.obj: count.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-count.obj -MD -MP -MF $(DEPDIR)/strace-count.Tpo -c -o strace-count.obj `if test -f 'count.c'; then $(CYGPATH_W) 'count.c'; else $(CYGPATH_W) '$(srcdir)/count.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-count.Tpo $(DEPDIR)/strace-count.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='count.c' object='strace-count.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-eventfd.obj: eventfd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-eventfd.obj -MD -MP -MF $(DEPDIR)/libstrace_a-eventfd.Tpo -c -o libstrace_a-eventfd.obj `if test -f 'eventfd.c'; then $(CYGPATH_W) 'eventfd.c'; else $(CYGPATH_W) '$(srcdir)/eventfd.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-eventfd.Tpo $(DEPDIR)/libstrace_a-eventfd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='eventfd.c' object='libstrace_a-eventfd.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-count.obj `if test -f 'count.c'; then $(CYGPATH_W) 'count.c'; else $(CYGPATH_W) '$(srcdir)/count.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-eventfd.obj `if test -f 'eventfd.c'; then $(CYGPATH_W) 'eventfd.c'; else $(CYGPATH_W) '$(srcdir)/eventfd.c'; fi` -strace-delay.o: delay.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-delay.o -MD -MP -MF $(DEPDIR)/strace-delay.Tpo -c -o strace-delay.o `test -f 'delay.c' || echo '$(srcdir)/'`delay.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-delay.Tpo $(DEPDIR)/strace-delay.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='delay.c' object='strace-delay.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-execve.o: execve.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-execve.o -MD -MP -MF $(DEPDIR)/libstrace_a-execve.Tpo -c -o libstrace_a-execve.o `test -f 'execve.c' || echo '$(srcdir)/'`execve.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-execve.Tpo $(DEPDIR)/libstrace_a-execve.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='execve.c' object='libstrace_a-execve.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-delay.o `test -f 'delay.c' || echo '$(srcdir)/'`delay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-execve.o `test -f 'execve.c' || echo '$(srcdir)/'`execve.c -strace-delay.obj: delay.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-delay.obj -MD -MP -MF $(DEPDIR)/strace-delay.Tpo -c -o strace-delay.obj `if test -f 'delay.c'; then $(CYGPATH_W) 'delay.c'; else $(CYGPATH_W) '$(srcdir)/delay.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-delay.Tpo $(DEPDIR)/strace-delay.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='delay.c' object='strace-delay.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-execve.obj: execve.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-execve.obj -MD -MP -MF $(DEPDIR)/libstrace_a-execve.Tpo -c -o libstrace_a-execve.obj `if test -f 'execve.c'; then $(CYGPATH_W) 'execve.c'; else $(CYGPATH_W) '$(srcdir)/execve.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-execve.Tpo $(DEPDIR)/libstrace_a-execve.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='execve.c' object='libstrace_a-execve.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-delay.obj `if test -f 'delay.c'; then $(CYGPATH_W) 'delay.c'; else $(CYGPATH_W) '$(srcdir)/delay.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-execve.obj `if test -f 'execve.c'; then $(CYGPATH_W) 'execve.c'; else $(CYGPATH_W) '$(srcdir)/execve.c'; fi` -strace-desc.o: desc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-desc.o -MD -MP -MF $(DEPDIR)/strace-desc.Tpo -c -o strace-desc.o `test -f 'desc.c' || echo '$(srcdir)/'`desc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-desc.Tpo $(DEPDIR)/strace-desc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='desc.c' object='strace-desc.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fadvise.o: fadvise.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fadvise.o -MD -MP -MF $(DEPDIR)/libstrace_a-fadvise.Tpo -c -o libstrace_a-fadvise.o `test -f 'fadvise.c' || echo '$(srcdir)/'`fadvise.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fadvise.Tpo $(DEPDIR)/libstrace_a-fadvise.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fadvise.c' object='libstrace_a-fadvise.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-desc.o `test -f 'desc.c' || echo '$(srcdir)/'`desc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fadvise.o `test -f 'fadvise.c' || echo '$(srcdir)/'`fadvise.c -strace-desc.obj: desc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-desc.obj -MD -MP -MF $(DEPDIR)/strace-desc.Tpo -c -o strace-desc.obj `if test -f 'desc.c'; then $(CYGPATH_W) 'desc.c'; else $(CYGPATH_W) '$(srcdir)/desc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-desc.Tpo $(DEPDIR)/strace-desc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='desc.c' object='strace-desc.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fadvise.obj: fadvise.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fadvise.obj -MD -MP -MF $(DEPDIR)/libstrace_a-fadvise.Tpo -c -o libstrace_a-fadvise.obj `if test -f 'fadvise.c'; then $(CYGPATH_W) 'fadvise.c'; else $(CYGPATH_W) '$(srcdir)/fadvise.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fadvise.Tpo $(DEPDIR)/libstrace_a-fadvise.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fadvise.c' object='libstrace_a-fadvise.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-desc.obj `if test -f 'desc.c'; then $(CYGPATH_W) 'desc.c'; else $(CYGPATH_W) '$(srcdir)/desc.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fadvise.obj `if test -f 'fadvise.c'; then $(CYGPATH_W) 'fadvise.c'; else $(CYGPATH_W) '$(srcdir)/fadvise.c'; fi` -strace-dirent.o: dirent.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-dirent.o -MD -MP -MF $(DEPDIR)/strace-dirent.Tpo -c -o strace-dirent.o `test -f 'dirent.c' || echo '$(srcdir)/'`dirent.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-dirent.Tpo $(DEPDIR)/strace-dirent.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dirent.c' object='strace-dirent.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fallocate.o: fallocate.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fallocate.o -MD -MP -MF $(DEPDIR)/libstrace_a-fallocate.Tpo -c -o libstrace_a-fallocate.o `test -f 'fallocate.c' || echo '$(srcdir)/'`fallocate.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fallocate.Tpo $(DEPDIR)/libstrace_a-fallocate.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fallocate.c' object='libstrace_a-fallocate.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-dirent.o `test -f 'dirent.c' || echo '$(srcdir)/'`dirent.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fallocate.o `test -f 'fallocate.c' || echo '$(srcdir)/'`fallocate.c -strace-dirent.obj: dirent.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-dirent.obj -MD -MP -MF $(DEPDIR)/strace-dirent.Tpo -c -o strace-dirent.obj `if test -f 'dirent.c'; then $(CYGPATH_W) 'dirent.c'; else $(CYGPATH_W) '$(srcdir)/dirent.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-dirent.Tpo $(DEPDIR)/strace-dirent.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dirent.c' object='strace-dirent.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fallocate.obj: fallocate.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fallocate.obj -MD -MP -MF $(DEPDIR)/libstrace_a-fallocate.Tpo -c -o libstrace_a-fallocate.obj `if test -f 'fallocate.c'; then $(CYGPATH_W) 'fallocate.c'; else $(CYGPATH_W) '$(srcdir)/fallocate.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fallocate.Tpo $(DEPDIR)/libstrace_a-fallocate.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fallocate.c' object='libstrace_a-fallocate.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-dirent.obj `if test -f 'dirent.c'; then $(CYGPATH_W) 'dirent.c'; else $(CYGPATH_W) '$(srcdir)/dirent.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fallocate.obj `if test -f 'fallocate.c'; then $(CYGPATH_W) 'fallocate.c'; else $(CYGPATH_W) '$(srcdir)/fallocate.c'; fi` -strace-dirent64.o: dirent64.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-dirent64.o -MD -MP -MF $(DEPDIR)/strace-dirent64.Tpo -c -o strace-dirent64.o `test -f 'dirent64.c' || echo '$(srcdir)/'`dirent64.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-dirent64.Tpo $(DEPDIR)/strace-dirent64.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dirent64.c' object='strace-dirent64.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fanotify.o: fanotify.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fanotify.o -MD -MP -MF $(DEPDIR)/libstrace_a-fanotify.Tpo -c -o libstrace_a-fanotify.o `test -f 'fanotify.c' || echo '$(srcdir)/'`fanotify.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fanotify.Tpo $(DEPDIR)/libstrace_a-fanotify.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fanotify.c' object='libstrace_a-fanotify.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-dirent64.o `test -f 'dirent64.c' || echo '$(srcdir)/'`dirent64.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fanotify.o `test -f 'fanotify.c' || echo '$(srcdir)/'`fanotify.c -strace-dirent64.obj: dirent64.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-dirent64.obj -MD -MP -MF $(DEPDIR)/strace-dirent64.Tpo -c -o strace-dirent64.obj `if test -f 'dirent64.c'; then $(CYGPATH_W) 'dirent64.c'; else $(CYGPATH_W) '$(srcdir)/dirent64.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-dirent64.Tpo $(DEPDIR)/strace-dirent64.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dirent64.c' object='strace-dirent64.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fanotify.obj: fanotify.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fanotify.obj -MD -MP -MF $(DEPDIR)/libstrace_a-fanotify.Tpo -c -o libstrace_a-fanotify.obj `if test -f 'fanotify.c'; then $(CYGPATH_W) 'fanotify.c'; else $(CYGPATH_W) '$(srcdir)/fanotify.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fanotify.Tpo $(DEPDIR)/libstrace_a-fanotify.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fanotify.c' object='libstrace_a-fanotify.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-dirent64.obj `if test -f 'dirent64.c'; then $(CYGPATH_W) 'dirent64.c'; else $(CYGPATH_W) '$(srcdir)/dirent64.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fanotify.obj `if test -f 'fanotify.c'; then $(CYGPATH_W) 'fanotify.c'; else $(CYGPATH_W) '$(srcdir)/fanotify.c'; fi` -strace-dm.o: dm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-dm.o -MD -MP -MF $(DEPDIR)/strace-dm.Tpo -c -o strace-dm.o `test -f 'dm.c' || echo '$(srcdir)/'`dm.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-dm.Tpo $(DEPDIR)/strace-dm.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dm.c' object='strace-dm.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fchownat.o: fchownat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fchownat.o -MD -MP -MF $(DEPDIR)/libstrace_a-fchownat.Tpo -c -o libstrace_a-fchownat.o `test -f 'fchownat.c' || echo '$(srcdir)/'`fchownat.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fchownat.Tpo $(DEPDIR)/libstrace_a-fchownat.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fchownat.c' object='libstrace_a-fchownat.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-dm.o `test -f 'dm.c' || echo '$(srcdir)/'`dm.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fchownat.o `test -f 'fchownat.c' || echo '$(srcdir)/'`fchownat.c -strace-dm.obj: dm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-dm.obj -MD -MP -MF $(DEPDIR)/strace-dm.Tpo -c -o strace-dm.obj `if test -f 'dm.c'; then $(CYGPATH_W) 'dm.c'; else $(CYGPATH_W) '$(srcdir)/dm.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-dm.Tpo $(DEPDIR)/strace-dm.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dm.c' object='strace-dm.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fchownat.obj: fchownat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fchownat.obj -MD -MP -MF $(DEPDIR)/libstrace_a-fchownat.Tpo -c -o libstrace_a-fchownat.obj `if test -f 'fchownat.c'; then $(CYGPATH_W) 'fchownat.c'; else $(CYGPATH_W) '$(srcdir)/fchownat.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fchownat.Tpo $(DEPDIR)/libstrace_a-fchownat.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fchownat.c' object='libstrace_a-fchownat.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-dm.obj `if test -f 'dm.c'; then $(CYGPATH_W) 'dm.c'; else $(CYGPATH_W) '$(srcdir)/dm.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fchownat.obj `if test -f 'fchownat.c'; then $(CYGPATH_W) 'fchownat.c'; else $(CYGPATH_W) '$(srcdir)/fchownat.c'; fi` -strace-dyxlat.o: dyxlat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-dyxlat.o -MD -MP -MF $(DEPDIR)/strace-dyxlat.Tpo -c -o strace-dyxlat.o `test -f 'dyxlat.c' || echo '$(srcdir)/'`dyxlat.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-dyxlat.Tpo $(DEPDIR)/strace-dyxlat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dyxlat.c' object='strace-dyxlat.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fcntl.o: fcntl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fcntl.o -MD -MP -MF $(DEPDIR)/libstrace_a-fcntl.Tpo -c -o libstrace_a-fcntl.o `test -f 'fcntl.c' || echo '$(srcdir)/'`fcntl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fcntl.Tpo $(DEPDIR)/libstrace_a-fcntl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fcntl.c' object='libstrace_a-fcntl.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-dyxlat.o `test -f 'dyxlat.c' || echo '$(srcdir)/'`dyxlat.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fcntl.o `test -f 'fcntl.c' || echo '$(srcdir)/'`fcntl.c -strace-dyxlat.obj: dyxlat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-dyxlat.obj -MD -MP -MF $(DEPDIR)/strace-dyxlat.Tpo -c -o strace-dyxlat.obj `if test -f 'dyxlat.c'; then $(CYGPATH_W) 'dyxlat.c'; else $(CYGPATH_W) '$(srcdir)/dyxlat.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-dyxlat.Tpo $(DEPDIR)/strace-dyxlat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dyxlat.c' object='strace-dyxlat.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fcntl.obj: fcntl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fcntl.obj -MD -MP -MF $(DEPDIR)/libstrace_a-fcntl.Tpo -c -o libstrace_a-fcntl.obj `if test -f 'fcntl.c'; then $(CYGPATH_W) 'fcntl.c'; else $(CYGPATH_W) '$(srcdir)/fcntl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fcntl.Tpo $(DEPDIR)/libstrace_a-fcntl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fcntl.c' object='libstrace_a-fcntl.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-dyxlat.obj `if test -f 'dyxlat.c'; then $(CYGPATH_W) 'dyxlat.c'; else $(CYGPATH_W) '$(srcdir)/dyxlat.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fcntl.obj `if test -f 'fcntl.c'; then $(CYGPATH_W) 'fcntl.c'; else $(CYGPATH_W) '$(srcdir)/fcntl.c'; fi` -strace-epoll.o: epoll.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-epoll.o -MD -MP -MF $(DEPDIR)/strace-epoll.Tpo -c -o strace-epoll.o `test -f 'epoll.c' || echo '$(srcdir)/'`epoll.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-epoll.Tpo $(DEPDIR)/strace-epoll.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epoll.c' object='strace-epoll.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fetch_bpf_fprog.o: fetch_bpf_fprog.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fetch_bpf_fprog.o -MD -MP -MF $(DEPDIR)/libstrace_a-fetch_bpf_fprog.Tpo -c -o libstrace_a-fetch_bpf_fprog.o `test -f 'fetch_bpf_fprog.c' || echo '$(srcdir)/'`fetch_bpf_fprog.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fetch_bpf_fprog.Tpo $(DEPDIR)/libstrace_a-fetch_bpf_fprog.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_bpf_fprog.c' object='libstrace_a-fetch_bpf_fprog.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-epoll.o `test -f 'epoll.c' || echo '$(srcdir)/'`epoll.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fetch_bpf_fprog.o `test -f 'fetch_bpf_fprog.c' || echo '$(srcdir)/'`fetch_bpf_fprog.c -strace-epoll.obj: epoll.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-epoll.obj -MD -MP -MF $(DEPDIR)/strace-epoll.Tpo -c -o strace-epoll.obj `if test -f 'epoll.c'; then $(CYGPATH_W) 'epoll.c'; else $(CYGPATH_W) '$(srcdir)/epoll.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-epoll.Tpo $(DEPDIR)/strace-epoll.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epoll.c' object='strace-epoll.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fetch_bpf_fprog.obj: fetch_bpf_fprog.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fetch_bpf_fprog.obj -MD -MP -MF $(DEPDIR)/libstrace_a-fetch_bpf_fprog.Tpo -c -o libstrace_a-fetch_bpf_fprog.obj `if test -f 'fetch_bpf_fprog.c'; then $(CYGPATH_W) 'fetch_bpf_fprog.c'; else $(CYGPATH_W) '$(srcdir)/fetch_bpf_fprog.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fetch_bpf_fprog.Tpo $(DEPDIR)/libstrace_a-fetch_bpf_fprog.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_bpf_fprog.c' object='libstrace_a-fetch_bpf_fprog.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-epoll.obj `if test -f 'epoll.c'; then $(CYGPATH_W) 'epoll.c'; else $(CYGPATH_W) '$(srcdir)/epoll.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fetch_bpf_fprog.obj `if test -f 'fetch_bpf_fprog.c'; then $(CYGPATH_W) 'fetch_bpf_fprog.c'; else $(CYGPATH_W) '$(srcdir)/fetch_bpf_fprog.c'; fi` -strace-error_prints.o: error_prints.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-error_prints.o -MD -MP -MF $(DEPDIR)/strace-error_prints.Tpo -c -o strace-error_prints.o `test -f 'error_prints.c' || echo '$(srcdir)/'`error_prints.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-error_prints.Tpo $(DEPDIR)/strace-error_prints.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='error_prints.c' object='strace-error_prints.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fetch_indirect_syscall_args.o: fetch_indirect_syscall_args.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fetch_indirect_syscall_args.o -MD -MP -MF $(DEPDIR)/libstrace_a-fetch_indirect_syscall_args.Tpo -c -o libstrace_a-fetch_indirect_syscall_args.o `test -f 'fetch_indirect_syscall_args.c' || echo '$(srcdir)/'`fetch_indirect_syscall_args.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fetch_indirect_syscall_args.Tpo $(DEPDIR)/libstrace_a-fetch_indirect_syscall_args.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_indirect_syscall_args.c' object='libstrace_a-fetch_indirect_syscall_args.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-error_prints.o `test -f 'error_prints.c' || echo '$(srcdir)/'`error_prints.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fetch_indirect_syscall_args.o `test -f 'fetch_indirect_syscall_args.c' || echo '$(srcdir)/'`fetch_indirect_syscall_args.c -strace-error_prints.obj: error_prints.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-error_prints.obj -MD -MP -MF $(DEPDIR)/strace-error_prints.Tpo -c -o strace-error_prints.obj `if test -f 'error_prints.c'; then $(CYGPATH_W) 'error_prints.c'; else $(CYGPATH_W) '$(srcdir)/error_prints.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-error_prints.Tpo $(DEPDIR)/strace-error_prints.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='error_prints.c' object='strace-error_prints.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fetch_indirect_syscall_args.obj: fetch_indirect_syscall_args.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fetch_indirect_syscall_args.obj -MD -MP -MF $(DEPDIR)/libstrace_a-fetch_indirect_syscall_args.Tpo -c -o libstrace_a-fetch_indirect_syscall_args.obj `if test -f 'fetch_indirect_syscall_args.c'; then $(CYGPATH_W) 'fetch_indirect_syscall_args.c'; else $(CYGPATH_W) '$(srcdir)/fetch_indirect_syscall_args.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fetch_indirect_syscall_args.Tpo $(DEPDIR)/libstrace_a-fetch_indirect_syscall_args.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_indirect_syscall_args.c' object='libstrace_a-fetch_indirect_syscall_args.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-error_prints.obj `if test -f 'error_prints.c'; then $(CYGPATH_W) 'error_prints.c'; else $(CYGPATH_W) '$(srcdir)/error_prints.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fetch_indirect_syscall_args.obj `if test -f 'fetch_indirect_syscall_args.c'; then $(CYGPATH_W) 'fetch_indirect_syscall_args.c'; else $(CYGPATH_W) '$(srcdir)/fetch_indirect_syscall_args.c'; fi` -strace-evdev.o: evdev.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-evdev.o -MD -MP -MF $(DEPDIR)/strace-evdev.Tpo -c -o strace-evdev.o `test -f 'evdev.c' || echo '$(srcdir)/'`evdev.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-evdev.Tpo $(DEPDIR)/strace-evdev.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evdev.c' object='strace-evdev.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fetch_struct_flock.o: fetch_struct_flock.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fetch_struct_flock.o -MD -MP -MF $(DEPDIR)/libstrace_a-fetch_struct_flock.Tpo -c -o libstrace_a-fetch_struct_flock.o `test -f 'fetch_struct_flock.c' || echo '$(srcdir)/'`fetch_struct_flock.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fetch_struct_flock.Tpo $(DEPDIR)/libstrace_a-fetch_struct_flock.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_flock.c' object='libstrace_a-fetch_struct_flock.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-evdev.o `test -f 'evdev.c' || echo '$(srcdir)/'`evdev.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fetch_struct_flock.o `test -f 'fetch_struct_flock.c' || echo '$(srcdir)/'`fetch_struct_flock.c -strace-evdev.obj: evdev.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-evdev.obj -MD -MP -MF $(DEPDIR)/strace-evdev.Tpo -c -o strace-evdev.obj `if test -f 'evdev.c'; then $(CYGPATH_W) 'evdev.c'; else $(CYGPATH_W) '$(srcdir)/evdev.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-evdev.Tpo $(DEPDIR)/strace-evdev.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evdev.c' object='strace-evdev.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fetch_struct_flock.obj: fetch_struct_flock.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fetch_struct_flock.obj -MD -MP -MF $(DEPDIR)/libstrace_a-fetch_struct_flock.Tpo -c -o libstrace_a-fetch_struct_flock.obj `if test -f 'fetch_struct_flock.c'; then $(CYGPATH_W) 'fetch_struct_flock.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_flock.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fetch_struct_flock.Tpo $(DEPDIR)/libstrace_a-fetch_struct_flock.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_flock.c' object='libstrace_a-fetch_struct_flock.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-evdev.obj `if test -f 'evdev.c'; then $(CYGPATH_W) 'evdev.c'; else $(CYGPATH_W) '$(srcdir)/evdev.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fetch_struct_flock.obj `if test -f 'fetch_struct_flock.c'; then $(CYGPATH_W) 'fetch_struct_flock.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_flock.c'; fi` -strace-evdev_mpers.o: evdev_mpers.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-evdev_mpers.o -MD -MP -MF $(DEPDIR)/strace-evdev_mpers.Tpo -c -o strace-evdev_mpers.o `test -f 'evdev_mpers.c' || echo '$(srcdir)/'`evdev_mpers.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-evdev_mpers.Tpo $(DEPDIR)/strace-evdev_mpers.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evdev_mpers.c' object='strace-evdev_mpers.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fetch_struct_keyctl_kdf_params.o: fetch_struct_keyctl_kdf_params.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fetch_struct_keyctl_kdf_params.o -MD -MP -MF $(DEPDIR)/libstrace_a-fetch_struct_keyctl_kdf_params.Tpo -c -o libstrace_a-fetch_struct_keyctl_kdf_params.o `test -f 'fetch_struct_keyctl_kdf_params.c' || echo '$(srcdir)/'`fetch_struct_keyctl_kdf_params.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fetch_struct_keyctl_kdf_params.Tpo $(DEPDIR)/libstrace_a-fetch_struct_keyctl_kdf_params.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_keyctl_kdf_params.c' object='libstrace_a-fetch_struct_keyctl_kdf_params.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-evdev_mpers.o `test -f 'evdev_mpers.c' || echo '$(srcdir)/'`evdev_mpers.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fetch_struct_keyctl_kdf_params.o `test -f 'fetch_struct_keyctl_kdf_params.c' || echo '$(srcdir)/'`fetch_struct_keyctl_kdf_params.c -strace-evdev_mpers.obj: evdev_mpers.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-evdev_mpers.obj -MD -MP -MF $(DEPDIR)/strace-evdev_mpers.Tpo -c -o strace-evdev_mpers.obj `if test -f 'evdev_mpers.c'; then $(CYGPATH_W) 'evdev_mpers.c'; else $(CYGPATH_W) '$(srcdir)/evdev_mpers.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-evdev_mpers.Tpo $(DEPDIR)/strace-evdev_mpers.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evdev_mpers.c' object='strace-evdev_mpers.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fetch_struct_keyctl_kdf_params.obj: fetch_struct_keyctl_kdf_params.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fetch_struct_keyctl_kdf_params.obj -MD -MP -MF $(DEPDIR)/libstrace_a-fetch_struct_keyctl_kdf_params.Tpo -c -o libstrace_a-fetch_struct_keyctl_kdf_params.obj `if test -f 'fetch_struct_keyctl_kdf_params.c'; then $(CYGPATH_W) 'fetch_struct_keyctl_kdf_params.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_keyctl_kdf_params.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fetch_struct_keyctl_kdf_params.Tpo $(DEPDIR)/libstrace_a-fetch_struct_keyctl_kdf_params.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_keyctl_kdf_params.c' object='libstrace_a-fetch_struct_keyctl_kdf_params.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-evdev_mpers.obj `if test -f 'evdev_mpers.c'; then $(CYGPATH_W) 'evdev_mpers.c'; else $(CYGPATH_W) '$(srcdir)/evdev_mpers.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fetch_struct_keyctl_kdf_params.obj `if test -f 'fetch_struct_keyctl_kdf_params.c'; then $(CYGPATH_W) 'fetch_struct_keyctl_kdf_params.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_keyctl_kdf_params.c'; fi` -strace-eventfd.o: eventfd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-eventfd.o -MD -MP -MF $(DEPDIR)/strace-eventfd.Tpo -c -o strace-eventfd.o `test -f 'eventfd.c' || echo '$(srcdir)/'`eventfd.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-eventfd.Tpo $(DEPDIR)/strace-eventfd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='eventfd.c' object='strace-eventfd.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fetch_struct_mmsghdr.o: fetch_struct_mmsghdr.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fetch_struct_mmsghdr.o -MD -MP -MF $(DEPDIR)/libstrace_a-fetch_struct_mmsghdr.Tpo -c -o libstrace_a-fetch_struct_mmsghdr.o `test -f 'fetch_struct_mmsghdr.c' || echo '$(srcdir)/'`fetch_struct_mmsghdr.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fetch_struct_mmsghdr.Tpo $(DEPDIR)/libstrace_a-fetch_struct_mmsghdr.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_mmsghdr.c' object='libstrace_a-fetch_struct_mmsghdr.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-eventfd.o `test -f 'eventfd.c' || echo '$(srcdir)/'`eventfd.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fetch_struct_mmsghdr.o `test -f 'fetch_struct_mmsghdr.c' || echo '$(srcdir)/'`fetch_struct_mmsghdr.c -strace-eventfd.obj: eventfd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-eventfd.obj -MD -MP -MF $(DEPDIR)/strace-eventfd.Tpo -c -o strace-eventfd.obj `if test -f 'eventfd.c'; then $(CYGPATH_W) 'eventfd.c'; else $(CYGPATH_W) '$(srcdir)/eventfd.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-eventfd.Tpo $(DEPDIR)/strace-eventfd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='eventfd.c' object='strace-eventfd.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fetch_struct_mmsghdr.obj: fetch_struct_mmsghdr.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fetch_struct_mmsghdr.obj -MD -MP -MF $(DEPDIR)/libstrace_a-fetch_struct_mmsghdr.Tpo -c -o libstrace_a-fetch_struct_mmsghdr.obj `if test -f 'fetch_struct_mmsghdr.c'; then $(CYGPATH_W) 'fetch_struct_mmsghdr.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_mmsghdr.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fetch_struct_mmsghdr.Tpo $(DEPDIR)/libstrace_a-fetch_struct_mmsghdr.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_mmsghdr.c' object='libstrace_a-fetch_struct_mmsghdr.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-eventfd.obj `if test -f 'eventfd.c'; then $(CYGPATH_W) 'eventfd.c'; else $(CYGPATH_W) '$(srcdir)/eventfd.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fetch_struct_mmsghdr.obj `if test -f 'fetch_struct_mmsghdr.c'; then $(CYGPATH_W) 'fetch_struct_mmsghdr.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_mmsghdr.c'; fi` -strace-execve.o: execve.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-execve.o -MD -MP -MF $(DEPDIR)/strace-execve.Tpo -c -o strace-execve.o `test -f 'execve.c' || echo '$(srcdir)/'`execve.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-execve.Tpo $(DEPDIR)/strace-execve.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='execve.c' object='strace-execve.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fetch_struct_msghdr.o: fetch_struct_msghdr.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fetch_struct_msghdr.o -MD -MP -MF $(DEPDIR)/libstrace_a-fetch_struct_msghdr.Tpo -c -o libstrace_a-fetch_struct_msghdr.o `test -f 'fetch_struct_msghdr.c' || echo '$(srcdir)/'`fetch_struct_msghdr.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fetch_struct_msghdr.Tpo $(DEPDIR)/libstrace_a-fetch_struct_msghdr.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_msghdr.c' object='libstrace_a-fetch_struct_msghdr.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-execve.o `test -f 'execve.c' || echo '$(srcdir)/'`execve.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fetch_struct_msghdr.o `test -f 'fetch_struct_msghdr.c' || echo '$(srcdir)/'`fetch_struct_msghdr.c -strace-execve.obj: execve.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-execve.obj -MD -MP -MF $(DEPDIR)/strace-execve.Tpo -c -o strace-execve.obj `if test -f 'execve.c'; then $(CYGPATH_W) 'execve.c'; else $(CYGPATH_W) '$(srcdir)/execve.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-execve.Tpo $(DEPDIR)/strace-execve.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='execve.c' object='strace-execve.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fetch_struct_msghdr.obj: fetch_struct_msghdr.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fetch_struct_msghdr.obj -MD -MP -MF $(DEPDIR)/libstrace_a-fetch_struct_msghdr.Tpo -c -o libstrace_a-fetch_struct_msghdr.obj `if test -f 'fetch_struct_msghdr.c'; then $(CYGPATH_W) 'fetch_struct_msghdr.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_msghdr.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fetch_struct_msghdr.Tpo $(DEPDIR)/libstrace_a-fetch_struct_msghdr.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_msghdr.c' object='libstrace_a-fetch_struct_msghdr.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-execve.obj `if test -f 'execve.c'; then $(CYGPATH_W) 'execve.c'; else $(CYGPATH_W) '$(srcdir)/execve.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fetch_struct_msghdr.obj `if test -f 'fetch_struct_msghdr.c'; then $(CYGPATH_W) 'fetch_struct_msghdr.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_msghdr.c'; fi` -strace-fadvise.o: fadvise.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fadvise.o -MD -MP -MF $(DEPDIR)/strace-fadvise.Tpo -c -o strace-fadvise.o `test -f 'fadvise.c' || echo '$(srcdir)/'`fadvise.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fadvise.Tpo $(DEPDIR)/strace-fadvise.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fadvise.c' object='strace-fadvise.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fetch_struct_stat.o: fetch_struct_stat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fetch_struct_stat.o -MD -MP -MF $(DEPDIR)/libstrace_a-fetch_struct_stat.Tpo -c -o libstrace_a-fetch_struct_stat.o `test -f 'fetch_struct_stat.c' || echo '$(srcdir)/'`fetch_struct_stat.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fetch_struct_stat.Tpo $(DEPDIR)/libstrace_a-fetch_struct_stat.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_stat.c' object='libstrace_a-fetch_struct_stat.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fadvise.o `test -f 'fadvise.c' || echo '$(srcdir)/'`fadvise.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fetch_struct_stat.o `test -f 'fetch_struct_stat.c' || echo '$(srcdir)/'`fetch_struct_stat.c -strace-fadvise.obj: fadvise.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fadvise.obj -MD -MP -MF $(DEPDIR)/strace-fadvise.Tpo -c -o strace-fadvise.obj `if test -f 'fadvise.c'; then $(CYGPATH_W) 'fadvise.c'; else $(CYGPATH_W) '$(srcdir)/fadvise.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fadvise.Tpo $(DEPDIR)/strace-fadvise.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fadvise.c' object='strace-fadvise.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fetch_struct_stat.obj: fetch_struct_stat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fetch_struct_stat.obj -MD -MP -MF $(DEPDIR)/libstrace_a-fetch_struct_stat.Tpo -c -o libstrace_a-fetch_struct_stat.obj `if test -f 'fetch_struct_stat.c'; then $(CYGPATH_W) 'fetch_struct_stat.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_stat.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fetch_struct_stat.Tpo $(DEPDIR)/libstrace_a-fetch_struct_stat.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_stat.c' object='libstrace_a-fetch_struct_stat.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fadvise.obj `if test -f 'fadvise.c'; then $(CYGPATH_W) 'fadvise.c'; else $(CYGPATH_W) '$(srcdir)/fadvise.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fetch_struct_stat.obj `if test -f 'fetch_struct_stat.c'; then $(CYGPATH_W) 'fetch_struct_stat.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_stat.c'; fi` -strace-fallocate.o: fallocate.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fallocate.o -MD -MP -MF $(DEPDIR)/strace-fallocate.Tpo -c -o strace-fallocate.o `test -f 'fallocate.c' || echo '$(srcdir)/'`fallocate.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fallocate.Tpo $(DEPDIR)/strace-fallocate.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fallocate.c' object='strace-fallocate.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fetch_struct_stat64.o: fetch_struct_stat64.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fetch_struct_stat64.o -MD -MP -MF $(DEPDIR)/libstrace_a-fetch_struct_stat64.Tpo -c -o libstrace_a-fetch_struct_stat64.o `test -f 'fetch_struct_stat64.c' || echo '$(srcdir)/'`fetch_struct_stat64.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fetch_struct_stat64.Tpo $(DEPDIR)/libstrace_a-fetch_struct_stat64.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_stat64.c' object='libstrace_a-fetch_struct_stat64.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fallocate.o `test -f 'fallocate.c' || echo '$(srcdir)/'`fallocate.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fetch_struct_stat64.o `test -f 'fetch_struct_stat64.c' || echo '$(srcdir)/'`fetch_struct_stat64.c -strace-fallocate.obj: fallocate.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fallocate.obj -MD -MP -MF $(DEPDIR)/strace-fallocate.Tpo -c -o strace-fallocate.obj `if test -f 'fallocate.c'; then $(CYGPATH_W) 'fallocate.c'; else $(CYGPATH_W) '$(srcdir)/fallocate.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fallocate.Tpo $(DEPDIR)/strace-fallocate.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fallocate.c' object='strace-fallocate.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fetch_struct_stat64.obj: fetch_struct_stat64.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fetch_struct_stat64.obj -MD -MP -MF $(DEPDIR)/libstrace_a-fetch_struct_stat64.Tpo -c -o libstrace_a-fetch_struct_stat64.obj `if test -f 'fetch_struct_stat64.c'; then $(CYGPATH_W) 'fetch_struct_stat64.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_stat64.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fetch_struct_stat64.Tpo $(DEPDIR)/libstrace_a-fetch_struct_stat64.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_stat64.c' object='libstrace_a-fetch_struct_stat64.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fallocate.obj `if test -f 'fallocate.c'; then $(CYGPATH_W) 'fallocate.c'; else $(CYGPATH_W) '$(srcdir)/fallocate.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fetch_struct_stat64.obj `if test -f 'fetch_struct_stat64.c'; then $(CYGPATH_W) 'fetch_struct_stat64.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_stat64.c'; fi` -strace-fanotify.o: fanotify.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fanotify.o -MD -MP -MF $(DEPDIR)/strace-fanotify.Tpo -c -o strace-fanotify.o `test -f 'fanotify.c' || echo '$(srcdir)/'`fanotify.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fanotify.Tpo $(DEPDIR)/strace-fanotify.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fanotify.c' object='strace-fanotify.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fetch_struct_statfs.o: fetch_struct_statfs.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fetch_struct_statfs.o -MD -MP -MF $(DEPDIR)/libstrace_a-fetch_struct_statfs.Tpo -c -o libstrace_a-fetch_struct_statfs.o `test -f 'fetch_struct_statfs.c' || echo '$(srcdir)/'`fetch_struct_statfs.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fetch_struct_statfs.Tpo $(DEPDIR)/libstrace_a-fetch_struct_statfs.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_statfs.c' object='libstrace_a-fetch_struct_statfs.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fanotify.o `test -f 'fanotify.c' || echo '$(srcdir)/'`fanotify.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fetch_struct_statfs.o `test -f 'fetch_struct_statfs.c' || echo '$(srcdir)/'`fetch_struct_statfs.c -strace-fanotify.obj: fanotify.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fanotify.obj -MD -MP -MF $(DEPDIR)/strace-fanotify.Tpo -c -o strace-fanotify.obj `if test -f 'fanotify.c'; then $(CYGPATH_W) 'fanotify.c'; else $(CYGPATH_W) '$(srcdir)/fanotify.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fanotify.Tpo $(DEPDIR)/strace-fanotify.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fanotify.c' object='strace-fanotify.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fetch_struct_statfs.obj: fetch_struct_statfs.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fetch_struct_statfs.obj -MD -MP -MF $(DEPDIR)/libstrace_a-fetch_struct_statfs.Tpo -c -o libstrace_a-fetch_struct_statfs.obj `if test -f 'fetch_struct_statfs.c'; then $(CYGPATH_W) 'fetch_struct_statfs.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_statfs.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fetch_struct_statfs.Tpo $(DEPDIR)/libstrace_a-fetch_struct_statfs.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_statfs.c' object='libstrace_a-fetch_struct_statfs.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fanotify.obj `if test -f 'fanotify.c'; then $(CYGPATH_W) 'fanotify.c'; else $(CYGPATH_W) '$(srcdir)/fanotify.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fetch_struct_statfs.obj `if test -f 'fetch_struct_statfs.c'; then $(CYGPATH_W) 'fetch_struct_statfs.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_statfs.c'; fi` -strace-fchownat.o: fchownat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fchownat.o -MD -MP -MF $(DEPDIR)/strace-fchownat.Tpo -c -o strace-fchownat.o `test -f 'fchownat.c' || echo '$(srcdir)/'`fchownat.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fchownat.Tpo $(DEPDIR)/strace-fchownat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fchownat.c' object='strace-fchownat.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fetch_struct_xfs_quotastat.o: fetch_struct_xfs_quotastat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fetch_struct_xfs_quotastat.o -MD -MP -MF $(DEPDIR)/libstrace_a-fetch_struct_xfs_quotastat.Tpo -c -o libstrace_a-fetch_struct_xfs_quotastat.o `test -f 'fetch_struct_xfs_quotastat.c' || echo '$(srcdir)/'`fetch_struct_xfs_quotastat.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fetch_struct_xfs_quotastat.Tpo $(DEPDIR)/libstrace_a-fetch_struct_xfs_quotastat.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_xfs_quotastat.c' object='libstrace_a-fetch_struct_xfs_quotastat.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fchownat.o `test -f 'fchownat.c' || echo '$(srcdir)/'`fchownat.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fetch_struct_xfs_quotastat.o `test -f 'fetch_struct_xfs_quotastat.c' || echo '$(srcdir)/'`fetch_struct_xfs_quotastat.c -strace-fchownat.obj: fchownat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fchownat.obj -MD -MP -MF $(DEPDIR)/strace-fchownat.Tpo -c -o strace-fchownat.obj `if test -f 'fchownat.c'; then $(CYGPATH_W) 'fchownat.c'; else $(CYGPATH_W) '$(srcdir)/fchownat.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fchownat.Tpo $(DEPDIR)/strace-fchownat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fchownat.c' object='strace-fchownat.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fetch_struct_xfs_quotastat.obj: fetch_struct_xfs_quotastat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fetch_struct_xfs_quotastat.obj -MD -MP -MF $(DEPDIR)/libstrace_a-fetch_struct_xfs_quotastat.Tpo -c -o libstrace_a-fetch_struct_xfs_quotastat.obj `if test -f 'fetch_struct_xfs_quotastat.c'; then $(CYGPATH_W) 'fetch_struct_xfs_quotastat.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_xfs_quotastat.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fetch_struct_xfs_quotastat.Tpo $(DEPDIR)/libstrace_a-fetch_struct_xfs_quotastat.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_xfs_quotastat.c' object='libstrace_a-fetch_struct_xfs_quotastat.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fchownat.obj `if test -f 'fchownat.c'; then $(CYGPATH_W) 'fchownat.c'; else $(CYGPATH_W) '$(srcdir)/fchownat.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fetch_struct_xfs_quotastat.obj `if test -f 'fetch_struct_xfs_quotastat.c'; then $(CYGPATH_W) 'fetch_struct_xfs_quotastat.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_xfs_quotastat.c'; fi` -strace-fcntl.o: fcntl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fcntl.o -MD -MP -MF $(DEPDIR)/strace-fcntl.Tpo -c -o strace-fcntl.o `test -f 'fcntl.c' || echo '$(srcdir)/'`fcntl.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fcntl.Tpo $(DEPDIR)/strace-fcntl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fcntl.c' object='strace-fcntl.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-file_handle.o: file_handle.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-file_handle.o -MD -MP -MF $(DEPDIR)/libstrace_a-file_handle.Tpo -c -o libstrace_a-file_handle.o `test -f 'file_handle.c' || echo '$(srcdir)/'`file_handle.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-file_handle.Tpo $(DEPDIR)/libstrace_a-file_handle.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='file_handle.c' object='libstrace_a-file_handle.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fcntl.o `test -f 'fcntl.c' || echo '$(srcdir)/'`fcntl.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-file_handle.o `test -f 'file_handle.c' || echo '$(srcdir)/'`file_handle.c -strace-fcntl.obj: fcntl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fcntl.obj -MD -MP -MF $(DEPDIR)/strace-fcntl.Tpo -c -o strace-fcntl.obj `if test -f 'fcntl.c'; then $(CYGPATH_W) 'fcntl.c'; else $(CYGPATH_W) '$(srcdir)/fcntl.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fcntl.Tpo $(DEPDIR)/strace-fcntl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fcntl.c' object='strace-fcntl.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-file_handle.obj: file_handle.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-file_handle.obj -MD -MP -MF $(DEPDIR)/libstrace_a-file_handle.Tpo -c -o libstrace_a-file_handle.obj `if test -f 'file_handle.c'; then $(CYGPATH_W) 'file_handle.c'; else $(CYGPATH_W) '$(srcdir)/file_handle.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-file_handle.Tpo $(DEPDIR)/libstrace_a-file_handle.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='file_handle.c' object='libstrace_a-file_handle.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fcntl.obj `if test -f 'fcntl.c'; then $(CYGPATH_W) 'fcntl.c'; else $(CYGPATH_W) '$(srcdir)/fcntl.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-file_handle.obj `if test -f 'file_handle.c'; then $(CYGPATH_W) 'file_handle.c'; else $(CYGPATH_W) '$(srcdir)/file_handle.c'; fi` -strace-fetch_bpf_fprog.o: fetch_bpf_fprog.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fetch_bpf_fprog.o -MD -MP -MF $(DEPDIR)/strace-fetch_bpf_fprog.Tpo -c -o strace-fetch_bpf_fprog.o `test -f 'fetch_bpf_fprog.c' || echo '$(srcdir)/'`fetch_bpf_fprog.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fetch_bpf_fprog.Tpo $(DEPDIR)/strace-fetch_bpf_fprog.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_bpf_fprog.c' object='strace-fetch_bpf_fprog.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-file_ioctl.o: file_ioctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-file_ioctl.o -MD -MP -MF $(DEPDIR)/libstrace_a-file_ioctl.Tpo -c -o libstrace_a-file_ioctl.o `test -f 'file_ioctl.c' || echo '$(srcdir)/'`file_ioctl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-file_ioctl.Tpo $(DEPDIR)/libstrace_a-file_ioctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='file_ioctl.c' object='libstrace_a-file_ioctl.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fetch_bpf_fprog.o `test -f 'fetch_bpf_fprog.c' || echo '$(srcdir)/'`fetch_bpf_fprog.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-file_ioctl.o `test -f 'file_ioctl.c' || echo '$(srcdir)/'`file_ioctl.c -strace-fetch_bpf_fprog.obj: fetch_bpf_fprog.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fetch_bpf_fprog.obj -MD -MP -MF $(DEPDIR)/strace-fetch_bpf_fprog.Tpo -c -o strace-fetch_bpf_fprog.obj `if test -f 'fetch_bpf_fprog.c'; then $(CYGPATH_W) 'fetch_bpf_fprog.c'; else $(CYGPATH_W) '$(srcdir)/fetch_bpf_fprog.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fetch_bpf_fprog.Tpo $(DEPDIR)/strace-fetch_bpf_fprog.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_bpf_fprog.c' object='strace-fetch_bpf_fprog.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-file_ioctl.obj: file_ioctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-file_ioctl.obj -MD -MP -MF $(DEPDIR)/libstrace_a-file_ioctl.Tpo -c -o libstrace_a-file_ioctl.obj `if test -f 'file_ioctl.c'; then $(CYGPATH_W) 'file_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/file_ioctl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-file_ioctl.Tpo $(DEPDIR)/libstrace_a-file_ioctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='file_ioctl.c' object='libstrace_a-file_ioctl.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fetch_bpf_fprog.obj `if test -f 'fetch_bpf_fprog.c'; then $(CYGPATH_W) 'fetch_bpf_fprog.c'; else $(CYGPATH_W) '$(srcdir)/fetch_bpf_fprog.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-file_ioctl.obj `if test -f 'file_ioctl.c'; then $(CYGPATH_W) 'file_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/file_ioctl.c'; fi` -strace-fetch_struct_flock.o: fetch_struct_flock.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fetch_struct_flock.o -MD -MP -MF $(DEPDIR)/strace-fetch_struct_flock.Tpo -c -o strace-fetch_struct_flock.o `test -f 'fetch_struct_flock.c' || echo '$(srcdir)/'`fetch_struct_flock.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fetch_struct_flock.Tpo $(DEPDIR)/strace-fetch_struct_flock.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_flock.c' object='strace-fetch_struct_flock.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-filter_qualify.o: filter_qualify.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-filter_qualify.o -MD -MP -MF $(DEPDIR)/libstrace_a-filter_qualify.Tpo -c -o libstrace_a-filter_qualify.o `test -f 'filter_qualify.c' || echo '$(srcdir)/'`filter_qualify.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-filter_qualify.Tpo $(DEPDIR)/libstrace_a-filter_qualify.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='filter_qualify.c' object='libstrace_a-filter_qualify.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fetch_struct_flock.o `test -f 'fetch_struct_flock.c' || echo '$(srcdir)/'`fetch_struct_flock.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-filter_qualify.o `test -f 'filter_qualify.c' || echo '$(srcdir)/'`filter_qualify.c -strace-fetch_struct_flock.obj: fetch_struct_flock.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fetch_struct_flock.obj -MD -MP -MF $(DEPDIR)/strace-fetch_struct_flock.Tpo -c -o strace-fetch_struct_flock.obj `if test -f 'fetch_struct_flock.c'; then $(CYGPATH_W) 'fetch_struct_flock.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_flock.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fetch_struct_flock.Tpo $(DEPDIR)/strace-fetch_struct_flock.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_flock.c' object='strace-fetch_struct_flock.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-filter_qualify.obj: filter_qualify.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-filter_qualify.obj -MD -MP -MF $(DEPDIR)/libstrace_a-filter_qualify.Tpo -c -o libstrace_a-filter_qualify.obj `if test -f 'filter_qualify.c'; then $(CYGPATH_W) 'filter_qualify.c'; else $(CYGPATH_W) '$(srcdir)/filter_qualify.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-filter_qualify.Tpo $(DEPDIR)/libstrace_a-filter_qualify.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='filter_qualify.c' object='libstrace_a-filter_qualify.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fetch_struct_flock.obj `if test -f 'fetch_struct_flock.c'; then $(CYGPATH_W) 'fetch_struct_flock.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_flock.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-filter_qualify.obj `if test -f 'filter_qualify.c'; then $(CYGPATH_W) 'filter_qualify.c'; else $(CYGPATH_W) '$(srcdir)/filter_qualify.c'; fi` -strace-fetch_struct_keyctl_kdf_params.o: fetch_struct_keyctl_kdf_params.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fetch_struct_keyctl_kdf_params.o -MD -MP -MF $(DEPDIR)/strace-fetch_struct_keyctl_kdf_params.Tpo -c -o strace-fetch_struct_keyctl_kdf_params.o `test -f 'fetch_struct_keyctl_kdf_params.c' || echo '$(srcdir)/'`fetch_struct_keyctl_kdf_params.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fetch_struct_keyctl_kdf_params.Tpo $(DEPDIR)/strace-fetch_struct_keyctl_kdf_params.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_keyctl_kdf_params.c' object='strace-fetch_struct_keyctl_kdf_params.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-filter_seccomp.o: filter_seccomp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-filter_seccomp.o -MD -MP -MF $(DEPDIR)/libstrace_a-filter_seccomp.Tpo -c -o libstrace_a-filter_seccomp.o `test -f 'filter_seccomp.c' || echo '$(srcdir)/'`filter_seccomp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-filter_seccomp.Tpo $(DEPDIR)/libstrace_a-filter_seccomp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='filter_seccomp.c' object='libstrace_a-filter_seccomp.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fetch_struct_keyctl_kdf_params.o `test -f 'fetch_struct_keyctl_kdf_params.c' || echo '$(srcdir)/'`fetch_struct_keyctl_kdf_params.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-filter_seccomp.o `test -f 'filter_seccomp.c' || echo '$(srcdir)/'`filter_seccomp.c -strace-fetch_struct_keyctl_kdf_params.obj: fetch_struct_keyctl_kdf_params.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fetch_struct_keyctl_kdf_params.obj -MD -MP -MF $(DEPDIR)/strace-fetch_struct_keyctl_kdf_params.Tpo -c -o strace-fetch_struct_keyctl_kdf_params.obj `if test -f 'fetch_struct_keyctl_kdf_params.c'; then $(CYGPATH_W) 'fetch_struct_keyctl_kdf_params.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_keyctl_kdf_params.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fetch_struct_keyctl_kdf_params.Tpo $(DEPDIR)/strace-fetch_struct_keyctl_kdf_params.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_keyctl_kdf_params.c' object='strace-fetch_struct_keyctl_kdf_params.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-filter_seccomp.obj: filter_seccomp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-filter_seccomp.obj -MD -MP -MF $(DEPDIR)/libstrace_a-filter_seccomp.Tpo -c -o libstrace_a-filter_seccomp.obj `if test -f 'filter_seccomp.c'; then $(CYGPATH_W) 'filter_seccomp.c'; else $(CYGPATH_W) '$(srcdir)/filter_seccomp.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-filter_seccomp.Tpo $(DEPDIR)/libstrace_a-filter_seccomp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='filter_seccomp.c' object='libstrace_a-filter_seccomp.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fetch_struct_keyctl_kdf_params.obj `if test -f 'fetch_struct_keyctl_kdf_params.c'; then $(CYGPATH_W) 'fetch_struct_keyctl_kdf_params.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_keyctl_kdf_params.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-filter_seccomp.obj `if test -f 'filter_seccomp.c'; then $(CYGPATH_W) 'filter_seccomp.c'; else $(CYGPATH_W) '$(srcdir)/filter_seccomp.c'; fi` -strace-fetch_struct_mmsghdr.o: fetch_struct_mmsghdr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fetch_struct_mmsghdr.o -MD -MP -MF $(DEPDIR)/strace-fetch_struct_mmsghdr.Tpo -c -o strace-fetch_struct_mmsghdr.o `test -f 'fetch_struct_mmsghdr.c' || echo '$(srcdir)/'`fetch_struct_mmsghdr.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fetch_struct_mmsghdr.Tpo $(DEPDIR)/strace-fetch_struct_mmsghdr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_mmsghdr.c' object='strace-fetch_struct_mmsghdr.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-flock.o: flock.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-flock.o -MD -MP -MF $(DEPDIR)/libstrace_a-flock.Tpo -c -o libstrace_a-flock.o `test -f 'flock.c' || echo '$(srcdir)/'`flock.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-flock.Tpo $(DEPDIR)/libstrace_a-flock.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='flock.c' object='libstrace_a-flock.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fetch_struct_mmsghdr.o `test -f 'fetch_struct_mmsghdr.c' || echo '$(srcdir)/'`fetch_struct_mmsghdr.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-flock.o `test -f 'flock.c' || echo '$(srcdir)/'`flock.c -strace-fetch_struct_mmsghdr.obj: fetch_struct_mmsghdr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fetch_struct_mmsghdr.obj -MD -MP -MF $(DEPDIR)/strace-fetch_struct_mmsghdr.Tpo -c -o strace-fetch_struct_mmsghdr.obj `if test -f 'fetch_struct_mmsghdr.c'; then $(CYGPATH_W) 'fetch_struct_mmsghdr.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_mmsghdr.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fetch_struct_mmsghdr.Tpo $(DEPDIR)/strace-fetch_struct_mmsghdr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_mmsghdr.c' object='strace-fetch_struct_mmsghdr.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-flock.obj: flock.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-flock.obj -MD -MP -MF $(DEPDIR)/libstrace_a-flock.Tpo -c -o libstrace_a-flock.obj `if test -f 'flock.c'; then $(CYGPATH_W) 'flock.c'; else $(CYGPATH_W) '$(srcdir)/flock.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-flock.Tpo $(DEPDIR)/libstrace_a-flock.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='flock.c' object='libstrace_a-flock.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fetch_struct_mmsghdr.obj `if test -f 'fetch_struct_mmsghdr.c'; then $(CYGPATH_W) 'fetch_struct_mmsghdr.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_mmsghdr.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-flock.obj `if test -f 'flock.c'; then $(CYGPATH_W) 'flock.c'; else $(CYGPATH_W) '$(srcdir)/flock.c'; fi` -strace-fetch_struct_msghdr.o: fetch_struct_msghdr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fetch_struct_msghdr.o -MD -MP -MF $(DEPDIR)/strace-fetch_struct_msghdr.Tpo -c -o strace-fetch_struct_msghdr.o `test -f 'fetch_struct_msghdr.c' || echo '$(srcdir)/'`fetch_struct_msghdr.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fetch_struct_msghdr.Tpo $(DEPDIR)/strace-fetch_struct_msghdr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_msghdr.c' object='strace-fetch_struct_msghdr.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fs_x_ioctl.o: fs_x_ioctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fs_x_ioctl.o -MD -MP -MF $(DEPDIR)/libstrace_a-fs_x_ioctl.Tpo -c -o libstrace_a-fs_x_ioctl.o `test -f 'fs_x_ioctl.c' || echo '$(srcdir)/'`fs_x_ioctl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fs_x_ioctl.Tpo $(DEPDIR)/libstrace_a-fs_x_ioctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fs_x_ioctl.c' object='libstrace_a-fs_x_ioctl.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fetch_struct_msghdr.o `test -f 'fetch_struct_msghdr.c' || echo '$(srcdir)/'`fetch_struct_msghdr.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fs_x_ioctl.o `test -f 'fs_x_ioctl.c' || echo '$(srcdir)/'`fs_x_ioctl.c -strace-fetch_struct_msghdr.obj: fetch_struct_msghdr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fetch_struct_msghdr.obj -MD -MP -MF $(DEPDIR)/strace-fetch_struct_msghdr.Tpo -c -o strace-fetch_struct_msghdr.obj `if test -f 'fetch_struct_msghdr.c'; then $(CYGPATH_W) 'fetch_struct_msghdr.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_msghdr.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fetch_struct_msghdr.Tpo $(DEPDIR)/strace-fetch_struct_msghdr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_msghdr.c' object='strace-fetch_struct_msghdr.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fs_x_ioctl.obj: fs_x_ioctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fs_x_ioctl.obj -MD -MP -MF $(DEPDIR)/libstrace_a-fs_x_ioctl.Tpo -c -o libstrace_a-fs_x_ioctl.obj `if test -f 'fs_x_ioctl.c'; then $(CYGPATH_W) 'fs_x_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/fs_x_ioctl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fs_x_ioctl.Tpo $(DEPDIR)/libstrace_a-fs_x_ioctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fs_x_ioctl.c' object='libstrace_a-fs_x_ioctl.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fetch_struct_msghdr.obj `if test -f 'fetch_struct_msghdr.c'; then $(CYGPATH_W) 'fetch_struct_msghdr.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_msghdr.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fs_x_ioctl.obj `if test -f 'fs_x_ioctl.c'; then $(CYGPATH_W) 'fs_x_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/fs_x_ioctl.c'; fi` -strace-fetch_struct_stat.o: fetch_struct_stat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fetch_struct_stat.o -MD -MP -MF $(DEPDIR)/strace-fetch_struct_stat.Tpo -c -o strace-fetch_struct_stat.o `test -f 'fetch_struct_stat.c' || echo '$(srcdir)/'`fetch_struct_stat.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fetch_struct_stat.Tpo $(DEPDIR)/strace-fetch_struct_stat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_stat.c' object='strace-fetch_struct_stat.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fsconfig.o: fsconfig.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fsconfig.o -MD -MP -MF $(DEPDIR)/libstrace_a-fsconfig.Tpo -c -o libstrace_a-fsconfig.o `test -f 'fsconfig.c' || echo '$(srcdir)/'`fsconfig.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fsconfig.Tpo $(DEPDIR)/libstrace_a-fsconfig.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fsconfig.c' object='libstrace_a-fsconfig.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fetch_struct_stat.o `test -f 'fetch_struct_stat.c' || echo '$(srcdir)/'`fetch_struct_stat.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fsconfig.o `test -f 'fsconfig.c' || echo '$(srcdir)/'`fsconfig.c -strace-fetch_struct_stat.obj: fetch_struct_stat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fetch_struct_stat.obj -MD -MP -MF $(DEPDIR)/strace-fetch_struct_stat.Tpo -c -o strace-fetch_struct_stat.obj `if test -f 'fetch_struct_stat.c'; then $(CYGPATH_W) 'fetch_struct_stat.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_stat.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fetch_struct_stat.Tpo $(DEPDIR)/strace-fetch_struct_stat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_stat.c' object='strace-fetch_struct_stat.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fsconfig.obj: fsconfig.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fsconfig.obj -MD -MP -MF $(DEPDIR)/libstrace_a-fsconfig.Tpo -c -o libstrace_a-fsconfig.obj `if test -f 'fsconfig.c'; then $(CYGPATH_W) 'fsconfig.c'; else $(CYGPATH_W) '$(srcdir)/fsconfig.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fsconfig.Tpo $(DEPDIR)/libstrace_a-fsconfig.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fsconfig.c' object='libstrace_a-fsconfig.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fetch_struct_stat.obj `if test -f 'fetch_struct_stat.c'; then $(CYGPATH_W) 'fetch_struct_stat.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_stat.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fsconfig.obj `if test -f 'fsconfig.c'; then $(CYGPATH_W) 'fsconfig.c'; else $(CYGPATH_W) '$(srcdir)/fsconfig.c'; fi` -strace-fetch_struct_stat64.o: fetch_struct_stat64.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fetch_struct_stat64.o -MD -MP -MF $(DEPDIR)/strace-fetch_struct_stat64.Tpo -c -o strace-fetch_struct_stat64.o `test -f 'fetch_struct_stat64.c' || echo '$(srcdir)/'`fetch_struct_stat64.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fetch_struct_stat64.Tpo $(DEPDIR)/strace-fetch_struct_stat64.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_stat64.c' object='strace-fetch_struct_stat64.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fsmount.o: fsmount.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fsmount.o -MD -MP -MF $(DEPDIR)/libstrace_a-fsmount.Tpo -c -o libstrace_a-fsmount.o `test -f 'fsmount.c' || echo '$(srcdir)/'`fsmount.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fsmount.Tpo $(DEPDIR)/libstrace_a-fsmount.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fsmount.c' object='libstrace_a-fsmount.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fetch_struct_stat64.o `test -f 'fetch_struct_stat64.c' || echo '$(srcdir)/'`fetch_struct_stat64.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fsmount.o `test -f 'fsmount.c' || echo '$(srcdir)/'`fsmount.c -strace-fetch_struct_stat64.obj: fetch_struct_stat64.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fetch_struct_stat64.obj -MD -MP -MF $(DEPDIR)/strace-fetch_struct_stat64.Tpo -c -o strace-fetch_struct_stat64.obj `if test -f 'fetch_struct_stat64.c'; then $(CYGPATH_W) 'fetch_struct_stat64.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_stat64.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fetch_struct_stat64.Tpo $(DEPDIR)/strace-fetch_struct_stat64.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_stat64.c' object='strace-fetch_struct_stat64.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fsmount.obj: fsmount.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fsmount.obj -MD -MP -MF $(DEPDIR)/libstrace_a-fsmount.Tpo -c -o libstrace_a-fsmount.obj `if test -f 'fsmount.c'; then $(CYGPATH_W) 'fsmount.c'; else $(CYGPATH_W) '$(srcdir)/fsmount.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fsmount.Tpo $(DEPDIR)/libstrace_a-fsmount.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fsmount.c' object='libstrace_a-fsmount.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fetch_struct_stat64.obj `if test -f 'fetch_struct_stat64.c'; then $(CYGPATH_W) 'fetch_struct_stat64.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_stat64.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fsmount.obj `if test -f 'fsmount.c'; then $(CYGPATH_W) 'fsmount.c'; else $(CYGPATH_W) '$(srcdir)/fsmount.c'; fi` -strace-fetch_struct_statfs.o: fetch_struct_statfs.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fetch_struct_statfs.o -MD -MP -MF $(DEPDIR)/strace-fetch_struct_statfs.Tpo -c -o strace-fetch_struct_statfs.o `test -f 'fetch_struct_statfs.c' || echo '$(srcdir)/'`fetch_struct_statfs.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fetch_struct_statfs.Tpo $(DEPDIR)/strace-fetch_struct_statfs.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_statfs.c' object='strace-fetch_struct_statfs.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fsopen.o: fsopen.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fsopen.o -MD -MP -MF $(DEPDIR)/libstrace_a-fsopen.Tpo -c -o libstrace_a-fsopen.o `test -f 'fsopen.c' || echo '$(srcdir)/'`fsopen.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fsopen.Tpo $(DEPDIR)/libstrace_a-fsopen.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fsopen.c' object='libstrace_a-fsopen.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fetch_struct_statfs.o `test -f 'fetch_struct_statfs.c' || echo '$(srcdir)/'`fetch_struct_statfs.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fsopen.o `test -f 'fsopen.c' || echo '$(srcdir)/'`fsopen.c -strace-fetch_struct_statfs.obj: fetch_struct_statfs.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fetch_struct_statfs.obj -MD -MP -MF $(DEPDIR)/strace-fetch_struct_statfs.Tpo -c -o strace-fetch_struct_statfs.obj `if test -f 'fetch_struct_statfs.c'; then $(CYGPATH_W) 'fetch_struct_statfs.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_statfs.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fetch_struct_statfs.Tpo $(DEPDIR)/strace-fetch_struct_statfs.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_statfs.c' object='strace-fetch_struct_statfs.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fsopen.obj: fsopen.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fsopen.obj -MD -MP -MF $(DEPDIR)/libstrace_a-fsopen.Tpo -c -o libstrace_a-fsopen.obj `if test -f 'fsopen.c'; then $(CYGPATH_W) 'fsopen.c'; else $(CYGPATH_W) '$(srcdir)/fsopen.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fsopen.Tpo $(DEPDIR)/libstrace_a-fsopen.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fsopen.c' object='libstrace_a-fsopen.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fetch_struct_statfs.obj `if test -f 'fetch_struct_statfs.c'; then $(CYGPATH_W) 'fetch_struct_statfs.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_statfs.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fsopen.obj `if test -f 'fsopen.c'; then $(CYGPATH_W) 'fsopen.c'; else $(CYGPATH_W) '$(srcdir)/fsopen.c'; fi` -strace-fetch_struct_xfs_quotastat.o: fetch_struct_xfs_quotastat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fetch_struct_xfs_quotastat.o -MD -MP -MF $(DEPDIR)/strace-fetch_struct_xfs_quotastat.Tpo -c -o strace-fetch_struct_xfs_quotastat.o `test -f 'fetch_struct_xfs_quotastat.c' || echo '$(srcdir)/'`fetch_struct_xfs_quotastat.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fetch_struct_xfs_quotastat.Tpo $(DEPDIR)/strace-fetch_struct_xfs_quotastat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_xfs_quotastat.c' object='strace-fetch_struct_xfs_quotastat.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fspick.o: fspick.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fspick.o -MD -MP -MF $(DEPDIR)/libstrace_a-fspick.Tpo -c -o libstrace_a-fspick.o `test -f 'fspick.c' || echo '$(srcdir)/'`fspick.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fspick.Tpo $(DEPDIR)/libstrace_a-fspick.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fspick.c' object='libstrace_a-fspick.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fetch_struct_xfs_quotastat.o `test -f 'fetch_struct_xfs_quotastat.c' || echo '$(srcdir)/'`fetch_struct_xfs_quotastat.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fspick.o `test -f 'fspick.c' || echo '$(srcdir)/'`fspick.c -strace-fetch_struct_xfs_quotastat.obj: fetch_struct_xfs_quotastat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fetch_struct_xfs_quotastat.obj -MD -MP -MF $(DEPDIR)/strace-fetch_struct_xfs_quotastat.Tpo -c -o strace-fetch_struct_xfs_quotastat.obj `if test -f 'fetch_struct_xfs_quotastat.c'; then $(CYGPATH_W) 'fetch_struct_xfs_quotastat.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_xfs_quotastat.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fetch_struct_xfs_quotastat.Tpo $(DEPDIR)/strace-fetch_struct_xfs_quotastat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fetch_struct_xfs_quotastat.c' object='strace-fetch_struct_xfs_quotastat.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fspick.obj: fspick.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fspick.obj -MD -MP -MF $(DEPDIR)/libstrace_a-fspick.Tpo -c -o libstrace_a-fspick.obj `if test -f 'fspick.c'; then $(CYGPATH_W) 'fspick.c'; else $(CYGPATH_W) '$(srcdir)/fspick.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fspick.Tpo $(DEPDIR)/libstrace_a-fspick.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fspick.c' object='libstrace_a-fspick.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fetch_struct_xfs_quotastat.obj `if test -f 'fetch_struct_xfs_quotastat.c'; then $(CYGPATH_W) 'fetch_struct_xfs_quotastat.c'; else $(CYGPATH_W) '$(srcdir)/fetch_struct_xfs_quotastat.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fspick.obj `if test -f 'fspick.c'; then $(CYGPATH_W) 'fspick.c'; else $(CYGPATH_W) '$(srcdir)/fspick.c'; fi` -strace-file_handle.o: file_handle.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-file_handle.o -MD -MP -MF $(DEPDIR)/strace-file_handle.Tpo -c -o strace-file_handle.o `test -f 'file_handle.c' || echo '$(srcdir)/'`file_handle.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-file_handle.Tpo $(DEPDIR)/strace-file_handle.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='file_handle.c' object='strace-file_handle.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fstatfs.o: fstatfs.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fstatfs.o -MD -MP -MF $(DEPDIR)/libstrace_a-fstatfs.Tpo -c -o libstrace_a-fstatfs.o `test -f 'fstatfs.c' || echo '$(srcdir)/'`fstatfs.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fstatfs.Tpo $(DEPDIR)/libstrace_a-fstatfs.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fstatfs.c' object='libstrace_a-fstatfs.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-file_handle.o `test -f 'file_handle.c' || echo '$(srcdir)/'`file_handle.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fstatfs.o `test -f 'fstatfs.c' || echo '$(srcdir)/'`fstatfs.c -strace-file_handle.obj: file_handle.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-file_handle.obj -MD -MP -MF $(DEPDIR)/strace-file_handle.Tpo -c -o strace-file_handle.obj `if test -f 'file_handle.c'; then $(CYGPATH_W) 'file_handle.c'; else $(CYGPATH_W) '$(srcdir)/file_handle.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-file_handle.Tpo $(DEPDIR)/strace-file_handle.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='file_handle.c' object='strace-file_handle.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fstatfs.obj: fstatfs.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fstatfs.obj -MD -MP -MF $(DEPDIR)/libstrace_a-fstatfs.Tpo -c -o libstrace_a-fstatfs.obj `if test -f 'fstatfs.c'; then $(CYGPATH_W) 'fstatfs.c'; else $(CYGPATH_W) '$(srcdir)/fstatfs.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fstatfs.Tpo $(DEPDIR)/libstrace_a-fstatfs.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fstatfs.c' object='libstrace_a-fstatfs.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-file_handle.obj `if test -f 'file_handle.c'; then $(CYGPATH_W) 'file_handle.c'; else $(CYGPATH_W) '$(srcdir)/file_handle.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fstatfs.obj `if test -f 'fstatfs.c'; then $(CYGPATH_W) 'fstatfs.c'; else $(CYGPATH_W) '$(srcdir)/fstatfs.c'; fi` -strace-file_ioctl.o: file_ioctl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-file_ioctl.o -MD -MP -MF $(DEPDIR)/strace-file_ioctl.Tpo -c -o strace-file_ioctl.o `test -f 'file_ioctl.c' || echo '$(srcdir)/'`file_ioctl.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-file_ioctl.Tpo $(DEPDIR)/strace-file_ioctl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='file_ioctl.c' object='strace-file_ioctl.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fstatfs64.o: fstatfs64.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fstatfs64.o -MD -MP -MF $(DEPDIR)/libstrace_a-fstatfs64.Tpo -c -o libstrace_a-fstatfs64.o `test -f 'fstatfs64.c' || echo '$(srcdir)/'`fstatfs64.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fstatfs64.Tpo $(DEPDIR)/libstrace_a-fstatfs64.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fstatfs64.c' object='libstrace_a-fstatfs64.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-file_ioctl.o `test -f 'file_ioctl.c' || echo '$(srcdir)/'`file_ioctl.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fstatfs64.o `test -f 'fstatfs64.c' || echo '$(srcdir)/'`fstatfs64.c -strace-file_ioctl.obj: file_ioctl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-file_ioctl.obj -MD -MP -MF $(DEPDIR)/strace-file_ioctl.Tpo -c -o strace-file_ioctl.obj `if test -f 'file_ioctl.c'; then $(CYGPATH_W) 'file_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/file_ioctl.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-file_ioctl.Tpo $(DEPDIR)/strace-file_ioctl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='file_ioctl.c' object='strace-file_ioctl.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-fstatfs64.obj: fstatfs64.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-fstatfs64.obj -MD -MP -MF $(DEPDIR)/libstrace_a-fstatfs64.Tpo -c -o libstrace_a-fstatfs64.obj `if test -f 'fstatfs64.c'; then $(CYGPATH_W) 'fstatfs64.c'; else $(CYGPATH_W) '$(srcdir)/fstatfs64.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-fstatfs64.Tpo $(DEPDIR)/libstrace_a-fstatfs64.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fstatfs64.c' object='libstrace_a-fstatfs64.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-file_ioctl.obj `if test -f 'file_ioctl.c'; then $(CYGPATH_W) 'file_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/file_ioctl.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-fstatfs64.obj `if test -f 'fstatfs64.c'; then $(CYGPATH_W) 'fstatfs64.c'; else $(CYGPATH_W) '$(srcdir)/fstatfs64.c'; fi` -strace-filter_qualify.o: filter_qualify.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-filter_qualify.o -MD -MP -MF $(DEPDIR)/strace-filter_qualify.Tpo -c -o strace-filter_qualify.o `test -f 'filter_qualify.c' || echo '$(srcdir)/'`filter_qualify.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-filter_qualify.Tpo $(DEPDIR)/strace-filter_qualify.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='filter_qualify.c' object='strace-filter_qualify.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-futex.o: futex.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-futex.o -MD -MP -MF $(DEPDIR)/libstrace_a-futex.Tpo -c -o libstrace_a-futex.o `test -f 'futex.c' || echo '$(srcdir)/'`futex.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-futex.Tpo $(DEPDIR)/libstrace_a-futex.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='futex.c' object='libstrace_a-futex.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-filter_qualify.o `test -f 'filter_qualify.c' || echo '$(srcdir)/'`filter_qualify.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-futex.o `test -f 'futex.c' || echo '$(srcdir)/'`futex.c -strace-filter_qualify.obj: filter_qualify.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-filter_qualify.obj -MD -MP -MF $(DEPDIR)/strace-filter_qualify.Tpo -c -o strace-filter_qualify.obj `if test -f 'filter_qualify.c'; then $(CYGPATH_W) 'filter_qualify.c'; else $(CYGPATH_W) '$(srcdir)/filter_qualify.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-filter_qualify.Tpo $(DEPDIR)/strace-filter_qualify.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='filter_qualify.c' object='strace-filter_qualify.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-futex.obj: futex.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-futex.obj -MD -MP -MF $(DEPDIR)/libstrace_a-futex.Tpo -c -o libstrace_a-futex.obj `if test -f 'futex.c'; then $(CYGPATH_W) 'futex.c'; else $(CYGPATH_W) '$(srcdir)/futex.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-futex.Tpo $(DEPDIR)/libstrace_a-futex.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='futex.c' object='libstrace_a-futex.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-filter_qualify.obj `if test -f 'filter_qualify.c'; then $(CYGPATH_W) 'filter_qualify.c'; else $(CYGPATH_W) '$(srcdir)/filter_qualify.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-futex.obj `if test -f 'futex.c'; then $(CYGPATH_W) 'futex.c'; else $(CYGPATH_W) '$(srcdir)/futex.c'; fi` -strace-flock.o: flock.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-flock.o -MD -MP -MF $(DEPDIR)/strace-flock.Tpo -c -o strace-flock.o `test -f 'flock.c' || echo '$(srcdir)/'`flock.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-flock.Tpo $(DEPDIR)/strace-flock.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='flock.c' object='strace-flock.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-get_personality.o: get_personality.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-get_personality.o -MD -MP -MF $(DEPDIR)/libstrace_a-get_personality.Tpo -c -o libstrace_a-get_personality.o `test -f 'get_personality.c' || echo '$(srcdir)/'`get_personality.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-get_personality.Tpo $(DEPDIR)/libstrace_a-get_personality.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='get_personality.c' object='libstrace_a-get_personality.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-flock.o `test -f 'flock.c' || echo '$(srcdir)/'`flock.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-get_personality.o `test -f 'get_personality.c' || echo '$(srcdir)/'`get_personality.c -strace-flock.obj: flock.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-flock.obj -MD -MP -MF $(DEPDIR)/strace-flock.Tpo -c -o strace-flock.obj `if test -f 'flock.c'; then $(CYGPATH_W) 'flock.c'; else $(CYGPATH_W) '$(srcdir)/flock.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-flock.Tpo $(DEPDIR)/strace-flock.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='flock.c' object='strace-flock.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-get_personality.obj: get_personality.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-get_personality.obj -MD -MP -MF $(DEPDIR)/libstrace_a-get_personality.Tpo -c -o libstrace_a-get_personality.obj `if test -f 'get_personality.c'; then $(CYGPATH_W) 'get_personality.c'; else $(CYGPATH_W) '$(srcdir)/get_personality.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-get_personality.Tpo $(DEPDIR)/libstrace_a-get_personality.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='get_personality.c' object='libstrace_a-get_personality.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-flock.obj `if test -f 'flock.c'; then $(CYGPATH_W) 'flock.c'; else $(CYGPATH_W) '$(srcdir)/flock.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-get_personality.obj `if test -f 'get_personality.c'; then $(CYGPATH_W) 'get_personality.c'; else $(CYGPATH_W) '$(srcdir)/get_personality.c'; fi` -strace-fs_x_ioctl.o: fs_x_ioctl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fs_x_ioctl.o -MD -MP -MF $(DEPDIR)/strace-fs_x_ioctl.Tpo -c -o strace-fs_x_ioctl.o `test -f 'fs_x_ioctl.c' || echo '$(srcdir)/'`fs_x_ioctl.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fs_x_ioctl.Tpo $(DEPDIR)/strace-fs_x_ioctl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fs_x_ioctl.c' object='strace-fs_x_ioctl.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-get_robust_list.o: get_robust_list.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-get_robust_list.o -MD -MP -MF $(DEPDIR)/libstrace_a-get_robust_list.Tpo -c -o libstrace_a-get_robust_list.o `test -f 'get_robust_list.c' || echo '$(srcdir)/'`get_robust_list.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-get_robust_list.Tpo $(DEPDIR)/libstrace_a-get_robust_list.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='get_robust_list.c' object='libstrace_a-get_robust_list.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fs_x_ioctl.o `test -f 'fs_x_ioctl.c' || echo '$(srcdir)/'`fs_x_ioctl.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-get_robust_list.o `test -f 'get_robust_list.c' || echo '$(srcdir)/'`get_robust_list.c -strace-fs_x_ioctl.obj: fs_x_ioctl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-fs_x_ioctl.obj -MD -MP -MF $(DEPDIR)/strace-fs_x_ioctl.Tpo -c -o strace-fs_x_ioctl.obj `if test -f 'fs_x_ioctl.c'; then $(CYGPATH_W) 'fs_x_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/fs_x_ioctl.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-fs_x_ioctl.Tpo $(DEPDIR)/strace-fs_x_ioctl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fs_x_ioctl.c' object='strace-fs_x_ioctl.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-get_robust_list.obj: get_robust_list.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-get_robust_list.obj -MD -MP -MF $(DEPDIR)/libstrace_a-get_robust_list.Tpo -c -o libstrace_a-get_robust_list.obj `if test -f 'get_robust_list.c'; then $(CYGPATH_W) 'get_robust_list.c'; else $(CYGPATH_W) '$(srcdir)/get_robust_list.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-get_robust_list.Tpo $(DEPDIR)/libstrace_a-get_robust_list.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='get_robust_list.c' object='libstrace_a-get_robust_list.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-fs_x_ioctl.obj `if test -f 'fs_x_ioctl.c'; then $(CYGPATH_W) 'fs_x_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/fs_x_ioctl.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-get_robust_list.obj `if test -f 'get_robust_list.c'; then $(CYGPATH_W) 'get_robust_list.c'; else $(CYGPATH_W) '$(srcdir)/get_robust_list.c'; fi` -strace-futex.o: futex.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-futex.o -MD -MP -MF $(DEPDIR)/strace-futex.Tpo -c -o strace-futex.o `test -f 'futex.c' || echo '$(srcdir)/'`futex.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-futex.Tpo $(DEPDIR)/strace-futex.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='futex.c' object='strace-futex.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-getcpu.o: getcpu.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-getcpu.o -MD -MP -MF $(DEPDIR)/libstrace_a-getcpu.Tpo -c -o libstrace_a-getcpu.o `test -f 'getcpu.c' || echo '$(srcdir)/'`getcpu.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-getcpu.Tpo $(DEPDIR)/libstrace_a-getcpu.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getcpu.c' object='libstrace_a-getcpu.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-futex.o `test -f 'futex.c' || echo '$(srcdir)/'`futex.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-getcpu.o `test -f 'getcpu.c' || echo '$(srcdir)/'`getcpu.c -strace-futex.obj: futex.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-futex.obj -MD -MP -MF $(DEPDIR)/strace-futex.Tpo -c -o strace-futex.obj `if test -f 'futex.c'; then $(CYGPATH_W) 'futex.c'; else $(CYGPATH_W) '$(srcdir)/futex.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-futex.Tpo $(DEPDIR)/strace-futex.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='futex.c' object='strace-futex.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-getcpu.obj: getcpu.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-getcpu.obj -MD -MP -MF $(DEPDIR)/libstrace_a-getcpu.Tpo -c -o libstrace_a-getcpu.obj `if test -f 'getcpu.c'; then $(CYGPATH_W) 'getcpu.c'; else $(CYGPATH_W) '$(srcdir)/getcpu.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-getcpu.Tpo $(DEPDIR)/libstrace_a-getcpu.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getcpu.c' object='libstrace_a-getcpu.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-futex.obj `if test -f 'futex.c'; then $(CYGPATH_W) 'futex.c'; else $(CYGPATH_W) '$(srcdir)/futex.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-getcpu.obj `if test -f 'getcpu.c'; then $(CYGPATH_W) 'getcpu.c'; else $(CYGPATH_W) '$(srcdir)/getcpu.c'; fi` -strace-get_personality.o: get_personality.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-get_personality.o -MD -MP -MF $(DEPDIR)/strace-get_personality.Tpo -c -o strace-get_personality.o `test -f 'get_personality.c' || echo '$(srcdir)/'`get_personality.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-get_personality.Tpo $(DEPDIR)/strace-get_personality.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='get_personality.c' object='strace-get_personality.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-getcwd.o: getcwd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-getcwd.o -MD -MP -MF $(DEPDIR)/libstrace_a-getcwd.Tpo -c -o libstrace_a-getcwd.o `test -f 'getcwd.c' || echo '$(srcdir)/'`getcwd.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-getcwd.Tpo $(DEPDIR)/libstrace_a-getcwd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getcwd.c' object='libstrace_a-getcwd.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-get_personality.o `test -f 'get_personality.c' || echo '$(srcdir)/'`get_personality.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-getcwd.o `test -f 'getcwd.c' || echo '$(srcdir)/'`getcwd.c -strace-get_personality.obj: get_personality.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-get_personality.obj -MD -MP -MF $(DEPDIR)/strace-get_personality.Tpo -c -o strace-get_personality.obj `if test -f 'get_personality.c'; then $(CYGPATH_W) 'get_personality.c'; else $(CYGPATH_W) '$(srcdir)/get_personality.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-get_personality.Tpo $(DEPDIR)/strace-get_personality.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='get_personality.c' object='strace-get_personality.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-getcwd.obj: getcwd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-getcwd.obj -MD -MP -MF $(DEPDIR)/libstrace_a-getcwd.Tpo -c -o libstrace_a-getcwd.obj `if test -f 'getcwd.c'; then $(CYGPATH_W) 'getcwd.c'; else $(CYGPATH_W) '$(srcdir)/getcwd.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-getcwd.Tpo $(DEPDIR)/libstrace_a-getcwd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getcwd.c' object='libstrace_a-getcwd.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-get_personality.obj `if test -f 'get_personality.c'; then $(CYGPATH_W) 'get_personality.c'; else $(CYGPATH_W) '$(srcdir)/get_personality.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-getcwd.obj `if test -f 'getcwd.c'; then $(CYGPATH_W) 'getcwd.c'; else $(CYGPATH_W) '$(srcdir)/getcwd.c'; fi` -strace-get_robust_list.o: get_robust_list.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-get_robust_list.o -MD -MP -MF $(DEPDIR)/strace-get_robust_list.Tpo -c -o strace-get_robust_list.o `test -f 'get_robust_list.c' || echo '$(srcdir)/'`get_robust_list.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-get_robust_list.Tpo $(DEPDIR)/strace-get_robust_list.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='get_robust_list.c' object='strace-get_robust_list.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-getpagesize.o: getpagesize.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-getpagesize.o -MD -MP -MF $(DEPDIR)/libstrace_a-getpagesize.Tpo -c -o libstrace_a-getpagesize.o `test -f 'getpagesize.c' || echo '$(srcdir)/'`getpagesize.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-getpagesize.Tpo $(DEPDIR)/libstrace_a-getpagesize.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getpagesize.c' object='libstrace_a-getpagesize.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-get_robust_list.o `test -f 'get_robust_list.c' || echo '$(srcdir)/'`get_robust_list.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-getpagesize.o `test -f 'getpagesize.c' || echo '$(srcdir)/'`getpagesize.c -strace-get_robust_list.obj: get_robust_list.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-get_robust_list.obj -MD -MP -MF $(DEPDIR)/strace-get_robust_list.Tpo -c -o strace-get_robust_list.obj `if test -f 'get_robust_list.c'; then $(CYGPATH_W) 'get_robust_list.c'; else $(CYGPATH_W) '$(srcdir)/get_robust_list.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-get_robust_list.Tpo $(DEPDIR)/strace-get_robust_list.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='get_robust_list.c' object='strace-get_robust_list.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-getpagesize.obj: getpagesize.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-getpagesize.obj -MD -MP -MF $(DEPDIR)/libstrace_a-getpagesize.Tpo -c -o libstrace_a-getpagesize.obj `if test -f 'getpagesize.c'; then $(CYGPATH_W) 'getpagesize.c'; else $(CYGPATH_W) '$(srcdir)/getpagesize.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-getpagesize.Tpo $(DEPDIR)/libstrace_a-getpagesize.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getpagesize.c' object='libstrace_a-getpagesize.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-get_robust_list.obj `if test -f 'get_robust_list.c'; then $(CYGPATH_W) 'get_robust_list.c'; else $(CYGPATH_W) '$(srcdir)/get_robust_list.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-getpagesize.obj `if test -f 'getpagesize.c'; then $(CYGPATH_W) 'getpagesize.c'; else $(CYGPATH_W) '$(srcdir)/getpagesize.c'; fi` -strace-getcpu.o: getcpu.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-getcpu.o -MD -MP -MF $(DEPDIR)/strace-getcpu.Tpo -c -o strace-getcpu.o `test -f 'getcpu.c' || echo '$(srcdir)/'`getcpu.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-getcpu.Tpo $(DEPDIR)/strace-getcpu.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getcpu.c' object='strace-getcpu.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-getpid.o: getpid.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-getpid.o -MD -MP -MF $(DEPDIR)/libstrace_a-getpid.Tpo -c -o libstrace_a-getpid.o `test -f 'getpid.c' || echo '$(srcdir)/'`getpid.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-getpid.Tpo $(DEPDIR)/libstrace_a-getpid.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getpid.c' object='libstrace_a-getpid.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-getcpu.o `test -f 'getcpu.c' || echo '$(srcdir)/'`getcpu.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-getpid.o `test -f 'getpid.c' || echo '$(srcdir)/'`getpid.c -strace-getcpu.obj: getcpu.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-getcpu.obj -MD -MP -MF $(DEPDIR)/strace-getcpu.Tpo -c -o strace-getcpu.obj `if test -f 'getcpu.c'; then $(CYGPATH_W) 'getcpu.c'; else $(CYGPATH_W) '$(srcdir)/getcpu.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-getcpu.Tpo $(DEPDIR)/strace-getcpu.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getcpu.c' object='strace-getcpu.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-getpid.obj: getpid.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-getpid.obj -MD -MP -MF $(DEPDIR)/libstrace_a-getpid.Tpo -c -o libstrace_a-getpid.obj `if test -f 'getpid.c'; then $(CYGPATH_W) 'getpid.c'; else $(CYGPATH_W) '$(srcdir)/getpid.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-getpid.Tpo $(DEPDIR)/libstrace_a-getpid.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getpid.c' object='libstrace_a-getpid.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-getcpu.obj `if test -f 'getcpu.c'; then $(CYGPATH_W) 'getcpu.c'; else $(CYGPATH_W) '$(srcdir)/getcpu.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-getpid.obj `if test -f 'getpid.c'; then $(CYGPATH_W) 'getpid.c'; else $(CYGPATH_W) '$(srcdir)/getpid.c'; fi` -strace-getcwd.o: getcwd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-getcwd.o -MD -MP -MF $(DEPDIR)/strace-getcwd.Tpo -c -o strace-getcwd.o `test -f 'getcwd.c' || echo '$(srcdir)/'`getcwd.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-getcwd.Tpo $(DEPDIR)/strace-getcwd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getcwd.c' object='strace-getcwd.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-getrandom.o: getrandom.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-getrandom.o -MD -MP -MF $(DEPDIR)/libstrace_a-getrandom.Tpo -c -o libstrace_a-getrandom.o `test -f 'getrandom.c' || echo '$(srcdir)/'`getrandom.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-getrandom.Tpo $(DEPDIR)/libstrace_a-getrandom.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getrandom.c' object='libstrace_a-getrandom.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-getcwd.o `test -f 'getcwd.c' || echo '$(srcdir)/'`getcwd.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-getrandom.o `test -f 'getrandom.c' || echo '$(srcdir)/'`getrandom.c -strace-getcwd.obj: getcwd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-getcwd.obj -MD -MP -MF $(DEPDIR)/strace-getcwd.Tpo -c -o strace-getcwd.obj `if test -f 'getcwd.c'; then $(CYGPATH_W) 'getcwd.c'; else $(CYGPATH_W) '$(srcdir)/getcwd.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-getcwd.Tpo $(DEPDIR)/strace-getcwd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getcwd.c' object='strace-getcwd.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-getrandom.obj: getrandom.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-getrandom.obj -MD -MP -MF $(DEPDIR)/libstrace_a-getrandom.Tpo -c -o libstrace_a-getrandom.obj `if test -f 'getrandom.c'; then $(CYGPATH_W) 'getrandom.c'; else $(CYGPATH_W) '$(srcdir)/getrandom.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-getrandom.Tpo $(DEPDIR)/libstrace_a-getrandom.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getrandom.c' object='libstrace_a-getrandom.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-getcwd.obj `if test -f 'getcwd.c'; then $(CYGPATH_W) 'getcwd.c'; else $(CYGPATH_W) '$(srcdir)/getcwd.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-getrandom.obj `if test -f 'getrandom.c'; then $(CYGPATH_W) 'getrandom.c'; else $(CYGPATH_W) '$(srcdir)/getrandom.c'; fi` -strace-getrandom.o: getrandom.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-getrandom.o -MD -MP -MF $(DEPDIR)/strace-getrandom.Tpo -c -o strace-getrandom.o `test -f 'getrandom.c' || echo '$(srcdir)/'`getrandom.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-getrandom.Tpo $(DEPDIR)/strace-getrandom.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getrandom.c' object='strace-getrandom.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-hdio.o: hdio.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-hdio.o -MD -MP -MF $(DEPDIR)/libstrace_a-hdio.Tpo -c -o libstrace_a-hdio.o `test -f 'hdio.c' || echo '$(srcdir)/'`hdio.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-hdio.Tpo $(DEPDIR)/libstrace_a-hdio.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hdio.c' object='libstrace_a-hdio.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-getrandom.o `test -f 'getrandom.c' || echo '$(srcdir)/'`getrandom.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-hdio.o `test -f 'hdio.c' || echo '$(srcdir)/'`hdio.c -strace-getrandom.obj: getrandom.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-getrandom.obj -MD -MP -MF $(DEPDIR)/strace-getrandom.Tpo -c -o strace-getrandom.obj `if test -f 'getrandom.c'; then $(CYGPATH_W) 'getrandom.c'; else $(CYGPATH_W) '$(srcdir)/getrandom.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-getrandom.Tpo $(DEPDIR)/strace-getrandom.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getrandom.c' object='strace-getrandom.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-hdio.obj: hdio.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-hdio.obj -MD -MP -MF $(DEPDIR)/libstrace_a-hdio.Tpo -c -o libstrace_a-hdio.obj `if test -f 'hdio.c'; then $(CYGPATH_W) 'hdio.c'; else $(CYGPATH_W) '$(srcdir)/hdio.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-hdio.Tpo $(DEPDIR)/libstrace_a-hdio.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hdio.c' object='libstrace_a-hdio.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-getrandom.obj `if test -f 'getrandom.c'; then $(CYGPATH_W) 'getrandom.c'; else $(CYGPATH_W) '$(srcdir)/getrandom.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-hdio.obj `if test -f 'hdio.c'; then $(CYGPATH_W) 'hdio.c'; else $(CYGPATH_W) '$(srcdir)/hdio.c'; fi` -strace-hdio.o: hdio.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-hdio.o -MD -MP -MF $(DEPDIR)/strace-hdio.Tpo -c -o strace-hdio.o `test -f 'hdio.c' || echo '$(srcdir)/'`hdio.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-hdio.Tpo $(DEPDIR)/strace-hdio.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hdio.c' object='strace-hdio.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-hostname.o: hostname.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-hostname.o -MD -MP -MF $(DEPDIR)/libstrace_a-hostname.Tpo -c -o libstrace_a-hostname.o `test -f 'hostname.c' || echo '$(srcdir)/'`hostname.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-hostname.Tpo $(DEPDIR)/libstrace_a-hostname.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hostname.c' object='libstrace_a-hostname.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-hdio.o `test -f 'hdio.c' || echo '$(srcdir)/'`hdio.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-hostname.o `test -f 'hostname.c' || echo '$(srcdir)/'`hostname.c -strace-hdio.obj: hdio.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-hdio.obj -MD -MP -MF $(DEPDIR)/strace-hdio.Tpo -c -o strace-hdio.obj `if test -f 'hdio.c'; then $(CYGPATH_W) 'hdio.c'; else $(CYGPATH_W) '$(srcdir)/hdio.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-hdio.Tpo $(DEPDIR)/strace-hdio.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hdio.c' object='strace-hdio.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-hostname.obj: hostname.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-hostname.obj -MD -MP -MF $(DEPDIR)/libstrace_a-hostname.Tpo -c -o libstrace_a-hostname.obj `if test -f 'hostname.c'; then $(CYGPATH_W) 'hostname.c'; else $(CYGPATH_W) '$(srcdir)/hostname.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-hostname.Tpo $(DEPDIR)/libstrace_a-hostname.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hostname.c' object='libstrace_a-hostname.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-hdio.obj `if test -f 'hdio.c'; then $(CYGPATH_W) 'hdio.c'; else $(CYGPATH_W) '$(srcdir)/hdio.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-hostname.obj `if test -f 'hostname.c'; then $(CYGPATH_W) 'hostname.c'; else $(CYGPATH_W) '$(srcdir)/hostname.c'; fi` -strace-hostname.o: hostname.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-hostname.o -MD -MP -MF $(DEPDIR)/strace-hostname.Tpo -c -o strace-hostname.o `test -f 'hostname.c' || echo '$(srcdir)/'`hostname.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-hostname.Tpo $(DEPDIR)/strace-hostname.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hostname.c' object='strace-hostname.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-inotify.o: inotify.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-inotify.o -MD -MP -MF $(DEPDIR)/libstrace_a-inotify.Tpo -c -o libstrace_a-inotify.o `test -f 'inotify.c' || echo '$(srcdir)/'`inotify.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-inotify.Tpo $(DEPDIR)/libstrace_a-inotify.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='inotify.c' object='libstrace_a-inotify.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-hostname.o `test -f 'hostname.c' || echo '$(srcdir)/'`hostname.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-inotify.o `test -f 'inotify.c' || echo '$(srcdir)/'`inotify.c -strace-hostname.obj: hostname.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-hostname.obj -MD -MP -MF $(DEPDIR)/strace-hostname.Tpo -c -o strace-hostname.obj `if test -f 'hostname.c'; then $(CYGPATH_W) 'hostname.c'; else $(CYGPATH_W) '$(srcdir)/hostname.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-hostname.Tpo $(DEPDIR)/strace-hostname.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hostname.c' object='strace-hostname.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-inotify.obj: inotify.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-inotify.obj -MD -MP -MF $(DEPDIR)/libstrace_a-inotify.Tpo -c -o libstrace_a-inotify.obj `if test -f 'inotify.c'; then $(CYGPATH_W) 'inotify.c'; else $(CYGPATH_W) '$(srcdir)/inotify.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-inotify.Tpo $(DEPDIR)/libstrace_a-inotify.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='inotify.c' object='libstrace_a-inotify.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-hostname.obj `if test -f 'hostname.c'; then $(CYGPATH_W) 'hostname.c'; else $(CYGPATH_W) '$(srcdir)/hostname.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-inotify.obj `if test -f 'inotify.c'; then $(CYGPATH_W) 'inotify.c'; else $(CYGPATH_W) '$(srcdir)/inotify.c'; fi` -strace-inotify.o: inotify.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-inotify.o -MD -MP -MF $(DEPDIR)/strace-inotify.Tpo -c -o strace-inotify.o `test -f 'inotify.c' || echo '$(srcdir)/'`inotify.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-inotify.Tpo $(DEPDIR)/strace-inotify.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='inotify.c' object='strace-inotify.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-inotify_ioctl.o: inotify_ioctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-inotify_ioctl.o -MD -MP -MF $(DEPDIR)/libstrace_a-inotify_ioctl.Tpo -c -o libstrace_a-inotify_ioctl.o `test -f 'inotify_ioctl.c' || echo '$(srcdir)/'`inotify_ioctl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-inotify_ioctl.Tpo $(DEPDIR)/libstrace_a-inotify_ioctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='inotify_ioctl.c' object='libstrace_a-inotify_ioctl.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-inotify.o `test -f 'inotify.c' || echo '$(srcdir)/'`inotify.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-inotify_ioctl.o `test -f 'inotify_ioctl.c' || echo '$(srcdir)/'`inotify_ioctl.c -strace-inotify.obj: inotify.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-inotify.obj -MD -MP -MF $(DEPDIR)/strace-inotify.Tpo -c -o strace-inotify.obj `if test -f 'inotify.c'; then $(CYGPATH_W) 'inotify.c'; else $(CYGPATH_W) '$(srcdir)/inotify.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-inotify.Tpo $(DEPDIR)/strace-inotify.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='inotify.c' object='strace-inotify.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-inotify_ioctl.obj: inotify_ioctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-inotify_ioctl.obj -MD -MP -MF $(DEPDIR)/libstrace_a-inotify_ioctl.Tpo -c -o libstrace_a-inotify_ioctl.obj `if test -f 'inotify_ioctl.c'; then $(CYGPATH_W) 'inotify_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/inotify_ioctl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-inotify_ioctl.Tpo $(DEPDIR)/libstrace_a-inotify_ioctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='inotify_ioctl.c' object='libstrace_a-inotify_ioctl.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-inotify.obj `if test -f 'inotify.c'; then $(CYGPATH_W) 'inotify.c'; else $(CYGPATH_W) '$(srcdir)/inotify.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-inotify_ioctl.obj `if test -f 'inotify_ioctl.c'; then $(CYGPATH_W) 'inotify_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/inotify_ioctl.c'; fi` -strace-inotify_ioctl.o: inotify_ioctl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-inotify_ioctl.o -MD -MP -MF $(DEPDIR)/strace-inotify_ioctl.Tpo -c -o strace-inotify_ioctl.o `test -f 'inotify_ioctl.c' || echo '$(srcdir)/'`inotify_ioctl.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-inotify_ioctl.Tpo $(DEPDIR)/strace-inotify_ioctl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='inotify_ioctl.c' object='strace-inotify_ioctl.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-io.o: io.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-io.o -MD -MP -MF $(DEPDIR)/libstrace_a-io.Tpo -c -o libstrace_a-io.o `test -f 'io.c' || echo '$(srcdir)/'`io.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-io.Tpo $(DEPDIR)/libstrace_a-io.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='io.c' object='libstrace_a-io.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-inotify_ioctl.o `test -f 'inotify_ioctl.c' || echo '$(srcdir)/'`inotify_ioctl.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-io.o `test -f 'io.c' || echo '$(srcdir)/'`io.c -strace-inotify_ioctl.obj: inotify_ioctl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-inotify_ioctl.obj -MD -MP -MF $(DEPDIR)/strace-inotify_ioctl.Tpo -c -o strace-inotify_ioctl.obj `if test -f 'inotify_ioctl.c'; then $(CYGPATH_W) 'inotify_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/inotify_ioctl.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-inotify_ioctl.Tpo $(DEPDIR)/strace-inotify_ioctl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='inotify_ioctl.c' object='strace-inotify_ioctl.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-io.obj: io.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-io.obj -MD -MP -MF $(DEPDIR)/libstrace_a-io.Tpo -c -o libstrace_a-io.obj `if test -f 'io.c'; then $(CYGPATH_W) 'io.c'; else $(CYGPATH_W) '$(srcdir)/io.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-io.Tpo $(DEPDIR)/libstrace_a-io.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='io.c' object='libstrace_a-io.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-inotify_ioctl.obj `if test -f 'inotify_ioctl.c'; then $(CYGPATH_W) 'inotify_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/inotify_ioctl.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-io.obj `if test -f 'io.c'; then $(CYGPATH_W) 'io.c'; else $(CYGPATH_W) '$(srcdir)/io.c'; fi` -strace-io.o: io.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-io.o -MD -MP -MF $(DEPDIR)/strace-io.Tpo -c -o strace-io.o `test -f 'io.c' || echo '$(srcdir)/'`io.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-io.Tpo $(DEPDIR)/strace-io.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='io.c' object='strace-io.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-io_uring.o: io_uring.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-io_uring.o -MD -MP -MF $(DEPDIR)/libstrace_a-io_uring.Tpo -c -o libstrace_a-io_uring.o `test -f 'io_uring.c' || echo '$(srcdir)/'`io_uring.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-io_uring.Tpo $(DEPDIR)/libstrace_a-io_uring.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='io_uring.c' object='libstrace_a-io_uring.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-io.o `test -f 'io.c' || echo '$(srcdir)/'`io.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-io_uring.o `test -f 'io_uring.c' || echo '$(srcdir)/'`io_uring.c -strace-io.obj: io.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-io.obj -MD -MP -MF $(DEPDIR)/strace-io.Tpo -c -o strace-io.obj `if test -f 'io.c'; then $(CYGPATH_W) 'io.c'; else $(CYGPATH_W) '$(srcdir)/io.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-io.Tpo $(DEPDIR)/strace-io.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='io.c' object='strace-io.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-io_uring.obj: io_uring.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-io_uring.obj -MD -MP -MF $(DEPDIR)/libstrace_a-io_uring.Tpo -c -o libstrace_a-io_uring.obj `if test -f 'io_uring.c'; then $(CYGPATH_W) 'io_uring.c'; else $(CYGPATH_W) '$(srcdir)/io_uring.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-io_uring.Tpo $(DEPDIR)/libstrace_a-io_uring.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='io_uring.c' object='libstrace_a-io_uring.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-io.obj `if test -f 'io.c'; then $(CYGPATH_W) 'io.c'; else $(CYGPATH_W) '$(srcdir)/io.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-io_uring.obj `if test -f 'io_uring.c'; then $(CYGPATH_W) 'io_uring.c'; else $(CYGPATH_W) '$(srcdir)/io_uring.c'; fi` -strace-io_uring.o: io_uring.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-io_uring.o -MD -MP -MF $(DEPDIR)/strace-io_uring.Tpo -c -o strace-io_uring.o `test -f 'io_uring.c' || echo '$(srcdir)/'`io_uring.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-io_uring.Tpo $(DEPDIR)/strace-io_uring.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='io_uring.c' object='strace-io_uring.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ioctl.o: ioctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ioctl.o -MD -MP -MF $(DEPDIR)/libstrace_a-ioctl.Tpo -c -o libstrace_a-ioctl.o `test -f 'ioctl.c' || echo '$(srcdir)/'`ioctl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ioctl.Tpo $(DEPDIR)/libstrace_a-ioctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ioctl.c' object='libstrace_a-ioctl.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-io_uring.o `test -f 'io_uring.c' || echo '$(srcdir)/'`io_uring.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ioctl.o `test -f 'ioctl.c' || echo '$(srcdir)/'`ioctl.c -strace-io_uring.obj: io_uring.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-io_uring.obj -MD -MP -MF $(DEPDIR)/strace-io_uring.Tpo -c -o strace-io_uring.obj `if test -f 'io_uring.c'; then $(CYGPATH_W) 'io_uring.c'; else $(CYGPATH_W) '$(srcdir)/io_uring.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-io_uring.Tpo $(DEPDIR)/strace-io_uring.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='io_uring.c' object='strace-io_uring.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ioctl.obj: ioctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ioctl.obj -MD -MP -MF $(DEPDIR)/libstrace_a-ioctl.Tpo -c -o libstrace_a-ioctl.obj `if test -f 'ioctl.c'; then $(CYGPATH_W) 'ioctl.c'; else $(CYGPATH_W) '$(srcdir)/ioctl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ioctl.Tpo $(DEPDIR)/libstrace_a-ioctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ioctl.c' object='libstrace_a-ioctl.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-io_uring.obj `if test -f 'io_uring.c'; then $(CYGPATH_W) 'io_uring.c'; else $(CYGPATH_W) '$(srcdir)/io_uring.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ioctl.obj `if test -f 'ioctl.c'; then $(CYGPATH_W) 'ioctl.c'; else $(CYGPATH_W) '$(srcdir)/ioctl.c'; fi` -strace-ioctl.o: ioctl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-ioctl.o -MD -MP -MF $(DEPDIR)/strace-ioctl.Tpo -c -o strace-ioctl.o `test -f 'ioctl.c' || echo '$(srcdir)/'`ioctl.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-ioctl.Tpo $(DEPDIR)/strace-ioctl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ioctl.c' object='strace-ioctl.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ioperm.o: ioperm.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ioperm.o -MD -MP -MF $(DEPDIR)/libstrace_a-ioperm.Tpo -c -o libstrace_a-ioperm.o `test -f 'ioperm.c' || echo '$(srcdir)/'`ioperm.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ioperm.Tpo $(DEPDIR)/libstrace_a-ioperm.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ioperm.c' object='libstrace_a-ioperm.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-ioctl.o `test -f 'ioctl.c' || echo '$(srcdir)/'`ioctl.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ioperm.o `test -f 'ioperm.c' || echo '$(srcdir)/'`ioperm.c -strace-ioctl.obj: ioctl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-ioctl.obj -MD -MP -MF $(DEPDIR)/strace-ioctl.Tpo -c -o strace-ioctl.obj `if test -f 'ioctl.c'; then $(CYGPATH_W) 'ioctl.c'; else $(CYGPATH_W) '$(srcdir)/ioctl.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-ioctl.Tpo $(DEPDIR)/strace-ioctl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ioctl.c' object='strace-ioctl.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ioperm.obj: ioperm.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ioperm.obj -MD -MP -MF $(DEPDIR)/libstrace_a-ioperm.Tpo -c -o libstrace_a-ioperm.obj `if test -f 'ioperm.c'; then $(CYGPATH_W) 'ioperm.c'; else $(CYGPATH_W) '$(srcdir)/ioperm.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ioperm.Tpo $(DEPDIR)/libstrace_a-ioperm.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ioperm.c' object='libstrace_a-ioperm.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-ioctl.obj `if test -f 'ioctl.c'; then $(CYGPATH_W) 'ioctl.c'; else $(CYGPATH_W) '$(srcdir)/ioctl.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ioperm.obj `if test -f 'ioperm.c'; then $(CYGPATH_W) 'ioperm.c'; else $(CYGPATH_W) '$(srcdir)/ioperm.c'; fi` -strace-ioperm.o: ioperm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-ioperm.o -MD -MP -MF $(DEPDIR)/strace-ioperm.Tpo -c -o strace-ioperm.o `test -f 'ioperm.c' || echo '$(srcdir)/'`ioperm.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-ioperm.Tpo $(DEPDIR)/strace-ioperm.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ioperm.c' object='strace-ioperm.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-iopl.o: iopl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-iopl.o -MD -MP -MF $(DEPDIR)/libstrace_a-iopl.Tpo -c -o libstrace_a-iopl.o `test -f 'iopl.c' || echo '$(srcdir)/'`iopl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-iopl.Tpo $(DEPDIR)/libstrace_a-iopl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iopl.c' object='libstrace_a-iopl.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-ioperm.o `test -f 'ioperm.c' || echo '$(srcdir)/'`ioperm.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-iopl.o `test -f 'iopl.c' || echo '$(srcdir)/'`iopl.c -strace-ioperm.obj: ioperm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-ioperm.obj -MD -MP -MF $(DEPDIR)/strace-ioperm.Tpo -c -o strace-ioperm.obj `if test -f 'ioperm.c'; then $(CYGPATH_W) 'ioperm.c'; else $(CYGPATH_W) '$(srcdir)/ioperm.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-ioperm.Tpo $(DEPDIR)/strace-ioperm.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ioperm.c' object='strace-ioperm.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-iopl.obj: iopl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-iopl.obj -MD -MP -MF $(DEPDIR)/libstrace_a-iopl.Tpo -c -o libstrace_a-iopl.obj `if test -f 'iopl.c'; then $(CYGPATH_W) 'iopl.c'; else $(CYGPATH_W) '$(srcdir)/iopl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-iopl.Tpo $(DEPDIR)/libstrace_a-iopl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iopl.c' object='libstrace_a-iopl.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-ioperm.obj `if test -f 'ioperm.c'; then $(CYGPATH_W) 'ioperm.c'; else $(CYGPATH_W) '$(srcdir)/ioperm.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-iopl.obj `if test -f 'iopl.c'; then $(CYGPATH_W) 'iopl.c'; else $(CYGPATH_W) '$(srcdir)/iopl.c'; fi` -strace-iopl.o: iopl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-iopl.o -MD -MP -MF $(DEPDIR)/strace-iopl.Tpo -c -o strace-iopl.o `test -f 'iopl.c' || echo '$(srcdir)/'`iopl.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-iopl.Tpo $(DEPDIR)/strace-iopl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iopl.c' object='strace-iopl.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ioprio.o: ioprio.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ioprio.o -MD -MP -MF $(DEPDIR)/libstrace_a-ioprio.Tpo -c -o libstrace_a-ioprio.o `test -f 'ioprio.c' || echo '$(srcdir)/'`ioprio.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ioprio.Tpo $(DEPDIR)/libstrace_a-ioprio.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ioprio.c' object='libstrace_a-ioprio.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-iopl.o `test -f 'iopl.c' || echo '$(srcdir)/'`iopl.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ioprio.o `test -f 'ioprio.c' || echo '$(srcdir)/'`ioprio.c -strace-iopl.obj: iopl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-iopl.obj -MD -MP -MF $(DEPDIR)/strace-iopl.Tpo -c -o strace-iopl.obj `if test -f 'iopl.c'; then $(CYGPATH_W) 'iopl.c'; else $(CYGPATH_W) '$(srcdir)/iopl.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-iopl.Tpo $(DEPDIR)/strace-iopl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iopl.c' object='strace-iopl.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ioprio.obj: ioprio.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ioprio.obj -MD -MP -MF $(DEPDIR)/libstrace_a-ioprio.Tpo -c -o libstrace_a-ioprio.obj `if test -f 'ioprio.c'; then $(CYGPATH_W) 'ioprio.c'; else $(CYGPATH_W) '$(srcdir)/ioprio.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ioprio.Tpo $(DEPDIR)/libstrace_a-ioprio.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ioprio.c' object='libstrace_a-ioprio.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-iopl.obj `if test -f 'iopl.c'; then $(CYGPATH_W) 'iopl.c'; else $(CYGPATH_W) '$(srcdir)/iopl.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ioprio.obj `if test -f 'ioprio.c'; then $(CYGPATH_W) 'ioprio.c'; else $(CYGPATH_W) '$(srcdir)/ioprio.c'; fi` -strace-ioprio.o: ioprio.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-ioprio.o -MD -MP -MF $(DEPDIR)/strace-ioprio.Tpo -c -o strace-ioprio.o `test -f 'ioprio.c' || echo '$(srcdir)/'`ioprio.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-ioprio.Tpo $(DEPDIR)/strace-ioprio.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ioprio.c' object='strace-ioprio.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ipc.o: ipc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ipc.o -MD -MP -MF $(DEPDIR)/libstrace_a-ipc.Tpo -c -o libstrace_a-ipc.o `test -f 'ipc.c' || echo '$(srcdir)/'`ipc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ipc.Tpo $(DEPDIR)/libstrace_a-ipc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc.c' object='libstrace_a-ipc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-ioprio.o `test -f 'ioprio.c' || echo '$(srcdir)/'`ioprio.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ipc.o `test -f 'ipc.c' || echo '$(srcdir)/'`ipc.c -strace-ioprio.obj: ioprio.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-ioprio.obj -MD -MP -MF $(DEPDIR)/strace-ioprio.Tpo -c -o strace-ioprio.obj `if test -f 'ioprio.c'; then $(CYGPATH_W) 'ioprio.c'; else $(CYGPATH_W) '$(srcdir)/ioprio.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-ioprio.Tpo $(DEPDIR)/strace-ioprio.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ioprio.c' object='strace-ioprio.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ipc.obj: ipc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ipc.obj -MD -MP -MF $(DEPDIR)/libstrace_a-ipc.Tpo -c -o libstrace_a-ipc.obj `if test -f 'ipc.c'; then $(CYGPATH_W) 'ipc.c'; else $(CYGPATH_W) '$(srcdir)/ipc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ipc.Tpo $(DEPDIR)/libstrace_a-ipc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc.c' object='libstrace_a-ipc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-ioprio.obj `if test -f 'ioprio.c'; then $(CYGPATH_W) 'ioprio.c'; else $(CYGPATH_W) '$(srcdir)/ioprio.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ipc.obj `if test -f 'ipc.c'; then $(CYGPATH_W) 'ipc.c'; else $(CYGPATH_W) '$(srcdir)/ipc.c'; fi` -strace-ipc_msg.o: ipc_msg.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-ipc_msg.o -MD -MP -MF $(DEPDIR)/strace-ipc_msg.Tpo -c -o strace-ipc_msg.o `test -f 'ipc_msg.c' || echo '$(srcdir)/'`ipc_msg.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-ipc_msg.Tpo $(DEPDIR)/strace-ipc_msg.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc_msg.c' object='strace-ipc_msg.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ipc_msg.o: ipc_msg.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ipc_msg.o -MD -MP -MF $(DEPDIR)/libstrace_a-ipc_msg.Tpo -c -o libstrace_a-ipc_msg.o `test -f 'ipc_msg.c' || echo '$(srcdir)/'`ipc_msg.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ipc_msg.Tpo $(DEPDIR)/libstrace_a-ipc_msg.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc_msg.c' object='libstrace_a-ipc_msg.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-ipc_msg.o `test -f 'ipc_msg.c' || echo '$(srcdir)/'`ipc_msg.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ipc_msg.o `test -f 'ipc_msg.c' || echo '$(srcdir)/'`ipc_msg.c -strace-ipc_msg.obj: ipc_msg.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-ipc_msg.obj -MD -MP -MF $(DEPDIR)/strace-ipc_msg.Tpo -c -o strace-ipc_msg.obj `if test -f 'ipc_msg.c'; then $(CYGPATH_W) 'ipc_msg.c'; else $(CYGPATH_W) '$(srcdir)/ipc_msg.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-ipc_msg.Tpo $(DEPDIR)/strace-ipc_msg.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc_msg.c' object='strace-ipc_msg.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ipc_msg.obj: ipc_msg.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ipc_msg.obj -MD -MP -MF $(DEPDIR)/libstrace_a-ipc_msg.Tpo -c -o libstrace_a-ipc_msg.obj `if test -f 'ipc_msg.c'; then $(CYGPATH_W) 'ipc_msg.c'; else $(CYGPATH_W) '$(srcdir)/ipc_msg.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ipc_msg.Tpo $(DEPDIR)/libstrace_a-ipc_msg.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc_msg.c' object='libstrace_a-ipc_msg.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-ipc_msg.obj `if test -f 'ipc_msg.c'; then $(CYGPATH_W) 'ipc_msg.c'; else $(CYGPATH_W) '$(srcdir)/ipc_msg.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ipc_msg.obj `if test -f 'ipc_msg.c'; then $(CYGPATH_W) 'ipc_msg.c'; else $(CYGPATH_W) '$(srcdir)/ipc_msg.c'; fi` -strace-ipc_msgctl.o: ipc_msgctl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-ipc_msgctl.o -MD -MP -MF $(DEPDIR)/strace-ipc_msgctl.Tpo -c -o strace-ipc_msgctl.o `test -f 'ipc_msgctl.c' || echo '$(srcdir)/'`ipc_msgctl.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-ipc_msgctl.Tpo $(DEPDIR)/strace-ipc_msgctl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc_msgctl.c' object='strace-ipc_msgctl.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ipc_msgctl.o: ipc_msgctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ipc_msgctl.o -MD -MP -MF $(DEPDIR)/libstrace_a-ipc_msgctl.Tpo -c -o libstrace_a-ipc_msgctl.o `test -f 'ipc_msgctl.c' || echo '$(srcdir)/'`ipc_msgctl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ipc_msgctl.Tpo $(DEPDIR)/libstrace_a-ipc_msgctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc_msgctl.c' object='libstrace_a-ipc_msgctl.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-ipc_msgctl.o `test -f 'ipc_msgctl.c' || echo '$(srcdir)/'`ipc_msgctl.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ipc_msgctl.o `test -f 'ipc_msgctl.c' || echo '$(srcdir)/'`ipc_msgctl.c -strace-ipc_msgctl.obj: ipc_msgctl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-ipc_msgctl.obj -MD -MP -MF $(DEPDIR)/strace-ipc_msgctl.Tpo -c -o strace-ipc_msgctl.obj `if test -f 'ipc_msgctl.c'; then $(CYGPATH_W) 'ipc_msgctl.c'; else $(CYGPATH_W) '$(srcdir)/ipc_msgctl.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-ipc_msgctl.Tpo $(DEPDIR)/strace-ipc_msgctl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc_msgctl.c' object='strace-ipc_msgctl.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ipc_msgctl.obj: ipc_msgctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ipc_msgctl.obj -MD -MP -MF $(DEPDIR)/libstrace_a-ipc_msgctl.Tpo -c -o libstrace_a-ipc_msgctl.obj `if test -f 'ipc_msgctl.c'; then $(CYGPATH_W) 'ipc_msgctl.c'; else $(CYGPATH_W) '$(srcdir)/ipc_msgctl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ipc_msgctl.Tpo $(DEPDIR)/libstrace_a-ipc_msgctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc_msgctl.c' object='libstrace_a-ipc_msgctl.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-ipc_msgctl.obj `if test -f 'ipc_msgctl.c'; then $(CYGPATH_W) 'ipc_msgctl.c'; else $(CYGPATH_W) '$(srcdir)/ipc_msgctl.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ipc_msgctl.obj `if test -f 'ipc_msgctl.c'; then $(CYGPATH_W) 'ipc_msgctl.c'; else $(CYGPATH_W) '$(srcdir)/ipc_msgctl.c'; fi` -strace-ipc_sem.o: ipc_sem.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-ipc_sem.o -MD -MP -MF $(DEPDIR)/strace-ipc_sem.Tpo -c -o strace-ipc_sem.o `test -f 'ipc_sem.c' || echo '$(srcdir)/'`ipc_sem.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-ipc_sem.Tpo $(DEPDIR)/strace-ipc_sem.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc_sem.c' object='strace-ipc_sem.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ipc_sem.o: ipc_sem.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ipc_sem.o -MD -MP -MF $(DEPDIR)/libstrace_a-ipc_sem.Tpo -c -o libstrace_a-ipc_sem.o `test -f 'ipc_sem.c' || echo '$(srcdir)/'`ipc_sem.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ipc_sem.Tpo $(DEPDIR)/libstrace_a-ipc_sem.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc_sem.c' object='libstrace_a-ipc_sem.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-ipc_sem.o `test -f 'ipc_sem.c' || echo '$(srcdir)/'`ipc_sem.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ipc_sem.o `test -f 'ipc_sem.c' || echo '$(srcdir)/'`ipc_sem.c -strace-ipc_sem.obj: ipc_sem.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-ipc_sem.obj -MD -MP -MF $(DEPDIR)/strace-ipc_sem.Tpo -c -o strace-ipc_sem.obj `if test -f 'ipc_sem.c'; then $(CYGPATH_W) 'ipc_sem.c'; else $(CYGPATH_W) '$(srcdir)/ipc_sem.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-ipc_sem.Tpo $(DEPDIR)/strace-ipc_sem.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc_sem.c' object='strace-ipc_sem.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ipc_sem.obj: ipc_sem.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ipc_sem.obj -MD -MP -MF $(DEPDIR)/libstrace_a-ipc_sem.Tpo -c -o libstrace_a-ipc_sem.obj `if test -f 'ipc_sem.c'; then $(CYGPATH_W) 'ipc_sem.c'; else $(CYGPATH_W) '$(srcdir)/ipc_sem.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ipc_sem.Tpo $(DEPDIR)/libstrace_a-ipc_sem.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc_sem.c' object='libstrace_a-ipc_sem.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-ipc_sem.obj `if test -f 'ipc_sem.c'; then $(CYGPATH_W) 'ipc_sem.c'; else $(CYGPATH_W) '$(srcdir)/ipc_sem.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ipc_sem.obj `if test -f 'ipc_sem.c'; then $(CYGPATH_W) 'ipc_sem.c'; else $(CYGPATH_W) '$(srcdir)/ipc_sem.c'; fi` -strace-ipc_shm.o: ipc_shm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-ipc_shm.o -MD -MP -MF $(DEPDIR)/strace-ipc_shm.Tpo -c -o strace-ipc_shm.o `test -f 'ipc_shm.c' || echo '$(srcdir)/'`ipc_shm.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-ipc_shm.Tpo $(DEPDIR)/strace-ipc_shm.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc_shm.c' object='strace-ipc_shm.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ipc_semctl.o: ipc_semctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ipc_semctl.o -MD -MP -MF $(DEPDIR)/libstrace_a-ipc_semctl.Tpo -c -o libstrace_a-ipc_semctl.o `test -f 'ipc_semctl.c' || echo '$(srcdir)/'`ipc_semctl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ipc_semctl.Tpo $(DEPDIR)/libstrace_a-ipc_semctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc_semctl.c' object='libstrace_a-ipc_semctl.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-ipc_shm.o `test -f 'ipc_shm.c' || echo '$(srcdir)/'`ipc_shm.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ipc_semctl.o `test -f 'ipc_semctl.c' || echo '$(srcdir)/'`ipc_semctl.c -strace-ipc_shm.obj: ipc_shm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-ipc_shm.obj -MD -MP -MF $(DEPDIR)/strace-ipc_shm.Tpo -c -o strace-ipc_shm.obj `if test -f 'ipc_shm.c'; then $(CYGPATH_W) 'ipc_shm.c'; else $(CYGPATH_W) '$(srcdir)/ipc_shm.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-ipc_shm.Tpo $(DEPDIR)/strace-ipc_shm.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc_shm.c' object='strace-ipc_shm.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ipc_semctl.obj: ipc_semctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ipc_semctl.obj -MD -MP -MF $(DEPDIR)/libstrace_a-ipc_semctl.Tpo -c -o libstrace_a-ipc_semctl.obj `if test -f 'ipc_semctl.c'; then $(CYGPATH_W) 'ipc_semctl.c'; else $(CYGPATH_W) '$(srcdir)/ipc_semctl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ipc_semctl.Tpo $(DEPDIR)/libstrace_a-ipc_semctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc_semctl.c' object='libstrace_a-ipc_semctl.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-ipc_shm.obj `if test -f 'ipc_shm.c'; then $(CYGPATH_W) 'ipc_shm.c'; else $(CYGPATH_W) '$(srcdir)/ipc_shm.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ipc_semctl.obj `if test -f 'ipc_semctl.c'; then $(CYGPATH_W) 'ipc_semctl.c'; else $(CYGPATH_W) '$(srcdir)/ipc_semctl.c'; fi` -strace-ipc_shmctl.o: ipc_shmctl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-ipc_shmctl.o -MD -MP -MF $(DEPDIR)/strace-ipc_shmctl.Tpo -c -o strace-ipc_shmctl.o `test -f 'ipc_shmctl.c' || echo '$(srcdir)/'`ipc_shmctl.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-ipc_shmctl.Tpo $(DEPDIR)/strace-ipc_shmctl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc_shmctl.c' object='strace-ipc_shmctl.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ipc_shm.o: ipc_shm.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ipc_shm.o -MD -MP -MF $(DEPDIR)/libstrace_a-ipc_shm.Tpo -c -o libstrace_a-ipc_shm.o `test -f 'ipc_shm.c' || echo '$(srcdir)/'`ipc_shm.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ipc_shm.Tpo $(DEPDIR)/libstrace_a-ipc_shm.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc_shm.c' object='libstrace_a-ipc_shm.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-ipc_shmctl.o `test -f 'ipc_shmctl.c' || echo '$(srcdir)/'`ipc_shmctl.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ipc_shm.o `test -f 'ipc_shm.c' || echo '$(srcdir)/'`ipc_shm.c -strace-ipc_shmctl.obj: ipc_shmctl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-ipc_shmctl.obj -MD -MP -MF $(DEPDIR)/strace-ipc_shmctl.Tpo -c -o strace-ipc_shmctl.obj `if test -f 'ipc_shmctl.c'; then $(CYGPATH_W) 'ipc_shmctl.c'; else $(CYGPATH_W) '$(srcdir)/ipc_shmctl.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-ipc_shmctl.Tpo $(DEPDIR)/strace-ipc_shmctl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc_shmctl.c' object='strace-ipc_shmctl.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ipc_shm.obj: ipc_shm.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ipc_shm.obj -MD -MP -MF $(DEPDIR)/libstrace_a-ipc_shm.Tpo -c -o libstrace_a-ipc_shm.obj `if test -f 'ipc_shm.c'; then $(CYGPATH_W) 'ipc_shm.c'; else $(CYGPATH_W) '$(srcdir)/ipc_shm.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ipc_shm.Tpo $(DEPDIR)/libstrace_a-ipc_shm.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc_shm.c' object='libstrace_a-ipc_shm.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-ipc_shmctl.obj `if test -f 'ipc_shmctl.c'; then $(CYGPATH_W) 'ipc_shmctl.c'; else $(CYGPATH_W) '$(srcdir)/ipc_shmctl.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ipc_shm.obj `if test -f 'ipc_shm.c'; then $(CYGPATH_W) 'ipc_shm.c'; else $(CYGPATH_W) '$(srcdir)/ipc_shm.c'; fi` -strace-kcmp.o: kcmp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-kcmp.o -MD -MP -MF $(DEPDIR)/strace-kcmp.Tpo -c -o strace-kcmp.o `test -f 'kcmp.c' || echo '$(srcdir)/'`kcmp.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-kcmp.Tpo $(DEPDIR)/strace-kcmp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kcmp.c' object='strace-kcmp.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ipc_shmctl.o: ipc_shmctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ipc_shmctl.o -MD -MP -MF $(DEPDIR)/libstrace_a-ipc_shmctl.Tpo -c -o libstrace_a-ipc_shmctl.o `test -f 'ipc_shmctl.c' || echo '$(srcdir)/'`ipc_shmctl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ipc_shmctl.Tpo $(DEPDIR)/libstrace_a-ipc_shmctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc_shmctl.c' object='libstrace_a-ipc_shmctl.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-kcmp.o `test -f 'kcmp.c' || echo '$(srcdir)/'`kcmp.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ipc_shmctl.o `test -f 'ipc_shmctl.c' || echo '$(srcdir)/'`ipc_shmctl.c -strace-kcmp.obj: kcmp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-kcmp.obj -MD -MP -MF $(DEPDIR)/strace-kcmp.Tpo -c -o strace-kcmp.obj `if test -f 'kcmp.c'; then $(CYGPATH_W) 'kcmp.c'; else $(CYGPATH_W) '$(srcdir)/kcmp.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-kcmp.Tpo $(DEPDIR)/strace-kcmp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kcmp.c' object='strace-kcmp.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ipc_shmctl.obj: ipc_shmctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ipc_shmctl.obj -MD -MP -MF $(DEPDIR)/libstrace_a-ipc_shmctl.Tpo -c -o libstrace_a-ipc_shmctl.obj `if test -f 'ipc_shmctl.c'; then $(CYGPATH_W) 'ipc_shmctl.c'; else $(CYGPATH_W) '$(srcdir)/ipc_shmctl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ipc_shmctl.Tpo $(DEPDIR)/libstrace_a-ipc_shmctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ipc_shmctl.c' object='libstrace_a-ipc_shmctl.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-kcmp.obj `if test -f 'kcmp.c'; then $(CYGPATH_W) 'kcmp.c'; else $(CYGPATH_W) '$(srcdir)/kcmp.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ipc_shmctl.obj `if test -f 'ipc_shmctl.c'; then $(CYGPATH_W) 'ipc_shmctl.c'; else $(CYGPATH_W) '$(srcdir)/ipc_shmctl.c'; fi` -strace-kexec.o: kexec.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-kexec.o -MD -MP -MF $(DEPDIR)/strace-kexec.Tpo -c -o strace-kexec.o `test -f 'kexec.c' || echo '$(srcdir)/'`kexec.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-kexec.Tpo $(DEPDIR)/strace-kexec.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kexec.c' object='strace-kexec.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-kcmp.o: kcmp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-kcmp.o -MD -MP -MF $(DEPDIR)/libstrace_a-kcmp.Tpo -c -o libstrace_a-kcmp.o `test -f 'kcmp.c' || echo '$(srcdir)/'`kcmp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-kcmp.Tpo $(DEPDIR)/libstrace_a-kcmp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kcmp.c' object='libstrace_a-kcmp.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-kexec.o `test -f 'kexec.c' || echo '$(srcdir)/'`kexec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-kcmp.o `test -f 'kcmp.c' || echo '$(srcdir)/'`kcmp.c -strace-kexec.obj: kexec.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-kexec.obj -MD -MP -MF $(DEPDIR)/strace-kexec.Tpo -c -o strace-kexec.obj `if test -f 'kexec.c'; then $(CYGPATH_W) 'kexec.c'; else $(CYGPATH_W) '$(srcdir)/kexec.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-kexec.Tpo $(DEPDIR)/strace-kexec.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kexec.c' object='strace-kexec.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-kcmp.obj: kcmp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-kcmp.obj -MD -MP -MF $(DEPDIR)/libstrace_a-kcmp.Tpo -c -o libstrace_a-kcmp.obj `if test -f 'kcmp.c'; then $(CYGPATH_W) 'kcmp.c'; else $(CYGPATH_W) '$(srcdir)/kcmp.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-kcmp.Tpo $(DEPDIR)/libstrace_a-kcmp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kcmp.c' object='libstrace_a-kcmp.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-kexec.obj `if test -f 'kexec.c'; then $(CYGPATH_W) 'kexec.c'; else $(CYGPATH_W) '$(srcdir)/kexec.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-kcmp.obj `if test -f 'kcmp.c'; then $(CYGPATH_W) 'kcmp.c'; else $(CYGPATH_W) '$(srcdir)/kcmp.c'; fi` -strace-keyctl.o: keyctl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-keyctl.o -MD -MP -MF $(DEPDIR)/strace-keyctl.Tpo -c -o strace-keyctl.o `test -f 'keyctl.c' || echo '$(srcdir)/'`keyctl.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-keyctl.Tpo $(DEPDIR)/strace-keyctl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='keyctl.c' object='strace-keyctl.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-kexec.o: kexec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-kexec.o -MD -MP -MF $(DEPDIR)/libstrace_a-kexec.Tpo -c -o libstrace_a-kexec.o `test -f 'kexec.c' || echo '$(srcdir)/'`kexec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-kexec.Tpo $(DEPDIR)/libstrace_a-kexec.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kexec.c' object='libstrace_a-kexec.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-keyctl.o `test -f 'keyctl.c' || echo '$(srcdir)/'`keyctl.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-kexec.o `test -f 'kexec.c' || echo '$(srcdir)/'`kexec.c -strace-keyctl.obj: keyctl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-keyctl.obj -MD -MP -MF $(DEPDIR)/strace-keyctl.Tpo -c -o strace-keyctl.obj `if test -f 'keyctl.c'; then $(CYGPATH_W) 'keyctl.c'; else $(CYGPATH_W) '$(srcdir)/keyctl.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-keyctl.Tpo $(DEPDIR)/strace-keyctl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='keyctl.c' object='strace-keyctl.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-kexec.obj: kexec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-kexec.obj -MD -MP -MF $(DEPDIR)/libstrace_a-kexec.Tpo -c -o libstrace_a-kexec.obj `if test -f 'kexec.c'; then $(CYGPATH_W) 'kexec.c'; else $(CYGPATH_W) '$(srcdir)/kexec.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-kexec.Tpo $(DEPDIR)/libstrace_a-kexec.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kexec.c' object='libstrace_a-kexec.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-keyctl.obj `if test -f 'keyctl.c'; then $(CYGPATH_W) 'keyctl.c'; else $(CYGPATH_W) '$(srcdir)/keyctl.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-kexec.obj `if test -f 'kexec.c'; then $(CYGPATH_W) 'kexec.c'; else $(CYGPATH_W) '$(srcdir)/kexec.c'; fi` -strace-kvm.o: kvm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-kvm.o -MD -MP -MF $(DEPDIR)/strace-kvm.Tpo -c -o strace-kvm.o `test -f 'kvm.c' || echo '$(srcdir)/'`kvm.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-kvm.Tpo $(DEPDIR)/strace-kvm.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kvm.c' object='strace-kvm.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-keyctl.o: keyctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-keyctl.o -MD -MP -MF $(DEPDIR)/libstrace_a-keyctl.Tpo -c -o libstrace_a-keyctl.o `test -f 'keyctl.c' || echo '$(srcdir)/'`keyctl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-keyctl.Tpo $(DEPDIR)/libstrace_a-keyctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='keyctl.c' object='libstrace_a-keyctl.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-kvm.o `test -f 'kvm.c' || echo '$(srcdir)/'`kvm.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-keyctl.o `test -f 'keyctl.c' || echo '$(srcdir)/'`keyctl.c -strace-kvm.obj: kvm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-kvm.obj -MD -MP -MF $(DEPDIR)/strace-kvm.Tpo -c -o strace-kvm.obj `if test -f 'kvm.c'; then $(CYGPATH_W) 'kvm.c'; else $(CYGPATH_W) '$(srcdir)/kvm.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-kvm.Tpo $(DEPDIR)/strace-kvm.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kvm.c' object='strace-kvm.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-keyctl.obj: keyctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-keyctl.obj -MD -MP -MF $(DEPDIR)/libstrace_a-keyctl.Tpo -c -o libstrace_a-keyctl.obj `if test -f 'keyctl.c'; then $(CYGPATH_W) 'keyctl.c'; else $(CYGPATH_W) '$(srcdir)/keyctl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-keyctl.Tpo $(DEPDIR)/libstrace_a-keyctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='keyctl.c' object='libstrace_a-keyctl.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-kvm.obj `if test -f 'kvm.c'; then $(CYGPATH_W) 'kvm.c'; else $(CYGPATH_W) '$(srcdir)/kvm.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-keyctl.obj `if test -f 'keyctl.c'; then $(CYGPATH_W) 'keyctl.c'; else $(CYGPATH_W) '$(srcdir)/keyctl.c'; fi` -strace-ldt.o: ldt.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-ldt.o -MD -MP -MF $(DEPDIR)/strace-ldt.Tpo -c -o strace-ldt.o `test -f 'ldt.c' || echo '$(srcdir)/'`ldt.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-ldt.Tpo $(DEPDIR)/strace-ldt.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ldt.c' object='strace-ldt.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-kvm.o: kvm.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-kvm.o -MD -MP -MF $(DEPDIR)/libstrace_a-kvm.Tpo -c -o libstrace_a-kvm.o `test -f 'kvm.c' || echo '$(srcdir)/'`kvm.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-kvm.Tpo $(DEPDIR)/libstrace_a-kvm.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kvm.c' object='libstrace_a-kvm.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-ldt.o `test -f 'ldt.c' || echo '$(srcdir)/'`ldt.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-kvm.o `test -f 'kvm.c' || echo '$(srcdir)/'`kvm.c -strace-ldt.obj: ldt.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-ldt.obj -MD -MP -MF $(DEPDIR)/strace-ldt.Tpo -c -o strace-ldt.obj `if test -f 'ldt.c'; then $(CYGPATH_W) 'ldt.c'; else $(CYGPATH_W) '$(srcdir)/ldt.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-ldt.Tpo $(DEPDIR)/strace-ldt.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ldt.c' object='strace-ldt.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-kvm.obj: kvm.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-kvm.obj -MD -MP -MF $(DEPDIR)/libstrace_a-kvm.Tpo -c -o libstrace_a-kvm.obj `if test -f 'kvm.c'; then $(CYGPATH_W) 'kvm.c'; else $(CYGPATH_W) '$(srcdir)/kvm.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-kvm.Tpo $(DEPDIR)/libstrace_a-kvm.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kvm.c' object='libstrace_a-kvm.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-ldt.obj `if test -f 'ldt.c'; then $(CYGPATH_W) 'ldt.c'; else $(CYGPATH_W) '$(srcdir)/ldt.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-kvm.obj `if test -f 'kvm.c'; then $(CYGPATH_W) 'kvm.c'; else $(CYGPATH_W) '$(srcdir)/kvm.c'; fi` -strace-link.o: link.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-link.o -MD -MP -MF $(DEPDIR)/strace-link.Tpo -c -o strace-link.o `test -f 'link.c' || echo '$(srcdir)/'`link.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-link.Tpo $(DEPDIR)/strace-link.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='link.c' object='strace-link.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ldt.o: ldt.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ldt.o -MD -MP -MF $(DEPDIR)/libstrace_a-ldt.Tpo -c -o libstrace_a-ldt.o `test -f 'ldt.c' || echo '$(srcdir)/'`ldt.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ldt.Tpo $(DEPDIR)/libstrace_a-ldt.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ldt.c' object='libstrace_a-ldt.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-link.o `test -f 'link.c' || echo '$(srcdir)/'`link.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ldt.o `test -f 'ldt.c' || echo '$(srcdir)/'`ldt.c -strace-link.obj: link.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-link.obj -MD -MP -MF $(DEPDIR)/strace-link.Tpo -c -o strace-link.obj `if test -f 'link.c'; then $(CYGPATH_W) 'link.c'; else $(CYGPATH_W) '$(srcdir)/link.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-link.Tpo $(DEPDIR)/strace-link.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='link.c' object='strace-link.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ldt.obj: ldt.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ldt.obj -MD -MP -MF $(DEPDIR)/libstrace_a-ldt.Tpo -c -o libstrace_a-ldt.obj `if test -f 'ldt.c'; then $(CYGPATH_W) 'ldt.c'; else $(CYGPATH_W) '$(srcdir)/ldt.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ldt.Tpo $(DEPDIR)/libstrace_a-ldt.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ldt.c' object='libstrace_a-ldt.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-link.obj `if test -f 'link.c'; then $(CYGPATH_W) 'link.c'; else $(CYGPATH_W) '$(srcdir)/link.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ldt.obj `if test -f 'ldt.c'; then $(CYGPATH_W) 'ldt.c'; else $(CYGPATH_W) '$(srcdir)/ldt.c'; fi` -strace-listen.o: listen.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-listen.o -MD -MP -MF $(DEPDIR)/strace-listen.Tpo -c -o strace-listen.o `test -f 'listen.c' || echo '$(srcdir)/'`listen.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-listen.Tpo $(DEPDIR)/strace-listen.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='listen.c' object='strace-listen.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-link.o: link.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-link.o -MD -MP -MF $(DEPDIR)/libstrace_a-link.Tpo -c -o libstrace_a-link.o `test -f 'link.c' || echo '$(srcdir)/'`link.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-link.Tpo $(DEPDIR)/libstrace_a-link.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='link.c' object='libstrace_a-link.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-listen.o `test -f 'listen.c' || echo '$(srcdir)/'`listen.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-link.o `test -f 'link.c' || echo '$(srcdir)/'`link.c -strace-listen.obj: listen.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-listen.obj -MD -MP -MF $(DEPDIR)/strace-listen.Tpo -c -o strace-listen.obj `if test -f 'listen.c'; then $(CYGPATH_W) 'listen.c'; else $(CYGPATH_W) '$(srcdir)/listen.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-listen.Tpo $(DEPDIR)/strace-listen.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='listen.c' object='strace-listen.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-link.obj: link.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-link.obj -MD -MP -MF $(DEPDIR)/libstrace_a-link.Tpo -c -o libstrace_a-link.obj `if test -f 'link.c'; then $(CYGPATH_W) 'link.c'; else $(CYGPATH_W) '$(srcdir)/link.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-link.Tpo $(DEPDIR)/libstrace_a-link.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='link.c' object='libstrace_a-link.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-listen.obj `if test -f 'listen.c'; then $(CYGPATH_W) 'listen.c'; else $(CYGPATH_W) '$(srcdir)/listen.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-link.obj `if test -f 'link.c'; then $(CYGPATH_W) 'link.c'; else $(CYGPATH_W) '$(srcdir)/link.c'; fi` -strace-lookup_dcookie.o: lookup_dcookie.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-lookup_dcookie.o -MD -MP -MF $(DEPDIR)/strace-lookup_dcookie.Tpo -c -o strace-lookup_dcookie.o `test -f 'lookup_dcookie.c' || echo '$(srcdir)/'`lookup_dcookie.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-lookup_dcookie.Tpo $(DEPDIR)/strace-lookup_dcookie.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lookup_dcookie.c' object='strace-lookup_dcookie.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-listen.o: listen.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-listen.o -MD -MP -MF $(DEPDIR)/libstrace_a-listen.Tpo -c -o libstrace_a-listen.o `test -f 'listen.c' || echo '$(srcdir)/'`listen.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-listen.Tpo $(DEPDIR)/libstrace_a-listen.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='listen.c' object='libstrace_a-listen.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-lookup_dcookie.o `test -f 'lookup_dcookie.c' || echo '$(srcdir)/'`lookup_dcookie.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-listen.o `test -f 'listen.c' || echo '$(srcdir)/'`listen.c -strace-lookup_dcookie.obj: lookup_dcookie.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-lookup_dcookie.obj -MD -MP -MF $(DEPDIR)/strace-lookup_dcookie.Tpo -c -o strace-lookup_dcookie.obj `if test -f 'lookup_dcookie.c'; then $(CYGPATH_W) 'lookup_dcookie.c'; else $(CYGPATH_W) '$(srcdir)/lookup_dcookie.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-lookup_dcookie.Tpo $(DEPDIR)/strace-lookup_dcookie.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lookup_dcookie.c' object='strace-lookup_dcookie.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-listen.obj: listen.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-listen.obj -MD -MP -MF $(DEPDIR)/libstrace_a-listen.Tpo -c -o libstrace_a-listen.obj `if test -f 'listen.c'; then $(CYGPATH_W) 'listen.c'; else $(CYGPATH_W) '$(srcdir)/listen.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-listen.Tpo $(DEPDIR)/libstrace_a-listen.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='listen.c' object='libstrace_a-listen.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-lookup_dcookie.obj `if test -f 'lookup_dcookie.c'; then $(CYGPATH_W) 'lookup_dcookie.c'; else $(CYGPATH_W) '$(srcdir)/lookup_dcookie.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-listen.obj `if test -f 'listen.c'; then $(CYGPATH_W) 'listen.c'; else $(CYGPATH_W) '$(srcdir)/listen.c'; fi` -strace-loop.o: loop.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-loop.o -MD -MP -MF $(DEPDIR)/strace-loop.Tpo -c -o strace-loop.o `test -f 'loop.c' || echo '$(srcdir)/'`loop.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-loop.Tpo $(DEPDIR)/strace-loop.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='loop.c' object='strace-loop.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-lookup_dcookie.o: lookup_dcookie.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-lookup_dcookie.o -MD -MP -MF $(DEPDIR)/libstrace_a-lookup_dcookie.Tpo -c -o libstrace_a-lookup_dcookie.o `test -f 'lookup_dcookie.c' || echo '$(srcdir)/'`lookup_dcookie.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-lookup_dcookie.Tpo $(DEPDIR)/libstrace_a-lookup_dcookie.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lookup_dcookie.c' object='libstrace_a-lookup_dcookie.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-loop.o `test -f 'loop.c' || echo '$(srcdir)/'`loop.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-lookup_dcookie.o `test -f 'lookup_dcookie.c' || echo '$(srcdir)/'`lookup_dcookie.c -strace-loop.obj: loop.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-loop.obj -MD -MP -MF $(DEPDIR)/strace-loop.Tpo -c -o strace-loop.obj `if test -f 'loop.c'; then $(CYGPATH_W) 'loop.c'; else $(CYGPATH_W) '$(srcdir)/loop.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-loop.Tpo $(DEPDIR)/strace-loop.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='loop.c' object='strace-loop.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-lookup_dcookie.obj: lookup_dcookie.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-lookup_dcookie.obj -MD -MP -MF $(DEPDIR)/libstrace_a-lookup_dcookie.Tpo -c -o libstrace_a-lookup_dcookie.obj `if test -f 'lookup_dcookie.c'; then $(CYGPATH_W) 'lookup_dcookie.c'; else $(CYGPATH_W) '$(srcdir)/lookup_dcookie.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-lookup_dcookie.Tpo $(DEPDIR)/libstrace_a-lookup_dcookie.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lookup_dcookie.c' object='libstrace_a-lookup_dcookie.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-loop.obj `if test -f 'loop.c'; then $(CYGPATH_W) 'loop.c'; else $(CYGPATH_W) '$(srcdir)/loop.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-lookup_dcookie.obj `if test -f 'lookup_dcookie.c'; then $(CYGPATH_W) 'lookup_dcookie.c'; else $(CYGPATH_W) '$(srcdir)/lookup_dcookie.c'; fi` -strace-lseek.o: lseek.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-lseek.o -MD -MP -MF $(DEPDIR)/strace-lseek.Tpo -c -o strace-lseek.o `test -f 'lseek.c' || echo '$(srcdir)/'`lseek.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-lseek.Tpo $(DEPDIR)/strace-lseek.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lseek.c' object='strace-lseek.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-loop.o: loop.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-loop.o -MD -MP -MF $(DEPDIR)/libstrace_a-loop.Tpo -c -o libstrace_a-loop.o `test -f 'loop.c' || echo '$(srcdir)/'`loop.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-loop.Tpo $(DEPDIR)/libstrace_a-loop.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='loop.c' object='libstrace_a-loop.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-lseek.o `test -f 'lseek.c' || echo '$(srcdir)/'`lseek.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-loop.o `test -f 'loop.c' || echo '$(srcdir)/'`loop.c -strace-lseek.obj: lseek.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-lseek.obj -MD -MP -MF $(DEPDIR)/strace-lseek.Tpo -c -o strace-lseek.obj `if test -f 'lseek.c'; then $(CYGPATH_W) 'lseek.c'; else $(CYGPATH_W) '$(srcdir)/lseek.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-lseek.Tpo $(DEPDIR)/strace-lseek.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lseek.c' object='strace-lseek.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-loop.obj: loop.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-loop.obj -MD -MP -MF $(DEPDIR)/libstrace_a-loop.Tpo -c -o libstrace_a-loop.obj `if test -f 'loop.c'; then $(CYGPATH_W) 'loop.c'; else $(CYGPATH_W) '$(srcdir)/loop.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-loop.Tpo $(DEPDIR)/libstrace_a-loop.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='loop.c' object='libstrace_a-loop.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-lseek.obj `if test -f 'lseek.c'; then $(CYGPATH_W) 'lseek.c'; else $(CYGPATH_W) '$(srcdir)/lseek.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-loop.obj `if test -f 'loop.c'; then $(CYGPATH_W) 'loop.c'; else $(CYGPATH_W) '$(srcdir)/loop.c'; fi` -strace-mem.o: mem.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-mem.o -MD -MP -MF $(DEPDIR)/strace-mem.Tpo -c -o strace-mem.o `test -f 'mem.c' || echo '$(srcdir)/'`mem.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-mem.Tpo $(DEPDIR)/strace-mem.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mem.c' object='strace-mem.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-lseek.o: lseek.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-lseek.o -MD -MP -MF $(DEPDIR)/libstrace_a-lseek.Tpo -c -o libstrace_a-lseek.o `test -f 'lseek.c' || echo '$(srcdir)/'`lseek.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-lseek.Tpo $(DEPDIR)/libstrace_a-lseek.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lseek.c' object='libstrace_a-lseek.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-mem.o `test -f 'mem.c' || echo '$(srcdir)/'`mem.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-lseek.o `test -f 'lseek.c' || echo '$(srcdir)/'`lseek.c -strace-mem.obj: mem.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-mem.obj -MD -MP -MF $(DEPDIR)/strace-mem.Tpo -c -o strace-mem.obj `if test -f 'mem.c'; then $(CYGPATH_W) 'mem.c'; else $(CYGPATH_W) '$(srcdir)/mem.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-mem.Tpo $(DEPDIR)/strace-mem.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mem.c' object='strace-mem.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-lseek.obj: lseek.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-lseek.obj -MD -MP -MF $(DEPDIR)/libstrace_a-lseek.Tpo -c -o libstrace_a-lseek.obj `if test -f 'lseek.c'; then $(CYGPATH_W) 'lseek.c'; else $(CYGPATH_W) '$(srcdir)/lseek.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-lseek.Tpo $(DEPDIR)/libstrace_a-lseek.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lseek.c' object='libstrace_a-lseek.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-mem.obj `if test -f 'mem.c'; then $(CYGPATH_W) 'mem.c'; else $(CYGPATH_W) '$(srcdir)/mem.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-lseek.obj `if test -f 'lseek.c'; then $(CYGPATH_W) 'lseek.c'; else $(CYGPATH_W) '$(srcdir)/lseek.c'; fi` -strace-membarrier.o: membarrier.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-membarrier.o -MD -MP -MF $(DEPDIR)/strace-membarrier.Tpo -c -o strace-membarrier.o `test -f 'membarrier.c' || echo '$(srcdir)/'`membarrier.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-membarrier.Tpo $(DEPDIR)/strace-membarrier.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='membarrier.c' object='strace-membarrier.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-mem.o: mem.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-mem.o -MD -MP -MF $(DEPDIR)/libstrace_a-mem.Tpo -c -o libstrace_a-mem.o `test -f 'mem.c' || echo '$(srcdir)/'`mem.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-mem.Tpo $(DEPDIR)/libstrace_a-mem.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mem.c' object='libstrace_a-mem.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-membarrier.o `test -f 'membarrier.c' || echo '$(srcdir)/'`membarrier.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-mem.o `test -f 'mem.c' || echo '$(srcdir)/'`mem.c -strace-membarrier.obj: membarrier.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-membarrier.obj -MD -MP -MF $(DEPDIR)/strace-membarrier.Tpo -c -o strace-membarrier.obj `if test -f 'membarrier.c'; then $(CYGPATH_W) 'membarrier.c'; else $(CYGPATH_W) '$(srcdir)/membarrier.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-membarrier.Tpo $(DEPDIR)/strace-membarrier.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='membarrier.c' object='strace-membarrier.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-mem.obj: mem.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-mem.obj -MD -MP -MF $(DEPDIR)/libstrace_a-mem.Tpo -c -o libstrace_a-mem.obj `if test -f 'mem.c'; then $(CYGPATH_W) 'mem.c'; else $(CYGPATH_W) '$(srcdir)/mem.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-mem.Tpo $(DEPDIR)/libstrace_a-mem.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mem.c' object='libstrace_a-mem.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-membarrier.obj `if test -f 'membarrier.c'; then $(CYGPATH_W) 'membarrier.c'; else $(CYGPATH_W) '$(srcdir)/membarrier.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-mem.obj `if test -f 'mem.c'; then $(CYGPATH_W) 'mem.c'; else $(CYGPATH_W) '$(srcdir)/mem.c'; fi` -strace-memfd_create.o: memfd_create.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-memfd_create.o -MD -MP -MF $(DEPDIR)/strace-memfd_create.Tpo -c -o strace-memfd_create.o `test -f 'memfd_create.c' || echo '$(srcdir)/'`memfd_create.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-memfd_create.Tpo $(DEPDIR)/strace-memfd_create.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='memfd_create.c' object='strace-memfd_create.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-membarrier.o: membarrier.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-membarrier.o -MD -MP -MF $(DEPDIR)/libstrace_a-membarrier.Tpo -c -o libstrace_a-membarrier.o `test -f 'membarrier.c' || echo '$(srcdir)/'`membarrier.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-membarrier.Tpo $(DEPDIR)/libstrace_a-membarrier.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='membarrier.c' object='libstrace_a-membarrier.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-memfd_create.o `test -f 'memfd_create.c' || echo '$(srcdir)/'`memfd_create.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-membarrier.o `test -f 'membarrier.c' || echo '$(srcdir)/'`membarrier.c -strace-memfd_create.obj: memfd_create.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-memfd_create.obj -MD -MP -MF $(DEPDIR)/strace-memfd_create.Tpo -c -o strace-memfd_create.obj `if test -f 'memfd_create.c'; then $(CYGPATH_W) 'memfd_create.c'; else $(CYGPATH_W) '$(srcdir)/memfd_create.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-memfd_create.Tpo $(DEPDIR)/strace-memfd_create.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='memfd_create.c' object='strace-memfd_create.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-membarrier.obj: membarrier.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-membarrier.obj -MD -MP -MF $(DEPDIR)/libstrace_a-membarrier.Tpo -c -o libstrace_a-membarrier.obj `if test -f 'membarrier.c'; then $(CYGPATH_W) 'membarrier.c'; else $(CYGPATH_W) '$(srcdir)/membarrier.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-membarrier.Tpo $(DEPDIR)/libstrace_a-membarrier.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='membarrier.c' object='libstrace_a-membarrier.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-memfd_create.obj `if test -f 'memfd_create.c'; then $(CYGPATH_W) 'memfd_create.c'; else $(CYGPATH_W) '$(srcdir)/memfd_create.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-membarrier.obj `if test -f 'membarrier.c'; then $(CYGPATH_W) 'membarrier.c'; else $(CYGPATH_W) '$(srcdir)/membarrier.c'; fi` -strace-mknod.o: mknod.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-mknod.o -MD -MP -MF $(DEPDIR)/strace-mknod.Tpo -c -o strace-mknod.o `test -f 'mknod.c' || echo '$(srcdir)/'`mknod.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-mknod.Tpo $(DEPDIR)/strace-mknod.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mknod.c' object='strace-mknod.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-memfd_create.o: memfd_create.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-memfd_create.o -MD -MP -MF $(DEPDIR)/libstrace_a-memfd_create.Tpo -c -o libstrace_a-memfd_create.o `test -f 'memfd_create.c' || echo '$(srcdir)/'`memfd_create.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-memfd_create.Tpo $(DEPDIR)/libstrace_a-memfd_create.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='memfd_create.c' object='libstrace_a-memfd_create.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-mknod.o `test -f 'mknod.c' || echo '$(srcdir)/'`mknod.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-memfd_create.o `test -f 'memfd_create.c' || echo '$(srcdir)/'`memfd_create.c -strace-mknod.obj: mknod.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-mknod.obj -MD -MP -MF $(DEPDIR)/strace-mknod.Tpo -c -o strace-mknod.obj `if test -f 'mknod.c'; then $(CYGPATH_W) 'mknod.c'; else $(CYGPATH_W) '$(srcdir)/mknod.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-mknod.Tpo $(DEPDIR)/strace-mknod.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mknod.c' object='strace-mknod.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-memfd_create.obj: memfd_create.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-memfd_create.obj -MD -MP -MF $(DEPDIR)/libstrace_a-memfd_create.Tpo -c -o libstrace_a-memfd_create.obj `if test -f 'memfd_create.c'; then $(CYGPATH_W) 'memfd_create.c'; else $(CYGPATH_W) '$(srcdir)/memfd_create.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-memfd_create.Tpo $(DEPDIR)/libstrace_a-memfd_create.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='memfd_create.c' object='libstrace_a-memfd_create.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-mknod.obj `if test -f 'mknod.c'; then $(CYGPATH_W) 'mknod.c'; else $(CYGPATH_W) '$(srcdir)/mknod.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-memfd_create.obj `if test -f 'memfd_create.c'; then $(CYGPATH_W) 'memfd_create.c'; else $(CYGPATH_W) '$(srcdir)/memfd_create.c'; fi` -strace-mmap_notify.o: mmap_notify.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-mmap_notify.o -MD -MP -MF $(DEPDIR)/strace-mmap_notify.Tpo -c -o strace-mmap_notify.o `test -f 'mmap_notify.c' || echo '$(srcdir)/'`mmap_notify.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-mmap_notify.Tpo $(DEPDIR)/strace-mmap_notify.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmap_notify.c' object='strace-mmap_notify.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-mknod.o: mknod.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-mknod.o -MD -MP -MF $(DEPDIR)/libstrace_a-mknod.Tpo -c -o libstrace_a-mknod.o `test -f 'mknod.c' || echo '$(srcdir)/'`mknod.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-mknod.Tpo $(DEPDIR)/libstrace_a-mknod.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mknod.c' object='libstrace_a-mknod.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-mmap_notify.o `test -f 'mmap_notify.c' || echo '$(srcdir)/'`mmap_notify.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-mknod.o `test -f 'mknod.c' || echo '$(srcdir)/'`mknod.c -strace-mmap_notify.obj: mmap_notify.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-mmap_notify.obj -MD -MP -MF $(DEPDIR)/strace-mmap_notify.Tpo -c -o strace-mmap_notify.obj `if test -f 'mmap_notify.c'; then $(CYGPATH_W) 'mmap_notify.c'; else $(CYGPATH_W) '$(srcdir)/mmap_notify.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-mmap_notify.Tpo $(DEPDIR)/strace-mmap_notify.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmap_notify.c' object='strace-mmap_notify.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-mknod.obj: mknod.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-mknod.obj -MD -MP -MF $(DEPDIR)/libstrace_a-mknod.Tpo -c -o libstrace_a-mknod.obj `if test -f 'mknod.c'; then $(CYGPATH_W) 'mknod.c'; else $(CYGPATH_W) '$(srcdir)/mknod.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-mknod.Tpo $(DEPDIR)/libstrace_a-mknod.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mknod.c' object='libstrace_a-mknod.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-mmap_notify.obj `if test -f 'mmap_notify.c'; then $(CYGPATH_W) 'mmap_notify.c'; else $(CYGPATH_W) '$(srcdir)/mmap_notify.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-mknod.obj `if test -f 'mknod.c'; then $(CYGPATH_W) 'mknod.c'; else $(CYGPATH_W) '$(srcdir)/mknod.c'; fi` -strace-mmsghdr.o: mmsghdr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-mmsghdr.o -MD -MP -MF $(DEPDIR)/strace-mmsghdr.Tpo -c -o strace-mmsghdr.o `test -f 'mmsghdr.c' || echo '$(srcdir)/'`mmsghdr.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-mmsghdr.Tpo $(DEPDIR)/strace-mmsghdr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmsghdr.c' object='strace-mmsghdr.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-mmap_cache.o: mmap_cache.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-mmap_cache.o -MD -MP -MF $(DEPDIR)/libstrace_a-mmap_cache.Tpo -c -o libstrace_a-mmap_cache.o `test -f 'mmap_cache.c' || echo '$(srcdir)/'`mmap_cache.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-mmap_cache.Tpo $(DEPDIR)/libstrace_a-mmap_cache.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmap_cache.c' object='libstrace_a-mmap_cache.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-mmsghdr.o `test -f 'mmsghdr.c' || echo '$(srcdir)/'`mmsghdr.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-mmap_cache.o `test -f 'mmap_cache.c' || echo '$(srcdir)/'`mmap_cache.c -strace-mmsghdr.obj: mmsghdr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-mmsghdr.obj -MD -MP -MF $(DEPDIR)/strace-mmsghdr.Tpo -c -o strace-mmsghdr.obj `if test -f 'mmsghdr.c'; then $(CYGPATH_W) 'mmsghdr.c'; else $(CYGPATH_W) '$(srcdir)/mmsghdr.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-mmsghdr.Tpo $(DEPDIR)/strace-mmsghdr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmsghdr.c' object='strace-mmsghdr.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-mmap_cache.obj: mmap_cache.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-mmap_cache.obj -MD -MP -MF $(DEPDIR)/libstrace_a-mmap_cache.Tpo -c -o libstrace_a-mmap_cache.obj `if test -f 'mmap_cache.c'; then $(CYGPATH_W) 'mmap_cache.c'; else $(CYGPATH_W) '$(srcdir)/mmap_cache.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-mmap_cache.Tpo $(DEPDIR)/libstrace_a-mmap_cache.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmap_cache.c' object='libstrace_a-mmap_cache.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-mmsghdr.obj `if test -f 'mmsghdr.c'; then $(CYGPATH_W) 'mmsghdr.c'; else $(CYGPATH_W) '$(srcdir)/mmsghdr.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-mmap_cache.obj `if test -f 'mmap_cache.c'; then $(CYGPATH_W) 'mmap_cache.c'; else $(CYGPATH_W) '$(srcdir)/mmap_cache.c'; fi` -strace-mount.o: mount.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-mount.o -MD -MP -MF $(DEPDIR)/strace-mount.Tpo -c -o strace-mount.o `test -f 'mount.c' || echo '$(srcdir)/'`mount.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-mount.Tpo $(DEPDIR)/strace-mount.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mount.c' object='strace-mount.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-mmap_notify.o: mmap_notify.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-mmap_notify.o -MD -MP -MF $(DEPDIR)/libstrace_a-mmap_notify.Tpo -c -o libstrace_a-mmap_notify.o `test -f 'mmap_notify.c' || echo '$(srcdir)/'`mmap_notify.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-mmap_notify.Tpo $(DEPDIR)/libstrace_a-mmap_notify.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmap_notify.c' object='libstrace_a-mmap_notify.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-mount.o `test -f 'mount.c' || echo '$(srcdir)/'`mount.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-mmap_notify.o `test -f 'mmap_notify.c' || echo '$(srcdir)/'`mmap_notify.c -strace-mount.obj: mount.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-mount.obj -MD -MP -MF $(DEPDIR)/strace-mount.Tpo -c -o strace-mount.obj `if test -f 'mount.c'; then $(CYGPATH_W) 'mount.c'; else $(CYGPATH_W) '$(srcdir)/mount.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-mount.Tpo $(DEPDIR)/strace-mount.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mount.c' object='strace-mount.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-mmap_notify.obj: mmap_notify.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-mmap_notify.obj -MD -MP -MF $(DEPDIR)/libstrace_a-mmap_notify.Tpo -c -o libstrace_a-mmap_notify.obj `if test -f 'mmap_notify.c'; then $(CYGPATH_W) 'mmap_notify.c'; else $(CYGPATH_W) '$(srcdir)/mmap_notify.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-mmap_notify.Tpo $(DEPDIR)/libstrace_a-mmap_notify.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmap_notify.c' object='libstrace_a-mmap_notify.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-mount.obj `if test -f 'mount.c'; then $(CYGPATH_W) 'mount.c'; else $(CYGPATH_W) '$(srcdir)/mount.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-mmap_notify.obj `if test -f 'mmap_notify.c'; then $(CYGPATH_W) 'mmap_notify.c'; else $(CYGPATH_W) '$(srcdir)/mmap_notify.c'; fi` -strace-mq.o: mq.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-mq.o -MD -MP -MF $(DEPDIR)/strace-mq.Tpo -c -o strace-mq.o `test -f 'mq.c' || echo '$(srcdir)/'`mq.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-mq.Tpo $(DEPDIR)/strace-mq.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mq.c' object='strace-mq.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-mmsghdr.o: mmsghdr.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-mmsghdr.o -MD -MP -MF $(DEPDIR)/libstrace_a-mmsghdr.Tpo -c -o libstrace_a-mmsghdr.o `test -f 'mmsghdr.c' || echo '$(srcdir)/'`mmsghdr.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-mmsghdr.Tpo $(DEPDIR)/libstrace_a-mmsghdr.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmsghdr.c' object='libstrace_a-mmsghdr.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-mq.o `test -f 'mq.c' || echo '$(srcdir)/'`mq.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-mmsghdr.o `test -f 'mmsghdr.c' || echo '$(srcdir)/'`mmsghdr.c -strace-mq.obj: mq.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-mq.obj -MD -MP -MF $(DEPDIR)/strace-mq.Tpo -c -o strace-mq.obj `if test -f 'mq.c'; then $(CYGPATH_W) 'mq.c'; else $(CYGPATH_W) '$(srcdir)/mq.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-mq.Tpo $(DEPDIR)/strace-mq.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mq.c' object='strace-mq.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-mmsghdr.obj: mmsghdr.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-mmsghdr.obj -MD -MP -MF $(DEPDIR)/libstrace_a-mmsghdr.Tpo -c -o libstrace_a-mmsghdr.obj `if test -f 'mmsghdr.c'; then $(CYGPATH_W) 'mmsghdr.c'; else $(CYGPATH_W) '$(srcdir)/mmsghdr.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-mmsghdr.Tpo $(DEPDIR)/libstrace_a-mmsghdr.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmsghdr.c' object='libstrace_a-mmsghdr.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-mq.obj `if test -f 'mq.c'; then $(CYGPATH_W) 'mq.c'; else $(CYGPATH_W) '$(srcdir)/mq.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-mmsghdr.obj `if test -f 'mmsghdr.c'; then $(CYGPATH_W) 'mmsghdr.c'; else $(CYGPATH_W) '$(srcdir)/mmsghdr.c'; fi` -strace-msghdr.o: msghdr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-msghdr.o -MD -MP -MF $(DEPDIR)/strace-msghdr.Tpo -c -o strace-msghdr.o `test -f 'msghdr.c' || echo '$(srcdir)/'`msghdr.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-msghdr.Tpo $(DEPDIR)/strace-msghdr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='msghdr.c' object='strace-msghdr.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-mount.o: mount.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-mount.o -MD -MP -MF $(DEPDIR)/libstrace_a-mount.Tpo -c -o libstrace_a-mount.o `test -f 'mount.c' || echo '$(srcdir)/'`mount.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-mount.Tpo $(DEPDIR)/libstrace_a-mount.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mount.c' object='libstrace_a-mount.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-msghdr.o `test -f 'msghdr.c' || echo '$(srcdir)/'`msghdr.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-mount.o `test -f 'mount.c' || echo '$(srcdir)/'`mount.c -strace-msghdr.obj: msghdr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-msghdr.obj -MD -MP -MF $(DEPDIR)/strace-msghdr.Tpo -c -o strace-msghdr.obj `if test -f 'msghdr.c'; then $(CYGPATH_W) 'msghdr.c'; else $(CYGPATH_W) '$(srcdir)/msghdr.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-msghdr.Tpo $(DEPDIR)/strace-msghdr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='msghdr.c' object='strace-msghdr.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-mount.obj: mount.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-mount.obj -MD -MP -MF $(DEPDIR)/libstrace_a-mount.Tpo -c -o libstrace_a-mount.obj `if test -f 'mount.c'; then $(CYGPATH_W) 'mount.c'; else $(CYGPATH_W) '$(srcdir)/mount.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-mount.Tpo $(DEPDIR)/libstrace_a-mount.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mount.c' object='libstrace_a-mount.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-msghdr.obj `if test -f 'msghdr.c'; then $(CYGPATH_W) 'msghdr.c'; else $(CYGPATH_W) '$(srcdir)/msghdr.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-mount.obj `if test -f 'mount.c'; then $(CYGPATH_W) 'mount.c'; else $(CYGPATH_W) '$(srcdir)/mount.c'; fi` -strace-mtd.o: mtd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-mtd.o -MD -MP -MF $(DEPDIR)/strace-mtd.Tpo -c -o strace-mtd.o `test -f 'mtd.c' || echo '$(srcdir)/'`mtd.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-mtd.Tpo $(DEPDIR)/strace-mtd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mtd.c' object='strace-mtd.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-move_mount.o: move_mount.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-move_mount.o -MD -MP -MF $(DEPDIR)/libstrace_a-move_mount.Tpo -c -o libstrace_a-move_mount.o `test -f 'move_mount.c' || echo '$(srcdir)/'`move_mount.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-move_mount.Tpo $(DEPDIR)/libstrace_a-move_mount.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='move_mount.c' object='libstrace_a-move_mount.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-mtd.o `test -f 'mtd.c' || echo '$(srcdir)/'`mtd.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-move_mount.o `test -f 'move_mount.c' || echo '$(srcdir)/'`move_mount.c -strace-mtd.obj: mtd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-mtd.obj -MD -MP -MF $(DEPDIR)/strace-mtd.Tpo -c -o strace-mtd.obj `if test -f 'mtd.c'; then $(CYGPATH_W) 'mtd.c'; else $(CYGPATH_W) '$(srcdir)/mtd.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-mtd.Tpo $(DEPDIR)/strace-mtd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mtd.c' object='strace-mtd.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-move_mount.obj: move_mount.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-move_mount.obj -MD -MP -MF $(DEPDIR)/libstrace_a-move_mount.Tpo -c -o libstrace_a-move_mount.obj `if test -f 'move_mount.c'; then $(CYGPATH_W) 'move_mount.c'; else $(CYGPATH_W) '$(srcdir)/move_mount.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-move_mount.Tpo $(DEPDIR)/libstrace_a-move_mount.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='move_mount.c' object='libstrace_a-move_mount.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-mtd.obj `if test -f 'mtd.c'; then $(CYGPATH_W) 'mtd.c'; else $(CYGPATH_W) '$(srcdir)/mtd.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-move_mount.obj `if test -f 'move_mount.c'; then $(CYGPATH_W) 'move_mount.c'; else $(CYGPATH_W) '$(srcdir)/move_mount.c'; fi` -strace-nbd_ioctl.o: nbd_ioctl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-nbd_ioctl.o -MD -MP -MF $(DEPDIR)/strace-nbd_ioctl.Tpo -c -o strace-nbd_ioctl.o `test -f 'nbd_ioctl.c' || echo '$(srcdir)/'`nbd_ioctl.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-nbd_ioctl.Tpo $(DEPDIR)/strace-nbd_ioctl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nbd_ioctl.c' object='strace-nbd_ioctl.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-mq.o: mq.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-mq.o -MD -MP -MF $(DEPDIR)/libstrace_a-mq.Tpo -c -o libstrace_a-mq.o `test -f 'mq.c' || echo '$(srcdir)/'`mq.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-mq.Tpo $(DEPDIR)/libstrace_a-mq.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mq.c' object='libstrace_a-mq.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-nbd_ioctl.o `test -f 'nbd_ioctl.c' || echo '$(srcdir)/'`nbd_ioctl.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-mq.o `test -f 'mq.c' || echo '$(srcdir)/'`mq.c -strace-nbd_ioctl.obj: nbd_ioctl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-nbd_ioctl.obj -MD -MP -MF $(DEPDIR)/strace-nbd_ioctl.Tpo -c -o strace-nbd_ioctl.obj `if test -f 'nbd_ioctl.c'; then $(CYGPATH_W) 'nbd_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/nbd_ioctl.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-nbd_ioctl.Tpo $(DEPDIR)/strace-nbd_ioctl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nbd_ioctl.c' object='strace-nbd_ioctl.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-mq.obj: mq.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-mq.obj -MD -MP -MF $(DEPDIR)/libstrace_a-mq.Tpo -c -o libstrace_a-mq.obj `if test -f 'mq.c'; then $(CYGPATH_W) 'mq.c'; else $(CYGPATH_W) '$(srcdir)/mq.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-mq.Tpo $(DEPDIR)/libstrace_a-mq.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mq.c' object='libstrace_a-mq.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-nbd_ioctl.obj `if test -f 'nbd_ioctl.c'; then $(CYGPATH_W) 'nbd_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/nbd_ioctl.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-mq.obj `if test -f 'mq.c'; then $(CYGPATH_W) 'mq.c'; else $(CYGPATH_W) '$(srcdir)/mq.c'; fi` -strace-net.o: net.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-net.o -MD -MP -MF $(DEPDIR)/strace-net.Tpo -c -o strace-net.o `test -f 'net.c' || echo '$(srcdir)/'`net.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-net.Tpo $(DEPDIR)/strace-net.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='net.c' object='strace-net.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-msghdr.o: msghdr.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-msghdr.o -MD -MP -MF $(DEPDIR)/libstrace_a-msghdr.Tpo -c -o libstrace_a-msghdr.o `test -f 'msghdr.c' || echo '$(srcdir)/'`msghdr.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-msghdr.Tpo $(DEPDIR)/libstrace_a-msghdr.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='msghdr.c' object='libstrace_a-msghdr.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-net.o `test -f 'net.c' || echo '$(srcdir)/'`net.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-msghdr.o `test -f 'msghdr.c' || echo '$(srcdir)/'`msghdr.c -strace-net.obj: net.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-net.obj -MD -MP -MF $(DEPDIR)/strace-net.Tpo -c -o strace-net.obj `if test -f 'net.c'; then $(CYGPATH_W) 'net.c'; else $(CYGPATH_W) '$(srcdir)/net.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-net.Tpo $(DEPDIR)/strace-net.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='net.c' object='strace-net.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-msghdr.obj: msghdr.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-msghdr.obj -MD -MP -MF $(DEPDIR)/libstrace_a-msghdr.Tpo -c -o libstrace_a-msghdr.obj `if test -f 'msghdr.c'; then $(CYGPATH_W) 'msghdr.c'; else $(CYGPATH_W) '$(srcdir)/msghdr.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-msghdr.Tpo $(DEPDIR)/libstrace_a-msghdr.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='msghdr.c' object='libstrace_a-msghdr.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-net.obj `if test -f 'net.c'; then $(CYGPATH_W) 'net.c'; else $(CYGPATH_W) '$(srcdir)/net.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-msghdr.obj `if test -f 'msghdr.c'; then $(CYGPATH_W) 'msghdr.c'; else $(CYGPATH_W) '$(srcdir)/msghdr.c'; fi` -strace-netlink.o: netlink.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-netlink.o -MD -MP -MF $(DEPDIR)/strace-netlink.Tpo -c -o strace-netlink.o `test -f 'netlink.c' || echo '$(srcdir)/'`netlink.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-netlink.Tpo $(DEPDIR)/strace-netlink.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink.c' object='strace-netlink.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-mtd.o: mtd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-mtd.o -MD -MP -MF $(DEPDIR)/libstrace_a-mtd.Tpo -c -o libstrace_a-mtd.o `test -f 'mtd.c' || echo '$(srcdir)/'`mtd.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-mtd.Tpo $(DEPDIR)/libstrace_a-mtd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mtd.c' object='libstrace_a-mtd.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-netlink.o `test -f 'netlink.c' || echo '$(srcdir)/'`netlink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-mtd.o `test -f 'mtd.c' || echo '$(srcdir)/'`mtd.c -strace-netlink.obj: netlink.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-netlink.obj -MD -MP -MF $(DEPDIR)/strace-netlink.Tpo -c -o strace-netlink.obj `if test -f 'netlink.c'; then $(CYGPATH_W) 'netlink.c'; else $(CYGPATH_W) '$(srcdir)/netlink.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-netlink.Tpo $(DEPDIR)/strace-netlink.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink.c' object='strace-netlink.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-mtd.obj: mtd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-mtd.obj -MD -MP -MF $(DEPDIR)/libstrace_a-mtd.Tpo -c -o libstrace_a-mtd.obj `if test -f 'mtd.c'; then $(CYGPATH_W) 'mtd.c'; else $(CYGPATH_W) '$(srcdir)/mtd.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-mtd.Tpo $(DEPDIR)/libstrace_a-mtd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mtd.c' object='libstrace_a-mtd.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-netlink.obj `if test -f 'netlink.c'; then $(CYGPATH_W) 'netlink.c'; else $(CYGPATH_W) '$(srcdir)/netlink.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-mtd.obj `if test -f 'mtd.c'; then $(CYGPATH_W) 'mtd.c'; else $(CYGPATH_W) '$(srcdir)/mtd.c'; fi` -strace-netlink_crypto.o: netlink_crypto.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-netlink_crypto.o -MD -MP -MF $(DEPDIR)/strace-netlink_crypto.Tpo -c -o strace-netlink_crypto.o `test -f 'netlink_crypto.c' || echo '$(srcdir)/'`netlink_crypto.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-netlink_crypto.Tpo $(DEPDIR)/strace-netlink_crypto.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_crypto.c' object='strace-netlink_crypto.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-nbd_ioctl.o: nbd_ioctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-nbd_ioctl.o -MD -MP -MF $(DEPDIR)/libstrace_a-nbd_ioctl.Tpo -c -o libstrace_a-nbd_ioctl.o `test -f 'nbd_ioctl.c' || echo '$(srcdir)/'`nbd_ioctl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-nbd_ioctl.Tpo $(DEPDIR)/libstrace_a-nbd_ioctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nbd_ioctl.c' object='libstrace_a-nbd_ioctl.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-netlink_crypto.o `test -f 'netlink_crypto.c' || echo '$(srcdir)/'`netlink_crypto.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-nbd_ioctl.o `test -f 'nbd_ioctl.c' || echo '$(srcdir)/'`nbd_ioctl.c -strace-netlink_crypto.obj: netlink_crypto.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-netlink_crypto.obj -MD -MP -MF $(DEPDIR)/strace-netlink_crypto.Tpo -c -o strace-netlink_crypto.obj `if test -f 'netlink_crypto.c'; then $(CYGPATH_W) 'netlink_crypto.c'; else $(CYGPATH_W) '$(srcdir)/netlink_crypto.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-netlink_crypto.Tpo $(DEPDIR)/strace-netlink_crypto.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_crypto.c' object='strace-netlink_crypto.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-nbd_ioctl.obj: nbd_ioctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-nbd_ioctl.obj -MD -MP -MF $(DEPDIR)/libstrace_a-nbd_ioctl.Tpo -c -o libstrace_a-nbd_ioctl.obj `if test -f 'nbd_ioctl.c'; then $(CYGPATH_W) 'nbd_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/nbd_ioctl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-nbd_ioctl.Tpo $(DEPDIR)/libstrace_a-nbd_ioctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nbd_ioctl.c' object='libstrace_a-nbd_ioctl.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-netlink_crypto.obj `if test -f 'netlink_crypto.c'; then $(CYGPATH_W) 'netlink_crypto.c'; else $(CYGPATH_W) '$(srcdir)/netlink_crypto.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-nbd_ioctl.obj `if test -f 'nbd_ioctl.c'; then $(CYGPATH_W) 'nbd_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/nbd_ioctl.c'; fi` -strace-netlink_inet_diag.o: netlink_inet_diag.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-netlink_inet_diag.o -MD -MP -MF $(DEPDIR)/strace-netlink_inet_diag.Tpo -c -o strace-netlink_inet_diag.o `test -f 'netlink_inet_diag.c' || echo '$(srcdir)/'`netlink_inet_diag.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-netlink_inet_diag.Tpo $(DEPDIR)/strace-netlink_inet_diag.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_inet_diag.c' object='strace-netlink_inet_diag.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-net.o: net.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-net.o -MD -MP -MF $(DEPDIR)/libstrace_a-net.Tpo -c -o libstrace_a-net.o `test -f 'net.c' || echo '$(srcdir)/'`net.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-net.Tpo $(DEPDIR)/libstrace_a-net.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='net.c' object='libstrace_a-net.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-netlink_inet_diag.o `test -f 'netlink_inet_diag.c' || echo '$(srcdir)/'`netlink_inet_diag.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-net.o `test -f 'net.c' || echo '$(srcdir)/'`net.c -strace-netlink_inet_diag.obj: netlink_inet_diag.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-netlink_inet_diag.obj -MD -MP -MF $(DEPDIR)/strace-netlink_inet_diag.Tpo -c -o strace-netlink_inet_diag.obj `if test -f 'netlink_inet_diag.c'; then $(CYGPATH_W) 'netlink_inet_diag.c'; else $(CYGPATH_W) '$(srcdir)/netlink_inet_diag.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-netlink_inet_diag.Tpo $(DEPDIR)/strace-netlink_inet_diag.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_inet_diag.c' object='strace-netlink_inet_diag.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-net.obj: net.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-net.obj -MD -MP -MF $(DEPDIR)/libstrace_a-net.Tpo -c -o libstrace_a-net.obj `if test -f 'net.c'; then $(CYGPATH_W) 'net.c'; else $(CYGPATH_W) '$(srcdir)/net.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-net.Tpo $(DEPDIR)/libstrace_a-net.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='net.c' object='libstrace_a-net.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-netlink_inet_diag.obj `if test -f 'netlink_inet_diag.c'; then $(CYGPATH_W) 'netlink_inet_diag.c'; else $(CYGPATH_W) '$(srcdir)/netlink_inet_diag.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-net.obj `if test -f 'net.c'; then $(CYGPATH_W) 'net.c'; else $(CYGPATH_W) '$(srcdir)/net.c'; fi` -strace-netlink_kobject_uevent.o: netlink_kobject_uevent.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-netlink_kobject_uevent.o -MD -MP -MF $(DEPDIR)/strace-netlink_kobject_uevent.Tpo -c -o strace-netlink_kobject_uevent.o `test -f 'netlink_kobject_uevent.c' || echo '$(srcdir)/'`netlink_kobject_uevent.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-netlink_kobject_uevent.Tpo $(DEPDIR)/strace-netlink_kobject_uevent.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_kobject_uevent.c' object='strace-netlink_kobject_uevent.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-netlink.o: netlink.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-netlink.o -MD -MP -MF $(DEPDIR)/libstrace_a-netlink.Tpo -c -o libstrace_a-netlink.o `test -f 'netlink.c' || echo '$(srcdir)/'`netlink.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-netlink.Tpo $(DEPDIR)/libstrace_a-netlink.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink.c' object='libstrace_a-netlink.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-netlink_kobject_uevent.o `test -f 'netlink_kobject_uevent.c' || echo '$(srcdir)/'`netlink_kobject_uevent.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-netlink.o `test -f 'netlink.c' || echo '$(srcdir)/'`netlink.c -strace-netlink_kobject_uevent.obj: netlink_kobject_uevent.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-netlink_kobject_uevent.obj -MD -MP -MF $(DEPDIR)/strace-netlink_kobject_uevent.Tpo -c -o strace-netlink_kobject_uevent.obj `if test -f 'netlink_kobject_uevent.c'; then $(CYGPATH_W) 'netlink_kobject_uevent.c'; else $(CYGPATH_W) '$(srcdir)/netlink_kobject_uevent.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-netlink_kobject_uevent.Tpo $(DEPDIR)/strace-netlink_kobject_uevent.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_kobject_uevent.c' object='strace-netlink_kobject_uevent.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-netlink.obj: netlink.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-netlink.obj -MD -MP -MF $(DEPDIR)/libstrace_a-netlink.Tpo -c -o libstrace_a-netlink.obj `if test -f 'netlink.c'; then $(CYGPATH_W) 'netlink.c'; else $(CYGPATH_W) '$(srcdir)/netlink.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-netlink.Tpo $(DEPDIR)/libstrace_a-netlink.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink.c' object='libstrace_a-netlink.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-netlink_kobject_uevent.obj `if test -f 'netlink_kobject_uevent.c'; then $(CYGPATH_W) 'netlink_kobject_uevent.c'; else $(CYGPATH_W) '$(srcdir)/netlink_kobject_uevent.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-netlink.obj `if test -f 'netlink.c'; then $(CYGPATH_W) 'netlink.c'; else $(CYGPATH_W) '$(srcdir)/netlink.c'; fi` -strace-netlink_netfilter.o: netlink_netfilter.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-netlink_netfilter.o -MD -MP -MF $(DEPDIR)/strace-netlink_netfilter.Tpo -c -o strace-netlink_netfilter.o `test -f 'netlink_netfilter.c' || echo '$(srcdir)/'`netlink_netfilter.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-netlink_netfilter.Tpo $(DEPDIR)/strace-netlink_netfilter.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_netfilter.c' object='strace-netlink_netfilter.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-netlink_crypto.o: netlink_crypto.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-netlink_crypto.o -MD -MP -MF $(DEPDIR)/libstrace_a-netlink_crypto.Tpo -c -o libstrace_a-netlink_crypto.o `test -f 'netlink_crypto.c' || echo '$(srcdir)/'`netlink_crypto.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-netlink_crypto.Tpo $(DEPDIR)/libstrace_a-netlink_crypto.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_crypto.c' object='libstrace_a-netlink_crypto.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-netlink_netfilter.o `test -f 'netlink_netfilter.c' || echo '$(srcdir)/'`netlink_netfilter.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-netlink_crypto.o `test -f 'netlink_crypto.c' || echo '$(srcdir)/'`netlink_crypto.c -strace-netlink_netfilter.obj: netlink_netfilter.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-netlink_netfilter.obj -MD -MP -MF $(DEPDIR)/strace-netlink_netfilter.Tpo -c -o strace-netlink_netfilter.obj `if test -f 'netlink_netfilter.c'; then $(CYGPATH_W) 'netlink_netfilter.c'; else $(CYGPATH_W) '$(srcdir)/netlink_netfilter.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-netlink_netfilter.Tpo $(DEPDIR)/strace-netlink_netfilter.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_netfilter.c' object='strace-netlink_netfilter.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-netlink_crypto.obj: netlink_crypto.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-netlink_crypto.obj -MD -MP -MF $(DEPDIR)/libstrace_a-netlink_crypto.Tpo -c -o libstrace_a-netlink_crypto.obj `if test -f 'netlink_crypto.c'; then $(CYGPATH_W) 'netlink_crypto.c'; else $(CYGPATH_W) '$(srcdir)/netlink_crypto.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-netlink_crypto.Tpo $(DEPDIR)/libstrace_a-netlink_crypto.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_crypto.c' object='libstrace_a-netlink_crypto.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-netlink_netfilter.obj `if test -f 'netlink_netfilter.c'; then $(CYGPATH_W) 'netlink_netfilter.c'; else $(CYGPATH_W) '$(srcdir)/netlink_netfilter.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-netlink_crypto.obj `if test -f 'netlink_crypto.c'; then $(CYGPATH_W) 'netlink_crypto.c'; else $(CYGPATH_W) '$(srcdir)/netlink_crypto.c'; fi` -strace-netlink_netlink_diag.o: netlink_netlink_diag.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-netlink_netlink_diag.o -MD -MP -MF $(DEPDIR)/strace-netlink_netlink_diag.Tpo -c -o strace-netlink_netlink_diag.o `test -f 'netlink_netlink_diag.c' || echo '$(srcdir)/'`netlink_netlink_diag.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-netlink_netlink_diag.Tpo $(DEPDIR)/strace-netlink_netlink_diag.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_netlink_diag.c' object='strace-netlink_netlink_diag.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-netlink_inet_diag.o: netlink_inet_diag.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-netlink_inet_diag.o -MD -MP -MF $(DEPDIR)/libstrace_a-netlink_inet_diag.Tpo -c -o libstrace_a-netlink_inet_diag.o `test -f 'netlink_inet_diag.c' || echo '$(srcdir)/'`netlink_inet_diag.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-netlink_inet_diag.Tpo $(DEPDIR)/libstrace_a-netlink_inet_diag.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_inet_diag.c' object='libstrace_a-netlink_inet_diag.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-netlink_netlink_diag.o `test -f 'netlink_netlink_diag.c' || echo '$(srcdir)/'`netlink_netlink_diag.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-netlink_inet_diag.o `test -f 'netlink_inet_diag.c' || echo '$(srcdir)/'`netlink_inet_diag.c -strace-netlink_netlink_diag.obj: netlink_netlink_diag.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-netlink_netlink_diag.obj -MD -MP -MF $(DEPDIR)/strace-netlink_netlink_diag.Tpo -c -o strace-netlink_netlink_diag.obj `if test -f 'netlink_netlink_diag.c'; then $(CYGPATH_W) 'netlink_netlink_diag.c'; else $(CYGPATH_W) '$(srcdir)/netlink_netlink_diag.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-netlink_netlink_diag.Tpo $(DEPDIR)/strace-netlink_netlink_diag.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_netlink_diag.c' object='strace-netlink_netlink_diag.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-netlink_inet_diag.obj: netlink_inet_diag.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-netlink_inet_diag.obj -MD -MP -MF $(DEPDIR)/libstrace_a-netlink_inet_diag.Tpo -c -o libstrace_a-netlink_inet_diag.obj `if test -f 'netlink_inet_diag.c'; then $(CYGPATH_W) 'netlink_inet_diag.c'; else $(CYGPATH_W) '$(srcdir)/netlink_inet_diag.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-netlink_inet_diag.Tpo $(DEPDIR)/libstrace_a-netlink_inet_diag.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_inet_diag.c' object='libstrace_a-netlink_inet_diag.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-netlink_netlink_diag.obj `if test -f 'netlink_netlink_diag.c'; then $(CYGPATH_W) 'netlink_netlink_diag.c'; else $(CYGPATH_W) '$(srcdir)/netlink_netlink_diag.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-netlink_inet_diag.obj `if test -f 'netlink_inet_diag.c'; then $(CYGPATH_W) 'netlink_inet_diag.c'; else $(CYGPATH_W) '$(srcdir)/netlink_inet_diag.c'; fi` -strace-netlink_packet_diag.o: netlink_packet_diag.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-netlink_packet_diag.o -MD -MP -MF $(DEPDIR)/strace-netlink_packet_diag.Tpo -c -o strace-netlink_packet_diag.o `test -f 'netlink_packet_diag.c' || echo '$(srcdir)/'`netlink_packet_diag.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-netlink_packet_diag.Tpo $(DEPDIR)/strace-netlink_packet_diag.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_packet_diag.c' object='strace-netlink_packet_diag.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-netlink_kobject_uevent.o: netlink_kobject_uevent.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-netlink_kobject_uevent.o -MD -MP -MF $(DEPDIR)/libstrace_a-netlink_kobject_uevent.Tpo -c -o libstrace_a-netlink_kobject_uevent.o `test -f 'netlink_kobject_uevent.c' || echo '$(srcdir)/'`netlink_kobject_uevent.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-netlink_kobject_uevent.Tpo $(DEPDIR)/libstrace_a-netlink_kobject_uevent.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_kobject_uevent.c' object='libstrace_a-netlink_kobject_uevent.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-netlink_packet_diag.o `test -f 'netlink_packet_diag.c' || echo '$(srcdir)/'`netlink_packet_diag.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-netlink_kobject_uevent.o `test -f 'netlink_kobject_uevent.c' || echo '$(srcdir)/'`netlink_kobject_uevent.c -strace-netlink_packet_diag.obj: netlink_packet_diag.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-netlink_packet_diag.obj -MD -MP -MF $(DEPDIR)/strace-netlink_packet_diag.Tpo -c -o strace-netlink_packet_diag.obj `if test -f 'netlink_packet_diag.c'; then $(CYGPATH_W) 'netlink_packet_diag.c'; else $(CYGPATH_W) '$(srcdir)/netlink_packet_diag.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-netlink_packet_diag.Tpo $(DEPDIR)/strace-netlink_packet_diag.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_packet_diag.c' object='strace-netlink_packet_diag.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-netlink_kobject_uevent.obj: netlink_kobject_uevent.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-netlink_kobject_uevent.obj -MD -MP -MF $(DEPDIR)/libstrace_a-netlink_kobject_uevent.Tpo -c -o libstrace_a-netlink_kobject_uevent.obj `if test -f 'netlink_kobject_uevent.c'; then $(CYGPATH_W) 'netlink_kobject_uevent.c'; else $(CYGPATH_W) '$(srcdir)/netlink_kobject_uevent.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-netlink_kobject_uevent.Tpo $(DEPDIR)/libstrace_a-netlink_kobject_uevent.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_kobject_uevent.c' object='libstrace_a-netlink_kobject_uevent.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-netlink_packet_diag.obj `if test -f 'netlink_packet_diag.c'; then $(CYGPATH_W) 'netlink_packet_diag.c'; else $(CYGPATH_W) '$(srcdir)/netlink_packet_diag.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-netlink_kobject_uevent.obj `if test -f 'netlink_kobject_uevent.c'; then $(CYGPATH_W) 'netlink_kobject_uevent.c'; else $(CYGPATH_W) '$(srcdir)/netlink_kobject_uevent.c'; fi` -strace-netlink_route.o: netlink_route.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-netlink_route.o -MD -MP -MF $(DEPDIR)/strace-netlink_route.Tpo -c -o strace-netlink_route.o `test -f 'netlink_route.c' || echo '$(srcdir)/'`netlink_route.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-netlink_route.Tpo $(DEPDIR)/strace-netlink_route.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_route.c' object='strace-netlink_route.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-netlink_netfilter.o: netlink_netfilter.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-netlink_netfilter.o -MD -MP -MF $(DEPDIR)/libstrace_a-netlink_netfilter.Tpo -c -o libstrace_a-netlink_netfilter.o `test -f 'netlink_netfilter.c' || echo '$(srcdir)/'`netlink_netfilter.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-netlink_netfilter.Tpo $(DEPDIR)/libstrace_a-netlink_netfilter.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_netfilter.c' object='libstrace_a-netlink_netfilter.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-netlink_route.o `test -f 'netlink_route.c' || echo '$(srcdir)/'`netlink_route.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-netlink_netfilter.o `test -f 'netlink_netfilter.c' || echo '$(srcdir)/'`netlink_netfilter.c -strace-netlink_route.obj: netlink_route.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-netlink_route.obj -MD -MP -MF $(DEPDIR)/strace-netlink_route.Tpo -c -o strace-netlink_route.obj `if test -f 'netlink_route.c'; then $(CYGPATH_W) 'netlink_route.c'; else $(CYGPATH_W) '$(srcdir)/netlink_route.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-netlink_route.Tpo $(DEPDIR)/strace-netlink_route.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_route.c' object='strace-netlink_route.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-netlink_netfilter.obj: netlink_netfilter.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-netlink_netfilter.obj -MD -MP -MF $(DEPDIR)/libstrace_a-netlink_netfilter.Tpo -c -o libstrace_a-netlink_netfilter.obj `if test -f 'netlink_netfilter.c'; then $(CYGPATH_W) 'netlink_netfilter.c'; else $(CYGPATH_W) '$(srcdir)/netlink_netfilter.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-netlink_netfilter.Tpo $(DEPDIR)/libstrace_a-netlink_netfilter.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_netfilter.c' object='libstrace_a-netlink_netfilter.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-netlink_route.obj `if test -f 'netlink_route.c'; then $(CYGPATH_W) 'netlink_route.c'; else $(CYGPATH_W) '$(srcdir)/netlink_route.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-netlink_netfilter.obj `if test -f 'netlink_netfilter.c'; then $(CYGPATH_W) 'netlink_netfilter.c'; else $(CYGPATH_W) '$(srcdir)/netlink_netfilter.c'; fi` -strace-netlink_selinux.o: netlink_selinux.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-netlink_selinux.o -MD -MP -MF $(DEPDIR)/strace-netlink_selinux.Tpo -c -o strace-netlink_selinux.o `test -f 'netlink_selinux.c' || echo '$(srcdir)/'`netlink_selinux.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-netlink_selinux.Tpo $(DEPDIR)/strace-netlink_selinux.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_selinux.c' object='strace-netlink_selinux.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-netlink_netlink_diag.o: netlink_netlink_diag.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-netlink_netlink_diag.o -MD -MP -MF $(DEPDIR)/libstrace_a-netlink_netlink_diag.Tpo -c -o libstrace_a-netlink_netlink_diag.o `test -f 'netlink_netlink_diag.c' || echo '$(srcdir)/'`netlink_netlink_diag.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-netlink_netlink_diag.Tpo $(DEPDIR)/libstrace_a-netlink_netlink_diag.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_netlink_diag.c' object='libstrace_a-netlink_netlink_diag.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-netlink_selinux.o `test -f 'netlink_selinux.c' || echo '$(srcdir)/'`netlink_selinux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-netlink_netlink_diag.o `test -f 'netlink_netlink_diag.c' || echo '$(srcdir)/'`netlink_netlink_diag.c -strace-netlink_selinux.obj: netlink_selinux.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-netlink_selinux.obj -MD -MP -MF $(DEPDIR)/strace-netlink_selinux.Tpo -c -o strace-netlink_selinux.obj `if test -f 'netlink_selinux.c'; then $(CYGPATH_W) 'netlink_selinux.c'; else $(CYGPATH_W) '$(srcdir)/netlink_selinux.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-netlink_selinux.Tpo $(DEPDIR)/strace-netlink_selinux.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_selinux.c' object='strace-netlink_selinux.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-netlink_netlink_diag.obj: netlink_netlink_diag.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-netlink_netlink_diag.obj -MD -MP -MF $(DEPDIR)/libstrace_a-netlink_netlink_diag.Tpo -c -o libstrace_a-netlink_netlink_diag.obj `if test -f 'netlink_netlink_diag.c'; then $(CYGPATH_W) 'netlink_netlink_diag.c'; else $(CYGPATH_W) '$(srcdir)/netlink_netlink_diag.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-netlink_netlink_diag.Tpo $(DEPDIR)/libstrace_a-netlink_netlink_diag.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_netlink_diag.c' object='libstrace_a-netlink_netlink_diag.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-netlink_selinux.obj `if test -f 'netlink_selinux.c'; then $(CYGPATH_W) 'netlink_selinux.c'; else $(CYGPATH_W) '$(srcdir)/netlink_selinux.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-netlink_netlink_diag.obj `if test -f 'netlink_netlink_diag.c'; then $(CYGPATH_W) 'netlink_netlink_diag.c'; else $(CYGPATH_W) '$(srcdir)/netlink_netlink_diag.c'; fi` -strace-netlink_smc_diag.o: netlink_smc_diag.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-netlink_smc_diag.o -MD -MP -MF $(DEPDIR)/strace-netlink_smc_diag.Tpo -c -o strace-netlink_smc_diag.o `test -f 'netlink_smc_diag.c' || echo '$(srcdir)/'`netlink_smc_diag.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-netlink_smc_diag.Tpo $(DEPDIR)/strace-netlink_smc_diag.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_smc_diag.c' object='strace-netlink_smc_diag.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-netlink_packet_diag.o: netlink_packet_diag.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-netlink_packet_diag.o -MD -MP -MF $(DEPDIR)/libstrace_a-netlink_packet_diag.Tpo -c -o libstrace_a-netlink_packet_diag.o `test -f 'netlink_packet_diag.c' || echo '$(srcdir)/'`netlink_packet_diag.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-netlink_packet_diag.Tpo $(DEPDIR)/libstrace_a-netlink_packet_diag.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_packet_diag.c' object='libstrace_a-netlink_packet_diag.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-netlink_smc_diag.o `test -f 'netlink_smc_diag.c' || echo '$(srcdir)/'`netlink_smc_diag.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-netlink_packet_diag.o `test -f 'netlink_packet_diag.c' || echo '$(srcdir)/'`netlink_packet_diag.c -strace-netlink_smc_diag.obj: netlink_smc_diag.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-netlink_smc_diag.obj -MD -MP -MF $(DEPDIR)/strace-netlink_smc_diag.Tpo -c -o strace-netlink_smc_diag.obj `if test -f 'netlink_smc_diag.c'; then $(CYGPATH_W) 'netlink_smc_diag.c'; else $(CYGPATH_W) '$(srcdir)/netlink_smc_diag.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-netlink_smc_diag.Tpo $(DEPDIR)/strace-netlink_smc_diag.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_smc_diag.c' object='strace-netlink_smc_diag.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-netlink_packet_diag.obj: netlink_packet_diag.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-netlink_packet_diag.obj -MD -MP -MF $(DEPDIR)/libstrace_a-netlink_packet_diag.Tpo -c -o libstrace_a-netlink_packet_diag.obj `if test -f 'netlink_packet_diag.c'; then $(CYGPATH_W) 'netlink_packet_diag.c'; else $(CYGPATH_W) '$(srcdir)/netlink_packet_diag.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-netlink_packet_diag.Tpo $(DEPDIR)/libstrace_a-netlink_packet_diag.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_packet_diag.c' object='libstrace_a-netlink_packet_diag.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-netlink_smc_diag.obj `if test -f 'netlink_smc_diag.c'; then $(CYGPATH_W) 'netlink_smc_diag.c'; else $(CYGPATH_W) '$(srcdir)/netlink_smc_diag.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-netlink_packet_diag.obj `if test -f 'netlink_packet_diag.c'; then $(CYGPATH_W) 'netlink_packet_diag.c'; else $(CYGPATH_W) '$(srcdir)/netlink_packet_diag.c'; fi` -strace-netlink_sock_diag.o: netlink_sock_diag.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-netlink_sock_diag.o -MD -MP -MF $(DEPDIR)/strace-netlink_sock_diag.Tpo -c -o strace-netlink_sock_diag.o `test -f 'netlink_sock_diag.c' || echo '$(srcdir)/'`netlink_sock_diag.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-netlink_sock_diag.Tpo $(DEPDIR)/strace-netlink_sock_diag.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_sock_diag.c' object='strace-netlink_sock_diag.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-netlink_route.o: netlink_route.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-netlink_route.o -MD -MP -MF $(DEPDIR)/libstrace_a-netlink_route.Tpo -c -o libstrace_a-netlink_route.o `test -f 'netlink_route.c' || echo '$(srcdir)/'`netlink_route.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-netlink_route.Tpo $(DEPDIR)/libstrace_a-netlink_route.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_route.c' object='libstrace_a-netlink_route.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-netlink_sock_diag.o `test -f 'netlink_sock_diag.c' || echo '$(srcdir)/'`netlink_sock_diag.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-netlink_route.o `test -f 'netlink_route.c' || echo '$(srcdir)/'`netlink_route.c -strace-netlink_sock_diag.obj: netlink_sock_diag.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-netlink_sock_diag.obj -MD -MP -MF $(DEPDIR)/strace-netlink_sock_diag.Tpo -c -o strace-netlink_sock_diag.obj `if test -f 'netlink_sock_diag.c'; then $(CYGPATH_W) 'netlink_sock_diag.c'; else $(CYGPATH_W) '$(srcdir)/netlink_sock_diag.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-netlink_sock_diag.Tpo $(DEPDIR)/strace-netlink_sock_diag.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_sock_diag.c' object='strace-netlink_sock_diag.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-netlink_route.obj: netlink_route.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-netlink_route.obj -MD -MP -MF $(DEPDIR)/libstrace_a-netlink_route.Tpo -c -o libstrace_a-netlink_route.obj `if test -f 'netlink_route.c'; then $(CYGPATH_W) 'netlink_route.c'; else $(CYGPATH_W) '$(srcdir)/netlink_route.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-netlink_route.Tpo $(DEPDIR)/libstrace_a-netlink_route.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_route.c' object='libstrace_a-netlink_route.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-netlink_sock_diag.obj `if test -f 'netlink_sock_diag.c'; then $(CYGPATH_W) 'netlink_sock_diag.c'; else $(CYGPATH_W) '$(srcdir)/netlink_sock_diag.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-netlink_route.obj `if test -f 'netlink_route.c'; then $(CYGPATH_W) 'netlink_route.c'; else $(CYGPATH_W) '$(srcdir)/netlink_route.c'; fi` -strace-netlink_unix_diag.o: netlink_unix_diag.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-netlink_unix_diag.o -MD -MP -MF $(DEPDIR)/strace-netlink_unix_diag.Tpo -c -o strace-netlink_unix_diag.o `test -f 'netlink_unix_diag.c' || echo '$(srcdir)/'`netlink_unix_diag.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-netlink_unix_diag.Tpo $(DEPDIR)/strace-netlink_unix_diag.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_unix_diag.c' object='strace-netlink_unix_diag.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-netlink_selinux.o: netlink_selinux.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-netlink_selinux.o -MD -MP -MF $(DEPDIR)/libstrace_a-netlink_selinux.Tpo -c -o libstrace_a-netlink_selinux.o `test -f 'netlink_selinux.c' || echo '$(srcdir)/'`netlink_selinux.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-netlink_selinux.Tpo $(DEPDIR)/libstrace_a-netlink_selinux.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_selinux.c' object='libstrace_a-netlink_selinux.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-netlink_unix_diag.o `test -f 'netlink_unix_diag.c' || echo '$(srcdir)/'`netlink_unix_diag.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-netlink_selinux.o `test -f 'netlink_selinux.c' || echo '$(srcdir)/'`netlink_selinux.c -strace-netlink_unix_diag.obj: netlink_unix_diag.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-netlink_unix_diag.obj -MD -MP -MF $(DEPDIR)/strace-netlink_unix_diag.Tpo -c -o strace-netlink_unix_diag.obj `if test -f 'netlink_unix_diag.c'; then $(CYGPATH_W) 'netlink_unix_diag.c'; else $(CYGPATH_W) '$(srcdir)/netlink_unix_diag.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-netlink_unix_diag.Tpo $(DEPDIR)/strace-netlink_unix_diag.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_unix_diag.c' object='strace-netlink_unix_diag.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-netlink_selinux.obj: netlink_selinux.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-netlink_selinux.obj -MD -MP -MF $(DEPDIR)/libstrace_a-netlink_selinux.Tpo -c -o libstrace_a-netlink_selinux.obj `if test -f 'netlink_selinux.c'; then $(CYGPATH_W) 'netlink_selinux.c'; else $(CYGPATH_W) '$(srcdir)/netlink_selinux.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-netlink_selinux.Tpo $(DEPDIR)/libstrace_a-netlink_selinux.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_selinux.c' object='libstrace_a-netlink_selinux.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-netlink_unix_diag.obj `if test -f 'netlink_unix_diag.c'; then $(CYGPATH_W) 'netlink_unix_diag.c'; else $(CYGPATH_W) '$(srcdir)/netlink_unix_diag.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-netlink_selinux.obj `if test -f 'netlink_selinux.c'; then $(CYGPATH_W) 'netlink_selinux.c'; else $(CYGPATH_W) '$(srcdir)/netlink_selinux.c'; fi` -strace-nlattr.o: nlattr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-nlattr.o -MD -MP -MF $(DEPDIR)/strace-nlattr.Tpo -c -o strace-nlattr.o `test -f 'nlattr.c' || echo '$(srcdir)/'`nlattr.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-nlattr.Tpo $(DEPDIR)/strace-nlattr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nlattr.c' object='strace-nlattr.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-netlink_smc_diag.o: netlink_smc_diag.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-netlink_smc_diag.o -MD -MP -MF $(DEPDIR)/libstrace_a-netlink_smc_diag.Tpo -c -o libstrace_a-netlink_smc_diag.o `test -f 'netlink_smc_diag.c' || echo '$(srcdir)/'`netlink_smc_diag.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-netlink_smc_diag.Tpo $(DEPDIR)/libstrace_a-netlink_smc_diag.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_smc_diag.c' object='libstrace_a-netlink_smc_diag.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-nlattr.o `test -f 'nlattr.c' || echo '$(srcdir)/'`nlattr.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-netlink_smc_diag.o `test -f 'netlink_smc_diag.c' || echo '$(srcdir)/'`netlink_smc_diag.c -strace-nlattr.obj: nlattr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-nlattr.obj -MD -MP -MF $(DEPDIR)/strace-nlattr.Tpo -c -o strace-nlattr.obj `if test -f 'nlattr.c'; then $(CYGPATH_W) 'nlattr.c'; else $(CYGPATH_W) '$(srcdir)/nlattr.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-nlattr.Tpo $(DEPDIR)/strace-nlattr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nlattr.c' object='strace-nlattr.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-netlink_smc_diag.obj: netlink_smc_diag.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-netlink_smc_diag.obj -MD -MP -MF $(DEPDIR)/libstrace_a-netlink_smc_diag.Tpo -c -o libstrace_a-netlink_smc_diag.obj `if test -f 'netlink_smc_diag.c'; then $(CYGPATH_W) 'netlink_smc_diag.c'; else $(CYGPATH_W) '$(srcdir)/netlink_smc_diag.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-netlink_smc_diag.Tpo $(DEPDIR)/libstrace_a-netlink_smc_diag.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_smc_diag.c' object='libstrace_a-netlink_smc_diag.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-nlattr.obj `if test -f 'nlattr.c'; then $(CYGPATH_W) 'nlattr.c'; else $(CYGPATH_W) '$(srcdir)/nlattr.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-netlink_smc_diag.obj `if test -f 'netlink_smc_diag.c'; then $(CYGPATH_W) 'netlink_smc_diag.c'; else $(CYGPATH_W) '$(srcdir)/netlink_smc_diag.c'; fi` -strace-nsfs.o: nsfs.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-nsfs.o -MD -MP -MF $(DEPDIR)/strace-nsfs.Tpo -c -o strace-nsfs.o `test -f 'nsfs.c' || echo '$(srcdir)/'`nsfs.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-nsfs.Tpo $(DEPDIR)/strace-nsfs.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nsfs.c' object='strace-nsfs.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-netlink_sock_diag.o: netlink_sock_diag.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-netlink_sock_diag.o -MD -MP -MF $(DEPDIR)/libstrace_a-netlink_sock_diag.Tpo -c -o libstrace_a-netlink_sock_diag.o `test -f 'netlink_sock_diag.c' || echo '$(srcdir)/'`netlink_sock_diag.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-netlink_sock_diag.Tpo $(DEPDIR)/libstrace_a-netlink_sock_diag.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_sock_diag.c' object='libstrace_a-netlink_sock_diag.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-nsfs.o `test -f 'nsfs.c' || echo '$(srcdir)/'`nsfs.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-netlink_sock_diag.o `test -f 'netlink_sock_diag.c' || echo '$(srcdir)/'`netlink_sock_diag.c -strace-nsfs.obj: nsfs.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-nsfs.obj -MD -MP -MF $(DEPDIR)/strace-nsfs.Tpo -c -o strace-nsfs.obj `if test -f 'nsfs.c'; then $(CYGPATH_W) 'nsfs.c'; else $(CYGPATH_W) '$(srcdir)/nsfs.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-nsfs.Tpo $(DEPDIR)/strace-nsfs.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nsfs.c' object='strace-nsfs.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-netlink_sock_diag.obj: netlink_sock_diag.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-netlink_sock_diag.obj -MD -MP -MF $(DEPDIR)/libstrace_a-netlink_sock_diag.Tpo -c -o libstrace_a-netlink_sock_diag.obj `if test -f 'netlink_sock_diag.c'; then $(CYGPATH_W) 'netlink_sock_diag.c'; else $(CYGPATH_W) '$(srcdir)/netlink_sock_diag.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-netlink_sock_diag.Tpo $(DEPDIR)/libstrace_a-netlink_sock_diag.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_sock_diag.c' object='libstrace_a-netlink_sock_diag.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-nsfs.obj `if test -f 'nsfs.c'; then $(CYGPATH_W) 'nsfs.c'; else $(CYGPATH_W) '$(srcdir)/nsfs.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-netlink_sock_diag.obj `if test -f 'netlink_sock_diag.c'; then $(CYGPATH_W) 'netlink_sock_diag.c'; else $(CYGPATH_W) '$(srcdir)/netlink_sock_diag.c'; fi` -strace-numa.o: numa.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-numa.o -MD -MP -MF $(DEPDIR)/strace-numa.Tpo -c -o strace-numa.o `test -f 'numa.c' || echo '$(srcdir)/'`numa.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-numa.Tpo $(DEPDIR)/strace-numa.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='numa.c' object='strace-numa.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-netlink_unix_diag.o: netlink_unix_diag.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-netlink_unix_diag.o -MD -MP -MF $(DEPDIR)/libstrace_a-netlink_unix_diag.Tpo -c -o libstrace_a-netlink_unix_diag.o `test -f 'netlink_unix_diag.c' || echo '$(srcdir)/'`netlink_unix_diag.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-netlink_unix_diag.Tpo $(DEPDIR)/libstrace_a-netlink_unix_diag.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_unix_diag.c' object='libstrace_a-netlink_unix_diag.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-numa.o `test -f 'numa.c' || echo '$(srcdir)/'`numa.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-netlink_unix_diag.o `test -f 'netlink_unix_diag.c' || echo '$(srcdir)/'`netlink_unix_diag.c -strace-numa.obj: numa.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-numa.obj -MD -MP -MF $(DEPDIR)/strace-numa.Tpo -c -o strace-numa.obj `if test -f 'numa.c'; then $(CYGPATH_W) 'numa.c'; else $(CYGPATH_W) '$(srcdir)/numa.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-numa.Tpo $(DEPDIR)/strace-numa.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='numa.c' object='strace-numa.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-netlink_unix_diag.obj: netlink_unix_diag.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-netlink_unix_diag.obj -MD -MP -MF $(DEPDIR)/libstrace_a-netlink_unix_diag.Tpo -c -o libstrace_a-netlink_unix_diag.obj `if test -f 'netlink_unix_diag.c'; then $(CYGPATH_W) 'netlink_unix_diag.c'; else $(CYGPATH_W) '$(srcdir)/netlink_unix_diag.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-netlink_unix_diag.Tpo $(DEPDIR)/libstrace_a-netlink_unix_diag.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='netlink_unix_diag.c' object='libstrace_a-netlink_unix_diag.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-numa.obj `if test -f 'numa.c'; then $(CYGPATH_W) 'numa.c'; else $(CYGPATH_W) '$(srcdir)/numa.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-netlink_unix_diag.obj `if test -f 'netlink_unix_diag.c'; then $(CYGPATH_W) 'netlink_unix_diag.c'; else $(CYGPATH_W) '$(srcdir)/netlink_unix_diag.c'; fi` -strace-number_set.o: number_set.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-number_set.o -MD -MP -MF $(DEPDIR)/strace-number_set.Tpo -c -o strace-number_set.o `test -f 'number_set.c' || echo '$(srcdir)/'`number_set.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-number_set.Tpo $(DEPDIR)/strace-number_set.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='number_set.c' object='strace-number_set.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-nlattr.o: nlattr.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-nlattr.o -MD -MP -MF $(DEPDIR)/libstrace_a-nlattr.Tpo -c -o libstrace_a-nlattr.o `test -f 'nlattr.c' || echo '$(srcdir)/'`nlattr.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-nlattr.Tpo $(DEPDIR)/libstrace_a-nlattr.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nlattr.c' object='libstrace_a-nlattr.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-number_set.o `test -f 'number_set.c' || echo '$(srcdir)/'`number_set.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-nlattr.o `test -f 'nlattr.c' || echo '$(srcdir)/'`nlattr.c -strace-number_set.obj: number_set.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-number_set.obj -MD -MP -MF $(DEPDIR)/strace-number_set.Tpo -c -o strace-number_set.obj `if test -f 'number_set.c'; then $(CYGPATH_W) 'number_set.c'; else $(CYGPATH_W) '$(srcdir)/number_set.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-number_set.Tpo $(DEPDIR)/strace-number_set.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='number_set.c' object='strace-number_set.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-nlattr.obj: nlattr.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-nlattr.obj -MD -MP -MF $(DEPDIR)/libstrace_a-nlattr.Tpo -c -o libstrace_a-nlattr.obj `if test -f 'nlattr.c'; then $(CYGPATH_W) 'nlattr.c'; else $(CYGPATH_W) '$(srcdir)/nlattr.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-nlattr.Tpo $(DEPDIR)/libstrace_a-nlattr.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nlattr.c' object='libstrace_a-nlattr.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-number_set.obj `if test -f 'number_set.c'; then $(CYGPATH_W) 'number_set.c'; else $(CYGPATH_W) '$(srcdir)/number_set.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-nlattr.obj `if test -f 'nlattr.c'; then $(CYGPATH_W) 'nlattr.c'; else $(CYGPATH_W) '$(srcdir)/nlattr.c'; fi` -strace-oldstat.o: oldstat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-oldstat.o -MD -MP -MF $(DEPDIR)/strace-oldstat.Tpo -c -o strace-oldstat.o `test -f 'oldstat.c' || echo '$(srcdir)/'`oldstat.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-oldstat.Tpo $(DEPDIR)/strace-oldstat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='oldstat.c' object='strace-oldstat.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-nsfs.o: nsfs.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-nsfs.o -MD -MP -MF $(DEPDIR)/libstrace_a-nsfs.Tpo -c -o libstrace_a-nsfs.o `test -f 'nsfs.c' || echo '$(srcdir)/'`nsfs.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-nsfs.Tpo $(DEPDIR)/libstrace_a-nsfs.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nsfs.c' object='libstrace_a-nsfs.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-oldstat.o `test -f 'oldstat.c' || echo '$(srcdir)/'`oldstat.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-nsfs.o `test -f 'nsfs.c' || echo '$(srcdir)/'`nsfs.c -strace-oldstat.obj: oldstat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-oldstat.obj -MD -MP -MF $(DEPDIR)/strace-oldstat.Tpo -c -o strace-oldstat.obj `if test -f 'oldstat.c'; then $(CYGPATH_W) 'oldstat.c'; else $(CYGPATH_W) '$(srcdir)/oldstat.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-oldstat.Tpo $(DEPDIR)/strace-oldstat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='oldstat.c' object='strace-oldstat.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-nsfs.obj: nsfs.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-nsfs.obj -MD -MP -MF $(DEPDIR)/libstrace_a-nsfs.Tpo -c -o libstrace_a-nsfs.obj `if test -f 'nsfs.c'; then $(CYGPATH_W) 'nsfs.c'; else $(CYGPATH_W) '$(srcdir)/nsfs.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-nsfs.Tpo $(DEPDIR)/libstrace_a-nsfs.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nsfs.c' object='libstrace_a-nsfs.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-oldstat.obj `if test -f 'oldstat.c'; then $(CYGPATH_W) 'oldstat.c'; else $(CYGPATH_W) '$(srcdir)/oldstat.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-nsfs.obj `if test -f 'nsfs.c'; then $(CYGPATH_W) 'nsfs.c'; else $(CYGPATH_W) '$(srcdir)/nsfs.c'; fi` -strace-open.o: open.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-open.o -MD -MP -MF $(DEPDIR)/strace-open.Tpo -c -o strace-open.o `test -f 'open.c' || echo '$(srcdir)/'`open.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-open.Tpo $(DEPDIR)/strace-open.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='open.c' object='strace-open.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-numa.o: numa.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-numa.o -MD -MP -MF $(DEPDIR)/libstrace_a-numa.Tpo -c -o libstrace_a-numa.o `test -f 'numa.c' || echo '$(srcdir)/'`numa.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-numa.Tpo $(DEPDIR)/libstrace_a-numa.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='numa.c' object='libstrace_a-numa.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-open.o `test -f 'open.c' || echo '$(srcdir)/'`open.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-numa.o `test -f 'numa.c' || echo '$(srcdir)/'`numa.c -strace-open.obj: open.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-open.obj -MD -MP -MF $(DEPDIR)/strace-open.Tpo -c -o strace-open.obj `if test -f 'open.c'; then $(CYGPATH_W) 'open.c'; else $(CYGPATH_W) '$(srcdir)/open.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-open.Tpo $(DEPDIR)/strace-open.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='open.c' object='strace-open.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-numa.obj: numa.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-numa.obj -MD -MP -MF $(DEPDIR)/libstrace_a-numa.Tpo -c -o libstrace_a-numa.obj `if test -f 'numa.c'; then $(CYGPATH_W) 'numa.c'; else $(CYGPATH_W) '$(srcdir)/numa.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-numa.Tpo $(DEPDIR)/libstrace_a-numa.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='numa.c' object='libstrace_a-numa.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-open.obj `if test -f 'open.c'; then $(CYGPATH_W) 'open.c'; else $(CYGPATH_W) '$(srcdir)/open.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-numa.obj `if test -f 'numa.c'; then $(CYGPATH_W) 'numa.c'; else $(CYGPATH_W) '$(srcdir)/numa.c'; fi` -strace-or1k_atomic.o: or1k_atomic.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-or1k_atomic.o -MD -MP -MF $(DEPDIR)/strace-or1k_atomic.Tpo -c -o strace-or1k_atomic.o `test -f 'or1k_atomic.c' || echo '$(srcdir)/'`or1k_atomic.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-or1k_atomic.Tpo $(DEPDIR)/strace-or1k_atomic.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='or1k_atomic.c' object='strace-or1k_atomic.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-number_set.o: number_set.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-number_set.o -MD -MP -MF $(DEPDIR)/libstrace_a-number_set.Tpo -c -o libstrace_a-number_set.o `test -f 'number_set.c' || echo '$(srcdir)/'`number_set.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-number_set.Tpo $(DEPDIR)/libstrace_a-number_set.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='number_set.c' object='libstrace_a-number_set.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-or1k_atomic.o `test -f 'or1k_atomic.c' || echo '$(srcdir)/'`or1k_atomic.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-number_set.o `test -f 'number_set.c' || echo '$(srcdir)/'`number_set.c -strace-or1k_atomic.obj: or1k_atomic.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-or1k_atomic.obj -MD -MP -MF $(DEPDIR)/strace-or1k_atomic.Tpo -c -o strace-or1k_atomic.obj `if test -f 'or1k_atomic.c'; then $(CYGPATH_W) 'or1k_atomic.c'; else $(CYGPATH_W) '$(srcdir)/or1k_atomic.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-or1k_atomic.Tpo $(DEPDIR)/strace-or1k_atomic.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='or1k_atomic.c' object='strace-or1k_atomic.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-number_set.obj: number_set.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-number_set.obj -MD -MP -MF $(DEPDIR)/libstrace_a-number_set.Tpo -c -o libstrace_a-number_set.obj `if test -f 'number_set.c'; then $(CYGPATH_W) 'number_set.c'; else $(CYGPATH_W) '$(srcdir)/number_set.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-number_set.Tpo $(DEPDIR)/libstrace_a-number_set.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='number_set.c' object='libstrace_a-number_set.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-or1k_atomic.obj `if test -f 'or1k_atomic.c'; then $(CYGPATH_W) 'or1k_atomic.c'; else $(CYGPATH_W) '$(srcdir)/or1k_atomic.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-number_set.obj `if test -f 'number_set.c'; then $(CYGPATH_W) 'number_set.c'; else $(CYGPATH_W) '$(srcdir)/number_set.c'; fi` -strace-pathtrace.o: pathtrace.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-pathtrace.o -MD -MP -MF $(DEPDIR)/strace-pathtrace.Tpo -c -o strace-pathtrace.o `test -f 'pathtrace.c' || echo '$(srcdir)/'`pathtrace.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-pathtrace.Tpo $(DEPDIR)/strace-pathtrace.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pathtrace.c' object='strace-pathtrace.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-oldstat.o: oldstat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-oldstat.o -MD -MP -MF $(DEPDIR)/libstrace_a-oldstat.Tpo -c -o libstrace_a-oldstat.o `test -f 'oldstat.c' || echo '$(srcdir)/'`oldstat.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-oldstat.Tpo $(DEPDIR)/libstrace_a-oldstat.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='oldstat.c' object='libstrace_a-oldstat.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-pathtrace.o `test -f 'pathtrace.c' || echo '$(srcdir)/'`pathtrace.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-oldstat.o `test -f 'oldstat.c' || echo '$(srcdir)/'`oldstat.c -strace-pathtrace.obj: pathtrace.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-pathtrace.obj -MD -MP -MF $(DEPDIR)/strace-pathtrace.Tpo -c -o strace-pathtrace.obj `if test -f 'pathtrace.c'; then $(CYGPATH_W) 'pathtrace.c'; else $(CYGPATH_W) '$(srcdir)/pathtrace.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-pathtrace.Tpo $(DEPDIR)/strace-pathtrace.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pathtrace.c' object='strace-pathtrace.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-oldstat.obj: oldstat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-oldstat.obj -MD -MP -MF $(DEPDIR)/libstrace_a-oldstat.Tpo -c -o libstrace_a-oldstat.obj `if test -f 'oldstat.c'; then $(CYGPATH_W) 'oldstat.c'; else $(CYGPATH_W) '$(srcdir)/oldstat.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-oldstat.Tpo $(DEPDIR)/libstrace_a-oldstat.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='oldstat.c' object='libstrace_a-oldstat.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-pathtrace.obj `if test -f 'pathtrace.c'; then $(CYGPATH_W) 'pathtrace.c'; else $(CYGPATH_W) '$(srcdir)/pathtrace.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-oldstat.obj `if test -f 'oldstat.c'; then $(CYGPATH_W) 'oldstat.c'; else $(CYGPATH_W) '$(srcdir)/oldstat.c'; fi` -strace-perf.o: perf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-perf.o -MD -MP -MF $(DEPDIR)/strace-perf.Tpo -c -o strace-perf.o `test -f 'perf.c' || echo '$(srcdir)/'`perf.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-perf.Tpo $(DEPDIR)/strace-perf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='perf.c' object='strace-perf.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-open.o: open.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-open.o -MD -MP -MF $(DEPDIR)/libstrace_a-open.Tpo -c -o libstrace_a-open.o `test -f 'open.c' || echo '$(srcdir)/'`open.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-open.Tpo $(DEPDIR)/libstrace_a-open.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='open.c' object='libstrace_a-open.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-perf.o `test -f 'perf.c' || echo '$(srcdir)/'`perf.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-open.o `test -f 'open.c' || echo '$(srcdir)/'`open.c -strace-perf.obj: perf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-perf.obj -MD -MP -MF $(DEPDIR)/strace-perf.Tpo -c -o strace-perf.obj `if test -f 'perf.c'; then $(CYGPATH_W) 'perf.c'; else $(CYGPATH_W) '$(srcdir)/perf.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-perf.Tpo $(DEPDIR)/strace-perf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='perf.c' object='strace-perf.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-open.obj: open.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-open.obj -MD -MP -MF $(DEPDIR)/libstrace_a-open.Tpo -c -o libstrace_a-open.obj `if test -f 'open.c'; then $(CYGPATH_W) 'open.c'; else $(CYGPATH_W) '$(srcdir)/open.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-open.Tpo $(DEPDIR)/libstrace_a-open.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='open.c' object='libstrace_a-open.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-perf.obj `if test -f 'perf.c'; then $(CYGPATH_W) 'perf.c'; else $(CYGPATH_W) '$(srcdir)/perf.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-open.obj `if test -f 'open.c'; then $(CYGPATH_W) 'open.c'; else $(CYGPATH_W) '$(srcdir)/open.c'; fi` -strace-perf_ioctl.o: perf_ioctl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-perf_ioctl.o -MD -MP -MF $(DEPDIR)/strace-perf_ioctl.Tpo -c -o strace-perf_ioctl.o `test -f 'perf_ioctl.c' || echo '$(srcdir)/'`perf_ioctl.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-perf_ioctl.Tpo $(DEPDIR)/strace-perf_ioctl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='perf_ioctl.c' object='strace-perf_ioctl.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-open_tree.o: open_tree.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-open_tree.o -MD -MP -MF $(DEPDIR)/libstrace_a-open_tree.Tpo -c -o libstrace_a-open_tree.o `test -f 'open_tree.c' || echo '$(srcdir)/'`open_tree.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-open_tree.Tpo $(DEPDIR)/libstrace_a-open_tree.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='open_tree.c' object='libstrace_a-open_tree.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-perf_ioctl.o `test -f 'perf_ioctl.c' || echo '$(srcdir)/'`perf_ioctl.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-open_tree.o `test -f 'open_tree.c' || echo '$(srcdir)/'`open_tree.c -strace-perf_ioctl.obj: perf_ioctl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-perf_ioctl.obj -MD -MP -MF $(DEPDIR)/strace-perf_ioctl.Tpo -c -o strace-perf_ioctl.obj `if test -f 'perf_ioctl.c'; then $(CYGPATH_W) 'perf_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/perf_ioctl.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-perf_ioctl.Tpo $(DEPDIR)/strace-perf_ioctl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='perf_ioctl.c' object='strace-perf_ioctl.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-open_tree.obj: open_tree.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-open_tree.obj -MD -MP -MF $(DEPDIR)/libstrace_a-open_tree.Tpo -c -o libstrace_a-open_tree.obj `if test -f 'open_tree.c'; then $(CYGPATH_W) 'open_tree.c'; else $(CYGPATH_W) '$(srcdir)/open_tree.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-open_tree.Tpo $(DEPDIR)/libstrace_a-open_tree.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='open_tree.c' object='libstrace_a-open_tree.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-perf_ioctl.obj `if test -f 'perf_ioctl.c'; then $(CYGPATH_W) 'perf_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/perf_ioctl.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-open_tree.obj `if test -f 'open_tree.c'; then $(CYGPATH_W) 'open_tree.c'; else $(CYGPATH_W) '$(srcdir)/open_tree.c'; fi` -strace-personality.o: personality.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-personality.o -MD -MP -MF $(DEPDIR)/strace-personality.Tpo -c -o strace-personality.o `test -f 'personality.c' || echo '$(srcdir)/'`personality.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-personality.Tpo $(DEPDIR)/strace-personality.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='personality.c' object='strace-personality.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-or1k_atomic.o: or1k_atomic.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-or1k_atomic.o -MD -MP -MF $(DEPDIR)/libstrace_a-or1k_atomic.Tpo -c -o libstrace_a-or1k_atomic.o `test -f 'or1k_atomic.c' || echo '$(srcdir)/'`or1k_atomic.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-or1k_atomic.Tpo $(DEPDIR)/libstrace_a-or1k_atomic.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='or1k_atomic.c' object='libstrace_a-or1k_atomic.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-personality.o `test -f 'personality.c' || echo '$(srcdir)/'`personality.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-or1k_atomic.o `test -f 'or1k_atomic.c' || echo '$(srcdir)/'`or1k_atomic.c -strace-personality.obj: personality.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-personality.obj -MD -MP -MF $(DEPDIR)/strace-personality.Tpo -c -o strace-personality.obj `if test -f 'personality.c'; then $(CYGPATH_W) 'personality.c'; else $(CYGPATH_W) '$(srcdir)/personality.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-personality.Tpo $(DEPDIR)/strace-personality.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='personality.c' object='strace-personality.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-or1k_atomic.obj: or1k_atomic.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-or1k_atomic.obj -MD -MP -MF $(DEPDIR)/libstrace_a-or1k_atomic.Tpo -c -o libstrace_a-or1k_atomic.obj `if test -f 'or1k_atomic.c'; then $(CYGPATH_W) 'or1k_atomic.c'; else $(CYGPATH_W) '$(srcdir)/or1k_atomic.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-or1k_atomic.Tpo $(DEPDIR)/libstrace_a-or1k_atomic.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='or1k_atomic.c' object='libstrace_a-or1k_atomic.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-personality.obj `if test -f 'personality.c'; then $(CYGPATH_W) 'personality.c'; else $(CYGPATH_W) '$(srcdir)/personality.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-or1k_atomic.obj `if test -f 'or1k_atomic.c'; then $(CYGPATH_W) 'or1k_atomic.c'; else $(CYGPATH_W) '$(srcdir)/or1k_atomic.c'; fi` -strace-pkeys.o: pkeys.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-pkeys.o -MD -MP -MF $(DEPDIR)/strace-pkeys.Tpo -c -o strace-pkeys.o `test -f 'pkeys.c' || echo '$(srcdir)/'`pkeys.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-pkeys.Tpo $(DEPDIR)/strace-pkeys.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pkeys.c' object='strace-pkeys.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-pathtrace.o: pathtrace.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-pathtrace.o -MD -MP -MF $(DEPDIR)/libstrace_a-pathtrace.Tpo -c -o libstrace_a-pathtrace.o `test -f 'pathtrace.c' || echo '$(srcdir)/'`pathtrace.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-pathtrace.Tpo $(DEPDIR)/libstrace_a-pathtrace.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pathtrace.c' object='libstrace_a-pathtrace.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-pkeys.o `test -f 'pkeys.c' || echo '$(srcdir)/'`pkeys.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-pathtrace.o `test -f 'pathtrace.c' || echo '$(srcdir)/'`pathtrace.c -strace-pkeys.obj: pkeys.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-pkeys.obj -MD -MP -MF $(DEPDIR)/strace-pkeys.Tpo -c -o strace-pkeys.obj `if test -f 'pkeys.c'; then $(CYGPATH_W) 'pkeys.c'; else $(CYGPATH_W) '$(srcdir)/pkeys.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-pkeys.Tpo $(DEPDIR)/strace-pkeys.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pkeys.c' object='strace-pkeys.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-pathtrace.obj: pathtrace.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-pathtrace.obj -MD -MP -MF $(DEPDIR)/libstrace_a-pathtrace.Tpo -c -o libstrace_a-pathtrace.obj `if test -f 'pathtrace.c'; then $(CYGPATH_W) 'pathtrace.c'; else $(CYGPATH_W) '$(srcdir)/pathtrace.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-pathtrace.Tpo $(DEPDIR)/libstrace_a-pathtrace.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pathtrace.c' object='libstrace_a-pathtrace.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-pkeys.obj `if test -f 'pkeys.c'; then $(CYGPATH_W) 'pkeys.c'; else $(CYGPATH_W) '$(srcdir)/pkeys.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-pathtrace.obj `if test -f 'pathtrace.c'; then $(CYGPATH_W) 'pathtrace.c'; else $(CYGPATH_W) '$(srcdir)/pathtrace.c'; fi` -strace-poll.o: poll.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-poll.o -MD -MP -MF $(DEPDIR)/strace-poll.Tpo -c -o strace-poll.o `test -f 'poll.c' || echo '$(srcdir)/'`poll.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-poll.Tpo $(DEPDIR)/strace-poll.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='poll.c' object='strace-poll.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-perf.o: perf.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-perf.o -MD -MP -MF $(DEPDIR)/libstrace_a-perf.Tpo -c -o libstrace_a-perf.o `test -f 'perf.c' || echo '$(srcdir)/'`perf.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-perf.Tpo $(DEPDIR)/libstrace_a-perf.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='perf.c' object='libstrace_a-perf.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-poll.o `test -f 'poll.c' || echo '$(srcdir)/'`poll.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-perf.o `test -f 'perf.c' || echo '$(srcdir)/'`perf.c -strace-poll.obj: poll.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-poll.obj -MD -MP -MF $(DEPDIR)/strace-poll.Tpo -c -o strace-poll.obj `if test -f 'poll.c'; then $(CYGPATH_W) 'poll.c'; else $(CYGPATH_W) '$(srcdir)/poll.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-poll.Tpo $(DEPDIR)/strace-poll.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='poll.c' object='strace-poll.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-perf.obj: perf.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-perf.obj -MD -MP -MF $(DEPDIR)/libstrace_a-perf.Tpo -c -o libstrace_a-perf.obj `if test -f 'perf.c'; then $(CYGPATH_W) 'perf.c'; else $(CYGPATH_W) '$(srcdir)/perf.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-perf.Tpo $(DEPDIR)/libstrace_a-perf.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='perf.c' object='libstrace_a-perf.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-poll.obj `if test -f 'poll.c'; then $(CYGPATH_W) 'poll.c'; else $(CYGPATH_W) '$(srcdir)/poll.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-perf.obj `if test -f 'perf.c'; then $(CYGPATH_W) 'perf.c'; else $(CYGPATH_W) '$(srcdir)/perf.c'; fi` -strace-prctl.o: prctl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-prctl.o -MD -MP -MF $(DEPDIR)/strace-prctl.Tpo -c -o strace-prctl.o `test -f 'prctl.c' || echo '$(srcdir)/'`prctl.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-prctl.Tpo $(DEPDIR)/strace-prctl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='prctl.c' object='strace-prctl.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-perf_ioctl.o: perf_ioctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-perf_ioctl.o -MD -MP -MF $(DEPDIR)/libstrace_a-perf_ioctl.Tpo -c -o libstrace_a-perf_ioctl.o `test -f 'perf_ioctl.c' || echo '$(srcdir)/'`perf_ioctl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-perf_ioctl.Tpo $(DEPDIR)/libstrace_a-perf_ioctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='perf_ioctl.c' object='libstrace_a-perf_ioctl.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-prctl.o `test -f 'prctl.c' || echo '$(srcdir)/'`prctl.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-perf_ioctl.o `test -f 'perf_ioctl.c' || echo '$(srcdir)/'`perf_ioctl.c -strace-prctl.obj: prctl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-prctl.obj -MD -MP -MF $(DEPDIR)/strace-prctl.Tpo -c -o strace-prctl.obj `if test -f 'prctl.c'; then $(CYGPATH_W) 'prctl.c'; else $(CYGPATH_W) '$(srcdir)/prctl.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-prctl.Tpo $(DEPDIR)/strace-prctl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='prctl.c' object='strace-prctl.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-perf_ioctl.obj: perf_ioctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-perf_ioctl.obj -MD -MP -MF $(DEPDIR)/libstrace_a-perf_ioctl.Tpo -c -o libstrace_a-perf_ioctl.obj `if test -f 'perf_ioctl.c'; then $(CYGPATH_W) 'perf_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/perf_ioctl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-perf_ioctl.Tpo $(DEPDIR)/libstrace_a-perf_ioctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='perf_ioctl.c' object='libstrace_a-perf_ioctl.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-prctl.obj `if test -f 'prctl.c'; then $(CYGPATH_W) 'prctl.c'; else $(CYGPATH_W) '$(srcdir)/prctl.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-perf_ioctl.obj `if test -f 'perf_ioctl.c'; then $(CYGPATH_W) 'perf_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/perf_ioctl.c'; fi` -strace-print_aio_sigset.o: print_aio_sigset.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_aio_sigset.o -MD -MP -MF $(DEPDIR)/strace-print_aio_sigset.Tpo -c -o strace-print_aio_sigset.o `test -f 'print_aio_sigset.c' || echo '$(srcdir)/'`print_aio_sigset.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_aio_sigset.Tpo $(DEPDIR)/strace-print_aio_sigset.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_aio_sigset.c' object='strace-print_aio_sigset.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-personality.o: personality.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-personality.o -MD -MP -MF $(DEPDIR)/libstrace_a-personality.Tpo -c -o libstrace_a-personality.o `test -f 'personality.c' || echo '$(srcdir)/'`personality.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-personality.Tpo $(DEPDIR)/libstrace_a-personality.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='personality.c' object='libstrace_a-personality.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_aio_sigset.o `test -f 'print_aio_sigset.c' || echo '$(srcdir)/'`print_aio_sigset.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-personality.o `test -f 'personality.c' || echo '$(srcdir)/'`personality.c -strace-print_aio_sigset.obj: print_aio_sigset.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_aio_sigset.obj -MD -MP -MF $(DEPDIR)/strace-print_aio_sigset.Tpo -c -o strace-print_aio_sigset.obj `if test -f 'print_aio_sigset.c'; then $(CYGPATH_W) 'print_aio_sigset.c'; else $(CYGPATH_W) '$(srcdir)/print_aio_sigset.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_aio_sigset.Tpo $(DEPDIR)/strace-print_aio_sigset.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_aio_sigset.c' object='strace-print_aio_sigset.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-personality.obj: personality.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-personality.obj -MD -MP -MF $(DEPDIR)/libstrace_a-personality.Tpo -c -o libstrace_a-personality.obj `if test -f 'personality.c'; then $(CYGPATH_W) 'personality.c'; else $(CYGPATH_W) '$(srcdir)/personality.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-personality.Tpo $(DEPDIR)/libstrace_a-personality.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='personality.c' object='libstrace_a-personality.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_aio_sigset.obj `if test -f 'print_aio_sigset.c'; then $(CYGPATH_W) 'print_aio_sigset.c'; else $(CYGPATH_W) '$(srcdir)/print_aio_sigset.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-personality.obj `if test -f 'personality.c'; then $(CYGPATH_W) 'personality.c'; else $(CYGPATH_W) '$(srcdir)/personality.c'; fi` -strace-print_dev_t.o: print_dev_t.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_dev_t.o -MD -MP -MF $(DEPDIR)/strace-print_dev_t.Tpo -c -o strace-print_dev_t.o `test -f 'print_dev_t.c' || echo '$(srcdir)/'`print_dev_t.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_dev_t.Tpo $(DEPDIR)/strace-print_dev_t.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_dev_t.c' object='strace-print_dev_t.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-pidfd_getfd.o: pidfd_getfd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-pidfd_getfd.o -MD -MP -MF $(DEPDIR)/libstrace_a-pidfd_getfd.Tpo -c -o libstrace_a-pidfd_getfd.o `test -f 'pidfd_getfd.c' || echo '$(srcdir)/'`pidfd_getfd.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-pidfd_getfd.Tpo $(DEPDIR)/libstrace_a-pidfd_getfd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pidfd_getfd.c' object='libstrace_a-pidfd_getfd.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_dev_t.o `test -f 'print_dev_t.c' || echo '$(srcdir)/'`print_dev_t.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-pidfd_getfd.o `test -f 'pidfd_getfd.c' || echo '$(srcdir)/'`pidfd_getfd.c -strace-print_dev_t.obj: print_dev_t.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_dev_t.obj -MD -MP -MF $(DEPDIR)/strace-print_dev_t.Tpo -c -o strace-print_dev_t.obj `if test -f 'print_dev_t.c'; then $(CYGPATH_W) 'print_dev_t.c'; else $(CYGPATH_W) '$(srcdir)/print_dev_t.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_dev_t.Tpo $(DEPDIR)/strace-print_dev_t.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_dev_t.c' object='strace-print_dev_t.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-pidfd_getfd.obj: pidfd_getfd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-pidfd_getfd.obj -MD -MP -MF $(DEPDIR)/libstrace_a-pidfd_getfd.Tpo -c -o libstrace_a-pidfd_getfd.obj `if test -f 'pidfd_getfd.c'; then $(CYGPATH_W) 'pidfd_getfd.c'; else $(CYGPATH_W) '$(srcdir)/pidfd_getfd.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-pidfd_getfd.Tpo $(DEPDIR)/libstrace_a-pidfd_getfd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pidfd_getfd.c' object='libstrace_a-pidfd_getfd.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_dev_t.obj `if test -f 'print_dev_t.c'; then $(CYGPATH_W) 'print_dev_t.c'; else $(CYGPATH_W) '$(srcdir)/print_dev_t.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-pidfd_getfd.obj `if test -f 'pidfd_getfd.c'; then $(CYGPATH_W) 'pidfd_getfd.c'; else $(CYGPATH_W) '$(srcdir)/pidfd_getfd.c'; fi` -strace-print_group_req.o: print_group_req.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_group_req.o -MD -MP -MF $(DEPDIR)/strace-print_group_req.Tpo -c -o strace-print_group_req.o `test -f 'print_group_req.c' || echo '$(srcdir)/'`print_group_req.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_group_req.Tpo $(DEPDIR)/strace-print_group_req.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_group_req.c' object='strace-print_group_req.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-pidfd_open.o: pidfd_open.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-pidfd_open.o -MD -MP -MF $(DEPDIR)/libstrace_a-pidfd_open.Tpo -c -o libstrace_a-pidfd_open.o `test -f 'pidfd_open.c' || echo '$(srcdir)/'`pidfd_open.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-pidfd_open.Tpo $(DEPDIR)/libstrace_a-pidfd_open.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pidfd_open.c' object='libstrace_a-pidfd_open.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_group_req.o `test -f 'print_group_req.c' || echo '$(srcdir)/'`print_group_req.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-pidfd_open.o `test -f 'pidfd_open.c' || echo '$(srcdir)/'`pidfd_open.c -strace-print_group_req.obj: print_group_req.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_group_req.obj -MD -MP -MF $(DEPDIR)/strace-print_group_req.Tpo -c -o strace-print_group_req.obj `if test -f 'print_group_req.c'; then $(CYGPATH_W) 'print_group_req.c'; else $(CYGPATH_W) '$(srcdir)/print_group_req.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_group_req.Tpo $(DEPDIR)/strace-print_group_req.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_group_req.c' object='strace-print_group_req.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-pidfd_open.obj: pidfd_open.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-pidfd_open.obj -MD -MP -MF $(DEPDIR)/libstrace_a-pidfd_open.Tpo -c -o libstrace_a-pidfd_open.obj `if test -f 'pidfd_open.c'; then $(CYGPATH_W) 'pidfd_open.c'; else $(CYGPATH_W) '$(srcdir)/pidfd_open.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-pidfd_open.Tpo $(DEPDIR)/libstrace_a-pidfd_open.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pidfd_open.c' object='libstrace_a-pidfd_open.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_group_req.obj `if test -f 'print_group_req.c'; then $(CYGPATH_W) 'print_group_req.c'; else $(CYGPATH_W) '$(srcdir)/print_group_req.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-pidfd_open.obj `if test -f 'pidfd_open.c'; then $(CYGPATH_W) 'pidfd_open.c'; else $(CYGPATH_W) '$(srcdir)/pidfd_open.c'; fi` -strace-print_ifindex.o: print_ifindex.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_ifindex.o -MD -MP -MF $(DEPDIR)/strace-print_ifindex.Tpo -c -o strace-print_ifindex.o `test -f 'print_ifindex.c' || echo '$(srcdir)/'`print_ifindex.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_ifindex.Tpo $(DEPDIR)/strace-print_ifindex.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_ifindex.c' object='strace-print_ifindex.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-pidns.o: pidns.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-pidns.o -MD -MP -MF $(DEPDIR)/libstrace_a-pidns.Tpo -c -o libstrace_a-pidns.o `test -f 'pidns.c' || echo '$(srcdir)/'`pidns.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-pidns.Tpo $(DEPDIR)/libstrace_a-pidns.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pidns.c' object='libstrace_a-pidns.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_ifindex.o `test -f 'print_ifindex.c' || echo '$(srcdir)/'`print_ifindex.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-pidns.o `test -f 'pidns.c' || echo '$(srcdir)/'`pidns.c -strace-print_ifindex.obj: print_ifindex.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_ifindex.obj -MD -MP -MF $(DEPDIR)/strace-print_ifindex.Tpo -c -o strace-print_ifindex.obj `if test -f 'print_ifindex.c'; then $(CYGPATH_W) 'print_ifindex.c'; else $(CYGPATH_W) '$(srcdir)/print_ifindex.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_ifindex.Tpo $(DEPDIR)/strace-print_ifindex.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_ifindex.c' object='strace-print_ifindex.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-pidns.obj: pidns.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-pidns.obj -MD -MP -MF $(DEPDIR)/libstrace_a-pidns.Tpo -c -o libstrace_a-pidns.obj `if test -f 'pidns.c'; then $(CYGPATH_W) 'pidns.c'; else $(CYGPATH_W) '$(srcdir)/pidns.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-pidns.Tpo $(DEPDIR)/libstrace_a-pidns.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pidns.c' object='libstrace_a-pidns.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_ifindex.obj `if test -f 'print_ifindex.c'; then $(CYGPATH_W) 'print_ifindex.c'; else $(CYGPATH_W) '$(srcdir)/print_ifindex.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-pidns.obj `if test -f 'pidns.c'; then $(CYGPATH_W) 'pidns.c'; else $(CYGPATH_W) '$(srcdir)/pidns.c'; fi` -strace-print_instruction_pointer.o: print_instruction_pointer.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_instruction_pointer.o -MD -MP -MF $(DEPDIR)/strace-print_instruction_pointer.Tpo -c -o strace-print_instruction_pointer.o `test -f 'print_instruction_pointer.c' || echo '$(srcdir)/'`print_instruction_pointer.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_instruction_pointer.Tpo $(DEPDIR)/strace-print_instruction_pointer.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_instruction_pointer.c' object='strace-print_instruction_pointer.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-pkeys.o: pkeys.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-pkeys.o -MD -MP -MF $(DEPDIR)/libstrace_a-pkeys.Tpo -c -o libstrace_a-pkeys.o `test -f 'pkeys.c' || echo '$(srcdir)/'`pkeys.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-pkeys.Tpo $(DEPDIR)/libstrace_a-pkeys.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pkeys.c' object='libstrace_a-pkeys.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_instruction_pointer.o `test -f 'print_instruction_pointer.c' || echo '$(srcdir)/'`print_instruction_pointer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-pkeys.o `test -f 'pkeys.c' || echo '$(srcdir)/'`pkeys.c -strace-print_instruction_pointer.obj: print_instruction_pointer.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_instruction_pointer.obj -MD -MP -MF $(DEPDIR)/strace-print_instruction_pointer.Tpo -c -o strace-print_instruction_pointer.obj `if test -f 'print_instruction_pointer.c'; then $(CYGPATH_W) 'print_instruction_pointer.c'; else $(CYGPATH_W) '$(srcdir)/print_instruction_pointer.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_instruction_pointer.Tpo $(DEPDIR)/strace-print_instruction_pointer.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_instruction_pointer.c' object='strace-print_instruction_pointer.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-pkeys.obj: pkeys.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-pkeys.obj -MD -MP -MF $(DEPDIR)/libstrace_a-pkeys.Tpo -c -o libstrace_a-pkeys.obj `if test -f 'pkeys.c'; then $(CYGPATH_W) 'pkeys.c'; else $(CYGPATH_W) '$(srcdir)/pkeys.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-pkeys.Tpo $(DEPDIR)/libstrace_a-pkeys.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pkeys.c' object='libstrace_a-pkeys.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_instruction_pointer.obj `if test -f 'print_instruction_pointer.c'; then $(CYGPATH_W) 'print_instruction_pointer.c'; else $(CYGPATH_W) '$(srcdir)/print_instruction_pointer.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-pkeys.obj `if test -f 'pkeys.c'; then $(CYGPATH_W) 'pkeys.c'; else $(CYGPATH_W) '$(srcdir)/pkeys.c'; fi` -strace-print_kernel_version.o: print_kernel_version.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_kernel_version.o -MD -MP -MF $(DEPDIR)/strace-print_kernel_version.Tpo -c -o strace-print_kernel_version.o `test -f 'print_kernel_version.c' || echo '$(srcdir)/'`print_kernel_version.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_kernel_version.Tpo $(DEPDIR)/strace-print_kernel_version.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_kernel_version.c' object='strace-print_kernel_version.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-poll.o: poll.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-poll.o -MD -MP -MF $(DEPDIR)/libstrace_a-poll.Tpo -c -o libstrace_a-poll.o `test -f 'poll.c' || echo '$(srcdir)/'`poll.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-poll.Tpo $(DEPDIR)/libstrace_a-poll.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='poll.c' object='libstrace_a-poll.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_kernel_version.o `test -f 'print_kernel_version.c' || echo '$(srcdir)/'`print_kernel_version.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-poll.o `test -f 'poll.c' || echo '$(srcdir)/'`poll.c -strace-print_kernel_version.obj: print_kernel_version.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_kernel_version.obj -MD -MP -MF $(DEPDIR)/strace-print_kernel_version.Tpo -c -o strace-print_kernel_version.obj `if test -f 'print_kernel_version.c'; then $(CYGPATH_W) 'print_kernel_version.c'; else $(CYGPATH_W) '$(srcdir)/print_kernel_version.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_kernel_version.Tpo $(DEPDIR)/strace-print_kernel_version.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_kernel_version.c' object='strace-print_kernel_version.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-poll.obj: poll.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-poll.obj -MD -MP -MF $(DEPDIR)/libstrace_a-poll.Tpo -c -o libstrace_a-poll.obj `if test -f 'poll.c'; then $(CYGPATH_W) 'poll.c'; else $(CYGPATH_W) '$(srcdir)/poll.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-poll.Tpo $(DEPDIR)/libstrace_a-poll.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='poll.c' object='libstrace_a-poll.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_kernel_version.obj `if test -f 'print_kernel_version.c'; then $(CYGPATH_W) 'print_kernel_version.c'; else $(CYGPATH_W) '$(srcdir)/print_kernel_version.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-poll.obj `if test -f 'poll.c'; then $(CYGPATH_W) 'poll.c'; else $(CYGPATH_W) '$(srcdir)/poll.c'; fi` -strace-print_mac.o: print_mac.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_mac.o -MD -MP -MF $(DEPDIR)/strace-print_mac.Tpo -c -o strace-print_mac.o `test -f 'print_mac.c' || echo '$(srcdir)/'`print_mac.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_mac.Tpo $(DEPDIR)/strace-print_mac.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_mac.c' object='strace-print_mac.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-prctl.o: prctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-prctl.o -MD -MP -MF $(DEPDIR)/libstrace_a-prctl.Tpo -c -o libstrace_a-prctl.o `test -f 'prctl.c' || echo '$(srcdir)/'`prctl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-prctl.Tpo $(DEPDIR)/libstrace_a-prctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='prctl.c' object='libstrace_a-prctl.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_mac.o `test -f 'print_mac.c' || echo '$(srcdir)/'`print_mac.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-prctl.o `test -f 'prctl.c' || echo '$(srcdir)/'`prctl.c -strace-print_mac.obj: print_mac.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_mac.obj -MD -MP -MF $(DEPDIR)/strace-print_mac.Tpo -c -o strace-print_mac.obj `if test -f 'print_mac.c'; then $(CYGPATH_W) 'print_mac.c'; else $(CYGPATH_W) '$(srcdir)/print_mac.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_mac.Tpo $(DEPDIR)/strace-print_mac.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_mac.c' object='strace-print_mac.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-prctl.obj: prctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-prctl.obj -MD -MP -MF $(DEPDIR)/libstrace_a-prctl.Tpo -c -o libstrace_a-prctl.obj `if test -f 'prctl.c'; then $(CYGPATH_W) 'prctl.c'; else $(CYGPATH_W) '$(srcdir)/prctl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-prctl.Tpo $(DEPDIR)/libstrace_a-prctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='prctl.c' object='libstrace_a-prctl.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_mac.obj `if test -f 'print_mac.c'; then $(CYGPATH_W) 'print_mac.c'; else $(CYGPATH_W) '$(srcdir)/print_mac.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-prctl.obj `if test -f 'prctl.c'; then $(CYGPATH_W) 'prctl.c'; else $(CYGPATH_W) '$(srcdir)/prctl.c'; fi` -strace-print_mq_attr.o: print_mq_attr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_mq_attr.o -MD -MP -MF $(DEPDIR)/strace-print_mq_attr.Tpo -c -o strace-print_mq_attr.o `test -f 'print_mq_attr.c' || echo '$(srcdir)/'`print_mq_attr.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_mq_attr.Tpo $(DEPDIR)/strace-print_mq_attr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_mq_attr.c' object='strace-print_mq_attr.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_aio_sigset.o: print_aio_sigset.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_aio_sigset.o -MD -MP -MF $(DEPDIR)/libstrace_a-print_aio_sigset.Tpo -c -o libstrace_a-print_aio_sigset.o `test -f 'print_aio_sigset.c' || echo '$(srcdir)/'`print_aio_sigset.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_aio_sigset.Tpo $(DEPDIR)/libstrace_a-print_aio_sigset.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_aio_sigset.c' object='libstrace_a-print_aio_sigset.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_mq_attr.o `test -f 'print_mq_attr.c' || echo '$(srcdir)/'`print_mq_attr.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_aio_sigset.o `test -f 'print_aio_sigset.c' || echo '$(srcdir)/'`print_aio_sigset.c -strace-print_mq_attr.obj: print_mq_attr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_mq_attr.obj -MD -MP -MF $(DEPDIR)/strace-print_mq_attr.Tpo -c -o strace-print_mq_attr.obj `if test -f 'print_mq_attr.c'; then $(CYGPATH_W) 'print_mq_attr.c'; else $(CYGPATH_W) '$(srcdir)/print_mq_attr.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_mq_attr.Tpo $(DEPDIR)/strace-print_mq_attr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_mq_attr.c' object='strace-print_mq_attr.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_aio_sigset.obj: print_aio_sigset.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_aio_sigset.obj -MD -MP -MF $(DEPDIR)/libstrace_a-print_aio_sigset.Tpo -c -o libstrace_a-print_aio_sigset.obj `if test -f 'print_aio_sigset.c'; then $(CYGPATH_W) 'print_aio_sigset.c'; else $(CYGPATH_W) '$(srcdir)/print_aio_sigset.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_aio_sigset.Tpo $(DEPDIR)/libstrace_a-print_aio_sigset.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_aio_sigset.c' object='libstrace_a-print_aio_sigset.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_mq_attr.obj `if test -f 'print_mq_attr.c'; then $(CYGPATH_W) 'print_mq_attr.c'; else $(CYGPATH_W) '$(srcdir)/print_mq_attr.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_aio_sigset.obj `if test -f 'print_aio_sigset.c'; then $(CYGPATH_W) 'print_aio_sigset.c'; else $(CYGPATH_W) '$(srcdir)/print_aio_sigset.c'; fi` -strace-print_msgbuf.o: print_msgbuf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_msgbuf.o -MD -MP -MF $(DEPDIR)/strace-print_msgbuf.Tpo -c -o strace-print_msgbuf.o `test -f 'print_msgbuf.c' || echo '$(srcdir)/'`print_msgbuf.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_msgbuf.Tpo $(DEPDIR)/strace-print_msgbuf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_msgbuf.c' object='strace-print_msgbuf.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_dev_t.o: print_dev_t.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_dev_t.o -MD -MP -MF $(DEPDIR)/libstrace_a-print_dev_t.Tpo -c -o libstrace_a-print_dev_t.o `test -f 'print_dev_t.c' || echo '$(srcdir)/'`print_dev_t.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_dev_t.Tpo $(DEPDIR)/libstrace_a-print_dev_t.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_dev_t.c' object='libstrace_a-print_dev_t.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_msgbuf.o `test -f 'print_msgbuf.c' || echo '$(srcdir)/'`print_msgbuf.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_dev_t.o `test -f 'print_dev_t.c' || echo '$(srcdir)/'`print_dev_t.c -strace-print_msgbuf.obj: print_msgbuf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_msgbuf.obj -MD -MP -MF $(DEPDIR)/strace-print_msgbuf.Tpo -c -o strace-print_msgbuf.obj `if test -f 'print_msgbuf.c'; then $(CYGPATH_W) 'print_msgbuf.c'; else $(CYGPATH_W) '$(srcdir)/print_msgbuf.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_msgbuf.Tpo $(DEPDIR)/strace-print_msgbuf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_msgbuf.c' object='strace-print_msgbuf.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_dev_t.obj: print_dev_t.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_dev_t.obj -MD -MP -MF $(DEPDIR)/libstrace_a-print_dev_t.Tpo -c -o libstrace_a-print_dev_t.obj `if test -f 'print_dev_t.c'; then $(CYGPATH_W) 'print_dev_t.c'; else $(CYGPATH_W) '$(srcdir)/print_dev_t.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_dev_t.Tpo $(DEPDIR)/libstrace_a-print_dev_t.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_dev_t.c' object='libstrace_a-print_dev_t.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_msgbuf.obj `if test -f 'print_msgbuf.c'; then $(CYGPATH_W) 'print_msgbuf.c'; else $(CYGPATH_W) '$(srcdir)/print_msgbuf.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_dev_t.obj `if test -f 'print_dev_t.c'; then $(CYGPATH_W) 'print_dev_t.c'; else $(CYGPATH_W) '$(srcdir)/print_dev_t.c'; fi` -strace-print_sg_req_info.o: print_sg_req_info.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_sg_req_info.o -MD -MP -MF $(DEPDIR)/strace-print_sg_req_info.Tpo -c -o strace-print_sg_req_info.o `test -f 'print_sg_req_info.c' || echo '$(srcdir)/'`print_sg_req_info.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_sg_req_info.Tpo $(DEPDIR)/strace-print_sg_req_info.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_sg_req_info.c' object='strace-print_sg_req_info.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_group_req.o: print_group_req.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_group_req.o -MD -MP -MF $(DEPDIR)/libstrace_a-print_group_req.Tpo -c -o libstrace_a-print_group_req.o `test -f 'print_group_req.c' || echo '$(srcdir)/'`print_group_req.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_group_req.Tpo $(DEPDIR)/libstrace_a-print_group_req.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_group_req.c' object='libstrace_a-print_group_req.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_sg_req_info.o `test -f 'print_sg_req_info.c' || echo '$(srcdir)/'`print_sg_req_info.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_group_req.o `test -f 'print_group_req.c' || echo '$(srcdir)/'`print_group_req.c -strace-print_sg_req_info.obj: print_sg_req_info.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_sg_req_info.obj -MD -MP -MF $(DEPDIR)/strace-print_sg_req_info.Tpo -c -o strace-print_sg_req_info.obj `if test -f 'print_sg_req_info.c'; then $(CYGPATH_W) 'print_sg_req_info.c'; else $(CYGPATH_W) '$(srcdir)/print_sg_req_info.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_sg_req_info.Tpo $(DEPDIR)/strace-print_sg_req_info.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_sg_req_info.c' object='strace-print_sg_req_info.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_group_req.obj: print_group_req.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_group_req.obj -MD -MP -MF $(DEPDIR)/libstrace_a-print_group_req.Tpo -c -o libstrace_a-print_group_req.obj `if test -f 'print_group_req.c'; then $(CYGPATH_W) 'print_group_req.c'; else $(CYGPATH_W) '$(srcdir)/print_group_req.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_group_req.Tpo $(DEPDIR)/libstrace_a-print_group_req.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_group_req.c' object='libstrace_a-print_group_req.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_sg_req_info.obj `if test -f 'print_sg_req_info.c'; then $(CYGPATH_W) 'print_sg_req_info.c'; else $(CYGPATH_W) '$(srcdir)/print_sg_req_info.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_group_req.obj `if test -f 'print_group_req.c'; then $(CYGPATH_W) 'print_group_req.c'; else $(CYGPATH_W) '$(srcdir)/print_group_req.c'; fi` -strace-print_sigevent.o: print_sigevent.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_sigevent.o -MD -MP -MF $(DEPDIR)/strace-print_sigevent.Tpo -c -o strace-print_sigevent.o `test -f 'print_sigevent.c' || echo '$(srcdir)/'`print_sigevent.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_sigevent.Tpo $(DEPDIR)/strace-print_sigevent.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_sigevent.c' object='strace-print_sigevent.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_ifindex.o: print_ifindex.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_ifindex.o -MD -MP -MF $(DEPDIR)/libstrace_a-print_ifindex.Tpo -c -o libstrace_a-print_ifindex.o `test -f 'print_ifindex.c' || echo '$(srcdir)/'`print_ifindex.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_ifindex.Tpo $(DEPDIR)/libstrace_a-print_ifindex.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_ifindex.c' object='libstrace_a-print_ifindex.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_sigevent.o `test -f 'print_sigevent.c' || echo '$(srcdir)/'`print_sigevent.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_ifindex.o `test -f 'print_ifindex.c' || echo '$(srcdir)/'`print_ifindex.c -strace-print_sigevent.obj: print_sigevent.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_sigevent.obj -MD -MP -MF $(DEPDIR)/strace-print_sigevent.Tpo -c -o strace-print_sigevent.obj `if test -f 'print_sigevent.c'; then $(CYGPATH_W) 'print_sigevent.c'; else $(CYGPATH_W) '$(srcdir)/print_sigevent.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_sigevent.Tpo $(DEPDIR)/strace-print_sigevent.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_sigevent.c' object='strace-print_sigevent.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_ifindex.obj: print_ifindex.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_ifindex.obj -MD -MP -MF $(DEPDIR)/libstrace_a-print_ifindex.Tpo -c -o libstrace_a-print_ifindex.obj `if test -f 'print_ifindex.c'; then $(CYGPATH_W) 'print_ifindex.c'; else $(CYGPATH_W) '$(srcdir)/print_ifindex.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_ifindex.Tpo $(DEPDIR)/libstrace_a-print_ifindex.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_ifindex.c' object='libstrace_a-print_ifindex.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_sigevent.obj `if test -f 'print_sigevent.c'; then $(CYGPATH_W) 'print_sigevent.c'; else $(CYGPATH_W) '$(srcdir)/print_sigevent.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_ifindex.obj `if test -f 'print_ifindex.c'; then $(CYGPATH_W) 'print_ifindex.c'; else $(CYGPATH_W) '$(srcdir)/print_ifindex.c'; fi` -strace-print_statfs.o: print_statfs.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_statfs.o -MD -MP -MF $(DEPDIR)/strace-print_statfs.Tpo -c -o strace-print_statfs.o `test -f 'print_statfs.c' || echo '$(srcdir)/'`print_statfs.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_statfs.Tpo $(DEPDIR)/strace-print_statfs.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_statfs.c' object='strace-print_statfs.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_instruction_pointer.o: print_instruction_pointer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_instruction_pointer.o -MD -MP -MF $(DEPDIR)/libstrace_a-print_instruction_pointer.Tpo -c -o libstrace_a-print_instruction_pointer.o `test -f 'print_instruction_pointer.c' || echo '$(srcdir)/'`print_instruction_pointer.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_instruction_pointer.Tpo $(DEPDIR)/libstrace_a-print_instruction_pointer.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_instruction_pointer.c' object='libstrace_a-print_instruction_pointer.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_statfs.o `test -f 'print_statfs.c' || echo '$(srcdir)/'`print_statfs.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_instruction_pointer.o `test -f 'print_instruction_pointer.c' || echo '$(srcdir)/'`print_instruction_pointer.c -strace-print_statfs.obj: print_statfs.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_statfs.obj -MD -MP -MF $(DEPDIR)/strace-print_statfs.Tpo -c -o strace-print_statfs.obj `if test -f 'print_statfs.c'; then $(CYGPATH_W) 'print_statfs.c'; else $(CYGPATH_W) '$(srcdir)/print_statfs.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_statfs.Tpo $(DEPDIR)/strace-print_statfs.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_statfs.c' object='strace-print_statfs.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_instruction_pointer.obj: print_instruction_pointer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_instruction_pointer.obj -MD -MP -MF $(DEPDIR)/libstrace_a-print_instruction_pointer.Tpo -c -o libstrace_a-print_instruction_pointer.obj `if test -f 'print_instruction_pointer.c'; then $(CYGPATH_W) 'print_instruction_pointer.c'; else $(CYGPATH_W) '$(srcdir)/print_instruction_pointer.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_instruction_pointer.Tpo $(DEPDIR)/libstrace_a-print_instruction_pointer.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_instruction_pointer.c' object='libstrace_a-print_instruction_pointer.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_statfs.obj `if test -f 'print_statfs.c'; then $(CYGPATH_W) 'print_statfs.c'; else $(CYGPATH_W) '$(srcdir)/print_statfs.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_instruction_pointer.obj `if test -f 'print_instruction_pointer.c'; then $(CYGPATH_W) 'print_instruction_pointer.c'; else $(CYGPATH_W) '$(srcdir)/print_instruction_pointer.c'; fi` -strace-print_struct_stat.o: print_struct_stat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_struct_stat.o -MD -MP -MF $(DEPDIR)/strace-print_struct_stat.Tpo -c -o strace-print_struct_stat.o `test -f 'print_struct_stat.c' || echo '$(srcdir)/'`print_struct_stat.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_struct_stat.Tpo $(DEPDIR)/strace-print_struct_stat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_struct_stat.c' object='strace-print_struct_stat.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_kernel_version.o: print_kernel_version.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_kernel_version.o -MD -MP -MF $(DEPDIR)/libstrace_a-print_kernel_version.Tpo -c -o libstrace_a-print_kernel_version.o `test -f 'print_kernel_version.c' || echo '$(srcdir)/'`print_kernel_version.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_kernel_version.Tpo $(DEPDIR)/libstrace_a-print_kernel_version.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_kernel_version.c' object='libstrace_a-print_kernel_version.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_struct_stat.o `test -f 'print_struct_stat.c' || echo '$(srcdir)/'`print_struct_stat.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_kernel_version.o `test -f 'print_kernel_version.c' || echo '$(srcdir)/'`print_kernel_version.c -strace-print_struct_stat.obj: print_struct_stat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_struct_stat.obj -MD -MP -MF $(DEPDIR)/strace-print_struct_stat.Tpo -c -o strace-print_struct_stat.obj `if test -f 'print_struct_stat.c'; then $(CYGPATH_W) 'print_struct_stat.c'; else $(CYGPATH_W) '$(srcdir)/print_struct_stat.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_struct_stat.Tpo $(DEPDIR)/strace-print_struct_stat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_struct_stat.c' object='strace-print_struct_stat.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_kernel_version.obj: print_kernel_version.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_kernel_version.obj -MD -MP -MF $(DEPDIR)/libstrace_a-print_kernel_version.Tpo -c -o libstrace_a-print_kernel_version.obj `if test -f 'print_kernel_version.c'; then $(CYGPATH_W) 'print_kernel_version.c'; else $(CYGPATH_W) '$(srcdir)/print_kernel_version.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_kernel_version.Tpo $(DEPDIR)/libstrace_a-print_kernel_version.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_kernel_version.c' object='libstrace_a-print_kernel_version.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_struct_stat.obj `if test -f 'print_struct_stat.c'; then $(CYGPATH_W) 'print_struct_stat.c'; else $(CYGPATH_W) '$(srcdir)/print_struct_stat.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_kernel_version.obj `if test -f 'print_kernel_version.c'; then $(CYGPATH_W) 'print_kernel_version.c'; else $(CYGPATH_W) '$(srcdir)/print_kernel_version.c'; fi` -strace-print_time.o: print_time.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_time.o -MD -MP -MF $(DEPDIR)/strace-print_time.Tpo -c -o strace-print_time.o `test -f 'print_time.c' || echo '$(srcdir)/'`print_time.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_time.Tpo $(DEPDIR)/strace-print_time.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_time.c' object='strace-print_time.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_mac.o: print_mac.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_mac.o -MD -MP -MF $(DEPDIR)/libstrace_a-print_mac.Tpo -c -o libstrace_a-print_mac.o `test -f 'print_mac.c' || echo '$(srcdir)/'`print_mac.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_mac.Tpo $(DEPDIR)/libstrace_a-print_mac.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_mac.c' object='libstrace_a-print_mac.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_time.o `test -f 'print_time.c' || echo '$(srcdir)/'`print_time.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_mac.o `test -f 'print_mac.c' || echo '$(srcdir)/'`print_mac.c -strace-print_time.obj: print_time.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_time.obj -MD -MP -MF $(DEPDIR)/strace-print_time.Tpo -c -o strace-print_time.obj `if test -f 'print_time.c'; then $(CYGPATH_W) 'print_time.c'; else $(CYGPATH_W) '$(srcdir)/print_time.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_time.Tpo $(DEPDIR)/strace-print_time.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_time.c' object='strace-print_time.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_mac.obj: print_mac.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_mac.obj -MD -MP -MF $(DEPDIR)/libstrace_a-print_mac.Tpo -c -o libstrace_a-print_mac.obj `if test -f 'print_mac.c'; then $(CYGPATH_W) 'print_mac.c'; else $(CYGPATH_W) '$(srcdir)/print_mac.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_mac.Tpo $(DEPDIR)/libstrace_a-print_mac.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_mac.c' object='libstrace_a-print_mac.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_time.obj `if test -f 'print_time.c'; then $(CYGPATH_W) 'print_time.c'; else $(CYGPATH_W) '$(srcdir)/print_time.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_mac.obj `if test -f 'print_mac.c'; then $(CYGPATH_W) 'print_mac.c'; else $(CYGPATH_W) '$(srcdir)/print_mac.c'; fi` -strace-print_timespec.o: print_timespec.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_timespec.o -MD -MP -MF $(DEPDIR)/strace-print_timespec.Tpo -c -o strace-print_timespec.o `test -f 'print_timespec.c' || echo '$(srcdir)/'`print_timespec.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_timespec.Tpo $(DEPDIR)/strace-print_timespec.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_timespec.c' object='strace-print_timespec.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_mq_attr.o: print_mq_attr.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_mq_attr.o -MD -MP -MF $(DEPDIR)/libstrace_a-print_mq_attr.Tpo -c -o libstrace_a-print_mq_attr.o `test -f 'print_mq_attr.c' || echo '$(srcdir)/'`print_mq_attr.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_mq_attr.Tpo $(DEPDIR)/libstrace_a-print_mq_attr.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_mq_attr.c' object='libstrace_a-print_mq_attr.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_timespec.o `test -f 'print_timespec.c' || echo '$(srcdir)/'`print_timespec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_mq_attr.o `test -f 'print_mq_attr.c' || echo '$(srcdir)/'`print_mq_attr.c -strace-print_timespec.obj: print_timespec.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_timespec.obj -MD -MP -MF $(DEPDIR)/strace-print_timespec.Tpo -c -o strace-print_timespec.obj `if test -f 'print_timespec.c'; then $(CYGPATH_W) 'print_timespec.c'; else $(CYGPATH_W) '$(srcdir)/print_timespec.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_timespec.Tpo $(DEPDIR)/strace-print_timespec.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_timespec.c' object='strace-print_timespec.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_mq_attr.obj: print_mq_attr.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_mq_attr.obj -MD -MP -MF $(DEPDIR)/libstrace_a-print_mq_attr.Tpo -c -o libstrace_a-print_mq_attr.obj `if test -f 'print_mq_attr.c'; then $(CYGPATH_W) 'print_mq_attr.c'; else $(CYGPATH_W) '$(srcdir)/print_mq_attr.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_mq_attr.Tpo $(DEPDIR)/libstrace_a-print_mq_attr.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_mq_attr.c' object='libstrace_a-print_mq_attr.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_timespec.obj `if test -f 'print_timespec.c'; then $(CYGPATH_W) 'print_timespec.c'; else $(CYGPATH_W) '$(srcdir)/print_timespec.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_mq_attr.obj `if test -f 'print_mq_attr.c'; then $(CYGPATH_W) 'print_mq_attr.c'; else $(CYGPATH_W) '$(srcdir)/print_mq_attr.c'; fi` -strace-print_timespec32.o: print_timespec32.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_timespec32.o -MD -MP -MF $(DEPDIR)/strace-print_timespec32.Tpo -c -o strace-print_timespec32.o `test -f 'print_timespec32.c' || echo '$(srcdir)/'`print_timespec32.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_timespec32.Tpo $(DEPDIR)/strace-print_timespec32.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_timespec32.c' object='strace-print_timespec32.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_msgbuf.o: print_msgbuf.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_msgbuf.o -MD -MP -MF $(DEPDIR)/libstrace_a-print_msgbuf.Tpo -c -o libstrace_a-print_msgbuf.o `test -f 'print_msgbuf.c' || echo '$(srcdir)/'`print_msgbuf.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_msgbuf.Tpo $(DEPDIR)/libstrace_a-print_msgbuf.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_msgbuf.c' object='libstrace_a-print_msgbuf.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_timespec32.o `test -f 'print_timespec32.c' || echo '$(srcdir)/'`print_timespec32.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_msgbuf.o `test -f 'print_msgbuf.c' || echo '$(srcdir)/'`print_msgbuf.c -strace-print_timespec32.obj: print_timespec32.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_timespec32.obj -MD -MP -MF $(DEPDIR)/strace-print_timespec32.Tpo -c -o strace-print_timespec32.obj `if test -f 'print_timespec32.c'; then $(CYGPATH_W) 'print_timespec32.c'; else $(CYGPATH_W) '$(srcdir)/print_timespec32.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_timespec32.Tpo $(DEPDIR)/strace-print_timespec32.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_timespec32.c' object='strace-print_timespec32.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_msgbuf.obj: print_msgbuf.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_msgbuf.obj -MD -MP -MF $(DEPDIR)/libstrace_a-print_msgbuf.Tpo -c -o libstrace_a-print_msgbuf.obj `if test -f 'print_msgbuf.c'; then $(CYGPATH_W) 'print_msgbuf.c'; else $(CYGPATH_W) '$(srcdir)/print_msgbuf.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_msgbuf.Tpo $(DEPDIR)/libstrace_a-print_msgbuf.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_msgbuf.c' object='libstrace_a-print_msgbuf.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_timespec32.obj `if test -f 'print_timespec32.c'; then $(CYGPATH_W) 'print_timespec32.c'; else $(CYGPATH_W) '$(srcdir)/print_timespec32.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_msgbuf.obj `if test -f 'print_msgbuf.c'; then $(CYGPATH_W) 'print_msgbuf.c'; else $(CYGPATH_W) '$(srcdir)/print_msgbuf.c'; fi` -strace-print_timespec64.o: print_timespec64.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_timespec64.o -MD -MP -MF $(DEPDIR)/strace-print_timespec64.Tpo -c -o strace-print_timespec64.o `test -f 'print_timespec64.c' || echo '$(srcdir)/'`print_timespec64.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_timespec64.Tpo $(DEPDIR)/strace-print_timespec64.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_timespec64.c' object='strace-print_timespec64.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_sg_req_info.o: print_sg_req_info.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_sg_req_info.o -MD -MP -MF $(DEPDIR)/libstrace_a-print_sg_req_info.Tpo -c -o libstrace_a-print_sg_req_info.o `test -f 'print_sg_req_info.c' || echo '$(srcdir)/'`print_sg_req_info.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_sg_req_info.Tpo $(DEPDIR)/libstrace_a-print_sg_req_info.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_sg_req_info.c' object='libstrace_a-print_sg_req_info.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_timespec64.o `test -f 'print_timespec64.c' || echo '$(srcdir)/'`print_timespec64.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_sg_req_info.o `test -f 'print_sg_req_info.c' || echo '$(srcdir)/'`print_sg_req_info.c -strace-print_timespec64.obj: print_timespec64.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_timespec64.obj -MD -MP -MF $(DEPDIR)/strace-print_timespec64.Tpo -c -o strace-print_timespec64.obj `if test -f 'print_timespec64.c'; then $(CYGPATH_W) 'print_timespec64.c'; else $(CYGPATH_W) '$(srcdir)/print_timespec64.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_timespec64.Tpo $(DEPDIR)/strace-print_timespec64.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_timespec64.c' object='strace-print_timespec64.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_sg_req_info.obj: print_sg_req_info.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_sg_req_info.obj -MD -MP -MF $(DEPDIR)/libstrace_a-print_sg_req_info.Tpo -c -o libstrace_a-print_sg_req_info.obj `if test -f 'print_sg_req_info.c'; then $(CYGPATH_W) 'print_sg_req_info.c'; else $(CYGPATH_W) '$(srcdir)/print_sg_req_info.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_sg_req_info.Tpo $(DEPDIR)/libstrace_a-print_sg_req_info.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_sg_req_info.c' object='libstrace_a-print_sg_req_info.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_timespec64.obj `if test -f 'print_timespec64.c'; then $(CYGPATH_W) 'print_timespec64.c'; else $(CYGPATH_W) '$(srcdir)/print_timespec64.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_sg_req_info.obj `if test -f 'print_sg_req_info.c'; then $(CYGPATH_W) 'print_sg_req_info.c'; else $(CYGPATH_W) '$(srcdir)/print_sg_req_info.c'; fi` -strace-print_timeval.o: print_timeval.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_timeval.o -MD -MP -MF $(DEPDIR)/strace-print_timeval.Tpo -c -o strace-print_timeval.o `test -f 'print_timeval.c' || echo '$(srcdir)/'`print_timeval.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_timeval.Tpo $(DEPDIR)/strace-print_timeval.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_timeval.c' object='strace-print_timeval.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_sigevent.o: print_sigevent.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_sigevent.o -MD -MP -MF $(DEPDIR)/libstrace_a-print_sigevent.Tpo -c -o libstrace_a-print_sigevent.o `test -f 'print_sigevent.c' || echo '$(srcdir)/'`print_sigevent.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_sigevent.Tpo $(DEPDIR)/libstrace_a-print_sigevent.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_sigevent.c' object='libstrace_a-print_sigevent.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_timeval.o `test -f 'print_timeval.c' || echo '$(srcdir)/'`print_timeval.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_sigevent.o `test -f 'print_sigevent.c' || echo '$(srcdir)/'`print_sigevent.c -strace-print_timeval.obj: print_timeval.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_timeval.obj -MD -MP -MF $(DEPDIR)/strace-print_timeval.Tpo -c -o strace-print_timeval.obj `if test -f 'print_timeval.c'; then $(CYGPATH_W) 'print_timeval.c'; else $(CYGPATH_W) '$(srcdir)/print_timeval.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_timeval.Tpo $(DEPDIR)/strace-print_timeval.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_timeval.c' object='strace-print_timeval.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_sigevent.obj: print_sigevent.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_sigevent.obj -MD -MP -MF $(DEPDIR)/libstrace_a-print_sigevent.Tpo -c -o libstrace_a-print_sigevent.obj `if test -f 'print_sigevent.c'; then $(CYGPATH_W) 'print_sigevent.c'; else $(CYGPATH_W) '$(srcdir)/print_sigevent.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_sigevent.Tpo $(DEPDIR)/libstrace_a-print_sigevent.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_sigevent.c' object='libstrace_a-print_sigevent.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_timeval.obj `if test -f 'print_timeval.c'; then $(CYGPATH_W) 'print_timeval.c'; else $(CYGPATH_W) '$(srcdir)/print_timeval.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_sigevent.obj `if test -f 'print_sigevent.c'; then $(CYGPATH_W) 'print_sigevent.c'; else $(CYGPATH_W) '$(srcdir)/print_sigevent.c'; fi` -strace-print_timeval64.o: print_timeval64.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_timeval64.o -MD -MP -MF $(DEPDIR)/strace-print_timeval64.Tpo -c -o strace-print_timeval64.o `test -f 'print_timeval64.c' || echo '$(srcdir)/'`print_timeval64.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_timeval64.Tpo $(DEPDIR)/strace-print_timeval64.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_timeval64.c' object='strace-print_timeval64.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_statfs.o: print_statfs.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_statfs.o -MD -MP -MF $(DEPDIR)/libstrace_a-print_statfs.Tpo -c -o libstrace_a-print_statfs.o `test -f 'print_statfs.c' || echo '$(srcdir)/'`print_statfs.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_statfs.Tpo $(DEPDIR)/libstrace_a-print_statfs.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_statfs.c' object='libstrace_a-print_statfs.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_timeval64.o `test -f 'print_timeval64.c' || echo '$(srcdir)/'`print_timeval64.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_statfs.o `test -f 'print_statfs.c' || echo '$(srcdir)/'`print_statfs.c -strace-print_timeval64.obj: print_timeval64.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_timeval64.obj -MD -MP -MF $(DEPDIR)/strace-print_timeval64.Tpo -c -o strace-print_timeval64.obj `if test -f 'print_timeval64.c'; then $(CYGPATH_W) 'print_timeval64.c'; else $(CYGPATH_W) '$(srcdir)/print_timeval64.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_timeval64.Tpo $(DEPDIR)/strace-print_timeval64.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_timeval64.c' object='strace-print_timeval64.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_statfs.obj: print_statfs.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_statfs.obj -MD -MP -MF $(DEPDIR)/libstrace_a-print_statfs.Tpo -c -o libstrace_a-print_statfs.obj `if test -f 'print_statfs.c'; then $(CYGPATH_W) 'print_statfs.c'; else $(CYGPATH_W) '$(srcdir)/print_statfs.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_statfs.Tpo $(DEPDIR)/libstrace_a-print_statfs.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_statfs.c' object='libstrace_a-print_statfs.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_timeval64.obj `if test -f 'print_timeval64.c'; then $(CYGPATH_W) 'print_timeval64.c'; else $(CYGPATH_W) '$(srcdir)/print_timeval64.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_statfs.obj `if test -f 'print_statfs.c'; then $(CYGPATH_W) 'print_statfs.c'; else $(CYGPATH_W) '$(srcdir)/print_statfs.c'; fi` -strace-print_timex.o: print_timex.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_timex.o -MD -MP -MF $(DEPDIR)/strace-print_timex.Tpo -c -o strace-print_timex.o `test -f 'print_timex.c' || echo '$(srcdir)/'`print_timex.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_timex.Tpo $(DEPDIR)/strace-print_timex.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_timex.c' object='strace-print_timex.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_struct_stat.o: print_struct_stat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_struct_stat.o -MD -MP -MF $(DEPDIR)/libstrace_a-print_struct_stat.Tpo -c -o libstrace_a-print_struct_stat.o `test -f 'print_struct_stat.c' || echo '$(srcdir)/'`print_struct_stat.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_struct_stat.Tpo $(DEPDIR)/libstrace_a-print_struct_stat.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_struct_stat.c' object='libstrace_a-print_struct_stat.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_timex.o `test -f 'print_timex.c' || echo '$(srcdir)/'`print_timex.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_struct_stat.o `test -f 'print_struct_stat.c' || echo '$(srcdir)/'`print_struct_stat.c -strace-print_timex.obj: print_timex.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-print_timex.obj -MD -MP -MF $(DEPDIR)/strace-print_timex.Tpo -c -o strace-print_timex.obj `if test -f 'print_timex.c'; then $(CYGPATH_W) 'print_timex.c'; else $(CYGPATH_W) '$(srcdir)/print_timex.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-print_timex.Tpo $(DEPDIR)/strace-print_timex.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_timex.c' object='strace-print_timex.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_struct_stat.obj: print_struct_stat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_struct_stat.obj -MD -MP -MF $(DEPDIR)/libstrace_a-print_struct_stat.Tpo -c -o libstrace_a-print_struct_stat.obj `if test -f 'print_struct_stat.c'; then $(CYGPATH_W) 'print_struct_stat.c'; else $(CYGPATH_W) '$(srcdir)/print_struct_stat.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_struct_stat.Tpo $(DEPDIR)/libstrace_a-print_struct_stat.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_struct_stat.c' object='libstrace_a-print_struct_stat.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-print_timex.obj `if test -f 'print_timex.c'; then $(CYGPATH_W) 'print_timex.c'; else $(CYGPATH_W) '$(srcdir)/print_timex.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_struct_stat.obj `if test -f 'print_struct_stat.c'; then $(CYGPATH_W) 'print_struct_stat.c'; else $(CYGPATH_W) '$(srcdir)/print_struct_stat.c'; fi` -strace-printmode.o: printmode.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-printmode.o -MD -MP -MF $(DEPDIR)/strace-printmode.Tpo -c -o strace-printmode.o `test -f 'printmode.c' || echo '$(srcdir)/'`printmode.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-printmode.Tpo $(DEPDIR)/strace-printmode.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printmode.c' object='strace-printmode.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_syscall_number.o: print_syscall_number.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_syscall_number.o -MD -MP -MF $(DEPDIR)/libstrace_a-print_syscall_number.Tpo -c -o libstrace_a-print_syscall_number.o `test -f 'print_syscall_number.c' || echo '$(srcdir)/'`print_syscall_number.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_syscall_number.Tpo $(DEPDIR)/libstrace_a-print_syscall_number.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_syscall_number.c' object='libstrace_a-print_syscall_number.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-printmode.o `test -f 'printmode.c' || echo '$(srcdir)/'`printmode.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_syscall_number.o `test -f 'print_syscall_number.c' || echo '$(srcdir)/'`print_syscall_number.c -strace-printmode.obj: printmode.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-printmode.obj -MD -MP -MF $(DEPDIR)/strace-printmode.Tpo -c -o strace-printmode.obj `if test -f 'printmode.c'; then $(CYGPATH_W) 'printmode.c'; else $(CYGPATH_W) '$(srcdir)/printmode.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-printmode.Tpo $(DEPDIR)/strace-printmode.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printmode.c' object='strace-printmode.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_syscall_number.obj: print_syscall_number.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_syscall_number.obj -MD -MP -MF $(DEPDIR)/libstrace_a-print_syscall_number.Tpo -c -o libstrace_a-print_syscall_number.obj `if test -f 'print_syscall_number.c'; then $(CYGPATH_W) 'print_syscall_number.c'; else $(CYGPATH_W) '$(srcdir)/print_syscall_number.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_syscall_number.Tpo $(DEPDIR)/libstrace_a-print_syscall_number.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_syscall_number.c' object='libstrace_a-print_syscall_number.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-printmode.obj `if test -f 'printmode.c'; then $(CYGPATH_W) 'printmode.c'; else $(CYGPATH_W) '$(srcdir)/printmode.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_syscall_number.obj `if test -f 'print_syscall_number.c'; then $(CYGPATH_W) 'print_syscall_number.c'; else $(CYGPATH_W) '$(srcdir)/print_syscall_number.c'; fi` -strace-printrusage.o: printrusage.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-printrusage.o -MD -MP -MF $(DEPDIR)/strace-printrusage.Tpo -c -o strace-printrusage.o `test -f 'printrusage.c' || echo '$(srcdir)/'`printrusage.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-printrusage.Tpo $(DEPDIR)/strace-printrusage.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printrusage.c' object='strace-printrusage.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_time.o: print_time.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_time.o -MD -MP -MF $(DEPDIR)/libstrace_a-print_time.Tpo -c -o libstrace_a-print_time.o `test -f 'print_time.c' || echo '$(srcdir)/'`print_time.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_time.Tpo $(DEPDIR)/libstrace_a-print_time.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_time.c' object='libstrace_a-print_time.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-printrusage.o `test -f 'printrusage.c' || echo '$(srcdir)/'`printrusage.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_time.o `test -f 'print_time.c' || echo '$(srcdir)/'`print_time.c -strace-printrusage.obj: printrusage.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-printrusage.obj -MD -MP -MF $(DEPDIR)/strace-printrusage.Tpo -c -o strace-printrusage.obj `if test -f 'printrusage.c'; then $(CYGPATH_W) 'printrusage.c'; else $(CYGPATH_W) '$(srcdir)/printrusage.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-printrusage.Tpo $(DEPDIR)/strace-printrusage.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printrusage.c' object='strace-printrusage.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_time.obj: print_time.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_time.obj -MD -MP -MF $(DEPDIR)/libstrace_a-print_time.Tpo -c -o libstrace_a-print_time.obj `if test -f 'print_time.c'; then $(CYGPATH_W) 'print_time.c'; else $(CYGPATH_W) '$(srcdir)/print_time.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_time.Tpo $(DEPDIR)/libstrace_a-print_time.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_time.c' object='libstrace_a-print_time.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-printrusage.obj `if test -f 'printrusage.c'; then $(CYGPATH_W) 'printrusage.c'; else $(CYGPATH_W) '$(srcdir)/printrusage.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_time.obj `if test -f 'print_time.c'; then $(CYGPATH_W) 'print_time.c'; else $(CYGPATH_W) '$(srcdir)/print_time.c'; fi` -strace-printsiginfo.o: printsiginfo.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-printsiginfo.o -MD -MP -MF $(DEPDIR)/strace-printsiginfo.Tpo -c -o strace-printsiginfo.o `test -f 'printsiginfo.c' || echo '$(srcdir)/'`printsiginfo.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-printsiginfo.Tpo $(DEPDIR)/strace-printsiginfo.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printsiginfo.c' object='strace-printsiginfo.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_timespec32.o: print_timespec32.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_timespec32.o -MD -MP -MF $(DEPDIR)/libstrace_a-print_timespec32.Tpo -c -o libstrace_a-print_timespec32.o `test -f 'print_timespec32.c' || echo '$(srcdir)/'`print_timespec32.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_timespec32.Tpo $(DEPDIR)/libstrace_a-print_timespec32.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_timespec32.c' object='libstrace_a-print_timespec32.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-printsiginfo.o `test -f 'printsiginfo.c' || echo '$(srcdir)/'`printsiginfo.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_timespec32.o `test -f 'print_timespec32.c' || echo '$(srcdir)/'`print_timespec32.c -strace-printsiginfo.obj: printsiginfo.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-printsiginfo.obj -MD -MP -MF $(DEPDIR)/strace-printsiginfo.Tpo -c -o strace-printsiginfo.obj `if test -f 'printsiginfo.c'; then $(CYGPATH_W) 'printsiginfo.c'; else $(CYGPATH_W) '$(srcdir)/printsiginfo.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-printsiginfo.Tpo $(DEPDIR)/strace-printsiginfo.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printsiginfo.c' object='strace-printsiginfo.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_timespec32.obj: print_timespec32.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_timespec32.obj -MD -MP -MF $(DEPDIR)/libstrace_a-print_timespec32.Tpo -c -o libstrace_a-print_timespec32.obj `if test -f 'print_timespec32.c'; then $(CYGPATH_W) 'print_timespec32.c'; else $(CYGPATH_W) '$(srcdir)/print_timespec32.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_timespec32.Tpo $(DEPDIR)/libstrace_a-print_timespec32.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_timespec32.c' object='libstrace_a-print_timespec32.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-printsiginfo.obj `if test -f 'printsiginfo.c'; then $(CYGPATH_W) 'printsiginfo.c'; else $(CYGPATH_W) '$(srcdir)/printsiginfo.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_timespec32.obj `if test -f 'print_timespec32.c'; then $(CYGPATH_W) 'print_timespec32.c'; else $(CYGPATH_W) '$(srcdir)/print_timespec32.c'; fi` -strace-process.o: process.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-process.o -MD -MP -MF $(DEPDIR)/strace-process.Tpo -c -o strace-process.o `test -f 'process.c' || echo '$(srcdir)/'`process.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-process.Tpo $(DEPDIR)/strace-process.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='process.c' object='strace-process.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_timespec64.o: print_timespec64.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_timespec64.o -MD -MP -MF $(DEPDIR)/libstrace_a-print_timespec64.Tpo -c -o libstrace_a-print_timespec64.o `test -f 'print_timespec64.c' || echo '$(srcdir)/'`print_timespec64.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_timespec64.Tpo $(DEPDIR)/libstrace_a-print_timespec64.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_timespec64.c' object='libstrace_a-print_timespec64.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-process.o `test -f 'process.c' || echo '$(srcdir)/'`process.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_timespec64.o `test -f 'print_timespec64.c' || echo '$(srcdir)/'`print_timespec64.c -strace-process.obj: process.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-process.obj -MD -MP -MF $(DEPDIR)/strace-process.Tpo -c -o strace-process.obj `if test -f 'process.c'; then $(CYGPATH_W) 'process.c'; else $(CYGPATH_W) '$(srcdir)/process.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-process.Tpo $(DEPDIR)/strace-process.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='process.c' object='strace-process.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_timespec64.obj: print_timespec64.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_timespec64.obj -MD -MP -MF $(DEPDIR)/libstrace_a-print_timespec64.Tpo -c -o libstrace_a-print_timespec64.obj `if test -f 'print_timespec64.c'; then $(CYGPATH_W) 'print_timespec64.c'; else $(CYGPATH_W) '$(srcdir)/print_timespec64.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_timespec64.Tpo $(DEPDIR)/libstrace_a-print_timespec64.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_timespec64.c' object='libstrace_a-print_timespec64.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-process.obj `if test -f 'process.c'; then $(CYGPATH_W) 'process.c'; else $(CYGPATH_W) '$(srcdir)/process.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_timespec64.obj `if test -f 'print_timespec64.c'; then $(CYGPATH_W) 'print_timespec64.c'; else $(CYGPATH_W) '$(srcdir)/print_timespec64.c'; fi` -strace-process_vm.o: process_vm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-process_vm.o -MD -MP -MF $(DEPDIR)/strace-process_vm.Tpo -c -o strace-process_vm.o `test -f 'process_vm.c' || echo '$(srcdir)/'`process_vm.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-process_vm.Tpo $(DEPDIR)/strace-process_vm.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='process_vm.c' object='strace-process_vm.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_timeval.o: print_timeval.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_timeval.o -MD -MP -MF $(DEPDIR)/libstrace_a-print_timeval.Tpo -c -o libstrace_a-print_timeval.o `test -f 'print_timeval.c' || echo '$(srcdir)/'`print_timeval.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_timeval.Tpo $(DEPDIR)/libstrace_a-print_timeval.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_timeval.c' object='libstrace_a-print_timeval.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-process_vm.o `test -f 'process_vm.c' || echo '$(srcdir)/'`process_vm.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_timeval.o `test -f 'print_timeval.c' || echo '$(srcdir)/'`print_timeval.c -strace-process_vm.obj: process_vm.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-process_vm.obj -MD -MP -MF $(DEPDIR)/strace-process_vm.Tpo -c -o strace-process_vm.obj `if test -f 'process_vm.c'; then $(CYGPATH_W) 'process_vm.c'; else $(CYGPATH_W) '$(srcdir)/process_vm.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-process_vm.Tpo $(DEPDIR)/strace-process_vm.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='process_vm.c' object='strace-process_vm.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_timeval.obj: print_timeval.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_timeval.obj -MD -MP -MF $(DEPDIR)/libstrace_a-print_timeval.Tpo -c -o libstrace_a-print_timeval.obj `if test -f 'print_timeval.c'; then $(CYGPATH_W) 'print_timeval.c'; else $(CYGPATH_W) '$(srcdir)/print_timeval.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_timeval.Tpo $(DEPDIR)/libstrace_a-print_timeval.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_timeval.c' object='libstrace_a-print_timeval.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-process_vm.obj `if test -f 'process_vm.c'; then $(CYGPATH_W) 'process_vm.c'; else $(CYGPATH_W) '$(srcdir)/process_vm.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_timeval.obj `if test -f 'print_timeval.c'; then $(CYGPATH_W) 'print_timeval.c'; else $(CYGPATH_W) '$(srcdir)/print_timeval.c'; fi` -strace-ptp.o: ptp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-ptp.o -MD -MP -MF $(DEPDIR)/strace-ptp.Tpo -c -o strace-ptp.o `test -f 'ptp.c' || echo '$(srcdir)/'`ptp.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-ptp.Tpo $(DEPDIR)/strace-ptp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ptp.c' object='strace-ptp.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_timeval64.o: print_timeval64.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_timeval64.o -MD -MP -MF $(DEPDIR)/libstrace_a-print_timeval64.Tpo -c -o libstrace_a-print_timeval64.o `test -f 'print_timeval64.c' || echo '$(srcdir)/'`print_timeval64.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_timeval64.Tpo $(DEPDIR)/libstrace_a-print_timeval64.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_timeval64.c' object='libstrace_a-print_timeval64.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-ptp.o `test -f 'ptp.c' || echo '$(srcdir)/'`ptp.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_timeval64.o `test -f 'print_timeval64.c' || echo '$(srcdir)/'`print_timeval64.c -strace-ptp.obj: ptp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-ptp.obj -MD -MP -MF $(DEPDIR)/strace-ptp.Tpo -c -o strace-ptp.obj `if test -f 'ptp.c'; then $(CYGPATH_W) 'ptp.c'; else $(CYGPATH_W) '$(srcdir)/ptp.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-ptp.Tpo $(DEPDIR)/strace-ptp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ptp.c' object='strace-ptp.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_timeval64.obj: print_timeval64.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_timeval64.obj -MD -MP -MF $(DEPDIR)/libstrace_a-print_timeval64.Tpo -c -o libstrace_a-print_timeval64.obj `if test -f 'print_timeval64.c'; then $(CYGPATH_W) 'print_timeval64.c'; else $(CYGPATH_W) '$(srcdir)/print_timeval64.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_timeval64.Tpo $(DEPDIR)/libstrace_a-print_timeval64.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_timeval64.c' object='libstrace_a-print_timeval64.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-ptp.obj `if test -f 'ptp.c'; then $(CYGPATH_W) 'ptp.c'; else $(CYGPATH_W) '$(srcdir)/ptp.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_timeval64.obj `if test -f 'print_timeval64.c'; then $(CYGPATH_W) 'print_timeval64.c'; else $(CYGPATH_W) '$(srcdir)/print_timeval64.c'; fi` -strace-ptrace_syscall_info.o: ptrace_syscall_info.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-ptrace_syscall_info.o -MD -MP -MF $(DEPDIR)/strace-ptrace_syscall_info.Tpo -c -o strace-ptrace_syscall_info.o `test -f 'ptrace_syscall_info.c' || echo '$(srcdir)/'`ptrace_syscall_info.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-ptrace_syscall_info.Tpo $(DEPDIR)/strace-ptrace_syscall_info.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ptrace_syscall_info.c' object='strace-ptrace_syscall_info.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_timex.o: print_timex.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_timex.o -MD -MP -MF $(DEPDIR)/libstrace_a-print_timex.Tpo -c -o libstrace_a-print_timex.o `test -f 'print_timex.c' || echo '$(srcdir)/'`print_timex.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_timex.Tpo $(DEPDIR)/libstrace_a-print_timex.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_timex.c' object='libstrace_a-print_timex.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-ptrace_syscall_info.o `test -f 'ptrace_syscall_info.c' || echo '$(srcdir)/'`ptrace_syscall_info.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_timex.o `test -f 'print_timex.c' || echo '$(srcdir)/'`print_timex.c -strace-ptrace_syscall_info.obj: ptrace_syscall_info.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-ptrace_syscall_info.obj -MD -MP -MF $(DEPDIR)/strace-ptrace_syscall_info.Tpo -c -o strace-ptrace_syscall_info.obj `if test -f 'ptrace_syscall_info.c'; then $(CYGPATH_W) 'ptrace_syscall_info.c'; else $(CYGPATH_W) '$(srcdir)/ptrace_syscall_info.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-ptrace_syscall_info.Tpo $(DEPDIR)/strace-ptrace_syscall_info.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ptrace_syscall_info.c' object='strace-ptrace_syscall_info.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-print_timex.obj: print_timex.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-print_timex.obj -MD -MP -MF $(DEPDIR)/libstrace_a-print_timex.Tpo -c -o libstrace_a-print_timex.obj `if test -f 'print_timex.c'; then $(CYGPATH_W) 'print_timex.c'; else $(CYGPATH_W) '$(srcdir)/print_timex.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-print_timex.Tpo $(DEPDIR)/libstrace_a-print_timex.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='print_timex.c' object='libstrace_a-print_timex.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-ptrace_syscall_info.obj `if test -f 'ptrace_syscall_info.c'; then $(CYGPATH_W) 'ptrace_syscall_info.c'; else $(CYGPATH_W) '$(srcdir)/ptrace_syscall_info.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-print_timex.obj `if test -f 'print_timex.c'; then $(CYGPATH_W) 'print_timex.c'; else $(CYGPATH_W) '$(srcdir)/print_timex.c'; fi` -strace-quota.o: quota.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-quota.o -MD -MP -MF $(DEPDIR)/strace-quota.Tpo -c -o strace-quota.o `test -f 'quota.c' || echo '$(srcdir)/'`quota.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-quota.Tpo $(DEPDIR)/strace-quota.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='quota.c' object='strace-quota.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-printmode.o: printmode.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-printmode.o -MD -MP -MF $(DEPDIR)/libstrace_a-printmode.Tpo -c -o libstrace_a-printmode.o `test -f 'printmode.c' || echo '$(srcdir)/'`printmode.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-printmode.Tpo $(DEPDIR)/libstrace_a-printmode.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printmode.c' object='libstrace_a-printmode.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-quota.o `test -f 'quota.c' || echo '$(srcdir)/'`quota.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-printmode.o `test -f 'printmode.c' || echo '$(srcdir)/'`printmode.c -strace-quota.obj: quota.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-quota.obj -MD -MP -MF $(DEPDIR)/strace-quota.Tpo -c -o strace-quota.obj `if test -f 'quota.c'; then $(CYGPATH_W) 'quota.c'; else $(CYGPATH_W) '$(srcdir)/quota.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-quota.Tpo $(DEPDIR)/strace-quota.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='quota.c' object='strace-quota.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-printmode.obj: printmode.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-printmode.obj -MD -MP -MF $(DEPDIR)/libstrace_a-printmode.Tpo -c -o libstrace_a-printmode.obj `if test -f 'printmode.c'; then $(CYGPATH_W) 'printmode.c'; else $(CYGPATH_W) '$(srcdir)/printmode.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-printmode.Tpo $(DEPDIR)/libstrace_a-printmode.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printmode.c' object='libstrace_a-printmode.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-quota.obj `if test -f 'quota.c'; then $(CYGPATH_W) 'quota.c'; else $(CYGPATH_W) '$(srcdir)/quota.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-printmode.obj `if test -f 'printmode.c'; then $(CYGPATH_W) 'printmode.c'; else $(CYGPATH_W) '$(srcdir)/printmode.c'; fi` -strace-random_ioctl.o: random_ioctl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-random_ioctl.o -MD -MP -MF $(DEPDIR)/strace-random_ioctl.Tpo -c -o strace-random_ioctl.o `test -f 'random_ioctl.c' || echo '$(srcdir)/'`random_ioctl.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-random_ioctl.Tpo $(DEPDIR)/strace-random_ioctl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='random_ioctl.c' object='strace-random_ioctl.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-printrusage.o: printrusage.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-printrusage.o -MD -MP -MF $(DEPDIR)/libstrace_a-printrusage.Tpo -c -o libstrace_a-printrusage.o `test -f 'printrusage.c' || echo '$(srcdir)/'`printrusage.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-printrusage.Tpo $(DEPDIR)/libstrace_a-printrusage.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printrusage.c' object='libstrace_a-printrusage.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-random_ioctl.o `test -f 'random_ioctl.c' || echo '$(srcdir)/'`random_ioctl.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-printrusage.o `test -f 'printrusage.c' || echo '$(srcdir)/'`printrusage.c -strace-random_ioctl.obj: random_ioctl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-random_ioctl.obj -MD -MP -MF $(DEPDIR)/strace-random_ioctl.Tpo -c -o strace-random_ioctl.obj `if test -f 'random_ioctl.c'; then $(CYGPATH_W) 'random_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/random_ioctl.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-random_ioctl.Tpo $(DEPDIR)/strace-random_ioctl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='random_ioctl.c' object='strace-random_ioctl.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-printrusage.obj: printrusage.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-printrusage.obj -MD -MP -MF $(DEPDIR)/libstrace_a-printrusage.Tpo -c -o libstrace_a-printrusage.obj `if test -f 'printrusage.c'; then $(CYGPATH_W) 'printrusage.c'; else $(CYGPATH_W) '$(srcdir)/printrusage.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-printrusage.Tpo $(DEPDIR)/libstrace_a-printrusage.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printrusage.c' object='libstrace_a-printrusage.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-random_ioctl.obj `if test -f 'random_ioctl.c'; then $(CYGPATH_W) 'random_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/random_ioctl.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-printrusage.obj `if test -f 'printrusage.c'; then $(CYGPATH_W) 'printrusage.c'; else $(CYGPATH_W) '$(srcdir)/printrusage.c'; fi` -strace-readahead.o: readahead.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-readahead.o -MD -MP -MF $(DEPDIR)/strace-readahead.Tpo -c -o strace-readahead.o `test -f 'readahead.c' || echo '$(srcdir)/'`readahead.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-readahead.Tpo $(DEPDIR)/strace-readahead.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='readahead.c' object='strace-readahead.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-printsiginfo.o: printsiginfo.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-printsiginfo.o -MD -MP -MF $(DEPDIR)/libstrace_a-printsiginfo.Tpo -c -o libstrace_a-printsiginfo.o `test -f 'printsiginfo.c' || echo '$(srcdir)/'`printsiginfo.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-printsiginfo.Tpo $(DEPDIR)/libstrace_a-printsiginfo.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printsiginfo.c' object='libstrace_a-printsiginfo.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-readahead.o `test -f 'readahead.c' || echo '$(srcdir)/'`readahead.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-printsiginfo.o `test -f 'printsiginfo.c' || echo '$(srcdir)/'`printsiginfo.c -strace-readahead.obj: readahead.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-readahead.obj -MD -MP -MF $(DEPDIR)/strace-readahead.Tpo -c -o strace-readahead.obj `if test -f 'readahead.c'; then $(CYGPATH_W) 'readahead.c'; else $(CYGPATH_W) '$(srcdir)/readahead.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-readahead.Tpo $(DEPDIR)/strace-readahead.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='readahead.c' object='strace-readahead.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-printsiginfo.obj: printsiginfo.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-printsiginfo.obj -MD -MP -MF $(DEPDIR)/libstrace_a-printsiginfo.Tpo -c -o libstrace_a-printsiginfo.obj `if test -f 'printsiginfo.c'; then $(CYGPATH_W) 'printsiginfo.c'; else $(CYGPATH_W) '$(srcdir)/printsiginfo.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-printsiginfo.Tpo $(DEPDIR)/libstrace_a-printsiginfo.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printsiginfo.c' object='libstrace_a-printsiginfo.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-readahead.obj `if test -f 'readahead.c'; then $(CYGPATH_W) 'readahead.c'; else $(CYGPATH_W) '$(srcdir)/readahead.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-printsiginfo.obj `if test -f 'printsiginfo.c'; then $(CYGPATH_W) 'printsiginfo.c'; else $(CYGPATH_W) '$(srcdir)/printsiginfo.c'; fi` -strace-readlink.o: readlink.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-readlink.o -MD -MP -MF $(DEPDIR)/strace-readlink.Tpo -c -o strace-readlink.o `test -f 'readlink.c' || echo '$(srcdir)/'`readlink.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-readlink.Tpo $(DEPDIR)/strace-readlink.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='readlink.c' object='strace-readlink.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-process.o: process.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-process.o -MD -MP -MF $(DEPDIR)/libstrace_a-process.Tpo -c -o libstrace_a-process.o `test -f 'process.c' || echo '$(srcdir)/'`process.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-process.Tpo $(DEPDIR)/libstrace_a-process.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='process.c' object='libstrace_a-process.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-readlink.o `test -f 'readlink.c' || echo '$(srcdir)/'`readlink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-process.o `test -f 'process.c' || echo '$(srcdir)/'`process.c -strace-readlink.obj: readlink.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-readlink.obj -MD -MP -MF $(DEPDIR)/strace-readlink.Tpo -c -o strace-readlink.obj `if test -f 'readlink.c'; then $(CYGPATH_W) 'readlink.c'; else $(CYGPATH_W) '$(srcdir)/readlink.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-readlink.Tpo $(DEPDIR)/strace-readlink.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='readlink.c' object='strace-readlink.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-process.obj: process.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-process.obj -MD -MP -MF $(DEPDIR)/libstrace_a-process.Tpo -c -o libstrace_a-process.obj `if test -f 'process.c'; then $(CYGPATH_W) 'process.c'; else $(CYGPATH_W) '$(srcdir)/process.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-process.Tpo $(DEPDIR)/libstrace_a-process.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='process.c' object='libstrace_a-process.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-readlink.obj `if test -f 'readlink.c'; then $(CYGPATH_W) 'readlink.c'; else $(CYGPATH_W) '$(srcdir)/readlink.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-process.obj `if test -f 'process.c'; then $(CYGPATH_W) 'process.c'; else $(CYGPATH_W) '$(srcdir)/process.c'; fi` -strace-reboot.o: reboot.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-reboot.o -MD -MP -MF $(DEPDIR)/strace-reboot.Tpo -c -o strace-reboot.o `test -f 'reboot.c' || echo '$(srcdir)/'`reboot.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-reboot.Tpo $(DEPDIR)/strace-reboot.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='reboot.c' object='strace-reboot.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-process_vm.o: process_vm.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-process_vm.o -MD -MP -MF $(DEPDIR)/libstrace_a-process_vm.Tpo -c -o libstrace_a-process_vm.o `test -f 'process_vm.c' || echo '$(srcdir)/'`process_vm.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-process_vm.Tpo $(DEPDIR)/libstrace_a-process_vm.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='process_vm.c' object='libstrace_a-process_vm.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-reboot.o `test -f 'reboot.c' || echo '$(srcdir)/'`reboot.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-process_vm.o `test -f 'process_vm.c' || echo '$(srcdir)/'`process_vm.c -strace-reboot.obj: reboot.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-reboot.obj -MD -MP -MF $(DEPDIR)/strace-reboot.Tpo -c -o strace-reboot.obj `if test -f 'reboot.c'; then $(CYGPATH_W) 'reboot.c'; else $(CYGPATH_W) '$(srcdir)/reboot.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-reboot.Tpo $(DEPDIR)/strace-reboot.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='reboot.c' object='strace-reboot.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-process_vm.obj: process_vm.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-process_vm.obj -MD -MP -MF $(DEPDIR)/libstrace_a-process_vm.Tpo -c -o libstrace_a-process_vm.obj `if test -f 'process_vm.c'; then $(CYGPATH_W) 'process_vm.c'; else $(CYGPATH_W) '$(srcdir)/process_vm.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-process_vm.Tpo $(DEPDIR)/libstrace_a-process_vm.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='process_vm.c' object='libstrace_a-process_vm.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-reboot.obj `if test -f 'reboot.c'; then $(CYGPATH_W) 'reboot.c'; else $(CYGPATH_W) '$(srcdir)/reboot.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-process_vm.obj `if test -f 'process_vm.c'; then $(CYGPATH_W) 'process_vm.c'; else $(CYGPATH_W) '$(srcdir)/process_vm.c'; fi` -strace-renameat.o: renameat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-renameat.o -MD -MP -MF $(DEPDIR)/strace-renameat.Tpo -c -o strace-renameat.o `test -f 'renameat.c' || echo '$(srcdir)/'`renameat.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-renameat.Tpo $(DEPDIR)/strace-renameat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='renameat.c' object='strace-renameat.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ptp.o: ptp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ptp.o -MD -MP -MF $(DEPDIR)/libstrace_a-ptp.Tpo -c -o libstrace_a-ptp.o `test -f 'ptp.c' || echo '$(srcdir)/'`ptp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ptp.Tpo $(DEPDIR)/libstrace_a-ptp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ptp.c' object='libstrace_a-ptp.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-renameat.o `test -f 'renameat.c' || echo '$(srcdir)/'`renameat.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ptp.o `test -f 'ptp.c' || echo '$(srcdir)/'`ptp.c -strace-renameat.obj: renameat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-renameat.obj -MD -MP -MF $(DEPDIR)/strace-renameat.Tpo -c -o strace-renameat.obj `if test -f 'renameat.c'; then $(CYGPATH_W) 'renameat.c'; else $(CYGPATH_W) '$(srcdir)/renameat.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-renameat.Tpo $(DEPDIR)/strace-renameat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='renameat.c' object='strace-renameat.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ptp.obj: ptp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ptp.obj -MD -MP -MF $(DEPDIR)/libstrace_a-ptp.Tpo -c -o libstrace_a-ptp.obj `if test -f 'ptp.c'; then $(CYGPATH_W) 'ptp.c'; else $(CYGPATH_W) '$(srcdir)/ptp.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ptp.Tpo $(DEPDIR)/libstrace_a-ptp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ptp.c' object='libstrace_a-ptp.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-renameat.obj `if test -f 'renameat.c'; then $(CYGPATH_W) 'renameat.c'; else $(CYGPATH_W) '$(srcdir)/renameat.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ptp.obj `if test -f 'ptp.c'; then $(CYGPATH_W) 'ptp.c'; else $(CYGPATH_W) '$(srcdir)/ptp.c'; fi` -strace-resource.o: resource.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-resource.o -MD -MP -MF $(DEPDIR)/strace-resource.Tpo -c -o strace-resource.o `test -f 'resource.c' || echo '$(srcdir)/'`resource.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-resource.Tpo $(DEPDIR)/strace-resource.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='resource.c' object='strace-resource.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ptrace_syscall_info.o: ptrace_syscall_info.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ptrace_syscall_info.o -MD -MP -MF $(DEPDIR)/libstrace_a-ptrace_syscall_info.Tpo -c -o libstrace_a-ptrace_syscall_info.o `test -f 'ptrace_syscall_info.c' || echo '$(srcdir)/'`ptrace_syscall_info.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ptrace_syscall_info.Tpo $(DEPDIR)/libstrace_a-ptrace_syscall_info.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ptrace_syscall_info.c' object='libstrace_a-ptrace_syscall_info.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-resource.o `test -f 'resource.c' || echo '$(srcdir)/'`resource.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ptrace_syscall_info.o `test -f 'ptrace_syscall_info.c' || echo '$(srcdir)/'`ptrace_syscall_info.c -strace-resource.obj: resource.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-resource.obj -MD -MP -MF $(DEPDIR)/strace-resource.Tpo -c -o strace-resource.obj `if test -f 'resource.c'; then $(CYGPATH_W) 'resource.c'; else $(CYGPATH_W) '$(srcdir)/resource.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-resource.Tpo $(DEPDIR)/strace-resource.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='resource.c' object='strace-resource.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ptrace_syscall_info.obj: ptrace_syscall_info.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ptrace_syscall_info.obj -MD -MP -MF $(DEPDIR)/libstrace_a-ptrace_syscall_info.Tpo -c -o libstrace_a-ptrace_syscall_info.obj `if test -f 'ptrace_syscall_info.c'; then $(CYGPATH_W) 'ptrace_syscall_info.c'; else $(CYGPATH_W) '$(srcdir)/ptrace_syscall_info.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ptrace_syscall_info.Tpo $(DEPDIR)/libstrace_a-ptrace_syscall_info.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ptrace_syscall_info.c' object='libstrace_a-ptrace_syscall_info.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-resource.obj `if test -f 'resource.c'; then $(CYGPATH_W) 'resource.c'; else $(CYGPATH_W) '$(srcdir)/resource.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ptrace_syscall_info.obj `if test -f 'ptrace_syscall_info.c'; then $(CYGPATH_W) 'ptrace_syscall_info.c'; else $(CYGPATH_W) '$(srcdir)/ptrace_syscall_info.c'; fi` -strace-retval.o: retval.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-retval.o -MD -MP -MF $(DEPDIR)/strace-retval.Tpo -c -o strace-retval.o `test -f 'retval.c' || echo '$(srcdir)/'`retval.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-retval.Tpo $(DEPDIR)/strace-retval.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='retval.c' object='strace-retval.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-quota.o: quota.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-quota.o -MD -MP -MF $(DEPDIR)/libstrace_a-quota.Tpo -c -o libstrace_a-quota.o `test -f 'quota.c' || echo '$(srcdir)/'`quota.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-quota.Tpo $(DEPDIR)/libstrace_a-quota.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='quota.c' object='libstrace_a-quota.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-retval.o `test -f 'retval.c' || echo '$(srcdir)/'`retval.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-quota.o `test -f 'quota.c' || echo '$(srcdir)/'`quota.c -strace-retval.obj: retval.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-retval.obj -MD -MP -MF $(DEPDIR)/strace-retval.Tpo -c -o strace-retval.obj `if test -f 'retval.c'; then $(CYGPATH_W) 'retval.c'; else $(CYGPATH_W) '$(srcdir)/retval.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-retval.Tpo $(DEPDIR)/strace-retval.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='retval.c' object='strace-retval.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-quota.obj: quota.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-quota.obj -MD -MP -MF $(DEPDIR)/libstrace_a-quota.Tpo -c -o libstrace_a-quota.obj `if test -f 'quota.c'; then $(CYGPATH_W) 'quota.c'; else $(CYGPATH_W) '$(srcdir)/quota.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-quota.Tpo $(DEPDIR)/libstrace_a-quota.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='quota.c' object='libstrace_a-quota.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-retval.obj `if test -f 'retval.c'; then $(CYGPATH_W) 'retval.c'; else $(CYGPATH_W) '$(srcdir)/retval.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-quota.obj `if test -f 'quota.c'; then $(CYGPATH_W) 'quota.c'; else $(CYGPATH_W) '$(srcdir)/quota.c'; fi` -strace-riscv.o: riscv.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-riscv.o -MD -MP -MF $(DEPDIR)/strace-riscv.Tpo -c -o strace-riscv.o `test -f 'riscv.c' || echo '$(srcdir)/'`riscv.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-riscv.Tpo $(DEPDIR)/strace-riscv.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='riscv.c' object='strace-riscv.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-random_ioctl.o: random_ioctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-random_ioctl.o -MD -MP -MF $(DEPDIR)/libstrace_a-random_ioctl.Tpo -c -o libstrace_a-random_ioctl.o `test -f 'random_ioctl.c' || echo '$(srcdir)/'`random_ioctl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-random_ioctl.Tpo $(DEPDIR)/libstrace_a-random_ioctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='random_ioctl.c' object='libstrace_a-random_ioctl.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-riscv.o `test -f 'riscv.c' || echo '$(srcdir)/'`riscv.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-random_ioctl.o `test -f 'random_ioctl.c' || echo '$(srcdir)/'`random_ioctl.c -strace-riscv.obj: riscv.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-riscv.obj -MD -MP -MF $(DEPDIR)/strace-riscv.Tpo -c -o strace-riscv.obj `if test -f 'riscv.c'; then $(CYGPATH_W) 'riscv.c'; else $(CYGPATH_W) '$(srcdir)/riscv.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-riscv.Tpo $(DEPDIR)/strace-riscv.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='riscv.c' object='strace-riscv.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-random_ioctl.obj: random_ioctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-random_ioctl.obj -MD -MP -MF $(DEPDIR)/libstrace_a-random_ioctl.Tpo -c -o libstrace_a-random_ioctl.obj `if test -f 'random_ioctl.c'; then $(CYGPATH_W) 'random_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/random_ioctl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-random_ioctl.Tpo $(DEPDIR)/libstrace_a-random_ioctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='random_ioctl.c' object='libstrace_a-random_ioctl.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-riscv.obj `if test -f 'riscv.c'; then $(CYGPATH_W) 'riscv.c'; else $(CYGPATH_W) '$(srcdir)/riscv.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-random_ioctl.obj `if test -f 'random_ioctl.c'; then $(CYGPATH_W) 'random_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/random_ioctl.c'; fi` -strace-rt_sigframe.o: rt_sigframe.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rt_sigframe.o -MD -MP -MF $(DEPDIR)/strace-rt_sigframe.Tpo -c -o strace-rt_sigframe.o `test -f 'rt_sigframe.c' || echo '$(srcdir)/'`rt_sigframe.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rt_sigframe.Tpo $(DEPDIR)/strace-rt_sigframe.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rt_sigframe.c' object='strace-rt_sigframe.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-readahead.o: readahead.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-readahead.o -MD -MP -MF $(DEPDIR)/libstrace_a-readahead.Tpo -c -o libstrace_a-readahead.o `test -f 'readahead.c' || echo '$(srcdir)/'`readahead.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-readahead.Tpo $(DEPDIR)/libstrace_a-readahead.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='readahead.c' object='libstrace_a-readahead.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rt_sigframe.o `test -f 'rt_sigframe.c' || echo '$(srcdir)/'`rt_sigframe.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-readahead.o `test -f 'readahead.c' || echo '$(srcdir)/'`readahead.c -strace-rt_sigframe.obj: rt_sigframe.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rt_sigframe.obj -MD -MP -MF $(DEPDIR)/strace-rt_sigframe.Tpo -c -o strace-rt_sigframe.obj `if test -f 'rt_sigframe.c'; then $(CYGPATH_W) 'rt_sigframe.c'; else $(CYGPATH_W) '$(srcdir)/rt_sigframe.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rt_sigframe.Tpo $(DEPDIR)/strace-rt_sigframe.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rt_sigframe.c' object='strace-rt_sigframe.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-readahead.obj: readahead.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-readahead.obj -MD -MP -MF $(DEPDIR)/libstrace_a-readahead.Tpo -c -o libstrace_a-readahead.obj `if test -f 'readahead.c'; then $(CYGPATH_W) 'readahead.c'; else $(CYGPATH_W) '$(srcdir)/readahead.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-readahead.Tpo $(DEPDIR)/libstrace_a-readahead.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='readahead.c' object='libstrace_a-readahead.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rt_sigframe.obj `if test -f 'rt_sigframe.c'; then $(CYGPATH_W) 'rt_sigframe.c'; else $(CYGPATH_W) '$(srcdir)/rt_sigframe.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-readahead.obj `if test -f 'readahead.c'; then $(CYGPATH_W) 'readahead.c'; else $(CYGPATH_W) '$(srcdir)/readahead.c'; fi` -strace-rt_sigreturn.o: rt_sigreturn.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rt_sigreturn.o -MD -MP -MF $(DEPDIR)/strace-rt_sigreturn.Tpo -c -o strace-rt_sigreturn.o `test -f 'rt_sigreturn.c' || echo '$(srcdir)/'`rt_sigreturn.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rt_sigreturn.Tpo $(DEPDIR)/strace-rt_sigreturn.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rt_sigreturn.c' object='strace-rt_sigreturn.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-readlink.o: readlink.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-readlink.o -MD -MP -MF $(DEPDIR)/libstrace_a-readlink.Tpo -c -o libstrace_a-readlink.o `test -f 'readlink.c' || echo '$(srcdir)/'`readlink.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-readlink.Tpo $(DEPDIR)/libstrace_a-readlink.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='readlink.c' object='libstrace_a-readlink.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rt_sigreturn.o `test -f 'rt_sigreturn.c' || echo '$(srcdir)/'`rt_sigreturn.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-readlink.o `test -f 'readlink.c' || echo '$(srcdir)/'`readlink.c -strace-rt_sigreturn.obj: rt_sigreturn.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rt_sigreturn.obj -MD -MP -MF $(DEPDIR)/strace-rt_sigreturn.Tpo -c -o strace-rt_sigreturn.obj `if test -f 'rt_sigreturn.c'; then $(CYGPATH_W) 'rt_sigreturn.c'; else $(CYGPATH_W) '$(srcdir)/rt_sigreturn.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rt_sigreturn.Tpo $(DEPDIR)/strace-rt_sigreturn.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rt_sigreturn.c' object='strace-rt_sigreturn.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-readlink.obj: readlink.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-readlink.obj -MD -MP -MF $(DEPDIR)/libstrace_a-readlink.Tpo -c -o libstrace_a-readlink.obj `if test -f 'readlink.c'; then $(CYGPATH_W) 'readlink.c'; else $(CYGPATH_W) '$(srcdir)/readlink.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-readlink.Tpo $(DEPDIR)/libstrace_a-readlink.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='readlink.c' object='libstrace_a-readlink.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rt_sigreturn.obj `if test -f 'rt_sigreturn.c'; then $(CYGPATH_W) 'rt_sigreturn.c'; else $(CYGPATH_W) '$(srcdir)/rt_sigreturn.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-readlink.obj `if test -f 'readlink.c'; then $(CYGPATH_W) 'readlink.c'; else $(CYGPATH_W) '$(srcdir)/readlink.c'; fi` -strace-rtc.o: rtc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtc.o -MD -MP -MF $(DEPDIR)/strace-rtc.Tpo -c -o strace-rtc.o `test -f 'rtc.c' || echo '$(srcdir)/'`rtc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtc.Tpo $(DEPDIR)/strace-rtc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtc.c' object='strace-rtc.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-reboot.o: reboot.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-reboot.o -MD -MP -MF $(DEPDIR)/libstrace_a-reboot.Tpo -c -o libstrace_a-reboot.o `test -f 'reboot.c' || echo '$(srcdir)/'`reboot.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-reboot.Tpo $(DEPDIR)/libstrace_a-reboot.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='reboot.c' object='libstrace_a-reboot.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rtc.o `test -f 'rtc.c' || echo '$(srcdir)/'`rtc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-reboot.o `test -f 'reboot.c' || echo '$(srcdir)/'`reboot.c -strace-rtc.obj: rtc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtc.obj -MD -MP -MF $(DEPDIR)/strace-rtc.Tpo -c -o strace-rtc.obj `if test -f 'rtc.c'; then $(CYGPATH_W) 'rtc.c'; else $(CYGPATH_W) '$(srcdir)/rtc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtc.Tpo $(DEPDIR)/strace-rtc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtc.c' object='strace-rtc.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-reboot.obj: reboot.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-reboot.obj -MD -MP -MF $(DEPDIR)/libstrace_a-reboot.Tpo -c -o libstrace_a-reboot.obj `if test -f 'reboot.c'; then $(CYGPATH_W) 'reboot.c'; else $(CYGPATH_W) '$(srcdir)/reboot.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-reboot.Tpo $(DEPDIR)/libstrace_a-reboot.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='reboot.c' object='libstrace_a-reboot.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rtc.obj `if test -f 'rtc.c'; then $(CYGPATH_W) 'rtc.c'; else $(CYGPATH_W) '$(srcdir)/rtc.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-reboot.obj `if test -f 'reboot.c'; then $(CYGPATH_W) 'reboot.c'; else $(CYGPATH_W) '$(srcdir)/reboot.c'; fi` -strace-rtnl_addr.o: rtnl_addr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtnl_addr.o -MD -MP -MF $(DEPDIR)/strace-rtnl_addr.Tpo -c -o strace-rtnl_addr.o `test -f 'rtnl_addr.c' || echo '$(srcdir)/'`rtnl_addr.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtnl_addr.Tpo $(DEPDIR)/strace-rtnl_addr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_addr.c' object='strace-rtnl_addr.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-renameat.o: renameat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-renameat.o -MD -MP -MF $(DEPDIR)/libstrace_a-renameat.Tpo -c -o libstrace_a-renameat.o `test -f 'renameat.c' || echo '$(srcdir)/'`renameat.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-renameat.Tpo $(DEPDIR)/libstrace_a-renameat.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='renameat.c' object='libstrace_a-renameat.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rtnl_addr.o `test -f 'rtnl_addr.c' || echo '$(srcdir)/'`rtnl_addr.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-renameat.o `test -f 'renameat.c' || echo '$(srcdir)/'`renameat.c -strace-rtnl_addr.obj: rtnl_addr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtnl_addr.obj -MD -MP -MF $(DEPDIR)/strace-rtnl_addr.Tpo -c -o strace-rtnl_addr.obj `if test -f 'rtnl_addr.c'; then $(CYGPATH_W) 'rtnl_addr.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_addr.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtnl_addr.Tpo $(DEPDIR)/strace-rtnl_addr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_addr.c' object='strace-rtnl_addr.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-renameat.obj: renameat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-renameat.obj -MD -MP -MF $(DEPDIR)/libstrace_a-renameat.Tpo -c -o libstrace_a-renameat.obj `if test -f 'renameat.c'; then $(CYGPATH_W) 'renameat.c'; else $(CYGPATH_W) '$(srcdir)/renameat.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-renameat.Tpo $(DEPDIR)/libstrace_a-renameat.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='renameat.c' object='libstrace_a-renameat.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rtnl_addr.obj `if test -f 'rtnl_addr.c'; then $(CYGPATH_W) 'rtnl_addr.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_addr.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-renameat.obj `if test -f 'renameat.c'; then $(CYGPATH_W) 'renameat.c'; else $(CYGPATH_W) '$(srcdir)/renameat.c'; fi` -strace-rtnl_addrlabel.o: rtnl_addrlabel.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtnl_addrlabel.o -MD -MP -MF $(DEPDIR)/strace-rtnl_addrlabel.Tpo -c -o strace-rtnl_addrlabel.o `test -f 'rtnl_addrlabel.c' || echo '$(srcdir)/'`rtnl_addrlabel.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtnl_addrlabel.Tpo $(DEPDIR)/strace-rtnl_addrlabel.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_addrlabel.c' object='strace-rtnl_addrlabel.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-resource.o: resource.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-resource.o -MD -MP -MF $(DEPDIR)/libstrace_a-resource.Tpo -c -o libstrace_a-resource.o `test -f 'resource.c' || echo '$(srcdir)/'`resource.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-resource.Tpo $(DEPDIR)/libstrace_a-resource.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='resource.c' object='libstrace_a-resource.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rtnl_addrlabel.o `test -f 'rtnl_addrlabel.c' || echo '$(srcdir)/'`rtnl_addrlabel.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-resource.o `test -f 'resource.c' || echo '$(srcdir)/'`resource.c -strace-rtnl_addrlabel.obj: rtnl_addrlabel.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtnl_addrlabel.obj -MD -MP -MF $(DEPDIR)/strace-rtnl_addrlabel.Tpo -c -o strace-rtnl_addrlabel.obj `if test -f 'rtnl_addrlabel.c'; then $(CYGPATH_W) 'rtnl_addrlabel.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_addrlabel.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtnl_addrlabel.Tpo $(DEPDIR)/strace-rtnl_addrlabel.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_addrlabel.c' object='strace-rtnl_addrlabel.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-resource.obj: resource.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-resource.obj -MD -MP -MF $(DEPDIR)/libstrace_a-resource.Tpo -c -o libstrace_a-resource.obj `if test -f 'resource.c'; then $(CYGPATH_W) 'resource.c'; else $(CYGPATH_W) '$(srcdir)/resource.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-resource.Tpo $(DEPDIR)/libstrace_a-resource.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='resource.c' object='libstrace_a-resource.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rtnl_addrlabel.obj `if test -f 'rtnl_addrlabel.c'; then $(CYGPATH_W) 'rtnl_addrlabel.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_addrlabel.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-resource.obj `if test -f 'resource.c'; then $(CYGPATH_W) 'resource.c'; else $(CYGPATH_W) '$(srcdir)/resource.c'; fi` -strace-rtnl_dcb.o: rtnl_dcb.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtnl_dcb.o -MD -MP -MF $(DEPDIR)/strace-rtnl_dcb.Tpo -c -o strace-rtnl_dcb.o `test -f 'rtnl_dcb.c' || echo '$(srcdir)/'`rtnl_dcb.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtnl_dcb.Tpo $(DEPDIR)/strace-rtnl_dcb.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_dcb.c' object='strace-rtnl_dcb.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-retval.o: retval.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-retval.o -MD -MP -MF $(DEPDIR)/libstrace_a-retval.Tpo -c -o libstrace_a-retval.o `test -f 'retval.c' || echo '$(srcdir)/'`retval.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-retval.Tpo $(DEPDIR)/libstrace_a-retval.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='retval.c' object='libstrace_a-retval.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rtnl_dcb.o `test -f 'rtnl_dcb.c' || echo '$(srcdir)/'`rtnl_dcb.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-retval.o `test -f 'retval.c' || echo '$(srcdir)/'`retval.c -strace-rtnl_dcb.obj: rtnl_dcb.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtnl_dcb.obj -MD -MP -MF $(DEPDIR)/strace-rtnl_dcb.Tpo -c -o strace-rtnl_dcb.obj `if test -f 'rtnl_dcb.c'; then $(CYGPATH_W) 'rtnl_dcb.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_dcb.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtnl_dcb.Tpo $(DEPDIR)/strace-rtnl_dcb.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_dcb.c' object='strace-rtnl_dcb.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-retval.obj: retval.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-retval.obj -MD -MP -MF $(DEPDIR)/libstrace_a-retval.Tpo -c -o libstrace_a-retval.obj `if test -f 'retval.c'; then $(CYGPATH_W) 'retval.c'; else $(CYGPATH_W) '$(srcdir)/retval.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-retval.Tpo $(DEPDIR)/libstrace_a-retval.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='retval.c' object='libstrace_a-retval.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rtnl_dcb.obj `if test -f 'rtnl_dcb.c'; then $(CYGPATH_W) 'rtnl_dcb.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_dcb.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-retval.obj `if test -f 'retval.c'; then $(CYGPATH_W) 'retval.c'; else $(CYGPATH_W) '$(srcdir)/retval.c'; fi` -strace-rtnl_link.o: rtnl_link.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtnl_link.o -MD -MP -MF $(DEPDIR)/strace-rtnl_link.Tpo -c -o strace-rtnl_link.o `test -f 'rtnl_link.c' || echo '$(srcdir)/'`rtnl_link.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtnl_link.Tpo $(DEPDIR)/strace-rtnl_link.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_link.c' object='strace-rtnl_link.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-riscv.o: riscv.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-riscv.o -MD -MP -MF $(DEPDIR)/libstrace_a-riscv.Tpo -c -o libstrace_a-riscv.o `test -f 'riscv.c' || echo '$(srcdir)/'`riscv.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-riscv.Tpo $(DEPDIR)/libstrace_a-riscv.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='riscv.c' object='libstrace_a-riscv.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rtnl_link.o `test -f 'rtnl_link.c' || echo '$(srcdir)/'`rtnl_link.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-riscv.o `test -f 'riscv.c' || echo '$(srcdir)/'`riscv.c -strace-rtnl_link.obj: rtnl_link.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtnl_link.obj -MD -MP -MF $(DEPDIR)/strace-rtnl_link.Tpo -c -o strace-rtnl_link.obj `if test -f 'rtnl_link.c'; then $(CYGPATH_W) 'rtnl_link.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_link.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtnl_link.Tpo $(DEPDIR)/strace-rtnl_link.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_link.c' object='strace-rtnl_link.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-riscv.obj: riscv.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-riscv.obj -MD -MP -MF $(DEPDIR)/libstrace_a-riscv.Tpo -c -o libstrace_a-riscv.obj `if test -f 'riscv.c'; then $(CYGPATH_W) 'riscv.c'; else $(CYGPATH_W) '$(srcdir)/riscv.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-riscv.Tpo $(DEPDIR)/libstrace_a-riscv.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='riscv.c' object='libstrace_a-riscv.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rtnl_link.obj `if test -f 'rtnl_link.c'; then $(CYGPATH_W) 'rtnl_link.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_link.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-riscv.obj `if test -f 'riscv.c'; then $(CYGPATH_W) 'riscv.c'; else $(CYGPATH_W) '$(srcdir)/riscv.c'; fi` -strace-rtnl_mdb.o: rtnl_mdb.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtnl_mdb.o -MD -MP -MF $(DEPDIR)/strace-rtnl_mdb.Tpo -c -o strace-rtnl_mdb.o `test -f 'rtnl_mdb.c' || echo '$(srcdir)/'`rtnl_mdb.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtnl_mdb.Tpo $(DEPDIR)/strace-rtnl_mdb.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_mdb.c' object='strace-rtnl_mdb.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rt_sigframe.o: rt_sigframe.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rt_sigframe.o -MD -MP -MF $(DEPDIR)/libstrace_a-rt_sigframe.Tpo -c -o libstrace_a-rt_sigframe.o `test -f 'rt_sigframe.c' || echo '$(srcdir)/'`rt_sigframe.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rt_sigframe.Tpo $(DEPDIR)/libstrace_a-rt_sigframe.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rt_sigframe.c' object='libstrace_a-rt_sigframe.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rtnl_mdb.o `test -f 'rtnl_mdb.c' || echo '$(srcdir)/'`rtnl_mdb.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rt_sigframe.o `test -f 'rt_sigframe.c' || echo '$(srcdir)/'`rt_sigframe.c -strace-rtnl_mdb.obj: rtnl_mdb.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtnl_mdb.obj -MD -MP -MF $(DEPDIR)/strace-rtnl_mdb.Tpo -c -o strace-rtnl_mdb.obj `if test -f 'rtnl_mdb.c'; then $(CYGPATH_W) 'rtnl_mdb.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_mdb.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtnl_mdb.Tpo $(DEPDIR)/strace-rtnl_mdb.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_mdb.c' object='strace-rtnl_mdb.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rt_sigframe.obj: rt_sigframe.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rt_sigframe.obj -MD -MP -MF $(DEPDIR)/libstrace_a-rt_sigframe.Tpo -c -o libstrace_a-rt_sigframe.obj `if test -f 'rt_sigframe.c'; then $(CYGPATH_W) 'rt_sigframe.c'; else $(CYGPATH_W) '$(srcdir)/rt_sigframe.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rt_sigframe.Tpo $(DEPDIR)/libstrace_a-rt_sigframe.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rt_sigframe.c' object='libstrace_a-rt_sigframe.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rtnl_mdb.obj `if test -f 'rtnl_mdb.c'; then $(CYGPATH_W) 'rtnl_mdb.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_mdb.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rt_sigframe.obj `if test -f 'rt_sigframe.c'; then $(CYGPATH_W) 'rt_sigframe.c'; else $(CYGPATH_W) '$(srcdir)/rt_sigframe.c'; fi` -strace-rtnl_neigh.o: rtnl_neigh.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtnl_neigh.o -MD -MP -MF $(DEPDIR)/strace-rtnl_neigh.Tpo -c -o strace-rtnl_neigh.o `test -f 'rtnl_neigh.c' || echo '$(srcdir)/'`rtnl_neigh.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtnl_neigh.Tpo $(DEPDIR)/strace-rtnl_neigh.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_neigh.c' object='strace-rtnl_neigh.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rt_sigreturn.o: rt_sigreturn.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rt_sigreturn.o -MD -MP -MF $(DEPDIR)/libstrace_a-rt_sigreturn.Tpo -c -o libstrace_a-rt_sigreturn.o `test -f 'rt_sigreturn.c' || echo '$(srcdir)/'`rt_sigreturn.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rt_sigreturn.Tpo $(DEPDIR)/libstrace_a-rt_sigreturn.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rt_sigreturn.c' object='libstrace_a-rt_sigreturn.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rtnl_neigh.o `test -f 'rtnl_neigh.c' || echo '$(srcdir)/'`rtnl_neigh.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rt_sigreturn.o `test -f 'rt_sigreturn.c' || echo '$(srcdir)/'`rt_sigreturn.c -strace-rtnl_neigh.obj: rtnl_neigh.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtnl_neigh.obj -MD -MP -MF $(DEPDIR)/strace-rtnl_neigh.Tpo -c -o strace-rtnl_neigh.obj `if test -f 'rtnl_neigh.c'; then $(CYGPATH_W) 'rtnl_neigh.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_neigh.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtnl_neigh.Tpo $(DEPDIR)/strace-rtnl_neigh.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_neigh.c' object='strace-rtnl_neigh.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rt_sigreturn.obj: rt_sigreturn.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rt_sigreturn.obj -MD -MP -MF $(DEPDIR)/libstrace_a-rt_sigreturn.Tpo -c -o libstrace_a-rt_sigreturn.obj `if test -f 'rt_sigreturn.c'; then $(CYGPATH_W) 'rt_sigreturn.c'; else $(CYGPATH_W) '$(srcdir)/rt_sigreturn.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rt_sigreturn.Tpo $(DEPDIR)/libstrace_a-rt_sigreturn.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rt_sigreturn.c' object='libstrace_a-rt_sigreturn.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rtnl_neigh.obj `if test -f 'rtnl_neigh.c'; then $(CYGPATH_W) 'rtnl_neigh.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_neigh.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rt_sigreturn.obj `if test -f 'rt_sigreturn.c'; then $(CYGPATH_W) 'rt_sigreturn.c'; else $(CYGPATH_W) '$(srcdir)/rt_sigreturn.c'; fi` -strace-rtnl_neightbl.o: rtnl_neightbl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtnl_neightbl.o -MD -MP -MF $(DEPDIR)/strace-rtnl_neightbl.Tpo -c -o strace-rtnl_neightbl.o `test -f 'rtnl_neightbl.c' || echo '$(srcdir)/'`rtnl_neightbl.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtnl_neightbl.Tpo $(DEPDIR)/strace-rtnl_neightbl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_neightbl.c' object='strace-rtnl_neightbl.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rtc.o: rtc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rtc.o -MD -MP -MF $(DEPDIR)/libstrace_a-rtc.Tpo -c -o libstrace_a-rtc.o `test -f 'rtc.c' || echo '$(srcdir)/'`rtc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rtc.Tpo $(DEPDIR)/libstrace_a-rtc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtc.c' object='libstrace_a-rtc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rtnl_neightbl.o `test -f 'rtnl_neightbl.c' || echo '$(srcdir)/'`rtnl_neightbl.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rtc.o `test -f 'rtc.c' || echo '$(srcdir)/'`rtc.c -strace-rtnl_neightbl.obj: rtnl_neightbl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtnl_neightbl.obj -MD -MP -MF $(DEPDIR)/strace-rtnl_neightbl.Tpo -c -o strace-rtnl_neightbl.obj `if test -f 'rtnl_neightbl.c'; then $(CYGPATH_W) 'rtnl_neightbl.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_neightbl.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtnl_neightbl.Tpo $(DEPDIR)/strace-rtnl_neightbl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_neightbl.c' object='strace-rtnl_neightbl.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rtc.obj: rtc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rtc.obj -MD -MP -MF $(DEPDIR)/libstrace_a-rtc.Tpo -c -o libstrace_a-rtc.obj `if test -f 'rtc.c'; then $(CYGPATH_W) 'rtc.c'; else $(CYGPATH_W) '$(srcdir)/rtc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rtc.Tpo $(DEPDIR)/libstrace_a-rtc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtc.c' object='libstrace_a-rtc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rtnl_neightbl.obj `if test -f 'rtnl_neightbl.c'; then $(CYGPATH_W) 'rtnl_neightbl.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_neightbl.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rtc.obj `if test -f 'rtc.c'; then $(CYGPATH_W) 'rtc.c'; else $(CYGPATH_W) '$(srcdir)/rtc.c'; fi` -strace-rtnl_netconf.o: rtnl_netconf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtnl_netconf.o -MD -MP -MF $(DEPDIR)/strace-rtnl_netconf.Tpo -c -o strace-rtnl_netconf.o `test -f 'rtnl_netconf.c' || echo '$(srcdir)/'`rtnl_netconf.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtnl_netconf.Tpo $(DEPDIR)/strace-rtnl_netconf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_netconf.c' object='strace-rtnl_netconf.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rtnl_addr.o: rtnl_addr.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rtnl_addr.o -MD -MP -MF $(DEPDIR)/libstrace_a-rtnl_addr.Tpo -c -o libstrace_a-rtnl_addr.o `test -f 'rtnl_addr.c' || echo '$(srcdir)/'`rtnl_addr.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rtnl_addr.Tpo $(DEPDIR)/libstrace_a-rtnl_addr.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_addr.c' object='libstrace_a-rtnl_addr.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rtnl_netconf.o `test -f 'rtnl_netconf.c' || echo '$(srcdir)/'`rtnl_netconf.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rtnl_addr.o `test -f 'rtnl_addr.c' || echo '$(srcdir)/'`rtnl_addr.c -strace-rtnl_netconf.obj: rtnl_netconf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtnl_netconf.obj -MD -MP -MF $(DEPDIR)/strace-rtnl_netconf.Tpo -c -o strace-rtnl_netconf.obj `if test -f 'rtnl_netconf.c'; then $(CYGPATH_W) 'rtnl_netconf.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_netconf.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtnl_netconf.Tpo $(DEPDIR)/strace-rtnl_netconf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_netconf.c' object='strace-rtnl_netconf.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rtnl_addr.obj: rtnl_addr.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rtnl_addr.obj -MD -MP -MF $(DEPDIR)/libstrace_a-rtnl_addr.Tpo -c -o libstrace_a-rtnl_addr.obj `if test -f 'rtnl_addr.c'; then $(CYGPATH_W) 'rtnl_addr.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_addr.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rtnl_addr.Tpo $(DEPDIR)/libstrace_a-rtnl_addr.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_addr.c' object='libstrace_a-rtnl_addr.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rtnl_netconf.obj `if test -f 'rtnl_netconf.c'; then $(CYGPATH_W) 'rtnl_netconf.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_netconf.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rtnl_addr.obj `if test -f 'rtnl_addr.c'; then $(CYGPATH_W) 'rtnl_addr.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_addr.c'; fi` -strace-rtnl_nsid.o: rtnl_nsid.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtnl_nsid.o -MD -MP -MF $(DEPDIR)/strace-rtnl_nsid.Tpo -c -o strace-rtnl_nsid.o `test -f 'rtnl_nsid.c' || echo '$(srcdir)/'`rtnl_nsid.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtnl_nsid.Tpo $(DEPDIR)/strace-rtnl_nsid.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_nsid.c' object='strace-rtnl_nsid.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rtnl_addrlabel.o: rtnl_addrlabel.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rtnl_addrlabel.o -MD -MP -MF $(DEPDIR)/libstrace_a-rtnl_addrlabel.Tpo -c -o libstrace_a-rtnl_addrlabel.o `test -f 'rtnl_addrlabel.c' || echo '$(srcdir)/'`rtnl_addrlabel.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rtnl_addrlabel.Tpo $(DEPDIR)/libstrace_a-rtnl_addrlabel.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_addrlabel.c' object='libstrace_a-rtnl_addrlabel.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rtnl_nsid.o `test -f 'rtnl_nsid.c' || echo '$(srcdir)/'`rtnl_nsid.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rtnl_addrlabel.o `test -f 'rtnl_addrlabel.c' || echo '$(srcdir)/'`rtnl_addrlabel.c -strace-rtnl_nsid.obj: rtnl_nsid.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtnl_nsid.obj -MD -MP -MF $(DEPDIR)/strace-rtnl_nsid.Tpo -c -o strace-rtnl_nsid.obj `if test -f 'rtnl_nsid.c'; then $(CYGPATH_W) 'rtnl_nsid.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_nsid.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtnl_nsid.Tpo $(DEPDIR)/strace-rtnl_nsid.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_nsid.c' object='strace-rtnl_nsid.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rtnl_addrlabel.obj: rtnl_addrlabel.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rtnl_addrlabel.obj -MD -MP -MF $(DEPDIR)/libstrace_a-rtnl_addrlabel.Tpo -c -o libstrace_a-rtnl_addrlabel.obj `if test -f 'rtnl_addrlabel.c'; then $(CYGPATH_W) 'rtnl_addrlabel.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_addrlabel.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rtnl_addrlabel.Tpo $(DEPDIR)/libstrace_a-rtnl_addrlabel.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_addrlabel.c' object='libstrace_a-rtnl_addrlabel.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rtnl_nsid.obj `if test -f 'rtnl_nsid.c'; then $(CYGPATH_W) 'rtnl_nsid.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_nsid.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rtnl_addrlabel.obj `if test -f 'rtnl_addrlabel.c'; then $(CYGPATH_W) 'rtnl_addrlabel.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_addrlabel.c'; fi` -strace-rtnl_route.o: rtnl_route.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtnl_route.o -MD -MP -MF $(DEPDIR)/strace-rtnl_route.Tpo -c -o strace-rtnl_route.o `test -f 'rtnl_route.c' || echo '$(srcdir)/'`rtnl_route.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtnl_route.Tpo $(DEPDIR)/strace-rtnl_route.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_route.c' object='strace-rtnl_route.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rtnl_dcb.o: rtnl_dcb.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rtnl_dcb.o -MD -MP -MF $(DEPDIR)/libstrace_a-rtnl_dcb.Tpo -c -o libstrace_a-rtnl_dcb.o `test -f 'rtnl_dcb.c' || echo '$(srcdir)/'`rtnl_dcb.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rtnl_dcb.Tpo $(DEPDIR)/libstrace_a-rtnl_dcb.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_dcb.c' object='libstrace_a-rtnl_dcb.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rtnl_route.o `test -f 'rtnl_route.c' || echo '$(srcdir)/'`rtnl_route.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rtnl_dcb.o `test -f 'rtnl_dcb.c' || echo '$(srcdir)/'`rtnl_dcb.c -strace-rtnl_route.obj: rtnl_route.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtnl_route.obj -MD -MP -MF $(DEPDIR)/strace-rtnl_route.Tpo -c -o strace-rtnl_route.obj `if test -f 'rtnl_route.c'; then $(CYGPATH_W) 'rtnl_route.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_route.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtnl_route.Tpo $(DEPDIR)/strace-rtnl_route.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_route.c' object='strace-rtnl_route.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rtnl_dcb.obj: rtnl_dcb.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rtnl_dcb.obj -MD -MP -MF $(DEPDIR)/libstrace_a-rtnl_dcb.Tpo -c -o libstrace_a-rtnl_dcb.obj `if test -f 'rtnl_dcb.c'; then $(CYGPATH_W) 'rtnl_dcb.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_dcb.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rtnl_dcb.Tpo $(DEPDIR)/libstrace_a-rtnl_dcb.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_dcb.c' object='libstrace_a-rtnl_dcb.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rtnl_route.obj `if test -f 'rtnl_route.c'; then $(CYGPATH_W) 'rtnl_route.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_route.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rtnl_dcb.obj `if test -f 'rtnl_dcb.c'; then $(CYGPATH_W) 'rtnl_dcb.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_dcb.c'; fi` -strace-rtnl_rule.o: rtnl_rule.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtnl_rule.o -MD -MP -MF $(DEPDIR)/strace-rtnl_rule.Tpo -c -o strace-rtnl_rule.o `test -f 'rtnl_rule.c' || echo '$(srcdir)/'`rtnl_rule.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtnl_rule.Tpo $(DEPDIR)/strace-rtnl_rule.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_rule.c' object='strace-rtnl_rule.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rtnl_link.o: rtnl_link.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rtnl_link.o -MD -MP -MF $(DEPDIR)/libstrace_a-rtnl_link.Tpo -c -o libstrace_a-rtnl_link.o `test -f 'rtnl_link.c' || echo '$(srcdir)/'`rtnl_link.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rtnl_link.Tpo $(DEPDIR)/libstrace_a-rtnl_link.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_link.c' object='libstrace_a-rtnl_link.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rtnl_rule.o `test -f 'rtnl_rule.c' || echo '$(srcdir)/'`rtnl_rule.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rtnl_link.o `test -f 'rtnl_link.c' || echo '$(srcdir)/'`rtnl_link.c -strace-rtnl_rule.obj: rtnl_rule.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtnl_rule.obj -MD -MP -MF $(DEPDIR)/strace-rtnl_rule.Tpo -c -o strace-rtnl_rule.obj `if test -f 'rtnl_rule.c'; then $(CYGPATH_W) 'rtnl_rule.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_rule.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtnl_rule.Tpo $(DEPDIR)/strace-rtnl_rule.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_rule.c' object='strace-rtnl_rule.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rtnl_link.obj: rtnl_link.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rtnl_link.obj -MD -MP -MF $(DEPDIR)/libstrace_a-rtnl_link.Tpo -c -o libstrace_a-rtnl_link.obj `if test -f 'rtnl_link.c'; then $(CYGPATH_W) 'rtnl_link.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_link.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rtnl_link.Tpo $(DEPDIR)/libstrace_a-rtnl_link.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_link.c' object='libstrace_a-rtnl_link.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rtnl_rule.obj `if test -f 'rtnl_rule.c'; then $(CYGPATH_W) 'rtnl_rule.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_rule.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rtnl_link.obj `if test -f 'rtnl_link.c'; then $(CYGPATH_W) 'rtnl_link.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_link.c'; fi` -strace-rtnl_tc.o: rtnl_tc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtnl_tc.o -MD -MP -MF $(DEPDIR)/strace-rtnl_tc.Tpo -c -o strace-rtnl_tc.o `test -f 'rtnl_tc.c' || echo '$(srcdir)/'`rtnl_tc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtnl_tc.Tpo $(DEPDIR)/strace-rtnl_tc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_tc.c' object='strace-rtnl_tc.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rtnl_mdb.o: rtnl_mdb.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rtnl_mdb.o -MD -MP -MF $(DEPDIR)/libstrace_a-rtnl_mdb.Tpo -c -o libstrace_a-rtnl_mdb.o `test -f 'rtnl_mdb.c' || echo '$(srcdir)/'`rtnl_mdb.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rtnl_mdb.Tpo $(DEPDIR)/libstrace_a-rtnl_mdb.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_mdb.c' object='libstrace_a-rtnl_mdb.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rtnl_tc.o `test -f 'rtnl_tc.c' || echo '$(srcdir)/'`rtnl_tc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rtnl_mdb.o `test -f 'rtnl_mdb.c' || echo '$(srcdir)/'`rtnl_mdb.c -strace-rtnl_tc.obj: rtnl_tc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtnl_tc.obj -MD -MP -MF $(DEPDIR)/strace-rtnl_tc.Tpo -c -o strace-rtnl_tc.obj `if test -f 'rtnl_tc.c'; then $(CYGPATH_W) 'rtnl_tc.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_tc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtnl_tc.Tpo $(DEPDIR)/strace-rtnl_tc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_tc.c' object='strace-rtnl_tc.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rtnl_mdb.obj: rtnl_mdb.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rtnl_mdb.obj -MD -MP -MF $(DEPDIR)/libstrace_a-rtnl_mdb.Tpo -c -o libstrace_a-rtnl_mdb.obj `if test -f 'rtnl_mdb.c'; then $(CYGPATH_W) 'rtnl_mdb.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_mdb.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rtnl_mdb.Tpo $(DEPDIR)/libstrace_a-rtnl_mdb.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_mdb.c' object='libstrace_a-rtnl_mdb.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rtnl_tc.obj `if test -f 'rtnl_tc.c'; then $(CYGPATH_W) 'rtnl_tc.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_tc.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rtnl_mdb.obj `if test -f 'rtnl_mdb.c'; then $(CYGPATH_W) 'rtnl_mdb.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_mdb.c'; fi` -strace-rtnl_tc_action.o: rtnl_tc_action.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtnl_tc_action.o -MD -MP -MF $(DEPDIR)/strace-rtnl_tc_action.Tpo -c -o strace-rtnl_tc_action.o `test -f 'rtnl_tc_action.c' || echo '$(srcdir)/'`rtnl_tc_action.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtnl_tc_action.Tpo $(DEPDIR)/strace-rtnl_tc_action.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_tc_action.c' object='strace-rtnl_tc_action.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rtnl_neigh.o: rtnl_neigh.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rtnl_neigh.o -MD -MP -MF $(DEPDIR)/libstrace_a-rtnl_neigh.Tpo -c -o libstrace_a-rtnl_neigh.o `test -f 'rtnl_neigh.c' || echo '$(srcdir)/'`rtnl_neigh.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rtnl_neigh.Tpo $(DEPDIR)/libstrace_a-rtnl_neigh.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_neigh.c' object='libstrace_a-rtnl_neigh.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rtnl_tc_action.o `test -f 'rtnl_tc_action.c' || echo '$(srcdir)/'`rtnl_tc_action.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rtnl_neigh.o `test -f 'rtnl_neigh.c' || echo '$(srcdir)/'`rtnl_neigh.c -strace-rtnl_tc_action.obj: rtnl_tc_action.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtnl_tc_action.obj -MD -MP -MF $(DEPDIR)/strace-rtnl_tc_action.Tpo -c -o strace-rtnl_tc_action.obj `if test -f 'rtnl_tc_action.c'; then $(CYGPATH_W) 'rtnl_tc_action.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_tc_action.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtnl_tc_action.Tpo $(DEPDIR)/strace-rtnl_tc_action.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_tc_action.c' object='strace-rtnl_tc_action.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rtnl_neigh.obj: rtnl_neigh.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rtnl_neigh.obj -MD -MP -MF $(DEPDIR)/libstrace_a-rtnl_neigh.Tpo -c -o libstrace_a-rtnl_neigh.obj `if test -f 'rtnl_neigh.c'; then $(CYGPATH_W) 'rtnl_neigh.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_neigh.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rtnl_neigh.Tpo $(DEPDIR)/libstrace_a-rtnl_neigh.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_neigh.c' object='libstrace_a-rtnl_neigh.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rtnl_tc_action.obj `if test -f 'rtnl_tc_action.c'; then $(CYGPATH_W) 'rtnl_tc_action.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_tc_action.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rtnl_neigh.obj `if test -f 'rtnl_neigh.c'; then $(CYGPATH_W) 'rtnl_neigh.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_neigh.c'; fi` -strace-s390.o: s390.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-s390.o -MD -MP -MF $(DEPDIR)/strace-s390.Tpo -c -o strace-s390.o `test -f 's390.c' || echo '$(srcdir)/'`s390.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-s390.Tpo $(DEPDIR)/strace-s390.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='s390.c' object='strace-s390.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rtnl_neightbl.o: rtnl_neightbl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rtnl_neightbl.o -MD -MP -MF $(DEPDIR)/libstrace_a-rtnl_neightbl.Tpo -c -o libstrace_a-rtnl_neightbl.o `test -f 'rtnl_neightbl.c' || echo '$(srcdir)/'`rtnl_neightbl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rtnl_neightbl.Tpo $(DEPDIR)/libstrace_a-rtnl_neightbl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_neightbl.c' object='libstrace_a-rtnl_neightbl.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-s390.o `test -f 's390.c' || echo '$(srcdir)/'`s390.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rtnl_neightbl.o `test -f 'rtnl_neightbl.c' || echo '$(srcdir)/'`rtnl_neightbl.c -strace-s390.obj: s390.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-s390.obj -MD -MP -MF $(DEPDIR)/strace-s390.Tpo -c -o strace-s390.obj `if test -f 's390.c'; then $(CYGPATH_W) 's390.c'; else $(CYGPATH_W) '$(srcdir)/s390.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-s390.Tpo $(DEPDIR)/strace-s390.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='s390.c' object='strace-s390.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rtnl_neightbl.obj: rtnl_neightbl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rtnl_neightbl.obj -MD -MP -MF $(DEPDIR)/libstrace_a-rtnl_neightbl.Tpo -c -o libstrace_a-rtnl_neightbl.obj `if test -f 'rtnl_neightbl.c'; then $(CYGPATH_W) 'rtnl_neightbl.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_neightbl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rtnl_neightbl.Tpo $(DEPDIR)/libstrace_a-rtnl_neightbl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_neightbl.c' object='libstrace_a-rtnl_neightbl.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-s390.obj `if test -f 's390.c'; then $(CYGPATH_W) 's390.c'; else $(CYGPATH_W) '$(srcdir)/s390.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rtnl_neightbl.obj `if test -f 'rtnl_neightbl.c'; then $(CYGPATH_W) 'rtnl_neightbl.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_neightbl.c'; fi` -strace-sched.o: sched.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sched.o -MD -MP -MF $(DEPDIR)/strace-sched.Tpo -c -o strace-sched.o `test -f 'sched.c' || echo '$(srcdir)/'`sched.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-sched.Tpo $(DEPDIR)/strace-sched.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sched.c' object='strace-sched.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rtnl_netconf.o: rtnl_netconf.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rtnl_netconf.o -MD -MP -MF $(DEPDIR)/libstrace_a-rtnl_netconf.Tpo -c -o libstrace_a-rtnl_netconf.o `test -f 'rtnl_netconf.c' || echo '$(srcdir)/'`rtnl_netconf.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rtnl_netconf.Tpo $(DEPDIR)/libstrace_a-rtnl_netconf.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_netconf.c' object='libstrace_a-rtnl_netconf.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-sched.o `test -f 'sched.c' || echo '$(srcdir)/'`sched.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rtnl_netconf.o `test -f 'rtnl_netconf.c' || echo '$(srcdir)/'`rtnl_netconf.c -strace-sched.obj: sched.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sched.obj -MD -MP -MF $(DEPDIR)/strace-sched.Tpo -c -o strace-sched.obj `if test -f 'sched.c'; then $(CYGPATH_W) 'sched.c'; else $(CYGPATH_W) '$(srcdir)/sched.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-sched.Tpo $(DEPDIR)/strace-sched.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sched.c' object='strace-sched.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rtnl_netconf.obj: rtnl_netconf.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rtnl_netconf.obj -MD -MP -MF $(DEPDIR)/libstrace_a-rtnl_netconf.Tpo -c -o libstrace_a-rtnl_netconf.obj `if test -f 'rtnl_netconf.c'; then $(CYGPATH_W) 'rtnl_netconf.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_netconf.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rtnl_netconf.Tpo $(DEPDIR)/libstrace_a-rtnl_netconf.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_netconf.c' object='libstrace_a-rtnl_netconf.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-sched.obj `if test -f 'sched.c'; then $(CYGPATH_W) 'sched.c'; else $(CYGPATH_W) '$(srcdir)/sched.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rtnl_netconf.obj `if test -f 'rtnl_netconf.c'; then $(CYGPATH_W) 'rtnl_netconf.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_netconf.c'; fi` -strace-scsi.o: scsi.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-scsi.o -MD -MP -MF $(DEPDIR)/strace-scsi.Tpo -c -o strace-scsi.o `test -f 'scsi.c' || echo '$(srcdir)/'`scsi.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-scsi.Tpo $(DEPDIR)/strace-scsi.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='scsi.c' object='strace-scsi.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rtnl_nsid.o: rtnl_nsid.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rtnl_nsid.o -MD -MP -MF $(DEPDIR)/libstrace_a-rtnl_nsid.Tpo -c -o libstrace_a-rtnl_nsid.o `test -f 'rtnl_nsid.c' || echo '$(srcdir)/'`rtnl_nsid.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rtnl_nsid.Tpo $(DEPDIR)/libstrace_a-rtnl_nsid.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_nsid.c' object='libstrace_a-rtnl_nsid.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-scsi.o `test -f 'scsi.c' || echo '$(srcdir)/'`scsi.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rtnl_nsid.o `test -f 'rtnl_nsid.c' || echo '$(srcdir)/'`rtnl_nsid.c -strace-scsi.obj: scsi.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-scsi.obj -MD -MP -MF $(DEPDIR)/strace-scsi.Tpo -c -o strace-scsi.obj `if test -f 'scsi.c'; then $(CYGPATH_W) 'scsi.c'; else $(CYGPATH_W) '$(srcdir)/scsi.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-scsi.Tpo $(DEPDIR)/strace-scsi.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='scsi.c' object='strace-scsi.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rtnl_nsid.obj: rtnl_nsid.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rtnl_nsid.obj -MD -MP -MF $(DEPDIR)/libstrace_a-rtnl_nsid.Tpo -c -o libstrace_a-rtnl_nsid.obj `if test -f 'rtnl_nsid.c'; then $(CYGPATH_W) 'rtnl_nsid.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_nsid.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rtnl_nsid.Tpo $(DEPDIR)/libstrace_a-rtnl_nsid.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_nsid.c' object='libstrace_a-rtnl_nsid.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-scsi.obj `if test -f 'scsi.c'; then $(CYGPATH_W) 'scsi.c'; else $(CYGPATH_W) '$(srcdir)/scsi.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rtnl_nsid.obj `if test -f 'rtnl_nsid.c'; then $(CYGPATH_W) 'rtnl_nsid.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_nsid.c'; fi` -strace-seccomp.o: seccomp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-seccomp.o -MD -MP -MF $(DEPDIR)/strace-seccomp.Tpo -c -o strace-seccomp.o `test -f 'seccomp.c' || echo '$(srcdir)/'`seccomp.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-seccomp.Tpo $(DEPDIR)/strace-seccomp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='seccomp.c' object='strace-seccomp.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rtnl_route.o: rtnl_route.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rtnl_route.o -MD -MP -MF $(DEPDIR)/libstrace_a-rtnl_route.Tpo -c -o libstrace_a-rtnl_route.o `test -f 'rtnl_route.c' || echo '$(srcdir)/'`rtnl_route.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rtnl_route.Tpo $(DEPDIR)/libstrace_a-rtnl_route.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_route.c' object='libstrace_a-rtnl_route.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-seccomp.o `test -f 'seccomp.c' || echo '$(srcdir)/'`seccomp.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rtnl_route.o `test -f 'rtnl_route.c' || echo '$(srcdir)/'`rtnl_route.c -strace-seccomp.obj: seccomp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-seccomp.obj -MD -MP -MF $(DEPDIR)/strace-seccomp.Tpo -c -o strace-seccomp.obj `if test -f 'seccomp.c'; then $(CYGPATH_W) 'seccomp.c'; else $(CYGPATH_W) '$(srcdir)/seccomp.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-seccomp.Tpo $(DEPDIR)/strace-seccomp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='seccomp.c' object='strace-seccomp.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rtnl_route.obj: rtnl_route.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rtnl_route.obj -MD -MP -MF $(DEPDIR)/libstrace_a-rtnl_route.Tpo -c -o libstrace_a-rtnl_route.obj `if test -f 'rtnl_route.c'; then $(CYGPATH_W) 'rtnl_route.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_route.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rtnl_route.Tpo $(DEPDIR)/libstrace_a-rtnl_route.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_route.c' object='libstrace_a-rtnl_route.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-seccomp.obj `if test -f 'seccomp.c'; then $(CYGPATH_W) 'seccomp.c'; else $(CYGPATH_W) '$(srcdir)/seccomp.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rtnl_route.obj `if test -f 'rtnl_route.c'; then $(CYGPATH_W) 'rtnl_route.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_route.c'; fi` -strace-sendfile.o: sendfile.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sendfile.o -MD -MP -MF $(DEPDIR)/strace-sendfile.Tpo -c -o strace-sendfile.o `test -f 'sendfile.c' || echo '$(srcdir)/'`sendfile.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-sendfile.Tpo $(DEPDIR)/strace-sendfile.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sendfile.c' object='strace-sendfile.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rtnl_rule.o: rtnl_rule.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rtnl_rule.o -MD -MP -MF $(DEPDIR)/libstrace_a-rtnl_rule.Tpo -c -o libstrace_a-rtnl_rule.o `test -f 'rtnl_rule.c' || echo '$(srcdir)/'`rtnl_rule.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rtnl_rule.Tpo $(DEPDIR)/libstrace_a-rtnl_rule.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_rule.c' object='libstrace_a-rtnl_rule.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-sendfile.o `test -f 'sendfile.c' || echo '$(srcdir)/'`sendfile.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rtnl_rule.o `test -f 'rtnl_rule.c' || echo '$(srcdir)/'`rtnl_rule.c -strace-sendfile.obj: sendfile.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sendfile.obj -MD -MP -MF $(DEPDIR)/strace-sendfile.Tpo -c -o strace-sendfile.obj `if test -f 'sendfile.c'; then $(CYGPATH_W) 'sendfile.c'; else $(CYGPATH_W) '$(srcdir)/sendfile.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-sendfile.Tpo $(DEPDIR)/strace-sendfile.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sendfile.c' object='strace-sendfile.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rtnl_rule.obj: rtnl_rule.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rtnl_rule.obj -MD -MP -MF $(DEPDIR)/libstrace_a-rtnl_rule.Tpo -c -o libstrace_a-rtnl_rule.obj `if test -f 'rtnl_rule.c'; then $(CYGPATH_W) 'rtnl_rule.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_rule.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rtnl_rule.Tpo $(DEPDIR)/libstrace_a-rtnl_rule.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_rule.c' object='libstrace_a-rtnl_rule.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-sendfile.obj `if test -f 'sendfile.c'; then $(CYGPATH_W) 'sendfile.c'; else $(CYGPATH_W) '$(srcdir)/sendfile.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rtnl_rule.obj `if test -f 'rtnl_rule.c'; then $(CYGPATH_W) 'rtnl_rule.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_rule.c'; fi` -strace-sg_io_v3.o: sg_io_v3.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sg_io_v3.o -MD -MP -MF $(DEPDIR)/strace-sg_io_v3.Tpo -c -o strace-sg_io_v3.o `test -f 'sg_io_v3.c' || echo '$(srcdir)/'`sg_io_v3.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-sg_io_v3.Tpo $(DEPDIR)/strace-sg_io_v3.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sg_io_v3.c' object='strace-sg_io_v3.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rtnl_tc.o: rtnl_tc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rtnl_tc.o -MD -MP -MF $(DEPDIR)/libstrace_a-rtnl_tc.Tpo -c -o libstrace_a-rtnl_tc.o `test -f 'rtnl_tc.c' || echo '$(srcdir)/'`rtnl_tc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rtnl_tc.Tpo $(DEPDIR)/libstrace_a-rtnl_tc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_tc.c' object='libstrace_a-rtnl_tc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-sg_io_v3.o `test -f 'sg_io_v3.c' || echo '$(srcdir)/'`sg_io_v3.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rtnl_tc.o `test -f 'rtnl_tc.c' || echo '$(srcdir)/'`rtnl_tc.c -strace-sg_io_v3.obj: sg_io_v3.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sg_io_v3.obj -MD -MP -MF $(DEPDIR)/strace-sg_io_v3.Tpo -c -o strace-sg_io_v3.obj `if test -f 'sg_io_v3.c'; then $(CYGPATH_W) 'sg_io_v3.c'; else $(CYGPATH_W) '$(srcdir)/sg_io_v3.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-sg_io_v3.Tpo $(DEPDIR)/strace-sg_io_v3.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sg_io_v3.c' object='strace-sg_io_v3.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rtnl_tc.obj: rtnl_tc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rtnl_tc.obj -MD -MP -MF $(DEPDIR)/libstrace_a-rtnl_tc.Tpo -c -o libstrace_a-rtnl_tc.obj `if test -f 'rtnl_tc.c'; then $(CYGPATH_W) 'rtnl_tc.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_tc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rtnl_tc.Tpo $(DEPDIR)/libstrace_a-rtnl_tc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_tc.c' object='libstrace_a-rtnl_tc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-sg_io_v3.obj `if test -f 'sg_io_v3.c'; then $(CYGPATH_W) 'sg_io_v3.c'; else $(CYGPATH_W) '$(srcdir)/sg_io_v3.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rtnl_tc.obj `if test -f 'rtnl_tc.c'; then $(CYGPATH_W) 'rtnl_tc.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_tc.c'; fi` -strace-sg_io_v4.o: sg_io_v4.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sg_io_v4.o -MD -MP -MF $(DEPDIR)/strace-sg_io_v4.Tpo -c -o strace-sg_io_v4.o `test -f 'sg_io_v4.c' || echo '$(srcdir)/'`sg_io_v4.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-sg_io_v4.Tpo $(DEPDIR)/strace-sg_io_v4.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sg_io_v4.c' object='strace-sg_io_v4.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rtnl_tc_action.o: rtnl_tc_action.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rtnl_tc_action.o -MD -MP -MF $(DEPDIR)/libstrace_a-rtnl_tc_action.Tpo -c -o libstrace_a-rtnl_tc_action.o `test -f 'rtnl_tc_action.c' || echo '$(srcdir)/'`rtnl_tc_action.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rtnl_tc_action.Tpo $(DEPDIR)/libstrace_a-rtnl_tc_action.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_tc_action.c' object='libstrace_a-rtnl_tc_action.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-sg_io_v4.o `test -f 'sg_io_v4.c' || echo '$(srcdir)/'`sg_io_v4.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rtnl_tc_action.o `test -f 'rtnl_tc_action.c' || echo '$(srcdir)/'`rtnl_tc_action.c -strace-sg_io_v4.obj: sg_io_v4.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sg_io_v4.obj -MD -MP -MF $(DEPDIR)/strace-sg_io_v4.Tpo -c -o strace-sg_io_v4.obj `if test -f 'sg_io_v4.c'; then $(CYGPATH_W) 'sg_io_v4.c'; else $(CYGPATH_W) '$(srcdir)/sg_io_v4.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-sg_io_v4.Tpo $(DEPDIR)/strace-sg_io_v4.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sg_io_v4.c' object='strace-sg_io_v4.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-rtnl_tc_action.obj: rtnl_tc_action.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-rtnl_tc_action.obj -MD -MP -MF $(DEPDIR)/libstrace_a-rtnl_tc_action.Tpo -c -o libstrace_a-rtnl_tc_action.obj `if test -f 'rtnl_tc_action.c'; then $(CYGPATH_W) 'rtnl_tc_action.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_tc_action.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-rtnl_tc_action.Tpo $(DEPDIR)/libstrace_a-rtnl_tc_action.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtnl_tc_action.c' object='libstrace_a-rtnl_tc_action.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-sg_io_v4.obj `if test -f 'sg_io_v4.c'; then $(CYGPATH_W) 'sg_io_v4.c'; else $(CYGPATH_W) '$(srcdir)/sg_io_v4.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-rtnl_tc_action.obj `if test -f 'rtnl_tc_action.c'; then $(CYGPATH_W) 'rtnl_tc_action.c'; else $(CYGPATH_W) '$(srcdir)/rtnl_tc_action.c'; fi` -strace-shutdown.o: shutdown.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-shutdown.o -MD -MP -MF $(DEPDIR)/strace-shutdown.Tpo -c -o strace-shutdown.o `test -f 'shutdown.c' || echo '$(srcdir)/'`shutdown.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-shutdown.Tpo $(DEPDIR)/strace-shutdown.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shutdown.c' object='strace-shutdown.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-s390.o: s390.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-s390.o -MD -MP -MF $(DEPDIR)/libstrace_a-s390.Tpo -c -o libstrace_a-s390.o `test -f 's390.c' || echo '$(srcdir)/'`s390.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-s390.Tpo $(DEPDIR)/libstrace_a-s390.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='s390.c' object='libstrace_a-s390.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-shutdown.o `test -f 'shutdown.c' || echo '$(srcdir)/'`shutdown.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-s390.o `test -f 's390.c' || echo '$(srcdir)/'`s390.c -strace-shutdown.obj: shutdown.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-shutdown.obj -MD -MP -MF $(DEPDIR)/strace-shutdown.Tpo -c -o strace-shutdown.obj `if test -f 'shutdown.c'; then $(CYGPATH_W) 'shutdown.c'; else $(CYGPATH_W) '$(srcdir)/shutdown.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-shutdown.Tpo $(DEPDIR)/strace-shutdown.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shutdown.c' object='strace-shutdown.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-s390.obj: s390.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-s390.obj -MD -MP -MF $(DEPDIR)/libstrace_a-s390.Tpo -c -o libstrace_a-s390.obj `if test -f 's390.c'; then $(CYGPATH_W) 's390.c'; else $(CYGPATH_W) '$(srcdir)/s390.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-s390.Tpo $(DEPDIR)/libstrace_a-s390.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='s390.c' object='libstrace_a-s390.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-shutdown.obj `if test -f 'shutdown.c'; then $(CYGPATH_W) 'shutdown.c'; else $(CYGPATH_W) '$(srcdir)/shutdown.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-s390.obj `if test -f 's390.c'; then $(CYGPATH_W) 's390.c'; else $(CYGPATH_W) '$(srcdir)/s390.c'; fi` -strace-sigaltstack.o: sigaltstack.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sigaltstack.o -MD -MP -MF $(DEPDIR)/strace-sigaltstack.Tpo -c -o strace-sigaltstack.o `test -f 'sigaltstack.c' || echo '$(srcdir)/'`sigaltstack.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-sigaltstack.Tpo $(DEPDIR)/strace-sigaltstack.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sigaltstack.c' object='strace-sigaltstack.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-sched.o: sched.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sched.o -MD -MP -MF $(DEPDIR)/libstrace_a-sched.Tpo -c -o libstrace_a-sched.o `test -f 'sched.c' || echo '$(srcdir)/'`sched.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sched.Tpo $(DEPDIR)/libstrace_a-sched.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sched.c' object='libstrace_a-sched.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-sigaltstack.o `test -f 'sigaltstack.c' || echo '$(srcdir)/'`sigaltstack.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sched.o `test -f 'sched.c' || echo '$(srcdir)/'`sched.c -strace-sigaltstack.obj: sigaltstack.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sigaltstack.obj -MD -MP -MF $(DEPDIR)/strace-sigaltstack.Tpo -c -o strace-sigaltstack.obj `if test -f 'sigaltstack.c'; then $(CYGPATH_W) 'sigaltstack.c'; else $(CYGPATH_W) '$(srcdir)/sigaltstack.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-sigaltstack.Tpo $(DEPDIR)/strace-sigaltstack.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sigaltstack.c' object='strace-sigaltstack.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-sched.obj: sched.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sched.obj -MD -MP -MF $(DEPDIR)/libstrace_a-sched.Tpo -c -o libstrace_a-sched.obj `if test -f 'sched.c'; then $(CYGPATH_W) 'sched.c'; else $(CYGPATH_W) '$(srcdir)/sched.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sched.Tpo $(DEPDIR)/libstrace_a-sched.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sched.c' object='libstrace_a-sched.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-sigaltstack.obj `if test -f 'sigaltstack.c'; then $(CYGPATH_W) 'sigaltstack.c'; else $(CYGPATH_W) '$(srcdir)/sigaltstack.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sched.obj `if test -f 'sched.c'; then $(CYGPATH_W) 'sched.c'; else $(CYGPATH_W) '$(srcdir)/sched.c'; fi` -strace-signal.o: signal.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-signal.o -MD -MP -MF $(DEPDIR)/strace-signal.Tpo -c -o strace-signal.o `test -f 'signal.c' || echo '$(srcdir)/'`signal.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-signal.Tpo $(DEPDIR)/strace-signal.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='signal.c' object='strace-signal.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-scsi.o: scsi.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-scsi.o -MD -MP -MF $(DEPDIR)/libstrace_a-scsi.Tpo -c -o libstrace_a-scsi.o `test -f 'scsi.c' || echo '$(srcdir)/'`scsi.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-scsi.Tpo $(DEPDIR)/libstrace_a-scsi.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='scsi.c' object='libstrace_a-scsi.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-signal.o `test -f 'signal.c' || echo '$(srcdir)/'`signal.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-scsi.o `test -f 'scsi.c' || echo '$(srcdir)/'`scsi.c -strace-signal.obj: signal.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-signal.obj -MD -MP -MF $(DEPDIR)/strace-signal.Tpo -c -o strace-signal.obj `if test -f 'signal.c'; then $(CYGPATH_W) 'signal.c'; else $(CYGPATH_W) '$(srcdir)/signal.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-signal.Tpo $(DEPDIR)/strace-signal.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='signal.c' object='strace-signal.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-scsi.obj: scsi.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-scsi.obj -MD -MP -MF $(DEPDIR)/libstrace_a-scsi.Tpo -c -o libstrace_a-scsi.obj `if test -f 'scsi.c'; then $(CYGPATH_W) 'scsi.c'; else $(CYGPATH_W) '$(srcdir)/scsi.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-scsi.Tpo $(DEPDIR)/libstrace_a-scsi.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='scsi.c' object='libstrace_a-scsi.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-signal.obj `if test -f 'signal.c'; then $(CYGPATH_W) 'signal.c'; else $(CYGPATH_W) '$(srcdir)/signal.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-scsi.obj `if test -f 'scsi.c'; then $(CYGPATH_W) 'scsi.c'; else $(CYGPATH_W) '$(srcdir)/scsi.c'; fi` -strace-signalfd.o: signalfd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-signalfd.o -MD -MP -MF $(DEPDIR)/strace-signalfd.Tpo -c -o strace-signalfd.o `test -f 'signalfd.c' || echo '$(srcdir)/'`signalfd.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-signalfd.Tpo $(DEPDIR)/strace-signalfd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='signalfd.c' object='strace-signalfd.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-seccomp.o: seccomp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-seccomp.o -MD -MP -MF $(DEPDIR)/libstrace_a-seccomp.Tpo -c -o libstrace_a-seccomp.o `test -f 'seccomp.c' || echo '$(srcdir)/'`seccomp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-seccomp.Tpo $(DEPDIR)/libstrace_a-seccomp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='seccomp.c' object='libstrace_a-seccomp.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-signalfd.o `test -f 'signalfd.c' || echo '$(srcdir)/'`signalfd.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-seccomp.o `test -f 'seccomp.c' || echo '$(srcdir)/'`seccomp.c -strace-signalfd.obj: signalfd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-signalfd.obj -MD -MP -MF $(DEPDIR)/strace-signalfd.Tpo -c -o strace-signalfd.obj `if test -f 'signalfd.c'; then $(CYGPATH_W) 'signalfd.c'; else $(CYGPATH_W) '$(srcdir)/signalfd.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-signalfd.Tpo $(DEPDIR)/strace-signalfd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='signalfd.c' object='strace-signalfd.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-seccomp.obj: seccomp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-seccomp.obj -MD -MP -MF $(DEPDIR)/libstrace_a-seccomp.Tpo -c -o libstrace_a-seccomp.obj `if test -f 'seccomp.c'; then $(CYGPATH_W) 'seccomp.c'; else $(CYGPATH_W) '$(srcdir)/seccomp.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-seccomp.Tpo $(DEPDIR)/libstrace_a-seccomp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='seccomp.c' object='libstrace_a-seccomp.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-signalfd.obj `if test -f 'signalfd.c'; then $(CYGPATH_W) 'signalfd.c'; else $(CYGPATH_W) '$(srcdir)/signalfd.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-seccomp.obj `if test -f 'seccomp.c'; then $(CYGPATH_W) 'seccomp.c'; else $(CYGPATH_W) '$(srcdir)/seccomp.c'; fi` -strace-sock.o: sock.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sock.o -MD -MP -MF $(DEPDIR)/strace-sock.Tpo -c -o strace-sock.o `test -f 'sock.c' || echo '$(srcdir)/'`sock.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-sock.Tpo $(DEPDIR)/strace-sock.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sock.c' object='strace-sock.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-sendfile.o: sendfile.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sendfile.o -MD -MP -MF $(DEPDIR)/libstrace_a-sendfile.Tpo -c -o libstrace_a-sendfile.o `test -f 'sendfile.c' || echo '$(srcdir)/'`sendfile.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sendfile.Tpo $(DEPDIR)/libstrace_a-sendfile.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sendfile.c' object='libstrace_a-sendfile.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-sock.o `test -f 'sock.c' || echo '$(srcdir)/'`sock.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sendfile.o `test -f 'sendfile.c' || echo '$(srcdir)/'`sendfile.c -strace-sock.obj: sock.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sock.obj -MD -MP -MF $(DEPDIR)/strace-sock.Tpo -c -o strace-sock.obj `if test -f 'sock.c'; then $(CYGPATH_W) 'sock.c'; else $(CYGPATH_W) '$(srcdir)/sock.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-sock.Tpo $(DEPDIR)/strace-sock.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sock.c' object='strace-sock.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-sendfile.obj: sendfile.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sendfile.obj -MD -MP -MF $(DEPDIR)/libstrace_a-sendfile.Tpo -c -o libstrace_a-sendfile.obj `if test -f 'sendfile.c'; then $(CYGPATH_W) 'sendfile.c'; else $(CYGPATH_W) '$(srcdir)/sendfile.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sendfile.Tpo $(DEPDIR)/libstrace_a-sendfile.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sendfile.c' object='libstrace_a-sendfile.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-sock.obj `if test -f 'sock.c'; then $(CYGPATH_W) 'sock.c'; else $(CYGPATH_W) '$(srcdir)/sock.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sendfile.obj `if test -f 'sendfile.c'; then $(CYGPATH_W) 'sendfile.c'; else $(CYGPATH_W) '$(srcdir)/sendfile.c'; fi` -strace-sockaddr.o: sockaddr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sockaddr.o -MD -MP -MF $(DEPDIR)/strace-sockaddr.Tpo -c -o strace-sockaddr.o `test -f 'sockaddr.c' || echo '$(srcdir)/'`sockaddr.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-sockaddr.Tpo $(DEPDIR)/strace-sockaddr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sockaddr.c' object='strace-sockaddr.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-sg_io_v3.o: sg_io_v3.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sg_io_v3.o -MD -MP -MF $(DEPDIR)/libstrace_a-sg_io_v3.Tpo -c -o libstrace_a-sg_io_v3.o `test -f 'sg_io_v3.c' || echo '$(srcdir)/'`sg_io_v3.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sg_io_v3.Tpo $(DEPDIR)/libstrace_a-sg_io_v3.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sg_io_v3.c' object='libstrace_a-sg_io_v3.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-sockaddr.o `test -f 'sockaddr.c' || echo '$(srcdir)/'`sockaddr.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sg_io_v3.o `test -f 'sg_io_v3.c' || echo '$(srcdir)/'`sg_io_v3.c -strace-sockaddr.obj: sockaddr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sockaddr.obj -MD -MP -MF $(DEPDIR)/strace-sockaddr.Tpo -c -o strace-sockaddr.obj `if test -f 'sockaddr.c'; then $(CYGPATH_W) 'sockaddr.c'; else $(CYGPATH_W) '$(srcdir)/sockaddr.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-sockaddr.Tpo $(DEPDIR)/strace-sockaddr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sockaddr.c' object='strace-sockaddr.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-sg_io_v3.obj: sg_io_v3.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sg_io_v3.obj -MD -MP -MF $(DEPDIR)/libstrace_a-sg_io_v3.Tpo -c -o libstrace_a-sg_io_v3.obj `if test -f 'sg_io_v3.c'; then $(CYGPATH_W) 'sg_io_v3.c'; else $(CYGPATH_W) '$(srcdir)/sg_io_v3.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sg_io_v3.Tpo $(DEPDIR)/libstrace_a-sg_io_v3.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sg_io_v3.c' object='libstrace_a-sg_io_v3.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-sockaddr.obj `if test -f 'sockaddr.c'; then $(CYGPATH_W) 'sockaddr.c'; else $(CYGPATH_W) '$(srcdir)/sockaddr.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sg_io_v3.obj `if test -f 'sg_io_v3.c'; then $(CYGPATH_W) 'sg_io_v3.c'; else $(CYGPATH_W) '$(srcdir)/sg_io_v3.c'; fi` -strace-socketutils.o: socketutils.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-socketutils.o -MD -MP -MF $(DEPDIR)/strace-socketutils.Tpo -c -o strace-socketutils.o `test -f 'socketutils.c' || echo '$(srcdir)/'`socketutils.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-socketutils.Tpo $(DEPDIR)/strace-socketutils.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='socketutils.c' object='strace-socketutils.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-sg_io_v4.o: sg_io_v4.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sg_io_v4.o -MD -MP -MF $(DEPDIR)/libstrace_a-sg_io_v4.Tpo -c -o libstrace_a-sg_io_v4.o `test -f 'sg_io_v4.c' || echo '$(srcdir)/'`sg_io_v4.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sg_io_v4.Tpo $(DEPDIR)/libstrace_a-sg_io_v4.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sg_io_v4.c' object='libstrace_a-sg_io_v4.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-socketutils.o `test -f 'socketutils.c' || echo '$(srcdir)/'`socketutils.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sg_io_v4.o `test -f 'sg_io_v4.c' || echo '$(srcdir)/'`sg_io_v4.c -strace-socketutils.obj: socketutils.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-socketutils.obj -MD -MP -MF $(DEPDIR)/strace-socketutils.Tpo -c -o strace-socketutils.obj `if test -f 'socketutils.c'; then $(CYGPATH_W) 'socketutils.c'; else $(CYGPATH_W) '$(srcdir)/socketutils.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-socketutils.Tpo $(DEPDIR)/strace-socketutils.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='socketutils.c' object='strace-socketutils.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-sg_io_v4.obj: sg_io_v4.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sg_io_v4.obj -MD -MP -MF $(DEPDIR)/libstrace_a-sg_io_v4.Tpo -c -o libstrace_a-sg_io_v4.obj `if test -f 'sg_io_v4.c'; then $(CYGPATH_W) 'sg_io_v4.c'; else $(CYGPATH_W) '$(srcdir)/sg_io_v4.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sg_io_v4.Tpo $(DEPDIR)/libstrace_a-sg_io_v4.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sg_io_v4.c' object='libstrace_a-sg_io_v4.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-socketutils.obj `if test -f 'socketutils.c'; then $(CYGPATH_W) 'socketutils.c'; else $(CYGPATH_W) '$(srcdir)/socketutils.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sg_io_v4.obj `if test -f 'sg_io_v4.c'; then $(CYGPATH_W) 'sg_io_v4.c'; else $(CYGPATH_W) '$(srcdir)/sg_io_v4.c'; fi` -strace-sparc.o: sparc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sparc.o -MD -MP -MF $(DEPDIR)/strace-sparc.Tpo -c -o strace-sparc.o `test -f 'sparc.c' || echo '$(srcdir)/'`sparc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-sparc.Tpo $(DEPDIR)/strace-sparc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sparc.c' object='strace-sparc.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-shutdown.o: shutdown.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-shutdown.o -MD -MP -MF $(DEPDIR)/libstrace_a-shutdown.Tpo -c -o libstrace_a-shutdown.o `test -f 'shutdown.c' || echo '$(srcdir)/'`shutdown.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-shutdown.Tpo $(DEPDIR)/libstrace_a-shutdown.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shutdown.c' object='libstrace_a-shutdown.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-sparc.o `test -f 'sparc.c' || echo '$(srcdir)/'`sparc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-shutdown.o `test -f 'shutdown.c' || echo '$(srcdir)/'`shutdown.c -strace-sparc.obj: sparc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sparc.obj -MD -MP -MF $(DEPDIR)/strace-sparc.Tpo -c -o strace-sparc.obj `if test -f 'sparc.c'; then $(CYGPATH_W) 'sparc.c'; else $(CYGPATH_W) '$(srcdir)/sparc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-sparc.Tpo $(DEPDIR)/strace-sparc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sparc.c' object='strace-sparc.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-shutdown.obj: shutdown.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-shutdown.obj -MD -MP -MF $(DEPDIR)/libstrace_a-shutdown.Tpo -c -o libstrace_a-shutdown.obj `if test -f 'shutdown.c'; then $(CYGPATH_W) 'shutdown.c'; else $(CYGPATH_W) '$(srcdir)/shutdown.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-shutdown.Tpo $(DEPDIR)/libstrace_a-shutdown.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shutdown.c' object='libstrace_a-shutdown.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-sparc.obj `if test -f 'sparc.c'; then $(CYGPATH_W) 'sparc.c'; else $(CYGPATH_W) '$(srcdir)/sparc.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-shutdown.obj `if test -f 'shutdown.c'; then $(CYGPATH_W) 'shutdown.c'; else $(CYGPATH_W) '$(srcdir)/shutdown.c'; fi` -strace-sram_alloc.o: sram_alloc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sram_alloc.o -MD -MP -MF $(DEPDIR)/strace-sram_alloc.Tpo -c -o strace-sram_alloc.o `test -f 'sram_alloc.c' || echo '$(srcdir)/'`sram_alloc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-sram_alloc.Tpo $(DEPDIR)/strace-sram_alloc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sram_alloc.c' object='strace-sram_alloc.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-sigaltstack.o: sigaltstack.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sigaltstack.o -MD -MP -MF $(DEPDIR)/libstrace_a-sigaltstack.Tpo -c -o libstrace_a-sigaltstack.o `test -f 'sigaltstack.c' || echo '$(srcdir)/'`sigaltstack.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sigaltstack.Tpo $(DEPDIR)/libstrace_a-sigaltstack.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sigaltstack.c' object='libstrace_a-sigaltstack.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-sram_alloc.o `test -f 'sram_alloc.c' || echo '$(srcdir)/'`sram_alloc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sigaltstack.o `test -f 'sigaltstack.c' || echo '$(srcdir)/'`sigaltstack.c -strace-sram_alloc.obj: sram_alloc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sram_alloc.obj -MD -MP -MF $(DEPDIR)/strace-sram_alloc.Tpo -c -o strace-sram_alloc.obj `if test -f 'sram_alloc.c'; then $(CYGPATH_W) 'sram_alloc.c'; else $(CYGPATH_W) '$(srcdir)/sram_alloc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-sram_alloc.Tpo $(DEPDIR)/strace-sram_alloc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sram_alloc.c' object='strace-sram_alloc.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-sigaltstack.obj: sigaltstack.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sigaltstack.obj -MD -MP -MF $(DEPDIR)/libstrace_a-sigaltstack.Tpo -c -o libstrace_a-sigaltstack.obj `if test -f 'sigaltstack.c'; then $(CYGPATH_W) 'sigaltstack.c'; else $(CYGPATH_W) '$(srcdir)/sigaltstack.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sigaltstack.Tpo $(DEPDIR)/libstrace_a-sigaltstack.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sigaltstack.c' object='libstrace_a-sigaltstack.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-sram_alloc.obj `if test -f 'sram_alloc.c'; then $(CYGPATH_W) 'sram_alloc.c'; else $(CYGPATH_W) '$(srcdir)/sram_alloc.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sigaltstack.obj `if test -f 'sigaltstack.c'; then $(CYGPATH_W) 'sigaltstack.c'; else $(CYGPATH_W) '$(srcdir)/sigaltstack.c'; fi` -strace-stat.o: stat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-stat.o -MD -MP -MF $(DEPDIR)/strace-stat.Tpo -c -o strace-stat.o `test -f 'stat.c' || echo '$(srcdir)/'`stat.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-stat.Tpo $(DEPDIR)/strace-stat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stat.c' object='strace-stat.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-signal.o: signal.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-signal.o -MD -MP -MF $(DEPDIR)/libstrace_a-signal.Tpo -c -o libstrace_a-signal.o `test -f 'signal.c' || echo '$(srcdir)/'`signal.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-signal.Tpo $(DEPDIR)/libstrace_a-signal.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='signal.c' object='libstrace_a-signal.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-stat.o `test -f 'stat.c' || echo '$(srcdir)/'`stat.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-signal.o `test -f 'signal.c' || echo '$(srcdir)/'`signal.c -strace-stat.obj: stat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-stat.obj -MD -MP -MF $(DEPDIR)/strace-stat.Tpo -c -o strace-stat.obj `if test -f 'stat.c'; then $(CYGPATH_W) 'stat.c'; else $(CYGPATH_W) '$(srcdir)/stat.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-stat.Tpo $(DEPDIR)/strace-stat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stat.c' object='strace-stat.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-signal.obj: signal.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-signal.obj -MD -MP -MF $(DEPDIR)/libstrace_a-signal.Tpo -c -o libstrace_a-signal.obj `if test -f 'signal.c'; then $(CYGPATH_W) 'signal.c'; else $(CYGPATH_W) '$(srcdir)/signal.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-signal.Tpo $(DEPDIR)/libstrace_a-signal.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='signal.c' object='libstrace_a-signal.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-stat.obj `if test -f 'stat.c'; then $(CYGPATH_W) 'stat.c'; else $(CYGPATH_W) '$(srcdir)/stat.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-signal.obj `if test -f 'signal.c'; then $(CYGPATH_W) 'signal.c'; else $(CYGPATH_W) '$(srcdir)/signal.c'; fi` -strace-stat64.o: stat64.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-stat64.o -MD -MP -MF $(DEPDIR)/strace-stat64.Tpo -c -o strace-stat64.o `test -f 'stat64.c' || echo '$(srcdir)/'`stat64.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-stat64.Tpo $(DEPDIR)/strace-stat64.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stat64.c' object='strace-stat64.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-signalfd.o: signalfd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-signalfd.o -MD -MP -MF $(DEPDIR)/libstrace_a-signalfd.Tpo -c -o libstrace_a-signalfd.o `test -f 'signalfd.c' || echo '$(srcdir)/'`signalfd.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-signalfd.Tpo $(DEPDIR)/libstrace_a-signalfd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='signalfd.c' object='libstrace_a-signalfd.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-stat64.o `test -f 'stat64.c' || echo '$(srcdir)/'`stat64.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-signalfd.o `test -f 'signalfd.c' || echo '$(srcdir)/'`signalfd.c -strace-stat64.obj: stat64.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-stat64.obj -MD -MP -MF $(DEPDIR)/strace-stat64.Tpo -c -o strace-stat64.obj `if test -f 'stat64.c'; then $(CYGPATH_W) 'stat64.c'; else $(CYGPATH_W) '$(srcdir)/stat64.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-stat64.Tpo $(DEPDIR)/strace-stat64.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stat64.c' object='strace-stat64.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-signalfd.obj: signalfd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-signalfd.obj -MD -MP -MF $(DEPDIR)/libstrace_a-signalfd.Tpo -c -o libstrace_a-signalfd.obj `if test -f 'signalfd.c'; then $(CYGPATH_W) 'signalfd.c'; else $(CYGPATH_W) '$(srcdir)/signalfd.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-signalfd.Tpo $(DEPDIR)/libstrace_a-signalfd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='signalfd.c' object='libstrace_a-signalfd.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-stat64.obj `if test -f 'stat64.c'; then $(CYGPATH_W) 'stat64.c'; else $(CYGPATH_W) '$(srcdir)/stat64.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-signalfd.obj `if test -f 'signalfd.c'; then $(CYGPATH_W) 'signalfd.c'; else $(CYGPATH_W) '$(srcdir)/signalfd.c'; fi` -strace-statfs.o: statfs.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-statfs.o -MD -MP -MF $(DEPDIR)/strace-statfs.Tpo -c -o strace-statfs.o `test -f 'statfs.c' || echo '$(srcdir)/'`statfs.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-statfs.Tpo $(DEPDIR)/strace-statfs.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='statfs.c' object='strace-statfs.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-sigreturn.o: sigreturn.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sigreturn.o -MD -MP -MF $(DEPDIR)/libstrace_a-sigreturn.Tpo -c -o libstrace_a-sigreturn.o `test -f 'sigreturn.c' || echo '$(srcdir)/'`sigreturn.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sigreturn.Tpo $(DEPDIR)/libstrace_a-sigreturn.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sigreturn.c' object='libstrace_a-sigreturn.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-statfs.o `test -f 'statfs.c' || echo '$(srcdir)/'`statfs.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sigreturn.o `test -f 'sigreturn.c' || echo '$(srcdir)/'`sigreturn.c -strace-statfs.obj: statfs.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-statfs.obj -MD -MP -MF $(DEPDIR)/strace-statfs.Tpo -c -o strace-statfs.obj `if test -f 'statfs.c'; then $(CYGPATH_W) 'statfs.c'; else $(CYGPATH_W) '$(srcdir)/statfs.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-statfs.Tpo $(DEPDIR)/strace-statfs.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='statfs.c' object='strace-statfs.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-sigreturn.obj: sigreturn.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sigreturn.obj -MD -MP -MF $(DEPDIR)/libstrace_a-sigreturn.Tpo -c -o libstrace_a-sigreturn.obj `if test -f 'sigreturn.c'; then $(CYGPATH_W) 'sigreturn.c'; else $(CYGPATH_W) '$(srcdir)/sigreturn.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sigreturn.Tpo $(DEPDIR)/libstrace_a-sigreturn.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sigreturn.c' object='libstrace_a-sigreturn.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-statfs.obj `if test -f 'statfs.c'; then $(CYGPATH_W) 'statfs.c'; else $(CYGPATH_W) '$(srcdir)/statfs.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sigreturn.obj `if test -f 'sigreturn.c'; then $(CYGPATH_W) 'sigreturn.c'; else $(CYGPATH_W) '$(srcdir)/sigreturn.c'; fi` -strace-statx.o: statx.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-statx.o -MD -MP -MF $(DEPDIR)/strace-statx.Tpo -c -o strace-statx.o `test -f 'statx.c' || echo '$(srcdir)/'`statx.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-statx.Tpo $(DEPDIR)/strace-statx.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='statx.c' object='strace-statx.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-sock.o: sock.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sock.o -MD -MP -MF $(DEPDIR)/libstrace_a-sock.Tpo -c -o libstrace_a-sock.o `test -f 'sock.c' || echo '$(srcdir)/'`sock.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sock.Tpo $(DEPDIR)/libstrace_a-sock.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sock.c' object='libstrace_a-sock.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-statx.o `test -f 'statx.c' || echo '$(srcdir)/'`statx.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sock.o `test -f 'sock.c' || echo '$(srcdir)/'`sock.c -strace-statx.obj: statx.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-statx.obj -MD -MP -MF $(DEPDIR)/strace-statx.Tpo -c -o strace-statx.obj `if test -f 'statx.c'; then $(CYGPATH_W) 'statx.c'; else $(CYGPATH_W) '$(srcdir)/statx.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-statx.Tpo $(DEPDIR)/strace-statx.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='statx.c' object='strace-statx.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-sock.obj: sock.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sock.obj -MD -MP -MF $(DEPDIR)/libstrace_a-sock.Tpo -c -o libstrace_a-sock.obj `if test -f 'sock.c'; then $(CYGPATH_W) 'sock.c'; else $(CYGPATH_W) '$(srcdir)/sock.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sock.Tpo $(DEPDIR)/libstrace_a-sock.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sock.c' object='libstrace_a-sock.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-statx.obj `if test -f 'statx.c'; then $(CYGPATH_W) 'statx.c'; else $(CYGPATH_W) '$(srcdir)/statx.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sock.obj `if test -f 'sock.c'; then $(CYGPATH_W) 'sock.c'; else $(CYGPATH_W) '$(srcdir)/sock.c'; fi` -strace-strace.o: strace.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-strace.o -MD -MP -MF $(DEPDIR)/strace-strace.Tpo -c -o strace-strace.o `test -f 'strace.c' || echo '$(srcdir)/'`strace.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-strace.Tpo $(DEPDIR)/strace-strace.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='strace.c' object='strace-strace.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-sockaddr.o: sockaddr.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sockaddr.o -MD -MP -MF $(DEPDIR)/libstrace_a-sockaddr.Tpo -c -o libstrace_a-sockaddr.o `test -f 'sockaddr.c' || echo '$(srcdir)/'`sockaddr.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sockaddr.Tpo $(DEPDIR)/libstrace_a-sockaddr.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sockaddr.c' object='libstrace_a-sockaddr.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-strace.o `test -f 'strace.c' || echo '$(srcdir)/'`strace.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sockaddr.o `test -f 'sockaddr.c' || echo '$(srcdir)/'`sockaddr.c -strace-strace.obj: strace.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-strace.obj -MD -MP -MF $(DEPDIR)/strace-strace.Tpo -c -o strace-strace.obj `if test -f 'strace.c'; then $(CYGPATH_W) 'strace.c'; else $(CYGPATH_W) '$(srcdir)/strace.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-strace.Tpo $(DEPDIR)/strace-strace.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='strace.c' object='strace-strace.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-sockaddr.obj: sockaddr.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sockaddr.obj -MD -MP -MF $(DEPDIR)/libstrace_a-sockaddr.Tpo -c -o libstrace_a-sockaddr.obj `if test -f 'sockaddr.c'; then $(CYGPATH_W) 'sockaddr.c'; else $(CYGPATH_W) '$(srcdir)/sockaddr.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sockaddr.Tpo $(DEPDIR)/libstrace_a-sockaddr.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sockaddr.c' object='libstrace_a-sockaddr.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-strace.obj `if test -f 'strace.c'; then $(CYGPATH_W) 'strace.c'; else $(CYGPATH_W) '$(srcdir)/strace.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sockaddr.obj `if test -f 'sockaddr.c'; then $(CYGPATH_W) 'sockaddr.c'; else $(CYGPATH_W) '$(srcdir)/sockaddr.c'; fi` + +libstrace_a-socketcall.o: socketcall.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-socketcall.o -MD -MP -MF $(DEPDIR)/libstrace_a-socketcall.Tpo -c -o libstrace_a-socketcall.o `test -f 'socketcall.c' || echo '$(srcdir)/'`socketcall.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-socketcall.Tpo $(DEPDIR)/libstrace_a-socketcall.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='socketcall.c' object='libstrace_a-socketcall.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-socketcall.o `test -f 'socketcall.c' || echo '$(srcdir)/'`socketcall.c + +libstrace_a-socketcall.obj: socketcall.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-socketcall.obj -MD -MP -MF $(DEPDIR)/libstrace_a-socketcall.Tpo -c -o libstrace_a-socketcall.obj `if test -f 'socketcall.c'; then $(CYGPATH_W) 'socketcall.c'; else $(CYGPATH_W) '$(srcdir)/socketcall.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-socketcall.Tpo $(DEPDIR)/libstrace_a-socketcall.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='socketcall.c' object='libstrace_a-socketcall.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-socketcall.obj `if test -f 'socketcall.c'; then $(CYGPATH_W) 'socketcall.c'; else $(CYGPATH_W) '$(srcdir)/socketcall.c'; fi` + +libstrace_a-socketutils.o: socketutils.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-socketutils.o -MD -MP -MF $(DEPDIR)/libstrace_a-socketutils.Tpo -c -o libstrace_a-socketutils.o `test -f 'socketutils.c' || echo '$(srcdir)/'`socketutils.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-socketutils.Tpo $(DEPDIR)/libstrace_a-socketutils.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='socketutils.c' object='libstrace_a-socketutils.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-socketutils.o `test -f 'socketutils.c' || echo '$(srcdir)/'`socketutils.c + +libstrace_a-socketutils.obj: socketutils.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-socketutils.obj -MD -MP -MF $(DEPDIR)/libstrace_a-socketutils.Tpo -c -o libstrace_a-socketutils.obj `if test -f 'socketutils.c'; then $(CYGPATH_W) 'socketutils.c'; else $(CYGPATH_W) '$(srcdir)/socketutils.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-socketutils.Tpo $(DEPDIR)/libstrace_a-socketutils.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='socketutils.c' object='libstrace_a-socketutils.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-socketutils.obj `if test -f 'socketutils.c'; then $(CYGPATH_W) 'socketutils.c'; else $(CYGPATH_W) '$(srcdir)/socketutils.c'; fi` + +libstrace_a-sparc.o: sparc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sparc.o -MD -MP -MF $(DEPDIR)/libstrace_a-sparc.Tpo -c -o libstrace_a-sparc.o `test -f 'sparc.c' || echo '$(srcdir)/'`sparc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sparc.Tpo $(DEPDIR)/libstrace_a-sparc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sparc.c' object='libstrace_a-sparc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sparc.o `test -f 'sparc.c' || echo '$(srcdir)/'`sparc.c + +libstrace_a-sparc.obj: sparc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sparc.obj -MD -MP -MF $(DEPDIR)/libstrace_a-sparc.Tpo -c -o libstrace_a-sparc.obj `if test -f 'sparc.c'; then $(CYGPATH_W) 'sparc.c'; else $(CYGPATH_W) '$(srcdir)/sparc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sparc.Tpo $(DEPDIR)/libstrace_a-sparc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sparc.c' object='libstrace_a-sparc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sparc.obj `if test -f 'sparc.c'; then $(CYGPATH_W) 'sparc.c'; else $(CYGPATH_W) '$(srcdir)/sparc.c'; fi` + +libstrace_a-sram_alloc.o: sram_alloc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sram_alloc.o -MD -MP -MF $(DEPDIR)/libstrace_a-sram_alloc.Tpo -c -o libstrace_a-sram_alloc.o `test -f 'sram_alloc.c' || echo '$(srcdir)/'`sram_alloc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sram_alloc.Tpo $(DEPDIR)/libstrace_a-sram_alloc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sram_alloc.c' object='libstrace_a-sram_alloc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sram_alloc.o `test -f 'sram_alloc.c' || echo '$(srcdir)/'`sram_alloc.c + +libstrace_a-sram_alloc.obj: sram_alloc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sram_alloc.obj -MD -MP -MF $(DEPDIR)/libstrace_a-sram_alloc.Tpo -c -o libstrace_a-sram_alloc.obj `if test -f 'sram_alloc.c'; then $(CYGPATH_W) 'sram_alloc.c'; else $(CYGPATH_W) '$(srcdir)/sram_alloc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sram_alloc.Tpo $(DEPDIR)/libstrace_a-sram_alloc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sram_alloc.c' object='libstrace_a-sram_alloc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sram_alloc.obj `if test -f 'sram_alloc.c'; then $(CYGPATH_W) 'sram_alloc.c'; else $(CYGPATH_W) '$(srcdir)/sram_alloc.c'; fi` + +libstrace_a-stage_output.o: stage_output.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-stage_output.o -MD -MP -MF $(DEPDIR)/libstrace_a-stage_output.Tpo -c -o libstrace_a-stage_output.o `test -f 'stage_output.c' || echo '$(srcdir)/'`stage_output.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-stage_output.Tpo $(DEPDIR)/libstrace_a-stage_output.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stage_output.c' object='libstrace_a-stage_output.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-stage_output.o `test -f 'stage_output.c' || echo '$(srcdir)/'`stage_output.c + +libstrace_a-stage_output.obj: stage_output.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-stage_output.obj -MD -MP -MF $(DEPDIR)/libstrace_a-stage_output.Tpo -c -o libstrace_a-stage_output.obj `if test -f 'stage_output.c'; then $(CYGPATH_W) 'stage_output.c'; else $(CYGPATH_W) '$(srcdir)/stage_output.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-stage_output.Tpo $(DEPDIR)/libstrace_a-stage_output.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stage_output.c' object='libstrace_a-stage_output.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-stage_output.obj `if test -f 'stage_output.c'; then $(CYGPATH_W) 'stage_output.c'; else $(CYGPATH_W) '$(srcdir)/stage_output.c'; fi` + +libstrace_a-stat.o: stat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-stat.o -MD -MP -MF $(DEPDIR)/libstrace_a-stat.Tpo -c -o libstrace_a-stat.o `test -f 'stat.c' || echo '$(srcdir)/'`stat.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-stat.Tpo $(DEPDIR)/libstrace_a-stat.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stat.c' object='libstrace_a-stat.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-stat.o `test -f 'stat.c' || echo '$(srcdir)/'`stat.c + +libstrace_a-stat.obj: stat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-stat.obj -MD -MP -MF $(DEPDIR)/libstrace_a-stat.Tpo -c -o libstrace_a-stat.obj `if test -f 'stat.c'; then $(CYGPATH_W) 'stat.c'; else $(CYGPATH_W) '$(srcdir)/stat.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-stat.Tpo $(DEPDIR)/libstrace_a-stat.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stat.c' object='libstrace_a-stat.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-stat.obj `if test -f 'stat.c'; then $(CYGPATH_W) 'stat.c'; else $(CYGPATH_W) '$(srcdir)/stat.c'; fi` + +libstrace_a-stat64.o: stat64.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-stat64.o -MD -MP -MF $(DEPDIR)/libstrace_a-stat64.Tpo -c -o libstrace_a-stat64.o `test -f 'stat64.c' || echo '$(srcdir)/'`stat64.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-stat64.Tpo $(DEPDIR)/libstrace_a-stat64.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stat64.c' object='libstrace_a-stat64.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-stat64.o `test -f 'stat64.c' || echo '$(srcdir)/'`stat64.c + +libstrace_a-stat64.obj: stat64.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-stat64.obj -MD -MP -MF $(DEPDIR)/libstrace_a-stat64.Tpo -c -o libstrace_a-stat64.obj `if test -f 'stat64.c'; then $(CYGPATH_W) 'stat64.c'; else $(CYGPATH_W) '$(srcdir)/stat64.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-stat64.Tpo $(DEPDIR)/libstrace_a-stat64.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stat64.c' object='libstrace_a-stat64.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-stat64.obj `if test -f 'stat64.c'; then $(CYGPATH_W) 'stat64.c'; else $(CYGPATH_W) '$(srcdir)/stat64.c'; fi` + +libstrace_a-statfs.o: statfs.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-statfs.o -MD -MP -MF $(DEPDIR)/libstrace_a-statfs.Tpo -c -o libstrace_a-statfs.o `test -f 'statfs.c' || echo '$(srcdir)/'`statfs.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-statfs.Tpo $(DEPDIR)/libstrace_a-statfs.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='statfs.c' object='libstrace_a-statfs.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-statfs.o `test -f 'statfs.c' || echo '$(srcdir)/'`statfs.c + +libstrace_a-statfs.obj: statfs.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-statfs.obj -MD -MP -MF $(DEPDIR)/libstrace_a-statfs.Tpo -c -o libstrace_a-statfs.obj `if test -f 'statfs.c'; then $(CYGPATH_W) 'statfs.c'; else $(CYGPATH_W) '$(srcdir)/statfs.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-statfs.Tpo $(DEPDIR)/libstrace_a-statfs.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='statfs.c' object='libstrace_a-statfs.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-statfs.obj `if test -f 'statfs.c'; then $(CYGPATH_W) 'statfs.c'; else $(CYGPATH_W) '$(srcdir)/statfs.c'; fi` + +libstrace_a-statfs64.o: statfs64.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-statfs64.o -MD -MP -MF $(DEPDIR)/libstrace_a-statfs64.Tpo -c -o libstrace_a-statfs64.o `test -f 'statfs64.c' || echo '$(srcdir)/'`statfs64.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-statfs64.Tpo $(DEPDIR)/libstrace_a-statfs64.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='statfs64.c' object='libstrace_a-statfs64.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-statfs64.o `test -f 'statfs64.c' || echo '$(srcdir)/'`statfs64.c + +libstrace_a-statfs64.obj: statfs64.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-statfs64.obj -MD -MP -MF $(DEPDIR)/libstrace_a-statfs64.Tpo -c -o libstrace_a-statfs64.obj `if test -f 'statfs64.c'; then $(CYGPATH_W) 'statfs64.c'; else $(CYGPATH_W) '$(srcdir)/statfs64.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-statfs64.Tpo $(DEPDIR)/libstrace_a-statfs64.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='statfs64.c' object='libstrace_a-statfs64.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-statfs64.obj `if test -f 'statfs64.c'; then $(CYGPATH_W) 'statfs64.c'; else $(CYGPATH_W) '$(srcdir)/statfs64.c'; fi` + +libstrace_a-statx.o: statx.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-statx.o -MD -MP -MF $(DEPDIR)/libstrace_a-statx.Tpo -c -o libstrace_a-statx.o `test -f 'statx.c' || echo '$(srcdir)/'`statx.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-statx.Tpo $(DEPDIR)/libstrace_a-statx.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='statx.c' object='libstrace_a-statx.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-statx.o `test -f 'statx.c' || echo '$(srcdir)/'`statx.c + +libstrace_a-statx.obj: statx.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-statx.obj -MD -MP -MF $(DEPDIR)/libstrace_a-statx.Tpo -c -o libstrace_a-statx.obj `if test -f 'statx.c'; then $(CYGPATH_W) 'statx.c'; else $(CYGPATH_W) '$(srcdir)/statx.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-statx.Tpo $(DEPDIR)/libstrace_a-statx.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='statx.c' object='libstrace_a-statx.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-statx.obj `if test -f 'statx.c'; then $(CYGPATH_W) 'statx.c'; else $(CYGPATH_W) '$(srcdir)/statx.c'; fi` + +libstrace_a-string_to_uint.o: string_to_uint.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-string_to_uint.o -MD -MP -MF $(DEPDIR)/libstrace_a-string_to_uint.Tpo -c -o libstrace_a-string_to_uint.o `test -f 'string_to_uint.c' || echo '$(srcdir)/'`string_to_uint.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-string_to_uint.Tpo $(DEPDIR)/libstrace_a-string_to_uint.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='string_to_uint.c' object='libstrace_a-string_to_uint.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-string_to_uint.o `test -f 'string_to_uint.c' || echo '$(srcdir)/'`string_to_uint.c + +libstrace_a-string_to_uint.obj: string_to_uint.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-string_to_uint.obj -MD -MP -MF $(DEPDIR)/libstrace_a-string_to_uint.Tpo -c -o libstrace_a-string_to_uint.obj `if test -f 'string_to_uint.c'; then $(CYGPATH_W) 'string_to_uint.c'; else $(CYGPATH_W) '$(srcdir)/string_to_uint.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-string_to_uint.Tpo $(DEPDIR)/libstrace_a-string_to_uint.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='string_to_uint.c' object='libstrace_a-string_to_uint.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-string_to_uint.obj `if test -f 'string_to_uint.c'; then $(CYGPATH_W) 'string_to_uint.c'; else $(CYGPATH_W) '$(srcdir)/string_to_uint.c'; fi` + +libstrace_a-swapon.o: swapon.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-swapon.o -MD -MP -MF $(DEPDIR)/libstrace_a-swapon.Tpo -c -o libstrace_a-swapon.o `test -f 'swapon.c' || echo '$(srcdir)/'`swapon.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-swapon.Tpo $(DEPDIR)/libstrace_a-swapon.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='swapon.c' object='libstrace_a-swapon.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-swapon.o `test -f 'swapon.c' || echo '$(srcdir)/'`swapon.c + +libstrace_a-swapon.obj: swapon.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-swapon.obj -MD -MP -MF $(DEPDIR)/libstrace_a-swapon.Tpo -c -o libstrace_a-swapon.obj `if test -f 'swapon.c'; then $(CYGPATH_W) 'swapon.c'; else $(CYGPATH_W) '$(srcdir)/swapon.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-swapon.Tpo $(DEPDIR)/libstrace_a-swapon.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='swapon.c' object='libstrace_a-swapon.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-swapon.obj `if test -f 'swapon.c'; then $(CYGPATH_W) 'swapon.c'; else $(CYGPATH_W) '$(srcdir)/swapon.c'; fi` + +libstrace_a-sync_file_range.o: sync_file_range.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sync_file_range.o -MD -MP -MF $(DEPDIR)/libstrace_a-sync_file_range.Tpo -c -o libstrace_a-sync_file_range.o `test -f 'sync_file_range.c' || echo '$(srcdir)/'`sync_file_range.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sync_file_range.Tpo $(DEPDIR)/libstrace_a-sync_file_range.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sync_file_range.c' object='libstrace_a-sync_file_range.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sync_file_range.o `test -f 'sync_file_range.c' || echo '$(srcdir)/'`sync_file_range.c + +libstrace_a-sync_file_range.obj: sync_file_range.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sync_file_range.obj -MD -MP -MF $(DEPDIR)/libstrace_a-sync_file_range.Tpo -c -o libstrace_a-sync_file_range.obj `if test -f 'sync_file_range.c'; then $(CYGPATH_W) 'sync_file_range.c'; else $(CYGPATH_W) '$(srcdir)/sync_file_range.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sync_file_range.Tpo $(DEPDIR)/libstrace_a-sync_file_range.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sync_file_range.c' object='libstrace_a-sync_file_range.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sync_file_range.obj `if test -f 'sync_file_range.c'; then $(CYGPATH_W) 'sync_file_range.c'; else $(CYGPATH_W) '$(srcdir)/sync_file_range.c'; fi` + +libstrace_a-sync_file_range2.o: sync_file_range2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sync_file_range2.o -MD -MP -MF $(DEPDIR)/libstrace_a-sync_file_range2.Tpo -c -o libstrace_a-sync_file_range2.o `test -f 'sync_file_range2.c' || echo '$(srcdir)/'`sync_file_range2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sync_file_range2.Tpo $(DEPDIR)/libstrace_a-sync_file_range2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sync_file_range2.c' object='libstrace_a-sync_file_range2.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sync_file_range2.o `test -f 'sync_file_range2.c' || echo '$(srcdir)/'`sync_file_range2.c -strace-string_to_uint.o: string_to_uint.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-string_to_uint.o -MD -MP -MF $(DEPDIR)/strace-string_to_uint.Tpo -c -o strace-string_to_uint.o `test -f 'string_to_uint.c' || echo '$(srcdir)/'`string_to_uint.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-string_to_uint.Tpo $(DEPDIR)/strace-string_to_uint.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='string_to_uint.c' object='strace-string_to_uint.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-sync_file_range2.obj: sync_file_range2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sync_file_range2.obj -MD -MP -MF $(DEPDIR)/libstrace_a-sync_file_range2.Tpo -c -o libstrace_a-sync_file_range2.obj `if test -f 'sync_file_range2.c'; then $(CYGPATH_W) 'sync_file_range2.c'; else $(CYGPATH_W) '$(srcdir)/sync_file_range2.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sync_file_range2.Tpo $(DEPDIR)/libstrace_a-sync_file_range2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sync_file_range2.c' object='libstrace_a-sync_file_range2.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-string_to_uint.o `test -f 'string_to_uint.c' || echo '$(srcdir)/'`string_to_uint.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sync_file_range2.obj `if test -f 'sync_file_range2.c'; then $(CYGPATH_W) 'sync_file_range2.c'; else $(CYGPATH_W) '$(srcdir)/sync_file_range2.c'; fi` -strace-string_to_uint.obj: string_to_uint.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-string_to_uint.obj -MD -MP -MF $(DEPDIR)/strace-string_to_uint.Tpo -c -o strace-string_to_uint.obj `if test -f 'string_to_uint.c'; then $(CYGPATH_W) 'string_to_uint.c'; else $(CYGPATH_W) '$(srcdir)/string_to_uint.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-string_to_uint.Tpo $(DEPDIR)/strace-string_to_uint.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='string_to_uint.c' object='strace-string_to_uint.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-syscall.o: syscall.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-syscall.o -MD -MP -MF $(DEPDIR)/libstrace_a-syscall.Tpo -c -o libstrace_a-syscall.o `test -f 'syscall.c' || echo '$(srcdir)/'`syscall.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-syscall.Tpo $(DEPDIR)/libstrace_a-syscall.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='syscall.c' object='libstrace_a-syscall.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-string_to_uint.obj `if test -f 'string_to_uint.c'; then $(CYGPATH_W) 'string_to_uint.c'; else $(CYGPATH_W) '$(srcdir)/string_to_uint.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-syscall.o `test -f 'syscall.c' || echo '$(srcdir)/'`syscall.c -strace-swapon.o: swapon.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-swapon.o -MD -MP -MF $(DEPDIR)/strace-swapon.Tpo -c -o strace-swapon.o `test -f 'swapon.c' || echo '$(srcdir)/'`swapon.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-swapon.Tpo $(DEPDIR)/strace-swapon.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='swapon.c' object='strace-swapon.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-syscall.obj: syscall.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-syscall.obj -MD -MP -MF $(DEPDIR)/libstrace_a-syscall.Tpo -c -o libstrace_a-syscall.obj `if test -f 'syscall.c'; then $(CYGPATH_W) 'syscall.c'; else $(CYGPATH_W) '$(srcdir)/syscall.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-syscall.Tpo $(DEPDIR)/libstrace_a-syscall.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='syscall.c' object='libstrace_a-syscall.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-swapon.o `test -f 'swapon.c' || echo '$(srcdir)/'`swapon.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-syscall.obj `if test -f 'syscall.c'; then $(CYGPATH_W) 'syscall.c'; else $(CYGPATH_W) '$(srcdir)/syscall.c'; fi` -strace-swapon.obj: swapon.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-swapon.obj -MD -MP -MF $(DEPDIR)/strace-swapon.Tpo -c -o strace-swapon.obj `if test -f 'swapon.c'; then $(CYGPATH_W) 'swapon.c'; else $(CYGPATH_W) '$(srcdir)/swapon.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-swapon.Tpo $(DEPDIR)/strace-swapon.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='swapon.c' object='strace-swapon.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-sysctl.o: sysctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sysctl.o -MD -MP -MF $(DEPDIR)/libstrace_a-sysctl.Tpo -c -o libstrace_a-sysctl.o `test -f 'sysctl.c' || echo '$(srcdir)/'`sysctl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sysctl.Tpo $(DEPDIR)/libstrace_a-sysctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sysctl.c' object='libstrace_a-sysctl.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-swapon.obj `if test -f 'swapon.c'; then $(CYGPATH_W) 'swapon.c'; else $(CYGPATH_W) '$(srcdir)/swapon.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sysctl.o `test -f 'sysctl.c' || echo '$(srcdir)/'`sysctl.c -strace-syscall.o: syscall.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-syscall.o -MD -MP -MF $(DEPDIR)/strace-syscall.Tpo -c -o strace-syscall.o `test -f 'syscall.c' || echo '$(srcdir)/'`syscall.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-syscall.Tpo $(DEPDIR)/strace-syscall.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='syscall.c' object='strace-syscall.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-sysctl.obj: sysctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sysctl.obj -MD -MP -MF $(DEPDIR)/libstrace_a-sysctl.Tpo -c -o libstrace_a-sysctl.obj `if test -f 'sysctl.c'; then $(CYGPATH_W) 'sysctl.c'; else $(CYGPATH_W) '$(srcdir)/sysctl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sysctl.Tpo $(DEPDIR)/libstrace_a-sysctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sysctl.c' object='libstrace_a-sysctl.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-syscall.o `test -f 'syscall.c' || echo '$(srcdir)/'`syscall.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sysctl.obj `if test -f 'sysctl.c'; then $(CYGPATH_W) 'sysctl.c'; else $(CYGPATH_W) '$(srcdir)/sysctl.c'; fi` -strace-syscall.obj: syscall.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-syscall.obj -MD -MP -MF $(DEPDIR)/strace-syscall.Tpo -c -o strace-syscall.obj `if test -f 'syscall.c'; then $(CYGPATH_W) 'syscall.c'; else $(CYGPATH_W) '$(srcdir)/syscall.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-syscall.Tpo $(DEPDIR)/strace-syscall.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='syscall.c' object='strace-syscall.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-sysinfo.o: sysinfo.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sysinfo.o -MD -MP -MF $(DEPDIR)/libstrace_a-sysinfo.Tpo -c -o libstrace_a-sysinfo.o `test -f 'sysinfo.c' || echo '$(srcdir)/'`sysinfo.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sysinfo.Tpo $(DEPDIR)/libstrace_a-sysinfo.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sysinfo.c' object='libstrace_a-sysinfo.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-syscall.obj `if test -f 'syscall.c'; then $(CYGPATH_W) 'syscall.c'; else $(CYGPATH_W) '$(srcdir)/syscall.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sysinfo.o `test -f 'sysinfo.c' || echo '$(srcdir)/'`sysinfo.c -strace-sysctl.o: sysctl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sysctl.o -MD -MP -MF $(DEPDIR)/strace-sysctl.Tpo -c -o strace-sysctl.o `test -f 'sysctl.c' || echo '$(srcdir)/'`sysctl.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-sysctl.Tpo $(DEPDIR)/strace-sysctl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sysctl.c' object='strace-sysctl.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-sysinfo.obj: sysinfo.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sysinfo.obj -MD -MP -MF $(DEPDIR)/libstrace_a-sysinfo.Tpo -c -o libstrace_a-sysinfo.obj `if test -f 'sysinfo.c'; then $(CYGPATH_W) 'sysinfo.c'; else $(CYGPATH_W) '$(srcdir)/sysinfo.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sysinfo.Tpo $(DEPDIR)/libstrace_a-sysinfo.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sysinfo.c' object='libstrace_a-sysinfo.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-sysctl.o `test -f 'sysctl.c' || echo '$(srcdir)/'`sysctl.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sysinfo.obj `if test -f 'sysinfo.c'; then $(CYGPATH_W) 'sysinfo.c'; else $(CYGPATH_W) '$(srcdir)/sysinfo.c'; fi` -strace-sysctl.obj: sysctl.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sysctl.obj -MD -MP -MF $(DEPDIR)/strace-sysctl.Tpo -c -o strace-sysctl.obj `if test -f 'sysctl.c'; then $(CYGPATH_W) 'sysctl.c'; else $(CYGPATH_W) '$(srcdir)/sysctl.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-sysctl.Tpo $(DEPDIR)/strace-sysctl.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sysctl.c' object='strace-sysctl.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-syslog.o: syslog.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-syslog.o -MD -MP -MF $(DEPDIR)/libstrace_a-syslog.Tpo -c -o libstrace_a-syslog.o `test -f 'syslog.c' || echo '$(srcdir)/'`syslog.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-syslog.Tpo $(DEPDIR)/libstrace_a-syslog.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='syslog.c' object='libstrace_a-syslog.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-sysctl.obj `if test -f 'sysctl.c'; then $(CYGPATH_W) 'sysctl.c'; else $(CYGPATH_W) '$(srcdir)/sysctl.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-syslog.o `test -f 'syslog.c' || echo '$(srcdir)/'`syslog.c -strace-sysinfo.o: sysinfo.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sysinfo.o -MD -MP -MF $(DEPDIR)/strace-sysinfo.Tpo -c -o strace-sysinfo.o `test -f 'sysinfo.c' || echo '$(srcdir)/'`sysinfo.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-sysinfo.Tpo $(DEPDIR)/strace-sysinfo.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sysinfo.c' object='strace-sysinfo.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-syslog.obj: syslog.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-syslog.obj -MD -MP -MF $(DEPDIR)/libstrace_a-syslog.Tpo -c -o libstrace_a-syslog.obj `if test -f 'syslog.c'; then $(CYGPATH_W) 'syslog.c'; else $(CYGPATH_W) '$(srcdir)/syslog.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-syslog.Tpo $(DEPDIR)/libstrace_a-syslog.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='syslog.c' object='libstrace_a-syslog.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-sysinfo.o `test -f 'sysinfo.c' || echo '$(srcdir)/'`sysinfo.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-syslog.obj `if test -f 'syslog.c'; then $(CYGPATH_W) 'syslog.c'; else $(CYGPATH_W) '$(srcdir)/syslog.c'; fi` -strace-sysinfo.obj: sysinfo.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sysinfo.obj -MD -MP -MF $(DEPDIR)/strace-sysinfo.Tpo -c -o strace-sysinfo.obj `if test -f 'sysinfo.c'; then $(CYGPATH_W) 'sysinfo.c'; else $(CYGPATH_W) '$(srcdir)/sysinfo.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-sysinfo.Tpo $(DEPDIR)/strace-sysinfo.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sysinfo.c' object='strace-sysinfo.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-sysmips.o: sysmips.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sysmips.o -MD -MP -MF $(DEPDIR)/libstrace_a-sysmips.Tpo -c -o libstrace_a-sysmips.o `test -f 'sysmips.c' || echo '$(srcdir)/'`sysmips.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sysmips.Tpo $(DEPDIR)/libstrace_a-sysmips.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sysmips.c' object='libstrace_a-sysmips.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-sysinfo.obj `if test -f 'sysinfo.c'; then $(CYGPATH_W) 'sysinfo.c'; else $(CYGPATH_W) '$(srcdir)/sysinfo.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sysmips.o `test -f 'sysmips.c' || echo '$(srcdir)/'`sysmips.c -strace-syslog.o: syslog.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-syslog.o -MD -MP -MF $(DEPDIR)/strace-syslog.Tpo -c -o strace-syslog.o `test -f 'syslog.c' || echo '$(srcdir)/'`syslog.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-syslog.Tpo $(DEPDIR)/strace-syslog.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='syslog.c' object='strace-syslog.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-sysmips.obj: sysmips.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sysmips.obj -MD -MP -MF $(DEPDIR)/libstrace_a-sysmips.Tpo -c -o libstrace_a-sysmips.obj `if test -f 'sysmips.c'; then $(CYGPATH_W) 'sysmips.c'; else $(CYGPATH_W) '$(srcdir)/sysmips.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sysmips.Tpo $(DEPDIR)/libstrace_a-sysmips.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sysmips.c' object='libstrace_a-sysmips.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-syslog.o `test -f 'syslog.c' || echo '$(srcdir)/'`syslog.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sysmips.obj `if test -f 'sysmips.c'; then $(CYGPATH_W) 'sysmips.c'; else $(CYGPATH_W) '$(srcdir)/sysmips.c'; fi` -strace-syslog.obj: syslog.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-syslog.obj -MD -MP -MF $(DEPDIR)/strace-syslog.Tpo -c -o strace-syslog.obj `if test -f 'syslog.c'; then $(CYGPATH_W) 'syslog.c'; else $(CYGPATH_W) '$(srcdir)/syslog.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-syslog.Tpo $(DEPDIR)/strace-syslog.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='syslog.c' object='strace-syslog.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-tee.o: tee.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-tee.o -MD -MP -MF $(DEPDIR)/libstrace_a-tee.Tpo -c -o libstrace_a-tee.o `test -f 'tee.c' || echo '$(srcdir)/'`tee.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-tee.Tpo $(DEPDIR)/libstrace_a-tee.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tee.c' object='libstrace_a-tee.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-syslog.obj `if test -f 'syslog.c'; then $(CYGPATH_W) 'syslog.c'; else $(CYGPATH_W) '$(srcdir)/syslog.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-tee.o `test -f 'tee.c' || echo '$(srcdir)/'`tee.c -strace-sysmips.o: sysmips.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sysmips.o -MD -MP -MF $(DEPDIR)/strace-sysmips.Tpo -c -o strace-sysmips.o `test -f 'sysmips.c' || echo '$(srcdir)/'`sysmips.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-sysmips.Tpo $(DEPDIR)/strace-sysmips.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sysmips.c' object='strace-sysmips.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-tee.obj: tee.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-tee.obj -MD -MP -MF $(DEPDIR)/libstrace_a-tee.Tpo -c -o libstrace_a-tee.obj `if test -f 'tee.c'; then $(CYGPATH_W) 'tee.c'; else $(CYGPATH_W) '$(srcdir)/tee.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-tee.Tpo $(DEPDIR)/libstrace_a-tee.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tee.c' object='libstrace_a-tee.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-sysmips.o `test -f 'sysmips.c' || echo '$(srcdir)/'`sysmips.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-tee.obj `if test -f 'tee.c'; then $(CYGPATH_W) 'tee.c'; else $(CYGPATH_W) '$(srcdir)/tee.c'; fi` -strace-sysmips.obj: sysmips.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sysmips.obj -MD -MP -MF $(DEPDIR)/strace-sysmips.Tpo -c -o strace-sysmips.obj `if test -f 'sysmips.c'; then $(CYGPATH_W) 'sysmips.c'; else $(CYGPATH_W) '$(srcdir)/sysmips.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-sysmips.Tpo $(DEPDIR)/strace-sysmips.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sysmips.c' object='strace-sysmips.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-term.o: term.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-term.o -MD -MP -MF $(DEPDIR)/libstrace_a-term.Tpo -c -o libstrace_a-term.o `test -f 'term.c' || echo '$(srcdir)/'`term.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-term.Tpo $(DEPDIR)/libstrace_a-term.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='term.c' object='libstrace_a-term.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-sysmips.obj `if test -f 'sysmips.c'; then $(CYGPATH_W) 'sysmips.c'; else $(CYGPATH_W) '$(srcdir)/sysmips.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-term.o `test -f 'term.c' || echo '$(srcdir)/'`term.c -strace-term.o: term.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-term.o -MD -MP -MF $(DEPDIR)/strace-term.Tpo -c -o strace-term.o `test -f 'term.c' || echo '$(srcdir)/'`term.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-term.Tpo $(DEPDIR)/strace-term.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='term.c' object='strace-term.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-term.obj: term.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-term.obj -MD -MP -MF $(DEPDIR)/libstrace_a-term.Tpo -c -o libstrace_a-term.obj `if test -f 'term.c'; then $(CYGPATH_W) 'term.c'; else $(CYGPATH_W) '$(srcdir)/term.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-term.Tpo $(DEPDIR)/libstrace_a-term.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='term.c' object='libstrace_a-term.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-term.o `test -f 'term.c' || echo '$(srcdir)/'`term.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-term.obj `if test -f 'term.c'; then $(CYGPATH_W) 'term.c'; else $(CYGPATH_W) '$(srcdir)/term.c'; fi` -strace-term.obj: term.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-term.obj -MD -MP -MF $(DEPDIR)/strace-term.Tpo -c -o strace-term.obj `if test -f 'term.c'; then $(CYGPATH_W) 'term.c'; else $(CYGPATH_W) '$(srcdir)/term.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-term.Tpo $(DEPDIR)/strace-term.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='term.c' object='strace-term.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-time.o: time.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-time.o -MD -MP -MF $(DEPDIR)/libstrace_a-time.Tpo -c -o libstrace_a-time.o `test -f 'time.c' || echo '$(srcdir)/'`time.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-time.Tpo $(DEPDIR)/libstrace_a-time.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='time.c' object='libstrace_a-time.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-term.obj `if test -f 'term.c'; then $(CYGPATH_W) 'term.c'; else $(CYGPATH_W) '$(srcdir)/term.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-time.o `test -f 'time.c' || echo '$(srcdir)/'`time.c -strace-time.o: time.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-time.o -MD -MP -MF $(DEPDIR)/strace-time.Tpo -c -o strace-time.o `test -f 'time.c' || echo '$(srcdir)/'`time.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-time.Tpo $(DEPDIR)/strace-time.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='time.c' object='strace-time.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-time.obj: time.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-time.obj -MD -MP -MF $(DEPDIR)/libstrace_a-time.Tpo -c -o libstrace_a-time.obj `if test -f 'time.c'; then $(CYGPATH_W) 'time.c'; else $(CYGPATH_W) '$(srcdir)/time.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-time.Tpo $(DEPDIR)/libstrace_a-time.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='time.c' object='libstrace_a-time.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-time.o `test -f 'time.c' || echo '$(srcdir)/'`time.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-time.obj `if test -f 'time.c'; then $(CYGPATH_W) 'time.c'; else $(CYGPATH_W) '$(srcdir)/time.c'; fi` -strace-time.obj: time.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-time.obj -MD -MP -MF $(DEPDIR)/strace-time.Tpo -c -o strace-time.obj `if test -f 'time.c'; then $(CYGPATH_W) 'time.c'; else $(CYGPATH_W) '$(srcdir)/time.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-time.Tpo $(DEPDIR)/strace-time.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='time.c' object='strace-time.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-times.o: times.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-times.o -MD -MP -MF $(DEPDIR)/libstrace_a-times.Tpo -c -o libstrace_a-times.o `test -f 'times.c' || echo '$(srcdir)/'`times.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-times.Tpo $(DEPDIR)/libstrace_a-times.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='times.c' object='libstrace_a-times.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-time.obj `if test -f 'time.c'; then $(CYGPATH_W) 'time.c'; else $(CYGPATH_W) '$(srcdir)/time.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-times.o `test -f 'times.c' || echo '$(srcdir)/'`times.c -strace-times.o: times.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-times.o -MD -MP -MF $(DEPDIR)/strace-times.Tpo -c -o strace-times.o `test -f 'times.c' || echo '$(srcdir)/'`times.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-times.Tpo $(DEPDIR)/strace-times.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='times.c' object='strace-times.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-times.obj: times.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-times.obj -MD -MP -MF $(DEPDIR)/libstrace_a-times.Tpo -c -o libstrace_a-times.obj `if test -f 'times.c'; then $(CYGPATH_W) 'times.c'; else $(CYGPATH_W) '$(srcdir)/times.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-times.Tpo $(DEPDIR)/libstrace_a-times.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='times.c' object='libstrace_a-times.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-times.o `test -f 'times.c' || echo '$(srcdir)/'`times.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-times.obj `if test -f 'times.c'; then $(CYGPATH_W) 'times.c'; else $(CYGPATH_W) '$(srcdir)/times.c'; fi` -strace-times.obj: times.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-times.obj -MD -MP -MF $(DEPDIR)/strace-times.Tpo -c -o strace-times.obj `if test -f 'times.c'; then $(CYGPATH_W) 'times.c'; else $(CYGPATH_W) '$(srcdir)/times.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-times.Tpo $(DEPDIR)/strace-times.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='times.c' object='strace-times.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-trie.o: trie.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-trie.o -MD -MP -MF $(DEPDIR)/libstrace_a-trie.Tpo -c -o libstrace_a-trie.o `test -f 'trie.c' || echo '$(srcdir)/'`trie.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-trie.Tpo $(DEPDIR)/libstrace_a-trie.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='trie.c' object='libstrace_a-trie.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-times.obj `if test -f 'times.c'; then $(CYGPATH_W) 'times.c'; else $(CYGPATH_W) '$(srcdir)/times.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-trie.o `test -f 'trie.c' || echo '$(srcdir)/'`trie.c -strace-truncate.o: truncate.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-truncate.o -MD -MP -MF $(DEPDIR)/strace-truncate.Tpo -c -o strace-truncate.o `test -f 'truncate.c' || echo '$(srcdir)/'`truncate.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-truncate.Tpo $(DEPDIR)/strace-truncate.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='truncate.c' object='strace-truncate.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-trie.obj: trie.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-trie.obj -MD -MP -MF $(DEPDIR)/libstrace_a-trie.Tpo -c -o libstrace_a-trie.obj `if test -f 'trie.c'; then $(CYGPATH_W) 'trie.c'; else $(CYGPATH_W) '$(srcdir)/trie.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-trie.Tpo $(DEPDIR)/libstrace_a-trie.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='trie.c' object='libstrace_a-trie.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-truncate.o `test -f 'truncate.c' || echo '$(srcdir)/'`truncate.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-trie.obj `if test -f 'trie.c'; then $(CYGPATH_W) 'trie.c'; else $(CYGPATH_W) '$(srcdir)/trie.c'; fi` -strace-truncate.obj: truncate.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-truncate.obj -MD -MP -MF $(DEPDIR)/strace-truncate.Tpo -c -o strace-truncate.obj `if test -f 'truncate.c'; then $(CYGPATH_W) 'truncate.c'; else $(CYGPATH_W) '$(srcdir)/truncate.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-truncate.Tpo $(DEPDIR)/strace-truncate.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='truncate.c' object='strace-truncate.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-truncate.o: truncate.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-truncate.o -MD -MP -MF $(DEPDIR)/libstrace_a-truncate.Tpo -c -o libstrace_a-truncate.o `test -f 'truncate.c' || echo '$(srcdir)/'`truncate.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-truncate.Tpo $(DEPDIR)/libstrace_a-truncate.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='truncate.c' object='libstrace_a-truncate.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-truncate.obj `if test -f 'truncate.c'; then $(CYGPATH_W) 'truncate.c'; else $(CYGPATH_W) '$(srcdir)/truncate.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-truncate.o `test -f 'truncate.c' || echo '$(srcdir)/'`truncate.c -strace-ubi.o: ubi.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-ubi.o -MD -MP -MF $(DEPDIR)/strace-ubi.Tpo -c -o strace-ubi.o `test -f 'ubi.c' || echo '$(srcdir)/'`ubi.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-ubi.Tpo $(DEPDIR)/strace-ubi.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ubi.c' object='strace-ubi.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-truncate.obj: truncate.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-truncate.obj -MD -MP -MF $(DEPDIR)/libstrace_a-truncate.Tpo -c -o libstrace_a-truncate.obj `if test -f 'truncate.c'; then $(CYGPATH_W) 'truncate.c'; else $(CYGPATH_W) '$(srcdir)/truncate.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-truncate.Tpo $(DEPDIR)/libstrace_a-truncate.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='truncate.c' object='libstrace_a-truncate.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-ubi.o `test -f 'ubi.c' || echo '$(srcdir)/'`ubi.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-truncate.obj `if test -f 'truncate.c'; then $(CYGPATH_W) 'truncate.c'; else $(CYGPATH_W) '$(srcdir)/truncate.c'; fi` -strace-ubi.obj: ubi.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-ubi.obj -MD -MP -MF $(DEPDIR)/strace-ubi.Tpo -c -o strace-ubi.obj `if test -f 'ubi.c'; then $(CYGPATH_W) 'ubi.c'; else $(CYGPATH_W) '$(srcdir)/ubi.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-ubi.Tpo $(DEPDIR)/strace-ubi.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ubi.c' object='strace-ubi.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ubi.o: ubi.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ubi.o -MD -MP -MF $(DEPDIR)/libstrace_a-ubi.Tpo -c -o libstrace_a-ubi.o `test -f 'ubi.c' || echo '$(srcdir)/'`ubi.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ubi.Tpo $(DEPDIR)/libstrace_a-ubi.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ubi.c' object='libstrace_a-ubi.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-ubi.obj `if test -f 'ubi.c'; then $(CYGPATH_W) 'ubi.c'; else $(CYGPATH_W) '$(srcdir)/ubi.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ubi.o `test -f 'ubi.c' || echo '$(srcdir)/'`ubi.c -strace-ucopy.o: ucopy.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-ucopy.o -MD -MP -MF $(DEPDIR)/strace-ucopy.Tpo -c -o strace-ucopy.o `test -f 'ucopy.c' || echo '$(srcdir)/'`ucopy.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-ucopy.Tpo $(DEPDIR)/strace-ucopy.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ucopy.c' object='strace-ucopy.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ubi.obj: ubi.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ubi.obj -MD -MP -MF $(DEPDIR)/libstrace_a-ubi.Tpo -c -o libstrace_a-ubi.obj `if test -f 'ubi.c'; then $(CYGPATH_W) 'ubi.c'; else $(CYGPATH_W) '$(srcdir)/ubi.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ubi.Tpo $(DEPDIR)/libstrace_a-ubi.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ubi.c' object='libstrace_a-ubi.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-ucopy.o `test -f 'ucopy.c' || echo '$(srcdir)/'`ucopy.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ubi.obj `if test -f 'ubi.c'; then $(CYGPATH_W) 'ubi.c'; else $(CYGPATH_W) '$(srcdir)/ubi.c'; fi` -strace-ucopy.obj: ucopy.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-ucopy.obj -MD -MP -MF $(DEPDIR)/strace-ucopy.Tpo -c -o strace-ucopy.obj `if test -f 'ucopy.c'; then $(CYGPATH_W) 'ucopy.c'; else $(CYGPATH_W) '$(srcdir)/ucopy.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-ucopy.Tpo $(DEPDIR)/strace-ucopy.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ucopy.c' object='strace-ucopy.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ucopy.o: ucopy.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ucopy.o -MD -MP -MF $(DEPDIR)/libstrace_a-ucopy.Tpo -c -o libstrace_a-ucopy.o `test -f 'ucopy.c' || echo '$(srcdir)/'`ucopy.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ucopy.Tpo $(DEPDIR)/libstrace_a-ucopy.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ucopy.c' object='libstrace_a-ucopy.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-ucopy.obj `if test -f 'ucopy.c'; then $(CYGPATH_W) 'ucopy.c'; else $(CYGPATH_W) '$(srcdir)/ucopy.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ucopy.o `test -f 'ucopy.c' || echo '$(srcdir)/'`ucopy.c -strace-uid.o: uid.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-uid.o -MD -MP -MF $(DEPDIR)/strace-uid.Tpo -c -o strace-uid.o `test -f 'uid.c' || echo '$(srcdir)/'`uid.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-uid.Tpo $(DEPDIR)/strace-uid.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='uid.c' object='strace-uid.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ucopy.obj: ucopy.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ucopy.obj -MD -MP -MF $(DEPDIR)/libstrace_a-ucopy.Tpo -c -o libstrace_a-ucopy.obj `if test -f 'ucopy.c'; then $(CYGPATH_W) 'ucopy.c'; else $(CYGPATH_W) '$(srcdir)/ucopy.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ucopy.Tpo $(DEPDIR)/libstrace_a-ucopy.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ucopy.c' object='libstrace_a-ucopy.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-uid.o `test -f 'uid.c' || echo '$(srcdir)/'`uid.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ucopy.obj `if test -f 'ucopy.c'; then $(CYGPATH_W) 'ucopy.c'; else $(CYGPATH_W) '$(srcdir)/ucopy.c'; fi` -strace-uid.obj: uid.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-uid.obj -MD -MP -MF $(DEPDIR)/strace-uid.Tpo -c -o strace-uid.obj `if test -f 'uid.c'; then $(CYGPATH_W) 'uid.c'; else $(CYGPATH_W) '$(srcdir)/uid.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-uid.Tpo $(DEPDIR)/strace-uid.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='uid.c' object='strace-uid.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-uid.o: uid.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-uid.o -MD -MP -MF $(DEPDIR)/libstrace_a-uid.Tpo -c -o libstrace_a-uid.o `test -f 'uid.c' || echo '$(srcdir)/'`uid.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-uid.Tpo $(DEPDIR)/libstrace_a-uid.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='uid.c' object='libstrace_a-uid.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-uid.obj `if test -f 'uid.c'; then $(CYGPATH_W) 'uid.c'; else $(CYGPATH_W) '$(srcdir)/uid.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-uid.o `test -f 'uid.c' || echo '$(srcdir)/'`uid.c -strace-uid16.o: uid16.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-uid16.o -MD -MP -MF $(DEPDIR)/strace-uid16.Tpo -c -o strace-uid16.o `test -f 'uid16.c' || echo '$(srcdir)/'`uid16.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-uid16.Tpo $(DEPDIR)/strace-uid16.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='uid16.c' object='strace-uid16.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-uid.obj: uid.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-uid.obj -MD -MP -MF $(DEPDIR)/libstrace_a-uid.Tpo -c -o libstrace_a-uid.obj `if test -f 'uid.c'; then $(CYGPATH_W) 'uid.c'; else $(CYGPATH_W) '$(srcdir)/uid.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-uid.Tpo $(DEPDIR)/libstrace_a-uid.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='uid.c' object='libstrace_a-uid.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-uid16.o `test -f 'uid16.c' || echo '$(srcdir)/'`uid16.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-uid.obj `if test -f 'uid.c'; then $(CYGPATH_W) 'uid.c'; else $(CYGPATH_W) '$(srcdir)/uid.c'; fi` -strace-uid16.obj: uid16.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-uid16.obj -MD -MP -MF $(DEPDIR)/strace-uid16.Tpo -c -o strace-uid16.obj `if test -f 'uid16.c'; then $(CYGPATH_W) 'uid16.c'; else $(CYGPATH_W) '$(srcdir)/uid16.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-uid16.Tpo $(DEPDIR)/strace-uid16.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='uid16.c' object='strace-uid16.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-uid16.o: uid16.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-uid16.o -MD -MP -MF $(DEPDIR)/libstrace_a-uid16.Tpo -c -o libstrace_a-uid16.o `test -f 'uid16.c' || echo '$(srcdir)/'`uid16.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-uid16.Tpo $(DEPDIR)/libstrace_a-uid16.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='uid16.c' object='libstrace_a-uid16.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-uid16.obj `if test -f 'uid16.c'; then $(CYGPATH_W) 'uid16.c'; else $(CYGPATH_W) '$(srcdir)/uid16.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-uid16.o `test -f 'uid16.c' || echo '$(srcdir)/'`uid16.c -strace-umask.o: umask.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-umask.o -MD -MP -MF $(DEPDIR)/strace-umask.Tpo -c -o strace-umask.o `test -f 'umask.c' || echo '$(srcdir)/'`umask.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-umask.Tpo $(DEPDIR)/strace-umask.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='umask.c' object='strace-umask.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-uid16.obj: uid16.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-uid16.obj -MD -MP -MF $(DEPDIR)/libstrace_a-uid16.Tpo -c -o libstrace_a-uid16.obj `if test -f 'uid16.c'; then $(CYGPATH_W) 'uid16.c'; else $(CYGPATH_W) '$(srcdir)/uid16.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-uid16.Tpo $(DEPDIR)/libstrace_a-uid16.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='uid16.c' object='libstrace_a-uid16.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-umask.o `test -f 'umask.c' || echo '$(srcdir)/'`umask.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-uid16.obj `if test -f 'uid16.c'; then $(CYGPATH_W) 'uid16.c'; else $(CYGPATH_W) '$(srcdir)/uid16.c'; fi` -strace-umask.obj: umask.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-umask.obj -MD -MP -MF $(DEPDIR)/strace-umask.Tpo -c -o strace-umask.obj `if test -f 'umask.c'; then $(CYGPATH_W) 'umask.c'; else $(CYGPATH_W) '$(srcdir)/umask.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-umask.Tpo $(DEPDIR)/strace-umask.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='umask.c' object='strace-umask.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-umask.o: umask.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-umask.o -MD -MP -MF $(DEPDIR)/libstrace_a-umask.Tpo -c -o libstrace_a-umask.o `test -f 'umask.c' || echo '$(srcdir)/'`umask.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-umask.Tpo $(DEPDIR)/libstrace_a-umask.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='umask.c' object='libstrace_a-umask.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-umask.obj `if test -f 'umask.c'; then $(CYGPATH_W) 'umask.c'; else $(CYGPATH_W) '$(srcdir)/umask.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-umask.o `test -f 'umask.c' || echo '$(srcdir)/'`umask.c -strace-umount.o: umount.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-umount.o -MD -MP -MF $(DEPDIR)/strace-umount.Tpo -c -o strace-umount.o `test -f 'umount.c' || echo '$(srcdir)/'`umount.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-umount.Tpo $(DEPDIR)/strace-umount.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='umount.c' object='strace-umount.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-umask.obj: umask.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-umask.obj -MD -MP -MF $(DEPDIR)/libstrace_a-umask.Tpo -c -o libstrace_a-umask.obj `if test -f 'umask.c'; then $(CYGPATH_W) 'umask.c'; else $(CYGPATH_W) '$(srcdir)/umask.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-umask.Tpo $(DEPDIR)/libstrace_a-umask.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='umask.c' object='libstrace_a-umask.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-umount.o `test -f 'umount.c' || echo '$(srcdir)/'`umount.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-umask.obj `if test -f 'umask.c'; then $(CYGPATH_W) 'umask.c'; else $(CYGPATH_W) '$(srcdir)/umask.c'; fi` -strace-umount.obj: umount.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-umount.obj -MD -MP -MF $(DEPDIR)/strace-umount.Tpo -c -o strace-umount.obj `if test -f 'umount.c'; then $(CYGPATH_W) 'umount.c'; else $(CYGPATH_W) '$(srcdir)/umount.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-umount.Tpo $(DEPDIR)/strace-umount.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='umount.c' object='strace-umount.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-umount.o: umount.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-umount.o -MD -MP -MF $(DEPDIR)/libstrace_a-umount.Tpo -c -o libstrace_a-umount.o `test -f 'umount.c' || echo '$(srcdir)/'`umount.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-umount.Tpo $(DEPDIR)/libstrace_a-umount.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='umount.c' object='libstrace_a-umount.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-umount.obj `if test -f 'umount.c'; then $(CYGPATH_W) 'umount.c'; else $(CYGPATH_W) '$(srcdir)/umount.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-umount.o `test -f 'umount.c' || echo '$(srcdir)/'`umount.c -strace-uname.o: uname.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-uname.o -MD -MP -MF $(DEPDIR)/strace-uname.Tpo -c -o strace-uname.o `test -f 'uname.c' || echo '$(srcdir)/'`uname.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-uname.Tpo $(DEPDIR)/strace-uname.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='uname.c' object='strace-uname.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-umount.obj: umount.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-umount.obj -MD -MP -MF $(DEPDIR)/libstrace_a-umount.Tpo -c -o libstrace_a-umount.obj `if test -f 'umount.c'; then $(CYGPATH_W) 'umount.c'; else $(CYGPATH_W) '$(srcdir)/umount.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-umount.Tpo $(DEPDIR)/libstrace_a-umount.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='umount.c' object='libstrace_a-umount.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-uname.o `test -f 'uname.c' || echo '$(srcdir)/'`uname.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-umount.obj `if test -f 'umount.c'; then $(CYGPATH_W) 'umount.c'; else $(CYGPATH_W) '$(srcdir)/umount.c'; fi` -strace-uname.obj: uname.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-uname.obj -MD -MP -MF $(DEPDIR)/strace-uname.Tpo -c -o strace-uname.obj `if test -f 'uname.c'; then $(CYGPATH_W) 'uname.c'; else $(CYGPATH_W) '$(srcdir)/uname.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-uname.Tpo $(DEPDIR)/strace-uname.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='uname.c' object='strace-uname.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-uname.o: uname.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-uname.o -MD -MP -MF $(DEPDIR)/libstrace_a-uname.Tpo -c -o libstrace_a-uname.o `test -f 'uname.c' || echo '$(srcdir)/'`uname.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-uname.Tpo $(DEPDIR)/libstrace_a-uname.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='uname.c' object='libstrace_a-uname.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-uname.obj `if test -f 'uname.c'; then $(CYGPATH_W) 'uname.c'; else $(CYGPATH_W) '$(srcdir)/uname.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-uname.o `test -f 'uname.c' || echo '$(srcdir)/'`uname.c -strace-userfaultfd.o: userfaultfd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-userfaultfd.o -MD -MP -MF $(DEPDIR)/strace-userfaultfd.Tpo -c -o strace-userfaultfd.o `test -f 'userfaultfd.c' || echo '$(srcdir)/'`userfaultfd.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-userfaultfd.Tpo $(DEPDIR)/strace-userfaultfd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='userfaultfd.c' object='strace-userfaultfd.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-uname.obj: uname.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-uname.obj -MD -MP -MF $(DEPDIR)/libstrace_a-uname.Tpo -c -o libstrace_a-uname.obj `if test -f 'uname.c'; then $(CYGPATH_W) 'uname.c'; else $(CYGPATH_W) '$(srcdir)/uname.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-uname.Tpo $(DEPDIR)/libstrace_a-uname.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='uname.c' object='libstrace_a-uname.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-userfaultfd.o `test -f 'userfaultfd.c' || echo '$(srcdir)/'`userfaultfd.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-uname.obj `if test -f 'uname.c'; then $(CYGPATH_W) 'uname.c'; else $(CYGPATH_W) '$(srcdir)/uname.c'; fi` -strace-userfaultfd.obj: userfaultfd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-userfaultfd.obj -MD -MP -MF $(DEPDIR)/strace-userfaultfd.Tpo -c -o strace-userfaultfd.obj `if test -f 'userfaultfd.c'; then $(CYGPATH_W) 'userfaultfd.c'; else $(CYGPATH_W) '$(srcdir)/userfaultfd.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-userfaultfd.Tpo $(DEPDIR)/strace-userfaultfd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='userfaultfd.c' object='strace-userfaultfd.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-upeek.o: upeek.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-upeek.o -MD -MP -MF $(DEPDIR)/libstrace_a-upeek.Tpo -c -o libstrace_a-upeek.o `test -f 'upeek.c' || echo '$(srcdir)/'`upeek.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-upeek.Tpo $(DEPDIR)/libstrace_a-upeek.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='upeek.c' object='libstrace_a-upeek.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-userfaultfd.obj `if test -f 'userfaultfd.c'; then $(CYGPATH_W) 'userfaultfd.c'; else $(CYGPATH_W) '$(srcdir)/userfaultfd.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-upeek.o `test -f 'upeek.c' || echo '$(srcdir)/'`upeek.c -strace-ustat.o: ustat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-ustat.o -MD -MP -MF $(DEPDIR)/strace-ustat.Tpo -c -o strace-ustat.o `test -f 'ustat.c' || echo '$(srcdir)/'`ustat.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-ustat.Tpo $(DEPDIR)/strace-ustat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ustat.c' object='strace-ustat.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-upeek.obj: upeek.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-upeek.obj -MD -MP -MF $(DEPDIR)/libstrace_a-upeek.Tpo -c -o libstrace_a-upeek.obj `if test -f 'upeek.c'; then $(CYGPATH_W) 'upeek.c'; else $(CYGPATH_W) '$(srcdir)/upeek.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-upeek.Tpo $(DEPDIR)/libstrace_a-upeek.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='upeek.c' object='libstrace_a-upeek.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-upeek.obj `if test -f 'upeek.c'; then $(CYGPATH_W) 'upeek.c'; else $(CYGPATH_W) '$(srcdir)/upeek.c'; fi` + +libstrace_a-upoke.o: upoke.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-upoke.o -MD -MP -MF $(DEPDIR)/libstrace_a-upoke.Tpo -c -o libstrace_a-upoke.o `test -f 'upoke.c' || echo '$(srcdir)/'`upoke.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-upoke.Tpo $(DEPDIR)/libstrace_a-upoke.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='upoke.c' object='libstrace_a-upoke.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-ustat.o `test -f 'ustat.c' || echo '$(srcdir)/'`ustat.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-upoke.o `test -f 'upoke.c' || echo '$(srcdir)/'`upoke.c -strace-ustat.obj: ustat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-ustat.obj -MD -MP -MF $(DEPDIR)/strace-ustat.Tpo -c -o strace-ustat.obj `if test -f 'ustat.c'; then $(CYGPATH_W) 'ustat.c'; else $(CYGPATH_W) '$(srcdir)/ustat.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-ustat.Tpo $(DEPDIR)/strace-ustat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ustat.c' object='strace-ustat.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-upoke.obj: upoke.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-upoke.obj -MD -MP -MF $(DEPDIR)/libstrace_a-upoke.Tpo -c -o libstrace_a-upoke.obj `if test -f 'upoke.c'; then $(CYGPATH_W) 'upoke.c'; else $(CYGPATH_W) '$(srcdir)/upoke.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-upoke.Tpo $(DEPDIR)/libstrace_a-upoke.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='upoke.c' object='libstrace_a-upoke.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-ustat.obj `if test -f 'ustat.c'; then $(CYGPATH_W) 'ustat.c'; else $(CYGPATH_W) '$(srcdir)/ustat.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-upoke.obj `if test -f 'upoke.c'; then $(CYGPATH_W) 'upoke.c'; else $(CYGPATH_W) '$(srcdir)/upoke.c'; fi` -strace-util.o: util.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-util.o -MD -MP -MF $(DEPDIR)/strace-util.Tpo -c -o strace-util.o `test -f 'util.c' || echo '$(srcdir)/'`util.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-util.Tpo $(DEPDIR)/strace-util.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='util.c' object='strace-util.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-userfaultfd.o: userfaultfd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-userfaultfd.o -MD -MP -MF $(DEPDIR)/libstrace_a-userfaultfd.Tpo -c -o libstrace_a-userfaultfd.o `test -f 'userfaultfd.c' || echo '$(srcdir)/'`userfaultfd.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-userfaultfd.Tpo $(DEPDIR)/libstrace_a-userfaultfd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='userfaultfd.c' object='libstrace_a-userfaultfd.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-util.o `test -f 'util.c' || echo '$(srcdir)/'`util.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-userfaultfd.o `test -f 'userfaultfd.c' || echo '$(srcdir)/'`userfaultfd.c -strace-util.obj: util.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-util.obj -MD -MP -MF $(DEPDIR)/strace-util.Tpo -c -o strace-util.obj `if test -f 'util.c'; then $(CYGPATH_W) 'util.c'; else $(CYGPATH_W) '$(srcdir)/util.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-util.Tpo $(DEPDIR)/strace-util.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='util.c' object='strace-util.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-userfaultfd.obj: userfaultfd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-userfaultfd.obj -MD -MP -MF $(DEPDIR)/libstrace_a-userfaultfd.Tpo -c -o libstrace_a-userfaultfd.obj `if test -f 'userfaultfd.c'; then $(CYGPATH_W) 'userfaultfd.c'; else $(CYGPATH_W) '$(srcdir)/userfaultfd.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-userfaultfd.Tpo $(DEPDIR)/libstrace_a-userfaultfd.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='userfaultfd.c' object='libstrace_a-userfaultfd.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-util.obj `if test -f 'util.c'; then $(CYGPATH_W) 'util.c'; else $(CYGPATH_W) '$(srcdir)/util.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-userfaultfd.obj `if test -f 'userfaultfd.c'; then $(CYGPATH_W) 'userfaultfd.c'; else $(CYGPATH_W) '$(srcdir)/userfaultfd.c'; fi` -strace-utime.o: utime.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-utime.o -MD -MP -MF $(DEPDIR)/strace-utime.Tpo -c -o strace-utime.o `test -f 'utime.c' || echo '$(srcdir)/'`utime.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-utime.Tpo $(DEPDIR)/strace-utime.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='utime.c' object='strace-utime.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ustat.o: ustat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ustat.o -MD -MP -MF $(DEPDIR)/libstrace_a-ustat.Tpo -c -o libstrace_a-ustat.o `test -f 'ustat.c' || echo '$(srcdir)/'`ustat.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ustat.Tpo $(DEPDIR)/libstrace_a-ustat.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ustat.c' object='libstrace_a-ustat.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-utime.o `test -f 'utime.c' || echo '$(srcdir)/'`utime.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ustat.o `test -f 'ustat.c' || echo '$(srcdir)/'`ustat.c -strace-utime.obj: utime.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-utime.obj -MD -MP -MF $(DEPDIR)/strace-utime.Tpo -c -o strace-utime.obj `if test -f 'utime.c'; then $(CYGPATH_W) 'utime.c'; else $(CYGPATH_W) '$(srcdir)/utime.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-utime.Tpo $(DEPDIR)/strace-utime.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='utime.c' object='strace-utime.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-ustat.obj: ustat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-ustat.obj -MD -MP -MF $(DEPDIR)/libstrace_a-ustat.Tpo -c -o libstrace_a-ustat.obj `if test -f 'ustat.c'; then $(CYGPATH_W) 'ustat.c'; else $(CYGPATH_W) '$(srcdir)/ustat.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-ustat.Tpo $(DEPDIR)/libstrace_a-ustat.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ustat.c' object='libstrace_a-ustat.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-utime.obj `if test -f 'utime.c'; then $(CYGPATH_W) 'utime.c'; else $(CYGPATH_W) '$(srcdir)/utime.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ustat.obj `if test -f 'ustat.c'; then $(CYGPATH_W) 'ustat.c'; else $(CYGPATH_W) '$(srcdir)/ustat.c'; fi` -strace-utimes.o: utimes.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-utimes.o -MD -MP -MF $(DEPDIR)/strace-utimes.Tpo -c -o strace-utimes.o `test -f 'utimes.c' || echo '$(srcdir)/'`utimes.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-utimes.Tpo $(DEPDIR)/strace-utimes.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='utimes.c' object='strace-utimes.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-util.o: util.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-util.o -MD -MP -MF $(DEPDIR)/libstrace_a-util.Tpo -c -o libstrace_a-util.o `test -f 'util.c' || echo '$(srcdir)/'`util.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-util.Tpo $(DEPDIR)/libstrace_a-util.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='util.c' object='libstrace_a-util.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-utimes.o `test -f 'utimes.c' || echo '$(srcdir)/'`utimes.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-util.o `test -f 'util.c' || echo '$(srcdir)/'`util.c -strace-utimes.obj: utimes.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-utimes.obj -MD -MP -MF $(DEPDIR)/strace-utimes.Tpo -c -o strace-utimes.obj `if test -f 'utimes.c'; then $(CYGPATH_W) 'utimes.c'; else $(CYGPATH_W) '$(srcdir)/utimes.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-utimes.Tpo $(DEPDIR)/strace-utimes.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='utimes.c' object='strace-utimes.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-util.obj: util.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-util.obj -MD -MP -MF $(DEPDIR)/libstrace_a-util.Tpo -c -o libstrace_a-util.obj `if test -f 'util.c'; then $(CYGPATH_W) 'util.c'; else $(CYGPATH_W) '$(srcdir)/util.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-util.Tpo $(DEPDIR)/libstrace_a-util.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='util.c' object='libstrace_a-util.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-utimes.obj `if test -f 'utimes.c'; then $(CYGPATH_W) 'utimes.c'; else $(CYGPATH_W) '$(srcdir)/utimes.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-util.obj `if test -f 'util.c'; then $(CYGPATH_W) 'util.c'; else $(CYGPATH_W) '$(srcdir)/util.c'; fi` -strace-v4l2.o: v4l2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-v4l2.o -MD -MP -MF $(DEPDIR)/strace-v4l2.Tpo -c -o strace-v4l2.o `test -f 'v4l2.c' || echo '$(srcdir)/'`v4l2.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-v4l2.Tpo $(DEPDIR)/strace-v4l2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4l2.c' object='strace-v4l2.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-utime.o: utime.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-utime.o -MD -MP -MF $(DEPDIR)/libstrace_a-utime.Tpo -c -o libstrace_a-utime.o `test -f 'utime.c' || echo '$(srcdir)/'`utime.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-utime.Tpo $(DEPDIR)/libstrace_a-utime.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='utime.c' object='libstrace_a-utime.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-v4l2.o `test -f 'v4l2.c' || echo '$(srcdir)/'`v4l2.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-utime.o `test -f 'utime.c' || echo '$(srcdir)/'`utime.c -strace-v4l2.obj: v4l2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-v4l2.obj -MD -MP -MF $(DEPDIR)/strace-v4l2.Tpo -c -o strace-v4l2.obj `if test -f 'v4l2.c'; then $(CYGPATH_W) 'v4l2.c'; else $(CYGPATH_W) '$(srcdir)/v4l2.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-v4l2.Tpo $(DEPDIR)/strace-v4l2.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4l2.c' object='strace-v4l2.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-utime.obj: utime.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-utime.obj -MD -MP -MF $(DEPDIR)/libstrace_a-utime.Tpo -c -o libstrace_a-utime.obj `if test -f 'utime.c'; then $(CYGPATH_W) 'utime.c'; else $(CYGPATH_W) '$(srcdir)/utime.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-utime.Tpo $(DEPDIR)/libstrace_a-utime.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='utime.c' object='libstrace_a-utime.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-v4l2.obj `if test -f 'v4l2.c'; then $(CYGPATH_W) 'v4l2.c'; else $(CYGPATH_W) '$(srcdir)/v4l2.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-utime.obj `if test -f 'utime.c'; then $(CYGPATH_W) 'utime.c'; else $(CYGPATH_W) '$(srcdir)/utime.c'; fi` -strace-wait.o: wait.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-wait.o -MD -MP -MF $(DEPDIR)/strace-wait.Tpo -c -o strace-wait.o `test -f 'wait.c' || echo '$(srcdir)/'`wait.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-wait.Tpo $(DEPDIR)/strace-wait.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='wait.c' object='strace-wait.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-utimes.o: utimes.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-utimes.o -MD -MP -MF $(DEPDIR)/libstrace_a-utimes.Tpo -c -o libstrace_a-utimes.o `test -f 'utimes.c' || echo '$(srcdir)/'`utimes.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-utimes.Tpo $(DEPDIR)/libstrace_a-utimes.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='utimes.c' object='libstrace_a-utimes.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-wait.o `test -f 'wait.c' || echo '$(srcdir)/'`wait.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-utimes.o `test -f 'utimes.c' || echo '$(srcdir)/'`utimes.c -strace-wait.obj: wait.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-wait.obj -MD -MP -MF $(DEPDIR)/strace-wait.Tpo -c -o strace-wait.obj `if test -f 'wait.c'; then $(CYGPATH_W) 'wait.c'; else $(CYGPATH_W) '$(srcdir)/wait.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-wait.Tpo $(DEPDIR)/strace-wait.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='wait.c' object='strace-wait.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-utimes.obj: utimes.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-utimes.obj -MD -MP -MF $(DEPDIR)/libstrace_a-utimes.Tpo -c -o libstrace_a-utimes.obj `if test -f 'utimes.c'; then $(CYGPATH_W) 'utimes.c'; else $(CYGPATH_W) '$(srcdir)/utimes.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-utimes.Tpo $(DEPDIR)/libstrace_a-utimes.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='utimes.c' object='libstrace_a-utimes.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-wait.obj `if test -f 'wait.c'; then $(CYGPATH_W) 'wait.c'; else $(CYGPATH_W) '$(srcdir)/wait.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-utimes.obj `if test -f 'utimes.c'; then $(CYGPATH_W) 'utimes.c'; else $(CYGPATH_W) '$(srcdir)/utimes.c'; fi` -strace-xattr.o: xattr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-xattr.o -MD -MP -MF $(DEPDIR)/strace-xattr.Tpo -c -o strace-xattr.o `test -f 'xattr.c' || echo '$(srcdir)/'`xattr.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-xattr.Tpo $(DEPDIR)/strace-xattr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xattr.c' object='strace-xattr.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-v4l2.o: v4l2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-v4l2.o -MD -MP -MF $(DEPDIR)/libstrace_a-v4l2.Tpo -c -o libstrace_a-v4l2.o `test -f 'v4l2.c' || echo '$(srcdir)/'`v4l2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-v4l2.Tpo $(DEPDIR)/libstrace_a-v4l2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4l2.c' object='libstrace_a-v4l2.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-xattr.o `test -f 'xattr.c' || echo '$(srcdir)/'`xattr.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-v4l2.o `test -f 'v4l2.c' || echo '$(srcdir)/'`v4l2.c -strace-xattr.obj: xattr.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-xattr.obj -MD -MP -MF $(DEPDIR)/strace-xattr.Tpo -c -o strace-xattr.obj `if test -f 'xattr.c'; then $(CYGPATH_W) 'xattr.c'; else $(CYGPATH_W) '$(srcdir)/xattr.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-xattr.Tpo $(DEPDIR)/strace-xattr.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xattr.c' object='strace-xattr.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-v4l2.obj: v4l2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-v4l2.obj -MD -MP -MF $(DEPDIR)/libstrace_a-v4l2.Tpo -c -o libstrace_a-v4l2.obj `if test -f 'v4l2.c'; then $(CYGPATH_W) 'v4l2.c'; else $(CYGPATH_W) '$(srcdir)/v4l2.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-v4l2.Tpo $(DEPDIR)/libstrace_a-v4l2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4l2.c' object='libstrace_a-v4l2.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-xattr.obj `if test -f 'xattr.c'; then $(CYGPATH_W) 'xattr.c'; else $(CYGPATH_W) '$(srcdir)/xattr.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-v4l2.obj `if test -f 'v4l2.c'; then $(CYGPATH_W) 'v4l2.c'; else $(CYGPATH_W) '$(srcdir)/v4l2.c'; fi` -strace-xlat.o: xlat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-xlat.o -MD -MP -MF $(DEPDIR)/strace-xlat.Tpo -c -o strace-xlat.o `test -f 'xlat.c' || echo '$(srcdir)/'`xlat.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-xlat.Tpo $(DEPDIR)/strace-xlat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xlat.c' object='strace-xlat.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-wait.o: wait.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-wait.o -MD -MP -MF $(DEPDIR)/libstrace_a-wait.Tpo -c -o libstrace_a-wait.o `test -f 'wait.c' || echo '$(srcdir)/'`wait.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-wait.Tpo $(DEPDIR)/libstrace_a-wait.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='wait.c' object='libstrace_a-wait.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-xlat.o `test -f 'xlat.c' || echo '$(srcdir)/'`xlat.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-wait.o `test -f 'wait.c' || echo '$(srcdir)/'`wait.c -strace-xlat.obj: xlat.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-xlat.obj -MD -MP -MF $(DEPDIR)/strace-xlat.Tpo -c -o strace-xlat.obj `if test -f 'xlat.c'; then $(CYGPATH_W) 'xlat.c'; else $(CYGPATH_W) '$(srcdir)/xlat.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-xlat.Tpo $(DEPDIR)/strace-xlat.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xlat.c' object='strace-xlat.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-wait.obj: wait.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-wait.obj -MD -MP -MF $(DEPDIR)/libstrace_a-wait.Tpo -c -o libstrace_a-wait.obj `if test -f 'wait.c'; then $(CYGPATH_W) 'wait.c'; else $(CYGPATH_W) '$(srcdir)/wait.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-wait.Tpo $(DEPDIR)/libstrace_a-wait.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='wait.c' object='libstrace_a-wait.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-xlat.obj `if test -f 'xlat.c'; then $(CYGPATH_W) 'xlat.c'; else $(CYGPATH_W) '$(srcdir)/xlat.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-wait.obj `if test -f 'wait.c'; then $(CYGPATH_W) 'wait.c'; else $(CYGPATH_W) '$(srcdir)/wait.c'; fi` -strace-xmalloc.o: xmalloc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-xmalloc.o -MD -MP -MF $(DEPDIR)/strace-xmalloc.Tpo -c -o strace-xmalloc.o `test -f 'xmalloc.c' || echo '$(srcdir)/'`xmalloc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-xmalloc.Tpo $(DEPDIR)/strace-xmalloc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xmalloc.c' object='strace-xmalloc.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-watchdog_ioctl.o: watchdog_ioctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-watchdog_ioctl.o -MD -MP -MF $(DEPDIR)/libstrace_a-watchdog_ioctl.Tpo -c -o libstrace_a-watchdog_ioctl.o `test -f 'watchdog_ioctl.c' || echo '$(srcdir)/'`watchdog_ioctl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-watchdog_ioctl.Tpo $(DEPDIR)/libstrace_a-watchdog_ioctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='watchdog_ioctl.c' object='libstrace_a-watchdog_ioctl.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-xmalloc.o `test -f 'xmalloc.c' || echo '$(srcdir)/'`xmalloc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-watchdog_ioctl.o `test -f 'watchdog_ioctl.c' || echo '$(srcdir)/'`watchdog_ioctl.c -strace-xmalloc.obj: xmalloc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-xmalloc.obj -MD -MP -MF $(DEPDIR)/strace-xmalloc.Tpo -c -o strace-xmalloc.obj `if test -f 'xmalloc.c'; then $(CYGPATH_W) 'xmalloc.c'; else $(CYGPATH_W) '$(srcdir)/xmalloc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-xmalloc.Tpo $(DEPDIR)/strace-xmalloc.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xmalloc.c' object='strace-xmalloc.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-watchdog_ioctl.obj: watchdog_ioctl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-watchdog_ioctl.obj -MD -MP -MF $(DEPDIR)/libstrace_a-watchdog_ioctl.Tpo -c -o libstrace_a-watchdog_ioctl.obj `if test -f 'watchdog_ioctl.c'; then $(CYGPATH_W) 'watchdog_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/watchdog_ioctl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-watchdog_ioctl.Tpo $(DEPDIR)/libstrace_a-watchdog_ioctl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='watchdog_ioctl.c' object='libstrace_a-watchdog_ioctl.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-xmalloc.obj `if test -f 'xmalloc.c'; then $(CYGPATH_W) 'xmalloc.c'; else $(CYGPATH_W) '$(srcdir)/xmalloc.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-watchdog_ioctl.obj `if test -f 'watchdog_ioctl.c'; then $(CYGPATH_W) 'watchdog_ioctl.c'; else $(CYGPATH_W) '$(srcdir)/watchdog_ioctl.c'; fi` -strace-bpf_attr_check.o: bpf_attr_check.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-bpf_attr_check.o -MD -MP -MF $(DEPDIR)/strace-bpf_attr_check.Tpo -c -o strace-bpf_attr_check.o `test -f 'bpf_attr_check.c' || echo '$(srcdir)/'`bpf_attr_check.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-bpf_attr_check.Tpo $(DEPDIR)/strace-bpf_attr_check.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bpf_attr_check.c' object='strace-bpf_attr_check.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-xattr.o: xattr.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-xattr.o -MD -MP -MF $(DEPDIR)/libstrace_a-xattr.Tpo -c -o libstrace_a-xattr.o `test -f 'xattr.c' || echo '$(srcdir)/'`xattr.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-xattr.Tpo $(DEPDIR)/libstrace_a-xattr.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xattr.c' object='libstrace_a-xattr.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-bpf_attr_check.o `test -f 'bpf_attr_check.c' || echo '$(srcdir)/'`bpf_attr_check.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-xattr.o `test -f 'xattr.c' || echo '$(srcdir)/'`xattr.c -strace-bpf_attr_check.obj: bpf_attr_check.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-bpf_attr_check.obj -MD -MP -MF $(DEPDIR)/strace-bpf_attr_check.Tpo -c -o strace-bpf_attr_check.obj `if test -f 'bpf_attr_check.c'; then $(CYGPATH_W) 'bpf_attr_check.c'; else $(CYGPATH_W) '$(srcdir)/bpf_attr_check.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-bpf_attr_check.Tpo $(DEPDIR)/strace-bpf_attr_check.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bpf_attr_check.c' object='strace-bpf_attr_check.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-xattr.obj: xattr.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-xattr.obj -MD -MP -MF $(DEPDIR)/libstrace_a-xattr.Tpo -c -o libstrace_a-xattr.obj `if test -f 'xattr.c'; then $(CYGPATH_W) 'xattr.c'; else $(CYGPATH_W) '$(srcdir)/xattr.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-xattr.Tpo $(DEPDIR)/libstrace_a-xattr.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xattr.c' object='libstrace_a-xattr.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-bpf_attr_check.obj `if test -f 'bpf_attr_check.c'; then $(CYGPATH_W) 'bpf_attr_check.c'; else $(CYGPATH_W) '$(srcdir)/bpf_attr_check.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-xattr.obj `if test -f 'xattr.c'; then $(CYGPATH_W) 'xattr.c'; else $(CYGPATH_W) '$(srcdir)/xattr.c'; fi` -strace-unwind.o: unwind.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-unwind.o -MD -MP -MF $(DEPDIR)/strace-unwind.Tpo -c -o strace-unwind.o `test -f 'unwind.c' || echo '$(srcdir)/'`unwind.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-unwind.Tpo $(DEPDIR)/strace-unwind.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unwind.c' object='strace-unwind.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-xgetdents.o: xgetdents.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-xgetdents.o -MD -MP -MF $(DEPDIR)/libstrace_a-xgetdents.Tpo -c -o libstrace_a-xgetdents.o `test -f 'xgetdents.c' || echo '$(srcdir)/'`xgetdents.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-xgetdents.Tpo $(DEPDIR)/libstrace_a-xgetdents.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xgetdents.c' object='libstrace_a-xgetdents.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-unwind.o `test -f 'unwind.c' || echo '$(srcdir)/'`unwind.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-xgetdents.o `test -f 'xgetdents.c' || echo '$(srcdir)/'`xgetdents.c -strace-unwind.obj: unwind.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-unwind.obj -MD -MP -MF $(DEPDIR)/strace-unwind.Tpo -c -o strace-unwind.obj `if test -f 'unwind.c'; then $(CYGPATH_W) 'unwind.c'; else $(CYGPATH_W) '$(srcdir)/unwind.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-unwind.Tpo $(DEPDIR)/strace-unwind.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unwind.c' object='strace-unwind.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-xgetdents.obj: xgetdents.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-xgetdents.obj -MD -MP -MF $(DEPDIR)/libstrace_a-xgetdents.Tpo -c -o libstrace_a-xgetdents.obj `if test -f 'xgetdents.c'; then $(CYGPATH_W) 'xgetdents.c'; else $(CYGPATH_W) '$(srcdir)/xgetdents.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-xgetdents.Tpo $(DEPDIR)/libstrace_a-xgetdents.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xgetdents.c' object='libstrace_a-xgetdents.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-unwind.obj `if test -f 'unwind.c'; then $(CYGPATH_W) 'unwind.c'; else $(CYGPATH_W) '$(srcdir)/unwind.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-xgetdents.obj `if test -f 'xgetdents.c'; then $(CYGPATH_W) 'xgetdents.c'; else $(CYGPATH_W) '$(srcdir)/xgetdents.c'; fi` -strace-unwind-libdw.o: unwind-libdw.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-unwind-libdw.o -MD -MP -MF $(DEPDIR)/strace-unwind-libdw.Tpo -c -o strace-unwind-libdw.o `test -f 'unwind-libdw.c' || echo '$(srcdir)/'`unwind-libdw.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-unwind-libdw.Tpo $(DEPDIR)/strace-unwind-libdw.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unwind-libdw.c' object='strace-unwind-libdw.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-xlat.o: xlat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-xlat.o -MD -MP -MF $(DEPDIR)/libstrace_a-xlat.Tpo -c -o libstrace_a-xlat.o `test -f 'xlat.c' || echo '$(srcdir)/'`xlat.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-xlat.Tpo $(DEPDIR)/libstrace_a-xlat.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xlat.c' object='libstrace_a-xlat.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-unwind-libdw.o `test -f 'unwind-libdw.c' || echo '$(srcdir)/'`unwind-libdw.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-xlat.o `test -f 'xlat.c' || echo '$(srcdir)/'`xlat.c -strace-unwind-libdw.obj: unwind-libdw.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-unwind-libdw.obj -MD -MP -MF $(DEPDIR)/strace-unwind-libdw.Tpo -c -o strace-unwind-libdw.obj `if test -f 'unwind-libdw.c'; then $(CYGPATH_W) 'unwind-libdw.c'; else $(CYGPATH_W) '$(srcdir)/unwind-libdw.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-unwind-libdw.Tpo $(DEPDIR)/strace-unwind-libdw.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unwind-libdw.c' object='strace-unwind-libdw.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-xlat.obj: xlat.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-xlat.obj -MD -MP -MF $(DEPDIR)/libstrace_a-xlat.Tpo -c -o libstrace_a-xlat.obj `if test -f 'xlat.c'; then $(CYGPATH_W) 'xlat.c'; else $(CYGPATH_W) '$(srcdir)/xlat.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-xlat.Tpo $(DEPDIR)/libstrace_a-xlat.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xlat.c' object='libstrace_a-xlat.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-unwind-libdw.obj `if test -f 'unwind-libdw.c'; then $(CYGPATH_W) 'unwind-libdw.c'; else $(CYGPATH_W) '$(srcdir)/unwind-libdw.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-xlat.obj `if test -f 'xlat.c'; then $(CYGPATH_W) 'xlat.c'; else $(CYGPATH_W) '$(srcdir)/xlat.c'; fi` -strace-unwind-libunwind.o: unwind-libunwind.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-unwind-libunwind.o -MD -MP -MF $(DEPDIR)/strace-unwind-libunwind.Tpo -c -o strace-unwind-libunwind.o `test -f 'unwind-libunwind.c' || echo '$(srcdir)/'`unwind-libunwind.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-unwind-libunwind.Tpo $(DEPDIR)/strace-unwind-libunwind.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unwind-libunwind.c' object='strace-unwind-libunwind.o' libtool=no @AMDEPBACKSLASH@ +libstrace_a-xmalloc.o: xmalloc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-xmalloc.o -MD -MP -MF $(DEPDIR)/libstrace_a-xmalloc.Tpo -c -o libstrace_a-xmalloc.o `test -f 'xmalloc.c' || echo '$(srcdir)/'`xmalloc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-xmalloc.Tpo $(DEPDIR)/libstrace_a-xmalloc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xmalloc.c' object='libstrace_a-xmalloc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-unwind-libunwind.o `test -f 'unwind-libunwind.c' || echo '$(srcdir)/'`unwind-libunwind.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-xmalloc.o `test -f 'xmalloc.c' || echo '$(srcdir)/'`xmalloc.c -strace-unwind-libunwind.obj: unwind-libunwind.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-unwind-libunwind.obj -MD -MP -MF $(DEPDIR)/strace-unwind-libunwind.Tpo -c -o strace-unwind-libunwind.obj `if test -f 'unwind-libunwind.c'; then $(CYGPATH_W) 'unwind-libunwind.c'; else $(CYGPATH_W) '$(srcdir)/unwind-libunwind.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-unwind-libunwind.Tpo $(DEPDIR)/strace-unwind-libunwind.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unwind-libunwind.c' object='strace-unwind-libunwind.obj' libtool=no @AMDEPBACKSLASH@ +libstrace_a-xmalloc.obj: xmalloc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-xmalloc.obj -MD -MP -MF $(DEPDIR)/libstrace_a-xmalloc.Tpo -c -o libstrace_a-xmalloc.obj `if test -f 'xmalloc.c'; then $(CYGPATH_W) 'xmalloc.c'; else $(CYGPATH_W) '$(srcdir)/xmalloc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-xmalloc.Tpo $(DEPDIR)/libstrace_a-xmalloc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xmalloc.c' object='libstrace_a-xmalloc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-unwind-libunwind.obj `if test -f 'unwind-libunwind.c'; then $(CYGPATH_W) 'unwind-libunwind.c'; else $(CYGPATH_W) '$(srcdir)/unwind-libunwind.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-xmalloc.obj `if test -f 'xmalloc.c'; then $(CYGPATH_W) 'xmalloc.c'; else $(CYGPATH_W) '$(srcdir)/xmalloc.c'; fi` + +libstrace_a-bpf_attr_check.o: bpf_attr_check.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-bpf_attr_check.o -MD -MP -MF $(DEPDIR)/libstrace_a-bpf_attr_check.Tpo -c -o libstrace_a-bpf_attr_check.o `test -f 'bpf_attr_check.c' || echo '$(srcdir)/'`bpf_attr_check.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-bpf_attr_check.Tpo $(DEPDIR)/libstrace_a-bpf_attr_check.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bpf_attr_check.c' object='libstrace_a-bpf_attr_check.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-bpf_attr_check.o `test -f 'bpf_attr_check.c' || echo '$(srcdir)/'`bpf_attr_check.c + +libstrace_a-bpf_attr_check.obj: bpf_attr_check.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-bpf_attr_check.obj -MD -MP -MF $(DEPDIR)/libstrace_a-bpf_attr_check.Tpo -c -o libstrace_a-bpf_attr_check.obj `if test -f 'bpf_attr_check.c'; then $(CYGPATH_W) 'bpf_attr_check.c'; else $(CYGPATH_W) '$(srcdir)/bpf_attr_check.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-bpf_attr_check.Tpo $(DEPDIR)/libstrace_a-bpf_attr_check.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bpf_attr_check.c' object='libstrace_a-bpf_attr_check.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-bpf_attr_check.obj `if test -f 'bpf_attr_check.c'; then $(CYGPATH_W) 'bpf_attr_check.c'; else $(CYGPATH_W) '$(srcdir)/bpf_attr_check.c'; fi` + +types/libstrace_a-check-btrfs.o: types/check-btrfs.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT types/libstrace_a-check-btrfs.o -MD -MP -MF types/$(DEPDIR)/libstrace_a-check-btrfs.Tpo -c -o types/libstrace_a-check-btrfs.o `test -f 'types/check-btrfs.c' || echo '$(srcdir)/'`types/check-btrfs.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) types/$(DEPDIR)/libstrace_a-check-btrfs.Tpo types/$(DEPDIR)/libstrace_a-check-btrfs.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='types/check-btrfs.c' object='types/libstrace_a-check-btrfs.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o types/libstrace_a-check-btrfs.o `test -f 'types/check-btrfs.c' || echo '$(srcdir)/'`types/check-btrfs.c + +types/libstrace_a-check-btrfs.obj: types/check-btrfs.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT types/libstrace_a-check-btrfs.obj -MD -MP -MF types/$(DEPDIR)/libstrace_a-check-btrfs.Tpo -c -o types/libstrace_a-check-btrfs.obj `if test -f 'types/check-btrfs.c'; then $(CYGPATH_W) 'types/check-btrfs.c'; else $(CYGPATH_W) '$(srcdir)/types/check-btrfs.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) types/$(DEPDIR)/libstrace_a-check-btrfs.Tpo types/$(DEPDIR)/libstrace_a-check-btrfs.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='types/check-btrfs.c' object='types/libstrace_a-check-btrfs.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o types/libstrace_a-check-btrfs.obj `if test -f 'types/check-btrfs.c'; then $(CYGPATH_W) 'types/check-btrfs.c'; else $(CYGPATH_W) '$(srcdir)/types/check-btrfs.c'; fi` + +types/libstrace_a-check-cryptouser.o: types/check-cryptouser.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT types/libstrace_a-check-cryptouser.o -MD -MP -MF types/$(DEPDIR)/libstrace_a-check-cryptouser.Tpo -c -o types/libstrace_a-check-cryptouser.o `test -f 'types/check-cryptouser.c' || echo '$(srcdir)/'`types/check-cryptouser.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) types/$(DEPDIR)/libstrace_a-check-cryptouser.Tpo types/$(DEPDIR)/libstrace_a-check-cryptouser.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='types/check-cryptouser.c' object='types/libstrace_a-check-cryptouser.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o types/libstrace_a-check-cryptouser.o `test -f 'types/check-cryptouser.c' || echo '$(srcdir)/'`types/check-cryptouser.c + +types/libstrace_a-check-cryptouser.obj: types/check-cryptouser.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT types/libstrace_a-check-cryptouser.obj -MD -MP -MF types/$(DEPDIR)/libstrace_a-check-cryptouser.Tpo -c -o types/libstrace_a-check-cryptouser.obj `if test -f 'types/check-cryptouser.c'; then $(CYGPATH_W) 'types/check-cryptouser.c'; else $(CYGPATH_W) '$(srcdir)/types/check-cryptouser.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) types/$(DEPDIR)/libstrace_a-check-cryptouser.Tpo types/$(DEPDIR)/libstrace_a-check-cryptouser.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='types/check-cryptouser.c' object='types/libstrace_a-check-cryptouser.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o types/libstrace_a-check-cryptouser.obj `if test -f 'types/check-cryptouser.c'; then $(CYGPATH_W) 'types/check-cryptouser.c'; else $(CYGPATH_W) '$(srcdir)/types/check-cryptouser.c'; fi` + +types/libstrace_a-check-evdev.o: types/check-evdev.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT types/libstrace_a-check-evdev.o -MD -MP -MF types/$(DEPDIR)/libstrace_a-check-evdev.Tpo -c -o types/libstrace_a-check-evdev.o `test -f 'types/check-evdev.c' || echo '$(srcdir)/'`types/check-evdev.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) types/$(DEPDIR)/libstrace_a-check-evdev.Tpo types/$(DEPDIR)/libstrace_a-check-evdev.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='types/check-evdev.c' object='types/libstrace_a-check-evdev.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o types/libstrace_a-check-evdev.o `test -f 'types/check-evdev.c' || echo '$(srcdir)/'`types/check-evdev.c + +types/libstrace_a-check-evdev.obj: types/check-evdev.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT types/libstrace_a-check-evdev.obj -MD -MP -MF types/$(DEPDIR)/libstrace_a-check-evdev.Tpo -c -o types/libstrace_a-check-evdev.obj `if test -f 'types/check-evdev.c'; then $(CYGPATH_W) 'types/check-evdev.c'; else $(CYGPATH_W) '$(srcdir)/types/check-evdev.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) types/$(DEPDIR)/libstrace_a-check-evdev.Tpo types/$(DEPDIR)/libstrace_a-check-evdev.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='types/check-evdev.c' object='types/libstrace_a-check-evdev.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o types/libstrace_a-check-evdev.obj `if test -f 'types/check-evdev.c'; then $(CYGPATH_W) 'types/check-evdev.c'; else $(CYGPATH_W) '$(srcdir)/types/check-evdev.c'; fi` + +types/libstrace_a-check-io_uring.o: types/check-io_uring.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT types/libstrace_a-check-io_uring.o -MD -MP -MF types/$(DEPDIR)/libstrace_a-check-io_uring.Tpo -c -o types/libstrace_a-check-io_uring.o `test -f 'types/check-io_uring.c' || echo '$(srcdir)/'`types/check-io_uring.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) types/$(DEPDIR)/libstrace_a-check-io_uring.Tpo types/$(DEPDIR)/libstrace_a-check-io_uring.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='types/check-io_uring.c' object='types/libstrace_a-check-io_uring.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o types/libstrace_a-check-io_uring.o `test -f 'types/check-io_uring.c' || echo '$(srcdir)/'`types/check-io_uring.c + +types/libstrace_a-check-io_uring.obj: types/check-io_uring.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT types/libstrace_a-check-io_uring.obj -MD -MP -MF types/$(DEPDIR)/libstrace_a-check-io_uring.Tpo -c -o types/libstrace_a-check-io_uring.obj `if test -f 'types/check-io_uring.c'; then $(CYGPATH_W) 'types/check-io_uring.c'; else $(CYGPATH_W) '$(srcdir)/types/check-io_uring.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) types/$(DEPDIR)/libstrace_a-check-io_uring.Tpo types/$(DEPDIR)/libstrace_a-check-io_uring.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='types/check-io_uring.c' object='types/libstrace_a-check-io_uring.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o types/libstrace_a-check-io_uring.obj `if test -f 'types/check-io_uring.c'; then $(CYGPATH_W) 'types/check-io_uring.c'; else $(CYGPATH_W) '$(srcdir)/types/check-io_uring.c'; fi` + +types/libstrace_a-check-loop.o: types/check-loop.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT types/libstrace_a-check-loop.o -MD -MP -MF types/$(DEPDIR)/libstrace_a-check-loop.Tpo -c -o types/libstrace_a-check-loop.o `test -f 'types/check-loop.c' || echo '$(srcdir)/'`types/check-loop.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) types/$(DEPDIR)/libstrace_a-check-loop.Tpo types/$(DEPDIR)/libstrace_a-check-loop.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='types/check-loop.c' object='types/libstrace_a-check-loop.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o types/libstrace_a-check-loop.o `test -f 'types/check-loop.c' || echo '$(srcdir)/'`types/check-loop.c + +types/libstrace_a-check-loop.obj: types/check-loop.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT types/libstrace_a-check-loop.obj -MD -MP -MF types/$(DEPDIR)/libstrace_a-check-loop.Tpo -c -o types/libstrace_a-check-loop.obj `if test -f 'types/check-loop.c'; then $(CYGPATH_W) 'types/check-loop.c'; else $(CYGPATH_W) '$(srcdir)/types/check-loop.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) types/$(DEPDIR)/libstrace_a-check-loop.Tpo types/$(DEPDIR)/libstrace_a-check-loop.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='types/check-loop.c' object='types/libstrace_a-check-loop.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o types/libstrace_a-check-loop.obj `if test -f 'types/check-loop.c'; then $(CYGPATH_W) 'types/check-loop.c'; else $(CYGPATH_W) '$(srcdir)/types/check-loop.c'; fi` + +types/libstrace_a-check-openat2.o: types/check-openat2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT types/libstrace_a-check-openat2.o -MD -MP -MF types/$(DEPDIR)/libstrace_a-check-openat2.Tpo -c -o types/libstrace_a-check-openat2.o `test -f 'types/check-openat2.c' || echo '$(srcdir)/'`types/check-openat2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) types/$(DEPDIR)/libstrace_a-check-openat2.Tpo types/$(DEPDIR)/libstrace_a-check-openat2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='types/check-openat2.c' object='types/libstrace_a-check-openat2.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o types/libstrace_a-check-openat2.o `test -f 'types/check-openat2.c' || echo '$(srcdir)/'`types/check-openat2.c + +types/libstrace_a-check-openat2.obj: types/check-openat2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT types/libstrace_a-check-openat2.obj -MD -MP -MF types/$(DEPDIR)/libstrace_a-check-openat2.Tpo -c -o types/libstrace_a-check-openat2.obj `if test -f 'types/check-openat2.c'; then $(CYGPATH_W) 'types/check-openat2.c'; else $(CYGPATH_W) '$(srcdir)/types/check-openat2.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) types/$(DEPDIR)/libstrace_a-check-openat2.Tpo types/$(DEPDIR)/libstrace_a-check-openat2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='types/check-openat2.c' object='types/libstrace_a-check-openat2.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o types/libstrace_a-check-openat2.obj `if test -f 'types/check-openat2.c'; then $(CYGPATH_W) 'types/check-openat2.c'; else $(CYGPATH_W) '$(srcdir)/types/check-openat2.c'; fi` + +types/libstrace_a-check-rtnl_link.o: types/check-rtnl_link.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT types/libstrace_a-check-rtnl_link.o -MD -MP -MF types/$(DEPDIR)/libstrace_a-check-rtnl_link.Tpo -c -o types/libstrace_a-check-rtnl_link.o `test -f 'types/check-rtnl_link.c' || echo '$(srcdir)/'`types/check-rtnl_link.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) types/$(DEPDIR)/libstrace_a-check-rtnl_link.Tpo types/$(DEPDIR)/libstrace_a-check-rtnl_link.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='types/check-rtnl_link.c' object='types/libstrace_a-check-rtnl_link.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o types/libstrace_a-check-rtnl_link.o `test -f 'types/check-rtnl_link.c' || echo '$(srcdir)/'`types/check-rtnl_link.c + +types/libstrace_a-check-rtnl_link.obj: types/check-rtnl_link.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT types/libstrace_a-check-rtnl_link.obj -MD -MP -MF types/$(DEPDIR)/libstrace_a-check-rtnl_link.Tpo -c -o types/libstrace_a-check-rtnl_link.obj `if test -f 'types/check-rtnl_link.c'; then $(CYGPATH_W) 'types/check-rtnl_link.c'; else $(CYGPATH_W) '$(srcdir)/types/check-rtnl_link.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) types/$(DEPDIR)/libstrace_a-check-rtnl_link.Tpo types/$(DEPDIR)/libstrace_a-check-rtnl_link.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='types/check-rtnl_link.c' object='types/libstrace_a-check-rtnl_link.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o types/libstrace_a-check-rtnl_link.obj `if test -f 'types/check-rtnl_link.c'; then $(CYGPATH_W) 'types/check-rtnl_link.c'; else $(CYGPATH_W) '$(srcdir)/types/check-rtnl_link.c'; fi` + +types/libstrace_a-check-rtnl_mdb.o: types/check-rtnl_mdb.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT types/libstrace_a-check-rtnl_mdb.o -MD -MP -MF types/$(DEPDIR)/libstrace_a-check-rtnl_mdb.Tpo -c -o types/libstrace_a-check-rtnl_mdb.o `test -f 'types/check-rtnl_mdb.c' || echo '$(srcdir)/'`types/check-rtnl_mdb.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) types/$(DEPDIR)/libstrace_a-check-rtnl_mdb.Tpo types/$(DEPDIR)/libstrace_a-check-rtnl_mdb.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='types/check-rtnl_mdb.c' object='types/libstrace_a-check-rtnl_mdb.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o types/libstrace_a-check-rtnl_mdb.o `test -f 'types/check-rtnl_mdb.c' || echo '$(srcdir)/'`types/check-rtnl_mdb.c + +types/libstrace_a-check-rtnl_mdb.obj: types/check-rtnl_mdb.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT types/libstrace_a-check-rtnl_mdb.obj -MD -MP -MF types/$(DEPDIR)/libstrace_a-check-rtnl_mdb.Tpo -c -o types/libstrace_a-check-rtnl_mdb.obj `if test -f 'types/check-rtnl_mdb.c'; then $(CYGPATH_W) 'types/check-rtnl_mdb.c'; else $(CYGPATH_W) '$(srcdir)/types/check-rtnl_mdb.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) types/$(DEPDIR)/libstrace_a-check-rtnl_mdb.Tpo types/$(DEPDIR)/libstrace_a-check-rtnl_mdb.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='types/check-rtnl_mdb.c' object='types/libstrace_a-check-rtnl_mdb.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o types/libstrace_a-check-rtnl_mdb.obj `if test -f 'types/check-rtnl_mdb.c'; then $(CYGPATH_W) 'types/check-rtnl_mdb.c'; else $(CYGPATH_W) '$(srcdir)/types/check-rtnl_mdb.c'; fi` + +types/libstrace_a-check-rtnl_neightbl.o: types/check-rtnl_neightbl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT types/libstrace_a-check-rtnl_neightbl.o -MD -MP -MF types/$(DEPDIR)/libstrace_a-check-rtnl_neightbl.Tpo -c -o types/libstrace_a-check-rtnl_neightbl.o `test -f 'types/check-rtnl_neightbl.c' || echo '$(srcdir)/'`types/check-rtnl_neightbl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) types/$(DEPDIR)/libstrace_a-check-rtnl_neightbl.Tpo types/$(DEPDIR)/libstrace_a-check-rtnl_neightbl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='types/check-rtnl_neightbl.c' object='types/libstrace_a-check-rtnl_neightbl.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o types/libstrace_a-check-rtnl_neightbl.o `test -f 'types/check-rtnl_neightbl.c' || echo '$(srcdir)/'`types/check-rtnl_neightbl.c + +types/libstrace_a-check-rtnl_neightbl.obj: types/check-rtnl_neightbl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT types/libstrace_a-check-rtnl_neightbl.obj -MD -MP -MF types/$(DEPDIR)/libstrace_a-check-rtnl_neightbl.Tpo -c -o types/libstrace_a-check-rtnl_neightbl.obj `if test -f 'types/check-rtnl_neightbl.c'; then $(CYGPATH_W) 'types/check-rtnl_neightbl.c'; else $(CYGPATH_W) '$(srcdir)/types/check-rtnl_neightbl.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) types/$(DEPDIR)/libstrace_a-check-rtnl_neightbl.Tpo types/$(DEPDIR)/libstrace_a-check-rtnl_neightbl.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='types/check-rtnl_neightbl.c' object='types/libstrace_a-check-rtnl_neightbl.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o types/libstrace_a-check-rtnl_neightbl.obj `if test -f 'types/check-rtnl_neightbl.c'; then $(CYGPATH_W) 'types/check-rtnl_neightbl.c'; else $(CYGPATH_W) '$(srcdir)/types/check-rtnl_neightbl.c'; fi` + +types/libstrace_a-check-rtnl_route.o: types/check-rtnl_route.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT types/libstrace_a-check-rtnl_route.o -MD -MP -MF types/$(DEPDIR)/libstrace_a-check-rtnl_route.Tpo -c -o types/libstrace_a-check-rtnl_route.o `test -f 'types/check-rtnl_route.c' || echo '$(srcdir)/'`types/check-rtnl_route.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) types/$(DEPDIR)/libstrace_a-check-rtnl_route.Tpo types/$(DEPDIR)/libstrace_a-check-rtnl_route.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='types/check-rtnl_route.c' object='types/libstrace_a-check-rtnl_route.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o types/libstrace_a-check-rtnl_route.o `test -f 'types/check-rtnl_route.c' || echo '$(srcdir)/'`types/check-rtnl_route.c + +types/libstrace_a-check-rtnl_route.obj: types/check-rtnl_route.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT types/libstrace_a-check-rtnl_route.obj -MD -MP -MF types/$(DEPDIR)/libstrace_a-check-rtnl_route.Tpo -c -o types/libstrace_a-check-rtnl_route.obj `if test -f 'types/check-rtnl_route.c'; then $(CYGPATH_W) 'types/check-rtnl_route.c'; else $(CYGPATH_W) '$(srcdir)/types/check-rtnl_route.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) types/$(DEPDIR)/libstrace_a-check-rtnl_route.Tpo types/$(DEPDIR)/libstrace_a-check-rtnl_route.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='types/check-rtnl_route.c' object='types/libstrace_a-check-rtnl_route.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o types/libstrace_a-check-rtnl_route.obj `if test -f 'types/check-rtnl_route.c'; then $(CYGPATH_W) 'types/check-rtnl_route.c'; else $(CYGPATH_W) '$(srcdir)/types/check-rtnl_route.c'; fi` + +types/libstrace_a-check-tee.o: types/check-tee.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT types/libstrace_a-check-tee.o -MD -MP -MF types/$(DEPDIR)/libstrace_a-check-tee.Tpo -c -o types/libstrace_a-check-tee.o `test -f 'types/check-tee.c' || echo '$(srcdir)/'`types/check-tee.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) types/$(DEPDIR)/libstrace_a-check-tee.Tpo types/$(DEPDIR)/libstrace_a-check-tee.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='types/check-tee.c' object='types/libstrace_a-check-tee.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o types/libstrace_a-check-tee.o `test -f 'types/check-tee.c' || echo '$(srcdir)/'`types/check-tee.c + +types/libstrace_a-check-tee.obj: types/check-tee.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT types/libstrace_a-check-tee.obj -MD -MP -MF types/$(DEPDIR)/libstrace_a-check-tee.Tpo -c -o types/libstrace_a-check-tee.obj `if test -f 'types/check-tee.c'; then $(CYGPATH_W) 'types/check-tee.c'; else $(CYGPATH_W) '$(srcdir)/types/check-tee.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) types/$(DEPDIR)/libstrace_a-check-tee.Tpo types/$(DEPDIR)/libstrace_a-check-tee.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='types/check-tee.c' object='types/libstrace_a-check-tee.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o types/libstrace_a-check-tee.obj `if test -f 'types/check-tee.c'; then $(CYGPATH_W) 'types/check-tee.c'; else $(CYGPATH_W) '$(srcdir)/types/check-tee.c'; fi` + +types/libstrace_a-check-v4l2.o: types/check-v4l2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT types/libstrace_a-check-v4l2.o -MD -MP -MF types/$(DEPDIR)/libstrace_a-check-v4l2.Tpo -c -o types/libstrace_a-check-v4l2.o `test -f 'types/check-v4l2.c' || echo '$(srcdir)/'`types/check-v4l2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) types/$(DEPDIR)/libstrace_a-check-v4l2.Tpo types/$(DEPDIR)/libstrace_a-check-v4l2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='types/check-v4l2.c' object='types/libstrace_a-check-v4l2.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o types/libstrace_a-check-v4l2.o `test -f 'types/check-v4l2.c' || echo '$(srcdir)/'`types/check-v4l2.c + +types/libstrace_a-check-v4l2.obj: types/check-v4l2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT types/libstrace_a-check-v4l2.obj -MD -MP -MF types/$(DEPDIR)/libstrace_a-check-v4l2.Tpo -c -o types/libstrace_a-check-v4l2.obj `if test -f 'types/check-v4l2.c'; then $(CYGPATH_W) 'types/check-v4l2.c'; else $(CYGPATH_W) '$(srcdir)/types/check-v4l2.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) types/$(DEPDIR)/libstrace_a-check-v4l2.Tpo types/$(DEPDIR)/libstrace_a-check-v4l2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='types/check-v4l2.c' object='types/libstrace_a-check-v4l2.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o types/libstrace_a-check-v4l2.obj `if test -f 'types/check-v4l2.c'; then $(CYGPATH_W) 'types/check-v4l2.c'; else $(CYGPATH_W) '$(srcdir)/types/check-v4l2.c'; fi` + +libstrace_a-unwind.o: unwind.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-unwind.o -MD -MP -MF $(DEPDIR)/libstrace_a-unwind.Tpo -c -o libstrace_a-unwind.o `test -f 'unwind.c' || echo '$(srcdir)/'`unwind.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-unwind.Tpo $(DEPDIR)/libstrace_a-unwind.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unwind.c' object='libstrace_a-unwind.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-unwind.o `test -f 'unwind.c' || echo '$(srcdir)/'`unwind.c + +libstrace_a-unwind.obj: unwind.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-unwind.obj -MD -MP -MF $(DEPDIR)/libstrace_a-unwind.Tpo -c -o libstrace_a-unwind.obj `if test -f 'unwind.c'; then $(CYGPATH_W) 'unwind.c'; else $(CYGPATH_W) '$(srcdir)/unwind.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-unwind.Tpo $(DEPDIR)/libstrace_a-unwind.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unwind.c' object='libstrace_a-unwind.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-unwind.obj `if test -f 'unwind.c'; then $(CYGPATH_W) 'unwind.c'; else $(CYGPATH_W) '$(srcdir)/unwind.c'; fi` + +libstrace_a-unwind-libdw.o: unwind-libdw.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-unwind-libdw.o -MD -MP -MF $(DEPDIR)/libstrace_a-unwind-libdw.Tpo -c -o libstrace_a-unwind-libdw.o `test -f 'unwind-libdw.c' || echo '$(srcdir)/'`unwind-libdw.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-unwind-libdw.Tpo $(DEPDIR)/libstrace_a-unwind-libdw.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unwind-libdw.c' object='libstrace_a-unwind-libdw.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-unwind-libdw.o `test -f 'unwind-libdw.c' || echo '$(srcdir)/'`unwind-libdw.c + +libstrace_a-unwind-libdw.obj: unwind-libdw.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-unwind-libdw.obj -MD -MP -MF $(DEPDIR)/libstrace_a-unwind-libdw.Tpo -c -o libstrace_a-unwind-libdw.obj `if test -f 'unwind-libdw.c'; then $(CYGPATH_W) 'unwind-libdw.c'; else $(CYGPATH_W) '$(srcdir)/unwind-libdw.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-unwind-libdw.Tpo $(DEPDIR)/libstrace_a-unwind-libdw.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unwind-libdw.c' object='libstrace_a-unwind-libdw.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-unwind-libdw.obj `if test -f 'unwind-libdw.c'; then $(CYGPATH_W) 'unwind-libdw.c'; else $(CYGPATH_W) '$(srcdir)/unwind-libdw.c'; fi` + +libstrace_a-unwind-libunwind.o: unwind-libunwind.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-unwind-libunwind.o -MD -MP -MF $(DEPDIR)/libstrace_a-unwind-libunwind.Tpo -c -o libstrace_a-unwind-libunwind.o `test -f 'unwind-libunwind.c' || echo '$(srcdir)/'`unwind-libunwind.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-unwind-libunwind.Tpo $(DEPDIR)/libstrace_a-unwind-libunwind.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unwind-libunwind.c' object='libstrace_a-unwind-libunwind.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-unwind-libunwind.o `test -f 'unwind-libunwind.c' || echo '$(srcdir)/'`unwind-libunwind.c + +libstrace_a-unwind-libunwind.obj: unwind-libunwind.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-unwind-libunwind.obj -MD -MP -MF $(DEPDIR)/libstrace_a-unwind-libunwind.Tpo -c -o libstrace_a-unwind-libunwind.obj `if test -f 'unwind-libunwind.c'; then $(CYGPATH_W) 'unwind-libunwind.c'; else $(CYGPATH_W) '$(srcdir)/unwind-libunwind.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-unwind-libunwind.Tpo $(DEPDIR)/libstrace_a-unwind-libunwind.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unwind-libunwind.c' object='libstrace_a-unwind-libunwind.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-unwind-libunwind.obj `if test -f 'unwind-libunwind.c'; then $(CYGPATH_W) 'unwind-libunwind.c'; else $(CYGPATH_W) '$(srcdir)/unwind-libunwind.c'; fi` + +strace-strace.o: strace.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-strace.o -MD -MP -MF $(DEPDIR)/strace-strace.Tpo -c -o strace-strace.o `test -f 'strace.c' || echo '$(srcdir)/'`strace.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-strace.Tpo $(DEPDIR)/strace-strace.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='strace.c' object='strace-strace.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-strace.o `test -f 'strace.c' || echo '$(srcdir)/'`strace.c + +strace-strace.obj: strace.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-strace.obj -MD -MP -MF $(DEPDIR)/strace-strace.Tpo -c -o strace-strace.obj `if test -f 'strace.c'; then $(CYGPATH_W) 'strace.c'; else $(CYGPATH_W) '$(srcdir)/strace.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/strace-strace.Tpo $(DEPDIR)/strace-strace.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='strace.c' object='strace-strace.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-strace.obj `if test -f 'strace.c'; then $(CYGPATH_W) 'strace.c'; else $(CYGPATH_W) '$(srcdir)/strace.c'; fi` install-man1: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ @@ -7469,6 +8250,10 @@ dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) +dist-zstd: distdir + tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst + $(am__post_remove_distdir) + dist-tarZ: distdir @echo WARNING: "Support for distribution archives compressed with" \ "legacy program 'compress' is deprecated." >&2 @@ -7511,6 +8296,8 @@ distcheck: dist eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ + *.tar.zst*) \ + zstd -dc $(distdir).tar.zst | $(am__untar) ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) @@ -7526,7 +8313,7 @@ distcheck: dist $(DISTCHECK_CONFIGURE_FLAGS) \ --srcdir=../.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ @@ -7614,6 +8401,8 @@ clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f types/$(DEPDIR)/$(am__dirstamp) + -rm -f types/$(am__dirstamp) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @@ -7662,6 +8451,7 @@ distclean: distclean-recursive -rm -f ./$(DEPDIR)/libmpers_m32_a-fetch_struct_xfs_quotastat.Po -rm -f ./$(DEPDIR)/libmpers_m32_a-hdio.Po -rm -f ./$(DEPDIR)/libmpers_m32_a-ipc_msgctl.Po + -rm -f ./$(DEPDIR)/libmpers_m32_a-ipc_semctl.Po -rm -f ./$(DEPDIR)/libmpers_m32_a-ipc_shmctl.Po -rm -f ./$(DEPDIR)/libmpers_m32_a-loop.Po -rm -f ./$(DEPDIR)/libmpers_m32_a-mtd.Po @@ -7673,7 +8463,6 @@ distclean: distclean-recursive -rm -f ./$(DEPDIR)/libmpers_m32_a-print_sg_req_info.Po -rm -f ./$(DEPDIR)/libmpers_m32_a-print_sigevent.Po -rm -f ./$(DEPDIR)/libmpers_m32_a-print_time.Po - -rm -f ./$(DEPDIR)/libmpers_m32_a-print_timespec.Po -rm -f ./$(DEPDIR)/libmpers_m32_a-print_timeval.Po -rm -f ./$(DEPDIR)/libmpers_m32_a-printrusage.Po -rm -f ./$(DEPDIR)/libmpers_m32_a-printsiginfo.Po @@ -7702,6 +8491,7 @@ distclean: distclean-recursive -rm -f ./$(DEPDIR)/libmpers_mx32_a-fetch_struct_xfs_quotastat.Po -rm -f ./$(DEPDIR)/libmpers_mx32_a-hdio.Po -rm -f ./$(DEPDIR)/libmpers_mx32_a-ipc_msgctl.Po + -rm -f ./$(DEPDIR)/libmpers_mx32_a-ipc_semctl.Po -rm -f ./$(DEPDIR)/libmpers_mx32_a-ipc_shmctl.Po -rm -f ./$(DEPDIR)/libmpers_mx32_a-loop.Po -rm -f ./$(DEPDIR)/libmpers_mx32_a-mtd.Po @@ -7713,7 +8503,6 @@ distclean: distclean-recursive -rm -f ./$(DEPDIR)/libmpers_mx32_a-print_sg_req_info.Po -rm -f ./$(DEPDIR)/libmpers_mx32_a-print_sigevent.Po -rm -f ./$(DEPDIR)/libmpers_mx32_a-print_time.Po - -rm -f ./$(DEPDIR)/libmpers_mx32_a-print_timespec.Po -rm -f ./$(DEPDIR)/libmpers_mx32_a-print_timeval.Po -rm -f ./$(DEPDIR)/libmpers_mx32_a-printrusage.Po -rm -f ./$(DEPDIR)/libmpers_mx32_a-printsiginfo.Po @@ -7727,245 +8516,276 @@ distclean: distclean-recursive -rm -f ./$(DEPDIR)/libmpers_mx32_a-ustat.Po -rm -f ./$(DEPDIR)/libmpers_mx32_a-utime.Po -rm -f ./$(DEPDIR)/libmpers_mx32_a-v4l2.Po + -rm -f ./$(DEPDIR)/libstrace_a-access.Po + -rm -f ./$(DEPDIR)/libstrace_a-affinity.Po + -rm -f ./$(DEPDIR)/libstrace_a-aio.Po + -rm -f ./$(DEPDIR)/libstrace_a-alpha.Po + -rm -f ./$(DEPDIR)/libstrace_a-basic_filters.Po + -rm -f ./$(DEPDIR)/libstrace_a-bind.Po + -rm -f ./$(DEPDIR)/libstrace_a-bjm.Po + -rm -f ./$(DEPDIR)/libstrace_a-block.Po + -rm -f ./$(DEPDIR)/libstrace_a-bpf.Po + -rm -f ./$(DEPDIR)/libstrace_a-bpf_attr_check.Po + -rm -f ./$(DEPDIR)/libstrace_a-bpf_filter.Po + -rm -f ./$(DEPDIR)/libstrace_a-bpf_seccomp_filter.Po + -rm -f ./$(DEPDIR)/libstrace_a-bpf_sock_filter.Po + -rm -f ./$(DEPDIR)/libstrace_a-btrfs.Po + -rm -f ./$(DEPDIR)/libstrace_a-cacheflush.Po + -rm -f ./$(DEPDIR)/libstrace_a-capability.Po + -rm -f ./$(DEPDIR)/libstrace_a-chdir.Po + -rm -f ./$(DEPDIR)/libstrace_a-chmod.Po + -rm -f ./$(DEPDIR)/libstrace_a-clone.Po + -rm -f ./$(DEPDIR)/libstrace_a-close_range.Po + -rm -f ./$(DEPDIR)/libstrace_a-copy_file_range.Po + -rm -f ./$(DEPDIR)/libstrace_a-count.Po + -rm -f ./$(DEPDIR)/libstrace_a-delay.Po + -rm -f ./$(DEPDIR)/libstrace_a-desc.Po + -rm -f ./$(DEPDIR)/libstrace_a-dirent.Po + -rm -f ./$(DEPDIR)/libstrace_a-dirent64.Po + -rm -f ./$(DEPDIR)/libstrace_a-dirent_types.Po + -rm -f ./$(DEPDIR)/libstrace_a-dm.Po + -rm -f ./$(DEPDIR)/libstrace_a-dup.Po + -rm -f ./$(DEPDIR)/libstrace_a-dyxlat.Po + -rm -f ./$(DEPDIR)/libstrace_a-epoll.Po + -rm -f ./$(DEPDIR)/libstrace_a-error_prints.Po + -rm -f ./$(DEPDIR)/libstrace_a-evdev.Po + -rm -f ./$(DEPDIR)/libstrace_a-evdev_mpers.Po + -rm -f ./$(DEPDIR)/libstrace_a-eventfd.Po + -rm -f ./$(DEPDIR)/libstrace_a-execve.Po + -rm -f ./$(DEPDIR)/libstrace_a-fadvise.Po + -rm -f ./$(DEPDIR)/libstrace_a-fallocate.Po + -rm -f ./$(DEPDIR)/libstrace_a-fanotify.Po + -rm -f ./$(DEPDIR)/libstrace_a-fchownat.Po + -rm -f ./$(DEPDIR)/libstrace_a-fcntl.Po + -rm -f ./$(DEPDIR)/libstrace_a-fetch_bpf_fprog.Po -rm -f ./$(DEPDIR)/libstrace_a-fetch_indirect_syscall_args.Po + -rm -f ./$(DEPDIR)/libstrace_a-fetch_struct_flock.Po + -rm -f ./$(DEPDIR)/libstrace_a-fetch_struct_keyctl_kdf_params.Po + -rm -f ./$(DEPDIR)/libstrace_a-fetch_struct_mmsghdr.Po + -rm -f ./$(DEPDIR)/libstrace_a-fetch_struct_msghdr.Po + -rm -f ./$(DEPDIR)/libstrace_a-fetch_struct_stat.Po + -rm -f ./$(DEPDIR)/libstrace_a-fetch_struct_stat64.Po + -rm -f ./$(DEPDIR)/libstrace_a-fetch_struct_statfs.Po + -rm -f ./$(DEPDIR)/libstrace_a-fetch_struct_xfs_quotastat.Po + -rm -f ./$(DEPDIR)/libstrace_a-file_handle.Po + -rm -f ./$(DEPDIR)/libstrace_a-file_ioctl.Po + -rm -f ./$(DEPDIR)/libstrace_a-filter_qualify.Po + -rm -f ./$(DEPDIR)/libstrace_a-filter_seccomp.Po + -rm -f ./$(DEPDIR)/libstrace_a-flock.Po + -rm -f ./$(DEPDIR)/libstrace_a-fs_x_ioctl.Po + -rm -f ./$(DEPDIR)/libstrace_a-fsconfig.Po + -rm -f ./$(DEPDIR)/libstrace_a-fsmount.Po + -rm -f ./$(DEPDIR)/libstrace_a-fsopen.Po + -rm -f ./$(DEPDIR)/libstrace_a-fspick.Po -rm -f ./$(DEPDIR)/libstrace_a-fstatfs.Po -rm -f ./$(DEPDIR)/libstrace_a-fstatfs64.Po + -rm -f ./$(DEPDIR)/libstrace_a-futex.Po + -rm -f ./$(DEPDIR)/libstrace_a-get_personality.Po + -rm -f ./$(DEPDIR)/libstrace_a-get_robust_list.Po + -rm -f ./$(DEPDIR)/libstrace_a-getcpu.Po + -rm -f ./$(DEPDIR)/libstrace_a-getcwd.Po -rm -f ./$(DEPDIR)/libstrace_a-getpagesize.Po + -rm -f ./$(DEPDIR)/libstrace_a-getpid.Po + -rm -f ./$(DEPDIR)/libstrace_a-getrandom.Po + -rm -f ./$(DEPDIR)/libstrace_a-hdio.Po + -rm -f ./$(DEPDIR)/libstrace_a-hostname.Po + -rm -f ./$(DEPDIR)/libstrace_a-inotify.Po + -rm -f ./$(DEPDIR)/libstrace_a-inotify_ioctl.Po + -rm -f ./$(DEPDIR)/libstrace_a-io.Po + -rm -f ./$(DEPDIR)/libstrace_a-io_uring.Po + -rm -f ./$(DEPDIR)/libstrace_a-ioctl.Po + -rm -f ./$(DEPDIR)/libstrace_a-ioperm.Po + -rm -f ./$(DEPDIR)/libstrace_a-iopl.Po + -rm -f ./$(DEPDIR)/libstrace_a-ioprio.Po -rm -f ./$(DEPDIR)/libstrace_a-ipc.Po + -rm -f ./$(DEPDIR)/libstrace_a-ipc_msg.Po + -rm -f ./$(DEPDIR)/libstrace_a-ipc_msgctl.Po + -rm -f ./$(DEPDIR)/libstrace_a-ipc_sem.Po + -rm -f ./$(DEPDIR)/libstrace_a-ipc_semctl.Po + -rm -f ./$(DEPDIR)/libstrace_a-ipc_shm.Po + -rm -f ./$(DEPDIR)/libstrace_a-ipc_shmctl.Po + -rm -f ./$(DEPDIR)/libstrace_a-kcmp.Po + -rm -f ./$(DEPDIR)/libstrace_a-kexec.Po + -rm -f ./$(DEPDIR)/libstrace_a-keyctl.Po + -rm -f ./$(DEPDIR)/libstrace_a-kvm.Po + -rm -f ./$(DEPDIR)/libstrace_a-ldt.Po + -rm -f ./$(DEPDIR)/libstrace_a-link.Po + -rm -f ./$(DEPDIR)/libstrace_a-listen.Po + -rm -f ./$(DEPDIR)/libstrace_a-lookup_dcookie.Po + -rm -f ./$(DEPDIR)/libstrace_a-loop.Po + -rm -f ./$(DEPDIR)/libstrace_a-lseek.Po + -rm -f ./$(DEPDIR)/libstrace_a-mem.Po + -rm -f ./$(DEPDIR)/libstrace_a-membarrier.Po + -rm -f ./$(DEPDIR)/libstrace_a-memfd_create.Po + -rm -f ./$(DEPDIR)/libstrace_a-mknod.Po -rm -f ./$(DEPDIR)/libstrace_a-mmap_cache.Po + -rm -f ./$(DEPDIR)/libstrace_a-mmap_notify.Po + -rm -f ./$(DEPDIR)/libstrace_a-mmsghdr.Po + -rm -f ./$(DEPDIR)/libstrace_a-mount.Po + -rm -f ./$(DEPDIR)/libstrace_a-move_mount.Po + -rm -f ./$(DEPDIR)/libstrace_a-mq.Po + -rm -f ./$(DEPDIR)/libstrace_a-msghdr.Po + -rm -f ./$(DEPDIR)/libstrace_a-mtd.Po + -rm -f ./$(DEPDIR)/libstrace_a-nbd_ioctl.Po + -rm -f ./$(DEPDIR)/libstrace_a-net.Po + -rm -f ./$(DEPDIR)/libstrace_a-netlink.Po + -rm -f ./$(DEPDIR)/libstrace_a-netlink_crypto.Po + -rm -f ./$(DEPDIR)/libstrace_a-netlink_inet_diag.Po + -rm -f ./$(DEPDIR)/libstrace_a-netlink_kobject_uevent.Po + -rm -f ./$(DEPDIR)/libstrace_a-netlink_netfilter.Po + -rm -f ./$(DEPDIR)/libstrace_a-netlink_netlink_diag.Po + -rm -f ./$(DEPDIR)/libstrace_a-netlink_packet_diag.Po + -rm -f ./$(DEPDIR)/libstrace_a-netlink_route.Po + -rm -f ./$(DEPDIR)/libstrace_a-netlink_selinux.Po + -rm -f ./$(DEPDIR)/libstrace_a-netlink_smc_diag.Po + -rm -f ./$(DEPDIR)/libstrace_a-netlink_sock_diag.Po + -rm -f ./$(DEPDIR)/libstrace_a-netlink_unix_diag.Po + -rm -f ./$(DEPDIR)/libstrace_a-nlattr.Po + -rm -f ./$(DEPDIR)/libstrace_a-nsfs.Po + -rm -f ./$(DEPDIR)/libstrace_a-numa.Po + -rm -f ./$(DEPDIR)/libstrace_a-number_set.Po + -rm -f ./$(DEPDIR)/libstrace_a-oldstat.Po + -rm -f ./$(DEPDIR)/libstrace_a-open.Po + -rm -f ./$(DEPDIR)/libstrace_a-open_tree.Po + -rm -f ./$(DEPDIR)/libstrace_a-or1k_atomic.Po + -rm -f ./$(DEPDIR)/libstrace_a-pathtrace.Po + -rm -f ./$(DEPDIR)/libstrace_a-perf.Po + -rm -f ./$(DEPDIR)/libstrace_a-perf_ioctl.Po + -rm -f ./$(DEPDIR)/libstrace_a-personality.Po + -rm -f ./$(DEPDIR)/libstrace_a-pidfd_getfd.Po + -rm -f ./$(DEPDIR)/libstrace_a-pidfd_open.Po + -rm -f ./$(DEPDIR)/libstrace_a-pidns.Po + -rm -f ./$(DEPDIR)/libstrace_a-pkeys.Po + -rm -f ./$(DEPDIR)/libstrace_a-poll.Po + -rm -f ./$(DEPDIR)/libstrace_a-prctl.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_aio_sigset.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_dev_t.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_group_req.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_ifindex.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_instruction_pointer.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_kernel_version.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_mac.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_mq_attr.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_msgbuf.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_sg_req_info.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_sigevent.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_statfs.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_struct_stat.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_syscall_number.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_time.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_timespec32.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_timespec64.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_timeval.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_timeval64.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_timex.Po + -rm -f ./$(DEPDIR)/libstrace_a-printmode.Po + -rm -f ./$(DEPDIR)/libstrace_a-printrusage.Po + -rm -f ./$(DEPDIR)/libstrace_a-printsiginfo.Po + -rm -f ./$(DEPDIR)/libstrace_a-process.Po + -rm -f ./$(DEPDIR)/libstrace_a-process_vm.Po + -rm -f ./$(DEPDIR)/libstrace_a-ptp.Po + -rm -f ./$(DEPDIR)/libstrace_a-ptrace_syscall_info.Po + -rm -f ./$(DEPDIR)/libstrace_a-quota.Po + -rm -f ./$(DEPDIR)/libstrace_a-random_ioctl.Po + -rm -f ./$(DEPDIR)/libstrace_a-readahead.Po + -rm -f ./$(DEPDIR)/libstrace_a-readlink.Po + -rm -f ./$(DEPDIR)/libstrace_a-reboot.Po + -rm -f ./$(DEPDIR)/libstrace_a-renameat.Po + -rm -f ./$(DEPDIR)/libstrace_a-resource.Po + -rm -f ./$(DEPDIR)/libstrace_a-retval.Po + -rm -f ./$(DEPDIR)/libstrace_a-riscv.Po + -rm -f ./$(DEPDIR)/libstrace_a-rt_sigframe.Po + -rm -f ./$(DEPDIR)/libstrace_a-rt_sigreturn.Po + -rm -f ./$(DEPDIR)/libstrace_a-rtc.Po + -rm -f ./$(DEPDIR)/libstrace_a-rtnl_addr.Po + -rm -f ./$(DEPDIR)/libstrace_a-rtnl_addrlabel.Po + -rm -f ./$(DEPDIR)/libstrace_a-rtnl_dcb.Po + -rm -f ./$(DEPDIR)/libstrace_a-rtnl_link.Po + -rm -f ./$(DEPDIR)/libstrace_a-rtnl_mdb.Po + -rm -f ./$(DEPDIR)/libstrace_a-rtnl_neigh.Po + -rm -f ./$(DEPDIR)/libstrace_a-rtnl_neightbl.Po + -rm -f ./$(DEPDIR)/libstrace_a-rtnl_netconf.Po + -rm -f ./$(DEPDIR)/libstrace_a-rtnl_nsid.Po + -rm -f ./$(DEPDIR)/libstrace_a-rtnl_route.Po + -rm -f ./$(DEPDIR)/libstrace_a-rtnl_rule.Po + -rm -f ./$(DEPDIR)/libstrace_a-rtnl_tc.Po + -rm -f ./$(DEPDIR)/libstrace_a-rtnl_tc_action.Po + -rm -f ./$(DEPDIR)/libstrace_a-s390.Po + -rm -f ./$(DEPDIR)/libstrace_a-sched.Po + -rm -f ./$(DEPDIR)/libstrace_a-scsi.Po + -rm -f ./$(DEPDIR)/libstrace_a-seccomp.Po + -rm -f ./$(DEPDIR)/libstrace_a-sendfile.Po + -rm -f ./$(DEPDIR)/libstrace_a-sg_io_v3.Po + -rm -f ./$(DEPDIR)/libstrace_a-sg_io_v4.Po + -rm -f ./$(DEPDIR)/libstrace_a-shutdown.Po + -rm -f ./$(DEPDIR)/libstrace_a-sigaltstack.Po + -rm -f ./$(DEPDIR)/libstrace_a-signal.Po + -rm -f ./$(DEPDIR)/libstrace_a-signalfd.Po -rm -f ./$(DEPDIR)/libstrace_a-sigreturn.Po + -rm -f ./$(DEPDIR)/libstrace_a-sock.Po + -rm -f ./$(DEPDIR)/libstrace_a-sockaddr.Po -rm -f ./$(DEPDIR)/libstrace_a-socketcall.Po + -rm -f ./$(DEPDIR)/libstrace_a-socketutils.Po + -rm -f ./$(DEPDIR)/libstrace_a-sparc.Po + -rm -f ./$(DEPDIR)/libstrace_a-sram_alloc.Po + -rm -f ./$(DEPDIR)/libstrace_a-stage_output.Po + -rm -f ./$(DEPDIR)/libstrace_a-stat.Po + -rm -f ./$(DEPDIR)/libstrace_a-stat64.Po -rm -f ./$(DEPDIR)/libstrace_a-statfs.Po -rm -f ./$(DEPDIR)/libstrace_a-statfs64.Po + -rm -f ./$(DEPDIR)/libstrace_a-statx.Po + -rm -f ./$(DEPDIR)/libstrace_a-string_to_uint.Po + -rm -f ./$(DEPDIR)/libstrace_a-swapon.Po -rm -f ./$(DEPDIR)/libstrace_a-sync_file_range.Po -rm -f ./$(DEPDIR)/libstrace_a-sync_file_range2.Po + -rm -f ./$(DEPDIR)/libstrace_a-syscall.Po + -rm -f ./$(DEPDIR)/libstrace_a-sysctl.Po + -rm -f ./$(DEPDIR)/libstrace_a-sysinfo.Po + -rm -f ./$(DEPDIR)/libstrace_a-syslog.Po + -rm -f ./$(DEPDIR)/libstrace_a-sysmips.Po + -rm -f ./$(DEPDIR)/libstrace_a-tee.Po + -rm -f ./$(DEPDIR)/libstrace_a-term.Po + -rm -f ./$(DEPDIR)/libstrace_a-time.Po + -rm -f ./$(DEPDIR)/libstrace_a-times.Po + -rm -f ./$(DEPDIR)/libstrace_a-trie.Po + -rm -f ./$(DEPDIR)/libstrace_a-truncate.Po + -rm -f ./$(DEPDIR)/libstrace_a-ubi.Po + -rm -f ./$(DEPDIR)/libstrace_a-ucopy.Po + -rm -f ./$(DEPDIR)/libstrace_a-uid.Po + -rm -f ./$(DEPDIR)/libstrace_a-uid16.Po + -rm -f ./$(DEPDIR)/libstrace_a-umask.Po + -rm -f ./$(DEPDIR)/libstrace_a-umount.Po + -rm -f ./$(DEPDIR)/libstrace_a-uname.Po + -rm -f ./$(DEPDIR)/libstrace_a-unwind-libdw.Po + -rm -f ./$(DEPDIR)/libstrace_a-unwind-libunwind.Po + -rm -f ./$(DEPDIR)/libstrace_a-unwind.Po -rm -f ./$(DEPDIR)/libstrace_a-upeek.Po -rm -f ./$(DEPDIR)/libstrace_a-upoke.Po - -rm -f ./$(DEPDIR)/strace-access.Po - -rm -f ./$(DEPDIR)/strace-affinity.Po - -rm -f ./$(DEPDIR)/strace-aio.Po - -rm -f ./$(DEPDIR)/strace-alpha.Po - -rm -f ./$(DEPDIR)/strace-basic_filters.Po - -rm -f ./$(DEPDIR)/strace-bind.Po - -rm -f ./$(DEPDIR)/strace-bjm.Po - -rm -f ./$(DEPDIR)/strace-block.Po - -rm -f ./$(DEPDIR)/strace-bpf.Po - -rm -f ./$(DEPDIR)/strace-bpf_attr_check.Po - -rm -f ./$(DEPDIR)/strace-bpf_filter.Po - -rm -f ./$(DEPDIR)/strace-bpf_seccomp_filter.Po - -rm -f ./$(DEPDIR)/strace-bpf_sock_filter.Po - -rm -f ./$(DEPDIR)/strace-btrfs.Po - -rm -f ./$(DEPDIR)/strace-cacheflush.Po - -rm -f ./$(DEPDIR)/strace-capability.Po - -rm -f ./$(DEPDIR)/strace-chdir.Po - -rm -f ./$(DEPDIR)/strace-chmod.Po - -rm -f ./$(DEPDIR)/strace-clone.Po - -rm -f ./$(DEPDIR)/strace-copy_file_range.Po - -rm -f ./$(DEPDIR)/strace-count.Po - -rm -f ./$(DEPDIR)/strace-delay.Po - -rm -f ./$(DEPDIR)/strace-desc.Po - -rm -f ./$(DEPDIR)/strace-dirent.Po - -rm -f ./$(DEPDIR)/strace-dirent64.Po - -rm -f ./$(DEPDIR)/strace-dm.Po - -rm -f ./$(DEPDIR)/strace-dyxlat.Po - -rm -f ./$(DEPDIR)/strace-epoll.Po - -rm -f ./$(DEPDIR)/strace-error_prints.Po - -rm -f ./$(DEPDIR)/strace-evdev.Po - -rm -f ./$(DEPDIR)/strace-evdev_mpers.Po - -rm -f ./$(DEPDIR)/strace-eventfd.Po - -rm -f ./$(DEPDIR)/strace-execve.Po - -rm -f ./$(DEPDIR)/strace-fadvise.Po - -rm -f ./$(DEPDIR)/strace-fallocate.Po - -rm -f ./$(DEPDIR)/strace-fanotify.Po - -rm -f ./$(DEPDIR)/strace-fchownat.Po - -rm -f ./$(DEPDIR)/strace-fcntl.Po - -rm -f ./$(DEPDIR)/strace-fetch_bpf_fprog.Po - -rm -f ./$(DEPDIR)/strace-fetch_struct_flock.Po - -rm -f ./$(DEPDIR)/strace-fetch_struct_keyctl_kdf_params.Po - -rm -f ./$(DEPDIR)/strace-fetch_struct_mmsghdr.Po - -rm -f ./$(DEPDIR)/strace-fetch_struct_msghdr.Po - -rm -f ./$(DEPDIR)/strace-fetch_struct_stat.Po - -rm -f ./$(DEPDIR)/strace-fetch_struct_stat64.Po - -rm -f ./$(DEPDIR)/strace-fetch_struct_statfs.Po - -rm -f ./$(DEPDIR)/strace-fetch_struct_xfs_quotastat.Po - -rm -f ./$(DEPDIR)/strace-file_handle.Po - -rm -f ./$(DEPDIR)/strace-file_ioctl.Po - -rm -f ./$(DEPDIR)/strace-filter_qualify.Po - -rm -f ./$(DEPDIR)/strace-flock.Po - -rm -f ./$(DEPDIR)/strace-fs_x_ioctl.Po - -rm -f ./$(DEPDIR)/strace-futex.Po - -rm -f ./$(DEPDIR)/strace-get_personality.Po - -rm -f ./$(DEPDIR)/strace-get_robust_list.Po - -rm -f ./$(DEPDIR)/strace-getcpu.Po - -rm -f ./$(DEPDIR)/strace-getcwd.Po - -rm -f ./$(DEPDIR)/strace-getrandom.Po - -rm -f ./$(DEPDIR)/strace-hdio.Po - -rm -f ./$(DEPDIR)/strace-hostname.Po - -rm -f ./$(DEPDIR)/strace-inotify.Po - -rm -f ./$(DEPDIR)/strace-inotify_ioctl.Po - -rm -f ./$(DEPDIR)/strace-io.Po - -rm -f ./$(DEPDIR)/strace-io_uring.Po - -rm -f ./$(DEPDIR)/strace-ioctl.Po - -rm -f ./$(DEPDIR)/strace-ioperm.Po - -rm -f ./$(DEPDIR)/strace-iopl.Po - -rm -f ./$(DEPDIR)/strace-ioprio.Po - -rm -f ./$(DEPDIR)/strace-ipc_msg.Po - -rm -f ./$(DEPDIR)/strace-ipc_msgctl.Po - -rm -f ./$(DEPDIR)/strace-ipc_sem.Po - -rm -f ./$(DEPDIR)/strace-ipc_shm.Po - -rm -f ./$(DEPDIR)/strace-ipc_shmctl.Po - -rm -f ./$(DEPDIR)/strace-kcmp.Po - -rm -f ./$(DEPDIR)/strace-kexec.Po - -rm -f ./$(DEPDIR)/strace-keyctl.Po - -rm -f ./$(DEPDIR)/strace-kvm.Po - -rm -f ./$(DEPDIR)/strace-ldt.Po - -rm -f ./$(DEPDIR)/strace-link.Po - -rm -f ./$(DEPDIR)/strace-listen.Po - -rm -f ./$(DEPDIR)/strace-lookup_dcookie.Po - -rm -f ./$(DEPDIR)/strace-loop.Po - -rm -f ./$(DEPDIR)/strace-lseek.Po - -rm -f ./$(DEPDIR)/strace-mem.Po - -rm -f ./$(DEPDIR)/strace-membarrier.Po - -rm -f ./$(DEPDIR)/strace-memfd_create.Po - -rm -f ./$(DEPDIR)/strace-mknod.Po - -rm -f ./$(DEPDIR)/strace-mmap_notify.Po - -rm -f ./$(DEPDIR)/strace-mmsghdr.Po - -rm -f ./$(DEPDIR)/strace-mount.Po - -rm -f ./$(DEPDIR)/strace-mq.Po - -rm -f ./$(DEPDIR)/strace-msghdr.Po - -rm -f ./$(DEPDIR)/strace-mtd.Po - -rm -f ./$(DEPDIR)/strace-nbd_ioctl.Po - -rm -f ./$(DEPDIR)/strace-net.Po - -rm -f ./$(DEPDIR)/strace-netlink.Po - -rm -f ./$(DEPDIR)/strace-netlink_crypto.Po - -rm -f ./$(DEPDIR)/strace-netlink_inet_diag.Po - -rm -f ./$(DEPDIR)/strace-netlink_kobject_uevent.Po - -rm -f ./$(DEPDIR)/strace-netlink_netfilter.Po - -rm -f ./$(DEPDIR)/strace-netlink_netlink_diag.Po - -rm -f ./$(DEPDIR)/strace-netlink_packet_diag.Po - -rm -f ./$(DEPDIR)/strace-netlink_route.Po - -rm -f ./$(DEPDIR)/strace-netlink_selinux.Po - -rm -f ./$(DEPDIR)/strace-netlink_smc_diag.Po - -rm -f ./$(DEPDIR)/strace-netlink_sock_diag.Po - -rm -f ./$(DEPDIR)/strace-netlink_unix_diag.Po - -rm -f ./$(DEPDIR)/strace-nlattr.Po - -rm -f ./$(DEPDIR)/strace-nsfs.Po - -rm -f ./$(DEPDIR)/strace-numa.Po - -rm -f ./$(DEPDIR)/strace-number_set.Po - -rm -f ./$(DEPDIR)/strace-oldstat.Po - -rm -f ./$(DEPDIR)/strace-open.Po - -rm -f ./$(DEPDIR)/strace-or1k_atomic.Po - -rm -f ./$(DEPDIR)/strace-pathtrace.Po - -rm -f ./$(DEPDIR)/strace-perf.Po - -rm -f ./$(DEPDIR)/strace-perf_ioctl.Po - -rm -f ./$(DEPDIR)/strace-personality.Po - -rm -f ./$(DEPDIR)/strace-pkeys.Po - -rm -f ./$(DEPDIR)/strace-poll.Po - -rm -f ./$(DEPDIR)/strace-prctl.Po - -rm -f ./$(DEPDIR)/strace-print_aio_sigset.Po - -rm -f ./$(DEPDIR)/strace-print_dev_t.Po - -rm -f ./$(DEPDIR)/strace-print_group_req.Po - -rm -f ./$(DEPDIR)/strace-print_ifindex.Po - -rm -f ./$(DEPDIR)/strace-print_instruction_pointer.Po - -rm -f ./$(DEPDIR)/strace-print_kernel_version.Po - -rm -f ./$(DEPDIR)/strace-print_mac.Po - -rm -f ./$(DEPDIR)/strace-print_mq_attr.Po - -rm -f ./$(DEPDIR)/strace-print_msgbuf.Po - -rm -f ./$(DEPDIR)/strace-print_sg_req_info.Po - -rm -f ./$(DEPDIR)/strace-print_sigevent.Po - -rm -f ./$(DEPDIR)/strace-print_statfs.Po - -rm -f ./$(DEPDIR)/strace-print_struct_stat.Po - -rm -f ./$(DEPDIR)/strace-print_time.Po - -rm -f ./$(DEPDIR)/strace-print_timespec.Po - -rm -f ./$(DEPDIR)/strace-print_timespec32.Po - -rm -f ./$(DEPDIR)/strace-print_timespec64.Po - -rm -f ./$(DEPDIR)/strace-print_timeval.Po - -rm -f ./$(DEPDIR)/strace-print_timeval64.Po - -rm -f ./$(DEPDIR)/strace-print_timex.Po - -rm -f ./$(DEPDIR)/strace-printmode.Po - -rm -f ./$(DEPDIR)/strace-printrusage.Po - -rm -f ./$(DEPDIR)/strace-printsiginfo.Po - -rm -f ./$(DEPDIR)/strace-process.Po - -rm -f ./$(DEPDIR)/strace-process_vm.Po - -rm -f ./$(DEPDIR)/strace-ptp.Po - -rm -f ./$(DEPDIR)/strace-ptrace_syscall_info.Po - -rm -f ./$(DEPDIR)/strace-quota.Po - -rm -f ./$(DEPDIR)/strace-random_ioctl.Po - -rm -f ./$(DEPDIR)/strace-readahead.Po - -rm -f ./$(DEPDIR)/strace-readlink.Po - -rm -f ./$(DEPDIR)/strace-reboot.Po - -rm -f ./$(DEPDIR)/strace-renameat.Po - -rm -f ./$(DEPDIR)/strace-resource.Po - -rm -f ./$(DEPDIR)/strace-retval.Po - -rm -f ./$(DEPDIR)/strace-riscv.Po - -rm -f ./$(DEPDIR)/strace-rt_sigframe.Po - -rm -f ./$(DEPDIR)/strace-rt_sigreturn.Po - -rm -f ./$(DEPDIR)/strace-rtc.Po - -rm -f ./$(DEPDIR)/strace-rtnl_addr.Po - -rm -f ./$(DEPDIR)/strace-rtnl_addrlabel.Po - -rm -f ./$(DEPDIR)/strace-rtnl_dcb.Po - -rm -f ./$(DEPDIR)/strace-rtnl_link.Po - -rm -f ./$(DEPDIR)/strace-rtnl_mdb.Po - -rm -f ./$(DEPDIR)/strace-rtnl_neigh.Po - -rm -f ./$(DEPDIR)/strace-rtnl_neightbl.Po - -rm -f ./$(DEPDIR)/strace-rtnl_netconf.Po - -rm -f ./$(DEPDIR)/strace-rtnl_nsid.Po - -rm -f ./$(DEPDIR)/strace-rtnl_route.Po - -rm -f ./$(DEPDIR)/strace-rtnl_rule.Po - -rm -f ./$(DEPDIR)/strace-rtnl_tc.Po - -rm -f ./$(DEPDIR)/strace-rtnl_tc_action.Po - -rm -f ./$(DEPDIR)/strace-s390.Po - -rm -f ./$(DEPDIR)/strace-sched.Po - -rm -f ./$(DEPDIR)/strace-scsi.Po - -rm -f ./$(DEPDIR)/strace-seccomp.Po - -rm -f ./$(DEPDIR)/strace-sendfile.Po - -rm -f ./$(DEPDIR)/strace-sg_io_v3.Po - -rm -f ./$(DEPDIR)/strace-sg_io_v4.Po - -rm -f ./$(DEPDIR)/strace-shutdown.Po - -rm -f ./$(DEPDIR)/strace-sigaltstack.Po - -rm -f ./$(DEPDIR)/strace-signal.Po - -rm -f ./$(DEPDIR)/strace-signalfd.Po - -rm -f ./$(DEPDIR)/strace-sock.Po - -rm -f ./$(DEPDIR)/strace-sockaddr.Po - -rm -f ./$(DEPDIR)/strace-socketutils.Po - -rm -f ./$(DEPDIR)/strace-sparc.Po - -rm -f ./$(DEPDIR)/strace-sram_alloc.Po - -rm -f ./$(DEPDIR)/strace-stat.Po - -rm -f ./$(DEPDIR)/strace-stat64.Po - -rm -f ./$(DEPDIR)/strace-statfs.Po - -rm -f ./$(DEPDIR)/strace-statx.Po + -rm -f ./$(DEPDIR)/libstrace_a-userfaultfd.Po + -rm -f ./$(DEPDIR)/libstrace_a-ustat.Po + -rm -f ./$(DEPDIR)/libstrace_a-util.Po + -rm -f ./$(DEPDIR)/libstrace_a-utime.Po + -rm -f ./$(DEPDIR)/libstrace_a-utimes.Po + -rm -f ./$(DEPDIR)/libstrace_a-v4l2.Po + -rm -f ./$(DEPDIR)/libstrace_a-wait.Po + -rm -f ./$(DEPDIR)/libstrace_a-watchdog_ioctl.Po + -rm -f ./$(DEPDIR)/libstrace_a-xattr.Po + -rm -f ./$(DEPDIR)/libstrace_a-xgetdents.Po + -rm -f ./$(DEPDIR)/libstrace_a-xlat.Po + -rm -f ./$(DEPDIR)/libstrace_a-xmalloc.Po -rm -f ./$(DEPDIR)/strace-strace.Po - -rm -f ./$(DEPDIR)/strace-string_to_uint.Po - -rm -f ./$(DEPDIR)/strace-swapon.Po - -rm -f ./$(DEPDIR)/strace-syscall.Po - -rm -f ./$(DEPDIR)/strace-sysctl.Po - -rm -f ./$(DEPDIR)/strace-sysinfo.Po - -rm -f ./$(DEPDIR)/strace-syslog.Po - -rm -f ./$(DEPDIR)/strace-sysmips.Po - -rm -f ./$(DEPDIR)/strace-term.Po - -rm -f ./$(DEPDIR)/strace-time.Po - -rm -f ./$(DEPDIR)/strace-times.Po - -rm -f ./$(DEPDIR)/strace-truncate.Po - -rm -f ./$(DEPDIR)/strace-ubi.Po - -rm -f ./$(DEPDIR)/strace-ucopy.Po - -rm -f ./$(DEPDIR)/strace-uid.Po - -rm -f ./$(DEPDIR)/strace-uid16.Po - -rm -f ./$(DEPDIR)/strace-umask.Po - -rm -f ./$(DEPDIR)/strace-umount.Po - -rm -f ./$(DEPDIR)/strace-uname.Po - -rm -f ./$(DEPDIR)/strace-unwind-libdw.Po - -rm -f ./$(DEPDIR)/strace-unwind-libunwind.Po - -rm -f ./$(DEPDIR)/strace-unwind.Po - -rm -f ./$(DEPDIR)/strace-userfaultfd.Po - -rm -f ./$(DEPDIR)/strace-ustat.Po - -rm -f ./$(DEPDIR)/strace-util.Po - -rm -f ./$(DEPDIR)/strace-utime.Po - -rm -f ./$(DEPDIR)/strace-utimes.Po - -rm -f ./$(DEPDIR)/strace-v4l2.Po - -rm -f ./$(DEPDIR)/strace-wait.Po - -rm -f ./$(DEPDIR)/strace-xattr.Po - -rm -f ./$(DEPDIR)/strace-xlat.Po - -rm -f ./$(DEPDIR)/strace-xmalloc.Po + -rm -f types/$(DEPDIR)/libstrace_a-check-btrfs.Po + -rm -f types/$(DEPDIR)/libstrace_a-check-cryptouser.Po + -rm -f types/$(DEPDIR)/libstrace_a-check-evdev.Po + -rm -f types/$(DEPDIR)/libstrace_a-check-io_uring.Po + -rm -f types/$(DEPDIR)/libstrace_a-check-loop.Po + -rm -f types/$(DEPDIR)/libstrace_a-check-openat2.Po + -rm -f types/$(DEPDIR)/libstrace_a-check-rtnl_link.Po + -rm -f types/$(DEPDIR)/libstrace_a-check-rtnl_mdb.Po + -rm -f types/$(DEPDIR)/libstrace_a-check-rtnl_neightbl.Po + -rm -f types/$(DEPDIR)/libstrace_a-check-rtnl_route.Po + -rm -f types/$(DEPDIR)/libstrace_a-check-tee.Po + -rm -f types/$(DEPDIR)/libstrace_a-check-v4l2.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-hdr distclean-tags @@ -8028,6 +8848,7 @@ maintainer-clean: maintainer-clean-recursive -rm -f ./$(DEPDIR)/libmpers_m32_a-fetch_struct_xfs_quotastat.Po -rm -f ./$(DEPDIR)/libmpers_m32_a-hdio.Po -rm -f ./$(DEPDIR)/libmpers_m32_a-ipc_msgctl.Po + -rm -f ./$(DEPDIR)/libmpers_m32_a-ipc_semctl.Po -rm -f ./$(DEPDIR)/libmpers_m32_a-ipc_shmctl.Po -rm -f ./$(DEPDIR)/libmpers_m32_a-loop.Po -rm -f ./$(DEPDIR)/libmpers_m32_a-mtd.Po @@ -8039,7 +8860,6 @@ maintainer-clean: maintainer-clean-recursive -rm -f ./$(DEPDIR)/libmpers_m32_a-print_sg_req_info.Po -rm -f ./$(DEPDIR)/libmpers_m32_a-print_sigevent.Po -rm -f ./$(DEPDIR)/libmpers_m32_a-print_time.Po - -rm -f ./$(DEPDIR)/libmpers_m32_a-print_timespec.Po -rm -f ./$(DEPDIR)/libmpers_m32_a-print_timeval.Po -rm -f ./$(DEPDIR)/libmpers_m32_a-printrusage.Po -rm -f ./$(DEPDIR)/libmpers_m32_a-printsiginfo.Po @@ -8068,6 +8888,7 @@ maintainer-clean: maintainer-clean-recursive -rm -f ./$(DEPDIR)/libmpers_mx32_a-fetch_struct_xfs_quotastat.Po -rm -f ./$(DEPDIR)/libmpers_mx32_a-hdio.Po -rm -f ./$(DEPDIR)/libmpers_mx32_a-ipc_msgctl.Po + -rm -f ./$(DEPDIR)/libmpers_mx32_a-ipc_semctl.Po -rm -f ./$(DEPDIR)/libmpers_mx32_a-ipc_shmctl.Po -rm -f ./$(DEPDIR)/libmpers_mx32_a-loop.Po -rm -f ./$(DEPDIR)/libmpers_mx32_a-mtd.Po @@ -8079,7 +8900,6 @@ maintainer-clean: maintainer-clean-recursive -rm -f ./$(DEPDIR)/libmpers_mx32_a-print_sg_req_info.Po -rm -f ./$(DEPDIR)/libmpers_mx32_a-print_sigevent.Po -rm -f ./$(DEPDIR)/libmpers_mx32_a-print_time.Po - -rm -f ./$(DEPDIR)/libmpers_mx32_a-print_timespec.Po -rm -f ./$(DEPDIR)/libmpers_mx32_a-print_timeval.Po -rm -f ./$(DEPDIR)/libmpers_mx32_a-printrusage.Po -rm -f ./$(DEPDIR)/libmpers_mx32_a-printsiginfo.Po @@ -8093,245 +8913,276 @@ maintainer-clean: maintainer-clean-recursive -rm -f ./$(DEPDIR)/libmpers_mx32_a-ustat.Po -rm -f ./$(DEPDIR)/libmpers_mx32_a-utime.Po -rm -f ./$(DEPDIR)/libmpers_mx32_a-v4l2.Po + -rm -f ./$(DEPDIR)/libstrace_a-access.Po + -rm -f ./$(DEPDIR)/libstrace_a-affinity.Po + -rm -f ./$(DEPDIR)/libstrace_a-aio.Po + -rm -f ./$(DEPDIR)/libstrace_a-alpha.Po + -rm -f ./$(DEPDIR)/libstrace_a-basic_filters.Po + -rm -f ./$(DEPDIR)/libstrace_a-bind.Po + -rm -f ./$(DEPDIR)/libstrace_a-bjm.Po + -rm -f ./$(DEPDIR)/libstrace_a-block.Po + -rm -f ./$(DEPDIR)/libstrace_a-bpf.Po + -rm -f ./$(DEPDIR)/libstrace_a-bpf_attr_check.Po + -rm -f ./$(DEPDIR)/libstrace_a-bpf_filter.Po + -rm -f ./$(DEPDIR)/libstrace_a-bpf_seccomp_filter.Po + -rm -f ./$(DEPDIR)/libstrace_a-bpf_sock_filter.Po + -rm -f ./$(DEPDIR)/libstrace_a-btrfs.Po + -rm -f ./$(DEPDIR)/libstrace_a-cacheflush.Po + -rm -f ./$(DEPDIR)/libstrace_a-capability.Po + -rm -f ./$(DEPDIR)/libstrace_a-chdir.Po + -rm -f ./$(DEPDIR)/libstrace_a-chmod.Po + -rm -f ./$(DEPDIR)/libstrace_a-clone.Po + -rm -f ./$(DEPDIR)/libstrace_a-close_range.Po + -rm -f ./$(DEPDIR)/libstrace_a-copy_file_range.Po + -rm -f ./$(DEPDIR)/libstrace_a-count.Po + -rm -f ./$(DEPDIR)/libstrace_a-delay.Po + -rm -f ./$(DEPDIR)/libstrace_a-desc.Po + -rm -f ./$(DEPDIR)/libstrace_a-dirent.Po + -rm -f ./$(DEPDIR)/libstrace_a-dirent64.Po + -rm -f ./$(DEPDIR)/libstrace_a-dirent_types.Po + -rm -f ./$(DEPDIR)/libstrace_a-dm.Po + -rm -f ./$(DEPDIR)/libstrace_a-dup.Po + -rm -f ./$(DEPDIR)/libstrace_a-dyxlat.Po + -rm -f ./$(DEPDIR)/libstrace_a-epoll.Po + -rm -f ./$(DEPDIR)/libstrace_a-error_prints.Po + -rm -f ./$(DEPDIR)/libstrace_a-evdev.Po + -rm -f ./$(DEPDIR)/libstrace_a-evdev_mpers.Po + -rm -f ./$(DEPDIR)/libstrace_a-eventfd.Po + -rm -f ./$(DEPDIR)/libstrace_a-execve.Po + -rm -f ./$(DEPDIR)/libstrace_a-fadvise.Po + -rm -f ./$(DEPDIR)/libstrace_a-fallocate.Po + -rm -f ./$(DEPDIR)/libstrace_a-fanotify.Po + -rm -f ./$(DEPDIR)/libstrace_a-fchownat.Po + -rm -f ./$(DEPDIR)/libstrace_a-fcntl.Po + -rm -f ./$(DEPDIR)/libstrace_a-fetch_bpf_fprog.Po -rm -f ./$(DEPDIR)/libstrace_a-fetch_indirect_syscall_args.Po + -rm -f ./$(DEPDIR)/libstrace_a-fetch_struct_flock.Po + -rm -f ./$(DEPDIR)/libstrace_a-fetch_struct_keyctl_kdf_params.Po + -rm -f ./$(DEPDIR)/libstrace_a-fetch_struct_mmsghdr.Po + -rm -f ./$(DEPDIR)/libstrace_a-fetch_struct_msghdr.Po + -rm -f ./$(DEPDIR)/libstrace_a-fetch_struct_stat.Po + -rm -f ./$(DEPDIR)/libstrace_a-fetch_struct_stat64.Po + -rm -f ./$(DEPDIR)/libstrace_a-fetch_struct_statfs.Po + -rm -f ./$(DEPDIR)/libstrace_a-fetch_struct_xfs_quotastat.Po + -rm -f ./$(DEPDIR)/libstrace_a-file_handle.Po + -rm -f ./$(DEPDIR)/libstrace_a-file_ioctl.Po + -rm -f ./$(DEPDIR)/libstrace_a-filter_qualify.Po + -rm -f ./$(DEPDIR)/libstrace_a-filter_seccomp.Po + -rm -f ./$(DEPDIR)/libstrace_a-flock.Po + -rm -f ./$(DEPDIR)/libstrace_a-fs_x_ioctl.Po + -rm -f ./$(DEPDIR)/libstrace_a-fsconfig.Po + -rm -f ./$(DEPDIR)/libstrace_a-fsmount.Po + -rm -f ./$(DEPDIR)/libstrace_a-fsopen.Po + -rm -f ./$(DEPDIR)/libstrace_a-fspick.Po -rm -f ./$(DEPDIR)/libstrace_a-fstatfs.Po -rm -f ./$(DEPDIR)/libstrace_a-fstatfs64.Po + -rm -f ./$(DEPDIR)/libstrace_a-futex.Po + -rm -f ./$(DEPDIR)/libstrace_a-get_personality.Po + -rm -f ./$(DEPDIR)/libstrace_a-get_robust_list.Po + -rm -f ./$(DEPDIR)/libstrace_a-getcpu.Po + -rm -f ./$(DEPDIR)/libstrace_a-getcwd.Po -rm -f ./$(DEPDIR)/libstrace_a-getpagesize.Po + -rm -f ./$(DEPDIR)/libstrace_a-getpid.Po + -rm -f ./$(DEPDIR)/libstrace_a-getrandom.Po + -rm -f ./$(DEPDIR)/libstrace_a-hdio.Po + -rm -f ./$(DEPDIR)/libstrace_a-hostname.Po + -rm -f ./$(DEPDIR)/libstrace_a-inotify.Po + -rm -f ./$(DEPDIR)/libstrace_a-inotify_ioctl.Po + -rm -f ./$(DEPDIR)/libstrace_a-io.Po + -rm -f ./$(DEPDIR)/libstrace_a-io_uring.Po + -rm -f ./$(DEPDIR)/libstrace_a-ioctl.Po + -rm -f ./$(DEPDIR)/libstrace_a-ioperm.Po + -rm -f ./$(DEPDIR)/libstrace_a-iopl.Po + -rm -f ./$(DEPDIR)/libstrace_a-ioprio.Po -rm -f ./$(DEPDIR)/libstrace_a-ipc.Po + -rm -f ./$(DEPDIR)/libstrace_a-ipc_msg.Po + -rm -f ./$(DEPDIR)/libstrace_a-ipc_msgctl.Po + -rm -f ./$(DEPDIR)/libstrace_a-ipc_sem.Po + -rm -f ./$(DEPDIR)/libstrace_a-ipc_semctl.Po + -rm -f ./$(DEPDIR)/libstrace_a-ipc_shm.Po + -rm -f ./$(DEPDIR)/libstrace_a-ipc_shmctl.Po + -rm -f ./$(DEPDIR)/libstrace_a-kcmp.Po + -rm -f ./$(DEPDIR)/libstrace_a-kexec.Po + -rm -f ./$(DEPDIR)/libstrace_a-keyctl.Po + -rm -f ./$(DEPDIR)/libstrace_a-kvm.Po + -rm -f ./$(DEPDIR)/libstrace_a-ldt.Po + -rm -f ./$(DEPDIR)/libstrace_a-link.Po + -rm -f ./$(DEPDIR)/libstrace_a-listen.Po + -rm -f ./$(DEPDIR)/libstrace_a-lookup_dcookie.Po + -rm -f ./$(DEPDIR)/libstrace_a-loop.Po + -rm -f ./$(DEPDIR)/libstrace_a-lseek.Po + -rm -f ./$(DEPDIR)/libstrace_a-mem.Po + -rm -f ./$(DEPDIR)/libstrace_a-membarrier.Po + -rm -f ./$(DEPDIR)/libstrace_a-memfd_create.Po + -rm -f ./$(DEPDIR)/libstrace_a-mknod.Po -rm -f ./$(DEPDIR)/libstrace_a-mmap_cache.Po + -rm -f ./$(DEPDIR)/libstrace_a-mmap_notify.Po + -rm -f ./$(DEPDIR)/libstrace_a-mmsghdr.Po + -rm -f ./$(DEPDIR)/libstrace_a-mount.Po + -rm -f ./$(DEPDIR)/libstrace_a-move_mount.Po + -rm -f ./$(DEPDIR)/libstrace_a-mq.Po + -rm -f ./$(DEPDIR)/libstrace_a-msghdr.Po + -rm -f ./$(DEPDIR)/libstrace_a-mtd.Po + -rm -f ./$(DEPDIR)/libstrace_a-nbd_ioctl.Po + -rm -f ./$(DEPDIR)/libstrace_a-net.Po + -rm -f ./$(DEPDIR)/libstrace_a-netlink.Po + -rm -f ./$(DEPDIR)/libstrace_a-netlink_crypto.Po + -rm -f ./$(DEPDIR)/libstrace_a-netlink_inet_diag.Po + -rm -f ./$(DEPDIR)/libstrace_a-netlink_kobject_uevent.Po + -rm -f ./$(DEPDIR)/libstrace_a-netlink_netfilter.Po + -rm -f ./$(DEPDIR)/libstrace_a-netlink_netlink_diag.Po + -rm -f ./$(DEPDIR)/libstrace_a-netlink_packet_diag.Po + -rm -f ./$(DEPDIR)/libstrace_a-netlink_route.Po + -rm -f ./$(DEPDIR)/libstrace_a-netlink_selinux.Po + -rm -f ./$(DEPDIR)/libstrace_a-netlink_smc_diag.Po + -rm -f ./$(DEPDIR)/libstrace_a-netlink_sock_diag.Po + -rm -f ./$(DEPDIR)/libstrace_a-netlink_unix_diag.Po + -rm -f ./$(DEPDIR)/libstrace_a-nlattr.Po + -rm -f ./$(DEPDIR)/libstrace_a-nsfs.Po + -rm -f ./$(DEPDIR)/libstrace_a-numa.Po + -rm -f ./$(DEPDIR)/libstrace_a-number_set.Po + -rm -f ./$(DEPDIR)/libstrace_a-oldstat.Po + -rm -f ./$(DEPDIR)/libstrace_a-open.Po + -rm -f ./$(DEPDIR)/libstrace_a-open_tree.Po + -rm -f ./$(DEPDIR)/libstrace_a-or1k_atomic.Po + -rm -f ./$(DEPDIR)/libstrace_a-pathtrace.Po + -rm -f ./$(DEPDIR)/libstrace_a-perf.Po + -rm -f ./$(DEPDIR)/libstrace_a-perf_ioctl.Po + -rm -f ./$(DEPDIR)/libstrace_a-personality.Po + -rm -f ./$(DEPDIR)/libstrace_a-pidfd_getfd.Po + -rm -f ./$(DEPDIR)/libstrace_a-pidfd_open.Po + -rm -f ./$(DEPDIR)/libstrace_a-pidns.Po + -rm -f ./$(DEPDIR)/libstrace_a-pkeys.Po + -rm -f ./$(DEPDIR)/libstrace_a-poll.Po + -rm -f ./$(DEPDIR)/libstrace_a-prctl.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_aio_sigset.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_dev_t.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_group_req.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_ifindex.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_instruction_pointer.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_kernel_version.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_mac.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_mq_attr.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_msgbuf.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_sg_req_info.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_sigevent.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_statfs.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_struct_stat.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_syscall_number.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_time.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_timespec32.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_timespec64.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_timeval.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_timeval64.Po + -rm -f ./$(DEPDIR)/libstrace_a-print_timex.Po + -rm -f ./$(DEPDIR)/libstrace_a-printmode.Po + -rm -f ./$(DEPDIR)/libstrace_a-printrusage.Po + -rm -f ./$(DEPDIR)/libstrace_a-printsiginfo.Po + -rm -f ./$(DEPDIR)/libstrace_a-process.Po + -rm -f ./$(DEPDIR)/libstrace_a-process_vm.Po + -rm -f ./$(DEPDIR)/libstrace_a-ptp.Po + -rm -f ./$(DEPDIR)/libstrace_a-ptrace_syscall_info.Po + -rm -f ./$(DEPDIR)/libstrace_a-quota.Po + -rm -f ./$(DEPDIR)/libstrace_a-random_ioctl.Po + -rm -f ./$(DEPDIR)/libstrace_a-readahead.Po + -rm -f ./$(DEPDIR)/libstrace_a-readlink.Po + -rm -f ./$(DEPDIR)/libstrace_a-reboot.Po + -rm -f ./$(DEPDIR)/libstrace_a-renameat.Po + -rm -f ./$(DEPDIR)/libstrace_a-resource.Po + -rm -f ./$(DEPDIR)/libstrace_a-retval.Po + -rm -f ./$(DEPDIR)/libstrace_a-riscv.Po + -rm -f ./$(DEPDIR)/libstrace_a-rt_sigframe.Po + -rm -f ./$(DEPDIR)/libstrace_a-rt_sigreturn.Po + -rm -f ./$(DEPDIR)/libstrace_a-rtc.Po + -rm -f ./$(DEPDIR)/libstrace_a-rtnl_addr.Po + -rm -f ./$(DEPDIR)/libstrace_a-rtnl_addrlabel.Po + -rm -f ./$(DEPDIR)/libstrace_a-rtnl_dcb.Po + -rm -f ./$(DEPDIR)/libstrace_a-rtnl_link.Po + -rm -f ./$(DEPDIR)/libstrace_a-rtnl_mdb.Po + -rm -f ./$(DEPDIR)/libstrace_a-rtnl_neigh.Po + -rm -f ./$(DEPDIR)/libstrace_a-rtnl_neightbl.Po + -rm -f ./$(DEPDIR)/libstrace_a-rtnl_netconf.Po + -rm -f ./$(DEPDIR)/libstrace_a-rtnl_nsid.Po + -rm -f ./$(DEPDIR)/libstrace_a-rtnl_route.Po + -rm -f ./$(DEPDIR)/libstrace_a-rtnl_rule.Po + -rm -f ./$(DEPDIR)/libstrace_a-rtnl_tc.Po + -rm -f ./$(DEPDIR)/libstrace_a-rtnl_tc_action.Po + -rm -f ./$(DEPDIR)/libstrace_a-s390.Po + -rm -f ./$(DEPDIR)/libstrace_a-sched.Po + -rm -f ./$(DEPDIR)/libstrace_a-scsi.Po + -rm -f ./$(DEPDIR)/libstrace_a-seccomp.Po + -rm -f ./$(DEPDIR)/libstrace_a-sendfile.Po + -rm -f ./$(DEPDIR)/libstrace_a-sg_io_v3.Po + -rm -f ./$(DEPDIR)/libstrace_a-sg_io_v4.Po + -rm -f ./$(DEPDIR)/libstrace_a-shutdown.Po + -rm -f ./$(DEPDIR)/libstrace_a-sigaltstack.Po + -rm -f ./$(DEPDIR)/libstrace_a-signal.Po + -rm -f ./$(DEPDIR)/libstrace_a-signalfd.Po -rm -f ./$(DEPDIR)/libstrace_a-sigreturn.Po + -rm -f ./$(DEPDIR)/libstrace_a-sock.Po + -rm -f ./$(DEPDIR)/libstrace_a-sockaddr.Po -rm -f ./$(DEPDIR)/libstrace_a-socketcall.Po + -rm -f ./$(DEPDIR)/libstrace_a-socketutils.Po + -rm -f ./$(DEPDIR)/libstrace_a-sparc.Po + -rm -f ./$(DEPDIR)/libstrace_a-sram_alloc.Po + -rm -f ./$(DEPDIR)/libstrace_a-stage_output.Po + -rm -f ./$(DEPDIR)/libstrace_a-stat.Po + -rm -f ./$(DEPDIR)/libstrace_a-stat64.Po -rm -f ./$(DEPDIR)/libstrace_a-statfs.Po -rm -f ./$(DEPDIR)/libstrace_a-statfs64.Po + -rm -f ./$(DEPDIR)/libstrace_a-statx.Po + -rm -f ./$(DEPDIR)/libstrace_a-string_to_uint.Po + -rm -f ./$(DEPDIR)/libstrace_a-swapon.Po -rm -f ./$(DEPDIR)/libstrace_a-sync_file_range.Po -rm -f ./$(DEPDIR)/libstrace_a-sync_file_range2.Po + -rm -f ./$(DEPDIR)/libstrace_a-syscall.Po + -rm -f ./$(DEPDIR)/libstrace_a-sysctl.Po + -rm -f ./$(DEPDIR)/libstrace_a-sysinfo.Po + -rm -f ./$(DEPDIR)/libstrace_a-syslog.Po + -rm -f ./$(DEPDIR)/libstrace_a-sysmips.Po + -rm -f ./$(DEPDIR)/libstrace_a-tee.Po + -rm -f ./$(DEPDIR)/libstrace_a-term.Po + -rm -f ./$(DEPDIR)/libstrace_a-time.Po + -rm -f ./$(DEPDIR)/libstrace_a-times.Po + -rm -f ./$(DEPDIR)/libstrace_a-trie.Po + -rm -f ./$(DEPDIR)/libstrace_a-truncate.Po + -rm -f ./$(DEPDIR)/libstrace_a-ubi.Po + -rm -f ./$(DEPDIR)/libstrace_a-ucopy.Po + -rm -f ./$(DEPDIR)/libstrace_a-uid.Po + -rm -f ./$(DEPDIR)/libstrace_a-uid16.Po + -rm -f ./$(DEPDIR)/libstrace_a-umask.Po + -rm -f ./$(DEPDIR)/libstrace_a-umount.Po + -rm -f ./$(DEPDIR)/libstrace_a-uname.Po + -rm -f ./$(DEPDIR)/libstrace_a-unwind-libdw.Po + -rm -f ./$(DEPDIR)/libstrace_a-unwind-libunwind.Po + -rm -f ./$(DEPDIR)/libstrace_a-unwind.Po -rm -f ./$(DEPDIR)/libstrace_a-upeek.Po -rm -f ./$(DEPDIR)/libstrace_a-upoke.Po - -rm -f ./$(DEPDIR)/strace-access.Po - -rm -f ./$(DEPDIR)/strace-affinity.Po - -rm -f ./$(DEPDIR)/strace-aio.Po - -rm -f ./$(DEPDIR)/strace-alpha.Po - -rm -f ./$(DEPDIR)/strace-basic_filters.Po - -rm -f ./$(DEPDIR)/strace-bind.Po - -rm -f ./$(DEPDIR)/strace-bjm.Po - -rm -f ./$(DEPDIR)/strace-block.Po - -rm -f ./$(DEPDIR)/strace-bpf.Po - -rm -f ./$(DEPDIR)/strace-bpf_attr_check.Po - -rm -f ./$(DEPDIR)/strace-bpf_filter.Po - -rm -f ./$(DEPDIR)/strace-bpf_seccomp_filter.Po - -rm -f ./$(DEPDIR)/strace-bpf_sock_filter.Po - -rm -f ./$(DEPDIR)/strace-btrfs.Po - -rm -f ./$(DEPDIR)/strace-cacheflush.Po - -rm -f ./$(DEPDIR)/strace-capability.Po - -rm -f ./$(DEPDIR)/strace-chdir.Po - -rm -f ./$(DEPDIR)/strace-chmod.Po - -rm -f ./$(DEPDIR)/strace-clone.Po - -rm -f ./$(DEPDIR)/strace-copy_file_range.Po - -rm -f ./$(DEPDIR)/strace-count.Po - -rm -f ./$(DEPDIR)/strace-delay.Po - -rm -f ./$(DEPDIR)/strace-desc.Po - -rm -f ./$(DEPDIR)/strace-dirent.Po - -rm -f ./$(DEPDIR)/strace-dirent64.Po - -rm -f ./$(DEPDIR)/strace-dm.Po - -rm -f ./$(DEPDIR)/strace-dyxlat.Po - -rm -f ./$(DEPDIR)/strace-epoll.Po - -rm -f ./$(DEPDIR)/strace-error_prints.Po - -rm -f ./$(DEPDIR)/strace-evdev.Po - -rm -f ./$(DEPDIR)/strace-evdev_mpers.Po - -rm -f ./$(DEPDIR)/strace-eventfd.Po - -rm -f ./$(DEPDIR)/strace-execve.Po - -rm -f ./$(DEPDIR)/strace-fadvise.Po - -rm -f ./$(DEPDIR)/strace-fallocate.Po - -rm -f ./$(DEPDIR)/strace-fanotify.Po - -rm -f ./$(DEPDIR)/strace-fchownat.Po - -rm -f ./$(DEPDIR)/strace-fcntl.Po - -rm -f ./$(DEPDIR)/strace-fetch_bpf_fprog.Po - -rm -f ./$(DEPDIR)/strace-fetch_struct_flock.Po - -rm -f ./$(DEPDIR)/strace-fetch_struct_keyctl_kdf_params.Po - -rm -f ./$(DEPDIR)/strace-fetch_struct_mmsghdr.Po - -rm -f ./$(DEPDIR)/strace-fetch_struct_msghdr.Po - -rm -f ./$(DEPDIR)/strace-fetch_struct_stat.Po - -rm -f ./$(DEPDIR)/strace-fetch_struct_stat64.Po - -rm -f ./$(DEPDIR)/strace-fetch_struct_statfs.Po - -rm -f ./$(DEPDIR)/strace-fetch_struct_xfs_quotastat.Po - -rm -f ./$(DEPDIR)/strace-file_handle.Po - -rm -f ./$(DEPDIR)/strace-file_ioctl.Po - -rm -f ./$(DEPDIR)/strace-filter_qualify.Po - -rm -f ./$(DEPDIR)/strace-flock.Po - -rm -f ./$(DEPDIR)/strace-fs_x_ioctl.Po - -rm -f ./$(DEPDIR)/strace-futex.Po - -rm -f ./$(DEPDIR)/strace-get_personality.Po - -rm -f ./$(DEPDIR)/strace-get_robust_list.Po - -rm -f ./$(DEPDIR)/strace-getcpu.Po - -rm -f ./$(DEPDIR)/strace-getcwd.Po - -rm -f ./$(DEPDIR)/strace-getrandom.Po - -rm -f ./$(DEPDIR)/strace-hdio.Po - -rm -f ./$(DEPDIR)/strace-hostname.Po - -rm -f ./$(DEPDIR)/strace-inotify.Po - -rm -f ./$(DEPDIR)/strace-inotify_ioctl.Po - -rm -f ./$(DEPDIR)/strace-io.Po - -rm -f ./$(DEPDIR)/strace-io_uring.Po - -rm -f ./$(DEPDIR)/strace-ioctl.Po - -rm -f ./$(DEPDIR)/strace-ioperm.Po - -rm -f ./$(DEPDIR)/strace-iopl.Po - -rm -f ./$(DEPDIR)/strace-ioprio.Po - -rm -f ./$(DEPDIR)/strace-ipc_msg.Po - -rm -f ./$(DEPDIR)/strace-ipc_msgctl.Po - -rm -f ./$(DEPDIR)/strace-ipc_sem.Po - -rm -f ./$(DEPDIR)/strace-ipc_shm.Po - -rm -f ./$(DEPDIR)/strace-ipc_shmctl.Po - -rm -f ./$(DEPDIR)/strace-kcmp.Po - -rm -f ./$(DEPDIR)/strace-kexec.Po - -rm -f ./$(DEPDIR)/strace-keyctl.Po - -rm -f ./$(DEPDIR)/strace-kvm.Po - -rm -f ./$(DEPDIR)/strace-ldt.Po - -rm -f ./$(DEPDIR)/strace-link.Po - -rm -f ./$(DEPDIR)/strace-listen.Po - -rm -f ./$(DEPDIR)/strace-lookup_dcookie.Po - -rm -f ./$(DEPDIR)/strace-loop.Po - -rm -f ./$(DEPDIR)/strace-lseek.Po - -rm -f ./$(DEPDIR)/strace-mem.Po - -rm -f ./$(DEPDIR)/strace-membarrier.Po - -rm -f ./$(DEPDIR)/strace-memfd_create.Po - -rm -f ./$(DEPDIR)/strace-mknod.Po - -rm -f ./$(DEPDIR)/strace-mmap_notify.Po - -rm -f ./$(DEPDIR)/strace-mmsghdr.Po - -rm -f ./$(DEPDIR)/strace-mount.Po - -rm -f ./$(DEPDIR)/strace-mq.Po - -rm -f ./$(DEPDIR)/strace-msghdr.Po - -rm -f ./$(DEPDIR)/strace-mtd.Po - -rm -f ./$(DEPDIR)/strace-nbd_ioctl.Po - -rm -f ./$(DEPDIR)/strace-net.Po - -rm -f ./$(DEPDIR)/strace-netlink.Po - -rm -f ./$(DEPDIR)/strace-netlink_crypto.Po - -rm -f ./$(DEPDIR)/strace-netlink_inet_diag.Po - -rm -f ./$(DEPDIR)/strace-netlink_kobject_uevent.Po - -rm -f ./$(DEPDIR)/strace-netlink_netfilter.Po - -rm -f ./$(DEPDIR)/strace-netlink_netlink_diag.Po - -rm -f ./$(DEPDIR)/strace-netlink_packet_diag.Po - -rm -f ./$(DEPDIR)/strace-netlink_route.Po - -rm -f ./$(DEPDIR)/strace-netlink_selinux.Po - -rm -f ./$(DEPDIR)/strace-netlink_smc_diag.Po - -rm -f ./$(DEPDIR)/strace-netlink_sock_diag.Po - -rm -f ./$(DEPDIR)/strace-netlink_unix_diag.Po - -rm -f ./$(DEPDIR)/strace-nlattr.Po - -rm -f ./$(DEPDIR)/strace-nsfs.Po - -rm -f ./$(DEPDIR)/strace-numa.Po - -rm -f ./$(DEPDIR)/strace-number_set.Po - -rm -f ./$(DEPDIR)/strace-oldstat.Po - -rm -f ./$(DEPDIR)/strace-open.Po - -rm -f ./$(DEPDIR)/strace-or1k_atomic.Po - -rm -f ./$(DEPDIR)/strace-pathtrace.Po - -rm -f ./$(DEPDIR)/strace-perf.Po - -rm -f ./$(DEPDIR)/strace-perf_ioctl.Po - -rm -f ./$(DEPDIR)/strace-personality.Po - -rm -f ./$(DEPDIR)/strace-pkeys.Po - -rm -f ./$(DEPDIR)/strace-poll.Po - -rm -f ./$(DEPDIR)/strace-prctl.Po - -rm -f ./$(DEPDIR)/strace-print_aio_sigset.Po - -rm -f ./$(DEPDIR)/strace-print_dev_t.Po - -rm -f ./$(DEPDIR)/strace-print_group_req.Po - -rm -f ./$(DEPDIR)/strace-print_ifindex.Po - -rm -f ./$(DEPDIR)/strace-print_instruction_pointer.Po - -rm -f ./$(DEPDIR)/strace-print_kernel_version.Po - -rm -f ./$(DEPDIR)/strace-print_mac.Po - -rm -f ./$(DEPDIR)/strace-print_mq_attr.Po - -rm -f ./$(DEPDIR)/strace-print_msgbuf.Po - -rm -f ./$(DEPDIR)/strace-print_sg_req_info.Po - -rm -f ./$(DEPDIR)/strace-print_sigevent.Po - -rm -f ./$(DEPDIR)/strace-print_statfs.Po - -rm -f ./$(DEPDIR)/strace-print_struct_stat.Po - -rm -f ./$(DEPDIR)/strace-print_time.Po - -rm -f ./$(DEPDIR)/strace-print_timespec.Po - -rm -f ./$(DEPDIR)/strace-print_timespec32.Po - -rm -f ./$(DEPDIR)/strace-print_timespec64.Po - -rm -f ./$(DEPDIR)/strace-print_timeval.Po - -rm -f ./$(DEPDIR)/strace-print_timeval64.Po - -rm -f ./$(DEPDIR)/strace-print_timex.Po - -rm -f ./$(DEPDIR)/strace-printmode.Po - -rm -f ./$(DEPDIR)/strace-printrusage.Po - -rm -f ./$(DEPDIR)/strace-printsiginfo.Po - -rm -f ./$(DEPDIR)/strace-process.Po - -rm -f ./$(DEPDIR)/strace-process_vm.Po - -rm -f ./$(DEPDIR)/strace-ptp.Po - -rm -f ./$(DEPDIR)/strace-ptrace_syscall_info.Po - -rm -f ./$(DEPDIR)/strace-quota.Po - -rm -f ./$(DEPDIR)/strace-random_ioctl.Po - -rm -f ./$(DEPDIR)/strace-readahead.Po - -rm -f ./$(DEPDIR)/strace-readlink.Po - -rm -f ./$(DEPDIR)/strace-reboot.Po - -rm -f ./$(DEPDIR)/strace-renameat.Po - -rm -f ./$(DEPDIR)/strace-resource.Po - -rm -f ./$(DEPDIR)/strace-retval.Po - -rm -f ./$(DEPDIR)/strace-riscv.Po - -rm -f ./$(DEPDIR)/strace-rt_sigframe.Po - -rm -f ./$(DEPDIR)/strace-rt_sigreturn.Po - -rm -f ./$(DEPDIR)/strace-rtc.Po - -rm -f ./$(DEPDIR)/strace-rtnl_addr.Po - -rm -f ./$(DEPDIR)/strace-rtnl_addrlabel.Po - -rm -f ./$(DEPDIR)/strace-rtnl_dcb.Po - -rm -f ./$(DEPDIR)/strace-rtnl_link.Po - -rm -f ./$(DEPDIR)/strace-rtnl_mdb.Po - -rm -f ./$(DEPDIR)/strace-rtnl_neigh.Po - -rm -f ./$(DEPDIR)/strace-rtnl_neightbl.Po - -rm -f ./$(DEPDIR)/strace-rtnl_netconf.Po - -rm -f ./$(DEPDIR)/strace-rtnl_nsid.Po - -rm -f ./$(DEPDIR)/strace-rtnl_route.Po - -rm -f ./$(DEPDIR)/strace-rtnl_rule.Po - -rm -f ./$(DEPDIR)/strace-rtnl_tc.Po - -rm -f ./$(DEPDIR)/strace-rtnl_tc_action.Po - -rm -f ./$(DEPDIR)/strace-s390.Po - -rm -f ./$(DEPDIR)/strace-sched.Po - -rm -f ./$(DEPDIR)/strace-scsi.Po - -rm -f ./$(DEPDIR)/strace-seccomp.Po - -rm -f ./$(DEPDIR)/strace-sendfile.Po - -rm -f ./$(DEPDIR)/strace-sg_io_v3.Po - -rm -f ./$(DEPDIR)/strace-sg_io_v4.Po - -rm -f ./$(DEPDIR)/strace-shutdown.Po - -rm -f ./$(DEPDIR)/strace-sigaltstack.Po - -rm -f ./$(DEPDIR)/strace-signal.Po - -rm -f ./$(DEPDIR)/strace-signalfd.Po - -rm -f ./$(DEPDIR)/strace-sock.Po - -rm -f ./$(DEPDIR)/strace-sockaddr.Po - -rm -f ./$(DEPDIR)/strace-socketutils.Po - -rm -f ./$(DEPDIR)/strace-sparc.Po - -rm -f ./$(DEPDIR)/strace-sram_alloc.Po - -rm -f ./$(DEPDIR)/strace-stat.Po - -rm -f ./$(DEPDIR)/strace-stat64.Po - -rm -f ./$(DEPDIR)/strace-statfs.Po - -rm -f ./$(DEPDIR)/strace-statx.Po + -rm -f ./$(DEPDIR)/libstrace_a-userfaultfd.Po + -rm -f ./$(DEPDIR)/libstrace_a-ustat.Po + -rm -f ./$(DEPDIR)/libstrace_a-util.Po + -rm -f ./$(DEPDIR)/libstrace_a-utime.Po + -rm -f ./$(DEPDIR)/libstrace_a-utimes.Po + -rm -f ./$(DEPDIR)/libstrace_a-v4l2.Po + -rm -f ./$(DEPDIR)/libstrace_a-wait.Po + -rm -f ./$(DEPDIR)/libstrace_a-watchdog_ioctl.Po + -rm -f ./$(DEPDIR)/libstrace_a-xattr.Po + -rm -f ./$(DEPDIR)/libstrace_a-xgetdents.Po + -rm -f ./$(DEPDIR)/libstrace_a-xlat.Po + -rm -f ./$(DEPDIR)/libstrace_a-xmalloc.Po -rm -f ./$(DEPDIR)/strace-strace.Po - -rm -f ./$(DEPDIR)/strace-string_to_uint.Po - -rm -f ./$(DEPDIR)/strace-swapon.Po - -rm -f ./$(DEPDIR)/strace-syscall.Po - -rm -f ./$(DEPDIR)/strace-sysctl.Po - -rm -f ./$(DEPDIR)/strace-sysinfo.Po - -rm -f ./$(DEPDIR)/strace-syslog.Po - -rm -f ./$(DEPDIR)/strace-sysmips.Po - -rm -f ./$(DEPDIR)/strace-term.Po - -rm -f ./$(DEPDIR)/strace-time.Po - -rm -f ./$(DEPDIR)/strace-times.Po - -rm -f ./$(DEPDIR)/strace-truncate.Po - -rm -f ./$(DEPDIR)/strace-ubi.Po - -rm -f ./$(DEPDIR)/strace-ucopy.Po - -rm -f ./$(DEPDIR)/strace-uid.Po - -rm -f ./$(DEPDIR)/strace-uid16.Po - -rm -f ./$(DEPDIR)/strace-umask.Po - -rm -f ./$(DEPDIR)/strace-umount.Po - -rm -f ./$(DEPDIR)/strace-uname.Po - -rm -f ./$(DEPDIR)/strace-unwind-libdw.Po - -rm -f ./$(DEPDIR)/strace-unwind-libunwind.Po - -rm -f ./$(DEPDIR)/strace-unwind.Po - -rm -f ./$(DEPDIR)/strace-userfaultfd.Po - -rm -f ./$(DEPDIR)/strace-ustat.Po - -rm -f ./$(DEPDIR)/strace-util.Po - -rm -f ./$(DEPDIR)/strace-utime.Po - -rm -f ./$(DEPDIR)/strace-utimes.Po - -rm -f ./$(DEPDIR)/strace-v4l2.Po - -rm -f ./$(DEPDIR)/strace-wait.Po - -rm -f ./$(DEPDIR)/strace-xattr.Po - -rm -f ./$(DEPDIR)/strace-xlat.Po - -rm -f ./$(DEPDIR)/strace-xmalloc.Po + -rm -f types/$(DEPDIR)/libstrace_a-check-btrfs.Po + -rm -f types/$(DEPDIR)/libstrace_a-check-cryptouser.Po + -rm -f types/$(DEPDIR)/libstrace_a-check-evdev.Po + -rm -f types/$(DEPDIR)/libstrace_a-check-io_uring.Po + -rm -f types/$(DEPDIR)/libstrace_a-check-loop.Po + -rm -f types/$(DEPDIR)/libstrace_a-check-openat2.Po + -rm -f types/$(DEPDIR)/libstrace_a-check-rtnl_link.Po + -rm -f types/$(DEPDIR)/libstrace_a-check-rtnl_mdb.Po + -rm -f types/$(DEPDIR)/libstrace_a-check-rtnl_neightbl.Po + -rm -f types/$(DEPDIR)/libstrace_a-check-rtnl_route.Po + -rm -f types/$(DEPDIR)/libstrace_a-check-tee.Po + -rm -f types/$(DEPDIR)/libstrace_a-check-v4l2.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -8364,7 +9215,7 @@ uninstall-man: uninstall-man1 clean-cscope clean-generic clean-local clean-noinstLIBRARIES \ cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ dist-gzip dist-hook dist-lzip dist-shar dist-tarZ dist-xz \ - dist-zip distcheck distclean distclean-compile \ + dist-zip dist-zstd distcheck distclean distclean-compile \ distclean-generic distclean-hdr distclean-tags distcleancheck \ distdir distuninstallcheck dvi dvi-am html html-am info \ info-am install install-am install-binPROGRAMS \ @@ -8381,7 +9232,7 @@ uninstall-man: uninstall-man1 .PRECIOUS: Makefile -$(top_srcdir)/xlat/access_flags.h: $(top_srcdir)/xlat/access_flags.in $(top_srcdir)/xlat/gen.sh +$(top_srcdir)/xlat/access_modes.h: $(top_srcdir)/xlat/access_modes.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/addrfams.h: $(top_srcdir)/xlat/addrfams.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ @@ -8399,6 +9250,8 @@ $(top_srcdir)/xlat/af_packet_versions.h: $(top_srcdir)/xlat/af_packet_versions.i $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/aio_cmds.h: $(top_srcdir)/xlat/aio_cmds.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/aio_iocb_flags.h: $(top_srcdir)/xlat/aio_iocb_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/archvals.h: $(top_srcdir)/xlat/archvals.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/arp_hardware_types.h: $(top_srcdir)/xlat/arp_hardware_types.in $(top_srcdir)/xlat/gen.sh @@ -8443,6 +9296,8 @@ $(top_srcdir)/xlat/bpf_file_mode_flags.h: $(top_srcdir)/xlat/bpf_file_mode_flags $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/bpf_map_flags.h: $(top_srcdir)/xlat/bpf_map_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/bpf_map_lookup_elem_flags.h: $(top_srcdir)/xlat/bpf_map_lookup_elem_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/bpf_map_types.h: $(top_srcdir)/xlat/bpf_map_types.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/bpf_map_update_elem_flags.h: $(top_srcdir)/xlat/bpf_map_update_elem_flags.in $(top_srcdir)/xlat/gen.sh @@ -8529,6 +9384,8 @@ $(top_srcdir)/xlat/btrfs_space_info_flags.h: $(top_srcdir)/xlat/btrfs_space_info $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/btrfs_tree_objectids.h: $(top_srcdir)/xlat/btrfs_tree_objectids.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/cacheflush_flags.h: $(top_srcdir)/xlat/cacheflush_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/cacheflush_scope.h: $(top_srcdir)/xlat/cacheflush_scope.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/caif_protocols.h: $(top_srcdir)/xlat/caif_protocols.in $(top_srcdir)/xlat/gen.sh @@ -8547,10 +9404,16 @@ $(top_srcdir)/xlat/clockflags.h: $(top_srcdir)/xlat/clockflags.in $(top_srcdir)/ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/clocknames.h: $(top_srcdir)/xlat/clocknames.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/clone3_flags.h: $(top_srcdir)/xlat/clone3_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/clone_flags.h: $(top_srcdir)/xlat/clone_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/close_range_flags.h: $(top_srcdir)/xlat/close_range_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/cpuclocknames.h: $(top_srcdir)/xlat/cpuclocknames.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/crypto_msgs.h: $(top_srcdir)/xlat/crypto_msgs.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/crypto_nl_attrs.h: $(top_srcdir)/xlat/crypto_nl_attrs.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/dcb_commands.h: $(top_srcdir)/xlat/dcb_commands.in $(top_srcdir)/xlat/gen.sh @@ -8575,6 +9438,8 @@ $(top_srcdir)/xlat/ebpf_size.h: $(top_srcdir)/xlat/ebpf_size.in $(top_srcdir)/xl $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/efd_flags.h: $(top_srcdir)/xlat/efd_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/elf_em.h: $(top_srcdir)/xlat/elf_em.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/epollctls.h: $(top_srcdir)/xlat/epollctls.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/epollevents.h: $(top_srcdir)/xlat/epollevents.in $(top_srcdir)/xlat/gen.sh @@ -8593,6 +9458,8 @@ $(top_srcdir)/xlat/evdev_ff_status.h: $(top_srcdir)/xlat/evdev_ff_status.in $(to $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/evdev_ff_types.h: $(top_srcdir)/xlat/evdev_ff_types.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/evdev_ioctl_cmds.h: $(top_srcdir)/xlat/evdev_ioctl_cmds.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/evdev_keycode.h: $(top_srcdir)/xlat/evdev_keycode.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/evdev_leds.h: $(top_srcdir)/xlat/evdev_leds.in $(top_srcdir)/xlat/gen.sh @@ -8613,6 +9480,8 @@ $(top_srcdir)/xlat/f_owner_types.h: $(top_srcdir)/xlat/f_owner_types.in $(top_sr $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/f_seals.h: $(top_srcdir)/xlat/f_seals.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/faccessat_flags.h: $(top_srcdir)/xlat/faccessat_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/falloc_flags.h: $(top_srcdir)/xlat/falloc_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/fan_classes.h: $(top_srcdir)/xlat/fan_classes.in $(top_srcdir)/xlat/gen.sh @@ -8637,8 +9506,16 @@ $(top_srcdir)/xlat/fiemap_flags.h: $(top_srcdir)/xlat/fiemap_flags.in $(top_srcd $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/flockcmds.h: $(top_srcdir)/xlat/flockcmds.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/fsconfig_cmds.h: $(top_srcdir)/xlat/fsconfig_cmds.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/fsmagic.h: $(top_srcdir)/xlat/fsmagic.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/fsmount_flags.h: $(top_srcdir)/xlat/fsmount_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/fsopen_flags.h: $(top_srcdir)/xlat/fsopen_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/fspick_flags.h: $(top_srcdir)/xlat/fspick_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/futexbitset.h: $(top_srcdir)/xlat/futexbitset.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/futexops.h: $(top_srcdir)/xlat/futexops.in $(top_srcdir)/xlat/gen.sh @@ -8647,6 +9524,8 @@ $(top_srcdir)/xlat/futexwakecmps.h: $(top_srcdir)/xlat/futexwakecmps.in $(top_sr $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/futexwakeops.h: $(top_srcdir)/xlat/futexwakeops.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/get_mempolicy_flags.h: $(top_srcdir)/xlat/get_mempolicy_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/getrandom_flags.h: $(top_srcdir)/xlat/getrandom_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/getsock_ip_options.h: $(top_srcdir)/xlat/getsock_ip_options.in $(top_srcdir)/xlat/gen.sh @@ -8657,6 +9536,8 @@ $(top_srcdir)/xlat/getsock_options.h: $(top_srcdir)/xlat/getsock_options.in $(to $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/hci_channels.h: $(top_srcdir)/xlat/hci_channels.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/hdio_drive_cmds.h: $(top_srcdir)/xlat/hdio_drive_cmds.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/hw_breakpoint_len.h: $(top_srcdir)/xlat/hw_breakpoint_len.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/hw_breakpoint_type.h: $(top_srcdir)/xlat/hw_breakpoint_type.in $(top_srcdir)/xlat/gen.sh @@ -8733,8 +9614,16 @@ $(top_srcdir)/xlat/key_reqkeys.h: $(top_srcdir)/xlat/key_reqkeys.in $(top_srcdir $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/key_spec.h: $(top_srcdir)/xlat/key_spec.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/keyctl_caps0.h: $(top_srcdir)/xlat/keyctl_caps0.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/keyctl_caps1.h: $(top_srcdir)/xlat/keyctl_caps1.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/keyctl_commands.h: $(top_srcdir)/xlat/keyctl_commands.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/keyctl_move_flags.h: $(top_srcdir)/xlat/keyctl_move_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/keyctl_pkey_ops.h: $(top_srcdir)/xlat/keyctl_pkey_ops.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/kvm_cap.h: $(top_srcdir)/xlat/kvm_cap.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/kvm_cpuid_flags.h: $(top_srcdir)/xlat/kvm_cpuid_flags.in $(top_srcdir)/xlat/gen.sh @@ -8755,7 +9644,7 @@ $(top_srcdir)/xlat/lwtunnel_encap_types.h: $(top_srcdir)/xlat/lwtunnel_encap_typ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/madvise_cmds.h: $(top_srcdir)/xlat/madvise_cmds.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ -$(top_srcdir)/xlat/mbindflags.h: $(top_srcdir)/xlat/mbindflags.in $(top_srcdir)/xlat/gen.sh +$(top_srcdir)/xlat/mbind_flags.h: $(top_srcdir)/xlat/mbind_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/mctl_sync.h: $(top_srcdir)/xlat/mctl_sync.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ @@ -8767,8 +9656,6 @@ $(top_srcdir)/xlat/membarrier_cmds.h: $(top_srcdir)/xlat/membarrier_cmds.in $(to $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/memfd_create_flags.h: $(top_srcdir)/xlat/memfd_create_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ -$(top_srcdir)/xlat/mempolicyflags.h: $(top_srcdir)/xlat/mempolicyflags.in $(top_srcdir)/xlat/gen.sh - $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/mlock_flags.h: $(top_srcdir)/xlat/mlock_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/mlockall_flags.h: $(top_srcdir)/xlat/mlockall_flags.in $(top_srcdir)/xlat/gen.sh @@ -8783,10 +9670,18 @@ $(top_srcdir)/xlat/modetypes.h: $(top_srcdir)/xlat/modetypes.in $(top_srcdir)/xl $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/module_init_flags.h: $(top_srcdir)/xlat/module_init_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/mount_attr_flags.h: $(top_srcdir)/xlat/mount_attr_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/mount_flags.h: $(top_srcdir)/xlat/mount_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/move_mount_flags.h: $(top_srcdir)/xlat/move_mount_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/move_pages_flags.h: $(top_srcdir)/xlat/move_pages_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/mpol_mode_flags.h: $(top_srcdir)/xlat/mpol_mode_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/mpol_modes.h: $(top_srcdir)/xlat/mpol_modes.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/mq_attr_flags.h: $(top_srcdir)/xlat/mq_attr_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/mremap_flags.h: $(top_srcdir)/xlat/mremap_flags.in $(top_srcdir)/xlat/gen.sh @@ -8897,6 +9792,10 @@ $(top_srcdir)/xlat/open_access_modes.h: $(top_srcdir)/xlat/open_access_modes.in $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/open_mode_flags.h: $(top_srcdir)/xlat/open_mode_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/open_resolve_flags.h: $(top_srcdir)/xlat/open_resolve_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/open_tree_flags.h: $(top_srcdir)/xlat/open_tree_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/packet_diag_attrs.h: $(top_srcdir)/xlat/packet_diag_attrs.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/packet_diag_info_flags.h: $(top_srcdir)/xlat/packet_diag_info_flags.in $(top_srcdir)/xlat/gen.sh @@ -8939,8 +9838,6 @@ $(top_srcdir)/xlat/phonet_protocols.h: $(top_srcdir)/xlat/phonet_protocols.in $( $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/pkey_access.h: $(top_srcdir)/xlat/pkey_access.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ -$(top_srcdir)/xlat/policies.h: $(top_srcdir)/xlat/policies.in $(top_srcdir)/xlat/gen.sh - $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/pollflags.h: $(top_srcdir)/xlat/pollflags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/pr_cap_ambient.h: $(top_srcdir)/xlat/pr_cap_ambient.in $(top_srcdir)/xlat/gen.sh @@ -8971,7 +9868,9 @@ $(top_srcdir)/xlat/prctl_options.h: $(top_srcdir)/xlat/prctl_options.in $(top_sr $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/priorities.h: $(top_srcdir)/xlat/priorities.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ -$(top_srcdir)/xlat/ptp_flags_options.h: $(top_srcdir)/xlat/ptp_flags_options.in $(top_srcdir)/xlat/gen.sh +$(top_srcdir)/xlat/ptp_extts_flags.h: $(top_srcdir)/xlat/ptp_extts_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/ptp_perout_flags.h: $(top_srcdir)/xlat/ptp_perout_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/ptrace_cmds.h: $(top_srcdir)/xlat/ptrace_cmds.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ @@ -9011,6 +9910,10 @@ $(top_srcdir)/xlat/routing_table_ids.h: $(top_srcdir)/xlat/routing_table_ids.in $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/routing_types.h: $(top_srcdir)/xlat/routing_types.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/rtc_ioctl_cmds.h: $(top_srcdir)/xlat/rtc_ioctl_cmds.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/rtc_vl_flags.h: $(top_srcdir)/xlat/rtc_vl_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/rtnl_addr_attrs.h: $(top_srcdir)/xlat/rtnl_addr_attrs.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/rtnl_addrlabel_attrs.h: $(top_srcdir)/xlat/rtnl_addrlabel_attrs.in $(top_srcdir)/xlat/gen.sh @@ -9073,6 +9976,10 @@ $(top_srcdir)/xlat/rtnl_tc_action_attrs.h: $(top_srcdir)/xlat/rtnl_tc_action_att $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/rtnl_tc_attrs.h: $(top_srcdir)/xlat/rtnl_tc_attrs.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/rtnl_tca_act_flags.h: $(top_srcdir)/xlat/rtnl_tca_act_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/rtnl_tca_act_hw_stats.h: $(top_srcdir)/xlat/rtnl_tca_act_hw_stats.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/rtnl_tca_stab_attrs.h: $(top_srcdir)/xlat/rtnl_tca_stab_attrs.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/rtnl_tca_stats_attrs.h: $(top_srcdir)/xlat/rtnl_tca_stats_attrs.in $(top_srcdir)/xlat/gen.sh @@ -9291,6 +10198,8 @@ $(top_srcdir)/xlat/sysctl_vm.h: $(top_srcdir)/xlat/sysctl_vm.in $(top_srcdir)/xl $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/syslog_action_type.h: $(top_srcdir)/xlat/syslog_action_type.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/syslog_console_levels.h: $(top_srcdir)/xlat/syslog_console_levels.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/sysmips_operations.h: $(top_srcdir)/xlat/sysmips_operations.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/tcflsh_options.h: $(top_srcdir)/xlat/tcflsh_options.in $(top_srcdir)/xlat/gen.sh @@ -9301,6 +10210,24 @@ $(top_srcdir)/xlat/tcp_states.h: $(top_srcdir)/xlat/tcp_states.in $(top_srcdir)/ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/tcxonc_options.h: $(top_srcdir)/xlat/tcxonc_options.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/tee_ioctl_cmds.h: $(top_srcdir)/xlat/tee_ioctl_cmds.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/tee_ioctl_gen_caps.h: $(top_srcdir)/xlat/tee_ioctl_gen_caps.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/tee_ioctl_impl_ids.h: $(top_srcdir)/xlat/tee_ioctl_impl_ids.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/tee_ioctl_login_types.h: $(top_srcdir)/xlat/tee_ioctl_login_types.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/tee_ioctl_max_arg_size.h: $(top_srcdir)/xlat/tee_ioctl_max_arg_size.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/tee_ioctl_optee_caps.h: $(top_srcdir)/xlat/tee_ioctl_optee_caps.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/tee_ioctl_origins.h: $(top_srcdir)/xlat/tee_ioctl_origins.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/tee_ioctl_param_attr_types.h: $(top_srcdir)/xlat/tee_ioctl_param_attr_types.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/tee_ioctl_shm_flags.h: $(top_srcdir)/xlat/tee_ioctl_shm_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/timerfdflags.h: $(top_srcdir)/xlat/timerfdflags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/tun_device_types.h: $(top_srcdir)/xlat/tun_device_types.in $(top_srcdir)/xlat/gen.sh @@ -9331,16 +10258,30 @@ $(top_srcdir)/xlat/unix_diag_show.h: $(top_srcdir)/xlat/unix_diag_show.in $(top_ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/unshare_flags.h: $(top_srcdir)/xlat/unshare_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/uring_cqring_flags.h: $(top_srcdir)/xlat/uring_cqring_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/uring_enter_flags.h: $(top_srcdir)/xlat/uring_enter_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/uring_op_flags.h: $(top_srcdir)/xlat/uring_op_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/uring_ops.h: $(top_srcdir)/xlat/uring_ops.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/uring_register_opcodes.h: $(top_srcdir)/xlat/uring_register_opcodes.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/uring_setup_features.h: $(top_srcdir)/xlat/uring_setup_features.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/uring_setup_flags.h: $(top_srcdir)/xlat/uring_setup_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/usagewho.h: $(top_srcdir)/xlat/usagewho.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/v4l2_buf_flags.h: $(top_srcdir)/xlat/v4l2_buf_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/v4l2_buf_flags_masks.h: $(top_srcdir)/xlat/v4l2_buf_flags_masks.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/v4l2_buf_flags_ts_src.h: $(top_srcdir)/xlat/v4l2_buf_flags_ts_src.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/v4l2_buf_flags_ts_type.h: $(top_srcdir)/xlat/v4l2_buf_flags_ts_type.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/v4l2_buf_types.h: $(top_srcdir)/xlat/v4l2_buf_types.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/v4l2_capture_modes.h: $(top_srcdir)/xlat/v4l2_capture_modes.in $(top_srcdir)/xlat/gen.sh @@ -9355,6 +10296,8 @@ $(top_srcdir)/xlat/v4l2_control_id_bases.h: $(top_srcdir)/xlat/v4l2_control_id_b $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/v4l2_control_ids.h: $(top_srcdir)/xlat/v4l2_control_ids.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/v4l2_control_query_flags.h: $(top_srcdir)/xlat/v4l2_control_query_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/v4l2_control_types.h: $(top_srcdir)/xlat/v4l2_control_types.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/v4l2_device_capabilities_flags.h: $(top_srcdir)/xlat/v4l2_device_capabilities_flags.in $(top_srcdir)/xlat/gen.sh @@ -9369,6 +10312,8 @@ $(top_srcdir)/xlat/v4l2_framesize_types.h: $(top_srcdir)/xlat/v4l2_framesize_typ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/v4l2_input_types.h: $(top_srcdir)/xlat/v4l2_input_types.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/v4l2_ioctl_cmds.h: $(top_srcdir)/xlat/v4l2_ioctl_cmds.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/v4l2_memories.h: $(top_srcdir)/xlat/v4l2_memories.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/v4l2_pix_fmts.h: $(top_srcdir)/xlat/v4l2_pix_fmts.in $(top_srcdir)/xlat/gen.sh @@ -9393,6 +10338,8 @@ $(top_srcdir)/xlat/wait4_options.h: $(top_srcdir)/xlat/wait4_options.in $(top_sr $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/waitid_types.h: $(top_srcdir)/xlat/waitid_types.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/watchdog_ioctl_cmds.h: $(top_srcdir)/xlat/watchdog_ioctl_cmds.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/whence_codes.h: $(top_srcdir)/xlat/whence_codes.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/xattrflags.h: $(top_srcdir)/xlat/xattrflags.in $(top_srcdir)/xlat/gen.sh @@ -9490,11 +10437,11 @@ mpers-m%.stamp: $(srcdir_mpers_source_files) | printers.h for f in $^; do \ D="$(D)" \ READELF="$(READELF)" \ - CC="$(CC)" \ + CC="$(mpers_CC)" \ CFLAGS="$(mpers_sh_opts) -DMPERS_IS_$(mpers_NAME)" \ CPP="$(CPP)" \ CPPFLAGS="$(mpers_sh_opts) -DIN_MPERS -DMPERS_IS_$(mpers_NAME)" \ - $(srcdir)/mpers.sh $(mpers_NAME) $(mpers_CC_FLAGS) $$f || exit; \ + $(srcdir)/mpers.sh $(mpers_NAME) "$(mpers_CC_FLAGS)" $$f || exit; \ done > $@ @@ -9551,10 +10498,14 @@ printers.h: $(mpers_preproc_files) native_printer_decls.h native_printer_defs.h: mpers_PREFIX = @HAVE_M32_MPERS_TRUE@$(mpers_m32_targets): mpers_NAME = m32 -@HAVE_M32_MPERS_TRUE@$(mpers_m32_targets): mpers_CC_FLAGS = @cc_flags_m32@ +@HAVE_M32_MPERS_TRUE@$(mpers_m32_targets): mpers_CC_FLAGS = @CFLAGS_FOR_M32@ @cc_flags_m32@ +@HAVE_M32_MPERS_TRUE@$(mpers_m32_targets): mpers_CPPFLAGS = @CPPFLAGS_FOR_M32@ +@HAVE_M32_MPERS_TRUE@$(mpers_m32_targets): mpers_CC = @CC_FOR_M32@ @HAVE_MX32_MPERS_TRUE@$(mpers_mx32_targets): mpers_NAME = mx32 -@HAVE_MX32_MPERS_TRUE@$(mpers_mx32_targets): mpers_CC_FLAGS = @cc_flags_mx32@ +@HAVE_MX32_MPERS_TRUE@$(mpers_mx32_targets): mpers_CC_FLAGS = @CFLAGS_FOR_MX32@ @cc_flags_mx32@ +@HAVE_MX32_MPERS_TRUE@$(mpers_mx32_targets): mpers_CPPFLAGS = @CPPFLAGS_FOR_MX32@ +@HAVE_MX32_MPERS_TRUE@$(mpers_mx32_targets): mpers_CC = @CC_FOR_MX32@ clean-local: -rm -rf mpers-m32 mpers-mx32 diff --git a/NEWS b/NEWS index 0e5bfa26..bfead285 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,243 @@ +Noteworthy changes in release 5.9 (2020-09-24) +============================================== + +* Improvements + * Added -n/--syscall-number option for printing syscall numbers. + * Added --pidns-translation option for PID namespace translation (addresses + Fedora bug #1035433). + * Implemented decoding of close_range syscall. + * Implemented decoding of TEE_* ioctl commands. + * Implemented decoding of struct msginfo argument of IPC_INFO + and MSG_INFO msgctl syscall commands. + * Implemented decoding of struct msqid_ds argument of MSG_STAT + and MSG_STAT_ANY msgctl syscall commands. + * Implemented decoding of struct seminfo argument of IPC_INFO + and SEM_INFO semctl syscall commands. + * Implemented decoding of struct semid_ds argument of IPC_SET, + IPC_STAT, SEM_STAT, and SEM_STAT_ANY semctl syscall commands. + * Implemented decoding of struct shminfo argument of IPC_INFO + shmctl syscall command. + * Implemented decoding of struct shm_info argument of SHM_INFO + shmctl syscall command. + * Implemented decoding of struct shmid_ds argument of SHM_STAT + and SHM_STAT_ANY shmctl syscall commands. + * Updated lists of BPF_*, CAP_*, FAN_*, IFLA_*, INET_DIAG_REQ_*, + IORING_FEAT_*, IP_*, IPV6_*, KVM_*, NDA_*, PTP_PEROUT_*, RTPROT_*, + and V4L2_FMT_FLAG_* constants. + * Updated lists of ioctl commands from Linux 5.9. + +Noteworthy changes in release 5.8 (2020-08-06) +============================================== + +* Changes in behaviour + * Modified %process class to contain system calls associated with + process lifecycle (creation, exec, termination): + kill, tkill, tgkill, pidfd_send_signal and rt_sigqueueinfo are added, + arch_prctl and unshare are removed. + +* Improvements + * Implemented decoding of faccessat2 syscall. + * Implemented decoding of LOOP_CONFIGURE ioctl command. + * Updated decoding of io_uring_setup syscall to match Linux 5.8. + * Updated lists of AUDIT_*, BPF_*, CAP_*, ETH_*, INET_DIAG_*, IORING_*, + KEYCTL_*, KVM_*, LOOP_*, NDA_*, RTC_*, TCA_*, STATX_*, and *_MAGIC + constants. + * Updated lists of ioctl commands from Linux 5.8. + +* Bug fixes + * Added statx syscall to %fstat trace class. + +Noteworthy changes in release 5.7 (2020-06-01) +============================================== + +* Improvements + * Implemented interval specification in "when=" subexpression of syscall + tampering expressions. + * Added -e trace=%clock option for tracing syscalls reading of modifying + system clocks. + * Implemented decoding of BPF_LINK_CREATE and BPF_LINK_UPDATE bpf + syscall commands. + * Updated decoding of clone3 syscall to match Linux 5.7. + * Updated lists of BPF_*, BTRFS_*, CLONE_*, FAN_*, IORING_*, KVM_*, + LWTUNNEL_*, MREMAP_*, PERF_*, SECCOMP_*, UFFDIO_*, V4L2_*, and XDP_* + constants. + * Updated lists of ioctl commands from Linux 5.7. + +* Bug fixes + * Fixed decoding of getdents and getdents64 syscalls when they return + a lot of directory entries. + * Fixed pathtrace matching of openat2 syscall. + * Fixed build on systems without fork. + +Noteworthy changes in release 5.6 (2020-04-07) +============================================== + +* Changes in behaviour + * Messages about unknown tracees are now subject to the strace's quietness + setting (-q/--quiet). + * If -A option is provided without -o, or -S option without -c/-C, a warning + about its uselessness is printed now. + * The usage of --seccomp-bpf without -f has no effect now. + +* Improvements + * Every short option now has a long option alias, which also has enabled + the following improvements: + * Ability to use human-readable settings for -I/--interruptible, + -D/--daemonize options. + * Ability to silence specific messages using -e quiet/--quiet qualifier + (an alias for the -q option), including those that couldn't be silenced + previously (path resolution messages and "superseded by execve"). + * Ability to specify selected fd decoding features using + -e decode-fds/--decode-fds qualifier (an alias for the -y option). + * Ability to set precision for the absolute timestamp, relative timestamp, + and syscall time output (using --absolute-timestamps, + --relative-timestamps, and --syscall-times options, respectively). + * Implemented ability to select the set of displayed columns in the call + summary output (-U/--summary-columns option). + * Implemented ability to sort on any summary column. + * Implemented ability to show information about minimum and maximum call + duration in the call summary output (addresses Debian bug #240945). + * Implemented printing of PIDs associated with pidfds in -yy mode. + * Implemented PTRACE_GETREGS API support on hppa, sh, sh64, and xtensa. + * Improved performance of libdw-based stack traces printing by implementing + a symbol-to-address cache. + * Implemented decoding of openat2 and pidfd_getfd syscalls. + * Enhanced io_uring_register, prctl, sched_getattr, and sched_setattr syscall + decoding. + * Implemented decoding of BPF_MAP_LOOKUP_BATCH, + BPF_MAP_LOOKUP_AND_DELETE_BATCH, BPF_MAP_UPDATE_BATCH, and + BPF_MAP_DELETE_BATCH bpf syscall commands. + * Enhanced decoding of BPF_MAP_CREATE and BPF_PROG_ATTACH bpf syscall + commands. + * Enhanced decoding of RTC_VL_READ ioctl command. + * Enhanced decoding of IFLA_* netlink attributes. + * Implemented HIDIOCGRAWUNIQ() ioctl command number printing. + * Wired up kexec_file_load syscall on hppa. + * Updated lists of AUDIT_*, BPF_*, CLONE_*, GRND_*, IFLA_*, IORING_*, + IPPROTO_*, KEY_*, KVM_*, RTM_F_*, SCHED_*, and *_MAGIC constants. + * Updated lists of ioctl commands from Linux 5.6. + +* Bug fixes + * Fixed build on csky abiv1 architecture. + * Various minor fixes in VIDIOC_* ioctl output formatting. + * Fix printing of the size field for _IOC_NONE ioctl command numbers on sparc. + +* Portability + * On hppa, linux kernel >= 4.7 is required. + On sh and sh64, linux kernel >= 2.6.28 is required. + Older versions without a decent PTRACE_GETREGS support will not work. + +Noteworthy changes in release 5.5 (2020-02-06) +============================================== + +* Improvements + * Added -e trace=%creds option for tracing syscalls related to process + credentials. + * Enhanced decoding of arch_prctl, keyctl, io_uring_register, io_uring_setup, + and perf_event_open syscalls. + * Enhanced decoding of BPF_PROG_LOAD bpf syscall command. + * Updated decoding of clone3 syscall to match Linux 5.5. + * Implemented decoding of TCA_ACT_FLAGS and TCA_STATS_PKT64 netlink + attributes. + * Updated lists of AUDIT_*, BPF_*, CLONE_*, KEY_*, KVM_*, PPC_PTRACE_*, + SCTP_*, STATX_*, TIPC_*, V4L2_*, and *_MAGIC constants. + * Updated lists of ioctl commands from Linux 5.5. + * Enhanced manual page and "strace --help" output. + +* Bug fixes + * Fixed stack trace printing for early syscalls when strace is configured + to use libdw backend for stack tracing (addresses Fedora bug #1788636). + * Fixed stack trace caching when --seccomp-bpf option is specified. + * Fixed potentially unaligned access in decoder of SO_TIMESTAMP*_NEW + control messages. + * Fixed decoding of NDA_LLADDR netlink neighbor table attribute. + * Fixed build of mpers support when CFLAGS contains -flto. + * Fixed build on no-MMU architectures. + * Fixed build with glibc-2.31 and Linux kernel headers < 5.3. + * Fixed tests for glibc-2.31. + +Noteworthy changes in release 5.4 (2019-11-28) +============================================== + +* Improvements + * Implemented -DD and -DDD options that move strace into a separate + process group and session, respectively. + * Enhanced seccomp-bpf tracee syscall filtering support by implementing + new "binary match" BPF program generation strategy and automatically + choosing the strategy that generates the shortest BPF program. + * Implemented decoding of BPF_BTF_GET_NEXT_ID bpf syscall command. + * Enhanced decoding of BPF_MAP_LOOKUP_ELEM bpf syscall command. + * Implemented PTP_CLOCK_GETCAPS2, PTP_EXTTS_REQUEST2, PTP_PEROUT_REQUEST2, + PTP_ENABLE_PPS2, and PTP_SYS_OFFSET2 ioctl decoding. + * Updated lists of BPF_*, CAN_*, KEXEC_*, KVM_*, MADV_*, MSG_*, P_*, PR_*, + PTP_*, SCTP_*, and V4L2_* constants. + * Implemented ability to build ARM EABI mpers support using a separate + compiler on aarch64. + * Updated lists of ioctl commands from Linux 5.4. + * Enhanced manual page. + +* Bug fixes + * Fixed -b execve when --seccomp-bpf option is specified. + * Fixed decoding of BPF_PROG_LOAD bpf syscall command. + * Fixed build on no-MMU architectures. + * Fixed build on antique systems that do not provide necessary definitions + of AUDIT_ARCH_* constants. + +Noteworthy changes in release 5.3 (2019-09-25) +============================================== + +* Improvements + * Implemented usage of seccomp-bpf for stopping tracees only for filtered + syscalls. Use --seccomp-bpf option to enable. + * Implemented decoding of pidfd_open and clone3 syscalls. + * Enhanced decoding of io_cancel, io_submit, s390_sthyi, and syslog syscalls. + * Enhanced decoding of NETLINK_ROUTE protocol. + * Implemented decoding of UNIX_DIAG_UID netlink attribute. + * Implemented decoding of WDIOC_* ioctl commands. + * Enhanced syscall count statistics: overhead is now applied per-call, + added ability for sorting on errors field. + * Syscall delay injection and overhead values can now be supplied with + time measure unit suffix and provided in IEEE 754 floating point format. + * Updated lists of AUDIT_*, BPF_*, ETH_*, KEYCTL_*, KVM_*, MAP_*, SO_*, TCP_*, V4L2_*, + XDP_*, and *_MAGIC constants. + * Updated lists of ioctl commands from Linux 5.3. + * Enhanced manual page. + +* Bug fixes + * Fixed syscall tampering on arc, avr32, csky, ia64, m68k, metag, mips, + nios2, or1k, riscv, s390, s390x, sparc, sparc64, and tile architectures + when PTRACE_GET_SYSCALL_INFO is in use. + * Fixed decoding of sockaddr_hci (AF_BLUETOOTH) addresses that lack + hci_channel field. + * Fixed evdev ioctl bitset decoding. + * Fixed tests on alpha with Linux kernel headers 5.1+. + +* Portability + * Removed support for decoding syscalls in range [1024...1079] on AArch64 + architecture as this range has never been implemented in mainline kernel + releases. + +Noteworthy changes in release 5.2 (2019-07-12) +============================================== + +* Improvements + * Implemented syscall return status filtering with -e status=set option + and its aliases: -z (limit syscall printing to successful syscalls only) + and -Z (limit syscall printing to failed syscalls only). Addresses Debian + bug #176376. + * Implemented decoding of open_tree, move_mount, fsopen, fsconfig, fsmount, + and fspick syscalls. + * Enhanced decoding of bpf, clone, inotify_init, mbind, and set_mempolicy + syscalls. + * Updated lists of AT_*, AUDIT_*, BPF_*, CLONE_*, ETH_*, KEY_*, KVM_*, MPOL_*, + TIPC_*, and V4L2_* constants. + * Updated lists of ioctl commands from Linux 5.2. + +* Bug fixes + * Fixed syscall tampering on powerpc and powerpc64 when + PTRACE_GET_SYSCALL_INFO is in use. + * Fixed build with cutting-edge toolchain. + Noteworthy changes in release 5.1 (2019-05-22) ============================================== diff --git a/README-configure b/README-configure index c39085af..de147679 100644 --- a/README-configure +++ b/README-configure @@ -57,7 +57,7 @@ you want to change it or regenerate 'configure' using a newer version of 2. Type 'make' to compile the package. - 3. Optionally, type 'make check' to run any self-tests that come with + 3. Optionally, type 'make -k check' to run any self-tests that come with the package, generally using the just-built uninstalled binaries. 4. Type 'make install' to install the programs and any data files and diff --git a/access.c b/access.c index 5c2e6e99..759e0a6a 100644 --- a/access.c +++ b/access.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -9,25 +9,42 @@ #include -#include "xlat/access_flags.h" +#include "xlat/access_modes.h" +#include "xlat/faccessat_flags.h" -static int +static void decode_access(struct tcb *tcp, int offset) { printpath(tcp, tcp->u_arg[offset]); tprints(", "); - printflags(access_flags, tcp->u_arg[offset + 1], "?_OK"); + printflags(access_modes, tcp->u_arg[offset + 1], "?_OK"); +} +SYS_FUNC(access) +{ + decode_access(tcp, 0); return RVAL_DECODED; } -SYS_FUNC(access) +static void +decode_faccessat(struct tcb *tcp) { - return decode_access(tcp, 0); + print_dirfd(tcp, tcp->u_arg[0]); + tprints(", "); + decode_access(tcp, 1); } + SYS_FUNC(faccessat) { - print_dirfd(tcp, tcp->u_arg[0]); - return decode_access(tcp, 1); + decode_faccessat(tcp); + return RVAL_DECODED; +} + +SYS_FUNC(faccessat2) +{ + decode_faccessat(tcp); + tprints(", "); + printflags(faccessat_flags, tcp->u_arg[3], "AT_???"); + return RVAL_DECODED; } diff --git a/aclocal.m4 b/aclocal.m4 index ce4cb716..7cf44c94 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.16.1 -*- Autoconf -*- +# generated automatically by aclocal 1.16.2 -*- Autoconf -*- -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2020 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -20,7 +20,7 @@ You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -35,7 +35,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.16' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.16.1], [], +m4_if([$1], [1.16.2], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -51,14 +51,74 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.16.1])dnl +[AM_AUTOMAKE_VERSION([1.16.2])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) +# Copyright (C) 2011-2020 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_AR([ACT-IF-FAIL]) +# ------------------------- +# Try to determine the archiver interface, and trigger the ar-lib wrapper +# if it is needed. If the detection of archiver interface fails, run +# ACT-IF-FAIL (default is to abort configure with a proper error message). +AC_DEFUN([AM_PROG_AR], +[AC_BEFORE([$0], [LT_INIT])dnl +AC_BEFORE([$0], [AC_PROG_LIBTOOL])dnl +AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([ar-lib])dnl +AC_CHECK_TOOLS([AR], [ar lib "link -lib"], [false]) +: ${AR=ar} + +AC_CACHE_CHECK([the archiver ($AR) interface], [am_cv_ar_interface], + [AC_LANG_PUSH([C]) + am_cv_ar_interface=ar + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int some_variable = 0;]])], + [am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([am_ar_try]) + if test "$ac_status" -eq 0; then + am_cv_ar_interface=ar + else + am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([am_ar_try]) + if test "$ac_status" -eq 0; then + am_cv_ar_interface=lib + else + am_cv_ar_interface=unknown + fi + fi + rm -f conftest.lib libconftest.a + ]) + AC_LANG_POP([C])]) + +case $am_cv_ar_interface in +ar) + ;; +lib) + # Microsoft lib, so override with the ar-lib wrapper script. + # FIXME: It is wrong to rewrite AR. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__AR in this case, + # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something + # similar. + AR="$am_aux_dir/ar-lib $AR" + ;; +unknown) + m4_default([$1], + [AC_MSG_ERROR([could not determine $AR interface])]) + ;; +esac +AC_SUBST([AR])dnl +]) + # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -110,7 +170,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd` # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -141,7 +201,7 @@ AC_CONFIG_COMMANDS_PRE( Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -332,7 +392,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -371,7 +431,9 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], done if test $am_rc -ne 0; then AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments - for automatic dependency tracking. Try re-running configure with the + for automatic dependency tracking. If GNU make was not used, consider + re-running the configure script with MAKE="gmake" (or whatever is + necessary). You can also try re-running configure with the '--disable-dependency-tracking' option to at least be able to build the package (albeit without support for automatic dependency tracking).]) fi @@ -398,7 +460,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], # AM_EXTRA_RECURSIVE_TARGETS -*- Autoconf -*- -# Copyright (C) 2012-2018 Free Software Foundation, Inc. +# Copyright (C) 2012-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -415,7 +477,7 @@ AC_DEFUN([AM_EXTRA_RECURSIVE_TARGETS], []) # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -612,7 +674,7 @@ for _am_header in $config_headers :; do done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -633,7 +695,7 @@ if test x"${install_sh+set}" != xset; then fi AC_SUBST([install_sh])]) -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -655,7 +717,7 @@ AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -690,7 +752,7 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -733,7 +795,7 @@ AC_SUBST([am__quote])]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -772,7 +834,7 @@ fi # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -801,7 +863,7 @@ AC_DEFUN([_AM_SET_OPTIONS], AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -848,7 +910,7 @@ AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -867,7 +929,7 @@ AC_DEFUN([AM_RUN_LOG], # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -948,7 +1010,7 @@ AC_CONFIG_COMMANDS_PRE( rm -f conftest.file ]) -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1008,7 +1070,7 @@ AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1036,7 +1098,7 @@ fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# Copyright (C) 2006-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1055,7 +1117,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1186,12 +1248,55 @@ AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR +m4_include([xlat/btrfs_compress_types.m4]) +m4_include([xlat/close_range_flags.m4]) +m4_include([xlat/loop_flags_options.m4]) +m4_include([xlat/rtnl_ifla_xdp_attached_mode.m4]) +m4_include([xlat/rtnl_ifla_xdp_attrs.m4]) +m4_include([xlat/rtnl_link_attrs.m4]) +m4_include([xlat/rtnl_tc_action_attrs.m4]) +m4_include([xlat/rtnl_tca_stab_attrs.m4]) +m4_include([xlat/rtnl_tca_stats_attrs.m4]) +m4_include([xlat/st_check_enums.m4]) +m4_include([xlat/sysctl_kern.m4]) +m4_include([xlat/sysctl_net.m4]) +m4_include([xlat/sysctl_net_core.m4]) +m4_include([xlat/sysctl_net_ipv4.m4]) +m4_include([xlat/sysctl_net_ipv4_conf.m4]) +m4_include([xlat/sysctl_net_ipv4_route.m4]) +m4_include([xlat/sysctl_net_ipv6.m4]) +m4_include([xlat/sysctl_net_ipv6_route.m4]) +m4_include([xlat/sysctl_net_unix.m4]) +m4_include([xlat/sysctl_root.m4]) +m4_include([xlat/sysctl_vm.m4]) +m4_include([xlat/v4l2_buf_types.m4]) +m4_include([xlat/v4l2_colorspaces.m4]) +m4_include([xlat/v4l2_control_types.m4]) +m4_include([xlat/v4l2_fields.m4]) +m4_include([xlat/v4l2_framesize_types.m4]) +m4_include([xlat/v4l2_memories.m4]) +m4_include([xlat/v4l2_tuner_types.m4]) +m4_include([xlat/waitid_types.m4]) +m4_include([types/check-btrfs.m4]) +m4_include([types/check-cryptouser.m4]) +m4_include([types/check-evdev.m4]) +m4_include([types/check-io_uring.m4]) +m4_include([types/check-loop.m4]) +m4_include([types/check-openat2.m4]) +m4_include([types/check-rtnl_link.m4]) +m4_include([types/check-rtnl_mdb.m4]) +m4_include([types/check-rtnl_neightbl.m4]) +m4_include([types/check-rtnl_route.m4]) +m4_include([types/check-tee.m4]) +m4_include([types/check-v4l2.m4]) +m4_include([types/st_check_types.m4]) m4_include([m4/ax_code_coverage.m4]) m4_include([m4/ax_prog_cc_for_build.m4]) m4_include([m4/ax_valgrind_check.m4]) m4_include([m4/bpf_attr.m4]) m4_include([m4/mpers.m4]) m4_include([m4/st_demangle.m4]) +m4_include([m4/st_esyscmd_s.m4]) m4_include([m4/st_libdw.m4]) m4_include([m4/st_libunwind.m4]) m4_include([m4/st_save_restore_var.m4]) diff --git a/affinity.c b/affinity.c index eb3158b7..f1aec4be 100644 --- a/affinity.c +++ b/affinity.c @@ -1,6 +1,7 @@ /* * Copyright (c) 2002-2004 Roland McGrath * Copyright (c) 2009-2018 Dmitry V. Levin + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -82,7 +83,8 @@ SYS_FUNC(sched_setaffinity) const int pid = tcp->u_arg[0]; const unsigned int len = tcp->u_arg[1]; - tprintf("%d, %u, ", pid, len); + printpid(tcp, pid, PT_TGID); + tprintf(", %u, ", len); print_affinitylist(tcp, tcp->u_arg[2], len); return RVAL_DECODED; @@ -94,7 +96,8 @@ SYS_FUNC(sched_getaffinity) const unsigned int len = tcp->u_arg[1]; if (entering(tcp)) { - tprintf("%d, %u, ", pid, len); + printpid(tcp, pid, PT_TGID); + tprintf(", %u, ", len); } else { print_affinitylist(tcp, tcp->u_arg[2], tcp->u_rval); } diff --git a/aio.c b/aio.c index a825cae3..45b1da88 100644 --- a/aio.c +++ b/aio.c @@ -15,6 +15,16 @@ #include "xlat/aio_cmds.h" +#ifdef HAVE_STRUCT_IOCB_AIO_FLAGS +# include "xlat/aio_iocb_flags.h" +#endif + +#ifdef HAVE_STRUCT_IOCB_AIO_RW_FLAGS +# define AIO_RW_FLAGS_FIELD aio_rw_flags +#else +# define AIO_RW_FLAGS_FIELD aio_reserved1 +#endif + SYS_FUNC(io_setup) { if (entering(tcp)) @@ -32,7 +42,7 @@ SYS_FUNC(io_destroy) } enum iocb_sub { - SUB_NONE, SUB_COMMON, SUB_VECTOR + SUB_NONE, SUB_COMMON, SUB_VECTOR, SUB_POLL }; static enum iocb_sub @@ -44,14 +54,13 @@ tprint_lio_opcode(unsigned int cmd) [IOCB_CMD_FSYNC] = SUB_NONE, [IOCB_CMD_FDSYNC] = SUB_NONE, [IOCB_CMD_PREADX] = SUB_NONE, - [IOCB_CMD_POLL] = SUB_NONE, + [IOCB_CMD_POLL] = SUB_POLL, [IOCB_CMD_NOOP] = SUB_NONE, [IOCB_CMD_PREADV] = SUB_VECTOR, [IOCB_CMD_PWRITEV] = SUB_VECTOR, }; - printxval_indexn_ex(ARRSZ_PAIR(aio_cmds) - 1, cmd, "IOCB_CMD_???", - XLAT_STYLE_FMT_U); + printxval_ex(aio_cmds, cmd, "IOCB_CMD_???", XLAT_STYLE_FMT_U); return cmd < ARRAY_SIZE(subs) ? subs[cmd] : SUB_NONE; } @@ -59,13 +68,16 @@ tprint_lio_opcode(unsigned int cmd) static void print_common_flags(struct tcb *tcp, const struct iocb *cb) { -/* IOCB_FLAG_RESFD is available since v2.6.22-rc1~47 */ -#ifdef IOCB_FLAG_RESFD +/* aio_flags and aio_resfd fields are available since v2.6.22-rc1~47 */ +#ifdef HAVE_STRUCT_IOCB_AIO_FLAGS + if (cb->aio_flags) + PRINT_FIELD_FLAGS(", ", *cb, aio_flags, aio_iocb_flags, + "IOCB_FLAG_???"); + if (cb->aio_flags & IOCB_FLAG_RESFD) PRINT_FIELD_FD(", ", *cb, aio_resfd, tcp); - - if (cb->aio_flags & ~IOCB_FLAG_RESFD) - PRINT_FIELD_X(", ", *cb, aio_flags); + else if (cb->aio_resfd) + PRINT_FIELD_X(", ", *cb, aio_resfd); #endif } @@ -82,20 +94,25 @@ print_iocb_header(struct tcb *tcp, const struct iocb *cb) { enum iocb_sub sub; - if (cb->aio_data){ - PRINT_FIELD_X("", *cb, aio_data); - tprints(", "); - } + PRINT_FIELD_X("", *cb, aio_data); - if (cb->aio_key) { - PRINT_FIELD_U("", *cb, aio_key); - tprints(", "); + if (cb->aio_key) + PRINT_FIELD_U(", ", *cb, aio_key); + + if (cb->AIO_RW_FLAGS_FIELD) { + tprints(", aio_rw_flags="); + printflags(rwf_flags, cb->AIO_RW_FLAGS_FIELD, "RWF_???"); } - tprints("aio_lio_opcode="); + tprints(", aio_lio_opcode="); sub = tprint_lio_opcode(cb->aio_lio_opcode); - if (cb->aio_reqprio) + + if (cb->aio_flags & IOCB_FLAG_IOPRIO) { + tprints(", aio_reqprio="); + print_ioprio(zero_extend_signed_to_ull(cb->aio_reqprio)); + } else if (cb->aio_reqprio) { PRINT_FIELD_D(", ", *cb, aio_reqprio); + } PRINT_FIELD_FD(", ", *cb, aio_fildes, tcp); @@ -135,6 +152,10 @@ print_iocb(struct tcb *tcp, const struct iocb *cb) PRINT_FIELD_D(", ", *cb, aio_offset); print_common_flags(tcp, cb); break; + case SUB_POLL: + PRINT_FIELD_FLAGS(", ", *cb, aio_buf, pollflags, "POLL???"); + print_common_flags(tcp, cb); + break; case SUB_NONE: break; } diff --git a/ar-lib b/ar-lib new file mode 100755 index 00000000..1e9388e2 --- /dev/null +++ b/ar-lib @@ -0,0 +1,271 @@ +#! /bin/sh +# Wrapper for Microsoft lib.exe + +me=ar-lib +scriptversion=2019-07-04.01; # UTC + +# Copyright (C) 2010-2020 Free Software Foundation, Inc. +# Written by Peter Rosin . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + + +# func_error message +func_error () +{ + echo "$me: $1" 1>&2 + exit 1 +} + +file_conv= + +# func_file_conv build_file +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN* | MSYS*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv in + mingw) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin | msys) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_at_file at_file operation archive +# Iterate over all members in AT_FILE performing OPERATION on ARCHIVE +# for each of them. +# When interpreting the content of the @FILE, do NOT use func_file_conv, +# since the user would need to supply preconverted file names to +# binutils ar, at least for MinGW. +func_at_file () +{ + operation=$2 + archive=$3 + at_file_contents=`cat "$1"` + eval set x "$at_file_contents" + shift + + for member + do + $AR -NOLOGO $operation:"$member" "$archive" || exit $? + done +} + +case $1 in + '') + func_error "no command. Try '$0 --help' for more information." + ;; + -h | --h*) + cat < - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -152,6 +152,7 @@ lookup_class(const char *s) { "%file", TRACE_FILE }, { "%memory", TRACE_MEMORY }, { "%process", TRACE_PROCESS }, + { "%creds", TRACE_CREDS }, { "%signal", TRACE_SIGNAL }, { "%ipc", TRACE_IPC }, { "%net", TRACE_NETWORK }, @@ -164,6 +165,7 @@ lookup_class(const char *s) { "%fstatfs", TRACE_FSTATFS }, { "%%statfs", TRACE_STATFS_LIKE }, { "%pure", TRACE_PURE }, + { "%clock", TRACE_CLOCK }, /* legacy class names */ { "desc", TRACE_DESC }, { "file", TRACE_FILE }, diff --git a/block.c b/block.c index 893269d0..783a4b5a 100644 --- a/block.c +++ b/block.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2009, 2010 Jeff Mahoney * Copyright (c) 2011-2016 Dmitry V. Levin - * Copyright (c) 2011-2018 The strace developers. + * Copyright (c) 2011-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -179,7 +179,7 @@ MPERS_PRINTER_DECL(int, block_ioctl, struct tcb *const tcp, PRINT_FIELD_U(", ", buts, buf_nr); PRINT_FIELD_U(", ", buts, start_lba); PRINT_FIELD_U(", ", buts, end_lba); - PRINT_FIELD_U(", ", buts, pid); + PRINT_FIELD_TGID(", ", buts, pid, tcp); return 0; } else { struct_blk_user_trace_setup buts; diff --git a/bpf.c b/bpf.c index 420b4402..0ec33ba4 100644 --- a/bpf.c +++ b/bpf.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2015-2017 Dmitry V. Levin * Copyright (c) 2017 Quentin Monnet - * Copyright (c) 2015-2019 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -23,6 +23,7 @@ #include "xlat/bpf_map_flags.h" #include "xlat/bpf_prog_types.h" #include "xlat/bpf_prog_flags.h" +#include "xlat/bpf_map_lookup_elem_flags.h" #include "xlat/bpf_map_update_elem_flags.h" #include "xlat/bpf_attach_type.h" #include "xlat/bpf_attach_flags.h" @@ -131,9 +132,9 @@ print_ebpf_insn(struct tcb * const tcp, void * const elem_buf, /* We can't use PRINT_FIELD_XVAL on bit fields */ tprints(", dst_reg="); - printxval_index(ebpf_regs, insn->dst_reg, "BPF_REG_???"); + printxval(ebpf_regs, insn->dst_reg, "BPF_REG_???"); tprints(", src_reg="); - printxval_index(ebpf_regs, insn->src_reg, "BPF_REG_???"); + printxval(ebpf_regs, insn->src_reg, "BPF_REG_???"); PRINT_FIELD_D(", ", *insn, off); PRINT_FIELD_X(", ", *insn, imm); @@ -159,8 +160,8 @@ print_ebpf_prog(struct tcb *const tcp, const uint64_t addr, const uint32_t len) BEGIN_BPF_CMD_DECODER(BPF_MAP_CREATE) { - PRINT_FIELD_XVAL_INDEX("{", attr, map_type, bpf_map_types, - "BPF_MAP_TYPE_???"); + PRINT_FIELD_XVAL("{", attr, map_type, bpf_map_types, + "BPF_MAP_TYPE_???"); PRINT_FIELD_U(", ", attr, key_size); PRINT_FIELD_U(", ", attr, value_size); PRINT_FIELD_U(", ", attr, max_entries); @@ -223,6 +224,14 @@ BEGIN_BPF_CMD_DECODER(BPF_MAP_CREATE) PRINT_FIELD_FD(", ", attr, btf_fd, tcp); PRINT_FIELD_U(", ", attr, btf_key_type_id); PRINT_FIELD_U(", ", attr, btf_value_type_id); + + /* + * The following field was introduced by Linux commit + * v5.6-rc1~151^2~46^2~37^2~5. + */ + if (len <= offsetof(struct BPF_MAP_CREATE_struct, btf_vmlinux_value_type_id)) + break; + PRINT_FIELD_U(", ", attr, btf_vmlinux_value_type_id); } END_BPF_CMD_DECODER(RVAL_DECODED | RVAL_FD) @@ -231,6 +240,11 @@ BEGIN_BPF_CMD_DECODER(BPF_MAP_LOOKUP_ELEM) PRINT_FIELD_FD("{", attr, map_fd, tcp); PRINT_FIELD_ADDR64(", ", attr, key); PRINT_FIELD_ADDR64(", ", attr, value); + /* flags field was added in Linux commit v5.1-rc1~178^2~375^2~4^2~3. */ + if (len <= offsetof(struct BPF_MAP_LOOKUP_ELEM_struct, flags)) + break; + PRINT_FIELD_FLAGS(", ", attr, flags, bpf_map_lookup_elem_flags, + "BPF_???"); } END_BPF_CMD_DECODER(RVAL_DECODED) @@ -241,8 +255,8 @@ BEGIN_BPF_CMD_DECODER(BPF_MAP_UPDATE_ELEM) PRINT_FIELD_FD("{", attr, map_fd, tcp); PRINT_FIELD_ADDR64(", ", attr, key); PRINT_FIELD_ADDR64(", ", attr, value); - PRINT_FIELD_XVAL_INDEX(", ", attr, flags, bpf_map_update_elem_flags, - "BPF_???"); + PRINT_FIELD_XVAL(", ", attr, flags, bpf_map_update_elem_flags, + "BPF_???"); } END_BPF_CMD_DECODER(RVAL_DECODED) @@ -261,15 +275,21 @@ BEGIN_BPF_CMD_DECODER(BPF_MAP_GET_NEXT_KEY) } END_BPF_CMD_DECODER(RVAL_DECODED) +BEGIN_BPF_CMD_DECODER(BPF_MAP_FREEZE) +{ + PRINT_FIELD_FD("{", attr, map_fd, tcp); +} +END_BPF_CMD_DECODER(RVAL_DECODED) + BEGIN_BPF_CMD_DECODER(BPF_PROG_LOAD) { - PRINT_FIELD_XVAL_INDEX("{", attr, prog_type, bpf_prog_types, - "BPF_PROG_TYPE_???"); + PRINT_FIELD_XVAL("{", attr, prog_type, bpf_prog_types, + "BPF_PROG_TYPE_???"); PRINT_FIELD_U(", ", attr, insn_cnt); tprints(", insns="); print_ebpf_prog(tcp, attr.insns, attr.insn_cnt); - tprintf(", license="); + tprints(", license="); print_big_u64_addr(attr.license); printstr(tcp, attr.license); @@ -278,7 +298,7 @@ BEGIN_BPF_CMD_DECODER(BPF_PROG_LOAD) break; PRINT_FIELD_U(", ", attr, log_level); PRINT_FIELD_U(", ", attr, log_size); - tprintf(", log_buf="); + tprints(", log_buf="); print_big_u64_addr(attr.log_buf); printstr_ex(tcp, attr.log_buf, attr.log_size, QUOTE_0_TERMINATED); @@ -331,12 +351,22 @@ BEGIN_BPF_CMD_DECODER(BPF_PROG_LOAD) PRINT_FIELD_U(", ", attr, line_info_rec_size); PRINT_FIELD_ADDR64(", ", attr, line_info); PRINT_FIELD_U(", ", attr, line_info_cnt); + + /* attach_btf_id was added in Linux commit v5.5-rc1~174^2~310^2~19^2~7 */ + if (len <= offsetof(struct BPF_PROG_LOAD_struct, attach_btf_id)) + break; + PRINT_FIELD_U(", ", attr, attach_btf_id); + + /* attach_prog_fd was added in Linux commit v5.5-rc1~174^2~49^2~12^2~3 */ + if (len <= offsetof(struct BPF_PROG_LOAD_struct, attach_prog_fd)) + break; + PRINT_FIELD_FD(", ", attr, attach_prog_fd, tcp); } END_BPF_CMD_DECODER(RVAL_DECODED | RVAL_FD) BEGIN_BPF_CMD_DECODER(BPF_OBJ_PIN) { - tprintf("{pathname="); + tprints("{pathname="); print_big_u64_addr(attr.pathname); printpath(tcp, attr.pathname); @@ -356,18 +386,24 @@ BEGIN_BPF_CMD_DECODER(BPF_PROG_ATTACH) { PRINT_FIELD_FD("{", attr, target_fd, tcp); PRINT_FIELD_FD(", ", attr, attach_bpf_fd, tcp); - PRINT_FIELD_XVAL_INDEX(", ", attr, attach_type, bpf_attach_type, - "BPF_???"); + PRINT_FIELD_XVAL(", ", attr, attach_type, bpf_attach_type, "BPF_???"); PRINT_FIELD_FLAGS(", ", attr, attach_flags, bpf_attach_flags, "BPF_F_???"); + + /* + * The following field was introduced by Linux commit + * v5.6-rc1~151^2~199^2~7^2~3. + */ + if (len <= offsetof(struct BPF_PROG_ATTACH_struct, replace_bpf_fd)) + break; + PRINT_FIELD_FD(", ", attr, replace_bpf_fd, tcp); } END_BPF_CMD_DECODER(RVAL_DECODED) BEGIN_BPF_CMD_DECODER(BPF_PROG_DETACH) { PRINT_FIELD_FD("{", attr, target_fd, tcp); - PRINT_FIELD_XVAL_INDEX(", ", attr, attach_type, bpf_attach_type, - "BPF_???"); + PRINT_FIELD_XVAL(", ", attr, attach_type, bpf_attach_type, "BPF_???"); } END_BPF_CMD_DECODER(RVAL_DECODED) @@ -381,6 +417,16 @@ BEGIN_BPF_CMD_DECODER(BPF_PROG_TEST_RUN) PRINT_FIELD_ADDR64(", ", attr, data_out); PRINT_FIELD_U(", ", attr, repeat); PRINT_FIELD_U(", ", attr, duration); + /* + * The following four fields were introduced by Linux commit + * v5.2-rc1~133^2~193^2~6. + */ + if (len > offsetof(struct BPF_PROG_TEST_RUN_struct, ctx_size_in)) { + PRINT_FIELD_U(", ", attr, ctx_size_in); + PRINT_FIELD_U(", ", attr, ctx_size_out); + PRINT_FIELD_ADDR64(", ", attr, ctx_in); + PRINT_FIELD_ADDR64(", ", attr, ctx_out); + } tprints("}"); } END_BPF_CMD_DECODER(RVAL_DECODED) @@ -399,6 +445,7 @@ BEGIN_BPF_CMD_DECODER(BPF_PROG_GET_NEXT_ID) END_BPF_CMD_DECODER(RVAL_DECODED) #define decode_BPF_MAP_GET_NEXT_ID decode_BPF_PROG_GET_NEXT_ID +#define decode_BPF_BTF_GET_NEXT_ID decode_BPF_PROG_GET_NEXT_ID BEGIN_BPF_CMD_DECODER(BPF_PROG_GET_FD_BY_ID) { @@ -491,6 +538,11 @@ print_bpf_map_info(struct tcb * const tcp, uint32_t bpf_fd, if (len <= offsetof(struct bpf_map_info_struct, ifindex)) goto print_bpf_map_info_end; PRINT_FIELD_IFINDEX(", ", info, ifindex); + /* + * btf_vmlinux_value_type_id field was crammed in + * by Linux commit v5.6-rc1~151^2~46^2~37^2~5. + */ + PRINT_FIELD_U(", ", info, btf_vmlinux_value_type_id); PRINT_FIELD_DEV(", ", info, netns_dev); PRINT_FIELD_U(", ", info, netns_ino); @@ -792,7 +844,7 @@ BEGIN_BPF_CMD_DECODER(BPF_OBJ_GET_INFO_BY_FD) if (saved && (saved->info_len != attr.info_len)) tprintf(" => %u", attr.info_len); - tprintf(", info="); + tprints(", info="); } print_bpf_obj_info(tcp, attr.bpf_fd, attr.info, attr.info_len, saved); @@ -810,8 +862,8 @@ BEGIN_BPF_CMD_DECODER(BPF_PROG_QUERY) if (entering(tcp)) { PRINT_FIELD_FD("{query={", attr, target_fd, tcp); - PRINT_FIELD_XVAL_INDEX(", ", attr, attach_type, bpf_attach_type, - "BPF_???"); + PRINT_FIELD_XVAL(", ", attr, attach_type, bpf_attach_type, + "BPF_???"); PRINT_FIELD_FLAGS(", ", attr, query_flags, bpf_query_flags, "BPF_F_QUERY_???"); PRINT_FIELD_FLAGS(", ", attr, attach_flags, bpf_attach_flags, @@ -842,7 +894,7 @@ BEGIN_BPF_CMD_DECODER(BPF_RAW_TRACEPOINT_OPEN) { enum { TP_NAME_SIZE = 128 }; - tprintf("{raw_tracepoint={name="); + tprints("{raw_tracepoint={name="); print_big_u64_addr(attr.name); printstr_ex(tcp, attr.name, TP_NAME_SIZE, QUOTE_0_TERMINATED); @@ -875,7 +927,7 @@ BEGIN_BPF_CMD_DECODER(BPF_TASK_FD_QUERY) if (entering(tcp)) { set_tcb_priv_ulong(tcp, attr.buf_len); - PRINT_FIELD_U("{task_fd_query={", attr, pid); + PRINT_FIELD_TGID("{task_fd_query={", attr, pid, tcp); PRINT_FIELD_FD(", ", attr, fd, tcp); PRINT_FIELD_U(", ", attr, flags); PRINT_FIELD_U(", ", attr, buf_len); @@ -889,12 +941,12 @@ BEGIN_BPF_CMD_DECODER(BPF_TASK_FD_QUERY) tprintf(" => %u", attr.buf_len); const unsigned int buf_len = MIN(saved_buf_len, attr.buf_len); - tprintf(", buf="); + tprints(", buf="); print_big_u64_addr(attr.buf); printstr_ex(tcp, attr.buf, buf_len, QUOTE_0_TERMINATED); PRINT_FIELD_U(", ", attr, prog_id); - PRINT_FIELD_XVAL_INDEX(", ", attr, fd_type, bpf_task_fd_type, - "BPF_FD_TYPE_???"); + PRINT_FIELD_XVAL(", ", attr, fd_type, bpf_task_fd_type, + "BPF_FD_TYPE_???"); PRINT_FIELD_X(", ", attr, probe_offset); PRINT_FIELD_X(", ", attr, probe_addr); @@ -902,6 +954,112 @@ BEGIN_BPF_CMD_DECODER(BPF_TASK_FD_QUERY) } END_BPF_CMD_DECODER(RVAL_DECODED) +BEGIN_BPF_CMD_DECODER(BPF_MAP_LOOKUP_BATCH) +{ + if (entering(tcp)) { + set_tcb_priv_ulong(tcp, attr.count); + + PRINT_FIELD_ADDR64("{batch={", attr, in_batch); + PRINT_FIELD_ADDR64(", ", attr, out_batch); + PRINT_FIELD_ADDR64(", ", attr, keys); + PRINT_FIELD_ADDR64(", ", attr, values); + PRINT_FIELD_U(", ", attr, count); + PRINT_FIELD_FD(", ", attr, map_fd, tcp); + PRINT_FIELD_FLAGS(", ", attr, elem_flags, + bpf_map_lookup_elem_flags, "BPF_???"); + PRINT_FIELD_X(", ", attr, flags); + + tprints("}"); + } else { + unsigned long count = get_tcb_priv_ulong(tcp); + + if (count != attr.count) { + PRINT_FIELD_U("=> {batch={", attr, count); + tprints("}}"); + } + + return RVAL_DECODED; + } +} +END_BPF_CMD_DECODER(0) + +#define decode_BPF_MAP_LOOKUP_AND_DELETE_BATCH decode_BPF_MAP_LOOKUP_BATCH + +BEGIN_BPF_CMD_DECODER(BPF_MAP_UPDATE_BATCH) +{ + if (entering(tcp)) { + set_tcb_priv_ulong(tcp, attr.count); + + PRINT_FIELD_ADDR64("{batch={", attr, keys); + PRINT_FIELD_ADDR64(", ", attr, values); + PRINT_FIELD_U(", ", attr, count); + PRINT_FIELD_FD(", ", attr, map_fd, tcp); + PRINT_FIELD_FLAGS(", ", attr, elem_flags, + bpf_map_lookup_elem_flags, "BPF_???"); + PRINT_FIELD_X(", ", attr, flags); + + tprints("}"); + } else { + unsigned long count = get_tcb_priv_ulong(tcp); + + if (count != attr.count) { + PRINT_FIELD_U("=> {batch={", attr, count); + tprints("}}"); + } + + return RVAL_DECODED; + } +} +END_BPF_CMD_DECODER(0) + +BEGIN_BPF_CMD_DECODER(BPF_MAP_DELETE_BATCH) +{ + if (entering(tcp)) { + set_tcb_priv_ulong(tcp, attr.count); + + PRINT_FIELD_ADDR64("{batch={", attr, keys); + PRINT_FIELD_U(", ", attr, count); + PRINT_FIELD_FD(", ", attr, map_fd, tcp); + PRINT_FIELD_FLAGS(", ", attr, elem_flags, + bpf_map_lookup_elem_flags, "BPF_???"); + PRINT_FIELD_X(", ", attr, flags); + + tprints("}"); + } else { + unsigned long count = get_tcb_priv_ulong(tcp); + + if (count != attr.count) { + PRINT_FIELD_U("=> {batch={", attr, count); + tprints("}}"); + } + + return RVAL_DECODED; + } +} +END_BPF_CMD_DECODER(0) + +BEGIN_BPF_CMD_DECODER(BPF_LINK_CREATE) +{ + PRINT_FIELD_FD("{link_create={", attr, prog_fd, tcp); + PRINT_FIELD_FD(", ", attr, target_fd, tcp); + PRINT_FIELD_XVAL(", ", attr, attach_type, bpf_attach_type, "BPF_???"); + PRINT_FIELD_X(", ", attr, flags); + tprints("}"); +} +END_BPF_CMD_DECODER(RVAL_DECODED | RVAL_FD) + +BEGIN_BPF_CMD_DECODER(BPF_LINK_UPDATE) +{ + PRINT_FIELD_FD("{link_update={", attr, link_fd, tcp); + PRINT_FIELD_FD(", ", attr, new_prog_fd, tcp); + PRINT_FIELD_FLAGS(", ", attr, flags, bpf_attach_flags, + "BPF_F_???"); + if (attr.flags & BPF_F_REPLACE) + PRINT_FIELD_FD(", ", attr, old_prog_fd, tcp); + tprints("}"); +} +END_BPF_CMD_DECODER(RVAL_DECODED) + SYS_FUNC(bpf) { static const bpf_cmd_decoder_t bpf_cmd_decoders[] = { @@ -927,6 +1085,14 @@ SYS_FUNC(bpf) BPF_CMD_ENTRY(BPF_BTF_GET_FD_BY_ID), BPF_CMD_ENTRY(BPF_TASK_FD_QUERY), BPF_CMD_ENTRY(BPF_MAP_LOOKUP_AND_DELETE_ELEM), + BPF_CMD_ENTRY(BPF_MAP_FREEZE), + BPF_CMD_ENTRY(BPF_BTF_GET_NEXT_ID), + BPF_CMD_ENTRY(BPF_MAP_LOOKUP_BATCH), + BPF_CMD_ENTRY(BPF_MAP_LOOKUP_AND_DELETE_BATCH), + BPF_CMD_ENTRY(BPF_MAP_UPDATE_BATCH), + BPF_CMD_ENTRY(BPF_MAP_DELETE_BATCH), + BPF_CMD_ENTRY(BPF_LINK_CREATE), + BPF_CMD_ENTRY(BPF_LINK_UPDATE), }; const unsigned int cmd = tcp->u_arg[0]; @@ -935,7 +1101,7 @@ SYS_FUNC(bpf) int rc = RVAL_DECODED; if (entering(tcp)) { - printxval_index(bpf_commands, cmd, "BPF_???"); + printxval(bpf_commands, cmd, "BPF_???"); tprints(", "); } diff --git a/bpf_attr.h b/bpf_attr.h index 5c5eee41..bed011bb 100644 --- a/bpf_attr.h +++ b/bpf_attr.h @@ -1,6 +1,6 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin - * Copyright (c) 2018-2019 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -49,21 +49,23 @@ struct BPF_MAP_CREATE_struct { uint32_t btf_fd; uint32_t btf_key_type_id; uint32_t btf_value_type_id; + uint32_t btf_vmlinux_value_type_id; }; # define BPF_MAP_CREATE_struct_size \ sizeof(struct BPF_MAP_CREATE_struct) -# define expected_BPF_MAP_CREATE_struct_size 60 +# define expected_BPF_MAP_CREATE_struct_size 64 struct BPF_MAP_LOOKUP_ELEM_struct { uint32_t map_fd; uint64_t ATTRIBUTE_ALIGNED(8) key; uint64_t ATTRIBUTE_ALIGNED(8) value; + uint64_t ATTRIBUTE_ALIGNED(8) flags; }; # define BPF_MAP_LOOKUP_ELEM_struct_size \ sizeof(struct BPF_MAP_LOOKUP_ELEM_struct) -# define expected_BPF_MAP_LOOKUP_ELEM_struct_size 24 +# define expected_BPF_MAP_LOOKUP_ELEM_struct_size 32 struct BPF_MAP_UPDATE_ELEM_struct { uint32_t map_fd; @@ -95,6 +97,14 @@ struct BPF_MAP_GET_NEXT_KEY_struct { sizeof(struct BPF_MAP_GET_NEXT_KEY_struct) # define expected_BPF_MAP_GET_NEXT_KEY_struct_size 24 +struct BPF_MAP_FREEZE_struct { + uint32_t map_fd; +}; + +# define BPF_MAP_FREEZE_struct_size \ + sizeof(struct BPF_MAP_FREEZE_struct) +# define expected_BPF_MAP_FREEZE_struct_size 4 + struct BPF_PROG_LOAD_struct { uint32_t prog_type; uint32_t insn_cnt; @@ -115,11 +125,13 @@ struct BPF_PROG_LOAD_struct { uint32_t line_info_rec_size; uint64_t ATTRIBUTE_ALIGNED(8) line_info; uint32_t line_info_cnt; + uint32_t attach_btf_id; + uint32_t attach_prog_fd; }; # define BPF_PROG_LOAD_struct_size \ - offsetofend(struct BPF_PROG_LOAD_struct, line_info_cnt) -# define expected_BPF_PROG_LOAD_struct_size 108 + offsetofend(struct BPF_PROG_LOAD_struct, attach_prog_fd) +# define expected_BPF_PROG_LOAD_struct_size 116 struct BPF_OBJ_PIN_struct { uint64_t ATTRIBUTE_ALIGNED(8) pathname; @@ -139,11 +151,12 @@ struct BPF_PROG_ATTACH_struct { uint32_t attach_bpf_fd; uint32_t attach_type; uint32_t attach_flags; + uint32_t replace_bpf_fd; }; # define BPF_PROG_ATTACH_struct_size \ sizeof(struct BPF_PROG_ATTACH_struct) -# define expected_BPF_PROG_ATTACH_struct_size 16 +# define expected_BPF_PROG_ATTACH_struct_size 20 struct BPF_PROG_DETACH_struct { uint32_t target_fd; @@ -164,11 +177,15 @@ struct BPF_PROG_TEST_RUN_struct /* test */ { uint64_t ATTRIBUTE_ALIGNED(8) data_out; uint32_t repeat; uint32_t duration; + uint32_t ctx_size_in; + uint32_t ctx_size_out; + uint64_t ATTRIBUTE_ALIGNED(8) ctx_in; + uint64_t ATTRIBUTE_ALIGNED(8) ctx_out; }; # define BPF_PROG_TEST_RUN_struct_size \ sizeof(struct BPF_PROG_TEST_RUN_struct) -# define expected_BPF_PROG_TEST_RUN_struct_size 40 +# define expected_BPF_PROG_TEST_RUN_struct_size 64 struct BPF_PROG_GET_NEXT_ID_struct { uint32_t start_id; @@ -183,6 +200,9 @@ struct BPF_PROG_GET_NEXT_ID_struct { # define BPF_MAP_GET_NEXT_ID_struct BPF_PROG_GET_NEXT_ID_struct # define BPF_MAP_GET_NEXT_ID_struct_size BPF_PROG_GET_NEXT_ID_struct_size +# define BPF_BTF_GET_NEXT_ID_struct BPF_PROG_GET_NEXT_ID_struct +# define BPF_BTF_GET_NEXT_ID_struct_size BPF_PROG_GET_NEXT_ID_struct_size + struct BPF_PROG_GET_FD_BY_ID_struct { uint32_t prog_id; uint32_t next_id; @@ -280,6 +300,7 @@ struct bpf_map_info_struct { uint32_t map_flags; char name[BPF_OBJ_NAME_LEN]; uint32_t ifindex; + uint32_t btf_vmlinux_value_type_id; /* * The kernel UAPI is broken by Linux commit * v4.16-rc1~123^2~109^2~5^2~4 . @@ -340,4 +361,50 @@ struct bpf_prog_info_struct { sizeof(struct bpf_prog_info_struct) # define expected_bpf_prog_info_struct_size 208 +struct BPF_MAP_LOOKUP_BATCH_struct /* batch */ { + uint64_t ATTRIBUTE_ALIGNED(8) in_batch; + uint64_t ATTRIBUTE_ALIGNED(8) out_batch; + uint64_t ATTRIBUTE_ALIGNED(8) keys; + uint64_t ATTRIBUTE_ALIGNED(8) values; + uint32_t count; + uint32_t map_fd; + uint64_t ATTRIBUTE_ALIGNED(8) elem_flags; + uint64_t ATTRIBUTE_ALIGNED(8) flags; +}; + +# define BPF_MAP_LOOKUP_BATCH_struct_size \ + sizeof(struct BPF_MAP_LOOKUP_BATCH_struct) +# define expected_BPF_MAP_LOOKUP_BATCH_struct_size 56 + +# define BPF_MAP_LOOKUP_AND_DELETE_BATCH_struct BPF_MAP_LOOKUP_BATCH_struct +# define BPF_MAP_LOOKUP_AND_DELETE_BATCH_struct_size BPF_MAP_LOOKUP_BATCH_struct_size + +# define BPF_MAP_UPDATE_BATCH_struct BPF_MAP_LOOKUP_BATCH_struct +# define BPF_MAP_UPDATE_BATCH_struct_size BPF_MAP_LOOKUP_BATCH_struct_size + +# define BPF_MAP_DELETE_BATCH_struct BPF_MAP_LOOKUP_BATCH_struct +# define BPF_MAP_DELETE_BATCH_struct_size BPF_MAP_LOOKUP_BATCH_struct_size + +struct BPF_LINK_CREATE_struct /* link_create */ { + uint32_t prog_fd; + uint32_t target_fd; + uint32_t attach_type; + uint32_t flags; +}; + +# define BPF_LINK_CREATE_struct_size \ + sizeof(struct BPF_LINK_CREATE_struct) +# define expected_BPF_LINK_CREATE_struct_size 16 + +struct BPF_LINK_UPDATE_struct /* link_update */ { + uint32_t link_fd; + uint32_t new_prog_fd; + uint32_t flags; + uint32_t old_prog_fd; +}; + +# define BPF_LINK_UPDATE_struct_size \ + sizeof(struct BPF_LINK_UPDATE_struct) +# define expected_BPF_LINK_UPDATE_struct_size 16 + #endif /* !STRACE_BPF_ATTR_H */ diff --git a/bpf_attr_check.c b/bpf_attr_check.c index a88c07c0..1fde3591 100644 --- a/bpf_attr_check.c +++ b/bpf_attr_check.c @@ -5,142 +5,155 @@ # include "bpf_attr.h" # include "static_assert.h" -# define SoM(type_, member_) (sizeof(((type_ *)0)->member_)) # ifdef HAVE_UNION_BPF_ATTR_MAP_TYPE - static_assert(SoM(struct BPF_MAP_CREATE_struct, map_type) == SoM(union bpf_attr, map_type), + static_assert(sizeof_field(struct BPF_MAP_CREATE_struct, map_type) == sizeof_field(union bpf_attr, map_type), "BPF_MAP_CREATE_struct.map_type size mismatch"); static_assert(offsetof(struct BPF_MAP_CREATE_struct, map_type) == offsetof(union bpf_attr, map_type), "BPF_MAP_CREATE_struct.map_type offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_MAP_TYPE */ # ifdef HAVE_UNION_BPF_ATTR_KEY_SIZE - static_assert(SoM(struct BPF_MAP_CREATE_struct, key_size) == SoM(union bpf_attr, key_size), + static_assert(sizeof_field(struct BPF_MAP_CREATE_struct, key_size) == sizeof_field(union bpf_attr, key_size), "BPF_MAP_CREATE_struct.key_size size mismatch"); static_assert(offsetof(struct BPF_MAP_CREATE_struct, key_size) == offsetof(union bpf_attr, key_size), "BPF_MAP_CREATE_struct.key_size offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_KEY_SIZE */ # ifdef HAVE_UNION_BPF_ATTR_VALUE_SIZE - static_assert(SoM(struct BPF_MAP_CREATE_struct, value_size) == SoM(union bpf_attr, value_size), + static_assert(sizeof_field(struct BPF_MAP_CREATE_struct, value_size) == sizeof_field(union bpf_attr, value_size), "BPF_MAP_CREATE_struct.value_size size mismatch"); static_assert(offsetof(struct BPF_MAP_CREATE_struct, value_size) == offsetof(union bpf_attr, value_size), "BPF_MAP_CREATE_struct.value_size offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_VALUE_SIZE */ # ifdef HAVE_UNION_BPF_ATTR_MAX_ENTRIES - static_assert(SoM(struct BPF_MAP_CREATE_struct, max_entries) == SoM(union bpf_attr, max_entries), + static_assert(sizeof_field(struct BPF_MAP_CREATE_struct, max_entries) == sizeof_field(union bpf_attr, max_entries), "BPF_MAP_CREATE_struct.max_entries size mismatch"); static_assert(offsetof(struct BPF_MAP_CREATE_struct, max_entries) == offsetof(union bpf_attr, max_entries), "BPF_MAP_CREATE_struct.max_entries offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_MAX_ENTRIES */ # ifdef HAVE_UNION_BPF_ATTR_MAP_FLAGS - static_assert(SoM(struct BPF_MAP_CREATE_struct, map_flags) == SoM(union bpf_attr, map_flags), + static_assert(sizeof_field(struct BPF_MAP_CREATE_struct, map_flags) == sizeof_field(union bpf_attr, map_flags), "BPF_MAP_CREATE_struct.map_flags size mismatch"); static_assert(offsetof(struct BPF_MAP_CREATE_struct, map_flags) == offsetof(union bpf_attr, map_flags), "BPF_MAP_CREATE_struct.map_flags offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_MAP_FLAGS */ # ifdef HAVE_UNION_BPF_ATTR_INNER_MAP_FD - static_assert(SoM(struct BPF_MAP_CREATE_struct, inner_map_fd) == SoM(union bpf_attr, inner_map_fd), + static_assert(sizeof_field(struct BPF_MAP_CREATE_struct, inner_map_fd) == sizeof_field(union bpf_attr, inner_map_fd), "BPF_MAP_CREATE_struct.inner_map_fd size mismatch"); static_assert(offsetof(struct BPF_MAP_CREATE_struct, inner_map_fd) == offsetof(union bpf_attr, inner_map_fd), "BPF_MAP_CREATE_struct.inner_map_fd offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_INNER_MAP_FD */ # ifdef HAVE_UNION_BPF_ATTR_NUMA_NODE - static_assert(SoM(struct BPF_MAP_CREATE_struct, numa_node) == SoM(union bpf_attr, numa_node), + static_assert(sizeof_field(struct BPF_MAP_CREATE_struct, numa_node) == sizeof_field(union bpf_attr, numa_node), "BPF_MAP_CREATE_struct.numa_node size mismatch"); static_assert(offsetof(struct BPF_MAP_CREATE_struct, numa_node) == offsetof(union bpf_attr, numa_node), "BPF_MAP_CREATE_struct.numa_node offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_NUMA_NODE */ # ifdef HAVE_UNION_BPF_ATTR_MAP_NAME - static_assert(SoM(struct BPF_MAP_CREATE_struct, map_name) == SoM(union bpf_attr, map_name), + static_assert(sizeof_field(struct BPF_MAP_CREATE_struct, map_name) == sizeof_field(union bpf_attr, map_name), "BPF_MAP_CREATE_struct.map_name size mismatch"); static_assert(offsetof(struct BPF_MAP_CREATE_struct, map_name) == offsetof(union bpf_attr, map_name), "BPF_MAP_CREATE_struct.map_name offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_MAP_NAME */ # ifdef HAVE_UNION_BPF_ATTR_MAP_IFINDEX - static_assert(SoM(struct BPF_MAP_CREATE_struct, map_ifindex) == SoM(union bpf_attr, map_ifindex), + static_assert(sizeof_field(struct BPF_MAP_CREATE_struct, map_ifindex) == sizeof_field(union bpf_attr, map_ifindex), "BPF_MAP_CREATE_struct.map_ifindex size mismatch"); static_assert(offsetof(struct BPF_MAP_CREATE_struct, map_ifindex) == offsetof(union bpf_attr, map_ifindex), "BPF_MAP_CREATE_struct.map_ifindex offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_MAP_IFINDEX */ # ifdef HAVE_UNION_BPF_ATTR_BTF_FD - static_assert(SoM(struct BPF_MAP_CREATE_struct, btf_fd) == SoM(union bpf_attr, btf_fd), + static_assert(sizeof_field(struct BPF_MAP_CREATE_struct, btf_fd) == sizeof_field(union bpf_attr, btf_fd), "BPF_MAP_CREATE_struct.btf_fd size mismatch"); static_assert(offsetof(struct BPF_MAP_CREATE_struct, btf_fd) == offsetof(union bpf_attr, btf_fd), "BPF_MAP_CREATE_struct.btf_fd offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_BTF_FD */ # ifdef HAVE_UNION_BPF_ATTR_BTF_KEY_TYPE_ID - static_assert(SoM(struct BPF_MAP_CREATE_struct, btf_key_type_id) == SoM(union bpf_attr, btf_key_type_id), + static_assert(sizeof_field(struct BPF_MAP_CREATE_struct, btf_key_type_id) == sizeof_field(union bpf_attr, btf_key_type_id), "BPF_MAP_CREATE_struct.btf_key_type_id size mismatch"); static_assert(offsetof(struct BPF_MAP_CREATE_struct, btf_key_type_id) == offsetof(union bpf_attr, btf_key_type_id), "BPF_MAP_CREATE_struct.btf_key_type_id offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_BTF_KEY_TYPE_ID */ # ifdef HAVE_UNION_BPF_ATTR_BTF_VALUE_TYPE_ID - static_assert(SoM(struct BPF_MAP_CREATE_struct, btf_value_type_id) == SoM(union bpf_attr, btf_value_type_id), + static_assert(sizeof_field(struct BPF_MAP_CREATE_struct, btf_value_type_id) == sizeof_field(union bpf_attr, btf_value_type_id), "BPF_MAP_CREATE_struct.btf_value_type_id size mismatch"); static_assert(offsetof(struct BPF_MAP_CREATE_struct, btf_value_type_id) == offsetof(union bpf_attr, btf_value_type_id), "BPF_MAP_CREATE_struct.btf_value_type_id offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_BTF_VALUE_TYPE_ID */ +# ifdef HAVE_UNION_BPF_ATTR_BTF_VMLINUX_VALUE_TYPE_ID + static_assert(sizeof_field(struct BPF_MAP_CREATE_struct, btf_vmlinux_value_type_id) == sizeof_field(union bpf_attr, btf_vmlinux_value_type_id), + "BPF_MAP_CREATE_struct.btf_vmlinux_value_type_id size mismatch"); + static_assert(offsetof(struct BPF_MAP_CREATE_struct, btf_vmlinux_value_type_id) == offsetof(union bpf_attr, btf_vmlinux_value_type_id), + "BPF_MAP_CREATE_struct.btf_vmlinux_value_type_id offset mismatch"); +# endif /* HAVE_UNION_BPF_ATTR_BTF_VMLINUX_VALUE_TYPE_ID */ + static_assert(BPF_MAP_CREATE_struct_size == expected_BPF_MAP_CREATE_struct_size, "BPF_MAP_CREATE_struct_size mismatch"); # ifdef HAVE_UNION_BPF_ATTR_MAP_FD - static_assert(SoM(struct BPF_MAP_LOOKUP_ELEM_struct, map_fd) == SoM(union bpf_attr, map_fd), + static_assert(sizeof_field(struct BPF_MAP_LOOKUP_ELEM_struct, map_fd) == sizeof_field(union bpf_attr, map_fd), "BPF_MAP_LOOKUP_ELEM_struct.map_fd size mismatch"); static_assert(offsetof(struct BPF_MAP_LOOKUP_ELEM_struct, map_fd) == offsetof(union bpf_attr, map_fd), "BPF_MAP_LOOKUP_ELEM_struct.map_fd offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_MAP_FD */ # ifdef HAVE_UNION_BPF_ATTR_KEY - static_assert(SoM(struct BPF_MAP_LOOKUP_ELEM_struct, key) == SoM(union bpf_attr, key), + static_assert(sizeof_field(struct BPF_MAP_LOOKUP_ELEM_struct, key) == sizeof_field(union bpf_attr, key), "BPF_MAP_LOOKUP_ELEM_struct.key size mismatch"); static_assert(offsetof(struct BPF_MAP_LOOKUP_ELEM_struct, key) == offsetof(union bpf_attr, key), "BPF_MAP_LOOKUP_ELEM_struct.key offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_KEY */ # ifdef HAVE_UNION_BPF_ATTR_VALUE - static_assert(SoM(struct BPF_MAP_LOOKUP_ELEM_struct, value) == SoM(union bpf_attr, value), + static_assert(sizeof_field(struct BPF_MAP_LOOKUP_ELEM_struct, value) == sizeof_field(union bpf_attr, value), "BPF_MAP_LOOKUP_ELEM_struct.value size mismatch"); static_assert(offsetof(struct BPF_MAP_LOOKUP_ELEM_struct, value) == offsetof(union bpf_attr, value), "BPF_MAP_LOOKUP_ELEM_struct.value offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_VALUE */ +# ifdef HAVE_UNION_BPF_ATTR_FLAGS + static_assert(sizeof_field(struct BPF_MAP_LOOKUP_ELEM_struct, flags) == sizeof_field(union bpf_attr, flags), + "BPF_MAP_LOOKUP_ELEM_struct.flags size mismatch"); + static_assert(offsetof(struct BPF_MAP_LOOKUP_ELEM_struct, flags) == offsetof(union bpf_attr, flags), + "BPF_MAP_LOOKUP_ELEM_struct.flags offset mismatch"); +# endif /* HAVE_UNION_BPF_ATTR_FLAGS */ + static_assert(BPF_MAP_LOOKUP_ELEM_struct_size == expected_BPF_MAP_LOOKUP_ELEM_struct_size, "BPF_MAP_LOOKUP_ELEM_struct_size mismatch"); # ifdef HAVE_UNION_BPF_ATTR_MAP_FD - static_assert(SoM(struct BPF_MAP_UPDATE_ELEM_struct, map_fd) == SoM(union bpf_attr, map_fd), + static_assert(sizeof_field(struct BPF_MAP_UPDATE_ELEM_struct, map_fd) == sizeof_field(union bpf_attr, map_fd), "BPF_MAP_UPDATE_ELEM_struct.map_fd size mismatch"); static_assert(offsetof(struct BPF_MAP_UPDATE_ELEM_struct, map_fd) == offsetof(union bpf_attr, map_fd), "BPF_MAP_UPDATE_ELEM_struct.map_fd offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_MAP_FD */ # ifdef HAVE_UNION_BPF_ATTR_KEY - static_assert(SoM(struct BPF_MAP_UPDATE_ELEM_struct, key) == SoM(union bpf_attr, key), + static_assert(sizeof_field(struct BPF_MAP_UPDATE_ELEM_struct, key) == sizeof_field(union bpf_attr, key), "BPF_MAP_UPDATE_ELEM_struct.key size mismatch"); static_assert(offsetof(struct BPF_MAP_UPDATE_ELEM_struct, key) == offsetof(union bpf_attr, key), "BPF_MAP_UPDATE_ELEM_struct.key offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_KEY */ # ifdef HAVE_UNION_BPF_ATTR_VALUE - static_assert(SoM(struct BPF_MAP_UPDATE_ELEM_struct, value) == SoM(union bpf_attr, value), + static_assert(sizeof_field(struct BPF_MAP_UPDATE_ELEM_struct, value) == sizeof_field(union bpf_attr, value), "BPF_MAP_UPDATE_ELEM_struct.value size mismatch"); static_assert(offsetof(struct BPF_MAP_UPDATE_ELEM_struct, value) == offsetof(union bpf_attr, value), "BPF_MAP_UPDATE_ELEM_struct.value offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_VALUE */ # ifdef HAVE_UNION_BPF_ATTR_FLAGS - static_assert(SoM(struct BPF_MAP_UPDATE_ELEM_struct, flags) == SoM(union bpf_attr, flags), + static_assert(sizeof_field(struct BPF_MAP_UPDATE_ELEM_struct, flags) == sizeof_field(union bpf_attr, flags), "BPF_MAP_UPDATE_ELEM_struct.flags size mismatch"); static_assert(offsetof(struct BPF_MAP_UPDATE_ELEM_struct, flags) == offsetof(union bpf_attr, flags), "BPF_MAP_UPDATE_ELEM_struct.flags offset mismatch"); @@ -150,14 +163,14 @@ static_assert(BPF_MAP_UPDATE_ELEM_struct_size == expected_BPF_MAP_UPDATE_ELEM_st "BPF_MAP_UPDATE_ELEM_struct_size mismatch"); # ifdef HAVE_UNION_BPF_ATTR_MAP_FD - static_assert(SoM(struct BPF_MAP_DELETE_ELEM_struct, map_fd) == SoM(union bpf_attr, map_fd), + static_assert(sizeof_field(struct BPF_MAP_DELETE_ELEM_struct, map_fd) == sizeof_field(union bpf_attr, map_fd), "BPF_MAP_DELETE_ELEM_struct.map_fd size mismatch"); static_assert(offsetof(struct BPF_MAP_DELETE_ELEM_struct, map_fd) == offsetof(union bpf_attr, map_fd), "BPF_MAP_DELETE_ELEM_struct.map_fd offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_MAP_FD */ # ifdef HAVE_UNION_BPF_ATTR_KEY - static_assert(SoM(struct BPF_MAP_DELETE_ELEM_struct, key) == SoM(union bpf_attr, key), + static_assert(sizeof_field(struct BPF_MAP_DELETE_ELEM_struct, key) == sizeof_field(union bpf_attr, key), "BPF_MAP_DELETE_ELEM_struct.key size mismatch"); static_assert(offsetof(struct BPF_MAP_DELETE_ELEM_struct, key) == offsetof(union bpf_attr, key), "BPF_MAP_DELETE_ELEM_struct.key offset mismatch"); @@ -167,21 +180,21 @@ static_assert(BPF_MAP_DELETE_ELEM_struct_size == expected_BPF_MAP_DELETE_ELEM_st "BPF_MAP_DELETE_ELEM_struct_size mismatch"); # ifdef HAVE_UNION_BPF_ATTR_MAP_FD - static_assert(SoM(struct BPF_MAP_GET_NEXT_KEY_struct, map_fd) == SoM(union bpf_attr, map_fd), + static_assert(sizeof_field(struct BPF_MAP_GET_NEXT_KEY_struct, map_fd) == sizeof_field(union bpf_attr, map_fd), "BPF_MAP_GET_NEXT_KEY_struct.map_fd size mismatch"); static_assert(offsetof(struct BPF_MAP_GET_NEXT_KEY_struct, map_fd) == offsetof(union bpf_attr, map_fd), "BPF_MAP_GET_NEXT_KEY_struct.map_fd offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_MAP_FD */ # ifdef HAVE_UNION_BPF_ATTR_KEY - static_assert(SoM(struct BPF_MAP_GET_NEXT_KEY_struct, key) == SoM(union bpf_attr, key), + static_assert(sizeof_field(struct BPF_MAP_GET_NEXT_KEY_struct, key) == sizeof_field(union bpf_attr, key), "BPF_MAP_GET_NEXT_KEY_struct.key size mismatch"); static_assert(offsetof(struct BPF_MAP_GET_NEXT_KEY_struct, key) == offsetof(union bpf_attr, key), "BPF_MAP_GET_NEXT_KEY_struct.key offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_KEY */ # ifdef HAVE_UNION_BPF_ATTR_NEXT_KEY - static_assert(SoM(struct BPF_MAP_GET_NEXT_KEY_struct, next_key) == SoM(union bpf_attr, next_key), + static_assert(sizeof_field(struct BPF_MAP_GET_NEXT_KEY_struct, next_key) == sizeof_field(union bpf_attr, next_key), "BPF_MAP_GET_NEXT_KEY_struct.next_key size mismatch"); static_assert(offsetof(struct BPF_MAP_GET_NEXT_KEY_struct, next_key) == offsetof(union bpf_attr, next_key), "BPF_MAP_GET_NEXT_KEY_struct.next_key offset mismatch"); @@ -190,158 +203,182 @@ static_assert(BPF_MAP_DELETE_ELEM_struct_size == expected_BPF_MAP_DELETE_ELEM_st static_assert(BPF_MAP_GET_NEXT_KEY_struct_size == expected_BPF_MAP_GET_NEXT_KEY_struct_size, "BPF_MAP_GET_NEXT_KEY_struct_size mismatch"); +# ifdef HAVE_UNION_BPF_ATTR_MAP_FD + static_assert(sizeof_field(struct BPF_MAP_FREEZE_struct, map_fd) == sizeof_field(union bpf_attr, map_fd), + "BPF_MAP_FREEZE_struct.map_fd size mismatch"); + static_assert(offsetof(struct BPF_MAP_FREEZE_struct, map_fd) == offsetof(union bpf_attr, map_fd), + "BPF_MAP_FREEZE_struct.map_fd offset mismatch"); +# endif /* HAVE_UNION_BPF_ATTR_MAP_FD */ + +static_assert(BPF_MAP_FREEZE_struct_size == expected_BPF_MAP_FREEZE_struct_size, + "BPF_MAP_FREEZE_struct_size mismatch"); + # ifdef HAVE_UNION_BPF_ATTR_PROG_TYPE - static_assert(SoM(struct BPF_PROG_LOAD_struct, prog_type) == SoM(union bpf_attr, prog_type), + static_assert(sizeof_field(struct BPF_PROG_LOAD_struct, prog_type) == sizeof_field(union bpf_attr, prog_type), "BPF_PROG_LOAD_struct.prog_type size mismatch"); static_assert(offsetof(struct BPF_PROG_LOAD_struct, prog_type) == offsetof(union bpf_attr, prog_type), "BPF_PROG_LOAD_struct.prog_type offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_PROG_TYPE */ # ifdef HAVE_UNION_BPF_ATTR_INSN_CNT - static_assert(SoM(struct BPF_PROG_LOAD_struct, insn_cnt) == SoM(union bpf_attr, insn_cnt), + static_assert(sizeof_field(struct BPF_PROG_LOAD_struct, insn_cnt) == sizeof_field(union bpf_attr, insn_cnt), "BPF_PROG_LOAD_struct.insn_cnt size mismatch"); static_assert(offsetof(struct BPF_PROG_LOAD_struct, insn_cnt) == offsetof(union bpf_attr, insn_cnt), "BPF_PROG_LOAD_struct.insn_cnt offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_INSN_CNT */ # ifdef HAVE_UNION_BPF_ATTR_INSNS - static_assert(SoM(struct BPF_PROG_LOAD_struct, insns) == SoM(union bpf_attr, insns), + static_assert(sizeof_field(struct BPF_PROG_LOAD_struct, insns) == sizeof_field(union bpf_attr, insns), "BPF_PROG_LOAD_struct.insns size mismatch"); static_assert(offsetof(struct BPF_PROG_LOAD_struct, insns) == offsetof(union bpf_attr, insns), "BPF_PROG_LOAD_struct.insns offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_INSNS */ # ifdef HAVE_UNION_BPF_ATTR_LICENSE - static_assert(SoM(struct BPF_PROG_LOAD_struct, license) == SoM(union bpf_attr, license), + static_assert(sizeof_field(struct BPF_PROG_LOAD_struct, license) == sizeof_field(union bpf_attr, license), "BPF_PROG_LOAD_struct.license size mismatch"); static_assert(offsetof(struct BPF_PROG_LOAD_struct, license) == offsetof(union bpf_attr, license), "BPF_PROG_LOAD_struct.license offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_LICENSE */ # ifdef HAVE_UNION_BPF_ATTR_LOG_LEVEL - static_assert(SoM(struct BPF_PROG_LOAD_struct, log_level) == SoM(union bpf_attr, log_level), + static_assert(sizeof_field(struct BPF_PROG_LOAD_struct, log_level) == sizeof_field(union bpf_attr, log_level), "BPF_PROG_LOAD_struct.log_level size mismatch"); static_assert(offsetof(struct BPF_PROG_LOAD_struct, log_level) == offsetof(union bpf_attr, log_level), "BPF_PROG_LOAD_struct.log_level offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_LOG_LEVEL */ # ifdef HAVE_UNION_BPF_ATTR_LOG_SIZE - static_assert(SoM(struct BPF_PROG_LOAD_struct, log_size) == SoM(union bpf_attr, log_size), + static_assert(sizeof_field(struct BPF_PROG_LOAD_struct, log_size) == sizeof_field(union bpf_attr, log_size), "BPF_PROG_LOAD_struct.log_size size mismatch"); static_assert(offsetof(struct BPF_PROG_LOAD_struct, log_size) == offsetof(union bpf_attr, log_size), "BPF_PROG_LOAD_struct.log_size offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_LOG_SIZE */ # ifdef HAVE_UNION_BPF_ATTR_LOG_BUF - static_assert(SoM(struct BPF_PROG_LOAD_struct, log_buf) == SoM(union bpf_attr, log_buf), + static_assert(sizeof_field(struct BPF_PROG_LOAD_struct, log_buf) == sizeof_field(union bpf_attr, log_buf), "BPF_PROG_LOAD_struct.log_buf size mismatch"); static_assert(offsetof(struct BPF_PROG_LOAD_struct, log_buf) == offsetof(union bpf_attr, log_buf), "BPF_PROG_LOAD_struct.log_buf offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_LOG_BUF */ # ifdef HAVE_UNION_BPF_ATTR_KERN_VERSION - static_assert(SoM(struct BPF_PROG_LOAD_struct, kern_version) == SoM(union bpf_attr, kern_version), + static_assert(sizeof_field(struct BPF_PROG_LOAD_struct, kern_version) == sizeof_field(union bpf_attr, kern_version), "BPF_PROG_LOAD_struct.kern_version size mismatch"); static_assert(offsetof(struct BPF_PROG_LOAD_struct, kern_version) == offsetof(union bpf_attr, kern_version), "BPF_PROG_LOAD_struct.kern_version offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_KERN_VERSION */ # ifdef HAVE_UNION_BPF_ATTR_PROG_FLAGS - static_assert(SoM(struct BPF_PROG_LOAD_struct, prog_flags) == SoM(union bpf_attr, prog_flags), + static_assert(sizeof_field(struct BPF_PROG_LOAD_struct, prog_flags) == sizeof_field(union bpf_attr, prog_flags), "BPF_PROG_LOAD_struct.prog_flags size mismatch"); static_assert(offsetof(struct BPF_PROG_LOAD_struct, prog_flags) == offsetof(union bpf_attr, prog_flags), "BPF_PROG_LOAD_struct.prog_flags offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_PROG_FLAGS */ # ifdef HAVE_UNION_BPF_ATTR_PROG_NAME - static_assert(SoM(struct BPF_PROG_LOAD_struct, prog_name) == SoM(union bpf_attr, prog_name), + static_assert(sizeof_field(struct BPF_PROG_LOAD_struct, prog_name) == sizeof_field(union bpf_attr, prog_name), "BPF_PROG_LOAD_struct.prog_name size mismatch"); static_assert(offsetof(struct BPF_PROG_LOAD_struct, prog_name) == offsetof(union bpf_attr, prog_name), "BPF_PROG_LOAD_struct.prog_name offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_PROG_NAME */ # ifdef HAVE_UNION_BPF_ATTR_PROG_IFINDEX - static_assert(SoM(struct BPF_PROG_LOAD_struct, prog_ifindex) == SoM(union bpf_attr, prog_ifindex), + static_assert(sizeof_field(struct BPF_PROG_LOAD_struct, prog_ifindex) == sizeof_field(union bpf_attr, prog_ifindex), "BPF_PROG_LOAD_struct.prog_ifindex size mismatch"); static_assert(offsetof(struct BPF_PROG_LOAD_struct, prog_ifindex) == offsetof(union bpf_attr, prog_ifindex), "BPF_PROG_LOAD_struct.prog_ifindex offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_PROG_IFINDEX */ # ifdef HAVE_UNION_BPF_ATTR_EXPECTED_ATTACH_TYPE - static_assert(SoM(struct BPF_PROG_LOAD_struct, expected_attach_type) == SoM(union bpf_attr, expected_attach_type), + static_assert(sizeof_field(struct BPF_PROG_LOAD_struct, expected_attach_type) == sizeof_field(union bpf_attr, expected_attach_type), "BPF_PROG_LOAD_struct.expected_attach_type size mismatch"); static_assert(offsetof(struct BPF_PROG_LOAD_struct, expected_attach_type) == offsetof(union bpf_attr, expected_attach_type), "BPF_PROG_LOAD_struct.expected_attach_type offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_EXPECTED_ATTACH_TYPE */ # ifdef HAVE_UNION_BPF_ATTR_PROG_BTF_FD - static_assert(SoM(struct BPF_PROG_LOAD_struct, prog_btf_fd) == SoM(union bpf_attr, prog_btf_fd), + static_assert(sizeof_field(struct BPF_PROG_LOAD_struct, prog_btf_fd) == sizeof_field(union bpf_attr, prog_btf_fd), "BPF_PROG_LOAD_struct.prog_btf_fd size mismatch"); static_assert(offsetof(struct BPF_PROG_LOAD_struct, prog_btf_fd) == offsetof(union bpf_attr, prog_btf_fd), "BPF_PROG_LOAD_struct.prog_btf_fd offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_PROG_BTF_FD */ # ifdef HAVE_UNION_BPF_ATTR_FUNC_INFO_REC_SIZE - static_assert(SoM(struct BPF_PROG_LOAD_struct, func_info_rec_size) == SoM(union bpf_attr, func_info_rec_size), + static_assert(sizeof_field(struct BPF_PROG_LOAD_struct, func_info_rec_size) == sizeof_field(union bpf_attr, func_info_rec_size), "BPF_PROG_LOAD_struct.func_info_rec_size size mismatch"); static_assert(offsetof(struct BPF_PROG_LOAD_struct, func_info_rec_size) == offsetof(union bpf_attr, func_info_rec_size), "BPF_PROG_LOAD_struct.func_info_rec_size offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_FUNC_INFO_REC_SIZE */ # ifdef HAVE_UNION_BPF_ATTR_FUNC_INFO - static_assert(SoM(struct BPF_PROG_LOAD_struct, func_info) == SoM(union bpf_attr, func_info), + static_assert(sizeof_field(struct BPF_PROG_LOAD_struct, func_info) == sizeof_field(union bpf_attr, func_info), "BPF_PROG_LOAD_struct.func_info size mismatch"); static_assert(offsetof(struct BPF_PROG_LOAD_struct, func_info) == offsetof(union bpf_attr, func_info), "BPF_PROG_LOAD_struct.func_info offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_FUNC_INFO */ # ifdef HAVE_UNION_BPF_ATTR_FUNC_INFO_CNT - static_assert(SoM(struct BPF_PROG_LOAD_struct, func_info_cnt) == SoM(union bpf_attr, func_info_cnt), + static_assert(sizeof_field(struct BPF_PROG_LOAD_struct, func_info_cnt) == sizeof_field(union bpf_attr, func_info_cnt), "BPF_PROG_LOAD_struct.func_info_cnt size mismatch"); static_assert(offsetof(struct BPF_PROG_LOAD_struct, func_info_cnt) == offsetof(union bpf_attr, func_info_cnt), "BPF_PROG_LOAD_struct.func_info_cnt offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_FUNC_INFO_CNT */ # ifdef HAVE_UNION_BPF_ATTR_LINE_INFO_REC_SIZE - static_assert(SoM(struct BPF_PROG_LOAD_struct, line_info_rec_size) == SoM(union bpf_attr, line_info_rec_size), + static_assert(sizeof_field(struct BPF_PROG_LOAD_struct, line_info_rec_size) == sizeof_field(union bpf_attr, line_info_rec_size), "BPF_PROG_LOAD_struct.line_info_rec_size size mismatch"); static_assert(offsetof(struct BPF_PROG_LOAD_struct, line_info_rec_size) == offsetof(union bpf_attr, line_info_rec_size), "BPF_PROG_LOAD_struct.line_info_rec_size offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_LINE_INFO_REC_SIZE */ # ifdef HAVE_UNION_BPF_ATTR_LINE_INFO - static_assert(SoM(struct BPF_PROG_LOAD_struct, line_info) == SoM(union bpf_attr, line_info), + static_assert(sizeof_field(struct BPF_PROG_LOAD_struct, line_info) == sizeof_field(union bpf_attr, line_info), "BPF_PROG_LOAD_struct.line_info size mismatch"); static_assert(offsetof(struct BPF_PROG_LOAD_struct, line_info) == offsetof(union bpf_attr, line_info), "BPF_PROG_LOAD_struct.line_info offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_LINE_INFO */ # ifdef HAVE_UNION_BPF_ATTR_LINE_INFO_CNT - static_assert(SoM(struct BPF_PROG_LOAD_struct, line_info_cnt) == SoM(union bpf_attr, line_info_cnt), + static_assert(sizeof_field(struct BPF_PROG_LOAD_struct, line_info_cnt) == sizeof_field(union bpf_attr, line_info_cnt), "BPF_PROG_LOAD_struct.line_info_cnt size mismatch"); static_assert(offsetof(struct BPF_PROG_LOAD_struct, line_info_cnt) == offsetof(union bpf_attr, line_info_cnt), "BPF_PROG_LOAD_struct.line_info_cnt offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_LINE_INFO_CNT */ +# ifdef HAVE_UNION_BPF_ATTR_ATTACH_BTF_ID + static_assert(sizeof_field(struct BPF_PROG_LOAD_struct, attach_btf_id) == sizeof_field(union bpf_attr, attach_btf_id), + "BPF_PROG_LOAD_struct.attach_btf_id size mismatch"); + static_assert(offsetof(struct BPF_PROG_LOAD_struct, attach_btf_id) == offsetof(union bpf_attr, attach_btf_id), + "BPF_PROG_LOAD_struct.attach_btf_id offset mismatch"); +# endif /* HAVE_UNION_BPF_ATTR_ATTACH_BTF_ID */ + +# ifdef HAVE_UNION_BPF_ATTR_ATTACH_PROG_FD + static_assert(sizeof_field(struct BPF_PROG_LOAD_struct, attach_prog_fd) == sizeof_field(union bpf_attr, attach_prog_fd), + "BPF_PROG_LOAD_struct.attach_prog_fd size mismatch"); + static_assert(offsetof(struct BPF_PROG_LOAD_struct, attach_prog_fd) == offsetof(union bpf_attr, attach_prog_fd), + "BPF_PROG_LOAD_struct.attach_prog_fd offset mismatch"); +# endif /* HAVE_UNION_BPF_ATTR_ATTACH_PROG_FD */ + static_assert(BPF_PROG_LOAD_struct_size == expected_BPF_PROG_LOAD_struct_size, "BPF_PROG_LOAD_struct_size mismatch"); # ifdef HAVE_UNION_BPF_ATTR_PATHNAME - static_assert(SoM(struct BPF_OBJ_PIN_struct, pathname) == SoM(union bpf_attr, pathname), + static_assert(sizeof_field(struct BPF_OBJ_PIN_struct, pathname) == sizeof_field(union bpf_attr, pathname), "BPF_OBJ_PIN_struct.pathname size mismatch"); static_assert(offsetof(struct BPF_OBJ_PIN_struct, pathname) == offsetof(union bpf_attr, pathname), "BPF_OBJ_PIN_struct.pathname offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_PATHNAME */ # ifdef HAVE_UNION_BPF_ATTR_BPF_FD - static_assert(SoM(struct BPF_OBJ_PIN_struct, bpf_fd) == SoM(union bpf_attr, bpf_fd), + static_assert(sizeof_field(struct BPF_OBJ_PIN_struct, bpf_fd) == sizeof_field(union bpf_attr, bpf_fd), "BPF_OBJ_PIN_struct.bpf_fd size mismatch"); static_assert(offsetof(struct BPF_OBJ_PIN_struct, bpf_fd) == offsetof(union bpf_attr, bpf_fd), "BPF_OBJ_PIN_struct.bpf_fd offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_BPF_FD */ # ifdef HAVE_UNION_BPF_ATTR_FILE_FLAGS - static_assert(SoM(struct BPF_OBJ_PIN_struct, file_flags) == SoM(union bpf_attr, file_flags), + static_assert(sizeof_field(struct BPF_OBJ_PIN_struct, file_flags) == sizeof_field(union bpf_attr, file_flags), "BPF_OBJ_PIN_struct.file_flags size mismatch"); static_assert(offsetof(struct BPF_OBJ_PIN_struct, file_flags) == offsetof(union bpf_attr, file_flags), "BPF_OBJ_PIN_struct.file_flags offset mismatch"); @@ -351,52 +388,59 @@ static_assert(BPF_OBJ_PIN_struct_size == expected_BPF_OBJ_PIN_struct_size, "BPF_OBJ_PIN_struct_size mismatch"); # ifdef HAVE_UNION_BPF_ATTR_TARGET_FD - static_assert(SoM(struct BPF_PROG_ATTACH_struct, target_fd) == SoM(union bpf_attr, target_fd), + static_assert(sizeof_field(struct BPF_PROG_ATTACH_struct, target_fd) == sizeof_field(union bpf_attr, target_fd), "BPF_PROG_ATTACH_struct.target_fd size mismatch"); static_assert(offsetof(struct BPF_PROG_ATTACH_struct, target_fd) == offsetof(union bpf_attr, target_fd), "BPF_PROG_ATTACH_struct.target_fd offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_TARGET_FD */ # ifdef HAVE_UNION_BPF_ATTR_ATTACH_BPF_FD - static_assert(SoM(struct BPF_PROG_ATTACH_struct, attach_bpf_fd) == SoM(union bpf_attr, attach_bpf_fd), + static_assert(sizeof_field(struct BPF_PROG_ATTACH_struct, attach_bpf_fd) == sizeof_field(union bpf_attr, attach_bpf_fd), "BPF_PROG_ATTACH_struct.attach_bpf_fd size mismatch"); static_assert(offsetof(struct BPF_PROG_ATTACH_struct, attach_bpf_fd) == offsetof(union bpf_attr, attach_bpf_fd), "BPF_PROG_ATTACH_struct.attach_bpf_fd offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_ATTACH_BPF_FD */ # ifdef HAVE_UNION_BPF_ATTR_ATTACH_TYPE - static_assert(SoM(struct BPF_PROG_ATTACH_struct, attach_type) == SoM(union bpf_attr, attach_type), + static_assert(sizeof_field(struct BPF_PROG_ATTACH_struct, attach_type) == sizeof_field(union bpf_attr, attach_type), "BPF_PROG_ATTACH_struct.attach_type size mismatch"); static_assert(offsetof(struct BPF_PROG_ATTACH_struct, attach_type) == offsetof(union bpf_attr, attach_type), "BPF_PROG_ATTACH_struct.attach_type offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_ATTACH_TYPE */ # ifdef HAVE_UNION_BPF_ATTR_ATTACH_FLAGS - static_assert(SoM(struct BPF_PROG_ATTACH_struct, attach_flags) == SoM(union bpf_attr, attach_flags), + static_assert(sizeof_field(struct BPF_PROG_ATTACH_struct, attach_flags) == sizeof_field(union bpf_attr, attach_flags), "BPF_PROG_ATTACH_struct.attach_flags size mismatch"); static_assert(offsetof(struct BPF_PROG_ATTACH_struct, attach_flags) == offsetof(union bpf_attr, attach_flags), "BPF_PROG_ATTACH_struct.attach_flags offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_ATTACH_FLAGS */ +# ifdef HAVE_UNION_BPF_ATTR_REPLACE_BPF_FD + static_assert(sizeof_field(struct BPF_PROG_ATTACH_struct, replace_bpf_fd) == sizeof_field(union bpf_attr, replace_bpf_fd), + "BPF_PROG_ATTACH_struct.replace_bpf_fd size mismatch"); + static_assert(offsetof(struct BPF_PROG_ATTACH_struct, replace_bpf_fd) == offsetof(union bpf_attr, replace_bpf_fd), + "BPF_PROG_ATTACH_struct.replace_bpf_fd offset mismatch"); +# endif /* HAVE_UNION_BPF_ATTR_REPLACE_BPF_FD */ + static_assert(BPF_PROG_ATTACH_struct_size == expected_BPF_PROG_ATTACH_struct_size, "BPF_PROG_ATTACH_struct_size mismatch"); # ifdef HAVE_UNION_BPF_ATTR_TARGET_FD - static_assert(SoM(struct BPF_PROG_DETACH_struct, target_fd) == SoM(union bpf_attr, target_fd), + static_assert(sizeof_field(struct BPF_PROG_DETACH_struct, target_fd) == sizeof_field(union bpf_attr, target_fd), "BPF_PROG_DETACH_struct.target_fd size mismatch"); static_assert(offsetof(struct BPF_PROG_DETACH_struct, target_fd) == offsetof(union bpf_attr, target_fd), "BPF_PROG_DETACH_struct.target_fd offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_TARGET_FD */ # ifdef HAVE_UNION_BPF_ATTR_DUMMY - static_assert(SoM(struct BPF_PROG_DETACH_struct, dummy) == SoM(union bpf_attr, dummy), + static_assert(sizeof_field(struct BPF_PROG_DETACH_struct, dummy) == sizeof_field(union bpf_attr, dummy), "BPF_PROG_DETACH_struct.dummy size mismatch"); static_assert(offsetof(struct BPF_PROG_DETACH_struct, dummy) == offsetof(union bpf_attr, dummy), "BPF_PROG_DETACH_struct.dummy offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_DUMMY */ # ifdef HAVE_UNION_BPF_ATTR_ATTACH_TYPE - static_assert(SoM(struct BPF_PROG_DETACH_struct, attach_type) == SoM(union bpf_attr, attach_type), + static_assert(sizeof_field(struct BPF_PROG_DETACH_struct, attach_type) == sizeof_field(union bpf_attr, attach_type), "BPF_PROG_DETACH_struct.attach_type size mismatch"); static_assert(offsetof(struct BPF_PROG_DETACH_struct, attach_type) == offsetof(union bpf_attr, attach_type), "BPF_PROG_DETACH_struct.attach_type offset mismatch"); @@ -406,80 +450,108 @@ static_assert(BPF_PROG_DETACH_struct_size == expected_BPF_PROG_DETACH_struct_siz "BPF_PROG_DETACH_struct_size mismatch"); # ifdef HAVE_UNION_BPF_ATTR_TEST_PROG_FD - static_assert(SoM(struct BPF_PROG_TEST_RUN_struct, prog_fd) == SoM(union bpf_attr, test.prog_fd), + static_assert(sizeof_field(struct BPF_PROG_TEST_RUN_struct, prog_fd) == sizeof_field(union bpf_attr, test.prog_fd), "BPF_PROG_TEST_RUN_struct.prog_fd size mismatch"); static_assert(offsetof(struct BPF_PROG_TEST_RUN_struct, prog_fd) == offsetof(union bpf_attr, test.prog_fd), "BPF_PROG_TEST_RUN_struct.prog_fd offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_TEST_PROG_FD */ # ifdef HAVE_UNION_BPF_ATTR_TEST_RETVAL - static_assert(SoM(struct BPF_PROG_TEST_RUN_struct, retval) == SoM(union bpf_attr, test.retval), + static_assert(sizeof_field(struct BPF_PROG_TEST_RUN_struct, retval) == sizeof_field(union bpf_attr, test.retval), "BPF_PROG_TEST_RUN_struct.retval size mismatch"); static_assert(offsetof(struct BPF_PROG_TEST_RUN_struct, retval) == offsetof(union bpf_attr, test.retval), "BPF_PROG_TEST_RUN_struct.retval offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_TEST_RETVAL */ # ifdef HAVE_UNION_BPF_ATTR_TEST_DATA_SIZE_IN - static_assert(SoM(struct BPF_PROG_TEST_RUN_struct, data_size_in) == SoM(union bpf_attr, test.data_size_in), + static_assert(sizeof_field(struct BPF_PROG_TEST_RUN_struct, data_size_in) == sizeof_field(union bpf_attr, test.data_size_in), "BPF_PROG_TEST_RUN_struct.data_size_in size mismatch"); static_assert(offsetof(struct BPF_PROG_TEST_RUN_struct, data_size_in) == offsetof(union bpf_attr, test.data_size_in), "BPF_PROG_TEST_RUN_struct.data_size_in offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_TEST_DATA_SIZE_IN */ # ifdef HAVE_UNION_BPF_ATTR_TEST_DATA_SIZE_OUT - static_assert(SoM(struct BPF_PROG_TEST_RUN_struct, data_size_out) == SoM(union bpf_attr, test.data_size_out), + static_assert(sizeof_field(struct BPF_PROG_TEST_RUN_struct, data_size_out) == sizeof_field(union bpf_attr, test.data_size_out), "BPF_PROG_TEST_RUN_struct.data_size_out size mismatch"); static_assert(offsetof(struct BPF_PROG_TEST_RUN_struct, data_size_out) == offsetof(union bpf_attr, test.data_size_out), "BPF_PROG_TEST_RUN_struct.data_size_out offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_TEST_DATA_SIZE_OUT */ # ifdef HAVE_UNION_BPF_ATTR_TEST_DATA_IN - static_assert(SoM(struct BPF_PROG_TEST_RUN_struct, data_in) == SoM(union bpf_attr, test.data_in), + static_assert(sizeof_field(struct BPF_PROG_TEST_RUN_struct, data_in) == sizeof_field(union bpf_attr, test.data_in), "BPF_PROG_TEST_RUN_struct.data_in size mismatch"); static_assert(offsetof(struct BPF_PROG_TEST_RUN_struct, data_in) == offsetof(union bpf_attr, test.data_in), "BPF_PROG_TEST_RUN_struct.data_in offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_TEST_DATA_IN */ # ifdef HAVE_UNION_BPF_ATTR_TEST_DATA_OUT - static_assert(SoM(struct BPF_PROG_TEST_RUN_struct, data_out) == SoM(union bpf_attr, test.data_out), + static_assert(sizeof_field(struct BPF_PROG_TEST_RUN_struct, data_out) == sizeof_field(union bpf_attr, test.data_out), "BPF_PROG_TEST_RUN_struct.data_out size mismatch"); static_assert(offsetof(struct BPF_PROG_TEST_RUN_struct, data_out) == offsetof(union bpf_attr, test.data_out), "BPF_PROG_TEST_RUN_struct.data_out offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_TEST_DATA_OUT */ # ifdef HAVE_UNION_BPF_ATTR_TEST_REPEAT - static_assert(SoM(struct BPF_PROG_TEST_RUN_struct, repeat) == SoM(union bpf_attr, test.repeat), + static_assert(sizeof_field(struct BPF_PROG_TEST_RUN_struct, repeat) == sizeof_field(union bpf_attr, test.repeat), "BPF_PROG_TEST_RUN_struct.repeat size mismatch"); static_assert(offsetof(struct BPF_PROG_TEST_RUN_struct, repeat) == offsetof(union bpf_attr, test.repeat), "BPF_PROG_TEST_RUN_struct.repeat offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_TEST_REPEAT */ # ifdef HAVE_UNION_BPF_ATTR_TEST_DURATION - static_assert(SoM(struct BPF_PROG_TEST_RUN_struct, duration) == SoM(union bpf_attr, test.duration), + static_assert(sizeof_field(struct BPF_PROG_TEST_RUN_struct, duration) == sizeof_field(union bpf_attr, test.duration), "BPF_PROG_TEST_RUN_struct.duration size mismatch"); static_assert(offsetof(struct BPF_PROG_TEST_RUN_struct, duration) == offsetof(union bpf_attr, test.duration), "BPF_PROG_TEST_RUN_struct.duration offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_TEST_DURATION */ +# ifdef HAVE_UNION_BPF_ATTR_TEST_CTX_SIZE_IN + static_assert(sizeof_field(struct BPF_PROG_TEST_RUN_struct, ctx_size_in) == sizeof_field(union bpf_attr, test.ctx_size_in), + "BPF_PROG_TEST_RUN_struct.ctx_size_in size mismatch"); + static_assert(offsetof(struct BPF_PROG_TEST_RUN_struct, ctx_size_in) == offsetof(union bpf_attr, test.ctx_size_in), + "BPF_PROG_TEST_RUN_struct.ctx_size_in offset mismatch"); +# endif /* HAVE_UNION_BPF_ATTR_TEST_CTX_SIZE_IN */ + +# ifdef HAVE_UNION_BPF_ATTR_TEST_CTX_SIZE_OUT + static_assert(sizeof_field(struct BPF_PROG_TEST_RUN_struct, ctx_size_out) == sizeof_field(union bpf_attr, test.ctx_size_out), + "BPF_PROG_TEST_RUN_struct.ctx_size_out size mismatch"); + static_assert(offsetof(struct BPF_PROG_TEST_RUN_struct, ctx_size_out) == offsetof(union bpf_attr, test.ctx_size_out), + "BPF_PROG_TEST_RUN_struct.ctx_size_out offset mismatch"); +# endif /* HAVE_UNION_BPF_ATTR_TEST_CTX_SIZE_OUT */ + +# ifdef HAVE_UNION_BPF_ATTR_TEST_CTX_IN + static_assert(sizeof_field(struct BPF_PROG_TEST_RUN_struct, ctx_in) == sizeof_field(union bpf_attr, test.ctx_in), + "BPF_PROG_TEST_RUN_struct.ctx_in size mismatch"); + static_assert(offsetof(struct BPF_PROG_TEST_RUN_struct, ctx_in) == offsetof(union bpf_attr, test.ctx_in), + "BPF_PROG_TEST_RUN_struct.ctx_in offset mismatch"); +# endif /* HAVE_UNION_BPF_ATTR_TEST_CTX_IN */ + +# ifdef HAVE_UNION_BPF_ATTR_TEST_CTX_OUT + static_assert(sizeof_field(struct BPF_PROG_TEST_RUN_struct, ctx_out) == sizeof_field(union bpf_attr, test.ctx_out), + "BPF_PROG_TEST_RUN_struct.ctx_out size mismatch"); + static_assert(offsetof(struct BPF_PROG_TEST_RUN_struct, ctx_out) == offsetof(union bpf_attr, test.ctx_out), + "BPF_PROG_TEST_RUN_struct.ctx_out offset mismatch"); +# endif /* HAVE_UNION_BPF_ATTR_TEST_CTX_OUT */ + static_assert(BPF_PROG_TEST_RUN_struct_size == expected_BPF_PROG_TEST_RUN_struct_size, "BPF_PROG_TEST_RUN_struct_size mismatch"); # ifdef HAVE_UNION_BPF_ATTR_START_ID - static_assert(SoM(struct BPF_PROG_GET_NEXT_ID_struct, start_id) == SoM(union bpf_attr, start_id), + static_assert(sizeof_field(struct BPF_PROG_GET_NEXT_ID_struct, start_id) == sizeof_field(union bpf_attr, start_id), "BPF_PROG_GET_NEXT_ID_struct.start_id size mismatch"); static_assert(offsetof(struct BPF_PROG_GET_NEXT_ID_struct, start_id) == offsetof(union bpf_attr, start_id), "BPF_PROG_GET_NEXT_ID_struct.start_id offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_START_ID */ # ifdef HAVE_UNION_BPF_ATTR_NEXT_ID - static_assert(SoM(struct BPF_PROG_GET_NEXT_ID_struct, next_id) == SoM(union bpf_attr, next_id), + static_assert(sizeof_field(struct BPF_PROG_GET_NEXT_ID_struct, next_id) == sizeof_field(union bpf_attr, next_id), "BPF_PROG_GET_NEXT_ID_struct.next_id size mismatch"); static_assert(offsetof(struct BPF_PROG_GET_NEXT_ID_struct, next_id) == offsetof(union bpf_attr, next_id), "BPF_PROG_GET_NEXT_ID_struct.next_id offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_NEXT_ID */ # ifdef HAVE_UNION_BPF_ATTR_OPEN_FLAGS - static_assert(SoM(struct BPF_PROG_GET_NEXT_ID_struct, open_flags) == SoM(union bpf_attr, open_flags), + static_assert(sizeof_field(struct BPF_PROG_GET_NEXT_ID_struct, open_flags) == sizeof_field(union bpf_attr, open_flags), "BPF_PROG_GET_NEXT_ID_struct.open_flags size mismatch"); static_assert(offsetof(struct BPF_PROG_GET_NEXT_ID_struct, open_flags) == offsetof(union bpf_attr, open_flags), "BPF_PROG_GET_NEXT_ID_struct.open_flags offset mismatch"); @@ -489,21 +561,21 @@ static_assert(BPF_PROG_GET_NEXT_ID_struct_size == expected_BPF_PROG_GET_NEXT_ID_ "BPF_PROG_GET_NEXT_ID_struct_size mismatch"); # ifdef HAVE_UNION_BPF_ATTR_PROG_ID - static_assert(SoM(struct BPF_PROG_GET_FD_BY_ID_struct, prog_id) == SoM(union bpf_attr, prog_id), + static_assert(sizeof_field(struct BPF_PROG_GET_FD_BY_ID_struct, prog_id) == sizeof_field(union bpf_attr, prog_id), "BPF_PROG_GET_FD_BY_ID_struct.prog_id size mismatch"); static_assert(offsetof(struct BPF_PROG_GET_FD_BY_ID_struct, prog_id) == offsetof(union bpf_attr, prog_id), "BPF_PROG_GET_FD_BY_ID_struct.prog_id offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_PROG_ID */ # ifdef HAVE_UNION_BPF_ATTR_NEXT_ID - static_assert(SoM(struct BPF_PROG_GET_FD_BY_ID_struct, next_id) == SoM(union bpf_attr, next_id), + static_assert(sizeof_field(struct BPF_PROG_GET_FD_BY_ID_struct, next_id) == sizeof_field(union bpf_attr, next_id), "BPF_PROG_GET_FD_BY_ID_struct.next_id size mismatch"); static_assert(offsetof(struct BPF_PROG_GET_FD_BY_ID_struct, next_id) == offsetof(union bpf_attr, next_id), "BPF_PROG_GET_FD_BY_ID_struct.next_id offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_NEXT_ID */ # ifdef HAVE_UNION_BPF_ATTR_OPEN_FLAGS - static_assert(SoM(struct BPF_PROG_GET_FD_BY_ID_struct, open_flags) == SoM(union bpf_attr, open_flags), + static_assert(sizeof_field(struct BPF_PROG_GET_FD_BY_ID_struct, open_flags) == sizeof_field(union bpf_attr, open_flags), "BPF_PROG_GET_FD_BY_ID_struct.open_flags size mismatch"); static_assert(offsetof(struct BPF_PROG_GET_FD_BY_ID_struct, open_flags) == offsetof(union bpf_attr, open_flags), "BPF_PROG_GET_FD_BY_ID_struct.open_flags offset mismatch"); @@ -513,21 +585,21 @@ static_assert(BPF_PROG_GET_FD_BY_ID_struct_size == expected_BPF_PROG_GET_FD_BY_I "BPF_PROG_GET_FD_BY_ID_struct_size mismatch"); # ifdef HAVE_UNION_BPF_ATTR_MAP_ID - static_assert(SoM(struct BPF_MAP_GET_FD_BY_ID_struct, map_id) == SoM(union bpf_attr, map_id), + static_assert(sizeof_field(struct BPF_MAP_GET_FD_BY_ID_struct, map_id) == sizeof_field(union bpf_attr, map_id), "BPF_MAP_GET_FD_BY_ID_struct.map_id size mismatch"); static_assert(offsetof(struct BPF_MAP_GET_FD_BY_ID_struct, map_id) == offsetof(union bpf_attr, map_id), "BPF_MAP_GET_FD_BY_ID_struct.map_id offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_MAP_ID */ # ifdef HAVE_UNION_BPF_ATTR_NEXT_ID - static_assert(SoM(struct BPF_MAP_GET_FD_BY_ID_struct, next_id) == SoM(union bpf_attr, next_id), + static_assert(sizeof_field(struct BPF_MAP_GET_FD_BY_ID_struct, next_id) == sizeof_field(union bpf_attr, next_id), "BPF_MAP_GET_FD_BY_ID_struct.next_id size mismatch"); static_assert(offsetof(struct BPF_MAP_GET_FD_BY_ID_struct, next_id) == offsetof(union bpf_attr, next_id), "BPF_MAP_GET_FD_BY_ID_struct.next_id offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_NEXT_ID */ # ifdef HAVE_UNION_BPF_ATTR_OPEN_FLAGS - static_assert(SoM(struct BPF_MAP_GET_FD_BY_ID_struct, open_flags) == SoM(union bpf_attr, open_flags), + static_assert(sizeof_field(struct BPF_MAP_GET_FD_BY_ID_struct, open_flags) == sizeof_field(union bpf_attr, open_flags), "BPF_MAP_GET_FD_BY_ID_struct.open_flags size mismatch"); static_assert(offsetof(struct BPF_MAP_GET_FD_BY_ID_struct, open_flags) == offsetof(union bpf_attr, open_flags), "BPF_MAP_GET_FD_BY_ID_struct.open_flags offset mismatch"); @@ -537,21 +609,21 @@ static_assert(BPF_MAP_GET_FD_BY_ID_struct_size == expected_BPF_MAP_GET_FD_BY_ID_ "BPF_MAP_GET_FD_BY_ID_struct_size mismatch"); # ifdef HAVE_UNION_BPF_ATTR_INFO_BPF_FD - static_assert(SoM(struct BPF_OBJ_GET_INFO_BY_FD_struct, bpf_fd) == SoM(union bpf_attr, info.bpf_fd), + static_assert(sizeof_field(struct BPF_OBJ_GET_INFO_BY_FD_struct, bpf_fd) == sizeof_field(union bpf_attr, info.bpf_fd), "BPF_OBJ_GET_INFO_BY_FD_struct.bpf_fd size mismatch"); static_assert(offsetof(struct BPF_OBJ_GET_INFO_BY_FD_struct, bpf_fd) == offsetof(union bpf_attr, info.bpf_fd), "BPF_OBJ_GET_INFO_BY_FD_struct.bpf_fd offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_INFO_BPF_FD */ # ifdef HAVE_UNION_BPF_ATTR_INFO_INFO_LEN - static_assert(SoM(struct BPF_OBJ_GET_INFO_BY_FD_struct, info_len) == SoM(union bpf_attr, info.info_len), + static_assert(sizeof_field(struct BPF_OBJ_GET_INFO_BY_FD_struct, info_len) == sizeof_field(union bpf_attr, info.info_len), "BPF_OBJ_GET_INFO_BY_FD_struct.info_len size mismatch"); static_assert(offsetof(struct BPF_OBJ_GET_INFO_BY_FD_struct, info_len) == offsetof(union bpf_attr, info.info_len), "BPF_OBJ_GET_INFO_BY_FD_struct.info_len offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_INFO_INFO_LEN */ # ifdef HAVE_UNION_BPF_ATTR_INFO_INFO - static_assert(SoM(struct BPF_OBJ_GET_INFO_BY_FD_struct, info) == SoM(union bpf_attr, info.info), + static_assert(sizeof_field(struct BPF_OBJ_GET_INFO_BY_FD_struct, info) == sizeof_field(union bpf_attr, info.info), "BPF_OBJ_GET_INFO_BY_FD_struct.info size mismatch"); static_assert(offsetof(struct BPF_OBJ_GET_INFO_BY_FD_struct, info) == offsetof(union bpf_attr, info.info), "BPF_OBJ_GET_INFO_BY_FD_struct.info offset mismatch"); @@ -561,42 +633,42 @@ static_assert(BPF_OBJ_GET_INFO_BY_FD_struct_size == expected_BPF_OBJ_GET_INFO_BY "BPF_OBJ_GET_INFO_BY_FD_struct_size mismatch"); # ifdef HAVE_UNION_BPF_ATTR_QUERY_TARGET_FD - static_assert(SoM(struct BPF_PROG_QUERY_struct, target_fd) == SoM(union bpf_attr, query.target_fd), + static_assert(sizeof_field(struct BPF_PROG_QUERY_struct, target_fd) == sizeof_field(union bpf_attr, query.target_fd), "BPF_PROG_QUERY_struct.target_fd size mismatch"); static_assert(offsetof(struct BPF_PROG_QUERY_struct, target_fd) == offsetof(union bpf_attr, query.target_fd), "BPF_PROG_QUERY_struct.target_fd offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_QUERY_TARGET_FD */ # ifdef HAVE_UNION_BPF_ATTR_QUERY_ATTACH_TYPE - static_assert(SoM(struct BPF_PROG_QUERY_struct, attach_type) == SoM(union bpf_attr, query.attach_type), + static_assert(sizeof_field(struct BPF_PROG_QUERY_struct, attach_type) == sizeof_field(union bpf_attr, query.attach_type), "BPF_PROG_QUERY_struct.attach_type size mismatch"); static_assert(offsetof(struct BPF_PROG_QUERY_struct, attach_type) == offsetof(union bpf_attr, query.attach_type), "BPF_PROG_QUERY_struct.attach_type offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_QUERY_ATTACH_TYPE */ # ifdef HAVE_UNION_BPF_ATTR_QUERY_QUERY_FLAGS - static_assert(SoM(struct BPF_PROG_QUERY_struct, query_flags) == SoM(union bpf_attr, query.query_flags), + static_assert(sizeof_field(struct BPF_PROG_QUERY_struct, query_flags) == sizeof_field(union bpf_attr, query.query_flags), "BPF_PROG_QUERY_struct.query_flags size mismatch"); static_assert(offsetof(struct BPF_PROG_QUERY_struct, query_flags) == offsetof(union bpf_attr, query.query_flags), "BPF_PROG_QUERY_struct.query_flags offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_QUERY_QUERY_FLAGS */ # ifdef HAVE_UNION_BPF_ATTR_QUERY_ATTACH_FLAGS - static_assert(SoM(struct BPF_PROG_QUERY_struct, attach_flags) == SoM(union bpf_attr, query.attach_flags), + static_assert(sizeof_field(struct BPF_PROG_QUERY_struct, attach_flags) == sizeof_field(union bpf_attr, query.attach_flags), "BPF_PROG_QUERY_struct.attach_flags size mismatch"); static_assert(offsetof(struct BPF_PROG_QUERY_struct, attach_flags) == offsetof(union bpf_attr, query.attach_flags), "BPF_PROG_QUERY_struct.attach_flags offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_QUERY_ATTACH_FLAGS */ # ifdef HAVE_UNION_BPF_ATTR_QUERY_PROG_IDS - static_assert(SoM(struct BPF_PROG_QUERY_struct, prog_ids) == SoM(union bpf_attr, query.prog_ids), + static_assert(sizeof_field(struct BPF_PROG_QUERY_struct, prog_ids) == sizeof_field(union bpf_attr, query.prog_ids), "BPF_PROG_QUERY_struct.prog_ids size mismatch"); static_assert(offsetof(struct BPF_PROG_QUERY_struct, prog_ids) == offsetof(union bpf_attr, query.prog_ids), "BPF_PROG_QUERY_struct.prog_ids offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_QUERY_PROG_IDS */ # ifdef HAVE_UNION_BPF_ATTR_QUERY_PROG_CNT - static_assert(SoM(struct BPF_PROG_QUERY_struct, prog_cnt) == SoM(union bpf_attr, query.prog_cnt), + static_assert(sizeof_field(struct BPF_PROG_QUERY_struct, prog_cnt) == sizeof_field(union bpf_attr, query.prog_cnt), "BPF_PROG_QUERY_struct.prog_cnt size mismatch"); static_assert(offsetof(struct BPF_PROG_QUERY_struct, prog_cnt) == offsetof(union bpf_attr, query.prog_cnt), "BPF_PROG_QUERY_struct.prog_cnt offset mismatch"); @@ -606,14 +678,14 @@ static_assert(BPF_PROG_QUERY_struct_size == expected_BPF_PROG_QUERY_struct_size, "BPF_PROG_QUERY_struct_size mismatch"); # ifdef HAVE_UNION_BPF_ATTR_RAW_TRACEPOINT_NAME - static_assert(SoM(struct BPF_RAW_TRACEPOINT_OPEN_struct, name) == SoM(union bpf_attr, raw_tracepoint.name), + static_assert(sizeof_field(struct BPF_RAW_TRACEPOINT_OPEN_struct, name) == sizeof_field(union bpf_attr, raw_tracepoint.name), "BPF_RAW_TRACEPOINT_OPEN_struct.name size mismatch"); static_assert(offsetof(struct BPF_RAW_TRACEPOINT_OPEN_struct, name) == offsetof(union bpf_attr, raw_tracepoint.name), "BPF_RAW_TRACEPOINT_OPEN_struct.name offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_RAW_TRACEPOINT_NAME */ # ifdef HAVE_UNION_BPF_ATTR_RAW_TRACEPOINT_PROG_FD - static_assert(SoM(struct BPF_RAW_TRACEPOINT_OPEN_struct, prog_fd) == SoM(union bpf_attr, raw_tracepoint.prog_fd), + static_assert(sizeof_field(struct BPF_RAW_TRACEPOINT_OPEN_struct, prog_fd) == sizeof_field(union bpf_attr, raw_tracepoint.prog_fd), "BPF_RAW_TRACEPOINT_OPEN_struct.prog_fd size mismatch"); static_assert(offsetof(struct BPF_RAW_TRACEPOINT_OPEN_struct, prog_fd) == offsetof(union bpf_attr, raw_tracepoint.prog_fd), "BPF_RAW_TRACEPOINT_OPEN_struct.prog_fd offset mismatch"); @@ -623,35 +695,35 @@ static_assert(BPF_RAW_TRACEPOINT_OPEN_struct_size == expected_BPF_RAW_TRACEPOINT "BPF_RAW_TRACEPOINT_OPEN_struct_size mismatch"); # ifdef HAVE_UNION_BPF_ATTR_BTF - static_assert(SoM(struct BPF_BTF_LOAD_struct, btf) == SoM(union bpf_attr, btf), + static_assert(sizeof_field(struct BPF_BTF_LOAD_struct, btf) == sizeof_field(union bpf_attr, btf), "BPF_BTF_LOAD_struct.btf size mismatch"); static_assert(offsetof(struct BPF_BTF_LOAD_struct, btf) == offsetof(union bpf_attr, btf), "BPF_BTF_LOAD_struct.btf offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_BTF */ # ifdef HAVE_UNION_BPF_ATTR_BTF_LOG_BUF - static_assert(SoM(struct BPF_BTF_LOAD_struct, btf_log_buf) == SoM(union bpf_attr, btf_log_buf), + static_assert(sizeof_field(struct BPF_BTF_LOAD_struct, btf_log_buf) == sizeof_field(union bpf_attr, btf_log_buf), "BPF_BTF_LOAD_struct.btf_log_buf size mismatch"); static_assert(offsetof(struct BPF_BTF_LOAD_struct, btf_log_buf) == offsetof(union bpf_attr, btf_log_buf), "BPF_BTF_LOAD_struct.btf_log_buf offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_BTF_LOG_BUF */ # ifdef HAVE_UNION_BPF_ATTR_BTF_SIZE - static_assert(SoM(struct BPF_BTF_LOAD_struct, btf_size) == SoM(union bpf_attr, btf_size), + static_assert(sizeof_field(struct BPF_BTF_LOAD_struct, btf_size) == sizeof_field(union bpf_attr, btf_size), "BPF_BTF_LOAD_struct.btf_size size mismatch"); static_assert(offsetof(struct BPF_BTF_LOAD_struct, btf_size) == offsetof(union bpf_attr, btf_size), "BPF_BTF_LOAD_struct.btf_size offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_BTF_SIZE */ # ifdef HAVE_UNION_BPF_ATTR_BTF_LOG_SIZE - static_assert(SoM(struct BPF_BTF_LOAD_struct, btf_log_size) == SoM(union bpf_attr, btf_log_size), + static_assert(sizeof_field(struct BPF_BTF_LOAD_struct, btf_log_size) == sizeof_field(union bpf_attr, btf_log_size), "BPF_BTF_LOAD_struct.btf_log_size size mismatch"); static_assert(offsetof(struct BPF_BTF_LOAD_struct, btf_log_size) == offsetof(union bpf_attr, btf_log_size), "BPF_BTF_LOAD_struct.btf_log_size offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_BTF_LOG_SIZE */ # ifdef HAVE_UNION_BPF_ATTR_BTF_LOG_LEVEL - static_assert(SoM(struct BPF_BTF_LOAD_struct, btf_log_level) == SoM(union bpf_attr, btf_log_level), + static_assert(sizeof_field(struct BPF_BTF_LOAD_struct, btf_log_level) == sizeof_field(union bpf_attr, btf_log_level), "BPF_BTF_LOAD_struct.btf_log_level size mismatch"); static_assert(offsetof(struct BPF_BTF_LOAD_struct, btf_log_level) == offsetof(union bpf_attr, btf_log_level), "BPF_BTF_LOAD_struct.btf_log_level offset mismatch"); @@ -661,7 +733,7 @@ static_assert(BPF_BTF_LOAD_struct_size == expected_BPF_BTF_LOAD_struct_size, "BPF_BTF_LOAD_struct_size mismatch"); # ifdef HAVE_UNION_BPF_ATTR_BTF_ID - static_assert(SoM(struct BPF_BTF_GET_FD_BY_ID_struct, btf_id) == SoM(union bpf_attr, btf_id), + static_assert(sizeof_field(struct BPF_BTF_GET_FD_BY_ID_struct, btf_id) == sizeof_field(union bpf_attr, btf_id), "BPF_BTF_GET_FD_BY_ID_struct.btf_id size mismatch"); static_assert(offsetof(struct BPF_BTF_GET_FD_BY_ID_struct, btf_id) == offsetof(union bpf_attr, btf_id), "BPF_BTF_GET_FD_BY_ID_struct.btf_id offset mismatch"); @@ -671,63 +743,63 @@ static_assert(BPF_BTF_GET_FD_BY_ID_struct_size == expected_BPF_BTF_GET_FD_BY_ID_ "BPF_BTF_GET_FD_BY_ID_struct_size mismatch"); # ifdef HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_PID - static_assert(SoM(struct BPF_TASK_FD_QUERY_struct, pid) == SoM(union bpf_attr, task_fd_query.pid), + static_assert(sizeof_field(struct BPF_TASK_FD_QUERY_struct, pid) == sizeof_field(union bpf_attr, task_fd_query.pid), "BPF_TASK_FD_QUERY_struct.pid size mismatch"); static_assert(offsetof(struct BPF_TASK_FD_QUERY_struct, pid) == offsetof(union bpf_attr, task_fd_query.pid), "BPF_TASK_FD_QUERY_struct.pid offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_PID */ # ifdef HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_FD - static_assert(SoM(struct BPF_TASK_FD_QUERY_struct, fd) == SoM(union bpf_attr, task_fd_query.fd), + static_assert(sizeof_field(struct BPF_TASK_FD_QUERY_struct, fd) == sizeof_field(union bpf_attr, task_fd_query.fd), "BPF_TASK_FD_QUERY_struct.fd size mismatch"); static_assert(offsetof(struct BPF_TASK_FD_QUERY_struct, fd) == offsetof(union bpf_attr, task_fd_query.fd), "BPF_TASK_FD_QUERY_struct.fd offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_FD */ # ifdef HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_FLAGS - static_assert(SoM(struct BPF_TASK_FD_QUERY_struct, flags) == SoM(union bpf_attr, task_fd_query.flags), + static_assert(sizeof_field(struct BPF_TASK_FD_QUERY_struct, flags) == sizeof_field(union bpf_attr, task_fd_query.flags), "BPF_TASK_FD_QUERY_struct.flags size mismatch"); static_assert(offsetof(struct BPF_TASK_FD_QUERY_struct, flags) == offsetof(union bpf_attr, task_fd_query.flags), "BPF_TASK_FD_QUERY_struct.flags offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_FLAGS */ # ifdef HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_BUF_LEN - static_assert(SoM(struct BPF_TASK_FD_QUERY_struct, buf_len) == SoM(union bpf_attr, task_fd_query.buf_len), + static_assert(sizeof_field(struct BPF_TASK_FD_QUERY_struct, buf_len) == sizeof_field(union bpf_attr, task_fd_query.buf_len), "BPF_TASK_FD_QUERY_struct.buf_len size mismatch"); static_assert(offsetof(struct BPF_TASK_FD_QUERY_struct, buf_len) == offsetof(union bpf_attr, task_fd_query.buf_len), "BPF_TASK_FD_QUERY_struct.buf_len offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_BUF_LEN */ # ifdef HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_BUF - static_assert(SoM(struct BPF_TASK_FD_QUERY_struct, buf) == SoM(union bpf_attr, task_fd_query.buf), + static_assert(sizeof_field(struct BPF_TASK_FD_QUERY_struct, buf) == sizeof_field(union bpf_attr, task_fd_query.buf), "BPF_TASK_FD_QUERY_struct.buf size mismatch"); static_assert(offsetof(struct BPF_TASK_FD_QUERY_struct, buf) == offsetof(union bpf_attr, task_fd_query.buf), "BPF_TASK_FD_QUERY_struct.buf offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_BUF */ # ifdef HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_PROG_ID - static_assert(SoM(struct BPF_TASK_FD_QUERY_struct, prog_id) == SoM(union bpf_attr, task_fd_query.prog_id), + static_assert(sizeof_field(struct BPF_TASK_FD_QUERY_struct, prog_id) == sizeof_field(union bpf_attr, task_fd_query.prog_id), "BPF_TASK_FD_QUERY_struct.prog_id size mismatch"); static_assert(offsetof(struct BPF_TASK_FD_QUERY_struct, prog_id) == offsetof(union bpf_attr, task_fd_query.prog_id), "BPF_TASK_FD_QUERY_struct.prog_id offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_PROG_ID */ # ifdef HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_FD_TYPE - static_assert(SoM(struct BPF_TASK_FD_QUERY_struct, fd_type) == SoM(union bpf_attr, task_fd_query.fd_type), + static_assert(sizeof_field(struct BPF_TASK_FD_QUERY_struct, fd_type) == sizeof_field(union bpf_attr, task_fd_query.fd_type), "BPF_TASK_FD_QUERY_struct.fd_type size mismatch"); static_assert(offsetof(struct BPF_TASK_FD_QUERY_struct, fd_type) == offsetof(union bpf_attr, task_fd_query.fd_type), "BPF_TASK_FD_QUERY_struct.fd_type offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_FD_TYPE */ # ifdef HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_PROBE_OFFSET - static_assert(SoM(struct BPF_TASK_FD_QUERY_struct, probe_offset) == SoM(union bpf_attr, task_fd_query.probe_offset), + static_assert(sizeof_field(struct BPF_TASK_FD_QUERY_struct, probe_offset) == sizeof_field(union bpf_attr, task_fd_query.probe_offset), "BPF_TASK_FD_QUERY_struct.probe_offset size mismatch"); static_assert(offsetof(struct BPF_TASK_FD_QUERY_struct, probe_offset) == offsetof(union bpf_attr, task_fd_query.probe_offset), "BPF_TASK_FD_QUERY_struct.probe_offset offset mismatch"); # endif /* HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_PROBE_OFFSET */ # ifdef HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_PROBE_ADDR - static_assert(SoM(struct BPF_TASK_FD_QUERY_struct, probe_addr) == SoM(union bpf_attr, task_fd_query.probe_addr), + static_assert(sizeof_field(struct BPF_TASK_FD_QUERY_struct, probe_addr) == sizeof_field(union bpf_attr, task_fd_query.probe_addr), "BPF_TASK_FD_QUERY_struct.probe_addr size mismatch"); static_assert(offsetof(struct BPF_TASK_FD_QUERY_struct, probe_addr) == offsetof(union bpf_attr, task_fd_query.probe_addr), "BPF_TASK_FD_QUERY_struct.probe_addr offset mismatch"); @@ -737,77 +809,84 @@ static_assert(BPF_TASK_FD_QUERY_struct_size == expected_BPF_TASK_FD_QUERY_struct "BPF_TASK_FD_QUERY_struct_size mismatch"); # ifdef HAVE_STRUCT_BPF_MAP_INFO_TYPE - static_assert(SoM(struct bpf_map_info_struct, type) == SoM(struct bpf_map_info, type), + static_assert(sizeof_field(struct bpf_map_info_struct, type) == sizeof_field(struct bpf_map_info, type), "bpf_map_info_struct.type size mismatch"); static_assert(offsetof(struct bpf_map_info_struct, type) == offsetof(struct bpf_map_info, type), "bpf_map_info_struct.type offset mismatch"); # endif /* HAVE_STRUCT_BPF_MAP_INFO_TYPE */ # ifdef HAVE_STRUCT_BPF_MAP_INFO_ID - static_assert(SoM(struct bpf_map_info_struct, id) == SoM(struct bpf_map_info, id), + static_assert(sizeof_field(struct bpf_map_info_struct, id) == sizeof_field(struct bpf_map_info, id), "bpf_map_info_struct.id size mismatch"); static_assert(offsetof(struct bpf_map_info_struct, id) == offsetof(struct bpf_map_info, id), "bpf_map_info_struct.id offset mismatch"); # endif /* HAVE_STRUCT_BPF_MAP_INFO_ID */ # ifdef HAVE_STRUCT_BPF_MAP_INFO_KEY_SIZE - static_assert(SoM(struct bpf_map_info_struct, key_size) == SoM(struct bpf_map_info, key_size), + static_assert(sizeof_field(struct bpf_map_info_struct, key_size) == sizeof_field(struct bpf_map_info, key_size), "bpf_map_info_struct.key_size size mismatch"); static_assert(offsetof(struct bpf_map_info_struct, key_size) == offsetof(struct bpf_map_info, key_size), "bpf_map_info_struct.key_size offset mismatch"); # endif /* HAVE_STRUCT_BPF_MAP_INFO_KEY_SIZE */ # ifdef HAVE_STRUCT_BPF_MAP_INFO_VALUE_SIZE - static_assert(SoM(struct bpf_map_info_struct, value_size) == SoM(struct bpf_map_info, value_size), + static_assert(sizeof_field(struct bpf_map_info_struct, value_size) == sizeof_field(struct bpf_map_info, value_size), "bpf_map_info_struct.value_size size mismatch"); static_assert(offsetof(struct bpf_map_info_struct, value_size) == offsetof(struct bpf_map_info, value_size), "bpf_map_info_struct.value_size offset mismatch"); # endif /* HAVE_STRUCT_BPF_MAP_INFO_VALUE_SIZE */ # ifdef HAVE_STRUCT_BPF_MAP_INFO_MAX_ENTRIES - static_assert(SoM(struct bpf_map_info_struct, max_entries) == SoM(struct bpf_map_info, max_entries), + static_assert(sizeof_field(struct bpf_map_info_struct, max_entries) == sizeof_field(struct bpf_map_info, max_entries), "bpf_map_info_struct.max_entries size mismatch"); static_assert(offsetof(struct bpf_map_info_struct, max_entries) == offsetof(struct bpf_map_info, max_entries), "bpf_map_info_struct.max_entries offset mismatch"); # endif /* HAVE_STRUCT_BPF_MAP_INFO_MAX_ENTRIES */ # ifdef HAVE_STRUCT_BPF_MAP_INFO_MAP_FLAGS - static_assert(SoM(struct bpf_map_info_struct, map_flags) == SoM(struct bpf_map_info, map_flags), + static_assert(sizeof_field(struct bpf_map_info_struct, map_flags) == sizeof_field(struct bpf_map_info, map_flags), "bpf_map_info_struct.map_flags size mismatch"); static_assert(offsetof(struct bpf_map_info_struct, map_flags) == offsetof(struct bpf_map_info, map_flags), "bpf_map_info_struct.map_flags offset mismatch"); # endif /* HAVE_STRUCT_BPF_MAP_INFO_MAP_FLAGS */ # ifdef HAVE_STRUCT_BPF_MAP_INFO_NAME - static_assert(SoM(struct bpf_map_info_struct, name) == SoM(struct bpf_map_info, name), + static_assert(sizeof_field(struct bpf_map_info_struct, name) == sizeof_field(struct bpf_map_info, name), "bpf_map_info_struct.name size mismatch"); static_assert(offsetof(struct bpf_map_info_struct, name) == offsetof(struct bpf_map_info, name), "bpf_map_info_struct.name offset mismatch"); # endif /* HAVE_STRUCT_BPF_MAP_INFO_NAME */ # ifdef HAVE_STRUCT_BPF_MAP_INFO_IFINDEX - static_assert(SoM(struct bpf_map_info_struct, ifindex) == SoM(struct bpf_map_info, ifindex), + static_assert(sizeof_field(struct bpf_map_info_struct, ifindex) == sizeof_field(struct bpf_map_info, ifindex), "bpf_map_info_struct.ifindex size mismatch"); static_assert(offsetof(struct bpf_map_info_struct, ifindex) == offsetof(struct bpf_map_info, ifindex), "bpf_map_info_struct.ifindex offset mismatch"); # endif /* HAVE_STRUCT_BPF_MAP_INFO_IFINDEX */ +# ifdef HAVE_STRUCT_BPF_MAP_INFO_BTF_VMLINUX_VALUE_TYPE_ID + static_assert(sizeof_field(struct bpf_map_info_struct, btf_vmlinux_value_type_id) == sizeof_field(struct bpf_map_info, btf_vmlinux_value_type_id), + "bpf_map_info_struct.btf_vmlinux_value_type_id size mismatch"); + static_assert(offsetof(struct bpf_map_info_struct, btf_vmlinux_value_type_id) == offsetof(struct bpf_map_info, btf_vmlinux_value_type_id), + "bpf_map_info_struct.btf_vmlinux_value_type_id offset mismatch"); +# endif /* HAVE_STRUCT_BPF_MAP_INFO_BTF_VMLINUX_VALUE_TYPE_ID */ + # ifdef HAVE_STRUCT_BPF_MAP_INFO_BTF_ID - static_assert(SoM(struct bpf_map_info_struct, btf_id) == SoM(struct bpf_map_info, btf_id), + static_assert(sizeof_field(struct bpf_map_info_struct, btf_id) == sizeof_field(struct bpf_map_info, btf_id), "bpf_map_info_struct.btf_id size mismatch"); static_assert(offsetof(struct bpf_map_info_struct, btf_id) == offsetof(struct bpf_map_info, btf_id), "bpf_map_info_struct.btf_id offset mismatch"); # endif /* HAVE_STRUCT_BPF_MAP_INFO_BTF_ID */ # ifdef HAVE_STRUCT_BPF_MAP_INFO_BTF_KEY_TYPE_ID - static_assert(SoM(struct bpf_map_info_struct, btf_key_type_id) == SoM(struct bpf_map_info, btf_key_type_id), + static_assert(sizeof_field(struct bpf_map_info_struct, btf_key_type_id) == sizeof_field(struct bpf_map_info, btf_key_type_id), "bpf_map_info_struct.btf_key_type_id size mismatch"); static_assert(offsetof(struct bpf_map_info_struct, btf_key_type_id) == offsetof(struct bpf_map_info, btf_key_type_id), "bpf_map_info_struct.btf_key_type_id offset mismatch"); # endif /* HAVE_STRUCT_BPF_MAP_INFO_BTF_KEY_TYPE_ID */ # ifdef HAVE_STRUCT_BPF_MAP_INFO_BTF_VALUE_TYPE_ID - static_assert(SoM(struct bpf_map_info_struct, btf_value_type_id) == SoM(struct bpf_map_info, btf_value_type_id), + static_assert(sizeof_field(struct bpf_map_info_struct, btf_value_type_id) == sizeof_field(struct bpf_map_info, btf_value_type_id), "bpf_map_info_struct.btf_value_type_id size mismatch"); static_assert(offsetof(struct bpf_map_info_struct, btf_value_type_id) == offsetof(struct bpf_map_info, btf_value_type_id), "bpf_map_info_struct.btf_value_type_id offset mismatch"); @@ -817,217 +896,217 @@ static_assert(bpf_map_info_struct_size == expected_bpf_map_info_struct_size, "bpf_map_info_struct_size mismatch"); # ifdef HAVE_STRUCT_BPF_PROG_INFO_TYPE - static_assert(SoM(struct bpf_prog_info_struct, type) == SoM(struct bpf_prog_info, type), + static_assert(sizeof_field(struct bpf_prog_info_struct, type) == sizeof_field(struct bpf_prog_info, type), "bpf_prog_info_struct.type size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, type) == offsetof(struct bpf_prog_info, type), "bpf_prog_info_struct.type offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_TYPE */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_ID - static_assert(SoM(struct bpf_prog_info_struct, id) == SoM(struct bpf_prog_info, id), + static_assert(sizeof_field(struct bpf_prog_info_struct, id) == sizeof_field(struct bpf_prog_info, id), "bpf_prog_info_struct.id size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, id) == offsetof(struct bpf_prog_info, id), "bpf_prog_info_struct.id offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_ID */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_TAG - static_assert(SoM(struct bpf_prog_info_struct, tag) == SoM(struct bpf_prog_info, tag), + static_assert(sizeof_field(struct bpf_prog_info_struct, tag) == sizeof_field(struct bpf_prog_info, tag), "bpf_prog_info_struct.tag size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, tag) == offsetof(struct bpf_prog_info, tag), "bpf_prog_info_struct.tag offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_TAG */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_JITED_PROG_LEN - static_assert(SoM(struct bpf_prog_info_struct, jited_prog_len) == SoM(struct bpf_prog_info, jited_prog_len), + static_assert(sizeof_field(struct bpf_prog_info_struct, jited_prog_len) == sizeof_field(struct bpf_prog_info, jited_prog_len), "bpf_prog_info_struct.jited_prog_len size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, jited_prog_len) == offsetof(struct bpf_prog_info, jited_prog_len), "bpf_prog_info_struct.jited_prog_len offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_JITED_PROG_LEN */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_XLATED_PROG_LEN - static_assert(SoM(struct bpf_prog_info_struct, xlated_prog_len) == SoM(struct bpf_prog_info, xlated_prog_len), + static_assert(sizeof_field(struct bpf_prog_info_struct, xlated_prog_len) == sizeof_field(struct bpf_prog_info, xlated_prog_len), "bpf_prog_info_struct.xlated_prog_len size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, xlated_prog_len) == offsetof(struct bpf_prog_info, xlated_prog_len), "bpf_prog_info_struct.xlated_prog_len offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_XLATED_PROG_LEN */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_JITED_PROG_INSNS - static_assert(SoM(struct bpf_prog_info_struct, jited_prog_insns) == SoM(struct bpf_prog_info, jited_prog_insns), + static_assert(sizeof_field(struct bpf_prog_info_struct, jited_prog_insns) == sizeof_field(struct bpf_prog_info, jited_prog_insns), "bpf_prog_info_struct.jited_prog_insns size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, jited_prog_insns) == offsetof(struct bpf_prog_info, jited_prog_insns), "bpf_prog_info_struct.jited_prog_insns offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_JITED_PROG_INSNS */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_XLATED_PROG_INSNS - static_assert(SoM(struct bpf_prog_info_struct, xlated_prog_insns) == SoM(struct bpf_prog_info, xlated_prog_insns), + static_assert(sizeof_field(struct bpf_prog_info_struct, xlated_prog_insns) == sizeof_field(struct bpf_prog_info, xlated_prog_insns), "bpf_prog_info_struct.xlated_prog_insns size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, xlated_prog_insns) == offsetof(struct bpf_prog_info, xlated_prog_insns), "bpf_prog_info_struct.xlated_prog_insns offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_XLATED_PROG_INSNS */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_LOAD_TIME - static_assert(SoM(struct bpf_prog_info_struct, load_time) == SoM(struct bpf_prog_info, load_time), + static_assert(sizeof_field(struct bpf_prog_info_struct, load_time) == sizeof_field(struct bpf_prog_info, load_time), "bpf_prog_info_struct.load_time size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, load_time) == offsetof(struct bpf_prog_info, load_time), "bpf_prog_info_struct.load_time offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_LOAD_TIME */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_CREATED_BY_UID - static_assert(SoM(struct bpf_prog_info_struct, created_by_uid) == SoM(struct bpf_prog_info, created_by_uid), + static_assert(sizeof_field(struct bpf_prog_info_struct, created_by_uid) == sizeof_field(struct bpf_prog_info, created_by_uid), "bpf_prog_info_struct.created_by_uid size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, created_by_uid) == offsetof(struct bpf_prog_info, created_by_uid), "bpf_prog_info_struct.created_by_uid offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_CREATED_BY_UID */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_NR_MAP_IDS - static_assert(SoM(struct bpf_prog_info_struct, nr_map_ids) == SoM(struct bpf_prog_info, nr_map_ids), + static_assert(sizeof_field(struct bpf_prog_info_struct, nr_map_ids) == sizeof_field(struct bpf_prog_info, nr_map_ids), "bpf_prog_info_struct.nr_map_ids size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, nr_map_ids) == offsetof(struct bpf_prog_info, nr_map_ids), "bpf_prog_info_struct.nr_map_ids offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_NR_MAP_IDS */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_MAP_IDS - static_assert(SoM(struct bpf_prog_info_struct, map_ids) == SoM(struct bpf_prog_info, map_ids), + static_assert(sizeof_field(struct bpf_prog_info_struct, map_ids) == sizeof_field(struct bpf_prog_info, map_ids), "bpf_prog_info_struct.map_ids size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, map_ids) == offsetof(struct bpf_prog_info, map_ids), "bpf_prog_info_struct.map_ids offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_MAP_IDS */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_NAME - static_assert(SoM(struct bpf_prog_info_struct, name) == SoM(struct bpf_prog_info, name), + static_assert(sizeof_field(struct bpf_prog_info_struct, name) == sizeof_field(struct bpf_prog_info, name), "bpf_prog_info_struct.name size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, name) == offsetof(struct bpf_prog_info, name), "bpf_prog_info_struct.name offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_NAME */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_IFINDEX - static_assert(SoM(struct bpf_prog_info_struct, ifindex) == SoM(struct bpf_prog_info, ifindex), + static_assert(sizeof_field(struct bpf_prog_info_struct, ifindex) == sizeof_field(struct bpf_prog_info, ifindex), "bpf_prog_info_struct.ifindex size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, ifindex) == offsetof(struct bpf_prog_info, ifindex), "bpf_prog_info_struct.ifindex offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_IFINDEX */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_NR_JITED_KSYMS - static_assert(SoM(struct bpf_prog_info_struct, nr_jited_ksyms) == SoM(struct bpf_prog_info, nr_jited_ksyms), + static_assert(sizeof_field(struct bpf_prog_info_struct, nr_jited_ksyms) == sizeof_field(struct bpf_prog_info, nr_jited_ksyms), "bpf_prog_info_struct.nr_jited_ksyms size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, nr_jited_ksyms) == offsetof(struct bpf_prog_info, nr_jited_ksyms), "bpf_prog_info_struct.nr_jited_ksyms offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_NR_JITED_KSYMS */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_NR_JITED_FUNC_LENS - static_assert(SoM(struct bpf_prog_info_struct, nr_jited_func_lens) == SoM(struct bpf_prog_info, nr_jited_func_lens), + static_assert(sizeof_field(struct bpf_prog_info_struct, nr_jited_func_lens) == sizeof_field(struct bpf_prog_info, nr_jited_func_lens), "bpf_prog_info_struct.nr_jited_func_lens size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, nr_jited_func_lens) == offsetof(struct bpf_prog_info, nr_jited_func_lens), "bpf_prog_info_struct.nr_jited_func_lens offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_NR_JITED_FUNC_LENS */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_JITED_KSYMS - static_assert(SoM(struct bpf_prog_info_struct, jited_ksyms) == SoM(struct bpf_prog_info, jited_ksyms), + static_assert(sizeof_field(struct bpf_prog_info_struct, jited_ksyms) == sizeof_field(struct bpf_prog_info, jited_ksyms), "bpf_prog_info_struct.jited_ksyms size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, jited_ksyms) == offsetof(struct bpf_prog_info, jited_ksyms), "bpf_prog_info_struct.jited_ksyms offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_JITED_KSYMS */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_JITED_FUNC_LENS - static_assert(SoM(struct bpf_prog_info_struct, jited_func_lens) == SoM(struct bpf_prog_info, jited_func_lens), + static_assert(sizeof_field(struct bpf_prog_info_struct, jited_func_lens) == sizeof_field(struct bpf_prog_info, jited_func_lens), "bpf_prog_info_struct.jited_func_lens size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, jited_func_lens) == offsetof(struct bpf_prog_info, jited_func_lens), "bpf_prog_info_struct.jited_func_lens offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_JITED_FUNC_LENS */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_BTF_ID - static_assert(SoM(struct bpf_prog_info_struct, btf_id) == SoM(struct bpf_prog_info, btf_id), + static_assert(sizeof_field(struct bpf_prog_info_struct, btf_id) == sizeof_field(struct bpf_prog_info, btf_id), "bpf_prog_info_struct.btf_id size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, btf_id) == offsetof(struct bpf_prog_info, btf_id), "bpf_prog_info_struct.btf_id offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_BTF_ID */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_FUNC_INFO_REC_SIZE - static_assert(SoM(struct bpf_prog_info_struct, func_info_rec_size) == SoM(struct bpf_prog_info, func_info_rec_size), + static_assert(sizeof_field(struct bpf_prog_info_struct, func_info_rec_size) == sizeof_field(struct bpf_prog_info, func_info_rec_size), "bpf_prog_info_struct.func_info_rec_size size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, func_info_rec_size) == offsetof(struct bpf_prog_info, func_info_rec_size), "bpf_prog_info_struct.func_info_rec_size offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_FUNC_INFO_REC_SIZE */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_FUNC_INFO - static_assert(SoM(struct bpf_prog_info_struct, func_info) == SoM(struct bpf_prog_info, func_info), + static_assert(sizeof_field(struct bpf_prog_info_struct, func_info) == sizeof_field(struct bpf_prog_info, func_info), "bpf_prog_info_struct.func_info size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, func_info) == offsetof(struct bpf_prog_info, func_info), "bpf_prog_info_struct.func_info offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_FUNC_INFO */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_NR_FUNC_INFO - static_assert(SoM(struct bpf_prog_info_struct, nr_func_info) == SoM(struct bpf_prog_info, nr_func_info), + static_assert(sizeof_field(struct bpf_prog_info_struct, nr_func_info) == sizeof_field(struct bpf_prog_info, nr_func_info), "bpf_prog_info_struct.nr_func_info size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, nr_func_info) == offsetof(struct bpf_prog_info, nr_func_info), "bpf_prog_info_struct.nr_func_info offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_NR_FUNC_INFO */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_NR_LINE_INFO - static_assert(SoM(struct bpf_prog_info_struct, nr_line_info) == SoM(struct bpf_prog_info, nr_line_info), + static_assert(sizeof_field(struct bpf_prog_info_struct, nr_line_info) == sizeof_field(struct bpf_prog_info, nr_line_info), "bpf_prog_info_struct.nr_line_info size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, nr_line_info) == offsetof(struct bpf_prog_info, nr_line_info), "bpf_prog_info_struct.nr_line_info offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_NR_LINE_INFO */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_LINE_INFO - static_assert(SoM(struct bpf_prog_info_struct, line_info) == SoM(struct bpf_prog_info, line_info), + static_assert(sizeof_field(struct bpf_prog_info_struct, line_info) == sizeof_field(struct bpf_prog_info, line_info), "bpf_prog_info_struct.line_info size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, line_info) == offsetof(struct bpf_prog_info, line_info), "bpf_prog_info_struct.line_info offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_LINE_INFO */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_JITED_LINE_INFO - static_assert(SoM(struct bpf_prog_info_struct, jited_line_info) == SoM(struct bpf_prog_info, jited_line_info), + static_assert(sizeof_field(struct bpf_prog_info_struct, jited_line_info) == sizeof_field(struct bpf_prog_info, jited_line_info), "bpf_prog_info_struct.jited_line_info size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, jited_line_info) == offsetof(struct bpf_prog_info, jited_line_info), "bpf_prog_info_struct.jited_line_info offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_JITED_LINE_INFO */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_NR_JITED_LINE_INFO - static_assert(SoM(struct bpf_prog_info_struct, nr_jited_line_info) == SoM(struct bpf_prog_info, nr_jited_line_info), + static_assert(sizeof_field(struct bpf_prog_info_struct, nr_jited_line_info) == sizeof_field(struct bpf_prog_info, nr_jited_line_info), "bpf_prog_info_struct.nr_jited_line_info size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, nr_jited_line_info) == offsetof(struct bpf_prog_info, nr_jited_line_info), "bpf_prog_info_struct.nr_jited_line_info offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_NR_JITED_LINE_INFO */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_LINE_INFO_REC_SIZE - static_assert(SoM(struct bpf_prog_info_struct, line_info_rec_size) == SoM(struct bpf_prog_info, line_info_rec_size), + static_assert(sizeof_field(struct bpf_prog_info_struct, line_info_rec_size) == sizeof_field(struct bpf_prog_info, line_info_rec_size), "bpf_prog_info_struct.line_info_rec_size size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, line_info_rec_size) == offsetof(struct bpf_prog_info, line_info_rec_size), "bpf_prog_info_struct.line_info_rec_size offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_LINE_INFO_REC_SIZE */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_JITED_LINE_INFO_REC_SIZE - static_assert(SoM(struct bpf_prog_info_struct, jited_line_info_rec_size) == SoM(struct bpf_prog_info, jited_line_info_rec_size), + static_assert(sizeof_field(struct bpf_prog_info_struct, jited_line_info_rec_size) == sizeof_field(struct bpf_prog_info, jited_line_info_rec_size), "bpf_prog_info_struct.jited_line_info_rec_size size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, jited_line_info_rec_size) == offsetof(struct bpf_prog_info, jited_line_info_rec_size), "bpf_prog_info_struct.jited_line_info_rec_size offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_JITED_LINE_INFO_REC_SIZE */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_NR_PROG_TAGS - static_assert(SoM(struct bpf_prog_info_struct, nr_prog_tags) == SoM(struct bpf_prog_info, nr_prog_tags), + static_assert(sizeof_field(struct bpf_prog_info_struct, nr_prog_tags) == sizeof_field(struct bpf_prog_info, nr_prog_tags), "bpf_prog_info_struct.nr_prog_tags size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, nr_prog_tags) == offsetof(struct bpf_prog_info, nr_prog_tags), "bpf_prog_info_struct.nr_prog_tags offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_NR_PROG_TAGS */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_PROG_TAGS - static_assert(SoM(struct bpf_prog_info_struct, prog_tags) == SoM(struct bpf_prog_info, prog_tags), + static_assert(sizeof_field(struct bpf_prog_info_struct, prog_tags) == sizeof_field(struct bpf_prog_info, prog_tags), "bpf_prog_info_struct.prog_tags size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, prog_tags) == offsetof(struct bpf_prog_info, prog_tags), "bpf_prog_info_struct.prog_tags offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_PROG_TAGS */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_RUN_TIME_NS - static_assert(SoM(struct bpf_prog_info_struct, run_time_ns) == SoM(struct bpf_prog_info, run_time_ns), + static_assert(sizeof_field(struct bpf_prog_info_struct, run_time_ns) == sizeof_field(struct bpf_prog_info, run_time_ns), "bpf_prog_info_struct.run_time_ns size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, run_time_ns) == offsetof(struct bpf_prog_info, run_time_ns), "bpf_prog_info_struct.run_time_ns offset mismatch"); # endif /* HAVE_STRUCT_BPF_PROG_INFO_RUN_TIME_NS */ # ifdef HAVE_STRUCT_BPF_PROG_INFO_RUN_CNT - static_assert(SoM(struct bpf_prog_info_struct, run_cnt) == SoM(struct bpf_prog_info, run_cnt), + static_assert(sizeof_field(struct bpf_prog_info_struct, run_cnt) == sizeof_field(struct bpf_prog_info, run_cnt), "bpf_prog_info_struct.run_cnt size mismatch"); static_assert(offsetof(struct bpf_prog_info_struct, run_cnt) == offsetof(struct bpf_prog_info, run_cnt), "bpf_prog_info_struct.run_cnt offset mismatch"); @@ -1036,4 +1115,125 @@ static_assert(bpf_map_info_struct_size == expected_bpf_map_info_struct_size, static_assert(bpf_prog_info_struct_size == expected_bpf_prog_info_struct_size, "bpf_prog_info_struct_size mismatch"); +# ifdef HAVE_UNION_BPF_ATTR_BATCH_IN_BATCH + static_assert(sizeof_field(struct BPF_MAP_LOOKUP_BATCH_struct, in_batch) == sizeof_field(union bpf_attr, batch.in_batch), + "BPF_MAP_LOOKUP_BATCH_struct.in_batch size mismatch"); + static_assert(offsetof(struct BPF_MAP_LOOKUP_BATCH_struct, in_batch) == offsetof(union bpf_attr, batch.in_batch), + "BPF_MAP_LOOKUP_BATCH_struct.in_batch offset mismatch"); +# endif /* HAVE_UNION_BPF_ATTR_BATCH_IN_BATCH */ + +# ifdef HAVE_UNION_BPF_ATTR_BATCH_OUT_BATCH + static_assert(sizeof_field(struct BPF_MAP_LOOKUP_BATCH_struct, out_batch) == sizeof_field(union bpf_attr, batch.out_batch), + "BPF_MAP_LOOKUP_BATCH_struct.out_batch size mismatch"); + static_assert(offsetof(struct BPF_MAP_LOOKUP_BATCH_struct, out_batch) == offsetof(union bpf_attr, batch.out_batch), + "BPF_MAP_LOOKUP_BATCH_struct.out_batch offset mismatch"); +# endif /* HAVE_UNION_BPF_ATTR_BATCH_OUT_BATCH */ + +# ifdef HAVE_UNION_BPF_ATTR_BATCH_KEYS + static_assert(sizeof_field(struct BPF_MAP_LOOKUP_BATCH_struct, keys) == sizeof_field(union bpf_attr, batch.keys), + "BPF_MAP_LOOKUP_BATCH_struct.keys size mismatch"); + static_assert(offsetof(struct BPF_MAP_LOOKUP_BATCH_struct, keys) == offsetof(union bpf_attr, batch.keys), + "BPF_MAP_LOOKUP_BATCH_struct.keys offset mismatch"); +# endif /* HAVE_UNION_BPF_ATTR_BATCH_KEYS */ + +# ifdef HAVE_UNION_BPF_ATTR_BATCH_VALUES + static_assert(sizeof_field(struct BPF_MAP_LOOKUP_BATCH_struct, values) == sizeof_field(union bpf_attr, batch.values), + "BPF_MAP_LOOKUP_BATCH_struct.values size mismatch"); + static_assert(offsetof(struct BPF_MAP_LOOKUP_BATCH_struct, values) == offsetof(union bpf_attr, batch.values), + "BPF_MAP_LOOKUP_BATCH_struct.values offset mismatch"); +# endif /* HAVE_UNION_BPF_ATTR_BATCH_VALUES */ + +# ifdef HAVE_UNION_BPF_ATTR_BATCH_COUNT + static_assert(sizeof_field(struct BPF_MAP_LOOKUP_BATCH_struct, count) == sizeof_field(union bpf_attr, batch.count), + "BPF_MAP_LOOKUP_BATCH_struct.count size mismatch"); + static_assert(offsetof(struct BPF_MAP_LOOKUP_BATCH_struct, count) == offsetof(union bpf_attr, batch.count), + "BPF_MAP_LOOKUP_BATCH_struct.count offset mismatch"); +# endif /* HAVE_UNION_BPF_ATTR_BATCH_COUNT */ + +# ifdef HAVE_UNION_BPF_ATTR_BATCH_MAP_FD + static_assert(sizeof_field(struct BPF_MAP_LOOKUP_BATCH_struct, map_fd) == sizeof_field(union bpf_attr, batch.map_fd), + "BPF_MAP_LOOKUP_BATCH_struct.map_fd size mismatch"); + static_assert(offsetof(struct BPF_MAP_LOOKUP_BATCH_struct, map_fd) == offsetof(union bpf_attr, batch.map_fd), + "BPF_MAP_LOOKUP_BATCH_struct.map_fd offset mismatch"); +# endif /* HAVE_UNION_BPF_ATTR_BATCH_MAP_FD */ + +# ifdef HAVE_UNION_BPF_ATTR_BATCH_ELEM_FLAGS + static_assert(sizeof_field(struct BPF_MAP_LOOKUP_BATCH_struct, elem_flags) == sizeof_field(union bpf_attr, batch.elem_flags), + "BPF_MAP_LOOKUP_BATCH_struct.elem_flags size mismatch"); + static_assert(offsetof(struct BPF_MAP_LOOKUP_BATCH_struct, elem_flags) == offsetof(union bpf_attr, batch.elem_flags), + "BPF_MAP_LOOKUP_BATCH_struct.elem_flags offset mismatch"); +# endif /* HAVE_UNION_BPF_ATTR_BATCH_ELEM_FLAGS */ + +# ifdef HAVE_UNION_BPF_ATTR_BATCH_FLAGS + static_assert(sizeof_field(struct BPF_MAP_LOOKUP_BATCH_struct, flags) == sizeof_field(union bpf_attr, batch.flags), + "BPF_MAP_LOOKUP_BATCH_struct.flags size mismatch"); + static_assert(offsetof(struct BPF_MAP_LOOKUP_BATCH_struct, flags) == offsetof(union bpf_attr, batch.flags), + "BPF_MAP_LOOKUP_BATCH_struct.flags offset mismatch"); +# endif /* HAVE_UNION_BPF_ATTR_BATCH_FLAGS */ + +static_assert(BPF_MAP_LOOKUP_BATCH_struct_size == expected_BPF_MAP_LOOKUP_BATCH_struct_size, + "BPF_MAP_LOOKUP_BATCH_struct_size mismatch"); + +# ifdef HAVE_UNION_BPF_ATTR_LINK_CREATE_PROG_FD + static_assert(sizeof_field(struct BPF_LINK_CREATE_struct, prog_fd) == sizeof_field(union bpf_attr, link_create.prog_fd), + "BPF_LINK_CREATE_struct.prog_fd size mismatch"); + static_assert(offsetof(struct BPF_LINK_CREATE_struct, prog_fd) == offsetof(union bpf_attr, link_create.prog_fd), + "BPF_LINK_CREATE_struct.prog_fd offset mismatch"); +# endif /* HAVE_UNION_BPF_ATTR_LINK_CREATE_PROG_FD */ + +# ifdef HAVE_UNION_BPF_ATTR_LINK_CREATE_TARGET_FD + static_assert(sizeof_field(struct BPF_LINK_CREATE_struct, target_fd) == sizeof_field(union bpf_attr, link_create.target_fd), + "BPF_LINK_CREATE_struct.target_fd size mismatch"); + static_assert(offsetof(struct BPF_LINK_CREATE_struct, target_fd) == offsetof(union bpf_attr, link_create.target_fd), + "BPF_LINK_CREATE_struct.target_fd offset mismatch"); +# endif /* HAVE_UNION_BPF_ATTR_LINK_CREATE_TARGET_FD */ + +# ifdef HAVE_UNION_BPF_ATTR_LINK_CREATE_ATTACH_TYPE + static_assert(sizeof_field(struct BPF_LINK_CREATE_struct, attach_type) == sizeof_field(union bpf_attr, link_create.attach_type), + "BPF_LINK_CREATE_struct.attach_type size mismatch"); + static_assert(offsetof(struct BPF_LINK_CREATE_struct, attach_type) == offsetof(union bpf_attr, link_create.attach_type), + "BPF_LINK_CREATE_struct.attach_type offset mismatch"); +# endif /* HAVE_UNION_BPF_ATTR_LINK_CREATE_ATTACH_TYPE */ + +# ifdef HAVE_UNION_BPF_ATTR_LINK_CREATE_FLAGS + static_assert(sizeof_field(struct BPF_LINK_CREATE_struct, flags) == sizeof_field(union bpf_attr, link_create.flags), + "BPF_LINK_CREATE_struct.flags size mismatch"); + static_assert(offsetof(struct BPF_LINK_CREATE_struct, flags) == offsetof(union bpf_attr, link_create.flags), + "BPF_LINK_CREATE_struct.flags offset mismatch"); +# endif /* HAVE_UNION_BPF_ATTR_LINK_CREATE_FLAGS */ + +static_assert(BPF_LINK_CREATE_struct_size == expected_BPF_LINK_CREATE_struct_size, + "BPF_LINK_CREATE_struct_size mismatch"); + +# ifdef HAVE_UNION_BPF_ATTR_LINK_UPDATE_LINK_FD + static_assert(sizeof_field(struct BPF_LINK_UPDATE_struct, link_fd) == sizeof_field(union bpf_attr, link_update.link_fd), + "BPF_LINK_UPDATE_struct.link_fd size mismatch"); + static_assert(offsetof(struct BPF_LINK_UPDATE_struct, link_fd) == offsetof(union bpf_attr, link_update.link_fd), + "BPF_LINK_UPDATE_struct.link_fd offset mismatch"); +# endif /* HAVE_UNION_BPF_ATTR_LINK_UPDATE_LINK_FD */ + +# ifdef HAVE_UNION_BPF_ATTR_LINK_UPDATE_NEW_PROG_FD + static_assert(sizeof_field(struct BPF_LINK_UPDATE_struct, new_prog_fd) == sizeof_field(union bpf_attr, link_update.new_prog_fd), + "BPF_LINK_UPDATE_struct.new_prog_fd size mismatch"); + static_assert(offsetof(struct BPF_LINK_UPDATE_struct, new_prog_fd) == offsetof(union bpf_attr, link_update.new_prog_fd), + "BPF_LINK_UPDATE_struct.new_prog_fd offset mismatch"); +# endif /* HAVE_UNION_BPF_ATTR_LINK_UPDATE_NEW_PROG_FD */ + +# ifdef HAVE_UNION_BPF_ATTR_LINK_UPDATE_FLAGS + static_assert(sizeof_field(struct BPF_LINK_UPDATE_struct, flags) == sizeof_field(union bpf_attr, link_update.flags), + "BPF_LINK_UPDATE_struct.flags size mismatch"); + static_assert(offsetof(struct BPF_LINK_UPDATE_struct, flags) == offsetof(union bpf_attr, link_update.flags), + "BPF_LINK_UPDATE_struct.flags offset mismatch"); +# endif /* HAVE_UNION_BPF_ATTR_LINK_UPDATE_FLAGS */ + +# ifdef HAVE_UNION_BPF_ATTR_LINK_UPDATE_OLD_PROG_FD + static_assert(sizeof_field(struct BPF_LINK_UPDATE_struct, old_prog_fd) == sizeof_field(union bpf_attr, link_update.old_prog_fd), + "BPF_LINK_UPDATE_struct.old_prog_fd size mismatch"); + static_assert(offsetof(struct BPF_LINK_UPDATE_struct, old_prog_fd) == offsetof(union bpf_attr, link_update.old_prog_fd), + "BPF_LINK_UPDATE_struct.old_prog_fd offset mismatch"); +# endif /* HAVE_UNION_BPF_ATTR_LINK_UPDATE_OLD_PROG_FD */ + +static_assert(BPF_LINK_UPDATE_struct_size == expected_BPF_LINK_UPDATE_struct_size, + "BPF_LINK_UPDATE_struct_size mismatch"); + #endif /* HAVE_LINUX_BPF_H */ diff --git a/bpf_filter.c b/bpf_filter.c index fbd26a5c..8acf08d7 100644 --- a/bpf_filter.c +++ b/bpf_filter.c @@ -36,10 +36,8 @@ print_bpf_filter_code(const uint16_t code, bool extended) const struct xlat *mode = extended ? ebpf_mode : bpf_mode; uint16_t i = code & ~BPF_CLASS(code); - if (extended) - printxval_index(ebpf_class, BPF_CLASS(code), "BPF_???"); - else - printxval_index(bpf_class, BPF_CLASS(code), "BPF_???"); + printxval(extended ? ebpf_class : bpf_class, BPF_CLASS(code), + "BPF_???"); switch (BPF_CLASS(code)) { case BPF_ST: case BPF_STX: diff --git a/bpf_sock_filter.c b/bpf_sock_filter.c index e66faa8e..dbcae5b4 100644 --- a/bpf_sock_filter.c +++ b/bpf_sock_filter.c @@ -2,7 +2,7 @@ * Decoder of socket filter programs. * * Copyright (c) 2017 Dmitry V. Levin - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -14,7 +14,9 @@ #include #include "xlat/skf_ad.h" -#include "xlat/skf_off.h" +#define XLAT_MACROS_ONLY +# include "xlat/skf_off.h" +#undef XLAT_MACROS_ONLY static bool print_sock_filter_k(const struct bpf_filter_block *const fp) diff --git a/btrfs.c b/btrfs.c index dc5eff1a..77ce151f 100644 --- a/btrfs.c +++ b/btrfs.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2016 Jeff Mahoney - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -33,6 +33,7 @@ typedef struct btrfs_ioctl_vol_args_v2 #ifdef HAVE_LINUX_BTRFS_H # include "print_fields.h" +# include "types/btrfs.h" # include /* @@ -833,7 +834,7 @@ MPERS_PRINTER_DECL(int, btrfs_ioctl, } case BTRFS_IOC_LOGICAL_INO: { /* RW */ - struct btrfs_ioctl_logical_ino_args args; + struct_btrfs_ioctl_logical_ino_args args; if (entering(tcp)) tprints(", "); @@ -849,23 +850,12 @@ MPERS_PRINTER_DECL(int, btrfs_ioctl, PRINT_FIELD_U("{", args, logical); PRINT_FIELD_U(", ", args, size); - if (!IS_ARRAY_ZERO(args.reserved)) { - tprints(", reserved=["); - for (size_t i = 0; i < 3; ++i) - tprintf("%s%#" PRI__x64, - i ? ", " : "", - args.reserved[i]); - tprints("]"); - } + if (!IS_ARRAY_ZERO(args.reserved)) + PRINT_FIELD_X_ARRAY(", ", args, reserved); - tprintf(", flags="); - printflags64(btrfs_logical_ino_args_flags, -# ifdef HAVE_STRUCT_BTRFS_IOCTL_LOGICAL_INO_ARGS_FLAGS - args.flags -# else - args.reserved[3] -# endif - , "BTRFS_LOGICAL_INO_ARGS_???"); + tprints(", flags="); + printflags64(btrfs_logical_ino_args_flags, args.flags, + "BTRFS_LOGICAL_INO_ARGS_???"); PRINT_FIELD_ADDR64(", ", args, inodes); tprints("}"); return 0; diff --git a/cacheflush.c b/cacheflush.c index ac53745e..64030507 100644 --- a/cacheflush.c +++ b/cacheflush.c @@ -18,19 +18,7 @@ #ifdef M68K # include "xlat/cacheflush_scope.h" - -static const struct xlat cacheflush_flags[] = { -# ifdef FLUSH_CACHE_BOTH - XLAT(FLUSH_CACHE_BOTH), -# endif -# ifdef FLUSH_CACHE_DATA - XLAT(FLUSH_CACHE_DATA), -# endif -# ifdef FLUSH_CACHE_INSN - XLAT(FLUSH_CACHE_INSN), -# endif - XLAT_END -}; +# include "xlat/cacheflush_flags.h" SYS_FUNC(cacheflush) { @@ -50,12 +38,7 @@ SYS_FUNC(cacheflush) #endif /* M68K */ #if defined(BFIN) || defined(CSKY) -static const struct xlat cacheflush_flags[] = { - XLAT(ICACHE), - XLAT(DCACHE), - XLAT(BCACHE), - XLAT_END -}; +# include "xlat/cacheflush_flags.h" SYS_FUNC(cacheflush) { @@ -71,21 +54,7 @@ SYS_FUNC(cacheflush) #endif /* BFIN || CSKY */ #ifdef SH -static const struct xlat cacheflush_flags[] = { -# ifdef CACHEFLUSH_D_INVAL - XLAT(CACHEFLUSH_D_INVAL), -# endif -# ifdef CACHEFLUSH_D_WB - XLAT(CACHEFLUSH_D_WB), -# endif -# ifdef CACHEFLUSH_D_PURGE - XLAT(CACHEFLUSH_D_PURGE), -# endif -# ifdef CACHEFLUSH_I - XLAT(CACHEFLUSH_I), -# endif - XLAT_END -}; +# include "xlat/cacheflush_flags.h" SYS_FUNC(cacheflush) { diff --git a/capability.c b/capability.c index 0e763ee1..cdd8fac3 100644 --- a/capability.c +++ b/capability.c @@ -2,7 +2,7 @@ * Copyright (c) 2000 Wichert Akkerman * Copyright (c) 2011 Denys Vlasenko * Copyright (c) 2005-2015 Dmitry V. Levin - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -70,7 +70,9 @@ print_cap_header(struct tcb *const tcp, const kernel_ulong_t addr, tprints("{version="); printxval(cap_version, h->version, "_LINUX_CAPABILITY_VERSION_???"); - tprintf(", pid=%d}", h->pid); + tprints(", pid="); + printpid(tcp, h->pid, PT_TGID); + tprints("}"); } static void diff --git a/caps1.h b/caps1.h index 7c36160e..ef10ddef 100644 --- a/caps1.h +++ b/caps1.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2020 Dmitry V. Levin * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -11,3 +11,6 @@ CAP_SYSLOG, CAP_WAKE_ALARM, CAP_BLOCK_SUSPEND, CAP_AUDIT_READ, +CAP_PERFMON, +CAP_BPF, +CAP_CHECKPOINT_RESTORE, diff --git a/chmod.c b/chmod.c index 7668e746..85b3abec 100644 --- a/chmod.c +++ b/chmod.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -25,6 +25,7 @@ SYS_FUNC(chmod) SYS_FUNC(fchmodat) { print_dirfd(tcp, tcp->u_arg[0]); + tprints(", "); decode_chmod(tcp, 1); return RVAL_DECODED; diff --git a/clone.c b/clone.c index 406838c4..45f24065 100644 --- a/clone.c +++ b/clone.c @@ -4,7 +4,7 @@ * Copyright (c) 2008 Jan Kratochvil * Copyright (c) 2009-2013 Denys Vlasenko * Copyright (c) 2006-2015 Dmitry V. Levin - * Copyright (c) 2014-2019 The strace developers. + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -12,23 +12,26 @@ #include "defs.h" #include -#include +#include "scno.h" #ifndef CSIGNAL # define CSIGNAL 0x000000ff #endif +#include "print_fields.h" + #include "xlat/clone_flags.h" +#include "xlat/clone3_flags.h" #include "xlat/setns_types.h" #include "xlat/unshare_flags.h" #if defined IA64 # define ARG_FLAGS 0 # define ARG_STACK 1 -# define ARG_STACKSIZE (tcp->scno == __NR_clone2 ? 2 : -1) -# define ARG_PTID (tcp->scno == __NR_clone2 ? 3 : 2) -# define ARG_CTID (tcp->scno == __NR_clone2 ? 4 : 3) -# define ARG_TLS (tcp->scno == __NR_clone2 ? 5 : 4) +# define ARG_STACKSIZE (shuffle_scno(tcp->scno) == __NR_clone2 ? 2 : -1) +# define ARG_PTID (shuffle_scno(tcp->scno) == __NR_clone2 ? 3 : 2) +# define ARG_CTID (shuffle_scno(tcp->scno) == __NR_clone2 ? 4 : 3) +# define ARG_TLS (shuffle_scno(tcp->scno) == __NR_clone2 ? 5 : 4) #elif defined S390 || defined S390X # define ARG_STACK 0 # define ARG_FLAGS 1 @@ -60,26 +63,24 @@ static void print_tls_arg(struct tcb *const tcp, const kernel_ulong_t addr) { #ifdef HAVE_STRUCT_USER_DESC -# if SUPPORTED_PERSONALITIES > 1 - if (current_personality == 1) -# endif + if ((SUPPORTED_PERSONALITIES == 1) || (current_personality == 1)) { - print_user_desc(tcp, tcp->u_arg[ARG_TLS], USER_DESC_BOTH); + print_user_desc(tcp, addr, USER_DESC_BOTH); } -# if SUPPORTED_PERSONALITIES > 1 else -# endif #endif /* HAVE_STRUCT_USER_DESC */ { - printaddr(tcp->u_arg[ARG_TLS]); + printaddr(addr); } } SYS_FUNC(clone) { - if (exiting(tcp)) { - const char *sep = "|"; - kernel_ulong_t flags = tcp->u_arg[ARG_FLAGS]; + const kernel_ulong_t flags = tcp->u_arg[ARG_FLAGS] & ~CSIGNAL; + + if (entering(tcp)) { + const unsigned int sig = tcp->u_arg[ARG_FLAGS] & CSIGNAL; + tprints("child_stack="); printaddr(tcp->u_arg[ARG_STACK]); tprints(", "); @@ -89,18 +90,40 @@ SYS_FUNC(clone) tcp->u_arg[ARG_STACKSIZE]); #endif tprints("flags="); - if (!printflags64(clone_flags, flags & ~CSIGNAL, NULL)) - sep = ""; - if ((flags & CSIGNAL) != 0) { - tprints(sep); - printsignal(flags & CSIGNAL); + if (flags) { + printflags64(clone_flags, flags, "CLONE_???"); + if (sig) { + tprints("|"); + printsignal(sig); + } + } else { + printsignal(sig); } - if ((flags & (CLONE_PARENT_SETTID|CLONE_CHILD_SETTID + /* + * TODO on syscall entry: + * We can clear CLONE_PTRACE here since it is an ancient hack + * to allow us to catch children, and we use another hack for that. + * But CLONE_PTRACE can conceivably be used by malicious programs + * to subvert us. By clearing this bit, we can defend against it: + * in untraced execution, CLONE_PTRACE should have no effect. + * + * We can also clear CLONE_UNTRACED, since it allows to start + * children outside of our control. At the moment + * I'm trying to figure out whether there is a *legitimate* + * use of this flag which we should respect. + */ + if ((flags & (CLONE_PARENT_SETTID|CLONE_PIDFD|CLONE_CHILD_SETTID |CLONE_CHILD_CLEARTID|CLONE_SETTLS)) == 0) - return 0; - if (flags & CLONE_PARENT_SETTID) { - tprints(", parent_tidptr="); - printaddr(tcp->u_arg[ARG_PTID]); + return RVAL_DECODED | RVAL_TID; + } else { + if (flags & (CLONE_PARENT_SETTID|CLONE_PIDFD)) { + kernel_ulong_t addr = tcp->u_arg[ARG_PTID]; + + tprints(", parent_tid="); + if (flags & CLONE_PARENT_SETTID) + printnum_pid(tcp, addr, PT_TID); + else + printnum_fd(tcp, addr); } if (flags & CLONE_SETTLS) { tprints(", tls="); @@ -111,21 +134,155 @@ SYS_FUNC(clone) printaddr(tcp->u_arg[ARG_CTID]); } } - /* TODO on syscall entry: - * We can clear CLONE_PTRACE here since it is an ancient hack - * to allow us to catch children, and we use another hack for that. - * But CLONE_PTRACE can conceivably be used by malicious programs - * to subvert us. By clearing this bit, we can defend against it: - * in untraced execution, CLONE_PTRACE should have no effect. - * - * We can also clear CLONE_UNTRACED, since it allows to start - * children outside of our control. At the moment - * I'm trying to figure out whether there is a *legitimate* - * use of this flag which we should respect. - */ - return 0; + return RVAL_TID; } + +struct strace_clone_args { + uint64_t flags; + uint64_t /* fd * */ pidfd; + uint64_t /* pid_t * */ child_tid; + uint64_t /* pid_t * */ parent_tid; + uint64_t /* int */ exit_signal; + uint64_t /* void * */ stack; + uint64_t stack_size; + uint64_t /* struct user_desc * / void * */ tls; + uint64_t /* pid_t * */ set_tid; + uint64_t set_tid_size; + uint64_t cgroup; +}; + +SYS_FUNC(clone3) +{ + static const size_t minsz = offsetofend(struct strace_clone_args, tls); + + const kernel_ulong_t addr = tcp->u_arg[0]; + const kernel_ulong_t size = tcp->u_arg[1]; + + struct strace_clone_args arg = { 0 }; + kernel_ulong_t fetch_size; + + fetch_size = MIN(size, sizeof(arg)); + + if (entering(tcp)) { + if (fetch_size < minsz) { + printaddr(addr); + goto out; + } else if (umoven_or_printaddr(tcp, addr, fetch_size, &arg)) { + goto out; + } + + tprints("{flags="); + printflags_ex(arg.flags, "CLONE_???", XLAT_STYLE_DEFAULT, + clone_flags, clone3_flags, NULL); + + if (arg.flags & CLONE_PIDFD) + PRINT_FIELD_ADDR64(", ", arg, pidfd); + + if (arg.flags & (CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID)) + PRINT_FIELD_ADDR64(", ", arg, child_tid); + + if (arg.flags & CLONE_PARENT_SETTID) + PRINT_FIELD_ADDR64(", ", arg, parent_tid); + + tprints(", exit_signal="); + if (arg.exit_signal < INT_MAX) + printsignal(arg.exit_signal); + else + tprintf("%" PRIu64, arg.exit_signal); + + PRINT_FIELD_ADDR64(", ", arg, stack); + PRINT_FIELD_X(", ", arg, stack_size); + + if (arg.flags & CLONE_SETTLS) { + tprints(", tls="); + print_tls_arg(tcp, arg.tls); + } + + if (arg.set_tid || arg.set_tid_size) { + static const unsigned int max_set_tid_size = 32; + + if (!arg.set_tid || !arg.set_tid_size || + arg.set_tid_size > max_set_tid_size) { + PRINT_FIELD_ADDR64(", ", arg, set_tid); + } else { + int buf; + + tprints(", set_tid="); + print_array(tcp, arg.set_tid, arg.set_tid_size, + &buf, sizeof(buf), tfetch_mem, + print_int32_array_member, 0); + } + PRINT_FIELD_U(", ", arg, set_tid_size); + } + + if (fetch_size > offsetof(struct strace_clone_args, cgroup) + && (arg.cgroup || arg.flags & CLONE_INTO_CGROUP)) + PRINT_FIELD_U(", ", arg, cgroup); + + if (size > fetch_size) + print_nonzero_bytes(tcp, ", ", addr, fetch_size, + MIN(size, get_pagesize()), + QUOTE_FORCE_HEX); + + tprints("}"); + + if ((arg.flags & (CLONE_PIDFD | CLONE_PARENT_SETTID)) || + (size > fetch_size)) + return RVAL_TID; + + goto out; + } + + /* exiting */ + + if (syserror(tcp)) + goto out; + + if (umoven(tcp, addr, fetch_size, &arg)) { + tprints(" => "); + printaddr(addr); + goto out; + } + + static const char initial_pfx[] = " => {"; + const char *pfx = initial_pfx; + + if (arg.flags & CLONE_PIDFD) { + tprintf("%spidfd=", pfx); + printnum_fd(tcp, arg.pidfd); + pfx = ", "; + } + + if (arg.flags & CLONE_PARENT_SETTID) { + tprintf("%sparent_tid=", pfx); + printnum_pid(tcp, arg.parent_tid, PT_TID); + pfx = ", "; + } + + if (size > fetch_size) { + /* + * TODO: it is possible to also store the tail on entering + * and then compare against it on exiting in order + * to avoid double-printing, but it would also require yet + * another complication of print_nonzero_bytes interface. + */ + if (print_nonzero_bytes(tcp, pfx, addr, fetch_size, + MIN(size, get_pagesize()), + QUOTE_FORCE_HEX)) + pfx = ", "; + } + + if (pfx != initial_pfx) + tprints("}"); + +out: + tprintf(", %" PRI_klu, size); + + return RVAL_DECODED | RVAL_TID; +} + + SYS_FUNC(setns) { printfd(tcp, tcp->u_arg[0]); @@ -143,5 +300,5 @@ SYS_FUNC(unshare) SYS_FUNC(fork) { - return RVAL_DECODED; + return RVAL_DECODED | RVAL_TGID; } diff --git a/close_range.c b/close_range.c new file mode 100644 index 00000000..191537a1 --- /dev/null +++ b/close_range.c @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#include "defs.h" +#ifdef HAVE_LINUX_CLOSE_RANGE_H +# include +#endif +#include "xlat/close_range_flags.h" + +SYS_FUNC(close_range) +{ + printfd(tcp, tcp->u_arg[0]); + tprints(", "); + printfd(tcp, tcp->u_arg[1]); + tprints(", "); + printflags(close_range_flags, tcp->u_arg[2], "CLOSE_RANGE_???"); + return RVAL_DECODED; +} diff --git a/compile b/compile index 99e50524..23fcba01 100755 --- a/compile +++ b/compile @@ -3,7 +3,7 @@ scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2020 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify @@ -53,7 +53,7 @@ func_file_conv () MINGW*) file_conv=mingw ;; - CYGWIN*) + CYGWIN* | MSYS*) file_conv=cygwin ;; *) @@ -67,7 +67,7 @@ func_file_conv () mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; - cygwin/*) + cygwin/* | msys/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) diff --git a/config.h.in b/config.h.in index 10fc4831..4ba99201 100644 --- a/config.h.in +++ b/config.h.in @@ -72,14 +72,54 @@ if you don't. */ #undef HAVE_DECL_BTRFS_COMPRESS_ZLIB +/* Define to 1 if you have the declaration of `BTRFS_COMPRESS_ZSTD', and to 0 + if you don't. */ +#undef HAVE_DECL_BTRFS_COMPRESS_ZSTD + +/* Define to 1 if you have the declaration of `CLOSE_RANGE_UNSHARE', and to 0 + if you don't. */ +#undef HAVE_DECL_CLOSE_RANGE_UNSHARE + +/* Define to 1 if you have the declaration of `CTL_ABI', and to 0 if you + don't. */ +#undef HAVE_DECL_CTL_ABI + /* Define to 1 if you have the declaration of `CTL_ARLAN', and to 0 if you don't. */ #undef HAVE_DECL_CTL_ARLAN +/* Define to 1 if you have the declaration of `CTL_BUS', and to 0 if you + don't. */ +#undef HAVE_DECL_CTL_BUS + +/* Define to 1 if you have the declaration of `CTL_CPU', and to 0 if you + don't. */ +#undef HAVE_DECL_CTL_CPU + +/* Define to 1 if you have the declaration of `CTL_DEBUG', and to 0 if you + don't. */ +#undef HAVE_DECL_CTL_DEBUG + +/* Define to 1 if you have the declaration of `CTL_DEV', and to 0 if you + don't. */ +#undef HAVE_DECL_CTL_DEV + /* Define to 1 if you have the declaration of `CTL_FRV', and to 0 if you don't. */ #undef HAVE_DECL_CTL_FRV +/* Define to 1 if you have the declaration of `CTL_FS', and to 0 if you don't. + */ +#undef HAVE_DECL_CTL_FS + +/* Define to 1 if you have the declaration of `CTL_KERN', and to 0 if you + don't. */ +#undef HAVE_DECL_CTL_KERN + +/* Define to 1 if you have the declaration of `CTL_NET', and to 0 if you + don't. */ +#undef HAVE_DECL_CTL_NET + /* Define to 1 if you have the declaration of `CTL_PM', and to 0 if you don't. */ #undef HAVE_DECL_CTL_PM @@ -96,22 +136,274 @@ don't. */ #undef HAVE_DECL_CTL_SUNRPC +/* Define to 1 if you have the declaration of `CTL_VM', and to 0 if you don't. + */ +#undef HAVE_DECL_CTL_VM + +/* Define to 1 if you have the declaration of `IFLA_ADDRESS', and to 0 if you + don't. */ +#undef HAVE_DECL_IFLA_ADDRESS + /* Define to 1 if you have the declaration of `IFLA_AF_SPEC', and to 0 if you don't. */ #undef HAVE_DECL_IFLA_AF_SPEC +/* Define to 1 if you have the declaration of `IFLA_ALT_IFNAME', and to 0 if + you don't. */ +#undef HAVE_DECL_IFLA_ALT_IFNAME + +/* Define to 1 if you have the declaration of `IFLA_BROADCAST', and to 0 if + you don't. */ +#undef HAVE_DECL_IFLA_BROADCAST + +/* Define to 1 if you have the declaration of `IFLA_CARRIER', and to 0 if you + don't. */ +#undef HAVE_DECL_IFLA_CARRIER + +/* Define to 1 if you have the declaration of `IFLA_CARRIER_CHANGES', and to 0 + if you don't. */ +#undef HAVE_DECL_IFLA_CARRIER_CHANGES + +/* Define to 1 if you have the declaration of `IFLA_CARRIER_DOWN_COUNT', and + to 0 if you don't. */ +#undef HAVE_DECL_IFLA_CARRIER_DOWN_COUNT + +/* Define to 1 if you have the declaration of `IFLA_CARRIER_UP_COUNT', and to + 0 if you don't. */ +#undef HAVE_DECL_IFLA_CARRIER_UP_COUNT + +/* Define to 1 if you have the declaration of `IFLA_COST', and to 0 if you + don't. */ +#undef HAVE_DECL_IFLA_COST + +/* Define to 1 if you have the declaration of `IFLA_EVENT', and to 0 if you + don't. */ +#undef HAVE_DECL_IFLA_EVENT + +/* Define to 1 if you have the declaration of `IFLA_EXT_MASK', and to 0 if you + don't. */ +#undef HAVE_DECL_IFLA_EXT_MASK + +/* Define to 1 if you have the declaration of `IFLA_GROUP', and to 0 if you + don't. */ +#undef HAVE_DECL_IFLA_GROUP + +/* Define to 1 if you have the declaration of `IFLA_GSO_MAX_SEGS', and to 0 if + you don't. */ +#undef HAVE_DECL_IFLA_GSO_MAX_SEGS + +/* Define to 1 if you have the declaration of `IFLA_GSO_MAX_SIZE', and to 0 if + you don't. */ +#undef HAVE_DECL_IFLA_GSO_MAX_SIZE + +/* Define to 1 if you have the declaration of `IFLA_IFALIAS', and to 0 if you + don't. */ +#undef HAVE_DECL_IFLA_IFALIAS + +/* Define to 1 if you have the declaration of `IFLA_IFNAME', and to 0 if you + don't. */ +#undef HAVE_DECL_IFLA_IFNAME + +/* Define to 1 if you have the declaration of `IFLA_IF_NETNSID', and to 0 if + you don't. */ +#undef HAVE_DECL_IFLA_IF_NETNSID + +/* Define to 1 if you have the declaration of `IFLA_LINK', and to 0 if you + don't. */ +#undef HAVE_DECL_IFLA_LINK + +/* Define to 1 if you have the declaration of `IFLA_LINKINFO', and to 0 if you + don't. */ +#undef HAVE_DECL_IFLA_LINKINFO + +/* Define to 1 if you have the declaration of `IFLA_LINKMODE', and to 0 if you + don't. */ +#undef HAVE_DECL_IFLA_LINKMODE + +/* Define to 1 if you have the declaration of `IFLA_LINK_NETNSID', and to 0 if + you don't. */ +#undef HAVE_DECL_IFLA_LINK_NETNSID + +/* Define to 1 if you have the declaration of `IFLA_MAP', and to 0 if you + don't. */ +#undef HAVE_DECL_IFLA_MAP + +/* Define to 1 if you have the declaration of `IFLA_MASTER', and to 0 if you + don't. */ +#undef HAVE_DECL_IFLA_MASTER + +/* Define to 1 if you have the declaration of `IFLA_MAX_MTU', and to 0 if you + don't. */ +#undef HAVE_DECL_IFLA_MAX_MTU + +/* Define to 1 if you have the declaration of `IFLA_MIN_MTU', and to 0 if you + don't. */ +#undef HAVE_DECL_IFLA_MIN_MTU + +/* Define to 1 if you have the declaration of `IFLA_MTU', and to 0 if you + don't. */ +#undef HAVE_DECL_IFLA_MTU + +/* Define to 1 if you have the declaration of `IFLA_NET_NS_FD', and to 0 if + you don't. */ +#undef HAVE_DECL_IFLA_NET_NS_FD + +/* Define to 1 if you have the declaration of `IFLA_NET_NS_PID', and to 0 if + you don't. */ +#undef HAVE_DECL_IFLA_NET_NS_PID + +/* Define to 1 if you have the declaration of `IFLA_NEW_IFINDEX', and to 0 if + you don't. */ +#undef HAVE_DECL_IFLA_NEW_IFINDEX + +/* Define to 1 if you have the declaration of `IFLA_NEW_NETNSID', and to 0 if + you don't. */ +#undef HAVE_DECL_IFLA_NEW_NETNSID + +/* Define to 1 if you have the declaration of `IFLA_NUM_RX_QUEUES', and to 0 + if you don't. */ +#undef HAVE_DECL_IFLA_NUM_RX_QUEUES + +/* Define to 1 if you have the declaration of `IFLA_NUM_TX_QUEUES', and to 0 + if you don't. */ +#undef HAVE_DECL_IFLA_NUM_TX_QUEUES + +/* Define to 1 if you have the declaration of `IFLA_NUM_VF', and to 0 if you + don't. */ +#undef HAVE_DECL_IFLA_NUM_VF + +/* Define to 1 if you have the declaration of `IFLA_OPERSTATE', and to 0 if + you don't. */ +#undef HAVE_DECL_IFLA_OPERSTATE + +/* Define to 1 if you have the declaration of `IFLA_PAD', and to 0 if you + don't. */ +#undef HAVE_DECL_IFLA_PAD + +/* Define to 1 if you have the declaration of `IFLA_PERM_ADDRESS', and to 0 if + you don't. */ +#undef HAVE_DECL_IFLA_PERM_ADDRESS + +/* Define to 1 if you have the declaration of `IFLA_PHYS_PORT_ID', and to 0 if + you don't. */ +#undef HAVE_DECL_IFLA_PHYS_PORT_ID + +/* Define to 1 if you have the declaration of `IFLA_PHYS_PORT_NAME', and to 0 + if you don't. */ +#undef HAVE_DECL_IFLA_PHYS_PORT_NAME + +/* Define to 1 if you have the declaration of `IFLA_PHYS_SWITCH_ID', and to 0 + if you don't. */ +#undef HAVE_DECL_IFLA_PHYS_SWITCH_ID + /* Define to 1 if you have the declaration of `IFLA_PORT_SELF', and to 0 if you don't. */ #undef HAVE_DECL_IFLA_PORT_SELF +/* Define to 1 if you have the declaration of `IFLA_PRIORITY', and to 0 if you + don't. */ +#undef HAVE_DECL_IFLA_PRIORITY + +/* Define to 1 if you have the declaration of `IFLA_PROMISCUITY', and to 0 if + you don't. */ +#undef HAVE_DECL_IFLA_PROMISCUITY + +/* Define to 1 if you have the declaration of `IFLA_PROP_LIST', and to 0 if + you don't. */ +#undef HAVE_DECL_IFLA_PROP_LIST + /* Define to 1 if you have the declaration of `IFLA_PROTINFO', and to 0 if you don't. */ #undef HAVE_DECL_IFLA_PROTINFO +/* Define to 1 if you have the declaration of `IFLA_PROTO_DOWN', and to 0 if + you don't. */ +#undef HAVE_DECL_IFLA_PROTO_DOWN + +/* Define to 1 if you have the declaration of `IFLA_PROTO_DOWN_REASON', and to + 0 if you don't. */ +#undef HAVE_DECL_IFLA_PROTO_DOWN_REASON + +/* Define to 1 if you have the declaration of `IFLA_QDISC', and to 0 if you + don't. */ +#undef HAVE_DECL_IFLA_QDISC + +/* Define to 1 if you have the declaration of `IFLA_STATS', and to 0 if you + don't. */ +#undef HAVE_DECL_IFLA_STATS + +/* Define to 1 if you have the declaration of `IFLA_STATS64', and to 0 if you + don't. */ +#undef HAVE_DECL_IFLA_STATS64 + +/* Define to 1 if you have the declaration of `IFLA_TXQLEN', and to 0 if you + don't. */ +#undef HAVE_DECL_IFLA_TXQLEN + +/* Define to 1 if you have the declaration of `IFLA_UNSPEC', and to 0 if you + don't. */ +#undef HAVE_DECL_IFLA_UNSPEC + +/* Define to 1 if you have the declaration of `IFLA_VFINFO_LIST', and to 0 if + you don't. */ +#undef HAVE_DECL_IFLA_VFINFO_LIST + +/* Define to 1 if you have the declaration of `IFLA_VF_PORTS', and to 0 if you + don't. */ +#undef HAVE_DECL_IFLA_VF_PORTS + +/* Define to 1 if you have the declaration of `IFLA_WEIGHT', and to 0 if you + don't. */ +#undef HAVE_DECL_IFLA_WEIGHT + +/* Define to 1 if you have the declaration of `IFLA_WIRELESS', and to 0 if you + don't. */ +#undef HAVE_DECL_IFLA_WIRELESS + /* Define to 1 if you have the declaration of `IFLA_XDP', and to 0 if you don't. */ #undef HAVE_DECL_IFLA_XDP +/* Define to 1 if you have the declaration of `IFLA_XDP_ATTACHED', and to 0 if + you don't. */ +#undef HAVE_DECL_IFLA_XDP_ATTACHED + +/* Define to 1 if you have the declaration of `IFLA_XDP_DRV_PROG_ID', and to 0 + if you don't. */ +#undef HAVE_DECL_IFLA_XDP_DRV_PROG_ID + +/* Define to 1 if you have the declaration of `IFLA_XDP_EXPECTED_FD', and to 0 + if you don't. */ +#undef HAVE_DECL_IFLA_XDP_EXPECTED_FD + +/* Define to 1 if you have the declaration of `IFLA_XDP_FD', and to 0 if you + don't. */ +#undef HAVE_DECL_IFLA_XDP_FD + +/* Define to 1 if you have the declaration of `IFLA_XDP_FLAGS', and to 0 if + you don't. */ +#undef HAVE_DECL_IFLA_XDP_FLAGS + +/* Define to 1 if you have the declaration of `IFLA_XDP_HW_PROG_ID', and to 0 + if you don't. */ +#undef HAVE_DECL_IFLA_XDP_HW_PROG_ID + +/* Define to 1 if you have the declaration of `IFLA_XDP_PROG_ID', and to 0 if + you don't. */ +#undef HAVE_DECL_IFLA_XDP_PROG_ID + +/* Define to 1 if you have the declaration of `IFLA_XDP_SKB_PROG_ID', and to 0 + if you don't. */ +#undef HAVE_DECL_IFLA_XDP_SKB_PROG_ID + +/* Define to 1 if you have the declaration of `IFLA_XDP_UNSPEC', and to 0 if + you don't. */ +#undef HAVE_DECL_IFLA_XDP_UNSPEC + +/* Define to 1 if you have the declaration of `KERN_ACCT', and to 0 if you + don't. */ +#undef HAVE_DECL_KERN_ACCT + /* Define to 1 if you have the declaration of `KERN_ACPI_VIDEO_FLAGS', and to 0 if you don't. */ #undef HAVE_DECL_KERN_ACPI_VIDEO_FLAGS @@ -120,10 +412,42 @@ if you don't. */ #undef HAVE_DECL_KERN_BOOTLOADER_TYPE +/* Define to 1 if you have the declaration of `KERN_CADPID', and to 0 if you + don't. */ +#undef HAVE_DECL_KERN_CADPID + /* Define to 1 if you have the declaration of `KERN_COMPAT_LOG', and to 0 if you don't. */ #undef HAVE_DECL_KERN_COMPAT_LOG +/* Define to 1 if you have the declaration of `KERN_CORE_PATTERN', and to 0 if + you don't. */ +#undef HAVE_DECL_KERN_CORE_PATTERN + +/* Define to 1 if you have the declaration of `KERN_CORE_USES_PID', and to 0 + if you don't. */ +#undef HAVE_DECL_KERN_CORE_USES_PID + +/* Define to 1 if you have the declaration of `KERN_CTLALTDEL', and to 0 if + you don't. */ +#undef HAVE_DECL_KERN_CTLALTDEL + +/* Define to 1 if you have the declaration of `KERN_DOMAINNAME', and to 0 if + you don't. */ +#undef HAVE_DECL_KERN_DOMAINNAME + +/* Define to 1 if you have the declaration of `KERN_HOTPLUG', and to 0 if you + don't. */ +#undef HAVE_DECL_KERN_HOTPLUG + +/* Define to 1 if you have the declaration of `KERN_HPPA_PWRSW', and to 0 if + you don't. */ +#undef HAVE_DECL_KERN_HPPA_PWRSW + +/* Define to 1 if you have the declaration of `KERN_HPPA_UNALIGNED', and to 0 + if you don't. */ +#undef HAVE_DECL_KERN_HPPA_UNALIGNED + /* Define to 1 if you have the declaration of `KERN_HZ_TIMER', and to 0 if you don't. */ #undef HAVE_DECL_KERN_HZ_TIMER @@ -132,10 +456,42 @@ if you don't. */ #undef HAVE_DECL_KERN_IA64_UNALIGNED +/* Define to 1 if you have the declaration of `KERN_IEEE_EMULATION_WARNINGS', + and to 0 if you don't. */ +#undef HAVE_DECL_KERN_IEEE_EMULATION_WARNINGS + /* Define to 1 if you have the declaration of `KERN_MAX_LOCK_DEPTH', and to 0 if you don't. */ #undef HAVE_DECL_KERN_MAX_LOCK_DEPTH +/* Define to 1 if you have the declaration of `KERN_MAX_THREADS', and to 0 if + you don't. */ +#undef HAVE_DECL_KERN_MAX_THREADS + +/* Define to 1 if you have the declaration of `KERN_MODPROBE', and to 0 if you + don't. */ +#undef HAVE_DECL_KERN_MODPROBE + +/* Define to 1 if you have the declaration of `KERN_MSGMAX', and to 0 if you + don't. */ +#undef HAVE_DECL_KERN_MSGMAX + +/* Define to 1 if you have the declaration of `KERN_MSGMNB', and to 0 if you + don't. */ +#undef HAVE_DECL_KERN_MSGMNB + +/* Define to 1 if you have the declaration of `KERN_MSGMNI', and to 0 if you + don't. */ +#undef HAVE_DECL_KERN_MSGMNI + +/* Define to 1 if you have the declaration of `KERN_MSGPOOL', and to 0 if you + don't. */ +#undef HAVE_DECL_KERN_MSGPOOL + +/* Define to 1 if you have the declaration of `KERN_NAMETRANS', and to 0 if + you don't. */ +#undef HAVE_DECL_KERN_NAMETRANS + /* Define to 1 if you have the declaration of `KERN_NGROUPS_MAX', and to 0 if you don't. */ #undef HAVE_DECL_KERN_NGROUPS_MAX @@ -144,10 +500,42 @@ you don't. */ #undef HAVE_DECL_KERN_NMI_WATCHDOG +/* Define to 1 if you have the declaration of `KERN_NODENAME', and to 0 if you + don't. */ +#undef HAVE_DECL_KERN_NODENAME + +/* Define to 1 if you have the declaration of `KERN_OSRELEASE', and to 0 if + you don't. */ +#undef HAVE_DECL_KERN_OSRELEASE + +/* Define to 1 if you have the declaration of `KERN_OSREV', and to 0 if you + don't. */ +#undef HAVE_DECL_KERN_OSREV + +/* Define to 1 if you have the declaration of `KERN_OSTYPE', and to 0 if you + don't. */ +#undef HAVE_DECL_KERN_OSTYPE + +/* Define to 1 if you have the declaration of `KERN_OVERFLOWGID', and to 0 if + you don't. */ +#undef HAVE_DECL_KERN_OVERFLOWGID + +/* Define to 1 if you have the declaration of `KERN_OVERFLOWUID', and to 0 if + you don't. */ +#undef HAVE_DECL_KERN_OVERFLOWUID + +/* Define to 1 if you have the declaration of `KERN_PANIC', and to 0 if you + don't. */ +#undef HAVE_DECL_KERN_PANIC + /* Define to 1 if you have the declaration of `KERN_PANIC_ON_NMI', and to 0 if you don't. */ #undef HAVE_DECL_KERN_PANIC_ON_NMI +/* Define to 1 if you have the declaration of `KERN_PANIC_ON_OOPS', and to 0 + if you don't. */ +#undef HAVE_DECL_KERN_PANIC_ON_OOPS + /* Define to 1 if you have the declaration of `KERN_PANIC_ON_WARN', and to 0 if you don't. */ #undef HAVE_DECL_KERN_PANIC_ON_WARN @@ -156,6 +544,30 @@ you don't. */ #undef HAVE_DECL_KERN_PANIC_PRINT +/* Define to 1 if you have the declaration of `KERN_PIDMAX', and to 0 if you + don't. */ +#undef HAVE_DECL_KERN_PIDMAX + +/* Define to 1 if you have the declaration of `KERN_PPC_HTABRECLAIM', and to 0 + if you don't. */ +#undef HAVE_DECL_KERN_PPC_HTABRECLAIM + +/* Define to 1 if you have the declaration of `KERN_PPC_L2CR', and to 0 if you + don't. */ +#undef HAVE_DECL_KERN_PPC_L2CR + +/* Define to 1 if you have the declaration of `KERN_PPC_POWERSAVE_NAP', and to + 0 if you don't. */ +#undef HAVE_DECL_KERN_PPC_POWERSAVE_NAP + +/* Define to 1 if you have the declaration of `KERN_PPC_ZEROPAGED', and to 0 + if you don't. */ +#undef HAVE_DECL_KERN_PPC_ZEROPAGED + +/* Define to 1 if you have the declaration of `KERN_PRINTK', and to 0 if you + don't. */ +#undef HAVE_DECL_KERN_PRINTK + /* Define to 1 if you have the declaration of `KERN_PRINTK_RATELIMIT', and to 0 if you don't. */ #undef HAVE_DECL_KERN_PRINTK_RATELIMIT @@ -164,30 +576,102 @@ and to 0 if you don't. */ #undef HAVE_DECL_KERN_PRINTK_RATELIMIT_BURST +/* Define to 1 if you have the declaration of `KERN_PROF', and to 0 if you + don't. */ +#undef HAVE_DECL_KERN_PROF + /* Define to 1 if you have the declaration of `KERN_PTY', and to 0 if you don't. */ #undef HAVE_DECL_KERN_PTY +/* Define to 1 if you have the declaration of `KERN_RANDOM', and to 0 if you + don't. */ +#undef HAVE_DECL_KERN_RANDOM + /* Define to 1 if you have the declaration of `KERN_RANDOMIZE', and to 0 if you don't. */ #undef HAVE_DECL_KERN_RANDOMIZE +/* Define to 1 if you have the declaration of `KERN_REALROOTDEV', and to 0 if + you don't. */ +#undef HAVE_DECL_KERN_REALROOTDEV + +/* Define to 1 if you have the declaration of `KERN_RTSIGMAX', and to 0 if you + don't. */ +#undef HAVE_DECL_KERN_RTSIGMAX + +/* Define to 1 if you have the declaration of `KERN_RTSIGNR', and to 0 if you + don't. */ +#undef HAVE_DECL_KERN_RTSIGNR + +/* Define to 1 if you have the declaration of `KERN_S390_USER_DEBUG_LOGGING', + and to 0 if you don't. */ +#undef HAVE_DECL_KERN_S390_USER_DEBUG_LOGGING + +/* Define to 1 if you have the declaration of `KERN_SECUREMASK', and to 0 if + you don't. */ +#undef HAVE_DECL_KERN_SECUREMASK + +/* Define to 1 if you have the declaration of `KERN_SEM', and to 0 if you + don't. */ +#undef HAVE_DECL_KERN_SEM + /* Define to 1 if you have the declaration of `KERN_SETUID_DUMPABLE', and to 0 if you don't. */ #undef HAVE_DECL_KERN_SETUID_DUMPABLE +/* Define to 1 if you have the declaration of `KERN_SG_BIG_BUFF', and to 0 if + you don't. */ +#undef HAVE_DECL_KERN_SG_BIG_BUFF + +/* Define to 1 if you have the declaration of `KERN_SHMALL', and to 0 if you + don't. */ +#undef HAVE_DECL_KERN_SHMALL + +/* Define to 1 if you have the declaration of `KERN_SHMMAX', and to 0 if you + don't. */ +#undef HAVE_DECL_KERN_SHMMAX + +/* Define to 1 if you have the declaration of `KERN_SHMMNI', and to 0 if you + don't. */ +#undef HAVE_DECL_KERN_SHMMNI + +/* Define to 1 if you have the declaration of `KERN_SHMPATH', and to 0 if you + don't. */ +#undef HAVE_DECL_KERN_SHMPATH + +/* Define to 1 if you have the declaration of `KERN_SPARC_REBOOT', and to 0 if + you don't. */ +#undef HAVE_DECL_KERN_SPARC_REBOOT + /* Define to 1 if you have the declaration of `KERN_SPARC_SCONS_PWROFF', and to 0 if you don't. */ #undef HAVE_DECL_KERN_SPARC_SCONS_PWROFF +/* Define to 1 if you have the declaration of `KERN_SPARC_STOP_A', and to 0 if + you don't. */ +#undef HAVE_DECL_KERN_SPARC_STOP_A + /* Define to 1 if you have the declaration of `KERN_SPIN_RETRY', and to 0 if you don't. */ #undef HAVE_DECL_KERN_SPIN_RETRY +/* Define to 1 if you have the declaration of `KERN_SYSRQ', and to 0 if you + don't. */ +#undef HAVE_DECL_KERN_SYSRQ + +/* Define to 1 if you have the declaration of `KERN_TAINTED', and to 0 if you + don't. */ +#undef HAVE_DECL_KERN_TAINTED + /* Define to 1 if you have the declaration of `KERN_UNKNOWN_NMI_PANIC', and to 0 if you don't. */ #undef HAVE_DECL_KERN_UNKNOWN_NMI_PANIC +/* Define to 1 if you have the declaration of `KERN_VERSION', and to 0 if you + don't. */ +#undef HAVE_DECL_KERN_VERSION + /* Define to 1 if you have the declaration of `LO_FLAGS_AUTOCLEAR', and to 0 if you don't. */ #undef HAVE_DECL_LO_FLAGS_AUTOCLEAR @@ -208,6 +692,22 @@ you don't. */ #undef HAVE_DECL_LO_FLAGS_USE_AOPS +/* Define to 1 if you have the declaration of `NET_802', and to 0 if you + don't. */ +#undef HAVE_DECL_NET_802 + +/* Define to 1 if you have the declaration of `NET_ATALK', and to 0 if you + don't. */ +#undef HAVE_DECL_NET_ATALK + +/* Define to 1 if you have the declaration of `NET_AX25', and to 0 if you + don't. */ +#undef HAVE_DECL_NET_AX25 + +/* Define to 1 if you have the declaration of `NET_BRIDGE', and to 0 if you + don't. */ +#undef HAVE_DECL_NET_BRIDGE + /* Define to 1 if you have the declaration of `NET_CIPSOV4_CACHE_BUCKET_SIZE', and to 0 if you don't. */ #undef HAVE_DECL_NET_CIPSOV4_CACHE_BUCKET_SIZE @@ -224,6 +724,10 @@ and to 0 if you don't. */ #undef HAVE_DECL_NET_CIPSOV4_RBM_STRICTVALID +/* Define to 1 if you have the declaration of `NET_CORE', and to 0 if you + don't. */ +#undef HAVE_DECL_NET_CORE + /* Define to 1 if you have the declaration of `NET_CORE_AEVENT_ETIME', and to 0 if you don't. */ #undef HAVE_DECL_NET_CORE_AEVENT_ETIME @@ -240,14 +744,122 @@ 0 if you don't. */ #undef HAVE_DECL_NET_CORE_DESTROY_DELAY -/* Define to 1 if you have the declaration of `NET_CORE_WARNINGS', and to 0 if - you don't. */ -#undef HAVE_DECL_NET_CORE_WARNINGS +/* Define to 1 if you have the declaration of `NET_CORE_DEV_WEIGHT', and to 0 + if you don't. */ +#undef HAVE_DECL_NET_CORE_DEV_WEIGHT + +/* Define to 1 if you have the declaration of `NET_CORE_DIVERT_VERSION', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_CORE_DIVERT_VERSION + +/* Define to 1 if you have the declaration of `NET_CORE_FASTROUTE', and to 0 + if you don't. */ +#undef HAVE_DECL_NET_CORE_FASTROUTE + +/* Define to 1 if you have the declaration of `NET_CORE_HOT_LIST_LENGTH', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_CORE_HOT_LIST_LENGTH + +/* Define to 1 if you have the declaration of `NET_CORE_LO_CONG', and to 0 if + you don't. */ +#undef HAVE_DECL_NET_CORE_LO_CONG + +/* Define to 1 if you have the declaration of `NET_CORE_MAX_BACKLOG', and to 0 + if you don't. */ +#undef HAVE_DECL_NET_CORE_MAX_BACKLOG + +/* Define to 1 if you have the declaration of `NET_CORE_MOD_CONG', and to 0 if + you don't. */ +#undef HAVE_DECL_NET_CORE_MOD_CONG + +/* Define to 1 if you have the declaration of `NET_CORE_MSG_BURST', and to 0 + if you don't. */ +#undef HAVE_DECL_NET_CORE_MSG_BURST + +/* Define to 1 if you have the declaration of `NET_CORE_MSG_COST', and to 0 if + you don't. */ +#undef HAVE_DECL_NET_CORE_MSG_COST + +/* Define to 1 if you have the declaration of `NET_CORE_NO_CONG', and to 0 if + you don't. */ +#undef HAVE_DECL_NET_CORE_NO_CONG + +/* Define to 1 if you have the declaration of `NET_CORE_NO_CONG_THRESH', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_CORE_NO_CONG_THRESH + +/* Define to 1 if you have the declaration of `NET_CORE_OPTMEM_MAX', and to 0 + if you don't. */ +#undef HAVE_DECL_NET_CORE_OPTMEM_MAX + +/* Define to 1 if you have the declaration of `NET_CORE_RMEM_DEFAULT', and to + 0 if you don't. */ +#undef HAVE_DECL_NET_CORE_RMEM_DEFAULT + +/* Define to 1 if you have the declaration of `NET_CORE_RMEM_MAX', and to 0 if + you don't. */ +#undef HAVE_DECL_NET_CORE_RMEM_MAX + +/* Define to 1 if you have the declaration of `NET_CORE_SOMAXCONN', and to 0 + if you don't. */ +#undef HAVE_DECL_NET_CORE_SOMAXCONN + +/* Define to 1 if you have the declaration of `NET_CORE_WARNINGS', and to 0 if + you don't. */ +#undef HAVE_DECL_NET_CORE_WARNINGS + +/* Define to 1 if you have the declaration of `NET_CORE_WMEM_DEFAULT', and to + 0 if you don't. */ +#undef HAVE_DECL_NET_CORE_WMEM_DEFAULT + +/* Define to 1 if you have the declaration of `NET_CORE_WMEM_MAX', and to 0 if + you don't. */ +#undef HAVE_DECL_NET_CORE_WMEM_MAX /* Define to 1 if you have the declaration of `NET_DCCP', and to 0 if you don't. */ #undef HAVE_DECL_NET_DCCP +/* Define to 1 if you have the declaration of `NET_DECNET', and to 0 if you + don't. */ +#undef HAVE_DECL_NET_DECNET + +/* Define to 1 if you have the declaration of `NET_ECONET', and to 0 if you + don't. */ +#undef HAVE_DECL_NET_ECONET + +/* Define to 1 if you have the declaration of `NET_ETHER', and to 0 if you + don't. */ +#undef HAVE_DECL_NET_ETHER + +/* Define to 1 if you have the declaration of `NET_IPV4', and to 0 if you + don't. */ +#undef HAVE_DECL_NET_IPV4 + +/* Define to 1 if you have the declaration of `NET_IPV4_ALWAYS_DEFRAG', and to + 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_ALWAYS_DEFRAG + +/* Define to 1 if you have the declaration of `NET_IPV4_AUTOCONFIG', and to 0 + if you don't. */ +#undef HAVE_DECL_NET_IPV4_AUTOCONFIG + +/* Define to 1 if you have the declaration of `NET_IPV4_CONF', and to 0 if you + don't. */ +#undef HAVE_DECL_NET_IPV4_CONF + +/* Define to 1 if you have the declaration of + `NET_IPV4_CONF_ACCEPT_REDIRECTS', and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_CONF_ACCEPT_REDIRECTS + +/* Define to 1 if you have the declaration of + `NET_IPV4_CONF_ACCEPT_SOURCE_ROUTE', and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_CONF_ACCEPT_SOURCE_ROUTE + +/* Define to 1 if you have the declaration of `NET_IPV4_CONF_ARPFILTER', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_CONF_ARPFILTER + /* Define to 1 if you have the declaration of `NET_IPV4_CONF_ARP_ACCEPT', and to 0 if you don't. */ #undef HAVE_DECL_NET_IPV4_CONF_ARP_ACCEPT @@ -264,42 +876,418 @@ to 0 if you don't. */ #undef HAVE_DECL_NET_IPV4_CONF_ARP_NOTIFY +/* Define to 1 if you have the declaration of `NET_IPV4_CONF_BOOTP_RELAY', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_CONF_BOOTP_RELAY + /* Define to 1 if you have the declaration of `NET_IPV4_CONF_FORCE_IGMP_VERSION', and to 0 if you don't. */ #undef HAVE_DECL_NET_IPV4_CONF_FORCE_IGMP_VERSION +/* Define to 1 if you have the declaration of `NET_IPV4_CONF_FORWARDING', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_CONF_FORWARDING + +/* Define to 1 if you have the declaration of `NET_IPV4_CONF_LOG_MARTIANS', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_CONF_LOG_MARTIANS + +/* Define to 1 if you have the declaration of `NET_IPV4_CONF_MC_FORWARDING', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_CONF_MC_FORWARDING + +/* Define to 1 if you have the declaration of `NET_IPV4_CONF_MEDIUM_ID', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_CONF_MEDIUM_ID + +/* Define to 1 if you have the declaration of `NET_IPV4_CONF_NOPOLICY', and to + 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_CONF_NOPOLICY + +/* Define to 1 if you have the declaration of `NET_IPV4_CONF_NOXFRM', and to 0 + if you don't. */ +#undef HAVE_DECL_NET_IPV4_CONF_NOXFRM + /* Define to 1 if you have the declaration of `NET_IPV4_CONF_PROMOTE_SECONDARIES', and to 0 if you don't. */ #undef HAVE_DECL_NET_IPV4_CONF_PROMOTE_SECONDARIES +/* Define to 1 if you have the declaration of `NET_IPV4_CONF_PROXY_ARP', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_CONF_PROXY_ARP + +/* Define to 1 if you have the declaration of `NET_IPV4_CONF_RP_FILTER', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_CONF_RP_FILTER + +/* Define to 1 if you have the declaration of + `NET_IPV4_CONF_SECURE_REDIRECTS', and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_CONF_SECURE_REDIRECTS + +/* Define to 1 if you have the declaration of `NET_IPV4_CONF_SEND_REDIRECTS', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_CONF_SEND_REDIRECTS + +/* Define to 1 if you have the declaration of `NET_IPV4_CONF_SHARED_MEDIA', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_CONF_SHARED_MEDIA + +/* Define to 1 if you have the declaration of `NET_IPV4_CONF_TAG', and to 0 if + you don't. */ +#undef HAVE_DECL_NET_IPV4_CONF_TAG + +/* Define to 1 if you have the declaration of `NET_IPV4_DEFAULT_TTL', and to 0 + if you don't. */ +#undef HAVE_DECL_NET_IPV4_DEFAULT_TTL + +/* Define to 1 if you have the declaration of `NET_IPV4_DYNADDR', and to 0 if + you don't. */ +#undef HAVE_DECL_NET_IPV4_DYNADDR + +/* Define to 1 if you have the declaration of `NET_IPV4_FIB_HASH', and to 0 if + you don't. */ +#undef HAVE_DECL_NET_IPV4_FIB_HASH + +/* Define to 1 if you have the declaration of `NET_IPV4_FORWARD', and to 0 if + you don't. */ +#undef HAVE_DECL_NET_IPV4_FORWARD + +/* Define to 1 if you have the declaration of + `NET_IPV4_ICMP_DESTUNREACH_RATE', and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_ICMP_DESTUNREACH_RATE + +/* Define to 1 if you have the declaration of `NET_IPV4_ICMP_ECHOREPLY_RATE', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_ICMP_ECHOREPLY_RATE + +/* Define to 1 if you have the declaration of `NET_IPV4_ICMP_ECHO_IGNORE_ALL', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_ICMP_ECHO_IGNORE_ALL + +/* Define to 1 if you have the declaration of + `NET_IPV4_ICMP_ECHO_IGNORE_BROADCASTS', and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_ICMP_ECHO_IGNORE_BROADCASTS + /* Define to 1 if you have the declaration of `NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR', and to 0 if you don't. */ #undef HAVE_DECL_NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR +/* Define to 1 if you have the declaration of + `NET_IPV4_ICMP_IGNORE_BOGUS_ERROR_RESPONSES', and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_ICMP_IGNORE_BOGUS_ERROR_RESPONSES + +/* Define to 1 if you have the declaration of `NET_IPV4_ICMP_PARAMPROB_RATE', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_ICMP_PARAMPROB_RATE + +/* Define to 1 if you have the declaration of `NET_IPV4_ICMP_RATELIMIT', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_ICMP_RATELIMIT + +/* Define to 1 if you have the declaration of `NET_IPV4_ICMP_RATEMASK', and to + 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_ICMP_RATEMASK + +/* Define to 1 if you have the declaration of + `NET_IPV4_ICMP_SOURCEQUENCH_RATE', and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_ICMP_SOURCEQUENCH_RATE + +/* Define to 1 if you have the declaration of `NET_IPV4_ICMP_TIMEEXCEED_RATE', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_ICMP_TIMEEXCEED_RATE + +/* Define to 1 if you have the declaration of `NET_IPV4_IGMP_MAX_MEMBERSHIPS', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_IGMP_MAX_MEMBERSHIPS + /* Define to 1 if you have the declaration of `NET_IPV4_IGMP_MAX_MSF', and to 0 if you don't. */ #undef HAVE_DECL_NET_IPV4_IGMP_MAX_MSF +/* Define to 1 if you have the declaration of `NET_IPV4_INET_PEER_GC_MAXTIME', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_INET_PEER_GC_MAXTIME + +/* Define to 1 if you have the declaration of `NET_IPV4_INET_PEER_GC_MINTIME', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_INET_PEER_GC_MINTIME + +/* Define to 1 if you have the declaration of `NET_IPV4_INET_PEER_MAXTTL', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_INET_PEER_MAXTTL + +/* Define to 1 if you have the declaration of `NET_IPV4_INET_PEER_MINTTL', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_INET_PEER_MINTTL + +/* Define to 1 if you have the declaration of `NET_IPV4_INET_PEER_THRESHOLD', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_INET_PEER_THRESHOLD + +/* Define to 1 if you have the declaration of `NET_IPV4_IPFRAG_HIGH_THRESH', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_IPFRAG_HIGH_THRESH + +/* Define to 1 if you have the declaration of `NET_IPV4_IPFRAG_LOW_THRESH', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_IPFRAG_LOW_THRESH + /* Define to 1 if you have the declaration of `NET_IPV4_IPFRAG_MAX_DIST', and to 0 if you don't. */ #undef HAVE_DECL_NET_IPV4_IPFRAG_MAX_DIST +/* Define to 1 if you have the declaration of + `NET_IPV4_IPFRAG_SECRET_INTERVAL', and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_IPFRAG_SECRET_INTERVAL + +/* Define to 1 if you have the declaration of `NET_IPV4_IPFRAG_TIME', and to 0 + if you don't. */ +#undef HAVE_DECL_NET_IPV4_IPFRAG_TIME + +/* Define to 1 if you have the declaration of `NET_IPV4_IP_MASQ_DEBUG', and to + 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_IP_MASQ_DEBUG + +/* Define to 1 if you have the declaration of `NET_IPV4_LOCAL_PORT_RANGE', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_LOCAL_PORT_RANGE + +/* Define to 1 if you have the declaration of `NET_IPV4_NEIGH', and to 0 if + you don't. */ +#undef HAVE_DECL_NET_IPV4_NEIGH + +/* Define to 1 if you have the declaration of `NET_IPV4_NETFILTER', and to 0 + if you don't. */ +#undef HAVE_DECL_NET_IPV4_NETFILTER + +/* Define to 1 if you have the declaration of `NET_IPV4_NONLOCAL_BIND', and to + 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_NONLOCAL_BIND + +/* Define to 1 if you have the declaration of `NET_IPV4_NO_PMTU_DISC', and to + 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_NO_PMTU_DISC + +/* Define to 1 if you have the declaration of `NET_IPV4_ROUTE', and to 0 if + you don't. */ +#undef HAVE_DECL_NET_IPV4_ROUTE + +/* Define to 1 if you have the declaration of `NET_IPV4_ROUTE_ERROR_BURST', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_ROUTE_ERROR_BURST + +/* Define to 1 if you have the declaration of `NET_IPV4_ROUTE_ERROR_COST', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_ROUTE_ERROR_COST + +/* Define to 1 if you have the declaration of `NET_IPV4_ROUTE_FLUSH', and to 0 + if you don't. */ +#undef HAVE_DECL_NET_IPV4_ROUTE_FLUSH + +/* Define to 1 if you have the declaration of `NET_IPV4_ROUTE_GC_ELASTICITY', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_ROUTE_GC_ELASTICITY + +/* Define to 1 if you have the declaration of `NET_IPV4_ROUTE_GC_INTERVAL', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_ROUTE_GC_INTERVAL + +/* Define to 1 if you have the declaration of + `NET_IPV4_ROUTE_GC_MIN_INTERVAL', and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_ROUTE_GC_MIN_INTERVAL + /* Define to 1 if you have the declaration of `NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS', and to 0 if you don't. */ #undef HAVE_DECL_NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS +/* Define to 1 if you have the declaration of `NET_IPV4_ROUTE_GC_THRESH', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_ROUTE_GC_THRESH + +/* Define to 1 if you have the declaration of `NET_IPV4_ROUTE_GC_TIMEOUT', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_ROUTE_GC_TIMEOUT + +/* Define to 1 if you have the declaration of `NET_IPV4_ROUTE_MAX_DELAY', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_ROUTE_MAX_DELAY + +/* Define to 1 if you have the declaration of `NET_IPV4_ROUTE_MAX_SIZE', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_ROUTE_MAX_SIZE + +/* Define to 1 if you have the declaration of `NET_IPV4_ROUTE_MIN_ADVMSS', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_ROUTE_MIN_ADVMSS + +/* Define to 1 if you have the declaration of `NET_IPV4_ROUTE_MIN_DELAY', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_ROUTE_MIN_DELAY + +/* Define to 1 if you have the declaration of `NET_IPV4_ROUTE_MIN_PMTU', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_ROUTE_MIN_PMTU + +/* Define to 1 if you have the declaration of `NET_IPV4_ROUTE_MTU_EXPIRES', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_ROUTE_MTU_EXPIRES + +/* Define to 1 if you have the declaration of `NET_IPV4_ROUTE_REDIRECT_LOAD', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_ROUTE_REDIRECT_LOAD + +/* Define to 1 if you have the declaration of + `NET_IPV4_ROUTE_REDIRECT_NUMBER', and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_ROUTE_REDIRECT_NUMBER + +/* Define to 1 if you have the declaration of + `NET_IPV4_ROUTE_REDIRECT_SILENCE', and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_ROUTE_REDIRECT_SILENCE + +/* Define to 1 if you have the declaration of + `NET_IPV4_ROUTE_SECRET_INTERVAL', and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_ROUTE_SECRET_INTERVAL + +/* Define to 1 if you have the declaration of `NET_IPV4_TCP_FIN_TIMEOUT', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_TCP_FIN_TIMEOUT + +/* Define to 1 if you have the declaration of `NET_IPV4_TCP_KEEPALIVE_INTVL', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_TCP_KEEPALIVE_INTVL + +/* Define to 1 if you have the declaration of `NET_IPV4_TCP_KEEPALIVE_PROBES', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_TCP_KEEPALIVE_PROBES + +/* Define to 1 if you have the declaration of `NET_IPV4_TCP_KEEPALIVE_TIME', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_TCP_KEEPALIVE_TIME + +/* Define to 1 if you have the declaration of `NET_IPV4_TCP_MAX_KA_PROBES', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_TCP_MAX_KA_PROBES + +/* Define to 1 if you have the declaration of `NET_IPV4_TCP_RETRANS_COLLAPSE', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_TCP_RETRANS_COLLAPSE + +/* Define to 1 if you have the declaration of `NET_IPV4_TCP_RETRIES1', and to + 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_TCP_RETRIES1 + +/* Define to 1 if you have the declaration of `NET_IPV4_TCP_RETRIES2', and to + 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_TCP_RETRIES2 + +/* Define to 1 if you have the declaration of `NET_IPV4_TCP_SACK', and to 0 if + you don't. */ +#undef HAVE_DECL_NET_IPV4_TCP_SACK + +/* Define to 1 if you have the declaration of `NET_IPV4_TCP_SYN_RETRIES', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_TCP_SYN_RETRIES + +/* Define to 1 if you have the declaration of `NET_IPV4_TCP_TIMESTAMPS', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_TCP_TIMESTAMPS + +/* Define to 1 if you have the declaration of `NET_IPV4_TCP_WINDOW_SCALING', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV4_TCP_WINDOW_SCALING + /* Define to 1 if you have the declaration of `NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS', and to 0 if you don't. */ #undef HAVE_DECL_NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS +/* Define to 1 if you have the declaration of `NET_IPV6', and to 0 if you + don't. */ +#undef HAVE_DECL_NET_IPV6 + +/* Define to 1 if you have the declaration of `NET_IPV6_BINDV6ONLY', and to 0 + if you don't. */ +#undef HAVE_DECL_NET_IPV6_BINDV6ONLY + +/* Define to 1 if you have the declaration of `NET_IPV6_CONF', and to 0 if you + don't. */ +#undef HAVE_DECL_NET_IPV6_CONF + +/* Define to 1 if you have the declaration of `NET_IPV6_ICMP', and to 0 if you + don't. */ +#undef HAVE_DECL_NET_IPV6_ICMP + +/* Define to 1 if you have the declaration of `NET_IPV6_IP6FRAG_HIGH_THRESH', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV6_IP6FRAG_HIGH_THRESH + +/* Define to 1 if you have the declaration of `NET_IPV6_IP6FRAG_LOW_THRESH', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV6_IP6FRAG_LOW_THRESH + +/* Define to 1 if you have the declaration of + `NET_IPV6_IP6FRAG_SECRET_INTERVAL', and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV6_IP6FRAG_SECRET_INTERVAL + +/* Define to 1 if you have the declaration of `NET_IPV6_IP6FRAG_TIME', and to + 0 if you don't. */ +#undef HAVE_DECL_NET_IPV6_IP6FRAG_TIME + /* Define to 1 if you have the declaration of `NET_IPV6_MLD_MAX_MSF', and to 0 if you don't. */ #undef HAVE_DECL_NET_IPV6_MLD_MAX_MSF +/* Define to 1 if you have the declaration of `NET_IPV6_NEIGH', and to 0 if + you don't. */ +#undef HAVE_DECL_NET_IPV6_NEIGH + +/* Define to 1 if you have the declaration of `NET_IPV6_ROUTE', and to 0 if + you don't. */ +#undef HAVE_DECL_NET_IPV6_ROUTE + +/* Define to 1 if you have the declaration of `NET_IPV6_ROUTE_FLUSH', and to 0 + if you don't. */ +#undef HAVE_DECL_NET_IPV6_ROUTE_FLUSH + +/* Define to 1 if you have the declaration of `NET_IPV6_ROUTE_GC_ELASTICITY', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV6_ROUTE_GC_ELASTICITY + +/* Define to 1 if you have the declaration of `NET_IPV6_ROUTE_GC_INTERVAL', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV6_ROUTE_GC_INTERVAL + +/* Define to 1 if you have the declaration of + `NET_IPV6_ROUTE_GC_MIN_INTERVAL', and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV6_ROUTE_GC_MIN_INTERVAL + /* Define to 1 if you have the declaration of `NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS', and to 0 if you don't. */ #undef HAVE_DECL_NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS +/* Define to 1 if you have the declaration of `NET_IPV6_ROUTE_GC_THRESH', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV6_ROUTE_GC_THRESH + +/* Define to 1 if you have the declaration of `NET_IPV6_ROUTE_GC_TIMEOUT', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV6_ROUTE_GC_TIMEOUT + +/* Define to 1 if you have the declaration of `NET_IPV6_ROUTE_MAX_SIZE', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV6_ROUTE_MAX_SIZE + +/* Define to 1 if you have the declaration of `NET_IPV6_ROUTE_MIN_ADVMSS', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV6_ROUTE_MIN_ADVMSS + +/* Define to 1 if you have the declaration of `NET_IPV6_ROUTE_MTU_EXPIRES', + and to 0 if you don't. */ +#undef HAVE_DECL_NET_IPV6_ROUTE_MTU_EXPIRES + +/* Define to 1 if you have the declaration of `NET_IPX', and to 0 if you + don't. */ +#undef HAVE_DECL_NET_IPX + /* Define to 1 if you have the declaration of `NET_IRDA', and to 0 if you don't. */ #undef HAVE_DECL_NET_IRDA @@ -312,14 +1300,38 @@ don't. */ #undef HAVE_DECL_NET_NETFILTER +/* Define to 1 if you have the declaration of `NET_NETROM', and to 0 if you + don't. */ +#undef HAVE_DECL_NET_NETROM + +/* Define to 1 if you have the declaration of `NET_ROSE', and to 0 if you + don't. */ +#undef HAVE_DECL_NET_ROSE + +/* Define to 1 if you have the declaration of `NET_SCTP', and to 0 if you + don't. */ +#undef HAVE_DECL_NET_SCTP + /* Define to 1 if you have the declaration of `NET_TCP_ABC', and to 0 if you don't. */ #undef HAVE_DECL_NET_TCP_ABC +/* Define to 1 if you have the declaration of `NET_TCP_ABORT_ON_OVERFLOW', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_TCP_ABORT_ON_OVERFLOW + +/* Define to 1 if you have the declaration of `NET_TCP_ADV_WIN_SCALE', and to + 0 if you don't. */ +#undef HAVE_DECL_NET_TCP_ADV_WIN_SCALE + /* Define to 1 if you have the declaration of `NET_TCP_ALLOWED_CONG_CONTROL', and to 0 if you don't. */ #undef HAVE_DECL_NET_TCP_ALLOWED_CONG_CONTROL +/* Define to 1 if you have the declaration of `NET_TCP_APP_WIN', and to 0 if + you don't. */ +#undef HAVE_DECL_NET_TCP_APP_WIN + /* Define to 1 if you have the declaration of `NET_TCP_AVAIL_CONG_CONTROL', and to 0 if you don't. */ #undef HAVE_DECL_NET_TCP_AVAIL_CONG_CONTROL @@ -344,14 +1356,50 @@ 0 if you don't. */ #undef HAVE_DECL_NET_TCP_DMA_COPYBREAK +/* Define to 1 if you have the declaration of `NET_TCP_DSACK', and to 0 if you + don't. */ +#undef HAVE_DECL_NET_TCP_DSACK + +/* Define to 1 if you have the declaration of `NET_TCP_ECN', and to 0 if you + don't. */ +#undef HAVE_DECL_NET_TCP_ECN + +/* Define to 1 if you have the declaration of `NET_TCP_FACK', and to 0 if you + don't. */ +#undef HAVE_DECL_NET_TCP_FACK + +/* Define to 1 if you have the declaration of `NET_TCP_FRTO', and to 0 if you + don't. */ +#undef HAVE_DECL_NET_TCP_FRTO + /* Define to 1 if you have the declaration of `NET_TCP_FRTO_RESPONSE', and to 0 if you don't. */ #undef HAVE_DECL_NET_TCP_FRTO_RESPONSE +/* Define to 1 if you have the declaration of `NET_TCP_LOW_LATENCY', and to 0 + if you don't. */ +#undef HAVE_DECL_NET_TCP_LOW_LATENCY + +/* Define to 1 if you have the declaration of `NET_TCP_MAX_ORPHANS', and to 0 + if you don't. */ +#undef HAVE_DECL_NET_TCP_MAX_ORPHANS + /* Define to 1 if you have the declaration of `NET_TCP_MAX_SSTHRESH', and to 0 if you don't. */ #undef HAVE_DECL_NET_TCP_MAX_SSTHRESH +/* Define to 1 if you have the declaration of `NET_TCP_MAX_SYN_BACKLOG', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_TCP_MAX_SYN_BACKLOG + +/* Define to 1 if you have the declaration of `NET_TCP_MAX_TW_BUCKETS', and to + 0 if you don't. */ +#undef HAVE_DECL_NET_TCP_MAX_TW_BUCKETS + +/* Define to 1 if you have the declaration of `NET_TCP_MEM', and to 0 if you + don't. */ +#undef HAVE_DECL_NET_TCP_MEM + /* Define to 1 if you have the declaration of `NET_TCP_MODERATE_RCVBUF', and to 0 if you don't. */ #undef HAVE_DECL_NET_TCP_MODERATE_RCVBUF @@ -364,14 +1412,82 @@ to 0 if you don't. */ #undef HAVE_DECL_NET_TCP_NO_METRICS_SAVE +/* Define to 1 if you have the declaration of `NET_TCP_ORPHAN_RETRIES', and to + 0 if you don't. */ +#undef HAVE_DECL_NET_TCP_ORPHAN_RETRIES + +/* Define to 1 if you have the declaration of `NET_TCP_REORDERING', and to 0 + if you don't. */ +#undef HAVE_DECL_NET_TCP_REORDERING + +/* Define to 1 if you have the declaration of `NET_TCP_RFC1337', and to 0 if + you don't. */ +#undef HAVE_DECL_NET_TCP_RFC1337 + +/* Define to 1 if you have the declaration of `NET_TCP_RMEM', and to 0 if you + don't. */ +#undef HAVE_DECL_NET_TCP_RMEM + /* Define to 1 if you have the declaration of `NET_TCP_SLOW_START_AFTER_IDLE', and to 0 if you don't. */ #undef HAVE_DECL_NET_TCP_SLOW_START_AFTER_IDLE +/* Define to 1 if you have the declaration of `NET_TCP_STDURG', and to 0 if + you don't. */ +#undef HAVE_DECL_NET_TCP_STDURG + +/* Define to 1 if you have the declaration of `NET_TCP_SYNACK_RETRIES', and to + 0 if you don't. */ +#undef HAVE_DECL_NET_TCP_SYNACK_RETRIES + +/* Define to 1 if you have the declaration of `NET_TCP_SYNCOOKIES', and to 0 + if you don't. */ +#undef HAVE_DECL_NET_TCP_SYNCOOKIES + +/* Define to 1 if you have the declaration of `NET_TCP_SYN_TAILDROP', and to 0 + if you don't. */ +#undef HAVE_DECL_NET_TCP_SYN_TAILDROP + /* Define to 1 if you have the declaration of `NET_TCP_TSO_WIN_DIVISOR', and to 0 if you don't. */ #undef HAVE_DECL_NET_TCP_TSO_WIN_DIVISOR +/* Define to 1 if you have the declaration of `NET_TCP_TW_RECYCLE', and to 0 + if you don't. */ +#undef HAVE_DECL_NET_TCP_TW_RECYCLE + +/* Define to 1 if you have the declaration of `NET_TCP_TW_REUSE', and to 0 if + you don't. */ +#undef HAVE_DECL_NET_TCP_TW_REUSE + +/* Define to 1 if you have the declaration of `NET_TCP_WMEM', and to 0 if you + don't. */ +#undef HAVE_DECL_NET_TCP_WMEM + +/* Define to 1 if you have the declaration of `NET_TR', and to 0 if you don't. + */ +#undef HAVE_DECL_NET_TR + +/* Define to 1 if you have the declaration of `NET_UNIX', and to 0 if you + don't. */ +#undef HAVE_DECL_NET_UNIX + +/* Define to 1 if you have the declaration of `NET_UNIX_DELETE_DELAY', and to + 0 if you don't. */ +#undef HAVE_DECL_NET_UNIX_DELETE_DELAY + +/* Define to 1 if you have the declaration of `NET_UNIX_DESTROY_DELAY', and to + 0 if you don't. */ +#undef HAVE_DECL_NET_UNIX_DESTROY_DELAY + +/* Define to 1 if you have the declaration of `NET_UNIX_MAX_DGRAM_QLEN', and + to 0 if you don't. */ +#undef HAVE_DECL_NET_UNIX_MAX_DGRAM_QLEN + +/* Define to 1 if you have the declaration of `NET_X25', and to 0 if you + don't. */ +#undef HAVE_DECL_NET_X25 + /* Define to 1 if you have the declaration of `PTRACE_PEEKUSER', and to 0 if you don't. */ #undef HAVE_DECL_PTRACE_PEEKUSER @@ -384,18 +1500,6 @@ */ #undef HAVE_DECL_P_ALL -/* Define to 1 if you have the declaration of `P_CID', and to 0 if you don't. - */ -#undef HAVE_DECL_P_CID - -/* Define to 1 if you have the declaration of `P_GID', and to 0 if you don't. - */ -#undef HAVE_DECL_P_GID - -/* Define to 1 if you have the declaration of `P_LWPID', and to 0 if you - don't. */ -#undef HAVE_DECL_P_LWPID - /* Define to 1 if you have the declaration of `P_PGID', and to 0 if you don't. */ #undef HAVE_DECL_P_PGID @@ -404,25 +1508,109 @@ */ #undef HAVE_DECL_P_PID -/* Define to 1 if you have the declaration of `P_PPID', and to 0 if you don't. - */ -#undef HAVE_DECL_P_PPID - -/* Define to 1 if you have the declaration of `P_SID', and to 0 if you don't. - */ -#undef HAVE_DECL_P_SID - -/* Define to 1 if you have the declaration of `P_UID', and to 0 if you don't. - */ -#undef HAVE_DECL_P_UID +/* Define to 1 if you have the declaration of `P_PIDFD', and to 0 if you + don't. */ +#undef HAVE_DECL_P_PIDFD /* Define to 1 if you have the declaration of `sys_errlist', and to 0 if you don't. */ #undef HAVE_DECL_SYS_ERRLIST -/* Define to 1 if you have the declaration of `TCA_STAB_DATA', and to 0 if you - don't. */ -#undef HAVE_DECL_TCA_STAB_DATA +/* Define to 1 if you have the declaration of `TCA_ACT_COOKIE', and to 0 if + you don't. */ +#undef HAVE_DECL_TCA_ACT_COOKIE + +/* Define to 1 if you have the declaration of `TCA_ACT_FLAGS', and to 0 if you + don't. */ +#undef HAVE_DECL_TCA_ACT_FLAGS + +/* Define to 1 if you have the declaration of `TCA_ACT_HW_STATS', and to 0 if + you don't. */ +#undef HAVE_DECL_TCA_ACT_HW_STATS + +/* Define to 1 if you have the declaration of `TCA_ACT_INDEX', and to 0 if you + don't. */ +#undef HAVE_DECL_TCA_ACT_INDEX + +/* Define to 1 if you have the declaration of `TCA_ACT_KIND', and to 0 if you + don't. */ +#undef HAVE_DECL_TCA_ACT_KIND + +/* Define to 1 if you have the declaration of `TCA_ACT_OPTIONS', and to 0 if + you don't. */ +#undef HAVE_DECL_TCA_ACT_OPTIONS + +/* Define to 1 if you have the declaration of `TCA_ACT_PAD', and to 0 if you + don't. */ +#undef HAVE_DECL_TCA_ACT_PAD + +/* Define to 1 if you have the declaration of `TCA_ACT_STATS', and to 0 if you + don't. */ +#undef HAVE_DECL_TCA_ACT_STATS + +/* Define to 1 if you have the declaration of `TCA_ACT_UNSPEC', and to 0 if + you don't. */ +#undef HAVE_DECL_TCA_ACT_UNSPEC + +/* Define to 1 if you have the declaration of `TCA_ACT_USED_HW_STATS', and to + 0 if you don't. */ +#undef HAVE_DECL_TCA_ACT_USED_HW_STATS + +/* Define to 1 if you have the declaration of `TCA_STAB_BASE', and to 0 if you + don't. */ +#undef HAVE_DECL_TCA_STAB_BASE + +/* Define to 1 if you have the declaration of `TCA_STAB_DATA', and to 0 if you + don't. */ +#undef HAVE_DECL_TCA_STAB_DATA + +/* Define to 1 if you have the declaration of `TCA_STAB_UNSPEC', and to 0 if + you don't. */ +#undef HAVE_DECL_TCA_STAB_UNSPEC + +/* Define to 1 if you have the declaration of `TCA_STATS_APP', and to 0 if you + don't. */ +#undef HAVE_DECL_TCA_STATS_APP + +/* Define to 1 if you have the declaration of `TCA_STATS_BASIC', and to 0 if + you don't. */ +#undef HAVE_DECL_TCA_STATS_BASIC + +/* Define to 1 if you have the declaration of `TCA_STATS_BASIC_HW', and to 0 + if you don't. */ +#undef HAVE_DECL_TCA_STATS_BASIC_HW + +/* Define to 1 if you have the declaration of `TCA_STATS_PAD', and to 0 if you + don't. */ +#undef HAVE_DECL_TCA_STATS_PAD + +/* Define to 1 if you have the declaration of `TCA_STATS_PKT64', and to 0 if + you don't. */ +#undef HAVE_DECL_TCA_STATS_PKT64 + +/* Define to 1 if you have the declaration of `TCA_STATS_QUEUE', and to 0 if + you don't. */ +#undef HAVE_DECL_TCA_STATS_QUEUE + +/* Define to 1 if you have the declaration of `TCA_STATS_RATE_EST', and to 0 + if you don't. */ +#undef HAVE_DECL_TCA_STATS_RATE_EST + +/* Define to 1 if you have the declaration of `TCA_STATS_RATE_EST64', and to 0 + if you don't. */ +#undef HAVE_DECL_TCA_STATS_RATE_EST64 + +/* Define to 1 if you have the declaration of `TCA_STATS_UNSPEC', and to 0 if + you don't. */ +#undef HAVE_DECL_TCA_STATS_UNSPEC + +/* Define to 1 if you have the declaration of `V4L2_BUF_TYPE_META_CAPTURE', + and to 0 if you don't. */ +#undef HAVE_DECL_V4L2_BUF_TYPE_META_CAPTURE + +/* Define to 1 if you have the declaration of `V4L2_BUF_TYPE_META_OUTPUT', and + to 0 if you don't. */ +#undef HAVE_DECL_V4L2_BUF_TYPE_META_OUTPUT /* Define to 1 if you have the declaration of `V4L2_BUF_TYPE_SDR_CAPTURE', and to 0 if you don't. */ @@ -480,14 +1668,34 @@ and to 0 if you don't. */ #undef HAVE_DECL_V4L2_COLORSPACE_470_SYSTEM_M +/* Define to 1 if you have the declaration of `V4L2_COLORSPACE_BT2020', and to + 0 if you don't. */ +#undef HAVE_DECL_V4L2_COLORSPACE_BT2020 + /* Define to 1 if you have the declaration of `V4L2_COLORSPACE_BT878', and to 0 if you don't. */ #undef HAVE_DECL_V4L2_COLORSPACE_BT878 +/* Define to 1 if you have the declaration of `V4L2_COLORSPACE_DCI_P3', and to + 0 if you don't. */ +#undef HAVE_DECL_V4L2_COLORSPACE_DCI_P3 + +/* Define to 1 if you have the declaration of `V4L2_COLORSPACE_DEFAULT', and + to 0 if you don't. */ +#undef HAVE_DECL_V4L2_COLORSPACE_DEFAULT + /* Define to 1 if you have the declaration of `V4L2_COLORSPACE_JPEG', and to 0 if you don't. */ #undef HAVE_DECL_V4L2_COLORSPACE_JPEG +/* Define to 1 if you have the declaration of `V4L2_COLORSPACE_OPRGB', and to + 0 if you don't. */ +#undef HAVE_DECL_V4L2_COLORSPACE_OPRGB + +/* Define to 1 if you have the declaration of `V4L2_COLORSPACE_RAW', and to 0 + if you don't. */ +#undef HAVE_DECL_V4L2_COLORSPACE_RAW + /* Define to 1 if you have the declaration of `V4L2_COLORSPACE_REC709', and to 0 if you don't. */ #undef HAVE_DECL_V4L2_COLORSPACE_REC709 @@ -504,6 +1712,10 @@ if you don't. */ #undef HAVE_DECL_V4L2_COLORSPACE_SRGB +/* Define to 1 if you have the declaration of `V4L2_CTRL_TYPE_AREA', and to 0 + if you don't. */ +#undef HAVE_DECL_V4L2_CTRL_TYPE_AREA + /* Define to 1 if you have the declaration of `V4L2_CTRL_TYPE_BITMASK', and to 0 if you don't. */ #undef HAVE_DECL_V4L2_CTRL_TYPE_BITMASK @@ -540,6 +1752,18 @@ 0 if you don't. */ #undef HAVE_DECL_V4L2_CTRL_TYPE_STRING +/* Define to 1 if you have the declaration of `V4L2_CTRL_TYPE_U16', and to 0 + if you don't. */ +#undef HAVE_DECL_V4L2_CTRL_TYPE_U16 + +/* Define to 1 if you have the declaration of `V4L2_CTRL_TYPE_U32', and to 0 + if you don't. */ +#undef HAVE_DECL_V4L2_CTRL_TYPE_U32 + +/* Define to 1 if you have the declaration of `V4L2_CTRL_TYPE_U8', and to 0 if + you don't. */ +#undef HAVE_DECL_V4L2_CTRL_TYPE_U8 + /* Define to 1 if you have the declaration of `V4L2_FIELD_ALTERNATE', and to 0 if you don't. */ #undef HAVE_DECL_V4L2_FIELD_ALTERNATE @@ -580,18 +1804,6 @@ you don't. */ #undef HAVE_DECL_V4L2_FIELD_TOP -/* Define to 1 if you have the declaration of `V4L2_FRMIVAL_TYPE_CONTINUOUS', - and to 0 if you don't. */ -#undef HAVE_DECL_V4L2_FRMIVAL_TYPE_CONTINUOUS - -/* Define to 1 if you have the declaration of `V4L2_FRMIVAL_TYPE_DISCRETE', - and to 0 if you don't. */ -#undef HAVE_DECL_V4L2_FRMIVAL_TYPE_DISCRETE - -/* Define to 1 if you have the declaration of `V4L2_FRMIVAL_TYPE_STEPWISE', - and to 0 if you don't. */ -#undef HAVE_DECL_V4L2_FRMIVAL_TYPE_STEPWISE - /* Define to 1 if you have the declaration of `V4L2_FRMSIZE_TYPE_CONTINUOUS', and to 0 if you don't. */ #undef HAVE_DECL_V4L2_FRMSIZE_TYPE_CONTINUOUS @@ -620,22 +1832,6 @@ if you don't. */ #undef HAVE_DECL_V4L2_MEMORY_USERPTR -/* Define to 1 if you have the declaration of `V4L2_PRIORITY_BACKGROUND', and - to 0 if you don't. */ -#undef HAVE_DECL_V4L2_PRIORITY_BACKGROUND - -/* Define to 1 if you have the declaration of `V4L2_PRIORITY_INTERACTIVE', and - to 0 if you don't. */ -#undef HAVE_DECL_V4L2_PRIORITY_INTERACTIVE - -/* Define to 1 if you have the declaration of `V4L2_PRIORITY_RECORD', and to 0 - if you don't. */ -#undef HAVE_DECL_V4L2_PRIORITY_RECORD - -/* Define to 1 if you have the declaration of `V4L2_PRIORITY_UNSET', and to 0 - if you don't. */ -#undef HAVE_DECL_V4L2_PRIORITY_UNSET - /* Define to 1 if you have the declaration of `V4L2_TUNER_ANALOG_TV', and to 0 if you don't. */ #undef HAVE_DECL_V4L2_TUNER_ANALOG_TV @@ -648,14 +1844,42 @@ you don't. */ #undef HAVE_DECL_V4L2_TUNER_RADIO +/* Define to 1 if you have the declaration of `V4L2_TUNER_RF', and to 0 if you + don't. */ +#undef HAVE_DECL_V4L2_TUNER_RF + +/* Define to 1 if you have the declaration of `V4L2_TUNER_SDR', and to 0 if + you don't. */ +#undef HAVE_DECL_V4L2_TUNER_SDR + /* Define to 1 if you have the declaration of `VM_BLOCK_DUMP', and to 0 if you don't. */ #undef HAVE_DECL_VM_BLOCK_DUMP +/* Define to 1 if you have the declaration of `VM_DIRTY_BACKGROUND', and to 0 + if you don't. */ +#undef HAVE_DECL_VM_DIRTY_BACKGROUND + +/* Define to 1 if you have the declaration of `VM_DIRTY_EXPIRE_CS', and to 0 + if you don't. */ +#undef HAVE_DECL_VM_DIRTY_EXPIRE_CS + +/* Define to 1 if you have the declaration of `VM_DIRTY_RATIO', and to 0 if + you don't. */ +#undef HAVE_DECL_VM_DIRTY_RATIO + +/* Define to 1 if you have the declaration of `VM_DIRTY_WB_CS', and to 0 if + you don't. */ +#undef HAVE_DECL_VM_DIRTY_WB_CS + /* Define to 1 if you have the declaration of `VM_HUGETLB_GROUP', and to 0 if you don't. */ #undef HAVE_DECL_VM_HUGETLB_GROUP +/* Define to 1 if you have the declaration of `VM_HUGETLB_PAGES', and to 0 if + you don't. */ +#undef HAVE_DECL_VM_HUGETLB_PAGES + /* Define to 1 if you have the declaration of `VM_LAPTOP_MODE', and to 0 if you don't. */ #undef HAVE_DECL_VM_LAPTOP_MODE @@ -664,10 +1888,42 @@ if you don't. */ #undef HAVE_DECL_VM_LEGACY_VA_LAYOUT +/* Define to 1 if you have the declaration of `VM_LOWMEM_RESERVE_RATIO', and + to 0 if you don't. */ +#undef HAVE_DECL_VM_LOWMEM_RESERVE_RATIO + /* Define to 1 if you have the declaration of `VM_MAX_MAP_COUNT', and to 0 if you don't. */ #undef HAVE_DECL_VM_MAX_MAP_COUNT +/* Define to 1 if you have the declaration of `VM_MIN_FREE_KBYTES', and to 0 + if you don't. */ +#undef HAVE_DECL_VM_MIN_FREE_KBYTES + +/* Define to 1 if you have the declaration of `VM_NR_PDFLUSH_THREADS', and to + 0 if you don't. */ +#undef HAVE_DECL_VM_NR_PDFLUSH_THREADS + +/* Define to 1 if you have the declaration of `VM_OVERCOMMIT_MEMORY', and to 0 + if you don't. */ +#undef HAVE_DECL_VM_OVERCOMMIT_MEMORY + +/* Define to 1 if you have the declaration of `VM_OVERCOMMIT_RATIO', and to 0 + if you don't. */ +#undef HAVE_DECL_VM_OVERCOMMIT_RATIO + +/* Define to 1 if you have the declaration of `VM_PAGEBUF', and to 0 if you + don't. */ +#undef HAVE_DECL_VM_PAGEBUF + +/* Define to 1 if you have the declaration of `VM_PAGE_CLUSTER', and to 0 if + you don't. */ +#undef HAVE_DECL_VM_PAGE_CLUSTER + +/* Define to 1 if you have the declaration of `VM_SWAPPINESS', and to 0 if you + don't. */ +#undef HAVE_DECL_VM_SWAPPINESS + /* Define to 1 if you have the declaration of `VM_SWAP_TOKEN_TIMEOUT', and to 0 if you don't. */ #undef HAVE_DECL_VM_SWAP_TOKEN_TIMEOUT @@ -676,6 +1932,26 @@ 0 if you don't. */ #undef HAVE_DECL_VM_VFS_CACHE_PRESSURE +/* Define to 1 if you have the declaration of `XDP_ATTACHED_DRV', and to 0 if + you don't. */ +#undef HAVE_DECL_XDP_ATTACHED_DRV + +/* Define to 1 if you have the declaration of `XDP_ATTACHED_HW', and to 0 if + you don't. */ +#undef HAVE_DECL_XDP_ATTACHED_HW + +/* Define to 1 if you have the declaration of `XDP_ATTACHED_MULTI', and to 0 + if you don't. */ +#undef HAVE_DECL_XDP_ATTACHED_MULTI + +/* Define to 1 if you have the declaration of `XDP_ATTACHED_NONE', and to 0 if + you don't. */ +#undef HAVE_DECL_XDP_ATTACHED_NONE + +/* Define to 1 if you have the declaration of `XDP_ATTACHED_SKB', and to 0 if + you don't. */ +#undef HAVE_DECL_XDP_ATTACHED_SKB + /* Define to 1 if you have the header file. */ #undef HAVE_DEMANGLE_H @@ -694,6 +1970,9 @@ /* Define to 1 if you have the `fanotify_mark' function. */ #undef HAVE_FANOTIFY_MARK +/* Define to 1 if you have the `fcntl64' function. */ +#undef HAVE_FCNTL64 + /* Define to 1 if you have the `fopen64' function. */ #undef HAVE_FOPEN64 @@ -712,6 +1991,9 @@ /* Define to 1 if you have the `futimens' function. */ #undef HAVE_FUTIMENS +/* Define to 1 if you have the header file. */ +#undef HAVE_GCOV_H + /* Define to 1 if you have the header file. */ #undef HAVE_GNU_STUBS @@ -748,6 +2030,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_LINUX_BTRFS_H +/* Define to 1 if you have the header file. */ +#undef HAVE_LINUX_CLOSE_RANGE_H + /* Define to 1 if you have the header file. */ #undef HAVE_LINUX_CRYPTOUSER_H @@ -772,6 +2057,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_LINUX_IF_ADDR_H +/* Define to 1 if you have the header file. */ +#undef HAVE_LINUX_IF_BRIDGE_H + /* Define to 1 if you have the header file. */ #undef HAVE_LINUX_IF_LINK_H @@ -793,18 +2081,21 @@ /* Define to 1 if you have the header file. */ #undef HAVE_LINUX_KVM_H +/* Define to 1 if you have the header file. */ +#undef HAVE_LINUX_LOOP_H + /* Define to 1 if you have the header file. */ #undef HAVE_LINUX_MEMFD_H /* Define to 1 if you have the header file. */ #undef HAVE_LINUX_MMTIMER_H +/* Define to 1 if you have the header file. */ +#undef HAVE_LINUX_MOUNT_H + /* Define to 1 if you have the header file. */ #undef HAVE_LINUX_MQUEUE_H -/* Define to 1 if you have the header file. */ -#undef HAVE_LINUX_MSG_H - /* Define to 1 if you have the header file. */ #undef HAVE_LINUX_NEIGHBOUR_H @@ -868,23 +2159,29 @@ /* Define to 1 if you have the header file. */ #undef HAVE_LINUX_NSFS_H +/* Define to 1 if you have the header file. */ +#undef HAVE_LINUX_OPENAT2_H + /* Define to 1 if you have the header file. */ #undef HAVE_LINUX_PERF_EVENT_H /* Define to 1 if you have the header file. */ #undef HAVE_LINUX_QUOTA_H +/* Define to 1 if you have the header file. */ +#undef HAVE_LINUX_RTNETLINK_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_LINUX_SCHED_H + /* Define to 1 if you have the header file. */ #undef HAVE_LINUX_SECCOMP_H /* Define to 1 if you have the header file. */ #undef HAVE_LINUX_SECUREBITS_H -/* Define to 1 if you have the header file. */ -#undef HAVE_LINUX_SEM_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_LINUX_SHM_H +/* Define to 1 if you have the header file. */ +#undef HAVE_LINUX_TEE_H /* Define to 1 if you have the header file. */ #undef HAVE_LINUX_USERFAULTFD_H @@ -892,6 +2189,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_LINUX_UTSNAME_H +/* Define to 1 if you have the header file. */ +#undef HAVE_LINUX_VIDEODEV2_H + /* Define to 1 if you have mpers_name mpers support */ #undef HAVE_M32_MPERS @@ -943,12 +2243,12 @@ /* Define to 1 if you have the `open64' function. */ #undef HAVE_OPEN64 +/* Define to 1 if you have the `open_memstream' function. */ +#undef HAVE_OPEN_MEMSTREAM + /* Define to 1 if you have the header file. */ #undef HAVE_PATHS_H -/* Define to 1 if you have the `prctl' function. */ -#undef HAVE_PRCTL - /* Define to 1 if you have the `preadv' function. */ #undef HAVE_PREADV @@ -1009,12 +2309,6 @@ /* Define to 1 if you have the `strndup' function. */ #undef HAVE_STRNDUP -/* Define to 1 if you have the header file. */ -#undef HAVE_STROPTS_H - -/* Define to 1 if you have the `strsignal' function. */ -#undef HAVE_STRSIGNAL - /* Define to 1 if the system has the type `struct blk_user_trace_setup'. */ #undef HAVE_STRUCT_BLK_USER_TRACE_SETUP @@ -1033,6 +2327,10 @@ /* Define to 1 if `btf_value_type_id' is a member of `struct bpf_map_info'. */ #undef HAVE_STRUCT_BPF_MAP_INFO_BTF_VALUE_TYPE_ID +/* Define to 1 if `btf_vmlinux_value_type_id' is a member of `struct + bpf_map_info'. */ +#undef HAVE_STRUCT_BPF_MAP_INFO_BTF_VMLINUX_VALUE_TYPE_ID + /* Define to 1 if `id' is a member of `struct bpf_map_info'. */ #undef HAVE_STRUCT_BPF_MAP_INFO_ID @@ -1162,6 +2460,9 @@ /* Define to 1 if the system has the type `struct br_mdb_entry'. */ #undef HAVE_STRUCT_BR_MDB_ENTRY +/* Define to 1 if `addr' is a member of `struct br_mdb_entry'. */ +#undef HAVE_STRUCT_BR_MDB_ENTRY_ADDR + /* Define to 1 if `flags' is a member of `struct br_mdb_entry'. */ #undef HAVE_STRUCT_BR_MDB_ENTRY_FLAGS @@ -1171,6 +2472,9 @@ /* Define to 1 if the system has the type `struct br_port_msg'. */ #undef HAVE_STRUCT_BR_PORT_MSG +/* Define to 1 if `ifindex' is a member of `struct br_port_msg'. */ +#undef HAVE_STRUCT_BR_PORT_MSG_IFINDEX + /* Define to 1 if `start' is a member of `struct btrfs_ioctl_defrag_range_args'. */ #undef HAVE_STRUCT_BTRFS_IOCTL_DEFRAG_RANGE_ARGS_START @@ -1183,29 +2487,54 @@ */ #undef HAVE_STRUCT_BTRFS_IOCTL_FS_INFO_ARGS_NODESIZE -/* Define to 1 if `flags' is a member of `struct +/* Define to 1 if the system has the type `struct + btrfs_ioctl_logical_ino_args'. */ +#undef HAVE_STRUCT_BTRFS_IOCTL_LOGICAL_INO_ARGS + +/* Define to 1 if `inodes' is a member of `struct btrfs_ioctl_logical_ino_args'. */ -#undef HAVE_STRUCT_BTRFS_IOCTL_LOGICAL_INO_ARGS_FLAGS +#undef HAVE_STRUCT_BTRFS_IOCTL_LOGICAL_INO_ARGS_INODES -/* Define to 1 if `buf_size' is a member of `struct - btrfs_ioctl_search_args_v2'. */ -#undef HAVE_STRUCT_BTRFS_IOCTL_SEARCH_ARGS_V2_BUF_SIZE +/* Define to 1 if `cgroup' is a member of `struct clone_args'. */ +#undef HAVE_STRUCT_CLONE_ARGS_CGROUP /* Define to 1 if the system has the type `struct crypto_report_aead'. */ #undef HAVE_STRUCT_CRYPTO_REPORT_AEAD +/* Define to 1 if `ivsize' is a member of `struct crypto_report_aead'. */ +#undef HAVE_STRUCT_CRYPTO_REPORT_AEAD_IVSIZE + /* Define to 1 if the system has the type `struct crypto_report_blkcipher'. */ #undef HAVE_STRUCT_CRYPTO_REPORT_BLKCIPHER +/* Define to 1 if `ivsize' is a member of `struct crypto_report_blkcipher'. */ +#undef HAVE_STRUCT_CRYPTO_REPORT_BLKCIPHER_IVSIZE + /* Define to 1 if the system has the type `struct crypto_report_cipher'. */ #undef HAVE_STRUCT_CRYPTO_REPORT_CIPHER +/* Define to 1 if `max_keysize' is a member of `struct crypto_report_cipher'. + */ +#undef HAVE_STRUCT_CRYPTO_REPORT_CIPHER_MAX_KEYSIZE + /* Define to 1 if the system has the type `struct crypto_report_hash'. */ #undef HAVE_STRUCT_CRYPTO_REPORT_HASH +/* Define to 1 if `digestsize' is a member of `struct crypto_report_hash'. */ +#undef HAVE_STRUCT_CRYPTO_REPORT_HASH_DIGESTSIZE + /* Define to 1 if the system has the type `struct crypto_report_rng'. */ #undef HAVE_STRUCT_CRYPTO_REPORT_RNG +/* Define to 1 if `seedsize' is a member of `struct crypto_report_rng'. */ +#undef HAVE_STRUCT_CRYPTO_REPORT_RNG_SEEDSIZE + +/* Define to 1 if the system has the type `struct crypto_user_alg'. */ +#undef HAVE_STRUCT_CRYPTO_USER_ALG + +/* Define to 1 if `cru_flags' is a member of `struct crypto_user_alg'. */ +#undef HAVE_STRUCT_CRYPTO_USER_ALG_CRU_FLAGS + /* Define to 1 if the system has the type `struct dcbmsg'. */ #undef HAVE_STRUCT_DCBMSG @@ -1245,21 +2574,102 @@ /* Define to 1 if the system has the type `struct ifla_bridge_id'. */ #undef HAVE_STRUCT_IFLA_BRIDGE_ID +/* Define to 1 if `addr' is a member of `struct ifla_bridge_id'. */ +#undef HAVE_STRUCT_IFLA_BRIDGE_ID_ADDR + /* Define to 1 if the system has the type `struct ifla_cacheinfo'. */ #undef HAVE_STRUCT_IFLA_CACHEINFO /* Define to 1 if the system has the type `struct ifla_port_vsi'. */ #undef HAVE_STRUCT_IFLA_PORT_VSI +/* Define to 1 if `pad' is a member of `struct ifla_port_vsi'. */ +#undef HAVE_STRUCT_IFLA_PORT_VSI_PAD + +/* Define to 1 if the system has the type `struct input_absinfo'. */ +#undef HAVE_STRUCT_INPUT_ABSINFO + /* Define to 1 if `resolution' is a member of `struct input_absinfo'. */ #undef HAVE_STRUCT_INPUT_ABSINFO_RESOLUTION +/* Define to 1 if the system has the type `struct input_keymap_entry'. */ +#undef HAVE_STRUCT_INPUT_KEYMAP_ENTRY + +/* Define to 1 if `scancode' is a member of `struct input_keymap_entry'. */ +#undef HAVE_STRUCT_INPUT_KEYMAP_ENTRY_SCANCODE + +/* Define to 1 if the system has the type `struct input_mask'. */ +#undef HAVE_STRUCT_INPUT_MASK + +/* Define to 1 if `codes_ptr' is a member of `struct input_mask'. */ +#undef HAVE_STRUCT_INPUT_MASK_CODES_PTR + +/* Define to 1 if `aio_flags' is a member of `struct iocb'. */ +#undef HAVE_STRUCT_IOCB_AIO_FLAGS + +/* Define to 1 if `aio_rw_flags' is a member of `struct iocb'. */ +#undef HAVE_STRUCT_IOCB_AIO_RW_FLAGS + +/* Define to 1 if the system has the type `struct io_cqring_offsets'. */ +#undef HAVE_STRUCT_IO_CQRING_OFFSETS + +/* Define to 1 if `cqes' is a member of `struct io_cqring_offsets'. */ +#undef HAVE_STRUCT_IO_CQRING_OFFSETS_CQES + +/* Define to 1 if `flags' is a member of `struct io_cqring_offsets'. */ +#undef HAVE_STRUCT_IO_CQRING_OFFSETS_FLAGS + +/* Define to 1 if the system has the type `struct io_sqring_offsets'. */ +#undef HAVE_STRUCT_IO_SQRING_OFFSETS + +/* Define to 1 if `resv2' is a member of `struct io_sqring_offsets'. */ +#undef HAVE_STRUCT_IO_SQRING_OFFSETS_RESV2 + +/* Define to 1 if the system has the type `struct io_uring_files_update'. */ +#undef HAVE_STRUCT_IO_URING_FILES_UPDATE + +/* Define to 1 if `fds' is a member of `struct io_uring_files_update'. */ +#undef HAVE_STRUCT_IO_URING_FILES_UPDATE_FDS + +/* Define to 1 if the system has the type `struct io_uring_params'. */ +#undef HAVE_STRUCT_IO_URING_PARAMS + +/* Define to 1 if `cq_off' is a member of `struct io_uring_params'. */ +#undef HAVE_STRUCT_IO_URING_PARAMS_CQ_OFF + +/* Define to 1 if `features' is a member of `struct io_uring_params'. */ +#undef HAVE_STRUCT_IO_URING_PARAMS_FEATURES + +/* Define to 1 if `resv' is a member of `struct io_uring_params'. */ +#undef HAVE_STRUCT_IO_URING_PARAMS_RESV + +/* Define to 1 if `wq_fd' is a member of `struct io_uring_params'. */ +#undef HAVE_STRUCT_IO_URING_PARAMS_WQ_FD + +/* Define to 1 if the system has the type `struct io_uring_probe'. */ +#undef HAVE_STRUCT_IO_URING_PROBE + +/* Define to 1 if the system has the type `struct io_uring_probe_op'. */ +#undef HAVE_STRUCT_IO_URING_PROBE_OP + +/* Define to 1 if `ops' is a member of `struct io_uring_probe'. */ +#undef HAVE_STRUCT_IO_URING_PROBE_OPS + +/* Define to 1 if `resv2' is a member of `struct io_uring_probe_op'. */ +#undef HAVE_STRUCT_IO_URING_PROBE_OP_RESV2 + /* Define to 1 if the system has the type `struct kcmp_epoll_slot'. */ #undef HAVE_STRUCT_KCMP_EPOLL_SLOT /* Define to 1 if the system has the type `struct keyctl_kdf_params'. */ #undef HAVE_STRUCT_KEYCTL_KDF_PARAMS +/* Define to 1 if the system has the type `struct keyctl_pkey_params'. */ +#undef HAVE_STRUCT_KEYCTL_PKEY_PARAMS + +/* Define to 1 if the system has the type `struct keyctl_pkey_query'. */ +#undef HAVE_STRUCT_KEYCTL_PKEY_QUERY + /* Define to 1 if the system has the type `struct kvm_cpuid2'. */ #undef HAVE_STRUCT_KVM_CPUID2 @@ -1273,6 +2683,12 @@ kvm_userspace_memory_region'. */ #undef HAVE_STRUCT_KVM_USERSPACE_MEMORY_REGION +/* Define to 1 if the system has the type `struct loop_config'. */ +#undef HAVE_STRUCT_LOOP_CONFIG + +/* Define to 1 if `__reserved' is a member of `struct loop_config'. */ +#undef HAVE_STRUCT_LOOP_CONFIG___RESERVED + /* Define to 1 if the system has the type `struct mmsghdr'. */ #undef HAVE_STRUCT_MMSGHDR @@ -1282,6 +2698,9 @@ /* Define to 1 if the system has the type `struct ndt_config'. */ #undef HAVE_STRUCT_NDT_CONFIG +/* Define to 1 if `ndtc_proxy_qlen' is a member of `struct ndt_config'. */ +#undef HAVE_STRUCT_NDT_CONFIG_NDTC_PROXY_QLEN + /* Define to 1 if the system has the type `struct ndt_stats'. */ #undef HAVE_STRUCT_NDT_STATS @@ -1291,6 +2710,16 @@ /* Define to 1 if the system has the type `struct netconfmsg'. */ #undef HAVE_STRUCT_NETCONFMSG +/* Define to 1 if the system has the type `struct open_how'. */ +#undef HAVE_STRUCT_OPEN_HOW + +/* Define to 1 if `resolve' is a member of `struct open_how'. */ +#undef HAVE_STRUCT_OPEN_HOW_RESOLVE + +/* Define to 1 if `aux_sample_size' is a member of `struct perf_event_attr'. + */ +#undef HAVE_STRUCT_PERF_EVENT_ATTR_AUX_SAMPLE_SIZE + /* Define to 1 if `aux_watermark' is a member of `struct perf_event_attr'. */ #undef HAVE_STRUCT_PERF_EVENT_ATTR_AUX_WATERMARK @@ -1370,12 +2799,21 @@ /* Define to 1 if the system has the type `struct ptrace_peeksiginfo_args'. */ #undef HAVE_STRUCT_PTRACE_PEEKSIGINFO_ARGS +/* Define to 1 if the system has the type `struct ptrace_syscall_info'. */ +#undef HAVE_STRUCT_PTRACE_SYSCALL_INFO + /* Define to 1 if the system has the type `struct pt_all_user_regs'. */ #undef HAVE_STRUCT_PT_ALL_USER_REGS /* Define to 1 if the system has the type `struct rta_mfc_stats'. */ #undef HAVE_STRUCT_RTA_MFC_STATS +/* Define to 1 if `mfcs_wrong_if' is a member of `struct rta_mfc_stats'. */ +#undef HAVE_STRUCT_RTA_MFC_STATS_MFCS_WRONG_IF + +/* Define to 1 if the system has the type `struct rtnl_link_stats'. */ +#undef HAVE_STRUCT_RTNL_LINK_STATS + /* Define to 1 if the system has the type `struct rtnl_link_stats64'. */ #undef HAVE_STRUCT_RTNL_LINK_STATS64 @@ -1388,9 +2826,15 @@ /* Define to 1 if the system has the type `struct rtvia'. */ #undef HAVE_STRUCT_RTVIA +/* Define to 1 if `rtvia_addr' is a member of `struct rtvia'. */ +#undef HAVE_STRUCT_RTVIA_RTVIA_ADDR + /* Define to 1 if the system has the type `struct sigcontext'. */ #undef HAVE_STRUCT_SIGCONTEXT +/* Define to 1 if `hci_channel' is a member of `struct sockaddr_hci'. */ +#undef HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL + /* Define to 1 if `l2_bdaddr_type' is a member of `struct sockaddr_l2'. */ #undef HAVE_STRUCT_SOCKADDR_L2_L2_BDADDR_TYPE @@ -1430,14 +2874,87 @@ /* Define to 1 if `f_fsid.__val' is a member of `struct statfs'. */ #undef HAVE_STRUCT_STATFS_F_FSID___VAL +/* Define to 1 if the system has the type `struct statx'. */ +#undef HAVE_STRUCT_STATX + /* Define to 1 if `st_mtime_nsec' is a member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_MTIME_NSEC /* Define to 1 if the system has the type `struct tc_sizespec'. */ #undef HAVE_STRUCT_TC_SIZESPEC -/* Define to 1 if `tai' is a member of `struct timex'. */ -#undef HAVE_STRUCT_TIMEX_TAI +/* Define to 1 if the system has the type `struct tee_iocl_supp_recv_arg'. */ +#undef HAVE_STRUCT_TEE_IOCL_SUPP_RECV_ARG + +/* Define to 1 if `params' is a member of `struct tee_iocl_supp_recv_arg'. */ +#undef HAVE_STRUCT_TEE_IOCL_SUPP_RECV_ARG_PARAMS + +/* Define to 1 if the system has the type `struct tee_iocl_supp_send_arg'. */ +#undef HAVE_STRUCT_TEE_IOCL_SUPP_SEND_ARG + +/* Define to 1 if `params' is a member of `struct tee_iocl_supp_send_arg'. */ +#undef HAVE_STRUCT_TEE_IOCL_SUPP_SEND_ARG_PARAMS + +/* Define to 1 if the system has the type `struct tee_ioctl_buf_data'. */ +#undef HAVE_STRUCT_TEE_IOCTL_BUF_DATA + +/* Define to 1 if `buf_len' is a member of `struct tee_ioctl_buf_data'. */ +#undef HAVE_STRUCT_TEE_IOCTL_BUF_DATA_BUF_LEN + +/* Define to 1 if the system has the type `struct tee_ioctl_cancel_arg'. */ +#undef HAVE_STRUCT_TEE_IOCTL_CANCEL_ARG + +/* Define to 1 if `session' is a member of `struct tee_ioctl_cancel_arg'. */ +#undef HAVE_STRUCT_TEE_IOCTL_CANCEL_ARG_SESSION + +/* Define to 1 if the system has the type `struct + tee_ioctl_close_session_arg'. */ +#undef HAVE_STRUCT_TEE_IOCTL_CLOSE_SESSION_ARG + +/* Define to 1 if `session' is a member of `struct + tee_ioctl_close_session_arg'. */ +#undef HAVE_STRUCT_TEE_IOCTL_CLOSE_SESSION_ARG_SESSION + +/* Define to 1 if the system has the type `struct tee_ioctl_invoke_arg'. */ +#undef HAVE_STRUCT_TEE_IOCTL_INVOKE_ARG + +/* Define to 1 if `params' is a member of `struct tee_ioctl_invoke_arg'. */ +#undef HAVE_STRUCT_TEE_IOCTL_INVOKE_ARG_PARAMS + +/* Define to 1 if the system has the type `struct tee_ioctl_open_session_arg'. + */ +#undef HAVE_STRUCT_TEE_IOCTL_OPEN_SESSION_ARG + +/* Define to 1 if `params' is a member of `struct tee_ioctl_open_session_arg'. + */ +#undef HAVE_STRUCT_TEE_IOCTL_OPEN_SESSION_ARG_PARAMS + +/* Define to 1 if the system has the type `struct tee_ioctl_param'. */ +#undef HAVE_STRUCT_TEE_IOCTL_PARAM + +/* Define to 1 if `c' is a member of `struct tee_ioctl_param'. */ +#undef HAVE_STRUCT_TEE_IOCTL_PARAM_C + +/* Define to 1 if the system has the type `struct tee_ioctl_shm_alloc_data'. + */ +#undef HAVE_STRUCT_TEE_IOCTL_SHM_ALLOC_DATA + +/* Define to 1 if `id' is a member of `struct tee_ioctl_shm_alloc_data'. */ +#undef HAVE_STRUCT_TEE_IOCTL_SHM_ALLOC_DATA_ID + +/* Define to 1 if the system has the type `struct + tee_ioctl_shm_register_data'. */ +#undef HAVE_STRUCT_TEE_IOCTL_SHM_REGISTER_DATA + +/* Define to 1 if `id' is a member of `struct tee_ioctl_shm_register_data'. */ +#undef HAVE_STRUCT_TEE_IOCTL_SHM_REGISTER_DATA_ID + +/* Define to 1 if the system has the type `struct tee_ioctl_version_data'. */ +#undef HAVE_STRUCT_TEE_IOCTL_VERSION_DATA + +/* Define to 1 if `gen_caps' is a member of `struct tee_ioctl_version_data'. + */ +#undef HAVE_STRUCT_TEE_IOCTL_VERSION_DATA_GEN_CAPS /* Define to 1 if `max_beb_per1024' is a member of `struct ubi_attach_req'. */ #undef HAVE_STRUCT_UBI_ATTACH_REQ_MAX_BEB_PER1024 @@ -1451,9 +2968,134 @@ /* Define to 1 if `domainname' is a member of `struct utsname'. */ #undef HAVE_STRUCT_UTSNAME_DOMAINNAME +/* Define to 1 if the system has the type `struct v4l2_area'. */ +#undef HAVE_STRUCT_V4L2_AREA + +/* Define to 1 if `height' is a member of `struct v4l2_area'. */ +#undef HAVE_STRUCT_V4L2_AREA_HEIGHT + +/* Define to 1 if the system has the type `struct v4l2_capability'. */ +#undef HAVE_STRUCT_V4L2_CAPABILITY + +/* Define to 1 if `device_caps' is a member of `struct v4l2_capability'. */ +#undef HAVE_STRUCT_V4L2_CAPABILITY_DEVICE_CAPS + +/* Define to 1 if `reserved' is a member of `struct v4l2_capability'. */ +#undef HAVE_STRUCT_V4L2_CAPABILITY_RESERVED + +/* Define to 1 if the system has the type `struct v4l2_clip'. */ +#undef HAVE_STRUCT_V4L2_CLIP + +/* Define to 1 if `next' is a member of `struct v4l2_clip'. */ +#undef HAVE_STRUCT_V4L2_CLIP_NEXT + +/* Define to 1 if the system has the type `struct v4l2_create_buffers'. */ +#undef HAVE_STRUCT_V4L2_CREATE_BUFFERS + +/* Define to 1 if `reserved' is a member of `struct v4l2_create_buffers'. */ +#undef HAVE_STRUCT_V4L2_CREATE_BUFFERS_RESERVED + +/* Define to 1 if the system has the type `struct v4l2_ext_controls'. */ +#undef HAVE_STRUCT_V4L2_EXT_CONTROLS + +/* Define to 1 if `controls' is a member of `struct v4l2_ext_controls'. */ +#undef HAVE_STRUCT_V4L2_EXT_CONTROLS_CONTROLS + +/* Define to 1 if `string' is a member of `struct v4l2_ext_control'. */ +#undef HAVE_STRUCT_V4L2_EXT_CONTROL_STRING + +/* Define to 1 if the system has the type `struct v4l2_format'. */ +#undef HAVE_STRUCT_V4L2_FORMAT + +/* Define to 1 if `fmt' is a member of `struct v4l2_format'. */ +#undef HAVE_STRUCT_V4L2_FORMAT_FMT + +/* Define to 1 if `fmt.pix_mp' is a member of `struct v4l2_format'. */ +#undef HAVE_STRUCT_V4L2_FORMAT_FMT_PIX_MP + +/* Define to 1 if `fmt.sdr' is a member of `struct v4l2_format'. */ +#undef HAVE_STRUCT_V4L2_FORMAT_FMT_SDR + +/* Define to 1 if `fmt.sliced' is a member of `struct v4l2_format'. */ +#undef HAVE_STRUCT_V4L2_FORMAT_FMT_SLICED + +/* Define to 1 if the system has the type `struct v4l2_frmivalenum'. */ +#undef HAVE_STRUCT_V4L2_FRMIVALENUM + +/* Define to 1 if `reserved' is a member of `struct v4l2_frmivalenum'. */ +#undef HAVE_STRUCT_V4L2_FRMIVALENUM_RESERVED + +/* Define to 1 if the system has the type `struct v4l2_frmival_stepwise'. */ +#undef HAVE_STRUCT_V4L2_FRMIVAL_STEPWISE + +/* Define to 1 if `step' is a member of `struct v4l2_frmival_stepwise'. */ +#undef HAVE_STRUCT_V4L2_FRMIVAL_STEPWISE_STEP + +/* Define to 1 if the system has the type `struct v4l2_frmsizeenum'. */ +#undef HAVE_STRUCT_V4L2_FRMSIZEENUM + +/* Define to 1 if `reserved' is a member of `struct v4l2_frmsizeenum'. */ +#undef HAVE_STRUCT_V4L2_FRMSIZEENUM_RESERVED + +/* Define to 1 if the system has the type `struct v4l2_frmsize_discrete'. */ +#undef HAVE_STRUCT_V4L2_FRMSIZE_DISCRETE + +/* Define to 1 if `height' is a member of `struct v4l2_frmsize_discrete'. */ +#undef HAVE_STRUCT_V4L2_FRMSIZE_DISCRETE_HEIGHT + +/* Define to 1 if the system has the type `struct v4l2_frmsize_stepwise'. */ +#undef HAVE_STRUCT_V4L2_FRMSIZE_STEPWISE + +/* Define to 1 if `step_height' is a member of `struct v4l2_frmsize_stepwise'. + */ +#undef HAVE_STRUCT_V4L2_FRMSIZE_STEPWISE_STEP_HEIGHT + +/* Define to 1 if the system has the type `struct v4l2_meta_format'. */ +#undef HAVE_STRUCT_V4L2_META_FORMAT + +/* Define to 1 if the system has the type `struct v4l2_pix_format'. */ +#undef HAVE_STRUCT_V4L2_PIX_FORMAT + +/* Define to 1 if the system has the type `struct v4l2_pix_format_mplane'. */ +#undef HAVE_STRUCT_V4L2_PIX_FORMAT_MPLANE + +/* Define to 1 if `xfer_func' is a member of `struct v4l2_pix_format'. */ +#undef HAVE_STRUCT_V4L2_PIX_FORMAT_XFER_FUNC + +/* Define to 1 if the system has the type `struct v4l2_plane_pix_format'. */ +#undef HAVE_STRUCT_V4L2_PLANE_PIX_FORMAT + +/* Define to 1 if `reserved' is a member of `struct v4l2_plane_pix_format'. */ +#undef HAVE_STRUCT_V4L2_PLANE_PIX_FORMAT_RESERVED + +/* Define to 1 if the system has the type `struct v4l2_sdr_format'. */ +#undef HAVE_STRUCT_V4L2_SDR_FORMAT + /* Define to 1 if `buffersize' is a member of `struct v4l2_sdr_format'. */ #undef HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE +/* Define to 1 if the system has the type `struct v4l2_sliced_vbi_cap'. */ +#undef HAVE_STRUCT_V4L2_SLICED_VBI_CAP + +/* Define to 1 if `reserved' is a member of `struct v4l2_sliced_vbi_cap'. */ +#undef HAVE_STRUCT_V4L2_SLICED_VBI_CAP_RESERVED + +/* Define to 1 if the system has the type `struct v4l2_sliced_vbi_format'. */ +#undef HAVE_STRUCT_V4L2_SLICED_VBI_FORMAT + +/* Define to 1 if `reserved' is a member of `struct v4l2_sliced_vbi_format'. + */ +#undef HAVE_STRUCT_V4L2_SLICED_VBI_FORMAT_RESERVED + +/* Define to 1 if the system has the type `struct v4l2_vbi_format'. */ +#undef HAVE_STRUCT_V4L2_VBI_FORMAT + +/* Define to 1 if `reserved' is a member of `struct v4l2_vbi_format'. */ +#undef HAVE_STRUCT_V4L2_VBI_FORMAT_RESERVED + +/* Define to 1 if the system has the type `struct v4l2_window'. */ +#undef HAVE_STRUCT_V4L2_WINDOW + /* Define to 1 if `global_alpha' is a member of `struct v4l2_window'. */ #undef HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA @@ -1478,12 +3120,12 @@ /* Define to 1 if the system has the type `struct __old_kernel_stat'. */ #undef HAVE_STRUCT___OLD_KERNEL_STAT +/* Define to 1 if the system has the type `struct __ptrace_syscall_info'. */ +#undef HAVE_STRUCT___PTRACE_SYSCALL_INFO + /* Define to 1 if you have the `sync_file_range' function. */ #undef HAVE_SYNC_FILE_RANGE -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_CONF_H - /* Define to 1 if you have the header file. */ #undef HAVE_SYS_EVENTFD_H @@ -1493,18 +3135,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_SYS_IPC_H -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_MSG_H - /* Define to 1 if you have the header file. */ #undef HAVE_SYS_QUOTA_H -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_SEM_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_SHM_H - /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SIGNALFD_H @@ -1523,12 +3156,42 @@ /* Define to 1 if `attach_bpf_fd' is a member of `union bpf_attr'. */ #undef HAVE_UNION_BPF_ATTR_ATTACH_BPF_FD +/* Define to 1 if `attach_btf_id' is a member of `union bpf_attr'. */ +#undef HAVE_UNION_BPF_ATTR_ATTACH_BTF_ID + /* Define to 1 if `attach_flags' is a member of `union bpf_attr'. */ #undef HAVE_UNION_BPF_ATTR_ATTACH_FLAGS +/* Define to 1 if `attach_prog_fd' is a member of `union bpf_attr'. */ +#undef HAVE_UNION_BPF_ATTR_ATTACH_PROG_FD + /* Define to 1 if `attach_type' is a member of `union bpf_attr'. */ #undef HAVE_UNION_BPF_ATTR_ATTACH_TYPE +/* Define to 1 if `batch.count' is a member of `union bpf_attr'. */ +#undef HAVE_UNION_BPF_ATTR_BATCH_COUNT + +/* Define to 1 if `batch.elem_flags' is a member of `union bpf_attr'. */ +#undef HAVE_UNION_BPF_ATTR_BATCH_ELEM_FLAGS + +/* Define to 1 if `batch.flags' is a member of `union bpf_attr'. */ +#undef HAVE_UNION_BPF_ATTR_BATCH_FLAGS + +/* Define to 1 if `batch.in_batch' is a member of `union bpf_attr'. */ +#undef HAVE_UNION_BPF_ATTR_BATCH_IN_BATCH + +/* Define to 1 if `batch.keys' is a member of `union bpf_attr'. */ +#undef HAVE_UNION_BPF_ATTR_BATCH_KEYS + +/* Define to 1 if `batch.map_fd' is a member of `union bpf_attr'. */ +#undef HAVE_UNION_BPF_ATTR_BATCH_MAP_FD + +/* Define to 1 if `batch.out_batch' is a member of `union bpf_attr'. */ +#undef HAVE_UNION_BPF_ATTR_BATCH_OUT_BATCH + +/* Define to 1 if `batch.values' is a member of `union bpf_attr'. */ +#undef HAVE_UNION_BPF_ATTR_BATCH_VALUES + /* Define to 1 if `bpf_fd' is a member of `union bpf_attr'. */ #undef HAVE_UNION_BPF_ATTR_BPF_FD @@ -1559,6 +3222,10 @@ /* Define to 1 if `btf_value_type_id' is a member of `union bpf_attr'. */ #undef HAVE_UNION_BPF_ATTR_BTF_VALUE_TYPE_ID +/* Define to 1 if `btf_vmlinux_value_type_id' is a member of `union bpf_attr'. + */ +#undef HAVE_UNION_BPF_ATTR_BTF_VMLINUX_VALUE_TYPE_ID + /* Define to 1 if `dummy' is a member of `union bpf_attr'. */ #undef HAVE_UNION_BPF_ATTR_DUMMY @@ -1619,6 +3286,33 @@ /* Define to 1 if `line_info_rec_size' is a member of `union bpf_attr'. */ #undef HAVE_UNION_BPF_ATTR_LINE_INFO_REC_SIZE +/* Define to 1 if `link_create.attach_type' is a member of `union bpf_attr'. + */ +#undef HAVE_UNION_BPF_ATTR_LINK_CREATE_ATTACH_TYPE + +/* Define to 1 if `link_create.flags' is a member of `union bpf_attr'. */ +#undef HAVE_UNION_BPF_ATTR_LINK_CREATE_FLAGS + +/* Define to 1 if `link_create.prog_fd' is a member of `union bpf_attr'. */ +#undef HAVE_UNION_BPF_ATTR_LINK_CREATE_PROG_FD + +/* Define to 1 if `link_create.target_fd' is a member of `union bpf_attr'. */ +#undef HAVE_UNION_BPF_ATTR_LINK_CREATE_TARGET_FD + +/* Define to 1 if `link_update.flags' is a member of `union bpf_attr'. */ +#undef HAVE_UNION_BPF_ATTR_LINK_UPDATE_FLAGS + +/* Define to 1 if `link_update.link_fd' is a member of `union bpf_attr'. */ +#undef HAVE_UNION_BPF_ATTR_LINK_UPDATE_LINK_FD + +/* Define to 1 if `link_update.new_prog_fd' is a member of `union bpf_attr'. + */ +#undef HAVE_UNION_BPF_ATTR_LINK_UPDATE_NEW_PROG_FD + +/* Define to 1 if `link_update.old_prog_fd' is a member of `union bpf_attr'. + */ +#undef HAVE_UNION_BPF_ATTR_LINK_UPDATE_OLD_PROG_FD + /* Define to 1 if `log_buf' is a member of `union bpf_attr'. */ #undef HAVE_UNION_BPF_ATTR_LOG_BUF @@ -1706,6 +3400,9 @@ /* Define to 1 if `raw_tracepoint.prog_fd' is a member of `union bpf_attr'. */ #undef HAVE_UNION_BPF_ATTR_RAW_TRACEPOINT_PROG_FD +/* Define to 1 if `replace_bpf_fd' is a member of `union bpf_attr'. */ +#undef HAVE_UNION_BPF_ATTR_REPLACE_BPF_FD + /* Define to 1 if `start_id' is a member of `union bpf_attr'. */ #undef HAVE_UNION_BPF_ATTR_START_ID @@ -1741,6 +3438,18 @@ /* Define to 1 if `task_fd_query.prog_id' is a member of `union bpf_attr'. */ #undef HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_PROG_ID +/* Define to 1 if `test.ctx_in' is a member of `union bpf_attr'. */ +#undef HAVE_UNION_BPF_ATTR_TEST_CTX_IN + +/* Define to 1 if `test.ctx_out' is a member of `union bpf_attr'. */ +#undef HAVE_UNION_BPF_ATTR_TEST_CTX_OUT + +/* Define to 1 if `test.ctx_size_in' is a member of `union bpf_attr'. */ +#undef HAVE_UNION_BPF_ATTR_TEST_CTX_SIZE_IN + +/* Define to 1 if `test.ctx_size_out' is a member of `union bpf_attr'. */ +#undef HAVE_UNION_BPF_ATTR_TEST_CTX_SIZE_OUT + /* Define to 1 if `test.data_in' is a member of `union bpf_attr'. */ #undef HAVE_UNION_BPF_ATTR_TEST_DATA_IN @@ -1777,9 +3486,6 @@ /* Define to 1 if you have the header file. */ #undef HAVE_USTAT_H -/* Define to 1 if you have the `utimensat' function. */ -#undef HAVE_UTIMENSAT - /* Define to 1 if the system provides _Static_assert */ #undef HAVE__STATIC_ASSERT @@ -1816,6 +3522,9 @@ /* The size of `long', as computed by sizeof. */ #undef M32_SIZEOF_LONG +/* The size of `struct msqid64_ds', as computed by sizeof. */ +#undef M32_SIZEOF_STRUCT_MSQID64_DS + /* Define for the m68k architecture. */ #undef M68K @@ -1837,6 +3546,9 @@ /* The size of `long', as computed by sizeof. */ #undef MX32_SIZEOF_LONG +/* The size of `struct msqid64_ds', as computed by sizeof. */ +#undef MX32_SIZEOF_STRUCT_MSQID64_DS + /* Define for the Nios-II architecture. */ #undef NIOS2 @@ -1867,11 +3579,14 @@ /* Define for the PowerPC architecture. */ #undef POWERPC -/* Define for the PowerPC64 architecture. */ +/* Define for the big endian PowerPC64 architecture. */ #undef POWERPC64 -/* Define for the RISC-V architecture */ -#undef RISCV +/* Define for the little endian PowerPC64 architecture. */ +#undef POWERPC64LE + +/* Define for the RISC-V 64-bit architecture */ +#undef RISCV64 /* Define for the S390 architecture. */ #undef S390 @@ -1900,6 +3615,9 @@ /* The size of `struct i64_i32', as computed by sizeof. */ #undef SIZEOF_STRUCT_I64_I32 +/* The size of `struct msqid64_ds', as computed by sizeof. */ +#undef SIZEOF_STRUCT_MSQID64_DS + /* Define for the SPARC architecture. */ #undef SPARC diff --git a/configure b/configure index 7b378b92..5e0fea53 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for strace 5.1. +# Generated by GNU Autoconf 2.69 for strace 5.9. # # Report bugs to . # @@ -11,7 +11,7 @@ # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. # -# Copyright (c) 1999-2019 The strace developers. +# Copyright (c) 1999-2020 The strace developers. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## @@ -582,8 +582,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='strace' PACKAGE_TARNAME='strace' -PACKAGE_VERSION='5.1' -PACKAGE_STRING='strace 5.1' +PACKAGE_VERSION='5.9' +PACKAGE_STRING='strace 5.9' PACKAGE_BUGREPORT='strace-devel@lists.strace.io' PACKAGE_URL='https://strace.io' @@ -647,6 +647,14 @@ HAVE_M32_MPERS_FALSE HAVE_M32_MPERS_TRUE HAVE_M32_RUNTIME_FALSE HAVE_M32_RUNTIME_TRUE +CFLAGS_FOR_MX32 +CPPFLAGS_FOR_MX32 +CPP_FOR_MX32 +CC_FOR_MX32 +CFLAGS_FOR_M32 +CPPFLAGS_FOR_M32 +CPP_FOR_M32 +CC_FOR_M32 USE_DEMANGLE_FALSE USE_DEMANGLE_TRUE libiberty_CPPFLAGS @@ -666,13 +674,24 @@ libdw_LDFLAGS libdw_CFLAGS libdw_CPPFLAGS READELF -PERL mq_LIBS clock_LIBS timer_LIBS dl_LIBS SIZEOF_KERNEL_LONG_T SIZEOF_LONG +ac_ct_AR +AR +WARN_CFLAGS_FOR_BUILD +LDFLAGS_FOR_BUILD +CPPFLAGS_FOR_BUILD +CFLAGS_FOR_BUILD +BUILD_OBJEXT +BUILD_EXEEXT +CPP_FOR_BUILD +ac_ct_CC_FOR_BUILD +CC_FOR_BUILD +WARN_CFLAGS MIPS_ABI arch_native cc_flags_mx32 @@ -698,16 +717,6 @@ SED EGREP GREP RANLIB -WARN_CFLAGS_FOR_BUILD -LDFLAGS_FOR_BUILD -CPPFLAGS_FOR_BUILD -CFLAGS_FOR_BUILD -BUILD_OBJEXT -BUILD_EXEEXT -CPP_FOR_BUILD -ac_ct_CC_FOR_BUILD -CC_FOR_BUILD -WARN_CFLAGS CPP am__fastdepCC_FALSE am__fastdepCC_TRUE @@ -810,10 +819,10 @@ enable_option_checking enable_silent_rules enable_maintainer_mode enable_dependency_tracking -enable_gcc_Werror with_gcov enable_code_coverage enable_arm_oabi +enable_gcc_Werror enable_stacktrace with_libdw with_libunwind @@ -1374,7 +1383,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures strace 5.1 to adapt to many kinds of systems. +\`configure' configures strace 5.9 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1444,7 +1453,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of strace 5.1:";; + short | recursive ) echo "Configuration of strace 5.9:";; esac cat <<\_ACEOF @@ -1461,9 +1470,9 @@ Optional Features: do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build - --enable-gcc-Werror turn on gcc's -Werror option --enable-code-coverage Whether to enable code coverage support --enable-arm-oabi enable OABI support on ARM EABI + --enable-gcc-Werror turn on gcc's -Werror option --enable-stacktrace=yes|no|check whether to enable stack tracing support, default is check @@ -1567,14 +1576,14 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -strace configure 5.1 +strace configure 5.9 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. -Copyright (c) 1999-2019 The strace developers. +Copyright (c) 1999-2020 The strace developers. _ACEOF exit fi @@ -1658,52 +1667,6 @@ fi } # ac_fn_c_try_cpp -# ac_fn_c_try_link LINENO -# ----------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - test -x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_link - # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using @@ -2051,6 +2014,52 @@ rm -f conftest.val } # ac_fn_c_compute_int +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly @@ -2307,7 +2316,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by strace $as_me 5.1, which was +It was created by strace $as_me 5.9, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3178,7 +3187,7 @@ fi # Define the identity of the package. PACKAGE='strace' - VERSION='5.1' + VERSION='5.9' cat >>confdefs.h <<_ACEOF @@ -4840,134 +4849,242 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } else - gl_unknown_warnings_are_errors= + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wall" >&5 -$as_echo_n "checking whether $CC handles -Wall... " >&6; } -if ${gl_cv_warn_CFLAGS__Wall+:} false; then : +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wall" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wall=yes +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } else - gl_cv_warn_CFLAGS__Wall=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wall" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wall" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wall" = xyes; then : - as_fn_append WARN_CFLAGS " -Wall" + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" fi -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int -main () -{ +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no + ac_cv_path_GREP=$GREP fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 else - gl_unknown_warnings_are_errors= -fi + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + fi fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wempty-body" >&5 -$as_echo_n "checking whether $CC handles -Wempty-body... " >&6; } -if ${gl_cv_warn_CFLAGS__Wempty_body+:} false; then : + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wempty-body" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +#include +#include +#include +#include int main () @@ -4977,189 +5094,147 @@ main () return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wempty_body=yes +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes else - gl_cv_warn_CFLAGS__Wempty_body=no + ac_cv_header_stdc=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wempty_body" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wempty_body" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wempty_body" = xyes; then : - as_fn_append WARN_CFLAGS " -Wempty-body" -fi +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 else + ac_cv_header_stdc=no +fi +rm -f conftest* - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +#include -int -main () -{ - - ; - return 0; -} _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' else - gl_unknown_warnings_are_errors= + ac_cv_header_stdc=no fi - +rm -f conftest* fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wformat-security" >&5 -$as_echo_n "checking whether $CC handles -Wformat-security... " >&6; } -if ${gl_cv_warn_CFLAGS__Wformat_security+:} false; then : - $as_echo_n "(cached) " >&6 +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wformat-security" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { - - ; + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wformat_security=yes +if ac_fn_c_try_run "$LINENO"; then : + else - gl_cv_warn_CFLAGS__Wformat_security=no + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wformat_security" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wformat_security" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wformat_security" = xyes; then : - as_fn_append WARN_CFLAGS " -Wformat-security" fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then +$as_echo "#define STDC_HEADERS 1" >>confdefs.h -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ +fi - ; - return 0; -} +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' + +done + + + + ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" +if test "x$ac_cv_header_minix_config_h" = xyes; then : + MINIX=yes else - gl_unknown_warnings_are_errors= + MINIX= fi -fi + if test "$MINIX" = yes; then -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wignored-qualifiers" >&5 -$as_echo_n "checking whether $CC handles -Wignored-qualifiers... " >&6; } -if ${gl_cv_warn_CFLAGS__Wignored_qualifiers+:} false; then : - $as_echo_n "(cached) " >&6 -else +$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wignored-qualifiers" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int -main () -{ +$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wignored_qualifiers=yes -else - gl_cv_warn_CFLAGS__Wignored_qualifiers=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wignored_qualifiers" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wignored_qualifiers" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wignored_qualifiers" = xyes; then : - as_fn_append WARN_CFLAGS " -Wignored-qualifiers" -fi +$as_echo "#define _MINIX 1" >>confdefs.h + fi -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 +$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } +if ${ac_cv_safe_to_define___extensions__+:} false; then : $as_echo_n "(cached) " >&6 else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +# define __EXTENSIONS__ 1 + $ac_includes_default int main () { @@ -5168,885 +5243,823 @@ main () return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_safe_to_define___extensions__=yes else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - + ac_cv_safe_to_define___extensions__=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 +$as_echo "$ac_cv_safe_to_define___extensions__" >&6; } + test $ac_cv_safe_to_define___extensions__ = yes && + $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h + $as_echo "#define _ALL_SOURCE 1" >>confdefs.h -fi + $as_echo "#define _GNU_SOURCE 1" >>confdefs.h -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wimplicit-fallthrough=5" >&5 -$as_echo_n "checking whether $CC handles -Wimplicit-fallthrough=5... " >&6; } -if ${gl_cv_warn_CFLAGS__Wimplicit_fallthrough_5+:} false; then : - $as_echo_n "(cached) " >&6 -else + $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wimplicit-fallthrough=5" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h -int -main () -{ - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wimplicit_fallthrough_5=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 else - gl_cv_warn_CFLAGS__Wimplicit_fallthrough_5=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wimplicit_fallthrough_5" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wimplicit_fallthrough_5" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wimplicit_fallthrough_5" = xyes; then : - as_fn_append WARN_CFLAGS " -Wimplicit-fallthrough=5" + fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int -main () -{ + # allow to override gcov location - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes +# Check whether --with-gcov was given. +if test "${with_gcov+set}" = set; then : + withval=$with_gcov; _AX_CODE_COVERAGE_GCOV_PROG_WITH=$with_gcov else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no + _AX_CODE_COVERAGE_GCOV_PROG_WITH=gcov fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build with code coverage support" >&5 +$as_echo_n "checking whether to build with code coverage support... " >&6; } + # Check whether --enable-code-coverage was given. +if test "${enable_code_coverage+set}" = set; then : + enableval=$enable_code_coverage; else - gl_unknown_warnings_are_errors= + enable_code_coverage=no fi + if test x$enable_code_coverage = xyes; then + CODE_COVERAGE_ENABLED_TRUE= + CODE_COVERAGE_ENABLED_FALSE='#' +else + CODE_COVERAGE_ENABLED_TRUE='#' + CODE_COVERAGE_ENABLED_FALSE= fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Winit-self" >&5 -$as_echo_n "checking whether $CC handles -Winit-self... " >&6; } -if ${gl_cv_warn_CFLAGS__Winit_self+:} false; then : - $as_echo_n "(cached) " >&6 -else + CODE_COVERAGE_ENABLED=$enable_code_coverage - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Winit-self" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_code_coverage" >&5 +$as_echo "$enable_code_coverage" >&6; } -int -main () -{ + if test "$enable_code_coverage" = "yes" ; then : - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Winit_self=yes + # check for gcov + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}$_AX_CODE_COVERAGE_GCOV_PROG_WITH", so it can be a program name with args. +set dummy ${ac_tool_prefix}$_AX_CODE_COVERAGE_GCOV_PROG_WITH; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_GCOV+:} false; then : + $as_echo_n "(cached) " >&6 else - gl_cv_warn_CFLAGS__Winit_self=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" + if test -n "$GCOV"; then + ac_cv_prog_GCOV="$GCOV" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_GCOV="${ac_tool_prefix}$_AX_CODE_COVERAGE_GCOV_PROG_WITH" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Winit_self" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Winit_self" >&6; } -if test "x$gl_cv_warn_CFLAGS__Winit_self" = xyes; then : - as_fn_append WARN_CFLAGS " -Winit-self" +fi +GCOV=$ac_cv_prog_GCOV +if test -n "$GCOV"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GCOV" >&5 +$as_echo "$GCOV" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : +fi +if test -z "$ac_cv_prog_GCOV"; then + ac_ct_GCOV=$GCOV + # Extract the first word of "$_AX_CODE_COVERAGE_GCOV_PROG_WITH", so it can be a program name with args. +set dummy $_AX_CODE_COVERAGE_GCOV_PROG_WITH; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_GCOV+:} false; then : $as_echo_n "(cached) " >&6 else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes + if test -n "$ac_ct_GCOV"; then + ac_cv_prog_ac_ct_GCOV="$ac_ct_GCOV" # Let the user override the test. else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_GCOV="$_AX_CODE_COVERAGE_GCOV_PROG_WITH" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +fi +ac_ct_GCOV=$ac_cv_prog_ac_ct_GCOV +if test -n "$ac_ct_GCOV"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_GCOV" >&5 +$as_echo "$ac_ct_GCOV" >&6; } else - gl_unknown_warnings_are_errors= + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi - + if test "x$ac_ct_GCOV" = x; then + GCOV=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + GCOV=$ac_ct_GCOV + fi +else + GCOV="$ac_cv_prog_GCOV" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Winitializer-overrides" >&5 -$as_echo_n "checking whether $CC handles -Winitializer-overrides... " >&6; } -if ${gl_cv_warn_CFLAGS__Winitializer_overrides+:} false; then : - $as_echo_n "(cached) " >&6 -else + if test "X$GCOV" = "X:"; then : + as_fn_error $? "gcov is needed to do coverage" "$LINENO" 5 +fi - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Winitializer-overrides" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int -main () -{ + if test "$GCC" = "no" ; then : - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Winitializer_overrides=yes -else - gl_cv_warn_CFLAGS__Winitializer_overrides=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" + as_fn_error $? "not compiling with gcc, which is required for gcov code coverage" "$LINENO" 5 fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Winitializer_overrides" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Winitializer_overrides" >&6; } -if test "x$gl_cv_warn_CFLAGS__Winitializer_overrides" = xyes; then : - as_fn_append WARN_CFLAGS " -Winitializer-overrides" -fi - -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : + # Extract the first word of "lcov", so it can be a program name with args. +set dummy lcov; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LCOV+:} false; then : $as_echo_n "(cached) " >&6 else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes + if test -n "$LCOV"; then + ac_cv_prog_LCOV="$LCOV" # Let the user override the test. else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LCOV="lcov" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +fi +LCOV=$ac_cv_prog_LCOV +if test -n "$LCOV"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LCOV" >&5 +$as_echo "$LCOV" >&6; } else - gl_unknown_warnings_are_errors= + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wlogical-op" >&5 -$as_echo_n "checking whether $CC handles -Wlogical-op... " >&6; } -if ${gl_cv_warn_CFLAGS__Wlogical_op+:} false; then : + # Extract the first word of "genhtml", so it can be a program name with args. +set dummy genhtml; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_GENHTML+:} false; then : $as_echo_n "(cached) " >&6 else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wlogical-op" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wlogical_op=yes -else - gl_cv_warn_CFLAGS__Wlogical_op=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wlogical_op" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wlogical_op" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wlogical_op" = xyes; then : - as_fn_append WARN_CFLAGS " -Wlogical-op" -fi - - -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 + if test -n "$GENHTML"; then + ac_cv_prog_GENHTML="$GENHTML" # Let the user override the test. else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_GENHTML="genhtml" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +GENHTML=$ac_cv_prog_GENHTML +if test -n "$GENHTML"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GENHTML" >&5 +$as_echo "$GENHTML" >&6; } else - gl_unknown_warnings_are_errors= -fi - - + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wmissing-parameter-type" >&5 -$as_echo_n "checking whether $CC handles -Wmissing-parameter-type... " >&6; } -if ${gl_cv_warn_CFLAGS__Wmissing_parameter_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wmissing-parameter-type" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int -main () -{ + if test -z "$LCOV" ; then : - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wmissing_parameter_type=yes -else - gl_cv_warn_CFLAGS__Wmissing_parameter_type=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" + as_fn_error $? "To enable code coverage reporting you must have lcov installed" "$LINENO" 5 fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wmissing_parameter_type" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wmissing_parameter_type" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wmissing_parameter_type" = xyes; then : - as_fn_append WARN_CFLAGS " -Wmissing-parameter-type" -fi - -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ + if test -z "$GENHTML" ; then : - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" + as_fn_error $? "Could not find genhtml from the lcov package" "$LINENO" 5 fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi + CODE_COVERAGE_CPPFLAGS="-DENABLE_COVERAGE_GCOV -DNDEBUG" + CODE_COVERAGE_CFLAGS="-O0 -g -fprofile-arcs -ftest-coverage" + CODE_COVERAGE_CXXFLAGS="-O0 -g -fprofile-arcs -ftest-coverage" + CODE_COVERAGE_LIBS="-lgcov" + CODE_COVERAGE_LDFLAGS="$CODE_COVERAGE_LIBS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wnested-externs" >&5 -$as_echo_n "checking whether $CC handles -Wnested-externs... " >&6; } -if ${gl_cv_warn_CFLAGS__Wnested_externs+:} false; then : - $as_echo_n "(cached) " >&6 -else - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wnested-externs" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int -main () -{ - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wnested_externs=yes -else - gl_cv_warn_CFLAGS__Wnested_externs=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wnested_externs" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wnested_externs" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wnested_externs" = xyes; then : - as_fn_append WARN_CFLAGS " -Wnested-externs" -fi + CODE_COVERAGE_RULES_CHECK=' + -$(A''M_V_at)$(MAKE) $(AM_MAKEFLAGS) -k check + $(A''M_V_at)$(MAKE) $(AM_MAKEFLAGS) code-coverage-capture +' + CODE_COVERAGE_RULES_CAPTURE=' + $(code_coverage_v_lcov_cap)$(LCOV) $(code_coverage_quiet) $(addprefix --directory ,$(CODE_COVERAGE_DIRECTORY)) --capture --output-file "$(CODE_COVERAGE_OUTPUT_FILE).tmp" --test-name "$(call code_coverage_sanitize,$(PACKAGE_NAME)-$(PACKAGE_VERSION))" --no-checksum --compat-libtool $(CODE_COVERAGE_LCOV_SHOPTS) $(CODE_COVERAGE_LCOV_OPTIONS) + $(code_coverage_v_lcov_ign)$(LCOV) $(code_coverage_quiet) $(addprefix --directory ,$(CODE_COVERAGE_DIRECTORY)) --remove "$(CODE_COVERAGE_OUTPUT_FILE).tmp" "/tmp/*" $(CODE_COVERAGE_IGNORE_PATTERN) --output-file "$(CODE_COVERAGE_OUTPUT_FILE)" $(CODE_COVERAGE_LCOV_SHOPTS) $(CODE_COVERAGE_LCOV_RMOPTS) + -@rm -f $(CODE_COVERAGE_OUTPUT_FILE).tmp + $(code_coverage_v_genhtml)LANG=C $(GENHTML) $(code_coverage_quiet) $(addprefix --prefix ,$(CODE_COVERAGE_DIRECTORY)) --output-directory "$(CODE_COVERAGE_OUTPUT_DIRECTORY)" --title "$(PACKAGE_NAME)-$(PACKAGE_VERSION) Code Coverage" --legend --show-details "$(CODE_COVERAGE_OUTPUT_FILE)" $(CODE_COVERAGE_GENHTML_OPTIONS) + @echo "file://$(abs_builddir)/$(CODE_COVERAGE_OUTPUT_DIRECTORY)/index.html" +' + CODE_COVERAGE_RULES_CLEAN=' +clean: code-coverage-clean +distclean: code-coverage-clean +code-coverage-clean: + -$(LCOV) --directory $(top_builddir) -z + -rm -rf $(CODE_COVERAGE_OUTPUT_FILE) $(CODE_COVERAGE_OUTPUT_FILE).tmp $(CODE_COVERAGE_OUTPUT_DIRECTORY) + -find . \( -name "*.gcda" -o -name "*.gcno" -o -name "*.gcov" \) -delete +' -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 else - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ + CODE_COVERAGE_RULES_CHECK=' + @echo "Need to reconfigure with --enable-code-coverage" +' + CODE_COVERAGE_RULES_CAPTURE="$CODE_COVERAGE_RULES_CHECK" + CODE_COVERAGE_RULES_CLEAN='' - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi +CODE_COVERAGE_RULES=' +# Code coverage +# +# Optional: +# - CODE_COVERAGE_DIRECTORY: Top-level directory for code coverage reporting. +# Multiple directories may be specified, separated by whitespace. +# (Default: $(top_builddir)) +# - CODE_COVERAGE_OUTPUT_FILE: Filename and path for the .info file generated +# by lcov for code coverage. (Default: +# $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage.info) +# - CODE_COVERAGE_OUTPUT_DIRECTORY: Directory for generated code coverage +# reports to be created. (Default: +# $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage) +# - CODE_COVERAGE_BRANCH_COVERAGE: Set to 1 to enforce branch coverage, +# set to 0 to disable it and leave empty to stay with the default. +# (Default: empty) +# - CODE_COVERAGE_LCOV_SHOPTS_DEFAULT: Extra options shared between both lcov +# instances. (Default: based on $CODE_COVERAGE_BRANCH_COVERAGE) +# - CODE_COVERAGE_LCOV_SHOPTS: Extra options to shared between both lcov +# instances. (Default: $CODE_COVERAGE_LCOV_SHOPTS_DEFAULT) +# - CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH: --gcov-tool pathtogcov +# - CODE_COVERAGE_LCOV_OPTIONS_DEFAULT: Extra options to pass to the +# collecting lcov instance. (Default: $CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH) +# - CODE_COVERAGE_LCOV_OPTIONS: Extra options to pass to the collecting lcov +# instance. (Default: $CODE_COVERAGE_LCOV_OPTIONS_DEFAULT) +# - CODE_COVERAGE_LCOV_RMOPTS_DEFAULT: Extra options to pass to the filtering +# lcov instance. (Default: empty) +# - CODE_COVERAGE_LCOV_RMOPTS: Extra options to pass to the filtering lcov +# instance. (Default: $CODE_COVERAGE_LCOV_RMOPTS_DEFAULT) +# - CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT: Extra options to pass to the +# genhtml instance. (Default: based on $CODE_COVERAGE_BRANCH_COVERAGE) +# - CODE_COVERAGE_GENHTML_OPTIONS: Extra options to pass to the genhtml +# instance. (Default: $CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT) +# - CODE_COVERAGE_IGNORE_PATTERN: Extra glob pattern of files to ignore +# +# The generated report will be titled using the $(PACKAGE_NAME) and +# $(PACKAGE_VERSION). In order to add the current git hash to the title, +# use the git-version-gen script, available online. +# Optional variables +CODE_COVERAGE_DIRECTORY ?= $(top_builddir) +CODE_COVERAGE_OUTPUT_FILE ?= $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage.info +CODE_COVERAGE_OUTPUT_DIRECTORY ?= $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage +CODE_COVERAGE_BRANCH_COVERAGE ?= +CODE_COVERAGE_LCOV_SHOPTS_DEFAULT ?= $(if $(CODE_COVERAGE_BRANCH_COVERAGE),\ +--rc lcov_branch_coverage=$(CODE_COVERAGE_BRANCH_COVERAGE)) +CODE_COVERAGE_LCOV_SHOPTS ?= $(CODE_COVERAGE_LCOV_SHOPTS_DEFAULT) +CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH ?= --gcov-tool "$(GCOV)" +CODE_COVERAGE_LCOV_OPTIONS_DEFAULT ?= $(CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH) +CODE_COVERAGE_LCOV_OPTIONS ?= $(CODE_COVERAGE_LCOV_OPTIONS_DEFAULT) +CODE_COVERAGE_LCOV_RMOPTS_DEFAULT ?= +CODE_COVERAGE_LCOV_RMOPTS ?= $(CODE_COVERAGE_LCOV_RMOPTS_DEFAULT) +CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT ?=\ +$(if $(CODE_COVERAGE_BRANCH_COVERAGE),\ +--rc genhtml_branch_coverage=$(CODE_COVERAGE_BRANCH_COVERAGE)) +CODE_COVERAGE_GENHTML_OPTIONS ?= $(CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT) +CODE_COVERAGE_IGNORE_PATTERN ?= -fi +code_coverage_v_lcov_cap = $(code_coverage_v_lcov_cap_$(V)) +code_coverage_v_lcov_cap_ = $(code_coverage_v_lcov_cap_$(AM_DEFAULT_VERBOSITY)) +code_coverage_v_lcov_cap_0 = @echo " LCOV --capture"\ + $(CODE_COVERAGE_OUTPUT_FILE); +code_coverage_v_lcov_ign = $(code_coverage_v_lcov_ign_$(V)) +code_coverage_v_lcov_ign_ = $(code_coverage_v_lcov_ign_$(AM_DEFAULT_VERBOSITY)) +code_coverage_v_lcov_ign_0 = @echo " LCOV --remove /tmp/*"\ + $(CODE_COVERAGE_IGNORE_PATTERN); +code_coverage_v_genhtml = $(code_coverage_v_genhtml_$(V)) +code_coverage_v_genhtml_ = $(code_coverage_v_genhtml_$(AM_DEFAULT_VERBOSITY)) +code_coverage_v_genhtml_0 = @echo " GEN " $(CODE_COVERAGE_OUTPUT_DIRECTORY); +code_coverage_quiet = $(code_coverage_quiet_$(V)) +code_coverage_quiet_ = $(code_coverage_quiet_$(AM_DEFAULT_VERBOSITY)) +code_coverage_quiet_0 = --quiet -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wold-style-declaration" >&5 -$as_echo_n "checking whether $CC handles -Wold-style-declaration... " >&6; } -if ${gl_cv_warn_CFLAGS__Wold_style_declaration+:} false; then : +# sanitizes the test-name: replaces with underscores: dashes and dots +code_coverage_sanitize = $(subst -,_,$(subst .,_,$(1))) + +# Use recursive makes in order to ignore errors during check +check-code-coverage:'"$CODE_COVERAGE_RULES_CHECK"' + +# Capture code coverage data +code-coverage-capture: code-coverage-capture-hook'"$CODE_COVERAGE_RULES_CAPTURE"' + +# Hook rule executed before code-coverage-capture, overridable by the user +code-coverage-capture-hook: + +'"$CODE_COVERAGE_RULES_CLEAN"' + +GITIGNOREFILES ?= +GITIGNOREFILES += $(CODE_COVERAGE_OUTPUT_FILE) $(CODE_COVERAGE_OUTPUT_DIRECTORY) + +A''M_DISTCHECK_CONFIGURE_FLAGS ?= +A''M_DISTCHECK_CONFIGURE_FLAGS += --disable-code-coverage + +.PHONY: check-code-coverage code-coverage-capture code-coverage-capture-hook code-coverage-clean +' + + + + + + +$as_echo "#define COPYRIGHT_YEAR \"2020\"" >>confdefs.h + +COPYRIGHT_YEAR=2020 + + + +$as_echo "#define MANPAGE_DATE \"2020-09-23\"" >>confdefs.h + +MANPAGE_DATE=2020-09-23 + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +$as_echo_n "checking whether byte ordering is bigendian... " >&6; } +if ${ac_cv_c_bigendian+:} false; then : $as_echo_n "(cached) " >&6 else + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wold-style-declaration" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +#include + #include int main () { +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wold_style_declaration=yes -else - gl_cv_warn_CFLAGS__Wold_style_declaration=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wold_style_declaration" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wold_style_declaration" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wold_style_declaration" = xyes; then : - as_fn_append WARN_CFLAGS " -Wold-style-declaration" -fi - - -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +#include + #include int main () { +#if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes else - gl_unknown_warnings_are_errors= + ac_cv_c_bigendian=no fi - - +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wold-style-definition" >&5 -$as_echo_n "checking whether $CC handles -Wold-style-definition... " >&6; } -if ${gl_cv_warn_CFLAGS__Wold_style_definition+:} false; then : - $as_echo_n "(cached) " >&6 -else +int +main () +{ +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wold-style-definition" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +#include int main () { +#ifndef _BIG_ENDIAN + not big endian + #endif ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wold_style_definition=yes +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes else - gl_cv_warn_CFLAGS__Wold_style_definition=no + ac_cv_c_bigendian=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wold_style_definition" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wold_style_definition" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wold_style_definition" = xyes; then : - as_fn_append WARN_CFLAGS " -Wold-style-definition" +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi - - -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes; then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +unsigned short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + unsigned short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + unsigned short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + unsigned short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; int main () { - +return use_ascii (foo) == use_ebcdic (foo); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi - - +if ac_fn_c_try_compile "$LINENO"; then : + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Woverride-init" >&5 -$as_echo_n "checking whether $CC handles -Woverride-init... " >&6; } -if ${gl_cv_warn_CFLAGS__Woverride_init+:} false; then : - $as_echo_n "(cached) " >&6 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Woverride-init" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - +$ac_includes_default int main () { + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Woverride_init=yes +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_c_bigendian=no else - gl_cv_warn_CFLAGS__Woverride_init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - + ac_cv_c_bigendian=yes fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Woverride_init" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Woverride_init" >&6; } -if test "x$gl_cv_warn_CFLAGS__Woverride_init" = xyes; then : - as_fn_append WARN_CFLAGS " -Woverride-init" +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +$as_echo "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( + yes) + $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h +;; #( + no) + ;; #( + universal) -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else +$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + ;; #( + *) + as_fn_error $? "unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + esac -int -main () -{ - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" +arch_enable_Werror=yes -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for supported architecture" >&5 +$as_echo_n "checking for supported architecture... " >&6; } +arch_m32= +arch_mx32= +cc_flags_m32=-m32 +cc_flags_mx32=-mx32 +case "$host_cpu" in +aarch64*) + arch=aarch64 + arch_m32=arm + cc_flags_m32= +$as_echo "#define AARCH64 1" >>confdefs.h -fi + ;; +alpha*) + arch=alpha + arch_enable_Werror=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wsign-compare" >&5 -$as_echo_n "checking whether $CC handles -Wsign-compare... " >&6; } -if ${gl_cv_warn_CFLAGS__Wsign_compare+:} false; then : - $as_echo_n "(cached) " >&6 -else +$as_echo "#define ALPHA 1" >>confdefs.h - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wsign-compare" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + ;; +arc*) + arch=arc -int -main () -{ +$as_echo "#define ARC 1" >>confdefs.h - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wsign_compare=yes -else - gl_cv_warn_CFLAGS__Wsign_compare=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" + ;; +arm*) + arch=arm -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wsign_compare" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wsign_compare" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wsign_compare" = xyes; then : - as_fn_append WARN_CFLAGS " -Wsign-compare" -fi +$as_echo "#define ARM 1" >>confdefs.h + ;; +avr32*) + arch=avr32 -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else +$as_echo "#define AVR32 1" >>confdefs.h - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + ;; +bfin) + arch=bfin + arch_enable_Werror=no -int -main () -{ +$as_echo "#define BFIN 1" >>confdefs.h - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" + ;; +csky*) + arch=csky -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi +$as_echo "#define CSKY 1" >>confdefs.h + ;; +hppa*|parisc*) + arch=hppa -fi +$as_echo "#define HPPA 1" >>confdefs.h -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wtype-limits" >&5 -$as_echo_n "checking whether $CC handles -Wtype-limits... " >&6; } -if ${gl_cv_warn_CFLAGS__Wtype_limits+:} false; then : - $as_echo_n "(cached) " >&6 -else + ;; +i[3456]86|pentium) + arch=i386 - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wtype-limits" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +$as_echo "#define I386 1" >>confdefs.h -int -main () -{ + ;; +ia64) + arch=ia64 - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wtype_limits=yes -else - gl_cv_warn_CFLAGS__Wtype_limits=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" +$as_echo "#define IA64 1" >>confdefs.h -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wtype_limits" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wtype_limits" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wtype_limits" = xyes; then : - as_fn_append WARN_CFLAGS " -Wtype-limits" -fi + ;; +m68k) + arch=m68k +$as_echo "#define M68K 1" >>confdefs.h -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else + ;; +metag*) + arch=metag - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +$as_echo "#define METAG 1" >>confdefs.h -int -main () -{ + ;; +microblaze*) + arch=microblaze + arch_enable_Werror=no - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" +$as_echo "#define MICROBLAZE 1" >>confdefs.h -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi + ;; +mips*) + arch=mips +$as_echo "#define MIPS 1" >>confdefs.h -fi + ;; +nios2*) + arch=nios2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wwrite-strings" >&5 -$as_echo_n "checking whether $CC handles -Wwrite-strings... " >&6; } -if ${gl_cv_warn_CFLAGS__Wwrite_strings+:} false; then : - $as_echo_n "(cached) " >&6 -else +$as_echo "#define NIOS2 1" >>confdefs.h - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wwrite-strings" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + ;; +or1k*) + arch=or1k + +$as_echo "#define OR1K 1" >>confdefs.h + + ;; +powerpc*) + +$as_echo "#define POWERPC 1" >>confdefs.h + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __LP64__ +# error 32 bit +#endif int main () { @@ -6055,78 +6068,88 @@ main () return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wwrite_strings=yes +if ac_fn_c_try_compile "$LINENO"; then : + arch=powerpc64 else - gl_cv_warn_CFLAGS__Wwrite_strings=no + arch=powerpc fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test "$arch" = "powerpc64"; then + # $ac_cv_c_bigendian is defined by AC_C_BIGENDIAN + case "$ac_cv_c_bigendian" in + no) + arch=powerpc64le -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wwrite_strings" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wwrite_strings" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wwrite_strings" = xyes; then : - as_fn_append WARN_CFLAGS " -Wwrite-strings" -fi +$as_echo "#define POWERPC64LE 1" >>confdefs.h + ;; + *) + arch_m32=powerpc -# Check whether --enable-gcc-Werror was given. -if test "${enable_gcc_Werror+set}" = set; then : - enableval=$enable_gcc_Werror; case $enableval in - yes) if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else +$as_echo "#define POWERPC64 1" >>confdefs.h - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + ;; + esac + fi + ;; +riscv64*) + arch=riscv64 -int -main () -{ +$as_echo "#define RISCV64 1" >>confdefs.h - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" + ;; +s390) + arch=s390 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi +$as_echo "#define S390 1" >>confdefs.h + ;; +s390x) + arch=s390x + arch_m32=s390 + cc_flags_m32=-m31 -fi +$as_echo "#define S390X 1" >>confdefs.h -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror" >&5 -$as_echo_n "checking whether $CC handles -Werror... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror+:} false; then : - $as_echo_n "(cached) " >&6 -else + ;; +sh64*) + arch=sh64 - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +$as_echo "#define SH64 1" >>confdefs.h + + ;; +sh*) + arch=sh + +$as_echo "#define SH 1" >>confdefs.h + + ;; +sparc64*) + arch=sparc64 + arch_m32=sparc + +$as_echo "#define SPARC64 1" >>confdefs.h + + ;; +sparc*) + arch=sparc + +$as_echo "#define SPARC 1" >>confdefs.h + + ;; +tile*) + arch=tile + +$as_echo "#define TILE 1" >>confdefs.h + ;; +x86?64*) + arch_m32=i386 + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __ILP32__ +# error not x32 +#endif int main () { @@ -6135,457 +6158,497 @@ main () return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror=yes +if ac_fn_c_try_compile "$LINENO"; then : + arch=x32 else - gl_cv_warn_CFLAGS__Werror=no + arch=x86_64 fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test "$arch" = "x86_64"; then + arch_mx32=x32 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror" = xyes; then : - as_fn_append WARN_CFLAGS " -Werror" -fi +$as_echo "#define X86_64 1" >>confdefs.h - ;; - no) ;; - *) as_fn_error $? "bad value $enableval for gcc-Werror option" "$LINENO" 5 ;; - esac + else -fi +$as_echo "#define X32 1" >>confdefs.h + fi + ;; +xtensa*) + arch=xtensa +$as_echo "#define XTENSA 1" >>confdefs.h + ;; +*) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: NO!" >&5 +$as_echo "NO!" >&6; } + as_fn_error $? "architecture $host_cpu is not supported by strace" "$LINENO" 5 + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $arch" >&5 +$as_echo "$arch" >&6; } +arch_native=$arch +test -n "$arch_m32" || + arch_m32=$arch +test -n "$arch_mx32" || + arch_mx32=$arch -if test -n "${ac_c_decl_warn_flag+set}"; then : - st_saved_ac_c_decl_warn_flag="${ac_c_decl_warn_flag}"; unset ac_c_decl_warn_flag -fi -if test -n "${ac_c_preproc_warn_flag+set}"; then : - st_saved_ac_c_preproc_warn_flag="${ac_c_preproc_warn_flag}"; unset ac_c_preproc_warn_flag -fi -if test -n "${ac_c_werror_flag+set}"; then : - st_saved_ac_c_werror_flag="${ac_c_werror_flag}"; unset ac_c_werror_flag -fi -if test -n "${ac_compile+set}"; then : - st_saved_ac_compile="${ac_compile}"; unset ac_compile -fi -if test -n "${ac_compiler_gnu+set}"; then : - st_saved_ac_compiler_gnu="${ac_compiler_gnu}"; unset ac_compiler_gnu -fi -if test -n "${ac_cpp+set}"; then : - st_saved_ac_cpp="${ac_cpp}"; unset ac_cpp -fi -if test -n "${ac_cv_c_compiler_gnu+set}"; then : - st_saved_ac_cv_c_compiler_gnu="${ac_cv_c_compiler_gnu}"; unset ac_cv_c_compiler_gnu +MIPS_ABI= +if test "$arch" = mips; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _MIPS_SIM" >&5 +$as_echo_n "checking for _MIPS_SIM... " >&6; } +if ${st_cv__MIPS_SIM+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "_MIPS_SIM" "st_cv__MIPS_SIM" ""; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "_MIPS_SIM cannot be determined +See \`config.log' for more details" "$LINENO" 5; } fi -if test -n "${ac_cv_c_decl_report+set}"; then : - st_saved_ac_cv_c_decl_report="${ac_cv_c_decl_report}"; unset ac_cv_c_decl_report fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $st_cv__MIPS_SIM" >&5 +$as_echo "$st_cv__MIPS_SIM" >&6; } -if test -n "${ac_link+set}"; then : - st_saved_ac_link="${ac_link}"; unset ac_link + # requires GCC >= 3.4 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MIPS ABI" >&5 +$as_echo_n "checking for MIPS ABI... " >&6; } +if ${st_cv_mips_abi+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +int i[_MIPS_SIM == _ABIO32 ? 1 : - 1]; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + st_cv_mips_abi=o32 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +int i[_MIPS_SIM == _ABIN32 ? 1 : - 1]; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + st_cv_mips_abi=n32 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +int i[_MIPS_SIM == _ABI64 ? 1 : - 1]; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + st_cv_mips_abi=n64 +else + st_cv_mips_abi=unknown +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $st_cv_mips_abi" >&5 +$as_echo "$st_cv_mips_abi" >&6; } -if test -n "${ac_tool_prefix+set}"; then : - st_saved_ac_tool_prefix="${ac_tool_prefix}"; unset ac_tool_prefix + case "$st_cv_mips_abi" in + o32) +$as_echo "#define LINUX_MIPSO32 1" >>confdefs.h +;; + n32) +$as_echo "#define LINUX_MIPSN32 1" >>confdefs.h +;; + n64) +$as_echo "#define LINUX_MIPSN64 1" >>confdefs.h +;; + *) as_fn_error $? "Unsupported _MIPS_SIM" "$LINENO" 5;; + esac + MIPS_ABI="$st_cv_mips_abi" fi -if test -n "${cross_compiling+set}"; then : - st_saved_cross_compiling="${cross_compiling}"; unset cross_compiling + +# Check whether --enable-arm-oabi was given. +if test "${enable_arm_oabi+set}" = set; then : + enableval=$enable_arm_oabi; +else + enable_arm_oabi=no fi -cross_compiling=no +case "$enable_arm_oabi" in + yes) enable_arm_oabi=1 ;; + no) enable_arm_oabi=0 ;; + *) as_fn_error $? "bad value $enable_arm_oabi for arm-oabi option" "$LINENO" 5 ;; +esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: looking for a C compiler that generates native executables" >&5 -$as_echo "$as_me: looking for a C compiler that generates native executables" >&6;} -ac_ext=c -ac_cpp='$CPP_FOR_BUILD $CPPFLAGS_FOR_BUILD' -ac_compile='$CC_FOR_BUILD -c $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD conftest.$ac_ext >&5' -ac_link='$CC_FOR_BUILD -o conftest$ac_build_exeext $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD $LDFLAGS_FOR_BUILD conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC_FOR_BUILD+:} false; then : +cat >>confdefs.h <<_ACEOF +#define ENABLE_ARM_OABI $enable_arm_oabi +_ACEOF + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC is fresh enough for -Werror" >&5 +$as_echo_n "checking whether $CC is fresh enough for -Werror... " >&6; } +if ${st_cv_cc_enable_Werror+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$CC_FOR_BUILD"; then - ac_cv_prog_CC_FOR_BUILD="$CC_FOR_BUILD" # Let the user override the test. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#if defined __GNUC__ && defined __GNUC_MINOR__ +# define GNUC_PREREQ(maj, min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) +#else +# define GNUC_PREREQ(maj, min) 0 +#endif + +#if defined __clang__ && defined __clang_major__ && defined __clang_minor__ +# define CLANG_PREREQ(maj, min) ((__clang_major__ << 16) + __clang_minor__ >= ((maj) << 16) + (min)) +#else +# define CLANG_PREREQ(maj, min) 0 +#endif + +int +main () +{ +int i[GNUC_PREREQ(4, 8) + CLANG_PREREQ(6, 0) > 0 ? 1 : - 1]; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + st_cv_cc_enable_Werror=yes else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC_FOR_BUILD="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS + st_cv_cc_enable_Werror=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $st_cv_cc_enable_Werror" >&5 +$as_echo "$st_cv_cc_enable_Werror" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to try $CC with -Werror by default" >&5 +$as_echo_n "checking whether to try $CC with -Werror by default... " >&6; } +if ${st_cv_enable_Werror+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$st_cv_cc_enable_Werror" != yes; then + st_cv_enable_Werror='no, the compiler is too old' + elif test "$arch_enable_Werror" != yes; then + st_cv_enable_Werror='no, architecture is not ready' + else + st_cv_enable_Werror=yes + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $st_cv_enable_Werror" >&5 +$as_echo "$st_cv_enable_Werror" >&6; } +if test x${gl_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" + fi -CC_FOR_BUILD=$ac_cv_prog_CC_FOR_BUILD -if test -n "$CC_FOR_BUILD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC_FOR_BUILD" >&5 -$as_echo "$CC_FOR_BUILD" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : + gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + gl_unknown_warnings_are_errors= fi fi -if test -z "$ac_cv_prog_CC_FOR_BUILD"; then - ac_ct_CC_FOR_BUILD=$CC_FOR_BUILD - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC_FOR_BUILD+:} false; then : + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wall" >&5 +$as_echo_n "checking whether $CC handles -Wall... " >&6; } +if ${gl_cv_warn_CFLAGS__Wall+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$ac_ct_CC_FOR_BUILD"; then - ac_cv_prog_ac_ct_CC_FOR_BUILD="$ac_ct_CC_FOR_BUILD" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC_FOR_BUILD="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS -fi -fi -ac_ct_CC_FOR_BUILD=$ac_cv_prog_ac_ct_CC_FOR_BUILD -if test -n "$ac_ct_CC_FOR_BUILD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC_FOR_BUILD" >&5 -$as_echo "$ac_ct_CC_FOR_BUILD" >&6; } + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wall" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Wall=yes else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + gl_cv_warn_CFLAGS__Wall=no fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" - if test "x$ac_ct_CC_FOR_BUILD" = x; then - CC_FOR_BUILD="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with build triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with build triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC_FOR_BUILD=$ac_ct_CC_FOR_BUILD - fi -else - CC_FOR_BUILD="$ac_cv_prog_CC_FOR_BUILD" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wall" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Wall" >&6; } +if test "x$gl_cv_warn_CFLAGS__Wall" = xyes; then : + as_fn_append WARN_CFLAGS " -Wall" fi -if test -z "$CC_FOR_BUILD"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC_FOR_BUILD+:} false; then : + +if test x${gl_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$CC_FOR_BUILD"; then - ac_cv_prog_CC_FOR_BUILD="$CC_FOR_BUILD" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC_FOR_BUILD="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" + fi -CC_FOR_BUILD=$ac_cv_prog_CC_FOR_BUILD -if test -n "$CC_FOR_BUILD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC_FOR_BUILD" >&5 -$as_echo "$CC_FOR_BUILD" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : + gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + gl_unknown_warnings_are_errors= fi - fi fi -if test -z "$CC_FOR_BUILD"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC_FOR_BUILD+:} false; then : + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wempty-body" >&5 +$as_echo_n "checking whether $CC handles -Wempty-body... " >&6; } +if ${gl_cv_warn_CFLAGS__Wempty_body+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$CC_FOR_BUILD"; then - ac_cv_prog_CC_FOR_BUILD="$CC_FOR_BUILD" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC_FOR_BUILD="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC_FOR_BUILD - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC_FOR_BUILD to just the basename; use the full file name. - shift - ac_cv_prog_CC_FOR_BUILD="$as_dir/$ac_word${1+' '}$@" - fi -fi + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wempty-body" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Wempty_body=yes +else + gl_cv_warn_CFLAGS__Wempty_body=no fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" + fi -CC_FOR_BUILD=$ac_cv_prog_CC_FOR_BUILD -if test -n "$CC_FOR_BUILD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC_FOR_BUILD" >&5 -$as_echo "$CC_FOR_BUILD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wempty_body" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Wempty_body" >&6; } +if test "x$gl_cv_warn_CFLAGS__Wempty_body" = xyes; then : + as_fn_append WARN_CFLAGS " -Wempty-body" fi -fi -if test -z "$CC_FOR_BUILD"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC_FOR_BUILD+:} false; then : +if test x${gl_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$CC_FOR_BUILD"; then - ac_cv_prog_CC_FOR_BUILD="$CC_FOR_BUILD" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC_FOR_BUILD="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS -fi -fi -CC_FOR_BUILD=$ac_cv_prog_CC_FOR_BUILD -if test -n "$CC_FOR_BUILD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC_FOR_BUILD" >&5 -$as_echo "$CC_FOR_BUILD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int +main () +{ - test -n "$CC_FOR_BUILD" && break - done + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no fi -if test -z "$CC_FOR_BUILD"; then - ac_ct_CC_FOR_BUILD=$CC_FOR_BUILD - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC_FOR_BUILD+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC_FOR_BUILD"; then - ac_cv_prog_ac_ct_CC_FOR_BUILD="$ac_ct_CC_FOR_BUILD" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC_FOR_BUILD="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" fi -fi -ac_ct_CC_FOR_BUILD=$ac_cv_prog_ac_ct_CC_FOR_BUILD -if test -n "$ac_ct_CC_FOR_BUILD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC_FOR_BUILD" >&5 -$as_echo "$ac_ct_CC_FOR_BUILD" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : + gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + gl_unknown_warnings_are_errors= fi - test -n "$ac_ct_CC_FOR_BUILD" && break -done - - if test "x$ac_ct_CC_FOR_BUILD" = x; then - CC_FOR_BUILD="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with build triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with build triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC_FOR_BUILD=$ac_ct_CC_FOR_BUILD - fi fi -fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wformat-security" >&5 +$as_echo_n "checking whether $CC handles -Wformat-security... " >&6; } +if ${gl_cv_warn_CFLAGS__Wformat_security+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wformat-security" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int +main () +{ -test -z "$CC_FOR_BUILD" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Wformat_security=yes +else + gl_cv_warn_CFLAGS__Wformat_security=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wformat_security" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Wformat_security" >&6; } +if test "x$gl_cv_warn_CFLAGS__Wformat_security" = xyes; then : + as_fn_append WARN_CFLAGS " -Wformat-security" +fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : + +if test x${gl_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : $as_echo_n "(cached) " >&6 else + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { -#ifndef __GNUC__ - choke me -#endif ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes else - ac_compiler_gnu=no + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no fi -rm -f core conftest.err conftest.$ac_build_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : + gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' else - GCC= + gl_unknown_warnings_are_errors= fi -ac_test_CFLAGS=${CFLAGS_FOR_BUILD+set} -ac_save_CFLAGS=$CFLAGS_FOR_BUILD -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD accepts -g" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD accepts -g... " >&6; } -if ${ac_cv_build_prog_cc_g+:} false; then : + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wignored-qualifiers" >&5 +$as_echo_n "checking whether $CC handles -Wignored-qualifiers... " >&6; } +if ${gl_cv_warn_CFLAGS__Wignored_qualifiers+:} false; then : $as_echo_n "(cached) " >&6 else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_build_prog_cc_g=no - CFLAGS_FOR_BUILD="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wignored-qualifiers" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -6596,11 +6659,33 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_build_prog_cc_g=yes +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Wignored_qualifiers=yes else - CFLAGS_FOR_BUILD="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + gl_cv_warn_CFLAGS__Wignored_qualifiers=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wignored_qualifiers" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Wignored_qualifiers" >&6; } +if test "x$gl_cv_warn_CFLAGS__Wignored_qualifiers" = xyes; then : + as_fn_append WARN_CFLAGS " -Wignored-qualifiers" +fi + + +if test x${gl_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -6611,12 +6696,36 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : + gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS_FOR_BUILD="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + gl_unknown_warnings_are_errors= +fi + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wimplicit-fallthrough=5" >&5 +$as_echo_n "checking whether $CC handles -Wimplicit-fallthrough=5... " >&6; } +if ${gl_cv_warn_CFLAGS__Wimplicit_fallthrough_5+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wimplicit-fallthrough=5" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -6627,139 +6736,109 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_build_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_build_objext conftest.$ac_ext +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Wimplicit_fallthrough_5=yes +else + gl_cv_warn_CFLAGS__Wimplicit_fallthrough_5=no fi -rm -f core conftest.err conftest.$ac_build_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" + fi -rm -f core conftest.err conftest.$ac_build_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wimplicit_fallthrough_5" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Wimplicit_fallthrough_5" >&6; } +if test "x$gl_cv_warn_CFLAGS__Wimplicit_fallthrough_5" = xyes; then : + as_fn_append WARN_CFLAGS " -Wimplicit-fallthrough=5" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build_prog_cc_g" >&5 -$as_echo "$ac_cv_build_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS_FOR_BUILD=$ac_save_CFLAGS -elif test $ac_cv_build_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS_FOR_BUILD="-g -O2" - else - CFLAGS_FOR_BUILD="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS_FOR_BUILD="-O2" - else - CFLAGS_FOR_BUILD= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC_FOR_BUILD option to accept ISO C89" >&5 -$as_echo_n "checking for $CC_FOR_BUILD option to accept ISO C89... " >&6; } -if ${ac_cv_build_prog_cc_c89+:} false; then : + + +if test x${gl_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : $as_echo_n "(cached) " >&6 else - ac_cv_build_prog_cc_c89=no -ac_save_CC=$CC_FOR_BUILD -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) + +int +main () { - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; + + ; + return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : + gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +else + gl_unknown_warnings_are_errors= +fi -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Winit-self" >&5 +$as_echo_n "checking whether $CC handles -Winit-self... " >&6; } +if ${gl_cv_warn_CFLAGS__Winit_self+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Winit-self" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + int main () { -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; return 0; } _ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC_FOR_BUILD="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_build_prog_cc_c89=$ac_arg +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Winit_self=yes +else + gl_cv_warn_CFLAGS__Winit_self=no fi -rm -f core conftest.err conftest.$ac_build_objext - test "x$ac_cv_build_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC_FOR_BUILD=$ac_save_CC +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" fi -# AC_CACHE_VAL -case "x$ac_cv_build_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC_FOR_BUILD="$CC_FOR_BUILD $ac_cv_build_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build_prog_cc_c89" >&5 -$as_echo "$ac_cv_build_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_build_prog_cc_c89" != xno; then : - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Winit_self" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Winit_self" >&6; } +if test "x$gl_cv_warn_CFLAGS__Winit_self" = xyes; then : + as_fn_append WARN_CFLAGS " -Winit-self" fi -ac_ext=c -ac_cpp='$CPP_FOR_BUILD $CPPFLAGS_FOR_BUILD' -ac_compile='$CC_FOR_BUILD -c $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD conftest.$ac_ext >&5' -ac_link='$CC_FOR_BUILD -o conftest$ac_build_exeext $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD $LDFLAGS_FOR_BUILD conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -ac_ext=c -ac_cpp='$CPP_FOR_BUILD $CPPFLAGS_FOR_BUILD' -ac_compile='$CC_FOR_BUILD -c $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD conftest.$ac_ext >&5' -ac_link='$CC_FOR_BUILD -o conftest$ac_build_exeext $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD $LDFLAGS_FOR_BUILD conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD understands -c and -o together" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD understands -c and -o together... " >&6; } -if ${am_cv_build_prog_cc_c_o+:} false; then : +if test x${gl_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : $as_echo_n "(cached) " >&6 else + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -6771,7845 +6850,14937 @@ main () return 0; } _ACEOF - # Make sure it works both with $CC and with simple cc. - # Following AC_PROG_CC_C_O, we do the test twice because some - # compilers refuse to overwrite an existing .o file with -o, - # though they will create one. - am_cv_build_prog_cc_c_o=yes - for am_i in 1 2; do - if { echo "$as_me:$LINENO: $CC_FOR_BUILD -c conftest.$ac_ext -o conftest2.$ac_build_objext" >&5 - ($CC_FOR_BUILD -c conftest.$ac_ext -o conftest2.$ac_build_objext) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } \ - && test -f conftest2.$ac_build_objext; then - : OK - else - am_cv_build_prog_cc_c_o=no - break - fi - done - rm -f core conftest* - unset am_i +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_build_prog_cc_c_o" >&5 -$as_echo "$am_cv_build_prog_cc_c_o" >&6; } -if test "$am_cv_build_prog_cc_c_o" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC_FOR_BUILD="$am_aux_dir/compile $CC_FOR_BUILD" +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : + gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +else + gl_unknown_warnings_are_errors= fi -ac_ext=c -ac_cpp='$CPP_FOR_BUILD $CPPFLAGS_FOR_BUILD' -ac_compile='$CC_FOR_BUILD -c $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD conftest.$ac_ext >&5' -ac_link='$CC_FOR_BUILD -o conftest$ac_build_exeext $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD $LDFLAGS_FOR_BUILD conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -depcc="$CC_FOR_BUILD" am_compiler_list= +fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_build_CC_dependencies_compiler_type+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Winitializer-overrides" >&5 +$as_echo_n "checking whether $CC handles -Winitializer-overrides... " >&6; } +if ${gl_cv_warn_CFLAGS__Winitializer_overrides+:} false; then : $as_echo_n "(cached) " >&6 else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - am_cv_build_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Winitializer-overrides" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_build_CC_dependencies_compiler_type=$depmode - break - fi - fi - done +int +main () +{ - cd .. - rm -rf conftest.dir + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Winitializer_overrides=yes else - am_cv_build_CC_dependencies_compiler_type=none + gl_cv_warn_CFLAGS__Winitializer_overrides=no fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_build_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_build_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_build_CC_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_build_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Winitializer_overrides" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Winitializer_overrides" >&6; } +if test "x$gl_cv_warn_CFLAGS__Winitializer_overrides" = xyes; then : + as_fn_append WARN_CFLAGS " -Winitializer-overrides" fi -ac_ext=c -ac_cpp='$CPP_FOR_BUILD $CPPFLAGS_FOR_BUILD' -ac_compile='$CC_FOR_BUILD -c $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD conftest.$ac_ext >&5' -ac_link='$CC_FOR_BUILD -o conftest$ac_build_exeext $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD $LDFLAGS_FOR_BUILD conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP_FOR_BUILD" && test -d "$CPP_FOR_BUILD"; then - CPP_FOR_BUILD= -fi -if test -z "$CPP_FOR_BUILD"; then - if ${ac_cv_build_prog_CPP+:} false; then : +if test x${gl_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : $as_echo_n "(cached) " >&6 else - # Double quotes because CPP needs to be expanded - for CPP_FOR_BUILD in "$CC_FOR_BUILD -E" "$CC_FOR_BUILD -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error + +int +main () +{ + + ; + return 0; +} _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : + gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' else - # Broken: fails on valid input. -continue + gl_unknown_warnings_are_errors= fi -rm -f conftest.err conftest.i conftest.$ac_ext - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wlogical-op" >&5 +$as_echo_n "checking whether $CC handles -Wlogical-op... " >&6; } +if ${gl_cv_warn_CFLAGS__Wlogical_op+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wlogical-op" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include + +int +main () +{ + + ; + return 0; +} _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Wlogical_op=yes else - # Passes both tests. -ac_preproc_ok=: -break + gl_cv_warn_CFLAGS__Wlogical_op=no fi -rm -f conftest.err conftest.i conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wlogical_op" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Wlogical_op" >&6; } +if test "x$gl_cv_warn_CFLAGS__Wlogical_op" = xyes; then : + as_fn_append WARN_CFLAGS " -Wlogical-op" fi - done - ac_cv_build_prog_CPP=$CPP_FOR_BUILD -fi - CPP_FOR_BUILD=$ac_cv_build_prog_CPP +if test x${gl_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 else - ac_cv_build_prog_CPP=$CPP_FOR_BUILD -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP_FOR_BUILD" >&5 -$as_echo "$CPP_FOR_BUILD" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes else - # Broken: fails on valid input. -continue + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no fi -rm -f conftest.err conftest.i conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : + gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +else + gl_unknown_warnings_are_errors= +fi + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wmissing-parameter-type" >&5 +$as_echo_n "checking whether $CC handles -Wmissing-parameter-type... " >&6; } +if ${gl_cv_warn_CFLAGS__Wmissing_parameter_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wmissing-parameter-type" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include + +int +main () +{ + + ; + return 0; +} _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Wmissing_parameter_type=yes else - # Passes both tests. -ac_preproc_ok=: -break + gl_cv_warn_CFLAGS__Wmissing_parameter_type=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wmissing_parameter_type" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Wmissing_parameter_type" >&6; } +if test "x$gl_cv_warn_CFLAGS__Wmissing_parameter_type" = xyes; then : + as_fn_append WARN_CFLAGS " -Wmissing-parameter-type" +fi + + +if test x${gl_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : + gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +else + gl_unknown_warnings_are_errors= +fi + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wnested-externs" >&5 +$as_echo_n "checking whether $CC handles -Wnested-externs... " >&6; } +if ${gl_cv_warn_CFLAGS__Wnested_externs+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wnested-externs" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Wnested_externs=yes +else + gl_cv_warn_CFLAGS__Wnested_externs=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wnested_externs" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Wnested_externs" >&6; } +if test "x$gl_cv_warn_CFLAGS__Wnested_externs" = xyes; then : + as_fn_append WARN_CFLAGS " -Wnested-externs" +fi + + +if test x${gl_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : + gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +else + gl_unknown_warnings_are_errors= +fi + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wold-style-declaration" >&5 +$as_echo_n "checking whether $CC handles -Wold-style-declaration... " >&6; } +if ${gl_cv_warn_CFLAGS__Wold_style_declaration+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wold-style-declaration" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Wold_style_declaration=yes +else + gl_cv_warn_CFLAGS__Wold_style_declaration=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wold_style_declaration" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Wold_style_declaration" >&6; } +if test "x$gl_cv_warn_CFLAGS__Wold_style_declaration" = xyes; then : + as_fn_append WARN_CFLAGS " -Wold-style-declaration" +fi + + +if test x${gl_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : + gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +else + gl_unknown_warnings_are_errors= +fi + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wold-style-definition" >&5 +$as_echo_n "checking whether $CC handles -Wold-style-definition... " >&6; } +if ${gl_cv_warn_CFLAGS__Wold_style_definition+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wold-style-definition" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Wold_style_definition=yes +else + gl_cv_warn_CFLAGS__Wold_style_definition=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wold_style_definition" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Wold_style_definition" >&6; } +if test "x$gl_cv_warn_CFLAGS__Wold_style_definition" = xyes; then : + as_fn_append WARN_CFLAGS " -Wold-style-definition" +fi + + +if test x${gl_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : + gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +else + gl_unknown_warnings_are_errors= +fi + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Woverride-init" >&5 +$as_echo_n "checking whether $CC handles -Woverride-init... " >&6; } +if ${gl_cv_warn_CFLAGS__Woverride_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Woverride-init" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Woverride_init=yes +else + gl_cv_warn_CFLAGS__Woverride_init=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Woverride_init" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Woverride_init" >&6; } +if test "x$gl_cv_warn_CFLAGS__Woverride_init" = xyes; then : + as_fn_append WARN_CFLAGS " -Woverride-init" +fi + + +if test x${gl_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : + gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +else + gl_unknown_warnings_are_errors= +fi + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wsign-compare" >&5 +$as_echo_n "checking whether $CC handles -Wsign-compare... " >&6; } +if ${gl_cv_warn_CFLAGS__Wsign_compare+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wsign-compare" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Wsign_compare=yes +else + gl_cv_warn_CFLAGS__Wsign_compare=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wsign_compare" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Wsign_compare" >&6; } +if test "x$gl_cv_warn_CFLAGS__Wsign_compare" = xyes; then : + as_fn_append WARN_CFLAGS " -Wsign-compare" +fi + + +if test x${gl_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : + gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +else + gl_unknown_warnings_are_errors= +fi + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wtype-limits" >&5 +$as_echo_n "checking whether $CC handles -Wtype-limits... " >&6; } +if ${gl_cv_warn_CFLAGS__Wtype_limits+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wtype-limits" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Wtype_limits=yes +else + gl_cv_warn_CFLAGS__Wtype_limits=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wtype_limits" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Wtype_limits" >&6; } +if test "x$gl_cv_warn_CFLAGS__Wtype_limits" = xyes; then : + as_fn_append WARN_CFLAGS " -Wtype-limits" +fi + + +if test x${gl_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : + gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +else + gl_unknown_warnings_are_errors= +fi + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wwrite-strings" >&5 +$as_echo_n "checking whether $CC handles -Wwrite-strings... " >&6; } +if ${gl_cv_warn_CFLAGS__Wwrite_strings+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wwrite-strings" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Wwrite_strings=yes +else + gl_cv_warn_CFLAGS__Wwrite_strings=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wwrite_strings" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Wwrite_strings" >&6; } +if test "x$gl_cv_warn_CFLAGS__Wwrite_strings" = xyes; then : + as_fn_append WARN_CFLAGS " -Wwrite-strings" +fi + + +# Check whether --enable-gcc-Werror was given. +if test "${enable_gcc_Werror+set}" = set; then : + enableval=$enable_gcc_Werror; case "$enable_gcc_Werror" in + yes|no|no,*) ;; + *) as_fn_error $? "bad value $enable_gcc_Werror for gcc-Werror option" "$LINENO" 5 ;; + esac +else + enable_gcc_Werror="$st_cv_enable_Werror" +fi + +if test "$enable_gcc_Werror" = yes; then + if test x${gl_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : + gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +else + gl_unknown_warnings_are_errors= +fi + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror" >&5 +$as_echo_n "checking whether $CC handles -Werror... " >&6; } +if ${gl_cv_warn_CFLAGS__Werror+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS" + as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS__Werror=yes +else + gl_cv_warn_CFLAGS__Werror=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror" >&5 +$as_echo "$gl_cv_warn_CFLAGS__Werror" >&6; } +if test "x$gl_cv_warn_CFLAGS__Werror" = xyes; then : + as_fn_append WARN_CFLAGS " -Werror" +fi + + +fi + + + + + +if test -n "${ac_c_decl_warn_flag+set}"; then : + st_saved_ac_c_decl_warn_flag="${ac_c_decl_warn_flag}"; unset ac_c_decl_warn_flag +fi + +if test -n "${ac_c_preproc_warn_flag+set}"; then : + st_saved_ac_c_preproc_warn_flag="${ac_c_preproc_warn_flag}"; unset ac_c_preproc_warn_flag +fi + +if test -n "${ac_c_werror_flag+set}"; then : + st_saved_ac_c_werror_flag="${ac_c_werror_flag}"; unset ac_c_werror_flag +fi + +if test -n "${ac_compile+set}"; then : + st_saved_ac_compile="${ac_compile}"; unset ac_compile +fi + +if test -n "${ac_compiler_gnu+set}"; then : + st_saved_ac_compiler_gnu="${ac_compiler_gnu}"; unset ac_compiler_gnu +fi + +if test -n "${ac_cpp+set}"; then : + st_saved_ac_cpp="${ac_cpp}"; unset ac_cpp +fi + +if test -n "${ac_cv_c_compiler_gnu+set}"; then : + st_saved_ac_cv_c_compiler_gnu="${ac_cv_c_compiler_gnu}"; unset ac_cv_c_compiler_gnu +fi + +if test -n "${ac_cv_c_decl_report+set}"; then : + st_saved_ac_cv_c_decl_report="${ac_cv_c_decl_report}"; unset ac_cv_c_decl_report +fi + +if test -n "${ac_link+set}"; then : + st_saved_ac_link="${ac_link}"; unset ac_link +fi + +if test -n "${ac_tool_prefix+set}"; then : + st_saved_ac_tool_prefix="${ac_tool_prefix}"; unset ac_tool_prefix +fi + +if test -n "${cross_compiling+set}"; then : + st_saved_cross_compiling="${cross_compiling}"; unset cross_compiling +fi + +cross_compiling=no + +{ $as_echo "$as_me:${as_lineno-$LINENO}: looking for a C compiler that generates native executables" >&5 +$as_echo "$as_me: looking for a C compiler that generates native executables" >&6;} +ac_ext=c +ac_cpp='$CPP_FOR_BUILD $CPPFLAGS_FOR_BUILD' +ac_compile='$CC_FOR_BUILD -c $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD conftest.$ac_ext >&5' +ac_link='$CC_FOR_BUILD -o conftest$ac_build_exeext $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD $LDFLAGS_FOR_BUILD conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC_FOR_BUILD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC_FOR_BUILD"; then + ac_cv_prog_CC_FOR_BUILD="$CC_FOR_BUILD" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC_FOR_BUILD="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC_FOR_BUILD=$ac_cv_prog_CC_FOR_BUILD +if test -n "$CC_FOR_BUILD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC_FOR_BUILD" >&5 +$as_echo "$CC_FOR_BUILD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC_FOR_BUILD"; then + ac_ct_CC_FOR_BUILD=$CC_FOR_BUILD + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC_FOR_BUILD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC_FOR_BUILD"; then + ac_cv_prog_ac_ct_CC_FOR_BUILD="$ac_ct_CC_FOR_BUILD" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC_FOR_BUILD="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC_FOR_BUILD=$ac_cv_prog_ac_ct_CC_FOR_BUILD +if test -n "$ac_ct_CC_FOR_BUILD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC_FOR_BUILD" >&5 +$as_echo "$ac_ct_CC_FOR_BUILD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC_FOR_BUILD" = x; then + CC_FOR_BUILD="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with build triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with build triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC_FOR_BUILD=$ac_ct_CC_FOR_BUILD + fi +else + CC_FOR_BUILD="$ac_cv_prog_CC_FOR_BUILD" +fi + +if test -z "$CC_FOR_BUILD"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC_FOR_BUILD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC_FOR_BUILD"; then + ac_cv_prog_CC_FOR_BUILD="$CC_FOR_BUILD" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC_FOR_BUILD="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC_FOR_BUILD=$ac_cv_prog_CC_FOR_BUILD +if test -n "$CC_FOR_BUILD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC_FOR_BUILD" >&5 +$as_echo "$CC_FOR_BUILD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC_FOR_BUILD"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC_FOR_BUILD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC_FOR_BUILD"; then + ac_cv_prog_CC_FOR_BUILD="$CC_FOR_BUILD" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC_FOR_BUILD="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC_FOR_BUILD + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC_FOR_BUILD to just the basename; use the full file name. + shift + ac_cv_prog_CC_FOR_BUILD="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC_FOR_BUILD=$ac_cv_prog_CC_FOR_BUILD +if test -n "$CC_FOR_BUILD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC_FOR_BUILD" >&5 +$as_echo "$CC_FOR_BUILD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC_FOR_BUILD"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC_FOR_BUILD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC_FOR_BUILD"; then + ac_cv_prog_CC_FOR_BUILD="$CC_FOR_BUILD" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC_FOR_BUILD="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC_FOR_BUILD=$ac_cv_prog_CC_FOR_BUILD +if test -n "$CC_FOR_BUILD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC_FOR_BUILD" >&5 +$as_echo "$CC_FOR_BUILD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC_FOR_BUILD" && break + done +fi +if test -z "$CC_FOR_BUILD"; then + ac_ct_CC_FOR_BUILD=$CC_FOR_BUILD + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC_FOR_BUILD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC_FOR_BUILD"; then + ac_cv_prog_ac_ct_CC_FOR_BUILD="$ac_ct_CC_FOR_BUILD" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC_FOR_BUILD="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC_FOR_BUILD=$ac_cv_prog_ac_ct_CC_FOR_BUILD +if test -n "$ac_ct_CC_FOR_BUILD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC_FOR_BUILD" >&5 +$as_echo "$ac_ct_CC_FOR_BUILD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC_FOR_BUILD" && break +done + + if test "x$ac_ct_CC_FOR_BUILD" = x; then + CC_FOR_BUILD="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with build triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with build triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC_FOR_BUILD=$ac_ct_CC_FOR_BUILD + fi +fi + +fi + + +test -z "$CC_FOR_BUILD" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_build_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS_FOR_BUILD+set} +ac_save_CFLAGS=$CFLAGS_FOR_BUILD +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD accepts -g" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD accepts -g... " >&6; } +if ${ac_cv_build_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_build_prog_cc_g=no + CFLAGS_FOR_BUILD="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_build_prog_cc_g=yes +else + CFLAGS_FOR_BUILD="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS_FOR_BUILD="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_build_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_build_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_build_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_build_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build_prog_cc_g" >&5 +$as_echo "$ac_cv_build_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS_FOR_BUILD=$ac_save_CFLAGS +elif test $ac_cv_build_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS_FOR_BUILD="-g -O2" + else + CFLAGS_FOR_BUILD="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS_FOR_BUILD="-O2" + else + CFLAGS_FOR_BUILD= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC_FOR_BUILD option to accept ISO C89" >&5 +$as_echo_n "checking for $CC_FOR_BUILD option to accept ISO C89... " >&6; } +if ${ac_cv_build_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_build_prog_cc_c89=no +ac_save_CC=$CC_FOR_BUILD +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC_FOR_BUILD="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_build_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_build_objext + test "x$ac_cv_build_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC_FOR_BUILD=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_build_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC_FOR_BUILD="$CC_FOR_BUILD $ac_cv_build_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build_prog_cc_c89" >&5 +$as_echo "$ac_cv_build_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_build_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP_FOR_BUILD $CPPFLAGS_FOR_BUILD' +ac_compile='$CC_FOR_BUILD -c $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD conftest.$ac_ext >&5' +ac_link='$CC_FOR_BUILD -o conftest$ac_build_exeext $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD $LDFLAGS_FOR_BUILD conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP_FOR_BUILD $CPPFLAGS_FOR_BUILD' +ac_compile='$CC_FOR_BUILD -c $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD conftest.$ac_ext >&5' +ac_link='$CC_FOR_BUILD -o conftest$ac_build_exeext $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD $LDFLAGS_FOR_BUILD conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD understands -c and -o together" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD understands -c and -o together... " >&6; } +if ${am_cv_build_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_build_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC_FOR_BUILD -c conftest.$ac_ext -o conftest2.$ac_build_objext" >&5 + ($CC_FOR_BUILD -c conftest.$ac_ext -o conftest2.$ac_build_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_build_objext; then + : OK + else + am_cv_build_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_build_prog_cc_c_o" >&5 +$as_echo "$am_cv_build_prog_cc_c_o" >&6; } +if test "$am_cv_build_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC_FOR_BUILD="$am_aux_dir/compile $CC_FOR_BUILD" +fi +ac_ext=c +ac_cpp='$CPP_FOR_BUILD $CPPFLAGS_FOR_BUILD' +ac_compile='$CC_FOR_BUILD -c $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD conftest.$ac_ext >&5' +ac_link='$CC_FOR_BUILD -o conftest$ac_build_exeext $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD $LDFLAGS_FOR_BUILD conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +depcc="$CC_FOR_BUILD" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_build_CC_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_build_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_build_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_build_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_build_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_build_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_build_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_build_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + +ac_ext=c +ac_cpp='$CPP_FOR_BUILD $CPPFLAGS_FOR_BUILD' +ac_compile='$CC_FOR_BUILD -c $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD conftest.$ac_ext >&5' +ac_link='$CC_FOR_BUILD -o conftest$ac_build_exeext $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD $LDFLAGS_FOR_BUILD conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP_FOR_BUILD" && test -d "$CPP_FOR_BUILD"; then + CPP_FOR_BUILD= +fi +if test -z "$CPP_FOR_BUILD"; then + if ${ac_cv_build_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP_FOR_BUILD in "$CC_FOR_BUILD -E" "$CC_FOR_BUILD -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_build_prog_CPP=$CPP_FOR_BUILD + +fi + CPP_FOR_BUILD=$ac_cv_build_prog_CPP +else + ac_cv_build_prog_CPP=$CPP_FOR_BUILD +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP_FOR_BUILD" >&5 +$as_echo "$CPP_FOR_BUILD" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP_FOR_BUILD\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP_FOR_BUILD $CPPFLAGS_FOR_BUILD' +ac_compile='$CC_FOR_BUILD -c $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD conftest.$ac_ext >&5' +ac_link='$CC_FOR_BUILD -o conftest$ac_build_exeext $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD $LDFLAGS_FOR_BUILD conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD is fresh enough for -Werror" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD is fresh enough for -Werror... " >&6; } +if ${st_cv_build_cc_enable_Werror+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#if defined __GNUC__ && defined __GNUC_MINOR__ +# define GNUC_PREREQ(maj, min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) +#else +# define GNUC_PREREQ(maj, min) 0 +#endif + +#if defined __clang__ && defined __clang_major__ && defined __clang_minor__ +# define CLANG_PREREQ(maj, min) ((__clang_major__ << 16) + __clang_minor__ >= ((maj) << 16) + (min)) +#else +# define CLANG_PREREQ(maj, min) 0 +#endif + +int +main () +{ +int i[GNUC_PREREQ(4, 8) + CLANG_PREREQ(6, 0) > 0 ? 1 : - 1]; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + st_cv_build_cc_enable_Werror=yes +else + st_cv_build_cc_enable_Werror=no +fi +rm -f core conftest.err conftest.$ac_build_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $st_cv_build_cc_enable_Werror" >&5 +$as_echo "$st_cv_build_cc_enable_Werror" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to try $CC_FOR_BUILD with -Werror by default" >&5 +$as_echo_n "checking whether to try $CC_FOR_BUILD with -Werror by default... " >&6; } +if ${st_cv_build_enable_Werror+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$st_cv_build_cc_enable_Werror" != yes; then + st_cv_build_enable_Werror='no, the compiler is too old' + elif test "$arch_enable_Werror" != yes; then + st_cv_build_enable_Werror='no, architecture is not ready' + else + st_cv_build_enable_Werror=yes + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $st_cv_build_enable_Werror" >&5 +$as_echo "$st_cv_build_enable_Werror" >&6; } +if test x${gl_build_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : + gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +else + gl_build_unknown_warnings_are_errors= +fi + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Wall" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Wall... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Wall+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Wall" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Wall=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Wall=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Wall" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Wall" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Wall" = xyes; then : + as_fn_append WARN_CFLAGS_FOR_BUILD " -Wall" +fi + + +if test x${gl_build_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : + gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +else + gl_build_unknown_warnings_are_errors= +fi + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Wempty-body" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Wempty-body... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Wempty_body+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Wempty-body" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Wempty_body=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Wempty_body=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Wempty_body" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Wempty_body" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Wempty_body" = xyes; then : + as_fn_append WARN_CFLAGS_FOR_BUILD " -Wempty-body" +fi + + +if test x${gl_build_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : + gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +else + gl_build_unknown_warnings_are_errors= +fi + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Wformat-security" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Wformat-security... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Wformat_security+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Wformat-security" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Wformat_security=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Wformat_security=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Wformat_security" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Wformat_security" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Wformat_security" = xyes; then : + as_fn_append WARN_CFLAGS_FOR_BUILD " -Wformat-security" +fi + + +if test x${gl_build_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : + gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +else + gl_build_unknown_warnings_are_errors= +fi + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Wignored-qualifiers" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Wignored-qualifiers... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Wignored_qualifiers+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Wignored-qualifiers" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Wignored_qualifiers=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Wignored_qualifiers=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Wignored_qualifiers" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Wignored_qualifiers" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Wignored_qualifiers" = xyes; then : + as_fn_append WARN_CFLAGS_FOR_BUILD " -Wignored-qualifiers" +fi + + +if test x${gl_build_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : + gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +else + gl_build_unknown_warnings_are_errors= +fi + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Wimplicit-fallthrough=5" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Wimplicit-fallthrough=5... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Wimplicit_fallthrough_5+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Wimplicit-fallthrough=5" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Wimplicit_fallthrough_5=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Wimplicit_fallthrough_5=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Wimplicit_fallthrough_5" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Wimplicit_fallthrough_5" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Wimplicit_fallthrough_5" = xyes; then : + as_fn_append WARN_CFLAGS_FOR_BUILD " -Wimplicit-fallthrough=5" +fi + + +if test x${gl_build_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : + gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +else + gl_build_unknown_warnings_are_errors= +fi + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Winit-self" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Winit-self... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Winit_self+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Winit-self" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Winit_self=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Winit_self=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Winit_self" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Winit_self" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Winit_self" = xyes; then : + as_fn_append WARN_CFLAGS_FOR_BUILD " -Winit-self" +fi + + +if test x${gl_build_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : + gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +else + gl_build_unknown_warnings_are_errors= +fi + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Winitializer-overrides" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Winitializer-overrides... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Winitializer_overrides+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Winitializer-overrides" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Winitializer_overrides=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Winitializer_overrides=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Winitializer_overrides" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Winitializer_overrides" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Winitializer_overrides" = xyes; then : + as_fn_append WARN_CFLAGS_FOR_BUILD " -Winitializer-overrides" +fi + + +if test x${gl_build_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : + gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +else + gl_build_unknown_warnings_are_errors= +fi + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Wlogical-op" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Wlogical-op... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Wlogical_op+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Wlogical-op" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Wlogical_op=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Wlogical_op=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Wlogical_op" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Wlogical_op" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Wlogical_op" = xyes; then : + as_fn_append WARN_CFLAGS_FOR_BUILD " -Wlogical-op" +fi + + +if test x${gl_build_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : + gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +else + gl_build_unknown_warnings_are_errors= +fi + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Wmissing-parameter-type" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Wmissing-parameter-type... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Wmissing_parameter_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Wmissing-parameter-type" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Wmissing_parameter_type=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Wmissing_parameter_type=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Wmissing_parameter_type" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Wmissing_parameter_type" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Wmissing_parameter_type" = xyes; then : + as_fn_append WARN_CFLAGS_FOR_BUILD " -Wmissing-parameter-type" +fi + + +if test x${gl_build_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : + gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +else + gl_build_unknown_warnings_are_errors= +fi + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Wnested-externs" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Wnested-externs... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Wnested_externs+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Wnested-externs" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Wnested_externs=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Wnested_externs=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Wnested_externs" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Wnested_externs" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Wnested_externs" = xyes; then : + as_fn_append WARN_CFLAGS_FOR_BUILD " -Wnested-externs" +fi + + +if test x${gl_build_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : + gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +else + gl_build_unknown_warnings_are_errors= +fi + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Wold-style-declaration" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Wold-style-declaration... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Wold_style_declaration+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Wold-style-declaration" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Wold_style_declaration=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Wold_style_declaration=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Wold_style_declaration" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Wold_style_declaration" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Wold_style_declaration" = xyes; then : + as_fn_append WARN_CFLAGS_FOR_BUILD " -Wold-style-declaration" +fi + + +if test x${gl_build_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : + gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +else + gl_build_unknown_warnings_are_errors= +fi + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Wold-style-definition" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Wold-style-definition... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Wold_style_definition+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Wold-style-definition" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Wold_style_definition=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Wold_style_definition=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Wold_style_definition" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Wold_style_definition" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Wold_style_definition" = xyes; then : + as_fn_append WARN_CFLAGS_FOR_BUILD " -Wold-style-definition" +fi + + +if test x${gl_build_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : + gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +else + gl_build_unknown_warnings_are_errors= +fi + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Woverride-init" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Woverride-init... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Woverride_init+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Woverride-init" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Woverride_init=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Woverride_init=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Woverride_init" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Woverride_init" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Woverride_init" = xyes; then : + as_fn_append WARN_CFLAGS_FOR_BUILD " -Woverride-init" +fi + + +if test x${gl_build_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : + gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +else + gl_build_unknown_warnings_are_errors= +fi + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Wsign-compare" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Wsign-compare... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Wsign_compare+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Wsign-compare" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Wsign_compare=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Wsign_compare=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Wsign_compare" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Wsign_compare" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Wsign_compare" = xyes; then : + as_fn_append WARN_CFLAGS_FOR_BUILD " -Wsign-compare" +fi + + +if test x${gl_build_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : + gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +else + gl_build_unknown_warnings_are_errors= +fi + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Wtype-limits" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Wtype-limits... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Wtype_limits+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Wtype-limits" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Wtype_limits=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Wtype_limits=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Wtype_limits" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Wtype_limits" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Wtype_limits" = xyes; then : + as_fn_append WARN_CFLAGS_FOR_BUILD " -Wtype-limits" +fi + + +if test x${gl_build_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : + gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +else + gl_build_unknown_warnings_are_errors= +fi + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Wwrite-strings" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Wwrite-strings... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Wwrite_strings+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Wwrite-strings" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Wwrite_strings=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Wwrite_strings=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Wwrite_strings" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Wwrite_strings" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Wwrite_strings" = xyes; then : + as_fn_append WARN_CFLAGS_FOR_BUILD " -Wwrite-strings" +fi + + +# Check whether --enable-gcc-Werror was given. +if test "${enable_gcc_Werror+set}" = set; then : + enableval=$enable_gcc_Werror; case "$enable_gcc_Werror" in + yes|no|no,*) ;; + *) as_fn_error $? "bad value $enable_gcc_Werror for gcc-Werror option" "$LINENO" 5 ;; + esac +else + enable_gcc_Werror="$st_cv_build_enable_Werror" +fi + +if test "$enable_gcc_Werror" = yes; then + if test x${gl_build_unknown_warnings_are_errors+set} = x; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : + gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' +else + gl_build_unknown_warnings_are_errors= +fi + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror" >&5 +$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror... " >&6; } +if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror+:} false; then : + $as_echo_n "(cached) " >&6 +else + + gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" + as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_warn_CFLAGS_FOR_BUILD__Werror=yes +else + gl_cv_warn_CFLAGS_FOR_BUILD__Werror=no +fi +rm -f core conftest.err conftest.$ac_build_objext \ + conftest$ac_build_exeext conftest.$ac_ext + CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror" >&5 +$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror" >&6; } +if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror" = xyes; then : + as_fn_append WARN_CFLAGS_FOR_BUILD " -Werror" +fi + + +fi + + + +if test -n "${st_saved_cross_compiling+set}"; then : + cross_compiling="${st_saved_cross_compiling}"; unset st_saved_cross_compiling +fi + +if test -n "${st_saved_ac_tool_prefix+set}"; then : + ac_tool_prefix="${st_saved_ac_tool_prefix}"; unset st_saved_ac_tool_prefix +fi + +if test -n "${st_saved_ac_link+set}"; then : + ac_link="${st_saved_ac_link}"; unset st_saved_ac_link +fi + +if test -n "${st_saved_ac_cv_c_decl_report+set}"; then : + ac_cv_c_decl_report="${st_saved_ac_cv_c_decl_report}"; unset st_saved_ac_cv_c_decl_report +fi + +if test -n "${st_saved_ac_cv_c_compiler_gnu+set}"; then : + ac_cv_c_compiler_gnu="${st_saved_ac_cv_c_compiler_gnu}"; unset st_saved_ac_cv_c_compiler_gnu +fi + +if test -n "${st_saved_ac_cpp+set}"; then : + ac_cpp="${st_saved_ac_cpp}"; unset st_saved_ac_cpp +fi + +if test -n "${st_saved_ac_compiler_gnu+set}"; then : + ac_compiler_gnu="${st_saved_ac_compiler_gnu}"; unset st_saved_ac_compiler_gnu +fi + +if test -n "${st_saved_ac_compile+set}"; then : + ac_compile="${st_saved_ac_compile}"; unset st_saved_ac_compile +fi + +if test -n "${st_saved_ac_c_werror_flag+set}"; then : + ac_c_werror_flag="${st_saved_ac_c_werror_flag}"; unset st_saved_ac_c_werror_flag +fi + +if test -n "${st_saved_ac_c_preproc_warn_flag+set}"; then : + ac_c_preproc_warn_flag="${st_saved_ac_c_preproc_warn_flag}"; unset st_saved_ac_c_preproc_warn_flag +fi + +if test -n "${st_saved_ac_c_decl_warn_flag+set}"; then : + ac_c_decl_warn_flag="${st_saved_ac_c_decl_warn_flag}"; unset st_saved_ac_c_decl_warn_flag +fi + + + +BUILD_EXEEXT=$ac_build_exeext +BUILD_OBJEXT=$ac_build_objext + +if test -n "$ac_tool_prefix"; then + for ac_prog in ar lib "link -lib" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar lib "link -lib" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the archiver ($AR) interface" >&5 +$as_echo_n "checking the archiver ($AR) interface... " >&6; } +if ${am_cv_ar_interface+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + am_cv_ar_interface=ar + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int some_variable = 0; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 + (eval $am_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + am_cv_ar_interface=ar + else + am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 + (eval $am_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + am_cv_ar_interface=lib + else + am_cv_ar_interface=unknown + fi + fi + rm -f conftest.lib libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5 +$as_echo "$am_cv_ar_interface" >&6; } + +case $am_cv_ar_interface in +ar) + ;; +lib) + # Microsoft lib, so override with the ar-lib wrapper script. + # FIXME: It is wrong to rewrite AR. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__AR in this case, + # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something + # similar. + AR="$am_aux_dir/ar-lib $AR" + ;; +unknown) + as_fn_error $? "could not determine $AR interface" "$LINENO" 5 + ;; +esac + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for typeof syntax and keyword spelling" >&5 +$as_echo_n "checking for typeof syntax and keyword spelling... " >&6; } +if ${ac_cv_c_typeof+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_typeof=no + for ac_kw in typeof __typeof__ no; do + test $ac_kw = no && break + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + int value; + typedef struct { + char a [1 + + ! (($ac_kw (value)) + (($ac_kw (value)) 0 < ($ac_kw (value)) -1 + ? ($ac_kw (value)) - 1 + : ~ (~ ($ac_kw (value)) 0 + << sizeof ($ac_kw (value)))))]; } + ac__typeof_type_; + return + (! ((void) ((ac__typeof_type_ *) 0), 0)); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_typeof=$ac_kw +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test $ac_cv_c_typeof != no && break + done +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_typeof" >&5 +$as_echo "$ac_cv_c_typeof" >&6; } + if test $ac_cv_c_typeof != no; then + +$as_echo "#define HAVE_TYPEOF 1" >>confdefs.h + + if test $ac_cv_c_typeof != typeof; then + +cat >>confdefs.h <<_ACEOF +#define typeof $ac_cv_c_typeof +_ACEOF + + fi + fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 +$as_echo_n "checking for uid_t in sys/types.h... " >&6; } +if ${ac_cv_type_uid_t+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "uid_t" >/dev/null 2>&1; then : + ac_cv_type_uid_t=yes +else + ac_cv_type_uid_t=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 +$as_echo "$ac_cv_type_uid_t" >&6; } +if test $ac_cv_type_uid_t = no; then + +$as_echo "#define uid_t int" >>confdefs.h + + +$as_echo "#define gid_t int" >>confdefs.h + +fi + + +for ac_func in accept4 be64toh fallocate fanotify_mark fcntl64 fopen64 fork fputs_unlocked fstatat ftruncate futimens iconv_open if_indextoname open64 open_memstream preadv process_vm_readv pwritev readahead signalfd stpcpy strerror strndup sync_file_range +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +ac_fn_c_check_type "$LINENO" "sig_atomic_t" "ac_cv_type_sig_atomic_t" "#include +" +if test "x$ac_cv_type_sig_atomic_t" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_SIG_ATOMIC_T 1 +_ACEOF + + +fi +ac_fn_c_check_type "$LINENO" "struct sigcontext" "ac_cv_type_struct_sigcontext" "#include +" +if test "x$ac_cv_type_struct_sigcontext" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_SIGCONTEXT 1 +_ACEOF + + +fi + + +ac_fn_c_check_type "$LINENO" "struct mmsghdr" "ac_cv_type_struct_mmsghdr" "#include +" +if test "x$ac_cv_type_struct_mmsghdr" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_MMSGHDR 1 +_ACEOF + + +fi + + +ac_fn_c_check_type "$LINENO" "__kernel_long_t" "ac_cv_type___kernel_long_t" "#include +" +if test "x$ac_cv_type___kernel_long_t" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE___KERNEL_LONG_T 1 +_ACEOF + + +fi +ac_fn_c_check_type "$LINENO" "__kernel_ulong_t" "ac_cv_type___kernel_ulong_t" "#include +" +if test "x$ac_cv_type___kernel_ulong_t" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE___KERNEL_ULONG_T 1 +_ACEOF + + +fi + + +ac_fn_c_check_type "$LINENO" "struct __kernel_timespec" "ac_cv_type_struct___kernel_timespec" "#include +" +if test "x$ac_cv_type_struct___kernel_timespec" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT___KERNEL_TIMESPEC 1 +_ACEOF + + +fi +ac_fn_c_check_type "$LINENO" "struct __kernel_sock_timeval" "ac_cv_type_struct___kernel_sock_timeval" "#include +" +if test "x$ac_cv_type_struct___kernel_sock_timeval" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT___KERNEL_SOCK_TIMEVAL 1 +_ACEOF + + +fi + + +ac_fn_c_check_type "$LINENO" "struct stat64" "ac_cv_type_struct_stat64" "#include +#include +" +if test "x$ac_cv_type_struct_stat64" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT64 1 +_ACEOF + + +fi +ac_fn_c_check_type "$LINENO" "struct __old_kernel_stat" "ac_cv_type_struct___old_kernel_stat" "#include +#include +" +if test "x$ac_cv_type_struct___old_kernel_stat" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT___OLD_KERNEL_STAT 1 +_ACEOF + + +fi + + +ac_fn_c_check_type "$LINENO" "struct user_desc" "ac_cv_type_struct_user_desc" "#include +" +if test "x$ac_cv_type_struct_user_desc" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_USER_DESC 1 +_ACEOF + +ac_fn_c_check_member "$LINENO" "struct user_desc" "lm" "ac_cv_member_struct_user_desc_lm" "#include +" +if test "x$ac_cv_member_struct_user_desc_lm" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_USER_DESC_LM 1 +_ACEOF + + +fi + +fi + + +ac_fn_c_check_member "$LINENO" "struct stat" "st_mtime_nsec" "ac_cv_member_struct_stat_st_mtime_nsec" "#include +#include +" +if test "x$ac_cv_member_struct_stat_st_mtime_nsec" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_MTIME_NSEC 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct stat64" "st_mtime_nsec" "ac_cv_member_struct_stat64_st_mtime_nsec" "#include +#include +" +if test "x$ac_cv_member_struct_stat64_st_mtime_nsec" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT64_ST_MTIME_NSEC 1 +_ACEOF + + +fi + + +ac_fn_c_check_type "$LINENO" "struct pt_all_user_regs" "ac_cv_type_struct_pt_all_user_regs" "#include +" +if test "x$ac_cv_type_struct_pt_all_user_regs" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PT_ALL_USER_REGS 1 +_ACEOF + + +fi +ac_fn_c_check_type "$LINENO" "struct ia64_fpreg" "ac_cv_type_struct_ia64_fpreg" "#include +" +if test "x$ac_cv_type_struct_ia64_fpreg" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IA64_FPREG 1 +_ACEOF + + +fi +ac_fn_c_check_type "$LINENO" "struct ptrace_peeksiginfo_args" "ac_cv_type_struct_ptrace_peeksiginfo_args" "#include +" +if test "x$ac_cv_type_struct_ptrace_peeksiginfo_args" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PTRACE_PEEKSIGINFO_ARGS 1 +_ACEOF + + +fi +ac_fn_c_check_type "$LINENO" "struct __ptrace_syscall_info" "ac_cv_type_struct___ptrace_syscall_info" "#include +" +if test "x$ac_cv_type_struct___ptrace_syscall_info" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT___PTRACE_SYSCALL_INFO 1 +_ACEOF + + +fi + + +ac_fn_c_check_type "$LINENO" "struct ptrace_syscall_info" "ac_cv_type_struct_ptrace_syscall_info" "#include +" +if test "x$ac_cv_type_struct_ptrace_syscall_info" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PTRACE_SYSCALL_INFO 1 +_ACEOF + + +fi + + +# For kernels that do not have v3.10-rc1~201^2~11 +ac_fn_c_check_type "$LINENO" "s390_compat_regs" "ac_cv_type_s390_compat_regs" "#include +" +if test "x$ac_cv_type_s390_compat_regs" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_S390_COMPAT_REGS 1 +_ACEOF + + +fi + + +ac_fn_c_check_type "$LINENO" "struct flock" "ac_cv_type_struct_flock" "#include +#include +" +if test "x$ac_cv_type_struct_flock" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_FLOCK 1 +_ACEOF + + +fi +ac_fn_c_check_type "$LINENO" "struct flock64" "ac_cv_type_struct_flock64" "#include +#include +" +if test "x$ac_cv_type_struct_flock64" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_FLOCK64 1 +_ACEOF + + +fi +ac_fn_c_check_type "$LINENO" "struct __kernel_flock" "ac_cv_type_struct___kernel_flock" "#include +#include +" +if test "x$ac_cv_type_struct___kernel_flock" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT___KERNEL_FLOCK 1 +_ACEOF + + +fi +ac_fn_c_check_type "$LINENO" "struct __kernel_flock64" "ac_cv_type_struct___kernel_flock64" "#include +#include +" +if test "x$ac_cv_type_struct___kernel_flock64" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT___KERNEL_FLOCK64 1 +_ACEOF + + +fi +ac_fn_c_check_type "$LINENO" "struct f_owner_ex" "ac_cv_type_struct_f_owner_ex" "#include +#include +" +if test "x$ac_cv_type_struct_f_owner_ex" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_F_OWNER_EX 1 +_ACEOF + + +fi +ac_fn_c_check_type "$LINENO" "struct __kernel_f_owner_ex" "ac_cv_type_struct___kernel_f_owner_ex" "#include +#include +" +if test "x$ac_cv_type_struct___kernel_f_owner_ex" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT___KERNEL_F_OWNER_EX 1 +_ACEOF + + +fi + + +ac_fn_c_check_type "$LINENO" "struct kcmp_epoll_slot" "ac_cv_type_struct_kcmp_epoll_slot" "#include +" +if test "x$ac_cv_type_struct_kcmp_epoll_slot" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_KCMP_EPOLL_SLOT 1 +_ACEOF + + +fi + + +ac_fn_c_check_type "$LINENO" "struct keyctl_kdf_params" "ac_cv_type_struct_keyctl_kdf_params" "#include +" +if test "x$ac_cv_type_struct_keyctl_kdf_params" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_KEYCTL_KDF_PARAMS 1 +_ACEOF + + +fi +ac_fn_c_check_type "$LINENO" "struct keyctl_pkey_params" "ac_cv_type_struct_keyctl_pkey_params" "#include +" +if test "x$ac_cv_type_struct_keyctl_pkey_params" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_KEYCTL_PKEY_PARAMS 1 +_ACEOF + + +fi +ac_fn_c_check_type "$LINENO" "struct keyctl_pkey_query" "ac_cv_type_struct_keyctl_pkey_query" "#include +" +if test "x$ac_cv_type_struct_keyctl_pkey_query" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_KEYCTL_PKEY_QUERY 1 +_ACEOF + + +fi + + +ac_fn_c_check_member "$LINENO" "struct utsname" "domainname" "ac_cv_member_struct_utsname_domainname" "#include +" +if test "x$ac_cv_member_struct_utsname_domainname" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_UTSNAME_DOMAINNAME 1 +_ACEOF + + +fi + + +ac_fn_c_check_member "$LINENO" "siginfo_t" "si_syscall" "ac_cv_member_siginfo_t_si_syscall" "#include +" +if test "x$ac_cv_member_siginfo_t_si_syscall" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_SIGINFO_T_SI_SYSCALL 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "siginfo_t" "si_timerid" "ac_cv_member_siginfo_t_si_timerid" "#include +" +if test "x$ac_cv_member_siginfo_t_si_timerid" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_SIGINFO_T_SI_TIMERID 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "siginfo_t" "si_overrun" "ac_cv_member_siginfo_t_si_overrun" "#include +" +if test "x$ac_cv_member_siginfo_t_si_overrun" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_SIGINFO_T_SI_OVERRUN 1 +_ACEOF + + +fi + + +ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "precise_ip" "ac_cv_member_struct_perf_event_attr_precise_ip" "#include +" +if test "x$ac_cv_member_struct_perf_event_attr_precise_ip" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PERF_EVENT_ATTR_PRECISE_IP 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "mmap_data" "ac_cv_member_struct_perf_event_attr_mmap_data" "#include +" +if test "x$ac_cv_member_struct_perf_event_attr_mmap_data" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PERF_EVENT_ATTR_MMAP_DATA 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "sample_id_all" "ac_cv_member_struct_perf_event_attr_sample_id_all" "#include +" +if test "x$ac_cv_member_struct_perf_event_attr_sample_id_all" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PERF_EVENT_ATTR_SAMPLE_ID_ALL 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "exclude_host" "ac_cv_member_struct_perf_event_attr_exclude_host" "#include +" +if test "x$ac_cv_member_struct_perf_event_attr_exclude_host" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PERF_EVENT_ATTR_EXCLUDE_HOST 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "exclude_guest" "ac_cv_member_struct_perf_event_attr_exclude_guest" "#include +" +if test "x$ac_cv_member_struct_perf_event_attr_exclude_guest" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PERF_EVENT_ATTR_EXCLUDE_GUEST 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "exclude_callchain_kernel" "ac_cv_member_struct_perf_event_attr_exclude_callchain_kernel" "#include +" +if test "x$ac_cv_member_struct_perf_event_attr_exclude_callchain_kernel" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PERF_EVENT_ATTR_EXCLUDE_CALLCHAIN_KERNEL 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "exclude_callchain_user" "ac_cv_member_struct_perf_event_attr_exclude_callchain_user" "#include +" +if test "x$ac_cv_member_struct_perf_event_attr_exclude_callchain_user" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PERF_EVENT_ATTR_EXCLUDE_CALLCHAIN_USER 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "mmap2" "ac_cv_member_struct_perf_event_attr_mmap2" "#include +" +if test "x$ac_cv_member_struct_perf_event_attr_mmap2" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PERF_EVENT_ATTR_MMAP2 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "comm_exec" "ac_cv_member_struct_perf_event_attr_comm_exec" "#include +" +if test "x$ac_cv_member_struct_perf_event_attr_comm_exec" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PERF_EVENT_ATTR_COMM_EXEC 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "use_clockid" "ac_cv_member_struct_perf_event_attr_use_clockid" "#include +" +if test "x$ac_cv_member_struct_perf_event_attr_use_clockid" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PERF_EVENT_ATTR_USE_CLOCKID 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "context_switch" "ac_cv_member_struct_perf_event_attr_context_switch" "#include +" +if test "x$ac_cv_member_struct_perf_event_attr_context_switch" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PERF_EVENT_ATTR_CONTEXT_SWITCH 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "write_backward" "ac_cv_member_struct_perf_event_attr_write_backward" "#include +" +if test "x$ac_cv_member_struct_perf_event_attr_write_backward" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PERF_EVENT_ATTR_WRITE_BACKWARD 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "namespaces" "ac_cv_member_struct_perf_event_attr_namespaces" "#include +" +if test "x$ac_cv_member_struct_perf_event_attr_namespaces" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PERF_EVENT_ATTR_NAMESPACES 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "bp_type" "ac_cv_member_struct_perf_event_attr_bp_type" "#include +" +if test "x$ac_cv_member_struct_perf_event_attr_bp_type" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PERF_EVENT_ATTR_BP_TYPE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "config1" "ac_cv_member_struct_perf_event_attr_config1" "#include +" +if test "x$ac_cv_member_struct_perf_event_attr_config1" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PERF_EVENT_ATTR_CONFIG1 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "config2" "ac_cv_member_struct_perf_event_attr_config2" "#include +" +if test "x$ac_cv_member_struct_perf_event_attr_config2" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PERF_EVENT_ATTR_CONFIG2 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "branch_sample_type" "ac_cv_member_struct_perf_event_attr_branch_sample_type" "#include +" +if test "x$ac_cv_member_struct_perf_event_attr_branch_sample_type" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PERF_EVENT_ATTR_BRANCH_SAMPLE_TYPE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "sample_regs_user" "ac_cv_member_struct_perf_event_attr_sample_regs_user" "#include +" +if test "x$ac_cv_member_struct_perf_event_attr_sample_regs_user" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PERF_EVENT_ATTR_SAMPLE_REGS_USER 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "sample_stack_user" "ac_cv_member_struct_perf_event_attr_sample_stack_user" "#include +" +if test "x$ac_cv_member_struct_perf_event_attr_sample_stack_user" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PERF_EVENT_ATTR_SAMPLE_STACK_USER 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "sample_regs_intr" "ac_cv_member_struct_perf_event_attr_sample_regs_intr" "#include +" +if test "x$ac_cv_member_struct_perf_event_attr_sample_regs_intr" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PERF_EVENT_ATTR_SAMPLE_REGS_INTR 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "aux_watermark" "ac_cv_member_struct_perf_event_attr_aux_watermark" "#include +" +if test "x$ac_cv_member_struct_perf_event_attr_aux_watermark" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PERF_EVENT_ATTR_AUX_WATERMARK 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "sample_max_stack" "ac_cv_member_struct_perf_event_attr_sample_max_stack" "#include +" +if test "x$ac_cv_member_struct_perf_event_attr_sample_max_stack" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PERF_EVENT_ATTR_SAMPLE_MAX_STACK 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "aux_sample_size" "ac_cv_member_struct_perf_event_attr_aux_sample_size" "#include +" +if test "x$ac_cv_member_struct_perf_event_attr_aux_sample_size" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PERF_EVENT_ATTR_AUX_SAMPLE_SIZE 1 +_ACEOF + + +fi + + +for ac_header in asm/cachectl.h asm/guarded_storage.h asm/sysmips.h elf.h gcov.h iconv.h mqueue.h netinet/sctp.h netipx/ipx.h paths.h scsi/sg.h sys/eventfd.h sys/fanotify.h sys/ipc.h sys/quota.h sys/signalfd.h sys/xattr.h ustat.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in linux/bsg.h linux/close_range.h linux/dm-ioctl.h linux/dqblk_xfs.h linux/falloc.h linux/fib_rules.h linux/fiemap.h linux/hiddev.h linux/ip_vs.h linux/ipc.h linux/kcmp.h linux/kvm.h linux/memfd.h linux/mmtimer.h linux/mount.h linux/mqueue.h linux/netfilter/ipset/ip_set.h linux/netfilter/nf_tables.h linux/netfilter/nf_tables_compat.h linux/netfilter/nfnetlink.h linux/netfilter/nfnetlink_acct.h linux/netfilter/nfnetlink_conntrack.h linux/netfilter/nfnetlink_cthelper.h linux/netfilter/nfnetlink_cttimeout.h linux/netfilter/nfnetlink_log.h linux/netfilter/nfnetlink_queue.h linux/nsfs.h linux/openat2.h linux/perf_event.h linux/quota.h linux/sched.h linux/seccomp.h linux/securebits.h linux/tee.h linux/userfaultfd.h linux/utsname.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +#include + +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in linux/if_addr.h linux/if_link.h linux/neighbour.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +#include +#include + +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in asm/sigcontext.h +do : + ac_fn_c_check_header_compile "$LINENO" "asm/sigcontext.h" "ac_cv_header_asm_sigcontext_h" "#include +" +if test "x$ac_cv_header_asm_sigcontext_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ASM_SIGCONTEXT_H 1 +_ACEOF + +fi + +done + + +for ac_header in netinet/tcp.h netinet/udp.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "#include +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in linux/netfilter/xt_osf.h +do : + ac_fn_c_check_header_compile "$LINENO" "linux/netfilter/xt_osf.h" "ac_cv_header_linux_netfilter_xt_osf_h" "#include +#include +" +if test "x$ac_cv_header_linux_netfilter_xt_osf_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LINUX_NETFILTER_XT_OSF_H 1 +_ACEOF + +fi + +done + + +for ac_header in linux/netfilter_arp/arp_tables.h linux/netfilter_bridge/ebtables.h linux/netfilter_ipv4/ip_tables.h linux/netfilter_ipv6/ip6_tables.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "#include +#include +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in linux/bpf.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "linux/bpf.h" "ac_cv_header_linux_bpf_h" "$ac_includes_default" +if test "x$ac_cv_header_linux_bpf_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LINUX_BPF_H 1 +_ACEOF + + ac_fn_c_check_type "$LINENO" "struct bpf_insn" "ac_cv_type_struct_bpf_insn" "#include +" +if test "x$ac_cv_type_struct_bpf_insn" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_INSN 1 +_ACEOF + + +fi +ac_fn_c_check_type "$LINENO" "struct bpf_map_info" "ac_cv_type_struct_bpf_map_info" "#include +" +if test "x$ac_cv_type_struct_bpf_map_info" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_MAP_INFO 1 +_ACEOF + + +fi +ac_fn_c_check_type "$LINENO" "struct bpf_prog_info" "ac_cv_type_struct_bpf_prog_info" "#include +" +if test "x$ac_cv_type_struct_bpf_prog_info" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO 1 +_ACEOF + + +fi + + ac_fn_c_check_member "$LINENO" "struct bpf_map_info" "btf_id" "ac_cv_member_struct_bpf_map_info_btf_id" "#include +" +if test "x$ac_cv_member_struct_bpf_map_info_btf_id" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_MAP_INFO_BTF_ID 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_map_info" "btf_key_type_id" "ac_cv_member_struct_bpf_map_info_btf_key_type_id" "#include +" +if test "x$ac_cv_member_struct_bpf_map_info_btf_key_type_id" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_MAP_INFO_BTF_KEY_TYPE_ID 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_map_info" "btf_value_type_id" "ac_cv_member_struct_bpf_map_info_btf_value_type_id" "#include +" +if test "x$ac_cv_member_struct_bpf_map_info_btf_value_type_id" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_MAP_INFO_BTF_VALUE_TYPE_ID 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_map_info" "btf_vmlinux_value_type_id" "ac_cv_member_struct_bpf_map_info_btf_vmlinux_value_type_id" "#include +" +if test "x$ac_cv_member_struct_bpf_map_info_btf_vmlinux_value_type_id" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_MAP_INFO_BTF_VMLINUX_VALUE_TYPE_ID 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_map_info" "id" "ac_cv_member_struct_bpf_map_info_id" "#include +" +if test "x$ac_cv_member_struct_bpf_map_info_id" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_MAP_INFO_ID 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_map_info" "ifindex" "ac_cv_member_struct_bpf_map_info_ifindex" "#include +" +if test "x$ac_cv_member_struct_bpf_map_info_ifindex" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_MAP_INFO_IFINDEX 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_map_info" "key_size" "ac_cv_member_struct_bpf_map_info_key_size" "#include +" +if test "x$ac_cv_member_struct_bpf_map_info_key_size" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_MAP_INFO_KEY_SIZE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_map_info" "map_flags" "ac_cv_member_struct_bpf_map_info_map_flags" "#include +" +if test "x$ac_cv_member_struct_bpf_map_info_map_flags" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_MAP_INFO_MAP_FLAGS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_map_info" "max_entries" "ac_cv_member_struct_bpf_map_info_max_entries" "#include +" +if test "x$ac_cv_member_struct_bpf_map_info_max_entries" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_MAP_INFO_MAX_ENTRIES 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_map_info" "name" "ac_cv_member_struct_bpf_map_info_name" "#include +" +if test "x$ac_cv_member_struct_bpf_map_info_name" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_MAP_INFO_NAME 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_map_info" "type" "ac_cv_member_struct_bpf_map_info_type" "#include +" +if test "x$ac_cv_member_struct_bpf_map_info_type" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_MAP_INFO_TYPE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_map_info" "value_size" "ac_cv_member_struct_bpf_map_info_value_size" "#include +" +if test "x$ac_cv_member_struct_bpf_map_info_value_size" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_MAP_INFO_VALUE_SIZE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "btf_id" "ac_cv_member_struct_bpf_prog_info_btf_id" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_btf_id" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_BTF_ID 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "created_by_uid" "ac_cv_member_struct_bpf_prog_info_created_by_uid" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_created_by_uid" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_CREATED_BY_UID 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "func_info" "ac_cv_member_struct_bpf_prog_info_func_info" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_func_info" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_FUNC_INFO 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "func_info_rec_size" "ac_cv_member_struct_bpf_prog_info_func_info_rec_size" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_func_info_rec_size" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_FUNC_INFO_REC_SIZE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "id" "ac_cv_member_struct_bpf_prog_info_id" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_id" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_ID 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "ifindex" "ac_cv_member_struct_bpf_prog_info_ifindex" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_ifindex" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_IFINDEX 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "jited_func_lens" "ac_cv_member_struct_bpf_prog_info_jited_func_lens" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_jited_func_lens" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_JITED_FUNC_LENS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "jited_ksyms" "ac_cv_member_struct_bpf_prog_info_jited_ksyms" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_jited_ksyms" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_JITED_KSYMS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "jited_line_info" "ac_cv_member_struct_bpf_prog_info_jited_line_info" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_jited_line_info" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_JITED_LINE_INFO 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "jited_line_info_rec_size" "ac_cv_member_struct_bpf_prog_info_jited_line_info_rec_size" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_jited_line_info_rec_size" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_JITED_LINE_INFO_REC_SIZE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "jited_prog_insns" "ac_cv_member_struct_bpf_prog_info_jited_prog_insns" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_jited_prog_insns" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_JITED_PROG_INSNS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "jited_prog_len" "ac_cv_member_struct_bpf_prog_info_jited_prog_len" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_jited_prog_len" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_JITED_PROG_LEN 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "line_info" "ac_cv_member_struct_bpf_prog_info_line_info" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_line_info" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_LINE_INFO 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "line_info_rec_size" "ac_cv_member_struct_bpf_prog_info_line_info_rec_size" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_line_info_rec_size" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_LINE_INFO_REC_SIZE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "load_time" "ac_cv_member_struct_bpf_prog_info_load_time" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_load_time" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_LOAD_TIME 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "map_ids" "ac_cv_member_struct_bpf_prog_info_map_ids" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_map_ids" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_MAP_IDS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "name" "ac_cv_member_struct_bpf_prog_info_name" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_name" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_NAME 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "nr_func_info" "ac_cv_member_struct_bpf_prog_info_nr_func_info" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_nr_func_info" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_NR_FUNC_INFO 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "nr_jited_func_lens" "ac_cv_member_struct_bpf_prog_info_nr_jited_func_lens" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_nr_jited_func_lens" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_NR_JITED_FUNC_LENS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "nr_jited_ksyms" "ac_cv_member_struct_bpf_prog_info_nr_jited_ksyms" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_nr_jited_ksyms" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_NR_JITED_KSYMS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "nr_jited_line_info" "ac_cv_member_struct_bpf_prog_info_nr_jited_line_info" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_nr_jited_line_info" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_NR_JITED_LINE_INFO 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "nr_line_info" "ac_cv_member_struct_bpf_prog_info_nr_line_info" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_nr_line_info" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_NR_LINE_INFO 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "nr_map_ids" "ac_cv_member_struct_bpf_prog_info_nr_map_ids" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_nr_map_ids" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_NR_MAP_IDS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "nr_prog_tags" "ac_cv_member_struct_bpf_prog_info_nr_prog_tags" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_nr_prog_tags" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_NR_PROG_TAGS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "prog_tags" "ac_cv_member_struct_bpf_prog_info_prog_tags" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_prog_tags" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_PROG_TAGS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "run_cnt" "ac_cv_member_struct_bpf_prog_info_run_cnt" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_run_cnt" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_RUN_CNT 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "run_time_ns" "ac_cv_member_struct_bpf_prog_info_run_time_ns" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_run_time_ns" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_RUN_TIME_NS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "tag" "ac_cv_member_struct_bpf_prog_info_tag" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_tag" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_TAG 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "type" "ac_cv_member_struct_bpf_prog_info_type" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_type" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_TYPE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "xlated_prog_insns" "ac_cv_member_struct_bpf_prog_info_xlated_prog_insns" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_xlated_prog_insns" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_XLATED_PROG_INSNS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "xlated_prog_len" "ac_cv_member_struct_bpf_prog_info_xlated_prog_len" "#include +" +if test "x$ac_cv_member_struct_bpf_prog_info_xlated_prog_len" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BPF_PROG_INFO_XLATED_PROG_LEN 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "attach_bpf_fd" "ac_cv_member_union_bpf_attr_attach_bpf_fd" "#include +" +if test "x$ac_cv_member_union_bpf_attr_attach_bpf_fd" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_ATTACH_BPF_FD 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "attach_btf_id" "ac_cv_member_union_bpf_attr_attach_btf_id" "#include +" +if test "x$ac_cv_member_union_bpf_attr_attach_btf_id" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_ATTACH_BTF_ID 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "attach_flags" "ac_cv_member_union_bpf_attr_attach_flags" "#include +" +if test "x$ac_cv_member_union_bpf_attr_attach_flags" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_ATTACH_FLAGS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "attach_prog_fd" "ac_cv_member_union_bpf_attr_attach_prog_fd" "#include +" +if test "x$ac_cv_member_union_bpf_attr_attach_prog_fd" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_ATTACH_PROG_FD 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "attach_type" "ac_cv_member_union_bpf_attr_attach_type" "#include +" +if test "x$ac_cv_member_union_bpf_attr_attach_type" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_ATTACH_TYPE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "batch.count" "ac_cv_member_union_bpf_attr_batch_count" "#include +" +if test "x$ac_cv_member_union_bpf_attr_batch_count" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_BATCH_COUNT 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "batch.elem_flags" "ac_cv_member_union_bpf_attr_batch_elem_flags" "#include +" +if test "x$ac_cv_member_union_bpf_attr_batch_elem_flags" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_BATCH_ELEM_FLAGS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "batch.flags" "ac_cv_member_union_bpf_attr_batch_flags" "#include +" +if test "x$ac_cv_member_union_bpf_attr_batch_flags" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_BATCH_FLAGS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "batch.in_batch" "ac_cv_member_union_bpf_attr_batch_in_batch" "#include +" +if test "x$ac_cv_member_union_bpf_attr_batch_in_batch" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_BATCH_IN_BATCH 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "batch.keys" "ac_cv_member_union_bpf_attr_batch_keys" "#include +" +if test "x$ac_cv_member_union_bpf_attr_batch_keys" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_BATCH_KEYS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "batch.map_fd" "ac_cv_member_union_bpf_attr_batch_map_fd" "#include +" +if test "x$ac_cv_member_union_bpf_attr_batch_map_fd" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_BATCH_MAP_FD 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "batch.out_batch" "ac_cv_member_union_bpf_attr_batch_out_batch" "#include +" +if test "x$ac_cv_member_union_bpf_attr_batch_out_batch" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_BATCH_OUT_BATCH 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "batch.values" "ac_cv_member_union_bpf_attr_batch_values" "#include +" +if test "x$ac_cv_member_union_bpf_attr_batch_values" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_BATCH_VALUES 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "bpf_fd" "ac_cv_member_union_bpf_attr_bpf_fd" "#include +" +if test "x$ac_cv_member_union_bpf_attr_bpf_fd" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_BPF_FD 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "btf" "ac_cv_member_union_bpf_attr_btf" "#include +" +if test "x$ac_cv_member_union_bpf_attr_btf" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_BTF 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "btf_fd" "ac_cv_member_union_bpf_attr_btf_fd" "#include +" +if test "x$ac_cv_member_union_bpf_attr_btf_fd" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_BTF_FD 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "btf_id" "ac_cv_member_union_bpf_attr_btf_id" "#include +" +if test "x$ac_cv_member_union_bpf_attr_btf_id" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_BTF_ID 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "btf_key_type_id" "ac_cv_member_union_bpf_attr_btf_key_type_id" "#include +" +if test "x$ac_cv_member_union_bpf_attr_btf_key_type_id" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_BTF_KEY_TYPE_ID 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "btf_log_buf" "ac_cv_member_union_bpf_attr_btf_log_buf" "#include +" +if test "x$ac_cv_member_union_bpf_attr_btf_log_buf" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_BTF_LOG_BUF 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "btf_log_level" "ac_cv_member_union_bpf_attr_btf_log_level" "#include +" +if test "x$ac_cv_member_union_bpf_attr_btf_log_level" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_BTF_LOG_LEVEL 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "btf_log_size" "ac_cv_member_union_bpf_attr_btf_log_size" "#include +" +if test "x$ac_cv_member_union_bpf_attr_btf_log_size" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_BTF_LOG_SIZE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "btf_size" "ac_cv_member_union_bpf_attr_btf_size" "#include +" +if test "x$ac_cv_member_union_bpf_attr_btf_size" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_BTF_SIZE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "btf_value_type_id" "ac_cv_member_union_bpf_attr_btf_value_type_id" "#include +" +if test "x$ac_cv_member_union_bpf_attr_btf_value_type_id" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_BTF_VALUE_TYPE_ID 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "btf_vmlinux_value_type_id" "ac_cv_member_union_bpf_attr_btf_vmlinux_value_type_id" "#include +" +if test "x$ac_cv_member_union_bpf_attr_btf_vmlinux_value_type_id" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_BTF_VMLINUX_VALUE_TYPE_ID 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "dummy" "ac_cv_member_union_bpf_attr_dummy" "#include +" +if test "x$ac_cv_member_union_bpf_attr_dummy" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_DUMMY 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "expected_attach_type" "ac_cv_member_union_bpf_attr_expected_attach_type" "#include +" +if test "x$ac_cv_member_union_bpf_attr_expected_attach_type" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_EXPECTED_ATTACH_TYPE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "file_flags" "ac_cv_member_union_bpf_attr_file_flags" "#include +" +if test "x$ac_cv_member_union_bpf_attr_file_flags" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_FILE_FLAGS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "flags" "ac_cv_member_union_bpf_attr_flags" "#include +" +if test "x$ac_cv_member_union_bpf_attr_flags" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_FLAGS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "func_info" "ac_cv_member_union_bpf_attr_func_info" "#include +" +if test "x$ac_cv_member_union_bpf_attr_func_info" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_FUNC_INFO 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "func_info_cnt" "ac_cv_member_union_bpf_attr_func_info_cnt" "#include +" +if test "x$ac_cv_member_union_bpf_attr_func_info_cnt" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_FUNC_INFO_CNT 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "func_info_rec_size" "ac_cv_member_union_bpf_attr_func_info_rec_size" "#include +" +if test "x$ac_cv_member_union_bpf_attr_func_info_rec_size" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_FUNC_INFO_REC_SIZE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "info.bpf_fd" "ac_cv_member_union_bpf_attr_info_bpf_fd" "#include +" +if test "x$ac_cv_member_union_bpf_attr_info_bpf_fd" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_INFO_BPF_FD 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "info.info" "ac_cv_member_union_bpf_attr_info_info" "#include +" +if test "x$ac_cv_member_union_bpf_attr_info_info" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_INFO_INFO 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "info.info_len" "ac_cv_member_union_bpf_attr_info_info_len" "#include +" +if test "x$ac_cv_member_union_bpf_attr_info_info_len" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_INFO_INFO_LEN 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "inner_map_fd" "ac_cv_member_union_bpf_attr_inner_map_fd" "#include +" +if test "x$ac_cv_member_union_bpf_attr_inner_map_fd" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_INNER_MAP_FD 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "insn_cnt" "ac_cv_member_union_bpf_attr_insn_cnt" "#include +" +if test "x$ac_cv_member_union_bpf_attr_insn_cnt" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_INSN_CNT 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "insns" "ac_cv_member_union_bpf_attr_insns" "#include +" +if test "x$ac_cv_member_union_bpf_attr_insns" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_INSNS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "kern_version" "ac_cv_member_union_bpf_attr_kern_version" "#include +" +if test "x$ac_cv_member_union_bpf_attr_kern_version" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_KERN_VERSION 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "key" "ac_cv_member_union_bpf_attr_key" "#include +" +if test "x$ac_cv_member_union_bpf_attr_key" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_KEY 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "key_size" "ac_cv_member_union_bpf_attr_key_size" "#include +" +if test "x$ac_cv_member_union_bpf_attr_key_size" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_KEY_SIZE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "license" "ac_cv_member_union_bpf_attr_license" "#include +" +if test "x$ac_cv_member_union_bpf_attr_license" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_LICENSE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "line_info" "ac_cv_member_union_bpf_attr_line_info" "#include +" +if test "x$ac_cv_member_union_bpf_attr_line_info" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_LINE_INFO 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "line_info_cnt" "ac_cv_member_union_bpf_attr_line_info_cnt" "#include +" +if test "x$ac_cv_member_union_bpf_attr_line_info_cnt" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_LINE_INFO_CNT 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "line_info_rec_size" "ac_cv_member_union_bpf_attr_line_info_rec_size" "#include +" +if test "x$ac_cv_member_union_bpf_attr_line_info_rec_size" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_LINE_INFO_REC_SIZE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "link_create.attach_type" "ac_cv_member_union_bpf_attr_link_create_attach_type" "#include +" +if test "x$ac_cv_member_union_bpf_attr_link_create_attach_type" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_LINK_CREATE_ATTACH_TYPE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "link_create.flags" "ac_cv_member_union_bpf_attr_link_create_flags" "#include +" +if test "x$ac_cv_member_union_bpf_attr_link_create_flags" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_LINK_CREATE_FLAGS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "link_create.prog_fd" "ac_cv_member_union_bpf_attr_link_create_prog_fd" "#include +" +if test "x$ac_cv_member_union_bpf_attr_link_create_prog_fd" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_LINK_CREATE_PROG_FD 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "link_create.target_fd" "ac_cv_member_union_bpf_attr_link_create_target_fd" "#include +" +if test "x$ac_cv_member_union_bpf_attr_link_create_target_fd" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_LINK_CREATE_TARGET_FD 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "link_update.flags" "ac_cv_member_union_bpf_attr_link_update_flags" "#include +" +if test "x$ac_cv_member_union_bpf_attr_link_update_flags" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_LINK_UPDATE_FLAGS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "link_update.link_fd" "ac_cv_member_union_bpf_attr_link_update_link_fd" "#include +" +if test "x$ac_cv_member_union_bpf_attr_link_update_link_fd" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_LINK_UPDATE_LINK_FD 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "link_update.new_prog_fd" "ac_cv_member_union_bpf_attr_link_update_new_prog_fd" "#include +" +if test "x$ac_cv_member_union_bpf_attr_link_update_new_prog_fd" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_LINK_UPDATE_NEW_PROG_FD 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "link_update.old_prog_fd" "ac_cv_member_union_bpf_attr_link_update_old_prog_fd" "#include +" +if test "x$ac_cv_member_union_bpf_attr_link_update_old_prog_fd" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_LINK_UPDATE_OLD_PROG_FD 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "log_buf" "ac_cv_member_union_bpf_attr_log_buf" "#include +" +if test "x$ac_cv_member_union_bpf_attr_log_buf" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_LOG_BUF 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "log_level" "ac_cv_member_union_bpf_attr_log_level" "#include +" +if test "x$ac_cv_member_union_bpf_attr_log_level" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_LOG_LEVEL 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "log_size" "ac_cv_member_union_bpf_attr_log_size" "#include +" +if test "x$ac_cv_member_union_bpf_attr_log_size" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_LOG_SIZE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "map_fd" "ac_cv_member_union_bpf_attr_map_fd" "#include +" +if test "x$ac_cv_member_union_bpf_attr_map_fd" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_MAP_FD 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "map_flags" "ac_cv_member_union_bpf_attr_map_flags" "#include +" +if test "x$ac_cv_member_union_bpf_attr_map_flags" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_MAP_FLAGS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "map_id" "ac_cv_member_union_bpf_attr_map_id" "#include +" +if test "x$ac_cv_member_union_bpf_attr_map_id" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_MAP_ID 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "map_ifindex" "ac_cv_member_union_bpf_attr_map_ifindex" "#include +" +if test "x$ac_cv_member_union_bpf_attr_map_ifindex" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_MAP_IFINDEX 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "map_name" "ac_cv_member_union_bpf_attr_map_name" "#include +" +if test "x$ac_cv_member_union_bpf_attr_map_name" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_MAP_NAME 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "map_type" "ac_cv_member_union_bpf_attr_map_type" "#include +" +if test "x$ac_cv_member_union_bpf_attr_map_type" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_MAP_TYPE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "max_entries" "ac_cv_member_union_bpf_attr_max_entries" "#include +" +if test "x$ac_cv_member_union_bpf_attr_max_entries" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_MAX_ENTRIES 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "next_id" "ac_cv_member_union_bpf_attr_next_id" "#include +" +if test "x$ac_cv_member_union_bpf_attr_next_id" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_NEXT_ID 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "next_key" "ac_cv_member_union_bpf_attr_next_key" "#include +" +if test "x$ac_cv_member_union_bpf_attr_next_key" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_NEXT_KEY 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "numa_node" "ac_cv_member_union_bpf_attr_numa_node" "#include +" +if test "x$ac_cv_member_union_bpf_attr_numa_node" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_NUMA_NODE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "open_flags" "ac_cv_member_union_bpf_attr_open_flags" "#include +" +if test "x$ac_cv_member_union_bpf_attr_open_flags" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_OPEN_FLAGS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "pathname" "ac_cv_member_union_bpf_attr_pathname" "#include +" +if test "x$ac_cv_member_union_bpf_attr_pathname" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_PATHNAME 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "prog_btf_fd" "ac_cv_member_union_bpf_attr_prog_btf_fd" "#include +" +if test "x$ac_cv_member_union_bpf_attr_prog_btf_fd" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_PROG_BTF_FD 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "prog_flags" "ac_cv_member_union_bpf_attr_prog_flags" "#include +" +if test "x$ac_cv_member_union_bpf_attr_prog_flags" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_PROG_FLAGS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "prog_id" "ac_cv_member_union_bpf_attr_prog_id" "#include +" +if test "x$ac_cv_member_union_bpf_attr_prog_id" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_PROG_ID 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "prog_ifindex" "ac_cv_member_union_bpf_attr_prog_ifindex" "#include +" +if test "x$ac_cv_member_union_bpf_attr_prog_ifindex" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_PROG_IFINDEX 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "prog_name" "ac_cv_member_union_bpf_attr_prog_name" "#include +" +if test "x$ac_cv_member_union_bpf_attr_prog_name" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_PROG_NAME 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "prog_type" "ac_cv_member_union_bpf_attr_prog_type" "#include +" +if test "x$ac_cv_member_union_bpf_attr_prog_type" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_PROG_TYPE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "query.attach_flags" "ac_cv_member_union_bpf_attr_query_attach_flags" "#include +" +if test "x$ac_cv_member_union_bpf_attr_query_attach_flags" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_QUERY_ATTACH_FLAGS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "query.attach_type" "ac_cv_member_union_bpf_attr_query_attach_type" "#include +" +if test "x$ac_cv_member_union_bpf_attr_query_attach_type" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_QUERY_ATTACH_TYPE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "query.prog_cnt" "ac_cv_member_union_bpf_attr_query_prog_cnt" "#include +" +if test "x$ac_cv_member_union_bpf_attr_query_prog_cnt" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_QUERY_PROG_CNT 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "query.prog_ids" "ac_cv_member_union_bpf_attr_query_prog_ids" "#include +" +if test "x$ac_cv_member_union_bpf_attr_query_prog_ids" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_QUERY_PROG_IDS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "query.query_flags" "ac_cv_member_union_bpf_attr_query_query_flags" "#include +" +if test "x$ac_cv_member_union_bpf_attr_query_query_flags" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_QUERY_QUERY_FLAGS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "query.target_fd" "ac_cv_member_union_bpf_attr_query_target_fd" "#include +" +if test "x$ac_cv_member_union_bpf_attr_query_target_fd" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_QUERY_TARGET_FD 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "raw_tracepoint.name" "ac_cv_member_union_bpf_attr_raw_tracepoint_name" "#include +" +if test "x$ac_cv_member_union_bpf_attr_raw_tracepoint_name" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_RAW_TRACEPOINT_NAME 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "raw_tracepoint.prog_fd" "ac_cv_member_union_bpf_attr_raw_tracepoint_prog_fd" "#include +" +if test "x$ac_cv_member_union_bpf_attr_raw_tracepoint_prog_fd" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_RAW_TRACEPOINT_PROG_FD 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "replace_bpf_fd" "ac_cv_member_union_bpf_attr_replace_bpf_fd" "#include +" +if test "x$ac_cv_member_union_bpf_attr_replace_bpf_fd" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_REPLACE_BPF_FD 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "start_id" "ac_cv_member_union_bpf_attr_start_id" "#include +" +if test "x$ac_cv_member_union_bpf_attr_start_id" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_START_ID 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "target_fd" "ac_cv_member_union_bpf_attr_target_fd" "#include +" +if test "x$ac_cv_member_union_bpf_attr_target_fd" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_TARGET_FD 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "task_fd_query.buf" "ac_cv_member_union_bpf_attr_task_fd_query_buf" "#include +" +if test "x$ac_cv_member_union_bpf_attr_task_fd_query_buf" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_BUF 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "task_fd_query.buf_len" "ac_cv_member_union_bpf_attr_task_fd_query_buf_len" "#include +" +if test "x$ac_cv_member_union_bpf_attr_task_fd_query_buf_len" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_BUF_LEN 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "task_fd_query.fd" "ac_cv_member_union_bpf_attr_task_fd_query_fd" "#include +" +if test "x$ac_cv_member_union_bpf_attr_task_fd_query_fd" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_FD 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "task_fd_query.fd_type" "ac_cv_member_union_bpf_attr_task_fd_query_fd_type" "#include +" +if test "x$ac_cv_member_union_bpf_attr_task_fd_query_fd_type" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_FD_TYPE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "task_fd_query.flags" "ac_cv_member_union_bpf_attr_task_fd_query_flags" "#include +" +if test "x$ac_cv_member_union_bpf_attr_task_fd_query_flags" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_FLAGS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "task_fd_query.pid" "ac_cv_member_union_bpf_attr_task_fd_query_pid" "#include +" +if test "x$ac_cv_member_union_bpf_attr_task_fd_query_pid" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_PID 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "task_fd_query.probe_addr" "ac_cv_member_union_bpf_attr_task_fd_query_probe_addr" "#include +" +if test "x$ac_cv_member_union_bpf_attr_task_fd_query_probe_addr" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_PROBE_ADDR 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "task_fd_query.probe_offset" "ac_cv_member_union_bpf_attr_task_fd_query_probe_offset" "#include +" +if test "x$ac_cv_member_union_bpf_attr_task_fd_query_probe_offset" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_PROBE_OFFSET 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "task_fd_query.prog_id" "ac_cv_member_union_bpf_attr_task_fd_query_prog_id" "#include +" +if test "x$ac_cv_member_union_bpf_attr_task_fd_query_prog_id" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_PROG_ID 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "test.ctx_in" "ac_cv_member_union_bpf_attr_test_ctx_in" "#include +" +if test "x$ac_cv_member_union_bpf_attr_test_ctx_in" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_TEST_CTX_IN 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "test.ctx_out" "ac_cv_member_union_bpf_attr_test_ctx_out" "#include +" +if test "x$ac_cv_member_union_bpf_attr_test_ctx_out" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_TEST_CTX_OUT 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "test.ctx_size_in" "ac_cv_member_union_bpf_attr_test_ctx_size_in" "#include +" +if test "x$ac_cv_member_union_bpf_attr_test_ctx_size_in" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_TEST_CTX_SIZE_IN 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "test.ctx_size_out" "ac_cv_member_union_bpf_attr_test_ctx_size_out" "#include +" +if test "x$ac_cv_member_union_bpf_attr_test_ctx_size_out" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_TEST_CTX_SIZE_OUT 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "test.data_in" "ac_cv_member_union_bpf_attr_test_data_in" "#include +" +if test "x$ac_cv_member_union_bpf_attr_test_data_in" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_TEST_DATA_IN 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "test.data_out" "ac_cv_member_union_bpf_attr_test_data_out" "#include +" +if test "x$ac_cv_member_union_bpf_attr_test_data_out" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_TEST_DATA_OUT 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "test.data_size_in" "ac_cv_member_union_bpf_attr_test_data_size_in" "#include +" +if test "x$ac_cv_member_union_bpf_attr_test_data_size_in" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_TEST_DATA_SIZE_IN 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "test.data_size_out" "ac_cv_member_union_bpf_attr_test_data_size_out" "#include +" +if test "x$ac_cv_member_union_bpf_attr_test_data_size_out" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_TEST_DATA_SIZE_OUT 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "test.duration" "ac_cv_member_union_bpf_attr_test_duration" "#include +" +if test "x$ac_cv_member_union_bpf_attr_test_duration" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_TEST_DURATION 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "test.prog_fd" "ac_cv_member_union_bpf_attr_test_prog_fd" "#include +" +if test "x$ac_cv_member_union_bpf_attr_test_prog_fd" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_TEST_PROG_FD 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "test.repeat" "ac_cv_member_union_bpf_attr_test_repeat" "#include +" +if test "x$ac_cv_member_union_bpf_attr_test_repeat" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_TEST_REPEAT 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "test.retval" "ac_cv_member_union_bpf_attr_test_retval" "#include +" +if test "x$ac_cv_member_union_bpf_attr_test_retval" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_TEST_RETVAL 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "value" "ac_cv_member_union_bpf_attr_value" "#include +" +if test "x$ac_cv_member_union_bpf_attr_value" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_VALUE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "value_size" "ac_cv_member_union_bpf_attr_value_size" "#include +" +if test "x$ac_cv_member_union_bpf_attr_value_size" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_VALUE_SIZE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "union bpf_attr" "dummy" "ac_cv_member_union_bpf_attr_dummy" "#include +" +if test "x$ac_cv_member_union_bpf_attr_dummy" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UNION_BPF_ATTR_DUMMY 1 +_ACEOF + + +fi + + + +fi + +done + + +for ac_header in linux/io_uring.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "linux/io_uring.h" "ac_cv_header_linux_io_uring_h" "$ac_includes_default" +if test "x$ac_cv_header_linux_io_uring_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LINUX_IO_URING_H 1 +_ACEOF + + ac_fn_c_check_member "$LINENO" "struct io_cqring_offsets" "flags" "ac_cv_member_struct_io_cqring_offsets_flags" "#include +" +if test "x$ac_cv_member_struct_io_cqring_offsets_flags" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IO_CQRING_OFFSETS_FLAGS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct io_uring_params" "features" "ac_cv_member_struct_io_uring_params_features" "#include +" +if test "x$ac_cv_member_struct_io_uring_params_features" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IO_URING_PARAMS_FEATURES 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct io_uring_params" "wq_fd" "ac_cv_member_struct_io_uring_params_wq_fd" "#include +" +if test "x$ac_cv_member_struct_io_uring_params_wq_fd" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IO_URING_PARAMS_WQ_FD 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct io_uring_params" "resv" "ac_cv_member_struct_io_uring_params_resv" "#include +" +if test "x$ac_cv_member_struct_io_uring_params_resv" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IO_URING_PARAMS_RESV 1 +_ACEOF + + +fi + + +fi + +done + + +for ac_header in bluetooth/bluetooth.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "bluetooth/bluetooth.h" "ac_cv_header_bluetooth_bluetooth_h" "$ac_includes_default" +if test "x$ac_cv_header_bluetooth_bluetooth_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_BLUETOOTH_BLUETOOTH_H 1 +_ACEOF + + ac_fn_c_check_member "$LINENO" "struct sockaddr_hci" "hci_channel" "ac_cv_member_struct_sockaddr_hci_hci_channel" "#include + #include +" +if test "x$ac_cv_member_struct_sockaddr_hci_hci_channel" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL 1 +_ACEOF + + +fi + + ac_fn_c_check_member "$LINENO" "struct sockaddr_l2" "l2_bdaddr_type" "ac_cv_member_struct_sockaddr_l2_l2_bdaddr_type" "#include + #include +" +if test "x$ac_cv_member_struct_sockaddr_l2_l2_bdaddr_type" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_SOCKADDR_L2_L2_BDADDR_TYPE 1 +_ACEOF + + +fi + + +fi + +done + + +ac_fn_c_check_member "$LINENO" "struct br_mdb_entry" "flags" "ac_cv_member_struct_br_mdb_entry_flags" "#include +#include +" +if test "x$ac_cv_member_struct_br_mdb_entry_flags" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BR_MDB_ENTRY_FLAGS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct br_mdb_entry" "vid" "ac_cv_member_struct_br_mdb_entry_vid" "#include +#include +" +if test "x$ac_cv_member_struct_br_mdb_entry_vid" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BR_MDB_ENTRY_VID 1 +_ACEOF + + +fi + + +ac_fn_c_check_type "$LINENO" "struct dcbmsg" "ac_cv_type_struct_dcbmsg" "#include +" +if test "x$ac_cv_type_struct_dcbmsg" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_DCBMSG 1 +_ACEOF + + +fi + +ac_fn_c_check_type "$LINENO" "struct ifaddrlblmsg" "ac_cv_type_struct_ifaddrlblmsg" "#include +" +if test "x$ac_cv_type_struct_ifaddrlblmsg" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IFADDRLBLMSG 1 +_ACEOF + + +fi + +ac_fn_c_check_type "$LINENO" "struct netconfmsg" "ac_cv_type_struct_netconfmsg" "#include +" +if test "x$ac_cv_type_struct_netconfmsg" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_NETCONFMSG 1 +_ACEOF + + +fi + + +ac_fn_c_check_type "$LINENO" "struct ifla_cacheinfo" "ac_cv_type_struct_ifla_cacheinfo" "#include +#include +" +if test "x$ac_cv_type_struct_ifla_cacheinfo" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IFLA_CACHEINFO 1 +_ACEOF + + +fi + + +ac_fn_c_check_type "$LINENO" "struct gnet_stats_basic" "ac_cv_type_struct_gnet_stats_basic" "#include +" +if test "x$ac_cv_type_struct_gnet_stats_basic" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_GNET_STATS_BASIC 1 +_ACEOF + + +fi +ac_fn_c_check_type "$LINENO" "struct gnet_stats_queue" "ac_cv_type_struct_gnet_stats_queue" "#include +" +if test "x$ac_cv_type_struct_gnet_stats_queue" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_GNET_STATS_QUEUE 1 +_ACEOF + + +fi +ac_fn_c_check_type "$LINENO" "struct gnet_stats_rate_est" "ac_cv_type_struct_gnet_stats_rate_est" "#include +" +if test "x$ac_cv_type_struct_gnet_stats_rate_est" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_GNET_STATS_RATE_EST 1 +_ACEOF + + +fi +ac_fn_c_check_type "$LINENO" "struct gnet_stats_rate_est64" "ac_cv_type_struct_gnet_stats_rate_est64" "#include +" +if test "x$ac_cv_type_struct_gnet_stats_rate_est64" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_GNET_STATS_RATE_EST64 1 +_ACEOF + + +fi + + +ac_fn_c_check_type "$LINENO" "struct tc_sizespec" "ac_cv_type_struct_tc_sizespec" "#include +#include +" +if test "x$ac_cv_type_struct_tc_sizespec" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TC_SIZESPEC 1 +_ACEOF + + +fi + + +ac_fn_c_check_type "$LINENO" "struct fib_rule_uid_range" "ac_cv_type_struct_fib_rule_uid_range" "#include +#include +" +if test "x$ac_cv_type_struct_fib_rule_uid_range" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_FIB_RULE_UID_RANGE 1 +_ACEOF + + +fi +ac_fn_c_check_type "$LINENO" "struct fib_rule_port_range" "ac_cv_type_struct_fib_rule_port_range" "#include +#include +" +if test "x$ac_cv_type_struct_fib_rule_port_range" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_FIB_RULE_PORT_RANGE 1 +_ACEOF + + +fi + + +ac_fn_c_check_type "$LINENO" "struct statfs" "ac_cv_type_struct_statfs" "#include +#include +" +if test "x$ac_cv_type_struct_statfs" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STATFS 1 +_ACEOF + + + ac_fn_c_check_member "$LINENO" "struct statfs" "f_frsize" "ac_cv_member_struct_statfs_f_frsize" "#include +#include +" +if test "x$ac_cv_member_struct_statfs_f_frsize" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STATFS_F_FRSIZE 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct statfs" "f_flags" "ac_cv_member_struct_statfs_f_flags" "#include +#include +" +if test "x$ac_cv_member_struct_statfs_f_flags" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STATFS_F_FLAGS 1 +_ACEOF + + +fi +ac_fn_c_check_member "$LINENO" "struct statfs" "f_fsid.val" "ac_cv_member_struct_statfs_f_fsid_val" "#include +#include +" +if test "x$ac_cv_member_struct_statfs_f_fsid_val" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STATFS_F_FSID_VAL 1 +_ACEOF + + fi -rm -f conftest.err conftest.i conftest.$ac_ext +ac_fn_c_check_member "$LINENO" "struct statfs" "f_fsid.__val" "ac_cv_member_struct_statfs_f_fsid___val" "#include +#include +" +if test "x$ac_cv_member_struct_statfs_f_fsid___val" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STATFS_F_FSID___VAL 1 +_ACEOF -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP_FOR_BUILD\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } fi -ac_ext=c -ac_cpp='$CPP_FOR_BUILD $CPPFLAGS_FOR_BUILD' -ac_compile='$CC_FOR_BUILD -c $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD conftest.$ac_ext >&5' -ac_link='$CC_FOR_BUILD -o conftest$ac_build_exeext $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD $LDFLAGS_FOR_BUILD conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu +fi -if test x${gl_build_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else +ac_fn_c_check_type "$LINENO" "struct statfs64" "ac_cv_type_struct_statfs64" "#include +#include +" +if test "x$ac_cv_type_struct_statfs64" = xyes; then : - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STATFS64 1 +_ACEOF -int -main () -{ - ; - return 0; -} + ac_fn_c_check_member "$LINENO" "struct statfs64" "f_frsize" "ac_cv_member_struct_statfs64_f_frsize" "#include +#include +" +if test "x$ac_cv_member_struct_statfs64_f_frsize" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STATFS64_F_FRSIZE 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : - gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_build_unknown_warnings_are_errors= -fi +ac_fn_c_check_member "$LINENO" "struct statfs64" "f_flags" "ac_cv_member_struct_statfs64_f_flags" "#include +#include +" +if test "x$ac_cv_member_struct_statfs64_f_flags" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STATFS64_F_FLAGS 1 +_ACEOF fi +ac_fn_c_check_member "$LINENO" "struct statfs64" "f_fsid.val" "ac_cv_member_struct_statfs64_f_fsid_val" "#include +#include +" +if test "x$ac_cv_member_struct_statfs64_f_fsid_val" = xyes; then : -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Wall" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Wall... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Wall+:} false; then : - $as_echo_n "(cached) " >&6 -else +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STATFS64_F_FSID_VAL 1 +_ACEOF - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Wall" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int -main () -{ +fi +ac_fn_c_check_member "$LINENO" "struct statfs64" "f_fsid.__val" "ac_cv_member_struct_statfs64_f_fsid___val" "#include +#include +" +if test "x$ac_cv_member_struct_statfs64_f_fsid___val" = xyes; then : - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STATFS64_F_FSID___VAL 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Wall=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Wall=no -fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Wall" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Wall" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Wall" = xyes; then : - as_fn_append WARN_CFLAGS_FOR_BUILD " -Wall" + fi -if test x${gl_build_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else +fi - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int -main () -{ +ac_fn_c_check_type "$LINENO" "struct statx" "ac_cv_type_struct_statx" "#include +#include +" +if test "x$ac_cv_type_struct_statx" = xyes; then : - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STATX 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : - gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_build_unknown_warnings_are_errors= + fi -fi +ac_fn_c_check_type "$LINENO" "struct blk_user_trace_setup" "ac_cv_type_struct_blk_user_trace_setup" "#include +" +if test "x$ac_cv_type_struct_blk_user_trace_setup" = xyes; then : -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Wempty-body" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Wempty-body... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Wempty_body+:} false; then : - $as_echo_n "(cached) " >&6 -else +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BLK_USER_TRACE_SETUP 1 +_ACEOF - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Wempty-body" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int -main () -{ +fi - ; - return 0; -} + +ac_fn_c_check_type "$LINENO" "struct mtd_write_req" "ac_cv_type_struct_mtd_write_req" "#include +" +if test "x$ac_cv_type_struct_mtd_write_req" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_MTD_WRITE_REQ 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Wempty_body=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Wempty_body=no -fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Wempty_body" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Wempty_body" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Wempty_body" = xyes; then : - as_fn_append WARN_CFLAGS_FOR_BUILD " -Wempty-body" + fi -if test x${gl_build_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else +ac_fn_c_check_member "$LINENO" "struct ubi_attach_req" "max_beb_per1024" "ac_cv_member_struct_ubi_attach_req_max_beb_per1024" "#include +" +if test "x$ac_cv_member_struct_ubi_attach_req_max_beb_per1024" = xyes; then : - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_UBI_ATTACH_REQ_MAX_BEB_PER1024 1 +_ACEOF -int -main () -{ - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + + +ac_fn_c_check_type "$LINENO" "struct ptp_sys_offset" "ac_cv_type_struct_ptp_sys_offset" "#include +" +if test "x$ac_cv_type_struct_ptp_sys_offset" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PTP_SYS_OFFSET 1 +_ACEOF + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : - gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_build_unknown_warnings_are_errors= -fi + + +ac_fn_c_check_type "$LINENO" "struct kvm_cpuid2" "ac_cv_type_struct_kvm_cpuid2" "#include +" +if test "x$ac_cv_type_struct_kvm_cpuid2" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_KVM_CPUID2 1 +_ACEOF fi +ac_fn_c_check_type "$LINENO" "struct kvm_regs" "ac_cv_type_struct_kvm_regs" "#include +" +if test "x$ac_cv_type_struct_kvm_regs" = xyes; then : -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Wformat-security" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Wformat-security... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Wformat_security+:} false; then : - $as_echo_n "(cached) " >&6 -else +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_KVM_REGS 1 +_ACEOF - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Wformat-security" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int -main () -{ +fi +ac_fn_c_check_type "$LINENO" "struct kvm_sregs" "ac_cv_type_struct_kvm_sregs" "#include +" +if test "x$ac_cv_type_struct_kvm_sregs" = xyes; then : - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_KVM_SREGS 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Wformat_security=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Wformat_security=no -fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Wformat_security" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Wformat_security" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Wformat_security" = xyes; then : - as_fn_append WARN_CFLAGS_FOR_BUILD " -Wformat-security" +ac_fn_c_check_type "$LINENO" "struct kvm_userspace_memory_region" "ac_cv_type_struct_kvm_userspace_memory_region" "#include +" +if test "x$ac_cv_type_struct_kvm_userspace_memory_region" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_KVM_USERSPACE_MEMORY_REGION 1 +_ACEOF + + fi -if test x${gl_build_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : +saved_CPPFLAGS="$CPPFLAGS" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether can be used along with " >&5 +$as_echo_n "checking whether can be used along with ... " >&6; } +if ${st_cv_linux_signal+:} false; then : $as_echo_n "(cached) " >&6 else - - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int -main () -{ - - ; - return 0; -} +#include +#include _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes +if ac_fn_c_try_compile "$LINENO"; then : + st_cv_linux_signal=yes else - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no + st_cv_linux_signal=no fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" - +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : - gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_build_unknown_warnings_are_errors= +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $st_cv_linux_signal" >&5 +$as_echo "$st_cv_linux_signal" >&6; } +if test "x$st_cv_linux_signal" = xno; then + mkdir -p linux/linux + cp $srcdir/linux/signal.h.in linux/linux/signal.h + CPPFLAGS="$CPPFLAGS -Ilinux" fi +ac_fn_c_check_type "$LINENO" "struct __aio_sigset" "ac_cv_type_struct___aio_sigset" "#include +" +if test "x$ac_cv_type_struct___aio_sigset" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT___AIO_SIGSET 1 +_ACEOF -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Wignored-qualifiers" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Wignored-qualifiers... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Wignored_qualifiers+:} false; then : - $as_echo_n "(cached) " >&6 -else +fi - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Wignored-qualifiers" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int -main () -{ +ac_fn_c_check_member "$LINENO" "struct iocb" "aio_flags" "ac_cv_member_struct_iocb_aio_flags" "#include +" +if test "x$ac_cv_member_struct_iocb_aio_flags" = xyes; then : - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IOCB_AIO_FLAGS 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Wignored_qualifiers=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Wignored_qualifiers=no + + fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" +ac_fn_c_check_member "$LINENO" "struct iocb" "aio_rw_flags" "ac_cv_member_struct_iocb_aio_rw_flags" "#include +" +if test "x$ac_cv_member_struct_iocb_aio_rw_flags" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IOCB_AIO_RW_FLAGS 1 +_ACEOF + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Wignored_qualifiers" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Wignored_qualifiers" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Wignored_qualifiers" = xyes; then : - as_fn_append WARN_CFLAGS_FOR_BUILD " -Wignored-qualifiers" + + +ac_fn_c_check_member "$LINENO" "struct clone_args" "cgroup" "ac_cv_member_struct_clone_args_cgroup" "#include +" +if test "x$ac_cv_member_struct_clone_args_cgroup" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_CLONE_ARGS_CGROUP 1 +_ACEOF + + fi -if test x${gl_build_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else +CPPFLAGS="$saved_CPPFLAGS" - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +for ac_header in linux/btrfs.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "linux/btrfs.h" "ac_cv_header_linux_btrfs_h" "$ac_includes_default" +if test "x$ac_cv_header_linux_btrfs_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LINUX_BTRFS_H 1 +_ACEOF -int -main () -{ + ac_fn_c_check_member "$LINENO" "struct btrfs_ioctl_feature_flags" "compat_flags" "ac_cv_member_struct_btrfs_ioctl_feature_flags_compat_flags" " #include +#include +" +if test "x$ac_cv_member_struct_btrfs_ioctl_feature_flags_compat_flags" = xyes; then : - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BTRFS_IOCTL_FEATURE_FLAGS_COMPAT_FLAGS 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : - gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_build_unknown_warnings_are_errors= +ac_fn_c_check_member "$LINENO" "struct btrfs_ioctl_fs_info_args" "nodesize" "ac_cv_member_struct_btrfs_ioctl_fs_info_args_nodesize" " #include +#include +" +if test "x$ac_cv_member_struct_btrfs_ioctl_fs_info_args_nodesize" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BTRFS_IOCTL_FS_INFO_ARGS_NODESIZE 1 +_ACEOF + + fi +ac_fn_c_check_member "$LINENO" "struct btrfs_ioctl_defrag_range_args" "start" "ac_cv_member_struct_btrfs_ioctl_defrag_range_args_start" " #include +#include +" +if test "x$ac_cv_member_struct_btrfs_ioctl_defrag_range_args_start" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BTRFS_IOCTL_DEFRAG_RANGE_ARGS_START 1 +_ACEOF fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Wimplicit-fallthrough=5" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Wimplicit-fallthrough=5... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Wimplicit_fallthrough_5+:} false; then : - $as_echo_n "(cached) " >&6 -else +fi - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Wimplicit-fallthrough=5" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +done -int -main () -{ - ; - return 0; -} + + +for ac_header in linux/btrfs.h +do : + ac_fn_c_check_header_compile "$LINENO" "linux/btrfs.h" "ac_cv_header_linux_btrfs_h" "$ac_includes_default +#include +#include +" +if test "x$ac_cv_header_linux_btrfs_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LINUX_BTRFS_H 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Wimplicit_fallthrough_5=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Wimplicit_fallthrough_5=no + + +ac_fn_c_check_type "$LINENO" "struct btrfs_ioctl_logical_ino_args" "ac_cv_type_struct_btrfs_ioctl_logical_ino_args" "$ac_includes_default +#include +#include +#include +" +if test "x$ac_cv_type_struct_btrfs_ioctl_logical_ino_args" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BTRFS_IOCTL_LOGICAL_INO_ARGS 1 +_ACEOF + +ac_fn_c_check_member "$LINENO" "struct btrfs_ioctl_logical_ino_args" "inodes" "ac_cv_member_struct_btrfs_ioctl_logical_ino_args_inodes" "$ac_includes_default +#include +#include +#include +" +if test "x$ac_cv_member_struct_btrfs_ioctl_logical_ino_args_inodes" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BTRFS_IOCTL_LOGICAL_INO_ARGS_INODES 1 +_ACEOF + + fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Wimplicit_fallthrough_5" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Wimplicit_fallthrough_5" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Wimplicit_fallthrough_5" = xyes; then : - as_fn_append WARN_CFLAGS_FOR_BUILD " -Wimplicit-fallthrough=5" + + fi +done -if test x${gl_build_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +for ac_header in linux/cryptouser.h +do : + ac_fn_c_check_header_compile "$LINENO" "linux/cryptouser.h" "ac_cv_header_linux_cryptouser_h" "$ac_includes_default -int -main () -{ +" +if test "x$ac_cv_header_linux_cryptouser_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LINUX_CRYPTOUSER_H 1 +_ACEOF - ; - return 0; -} + +ac_fn_c_check_type "$LINENO" "struct crypto_user_alg" "ac_cv_type_struct_crypto_user_alg" "$ac_includes_default +#include +" +if test "x$ac_cv_type_struct_crypto_user_alg" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_CRYPTO_USER_ALG 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : - gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_build_unknown_warnings_are_errors= -fi +ac_fn_c_check_member "$LINENO" "struct crypto_user_alg" "cru_flags" "ac_cv_member_struct_crypto_user_alg_cru_flags" "$ac_includes_default +#include +" +if test "x$ac_cv_member_struct_crypto_user_alg_cru_flags" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_CRYPTO_USER_ALG_CRU_FLAGS 1 +_ACEOF fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Winit-self" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Winit-self... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Winit_self+:} false; then : - $as_echo_n "(cached) " >&6 -else +fi - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Winit-self" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int -main () -{ +ac_fn_c_check_type "$LINENO" "struct crypto_report_hash" "ac_cv_type_struct_crypto_report_hash" "$ac_includes_default +#include +" +if test "x$ac_cv_type_struct_crypto_report_hash" = xyes; then : - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_CRYPTO_REPORT_HASH 1 +_ACEOF + +ac_fn_c_check_member "$LINENO" "struct crypto_report_hash" "digestsize" "ac_cv_member_struct_crypto_report_hash_digestsize" "$ac_includes_default +#include +" +if test "x$ac_cv_member_struct_crypto_report_hash_digestsize" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_CRYPTO_REPORT_HASH_DIGESTSIZE 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Winit_self=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Winit_self=no -fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Winit_self" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Winit_self" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Winit_self" = xyes; then : - as_fn_append WARN_CFLAGS_FOR_BUILD " -Winit-self" + fi -if test x${gl_build_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else +ac_fn_c_check_type "$LINENO" "struct crypto_report_cipher" "ac_cv_type_struct_crypto_report_cipher" "$ac_includes_default +#include +" +if test "x$ac_cv_type_struct_crypto_report_cipher" = xyes; then : - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_CRYPTO_REPORT_CIPHER 1 +_ACEOF -int -main () -{ +ac_fn_c_check_member "$LINENO" "struct crypto_report_cipher" "max_keysize" "ac_cv_member_struct_crypto_report_cipher_max_keysize" "$ac_includes_default +#include +" +if test "x$ac_cv_member_struct_crypto_report_cipher_max_keysize" = xyes; then : - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_CRYPTO_REPORT_CIPHER_MAX_KEYSIZE 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : - gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_build_unknown_warnings_are_errors= -fi +fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Winitializer-overrides" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Winitializer-overrides... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Winitializer_overrides+:} false; then : - $as_echo_n "(cached) " >&6 -else - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Winitializer-overrides" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +ac_fn_c_check_type "$LINENO" "struct crypto_report_blkcipher" "ac_cv_type_struct_crypto_report_blkcipher" "$ac_includes_default +#include +" +if test "x$ac_cv_type_struct_crypto_report_blkcipher" = xyes; then : -int -main () -{ +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_CRYPTO_REPORT_BLKCIPHER 1 +_ACEOF - ; - return 0; -} +ac_fn_c_check_member "$LINENO" "struct crypto_report_blkcipher" "ivsize" "ac_cv_member_struct_crypto_report_blkcipher_ivsize" "$ac_includes_default +#include +" +if test "x$ac_cv_member_struct_crypto_report_blkcipher_ivsize" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_CRYPTO_REPORT_BLKCIPHER_IVSIZE 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Winitializer_overrides=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Winitializer_overrides=no -fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Winitializer_overrides" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Winitializer_overrides" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Winitializer_overrides" = xyes; then : - as_fn_append WARN_CFLAGS_FOR_BUILD " -Winitializer-overrides" + fi -if test x${gl_build_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else +ac_fn_c_check_type "$LINENO" "struct crypto_report_aead" "ac_cv_type_struct_crypto_report_aead" "$ac_includes_default +#include +" +if test "x$ac_cv_type_struct_crypto_report_aead" = xyes; then : - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_CRYPTO_REPORT_AEAD 1 +_ACEOF -int -main () -{ +ac_fn_c_check_member "$LINENO" "struct crypto_report_aead" "ivsize" "ac_cv_member_struct_crypto_report_aead_ivsize" "$ac_includes_default +#include +" +if test "x$ac_cv_member_struct_crypto_report_aead_ivsize" = xyes; then : - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_CRYPTO_REPORT_AEAD_IVSIZE 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : - gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_build_unknown_warnings_are_errors= -fi +fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Wlogical-op" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Wlogical-op... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Wlogical_op+:} false; then : - $as_echo_n "(cached) " >&6 -else - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Wlogical-op" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +ac_fn_c_check_type "$LINENO" "struct crypto_report_rng" "ac_cv_type_struct_crypto_report_rng" "$ac_includes_default +#include +" +if test "x$ac_cv_type_struct_crypto_report_rng" = xyes; then : -int -main () -{ +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_CRYPTO_REPORT_RNG 1 +_ACEOF - ; - return 0; -} +ac_fn_c_check_member "$LINENO" "struct crypto_report_rng" "seedsize" "ac_cv_member_struct_crypto_report_rng_seedsize" "$ac_includes_default +#include +" +if test "x$ac_cv_member_struct_crypto_report_rng_seedsize" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_CRYPTO_REPORT_RNG_SEEDSIZE 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Wlogical_op=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Wlogical_op=no + + fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Wlogical_op" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Wlogical_op" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Wlogical_op" = xyes; then : - as_fn_append WARN_CFLAGS_FOR_BUILD " -Wlogical-op" + + fi +done + + +for ac_header in linux/input.h +do : + ac_fn_c_check_header_compile "$LINENO" "linux/input.h" "ac_cv_header_linux_input_h" "$ac_includes_default + +" +if test "x$ac_cv_header_linux_input_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LINUX_INPUT_H 1 +_ACEOF -if test x${gl_build_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +ac_fn_c_check_type "$LINENO" "struct input_absinfo" "ac_cv_type_struct_input_absinfo" "$ac_includes_default +#include +" +if test "x$ac_cv_type_struct_input_absinfo" = xyes; then : -int -main () -{ +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_INPUT_ABSINFO 1 +_ACEOF - ; - return 0; -} +ac_fn_c_check_member "$LINENO" "struct input_absinfo" "resolution" "ac_cv_member_struct_input_absinfo_resolution" "$ac_includes_default +#include +" +if test "x$ac_cv_member_struct_input_absinfo_resolution" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_INPUT_ABSINFO_RESOLUTION 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : - gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_build_unknown_warnings_are_errors= -fi +fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Wmissing-parameter-type" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Wmissing-parameter-type... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Wmissing_parameter_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Wmissing-parameter-type" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +ac_fn_c_check_type "$LINENO" "struct input_keymap_entry" "ac_cv_type_struct_input_keymap_entry" "$ac_includes_default +#include +" +if test "x$ac_cv_type_struct_input_keymap_entry" = xyes; then : -int -main () -{ +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_INPUT_KEYMAP_ENTRY 1 +_ACEOF - ; - return 0; -} +ac_fn_c_check_member "$LINENO" "struct input_keymap_entry" "scancode" "ac_cv_member_struct_input_keymap_entry_scancode" "$ac_includes_default +#include +" +if test "x$ac_cv_member_struct_input_keymap_entry_scancode" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_INPUT_KEYMAP_ENTRY_SCANCODE 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Wmissing_parameter_type=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Wmissing_parameter_type=no -fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Wmissing_parameter_type" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Wmissing_parameter_type" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Wmissing_parameter_type" = xyes; then : - as_fn_append WARN_CFLAGS_FOR_BUILD " -Wmissing-parameter-type" + fi -if test x${gl_build_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else +ac_fn_c_check_type "$LINENO" "struct input_mask" "ac_cv_type_struct_input_mask" "$ac_includes_default +#include +" +if test "x$ac_cv_type_struct_input_mask" = xyes; then : - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_INPUT_MASK 1 +_ACEOF -int -main () -{ +ac_fn_c_check_member "$LINENO" "struct input_mask" "codes_ptr" "ac_cv_member_struct_input_mask_codes_ptr" "$ac_includes_default +#include +" +if test "x$ac_cv_member_struct_input_mask_codes_ptr" = xyes; then : - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_INPUT_MASK_CODES_PTR 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : - gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_build_unknown_warnings_are_errors= + fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Wnested-externs" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Wnested-externs... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Wnested_externs+:} false; then : - $as_echo_n "(cached) " >&6 -else +done - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Wnested-externs" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int -main () -{ +for ac_header in linux/io_uring.h +do : + ac_fn_c_check_header_compile "$LINENO" "linux/io_uring.h" "ac_cv_header_linux_io_uring_h" "$ac_includes_default - ; - return 0; -} +" +if test "x$ac_cv_header_linux_io_uring_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LINUX_IO_URING_H 1 +_ACEOF + + +ac_fn_c_check_type "$LINENO" "struct io_sqring_offsets" "ac_cv_type_struct_io_sqring_offsets" "$ac_includes_default +#include +" +if test "x$ac_cv_type_struct_io_sqring_offsets" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IO_SQRING_OFFSETS 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Wnested_externs=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Wnested_externs=no -fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +ac_fn_c_check_member "$LINENO" "struct io_sqring_offsets" "resv2" "ac_cv_member_struct_io_sqring_offsets_resv2" "$ac_includes_default +#include +" +if test "x$ac_cv_member_struct_io_sqring_offsets_resv2" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IO_SQRING_OFFSETS_RESV2 1 +_ACEOF + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Wnested_externs" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Wnested_externs" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Wnested_externs" = xyes; then : - as_fn_append WARN_CFLAGS_FOR_BUILD " -Wnested-externs" + fi -if test x${gl_build_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else +ac_fn_c_check_type "$LINENO" "struct io_cqring_offsets" "ac_cv_type_struct_io_cqring_offsets" "$ac_includes_default +#include +" +if test "x$ac_cv_type_struct_io_cqring_offsets" = xyes; then : - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IO_CQRING_OFFSETS 1 +_ACEOF -int -main () -{ +ac_fn_c_check_member "$LINENO" "struct io_cqring_offsets" "cqes" "ac_cv_member_struct_io_cqring_offsets_cqes" "$ac_includes_default +#include +" +if test "x$ac_cv_member_struct_io_cqring_offsets_cqes" = xyes; then : - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IO_CQRING_OFFSETS_CQES 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : - gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_build_unknown_warnings_are_errors= -fi +fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Wold-style-declaration" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Wold-style-declaration... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Wold_style_declaration+:} false; then : - $as_echo_n "(cached) " >&6 -else - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Wold-style-declaration" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +ac_fn_c_check_type "$LINENO" "struct io_uring_params" "ac_cv_type_struct_io_uring_params" "$ac_includes_default +#include +" +if test "x$ac_cv_type_struct_io_uring_params" = xyes; then : -int -main () -{ +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IO_URING_PARAMS 1 +_ACEOF - ; - return 0; -} +ac_fn_c_check_member "$LINENO" "struct io_uring_params" "cq_off" "ac_cv_member_struct_io_uring_params_cq_off" "$ac_includes_default +#include +" +if test "x$ac_cv_member_struct_io_uring_params_cq_off" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IO_URING_PARAMS_CQ_OFF 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Wold_style_declaration=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Wold_style_declaration=no -fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Wold_style_declaration" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Wold_style_declaration" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Wold_style_declaration" = xyes; then : - as_fn_append WARN_CFLAGS_FOR_BUILD " -Wold-style-declaration" + fi -if test x${gl_build_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else +ac_fn_c_check_type "$LINENO" "struct io_uring_files_update" "ac_cv_type_struct_io_uring_files_update" "$ac_includes_default +#include +" +if test "x$ac_cv_type_struct_io_uring_files_update" = xyes; then : - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IO_URING_FILES_UPDATE 1 +_ACEOF -int -main () -{ +ac_fn_c_check_member "$LINENO" "struct io_uring_files_update" "fds" "ac_cv_member_struct_io_uring_files_update_fds" "$ac_includes_default +#include +" +if test "x$ac_cv_member_struct_io_uring_files_update_fds" = xyes; then : - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IO_URING_FILES_UPDATE_FDS 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : - gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_build_unknown_warnings_are_errors= -fi +fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Wold-style-definition" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Wold-style-definition... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Wold_style_definition+:} false; then : - $as_echo_n "(cached) " >&6 -else - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Wold-style-definition" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +ac_fn_c_check_type "$LINENO" "struct io_uring_probe_op" "ac_cv_type_struct_io_uring_probe_op" "$ac_includes_default +#include +" +if test "x$ac_cv_type_struct_io_uring_probe_op" = xyes; then : -int -main () -{ +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IO_URING_PROBE_OP 1 +_ACEOF - ; - return 0; -} +ac_fn_c_check_member "$LINENO" "struct io_uring_probe_op" "resv2" "ac_cv_member_struct_io_uring_probe_op_resv2" "$ac_includes_default +#include +" +if test "x$ac_cv_member_struct_io_uring_probe_op_resv2" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IO_URING_PROBE_OP_RESV2 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Wold_style_definition=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Wold_style_definition=no -fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Wold_style_definition" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Wold_style_definition" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Wold_style_definition" = xyes; then : - as_fn_append WARN_CFLAGS_FOR_BUILD " -Wold-style-definition" + fi -if test x${gl_build_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else +ac_fn_c_check_type "$LINENO" "struct io_uring_probe" "ac_cv_type_struct_io_uring_probe" "$ac_includes_default +#include +" +if test "x$ac_cv_type_struct_io_uring_probe" = xyes; then : - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IO_URING_PROBE 1 +_ACEOF -int -main () -{ +ac_fn_c_check_member "$LINENO" "struct io_uring_probe" "ops" "ac_cv_member_struct_io_uring_probe_ops" "$ac_includes_default +#include +" +if test "x$ac_cv_member_struct_io_uring_probe_ops" = xyes; then : - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IO_URING_PROBE_OPS 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : - gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_build_unknown_warnings_are_errors= + fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Woverride-init" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Woverride-init... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Woverride_init+:} false; then : - $as_echo_n "(cached) " >&6 -else +done - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Woverride-init" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int -main () -{ +for ac_header in linux/loop.h +do : + ac_fn_c_check_header_compile "$LINENO" "linux/loop.h" "ac_cv_header_linux_loop_h" "$ac_includes_default +#include +" +if test "x$ac_cv_header_linux_loop_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LINUX_LOOP_H 1 +_ACEOF - ; - return 0; -} + +ac_fn_c_check_type "$LINENO" "struct loop_config" "ac_cv_type_struct_loop_config" "$ac_includes_default +#include +#include +" +if test "x$ac_cv_type_struct_loop_config" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_LOOP_CONFIG 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Woverride_init=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Woverride_init=no + +ac_fn_c_check_member "$LINENO" "struct loop_config" "__reserved" "ac_cv_member_struct_loop_config___reserved" "$ac_includes_default +#include +#include +" +if test "x$ac_cv_member_struct_loop_config___reserved" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_LOOP_CONFIG___RESERVED 1 +_ACEOF + + fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Woverride_init" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Woverride_init" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Woverride_init" = xyes; then : - as_fn_append WARN_CFLAGS_FOR_BUILD " -Woverride-init" + + fi +done -if test x${gl_build_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +for ac_header in linux/openat2.h +do : + ac_fn_c_check_header_compile "$LINENO" "linux/openat2.h" "ac_cv_header_linux_openat2_h" "$ac_includes_default -int -main () -{ +" +if test "x$ac_cv_header_linux_openat2_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LINUX_OPENAT2_H 1 +_ACEOF - ; - return 0; -} + +ac_fn_c_check_type "$LINENO" "struct open_how" "ac_cv_type_struct_open_how" "$ac_includes_default +#include +" +if test "x$ac_cv_type_struct_open_how" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_OPEN_HOW 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +ac_fn_c_check_member "$LINENO" "struct open_how" "resolve" "ac_cv_member_struct_open_how_resolve" "$ac_includes_default +#include +" +if test "x$ac_cv_member_struct_open_how_resolve" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_OPEN_HOW_RESOLVE 1 +_ACEOF + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : - gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_build_unknown_warnings_are_errors= + fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Wsign-compare" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Wsign-compare... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Wsign_compare+:} false; then : - $as_echo_n "(cached) " >&6 -else +done - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Wsign-compare" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int -main () -{ +for ac_header in linux/rtnetlink.h +do : + ac_fn_c_check_header_compile "$LINENO" "linux/rtnetlink.h" "ac_cv_header_linux_rtnetlink_h" "$ac_includes_default +#include \"$srcdir/netlink.h\" +" +if test "x$ac_cv_header_linux_rtnetlink_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LINUX_RTNETLINK_H 1 +_ACEOF - ; - return 0; -} + +ac_fn_c_check_type "$LINENO" "struct rtnl_link_stats" "ac_cv_type_struct_rtnl_link_stats" "$ac_includes_default +#include \"$srcdir/netlink.h\" +#include +" +if test "x$ac_cv_type_struct_rtnl_link_stats" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_RTNL_LINK_STATS 1 +_ACEOF + +ac_fn_c_check_member "$LINENO" "struct rtnl_link_stats" "rx_nohandler" "ac_cv_member_struct_rtnl_link_stats_rx_nohandler" "$ac_includes_default +#include \"$srcdir/netlink.h\" +#include +" +if test "x$ac_cv_member_struct_rtnl_link_stats_rx_nohandler" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_RTNL_LINK_STATS_RX_NOHANDLER 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Wsign_compare=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Wsign_compare=no -fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Wsign_compare" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Wsign_compare" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Wsign_compare" = xyes; then : - as_fn_append WARN_CFLAGS_FOR_BUILD " -Wsign-compare" + fi -if test x${gl_build_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else +ac_fn_c_check_type "$LINENO" "struct rtnl_link_stats64" "ac_cv_type_struct_rtnl_link_stats64" "$ac_includes_default +#include \"$srcdir/netlink.h\" +#include +" +if test "x$ac_cv_type_struct_rtnl_link_stats64" = xyes; then : - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_RTNL_LINK_STATS64 1 +_ACEOF -int -main () -{ +ac_fn_c_check_member "$LINENO" "struct rtnl_link_stats64" "rx_nohandler" "ac_cv_member_struct_rtnl_link_stats64_rx_nohandler" "$ac_includes_default +#include \"$srcdir/netlink.h\" +#include +" +if test "x$ac_cv_member_struct_rtnl_link_stats64_rx_nohandler" = xyes; then : - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_RTNL_LINK_STATS64_RX_NOHANDLER 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : - gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_build_unknown_warnings_are_errors= -fi +fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Wtype-limits" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Wtype-limits... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Wtype_limits+:} false; then : - $as_echo_n "(cached) " >&6 -else - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Wtype-limits" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +ac_fn_c_check_type "$LINENO" "struct ifla_bridge_id" "ac_cv_type_struct_ifla_bridge_id" "$ac_includes_default +#include \"$srcdir/netlink.h\" +#include +" +if test "x$ac_cv_type_struct_ifla_bridge_id" = xyes; then : -int -main () -{ +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IFLA_BRIDGE_ID 1 +_ACEOF - ; - return 0; -} +ac_fn_c_check_member "$LINENO" "struct ifla_bridge_id" "addr" "ac_cv_member_struct_ifla_bridge_id_addr" "$ac_includes_default +#include \"$srcdir/netlink.h\" +#include +" +if test "x$ac_cv_member_struct_ifla_bridge_id_addr" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IFLA_BRIDGE_ID_ADDR 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Wtype_limits=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Wtype_limits=no -fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Wtype_limits" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Wtype_limits" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Wtype_limits" = xyes; then : - as_fn_append WARN_CFLAGS_FOR_BUILD " -Wtype-limits" + fi -if test x${gl_build_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else +ac_fn_c_check_type "$LINENO" "struct ifla_port_vsi" "ac_cv_type_struct_ifla_port_vsi" "$ac_includes_default +#include \"$srcdir/netlink.h\" +#include +" +if test "x$ac_cv_type_struct_ifla_port_vsi" = xyes; then : - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IFLA_PORT_VSI 1 +_ACEOF -int -main () -{ +ac_fn_c_check_member "$LINENO" "struct ifla_port_vsi" "pad" "ac_cv_member_struct_ifla_port_vsi_pad" "$ac_includes_default +#include \"$srcdir/netlink.h\" +#include +" +if test "x$ac_cv_member_struct_ifla_port_vsi_pad" = xyes; then : - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_IFLA_PORT_VSI_PAD 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : - gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_build_unknown_warnings_are_errors= + fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Wwrite-strings" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Wwrite-strings... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Wwrite_strings+:} false; then : - $as_echo_n "(cached) " >&6 -else +done - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Wwrite-strings" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int -main () -{ +for ac_header in linux/if_bridge.h +do : + ac_fn_c_check_header_compile "$LINENO" "linux/if_bridge.h" "ac_cv_header_linux_if_bridge_h" "$ac_includes_default +#include +" +if test "x$ac_cv_header_linux_if_bridge_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LINUX_IF_BRIDGE_H 1 +_ACEOF - ; - return 0; -} + +ac_fn_c_check_type "$LINENO" "struct br_port_msg" "ac_cv_type_struct_br_port_msg" "$ac_includes_default +#include +#include +" +if test "x$ac_cv_type_struct_br_port_msg" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BR_PORT_MSG 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Wwrite_strings=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Wwrite_strings=no -fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + +ac_fn_c_check_member "$LINENO" "struct br_port_msg" "ifindex" "ac_cv_member_struct_br_port_msg_ifindex" "$ac_includes_default +#include +#include +" +if test "x$ac_cv_member_struct_br_port_msg_ifindex" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BR_PORT_MSG_IFINDEX 1 +_ACEOF + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Wwrite_strings" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Wwrite_strings" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Wwrite_strings" = xyes; then : - as_fn_append WARN_CFLAGS_FOR_BUILD " -Wwrite-strings" + fi -# Check whether --enable-gcc-Werror was given. -if test "${enable_gcc_Werror+set}" = set; then : - enableval=$enable_gcc_Werror; case $enableval in - yes) if test x${gl_build_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else +ac_fn_c_check_type "$LINENO" "struct br_mdb_entry" "ac_cv_type_struct_br_mdb_entry" "$ac_includes_default +#include +#include +" +if test "x$ac_cv_type_struct_br_mdb_entry" = xyes; then : - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BR_MDB_ENTRY 1 +_ACEOF -int -main () -{ +ac_fn_c_check_member "$LINENO" "struct br_mdb_entry" "addr" "ac_cv_member_struct_br_mdb_entry_addr" "$ac_includes_default +#include +#include +" +if test "x$ac_cv_member_struct_br_mdb_entry_addr" = xyes; then : - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_BR_MDB_ENTRY_ADDR 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror__Wunknown_warning_option" = xyes; then : - gl_build_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_build_unknown_warnings_are_errors= + fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC_FOR_BUILD handles -Werror" >&5 -$as_echo_n "checking whether $CC_FOR_BUILD handles -Werror... " >&6; } -if ${gl_cv_warn_CFLAGS_FOR_BUILD__Werror+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS_FOR_BUILD" - as_fn_append CFLAGS_FOR_BUILD " $gl_build_unknown_warnings_are_errors -Werror" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +done -int -main () -{ - ; - return 0; -} +for ac_header in linux/rtnetlink.h +do : + ac_fn_c_check_header_compile "$LINENO" "linux/rtnetlink.h" "ac_cv_header_linux_rtnetlink_h" "$ac_includes_default +#include \"$srcdir/netlink.h\" +" +if test "x$ac_cv_header_linux_rtnetlink_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LINUX_RTNETLINK_H 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS_FOR_BUILD__Werror=yes -else - gl_cv_warn_CFLAGS_FOR_BUILD__Werror=no -fi -rm -f core conftest.err conftest.$ac_build_objext \ - conftest$ac_build_exeext conftest.$ac_ext - CFLAGS_FOR_BUILD="$gl_save_compiler_FLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS_FOR_BUILD__Werror" >&5 -$as_echo "$gl_cv_warn_CFLAGS_FOR_BUILD__Werror" >&6; } -if test "x$gl_cv_warn_CFLAGS_FOR_BUILD__Werror" = xyes; then : - as_fn_append WARN_CFLAGS_FOR_BUILD " -Werror" -fi - ;; - no) ;; - *) as_fn_error $? "bad value $enableval for gcc-Werror option" "$LINENO" 5 ;; - esac +ac_fn_c_check_type "$LINENO" "struct ndt_config" "ac_cv_type_struct_ndt_config" "$ac_includes_default +#include \"$srcdir/netlink.h\" +#include +" +if test "x$ac_cv_type_struct_ndt_config" = xyes; then : -fi +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_NDT_CONFIG 1 +_ACEOF +ac_fn_c_check_member "$LINENO" "struct ndt_config" "ndtc_proxy_qlen" "ac_cv_member_struct_ndt_config_ndtc_proxy_qlen" "$ac_includes_default +#include \"$srcdir/netlink.h\" +#include +" +if test "x$ac_cv_member_struct_ndt_config_ndtc_proxy_qlen" = xyes; then : +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_NDT_CONFIG_NDTC_PROXY_QLEN 1 +_ACEOF -if test -n "${st_saved_cross_compiling+set}"; then : - cross_compiling="${st_saved_cross_compiling}"; unset st_saved_cross_compiling fi -if test -n "${st_saved_ac_tool_prefix+set}"; then : - ac_tool_prefix="${st_saved_ac_tool_prefix}"; unset st_saved_ac_tool_prefix fi -if test -n "${st_saved_ac_link+set}"; then : - ac_link="${st_saved_ac_link}"; unset st_saved_ac_link -fi -if test -n "${st_saved_ac_cv_c_decl_report+set}"; then : - ac_cv_c_decl_report="${st_saved_ac_cv_c_decl_report}"; unset st_saved_ac_cv_c_decl_report -fi +ac_fn_c_check_type "$LINENO" "struct ndt_stats" "ac_cv_type_struct_ndt_stats" "$ac_includes_default +#include \"$srcdir/netlink.h\" +#include +" +if test "x$ac_cv_type_struct_ndt_stats" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_NDT_STATS 1 +_ACEOF + +ac_fn_c_check_member "$LINENO" "struct ndt_stats" "ndts_table_fulls" "ac_cv_member_struct_ndt_stats_ndts_table_fulls" "$ac_includes_default +#include \"$srcdir/netlink.h\" +#include +" +if test "x$ac_cv_member_struct_ndt_stats_ndts_table_fulls" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_NDT_STATS_NDTS_TABLE_FULLS 1 +_ACEOF + -if test -n "${st_saved_ac_cv_c_compiler_gnu+set}"; then : - ac_cv_c_compiler_gnu="${st_saved_ac_cv_c_compiler_gnu}"; unset st_saved_ac_cv_c_compiler_gnu fi -if test -n "${st_saved_ac_cpp+set}"; then : - ac_cpp="${st_saved_ac_cpp}"; unset st_saved_ac_cpp fi -if test -n "${st_saved_ac_compiler_gnu+set}"; then : - ac_compiler_gnu="${st_saved_ac_compiler_gnu}"; unset st_saved_ac_compiler_gnu -fi -if test -n "${st_saved_ac_compile+set}"; then : - ac_compile="${st_saved_ac_compile}"; unset st_saved_ac_compile fi -if test -n "${st_saved_ac_c_werror_flag+set}"; then : - ac_c_werror_flag="${st_saved_ac_c_werror_flag}"; unset st_saved_ac_c_werror_flag -fi +done -if test -n "${st_saved_ac_c_preproc_warn_flag+set}"; then : - ac_c_preproc_warn_flag="${st_saved_ac_c_preproc_warn_flag}"; unset st_saved_ac_c_preproc_warn_flag -fi -if test -n "${st_saved_ac_c_decl_warn_flag+set}"; then : - ac_c_decl_warn_flag="${st_saved_ac_c_decl_warn_flag}"; unset st_saved_ac_c_decl_warn_flag -fi +for ac_header in linux/rtnetlink.h +do : + ac_fn_c_check_header_compile "$LINENO" "linux/rtnetlink.h" "ac_cv_header_linux_rtnetlink_h" "$ac_includes_default +#include \"$srcdir/netlink.h\" +" +if test "x$ac_cv_header_linux_rtnetlink_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LINUX_RTNETLINK_H 1 +_ACEOF + +ac_fn_c_check_type "$LINENO" "struct rta_mfc_stats" "ac_cv_type_struct_rta_mfc_stats" "$ac_includes_default +#include \"$srcdir/netlink.h\" +#include +" +if test "x$ac_cv_type_struct_rta_mfc_stats" = xyes; then : +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_RTA_MFC_STATS 1 +_ACEOF -BUILD_EXEEXT=$ac_build_exeext -BUILD_OBJEXT=$ac_build_objext +ac_fn_c_check_member "$LINENO" "struct rta_mfc_stats" "mfcs_wrong_if" "ac_cv_member_struct_rta_mfc_stats_mfcs_wrong_if" "$ac_includes_default +#include \"$srcdir/netlink.h\" +#include +" +if test "x$ac_cv_member_struct_rta_mfc_stats_mfcs_wrong_if" = xyes; then : +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_RTA_MFC_STATS_MFCS_WRONG_IF 1 +_ACEOF -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 -$as_echo "$RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + fi -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS +ac_fn_c_check_type "$LINENO" "struct rtvia" "ac_cv_type_struct_rtvia" "$ac_includes_default +#include \"$srcdir/netlink.h\" +#include +" +if test "x$ac_cv_type_struct_rtvia" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_RTVIA 1 +_ACEOF + +ac_fn_c_check_member "$LINENO" "struct rtvia" "rtvia_addr" "ac_cv_member_struct_rtvia_rtvia_addr" "$ac_includes_default +#include \"$srcdir/netlink.h\" +#include +" +if test "x$ac_cv_member_struct_rtvia_rtvia_addr" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_RTVIA_RTVIA_ADDR 1 +_ACEOF + fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 -$as_echo "$ac_ct_RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + fi - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -else - RANLIB="$ac_cv_prog_RANLIB" + fi +done -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if ${ac_cv_path_GREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_GREP" || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac +for ac_header in linux/tee.h +do : + ac_fn_c_check_header_compile "$LINENO" "linux/tee.h" "ac_cv_header_linux_tee_h" "$ac_includes_default +#include +" +if test "x$ac_cv_header_linux_tee_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LINUX_TEE_H 1 +_ACEOF - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_GREP=$GREP -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" +ac_fn_c_check_type "$LINENO" "struct tee_ioctl_buf_data" "ac_cv_type_struct_tee_ioctl_buf_data" "$ac_includes_default +#include +#include +" +if test "x$ac_cv_type_struct_tee_ioctl_buf_data" = xyes; then : +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TEE_IOCTL_BUF_DATA 1 +_ACEOF + +ac_fn_c_check_member "$LINENO" "struct tee_ioctl_buf_data" "buf_len" "ac_cv_member_struct_tee_ioctl_buf_data_buf_len" "$ac_includes_default +#include +#include +" +if test "x$ac_cv_member_struct_tee_ioctl_buf_data_buf_len" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TEE_IOCTL_BUF_DATA_BUF_LEN 1 +_ACEOF -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_EGREP=$EGREP fi - fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include +ac_fn_c_check_type "$LINENO" "struct tee_ioctl_cancel_arg" "ac_cv_type_struct_tee_ioctl_cancel_arg" "$ac_includes_default +#include +#include +" +if test "x$ac_cv_type_struct_tee_ioctl_cancel_arg" = xyes; then : -int -main () -{ +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TEE_IOCTL_CANCEL_ARG 1 +_ACEOF - ; - return 0; -} +ac_fn_c_check_member "$LINENO" "struct tee_ioctl_cancel_arg" "session" "ac_cv_member_struct_tee_ioctl_cancel_arg_session" "$ac_includes_default +#include +#include +" +if test "x$ac_cv_member_struct_tee_ioctl_cancel_arg_session" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TEE_IOCTL_CANCEL_ARG_SESSION 1 _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no + + fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include +fi + + +ac_fn_c_check_type "$LINENO" "struct tee_ioctl_close_session_arg" "ac_cv_type_struct_tee_ioctl_close_session_arg" "$ac_includes_default +#include +#include +" +if test "x$ac_cv_type_struct_tee_ioctl_close_session_arg" = xyes; then : +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TEE_IOCTL_CLOSE_SESSION_ARG 1 _ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : -else - ac_cv_header_stdc=no +ac_fn_c_check_member "$LINENO" "struct tee_ioctl_close_session_arg" "session" "ac_cv_member_struct_tee_ioctl_close_session_arg_session" "$ac_includes_default +#include +#include +" +if test "x$ac_cv_member_struct_tee_ioctl_close_session_arg_session" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TEE_IOCTL_CLOSE_SESSION_ARG_SESSION 1 +_ACEOF + + fi -rm -f conftest* fi -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include +ac_fn_c_check_type "$LINENO" "struct tee_ioctl_shm_alloc_data" "ac_cv_type_struct_tee_ioctl_shm_alloc_data" "$ac_includes_default +#include +#include +" +if test "x$ac_cv_type_struct_tee_ioctl_shm_alloc_data" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TEE_IOCTL_SHM_ALLOC_DATA 1 _ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : -else - ac_cv_header_stdc=no +ac_fn_c_check_member "$LINENO" "struct tee_ioctl_shm_alloc_data" "id" "ac_cv_member_struct_tee_ioctl_shm_alloc_data_id" "$ac_includes_default +#include +#include +" +if test "x$ac_cv_member_struct_tee_ioctl_shm_alloc_data_id" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TEE_IOCTL_SHM_ALLOC_DATA_ID 1 +_ACEOF + + fi -rm -f conftest* fi -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} +ac_fn_c_check_type "$LINENO" "struct tee_ioctl_shm_register_data" "ac_cv_type_struct_tee_ioctl_shm_register_data" "$ac_includes_default +#include +#include +" +if test "x$ac_cv_type_struct_tee_ioctl_shm_register_data" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TEE_IOCTL_SHM_REGISTER_DATA 1 _ACEOF -if ac_fn_c_try_run "$LINENO"; then : -else - ac_cv_header_stdc=no +ac_fn_c_check_member "$LINENO" "struct tee_ioctl_shm_register_data" "id" "ac_cv_member_struct_tee_ioctl_shm_register_data_id" "$ac_includes_default +#include +#include +" +if test "x$ac_cv_member_struct_tee_ioctl_shm_register_data_id" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TEE_IOCTL_SHM_REGISTER_DATA_ID 1 +_ACEOF + + fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + +ac_fn_c_check_type "$LINENO" "struct tee_ioctl_version_data" "ac_cv_type_struct_tee_ioctl_version_data" "$ac_includes_default +#include +#include +" +if test "x$ac_cv_type_struct_tee_ioctl_version_data" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TEE_IOCTL_VERSION_DATA 1 +_ACEOF + +ac_fn_c_check_member "$LINENO" "struct tee_ioctl_version_data" "gen_caps" "ac_cv_member_struct_tee_ioctl_version_data_gen_caps" "$ac_includes_default +#include +#include +" +if test "x$ac_cv_member_struct_tee_ioctl_version_data_gen_caps" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TEE_IOCTL_VERSION_DATA_GEN_CAPS 1 +_ACEOF + + fi + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then -$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +ac_fn_c_check_type "$LINENO" "struct tee_ioctl_param" "ac_cv_type_struct_tee_ioctl_param" "$ac_includes_default +#include +#include +" +if test "x$ac_cv_type_struct_tee_ioctl_param" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TEE_IOCTL_PARAM 1 +_ACEOF + +ac_fn_c_check_member "$LINENO" "struct tee_ioctl_param" "c" "ac_cv_member_struct_tee_ioctl_param_c" "$ac_includes_default +#include +#include +" +if test "x$ac_cv_member_struct_tee_ioctl_param_c" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TEE_IOCTL_PARAM_C 1 +_ACEOF + fi -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +fi + + +ac_fn_c_check_type "$LINENO" "struct tee_ioctl_invoke_arg" "ac_cv_type_struct_tee_ioctl_invoke_arg" "$ac_includes_default +#include +#include " -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +if test "x$ac_cv_type_struct_tee_ioctl_invoke_arg" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TEE_IOCTL_INVOKE_ARG 1 _ACEOF +ac_fn_c_check_member "$LINENO" "struct tee_ioctl_invoke_arg" "params" "ac_cv_member_struct_tee_ioctl_invoke_arg_params" "$ac_includes_default +#include +#include +" +if test "x$ac_cv_member_struct_tee_ioctl_invoke_arg_params" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TEE_IOCTL_INVOKE_ARG_PARAMS 1 +_ACEOF + + fi -done +fi +ac_fn_c_check_type "$LINENO" "struct tee_iocl_supp_recv_arg" "ac_cv_type_struct_tee_iocl_supp_recv_arg" "$ac_includes_default +#include +#include +" +if test "x$ac_cv_type_struct_tee_iocl_supp_recv_arg" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TEE_IOCL_SUPP_RECV_ARG 1 +_ACEOF + +ac_fn_c_check_member "$LINENO" "struct tee_iocl_supp_recv_arg" "params" "ac_cv_member_struct_tee_iocl_supp_recv_arg_params" "$ac_includes_default +#include +#include +" +if test "x$ac_cv_member_struct_tee_iocl_supp_recv_arg_params" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TEE_IOCL_SUPP_RECV_ARG_PARAMS 1 +_ACEOF + - ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" -if test "x$ac_cv_header_minix_config_h" = xyes; then : - MINIX=yes -else - MINIX= fi +fi - if test "$MINIX" = yes; then -$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h +ac_fn_c_check_type "$LINENO" "struct tee_iocl_supp_send_arg" "ac_cv_type_struct_tee_iocl_supp_send_arg" "$ac_includes_default +#include +#include +" +if test "x$ac_cv_type_struct_tee_iocl_supp_send_arg" = xyes; then : +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TEE_IOCL_SUPP_SEND_ARG 1 +_ACEOF -$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h +ac_fn_c_check_member "$LINENO" "struct tee_iocl_supp_send_arg" "params" "ac_cv_member_struct_tee_iocl_supp_send_arg_params" "$ac_includes_default +#include +#include +" +if test "x$ac_cv_member_struct_tee_iocl_supp_send_arg_params" = xyes; then : +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TEE_IOCL_SUPP_SEND_ARG_PARAMS 1 +_ACEOF -$as_echo "#define _MINIX 1" >>confdefs.h - fi +fi +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 -$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } -if ${ac_cv_safe_to_define___extensions__+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -# define __EXTENSIONS__ 1 - $ac_includes_default -int -main () -{ +ac_fn_c_check_type "$LINENO" "struct tee_ioctl_open_session_arg" "ac_cv_type_struct_tee_ioctl_open_session_arg" "$ac_includes_default +#include +#include +" +if test "x$ac_cv_type_struct_tee_ioctl_open_session_arg" = xyes; then : - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TEE_IOCTL_OPEN_SESSION_ARG 1 _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_safe_to_define___extensions__=yes -else - ac_cv_safe_to_define___extensions__=no + +ac_fn_c_check_member "$LINENO" "struct tee_ioctl_open_session_arg" "params" "ac_cv_member_struct_tee_ioctl_open_session_arg_params" "$ac_includes_default +#include +#include +" +if test "x$ac_cv_member_struct_tee_ioctl_open_session_arg_params" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TEE_IOCTL_OPEN_SESSION_ARG_PARAMS 1 +_ACEOF + + fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 -$as_echo "$ac_cv_safe_to_define___extensions__" >&6; } - test $ac_cv_safe_to_define___extensions__ = yes && - $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h - $as_echo "#define _ALL_SOURCE 1" >>confdefs.h - $as_echo "#define _GNU_SOURCE 1" >>confdefs.h +fi - $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h +done - $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h +for ac_header in linux/videodev2.h +do : + ac_fn_c_check_header_compile "$LINENO" "linux/videodev2.h" "ac_cv_header_linux_videodev2_h" "$ac_includes_default +#include +#include +#include +" +if test "x$ac_cv_header_linux_videodev2_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LINUX_VIDEODEV2_H 1 +_ACEOF + + +ac_fn_c_check_type "$LINENO" "struct v4l2_capability" "ac_cv_type_struct_v4l2_capability" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_type_struct_v4l2_capability" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_CAPABILITY 1 +_ACEOF + +ac_fn_c_check_member "$LINENO" "struct v4l2_capability" "reserved" "ac_cv_member_struct_v4l2_capability_reserved" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_member_struct_v4l2_capability_reserved" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_CAPABILITY_RESERVED 1 +_ACEOF -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 -$as_echo_n "checking for a sed that does not truncate output... " >&6; } -if ${ac_cv_path_SED+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ - for ac_i in 1 2 3 4 5 6 7; do - ac_script="$ac_script$as_nl$ac_script" - done - echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed - { ac_script=; unset ac_script;} - if test -z "$SED"; then - ac_path_SED_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_SED" || continue -# Check for GNU ac_path_SED and select it if it is found. - # Check for GNU $ac_path_SED -case `"$ac_path_SED" --version 2>&1` in -*GNU*) - ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo '' >> "conftest.nl" - "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_SED_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_SED="$ac_path_SED" - ac_path_SED_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - $ac_path_SED_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_SED"; then - as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 - fi -else - ac_cv_path_SED=$SED fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 -$as_echo "$ac_cv_path_SED" >&6; } - SED="$ac_cv_path_SED" - rm -f conftest.sed +ac_fn_c_check_type "$LINENO" "struct v4l2_pix_format" "ac_cv_type_struct_v4l2_pix_format" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_type_struct_v4l2_pix_format" = xyes; then : +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_PIX_FORMAT 1 +_ACEOF - # allow to override gcov location +ac_fn_c_check_member "$LINENO" "struct v4l2_pix_format" "xfer_func" "ac_cv_member_struct_v4l2_pix_format_xfer_func" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_member_struct_v4l2_pix_format_xfer_func" = xyes; then : -# Check whether --with-gcov was given. -if test "${with_gcov+set}" = set; then : - withval=$with_gcov; _AX_CODE_COVERAGE_GCOV_PROG_WITH=$with_gcov -else - _AX_CODE_COVERAGE_GCOV_PROG_WITH=gcov -fi +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_PIX_FORMAT_XFER_FUNC 1 +_ACEOF - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build with code coverage support" >&5 -$as_echo_n "checking whether to build with code coverage support... " >&6; } - # Check whether --enable-code-coverage was given. -if test "${enable_code_coverage+set}" = set; then : - enableval=$enable_code_coverage; -else - enable_code_coverage=no fi - - if test x$enable_code_coverage = xyes; then - CODE_COVERAGE_ENABLED_TRUE= - CODE_COVERAGE_ENABLED_FALSE='#' -else - CODE_COVERAGE_ENABLED_TRUE='#' - CODE_COVERAGE_ENABLED_FALSE= fi - CODE_COVERAGE_ENABLED=$enable_code_coverage - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_code_coverage" >&5 -$as_echo "$enable_code_coverage" >&6; } +ac_fn_c_check_type "$LINENO" "struct v4l2_plane_pix_format" "ac_cv_type_struct_v4l2_plane_pix_format" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_type_struct_v4l2_plane_pix_format" = xyes; then : - if test "$enable_code_coverage" = "yes" ; then : +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_PLANE_PIX_FORMAT 1 +_ACEOF - # check for gcov - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}$_AX_CODE_COVERAGE_GCOV_PROG_WITH", so it can be a program name with args. -set dummy ${ac_tool_prefix}$_AX_CODE_COVERAGE_GCOV_PROG_WITH; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_GCOV+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$GCOV"; then - ac_cv_prog_GCOV="$GCOV" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_GCOV="${ac_tool_prefix}$_AX_CODE_COVERAGE_GCOV_PROG_WITH" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS +ac_fn_c_check_member "$LINENO" "struct v4l2_plane_pix_format" "reserved" "ac_cv_member_struct_v4l2_plane_pix_format_reserved" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_member_struct_v4l2_plane_pix_format_reserved" = xyes; then : -fi -fi -GCOV=$ac_cv_prog_GCOV -if test -n "$GCOV"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GCOV" >&5 -$as_echo "$GCOV" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_PLANE_PIX_FORMAT_RESERVED 1 +_ACEOF fi -if test -z "$ac_cv_prog_GCOV"; then - ac_ct_GCOV=$GCOV - # Extract the first word of "$_AX_CODE_COVERAGE_GCOV_PROG_WITH", so it can be a program name with args. -set dummy $_AX_CODE_COVERAGE_GCOV_PROG_WITH; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_GCOV+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_GCOV"; then - ac_cv_prog_ac_ct_GCOV="$ac_ct_GCOV" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_GCOV="$_AX_CODE_COVERAGE_GCOV_PROG_WITH" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS -fi -fi -ac_ct_GCOV=$ac_cv_prog_ac_ct_GCOV -if test -n "$ac_ct_GCOV"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_GCOV" >&5 -$as_echo "$ac_ct_GCOV" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } fi - if test "x$ac_ct_GCOV" = x; then - GCOV=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - GCOV=$ac_ct_GCOV - fi -else - GCOV="$ac_cv_prog_GCOV" + +ac_fn_c_check_type "$LINENO" "struct v4l2_clip" "ac_cv_type_struct_v4l2_clip" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_type_struct_v4l2_clip" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_CLIP 1 +_ACEOF + +ac_fn_c_check_member "$LINENO" "struct v4l2_clip" "next" "ac_cv_member_struct_v4l2_clip_next" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_member_struct_v4l2_clip_next" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_CLIP_NEXT 1 +_ACEOF + + fi - if test "X$GCOV" = "X:"; then : - as_fn_error $? "gcov is needed to do coverage" "$LINENO" 5 fi - if test "$GCC" = "no" ; then : +ac_fn_c_check_type "$LINENO" "struct v4l2_window" "ac_cv_type_struct_v4l2_window" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_type_struct_v4l2_window" = xyes; then : - as_fn_error $? "not compiling with gcc, which is required for gcov code coverage" "$LINENO" 5 +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_WINDOW 1 +_ACEOF -fi +ac_fn_c_check_member "$LINENO" "struct v4l2_window" "global_alpha" "ac_cv_member_struct_v4l2_window_global_alpha" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_member_struct_v4l2_window_global_alpha" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA 1 +_ACEOF - # Extract the first word of "lcov", so it can be a program name with args. -set dummy lcov; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_LCOV+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$LCOV"; then - ac_cv_prog_LCOV="$LCOV" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_LCOV="lcov" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS fi -fi -LCOV=$ac_cv_prog_LCOV -if test -n "$LCOV"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LCOV" >&5 -$as_echo "$LCOV" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + fi - # Extract the first word of "genhtml", so it can be a program name with args. -set dummy genhtml; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_GENHTML+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$GENHTML"; then - ac_cv_prog_GENHTML="$GENHTML" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_GENHTML="genhtml" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS +ac_fn_c_check_type "$LINENO" "struct v4l2_vbi_format" "ac_cv_type_struct_v4l2_vbi_format" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_type_struct_v4l2_vbi_format" = xyes; then : -fi -fi -GENHTML=$ac_cv_prog_GENHTML -if test -n "$GENHTML"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GENHTML" >&5 -$as_echo "$GENHTML" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_VBI_FORMAT 1 +_ACEOF +ac_fn_c_check_member "$LINENO" "struct v4l2_vbi_format" "reserved" "ac_cv_member_struct_v4l2_vbi_format_reserved" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_member_struct_v4l2_vbi_format_reserved" = xyes; then : +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_VBI_FORMAT_RESERVED 1 +_ACEOF - if test -z "$LCOV" ; then : - as_fn_error $? "To enable code coverage reporting you must have lcov installed" "$LINENO" 5 +fi fi - if test -z "$GENHTML" ; then : - as_fn_error $? "Could not find genhtml from the lcov package" "$LINENO" 5 +ac_fn_c_check_type "$LINENO" "struct v4l2_sliced_vbi_format" "ac_cv_type_struct_v4l2_sliced_vbi_format" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_type_struct_v4l2_sliced_vbi_format" = xyes; then : -fi +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_SLICED_VBI_FORMAT 1 +_ACEOF - CODE_COVERAGE_CPPFLAGS="-DENABLE_COVERAGE_GCOV -DNDEBUG" - CODE_COVERAGE_CFLAGS="-O0 -g -fprofile-arcs -ftest-coverage" - CODE_COVERAGE_CXXFLAGS="-O0 -g -fprofile-arcs -ftest-coverage" - CODE_COVERAGE_LIBS="-lgcov" - CODE_COVERAGE_LDFLAGS="$CODE_COVERAGE_LIBS" +ac_fn_c_check_member "$LINENO" "struct v4l2_sliced_vbi_format" "reserved" "ac_cv_member_struct_v4l2_sliced_vbi_format_reserved" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_member_struct_v4l2_sliced_vbi_format_reserved" = xyes; then : +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_SLICED_VBI_FORMAT_RESERVED 1 +_ACEOF +fi +fi +ac_fn_c_check_type "$LINENO" "struct v4l2_sliced_vbi_cap" "ac_cv_type_struct_v4l2_sliced_vbi_cap" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_type_struct_v4l2_sliced_vbi_cap" = xyes; then : - CODE_COVERAGE_RULES_CHECK=' - -$(A''M_V_at)$(MAKE) $(AM_MAKEFLAGS) -k check - $(A''M_V_at)$(MAKE) $(AM_MAKEFLAGS) code-coverage-capture -' - CODE_COVERAGE_RULES_CAPTURE=' - $(code_coverage_v_lcov_cap)$(LCOV) $(code_coverage_quiet) $(addprefix --directory ,$(CODE_COVERAGE_DIRECTORY)) --capture --output-file "$(CODE_COVERAGE_OUTPUT_FILE).tmp" --test-name "$(call code_coverage_sanitize,$(PACKAGE_NAME)-$(PACKAGE_VERSION))" --no-checksum --compat-libtool $(CODE_COVERAGE_LCOV_SHOPTS) $(CODE_COVERAGE_LCOV_OPTIONS) - $(code_coverage_v_lcov_ign)$(LCOV) $(code_coverage_quiet) $(addprefix --directory ,$(CODE_COVERAGE_DIRECTORY)) --remove "$(CODE_COVERAGE_OUTPUT_FILE).tmp" "/tmp/*" $(CODE_COVERAGE_IGNORE_PATTERN) --output-file "$(CODE_COVERAGE_OUTPUT_FILE)" $(CODE_COVERAGE_LCOV_SHOPTS) $(CODE_COVERAGE_LCOV_RMOPTS) - -@rm -f $(CODE_COVERAGE_OUTPUT_FILE).tmp - $(code_coverage_v_genhtml)LANG=C $(GENHTML) $(code_coverage_quiet) $(addprefix --prefix ,$(CODE_COVERAGE_DIRECTORY)) --output-directory "$(CODE_COVERAGE_OUTPUT_DIRECTORY)" --title "$(PACKAGE_NAME)-$(PACKAGE_VERSION) Code Coverage" --legend --show-details "$(CODE_COVERAGE_OUTPUT_FILE)" $(CODE_COVERAGE_GENHTML_OPTIONS) - @echo "file://$(abs_builddir)/$(CODE_COVERAGE_OUTPUT_DIRECTORY)/index.html" -' - CODE_COVERAGE_RULES_CLEAN=' -clean: code-coverage-clean -distclean: code-coverage-clean -code-coverage-clean: - -$(LCOV) --directory $(top_builddir) -z - -rm -rf $(CODE_COVERAGE_OUTPUT_FILE) $(CODE_COVERAGE_OUTPUT_FILE).tmp $(CODE_COVERAGE_OUTPUT_DIRECTORY) - -find . \( -name "*.gcda" -o -name "*.gcno" -o -name "*.gcov" \) -delete -' +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_SLICED_VBI_CAP 1 +_ACEOF -else +ac_fn_c_check_member "$LINENO" "struct v4l2_sliced_vbi_cap" "reserved" "ac_cv_member_struct_v4l2_sliced_vbi_cap_reserved" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_member_struct_v4l2_sliced_vbi_cap_reserved" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_SLICED_VBI_CAP_RESERVED 1 +_ACEOF - CODE_COVERAGE_RULES_CHECK=' - @echo "Need to reconfigure with --enable-code-coverage" -' - CODE_COVERAGE_RULES_CAPTURE="$CODE_COVERAGE_RULES_CHECK" - CODE_COVERAGE_RULES_CLEAN='' fi -CODE_COVERAGE_RULES=' -# Code coverage -# -# Optional: -# - CODE_COVERAGE_DIRECTORY: Top-level directory for code coverage reporting. -# Multiple directories may be specified, separated by whitespace. -# (Default: $(top_builddir)) -# - CODE_COVERAGE_OUTPUT_FILE: Filename and path for the .info file generated -# by lcov for code coverage. (Default: -# $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage.info) -# - CODE_COVERAGE_OUTPUT_DIRECTORY: Directory for generated code coverage -# reports to be created. (Default: -# $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage) -# - CODE_COVERAGE_BRANCH_COVERAGE: Set to 1 to enforce branch coverage, -# set to 0 to disable it and leave empty to stay with the default. -# (Default: empty) -# - CODE_COVERAGE_LCOV_SHOPTS_DEFAULT: Extra options shared between both lcov -# instances. (Default: based on $CODE_COVERAGE_BRANCH_COVERAGE) -# - CODE_COVERAGE_LCOV_SHOPTS: Extra options to shared between both lcov -# instances. (Default: $CODE_COVERAGE_LCOV_SHOPTS_DEFAULT) -# - CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH: --gcov-tool pathtogcov -# - CODE_COVERAGE_LCOV_OPTIONS_DEFAULT: Extra options to pass to the -# collecting lcov instance. (Default: $CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH) -# - CODE_COVERAGE_LCOV_OPTIONS: Extra options to pass to the collecting lcov -# instance. (Default: $CODE_COVERAGE_LCOV_OPTIONS_DEFAULT) -# - CODE_COVERAGE_LCOV_RMOPTS_DEFAULT: Extra options to pass to the filtering -# lcov instance. (Default: empty) -# - CODE_COVERAGE_LCOV_RMOPTS: Extra options to pass to the filtering lcov -# instance. (Default: $CODE_COVERAGE_LCOV_RMOPTS_DEFAULT) -# - CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT: Extra options to pass to the -# genhtml instance. (Default: based on $CODE_COVERAGE_BRANCH_COVERAGE) -# - CODE_COVERAGE_GENHTML_OPTIONS: Extra options to pass to the genhtml -# instance. (Default: $CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT) -# - CODE_COVERAGE_IGNORE_PATTERN: Extra glob pattern of files to ignore -# -# The generated report will be titled using the $(PACKAGE_NAME) and -# $(PACKAGE_VERSION). In order to add the current git hash to the title, -# use the git-version-gen script, available online. +fi -# Optional variables -CODE_COVERAGE_DIRECTORY ?= $(top_builddir) -CODE_COVERAGE_OUTPUT_FILE ?= $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage.info -CODE_COVERAGE_OUTPUT_DIRECTORY ?= $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage -CODE_COVERAGE_BRANCH_COVERAGE ?= -CODE_COVERAGE_LCOV_SHOPTS_DEFAULT ?= $(if $(CODE_COVERAGE_BRANCH_COVERAGE),\ ---rc lcov_branch_coverage=$(CODE_COVERAGE_BRANCH_COVERAGE)) -CODE_COVERAGE_LCOV_SHOPTS ?= $(CODE_COVERAGE_LCOV_SHOPTS_DEFAULT) -CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH ?= --gcov-tool "$(GCOV)" -CODE_COVERAGE_LCOV_OPTIONS_DEFAULT ?= $(CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH) -CODE_COVERAGE_LCOV_OPTIONS ?= $(CODE_COVERAGE_LCOV_OPTIONS_DEFAULT) -CODE_COVERAGE_LCOV_RMOPTS_DEFAULT ?= -CODE_COVERAGE_LCOV_RMOPTS ?= $(CODE_COVERAGE_LCOV_RMOPTS_DEFAULT) -CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT ?=\ -$(if $(CODE_COVERAGE_BRANCH_COVERAGE),\ ---rc genhtml_branch_coverage=$(CODE_COVERAGE_BRANCH_COVERAGE)) -CODE_COVERAGE_GENHTML_OPTIONS ?= $(CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT) -CODE_COVERAGE_IGNORE_PATTERN ?= -code_coverage_v_lcov_cap = $(code_coverage_v_lcov_cap_$(V)) -code_coverage_v_lcov_cap_ = $(code_coverage_v_lcov_cap_$(AM_DEFAULT_VERBOSITY)) -code_coverage_v_lcov_cap_0 = @echo " LCOV --capture"\ - $(CODE_COVERAGE_OUTPUT_FILE); -code_coverage_v_lcov_ign = $(code_coverage_v_lcov_ign_$(V)) -code_coverage_v_lcov_ign_ = $(code_coverage_v_lcov_ign_$(AM_DEFAULT_VERBOSITY)) -code_coverage_v_lcov_ign_0 = @echo " LCOV --remove /tmp/*"\ - $(CODE_COVERAGE_IGNORE_PATTERN); -code_coverage_v_genhtml = $(code_coverage_v_genhtml_$(V)) -code_coverage_v_genhtml_ = $(code_coverage_v_genhtml_$(AM_DEFAULT_VERBOSITY)) -code_coverage_v_genhtml_0 = @echo " GEN " $(CODE_COVERAGE_OUTPUT_DIRECTORY); -code_coverage_quiet = $(code_coverage_quiet_$(V)) -code_coverage_quiet_ = $(code_coverage_quiet_$(AM_DEFAULT_VERBOSITY)) -code_coverage_quiet_0 = --quiet +ac_fn_c_check_type "$LINENO" "struct v4l2_format" "ac_cv_type_struct_v4l2_format" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_type_struct_v4l2_format" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_FORMAT 1 +_ACEOF + +ac_fn_c_check_member "$LINENO" "struct v4l2_format" "fmt" "ac_cv_member_struct_v4l2_format_fmt" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_member_struct_v4l2_format_fmt" = xyes; then : -# sanitizes the test-name: replaces with underscores: dashes and dots -code_coverage_sanitize = $(subst -,_,$(subst .,_,$(1))) +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_FORMAT_FMT 1 +_ACEOF -# Use recursive makes in order to ignore errors during check -check-code-coverage:'"$CODE_COVERAGE_RULES_CHECK"' -# Capture code coverage data -code-coverage-capture: code-coverage-capture-hook'"$CODE_COVERAGE_RULES_CAPTURE"' +fi -# Hook rule executed before code-coverage-capture, overridable by the user -code-coverage-capture-hook: +fi -'"$CODE_COVERAGE_RULES_CLEAN"' -GITIGNOREFILES ?= -GITIGNOREFILES += $(CODE_COVERAGE_OUTPUT_FILE) $(CODE_COVERAGE_OUTPUT_DIRECTORY) +ac_fn_c_check_type "$LINENO" "struct v4l2_area" "ac_cv_type_struct_v4l2_area" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_type_struct_v4l2_area" = xyes; then : -A''M_DISTCHECK_CONFIGURE_FLAGS ?= -A''M_DISTCHECK_CONFIGURE_FLAGS += --disable-code-coverage +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_AREA 1 +_ACEOF -.PHONY: check-code-coverage code-coverage-capture code-coverage-capture-hook code-coverage-clean -' +ac_fn_c_check_member "$LINENO" "struct v4l2_area" "height" "ac_cv_member_struct_v4l2_area_height" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_member_struct_v4l2_area_height" = xyes; then : +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_AREA_HEIGHT 1 +_ACEOF +fi +fi -$as_echo "#define COPYRIGHT_YEAR \"2019\"" >>confdefs.h +ac_fn_c_check_type "$LINENO" "struct v4l2_ext_controls" "ac_cv_type_struct_v4l2_ext_controls" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_type_struct_v4l2_ext_controls" = xyes; then : -COPYRIGHT_YEAR=2019 +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_EXT_CONTROLS 1 +_ACEOF +ac_fn_c_check_member "$LINENO" "struct v4l2_ext_controls" "controls" "ac_cv_member_struct_v4l2_ext_controls_controls" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_member_struct_v4l2_ext_controls_controls" = xyes; then : +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_EXT_CONTROLS_CONTROLS 1 +_ACEOF -$as_echo "#define MANPAGE_DATE \"2019-03-17\"" >>confdefs.h -MANPAGE_DATE=2019-03-17 +fi +fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for supported architecture" >&5 -$as_echo_n "checking for supported architecture... " >&6; } -arch_m32= -arch_mx32= -cc_flags_m32=-m32 -cc_flags_mx32=-mx32 -case "$host_cpu" in -aarch64*) - arch=aarch64 - arch_m32=arm -$as_echo "#define AARCH64 1" >>confdefs.h +ac_fn_c_check_type "$LINENO" "struct v4l2_frmsize_discrete" "ac_cv_type_struct_v4l2_frmsize_discrete" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_type_struct_v4l2_frmsize_discrete" = xyes; then : - ;; -alpha*) - arch=alpha +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_FRMSIZE_DISCRETE 1 +_ACEOF -$as_echo "#define ALPHA 1" >>confdefs.h +ac_fn_c_check_member "$LINENO" "struct v4l2_frmsize_discrete" "height" "ac_cv_member_struct_v4l2_frmsize_discrete_height" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_member_struct_v4l2_frmsize_discrete_height" = xyes; then : - ;; -arc*) - arch=arc +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_FRMSIZE_DISCRETE_HEIGHT 1 +_ACEOF -$as_echo "#define ARC 1" >>confdefs.h - ;; -arm*) - arch=arm +fi -$as_echo "#define ARM 1" >>confdefs.h +fi - ;; -avr32*) - arch=avr32 -$as_echo "#define AVR32 1" >>confdefs.h +ac_fn_c_check_type "$LINENO" "struct v4l2_frmsize_stepwise" "ac_cv_type_struct_v4l2_frmsize_stepwise" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_type_struct_v4l2_frmsize_stepwise" = xyes; then : - ;; -bfin) - arch=bfin +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_FRMSIZE_STEPWISE 1 +_ACEOF -$as_echo "#define BFIN 1" >>confdefs.h +ac_fn_c_check_member "$LINENO" "struct v4l2_frmsize_stepwise" "step_height" "ac_cv_member_struct_v4l2_frmsize_stepwise_step_height" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_member_struct_v4l2_frmsize_stepwise_step_height" = xyes; then : - ;; -csky*) - arch=csky +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_FRMSIZE_STEPWISE_STEP_HEIGHT 1 +_ACEOF -$as_echo "#define CSKY 1" >>confdefs.h - ;; -hppa*|parisc*) - arch=hppa +fi -$as_echo "#define HPPA 1" >>confdefs.h +fi - ;; -i[3456]86|pentium) - arch=i386 -$as_echo "#define I386 1" >>confdefs.h +ac_fn_c_check_type "$LINENO" "struct v4l2_frmsizeenum" "ac_cv_type_struct_v4l2_frmsizeenum" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_type_struct_v4l2_frmsizeenum" = xyes; then : - ;; -ia64) - arch=ia64 +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_FRMSIZEENUM 1 +_ACEOF -$as_echo "#define IA64 1" >>confdefs.h +ac_fn_c_check_member "$LINENO" "struct v4l2_frmsizeenum" "reserved" "ac_cv_member_struct_v4l2_frmsizeenum_reserved" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_member_struct_v4l2_frmsizeenum_reserved" = xyes; then : - ;; -m68k) - arch=m68k +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_FRMSIZEENUM_RESERVED 1 +_ACEOF -$as_echo "#define M68K 1" >>confdefs.h - ;; -metag*) - arch=metag +fi -$as_echo "#define METAG 1" >>confdefs.h +fi - ;; -microblaze*) - arch=microblaze -$as_echo "#define MICROBLAZE 1" >>confdefs.h +ac_fn_c_check_type "$LINENO" "struct v4l2_frmival_stepwise" "ac_cv_type_struct_v4l2_frmival_stepwise" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_type_struct_v4l2_frmival_stepwise" = xyes; then : - ;; -mips*) - arch=mips +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_FRMIVAL_STEPWISE 1 +_ACEOF -$as_echo "#define MIPS 1" >>confdefs.h +ac_fn_c_check_member "$LINENO" "struct v4l2_frmival_stepwise" "step" "ac_cv_member_struct_v4l2_frmival_stepwise_step" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_member_struct_v4l2_frmival_stepwise_step" = xyes; then : - ;; -nios2*) - arch=nios2 +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_FRMIVAL_STEPWISE_STEP 1 +_ACEOF -$as_echo "#define NIOS2 1" >>confdefs.h - ;; -or1k*) - arch=or1k +fi -$as_echo "#define OR1K 1" >>confdefs.h +fi - ;; -powerpc*) -$as_echo "#define POWERPC 1" >>confdefs.h +ac_fn_c_check_type "$LINENO" "struct v4l2_frmivalenum" "ac_cv_type_struct_v4l2_frmivalenum" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_type_struct_v4l2_frmivalenum" = xyes; then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __LP64__ -# error 32 bit -#endif -int -main () -{ +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_FRMIVALENUM 1 +_ACEOF - ; - return 0; -} +ac_fn_c_check_member "$LINENO" "struct v4l2_frmivalenum" "reserved" "ac_cv_member_struct_v4l2_frmivalenum_reserved" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_member_struct_v4l2_frmivalenum_reserved" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_FRMIVALENUM_RESERVED 1 _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - arch=powerpc64 -else - arch=powerpc -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test "$arch" = "powerpc64"; then - arch_m32=powerpc -$as_echo "#define POWERPC64 1" >>confdefs.h - fi - ;; -riscv*) - arch=riscv +fi -$as_echo "#define RISCV 1" >>confdefs.h +fi - ;; -s390) - arch=s390 -$as_echo "#define S390 1" >>confdefs.h +ac_fn_c_check_type "$LINENO" "struct v4l2_create_buffers" "ac_cv_type_struct_v4l2_create_buffers" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_type_struct_v4l2_create_buffers" = xyes; then : - ;; -s390x) - arch=s390x - arch_m32=s390 - cc_flags_m32=-m31 +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_CREATE_BUFFERS 1 +_ACEOF -$as_echo "#define S390X 1" >>confdefs.h +ac_fn_c_check_member "$LINENO" "struct v4l2_create_buffers" "reserved" "ac_cv_member_struct_v4l2_create_buffers_reserved" "$ac_includes_default +#include +#include +#include +#include +" +if test "x$ac_cv_member_struct_v4l2_create_buffers_reserved" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_CREATE_BUFFERS_RESERVED 1 +_ACEOF - ;; -sh64*) - arch=sh64 -$as_echo "#define SH64 1" >>confdefs.h +fi - ;; -sh*) - arch=sh +fi -$as_echo "#define SH 1" >>confdefs.h - ;; -sparc64*) - arch=sparc64 - arch_m32=sparc +fi -$as_echo "#define SPARC64 1" >>confdefs.h +done - ;; -sparc*) - arch=sparc -$as_echo "#define SPARC 1" >>confdefs.h - ;; -tile*) - arch=tile -$as_echo "#define TILE 1" >>confdefs.h +ac_fn_c_check_decl "$LINENO" "BTRFS_COMPRESS_NONE" "ac_cv_have_decl_BTRFS_COMPRESS_NONE" " +#include +#include - ;; -x86?64*) - arch_m32=i386 - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __ILP32__ -# error not x32 -#endif -int -main () -{ +" +if test "x$ac_cv_have_decl_BTRFS_COMPRESS_NONE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_BTRFS_COMPRESS_NONE $ac_have_decl _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - arch=x32 +ac_fn_c_check_decl "$LINENO" "BTRFS_COMPRESS_ZLIB" "ac_cv_have_decl_BTRFS_COMPRESS_ZLIB" " +#include +#include + +" +if test "x$ac_cv_have_decl_BTRFS_COMPRESS_ZLIB" = xyes; then : + ac_have_decl=1 else - arch=x86_64 + ac_have_decl=0 fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test "$arch" = "x86_64"; then - arch_mx32=x32 - -$as_echo "#define X86_64 1" >>confdefs.h - else +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_BTRFS_COMPRESS_ZLIB $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "BTRFS_COMPRESS_LZO" "ac_cv_have_decl_BTRFS_COMPRESS_LZO" " +#include +#include -$as_echo "#define X32 1" >>confdefs.h +" +if test "x$ac_cv_have_decl_BTRFS_COMPRESS_LZO" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi - fi - ;; -xtensa*) - arch=xtensa +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_BTRFS_COMPRESS_LZO $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "BTRFS_COMPRESS_ZSTD" "ac_cv_have_decl_BTRFS_COMPRESS_ZSTD" " +#include +#include -$as_echo "#define XTENSA 1" >>confdefs.h +" +if test "x$ac_cv_have_decl_BTRFS_COMPRESS_ZSTD" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi - ;; -*) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: NO!" >&5 -$as_echo "NO!" >&6; } - as_fn_error $? "architecture $host_cpu is not supported by strace" "$LINENO" 5 - ;; -esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $arch" >&5 -$as_echo "$arch" >&6; } +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_BTRFS_COMPRESS_ZSTD $ac_have_decl +_ACEOF -arch_native=$arch -test -n "$arch_m32" || - arch_m32=$arch -test -n "$arch_mx32" || - arch_mx32=$arch +ac_fn_c_check_decl "$LINENO" "CLOSE_RANGE_UNSHARE" "ac_cv_have_decl_CLOSE_RANGE_UNSHARE" " +#include +" +if test "x$ac_cv_have_decl_CLOSE_RANGE_UNSHARE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_CLOSE_RANGE_UNSHARE $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "LO_FLAGS_READ_ONLY" "ac_cv_have_decl_LO_FLAGS_READ_ONLY" " +#include +" +if test "x$ac_cv_have_decl_LO_FLAGS_READ_ONLY" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_LO_FLAGS_READ_ONLY $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "LO_FLAGS_USE_AOPS" "ac_cv_have_decl_LO_FLAGS_USE_AOPS" " +#include -MIPS_ABI= -if test "$arch" = mips; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _MIPS_SIM" >&5 -$as_echo_n "checking for _MIPS_SIM... " >&6; } -if ${st_cv__MIPS_SIM+:} false; then : - $as_echo_n "(cached) " >&6 +" +if test "x$ac_cv_have_decl_LO_FLAGS_USE_AOPS" = xyes; then : + ac_have_decl=1 else - if ac_fn_c_compute_int "$LINENO" "_MIPS_SIM" "st_cv__MIPS_SIM" ""; then : + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_LO_FLAGS_USE_AOPS $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "LO_FLAGS_AUTOCLEAR" "ac_cv_have_decl_LO_FLAGS_AUTOCLEAR" " +#include +" +if test "x$ac_cv_have_decl_LO_FLAGS_AUTOCLEAR" = xyes; then : + ac_have_decl=1 else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "_MIPS_SIM cannot be determined -See \`config.log' for more details" "$LINENO" 5; } + ac_have_decl=0 fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $st_cv__MIPS_SIM" >&5 -$as_echo "$st_cv__MIPS_SIM" >&6; } +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_LO_FLAGS_AUTOCLEAR $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "LO_FLAGS_PARTSCAN" "ac_cv_have_decl_LO_FLAGS_PARTSCAN" " +#include - # requires GCC >= 3.4 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MIPS ABI" >&5 -$as_echo_n "checking for MIPS ABI... " >&6; } -if ${st_cv_mips_abi+:} false; then : - $as_echo_n "(cached) " >&6 +" +if test "x$ac_cv_have_decl_LO_FLAGS_PARTSCAN" = xyes; then : + ac_have_decl=1 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + ac_have_decl=0 +fi -int -main () -{ -int i[_MIPS_SIM == _ABIO32 ? 1 : - 1]; - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_LO_FLAGS_PARTSCAN $ac_have_decl _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - st_cv_mips_abi=o32 +ac_fn_c_check_decl "$LINENO" "LO_FLAGS_DIRECT_IO" "ac_cv_have_decl_LO_FLAGS_DIRECT_IO" " +#include + +" +if test "x$ac_cv_have_decl_LO_FLAGS_DIRECT_IO" = xyes; then : + ac_have_decl=1 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + ac_have_decl=0 +fi -int -main () -{ -int i[_MIPS_SIM == _ABIN32 ? 1 : - 1]; - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_LO_FLAGS_DIRECT_IO $ac_have_decl _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - st_cv_mips_abi=n32 + + +ac_fn_c_check_decl "$LINENO" "XDP_ATTACHED_NONE" "ac_cv_have_decl_XDP_ATTACHED_NONE" " +#include +#include + +" +if test "x$ac_cv_have_decl_XDP_ATTACHED_NONE" = xyes; then : + ac_have_decl=1 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + ac_have_decl=0 +fi -int -main () -{ -int i[_MIPS_SIM == _ABI64 ? 1 : - 1]; - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_XDP_ATTACHED_NONE $ac_have_decl _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - st_cv_mips_abi=n64 +ac_fn_c_check_decl "$LINENO" "XDP_ATTACHED_DRV" "ac_cv_have_decl_XDP_ATTACHED_DRV" " +#include +#include + +" +if test "x$ac_cv_have_decl_XDP_ATTACHED_DRV" = xyes; then : + ac_have_decl=1 else - st_cv_mips_abi=unknown -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_have_decl=0 fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_XDP_ATTACHED_DRV $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "XDP_ATTACHED_SKB" "ac_cv_have_decl_XDP_ATTACHED_SKB" " +#include +#include + +" +if test "x$ac_cv_have_decl_XDP_ATTACHED_SKB" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $st_cv_mips_abi" >&5 -$as_echo "$st_cv_mips_abi" >&6; } - case "$st_cv_mips_abi" in - o32) -$as_echo "#define LINUX_MIPSO32 1" >>confdefs.h -;; - n32) -$as_echo "#define LINUX_MIPSN32 1" >>confdefs.h -;; - n64) -$as_echo "#define LINUX_MIPSN64 1" >>confdefs.h -;; - *) as_fn_error $? "Unsupported _MIPS_SIM" "$LINENO" 5;; - esac - MIPS_ABI="$st_cv_mips_abi" +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_XDP_ATTACHED_SKB $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "XDP_ATTACHED_HW" "ac_cv_have_decl_XDP_ATTACHED_HW" " +#include +#include + +" +if test "x$ac_cv_have_decl_XDP_ATTACHED_HW" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_XDP_ATTACHED_HW $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "XDP_ATTACHED_MULTI" "ac_cv_have_decl_XDP_ATTACHED_MULTI" " +#include +#include -# Check whether --enable-arm-oabi was given. -if test "${enable_arm_oabi+set}" = set; then : - enableval=$enable_arm_oabi; +" +if test "x$ac_cv_have_decl_XDP_ATTACHED_MULTI" = xyes; then : + ac_have_decl=1 else - enable_arm_oabi=no + ac_have_decl=0 fi -case "$enable_arm_oabi" in - yes) enable_arm_oabi=1 ;; - no) enable_arm_oabi=0 ;; - *) as_fn_error $? "bad value $enable_arm_oabi for arm-oabi option" "$LINENO" 5 ;; -esac - cat >>confdefs.h <<_ACEOF -#define ENABLE_ARM_OABI $enable_arm_oabi +#define HAVE_DECL_XDP_ATTACHED_MULTI $ac_have_decl _ACEOF - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 -$as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if ${ac_cv_c_bigendian+:} false; then : - $as_echo_n "(cached) " >&6 +ac_fn_c_check_decl "$LINENO" "IFLA_XDP_UNSPEC" "ac_cv_have_decl_IFLA_XDP_UNSPEC" " +#include +#include + +" +if test "x$ac_cv_have_decl_IFLA_XDP_UNSPEC" = xyes; then : + ac_have_decl=1 else - ac_cv_c_bigendian=unknown - # See if we're dealing with a universal compiler. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __APPLE_CC__ - not a universal capable compiler - #endif - typedef int dummy; + ac_have_decl=0 +fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_XDP_UNSPEC $ac_have_decl _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +ac_fn_c_check_decl "$LINENO" "IFLA_XDP_FD" "ac_cv_have_decl_IFLA_XDP_FD" " +#include +#include - # Check for potential -arch flags. It is not universal unless - # there are at least two -arch flags with different values. - ac_arch= - ac_prev= - for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do - if test -n "$ac_prev"; then - case $ac_word in - i?86 | x86_64 | ppc | ppc64) - if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then - ac_arch=$ac_word - else - ac_cv_c_bigendian=universal - break - fi - ;; - esac - ac_prev= - elif test "x$ac_word" = "x-arch"; then - ac_prev=arch - fi - done +" +if test "x$ac_cv_have_decl_IFLA_XDP_FD" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test $ac_cv_c_bigendian = unknown; then - # See if sys/param.h defines the BYTE_ORDER macro. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include -int -main () -{ -#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ - && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ - && LITTLE_ENDIAN) - bogus endian macros - #endif +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_XDP_FD $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_XDP_ATTACHED" "ac_cv_have_decl_IFLA_XDP_ATTACHED" " +#include +#include - ; - return 0; -} +" +if test "x$ac_cv_have_decl_IFLA_XDP_ATTACHED" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_XDP_ATTACHED $ac_have_decl _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include +ac_fn_c_check_decl "$LINENO" "IFLA_XDP_FLAGS" "ac_cv_have_decl_IFLA_XDP_FLAGS" " +#include +#include -int -main () -{ -#if BYTE_ORDER != BIG_ENDIAN - not big endian - #endif +" +if test "x$ac_cv_have_decl_IFLA_XDP_FLAGS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_XDP_FLAGS $ac_have_decl _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes +ac_fn_c_check_decl "$LINENO" "IFLA_XDP_PROG_ID" "ac_cv_have_decl_IFLA_XDP_PROG_ID" " +#include +#include + +" +if test "x$ac_cv_have_decl_IFLA_XDP_PROG_ID" = xyes; then : + ac_have_decl=1 else - ac_cv_c_bigendian=no + ac_have_decl=0 fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_XDP_PROG_ID $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_XDP_DRV_PROG_ID" "ac_cv_have_decl_IFLA_XDP_DRV_PROG_ID" " +#include +#include + +" +if test "x$ac_cv_have_decl_IFLA_XDP_DRV_PROG_ID" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) - bogus endian macros - #endif +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_XDP_DRV_PROG_ID $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_XDP_SKB_PROG_ID" "ac_cv_have_decl_IFLA_XDP_SKB_PROG_ID" " +#include +#include - ; - return 0; -} +" +if test "x$ac_cv_have_decl_IFLA_XDP_SKB_PROG_ID" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_XDP_SKB_PROG_ID $ac_have_decl _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to _BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include +ac_fn_c_check_decl "$LINENO" "IFLA_XDP_HW_PROG_ID" "ac_cv_have_decl_IFLA_XDP_HW_PROG_ID" " +#include +#include -int -main () -{ -#ifndef _BIG_ENDIAN - not big endian - #endif +" +if test "x$ac_cv_have_decl_IFLA_XDP_HW_PROG_ID" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_XDP_HW_PROG_ID $ac_have_decl _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes +ac_fn_c_check_decl "$LINENO" "IFLA_XDP_EXPECTED_FD" "ac_cv_have_decl_IFLA_XDP_EXPECTED_FD" " +#include +#include + +" +if test "x$ac_cv_have_decl_IFLA_XDP_EXPECTED_FD" = xyes; then : + ac_have_decl=1 else - ac_cv_c_bigendian=no + ac_have_decl=0 fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_XDP_EXPECTED_FD $ac_have_decl +_ACEOF + + +ac_fn_c_check_decl "$LINENO" "IFLA_UNSPEC" "ac_cv_have_decl_IFLA_UNSPEC" " +#include +#include + +" +if test "x$ac_cv_have_decl_IFLA_UNSPEC" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # Compile a test program. - if test "$cross_compiling" = yes; then : - # Try to guess by grepping values from an object file. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -short int ascii_mm[] = - { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; - short int ascii_ii[] = - { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; - int use_ascii (int i) { - return ascii_mm[i] + ascii_ii[i]; - } - short int ebcdic_ii[] = - { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; - short int ebcdic_mm[] = - { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; - int use_ebcdic (int i) { - return ebcdic_mm[i] + ebcdic_ii[i]; - } - extern int foo; -int -main () -{ -return use_ascii (foo) == use_ebcdic (foo); - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_UNSPEC $ac_have_decl _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then - ac_cv_c_bigendian=yes - fi - if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then - if test "$ac_cv_c_bigendian" = unknown; then - ac_cv_c_bigendian=no - else - # finding both strings is unlikely to happen, but who knows? - ac_cv_c_bigendian=unknown - fi - fi +ac_fn_c_check_decl "$LINENO" "IFLA_ADDRESS" "ac_cv_have_decl_IFLA_ADDRESS" " +#include +#include + +" +if test "x$ac_cv_have_decl_IFLA_ADDRESS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_ADDRESS $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_BROADCAST" "ac_cv_have_decl_IFLA_BROADCAST" " +#include +#include + +" +if test "x$ac_cv_have_decl_IFLA_BROADCAST" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_BROADCAST $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_IFNAME" "ac_cv_have_decl_IFLA_IFNAME" " +#include +#include + +" +if test "x$ac_cv_have_decl_IFLA_IFNAME" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_IFNAME $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_MTU" "ac_cv_have_decl_IFLA_MTU" " +#include +#include + +" +if test "x$ac_cv_have_decl_IFLA_MTU" = xyes; then : + ac_have_decl=1 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ + ac_have_decl=0 +fi - /* Are we little or big endian? From Harbison&Steele. */ - union - { - long int l; - char c[sizeof (long int)]; - } u; - u.l = 1; - return u.c[sizeof (long int) - 1] == 1; +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_MTU $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_LINK" "ac_cv_have_decl_IFLA_LINK" " +#include +#include - ; - return 0; -} +" +if test "x$ac_cv_have_decl_IFLA_LINK" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_LINK $ac_have_decl _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_c_bigendian=no +ac_fn_c_check_decl "$LINENO" "IFLA_QDISC" "ac_cv_have_decl_IFLA_QDISC" " +#include +#include + +" +if test "x$ac_cv_have_decl_IFLA_QDISC" = xyes; then : + ac_have_decl=1 else - ac_cv_c_bigendian=yes + ac_have_decl=0 fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_QDISC $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_STATS" "ac_cv_have_decl_IFLA_STATS" " +#include +#include + +" +if test "x$ac_cv_have_decl_IFLA_STATS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi - fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_STATS $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_COST" "ac_cv_have_decl_IFLA_COST" " +#include +#include + +" +if test "x$ac_cv_have_decl_IFLA_COST" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 -$as_echo "$ac_cv_c_bigendian" >&6; } - case $ac_cv_c_bigendian in #( - yes) - $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h -;; #( - no) - ;; #( - universal) -$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_COST $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_PRIORITY" "ac_cv_have_decl_IFLA_PRIORITY" " +#include +#include - ;; #( - *) - as_fn_error $? "unknown endianness - presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; - esac +" +if test "x$ac_cv_have_decl_IFLA_PRIORITY" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_PRIORITY $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_MASTER" "ac_cv_have_decl_IFLA_MASTER" " +#include +#include - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for typeof syntax and keyword spelling" >&5 -$as_echo_n "checking for typeof syntax and keyword spelling... " >&6; } -if ${ac_cv_c_typeof+:} false; then : - $as_echo_n "(cached) " >&6 +" +if test "x$ac_cv_have_decl_IFLA_MASTER" = xyes; then : + ac_have_decl=1 else - ac_cv_c_typeof=no - for ac_kw in typeof __typeof__ no; do - test $ac_kw = no && break - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + ac_have_decl=0 +fi -int -main () -{ +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_MASTER $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_WIRELESS" "ac_cv_have_decl_IFLA_WIRELESS" " +#include +#include - int value; - typedef struct { - char a [1 - + ! (($ac_kw (value)) - (($ac_kw (value)) 0 < ($ac_kw (value)) -1 - ? ($ac_kw (value)) - 1 - : ~ (~ ($ac_kw (value)) 0 - << sizeof ($ac_kw (value)))))]; } - ac__typeof_type_; - return - (! ((void) ((ac__typeof_type_ *) 0), 0)); +" +if test "x$ac_cv_have_decl_IFLA_WIRELESS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_WIRELESS $ac_have_decl _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_typeof=$ac_kw +ac_fn_c_check_decl "$LINENO" "IFLA_PROTINFO" "ac_cv_have_decl_IFLA_PROTINFO" " +#include +#include + +" +if test "x$ac_cv_have_decl_IFLA_PROTINFO" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - test $ac_cv_c_typeof != no && break - done + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_PROTINFO $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_TXQLEN" "ac_cv_have_decl_IFLA_TXQLEN" " +#include +#include + +" +if test "x$ac_cv_have_decl_IFLA_TXQLEN" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_typeof" >&5 -$as_echo "$ac_cv_c_typeof" >&6; } - if test $ac_cv_c_typeof != no; then -$as_echo "#define HAVE_TYPEOF 1" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_TXQLEN $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_MAP" "ac_cv_have_decl_IFLA_MAP" " +#include +#include - if test $ac_cv_c_typeof != typeof; then +" +if test "x$ac_cv_have_decl_IFLA_MAP" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define typeof $ac_cv_c_typeof +#define HAVE_DECL_IFLA_MAP $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_WEIGHT" "ac_cv_have_decl_IFLA_WEIGHT" " +#include +#include - fi - fi +" +if test "x$ac_cv_have_decl_IFLA_WEIGHT" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_WEIGHT $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_OPERSTATE" "ac_cv_have_decl_IFLA_OPERSTATE" " +#include +#include -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 -$as_echo_n "checking for uid_t in sys/types.h... " >&6; } -if ${ac_cv_type_uid_t+:} false; then : - $as_echo_n "(cached) " >&6 +" +if test "x$ac_cv_have_decl_IFLA_OPERSTATE" = xyes; then : + ac_have_decl=1 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include + ac_have_decl=0 +fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_OPERSTATE $ac_have_decl _ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "uid_t" >/dev/null 2>&1; then : - ac_cv_type_uid_t=yes +ac_fn_c_check_decl "$LINENO" "IFLA_LINKMODE" "ac_cv_have_decl_IFLA_LINKMODE" " +#include +#include + +" +if test "x$ac_cv_have_decl_IFLA_LINKMODE" = xyes; then : + ac_have_decl=1 else - ac_cv_type_uid_t=no + ac_have_decl=0 fi -rm -f conftest* +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_LINKMODE $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_LINKINFO" "ac_cv_have_decl_IFLA_LINKINFO" " +#include +#include + +" +if test "x$ac_cv_have_decl_IFLA_LINKINFO" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 -$as_echo "$ac_cv_type_uid_t" >&6; } -if test $ac_cv_type_uid_t = no; then -$as_echo "#define uid_t int" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_LINKINFO $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_NET_NS_PID" "ac_cv_have_decl_IFLA_NET_NS_PID" " +#include +#include +" +if test "x$ac_cv_have_decl_IFLA_NET_NS_PID" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi -$as_echo "#define gid_t int" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_NET_NS_PID $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_IFALIAS" "ac_cv_have_decl_IFLA_IFALIAS" " +#include +#include +" +if test "x$ac_cv_have_decl_IFLA_IFALIAS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_IFALIAS $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_NUM_VF" "ac_cv_have_decl_IFLA_NUM_VF" " +#include +#include -for ac_func in accept4 be64toh fallocate fanotify_mark fopen64 fork fputs_unlocked fstatat ftruncate futimens iconv_open if_indextoname open64 prctl preadv process_vm_readv pwritev readahead signalfd stpcpy strerror strndup strsignal sync_file_range utimensat -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +" +if test "x$ac_cv_have_decl_IFLA_NUM_VF" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_NUM_VF $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_VFINFO_LIST" "ac_cv_have_decl_IFLA_VFINFO_LIST" " +#include +#include +" +if test "x$ac_cv_have_decl_IFLA_VFINFO_LIST" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -done +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_VFINFO_LIST $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_STATS64" "ac_cv_have_decl_IFLA_STATS64" " +#include +#include -ac_fn_c_check_type "$LINENO" "sig_atomic_t" "ac_cv_type_sig_atomic_t" "#include " -if test "x$ac_cv_type_sig_atomic_t" = xyes; then : +if test "x$ac_cv_have_decl_IFLA_STATS64" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_SIG_ATOMIC_T 1 +#define HAVE_DECL_IFLA_STATS64 $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_VF_PORTS" "ac_cv_have_decl_IFLA_VF_PORTS" " +#include +#include - -fi -ac_fn_c_check_type "$LINENO" "struct sigcontext" "ac_cv_type_struct_sigcontext" "#include " -if test "x$ac_cv_type_struct_sigcontext" = xyes; then : +if test "x$ac_cv_have_decl_IFLA_VF_PORTS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_SIGCONTEXT 1 +#define HAVE_DECL_IFLA_VF_PORTS $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_PORT_SELF" "ac_cv_have_decl_IFLA_PORT_SELF" " +#include +#include - +" +if test "x$ac_cv_have_decl_IFLA_PORT_SELF" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_PORT_SELF $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_AF_SPEC" "ac_cv_have_decl_IFLA_AF_SPEC" " +#include +#include -ac_fn_c_check_type "$LINENO" "struct mmsghdr" "ac_cv_type_struct_mmsghdr" "#include " -if test "x$ac_cv_type_struct_mmsghdr" = xyes; then : +if test "x$ac_cv_have_decl_IFLA_AF_SPEC" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_MMSGHDR 1 +#define HAVE_DECL_IFLA_AF_SPEC $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_GROUP" "ac_cv_have_decl_IFLA_GROUP" " +#include +#include - +" +if test "x$ac_cv_have_decl_IFLA_GROUP" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_GROUP $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_NET_NS_FD" "ac_cv_have_decl_IFLA_NET_NS_FD" " +#include +#include -ac_fn_c_check_type "$LINENO" "__kernel_long_t" "ac_cv_type___kernel_long_t" "#include " -if test "x$ac_cv_type___kernel_long_t" = xyes; then : +if test "x$ac_cv_have_decl_IFLA_NET_NS_FD" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE___KERNEL_LONG_T 1 +#define HAVE_DECL_IFLA_NET_NS_FD $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_EXT_MASK" "ac_cv_have_decl_IFLA_EXT_MASK" " +#include +#include - -fi -ac_fn_c_check_type "$LINENO" "__kernel_ulong_t" "ac_cv_type___kernel_ulong_t" "#include " -if test "x$ac_cv_type___kernel_ulong_t" = xyes; then : +if test "x$ac_cv_have_decl_IFLA_EXT_MASK" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE___KERNEL_ULONG_T 1 +#define HAVE_DECL_IFLA_EXT_MASK $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_PROMISCUITY" "ac_cv_have_decl_IFLA_PROMISCUITY" " +#include +#include - +" +if test "x$ac_cv_have_decl_IFLA_PROMISCUITY" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_PROMISCUITY $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_NUM_TX_QUEUES" "ac_cv_have_decl_IFLA_NUM_TX_QUEUES" " +#include +#include -ac_fn_c_check_type "$LINENO" "struct __kernel_timespec" "ac_cv_type_struct___kernel_timespec" "#include " -if test "x$ac_cv_type_struct___kernel_timespec" = xyes; then : +if test "x$ac_cv_have_decl_IFLA_NUM_TX_QUEUES" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT___KERNEL_TIMESPEC 1 +#define HAVE_DECL_IFLA_NUM_TX_QUEUES $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_NUM_RX_QUEUES" "ac_cv_have_decl_IFLA_NUM_RX_QUEUES" " +#include +#include - -fi -ac_fn_c_check_type "$LINENO" "struct __kernel_sock_timeval" "ac_cv_type_struct___kernel_sock_timeval" "#include " -if test "x$ac_cv_type_struct___kernel_sock_timeval" = xyes; then : +if test "x$ac_cv_have_decl_IFLA_NUM_RX_QUEUES" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT___KERNEL_SOCK_TIMEVAL 1 +#define HAVE_DECL_IFLA_NUM_RX_QUEUES $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_CARRIER" "ac_cv_have_decl_IFLA_CARRIER" " +#include +#include - +" +if test "x$ac_cv_have_decl_IFLA_CARRIER" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_CARRIER $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_PHYS_PORT_ID" "ac_cv_have_decl_IFLA_PHYS_PORT_ID" " +#include +#include -ac_fn_c_check_type "$LINENO" "struct stat64" "ac_cv_type_struct_stat64" "#include -#include " -if test "x$ac_cv_type_struct_stat64" = xyes; then : +if test "x$ac_cv_have_decl_IFLA_PHYS_PORT_ID" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STAT64 1 +#define HAVE_DECL_IFLA_PHYS_PORT_ID $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_CARRIER_CHANGES" "ac_cv_have_decl_IFLA_CARRIER_CHANGES" " +#include +#include - -fi -ac_fn_c_check_type "$LINENO" "struct __old_kernel_stat" "ac_cv_type_struct___old_kernel_stat" "#include -#include " -if test "x$ac_cv_type_struct___old_kernel_stat" = xyes; then : +if test "x$ac_cv_have_decl_IFLA_CARRIER_CHANGES" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT___OLD_KERNEL_STAT 1 +#define HAVE_DECL_IFLA_CARRIER_CHANGES $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_PHYS_SWITCH_ID" "ac_cv_have_decl_IFLA_PHYS_SWITCH_ID" " +#include +#include - +" +if test "x$ac_cv_have_decl_IFLA_PHYS_SWITCH_ID" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_PHYS_SWITCH_ID $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_LINK_NETNSID" "ac_cv_have_decl_IFLA_LINK_NETNSID" " +#include +#include -ac_fn_c_check_type "$LINENO" "struct user_desc" "ac_cv_type_struct_user_desc" "#include " -if test "x$ac_cv_type_struct_user_desc" = xyes; then : +if test "x$ac_cv_have_decl_IFLA_LINK_NETNSID" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_USER_DESC 1 +#define HAVE_DECL_IFLA_LINK_NETNSID $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_PHYS_PORT_NAME" "ac_cv_have_decl_IFLA_PHYS_PORT_NAME" " +#include +#include -ac_fn_c_check_member "$LINENO" "struct user_desc" "lm" "ac_cv_member_struct_user_desc_lm" "#include " -if test "x$ac_cv_member_struct_user_desc_lm" = xyes; then : +if test "x$ac_cv_have_decl_IFLA_PHYS_PORT_NAME" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_USER_DESC_LM 1 +#define HAVE_DECL_IFLA_PHYS_PORT_NAME $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_PROTO_DOWN" "ac_cv_have_decl_IFLA_PROTO_DOWN" " +#include +#include - -fi - +" +if test "x$ac_cv_have_decl_IFLA_PROTO_DOWN" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_PROTO_DOWN $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_GSO_MAX_SEGS" "ac_cv_have_decl_IFLA_GSO_MAX_SEGS" " +#include +#include -ac_fn_c_check_member "$LINENO" "struct stat" "st_mtime_nsec" "ac_cv_member_struct_stat_st_mtime_nsec" "#include -#include " -if test "x$ac_cv_member_struct_stat_st_mtime_nsec" = xyes; then : +if test "x$ac_cv_have_decl_IFLA_GSO_MAX_SEGS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STAT_ST_MTIME_NSEC 1 +#define HAVE_DECL_IFLA_GSO_MAX_SEGS $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_GSO_MAX_SIZE" "ac_cv_have_decl_IFLA_GSO_MAX_SIZE" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct stat64" "st_mtime_nsec" "ac_cv_member_struct_stat64_st_mtime_nsec" "#include -#include " -if test "x$ac_cv_member_struct_stat64_st_mtime_nsec" = xyes; then : +if test "x$ac_cv_have_decl_IFLA_GSO_MAX_SIZE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STAT64_ST_MTIME_NSEC 1 +#define HAVE_DECL_IFLA_GSO_MAX_SIZE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_PAD" "ac_cv_have_decl_IFLA_PAD" " +#include +#include - +" +if test "x$ac_cv_have_decl_IFLA_PAD" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_PAD $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_XDP" "ac_cv_have_decl_IFLA_XDP" " +#include +#include -ac_fn_c_check_type "$LINENO" "struct pt_all_user_regs" "ac_cv_type_struct_pt_all_user_regs" "#include " -if test "x$ac_cv_type_struct_pt_all_user_regs" = xyes; then : +if test "x$ac_cv_have_decl_IFLA_XDP" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PT_ALL_USER_REGS 1 +#define HAVE_DECL_IFLA_XDP $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_EVENT" "ac_cv_have_decl_IFLA_EVENT" " +#include +#include - -fi -ac_fn_c_check_type "$LINENO" "struct ia64_fpreg" "ac_cv_type_struct_ia64_fpreg" "#include " -if test "x$ac_cv_type_struct_ia64_fpreg" = xyes; then : +if test "x$ac_cv_have_decl_IFLA_EVENT" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_IA64_FPREG 1 +#define HAVE_DECL_IFLA_EVENT $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_NEW_NETNSID" "ac_cv_have_decl_IFLA_NEW_NETNSID" " +#include +#include - -fi -ac_fn_c_check_type "$LINENO" "struct ptrace_peeksiginfo_args" "ac_cv_type_struct_ptrace_peeksiginfo_args" "#include " -if test "x$ac_cv_type_struct_ptrace_peeksiginfo_args" = xyes; then : +if test "x$ac_cv_have_decl_IFLA_NEW_NETNSID" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PTRACE_PEEKSIGINFO_ARGS 1 +#define HAVE_DECL_IFLA_NEW_NETNSID $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_IF_NETNSID" "ac_cv_have_decl_IFLA_IF_NETNSID" " +#include +#include - +" +if test "x$ac_cv_have_decl_IFLA_IF_NETNSID" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_IF_NETNSID $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_CARRIER_UP_COUNT" "ac_cv_have_decl_IFLA_CARRIER_UP_COUNT" " +#include +#include -# For kernels that do not have v3.10-rc1~201^2~11 -ac_fn_c_check_type "$LINENO" "s390_compat_regs" "ac_cv_type_s390_compat_regs" "#include " -if test "x$ac_cv_type_s390_compat_regs" = xyes; then : +if test "x$ac_cv_have_decl_IFLA_CARRIER_UP_COUNT" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_S390_COMPAT_REGS 1 +#define HAVE_DECL_IFLA_CARRIER_UP_COUNT $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_CARRIER_DOWN_COUNT" "ac_cv_have_decl_IFLA_CARRIER_DOWN_COUNT" " +#include +#include - +" +if test "x$ac_cv_have_decl_IFLA_CARRIER_DOWN_COUNT" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_IFLA_CARRIER_DOWN_COUNT $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_NEW_IFINDEX" "ac_cv_have_decl_IFLA_NEW_IFINDEX" " +#include +#include -ac_fn_c_check_type "$LINENO" "struct flock" "ac_cv_type_struct_flock" "#include -#include " -if test "x$ac_cv_type_struct_flock" = xyes; then : +if test "x$ac_cv_have_decl_IFLA_NEW_IFINDEX" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_FLOCK 1 +#define HAVE_DECL_IFLA_NEW_IFINDEX $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_MIN_MTU" "ac_cv_have_decl_IFLA_MIN_MTU" " +#include +#include - -fi -ac_fn_c_check_type "$LINENO" "struct flock64" "ac_cv_type_struct_flock64" "#include -#include " -if test "x$ac_cv_type_struct_flock64" = xyes; then : +if test "x$ac_cv_have_decl_IFLA_MIN_MTU" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_FLOCK64 1 +#define HAVE_DECL_IFLA_MIN_MTU $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_MAX_MTU" "ac_cv_have_decl_IFLA_MAX_MTU" " +#include +#include - -fi -ac_fn_c_check_type "$LINENO" "struct __kernel_flock" "ac_cv_type_struct___kernel_flock" "#include -#include " -if test "x$ac_cv_type_struct___kernel_flock" = xyes; then : +if test "x$ac_cv_have_decl_IFLA_MAX_MTU" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT___KERNEL_FLOCK 1 +#define HAVE_DECL_IFLA_MAX_MTU $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_PROP_LIST" "ac_cv_have_decl_IFLA_PROP_LIST" " +#include +#include - -fi -ac_fn_c_check_type "$LINENO" "struct __kernel_flock64" "ac_cv_type_struct___kernel_flock64" "#include -#include " -if test "x$ac_cv_type_struct___kernel_flock64" = xyes; then : +if test "x$ac_cv_have_decl_IFLA_PROP_LIST" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT___KERNEL_FLOCK64 1 +#define HAVE_DECL_IFLA_PROP_LIST $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_ALT_IFNAME" "ac_cv_have_decl_IFLA_ALT_IFNAME" " +#include +#include - -fi -ac_fn_c_check_type "$LINENO" "struct f_owner_ex" "ac_cv_type_struct_f_owner_ex" "#include -#include " -if test "x$ac_cv_type_struct_f_owner_ex" = xyes; then : +if test "x$ac_cv_have_decl_IFLA_ALT_IFNAME" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_F_OWNER_EX 1 +#define HAVE_DECL_IFLA_ALT_IFNAME $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_PERM_ADDRESS" "ac_cv_have_decl_IFLA_PERM_ADDRESS" " +#include +#include - -fi -ac_fn_c_check_type "$LINENO" "struct __kernel_f_owner_ex" "ac_cv_type_struct___kernel_f_owner_ex" "#include -#include " -if test "x$ac_cv_type_struct___kernel_f_owner_ex" = xyes; then : +if test "x$ac_cv_have_decl_IFLA_PERM_ADDRESS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT___KERNEL_F_OWNER_EX 1 +#define HAVE_DECL_IFLA_PERM_ADDRESS $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "IFLA_PROTO_DOWN_REASON" "ac_cv_have_decl_IFLA_PROTO_DOWN_REASON" " +#include +#include - -fi - - -ac_fn_c_check_type "$LINENO" "struct crypto_report_aead" "ac_cv_type_struct_crypto_report_aead" "#include " -if test "x$ac_cv_type_struct_crypto_report_aead" = xyes; then : +if test "x$ac_cv_have_decl_IFLA_PROTO_DOWN_REASON" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_CRYPTO_REPORT_AEAD 1 +#define HAVE_DECL_IFLA_PROTO_DOWN_REASON $ac_have_decl _ACEOF -fi -ac_fn_c_check_type "$LINENO" "struct crypto_report_blkcipher" "ac_cv_type_struct_crypto_report_blkcipher" "#include +ac_fn_c_check_decl "$LINENO" "TCA_ACT_UNSPEC" "ac_cv_have_decl_TCA_ACT_UNSPEC" " +#include + " -if test "x$ac_cv_type_struct_crypto_report_blkcipher" = xyes; then : +if test "x$ac_cv_have_decl_TCA_ACT_UNSPEC" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_CRYPTO_REPORT_BLKCIPHER 1 +#define HAVE_DECL_TCA_ACT_UNSPEC $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "TCA_ACT_KIND" "ac_cv_have_decl_TCA_ACT_KIND" " +#include - -fi -ac_fn_c_check_type "$LINENO" "struct crypto_report_cipher" "ac_cv_type_struct_crypto_report_cipher" "#include " -if test "x$ac_cv_type_struct_crypto_report_cipher" = xyes; then : +if test "x$ac_cv_have_decl_TCA_ACT_KIND" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_CRYPTO_REPORT_CIPHER 1 +#define HAVE_DECL_TCA_ACT_KIND $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "TCA_ACT_OPTIONS" "ac_cv_have_decl_TCA_ACT_OPTIONS" " +#include - -fi -ac_fn_c_check_type "$LINENO" "struct crypto_report_hash" "ac_cv_type_struct_crypto_report_hash" "#include " -if test "x$ac_cv_type_struct_crypto_report_hash" = xyes; then : +if test "x$ac_cv_have_decl_TCA_ACT_OPTIONS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_CRYPTO_REPORT_HASH 1 +#define HAVE_DECL_TCA_ACT_OPTIONS $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "TCA_ACT_INDEX" "ac_cv_have_decl_TCA_ACT_INDEX" " +#include - -fi -ac_fn_c_check_type "$LINENO" "struct crypto_report_rng" "ac_cv_type_struct_crypto_report_rng" "#include " -if test "x$ac_cv_type_struct_crypto_report_rng" = xyes; then : +if test "x$ac_cv_have_decl_TCA_ACT_INDEX" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_CRYPTO_REPORT_RNG 1 +#define HAVE_DECL_TCA_ACT_INDEX $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "TCA_ACT_STATS" "ac_cv_have_decl_TCA_ACT_STATS" " +#include - +" +if test "x$ac_cv_have_decl_TCA_ACT_STATS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_TCA_ACT_STATS $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "TCA_ACT_PAD" "ac_cv_have_decl_TCA_ACT_PAD" " +#include -ac_fn_c_check_type "$LINENO" "struct kcmp_epoll_slot" "ac_cv_type_struct_kcmp_epoll_slot" "#include " -if test "x$ac_cv_type_struct_kcmp_epoll_slot" = xyes; then : +if test "x$ac_cv_have_decl_TCA_ACT_PAD" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_KCMP_EPOLL_SLOT 1 +#define HAVE_DECL_TCA_ACT_PAD $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "TCA_ACT_COOKIE" "ac_cv_have_decl_TCA_ACT_COOKIE" " +#include - +" +if test "x$ac_cv_have_decl_TCA_ACT_COOKIE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_TCA_ACT_COOKIE $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "TCA_ACT_FLAGS" "ac_cv_have_decl_TCA_ACT_FLAGS" " +#include -ac_fn_c_check_type "$LINENO" "struct keyctl_kdf_params" "ac_cv_type_struct_keyctl_kdf_params" "#include " -if test "x$ac_cv_type_struct_keyctl_kdf_params" = xyes; then : +if test "x$ac_cv_have_decl_TCA_ACT_FLAGS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_KEYCTL_KDF_PARAMS 1 +#define HAVE_DECL_TCA_ACT_FLAGS $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "TCA_ACT_HW_STATS" "ac_cv_have_decl_TCA_ACT_HW_STATS" " +#include - +" +if test "x$ac_cv_have_decl_TCA_ACT_HW_STATS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_TCA_ACT_HW_STATS $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "TCA_ACT_USED_HW_STATS" "ac_cv_have_decl_TCA_ACT_USED_HW_STATS" " +#include -ac_fn_c_check_member "$LINENO" "struct timex" "tai" "ac_cv_member_struct_timex_tai" "#include " -if test "x$ac_cv_member_struct_timex_tai" = xyes; then : +if test "x$ac_cv_have_decl_TCA_ACT_USED_HW_STATS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_TIMEX_TAI 1 +#define HAVE_DECL_TCA_ACT_USED_HW_STATS $ac_have_decl _ACEOF -fi - +ac_fn_c_check_decl "$LINENO" "TCA_STAB_UNSPEC" "ac_cv_have_decl_TCA_STAB_UNSPEC" " +#include +#include -ac_fn_c_check_member "$LINENO" "struct utsname" "domainname" "ac_cv_member_struct_utsname_domainname" "#include " -if test "x$ac_cv_member_struct_utsname_domainname" = xyes; then : +if test "x$ac_cv_have_decl_TCA_STAB_UNSPEC" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_UTSNAME_DOMAINNAME 1 +#define HAVE_DECL_TCA_STAB_UNSPEC $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "TCA_STAB_BASE" "ac_cv_have_decl_TCA_STAB_BASE" " +#include +#include - +" +if test "x$ac_cv_have_decl_TCA_STAB_BASE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_TCA_STAB_BASE $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "TCA_STAB_DATA" "ac_cv_have_decl_TCA_STAB_DATA" " +#include +#include -ac_fn_c_check_member "$LINENO" "siginfo_t" "si_syscall" "ac_cv_member_siginfo_t_si_syscall" "#include " -if test "x$ac_cv_member_siginfo_t_si_syscall" = xyes; then : +if test "x$ac_cv_have_decl_TCA_STAB_DATA" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_SIGINFO_T_SI_SYSCALL 1 +#define HAVE_DECL_TCA_STAB_DATA $ac_have_decl _ACEOF -fi -ac_fn_c_check_member "$LINENO" "siginfo_t" "si_timerid" "ac_cv_member_siginfo_t_si_timerid" "#include +ac_fn_c_check_decl "$LINENO" "TCA_STATS_UNSPEC" "ac_cv_have_decl_TCA_STATS_UNSPEC" " +#include + " -if test "x$ac_cv_member_siginfo_t_si_timerid" = xyes; then : +if test "x$ac_cv_have_decl_TCA_STATS_UNSPEC" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_SIGINFO_T_SI_TIMERID 1 +#define HAVE_DECL_TCA_STATS_UNSPEC $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "TCA_STATS_BASIC" "ac_cv_have_decl_TCA_STATS_BASIC" " +#include - -fi -ac_fn_c_check_member "$LINENO" "siginfo_t" "si_overrun" "ac_cv_member_siginfo_t_si_overrun" "#include " -if test "x$ac_cv_member_siginfo_t_si_overrun" = xyes; then : +if test "x$ac_cv_have_decl_TCA_STATS_BASIC" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_SIGINFO_T_SI_OVERRUN 1 +#define HAVE_DECL_TCA_STATS_BASIC $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "TCA_STATS_RATE_EST" "ac_cv_have_decl_TCA_STATS_RATE_EST" " +#include - +" +if test "x$ac_cv_have_decl_TCA_STATS_RATE_EST" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_TCA_STATS_RATE_EST $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "TCA_STATS_QUEUE" "ac_cv_have_decl_TCA_STATS_QUEUE" " +#include -ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "precise_ip" "ac_cv_member_struct_perf_event_attr_precise_ip" "#include " -if test "x$ac_cv_member_struct_perf_event_attr_precise_ip" = xyes; then : +if test "x$ac_cv_have_decl_TCA_STATS_QUEUE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PERF_EVENT_ATTR_PRECISE_IP 1 +#define HAVE_DECL_TCA_STATS_QUEUE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "TCA_STATS_APP" "ac_cv_have_decl_TCA_STATS_APP" " +#include - -fi -ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "mmap_data" "ac_cv_member_struct_perf_event_attr_mmap_data" "#include " -if test "x$ac_cv_member_struct_perf_event_attr_mmap_data" = xyes; then : +if test "x$ac_cv_have_decl_TCA_STATS_APP" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PERF_EVENT_ATTR_MMAP_DATA 1 +#define HAVE_DECL_TCA_STATS_APP $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "TCA_STATS_RATE_EST64" "ac_cv_have_decl_TCA_STATS_RATE_EST64" " +#include - -fi -ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "sample_id_all" "ac_cv_member_struct_perf_event_attr_sample_id_all" "#include " -if test "x$ac_cv_member_struct_perf_event_attr_sample_id_all" = xyes; then : +if test "x$ac_cv_have_decl_TCA_STATS_RATE_EST64" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PERF_EVENT_ATTR_SAMPLE_ID_ALL 1 +#define HAVE_DECL_TCA_STATS_RATE_EST64 $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "TCA_STATS_PAD" "ac_cv_have_decl_TCA_STATS_PAD" " +#include - -fi -ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "exclude_host" "ac_cv_member_struct_perf_event_attr_exclude_host" "#include " -if test "x$ac_cv_member_struct_perf_event_attr_exclude_host" = xyes; then : +if test "x$ac_cv_have_decl_TCA_STATS_PAD" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PERF_EVENT_ATTR_EXCLUDE_HOST 1 +#define HAVE_DECL_TCA_STATS_PAD $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "TCA_STATS_BASIC_HW" "ac_cv_have_decl_TCA_STATS_BASIC_HW" " +#include - -fi -ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "exclude_guest" "ac_cv_member_struct_perf_event_attr_exclude_guest" "#include " -if test "x$ac_cv_member_struct_perf_event_attr_exclude_guest" = xyes; then : +if test "x$ac_cv_have_decl_TCA_STATS_BASIC_HW" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PERF_EVENT_ATTR_EXCLUDE_GUEST 1 +#define HAVE_DECL_TCA_STATS_BASIC_HW $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "TCA_STATS_PKT64" "ac_cv_have_decl_TCA_STATS_PKT64" " +#include - -fi -ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "exclude_callchain_kernel" "ac_cv_member_struct_perf_event_attr_exclude_callchain_kernel" "#include " -if test "x$ac_cv_member_struct_perf_event_attr_exclude_callchain_kernel" = xyes; then : +if test "x$ac_cv_have_decl_TCA_STATS_PKT64" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PERF_EVENT_ATTR_EXCLUDE_CALLCHAIN_KERNEL 1 +#define HAVE_DECL_TCA_STATS_PKT64 $ac_have_decl _ACEOF -fi -ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "exclude_callchain_user" "ac_cv_member_struct_perf_event_attr_exclude_callchain_user" "#include +ac_fn_c_check_decl "$LINENO" "KERN_OSTYPE" "ac_cv_have_decl_KERN_OSTYPE" " +#include +#include + " -if test "x$ac_cv_member_struct_perf_event_attr_exclude_callchain_user" = xyes; then : +if test "x$ac_cv_have_decl_KERN_OSTYPE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PERF_EVENT_ATTR_EXCLUDE_CALLCHAIN_USER 1 +#define HAVE_DECL_KERN_OSTYPE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_OSRELEASE" "ac_cv_have_decl_KERN_OSRELEASE" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "mmap2" "ac_cv_member_struct_perf_event_attr_mmap2" "#include " -if test "x$ac_cv_member_struct_perf_event_attr_mmap2" = xyes; then : +if test "x$ac_cv_have_decl_KERN_OSRELEASE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PERF_EVENT_ATTR_MMAP2 1 +#define HAVE_DECL_KERN_OSRELEASE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_OSREV" "ac_cv_have_decl_KERN_OSREV" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "comm_exec" "ac_cv_member_struct_perf_event_attr_comm_exec" "#include " -if test "x$ac_cv_member_struct_perf_event_attr_comm_exec" = xyes; then : +if test "x$ac_cv_have_decl_KERN_OSREV" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PERF_EVENT_ATTR_COMM_EXEC 1 +#define HAVE_DECL_KERN_OSREV $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_VERSION" "ac_cv_have_decl_KERN_VERSION" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "use_clockid" "ac_cv_member_struct_perf_event_attr_use_clockid" "#include " -if test "x$ac_cv_member_struct_perf_event_attr_use_clockid" = xyes; then : +if test "x$ac_cv_have_decl_KERN_VERSION" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PERF_EVENT_ATTR_USE_CLOCKID 1 +#define HAVE_DECL_KERN_VERSION $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_SECUREMASK" "ac_cv_have_decl_KERN_SECUREMASK" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "context_switch" "ac_cv_member_struct_perf_event_attr_context_switch" "#include " -if test "x$ac_cv_member_struct_perf_event_attr_context_switch" = xyes; then : +if test "x$ac_cv_have_decl_KERN_SECUREMASK" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PERF_EVENT_ATTR_CONTEXT_SWITCH 1 +#define HAVE_DECL_KERN_SECUREMASK $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_PROF" "ac_cv_have_decl_KERN_PROF" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "write_backward" "ac_cv_member_struct_perf_event_attr_write_backward" "#include " -if test "x$ac_cv_member_struct_perf_event_attr_write_backward" = xyes; then : +if test "x$ac_cv_have_decl_KERN_PROF" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PERF_EVENT_ATTR_WRITE_BACKWARD 1 +#define HAVE_DECL_KERN_PROF $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_NODENAME" "ac_cv_have_decl_KERN_NODENAME" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "namespaces" "ac_cv_member_struct_perf_event_attr_namespaces" "#include " -if test "x$ac_cv_member_struct_perf_event_attr_namespaces" = xyes; then : +if test "x$ac_cv_have_decl_KERN_NODENAME" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PERF_EVENT_ATTR_NAMESPACES 1 +#define HAVE_DECL_KERN_NODENAME $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_DOMAINNAME" "ac_cv_have_decl_KERN_DOMAINNAME" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "bp_type" "ac_cv_member_struct_perf_event_attr_bp_type" "#include " -if test "x$ac_cv_member_struct_perf_event_attr_bp_type" = xyes; then : +if test "x$ac_cv_have_decl_KERN_DOMAINNAME" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PERF_EVENT_ATTR_BP_TYPE 1 +#define HAVE_DECL_KERN_DOMAINNAME $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_PANIC" "ac_cv_have_decl_KERN_PANIC" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "config1" "ac_cv_member_struct_perf_event_attr_config1" "#include " -if test "x$ac_cv_member_struct_perf_event_attr_config1" = xyes; then : +if test "x$ac_cv_have_decl_KERN_PANIC" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PERF_EVENT_ATTR_CONFIG1 1 +#define HAVE_DECL_KERN_PANIC $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_REALROOTDEV" "ac_cv_have_decl_KERN_REALROOTDEV" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "config2" "ac_cv_member_struct_perf_event_attr_config2" "#include " -if test "x$ac_cv_member_struct_perf_event_attr_config2" = xyes; then : +if test "x$ac_cv_have_decl_KERN_REALROOTDEV" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PERF_EVENT_ATTR_CONFIG2 1 +#define HAVE_DECL_KERN_REALROOTDEV $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_SPARC_REBOOT" "ac_cv_have_decl_KERN_SPARC_REBOOT" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "branch_sample_type" "ac_cv_member_struct_perf_event_attr_branch_sample_type" "#include " -if test "x$ac_cv_member_struct_perf_event_attr_branch_sample_type" = xyes; then : +if test "x$ac_cv_have_decl_KERN_SPARC_REBOOT" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PERF_EVENT_ATTR_BRANCH_SAMPLE_TYPE 1 +#define HAVE_DECL_KERN_SPARC_REBOOT $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_CTLALTDEL" "ac_cv_have_decl_KERN_CTLALTDEL" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "sample_regs_user" "ac_cv_member_struct_perf_event_attr_sample_regs_user" "#include " -if test "x$ac_cv_member_struct_perf_event_attr_sample_regs_user" = xyes; then : +if test "x$ac_cv_have_decl_KERN_CTLALTDEL" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PERF_EVENT_ATTR_SAMPLE_REGS_USER 1 +#define HAVE_DECL_KERN_CTLALTDEL $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_PRINTK" "ac_cv_have_decl_KERN_PRINTK" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "sample_stack_user" "ac_cv_member_struct_perf_event_attr_sample_stack_user" "#include " -if test "x$ac_cv_member_struct_perf_event_attr_sample_stack_user" = xyes; then : +if test "x$ac_cv_have_decl_KERN_PRINTK" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PERF_EVENT_ATTR_SAMPLE_STACK_USER 1 +#define HAVE_DECL_KERN_PRINTK $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_NAMETRANS" "ac_cv_have_decl_KERN_NAMETRANS" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "sample_regs_intr" "ac_cv_member_struct_perf_event_attr_sample_regs_intr" "#include " -if test "x$ac_cv_member_struct_perf_event_attr_sample_regs_intr" = xyes; then : +if test "x$ac_cv_have_decl_KERN_NAMETRANS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PERF_EVENT_ATTR_SAMPLE_REGS_INTR 1 +#define HAVE_DECL_KERN_NAMETRANS $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_PPC_HTABRECLAIM" "ac_cv_have_decl_KERN_PPC_HTABRECLAIM" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "aux_watermark" "ac_cv_member_struct_perf_event_attr_aux_watermark" "#include " -if test "x$ac_cv_member_struct_perf_event_attr_aux_watermark" = xyes; then : +if test "x$ac_cv_have_decl_KERN_PPC_HTABRECLAIM" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PERF_EVENT_ATTR_AUX_WATERMARK 1 +#define HAVE_DECL_KERN_PPC_HTABRECLAIM $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_PPC_ZEROPAGED" "ac_cv_have_decl_KERN_PPC_ZEROPAGED" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct perf_event_attr" "sample_max_stack" "ac_cv_member_struct_perf_event_attr_sample_max_stack" "#include " -if test "x$ac_cv_member_struct_perf_event_attr_sample_max_stack" = xyes; then : +if test "x$ac_cv_have_decl_KERN_PPC_ZEROPAGED" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PERF_EVENT_ATTR_SAMPLE_MAX_STACK 1 +#define HAVE_DECL_KERN_PPC_ZEROPAGED $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_PPC_POWERSAVE_NAP" "ac_cv_have_decl_KERN_PPC_POWERSAVE_NAP" " +#include +#include - +" +if test "x$ac_cv_have_decl_KERN_PPC_POWERSAVE_NAP" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi - -for ac_header in asm/cachectl.h asm/guarded_storage.h asm/sysmips.h elf.h iconv.h inttypes.h linux/bsg.h linux/cryptouser.h linux/dm-ioctl.h linux/dqblk_xfs.h linux/falloc.h linux/fib_rules.h linux/fiemap.h linux/hiddev.h linux/if_addr.h linux/if_link.h linux/io_uring.h linux/ip_vs.h linux/ipc.h linux/kcmp.h linux/kvm.h linux/memfd.h linux/mmtimer.h linux/msg.h linux/neighbour.h linux/netfilter/ipset/ip_set.h linux/netfilter/nf_tables.h linux/netfilter/nf_tables_compat.h linux/netfilter/nfnetlink.h linux/netfilter/nfnetlink_acct.h linux/netfilter/nfnetlink_conntrack.h linux/netfilter/nfnetlink_cthelper.h linux/netfilter/nfnetlink_cttimeout.h linux/netfilter/nfnetlink_log.h linux/netfilter/nfnetlink_queue.h linux/nsfs.h linux/perf_event.h linux/quota.h linux/seccomp.h linux/securebits.h linux/sem.h linux/shm.h linux/userfaultfd.h linux/utsname.h mqueue.h netinet/sctp.h netipx/ipx.h paths.h scsi/sg.h stropts.h sys/conf.h sys/eventfd.h sys/fanotify.h sys/ipc.h sys/msg.h sys/quota.h sys/sem.h sys/shm.h sys/signalfd.h sys/xattr.h ustat.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_KERN_PPC_POWERSAVE_NAP $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_MODPROBE" "ac_cv_have_decl_KERN_MODPROBE" " +#include +#include +" +if test "x$ac_cv_have_decl_KERN_MODPROBE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -done - - -for ac_header in asm/sigcontext.h -do : - ac_fn_c_check_header_compile "$LINENO" "asm/sigcontext.h" "ac_cv_header_asm_sigcontext_h" "#include -" -if test "x$ac_cv_header_asm_sigcontext_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_ASM_SIGCONTEXT_H 1 +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_KERN_MODPROBE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_SG_BIG_BUFF" "ac_cv_have_decl_KERN_SG_BIG_BUFF" " +#include +#include +" +if test "x$ac_cv_have_decl_KERN_SG_BIG_BUFF" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -done - - -for ac_header in netinet/tcp.h netinet/udp.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "#include -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_KERN_SG_BIG_BUFF $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_ACCT" "ac_cv_have_decl_KERN_ACCT" " +#include +#include +" +if test "x$ac_cv_have_decl_KERN_ACCT" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -done - - -for ac_header in linux/mqueue.h -do : - ac_fn_c_check_header_compile "$LINENO" "linux/mqueue.h" "ac_cv_header_linux_mqueue_h" "#include -" -if test "x$ac_cv_header_linux_mqueue_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LINUX_MQUEUE_H 1 +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_KERN_ACCT $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_PPC_L2CR" "ac_cv_have_decl_KERN_PPC_L2CR" " +#include +#include +" +if test "x$ac_cv_have_decl_KERN_PPC_L2CR" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -done - - -for ac_header in linux/netfilter/xt_osf.h -do : - ac_fn_c_check_header_compile "$LINENO" "linux/netfilter/xt_osf.h" "ac_cv_header_linux_netfilter_xt_osf_h" "#include -#include -" -if test "x$ac_cv_header_linux_netfilter_xt_osf_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LINUX_NETFILTER_XT_OSF_H 1 +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_KERN_PPC_L2CR $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_RTSIGNR" "ac_cv_have_decl_KERN_RTSIGNR" " +#include +#include +" +if test "x$ac_cv_have_decl_KERN_RTSIGNR" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -done - +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_KERN_RTSIGNR $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_RTSIGMAX" "ac_cv_have_decl_KERN_RTSIGMAX" " +#include +#include -for ac_header in linux/netfilter_arp/arp_tables.h linux/netfilter_bridge/ebtables.h linux/netfilter_ipv4/ip_tables.h linux/netfilter_ipv6/ip6_tables.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "#include -#include " -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +if test "x$ac_cv_have_decl_KERN_RTSIGMAX" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_KERN_RTSIGMAX $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_SHMMAX" "ac_cv_have_decl_KERN_SHMMAX" " +#include +#include +" +if test "x$ac_cv_have_decl_KERN_SHMMAX" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -done +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_KERN_SHMMAX $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_MSGMAX" "ac_cv_have_decl_KERN_MSGMAX" " +#include +#include +" +if test "x$ac_cv_have_decl_KERN_MSGMAX" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi -for ac_header in linux/input.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "linux/input.h" "ac_cv_header_linux_input_h" "$ac_includes_default" -if test "x$ac_cv_header_linux_input_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LINUX_INPUT_H 1 +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_KERN_MSGMAX $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_MSGMNB" "ac_cv_have_decl_KERN_MSGMNB" " +#include +#include - ac_fn_c_check_member "$LINENO" "struct input_absinfo" "resolution" "ac_cv_member_struct_input_absinfo_resolution" "#include " -if test "x$ac_cv_member_struct_input_absinfo_resolution" = xyes; then : +if test "x$ac_cv_have_decl_KERN_MSGMNB" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_INPUT_ABSINFO_RESOLUTION 1 +#define HAVE_DECL_KERN_MSGMNB $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_MSGPOOL" "ac_cv_have_decl_KERN_MSGPOOL" " +#include +#include - +" +if test "x$ac_cv_have_decl_KERN_MSGPOOL" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_KERN_MSGPOOL $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_SYSRQ" "ac_cv_have_decl_KERN_SYSRQ" " +#include +#include +" +if test "x$ac_cv_have_decl_KERN_SYSRQ" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -done +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_KERN_SYSRQ $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_MAX_THREADS" "ac_cv_have_decl_KERN_MAX_THREADS" " +#include +#include +" +if test "x$ac_cv_have_decl_KERN_MAX_THREADS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi -for ac_header in linux/bpf.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "linux/bpf.h" "ac_cv_header_linux_bpf_h" "$ac_includes_default" -if test "x$ac_cv_header_linux_bpf_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LINUX_BPF_H 1 +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_KERN_MAX_THREADS $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_RANDOM" "ac_cv_have_decl_KERN_RANDOM" " +#include +#include - ac_fn_c_check_type "$LINENO" "struct bpf_insn" "ac_cv_type_struct_bpf_insn" "#include " -if test "x$ac_cv_type_struct_bpf_insn" = xyes; then : +if test "x$ac_cv_have_decl_KERN_RANDOM" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_INSN 1 +#define HAVE_DECL_KERN_RANDOM $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_SHMALL" "ac_cv_have_decl_KERN_SHMALL" " +#include +#include - -fi -ac_fn_c_check_type "$LINENO" "struct bpf_map_info" "ac_cv_type_struct_bpf_map_info" "#include " -if test "x$ac_cv_type_struct_bpf_map_info" = xyes; then : +if test "x$ac_cv_have_decl_KERN_SHMALL" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_MAP_INFO 1 +#define HAVE_DECL_KERN_SHMALL $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_MSGMNI" "ac_cv_have_decl_KERN_MSGMNI" " +#include +#include - -fi -ac_fn_c_check_type "$LINENO" "struct bpf_prog_info" "ac_cv_type_struct_bpf_prog_info" "#include " -if test "x$ac_cv_type_struct_bpf_prog_info" = xyes; then : +if test "x$ac_cv_have_decl_KERN_MSGMNI" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO 1 +#define HAVE_DECL_KERN_MSGMNI $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_SEM" "ac_cv_have_decl_KERN_SEM" " +#include +#include - +" +if test "x$ac_cv_have_decl_KERN_SEM" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi - ac_fn_c_check_member "$LINENO" "struct bpf_map_info" "btf_id" "ac_cv_member_struct_bpf_map_info_btf_id" "#include +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_KERN_SEM $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_SPARC_STOP_A" "ac_cv_have_decl_KERN_SPARC_STOP_A" " +#include +#include + " -if test "x$ac_cv_member_struct_bpf_map_info_btf_id" = xyes; then : +if test "x$ac_cv_have_decl_KERN_SPARC_STOP_A" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_MAP_INFO_BTF_ID 1 +#define HAVE_DECL_KERN_SPARC_STOP_A $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_SHMMNI" "ac_cv_have_decl_KERN_SHMMNI" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_map_info" "btf_key_type_id" "ac_cv_member_struct_bpf_map_info_btf_key_type_id" "#include " -if test "x$ac_cv_member_struct_bpf_map_info_btf_key_type_id" = xyes; then : +if test "x$ac_cv_have_decl_KERN_SHMMNI" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_MAP_INFO_BTF_KEY_TYPE_ID 1 +#define HAVE_DECL_KERN_SHMMNI $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_OVERFLOWUID" "ac_cv_have_decl_KERN_OVERFLOWUID" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_map_info" "btf_value_type_id" "ac_cv_member_struct_bpf_map_info_btf_value_type_id" "#include " -if test "x$ac_cv_member_struct_bpf_map_info_btf_value_type_id" = xyes; then : +if test "x$ac_cv_have_decl_KERN_OVERFLOWUID" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_MAP_INFO_BTF_VALUE_TYPE_ID 1 +#define HAVE_DECL_KERN_OVERFLOWUID $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_OVERFLOWGID" "ac_cv_have_decl_KERN_OVERFLOWGID" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_map_info" "id" "ac_cv_member_struct_bpf_map_info_id" "#include " -if test "x$ac_cv_member_struct_bpf_map_info_id" = xyes; then : +if test "x$ac_cv_have_decl_KERN_OVERFLOWGID" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_MAP_INFO_ID 1 +#define HAVE_DECL_KERN_OVERFLOWGID $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_SHMPATH" "ac_cv_have_decl_KERN_SHMPATH" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_map_info" "ifindex" "ac_cv_member_struct_bpf_map_info_ifindex" "#include " -if test "x$ac_cv_member_struct_bpf_map_info_ifindex" = xyes; then : +if test "x$ac_cv_have_decl_KERN_SHMPATH" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_MAP_INFO_IFINDEX 1 +#define HAVE_DECL_KERN_SHMPATH $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_HOTPLUG" "ac_cv_have_decl_KERN_HOTPLUG" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_map_info" "key_size" "ac_cv_member_struct_bpf_map_info_key_size" "#include " -if test "x$ac_cv_member_struct_bpf_map_info_key_size" = xyes; then : +if test "x$ac_cv_have_decl_KERN_HOTPLUG" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_MAP_INFO_KEY_SIZE 1 +#define HAVE_DECL_KERN_HOTPLUG $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_IEEE_EMULATION_WARNINGS" "ac_cv_have_decl_KERN_IEEE_EMULATION_WARNINGS" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_map_info" "map_flags" "ac_cv_member_struct_bpf_map_info_map_flags" "#include " -if test "x$ac_cv_member_struct_bpf_map_info_map_flags" = xyes; then : +if test "x$ac_cv_have_decl_KERN_IEEE_EMULATION_WARNINGS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_MAP_INFO_MAP_FLAGS 1 +#define HAVE_DECL_KERN_IEEE_EMULATION_WARNINGS $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_S390_USER_DEBUG_LOGGING" "ac_cv_have_decl_KERN_S390_USER_DEBUG_LOGGING" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_map_info" "max_entries" "ac_cv_member_struct_bpf_map_info_max_entries" "#include " -if test "x$ac_cv_member_struct_bpf_map_info_max_entries" = xyes; then : +if test "x$ac_cv_have_decl_KERN_S390_USER_DEBUG_LOGGING" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_MAP_INFO_MAX_ENTRIES 1 +#define HAVE_DECL_KERN_S390_USER_DEBUG_LOGGING $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_CORE_USES_PID" "ac_cv_have_decl_KERN_CORE_USES_PID" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_map_info" "name" "ac_cv_member_struct_bpf_map_info_name" "#include " -if test "x$ac_cv_member_struct_bpf_map_info_name" = xyes; then : +if test "x$ac_cv_have_decl_KERN_CORE_USES_PID" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_MAP_INFO_NAME 1 +#define HAVE_DECL_KERN_CORE_USES_PID $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_TAINTED" "ac_cv_have_decl_KERN_TAINTED" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_map_info" "type" "ac_cv_member_struct_bpf_map_info_type" "#include " -if test "x$ac_cv_member_struct_bpf_map_info_type" = xyes; then : +if test "x$ac_cv_have_decl_KERN_TAINTED" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_MAP_INFO_TYPE 1 +#define HAVE_DECL_KERN_TAINTED $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_CADPID" "ac_cv_have_decl_KERN_CADPID" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_map_info" "value_size" "ac_cv_member_struct_bpf_map_info_value_size" "#include " -if test "x$ac_cv_member_struct_bpf_map_info_value_size" = xyes; then : +if test "x$ac_cv_have_decl_KERN_CADPID" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_MAP_INFO_VALUE_SIZE 1 +#define HAVE_DECL_KERN_CADPID $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_PIDMAX" "ac_cv_have_decl_KERN_PIDMAX" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "btf_id" "ac_cv_member_struct_bpf_prog_info_btf_id" "#include " -if test "x$ac_cv_member_struct_bpf_prog_info_btf_id" = xyes; then : +if test "x$ac_cv_have_decl_KERN_PIDMAX" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_BTF_ID 1 +#define HAVE_DECL_KERN_PIDMAX $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_CORE_PATTERN" "ac_cv_have_decl_KERN_CORE_PATTERN" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "created_by_uid" "ac_cv_member_struct_bpf_prog_info_created_by_uid" "#include " -if test "x$ac_cv_member_struct_bpf_prog_info_created_by_uid" = xyes; then : +if test "x$ac_cv_have_decl_KERN_CORE_PATTERN" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_CREATED_BY_UID 1 +#define HAVE_DECL_KERN_CORE_PATTERN $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_PANIC_ON_OOPS" "ac_cv_have_decl_KERN_PANIC_ON_OOPS" " +#include +#include - +" +if test "x$ac_cv_have_decl_KERN_PANIC_ON_OOPS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "func_info" "ac_cv_member_struct_bpf_prog_info_func_info" "#include -" -if test "x$ac_cv_member_struct_bpf_prog_info_func_info" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_FUNC_INFO 1 +#define HAVE_DECL_KERN_PANIC_ON_OOPS $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_HPPA_PWRSW" "ac_cv_have_decl_KERN_HPPA_PWRSW" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "func_info_rec_size" "ac_cv_member_struct_bpf_prog_info_func_info_rec_size" "#include " -if test "x$ac_cv_member_struct_bpf_prog_info_func_info_rec_size" = xyes; then : +if test "x$ac_cv_have_decl_KERN_HPPA_PWRSW" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_FUNC_INFO_REC_SIZE 1 +#define HAVE_DECL_KERN_HPPA_PWRSW $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_HPPA_UNALIGNED" "ac_cv_have_decl_KERN_HPPA_UNALIGNED" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "id" "ac_cv_member_struct_bpf_prog_info_id" "#include " -if test "x$ac_cv_member_struct_bpf_prog_info_id" = xyes; then : +if test "x$ac_cv_have_decl_KERN_HPPA_UNALIGNED" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_ID 1 +#define HAVE_DECL_KERN_HPPA_UNALIGNED $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_PRINTK_RATELIMIT" "ac_cv_have_decl_KERN_PRINTK_RATELIMIT" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "ifindex" "ac_cv_member_struct_bpf_prog_info_ifindex" "#include " -if test "x$ac_cv_member_struct_bpf_prog_info_ifindex" = xyes; then : +if test "x$ac_cv_have_decl_KERN_PRINTK_RATELIMIT" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_IFINDEX 1 +#define HAVE_DECL_KERN_PRINTK_RATELIMIT $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_PRINTK_RATELIMIT_BURST" "ac_cv_have_decl_KERN_PRINTK_RATELIMIT_BURST" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "jited_func_lens" "ac_cv_member_struct_bpf_prog_info_jited_func_lens" "#include " -if test "x$ac_cv_member_struct_bpf_prog_info_jited_func_lens" = xyes; then : +if test "x$ac_cv_have_decl_KERN_PRINTK_RATELIMIT_BURST" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_JITED_FUNC_LENS 1 +#define HAVE_DECL_KERN_PRINTK_RATELIMIT_BURST $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_PTY" "ac_cv_have_decl_KERN_PTY" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "jited_ksyms" "ac_cv_member_struct_bpf_prog_info_jited_ksyms" "#include " -if test "x$ac_cv_member_struct_bpf_prog_info_jited_ksyms" = xyes; then : +if test "x$ac_cv_have_decl_KERN_PTY" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_JITED_KSYMS 1 +#define HAVE_DECL_KERN_PTY $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_NGROUPS_MAX" "ac_cv_have_decl_KERN_NGROUPS_MAX" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "jited_line_info" "ac_cv_member_struct_bpf_prog_info_jited_line_info" "#include " -if test "x$ac_cv_member_struct_bpf_prog_info_jited_line_info" = xyes; then : +if test "x$ac_cv_have_decl_KERN_NGROUPS_MAX" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_JITED_LINE_INFO 1 +#define HAVE_DECL_KERN_NGROUPS_MAX $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_SPARC_SCONS_PWROFF" "ac_cv_have_decl_KERN_SPARC_SCONS_PWROFF" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "jited_line_info_rec_size" "ac_cv_member_struct_bpf_prog_info_jited_line_info_rec_size" "#include " -if test "x$ac_cv_member_struct_bpf_prog_info_jited_line_info_rec_size" = xyes; then : +if test "x$ac_cv_have_decl_KERN_SPARC_SCONS_PWROFF" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_JITED_LINE_INFO_REC_SIZE 1 +#define HAVE_DECL_KERN_SPARC_SCONS_PWROFF $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_HZ_TIMER" "ac_cv_have_decl_KERN_HZ_TIMER" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "jited_prog_insns" "ac_cv_member_struct_bpf_prog_info_jited_prog_insns" "#include " -if test "x$ac_cv_member_struct_bpf_prog_info_jited_prog_insns" = xyes; then : +if test "x$ac_cv_have_decl_KERN_HZ_TIMER" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_JITED_PROG_INSNS 1 +#define HAVE_DECL_KERN_HZ_TIMER $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_UNKNOWN_NMI_PANIC" "ac_cv_have_decl_KERN_UNKNOWN_NMI_PANIC" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "jited_prog_len" "ac_cv_member_struct_bpf_prog_info_jited_prog_len" "#include " -if test "x$ac_cv_member_struct_bpf_prog_info_jited_prog_len" = xyes; then : +if test "x$ac_cv_have_decl_KERN_UNKNOWN_NMI_PANIC" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_JITED_PROG_LEN 1 +#define HAVE_DECL_KERN_UNKNOWN_NMI_PANIC $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_BOOTLOADER_TYPE" "ac_cv_have_decl_KERN_BOOTLOADER_TYPE" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "line_info" "ac_cv_member_struct_bpf_prog_info_line_info" "#include " -if test "x$ac_cv_member_struct_bpf_prog_info_line_info" = xyes; then : +if test "x$ac_cv_have_decl_KERN_BOOTLOADER_TYPE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_LINE_INFO 1 +#define HAVE_DECL_KERN_BOOTLOADER_TYPE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_RANDOMIZE" "ac_cv_have_decl_KERN_RANDOMIZE" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "line_info_rec_size" "ac_cv_member_struct_bpf_prog_info_line_info_rec_size" "#include " -if test "x$ac_cv_member_struct_bpf_prog_info_line_info_rec_size" = xyes; then : +if test "x$ac_cv_have_decl_KERN_RANDOMIZE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_LINE_INFO_REC_SIZE 1 +#define HAVE_DECL_KERN_RANDOMIZE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_SETUID_DUMPABLE" "ac_cv_have_decl_KERN_SETUID_DUMPABLE" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "load_time" "ac_cv_member_struct_bpf_prog_info_load_time" "#include " -if test "x$ac_cv_member_struct_bpf_prog_info_load_time" = xyes; then : +if test "x$ac_cv_have_decl_KERN_SETUID_DUMPABLE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_LOAD_TIME 1 +#define HAVE_DECL_KERN_SETUID_DUMPABLE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_SPIN_RETRY" "ac_cv_have_decl_KERN_SPIN_RETRY" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "map_ids" "ac_cv_member_struct_bpf_prog_info_map_ids" "#include " -if test "x$ac_cv_member_struct_bpf_prog_info_map_ids" = xyes; then : +if test "x$ac_cv_have_decl_KERN_SPIN_RETRY" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_MAP_IDS 1 +#define HAVE_DECL_KERN_SPIN_RETRY $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_ACPI_VIDEO_FLAGS" "ac_cv_have_decl_KERN_ACPI_VIDEO_FLAGS" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "name" "ac_cv_member_struct_bpf_prog_info_name" "#include " -if test "x$ac_cv_member_struct_bpf_prog_info_name" = xyes; then : +if test "x$ac_cv_have_decl_KERN_ACPI_VIDEO_FLAGS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_NAME 1 +#define HAVE_DECL_KERN_ACPI_VIDEO_FLAGS $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_IA64_UNALIGNED" "ac_cv_have_decl_KERN_IA64_UNALIGNED" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "nr_func_info" "ac_cv_member_struct_bpf_prog_info_nr_func_info" "#include " -if test "x$ac_cv_member_struct_bpf_prog_info_nr_func_info" = xyes; then : +if test "x$ac_cv_have_decl_KERN_IA64_UNALIGNED" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_NR_FUNC_INFO 1 +#define HAVE_DECL_KERN_IA64_UNALIGNED $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_COMPAT_LOG" "ac_cv_have_decl_KERN_COMPAT_LOG" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "nr_jited_func_lens" "ac_cv_member_struct_bpf_prog_info_nr_jited_func_lens" "#include " -if test "x$ac_cv_member_struct_bpf_prog_info_nr_jited_func_lens" = xyes; then : +if test "x$ac_cv_have_decl_KERN_COMPAT_LOG" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_NR_JITED_FUNC_LENS 1 +#define HAVE_DECL_KERN_COMPAT_LOG $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_MAX_LOCK_DEPTH" "ac_cv_have_decl_KERN_MAX_LOCK_DEPTH" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "nr_jited_ksyms" "ac_cv_member_struct_bpf_prog_info_nr_jited_ksyms" "#include " -if test "x$ac_cv_member_struct_bpf_prog_info_nr_jited_ksyms" = xyes; then : +if test "x$ac_cv_have_decl_KERN_MAX_LOCK_DEPTH" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_NR_JITED_KSYMS 1 +#define HAVE_DECL_KERN_MAX_LOCK_DEPTH $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_NMI_WATCHDOG" "ac_cv_have_decl_KERN_NMI_WATCHDOG" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "nr_jited_line_info" "ac_cv_member_struct_bpf_prog_info_nr_jited_line_info" "#include " -if test "x$ac_cv_member_struct_bpf_prog_info_nr_jited_line_info" = xyes; then : +if test "x$ac_cv_have_decl_KERN_NMI_WATCHDOG" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_NR_JITED_LINE_INFO 1 +#define HAVE_DECL_KERN_NMI_WATCHDOG $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_PANIC_ON_NMI" "ac_cv_have_decl_KERN_PANIC_ON_NMI" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "nr_line_info" "ac_cv_member_struct_bpf_prog_info_nr_line_info" "#include " -if test "x$ac_cv_member_struct_bpf_prog_info_nr_line_info" = xyes; then : +if test "x$ac_cv_have_decl_KERN_PANIC_ON_NMI" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_NR_LINE_INFO 1 +#define HAVE_DECL_KERN_PANIC_ON_NMI $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_PANIC_ON_WARN" "ac_cv_have_decl_KERN_PANIC_ON_WARN" " +#include +#include - +" +if test "x$ac_cv_have_decl_KERN_PANIC_ON_WARN" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "nr_map_ids" "ac_cv_member_struct_bpf_prog_info_nr_map_ids" "#include -" -if test "x$ac_cv_member_struct_bpf_prog_info_nr_map_ids" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_NR_MAP_IDS 1 +#define HAVE_DECL_KERN_PANIC_ON_WARN $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "KERN_PANIC_PRINT" "ac_cv_have_decl_KERN_PANIC_PRINT" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "nr_prog_tags" "ac_cv_member_struct_bpf_prog_info_nr_prog_tags" "#include " -if test "x$ac_cv_member_struct_bpf_prog_info_nr_prog_tags" = xyes; then : +if test "x$ac_cv_have_decl_KERN_PANIC_PRINT" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_NR_PROG_TAGS 1 +#define HAVE_DECL_KERN_PANIC_PRINT $ac_have_decl _ACEOF -fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "prog_tags" "ac_cv_member_struct_bpf_prog_info_prog_tags" "#include +ac_fn_c_check_decl "$LINENO" "NET_CORE" "ac_cv_have_decl_NET_CORE" " +#include +#include + " -if test "x$ac_cv_member_struct_bpf_prog_info_prog_tags" = xyes; then : +if test "x$ac_cv_have_decl_NET_CORE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_PROG_TAGS 1 +#define HAVE_DECL_NET_CORE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_ETHER" "ac_cv_have_decl_NET_ETHER" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "run_cnt" "ac_cv_member_struct_bpf_prog_info_run_cnt" "#include " -if test "x$ac_cv_member_struct_bpf_prog_info_run_cnt" = xyes; then : +if test "x$ac_cv_have_decl_NET_ETHER" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_RUN_CNT 1 +#define HAVE_DECL_NET_ETHER $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_802" "ac_cv_have_decl_NET_802" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "run_time_ns" "ac_cv_member_struct_bpf_prog_info_run_time_ns" "#include " -if test "x$ac_cv_member_struct_bpf_prog_info_run_time_ns" = xyes; then : +if test "x$ac_cv_have_decl_NET_802" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_RUN_TIME_NS 1 +#define HAVE_DECL_NET_802 $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_UNIX" "ac_cv_have_decl_NET_UNIX" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "tag" "ac_cv_member_struct_bpf_prog_info_tag" "#include " -if test "x$ac_cv_member_struct_bpf_prog_info_tag" = xyes; then : +if test "x$ac_cv_have_decl_NET_UNIX" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_TAG 1 +#define HAVE_DECL_NET_UNIX $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4" "ac_cv_have_decl_NET_IPV4" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "type" "ac_cv_member_struct_bpf_prog_info_type" "#include " -if test "x$ac_cv_member_struct_bpf_prog_info_type" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_TYPE 1 +#define HAVE_DECL_NET_IPV4 $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPX" "ac_cv_have_decl_NET_IPX" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "xlated_prog_insns" "ac_cv_member_struct_bpf_prog_info_xlated_prog_insns" "#include " -if test "x$ac_cv_member_struct_bpf_prog_info_xlated_prog_insns" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPX" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_XLATED_PROG_INSNS 1 +#define HAVE_DECL_NET_IPX $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_ATALK" "ac_cv_have_decl_NET_ATALK" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct bpf_prog_info" "xlated_prog_len" "ac_cv_member_struct_bpf_prog_info_xlated_prog_len" "#include " -if test "x$ac_cv_member_struct_bpf_prog_info_xlated_prog_len" = xyes; then : +if test "x$ac_cv_have_decl_NET_ATALK" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BPF_PROG_INFO_XLATED_PROG_LEN 1 +#define HAVE_DECL_NET_ATALK $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_NETROM" "ac_cv_have_decl_NET_NETROM" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "attach_bpf_fd" "ac_cv_member_union_bpf_attr_attach_bpf_fd" "#include " -if test "x$ac_cv_member_union_bpf_attr_attach_bpf_fd" = xyes; then : +if test "x$ac_cv_have_decl_NET_NETROM" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_ATTACH_BPF_FD 1 +#define HAVE_DECL_NET_NETROM $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_AX25" "ac_cv_have_decl_NET_AX25" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "attach_flags" "ac_cv_member_union_bpf_attr_attach_flags" "#include " -if test "x$ac_cv_member_union_bpf_attr_attach_flags" = xyes; then : +if test "x$ac_cv_have_decl_NET_AX25" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_ATTACH_FLAGS 1 +#define HAVE_DECL_NET_AX25 $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_BRIDGE" "ac_cv_have_decl_NET_BRIDGE" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "attach_type" "ac_cv_member_union_bpf_attr_attach_type" "#include " -if test "x$ac_cv_member_union_bpf_attr_attach_type" = xyes; then : +if test "x$ac_cv_have_decl_NET_BRIDGE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_ATTACH_TYPE 1 +#define HAVE_DECL_NET_BRIDGE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_ROSE" "ac_cv_have_decl_NET_ROSE" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "bpf_fd" "ac_cv_member_union_bpf_attr_bpf_fd" "#include " -if test "x$ac_cv_member_union_bpf_attr_bpf_fd" = xyes; then : +if test "x$ac_cv_have_decl_NET_ROSE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_BPF_FD 1 +#define HAVE_DECL_NET_ROSE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV6" "ac_cv_have_decl_NET_IPV6" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "btf" "ac_cv_member_union_bpf_attr_btf" "#include " -if test "x$ac_cv_member_union_bpf_attr_btf" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV6" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_BTF 1 +#define HAVE_DECL_NET_IPV6 $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_X25" "ac_cv_have_decl_NET_X25" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "btf_fd" "ac_cv_member_union_bpf_attr_btf_fd" "#include " -if test "x$ac_cv_member_union_bpf_attr_btf_fd" = xyes; then : +if test "x$ac_cv_have_decl_NET_X25" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_BTF_FD 1 +#define HAVE_DECL_NET_X25 $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TR" "ac_cv_have_decl_NET_TR" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "btf_id" "ac_cv_member_union_bpf_attr_btf_id" "#include " -if test "x$ac_cv_member_union_bpf_attr_btf_id" = xyes; then : +if test "x$ac_cv_have_decl_NET_TR" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_BTF_ID 1 +#define HAVE_DECL_NET_TR $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_DECNET" "ac_cv_have_decl_NET_DECNET" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "btf_key_type_id" "ac_cv_member_union_bpf_attr_btf_key_type_id" "#include " -if test "x$ac_cv_member_union_bpf_attr_btf_key_type_id" = xyes; then : +if test "x$ac_cv_have_decl_NET_DECNET" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_BTF_KEY_TYPE_ID 1 +#define HAVE_DECL_NET_DECNET $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_ECONET" "ac_cv_have_decl_NET_ECONET" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "btf_log_buf" "ac_cv_member_union_bpf_attr_btf_log_buf" "#include " -if test "x$ac_cv_member_union_bpf_attr_btf_log_buf" = xyes; then : +if test "x$ac_cv_have_decl_NET_ECONET" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_BTF_LOG_BUF 1 +#define HAVE_DECL_NET_ECONET $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_SCTP" "ac_cv_have_decl_NET_SCTP" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "btf_log_level" "ac_cv_member_union_bpf_attr_btf_log_level" "#include " -if test "x$ac_cv_member_union_bpf_attr_btf_log_level" = xyes; then : +if test "x$ac_cv_have_decl_NET_SCTP" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_BTF_LOG_LEVEL 1 +#define HAVE_DECL_NET_SCTP $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_LLC" "ac_cv_have_decl_NET_LLC" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "btf_log_size" "ac_cv_member_union_bpf_attr_btf_log_size" "#include " -if test "x$ac_cv_member_union_bpf_attr_btf_log_size" = xyes; then : +if test "x$ac_cv_have_decl_NET_LLC" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_BTF_LOG_SIZE 1 +#define HAVE_DECL_NET_LLC $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_NETFILTER" "ac_cv_have_decl_NET_NETFILTER" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "btf_size" "ac_cv_member_union_bpf_attr_btf_size" "#include " -if test "x$ac_cv_member_union_bpf_attr_btf_size" = xyes; then : +if test "x$ac_cv_have_decl_NET_NETFILTER" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_BTF_SIZE 1 +#define HAVE_DECL_NET_NETFILTER $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_DCCP" "ac_cv_have_decl_NET_DCCP" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "btf_value_type_id" "ac_cv_member_union_bpf_attr_btf_value_type_id" "#include " -if test "x$ac_cv_member_union_bpf_attr_btf_value_type_id" = xyes; then : +if test "x$ac_cv_have_decl_NET_DCCP" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_BTF_VALUE_TYPE_ID 1 +#define HAVE_DECL_NET_DCCP $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IRDA" "ac_cv_have_decl_NET_IRDA" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "dummy" "ac_cv_member_union_bpf_attr_dummy" "#include " -if test "x$ac_cv_member_union_bpf_attr_dummy" = xyes; then : +if test "x$ac_cv_have_decl_NET_IRDA" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_DUMMY 1 +#define HAVE_DECL_NET_IRDA $ac_have_decl _ACEOF -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "expected_attach_type" "ac_cv_member_union_bpf_attr_expected_attach_type" "#include +ac_fn_c_check_decl "$LINENO" "NET_CORE_WMEM_MAX" "ac_cv_have_decl_NET_CORE_WMEM_MAX" " +#include +#include + " -if test "x$ac_cv_member_union_bpf_attr_expected_attach_type" = xyes; then : +if test "x$ac_cv_have_decl_NET_CORE_WMEM_MAX" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_EXPECTED_ATTACH_TYPE 1 +#define HAVE_DECL_NET_CORE_WMEM_MAX $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_CORE_RMEM_MAX" "ac_cv_have_decl_NET_CORE_RMEM_MAX" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "file_flags" "ac_cv_member_union_bpf_attr_file_flags" "#include " -if test "x$ac_cv_member_union_bpf_attr_file_flags" = xyes; then : +if test "x$ac_cv_have_decl_NET_CORE_RMEM_MAX" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_FILE_FLAGS 1 +#define HAVE_DECL_NET_CORE_RMEM_MAX $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_CORE_WMEM_DEFAULT" "ac_cv_have_decl_NET_CORE_WMEM_DEFAULT" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "flags" "ac_cv_member_union_bpf_attr_flags" "#include " -if test "x$ac_cv_member_union_bpf_attr_flags" = xyes; then : +if test "x$ac_cv_have_decl_NET_CORE_WMEM_DEFAULT" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_FLAGS 1 +#define HAVE_DECL_NET_CORE_WMEM_DEFAULT $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_CORE_RMEM_DEFAULT" "ac_cv_have_decl_NET_CORE_RMEM_DEFAULT" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "func_info" "ac_cv_member_union_bpf_attr_func_info" "#include " -if test "x$ac_cv_member_union_bpf_attr_func_info" = xyes; then : +if test "x$ac_cv_have_decl_NET_CORE_RMEM_DEFAULT" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_FUNC_INFO 1 +#define HAVE_DECL_NET_CORE_RMEM_DEFAULT $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_CORE_MAX_BACKLOG" "ac_cv_have_decl_NET_CORE_MAX_BACKLOG" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "func_info_cnt" "ac_cv_member_union_bpf_attr_func_info_cnt" "#include " -if test "x$ac_cv_member_union_bpf_attr_func_info_cnt" = xyes; then : +if test "x$ac_cv_have_decl_NET_CORE_MAX_BACKLOG" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_FUNC_INFO_CNT 1 +#define HAVE_DECL_NET_CORE_MAX_BACKLOG $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_CORE_FASTROUTE" "ac_cv_have_decl_NET_CORE_FASTROUTE" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "func_info_rec_size" "ac_cv_member_union_bpf_attr_func_info_rec_size" "#include " -if test "x$ac_cv_member_union_bpf_attr_func_info_rec_size" = xyes; then : +if test "x$ac_cv_have_decl_NET_CORE_FASTROUTE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_FUNC_INFO_REC_SIZE 1 +#define HAVE_DECL_NET_CORE_FASTROUTE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_CORE_MSG_COST" "ac_cv_have_decl_NET_CORE_MSG_COST" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "info.bpf_fd" "ac_cv_member_union_bpf_attr_info_bpf_fd" "#include " -if test "x$ac_cv_member_union_bpf_attr_info_bpf_fd" = xyes; then : +if test "x$ac_cv_have_decl_NET_CORE_MSG_COST" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_INFO_BPF_FD 1 +#define HAVE_DECL_NET_CORE_MSG_COST $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_CORE_MSG_BURST" "ac_cv_have_decl_NET_CORE_MSG_BURST" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "info.info" "ac_cv_member_union_bpf_attr_info_info" "#include " -if test "x$ac_cv_member_union_bpf_attr_info_info" = xyes; then : +if test "x$ac_cv_have_decl_NET_CORE_MSG_BURST" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_INFO_INFO 1 +#define HAVE_DECL_NET_CORE_MSG_BURST $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_CORE_OPTMEM_MAX" "ac_cv_have_decl_NET_CORE_OPTMEM_MAX" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "info.info_len" "ac_cv_member_union_bpf_attr_info_info_len" "#include " -if test "x$ac_cv_member_union_bpf_attr_info_info_len" = xyes; then : +if test "x$ac_cv_have_decl_NET_CORE_OPTMEM_MAX" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_INFO_INFO_LEN 1 +#define HAVE_DECL_NET_CORE_OPTMEM_MAX $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_CORE_HOT_LIST_LENGTH" "ac_cv_have_decl_NET_CORE_HOT_LIST_LENGTH" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "inner_map_fd" "ac_cv_member_union_bpf_attr_inner_map_fd" "#include " -if test "x$ac_cv_member_union_bpf_attr_inner_map_fd" = xyes; then : +if test "x$ac_cv_have_decl_NET_CORE_HOT_LIST_LENGTH" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_INNER_MAP_FD 1 +#define HAVE_DECL_NET_CORE_HOT_LIST_LENGTH $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_CORE_DIVERT_VERSION" "ac_cv_have_decl_NET_CORE_DIVERT_VERSION" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "insn_cnt" "ac_cv_member_union_bpf_attr_insn_cnt" "#include " -if test "x$ac_cv_member_union_bpf_attr_insn_cnt" = xyes; then : +if test "x$ac_cv_have_decl_NET_CORE_DIVERT_VERSION" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_INSN_CNT 1 +#define HAVE_DECL_NET_CORE_DIVERT_VERSION $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_CORE_NO_CONG_THRESH" "ac_cv_have_decl_NET_CORE_NO_CONG_THRESH" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "insns" "ac_cv_member_union_bpf_attr_insns" "#include " -if test "x$ac_cv_member_union_bpf_attr_insns" = xyes; then : +if test "x$ac_cv_have_decl_NET_CORE_NO_CONG_THRESH" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_INSNS 1 +#define HAVE_DECL_NET_CORE_NO_CONG_THRESH $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_CORE_NO_CONG" "ac_cv_have_decl_NET_CORE_NO_CONG" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "kern_version" "ac_cv_member_union_bpf_attr_kern_version" "#include " -if test "x$ac_cv_member_union_bpf_attr_kern_version" = xyes; then : +if test "x$ac_cv_have_decl_NET_CORE_NO_CONG" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_KERN_VERSION 1 +#define HAVE_DECL_NET_CORE_NO_CONG $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_CORE_LO_CONG" "ac_cv_have_decl_NET_CORE_LO_CONG" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "key" "ac_cv_member_union_bpf_attr_key" "#include " -if test "x$ac_cv_member_union_bpf_attr_key" = xyes; then : +if test "x$ac_cv_have_decl_NET_CORE_LO_CONG" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_KEY 1 +#define HAVE_DECL_NET_CORE_LO_CONG $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_CORE_MOD_CONG" "ac_cv_have_decl_NET_CORE_MOD_CONG" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "key_size" "ac_cv_member_union_bpf_attr_key_size" "#include " -if test "x$ac_cv_member_union_bpf_attr_key_size" = xyes; then : +if test "x$ac_cv_have_decl_NET_CORE_MOD_CONG" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_KEY_SIZE 1 +#define HAVE_DECL_NET_CORE_MOD_CONG $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_CORE_DEV_WEIGHT" "ac_cv_have_decl_NET_CORE_DEV_WEIGHT" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "license" "ac_cv_member_union_bpf_attr_license" "#include " -if test "x$ac_cv_member_union_bpf_attr_license" = xyes; then : +if test "x$ac_cv_have_decl_NET_CORE_DEV_WEIGHT" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_LICENSE 1 +#define HAVE_DECL_NET_CORE_DEV_WEIGHT $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_CORE_SOMAXCONN" "ac_cv_have_decl_NET_CORE_SOMAXCONN" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "line_info" "ac_cv_member_union_bpf_attr_line_info" "#include " -if test "x$ac_cv_member_union_bpf_attr_line_info" = xyes; then : +if test "x$ac_cv_have_decl_NET_CORE_SOMAXCONN" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_LINE_INFO 1 +#define HAVE_DECL_NET_CORE_SOMAXCONN $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_CORE_DESTROY_DELAY" "ac_cv_have_decl_NET_CORE_DESTROY_DELAY" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "line_info_cnt" "ac_cv_member_union_bpf_attr_line_info_cnt" "#include " -if test "x$ac_cv_member_union_bpf_attr_line_info_cnt" = xyes; then : +if test "x$ac_cv_have_decl_NET_CORE_DESTROY_DELAY" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_LINE_INFO_CNT 1 +#define HAVE_DECL_NET_CORE_DESTROY_DELAY $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_CORE_BUDGET" "ac_cv_have_decl_NET_CORE_BUDGET" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "line_info_rec_size" "ac_cv_member_union_bpf_attr_line_info_rec_size" "#include " -if test "x$ac_cv_member_union_bpf_attr_line_info_rec_size" = xyes; then : +if test "x$ac_cv_have_decl_NET_CORE_BUDGET" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_LINE_INFO_REC_SIZE 1 +#define HAVE_DECL_NET_CORE_BUDGET $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_CORE_AEVENT_ETIME" "ac_cv_have_decl_NET_CORE_AEVENT_ETIME" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "log_buf" "ac_cv_member_union_bpf_attr_log_buf" "#include " -if test "x$ac_cv_member_union_bpf_attr_log_buf" = xyes; then : +if test "x$ac_cv_have_decl_NET_CORE_AEVENT_ETIME" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_LOG_BUF 1 +#define HAVE_DECL_NET_CORE_AEVENT_ETIME $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_CORE_AEVENT_RSEQTH" "ac_cv_have_decl_NET_CORE_AEVENT_RSEQTH" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "log_level" "ac_cv_member_union_bpf_attr_log_level" "#include " -if test "x$ac_cv_member_union_bpf_attr_log_level" = xyes; then : +if test "x$ac_cv_have_decl_NET_CORE_AEVENT_RSEQTH" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_LOG_LEVEL 1 +#define HAVE_DECL_NET_CORE_AEVENT_RSEQTH $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_CORE_WARNINGS" "ac_cv_have_decl_NET_CORE_WARNINGS" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "log_size" "ac_cv_member_union_bpf_attr_log_size" "#include " -if test "x$ac_cv_member_union_bpf_attr_log_size" = xyes; then : +if test "x$ac_cv_have_decl_NET_CORE_WARNINGS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_LOG_SIZE 1 +#define HAVE_DECL_NET_CORE_WARNINGS $ac_have_decl _ACEOF -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "map_fd" "ac_cv_member_union_bpf_attr_map_fd" "#include +ac_fn_c_check_decl "$LINENO" "NET_IPV4_FORWARD" "ac_cv_have_decl_NET_IPV4_FORWARD" " +#include +#include + " -if test "x$ac_cv_member_union_bpf_attr_map_fd" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_FORWARD" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_MAP_FD 1 +#define HAVE_DECL_NET_IPV4_FORWARD $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_DYNADDR" "ac_cv_have_decl_NET_IPV4_DYNADDR" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "map_flags" "ac_cv_member_union_bpf_attr_map_flags" "#include " -if test "x$ac_cv_member_union_bpf_attr_map_flags" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_DYNADDR" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_MAP_FLAGS 1 +#define HAVE_DECL_NET_IPV4_DYNADDR $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_CONF" "ac_cv_have_decl_NET_IPV4_CONF" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "map_id" "ac_cv_member_union_bpf_attr_map_id" "#include " -if test "x$ac_cv_member_union_bpf_attr_map_id" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_CONF" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_MAP_ID 1 +#define HAVE_DECL_NET_IPV4_CONF $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_NEIGH" "ac_cv_have_decl_NET_IPV4_NEIGH" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "map_ifindex" "ac_cv_member_union_bpf_attr_map_ifindex" "#include " -if test "x$ac_cv_member_union_bpf_attr_map_ifindex" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_NEIGH" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_MAP_IFINDEX 1 +#define HAVE_DECL_NET_IPV4_NEIGH $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ROUTE" "ac_cv_have_decl_NET_IPV4_ROUTE" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "map_name" "ac_cv_member_union_bpf_attr_map_name" "#include " -if test "x$ac_cv_member_union_bpf_attr_map_name" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_ROUTE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_MAP_NAME 1 +#define HAVE_DECL_NET_IPV4_ROUTE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_FIB_HASH" "ac_cv_have_decl_NET_IPV4_FIB_HASH" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "map_type" "ac_cv_member_union_bpf_attr_map_type" "#include " -if test "x$ac_cv_member_union_bpf_attr_map_type" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_FIB_HASH" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_MAP_TYPE 1 +#define HAVE_DECL_NET_IPV4_FIB_HASH $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_NETFILTER" "ac_cv_have_decl_NET_IPV4_NETFILTER" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "max_entries" "ac_cv_member_union_bpf_attr_max_entries" "#include " -if test "x$ac_cv_member_union_bpf_attr_max_entries" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_NETFILTER" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_MAX_ENTRIES 1 +#define HAVE_DECL_NET_IPV4_NETFILTER $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_TCP_TIMESTAMPS" "ac_cv_have_decl_NET_IPV4_TCP_TIMESTAMPS" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "next_id" "ac_cv_member_union_bpf_attr_next_id" "#include " -if test "x$ac_cv_member_union_bpf_attr_next_id" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_TCP_TIMESTAMPS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_NEXT_ID 1 +#define HAVE_DECL_NET_IPV4_TCP_TIMESTAMPS $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_TCP_WINDOW_SCALING" "ac_cv_have_decl_NET_IPV4_TCP_WINDOW_SCALING" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "next_key" "ac_cv_member_union_bpf_attr_next_key" "#include " -if test "x$ac_cv_member_union_bpf_attr_next_key" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_TCP_WINDOW_SCALING" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_NEXT_KEY 1 +#define HAVE_DECL_NET_IPV4_TCP_WINDOW_SCALING $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_TCP_SACK" "ac_cv_have_decl_NET_IPV4_TCP_SACK" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "numa_node" "ac_cv_member_union_bpf_attr_numa_node" "#include " -if test "x$ac_cv_member_union_bpf_attr_numa_node" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_TCP_SACK" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_NUMA_NODE 1 +#define HAVE_DECL_NET_IPV4_TCP_SACK $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_TCP_RETRANS_COLLAPSE" "ac_cv_have_decl_NET_IPV4_TCP_RETRANS_COLLAPSE" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "open_flags" "ac_cv_member_union_bpf_attr_open_flags" "#include " -if test "x$ac_cv_member_union_bpf_attr_open_flags" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_TCP_RETRANS_COLLAPSE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_OPEN_FLAGS 1 +#define HAVE_DECL_NET_IPV4_TCP_RETRANS_COLLAPSE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_DEFAULT_TTL" "ac_cv_have_decl_NET_IPV4_DEFAULT_TTL" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "pathname" "ac_cv_member_union_bpf_attr_pathname" "#include " -if test "x$ac_cv_member_union_bpf_attr_pathname" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_DEFAULT_TTL" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_PATHNAME 1 +#define HAVE_DECL_NET_IPV4_DEFAULT_TTL $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_AUTOCONFIG" "ac_cv_have_decl_NET_IPV4_AUTOCONFIG" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "prog_btf_fd" "ac_cv_member_union_bpf_attr_prog_btf_fd" "#include " -if test "x$ac_cv_member_union_bpf_attr_prog_btf_fd" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_AUTOCONFIG" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_PROG_BTF_FD 1 +#define HAVE_DECL_NET_IPV4_AUTOCONFIG $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_NO_PMTU_DISC" "ac_cv_have_decl_NET_IPV4_NO_PMTU_DISC" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "prog_flags" "ac_cv_member_union_bpf_attr_prog_flags" "#include " -if test "x$ac_cv_member_union_bpf_attr_prog_flags" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_NO_PMTU_DISC" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_PROG_FLAGS 1 +#define HAVE_DECL_NET_IPV4_NO_PMTU_DISC $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_TCP_SYN_RETRIES" "ac_cv_have_decl_NET_IPV4_TCP_SYN_RETRIES" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "prog_id" "ac_cv_member_union_bpf_attr_prog_id" "#include " -if test "x$ac_cv_member_union_bpf_attr_prog_id" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_TCP_SYN_RETRIES" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_PROG_ID 1 +#define HAVE_DECL_NET_IPV4_TCP_SYN_RETRIES $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_IPFRAG_HIGH_THRESH" "ac_cv_have_decl_NET_IPV4_IPFRAG_HIGH_THRESH" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "prog_ifindex" "ac_cv_member_union_bpf_attr_prog_ifindex" "#include " -if test "x$ac_cv_member_union_bpf_attr_prog_ifindex" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_IPFRAG_HIGH_THRESH" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_PROG_IFINDEX 1 +#define HAVE_DECL_NET_IPV4_IPFRAG_HIGH_THRESH $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_IPFRAG_LOW_THRESH" "ac_cv_have_decl_NET_IPV4_IPFRAG_LOW_THRESH" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "prog_name" "ac_cv_member_union_bpf_attr_prog_name" "#include " -if test "x$ac_cv_member_union_bpf_attr_prog_name" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_IPFRAG_LOW_THRESH" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_PROG_NAME 1 +#define HAVE_DECL_NET_IPV4_IPFRAG_LOW_THRESH $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_IPFRAG_TIME" "ac_cv_have_decl_NET_IPV4_IPFRAG_TIME" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "prog_type" "ac_cv_member_union_bpf_attr_prog_type" "#include " -if test "x$ac_cv_member_union_bpf_attr_prog_type" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_IPFRAG_TIME" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_PROG_TYPE 1 +#define HAVE_DECL_NET_IPV4_IPFRAG_TIME $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_TCP_MAX_KA_PROBES" "ac_cv_have_decl_NET_IPV4_TCP_MAX_KA_PROBES" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "query.attach_flags" "ac_cv_member_union_bpf_attr_query_attach_flags" "#include " -if test "x$ac_cv_member_union_bpf_attr_query_attach_flags" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_TCP_MAX_KA_PROBES" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_QUERY_ATTACH_FLAGS 1 +#define HAVE_DECL_NET_IPV4_TCP_MAX_KA_PROBES $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_TCP_KEEPALIVE_TIME" "ac_cv_have_decl_NET_IPV4_TCP_KEEPALIVE_TIME" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "query.attach_type" "ac_cv_member_union_bpf_attr_query_attach_type" "#include " -if test "x$ac_cv_member_union_bpf_attr_query_attach_type" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_TCP_KEEPALIVE_TIME" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_QUERY_ATTACH_TYPE 1 +#define HAVE_DECL_NET_IPV4_TCP_KEEPALIVE_TIME $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_TCP_KEEPALIVE_PROBES" "ac_cv_have_decl_NET_IPV4_TCP_KEEPALIVE_PROBES" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "query.prog_cnt" "ac_cv_member_union_bpf_attr_query_prog_cnt" "#include " -if test "x$ac_cv_member_union_bpf_attr_query_prog_cnt" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_TCP_KEEPALIVE_PROBES" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_QUERY_PROG_CNT 1 +#define HAVE_DECL_NET_IPV4_TCP_KEEPALIVE_PROBES $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_TCP_RETRIES1" "ac_cv_have_decl_NET_IPV4_TCP_RETRIES1" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "query.prog_ids" "ac_cv_member_union_bpf_attr_query_prog_ids" "#include " -if test "x$ac_cv_member_union_bpf_attr_query_prog_ids" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_TCP_RETRIES1" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_QUERY_PROG_IDS 1 +#define HAVE_DECL_NET_IPV4_TCP_RETRIES1 $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_TCP_RETRIES2" "ac_cv_have_decl_NET_IPV4_TCP_RETRIES2" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "query.query_flags" "ac_cv_member_union_bpf_attr_query_query_flags" "#include " -if test "x$ac_cv_member_union_bpf_attr_query_query_flags" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_TCP_RETRIES2" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_QUERY_QUERY_FLAGS 1 +#define HAVE_DECL_NET_IPV4_TCP_RETRIES2 $ac_have_decl _ACEOF - - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "query.target_fd" "ac_cv_member_union_bpf_attr_query_target_fd" "#include +ac_fn_c_check_decl "$LINENO" "NET_IPV4_TCP_FIN_TIMEOUT" "ac_cv_have_decl_NET_IPV4_TCP_FIN_TIMEOUT" " +#include +#include + " -if test "x$ac_cv_member_union_bpf_attr_query_target_fd" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_TCP_FIN_TIMEOUT" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_QUERY_TARGET_FD 1 +#define HAVE_DECL_NET_IPV4_TCP_FIN_TIMEOUT $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_IP_MASQ_DEBUG" "ac_cv_have_decl_NET_IPV4_IP_MASQ_DEBUG" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "raw_tracepoint.name" "ac_cv_member_union_bpf_attr_raw_tracepoint_name" "#include " -if test "x$ac_cv_member_union_bpf_attr_raw_tracepoint_name" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_IP_MASQ_DEBUG" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_RAW_TRACEPOINT_NAME 1 +#define HAVE_DECL_NET_IPV4_IP_MASQ_DEBUG $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_SYNCOOKIES" "ac_cv_have_decl_NET_TCP_SYNCOOKIES" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "raw_tracepoint.prog_fd" "ac_cv_member_union_bpf_attr_raw_tracepoint_prog_fd" "#include " -if test "x$ac_cv_member_union_bpf_attr_raw_tracepoint_prog_fd" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_SYNCOOKIES" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_RAW_TRACEPOINT_PROG_FD 1 +#define HAVE_DECL_NET_TCP_SYNCOOKIES $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_STDURG" "ac_cv_have_decl_NET_TCP_STDURG" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "start_id" "ac_cv_member_union_bpf_attr_start_id" "#include " -if test "x$ac_cv_member_union_bpf_attr_start_id" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_STDURG" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_START_ID 1 +#define HAVE_DECL_NET_TCP_STDURG $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_RFC1337" "ac_cv_have_decl_NET_TCP_RFC1337" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "target_fd" "ac_cv_member_union_bpf_attr_target_fd" "#include " -if test "x$ac_cv_member_union_bpf_attr_target_fd" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_RFC1337" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_TARGET_FD 1 +#define HAVE_DECL_NET_TCP_RFC1337 $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_SYN_TAILDROP" "ac_cv_have_decl_NET_TCP_SYN_TAILDROP" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "task_fd_query.buf" "ac_cv_member_union_bpf_attr_task_fd_query_buf" "#include " -if test "x$ac_cv_member_union_bpf_attr_task_fd_query_buf" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_SYN_TAILDROP" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_BUF 1 +#define HAVE_DECL_NET_TCP_SYN_TAILDROP $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_MAX_SYN_BACKLOG" "ac_cv_have_decl_NET_TCP_MAX_SYN_BACKLOG" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "task_fd_query.buf_len" "ac_cv_member_union_bpf_attr_task_fd_query_buf_len" "#include " -if test "x$ac_cv_member_union_bpf_attr_task_fd_query_buf_len" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_MAX_SYN_BACKLOG" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_BUF_LEN 1 +#define HAVE_DECL_NET_TCP_MAX_SYN_BACKLOG $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_LOCAL_PORT_RANGE" "ac_cv_have_decl_NET_IPV4_LOCAL_PORT_RANGE" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "task_fd_query.fd" "ac_cv_member_union_bpf_attr_task_fd_query_fd" "#include " -if test "x$ac_cv_member_union_bpf_attr_task_fd_query_fd" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_LOCAL_PORT_RANGE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_FD 1 +#define HAVE_DECL_NET_IPV4_LOCAL_PORT_RANGE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ICMP_ECHO_IGNORE_ALL" "ac_cv_have_decl_NET_IPV4_ICMP_ECHO_IGNORE_ALL" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "task_fd_query.fd_type" "ac_cv_member_union_bpf_attr_task_fd_query_fd_type" "#include " -if test "x$ac_cv_member_union_bpf_attr_task_fd_query_fd_type" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_ICMP_ECHO_IGNORE_ALL" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_FD_TYPE 1 +#define HAVE_DECL_NET_IPV4_ICMP_ECHO_IGNORE_ALL $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ICMP_ECHO_IGNORE_BROADCASTS" "ac_cv_have_decl_NET_IPV4_ICMP_ECHO_IGNORE_BROADCASTS" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "task_fd_query.flags" "ac_cv_member_union_bpf_attr_task_fd_query_flags" "#include " -if test "x$ac_cv_member_union_bpf_attr_task_fd_query_flags" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_ICMP_ECHO_IGNORE_BROADCASTS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_FLAGS 1 +#define HAVE_DECL_NET_IPV4_ICMP_ECHO_IGNORE_BROADCASTS $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ICMP_SOURCEQUENCH_RATE" "ac_cv_have_decl_NET_IPV4_ICMP_SOURCEQUENCH_RATE" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "task_fd_query.pid" "ac_cv_member_union_bpf_attr_task_fd_query_pid" "#include " -if test "x$ac_cv_member_union_bpf_attr_task_fd_query_pid" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_ICMP_SOURCEQUENCH_RATE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_PID 1 +#define HAVE_DECL_NET_IPV4_ICMP_SOURCEQUENCH_RATE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ICMP_DESTUNREACH_RATE" "ac_cv_have_decl_NET_IPV4_ICMP_DESTUNREACH_RATE" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "task_fd_query.probe_addr" "ac_cv_member_union_bpf_attr_task_fd_query_probe_addr" "#include " -if test "x$ac_cv_member_union_bpf_attr_task_fd_query_probe_addr" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_ICMP_DESTUNREACH_RATE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_PROBE_ADDR 1 +#define HAVE_DECL_NET_IPV4_ICMP_DESTUNREACH_RATE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ICMP_TIMEEXCEED_RATE" "ac_cv_have_decl_NET_IPV4_ICMP_TIMEEXCEED_RATE" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "task_fd_query.probe_offset" "ac_cv_member_union_bpf_attr_task_fd_query_probe_offset" "#include " -if test "x$ac_cv_member_union_bpf_attr_task_fd_query_probe_offset" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_ICMP_TIMEEXCEED_RATE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_PROBE_OFFSET 1 +#define HAVE_DECL_NET_IPV4_ICMP_TIMEEXCEED_RATE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ICMP_PARAMPROB_RATE" "ac_cv_have_decl_NET_IPV4_ICMP_PARAMPROB_RATE" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "task_fd_query.prog_id" "ac_cv_member_union_bpf_attr_task_fd_query_prog_id" "#include " -if test "x$ac_cv_member_union_bpf_attr_task_fd_query_prog_id" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_ICMP_PARAMPROB_RATE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_PROG_ID 1 +#define HAVE_DECL_NET_IPV4_ICMP_PARAMPROB_RATE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ICMP_ECHOREPLY_RATE" "ac_cv_have_decl_NET_IPV4_ICMP_ECHOREPLY_RATE" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "test.data_in" "ac_cv_member_union_bpf_attr_test_data_in" "#include " -if test "x$ac_cv_member_union_bpf_attr_test_data_in" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_ICMP_ECHOREPLY_RATE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_TEST_DATA_IN 1 +#define HAVE_DECL_NET_IPV4_ICMP_ECHOREPLY_RATE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ICMP_IGNORE_BOGUS_ERROR_RESPONSES" "ac_cv_have_decl_NET_IPV4_ICMP_IGNORE_BOGUS_ERROR_RESPONSES" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "test.data_out" "ac_cv_member_union_bpf_attr_test_data_out" "#include " -if test "x$ac_cv_member_union_bpf_attr_test_data_out" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_ICMP_IGNORE_BOGUS_ERROR_RESPONSES" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_TEST_DATA_OUT 1 +#define HAVE_DECL_NET_IPV4_ICMP_IGNORE_BOGUS_ERROR_RESPONSES $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_IGMP_MAX_MEMBERSHIPS" "ac_cv_have_decl_NET_IPV4_IGMP_MAX_MEMBERSHIPS" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "test.data_size_in" "ac_cv_member_union_bpf_attr_test_data_size_in" "#include " -if test "x$ac_cv_member_union_bpf_attr_test_data_size_in" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_IGMP_MAX_MEMBERSHIPS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_TEST_DATA_SIZE_IN 1 +#define HAVE_DECL_NET_IPV4_IGMP_MAX_MEMBERSHIPS $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_TW_RECYCLE" "ac_cv_have_decl_NET_TCP_TW_RECYCLE" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "test.data_size_out" "ac_cv_member_union_bpf_attr_test_data_size_out" "#include " -if test "x$ac_cv_member_union_bpf_attr_test_data_size_out" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_TW_RECYCLE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_TEST_DATA_SIZE_OUT 1 +#define HAVE_DECL_NET_TCP_TW_RECYCLE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ALWAYS_DEFRAG" "ac_cv_have_decl_NET_IPV4_ALWAYS_DEFRAG" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "test.duration" "ac_cv_member_union_bpf_attr_test_duration" "#include " -if test "x$ac_cv_member_union_bpf_attr_test_duration" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_ALWAYS_DEFRAG" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_TEST_DURATION 1 +#define HAVE_DECL_NET_IPV4_ALWAYS_DEFRAG $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_TCP_KEEPALIVE_INTVL" "ac_cv_have_decl_NET_IPV4_TCP_KEEPALIVE_INTVL" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "test.prog_fd" "ac_cv_member_union_bpf_attr_test_prog_fd" "#include " -if test "x$ac_cv_member_union_bpf_attr_test_prog_fd" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_TCP_KEEPALIVE_INTVL" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_TEST_PROG_FD 1 +#define HAVE_DECL_NET_IPV4_TCP_KEEPALIVE_INTVL $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_INET_PEER_THRESHOLD" "ac_cv_have_decl_NET_IPV4_INET_PEER_THRESHOLD" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "test.repeat" "ac_cv_member_union_bpf_attr_test_repeat" "#include " -if test "x$ac_cv_member_union_bpf_attr_test_repeat" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_INET_PEER_THRESHOLD" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_TEST_REPEAT 1 +#define HAVE_DECL_NET_IPV4_INET_PEER_THRESHOLD $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_INET_PEER_MINTTL" "ac_cv_have_decl_NET_IPV4_INET_PEER_MINTTL" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "test.retval" "ac_cv_member_union_bpf_attr_test_retval" "#include " -if test "x$ac_cv_member_union_bpf_attr_test_retval" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_INET_PEER_MINTTL" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_TEST_RETVAL 1 +#define HAVE_DECL_NET_IPV4_INET_PEER_MINTTL $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_INET_PEER_MAXTTL" "ac_cv_have_decl_NET_IPV4_INET_PEER_MAXTTL" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "value" "ac_cv_member_union_bpf_attr_value" "#include " -if test "x$ac_cv_member_union_bpf_attr_value" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_INET_PEER_MAXTTL" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_VALUE 1 +#define HAVE_DECL_NET_IPV4_INET_PEER_MAXTTL $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_INET_PEER_GC_MINTIME" "ac_cv_have_decl_NET_IPV4_INET_PEER_GC_MINTIME" " +#include +#include - +" +if test "x$ac_cv_have_decl_NET_IPV4_INET_PEER_GC_MINTIME" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "value_size" "ac_cv_member_union_bpf_attr_value_size" "#include -" -if test "x$ac_cv_member_union_bpf_attr_value_size" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_VALUE_SIZE 1 +#define HAVE_DECL_NET_IPV4_INET_PEER_GC_MINTIME $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_INET_PEER_GC_MAXTIME" "ac_cv_have_decl_NET_IPV4_INET_PEER_GC_MAXTIME" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "union bpf_attr" "dummy" "ac_cv_member_union_bpf_attr_dummy" "#include " -if test "x$ac_cv_member_union_bpf_attr_dummy" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_INET_PEER_GC_MAXTIME" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_UNION_BPF_ATTR_DUMMY 1 +#define HAVE_DECL_NET_IPV4_INET_PEER_GC_MAXTIME $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_ORPHAN_RETRIES" "ac_cv_have_decl_NET_TCP_ORPHAN_RETRIES" " +#include +#include - -fi - - - +" +if test "x$ac_cv_have_decl_NET_TCP_ORPHAN_RETRIES" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -done - - -for ac_header in bluetooth/bluetooth.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "bluetooth/bluetooth.h" "ac_cv_header_bluetooth_bluetooth_h" "$ac_includes_default" -if test "x$ac_cv_header_bluetooth_bluetooth_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_BLUETOOTH_BLUETOOTH_H 1 +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_NET_TCP_ORPHAN_RETRIES $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_ABORT_ON_OVERFLOW" "ac_cv_have_decl_NET_TCP_ABORT_ON_OVERFLOW" " +#include +#include - ac_fn_c_check_member "$LINENO" "struct sockaddr_l2" "l2_bdaddr_type" "ac_cv_member_struct_sockaddr_l2_l2_bdaddr_type" "#include - #include " -if test "x$ac_cv_member_struct_sockaddr_l2_l2_bdaddr_type" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_ABORT_ON_OVERFLOW" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_SOCKADDR_L2_L2_BDADDR_TYPE 1 +#define HAVE_DECL_NET_TCP_ABORT_ON_OVERFLOW $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_SYNACK_RETRIES" "ac_cv_have_decl_NET_TCP_SYNACK_RETRIES" " +#include +#include - +" +if test "x$ac_cv_have_decl_NET_TCP_SYNACK_RETRIES" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_NET_TCP_SYNACK_RETRIES $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_MAX_ORPHANS" "ac_cv_have_decl_NET_TCP_MAX_ORPHANS" " +#include +#include +" +if test "x$ac_cv_have_decl_NET_TCP_MAX_ORPHANS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -done - +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_NET_TCP_MAX_ORPHANS $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_MAX_TW_BUCKETS" "ac_cv_have_decl_NET_TCP_MAX_TW_BUCKETS" " +#include +#include -ac_fn_c_check_type "$LINENO" "struct br_mdb_entry" "ac_cv_type_struct_br_mdb_entry" "#include " -if test "x$ac_cv_type_struct_br_mdb_entry" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_MAX_TW_BUCKETS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BR_MDB_ENTRY 1 +#define HAVE_DECL_NET_TCP_MAX_TW_BUCKETS $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_FACK" "ac_cv_have_decl_NET_TCP_FACK" " +#include +#include - -fi -ac_fn_c_check_type "$LINENO" "struct br_port_msg" "ac_cv_type_struct_br_port_msg" "#include " -if test "x$ac_cv_type_struct_br_port_msg" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_FACK" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BR_PORT_MSG 1 +#define HAVE_DECL_NET_TCP_FACK $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_REORDERING" "ac_cv_have_decl_NET_TCP_REORDERING" " +#include +#include - -fi - -ac_fn_c_check_member "$LINENO" "struct br_mdb_entry" "flags" "ac_cv_member_struct_br_mdb_entry_flags" "#include " -if test "x$ac_cv_member_struct_br_mdb_entry_flags" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_REORDERING" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BR_MDB_ENTRY_FLAGS 1 +#define HAVE_DECL_NET_TCP_REORDERING $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_ECN" "ac_cv_have_decl_NET_TCP_ECN" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct br_mdb_entry" "vid" "ac_cv_member_struct_br_mdb_entry_vid" "#include " -if test "x$ac_cv_member_struct_br_mdb_entry_vid" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_ECN" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BR_MDB_ENTRY_VID 1 +#define HAVE_DECL_NET_TCP_ECN $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_DSACK" "ac_cv_have_decl_NET_TCP_DSACK" " +#include +#include - +" +if test "x$ac_cv_have_decl_NET_TCP_DSACK" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_NET_TCP_DSACK $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_MEM" "ac_cv_have_decl_NET_TCP_MEM" " +#include +#include -ac_fn_c_check_type "$LINENO" "struct dcbmsg" "ac_cv_type_struct_dcbmsg" "#include " -if test "x$ac_cv_type_struct_dcbmsg" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_MEM" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_DCBMSG 1 +#define HAVE_DECL_NET_TCP_MEM $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_WMEM" "ac_cv_have_decl_NET_TCP_WMEM" " +#include +#include - -fi - -ac_fn_c_check_type "$LINENO" "struct ifaddrlblmsg" "ac_cv_type_struct_ifaddrlblmsg" "#include " -if test "x$ac_cv_type_struct_ifaddrlblmsg" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_WMEM" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_IFADDRLBLMSG 1 +#define HAVE_DECL_NET_TCP_WMEM $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_RMEM" "ac_cv_have_decl_NET_TCP_RMEM" " +#include +#include - -fi - -ac_fn_c_check_type "$LINENO" "struct netconfmsg" "ac_cv_type_struct_netconfmsg" "#include " -if test "x$ac_cv_type_struct_netconfmsg" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_RMEM" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_NETCONFMSG 1 +#define HAVE_DECL_NET_TCP_RMEM $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_APP_WIN" "ac_cv_have_decl_NET_TCP_APP_WIN" " +#include +#include - +" +if test "x$ac_cv_have_decl_NET_TCP_APP_WIN" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_NET_TCP_APP_WIN $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_ADV_WIN_SCALE" "ac_cv_have_decl_NET_TCP_ADV_WIN_SCALE" " +#include +#include -ac_fn_c_check_type "$LINENO" "struct rta_mfc_stats" "ac_cv_type_struct_rta_mfc_stats" "#include -#include " -if test "x$ac_cv_type_struct_rta_mfc_stats" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_ADV_WIN_SCALE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_RTA_MFC_STATS 1 +#define HAVE_DECL_NET_TCP_ADV_WIN_SCALE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_NONLOCAL_BIND" "ac_cv_have_decl_NET_IPV4_NONLOCAL_BIND" " +#include +#include - -fi -ac_fn_c_check_type "$LINENO" "struct rtvia" "ac_cv_type_struct_rtvia" "#include -#include " -if test "x$ac_cv_type_struct_rtvia" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_NONLOCAL_BIND" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_RTVIA 1 +#define HAVE_DECL_NET_IPV4_NONLOCAL_BIND $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ICMP_RATELIMIT" "ac_cv_have_decl_NET_IPV4_ICMP_RATELIMIT" " +#include +#include - +" +if test "x$ac_cv_have_decl_NET_IPV4_ICMP_RATELIMIT" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_NET_IPV4_ICMP_RATELIMIT $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ICMP_RATEMASK" "ac_cv_have_decl_NET_IPV4_ICMP_RATEMASK" " +#include +#include -ac_fn_c_check_member "$LINENO" "struct ndt_stats" "ndts_table_fulls" "ac_cv_member_struct_ndt_stats_ndts_table_fulls" "#include " -if test "x$ac_cv_member_struct_ndt_stats_ndts_table_fulls" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_ICMP_RATEMASK" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_NDT_STATS_NDTS_TABLE_FULLS 1 +#define HAVE_DECL_NET_IPV4_ICMP_RATEMASK $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_TW_REUSE" "ac_cv_have_decl_NET_TCP_TW_REUSE" " +#include +#include - -fi - -ac_fn_c_check_type "$LINENO" "struct ndt_config" "ac_cv_type_struct_ndt_config" "#include " -if test "x$ac_cv_type_struct_ndt_config" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_TW_REUSE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_NDT_CONFIG 1 +#define HAVE_DECL_NET_TCP_TW_REUSE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_FRTO" "ac_cv_have_decl_NET_TCP_FRTO" " +#include +#include - -fi -ac_fn_c_check_type "$LINENO" "struct ndt_stats" "ac_cv_type_struct_ndt_stats" "#include " -if test "x$ac_cv_type_struct_ndt_stats" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_FRTO" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_NDT_STATS 1 +#define HAVE_DECL_NET_TCP_FRTO $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_LOW_LATENCY" "ac_cv_have_decl_NET_TCP_LOW_LATENCY" " +#include +#include - +" +if test "x$ac_cv_have_decl_NET_TCP_LOW_LATENCY" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_NET_TCP_LOW_LATENCY $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_IPFRAG_SECRET_INTERVAL" "ac_cv_have_decl_NET_IPV4_IPFRAG_SECRET_INTERVAL" " +#include +#include -ac_fn_c_check_type "$LINENO" "struct ifla_bridge_id" "ac_cv_type_struct_ifla_bridge_id" "#include -#include " -if test "x$ac_cv_type_struct_ifla_bridge_id" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_IPFRAG_SECRET_INTERVAL" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_IFLA_BRIDGE_ID 1 +#define HAVE_DECL_NET_IPV4_IPFRAG_SECRET_INTERVAL $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_IGMP_MAX_MSF" "ac_cv_have_decl_NET_IPV4_IGMP_MAX_MSF" " +#include +#include - -fi -ac_fn_c_check_type "$LINENO" "struct ifla_cacheinfo" "ac_cv_type_struct_ifla_cacheinfo" "#include -#include " -if test "x$ac_cv_type_struct_ifla_cacheinfo" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_IGMP_MAX_MSF" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_IFLA_CACHEINFO 1 +#define HAVE_DECL_NET_IPV4_IGMP_MAX_MSF $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_NO_METRICS_SAVE" "ac_cv_have_decl_NET_TCP_NO_METRICS_SAVE" " +#include +#include - -fi -ac_fn_c_check_type "$LINENO" "struct ifla_port_vsi" "ac_cv_type_struct_ifla_port_vsi" "#include -#include " -if test "x$ac_cv_type_struct_ifla_port_vsi" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_NO_METRICS_SAVE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_IFLA_PORT_VSI 1 +#define HAVE_DECL_NET_TCP_NO_METRICS_SAVE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_DEFAULT_WIN_SCALE" "ac_cv_have_decl_NET_TCP_DEFAULT_WIN_SCALE" " +#include +#include - -fi -ac_fn_c_check_type "$LINENO" "struct rtnl_link_stats64" "ac_cv_type_struct_rtnl_link_stats64" "#include -#include " -if test "x$ac_cv_type_struct_rtnl_link_stats64" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_DEFAULT_WIN_SCALE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_RTNL_LINK_STATS64 1 +#define HAVE_DECL_NET_TCP_DEFAULT_WIN_SCALE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_MODERATE_RCVBUF" "ac_cv_have_decl_NET_TCP_MODERATE_RCVBUF" " +#include +#include - -fi - -ac_fn_c_check_member "$LINENO" "struct rtnl_link_stats" "rx_nohandler" "ac_cv_member_struct_rtnl_link_stats_rx_nohandler" "#include -#include " -if test "x$ac_cv_member_struct_rtnl_link_stats_rx_nohandler" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_MODERATE_RCVBUF" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_RTNL_LINK_STATS_RX_NOHANDLER 1 +#define HAVE_DECL_NET_TCP_MODERATE_RCVBUF $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_TSO_WIN_DIVISOR" "ac_cv_have_decl_NET_TCP_TSO_WIN_DIVISOR" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct rtnl_link_stats64" "rx_nohandler" "ac_cv_member_struct_rtnl_link_stats64_rx_nohandler" "#include -#include " -if test "x$ac_cv_member_struct_rtnl_link_stats64_rx_nohandler" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_TSO_WIN_DIVISOR" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_RTNL_LINK_STATS64_RX_NOHANDLER 1 +#define HAVE_DECL_NET_TCP_TSO_WIN_DIVISOR $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_BIC_BETA" "ac_cv_have_decl_NET_TCP_BIC_BETA" " +#include +#include - -fi - -ac_fn_c_check_decl "$LINENO" "IFLA_PORT_SELF" "ac_cv_have_decl_IFLA_PORT_SELF" "#include -#include " -if test "x$ac_cv_have_decl_IFLA_PORT_SELF" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_BIC_BETA" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_IFLA_PORT_SELF $ac_have_decl +#define HAVE_DECL_NET_TCP_BIC_BETA $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "IFLA_PROTINFO" "ac_cv_have_decl_IFLA_PROTINFO" "#include -#include +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR" "ac_cv_have_decl_NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR" " +#include +#include + " -if test "x$ac_cv_have_decl_IFLA_PROTINFO" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_IFLA_PROTINFO $ac_have_decl +#define HAVE_DECL_NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "IFLA_AF_SPEC" "ac_cv_have_decl_IFLA_AF_SPEC" "#include -#include +ac_fn_c_check_decl "$LINENO" "NET_TCP_CONG_CONTROL" "ac_cv_have_decl_NET_TCP_CONG_CONTROL" " +#include +#include + " -if test "x$ac_cv_have_decl_IFLA_AF_SPEC" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_CONG_CONTROL" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_IFLA_AF_SPEC $ac_have_decl +#define HAVE_DECL_NET_TCP_CONG_CONTROL $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "IFLA_XDP" "ac_cv_have_decl_IFLA_XDP" "#include -#include +ac_fn_c_check_decl "$LINENO" "NET_TCP_ABC" "ac_cv_have_decl_NET_TCP_ABC" " +#include +#include + " -if test "x$ac_cv_have_decl_IFLA_XDP" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_ABC" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_IFLA_XDP $ac_have_decl +#define HAVE_DECL_NET_TCP_ABC $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_IPFRAG_MAX_DIST" "ac_cv_have_decl_NET_IPV4_IPFRAG_MAX_DIST" " +#include +#include - -ac_fn_c_check_type "$LINENO" "struct gnet_stats_basic" "ac_cv_type_struct_gnet_stats_basic" "#include " -if test "x$ac_cv_type_struct_gnet_stats_basic" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_IPFRAG_MAX_DIST" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_GNET_STATS_BASIC 1 +#define HAVE_DECL_NET_IPV4_IPFRAG_MAX_DIST $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_MTU_PROBING" "ac_cv_have_decl_NET_TCP_MTU_PROBING" " +#include +#include - -fi -ac_fn_c_check_type "$LINENO" "struct gnet_stats_queue" "ac_cv_type_struct_gnet_stats_queue" "#include " -if test "x$ac_cv_type_struct_gnet_stats_queue" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_MTU_PROBING" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_GNET_STATS_QUEUE 1 +#define HAVE_DECL_NET_TCP_MTU_PROBING $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_BASE_MSS" "ac_cv_have_decl_NET_TCP_BASE_MSS" " +#include +#include - -fi -ac_fn_c_check_type "$LINENO" "struct gnet_stats_rate_est" "ac_cv_type_struct_gnet_stats_rate_est" "#include " -if test "x$ac_cv_type_struct_gnet_stats_rate_est" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_BASE_MSS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_GNET_STATS_RATE_EST 1 +#define HAVE_DECL_NET_TCP_BASE_MSS $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS" "ac_cv_have_decl_NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS" " +#include +#include - -fi -ac_fn_c_check_type "$LINENO" "struct gnet_stats_rate_est64" "ac_cv_type_struct_gnet_stats_rate_est64" "#include " -if test "x$ac_cv_type_struct_gnet_stats_rate_est64" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_GNET_STATS_RATE_EST64 1 +#define HAVE_DECL_NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_DMA_COPYBREAK" "ac_cv_have_decl_NET_TCP_DMA_COPYBREAK" " +#include +#include - -fi - - -ac_fn_c_check_type "$LINENO" "struct tc_sizespec" "ac_cv_type_struct_tc_sizespec" "#include -#include " -if test "x$ac_cv_type_struct_tc_sizespec" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_DMA_COPYBREAK" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_TC_SIZESPEC 1 +#define HAVE_DECL_NET_TCP_DMA_COPYBREAK $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_SLOW_START_AFTER_IDLE" "ac_cv_have_decl_NET_TCP_SLOW_START_AFTER_IDLE" " +#include +#include - -fi - -ac_fn_c_check_decl "$LINENO" "TCA_STAB_DATA" "ac_cv_have_decl_TCA_STAB_DATA" "#include -#include " -if test "x$ac_cv_have_decl_TCA_STAB_DATA" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_SLOW_START_AFTER_IDLE" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_TCA_STAB_DATA $ac_have_decl +#define HAVE_DECL_NET_TCP_SLOW_START_AFTER_IDLE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_CIPSOV4_CACHE_ENABLE" "ac_cv_have_decl_NET_CIPSOV4_CACHE_ENABLE" " +#include +#include - -ac_fn_c_check_type "$LINENO" "struct fib_rule_uid_range" "ac_cv_type_struct_fib_rule_uid_range" "#include " -if test "x$ac_cv_type_struct_fib_rule_uid_range" = xyes; then : +if test "x$ac_cv_have_decl_NET_CIPSOV4_CACHE_ENABLE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_FIB_RULE_UID_RANGE 1 +#define HAVE_DECL_NET_CIPSOV4_CACHE_ENABLE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_CIPSOV4_CACHE_BUCKET_SIZE" "ac_cv_have_decl_NET_CIPSOV4_CACHE_BUCKET_SIZE" " +#include +#include - -fi -ac_fn_c_check_type "$LINENO" "struct fib_rule_port_range" "ac_cv_type_struct_fib_rule_port_range" "#include " -if test "x$ac_cv_type_struct_fib_rule_port_range" = xyes; then : +if test "x$ac_cv_have_decl_NET_CIPSOV4_CACHE_BUCKET_SIZE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_FIB_RULE_PORT_RANGE 1 +#define HAVE_DECL_NET_CIPSOV4_CACHE_BUCKET_SIZE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_CIPSOV4_RBM_OPTFMT" "ac_cv_have_decl_NET_CIPSOV4_RBM_OPTFMT" " +#include +#include - +" +if test "x$ac_cv_have_decl_NET_CIPSOV4_RBM_OPTFMT" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_NET_CIPSOV4_RBM_OPTFMT $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "NET_CIPSOV4_RBM_STRICTVALID" "ac_cv_have_decl_NET_CIPSOV4_RBM_STRICTVALID" " +#include +#include -ac_fn_c_check_type "$LINENO" "struct statfs" "ac_cv_type_struct_statfs" "#include -#include " -if test "x$ac_cv_type_struct_statfs" = xyes; then : +if test "x$ac_cv_have_decl_NET_CIPSOV4_RBM_STRICTVALID" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STATFS 1 +#define HAVE_DECL_NET_CIPSOV4_RBM_STRICTVALID $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_AVAIL_CONG_CONTROL" "ac_cv_have_decl_NET_TCP_AVAIL_CONG_CONTROL" " +#include +#include - - ac_fn_c_check_member "$LINENO" "struct statfs" "f_frsize" "ac_cv_member_struct_statfs_f_frsize" "#include -#include " -if test "x$ac_cv_member_struct_statfs_f_frsize" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_AVAIL_CONG_CONTROL" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STATFS_F_FRSIZE 1 +#define HAVE_DECL_NET_TCP_AVAIL_CONG_CONTROL $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_ALLOWED_CONG_CONTROL" "ac_cv_have_decl_NET_TCP_ALLOWED_CONG_CONTROL" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct statfs" "f_flags" "ac_cv_member_struct_statfs_f_flags" "#include -#include " -if test "x$ac_cv_member_struct_statfs_f_flags" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_ALLOWED_CONG_CONTROL" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STATFS_F_FLAGS 1 +#define HAVE_DECL_NET_TCP_ALLOWED_CONG_CONTROL $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_MAX_SSTHRESH" "ac_cv_have_decl_NET_TCP_MAX_SSTHRESH" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct statfs" "f_fsid.val" "ac_cv_member_struct_statfs_f_fsid_val" "#include -#include " -if test "x$ac_cv_member_struct_statfs_f_fsid_val" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_MAX_SSTHRESH" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STATFS_F_FSID_VAL 1 +#define HAVE_DECL_NET_TCP_MAX_SSTHRESH $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_TCP_FRTO_RESPONSE" "ac_cv_have_decl_NET_TCP_FRTO_RESPONSE" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct statfs" "f_fsid.__val" "ac_cv_member_struct_statfs_f_fsid___val" "#include -#include " -if test "x$ac_cv_member_struct_statfs_f_fsid___val" = xyes; then : +if test "x$ac_cv_have_decl_NET_TCP_FRTO_RESPONSE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STATFS_F_FSID___VAL 1 +#define HAVE_DECL_NET_TCP_FRTO_RESPONSE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_CONF_FORWARDING" "ac_cv_have_decl_NET_IPV4_CONF_FORWARDING" " +#include +#include + +" +if test "x$ac_cv_have_decl_NET_IPV4_CONF_FORWARDING" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_NET_IPV4_CONF_FORWARDING $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_CONF_MC_FORWARDING" "ac_cv_have_decl_NET_IPV4_CONF_MC_FORWARDING" " +#include +#include +" +if test "x$ac_cv_have_decl_NET_IPV4_CONF_MC_FORWARDING" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_NET_IPV4_CONF_MC_FORWARDING $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_CONF_PROXY_ARP" "ac_cv_have_decl_NET_IPV4_CONF_PROXY_ARP" " +#include +#include -ac_fn_c_check_type "$LINENO" "struct statfs64" "ac_cv_type_struct_statfs64" "#include -#include " -if test "x$ac_cv_type_struct_statfs64" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_CONF_PROXY_ARP" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STATFS64 1 +#define HAVE_DECL_NET_IPV4_CONF_PROXY_ARP $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_CONF_ACCEPT_REDIRECTS" "ac_cv_have_decl_NET_IPV4_CONF_ACCEPT_REDIRECTS" " +#include +#include - - ac_fn_c_check_member "$LINENO" "struct statfs64" "f_frsize" "ac_cv_member_struct_statfs64_f_frsize" "#include -#include " -if test "x$ac_cv_member_struct_statfs64_f_frsize" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_CONF_ACCEPT_REDIRECTS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STATFS64_F_FRSIZE 1 +#define HAVE_DECL_NET_IPV4_CONF_ACCEPT_REDIRECTS $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_CONF_SECURE_REDIRECTS" "ac_cv_have_decl_NET_IPV4_CONF_SECURE_REDIRECTS" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct statfs64" "f_flags" "ac_cv_member_struct_statfs64_f_flags" "#include -#include " -if test "x$ac_cv_member_struct_statfs64_f_flags" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_CONF_SECURE_REDIRECTS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STATFS64_F_FLAGS 1 +#define HAVE_DECL_NET_IPV4_CONF_SECURE_REDIRECTS $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_CONF_SEND_REDIRECTS" "ac_cv_have_decl_NET_IPV4_CONF_SEND_REDIRECTS" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct statfs64" "f_fsid.val" "ac_cv_member_struct_statfs64_f_fsid_val" "#include -#include " -if test "x$ac_cv_member_struct_statfs64_f_fsid_val" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_CONF_SEND_REDIRECTS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STATFS64_F_FSID_VAL 1 +#define HAVE_DECL_NET_IPV4_CONF_SEND_REDIRECTS $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_CONF_SHARED_MEDIA" "ac_cv_have_decl_NET_IPV4_CONF_SHARED_MEDIA" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct statfs64" "f_fsid.__val" "ac_cv_member_struct_statfs64_f_fsid___val" "#include -#include " -if test "x$ac_cv_member_struct_statfs64_f_fsid___val" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_CONF_SHARED_MEDIA" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STATFS64_F_FSID___VAL 1 +#define HAVE_DECL_NET_IPV4_CONF_SHARED_MEDIA $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_CONF_RP_FILTER" "ac_cv_have_decl_NET_IPV4_CONF_RP_FILTER" " +#include +#include - +" +if test "x$ac_cv_have_decl_NET_IPV4_CONF_RP_FILTER" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_NET_IPV4_CONF_RP_FILTER $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_CONF_ACCEPT_SOURCE_ROUTE" "ac_cv_have_decl_NET_IPV4_CONF_ACCEPT_SOURCE_ROUTE" " +#include +#include +" +if test "x$ac_cv_have_decl_NET_IPV4_CONF_ACCEPT_SOURCE_ROUTE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_NET_IPV4_CONF_ACCEPT_SOURCE_ROUTE $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_CONF_BOOTP_RELAY" "ac_cv_have_decl_NET_IPV4_CONF_BOOTP_RELAY" " +#include +#include -ac_fn_c_check_type "$LINENO" "struct blk_user_trace_setup" "ac_cv_type_struct_blk_user_trace_setup" "#include " -if test "x$ac_cv_type_struct_blk_user_trace_setup" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_CONF_BOOTP_RELAY" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BLK_USER_TRACE_SETUP 1 +#define HAVE_DECL_NET_IPV4_CONF_BOOTP_RELAY $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_CONF_LOG_MARTIANS" "ac_cv_have_decl_NET_IPV4_CONF_LOG_MARTIANS" " +#include +#include - +" +if test "x$ac_cv_have_decl_NET_IPV4_CONF_LOG_MARTIANS" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_NET_IPV4_CONF_LOG_MARTIANS $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_CONF_TAG" "ac_cv_have_decl_NET_IPV4_CONF_TAG" " +#include +#include -ac_fn_c_check_type "$LINENO" "struct mtd_write_req" "ac_cv_type_struct_mtd_write_req" "#include " -if test "x$ac_cv_type_struct_mtd_write_req" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_CONF_TAG" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_MTD_WRITE_REQ 1 +#define HAVE_DECL_NET_IPV4_CONF_TAG $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_CONF_ARPFILTER" "ac_cv_have_decl_NET_IPV4_CONF_ARPFILTER" " +#include +#include - +" +if test "x$ac_cv_have_decl_NET_IPV4_CONF_ARPFILTER" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_NET_IPV4_CONF_ARPFILTER $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_CONF_MEDIUM_ID" "ac_cv_have_decl_NET_IPV4_CONF_MEDIUM_ID" " +#include +#include -ac_fn_c_check_member "$LINENO" "struct ubi_attach_req" "max_beb_per1024" "ac_cv_member_struct_ubi_attach_req_max_beb_per1024" "#include " -if test "x$ac_cv_member_struct_ubi_attach_req_max_beb_per1024" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_CONF_MEDIUM_ID" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_UBI_ATTACH_REQ_MAX_BEB_PER1024 1 +#define HAVE_DECL_NET_IPV4_CONF_MEDIUM_ID $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_CONF_NOXFRM" "ac_cv_have_decl_NET_IPV4_CONF_NOXFRM" " +#include +#include - +" +if test "x$ac_cv_have_decl_NET_IPV4_CONF_NOXFRM" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_NET_IPV4_CONF_NOXFRM $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_CONF_NOPOLICY" "ac_cv_have_decl_NET_IPV4_CONF_NOPOLICY" " +#include +#include -ac_fn_c_check_type "$LINENO" "struct ptp_sys_offset" "ac_cv_type_struct_ptp_sys_offset" "#include " -if test "x$ac_cv_type_struct_ptp_sys_offset" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_CONF_NOPOLICY" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PTP_SYS_OFFSET 1 +#define HAVE_DECL_NET_IPV4_CONF_NOPOLICY $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_CONF_FORCE_IGMP_VERSION" "ac_cv_have_decl_NET_IPV4_CONF_FORCE_IGMP_VERSION" " +#include +#include - +" +if test "x$ac_cv_have_decl_NET_IPV4_CONF_FORCE_IGMP_VERSION" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_NET_IPV4_CONF_FORCE_IGMP_VERSION $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_CONF_ARP_ANNOUNCE" "ac_cv_have_decl_NET_IPV4_CONF_ARP_ANNOUNCE" " +#include +#include -ac_fn_c_check_type "$LINENO" "struct kvm_cpuid2" "ac_cv_type_struct_kvm_cpuid2" "#include " -if test "x$ac_cv_type_struct_kvm_cpuid2" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_CONF_ARP_ANNOUNCE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_KVM_CPUID2 1 +#define HAVE_DECL_NET_IPV4_CONF_ARP_ANNOUNCE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_CONF_ARP_IGNORE" "ac_cv_have_decl_NET_IPV4_CONF_ARP_IGNORE" " +#include +#include - -fi -ac_fn_c_check_type "$LINENO" "struct kvm_regs" "ac_cv_type_struct_kvm_regs" "#include " -if test "x$ac_cv_type_struct_kvm_regs" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_CONF_ARP_IGNORE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_KVM_REGS 1 +#define HAVE_DECL_NET_IPV4_CONF_ARP_IGNORE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_CONF_PROMOTE_SECONDARIES" "ac_cv_have_decl_NET_IPV4_CONF_PROMOTE_SECONDARIES" " +#include +#include - -fi -ac_fn_c_check_type "$LINENO" "struct kvm_sregs" "ac_cv_type_struct_kvm_sregs" "#include " -if test "x$ac_cv_type_struct_kvm_sregs" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_CONF_PROMOTE_SECONDARIES" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_KVM_SREGS 1 +#define HAVE_DECL_NET_IPV4_CONF_PROMOTE_SECONDARIES $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_CONF_ARP_ACCEPT" "ac_cv_have_decl_NET_IPV4_CONF_ARP_ACCEPT" " +#include +#include - -fi -ac_fn_c_check_type "$LINENO" "struct kvm_userspace_memory_region" "ac_cv_type_struct_kvm_userspace_memory_region" "#include " -if test "x$ac_cv_type_struct_kvm_userspace_memory_region" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_CONF_ARP_ACCEPT" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_KVM_USERSPACE_MEMORY_REGION 1 +#define HAVE_DECL_NET_IPV4_CONF_ARP_ACCEPT $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_CONF_ARP_NOTIFY" "ac_cv_have_decl_NET_IPV4_CONF_ARP_NOTIFY" " +#include +#include - +" +if test "x$ac_cv_have_decl_NET_IPV4_CONF_ARP_NOTIFY" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_NET_IPV4_CONF_ARP_NOTIFY $ac_have_decl +_ACEOF -saved_CPPFLAGS="$CPPFLAGS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether can be used along with " >&5 -$as_echo_n "checking whether can be used along with ... " >&6; } -if ${st_cv_linux_signal+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ROUTE_FLUSH" "ac_cv_have_decl_NET_IPV4_ROUTE_FLUSH" " +#include +#include -#include -#include -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - st_cv_linux_signal=yes +" +if test "x$ac_cv_have_decl_NET_IPV4_ROUTE_FLUSH" = xyes; then : + ac_have_decl=1 else - st_cv_linux_signal=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $st_cv_linux_signal" >&5 -$as_echo "$st_cv_linux_signal" >&6; } -if test "x$st_cv_linux_signal" = xno; then - mkdir -p linux/linux - cp $srcdir/linux/signal.h.in linux/linux/signal.h - CPPFLAGS="$CPPFLAGS -Ilinux" + ac_have_decl=0 fi -ac_fn_c_check_type "$LINENO" "struct __aio_sigset" "ac_cv_type_struct___aio_sigset" "#include -" -if test "x$ac_cv_type_struct___aio_sigset" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT___AIO_SIGSET 1 +#define HAVE_DECL_NET_IPV4_ROUTE_FLUSH $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ROUTE_MIN_DELAY" "ac_cv_have_decl_NET_IPV4_ROUTE_MIN_DELAY" " +#include +#include - +" +if test "x$ac_cv_have_decl_NET_IPV4_ROUTE_MIN_DELAY" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi - -CPPFLAGS="$saved_CPPFLAGS" - -for ac_header in linux/btrfs.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "linux/btrfs.h" "ac_cv_header_linux_btrfs_h" "$ac_includes_default" -if test "x$ac_cv_header_linux_btrfs_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LINUX_BTRFS_H 1 +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_NET_IPV4_ROUTE_MIN_DELAY $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ROUTE_MAX_DELAY" "ac_cv_have_decl_NET_IPV4_ROUTE_MAX_DELAY" " +#include +#include - ac_fn_c_check_member "$LINENO" "struct btrfs_ioctl_feature_flags" "compat_flags" "ac_cv_member_struct_btrfs_ioctl_feature_flags_compat_flags" " #include -#include " -if test "x$ac_cv_member_struct_btrfs_ioctl_feature_flags_compat_flags" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_ROUTE_MAX_DELAY" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BTRFS_IOCTL_FEATURE_FLAGS_COMPAT_FLAGS 1 +#define HAVE_DECL_NET_IPV4_ROUTE_MAX_DELAY $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ROUTE_GC_THRESH" "ac_cv_have_decl_NET_IPV4_ROUTE_GC_THRESH" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct btrfs_ioctl_fs_info_args" "nodesize" "ac_cv_member_struct_btrfs_ioctl_fs_info_args_nodesize" " #include -#include " -if test "x$ac_cv_member_struct_btrfs_ioctl_fs_info_args_nodesize" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_ROUTE_GC_THRESH" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BTRFS_IOCTL_FS_INFO_ARGS_NODESIZE 1 +#define HAVE_DECL_NET_IPV4_ROUTE_GC_THRESH $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ROUTE_MAX_SIZE" "ac_cv_have_decl_NET_IPV4_ROUTE_MAX_SIZE" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct btrfs_ioctl_defrag_range_args" "start" "ac_cv_member_struct_btrfs_ioctl_defrag_range_args_start" " #include -#include " -if test "x$ac_cv_member_struct_btrfs_ioctl_defrag_range_args_start" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_ROUTE_MAX_SIZE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BTRFS_IOCTL_DEFRAG_RANGE_ARGS_START 1 +#define HAVE_DECL_NET_IPV4_ROUTE_MAX_SIZE $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ROUTE_GC_MIN_INTERVAL" "ac_cv_have_decl_NET_IPV4_ROUTE_GC_MIN_INTERVAL" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct btrfs_ioctl_search_args_v2" "buf_size" "ac_cv_member_struct_btrfs_ioctl_search_args_v2_buf_size" " #include -#include " -if test "x$ac_cv_member_struct_btrfs_ioctl_search_args_v2_buf_size" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_ROUTE_GC_MIN_INTERVAL" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BTRFS_IOCTL_SEARCH_ARGS_V2_BUF_SIZE 1 +#define HAVE_DECL_NET_IPV4_ROUTE_GC_MIN_INTERVAL $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ROUTE_GC_TIMEOUT" "ac_cv_have_decl_NET_IPV4_ROUTE_GC_TIMEOUT" " +#include +#include - -fi -ac_fn_c_check_member "$LINENO" "struct btrfs_ioctl_logical_ino_args" "flags" "ac_cv_member_struct_btrfs_ioctl_logical_ino_args_flags" " #include -#include " -if test "x$ac_cv_member_struct_btrfs_ioctl_logical_ino_args_flags" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_ROUTE_GC_TIMEOUT" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_BTRFS_IOCTL_LOGICAL_INO_ARGS_FLAGS 1 +#define HAVE_DECL_NET_IPV4_ROUTE_GC_TIMEOUT $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ROUTE_GC_INTERVAL" "ac_cv_have_decl_NET_IPV4_ROUTE_GC_INTERVAL" " +#include +#include - -fi - - ac_fn_c_check_decl "$LINENO" "BTRFS_COMPRESS_NONE" "ac_cv_have_decl_BTRFS_COMPRESS_NONE" " #include -#include " -if test "x$ac_cv_have_decl_BTRFS_COMPRESS_NONE" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_ROUTE_GC_INTERVAL" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_BTRFS_COMPRESS_NONE $ac_have_decl +#define HAVE_DECL_NET_IPV4_ROUTE_GC_INTERVAL $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "BTRFS_COMPRESS_ZLIB" "ac_cv_have_decl_BTRFS_COMPRESS_ZLIB" " #include -#include +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ROUTE_REDIRECT_LOAD" "ac_cv_have_decl_NET_IPV4_ROUTE_REDIRECT_LOAD" " +#include +#include + " -if test "x$ac_cv_have_decl_BTRFS_COMPRESS_ZLIB" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_ROUTE_REDIRECT_LOAD" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_BTRFS_COMPRESS_ZLIB $ac_have_decl +#define HAVE_DECL_NET_IPV4_ROUTE_REDIRECT_LOAD $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "BTRFS_COMPRESS_LZO" "ac_cv_have_decl_BTRFS_COMPRESS_LZO" " #include -#include +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ROUTE_REDIRECT_NUMBER" "ac_cv_have_decl_NET_IPV4_ROUTE_REDIRECT_NUMBER" " +#include +#include + " -if test "x$ac_cv_have_decl_BTRFS_COMPRESS_LZO" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_ROUTE_REDIRECT_NUMBER" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_BTRFS_COMPRESS_LZO $ac_have_decl +#define HAVE_DECL_NET_IPV4_ROUTE_REDIRECT_NUMBER $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ROUTE_REDIRECT_SILENCE" "ac_cv_have_decl_NET_IPV4_ROUTE_REDIRECT_SILENCE" " +#include +#include +" +if test "x$ac_cv_have_decl_NET_IPV4_ROUTE_REDIRECT_SILENCE" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -done - +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_NET_IPV4_ROUTE_REDIRECT_SILENCE $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ROUTE_ERROR_COST" "ac_cv_have_decl_NET_IPV4_ROUTE_ERROR_COST" " +#include +#include -ac_fn_c_check_decl "$LINENO" "sys_errlist" "ac_cv_have_decl_sys_errlist" "$ac_includes_default" -if test "x$ac_cv_have_decl_sys_errlist" = xyes; then : +" +if test "x$ac_cv_have_decl_NET_IPV4_ROUTE_ERROR_COST" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_SYS_ERRLIST $ac_have_decl +#define HAVE_DECL_NET_IPV4_ROUTE_ERROR_COST $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ROUTE_ERROR_BURST" "ac_cv_have_decl_NET_IPV4_ROUTE_ERROR_BURST" " +#include +#include -ac_fn_c_check_decl "$LINENO" "PTRACE_PEEKUSER" "ac_cv_have_decl_PTRACE_PEEKUSER" "#include " -if test "x$ac_cv_have_decl_PTRACE_PEEKUSER" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_ROUTE_ERROR_BURST" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_PTRACE_PEEKUSER $ac_have_decl +#define HAVE_DECL_NET_IPV4_ROUTE_ERROR_BURST $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "PTRACE_POKEUSER" "ac_cv_have_decl_PTRACE_POKEUSER" "#include +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ROUTE_GC_ELASTICITY" "ac_cv_have_decl_NET_IPV4_ROUTE_GC_ELASTICITY" " +#include +#include + " -if test "x$ac_cv_have_decl_PTRACE_POKEUSER" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_ROUTE_GC_ELASTICITY" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_PTRACE_POKEUSER $ac_have_decl +#define HAVE_DECL_NET_IPV4_ROUTE_GC_ELASTICITY $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ROUTE_MTU_EXPIRES" "ac_cv_have_decl_NET_IPV4_ROUTE_MTU_EXPIRES" " +#include +#include - -ac_fn_c_check_decl "$LINENO" "P_PID" "ac_cv_have_decl_P_PID" "#include " -if test "x$ac_cv_have_decl_P_PID" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_ROUTE_MTU_EXPIRES" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_P_PID $ac_have_decl +#define HAVE_DECL_NET_IPV4_ROUTE_MTU_EXPIRES $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "P_PPID" "ac_cv_have_decl_P_PPID" "#include +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ROUTE_MIN_PMTU" "ac_cv_have_decl_NET_IPV4_ROUTE_MIN_PMTU" " +#include +#include + " -if test "x$ac_cv_have_decl_P_PPID" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_ROUTE_MIN_PMTU" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_P_PPID $ac_have_decl +#define HAVE_DECL_NET_IPV4_ROUTE_MIN_PMTU $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "P_PGID" "ac_cv_have_decl_P_PGID" "#include +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ROUTE_MIN_ADVMSS" "ac_cv_have_decl_NET_IPV4_ROUTE_MIN_ADVMSS" " +#include +#include + " -if test "x$ac_cv_have_decl_P_PGID" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_ROUTE_MIN_ADVMSS" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_P_PGID $ac_have_decl +#define HAVE_DECL_NET_IPV4_ROUTE_MIN_ADVMSS $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "P_SID" "ac_cv_have_decl_P_SID" "#include +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ROUTE_SECRET_INTERVAL" "ac_cv_have_decl_NET_IPV4_ROUTE_SECRET_INTERVAL" " +#include +#include + " -if test "x$ac_cv_have_decl_P_SID" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_ROUTE_SECRET_INTERVAL" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_P_SID $ac_have_decl +#define HAVE_DECL_NET_IPV4_ROUTE_SECRET_INTERVAL $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "P_CID" "ac_cv_have_decl_P_CID" "#include +ac_fn_c_check_decl "$LINENO" "NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS" "ac_cv_have_decl_NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS" " +#include +#include + " -if test "x$ac_cv_have_decl_P_CID" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_P_CID $ac_have_decl +#define HAVE_DECL_NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "P_UID" "ac_cv_have_decl_P_UID" "#include + + +ac_fn_c_check_decl "$LINENO" "NET_IPV6_CONF" "ac_cv_have_decl_NET_IPV6_CONF" " +#include +#include + " -if test "x$ac_cv_have_decl_P_UID" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV6_CONF" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_P_UID $ac_have_decl +#define HAVE_DECL_NET_IPV6_CONF $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "P_GID" "ac_cv_have_decl_P_GID" "#include +ac_fn_c_check_decl "$LINENO" "NET_IPV6_NEIGH" "ac_cv_have_decl_NET_IPV6_NEIGH" " +#include +#include + " -if test "x$ac_cv_have_decl_P_GID" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV6_NEIGH" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_P_GID $ac_have_decl +#define HAVE_DECL_NET_IPV6_NEIGH $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "P_ALL" "ac_cv_have_decl_P_ALL" "#include +ac_fn_c_check_decl "$LINENO" "NET_IPV6_ROUTE" "ac_cv_have_decl_NET_IPV6_ROUTE" " +#include +#include + " -if test "x$ac_cv_have_decl_P_ALL" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV6_ROUTE" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_P_ALL $ac_have_decl +#define HAVE_DECL_NET_IPV6_ROUTE $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "P_LWPID" "ac_cv_have_decl_P_LWPID" "#include +ac_fn_c_check_decl "$LINENO" "NET_IPV6_ICMP" "ac_cv_have_decl_NET_IPV6_ICMP" " +#include +#include + " -if test "x$ac_cv_have_decl_P_LWPID" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV6_ICMP" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_P_LWPID $ac_have_decl +#define HAVE_DECL_NET_IPV6_ICMP $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "NET_IPV6_BINDV6ONLY" "ac_cv_have_decl_NET_IPV6_BINDV6ONLY" " +#include +#include - -ac_fn_c_check_decl "$LINENO" "LO_FLAGS_READ_ONLY" "ac_cv_have_decl_LO_FLAGS_READ_ONLY" "#include " -if test "x$ac_cv_have_decl_LO_FLAGS_READ_ONLY" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV6_BINDV6ONLY" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_LO_FLAGS_READ_ONLY $ac_have_decl +#define HAVE_DECL_NET_IPV6_BINDV6ONLY $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "LO_FLAGS_USE_AOPS" "ac_cv_have_decl_LO_FLAGS_USE_AOPS" "#include +ac_fn_c_check_decl "$LINENO" "NET_IPV6_IP6FRAG_HIGH_THRESH" "ac_cv_have_decl_NET_IPV6_IP6FRAG_HIGH_THRESH" " +#include +#include + " -if test "x$ac_cv_have_decl_LO_FLAGS_USE_AOPS" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV6_IP6FRAG_HIGH_THRESH" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_LO_FLAGS_USE_AOPS $ac_have_decl +#define HAVE_DECL_NET_IPV6_IP6FRAG_HIGH_THRESH $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "LO_FLAGS_AUTOCLEAR" "ac_cv_have_decl_LO_FLAGS_AUTOCLEAR" "#include +ac_fn_c_check_decl "$LINENO" "NET_IPV6_IP6FRAG_LOW_THRESH" "ac_cv_have_decl_NET_IPV6_IP6FRAG_LOW_THRESH" " +#include +#include + " -if test "x$ac_cv_have_decl_LO_FLAGS_AUTOCLEAR" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV6_IP6FRAG_LOW_THRESH" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_LO_FLAGS_AUTOCLEAR $ac_have_decl +#define HAVE_DECL_NET_IPV6_IP6FRAG_LOW_THRESH $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "LO_FLAGS_PARTSCAN" "ac_cv_have_decl_LO_FLAGS_PARTSCAN" "#include +ac_fn_c_check_decl "$LINENO" "NET_IPV6_IP6FRAG_TIME" "ac_cv_have_decl_NET_IPV6_IP6FRAG_TIME" " +#include +#include + " -if test "x$ac_cv_have_decl_LO_FLAGS_PARTSCAN" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV6_IP6FRAG_TIME" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_LO_FLAGS_PARTSCAN $ac_have_decl +#define HAVE_DECL_NET_IPV6_IP6FRAG_TIME $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "LO_FLAGS_DIRECT_IO" "ac_cv_have_decl_LO_FLAGS_DIRECT_IO" "#include +ac_fn_c_check_decl "$LINENO" "NET_IPV6_IP6FRAG_SECRET_INTERVAL" "ac_cv_have_decl_NET_IPV6_IP6FRAG_SECRET_INTERVAL" " +#include +#include + " -if test "x$ac_cv_have_decl_LO_FLAGS_DIRECT_IO" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV6_IP6FRAG_SECRET_INTERVAL" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_LO_FLAGS_DIRECT_IO $ac_have_decl +#define HAVE_DECL_NET_IPV6_IP6FRAG_SECRET_INTERVAL $ac_have_decl _ACEOF - - -ac_fn_c_check_decl "$LINENO" "CTL_PROC" "ac_cv_have_decl_CTL_PROC" "#include +ac_fn_c_check_decl "$LINENO" "NET_IPV6_MLD_MAX_MSF" "ac_cv_have_decl_NET_IPV6_MLD_MAX_MSF" " +#include #include + " -if test "x$ac_cv_have_decl_CTL_PROC" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV6_MLD_MAX_MSF" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_CTL_PROC $ac_have_decl +#define HAVE_DECL_NET_IPV6_MLD_MAX_MSF $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "CTL_ARLAN" "ac_cv_have_decl_CTL_ARLAN" "#include + + +ac_fn_c_check_decl "$LINENO" "NET_IPV6_ROUTE_FLUSH" "ac_cv_have_decl_NET_IPV6_ROUTE_FLUSH" " +#include #include + " -if test "x$ac_cv_have_decl_CTL_ARLAN" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV6_ROUTE_FLUSH" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_CTL_ARLAN $ac_have_decl +#define HAVE_DECL_NET_IPV6_ROUTE_FLUSH $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "CTL_S390DBF" "ac_cv_have_decl_CTL_S390DBF" "#include +ac_fn_c_check_decl "$LINENO" "NET_IPV6_ROUTE_GC_THRESH" "ac_cv_have_decl_NET_IPV6_ROUTE_GC_THRESH" " +#include #include + " -if test "x$ac_cv_have_decl_CTL_S390DBF" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV6_ROUTE_GC_THRESH" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_CTL_S390DBF $ac_have_decl +#define HAVE_DECL_NET_IPV6_ROUTE_GC_THRESH $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "CTL_SUNRPC" "ac_cv_have_decl_CTL_SUNRPC" "#include +ac_fn_c_check_decl "$LINENO" "NET_IPV6_ROUTE_MAX_SIZE" "ac_cv_have_decl_NET_IPV6_ROUTE_MAX_SIZE" " +#include #include + " -if test "x$ac_cv_have_decl_CTL_SUNRPC" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV6_ROUTE_MAX_SIZE" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_CTL_SUNRPC $ac_have_decl +#define HAVE_DECL_NET_IPV6_ROUTE_MAX_SIZE $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "CTL_PM" "ac_cv_have_decl_CTL_PM" "#include +ac_fn_c_check_decl "$LINENO" "NET_IPV6_ROUTE_GC_MIN_INTERVAL" "ac_cv_have_decl_NET_IPV6_ROUTE_GC_MIN_INTERVAL" " +#include #include + " -if test "x$ac_cv_have_decl_CTL_PM" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV6_ROUTE_GC_MIN_INTERVAL" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_CTL_PM $ac_have_decl +#define HAVE_DECL_NET_IPV6_ROUTE_GC_MIN_INTERVAL $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "CTL_FRV" "ac_cv_have_decl_CTL_FRV" "#include +ac_fn_c_check_decl "$LINENO" "NET_IPV6_ROUTE_GC_TIMEOUT" "ac_cv_have_decl_NET_IPV6_ROUTE_GC_TIMEOUT" " +#include #include + " -if test "x$ac_cv_have_decl_CTL_FRV" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV6_ROUTE_GC_TIMEOUT" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_CTL_FRV $ac_have_decl +#define HAVE_DECL_NET_IPV6_ROUTE_GC_TIMEOUT $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "KERN_PRINTK_RATELIMIT" "ac_cv_have_decl_KERN_PRINTK_RATELIMIT" "#include +ac_fn_c_check_decl "$LINENO" "NET_IPV6_ROUTE_GC_INTERVAL" "ac_cv_have_decl_NET_IPV6_ROUTE_GC_INTERVAL" " +#include #include + " -if test "x$ac_cv_have_decl_KERN_PRINTK_RATELIMIT" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV6_ROUTE_GC_INTERVAL" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_KERN_PRINTK_RATELIMIT $ac_have_decl +#define HAVE_DECL_NET_IPV6_ROUTE_GC_INTERVAL $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "KERN_PRINTK_RATELIMIT_BURST" "ac_cv_have_decl_KERN_PRINTK_RATELIMIT_BURST" "#include +ac_fn_c_check_decl "$LINENO" "NET_IPV6_ROUTE_GC_ELASTICITY" "ac_cv_have_decl_NET_IPV6_ROUTE_GC_ELASTICITY" " +#include #include + " -if test "x$ac_cv_have_decl_KERN_PRINTK_RATELIMIT_BURST" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV6_ROUTE_GC_ELASTICITY" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_KERN_PRINTK_RATELIMIT_BURST $ac_have_decl +#define HAVE_DECL_NET_IPV6_ROUTE_GC_ELASTICITY $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "KERN_PTY" "ac_cv_have_decl_KERN_PTY" "#include +ac_fn_c_check_decl "$LINENO" "NET_IPV6_ROUTE_MTU_EXPIRES" "ac_cv_have_decl_NET_IPV6_ROUTE_MTU_EXPIRES" " +#include #include + " -if test "x$ac_cv_have_decl_KERN_PTY" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV6_ROUTE_MTU_EXPIRES" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_KERN_PTY $ac_have_decl +#define HAVE_DECL_NET_IPV6_ROUTE_MTU_EXPIRES $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "KERN_NGROUPS_MAX" "ac_cv_have_decl_KERN_NGROUPS_MAX" "#include +ac_fn_c_check_decl "$LINENO" "NET_IPV6_ROUTE_MIN_ADVMSS" "ac_cv_have_decl_NET_IPV6_ROUTE_MIN_ADVMSS" " +#include #include + " -if test "x$ac_cv_have_decl_KERN_NGROUPS_MAX" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV6_ROUTE_MIN_ADVMSS" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_KERN_NGROUPS_MAX $ac_have_decl +#define HAVE_DECL_NET_IPV6_ROUTE_MIN_ADVMSS $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "KERN_SPARC_SCONS_PWROFF" "ac_cv_have_decl_KERN_SPARC_SCONS_PWROFF" "#include +ac_fn_c_check_decl "$LINENO" "NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS" "ac_cv_have_decl_NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS" " +#include #include + " -if test "x$ac_cv_have_decl_KERN_SPARC_SCONS_PWROFF" = xyes; then : +if test "x$ac_cv_have_decl_NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_KERN_SPARC_SCONS_PWROFF $ac_have_decl +#define HAVE_DECL_NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "KERN_HZ_TIMER" "ac_cv_have_decl_KERN_HZ_TIMER" "#include + + +ac_fn_c_check_decl "$LINENO" "NET_UNIX_DESTROY_DELAY" "ac_cv_have_decl_NET_UNIX_DESTROY_DELAY" " +#include #include + " -if test "x$ac_cv_have_decl_KERN_HZ_TIMER" = xyes; then : +if test "x$ac_cv_have_decl_NET_UNIX_DESTROY_DELAY" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_KERN_HZ_TIMER $ac_have_decl +#define HAVE_DECL_NET_UNIX_DESTROY_DELAY $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "KERN_UNKNOWN_NMI_PANIC" "ac_cv_have_decl_KERN_UNKNOWN_NMI_PANIC" "#include +ac_fn_c_check_decl "$LINENO" "NET_UNIX_DELETE_DELAY" "ac_cv_have_decl_NET_UNIX_DELETE_DELAY" " +#include #include + " -if test "x$ac_cv_have_decl_KERN_UNKNOWN_NMI_PANIC" = xyes; then : +if test "x$ac_cv_have_decl_NET_UNIX_DELETE_DELAY" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_KERN_UNKNOWN_NMI_PANIC $ac_have_decl +#define HAVE_DECL_NET_UNIX_DELETE_DELAY $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "KERN_BOOTLOADER_TYPE" "ac_cv_have_decl_KERN_BOOTLOADER_TYPE" "#include +ac_fn_c_check_decl "$LINENO" "NET_UNIX_MAX_DGRAM_QLEN" "ac_cv_have_decl_NET_UNIX_MAX_DGRAM_QLEN" " +#include #include + " -if test "x$ac_cv_have_decl_KERN_BOOTLOADER_TYPE" = xyes; then : +if test "x$ac_cv_have_decl_NET_UNIX_MAX_DGRAM_QLEN" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_KERN_BOOTLOADER_TYPE $ac_have_decl +#define HAVE_DECL_NET_UNIX_MAX_DGRAM_QLEN $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "KERN_RANDOMIZE" "ac_cv_have_decl_KERN_RANDOMIZE" "#include + + +ac_fn_c_check_decl "$LINENO" "CTL_KERN" "ac_cv_have_decl_CTL_KERN" " +#include #include + " -if test "x$ac_cv_have_decl_KERN_RANDOMIZE" = xyes; then : +if test "x$ac_cv_have_decl_CTL_KERN" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_KERN_RANDOMIZE $ac_have_decl +#define HAVE_DECL_CTL_KERN $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "KERN_SETUID_DUMPABLE" "ac_cv_have_decl_KERN_SETUID_DUMPABLE" "#include +ac_fn_c_check_decl "$LINENO" "CTL_VM" "ac_cv_have_decl_CTL_VM" " +#include #include + " -if test "x$ac_cv_have_decl_KERN_SETUID_DUMPABLE" = xyes; then : +if test "x$ac_cv_have_decl_CTL_VM" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_KERN_SETUID_DUMPABLE $ac_have_decl +#define HAVE_DECL_CTL_VM $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "KERN_SPIN_RETRY" "ac_cv_have_decl_KERN_SPIN_RETRY" "#include +ac_fn_c_check_decl "$LINENO" "CTL_NET" "ac_cv_have_decl_CTL_NET" " +#include #include + " -if test "x$ac_cv_have_decl_KERN_SPIN_RETRY" = xyes; then : +if test "x$ac_cv_have_decl_CTL_NET" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_KERN_SPIN_RETRY $ac_have_decl +#define HAVE_DECL_CTL_NET $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "KERN_ACPI_VIDEO_FLAGS" "ac_cv_have_decl_KERN_ACPI_VIDEO_FLAGS" "#include +ac_fn_c_check_decl "$LINENO" "CTL_FS" "ac_cv_have_decl_CTL_FS" " +#include #include + " -if test "x$ac_cv_have_decl_KERN_ACPI_VIDEO_FLAGS" = xyes; then : +if test "x$ac_cv_have_decl_CTL_FS" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_KERN_ACPI_VIDEO_FLAGS $ac_have_decl +#define HAVE_DECL_CTL_FS $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "KERN_IA64_UNALIGNED" "ac_cv_have_decl_KERN_IA64_UNALIGNED" "#include +ac_fn_c_check_decl "$LINENO" "CTL_DEBUG" "ac_cv_have_decl_CTL_DEBUG" " +#include #include + " -if test "x$ac_cv_have_decl_KERN_IA64_UNALIGNED" = xyes; then : +if test "x$ac_cv_have_decl_CTL_DEBUG" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_KERN_IA64_UNALIGNED $ac_have_decl +#define HAVE_DECL_CTL_DEBUG $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "KERN_COMPAT_LOG" "ac_cv_have_decl_KERN_COMPAT_LOG" "#include +ac_fn_c_check_decl "$LINENO" "CTL_DEV" "ac_cv_have_decl_CTL_DEV" " +#include #include + " -if test "x$ac_cv_have_decl_KERN_COMPAT_LOG" = xyes; then : +if test "x$ac_cv_have_decl_CTL_DEV" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_KERN_COMPAT_LOG $ac_have_decl +#define HAVE_DECL_CTL_DEV $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "KERN_MAX_LOCK_DEPTH" "ac_cv_have_decl_KERN_MAX_LOCK_DEPTH" "#include +ac_fn_c_check_decl "$LINENO" "CTL_BUS" "ac_cv_have_decl_CTL_BUS" " +#include #include + " -if test "x$ac_cv_have_decl_KERN_MAX_LOCK_DEPTH" = xyes; then : +if test "x$ac_cv_have_decl_CTL_BUS" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_KERN_MAX_LOCK_DEPTH $ac_have_decl +#define HAVE_DECL_CTL_BUS $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "KERN_NMI_WATCHDOG" "ac_cv_have_decl_KERN_NMI_WATCHDOG" "#include +ac_fn_c_check_decl "$LINENO" "CTL_ABI" "ac_cv_have_decl_CTL_ABI" " +#include #include + " -if test "x$ac_cv_have_decl_KERN_NMI_WATCHDOG" = xyes; then : +if test "x$ac_cv_have_decl_CTL_ABI" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_KERN_NMI_WATCHDOG $ac_have_decl +#define HAVE_DECL_CTL_ABI $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "KERN_PANIC_ON_NMI" "ac_cv_have_decl_KERN_PANIC_ON_NMI" "#include +ac_fn_c_check_decl "$LINENO" "CTL_CPU" "ac_cv_have_decl_CTL_CPU" " +#include #include + " -if test "x$ac_cv_have_decl_KERN_PANIC_ON_NMI" = xyes; then : +if test "x$ac_cv_have_decl_CTL_CPU" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_KERN_PANIC_ON_NMI $ac_have_decl +#define HAVE_DECL_CTL_CPU $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "KERN_PANIC_ON_WARN" "ac_cv_have_decl_KERN_PANIC_ON_WARN" "#include +ac_fn_c_check_decl "$LINENO" "CTL_PROC" "ac_cv_have_decl_CTL_PROC" " +#include #include + " -if test "x$ac_cv_have_decl_KERN_PANIC_ON_WARN" = xyes; then : +if test "x$ac_cv_have_decl_CTL_PROC" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_KERN_PANIC_ON_WARN $ac_have_decl +#define HAVE_DECL_CTL_PROC $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "KERN_PANIC_PRINT" "ac_cv_have_decl_KERN_PANIC_PRINT" "#include +ac_fn_c_check_decl "$LINENO" "CTL_ARLAN" "ac_cv_have_decl_CTL_ARLAN" " +#include #include + " -if test "x$ac_cv_have_decl_KERN_PANIC_PRINT" = xyes; then : +if test "x$ac_cv_have_decl_CTL_ARLAN" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_KERN_PANIC_PRINT $ac_have_decl +#define HAVE_DECL_CTL_ARLAN $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_LLC" "ac_cv_have_decl_NET_LLC" "#include +ac_fn_c_check_decl "$LINENO" "CTL_S390DBF" "ac_cv_have_decl_CTL_S390DBF" " +#include #include + " -if test "x$ac_cv_have_decl_NET_LLC" = xyes; then : +if test "x$ac_cv_have_decl_CTL_S390DBF" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_LLC $ac_have_decl +#define HAVE_DECL_CTL_S390DBF $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_NETFILTER" "ac_cv_have_decl_NET_NETFILTER" "#include +ac_fn_c_check_decl "$LINENO" "CTL_SUNRPC" "ac_cv_have_decl_CTL_SUNRPC" " +#include #include + " -if test "x$ac_cv_have_decl_NET_NETFILTER" = xyes; then : +if test "x$ac_cv_have_decl_CTL_SUNRPC" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_NETFILTER $ac_have_decl +#define HAVE_DECL_CTL_SUNRPC $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_DCCP" "ac_cv_have_decl_NET_DCCP" "#include +ac_fn_c_check_decl "$LINENO" "CTL_PM" "ac_cv_have_decl_CTL_PM" " +#include #include + " -if test "x$ac_cv_have_decl_NET_DCCP" = xyes; then : +if test "x$ac_cv_have_decl_CTL_PM" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_DCCP $ac_have_decl +#define HAVE_DECL_CTL_PM $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_IRDA" "ac_cv_have_decl_NET_IRDA" "#include +ac_fn_c_check_decl "$LINENO" "CTL_FRV" "ac_cv_have_decl_CTL_FRV" " +#include #include + " -if test "x$ac_cv_have_decl_NET_IRDA" = xyes; then : +if test "x$ac_cv_have_decl_CTL_FRV" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_IRDA $ac_have_decl +#define HAVE_DECL_CTL_FRV $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_CORE_DESTROY_DELAY" "ac_cv_have_decl_NET_CORE_DESTROY_DELAY" "#include + + +ac_fn_c_check_decl "$LINENO" "VM_OVERCOMMIT_MEMORY" "ac_cv_have_decl_VM_OVERCOMMIT_MEMORY" " +#include #include + " -if test "x$ac_cv_have_decl_NET_CORE_DESTROY_DELAY" = xyes; then : +if test "x$ac_cv_have_decl_VM_OVERCOMMIT_MEMORY" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_CORE_DESTROY_DELAY $ac_have_decl +#define HAVE_DECL_VM_OVERCOMMIT_MEMORY $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_CORE_BUDGET" "ac_cv_have_decl_NET_CORE_BUDGET" "#include +ac_fn_c_check_decl "$LINENO" "VM_PAGE_CLUSTER" "ac_cv_have_decl_VM_PAGE_CLUSTER" " +#include #include + " -if test "x$ac_cv_have_decl_NET_CORE_BUDGET" = xyes; then : +if test "x$ac_cv_have_decl_VM_PAGE_CLUSTER" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_CORE_BUDGET $ac_have_decl +#define HAVE_DECL_VM_PAGE_CLUSTER $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_CORE_AEVENT_ETIME" "ac_cv_have_decl_NET_CORE_AEVENT_ETIME" "#include +ac_fn_c_check_decl "$LINENO" "VM_DIRTY_BACKGROUND" "ac_cv_have_decl_VM_DIRTY_BACKGROUND" " +#include #include + " -if test "x$ac_cv_have_decl_NET_CORE_AEVENT_ETIME" = xyes; then : +if test "x$ac_cv_have_decl_VM_DIRTY_BACKGROUND" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_CORE_AEVENT_ETIME $ac_have_decl +#define HAVE_DECL_VM_DIRTY_BACKGROUND $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_CORE_AEVENT_RSEQTH" "ac_cv_have_decl_NET_CORE_AEVENT_RSEQTH" "#include +ac_fn_c_check_decl "$LINENO" "VM_DIRTY_RATIO" "ac_cv_have_decl_VM_DIRTY_RATIO" " +#include #include + " -if test "x$ac_cv_have_decl_NET_CORE_AEVENT_RSEQTH" = xyes; then : +if test "x$ac_cv_have_decl_VM_DIRTY_RATIO" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_CORE_AEVENT_RSEQTH $ac_have_decl +#define HAVE_DECL_VM_DIRTY_RATIO $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_CORE_WARNINGS" "ac_cv_have_decl_NET_CORE_WARNINGS" "#include +ac_fn_c_check_decl "$LINENO" "VM_DIRTY_WB_CS" "ac_cv_have_decl_VM_DIRTY_WB_CS" " +#include #include + " -if test "x$ac_cv_have_decl_NET_CORE_WARNINGS" = xyes; then : +if test "x$ac_cv_have_decl_VM_DIRTY_WB_CS" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_CORE_WARNINGS $ac_have_decl +#define HAVE_DECL_VM_DIRTY_WB_CS $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_IPV4_IGMP_MAX_MSF" "ac_cv_have_decl_NET_IPV4_IGMP_MAX_MSF" "#include +ac_fn_c_check_decl "$LINENO" "VM_DIRTY_EXPIRE_CS" "ac_cv_have_decl_VM_DIRTY_EXPIRE_CS" " +#include #include + " -if test "x$ac_cv_have_decl_NET_IPV4_IGMP_MAX_MSF" = xyes; then : +if test "x$ac_cv_have_decl_VM_DIRTY_EXPIRE_CS" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_IPV4_IGMP_MAX_MSF $ac_have_decl +#define HAVE_DECL_VM_DIRTY_EXPIRE_CS $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_TCP_NO_METRICS_SAVE" "ac_cv_have_decl_NET_TCP_NO_METRICS_SAVE" "#include +ac_fn_c_check_decl "$LINENO" "VM_NR_PDFLUSH_THREADS" "ac_cv_have_decl_VM_NR_PDFLUSH_THREADS" " +#include #include + " -if test "x$ac_cv_have_decl_NET_TCP_NO_METRICS_SAVE" = xyes; then : +if test "x$ac_cv_have_decl_VM_NR_PDFLUSH_THREADS" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_TCP_NO_METRICS_SAVE $ac_have_decl +#define HAVE_DECL_VM_NR_PDFLUSH_THREADS $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_TCP_DEFAULT_WIN_SCALE" "ac_cv_have_decl_NET_TCP_DEFAULT_WIN_SCALE" "#include +ac_fn_c_check_decl "$LINENO" "VM_OVERCOMMIT_RATIO" "ac_cv_have_decl_VM_OVERCOMMIT_RATIO" " +#include #include + " -if test "x$ac_cv_have_decl_NET_TCP_DEFAULT_WIN_SCALE" = xyes; then : +if test "x$ac_cv_have_decl_VM_OVERCOMMIT_RATIO" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_TCP_DEFAULT_WIN_SCALE $ac_have_decl +#define HAVE_DECL_VM_OVERCOMMIT_RATIO $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_TCP_MODERATE_RCVBUF" "ac_cv_have_decl_NET_TCP_MODERATE_RCVBUF" "#include +ac_fn_c_check_decl "$LINENO" "VM_PAGEBUF" "ac_cv_have_decl_VM_PAGEBUF" " +#include #include + " -if test "x$ac_cv_have_decl_NET_TCP_MODERATE_RCVBUF" = xyes; then : +if test "x$ac_cv_have_decl_VM_PAGEBUF" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_TCP_MODERATE_RCVBUF $ac_have_decl +#define HAVE_DECL_VM_PAGEBUF $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_TCP_TSO_WIN_DIVISOR" "ac_cv_have_decl_NET_TCP_TSO_WIN_DIVISOR" "#include +ac_fn_c_check_decl "$LINENO" "VM_HUGETLB_PAGES" "ac_cv_have_decl_VM_HUGETLB_PAGES" " +#include #include + " -if test "x$ac_cv_have_decl_NET_TCP_TSO_WIN_DIVISOR" = xyes; then : +if test "x$ac_cv_have_decl_VM_HUGETLB_PAGES" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_TCP_TSO_WIN_DIVISOR $ac_have_decl +#define HAVE_DECL_VM_HUGETLB_PAGES $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_TCP_BIC_BETA" "ac_cv_have_decl_NET_TCP_BIC_BETA" "#include +ac_fn_c_check_decl "$LINENO" "VM_SWAPPINESS" "ac_cv_have_decl_VM_SWAPPINESS" " +#include #include + " -if test "x$ac_cv_have_decl_NET_TCP_BIC_BETA" = xyes; then : +if test "x$ac_cv_have_decl_VM_SWAPPINESS" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_TCP_BIC_BETA $ac_have_decl +#define HAVE_DECL_VM_SWAPPINESS $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR" "ac_cv_have_decl_NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR" "#include +ac_fn_c_check_decl "$LINENO" "VM_LOWMEM_RESERVE_RATIO" "ac_cv_have_decl_VM_LOWMEM_RESERVE_RATIO" " +#include #include + " -if test "x$ac_cv_have_decl_NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR" = xyes; then : +if test "x$ac_cv_have_decl_VM_LOWMEM_RESERVE_RATIO" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR $ac_have_decl +#define HAVE_DECL_VM_LOWMEM_RESERVE_RATIO $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_TCP_CONG_CONTROL" "ac_cv_have_decl_NET_TCP_CONG_CONTROL" "#include +ac_fn_c_check_decl "$LINENO" "VM_MIN_FREE_KBYTES" "ac_cv_have_decl_VM_MIN_FREE_KBYTES" " +#include #include + " -if test "x$ac_cv_have_decl_NET_TCP_CONG_CONTROL" = xyes; then : +if test "x$ac_cv_have_decl_VM_MIN_FREE_KBYTES" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_TCP_CONG_CONTROL $ac_have_decl +#define HAVE_DECL_VM_MIN_FREE_KBYTES $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_TCP_ABC" "ac_cv_have_decl_NET_TCP_ABC" "#include +ac_fn_c_check_decl "$LINENO" "VM_MAX_MAP_COUNT" "ac_cv_have_decl_VM_MAX_MAP_COUNT" " +#include #include + " -if test "x$ac_cv_have_decl_NET_TCP_ABC" = xyes; then : +if test "x$ac_cv_have_decl_VM_MAX_MAP_COUNT" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_TCP_ABC $ac_have_decl +#define HAVE_DECL_VM_MAX_MAP_COUNT $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_IPV4_IPFRAG_MAX_DIST" "ac_cv_have_decl_NET_IPV4_IPFRAG_MAX_DIST" "#include +ac_fn_c_check_decl "$LINENO" "VM_LAPTOP_MODE" "ac_cv_have_decl_VM_LAPTOP_MODE" " +#include #include + " -if test "x$ac_cv_have_decl_NET_IPV4_IPFRAG_MAX_DIST" = xyes; then : +if test "x$ac_cv_have_decl_VM_LAPTOP_MODE" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_IPV4_IPFRAG_MAX_DIST $ac_have_decl +#define HAVE_DECL_VM_LAPTOP_MODE $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_TCP_MTU_PROBING" "ac_cv_have_decl_NET_TCP_MTU_PROBING" "#include +ac_fn_c_check_decl "$LINENO" "VM_BLOCK_DUMP" "ac_cv_have_decl_VM_BLOCK_DUMP" " +#include #include + " -if test "x$ac_cv_have_decl_NET_TCP_MTU_PROBING" = xyes; then : +if test "x$ac_cv_have_decl_VM_BLOCK_DUMP" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_TCP_MTU_PROBING $ac_have_decl +#define HAVE_DECL_VM_BLOCK_DUMP $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_TCP_BASE_MSS" "ac_cv_have_decl_NET_TCP_BASE_MSS" "#include +ac_fn_c_check_decl "$LINENO" "VM_HUGETLB_GROUP" "ac_cv_have_decl_VM_HUGETLB_GROUP" " +#include #include + " -if test "x$ac_cv_have_decl_NET_TCP_BASE_MSS" = xyes; then : +if test "x$ac_cv_have_decl_VM_HUGETLB_GROUP" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_TCP_BASE_MSS $ac_have_decl +#define HAVE_DECL_VM_HUGETLB_GROUP $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS" "ac_cv_have_decl_NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS" "#include +ac_fn_c_check_decl "$LINENO" "VM_VFS_CACHE_PRESSURE" "ac_cv_have_decl_VM_VFS_CACHE_PRESSURE" " +#include #include + " -if test "x$ac_cv_have_decl_NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS" = xyes; then : +if test "x$ac_cv_have_decl_VM_VFS_CACHE_PRESSURE" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS $ac_have_decl +#define HAVE_DECL_VM_VFS_CACHE_PRESSURE $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_TCP_DMA_COPYBREAK" "ac_cv_have_decl_NET_TCP_DMA_COPYBREAK" "#include +ac_fn_c_check_decl "$LINENO" "VM_LEGACY_VA_LAYOUT" "ac_cv_have_decl_VM_LEGACY_VA_LAYOUT" " +#include #include + " -if test "x$ac_cv_have_decl_NET_TCP_DMA_COPYBREAK" = xyes; then : +if test "x$ac_cv_have_decl_VM_LEGACY_VA_LAYOUT" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_TCP_DMA_COPYBREAK $ac_have_decl +#define HAVE_DECL_VM_LEGACY_VA_LAYOUT $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_TCP_SLOW_START_AFTER_IDLE" "ac_cv_have_decl_NET_TCP_SLOW_START_AFTER_IDLE" "#include +ac_fn_c_check_decl "$LINENO" "VM_SWAP_TOKEN_TIMEOUT" "ac_cv_have_decl_VM_SWAP_TOKEN_TIMEOUT" " +#include #include + " -if test "x$ac_cv_have_decl_NET_TCP_SLOW_START_AFTER_IDLE" = xyes; then : +if test "x$ac_cv_have_decl_VM_SWAP_TOKEN_TIMEOUT" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_TCP_SLOW_START_AFTER_IDLE $ac_have_decl +#define HAVE_DECL_VM_SWAP_TOKEN_TIMEOUT $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_CIPSOV4_CACHE_ENABLE" "ac_cv_have_decl_NET_CIPSOV4_CACHE_ENABLE" "#include -#include + + +ac_fn_c_check_decl "$LINENO" "V4L2_BUF_TYPE_VIDEO_CAPTURE" "ac_cv_have_decl_V4L2_BUF_TYPE_VIDEO_CAPTURE" " +#include +#include +#include +#include + " -if test "x$ac_cv_have_decl_NET_CIPSOV4_CACHE_ENABLE" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_BUF_TYPE_VIDEO_CAPTURE" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_CIPSOV4_CACHE_ENABLE $ac_have_decl +#define HAVE_DECL_V4L2_BUF_TYPE_VIDEO_CAPTURE $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_CIPSOV4_CACHE_BUCKET_SIZE" "ac_cv_have_decl_NET_CIPSOV4_CACHE_BUCKET_SIZE" "#include -#include +ac_fn_c_check_decl "$LINENO" "V4L2_BUF_TYPE_VIDEO_OUTPUT" "ac_cv_have_decl_V4L2_BUF_TYPE_VIDEO_OUTPUT" " +#include +#include +#include +#include + " -if test "x$ac_cv_have_decl_NET_CIPSOV4_CACHE_BUCKET_SIZE" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_BUF_TYPE_VIDEO_OUTPUT" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_CIPSOV4_CACHE_BUCKET_SIZE $ac_have_decl +#define HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_CIPSOV4_RBM_OPTFMT" "ac_cv_have_decl_NET_CIPSOV4_RBM_OPTFMT" "#include -#include +ac_fn_c_check_decl "$LINENO" "V4L2_BUF_TYPE_VIDEO_OVERLAY" "ac_cv_have_decl_V4L2_BUF_TYPE_VIDEO_OVERLAY" " +#include +#include +#include +#include + " -if test "x$ac_cv_have_decl_NET_CIPSOV4_RBM_OPTFMT" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_BUF_TYPE_VIDEO_OVERLAY" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_CIPSOV4_RBM_OPTFMT $ac_have_decl +#define HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OVERLAY $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_CIPSOV4_RBM_STRICTVALID" "ac_cv_have_decl_NET_CIPSOV4_RBM_STRICTVALID" "#include -#include +ac_fn_c_check_decl "$LINENO" "V4L2_BUF_TYPE_VBI_CAPTURE" "ac_cv_have_decl_V4L2_BUF_TYPE_VBI_CAPTURE" " +#include +#include +#include +#include + " -if test "x$ac_cv_have_decl_NET_CIPSOV4_RBM_STRICTVALID" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_BUF_TYPE_VBI_CAPTURE" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_CIPSOV4_RBM_STRICTVALID $ac_have_decl +#define HAVE_DECL_V4L2_BUF_TYPE_VBI_CAPTURE $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_TCP_AVAIL_CONG_CONTROL" "ac_cv_have_decl_NET_TCP_AVAIL_CONG_CONTROL" "#include -#include +ac_fn_c_check_decl "$LINENO" "V4L2_BUF_TYPE_VBI_OUTPUT" "ac_cv_have_decl_V4L2_BUF_TYPE_VBI_OUTPUT" " +#include +#include +#include +#include + " -if test "x$ac_cv_have_decl_NET_TCP_AVAIL_CONG_CONTROL" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_BUF_TYPE_VBI_OUTPUT" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_TCP_AVAIL_CONG_CONTROL $ac_have_decl +#define HAVE_DECL_V4L2_BUF_TYPE_VBI_OUTPUT $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_TCP_ALLOWED_CONG_CONTROL" "ac_cv_have_decl_NET_TCP_ALLOWED_CONG_CONTROL" "#include -#include +ac_fn_c_check_decl "$LINENO" "V4L2_BUF_TYPE_SLICED_VBI_CAPTURE" "ac_cv_have_decl_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE" " +#include +#include +#include +#include + " -if test "x$ac_cv_have_decl_NET_TCP_ALLOWED_CONG_CONTROL" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_TCP_ALLOWED_CONG_CONTROL $ac_have_decl +#define HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_TCP_MAX_SSTHRESH" "ac_cv_have_decl_NET_TCP_MAX_SSTHRESH" "#include -#include +ac_fn_c_check_decl "$LINENO" "V4L2_BUF_TYPE_SLICED_VBI_OUTPUT" "ac_cv_have_decl_V4L2_BUF_TYPE_SLICED_VBI_OUTPUT" " +#include +#include +#include +#include + " -if test "x$ac_cv_have_decl_NET_TCP_MAX_SSTHRESH" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_BUF_TYPE_SLICED_VBI_OUTPUT" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_TCP_MAX_SSTHRESH $ac_have_decl +#define HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_OUTPUT $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_TCP_FRTO_RESPONSE" "ac_cv_have_decl_NET_TCP_FRTO_RESPONSE" "#include -#include +ac_fn_c_check_decl "$LINENO" "V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY" "ac_cv_have_decl_V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY" " +#include +#include +#include +#include + " -if test "x$ac_cv_have_decl_NET_TCP_FRTO_RESPONSE" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_TCP_FRTO_RESPONSE $ac_have_decl +#define HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS" "ac_cv_have_decl_NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS" "#include -#include +ac_fn_c_check_decl "$LINENO" "V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE" "ac_cv_have_decl_V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE" " +#include +#include +#include +#include + " -if test "x$ac_cv_have_decl_NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS $ac_have_decl +#define HAVE_DECL_V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_IPV4_CONF_FORCE_IGMP_VERSION" "ac_cv_have_decl_NET_IPV4_CONF_FORCE_IGMP_VERSION" "#include -#include +ac_fn_c_check_decl "$LINENO" "V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE" "ac_cv_have_decl_V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE" " +#include +#include +#include +#include + " -if test "x$ac_cv_have_decl_NET_IPV4_CONF_FORCE_IGMP_VERSION" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_IPV4_CONF_FORCE_IGMP_VERSION $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "NET_IPV4_CONF_ARP_ANNOUNCE" "ac_cv_have_decl_NET_IPV4_CONF_ARP_ANNOUNCE" "#include -#include +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE $ac_have_decl +_ACEOF +ac_fn_c_check_decl "$LINENO" "V4L2_BUF_TYPE_SDR_CAPTURE" "ac_cv_have_decl_V4L2_BUF_TYPE_SDR_CAPTURE" " +#include +#include +#include +#include + " -if test "x$ac_cv_have_decl_NET_IPV4_CONF_ARP_ANNOUNCE" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_BUF_TYPE_SDR_CAPTURE" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_IPV4_CONF_ARP_ANNOUNCE $ac_have_decl +#define HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_IPV4_CONF_ARP_IGNORE" "ac_cv_have_decl_NET_IPV4_CONF_ARP_IGNORE" "#include -#include +ac_fn_c_check_decl "$LINENO" "V4L2_BUF_TYPE_SDR_OUTPUT" "ac_cv_have_decl_V4L2_BUF_TYPE_SDR_OUTPUT" " +#include +#include +#include +#include + " -if test "x$ac_cv_have_decl_NET_IPV4_CONF_ARP_IGNORE" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_BUF_TYPE_SDR_OUTPUT" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_IPV4_CONF_ARP_IGNORE $ac_have_decl +#define HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_IPV4_CONF_PROMOTE_SECONDARIES" "ac_cv_have_decl_NET_IPV4_CONF_PROMOTE_SECONDARIES" "#include -#include +ac_fn_c_check_decl "$LINENO" "V4L2_BUF_TYPE_META_CAPTURE" "ac_cv_have_decl_V4L2_BUF_TYPE_META_CAPTURE" " +#include +#include +#include +#include + " -if test "x$ac_cv_have_decl_NET_IPV4_CONF_PROMOTE_SECONDARIES" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_BUF_TYPE_META_CAPTURE" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_IPV4_CONF_PROMOTE_SECONDARIES $ac_have_decl +#define HAVE_DECL_V4L2_BUF_TYPE_META_CAPTURE $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_IPV4_CONF_ARP_ACCEPT" "ac_cv_have_decl_NET_IPV4_CONF_ARP_ACCEPT" "#include -#include +ac_fn_c_check_decl "$LINENO" "V4L2_BUF_TYPE_META_OUTPUT" "ac_cv_have_decl_V4L2_BUF_TYPE_META_OUTPUT" " +#include +#include +#include +#include + " -if test "x$ac_cv_have_decl_NET_IPV4_CONF_ARP_ACCEPT" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_BUF_TYPE_META_OUTPUT" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_IPV4_CONF_ARP_ACCEPT $ac_have_decl +#define HAVE_DECL_V4L2_BUF_TYPE_META_OUTPUT $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_IPV4_CONF_ARP_NOTIFY" "ac_cv_have_decl_NET_IPV4_CONF_ARP_NOTIFY" "#include -#include + + +ac_fn_c_check_decl "$LINENO" "V4L2_COLORSPACE_DEFAULT" "ac_cv_have_decl_V4L2_COLORSPACE_DEFAULT" " +#include +#include +#include +#include + " -if test "x$ac_cv_have_decl_NET_IPV4_CONF_ARP_NOTIFY" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_COLORSPACE_DEFAULT" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_IPV4_CONF_ARP_NOTIFY $ac_have_decl +#define HAVE_DECL_V4L2_COLORSPACE_DEFAULT $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_IPV6_MLD_MAX_MSF" "ac_cv_have_decl_NET_IPV6_MLD_MAX_MSF" "#include -#include +ac_fn_c_check_decl "$LINENO" "V4L2_COLORSPACE_SMPTE170M" "ac_cv_have_decl_V4L2_COLORSPACE_SMPTE170M" " +#include +#include +#include +#include + " -if test "x$ac_cv_have_decl_NET_IPV6_MLD_MAX_MSF" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_COLORSPACE_SMPTE170M" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_IPV6_MLD_MAX_MSF $ac_have_decl +#define HAVE_DECL_V4L2_COLORSPACE_SMPTE170M $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS" "ac_cv_have_decl_NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS" "#include -#include +ac_fn_c_check_decl "$LINENO" "V4L2_COLORSPACE_SMPTE240M" "ac_cv_have_decl_V4L2_COLORSPACE_SMPTE240M" " +#include +#include +#include +#include + " -if test "x$ac_cv_have_decl_NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_COLORSPACE_SMPTE240M" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS $ac_have_decl +#define HAVE_DECL_V4L2_COLORSPACE_SMPTE240M $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "VM_MAX_MAP_COUNT" "ac_cv_have_decl_VM_MAX_MAP_COUNT" "#include -#include +ac_fn_c_check_decl "$LINENO" "V4L2_COLORSPACE_REC709" "ac_cv_have_decl_V4L2_COLORSPACE_REC709" " +#include +#include +#include +#include + " -if test "x$ac_cv_have_decl_VM_MAX_MAP_COUNT" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_COLORSPACE_REC709" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_VM_MAX_MAP_COUNT $ac_have_decl +#define HAVE_DECL_V4L2_COLORSPACE_REC709 $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "VM_LAPTOP_MODE" "ac_cv_have_decl_VM_LAPTOP_MODE" "#include -#include +ac_fn_c_check_decl "$LINENO" "V4L2_COLORSPACE_BT878" "ac_cv_have_decl_V4L2_COLORSPACE_BT878" " +#include +#include +#include +#include + " -if test "x$ac_cv_have_decl_VM_LAPTOP_MODE" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_COLORSPACE_BT878" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_VM_LAPTOP_MODE $ac_have_decl +#define HAVE_DECL_V4L2_COLORSPACE_BT878 $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "VM_BLOCK_DUMP" "ac_cv_have_decl_VM_BLOCK_DUMP" "#include -#include +ac_fn_c_check_decl "$LINENO" "V4L2_COLORSPACE_470_SYSTEM_M" "ac_cv_have_decl_V4L2_COLORSPACE_470_SYSTEM_M" " +#include +#include +#include +#include + " -if test "x$ac_cv_have_decl_VM_BLOCK_DUMP" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_COLORSPACE_470_SYSTEM_M" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_VM_BLOCK_DUMP $ac_have_decl +#define HAVE_DECL_V4L2_COLORSPACE_470_SYSTEM_M $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "VM_HUGETLB_GROUP" "ac_cv_have_decl_VM_HUGETLB_GROUP" "#include -#include +ac_fn_c_check_decl "$LINENO" "V4L2_COLORSPACE_470_SYSTEM_BG" "ac_cv_have_decl_V4L2_COLORSPACE_470_SYSTEM_BG" " +#include +#include +#include +#include + " -if test "x$ac_cv_have_decl_VM_HUGETLB_GROUP" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_COLORSPACE_470_SYSTEM_BG" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_VM_HUGETLB_GROUP $ac_have_decl +#define HAVE_DECL_V4L2_COLORSPACE_470_SYSTEM_BG $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "VM_VFS_CACHE_PRESSURE" "ac_cv_have_decl_VM_VFS_CACHE_PRESSURE" "#include -#include +ac_fn_c_check_decl "$LINENO" "V4L2_COLORSPACE_JPEG" "ac_cv_have_decl_V4L2_COLORSPACE_JPEG" " +#include +#include +#include +#include + " -if test "x$ac_cv_have_decl_VM_VFS_CACHE_PRESSURE" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_COLORSPACE_JPEG" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_VM_VFS_CACHE_PRESSURE $ac_have_decl +#define HAVE_DECL_V4L2_COLORSPACE_JPEG $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "VM_LEGACY_VA_LAYOUT" "ac_cv_have_decl_VM_LEGACY_VA_LAYOUT" "#include -#include +ac_fn_c_check_decl "$LINENO" "V4L2_COLORSPACE_SRGB" "ac_cv_have_decl_V4L2_COLORSPACE_SRGB" " +#include +#include +#include +#include + " -if test "x$ac_cv_have_decl_VM_LEGACY_VA_LAYOUT" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_COLORSPACE_SRGB" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_VM_LEGACY_VA_LAYOUT $ac_have_decl +#define HAVE_DECL_V4L2_COLORSPACE_SRGB $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "VM_SWAP_TOKEN_TIMEOUT" "ac_cv_have_decl_VM_SWAP_TOKEN_TIMEOUT" "#include -#include +ac_fn_c_check_decl "$LINENO" "V4L2_COLORSPACE_OPRGB" "ac_cv_have_decl_V4L2_COLORSPACE_OPRGB" " +#include +#include +#include +#include + " -if test "x$ac_cv_have_decl_VM_SWAP_TOKEN_TIMEOUT" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_COLORSPACE_OPRGB" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_VM_SWAP_TOKEN_TIMEOUT $ac_have_decl +#define HAVE_DECL_V4L2_COLORSPACE_OPRGB $ac_have_decl _ACEOF - - -ac_fn_c_check_decl "$LINENO" "V4L2_FIELD_ANY" "ac_cv_have_decl_V4L2_FIELD_ANY" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_COLORSPACE_BT2020" "ac_cv_have_decl_V4L2_COLORSPACE_BT2020" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_FIELD_ANY" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_COLORSPACE_BT2020" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_FIELD_ANY $ac_have_decl +#define HAVE_DECL_V4L2_COLORSPACE_BT2020 $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_FIELD_NONE" "ac_cv_have_decl_V4L2_FIELD_NONE" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_COLORSPACE_RAW" "ac_cv_have_decl_V4L2_COLORSPACE_RAW" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_FIELD_NONE" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_COLORSPACE_RAW" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_FIELD_NONE $ac_have_decl +#define HAVE_DECL_V4L2_COLORSPACE_RAW $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_FIELD_TOP" "ac_cv_have_decl_V4L2_FIELD_TOP" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_COLORSPACE_DCI_P3" "ac_cv_have_decl_V4L2_COLORSPACE_DCI_P3" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_FIELD_TOP" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_COLORSPACE_DCI_P3" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_FIELD_TOP $ac_have_decl +#define HAVE_DECL_V4L2_COLORSPACE_DCI_P3 $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_FIELD_BOTTOM" "ac_cv_have_decl_V4L2_FIELD_BOTTOM" "#include + + +ac_fn_c_check_decl "$LINENO" "V4L2_CTRL_TYPE_INTEGER" "ac_cv_have_decl_V4L2_CTRL_TYPE_INTEGER" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_FIELD_BOTTOM" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_CTRL_TYPE_INTEGER" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_FIELD_BOTTOM $ac_have_decl +#define HAVE_DECL_V4L2_CTRL_TYPE_INTEGER $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_FIELD_INTERLACED" "ac_cv_have_decl_V4L2_FIELD_INTERLACED" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_CTRL_TYPE_BOOLEAN" "ac_cv_have_decl_V4L2_CTRL_TYPE_BOOLEAN" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_FIELD_INTERLACED" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_CTRL_TYPE_BOOLEAN" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_FIELD_INTERLACED $ac_have_decl +#define HAVE_DECL_V4L2_CTRL_TYPE_BOOLEAN $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_FIELD_SEQ_TB" "ac_cv_have_decl_V4L2_FIELD_SEQ_TB" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_CTRL_TYPE_MENU" "ac_cv_have_decl_V4L2_CTRL_TYPE_MENU" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_FIELD_SEQ_TB" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_CTRL_TYPE_MENU" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_FIELD_SEQ_TB $ac_have_decl +#define HAVE_DECL_V4L2_CTRL_TYPE_MENU $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_FIELD_SEQ_BT" "ac_cv_have_decl_V4L2_FIELD_SEQ_BT" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_CTRL_TYPE_BUTTON" "ac_cv_have_decl_V4L2_CTRL_TYPE_BUTTON" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_FIELD_SEQ_BT" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_CTRL_TYPE_BUTTON" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_FIELD_SEQ_BT $ac_have_decl +#define HAVE_DECL_V4L2_CTRL_TYPE_BUTTON $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_FIELD_ALTERNATE" "ac_cv_have_decl_V4L2_FIELD_ALTERNATE" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_CTRL_TYPE_INTEGER64" "ac_cv_have_decl_V4L2_CTRL_TYPE_INTEGER64" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_FIELD_ALTERNATE" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_CTRL_TYPE_INTEGER64" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_FIELD_ALTERNATE $ac_have_decl +#define HAVE_DECL_V4L2_CTRL_TYPE_INTEGER64 $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_FIELD_INTERLACED_TB" "ac_cv_have_decl_V4L2_FIELD_INTERLACED_TB" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_CTRL_TYPE_CTRL_CLASS" "ac_cv_have_decl_V4L2_CTRL_TYPE_CTRL_CLASS" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_FIELD_INTERLACED_TB" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_CTRL_TYPE_CTRL_CLASS" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_FIELD_INTERLACED_TB $ac_have_decl +#define HAVE_DECL_V4L2_CTRL_TYPE_CTRL_CLASS $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_FIELD_INTERLACED_BT" "ac_cv_have_decl_V4L2_FIELD_INTERLACED_BT" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_CTRL_TYPE_STRING" "ac_cv_have_decl_V4L2_CTRL_TYPE_STRING" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_FIELD_INTERLACED_BT" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_CTRL_TYPE_STRING" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_FIELD_INTERLACED_BT $ac_have_decl +#define HAVE_DECL_V4L2_CTRL_TYPE_STRING $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_BUF_TYPE_VIDEO_CAPTURE" "ac_cv_have_decl_V4L2_BUF_TYPE_VIDEO_CAPTURE" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_CTRL_TYPE_BITMASK" "ac_cv_have_decl_V4L2_CTRL_TYPE_BITMASK" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_BUF_TYPE_VIDEO_CAPTURE" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_CTRL_TYPE_BITMASK" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_BUF_TYPE_VIDEO_CAPTURE $ac_have_decl +#define HAVE_DECL_V4L2_CTRL_TYPE_BITMASK $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE" "ac_cv_have_decl_V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_CTRL_TYPE_INTEGER_MENU" "ac_cv_have_decl_V4L2_CTRL_TYPE_INTEGER_MENU" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_CTRL_TYPE_INTEGER_MENU" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE $ac_have_decl +#define HAVE_DECL_V4L2_CTRL_TYPE_INTEGER_MENU $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_BUF_TYPE_VIDEO_OUTPUT" "ac_cv_have_decl_V4L2_BUF_TYPE_VIDEO_OUTPUT" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_CTRL_TYPE_U8" "ac_cv_have_decl_V4L2_CTRL_TYPE_U8" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_BUF_TYPE_VIDEO_OUTPUT" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_CTRL_TYPE_U8" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT $ac_have_decl +#define HAVE_DECL_V4L2_CTRL_TYPE_U8 $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE" "ac_cv_have_decl_V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_CTRL_TYPE_U16" "ac_cv_have_decl_V4L2_CTRL_TYPE_U16" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_CTRL_TYPE_U16" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE $ac_have_decl +#define HAVE_DECL_V4L2_CTRL_TYPE_U16 $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_BUF_TYPE_VIDEO_OVERLAY" "ac_cv_have_decl_V4L2_BUF_TYPE_VIDEO_OVERLAY" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_CTRL_TYPE_U32" "ac_cv_have_decl_V4L2_CTRL_TYPE_U32" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_BUF_TYPE_VIDEO_OVERLAY" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_CTRL_TYPE_U32" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OVERLAY $ac_have_decl +#define HAVE_DECL_V4L2_CTRL_TYPE_U32 $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_BUF_TYPE_VBI_CAPTURE" "ac_cv_have_decl_V4L2_BUF_TYPE_VBI_CAPTURE" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_CTRL_TYPE_AREA" "ac_cv_have_decl_V4L2_CTRL_TYPE_AREA" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_BUF_TYPE_VBI_CAPTURE" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_CTRL_TYPE_AREA" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_BUF_TYPE_VBI_CAPTURE $ac_have_decl +#define HAVE_DECL_V4L2_CTRL_TYPE_AREA $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_BUF_TYPE_VBI_OUTPUT" "ac_cv_have_decl_V4L2_BUF_TYPE_VBI_OUTPUT" "#include + + +ac_fn_c_check_decl "$LINENO" "V4L2_FIELD_ANY" "ac_cv_have_decl_V4L2_FIELD_ANY" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_BUF_TYPE_VBI_OUTPUT" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_FIELD_ANY" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_BUF_TYPE_VBI_OUTPUT $ac_have_decl +#define HAVE_DECL_V4L2_FIELD_ANY $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_BUF_TYPE_SLICED_VBI_CAPTURE" "ac_cv_have_decl_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_FIELD_NONE" "ac_cv_have_decl_V4L2_FIELD_NONE" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_FIELD_NONE" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE $ac_have_decl +#define HAVE_DECL_V4L2_FIELD_NONE $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_BUF_TYPE_SLICED_VBI_OUTPUT" "ac_cv_have_decl_V4L2_BUF_TYPE_SLICED_VBI_OUTPUT" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_FIELD_TOP" "ac_cv_have_decl_V4L2_FIELD_TOP" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_BUF_TYPE_SLICED_VBI_OUTPUT" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_FIELD_TOP" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_OUTPUT $ac_have_decl +#define HAVE_DECL_V4L2_FIELD_TOP $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY" "ac_cv_have_decl_V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_FIELD_BOTTOM" "ac_cv_have_decl_V4L2_FIELD_BOTTOM" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_FIELD_BOTTOM" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY $ac_have_decl +#define HAVE_DECL_V4L2_FIELD_BOTTOM $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_BUF_TYPE_SDR_CAPTURE" "ac_cv_have_decl_V4L2_BUF_TYPE_SDR_CAPTURE" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_FIELD_INTERLACED" "ac_cv_have_decl_V4L2_FIELD_INTERLACED" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_BUF_TYPE_SDR_CAPTURE" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_FIELD_INTERLACED" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE $ac_have_decl +#define HAVE_DECL_V4L2_FIELD_INTERLACED $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_BUF_TYPE_SDR_OUTPUT" "ac_cv_have_decl_V4L2_BUF_TYPE_SDR_OUTPUT" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_FIELD_SEQ_TB" "ac_cv_have_decl_V4L2_FIELD_SEQ_TB" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_BUF_TYPE_SDR_OUTPUT" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_FIELD_SEQ_TB" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT $ac_have_decl +#define HAVE_DECL_V4L2_FIELD_SEQ_TB $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_TUNER_RADIO" "ac_cv_have_decl_V4L2_TUNER_RADIO" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_FIELD_SEQ_BT" "ac_cv_have_decl_V4L2_FIELD_SEQ_BT" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_TUNER_RADIO" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_FIELD_SEQ_BT" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_TUNER_RADIO $ac_have_decl +#define HAVE_DECL_V4L2_FIELD_SEQ_BT $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_TUNER_ANALOG_TV" "ac_cv_have_decl_V4L2_TUNER_ANALOG_TV" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_FIELD_ALTERNATE" "ac_cv_have_decl_V4L2_FIELD_ALTERNATE" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_TUNER_ANALOG_TV" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_FIELD_ALTERNATE" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_TUNER_ANALOG_TV $ac_have_decl +#define HAVE_DECL_V4L2_FIELD_ALTERNATE $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_TUNER_DIGITAL_TV" "ac_cv_have_decl_V4L2_TUNER_DIGITAL_TV" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_FIELD_INTERLACED_TB" "ac_cv_have_decl_V4L2_FIELD_INTERLACED_TB" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_TUNER_DIGITAL_TV" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_FIELD_INTERLACED_TB" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_TUNER_DIGITAL_TV $ac_have_decl +#define HAVE_DECL_V4L2_FIELD_INTERLACED_TB $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_MEMORY_MMAP" "ac_cv_have_decl_V4L2_MEMORY_MMAP" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_FIELD_INTERLACED_BT" "ac_cv_have_decl_V4L2_FIELD_INTERLACED_BT" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_MEMORY_MMAP" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_FIELD_INTERLACED_BT" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_MEMORY_MMAP $ac_have_decl +#define HAVE_DECL_V4L2_FIELD_INTERLACED_BT $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_MEMORY_USERPTR" "ac_cv_have_decl_V4L2_MEMORY_USERPTR" "#include + + +ac_fn_c_check_decl "$LINENO" "V4L2_FRMSIZE_TYPE_DISCRETE" "ac_cv_have_decl_V4L2_FRMSIZE_TYPE_DISCRETE" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_MEMORY_USERPTR" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_FRMSIZE_TYPE_DISCRETE" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_MEMORY_USERPTR $ac_have_decl +#define HAVE_DECL_V4L2_FRMSIZE_TYPE_DISCRETE $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_MEMORY_OVERLAY" "ac_cv_have_decl_V4L2_MEMORY_OVERLAY" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_FRMSIZE_TYPE_CONTINUOUS" "ac_cv_have_decl_V4L2_FRMSIZE_TYPE_CONTINUOUS" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_MEMORY_OVERLAY" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_FRMSIZE_TYPE_CONTINUOUS" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_MEMORY_OVERLAY $ac_have_decl +#define HAVE_DECL_V4L2_FRMSIZE_TYPE_CONTINUOUS $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_MEMORY_DMABUF" "ac_cv_have_decl_V4L2_MEMORY_DMABUF" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_FRMSIZE_TYPE_STEPWISE" "ac_cv_have_decl_V4L2_FRMSIZE_TYPE_STEPWISE" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_MEMORY_DMABUF" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_FRMSIZE_TYPE_STEPWISE" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_MEMORY_DMABUF $ac_have_decl +#define HAVE_DECL_V4L2_FRMSIZE_TYPE_STEPWISE $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_COLORSPACE_SMPTE170M" "ac_cv_have_decl_V4L2_COLORSPACE_SMPTE170M" "#include + + +ac_fn_c_check_decl "$LINENO" "V4L2_MEMORY_MMAP" "ac_cv_have_decl_V4L2_MEMORY_MMAP" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_COLORSPACE_SMPTE170M" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_MEMORY_MMAP" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_COLORSPACE_SMPTE170M $ac_have_decl +#define HAVE_DECL_V4L2_MEMORY_MMAP $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_COLORSPACE_SMPTE240M" "ac_cv_have_decl_V4L2_COLORSPACE_SMPTE240M" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_MEMORY_USERPTR" "ac_cv_have_decl_V4L2_MEMORY_USERPTR" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_COLORSPACE_SMPTE240M" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_MEMORY_USERPTR" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_COLORSPACE_SMPTE240M $ac_have_decl +#define HAVE_DECL_V4L2_MEMORY_USERPTR $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_COLORSPACE_REC709" "ac_cv_have_decl_V4L2_COLORSPACE_REC709" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_MEMORY_OVERLAY" "ac_cv_have_decl_V4L2_MEMORY_OVERLAY" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_COLORSPACE_REC709" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_MEMORY_OVERLAY" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_COLORSPACE_REC709 $ac_have_decl +#define HAVE_DECL_V4L2_MEMORY_OVERLAY $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_COLORSPACE_BT878" "ac_cv_have_decl_V4L2_COLORSPACE_BT878" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_MEMORY_DMABUF" "ac_cv_have_decl_V4L2_MEMORY_DMABUF" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_COLORSPACE_BT878" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_MEMORY_DMABUF" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_COLORSPACE_BT878 $ac_have_decl +#define HAVE_DECL_V4L2_MEMORY_DMABUF $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_COLORSPACE_470_SYSTEM_M" "ac_cv_have_decl_V4L2_COLORSPACE_470_SYSTEM_M" "#include + + +ac_fn_c_check_decl "$LINENO" "V4L2_TUNER_RADIO" "ac_cv_have_decl_V4L2_TUNER_RADIO" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_COLORSPACE_470_SYSTEM_M" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_TUNER_RADIO" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_COLORSPACE_470_SYSTEM_M $ac_have_decl +#define HAVE_DECL_V4L2_TUNER_RADIO $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_COLORSPACE_470_SYSTEM_BG" "ac_cv_have_decl_V4L2_COLORSPACE_470_SYSTEM_BG" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_TUNER_ANALOG_TV" "ac_cv_have_decl_V4L2_TUNER_ANALOG_TV" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_COLORSPACE_470_SYSTEM_BG" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_TUNER_ANALOG_TV" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_COLORSPACE_470_SYSTEM_BG $ac_have_decl +#define HAVE_DECL_V4L2_TUNER_ANALOG_TV $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_COLORSPACE_JPEG" "ac_cv_have_decl_V4L2_COLORSPACE_JPEG" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_TUNER_DIGITAL_TV" "ac_cv_have_decl_V4L2_TUNER_DIGITAL_TV" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_COLORSPACE_JPEG" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_TUNER_DIGITAL_TV" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_COLORSPACE_JPEG $ac_have_decl +#define HAVE_DECL_V4L2_TUNER_DIGITAL_TV $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_COLORSPACE_SRGB" "ac_cv_have_decl_V4L2_COLORSPACE_SRGB" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_TUNER_SDR" "ac_cv_have_decl_V4L2_TUNER_SDR" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_COLORSPACE_SRGB" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_TUNER_SDR" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_COLORSPACE_SRGB $ac_have_decl +#define HAVE_DECL_V4L2_TUNER_SDR $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_PRIORITY_UNSET" "ac_cv_have_decl_V4L2_PRIORITY_UNSET" "#include +ac_fn_c_check_decl "$LINENO" "V4L2_TUNER_RF" "ac_cv_have_decl_V4L2_TUNER_RF" " +#include #include #include #include + " -if test "x$ac_cv_have_decl_V4L2_PRIORITY_UNSET" = xyes; then : +if test "x$ac_cv_have_decl_V4L2_TUNER_RF" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_PRIORITY_UNSET $ac_have_decl +#define HAVE_DECL_V4L2_TUNER_RF $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_PRIORITY_BACKGROUND" "ac_cv_have_decl_V4L2_PRIORITY_BACKGROUND" "#include -#include -#include -#include + + +ac_fn_c_check_decl "$LINENO" "P_ALL" "ac_cv_have_decl_P_ALL" " +#include +#include + " -if test "x$ac_cv_have_decl_V4L2_PRIORITY_BACKGROUND" = xyes; then : +if test "x$ac_cv_have_decl_P_ALL" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_PRIORITY_BACKGROUND $ac_have_decl +#define HAVE_DECL_P_ALL $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_PRIORITY_INTERACTIVE" "ac_cv_have_decl_V4L2_PRIORITY_INTERACTIVE" "#include -#include -#include -#include +ac_fn_c_check_decl "$LINENO" "P_PID" "ac_cv_have_decl_P_PID" " +#include +#include + " -if test "x$ac_cv_have_decl_V4L2_PRIORITY_INTERACTIVE" = xyes; then : +if test "x$ac_cv_have_decl_P_PID" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_PRIORITY_INTERACTIVE $ac_have_decl +#define HAVE_DECL_P_PID $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_PRIORITY_RECORD" "ac_cv_have_decl_V4L2_PRIORITY_RECORD" "#include -#include -#include -#include +ac_fn_c_check_decl "$LINENO" "P_PGID" "ac_cv_have_decl_P_PGID" " +#include +#include + " -if test "x$ac_cv_have_decl_V4L2_PRIORITY_RECORD" = xyes; then : +if test "x$ac_cv_have_decl_P_PGID" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_PRIORITY_RECORD $ac_have_decl +#define HAVE_DECL_P_PGID $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_FRMSIZE_TYPE_DISCRETE" "ac_cv_have_decl_V4L2_FRMSIZE_TYPE_DISCRETE" "#include -#include -#include -#include +ac_fn_c_check_decl "$LINENO" "P_PIDFD" "ac_cv_have_decl_P_PIDFD" " +#include +#include + " -if test "x$ac_cv_have_decl_V4L2_FRMSIZE_TYPE_DISCRETE" = xyes; then : +if test "x$ac_cv_have_decl_P_PIDFD" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_FRMSIZE_TYPE_DISCRETE $ac_have_decl +#define HAVE_DECL_P_PIDFD $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_FRMSIZE_TYPE_CONTINUOUS" "ac_cv_have_decl_V4L2_FRMSIZE_TYPE_CONTINUOUS" "#include -#include -#include -#include -" -if test "x$ac_cv_have_decl_V4L2_FRMSIZE_TYPE_CONTINUOUS" = xyes; then : + + + +ac_fn_c_check_decl "$LINENO" "sys_errlist" "ac_cv_have_decl_sys_errlist" "$ac_includes_default" +if test "x$ac_cv_have_decl_sys_errlist" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_FRMSIZE_TYPE_CONTINUOUS $ac_have_decl +#define HAVE_DECL_SYS_ERRLIST $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_FRMSIZE_TYPE_STEPWISE" "ac_cv_have_decl_V4L2_FRMSIZE_TYPE_STEPWISE" "#include -#include -#include -#include + +ac_fn_c_check_decl "$LINENO" "PTRACE_PEEKUSER" "ac_cv_have_decl_PTRACE_PEEKUSER" "#include " -if test "x$ac_cv_have_decl_V4L2_FRMSIZE_TYPE_STEPWISE" = xyes; then : +if test "x$ac_cv_have_decl_PTRACE_PEEKUSER" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_FRMSIZE_TYPE_STEPWISE $ac_have_decl +#define HAVE_DECL_PTRACE_PEEKUSER $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_FRMIVAL_TYPE_DISCRETE" "ac_cv_have_decl_V4L2_FRMIVAL_TYPE_DISCRETE" "#include -#include -#include -#include +ac_fn_c_check_decl "$LINENO" "PTRACE_POKEUSER" "ac_cv_have_decl_PTRACE_POKEUSER" "#include " -if test "x$ac_cv_have_decl_V4L2_FRMIVAL_TYPE_DISCRETE" = xyes; then : +if test "x$ac_cv_have_decl_PTRACE_POKEUSER" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_FRMIVAL_TYPE_DISCRETE $ac_have_decl +#define HAVE_DECL_PTRACE_POKEUSER $ac_have_decl _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_FRMIVAL_TYPE_CONTINUOUS" "ac_cv_have_decl_V4L2_FRMIVAL_TYPE_CONTINUOUS" "#include + + +ac_fn_c_check_type "$LINENO" "struct v4l2_create_buffers" "ac_cv_type_struct_v4l2_create_buffers" "#include #include #include #include " -if test "x$ac_cv_have_decl_V4L2_FRMIVAL_TYPE_CONTINUOUS" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi +if test "x$ac_cv_type_struct_v4l2_create_buffers" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_FRMIVAL_TYPE_CONTINUOUS $ac_have_decl +#define HAVE_STRUCT_V4L2_CREATE_BUFFERS 1 _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_FRMIVAL_TYPE_STEPWISE" "ac_cv_have_decl_V4L2_FRMIVAL_TYPE_STEPWISE" "#include + + +fi +ac_fn_c_check_type "$LINENO" "struct v4l2_frmsizeenum" "ac_cv_type_struct_v4l2_frmsizeenum" "#include #include #include #include " -if test "x$ac_cv_have_decl_V4L2_FRMIVAL_TYPE_STEPWISE" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi +if test "x$ac_cv_type_struct_v4l2_frmsizeenum" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_FRMIVAL_TYPE_STEPWISE $ac_have_decl +#define HAVE_STRUCT_V4L2_FRMSIZEENUM 1 _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_CTRL_TYPE_INTEGER" "ac_cv_have_decl_V4L2_CTRL_TYPE_INTEGER" "#include + + +fi +ac_fn_c_check_type "$LINENO" "struct v4l2_frmivalenum" "ac_cv_type_struct_v4l2_frmivalenum" "#include #include #include #include " -if test "x$ac_cv_have_decl_V4L2_CTRL_TYPE_INTEGER" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi +if test "x$ac_cv_type_struct_v4l2_frmivalenum" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_CTRL_TYPE_INTEGER $ac_have_decl +#define HAVE_STRUCT_V4L2_FRMIVALENUM 1 _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_CTRL_TYPE_BOOLEAN" "ac_cv_have_decl_V4L2_CTRL_TYPE_BOOLEAN" "#include + + +fi +ac_fn_c_check_type "$LINENO" "struct v4l2_meta_format" "ac_cv_type_struct_v4l2_meta_format" "#include #include #include #include " -if test "x$ac_cv_have_decl_V4L2_CTRL_TYPE_BOOLEAN" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi +if test "x$ac_cv_type_struct_v4l2_meta_format" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_CTRL_TYPE_BOOLEAN $ac_have_decl +#define HAVE_STRUCT_V4L2_META_FORMAT 1 _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_CTRL_TYPE_MENU" "ac_cv_have_decl_V4L2_CTRL_TYPE_MENU" "#include + + +fi +ac_fn_c_check_type "$LINENO" "struct v4l2_pix_format_mplane" "ac_cv_type_struct_v4l2_pix_format_mplane" "#include #include #include #include " -if test "x$ac_cv_have_decl_V4L2_CTRL_TYPE_MENU" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi +if test "x$ac_cv_type_struct_v4l2_pix_format_mplane" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_CTRL_TYPE_MENU $ac_have_decl +#define HAVE_STRUCT_V4L2_PIX_FORMAT_MPLANE 1 _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_CTRL_TYPE_BUTTON" "ac_cv_have_decl_V4L2_CTRL_TYPE_BUTTON" "#include + + +fi +ac_fn_c_check_type "$LINENO" "struct v4l2_plane_pix_format" "ac_cv_type_struct_v4l2_plane_pix_format" "#include #include #include #include " -if test "x$ac_cv_have_decl_V4L2_CTRL_TYPE_BUTTON" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi +if test "x$ac_cv_type_struct_v4l2_plane_pix_format" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_CTRL_TYPE_BUTTON $ac_have_decl +#define HAVE_STRUCT_V4L2_PLANE_PIX_FORMAT 1 _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_CTRL_TYPE_INTEGER64" "ac_cv_have_decl_V4L2_CTRL_TYPE_INTEGER64" "#include + + +fi +ac_fn_c_check_type "$LINENO" "struct v4l2_sdr_format" "ac_cv_type_struct_v4l2_sdr_format" "#include #include #include #include " -if test "x$ac_cv_have_decl_V4L2_CTRL_TYPE_INTEGER64" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi +if test "x$ac_cv_type_struct_v4l2_sdr_format" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_CTRL_TYPE_INTEGER64 $ac_have_decl +#define HAVE_STRUCT_V4L2_SDR_FORMAT 1 _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_CTRL_TYPE_CTRL_CLASS" "ac_cv_have_decl_V4L2_CTRL_TYPE_CTRL_CLASS" "#include + + +fi + + +ac_fn_c_check_member "$LINENO" "struct v4l2_capability" "device_caps" "ac_cv_member_struct_v4l2_capability_device_caps" "#include #include #include #include " -if test "x$ac_cv_have_decl_V4L2_CTRL_TYPE_CTRL_CLASS" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi +if test "x$ac_cv_member_struct_v4l2_capability_device_caps" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_CTRL_TYPE_CTRL_CLASS $ac_have_decl +#define HAVE_STRUCT_V4L2_CAPABILITY_DEVICE_CAPS 1 _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_CTRL_TYPE_STRING" "ac_cv_have_decl_V4L2_CTRL_TYPE_STRING" "#include + + +fi +ac_fn_c_check_member "$LINENO" "struct v4l2_ext_control" "string" "ac_cv_member_struct_v4l2_ext_control_string" "#include #include #include #include " -if test "x$ac_cv_have_decl_V4L2_CTRL_TYPE_STRING" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi +if test "x$ac_cv_member_struct_v4l2_ext_control_string" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_CTRL_TYPE_STRING $ac_have_decl +#define HAVE_STRUCT_V4L2_EXT_CONTROL_STRING 1 _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_CTRL_TYPE_BITMASK" "ac_cv_have_decl_V4L2_CTRL_TYPE_BITMASK" "#include + + +fi +ac_fn_c_check_member "$LINENO" "struct v4l2_format" "fmt.pix_mp" "ac_cv_member_struct_v4l2_format_fmt_pix_mp" "#include #include #include #include " -if test "x$ac_cv_have_decl_V4L2_CTRL_TYPE_BITMASK" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi +if test "x$ac_cv_member_struct_v4l2_format_fmt_pix_mp" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_CTRL_TYPE_BITMASK $ac_have_decl +#define HAVE_STRUCT_V4L2_FORMAT_FMT_PIX_MP 1 _ACEOF -ac_fn_c_check_decl "$LINENO" "V4L2_CTRL_TYPE_INTEGER_MENU" "ac_cv_have_decl_V4L2_CTRL_TYPE_INTEGER_MENU" "#include + + +fi +ac_fn_c_check_member "$LINENO" "struct v4l2_format" "fmt.sdr" "ac_cv_member_struct_v4l2_format_fmt_sdr" "#include #include #include #include " -if test "x$ac_cv_have_decl_V4L2_CTRL_TYPE_INTEGER_MENU" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 +if test "x$ac_cv_member_struct_v4l2_format_fmt_sdr" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_V4L2_FORMAT_FMT_SDR 1 +_ACEOF + + fi +ac_fn_c_check_member "$LINENO" "struct v4l2_format" "fmt.sliced" "ac_cv_member_struct_v4l2_format_fmt_sliced" "#include +#include +#include +#include +" +if test "x$ac_cv_member_struct_v4l2_format_fmt_sliced" = xyes; then : cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_CTRL_TYPE_INTEGER_MENU $ac_have_decl +#define HAVE_STRUCT_V4L2_FORMAT_FMT_SLICED 1 _ACEOF +fi ac_fn_c_check_member "$LINENO" "struct v4l2_window" "global_alpha" "ac_cv_member_struct_v4l2_window_global_alpha" "#include #include #include @@ -14810,6 +21981,40 @@ cat >>confdefs.h <<_ACEOF _ACEOF +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of struct msqid64_ds" >&5 +$as_echo_n "checking size of struct msqid64_ds... " >&6; } +if ${ac_cv_sizeof_struct_msqid64_ds+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (struct msqid64_ds))" "ac_cv_sizeof_struct_msqid64_ds" "#include +"; then : + +else + if test "$ac_cv_type_struct_msqid64_ds" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (struct msqid64_ds) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_struct_msqid64_ds=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_struct_msqid64_ds" >&5 +$as_echo "$ac_cv_sizeof_struct_msqid64_ds" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_STRUCT_MSQID64_DS $ac_cv_sizeof_struct_msqid64_ds +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SIGRTMIN" >&5 @@ -14980,13 +22185,13 @@ $as_echo "#define HAVE__STATIC_ASSERT 1" >>confdefs.h ;; esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dladdr in -ldl" >&5 -$as_echo_n "checking for dladdr in -ldl... " >&6; } -if ${ac_cv_lib_dl_dladdr+:} false; then : +saved_LIBS="$LIBS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dladdr" >&5 +$as_echo_n "checking for library containing dladdr... " >&6; } +if ${ac_cv_search_dladdr+:} false; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" + ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -15005,27 +22210,47 @@ return dladdr (); return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dladdr=yes -else - ac_cv_lib_dl_dladdr=no +for ac_lib in '' dl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dladdr=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + conftest$ac_exeext + if ${ac_cv_search_dladdr+:} false; then : + break fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dladdr" >&5 -$as_echo "$ac_cv_lib_dl_dladdr" >&6; } -if test "x$ac_cv_lib_dl_dladdr" = xyes; then : - dl_LIBS='-ldl' +done +if ${ac_cv_search_dladdr+:} false; then : + else - dl_LIBS= + ac_cv_search_dladdr=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dladdr" >&5 +$as_echo "$ac_cv_search_dladdr" >&6; } +ac_res=$ac_cv_search_dladdr +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + fi -if test "x$ac_cv_lib_dl_dladdr" = xyes; then +LIBS="$saved_LIBS" +dl_LIBS="" +if test "$ac_cv_search_dladdr" != no; then $as_echo "#define HAVE_DLADDR 1" >>confdefs.h + case "$ac_cv_search_dladdr" in + -l*) dl_LIBS="$ac_cv_search_dladdr" ;; + esac fi @@ -15229,47 +22454,6 @@ case "$ac_cv_search_mq_open" in esac -# Extract the first word of "perl", so it can be a program name with args. -set dummy perl; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_PERL+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $PERL in - [\\/]* | ?:[\\/]*) - ac_cv_path_PERL="$PERL" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -PERL=$ac_cv_path_PERL -if test -n "$PERL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 -$as_echo "$PERL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}readelf", so it can be a program name with args. set dummy ${ac_tool_prefix}readelf; ac_word=$2 @@ -15942,7 +23126,10 @@ fi if test "$arch" = mips && test "$no_create" != yes; then mkdir -p linux/mips - if $srcdir/linux/mips/genstub.sh linux/mips; then + if $srcdir/linux/mips/genstub.sh \ + $srcdir/linux/mips linux/mips n32 n64 o32 && + $srcdir/linux/mips/genstub.sh \ + $srcdir/linux linux/mips common common-32; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: Generated MIPS syscallent stubs" >&5 $as_echo "Generated MIPS syscallent stubs" >&6; } else @@ -15963,6 +23150,79 @@ else fi +if test x$arch = xaarch64; then : + # So far, only aarch64 needs a separate compiler for its compat + # personality (which is AArch32, that is more or less ARMv7 EABI) + # + # Some heuristics regarding possible compiler name: + # Debian: arm-linux-gnueabi{,hf}-gcc + # SuSE: arm7{,hl}-linux-gnueabi-gcc + # Red Hat: arm-redhat-linux-gnu-gcc + # Fedora: arm-linux-gnu-gcc + # ALT: armh-alt-linux-gnueabi-gcc + + for ac_prog in arm-linux-gnu-gcc arm-linux-gnu-cc arm-linux-gnueabi-gcc arm-linux-gnueabi-cc arm-linux-gnueabihf-gcc arm-linux-gnueabihf-cc arm-$host_vendor-linux-gnu-gcc arm-$host_vendor-linux-gnu-cc arm-$host_vendor-linux-gnueabi-gcc arm-$host_vendor-linux-gnueabi-cc arm-$host_vendor-linux-gnueabihf-gcc arm-$host_vendor-linux-gnueabihf-cc arm7-linux-gnu-gcc arm7-linux-gnu-cc arm7-linux-gnueabi-gcc arm7-linux-gnueabi-cc arm7-linux-gnueabihf-gcc arm7-linux-gnueabihf-cc arm7-$host_vendor-linux-gnu-gcc arm7-$host_vendor-linux-gnu-cc arm7-$host_vendor-linux-gnueabi-gcc arm7-$host_vendor-linux-gnueabi-cc arm7-$host_vendor-linux-gnueabihf-gcc arm7-$host_vendor-linux-gnueabihf-cc arm7hl-linux-gnu-gcc arm7hl-linux-gnu-cc arm7hl-linux-gnueabi-gcc arm7hl-linux-gnueabi-cc arm7hl-linux-gnueabihf-gcc arm7hl-linux-gnueabihf-cc arm7hl-$host_vendor-linux-gnu-gcc arm7hl-$host_vendor-linux-gnu-cc arm7hl-$host_vendor-linux-gnueabi-gcc arm7hl-$host_vendor-linux-gnueabi-cc arm7hl-$host_vendor-linux-gnueabihf-gcc arm7hl-$host_vendor-linux-gnueabihf-cc armh-linux-gnu-gcc armh-linux-gnu-cc armh-linux-gnueabi-gcc armh-linux-gnueabi-cc armh-linux-gnueabihf-gcc armh-linux-gnueabihf-cc armh-$host_vendor-linux-gnu-gcc armh-$host_vendor-linux-gnu-cc armh-$host_vendor-linux-gnueabi-gcc armh-$host_vendor-linux-gnueabi-cc armh-$host_vendor-linux-gnueabihf-gcc armh-$host_vendor-linux-gnueabihf-cc +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC_FOR_M32+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC_FOR_M32"; then + ac_cv_prog_CC_FOR_M32="$CC_FOR_M32" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC_FOR_M32="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC_FOR_M32=$ac_cv_prog_CC_FOR_M32 +if test -n "$CC_FOR_M32"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC_FOR_M32" >&5 +$as_echo "$CC_FOR_M32" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC_FOR_M32" && break +done + + if test -n "$CC_FOR_M32"; then : + : ${CPP_FOR_M32=$CC_FOR_M32 -E} + : ${CFLAGS_FOR_M32=-std=gnu99} + : ${CPPFLAGS_FOR_M32=} + +fi + +fi + +# Set default compiler variables for personalities. + : ${CC_FOR_M32=$CC} + : ${CPP_FOR_M32=$CPP} + : ${CPPFLAGS_FOR_M32=$CPPFLAGS} + : ${CFLAGS_FOR_M32=} + : ${CC_FOR_MX32=$CC} + : ${CPP_FOR_MX32=$CPP} + : ${CPPFLAGS_FOR_MX32=$CPPFLAGS} + : ${CFLAGS_FOR_MX32=} + + @@ -15974,8 +23234,31 @@ fi + +if test -n "${CC+set}"; then : + st_saved_CC="${CC}"; unset CC +fi + +if test -n "${CPP+set}"; then : + st_saved_CPP="${CPP}"; unset CPP +fi + +if test -n "${CFLAGS+set}"; then : + st_saved_CFLAGS="${CFLAGS}"; unset CFLAGS +fi + +if test -n "${CPPFLAGS+set}"; then : + st_saved_CPPFLAGS="${CPPFLAGS}"; unset CPPFLAGS +fi + + +CC=$CC_FOR_M32 +CPP=$CPP_FOR_M32 +CFLAGS=$CFLAGS_FOR_M32 +CPPFLAGS=$CPPFLAGS_FOR_M32 + case "$arch" in - aarch64|powerpc64|riscv|s390x|sparc64|tile|x32|x86_64) + aarch64|powerpc64|s390x|sparc64|tile|x32|x86_64) case "$enable_mpers" in yes|check|m32) @@ -16001,17 +23284,25 @@ fi done + saved_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS${IFLAG:+ }$IFLAG" saved_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $cc_flags_m32 $IFLAG" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m32 personality compile support" >&5 -$as_echo_n "checking for m32 personality compile support... " >&6; } + CFLAGS="$CFLAGS $cc_flags_m32" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m32 personality compile support (using $CC $CPPFLAGS $CFLAGS)" >&5 +$as_echo_n "checking for m32 personality compile support (using $CC $CPPFLAGS $CFLAGS)... " >&6; } if ${st_cv_m32_cc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include - int main(){return 0;} +int +main () +{ +return 0 + ; + return 0; +} _ACEOF if ac_fn_c_try_compile "$LINENO"; then : st_cv_m32_cc=yes @@ -16034,7 +23325,13 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include - int main(){return 0;} +int +main () +{ +return 0 + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : st_cv_m32_runtime=yes @@ -16054,8 +23351,8 @@ if ${st_cv_m32_mpers+:} false; then : $as_echo_n "(cached) " >&6 else if READELF="$READELF" \ - CC="$CC" CPP="$CPP" CPPFLAGS="$CPPFLAGS $IFLAG" \ - $srcdir/mpers_test.sh m32 $cc_flags_m32; then + CC="$CC" CPP="$CPP" CPPFLAGS="$CPPFLAGS" \ + $srcdir/mpers_test.sh m32 "$cc_flags_m32"; then st_cv_m32_mpers=yes else st_cv_m32_mpers=no @@ -16403,9 +23700,83 @@ fi + + + + + + + + +if test -n "${ac_cv_sizeof_struct_msqid64_ds+set}"; then : + saved_ac_cv_sizeof_struct_msqid64_ds="${ac_cv_sizeof_struct_msqid64_ds}"; unset ac_cv_sizeof_struct_msqid64_ds +fi +if test -n "${ac_cv_m32_sizeof_struct_msqid64_ds+set}"; then : + ac_cv_sizeof_struct_msqid64_ds="${ac_cv_m32_sizeof_struct_msqid64_ds}" +fi + + + + + + + # The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of struct msqid64_ds" >&5 +$as_echo_n "checking size of struct msqid64_ds... " >&6; } +if ${ac_cv_sizeof_struct_msqid64_ds+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (struct msqid64_ds))" "ac_cv_sizeof_struct_msqid64_ds" "#include +"; then : + +else + if test "$ac_cv_type_struct_msqid64_ds" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (struct msqid64_ds) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_struct_msqid64_ds=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_struct_msqid64_ds" >&5 +$as_echo "$ac_cv_sizeof_struct_msqid64_ds" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define M32_SIZEOF_STRUCT_MSQID64_DS $ac_cv_sizeof_struct_msqid64_ds +_ACEOF + + + + + + + + +if test -n "${ac_cv_sizeof_struct_msqid64_ds+set}"; then : + ac_cv_m32_sizeof_struct_msqid64_ds="${ac_cv_sizeof_struct_msqid64_ds}" +fi +if test -n "${saved_ac_cv_sizeof_struct_msqid64_ds+set}"; then : + ac_cv_sizeof_struct_msqid64_ds="${saved_ac_cv_sizeof_struct_msqid64_ds}"; unset saved_ac_cv_sizeof_struct_msqid64_ds +fi + + + + + + + fi fi fi + CPPFLAGS="$saved_CPPFLAGS" CFLAGS="$saved_CFLAGS" ;; @@ -16452,6 +23823,24 @@ else fi +if test -n "${st_saved_CC+set}"; then : + CC="${st_saved_CC}"; unset st_saved_CC +fi + +if test -n "${st_saved_CPP+set}"; then : + CPP="${st_saved_CPP}"; unset st_saved_CPP +fi + +if test -n "${st_saved_CFLAGS+set}"; then : + CFLAGS="${st_saved_CFLAGS}"; unset st_saved_CFLAGS +fi + +if test -n "${st_saved_CPPFLAGS+set}"; then : + CPPFLAGS="${st_saved_CPPFLAGS}"; unset st_saved_CPPFLAGS +fi + + + @@ -16472,6 +23861,29 @@ fi + + +if test -n "${CC+set}"; then : + st_saved_CC="${CC}"; unset CC +fi + +if test -n "${CPP+set}"; then : + st_saved_CPP="${CPP}"; unset CPP +fi + +if test -n "${CFLAGS+set}"; then : + st_saved_CFLAGS="${CFLAGS}"; unset CFLAGS +fi + +if test -n "${CPPFLAGS+set}"; then : + st_saved_CPPFLAGS="${CPPFLAGS}"; unset CPPFLAGS +fi + + +CC=$CC_FOR_MX32 +CPP=$CPP_FOR_MX32 +CFLAGS=$CFLAGS_FOR_MX32 +CPPFLAGS=$CPPFLAGS_FOR_MX32 case "$arch" in x86_64) @@ -16500,17 +23912,25 @@ fi done + saved_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS${IFLAG:+ }$IFLAG" saved_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $cc_flags_mx32 $IFLAG" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mx32 personality compile support" >&5 -$as_echo_n "checking for mx32 personality compile support... " >&6; } + CFLAGS="$CFLAGS $cc_flags_mx32" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mx32 personality compile support (using $CC $CPPFLAGS $CFLAGS)" >&5 +$as_echo_n "checking for mx32 personality compile support (using $CC $CPPFLAGS $CFLAGS)... " >&6; } if ${st_cv_mx32_cc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include - int main(){return 0;} +int +main () +{ +return 0 + ; + return 0; +} _ACEOF if ac_fn_c_try_compile "$LINENO"; then : st_cv_mx32_cc=yes @@ -16533,7 +23953,13 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include - int main(){return 0;} +int +main () +{ +return 0 + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : st_cv_mx32_runtime=yes @@ -16553,8 +23979,8 @@ if ${st_cv_mx32_mpers+:} false; then : $as_echo_n "(cached) " >&6 else if READELF="$READELF" \ - CC="$CC" CPP="$CPP" CPPFLAGS="$CPPFLAGS $IFLAG" \ - $srcdir/mpers_test.sh mx32 $cc_flags_mx32; then + CC="$CC" CPP="$CPP" CPPFLAGS="$CPPFLAGS" \ + $srcdir/mpers_test.sh mx32 "$cc_flags_mx32"; then st_cv_mx32_mpers=yes else st_cv_mx32_mpers=no @@ -16902,9 +24328,83 @@ fi + + + + + + + + +if test -n "${ac_cv_sizeof_struct_msqid64_ds+set}"; then : + saved_ac_cv_sizeof_struct_msqid64_ds="${ac_cv_sizeof_struct_msqid64_ds}"; unset ac_cv_sizeof_struct_msqid64_ds +fi +if test -n "${ac_cv_mx32_sizeof_struct_msqid64_ds+set}"; then : + ac_cv_sizeof_struct_msqid64_ds="${ac_cv_mx32_sizeof_struct_msqid64_ds}" +fi + + + + + + + # The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of struct msqid64_ds" >&5 +$as_echo_n "checking size of struct msqid64_ds... " >&6; } +if ${ac_cv_sizeof_struct_msqid64_ds+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (struct msqid64_ds))" "ac_cv_sizeof_struct_msqid64_ds" "#include +"; then : + +else + if test "$ac_cv_type_struct_msqid64_ds" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (struct msqid64_ds) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_struct_msqid64_ds=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_struct_msqid64_ds" >&5 +$as_echo "$ac_cv_sizeof_struct_msqid64_ds" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define MX32_SIZEOF_STRUCT_MSQID64_DS $ac_cv_sizeof_struct_msqid64_ds +_ACEOF + + + + + + + + +if test -n "${ac_cv_sizeof_struct_msqid64_ds+set}"; then : + ac_cv_mx32_sizeof_struct_msqid64_ds="${ac_cv_sizeof_struct_msqid64_ds}" +fi +if test -n "${saved_ac_cv_sizeof_struct_msqid64_ds+set}"; then : + ac_cv_sizeof_struct_msqid64_ds="${saved_ac_cv_sizeof_struct_msqid64_ds}"; unset saved_ac_cv_sizeof_struct_msqid64_ds +fi + + + + + + + fi fi fi + CPPFLAGS="$saved_CPPFLAGS" CFLAGS="$saved_CFLAGS" ;; @@ -16951,6 +24451,24 @@ else fi +if test -n "${st_saved_CC+set}"; then : + CC="${st_saved_CC}"; unset st_saved_CC +fi + +if test -n "${st_saved_CPP+set}"; then : + CPP="${st_saved_CPP}"; unset st_saved_CPP +fi + +if test -n "${st_saved_CFLAGS+set}"; then : + CFLAGS="${st_saved_CFLAGS}"; unset st_saved_CFLAGS +fi + +if test -n "${st_saved_CPPFLAGS+set}"; then : + CPPFLAGS="${st_saved_CPPFLAGS}"; unset st_saved_CPPFLAGS +fi + + + @@ -17512,15 +25030,15 @@ if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi if test -z "${CODE_COVERAGE_ENABLED_TRUE}" && test -z "${CODE_COVERAGE_ENABLED_FALSE}"; then as_fn_error $? "conditional \"CODE_COVERAGE_ENABLED\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${ENABLE_STACKTRACE_TRUE}" && test -z "${ENABLE_STACKTRACE_FALSE}"; then as_fn_error $? "conditional \"ENABLE_STACKTRACE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -17954,7 +25472,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by strace $as_me 5.1, which was +This file was extended by strace $as_me 5.9, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -18021,7 +25539,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -strace config.status 5.1 +strace config.status 5.9 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -18833,7 +26351,9 @@ $as_echo X/"$am_mf" | { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "Something went wrong bootstrapping makefile fragments - for automatic dependency tracking. Try re-running configure with the + for automatic dependency tracking. If GNU make was not used, consider + re-running the configure script with MAKE=\"gmake\" (or whatever is + necessary). You can also try re-running configure with the '--disable-dependency-tracking' option to at least be able to build the package (albeit without support for automatic dependency tracking). See \`config.log' for more details" "$LINENO" 5; } diff --git a/configure.ac b/configure.ac index 621312ac..4e7bc2a8 100644 --- a/configure.ac +++ b/configure.ac @@ -5,24 +5,24 @@ # Copyright (c) 2006-2016 Dmitry V. Levin # Copyright (c) 2008-2015 Mike Frysinger # Copyright (c) 2015 Elvira Khabirova -# Copyright (c) 2002-2019 The strace developers. +# Copyright (c) 2002-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: LGPL-2.1-or-later AC_PREREQ(2.57) AC_INIT([strace], - m4_esyscmd([./git-version-gen .tarball-version]), + st_esyscmd_s([./git-version-gen .tarball-version]), [strace-devel@lists.strace.io], [strace], [https://strace.io]) -m4_define([copyright_year], m4_esyscmd([./copyright-year-gen .year])) -m4_define([manpage_date], m4_esyscmd([./file-date-gen strace.1.in])) +m4_define([copyright_year], st_esyscmd_s([./copyright-year-gen .year])) +m4_define([manpage_date], st_esyscmd_s([./file-date-gen strace.1.in])) AC_COPYRIGHT([Copyright (c) 1999-]copyright_year[ The strace developers.]) AC_CONFIG_SRCDIR([strace.c]) AC_CONFIG_AUX_DIR([.]) AC_CONFIG_HEADERS([config.h]) -AM_INIT_AUTOMAKE([foreign nostdinc dist-xz silent-rules parallel-tests 1.13]) +AM_INIT_AUTOMAKE([foreign nostdinc dist-xz silent-rules parallel-tests subdir-objects 1.13]) AM_MAINTAINER_MODE AC_CANONICAL_HOST @@ -34,8 +34,6 @@ AC_SUBST(DEB_CHANGELOGTIME) AC_PROG_CC AC_PROG_CC_STDC AC_PROG_CPP -st_WARN_CFLAGS -AX_PROG_CC_FOR_BUILD AC_PROG_INSTALL AC_PROG_RANLIB @@ -48,6 +46,11 @@ AC_SUBST([COPYRIGHT_YEAR], [copyright_year]) AC_DEFINE([MANPAGE_DATE], "[manpage_date]", [Date]) AC_SUBST([MANPAGE_DATE], [manpage_date]) +AC_C_BIGENDIAN + +dnl arch-specific default for --enable-gcc-Werror +arch_enable_Werror=yes + AC_MSG_CHECKING([for supported architecture]) arch_m32= arch_mx32= @@ -57,10 +60,12 @@ case "$host_cpu" in aarch64*) arch=aarch64 arch_m32=arm + cc_flags_m32= AC_DEFINE([AARCH64], 1, [Define for the AArch64 architecture.]) ;; alpha*) arch=alpha + arch_enable_Werror=no AC_DEFINE([ALPHA], 1, [Define for the Alpha architecture.]) ;; arc*) @@ -77,6 +82,7 @@ avr32*) ;; bfin) arch=bfin + arch_enable_Werror=no AC_DEFINE([BFIN], 1, [Define for the Blackfin architecture.]) ;; csky*) @@ -105,6 +111,7 @@ metag*) ;; microblaze*) arch=microblaze + arch_enable_Werror=no AC_DEFINE([MICROBLAZE], 1, [Define for the MicroBlaze architecture.]) ;; mips*) @@ -126,13 +133,24 @@ powerpc*) # error 32 bit #endif], [], arch=powerpc64, arch=powerpc) if test "$arch" = "powerpc64"; then - arch_m32=powerpc - AC_DEFINE([POWERPC64], 1, [Define for the PowerPC64 architecture.]) + # $ac_cv_c_bigendian is defined by AC_C_BIGENDIAN + case "$ac_cv_c_bigendian" in + no) + arch=powerpc64le + AC_DEFINE([POWERPC64LE], 1, + [Define for the little endian PowerPC64 architecture.]) + ;; + *) + arch_m32=powerpc + AC_DEFINE([POWERPC64], 1, + [Define for the big endian PowerPC64 architecture.]) + ;; + esac fi ;; -riscv*) - arch=riscv - AC_DEFINE([RISCV], 1, [Define for the RISC-V architecture]) +riscv64*) + arch=riscv64 + AC_DEFINE([RISCV64], 1, [Define for the RISC-V 64-bit architecture]) ;; s390) arch=s390 @@ -243,7 +261,10 @@ esac AC_DEFINE_UNQUOTED([ENABLE_ARM_OABI], [$enable_arm_oabi], [Define to 1 if you want OABI support on ARM EABI.]) -AC_C_BIGENDIAN +st_WARN_CFLAGS +AX_PROG_CC_FOR_BUILD +AM_PROG_AR + AC_C_TYPEOF AC_TYPE_UID_T @@ -253,6 +274,7 @@ AC_CHECK_FUNCS(m4_normalize([ be64toh fallocate fanotify_mark + fcntl64 fopen64 fork fputs_unlocked @@ -262,7 +284,7 @@ AC_CHECK_FUNCS(m4_normalize([ iconv_open if_indextoname open64 - prctl + open_memstream preadv process_vm_readv pwritev @@ -271,9 +293,7 @@ AC_CHECK_FUNCS(m4_normalize([ stpcpy strerror strndup - strsignal sync_file_range - utimensat ])) AC_CHECK_TYPES([sig_atomic_t, struct sigcontext],,, [#include ]) @@ -302,9 +322,12 @@ AC_CHECK_MEMBERS([struct stat.st_mtime_nsec, struct stat64.st_mtime_nsec],,, AC_CHECK_TYPES(m4_normalize([ struct pt_all_user_regs, struct ia64_fpreg, - struct ptrace_peeksiginfo_args + struct ptrace_peeksiginfo_args, + struct __ptrace_syscall_info ]),,, [#include ]) +AC_CHECK_TYPES([struct ptrace_syscall_info],,, [#include ]) + # For kernels that do not have v3.10-rc1~201^2~11 AC_CHECK_TYPES([s390_compat_regs],,, [#include ]) @@ -319,24 +342,16 @@ AC_CHECK_TYPES(m4_normalize([ [#include #include ]) -AC_CHECK_TYPES(m4_normalize([ - struct crypto_report_aead, - struct crypto_report_blkcipher, - struct crypto_report_cipher, - struct crypto_report_hash, - struct crypto_report_rng -]),,, [#include ]) - AC_CHECK_TYPES(m4_normalize([ struct kcmp_epoll_slot ]),,, [#include ]) AC_CHECK_TYPES(m4_normalize([ - struct keyctl_kdf_params + struct keyctl_kdf_params, + struct keyctl_pkey_params, + struct keyctl_pkey_query ]),,, [#include ]) -AC_CHECK_MEMBERS([struct timex.tai],,, [#include ]) - AC_CHECK_MEMBERS([struct utsname.domainname],,, [#include ]) AC_CHECK_MEMBERS(m4_normalize([ @@ -367,7 +382,8 @@ AC_CHECK_MEMBERS(m4_normalize([ struct perf_event_attr.sample_stack_user, struct perf_event_attr.sample_regs_intr, struct perf_event_attr.aux_watermark, - struct perf_event_attr.sample_max_stack + struct perf_event_attr.sample_max_stack, + struct perf_event_attr.aux_sample_size ]),,, [#include ]) AC_CHECK_HEADERS(m4_normalize([ @@ -375,27 +391,39 @@ AC_CHECK_HEADERS(m4_normalize([ asm/guarded_storage.h asm/sysmips.h elf.h + gcov.h iconv.h - inttypes.h + mqueue.h + netinet/sctp.h + netipx/ipx.h + paths.h + scsi/sg.h + sys/eventfd.h + sys/fanotify.h + sys/ipc.h + sys/quota.h + sys/signalfd.h + sys/xattr.h + ustat.h +])) + +AC_CHECK_HEADERS(m4_normalize([ linux/bsg.h - linux/cryptouser.h + linux/close_range.h linux/dm-ioctl.h linux/dqblk_xfs.h linux/falloc.h linux/fib_rules.h linux/fiemap.h linux/hiddev.h - linux/if_addr.h - linux/if_link.h - linux/io_uring.h linux/ip_vs.h linux/ipc.h linux/kcmp.h linux/kvm.h linux/memfd.h linux/mmtimer.h - linux/msg.h - linux/neighbour.h + linux/mount.h + linux/mqueue.h linux/netfilter/ipset/ip_set.h linux/netfilter/nf_tables.h linux/netfilter/nf_tables_compat.h @@ -407,39 +435,32 @@ AC_CHECK_HEADERS(m4_normalize([ linux/netfilter/nfnetlink_log.h linux/netfilter/nfnetlink_queue.h linux/nsfs.h + linux/openat2.h linux/perf_event.h linux/quota.h + linux/sched.h linux/seccomp.h linux/securebits.h - linux/sem.h - linux/shm.h + linux/tee.h linux/userfaultfd.h linux/utsname.h - mqueue.h - netinet/sctp.h - netipx/ipx.h - paths.h - scsi/sg.h - stropts.h - sys/conf.h - sys/eventfd.h - sys/fanotify.h - sys/ipc.h - sys/msg.h - sys/quota.h - sys/sem.h - sys/shm.h - sys/signalfd.h - sys/xattr.h - ustat.h -])) +]),,, [AC_INCLUDES_DEFAULT +#include +]) + +AC_CHECK_HEADERS(m4_normalize([ + linux/if_addr.h + linux/if_link.h + linux/neighbour.h +]),,, [AC_INCLUDES_DEFAULT +#include +#include +]) AC_CHECK_HEADERS([asm/sigcontext.h],,, [#include ]) AC_CHECK_HEADERS([netinet/tcp.h netinet/udp.h],,, [#include ]) -AC_CHECK_HEADERS([linux/mqueue.h],,, [#include ]) - AC_CHECK_HEADERS([linux/netfilter/xt_osf.h],,, [#include #include ]) @@ -451,10 +472,6 @@ AC_CHECK_HEADERS(m4_normalize([ ]),,, [#include #include ]) -AC_CHECK_HEADERS([linux/input.h], [ - AC_CHECK_MEMBERS([struct input_absinfo.resolution],,, [#include ]) -]) - AC_CHECK_HEADERS([linux/bpf.h], [ AC_CHECK_TYPES(m4_normalize([ struct bpf_insn, @@ -464,54 +481,36 @@ AC_CHECK_HEADERS([linux/bpf.h], [ st_BPF_ATTR ]) +AC_CHECK_HEADERS([linux/io_uring.h], [ + AC_CHECK_MEMBERS(m4_normalize([ + struct io_cqring_offsets.flags, + struct io_uring_params.features, + struct io_uring_params.wq_fd, + struct io_uring_params.resv + ]),,, [#include ]) +]) + AC_CHECK_HEADERS([bluetooth/bluetooth.h], [ + AC_CHECK_MEMBERS([struct sockaddr_hci.hci_channel],,, + [#include + #include ]) AC_CHECK_MEMBERS([struct sockaddr_l2.l2_bdaddr_type],,, [#include #include ]) ]) -AC_CHECK_TYPES(m4_normalize([ - struct br_mdb_entry, - struct br_port_msg -]),,, [#include ]) AC_CHECK_MEMBERS(m4_normalize([ struct br_mdb_entry.flags, struct br_mdb_entry.vid -]),,, [#include ]) +]),,, [#include +#include ]) AC_CHECK_TYPES([struct dcbmsg],,, [#include ]) AC_CHECK_TYPES([struct ifaddrlblmsg],,, [#include ]) AC_CHECK_TYPES([struct netconfmsg],,, [#include ]) AC_CHECK_TYPES(m4_normalize([ - struct rta_mfc_stats, - struct rtvia -]),,, [#include -#include ]) - -AC_CHECK_MEMBERS([struct ndt_stats.ndts_table_fulls],,, [#include ]) -AC_CHECK_TYPES(m4_normalize([ - struct ndt_config, - struct ndt_stats -]),,, [#include ]) - -AC_CHECK_TYPES(m4_normalize([ - struct ifla_bridge_id, - struct ifla_cacheinfo, - struct ifla_port_vsi, - struct rtnl_link_stats64 -]),,, [#include -#include ]) -AC_CHECK_MEMBERS(m4_normalize([ - struct rtnl_link_stats.rx_nohandler, - struct rtnl_link_stats64.rx_nohandler -]),,, [#include -#include ]) -AC_CHECK_DECLS(m4_normalize([ - IFLA_PORT_SELF, - IFLA_PROTINFO, - IFLA_AF_SPEC, - IFLA_XDP + struct ifla_cacheinfo ]),,, [#include #include ]) @@ -524,13 +523,12 @@ AC_CHECK_TYPES(m4_normalize([ AC_CHECK_TYPES([struct tc_sizespec],,, [#include #include ]) -AC_CHECK_DECLS([TCA_STAB_DATA],,, [#include -#include ]) AC_CHECK_TYPES(m4_normalize([ struct fib_rule_uid_range, struct fib_rule_port_range -]),,, [#include ]) +]),,, [#include +#include ]) AC_CHECK_TYPES([struct statfs], [ AC_CHECK_MEMBERS(m4_normalize([ @@ -554,6 +552,9 @@ AC_CHECK_TYPES([struct statfs64], [ ],, [#include #include ]) +AC_CHECK_TYPES([struct statx],,, [#include +#include ]) + AC_CHECK_TYPES([struct blk_user_trace_setup],,, [#include ]) AC_CHECK_TYPES([struct mtd_write_req],,, [#include ]) @@ -588,188 +589,51 @@ fi AC_CHECK_TYPES([struct __aio_sigset],,, [#include ]) +AC_CHECK_MEMBERS(m4_normalize([ + struct iocb.aio_flags, + struct iocb.aio_rw_flags + ]),,, [#include ]) + +AC_CHECK_MEMBERS([struct clone_args.cgroup],,, [#include ]) + CPPFLAGS="$saved_CPPFLAGS" AC_CHECK_HEADERS([linux/btrfs.h], [ AC_CHECK_MEMBERS(m4_normalize([ struct btrfs_ioctl_feature_flags.compat_flags, struct btrfs_ioctl_fs_info_args.nodesize, - struct btrfs_ioctl_defrag_range_args.start, - struct btrfs_ioctl_search_args_v2.buf_size, - struct btrfs_ioctl_logical_ino_args.flags + struct btrfs_ioctl_defrag_range_args.start ]),,, [ #include -#include ]) - AC_CHECK_DECLS(m4_normalize([BTRFS_COMPRESS_NONE, BTRFS_COMPRESS_ZLIB, - BTRFS_COMPRESS_LZO]),,,[ #include #include ])]) +st_CHECK_TYPES +st_CHECK_ENUMS + AC_CHECK_DECLS([sys_errlist]) AC_CHECK_DECLS(m4_normalize([ PTRACE_PEEKUSER, PTRACE_POKEUSER ]),,, [#include ]) -AC_CHECK_DECLS(m4_normalize([ - P_PID, - P_PPID, - P_PGID, - P_SID, - P_CID, - P_UID, - P_GID, - P_ALL, - P_LWPID -]),,, [#include ]) - -AC_CHECK_DECLS(m4_normalize([ - LO_FLAGS_READ_ONLY, - LO_FLAGS_USE_AOPS, - LO_FLAGS_AUTOCLEAR, - LO_FLAGS_PARTSCAN, - LO_FLAGS_DIRECT_IO -]),,, [#include ]) - -AC_CHECK_DECLS(m4_normalize([ - CTL_PROC, - CTL_ARLAN, - CTL_S390DBF, - CTL_SUNRPC, - CTL_PM, - CTL_FRV, - KERN_PRINTK_RATELIMIT, - KERN_PRINTK_RATELIMIT_BURST, - KERN_PTY, - KERN_NGROUPS_MAX, - KERN_SPARC_SCONS_PWROFF, - KERN_HZ_TIMER, - KERN_UNKNOWN_NMI_PANIC, - KERN_BOOTLOADER_TYPE, - KERN_RANDOMIZE, - KERN_SETUID_DUMPABLE, - KERN_SPIN_RETRY, - KERN_ACPI_VIDEO_FLAGS, - KERN_IA64_UNALIGNED, - KERN_COMPAT_LOG, - KERN_MAX_LOCK_DEPTH, - KERN_NMI_WATCHDOG, - KERN_PANIC_ON_NMI, - KERN_PANIC_ON_WARN, - KERN_PANIC_PRINT, - NET_LLC, - NET_NETFILTER, - NET_DCCP, - NET_IRDA, - NET_CORE_DESTROY_DELAY, - NET_CORE_BUDGET, - NET_CORE_AEVENT_ETIME, - NET_CORE_AEVENT_RSEQTH, - NET_CORE_WARNINGS, - NET_IPV4_IGMP_MAX_MSF, - NET_TCP_NO_METRICS_SAVE, - NET_TCP_DEFAULT_WIN_SCALE, - NET_TCP_MODERATE_RCVBUF, - NET_TCP_TSO_WIN_DIVISOR, - NET_TCP_BIC_BETA, - NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR, - NET_TCP_CONG_CONTROL, - NET_TCP_ABC, - NET_IPV4_IPFRAG_MAX_DIST, - NET_TCP_MTU_PROBING, - NET_TCP_BASE_MSS, - NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS, - NET_TCP_DMA_COPYBREAK, - NET_TCP_SLOW_START_AFTER_IDLE, - NET_CIPSOV4_CACHE_ENABLE, - NET_CIPSOV4_CACHE_BUCKET_SIZE, - NET_CIPSOV4_RBM_OPTFMT, - NET_CIPSOV4_RBM_STRICTVALID, - NET_TCP_AVAIL_CONG_CONTROL, - NET_TCP_ALLOWED_CONG_CONTROL, - NET_TCP_MAX_SSTHRESH, - NET_TCP_FRTO_RESPONSE, - NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS, - NET_IPV4_CONF_FORCE_IGMP_VERSION, - NET_IPV4_CONF_ARP_ANNOUNCE, - NET_IPV4_CONF_ARP_IGNORE, - NET_IPV4_CONF_PROMOTE_SECONDARIES, - NET_IPV4_CONF_ARP_ACCEPT, - NET_IPV4_CONF_ARP_NOTIFY, - NET_IPV6_MLD_MAX_MSF, - NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS, - VM_MAX_MAP_COUNT, - VM_LAPTOP_MODE, - VM_BLOCK_DUMP, - VM_HUGETLB_GROUP, - VM_VFS_CACHE_PRESSURE, - VM_LEGACY_VA_LAYOUT, - VM_SWAP_TOKEN_TIMEOUT -]),,, -[#include -#include ]) - -AC_CHECK_DECLS(m4_normalize([ - V4L2_FIELD_ANY, - V4L2_FIELD_NONE, - V4L2_FIELD_TOP, - V4L2_FIELD_BOTTOM, - V4L2_FIELD_INTERLACED, - V4L2_FIELD_SEQ_TB, - V4L2_FIELD_SEQ_BT, - V4L2_FIELD_ALTERNATE, - V4L2_FIELD_INTERLACED_TB, - V4L2_FIELD_INTERLACED_BT, - V4L2_BUF_TYPE_VIDEO_CAPTURE, - V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE, - V4L2_BUF_TYPE_VIDEO_OUTPUT, - V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, - V4L2_BUF_TYPE_VIDEO_OVERLAY, - V4L2_BUF_TYPE_VBI_CAPTURE, - V4L2_BUF_TYPE_VBI_OUTPUT, - V4L2_BUF_TYPE_SLICED_VBI_CAPTURE, - V4L2_BUF_TYPE_SLICED_VBI_OUTPUT, - V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY, - V4L2_BUF_TYPE_SDR_CAPTURE, - V4L2_BUF_TYPE_SDR_OUTPUT, - V4L2_TUNER_RADIO, - V4L2_TUNER_ANALOG_TV, - V4L2_TUNER_DIGITAL_TV, - V4L2_MEMORY_MMAP, - V4L2_MEMORY_USERPTR, - V4L2_MEMORY_OVERLAY, - V4L2_MEMORY_DMABUF, - V4L2_COLORSPACE_SMPTE170M, - V4L2_COLORSPACE_SMPTE240M, - V4L2_COLORSPACE_REC709, - V4L2_COLORSPACE_BT878, - V4L2_COLORSPACE_470_SYSTEM_M, - V4L2_COLORSPACE_470_SYSTEM_BG, - V4L2_COLORSPACE_JPEG, - V4L2_COLORSPACE_SRGB, - V4L2_PRIORITY_UNSET, - V4L2_PRIORITY_BACKGROUND, - V4L2_PRIORITY_INTERACTIVE, - V4L2_PRIORITY_RECORD, - V4L2_FRMSIZE_TYPE_DISCRETE, - V4L2_FRMSIZE_TYPE_CONTINUOUS, - V4L2_FRMSIZE_TYPE_STEPWISE, - V4L2_FRMIVAL_TYPE_DISCRETE, - V4L2_FRMIVAL_TYPE_CONTINUOUS, - V4L2_FRMIVAL_TYPE_STEPWISE, - V4L2_CTRL_TYPE_INTEGER, - V4L2_CTRL_TYPE_BOOLEAN, - V4L2_CTRL_TYPE_MENU, - V4L2_CTRL_TYPE_BUTTON, - V4L2_CTRL_TYPE_INTEGER64, - V4L2_CTRL_TYPE_CTRL_CLASS, - V4L2_CTRL_TYPE_STRING, - V4L2_CTRL_TYPE_BITMASK, - V4L2_CTRL_TYPE_INTEGER_MENU +AC_CHECK_TYPES(m4_normalize([ + struct v4l2_create_buffers, + struct v4l2_frmsizeenum, + struct v4l2_frmivalenum, + struct v4l2_meta_format, + struct v4l2_pix_format_mplane, + struct v4l2_plane_pix_format, + struct v4l2_sdr_format ]),,, [#include #include #include #include ]) AC_CHECK_MEMBERS(m4_normalize([ + struct v4l2_capability.device_caps, + struct v4l2_ext_control.string, + struct v4l2_format.fmt.pix_mp, + struct v4l2_format.fmt.sdr, + struct v4l2_format.fmt.sliced, struct v4l2_window.global_alpha, struct v4l2_sdr_format.buffersize ]),,, [#include @@ -786,6 +650,7 @@ AC_CHECK_SIZEOF([kernel_long_t],,[#include "$srcdir/kernel_types.h"]) SIZEOF_KERNEL_LONG_T="$ac_cv_sizeof_kernel_long_t" AC_SUBST(SIZEOF_KERNEL_LONG_T) AC_CHECK_SIZEOF([struct i64_i32],,[struct i64_i32 {long long i64; int i32;};]) +AC_CHECK_SIZEOF([struct msqid64_ds],,[#include ]) AC_CACHE_CHECK([for SIGRTMIN], [st_cv_SIGRTMIN], @@ -854,9 +719,15 @@ case "x$st_cv_have_static_assert" in ;; esac -AC_CHECK_LIB([dl], [dladdr], [dl_LIBS='-ldl'], [dl_LIBS=]) -if test "x$ac_cv_lib_dl_dladdr" = xyes; then +saved_LIBS="$LIBS" +AC_SEARCH_LIBS([dladdr], [dl]) +LIBS="$saved_LIBS" +dl_LIBS="" +if test "$ac_cv_search_dladdr" != no; then AC_DEFINE([HAVE_DLADDR], [1], [Define to 1 if the system provides dladdr]) + case "$ac_cv_search_dladdr" in + -l*) dl_LIBS="$ac_cv_search_dladdr" ;; + esac fi AC_SUBST(dl_LIBS) @@ -889,15 +760,16 @@ case "$ac_cv_search_mq_open" in esac AC_SUBST(mq_LIBS) -AC_PATH_PROG([PERL], [perl]) - AC_CHECK_TOOL([READELF], [readelf]) st_STACKTRACE if test "$arch" = mips && test "$no_create" != yes; then mkdir -p linux/mips - if $srcdir/linux/mips/genstub.sh linux/mips; then + if $srcdir/linux/mips/genstub.sh \ + $srcdir/linux/mips linux/mips n32 n64 o32 && + $srcdir/linux/mips/genstub.sh \ + $srcdir/linux linux/mips common common-32; then AC_MSG_RESULT([Generated MIPS syscallent stubs]) else AC_MSG_ERROR([Failed to generate syscallent stubs]) @@ -918,7 +790,40 @@ AC_ARG_ENABLE([mpers], esac], [enable_mpers=yes]) -st_MPERS([m32], [aarch64|powerpc64|riscv|s390x|sparc64|tile|x32|x86_64]) +AS_IF([test x$arch = xaarch64], + [# So far, only aarch64 needs a separate compiler for its compat + # personality (which is AArch32, that is more or less ARMv7 EABI) + # + # Some heuristics regarding possible compiler name: + # Debian: arm-linux-gnueabi{,hf}-gcc + # SuSE: arm7{,hl}-linux-gnueabi-gcc + # Red Hat: arm-redhat-linux-gnu-gcc + # Fedora: arm-linux-gnu-gcc + # ALT: armh-alt-linux-gnueabi-gcc + m4_foreach([triplet1], [arm, arm7, arm7hl, armh], dnl + [m4_foreach([triplet2], [, $host_vendor-], dnl + [m4_foreach([triplet3], [gnu, gnueabi, gnueabihf], dnl + [m4_foreach([triplet_cc], [gcc, cc], dnl + [m4_append([arm_compat_compilers], dnl + triplet1[-]triplet2[linux-]triplet3[-]triplet_cc)])])])]) + AC_CHECK_PROGS(CC_FOR_M32, arm_compat_compilers) + AS_IF([test -n "$CC_FOR_M32"], + [: ${CPP_FOR_M32=$CC_FOR_M32 -E} + : ${CFLAGS_FOR_M32=-std=gnu99} + : ${CPPFLAGS_FOR_M32=} + ]) + ]) + +# Set default compiler variables for personalities. +m4_foreach([pers], [M32, MX32], dnl + [m4_foreach([var], [CC, CPP, CPPFLAGS], dnl + [[: ${]var[_FOR_]pers[=$]var[}] + AC_SUBST(var[_FOR_]pers)]) dnl + m4_foreach([var], [CFLAGS], dnl + [[: ${]var[_FOR_]pers[=][}] + AC_SUBST(var[_FOR_]pers)])]) + +st_MPERS([m32], [aarch64|powerpc64|s390x|sparc64|tile|x32|x86_64]) st_MPERS([mx32], [x86_64]) AX_VALGRIND_DFLT([sgcheck], [off]) diff --git a/copyright-year-gen b/copyright-year-gen new file mode 100755 index 00000000..e044601e --- /dev/null +++ b/copyright-year-gen @@ -0,0 +1,39 @@ +#!/bin/sh +# +# Copyright (c) 2017-2019 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: LGPL-2.1-or-later + +: ${YEAR_FILE:=$1} +: ${DEFAULT_YEAR:=$2} +LC_TIME=C; export LC_TIME + +year= + +[ -n "${YEAR_FILE}" ] || { + echo >&2 "$0 $(dirname "$0")/.year [DEFAULT_YEAR]" + exit 1 +} + +[ -f "${YEAR_FILE}" ] && year="$(cat "${YEAR_FILE}")" + +[ -n "${year}" ] || + year="$(date -u +%Y -d "$(git show -s --format=format:%cD)")" + +[ -n "${year}" ] || + year="${DEFAULT_YEAR}" + +[ -n "${year}" ] || + [ -z "${SOURCE_DATE_EPOCH-}" ] || + year="$(date -u +%Y -d "@${SOURCE_DATE_EPOCH}")" + +[ -n "${year}" ] || + year="$(date -u +%Y)" + +[ -n "${year}" ] || { + printf >&2 "%s: Undefined year.\n" "$0" + exit 1 +} + +printf "%s" "${year}" diff --git a/count.c b/count.c index 561afe44..a397eba2 100644 --- a/count.c +++ b/count.c @@ -8,7 +8,7 @@ * * Copyright (c) 2004 Roland McGrath * Copyright (c) 2006 Dmitry V. Levin - * Copyright (c) 2006-2018 The strace developers. + * Copyright (c) 2006-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -16,155 +16,489 @@ #include "defs.h" +#include + /* Per-syscall stats structure */ struct call_counts { /* time may be total latency or system time */ struct timespec time; - unsigned int calls, errors; + struct timespec time_min; + struct timespec time_max; + struct timespec time_avg; + uint64_t calls, errors; }; static struct call_counts *countv[SUPPORTED_PERSONALITIES]; #define counts (countv[current_personality]) +static const struct timespec zero_ts; +static const struct timespec max_ts = { + (time_t) (long long) (zero_extend_signed_to_ull((time_t) -1ULL) >> 1), + 999999999 }; + static struct timespec overhead; + +enum count_summary_columns { + CSC_NONE, + CSC_TIME_100S, + CSC_TIME_TOTAL, + CSC_TIME_MIN, + CSC_TIME_MAX, + CSC_TIME_AVG, + CSC_CALLS, + CSC_ERRORS, + CSC_SC_NAME, + + CSC_MAX, +}; + +static uint8_t columns[CSC_MAX] = { + CSC_TIME_100S, + CSC_TIME_TOTAL, + CSC_TIME_AVG, + CSC_CALLS, + CSC_ERRORS, + CSC_SC_NAME, +}; + +static const struct { + const char *name; + uint8_t column; +} column_aliases[] = { + { "time", CSC_TIME_100S }, + { "time_percent", CSC_TIME_100S }, + { "time-percent", CSC_TIME_100S }, + { "time_total", CSC_TIME_TOTAL }, + { "time-total", CSC_TIME_TOTAL }, + { "total_time", CSC_TIME_TOTAL }, + { "total-time", CSC_TIME_TOTAL }, + { "min_time", CSC_TIME_MIN }, + { "min-time", CSC_TIME_MIN }, + { "shortest", CSC_TIME_MIN }, + { "time_min", CSC_TIME_MIN }, + { "time-min", CSC_TIME_MIN }, + { "longest" , CSC_TIME_MAX }, + { "max_time", CSC_TIME_MAX }, + { "max-time", CSC_TIME_MAX }, + { "time_max", CSC_TIME_MAX }, + { "time-max", CSC_TIME_MAX }, + { "avg_time", CSC_TIME_AVG }, + { "avg-time", CSC_TIME_AVG }, + { "time_avg", CSC_TIME_AVG }, + { "time-avg", CSC_TIME_AVG }, + { "calls", CSC_CALLS }, + { "count", CSC_CALLS }, + { "error", CSC_ERRORS }, + { "errors", CSC_ERRORS }, + { "name", CSC_SC_NAME }, + { "syscall", CSC_SC_NAME }, + { "syscall_name", CSC_SC_NAME }, + { "syscall-name", CSC_SC_NAME }, + { "none", CSC_NONE }, + { "nothing", CSC_NONE }, +}; + void count_syscall(struct tcb *tcp, const struct timespec *syscall_exiting_ts) { if (!scno_in_range(tcp->scno)) return; - if (!counts) + if (!counts) { counts = xcalloc(nsyscalls, sizeof(*counts)); + + for (size_t i = 0; i < nsyscalls; i++) + counts[i].time_min = max_ts; + } struct call_counts *cc = &counts[tcp->scno]; cc->calls++; if (syserror(tcp)) cc->errors++; + struct timespec wts; if (count_wallclock) { /* wall clock time spent while in syscall */ - struct timespec wts; ts_sub(&wts, syscall_exiting_ts, &tcp->etime); - - ts_add(&cc->time, &cc->time, &wts); } else { /* system CPU time spent while in syscall */ - ts_add(&cc->time, &cc->time, &tcp->dtime); + ts_sub(&wts, &tcp->stime, &tcp->ltime); } + + ts_sub(&wts, &wts, &overhead); + + const struct timespec *wts_nonneg = ts_max(&wts, &zero_ts); + + ts_add(&cc->time, &cc->time, wts_nonneg); + cc->time_min = *ts_min(&cc->time_min, wts_nonneg); + cc->time_max = *ts_max(&cc->time_max, wts_nonneg); +} + +static int +time_cmp(const void *a, const void *b) +{ + const unsigned int *a_int = a; + const unsigned int *b_int = b; + return -ts_cmp(&counts[*a_int].time, &counts[*b_int].time); +} + +static int +min_time_cmp(const void *a, const void *b) +{ + return -ts_cmp(&counts[*((unsigned int *) a)].time_min, + &counts[*((unsigned int *) b)].time_min); +} + +static int +max_time_cmp(const void *a, const void *b) +{ + return -ts_cmp(&counts[*((unsigned int *) a)].time_max, + &counts[*((unsigned int *) b)].time_max); } static int -time_cmp(void *a, void *b) +avg_time_cmp(const void *a, const void *b) { - return -ts_cmp(&counts[*((int *) a)].time, - &counts[*((int *) b)].time); + return -ts_cmp(&counts[*((unsigned int *) a)].time_avg, + &counts[*((unsigned int *) b)].time_avg); } static int -syscall_cmp(void *a, void *b) +syscall_cmp(const void *a, const void *b) { - const char *a_name = sysent[*((int *) a)].sys_name; - const char *b_name = sysent[*((int *) b)].sys_name; + const unsigned int *a_int = a; + const unsigned int *b_int = b; + const char *a_name = sysent[*a_int].sys_name; + const char *b_name = sysent[*b_int].sys_name; return strcmp(a_name ? a_name : "", b_name ? b_name : ""); } static int -count_cmp(void *a, void *b) +count_cmp(const void *a, const void *b) { - int m = counts[*((int *) a)].calls; - int n = counts[*((int *) b)].calls; + const unsigned int *a_int = a; + const unsigned int *b_int = b; + unsigned int m = counts[*a_int].calls; + unsigned int n = counts[*b_int].calls; return (m < n) ? 1 : (m > n) ? -1 : 0; } -static int (*sortfun)(); +static int +error_cmp(const void *a, const void *b) +{ + const unsigned int *a_int = a; + const unsigned int *b_int = b; + unsigned int m = counts[*a_int].errors; + unsigned int n = counts[*b_int].errors; + + return (m < n) ? 1 : (m > n) ? -1 : 0; +} + +typedef int (*sort_func)(const void *, const void *); +static sort_func sortfun; void set_sortby(const char *sortby) { - if (strcmp(sortby, "time") == 0) - sortfun = time_cmp; - else if (strcmp(sortby, "calls") == 0) - sortfun = count_cmp; - else if (strcmp(sortby, "name") == 0) - sortfun = syscall_cmp; - else if (strcmp(sortby, "nothing") == 0) - sortfun = NULL; - else { - error_msg_and_help("invalid sortby: '%s'", sortby); + static const sort_func sort_fns[CSC_MAX] = { + [CSC_TIME_100S] = time_cmp, + [CSC_TIME_TOTAL] = time_cmp, + [CSC_TIME_MIN] = min_time_cmp, + [CSC_TIME_MAX] = max_time_cmp, + [CSC_TIME_AVG] = avg_time_cmp, + [CSC_CALLS] = count_cmp, + [CSC_ERRORS] = error_cmp, + [CSC_SC_NAME] = syscall_cmp, + }; + + for (size_t i = 0; i < ARRAY_SIZE(column_aliases); ++i) { + if (!strcmp(column_aliases[i].name, sortby)) { + sortfun = sort_fns[column_aliases[i].column]; + return; + } + } + + error_msg_and_help("invalid sortby: '%s'", sortby); +} + +void +set_count_summary_columns(const char *s) +{ + uint8_t visible[CSC_MAX] = { 0 }; + const char *prev = s; + size_t cur = 0; + + memset(columns, 0, sizeof(columns)); + + for (;;) { + bool found = false; + const char *pos = strchr(prev, ','); + size_t len = pos ? (size_t) (pos - prev) : strlen(prev); + + for (size_t i = 0; i < ARRAY_SIZE(column_aliases); i++) { + if (strncmp(column_aliases[i].name, prev, len) || + column_aliases[i].name[len]) + continue; + if (column_aliases[i].column == CSC_NONE || + column_aliases[i].column >= CSC_MAX) + continue; + + if (visible[column_aliases[i].column]) + error_msg_and_help("call summary column " + "has been provided more " + "than once: '%s' (-U option " + "residual: '%s')", + column_aliases[i].name, + prev); + + columns[cur++] = column_aliases[i].column; + visible[column_aliases[i].column] = 1; + found = true; + + break; + } + + if (!found) + error_msg_and_help("unknown column name: '%.*s'", + (int) MIN(len, INT_MAX), prev); + + if (!pos) + break; + + prev = pos + 1; } + + /* + * Always enable syscall name column, as without it table is meaningless + */ + if (!visible[CSC_SC_NAME]) + columns[cur++] = CSC_SC_NAME; } -void set_overhead(int n) +int +set_overhead(const char *str) { - overhead.tv_sec = n / 1000000; - overhead.tv_nsec = n % 1000000 * 1000; + return parse_ts(str, &overhead); +} + +static size_t ATTRIBUTE_FORMAT((printf, 1, 2)) +num_chars(const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + int ret = vsnprintf(NULL, 0, fmt, ap); + va_end(ap); + + return (unsigned int) MAX(ret, 0); } static void call_summary_pers(FILE *outf) { - static const char dashes[] = "----------------"; - static const char header[] = "%6.6s %11.11s %11.11s %9.9s %9.9s %s\n"; - static const char data[] = "%6.2f %11.6f %11lu %9u %9.u %s\n"; - static const char summary[] = "%6.6s %11.6f %11.11s %9u %9.u %s\n"; - - unsigned int i; - unsigned int call_cum, error_cum; - struct timespec tv_cum, dtv; - double float_tv_cum; - double percent; - unsigned int *sorted_count; - - fprintf(outf, header, - "% time", "seconds", "usecs/call", - "calls", "errors", "syscall"); - fprintf(outf, header, dashes, dashes, dashes, dashes, dashes, dashes); - - sorted_count = xcalloc(sizeof(sorted_count[0]), nsyscalls); - call_cum = error_cum = tv_cum.tv_sec = tv_cum.tv_nsec = 0; - for (i = 0; i < nsyscalls; i++) { - sorted_count[i] = i; - if (counts == NULL || counts[i].calls == 0) + unsigned int *indices; + size_t last_column = 0; + + struct timespec tv_cum = zero_ts; + const struct timespec *tv_min = &max_ts; + const struct timespec *tv_min_max = &zero_ts; + const struct timespec *tv_max = &zero_ts; + const struct timespec *tv_avg_max = &zero_ts; + uint64_t call_cum = 0; + uint64_t error_cum = 0; + + double float_tv_cum; + double percent; + + size_t sc_name_max = 0; + + + /* sort, calculate statistics */ + indices = xcalloc(sizeof(indices[0]), nsyscalls); + for (size_t i = 0; i < nsyscalls; ++i) { + indices[i] = i; + if (counts[i].calls == 0) continue; - ts_mul(&dtv, &overhead, counts[i].calls); - ts_sub(&counts[i].time, &counts[i].time, &dtv); - if (counts[i].time.tv_sec < 0 || counts[i].time.tv_nsec < 0) - counts[i].time.tv_sec = counts[i].time.tv_nsec = 0; + + ts_add(&tv_cum, &tv_cum, &counts[i].time); + tv_min = ts_min(tv_min, &counts[i].time_min); + tv_min_max = ts_max(tv_min_max, &counts[i].time_min); + tv_max = ts_max(tv_max, &counts[i].time_max); call_cum += counts[i].calls; error_cum += counts[i].errors; - ts_add(&tv_cum, &tv_cum, &counts[i].time); + + ts_div(&counts[i].time_avg, &counts[i].time, counts[i].calls); + tv_avg_max = ts_max(tv_avg_max, &counts[i].time_avg); + + sc_name_max = MAX(sc_name_max, strlen(sysent[i].sys_name)); } float_tv_cum = ts_float(&tv_cum); - if (counts) { - if (sortfun) - qsort((void *) sorted_count, nsyscalls, - sizeof(sorted_count[0]), sortfun); - for (i = 0; i < nsyscalls; i++) { - double float_syscall_time; - unsigned int idx = sorted_count[i]; - struct call_counts *cc = &counts[idx]; - if (cc->calls == 0) - continue; - ts_div(&dtv, &cc->time, cc->calls); - float_syscall_time = ts_float(&cc->time); - percent = (100.0 * float_syscall_time); - if (percent != 0.0) - percent /= float_tv_cum; - /* else: float_tv_cum can be 0.0 too and we get 0/0 = NAN */ - fprintf(outf, data, - percent, float_syscall_time, - (long) (1000000 * dtv.tv_sec + dtv.tv_nsec / 1000), - cc->calls, cc->errors, sysent[idx].sys_name); + + if (sortfun) + qsort((void *) indices, nsyscalls, sizeof(indices[0]), sortfun); + + enum column_flags { + CF_L = 1 << 0, /* Left-aligned column */ + }; + static const struct { + const char *s; + size_t sz; + const char *fmt; + const char *last_fmt; + uint32_t flags; + } cdesc[] = { + [CSC_TIME_100S] = { ARRSZ_PAIR("% time") - 1, "%1$*2$.2f" }, + [CSC_TIME_MIN] = { ARRSZ_PAIR("shortest") - 1, "%1$*2$.6f" }, + [CSC_TIME_MAX] = { ARRSZ_PAIR("longest") - 1, "%1$*2$.6f" }, + /* Historical field sizes are preserved */ + [CSC_TIME_TOTAL] = { "seconds", 11, "%1$*2$.6f" }, + [CSC_TIME_AVG] = { "usecs/call", 11, "%1$*2$" PRIu64 }, + [CSC_CALLS] = { "calls", 9, "%1$*2$" PRIu64 }, + [CSC_ERRORS] = { "errors", 9, "%1$*2$.0" PRIu64 }, + [CSC_SC_NAME] = { "syscall", 16, "%1$-*2$s", "%1$s", CF_L }, + }; + + /* calculate column widths */ +#define W_(c_, v_) [c_] = MAX(cdesc[c_].sz, (v_)) + unsigned int cwidths[CSC_MAX] = { + W_(CSC_TIME_100S, sizeof("100.00") - 1), + W_(CSC_TIME_TOTAL, num_chars("%.6f", float_tv_cum)), + W_(CSC_TIME_MIN, num_chars("%" PRId64 ".000000", + (int64_t) tv_min_max->tv_sec)), + W_(CSC_TIME_MAX, num_chars("%" PRId64 ".000000", + (int64_t) tv_max->tv_sec)), + W_(CSC_TIME_AVG, num_chars("%" PRId64 , + (uint64_t) (ts_float(tv_avg_max) + * 1e6))), + W_(CSC_CALLS, num_chars("%" PRIu64, call_cum)), + W_(CSC_ERRORS, num_chars("%" PRIu64, error_cum)), + W_(CSC_SC_NAME, sc_name_max + 1), + }; +#undef W_ + + /* find the last column */ + for (size_t i = 0; i < ARRAY_SIZE(columns) && columns[i]; ++i) + last_column = i; + + /* header */ + for (size_t i = 0; i <= last_column; ++i) { + const char *fmt = cdesc[columns[i]].flags & CF_L + ? (i == last_column ? "%1$s" : "%1$-*2$s") + : "%1$*2$s"; + if (i) + fputc(' ', outf); + fprintf(outf, fmt, cdesc[columns[i]].s, cwidths[columns[i]]); + } + fputc('\n', outf); + + /* divider */ + for (size_t i = 0; i <= last_column; ++i) { + if (i) + fputc(' ', outf); + + for (size_t j = 0; j < cwidths[columns[i]]; ++j) + fputc('-', outf); + } + fputc('\n', outf); + + /* cache column formats */ +#define FC_(c_) \ + case (c_): \ + column_fmts[i] = (i == last_column) && cdesc[c].last_fmt \ + ? cdesc[c].last_fmt : cdesc[c].fmt; \ + break +#define PC_(c_, val_) \ + case (c_): \ + fprintf(outf, column_fmts[i], (val_), cwidths[c]); \ + break + + const char *column_fmts[last_column + 1]; + for (size_t i = 0; i <= last_column; ++i) { + const size_t c = columns[i]; + + switch (c) { + FC_(CSC_TIME_100S); + FC_(CSC_TIME_TOTAL); + FC_(CSC_TIME_MIN); + FC_(CSC_TIME_MAX); + FC_(CSC_TIME_AVG); + FC_(CSC_CALLS); + FC_(CSC_ERRORS); + FC_(CSC_SC_NAME); + } + } + + /* data output */ + for (size_t j = 0; j < nsyscalls; ++j) { + unsigned int idx = indices[j]; + struct call_counts *cc = &counts[idx]; + double float_syscall_time; + + if (cc->calls == 0) + continue; + + float_syscall_time = ts_float(&cc->time); + percent = (100.0 * float_syscall_time); + /* else: float_tv_cum can be 0.0 too and we get 0/0 = NAN */ + if (percent != 0.0) + percent /= float_tv_cum; + + for (size_t i = 0; i <= last_column; ++i) { + const size_t c = columns[i]; + if (i) + fputc(' ', outf); + + switch (c) { + PC_(CSC_TIME_100S, percent); + PC_(CSC_TIME_TOTAL, float_syscall_time); + PC_(CSC_TIME_MIN, ts_float(&cc->time_min)); + PC_(CSC_TIME_MAX, ts_float(&cc->time_max)); + PC_(CSC_TIME_AVG, + (uint64_t) (ts_float(&cc->time_avg) * 1e6)); + PC_(CSC_CALLS, cc->calls); + PC_(CSC_ERRORS, cc->errors); + PC_(CSC_SC_NAME, sysent[idx].sys_name); + } + } + + fputc('\n', outf); + } + + free(indices); + + /* footer */ + for (size_t i = 0; i <= last_column; ++i) { + if (i) + fputc(' ', outf); + + for (size_t j = 0; j < cwidths[columns[i]]; ++j) + fputc('-', outf); + } + fputc('\n', outf); + + /* totals */ + for (size_t i = 0; i <= last_column; ++i) { + const size_t c = columns[i]; + if (i) + fputc(' ', outf); + + switch (c) { + PC_(CSC_TIME_100S, 100.0); + PC_(CSC_TIME_TOTAL, float_tv_cum); + PC_(CSC_TIME_MIN, ts_float(tv_min)); + PC_(CSC_TIME_MAX, ts_float(tv_max)); + PC_(CSC_TIME_AVG, (uint64_t) (float_tv_cum / call_cum * 1e6)); + PC_(CSC_CALLS, call_cum); + PC_(CSC_ERRORS, error_cum); + PC_(CSC_SC_NAME, "total"); } } - free(sorted_count); + fputc('\n', outf); - fprintf(outf, header, dashes, dashes, dashes, dashes, dashes, dashes); - fprintf(outf, summary, - "100.00", float_tv_cum, "", - call_cum, error_cum, "total"); +#undef PC_ +#undef FC_ } void diff --git a/debian/changelog b/debian/changelog index b2c835a5..884ccb49 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,56 @@ -strace (5.1-1) experimental; urgency=low +strace (5.9-1) experimental; urgency=low - * strace 5.1 snapshot. + * strace 5.9 snapshot. - -- Strace Wed, 22 May 2019 13:08:43 +0000 + -- Strace Thu, 24 Sep 2020 09:19:03 +0000 + +strace (5.8-1) unstable; urgency=medium + + * New upstream version. + + -- Dmitry V. Levin Thu, 06 Aug 2020 08:00:00 +0000 + +strace (5.7-1) unstable; urgency=medium + + * New upstream version. + + -- Dmitry V. Levin Mon, 01 Jun 2020 14:15:16 +0000 + +strace (5.6-1) unstable; urgency=medium + + * New upstream version. + + -- Dmitry V. Levin Tue, 07 Apr 2020 10:11:12 +0000 + +strace (5.5-1) unstable; urgency=medium + + * New upstream version. + + -- Dmitry V. Levin Thu, 06 Feb 2020 15:16:17 +0000 + +strace (5.4-1) unstable; urgency=medium + + * New upstream version. + + -- Dmitry V. Levin Thu, 28 Nov 2019 20:21:22 +0000 + +strace (5.3-1) unstable; urgency=medium + + * New upstream version. + + -- Dmitry V. Levin Wed, 25 Sep 2019 01:02:03 +0000 + +strace (5.2-1) unstable; urgency=medium + + * New upstream version. + + -- Dmitry V. Levin Fri, 12 Jul 2019 12:13:14 +0000 + +strace (5.1-1) unstable; urgency=medium + + * New upstream version. + + -- Dmitry V. Levin Wed, 22 May 2019 11:12:13 +0000 strace (5.0-1) unstable; urgency=medium diff --git a/debian/changelog.in b/debian/changelog.in index 51e2fda7..8427edc9 100644 --- a/debian/changelog.in +++ b/debian/changelog.in @@ -4,6 +4,54 @@ strace (@PACKAGE_VERSION@-1) experimental; urgency=low -- Strace <@PACKAGE_BUGREPORT@> @DEB_CHANGELOGTIME@ +strace (5.8-1) unstable; urgency=medium + + * New upstream version. + + -- Dmitry V. Levin Thu, 06 Aug 2020 08:00:00 +0000 + +strace (5.7-1) unstable; urgency=medium + + * New upstream version. + + -- Dmitry V. Levin Mon, 01 Jun 2020 14:15:16 +0000 + +strace (5.6-1) unstable; urgency=medium + + * New upstream version. + + -- Dmitry V. Levin Tue, 07 Apr 2020 10:11:12 +0000 + +strace (5.5-1) unstable; urgency=medium + + * New upstream version. + + -- Dmitry V. Levin Thu, 06 Feb 2020 15:16:17 +0000 + +strace (5.4-1) unstable; urgency=medium + + * New upstream version. + + -- Dmitry V. Levin Thu, 28 Nov 2019 20:21:22 +0000 + +strace (5.3-1) unstable; urgency=medium + + * New upstream version. + + -- Dmitry V. Levin Wed, 25 Sep 2019 01:02:03 +0000 + +strace (5.2-1) unstable; urgency=medium + + * New upstream version. + + -- Dmitry V. Levin Fri, 12 Jul 2019 12:13:14 +0000 + +strace (5.1-1) unstable; urgency=medium + + * New upstream version. + + -- Dmitry V. Levin Wed, 22 May 2019 11:12:13 +0000 + strace (5.0-1) unstable; urgency=medium * New upstream version. diff --git a/debian/control b/debian/control index 38e13a13..0da25c4b 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: strace Maintainer: Steve McIntyre <93sam@debian.org> Section: utils Priority: optional -Build-Depends: libc6-dev (>= 2.2.2) [!alpha !ia64], libc6.1-dev (>= 2.2.2) [alpha ia64], gcc-multilib [amd64 i386 powerpc ppc64 ppc64el s390 s390x sparc sparc64 x32], debhelper (>= 7.0.0), gawk, libdw-dev, libiberty-dev, libbluetooth-dev +Build-Depends: libc6-dev (>= 2.2.2) [!alpha !ia64], libc6.1-dev (>= 2.2.2) [alpha ia64], gcc-multilib [amd64 i386 powerpc ppc64 s390 s390x sparc sparc64 x32], gcc-arm-linux-gnueabi [arm64]|gcc-arm-linux-gnueabihf [arm64], libc6-dev-armel-cross [arm64]|libc6-dev-armhf-cross [arm64], linux-libc-dev-armel-cross [arm64]|linux-libc-dev-armhf-cross [arm64], debhelper (>= 7.0.0), gawk, libdw-dev, libiberty-dev, libbluetooth-dev Standards-Version: 4.1.3 Homepage: https://strace.io Vcs-Git: https://salsa.debian.org/debian/strace.git diff --git a/debian/copyright b/debian/copyright index abaa28b6..217b9a00 100644 --- a/debian/copyright +++ b/debian/copyright @@ -11,7 +11,7 @@ Copyright (c) 1993 Ulrich Pegelow Copyright (c) 1995, 1996 Michael Elizabeth Chastain Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey Copyright (c) 1998-2001 Wichert Akkerman -Copyright (c) 2001-2019 The strace developers. +Copyright (c) 2001-2020 The strace developers. All rights reserved. strace is free software; you can redistribute it and/or modify it diff --git a/debian/rules b/debian/rules index b22767ac..87c7bc06 100755 --- a/debian/rules +++ b/debian/rules @@ -61,7 +61,7 @@ build/Makefile: configure build-udeb/Makefile: configure mkdir -p $(@D) cd $(@D); sh ../configure --enable-mpers=check --prefix=/usr \ - --without-stacktrace --without-libiberty $(CONFIG_OPTS) + --disable-stacktrace --without-libiberty $(CONFIG_OPTS) build64/Makefile: configure mkdir -p $(@D) diff --git a/debian/watch b/debian/watch index 8bb7f45a..a3fc6204 100644 --- a/debian/watch +++ b/debian/watch @@ -1,2 +1,2 @@ -version=3 -opts=pgpsigurlmangle=s/$/.asc/,uversionmangle=s/-/./g http://sf.net/strace/strace-([[:digit:].-]*)\.tar\.xz +version=4 +opts=pgpsigurlmangle=s/$/.asc/,uversionmangle=s/-/./g https://strace.io/files/@ANY_VERSION@/@PACKAGE@-@ANY_VERSION@@ARCHIVE_EXT@ diff --git a/defs.h b/defs.h index 512ad51f..7151e90c 100644 --- a/defs.h +++ b/defs.h @@ -2,7 +2,7 @@ * Copyright (c) 1991, 1992 Paul Kranenburg * Copyright (c) 1993 Branko Lankester * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey - * Copyright (c) 2001-2019 The strace developers. + * Copyright (c) 1999-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -153,6 +153,63 @@ extern char *stpcpy(char *dst, const char *src); # define is_bigendian false # endif +# if SUPPORTED_PERSONALITIES > 1 +extern void set_personality(unsigned int personality); +extern unsigned current_personality; +# else +# define set_personality(personality) ((void)0) +# define current_personality 0 +# endif + +# if SUPPORTED_PERSONALITIES == 1 +# define current_wordsize PERSONALITY0_WORDSIZE +# define current_klongsize PERSONALITY0_KLONGSIZE +# else +# if SUPPORTED_PERSONALITIES == 2 && PERSONALITY0_WORDSIZE == PERSONALITY1_WORDSIZE +# define current_wordsize PERSONALITY0_WORDSIZE +# else +extern unsigned current_wordsize; +# endif +# if SUPPORTED_PERSONALITIES == 2 && PERSONALITY0_KLONGSIZE == PERSONALITY1_KLONGSIZE +# define current_klongsize PERSONALITY0_KLONGSIZE +# else +extern unsigned current_klongsize; +# endif +# endif + +# define max_addr() (~0ULL >> ((8 - current_wordsize) * 8)) +# define max_kaddr() (~0ULL >> ((8 - current_klongsize) * 8)) + +/* Shorthands for defining word/klong-based dispatcher function bodies */ +# ifndef current_wordsize +# define opt_wordsize(opt_64_, opt_32_) \ + ((current_wordsize > sizeof(uint32_t)) ? (opt_64_) : (opt_32_)) +# define dispatch_wordsize(call_64_, call_32_, ...) \ + ((current_wordsize > sizeof(uint32_t)) \ + ? (call_64_)(__VA_ARGS__) : (call_32_)(__VA_ARGS__)) +# elif current_wordsize > 4 +# define opt_wordsize(opt_64_, opt_32_) (opt_64_) +# define dispatch_wordsize(call_64_, call_32_, ...) ((call_64_)(__VA_ARGS__)) +# else /* current_wordsize == 4 */ +# define opt_wordsize(opt_64_, opt_32_) (opt_32_) +# define dispatch_wordsize(call_64_, call_32_, ...) ((call_32_)(__VA_ARGS__)) +# endif + +# ifndef current_klongsize +# define opt_klongsize(opt_64_, opt_32_) \ + ((current_klongsize > sizeof(uint32_t)) ? (opt_64_) : (opt_32_)) +# define dispatch_klongsize(call_64_, call_32_, ...) \ + ((current_klongsize > sizeof(uint32_t)) \ + ? (call_64_)(__VA_ARGS__) : (call_32_)(__VA_ARGS__)) +# elif current_klongsize > 4 +# define opt_klongsize(opt_64_, opt_32_) (opt_64_) +# define dispatch_klongsize(call_64_, call_32_, ...) ((call_64_)(__VA_ARGS__)) +# else /* current_klongsize == 4 */ +# define opt_klongsize(opt_64_, opt_32_) (opt_32_) +# define dispatch_klongsize(call_64_, call_32_, ...) ((call_32_)(__VA_ARGS__)) +# endif + + typedef struct ioctlent { const char *symbol; unsigned int code; @@ -183,10 +240,13 @@ struct inject_data { struct inject_opts { uint16_t first; + uint16_t last; uint16_t step; struct inject_data data; }; +# define INJECT_LAST_INF ((uint16_t) -1) + # define MAX_ERRNO_VALUE 4095 /* Trace Control Block */ @@ -194,16 +254,19 @@ struct tcb { int flags; /* See below for TCB_ values */ int pid; /* If 0, this tcb is free */ int qual_flg; /* qual_flags[scno] or DEFAULT_QUAL_FLAGS + RAW */ +# if SUPPORTED_PERSONALITIES > 1 + unsigned int currpers; /* Personality at the time of scno update */ +# endif unsigned long u_error; /* Error code */ kernel_ulong_t scno; /* System call number */ + kernel_ulong_t true_scno; /* Same, but without subcall decoding and shuffling */ kernel_ulong_t u_arg[MAX_ARGS]; /* System call arguments */ kernel_long_t u_rval; /* Return value */ -# if SUPPORTED_PERSONALITIES > 1 - unsigned int currpers; /* Personality at the time of scno update */ -# endif int sys_func_rval; /* Syscall entry parser's return value */ int curcol; /* Output column for this process */ FILE *outf; /* Output file for this process */ + struct staged_output_data *staged_output_data; + const char *auxstr; /* Auxiliary info from syscall (see RVAL_STR) */ void *_priv_data; /* Private data for syscall decoding functions */ void (*_free_priv_data)(void *); /* Callback for freeing priv_data */ @@ -213,10 +276,18 @@ struct tcb { const struct_sysent *s_prev_ent; /* for "resuming interrupted SYSCALL" msg */ struct inject_opts *inject_vec[SUPPORTED_PERSONALITIES]; struct timespec stime; /* System time usage as of last process wait */ - struct timespec dtime; /* Delta for system time usage */ - struct timespec etime; /* Syscall entry time */ + struct timespec ltime; /* System time usage as of last syscall entry */ + struct timespec atime; /* System time right after attach */ + struct timespec etime; /* Syscall entry time (CLOCK_MONOTONIC) */ struct timespec delay_expiration_time; /* When does the delay end */ + /* + * The ID of the PID namespace of this process + * (inode number of /proc//ns/pid) + * (0: not initialized) + */ + unsigned int pid_ns; + struct mmap_cache_t *mmap_cache; /* @@ -272,6 +343,9 @@ struct tcb { # define TCB_DELAYED 0x2000 /* Current syscall has been delayed */ # define TCB_TAMPERED_NO_FAIL 0x4000 /* We tamper tcb with syscall that should not fail. */ +# define TCB_SECCOMP_FILTER 0x8000 /* This process has a seccomp filter + * attached. + */ /* qualifier flags */ # define QUAL_TRACE 0x001 /* this system call should be traced */ @@ -298,6 +372,7 @@ struct tcb { # define inject_delay_exit(tcp) ((tcp)->flags & TCB_INJECT_DELAY_EXIT) # define syscall_delayed(tcp) ((tcp)->flags & TCB_DELAYED) # define syscall_tampered_nofail(tcp) ((tcp)->flags & TCB_TAMPERED_NO_FAIL) +# define has_seccomp_filter(tcp) ((tcp)->flags & TCB_SECCOMP_FILTER) extern const struct_sysent stub_sysent; # define tcp_sysent(tcp) (tcp->s_ent ?: &stub_sysent) @@ -306,30 +381,13 @@ extern const struct_sysent stub_sysent; # include "xlat.h" extern const struct xlat addrfams[]; - -/** Protocol hardware identifiers array, sorted, defined in sockaddr.c. */ extern const struct xlat arp_hardware_types[]; -/** Protocol hardware identifiers array size without terminating record. */ -extern const size_t arp_hardware_types_size; - extern const struct xlat at_flags[]; extern const struct xlat clocknames[]; extern const struct xlat dirent_types[]; - -/** Ethernet protocols list, sorted, defined in sockaddr.c. */ extern const struct xlat ethernet_protocols[]; -/** Ethernet protocols array size without terminating record. */ -extern const size_t ethernet_protocols_size; - -/** IP protocols list, sorted, defined in net.c. */ extern const struct xlat inet_protocols[]; -/** IP protocols array size without terminating record. */ -extern const size_t inet_protocols_size; - extern const struct xlat evdev_abs[]; -/** Number of elements in evdev_abs array without the terminating record. */ -extern const size_t evdev_abs_size; - extern const struct xlat audit_arch[]; extern const struct xlat evdev_ev[]; extern const struct xlat iffflags[]; @@ -341,11 +399,13 @@ extern const struct xlat nl_netfilter_msg_types[]; extern const struct xlat nl_route_types[]; extern const struct xlat open_access_modes[]; extern const struct xlat open_mode_flags[]; +extern const struct xlat pollflags[]; extern const struct xlat ptrace_cmds[]; extern const struct xlat resource_flags[]; extern const struct xlat routing_scopes[]; extern const struct xlat routing_table_ids[]; extern const struct xlat routing_types[]; +extern const struct xlat rwf_flags[]; extern const struct xlat seccomp_filter_flags[]; extern const struct xlat seccomp_ret_action[]; extern const struct xlat setns_types[]; @@ -361,7 +421,11 @@ extern const struct xlat whence_codes[]; # define RVAL_HEX 001 /* hex format */ # define RVAL_OCTAL 002 /* octal format */ # define RVAL_FD 010 /* file descriptor */ -# define RVAL_MASK 013 /* mask for these values */ +# define RVAL_TID 011 /* task ID */ +# define RVAL_SID 012 /* session ID */ +# define RVAL_TGID 013 /* thread group ID */ +# define RVAL_PGID 014 /* process group ID */ +# define RVAL_MASK 017 /* mask for these values */ # define RVAL_STR 020 /* Print `auxstr' field after return val */ # define RVAL_NONE 040 /* Print nothing */ @@ -376,6 +440,16 @@ extern const struct xlat whence_codes[]; # define indirect_ipccall(tcp) (tcp_sysent(tcp)->sys_flags & TRACE_INDIRECT_SUBCALL) +enum pid_type { + PT_TID, + PT_TGID, + PT_PGID, + PT_SID, + + PT_COUNT, + PT_NONE = -1 +}; + enum sock_proto { SOCK_PROTO_UNKNOWN, SOCK_PROTO_UNIX, @@ -413,11 +487,11 @@ typedef enum { } cflag_t; extern cflag_t cflag; extern bool Tflag; +extern int Tflag_scale; +extern int Tflag_width; extern bool iflag; extern bool count_wallclock; -extern unsigned int qflag; -extern bool not_failing_only; -extern unsigned int show_fd_path; +extern unsigned int pidns_translation; /* are we filtering traces based on paths? */ extern struct path_set { const char **paths_selected; @@ -425,8 +499,16 @@ extern struct path_set { size_t size; } global_path_set; # define tracing_paths (global_path_set.num_selected != 0) +enum xflag_opts { + HEXSTR_NONE, + HEXSTR_NON_ASCII, + HEXSTR_ALL, + + NUM_HEXSTR_OPTS +}; extern unsigned xflag; -extern unsigned followfork; +extern bool followfork; +extern bool output_separately; # ifdef ENABLE_STACKTRACE /* if this is true do the stack trace for every system call */ extern bool stack_trace_enabled; @@ -439,15 +521,18 @@ extern unsigned os_release; # undef KERNEL_VERSION # define KERNEL_VERSION(a, b, c) (((a) << 16) + ((b) << 8) + (c)) -extern int read_int_from_file(struct tcb *, const char *, int *); +extern int read_int_from_file(const char *, int *); extern void set_sortby(const char *); -extern void set_overhead(int); +extern int set_overhead(const char *); +extern void set_count_summary_columns(const char *columns); extern bool get_instruction_pointer(struct tcb *, kernel_ulong_t *); extern bool get_stack_pointer(struct tcb *, kernel_ulong_t *); extern void print_instruction_pointer(struct tcb *); +extern void print_syscall_number(struct tcb *); + extern void print_syscall_resume(struct tcb *tcp); extern int syscall_entering_decode(struct tcb *); @@ -492,7 +577,14 @@ extern kernel_long_t scno_by_name(const char *s, unsigned p, * @return Shuffled or raw syscall number, respectively. */ extern kernel_ulong_t shuffle_scno(kernel_ulong_t scno); -extern const char *err_name(unsigned long err); +/** + * Print error name in accordance with current xlat style setting. + * + * @param err Error value. + * @param negated If set to true, negative values of the err parameter indicate + * error condition, otherwise positive. + */ +extern void print_err(int64_t err, bool negated); extern bool is_erestart(struct tcb *); extern void temporarily_clear_syserror(struct tcb *); @@ -594,6 +686,9 @@ umoven_or_printaddr_ignore_syserror(struct tcb *tcp, const kernel_ulong_t addr, extern int umovestr(struct tcb *, kernel_ulong_t addr, unsigned int len, char *laddr); +/* Invalidate the cache used by umove* functions. */ +extern void invalidate_umove_cache(void); + extern int upeek(struct tcb *tcp, unsigned long, kernel_ulong_t *); extern int upoke(struct tcb *tcp, unsigned long, kernel_ulong_t); @@ -618,13 +713,19 @@ pathtrace_match(struct tcb *tcp) return pathtrace_match_set(tcp, &global_path_set); } -extern int getfdpath(struct tcb *, int, char *, unsigned); +extern int getfdpath_pid(pid_t pid, int fd, char *buf, unsigned bufsize); + +static inline int +getfdpath(struct tcb *tcp, int fd, char *buf, unsigned bufsize) +{ + return getfdpath_pid(tcp->pid, fd, buf, bufsize); +} + extern unsigned long getfdinode(struct tcb *, int); extern enum sock_proto getfdproto(struct tcb *, int); extern const char *xlookup(const struct xlat *, const uint64_t); -extern const char *xlat_search(const struct xlat *, const size_t, const uint64_t); -extern const char *xlat_idx(const struct xlat *xlat, size_t nmemb, uint64_t val); +extern const char *xlookup_le(const struct xlat *, uint64_t *); struct dyxlat; struct dyxlat *dyxlat_alloc(size_t nmemb); @@ -651,11 +752,18 @@ str_strip_prefix_len(const char *str, const char *prefix, size_t prefix_len) # define STR_STRIP_PREFIX(str, prefix) \ str_strip_prefix_len((str), (prefix), sizeof(prefix) - 1) +/** String is '\0'-terminated. */ # define QUOTE_0_TERMINATED 0x01 +/** Do not emit leading and ending '"' characters. */ # define QUOTE_OMIT_LEADING_TRAILING_QUOTES 0x02 +/** Do not print '\0' if it is the last character. */ # define QUOTE_OMIT_TRAILING_0 0x08 -# define QUOTE_FORCE_HEX 0x10 -# define QUOTE_EMIT_COMMENT 0x20 +/** Print ellipsis if the last character is not '\0' */ +# define QUOTE_EXPECT_TRAILING_0 0x10 +/** Print string in hex (using '\xHH' notation). */ +# define QUOTE_FORCE_HEX 0x20 +/** Enclose the string in C comment syntax. */ +# define QUOTE_EMIT_COMMENT 0x40 extern int string_quote(const char *, char *, unsigned int, unsigned int, const char *escape_chars); @@ -696,46 +804,8 @@ extern int printxvals_ex(uint64_t val, const char *dflt, ATTRIBUTE_SENTINEL; # define printxvals(val_, dflt_, ...) \ printxvals_ex((val_), (dflt_), XLAT_STYLE_DEFAULT, __VA_ARGS__) - -extern int printxval_searchn_ex(const struct xlat *, size_t xlat_size, - uint64_t val, const char *dflt, - enum xlat_style); - -static inline int -printxval_searchn(const struct xlat *xlat, size_t xlat_size, uint64_t val, - const char *dflt) -{ - return printxval_searchn_ex(xlat, xlat_size, val, dflt, - XLAT_STYLE_DEFAULT); -} - -/** - * Wrapper around printxval_searchn that passes ARRAY_SIZE - 1 - * as the array size, as all arrays are XLAT_END-terminated and - * printxval_searchn expects a size without the terminating record. - */ -# define printxval_search(xlat__, val__, dflt__) \ - printxval_searchn(xlat__, ARRAY_SIZE(xlat__) - 1, val__, dflt__) -# define printxval_search_ex(xlat__, val__, dflt__, style__) \ - printxval_searchn_ex((xlat__), ARRAY_SIZE(xlat__) - 1, (val__), \ - (dflt__), (style__)) - -extern int printxval_indexn_ex(const struct xlat *, size_t xlat_size, - uint64_t val, const char *dflt, enum xlat_style); - -static inline int -printxval_indexn(const struct xlat *xlat, size_t xlat_size, uint64_t val, - const char *dflt) -{ - return printxval_indexn_ex(xlat, xlat_size, val, dflt, - XLAT_STYLE_DEFAULT); -} - -# define printxval_index(xlat__, val__, dflt__) \ - printxval_indexn(xlat__, ARRAY_SIZE(xlat__) - 1, val__, dflt__) -# define printxval_index_ex(xlat__, val__, dflt__) \ - printxval_indexn_ex((xlat__), ARRAY_SIZE(xlat__) - 1, (val__), \ - (dflt__), XLAT_STYLE_DEFAULT) +# define printxval_ex(xlat_, val_, dflt_, style_) \ + printxvals_ex((val_), (dflt_), (style_), (xlat_), NULL) extern int sprintxval_ex(char *buf, size_t size, const struct xlat *, unsigned int val, const char *dflt, enum xlat_style); @@ -747,43 +817,36 @@ sprintxval(char *buf, size_t size, const struct xlat *xlat, unsigned int val, return sprintxval_ex(buf, size, xlat, val, dflt, XLAT_STYLE_DEFAULT); } -extern void printxval_dispatch_ex(const struct xlat *, size_t xlat_size, - uint64_t val, const char *dflt, - enum xlat_type, enum xlat_style); -static inline void -printxval_dispatch(const struct xlat *xlat, size_t xlat_size, uint64_t val, - const char *dflt, enum xlat_type xt) -{ - return printxval_dispatch_ex(xlat, xlat_size, val, dflt, xt, - XLAT_STYLE_DEFAULT); -} - enum xlat_style_private_flag_bits { /* print_array */ PAF_PRINT_INDICES_BIT = XLAT_STYLE_SPEC_BITS + 1, - PAF_INDEX_XLAT_SORTED_BIT, - PAF_INDEX_XLAT_VALUE_INDEXED_BIT, + PAF_ARRAY_TRUNCATED_BIT, /* print_xlat */ PXF_DEFAULT_STR_BIT, }; -# define FLAG_(name_) name_ = 1 << name_##_BIT - enum xlat_style_private_flags { /* print_array */ - FLAG_(PAF_PRINT_INDICES), - FLAG_(PAF_INDEX_XLAT_SORTED), - FLAG_(PAF_INDEX_XLAT_VALUE_INDEXED), + FLAG(PAF_PRINT_INDICES), + FLAG(PAF_ARRAY_TRUNCATED), /* print_xlat */ - FLAG_(PXF_DEFAULT_STR), + FLAG(PXF_DEFAULT_STR), }; -# undef FLAG_ - -/** Print a value in accordance with xlat formatting settings. */ -extern void print_xlat_ex(uint64_t val, const char *str, enum xlat_style style); +/** + * Print a value in accordance with xlat formatting settings. + * + * @param val Value itself. + * @param str String representation of the value. Semantics may be affected + * by style argument; + * @param style Combination of flags from enum xlat_style and PXF_* flags + * from enum xlat_style_private_flags: + * - PXF_DEFAULT_STR - interpret str argument as default + * (fallback) string and not as string representation of val. + */ +extern void print_xlat_ex(uint64_t val, const char *str, uint32_t style); # define print_xlat(val_) \ print_xlat_ex((val_), #val_, XLAT_STYLE_DEFAULT) # define print_xlat32(val_) \ @@ -801,30 +864,40 @@ extern int printflags_ex(uint64_t flags, const char *dflt, enum xlat_style, const struct xlat *, ...) ATTRIBUTE_SENTINEL; extern const char *sprintflags_ex(const char *prefix, const struct xlat *, - uint64_t flags, enum xlat_style); + uint64_t flags, char sep, enum xlat_style); static inline const char * sprintflags(const char *prefix, const struct xlat *xlat, uint64_t flags) { - return sprintflags_ex(prefix, xlat, flags, XLAT_STYLE_DEFAULT); + return sprintflags_ex(prefix, xlat, flags, '\0', XLAT_STYLE_DEFAULT); } extern const char *sprinttime(long long sec); extern const char *sprinttime_nsec(long long sec, unsigned long long nsec); extern const char *sprinttime_usec(long long sec, unsigned long long usec); +# ifndef MAX_ADDR_LEN +# define MAX_ADDR_LEN 32 +# endif + extern const char *sprint_mac_addr(const uint8_t addr[], size_t size); extern void print_mac_addr(const char *prefix, const uint8_t addr[], size_t size); +extern const char *sprint_hwaddr(const uint8_t addr[], size_t size, + uint32_t devtype); +extern void print_hwaddr(const char *prefix, + const uint8_t addr[], size_t size, uint32_t devtype); + extern void print_uuid(const unsigned char *uuid); extern void print_symbolic_mode_t(unsigned int); extern void print_numeric_umode_t(unsigned short); -extern void print_numeric_long_umask(unsigned long); +extern void print_numeric_ll_umode_t(unsigned long long); extern void print_dev_t(unsigned long long dev); extern void print_kernel_version(unsigned long version); extern void print_abnormal_hi(kernel_ulong_t); +extern void print_ioprio(unsigned int ioprio); extern bool print_int32_array_member(struct tcb *, void *elem_buf, size_t elem_size, void *data); @@ -832,6 +905,20 @@ extern bool print_uint32_array_member(struct tcb *, void *elem_buf, size_t elem_size, void *data); extern bool print_uint64_array_member(struct tcb *, void *elem_buf, size_t elem_size, void *data); +extern bool print_xint32_array_member(struct tcb *, void *elem_buf, + size_t elem_size, void *data); +extern bool print_xint64_array_member(struct tcb *, void *elem_buf, + size_t elem_size, void *data); + +static inline bool +print_xlong_array_member(struct tcb *tcp, void *elem_buf, size_t elem_size, + void *data) +{ + return dispatch_wordsize(print_xint64_array_member, + print_xint32_array_member, + tcp, elem_buf, elem_size, data); +} + typedef bool (*tfetch_mem_fn)(struct tcb *, kernel_ulong_t addr, unsigned int size, void *dest); @@ -842,8 +929,29 @@ typedef const char * (*sprint_obj_by_addr_fn)(struct tcb *, kernel_ulong_t); /** - * @param flags Combination of xlat style settings and additional flags from - * enum print_array_flags. + * Array printing function with over-engineered interface. + * + * @param start_addr If tfetch_mem_fn is non-NULL: address in tracee's + * memory where the start of the array is located. + * If tfetch_mem_fn is NULL: ignored. + * @param nmemb Number of elements in array. + * @param elem_buf If tfetch_mem_fn is non-NULL: a buffer where each + * element fetched by tfetch_mem_fn is stored. + * If tfetch_mem_fn is NULL: address of the start of + * the array in local memory. + * @param elem_size Size (in bytes) of each element in the array. + * @param tfetch_mem_fn Fetching function. If NULL, then elem_buf is treated + * as local array of nmemb members elem_size each; + * start_addr is ignored. + * @param print_func Element printing callback. + * @param opaque_data A value that is unconditionally passed to print_func + * in opaque_data argument. + * @param flags Combination of xlat style settings and additional + * flags from enum print_array_flags. + * @param index_xlat Xlat array that is used for printing indices. + * @param index_xlat_size The size of xlat array. + * @param index_dflt Default string for the values not found + * in index_xlat. */ extern bool print_array_ex(struct tcb *, @@ -856,9 +964,9 @@ print_array_ex(struct tcb *, void *opaque_data, unsigned int flags, const struct xlat *index_xlat, - size_t index_xlat_size, const char *index_dflt); +/** Print an array from tracee's memory without any index printing features. */ static inline bool print_array(struct tcb *const tcp, const kernel_ulong_t start_addr, @@ -871,12 +979,58 @@ print_array(struct tcb *const tcp, { return print_array_ex(tcp, start_addr, nmemb, elem_buf, elem_size, tfetch_mem_func, print_func, opaque_data, - 0, NULL, 0, NULL); + 0, NULL, NULL); +} + +/** Shorthand for printing local arrays. */ +static inline bool +print_local_array_ex(struct tcb *tcp, + void *start_addr, + const size_t nmemb, + const size_t elem_size, + print_fn print_func, + void *const opaque_data, + unsigned int flags, + const struct xlat *index_xlat, + const char *index_dflt) +{ + return print_array_ex(tcp, (uintptr_t) start_addr, nmemb, + NULL, elem_size, NULL, print_func, + opaque_data, flags, index_xlat, index_dflt); } +/** Shorthand for a shorthand for printing local arrays. */ +# define print_local_array(tcp_, start_addr_, print_func_) \ + print_local_array_ex((tcp_), (start_addr_), ARRAY_SIZE(start_addr_), \ + sizeof((start_addr_)[0]), (print_func_), \ + NULL, 0, NULL, NULL) + extern kernel_ulong_t * fetch_indirect_syscall_args(struct tcb *, kernel_ulong_t addr, unsigned int n_args); +extern void pidns_init(void); + +/** + * Returns the pid of the tracee as present in /proc of the tracer (can be + * different from tcp->pid if /proc and the tracer process are in different PID + * namespaces). + */ +extern int get_proc_pid(struct tcb *); + +/** + * Translates a pid from tracee's namespace to our namepace. + * + * @param tcp The tcb of the tracee + * (NULL: from_id is in strace's namespace. Useful for + * getting the proc PID of from_id) + * @param from_id The id to be translated + * @param type The PID type of from_id + * @param proc_pid_ptr If not NULL, writes the proc PID to this location + * @return The translated id, or 0 if translation fails. + */ +extern int translate_pid(struct tcb *, int dest_id, enum pid_type type, + int *proc_pid_ptr); + extern void dumpiov_in_msghdr(struct tcb *, kernel_ulong_t addr, kernel_ulong_t data_size); @@ -893,6 +1047,35 @@ extern int printstr_ex(struct tcb *, kernel_ulong_t addr, kernel_ulong_t len, unsigned int user_style); +/** + * Print a region of tracee memory only in case non-zero bytes are present + * there. It almost fits into printstr_ex, but it has some pretty specific + * behaviour peculiarities (like printing of ellipsis on error) to readily + * integrate it there. + * + * Since it is expected to be used for printing tail of a structure in tracee's + * memory, it accepts a combination of start_addr/start_offs/total_len and does + * the relevant calculations itself. + * + * @param prefix A string printed in cases something is going to be printed. + * @param start_addr Address of the beginning of a structure (whose tail + * is supposedly to be printed) in tracee's memory. + * @param start_offs Offset from the beginning of the structure where the tail + * data starts. + * @param total_len Total size of the tracee's memory region containing + * the structure and the tail data. + * Caller is responsible for imposing a sensible (usually + * mandated by the kernel interface, like get_pagesize()) + * limit here. + * @param style Passed to string_quote as "style" parameter. + * @return Returns true is anything was printed, false otherwise. + */ +extern bool print_nonzero_bytes(struct tcb *const tcp, const char *prefix, + const kernel_ulong_t start_addr, + const unsigned int start_offs, + const unsigned int total_len, + const unsigned int style); + extern int printpathn(struct tcb *, kernel_ulong_t addr, unsigned int n); @@ -901,8 +1084,38 @@ printpath(struct tcb *, kernel_ulong_t addr); # define TIMESPEC_TEXT_BUFSIZE \ (sizeof(long long) * 3 * 2 + sizeof("{tv_sec=-, tv_nsec=}")) -extern void printfd(struct tcb *, int); -extern void print_sockaddr(const void *sa, int len); + +/** + * Returns the pid associated with pidfd of the process with ID pid_of_fd + */ +extern pid_t pidfd_get_pid(pid_t pid_of_fd, int fd); +/** + * Print file descriptor fd owned by process with ID pid (from the PID NS + * of the tracer). + */ +extern void printfd_pid(struct tcb *tcp, pid_t pid, int fd); + +static inline void +printfd(struct tcb *tcp, int fd) +{ + printfd_pid(tcp, tcp->pid, fd); +} + +/** + * Print file descriptor fd owned by process with ID pid (from the PID NS + * of the tracee). + */ +extern void printfd_pid_tracee_ns(struct tcb *tcp, pid_t pid, int fd); + +/** Prints a PID specified in the tracee's PID namespace */ +extern void printpid(struct tcb *, int pid, enum pid_type type); + +/** + * Prints pid as a TGID if positive, and PGID if negative + * (like the first argument of kill). + */ +extern void printpid_tgid_pgid(struct tcb *, int pid); +extern void print_sockaddr(struct tcb *, const void *sa, int len); extern bool print_inet_addr(int af, const void *addr, unsigned int len, const char *var_name); extern bool @@ -974,6 +1187,19 @@ extern void print_ifindex(unsigned int); extern void print_bpf_filter_code(const uint16_t code, bool extended); extern void qualify(const char *); +extern void qualify_trace(const char *); +extern void qualify_abbrev(const char *); +extern void qualify_verbose(const char *); +extern void qualify_raw(const char *); +extern void qualify_signals(const char *); +extern void qualify_status(const char *); +extern void qualify_quiet(const char *); +extern void qualify_decode_fd(const char *); +extern void qualify_read(const char *); +extern void qualify_write(const char *); +extern void qualify_fault(const char *); +extern void qualify_inject(const char *); +extern void qualify_kvm(const char *); extern unsigned int qual_flags(const unsigned int); # define DECL_IOCTL(name) \ @@ -992,9 +1218,11 @@ DECL_IOCTL(nsfs); DECL_IOCTL(ptp); DECL_IOCTL(random); DECL_IOCTL(scsi); +DECL_IOCTL(tee); DECL_IOCTL(term); DECL_IOCTL(ubi); DECL_IOCTL(uffdio); +DECL_IOCTL(watchdog); # undef DECL_IOCTL extern int decode_sg_io_v4(struct tcb *, const kernel_ulong_t arg); @@ -1021,13 +1249,86 @@ extern void decode_netlink_kobject_uevent(struct tcb *, kernel_ulong_t addr, kernel_ulong_t len); +enum find_xlat_flag_bits { + FXL_CASE_SENSITIVE_BIT, +}; + +enum find_xlat_flags { + /** Whether to use strcmp instead of strcasecmp for comparison */ + FLAG(FXL_CASE_SENSITIVE), +}; + +/** + * Searches for a string-value pair in the provided array of pairs. + * + * @param items Array of string-value pairs to search in. + * @param s String to search for. + * @param num_items Item count in items array. + * @param flags Bitwise-or'ed flags from enum find_xlat_flags. + * @return Pointer to the first matching string-value pair inside items + * or NULL if nothing has been found. + */ +extern const struct xlat_data *find_xlat_val_ex(const struct xlat_data *items, + const char *s, size_t num_items, + unsigned int flags); +# define find_xlat_val(items_, s_) \ + find_xlat_val_ex((items_), (s_), ARRAY_SIZE(items_), 0) +# define find_xlat_val_case(items_, s_) \ + find_xlat_val_ex((items_), (s_), ARRAY_SIZE(items_), FXL_CASE_SENSITIVE) + +/** + * A find_xlat_val_ex wrapper for option arguments parsing. Provides a value + * from strs array that matched the supplied arg string. If arg is NULL, + * default_val is returned. If nothing has matched, not_found value + * is returned. + * + * find_arg_val provides a wrapper for the common case of statically-defined + * strs arrays. + * + * @param arg Argument string to parse + * @param strs Array of string-value pairs to match arg against. + * @param strs_size Element count in the strs array. + * @param default_val Value to return if arg is NULL. + * @param not_found Value to return if arg hasn't found among strs. + * @return default_val is arg is NULL, value part of the matched + * string-value pair, or not_found if nothing has matched. + */ +extern uint64_t find_arg_val_(const char *arg, const struct xlat_data *strs, + size_t strs_size, uint64_t default_val, + uint64_t not_found); +/** A find_arg_val_ wrapper that supplies strs_size to it using ARRAY_SIZE. */ +# define find_arg_val(arg_, strs_, dflt_, not_found_) \ + find_arg_val_((arg_), (strs_), ARRAY_SIZE(strs_), (dflt_), (not_found_)) + +/** + * A find_arg_val wrapper for parsing time scale names. + * + * @param arg String to parse + * @param empty_dflt Default scale for the empty arg. + * @param null_dflt Default scale for the NULL arg. + * @param width Width of the field required to print the second part + * with the specified precision. + * @return Time scale (amount of nanoseconds) if found, + * empty_dflt if arg is empty, null_dflt if arg is NULL, + * -1 if arg doesn't match any known time scale. + */ +extern int str2timescale_ex(const char *arg, int empty_dflt, int null_dflt, + int *width); +/** str2timescale_ex wrapper for handling a separate argument. */ +# define str2timescale_optarg(arg_, w_) str2timescale_ex((arg_), -1, 1000, (w_)) +/** str2timescale_ex wrapper for handling a suffix in existing argument. */ +# define str2timescale_sfx(arg_, w_) str2timescale_ex((arg_), 1000, -1, (w_)) + extern int ts_nz(const struct timespec *); extern int ts_cmp(const struct timespec *, const struct timespec *); extern double ts_float(const struct timespec *); extern void ts_add(struct timespec *, const struct timespec *, const struct timespec *); extern void ts_sub(struct timespec *, const struct timespec *, const struct timespec *); -extern void ts_mul(struct timespec *, const struct timespec *, int); -extern void ts_div(struct timespec *, const struct timespec *, int); +extern void ts_mul(struct timespec *, const struct timespec *, uint64_t); +extern void ts_div(struct timespec *, const struct timespec *, uint64_t); +extern const struct timespec *ts_min(const struct timespec *, const struct timespec *); +extern const struct timespec *ts_max(const struct timespec *, const struct timespec *); +extern int parse_ts(const char *s, struct timespec *t); # ifdef ENABLE_STACKTRACE extern void unwind_init(void); @@ -1109,11 +1410,13 @@ tprint_iov(struct tcb *tcp, kernel_ulong_t len, kernel_ulong_t addr, tprint_iov_upto(tcp, len, addr, decode_iov, -1); } -# if HAVE_ARCH_TIME32_SYSCALLS +# if HAVE_ARCH_TIME32_SYSCALLS || HAVE_ARCH_TIMESPEC32 extern bool print_timespec32_data_size(const void *arg, size_t size); extern bool print_timespec32_array_data_size(const void *arg, unsigned int nmemb, size_t size); +# endif /* HAVE_ARCH_TIME32_SYSCALLS || HAVE_ARCH_TIMESPEC32 */ +# if HAVE_ARCH_TIME32_SYSCALLS extern int print_timespec32(struct tcb *, kernel_ulong_t); extern const char *sprint_timespec32(struct tcb *, kernel_ulong_t); extern int print_timespec32_utime_pair(struct tcb *, kernel_ulong_t); @@ -1195,39 +1498,18 @@ extern void tprints(const char *str); extern void tprintf_comment(const char *fmt, ...) ATTRIBUTE_FORMAT((printf, 1, 2)); extern void tprints_comment(const char *str); +/* + * Staging output for status qualifier. + */ +extern FILE *strace_open_memstream(struct tcb *tcp); +extern void strace_close_memstream(struct tcb *tcp, bool publish); + static inline void printaddr_comment(const kernel_ulong_t addr) { tprintf_comment("%#llx", (unsigned long long) addr); } -# if SUPPORTED_PERSONALITIES > 1 -extern void set_personality(unsigned int personality); -extern unsigned current_personality; -# else -# define set_personality(personality) ((void)0) -# define current_personality 0 -# endif - -# if SUPPORTED_PERSONALITIES == 1 -# define current_wordsize PERSONALITY0_WORDSIZE -# define current_klongsize PERSONALITY0_KLONGSIZE -# else -# if SUPPORTED_PERSONALITIES == 2 && PERSONALITY0_WORDSIZE == PERSONALITY1_WORDSIZE -# define current_wordsize PERSONALITY0_WORDSIZE -# else -extern unsigned current_wordsize; -# endif -# if SUPPORTED_PERSONALITIES == 2 && PERSONALITY0_KLONGSIZE == PERSONALITY1_KLONGSIZE -# define current_klongsize PERSONALITY0_KLONGSIZE -# else -extern unsigned current_klongsize; -# endif -# endif - -# define max_addr() (~0ULL >> ((8 - current_wordsize) * 8)) -# define max_kaddr() (~0ULL >> ((8 - current_klongsize) * 8)) - /* * When u64 is interpreted by the kernel as an address, there is a difference * in behaviour between 32-bit and 64-bit kernel in the way u64_to_user_ptr @@ -1280,101 +1562,40 @@ DECL_PRINTNUM_ADDR(int); DECL_PRINTNUM_ADDR(int64); # undef DECL_PRINTNUM_ADDR -# ifndef current_wordsize extern bool -printnum_long_int(struct tcb *, kernel_ulong_t addr, - const char *fmt_long, const char *fmt_int) - ATTRIBUTE_FORMAT((printf, 3, 0)) - ATTRIBUTE_FORMAT((printf, 4, 0)); - -extern bool printnum_addr_long_int(struct tcb *, kernel_ulong_t addr); +printnum_fd(struct tcb *, kernel_ulong_t addr); -static inline bool -printnum_slong(struct tcb *tcp, kernel_ulong_t addr) -{ - return printnum_long_int(tcp, addr, "%" PRId64, "%d"); -} - -static inline bool -printnum_ulong(struct tcb *tcp, kernel_ulong_t addr) -{ - return printnum_long_int(tcp, addr, "%" PRIu64, "%u"); -} - -static inline bool -printnum_ptr(struct tcb *tcp, kernel_ulong_t addr) -{ - return printnum_addr_long_int(tcp, addr); -} - -# elif current_wordsize > 4 - -static inline bool -printnum_slong(struct tcb *tcp, kernel_ulong_t addr) -{ - return printnum_int64(tcp, addr, "%" PRId64); -} - -static inline bool -printnum_ulong(struct tcb *tcp, kernel_ulong_t addr) -{ - return printnum_int64(tcp, addr, "%" PRIu64); -} - -static inline bool -printnum_ptr(struct tcb *tcp, kernel_ulong_t addr) -{ - return printnum_addr_int64(tcp, addr); -} - -# else /* current_wordsize == 4 */ +extern bool +printnum_pid(struct tcb *const tcp, const kernel_ulong_t addr, enum pid_type type); static inline bool printnum_slong(struct tcb *tcp, kernel_ulong_t addr) { - return printnum_int(tcp, addr, "%d"); + return dispatch_wordsize(printnum_int64, printnum_int, + tcp, addr, opt_wordsize("%" PRId64, "%d")); } static inline bool printnum_ulong(struct tcb *tcp, kernel_ulong_t addr) { - return printnum_int(tcp, addr, "%u"); + return dispatch_wordsize(printnum_int64, printnum_int, + tcp, addr, opt_wordsize("%" PRIu64, "%u")); } static inline bool printnum_ptr(struct tcb *tcp, kernel_ulong_t addr) { - return printnum_addr_int(tcp, addr); + return dispatch_wordsize(printnum_addr_int64, printnum_addr_int, + tcp, addr); } -# endif - -# ifndef current_klongsize -extern bool printnum_addr_klong_int(struct tcb *, kernel_ulong_t addr); - static inline bool printnum_kptr(struct tcb *tcp, kernel_ulong_t addr) { - return printnum_addr_klong_int(tcp, addr); + return dispatch_klongsize(printnum_addr_int64, printnum_addr_int, + tcp, addr); } -# elif current_klongsize > 4 - -static inline bool -printnum_kptr(struct tcb *tcp, kernel_ulong_t addr) -{ - return printnum_addr_int64(tcp, addr); -} - -# else /* current_klongsize == 4 */ - -static inline bool -printnum_kptr(struct tcb *tcp, kernel_ulong_t addr) -{ - return printnum_addr_int(tcp, addr); -} - -# endif # define DECL_PRINTPAIR(name) \ extern bool \ @@ -1437,6 +1658,28 @@ truncate_kulong_to_current_wordsize(const kernel_ulong_t v) sizeof(v) == sizeof(long) ? (long long) (long) (v) : \ (long long) (v)) +/* + * Computes the popcount of a vector of 32-bit values. + */ +static inline unsigned int +popcount32(const uint32_t *a, unsigned int size) +{ + unsigned int count = 0; + + for (; size; ++a, --size) { + uint32_t x = *a; + +# ifdef HAVE___BUILTIN_POPCOUNT + count += __builtin_popcount(x); +# else + for (; x; ++count) + x &= x - 1; +# endif + } + + return count; +} + extern const char *const errnoent[]; extern const char *const signalent[]; extern const unsigned int nerrnos; @@ -1464,6 +1707,17 @@ extern const unsigned int nsyscall_vec[SUPPORTED_PERSONALITIES]; extern const struct_sysent *const sysent_vec[SUPPORTED_PERSONALITIES]; extern struct inject_opts *inject_vec[SUPPORTED_PERSONALITIES]; +# ifdef ENABLE_COVERAGE_GCOV +# ifdef HAVE_GCOV_H +# include +# else +extern void __gcov_dump(void); +# endif +# define GCOV_DUMP __gcov_dump() +# else +# define GCOV_DUMP +# endif + # ifdef IN_MPERS_BOOTSTRAP /* Transform multi-line MPERS_PRINTER_DECL statements to one-liners. */ # define MPERS_PRINTER_DECL(type, name, ...) MPERS_PRINTER_DECL(type, name, __VA_ARGS__) @@ -1504,4 +1758,64 @@ scno_is_valid(kernel_ulong_t scno) # define SYS_FUNC(syscall_name) int SYS_FUNC_NAME(sys_ ## syscall_name)(struct tcb *tcp) +# define ILOG2_ITER_(val_, ret_, bit_) \ + do { \ + typeof(ret_) shift_ = \ + ((val_) > ((((typeof(val_)) 1) \ + << (1 << (bit_))) - 1)) << (bit_); \ + (val_) >>= shift_; \ + (ret_) |= shift_; \ + } while (0) + +/** + * Calculate floor(log2(val)), with the exception of val == 0, for which 0 + * is returned as well. + * + * @param val 64-bit value to calculate integer base-2 logarithm for. + * @return (unsigned int) floor(log2(val)) if val > 0, 0 if val == 0. + */ +static inline unsigned int +ilog2_64(uint64_t val) +{ + unsigned int ret = 0; + + ILOG2_ITER_(val, ret, 5); + ILOG2_ITER_(val, ret, 4); + ILOG2_ITER_(val, ret, 3); + ILOG2_ITER_(val, ret, 2); + ILOG2_ITER_(val, ret, 1); + ILOG2_ITER_(val, ret, 0); + + return ret; +} + +/** + * Calculate floor(log2(val)), with the exception of val == 0, for which 0 + * is returned as well. + * + * @param val 32-bit value to calculate integer base-2 logarithm for. + * @return (unsigned int) floor(log2(val)) if val > 0, 0 if val == 0. + */ +static inline unsigned int +ilog2_32(uint32_t val) +{ + unsigned int ret = 0; + + ILOG2_ITER_(val, ret, 4); + ILOG2_ITER_(val, ret, 3); + ILOG2_ITER_(val, ret, 2); + ILOG2_ITER_(val, ret, 1); + ILOG2_ITER_(val, ret, 0); + + return ret; +} + +# if SIZEOF_KERNEL_LONG_T > 4 +# define ilog2_klong ilog2_64 +# else +# define ilog2_klong ilog2_32 +# endif + +# undef ILOG2_ITER_ + #endif /* !STRACE_DEFS_H */ diff --git a/delay.c b/delay.c index e32dc502..538992ff 100644 --- a/delay.c +++ b/delay.c @@ -46,7 +46,7 @@ alloc_delay_data(void) } void -fill_delay_data(uint16_t delay_idx, int intval, bool isenter) +fill_delay_data(uint16_t delay_idx, struct timespec *val, bool isenter) { if (delay_idx >= delay_data_vec_size) error_func_msg_and_die("delay_idx >= delay_data_vec_size"); @@ -57,8 +57,7 @@ fill_delay_data(uint16_t delay_idx, int intval, bool isenter) else ts = &(delay_data_vec[delay_idx].ts_exit); - ts->tv_sec = intval / 1000000; - ts->tv_nsec = intval % 1000000 * 1000; + *ts = *val; } static bool diff --git a/delay.h b/delay.h index fa111c76..1dc27304 100644 --- a/delay.h +++ b/delay.h @@ -9,7 +9,7 @@ # define STRACE_DELAY_H uint16_t alloc_delay_data(void); -void fill_delay_data(uint16_t delay_idx, int intval, bool isenter); +void fill_delay_data(uint16_t delay_idx, struct timespec *val, bool isenter); bool is_delay_timer_armed(void); void delay_timer_expired(void); void arm_delay_timer(const struct tcb *); diff --git a/depcomp b/depcomp index 65cbf709..6b391623 100755 --- a/depcomp +++ b/depcomp @@ -3,7 +3,7 @@ scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2020 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/desc.c b/desc.c index 92e6fe16..32fc1882 100644 --- a/desc.c +++ b/desc.c @@ -3,7 +3,7 @@ * Copyright (c) 1993 Branko Lankester * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey * Copyright (c) 1996-1999 Wichert Akkerman - * Copyright (c) 1999-2019 The strace developers. + * Copyright (c) 1999-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -19,37 +19,6 @@ SYS_FUNC(close) return RVAL_DECODED; } -SYS_FUNC(dup) -{ - printfd(tcp, tcp->u_arg[0]); - - return RVAL_DECODED | RVAL_FD; -} - -static int -do_dup2(struct tcb *tcp, int flags_arg) -{ - printfd(tcp, tcp->u_arg[0]); - tprints(", "); - printfd(tcp, tcp->u_arg[1]); - if (flags_arg >= 0) { - tprints(", "); - printflags(open_mode_flags, tcp->u_arg[flags_arg], "O_???"); - } - - return RVAL_DECODED | RVAL_FD; -} - -SYS_FUNC(dup2) -{ - return do_dup2(tcp, -1); -} - -SYS_FUNC(dup3) -{ - return do_dup2(tcp, 2); -} - static int decode_select(struct tcb *const tcp, const kernel_ulong_t *const args, const print_obj_by_addr_fn print_tv_ts, diff --git a/dirent.c b/dirent.c index 5c0a09dd..5dbb492a 100644 --- a/dirent.c +++ b/dirent.c @@ -4,34 +4,95 @@ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey * Copyright (c) 1996-1999 Wichert Akkerman * Copyright (c) 2005-2015 Dmitry V. Levin - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ #include "defs.h" +#include "kernel_dirent.h" -#include DEF_MPERS_TYPE(kernel_dirent) +#include DEF_MPERS_TYPE(kernel_dirent_t) #include MPERS_DEFS +#include "xgetdents.h" +#include "print_fields.h" + #define D_NAME_LEN_MAX 256 +/* The minimum size of a valid directory entry. */ +static const unsigned int header_size = + offsetof(kernel_dirent_t, d_name); + +static void +print_dentry_head(const kernel_dirent_t *const dent) +{ + PRINT_FIELD_U("{", *dent, d_ino); + PRINT_FIELD_U(", ", *dent, d_off); + PRINT_FIELD_U(", ", *dent, d_reclen); +} + +static unsigned int +decode_dentry_head(struct tcb *const tcp, const void *const arg) +{ + const kernel_dirent_t *const dent = arg; + + if (!abbrev(tcp)) + print_dentry_head(dent); + + return dent->d_reclen; +} + +static int +decode_dentry_tail(struct tcb *const tcp, kernel_ulong_t addr, + const void *const arg, const unsigned int d_name_type_len) +{ + int rc = 0; + + /* !abbrev(tcp) */ + + if (d_name_type_len) { + unsigned int d_name_len = d_name_type_len - 1; + if (d_name_len) { + if (d_name_len > D_NAME_LEN_MAX) + d_name_len = D_NAME_LEN_MAX; + tprints(", d_name="); + rc = printpathn(tcp, addr, d_name_len - 1); + } + tprints(", d_type="); + const kernel_ulong_t d_type_addr = + addr + (d_name_type_len - 1); + unsigned char d_type; + if (umove_or_printaddr(tcp, d_type_addr, &d_type)) + rc = -1; + else + printxval(dirent_types, d_type, "DT_???"); + } + tprints("}"); + + return rc; +} + +SYS_FUNC(getdents) +{ + return xgetdents(tcp, header_size, + decode_dentry_head, decode_dentry_tail); +} + static void print_old_dirent(struct tcb *const tcp, const kernel_ulong_t addr) { - kernel_dirent d; + kernel_dirent_t dent; - if (umove_or_printaddr(tcp, addr, &d)) + if (umove_or_printaddr(tcp, addr, &dent)) return; - tprintf("{d_ino=%llu, d_off=%llu, d_reclen=%u, d_name=", - zero_extend_signed_to_ull(d.d_ino), - zero_extend_signed_to_ull(d.d_off), d.d_reclen); - if (d.d_reclen > D_NAME_LEN_MAX) - d.d_reclen = D_NAME_LEN_MAX; - printpathn(tcp, addr + offsetof(kernel_dirent, d_name), d.d_reclen); + print_dentry_head(&dent); + tprints(", d_name="); + printpathn(tcp, addr + header_size, + MIN(dent.d_reclen, D_NAME_LEN_MAX)); tprints("}"); } @@ -45,94 +106,10 @@ SYS_FUNC(readdir) printaddr(tcp->u_arg[1]); else print_old_dirent(tcp, tcp->u_arg[1]); + const unsigned int count = tcp->u_arg[2]; /* Not much point in printing this out, it is always 1. */ - if (tcp->u_arg[2] != 1) - tprintf(", %" PRI_klu, tcp->u_arg[2]); - } - return 0; -} - -SYS_FUNC(getdents) -{ - unsigned int i, len, dents = 0; - unsigned char *buf; - - if (entering(tcp)) { - printfd(tcp, tcp->u_arg[0]); - return 0; - } - - const unsigned int count = tcp->u_arg[2]; - - if (syserror(tcp) || !verbose(tcp)) { - tprints(", "); - printaddr(tcp->u_arg[1]); - tprintf(", %u", count); - return 0; - } - - /* Beware of insanely large or too small values in tcp->u_rval */ - if (tcp->u_rval > 1024*1024) - len = 1024*1024; - else if (tcp->u_rval < (int) sizeof(kernel_dirent)) - len = 0; - else - len = tcp->u_rval; - - if (len) { - buf = malloc(len); - if (!buf || umoven(tcp, tcp->u_arg[1], len, buf) < 0) { - tprints(", "); - printaddr(tcp->u_arg[1]); + if (count != 1) tprintf(", %u", count); - free(buf); - return 0; - } - } else { - buf = NULL; - } - - tprints(","); - if (!abbrev(tcp)) - tprints(" ["); - for (i = 0; len && i <= len - sizeof(kernel_dirent); ) { - kernel_dirent *d = (kernel_dirent *) &buf[i]; - - if (!abbrev(tcp)) { - int oob = d->d_reclen < sizeof(kernel_dirent) || - i + d->d_reclen - 1 >= len; - int d_name_len = oob ? len - i : d->d_reclen; - d_name_len -= offsetof(kernel_dirent, d_name) + 1; - if (d_name_len > D_NAME_LEN_MAX) - d_name_len = D_NAME_LEN_MAX; - - tprintf("%s{d_ino=%llu, d_off=%llu, d_reclen=%u" - ", d_name=", i ? ", " : "", - zero_extend_signed_to_ull(d->d_ino), - zero_extend_signed_to_ull(d->d_off), - d->d_reclen); - - print_quoted_cstring(d->d_name, d_name_len); - - tprints(", d_type="); - if (oob) - tprints("?"); - else - printxval(dirent_types, buf[i + d->d_reclen - 1], "DT_???"); - tprints("}"); - } - dents++; - if (d->d_reclen < sizeof(kernel_dirent)) { - tprints_comment("d_reclen < sizeof(struct dirent)"); - break; - } - i += d->d_reclen; } - if (!abbrev(tcp)) - tprints("]"); - else - tprintf_comment("%u entries", dents); - tprintf(", %u", count); - free(buf); return 0; } diff --git a/dirent64.c b/dirent64.c index f7d68daa..40ab4b3d 100644 --- a/dirent64.c +++ b/dirent64.c @@ -1,106 +1,63 @@ /* - * Copyright (c) 1991, 1992 Paul Kranenburg - * Copyright (c) 1993 Branko Lankester - * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey - * Copyright (c) 1996-1999 Wichert Akkerman - * Copyright (c) 2005-2015 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2020 Dmitry V. Levin * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ -#include "defs.h" -#include - -#include "xlat/dirent_types.h" +#include "xgetdents.h" +#include "kernel_dirent.h" +#include "print_fields.h" #define D_NAME_LEN_MAX 256 -SYS_FUNC(getdents64) +static void +print_dentry_head(const kernel_dirent64_t *const dent) { - /* the minimum size of a valid dirent64 structure */ - const unsigned int d_name_offset = offsetof(struct dirent64, d_name); + PRINT_FIELD_U("{", *dent, d_ino); + PRINT_FIELD_U(", ", *dent, d_off); + PRINT_FIELD_U(", ", *dent, d_reclen); +} - unsigned int i, len, dents = 0; - char *buf; +static unsigned int +decode_dentry_head(struct tcb *const tcp, const void *const arg) +{ + const kernel_dirent64_t *const dent = arg; - if (entering(tcp)) { - printfd(tcp, tcp->u_arg[0]); - return 0; - } + if (!abbrev(tcp)) + print_dentry_head(dent); - const unsigned int count = tcp->u_arg[2]; + return dent->d_reclen; +} - if (syserror(tcp) || !verbose(tcp)) { - tprints(", "); - printaddr(tcp->u_arg[1]); - tprintf(", %u", count); - return 0; - } +static int +decode_dentry_tail(struct tcb *const tcp, kernel_ulong_t addr, + const void *const arg, unsigned int d_name_len) +{ + const kernel_dirent64_t *const dent = arg; + int rc = 0; - /* Beware of insanely large or too small values in tcp->u_rval */ - if (tcp->u_rval > 1024*1024) - len = 1024*1024; - else if (tcp->u_rval < (int) d_name_offset) - len = 0; - else - len = tcp->u_rval; + /* !abbrev(tcp) */ - if (len) { - buf = malloc(len); - if (!buf || umoven(tcp, tcp->u_arg[1], len, buf) < 0) { - tprints(", "); - printaddr(tcp->u_arg[1]); - tprintf(", %u", count); - free(buf); - return 0; - } - } else { - buf = NULL; - } + PRINT_FIELD_XVAL(", ", *dent, d_type, dirent_types, "DT_???"); - tprints(","); - if (!abbrev(tcp)) - tprints(" ["); - for (i = 0; len && i <= len - d_name_offset; ) { - struct dirent64 *d = (struct dirent64 *) &buf[i]; - if (!abbrev(tcp)) { - int d_name_len; - if (d->d_reclen >= d_name_offset - && i + d->d_reclen <= len) { - d_name_len = d->d_reclen - d_name_offset; - } else { - d_name_len = len - i - d_name_offset; - } - if (d_name_len > D_NAME_LEN_MAX) - d_name_len = D_NAME_LEN_MAX; + if (d_name_len) { + if (d_name_len > D_NAME_LEN_MAX) + d_name_len = D_NAME_LEN_MAX; + tprints(", d_name="); + rc = printpathn(tcp, addr, d_name_len - 1); + } + tprints("}"); - tprintf("%s{d_ino=%" PRIu64 ", d_off=%" PRId64 - ", d_reclen=%u, d_type=", - i ? ", " : "", - d->d_ino, - d->d_off, - d->d_reclen); - printxval(dirent_types, d->d_type, "DT_???"); + return rc; +} - tprints(", d_name="); - print_quoted_cstring(d->d_name, d_name_len); +SYS_FUNC(getdents64) +{ + /* The minimum size of a valid directory entry. */ + static const unsigned int header_size = + offsetof(kernel_dirent64_t, d_name); - tprints("}"); - } - if (d->d_reclen < d_name_offset) { - tprints_comment("d_reclen < offsetof(struct dirent64, d_name)"); - break; - } - i += d->d_reclen; - dents++; - } - if (!abbrev(tcp)) - tprints("]"); - else - tprintf_comment("%u entries", dents); - tprintf(", %u", count); - free(buf); - return 0; + return xgetdents(tcp, header_size, + decode_dentry_head, decode_dentry_tail); } diff --git a/dirent_types.c b/dirent_types.c new file mode 100644 index 00000000..aafe3337 --- /dev/null +++ b/dirent_types.c @@ -0,0 +1,11 @@ +/* + * Copyright (c) 2005-2015 Dmitry V. Levin + * Copyright (c) 2015-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#include "defs.h" +#include +#include "xlat/dirent_types.h" diff --git a/dup.c b/dup.c new file mode 100644 index 00000000..aa86dd93 --- /dev/null +++ b/dup.c @@ -0,0 +1,42 @@ +/* + * Copyright (c) 1999-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#include "defs.h" + +static int +dup_123(struct tcb *const tcp, const int newfd_arg, const int flags_arg) +{ + printfd(tcp, tcp->u_arg[0]); + + if (newfd_arg > 0) { + tprints(", "); + printfd(tcp, tcp->u_arg[newfd_arg]); + + if (flags_arg > 0) { + tprints(", "); + printflags(open_mode_flags, tcp->u_arg[flags_arg], + "O_???"); + } + } + + return RVAL_DECODED | RVAL_FD; +} + +SYS_FUNC(dup) +{ + return dup_123(tcp, -1, -1); +} + +SYS_FUNC(dup2) +{ + return dup_123(tcp, 1, -1); +} + +SYS_FUNC(dup3) +{ + return dup_123(tcp, 1, 2); +} diff --git a/dyxlat.c b/dyxlat.c index d575d460..52d20a49 100644 --- a/dyxlat.c +++ b/dyxlat.c @@ -7,26 +7,21 @@ #include "defs.h" struct dyxlat { - size_t used; size_t allocated; - struct xlat *xlat; + struct xlat xlat; + struct xlat_data *data; }; -#define MARK_END(xlat) \ - do { \ - (xlat).val = 0; \ - (xlat).str = 0; \ - } while (0) - struct dyxlat * dyxlat_alloc(const size_t nmemb) { struct dyxlat *const dyxlat = xmalloc(sizeof(*dyxlat)); - dyxlat->used = 1; + dyxlat->xlat.type = XT_NORMAL; + dyxlat->xlat.size = 0; dyxlat->allocated = nmemb; - dyxlat->xlat = xgrowarray(NULL, &dyxlat->allocated, sizeof(struct xlat)); - MARK_END(dyxlat->xlat[0]); + dyxlat->xlat.data = dyxlat->data = xgrowarray(NULL, &dyxlat->allocated, + sizeof(struct xlat_data)); return dyxlat; } @@ -36,20 +31,20 @@ dyxlat_free(struct dyxlat *const dyxlat) { size_t i; - for (i = 0; i < dyxlat->used - 1; ++i) { - free((void *) dyxlat->xlat[i].str); - dyxlat->xlat[i].str = NULL; + for (i = 0; i < dyxlat->xlat.size; ++i) { + free((void *) dyxlat->data[i].str); + dyxlat->data[i].str = NULL; } - free(dyxlat->xlat); - dyxlat->xlat = NULL; + free(dyxlat->data); + dyxlat->xlat.data = NULL; free(dyxlat); } const struct xlat * dyxlat_get(const struct dyxlat *const dyxlat) { - return dyxlat->xlat; + return &dyxlat->xlat; } void @@ -58,24 +53,24 @@ dyxlat_add_pair(struct dyxlat *const dyxlat, const uint64_t val, { size_t i; - for (i = 0; i < dyxlat->used - 1; ++i) { - if (dyxlat->xlat[i].val == val) { - if (strncmp(dyxlat->xlat[i].str, str, len) == 0 - && dyxlat->xlat[i].str[len] == '\0') + for (i = 0; i < dyxlat->xlat.size; ++i) { + if (dyxlat->data[i].val == val) { + if (strncmp(dyxlat->data[i].str, str, len) == 0 + && dyxlat->data[i].str[len] == '\0') return; - free((void *) dyxlat->xlat[i].str); - dyxlat->xlat[i].str = xstrndup(str, len); + free((void *) dyxlat->data[i].str); + dyxlat->data[i].str = xstrndup(str, len); return; } } - if (dyxlat->used >= dyxlat->allocated) - dyxlat->xlat = xgrowarray(dyxlat->xlat, &dyxlat->allocated, - sizeof(struct xlat)); + if (dyxlat->xlat.size >= dyxlat->allocated) + dyxlat->xlat.data = dyxlat->data = + xgrowarray(dyxlat->data, &dyxlat->allocated, + sizeof(struct xlat_data)); - dyxlat->xlat[dyxlat->used - 1].val = val; - dyxlat->xlat[dyxlat->used - 1].str = xstrndup(str, len); - MARK_END(dyxlat->xlat[dyxlat->used]); - dyxlat->used++; + dyxlat->data[dyxlat->xlat.size].val = val; + dyxlat->data[dyxlat->xlat.size].str = xstrndup(str, len); + dyxlat->xlat.size++; } diff --git a/evdev.c b/evdev.c index e402d26e..1d4e9aef 100644 --- a/evdev.c +++ b/evdev.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2015 Etienne Gemsa * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -14,8 +14,9 @@ #ifdef HAVE_LINUX_INPUT_H +# include "print_fields.h" # include -# include +# include "types/evdev.h" # include "xlat/evdev_autorepeat.h" # include "xlat/evdev_ff_status.h" @@ -29,43 +30,71 @@ # include "xlat/evdev_snd.h" # include "xlat/evdev_switch.h" +/** Added by Linux commit v2.6.38-rc1~247^2~1^2~2^2~5 */ +# ifndef INPUT_PROP_MAX +# define INPUT_PROP_MAX 0x1f +# endif # ifndef SYN_MAX # define SYN_MAX 0xf # endif -const size_t evdev_abs_size = ARRAY_SIZE(evdev_abs) - 1; +/* + * Has to be included after struct_* type definitions, since _IO* macros + * used in fallback definitions require them for sizeof(). + */ +# define XLAT_MACROS_ONLY +# include "xlat/evdev_ioctl_cmds.h" +# undef XLAT_MACROS_ONLY + +# ifndef EVIOCGPROP +# define EVIOCGPROP(len) _IOR('E', 0x09, len) +# endif +# ifndef EVIOCGMTSLOTS +# define EVIOCGMTSLOTS(len) _IOR('E', 0x0a, len) +# endif +# ifndef EVIOCGSW +# define EVIOCGSW(len) _IOR('E', 0x1b, len) +# endif static int -abs_ioctl(struct tcb *const tcp, const kernel_ulong_t arg) +abs_ioctl(struct tcb *const tcp, const unsigned int code, + const kernel_ulong_t arg) { + static const size_t orig_sz = offsetofend(struct_input_absinfo, flat); + static const size_t res_sz = offsetofend(struct_input_absinfo, + resolution); + + struct_input_absinfo absinfo; + size_t sz = _IOC_SIZE(code); + size_t read_sz = MIN(sz, sizeof(absinfo)); + + if (sz < orig_sz) + return RVAL_DECODED; + tprints(", "); - struct input_absinfo absinfo; - - if (!umove_or_printaddr(tcp, arg, &absinfo)) { - tprintf("{value=%u" - ", minimum=%u, ", - absinfo.value, - absinfo.minimum); - - if (!abbrev(tcp)) { - tprintf("maximum=%u" - ", fuzz=%u" - ", flat=%u", - absinfo.maximum, - absinfo.fuzz, - absinfo.flat); -# ifdef HAVE_STRUCT_INPUT_ABSINFO_RESOLUTION - tprintf(", resolution=%u", - absinfo.resolution); -# endif - } else { - tprints("..."); - } + if (umoven_or_printaddr(tcp, arg, read_sz, &absinfo)) + return RVAL_IOCTL_DECODED; - tprints("}"); + PRINT_FIELD_U("{", absinfo, value); + PRINT_FIELD_U(", ", absinfo, minimum); + + if (!abbrev(tcp)) { + PRINT_FIELD_U(", ", absinfo, maximum); + PRINT_FIELD_U(", ", absinfo, fuzz); + PRINT_FIELD_U(", ", absinfo, flat); + if (sz > orig_sz) { + if (sz >= res_sz) + PRINT_FIELD_U(", ", absinfo, resolution); + if (sz != res_sz) + tprints(", ..."); + } + } else { + tprints(", ..."); } + tprints("}"); + return RVAL_IOCTL_DECODED; } @@ -78,50 +107,38 @@ keycode_ioctl(struct tcb *const tcp, const kernel_ulong_t arg) if (!umove_or_printaddr(tcp, arg, &keycode)) { tprintf("[%u, ", keycode[0]); - printxval_index(evdev_keycode, keycode[1], "KEY_???"); + printxval(evdev_keycode, keycode[1], "KEY_???"); tprints("]"); } return RVAL_IOCTL_DECODED; } -# ifdef EVIOCGKEYCODE_V2 static int keycode_V2_ioctl(struct tcb *const tcp, const kernel_ulong_t arg) { tprints(", "); - struct input_keymap_entry ike; + struct_input_keymap_entry ike; if (umove_or_printaddr(tcp, arg, &ike)) return RVAL_IOCTL_DECODED; - tprintf("{flags=%" PRIu8 - ", len=%" PRIu8 ", ", - ike.flags, - ike.len); + PRINT_FIELD_U("{", ike, flags); + PRINT_FIELD_U(", ", ike, len); if (!abbrev(tcp)) { - unsigned int i; - - tprintf("index=%" PRIu16 ", keycode=", ike.index); - printxval_index(evdev_keycode, ike.keycode, "KEY_???"); - tprints(", scancode=["); - for (i = 0; i < ARRAY_SIZE(ike.scancode); i++) { - if (i > 0) - tprints(", "); - tprintf("%" PRIx8, ike.scancode[i]); - } - tprints("]"); + PRINT_FIELD_U(", ", ike, index); + PRINT_FIELD_XVAL(", ", ike, keycode, evdev_keycode, "KEY_???"); + PRINT_FIELD_X_ARRAY(", ", ike, scancode); } else { - tprints("..."); + tprints(", ..."); } tprints("}"); return RVAL_IOCTL_DECODED; } -# endif /* EVIOCGKEYCODE_V2 */ static int getid_ioctl(struct tcb *const tcp, const kernel_ulong_t arg) @@ -130,67 +147,85 @@ getid_ioctl(struct tcb *const tcp, const kernel_ulong_t arg) struct input_id id; - if (!umove_or_printaddr(tcp, arg, &id)) - tprintf("{ID_BUS=%" PRIu16 - ", ID_VENDOR=%" PRIu16 - ", ID_PRODUCT=%" PRIu16 - ", ID_VERSION=%" PRIu16 "}", - id.bustype, - id.vendor, - id.product, - id.version); + if (!umove_or_printaddr(tcp, arg, &id)) { + PRINT_FIELD_U("{", id, bustype); + PRINT_FIELD_U(", ", id, vendor); + PRINT_FIELD_U(", ", id, product); + PRINT_FIELD_U(", ", id, version); + tprints("}"); + } return RVAL_IOCTL_DECODED; } static int -decode_bitset_(struct tcb *const tcp, const kernel_ulong_t arg, - const struct xlat decode_nr[], const unsigned int max_nr, - const char *const dflt, size_t decode_nr_size, enum xlat_type xt) +decode_bitset(struct tcb *const tcp, const kernel_ulong_t arg, + const struct xlat *decode_nr, const unsigned int max_nr, + const char *const dflt) { tprints(", "); unsigned int size; + unsigned int size_bits; + if ((kernel_ulong_t) tcp->u_rval > max_nr / 8) - size = max_nr; + size_bits = max_nr; else - size = tcp->u_rval * 8; + size_bits = tcp->u_rval * 8; + + size = ROUNDUP(ROUNDUP_DIV(size_bits, 8), current_wordsize); + + if (syserror(tcp) || !size) { + printaddr(arg); + + return RVAL_IOCTL_DECODED; + } + char decoded_arg[size]; if (umove_or_printaddr(tcp, arg, &decoded_arg)) return RVAL_IOCTL_DECODED; - tprints("["); - - int bit_displayed = 0; - int i = next_set_bit(decoded_arg, 0, size); - if (i < 0) { - tprints(" 0 "); - } else { - printxval_dispatch(decode_nr, decode_nr_size, i, dflt, xt); + if (xlat_verbose(xlat_verbosity) != XLAT_STYLE_RAW) { + tprints("["); - while ((i = next_set_bit(decoded_arg, i + 1, size)) > 0) { - if (abbrev(tcp) && bit_displayed >= 3) { - tprints(", ..."); - break; + int bit_displayed = 0; + int i = next_set_bit(decoded_arg, 0, size_bits); + if (i < 0) { + tprints(" 0 "); + } else { + printxval(decode_nr, i, dflt); + + while ((i = next_set_bit(decoded_arg, i + 1, + size_bits)) > 0) { + if (abbrev(tcp) && bit_displayed >= 3) { + tprints(", ..."); + break; + } + tprints(", "); + printxval(decode_nr, i, dflt); + bit_displayed++; } - tprints(", "); - printxval_dispatch(decode_nr, decode_nr_size, i, dflt, - xt); - bit_displayed++; } + + tprints("]"); + } + + if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE) + tprints(" /* "); + + if (xlat_verbose(xlat_verbosity) != XLAT_STYLE_ABBREV) { + print_local_array_ex(tcp, decoded_arg, size / current_wordsize, + current_wordsize, print_xlong_array_member, + NULL, 0, NULL, NULL); } - tprints("]"); + if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE) + tprints(" */"); return RVAL_IOCTL_DECODED; } -# define decode_bitset(tcp_, arg_, decode_nr_, max_nr_, dflt_, xt_) \ - decode_bitset_((tcp_), (arg_), (decode_nr_), (max_nr_), \ - (dflt_), ARRAY_SIZE(decode_nr_) - 1, (xt_)) - -# ifdef EVIOCGMTSLOTS static int mtslots_ioctl(struct tcb *const tcp, const unsigned int code, const kernel_ulong_t arg) @@ -221,9 +256,7 @@ mtslots_ioctl(struct tcb *const tcp, const unsigned int code, return RVAL_IOCTL_DECODED; } -# endif /* EVIOCGMTSLOTS */ -# if defined EVIOCGREP || defined EVIOCSREP static int repeat_ioctl(struct tcb *const tcp, const kernel_ulong_t arg) { @@ -231,55 +264,53 @@ repeat_ioctl(struct tcb *const tcp, const kernel_ulong_t arg) printpair_int(tcp, arg, "%u"); return RVAL_IOCTL_DECODED; } -# endif /* EVIOCGREP || EVIOCSREP */ static int bit_ioctl(struct tcb *const tcp, const unsigned int ev_nr, const kernel_ulong_t arg) { switch (ev_nr) { - case 0: - return decode_bitset(tcp, arg, evdev_ev, - EV_MAX, "EV_???", XT_SORTED); - case EV_KEY: - return decode_bitset(tcp, arg, evdev_keycode, - KEY_MAX, "KEY_???", XT_INDEXED); - case EV_REL: - return decode_bitset(tcp, arg, evdev_relative_axes, - REL_MAX, "REL_???", XT_INDEXED); - case EV_ABS: - return decode_bitset(tcp, arg, evdev_abs, - ABS_MAX, "ABS_???", XT_INDEXED); - case EV_MSC: - return decode_bitset(tcp, arg, evdev_misc, - MSC_MAX, "MSC_???", XT_INDEXED); - case EV_SW: - return decode_bitset(tcp, arg, evdev_switch, - SW_MAX, "SW_???", XT_INDEXED); - case EV_LED: - return decode_bitset(tcp, arg, evdev_leds, - LED_MAX, "LED_???", XT_INDEXED); - case EV_SND: - return decode_bitset(tcp, arg, evdev_snd, - SND_MAX, "SND_???", XT_INDEXED); - case EV_REP: - return decode_bitset(tcp, arg, evdev_autorepeat, - REP_MAX, "REP_???", XT_INDEXED); - case EV_FF: - return decode_bitset(tcp, arg, evdev_ff_types, - FF_MAX, "FF_???", XT_SORTED); - case EV_PWR: - tprints(", "); - printnum_int(tcp, arg, "%d"); - return RVAL_IOCTL_DECODED; - case EV_FF_STATUS: - return decode_bitset(tcp, arg, evdev_ff_status, - FF_STATUS_MAX, "FF_STATUS_???", - XT_INDEXED); - default: - tprints(", "); - printaddr(arg); - return RVAL_IOCTL_DECODED; + case 0: + return decode_bitset(tcp, arg, evdev_ev, + EV_MAX, "EV_???"); + case EV_KEY: + return decode_bitset(tcp, arg, evdev_keycode, + KEY_MAX, "KEY_???"); + case EV_REL: + return decode_bitset(tcp, arg, evdev_relative_axes, + REL_MAX, "REL_???"); + case EV_ABS: + return decode_bitset(tcp, arg, evdev_abs, + ABS_MAX, "ABS_???"); + case EV_MSC: + return decode_bitset(tcp, arg, evdev_misc, + MSC_MAX, "MSC_???"); + case EV_SW: + return decode_bitset(tcp, arg, evdev_switch, + SW_MAX, "SW_???"); + case EV_LED: + return decode_bitset(tcp, arg, evdev_leds, + LED_MAX, "LED_???"); + case EV_SND: + return decode_bitset(tcp, arg, evdev_snd, + SND_MAX, "SND_???"); + case EV_REP: + return decode_bitset(tcp, arg, evdev_autorepeat, + REP_MAX, "REP_???"); + case EV_FF: + return decode_bitset(tcp, arg, evdev_ff_types, + FF_MAX, "FF_???"); + case EV_PWR: + tprints(", "); + printnum_int(tcp, arg, "%d"); + return RVAL_IOCTL_DECODED; + case EV_FF_STATUS: + return decode_bitset(tcp, arg, evdev_ff_status, + FF_STATUS_MAX, "FF_STATUS_???"); + default: + tprints(", "); + printaddr(arg); + return RVAL_IOCTL_DECODED; } } @@ -289,68 +320,57 @@ evdev_read_ioctl(struct tcb *const tcp, const unsigned int code, { /* fixed-number fixed-length commands */ switch (code) { - case EVIOCGVERSION: - tprints(", "); - printnum_int(tcp, arg, "%#x"); - return RVAL_IOCTL_DECODED; - case EVIOCGEFFECTS: - tprints(", "); - printnum_int(tcp, arg, "%u"); - return RVAL_IOCTL_DECODED; - case EVIOCGID: - return getid_ioctl(tcp, arg); -# ifdef EVIOCGREP - case EVIOCGREP: - return repeat_ioctl(tcp, arg); -# endif - case EVIOCGKEYCODE: - return keycode_ioctl(tcp, arg); -# ifdef EVIOCGKEYCODE_V2 - case EVIOCGKEYCODE_V2: - return keycode_V2_ioctl(tcp, arg); -# endif + case EVIOCGVERSION: + tprints(", "); + printnum_int(tcp, arg, "%#x"); + return RVAL_IOCTL_DECODED; + case EVIOCGEFFECTS: + tprints(", "); + printnum_int(tcp, arg, "%u"); + return RVAL_IOCTL_DECODED; + case EVIOCGID: + return getid_ioctl(tcp, arg); + case EVIOCGREP: + return repeat_ioctl(tcp, arg); + case EVIOCGKEYCODE: + return keycode_ioctl(tcp, arg); + case EVIOCGKEYCODE_V2: + return keycode_V2_ioctl(tcp, arg); } /* fixed-number variable-length commands */ switch (_IOC_NR(code)) { -# ifdef EVIOCGMTSLOTS - case _IOC_NR(EVIOCGMTSLOTS(0)): - return mtslots_ioctl(tcp, code, arg); -# endif - case _IOC_NR(EVIOCGNAME(0)): - case _IOC_NR(EVIOCGPHYS(0)): - case _IOC_NR(EVIOCGUNIQ(0)): - tprints(", "); - if (syserror(tcp)) - printaddr(arg); - else - printstrn(tcp, arg, tcp->u_rval); - return RVAL_IOCTL_DECODED; -# ifdef EVIOCGPROP - case _IOC_NR(EVIOCGPROP(0)): - return decode_bitset(tcp, arg, evdev_prop, - INPUT_PROP_MAX, "PROP_???", - XT_INDEXED); -# endif - case _IOC_NR(EVIOCGSND(0)): - return decode_bitset(tcp, arg, evdev_snd, - SND_MAX, "SND_???", XT_INDEXED); -# ifdef EVIOCGSW - case _IOC_NR(EVIOCGSW(0)): - return decode_bitset(tcp, arg, evdev_switch, - SW_MAX, "SW_???", XT_INDEXED); -# endif - case _IOC_NR(EVIOCGKEY(0)): - return decode_bitset(tcp, arg, evdev_keycode, - KEY_MAX, "KEY_???", XT_INDEXED); - case _IOC_NR(EVIOCGLED(0)): - return decode_bitset(tcp, arg, evdev_leds, - LED_MAX, "LED_???", XT_INDEXED); + case _IOC_NR(EVIOCGMTSLOTS(0)): + return mtslots_ioctl(tcp, code, arg); + case _IOC_NR(EVIOCGNAME(0)): + case _IOC_NR(EVIOCGPHYS(0)): + case _IOC_NR(EVIOCGUNIQ(0)): + tprints(", "); + if (syserror(tcp)) + printaddr(arg); + else + printstrn(tcp, arg, tcp->u_rval); + return RVAL_IOCTL_DECODED; + case _IOC_NR(EVIOCGPROP(0)): + return decode_bitset(tcp, arg, evdev_prop, + INPUT_PROP_MAX, "PROP_???"); + case _IOC_NR(EVIOCGSND(0)): + return decode_bitset(tcp, arg, evdev_snd, + SND_MAX, "SND_???"); + case _IOC_NR(EVIOCGSW(0)): + return decode_bitset(tcp, arg, evdev_switch, + SW_MAX, "SW_???"); + case _IOC_NR(EVIOCGKEY(0)): + return decode_bitset(tcp, arg, evdev_keycode, + KEY_MAX, "KEY_???"); + case _IOC_NR(EVIOCGLED(0)): + return decode_bitset(tcp, arg, evdev_leds, + LED_MAX, "LED_???"); } /* multi-number fixed-length commands */ if ((_IOC_NR(code) & ~ABS_MAX) == _IOC_NR(EVIOCGABS(0))) - return abs_ioctl(tcp, arg); + return abs_ioctl(tcp, code, arg); /* multi-number variable-length commands */ if ((_IOC_NR(code) & ~EV_MAX) == _IOC_NR(EVIOCGBIT(0, 0))) @@ -365,42 +385,33 @@ evdev_write_ioctl(struct tcb *const tcp, const unsigned int code, { /* fixed-number fixed-length commands */ switch (code) { -# ifdef EVIOCSREP - case EVIOCSREP: - return repeat_ioctl(tcp, arg); -# endif - case EVIOCSKEYCODE: - return keycode_ioctl(tcp, arg); -# ifdef EVIOCSKEYCODE_V2 - case EVIOCSKEYCODE_V2: - return keycode_V2_ioctl(tcp, arg); -# endif - case EVIOCRMFF: - tprintf(", %d", (int) arg); - return RVAL_IOCTL_DECODED; - case EVIOCGRAB: -# ifdef EVIOCREVOKE - case EVIOCREVOKE: -# endif - tprintf(", %" PRI_klu, arg); - return RVAL_IOCTL_DECODED; -# ifdef EVIOCSCLOCKID - case EVIOCSCLOCKID: - tprints(", "); - printnum_int(tcp, arg, "%u"); - return RVAL_IOCTL_DECODED; -# endif - default: { - int rc = evdev_write_ioctl_mpers(tcp, code, arg); - - if (rc != RVAL_DECODED) - return rc; - } + case EVIOCSREP: + return repeat_ioctl(tcp, arg); + case EVIOCSKEYCODE: + return keycode_ioctl(tcp, arg); + case EVIOCSKEYCODE_V2: + return keycode_V2_ioctl(tcp, arg); + case EVIOCRMFF: + tprintf(", %d", (int) arg); + return RVAL_IOCTL_DECODED; + case EVIOCGRAB: + case EVIOCREVOKE: + tprintf(", %" PRI_klu, arg); + return RVAL_IOCTL_DECODED; + case EVIOCSCLOCKID: + tprints(", "); + printnum_int(tcp, arg, "%u"); + return RVAL_IOCTL_DECODED; } + int rc = evdev_write_ioctl_mpers(tcp, code, arg); + + if (rc != RVAL_DECODED) + return rc; + /* multi-number fixed-length commands */ if ((_IOC_NR(code) & ~ABS_MAX) == _IOC_NR(EVIOCSABS(0))) - return abs_ioctl(tcp, arg); + return abs_ioctl(tcp, code, arg); return 0; } @@ -416,14 +427,14 @@ evdev_ioctl(struct tcb *const tcp, const unsigned int code, const kernel_ulong_t arg) { switch (_IOC_DIR(code)) { - case _IOC_READ: - if (entering(tcp)) - return 0; - return evdev_read_ioctl(tcp, code, arg); - case _IOC_WRITE: - return evdev_write_ioctl(tcp, code, arg) | RVAL_DECODED; - default: - return RVAL_DECODED; + case _IOC_READ: + if (entering(tcp)) + return 0; + return evdev_read_ioctl(tcp, code, arg); + case _IOC_WRITE: + return evdev_write_ioctl(tcp, code, arg) | RVAL_DECODED; + default: + return RVAL_DECODED; } } diff --git a/evdev_mpers.c b/evdev_mpers.c index ff99544b..f862e271 100644 --- a/evdev_mpers.c +++ b/evdev_mpers.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2015 Etienne Gemsa * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -24,19 +24,18 @@ typedef struct ff_effect struct_ff_effect; #ifdef HAVE_LINUX_INPUT_H +# include "print_fields.h" + static void decode_envelope(void *const data) { const struct ff_envelope *const envelope = data; - tprintf(", envelope={attack_length=%" PRIu16 - ", attack_level=%" PRIu16 - ", fade_length=%" PRIu16 - ", fade_level=%#x}", - envelope->attack_length, - envelope->attack_level, - envelope->fade_length, - envelope->fade_level); + PRINT_FIELD_U(", envelope={", *envelope, attack_length); + PRINT_FIELD_U(", ", *envelope, attack_level); + PRINT_FIELD_U(", ", *envelope, fade_length); + PRINT_FIELD_X(", ", *envelope, fade_level); + tprints("}"); } static int @@ -51,65 +50,51 @@ ff_effect_ioctl(struct tcb *const tcp, const kernel_ulong_t arg) tprints("{type="); print_evdev_ff_type(ffe.type); - tprintf(", id=%" PRIu16 - ", direction=%" PRIu16 ", ", - ffe.id, - ffe.direction); + PRINT_FIELD_D(", ", ffe, id); + PRINT_FIELD_U(", ", ffe, direction); if (abbrev(tcp)) { - tprints("...}"); + tprints(", ...}"); return RVAL_IOCTL_DECODED; } - tprintf("trigger={button=%" PRIu16 - ", interval=%" PRIu16 "}" - ", replay={length=%" PRIu16 - ", delay=%" PRIu16 "}", - ffe.trigger.button, - ffe.trigger.interval, - ffe.replay.length, - ffe.replay.delay); + PRINT_FIELD_U(", trigger={", ffe.trigger, button); + PRINT_FIELD_U(", ", ffe.trigger, interval); + PRINT_FIELD_U("}, replay={", ffe.replay, length); + PRINT_FIELD_U(", ", ffe.replay, delay); + tprints("}"); switch (ffe.type) { - case FF_CONSTANT: - tprintf(", constant={level=%" PRId16, - ffe.u.constant.level); - decode_envelope(&ffe.u.constant.envelope); - tprints("}"); - break; - case FF_RAMP: - tprintf(", ramp={start_level=%" PRId16 - ", end_level=%" PRId16, - ffe.u.ramp.start_level, - ffe.u.ramp.end_level); - decode_envelope(&ffe.u.ramp.envelope); - tprints("}"); - break; - case FF_PERIODIC: - tprintf(", periodic={waveform=%" PRIu16 - ", period=%" PRIu16 - ", magnitude=%" PRId16 - ", offset=%" PRId16 - ", phase=%" PRIu16, - ffe.u.periodic.waveform, - ffe.u.periodic.period, - ffe.u.periodic.magnitude, - ffe.u.periodic.offset, - ffe.u.periodic.phase); - decode_envelope(&ffe.u.periodic.envelope); - tprintf(", custom_len=%u, custom_data=", - ffe.u.periodic.custom_len); - printaddr(ptr_to_kulong(ffe.u.periodic.custom_data)); - tprints("}"); - break; - case FF_RUMBLE: - tprintf(", rumble={strong_magnitude=%" PRIu16 - ", weak_magnitude=%" PRIu16 "}", - ffe.u.rumble.strong_magnitude, - ffe.u.rumble.weak_magnitude); - break; - default: - break; + case FF_CONSTANT: + PRINT_FIELD_D(", constant={", ffe.u.constant, level); + decode_envelope(&ffe.u.constant.envelope); + tprints("}"); + break; + case FF_RAMP: + PRINT_FIELD_D(", ramp={", ffe.u.ramp, start_level); + PRINT_FIELD_D(", ", ffe.u.ramp, end_level); + decode_envelope(&ffe.u.ramp.envelope); + tprints("}"); + break; + case FF_PERIODIC: + PRINT_FIELD_U(", periodic={", ffe.u.periodic, waveform); + PRINT_FIELD_U(", ", ffe.u.periodic, period); + PRINT_FIELD_D(", ", ffe.u.periodic, magnitude); + PRINT_FIELD_D(", ", ffe.u.periodic, offset); + PRINT_FIELD_U(", ", ffe.u.periodic, phase); + decode_envelope(&ffe.u.periodic.envelope); + PRINT_FIELD_U(", ", ffe.u.periodic, custom_len); + tprints(", custom_data="); + printaddr(ptr_to_kulong(ffe.u.periodic.custom_data)); + tprints("}"); + break; + case FF_RUMBLE: + PRINT_FIELD_U(", rumble={", ffe.u.rumble, strong_magnitude); + PRINT_FIELD_U(", ", ffe.u.rumble, weak_magnitude); + tprints("}"); + break; + default: + break; } tprints("}"); @@ -121,10 +106,10 @@ MPERS_PRINTER_DECL(int, evdev_write_ioctl_mpers, struct tcb *const tcp, const unsigned int code, const kernel_ulong_t arg) { switch (code) { - case EVIOCSFF: - return ff_effect_ioctl(tcp, arg); - default: - return RVAL_DECODED; + case EVIOCSFF: + return ff_effect_ioctl(tcp, arg); + default: + return RVAL_DECODED; } } diff --git a/execve.c b/execve.c index b675cd26..567dcbef 100644 --- a/execve.c +++ b/execve.c @@ -6,7 +6,7 @@ * Copyright (c) 2007 Roland McGrath * Copyright (c) 2011-2012 Denys Vlasenko * Copyright (c) 2010-2015 Dmitry V. Levin - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -109,6 +109,7 @@ SYS_FUNC(execve) SYS_FUNC(execveat) { print_dirfd(tcp, tcp->u_arg[0]); + tprints(", "); decode_execve(tcp, 1); tprints(", "); printflags(at_flags, tcp->u_arg[4], "AT_???"); diff --git a/fanotify.c b/fanotify.c index 9a0d5c62..91edf068 100644 --- a/fanotify.c +++ b/fanotify.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2014-2015 Dmitry V. Levin - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -55,12 +55,11 @@ SYS_FUNC(fanotify_mark) #endif printflags64(fan_event_flags, mask, "FAN_???"); tprints(", "); - if ((int) tcp->u_arg[argn] == FAN_NOFD) { + if ((int) tcp->u_arg[argn] == FAN_NOFD) print_xlat_d(FAN_NOFD); - tprints(", "); - } else { + else print_dirfd(tcp, tcp->u_arg[argn]); - } + tprints(", "); printpath(tcp, tcp->u_arg[argn + 1]); return RVAL_DECODED; diff --git a/fchownat.c b/fchownat.c index 15fcb063..b573b5ba 100644 --- a/fchownat.c +++ b/fchownat.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -10,6 +10,7 @@ SYS_FUNC(fchownat) { print_dirfd(tcp, tcp->u_arg[0]); + tprints(", "); printpath(tcp, tcp->u_arg[1]); printuid(", ", tcp->u_arg[2]); printuid(", ", tcp->u_arg[3]); diff --git a/fcntl.c b/fcntl.c index 0b4221ce..5c630a06 100644 --- a/fcntl.c +++ b/fcntl.c @@ -3,7 +3,7 @@ * Copyright (c) 1993 Branko Lankester * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey * Copyright (c) 1996-1999 Wichert Akkerman - * Copyright (c) 1999-2018 The strace developers. + * Copyright (c) 1999-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -11,6 +11,7 @@ #include "defs.h" #include "flock.h" +#include "print_fields.h" #include "xlat/f_owner_types.h" #include "xlat/f_seals.h" @@ -20,16 +21,14 @@ #include "xlat/notifyflags.h" static void -print_struct_flock64(const struct_kernel_flock64 *fl, const int getlk) +print_struct_flock64(struct tcb *const tcp, const struct_kernel_flock64 *fl, const int getlk) { - tprints("{l_type="); - printxval(lockfcmds, (unsigned short) fl->l_type, "F_???"); - tprints(", l_whence="); - printxval(whence_codes, (unsigned short) fl->l_whence, "SEEK_???"); - tprintf(", l_start=%" PRId64 ", l_len=%" PRId64, - (int64_t) fl->l_start, (int64_t) fl->l_len); + PRINT_FIELD_XVAL("{", *fl, l_type, lockfcmds, "F_???"); + PRINT_FIELD_XVAL(", ", *fl, l_whence, whence_codes, "SEEK_???"); + PRINT_FIELD_D(", ", *fl, l_start); + PRINT_FIELD_D(", ", *fl, l_len); if (getlk) - tprintf(", l_pid=%lu", (unsigned long) fl->l_pid); + PRINT_FIELD_TGID(", ", *fl, l_pid, tcp); tprints("}"); } @@ -39,7 +38,7 @@ printflock64(struct tcb *const tcp, const kernel_ulong_t addr, const int getlk) struct_kernel_flock64 fl; if (fetch_struct_flock64(tcp, addr, &fl)) - print_struct_flock64(&fl, getlk); + print_struct_flock64(tcp, &fl, getlk); } static void @@ -48,7 +47,7 @@ printflock(struct tcb *const tcp, const kernel_ulong_t addr, const int getlk) struct_kernel_flock64 fl; if (fetch_struct_flock(tcp, addr, &fl)) - print_struct_flock64(&fl, getlk); + print_struct_flock64(tcp, &fl, getlk); } static void @@ -59,9 +58,24 @@ print_f_owner_ex(struct tcb *const tcp, const kernel_ulong_t addr) if (umove_or_printaddr(tcp, addr, &owner)) return; - tprints("{type="); - printxval(f_owner_types, owner.type, "F_OWNER_???"); - tprintf(", pid=%d}", owner.pid); + PRINT_FIELD_XVAL("{", owner, type, f_owner_types, "F_OWNER_???"); + + enum pid_type pid_type = PT_NONE; + switch (owner.type) + { + case F_OWNER_TID: + pid_type = PT_TID; + break; + case F_OWNER_PID: + pid_type = PT_TGID; + break; + case F_OWNER_PGRP: + pid_type = PT_PGID; + break; + } + tprints(", pid="); + printpid(tcp, owner.pid, pid_type); + tprints("}"); } static int @@ -75,6 +89,9 @@ print_fcntl(struct tcb *tcp) printflags(fdflags, tcp->u_arg[2], "FD_???"); break; case F_SETOWN: + tprints(", "); + printpid_tgid_pgid(tcp, tcp->u_arg[2]); + break; case F_SETPIPE_SZ: tprintf(", %" PRI_kld, tcp->u_arg[2]); break; @@ -117,6 +134,8 @@ print_fcntl(struct tcb *tcp) printsignal(tcp->u_arg[2]); break; case F_GETOWN: + return RVAL_DECODED | + ((int) tcp->u_rval < 0 ? RVAL_PGID : RVAL_TGID); case F_GETPIPE_SZ: break; case F_GETFD: diff --git a/file-date-gen b/file-date-gen new file mode 100755 index 00000000..12314af1 --- /dev/null +++ b/file-date-gen @@ -0,0 +1,53 @@ +#!/bin/sh +# +# Copyright (c) 2017-2019 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: LGPL-2.1-or-later + +if [ "$1" = "-f" ]; then + shift + DATE_FORMAT="$1" + shift +fi + +: ${FILE:=$1} +: ${DATE_FILE:=$(dirname "$FILE")/.$(basename "${FILE}").date} +: ${DEFAULT_DATE:=$2} +: ${DATE_FORMAT:=%Y-%m-%d} +LC_TIME=C; export LC_TIME + +date= + +[ -n "${FILE}" ] || { + echo >&2 "$0 $(dirname "$0")/file [$(dirname "$0")/file.date [DEFAULT_DATE]]" + exit 1 +} + +[ -f "${DATE_FILE}" ] && date="$(cat "${DATE_FILE}")" + +[ -n "${date}" ] || + date="$(git log -s -n 1 --format=format:%cD "${FILE}")" + +[ -n "${date}" ] || + date="${DEFAULT_DATE}" + +[ -n "${date}" ] || + [ -z "${SOURCE_DATE_EPOCH-}" ] || + date="$(date -u -d "@${SOURCE_DATE_EPOCH}")" + +[ -n "${date}" ] || + date="$(date -u)" + +[ -n "${date}" ] || { + printf >&2 "%s: Undefined date.\n" "$0" + exit 1 +} + +datestr="$(date -u "+${DATE_FORMAT}" -d "${date}")" && +[ -n "${datestr}" ] || { + printf >&2 "%s: Invalid date: %s\n" "$0" "$date" + exit 1 +} + +exec printf '%s' "$datestr" diff --git a/file_handle.c b/file_handle.c index 7ac135b0..d82a1bc7 100644 --- a/file_handle.c +++ b/file_handle.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2015 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -27,6 +27,7 @@ SYS_FUNC(name_to_handle_at) if (entering(tcp)) { /* dirfd */ print_dirfd(tcp, tcp->u_arg[0]); + tprints(", "); /* pathname */ printpath(tcp, tcp->u_arg[1]); diff --git a/file_ioctl.c b/file_ioctl.c index 27ba4c82..d9a07ab0 100644 --- a/file_ioctl.c +++ b/file_ioctl.c @@ -1,16 +1,18 @@ /* * Copyright (c) 2016 Jeff Mahoney - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ #include "defs.h" +#include "print_fields.h" #include #include #ifdef HAVE_LINUX_FIEMAP_H +# include # include # include "xlat/fiemap_flags.h" # include "xlat/fiemap_extent_flags.h" @@ -72,14 +74,13 @@ print_file_dedupe_range_info(struct tcb *tcp, void *elem_buf, } if (entering(tcp)) { - tprints("{dest_fd="); - printfd(tcp, info->dest_fd); - tprintf(", dest_offset=%" PRIu64 "}", - (uint64_t) info->dest_offset); + PRINT_FIELD_FD("{", *info, dest_fd, tcp); + PRINT_FIELD_U(", ", *info, dest_offset); } else { - tprintf("{bytes_deduped=%" PRIu64 ", status=%d}", - (uint64_t) info->bytes_deduped, info->status); + PRINT_FIELD_U("{", *info, bytes_deduped); + PRINT_FIELD_D(", ", *info, status); } + tprints("}"); return true; } @@ -90,13 +91,11 @@ print_fiemap_extent(struct tcb *tcp, void *elem_buf, size_t elem_size, void *dat { const struct fiemap_extent *fe = elem_buf; - tprintf("{fe_logical=%" PRI__u64 - ", fe_physical=%" PRI__u64 - ", fe_length=%" PRI__u64 ", ", - fe->fe_logical, fe->fe_physical, fe->fe_length); - - printflags64(fiemap_extent_flags, fe->fe_flags, - "FIEMAP_EXTENT_???"); + PRINT_FIELD_U("{", *fe, fe_logical); + PRINT_FIELD_U(", ", *fe, fe_physical); + PRINT_FIELD_U(", ", *fe, fe_length); + PRINT_FIELD_FLAGS(", ", *fe, fe_flags, fiemap_extent_flags, + "FIEMAP_EXTENT_???"); tprints("}"); return true; @@ -119,14 +118,11 @@ file_ioctl(struct tcb *const tcp, const unsigned int code, if (umove_or_printaddr(tcp, arg, &args)) break; - tprints("{src_fd="); - printfd(tcp, args.src_fd); - tprintf(", src_offset=%" PRIu64 - ", src_length=%" PRIu64 - ", dest_offset=%" PRIu64 "}", - (uint64_t) args.src_offset, - (uint64_t) args.src_length, - (uint64_t) args.dest_offset); + PRINT_FIELD_FD("{", args, src_fd, tcp); + PRINT_FIELD_U(", ", args, src_offset); + PRINT_FIELD_U(", ", args, src_length); + PRINT_FIELD_U(", ", args, dest_offset); + tprints("}"); break; } @@ -149,12 +145,10 @@ file_ioctl(struct tcb *const tcp, const unsigned int code, tprints("{"); if (entering(tcp)) { - tprintf("src_offset=%" PRIu64 - ", src_length=%" PRIu64 - ", dest_count=%hu, ", - (uint64_t) args.src_offset, - (uint64_t) args.src_length, - (uint16_t) args.dest_count); + PRINT_FIELD_U("", args, src_offset); + PRINT_FIELD_U(", ", args, src_length); + PRINT_FIELD_U(", ", args, dest_count); + tprints(", "); } tprints("info="); @@ -190,21 +184,18 @@ file_ioctl(struct tcb *const tcp, const unsigned int code, break; if (entering(tcp)) { - tprintf("{fm_start=%" PRI__u64 ", " - "fm_length=%" PRI__u64 ", " - "fm_flags=", - args.fm_start, args.fm_length); - printflags64(fiemap_flags, args.fm_flags, - "FIEMAP_FLAG_???"); - tprintf(", fm_extent_count=%u}", args.fm_extent_count); + PRINT_FIELD_U("{", args, fm_start); + PRINT_FIELD_U(", ", args, fm_length); + PRINT_FIELD_FLAGS(", ", args, fm_flags, fiemap_flags, + "FIEMAP_FLAG_???"); + PRINT_FIELD_U(", ", args, fm_extent_count); + tprints("}"); return 0; } - tprints("{fm_flags="); - printflags64(fiemap_flags, args.fm_flags, - "FIEMAP_FLAG_???"); - tprintf(", fm_mapped_extents=%u", - args.fm_mapped_extents); + PRINT_FIELD_FLAGS("{", args, fm_flags, fiemap_flags, + "FIEMAP_FLAG_???"); + PRINT_FIELD_U(", ", args, fm_mapped_extents); if (abbrev(tcp)) { tprints(", ..."); } else { diff --git a/filter_qualify.c b/filter_qualify.c index 4a05f1b2..37581fde 100644 --- a/filter_qualify.c +++ b/filter_qualify.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -12,15 +12,22 @@ #include "filter.h" #include "delay.h" #include "retval.h" +#include "static_assert.h" struct number_set *read_set; struct number_set *write_set; struct number_set *signal_set; +struct number_set *status_set; +struct number_set *quiet_set; +struct number_set *decode_fd_set; +struct number_set *trace_set; + +bool quiet_set_updated = false; +bool decode_fd_set_updated = false; static struct number_set *abbrev_set; static struct number_set *inject_set; static struct number_set *raw_set; -static struct number_set *trace_set; static struct number_set *verbose_set; /* Only syscall numbers are personality-specific so far. */ @@ -57,6 +64,49 @@ sigstr_to_uint(const char *s) return -1; } +static int +statusstr_to_uint(const char *str) +{ + static const struct xlat_data statuses[] = { + { STATUS_SUCCESSFUL, "successful" }, + { STATUS_FAILED, "failed" }, + { STATUS_UNFINISHED, "unfinished" }, + { STATUS_UNAVAILABLE, "unavailable" }, + { STATUS_DETACHED, "detached" }, + }; + + return (int) find_arg_val(str, statuses, -1ULL, -1ULL); +} + +static int +quietstr_to_uint(const char *str) +{ + static const struct xlat_data quiet_strs[] = { + { QUIET_ATTACH, "attach" }, + { QUIET_EXIT, "exit" }, + { QUIET_EXIT, "exits" }, + { QUIET_PATH_RESOLVE, "path-resolution" }, + { QUIET_PERSONALITY, "personality" }, + { QUIET_THREAD_EXECVE, "superseded" }, + { QUIET_THREAD_EXECVE, "thread-execve" }, + }; + + return (int) find_arg_val(str, quiet_strs, -1ULL, -1ULL); +} + +static int +decode_fd_str_to_uint(const char *str) +{ + static const struct xlat_data decode_fd_strs[] = { + { DECODE_FD_PATH, "path" }, + { DECODE_FD_SOCKET, "socket" }, + { DECODE_FD_DEV, "dev" }, + { DECODE_FD_PIDFD, "pidfd" }, + }; + + return (int) find_arg_val(str, decode_fd_strs, -1ULL, -1ULL); +} + static int find_errno_by_name(const char *name) { @@ -75,14 +125,15 @@ parse_delay_token(const char *input, struct inject_opts *fopts, bool isenter) if (fopts->data.flags & flag) /* duplicate */ return false; - long long intval = string_to_ulonglong(input); - if (intval < 0) /* couldn't parse */ + struct timespec tsval; + + if (parse_ts(input, &tsval) < 0) /* couldn't parse */ return false; if (fopts->data.delay_idx == (uint16_t) -1) fopts->data.delay_idx = alloc_delay_data(); /* populate .ts_enter or .ts_exit */ - fill_delay_data(fopts->data.delay_idx, intval, isenter); + fill_delay_data(fopts->data.delay_idx, &tsval, isenter); fopts->data.flags |= flag; return true; @@ -98,33 +149,67 @@ parse_inject_token(const char *const token, struct inject_opts *const fopts, if ((val = STR_STRIP_PREFIX(token, "when=")) != token) { /* - * == 1+1 - * F == F+0 - * F+ == F+1 - * F+S + * == 1..INF+1 + * F == F..INF+0 + * F+ == F..INF+1 + * F+S == F..INF+S + * F..L == F..L+1 + * F..L+S */ char *end; - intval = string_to_uint_ex(val, &end, 0xffff, "+"); + intval = string_to_uint_ex(val, &end, 0xffff, "+."); if (intval < 1) return false; fopts->first = intval; - if (*end) { + if (end[0] == '.') { + if (end[1] != '.') + return false; + /* + * F..L + * F..L+S + */ + val = end + 2; + intval = string_to_uint_ex(val, &end, 0xffff, "+"); + if (intval < fopts->first || intval == INJECT_LAST_INF) + return false; + fopts->last = intval; + } else { + /* + * F == F..INF+0 + * F+ == F..INF+1 + * F+S == F..INF+S + */ + fopts->last = INJECT_LAST_INF; + } + + if (end[0] != '\0') { val = end + 1; - if (*val) { - /* F+S */ + if (val[0] != '\0') { + /* + * F+S == F..INF+S + * F..L+S + */ intval = string_to_uint_upto(val, 0xffff); if (intval < 1) return false; fopts->step = intval; } else { - /* F+ == F+1 */ + /* + * F+ == F..INF+1 + * F..L+ == F..L+1 + */ fopts->step = 1; } } else { - /* F == F+0 */ - fopts->step = 0; + if (fopts->last == INJECT_LAST_INF) { + /* F == F..INF+0 */ + fopts->step = 0; + } else { + /* F..L == F..L+1 */ + fopts->step = 1; + } } } else if ((val = STR_STRIP_PREFIX(token, "syscall=")) != token) { if (fopts->data.flags & INJECT_F_SYSCALL) @@ -251,7 +336,7 @@ parse_inject_expression(char *const str, return name; } -static void +void qualify_read(const char *const str) { if (!read_set) @@ -259,7 +344,7 @@ qualify_read(const char *const str) qualify_tokens(str, read_set, string_to_uint, "descriptor"); } -static void +void qualify_write(const char *const str) { if (!write_set) @@ -267,7 +352,7 @@ qualify_write(const char *const str) qualify_tokens(str, write_set, string_to_uint, "descriptor"); } -static void +void qualify_signals(const char *const str) { if (!signal_set) @@ -275,7 +360,36 @@ qualify_signals(const char *const str) qualify_tokens(str, signal_set, sigstr_to_uint, "signal"); } -static void +void +qualify_status(const char *const str) +{ + if (!status_set) + status_set = alloc_number_set_array(1); + qualify_tokens(str, status_set, statusstr_to_uint, "status"); +} + +void +qualify_quiet(const char *const str) +{ + if (!quiet_set) + quiet_set = alloc_number_set_array(1); + else + quiet_set_updated = true; + qualify_tokens(str, quiet_set, quietstr_to_uint, "quiet"); +} + +void +qualify_decode_fd(const char *const str) +{ + if (!decode_fd_set) + decode_fd_set = alloc_number_set_array(1); + else + decode_fd_set_updated = true; + qualify_tokens(str, decode_fd_set, decode_fd_str_to_uint, + "decode-fds"); +} + +void qualify_trace(const char *const str) { if (!trace_set) @@ -283,7 +397,7 @@ qualify_trace(const char *const str) qualify_syscall_tokens(str, trace_set); } -static void +void qualify_abbrev(const char *const str) { if (!abbrev_set) @@ -291,7 +405,7 @@ qualify_abbrev(const char *const str) qualify_syscall_tokens(str, abbrev_set); } -static void +void qualify_verbose(const char *const str) { if (!verbose_set) @@ -299,7 +413,7 @@ qualify_verbose(const char *const str) qualify_syscall_tokens(str, verbose_set); } -static void +void qualify_raw(const char *const str) { if (!raw_set) @@ -314,6 +428,7 @@ qualify_inject_common(const char *const str, { struct inject_opts opts = { .first = 1, + .last = INJECT_LAST_INF, .step = 1, .data = { .delay_idx = -1 @@ -376,19 +491,19 @@ qualify_inject_common(const char *const str, free_number_set_array(tmp_set, SUPPORTED_PERSONALITIES); } -static void +void qualify_fault(const char *const str) { qualify_inject_common(str, true, "fault argument"); } -static void +void qualify_inject(const char *const str) { qualify_inject_common(str, false, "inject argument"); } -static void +void qualify_kvm(const char *const str) { if (strcmp(str, "vcpu") == 0) { @@ -421,7 +536,12 @@ static const struct qual_options { { "x", qualify_raw }, { "signal", qualify_signals }, { "signals", qualify_signals }, + { "status", qualify_status }, { "s", qualify_signals }, + { "quiet", qualify_quiet }, + { "silent", qualify_quiet }, + { "silence", qualify_quiet }, + { "q", qualify_quiet }, { "read", qualify_read }, { "reads", qualify_read }, { "r", qualify_read }, @@ -431,6 +551,8 @@ static const struct qual_options { { "fault", qualify_fault }, { "inject", qualify_inject }, { "kvm", qualify_kvm }, + { "decode-fd", qualify_decode_fd }, + { "decode-fds", qualify_decode_fd }, }; void diff --git a/filter_seccomp.c b/filter_seccomp.c new file mode 100644 index 00000000..adb9f230 --- /dev/null +++ b/filter_seccomp.c @@ -0,0 +1,762 @@ +/* + * Copyright (c) 2018 Chen Jingpiao + * Copyright (c) 2019 Paul Chaignon + * Copyright (c) 2018-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#include "defs.h" + +#include "ptrace.h" +#include +#include +#include +#include + +#include "filter_seccomp.h" +#include "number_set.h" +#include "syscall.h" +#include "scno.h" + +bool seccomp_filtering; +bool seccomp_before_sysentry; + +#ifdef HAVE_LINUX_SECCOMP_H + +# include + +#else + +# define XLAT_MACROS_ONLY +# include "xlat/prctl_options.h" +# include "xlat/seccomp_mode.h" +# include "xlat/seccomp_ret_action.h" +# undef XLAT_MACROS_ONLY + +struct seccomp_data { + int nr; + uint32_t arch; + uint64_t instruction_pointer; + uint64_t args[6]; +}; + +#endif /* !HAVE_LINUX_SECCOMP_H */ + +/* PERSONALITY*_AUDIT_ARCH definitions depend on AUDIT_ARCH_* constants. */ +#ifdef PERSONALITY0_AUDIT_ARCH +# include +# define XLAT_MACROS_ONLY +# include "xlat/elf_em.h" +# include "xlat/audit_arch.h" +# undef XLAT_MACROS_ONLY +#endif + +#ifndef BPF_MAXINSNS +# define BPF_MAXINSNS 4096 +#endif + +#define JMP_PLACEHOLDER_NEXT ((unsigned char) -1) +#define JMP_PLACEHOLDER_TRACE ((unsigned char) -2) +#define JMP_PLACEHOLDER_ALLOW ((unsigned char) -3) + +#define SET_BPF(filter, code, jt, jf, k) \ + (*(filter) = (struct sock_filter) { code, jt, jf, k }) + +#define SET_BPF_STMT(filter, code, k) \ + SET_BPF(filter, code, 0, 0, k) + +#define SET_BPF_JUMP(filter, code, k, jt, jf) \ + SET_BPF(filter, BPF_JMP | code, jt, jf, k) + +struct audit_arch_t { + unsigned int arch; + unsigned int flag; +}; + +static const struct audit_arch_t audit_arch_vec[SUPPORTED_PERSONALITIES] = { +#if SUPPORTED_PERSONALITIES > 1 + PERSONALITY0_AUDIT_ARCH, + PERSONALITY1_AUDIT_ARCH, +# if SUPPORTED_PERSONALITIES > 2 + PERSONALITY2_AUDIT_ARCH, +# endif +#endif +}; + +typedef unsigned short (*filter_generator_t)(struct sock_filter *, + bool *overflow); +static unsigned short linear_filter_generator(struct sock_filter *, + bool *overflow); +static unsigned short binary_match_filter_generator(struct sock_filter *, + bool *overflow); +static filter_generator_t filter_generators[] = { + linear_filter_generator, + binary_match_filter_generator, +}; + +/* + * Keep some margin in seccomp_filter as programs larger than allowed may + * be constructed before we discard them. + */ +static struct sock_filter +filters[ARRAY_SIZE(filter_generators)][2 * BPF_MAXINSNS]; +static struct sock_fprog bpf_prog = { + .len = USHRT_MAX, + .filter = NULL, +}; + +#ifdef HAVE_FORK + +static void ATTRIBUTE_NORETURN +check_seccomp_order_do_child(void) +{ + static const struct sock_filter filter[] = { + /* return (nr == __NR_gettid) ? RET_TRACE : RET_ALLOW; */ + BPF_STMT(BPF_LD | BPF_W | BPF_ABS, + offsetof(struct seccomp_data, nr)), + BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, __NR_gettid, 0, 1), + BPF_STMT(BPF_RET | BPF_K, SECCOMP_RET_TRACE), + BPF_STMT(BPF_RET | BPF_K, SECCOMP_RET_ALLOW) + }; + static const struct sock_fprog prog = { + .len = ARRAY_SIZE(filter), + .filter = (struct sock_filter *) filter + }; + + /* Get everything ready before PTRACE_TRACEME. */ + if (prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0) < 0) + perror_func_msg_and_die("prctl(PR_SET_NO_NEW_PRIVS, 1"); + if (prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &prog) < 0) + perror_func_msg_and_die("prctl(PR_SET_SECCOMP)"); + int pid = getpid(); + + if (ptrace(PTRACE_TRACEME, 0L, 0L, 0L) < 0) { + /* Exit with a nonzero exit status. */ + perror_func_msg_and_die("PTRACE_TRACEME"); + } + + GCOV_DUMP; + + kill(pid, SIGSTOP); + syscall(__NR_gettid); + _exit(0); +} + +static int +check_seccomp_order_tracer(int pid) +{ + unsigned int step; + + for (step = 0; ; ++step) { + int status; + + for (;;) { + long rc = waitpid(pid, &status, 0); + if (rc < 0 && errno == EINTR) + continue; + if (rc == pid) + break; + /* Cannot happen. */ + perror_func_msg("#%d: unexpected wait result %ld", + step, rc); + return pid; + } + + if (WIFEXITED(status)) { + /* The tracee is no more. */ + pid = 0; + + int exitstatus = WEXITSTATUS(status); + if (step == 5 && exitstatus == 0) { + seccomp_filtering = true; + } else { + error_func_msg("#%d: unexpected exit status %u", + step, exitstatus); + } + break; + } + + if (WIFSIGNALED(status)) { + /* The tracee is no more. */ + pid = 0; + + error_func_msg("#%d: unexpected signal %u", + step, WTERMSIG(status)); + break; + } + + if (!WIFSTOPPED(status)) { + /* Cannot happen. */ + error_func_msg("#%d: unexpected wait status %#x", + step, status); + break; + } + + unsigned int event = (unsigned int) status >> 16; + + switch (WSTOPSIG(status)) { + case SIGSTOP: + if (step != 0) { + error_func_msg("#%d: unexpected signal stop", + step); + return pid; + } + if (ptrace(PTRACE_SETOPTIONS, pid, 0L, + PTRACE_O_TRACESYSGOOD| + PTRACE_O_TRACESECCOMP) < 0) { + perror_func_msg("PTRACE_SETOPTIONS"); + return pid; + } + break; + + case SIGTRAP: + if (event != PTRACE_EVENT_SECCOMP) { + error_func_msg("#%d: unexpected trap %#x", + step, event); + return pid; + } + + switch (step) { + case 1: /* Seccomp stop before entering gettid. */ + seccomp_before_sysentry = true; + break; + case 2: /* Seccomp stop after entering gettid. */ + if (!seccomp_before_sysentry) + break; + ATTRIBUTE_FALLTHROUGH; + default: + error_func_msg("#%d: unexpected seccomp stop", + step); + return pid; + } + break; + + case SIGTRAP | 0x80: + switch (step) { + case 3: /* Exiting gettid. */ + case 4: /* Entering exit_group. */ + break; + case 1: /* Entering gettid before seccomp stop. */ + seccomp_before_sysentry = false; + break; + case 2: /* Entering gettid after seccomp stop. */ + if (seccomp_before_sysentry) + break; + ATTRIBUTE_FALLTHROUGH; + default: + error_func_msg("#%d: unexpected syscall stop", + step); + return pid; + } + break; + + default: + error_func_msg("#%d: unexpected stop signal %#x", + step, WSTOPSIG(status)); + return pid; + } + + if (ptrace(PTRACE_SYSCALL, pid, 0L, 0L) < 0) { + /* Cannot happen. */ + perror_func_msg("#%d: PTRACE_SYSCALL", step); + break; + } + } + + return pid; +} +#endif /* HAVE_FORK */ + +static void +check_seccomp_order(void) +{ + seccomp_filtering = false; + + /* NOMMU provides no forks necessary for the test. */ +#ifdef HAVE_FORK + int pid = fork(); + if (pid < 0) { + perror_func_msg("fork"); + return; + } + + if (pid == 0) + check_seccomp_order_do_child(); + + pid = check_seccomp_order_tracer(pid); + if (pid) { + kill(pid, SIGKILL); + for (;;) { + long rc = waitpid(pid, NULL, 0); + if (rc < 0 && errno == EINTR) + continue; + break; + } + } +#endif /* HAVE_FORK */ +} + +static bool +traced_by_seccomp(unsigned int scno, unsigned int p) +{ + unsigned int always_trace_flags = + TRACE_INDIRECT_SUBCALL | TRACE_SECCOMP_DEFAULT | + (stack_trace_enabled ? MEMORY_MAPPING_CHANGE : 0); + return sysent_vec[p][scno].sys_flags & always_trace_flags || + is_number_in_set_array(scno, trace_set, p); +} + +static void +replace_jmp_placeholders(unsigned char *jmp_offset, unsigned char jmp_next, + unsigned char jmp_trace, unsigned char jmp_allow) +{ + switch (*jmp_offset) { + case JMP_PLACEHOLDER_NEXT: + *jmp_offset = jmp_next; + break; + case JMP_PLACEHOLDER_TRACE: + *jmp_offset = jmp_trace; + break; + case JMP_PLACEHOLDER_ALLOW: + *jmp_offset = jmp_allow; + break; + default: + break; + } +} + +static unsigned short +bpf_syscalls_cmp(struct sock_filter *filter, + unsigned int lower, unsigned int upper) +{ + if (lower + 1 == upper) { + /* if (nr == lower) return RET_TRACE; */ + SET_BPF_JUMP(filter, BPF_JEQ | BPF_K, lower, + JMP_PLACEHOLDER_TRACE, 0); + return 1; + } else { + /* if (nr >= lower && nr < upper) return RET_TRACE; */ + SET_BPF_JUMP(filter, BPF_JGE | BPF_K, lower, 0, 1); + SET_BPF_JUMP(filter + 1, BPF_JGE | BPF_K, upper, 0, + JMP_PLACEHOLDER_TRACE); + return 2; + } +} + +static unsigned short +linear_filter_generator(struct sock_filter *filter, bool *overflow) +{ + /* + * Generated program looks like: + * if (arch == AUDIT_ARCH_A && nr >= flag) { + * if (nr == 59) + * return SECCOMP_RET_TRACE; + * if (nr >= 321 && nr <= 323) + * return SECCOMP_RET_TRACE; + * ... + * return SECCOMP_RET_ALLOW; + * } + * if (arch == AUDIT_ARCH_A) { + * ... + * } + * if (arch == AUDIT_ARCH_B) { + * ... + * } + * return SECCOMP_RET_TRACE; + */ + unsigned short pos = 0; + +#if SUPPORTED_PERSONALITIES > 1 + SET_BPF_STMT(&filter[pos++], BPF_LD | BPF_W | BPF_ABS, + offsetof(struct seccomp_data, arch)); +#endif + + /* + * Personalities are iterated in reverse-order in the BPF program so + * that the x86 case is naturally handled. On x86, the first and third + * personalities have the same arch identifier. The third can be + * distinguished based on its associated syscall flag, so we check it + * first. The only drawback here is that the first personality is more + * common, which may make the BPF program slower to match syscalls on + * average. + */ + for (int p = SUPPORTED_PERSONALITIES - 1; p >= 0; --p) { + unsigned int lower = UINT_MAX; + unsigned short start = pos, end; + +#if SUPPORTED_PERSONALITIES > 1 + /* if (arch != audit_arch_vec[p].arch) goto next; */ + SET_BPF_JUMP(&filter[pos++], BPF_JEQ | BPF_K, + audit_arch_vec[p].arch, 0, JMP_PLACEHOLDER_NEXT); +#endif + SET_BPF_STMT(&filter[pos++], BPF_LD | BPF_W | BPF_ABS, + offsetof(struct seccomp_data, nr)); + +#if SUPPORTED_PERSONALITIES > 1 + if (audit_arch_vec[p].flag) { + /* if (nr < audit_arch_vec[p].flag) goto next; */ + SET_BPF_JUMP(&filter[pos++], BPF_JGE | BPF_K, + audit_arch_vec[p].flag, 2, 0); + SET_BPF_STMT(&filter[pos++], BPF_LD | BPF_W | BPF_ABS, + offsetof(struct seccomp_data, arch)); + SET_BPF_JUMP(&filter[pos++], BPF_JA, + JMP_PLACEHOLDER_NEXT, 0, 0); + } +#endif + + for (unsigned int i = 0; i < nsyscall_vec[p]; ++i) { + if (traced_by_seccomp(i, p)) { + if (lower == UINT_MAX) + lower = i; + continue; + } + if (lower == UINT_MAX) + continue; + pos += bpf_syscalls_cmp(filter + pos, + lower | audit_arch_vec[p].flag, + i | audit_arch_vec[p].flag); + lower = UINT_MAX; + } + if (lower != UINT_MAX) + pos += bpf_syscalls_cmp(filter + pos, + lower | audit_arch_vec[p].flag, + nsyscall_vec[p] + | audit_arch_vec[p].flag); + end = pos; + + /* if (nr >= max_nr) return RET_TRACE; */ + SET_BPF_JUMP(&filter[pos++], BPF_JGE | BPF_K, + nsyscall_vec[p] | audit_arch_vec[p].flag, 1, 0); + + SET_BPF_STMT(&filter[pos++], BPF_RET | BPF_K, + SECCOMP_RET_ALLOW); + SET_BPF_STMT(&filter[pos++], BPF_RET | BPF_K, + SECCOMP_RET_TRACE); + + /* + * Within generated BPF programs, the origin and destination of + * jumps are always in the same personality section. The + * largest jump is therefore the jump from the first + * instruction of the section to the last, to skip the + * personality and try to compare .arch to the next + * personality. + * If we have a personality section with more than 255 + * instructions, the jump offset will overflow. Such program + * is unlikely to happen, so we simply disable seccomp-filter + * in such a case. + */ + if (pos - start > UCHAR_MAX) { + *overflow = true; + return pos; + } + + for (unsigned int i = start; i < end; ++i) { + if (BPF_CLASS(filter[i].code) != BPF_JMP) + continue; + unsigned char jmp_next = pos - i - 1; + unsigned char jmp_trace = pos - i - 2; + unsigned char jmp_allow = pos - i - 3; + replace_jmp_placeholders(&filter[i].jt, jmp_next, + jmp_trace, jmp_allow); + replace_jmp_placeholders(&filter[i].jf, jmp_next, + jmp_trace, jmp_allow); + if (BPF_OP(filter[i].code) == BPF_JA) + filter[i].k = (unsigned int) jmp_next; + } + } + +#if SUPPORTED_PERSONALITIES > 1 + /* Jumps conditioned on .arch default to this RET_TRACE. */ + SET_BPF_STMT(&filter[pos++], BPF_RET | BPF_K, SECCOMP_RET_TRACE); +#endif + + return pos; +} + +static unsigned short +bpf_syscalls_match(struct sock_filter *filter, unsigned int bitarray, + unsigned int bitarray_idx) +{ + if (!bitarray) { + /* return RET_ALLOW; */ + SET_BPF_JUMP(filter, BPF_JMP | BPF_JEQ | BPF_K, bitarray_idx, + JMP_PLACEHOLDER_ALLOW, 0); + return 1; + } + if (bitarray == UINT_MAX) { + /* return RET_TRACE; */ + SET_BPF_JUMP(filter, BPF_JMP | BPF_JEQ | BPF_K, bitarray_idx, + JMP_PLACEHOLDER_TRACE, 0); + return 1; + } + /* + * if (A == nr / 32) + * return (X & bitarray) ? RET_TRACE : RET_ALLOW; + */ + SET_BPF_JUMP(filter, BPF_JMP | BPF_JEQ | BPF_K, bitarray_idx, + 0, 2); + SET_BPF_STMT(filter + 1, BPF_MISC | BPF_TXA, 0); + SET_BPF_JUMP(filter + 2, BPF_JMP | BPF_JSET | BPF_K, bitarray, + JMP_PLACEHOLDER_TRACE, JMP_PLACEHOLDER_ALLOW); + return 3; +} + +static unsigned short +binary_match_filter_generator(struct sock_filter *filter, bool *overflow) +{ + unsigned short pos = 0; + +#if SUPPORTED_PERSONALITIES > 1 + SET_BPF_STMT(&filter[pos++], BPF_LD | BPF_W | BPF_ABS, + offsetof(struct seccomp_data, arch)); +#endif + + /* Personalities are iterated in reverse-order in the BPF program so that + * the x86 case is naturally handled. In x86, the first and third + * personalities have the same arch identifier. The third can be + * distinguished based on its associated bit mask, so we check it first. + * The only drawback here is that the first personality is more common, + * which may make the BPF program slower to match syscalls on average. */ + for (int p = SUPPORTED_PERSONALITIES - 1; + p >= 0 && pos <= BPF_MAXINSNS; + --p) { + unsigned short start = pos, end; + unsigned int bitarray = 0; + unsigned int i; + +#if SUPPORTED_PERSONALITIES > 1 + SET_BPF_JUMP(&filter[pos++], BPF_JMP | BPF_JEQ | BPF_K, + audit_arch_vec[p].arch, 0, JMP_PLACEHOLDER_NEXT); +#endif + SET_BPF_STMT(&filter[pos++], BPF_LD | BPF_W | BPF_ABS, + offsetof(struct seccomp_data, nr)); + +#if SUPPORTED_PERSONALITIES > 1 + if (audit_arch_vec[p].flag) { + SET_BPF_JUMP(&filter[pos++], BPF_JMP | BPF_JGE | BPF_K, + audit_arch_vec[p].flag, 2, 0); + SET_BPF_STMT(&filter[pos++], BPF_LD | BPF_W | BPF_ABS, + offsetof(struct seccomp_data, arch)); + SET_BPF_JUMP(&filter[pos++], BPF_JMP | BPF_JA, + JMP_PLACEHOLDER_NEXT, 0, 0); + + /* nr = nr & ~mask */ + SET_BPF_STMT(&filter[pos++], BPF_ALU | BPF_AND | BPF_K, + ~audit_arch_vec[p].flag); + } +#endif + + /* X = 1 << nr % 32 = 1 << nr & 0x1F; */ + SET_BPF_STMT(&filter[pos++], BPF_ALU | BPF_AND | BPF_K, 0x1F); + SET_BPF_STMT(&filter[pos++], BPF_MISC | BPF_TAX, 0); + SET_BPF_STMT(&filter[pos++], BPF_LD | BPF_IMM, 1); + SET_BPF_STMT(&filter[pos++], BPF_ALU | BPF_LSH | BPF_X, 0); + SET_BPF_STMT(&filter[pos++], BPF_MISC | BPF_TAX, 0); + + /* A = nr / 32 = n >> 5; */ + SET_BPF_STMT(&filter[pos++], BPF_LD | BPF_W | BPF_ABS, + offsetof(struct seccomp_data, nr)); + if (audit_arch_vec[p].flag) { + /* nr = nr & ~mask */ + SET_BPF_STMT(&filter[pos++], BPF_ALU | BPF_AND | BPF_K, + ~audit_arch_vec[p].flag); + } + SET_BPF_STMT(&filter[pos++], BPF_ALU | BPF_RSH | BPF_K, 5); + + for (i = 0; i < nsyscall_vec[p] && pos <= BPF_MAXINSNS; ++i) { + if (traced_by_seccomp(i, p)) + bitarray |= (1 << i % 32); + if (i % 32 == 31) { + pos += bpf_syscalls_match(filter + pos, + bitarray, i / 32); + bitarray = 0; + } + } + if (i % 32 != 0) + pos += bpf_syscalls_match(filter + pos, bitarray, + i / 32); + + end = pos; + + SET_BPF_STMT(&filter[pos++], BPF_RET | BPF_K, + SECCOMP_RET_ALLOW); + SET_BPF_STMT(&filter[pos++], BPF_RET | BPF_K, + SECCOMP_RET_TRACE); + + if (pos - start > UCHAR_MAX) { + *overflow = true; + return pos; + } + + for (unsigned int i = start; i < end; ++i) { + if (BPF_CLASS(filter[i].code) != BPF_JMP) + continue; + unsigned char jmp_next = pos - i - 1; + unsigned char jmp_trace = pos - i - 2; + unsigned char jmp_allow = pos - i - 3; + replace_jmp_placeholders(&filter[i].jt, jmp_next, + jmp_trace, jmp_allow); + replace_jmp_placeholders(&filter[i].jf, jmp_next, + jmp_trace, jmp_allow); + if (BPF_OP(filter[i].code) == BPF_JA) + filter[i].k = (unsigned int)jmp_next; + } + } + +#if SUPPORTED_PERSONALITIES > 1 + SET_BPF_STMT(&filter[pos++], BPF_RET | BPF_K, SECCOMP_RET_TRACE); +#endif + + return pos; +} + +static void +check_seccomp_filter_properties(void) +{ + int rc = prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, NULL, 0, 0); + seccomp_filtering = rc < 0 && errno != EINVAL; + if (!seccomp_filtering) { + debug_func_perror_msg("prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER)"); + return; + } + + for (unsigned int i = 0; i < ARRAY_SIZE(filter_generators); ++i) { + bool overflow = false; + unsigned short len = filter_generators[i](filters[i], + &overflow); + if (len < bpf_prog.len && !overflow) { + bpf_prog.len = len; + bpf_prog.filter = filters[i]; + } + } + if (bpf_prog.len == USHRT_MAX) { + debug_msg("seccomp filter disabled due to jump offset " + "overflow"); + seccomp_filtering = false; + } else if (bpf_prog.len > BPF_MAXINSNS) { + debug_msg("seccomp filter disabled due to BPF program " + "being oversized (%u > %d)", bpf_prog.len, + BPF_MAXINSNS); + seccomp_filtering = false; + } + + if (seccomp_filtering) + check_seccomp_order(); +} + +static void +dump_seccomp_bpf(void) +{ + const struct sock_filter *filter = bpf_prog.filter; + for (unsigned int i = 0; i < bpf_prog.len; ++i) { + switch (filter[i].code) { + case BPF_LD | BPF_W | BPF_ABS: + switch (filter[i].k) { + case offsetof(struct seccomp_data, arch): + error_msg("STMT(BPF_LDWABS, data->arch)"); + break; + case offsetof(struct seccomp_data, nr): + error_msg("STMT(BPF_LDWABS, data->nr)"); + break; + default: + error_msg("STMT(BPF_LDWABS, 0x%x)", + filter[i].k); + } + break; + case BPF_LD + BPF_W + BPF_IMM: + error_msg("STMT(BPF_LDWIMM, 0x%x)", filter[i].k); + break; + case BPF_RET | BPF_K: + switch (filter[i].k) { + case SECCOMP_RET_TRACE: + error_msg("STMT(BPF_RET, SECCOMP_RET_TRACE)"); + break; + case SECCOMP_RET_ALLOW: + error_msg("STMT(BPF_RET, SECCOMP_RET_ALLOW)"); + break; + default: + error_msg("STMT(BPF_RET, 0x%x)", filter[i].k); + } + break; + case BPF_JMP | BPF_JEQ | BPF_K: + error_msg("JUMP(BPF_JEQ, %u, %u, %u)", + filter[i].jt, filter[i].jf, + filter[i].k); + break; + case BPF_JMP | BPF_JGE | BPF_K: + error_msg("JUMP(BPF_JGE, %u, %u, %u)", + filter[i].jt, filter[i].jf, + filter[i].k); + break; + case BPF_JMP + BPF_JSET + BPF_K: + error_msg("JUMP(BPF_JSET, %u, %u, 0x%x)", + filter[i].jt, filter[i].jf, + filter[i].k); + break; + case BPF_JMP | BPF_JA: + error_msg("JUMP(BPF_JA, %u)", filter[i].k); + break; + case BPF_ALU + BPF_RSH + BPF_K: + error_msg("STMT(BPF_RSH, %u)", filter[i].k); + break; + case BPF_ALU + BPF_LSH + BPF_X: + error_msg("STMT(BPF_LSH, X)"); + break; + case BPF_ALU + BPF_AND + BPF_K: + error_msg("STMT(BPF_AND, 0x%x)", filter[i].k); + break; + case BPF_MISC + BPF_TAX: + error_msg("STMT(BPF_TAX)"); + break; + case BPF_MISC + BPF_TXA: + error_msg("STMT(BPF_TXA)"); + break; + default: + error_msg("STMT(0x%x, %u, %u, 0x%x)", filter[i].code, + filter[i].jt, filter[i].jf, filter[i].k); + } + } +} + +void +init_seccomp_filter(void) +{ + if (prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0) < 0) + perror_func_msg_and_die("prctl(PR_SET_NO_NEW_PRIVS)"); + + if (debug_flag) + dump_seccomp_bpf(); + + if (prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &bpf_prog) < 0) + perror_func_msg_and_die("prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER)"); +} + +int +seccomp_filter_restart_operator(const struct tcb *tcp) +{ + if (exiting(tcp) && tcp->scno < nsyscall_vec[current_personality] + && traced_by_seccomp(tcp->scno, current_personality)) + return PTRACE_SYSCALL; + return PTRACE_CONT; +} + +void +check_seccomp_filter(void) +{ + /* Let's avoid enabling seccomp if all syscalls are traced. */ + seccomp_filtering = !is_complete_set_array(trace_set, nsyscall_vec, + SUPPORTED_PERSONALITIES); + if (!seccomp_filtering) { + error_msg("Seccomp filter is requested " + "but there are no syscalls to filter. " + "See -e trace to filter syscalls."); + return; + } + + check_seccomp_filter_properties(); + + if (!seccomp_filtering) + error_msg("seccomp filter is requested but unavailable"); +} diff --git a/filter_seccomp.h b/filter_seccomp.h new file mode 100644 index 00000000..76539e07 --- /dev/null +++ b/filter_seccomp.h @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2018 Chen Jingpiao + * Copyright (c) 2019 Paul Chaignon + * Copyright (c) 2018-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#ifndef STRACE_SECCOMP_FILTER_H +# define STRACE_SECCOMP_FILTER_H + +# include "defs.h" + +extern bool seccomp_filtering; +extern bool seccomp_before_sysentry; + +extern void check_seccomp_filter(void); +extern void init_seccomp_filter(void); +extern int seccomp_filter_restart_operator(const struct tcb *); + +#endif /* !STRACE_SECCOMP_FILTER_H */ diff --git a/fsconfig.c b/fsconfig.c new file mode 100644 index 00000000..4ae6561c --- /dev/null +++ b/fsconfig.c @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#include "defs.h" +#ifdef HAVE_LINUX_MOUNT_H +# include +#endif +#include "xlat/fsconfig_cmds.h" + +SYS_FUNC(fsconfig) +{ + const int fs_fd = tcp->u_arg[0]; + const unsigned int cmd = tcp->u_arg[1]; + const kernel_ulong_t key = tcp->u_arg[2]; + const kernel_ulong_t value = tcp->u_arg[3]; + const int aux = tcp->u_arg[4]; + + printfd(tcp, fs_fd); + tprints(", "); + + printxval(fsconfig_cmds, cmd, "FSCONFIG_???"); + tprints(", "); + + switch (cmd) { + case FSCONFIG_SET_FLAG: + case FSCONFIG_SET_STRING: + case FSCONFIG_SET_BINARY: + case FSCONFIG_SET_PATH: + case FSCONFIG_SET_PATH_EMPTY: + case FSCONFIG_SET_FD: + printstr_ex(tcp, key, 256, QUOTE_0_TERMINATED); + break; + case FSCONFIG_CMD_CREATE: + case FSCONFIG_CMD_RECONFIGURE: + default: + printaddr(key); + break; + } + tprints(", "); + + switch (cmd) { + case FSCONFIG_SET_STRING: + printstr_ex(tcp, value, 256, QUOTE_0_TERMINATED); + break; + case FSCONFIG_SET_PATH: + case FSCONFIG_SET_PATH_EMPTY: + printpath(tcp, value); + break; + case FSCONFIG_SET_BINARY: + if (aux >= 0 && aux <= 1024 * 1024) { + printstr_ex(tcp, value, aux, QUOTE_FORCE_HEX); + break; + } + ATTRIBUTE_FALLTHROUGH; + case FSCONFIG_SET_FLAG: + case FSCONFIG_SET_FD: + case FSCONFIG_CMD_CREATE: + case FSCONFIG_CMD_RECONFIGURE: + default: + printaddr(value); + break; + } + tprints(", "); + + switch (cmd) { + case FSCONFIG_SET_PATH: + case FSCONFIG_SET_PATH_EMPTY: + print_dirfd(tcp, aux); + break; + case FSCONFIG_SET_FD: + printfd(tcp, aux); + break; + case FSCONFIG_SET_FLAG: + case FSCONFIG_SET_STRING: + case FSCONFIG_SET_BINARY: + case FSCONFIG_CMD_CREATE: + case FSCONFIG_CMD_RECONFIGURE: + default: + tprintf("%d", aux); + break; + } + + return RVAL_DECODED; +} diff --git a/fsmount.c b/fsmount.c new file mode 100644 index 00000000..c64e2567 --- /dev/null +++ b/fsmount.c @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#include "defs.h" +#ifdef HAVE_LINUX_MOUNT_H +# include +#endif +#include "xlat/fsmount_flags.h" +#include "xlat/mount_attr_flags.h" + +SYS_FUNC(fsmount) +{ + printfd(tcp, tcp->u_arg[0]); + tprints(", "); + + printflags(fsmount_flags, tcp->u_arg[1], "FSMOUNT_???"); + tprints(", "); + + printflags(mount_attr_flags, tcp->u_arg[2], "MOUNT_ATTR_???"); + + return RVAL_DECODED | RVAL_FD; +} diff --git a/fsopen.c b/fsopen.c new file mode 100644 index 00000000..1bae2c53 --- /dev/null +++ b/fsopen.c @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#include "defs.h" +#ifdef HAVE_LINUX_MOUNT_H +# include +#endif +#include "xlat/fsopen_flags.h" + +SYS_FUNC(fsopen) +{ + printstr(tcp, tcp->u_arg[0]); + tprints(", "); + printflags(fsopen_flags, tcp->u_arg[1], "FSOPEN_???"); + return RVAL_DECODED | RVAL_FD; +} diff --git a/fspick.c b/fspick.c new file mode 100644 index 00000000..3d003796 --- /dev/null +++ b/fspick.c @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#include "defs.h" +#ifdef HAVE_LINUX_MOUNT_H +# include +#endif +#include "xlat/fspick_flags.h" + +SYS_FUNC(fspick) +{ + print_dirfd(tcp, tcp->u_arg[0]); + tprints(", "); + + printpath(tcp, tcp->u_arg[1]); + tprints(", "); + + printflags(fspick_flags, tcp->u_arg[2], "FSPICK_???"); + + return RVAL_DECODED | RVAL_FD; +} diff --git a/gcc_compat.h b/gcc_compat.h index 2d5d7f9e..4c23ebc9 100644 --- a/gcc_compat.h +++ b/gcc_compat.h @@ -1,6 +1,6 @@ /* * Copyright (c) 2015 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -23,6 +23,21 @@ # define CLANG_PREREQ(maj, min) 0 # endif +# ifdef __GLIBC__ +# ifdef __GLIBC_MINOR__ +# define GLIBC_PREREQ_GE(maj, min) \ + ((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min)) +# define GLIBC_PREREQ_LT(maj, min) \ + ((__GLIBC__ << 16) + __GLIBC_MINOR__ < ((maj) << 16) + (min)) +# else /* !__GLIBC_MINOR__ */ +# define GLIBC_PREREQ_GE(maj, min) 0 +# define GLIBC_PREREQ_LT(maj, min) 1 +# endif +# else /* !__GLIBC__ */ +# define GLIBC_PREREQ_GE(maj, min) 0 +# define GLIBC_PREREQ_LT(maj, min) 0 +# endif + # if !(GNUC_PREREQ(2, 0) || CLANG_PREREQ(1, 0)) # define __attribute__(x) /* empty */ # endif @@ -50,6 +65,7 @@ # define MUST_BE_ARRAY(a) FAIL_BUILD_ON_ZERO(!SAME_TYPE((a), &(a)[0])) # else # define SAME_TYPE(x, y) 0 +# define FAIL_BUILD_ON_ZERO(e) 0 # define MUST_BE_ARRAY(a) 0 # endif diff --git a/gen_bpf_attr_check.sh b/gen_bpf_attr_check.sh index 76c12ca6..44ea21ab 100755 --- a/gen_bpf_attr_check.sh +++ b/gen_bpf_attr_check.sh @@ -1,6 +1,6 @@ #!/bin/sh -efu # Copyright (c) 2018 Dmitry V. Levin -# Copyright (c) 2018-2019 The strace developers. +# Copyright (c) 2018-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: LGPL-2.1-or-later @@ -18,7 +18,6 @@ cat <member_)) EOF for struct in $(sed -n 's/^struct \([^[:space:]]\+_struct\) .*/\1/p' < "$input"); do @@ -39,7 +38,7 @@ for struct in $(sed -n 's/^struct \([^[:space:]]\+_struct\) .*/\1/p' < "$input") cat < + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -10,5 +11,9 @@ #if SUPPORTED_PERSONALITIES > 1 # include "get_personality.h" # include +# define XLAT_MACROS_ONLY +# include "xlat/elf_em.h" +# include "xlat/audit_arch.h" +# undef XLAT_MACROS_ONLY # include "arch_get_personality.c" #endif diff --git a/get_personality.h b/get_personality.h index ab018154..b77253a9 100644 --- a/get_personality.h +++ b/get_personality.h @@ -1,5 +1,6 @@ /* * Copyright (c) 2018 Dmitry V. Levin + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -11,6 +12,6 @@ # include "ptrace.h" extern int -get_personality_from_syscall_info(const struct ptrace_syscall_info *); +get_personality_from_syscall_info(const struct_ptrace_syscall_info *); #endif /* !STRACE_GET_PERSONALITY_H */ diff --git a/get_robust_list.c b/get_robust_list.c index b5aebaff..3d1b686f 100644 --- a/get_robust_list.c +++ b/get_robust_list.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2012-2018 Dmitry V. Levin + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -10,7 +11,8 @@ SYS_FUNC(get_robust_list) { if (entering(tcp)) { - tprintf("%d, ", (int) tcp->u_arg[0]); + printpid(tcp, tcp->u_arg[0], PT_TID); + tprints(", "); } else { printnum_ptr(tcp, tcp->u_arg[1]); tprints(", "); diff --git a/getpid.c b/getpid.c new file mode 100644 index 00000000..5e9a1a29 --- /dev/null +++ b/getpid.c @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2020 Ákos Uzonyi + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#include "defs.h" + +SYS_FUNC(getpid) +{ + return RVAL_DECODED | RVAL_TGID; +} + +SYS_FUNC(gettid) +{ + return RVAL_DECODED | RVAL_TID; +} + +SYS_FUNC(getpgrp) +{ + return RVAL_DECODED | RVAL_PGID; +} + +SYS_FUNC(getpgid) +{ + printpid(tcp, tcp->u_arg[0], PT_TGID); + + return RVAL_DECODED | RVAL_PGID; +} + +SYS_FUNC(getsid) +{ + printpid(tcp, tcp->u_arg[0], PT_TGID); + + return RVAL_DECODED | RVAL_SID; +} + +SYS_FUNC(setpgid) +{ + printpid(tcp, tcp->u_arg[0], PT_TGID); + tprints(", "); + printpid(tcp, tcp->u_arg[1], PT_PGID); + + return RVAL_DECODED; +} diff --git a/git-version-gen b/git-version-gen new file mode 100755 index 00000000..c3d8f952 --- /dev/null +++ b/git-version-gen @@ -0,0 +1,230 @@ +#!/bin/sh +# Print a version string. +scriptversion=2018-03-07.03; # UTC + +# Copyright (C) 2007-2019 Free Software Foundation, Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# This script is derived from GIT-VERSION-GEN from GIT: https://git-scm.com/. +# It may be run two ways: +# - from a git repository in which the "git describe" command below +# produces useful output (thus requiring at least one signed tag) +# - from a non-git-repo directory containing a .tarball-version file, which +# presumes this script is invoked like "./git-version-gen .tarball-version". + +# In order to use intra-version strings in your project, you will need two +# separate generated version string files: +# +# .tarball-version - present only in a distribution tarball, and not in +# a checked-out repository. Created with contents that were learned at +# the last time autoconf was run, and used by git-version-gen. Must not +# be present in either $(srcdir) or $(builddir) for git-version-gen to +# give accurate answers during normal development with a checked out tree, +# but must be present in a tarball when there is no version control system. +# Therefore, it cannot be used in any dependencies. GNUmakefile has +# hooks to force a reconfigure at distribution time to get the value +# correct, without penalizing normal development with extra reconfigures. +# +# .version - present in a checked-out repository and in a distribution +# tarball. Usable in dependencies, particularly for files that don't +# want to depend on config.h but do want to track version changes. +# Delete this file prior to any autoconf run where you want to rebuild +# files to pick up a version string change; and leave it stale to +# minimize rebuild time after unrelated changes to configure sources. +# +# As with any generated file in a VC'd directory, you should add +# /.version to .gitignore, so that you don't accidentally commit it. +# .tarball-version is never generated in a VC'd directory, so needn't +# be listed there. +# +# Use the following line in your configure.ac, so that $(VERSION) will +# automatically be up-to-date each time configure is run (and note that +# since configure.ac no longer includes a version string, Makefile rules +# should not depend on configure.ac for version updates). +# +# AC_INIT([GNU project], +# m4_esyscmd([build-aux/git-version-gen .tarball-version]), +# [bug-project@example]) +# +# Then use the following lines in your Makefile.am, so that .version +# will be present for dependencies, and so that .version and +# .tarball-version will exist in distribution tarballs. +# +# EXTRA_DIST = $(top_srcdir)/.version +# BUILT_SOURCES = $(top_srcdir)/.version +# $(top_srcdir)/.version: +# echo $(VERSION) > $@-t && mv $@-t $@ +# dist-hook: +# echo $(VERSION) > $(distdir)/.tarball-version + + +me=$0 + +year=`expr "$scriptversion" : '\([^-]*\)'` +version="git-version-gen $scriptversion + +Copyright $year Free Software Foundation, Inc. +There is NO warranty. You may redistribute this software +under the terms of the GNU General Public License. +For more information about these matters, see the files named COPYING." + +usage="\ +Usage: $me [OPTION]... \$srcdir/.tarball-version [TAG-NORMALIZATION-SED-SCRIPT] +Print a version string. + +Options: + + --prefix PREFIX prefix of git tags (default 'v') + --fallback VERSION + fallback version to use if \"git --version\" fails + + --help display this help and exit + --version output version information and exit + +Running without arguments will suffice in most cases." + +prefix=v +fallback= + +while test $# -gt 0; do + case $1 in + --help) echo "$usage"; exit 0;; + --version) echo "$version"; exit 0;; + --prefix) shift; prefix=${1?};; + --fallback) shift; fallback=${1?};; + -*) + echo "$0: Unknown option '$1'." >&2 + echo "$0: Try '--help' for more information." >&2 + exit 1;; + *) + if test "x$tarball_version_file" = x; then + tarball_version_file="$1" + elif test "x$tag_sed_script" = x; then + tag_sed_script="$1" + else + echo "$0: extra non-option argument '$1'." >&2 + exit 1 + fi;; + esac + shift +done + +if test "x$tarball_version_file" = x; then + echo "$usage" + exit 1 +fi + +tag_sed_script="${tag_sed_script:-s/x/x/}" + +nl=' +' + +# Avoid meddling by environment variable of the same name. +v= +v_from_git= + +# First see if there is a tarball-only version file. +# then try "git describe", then default. +if test -f $tarball_version_file +then + v=`cat $tarball_version_file` || v= + case $v in + *$nl*) v= ;; # reject multi-line output + [0-9]*) ;; + *) v= ;; + esac + test "x$v" = x \ + && echo "$0: WARNING: $tarball_version_file is missing or damaged" 1>&2 +fi + +if test "x$v" != x +then + : # use $v +# Otherwise, if there is at least one git commit involving the working +# directory, and "git describe" output looks sensible, use that to +# derive a version string. +elif test "`git log -1 --pretty=format:x . 2>&1`" = x \ + && v=`git describe --abbrev=4 --match="$prefix*" HEAD 2>/dev/null \ + || git describe --abbrev=4 HEAD 2>/dev/null` \ + && v=`printf '%s\n' "$v" | sed "$tag_sed_script"` \ + && case $v in + $prefix[0-9]*) ;; + *) (exit 1) ;; + esac +then + # Is this a new git that lists number of commits since the last + # tag or the previous older version that did not? + # Newer: v6.10-77-g0f8faeb + # Older: v6.10-g0f8faeb + vprefix=`expr "X$v" : 'X\(.*\)-g[^-]*$'` || vprefix=$v + case $vprefix in + *-*) : git describe is probably okay three part flavor ;; + *) + : git describe is older two part flavor + # Recreate the number of commits and rewrite such that the + # result is the same as if we were using the newer version + # of git describe. + vtag=`echo "$v" | sed 's/-.*//'` + commit_list=`git rev-list "$vtag"..HEAD 2>/dev/null` \ + || { commit_list=failed; + echo "$0: WARNING: git rev-list failed" 1>&2; } + numcommits=`echo "$commit_list" | wc -l` + v=`echo "$v" | sed "s/\(.*\)-\(.*\)/\1-$numcommits-\2/"`; + test "$commit_list" = failed && v=UNKNOWN + ;; + esac + + # Change the penultimate "-" to ".", for version-comparing tools. + # Remove the "g" to save a byte. + # Change remaining '-' to '.', so version conforms to policies. + v=`echo "$v" | sed 's/-\([^-]*\)-g\([^-]*\)$/.0.\1.\2/'`; + + v_from_git=1 +elif test "x$fallback" = x || git --version >/dev/null 2>&1; then + v=UNKNOWN +else + v=$fallback +fi + +v=`echo "$v" |sed "s/^$prefix//"` + +# Test whether to append the "-dirty" suffix only if the version +# string we're using came from git. I.e., skip the test if it's "UNKNOWN" +# or if it came from .tarball-version. +if test "x$v_from_git" != x; then + # Don't declare a version "dirty" merely because a timestamp has changed. + git update-index --refresh > /dev/null 2>&1 + + dirty=`exec 2>/dev/null;git diff-index --name-only HEAD` || dirty= + case "$dirty" in + '') ;; + *) # Append the suffix only if there isn't one already. + case $v in + *-dirty) ;; + *) v="$v-dirty" ;; + esac ;; + esac +fi + +# Omit the trailing newline, so that m4_esyscmd can use the result directly. +printf %s "$v" + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/hdio.c b/hdio.c index 6a0a8027..316c2120 100644 --- a/hdio.c +++ b/hdio.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2009, 2010 Jeff Mahoney * Copyright (c) 2011-2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -17,26 +17,83 @@ typedef struct hd_geometry struct_hd_geometry; #include MPERS_DEFS +#include "print_fields.h" + +#include "xlat/hdio_drive_cmds.h" + +static int +print_hdio_getgeo(struct tcb *const tcp, const kernel_ulong_t arg) +{ + if (entering(tcp)) { + tprints(", "); + + return 0; + } + + /* exiting */ + struct_hd_geometry geo; + + if (umove_or_printaddr(tcp, arg, &geo)) + return RVAL_IOCTL_DECODED; + + PRINT_FIELD_U("{", geo, heads); + PRINT_FIELD_U(", ", geo, sectors); + PRINT_FIELD_U(", ", geo, cylinders); + PRINT_FIELD_U(", ", geo, start); + tprints("}"); + + return RVAL_IOCTL_DECODED; +} + +static int +print_hdio_drive_cmd(struct tcb *const tcp, const kernel_ulong_t arg) +{ + enum { SECTOR_SIZE = 512 }; + + struct hd_drive_cmd_hdr c; + + if (entering(tcp)) { + tprints(", "); + + if (umove_or_printaddr(tcp, arg, &c)) + return RVAL_IOCTL_DECODED; + + PRINT_FIELD_XVAL("{", c, command, hdio_drive_cmds, + "ATA_CMD_???"); + PRINT_FIELD_U(", ", c, sector_number); + PRINT_FIELD_U(", ", c, feature); + PRINT_FIELD_U(", ", c, sector_count); + tprints("}"); + + return 0; + } + + /* exiting */ + if ((syserror(tcp) && tcp->u_error != EIO) || umove(tcp, arg, &c)) + return RVAL_IOCTL_DECODED; + + tprintf(" => {/* status */ %#x, /* error */ %u, /* nsector */ %u", + c.command, c.sector_number, c.feature); + + if (c.sector_count) { + tprints(", "); + printstr_ex(tcp, arg + 4, c.sector_count * SECTOR_SIZE, + QUOTE_FORCE_HEX); + } + + tprints("}"); + + return RVAL_IOCTL_DECODED; +} + MPERS_PRINTER_DECL(int, hdio_ioctl, struct tcb *const tcp, const unsigned int code, const kernel_ulong_t arg) { switch (code) { case HDIO_GETGEO: - if (entering(tcp)) - return 0; - else { - struct_hd_geometry geo; - - tprints(", "); - if (!umove_or_printaddr(tcp, arg, &geo)) - tprintf("{heads=%u, sectors=%u, " - "cylinders=%hu, start=%lu}", - (unsigned) geo.heads, - (unsigned) geo.sectors, - geo.cylinders, - (unsigned long) geo.start); - } - break; + return print_hdio_getgeo(tcp, arg); + case HDIO_DRIVE_CMD: + return print_hdio_drive_cmd(tcp, arg); default: return RVAL_DECODED; } diff --git a/inotify.c b/inotify.c index e12df34b..cd1562f9 100644 --- a/inotify.c +++ b/inotify.c @@ -36,6 +36,11 @@ SYS_FUNC(inotify_rm_watch) return RVAL_DECODED; } +SYS_FUNC(inotify_init) +{ + return RVAL_DECODED | RVAL_FD; +} + SYS_FUNC(inotify_init1) { printflags(inotify_init_flags, tcp->u_arg[0], "IN_???"); diff --git a/install-sh b/install-sh index 8175c640..b34a8fc5 100755 --- a/install-sh +++ b/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2018-03-11.20; # UTC +scriptversion=2020-07-26.22; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -69,6 +69,10 @@ posix_mkdir= # Desired mode of installed file. mode=0755 +# Create dirs (including intermediate dirs) using mode 755. +# This is like GNU 'install' as of coreutils 8.32 (2020). +mkdir_umask=22 + chgrpcmd= chmodcmd=$chmodprog chowncmd= @@ -301,22 +305,6 @@ do if test $dstdir_status != 0; then case $posix_mkdir in '') - # Create intermediate dirs using mode 755 as modified by the umask. - # This is like FreeBSD 'install' as of 1997-10-28. - umask=`umask` - case $stripcmd.$umask in - # Optimize common cases. - *[2367][2367]) mkdir_umask=$umask;; - .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; - - *[0-7]) - mkdir_umask=`expr $umask + 22 \ - - $umask % 100 % 40 + $umask % 20 \ - - $umask % 10 % 4 + $umask % 2 - `;; - *) mkdir_umask=$umask,go-w;; - esac - # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then @@ -326,52 +314,49 @@ do fi posix_mkdir=false - case $umask in - *[123567][0-7][0-7]) - # POSIX mkdir -p sets u+wx bits regardless of umask, which - # is incompatible with FreeBSD 'install' when (umask & 300) != 0. - ;; - *) - # Note that $RANDOM variable is not portable (e.g. dash); Use it - # here however when possible just to lower collision chance. - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - - trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 - - # Because "mkdir -p" follows existing symlinks and we likely work - # directly in world-writeable /tmp, make sure that the '$tmpdir' - # directory is successfully created first before we actually test - # 'mkdir -p' feature. - if (umask $mkdir_umask && - $mkdirprog $mkdir_mode "$tmpdir" && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 - then - if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - test_tmpdir="$tmpdir/a" - ls_ld_tmpdir=`ls -ld "$test_tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null - fi - trap '' 0;; - esac;; + # The $RANDOM variable is not portable (e.g., dash). Use it + # here however when possible just to lower collision chance. + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + + trap ' + ret=$? + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null + exit $ret + ' 0 + + # Because "mkdir -p" follows existing symlinks and we likely work + # directly in world-writeable /tmp, make sure that the '$tmpdir' + # directory is successfully created first before we actually test + # 'mkdir -p'. + if (umask $mkdir_umask && + $mkdirprog $mkdir_mode "$tmpdir" && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + test_tmpdir="$tmpdir/a" + ls_ld_tmpdir=`ls -ld "$test_tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null + fi + trap '' 0;; esac if @@ -382,7 +367,7 @@ do then : else - # The umask is ridiculous, or mkdir does not conform to POSIX, + # mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. @@ -411,7 +396,7 @@ do prefixes= else if $posix_mkdir; then - (umask=$mkdir_umask && + (umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 @@ -451,7 +436,18 @@ do trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. - (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + (umask $cp_umask && + { test -z "$stripcmd" || { + # Create $dsttmp read-write so that cp doesn't create it read-only, + # which would cause strip to fail. + if test -z "$doit"; then + : >"$dsttmp" # No need to fork-exec 'touch'. + else + $doit touch "$dsttmp" + fi + } + } && + $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # diff --git a/io.c b/io.c index 4fd6cf06..8882c783 100644 --- a/io.c +++ b/io.c @@ -3,7 +3,7 @@ * Copyright (c) 1993 Branko Lankester * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey * Copyright (c) 1996-1999 Wichert Akkerman - * Copyright (c) 1999-2018 The strace developers. + * Copyright (c) 1999-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -90,7 +90,7 @@ print_iovec(struct tcb *tcp, void *elem_buf, size_t elem_size, void *data) /* * data_size limits the cumulative size of printed data. - * Example: recvmsg returing a short read. + * Example: recvmsg returning a short read. */ void tprint_iov_upto(struct tcb *const tcp, const kernel_ulong_t len, diff --git a/io_uring.c b/io_uring.c index 0b82a075..2ffe163e 100644 --- a/io_uring.c +++ b/io_uring.c @@ -1,28 +1,46 @@ /* * Copyright (c) 2019 Dmitry V. Levin + * Copyright (c) 2019-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ #include "defs.h" +#include "print_fields.h" -#ifdef HAVE_LINUX_IO_URING_H -# include "print_fields.h" -# include -#endif +#include "types/io_uring.h" +#include "xlat/uring_op_flags.h" +#include "xlat/uring_ops.h" +#include "xlat/uring_setup_features.h" #include "xlat/uring_setup_flags.h" #include "xlat/uring_enter_flags.h" #include "xlat/uring_register_opcodes.h" +#include "xlat/uring_cqring_flags.h" + +#ifdef HAVE_STRUCT_IO_URING_PARAMS +# ifdef HAVE_STRUCT_IO_URING_PARAMS_RESV +static_assert(offsetof(struct_io_uring_params, resv) + >= offsetof(struct io_uring_params, resv), + "struct io_uring_params.resv offset mismatch" + ", please update the decoder"); +static_assert(sizeof_field(struct_io_uring_params, resv) + <= sizeof_field(struct io_uring_params, resv), + "struct io_uring_params.resv size mismatch" + ", please update the decoder"); +# else /* !HAVE_STRUCT_IO_URING_PARAMS_RESV */ +static_assert(0, "struct io_uring_params.resv is missing" + ", please update the decoder"); +# endif +#endif /* HAVE_STRUCT_IO_URING_PARAMS */ + SYS_FUNC(io_uring_setup) { const uint32_t nentries = tcp->u_arg[0]; const kernel_ulong_t params_addr = tcp->u_arg[1]; - -#ifdef HAVE_LINUX_IO_URING_H - struct io_uring_params params; + struct_io_uring_params params; if (entering(tcp)) { tprintf("%u, ", nentries); @@ -34,46 +52,52 @@ SYS_FUNC(io_uring_setup) "IORING_SETUP_???"); PRINT_FIELD_X(", ", params, sq_thread_cpu); PRINT_FIELD_U(", ", params, sq_thread_idle); - for (unsigned int i = 0; i < ARRAY_SIZE(params.resv); ++i) { - if (params.resv[i]) { - for (i = 0; i < ARRAY_SIZE(params.resv); ++i) - tprintf("%s%#x", - (i ? ", " : ", resv={"), - params.resv[i]); - tprints("}"); - break; - } + if (params.flags & IORING_SETUP_ATTACH_WQ) + PRINT_FIELD_FD(", ", params, wq_fd, tcp); + if (!IS_ARRAY_ZERO(params.resv)) { + PRINT_FIELD_ARRAY(", ", params, resv, tcp, + print_xint32_array_member); } return 0; + } + + /* exiting */ + if (syserror(tcp)) { + /* The remaining part of params is irrelevant. */ + } else if (umove(tcp, params_addr, ¶ms)) { + tprints(", ???"); } else { - if (syserror(tcp)) { - /* The remaining part of params is irrelevant. */ - } else if (umove(tcp, params_addr, ¶ms)) { - tprints(", ???"); - } else { - PRINT_FIELD_U(", ", params, sq_entries); - PRINT_FIELD_U(", ", params, cq_entries); - PRINT_FIELD_U(", sq_off={", params.sq_off, head); - PRINT_FIELD_U(", ", params.sq_off, tail); - PRINT_FIELD_U(", ", params.sq_off, ring_mask); - PRINT_FIELD_U(", ", params.sq_off, ring_entries); - PRINT_FIELD_U(", ", params.sq_off, flags); - PRINT_FIELD_U(", ", params.sq_off, dropped); - PRINT_FIELD_U(", ", params.sq_off, array); - PRINT_FIELD_U("}, cq_off={", params.cq_off, head); - PRINT_FIELD_U(", ", params.cq_off, tail); - PRINT_FIELD_U(", ", params.cq_off, ring_mask); - PRINT_FIELD_U(", ", params.cq_off, ring_entries); - PRINT_FIELD_U(", ", params.cq_off, overflow); - PRINT_FIELD_U(", ", params.cq_off, cqes); - tprints("}"); - } + PRINT_FIELD_U(", ", params, sq_entries); + PRINT_FIELD_U(", ", params, cq_entries); + PRINT_FIELD_FLAGS(", ", params, features, + uring_setup_features, + "IORING_FEAT_???"); + PRINT_FIELD_U(", sq_off={", params.sq_off, head); + PRINT_FIELD_U(", ", params.sq_off, tail); + PRINT_FIELD_U(", ", params.sq_off, ring_mask); + PRINT_FIELD_U(", ", params.sq_off, ring_entries); + PRINT_FIELD_U(", ", params.sq_off, flags); + PRINT_FIELD_U(", ", params.sq_off, dropped); + PRINT_FIELD_U(", ", params.sq_off, array); + if (params.sq_off.resv1) + PRINT_FIELD_X(", ", params.sq_off, resv1); + if (params.sq_off.resv2) + PRINT_FIELD_X(", ", params.sq_off, resv2); + PRINT_FIELD_U("}, cq_off={", params.cq_off, head); + PRINT_FIELD_U(", ", params.cq_off, tail); + PRINT_FIELD_U(", ", params.cq_off, ring_mask); + PRINT_FIELD_U(", ", params.cq_off, ring_entries); + PRINT_FIELD_U(", ", params.cq_off, overflow); + PRINT_FIELD_U(", ", params.cq_off, cqes); + PRINT_FIELD_FLAGS(", ", params.cq_off, flags, + uring_cqring_flags, "IORING_CQ_???"); + if (params.cq_off.resv1) + PRINT_FIELD_X(", ", params.cq_off, resv1); + if (params.cq_off.resv2) + PRINT_FIELD_X(", ", params.cq_off, resv2); tprints("}"); } -#else /* !HAVE_LINUX_IO_URING_H */ - tprintf("%u, ", nentries); - printaddr(params_addr); -#endif + tprints("}"); return RVAL_DECODED | RVAL_FD; } @@ -105,31 +129,134 @@ print_fd_array_member(struct tcb *tcp, void *elem_buf, size_t elem_size, return true; } +static void +print_io_uring_files_update(struct tcb *tcp, const kernel_ulong_t addr, + const unsigned int nargs) +{ + struct_io_uring_files_update arg; + int buf; + + if (umove_or_printaddr(tcp, addr, &arg)) + return; + + PRINT_FIELD_U("{", arg, offset); + if (arg.resv) + PRINT_FIELD_X(", ", arg, resv); + tprints(", fds="); + print_big_u64_addr(arg.fds); + print_array(tcp, arg.fds, nargs, &buf, sizeof(buf), + tfetch_mem, print_fd_array_member, NULL); + tprints("}"); +} + +static bool +print_io_uring_probe_op(struct tcb *tcp, void *elem_buf, size_t elem_size, + void *data) +{ + struct_io_uring_probe_op *op = (struct_io_uring_probe_op *) elem_buf; + + PRINT_FIELD_XVAL_U("{", *op, op, uring_ops, "IORING_OP_???"); + if (op->resv) + PRINT_FIELD_X(", ", *op, resv); + PRINT_FIELD_FLAGS(", ", *op, flags, uring_op_flags, "IO_URING_OP_???"); + if (op->resv2) + PRINT_FIELD_X(", ", *op, resv2); + tprints("}"); + + return true; +} + +static int +print_io_uring_probe(struct tcb *tcp, const kernel_ulong_t addr, + const unsigned int nargs) +{ + struct_io_uring_probe *probe; + unsigned long printed = exiting(tcp) ? get_tcb_priv_ulong(tcp) : false; + + if (exiting(tcp) && syserror(tcp)) { + if (!printed) + printaddr(addr); + return RVAL_DECODED; + } + if (nargs > 256) { + printaddr(addr); + return RVAL_DECODED; + } + if (printed) + tprints(" => "); + + /* Maximum size is 8 * 256 + 16, a bit over 4k */ + size_t probe_sz = sizeof(probe->ops[0]) * nargs + sizeof(*probe); + probe = alloca(probe_sz); + + /* + * So far, the operation doesn't use any data from the arg provided, + * but it checks that it is filled with zeroes. + */ + if (umoven_or_printaddr(tcp, addr, probe_sz, probe)) + return RVAL_DECODED; + if (entering(tcp) && is_filled((const char *) probe, 0, probe_sz)) + return 0; + set_tcb_priv_ulong(tcp, true); + + PRINT_FIELD_XVAL_U("{", *probe, last_op, uring_ops, "IORING_OP_???"); + PRINT_FIELD_U(", ", *probe, ops_len); + if (probe->resv) + PRINT_FIELD_X(", ", *probe, resv); + if (!IS_ARRAY_ZERO(probe->resv2)) { + PRINT_FIELD_ARRAY(", ", *probe, resv2, tcp, + print_xint32_array_member); + } + tprints(", ops="); + print_local_array_ex(tcp, probe->ops, + entering(tcp) ? nargs : probe->ops_len, + sizeof(probe->ops[0]), print_io_uring_probe_op, + NULL, 0, NULL, NULL); + tprints("}"); + + return 0; +} + SYS_FUNC(io_uring_register) { const int fd = tcp->u_arg[0]; const unsigned int opcode = tcp->u_arg[1]; const kernel_ulong_t arg = tcp->u_arg[2]; const unsigned int nargs = tcp->u_arg[3]; + int rc = RVAL_DECODED; int buf; - printfd(tcp, fd); - tprints(", "); - printxval(uring_register_opcodes, opcode, "IORING_REGISTER_???"); - tprints(", "); + if (entering(tcp)) { + printfd(tcp, fd); + tprints(", "); + printxval(uring_register_opcodes, opcode, + "IORING_REGISTER_???"); + tprints(", "); + } + switch (opcode) { - case IORING_REGISTER_BUFFERS: - tprint_iov(tcp, nargs, arg, IOV_DECODE_ADDR); - break; - case IORING_REGISTER_FILES: - print_array(tcp, arg, nargs, &buf, sizeof(buf), - tfetch_mem, print_fd_array_member, NULL); - break; - default: - printaddr(arg); - break; + case IORING_REGISTER_BUFFERS: + tprint_iov(tcp, nargs, arg, IOV_DECODE_ADDR); + break; + case IORING_REGISTER_FILES: + case IORING_REGISTER_EVENTFD: + case IORING_REGISTER_EVENTFD_ASYNC: + print_array(tcp, arg, nargs, &buf, sizeof(buf), + tfetch_mem, print_fd_array_member, NULL); + break; + case IORING_REGISTER_FILES_UPDATE: + print_io_uring_files_update(tcp, arg, nargs); + break; + case IORING_REGISTER_PROBE: + rc = print_io_uring_probe(tcp, arg, nargs); + break; + default: + printaddr(arg); + break; } - tprintf(", %u", nargs); - return RVAL_DECODED; + if (rc || exiting(tcp)) + tprintf(", %u", nargs); + + return rc; } diff --git a/ioctl.c b/ioctl.c index d3205b22..1e3ec910 100644 --- a/ioctl.c +++ b/ioctl.c @@ -3,7 +3,7 @@ * Copyright (c) 1993 Branko Lankester * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey * Copyright (c) 1996-2001 Wichert Akkerman - * Copyright (c) 1999-2018 The strace developers. + * Copyright (c) 1999-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -13,6 +13,29 @@ #include #include "xlat/ioctl_dirs.h" +#if defined(SPARC) || defined(SPARC64) +/* + * While Alpha, MIPS, PA-RISC, and POWER simply define _IOC_SIZEBITS to 13 + * and utilise 3 bits for _IOC_DIRBITS, SPARC tries to provide 14 bits + * for the size field ("as on i386") by (ab)using the lowest direction bit. + * Unfortunately, while doing so, they decide to define _IOC_SIZE to 0 + * when the direction doesn't have _IOC_READ/_IOC_WRITE bits set, which + * breaks the invariant + * + * _IOC_SIZE(_IOC(dir, type, nr, size)) == size + * + * for _IOC_DIR(val) that doesn't include _IOC_READ or _IOC_WRITE, which + * is unacceptable for strace's use case. + * So, let's redefine _IOC_SIZE in a way that is more suitable for us. + */ +# undef _IOC_SIZE +# define _IOC_SIZE(nr) \ + ((_IOC_DIR(nr) & (_IOC_WRITE | _IOC_READ)) \ + ? (((nr) >> _IOC_SIZESHIFT) & _IOC_XSIZEMASK) \ + : (((nr) >> _IOC_SIZESHIFT) & _IOC_SIZEMASK)) \ + /* end of _IOC_SIZE definition */ +#endif + static int compare(const void *a, const void *b) { @@ -51,8 +74,12 @@ ioctl_next_match(const struct_ioctlent *iop) static void ioctl_print_code(const unsigned int code) { + const bool abbrev = xlat_verbose(xlat_verbosity) != XLAT_STYLE_VERBOSE; + tprints("_IOC("); - printflags(ioctl_dirs, _IOC_DIR(code), "_IOC_???"); + printflags_ex(_IOC_DIR(code), abbrev ? "_IOC_???" : NULL, + abbrev ? XLAT_STYLE_DEFAULT : XLAT_STYLE_ABBREV, + ioctl_dirs, NULL); tprintf(", %#x, %#x, %#x)", _IOC_TYPE(code), _IOC_NR(code), _IOC_SIZE(code)); } @@ -61,12 +88,15 @@ static int evdev_decode_number(const unsigned int code) { const unsigned int nr = _IOC_NR(code); + const bool abbrev = xlat_verbose(xlat_verbosity) != XLAT_STYLE_VERBOSE; if (_IOC_DIR(code) == _IOC_WRITE) { if (nr >= 0xc0 && nr <= 0xc0 + 0x3f) { tprints("EVIOCSABS("); - printxval_indexn(evdev_abs, evdev_abs_size, nr - 0xc0, - "ABS_???"); + printxval_ex(evdev_abs, nr - 0xc0, + abbrev ? "ABS_???" : NULL, + abbrev ? XLAT_STYLE_DEFAULT + : XLAT_STYLE_ABBREV); tprints(")"); return 1; } @@ -78,49 +108,52 @@ evdev_decode_number(const unsigned int code) if (nr >= 0x20 && nr <= 0x20 + 0x1f) { tprints("EVIOCGBIT("); if (nr == 0x20) - tprintf("0"); + tprints("0"); else - printxval(evdev_ev, nr - 0x20, "EV_???"); + printxval_ex(evdev_ev, nr - 0x20, + abbrev ? "EV_???" : NULL, + abbrev ? XLAT_STYLE_DEFAULT + : XLAT_STYLE_ABBREV); tprintf(", %u)", _IOC_SIZE(code)); return 1; } else if (nr >= 0x40 && nr <= 0x40 + 0x3f) { tprints("EVIOCGABS("); - printxval_indexn(evdev_abs, evdev_abs_size, nr - 0x40, - "ABS_???"); + printxval_ex(evdev_abs, nr - 0x40, abbrev ? "ABS_???" : NULL, + abbrev ? XLAT_STYLE_DEFAULT : XLAT_STYLE_ABBREV); tprints(")"); return 1; } - switch (_IOC_NR(nr)) { - case 0x06: - tprintf("EVIOCGNAME(%u)", _IOC_SIZE(code)); - return 1; - case 0x07: - tprintf("EVIOCGPHYS(%u)", _IOC_SIZE(code)); - return 1; - case 0x08: - tprintf("EVIOCGUNIQ(%u)", _IOC_SIZE(code)); - return 1; - case 0x09: - tprintf("EVIOCGPROP(%u)", _IOC_SIZE(code)); - return 1; - case 0x0a: - tprintf("EVIOCGMTSLOTS(%u)", _IOC_SIZE(code)); - return 1; - case 0x18: - tprintf("EVIOCGKEY(%u)", _IOC_SIZE(code)); - return 1; - case 0x19: - tprintf("EVIOCGLED(%u)", _IOC_SIZE(code)); - return 1; - case 0x1a: - tprintf("EVIOCGSND(%u)", _IOC_SIZE(code)); - return 1; - case 0x1b: - tprintf("EVIOCGSW(%u)", _IOC_SIZE(code)); - return 1; - default: - return 0; + switch (nr) { + case 0x06: + tprintf("EVIOCGNAME(%u)", _IOC_SIZE(code)); + return 1; + case 0x07: + tprintf("EVIOCGPHYS(%u)", _IOC_SIZE(code)); + return 1; + case 0x08: + tprintf("EVIOCGUNIQ(%u)", _IOC_SIZE(code)); + return 1; + case 0x09: + tprintf("EVIOCGPROP(%u)", _IOC_SIZE(code)); + return 1; + case 0x0a: + tprintf("EVIOCGMTSLOTS(%u)", _IOC_SIZE(code)); + return 1; + case 0x18: + tprintf("EVIOCGKEY(%u)", _IOC_SIZE(code)); + return 1; + case 0x19: + tprintf("EVIOCGLED(%u)", _IOC_SIZE(code)); + return 1; + case 0x1a: + tprintf("EVIOCGSND(%u)", _IOC_SIZE(code)); + return 1; + case 0x1b: + tprintf("EVIOCGSW(%u)", _IOC_SIZE(code)); + return 1; + default: + return 0; } } @@ -129,31 +162,34 @@ hiddev_decode_number(const unsigned int code) { if (_IOC_DIR(code) == _IOC_READ) { switch (_IOC_NR(code)) { - case 0x04: - tprintf("HIDIOCGRAWNAME(%u)", _IOC_SIZE(code)); - return 1; - case 0x05: - tprintf("HIDIOCGRAWPHYS(%u)", _IOC_SIZE(code)); - return 1; - case 0x06: - tprintf("HIDIOCSFEATURE(%u)", _IOC_SIZE(code)); - return 1; - case 0x12: - tprintf("HIDIOCGPHYS(%u)", _IOC_SIZE(code)); - return 1; - default: - return 0; + case 0x04: + tprintf("HIDIOCGRAWNAME(%u)", _IOC_SIZE(code)); + return 1; + case 0x05: + tprintf("HIDIOCGRAWPHYS(%u)", _IOC_SIZE(code)); + return 1; + case 0x06: + tprintf("HIDIOCSFEATURE(%u)", _IOC_SIZE(code)); + return 1; + case 0x08: + tprintf("HIDIOCGRAWUNIQ(%u)", _IOC_SIZE(code)); + return 1; + case 0x12: + tprintf("HIDIOCGPHYS(%u)", _IOC_SIZE(code)); + return 1; + default: + return 0; } } else if (_IOC_DIR(code) == (_IOC_READ | _IOC_WRITE)) { switch (_IOC_NR(code)) { - case 0x06: - tprintf("HIDIOCSFEATURE(%u)", _IOC_SIZE(code)); - return 1; - case 0x07: - tprintf("HIDIOCGFEATURE(%u)", _IOC_SIZE(code)); - return 1; - default: - return 0; + case 0x06: + tprintf("HIDIOCSFEATURE(%u)", _IOC_SIZE(code)); + return 1; + case 0x07: + tprintf("HIDIOCGFEATURE(%u)", _IOC_SIZE(code)); + return 1; + default: + return 0; } } @@ -166,39 +202,39 @@ ioctl_decode_command_number(struct tcb *tcp) const unsigned int code = tcp->u_arg[1]; switch (_IOC_TYPE(code)) { - case 'E': - return evdev_decode_number(code); - case 'H': - return hiddev_decode_number(code); - case 'M': - if (_IOC_DIR(code) == _IOC_WRITE) { - tprintf("MIXER_WRITE(%u)", _IOC_NR(code)); - return 1; - } else if (_IOC_DIR(code) == _IOC_READ) { - tprintf("MIXER_READ(%u)", _IOC_NR(code)); - return 1; - } - return 0; - case 'U': - if (_IOC_DIR(code) == _IOC_READ && _IOC_NR(code) == 0x2c) { - tprintf("UI_GET_SYSNAME(%u)", _IOC_SIZE(code)); - return 1; - } - return 0; - case 'j': - if (_IOC_DIR(code) == _IOC_READ && _IOC_NR(code) == 0x13) { - tprintf("JSIOCGNAME(%u)", _IOC_SIZE(code)); - return 1; - } - return 0; - case 'k': - if (_IOC_DIR(code) == _IOC_WRITE && _IOC_NR(code) == 0) { - tprintf("SPI_IOC_MESSAGE(%u)", _IOC_SIZE(code)); - return 1; - } - return 0; - default: - return 0; + case 'E': + return evdev_decode_number(code); + case 'H': + return hiddev_decode_number(code); + case 'M': + if (_IOC_DIR(code) == _IOC_WRITE) { + tprintf("MIXER_WRITE(%u)", _IOC_NR(code)); + return 1; + } else if (_IOC_DIR(code) == _IOC_READ) { + tprintf("MIXER_READ(%u)", _IOC_NR(code)); + return 1; + } + return 0; + case 'U': + if (_IOC_DIR(code) == _IOC_READ && _IOC_NR(code) == 0x2c) { + tprintf("UI_GET_SYSNAME(%u)", _IOC_SIZE(code)); + return 1; + } + return 0; + case 'j': + if (_IOC_DIR(code) == _IOC_READ && _IOC_NR(code) == 0x13) { + tprintf("JSIOCGNAME(%u)", _IOC_SIZE(code)); + return 1; + } + return 0; + case 'k': + if (_IOC_DIR(code) == _IOC_WRITE && _IOC_NR(code) == 0) { + tprintf("SPI_IOC_MESSAGE(%u)", _IOC_SIZE(code)); + return 1; + } + return 0; + default: + return 0; } } @@ -236,36 +272,24 @@ ioctl_decode(struct tcb *tcp) const kernel_ulong_t arg = tcp->u_arg[2]; switch (_IOC_TYPE(code)) { - case '$': - return perf_ioctl(tcp, code, arg); -#if defined(ALPHA) || defined(POWERPC) - case 'f': { - int ret = file_ioctl(tcp, code, arg); - if (ret != RVAL_DECODED) - return ret; - ATTRIBUTE_FALLTHROUGH; - } - case 't': - case 'T': - return term_ioctl(tcp, code, arg); -#else /* !ALPHA */ - case 'f': - return file_ioctl(tcp, code, arg); - case 0x54: -#endif /* !ALPHA */ - return term_ioctl(tcp, code, arg); - case 0x89: - return sock_ioctl(tcp, code, arg); - case 'p': - return rtc_ioctl(tcp, code, arg); case 0x03: return hdio_ioctl(tcp, code, arg); case 0x12: return block_ioctl(tcp, code, arg); - case 'X': - return fs_x_ioctl(tcp, code, arg); - case 0x22: + case '"': /* 0x22 */ return scsi_ioctl(tcp, code, arg); + case '$': /* 0x24 */ + return perf_ioctl(tcp, code, arg); +#ifdef HAVE_STRUCT_PTP_SYS_OFFSET + case '=': /* 0x3d */ + return ptp_ioctl(tcp, code, arg); +#endif +#ifdef HAVE_LINUX_INPUT_H + case 'E': + return evdev_ioctl(tcp, code, arg); +#endif + case 'I': + return inotify_ioctl(tcp, code, arg); case 'L': return loop_ioctl(tcp, code, arg); #ifdef HAVE_STRUCT_MTD_WRITE_REQ @@ -273,27 +297,56 @@ ioctl_decode(struct tcb *tcp) return mtd_ioctl(tcp, code, arg); #endif #ifdef HAVE_STRUCT_UBI_ATTACH_REQ_MAX_BEB_PER1024 - case 'o': case 'O': return ubi_ioctl(tcp, code, arg); #endif + case 'R': + return random_ioctl(tcp, code, arg); + case 'T': + return term_ioctl(tcp, code, arg); case 'V': return v4l2_ioctl(tcp, code, arg); -#ifdef HAVE_STRUCT_PTP_SYS_OFFSET - case '=': - return ptp_ioctl(tcp, code, arg); + case 'W': + return watchdog_ioctl(tcp, code, arg); + case 'X': + return fs_x_ioctl(tcp, code, arg); + case 'f': { +#if defined(ALPHA) || defined(POWERPC) + int ret = file_ioctl(tcp, code, arg); + if (ret != RVAL_DECODED) + return ret; + return term_ioctl(tcp, code, arg); +#else /* !(ALPHA || POWERPC) */ + return file_ioctl(tcp, code, arg); +#endif /* (ALPHA || POWERPC) */ + } +#ifdef HAVE_STRUCT_UBI_ATTACH_REQ_MAX_BEB_PER1024 + case 'o': + return ubi_ioctl(tcp, code, arg); #endif -#ifdef HAVE_LINUX_INPUT_H - case 'E': - return evdev_ioctl(tcp, code, arg); + case 'p': + return rtc_ioctl(tcp, code, arg); +#if defined(ALPHA) || defined(POWERPC) + case 't': + return term_ioctl(tcp, code, arg); +#endif /* !ALPHA */ + case 0x89: + return sock_ioctl(tcp, code, arg); +#ifdef HAVE_LINUX_BTRFS_H + case 0x94: + return btrfs_ioctl(tcp, code, arg); #endif + case 0xa4: + return tee_ioctl(tcp, code, arg); #ifdef HAVE_LINUX_USERFAULTFD_H case 0xaa: return uffdio_ioctl(tcp, code, arg); #endif -#ifdef HAVE_LINUX_BTRFS_H - case 0x94: - return btrfs_ioctl(tcp, code, arg); + case 0xab: + return nbd_ioctl(tcp, code, arg); +#ifdef HAVE_LINUX_KVM_H + case 0xae: + return kvm_ioctl(tcp, code, arg); #endif case 0xb7: return nsfs_ioctl(tcp, code, arg); @@ -301,16 +354,6 @@ ioctl_decode(struct tcb *tcp) case 0xfd: return dm_ioctl(tcp, code, arg); #endif -#ifdef HAVE_LINUX_KVM_H - case 0xae: - return kvm_ioctl(tcp, code, arg); -#endif - case 'I': - return inotify_ioctl(tcp, code, arg); - case 0xab: - return nbd_ioctl(tcp, code, arg); - case 'R': - return random_ioctl(tcp, code, arg); default: break; } diff --git a/ioprio.c b/ioprio.c index d4770ef2..5df3eb5e 100644 --- a/ioprio.c +++ b/ioprio.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2015 Dmitry V. Levin - * Copyright (c) 2014-2019 The strace developers. + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -34,13 +34,45 @@ sprint_ioprio(unsigned int ioprio) return outstr; } +void +print_ioprio(unsigned int ioprio) +{ + if (xlat_verbose(xlat_verbosity) != XLAT_STYLE_ABBREV) + tprintf("%#x", ioprio); + + if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW) + return; + + const char *str = sprint_ioprio(ioprio); + + (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE + ? tprints_comment : tprints)(str); +} + +static void +ioprio_print_who(struct tcb *tcp, int which, int who) +{ + switch (which) + { + case IOPRIO_WHO_PROCESS: + printpid(tcp, who, PT_TGID); + break; + case IOPRIO_WHO_PGRP: + printpid(tcp, who, PT_PGID); + break; + default: + tprintf("%d", who); + break; + } +} + SYS_FUNC(ioprio_get) { if (entering(tcp)) { /* int which */ printxval(ioprio_who, tcp->u_arg[0], "IOPRIO_WHO_???"); - /* int who */ - tprintf(", %d", (int) tcp->u_arg[1]); + tprints(", "); + ioprio_print_who(tcp, tcp->u_arg[0], tcp->u_arg[1]); return 0; } else { if (syserror(tcp)) @@ -57,8 +89,9 @@ SYS_FUNC(ioprio_set) { /* int which */ printxval(ioprio_who, tcp->u_arg[0], "IOPRIO_WHO_???"); - /* int who */ - tprintf(", %d, ", (int) tcp->u_arg[1]); + tprints(", "); + ioprio_print_who(tcp, tcp->u_arg[0], tcp->u_arg[1]); + tprints(", "); /* int ioprio */ if (xlat_verbose(xlat_verbosity) != XLAT_STYLE_ABBREV) tprintf("%d", (int) tcp->u_arg[2]); diff --git a/ipc_defs.h b/ipc_defs.h index b5900e0b..1fb5a792 100644 --- a/ipc_defs.h +++ b/ipc_defs.h @@ -1,6 +1,6 @@ /* * Copyright (c) 2003 Roland McGrath - * Copyright (c) 2003-2018 The strace developers. + * Copyright (c) 2003-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -9,12 +9,50 @@ #ifndef STRACE_IPC_DEFS_H # define STRACE_IPC_DEFS_H -# ifdef HAVE_SYS_IPC_H -# include -# elif defined HAVE_LINUX_IPC_H +# ifdef HAVE_LINUX_IPC_H +# if defined MPERS_IS_m32 +# if defined ARCH_M32_SIZEOF_STRUCT_MSQID64_DS && \ + defined M32_SIZEOF_STRUCT_MSQID64_DS && \ + ARCH_M32_SIZEOF_STRUCT_MSQID64_DS != M32_SIZEOF_STRUCT_MSQID64_DS +# undef HAVE_LINUX_IPC_H +# endif +# elif defined MPERS_IS_mx32 +# if defined ARCH_MX32_SIZEOF_STRUCT_MSQID64_DS && \ + defined MX32_SIZEOF_STRUCT_MSQID64_DS && \ + ARCH_MX32_SIZEOF_STRUCT_MSQID64_DS != MX32_SIZEOF_STRUCT_MSQID64_DS +# undef HAVE_LINUX_IPC_H +# endif +# else /* !IN_MPERS */ +# if defined ARCH_SIZEOF_STRUCT_MSQID64_DS && \ + defined SIZEOF_STRUCT_MSQID64_DS && \ + ARCH_SIZEOF_STRUCT_MSQID64_DS != SIZEOF_STRUCT_MSQID64_DS +# undef HAVE_LINUX_IPC_H +# endif +# endif +# endif /* HAVE_LINUX_IPC_H */ + +# if defined HAVE_LINUX_IPC_H # include -/* While glibc uses __key, the kernel uses key. */ -# define __key key +# define MSG_H_PROVIDER "linux/msg.h" +# define SEM_H_PROVIDER "linux/sem.h" +# define SHM_H_PROVIDER "linux/shm.h" +# define NAME_OF_STRUCT_MSQID_DS msqid64_ds +# define NAME_OF_STRUCT_SEMID_DS semid64_ds +# define NAME_OF_STRUCT_SHMID_DS shmid64_ds +# define NAME_OF_STRUCT_SHMINFO shminfo64 +# define NAME_OF_STRUCT_IPC_PERM_KEY key +# elif defined HAVE_SYS_IPC_H +# include +# define MSG_H_PROVIDER "sys/msg.h" +# define SEM_H_PROVIDER "sys/sem.h" +# define SHM_H_PROVIDER "sys/shm.h" +# define NAME_OF_STRUCT_MSQID_DS msqid_ds +# define NAME_OF_STRUCT_SEMID_DS semid_ds +# define NAME_OF_STRUCT_SHMID_DS shmid_ds +# define NAME_OF_STRUCT_SHMINFO shminfo +# define NAME_OF_STRUCT_IPC_PERM_KEY __key +# else +# error Neither nor is available # endif # if !defined IPC_64 diff --git a/ipc_msg.c b/ipc_msg.c index d5703557..2541ddef 100644 --- a/ipc_msg.c +++ b/ipc_msg.c @@ -5,7 +5,7 @@ * Copyright (c) 1996-1999 Wichert Akkerman * Copyright (c) 2003-2006 Roland McGrath * Copyright (c) 2006-2015 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -14,11 +14,7 @@ #include "defs.h" #include "ipc_defs.h" -#ifdef HAVE_SYS_MSG_H -# include -#elif defined HAVE_LINUX_MSG_H -# include -#endif +#include MSG_H_PROVIDER #include "xlat/ipc_msg_flags.h" #include "xlat/ipc_private.h" diff --git a/ipc_msgctl.c b/ipc_msgctl.c index 8c5337cf..a1c41229 100644 --- a/ipc_msgctl.c +++ b/ipc_msgctl.c @@ -5,7 +5,7 @@ * Copyright (c) 1996-1999 Wichert Akkerman * Copyright (c) 2003-2006 Roland McGrath * Copyright (c) 2006-2015 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -17,73 +17,111 @@ #include "ipc_defs.h" -#ifdef HAVE_SYS_MSG_H -/* The C library generally exports the struct the current kernel expects. */ -# include -typedef struct msqid_ds msqid_ds_t; -#elif defined HAVE_LINUX_MSG_H -/* The linux header might provide the right struct. */ -# include -typedef struct msqid64_ds msqid_ds_t; -#endif +#include MSG_H_PROVIDER +typedef struct NAME_OF_STRUCT_MSQID_DS msqid_ds_t; #include MPERS_DEFS +#include "print_fields.h" #include "xlat/msgctl_flags.h" +#define key NAME_OF_STRUCT_IPC_PERM_KEY + static void -print_msqid_ds(struct tcb *const tcp, const kernel_ulong_t addr, int cmd) +print_msqid_ds(struct tcb *const tcp, const kernel_ulong_t addr, + const unsigned int cmd) { - /* TODO: We don't properly decode old compat ipc calls. */ - if (cmd & IPC_64) - cmd &= ~IPC_64; msqid_ds_t msqid_ds; - switch (cmd) { - case IPC_SET: - case IPC_STAT: - if (umove_or_printaddr(tcp, addr, &msqid_ds)) - return; - - tprints("{msg_perm={"); - printuid("uid=", msqid_ds.msg_perm.uid); - printuid(", gid=", msqid_ds.msg_perm.gid); - tprints(", mode="); - print_numeric_umode_t(msqid_ds.msg_perm.mode); - - if (cmd != IPC_STAT) { - tprints("}, ...}"); - break; - } - tprintf(", key=%u", (unsigned) msqid_ds.msg_perm.__key); - printuid(", cuid=", msqid_ds.msg_perm.cuid); - printuid(", cgid=", msqid_ds.msg_perm.cgid); - tprints("}"); - tprintf(", msg_stime=%u", (unsigned) msqid_ds.msg_stime); - tprintf(", msg_rtime=%u", (unsigned) msqid_ds.msg_rtime); - tprintf(", msg_ctime=%u", (unsigned) msqid_ds.msg_ctime); - tprintf(", msg_qnum=%u", (unsigned) msqid_ds.msg_qnum); - tprintf(", msg_qbytes=%u", (unsigned) msqid_ds.msg_qbytes); - tprintf(", msg_lspid=%u", (unsigned) msqid_ds.msg_lspid); - tprintf(", msg_lrpid=%u", (unsigned) msqid_ds.msg_lrpid); - tprints("}"); - break; - - default: - printaddr(addr); - break; + if (umove_or_printaddr(tcp, addr, &msqid_ds)) + return; + + PRINT_FIELD_UID("{msg_perm={", msqid_ds.msg_perm, uid); + PRINT_FIELD_UID(", ", msqid_ds.msg_perm, gid); + PRINT_FIELD_NUMERIC_UMODE_T(", ", msqid_ds.msg_perm, mode); + if (cmd != IPC_SET) { + PRINT_FIELD_U(", ", msqid_ds.msg_perm, key); + PRINT_FIELD_UID(", ", msqid_ds.msg_perm, cuid); + PRINT_FIELD_UID(", ", msqid_ds.msg_perm, cgid); } + tprints("}"); + if (cmd != IPC_SET) { + PRINT_FIELD_U(", ", msqid_ds, msg_stime); + PRINT_FIELD_U(", ", msqid_ds, msg_rtime); + PRINT_FIELD_U(", ", msqid_ds, msg_ctime); + PRINT_FIELD_U(", ", msqid_ds, msg_qnum); + } + PRINT_FIELD_U(", ", msqid_ds, msg_qbytes); + if (cmd != IPC_SET) { + PRINT_FIELD_D(", ", msqid_ds, msg_lspid); + PRINT_FIELD_D(", ", msqid_ds, msg_lrpid); + } + tprints("}"); +} + +static void +print_msginfo(struct tcb *const tcp, const kernel_ulong_t addr, + const unsigned int cmd) +{ + struct msginfo info; + + if (umove_or_printaddr(tcp, addr, &info)) + return; + + PRINT_FIELD_D("{", info, msgpool); + PRINT_FIELD_D(", ", info, msgmap); + PRINT_FIELD_D(", ", info, msgmax); + PRINT_FIELD_D(", ", info, msgmnb); + PRINT_FIELD_D(", ", info, msgmni); + PRINT_FIELD_D(", ", info, msgssz); + PRINT_FIELD_D(", ", info, msgtql); + PRINT_FIELD_U(", ", info, msgseg); + tprints("}"); } SYS_FUNC(msgctl) { + const kernel_ulong_t addr = tcp->u_arg[indirect_ipccall(tcp) ? 3 : 2]; + unsigned int cmd = tcp->u_arg[1]; + + /* TODO: We don't properly decode old compat ipc calls. */ + if (cmd & IPC_64) + cmd &= ~IPC_64; + if (entering(tcp)) { tprintf("%d, ", (int) tcp->u_arg[0]); PRINTCTL(msgctl_flags, tcp->u_arg[1], "MSG_???"); tprints(", "); + switch (cmd) { + case IPC_SET: + print_msqid_ds(tcp, addr, cmd); + return RVAL_DECODED; + + case IPC_STAT: + case MSG_STAT: + case MSG_STAT_ANY: + case IPC_INFO: + case MSG_INFO: + /* decode on exiting */ + break; + + default: + printaddr(addr); + return RVAL_DECODED; + } } else { - const kernel_ulong_t addr = tcp->u_arg[indirect_ipccall(tcp) ? 3 : 2]; - print_msqid_ds(tcp, addr, tcp->u_arg[1]); + switch (cmd) { + case IPC_STAT: + case MSG_STAT: + case MSG_STAT_ANY: + print_msqid_ds(tcp, addr, cmd); + break; + + case IPC_INFO: + case MSG_INFO: + print_msginfo(tcp, addr, cmd); + break; + } } return 0; } diff --git a/ipc_sem.c b/ipc_sem.c index 0be29666..b30aa56c 100644 --- a/ipc_sem.c +++ b/ipc_sem.c @@ -5,7 +5,7 @@ * Copyright (c) 1996-1999 Wichert Akkerman * Copyright (c) 2003-2006 Roland McGrath * Copyright (c) 2006-2015 Dmitry V. Levin - * Copyright (c) 2015-2019 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -14,16 +14,10 @@ #include "defs.h" #include "ipc_defs.h" -#ifdef HAVE_SYS_SEM_H -# include -#elif defined HAVE_LINUX_SEM_H -# include -#endif +#include SEM_H_PROVIDER -#include "xlat/semctl_flags.h" #include "xlat/semop_flags.h" -#if defined HAVE_SYS_SEM_H || defined HAVE_LINUX_SEM_H static bool print_sembuf(struct tcb *tcp, void *elem_buf, size_t elem_size, void *data) { @@ -35,19 +29,14 @@ print_sembuf(struct tcb *tcp, void *elem_buf, size_t elem_size, void *data) return true; } -#endif static void tprint_sembuf_array(struct tcb *const tcp, const kernel_ulong_t addr, const unsigned int count) { -#if defined HAVE_SYS_SEM_H || defined HAVE_LINUX_SEM_H struct sembuf sb; print_array(tcp, addr, count, &sb, sizeof(sb), tfetch_mem, print_sembuf, 0); -#else - printaddr(addr); -#endif tprintf(", %u", count); } @@ -103,20 +92,3 @@ SYS_FUNC(semget) print_numeric_umode_t(tcp->u_arg[2] & 0777); return RVAL_DECODED; } - -SYS_FUNC(semctl) -{ - tprintf("%d, %d, ", (int) tcp->u_arg[0], (int) tcp->u_arg[1]); - PRINTCTL(semctl_flags, tcp->u_arg[2], "SEM_???"); - tprints(", "); - if (indirect_ipccall(tcp) -#ifdef SPARC64 - && current_personality != 0 -#endif - ) { - printnum_ptr(tcp, tcp->u_arg[3]); - } else { - printaddr(tcp->u_arg[3]); - } - return RVAL_DECODED; -} diff --git a/ipc_semctl.c b/ipc_semctl.c new file mode 100644 index 00000000..efff6f33 --- /dev/null +++ b/ipc_semctl.c @@ -0,0 +1,160 @@ +/* + * Copyright (c) 1993 Ulrich Pegelow + * Copyright (c) 1993 Branko Lankester + * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey + * Copyright (c) 1996-1999 Wichert Akkerman + * Copyright (c) 2003-2006 Roland McGrath + * Copyright (c) 2006-2015 Dmitry V. Levin + * Copyright (c) 2015-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#include "defs.h" + +#include DEF_MPERS_TYPE(semid_ds_t) +#include DEF_MPERS_TYPE(semun_ptr_t) + +#include "ipc_defs.h" + +#include SEM_H_PROVIDER + +typedef struct NAME_OF_STRUCT_SEMID_DS semid_ds_t; +typedef kernel_ulong_t semun_ptr_t; + +#include MPERS_DEFS + +#include "print_fields.h" +#include "xlat/semctl_flags.h" + +#define key NAME_OF_STRUCT_IPC_PERM_KEY + +static void +print_semid_ds(struct tcb *const tcp, const kernel_ulong_t addr, + const unsigned int cmd, const bool indirect_addr) +{ + semid_ds_t ds; + + if (!tfetch_mem(tcp, addr, sizeof(ds), &ds)) { + if (indirect_addr) + tprints("["); + printaddr(addr); + if (indirect_addr) + tprints("]"); + return; + } + + PRINT_FIELD_UID("{sem_perm={", ds.sem_perm, uid); + PRINT_FIELD_UID(", ", ds.sem_perm, gid); + PRINT_FIELD_NUMERIC_UMODE_T(", ", ds.sem_perm, mode); + if (cmd != IPC_SET) { + PRINT_FIELD_U(", ", ds.sem_perm, key); + PRINT_FIELD_UID(", ", ds.sem_perm, cuid); + PRINT_FIELD_UID(", ", ds.sem_perm, cgid); + } + tprints("}"); + if (cmd != IPC_SET) { + PRINT_FIELD_U(", ", ds, sem_otime); + PRINT_FIELD_U(", ", ds, sem_ctime); + PRINT_FIELD_U(", ", ds, sem_nsems); + } + tprints("}"); +} + +static void +print_seminfo(struct tcb *const tcp, const kernel_ulong_t addr, + const unsigned int cmd, const bool indirect_addr) +{ + struct seminfo info; + + if (umove_or_printaddr(tcp, addr, &info)) + return; + if (!tfetch_mem(tcp, addr, sizeof(info), &info)) { + if (indirect_addr) + tprints("["); + printaddr(addr); + if (indirect_addr) + tprints("]"); + return; + } + + PRINT_FIELD_D("{", info, semmap); + PRINT_FIELD_D(", ", info, semmni); + PRINT_FIELD_D(", ", info, semmns); + PRINT_FIELD_D(", ", info, semmnu); + PRINT_FIELD_D(", ", info, semmsl); + PRINT_FIELD_D(", ", info, semopm); + PRINT_FIELD_D(", ", info, semume); + PRINT_FIELD_D(", ", info, semusz); + PRINT_FIELD_D(", ", info, semvmx); + PRINT_FIELD_D(", ", info, semaem); + tprints("}"); +} + +SYS_FUNC(semctl) +{ + kernel_ulong_t addr; + unsigned int cmd = tcp->u_arg[2]; + const bool indirect_addr = indirect_ipccall(tcp) +#ifdef SPARC64 + && current_personality != 0 +#endif + ; + + /* TODO: We don't properly decode old compat ipc calls. */ + if (cmd & IPC_64) + cmd &= ~IPC_64; + + if (entering(tcp)) { + tprintf("%d, %d, ", (int) tcp->u_arg[0], (int) tcp->u_arg[1]); + PRINTCTL(semctl_flags, tcp->u_arg[2], "SEM_???"); + tprints(", "); + + if (indirect_addr) { + semun_ptr_t ptr; + if (umove_or_printaddr(tcp, tcp->u_arg[3], &ptr)) + return RVAL_DECODED; + addr = ptr; + } else { + addr = tcp->u_arg[3]; + } + switch (cmd) { + case IPC_SET: + print_semid_ds(tcp, addr, cmd, indirect_addr); + return RVAL_DECODED; + + case IPC_STAT: + case SEM_STAT: + case SEM_STAT_ANY: + case IPC_INFO: + case SEM_INFO: + /* decode on exiting */ + set_tcb_priv_ulong(tcp, addr); + break; + + default: + if (indirect_addr) + tprints("["); + printaddr(addr); + if (indirect_addr) + tprints("]"); + return RVAL_DECODED; + } + } else { + addr = get_tcb_priv_ulong(tcp); + switch (cmd) { + case IPC_STAT: + case SEM_STAT: + case SEM_STAT_ANY: + print_semid_ds(tcp, addr, cmd, indirect_addr); + break; + + case IPC_INFO: + case SEM_INFO: + print_seminfo(tcp, addr, cmd, indirect_addr); + break; + } + } + return 0; +} diff --git a/ipc_shm.c b/ipc_shm.c index b54cd8c4..b5e7878d 100644 --- a/ipc_shm.c +++ b/ipc_shm.c @@ -5,19 +5,16 @@ * Copyright (c) 1996-1999 Wichert Akkerman * Copyright (c) 2003-2006 Roland McGrath * Copyright (c) 2006-2015 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ #include "defs.h" +#include "ipc_defs.h" -#ifdef HAVE_SYS_SHM_H -# include -#elif defined HAVE_LINUX_SHM_H -# include -#endif +#include SHM_H_PROVIDER #ifndef SHM_HUGE_SHIFT # define SHM_HUGE_SHIFT 26 diff --git a/ipc_shmctl.c b/ipc_shmctl.c index 25f44716..c8982332 100644 --- a/ipc_shmctl.c +++ b/ipc_shmctl.c @@ -5,7 +5,7 @@ * Copyright (c) 1996-1999 Wichert Akkerman * Copyright (c) 2003-2006 Roland McGrath * Copyright (c) 2006-2015 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -14,76 +14,135 @@ #include "defs.h" #include DEF_MPERS_TYPE(shmid_ds_t) +#include DEF_MPERS_TYPE(struct_shm_info_t) +#include DEF_MPERS_TYPE(struct_shm_ipc_info_t) #include "ipc_defs.h" -#ifdef HAVE_SYS_SHM_H -/* The C library generally exports the struct the current kernel expects. */ -# include -typedef struct shmid_ds shmid_ds_t; -#elif defined HAVE_LINUX_SHM_H -/* The linux header might provide the right struct. */ -# include -typedef struct shmid64_ds shmid_ds_t; -#endif +#include SHM_H_PROVIDER +typedef struct NAME_OF_STRUCT_SHMID_DS shmid_ds_t; +typedef struct shm_info struct_shm_info_t; +typedef struct NAME_OF_STRUCT_SHMINFO struct_shm_ipc_info_t; #include MPERS_DEFS +#include "print_fields.h" #include "xlat/shmctl_flags.h" +#define key NAME_OF_STRUCT_IPC_PERM_KEY + static void -print_shmid_ds(struct tcb *const tcp, const kernel_ulong_t addr, int cmd) +print_shmid_ds(struct tcb *const tcp, const kernel_ulong_t addr, + const unsigned int cmd) { - /* TODO: We don't properly decode old compat ipc calls. */ - if (cmd & IPC_64) - cmd &= ~IPC_64; shmid_ds_t shmid_ds; - switch (cmd) { - case IPC_SET: - case IPC_STAT: - if (umove_or_printaddr(tcp, addr, &shmid_ds)) - return; - - tprints("{shm_perm={"); - printuid("uid=", shmid_ds.shm_perm.uid); - printuid(", gid=", shmid_ds.shm_perm.gid); - tprints(", mode="); - print_numeric_umode_t(shmid_ds.shm_perm.mode); - - if (cmd != IPC_STAT) { - tprints("}, ...}"); - break; - } - tprintf(", key=%u", (unsigned) shmid_ds.shm_perm.__key); - printuid(", cuid=", shmid_ds.shm_perm.cuid); - printuid(", cgid=", shmid_ds.shm_perm.cgid); - tprints("}"); - tprintf(", shm_segsz=%u", (unsigned) shmid_ds.shm_segsz); - tprintf(", shm_cpid=%u", (unsigned) shmid_ds.shm_cpid); - tprintf(", shm_lpid=%u", (unsigned) shmid_ds.shm_lpid); - tprintf(", shm_nattch=%u", (unsigned) shmid_ds.shm_nattch); - tprintf(", shm_atime=%u", (unsigned) shmid_ds.shm_atime); - tprintf(", shm_dtime=%u", (unsigned) shmid_ds.shm_dtime); - tprintf(", shm_ctime=%u", (unsigned) shmid_ds.shm_ctime); - tprints("}"); - break; - - default: - printaddr(addr); - break; + if (umove_or_printaddr(tcp, addr, &shmid_ds)) + return; + + PRINT_FIELD_UID("{shm_perm={", shmid_ds.shm_perm, uid); + PRINT_FIELD_UID(", ", shmid_ds.shm_perm, gid); + PRINT_FIELD_NUMERIC_UMODE_T(", ", shmid_ds.shm_perm, mode); + + if (cmd != IPC_SET) { + PRINT_FIELD_U(", ", shmid_ds.shm_perm, key); + PRINT_FIELD_UID(", ", shmid_ds.shm_perm, cuid); + PRINT_FIELD_UID(", ", shmid_ds.shm_perm, cgid); + } + tprints("}"); + if (cmd != IPC_SET) { + PRINT_FIELD_U(", ", shmid_ds, shm_segsz); + PRINT_FIELD_TGID(", ", shmid_ds, shm_cpid, tcp); + PRINT_FIELD_TGID(", ", shmid_ds, shm_lpid, tcp); + PRINT_FIELD_U(", ", shmid_ds, shm_nattch); + PRINT_FIELD_U(", ", shmid_ds, shm_atime); + PRINT_FIELD_U(", ", shmid_ds, shm_dtime); + PRINT_FIELD_U(", ", shmid_ds, shm_ctime); } + tprints("}"); +} + +static void +print_ipc_info(struct tcb *const tcp, const kernel_ulong_t addr, + const unsigned int cmd) +{ + struct_shm_ipc_info_t info; + + if (umove_or_printaddr(tcp, addr, &info)) + return; + + PRINT_FIELD_U("{", info, shmmax); + PRINT_FIELD_U(", ", info, shmmin); + PRINT_FIELD_U(", ", info, shmmni); + PRINT_FIELD_U(", ", info, shmseg); + PRINT_FIELD_U(", ", info, shmall); + tprints("}"); +} + +static void +print_shm_info(struct tcb *const tcp, const kernel_ulong_t addr, + const unsigned int cmd) +{ + struct_shm_info_t info; + + if (umove_or_printaddr(tcp, addr, &info)) + return; + + PRINT_FIELD_D("{", info, used_ids); + PRINT_FIELD_U(", ", info, shm_tot); + PRINT_FIELD_U(", ", info, shm_rss); + PRINT_FIELD_U(", ", info, shm_swp); + PRINT_FIELD_U(", ", info, swap_attempts); + PRINT_FIELD_U(", ", info, swap_successes); + tprints("}"); } SYS_FUNC(shmctl) { + const kernel_ulong_t addr = tcp->u_arg[indirect_ipccall(tcp) ? 3 : 2]; + unsigned int cmd = tcp->u_arg[1]; + + /* TODO: We don't properly decode old compat ipc calls. */ + if (cmd & IPC_64) + cmd &= ~IPC_64; + if (entering(tcp)) { tprintf("%d, ", (int) tcp->u_arg[0]); PRINTCTL(shmctl_flags, tcp->u_arg[1], "SHM_???"); tprints(", "); + switch (cmd) { + case IPC_SET: + print_shmid_ds(tcp, addr, cmd); + return RVAL_DECODED; + + case IPC_STAT: + case SHM_STAT: + case SHM_STAT_ANY: + case IPC_INFO: + case SHM_INFO: + /* decode on exiting */ + break; + + default: + printaddr(addr); + return RVAL_DECODED; + } } else { - const kernel_ulong_t addr = tcp->u_arg[indirect_ipccall(tcp) ? 3 : 2]; - print_shmid_ds(tcp, addr, tcp->u_arg[1]); + switch (cmd) { + case IPC_STAT: + case SHM_STAT: + case SHM_STAT_ANY: + print_shmid_ds(tcp, addr, cmd); + break; + + case IPC_INFO: + print_ipc_info(tcp, addr, cmd); + break; + + case SHM_INFO: + print_shm_info(tcp, addr, cmd); + break; + } } return 0; } diff --git a/kcmp.c b/kcmp.c index 6722d774..a5e1cdce 100644 --- a/kcmp.c +++ b/kcmp.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2015 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -16,20 +16,10 @@ struct strace_kcmp_epoll_slot { uint32_t toff; }; -static void -printpidfd(struct tcb *tcp, pid_t pid, int fd) -{ - /* - * XXX We want to use printfd here, but we should figure out which - * process in strace's PID NS is referred to first. - */ - tprintf("%d", fd); -} - #define PRINT_FIELD_PIDFD(prefix_, where_, field_, tcp_, pid_) \ do { \ STRACE_PRINTF("%s%s=", (prefix_), #field_); \ - printpidfd((tcp_), (pid_), (where_).field_); \ + printfd_pid_tracee_ns((tcp_), (pid_), (where_).field_); \ } while (0) SYS_FUNC(kcmp) @@ -40,15 +30,18 @@ SYS_FUNC(kcmp) kernel_ulong_t idx1 = tcp->u_arg[3]; kernel_ulong_t idx2 = tcp->u_arg[4]; - tprintf("%d, %d, ", pid1, pid2); + printpid(tcp, pid1, PT_TGID); + tprints(", "); + printpid(tcp, pid2, PT_TGID); + tprints(", "); printxval(kcmp_types, type, "KCMP_???"); switch (type) { case KCMP_FILE: tprints(", "); - printpidfd(tcp, pid1, idx1); + printfd_pid_tracee_ns(tcp, pid1, idx1); tprints(", "); - printpidfd(tcp, pid1, idx2); + printfd_pid_tracee_ns(tcp, pid2, idx2); break; @@ -56,7 +49,7 @@ SYS_FUNC(kcmp) struct strace_kcmp_epoll_slot slot; tprints(", "); - printpidfd(tcp, pid1, idx1); + printfd_pid_tracee_ns(tcp, pid1, idx1); tprints(", "); if (umove_or_printaddr(tcp, idx2, &slot)) diff --git a/kernel_dirent.h b/kernel_dirent.h new file mode 100644 index 00000000..ee4afdbb --- /dev/null +++ b/kernel_dirent.h @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2015 Dmitry V. Levin + * Copyright (c) 2015-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#ifndef STRACE_KERNEL_DIRENT_H +# define STRACE_KERNEL_DIRENT_H + +# include "kernel_types.h" + +typedef struct { + kernel_ulong_t d_ino; + kernel_ulong_t d_off; + unsigned short d_reclen; + char d_name[1]; +} kernel_dirent_t; + +typedef struct { + uint64_t d_ino; + uint64_t d_off; + unsigned short d_reclen; + unsigned char d_type; + char d_name[1]; +} kernel_dirent64_t; + +#endif /* !STRACE_KERNEL_DIRENT_H */ diff --git a/kernel_rusage.h b/kernel_rusage.h new file mode 100644 index 00000000..c9028cb4 --- /dev/null +++ b/kernel_rusage.h @@ -0,0 +1,32 @@ +/* + * Copyright (c) 1999-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#ifndef STRACE_KERNEL_RUSAGE_H +# define STRACE_KERNEL_RUSAGE_H + +# include "kernel_timeval.h" + +typedef struct { + kernel_old_timeval_t ru_utime; + kernel_old_timeval_t ru_stime; + kernel_long_t ru_maxrss; + kernel_long_t ru_ixrss; + kernel_long_t ru_idrss; + kernel_long_t ru_isrss; + kernel_long_t ru_minflt; + kernel_long_t ru_majflt; + kernel_long_t ru_nswap; + kernel_long_t ru_inblock; + kernel_long_t ru_oublock; + kernel_long_t ru_msgsnd; + kernel_long_t ru_msgrcv; + kernel_long_t ru_nsignals; + kernel_long_t ru_nvcsw; + kernel_long_t ru_nivcsw; +} kernel_rusage_t; + +#endif /* !STRACE_KERNEL_RUSAGE_H */ diff --git a/kernel_timespec.h b/kernel_timespec.h index 99fb2c6c..af656381 100644 --- a/kernel_timespec.h +++ b/kernel_timespec.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019 Dmitry V. Levin + * Copyright (c) 2019-2020 Dmitry V. Levin * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -13,13 +13,13 @@ typedef struct { long long tv_nsec; } kernel_timespec64_t; -# if HAVE_ARCH_TIME32_SYSCALLS +# if HAVE_ARCH_TIME32_SYSCALLS || HAVE_ARCH_TIMESPEC32 typedef struct { int tv_sec; int tv_nsec; } kernel_timespec32_t; -# endif /* HAVE_ARCH_TIME32_SYSCALLS */ +# endif /* HAVE_ARCH_TIME32_SYSCALLS || HAVE_ARCH_TIMESPEC32 */ #endif /* !STRACE_KERNEL_TIMESPEC_H */ diff --git a/kernel_timeval.h b/kernel_timeval.h index 4170937a..7a3dc1b2 100644 --- a/kernel_timeval.h +++ b/kernel_timeval.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019 Dmitry V. Levin + * Copyright (c) 2019-2020 Dmitry V. Levin * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -8,9 +8,20 @@ #ifndef STRACE_KERNEL_TIMEVAL_H # define STRACE_KERNEL_TIMEVAL_H +# include "kernel_types.h" + typedef struct { long long tv_sec; long long tv_usec; } kernel_timeval64_t; +typedef struct { + kernel_long_t tv_sec; +# if defined __sparc__ && defined __arch64__ + int tv_usec; +# else + kernel_long_t tv_usec; +# endif +} kernel_old_timeval_t; + #endif /* !STRACE_KERNEL_TIMEVAL_H */ diff --git a/kernel_timex.h b/kernel_timex.h index a597e353..11b29e02 100644 --- a/kernel_timex.h +++ b/kernel_timex.h @@ -37,7 +37,7 @@ typedef struct { int pad3[11]; } kernel_timex64_t; -#ifdef SPARC64 +# ifdef SPARC64 typedef struct { unsigned int modes; @@ -69,7 +69,7 @@ typedef struct { int pad3[11]; } kernel_sparc64_timex_t; -#endif /* SPARC64 */ +# endif /* SPARC64 */ # if HAVE_ARCH_TIME32_SYSCALLS diff --git a/kernel_types.h b/kernel_types.h index f7c2aedb..d308a0ea 100644 --- a/kernel_types.h +++ b/kernel_types.h @@ -1,6 +1,6 @@ /* * Copyright (c) 2015 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -28,13 +28,6 @@ typedef unsigned long kernel_ulong_t; # endif -typedef struct { - kernel_ulong_t d_ino; - kernel_ulong_t d_off; - unsigned short d_reclen; - char d_name[1]; -} kernel_dirent; - # if SIZEOF_KERNEL_LONG_T > SIZEOF_LONG # define PRI_kl "ll" # else diff --git a/kernel_v4l2_types.h b/kernel_v4l2_types.h new file mode 100644 index 00000000..c6aee55b --- /dev/null +++ b/kernel_v4l2_types.h @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#ifndef STRACE_KERNEL_V4L2_BUFFER_H +# define STRACE_KERNEL_V4L2_BUFFER_H + +# include "types/v4l2.h" +# include "kernel_timeval.h" +# include "kernel_timespec.h" + +# if defined __sparc__ && defined __arch64__ +typedef struct { + long long tv_sec; + int tv_usec; + int pad; +} kernel_v4l2_timeval_t; +# else +typedef kernel_timeval64_t kernel_v4l2_timeval_t; +# endif + +typedef struct { + uint32_t index; + uint32_t type; + uint32_t bytesused; + uint32_t flags; + uint32_t field; + kernel_v4l2_timeval_t timestamp; + struct v4l2_timecode timecode; + uint32_t sequence; + uint32_t memory; + union { + uint32_t offset; + unsigned long userptr; + struct v4l2_plane *planes; + int32_t fd; + } m; + uint32_t length; + uint32_t reserved2; + union { + int32_t request_fd; + uint32_t reserved; + }; +} kernel_v4l2_buffer_t; + +typedef struct { + uint32_t type; + union { + uint64_t data[8]; + } u; + uint32_t pending; + uint32_t sequence; + kernel_timespec64_t timestamp; + uint32_t id; + uint32_t reserved[8]; +} kernel_v4l2_event_t; + +#endif /* !STRACE_KERNEL_V4L2_BUFFER_H */ diff --git a/keyctl.c b/keyctl.c index e880410c..0333e56b 100644 --- a/keyctl.c +++ b/keyctl.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2014-2015 Dmitry V. Levin - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -11,9 +11,17 @@ #include "keyctl_kdf_params.h" #include "print_fields.h" -typedef int32_t key_serial_t; - +#include "xlat/key_perms.h" +#include "xlat/key_reqkeys.h" #include "xlat/key_spec.h" +#include "xlat/keyctl_caps0.h" +#include "xlat/keyctl_caps1.h" +#include "xlat/keyctl_commands.h" +#include "xlat/keyctl_move_flags.h" +#include "xlat/keyctl_pkey_ops.h" + + +typedef int32_t key_serial_t; struct keyctl_dh_params { int32_t private; @@ -21,6 +29,27 @@ struct keyctl_dh_params { int32_t base; }; +struct keyctl_pkey_query { + uint32_t supported_ops; + uint32_t key_size; + uint16_t max_data_size; + uint16_t max_sig_size; + uint16_t max_enc_size; + uint16_t max_dec_size; + uint32_t __spare[10]; +}; + +struct keyctl_pkey_params { + int32_t key_id; + uint32_t in_len; + union { + uint32_t out_len; + uint32_t in2_len; + }; + uint32_t __spare[7]; +}; + + static void print_keyring_serial_number(key_serial_t id) { @@ -166,11 +195,9 @@ static void keyctl_reject_key(struct tcb *tcp, key_serial_t id1, unsigned timeout, unsigned error, key_serial_t id2) { - const char *err_str = err_name(error); - print_keyring_serial_number(id1); tprintf(", %u, ", timeout); - print_xlat_ex(error, err_str, XLAT_STYLE_FMT_U); + print_err(error, false); tprints(", "); print_keyring_serial_number(id2); } @@ -190,8 +217,6 @@ keyctl_get_persistent(struct tcb *tcp, unsigned uid, key_serial_t id) print_keyring_serial_number(id); } -#include "xlat/key_perms.h" - static void keyctl_setperm_key(struct tcb *tcp, key_serial_t id, uint32_t perm) { @@ -240,8 +265,6 @@ keyctl_dh_compute(struct tcb *tcp, kernel_ulong_t params, kernel_ulong_t buf, if (fetch_keyctl_kdf_params(tcp, kdf_addr, &kdf)) { printaddr(kdf_addr); } else { - size_t i; - PRINT_FIELD_STR("{", kdf, hashname, tcp); /* @@ -256,28 +279,129 @@ keyctl_dh_compute(struct tcb *tcp, kernel_ulong_t params, kernel_ulong_t buf, PRINT_FIELD_U(", ", kdf, otherinfolen); - /* Some future-proofing */ - for (i = 0; i < ARRAY_SIZE(kdf.__spare); i++) { - if (kdf.__spare[i]) - break; + if (!IS_ARRAY_ZERO(kdf.__spare)) { + PRINT_FIELD_ARRAY(", ", kdf, __spare, tcp, + print_xint32_array_member); } - if (i < ARRAY_SIZE(kdf.__spare)) { - tprints(", __spare=["); + tprints("}"); + } + } +} - for (i = 0; i < ARRAY_SIZE(kdf.__spare); i++) { - if (i) - tprints(", "); +static void +print_pkey_query(struct tcb *tcp, kernel_ulong_t addr) +{ + struct keyctl_pkey_query query; - tprintf("%#x", kdf.__spare[i]); - } + if (umove_or_printaddr(tcp, addr, &query)) + return; - tprints("]"); - } + PRINT_FIELD_FLAGS("{", query, supported_ops, keyctl_pkey_ops, + "KEYCTL_SUPPORTS_???"); + PRINT_FIELD_U(", ", query, key_size); + PRINT_FIELD_U(", ", query, max_data_size); + PRINT_FIELD_U(", ", query, max_sig_size); + PRINT_FIELD_U(", ", query, max_enc_size); + PRINT_FIELD_U(", ", query, max_dec_size); + + if (!IS_ARRAY_ZERO(query.__spare)) { + PRINT_FIELD_ARRAY(", ", query, __spare, tcp, + print_xint32_array_member); + } - tprints("}"); + tprints("}"); +} + +static void +keyctl_pkey_query(struct tcb *const tcp, + const key_serial_t id, + const kernel_ulong_t reserved, + const kernel_ulong_t /* char * */ info, + const kernel_ulong_t /* keyctl_pkey_query * */ res) +{ + if (entering(tcp)) { + print_keyring_serial_number(id); + tprints(", "); + tprintf("%#" PRI_klx, reserved); + tprints(", "); + printstr(tcp, info); + tprints(", "); + } else { + print_pkey_query(tcp, res); + } +} + +static bool +fetch_print_pkey_params(struct tcb *tcp, kernel_ulong_t addr, + struct keyctl_pkey_params *params, bool out) +{ + if (umove_or_printaddr(tcp, addr, params)) + return false; + + tprints("{key_id="); + print_keyring_serial_number(params->key_id); + + PRINT_FIELD_U(", ", *params, in_len); + + if (out) + PRINT_FIELD_U(", ", *params, out_len); + else + PRINT_FIELD_U(", ", *params, in2_len); + + if (!IS_ARRAY_ZERO(params->__spare)) { + PRINT_FIELD_ARRAY(", ", *params, __spare, tcp, + print_xint32_array_member); + } + + tprints("}"); + + return true; +} + +static int +keyctl_pkey_op(struct tcb *const tcp, + const kernel_ulong_t /* keyctl_pkey_params * */ params_addr, + const kernel_ulong_t /* char * */ info, + const kernel_ulong_t /* void * */ op1, + const kernel_ulong_t /* void * */ op2, + bool out) +{ + if (entering(tcp)) { + struct keyctl_pkey_params params; + bool ret; + + ret = fetch_print_pkey_params(tcp, params_addr, ¶ms, out); + if (ret && out) + set_tcb_priv_ulong(tcp, params.out_len); + + tprints(", "); + printstr(tcp, info); + tprints(", "); + if (ret) + printstrn(tcp, op1, params.in_len); + else + printaddr(op1); + tprints(", "); + + if (!out || !ret) { + if (ret) + printstrn(tcp, op2, params.in2_len); + else + printaddr(op2); } + + return ret && out ? 0 : RVAL_DECODED; + } else { + unsigned long out_len = get_tcb_priv_ulong(tcp); + + if (syserror(tcp)) + printaddr(op2); + else + printstrn(tcp, op2, out_len); } + + return 0; } static void @@ -293,8 +417,67 @@ keyctl_restrict_keyring(struct tcb *const tcp, printstr(tcp, addr2); } -#include "xlat/key_reqkeys.h" -#include "xlat/keyctl_commands.h" +static void +keyctl_move(struct tcb *const tcp, + const key_serial_t id, + const key_serial_t from, + const key_serial_t to, + const unsigned int flags) +{ + print_keyring_serial_number(id); + tprints(", "); + print_keyring_serial_number(from); + tprints(", "); + print_keyring_serial_number(to); + tprints(", "); + printflags(keyctl_move_flags, flags, "KEYCTL_MOVE_???"); +} + +bool +print_keyctl_caps(struct tcb *tcp, void *elem_buf, size_t elem_size, void *data) +{ + static const struct { + const struct xlat *xlat; + const char *dflt; + } caps[] = { + { keyctl_caps0, "KEYCTL_CAPS0_???" }, + { keyctl_caps1, "KEYCTL_CAPS1_???" }, + }; + + kernel_ulong_t *pos = data; + unsigned char *elem = elem_buf; + + if (*pos < ARRAY_SIZE(caps)) + printflags(caps[*pos].xlat, *elem, caps[*pos].dflt); + else + tprintf("%#hhx", *elem); + + (*pos)++; + + return true; +} + +static void +keyctl_capabilities(struct tcb *const tcp, + const kernel_ulong_t /* char * */ buf, + const kernel_ulong_t buflen) +{ + kernel_ulong_t pos = 0; + unsigned char elem; + + if (entering(tcp)) + return; + + if (syserror(tcp)) { + printaddr(buf); + } else { + print_array(tcp, buf, MIN(buflen, (kernel_ulong_t) tcp->u_rval), + &elem, sizeof(elem), + tfetch_mem, print_keyctl_caps, &pos); + } + + tprintf(", %" PRI_klu, buflen); +} SYS_FUNC(keyctl) { @@ -394,10 +577,31 @@ SYS_FUNC(keyctl) keyctl_dh_compute(tcp, arg2, arg3, arg4, arg5); return 0; + case KEYCTL_PKEY_QUERY: + keyctl_pkey_query(tcp, arg2, arg3, arg4, arg5); + return 0; + + case KEYCTL_PKEY_ENCRYPT: + case KEYCTL_PKEY_DECRYPT: + case KEYCTL_PKEY_SIGN: + return keyctl_pkey_op(tcp, arg2, arg3, arg4, arg5, true); + + case KEYCTL_PKEY_VERIFY: + keyctl_pkey_op(tcp, arg2, arg3, arg4, arg5, false); + break; + case KEYCTL_RESTRICT_KEYRING: keyctl_restrict_keyring(tcp, arg2, arg3, arg4); break; + case KEYCTL_MOVE: + keyctl_move(tcp, arg2, arg3, arg4, arg5); + break; + + case KEYCTL_CAPABILITIES: + keyctl_capabilities(tcp, arg2, arg3); + return 0; + default: tprintf("%#" PRI_klx ", %#" PRI_klx ", %#" PRI_klx ", %#" PRI_klx, diff --git a/kvm.c b/kvm.c index 984a75e8..5de41b2d 100644 --- a/kvm.c +++ b/kvm.c @@ -76,10 +76,9 @@ vcpu_register(struct tcb *const tcp, int fd, int cpuid) struct vcpu_info *vcpu_info = vcpu_find(tcp, fd); - if (!vcpu_info) - vcpu_info = vcpu_alloc(tcp, fd, cpuid); - else if (vcpu_info->cpuid != cpuid) - { + if (!vcpu_info) { + vcpu_alloc(tcp, fd, cpuid); + } else if (vcpu_info->cpuid != cpuid) { vcpu_info->cpuid = cpuid; vcpu_info->resolved = false; } @@ -309,7 +308,7 @@ kvm_ioctl_decode_check_extension(struct tcb *const tcp, const unsigned int code, const kernel_ulong_t arg) { tprints(", "); - printxval_index(kvm_cap, arg, "KVM_CAP_???"); + printxval64(kvm_cap, arg, "KVM_CAP_???"); return RVAL_IOCTL_DECODED; } @@ -327,8 +326,7 @@ kvm_ioctl_run_attach_auxstr(struct tcb *const tcp, if (umove(tcp, info->mmap_addr, &vcpu_run_struct) < 0) return; - tcp->auxstr = xlat_idx(kvm_exit_reason, ARRAY_SIZE(kvm_exit_reason) - 1, - vcpu_run_struct.exit_reason); + tcp->auxstr = xlookup(kvm_exit_reason, vcpu_run_struct.exit_reason); if (!tcp->auxstr) tcp->auxstr = "KVM_EXIT_???"; } diff --git a/largefile_wrappers.h b/largefile_wrappers.h index 902dc98a..bde4eb1b 100644 --- a/largefile_wrappers.h +++ b/largefile_wrappers.h @@ -1,8 +1,8 @@ /* * Wrappers for handling discrepancies in LF64-themed syscalls availability and - * necessity between verious architectures and kernel veriosns. + * necessity between various architectures and kernel versions. * - * Copyright (c) 2012-2019 The strace developers. + * Copyright (c) 2012-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -24,6 +24,12 @@ # else # define fopen_stream fopen # endif +# ifdef HAVE_FCNTL64 +# define fcntl_fd fcntl64 +# else +# define fcntl_fd fcntl +# endif +# define fstat_fd fstat64 # define strace_stat_t struct stat64 # define stat_file stat64 # define struct_dirent struct dirent64 @@ -33,6 +39,8 @@ # else # define open_file open # define fopen_stream fopen +# define fcntl_fd fcntl +# define fstat_fd fstat # define strace_stat_t struct stat # define stat_file stat # define struct_dirent struct dirent diff --git a/link.c b/link.c index 3171f9f9..889e320d 100644 --- a/link.c +++ b/link.c @@ -5,7 +5,7 @@ * Copyright (c) 1996-1999 Wichert Akkerman * Copyright (c) 2006 Ulrich Drepper * Copyright (c) 2006 Bernhard Kaindl - * Copyright (c) 2006-2018 Dmitry V. Levin + * Copyright (c) 2006-2019 Dmitry V. Levin * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -29,9 +29,11 @@ SYS_FUNC(link) SYS_FUNC(linkat) { print_dirfd(tcp, tcp->u_arg[0]); + tprints(", "); printpath(tcp, tcp->u_arg[1]); tprints(", "); print_dirfd(tcp, tcp->u_arg[2]); + tprints(", "); printpath(tcp, tcp->u_arg[3]); tprints(", "); printflags(at_flags, tcp->u_arg[4], "AT_???"); @@ -42,6 +44,7 @@ SYS_FUNC(linkat) SYS_FUNC(unlinkat) { print_dirfd(tcp, tcp->u_arg[0]); + tprints(", "); printpath(tcp, tcp->u_arg[1]); tprints(", "); printflags(at_flags, tcp->u_arg[2], "AT_???"); @@ -54,6 +57,7 @@ SYS_FUNC(symlinkat) printpath(tcp, tcp->u_arg[0]); tprints(", "); print_dirfd(tcp, tcp->u_arg[1]); + tprints(", "); printpath(tcp, tcp->u_arg[2]); return RVAL_DECODED; diff --git a/linux/32/ioctls_inc_align16.h b/linux/32/ioctls_inc_align16.h index a58d10d9..a309f14c 100644 --- a/linux/32/ioctls_inc_align16.h +++ b/linux/32/ioctls_inc_align16.h @@ -81,8 +81,8 @@ { "asm-generic/sockios.h", "FIOSETOWN", 0, 0x8901, 0 }, { "asm-generic/sockios.h", "SIOCATMARK", 0, 0x8905, 0 }, { "asm-generic/sockios.h", "SIOCGPGRP", 0, 0x8904, 0 }, -{ "asm-generic/sockios.h", "SIOCGSTAMP", 0, 0x8906, 0 }, -{ "asm-generic/sockios.h", "SIOCGSTAMPNS", 0, 0x8907, 0 }, +{ "asm-generic/sockios.h", "SIOCGSTAMPNS_OLD", 0, 0x8907, 0 }, +{ "asm-generic/sockios.h", "SIOCGSTAMP_OLD", 0, 0x8906, 0 }, { "asm-generic/sockios.h", "SIOCSPGRP", 0, 0x8902, 0 }, { "drm/amdgpu_drm.h", "DRM_IOCTL_AMDGPU_BO_LIST", _IOC_READ|_IOC_WRITE, 0x6443, 0x18 }, { "drm/amdgpu_drm.h", "DRM_IOCTL_AMDGPU_CS", _IOC_READ|_IOC_WRITE, 0x6444, 0x18 }, @@ -155,6 +155,7 @@ { "drm/drm.h", "DRM_IOCTL_MODE_GETCRTC", _IOC_READ|_IOC_WRITE, 0x64a1, 0x68 }, { "drm/drm.h", "DRM_IOCTL_MODE_GETENCODER", _IOC_READ|_IOC_WRITE, 0x64a6, 0x14 }, { "drm/drm.h", "DRM_IOCTL_MODE_GETFB", _IOC_READ|_IOC_WRITE, 0x64ad, 0x1c }, +{ "drm/drm.h", "DRM_IOCTL_MODE_GETFB2", _IOC_READ|_IOC_WRITE, 0x64ce, 0x64 }, { "drm/drm.h", "DRM_IOCTL_MODE_GETGAMMA", _IOC_READ|_IOC_WRITE, 0x64a4, 0x20 }, { "drm/drm.h", "DRM_IOCTL_MODE_GETPLANE", _IOC_READ|_IOC_WRITE, 0x64b6, 0x20 }, { "drm/drm.h", "DRM_IOCTL_MODE_GETPLANERESOURCES", _IOC_READ|_IOC_WRITE, 0x64b5, 0x0c }, @@ -193,8 +194,12 @@ { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_DESTROY", _IOC_READ|_IOC_WRITE, 0x64c0, 0x08 }, { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_FD_TO_HANDLE", _IOC_READ|_IOC_WRITE, 0x64c2, 0x10 }, { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD", _IOC_READ|_IOC_WRITE, 0x64c1, 0x10 }, +{ "drm/drm.h", "DRM_IOCTL_SYNCOBJ_QUERY", _IOC_READ|_IOC_WRITE, 0x64cb, 0x18 }, { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_RESET", _IOC_READ|_IOC_WRITE, 0x64c4, 0x10 }, { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_SIGNAL", _IOC_READ|_IOC_WRITE, 0x64c5, 0x10 }, +{ "drm/drm.h", "DRM_IOCTL_SYNCOBJ_TIMELINE_SIGNAL", _IOC_READ|_IOC_WRITE, 0x64cd, 0x18 }, +{ "drm/drm.h", "DRM_IOCTL_SYNCOBJ_TIMELINE_WAIT", _IOC_READ|_IOC_WRITE, 0x64ca, 0x28 }, +{ "drm/drm.h", "DRM_IOCTL_SYNCOBJ_TRANSFER", _IOC_READ|_IOC_WRITE, 0x64cc, 0x20 }, { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_WAIT", _IOC_READ|_IOC_WRITE, 0x64c3, 0x20 }, { "drm/drm.h", "DRM_IOCTL_UNBLOCK", _IOC_READ|_IOC_WRITE, 0x6413, 0x04 }, { "drm/drm.h", "DRM_IOCTL_UNLOCK", _IOC_WRITE, 0x642b, 0x08 }, @@ -247,6 +252,7 @@ { "drm/i915_drm.h", "DRM_IOCTL_I915_FREE", _IOC_WRITE, 0x6449, 0x08 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_BUSY", _IOC_READ|_IOC_WRITE, 0x6457, 0x08 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_CONTEXT_CREATE", _IOC_READ|_IOC_WRITE, 0x646d, 0x08 }, +{ "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT", _IOC_READ|_IOC_WRITE, 0x646d, 0x10 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_CONTEXT_DESTROY", _IOC_WRITE, 0x646e, 0x08 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM", _IOC_READ|_IOC_WRITE, 0x6474, 0x18 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM", _IOC_READ|_IOC_WRITE, 0x6475, 0x18 }, @@ -263,6 +269,7 @@ { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_MADVISE", _IOC_READ|_IOC_WRITE, 0x6466, 0x0c }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_MMAP", _IOC_READ|_IOC_WRITE, 0x645e, 0x28 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_MMAP_GTT", _IOC_READ|_IOC_WRITE, 0x6464, 0x10 }, +{ "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_MMAP_OFFSET", _IOC_READ|_IOC_WRITE, 0x6464, 0x20 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_PIN", _IOC_READ|_IOC_WRITE, 0x6455, 0x18 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_PREAD", _IOC_WRITE, 0x645c, 0x20 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_PWRITE", _IOC_WRITE, 0x645d, 0x20 }, @@ -273,6 +280,8 @@ { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_THROTTLE", _IOC_NONE, 0x6458, 0x00 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_UNPIN", _IOC_WRITE, 0x6456, 0x08 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_USERPTR", _IOC_READ|_IOC_WRITE, 0x6473, 0x18 }, +{ "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_VM_CREATE", _IOC_READ|_IOC_WRITE, 0x647a, 0x10 }, +{ "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_VM_DESTROY", _IOC_WRITE, 0x647b, 0x10 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_WAIT", _IOC_READ|_IOC_WRITE, 0x646c, 0x10 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GETPARAM", _IOC_READ|_IOC_WRITE, 0x6446, 0x08 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GET_PIPE_FROM_CRTC_ID", _IOC_READ|_IOC_WRITE, 0x6465, 0x08 }, @@ -295,8 +304,16 @@ { "drm/i915_drm.h", "DRM_IOCTL_I915_SET_SPRITE_COLORKEY", _IOC_READ|_IOC_WRITE, 0x646b, 0x14 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_SET_VBLANK_PIPE", _IOC_WRITE, 0x644d, 0x04 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_VBLANK_SWAP", _IOC_READ|_IOC_WRITE, 0x644f, 0x0c }, +{ "drm/i915_drm.h", "I915_PERF_IOCTL_CONFIG", _IOC_NONE, 0x6902, 0x00 }, { "drm/i915_drm.h", "I915_PERF_IOCTL_DISABLE", _IOC_NONE, 0x6901, 0x00 }, { "drm/i915_drm.h", "I915_PERF_IOCTL_ENABLE", _IOC_NONE, 0x6900, 0x00 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_CTX_CREATE", _IOC_READ, 0x6445, 0x08 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_CTX_FREE", _IOC_WRITE, 0x6446, 0x08 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_GEM_CREATE", _IOC_READ|_IOC_WRITE, 0x6441, 0x10 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_GEM_INFO", _IOC_READ|_IOC_WRITE, 0x6442, 0x10 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_GEM_SUBMIT", _IOC_WRITE, 0x6443, 0x30 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_GEM_WAIT", _IOC_WRITE, 0x6444, 0x10 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6440, 0x10 }, { "drm/mga_drm.h", "DRM_IOCTL_MGA_BLIT", _IOC_WRITE, 0x6448, 0x34 }, { "drm/mga_drm.h", "DRM_IOCTL_MGA_CLEAR", _IOC_WRITE, 0x6444, 0x14 }, { "drm/mga_drm.h", "DRM_IOCTL_MGA_DMA_BOOTSTRAP", _IOC_READ|_IOC_WRITE, 0x644c, 0x1a }, @@ -315,10 +332,11 @@ { "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_INFO", _IOC_READ|_IOC_WRITE, 0x6443, 0x18 }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_MADVISE", _IOC_READ|_IOC_WRITE, 0x6448, 0x0c }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_NEW", _IOC_READ|_IOC_WRITE, 0x6442, 0x10 }, -{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_SUBMIT", _IOC_READ|_IOC_WRITE, 0x6446, 0x28 }, +{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_SUBMIT", _IOC_READ|_IOC_WRITE, 0x6446, 0x48 }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6440, 0x10 }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_SUBMITQUEUE_CLOSE", _IOC_WRITE, 0x644b, 0x04 }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_SUBMITQUEUE_NEW", _IOC_READ|_IOC_WRITE, 0x644a, 0x0c }, +{ "drm/msm_drm.h", "DRM_IOCTL_MSM_SUBMITQUEUE_QUERY", _IOC_WRITE, 0x644c, 0x18 }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_WAIT_FENCE", _IOC_WRITE, 0x6447, 0x1c }, { "drm/nouveau_drm.h", "DRM_IOCTL_NOUVEAU_GEM_CPU_FINI", _IOC_WRITE, 0x6483, 0x04 }, { "drm/nouveau_drm.h", "DRM_IOCTL_NOUVEAU_GEM_CPU_PREP", _IOC_WRITE, 0x6482, 0x08 }, @@ -333,6 +351,15 @@ { "drm/omap_drm.h", "DRM_IOCTL_OMAP_GEM_NEW", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 }, { "drm/omap_drm.h", "DRM_IOCTL_OMAP_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6440, 0x10 }, { "drm/omap_drm.h", "DRM_IOCTL_OMAP_SET_PARAM", _IOC_WRITE, 0x6441, 0x10 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_CREATE_BO", _IOC_READ|_IOC_WRITE, 0x6442, 0x18 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_GET_BO_OFFSET", _IOC_READ|_IOC_WRITE, 0x6445, 0x10 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6444, 0x10 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_MADVISE", _IOC_READ|_IOC_WRITE, 0x6448, 0x0c }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_MMAP_BO", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_PERFCNT_DUMP", _IOC_WRITE, 0x6447, 0x08 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_PERFCNT_ENABLE", _IOC_WRITE, 0x6446, 0x08 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_SUBMIT", _IOC_WRITE, 0x6440, 0x28 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_WAIT_BO", _IOC_WRITE, 0x6441, 0x10 }, { "drm/qxl_drm.h", "DRM_IOCTL_QXL_ALLOC", _IOC_READ|_IOC_WRITE, 0x6440, 0x08 }, { "drm/qxl_drm.h", "DRM_IOCTL_QXL_ALLOC_SURF", _IOC_READ|_IOC_WRITE, 0x6446, 0x18 }, { "drm/qxl_drm.h", "DRM_IOCTL_QXL_CLIENTCAP", _IOC_WRITE, 0x6445, 0x08 }, @@ -428,6 +455,7 @@ { "drm/v3d_drm.h", "DRM_IOCTL_V3D_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6444, 0x10 }, { "drm/v3d_drm.h", "DRM_IOCTL_V3D_MMAP_BO", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 }, { "drm/v3d_drm.h", "DRM_IOCTL_V3D_SUBMIT_CL", _IOC_READ|_IOC_WRITE, 0x6440, 0x38 }, +{ "drm/v3d_drm.h", "DRM_IOCTL_V3D_SUBMIT_CSD", _IOC_WRITE, 0x6447, 0x40 }, { "drm/v3d_drm.h", "DRM_IOCTL_V3D_SUBMIT_TFU", _IOC_WRITE, 0x6446, 0x44 }, { "drm/v3d_drm.h", "DRM_IOCTL_V3D_WAIT_BO", _IOC_READ|_IOC_WRITE, 0x6441, 0x10 }, { "drm/vc4_drm.h", "DRM_IOCTL_VC4_CREATE_BO", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 }, @@ -537,6 +565,8 @@ { "linux/arcfb.h", "FBIO_WAITEVENT", _IOC_NONE, 0x4688, 0x00 }, { "linux/aspeed-lpc-ctrl.h", "ASPEED_LPC_CTRL_IOCTL_GET_SIZE", _IOC_READ|_IOC_WRITE, 0xb200, 0x10 }, { "linux/aspeed-lpc-ctrl.h", "ASPEED_LPC_CTRL_IOCTL_MAP", _IOC_WRITE, 0xb201, 0x10 }, +{ "linux/aspeed-p2a-ctrl.h", "ASPEED_P2A_CTRL_IOCTL_GET_MEMORY_CONFIG", _IOC_READ|_IOC_WRITE, 0xb301, 0x10 }, +{ "linux/aspeed-p2a-ctrl.h", "ASPEED_P2A_CTRL_IOCTL_SET_WINDOW", _IOC_WRITE, 0xb300, 0x10 }, { "linux/atm_eni.h", "ENI_MEMDUMP", _IOC_WRITE, 0x6160, 0x0c }, { "linux/atm_eni.h", "ENI_SETMULT", _IOC_WRITE, 0x6167, 0x0c }, { "linux/atm_he.h", "HE_GET_REG", _IOC_WRITE, 0x6160, 0x0c }, @@ -613,8 +643,11 @@ { "linux/auto_fs.h", "AUTOFS_IOC_SETTIMEOUT", _IOC_READ|_IOC_WRITE, 0x9364, 0x04 }, { "linux/auto_fs.h", "AUTOFS_IOC_SETTIMEOUT32", _IOC_READ|_IOC_WRITE, 0x9364, 0x04 }, { "linux/blkpg.h", "BLKPG", _IOC_NONE, 0x1269, 0x00 }, +{ "linux/blkzoned.h", "BLKCLOSEZONE", _IOC_WRITE, 0x1287, 0x10 }, +{ "linux/blkzoned.h", "BLKFINISHZONE", _IOC_WRITE, 0x1288, 0x10 }, { "linux/blkzoned.h", "BLKGETNRZONES", _IOC_READ, 0x1285, 0x04 }, { "linux/blkzoned.h", "BLKGETZONESZ", _IOC_READ, 0x1284, 0x04 }, +{ "linux/blkzoned.h", "BLKOPENZONE", _IOC_WRITE, 0x1286, 0x10 }, { "linux/blkzoned.h", "BLKREPORTZONE", _IOC_READ|_IOC_WRITE, 0x1282, 0x10 }, { "linux/blkzoned.h", "BLKRESETZONE", _IOC_WRITE, 0x1283, 0x10 }, { "linux/bt-bmc.h", "BT_BMC_IOCTL_SMS_ATN", _IOC_NONE, 0xb100, 0x00 }, @@ -664,6 +697,7 @@ { "linux/btrfs.h", "BTRFS_IOC_SNAP_CREATE", _IOC_WRITE, 0x9401, 0x1000 }, { "linux/btrfs.h", "BTRFS_IOC_SNAP_CREATE_V2", _IOC_WRITE, 0x9417, 0x1000 }, { "linux/btrfs.h", "BTRFS_IOC_SNAP_DESTROY", _IOC_WRITE, 0x940f, 0x1000 }, +{ "linux/btrfs.h", "BTRFS_IOC_SNAP_DESTROY_V2", _IOC_WRITE, 0x943f, 0x1000 }, { "linux/btrfs.h", "BTRFS_IOC_SPACE_INFO", _IOC_READ|_IOC_WRITE, 0x9414, 0x10 }, { "linux/btrfs.h", "BTRFS_IOC_START_SYNC", _IOC_READ, 0x9418, 0x08 }, { "linux/btrfs.h", "BTRFS_IOC_SUBVOL_CREATE", _IOC_WRITE, 0x940e, 0x1000 }, @@ -752,6 +786,7 @@ { "linux/cdrom.h", "DVD_READ_STRUCT", 0, 0x5390, 0 }, { "linux/cdrom.h", "DVD_WRITE_STRUCT", 0, 0x5391, 0 }, { "linux/cec.h", "CEC_ADAP_G_CAPS", _IOC_READ|_IOC_WRITE, 0x6100, 0x4c }, +{ "linux/cec.h", "CEC_ADAP_G_CONNECTOR_INFO", _IOC_READ, 0x610a, 0x44 }, { "linux/cec.h", "CEC_ADAP_G_LOG_ADDRS", _IOC_READ, 0x6103, 0x5c }, { "linux/cec.h", "CEC_ADAP_G_PHYS_ADDR", _IOC_READ, 0x6101, 0x02 }, { "linux/cec.h", "CEC_ADAP_S_LOG_ADDRS", _IOC_READ|_IOC_WRITE, 0x6104, 0x5c }, @@ -787,6 +822,7 @@ { "linux/dm-ioctl.h", "DM_DEV_STATUS", _IOC_READ|_IOC_WRITE, 0xfd07, 0x138 }, { "linux/dm-ioctl.h", "DM_DEV_SUSPEND", _IOC_READ|_IOC_WRITE, 0xfd06, 0x138 }, { "linux/dm-ioctl.h", "DM_DEV_WAIT", _IOC_READ|_IOC_WRITE, 0xfd08, 0x138 }, +{ "linux/dm-ioctl.h", "DM_GET_TARGET_VERSION", _IOC_READ|_IOC_WRITE, 0xfd11, 0x138 }, { "linux/dm-ioctl.h", "DM_LIST_DEVICES", _IOC_READ|_IOC_WRITE, 0xfd02, 0x138 }, { "linux/dm-ioctl.h", "DM_LIST_VERSIONS", _IOC_READ|_IOC_WRITE, 0xfd0d, 0x138 }, { "linux/dm-ioctl.h", "DM_REMOVE_ALL", _IOC_READ|_IOC_WRITE, 0xfd01, 0x138 }, @@ -797,6 +833,9 @@ { "linux/dm-ioctl.h", "DM_TARGET_MSG", _IOC_READ|_IOC_WRITE, 0xfd0e, 0x138 }, { "linux/dm-ioctl.h", "DM_VERSION", _IOC_READ|_IOC_WRITE, 0xfd00, 0x138 }, { "linux/dma-buf.h", "DMA_BUF_IOCTL_SYNC", _IOC_WRITE, 0x6200, 0x08 }, +{ "linux/dma-buf.h", "DMA_BUF_SET_NAME_A", _IOC_WRITE, 0x6201, 0x04 }, +{ "linux/dma-buf.h", "DMA_BUF_SET_NAME_B", _IOC_WRITE, 0x6201, 0x08 }, +{ "linux/dma-heap.h", "DMA_HEAP_IOCTL_ALLOC", _IOC_READ|_IOC_WRITE, 0x4800, 0x18 }, { "linux/dn.h", "OSIOCGNETADDR", _IOC_READ, 0x89e1, 0x04 }, { "linux/dn.h", "OSIOCSNETADDR", _IOC_WRITE, 0x89e0, 0x04 }, { "linux/dn.h", "SIOCGNETADDR", _IOC_READ, 0x89e1, 0x04 }, @@ -953,13 +992,21 @@ { "linux/firewire-cdev.h", "FW_CDEV_IOC_START_ISO", _IOC_WRITE, 0x230a, 0x10 }, { "linux/firewire-cdev.h", "FW_CDEV_IOC_STOP_ISO", _IOC_WRITE, 0x230b, 0x04 }, { "linux/fpga-dfl.h", "DFL_FPGA_CHECK_EXTENSION", _IOC_NONE, 0xb601, 0x00 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_FME_ERR_GET_IRQ_NUM", _IOC_READ, 0xb683, 0x04 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_FME_ERR_SET_IRQ", _IOC_WRITE, 0xb684, 0x08 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_FME_PORT_ASSIGN", _IOC_WRITE, 0xb682, 0x04 }, { "linux/fpga-dfl.h", "DFL_FPGA_FME_PORT_PR", _IOC_NONE, 0xb680, 0x00 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_FME_PORT_RELEASE", _IOC_WRITE, 0xb681, 0x04 }, { "linux/fpga-dfl.h", "DFL_FPGA_GET_API_VERSION", _IOC_NONE, 0xb600, 0x00 }, { "linux/fpga-dfl.h", "DFL_FPGA_PORT_DMA_MAP", _IOC_NONE, 0xb643, 0x00 }, { "linux/fpga-dfl.h", "DFL_FPGA_PORT_DMA_UNMAP", _IOC_NONE, 0xb644, 0x00 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_PORT_ERR_GET_IRQ_NUM", _IOC_READ, 0xb645, 0x04 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_PORT_ERR_SET_IRQ", _IOC_WRITE, 0xb646, 0x08 }, { "linux/fpga-dfl.h", "DFL_FPGA_PORT_GET_INFO", _IOC_NONE, 0xb641, 0x00 }, { "linux/fpga-dfl.h", "DFL_FPGA_PORT_GET_REGION_INFO", _IOC_NONE, 0xb642, 0x00 }, { "linux/fpga-dfl.h", "DFL_FPGA_PORT_RESET", _IOC_NONE, 0xb640, 0x00 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_PORT_UINT_GET_IRQ_NUM", _IOC_READ, 0xb647, 0x04 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_PORT_UINT_SET_IRQ", _IOC_WRITE, 0xb648, 0x08 }, { "linux/fs.h", "BLKALIGNOFF", _IOC_NONE, 0x127a, 0x00 }, { "linux/fs.h", "BLKBSZGET", _IOC_READ, 0x1270, 0x04 }, { "linux/fs.h", "BLKBSZSET", _IOC_WRITE, 0x1271, 0x04 }, @@ -1006,12 +1053,18 @@ { "linux/fs.h", "FS_IOC_GETFLAGS", _IOC_READ, 0x6601, 0x04 }, { "linux/fs.h", "FS_IOC_GETFSLABEL", _IOC_READ, 0x9431, 0x100 }, { "linux/fs.h", "FS_IOC_GETVERSION", _IOC_READ, 0x7601, 0x04 }, -{ "linux/fs.h", "FS_IOC_GET_ENCRYPTION_POLICY", _IOC_WRITE, 0x6615, 0x0c }, -{ "linux/fs.h", "FS_IOC_GET_ENCRYPTION_PWSALT", _IOC_WRITE, 0x6614, 0x10 }, { "linux/fs.h", "FS_IOC_SETFLAGS", _IOC_WRITE, 0x6602, 0x04 }, { "linux/fs.h", "FS_IOC_SETFSLABEL", _IOC_WRITE, 0x9432, 0x100 }, { "linux/fs.h", "FS_IOC_SETVERSION", _IOC_WRITE, 0x7602, 0x04 }, -{ "linux/fs.h", "FS_IOC_SET_ENCRYPTION_POLICY", _IOC_READ, 0x6613, 0x0c }, +{ "linux/fscrypt.h", "FS_IOC_ADD_ENCRYPTION_KEY", _IOC_READ|_IOC_WRITE, 0x6617, 0x50 }, +{ "linux/fscrypt.h", "FS_IOC_GET_ENCRYPTION_KEY_STATUS", _IOC_READ|_IOC_WRITE, 0x661a, 0x80 }, +{ "linux/fscrypt.h", "FS_IOC_GET_ENCRYPTION_NONCE", _IOC_READ, 0x661b, 0x10 }, +{ "linux/fscrypt.h", "FS_IOC_GET_ENCRYPTION_POLICY", _IOC_WRITE, 0x6615, 0x0c }, +{ "linux/fscrypt.h", "FS_IOC_GET_ENCRYPTION_POLICY_EX", _IOC_READ|_IOC_WRITE, 0x6616, 0x09 }, +{ "linux/fscrypt.h", "FS_IOC_GET_ENCRYPTION_PWSALT", _IOC_WRITE, 0x6614, 0x10 }, +{ "linux/fscrypt.h", "FS_IOC_REMOVE_ENCRYPTION_KEY", _IOC_READ|_IOC_WRITE, 0x6618, 0x40 }, +{ "linux/fscrypt.h", "FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS", _IOC_READ|_IOC_WRITE, 0x6619, 0x40 }, +{ "linux/fscrypt.h", "FS_IOC_SET_ENCRYPTION_POLICY", _IOC_READ, 0x6613, 0x0c }, { "linux/fsi.h", "FSI_SCOM_CHECK", _IOC_READ, 0x7300, 0x04 }, { "linux/fsi.h", "FSI_SCOM_READ", _IOC_READ|_IOC_WRITE, 0x7301, 0x1e }, { "linux/fsi.h", "FSI_SCOM_RESET", _IOC_WRITE, 0x7303, 0x04 }, @@ -1035,6 +1088,8 @@ { "linux/fsl_hypervisor.h", "FSL_HV_IOCTL_PARTITION_STOP", _IOC_READ|_IOC_WRITE, 0xaf04, 0x08 }, { "linux/fsl_hypervisor.h", "FSL_HV_IOCTL_SETPROP", _IOC_READ|_IOC_WRITE, 0xaf08, 0x28 }, { "linux/fsmap.h", "FS_IOC_GETFSMAP", _IOC_READ|_IOC_WRITE, 0x583b, 0xc0 }, +{ "linux/fsverity.h", "FS_IOC_ENABLE_VERITY", _IOC_WRITE, 0x6685, 0x80 }, +{ "linux/fsverity.h", "FS_IOC_MEASURE_VERITY", _IOC_READ|_IOC_WRITE, 0x6686, 0x04 }, { "linux/fuse.h", "FUSE_DEV_IOC_CLONE", _IOC_READ, 0xe500, 0x04 }, { "linux/genwqe/genwqe_card.h", "GENWQE_EXECUTE_DDCB", _IOC_READ|_IOC_WRITE, 0xa532, 0xe8 }, { "linux/genwqe/genwqe_card.h", "GENWQE_EXECUTE_RAW_DDCB", _IOC_READ|_IOC_WRITE, 0xa533, 0xe8 }, @@ -1049,19 +1104,19 @@ { "linux/genwqe/genwqe_card.h", "GENWQE_WRITE_REG16", _IOC_WRITE, 0xa523, 0x10 }, { "linux/genwqe/genwqe_card.h", "GENWQE_WRITE_REG32", _IOC_WRITE, 0xa521, 0x10 }, { "linux/genwqe/genwqe_card.h", "GENWQE_WRITE_REG64", _IOC_WRITE, 0xa51f, 0x10 }, -{ "linux/gigaset_dev.h", "GIGASET_BRKCHARS", _IOC_WRITE, 0x4702, 0x06 }, -{ "linux/gigaset_dev.h", "GIGASET_CONFIG", _IOC_READ|_IOC_WRITE, 0x4701, 0x04 }, -{ "linux/gigaset_dev.h", "GIGASET_REDIR", _IOC_READ|_IOC_WRITE, 0x4700, 0x04 }, -{ "linux/gigaset_dev.h", "GIGASET_VERSION", _IOC_READ|_IOC_WRITE, 0x4703, 0x10 }, { "linux/gpio.h", "GPIOHANDLE_GET_LINE_VALUES_IOCTL", _IOC_READ|_IOC_WRITE, 0xb408, 0x40 }, +{ "linux/gpio.h", "GPIOHANDLE_SET_CONFIG_IOCTL", _IOC_READ|_IOC_WRITE, 0xb40a, 0x54 }, { "linux/gpio.h", "GPIOHANDLE_SET_LINE_VALUES_IOCTL", _IOC_READ|_IOC_WRITE, 0xb409, 0x40 }, { "linux/gpio.h", "GPIO_GET_CHIPINFO_IOCTL", _IOC_READ, 0xb401, 0x44 }, { "linux/gpio.h", "GPIO_GET_LINEEVENT_IOCTL", _IOC_READ|_IOC_WRITE, 0xb404, 0x30 }, { "linux/gpio.h", "GPIO_GET_LINEHANDLE_IOCTL", _IOC_READ|_IOC_WRITE, 0xb403, 0x16c }, { "linux/gpio.h", "GPIO_GET_LINEINFO_IOCTL", _IOC_READ|_IOC_WRITE, 0xb402, 0x48 }, +{ "linux/gpio.h", "GPIO_GET_LINEINFO_UNWATCH_IOCTL", _IOC_READ|_IOC_WRITE, 0xb40c, 0x04 }, +{ "linux/gpio.h", "GPIO_GET_LINEINFO_WATCH_IOCTL", _IOC_READ|_IOC_WRITE, 0xb40b, 0x48 }, { "linux/gsmmux.h", "GSMIOC_DISABLE_NET", _IOC_NONE, 0x4703, 0x00 }, { "linux/gsmmux.h", "GSMIOC_ENABLE_NET", _IOC_WRITE, 0x4702, 0x34 }, { "linux/gsmmux.h", "GSMIOC_GETCONF", _IOC_READ, 0x4700, 0x4c }, +{ "linux/gsmmux.h", "GSMIOC_GETFIRST", _IOC_READ, 0x4704, 0x04 }, { "linux/gsmmux.h", "GSMIOC_SETCONF", _IOC_WRITE, 0x4701, 0x4c }, { "linux/hdreg.h", "HDIO_DRIVE_CMD", 0, 0x031f, 0 }, { "linux/hdreg.h", "HDIO_DRIVE_RESET", 0, 0x031c, 0 }, @@ -1164,6 +1219,7 @@ { "linux/if_pppox.h", "PPPOEIOCSFWD", _IOC_WRITE, 0xb100, 0x04 }, { "linux/if_tun.h", "TUNATTACHFILTER", _IOC_WRITE, 0x54d5, 0x06 }, { "linux/if_tun.h", "TUNDETACHFILTER", _IOC_WRITE, 0x54d6, 0x06 }, +{ "linux/if_tun.h", "TUNGETDEVNETNS", _IOC_NONE, 0x54e3, 0x00 }, { "linux/if_tun.h", "TUNGETFEATURES", _IOC_READ, 0x54cf, 0x04 }, { "linux/if_tun.h", "TUNGETFILTER", _IOC_READ, 0x54db, 0x06 }, { "linux/if_tun.h", "TUNGETIFF", _IOC_READ, 0x54d2, 0x04 }, @@ -1231,44 +1287,11 @@ { "linux/ipmi_bmc.h", "IPMI_BMC_IOCTL_CLEAR_SMS_ATN", _IOC_NONE, 0xb101, 0x00 }, { "linux/ipmi_bmc.h", "IPMI_BMC_IOCTL_FORCE_ABORT", _IOC_NONE, 0xb102, 0x00 }, { "linux/ipmi_bmc.h", "IPMI_BMC_IOCTL_SET_SMS_ATN", _IOC_NONE, 0xb100, 0x00 }, -{ "linux/isdn.h", "IIOCDBGVAR", _IOC_NONE, 0x497f, 0x00 }, -{ "linux/isdn.h", "IIOCDRVCTL", _IOC_NONE, 0x4980, 0x00 }, -{ "linux/isdn.h", "IIOCGETCPS", _IOC_NONE, 0x4915, 0x00 }, -{ "linux/isdn.h", "IIOCGETDVR", _IOC_NONE, 0x4916, 0x00 }, -{ "linux/isdn.h", "IIOCGETMAP", _IOC_NONE, 0x4911, 0x00 }, -{ "linux/isdn.h", "IIOCGETPRF", _IOC_NONE, 0x490f, 0x00 }, -{ "linux/isdn.h", "IIOCGETSET", _IOC_NONE, 0x4908, 0x00 }, -{ "linux/isdn.h", "IIOCNETAIF", _IOC_NONE, 0x4901, 0x00 }, -{ "linux/isdn.h", "IIOCNETALN", _IOC_NONE, 0x4920, 0x00 }, -{ "linux/isdn.h", "IIOCNETANM", _IOC_NONE, 0x4905, 0x00 }, -{ "linux/isdn.h", "IIOCNETASL", _IOC_NONE, 0x4913, 0x00 }, -{ "linux/isdn.h", "IIOCNETDIF", _IOC_NONE, 0x4902, 0x00 }, -{ "linux/isdn.h", "IIOCNETDIL", _IOC_NONE, 0x4914, 0x00 }, -{ "linux/isdn.h", "IIOCNETDLN", _IOC_NONE, 0x4921, 0x00 }, -{ "linux/isdn.h", "IIOCNETDNM", _IOC_NONE, 0x4906, 0x00 }, -{ "linux/isdn.h", "IIOCNETDWRSET", _IOC_NONE, 0x4918, 0x00 }, -{ "linux/isdn.h", "IIOCNETGCF", _IOC_NONE, 0x4904, 0x00 }, -{ "linux/isdn.h", "IIOCNETGNM", _IOC_NONE, 0x4907, 0x00 }, -{ "linux/isdn.h", "IIOCNETGPN", _IOC_NONE, 0x4922, 0x00 }, -{ "linux/isdn.h", "IIOCNETHUP", _IOC_NONE, 0x490b, 0x00 }, -{ "linux/isdn.h", "IIOCNETLCR", _IOC_NONE, 0x4917, 0x00 }, -{ "linux/isdn.h", "IIOCNETSCF", _IOC_NONE, 0x4903, 0x00 }, -{ "linux/isdn.h", "IIOCSETBRJ", _IOC_NONE, 0x490d, 0x00 }, -{ "linux/isdn.h", "IIOCSETGST", _IOC_NONE, 0x490c, 0x00 }, -{ "linux/isdn.h", "IIOCSETMAP", _IOC_NONE, 0x4912, 0x00 }, -{ "linux/isdn.h", "IIOCSETPRF", _IOC_NONE, 0x4910, 0x00 }, -{ "linux/isdn.h", "IIOCSETSET", _IOC_NONE, 0x4909, 0x00 }, -{ "linux/isdn.h", "IIOCSETVER", _IOC_NONE, 0x490a, 0x00 }, -{ "linux/isdn.h", "IIOCSIGPRF", _IOC_NONE, 0x490e, 0x00 }, -{ "linux/isdn_ppp.h", "PPPIOCBUNDLE", _IOC_WRITE, 0x7481, 0x04 }, -{ "linux/isdn_ppp.h", "PPPIOCGCALLINFO", _IOC_READ|_IOC_WRITE, 0x7480, 0x88 }, -{ "linux/isdn_ppp.h", "PPPIOCGCOMPRESSORS", _IOC_READ, 0x7486, 0x20 }, -{ "linux/isdn_ppp.h", "PPPIOCGIFNAME", _IOC_READ, 0x7488, 0x10 }, -{ "linux/isdn_ppp.h", "PPPIOCGMPFLAGS", _IOC_READ, 0x7482, 0x04 }, -{ "linux/isdn_ppp.h", "PPPIOCSCOMPRESSOR", _IOC_WRITE, 0x7487, 0x04 }, -{ "linux/isdn_ppp.h", "PPPIOCSMPFLAGS", _IOC_WRITE, 0x7483, 0x04 }, -{ "linux/isdn_ppp.h", "PPPIOCSMPMRU", _IOC_WRITE, 0x7485, 0x04 }, -{ "linux/isdn_ppp.h", "PPPIOCSMPMTU", _IOC_WRITE, 0x7484, 0x04 }, +{ "linux/isst_if.h", "ISST_IF_GET_PHY_ID", _IOC_READ|_IOC_WRITE, 0xfe01, 0x04 }, +{ "linux/isst_if.h", "ISST_IF_GET_PLATFORM_INFO", _IOC_READ, 0xfe00, 0x04 }, +{ "linux/isst_if.h", "ISST_IF_IO_CMD", _IOC_WRITE, 0xfe02, 0x04 }, +{ "linux/isst_if.h", "ISST_IF_MBOX_COMMAND", _IOC_READ|_IOC_WRITE, 0xfe03, 0x04 }, +{ "linux/isst_if.h", "ISST_IF_MSR_COMMAND", _IOC_READ|_IOC_WRITE, 0xfe04, 0x04 }, { "linux/ivtv.h", "IVTV_IOC_DMA_FRAME", _IOC_WRITE, 0x56c0, 0x38 }, { "linux/ivtv.h", "IVTV_IOC_PASSTHROUGH_MODE", _IOC_WRITE, 0x56c1, 0x04 }, { "linux/ivtvfb.h", "IVTVFB_IOC_DMA_FRAME", _IOC_WRITE, 0x56c0, 0x0c }, @@ -1284,6 +1307,7 @@ { "linux/kcov.h", "KCOV_DISABLE", _IOC_NONE, 0x6365, 0x00 }, { "linux/kcov.h", "KCOV_ENABLE", _IOC_NONE, 0x6364, 0x00 }, { "linux/kcov.h", "KCOV_INIT_TRACE", _IOC_READ, 0x6301, 0x04 }, +{ "linux/kcov.h", "KCOV_REMOTE_ENABLE", _IOC_WRITE, 0x6366, 0x18 }, { "linux/kd.h", "GIO_CMAP", 0, 0x4B70, 0 }, { "linux/kd.h", "GIO_FONT", 0, 0x4B60, 0 }, { "linux/kd.h", "GIO_FONTX", 0, 0x4B6B, 0 }, @@ -1332,6 +1356,7 @@ { "linux/kd.h", "PIO_UNISCRNMAP", 0, 0x4B6A, 0 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_ACQUIRE_VM", _IOC_WRITE, 0x4b15, 0x08 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_ALLOC_MEMORY_OF_GPU", _IOC_READ|_IOC_WRITE, 0x4b16, 0x28 }, +{ "linux/kfd_ioctl.h", "AMDKFD_IOC_ALLOC_QUEUE_GWS", _IOC_READ|_IOC_WRITE, 0x4b1e, 0x10 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_CREATE_EVENT", _IOC_READ|_IOC_WRITE, 0x4b08, 0x20 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_CREATE_QUEUE", _IOC_READ|_IOC_WRITE, 0x4b02, 0x58 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_DBG_ADDRESS_WATCH", _IOC_WRITE, 0x4b0f, 0x10 }, @@ -1356,6 +1381,7 @@ { "linux/kfd_ioctl.h", "AMDKFD_IOC_SET_MEMORY_POLICY", _IOC_WRITE, 0x4b04, 0x20 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_SET_SCRATCH_BACKING_VA", _IOC_READ|_IOC_WRITE, 0x4b11, 0x10 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_SET_TRAP_HANDLER", _IOC_WRITE, 0x4b13, 0x18 }, +{ "linux/kfd_ioctl.h", "AMDKFD_IOC_SMI_EVENTS", _IOC_READ|_IOC_WRITE, 0x4b1f, 0x08 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_UNMAP_MEMORY_FROM_GPU", _IOC_READ|_IOC_WRITE, 0x4b19, 0x18 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_UPDATE_QUEUE", _IOC_WRITE, 0x4b07, 0x18 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_WAIT_EVENTS", _IOC_READ|_IOC_WRITE, 0x4b0c, 0x18 }, @@ -1389,6 +1415,7 @@ { "linux/lirc.h", "LIRC_SET_WIDEBAND_RECEIVER", _IOC_WRITE, 0x6923, 0x04 }, { "linux/loop.h", "LOOP_CHANGE_FD", 0, 0x4C06, 0 }, { "linux/loop.h", "LOOP_CLR_FD", 0, 0x4C01, 0 }, +{ "linux/loop.h", "LOOP_CONFIGURE", 0, 0x4C0A, 0 }, { "linux/loop.h", "LOOP_CTL_ADD", 0, 0x4C80, 0 }, { "linux/loop.h", "LOOP_CTL_GET_FREE", 0, 0x4C82, 0 }, { "linux/loop.h", "LOOP_CTL_REMOVE", 0, 0x4C81, 0 }, @@ -1490,8 +1517,10 @@ { "linux/nsfs.h", "NS_GET_OWNER_UID", _IOC_NONE, 0xb704, 0x00 }, { "linux/nsfs.h", "NS_GET_PARENT", _IOC_NONE, 0xb702, 0x00 }, { "linux/nsfs.h", "NS_GET_USERNS", _IOC_NONE, 0xb701, 0x00 }, +{ "linux/nvme_ioctl.h", "NVME_IOCTL_ADMIN64_CMD", _IOC_READ|_IOC_WRITE, 0x4e47, 0x50 }, { "linux/nvme_ioctl.h", "NVME_IOCTL_ADMIN_CMD", _IOC_READ|_IOC_WRITE, 0x4e41, 0x48 }, { "linux/nvme_ioctl.h", "NVME_IOCTL_ID", _IOC_NONE, 0x4e40, 0x00 }, +{ "linux/nvme_ioctl.h", "NVME_IOCTL_IO64_CMD", _IOC_READ|_IOC_WRITE, 0x4e48, 0x50 }, { "linux/nvme_ioctl.h", "NVME_IOCTL_IO_CMD", _IOC_READ|_IOC_WRITE, 0x4e43, 0x48 }, { "linux/nvme_ioctl.h", "NVME_IOCTL_RESCAN", _IOC_NONE, 0x4e46, 0x00 }, { "linux/nvme_ioctl.h", "NVME_IOCTL_RESET", _IOC_NONE, 0x4e44, 0x00 }, @@ -1531,6 +1560,7 @@ { "linux/omapfb.h", "OMAPFB_WAITFORGO", _IOC_NONE, 0x4f3c, 0x00 }, { "linux/omapfb.h", "OMAPFB_WAITFORVSYNC", _IOC_NONE, 0x4f39, 0x00 }, { "linux/pcitest.h", "PCITEST_BAR", _IOC_NONE, 0x5001, 0x00 }, +{ "linux/pcitest.h", "PCITEST_CLEAR_IRQ", _IOC_NONE, 0x5010, 0x00 }, { "linux/pcitest.h", "PCITEST_COPY", _IOC_WRITE, 0x5006, 0x04 }, { "linux/pcitest.h", "PCITEST_GET_IRQTYPE", _IOC_NONE, 0x5009, 0x00 }, { "linux/pcitest.h", "PCITEST_LEGACY_IRQ", _IOC_NONE, 0x5002, 0x00 }, @@ -1561,6 +1591,9 @@ { "linux/phantom.h", "PHN_SET_REG", _IOC_WRITE, 0x7001, 0x04 }, { "linux/phantom.h", "PHN_SET_REGS", _IOC_WRITE, 0x7003, 0x04 }, { "linux/pktcdvd.h", "PACKET_CTRL_CMD", _IOC_READ|_IOC_WRITE, 0x5801, 0x18 }, +{ "linux/platform_data/cros_ec_chardev.h", "CROS_EC_DEV_IOCEVENTMASK", _IOC_NONE, 0xec02, 0x00 }, +{ "linux/platform_data/cros_ec_chardev.h", "CROS_EC_DEV_IOCRDMEM", _IOC_READ|_IOC_WRITE, 0xec01, 0x108 }, +{ "linux/platform_data/cros_ec_chardev.h", "CROS_EC_DEV_IOCXCMD", _IOC_READ|_IOC_WRITE, 0xec00, 0x14 }, { "linux/platform_data/media/si4713.h", "SI4713_IOC_MEASURE_RNL", _IOC_READ|_IOC_WRITE, 0x56c0, 0x1c }, { "linux/pmu.h", "PMU_IOC_CAN_SLEEP", _IOC_READ, 0x4205, 0x04 }, { "linux/pmu.h", "PMU_IOC_GET_BACKLIGHT", _IOC_READ, 0x4201, 0x04 }, @@ -1602,6 +1635,8 @@ { "linux/ppp-ioctl.h", "PPPIOCGDEBUG", _IOC_READ, 0x7441, 0x04 }, { "linux/ppp-ioctl.h", "PPPIOCGFLAGS", _IOC_READ, 0x745a, 0x04 }, { "linux/ppp-ioctl.h", "PPPIOCGIDLE", _IOC_READ, 0x743f, 0x08 }, +{ "linux/ppp-ioctl.h", "PPPIOCGIDLE32", _IOC_READ, 0x743f, 0x08 }, +{ "linux/ppp-ioctl.h", "PPPIOCGIDLE64", _IOC_READ, 0x743f, 0x10 }, { "linux/ppp-ioctl.h", "PPPIOCGL2TPSTATS", _IOC_READ, 0x7436, 0x48 }, { "linux/ppp-ioctl.h", "PPPIOCGMRU", _IOC_READ, 0x7453, 0x04 }, { "linux/ppp-ioctl.h", "PPPIOCGNPMODE", _IOC_READ|_IOC_WRITE, 0x744c, 0x08 }, @@ -1635,14 +1670,23 @@ { "linux/pr.h", "IOC_PR_RESERVE", _IOC_WRITE, 0x70c9, 0x10 }, { "linux/psp-sev.h", "SEV_ISSUE_CMD", _IOC_READ|_IOC_WRITE, 0x5300, 0x10 }, { "linux/ptp_clock.h", "PTP_CLOCK_GETCAPS", _IOC_READ, 0x3d01, 0x50 }, +{ "linux/ptp_clock.h", "PTP_CLOCK_GETCAPS2", _IOC_READ, 0x3d0a, 0x50 }, { "linux/ptp_clock.h", "PTP_ENABLE_PPS", _IOC_WRITE, 0x3d04, 0x04 }, +{ "linux/ptp_clock.h", "PTP_ENABLE_PPS2", _IOC_WRITE, 0x3d0d, 0x04 }, { "linux/ptp_clock.h", "PTP_EXTTS_REQUEST", _IOC_WRITE, 0x3d02, 0x10 }, +{ "linux/ptp_clock.h", "PTP_EXTTS_REQUEST2", _IOC_WRITE, 0x3d0b, 0x10 }, { "linux/ptp_clock.h", "PTP_PEROUT_REQUEST", _IOC_WRITE, 0x3d03, 0x38 }, +{ "linux/ptp_clock.h", "PTP_PEROUT_REQUEST2", _IOC_WRITE, 0x3d0c, 0x38 }, { "linux/ptp_clock.h", "PTP_PIN_GETFUNC", _IOC_READ|_IOC_WRITE, 0x3d06, 0x60 }, +{ "linux/ptp_clock.h", "PTP_PIN_GETFUNC2", _IOC_READ|_IOC_WRITE, 0x3d0f, 0x60 }, { "linux/ptp_clock.h", "PTP_PIN_SETFUNC", _IOC_WRITE, 0x3d07, 0x60 }, +{ "linux/ptp_clock.h", "PTP_PIN_SETFUNC2", _IOC_WRITE, 0x3d10, 0x60 }, { "linux/ptp_clock.h", "PTP_SYS_OFFSET", _IOC_WRITE, 0x3d05, 0x340 }, +{ "linux/ptp_clock.h", "PTP_SYS_OFFSET2", _IOC_WRITE, 0x3d0e, 0x340 }, { "linux/ptp_clock.h", "PTP_SYS_OFFSET_EXTENDED", _IOC_READ|_IOC_WRITE, 0x3d09, 0x4c0 }, +{ "linux/ptp_clock.h", "PTP_SYS_OFFSET_EXTENDED2", _IOC_READ|_IOC_WRITE, 0x3d12, 0x4c0 }, { "linux/ptp_clock.h", "PTP_SYS_OFFSET_PRECISE", _IOC_READ|_IOC_WRITE, 0x3d08, 0x40 }, +{ "linux/ptp_clock.h", "PTP_SYS_OFFSET_PRECISE2", _IOC_READ|_IOC_WRITE, 0x3d11, 0x40 }, { "linux/radeonfb.h", "FBIO_RADEON_GET_MIRROR", _IOC_READ, 0x4003, 0x04 }, { "linux/radeonfb.h", "FBIO_RADEON_SET_MIRROR", _IOC_WRITE, 0x4004, 0x04 }, { "linux/raid/md_u.h", "ADD_NEW_DISK", _IOC_WRITE, 0x0921, 0x14 }, @@ -1677,6 +1721,8 @@ { "linux/raw.h", "RAW_GETBIND", _IOC_NONE, 0xac01, 0x00 }, { "linux/raw.h", "RAW_SETBIND", _IOC_NONE, 0xac00, 0x00 }, { "linux/reiserfs_fs.h", "REISERFS_IOC_UNPACK", _IOC_WRITE, 0xcd01, 0x04 }, +{ "linux/remoteproc_cdev.h", "RPROC_GET_SHUTDOWN_ON_RELEASE", _IOC_READ, 0xb702, 0x04 }, +{ "linux/remoteproc_cdev.h", "RPROC_SET_SHUTDOWN_ON_RELEASE", _IOC_WRITE, 0xb701, 0x04 }, { "linux/rfkill.h", "RFKILL_IOCTL_NOINPUT", _IOC_NONE, 0x5201, 0x00 }, { "linux/rio_cm_cdev.h", "RIO_CM_CHAN_ACCEPT", _IOC_READ|_IOC_WRITE, 0x6307, 0x08 }, { "linux/rio_cm_cdev.h", "RIO_CM_CHAN_BIND", _IOC_WRITE, 0x6305, 0x08 }, @@ -1754,7 +1800,8 @@ { "linux/scif_ioctl.h", "SCIF_VREADFROM", _IOC_READ|_IOC_WRITE, 0x730c, 0x24 }, { "linux/scif_ioctl.h", "SCIF_VWRITETO", _IOC_READ|_IOC_WRITE, 0x730d, 0x24 }, { "linux/scif_ioctl.h", "SCIF_WRITETO", _IOC_READ|_IOC_WRITE, 0x730b, 0x24 }, -{ "linux/seccomp.h", "SECCOMP_IOCTL_NOTIF_ID_VALID", _IOC_READ, 0x2102, 0x08 }, +{ "linux/seccomp.h", "SECCOMP_IOCTL_NOTIF_ADDFD", _IOC_WRITE, 0x2103, 0x18 }, +{ "linux/seccomp.h", "SECCOMP_IOCTL_NOTIF_ID_VALID", _IOC_WRITE, 0x2102, 0x08 }, { "linux/seccomp.h", "SECCOMP_IOCTL_NOTIF_RECV", _IOC_READ|_IOC_WRITE, 0x2100, 0x50 }, { "linux/seccomp.h", "SECCOMP_IOCTL_NOTIF_SEND", _IOC_READ|_IOC_WRITE, 0x2101, 0x18 }, { "linux/sed-opal.h", "IOC_OPAL_ACTIVATE_LSP", _IOC_WRITE, 0x70df, 0x118 }, @@ -1762,13 +1809,17 @@ { "linux/sed-opal.h", "IOC_OPAL_ADD_USR_TO_LR", _IOC_WRITE, 0x70e4, 0x118 }, { "linux/sed-opal.h", "IOC_OPAL_ENABLE_DISABLE_MBR", _IOC_WRITE, 0x70e5, 0x110 }, { "linux/sed-opal.h", "IOC_OPAL_ERASE_LR", _IOC_WRITE, 0x70e6, 0x110 }, +{ "linux/sed-opal.h", "IOC_OPAL_GENERIC_TABLE_RW", _IOC_WRITE, 0x70eb, 0x138 }, { "linux/sed-opal.h", "IOC_OPAL_LOCK_UNLOCK", _IOC_WRITE, 0x70dd, 0x118 }, { "linux/sed-opal.h", "IOC_OPAL_LR_SETUP", _IOC_WRITE, 0x70e3, 0x128 }, +{ "linux/sed-opal.h", "IOC_OPAL_MBR_DONE", _IOC_WRITE, 0x70e9, 0x110 }, +{ "linux/sed-opal.h", "IOC_OPAL_PSID_REVERT_TPR", _IOC_WRITE, 0x70e8, 0x108 }, { "linux/sed-opal.h", "IOC_OPAL_REVERT_TPR", _IOC_WRITE, 0x70e2, 0x108 }, { "linux/sed-opal.h", "IOC_OPAL_SAVE", _IOC_WRITE, 0x70dc, 0x118 }, { "linux/sed-opal.h", "IOC_OPAL_SECURE_ERASE_LR", _IOC_WRITE, 0x70e7, 0x110 }, { "linux/sed-opal.h", "IOC_OPAL_SET_PW", _IOC_WRITE, 0x70e0, 0x220 }, { "linux/sed-opal.h", "IOC_OPAL_TAKE_OWNERSHIP", _IOC_WRITE, 0x70de, 0x108 }, +{ "linux/sed-opal.h", "IOC_OPAL_WRITE_SHADOW_MBR", _IOC_WRITE, 0x70ea, 0x120 }, { "linux/serio.h", "SPIOCSTYPE", _IOC_WRITE, 0x7101, 0x04 }, { "linux/sockios.h", "SIOCADDDLCI", 0, 0x8980, 0 }, { "linux/sockios.h", "SIOCADDMULTI", 0, 0x8931, 0 }, @@ -1817,6 +1868,8 @@ { "linux/sockios.h", "SIOCGMIIREG", 0, 0x8948, 0 }, { "linux/sockios.h", "SIOCGRARP", 0, 0x8961, 0 }, { "linux/sockios.h", "SIOCGSKNS", 0, 0x894C, 0 }, +{ "linux/sockios.h", "SIOCGSTAMPNS_NEW", _IOC_READ, 0x8907, 0x10 }, +{ "linux/sockios.h", "SIOCGSTAMP_NEW", _IOC_READ, 0x8906, 0x10 }, { "linux/sockios.h", "SIOCOUTQNSD", 0, 0x894B, 0 }, { "linux/sockios.h", "SIOCPROTOPRIVATE", 0, 0x89E0, 0 }, { "linux/sockios.h", "SIOCRTMSG", 0, 0x890D, 0 }, @@ -1982,7 +2035,8 @@ { "linux/suspend_ioctls.h", "SNAPSHOT_SET_SWAP_AREA", _IOC_WRITE, 0x330d, 0x0c }, { "linux/suspend_ioctls.h", "SNAPSHOT_UNFREEZE", _IOC_NONE, 0x3302, 0x00 }, { "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_CTL", _IOC_READ|_IOC_WRITE, 0x5743, 0x28 }, -{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_SUMMARY", _IOC_READ, 0x5742, 0x198 }, +{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_SUMMARY", _IOC_READ, 0x5742, 0x4d4 }, +{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_SUMMARY_LEGACY", _IOC_READ, 0x5742, 0x198 }, { "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_FLASH_INFO", _IOC_READ, 0x5740, 0x10 }, { "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_FLASH_PART_INFO", _IOC_READ|_IOC_WRITE, 0x5741, 0x10 }, { "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_PFF_TO_PORT", _IOC_READ|_IOC_WRITE, 0x5744, 0x0c }, @@ -2063,6 +2117,22 @@ { "linux/usb/iowarrior.h", "IOW_GETINFO", _IOC_READ, 0xc003, 0x26 }, { "linux/usb/iowarrior.h", "IOW_READ", _IOC_WRITE, 0xc002, 0x04 }, { "linux/usb/iowarrior.h", "IOW_WRITE", _IOC_WRITE, 0xc001, 0x04 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_CONFIGURE", _IOC_NONE, 0x5509, 0x00 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP0_READ", _IOC_READ|_IOC_WRITE, 0x5504, 0x08 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP0_STALL", _IOC_NONE, 0x550c, 0x00 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP0_WRITE", _IOC_WRITE, 0x5503, 0x08 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EPS_INFO", _IOC_READ, 0x550b, 0x384 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_CLEAR_HALT", _IOC_WRITE, 0x550e, 0x04 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_DISABLE", _IOC_WRITE, 0x5506, 0x04 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_ENABLE", _IOC_WRITE, 0x5505, 0x09 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_READ", _IOC_READ|_IOC_WRITE, 0x5508, 0x08 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_SET_HALT", _IOC_WRITE, 0x550d, 0x04 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_SET_WEDGE", _IOC_WRITE, 0x550f, 0x04 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_WRITE", _IOC_WRITE, 0x5507, 0x08 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EVENT_FETCH", _IOC_READ, 0x5502, 0x08 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_INIT", _IOC_WRITE, 0x5500, 0x101 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_RUN", _IOC_NONE, 0x5501, 0x00 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_VBUS_DRAW", _IOC_WRITE, 0x550a, 0x04 }, { "linux/usb/tmc.h", "USBTMC488_IOCTL_GET_CAPS", _IOC_READ, 0x5b11, 0x01 }, { "linux/usb/tmc.h", "USBTMC488_IOCTL_GOTO_LOCAL", _IOC_NONE, 0x5b14, 0x00 }, { "linux/usb/tmc.h", "USBTMC488_IOCTL_LOCAL_LOCKOUT", _IOC_NONE, 0x5b15, 0x00 }, @@ -2090,6 +2160,7 @@ { "linux/usb/tmc.h", "USBTMC_IOCTL_WRITE", _IOC_READ|_IOC_WRITE, 0x5b0d, 0x10 }, { "linux/usb/tmc.h", "USBTMC_IOCTL_WRITE_RESULT", _IOC_READ|_IOC_WRITE, 0x5b0f, 0x04 }, { "linux/usbdevice_fs.h", "USBDEVFS_ALLOC_STREAMS", _IOC_READ, 0x551c, 0x08 }, +{ "linux/usbdevice_fs.h", "USBDEVFS_ALLOW_SUSPEND", _IOC_NONE, 0x5522, 0x00 }, { "linux/usbdevice_fs.h", "USBDEVFS_BULK", _IOC_READ|_IOC_WRITE, 0x5502, 0x10 }, { "linux/usbdevice_fs.h", "USBDEVFS_BULK32", _IOC_READ|_IOC_WRITE, 0x5502, 0x10 }, { "linux/usbdevice_fs.h", "USBDEVFS_CLAIMINTERFACE", _IOC_READ, 0x550f, 0x04 }, @@ -2105,6 +2176,7 @@ { "linux/usbdevice_fs.h", "USBDEVFS_DISCSIGNAL", _IOC_READ, 0x550e, 0x08 }, { "linux/usbdevice_fs.h", "USBDEVFS_DISCSIGNAL32", _IOC_READ, 0x550e, 0x08 }, { "linux/usbdevice_fs.h", "USBDEVFS_DROP_PRIVILEGES", _IOC_WRITE, 0x551e, 0x04 }, +{ "linux/usbdevice_fs.h", "USBDEVFS_FORBID_SUSPEND", _IOC_NONE, 0x5521, 0x00 }, { "linux/usbdevice_fs.h", "USBDEVFS_FREE_STREAMS", _IOC_READ, 0x551d, 0x08 }, { "linux/usbdevice_fs.h", "USBDEVFS_GETDRIVER", _IOC_WRITE, 0x5508, 0x104 }, { "linux/usbdevice_fs.h", "USBDEVFS_GET_CAPABILITIES", _IOC_READ, 0x551a, 0x04 }, @@ -2124,11 +2196,13 @@ { "linux/usbdevice_fs.h", "USBDEVFS_SETINTERFACE", _IOC_READ, 0x5504, 0x08 }, { "linux/usbdevice_fs.h", "USBDEVFS_SUBMITURB", _IOC_READ, 0x550a, 0x2a }, { "linux/usbdevice_fs.h", "USBDEVFS_SUBMITURB32", _IOC_READ, 0x550a, 0x2a }, +{ "linux/usbdevice_fs.h", "USBDEVFS_WAIT_FOR_RESUME", _IOC_NONE, 0x5523, 0x00 }, { "linux/userfaultfd.h", "UFFDIO_API", _IOC_READ|_IOC_WRITE, 0xaa3f, 0x18 }, { "linux/userfaultfd.h", "UFFDIO_COPY", _IOC_READ|_IOC_WRITE, 0xaa03, 0x28 }, { "linux/userfaultfd.h", "UFFDIO_REGISTER", _IOC_READ|_IOC_WRITE, 0xaa00, 0x20 }, { "linux/userfaultfd.h", "UFFDIO_UNREGISTER", _IOC_READ, 0xaa01, 0x10 }, { "linux/userfaultfd.h", "UFFDIO_WAKE", _IOC_READ, 0xaa02, 0x10 }, +{ "linux/userfaultfd.h", "UFFDIO_WRITEPROTECT", _IOC_READ|_IOC_WRITE, 0xaa06, 0x18 }, { "linux/userfaultfd.h", "UFFDIO_ZEROPAGE", _IOC_READ|_IOC_WRITE, 0xaa04, 0x20 }, { "linux/uvcvideo.h", "UVCIOC_CTRL_MAP", _IOC_READ|_IOC_WRITE, 0x7520, 0x58 }, { "linux/uvcvideo.h", "UVCIOC_CTRL_QUERY", _IOC_READ|_IOC_WRITE, 0x7521, 0x0a }, @@ -2139,10 +2213,12 @@ { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_G_FMT", _IOC_READ|_IOC_WRITE, 0x5604, 0x58 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_G_FRAME_INTERVAL", _IOC_READ|_IOC_WRITE, 0x5615, 0x30 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_G_SELECTION", _IOC_READ|_IOC_WRITE, 0x563d, 0x40 }, +{ "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_QUERYCAP", _IOC_READ, 0x5600, 0x40 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_S_CROP", _IOC_READ|_IOC_WRITE, 0x563c, 0x38 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_S_FMT", _IOC_READ|_IOC_WRITE, 0x5605, 0x58 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_S_FRAME_INTERVAL", _IOC_READ|_IOC_WRITE, 0x5616, 0x30 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_S_SELECTION", _IOC_READ|_IOC_WRITE, 0x563e, 0x40 }, +{ "linux/vboxguest.h", "VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES", _IOC_READ|_IOC_WRITE, 0x560d, 0x24 }, { "linux/vboxguest.h", "VBG_IOCTL_CHANGE_FILTER_MASK", _IOC_READ|_IOC_WRITE, 0x560c, 0x20 }, { "linux/vboxguest.h", "VBG_IOCTL_CHANGE_GUEST_CAPABILITIES", _IOC_READ|_IOC_WRITE, 0x560e, 0x20 }, { "linux/vboxguest.h", "VBG_IOCTL_CHECK_BALLOON", _IOC_READ|_IOC_WRITE, 0x5611, 0x20 }, @@ -2150,10 +2226,11 @@ { "linux/vboxguest.h", "VBG_IOCTL_HGCM_CONNECT", _IOC_READ|_IOC_WRITE, 0x5604, 0x9c }, { "linux/vboxguest.h", "VBG_IOCTL_HGCM_DISCONNECT", _IOC_READ|_IOC_WRITE, 0x5605, 0x1c }, { "linux/vboxguest.h", "VBG_IOCTL_INTERRUPT_ALL_WAIT_FOR_EVENTS", _IOC_READ|_IOC_WRITE, 0x560b, 0x18 }, -{ "linux/vboxguest.h", "VBG_IOCTL_VMMDEV_REQUEST_BIG", _IOC_READ|_IOC_WRITE, 0x5603, 0x00 }, +{ "linux/vboxguest.h", "VBG_IOCTL_VMMDEV_REQUEST_BIG", _IOC_NONE, 0x5603, 0x00 }, { "linux/vboxguest.h", "VBG_IOCTL_WAIT_FOR_EVENTS", _IOC_READ|_IOC_WRITE, 0x560a, 0x20 }, { "linux/vboxguest.h", "VBG_IOCTL_WRITE_CORE_DUMP", _IOC_READ|_IOC_WRITE, 0x5613, 0x1c }, { "linux/vfio.h", "VFIO_CHECK_EXTENSION", _IOC_NONE, 0x3b65, 0x00 }, +{ "linux/vfio.h", "VFIO_DEVICE_FEATURE", _IOC_NONE, 0x3b75, 0x00 }, { "linux/vfio.h", "VFIO_DEVICE_GET_GFX_DMABUF", _IOC_NONE, 0x3b73, 0x00 }, { "linux/vfio.h", "VFIO_DEVICE_GET_INFO", _IOC_NONE, 0x3b6b, 0x00 }, { "linux/vfio.h", "VFIO_DEVICE_GET_IRQ_INFO", _IOC_NONE, 0x3b6d, 0x00 }, @@ -2170,6 +2247,7 @@ { "linux/vfio.h", "VFIO_GROUP_GET_STATUS", _IOC_NONE, 0x3b67, 0x00 }, { "linux/vfio.h", "VFIO_GROUP_SET_CONTAINER", _IOC_NONE, 0x3b68, 0x00 }, { "linux/vfio.h", "VFIO_GROUP_UNSET_CONTAINER", _IOC_NONE, 0x3b69, 0x00 }, +{ "linux/vfio.h", "VFIO_IOMMU_DIRTY_PAGES", _IOC_NONE, 0x3b75, 0x00 }, { "linux/vfio.h", "VFIO_IOMMU_DISABLE", _IOC_NONE, 0x3b74, 0x00 }, { "linux/vfio.h", "VFIO_IOMMU_ENABLE", _IOC_NONE, 0x3b73, 0x00 }, { "linux/vfio.h", "VFIO_IOMMU_GET_INFO", _IOC_NONE, 0x3b70, 0x00 }, @@ -2207,6 +2285,14 @@ { "linux/vhost.h", "VHOST_SET_VRING_ERR", _IOC_WRITE, 0xaf22, 0x08 }, { "linux/vhost.h", "VHOST_SET_VRING_KICK", _IOC_WRITE, 0xaf20, 0x08 }, { "linux/vhost.h", "VHOST_SET_VRING_NUM", _IOC_WRITE, 0xaf10, 0x08 }, +{ "linux/vhost.h", "VHOST_VDPA_GET_CONFIG", _IOC_READ, 0xaf73, 0x08 }, +{ "linux/vhost.h", "VHOST_VDPA_GET_DEVICE_ID", _IOC_READ, 0xaf70, 0x04 }, +{ "linux/vhost.h", "VHOST_VDPA_GET_STATUS", _IOC_READ, 0xaf71, 0x01 }, +{ "linux/vhost.h", "VHOST_VDPA_GET_VRING_NUM", _IOC_READ, 0xaf76, 0x02 }, +{ "linux/vhost.h", "VHOST_VDPA_SET_CONFIG", _IOC_WRITE, 0xaf74, 0x08 }, +{ "linux/vhost.h", "VHOST_VDPA_SET_CONFIG_CALL", _IOC_WRITE, 0xaf77, 0x04 }, +{ "linux/vhost.h", "VHOST_VDPA_SET_STATUS", _IOC_WRITE, 0xaf72, 0x01 }, +{ "linux/vhost.h", "VHOST_VDPA_SET_VRING_ENABLE", _IOC_WRITE, 0xaf75, 0x08 }, { "linux/vhost.h", "VHOST_VSOCK_SET_GUEST_CID", _IOC_WRITE, 0xaf60, 0x08 }, { "linux/vhost.h", "VHOST_VSOCK_SET_RUNNING", _IOC_WRITE, 0xaf61, 0x04 }, { "linux/videodev2.h", "VIDIOC_CREATE_BUFS", _IOC_READ|_IOC_WRITE, 0x565c, 0xf8 }, @@ -2215,8 +2301,8 @@ { "linux/videodev2.h", "VIDIOC_DBG_G_REGISTER", _IOC_READ|_IOC_WRITE, 0x5650, 0x38 }, { "linux/videodev2.h", "VIDIOC_DBG_S_REGISTER", _IOC_WRITE, 0x564f, 0x38 }, { "linux/videodev2.h", "VIDIOC_DECODER_CMD", _IOC_READ|_IOC_WRITE, 0x5660, 0x48 }, -{ "linux/videodev2.h", "VIDIOC_DQBUF", _IOC_READ|_IOC_WRITE, 0x5611, 0x44 }, -{ "linux/videodev2.h", "VIDIOC_DQEVENT", _IOC_READ, 0x5659, 0x78 }, +{ "linux/videodev2.h", "VIDIOC_DQBUF", _IOC_READ|_IOC_WRITE, 0x5611, 0x4c }, +{ "linux/videodev2.h", "VIDIOC_DQEVENT", _IOC_READ, 0x5659, 0x80 }, { "linux/videodev2.h", "VIDIOC_DV_TIMINGS_CAP", _IOC_READ|_IOC_WRITE, 0x5664, 0x90 }, { "linux/videodev2.h", "VIDIOC_ENCODER_CMD", _IOC_READ|_IOC_WRITE, 0x564d, 0x28 }, { "linux/videodev2.h", "VIDIOC_ENUMAUDIO", _IOC_READ|_IOC_WRITE, 0x5641, 0x34 }, @@ -2253,9 +2339,9 @@ { "linux/videodev2.h", "VIDIOC_G_TUNER", _IOC_READ|_IOC_WRITE, 0x561d, 0x54 }, { "linux/videodev2.h", "VIDIOC_LOG_STATUS", _IOC_NONE, 0x5646, 0x00 }, { "linux/videodev2.h", "VIDIOC_OVERLAY", _IOC_WRITE, 0x560e, 0x04 }, -{ "linux/videodev2.h", "VIDIOC_PREPARE_BUF", _IOC_READ|_IOC_WRITE, 0x565d, 0x44 }, -{ "linux/videodev2.h", "VIDIOC_QBUF", _IOC_READ|_IOC_WRITE, 0x560f, 0x44 }, -{ "linux/videodev2.h", "VIDIOC_QUERYBUF", _IOC_READ|_IOC_WRITE, 0x5609, 0x44 }, +{ "linux/videodev2.h", "VIDIOC_PREPARE_BUF", _IOC_READ|_IOC_WRITE, 0x565d, 0x4c }, +{ "linux/videodev2.h", "VIDIOC_QBUF", _IOC_READ|_IOC_WRITE, 0x560f, 0x4c }, +{ "linux/videodev2.h", "VIDIOC_QUERYBUF", _IOC_READ|_IOC_WRITE, 0x5609, 0x4c }, { "linux/videodev2.h", "VIDIOC_QUERYCAP", _IOC_READ, 0x5600, 0x68 }, { "linux/videodev2.h", "VIDIOC_QUERYCTRL", _IOC_READ|_IOC_WRITE, 0x5624, 0x44 }, { "linux/videodev2.h", "VIDIOC_QUERYMENU", _IOC_READ|_IOC_WRITE, 0x5625, 0x2c }, @@ -2329,6 +2415,8 @@ { "linux/vt.h", "VT_WAITACTIVE", 0, 0x5607, 0 }, { "linux/vt.h", "VT_WAITEVENT", 0, 0x560E, 0 }, { "linux/vtpm_proxy.h", "VTPM_PROXY_IOC_NEW_DEV", _IOC_READ|_IOC_WRITE, 0xa100, 0x14 }, +{ "linux/watch_queue.h", "IOC_WATCH_QUEUE_SET_FILTER", _IOC_NONE, 0x5761, 0x00 }, +{ "linux/watch_queue.h", "IOC_WATCH_QUEUE_SET_SIZE", _IOC_NONE, 0x5760, 0x00 }, { "linux/watchdog.h", "WDIOC_GETBOOTSTATUS", _IOC_READ, 0x5702, 0x04 }, { "linux/watchdog.h", "WDIOC_GETPRETIMEOUT", _IOC_READ, 0x5709, 0x04 }, { "linux/watchdog.h", "WDIOC_GETSTATUS", _IOC_READ, 0x5701, 0x04 }, @@ -2404,7 +2492,12 @@ { "media/i2c/saa6588.h", "SAA6588_CMD_READ", _IOC_READ, 0x5203, 0x04 }, { "media/v4l2-common.h", "TUNER_SET_CONFIG", _IOC_WRITE, 0x645c, 0x08 }, { "media/v4l2-common.h", "VIDIOC_INT_RESET", _IOC_WRITE, 0x6466, 0x04 }, -{ "media/v4l2-subdev.h", "V4L2_DEVICE_NOTIFY_EVENT", _IOC_WRITE, 0x7602, 0x78 }, +{ "media/v4l2-ioctl.h", "VIDIOC_DQBUF_TIME32", _IOC_READ|_IOC_WRITE, 0x5611, 0x44 }, +{ "media/v4l2-ioctl.h", "VIDIOC_DQEVENT_TIME32", _IOC_READ, 0x5659, 0x78 }, +{ "media/v4l2-ioctl.h", "VIDIOC_PREPARE_BUF_TIME32", _IOC_READ|_IOC_WRITE, 0x565d, 0x44 }, +{ "media/v4l2-ioctl.h", "VIDIOC_QBUF_TIME32", _IOC_READ|_IOC_WRITE, 0x560f, 0x44 }, +{ "media/v4l2-ioctl.h", "VIDIOC_QUERYBUF_TIME32", _IOC_READ|_IOC_WRITE, 0x5609, 0x44 }, +{ "media/v4l2-subdev.h", "V4L2_DEVICE_NOTIFY_EVENT", _IOC_WRITE, 0x7602, 0x80 }, { "media/v4l2-subdev.h", "V4L2_SUBDEV_IR_RX_NOTIFY", _IOC_WRITE, 0x7600, 0x04 }, { "media/v4l2-subdev.h", "V4L2_SUBDEV_IR_TX_NOTIFY", _IOC_WRITE, 0x7601, 0x04 }, { "misc/cxl.h", "CXL_IOCTL_DOWNLOAD_IMAGE", _IOC_WRITE, 0xca0a, 0x40 }, @@ -2417,8 +2510,11 @@ { "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_ATTACH", _IOC_NONE, 0x5204, 0x00 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_CREATE", _IOC_READ|_IOC_WRITE, 0x5205, 0x18 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_INVOKE", _IOC_READ|_IOC_WRITE, 0x5203, 0x10 }, +{ "misc/fastrpc.h", "FASTRPC_IOCTL_MMAP", _IOC_READ|_IOC_WRITE, 0x5206, 0x20 }, +{ "misc/fastrpc.h", "FASTRPC_IOCTL_MUNMAP", _IOC_READ|_IOC_WRITE, 0x5207, 0x10 }, { "misc/habanalabs.h", "HL_IOCTL_CB", _IOC_READ|_IOC_WRITE, 0x4802, 0x18 }, { "misc/habanalabs.h", "HL_IOCTL_CS", _IOC_READ|_IOC_WRITE, 0x4803, 0x2c }, +{ "misc/habanalabs.h", "HL_IOCTL_DEBUG", _IOC_READ|_IOC_WRITE, 0x4806, 0x28 }, { "misc/habanalabs.h", "HL_IOCTL_INFO", _IOC_READ|_IOC_WRITE, 0x4801, 0x18 }, { "misc/habanalabs.h", "HL_IOCTL_MEMORY", _IOC_READ|_IOC_WRITE, 0x4805, 0x28 }, { "misc/habanalabs.h", "HL_IOCTL_WAIT_CS", _IOC_READ|_IOC_WRITE, 0x4804, 0x18 }, @@ -2429,6 +2525,23 @@ { "misc/ocxl.h", "OCXL_IOCTL_IRQ_ALLOC", _IOC_READ, 0xca11, 0x08 }, { "misc/ocxl.h", "OCXL_IOCTL_IRQ_FREE", _IOC_WRITE, 0xca12, 0x08 }, { "misc/ocxl.h", "OCXL_IOCTL_IRQ_SET_FD", _IOC_WRITE, 0xca13, 0x10 }, +{ "misc/uacce/hisi_qm.h", "UACCE_CMD_QM_SET_QP_CTX", _IOC_READ|_IOC_WRITE, 0x480a, 0x04 }, +{ "misc/uacce/uacce.h", "UACCE_CMD_PUT_Q", _IOC_NONE, 0x5701, 0x00 }, +{ "misc/uacce/uacce.h", "UACCE_CMD_START_Q", _IOC_NONE, 0x5700, 0x00 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_ADD_LDPC_CODE_PARAMS", _IOC_WRITE, 0x6605, 0x4a }, +{ "misc/xilinx_sdfec.h", "XSDFEC_CLEAR_STATS", _IOC_NONE, 0x660b, 0x00 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_GET_CONFIG", _IOC_READ, 0x6606, 0x1c }, +{ "misc/xilinx_sdfec.h", "XSDFEC_GET_STATS", _IOC_READ, 0x660c, 0x0c }, +{ "misc/xilinx_sdfec.h", "XSDFEC_GET_STATUS", _IOC_READ, 0x6602, 0x06 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_GET_TURBO", _IOC_READ, 0x6607, 0x06 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_IS_ACTIVE", _IOC_READ, 0x660a, 0x01 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_SET_BYPASS", _IOC_WRITE, 0x6609, 0x01 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_SET_DEFAULT_CONFIG", _IOC_NONE, 0x660d, 0x00 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_SET_IRQ", _IOC_WRITE, 0x6603, 0x02 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_SET_ORDER", _IOC_WRITE, 0x6608, 0x04 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_SET_TURBO", _IOC_WRITE, 0x6604, 0x06 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_START_DEV", _IOC_NONE, 0x6600, 0x00 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_STOP_DEV", _IOC_NONE, 0x6601, 0x00 }, { "mtd/mtd-abi.h", "ECCGETLAYOUT", _IOC_READ, 0x4d11, 0x148 }, { "mtd/mtd-abi.h", "ECCGETSTATS", _IOC_READ, 0x4d12, 0x10 }, { "mtd/mtd-abi.h", "MEMERASE", _IOC_WRITE, 0x4d02, 0x08 }, @@ -2667,7 +2780,8 @@ { "sound/asound.h", "SNDRV_TIMER_IOCTL_START", _IOC_NONE, 0x54a0, 0x00 }, { "sound/asound.h", "SNDRV_TIMER_IOCTL_STATUS", _IOC_READ, 0x5414, 0x58 }, { "sound/asound.h", "SNDRV_TIMER_IOCTL_STOP", _IOC_NONE, 0x54a1, 0x00 }, -{ "sound/asound.h", "SNDRV_TIMER_IOCTL_TREAD", _IOC_WRITE, 0x5402, 0x04 }, +{ "sound/asound.h", "SNDRV_TIMER_IOCTL_TREAD64", _IOC_WRITE, 0x54a4, 0x04 }, +{ "sound/asound.h", "SNDRV_TIMER_IOCTL_TREAD_OLD", _IOC_WRITE, 0x5402, 0x04 }, { "sound/asound_fm.h", "SNDRV_DM_FM_IOCTL_CLEAR_PATCHES", _IOC_NONE, 0x4840, 0x00 }, { "sound/asound_fm.h", "SNDRV_DM_FM_IOCTL_INFO", _IOC_READ, 0x4820, 0x02 }, { "sound/asound_fm.h", "SNDRV_DM_FM_IOCTL_PLAY_NOTE", _IOC_WRITE, 0x4822, 0x08 }, @@ -2725,6 +2839,10 @@ { "sound/hdspm.h", "SNDRV_HDSPM_IOCTL_GET_PEAK_RMS", _IOC_READ, 0x4842, 0x906 }, { "sound/hdspm.h", "SNDRV_HDSPM_IOCTL_GET_STATUS", _IOC_READ, 0x4847, 0x1a }, { "sound/hdspm.h", "SNDRV_HDSPM_IOCTL_GET_VERSION", _IOC_READ, 0x4848, 0x20 }, +{ "sound/pcm.h", "SNDRV_PCM_IOCTL_STATUS32", _IOC_READ, 0x4120, 0x6c }, +{ "sound/pcm.h", "SNDRV_PCM_IOCTL_STATUS64", _IOC_READ, 0x4120, 0x80 }, +{ "sound/pcm.h", "SNDRV_PCM_IOCTL_STATUS_EXT32", _IOC_READ|_IOC_WRITE, 0x4124, 0x6c }, +{ "sound/pcm.h", "SNDRV_PCM_IOCTL_STATUS_EXT64", _IOC_READ|_IOC_WRITE, 0x4124, 0x80 }, { "sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_INFO", _IOC_READ, 0x4810, 0x26 }, { "sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_LOAD_CODE", _IOC_WRITE, 0x4811, 0x3012 }, { "sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_PAUSE", _IOC_NONE, 0x4815, 0x00 }, @@ -2751,15 +2869,6 @@ { "staging/android/ashmem.h", "ASHMEM_UNPIN", _IOC_WRITE, 0x7708, 0x08 }, { "staging/android/ion.h", "ION_IOC_ALLOC", _IOC_READ|_IOC_WRITE, 0x4900, 0x18 }, { "staging/android/ion.h", "ION_IOC_HEAP_QUERY", _IOC_READ|_IOC_WRITE, 0x4908, 0x18 }, -{ "staging/android/vsoc_shm.h", "VSOC_COND_WAIT", _IOC_READ|_IOC_WRITE, 0xf507, 0x20 }, -{ "staging/android/vsoc_shm.h", "VSOC_COND_WAKE", _IOC_NONE, 0xf508, 0x00 }, -{ "staging/android/vsoc_shm.h", "VSOC_CREATE_FD_SCOPED_PERMISSION", _IOC_WRITE, 0xf500, 0x10 }, -{ "staging/android/vsoc_shm.h", "VSOC_DESCRIBE_REGION", _IOC_READ, 0xf504, 0x3c }, -{ "staging/android/vsoc_shm.h", "VSOC_GET_FD_SCOPED_PERMISSION", _IOC_READ, 0xf501, 0x10 }, -{ "staging/android/vsoc_shm.h", "VSOC_MAYBE_SEND_INTERRUPT_TO_HOST", _IOC_NONE, 0xf502, 0x00 }, -{ "staging/android/vsoc_shm.h", "VSOC_SELF_INTERRUPT", _IOC_NONE, 0xf505, 0x00 }, -{ "staging/android/vsoc_shm.h", "VSOC_SEND_INTERRUPT_TO_HOST", _IOC_NONE, 0xf506, 0x00 }, -{ "staging/android/vsoc_shm.h", "VSOC_WAIT_FOR_INCOMING_INTERRUPT", _IOC_NONE, 0xf503, 0x00 }, { "video/da8xx-fb.h", "FBIGET_BRIGHTNESS", _IOC_READ, 0x4603, 0x04 }, { "video/da8xx-fb.h", "FBIGET_COLOR", _IOC_READ, 0x4605, 0x04 }, { "video/da8xx-fb.h", "FBIOGET_CONTRAST", _IOC_READ, 0x4601, 0x04 }, diff --git a/linux/32/ioctls_inc_align32.h b/linux/32/ioctls_inc_align32.h index 92c8c186..0bded58c 100644 --- a/linux/32/ioctls_inc_align32.h +++ b/linux/32/ioctls_inc_align32.h @@ -81,8 +81,8 @@ { "asm-generic/sockios.h", "FIOSETOWN", 0, 0x8901, 0 }, { "asm-generic/sockios.h", "SIOCATMARK", 0, 0x8905, 0 }, { "asm-generic/sockios.h", "SIOCGPGRP", 0, 0x8904, 0 }, -{ "asm-generic/sockios.h", "SIOCGSTAMP", 0, 0x8906, 0 }, -{ "asm-generic/sockios.h", "SIOCGSTAMPNS", 0, 0x8907, 0 }, +{ "asm-generic/sockios.h", "SIOCGSTAMPNS_OLD", 0, 0x8907, 0 }, +{ "asm-generic/sockios.h", "SIOCGSTAMP_OLD", 0, 0x8906, 0 }, { "asm-generic/sockios.h", "SIOCSPGRP", 0, 0x8902, 0 }, { "drm/amdgpu_drm.h", "DRM_IOCTL_AMDGPU_BO_LIST", _IOC_READ|_IOC_WRITE, 0x6443, 0x18 }, { "drm/amdgpu_drm.h", "DRM_IOCTL_AMDGPU_CS", _IOC_READ|_IOC_WRITE, 0x6444, 0x18 }, @@ -155,6 +155,7 @@ { "drm/drm.h", "DRM_IOCTL_MODE_GETCRTC", _IOC_READ|_IOC_WRITE, 0x64a1, 0x68 }, { "drm/drm.h", "DRM_IOCTL_MODE_GETENCODER", _IOC_READ|_IOC_WRITE, 0x64a6, 0x14 }, { "drm/drm.h", "DRM_IOCTL_MODE_GETFB", _IOC_READ|_IOC_WRITE, 0x64ad, 0x1c }, +{ "drm/drm.h", "DRM_IOCTL_MODE_GETFB2", _IOC_READ|_IOC_WRITE, 0x64ce, 0x64 }, { "drm/drm.h", "DRM_IOCTL_MODE_GETGAMMA", _IOC_READ|_IOC_WRITE, 0x64a4, 0x20 }, { "drm/drm.h", "DRM_IOCTL_MODE_GETPLANE", _IOC_READ|_IOC_WRITE, 0x64b6, 0x20 }, { "drm/drm.h", "DRM_IOCTL_MODE_GETPLANERESOURCES", _IOC_READ|_IOC_WRITE, 0x64b5, 0x0c }, @@ -193,8 +194,12 @@ { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_DESTROY", _IOC_READ|_IOC_WRITE, 0x64c0, 0x08 }, { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_FD_TO_HANDLE", _IOC_READ|_IOC_WRITE, 0x64c2, 0x10 }, { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD", _IOC_READ|_IOC_WRITE, 0x64c1, 0x10 }, +{ "drm/drm.h", "DRM_IOCTL_SYNCOBJ_QUERY", _IOC_READ|_IOC_WRITE, 0x64cb, 0x18 }, { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_RESET", _IOC_READ|_IOC_WRITE, 0x64c4, 0x10 }, { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_SIGNAL", _IOC_READ|_IOC_WRITE, 0x64c5, 0x10 }, +{ "drm/drm.h", "DRM_IOCTL_SYNCOBJ_TIMELINE_SIGNAL", _IOC_READ|_IOC_WRITE, 0x64cd, 0x18 }, +{ "drm/drm.h", "DRM_IOCTL_SYNCOBJ_TIMELINE_WAIT", _IOC_READ|_IOC_WRITE, 0x64ca, 0x28 }, +{ "drm/drm.h", "DRM_IOCTL_SYNCOBJ_TRANSFER", _IOC_READ|_IOC_WRITE, 0x64cc, 0x20 }, { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_WAIT", _IOC_READ|_IOC_WRITE, 0x64c3, 0x20 }, { "drm/drm.h", "DRM_IOCTL_UNBLOCK", _IOC_READ|_IOC_WRITE, 0x6413, 0x04 }, { "drm/drm.h", "DRM_IOCTL_UNLOCK", _IOC_WRITE, 0x642b, 0x08 }, @@ -247,6 +252,7 @@ { "drm/i915_drm.h", "DRM_IOCTL_I915_FREE", _IOC_WRITE, 0x6449, 0x08 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_BUSY", _IOC_READ|_IOC_WRITE, 0x6457, 0x08 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_CONTEXT_CREATE", _IOC_READ|_IOC_WRITE, 0x646d, 0x08 }, +{ "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT", _IOC_READ|_IOC_WRITE, 0x646d, 0x10 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_CONTEXT_DESTROY", _IOC_WRITE, 0x646e, 0x08 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM", _IOC_READ|_IOC_WRITE, 0x6474, 0x18 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM", _IOC_READ|_IOC_WRITE, 0x6475, 0x18 }, @@ -263,6 +269,7 @@ { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_MADVISE", _IOC_READ|_IOC_WRITE, 0x6466, 0x0c }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_MMAP", _IOC_READ|_IOC_WRITE, 0x645e, 0x28 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_MMAP_GTT", _IOC_READ|_IOC_WRITE, 0x6464, 0x10 }, +{ "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_MMAP_OFFSET", _IOC_READ|_IOC_WRITE, 0x6464, 0x20 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_PIN", _IOC_READ|_IOC_WRITE, 0x6455, 0x18 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_PREAD", _IOC_WRITE, 0x645c, 0x20 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_PWRITE", _IOC_WRITE, 0x645d, 0x20 }, @@ -273,6 +280,8 @@ { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_THROTTLE", _IOC_NONE, 0x6458, 0x00 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_UNPIN", _IOC_WRITE, 0x6456, 0x08 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_USERPTR", _IOC_READ|_IOC_WRITE, 0x6473, 0x18 }, +{ "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_VM_CREATE", _IOC_READ|_IOC_WRITE, 0x647a, 0x10 }, +{ "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_VM_DESTROY", _IOC_WRITE, 0x647b, 0x10 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_WAIT", _IOC_READ|_IOC_WRITE, 0x646c, 0x10 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GETPARAM", _IOC_READ|_IOC_WRITE, 0x6446, 0x08 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GET_PIPE_FROM_CRTC_ID", _IOC_READ|_IOC_WRITE, 0x6465, 0x08 }, @@ -295,8 +304,16 @@ { "drm/i915_drm.h", "DRM_IOCTL_I915_SET_SPRITE_COLORKEY", _IOC_READ|_IOC_WRITE, 0x646b, 0x14 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_SET_VBLANK_PIPE", _IOC_WRITE, 0x644d, 0x04 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_VBLANK_SWAP", _IOC_READ|_IOC_WRITE, 0x644f, 0x0c }, +{ "drm/i915_drm.h", "I915_PERF_IOCTL_CONFIG", _IOC_NONE, 0x6902, 0x00 }, { "drm/i915_drm.h", "I915_PERF_IOCTL_DISABLE", _IOC_NONE, 0x6901, 0x00 }, { "drm/i915_drm.h", "I915_PERF_IOCTL_ENABLE", _IOC_NONE, 0x6900, 0x00 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_CTX_CREATE", _IOC_READ, 0x6445, 0x08 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_CTX_FREE", _IOC_WRITE, 0x6446, 0x08 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_GEM_CREATE", _IOC_READ|_IOC_WRITE, 0x6441, 0x10 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_GEM_INFO", _IOC_READ|_IOC_WRITE, 0x6442, 0x10 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_GEM_SUBMIT", _IOC_WRITE, 0x6443, 0x30 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_GEM_WAIT", _IOC_WRITE, 0x6444, 0x10 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6440, 0x10 }, { "drm/mga_drm.h", "DRM_IOCTL_MGA_BLIT", _IOC_WRITE, 0x6448, 0x34 }, { "drm/mga_drm.h", "DRM_IOCTL_MGA_CLEAR", _IOC_WRITE, 0x6444, 0x14 }, { "drm/mga_drm.h", "DRM_IOCTL_MGA_DMA_BOOTSTRAP", _IOC_READ|_IOC_WRITE, 0x644c, 0x1c }, @@ -315,10 +332,11 @@ { "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_INFO", _IOC_READ|_IOC_WRITE, 0x6443, 0x18 }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_MADVISE", _IOC_READ|_IOC_WRITE, 0x6448, 0x0c }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_NEW", _IOC_READ|_IOC_WRITE, 0x6442, 0x10 }, -{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_SUBMIT", _IOC_READ|_IOC_WRITE, 0x6446, 0x28 }, +{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_SUBMIT", _IOC_READ|_IOC_WRITE, 0x6446, 0x48 }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6440, 0x10 }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_SUBMITQUEUE_CLOSE", _IOC_WRITE, 0x644b, 0x04 }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_SUBMITQUEUE_NEW", _IOC_READ|_IOC_WRITE, 0x644a, 0x0c }, +{ "drm/msm_drm.h", "DRM_IOCTL_MSM_SUBMITQUEUE_QUERY", _IOC_WRITE, 0x644c, 0x18 }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_WAIT_FENCE", _IOC_WRITE, 0x6447, 0x1c }, { "drm/nouveau_drm.h", "DRM_IOCTL_NOUVEAU_GEM_CPU_FINI", _IOC_WRITE, 0x6483, 0x04 }, { "drm/nouveau_drm.h", "DRM_IOCTL_NOUVEAU_GEM_CPU_PREP", _IOC_WRITE, 0x6482, 0x08 }, @@ -333,6 +351,15 @@ { "drm/omap_drm.h", "DRM_IOCTL_OMAP_GEM_NEW", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 }, { "drm/omap_drm.h", "DRM_IOCTL_OMAP_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6440, 0x10 }, { "drm/omap_drm.h", "DRM_IOCTL_OMAP_SET_PARAM", _IOC_WRITE, 0x6441, 0x10 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_CREATE_BO", _IOC_READ|_IOC_WRITE, 0x6442, 0x18 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_GET_BO_OFFSET", _IOC_READ|_IOC_WRITE, 0x6445, 0x10 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6444, 0x10 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_MADVISE", _IOC_READ|_IOC_WRITE, 0x6448, 0x0c }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_MMAP_BO", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_PERFCNT_DUMP", _IOC_WRITE, 0x6447, 0x08 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_PERFCNT_ENABLE", _IOC_WRITE, 0x6446, 0x08 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_SUBMIT", _IOC_WRITE, 0x6440, 0x28 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_WAIT_BO", _IOC_WRITE, 0x6441, 0x10 }, { "drm/qxl_drm.h", "DRM_IOCTL_QXL_ALLOC", _IOC_READ|_IOC_WRITE, 0x6440, 0x08 }, { "drm/qxl_drm.h", "DRM_IOCTL_QXL_ALLOC_SURF", _IOC_READ|_IOC_WRITE, 0x6446, 0x18 }, { "drm/qxl_drm.h", "DRM_IOCTL_QXL_CLIENTCAP", _IOC_WRITE, 0x6445, 0x08 }, @@ -428,6 +455,7 @@ { "drm/v3d_drm.h", "DRM_IOCTL_V3D_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6444, 0x10 }, { "drm/v3d_drm.h", "DRM_IOCTL_V3D_MMAP_BO", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 }, { "drm/v3d_drm.h", "DRM_IOCTL_V3D_SUBMIT_CL", _IOC_READ|_IOC_WRITE, 0x6440, 0x38 }, +{ "drm/v3d_drm.h", "DRM_IOCTL_V3D_SUBMIT_CSD", _IOC_WRITE, 0x6447, 0x40 }, { "drm/v3d_drm.h", "DRM_IOCTL_V3D_SUBMIT_TFU", _IOC_WRITE, 0x6446, 0x44 }, { "drm/v3d_drm.h", "DRM_IOCTL_V3D_WAIT_BO", _IOC_READ|_IOC_WRITE, 0x6441, 0x10 }, { "drm/vc4_drm.h", "DRM_IOCTL_VC4_CREATE_BO", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 }, @@ -537,6 +565,8 @@ { "linux/arcfb.h", "FBIO_WAITEVENT", _IOC_NONE, 0x4688, 0x00 }, { "linux/aspeed-lpc-ctrl.h", "ASPEED_LPC_CTRL_IOCTL_GET_SIZE", _IOC_READ|_IOC_WRITE, 0xb200, 0x10 }, { "linux/aspeed-lpc-ctrl.h", "ASPEED_LPC_CTRL_IOCTL_MAP", _IOC_WRITE, 0xb201, 0x10 }, +{ "linux/aspeed-p2a-ctrl.h", "ASPEED_P2A_CTRL_IOCTL_GET_MEMORY_CONFIG", _IOC_READ|_IOC_WRITE, 0xb301, 0x10 }, +{ "linux/aspeed-p2a-ctrl.h", "ASPEED_P2A_CTRL_IOCTL_SET_WINDOW", _IOC_WRITE, 0xb300, 0x10 }, { "linux/atm_eni.h", "ENI_MEMDUMP", _IOC_WRITE, 0x6160, 0x0c }, { "linux/atm_eni.h", "ENI_SETMULT", _IOC_WRITE, 0x6167, 0x0c }, { "linux/atm_he.h", "HE_GET_REG", _IOC_WRITE, 0x6160, 0x0c }, @@ -613,8 +643,11 @@ { "linux/auto_fs.h", "AUTOFS_IOC_SETTIMEOUT", _IOC_READ|_IOC_WRITE, 0x9364, 0x04 }, { "linux/auto_fs.h", "AUTOFS_IOC_SETTIMEOUT32", _IOC_READ|_IOC_WRITE, 0x9364, 0x04 }, { "linux/blkpg.h", "BLKPG", _IOC_NONE, 0x1269, 0x00 }, +{ "linux/blkzoned.h", "BLKCLOSEZONE", _IOC_WRITE, 0x1287, 0x10 }, +{ "linux/blkzoned.h", "BLKFINISHZONE", _IOC_WRITE, 0x1288, 0x10 }, { "linux/blkzoned.h", "BLKGETNRZONES", _IOC_READ, 0x1285, 0x04 }, { "linux/blkzoned.h", "BLKGETZONESZ", _IOC_READ, 0x1284, 0x04 }, +{ "linux/blkzoned.h", "BLKOPENZONE", _IOC_WRITE, 0x1286, 0x10 }, { "linux/blkzoned.h", "BLKREPORTZONE", _IOC_READ|_IOC_WRITE, 0x1282, 0x10 }, { "linux/blkzoned.h", "BLKRESETZONE", _IOC_WRITE, 0x1283, 0x10 }, { "linux/bt-bmc.h", "BT_BMC_IOCTL_SMS_ATN", _IOC_NONE, 0xb100, 0x00 }, @@ -664,6 +697,7 @@ { "linux/btrfs.h", "BTRFS_IOC_SNAP_CREATE", _IOC_WRITE, 0x9401, 0x1000 }, { "linux/btrfs.h", "BTRFS_IOC_SNAP_CREATE_V2", _IOC_WRITE, 0x9417, 0x1000 }, { "linux/btrfs.h", "BTRFS_IOC_SNAP_DESTROY", _IOC_WRITE, 0x940f, 0x1000 }, +{ "linux/btrfs.h", "BTRFS_IOC_SNAP_DESTROY_V2", _IOC_WRITE, 0x943f, 0x1000 }, { "linux/btrfs.h", "BTRFS_IOC_SPACE_INFO", _IOC_READ|_IOC_WRITE, 0x9414, 0x10 }, { "linux/btrfs.h", "BTRFS_IOC_START_SYNC", _IOC_READ, 0x9418, 0x08 }, { "linux/btrfs.h", "BTRFS_IOC_SUBVOL_CREATE", _IOC_WRITE, 0x940e, 0x1000 }, @@ -752,6 +786,7 @@ { "linux/cdrom.h", "DVD_READ_STRUCT", 0, 0x5390, 0 }, { "linux/cdrom.h", "DVD_WRITE_STRUCT", 0, 0x5391, 0 }, { "linux/cec.h", "CEC_ADAP_G_CAPS", _IOC_READ|_IOC_WRITE, 0x6100, 0x4c }, +{ "linux/cec.h", "CEC_ADAP_G_CONNECTOR_INFO", _IOC_READ, 0x610a, 0x44 }, { "linux/cec.h", "CEC_ADAP_G_LOG_ADDRS", _IOC_READ, 0x6103, 0x5c }, { "linux/cec.h", "CEC_ADAP_G_PHYS_ADDR", _IOC_READ, 0x6101, 0x02 }, { "linux/cec.h", "CEC_ADAP_S_LOG_ADDRS", _IOC_READ|_IOC_WRITE, 0x6104, 0x5c }, @@ -787,6 +822,7 @@ { "linux/dm-ioctl.h", "DM_DEV_STATUS", _IOC_READ|_IOC_WRITE, 0xfd07, 0x138 }, { "linux/dm-ioctl.h", "DM_DEV_SUSPEND", _IOC_READ|_IOC_WRITE, 0xfd06, 0x138 }, { "linux/dm-ioctl.h", "DM_DEV_WAIT", _IOC_READ|_IOC_WRITE, 0xfd08, 0x138 }, +{ "linux/dm-ioctl.h", "DM_GET_TARGET_VERSION", _IOC_READ|_IOC_WRITE, 0xfd11, 0x138 }, { "linux/dm-ioctl.h", "DM_LIST_DEVICES", _IOC_READ|_IOC_WRITE, 0xfd02, 0x138 }, { "linux/dm-ioctl.h", "DM_LIST_VERSIONS", _IOC_READ|_IOC_WRITE, 0xfd0d, 0x138 }, { "linux/dm-ioctl.h", "DM_REMOVE_ALL", _IOC_READ|_IOC_WRITE, 0xfd01, 0x138 }, @@ -797,6 +833,9 @@ { "linux/dm-ioctl.h", "DM_TARGET_MSG", _IOC_READ|_IOC_WRITE, 0xfd0e, 0x138 }, { "linux/dm-ioctl.h", "DM_VERSION", _IOC_READ|_IOC_WRITE, 0xfd00, 0x138 }, { "linux/dma-buf.h", "DMA_BUF_IOCTL_SYNC", _IOC_WRITE, 0x6200, 0x08 }, +{ "linux/dma-buf.h", "DMA_BUF_SET_NAME_A", _IOC_WRITE, 0x6201, 0x04 }, +{ "linux/dma-buf.h", "DMA_BUF_SET_NAME_B", _IOC_WRITE, 0x6201, 0x08 }, +{ "linux/dma-heap.h", "DMA_HEAP_IOCTL_ALLOC", _IOC_READ|_IOC_WRITE, 0x4800, 0x18 }, { "linux/dn.h", "OSIOCGNETADDR", _IOC_READ, 0x89e1, 0x04 }, { "linux/dn.h", "OSIOCSNETADDR", _IOC_WRITE, 0x89e0, 0x04 }, { "linux/dn.h", "SIOCGNETADDR", _IOC_READ, 0x89e1, 0x04 }, @@ -953,13 +992,21 @@ { "linux/firewire-cdev.h", "FW_CDEV_IOC_START_ISO", _IOC_WRITE, 0x230a, 0x10 }, { "linux/firewire-cdev.h", "FW_CDEV_IOC_STOP_ISO", _IOC_WRITE, 0x230b, 0x04 }, { "linux/fpga-dfl.h", "DFL_FPGA_CHECK_EXTENSION", _IOC_NONE, 0xb601, 0x00 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_FME_ERR_GET_IRQ_NUM", _IOC_READ, 0xb683, 0x04 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_FME_ERR_SET_IRQ", _IOC_WRITE, 0xb684, 0x08 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_FME_PORT_ASSIGN", _IOC_WRITE, 0xb682, 0x04 }, { "linux/fpga-dfl.h", "DFL_FPGA_FME_PORT_PR", _IOC_NONE, 0xb680, 0x00 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_FME_PORT_RELEASE", _IOC_WRITE, 0xb681, 0x04 }, { "linux/fpga-dfl.h", "DFL_FPGA_GET_API_VERSION", _IOC_NONE, 0xb600, 0x00 }, { "linux/fpga-dfl.h", "DFL_FPGA_PORT_DMA_MAP", _IOC_NONE, 0xb643, 0x00 }, { "linux/fpga-dfl.h", "DFL_FPGA_PORT_DMA_UNMAP", _IOC_NONE, 0xb644, 0x00 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_PORT_ERR_GET_IRQ_NUM", _IOC_READ, 0xb645, 0x04 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_PORT_ERR_SET_IRQ", _IOC_WRITE, 0xb646, 0x08 }, { "linux/fpga-dfl.h", "DFL_FPGA_PORT_GET_INFO", _IOC_NONE, 0xb641, 0x00 }, { "linux/fpga-dfl.h", "DFL_FPGA_PORT_GET_REGION_INFO", _IOC_NONE, 0xb642, 0x00 }, { "linux/fpga-dfl.h", "DFL_FPGA_PORT_RESET", _IOC_NONE, 0xb640, 0x00 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_PORT_UINT_GET_IRQ_NUM", _IOC_READ, 0xb647, 0x04 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_PORT_UINT_SET_IRQ", _IOC_WRITE, 0xb648, 0x08 }, { "linux/fs.h", "BLKALIGNOFF", _IOC_NONE, 0x127a, 0x00 }, { "linux/fs.h", "BLKBSZGET", _IOC_READ, 0x1270, 0x04 }, { "linux/fs.h", "BLKBSZSET", _IOC_WRITE, 0x1271, 0x04 }, @@ -1006,12 +1053,18 @@ { "linux/fs.h", "FS_IOC_GETFLAGS", _IOC_READ, 0x6601, 0x04 }, { "linux/fs.h", "FS_IOC_GETFSLABEL", _IOC_READ, 0x9431, 0x100 }, { "linux/fs.h", "FS_IOC_GETVERSION", _IOC_READ, 0x7601, 0x04 }, -{ "linux/fs.h", "FS_IOC_GET_ENCRYPTION_POLICY", _IOC_WRITE, 0x6615, 0x0c }, -{ "linux/fs.h", "FS_IOC_GET_ENCRYPTION_PWSALT", _IOC_WRITE, 0x6614, 0x10 }, { "linux/fs.h", "FS_IOC_SETFLAGS", _IOC_WRITE, 0x6602, 0x04 }, { "linux/fs.h", "FS_IOC_SETFSLABEL", _IOC_WRITE, 0x9432, 0x100 }, { "linux/fs.h", "FS_IOC_SETVERSION", _IOC_WRITE, 0x7602, 0x04 }, -{ "linux/fs.h", "FS_IOC_SET_ENCRYPTION_POLICY", _IOC_READ, 0x6613, 0x0c }, +{ "linux/fscrypt.h", "FS_IOC_ADD_ENCRYPTION_KEY", _IOC_READ|_IOC_WRITE, 0x6617, 0x50 }, +{ "linux/fscrypt.h", "FS_IOC_GET_ENCRYPTION_KEY_STATUS", _IOC_READ|_IOC_WRITE, 0x661a, 0x80 }, +{ "linux/fscrypt.h", "FS_IOC_GET_ENCRYPTION_NONCE", _IOC_READ, 0x661b, 0x10 }, +{ "linux/fscrypt.h", "FS_IOC_GET_ENCRYPTION_POLICY", _IOC_WRITE, 0x6615, 0x0c }, +{ "linux/fscrypt.h", "FS_IOC_GET_ENCRYPTION_POLICY_EX", _IOC_READ|_IOC_WRITE, 0x6616, 0x09 }, +{ "linux/fscrypt.h", "FS_IOC_GET_ENCRYPTION_PWSALT", _IOC_WRITE, 0x6614, 0x10 }, +{ "linux/fscrypt.h", "FS_IOC_REMOVE_ENCRYPTION_KEY", _IOC_READ|_IOC_WRITE, 0x6618, 0x40 }, +{ "linux/fscrypt.h", "FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS", _IOC_READ|_IOC_WRITE, 0x6619, 0x40 }, +{ "linux/fscrypt.h", "FS_IOC_SET_ENCRYPTION_POLICY", _IOC_READ, 0x6613, 0x0c }, { "linux/fsi.h", "FSI_SCOM_CHECK", _IOC_READ, 0x7300, 0x04 }, { "linux/fsi.h", "FSI_SCOM_READ", _IOC_READ|_IOC_WRITE, 0x7301, 0x20 }, { "linux/fsi.h", "FSI_SCOM_RESET", _IOC_WRITE, 0x7303, 0x04 }, @@ -1035,6 +1088,8 @@ { "linux/fsl_hypervisor.h", "FSL_HV_IOCTL_PARTITION_STOP", _IOC_READ|_IOC_WRITE, 0xaf04, 0x08 }, { "linux/fsl_hypervisor.h", "FSL_HV_IOCTL_SETPROP", _IOC_READ|_IOC_WRITE, 0xaf08, 0x28 }, { "linux/fsmap.h", "FS_IOC_GETFSMAP", _IOC_READ|_IOC_WRITE, 0x583b, 0xc0 }, +{ "linux/fsverity.h", "FS_IOC_ENABLE_VERITY", _IOC_WRITE, 0x6685, 0x80 }, +{ "linux/fsverity.h", "FS_IOC_MEASURE_VERITY", _IOC_READ|_IOC_WRITE, 0x6686, 0x04 }, { "linux/fuse.h", "FUSE_DEV_IOC_CLONE", _IOC_READ, 0xe500, 0x04 }, { "linux/genwqe/genwqe_card.h", "GENWQE_EXECUTE_DDCB", _IOC_READ|_IOC_WRITE, 0xa532, 0xe8 }, { "linux/genwqe/genwqe_card.h", "GENWQE_EXECUTE_RAW_DDCB", _IOC_READ|_IOC_WRITE, 0xa533, 0xe8 }, @@ -1049,19 +1104,19 @@ { "linux/genwqe/genwqe_card.h", "GENWQE_WRITE_REG16", _IOC_WRITE, 0xa523, 0x10 }, { "linux/genwqe/genwqe_card.h", "GENWQE_WRITE_REG32", _IOC_WRITE, 0xa521, 0x10 }, { "linux/genwqe/genwqe_card.h", "GENWQE_WRITE_REG64", _IOC_WRITE, 0xa51f, 0x10 }, -{ "linux/gigaset_dev.h", "GIGASET_BRKCHARS", _IOC_WRITE, 0x4702, 0x06 }, -{ "linux/gigaset_dev.h", "GIGASET_CONFIG", _IOC_READ|_IOC_WRITE, 0x4701, 0x04 }, -{ "linux/gigaset_dev.h", "GIGASET_REDIR", _IOC_READ|_IOC_WRITE, 0x4700, 0x04 }, -{ "linux/gigaset_dev.h", "GIGASET_VERSION", _IOC_READ|_IOC_WRITE, 0x4703, 0x10 }, { "linux/gpio.h", "GPIOHANDLE_GET_LINE_VALUES_IOCTL", _IOC_READ|_IOC_WRITE, 0xb408, 0x40 }, +{ "linux/gpio.h", "GPIOHANDLE_SET_CONFIG_IOCTL", _IOC_READ|_IOC_WRITE, 0xb40a, 0x54 }, { "linux/gpio.h", "GPIOHANDLE_SET_LINE_VALUES_IOCTL", _IOC_READ|_IOC_WRITE, 0xb409, 0x40 }, { "linux/gpio.h", "GPIO_GET_CHIPINFO_IOCTL", _IOC_READ, 0xb401, 0x44 }, { "linux/gpio.h", "GPIO_GET_LINEEVENT_IOCTL", _IOC_READ|_IOC_WRITE, 0xb404, 0x30 }, { "linux/gpio.h", "GPIO_GET_LINEHANDLE_IOCTL", _IOC_READ|_IOC_WRITE, 0xb403, 0x16c }, { "linux/gpio.h", "GPIO_GET_LINEINFO_IOCTL", _IOC_READ|_IOC_WRITE, 0xb402, 0x48 }, +{ "linux/gpio.h", "GPIO_GET_LINEINFO_UNWATCH_IOCTL", _IOC_READ|_IOC_WRITE, 0xb40c, 0x04 }, +{ "linux/gpio.h", "GPIO_GET_LINEINFO_WATCH_IOCTL", _IOC_READ|_IOC_WRITE, 0xb40b, 0x48 }, { "linux/gsmmux.h", "GSMIOC_DISABLE_NET", _IOC_NONE, 0x4703, 0x00 }, { "linux/gsmmux.h", "GSMIOC_ENABLE_NET", _IOC_WRITE, 0x4702, 0x34 }, { "linux/gsmmux.h", "GSMIOC_GETCONF", _IOC_READ, 0x4700, 0x4c }, +{ "linux/gsmmux.h", "GSMIOC_GETFIRST", _IOC_READ, 0x4704, 0x04 }, { "linux/gsmmux.h", "GSMIOC_SETCONF", _IOC_WRITE, 0x4701, 0x4c }, { "linux/hdreg.h", "HDIO_DRIVE_CMD", 0, 0x031f, 0 }, { "linux/hdreg.h", "HDIO_DRIVE_RESET", 0, 0x031c, 0 }, @@ -1164,6 +1219,7 @@ { "linux/if_pppox.h", "PPPOEIOCSFWD", _IOC_WRITE, 0xb100, 0x04 }, { "linux/if_tun.h", "TUNATTACHFILTER", _IOC_WRITE, 0x54d5, 0x08 }, { "linux/if_tun.h", "TUNDETACHFILTER", _IOC_WRITE, 0x54d6, 0x08 }, +{ "linux/if_tun.h", "TUNGETDEVNETNS", _IOC_NONE, 0x54e3, 0x00 }, { "linux/if_tun.h", "TUNGETFEATURES", _IOC_READ, 0x54cf, 0x04 }, { "linux/if_tun.h", "TUNGETFILTER", _IOC_READ, 0x54db, 0x08 }, { "linux/if_tun.h", "TUNGETIFF", _IOC_READ, 0x54d2, 0x04 }, @@ -1231,44 +1287,11 @@ { "linux/ipmi_bmc.h", "IPMI_BMC_IOCTL_CLEAR_SMS_ATN", _IOC_NONE, 0xb101, 0x00 }, { "linux/ipmi_bmc.h", "IPMI_BMC_IOCTL_FORCE_ABORT", _IOC_NONE, 0xb102, 0x00 }, { "linux/ipmi_bmc.h", "IPMI_BMC_IOCTL_SET_SMS_ATN", _IOC_NONE, 0xb100, 0x00 }, -{ "linux/isdn.h", "IIOCDBGVAR", _IOC_NONE, 0x497f, 0x00 }, -{ "linux/isdn.h", "IIOCDRVCTL", _IOC_NONE, 0x4980, 0x00 }, -{ "linux/isdn.h", "IIOCGETCPS", _IOC_NONE, 0x4915, 0x00 }, -{ "linux/isdn.h", "IIOCGETDVR", _IOC_NONE, 0x4916, 0x00 }, -{ "linux/isdn.h", "IIOCGETMAP", _IOC_NONE, 0x4911, 0x00 }, -{ "linux/isdn.h", "IIOCGETPRF", _IOC_NONE, 0x490f, 0x00 }, -{ "linux/isdn.h", "IIOCGETSET", _IOC_NONE, 0x4908, 0x00 }, -{ "linux/isdn.h", "IIOCNETAIF", _IOC_NONE, 0x4901, 0x00 }, -{ "linux/isdn.h", "IIOCNETALN", _IOC_NONE, 0x4920, 0x00 }, -{ "linux/isdn.h", "IIOCNETANM", _IOC_NONE, 0x4905, 0x00 }, -{ "linux/isdn.h", "IIOCNETASL", _IOC_NONE, 0x4913, 0x00 }, -{ "linux/isdn.h", "IIOCNETDIF", _IOC_NONE, 0x4902, 0x00 }, -{ "linux/isdn.h", "IIOCNETDIL", _IOC_NONE, 0x4914, 0x00 }, -{ "linux/isdn.h", "IIOCNETDLN", _IOC_NONE, 0x4921, 0x00 }, -{ "linux/isdn.h", "IIOCNETDNM", _IOC_NONE, 0x4906, 0x00 }, -{ "linux/isdn.h", "IIOCNETDWRSET", _IOC_NONE, 0x4918, 0x00 }, -{ "linux/isdn.h", "IIOCNETGCF", _IOC_NONE, 0x4904, 0x00 }, -{ "linux/isdn.h", "IIOCNETGNM", _IOC_NONE, 0x4907, 0x00 }, -{ "linux/isdn.h", "IIOCNETGPN", _IOC_NONE, 0x4922, 0x00 }, -{ "linux/isdn.h", "IIOCNETHUP", _IOC_NONE, 0x490b, 0x00 }, -{ "linux/isdn.h", "IIOCNETLCR", _IOC_NONE, 0x4917, 0x00 }, -{ "linux/isdn.h", "IIOCNETSCF", _IOC_NONE, 0x4903, 0x00 }, -{ "linux/isdn.h", "IIOCSETBRJ", _IOC_NONE, 0x490d, 0x00 }, -{ "linux/isdn.h", "IIOCSETGST", _IOC_NONE, 0x490c, 0x00 }, -{ "linux/isdn.h", "IIOCSETMAP", _IOC_NONE, 0x4912, 0x00 }, -{ "linux/isdn.h", "IIOCSETPRF", _IOC_NONE, 0x4910, 0x00 }, -{ "linux/isdn.h", "IIOCSETSET", _IOC_NONE, 0x4909, 0x00 }, -{ "linux/isdn.h", "IIOCSETVER", _IOC_NONE, 0x490a, 0x00 }, -{ "linux/isdn.h", "IIOCSIGPRF", _IOC_NONE, 0x490e, 0x00 }, -{ "linux/isdn_ppp.h", "PPPIOCBUNDLE", _IOC_WRITE, 0x7481, 0x04 }, -{ "linux/isdn_ppp.h", "PPPIOCGCALLINFO", _IOC_READ|_IOC_WRITE, 0x7480, 0x88 }, -{ "linux/isdn_ppp.h", "PPPIOCGCOMPRESSORS", _IOC_READ, 0x7486, 0x20 }, -{ "linux/isdn_ppp.h", "PPPIOCGIFNAME", _IOC_READ, 0x7488, 0x10 }, -{ "linux/isdn_ppp.h", "PPPIOCGMPFLAGS", _IOC_READ, 0x7482, 0x04 }, -{ "linux/isdn_ppp.h", "PPPIOCSCOMPRESSOR", _IOC_WRITE, 0x7487, 0x04 }, -{ "linux/isdn_ppp.h", "PPPIOCSMPFLAGS", _IOC_WRITE, 0x7483, 0x04 }, -{ "linux/isdn_ppp.h", "PPPIOCSMPMRU", _IOC_WRITE, 0x7485, 0x04 }, -{ "linux/isdn_ppp.h", "PPPIOCSMPMTU", _IOC_WRITE, 0x7484, 0x04 }, +{ "linux/isst_if.h", "ISST_IF_GET_PHY_ID", _IOC_READ|_IOC_WRITE, 0xfe01, 0x04 }, +{ "linux/isst_if.h", "ISST_IF_GET_PLATFORM_INFO", _IOC_READ, 0xfe00, 0x04 }, +{ "linux/isst_if.h", "ISST_IF_IO_CMD", _IOC_WRITE, 0xfe02, 0x04 }, +{ "linux/isst_if.h", "ISST_IF_MBOX_COMMAND", _IOC_READ|_IOC_WRITE, 0xfe03, 0x04 }, +{ "linux/isst_if.h", "ISST_IF_MSR_COMMAND", _IOC_READ|_IOC_WRITE, 0xfe04, 0x04 }, { "linux/ivtv.h", "IVTV_IOC_DMA_FRAME", _IOC_WRITE, 0x56c0, 0x38 }, { "linux/ivtv.h", "IVTV_IOC_PASSTHROUGH_MODE", _IOC_WRITE, 0x56c1, 0x04 }, { "linux/ivtvfb.h", "IVTVFB_IOC_DMA_FRAME", _IOC_WRITE, 0x56c0, 0x0c }, @@ -1284,6 +1307,7 @@ { "linux/kcov.h", "KCOV_DISABLE", _IOC_NONE, 0x6365, 0x00 }, { "linux/kcov.h", "KCOV_ENABLE", _IOC_NONE, 0x6364, 0x00 }, { "linux/kcov.h", "KCOV_INIT_TRACE", _IOC_READ, 0x6301, 0x04 }, +{ "linux/kcov.h", "KCOV_REMOTE_ENABLE", _IOC_WRITE, 0x6366, 0x18 }, { "linux/kd.h", "GIO_CMAP", 0, 0x4B70, 0 }, { "linux/kd.h", "GIO_FONT", 0, 0x4B60, 0 }, { "linux/kd.h", "GIO_FONTX", 0, 0x4B6B, 0 }, @@ -1332,6 +1356,7 @@ { "linux/kd.h", "PIO_UNISCRNMAP", 0, 0x4B6A, 0 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_ACQUIRE_VM", _IOC_WRITE, 0x4b15, 0x08 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_ALLOC_MEMORY_OF_GPU", _IOC_READ|_IOC_WRITE, 0x4b16, 0x28 }, +{ "linux/kfd_ioctl.h", "AMDKFD_IOC_ALLOC_QUEUE_GWS", _IOC_READ|_IOC_WRITE, 0x4b1e, 0x10 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_CREATE_EVENT", _IOC_READ|_IOC_WRITE, 0x4b08, 0x20 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_CREATE_QUEUE", _IOC_READ|_IOC_WRITE, 0x4b02, 0x58 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_DBG_ADDRESS_WATCH", _IOC_WRITE, 0x4b0f, 0x10 }, @@ -1356,6 +1381,7 @@ { "linux/kfd_ioctl.h", "AMDKFD_IOC_SET_MEMORY_POLICY", _IOC_WRITE, 0x4b04, 0x20 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_SET_SCRATCH_BACKING_VA", _IOC_READ|_IOC_WRITE, 0x4b11, 0x10 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_SET_TRAP_HANDLER", _IOC_WRITE, 0x4b13, 0x18 }, +{ "linux/kfd_ioctl.h", "AMDKFD_IOC_SMI_EVENTS", _IOC_READ|_IOC_WRITE, 0x4b1f, 0x08 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_UNMAP_MEMORY_FROM_GPU", _IOC_READ|_IOC_WRITE, 0x4b19, 0x18 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_UPDATE_QUEUE", _IOC_WRITE, 0x4b07, 0x18 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_WAIT_EVENTS", _IOC_READ|_IOC_WRITE, 0x4b0c, 0x18 }, @@ -1389,6 +1415,7 @@ { "linux/lirc.h", "LIRC_SET_WIDEBAND_RECEIVER", _IOC_WRITE, 0x6923, 0x04 }, { "linux/loop.h", "LOOP_CHANGE_FD", 0, 0x4C06, 0 }, { "linux/loop.h", "LOOP_CLR_FD", 0, 0x4C01, 0 }, +{ "linux/loop.h", "LOOP_CONFIGURE", 0, 0x4C0A, 0 }, { "linux/loop.h", "LOOP_CTL_ADD", 0, 0x4C80, 0 }, { "linux/loop.h", "LOOP_CTL_GET_FREE", 0, 0x4C82, 0 }, { "linux/loop.h", "LOOP_CTL_REMOVE", 0, 0x4C81, 0 }, @@ -1490,8 +1517,10 @@ { "linux/nsfs.h", "NS_GET_OWNER_UID", _IOC_NONE, 0xb704, 0x00 }, { "linux/nsfs.h", "NS_GET_PARENT", _IOC_NONE, 0xb702, 0x00 }, { "linux/nsfs.h", "NS_GET_USERNS", _IOC_NONE, 0xb701, 0x00 }, +{ "linux/nvme_ioctl.h", "NVME_IOCTL_ADMIN64_CMD", _IOC_READ|_IOC_WRITE, 0x4e47, 0x50 }, { "linux/nvme_ioctl.h", "NVME_IOCTL_ADMIN_CMD", _IOC_READ|_IOC_WRITE, 0x4e41, 0x48 }, { "linux/nvme_ioctl.h", "NVME_IOCTL_ID", _IOC_NONE, 0x4e40, 0x00 }, +{ "linux/nvme_ioctl.h", "NVME_IOCTL_IO64_CMD", _IOC_READ|_IOC_WRITE, 0x4e48, 0x50 }, { "linux/nvme_ioctl.h", "NVME_IOCTL_IO_CMD", _IOC_READ|_IOC_WRITE, 0x4e43, 0x48 }, { "linux/nvme_ioctl.h", "NVME_IOCTL_RESCAN", _IOC_NONE, 0x4e46, 0x00 }, { "linux/nvme_ioctl.h", "NVME_IOCTL_RESET", _IOC_NONE, 0x4e44, 0x00 }, @@ -1531,6 +1560,7 @@ { "linux/omapfb.h", "OMAPFB_WAITFORGO", _IOC_NONE, 0x4f3c, 0x00 }, { "linux/omapfb.h", "OMAPFB_WAITFORVSYNC", _IOC_NONE, 0x4f39, 0x00 }, { "linux/pcitest.h", "PCITEST_BAR", _IOC_NONE, 0x5001, 0x00 }, +{ "linux/pcitest.h", "PCITEST_CLEAR_IRQ", _IOC_NONE, 0x5010, 0x00 }, { "linux/pcitest.h", "PCITEST_COPY", _IOC_WRITE, 0x5006, 0x04 }, { "linux/pcitest.h", "PCITEST_GET_IRQTYPE", _IOC_NONE, 0x5009, 0x00 }, { "linux/pcitest.h", "PCITEST_LEGACY_IRQ", _IOC_NONE, 0x5002, 0x00 }, @@ -1561,6 +1591,9 @@ { "linux/phantom.h", "PHN_SET_REG", _IOC_WRITE, 0x7001, 0x04 }, { "linux/phantom.h", "PHN_SET_REGS", _IOC_WRITE, 0x7003, 0x04 }, { "linux/pktcdvd.h", "PACKET_CTRL_CMD", _IOC_READ|_IOC_WRITE, 0x5801, 0x18 }, +{ "linux/platform_data/cros_ec_chardev.h", "CROS_EC_DEV_IOCEVENTMASK", _IOC_NONE, 0xec02, 0x00 }, +{ "linux/platform_data/cros_ec_chardev.h", "CROS_EC_DEV_IOCRDMEM", _IOC_READ|_IOC_WRITE, 0xec01, 0x108 }, +{ "linux/platform_data/cros_ec_chardev.h", "CROS_EC_DEV_IOCXCMD", _IOC_READ|_IOC_WRITE, 0xec00, 0x14 }, { "linux/platform_data/media/si4713.h", "SI4713_IOC_MEASURE_RNL", _IOC_READ|_IOC_WRITE, 0x56c0, 0x1c }, { "linux/pmu.h", "PMU_IOC_CAN_SLEEP", _IOC_READ, 0x4205, 0x04 }, { "linux/pmu.h", "PMU_IOC_GET_BACKLIGHT", _IOC_READ, 0x4201, 0x04 }, @@ -1602,6 +1635,8 @@ { "linux/ppp-ioctl.h", "PPPIOCGDEBUG", _IOC_READ, 0x7441, 0x04 }, { "linux/ppp-ioctl.h", "PPPIOCGFLAGS", _IOC_READ, 0x745a, 0x04 }, { "linux/ppp-ioctl.h", "PPPIOCGIDLE", _IOC_READ, 0x743f, 0x08 }, +{ "linux/ppp-ioctl.h", "PPPIOCGIDLE32", _IOC_READ, 0x743f, 0x08 }, +{ "linux/ppp-ioctl.h", "PPPIOCGIDLE64", _IOC_READ, 0x743f, 0x10 }, { "linux/ppp-ioctl.h", "PPPIOCGL2TPSTATS", _IOC_READ, 0x7436, 0x48 }, { "linux/ppp-ioctl.h", "PPPIOCGMRU", _IOC_READ, 0x7453, 0x04 }, { "linux/ppp-ioctl.h", "PPPIOCGNPMODE", _IOC_READ|_IOC_WRITE, 0x744c, 0x08 }, @@ -1635,14 +1670,23 @@ { "linux/pr.h", "IOC_PR_RESERVE", _IOC_WRITE, 0x70c9, 0x10 }, { "linux/psp-sev.h", "SEV_ISSUE_CMD", _IOC_READ|_IOC_WRITE, 0x5300, 0x10 }, { "linux/ptp_clock.h", "PTP_CLOCK_GETCAPS", _IOC_READ, 0x3d01, 0x50 }, +{ "linux/ptp_clock.h", "PTP_CLOCK_GETCAPS2", _IOC_READ, 0x3d0a, 0x50 }, { "linux/ptp_clock.h", "PTP_ENABLE_PPS", _IOC_WRITE, 0x3d04, 0x04 }, +{ "linux/ptp_clock.h", "PTP_ENABLE_PPS2", _IOC_WRITE, 0x3d0d, 0x04 }, { "linux/ptp_clock.h", "PTP_EXTTS_REQUEST", _IOC_WRITE, 0x3d02, 0x10 }, +{ "linux/ptp_clock.h", "PTP_EXTTS_REQUEST2", _IOC_WRITE, 0x3d0b, 0x10 }, { "linux/ptp_clock.h", "PTP_PEROUT_REQUEST", _IOC_WRITE, 0x3d03, 0x38 }, +{ "linux/ptp_clock.h", "PTP_PEROUT_REQUEST2", _IOC_WRITE, 0x3d0c, 0x38 }, { "linux/ptp_clock.h", "PTP_PIN_GETFUNC", _IOC_READ|_IOC_WRITE, 0x3d06, 0x60 }, +{ "linux/ptp_clock.h", "PTP_PIN_GETFUNC2", _IOC_READ|_IOC_WRITE, 0x3d0f, 0x60 }, { "linux/ptp_clock.h", "PTP_PIN_SETFUNC", _IOC_WRITE, 0x3d07, 0x60 }, +{ "linux/ptp_clock.h", "PTP_PIN_SETFUNC2", _IOC_WRITE, 0x3d10, 0x60 }, { "linux/ptp_clock.h", "PTP_SYS_OFFSET", _IOC_WRITE, 0x3d05, 0x340 }, +{ "linux/ptp_clock.h", "PTP_SYS_OFFSET2", _IOC_WRITE, 0x3d0e, 0x340 }, { "linux/ptp_clock.h", "PTP_SYS_OFFSET_EXTENDED", _IOC_READ|_IOC_WRITE, 0x3d09, 0x4c0 }, +{ "linux/ptp_clock.h", "PTP_SYS_OFFSET_EXTENDED2", _IOC_READ|_IOC_WRITE, 0x3d12, 0x4c0 }, { "linux/ptp_clock.h", "PTP_SYS_OFFSET_PRECISE", _IOC_READ|_IOC_WRITE, 0x3d08, 0x40 }, +{ "linux/ptp_clock.h", "PTP_SYS_OFFSET_PRECISE2", _IOC_READ|_IOC_WRITE, 0x3d11, 0x40 }, { "linux/radeonfb.h", "FBIO_RADEON_GET_MIRROR", _IOC_READ, 0x4003, 0x04 }, { "linux/radeonfb.h", "FBIO_RADEON_SET_MIRROR", _IOC_WRITE, 0x4004, 0x04 }, { "linux/raid/md_u.h", "ADD_NEW_DISK", _IOC_WRITE, 0x0921, 0x14 }, @@ -1677,6 +1721,8 @@ { "linux/raw.h", "RAW_GETBIND", _IOC_NONE, 0xac01, 0x00 }, { "linux/raw.h", "RAW_SETBIND", _IOC_NONE, 0xac00, 0x00 }, { "linux/reiserfs_fs.h", "REISERFS_IOC_UNPACK", _IOC_WRITE, 0xcd01, 0x04 }, +{ "linux/remoteproc_cdev.h", "RPROC_GET_SHUTDOWN_ON_RELEASE", _IOC_READ, 0xb702, 0x04 }, +{ "linux/remoteproc_cdev.h", "RPROC_SET_SHUTDOWN_ON_RELEASE", _IOC_WRITE, 0xb701, 0x04 }, { "linux/rfkill.h", "RFKILL_IOCTL_NOINPUT", _IOC_NONE, 0x5201, 0x00 }, { "linux/rio_cm_cdev.h", "RIO_CM_CHAN_ACCEPT", _IOC_READ|_IOC_WRITE, 0x6307, 0x08 }, { "linux/rio_cm_cdev.h", "RIO_CM_CHAN_BIND", _IOC_WRITE, 0x6305, 0x08 }, @@ -1754,7 +1800,8 @@ { "linux/scif_ioctl.h", "SCIF_VREADFROM", _IOC_READ|_IOC_WRITE, 0x730c, 0x24 }, { "linux/scif_ioctl.h", "SCIF_VWRITETO", _IOC_READ|_IOC_WRITE, 0x730d, 0x24 }, { "linux/scif_ioctl.h", "SCIF_WRITETO", _IOC_READ|_IOC_WRITE, 0x730b, 0x24 }, -{ "linux/seccomp.h", "SECCOMP_IOCTL_NOTIF_ID_VALID", _IOC_READ, 0x2102, 0x08 }, +{ "linux/seccomp.h", "SECCOMP_IOCTL_NOTIF_ADDFD", _IOC_WRITE, 0x2103, 0x18 }, +{ "linux/seccomp.h", "SECCOMP_IOCTL_NOTIF_ID_VALID", _IOC_WRITE, 0x2102, 0x08 }, { "linux/seccomp.h", "SECCOMP_IOCTL_NOTIF_RECV", _IOC_READ|_IOC_WRITE, 0x2100, 0x50 }, { "linux/seccomp.h", "SECCOMP_IOCTL_NOTIF_SEND", _IOC_READ|_IOC_WRITE, 0x2101, 0x18 }, { "linux/sed-opal.h", "IOC_OPAL_ACTIVATE_LSP", _IOC_WRITE, 0x70df, 0x118 }, @@ -1762,13 +1809,17 @@ { "linux/sed-opal.h", "IOC_OPAL_ADD_USR_TO_LR", _IOC_WRITE, 0x70e4, 0x118 }, { "linux/sed-opal.h", "IOC_OPAL_ENABLE_DISABLE_MBR", _IOC_WRITE, 0x70e5, 0x110 }, { "linux/sed-opal.h", "IOC_OPAL_ERASE_LR", _IOC_WRITE, 0x70e6, 0x110 }, +{ "linux/sed-opal.h", "IOC_OPAL_GENERIC_TABLE_RW", _IOC_WRITE, 0x70eb, 0x138 }, { "linux/sed-opal.h", "IOC_OPAL_LOCK_UNLOCK", _IOC_WRITE, 0x70dd, 0x118 }, { "linux/sed-opal.h", "IOC_OPAL_LR_SETUP", _IOC_WRITE, 0x70e3, 0x128 }, +{ "linux/sed-opal.h", "IOC_OPAL_MBR_DONE", _IOC_WRITE, 0x70e9, 0x110 }, +{ "linux/sed-opal.h", "IOC_OPAL_PSID_REVERT_TPR", _IOC_WRITE, 0x70e8, 0x108 }, { "linux/sed-opal.h", "IOC_OPAL_REVERT_TPR", _IOC_WRITE, 0x70e2, 0x108 }, { "linux/sed-opal.h", "IOC_OPAL_SAVE", _IOC_WRITE, 0x70dc, 0x118 }, { "linux/sed-opal.h", "IOC_OPAL_SECURE_ERASE_LR", _IOC_WRITE, 0x70e7, 0x110 }, { "linux/sed-opal.h", "IOC_OPAL_SET_PW", _IOC_WRITE, 0x70e0, 0x220 }, { "linux/sed-opal.h", "IOC_OPAL_TAKE_OWNERSHIP", _IOC_WRITE, 0x70de, 0x108 }, +{ "linux/sed-opal.h", "IOC_OPAL_WRITE_SHADOW_MBR", _IOC_WRITE, 0x70ea, 0x120 }, { "linux/serio.h", "SPIOCSTYPE", _IOC_WRITE, 0x7101, 0x04 }, { "linux/sockios.h", "SIOCADDDLCI", 0, 0x8980, 0 }, { "linux/sockios.h", "SIOCADDMULTI", 0, 0x8931, 0 }, @@ -1817,6 +1868,8 @@ { "linux/sockios.h", "SIOCGMIIREG", 0, 0x8948, 0 }, { "linux/sockios.h", "SIOCGRARP", 0, 0x8961, 0 }, { "linux/sockios.h", "SIOCGSKNS", 0, 0x894C, 0 }, +{ "linux/sockios.h", "SIOCGSTAMPNS_NEW", _IOC_READ, 0x8907, 0x10 }, +{ "linux/sockios.h", "SIOCGSTAMP_NEW", _IOC_READ, 0x8906, 0x10 }, { "linux/sockios.h", "SIOCOUTQNSD", 0, 0x894B, 0 }, { "linux/sockios.h", "SIOCPROTOPRIVATE", 0, 0x89E0, 0 }, { "linux/sockios.h", "SIOCRTMSG", 0, 0x890D, 0 }, @@ -1982,7 +2035,8 @@ { "linux/suspend_ioctls.h", "SNAPSHOT_SET_SWAP_AREA", _IOC_WRITE, 0x330d, 0x0c }, { "linux/suspend_ioctls.h", "SNAPSHOT_UNFREEZE", _IOC_NONE, 0x3302, 0x00 }, { "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_CTL", _IOC_READ|_IOC_WRITE, 0x5743, 0x28 }, -{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_SUMMARY", _IOC_READ, 0x5742, 0x198 }, +{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_SUMMARY", _IOC_READ, 0x5742, 0x4d4 }, +{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_SUMMARY_LEGACY", _IOC_READ, 0x5742, 0x198 }, { "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_FLASH_INFO", _IOC_READ, 0x5740, 0x10 }, { "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_FLASH_PART_INFO", _IOC_READ|_IOC_WRITE, 0x5741, 0x10 }, { "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_PFF_TO_PORT", _IOC_READ|_IOC_WRITE, 0x5744, 0x0c }, @@ -2063,6 +2117,22 @@ { "linux/usb/iowarrior.h", "IOW_GETINFO", _IOC_READ, 0xc003, 0x28 }, { "linux/usb/iowarrior.h", "IOW_READ", _IOC_WRITE, 0xc002, 0x04 }, { "linux/usb/iowarrior.h", "IOW_WRITE", _IOC_WRITE, 0xc001, 0x04 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_CONFIGURE", _IOC_NONE, 0x5509, 0x00 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP0_READ", _IOC_READ|_IOC_WRITE, 0x5504, 0x08 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP0_STALL", _IOC_NONE, 0x550c, 0x00 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP0_WRITE", _IOC_WRITE, 0x5503, 0x08 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EPS_INFO", _IOC_READ, 0x550b, 0x3c0 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_CLEAR_HALT", _IOC_WRITE, 0x550e, 0x04 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_DISABLE", _IOC_WRITE, 0x5506, 0x04 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_ENABLE", _IOC_WRITE, 0x5505, 0x09 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_READ", _IOC_READ|_IOC_WRITE, 0x5508, 0x08 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_SET_HALT", _IOC_WRITE, 0x550d, 0x04 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_SET_WEDGE", _IOC_WRITE, 0x550f, 0x04 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_WRITE", _IOC_WRITE, 0x5507, 0x08 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EVENT_FETCH", _IOC_READ, 0x5502, 0x08 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_INIT", _IOC_WRITE, 0x5500, 0x101 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_RUN", _IOC_NONE, 0x5501, 0x00 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_VBUS_DRAW", _IOC_WRITE, 0x550a, 0x04 }, { "linux/usb/tmc.h", "USBTMC488_IOCTL_GET_CAPS", _IOC_READ, 0x5b11, 0x01 }, { "linux/usb/tmc.h", "USBTMC488_IOCTL_GOTO_LOCAL", _IOC_NONE, 0x5b14, 0x00 }, { "linux/usb/tmc.h", "USBTMC488_IOCTL_LOCAL_LOCKOUT", _IOC_NONE, 0x5b15, 0x00 }, @@ -2090,6 +2160,7 @@ { "linux/usb/tmc.h", "USBTMC_IOCTL_WRITE", _IOC_READ|_IOC_WRITE, 0x5b0d, 0x10 }, { "linux/usb/tmc.h", "USBTMC_IOCTL_WRITE_RESULT", _IOC_READ|_IOC_WRITE, 0x5b0f, 0x04 }, { "linux/usbdevice_fs.h", "USBDEVFS_ALLOC_STREAMS", _IOC_READ, 0x551c, 0x08 }, +{ "linux/usbdevice_fs.h", "USBDEVFS_ALLOW_SUSPEND", _IOC_NONE, 0x5522, 0x00 }, { "linux/usbdevice_fs.h", "USBDEVFS_BULK", _IOC_READ|_IOC_WRITE, 0x5502, 0x10 }, { "linux/usbdevice_fs.h", "USBDEVFS_BULK32", _IOC_READ|_IOC_WRITE, 0x5502, 0x10 }, { "linux/usbdevice_fs.h", "USBDEVFS_CLAIMINTERFACE", _IOC_READ, 0x550f, 0x04 }, @@ -2105,6 +2176,7 @@ { "linux/usbdevice_fs.h", "USBDEVFS_DISCSIGNAL", _IOC_READ, 0x550e, 0x08 }, { "linux/usbdevice_fs.h", "USBDEVFS_DISCSIGNAL32", _IOC_READ, 0x550e, 0x08 }, { "linux/usbdevice_fs.h", "USBDEVFS_DROP_PRIVILEGES", _IOC_WRITE, 0x551e, 0x04 }, +{ "linux/usbdevice_fs.h", "USBDEVFS_FORBID_SUSPEND", _IOC_NONE, 0x5521, 0x00 }, { "linux/usbdevice_fs.h", "USBDEVFS_FREE_STREAMS", _IOC_READ, 0x551d, 0x08 }, { "linux/usbdevice_fs.h", "USBDEVFS_GETDRIVER", _IOC_WRITE, 0x5508, 0x104 }, { "linux/usbdevice_fs.h", "USBDEVFS_GET_CAPABILITIES", _IOC_READ, 0x551a, 0x04 }, @@ -2124,11 +2196,13 @@ { "linux/usbdevice_fs.h", "USBDEVFS_SETINTERFACE", _IOC_READ, 0x5504, 0x08 }, { "linux/usbdevice_fs.h", "USBDEVFS_SUBMITURB", _IOC_READ, 0x550a, 0x2c }, { "linux/usbdevice_fs.h", "USBDEVFS_SUBMITURB32", _IOC_READ, 0x550a, 0x2a }, +{ "linux/usbdevice_fs.h", "USBDEVFS_WAIT_FOR_RESUME", _IOC_NONE, 0x5523, 0x00 }, { "linux/userfaultfd.h", "UFFDIO_API", _IOC_READ|_IOC_WRITE, 0xaa3f, 0x18 }, { "linux/userfaultfd.h", "UFFDIO_COPY", _IOC_READ|_IOC_WRITE, 0xaa03, 0x28 }, { "linux/userfaultfd.h", "UFFDIO_REGISTER", _IOC_READ|_IOC_WRITE, 0xaa00, 0x20 }, { "linux/userfaultfd.h", "UFFDIO_UNREGISTER", _IOC_READ, 0xaa01, 0x10 }, { "linux/userfaultfd.h", "UFFDIO_WAKE", _IOC_READ, 0xaa02, 0x10 }, +{ "linux/userfaultfd.h", "UFFDIO_WRITEPROTECT", _IOC_READ|_IOC_WRITE, 0xaa06, 0x18 }, { "linux/userfaultfd.h", "UFFDIO_ZEROPAGE", _IOC_READ|_IOC_WRITE, 0xaa04, 0x20 }, { "linux/uvcvideo.h", "UVCIOC_CTRL_MAP", _IOC_READ|_IOC_WRITE, 0x7520, 0x58 }, { "linux/uvcvideo.h", "UVCIOC_CTRL_QUERY", _IOC_READ|_IOC_WRITE, 0x7521, 0x0c }, @@ -2139,10 +2213,12 @@ { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_G_FMT", _IOC_READ|_IOC_WRITE, 0x5604, 0x58 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_G_FRAME_INTERVAL", _IOC_READ|_IOC_WRITE, 0x5615, 0x30 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_G_SELECTION", _IOC_READ|_IOC_WRITE, 0x563d, 0x40 }, +{ "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_QUERYCAP", _IOC_READ, 0x5600, 0x40 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_S_CROP", _IOC_READ|_IOC_WRITE, 0x563c, 0x38 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_S_FMT", _IOC_READ|_IOC_WRITE, 0x5605, 0x58 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_S_FRAME_INTERVAL", _IOC_READ|_IOC_WRITE, 0x5616, 0x30 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_S_SELECTION", _IOC_READ|_IOC_WRITE, 0x563e, 0x40 }, +{ "linux/vboxguest.h", "VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES", _IOC_READ|_IOC_WRITE, 0x560d, 0x24 }, { "linux/vboxguest.h", "VBG_IOCTL_CHANGE_FILTER_MASK", _IOC_READ|_IOC_WRITE, 0x560c, 0x20 }, { "linux/vboxguest.h", "VBG_IOCTL_CHANGE_GUEST_CAPABILITIES", _IOC_READ|_IOC_WRITE, 0x560e, 0x20 }, { "linux/vboxguest.h", "VBG_IOCTL_CHECK_BALLOON", _IOC_READ|_IOC_WRITE, 0x5611, 0x20 }, @@ -2150,10 +2226,11 @@ { "linux/vboxguest.h", "VBG_IOCTL_HGCM_CONNECT", _IOC_READ|_IOC_WRITE, 0x5604, 0x9c }, { "linux/vboxguest.h", "VBG_IOCTL_HGCM_DISCONNECT", _IOC_READ|_IOC_WRITE, 0x5605, 0x1c }, { "linux/vboxguest.h", "VBG_IOCTL_INTERRUPT_ALL_WAIT_FOR_EVENTS", _IOC_READ|_IOC_WRITE, 0x560b, 0x18 }, -{ "linux/vboxguest.h", "VBG_IOCTL_VMMDEV_REQUEST_BIG", _IOC_READ|_IOC_WRITE, 0x5603, 0x00 }, +{ "linux/vboxguest.h", "VBG_IOCTL_VMMDEV_REQUEST_BIG", _IOC_NONE, 0x5603, 0x00 }, { "linux/vboxguest.h", "VBG_IOCTL_WAIT_FOR_EVENTS", _IOC_READ|_IOC_WRITE, 0x560a, 0x20 }, { "linux/vboxguest.h", "VBG_IOCTL_WRITE_CORE_DUMP", _IOC_READ|_IOC_WRITE, 0x5613, 0x1c }, { "linux/vfio.h", "VFIO_CHECK_EXTENSION", _IOC_NONE, 0x3b65, 0x00 }, +{ "linux/vfio.h", "VFIO_DEVICE_FEATURE", _IOC_NONE, 0x3b75, 0x00 }, { "linux/vfio.h", "VFIO_DEVICE_GET_GFX_DMABUF", _IOC_NONE, 0x3b73, 0x00 }, { "linux/vfio.h", "VFIO_DEVICE_GET_INFO", _IOC_NONE, 0x3b6b, 0x00 }, { "linux/vfio.h", "VFIO_DEVICE_GET_IRQ_INFO", _IOC_NONE, 0x3b6d, 0x00 }, @@ -2170,6 +2247,7 @@ { "linux/vfio.h", "VFIO_GROUP_GET_STATUS", _IOC_NONE, 0x3b67, 0x00 }, { "linux/vfio.h", "VFIO_GROUP_SET_CONTAINER", _IOC_NONE, 0x3b68, 0x00 }, { "linux/vfio.h", "VFIO_GROUP_UNSET_CONTAINER", _IOC_NONE, 0x3b69, 0x00 }, +{ "linux/vfio.h", "VFIO_IOMMU_DIRTY_PAGES", _IOC_NONE, 0x3b75, 0x00 }, { "linux/vfio.h", "VFIO_IOMMU_DISABLE", _IOC_NONE, 0x3b74, 0x00 }, { "linux/vfio.h", "VFIO_IOMMU_ENABLE", _IOC_NONE, 0x3b73, 0x00 }, { "linux/vfio.h", "VFIO_IOMMU_GET_INFO", _IOC_NONE, 0x3b70, 0x00 }, @@ -2207,6 +2285,14 @@ { "linux/vhost.h", "VHOST_SET_VRING_ERR", _IOC_WRITE, 0xaf22, 0x08 }, { "linux/vhost.h", "VHOST_SET_VRING_KICK", _IOC_WRITE, 0xaf20, 0x08 }, { "linux/vhost.h", "VHOST_SET_VRING_NUM", _IOC_WRITE, 0xaf10, 0x08 }, +{ "linux/vhost.h", "VHOST_VDPA_GET_CONFIG", _IOC_READ, 0xaf73, 0x08 }, +{ "linux/vhost.h", "VHOST_VDPA_GET_DEVICE_ID", _IOC_READ, 0xaf70, 0x04 }, +{ "linux/vhost.h", "VHOST_VDPA_GET_STATUS", _IOC_READ, 0xaf71, 0x01 }, +{ "linux/vhost.h", "VHOST_VDPA_GET_VRING_NUM", _IOC_READ, 0xaf76, 0x02 }, +{ "linux/vhost.h", "VHOST_VDPA_SET_CONFIG", _IOC_WRITE, 0xaf74, 0x08 }, +{ "linux/vhost.h", "VHOST_VDPA_SET_CONFIG_CALL", _IOC_WRITE, 0xaf77, 0x04 }, +{ "linux/vhost.h", "VHOST_VDPA_SET_STATUS", _IOC_WRITE, 0xaf72, 0x01 }, +{ "linux/vhost.h", "VHOST_VDPA_SET_VRING_ENABLE", _IOC_WRITE, 0xaf75, 0x08 }, { "linux/vhost.h", "VHOST_VSOCK_SET_GUEST_CID", _IOC_WRITE, 0xaf60, 0x08 }, { "linux/vhost.h", "VHOST_VSOCK_SET_RUNNING", _IOC_WRITE, 0xaf61, 0x04 }, { "linux/videodev2.h", "VIDIOC_CREATE_BUFS", _IOC_READ|_IOC_WRITE, 0x565c, 0xf8 }, @@ -2215,8 +2301,8 @@ { "linux/videodev2.h", "VIDIOC_DBG_G_REGISTER", _IOC_READ|_IOC_WRITE, 0x5650, 0x38 }, { "linux/videodev2.h", "VIDIOC_DBG_S_REGISTER", _IOC_WRITE, 0x564f, 0x38 }, { "linux/videodev2.h", "VIDIOC_DECODER_CMD", _IOC_READ|_IOC_WRITE, 0x5660, 0x48 }, -{ "linux/videodev2.h", "VIDIOC_DQBUF", _IOC_READ|_IOC_WRITE, 0x5611, 0x44 }, -{ "linux/videodev2.h", "VIDIOC_DQEVENT", _IOC_READ, 0x5659, 0x78 }, +{ "linux/videodev2.h", "VIDIOC_DQBUF", _IOC_READ|_IOC_WRITE, 0x5611, 0x4c }, +{ "linux/videodev2.h", "VIDIOC_DQEVENT", _IOC_READ, 0x5659, 0x80 }, { "linux/videodev2.h", "VIDIOC_DV_TIMINGS_CAP", _IOC_READ|_IOC_WRITE, 0x5664, 0x90 }, { "linux/videodev2.h", "VIDIOC_ENCODER_CMD", _IOC_READ|_IOC_WRITE, 0x564d, 0x28 }, { "linux/videodev2.h", "VIDIOC_ENUMAUDIO", _IOC_READ|_IOC_WRITE, 0x5641, 0x34 }, @@ -2253,9 +2339,9 @@ { "linux/videodev2.h", "VIDIOC_G_TUNER", _IOC_READ|_IOC_WRITE, 0x561d, 0x54 }, { "linux/videodev2.h", "VIDIOC_LOG_STATUS", _IOC_NONE, 0x5646, 0x00 }, { "linux/videodev2.h", "VIDIOC_OVERLAY", _IOC_WRITE, 0x560e, 0x04 }, -{ "linux/videodev2.h", "VIDIOC_PREPARE_BUF", _IOC_READ|_IOC_WRITE, 0x565d, 0x44 }, -{ "linux/videodev2.h", "VIDIOC_QBUF", _IOC_READ|_IOC_WRITE, 0x560f, 0x44 }, -{ "linux/videodev2.h", "VIDIOC_QUERYBUF", _IOC_READ|_IOC_WRITE, 0x5609, 0x44 }, +{ "linux/videodev2.h", "VIDIOC_PREPARE_BUF", _IOC_READ|_IOC_WRITE, 0x565d, 0x4c }, +{ "linux/videodev2.h", "VIDIOC_QBUF", _IOC_READ|_IOC_WRITE, 0x560f, 0x4c }, +{ "linux/videodev2.h", "VIDIOC_QUERYBUF", _IOC_READ|_IOC_WRITE, 0x5609, 0x4c }, { "linux/videodev2.h", "VIDIOC_QUERYCAP", _IOC_READ, 0x5600, 0x68 }, { "linux/videodev2.h", "VIDIOC_QUERYCTRL", _IOC_READ|_IOC_WRITE, 0x5624, 0x44 }, { "linux/videodev2.h", "VIDIOC_QUERYMENU", _IOC_READ|_IOC_WRITE, 0x5625, 0x2c }, @@ -2329,6 +2415,8 @@ { "linux/vt.h", "VT_WAITACTIVE", 0, 0x5607, 0 }, { "linux/vt.h", "VT_WAITEVENT", 0, 0x560E, 0 }, { "linux/vtpm_proxy.h", "VTPM_PROXY_IOC_NEW_DEV", _IOC_READ|_IOC_WRITE, 0xa100, 0x14 }, +{ "linux/watch_queue.h", "IOC_WATCH_QUEUE_SET_FILTER", _IOC_NONE, 0x5761, 0x00 }, +{ "linux/watch_queue.h", "IOC_WATCH_QUEUE_SET_SIZE", _IOC_NONE, 0x5760, 0x00 }, { "linux/watchdog.h", "WDIOC_GETBOOTSTATUS", _IOC_READ, 0x5702, 0x04 }, { "linux/watchdog.h", "WDIOC_GETPRETIMEOUT", _IOC_READ, 0x5709, 0x04 }, { "linux/watchdog.h", "WDIOC_GETSTATUS", _IOC_READ, 0x5701, 0x04 }, @@ -2404,7 +2492,12 @@ { "media/i2c/saa6588.h", "SAA6588_CMD_READ", _IOC_READ, 0x5203, 0x04 }, { "media/v4l2-common.h", "TUNER_SET_CONFIG", _IOC_WRITE, 0x645c, 0x08 }, { "media/v4l2-common.h", "VIDIOC_INT_RESET", _IOC_WRITE, 0x6466, 0x04 }, -{ "media/v4l2-subdev.h", "V4L2_DEVICE_NOTIFY_EVENT", _IOC_WRITE, 0x7602, 0x78 }, +{ "media/v4l2-ioctl.h", "VIDIOC_DQBUF_TIME32", _IOC_READ|_IOC_WRITE, 0x5611, 0x44 }, +{ "media/v4l2-ioctl.h", "VIDIOC_DQEVENT_TIME32", _IOC_READ, 0x5659, 0x78 }, +{ "media/v4l2-ioctl.h", "VIDIOC_PREPARE_BUF_TIME32", _IOC_READ|_IOC_WRITE, 0x565d, 0x44 }, +{ "media/v4l2-ioctl.h", "VIDIOC_QBUF_TIME32", _IOC_READ|_IOC_WRITE, 0x560f, 0x44 }, +{ "media/v4l2-ioctl.h", "VIDIOC_QUERYBUF_TIME32", _IOC_READ|_IOC_WRITE, 0x5609, 0x44 }, +{ "media/v4l2-subdev.h", "V4L2_DEVICE_NOTIFY_EVENT", _IOC_WRITE, 0x7602, 0x80 }, { "media/v4l2-subdev.h", "V4L2_SUBDEV_IR_RX_NOTIFY", _IOC_WRITE, 0x7600, 0x04 }, { "media/v4l2-subdev.h", "V4L2_SUBDEV_IR_TX_NOTIFY", _IOC_WRITE, 0x7601, 0x04 }, { "misc/cxl.h", "CXL_IOCTL_DOWNLOAD_IMAGE", _IOC_WRITE, 0xca0a, 0x40 }, @@ -2417,8 +2510,11 @@ { "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_ATTACH", _IOC_NONE, 0x5204, 0x00 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_CREATE", _IOC_READ|_IOC_WRITE, 0x5205, 0x18 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_INVOKE", _IOC_READ|_IOC_WRITE, 0x5203, 0x10 }, +{ "misc/fastrpc.h", "FASTRPC_IOCTL_MMAP", _IOC_READ|_IOC_WRITE, 0x5206, 0x20 }, +{ "misc/fastrpc.h", "FASTRPC_IOCTL_MUNMAP", _IOC_READ|_IOC_WRITE, 0x5207, 0x10 }, { "misc/habanalabs.h", "HL_IOCTL_CB", _IOC_READ|_IOC_WRITE, 0x4802, 0x18 }, { "misc/habanalabs.h", "HL_IOCTL_CS", _IOC_READ|_IOC_WRITE, 0x4803, 0x2c }, +{ "misc/habanalabs.h", "HL_IOCTL_DEBUG", _IOC_READ|_IOC_WRITE, 0x4806, 0x28 }, { "misc/habanalabs.h", "HL_IOCTL_INFO", _IOC_READ|_IOC_WRITE, 0x4801, 0x18 }, { "misc/habanalabs.h", "HL_IOCTL_MEMORY", _IOC_READ|_IOC_WRITE, 0x4805, 0x28 }, { "misc/habanalabs.h", "HL_IOCTL_WAIT_CS", _IOC_READ|_IOC_WRITE, 0x4804, 0x18 }, @@ -2429,6 +2525,23 @@ { "misc/ocxl.h", "OCXL_IOCTL_IRQ_ALLOC", _IOC_READ, 0xca11, 0x08 }, { "misc/ocxl.h", "OCXL_IOCTL_IRQ_FREE", _IOC_WRITE, 0xca12, 0x08 }, { "misc/ocxl.h", "OCXL_IOCTL_IRQ_SET_FD", _IOC_WRITE, 0xca13, 0x10 }, +{ "misc/uacce/hisi_qm.h", "UACCE_CMD_QM_SET_QP_CTX", _IOC_READ|_IOC_WRITE, 0x480a, 0x04 }, +{ "misc/uacce/uacce.h", "UACCE_CMD_PUT_Q", _IOC_NONE, 0x5701, 0x00 }, +{ "misc/uacce/uacce.h", "UACCE_CMD_START_Q", _IOC_NONE, 0x5700, 0x00 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_ADD_LDPC_CODE_PARAMS", _IOC_WRITE, 0x6605, 0x4c }, +{ "misc/xilinx_sdfec.h", "XSDFEC_CLEAR_STATS", _IOC_NONE, 0x660b, 0x00 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_GET_CONFIG", _IOC_READ, 0x6606, 0x1c }, +{ "misc/xilinx_sdfec.h", "XSDFEC_GET_STATS", _IOC_READ, 0x660c, 0x0c }, +{ "misc/xilinx_sdfec.h", "XSDFEC_GET_STATUS", _IOC_READ, 0x6602, 0x08 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_GET_TURBO", _IOC_READ, 0x6607, 0x08 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_IS_ACTIVE", _IOC_READ, 0x660a, 0x01 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_SET_BYPASS", _IOC_WRITE, 0x6609, 0x01 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_SET_DEFAULT_CONFIG", _IOC_NONE, 0x660d, 0x00 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_SET_IRQ", _IOC_WRITE, 0x6603, 0x02 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_SET_ORDER", _IOC_WRITE, 0x6608, 0x04 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_SET_TURBO", _IOC_WRITE, 0x6604, 0x08 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_START_DEV", _IOC_NONE, 0x6600, 0x00 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_STOP_DEV", _IOC_NONE, 0x6601, 0x00 }, { "mtd/mtd-abi.h", "ECCGETLAYOUT", _IOC_READ, 0x4d11, 0x148 }, { "mtd/mtd-abi.h", "ECCGETSTATS", _IOC_READ, 0x4d12, 0x10 }, { "mtd/mtd-abi.h", "MEMERASE", _IOC_WRITE, 0x4d02, 0x08 }, @@ -2667,7 +2780,8 @@ { "sound/asound.h", "SNDRV_TIMER_IOCTL_START", _IOC_NONE, 0x54a0, 0x00 }, { "sound/asound.h", "SNDRV_TIMER_IOCTL_STATUS", _IOC_READ, 0x5414, 0x58 }, { "sound/asound.h", "SNDRV_TIMER_IOCTL_STOP", _IOC_NONE, 0x54a1, 0x00 }, -{ "sound/asound.h", "SNDRV_TIMER_IOCTL_TREAD", _IOC_WRITE, 0x5402, 0x04 }, +{ "sound/asound.h", "SNDRV_TIMER_IOCTL_TREAD64", _IOC_WRITE, 0x54a4, 0x04 }, +{ "sound/asound.h", "SNDRV_TIMER_IOCTL_TREAD_OLD", _IOC_WRITE, 0x5402, 0x04 }, { "sound/asound_fm.h", "SNDRV_DM_FM_IOCTL_CLEAR_PATCHES", _IOC_NONE, 0x4840, 0x00 }, { "sound/asound_fm.h", "SNDRV_DM_FM_IOCTL_INFO", _IOC_READ, 0x4820, 0x02 }, { "sound/asound_fm.h", "SNDRV_DM_FM_IOCTL_PLAY_NOTE", _IOC_WRITE, 0x4822, 0x0c }, @@ -2725,6 +2839,10 @@ { "sound/hdspm.h", "SNDRV_HDSPM_IOCTL_GET_PEAK_RMS", _IOC_READ, 0x4842, 0x908 }, { "sound/hdspm.h", "SNDRV_HDSPM_IOCTL_GET_STATUS", _IOC_READ, 0x4847, 0x1c }, { "sound/hdspm.h", "SNDRV_HDSPM_IOCTL_GET_VERSION", _IOC_READ, 0x4848, 0x24 }, +{ "sound/pcm.h", "SNDRV_PCM_IOCTL_STATUS32", _IOC_READ, 0x4120, 0x6c }, +{ "sound/pcm.h", "SNDRV_PCM_IOCTL_STATUS64", _IOC_READ, 0x4120, 0x80 }, +{ "sound/pcm.h", "SNDRV_PCM_IOCTL_STATUS_EXT32", _IOC_READ|_IOC_WRITE, 0x4124, 0x6c }, +{ "sound/pcm.h", "SNDRV_PCM_IOCTL_STATUS_EXT64", _IOC_READ|_IOC_WRITE, 0x4124, 0x80 }, { "sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_INFO", _IOC_READ, 0x4810, 0x28 }, { "sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_LOAD_CODE", _IOC_WRITE, 0x4811, 0x3012 }, { "sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_PAUSE", _IOC_NONE, 0x4815, 0x00 }, @@ -2751,15 +2869,6 @@ { "staging/android/ashmem.h", "ASHMEM_UNPIN", _IOC_WRITE, 0x7708, 0x08 }, { "staging/android/ion.h", "ION_IOC_ALLOC", _IOC_READ|_IOC_WRITE, 0x4900, 0x18 }, { "staging/android/ion.h", "ION_IOC_HEAP_QUERY", _IOC_READ|_IOC_WRITE, 0x4908, 0x18 }, -{ "staging/android/vsoc_shm.h", "VSOC_COND_WAIT", _IOC_READ|_IOC_WRITE, 0xf507, 0x20 }, -{ "staging/android/vsoc_shm.h", "VSOC_COND_WAKE", _IOC_NONE, 0xf508, 0x00 }, -{ "staging/android/vsoc_shm.h", "VSOC_CREATE_FD_SCOPED_PERMISSION", _IOC_WRITE, 0xf500, 0x10 }, -{ "staging/android/vsoc_shm.h", "VSOC_DESCRIBE_REGION", _IOC_READ, 0xf504, 0x3c }, -{ "staging/android/vsoc_shm.h", "VSOC_GET_FD_SCOPED_PERMISSION", _IOC_READ, 0xf501, 0x10 }, -{ "staging/android/vsoc_shm.h", "VSOC_MAYBE_SEND_INTERRUPT_TO_HOST", _IOC_NONE, 0xf502, 0x00 }, -{ "staging/android/vsoc_shm.h", "VSOC_SELF_INTERRUPT", _IOC_NONE, 0xf505, 0x00 }, -{ "staging/android/vsoc_shm.h", "VSOC_SEND_INTERRUPT_TO_HOST", _IOC_NONE, 0xf506, 0x00 }, -{ "staging/android/vsoc_shm.h", "VSOC_WAIT_FOR_INCOMING_INTERRUPT", _IOC_NONE, 0xf503, 0x00 }, { "video/da8xx-fb.h", "FBIGET_BRIGHTNESS", _IOC_READ, 0x4603, 0x04 }, { "video/da8xx-fb.h", "FBIGET_COLOR", _IOC_READ, 0x4605, 0x04 }, { "video/da8xx-fb.h", "FBIOGET_CONTRAST", _IOC_READ, 0x4601, 0x04 }, diff --git a/linux/32/ioctls_inc_align64.h b/linux/32/ioctls_inc_align64.h index 7df239e1..881c9ab1 100644 --- a/linux/32/ioctls_inc_align64.h +++ b/linux/32/ioctls_inc_align64.h @@ -81,8 +81,8 @@ { "asm-generic/sockios.h", "FIOSETOWN", 0, 0x8901, 0 }, { "asm-generic/sockios.h", "SIOCATMARK", 0, 0x8905, 0 }, { "asm-generic/sockios.h", "SIOCGPGRP", 0, 0x8904, 0 }, -{ "asm-generic/sockios.h", "SIOCGSTAMP", 0, 0x8906, 0 }, -{ "asm-generic/sockios.h", "SIOCGSTAMPNS", 0, 0x8907, 0 }, +{ "asm-generic/sockios.h", "SIOCGSTAMPNS_OLD", 0, 0x8907, 0 }, +{ "asm-generic/sockios.h", "SIOCGSTAMP_OLD", 0, 0x8906, 0 }, { "asm-generic/sockios.h", "SIOCSPGRP", 0, 0x8902, 0 }, { "drm/amdgpu_drm.h", "DRM_IOCTL_AMDGPU_BO_LIST", _IOC_READ|_IOC_WRITE, 0x6443, 0x18 }, { "drm/amdgpu_drm.h", "DRM_IOCTL_AMDGPU_CS", _IOC_READ|_IOC_WRITE, 0x6444, 0x18 }, @@ -155,6 +155,7 @@ { "drm/drm.h", "DRM_IOCTL_MODE_GETCRTC", _IOC_READ|_IOC_WRITE, 0x64a1, 0x68 }, { "drm/drm.h", "DRM_IOCTL_MODE_GETENCODER", _IOC_READ|_IOC_WRITE, 0x64a6, 0x14 }, { "drm/drm.h", "DRM_IOCTL_MODE_GETFB", _IOC_READ|_IOC_WRITE, 0x64ad, 0x1c }, +{ "drm/drm.h", "DRM_IOCTL_MODE_GETFB2", _IOC_READ|_IOC_WRITE, 0x64ce, 0x68 }, { "drm/drm.h", "DRM_IOCTL_MODE_GETGAMMA", _IOC_READ|_IOC_WRITE, 0x64a4, 0x20 }, { "drm/drm.h", "DRM_IOCTL_MODE_GETPLANE", _IOC_READ|_IOC_WRITE, 0x64b6, 0x20 }, { "drm/drm.h", "DRM_IOCTL_MODE_GETPLANERESOURCES", _IOC_READ|_IOC_WRITE, 0x64b5, 0x10 }, @@ -193,8 +194,12 @@ { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_DESTROY", _IOC_READ|_IOC_WRITE, 0x64c0, 0x08 }, { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_FD_TO_HANDLE", _IOC_READ|_IOC_WRITE, 0x64c2, 0x10 }, { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD", _IOC_READ|_IOC_WRITE, 0x64c1, 0x10 }, +{ "drm/drm.h", "DRM_IOCTL_SYNCOBJ_QUERY", _IOC_READ|_IOC_WRITE, 0x64cb, 0x18 }, { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_RESET", _IOC_READ|_IOC_WRITE, 0x64c4, 0x10 }, { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_SIGNAL", _IOC_READ|_IOC_WRITE, 0x64c5, 0x10 }, +{ "drm/drm.h", "DRM_IOCTL_SYNCOBJ_TIMELINE_SIGNAL", _IOC_READ|_IOC_WRITE, 0x64cd, 0x18 }, +{ "drm/drm.h", "DRM_IOCTL_SYNCOBJ_TIMELINE_WAIT", _IOC_READ|_IOC_WRITE, 0x64ca, 0x28 }, +{ "drm/drm.h", "DRM_IOCTL_SYNCOBJ_TRANSFER", _IOC_READ|_IOC_WRITE, 0x64cc, 0x20 }, { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_WAIT", _IOC_READ|_IOC_WRITE, 0x64c3, 0x20 }, { "drm/drm.h", "DRM_IOCTL_UNBLOCK", _IOC_READ|_IOC_WRITE, 0x6413, 0x04 }, { "drm/drm.h", "DRM_IOCTL_UNLOCK", _IOC_WRITE, 0x642b, 0x08 }, @@ -247,6 +252,7 @@ { "drm/i915_drm.h", "DRM_IOCTL_I915_FREE", _IOC_WRITE, 0x6449, 0x08 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_BUSY", _IOC_READ|_IOC_WRITE, 0x6457, 0x08 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_CONTEXT_CREATE", _IOC_READ|_IOC_WRITE, 0x646d, 0x08 }, +{ "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT", _IOC_READ|_IOC_WRITE, 0x646d, 0x10 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_CONTEXT_DESTROY", _IOC_WRITE, 0x646e, 0x08 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM", _IOC_READ|_IOC_WRITE, 0x6474, 0x18 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM", _IOC_READ|_IOC_WRITE, 0x6475, 0x18 }, @@ -263,6 +269,7 @@ { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_MADVISE", _IOC_READ|_IOC_WRITE, 0x6466, 0x0c }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_MMAP", _IOC_READ|_IOC_WRITE, 0x645e, 0x28 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_MMAP_GTT", _IOC_READ|_IOC_WRITE, 0x6464, 0x10 }, +{ "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_MMAP_OFFSET", _IOC_READ|_IOC_WRITE, 0x6464, 0x20 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_PIN", _IOC_READ|_IOC_WRITE, 0x6455, 0x18 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_PREAD", _IOC_WRITE, 0x645c, 0x20 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_PWRITE", _IOC_WRITE, 0x645d, 0x20 }, @@ -273,6 +280,8 @@ { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_THROTTLE", _IOC_NONE, 0x6458, 0x00 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_UNPIN", _IOC_WRITE, 0x6456, 0x08 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_USERPTR", _IOC_READ|_IOC_WRITE, 0x6473, 0x18 }, +{ "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_VM_CREATE", _IOC_READ|_IOC_WRITE, 0x647a, 0x10 }, +{ "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_VM_DESTROY", _IOC_WRITE, 0x647b, 0x10 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_WAIT", _IOC_READ|_IOC_WRITE, 0x646c, 0x10 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GETPARAM", _IOC_READ|_IOC_WRITE, 0x6446, 0x08 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GET_PIPE_FROM_CRTC_ID", _IOC_READ|_IOC_WRITE, 0x6465, 0x08 }, @@ -295,8 +304,16 @@ { "drm/i915_drm.h", "DRM_IOCTL_I915_SET_SPRITE_COLORKEY", _IOC_READ|_IOC_WRITE, 0x646b, 0x14 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_SET_VBLANK_PIPE", _IOC_WRITE, 0x644d, 0x04 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_VBLANK_SWAP", _IOC_READ|_IOC_WRITE, 0x644f, 0x0c }, +{ "drm/i915_drm.h", "I915_PERF_IOCTL_CONFIG", _IOC_NONE, 0x6902, 0x00 }, { "drm/i915_drm.h", "I915_PERF_IOCTL_DISABLE", _IOC_NONE, 0x6901, 0x00 }, { "drm/i915_drm.h", "I915_PERF_IOCTL_ENABLE", _IOC_NONE, 0x6900, 0x00 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_CTX_CREATE", _IOC_READ, 0x6445, 0x08 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_CTX_FREE", _IOC_WRITE, 0x6446, 0x08 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_GEM_CREATE", _IOC_READ|_IOC_WRITE, 0x6441, 0x10 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_GEM_INFO", _IOC_READ|_IOC_WRITE, 0x6442, 0x10 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_GEM_SUBMIT", _IOC_WRITE, 0x6443, 0x30 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_GEM_WAIT", _IOC_WRITE, 0x6444, 0x10 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6440, 0x10 }, { "drm/mga_drm.h", "DRM_IOCTL_MGA_BLIT", _IOC_WRITE, 0x6448, 0x34 }, { "drm/mga_drm.h", "DRM_IOCTL_MGA_CLEAR", _IOC_WRITE, 0x6444, 0x14 }, { "drm/mga_drm.h", "DRM_IOCTL_MGA_DMA_BOOTSTRAP", _IOC_READ|_IOC_WRITE, 0x644c, 0x1c }, @@ -315,10 +332,11 @@ { "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_INFO", _IOC_READ|_IOC_WRITE, 0x6443, 0x18 }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_MADVISE", _IOC_READ|_IOC_WRITE, 0x6448, 0x0c }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_NEW", _IOC_READ|_IOC_WRITE, 0x6442, 0x10 }, -{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_SUBMIT", _IOC_READ|_IOC_WRITE, 0x6446, 0x28 }, +{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_SUBMIT", _IOC_READ|_IOC_WRITE, 0x6446, 0x48 }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6440, 0x10 }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_SUBMITQUEUE_CLOSE", _IOC_WRITE, 0x644b, 0x04 }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_SUBMITQUEUE_NEW", _IOC_READ|_IOC_WRITE, 0x644a, 0x0c }, +{ "drm/msm_drm.h", "DRM_IOCTL_MSM_SUBMITQUEUE_QUERY", _IOC_WRITE, 0x644c, 0x18 }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_WAIT_FENCE", _IOC_WRITE, 0x6447, 0x20 }, { "drm/nouveau_drm.h", "DRM_IOCTL_NOUVEAU_GEM_CPU_FINI", _IOC_WRITE, 0x6483, 0x04 }, { "drm/nouveau_drm.h", "DRM_IOCTL_NOUVEAU_GEM_CPU_PREP", _IOC_WRITE, 0x6482, 0x08 }, @@ -333,6 +351,15 @@ { "drm/omap_drm.h", "DRM_IOCTL_OMAP_GEM_NEW", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 }, { "drm/omap_drm.h", "DRM_IOCTL_OMAP_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6440, 0x10 }, { "drm/omap_drm.h", "DRM_IOCTL_OMAP_SET_PARAM", _IOC_WRITE, 0x6441, 0x10 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_CREATE_BO", _IOC_READ|_IOC_WRITE, 0x6442, 0x18 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_GET_BO_OFFSET", _IOC_READ|_IOC_WRITE, 0x6445, 0x10 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6444, 0x10 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_MADVISE", _IOC_READ|_IOC_WRITE, 0x6448, 0x0c }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_MMAP_BO", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_PERFCNT_DUMP", _IOC_WRITE, 0x6447, 0x08 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_PERFCNT_ENABLE", _IOC_WRITE, 0x6446, 0x08 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_SUBMIT", _IOC_WRITE, 0x6440, 0x28 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_WAIT_BO", _IOC_WRITE, 0x6441, 0x10 }, { "drm/qxl_drm.h", "DRM_IOCTL_QXL_ALLOC", _IOC_READ|_IOC_WRITE, 0x6440, 0x08 }, { "drm/qxl_drm.h", "DRM_IOCTL_QXL_ALLOC_SURF", _IOC_READ|_IOC_WRITE, 0x6446, 0x18 }, { "drm/qxl_drm.h", "DRM_IOCTL_QXL_CLIENTCAP", _IOC_WRITE, 0x6445, 0x08 }, @@ -428,6 +455,7 @@ { "drm/v3d_drm.h", "DRM_IOCTL_V3D_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6444, 0x10 }, { "drm/v3d_drm.h", "DRM_IOCTL_V3D_MMAP_BO", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 }, { "drm/v3d_drm.h", "DRM_IOCTL_V3D_SUBMIT_CL", _IOC_READ|_IOC_WRITE, 0x6440, 0x38 }, +{ "drm/v3d_drm.h", "DRM_IOCTL_V3D_SUBMIT_CSD", _IOC_WRITE, 0x6447, 0x48 }, { "drm/v3d_drm.h", "DRM_IOCTL_V3D_SUBMIT_TFU", _IOC_WRITE, 0x6446, 0x44 }, { "drm/v3d_drm.h", "DRM_IOCTL_V3D_WAIT_BO", _IOC_READ|_IOC_WRITE, 0x6441, 0x10 }, { "drm/vc4_drm.h", "DRM_IOCTL_VC4_CREATE_BO", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 }, @@ -537,6 +565,8 @@ { "linux/arcfb.h", "FBIO_WAITEVENT", _IOC_NONE, 0x4688, 0x00 }, { "linux/aspeed-lpc-ctrl.h", "ASPEED_LPC_CTRL_IOCTL_GET_SIZE", _IOC_READ|_IOC_WRITE, 0xb200, 0x10 }, { "linux/aspeed-lpc-ctrl.h", "ASPEED_LPC_CTRL_IOCTL_MAP", _IOC_WRITE, 0xb201, 0x10 }, +{ "linux/aspeed-p2a-ctrl.h", "ASPEED_P2A_CTRL_IOCTL_GET_MEMORY_CONFIG", _IOC_READ|_IOC_WRITE, 0xb301, 0x10 }, +{ "linux/aspeed-p2a-ctrl.h", "ASPEED_P2A_CTRL_IOCTL_SET_WINDOW", _IOC_WRITE, 0xb300, 0x10 }, { "linux/atm_eni.h", "ENI_MEMDUMP", _IOC_WRITE, 0x6160, 0x0c }, { "linux/atm_eni.h", "ENI_SETMULT", _IOC_WRITE, 0x6167, 0x0c }, { "linux/atm_he.h", "HE_GET_REG", _IOC_WRITE, 0x6160, 0x0c }, @@ -613,8 +643,11 @@ { "linux/auto_fs.h", "AUTOFS_IOC_SETTIMEOUT", _IOC_READ|_IOC_WRITE, 0x9364, 0x04 }, { "linux/auto_fs.h", "AUTOFS_IOC_SETTIMEOUT32", _IOC_READ|_IOC_WRITE, 0x9364, 0x04 }, { "linux/blkpg.h", "BLKPG", _IOC_NONE, 0x1269, 0x00 }, +{ "linux/blkzoned.h", "BLKCLOSEZONE", _IOC_WRITE, 0x1287, 0x10 }, +{ "linux/blkzoned.h", "BLKFINISHZONE", _IOC_WRITE, 0x1288, 0x10 }, { "linux/blkzoned.h", "BLKGETNRZONES", _IOC_READ, 0x1285, 0x04 }, { "linux/blkzoned.h", "BLKGETZONESZ", _IOC_READ, 0x1284, 0x04 }, +{ "linux/blkzoned.h", "BLKOPENZONE", _IOC_WRITE, 0x1286, 0x10 }, { "linux/blkzoned.h", "BLKREPORTZONE", _IOC_READ|_IOC_WRITE, 0x1282, 0x10 }, { "linux/blkzoned.h", "BLKRESETZONE", _IOC_WRITE, 0x1283, 0x10 }, { "linux/bt-bmc.h", "BT_BMC_IOCTL_SMS_ATN", _IOC_NONE, 0xb100, 0x00 }, @@ -664,6 +697,7 @@ { "linux/btrfs.h", "BTRFS_IOC_SNAP_CREATE", _IOC_WRITE, 0x9401, 0x1000 }, { "linux/btrfs.h", "BTRFS_IOC_SNAP_CREATE_V2", _IOC_WRITE, 0x9417, 0x1000 }, { "linux/btrfs.h", "BTRFS_IOC_SNAP_DESTROY", _IOC_WRITE, 0x940f, 0x1000 }, +{ "linux/btrfs.h", "BTRFS_IOC_SNAP_DESTROY_V2", _IOC_WRITE, 0x943f, 0x1000 }, { "linux/btrfs.h", "BTRFS_IOC_SPACE_INFO", _IOC_READ|_IOC_WRITE, 0x9414, 0x10 }, { "linux/btrfs.h", "BTRFS_IOC_START_SYNC", _IOC_READ, 0x9418, 0x08 }, { "linux/btrfs.h", "BTRFS_IOC_SUBVOL_CREATE", _IOC_WRITE, 0x940e, 0x1000 }, @@ -752,6 +786,7 @@ { "linux/cdrom.h", "DVD_READ_STRUCT", 0, 0x5390, 0 }, { "linux/cdrom.h", "DVD_WRITE_STRUCT", 0, 0x5391, 0 }, { "linux/cec.h", "CEC_ADAP_G_CAPS", _IOC_READ|_IOC_WRITE, 0x6100, 0x4c }, +{ "linux/cec.h", "CEC_ADAP_G_CONNECTOR_INFO", _IOC_READ, 0x610a, 0x44 }, { "linux/cec.h", "CEC_ADAP_G_LOG_ADDRS", _IOC_READ, 0x6103, 0x5c }, { "linux/cec.h", "CEC_ADAP_G_PHYS_ADDR", _IOC_READ, 0x6101, 0x02 }, { "linux/cec.h", "CEC_ADAP_S_LOG_ADDRS", _IOC_READ|_IOC_WRITE, 0x6104, 0x5c }, @@ -787,6 +822,7 @@ { "linux/dm-ioctl.h", "DM_DEV_STATUS", _IOC_READ|_IOC_WRITE, 0xfd07, 0x138 }, { "linux/dm-ioctl.h", "DM_DEV_SUSPEND", _IOC_READ|_IOC_WRITE, 0xfd06, 0x138 }, { "linux/dm-ioctl.h", "DM_DEV_WAIT", _IOC_READ|_IOC_WRITE, 0xfd08, 0x138 }, +{ "linux/dm-ioctl.h", "DM_GET_TARGET_VERSION", _IOC_READ|_IOC_WRITE, 0xfd11, 0x138 }, { "linux/dm-ioctl.h", "DM_LIST_DEVICES", _IOC_READ|_IOC_WRITE, 0xfd02, 0x138 }, { "linux/dm-ioctl.h", "DM_LIST_VERSIONS", _IOC_READ|_IOC_WRITE, 0xfd0d, 0x138 }, { "linux/dm-ioctl.h", "DM_REMOVE_ALL", _IOC_READ|_IOC_WRITE, 0xfd01, 0x138 }, @@ -797,6 +833,9 @@ { "linux/dm-ioctl.h", "DM_TARGET_MSG", _IOC_READ|_IOC_WRITE, 0xfd0e, 0x138 }, { "linux/dm-ioctl.h", "DM_VERSION", _IOC_READ|_IOC_WRITE, 0xfd00, 0x138 }, { "linux/dma-buf.h", "DMA_BUF_IOCTL_SYNC", _IOC_WRITE, 0x6200, 0x08 }, +{ "linux/dma-buf.h", "DMA_BUF_SET_NAME_A", _IOC_WRITE, 0x6201, 0x04 }, +{ "linux/dma-buf.h", "DMA_BUF_SET_NAME_B", _IOC_WRITE, 0x6201, 0x08 }, +{ "linux/dma-heap.h", "DMA_HEAP_IOCTL_ALLOC", _IOC_READ|_IOC_WRITE, 0x4800, 0x18 }, { "linux/dn.h", "OSIOCGNETADDR", _IOC_READ, 0x89e1, 0x04 }, { "linux/dn.h", "OSIOCSNETADDR", _IOC_WRITE, 0x89e0, 0x04 }, { "linux/dn.h", "SIOCGNETADDR", _IOC_READ, 0x89e1, 0x04 }, @@ -953,13 +992,21 @@ { "linux/firewire-cdev.h", "FW_CDEV_IOC_START_ISO", _IOC_WRITE, 0x230a, 0x10 }, { "linux/firewire-cdev.h", "FW_CDEV_IOC_STOP_ISO", _IOC_WRITE, 0x230b, 0x04 }, { "linux/fpga-dfl.h", "DFL_FPGA_CHECK_EXTENSION", _IOC_NONE, 0xb601, 0x00 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_FME_ERR_GET_IRQ_NUM", _IOC_READ, 0xb683, 0x04 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_FME_ERR_SET_IRQ", _IOC_WRITE, 0xb684, 0x08 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_FME_PORT_ASSIGN", _IOC_WRITE, 0xb682, 0x04 }, { "linux/fpga-dfl.h", "DFL_FPGA_FME_PORT_PR", _IOC_NONE, 0xb680, 0x00 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_FME_PORT_RELEASE", _IOC_WRITE, 0xb681, 0x04 }, { "linux/fpga-dfl.h", "DFL_FPGA_GET_API_VERSION", _IOC_NONE, 0xb600, 0x00 }, { "linux/fpga-dfl.h", "DFL_FPGA_PORT_DMA_MAP", _IOC_NONE, 0xb643, 0x00 }, { "linux/fpga-dfl.h", "DFL_FPGA_PORT_DMA_UNMAP", _IOC_NONE, 0xb644, 0x00 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_PORT_ERR_GET_IRQ_NUM", _IOC_READ, 0xb645, 0x04 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_PORT_ERR_SET_IRQ", _IOC_WRITE, 0xb646, 0x08 }, { "linux/fpga-dfl.h", "DFL_FPGA_PORT_GET_INFO", _IOC_NONE, 0xb641, 0x00 }, { "linux/fpga-dfl.h", "DFL_FPGA_PORT_GET_REGION_INFO", _IOC_NONE, 0xb642, 0x00 }, { "linux/fpga-dfl.h", "DFL_FPGA_PORT_RESET", _IOC_NONE, 0xb640, 0x00 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_PORT_UINT_GET_IRQ_NUM", _IOC_READ, 0xb647, 0x04 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_PORT_UINT_SET_IRQ", _IOC_WRITE, 0xb648, 0x08 }, { "linux/fs.h", "BLKALIGNOFF", _IOC_NONE, 0x127a, 0x00 }, { "linux/fs.h", "BLKBSZGET", _IOC_READ, 0x1270, 0x04 }, { "linux/fs.h", "BLKBSZSET", _IOC_WRITE, 0x1271, 0x04 }, @@ -1006,12 +1053,18 @@ { "linux/fs.h", "FS_IOC_GETFLAGS", _IOC_READ, 0x6601, 0x04 }, { "linux/fs.h", "FS_IOC_GETFSLABEL", _IOC_READ, 0x9431, 0x100 }, { "linux/fs.h", "FS_IOC_GETVERSION", _IOC_READ, 0x7601, 0x04 }, -{ "linux/fs.h", "FS_IOC_GET_ENCRYPTION_POLICY", _IOC_WRITE, 0x6615, 0x0c }, -{ "linux/fs.h", "FS_IOC_GET_ENCRYPTION_PWSALT", _IOC_WRITE, 0x6614, 0x10 }, { "linux/fs.h", "FS_IOC_SETFLAGS", _IOC_WRITE, 0x6602, 0x04 }, { "linux/fs.h", "FS_IOC_SETFSLABEL", _IOC_WRITE, 0x9432, 0x100 }, { "linux/fs.h", "FS_IOC_SETVERSION", _IOC_WRITE, 0x7602, 0x04 }, -{ "linux/fs.h", "FS_IOC_SET_ENCRYPTION_POLICY", _IOC_READ, 0x6613, 0x0c }, +{ "linux/fscrypt.h", "FS_IOC_ADD_ENCRYPTION_KEY", _IOC_READ|_IOC_WRITE, 0x6617, 0x50 }, +{ "linux/fscrypt.h", "FS_IOC_GET_ENCRYPTION_KEY_STATUS", _IOC_READ|_IOC_WRITE, 0x661a, 0x80 }, +{ "linux/fscrypt.h", "FS_IOC_GET_ENCRYPTION_NONCE", _IOC_READ, 0x661b, 0x10 }, +{ "linux/fscrypt.h", "FS_IOC_GET_ENCRYPTION_POLICY", _IOC_WRITE, 0x6615, 0x0c }, +{ "linux/fscrypt.h", "FS_IOC_GET_ENCRYPTION_POLICY_EX", _IOC_READ|_IOC_WRITE, 0x6616, 0x09 }, +{ "linux/fscrypt.h", "FS_IOC_GET_ENCRYPTION_PWSALT", _IOC_WRITE, 0x6614, 0x10 }, +{ "linux/fscrypt.h", "FS_IOC_REMOVE_ENCRYPTION_KEY", _IOC_READ|_IOC_WRITE, 0x6618, 0x40 }, +{ "linux/fscrypt.h", "FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS", _IOC_READ|_IOC_WRITE, 0x6619, 0x40 }, +{ "linux/fscrypt.h", "FS_IOC_SET_ENCRYPTION_POLICY", _IOC_READ, 0x6613, 0x0c }, { "linux/fsi.h", "FSI_SCOM_CHECK", _IOC_READ, 0x7300, 0x04 }, { "linux/fsi.h", "FSI_SCOM_READ", _IOC_READ|_IOC_WRITE, 0x7301, 0x20 }, { "linux/fsi.h", "FSI_SCOM_RESET", _IOC_WRITE, 0x7303, 0x04 }, @@ -1035,6 +1088,8 @@ { "linux/fsl_hypervisor.h", "FSL_HV_IOCTL_PARTITION_STOP", _IOC_READ|_IOC_WRITE, 0xaf04, 0x08 }, { "linux/fsl_hypervisor.h", "FSL_HV_IOCTL_SETPROP", _IOC_READ|_IOC_WRITE, 0xaf08, 0x28 }, { "linux/fsmap.h", "FS_IOC_GETFSMAP", _IOC_READ|_IOC_WRITE, 0x583b, 0xc0 }, +{ "linux/fsverity.h", "FS_IOC_ENABLE_VERITY", _IOC_WRITE, 0x6685, 0x80 }, +{ "linux/fsverity.h", "FS_IOC_MEASURE_VERITY", _IOC_READ|_IOC_WRITE, 0x6686, 0x04 }, { "linux/fuse.h", "FUSE_DEV_IOC_CLONE", _IOC_READ, 0xe500, 0x04 }, { "linux/genwqe/genwqe_card.h", "GENWQE_EXECUTE_DDCB", _IOC_READ|_IOC_WRITE, 0xa532, 0xe8 }, { "linux/genwqe/genwqe_card.h", "GENWQE_EXECUTE_RAW_DDCB", _IOC_READ|_IOC_WRITE, 0xa533, 0xe8 }, @@ -1049,19 +1104,19 @@ { "linux/genwqe/genwqe_card.h", "GENWQE_WRITE_REG16", _IOC_WRITE, 0xa523, 0x10 }, { "linux/genwqe/genwqe_card.h", "GENWQE_WRITE_REG32", _IOC_WRITE, 0xa521, 0x10 }, { "linux/genwqe/genwqe_card.h", "GENWQE_WRITE_REG64", _IOC_WRITE, 0xa51f, 0x10 }, -{ "linux/gigaset_dev.h", "GIGASET_BRKCHARS", _IOC_WRITE, 0x4702, 0x06 }, -{ "linux/gigaset_dev.h", "GIGASET_CONFIG", _IOC_READ|_IOC_WRITE, 0x4701, 0x04 }, -{ "linux/gigaset_dev.h", "GIGASET_REDIR", _IOC_READ|_IOC_WRITE, 0x4700, 0x04 }, -{ "linux/gigaset_dev.h", "GIGASET_VERSION", _IOC_READ|_IOC_WRITE, 0x4703, 0x10 }, { "linux/gpio.h", "GPIOHANDLE_GET_LINE_VALUES_IOCTL", _IOC_READ|_IOC_WRITE, 0xb408, 0x40 }, +{ "linux/gpio.h", "GPIOHANDLE_SET_CONFIG_IOCTL", _IOC_READ|_IOC_WRITE, 0xb40a, 0x54 }, { "linux/gpio.h", "GPIOHANDLE_SET_LINE_VALUES_IOCTL", _IOC_READ|_IOC_WRITE, 0xb409, 0x40 }, { "linux/gpio.h", "GPIO_GET_CHIPINFO_IOCTL", _IOC_READ, 0xb401, 0x44 }, { "linux/gpio.h", "GPIO_GET_LINEEVENT_IOCTL", _IOC_READ|_IOC_WRITE, 0xb404, 0x30 }, { "linux/gpio.h", "GPIO_GET_LINEHANDLE_IOCTL", _IOC_READ|_IOC_WRITE, 0xb403, 0x16c }, { "linux/gpio.h", "GPIO_GET_LINEINFO_IOCTL", _IOC_READ|_IOC_WRITE, 0xb402, 0x48 }, +{ "linux/gpio.h", "GPIO_GET_LINEINFO_UNWATCH_IOCTL", _IOC_READ|_IOC_WRITE, 0xb40c, 0x04 }, +{ "linux/gpio.h", "GPIO_GET_LINEINFO_WATCH_IOCTL", _IOC_READ|_IOC_WRITE, 0xb40b, 0x48 }, { "linux/gsmmux.h", "GSMIOC_DISABLE_NET", _IOC_NONE, 0x4703, 0x00 }, { "linux/gsmmux.h", "GSMIOC_ENABLE_NET", _IOC_WRITE, 0x4702, 0x34 }, { "linux/gsmmux.h", "GSMIOC_GETCONF", _IOC_READ, 0x4700, 0x4c }, +{ "linux/gsmmux.h", "GSMIOC_GETFIRST", _IOC_READ, 0x4704, 0x04 }, { "linux/gsmmux.h", "GSMIOC_SETCONF", _IOC_WRITE, 0x4701, 0x4c }, { "linux/hdreg.h", "HDIO_DRIVE_CMD", 0, 0x031f, 0 }, { "linux/hdreg.h", "HDIO_DRIVE_RESET", 0, 0x031c, 0 }, @@ -1164,6 +1219,7 @@ { "linux/if_pppox.h", "PPPOEIOCSFWD", _IOC_WRITE, 0xb100, 0x04 }, { "linux/if_tun.h", "TUNATTACHFILTER", _IOC_WRITE, 0x54d5, 0x08 }, { "linux/if_tun.h", "TUNDETACHFILTER", _IOC_WRITE, 0x54d6, 0x08 }, +{ "linux/if_tun.h", "TUNGETDEVNETNS", _IOC_NONE, 0x54e3, 0x00 }, { "linux/if_tun.h", "TUNGETFEATURES", _IOC_READ, 0x54cf, 0x04 }, { "linux/if_tun.h", "TUNGETFILTER", _IOC_READ, 0x54db, 0x08 }, { "linux/if_tun.h", "TUNGETIFF", _IOC_READ, 0x54d2, 0x04 }, @@ -1231,44 +1287,11 @@ { "linux/ipmi_bmc.h", "IPMI_BMC_IOCTL_CLEAR_SMS_ATN", _IOC_NONE, 0xb101, 0x00 }, { "linux/ipmi_bmc.h", "IPMI_BMC_IOCTL_FORCE_ABORT", _IOC_NONE, 0xb102, 0x00 }, { "linux/ipmi_bmc.h", "IPMI_BMC_IOCTL_SET_SMS_ATN", _IOC_NONE, 0xb100, 0x00 }, -{ "linux/isdn.h", "IIOCDBGVAR", _IOC_NONE, 0x497f, 0x00 }, -{ "linux/isdn.h", "IIOCDRVCTL", _IOC_NONE, 0x4980, 0x00 }, -{ "linux/isdn.h", "IIOCGETCPS", _IOC_NONE, 0x4915, 0x00 }, -{ "linux/isdn.h", "IIOCGETDVR", _IOC_NONE, 0x4916, 0x00 }, -{ "linux/isdn.h", "IIOCGETMAP", _IOC_NONE, 0x4911, 0x00 }, -{ "linux/isdn.h", "IIOCGETPRF", _IOC_NONE, 0x490f, 0x00 }, -{ "linux/isdn.h", "IIOCGETSET", _IOC_NONE, 0x4908, 0x00 }, -{ "linux/isdn.h", "IIOCNETAIF", _IOC_NONE, 0x4901, 0x00 }, -{ "linux/isdn.h", "IIOCNETALN", _IOC_NONE, 0x4920, 0x00 }, -{ "linux/isdn.h", "IIOCNETANM", _IOC_NONE, 0x4905, 0x00 }, -{ "linux/isdn.h", "IIOCNETASL", _IOC_NONE, 0x4913, 0x00 }, -{ "linux/isdn.h", "IIOCNETDIF", _IOC_NONE, 0x4902, 0x00 }, -{ "linux/isdn.h", "IIOCNETDIL", _IOC_NONE, 0x4914, 0x00 }, -{ "linux/isdn.h", "IIOCNETDLN", _IOC_NONE, 0x4921, 0x00 }, -{ "linux/isdn.h", "IIOCNETDNM", _IOC_NONE, 0x4906, 0x00 }, -{ "linux/isdn.h", "IIOCNETDWRSET", _IOC_NONE, 0x4918, 0x00 }, -{ "linux/isdn.h", "IIOCNETGCF", _IOC_NONE, 0x4904, 0x00 }, -{ "linux/isdn.h", "IIOCNETGNM", _IOC_NONE, 0x4907, 0x00 }, -{ "linux/isdn.h", "IIOCNETGPN", _IOC_NONE, 0x4922, 0x00 }, -{ "linux/isdn.h", "IIOCNETHUP", _IOC_NONE, 0x490b, 0x00 }, -{ "linux/isdn.h", "IIOCNETLCR", _IOC_NONE, 0x4917, 0x00 }, -{ "linux/isdn.h", "IIOCNETSCF", _IOC_NONE, 0x4903, 0x00 }, -{ "linux/isdn.h", "IIOCSETBRJ", _IOC_NONE, 0x490d, 0x00 }, -{ "linux/isdn.h", "IIOCSETGST", _IOC_NONE, 0x490c, 0x00 }, -{ "linux/isdn.h", "IIOCSETMAP", _IOC_NONE, 0x4912, 0x00 }, -{ "linux/isdn.h", "IIOCSETPRF", _IOC_NONE, 0x4910, 0x00 }, -{ "linux/isdn.h", "IIOCSETSET", _IOC_NONE, 0x4909, 0x00 }, -{ "linux/isdn.h", "IIOCSETVER", _IOC_NONE, 0x490a, 0x00 }, -{ "linux/isdn.h", "IIOCSIGPRF", _IOC_NONE, 0x490e, 0x00 }, -{ "linux/isdn_ppp.h", "PPPIOCBUNDLE", _IOC_WRITE, 0x7481, 0x04 }, -{ "linux/isdn_ppp.h", "PPPIOCGCALLINFO", _IOC_READ|_IOC_WRITE, 0x7480, 0x88 }, -{ "linux/isdn_ppp.h", "PPPIOCGCOMPRESSORS", _IOC_READ, 0x7486, 0x20 }, -{ "linux/isdn_ppp.h", "PPPIOCGIFNAME", _IOC_READ, 0x7488, 0x10 }, -{ "linux/isdn_ppp.h", "PPPIOCGMPFLAGS", _IOC_READ, 0x7482, 0x04 }, -{ "linux/isdn_ppp.h", "PPPIOCSCOMPRESSOR", _IOC_WRITE, 0x7487, 0x04 }, -{ "linux/isdn_ppp.h", "PPPIOCSMPFLAGS", _IOC_WRITE, 0x7483, 0x04 }, -{ "linux/isdn_ppp.h", "PPPIOCSMPMRU", _IOC_WRITE, 0x7485, 0x04 }, -{ "linux/isdn_ppp.h", "PPPIOCSMPMTU", _IOC_WRITE, 0x7484, 0x04 }, +{ "linux/isst_if.h", "ISST_IF_GET_PHY_ID", _IOC_READ|_IOC_WRITE, 0xfe01, 0x04 }, +{ "linux/isst_if.h", "ISST_IF_GET_PLATFORM_INFO", _IOC_READ, 0xfe00, 0x04 }, +{ "linux/isst_if.h", "ISST_IF_IO_CMD", _IOC_WRITE, 0xfe02, 0x04 }, +{ "linux/isst_if.h", "ISST_IF_MBOX_COMMAND", _IOC_READ|_IOC_WRITE, 0xfe03, 0x04 }, +{ "linux/isst_if.h", "ISST_IF_MSR_COMMAND", _IOC_READ|_IOC_WRITE, 0xfe04, 0x04 }, { "linux/ivtv.h", "IVTV_IOC_DMA_FRAME", _IOC_WRITE, 0x56c0, 0x38 }, { "linux/ivtv.h", "IVTV_IOC_PASSTHROUGH_MODE", _IOC_WRITE, 0x56c1, 0x04 }, { "linux/ivtvfb.h", "IVTVFB_IOC_DMA_FRAME", _IOC_WRITE, 0x56c0, 0x0c }, @@ -1284,6 +1307,7 @@ { "linux/kcov.h", "KCOV_DISABLE", _IOC_NONE, 0x6365, 0x00 }, { "linux/kcov.h", "KCOV_ENABLE", _IOC_NONE, 0x6364, 0x00 }, { "linux/kcov.h", "KCOV_INIT_TRACE", _IOC_READ, 0x6301, 0x04 }, +{ "linux/kcov.h", "KCOV_REMOTE_ENABLE", _IOC_WRITE, 0x6366, 0x18 }, { "linux/kd.h", "GIO_CMAP", 0, 0x4B70, 0 }, { "linux/kd.h", "GIO_FONT", 0, 0x4B60, 0 }, { "linux/kd.h", "GIO_FONTX", 0, 0x4B6B, 0 }, @@ -1332,6 +1356,7 @@ { "linux/kd.h", "PIO_UNISCRNMAP", 0, 0x4B6A, 0 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_ACQUIRE_VM", _IOC_WRITE, 0x4b15, 0x08 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_ALLOC_MEMORY_OF_GPU", _IOC_READ|_IOC_WRITE, 0x4b16, 0x28 }, +{ "linux/kfd_ioctl.h", "AMDKFD_IOC_ALLOC_QUEUE_GWS", _IOC_READ|_IOC_WRITE, 0x4b1e, 0x10 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_CREATE_EVENT", _IOC_READ|_IOC_WRITE, 0x4b08, 0x20 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_CREATE_QUEUE", _IOC_READ|_IOC_WRITE, 0x4b02, 0x58 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_DBG_ADDRESS_WATCH", _IOC_WRITE, 0x4b0f, 0x10 }, @@ -1356,6 +1381,7 @@ { "linux/kfd_ioctl.h", "AMDKFD_IOC_SET_MEMORY_POLICY", _IOC_WRITE, 0x4b04, 0x20 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_SET_SCRATCH_BACKING_VA", _IOC_READ|_IOC_WRITE, 0x4b11, 0x10 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_SET_TRAP_HANDLER", _IOC_WRITE, 0x4b13, 0x18 }, +{ "linux/kfd_ioctl.h", "AMDKFD_IOC_SMI_EVENTS", _IOC_READ|_IOC_WRITE, 0x4b1f, 0x08 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_UNMAP_MEMORY_FROM_GPU", _IOC_READ|_IOC_WRITE, 0x4b19, 0x18 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_UPDATE_QUEUE", _IOC_WRITE, 0x4b07, 0x18 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_WAIT_EVENTS", _IOC_READ|_IOC_WRITE, 0x4b0c, 0x18 }, @@ -1389,6 +1415,7 @@ { "linux/lirc.h", "LIRC_SET_WIDEBAND_RECEIVER", _IOC_WRITE, 0x6923, 0x04 }, { "linux/loop.h", "LOOP_CHANGE_FD", 0, 0x4C06, 0 }, { "linux/loop.h", "LOOP_CLR_FD", 0, 0x4C01, 0 }, +{ "linux/loop.h", "LOOP_CONFIGURE", 0, 0x4C0A, 0 }, { "linux/loop.h", "LOOP_CTL_ADD", 0, 0x4C80, 0 }, { "linux/loop.h", "LOOP_CTL_GET_FREE", 0, 0x4C82, 0 }, { "linux/loop.h", "LOOP_CTL_REMOVE", 0, 0x4C81, 0 }, @@ -1490,8 +1517,10 @@ { "linux/nsfs.h", "NS_GET_OWNER_UID", _IOC_NONE, 0xb704, 0x00 }, { "linux/nsfs.h", "NS_GET_PARENT", _IOC_NONE, 0xb702, 0x00 }, { "linux/nsfs.h", "NS_GET_USERNS", _IOC_NONE, 0xb701, 0x00 }, +{ "linux/nvme_ioctl.h", "NVME_IOCTL_ADMIN64_CMD", _IOC_READ|_IOC_WRITE, 0x4e47, 0x50 }, { "linux/nvme_ioctl.h", "NVME_IOCTL_ADMIN_CMD", _IOC_READ|_IOC_WRITE, 0x4e41, 0x48 }, { "linux/nvme_ioctl.h", "NVME_IOCTL_ID", _IOC_NONE, 0x4e40, 0x00 }, +{ "linux/nvme_ioctl.h", "NVME_IOCTL_IO64_CMD", _IOC_READ|_IOC_WRITE, 0x4e48, 0x50 }, { "linux/nvme_ioctl.h", "NVME_IOCTL_IO_CMD", _IOC_READ|_IOC_WRITE, 0x4e43, 0x48 }, { "linux/nvme_ioctl.h", "NVME_IOCTL_RESCAN", _IOC_NONE, 0x4e46, 0x00 }, { "linux/nvme_ioctl.h", "NVME_IOCTL_RESET", _IOC_NONE, 0x4e44, 0x00 }, @@ -1531,6 +1560,7 @@ { "linux/omapfb.h", "OMAPFB_WAITFORGO", _IOC_NONE, 0x4f3c, 0x00 }, { "linux/omapfb.h", "OMAPFB_WAITFORVSYNC", _IOC_NONE, 0x4f39, 0x00 }, { "linux/pcitest.h", "PCITEST_BAR", _IOC_NONE, 0x5001, 0x00 }, +{ "linux/pcitest.h", "PCITEST_CLEAR_IRQ", _IOC_NONE, 0x5010, 0x00 }, { "linux/pcitest.h", "PCITEST_COPY", _IOC_WRITE, 0x5006, 0x04 }, { "linux/pcitest.h", "PCITEST_GET_IRQTYPE", _IOC_NONE, 0x5009, 0x00 }, { "linux/pcitest.h", "PCITEST_LEGACY_IRQ", _IOC_NONE, 0x5002, 0x00 }, @@ -1561,6 +1591,9 @@ { "linux/phantom.h", "PHN_SET_REG", _IOC_WRITE, 0x7001, 0x04 }, { "linux/phantom.h", "PHN_SET_REGS", _IOC_WRITE, 0x7003, 0x04 }, { "linux/pktcdvd.h", "PACKET_CTRL_CMD", _IOC_READ|_IOC_WRITE, 0x5801, 0x18 }, +{ "linux/platform_data/cros_ec_chardev.h", "CROS_EC_DEV_IOCEVENTMASK", _IOC_NONE, 0xec02, 0x00 }, +{ "linux/platform_data/cros_ec_chardev.h", "CROS_EC_DEV_IOCRDMEM", _IOC_READ|_IOC_WRITE, 0xec01, 0x108 }, +{ "linux/platform_data/cros_ec_chardev.h", "CROS_EC_DEV_IOCXCMD", _IOC_READ|_IOC_WRITE, 0xec00, 0x14 }, { "linux/platform_data/media/si4713.h", "SI4713_IOC_MEASURE_RNL", _IOC_READ|_IOC_WRITE, 0x56c0, 0x1c }, { "linux/pmu.h", "PMU_IOC_CAN_SLEEP", _IOC_READ, 0x4205, 0x04 }, { "linux/pmu.h", "PMU_IOC_GET_BACKLIGHT", _IOC_READ, 0x4201, 0x04 }, @@ -1602,6 +1635,8 @@ { "linux/ppp-ioctl.h", "PPPIOCGDEBUG", _IOC_READ, 0x7441, 0x04 }, { "linux/ppp-ioctl.h", "PPPIOCGFLAGS", _IOC_READ, 0x745a, 0x04 }, { "linux/ppp-ioctl.h", "PPPIOCGIDLE", _IOC_READ, 0x743f, 0x08 }, +{ "linux/ppp-ioctl.h", "PPPIOCGIDLE32", _IOC_READ, 0x743f, 0x08 }, +{ "linux/ppp-ioctl.h", "PPPIOCGIDLE64", _IOC_READ, 0x743f, 0x10 }, { "linux/ppp-ioctl.h", "PPPIOCGL2TPSTATS", _IOC_READ, 0x7436, 0x48 }, { "linux/ppp-ioctl.h", "PPPIOCGMRU", _IOC_READ, 0x7453, 0x04 }, { "linux/ppp-ioctl.h", "PPPIOCGNPMODE", _IOC_READ|_IOC_WRITE, 0x744c, 0x08 }, @@ -1635,14 +1670,23 @@ { "linux/pr.h", "IOC_PR_RESERVE", _IOC_WRITE, 0x70c9, 0x10 }, { "linux/psp-sev.h", "SEV_ISSUE_CMD", _IOC_READ|_IOC_WRITE, 0x5300, 0x10 }, { "linux/ptp_clock.h", "PTP_CLOCK_GETCAPS", _IOC_READ, 0x3d01, 0x50 }, +{ "linux/ptp_clock.h", "PTP_CLOCK_GETCAPS2", _IOC_READ, 0x3d0a, 0x50 }, { "linux/ptp_clock.h", "PTP_ENABLE_PPS", _IOC_WRITE, 0x3d04, 0x04 }, +{ "linux/ptp_clock.h", "PTP_ENABLE_PPS2", _IOC_WRITE, 0x3d0d, 0x04 }, { "linux/ptp_clock.h", "PTP_EXTTS_REQUEST", _IOC_WRITE, 0x3d02, 0x10 }, +{ "linux/ptp_clock.h", "PTP_EXTTS_REQUEST2", _IOC_WRITE, 0x3d0b, 0x10 }, { "linux/ptp_clock.h", "PTP_PEROUT_REQUEST", _IOC_WRITE, 0x3d03, 0x38 }, +{ "linux/ptp_clock.h", "PTP_PEROUT_REQUEST2", _IOC_WRITE, 0x3d0c, 0x38 }, { "linux/ptp_clock.h", "PTP_PIN_GETFUNC", _IOC_READ|_IOC_WRITE, 0x3d06, 0x60 }, +{ "linux/ptp_clock.h", "PTP_PIN_GETFUNC2", _IOC_READ|_IOC_WRITE, 0x3d0f, 0x60 }, { "linux/ptp_clock.h", "PTP_PIN_SETFUNC", _IOC_WRITE, 0x3d07, 0x60 }, +{ "linux/ptp_clock.h", "PTP_PIN_SETFUNC2", _IOC_WRITE, 0x3d10, 0x60 }, { "linux/ptp_clock.h", "PTP_SYS_OFFSET", _IOC_WRITE, 0x3d05, 0x340 }, +{ "linux/ptp_clock.h", "PTP_SYS_OFFSET2", _IOC_WRITE, 0x3d0e, 0x340 }, { "linux/ptp_clock.h", "PTP_SYS_OFFSET_EXTENDED", _IOC_READ|_IOC_WRITE, 0x3d09, 0x4c0 }, +{ "linux/ptp_clock.h", "PTP_SYS_OFFSET_EXTENDED2", _IOC_READ|_IOC_WRITE, 0x3d12, 0x4c0 }, { "linux/ptp_clock.h", "PTP_SYS_OFFSET_PRECISE", _IOC_READ|_IOC_WRITE, 0x3d08, 0x40 }, +{ "linux/ptp_clock.h", "PTP_SYS_OFFSET_PRECISE2", _IOC_READ|_IOC_WRITE, 0x3d11, 0x40 }, { "linux/radeonfb.h", "FBIO_RADEON_GET_MIRROR", _IOC_READ, 0x4003, 0x04 }, { "linux/radeonfb.h", "FBIO_RADEON_SET_MIRROR", _IOC_WRITE, 0x4004, 0x04 }, { "linux/raid/md_u.h", "ADD_NEW_DISK", _IOC_WRITE, 0x0921, 0x14 }, @@ -1677,6 +1721,8 @@ { "linux/raw.h", "RAW_GETBIND", _IOC_NONE, 0xac01, 0x00 }, { "linux/raw.h", "RAW_SETBIND", _IOC_NONE, 0xac00, 0x00 }, { "linux/reiserfs_fs.h", "REISERFS_IOC_UNPACK", _IOC_WRITE, 0xcd01, 0x04 }, +{ "linux/remoteproc_cdev.h", "RPROC_GET_SHUTDOWN_ON_RELEASE", _IOC_READ, 0xb702, 0x04 }, +{ "linux/remoteproc_cdev.h", "RPROC_SET_SHUTDOWN_ON_RELEASE", _IOC_WRITE, 0xb701, 0x04 }, { "linux/rfkill.h", "RFKILL_IOCTL_NOINPUT", _IOC_NONE, 0x5201, 0x00 }, { "linux/rio_cm_cdev.h", "RIO_CM_CHAN_ACCEPT", _IOC_READ|_IOC_WRITE, 0x6307, 0x08 }, { "linux/rio_cm_cdev.h", "RIO_CM_CHAN_BIND", _IOC_WRITE, 0x6305, 0x08 }, @@ -1754,7 +1800,8 @@ { "linux/scif_ioctl.h", "SCIF_VREADFROM", _IOC_READ|_IOC_WRITE, 0x730c, 0x28 }, { "linux/scif_ioctl.h", "SCIF_VWRITETO", _IOC_READ|_IOC_WRITE, 0x730d, 0x28 }, { "linux/scif_ioctl.h", "SCIF_WRITETO", _IOC_READ|_IOC_WRITE, 0x730b, 0x28 }, -{ "linux/seccomp.h", "SECCOMP_IOCTL_NOTIF_ID_VALID", _IOC_READ, 0x2102, 0x08 }, +{ "linux/seccomp.h", "SECCOMP_IOCTL_NOTIF_ADDFD", _IOC_WRITE, 0x2103, 0x18 }, +{ "linux/seccomp.h", "SECCOMP_IOCTL_NOTIF_ID_VALID", _IOC_WRITE, 0x2102, 0x08 }, { "linux/seccomp.h", "SECCOMP_IOCTL_NOTIF_RECV", _IOC_READ|_IOC_WRITE, 0x2100, 0x50 }, { "linux/seccomp.h", "SECCOMP_IOCTL_NOTIF_SEND", _IOC_READ|_IOC_WRITE, 0x2101, 0x18 }, { "linux/sed-opal.h", "IOC_OPAL_ACTIVATE_LSP", _IOC_WRITE, 0x70df, 0x118 }, @@ -1762,13 +1809,17 @@ { "linux/sed-opal.h", "IOC_OPAL_ADD_USR_TO_LR", _IOC_WRITE, 0x70e4, 0x118 }, { "linux/sed-opal.h", "IOC_OPAL_ENABLE_DISABLE_MBR", _IOC_WRITE, 0x70e5, 0x110 }, { "linux/sed-opal.h", "IOC_OPAL_ERASE_LR", _IOC_WRITE, 0x70e6, 0x110 }, +{ "linux/sed-opal.h", "IOC_OPAL_GENERIC_TABLE_RW", _IOC_WRITE, 0x70eb, 0x138 }, { "linux/sed-opal.h", "IOC_OPAL_LOCK_UNLOCK", _IOC_WRITE, 0x70dd, 0x118 }, { "linux/sed-opal.h", "IOC_OPAL_LR_SETUP", _IOC_WRITE, 0x70e3, 0x128 }, +{ "linux/sed-opal.h", "IOC_OPAL_MBR_DONE", _IOC_WRITE, 0x70e9, 0x110 }, +{ "linux/sed-opal.h", "IOC_OPAL_PSID_REVERT_TPR", _IOC_WRITE, 0x70e8, 0x108 }, { "linux/sed-opal.h", "IOC_OPAL_REVERT_TPR", _IOC_WRITE, 0x70e2, 0x108 }, { "linux/sed-opal.h", "IOC_OPAL_SAVE", _IOC_WRITE, 0x70dc, 0x118 }, { "linux/sed-opal.h", "IOC_OPAL_SECURE_ERASE_LR", _IOC_WRITE, 0x70e7, 0x110 }, { "linux/sed-opal.h", "IOC_OPAL_SET_PW", _IOC_WRITE, 0x70e0, 0x220 }, { "linux/sed-opal.h", "IOC_OPAL_TAKE_OWNERSHIP", _IOC_WRITE, 0x70de, 0x108 }, +{ "linux/sed-opal.h", "IOC_OPAL_WRITE_SHADOW_MBR", _IOC_WRITE, 0x70ea, 0x120 }, { "linux/serio.h", "SPIOCSTYPE", _IOC_WRITE, 0x7101, 0x04 }, { "linux/sockios.h", "SIOCADDDLCI", 0, 0x8980, 0 }, { "linux/sockios.h", "SIOCADDMULTI", 0, 0x8931, 0 }, @@ -1817,6 +1868,8 @@ { "linux/sockios.h", "SIOCGMIIREG", 0, 0x8948, 0 }, { "linux/sockios.h", "SIOCGRARP", 0, 0x8961, 0 }, { "linux/sockios.h", "SIOCGSKNS", 0, 0x894C, 0 }, +{ "linux/sockios.h", "SIOCGSTAMPNS_NEW", _IOC_READ, 0x8907, 0x10 }, +{ "linux/sockios.h", "SIOCGSTAMP_NEW", _IOC_READ, 0x8906, 0x10 }, { "linux/sockios.h", "SIOCOUTQNSD", 0, 0x894B, 0 }, { "linux/sockios.h", "SIOCPROTOPRIVATE", 0, 0x89E0, 0 }, { "linux/sockios.h", "SIOCRTMSG", 0, 0x890D, 0 }, @@ -1982,7 +2035,8 @@ { "linux/suspend_ioctls.h", "SNAPSHOT_SET_SWAP_AREA", _IOC_WRITE, 0x330d, 0x0c }, { "linux/suspend_ioctls.h", "SNAPSHOT_UNFREEZE", _IOC_NONE, 0x3302, 0x00 }, { "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_CTL", _IOC_READ|_IOC_WRITE, 0x5743, 0x28 }, -{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_SUMMARY", _IOC_READ, 0x5742, 0x198 }, +{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_SUMMARY", _IOC_READ, 0x5742, 0x4d8 }, +{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_SUMMARY_LEGACY", _IOC_READ, 0x5742, 0x198 }, { "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_FLASH_INFO", _IOC_READ, 0x5740, 0x10 }, { "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_FLASH_PART_INFO", _IOC_READ|_IOC_WRITE, 0x5741, 0x10 }, { "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_PFF_TO_PORT", _IOC_READ|_IOC_WRITE, 0x5744, 0x0c }, @@ -2063,6 +2117,22 @@ { "linux/usb/iowarrior.h", "IOW_GETINFO", _IOC_READ, 0xc003, 0x28 }, { "linux/usb/iowarrior.h", "IOW_READ", _IOC_WRITE, 0xc002, 0x04 }, { "linux/usb/iowarrior.h", "IOW_WRITE", _IOC_WRITE, 0xc001, 0x04 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_CONFIGURE", _IOC_NONE, 0x5509, 0x00 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP0_READ", _IOC_READ|_IOC_WRITE, 0x5504, 0x08 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP0_STALL", _IOC_NONE, 0x550c, 0x00 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP0_WRITE", _IOC_WRITE, 0x5503, 0x08 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EPS_INFO", _IOC_READ, 0x550b, 0x3c0 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_CLEAR_HALT", _IOC_WRITE, 0x550e, 0x04 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_DISABLE", _IOC_WRITE, 0x5506, 0x04 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_ENABLE", _IOC_WRITE, 0x5505, 0x09 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_READ", _IOC_READ|_IOC_WRITE, 0x5508, 0x08 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_SET_HALT", _IOC_WRITE, 0x550d, 0x04 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_SET_WEDGE", _IOC_WRITE, 0x550f, 0x04 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_WRITE", _IOC_WRITE, 0x5507, 0x08 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EVENT_FETCH", _IOC_READ, 0x5502, 0x08 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_INIT", _IOC_WRITE, 0x5500, 0x101 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_RUN", _IOC_NONE, 0x5501, 0x00 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_VBUS_DRAW", _IOC_WRITE, 0x550a, 0x04 }, { "linux/usb/tmc.h", "USBTMC488_IOCTL_GET_CAPS", _IOC_READ, 0x5b11, 0x01 }, { "linux/usb/tmc.h", "USBTMC488_IOCTL_GOTO_LOCAL", _IOC_NONE, 0x5b14, 0x00 }, { "linux/usb/tmc.h", "USBTMC488_IOCTL_LOCAL_LOCKOUT", _IOC_NONE, 0x5b15, 0x00 }, @@ -2090,6 +2160,7 @@ { "linux/usb/tmc.h", "USBTMC_IOCTL_WRITE", _IOC_READ|_IOC_WRITE, 0x5b0d, 0x10 }, { "linux/usb/tmc.h", "USBTMC_IOCTL_WRITE_RESULT", _IOC_READ|_IOC_WRITE, 0x5b0f, 0x04 }, { "linux/usbdevice_fs.h", "USBDEVFS_ALLOC_STREAMS", _IOC_READ, 0x551c, 0x08 }, +{ "linux/usbdevice_fs.h", "USBDEVFS_ALLOW_SUSPEND", _IOC_NONE, 0x5522, 0x00 }, { "linux/usbdevice_fs.h", "USBDEVFS_BULK", _IOC_READ|_IOC_WRITE, 0x5502, 0x10 }, { "linux/usbdevice_fs.h", "USBDEVFS_BULK32", _IOC_READ|_IOC_WRITE, 0x5502, 0x10 }, { "linux/usbdevice_fs.h", "USBDEVFS_CLAIMINTERFACE", _IOC_READ, 0x550f, 0x04 }, @@ -2105,6 +2176,7 @@ { "linux/usbdevice_fs.h", "USBDEVFS_DISCSIGNAL", _IOC_READ, 0x550e, 0x08 }, { "linux/usbdevice_fs.h", "USBDEVFS_DISCSIGNAL32", _IOC_READ, 0x550e, 0x08 }, { "linux/usbdevice_fs.h", "USBDEVFS_DROP_PRIVILEGES", _IOC_WRITE, 0x551e, 0x04 }, +{ "linux/usbdevice_fs.h", "USBDEVFS_FORBID_SUSPEND", _IOC_NONE, 0x5521, 0x00 }, { "linux/usbdevice_fs.h", "USBDEVFS_FREE_STREAMS", _IOC_READ, 0x551d, 0x08 }, { "linux/usbdevice_fs.h", "USBDEVFS_GETDRIVER", _IOC_WRITE, 0x5508, 0x104 }, { "linux/usbdevice_fs.h", "USBDEVFS_GET_CAPABILITIES", _IOC_READ, 0x551a, 0x04 }, @@ -2124,11 +2196,13 @@ { "linux/usbdevice_fs.h", "USBDEVFS_SETINTERFACE", _IOC_READ, 0x5504, 0x08 }, { "linux/usbdevice_fs.h", "USBDEVFS_SUBMITURB", _IOC_READ, 0x550a, 0x2c }, { "linux/usbdevice_fs.h", "USBDEVFS_SUBMITURB32", _IOC_READ, 0x550a, 0x2a }, +{ "linux/usbdevice_fs.h", "USBDEVFS_WAIT_FOR_RESUME", _IOC_NONE, 0x5523, 0x00 }, { "linux/userfaultfd.h", "UFFDIO_API", _IOC_READ|_IOC_WRITE, 0xaa3f, 0x18 }, { "linux/userfaultfd.h", "UFFDIO_COPY", _IOC_READ|_IOC_WRITE, 0xaa03, 0x28 }, { "linux/userfaultfd.h", "UFFDIO_REGISTER", _IOC_READ|_IOC_WRITE, 0xaa00, 0x20 }, { "linux/userfaultfd.h", "UFFDIO_UNREGISTER", _IOC_READ, 0xaa01, 0x10 }, { "linux/userfaultfd.h", "UFFDIO_WAKE", _IOC_READ, 0xaa02, 0x10 }, +{ "linux/userfaultfd.h", "UFFDIO_WRITEPROTECT", _IOC_READ|_IOC_WRITE, 0xaa06, 0x18 }, { "linux/userfaultfd.h", "UFFDIO_ZEROPAGE", _IOC_READ|_IOC_WRITE, 0xaa04, 0x20 }, { "linux/uvcvideo.h", "UVCIOC_CTRL_MAP", _IOC_READ|_IOC_WRITE, 0x7520, 0x58 }, { "linux/uvcvideo.h", "UVCIOC_CTRL_QUERY", _IOC_READ|_IOC_WRITE, 0x7521, 0x0c }, @@ -2139,10 +2213,12 @@ { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_G_FMT", _IOC_READ|_IOC_WRITE, 0x5604, 0x58 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_G_FRAME_INTERVAL", _IOC_READ|_IOC_WRITE, 0x5615, 0x30 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_G_SELECTION", _IOC_READ|_IOC_WRITE, 0x563d, 0x40 }, +{ "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_QUERYCAP", _IOC_READ, 0x5600, 0x40 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_S_CROP", _IOC_READ|_IOC_WRITE, 0x563c, 0x38 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_S_FMT", _IOC_READ|_IOC_WRITE, 0x5605, 0x58 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_S_FRAME_INTERVAL", _IOC_READ|_IOC_WRITE, 0x5616, 0x30 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_S_SELECTION", _IOC_READ|_IOC_WRITE, 0x563e, 0x40 }, +{ "linux/vboxguest.h", "VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES", _IOC_READ|_IOC_WRITE, 0x560d, 0x24 }, { "linux/vboxguest.h", "VBG_IOCTL_CHANGE_FILTER_MASK", _IOC_READ|_IOC_WRITE, 0x560c, 0x20 }, { "linux/vboxguest.h", "VBG_IOCTL_CHANGE_GUEST_CAPABILITIES", _IOC_READ|_IOC_WRITE, 0x560e, 0x20 }, { "linux/vboxguest.h", "VBG_IOCTL_CHECK_BALLOON", _IOC_READ|_IOC_WRITE, 0x5611, 0x20 }, @@ -2150,10 +2226,11 @@ { "linux/vboxguest.h", "VBG_IOCTL_HGCM_CONNECT", _IOC_READ|_IOC_WRITE, 0x5604, 0x9c }, { "linux/vboxguest.h", "VBG_IOCTL_HGCM_DISCONNECT", _IOC_READ|_IOC_WRITE, 0x5605, 0x1c }, { "linux/vboxguest.h", "VBG_IOCTL_INTERRUPT_ALL_WAIT_FOR_EVENTS", _IOC_READ|_IOC_WRITE, 0x560b, 0x18 }, -{ "linux/vboxguest.h", "VBG_IOCTL_VMMDEV_REQUEST_BIG", _IOC_READ|_IOC_WRITE, 0x5603, 0x00 }, +{ "linux/vboxguest.h", "VBG_IOCTL_VMMDEV_REQUEST_BIG", _IOC_NONE, 0x5603, 0x00 }, { "linux/vboxguest.h", "VBG_IOCTL_WAIT_FOR_EVENTS", _IOC_READ|_IOC_WRITE, 0x560a, 0x20 }, { "linux/vboxguest.h", "VBG_IOCTL_WRITE_CORE_DUMP", _IOC_READ|_IOC_WRITE, 0x5613, 0x1c }, { "linux/vfio.h", "VFIO_CHECK_EXTENSION", _IOC_NONE, 0x3b65, 0x00 }, +{ "linux/vfio.h", "VFIO_DEVICE_FEATURE", _IOC_NONE, 0x3b75, 0x00 }, { "linux/vfio.h", "VFIO_DEVICE_GET_GFX_DMABUF", _IOC_NONE, 0x3b73, 0x00 }, { "linux/vfio.h", "VFIO_DEVICE_GET_INFO", _IOC_NONE, 0x3b6b, 0x00 }, { "linux/vfio.h", "VFIO_DEVICE_GET_IRQ_INFO", _IOC_NONE, 0x3b6d, 0x00 }, @@ -2170,6 +2247,7 @@ { "linux/vfio.h", "VFIO_GROUP_GET_STATUS", _IOC_NONE, 0x3b67, 0x00 }, { "linux/vfio.h", "VFIO_GROUP_SET_CONTAINER", _IOC_NONE, 0x3b68, 0x00 }, { "linux/vfio.h", "VFIO_GROUP_UNSET_CONTAINER", _IOC_NONE, 0x3b69, 0x00 }, +{ "linux/vfio.h", "VFIO_IOMMU_DIRTY_PAGES", _IOC_NONE, 0x3b75, 0x00 }, { "linux/vfio.h", "VFIO_IOMMU_DISABLE", _IOC_NONE, 0x3b74, 0x00 }, { "linux/vfio.h", "VFIO_IOMMU_ENABLE", _IOC_NONE, 0x3b73, 0x00 }, { "linux/vfio.h", "VFIO_IOMMU_GET_INFO", _IOC_NONE, 0x3b70, 0x00 }, @@ -2207,6 +2285,14 @@ { "linux/vhost.h", "VHOST_SET_VRING_ERR", _IOC_WRITE, 0xaf22, 0x08 }, { "linux/vhost.h", "VHOST_SET_VRING_KICK", _IOC_WRITE, 0xaf20, 0x08 }, { "linux/vhost.h", "VHOST_SET_VRING_NUM", _IOC_WRITE, 0xaf10, 0x08 }, +{ "linux/vhost.h", "VHOST_VDPA_GET_CONFIG", _IOC_READ, 0xaf73, 0x08 }, +{ "linux/vhost.h", "VHOST_VDPA_GET_DEVICE_ID", _IOC_READ, 0xaf70, 0x04 }, +{ "linux/vhost.h", "VHOST_VDPA_GET_STATUS", _IOC_READ, 0xaf71, 0x01 }, +{ "linux/vhost.h", "VHOST_VDPA_GET_VRING_NUM", _IOC_READ, 0xaf76, 0x02 }, +{ "linux/vhost.h", "VHOST_VDPA_SET_CONFIG", _IOC_WRITE, 0xaf74, 0x08 }, +{ "linux/vhost.h", "VHOST_VDPA_SET_CONFIG_CALL", _IOC_WRITE, 0xaf77, 0x04 }, +{ "linux/vhost.h", "VHOST_VDPA_SET_STATUS", _IOC_WRITE, 0xaf72, 0x01 }, +{ "linux/vhost.h", "VHOST_VDPA_SET_VRING_ENABLE", _IOC_WRITE, 0xaf75, 0x08 }, { "linux/vhost.h", "VHOST_VSOCK_SET_GUEST_CID", _IOC_WRITE, 0xaf60, 0x08 }, { "linux/vhost.h", "VHOST_VSOCK_SET_RUNNING", _IOC_WRITE, 0xaf61, 0x04 }, { "linux/videodev2.h", "VIDIOC_CREATE_BUFS", _IOC_READ|_IOC_WRITE, 0x565c, 0xf8 }, @@ -2215,8 +2301,8 @@ { "linux/videodev2.h", "VIDIOC_DBG_G_REGISTER", _IOC_READ|_IOC_WRITE, 0x5650, 0x38 }, { "linux/videodev2.h", "VIDIOC_DBG_S_REGISTER", _IOC_WRITE, 0x564f, 0x38 }, { "linux/videodev2.h", "VIDIOC_DECODER_CMD", _IOC_READ|_IOC_WRITE, 0x5660, 0x48 }, -{ "linux/videodev2.h", "VIDIOC_DQBUF", _IOC_READ|_IOC_WRITE, 0x5611, 0x44 }, -{ "linux/videodev2.h", "VIDIOC_DQEVENT", _IOC_READ, 0x5659, 0x80 }, +{ "linux/videodev2.h", "VIDIOC_DQBUF", _IOC_READ|_IOC_WRITE, 0x5611, 0x50 }, +{ "linux/videodev2.h", "VIDIOC_DQEVENT", _IOC_READ, 0x5659, 0x88 }, { "linux/videodev2.h", "VIDIOC_DV_TIMINGS_CAP", _IOC_READ|_IOC_WRITE, 0x5664, 0x90 }, { "linux/videodev2.h", "VIDIOC_ENCODER_CMD", _IOC_READ|_IOC_WRITE, 0x564d, 0x28 }, { "linux/videodev2.h", "VIDIOC_ENUMAUDIO", _IOC_READ|_IOC_WRITE, 0x5641, 0x34 }, @@ -2253,9 +2339,9 @@ { "linux/videodev2.h", "VIDIOC_G_TUNER", _IOC_READ|_IOC_WRITE, 0x561d, 0x54 }, { "linux/videodev2.h", "VIDIOC_LOG_STATUS", _IOC_NONE, 0x5646, 0x00 }, { "linux/videodev2.h", "VIDIOC_OVERLAY", _IOC_WRITE, 0x560e, 0x04 }, -{ "linux/videodev2.h", "VIDIOC_PREPARE_BUF", _IOC_READ|_IOC_WRITE, 0x565d, 0x44 }, -{ "linux/videodev2.h", "VIDIOC_QBUF", _IOC_READ|_IOC_WRITE, 0x560f, 0x44 }, -{ "linux/videodev2.h", "VIDIOC_QUERYBUF", _IOC_READ|_IOC_WRITE, 0x5609, 0x44 }, +{ "linux/videodev2.h", "VIDIOC_PREPARE_BUF", _IOC_READ|_IOC_WRITE, 0x565d, 0x50 }, +{ "linux/videodev2.h", "VIDIOC_QBUF", _IOC_READ|_IOC_WRITE, 0x560f, 0x50 }, +{ "linux/videodev2.h", "VIDIOC_QUERYBUF", _IOC_READ|_IOC_WRITE, 0x5609, 0x50 }, { "linux/videodev2.h", "VIDIOC_QUERYCAP", _IOC_READ, 0x5600, 0x68 }, { "linux/videodev2.h", "VIDIOC_QUERYCTRL", _IOC_READ|_IOC_WRITE, 0x5624, 0x44 }, { "linux/videodev2.h", "VIDIOC_QUERYMENU", _IOC_READ|_IOC_WRITE, 0x5625, 0x2c }, @@ -2329,6 +2415,8 @@ { "linux/vt.h", "VT_WAITACTIVE", 0, 0x5607, 0 }, { "linux/vt.h", "VT_WAITEVENT", 0, 0x560E, 0 }, { "linux/vtpm_proxy.h", "VTPM_PROXY_IOC_NEW_DEV", _IOC_READ|_IOC_WRITE, 0xa100, 0x14 }, +{ "linux/watch_queue.h", "IOC_WATCH_QUEUE_SET_FILTER", _IOC_NONE, 0x5761, 0x00 }, +{ "linux/watch_queue.h", "IOC_WATCH_QUEUE_SET_SIZE", _IOC_NONE, 0x5760, 0x00 }, { "linux/watchdog.h", "WDIOC_GETBOOTSTATUS", _IOC_READ, 0x5702, 0x04 }, { "linux/watchdog.h", "WDIOC_GETPRETIMEOUT", _IOC_READ, 0x5709, 0x04 }, { "linux/watchdog.h", "WDIOC_GETSTATUS", _IOC_READ, 0x5701, 0x04 }, @@ -2404,7 +2492,12 @@ { "media/i2c/saa6588.h", "SAA6588_CMD_READ", _IOC_READ, 0x5203, 0x04 }, { "media/v4l2-common.h", "TUNER_SET_CONFIG", _IOC_WRITE, 0x645c, 0x08 }, { "media/v4l2-common.h", "VIDIOC_INT_RESET", _IOC_WRITE, 0x6466, 0x04 }, -{ "media/v4l2-subdev.h", "V4L2_DEVICE_NOTIFY_EVENT", _IOC_WRITE, 0x7602, 0x80 }, +{ "media/v4l2-ioctl.h", "VIDIOC_DQBUF_TIME32", _IOC_READ|_IOC_WRITE, 0x5611, 0x44 }, +{ "media/v4l2-ioctl.h", "VIDIOC_DQEVENT_TIME32", _IOC_READ, 0x5659, 0x80 }, +{ "media/v4l2-ioctl.h", "VIDIOC_PREPARE_BUF_TIME32", _IOC_READ|_IOC_WRITE, 0x565d, 0x44 }, +{ "media/v4l2-ioctl.h", "VIDIOC_QBUF_TIME32", _IOC_READ|_IOC_WRITE, 0x560f, 0x44 }, +{ "media/v4l2-ioctl.h", "VIDIOC_QUERYBUF_TIME32", _IOC_READ|_IOC_WRITE, 0x5609, 0x44 }, +{ "media/v4l2-subdev.h", "V4L2_DEVICE_NOTIFY_EVENT", _IOC_WRITE, 0x7602, 0x88 }, { "media/v4l2-subdev.h", "V4L2_SUBDEV_IR_RX_NOTIFY", _IOC_WRITE, 0x7600, 0x04 }, { "media/v4l2-subdev.h", "V4L2_SUBDEV_IR_TX_NOTIFY", _IOC_WRITE, 0x7601, 0x04 }, { "misc/cxl.h", "CXL_IOCTL_DOWNLOAD_IMAGE", _IOC_WRITE, 0xca0a, 0x40 }, @@ -2417,8 +2510,11 @@ { "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_ATTACH", _IOC_NONE, 0x5204, 0x00 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_CREATE", _IOC_READ|_IOC_WRITE, 0x5205, 0x18 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_INVOKE", _IOC_READ|_IOC_WRITE, 0x5203, 0x10 }, +{ "misc/fastrpc.h", "FASTRPC_IOCTL_MMAP", _IOC_READ|_IOC_WRITE, 0x5206, 0x20 }, +{ "misc/fastrpc.h", "FASTRPC_IOCTL_MUNMAP", _IOC_READ|_IOC_WRITE, 0x5207, 0x10 }, { "misc/habanalabs.h", "HL_IOCTL_CB", _IOC_READ|_IOC_WRITE, 0x4802, 0x18 }, { "misc/habanalabs.h", "HL_IOCTL_CS", _IOC_READ|_IOC_WRITE, 0x4803, 0x30 }, +{ "misc/habanalabs.h", "HL_IOCTL_DEBUG", _IOC_READ|_IOC_WRITE, 0x4806, 0x28 }, { "misc/habanalabs.h", "HL_IOCTL_INFO", _IOC_READ|_IOC_WRITE, 0x4801, 0x18 }, { "misc/habanalabs.h", "HL_IOCTL_MEMORY", _IOC_READ|_IOC_WRITE, 0x4805, 0x28 }, { "misc/habanalabs.h", "HL_IOCTL_WAIT_CS", _IOC_READ|_IOC_WRITE, 0x4804, 0x18 }, @@ -2429,6 +2525,23 @@ { "misc/ocxl.h", "OCXL_IOCTL_IRQ_ALLOC", _IOC_READ, 0xca11, 0x08 }, { "misc/ocxl.h", "OCXL_IOCTL_IRQ_FREE", _IOC_WRITE, 0xca12, 0x08 }, { "misc/ocxl.h", "OCXL_IOCTL_IRQ_SET_FD", _IOC_WRITE, 0xca13, 0x10 }, +{ "misc/uacce/hisi_qm.h", "UACCE_CMD_QM_SET_QP_CTX", _IOC_READ|_IOC_WRITE, 0x480a, 0x04 }, +{ "misc/uacce/uacce.h", "UACCE_CMD_PUT_Q", _IOC_NONE, 0x5701, 0x00 }, +{ "misc/uacce/uacce.h", "UACCE_CMD_START_Q", _IOC_NONE, 0x5700, 0x00 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_ADD_LDPC_CODE_PARAMS", _IOC_WRITE, 0x6605, 0x4c }, +{ "misc/xilinx_sdfec.h", "XSDFEC_CLEAR_STATS", _IOC_NONE, 0x660b, 0x00 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_GET_CONFIG", _IOC_READ, 0x6606, 0x1c }, +{ "misc/xilinx_sdfec.h", "XSDFEC_GET_STATS", _IOC_READ, 0x660c, 0x0c }, +{ "misc/xilinx_sdfec.h", "XSDFEC_GET_STATUS", _IOC_READ, 0x6602, 0x08 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_GET_TURBO", _IOC_READ, 0x6607, 0x08 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_IS_ACTIVE", _IOC_READ, 0x660a, 0x01 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_SET_BYPASS", _IOC_WRITE, 0x6609, 0x01 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_SET_DEFAULT_CONFIG", _IOC_NONE, 0x660d, 0x00 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_SET_IRQ", _IOC_WRITE, 0x6603, 0x02 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_SET_ORDER", _IOC_WRITE, 0x6608, 0x04 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_SET_TURBO", _IOC_WRITE, 0x6604, 0x08 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_START_DEV", _IOC_NONE, 0x6600, 0x00 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_STOP_DEV", _IOC_NONE, 0x6601, 0x00 }, { "mtd/mtd-abi.h", "ECCGETLAYOUT", _IOC_READ, 0x4d11, 0x148 }, { "mtd/mtd-abi.h", "ECCGETSTATS", _IOC_READ, 0x4d12, 0x10 }, { "mtd/mtd-abi.h", "MEMERASE", _IOC_WRITE, 0x4d02, 0x08 }, @@ -2667,7 +2780,8 @@ { "sound/asound.h", "SNDRV_TIMER_IOCTL_START", _IOC_NONE, 0x54a0, 0x00 }, { "sound/asound.h", "SNDRV_TIMER_IOCTL_STATUS", _IOC_READ, 0x5414, 0x58 }, { "sound/asound.h", "SNDRV_TIMER_IOCTL_STOP", _IOC_NONE, 0x54a1, 0x00 }, -{ "sound/asound.h", "SNDRV_TIMER_IOCTL_TREAD", _IOC_WRITE, 0x5402, 0x04 }, +{ "sound/asound.h", "SNDRV_TIMER_IOCTL_TREAD64", _IOC_WRITE, 0x54a4, 0x04 }, +{ "sound/asound.h", "SNDRV_TIMER_IOCTL_TREAD_OLD", _IOC_WRITE, 0x5402, 0x04 }, { "sound/asound_fm.h", "SNDRV_DM_FM_IOCTL_CLEAR_PATCHES", _IOC_NONE, 0x4840, 0x00 }, { "sound/asound_fm.h", "SNDRV_DM_FM_IOCTL_INFO", _IOC_READ, 0x4820, 0x02 }, { "sound/asound_fm.h", "SNDRV_DM_FM_IOCTL_PLAY_NOTE", _IOC_WRITE, 0x4822, 0x0c }, @@ -2725,6 +2839,10 @@ { "sound/hdspm.h", "SNDRV_HDSPM_IOCTL_GET_PEAK_RMS", _IOC_READ, 0x4842, 0x908 }, { "sound/hdspm.h", "SNDRV_HDSPM_IOCTL_GET_STATUS", _IOC_READ, 0x4847, 0x20 }, { "sound/hdspm.h", "SNDRV_HDSPM_IOCTL_GET_VERSION", _IOC_READ, 0x4848, 0x24 }, +{ "sound/pcm.h", "SNDRV_PCM_IOCTL_STATUS32", _IOC_READ, 0x4120, 0x6c }, +{ "sound/pcm.h", "SNDRV_PCM_IOCTL_STATUS64", _IOC_READ, 0x4120, 0x80 }, +{ "sound/pcm.h", "SNDRV_PCM_IOCTL_STATUS_EXT32", _IOC_READ|_IOC_WRITE, 0x4124, 0x6c }, +{ "sound/pcm.h", "SNDRV_PCM_IOCTL_STATUS_EXT64", _IOC_READ|_IOC_WRITE, 0x4124, 0x80 }, { "sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_INFO", _IOC_READ, 0x4810, 0x28 }, { "sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_LOAD_CODE", _IOC_WRITE, 0x4811, 0x3012 }, { "sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_PAUSE", _IOC_NONE, 0x4815, 0x00 }, @@ -2751,15 +2869,6 @@ { "staging/android/ashmem.h", "ASHMEM_UNPIN", _IOC_WRITE, 0x7708, 0x08 }, { "staging/android/ion.h", "ION_IOC_ALLOC", _IOC_READ|_IOC_WRITE, 0x4900, 0x18 }, { "staging/android/ion.h", "ION_IOC_HEAP_QUERY", _IOC_READ|_IOC_WRITE, 0x4908, 0x18 }, -{ "staging/android/vsoc_shm.h", "VSOC_COND_WAIT", _IOC_READ|_IOC_WRITE, 0xf507, 0x20 }, -{ "staging/android/vsoc_shm.h", "VSOC_COND_WAKE", _IOC_NONE, 0xf508, 0x00 }, -{ "staging/android/vsoc_shm.h", "VSOC_CREATE_FD_SCOPED_PERMISSION", _IOC_WRITE, 0xf500, 0x10 }, -{ "staging/android/vsoc_shm.h", "VSOC_DESCRIBE_REGION", _IOC_READ, 0xf504, 0x3c }, -{ "staging/android/vsoc_shm.h", "VSOC_GET_FD_SCOPED_PERMISSION", _IOC_READ, 0xf501, 0x10 }, -{ "staging/android/vsoc_shm.h", "VSOC_MAYBE_SEND_INTERRUPT_TO_HOST", _IOC_NONE, 0xf502, 0x00 }, -{ "staging/android/vsoc_shm.h", "VSOC_SELF_INTERRUPT", _IOC_NONE, 0xf505, 0x00 }, -{ "staging/android/vsoc_shm.h", "VSOC_SEND_INTERRUPT_TO_HOST", _IOC_NONE, 0xf506, 0x00 }, -{ "staging/android/vsoc_shm.h", "VSOC_WAIT_FOR_INCOMING_INTERRUPT", _IOC_NONE, 0xf503, 0x00 }, { "video/da8xx-fb.h", "FBIGET_BRIGHTNESS", _IOC_READ, 0x4603, 0x04 }, { "video/da8xx-fb.h", "FBIGET_COLOR", _IOC_READ, 0x4605, 0x04 }, { "video/da8xx-fb.h", "FBIOGET_CONTRAST", _IOC_READ, 0x4601, 0x04 }, diff --git a/linux/32/syscallent-time32.h b/linux/32/syscallent-time32.h new file mode 100644 index 00000000..5f9d0e44 --- /dev/null +++ b/linux/32/syscallent-time32.h @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +[ 4] = { 5, 0, SEN(io_getevents_time32), "io_getevents" }, +[ 72] = { 6, TD, SEN(pselect6_time32), "pselect6" }, +[ 73] = { 5, TD, SEN(ppoll_time32), "ppoll" }, +[ 86] = { 4, TD, SEN(timerfd_settime32), "timerfd_settime" }, +[ 87] = { 2, TD, SEN(timerfd_gettime32), "timerfd_gettime" }, +[ 88] = { 4, TD|TF, SEN(utimensat_time32), "utimensat" }, +[ 98] = { 6, 0, SEN(futex_time32), "futex" }, +[101] = { 2, 0, SEN(nanosleep_time32), "nanosleep" }, +[108] = { 2, 0, SEN(timer_gettime32), "timer_gettime" }, +[110] = { 4, 0, SEN(timer_settime32), "timer_settime" }, +[112] = { 2, TCL, SEN(clock_settime32), "clock_settime" }, +[113] = { 2, TCL, SEN(clock_gettime32), "clock_gettime" }, +[114] = { 2, TCL, SEN(clock_getres_time32), "clock_getres" }, +[115] = { 4, 0, SEN(clock_nanosleep_time32), "clock_nanosleep" }, +[127] = { 2, 0, SEN(sched_rr_get_interval_time32),"sched_rr_get_interval"}, +[137] = { 4, TS, SEN(rt_sigtimedwait_time32), "rt_sigtimedwait" }, +[169] = { 2, TCL, SEN(gettimeofday), "gettimeofday" }, +[170] = { 2, TCL, SEN(settimeofday), "settimeofday" }, +[171] = { 1, TCL, SEN(adjtimex32), "adjtimex" }, +[182] = { 5, TD, SEN(mq_timedsend_time32), "mq_timedsend" }, +[183] = { 5, TD, SEN(mq_timedreceive_time32), "mq_timedreceive" }, +[192] = { 4, TI, SEN(semtimedop_time32), "semtimedop" }, +[243] = { 5, TN, SEN(recvmmsg_time32), "recvmmsg" }, +[260] = { 4, TP, SEN(wait4), "wait4" }, +[266] = { 2, TCL, SEN(clock_adjtime32), "clock_adjtime" }, +[292] = { 6, 0, SEN(io_pgetevents_time32), "io_pgetevents" }, diff --git a/linux/32/syscallent.h b/linux/32/syscallent.h index 01a5009d..18a76b29 100644 --- a/linux/32/syscallent.h +++ b/linux/32/syscallent.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2019 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -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_time32), "io_getevents" }, +/* [ 4] io_getevents */ [ 5] = { 5, TF, SEN(setxattr), "setxattr" }, [ 6] = { 5, TF, SEN(setxattr), "lsetxattr" }, [ 7] = { 5, TD, SEN(fsetxattr), "fsetxattr" }, @@ -80,8 +80,8 @@ [ 69] = { 5, TD, SEN(preadv), "preadv" }, [ 70] = { 5, TD, SEN(pwritev), "pwritev" }, [ 71] = { 4, TD|TN, SEN(sendfile64), "sendfile64" }, -[ 72] = { 6, TD, SEN(pselect6_time32), "pselect6" }, -[ 73] = { 5, TD, SEN(ppoll_time32), "ppoll" }, +/* [ 72] pselect6 */ +/* [ 73] ppoll */ [ 74] = { 4, TD|TS, SEN(signalfd4), "signalfd4" }, [ 75] = { 4, TD, SEN(vmsplice), "vmsplice" }, [ 76] = { 6, TD, SEN(splice), "splice" }, @@ -98,36 +98,36 @@ [ 84] = { 6, TD, SEN(sync_file_range), "sync_file_range" }, #endif [ 85] = { 2, TD, SEN(timerfd_create), "timerfd_create" }, -[ 86] = { 4, TD, SEN(timerfd_settime32), "timerfd_settime" }, -[ 87] = { 2, TD, SEN(timerfd_gettime32), "timerfd_gettime" }, -[ 88] = { 4, TD|TF, SEN(utimensat_time32), "utimensat" }, +/* [ 86] timerfd_settime */ +/* [ 87] timerfd_gettime */ +/* [ 88] utimensat */ [ 89] = { 1, TF, SEN(acct), "acct" }, -[ 90] = { 2, 0, SEN(capget), "capget" }, -[ 91] = { 2, 0, SEN(capset), "capset" }, +[ 90] = { 2, TC, SEN(capget), "capget" }, +[ 91] = { 2, TC, SEN(capset), "capset" }, [ 92] = { 1, NF, SEN(personality), "personality" }, [ 93] = { 1, TP|SE, SEN(exit), "exit" }, [ 94] = { 1, TP|SE, SEN(exit), "exit_group" }, [ 95] = { 5, TP, SEN(waitid), "waitid" }, [ 96] = { 1, 0, SEN(set_tid_address), "set_tid_address" }, -[ 97] = { 1, TP, SEN(unshare), "unshare" }, -[ 98] = { 6, 0, SEN(futex_time32), "futex" }, +[ 97] = { 1, 0, SEN(unshare), "unshare" }, +/* [ 98] futex */ [ 99] = { 2, 0, SEN(set_robust_list), "set_robust_list" }, [100] = { 3, 0, SEN(get_robust_list), "get_robust_list" }, -[101] = { 2, 0, SEN(nanosleep_time32), "nanosleep" }, +/* [101] nanosleep */ [102] = { 2, 0, SEN(getitimer), "getitimer" }, [103] = { 3, 0, SEN(setitimer), "setitimer" }, [104] = { 4, 0, SEN(kexec_load), "kexec_load" }, [105] = { 3, 0, SEN(init_module), "init_module" }, [106] = { 2, 0, SEN(delete_module), "delete_module" }, [107] = { 3, 0, SEN(timer_create), "timer_create" }, -[108] = { 2, 0, SEN(timer_gettime32), "timer_gettime" }, +/* [108] timer_gettime */ [109] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" }, -[110] = { 4, 0, SEN(timer_settime32), "timer_settime" }, +/* [110] timer_settime */ [111] = { 1, 0, SEN(timer_delete), "timer_delete" }, -[112] = { 2, 0, SEN(clock_settime32), "clock_settime" }, -[113] = { 2, 0, SEN(clock_gettime32), "clock_gettime" }, -[114] = { 2, 0, SEN(clock_getres_time32), "clock_getres" }, -[115] = { 4, 0, SEN(clock_nanosleep_time32), "clock_nanosleep" }, +/* [112] clock_settime */ +/* [113] clock_gettime */ +/* [114] clock_getres */ +/* [115] clock_nanosleep */ [116] = { 3, 0, SEN(syslog), "syslog" }, [117] = { 4, 0, SEN(ptrace), "ptrace" }, [118] = { 2, 0, SEN(sched_setparam), "sched_setparam" }, @@ -139,39 +139,39 @@ [124] = { 0, 0, SEN(sched_yield), "sched_yield" }, [125] = { 1, 0, SEN(sched_get_priority_max), "sched_get_priority_max"}, [126] = { 1, 0, SEN(sched_get_priority_min), "sched_get_priority_min"}, -[127] = { 2, 0, SEN(sched_rr_get_interval_time32),"sched_rr_get_interval"}, +/* [127] sched_rr_get_interval */ [128] = { 0, 0, SEN(restart_syscall), "restart_syscall" }, -[129] = { 2, TS, SEN(kill), "kill" }, -[130] = { 2, TS, SEN(kill), "tkill" }, -[131] = { 3, TS, SEN(tgkill), "tgkill" }, +[129] = { 2, TS|TP, SEN(kill), "kill" }, +[130] = { 2, TS|TP, SEN(tkill), "tkill" }, +[131] = { 3, TS|TP, SEN(tgkill), "tgkill" }, [132] = { 2, TS, SEN(sigaltstack), "sigaltstack" }, [133] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" }, [134] = { 4, TS, SEN(rt_sigaction), "rt_sigaction" }, [135] = { 4, TS, SEN(rt_sigprocmask), "rt_sigprocmask" }, [136] = { 2, TS, SEN(rt_sigpending), "rt_sigpending" }, -[137] = { 4, TS, SEN(rt_sigtimedwait_time32), "rt_sigtimedwait" }, -[138] = { 3, TS, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, +/* [137] rt_sigtimedwait */ +[138] = { 3, TS|TP, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, [139] = { 0, TS, SEN(rt_sigreturn), "rt_sigreturn" }, [140] = { 3, 0, SEN(setpriority), "setpriority" }, [141] = { 2, 0, SEN(getpriority), "getpriority" }, [142] = { 4, 0, SEN(reboot), "reboot" }, -[143] = { 2, 0, SEN(setregid), "setregid" }, -[144] = { 1, 0, SEN(setgid), "setgid" }, -[145] = { 2, 0, SEN(setreuid), "setreuid" }, -[146] = { 1, 0, SEN(setuid), "setuid" }, -[147] = { 3, 0, SEN(setresuid), "setresuid" }, -[148] = { 3, 0, SEN(getresuid), "getresuid" }, -[149] = { 3, 0, SEN(setresgid), "setresgid" }, -[150] = { 3, 0, SEN(getresgid), "getresgid" }, -[151] = { 1, NF, SEN(setfsuid), "setfsuid" }, -[152] = { 1, NF, SEN(setfsgid), "setfsgid" }, +[143] = { 2, TC, SEN(setregid), "setregid" }, +[144] = { 1, TC, SEN(setgid), "setgid" }, +[145] = { 2, TC, SEN(setreuid), "setreuid" }, +[146] = { 1, TC, SEN(setuid), "setuid" }, +[147] = { 3, TC, SEN(setresuid), "setresuid" }, +[148] = { 3, TC, SEN(getresuid), "getresuid" }, +[149] = { 3, TC, SEN(setresgid), "setresgid" }, +[150] = { 3, TC, SEN(getresgid), "getresgid" }, +[151] = { 1, TC|NF, SEN(setfsuid), "setfsuid" }, +[152] = { 1, TC|NF, SEN(setfsgid), "setfsgid" }, [153] = { 1, 0, SEN(times), "times" }, [154] = { 2, 0, SEN(setpgid), "setpgid" }, [155] = { 1, 0, SEN(getpgid), "getpgid" }, [156] = { 1, 0, SEN(getsid), "getsid" }, [157] = { 0, 0, SEN(setsid), "setsid" }, -[158] = { 2, 0, SEN(getgroups), "getgroups" }, -[159] = { 2, 0, SEN(setgroups), "setgroups" }, +[158] = { 2, TC, SEN(getgroups), "getgroups" }, +[159] = { 2, TC, SEN(setgroups), "setgroups" }, [160] = { 1, 0, SEN(uname), "uname" }, [161] = { 2, 0, SEN(sethostname), "sethostname" }, [162] = { 2, 0, SEN(setdomainname), "setdomainname" }, @@ -179,23 +179,23 @@ [164] = { 2, 0, SEN(setrlimit), "setrlimit" }, [165] = { 2, 0, SEN(getrusage), "getrusage" }, [166] = { 1, NF, SEN(umask), "umask" }, -[167] = { 5, 0, SEN(prctl), "prctl" }, +[167] = { 5, TC, SEN(prctl), "prctl" }, [168] = { 3, 0, SEN(getcpu), "getcpu" }, -[169] = { 2, 0, SEN(gettimeofday), "gettimeofday" }, -[170] = { 2, 0, SEN(settimeofday), "settimeofday" }, -[171] = { 1, 0, SEN(adjtimex32), "adjtimex" }, +/* [169] gettimeofday */ +/* [170] settimeofday */ +/* [171] adjtimex */ [172] = { 0, PU|NF, SEN(getpid), "getpid" }, [173] = { 0, PU|NF, SEN(getppid), "getppid" }, -[174] = { 0, PU|NF, SEN(getuid), "getuid" }, -[175] = { 0, PU|NF, SEN(geteuid), "geteuid" }, -[176] = { 0, PU|NF, SEN(getgid), "getgid" }, -[177] = { 0, PU|NF, SEN(getegid), "getegid" }, +[174] = { 0, TC|PU|NF, SEN(getuid), "getuid" }, +[175] = { 0, TC|PU|NF, SEN(geteuid), "geteuid" }, +[176] = { 0, TC|PU|NF, SEN(getgid), "getgid" }, +[177] = { 0, TC|PU|NF, SEN(getegid), "getegid" }, [178] = { 0, PU|NF, SEN(gettid), "gettid" }, [179] = { 1, 0, SEN(sysinfo), "sysinfo" }, [180] = { 4, TD, SEN(mq_open), "mq_open" }, [181] = { 1, 0, SEN(mq_unlink), "mq_unlink" }, -[182] = { 5, TD, SEN(mq_timedsend_time32), "mq_timedsend" }, -[183] = { 5, TD, SEN(mq_timedreceive_time32), "mq_timedreceive" }, +/* [182] mq_timedsend */ +/* [183] mq_timedreceive */ [184] = { 2, TD, SEN(mq_notify), "mq_notify" }, [185] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" }, [186] = { 2, TI, SEN(msgget), "msgget" }, @@ -204,7 +204,7 @@ [189] = { 4, TI, SEN(msgsnd), "msgsnd" }, [190] = { 3, TI, SEN(semget), "semget" }, [191] = { 4, TI, SEN(semctl), "semctl" }, -[192] = { 4, TI, SEN(semtimedop_time32), "semtimedop" }, +/* [192] semtimedop */ [193] = { 3, TI, SEN(semop), "semop" }, [194] = { 3, TI, SEN(shmget), "shmget" }, [195] = { 3, TI, SEN(shmctl), "shmctl" }, @@ -233,7 +233,7 @@ [218] = { 4, 0, SEN(request_key), "request_key" }, [219] = { 5, 0, SEN(keyctl), "keyctl" }, [220] = { 5, TP, SEN(clone), "clone" }, -[221] = { 3, TF|TP|SE|SI, SEN(execve), "execve" }, +[221] = { 3, TF|TP|TSD|SE|SI, SEN(execve), "execve" }, [222] = { 6, TD|TM|SI, SEN(ARCH_mmap), "mmap2" }, [223] = { 6, TD, SEN(fadvise64_64), "fadvise64_64" }, [224] = { 2, TF, SEN(swapon), "swapon" }, @@ -255,15 +255,15 @@ [240] = { 4, TP|TS, SEN(rt_tgsigqueueinfo), "rt_tgsigqueueinfo" }, [241] = { 5, TD, SEN(perf_event_open), "perf_event_open" }, [242] = { 4, TN, SEN(accept4), "accept4" }, -[243] = { 5, TN, SEN(recvmmsg_time32), "recvmmsg" }, +/* [243] recvmmsg */ /* [244 ... 259] are arch specific */ -[260] = { 4, TP, SEN(wait4), "wait4" }, +/* [260] wait4 */ [261] = { 4, 0, SEN(prlimit64), "prlimit64" }, [262] = { 2, TD, SEN(fanotify_init), "fanotify_init" }, [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_adjtime32), "clock_adjtime" }, +/* [266] clock_adjtime */ [267] = { 1, TD, SEN(syncfs), "syncfs" }, [268] = { 2, TD, SEN(setns), "setns" }, [269] = { 4, TN, SEN(sendmmsg), "sendmmsg" }, @@ -278,7 +278,7 @@ [278] = { 3, 0, SEN(getrandom), "getrandom" }, [279] = { 2, TD, SEN(memfd_create), "memfd_create" }, [280] = { 3, TD, SEN(bpf), "bpf" }, -[281] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat" }, +[281] = { 5, TD|TF|TP|TSD|SE|SI, SEN(execveat), "execveat" }, [282] = { 1, TD, SEN(userfaultfd), "userfaultfd" }, [283] = { 2, 0, SEN(membarrier), "membarrier" }, [284] = { 3, TM, SEN(mlock2), "mlock2" }, @@ -288,34 +288,16 @@ [288] = { 4, TM|SI, SEN(pkey_mprotect), "pkey_mprotect" }, [289] = { 2, 0, SEN(pkey_alloc), "pkey_alloc" }, [290] = { 1, 0, SEN(pkey_free), "pkey_free" }, -[291] = { 5, TD|TF|TSTA, SEN(statx), "statx" }, -[292] = { 6, 0, SEN(io_pgetevents_time32), "io_pgetevents" }, +[291] = { 5, TD|TF|TFST|TSTA,SEN(statx), "statx" }, +/* [292] io_pgetevents */ [293] = { 4, 0, SEN(rseq), "rseq" }, [294] = { 5, TD, SEN(kexec_file_load), "kexec_file_load" }, -[403] = { 2, 0, SEN(clock_gettime64), "clock_gettime64" }, -[404] = { 2, 0, SEN(clock_settime64), "clock_settime64" }, -[405] = { 2, 0, SEN(clock_adjtime64), "clock_adjtime64" }, -[406] = { 2, 0, SEN(clock_getres_time64), "clock_getres_time64" }, -[407] = { 4, 0, SEN(clock_nanosleep_time64), "clock_nanosleep_time64"}, -[408] = { 2, 0, SEN(timer_gettime64), "timer_gettime64" }, -[409] = { 4, 0, SEN(timer_settime64), "timer_settime64" }, -[410] = { 2, TD, SEN(timerfd_gettime64), "timerfd_gettime64" }, -[411] = { 4, TD, SEN(timerfd_settime64), "timerfd_settime64" }, -[412] = { 4, TD|TF, SEN(utimensat_time64), "utimensat_time64" }, -[413] = { 6, TD, SEN(pselect6_time64), "pselect6_time64" }, -[414] = { 5, TD, SEN(ppoll_time64), "ppoll_time64" }, -[416] = { 6, 0, SEN(io_pgetevents_time64), "io_pgetevents_time64" }, -[417] = { 5, TN, SEN(recvmmsg_time64), "recvmmsg_time64" }, -[418] = { 5, TD, SEN(mq_timedsend_time64), "mq_timedsend_time64" }, -[419] = { 5, TD, SEN(mq_timedreceive_time64), "mq_timedreceive_time64"}, -[420] = { 4, TI, SEN(semtimedop_time64), "semtimedop_time64" }, -[421] = { 4, TS, SEN(rt_sigtimedwait_time64), "rt_sigtimedwait_time64"}, -[422] = { 6, 0, SEN(futex_time64), "futex_time64" }, -[423] = { 2, 0, SEN(sched_rr_get_interval_time64), "sched_rr_get_interval_time64" }, -[424] = { 4, TD|TS, SEN(pidfd_send_signal), "pidfd_send_signal" }, -[425] = { 2, TD, SEN(io_uring_setup), "io_uring_setup" }, -[426] = { 6, TD|TS, SEN(io_uring_enter), "io_uring_enter" }, -[427] = { 4, TD|TM, SEN(io_uring_register), "io_uring_register" }, +#if HAVE_ARCH_TIME32_SYSCALLS +# include "32/syscallent-time32.h" +#endif +/* [295 ... 402] - reserved to sync up with other architectures */ +#include "syscallent-common-32.h" +#include "syscallent-common.h" #undef sys_ARCH_mmap #undef ARCH_WANT_SYNC_FILE_RANGE2 diff --git a/linux/64/ioctls_inc.h b/linux/64/ioctls_inc.h index bc5ba746..32033e97 100644 --- a/linux/64/ioctls_inc.h +++ b/linux/64/ioctls_inc.h @@ -81,8 +81,8 @@ { "asm-generic/sockios.h", "FIOSETOWN", 0, 0x8901, 0 }, { "asm-generic/sockios.h", "SIOCATMARK", 0, 0x8905, 0 }, { "asm-generic/sockios.h", "SIOCGPGRP", 0, 0x8904, 0 }, -{ "asm-generic/sockios.h", "SIOCGSTAMP", 0, 0x8906, 0 }, -{ "asm-generic/sockios.h", "SIOCGSTAMPNS", 0, 0x8907, 0 }, +{ "asm-generic/sockios.h", "SIOCGSTAMPNS_OLD", 0, 0x8907, 0 }, +{ "asm-generic/sockios.h", "SIOCGSTAMP_OLD", 0, 0x8906, 0 }, { "asm-generic/sockios.h", "SIOCSPGRP", 0, 0x8902, 0 }, { "drm/amdgpu_drm.h", "DRM_IOCTL_AMDGPU_BO_LIST", _IOC_READ|_IOC_WRITE, 0x6443, 0x18 }, { "drm/amdgpu_drm.h", "DRM_IOCTL_AMDGPU_CS", _IOC_READ|_IOC_WRITE, 0x6444, 0x18 }, @@ -155,6 +155,7 @@ { "drm/drm.h", "DRM_IOCTL_MODE_GETCRTC", _IOC_READ|_IOC_WRITE, 0x64a1, 0x68 }, { "drm/drm.h", "DRM_IOCTL_MODE_GETENCODER", _IOC_READ|_IOC_WRITE, 0x64a6, 0x14 }, { "drm/drm.h", "DRM_IOCTL_MODE_GETFB", _IOC_READ|_IOC_WRITE, 0x64ad, 0x1c }, +{ "drm/drm.h", "DRM_IOCTL_MODE_GETFB2", _IOC_READ|_IOC_WRITE, 0x64ce, 0x68 }, { "drm/drm.h", "DRM_IOCTL_MODE_GETGAMMA", _IOC_READ|_IOC_WRITE, 0x64a4, 0x20 }, { "drm/drm.h", "DRM_IOCTL_MODE_GETPLANE", _IOC_READ|_IOC_WRITE, 0x64b6, 0x20 }, { "drm/drm.h", "DRM_IOCTL_MODE_GETPLANERESOURCES", _IOC_READ|_IOC_WRITE, 0x64b5, 0x10 }, @@ -193,8 +194,12 @@ { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_DESTROY", _IOC_READ|_IOC_WRITE, 0x64c0, 0x08 }, { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_FD_TO_HANDLE", _IOC_READ|_IOC_WRITE, 0x64c2, 0x10 }, { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD", _IOC_READ|_IOC_WRITE, 0x64c1, 0x10 }, +{ "drm/drm.h", "DRM_IOCTL_SYNCOBJ_QUERY", _IOC_READ|_IOC_WRITE, 0x64cb, 0x18 }, { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_RESET", _IOC_READ|_IOC_WRITE, 0x64c4, 0x10 }, { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_SIGNAL", _IOC_READ|_IOC_WRITE, 0x64c5, 0x10 }, +{ "drm/drm.h", "DRM_IOCTL_SYNCOBJ_TIMELINE_SIGNAL", _IOC_READ|_IOC_WRITE, 0x64cd, 0x18 }, +{ "drm/drm.h", "DRM_IOCTL_SYNCOBJ_TIMELINE_WAIT", _IOC_READ|_IOC_WRITE, 0x64ca, 0x28 }, +{ "drm/drm.h", "DRM_IOCTL_SYNCOBJ_TRANSFER", _IOC_READ|_IOC_WRITE, 0x64cc, 0x20 }, { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_WAIT", _IOC_READ|_IOC_WRITE, 0x64c3, 0x20 }, { "drm/drm.h", "DRM_IOCTL_UNBLOCK", _IOC_READ|_IOC_WRITE, 0x6413, 0x04 }, { "drm/drm.h", "DRM_IOCTL_UNLOCK", _IOC_WRITE, 0x642b, 0x08 }, @@ -247,6 +252,7 @@ { "drm/i915_drm.h", "DRM_IOCTL_I915_FREE", _IOC_WRITE, 0x6449, 0x08 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_BUSY", _IOC_READ|_IOC_WRITE, 0x6457, 0x08 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_CONTEXT_CREATE", _IOC_READ|_IOC_WRITE, 0x646d, 0x08 }, +{ "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT", _IOC_READ|_IOC_WRITE, 0x646d, 0x10 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_CONTEXT_DESTROY", _IOC_WRITE, 0x646e, 0x08 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM", _IOC_READ|_IOC_WRITE, 0x6474, 0x18 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM", _IOC_READ|_IOC_WRITE, 0x6475, 0x18 }, @@ -263,6 +269,7 @@ { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_MADVISE", _IOC_READ|_IOC_WRITE, 0x6466, 0x0c }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_MMAP", _IOC_READ|_IOC_WRITE, 0x645e, 0x28 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_MMAP_GTT", _IOC_READ|_IOC_WRITE, 0x6464, 0x10 }, +{ "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_MMAP_OFFSET", _IOC_READ|_IOC_WRITE, 0x6464, 0x20 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_PIN", _IOC_READ|_IOC_WRITE, 0x6455, 0x18 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_PREAD", _IOC_WRITE, 0x645c, 0x20 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_PWRITE", _IOC_WRITE, 0x645d, 0x20 }, @@ -273,6 +280,8 @@ { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_THROTTLE", _IOC_NONE, 0x6458, 0x00 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_UNPIN", _IOC_WRITE, 0x6456, 0x08 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_USERPTR", _IOC_READ|_IOC_WRITE, 0x6473, 0x18 }, +{ "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_VM_CREATE", _IOC_READ|_IOC_WRITE, 0x647a, 0x10 }, +{ "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_VM_DESTROY", _IOC_WRITE, 0x647b, 0x10 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_WAIT", _IOC_READ|_IOC_WRITE, 0x646c, 0x10 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GETPARAM", _IOC_READ|_IOC_WRITE, 0x6446, 0x10 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GET_PIPE_FROM_CRTC_ID", _IOC_READ|_IOC_WRITE, 0x6465, 0x08 }, @@ -295,8 +304,16 @@ { "drm/i915_drm.h", "DRM_IOCTL_I915_SET_SPRITE_COLORKEY", _IOC_READ|_IOC_WRITE, 0x646b, 0x14 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_SET_VBLANK_PIPE", _IOC_WRITE, 0x644d, 0x04 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_VBLANK_SWAP", _IOC_READ|_IOC_WRITE, 0x644f, 0x0c }, +{ "drm/i915_drm.h", "I915_PERF_IOCTL_CONFIG", _IOC_NONE, 0x6902, 0x00 }, { "drm/i915_drm.h", "I915_PERF_IOCTL_DISABLE", _IOC_NONE, 0x6901, 0x00 }, { "drm/i915_drm.h", "I915_PERF_IOCTL_ENABLE", _IOC_NONE, 0x6900, 0x00 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_CTX_CREATE", _IOC_READ, 0x6445, 0x08 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_CTX_FREE", _IOC_WRITE, 0x6446, 0x08 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_GEM_CREATE", _IOC_READ|_IOC_WRITE, 0x6441, 0x10 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_GEM_INFO", _IOC_READ|_IOC_WRITE, 0x6442, 0x10 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_GEM_SUBMIT", _IOC_WRITE, 0x6443, 0x30 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_GEM_WAIT", _IOC_WRITE, 0x6444, 0x10 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6440, 0x10 }, { "drm/mga_drm.h", "DRM_IOCTL_MGA_BLIT", _IOC_WRITE, 0x6448, 0x34 }, { "drm/mga_drm.h", "DRM_IOCTL_MGA_CLEAR", _IOC_WRITE, 0x6444, 0x14 }, { "drm/mga_drm.h", "DRM_IOCTL_MGA_DMA_BOOTSTRAP", _IOC_READ|_IOC_WRITE, 0x644c, 0x20 }, @@ -315,10 +332,11 @@ { "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_INFO", _IOC_READ|_IOC_WRITE, 0x6443, 0x18 }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_MADVISE", _IOC_READ|_IOC_WRITE, 0x6448, 0x0c }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_NEW", _IOC_READ|_IOC_WRITE, 0x6442, 0x10 }, -{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_SUBMIT", _IOC_READ|_IOC_WRITE, 0x6446, 0x28 }, +{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_SUBMIT", _IOC_READ|_IOC_WRITE, 0x6446, 0x48 }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6440, 0x10 }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_SUBMITQUEUE_CLOSE", _IOC_WRITE, 0x644b, 0x04 }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_SUBMITQUEUE_NEW", _IOC_READ|_IOC_WRITE, 0x644a, 0x0c }, +{ "drm/msm_drm.h", "DRM_IOCTL_MSM_SUBMITQUEUE_QUERY", _IOC_WRITE, 0x644c, 0x18 }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_WAIT_FENCE", _IOC_WRITE, 0x6447, 0x20 }, { "drm/nouveau_drm.h", "DRM_IOCTL_NOUVEAU_GEM_CPU_FINI", _IOC_WRITE, 0x6483, 0x04 }, { "drm/nouveau_drm.h", "DRM_IOCTL_NOUVEAU_GEM_CPU_PREP", _IOC_WRITE, 0x6482, 0x08 }, @@ -333,6 +351,15 @@ { "drm/omap_drm.h", "DRM_IOCTL_OMAP_GEM_NEW", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 }, { "drm/omap_drm.h", "DRM_IOCTL_OMAP_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6440, 0x10 }, { "drm/omap_drm.h", "DRM_IOCTL_OMAP_SET_PARAM", _IOC_WRITE, 0x6441, 0x10 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_CREATE_BO", _IOC_READ|_IOC_WRITE, 0x6442, 0x18 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_GET_BO_OFFSET", _IOC_READ|_IOC_WRITE, 0x6445, 0x10 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6444, 0x10 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_MADVISE", _IOC_READ|_IOC_WRITE, 0x6448, 0x0c }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_MMAP_BO", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_PERFCNT_DUMP", _IOC_WRITE, 0x6447, 0x08 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_PERFCNT_ENABLE", _IOC_WRITE, 0x6446, 0x08 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_SUBMIT", _IOC_WRITE, 0x6440, 0x28 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_WAIT_BO", _IOC_WRITE, 0x6441, 0x10 }, { "drm/qxl_drm.h", "DRM_IOCTL_QXL_ALLOC", _IOC_READ|_IOC_WRITE, 0x6440, 0x08 }, { "drm/qxl_drm.h", "DRM_IOCTL_QXL_ALLOC_SURF", _IOC_READ|_IOC_WRITE, 0x6446, 0x18 }, { "drm/qxl_drm.h", "DRM_IOCTL_QXL_CLIENTCAP", _IOC_WRITE, 0x6445, 0x08 }, @@ -428,6 +455,7 @@ { "drm/v3d_drm.h", "DRM_IOCTL_V3D_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6444, 0x10 }, { "drm/v3d_drm.h", "DRM_IOCTL_V3D_MMAP_BO", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 }, { "drm/v3d_drm.h", "DRM_IOCTL_V3D_SUBMIT_CL", _IOC_READ|_IOC_WRITE, 0x6440, 0x38 }, +{ "drm/v3d_drm.h", "DRM_IOCTL_V3D_SUBMIT_CSD", _IOC_WRITE, 0x6447, 0x48 }, { "drm/v3d_drm.h", "DRM_IOCTL_V3D_SUBMIT_TFU", _IOC_WRITE, 0x6446, 0x44 }, { "drm/v3d_drm.h", "DRM_IOCTL_V3D_WAIT_BO", _IOC_READ|_IOC_WRITE, 0x6441, 0x10 }, { "drm/vc4_drm.h", "DRM_IOCTL_VC4_CREATE_BO", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 }, @@ -537,6 +565,8 @@ { "linux/arcfb.h", "FBIO_WAITEVENT", _IOC_NONE, 0x4688, 0x00 }, { "linux/aspeed-lpc-ctrl.h", "ASPEED_LPC_CTRL_IOCTL_GET_SIZE", _IOC_READ|_IOC_WRITE, 0xb200, 0x10 }, { "linux/aspeed-lpc-ctrl.h", "ASPEED_LPC_CTRL_IOCTL_MAP", _IOC_WRITE, 0xb201, 0x10 }, +{ "linux/aspeed-p2a-ctrl.h", "ASPEED_P2A_CTRL_IOCTL_GET_MEMORY_CONFIG", _IOC_READ|_IOC_WRITE, 0xb301, 0x10 }, +{ "linux/aspeed-p2a-ctrl.h", "ASPEED_P2A_CTRL_IOCTL_SET_WINDOW", _IOC_WRITE, 0xb300, 0x10 }, { "linux/atm_eni.h", "ENI_MEMDUMP", _IOC_WRITE, 0x6160, 0x10 }, { "linux/atm_eni.h", "ENI_SETMULT", _IOC_WRITE, 0x6167, 0x10 }, { "linux/atm_he.h", "HE_GET_REG", _IOC_WRITE, 0x6160, 0x10 }, @@ -613,8 +643,11 @@ { "linux/auto_fs.h", "AUTOFS_IOC_SETTIMEOUT", _IOC_READ|_IOC_WRITE, 0x9364, 0x08 }, { "linux/auto_fs.h", "AUTOFS_IOC_SETTIMEOUT32", _IOC_READ|_IOC_WRITE, 0x9364, 0x04 }, { "linux/blkpg.h", "BLKPG", _IOC_NONE, 0x1269, 0x00 }, +{ "linux/blkzoned.h", "BLKCLOSEZONE", _IOC_WRITE, 0x1287, 0x10 }, +{ "linux/blkzoned.h", "BLKFINISHZONE", _IOC_WRITE, 0x1288, 0x10 }, { "linux/blkzoned.h", "BLKGETNRZONES", _IOC_READ, 0x1285, 0x04 }, { "linux/blkzoned.h", "BLKGETZONESZ", _IOC_READ, 0x1284, 0x04 }, +{ "linux/blkzoned.h", "BLKOPENZONE", _IOC_WRITE, 0x1286, 0x10 }, { "linux/blkzoned.h", "BLKREPORTZONE", _IOC_READ|_IOC_WRITE, 0x1282, 0x10 }, { "linux/blkzoned.h", "BLKRESETZONE", _IOC_WRITE, 0x1283, 0x10 }, { "linux/bt-bmc.h", "BT_BMC_IOCTL_SMS_ATN", _IOC_NONE, 0xb100, 0x00 }, @@ -664,6 +697,7 @@ { "linux/btrfs.h", "BTRFS_IOC_SNAP_CREATE", _IOC_WRITE, 0x9401, 0x1000 }, { "linux/btrfs.h", "BTRFS_IOC_SNAP_CREATE_V2", _IOC_WRITE, 0x9417, 0x1000 }, { "linux/btrfs.h", "BTRFS_IOC_SNAP_DESTROY", _IOC_WRITE, 0x940f, 0x1000 }, +{ "linux/btrfs.h", "BTRFS_IOC_SNAP_DESTROY_V2", _IOC_WRITE, 0x943f, 0x1000 }, { "linux/btrfs.h", "BTRFS_IOC_SPACE_INFO", _IOC_READ|_IOC_WRITE, 0x9414, 0x10 }, { "linux/btrfs.h", "BTRFS_IOC_START_SYNC", _IOC_READ, 0x9418, 0x08 }, { "linux/btrfs.h", "BTRFS_IOC_SUBVOL_CREATE", _IOC_WRITE, 0x940e, 0x1000 }, @@ -752,6 +786,7 @@ { "linux/cdrom.h", "DVD_READ_STRUCT", 0, 0x5390, 0 }, { "linux/cdrom.h", "DVD_WRITE_STRUCT", 0, 0x5391, 0 }, { "linux/cec.h", "CEC_ADAP_G_CAPS", _IOC_READ|_IOC_WRITE, 0x6100, 0x4c }, +{ "linux/cec.h", "CEC_ADAP_G_CONNECTOR_INFO", _IOC_READ, 0x610a, 0x44 }, { "linux/cec.h", "CEC_ADAP_G_LOG_ADDRS", _IOC_READ, 0x6103, 0x5c }, { "linux/cec.h", "CEC_ADAP_G_PHYS_ADDR", _IOC_READ, 0x6101, 0x02 }, { "linux/cec.h", "CEC_ADAP_S_LOG_ADDRS", _IOC_READ|_IOC_WRITE, 0x6104, 0x5c }, @@ -787,6 +822,7 @@ { "linux/dm-ioctl.h", "DM_DEV_STATUS", _IOC_READ|_IOC_WRITE, 0xfd07, 0x138 }, { "linux/dm-ioctl.h", "DM_DEV_SUSPEND", _IOC_READ|_IOC_WRITE, 0xfd06, 0x138 }, { "linux/dm-ioctl.h", "DM_DEV_WAIT", _IOC_READ|_IOC_WRITE, 0xfd08, 0x138 }, +{ "linux/dm-ioctl.h", "DM_GET_TARGET_VERSION", _IOC_READ|_IOC_WRITE, 0xfd11, 0x138 }, { "linux/dm-ioctl.h", "DM_LIST_DEVICES", _IOC_READ|_IOC_WRITE, 0xfd02, 0x138 }, { "linux/dm-ioctl.h", "DM_LIST_VERSIONS", _IOC_READ|_IOC_WRITE, 0xfd0d, 0x138 }, { "linux/dm-ioctl.h", "DM_REMOVE_ALL", _IOC_READ|_IOC_WRITE, 0xfd01, 0x138 }, @@ -797,6 +833,9 @@ { "linux/dm-ioctl.h", "DM_TARGET_MSG", _IOC_READ|_IOC_WRITE, 0xfd0e, 0x138 }, { "linux/dm-ioctl.h", "DM_VERSION", _IOC_READ|_IOC_WRITE, 0xfd00, 0x138 }, { "linux/dma-buf.h", "DMA_BUF_IOCTL_SYNC", _IOC_WRITE, 0x6200, 0x08 }, +{ "linux/dma-buf.h", "DMA_BUF_SET_NAME_A", _IOC_WRITE, 0x6201, 0x04 }, +{ "linux/dma-buf.h", "DMA_BUF_SET_NAME_B", _IOC_WRITE, 0x6201, 0x08 }, +{ "linux/dma-heap.h", "DMA_HEAP_IOCTL_ALLOC", _IOC_READ|_IOC_WRITE, 0x4800, 0x18 }, { "linux/dn.h", "OSIOCGNETADDR", _IOC_READ, 0x89e1, 0x04 }, { "linux/dn.h", "OSIOCSNETADDR", _IOC_WRITE, 0x89e0, 0x04 }, { "linux/dn.h", "SIOCGNETADDR", _IOC_READ, 0x89e1, 0x04 }, @@ -953,13 +992,21 @@ { "linux/firewire-cdev.h", "FW_CDEV_IOC_START_ISO", _IOC_WRITE, 0x230a, 0x10 }, { "linux/firewire-cdev.h", "FW_CDEV_IOC_STOP_ISO", _IOC_WRITE, 0x230b, 0x04 }, { "linux/fpga-dfl.h", "DFL_FPGA_CHECK_EXTENSION", _IOC_NONE, 0xb601, 0x00 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_FME_ERR_GET_IRQ_NUM", _IOC_READ, 0xb683, 0x04 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_FME_ERR_SET_IRQ", _IOC_WRITE, 0xb684, 0x08 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_FME_PORT_ASSIGN", _IOC_WRITE, 0xb682, 0x04 }, { "linux/fpga-dfl.h", "DFL_FPGA_FME_PORT_PR", _IOC_NONE, 0xb680, 0x00 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_FME_PORT_RELEASE", _IOC_WRITE, 0xb681, 0x04 }, { "linux/fpga-dfl.h", "DFL_FPGA_GET_API_VERSION", _IOC_NONE, 0xb600, 0x00 }, { "linux/fpga-dfl.h", "DFL_FPGA_PORT_DMA_MAP", _IOC_NONE, 0xb643, 0x00 }, { "linux/fpga-dfl.h", "DFL_FPGA_PORT_DMA_UNMAP", _IOC_NONE, 0xb644, 0x00 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_PORT_ERR_GET_IRQ_NUM", _IOC_READ, 0xb645, 0x04 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_PORT_ERR_SET_IRQ", _IOC_WRITE, 0xb646, 0x08 }, { "linux/fpga-dfl.h", "DFL_FPGA_PORT_GET_INFO", _IOC_NONE, 0xb641, 0x00 }, { "linux/fpga-dfl.h", "DFL_FPGA_PORT_GET_REGION_INFO", _IOC_NONE, 0xb642, 0x00 }, { "linux/fpga-dfl.h", "DFL_FPGA_PORT_RESET", _IOC_NONE, 0xb640, 0x00 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_PORT_UINT_GET_IRQ_NUM", _IOC_READ, 0xb647, 0x04 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_PORT_UINT_SET_IRQ", _IOC_WRITE, 0xb648, 0x08 }, { "linux/fs.h", "BLKALIGNOFF", _IOC_NONE, 0x127a, 0x00 }, { "linux/fs.h", "BLKBSZGET", _IOC_READ, 0x1270, 0x08 }, { "linux/fs.h", "BLKBSZSET", _IOC_WRITE, 0x1271, 0x08 }, @@ -1006,12 +1053,18 @@ { "linux/fs.h", "FS_IOC_GETFLAGS", _IOC_READ, 0x6601, 0x08 }, { "linux/fs.h", "FS_IOC_GETFSLABEL", _IOC_READ, 0x9431, 0x100 }, { "linux/fs.h", "FS_IOC_GETVERSION", _IOC_READ, 0x7601, 0x08 }, -{ "linux/fs.h", "FS_IOC_GET_ENCRYPTION_POLICY", _IOC_WRITE, 0x6615, 0x0c }, -{ "linux/fs.h", "FS_IOC_GET_ENCRYPTION_PWSALT", _IOC_WRITE, 0x6614, 0x10 }, { "linux/fs.h", "FS_IOC_SETFLAGS", _IOC_WRITE, 0x6602, 0x08 }, { "linux/fs.h", "FS_IOC_SETFSLABEL", _IOC_WRITE, 0x9432, 0x100 }, { "linux/fs.h", "FS_IOC_SETVERSION", _IOC_WRITE, 0x7602, 0x08 }, -{ "linux/fs.h", "FS_IOC_SET_ENCRYPTION_POLICY", _IOC_READ, 0x6613, 0x0c }, +{ "linux/fscrypt.h", "FS_IOC_ADD_ENCRYPTION_KEY", _IOC_READ|_IOC_WRITE, 0x6617, 0x50 }, +{ "linux/fscrypt.h", "FS_IOC_GET_ENCRYPTION_KEY_STATUS", _IOC_READ|_IOC_WRITE, 0x661a, 0x80 }, +{ "linux/fscrypt.h", "FS_IOC_GET_ENCRYPTION_NONCE", _IOC_READ, 0x661b, 0x10 }, +{ "linux/fscrypt.h", "FS_IOC_GET_ENCRYPTION_POLICY", _IOC_WRITE, 0x6615, 0x0c }, +{ "linux/fscrypt.h", "FS_IOC_GET_ENCRYPTION_POLICY_EX", _IOC_READ|_IOC_WRITE, 0x6616, 0x09 }, +{ "linux/fscrypt.h", "FS_IOC_GET_ENCRYPTION_PWSALT", _IOC_WRITE, 0x6614, 0x10 }, +{ "linux/fscrypt.h", "FS_IOC_REMOVE_ENCRYPTION_KEY", _IOC_READ|_IOC_WRITE, 0x6618, 0x40 }, +{ "linux/fscrypt.h", "FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS", _IOC_READ|_IOC_WRITE, 0x6619, 0x40 }, +{ "linux/fscrypt.h", "FS_IOC_SET_ENCRYPTION_POLICY", _IOC_READ, 0x6613, 0x0c }, { "linux/fsi.h", "FSI_SCOM_CHECK", _IOC_READ, 0x7300, 0x04 }, { "linux/fsi.h", "FSI_SCOM_READ", _IOC_READ|_IOC_WRITE, 0x7301, 0x20 }, { "linux/fsi.h", "FSI_SCOM_RESET", _IOC_WRITE, 0x7303, 0x04 }, @@ -1035,6 +1088,8 @@ { "linux/fsl_hypervisor.h", "FSL_HV_IOCTL_PARTITION_STOP", _IOC_READ|_IOC_WRITE, 0xaf04, 0x08 }, { "linux/fsl_hypervisor.h", "FSL_HV_IOCTL_SETPROP", _IOC_READ|_IOC_WRITE, 0xaf08, 0x28 }, { "linux/fsmap.h", "FS_IOC_GETFSMAP", _IOC_READ|_IOC_WRITE, 0x583b, 0xc0 }, +{ "linux/fsverity.h", "FS_IOC_ENABLE_VERITY", _IOC_WRITE, 0x6685, 0x80 }, +{ "linux/fsverity.h", "FS_IOC_MEASURE_VERITY", _IOC_READ|_IOC_WRITE, 0x6686, 0x04 }, { "linux/fuse.h", "FUSE_DEV_IOC_CLONE", _IOC_READ, 0xe500, 0x04 }, { "linux/genwqe/genwqe_card.h", "GENWQE_EXECUTE_DDCB", _IOC_READ|_IOC_WRITE, 0xa532, 0xe8 }, { "linux/genwqe/genwqe_card.h", "GENWQE_EXECUTE_RAW_DDCB", _IOC_READ|_IOC_WRITE, 0xa533, 0xe8 }, @@ -1049,19 +1104,19 @@ { "linux/genwqe/genwqe_card.h", "GENWQE_WRITE_REG16", _IOC_WRITE, 0xa523, 0x10 }, { "linux/genwqe/genwqe_card.h", "GENWQE_WRITE_REG32", _IOC_WRITE, 0xa521, 0x10 }, { "linux/genwqe/genwqe_card.h", "GENWQE_WRITE_REG64", _IOC_WRITE, 0xa51f, 0x10 }, -{ "linux/gigaset_dev.h", "GIGASET_BRKCHARS", _IOC_WRITE, 0x4702, 0x06 }, -{ "linux/gigaset_dev.h", "GIGASET_CONFIG", _IOC_READ|_IOC_WRITE, 0x4701, 0x04 }, -{ "linux/gigaset_dev.h", "GIGASET_REDIR", _IOC_READ|_IOC_WRITE, 0x4700, 0x04 }, -{ "linux/gigaset_dev.h", "GIGASET_VERSION", _IOC_READ|_IOC_WRITE, 0x4703, 0x10 }, { "linux/gpio.h", "GPIOHANDLE_GET_LINE_VALUES_IOCTL", _IOC_READ|_IOC_WRITE, 0xb408, 0x40 }, +{ "linux/gpio.h", "GPIOHANDLE_SET_CONFIG_IOCTL", _IOC_READ|_IOC_WRITE, 0xb40a, 0x54 }, { "linux/gpio.h", "GPIOHANDLE_SET_LINE_VALUES_IOCTL", _IOC_READ|_IOC_WRITE, 0xb409, 0x40 }, { "linux/gpio.h", "GPIO_GET_CHIPINFO_IOCTL", _IOC_READ, 0xb401, 0x44 }, { "linux/gpio.h", "GPIO_GET_LINEEVENT_IOCTL", _IOC_READ|_IOC_WRITE, 0xb404, 0x30 }, { "linux/gpio.h", "GPIO_GET_LINEHANDLE_IOCTL", _IOC_READ|_IOC_WRITE, 0xb403, 0x16c }, { "linux/gpio.h", "GPIO_GET_LINEINFO_IOCTL", _IOC_READ|_IOC_WRITE, 0xb402, 0x48 }, +{ "linux/gpio.h", "GPIO_GET_LINEINFO_UNWATCH_IOCTL", _IOC_READ|_IOC_WRITE, 0xb40c, 0x04 }, +{ "linux/gpio.h", "GPIO_GET_LINEINFO_WATCH_IOCTL", _IOC_READ|_IOC_WRITE, 0xb40b, 0x48 }, { "linux/gsmmux.h", "GSMIOC_DISABLE_NET", _IOC_NONE, 0x4703, 0x00 }, { "linux/gsmmux.h", "GSMIOC_ENABLE_NET", _IOC_WRITE, 0x4702, 0x34 }, { "linux/gsmmux.h", "GSMIOC_GETCONF", _IOC_READ, 0x4700, 0x4c }, +{ "linux/gsmmux.h", "GSMIOC_GETFIRST", _IOC_READ, 0x4704, 0x04 }, { "linux/gsmmux.h", "GSMIOC_SETCONF", _IOC_WRITE, 0x4701, 0x4c }, { "linux/hdreg.h", "HDIO_DRIVE_CMD", 0, 0x031f, 0 }, { "linux/hdreg.h", "HDIO_DRIVE_RESET", 0, 0x031c, 0 }, @@ -1164,6 +1219,7 @@ { "linux/if_pppox.h", "PPPOEIOCSFWD", _IOC_WRITE, 0xb100, 0x08 }, { "linux/if_tun.h", "TUNATTACHFILTER", _IOC_WRITE, 0x54d5, 0x10 }, { "linux/if_tun.h", "TUNDETACHFILTER", _IOC_WRITE, 0x54d6, 0x10 }, +{ "linux/if_tun.h", "TUNGETDEVNETNS", _IOC_NONE, 0x54e3, 0x00 }, { "linux/if_tun.h", "TUNGETFEATURES", _IOC_READ, 0x54cf, 0x04 }, { "linux/if_tun.h", "TUNGETFILTER", _IOC_READ, 0x54db, 0x10 }, { "linux/if_tun.h", "TUNGETIFF", _IOC_READ, 0x54d2, 0x04 }, @@ -1231,44 +1287,11 @@ { "linux/ipmi_bmc.h", "IPMI_BMC_IOCTL_CLEAR_SMS_ATN", _IOC_NONE, 0xb101, 0x00 }, { "linux/ipmi_bmc.h", "IPMI_BMC_IOCTL_FORCE_ABORT", _IOC_NONE, 0xb102, 0x00 }, { "linux/ipmi_bmc.h", "IPMI_BMC_IOCTL_SET_SMS_ATN", _IOC_NONE, 0xb100, 0x00 }, -{ "linux/isdn.h", "IIOCDBGVAR", _IOC_NONE, 0x497f, 0x00 }, -{ "linux/isdn.h", "IIOCDRVCTL", _IOC_NONE, 0x4980, 0x00 }, -{ "linux/isdn.h", "IIOCGETCPS", _IOC_NONE, 0x4915, 0x00 }, -{ "linux/isdn.h", "IIOCGETDVR", _IOC_NONE, 0x4916, 0x00 }, -{ "linux/isdn.h", "IIOCGETMAP", _IOC_NONE, 0x4911, 0x00 }, -{ "linux/isdn.h", "IIOCGETPRF", _IOC_NONE, 0x490f, 0x00 }, -{ "linux/isdn.h", "IIOCGETSET", _IOC_NONE, 0x4908, 0x00 }, -{ "linux/isdn.h", "IIOCNETAIF", _IOC_NONE, 0x4901, 0x00 }, -{ "linux/isdn.h", "IIOCNETALN", _IOC_NONE, 0x4920, 0x00 }, -{ "linux/isdn.h", "IIOCNETANM", _IOC_NONE, 0x4905, 0x00 }, -{ "linux/isdn.h", "IIOCNETASL", _IOC_NONE, 0x4913, 0x00 }, -{ "linux/isdn.h", "IIOCNETDIF", _IOC_NONE, 0x4902, 0x00 }, -{ "linux/isdn.h", "IIOCNETDIL", _IOC_NONE, 0x4914, 0x00 }, -{ "linux/isdn.h", "IIOCNETDLN", _IOC_NONE, 0x4921, 0x00 }, -{ "linux/isdn.h", "IIOCNETDNM", _IOC_NONE, 0x4906, 0x00 }, -{ "linux/isdn.h", "IIOCNETDWRSET", _IOC_NONE, 0x4918, 0x00 }, -{ "linux/isdn.h", "IIOCNETGCF", _IOC_NONE, 0x4904, 0x00 }, -{ "linux/isdn.h", "IIOCNETGNM", _IOC_NONE, 0x4907, 0x00 }, -{ "linux/isdn.h", "IIOCNETGPN", _IOC_NONE, 0x4922, 0x00 }, -{ "linux/isdn.h", "IIOCNETHUP", _IOC_NONE, 0x490b, 0x00 }, -{ "linux/isdn.h", "IIOCNETLCR", _IOC_NONE, 0x4917, 0x00 }, -{ "linux/isdn.h", "IIOCNETSCF", _IOC_NONE, 0x4903, 0x00 }, -{ "linux/isdn.h", "IIOCSETBRJ", _IOC_NONE, 0x490d, 0x00 }, -{ "linux/isdn.h", "IIOCSETGST", _IOC_NONE, 0x490c, 0x00 }, -{ "linux/isdn.h", "IIOCSETMAP", _IOC_NONE, 0x4912, 0x00 }, -{ "linux/isdn.h", "IIOCSETPRF", _IOC_NONE, 0x4910, 0x00 }, -{ "linux/isdn.h", "IIOCSETSET", _IOC_NONE, 0x4909, 0x00 }, -{ "linux/isdn.h", "IIOCSETVER", _IOC_NONE, 0x490a, 0x00 }, -{ "linux/isdn.h", "IIOCSIGPRF", _IOC_NONE, 0x490e, 0x00 }, -{ "linux/isdn_ppp.h", "PPPIOCBUNDLE", _IOC_WRITE, 0x7481, 0x04 }, -{ "linux/isdn_ppp.h", "PPPIOCGCALLINFO", _IOC_READ|_IOC_WRITE, 0x7480, 0x88 }, -{ "linux/isdn_ppp.h", "PPPIOCGCOMPRESSORS", _IOC_READ, 0x7486, 0x40 }, -{ "linux/isdn_ppp.h", "PPPIOCGIFNAME", _IOC_READ, 0x7488, 0x10 }, -{ "linux/isdn_ppp.h", "PPPIOCGMPFLAGS", _IOC_READ, 0x7482, 0x04 }, -{ "linux/isdn_ppp.h", "PPPIOCSCOMPRESSOR", _IOC_WRITE, 0x7487, 0x04 }, -{ "linux/isdn_ppp.h", "PPPIOCSMPFLAGS", _IOC_WRITE, 0x7483, 0x04 }, -{ "linux/isdn_ppp.h", "PPPIOCSMPMRU", _IOC_WRITE, 0x7485, 0x04 }, -{ "linux/isdn_ppp.h", "PPPIOCSMPMTU", _IOC_WRITE, 0x7484, 0x04 }, +{ "linux/isst_if.h", "ISST_IF_GET_PHY_ID", _IOC_READ|_IOC_WRITE, 0xfe01, 0x08 }, +{ "linux/isst_if.h", "ISST_IF_GET_PLATFORM_INFO", _IOC_READ, 0xfe00, 0x08 }, +{ "linux/isst_if.h", "ISST_IF_IO_CMD", _IOC_WRITE, 0xfe02, 0x08 }, +{ "linux/isst_if.h", "ISST_IF_MBOX_COMMAND", _IOC_READ|_IOC_WRITE, 0xfe03, 0x08 }, +{ "linux/isst_if.h", "ISST_IF_MSR_COMMAND", _IOC_READ|_IOC_WRITE, 0xfe04, 0x08 }, { "linux/ivtv.h", "IVTV_IOC_DMA_FRAME", _IOC_WRITE, 0x56c0, 0x40 }, { "linux/ivtv.h", "IVTV_IOC_PASSTHROUGH_MODE", _IOC_WRITE, 0x56c1, 0x04 }, { "linux/ivtvfb.h", "IVTVFB_IOC_DMA_FRAME", _IOC_WRITE, 0x56c0, 0x18 }, @@ -1284,6 +1307,7 @@ { "linux/kcov.h", "KCOV_DISABLE", _IOC_NONE, 0x6365, 0x00 }, { "linux/kcov.h", "KCOV_ENABLE", _IOC_NONE, 0x6364, 0x00 }, { "linux/kcov.h", "KCOV_INIT_TRACE", _IOC_READ, 0x6301, 0x08 }, +{ "linux/kcov.h", "KCOV_REMOTE_ENABLE", _IOC_WRITE, 0x6366, 0x18 }, { "linux/kd.h", "GIO_CMAP", 0, 0x4B70, 0 }, { "linux/kd.h", "GIO_FONT", 0, 0x4B60, 0 }, { "linux/kd.h", "GIO_FONTX", 0, 0x4B6B, 0 }, @@ -1332,6 +1356,7 @@ { "linux/kd.h", "PIO_UNISCRNMAP", 0, 0x4B6A, 0 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_ACQUIRE_VM", _IOC_WRITE, 0x4b15, 0x08 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_ALLOC_MEMORY_OF_GPU", _IOC_READ|_IOC_WRITE, 0x4b16, 0x28 }, +{ "linux/kfd_ioctl.h", "AMDKFD_IOC_ALLOC_QUEUE_GWS", _IOC_READ|_IOC_WRITE, 0x4b1e, 0x10 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_CREATE_EVENT", _IOC_READ|_IOC_WRITE, 0x4b08, 0x20 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_CREATE_QUEUE", _IOC_READ|_IOC_WRITE, 0x4b02, 0x58 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_DBG_ADDRESS_WATCH", _IOC_WRITE, 0x4b0f, 0x10 }, @@ -1356,6 +1381,7 @@ { "linux/kfd_ioctl.h", "AMDKFD_IOC_SET_MEMORY_POLICY", _IOC_WRITE, 0x4b04, 0x20 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_SET_SCRATCH_BACKING_VA", _IOC_READ|_IOC_WRITE, 0x4b11, 0x10 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_SET_TRAP_HANDLER", _IOC_WRITE, 0x4b13, 0x18 }, +{ "linux/kfd_ioctl.h", "AMDKFD_IOC_SMI_EVENTS", _IOC_READ|_IOC_WRITE, 0x4b1f, 0x08 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_UNMAP_MEMORY_FROM_GPU", _IOC_READ|_IOC_WRITE, 0x4b19, 0x18 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_UPDATE_QUEUE", _IOC_WRITE, 0x4b07, 0x18 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_WAIT_EVENTS", _IOC_READ|_IOC_WRITE, 0x4b0c, 0x18 }, @@ -1389,6 +1415,7 @@ { "linux/lirc.h", "LIRC_SET_WIDEBAND_RECEIVER", _IOC_WRITE, 0x6923, 0x04 }, { "linux/loop.h", "LOOP_CHANGE_FD", 0, 0x4C06, 0 }, { "linux/loop.h", "LOOP_CLR_FD", 0, 0x4C01, 0 }, +{ "linux/loop.h", "LOOP_CONFIGURE", 0, 0x4C0A, 0 }, { "linux/loop.h", "LOOP_CTL_ADD", 0, 0x4C80, 0 }, { "linux/loop.h", "LOOP_CTL_GET_FREE", 0, 0x4C82, 0 }, { "linux/loop.h", "LOOP_CTL_REMOVE", 0, 0x4C81, 0 }, @@ -1490,8 +1517,10 @@ { "linux/nsfs.h", "NS_GET_OWNER_UID", _IOC_NONE, 0xb704, 0x00 }, { "linux/nsfs.h", "NS_GET_PARENT", _IOC_NONE, 0xb702, 0x00 }, { "linux/nsfs.h", "NS_GET_USERNS", _IOC_NONE, 0xb701, 0x00 }, +{ "linux/nvme_ioctl.h", "NVME_IOCTL_ADMIN64_CMD", _IOC_READ|_IOC_WRITE, 0x4e47, 0x50 }, { "linux/nvme_ioctl.h", "NVME_IOCTL_ADMIN_CMD", _IOC_READ|_IOC_WRITE, 0x4e41, 0x48 }, { "linux/nvme_ioctl.h", "NVME_IOCTL_ID", _IOC_NONE, 0x4e40, 0x00 }, +{ "linux/nvme_ioctl.h", "NVME_IOCTL_IO64_CMD", _IOC_READ|_IOC_WRITE, 0x4e48, 0x50 }, { "linux/nvme_ioctl.h", "NVME_IOCTL_IO_CMD", _IOC_READ|_IOC_WRITE, 0x4e43, 0x48 }, { "linux/nvme_ioctl.h", "NVME_IOCTL_RESCAN", _IOC_NONE, 0x4e46, 0x00 }, { "linux/nvme_ioctl.h", "NVME_IOCTL_RESET", _IOC_NONE, 0x4e44, 0x00 }, @@ -1531,6 +1560,7 @@ { "linux/omapfb.h", "OMAPFB_WAITFORGO", _IOC_NONE, 0x4f3c, 0x00 }, { "linux/omapfb.h", "OMAPFB_WAITFORVSYNC", _IOC_NONE, 0x4f39, 0x00 }, { "linux/pcitest.h", "PCITEST_BAR", _IOC_NONE, 0x5001, 0x00 }, +{ "linux/pcitest.h", "PCITEST_CLEAR_IRQ", _IOC_NONE, 0x5010, 0x00 }, { "linux/pcitest.h", "PCITEST_COPY", _IOC_WRITE, 0x5006, 0x08 }, { "linux/pcitest.h", "PCITEST_GET_IRQTYPE", _IOC_NONE, 0x5009, 0x00 }, { "linux/pcitest.h", "PCITEST_LEGACY_IRQ", _IOC_NONE, 0x5002, 0x00 }, @@ -1561,6 +1591,9 @@ { "linux/phantom.h", "PHN_SET_REG", _IOC_WRITE, 0x7001, 0x08 }, { "linux/phantom.h", "PHN_SET_REGS", _IOC_WRITE, 0x7003, 0x08 }, { "linux/pktcdvd.h", "PACKET_CTRL_CMD", _IOC_READ|_IOC_WRITE, 0x5801, 0x18 }, +{ "linux/platform_data/cros_ec_chardev.h", "CROS_EC_DEV_IOCEVENTMASK", _IOC_NONE, 0xec02, 0x00 }, +{ "linux/platform_data/cros_ec_chardev.h", "CROS_EC_DEV_IOCRDMEM", _IOC_READ|_IOC_WRITE, 0xec01, 0x108 }, +{ "linux/platform_data/cros_ec_chardev.h", "CROS_EC_DEV_IOCXCMD", _IOC_READ|_IOC_WRITE, 0xec00, 0x14 }, { "linux/platform_data/media/si4713.h", "SI4713_IOC_MEASURE_RNL", _IOC_READ|_IOC_WRITE, 0x56c0, 0x1c }, { "linux/pmu.h", "PMU_IOC_CAN_SLEEP", _IOC_READ, 0x4205, 0x08 }, { "linux/pmu.h", "PMU_IOC_GET_BACKLIGHT", _IOC_READ, 0x4201, 0x08 }, @@ -1602,6 +1635,8 @@ { "linux/ppp-ioctl.h", "PPPIOCGDEBUG", _IOC_READ, 0x7441, 0x04 }, { "linux/ppp-ioctl.h", "PPPIOCGFLAGS", _IOC_READ, 0x745a, 0x04 }, { "linux/ppp-ioctl.h", "PPPIOCGIDLE", _IOC_READ, 0x743f, 0x10 }, +{ "linux/ppp-ioctl.h", "PPPIOCGIDLE32", _IOC_READ, 0x743f, 0x08 }, +{ "linux/ppp-ioctl.h", "PPPIOCGIDLE64", _IOC_READ, 0x743f, 0x10 }, { "linux/ppp-ioctl.h", "PPPIOCGL2TPSTATS", _IOC_READ, 0x7436, 0x48 }, { "linux/ppp-ioctl.h", "PPPIOCGMRU", _IOC_READ, 0x7453, 0x04 }, { "linux/ppp-ioctl.h", "PPPIOCGNPMODE", _IOC_READ|_IOC_WRITE, 0x744c, 0x08 }, @@ -1635,14 +1670,23 @@ { "linux/pr.h", "IOC_PR_RESERVE", _IOC_WRITE, 0x70c9, 0x10 }, { "linux/psp-sev.h", "SEV_ISSUE_CMD", _IOC_READ|_IOC_WRITE, 0x5300, 0x10 }, { "linux/ptp_clock.h", "PTP_CLOCK_GETCAPS", _IOC_READ, 0x3d01, 0x50 }, +{ "linux/ptp_clock.h", "PTP_CLOCK_GETCAPS2", _IOC_READ, 0x3d0a, 0x50 }, { "linux/ptp_clock.h", "PTP_ENABLE_PPS", _IOC_WRITE, 0x3d04, 0x04 }, +{ "linux/ptp_clock.h", "PTP_ENABLE_PPS2", _IOC_WRITE, 0x3d0d, 0x04 }, { "linux/ptp_clock.h", "PTP_EXTTS_REQUEST", _IOC_WRITE, 0x3d02, 0x10 }, +{ "linux/ptp_clock.h", "PTP_EXTTS_REQUEST2", _IOC_WRITE, 0x3d0b, 0x10 }, { "linux/ptp_clock.h", "PTP_PEROUT_REQUEST", _IOC_WRITE, 0x3d03, 0x38 }, +{ "linux/ptp_clock.h", "PTP_PEROUT_REQUEST2", _IOC_WRITE, 0x3d0c, 0x38 }, { "linux/ptp_clock.h", "PTP_PIN_GETFUNC", _IOC_READ|_IOC_WRITE, 0x3d06, 0x60 }, +{ "linux/ptp_clock.h", "PTP_PIN_GETFUNC2", _IOC_READ|_IOC_WRITE, 0x3d0f, 0x60 }, { "linux/ptp_clock.h", "PTP_PIN_SETFUNC", _IOC_WRITE, 0x3d07, 0x60 }, +{ "linux/ptp_clock.h", "PTP_PIN_SETFUNC2", _IOC_WRITE, 0x3d10, 0x60 }, { "linux/ptp_clock.h", "PTP_SYS_OFFSET", _IOC_WRITE, 0x3d05, 0x340 }, +{ "linux/ptp_clock.h", "PTP_SYS_OFFSET2", _IOC_WRITE, 0x3d0e, 0x340 }, { "linux/ptp_clock.h", "PTP_SYS_OFFSET_EXTENDED", _IOC_READ|_IOC_WRITE, 0x3d09, 0x4c0 }, +{ "linux/ptp_clock.h", "PTP_SYS_OFFSET_EXTENDED2", _IOC_READ|_IOC_WRITE, 0x3d12, 0x4c0 }, { "linux/ptp_clock.h", "PTP_SYS_OFFSET_PRECISE", _IOC_READ|_IOC_WRITE, 0x3d08, 0x40 }, +{ "linux/ptp_clock.h", "PTP_SYS_OFFSET_PRECISE2", _IOC_READ|_IOC_WRITE, 0x3d11, 0x40 }, { "linux/radeonfb.h", "FBIO_RADEON_GET_MIRROR", _IOC_READ, 0x4003, 0x08 }, { "linux/radeonfb.h", "FBIO_RADEON_SET_MIRROR", _IOC_WRITE, 0x4004, 0x08 }, { "linux/raid/md_u.h", "ADD_NEW_DISK", _IOC_WRITE, 0x0921, 0x14 }, @@ -1677,6 +1721,8 @@ { "linux/raw.h", "RAW_GETBIND", _IOC_NONE, 0xac01, 0x00 }, { "linux/raw.h", "RAW_SETBIND", _IOC_NONE, 0xac00, 0x00 }, { "linux/reiserfs_fs.h", "REISERFS_IOC_UNPACK", _IOC_WRITE, 0xcd01, 0x08 }, +{ "linux/remoteproc_cdev.h", "RPROC_GET_SHUTDOWN_ON_RELEASE", _IOC_READ, 0xb702, 0x04 }, +{ "linux/remoteproc_cdev.h", "RPROC_SET_SHUTDOWN_ON_RELEASE", _IOC_WRITE, 0xb701, 0x04 }, { "linux/rfkill.h", "RFKILL_IOCTL_NOINPUT", _IOC_NONE, 0x5201, 0x00 }, { "linux/rio_cm_cdev.h", "RIO_CM_CHAN_ACCEPT", _IOC_READ|_IOC_WRITE, 0x6307, 0x08 }, { "linux/rio_cm_cdev.h", "RIO_CM_CHAN_BIND", _IOC_WRITE, 0x6305, 0x08 }, @@ -1754,7 +1800,8 @@ { "linux/scif_ioctl.h", "SCIF_VREADFROM", _IOC_READ|_IOC_WRITE, 0x730c, 0x28 }, { "linux/scif_ioctl.h", "SCIF_VWRITETO", _IOC_READ|_IOC_WRITE, 0x730d, 0x28 }, { "linux/scif_ioctl.h", "SCIF_WRITETO", _IOC_READ|_IOC_WRITE, 0x730b, 0x28 }, -{ "linux/seccomp.h", "SECCOMP_IOCTL_NOTIF_ID_VALID", _IOC_READ, 0x2102, 0x08 }, +{ "linux/seccomp.h", "SECCOMP_IOCTL_NOTIF_ADDFD", _IOC_WRITE, 0x2103, 0x18 }, +{ "linux/seccomp.h", "SECCOMP_IOCTL_NOTIF_ID_VALID", _IOC_WRITE, 0x2102, 0x08 }, { "linux/seccomp.h", "SECCOMP_IOCTL_NOTIF_RECV", _IOC_READ|_IOC_WRITE, 0x2100, 0x50 }, { "linux/seccomp.h", "SECCOMP_IOCTL_NOTIF_SEND", _IOC_READ|_IOC_WRITE, 0x2101, 0x18 }, { "linux/sed-opal.h", "IOC_OPAL_ACTIVATE_LSP", _IOC_WRITE, 0x70df, 0x118 }, @@ -1762,13 +1809,17 @@ { "linux/sed-opal.h", "IOC_OPAL_ADD_USR_TO_LR", _IOC_WRITE, 0x70e4, 0x118 }, { "linux/sed-opal.h", "IOC_OPAL_ENABLE_DISABLE_MBR", _IOC_WRITE, 0x70e5, 0x110 }, { "linux/sed-opal.h", "IOC_OPAL_ERASE_LR", _IOC_WRITE, 0x70e6, 0x110 }, +{ "linux/sed-opal.h", "IOC_OPAL_GENERIC_TABLE_RW", _IOC_WRITE, 0x70eb, 0x138 }, { "linux/sed-opal.h", "IOC_OPAL_LOCK_UNLOCK", _IOC_WRITE, 0x70dd, 0x118 }, { "linux/sed-opal.h", "IOC_OPAL_LR_SETUP", _IOC_WRITE, 0x70e3, 0x128 }, +{ "linux/sed-opal.h", "IOC_OPAL_MBR_DONE", _IOC_WRITE, 0x70e9, 0x110 }, +{ "linux/sed-opal.h", "IOC_OPAL_PSID_REVERT_TPR", _IOC_WRITE, 0x70e8, 0x108 }, { "linux/sed-opal.h", "IOC_OPAL_REVERT_TPR", _IOC_WRITE, 0x70e2, 0x108 }, { "linux/sed-opal.h", "IOC_OPAL_SAVE", _IOC_WRITE, 0x70dc, 0x118 }, { "linux/sed-opal.h", "IOC_OPAL_SECURE_ERASE_LR", _IOC_WRITE, 0x70e7, 0x110 }, { "linux/sed-opal.h", "IOC_OPAL_SET_PW", _IOC_WRITE, 0x70e0, 0x220 }, { "linux/sed-opal.h", "IOC_OPAL_TAKE_OWNERSHIP", _IOC_WRITE, 0x70de, 0x108 }, +{ "linux/sed-opal.h", "IOC_OPAL_WRITE_SHADOW_MBR", _IOC_WRITE, 0x70ea, 0x120 }, { "linux/serio.h", "SPIOCSTYPE", _IOC_WRITE, 0x7101, 0x08 }, { "linux/sockios.h", "SIOCADDDLCI", 0, 0x8980, 0 }, { "linux/sockios.h", "SIOCADDMULTI", 0, 0x8931, 0 }, @@ -1817,6 +1868,8 @@ { "linux/sockios.h", "SIOCGMIIREG", 0, 0x8948, 0 }, { "linux/sockios.h", "SIOCGRARP", 0, 0x8961, 0 }, { "linux/sockios.h", "SIOCGSKNS", 0, 0x894C, 0 }, +{ "linux/sockios.h", "SIOCGSTAMPNS_NEW", _IOC_READ, 0x8907, 0x10 }, +{ "linux/sockios.h", "SIOCGSTAMP_NEW", _IOC_READ, 0x8906, 0x10 }, { "linux/sockios.h", "SIOCOUTQNSD", 0, 0x894B, 0 }, { "linux/sockios.h", "SIOCPROTOPRIVATE", 0, 0x89E0, 0 }, { "linux/sockios.h", "SIOCRTMSG", 0, 0x890D, 0 }, @@ -1982,7 +2035,8 @@ { "linux/suspend_ioctls.h", "SNAPSHOT_SET_SWAP_AREA", _IOC_WRITE, 0x330d, 0x0c }, { "linux/suspend_ioctls.h", "SNAPSHOT_UNFREEZE", _IOC_NONE, 0x3302, 0x00 }, { "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_CTL", _IOC_READ|_IOC_WRITE, 0x5743, 0x28 }, -{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_SUMMARY", _IOC_READ, 0x5742, 0x198 }, +{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_SUMMARY", _IOC_READ, 0x5742, 0x4d8 }, +{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_SUMMARY_LEGACY", _IOC_READ, 0x5742, 0x198 }, { "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_FLASH_INFO", _IOC_READ, 0x5740, 0x10 }, { "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_FLASH_PART_INFO", _IOC_READ|_IOC_WRITE, 0x5741, 0x10 }, { "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_PFF_TO_PORT", _IOC_READ|_IOC_WRITE, 0x5744, 0x0c }, @@ -2063,6 +2117,22 @@ { "linux/usb/iowarrior.h", "IOW_GETINFO", _IOC_READ, 0xc003, 0x28 }, { "linux/usb/iowarrior.h", "IOW_READ", _IOC_WRITE, 0xc002, 0x08 }, { "linux/usb/iowarrior.h", "IOW_WRITE", _IOC_WRITE, 0xc001, 0x08 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_CONFIGURE", _IOC_NONE, 0x5509, 0x00 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP0_READ", _IOC_READ|_IOC_WRITE, 0x5504, 0x08 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP0_STALL", _IOC_NONE, 0x550c, 0x00 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP0_WRITE", _IOC_WRITE, 0x5503, 0x08 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EPS_INFO", _IOC_READ, 0x550b, 0x3c0 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_CLEAR_HALT", _IOC_WRITE, 0x550e, 0x04 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_DISABLE", _IOC_WRITE, 0x5506, 0x04 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_ENABLE", _IOC_WRITE, 0x5505, 0x09 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_READ", _IOC_READ|_IOC_WRITE, 0x5508, 0x08 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_SET_HALT", _IOC_WRITE, 0x550d, 0x04 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_SET_WEDGE", _IOC_WRITE, 0x550f, 0x04 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_WRITE", _IOC_WRITE, 0x5507, 0x08 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EVENT_FETCH", _IOC_READ, 0x5502, 0x08 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_INIT", _IOC_WRITE, 0x5500, 0x101 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_RUN", _IOC_NONE, 0x5501, 0x00 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_VBUS_DRAW", _IOC_WRITE, 0x550a, 0x04 }, { "linux/usb/tmc.h", "USBTMC488_IOCTL_GET_CAPS", _IOC_READ, 0x5b11, 0x01 }, { "linux/usb/tmc.h", "USBTMC488_IOCTL_GOTO_LOCAL", _IOC_NONE, 0x5b14, 0x00 }, { "linux/usb/tmc.h", "USBTMC488_IOCTL_LOCAL_LOCKOUT", _IOC_NONE, 0x5b15, 0x00 }, @@ -2090,6 +2160,7 @@ { "linux/usb/tmc.h", "USBTMC_IOCTL_WRITE", _IOC_READ|_IOC_WRITE, 0x5b0d, 0x14 }, { "linux/usb/tmc.h", "USBTMC_IOCTL_WRITE_RESULT", _IOC_READ|_IOC_WRITE, 0x5b0f, 0x04 }, { "linux/usbdevice_fs.h", "USBDEVFS_ALLOC_STREAMS", _IOC_READ, 0x551c, 0x08 }, +{ "linux/usbdevice_fs.h", "USBDEVFS_ALLOW_SUSPEND", _IOC_NONE, 0x5522, 0x00 }, { "linux/usbdevice_fs.h", "USBDEVFS_BULK", _IOC_READ|_IOC_WRITE, 0x5502, 0x18 }, { "linux/usbdevice_fs.h", "USBDEVFS_BULK32", _IOC_READ|_IOC_WRITE, 0x5502, 0x10 }, { "linux/usbdevice_fs.h", "USBDEVFS_CLAIMINTERFACE", _IOC_READ, 0x550f, 0x04 }, @@ -2105,6 +2176,7 @@ { "linux/usbdevice_fs.h", "USBDEVFS_DISCSIGNAL", _IOC_READ, 0x550e, 0x10 }, { "linux/usbdevice_fs.h", "USBDEVFS_DISCSIGNAL32", _IOC_READ, 0x550e, 0x08 }, { "linux/usbdevice_fs.h", "USBDEVFS_DROP_PRIVILEGES", _IOC_WRITE, 0x551e, 0x04 }, +{ "linux/usbdevice_fs.h", "USBDEVFS_FORBID_SUSPEND", _IOC_NONE, 0x5521, 0x00 }, { "linux/usbdevice_fs.h", "USBDEVFS_FREE_STREAMS", _IOC_READ, 0x551d, 0x08 }, { "linux/usbdevice_fs.h", "USBDEVFS_GETDRIVER", _IOC_WRITE, 0x5508, 0x104 }, { "linux/usbdevice_fs.h", "USBDEVFS_GET_CAPABILITIES", _IOC_READ, 0x551a, 0x04 }, @@ -2124,11 +2196,13 @@ { "linux/usbdevice_fs.h", "USBDEVFS_SETINTERFACE", _IOC_READ, 0x5504, 0x08 }, { "linux/usbdevice_fs.h", "USBDEVFS_SUBMITURB", _IOC_READ, 0x550a, 0x38 }, { "linux/usbdevice_fs.h", "USBDEVFS_SUBMITURB32", _IOC_READ, 0x550a, 0x2a }, +{ "linux/usbdevice_fs.h", "USBDEVFS_WAIT_FOR_RESUME", _IOC_NONE, 0x5523, 0x00 }, { "linux/userfaultfd.h", "UFFDIO_API", _IOC_READ|_IOC_WRITE, 0xaa3f, 0x18 }, { "linux/userfaultfd.h", "UFFDIO_COPY", _IOC_READ|_IOC_WRITE, 0xaa03, 0x28 }, { "linux/userfaultfd.h", "UFFDIO_REGISTER", _IOC_READ|_IOC_WRITE, 0xaa00, 0x20 }, { "linux/userfaultfd.h", "UFFDIO_UNREGISTER", _IOC_READ, 0xaa01, 0x10 }, { "linux/userfaultfd.h", "UFFDIO_WAKE", _IOC_READ, 0xaa02, 0x10 }, +{ "linux/userfaultfd.h", "UFFDIO_WRITEPROTECT", _IOC_READ|_IOC_WRITE, 0xaa06, 0x18 }, { "linux/userfaultfd.h", "UFFDIO_ZEROPAGE", _IOC_READ|_IOC_WRITE, 0xaa04, 0x20 }, { "linux/uvcvideo.h", "UVCIOC_CTRL_MAP", _IOC_READ|_IOC_WRITE, 0x7520, 0x60 }, { "linux/uvcvideo.h", "UVCIOC_CTRL_QUERY", _IOC_READ|_IOC_WRITE, 0x7521, 0x10 }, @@ -2139,10 +2213,12 @@ { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_G_FMT", _IOC_READ|_IOC_WRITE, 0x5604, 0x58 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_G_FRAME_INTERVAL", _IOC_READ|_IOC_WRITE, 0x5615, 0x30 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_G_SELECTION", _IOC_READ|_IOC_WRITE, 0x563d, 0x40 }, +{ "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_QUERYCAP", _IOC_READ, 0x5600, 0x40 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_S_CROP", _IOC_READ|_IOC_WRITE, 0x563c, 0x38 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_S_FMT", _IOC_READ|_IOC_WRITE, 0x5605, 0x58 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_S_FRAME_INTERVAL", _IOC_READ|_IOC_WRITE, 0x5616, 0x30 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_S_SELECTION", _IOC_READ|_IOC_WRITE, 0x563e, 0x40 }, +{ "linux/vboxguest.h", "VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES", _IOC_READ|_IOC_WRITE, 0x560d, 0x24 }, { "linux/vboxguest.h", "VBG_IOCTL_CHANGE_FILTER_MASK", _IOC_READ|_IOC_WRITE, 0x560c, 0x20 }, { "linux/vboxguest.h", "VBG_IOCTL_CHANGE_GUEST_CAPABILITIES", _IOC_READ|_IOC_WRITE, 0x560e, 0x20 }, { "linux/vboxguest.h", "VBG_IOCTL_CHECK_BALLOON", _IOC_READ|_IOC_WRITE, 0x5611, 0x20 }, @@ -2150,10 +2226,11 @@ { "linux/vboxguest.h", "VBG_IOCTL_HGCM_CONNECT", _IOC_READ|_IOC_WRITE, 0x5604, 0x9c }, { "linux/vboxguest.h", "VBG_IOCTL_HGCM_DISCONNECT", _IOC_READ|_IOC_WRITE, 0x5605, 0x1c }, { "linux/vboxguest.h", "VBG_IOCTL_INTERRUPT_ALL_WAIT_FOR_EVENTS", _IOC_READ|_IOC_WRITE, 0x560b, 0x18 }, -{ "linux/vboxguest.h", "VBG_IOCTL_VMMDEV_REQUEST_BIG", _IOC_READ|_IOC_WRITE, 0x5603, 0x00 }, +{ "linux/vboxguest.h", "VBG_IOCTL_VMMDEV_REQUEST_BIG", _IOC_NONE, 0x5603, 0x00 }, { "linux/vboxguest.h", "VBG_IOCTL_WAIT_FOR_EVENTS", _IOC_READ|_IOC_WRITE, 0x560a, 0x20 }, { "linux/vboxguest.h", "VBG_IOCTL_WRITE_CORE_DUMP", _IOC_READ|_IOC_WRITE, 0x5613, 0x1c }, { "linux/vfio.h", "VFIO_CHECK_EXTENSION", _IOC_NONE, 0x3b65, 0x00 }, +{ "linux/vfio.h", "VFIO_DEVICE_FEATURE", _IOC_NONE, 0x3b75, 0x00 }, { "linux/vfio.h", "VFIO_DEVICE_GET_GFX_DMABUF", _IOC_NONE, 0x3b73, 0x00 }, { "linux/vfio.h", "VFIO_DEVICE_GET_INFO", _IOC_NONE, 0x3b6b, 0x00 }, { "linux/vfio.h", "VFIO_DEVICE_GET_IRQ_INFO", _IOC_NONE, 0x3b6d, 0x00 }, @@ -2170,6 +2247,7 @@ { "linux/vfio.h", "VFIO_GROUP_GET_STATUS", _IOC_NONE, 0x3b67, 0x00 }, { "linux/vfio.h", "VFIO_GROUP_SET_CONTAINER", _IOC_NONE, 0x3b68, 0x00 }, { "linux/vfio.h", "VFIO_GROUP_UNSET_CONTAINER", _IOC_NONE, 0x3b69, 0x00 }, +{ "linux/vfio.h", "VFIO_IOMMU_DIRTY_PAGES", _IOC_NONE, 0x3b75, 0x00 }, { "linux/vfio.h", "VFIO_IOMMU_DISABLE", _IOC_NONE, 0x3b74, 0x00 }, { "linux/vfio.h", "VFIO_IOMMU_ENABLE", _IOC_NONE, 0x3b73, 0x00 }, { "linux/vfio.h", "VFIO_IOMMU_GET_INFO", _IOC_NONE, 0x3b70, 0x00 }, @@ -2207,6 +2285,14 @@ { "linux/vhost.h", "VHOST_SET_VRING_ERR", _IOC_WRITE, 0xaf22, 0x08 }, { "linux/vhost.h", "VHOST_SET_VRING_KICK", _IOC_WRITE, 0xaf20, 0x08 }, { "linux/vhost.h", "VHOST_SET_VRING_NUM", _IOC_WRITE, 0xaf10, 0x08 }, +{ "linux/vhost.h", "VHOST_VDPA_GET_CONFIG", _IOC_READ, 0xaf73, 0x08 }, +{ "linux/vhost.h", "VHOST_VDPA_GET_DEVICE_ID", _IOC_READ, 0xaf70, 0x04 }, +{ "linux/vhost.h", "VHOST_VDPA_GET_STATUS", _IOC_READ, 0xaf71, 0x01 }, +{ "linux/vhost.h", "VHOST_VDPA_GET_VRING_NUM", _IOC_READ, 0xaf76, 0x02 }, +{ "linux/vhost.h", "VHOST_VDPA_SET_CONFIG", _IOC_WRITE, 0xaf74, 0x08 }, +{ "linux/vhost.h", "VHOST_VDPA_SET_CONFIG_CALL", _IOC_WRITE, 0xaf77, 0x04 }, +{ "linux/vhost.h", "VHOST_VDPA_SET_STATUS", _IOC_WRITE, 0xaf72, 0x01 }, +{ "linux/vhost.h", "VHOST_VDPA_SET_VRING_ENABLE", _IOC_WRITE, 0xaf75, 0x08 }, { "linux/vhost.h", "VHOST_VSOCK_SET_GUEST_CID", _IOC_WRITE, 0xaf60, 0x08 }, { "linux/vhost.h", "VHOST_VSOCK_SET_RUNNING", _IOC_WRITE, 0xaf61, 0x04 }, { "linux/videodev2.h", "VIDIOC_CREATE_BUFS", _IOC_READ|_IOC_WRITE, 0x565c, 0x100 }, @@ -2329,6 +2415,8 @@ { "linux/vt.h", "VT_WAITACTIVE", 0, 0x5607, 0 }, { "linux/vt.h", "VT_WAITEVENT", 0, 0x560E, 0 }, { "linux/vtpm_proxy.h", "VTPM_PROXY_IOC_NEW_DEV", _IOC_READ|_IOC_WRITE, 0xa100, 0x14 }, +{ "linux/watch_queue.h", "IOC_WATCH_QUEUE_SET_FILTER", _IOC_NONE, 0x5761, 0x00 }, +{ "linux/watch_queue.h", "IOC_WATCH_QUEUE_SET_SIZE", _IOC_NONE, 0x5760, 0x00 }, { "linux/watchdog.h", "WDIOC_GETBOOTSTATUS", _IOC_READ, 0x5702, 0x04 }, { "linux/watchdog.h", "WDIOC_GETPRETIMEOUT", _IOC_READ, 0x5709, 0x04 }, { "linux/watchdog.h", "WDIOC_GETSTATUS", _IOC_READ, 0x5701, 0x04 }, @@ -2404,6 +2492,11 @@ { "media/i2c/saa6588.h", "SAA6588_CMD_READ", _IOC_READ, 0x5203, 0x04 }, { "media/v4l2-common.h", "TUNER_SET_CONFIG", _IOC_WRITE, 0x645c, 0x10 }, { "media/v4l2-common.h", "VIDIOC_INT_RESET", _IOC_WRITE, 0x6466, 0x04 }, +{ "media/v4l2-ioctl.h", "VIDIOC_DQBUF_TIME32", _IOC_READ|_IOC_WRITE, 0x5611, 0x50 }, +{ "media/v4l2-ioctl.h", "VIDIOC_DQEVENT_TIME32", _IOC_READ, 0x5659, 0x80 }, +{ "media/v4l2-ioctl.h", "VIDIOC_PREPARE_BUF_TIME32", _IOC_READ|_IOC_WRITE, 0x565d, 0x50 }, +{ "media/v4l2-ioctl.h", "VIDIOC_QBUF_TIME32", _IOC_READ|_IOC_WRITE, 0x560f, 0x50 }, +{ "media/v4l2-ioctl.h", "VIDIOC_QUERYBUF_TIME32", _IOC_READ|_IOC_WRITE, 0x5609, 0x50 }, { "media/v4l2-subdev.h", "V4L2_DEVICE_NOTIFY_EVENT", _IOC_WRITE, 0x7602, 0x88 }, { "media/v4l2-subdev.h", "V4L2_SUBDEV_IR_RX_NOTIFY", _IOC_WRITE, 0x7600, 0x04 }, { "media/v4l2-subdev.h", "V4L2_SUBDEV_IR_TX_NOTIFY", _IOC_WRITE, 0x7601, 0x04 }, @@ -2417,8 +2510,11 @@ { "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_ATTACH", _IOC_NONE, 0x5204, 0x00 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_CREATE", _IOC_READ|_IOC_WRITE, 0x5205, 0x18 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_INVOKE", _IOC_READ|_IOC_WRITE, 0x5203, 0x10 }, +{ "misc/fastrpc.h", "FASTRPC_IOCTL_MMAP", _IOC_READ|_IOC_WRITE, 0x5206, 0x20 }, +{ "misc/fastrpc.h", "FASTRPC_IOCTL_MUNMAP", _IOC_READ|_IOC_WRITE, 0x5207, 0x10 }, { "misc/habanalabs.h", "HL_IOCTL_CB", _IOC_READ|_IOC_WRITE, 0x4802, 0x18 }, { "misc/habanalabs.h", "HL_IOCTL_CS", _IOC_READ|_IOC_WRITE, 0x4803, 0x30 }, +{ "misc/habanalabs.h", "HL_IOCTL_DEBUG", _IOC_READ|_IOC_WRITE, 0x4806, 0x28 }, { "misc/habanalabs.h", "HL_IOCTL_INFO", _IOC_READ|_IOC_WRITE, 0x4801, 0x18 }, { "misc/habanalabs.h", "HL_IOCTL_MEMORY", _IOC_READ|_IOC_WRITE, 0x4805, 0x28 }, { "misc/habanalabs.h", "HL_IOCTL_WAIT_CS", _IOC_READ|_IOC_WRITE, 0x4804, 0x18 }, @@ -2429,6 +2525,23 @@ { "misc/ocxl.h", "OCXL_IOCTL_IRQ_ALLOC", _IOC_READ, 0xca11, 0x08 }, { "misc/ocxl.h", "OCXL_IOCTL_IRQ_FREE", _IOC_WRITE, 0xca12, 0x08 }, { "misc/ocxl.h", "OCXL_IOCTL_IRQ_SET_FD", _IOC_WRITE, 0xca13, 0x10 }, +{ "misc/uacce/hisi_qm.h", "UACCE_CMD_QM_SET_QP_CTX", _IOC_READ|_IOC_WRITE, 0x480a, 0x04 }, +{ "misc/uacce/uacce.h", "UACCE_CMD_PUT_Q", _IOC_NONE, 0x5701, 0x00 }, +{ "misc/uacce/uacce.h", "UACCE_CMD_START_Q", _IOC_NONE, 0x5700, 0x00 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_ADD_LDPC_CODE_PARAMS", _IOC_WRITE, 0x6605, 0x60 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_CLEAR_STATS", _IOC_NONE, 0x660b, 0x00 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_GET_CONFIG", _IOC_READ, 0x6606, 0x1c }, +{ "misc/xilinx_sdfec.h", "XSDFEC_GET_STATS", _IOC_READ, 0x660c, 0x0c }, +{ "misc/xilinx_sdfec.h", "XSDFEC_GET_STATUS", _IOC_READ, 0x6602, 0x08 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_GET_TURBO", _IOC_READ, 0x6607, 0x08 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_IS_ACTIVE", _IOC_READ, 0x660a, 0x01 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_SET_BYPASS", _IOC_WRITE, 0x6609, 0x01 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_SET_DEFAULT_CONFIG", _IOC_NONE, 0x660d, 0x00 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_SET_IRQ", _IOC_WRITE, 0x6603, 0x02 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_SET_ORDER", _IOC_WRITE, 0x6608, 0x08 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_SET_TURBO", _IOC_WRITE, 0x6604, 0x08 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_START_DEV", _IOC_NONE, 0x6600, 0x00 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_STOP_DEV", _IOC_NONE, 0x6601, 0x00 }, { "mtd/mtd-abi.h", "ECCGETLAYOUT", _IOC_READ, 0x4d11, 0x148 }, { "mtd/mtd-abi.h", "ECCGETSTATS", _IOC_READ, 0x4d12, 0x10 }, { "mtd/mtd-abi.h", "MEMERASE", _IOC_WRITE, 0x4d02, 0x08 }, @@ -2667,7 +2780,8 @@ { "sound/asound.h", "SNDRV_TIMER_IOCTL_START", _IOC_NONE, 0x54a0, 0x00 }, { "sound/asound.h", "SNDRV_TIMER_IOCTL_STATUS", _IOC_READ, 0x5414, 0x60 }, { "sound/asound.h", "SNDRV_TIMER_IOCTL_STOP", _IOC_NONE, 0x54a1, 0x00 }, -{ "sound/asound.h", "SNDRV_TIMER_IOCTL_TREAD", _IOC_WRITE, 0x5402, 0x04 }, +{ "sound/asound.h", "SNDRV_TIMER_IOCTL_TREAD64", _IOC_WRITE, 0x54a4, 0x04 }, +{ "sound/asound.h", "SNDRV_TIMER_IOCTL_TREAD_OLD", _IOC_WRITE, 0x5402, 0x04 }, { "sound/asound_fm.h", "SNDRV_DM_FM_IOCTL_CLEAR_PATCHES", _IOC_NONE, 0x4840, 0x00 }, { "sound/asound_fm.h", "SNDRV_DM_FM_IOCTL_INFO", _IOC_READ, 0x4820, 0x02 }, { "sound/asound_fm.h", "SNDRV_DM_FM_IOCTL_PLAY_NOTE", _IOC_WRITE, 0x4822, 0x0c }, @@ -2725,6 +2839,10 @@ { "sound/hdspm.h", "SNDRV_HDSPM_IOCTL_GET_PEAK_RMS", _IOC_READ, 0x4842, 0x908 }, { "sound/hdspm.h", "SNDRV_HDSPM_IOCTL_GET_STATUS", _IOC_READ, 0x4847, 0x20 }, { "sound/hdspm.h", "SNDRV_HDSPM_IOCTL_GET_VERSION", _IOC_READ, 0x4848, 0x24 }, +{ "sound/pcm.h", "SNDRV_PCM_IOCTL_STATUS32", _IOC_READ, 0x4120, 0x6c }, +{ "sound/pcm.h", "SNDRV_PCM_IOCTL_STATUS64", _IOC_READ, 0x4120, 0x98 }, +{ "sound/pcm.h", "SNDRV_PCM_IOCTL_STATUS_EXT32", _IOC_READ|_IOC_WRITE, 0x4124, 0x6c }, +{ "sound/pcm.h", "SNDRV_PCM_IOCTL_STATUS_EXT64", _IOC_READ|_IOC_WRITE, 0x4124, 0x98 }, { "sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_INFO", _IOC_READ, 0x4810, 0x28 }, { "sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_LOAD_CODE", _IOC_WRITE, 0x4811, 0x3012 }, { "sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_PAUSE", _IOC_NONE, 0x4815, 0x00 }, @@ -2751,15 +2869,6 @@ { "staging/android/ashmem.h", "ASHMEM_UNPIN", _IOC_WRITE, 0x7708, 0x08 }, { "staging/android/ion.h", "ION_IOC_ALLOC", _IOC_READ|_IOC_WRITE, 0x4900, 0x18 }, { "staging/android/ion.h", "ION_IOC_HEAP_QUERY", _IOC_READ|_IOC_WRITE, 0x4908, 0x18 }, -{ "staging/android/vsoc_shm.h", "VSOC_COND_WAIT", _IOC_READ|_IOC_WRITE, 0xf507, 0x20 }, -{ "staging/android/vsoc_shm.h", "VSOC_COND_WAKE", _IOC_NONE, 0xf508, 0x00 }, -{ "staging/android/vsoc_shm.h", "VSOC_CREATE_FD_SCOPED_PERMISSION", _IOC_WRITE, 0xf500, 0x10 }, -{ "staging/android/vsoc_shm.h", "VSOC_DESCRIBE_REGION", _IOC_READ, 0xf504, 0x3c }, -{ "staging/android/vsoc_shm.h", "VSOC_GET_FD_SCOPED_PERMISSION", _IOC_READ, 0xf501, 0x10 }, -{ "staging/android/vsoc_shm.h", "VSOC_MAYBE_SEND_INTERRUPT_TO_HOST", _IOC_NONE, 0xf502, 0x00 }, -{ "staging/android/vsoc_shm.h", "VSOC_SELF_INTERRUPT", _IOC_NONE, 0xf505, 0x00 }, -{ "staging/android/vsoc_shm.h", "VSOC_SEND_INTERRUPT_TO_HOST", _IOC_NONE, 0xf506, 0x00 }, -{ "staging/android/vsoc_shm.h", "VSOC_WAIT_FOR_INCOMING_INTERRUPT", _IOC_NONE, 0xf503, 0x00 }, { "video/da8xx-fb.h", "FBIGET_BRIGHTNESS", _IOC_READ, 0x4603, 0x04 }, { "video/da8xx-fb.h", "FBIGET_COLOR", _IOC_READ, 0x4605, 0x04 }, { "video/da8xx-fb.h", "FBIOGET_CONTRAST", _IOC_READ, 0x4601, 0x04 }, diff --git a/linux/64/syscallent.h b/linux/64/syscallent.h index 294da690..120e4d78 100644 --- a/linux/64/syscallent.h +++ b/linux/64/syscallent.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2019 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -95,14 +95,14 @@ [ 87] = { 2, TD, SEN(timerfd_gettime64), "timerfd_gettime" }, [ 88] = { 4, TD|TF, SEN(utimensat_time64), "utimensat" }, [ 89] = { 1, TF, SEN(acct), "acct" }, -[ 90] = { 2, 0, SEN(capget), "capget" }, -[ 91] = { 2, 0, SEN(capset), "capset" }, +[ 90] = { 2, TC, SEN(capget), "capget" }, +[ 91] = { 2, TC, SEN(capset), "capset" }, [ 92] = { 1, NF, SEN(personality), "personality" }, [ 93] = { 1, TP|SE, SEN(exit), "exit" }, [ 94] = { 1, TP|SE, SEN(exit), "exit_group" }, [ 95] = { 5, TP, SEN(waitid), "waitid" }, [ 96] = { 1, 0, SEN(set_tid_address), "set_tid_address" }, -[ 97] = { 1, TP, SEN(unshare), "unshare" }, +[ 97] = { 1, 0, SEN(unshare), "unshare" }, [ 98] = { 6, 0, SEN(futex_time64), "futex" }, [ 99] = { 2, 0, SEN(set_robust_list), "set_robust_list" }, [100] = { 3, 0, SEN(get_robust_list), "get_robust_list" }, @@ -117,9 +117,9 @@ [109] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" }, [110] = { 4, 0, SEN(timer_settime64), "timer_settime" }, [111] = { 1, 0, SEN(timer_delete), "timer_delete" }, -[112] = { 2, 0, SEN(clock_settime64), "clock_settime" }, -[113] = { 2, 0, SEN(clock_gettime64), "clock_gettime" }, -[114] = { 2, 0, SEN(clock_getres_time64), "clock_getres" }, +[112] = { 2, TCL, SEN(clock_settime64), "clock_settime" }, +[113] = { 2, TCL, SEN(clock_gettime64), "clock_gettime" }, +[114] = { 2, TCL, SEN(clock_getres_time64), "clock_getres" }, [115] = { 4, 0, SEN(clock_nanosleep_time64), "clock_nanosleep" }, [116] = { 3, 0, SEN(syslog), "syslog" }, [117] = { 4, 0, SEN(ptrace), "ptrace" }, @@ -134,37 +134,37 @@ [126] = { 1, 0, SEN(sched_get_priority_min), "sched_get_priority_min"}, [127] = { 2, 0, SEN(sched_rr_get_interval_time64),"sched_rr_get_interval"}, [128] = { 0, 0, SEN(restart_syscall), "restart_syscall" }, -[129] = { 2, TS, SEN(kill), "kill" }, -[130] = { 2, TS, SEN(kill), "tkill" }, -[131] = { 3, TS, SEN(tgkill), "tgkill" }, +[129] = { 2, TS|TP, SEN(kill), "kill" }, +[130] = { 2, TS|TP, SEN(tkill), "tkill" }, +[131] = { 3, TS|TP, SEN(tgkill), "tgkill" }, [132] = { 2, TS, SEN(sigaltstack), "sigaltstack" }, [133] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" }, [134] = { 4, TS, SEN(rt_sigaction), "rt_sigaction" }, [135] = { 4, TS, SEN(rt_sigprocmask), "rt_sigprocmask" }, [136] = { 2, TS, SEN(rt_sigpending), "rt_sigpending" }, [137] = { 4, TS, SEN(rt_sigtimedwait_time64), "rt_sigtimedwait" }, -[138] = { 3, TS, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, +[138] = { 3, TS|TP, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, [139] = { 0, TS, SEN(rt_sigreturn), "rt_sigreturn" }, [140] = { 3, 0, SEN(setpriority), "setpriority" }, [141] = { 2, 0, SEN(getpriority), "getpriority" }, [142] = { 4, 0, SEN(reboot), "reboot" }, -[143] = { 2, 0, SEN(setregid), "setregid" }, -[144] = { 1, 0, SEN(setgid), "setgid" }, -[145] = { 2, 0, SEN(setreuid), "setreuid" }, -[146] = { 1, 0, SEN(setuid), "setuid" }, -[147] = { 3, 0, SEN(setresuid), "setresuid" }, -[148] = { 3, 0, SEN(getresuid), "getresuid" }, -[149] = { 3, 0, SEN(setresgid), "setresgid" }, -[150] = { 3, 0, SEN(getresgid), "getresgid" }, -[151] = { 1, NF, SEN(setfsuid), "setfsuid" }, -[152] = { 1, NF, SEN(setfsgid), "setfsgid" }, +[143] = { 2, TC, SEN(setregid), "setregid" }, +[144] = { 1, TC, SEN(setgid), "setgid" }, +[145] = { 2, TC, SEN(setreuid), "setreuid" }, +[146] = { 1, TC, SEN(setuid), "setuid" }, +[147] = { 3, TC, SEN(setresuid), "setresuid" }, +[148] = { 3, TC, SEN(getresuid), "getresuid" }, +[149] = { 3, TC, SEN(setresgid), "setresgid" }, +[150] = { 3, TC, SEN(getresgid), "getresgid" }, +[151] = { 1, TC|NF, SEN(setfsuid), "setfsuid" }, +[152] = { 1, TC|NF, SEN(setfsgid), "setfsgid" }, [153] = { 1, 0, SEN(times), "times" }, [154] = { 2, 0, SEN(setpgid), "setpgid" }, [155] = { 1, 0, SEN(getpgid), "getpgid" }, [156] = { 1, 0, SEN(getsid), "getsid" }, [157] = { 0, 0, SEN(setsid), "setsid" }, -[158] = { 2, 0, SEN(getgroups), "getgroups" }, -[159] = { 2, 0, SEN(setgroups), "setgroups" }, +[158] = { 2, TC, SEN(getgroups), "getgroups" }, +[159] = { 2, TC, SEN(setgroups), "setgroups" }, [160] = { 1, 0, SEN(uname), "uname" }, [161] = { 2, 0, SEN(sethostname), "sethostname" }, [162] = { 2, 0, SEN(setdomainname), "setdomainname" }, @@ -172,17 +172,17 @@ [164] = { 2, 0, SEN(setrlimit), "setrlimit" }, [165] = { 2, 0, SEN(getrusage), "getrusage" }, [166] = { 1, NF, SEN(umask), "umask" }, -[167] = { 5, 0, SEN(prctl), "prctl" }, +[167] = { 5, TC, SEN(prctl), "prctl" }, [168] = { 3, 0, SEN(getcpu), "getcpu" }, -[169] = { 2, 0, SEN(gettimeofday), "gettimeofday" }, -[170] = { 2, 0, SEN(settimeofday), "settimeofday" }, -[171] = { 1, 0, SEN(adjtimex64), "adjtimex" }, +[169] = { 2, TCL, SEN(gettimeofday), "gettimeofday" }, +[170] = { 2, TCL, SEN(settimeofday), "settimeofday" }, +[171] = { 1, TCL, SEN(adjtimex64), "adjtimex" }, [172] = { 0, PU|NF, SEN(getpid), "getpid" }, [173] = { 0, PU|NF, SEN(getppid), "getppid" }, -[174] = { 0, PU|NF, SEN(getuid), "getuid" }, -[175] = { 0, PU|NF, SEN(geteuid), "geteuid" }, -[176] = { 0, PU|NF, SEN(getgid), "getgid" }, -[177] = { 0, PU|NF, SEN(getegid), "getegid" }, +[174] = { 0, TC|PU|NF, SEN(getuid), "getuid" }, +[175] = { 0, TC|PU|NF, SEN(geteuid), "geteuid" }, +[176] = { 0, TC|PU|NF, SEN(getgid), "getgid" }, +[177] = { 0, TC|PU|NF, SEN(getegid), "getegid" }, [178] = { 0, PU|NF, SEN(gettid), "gettid" }, [179] = { 1, 0, SEN(sysinfo), "sysinfo" }, [180] = { 4, TD, SEN(mq_open), "mq_open" }, @@ -226,7 +226,7 @@ [218] = { 4, 0, SEN(request_key), "request_key" }, [219] = { 5, 0, SEN(keyctl), "keyctl" }, [220] = { 5, TP, SEN(clone), "clone" }, -[221] = { 3, TF|TP|SE|SI, SEN(execve), "execve" }, +[221] = { 3, TF|TP|TSD|SE|SI, SEN(execve), "execve" }, [222] = { 6, TD|TM|SI, SEN(mmap), "mmap" }, [223] = { 4, TD, SEN(fadvise64), "fadvise64" }, [224] = { 2, TF, SEN(swapon), "swapon" }, @@ -256,7 +256,7 @@ [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_adjtime64), "clock_adjtime" }, +[266] = { 2, TCL, SEN(clock_adjtime64), "clock_adjtime" }, [267] = { 1, TD, SEN(syncfs), "syncfs" }, [268] = { 2, TD, SEN(setns), "setns" }, [269] = { 4, TN, SEN(sendmmsg), "sendmmsg" }, @@ -271,7 +271,7 @@ [278] = { 3, 0, SEN(getrandom), "getrandom" }, [279] = { 2, TD, SEN(memfd_create), "memfd_create" }, [280] = { 3, TD, SEN(bpf), "bpf" }, -[281] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat" }, +[281] = { 5, TD|TF|TP|TSD|SE|SI, SEN(execveat), "execveat" }, [282] = { 1, TD, SEN(userfaultfd), "userfaultfd" }, [283] = { 2, 0, SEN(membarrier), "membarrier" }, [284] = { 3, TM, SEN(mlock2), "mlock2" }, @@ -281,12 +281,9 @@ [288] = { 4, TM|SI, SEN(pkey_mprotect), "pkey_mprotect" }, [289] = { 2, 0, SEN(pkey_alloc), "pkey_alloc" }, [290] = { 1, 0, SEN(pkey_free), "pkey_free" }, -[291] = { 5, TD|TF|TSTA, SEN(statx), "statx" }, +[291] = { 5, TD|TF|TFST|TSTA,SEN(statx), "statx" }, [292] = { 6, 0, SEN(io_pgetevents_time64), "io_pgetevents" }, [293] = { 4, 0, SEN(rseq), "rseq" }, [294] = { 5, TD, SEN(kexec_file_load), "kexec_file_load" }, /* [295 ... 423] - reserved to sync up with other architectures */ -[424] = { 4, TD|TS, SEN(pidfd_send_signal), "pidfd_send_signal" }, -[425] = { 2, TD, SEN(io_uring_setup), "io_uring_setup" }, -[426] = { 6, TD|TS, SEN(io_uring_enter), "io_uring_enter" }, -[427] = { 4, TD|TM, SEN(io_uring_register), "io_uring_register" }, +#include "syscallent-common.h" diff --git a/linux/aarch64/arch_defs_.h b/linux/aarch64/arch_defs_.h index ed9261f5..fb75722f 100644 --- a/linux/aarch64/arch_defs_.h +++ b/linux/aarch64/arch_defs_.h @@ -9,3 +9,5 @@ #define HAVE_ARCH_OLD_SELECT 1 #define HAVE_ARCH_UID16_SYSCALLS 1 #define SUPPORTED_PERSONALITIES 2 +#define PERSONALITY0_AUDIT_ARCH { AUDIT_ARCH_AARCH64, 0 } +#define PERSONALITY1_AUDIT_ARCH { AUDIT_ARCH_ARM, 0 } diff --git a/linux/aarch64/arch_get_personality.c b/linux/aarch64/arch_get_personality.c index 534d7f4f..c82fc4d7 100644 --- a/linux/aarch64/arch_get_personality.c +++ b/linux/aarch64/arch_get_personality.c @@ -1,16 +1,13 @@ /* * Copyright (c) 2018 Dmitry V. Levin + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ -#ifndef AUDIT_ARCH_ARM -# define AUDIT_ARCH_ARM 0x40000028 -#endif - int -get_personality_from_syscall_info(const struct ptrace_syscall_info *sci) +get_personality_from_syscall_info(const struct_ptrace_syscall_info *sci) { return sci->arch == AUDIT_ARCH_ARM; } diff --git a/linux/aarch64/ioctls_arch0.h b/linux/aarch64/ioctls_arch0.h index ef5f78c8..5b5121d9 100644 --- a/linux/aarch64/ioctls_arch0.h +++ b/linux/aarch64/ioctls_arch0.h @@ -1,6 +1,7 @@ /* Generated by ioctls_gen.sh from definitions found in $linux/arch/arm64/include/ tree. */ { "linux/kvm.h", "KVM_ARM_PREFERRED_TARGET", _IOC_READ, 0xaeaf, 0x20 }, { "linux/kvm.h", "KVM_ARM_SET_DEVICE_ADDR", _IOC_WRITE, 0xaeab, 0x10 }, +{ "linux/kvm.h", "KVM_ARM_VCPU_FINALIZE", _IOC_WRITE, 0xaec2, 0x04 }, { "linux/kvm.h", "KVM_ARM_VCPU_INIT", _IOC_WRITE, 0xaeae, 0x20 }, { "linux/kvm.h", "KVM_ASSIGN_DEV_IRQ", _IOC_WRITE, 0xae70, 0x40 }, { "linux/kvm.h", "KVM_ASSIGN_PCI_DEVICE", _IOC_READ, 0xae69, 0x40 }, diff --git a/linux/aarch64/set_scno.c b/linux/aarch64/set_scno.c index e2b5d8a2..668a7570 100644 --- a/linux/aarch64/set_scno.c +++ b/linux/aarch64/set_scno.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -23,7 +23,7 @@ arch_set_scno(struct tcb *tcp, kernel_ulong_t scno) }; int rc = ptrace(PTRACE_SETREGSET, tcp->pid, NT_ARM_SYSTEM_CALL, &io); if (rc && errno != ESRCH) - perror_msg("arch_set_scno: NT_ARM_SYSTEM_CALL pid:%d scno:%#x", - tcp->pid, n); + perror_func_msg("NT_ARM_SYSTEM_CALL pid:%d scno:%#x", + tcp->pid, n); return rc; } diff --git a/linux/aarch64/syscallent.h b/linux/aarch64/syscallent.h index c4bb9f67..4750cd99 100644 --- a/linux/aarch64/syscallent.h +++ b/linux/aarch64/syscallent.h @@ -11,70 +11,3 @@ * Arch-specific block, not used on AArch64. * [244 ... 259] = { }, */ - -/* Quote from asm-generic/unistd.h: - * - * All syscalls below here should go away really, - * these are provided for both review and as a porting - * help for the C library version. - * - * Last chance: are any of these important enough to - * enable by default? - */ - -[1024] = { 3, TD|TF, SEN(open), "open" }, -[1025] = { 2, TF, SEN(link), "link" }, -[1026] = { 1, TF, SEN(unlink), "unlink" }, -[1027] = { 3, TF, SEN(mknod), "mknod" }, -[1028] = { 2, TF, SEN(chmod), "chmod" }, -[1029] = { 3, TF, SEN(chown), "chown" }, -[1030] = { 2, TF, SEN(mkdir), "mkdir" }, -[1031] = { 1, TF, SEN(rmdir), "rmdir" }, -[1032] = { 3, TF, SEN(chown), "lchown" }, -[1033] = { 2, TF, SEN(access), "access" }, -[1034] = { 2, TF, SEN(rename), "rename" }, -[1035] = { 3, TF, SEN(readlink), "readlink" }, -[1036] = { 2, TF, SEN(symlink), "symlink" }, -[1037] = { 2, TF, SEN(utimes), "utimes" }, -[1038] = { 2, TF|TST|TSTA, SEN(stat), "stat" }, -[1039] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" }, -[1040] = { 1, TD, SEN(pipe), "pipe" }, -[1041] = { 2, TD, SEN(dup2), "dup2" }, -[1042] = { 1, TD, SEN(epoll_create), "epoll_create" }, -[1043] = { 0, TD, SEN(inotify_init), "inotify_init" }, -[1044] = { 1, TD, SEN(eventfd), "eventfd" }, -[1045] = { 3, TD|TS, SEN(signalfd), "signalfd" }, -[1046] = { 4, TD|TN, SEN(sendfile64), "sendfile" }, -[1047] = { 2, TD, SEN(ftruncate), "ftruncate" }, -[1048] = { 2, TF, SEN(truncate), "truncate" }, -[1049] = { 2, TF|TST|TSTA, SEN(stat), "stat" }, -[1050] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" }, -[1051] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" }, -[1052] = { 3, TD, SEN(fcntl), "fcntl" }, -[1053] = { 4, TD, SEN(fadvise64), "fadvise64" }, -[1054] = { 4, TD|TF|TFST|TSTA,SEN(newfstatat), "newfstatat" }, -[1055] = { 2, TD|TFSF|TSFA, SEN(fstatfs), "fstatfs" }, -[1056] = { 2, TF|TSF|TSFA, SEN(statfs), "statfs" }, -[1057] = { 3, TD, SEN(lseek), "lseek" }, -[1058] = { 6, TD|TM|SI, SEN(mmap), "mmap" }, -[1059] = { 1, 0, SEN(alarm), "alarm" }, -[1060] = { 0, PU|NF, SEN(getpgrp), "getpgrp" }, -[1061] = { 0, TS, SEN(pause), "pause" }, -[1062] = { 1, 0, SEN(time), "time" }, -[1063] = { 2, TF, SEN(utime), "utime" }, -[1064] = { 2, TD|TF, SEN(creat), "creat" }, -[1065] = { 3, TD, SEN(getdents), "getdents" }, -[1066] = { 3, TD|TF, SEN(futimesat), "futimesat" }, -[1067] = { 5, TD, SEN(select), "select" }, -[1068] = { 3, TD, SEN(poll_time64), "poll" }, -[1069] = { 4, TD, SEN(epoll_wait), "epoll_wait" }, -[1070] = { 2, TSFA, SEN(ustat), "ustat" }, -[1071] = { 0, TP, SEN(vfork), "vfork" }, -[1072] = { 4, TP, SEN(wait4), "wait4" }, -[1073] = { 4, TN, SEN(recv), "recv" }, -[1074] = { 4, TN, SEN(send), "send" }, -[1075] = { 2, 0, SEN(bdflush), "bdflush" }, -[1076] = { 1, TF, SEN(umount), "umount" }, -[1077] = { 1, TF, SEN(uselib), "uselib" }, -[1078] = { 1, 0, SEN(sysctl), "sysctl" }, -[1079] = { 0, TP, SEN(fork), "fork" }, diff --git a/linux/alpha/get_scno.c b/linux/alpha/get_scno.c index 2d5c6d6a..7cb61fa1 100644 --- a/linux/alpha/get_scno.c +++ b/linux/alpha/get_scno.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -22,8 +22,7 @@ arch_get_scno(struct tcb *tcp) */ if (!scno_in_range(scno)) { if (alpha_a3 == 0 || alpha_a3 == -1UL) { - if (debug_flag) - error_msg("stray syscall exit: r0 = %lu", scno); + debug_msg("stray syscall exit: r0 = %lu", scno); return 0; } } diff --git a/linux/alpha/syscallent.h b/linux/alpha/syscallent.h index d569fa67..fa86c9ae 100644 --- a/linux/alpha/syscallent.h +++ b/linux/alpha/syscallent.h @@ -1,7 +1,7 @@ /* * Copyright (c) 1993 Branko Lankester * Copyright (c) 1993, 1994, 1995 Rick Sladkey - * Copyright (c) 1995-2019 The strace developers. + * Copyright (c) 1995-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -30,8 +30,8 @@ [ 20] = { 0, PU|NF, SEN(getxpid), "getxpid" }, [ 21] = { 4, 0, SEN(printargs), "osf_mount" }, [ 22] = { 2, TF, SEN(umount2), "umount" }, -[ 23] = { 1, 0, SEN(setuid), "setuid" }, -[ 24] = { 0, PU|NF, SEN(getxuid), "getxuid" }, +[ 23] = { 1, TC, SEN(setuid), "setuid" }, +[ 24] = { 0, TC|PU|NF, SEN(getxuid), "getxuid" }, [ 25] = { 5, 0, SEN(printargs), "exec_with_loader" }, /* not implemented */ [ 26] = { 4, 0, SEN(ptrace), "ptrace" }, [ 27] = { 5, 0, SEN(printargs), "osf_nrecvmsg" }, /* not implemented */ @@ -44,7 +44,7 @@ [ 34] = { 5, 0, SEN(printargs), "osf_chflags" }, /* not implemented */ [ 35] = { 5, 0, SEN(printargs), "osf_fchflags" }, /* not implemented */ [ 36] = { 0, 0, SEN(sync), "sync" }, -[ 37] = { 2, TS, SEN(kill), "kill" }, +[ 37] = { 2, TS|TP, SEN(kill), "kill" }, [ 38] = { 5, TF|TST|TSTA, SEN(printargs), "osf_old_stat" }, /* not implemented */ [ 39] = { 2, 0, SEN(setpgid), "setpgid" }, [ 40] = { 5, TF|TLST|TSTA, SEN(printargs), "osf_old_lstat" }, /* not implemented */ @@ -54,7 +54,7 @@ [ 44] = { 5, 0, SEN(printargs), "osf_profil" }, /* not implemented */ [ 45] = { 3, TD|TF, SEN(open), "open" }, [ 46] = { 5, 0, SEN(printargs), "osf_old_sigaction" }, /* not implemented */ -[ 47] = { 0, PU|NF, SEN(getxgid), "getxgid" }, +[ 47] = { 0, TC|PU|NF, SEN(getxgid), "getxgid" }, [ 48] = { 2, TS, SEN(osf_sigprocmask), "osf_sigprocmask" }, [ 49] = { 5, 0, SEN(printargs), "osf_getlogin" }, /* not implemented */ [ 50] = { 5, 0, SEN(printargs), "osf_setlogin" }, /* not implemented */ @@ -66,7 +66,7 @@ [ 56] = { 5, 0, SEN(printargs), "osf_revoke" }, /* not implemented */ [ 57] = { 2, TF, SEN(symlink), "symlink" }, [ 58] = { 3, TF, SEN(readlink), "readlink" }, -[ 59] = { 3, TF|TP|SE|SI, SEN(execve), "execve" }, +[ 59] = { 3, TF|TP|TSD|SE|SI, SEN(execve), "execve" }, [ 60] = { 1, NF, SEN(umask), "umask" }, [ 61] = { 1, TF, SEN(chroot), "chroot" }, [ 62] = { 5, TD|TFST|TSTA, SEN(printargs), "osf_old_fstat" }, /* not implemented */ @@ -86,8 +86,8 @@ [ 76] = { 0, 0, SEN(vhangup), "vhangup" }, [ 77] = { 5, 0, SEN(printargs), "osf_kmodcall" }, /* not implemented */ [ 78] = { 5, TM, SEN(printargs), "osf_mincore" }, /* not implemented */ -[ 79] = { 2, 0, SEN(getgroups), "getgroups" }, -[ 80] = { 2, 0, SEN(setgroups), "setgroups" }, +[ 79] = { 2, TC, SEN(getgroups), "getgroups" }, +[ 80] = { 2, TC, SEN(setgroups), "setgroups" }, [ 81] = { 5, 0, SEN(printargs), "osf_old_getpgrp" }, /* not implemented */ [ 82] = { 2, 0, SEN(setpgrp), "setpgrp" }, [ 83] = { 3, 0, SEN(osf_setitimer), "osf_setitimer" }, @@ -123,23 +123,23 @@ [113] = { 3, TN, SEN(recvmsg), "recvmsg" }, [114] = { 3, TN, SEN(sendmsg), "sendmsg" }, [115] = { 5, 0, SEN(printargs), "osf_old_vtrace" }, /* not implemented */ -[116] = { 2, 0, SEN(osf_gettimeofday), "osf_gettimeofday" }, +[116] = { 2, TCL, SEN(osf_gettimeofday), "osf_gettimeofday" }, [117] = { 2, 0, SEN(osf_getrusage), "osf_getrusage" }, [118] = { 5, TN, SEN(getsockopt), "getsockopt" }, [119] = { }, [120] = { 3, TD, SEN(readv), "readv" }, [121] = { 3, TD, SEN(writev), "writev" }, -[122] = { 2, 0, SEN(osf_settimeofday), "osf_settimeofday" }, +[122] = { 2, TCL, SEN(osf_settimeofday), "osf_settimeofday" }, [123] = { 3, TD, SEN(fchown), "fchown" }, [124] = { 2, TD, SEN(fchmod), "fchmod" }, [125] = { 6, TN, SEN(recvfrom), "recvfrom" }, -[126] = { 2, 0, SEN(setreuid), "setreuid" }, -[127] = { 2, 0, SEN(setregid), "setregid" }, +[126] = { 2, TC, SEN(setreuid), "setreuid" }, +[127] = { 2, TC, SEN(setregid), "setregid" }, [128] = { 2, TF, SEN(rename), "rename" }, [129] = { 2, TF, SEN(truncate), "truncate" }, [130] = { 2, TD, SEN(ftruncate), "ftruncate" }, [131] = { 2, TD, SEN(flock), "flock" }, -[132] = { 1, 0, SEN(setgid), "setgid" }, +[132] = { 1, TC, SEN(setgid), "setgid" }, [133] = { 6, TN, SEN(sendto), "sendto" }, [134] = { 2, TN, SEN(shutdown), "shutdown" }, [135] = { 4, TN, SEN(socketpair), "socketpair" }, @@ -147,13 +147,13 @@ [137] = { 1, TF, SEN(rmdir), "rmdir" }, [138] = { 2, TF, SEN(osf_utimes), "osf_utimes" }, [139] = { 5, 0, SEN(printargs), "osf_old_sigreturn" }, /* not implemented */ -[140] = { 5, 0, SEN(printargs), "osf_adjtime" }, /* not implemented */ +[140] = { 5, TCL, SEN(printargs), "osf_adjtime" }, /* not implemented */ [141] = { 3, TN, SEN(getpeername), "getpeername" }, [142] = { 5, 0, SEN(printargs), "osf_gethostid" }, /* not implemented */ [143] = { 5, 0, SEN(printargs), "osf_sethostid" }, /* not implemented */ [144] = { 2, 0, SEN(getrlimit), "getrlimit" }, [145] = { 2, 0, SEN(setrlimit), "setrlimit" }, -[146] = { 5, 0, SEN(printargs), "osf_old_killpg" }, /* not implemented */ +[146] = { 5, TP, SEN(printargs), "osf_old_killpg" }, /* not implemented */ [147] = { 0, 0, SEN(setsid), "setsid" }, [148] = { 4, TF, SEN(quotactl), "quotactl" }, [149] = { 5, 0, SEN(printargs), "osf_oldquota" }, /* not implemented */ @@ -204,7 +204,7 @@ [217] = { 3, TM, SEN(msync), "msync" }, [218] = { 5, 0, SEN(printargs), "osf_signal" }, /* not implemented */ [219] = { 5, 0, SEN(printargs), "osf_utc_gettime" }, /* not implemented */ -[220] = { 5, 0, SEN(printargs), "osf_utc_adjtime" }, /* not implemented */ +[220] = { 5, TCL, SEN(printargs), "osf_utc_adjtime" }, /* not implemented */ [221] = { }, [222] = { 5, 0, SEN(printargs), "osf_security" }, /* not implemented */ [223] = { 5, 0, SEN(printargs), "osf_kloadcall" }, /* not implemented */ @@ -226,7 +226,7 @@ [242] = { 5, 0, SEN(printargs), "osf_uadmin" }, /* not implemented */ [243] = { 5, 0, SEN(printargs), "osf_fuser" }, /* not implemented */ [244] = { 2, 0, SEN(printargs), "osf_proplist_syscall" }, -[245] = { 5, 0, SEN(printargs), "osf_ntp_adjtime" }, /* not implemented */ +[245] = { 5, TCL, SEN(printargs), "osf_ntp_adjtime" }, /* not implemented */ [246] = { 5, 0, SEN(printargs), "osf_ntp_gettime" }, /* not implemented */ [247] = { 5, 0, SEN(printargs), "osf_pathconf" }, /* not implemented */ [248] = { 5, 0, SEN(printargs), "osf_fpathconf" }, /* not implemented */ @@ -247,7 +247,7 @@ [300] = { 2, 0, SEN(bdflush), "bdflush" }, [301] = { 1, 0, SEN(printargs), "sethae" }, [302] = { 5, TF, SEN(mount), "mount" }, -[303] = { 1, 0, SEN(adjtimex32), "old_adjtimex" }, +[303] = { 1, TCL, SEN(adjtimex32), "old_adjtimex" }, [304] = { 1, TF, SEN(swapoff), "swapoff" }, [305] = { 3, TD, SEN(getdents), "getdents" }, [306] = { 2, 0, SEN(create_module), "create_module" }, /* not implemented */ @@ -269,8 +269,8 @@ [322] = { 2, TF, SEN(swapon), "swapon" }, [323] = { 1, 0, SEN(times), "times" }, [324] = { 1, NF, SEN(personality), "personality" }, -[325] = { 1, NF, SEN(setfsuid), "setfsuid" }, -[326] = { 1, NF, SEN(setfsgid), "setfsgid" }, +[325] = { 1, TC|NF, SEN(setfsuid), "setfsuid" }, +[326] = { 1, TC|NF, SEN(setfsgid), "setfsgid" }, [327] = { 2, TSFA, SEN(ustat), "ustat" }, [328] = { 2, TF|TSF|TSFA, SEN(statfs), "statfs" }, [329] = { 2, TD|TFSF|TSFA, SEN(fstatfs), "fstatfs" }, @@ -287,12 +287,12 @@ [340] = { 2, 0, SEN(nanosleep_time64), "nanosleep" }, [341] = { 5, TM|SI, SEN(mremap), "mremap" }, [342] = { 3, 0, SEN(nfsservctl), "nfsservctl" }, /* not implemented */ -[343] = { 3, 0, SEN(setresuid), "setresuid" }, -[344] = { 3, 0, SEN(getresuid), "getresuid" }, +[343] = { 3, TC, SEN(setresuid), "setresuid" }, +[344] = { 3, TC, SEN(getresuid), "getresuid" }, [345] = { 5, 0, SEN(printargs), "pciconfig_read" }, [346] = { 5, 0, SEN(printargs), "pciconfig_write" }, [347] = { 5, 0, SEN(query_module), "query_module" }, /* not implemented */ -[348] = { 5, 0, SEN(prctl), "prctl" }, +[348] = { 5, TC, SEN(prctl), "prctl" }, [349] = { 4, TD, SEN(pread), "pread64" }, [350] = { 4, TD, SEN(pwrite), "pwrite64" }, [351] = { 0, TS, SEN(rt_sigreturn), "rt_sigreturn" }, @@ -300,23 +300,23 @@ [353] = { 4, TS, SEN(rt_sigprocmask), "rt_sigprocmask" }, [354] = { 2, TS, SEN(rt_sigpending), "rt_sigpending" }, [355] = { 4, TS, SEN(rt_sigtimedwait_time64), "rt_sigtimedwait" }, -[356] = { 3, TS, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, +[356] = { 3, TS|TP, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, [357] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" }, [358] = { 5, TD, SEN(select), "select" }, -[359] = { 2, 0, SEN(gettimeofday), "gettimeofday" }, -[360] = { 2, 0, SEN(settimeofday), "settimeofday" }, +[359] = { 2, TCL, SEN(gettimeofday), "gettimeofday" }, +[360] = { 2, TCL, SEN(settimeofday), "settimeofday" }, [361] = { 2, 0, SEN(getitimer), "getitimer" }, [362] = { 3, 0, SEN(setitimer), "setitimer" }, [363] = { 2, TF, SEN(utimes), "utimes" }, [364] = { 2, 0, SEN(getrusage), "getrusage" }, [365] = { 4, TP, SEN(wait4), "wait4" }, -[366] = { 1, 0, SEN(adjtimex64), "adjtimex" }, +[366] = { 1, TCL, SEN(adjtimex64), "adjtimex" }, [367] = { 2, TF, SEN(getcwd), "getcwd" }, -[368] = { 2, 0, SEN(capget), "capget" }, -[369] = { 2, 0, SEN(capset), "capset" }, +[368] = { 2, TC, SEN(capget), "capget" }, +[369] = { 2, TC, SEN(capset), "capset" }, [370] = { 4, TD|TN, SEN(sendfile), "sendfile" }, -[371] = { 3, 0, SEN(setresgid), "setresgid" }, -[372] = { 3, 0, SEN(getresgid), "getresgid" }, +[371] = { 3, TC, SEN(setresgid), "setresgid" }, +[372] = { 3, TC, SEN(getresgid), "getresgid" }, [373] = { 4, 0, SEN(printargs), "dipc" }, /* not implemented */ [374] = { 2, TF, SEN(pivotroot), "pivot_root" }, [375] = { 3, TM, SEN(mincore), "mincore" }, @@ -325,7 +325,7 @@ [378] = { 0, PU|NF, SEN(gettid), "gettid" }, [379] = { 3, TD, SEN(readahead), "readahead" }, [380] = { }, -[381] = { 2, TS, SEN(kill), "tkill" }, +[381] = { 2, TS|TP, SEN(tkill), "tkill" }, [382] = { 5, TF, SEN(setxattr), "setxattr" }, [383] = { 5, TF, SEN(setxattr), "lsetxattr" }, [384] = { 5, TD, SEN(fsetxattr), "fsetxattr" }, @@ -362,12 +362,12 @@ [416] = { 2, 0, SEN(timer_gettime64), "timer_gettime" }, [417] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" }, [418] = { 1, 0, SEN(timer_delete), "timer_delete" }, -[419] = { 2, 0, SEN(clock_settime64), "clock_settime" }, -[420] = { 2, 0, SEN(clock_gettime64), "clock_gettime" }, -[421] = { 2, 0, SEN(clock_getres_time64), "clock_getres" }, +[419] = { 2, TCL, SEN(clock_settime64), "clock_settime" }, +[420] = { 2, TCL, SEN(clock_gettime64), "clock_gettime" }, +[421] = { 2, TCL, SEN(clock_getres_time64), "clock_getres" }, [422] = { 4, 0, SEN(clock_nanosleep_time64), "clock_nanosleep" }, [423] = { 4, TI, SEN(semtimedop_time64), "semtimedop" }, -[424] = { 3, TS, SEN(tgkill), "tgkill" }, +[424] = { 3, TS|TP, SEN(tgkill), "tgkill" }, [425] = { 2, TF|TST|TSTA, SEN(stat64), "stat64" }, [426] = { 2, TF|TLST|TSTA, SEN(lstat64), "lstat64" }, [427] = { 2, TD|TFST|TSTA, SEN(fstat64), "fstat64" }, @@ -408,7 +408,7 @@ [462] = { 3, TD|TF, SEN(faccessat), "faccessat" }, [463] = { 6, TD, SEN(pselect6_time64), "pselect6" }, [464] = { 5, TD, SEN(ppoll_time64), "ppoll" }, -[465] = { 1, TP, SEN(unshare), "unshare" }, +[465] = { 1, 0, SEN(unshare), "unshare" }, [466] = { 2, 0, SEN(set_robust_list), "set_robust_list" }, [467] = { 3, 0, SEN(get_robust_list), "get_robust_list" }, [468] = { 6, TD, SEN(splice), "splice" }, @@ -442,7 +442,7 @@ [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_adjtime64), "clock_adjtime" }, +[499] = { 2, TCL, SEN(clock_adjtime64), "clock_adjtime" }, [500] = { 1, TD, SEN(syncfs), "syncfs" }, [501] = { 2, TD, SEN(setns), "setns" }, [502] = { 4, TN, SEN(accept4), "accept4" }, @@ -456,7 +456,7 @@ [510] = { 5, TD|TF, SEN(renameat2), "renameat2" }, [511] = { 3, 0, SEN(getrandom), "getrandom" }, [512] = { 2, TD, SEN(memfd_create), "memfd_create" }, -[513] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat" }, +[513] = { 5, TD|TF|TP|TSD|SE|SI, SEN(execveat), "execveat" }, [514] = { 3, 0, SEN(seccomp), "seccomp" }, [515] = { 3, TD, SEN(bpf), "bpf" }, [516] = { 1, TD, SEN(userfaultfd), "userfaultfd" }, @@ -465,7 +465,7 @@ [519] = { 6, TD, SEN(copy_file_range), "copy_file_range" }, [520] = { 6, TD, SEN(preadv2), "preadv2" }, [521] = { 6, TD, SEN(pwritev2), "pwritev2" }, -[522] = { 5, TD|TF|TSTA, SEN(statx), "statx" }, +[522] = { 5, TD|TF|TFST|TSTA,SEN(statx), "statx" }, [523] = { 6, 0, SEN(io_pgetevents_time64), "io_pgetevents" }, [524] = { 4, TM|SI, SEN(pkey_mprotect), "pkey_mprotect" }, [525] = { 2, 0, SEN(pkey_alloc), "pkey_alloc" }, @@ -473,11 +473,11 @@ [527] = { 4, 0, SEN(rseq), "rseq" }, [528] = { 3, TF|TSF|TSFA, SEN(statfs64), "statfs64" }, [529] = { 3, TD|TFSF|TSFA, SEN(fstatfs64), "fstatfs64" }, -[530] = { 0, PU|NF, SEN(getegid), "getegid" }, -[531] = { 0, PU|NF, SEN(geteuid), "geteuid" }, +[530] = { 0, TC|PU|NF, SEN(getegid), "getegid" }, +[531] = { 0, TC|PU|NF, SEN(geteuid), "geteuid" }, [532] = { 0, PU|NF, SEN(getppid), "getppid" }, /* all other architectures have common numbers for new syscalls, alpha is the exception */ -[534] = { 4, TD|TS, SEN(pidfd_send_signal), "pidfd_send_signal" }, -[535] = { 2, TD, SEN(io_uring_setup), "io_uring_setup" }, -[536] = { 6, TD|TS, SEN(io_uring_enter), "io_uring_enter" }, -[537] = { 4, TD|TM, SEN(io_uring_register), "io_uring_register" }, +/* 534 - 424 == 110 */ +#define BASE_NR 110 +#include "syscallent-common.h" +#undef BASE_NR diff --git a/linux/arc/set_scno.c b/linux/arc/set_scno.c index adbf218e..9433655a 100644 --- a/linux/arc/set_scno.c +++ b/linux/arc/set_scno.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -8,6 +8,8 @@ static int arch_set_scno(struct tcb *tcp, kernel_ulong_t scno) { + if (ptrace_syscall_info_is_valid() && get_regs(tcp) < 0) + return -1; arc_regs.scratch.r8 = scno; return set_regs(tcp->pid); } diff --git a/linux/arch_defs_.h b/linux/arch_defs_.h index 5baf3f91..eb2f97eb 100644 --- a/linux/arch_defs_.h +++ b/linux/arch_defs_.h @@ -1,16 +1,12 @@ /* * Fallback file for arch-specific definitions. * - * Copyright (c) 2018-2019 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ -#ifndef ARCH_TIMESIZE -# define ARCH_TIMESIZE SIZEOF_LONG -#endif - #ifndef HAVE_ARCH_GETRVAL2 # define HAVE_ARCH_GETRVAL2 0 #endif @@ -66,3 +62,15 @@ #ifndef HAVE_ARCH_OLD_TIME64_SYSCALLS # define HAVE_ARCH_OLD_TIME64_SYSCALLS (SIZEOF_LONG == 8) #endif + +#ifndef MIN_KLONGSIZE +# if SUPPORTED_PERSONALITIES > 1 +# define MIN_KLONGSIZE 4 +# else +# define MIN_KLONGSIZE SIZEOF_KERNEL_LONG_T +# endif +#endif + +#ifndef HAVE_ARCH_TIMESPEC32 +# define HAVE_ARCH_TIMESPEC32 (MIN_KLONGSIZE == 4) +#endif diff --git a/linux/arm/ioctls_arch0.h b/linux/arm/ioctls_arch0.h index 2393ba42..35d9ce8c 100644 --- a/linux/arm/ioctls_arch0.h +++ b/linux/arm/ioctls_arch0.h @@ -2,6 +2,7 @@ { "asm/ioctls.h", "FIOQSIZE", 0, 0x545E, 0 }, { "linux/kvm.h", "KVM_ARM_PREFERRED_TARGET", _IOC_READ, 0xaeaf, 0x20 }, { "linux/kvm.h", "KVM_ARM_SET_DEVICE_ADDR", _IOC_WRITE, 0xaeab, 0x10 }, +{ "linux/kvm.h", "KVM_ARM_VCPU_FINALIZE", _IOC_WRITE, 0xaec2, 0x04 }, { "linux/kvm.h", "KVM_ARM_VCPU_INIT", _IOC_WRITE, 0xaeae, 0x20 }, { "linux/kvm.h", "KVM_ASSIGN_DEV_IRQ", _IOC_WRITE, 0xae70, 0x40 }, { "linux/kvm.h", "KVM_ASSIGN_PCI_DEVICE", _IOC_READ, 0xae69, 0x40 }, diff --git a/linux/arm/syscallent.h b/linux/arm/syscallent.h index 065e79f3..b744074e 100644 --- a/linux/arm/syscallent.h +++ b/linux/arm/syscallent.h @@ -1,7 +1,7 @@ /* * Copyright (c) 1993 Branko Lankester * Copyright (c) 1993, 1994, 1995 Rick Sladkey - * Copyright (c) 1995-2019 The strace developers. + * Copyright (c) 1995-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -18,9 +18,9 @@ [ 8] = { 2, TD|TF, SEN(creat), "creat" }, [ 9] = { 2, TF, SEN(link), "link" }, [ 10] = { 1, TF, SEN(unlink), "unlink" }, -[ 11] = { 3, TF|TP|SE|SI, SEN(execve), "execve" }, +[ 11] = { 3, TF|TP|TSD|SE|SI, SEN(execve), "execve" }, [ 12] = { 1, TF, SEN(chdir), "chdir" }, -[ 13] = { 1, 0, SEN(time), "time" }, +[ 13] = { 1, TCL, SEN(time), "time" }, [ 14] = { 3, TF, SEN(mknod), "mknod" }, [ 15] = { 2, TF, SEN(chmod), "chmod" }, [ 16] = { 3, TF, SEN(chown16), "lchown" }, @@ -30,8 +30,8 @@ [ 20] = { 0, PU|NF, SEN(getpid), "getpid" }, [ 21] = { 5, TF, SEN(mount), "mount" }, [ 22] = { 1, TF, SEN(umount), "umount" }, -[ 23] = { 1, 0, SEN(setuid16), "setuid" }, -[ 24] = { 0, PU|NF, SEN(getuid16), "getuid" }, +[ 23] = { 1, TC, SEN(setuid16), "setuid" }, +[ 24] = { 0, TC|PU|NF, SEN(getuid16), "getuid" }, [ 25] = { 1, 0, SEN(stime), "stime" }, [ 26] = { 4, 0, SEN(ptrace), "ptrace" }, [ 27] = { 1, 0, SEN(alarm), "alarm" }, @@ -44,7 +44,7 @@ [ 34] = { 1, 0, SEN(nice), "nice" }, [ 35] = { 0, 0, SEN(ftime), "ftime" }, [ 36] = { 0, 0, SEN(sync), "sync" }, -[ 37] = { 2, TS, SEN(kill), "kill" }, +[ 37] = { 2, TS|TP, SEN(kill), "kill" }, [ 38] = { 2, TF, SEN(rename), "rename" }, [ 39] = { 2, TF, SEN(mkdir), "mkdir" }, [ 40] = { 1, TF, SEN(rmdir), "rmdir" }, @@ -53,11 +53,11 @@ [ 43] = { 1, 0, SEN(times), "times" }, [ 44] = { 0, 0, SEN(prof), "prof" }, [ 45] = { 1, TM|SI, SEN(brk), "brk" }, -[ 46] = { 1, 0, SEN(setgid16), "setgid" }, -[ 47] = { 0, PU|NF, SEN(getgid16), "getgid" }, +[ 46] = { 1, TC, SEN(setgid16), "setgid" }, +[ 47] = { 0, TC|PU|NF, SEN(getgid16), "getgid" }, [ 48] = { 2, TS, SEN(signal), "signal" }, -[ 49] = { 0, PU|NF, SEN(geteuid16), "geteuid" }, -[ 50] = { 0, PU|NF, SEN(getegid16), "getegid" }, +[ 49] = { 0, TC|PU|NF, SEN(geteuid16), "geteuid" }, +[ 50] = { 0, TC|PU|NF, SEN(getegid16), "getegid" }, [ 51] = { 1, TF, SEN(acct), "acct" }, [ 52] = { 2, TF, SEN(umount2), "umount2" }, [ 53] = { 0, 0, SEN(lock), "lock" }, @@ -77,18 +77,18 @@ [ 67] = { 3, TS, SEN(sigaction), "sigaction" }, [ 68] = { 0, TS, SEN(sgetmask), "sgetmask" }, [ 69] = { 1, TS, SEN(ssetmask), "ssetmask" }, -[ 70] = { 2, 0, SEN(setreuid16), "setreuid" }, -[ 71] = { 2, 0, SEN(setregid16), "setregid" }, +[ 70] = { 2, TC, SEN(setreuid16), "setreuid" }, +[ 71] = { 2, TC, SEN(setregid16), "setregid" }, [ 72] = { 3, TS, SEN(sigsuspend), "sigsuspend" }, [ 73] = { 1, TS, SEN(sigpending), "sigpending" }, [ 74] = { 2, 0, SEN(sethostname), "sethostname" }, [ 75] = { 2, 0, SEN(setrlimit), "setrlimit" }, [ 76] = { 2, 0, SEN(getrlimit), "getrlimit" }, [ 77] = { 2, 0, SEN(getrusage), "getrusage" }, -[ 78] = { 2, 0, SEN(gettimeofday), "gettimeofday" }, -[ 79] = { 2, 0, SEN(settimeofday), "settimeofday" }, -[ 80] = { 2, 0, SEN(getgroups16), "getgroups" }, -[ 81] = { 2, 0, SEN(setgroups16), "setgroups" }, +[ 78] = { 2, TCL, SEN(gettimeofday), "gettimeofday" }, +[ 79] = { 2, TCL, SEN(settimeofday), "settimeofday" }, +[ 80] = { 2, TC, SEN(getgroups16), "getgroups" }, +[ 81] = { 2, TC, SEN(setgroups16), "setgroups" }, [ 82] = { 1, TD, SEN(oldselect), "select" }, [ 83] = { 2, TF, SEN(symlink), "symlink" }, [ 84] = { 2, TF|TLST|TSTA, SEN(oldlstat), "oldlstat" }, @@ -109,7 +109,7 @@ [ 99] = { 2, TF|TSF|TSFA, SEN(statfs), "statfs" }, [100] = { 2, TD|TFSF|TSFA, SEN(fstatfs), "fstatfs" }, [101] = { 3, 0, SEN(ioperm), "ioperm" }, -[102] = { 2, TD, SEN(socketcall), "socketcall" }, +[102] = { 2, TD|TSD, SEN(socketcall), "socketcall" }, [103] = { 3, 0, SEN(syslog), "syslog" }, [104] = { 3, 0, SEN(setitimer), "setitimer" }, [105] = { 2, 0, SEN(getitimer), "getitimer" }, @@ -124,14 +124,14 @@ [114] = { 4, TP, SEN(wait4), "wait4" }, [115] = { 1, TF, SEN(swapoff), "swapoff" }, [116] = { 1, 0, SEN(sysinfo), "sysinfo" }, -[117] = { 6, TI, SEN(ipc), "ipc" }, +[117] = { 6, TI|TSD, SEN(ipc), "ipc" }, [118] = { 1, TD, SEN(fsync), "fsync" }, [119] = { 0, TS, SEN(sigreturn), "sigreturn" }, [120] = { 5, TP, SEN(clone), "clone" }, [121] = { 2, 0, SEN(setdomainname), "setdomainname" }, [122] = { 1, 0, SEN(uname), "uname" }, [123] = { 3, 0, SEN(modify_ldt), "modify_ldt" }, -[124] = { 1, 0, SEN(adjtimex32), "adjtimex" }, +[124] = { 1, TCL, SEN(adjtimex32), "adjtimex" }, [125] = { 3, TM|SI, SEN(mprotect), "mprotect" }, [126] = { 3, TS, SEN(sigprocmask), "sigprocmask" }, [127] = { 2, 0, SEN(create_module), "create_module" }, @@ -145,8 +145,8 @@ [135] = { 3, 0, SEN(sysfs), "sysfs" }, [136] = { 1, NF, SEN(personality), "personality" }, [137] = { 5, 0, SEN(afs_syscall), "afs_syscall" }, -[138] = { 1, NF, SEN(setfsuid16), "setfsuid" }, -[139] = { 1, NF, SEN(setfsgid16), "setfsgid" }, +[138] = { 1, TC|NF, SEN(setfsuid16), "setfsuid" }, +[139] = { 1, TC|NF, SEN(setfsgid16), "setfsgid" }, [140] = { 5, TD, SEN(llseek), "_llseek" }, [141] = { 3, TD, SEN(getdents), "getdents" }, [142] = { 5, TD, SEN(select), "_newselect" }, @@ -171,28 +171,28 @@ [161] = { 2, 0, SEN(sched_rr_get_interval_time32),"sched_rr_get_interval"}, [162] = { 2, 0, SEN(nanosleep_time32), "nanosleep" }, [163] = { 5, TM|SI, SEN(mremap), "mremap" }, -[164] = { 3, 0, SEN(setresuid16), "setresuid" }, -[165] = { 3, 0, SEN(getresuid16), "getresuid" }, +[164] = { 3, TC, SEN(setresuid16), "setresuid" }, +[165] = { 3, TC, SEN(getresuid16), "getresuid" }, [166] = { 5, 0, SEN(vm86), "vm86" }, [167] = { 5, 0, SEN(query_module), "query_module" }, [168] = { 3, TD, SEN(poll_time32), "poll" }, [169] = { 3, 0, SEN(nfsservctl), "nfsservctl" }, -[170] = { 3, 0, SEN(setresgid16), "setresgid" }, -[171] = { 3, 0, SEN(getresgid16), "getresgid" }, -[172] = { 5, 0, SEN(prctl), "prctl" }, +[170] = { 3, TC, SEN(setresgid16), "setresgid" }, +[171] = { 3, TC, SEN(getresgid16), "getresgid" }, +[172] = { 5, TC, SEN(prctl), "prctl" }, [173] = { 0, TS, SEN(rt_sigreturn), "rt_sigreturn" }, [174] = { 4, TS, SEN(rt_sigaction), "rt_sigaction" }, [175] = { 4, TS, SEN(rt_sigprocmask), "rt_sigprocmask" }, [176] = { 2, TS, SEN(rt_sigpending), "rt_sigpending" }, [177] = { 4, TS, SEN(rt_sigtimedwait_time32), "rt_sigtimedwait" }, -[178] = { 3, TS, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, +[178] = { 3, TS|TP, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, [179] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" }, [180] = { 6, TD, SEN(pread), "pread64" }, [181] = { 6, TD, SEN(pwrite), "pwrite64" }, [182] = { 3, TF, SEN(chown16), "chown" }, [183] = { 2, TF, SEN(getcwd), "getcwd" }, -[184] = { 2, 0, SEN(capget), "capget" }, -[185] = { 2, 0, SEN(capset), "capset" }, +[184] = { 2, TC, SEN(capget), "capget" }, +[185] = { 2, TC, SEN(capset), "capset" }, [186] = { 2, TS, SEN(sigaltstack), "sigaltstack" }, [187] = { 4, TD|TN, SEN(sendfile), "sendfile" }, [188] = { 5, TN, SEN(getpmsg), "getpmsg" }, @@ -206,24 +206,24 @@ [196] = { 2, TF|TLST|TSTA, SEN(lstat64), "lstat64" }, [197] = { 2, TD|TFST|TSTA, SEN(fstat64), "fstat64" }, [198] = { 3, TF, SEN(chown), "lchown32" }, -[199] = { 0, PU|NF, SEN(getuid), "getuid32" }, -[200] = { 0, PU|NF, SEN(getgid), "getgid32" }, -[201] = { 0, PU|NF, SEN(geteuid), "geteuid32" }, -[202] = { 0, PU|NF, SEN(geteuid), "getegid32" }, -[203] = { 2, 0, SEN(setreuid), "setreuid32" }, -[204] = { 2, 0, SEN(setregid), "setregid32" }, -[205] = { 2, 0, SEN(getgroups), "getgroups32" }, -[206] = { 2, 0, SEN(setgroups), "setgroups32" }, +[199] = { 0, TC|PU|NF, SEN(getuid), "getuid32" }, +[200] = { 0, TC|PU|NF, SEN(getgid), "getgid32" }, +[201] = { 0, TC|PU|NF, SEN(geteuid), "geteuid32" }, +[202] = { 0, TC|PU|NF, SEN(geteuid), "getegid32" }, +[203] = { 2, TC, SEN(setreuid), "setreuid32" }, +[204] = { 2, TC, SEN(setregid), "setregid32" }, +[205] = { 2, TC, SEN(getgroups), "getgroups32" }, +[206] = { 2, TC, SEN(setgroups), "setgroups32" }, [207] = { 3, TD, SEN(fchown), "fchown32" }, -[208] = { 3, 0, SEN(setresuid), "setresuid32" }, -[209] = { 3, 0, SEN(getresuid), "getresuid32" }, -[210] = { 3, 0, SEN(setresgid), "setresgid32" }, -[211] = { 3, 0, SEN(getresgid), "getresgid32" }, +[208] = { 3, TC, SEN(setresuid), "setresuid32" }, +[209] = { 3, TC, SEN(getresuid), "getresuid32" }, +[210] = { 3, TC, SEN(setresgid), "setresgid32" }, +[211] = { 3, TC, SEN(getresgid), "getresgid32" }, [212] = { 3, TF, SEN(chown), "chown32" }, -[213] = { 1, 0, SEN(setuid), "setuid32" }, -[214] = { 1, 0, SEN(setgid), "setgid32" }, -[215] = { 1, NF, SEN(setfsuid), "setfsuid32" }, -[216] = { 1, NF, SEN(setfsgid), "setfsgid32" }, +[213] = { 1, TC, SEN(setuid), "setuid32" }, +[214] = { 1, TC, SEN(setgid), "setgid32" }, +[215] = { 1, TC|NF, SEN(setfsuid), "setfsuid32" }, +[216] = { 1, TC|NF, SEN(setfsgid), "setfsgid32" }, [217] = { 3, TD, SEN(getdents64), "getdents64" }, [218] = { 2, TF, SEN(pivotroot), "pivot_root" }, [219] = { 3, TM, SEN(mincore), "mincore" }, @@ -245,7 +245,7 @@ [235] = { 2, TF, SEN(removexattr), "removexattr" }, [236] = { 2, TF, SEN(removexattr), "lremovexattr" }, [237] = { 2, TD, SEN(fremovexattr), "fremovexattr" }, -[238] = { 2, TS, SEN(kill), "tkill" }, +[238] = { 2, TS|TP, SEN(tkill), "tkill" }, [239] = { 4, TD|TN, SEN(sendfile64), "sendfile64" }, [240] = { 6, 0, SEN(futex_time32), "futex" }, [241] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" }, @@ -269,13 +269,13 @@ [259] = { 2, 0, SEN(timer_gettime32), "timer_gettime" }, [260] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" }, [261] = { 1, 0, SEN(timer_delete), "timer_delete" }, -[262] = { 2, 0, SEN(clock_settime32), "clock_settime" }, -[263] = { 2, 0, SEN(clock_gettime32), "clock_gettime" }, -[264] = { 2, 0, SEN(clock_getres_time32), "clock_getres" }, +[262] = { 2, TCL, SEN(clock_settime32), "clock_settime" }, +[263] = { 2, TCL, SEN(clock_gettime32), "clock_gettime" }, +[264] = { 2, TCL, SEN(clock_getres_time32), "clock_getres" }, [265] = { 4, 0, SEN(clock_nanosleep_time32), "clock_nanosleep" }, [266] = { 3, TF|TSF|TSFA, SEN(statfs64), "statfs64" }, [267] = { 3, TD|TFSF|TSFA, SEN(fstatfs64), "fstatfs64" }, -[268] = { 3, TS, SEN(tgkill), "tgkill" }, +[268] = { 3, TS|TP, SEN(tgkill), "tgkill" }, [269] = { 2, TF, SEN(utimes), "utimes" }, [270] = { 6, TD, SEN(fadvise64_64), "fadvise64_64" }, [271] = { 3, 0, SEN(printargs), "pciconfig_iobase" }, @@ -344,7 +344,7 @@ [334] = { 3, TD|TF, SEN(faccessat), "faccessat" }, [335] = { 6, TD, SEN(pselect6_time32), "pselect6" }, [336] = { 5, TD, SEN(ppoll_time32), "ppoll" }, -[337] = { 1, TP, SEN(unshare), "unshare" }, +[337] = { 1, 0, SEN(unshare), "unshare" }, [338] = { 2, 0, SEN(set_robust_list), "set_robust_list" }, [339] = { 3, 0, SEN(get_robust_list), "get_robust_list" }, [340] = { 6, TD, SEN(splice), "splice" }, @@ -379,7 +379,7 @@ [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_adjtime32), "clock_adjtime" }, +[372] = { 2, TCL, SEN(clock_adjtime32), "clock_adjtime" }, [373] = { 1, TD, SEN(syncfs), "syncfs" }, [374] = { 4, TN, SEN(sendmmsg), "sendmmsg" }, [375] = { 2, TD, SEN(setns), "setns" }, @@ -394,7 +394,7 @@ [384] = { 3, 0, SEN(getrandom), "getrandom" }, [385] = { 2, TD, SEN(memfd_create), "memfd_create" }, [386] = { 3, TD, SEN(bpf), "bpf" }, -[387] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat" }, +[387] = { 5, TD|TF|TP|TSD|SE|SI, SEN(execveat), "execveat" }, [388] = { 1, TD, SEN(userfaultfd), "userfaultfd" }, [389] = { 2, 0, SEN(membarrier), "membarrier" }, [390] = { 3, TM, SEN(mlock2), "mlock2" }, @@ -404,36 +404,14 @@ [394] = { 4, TM|SI, SEN(pkey_mprotect), "pkey_mprotect" }, [395] = { 2, 0, SEN(pkey_alloc), "pkey_alloc" }, [396] = { 1, 0, SEN(pkey_free), "pkey_free" }, -[397] = { 5, TD|TF|TSTA, SEN(statx), "statx" }, +[397] = { 5, TD|TF|TFST|TSTA,SEN(statx), "statx" }, [398] = { 4, 0, SEN(rseq), "rseq" }, [399] = { 6, 0, SEN(io_pgetevents_time32), "io_pgetevents" }, [400] = { 4, TM, SEN(migrate_pages), "migrate_pages" }, [401] = { 5, TD, SEN(kexec_file_load), "kexec_file_load" }, /* [402] - unused */ -[403] = { 2, 0, SEN(clock_gettime64), "clock_gettime64" }, -[404] = { 2, 0, SEN(clock_settime64), "clock_settime64" }, -[405] = { 2, 0, SEN(clock_adjtime64), "clock_adjtime64" }, -[406] = { 2, 0, SEN(clock_getres_time64), "clock_getres_time64" }, -[407] = { 4, 0, SEN(clock_nanosleep_time64), "clock_nanosleep_time64"}, -[408] = { 2, 0, SEN(timer_gettime64), "timer_gettime64" }, -[409] = { 4, 0, SEN(timer_settime64), "timer_settime64" }, -[410] = { 2, TD, SEN(timerfd_gettime64), "timerfd_gettime64" }, -[411] = { 4, TD, SEN(timerfd_settime64), "timerfd_settime64" }, -[412] = { 4, TD|TF, SEN(utimensat_time64), "utimensat_time64" }, -[413] = { 6, TD, SEN(pselect6_time64), "pselect6_time64" }, -[414] = { 5, TD, SEN(ppoll_time64), "ppoll_time64" }, -[416] = { 6, 0, SEN(io_pgetevents_time64), "io_pgetevents_time64" }, -[417] = { 5, TN, SEN(recvmmsg_time64), "recvmmsg_time64" }, -[418] = { 5, TD, SEN(mq_timedsend_time64), "mq_timedsend_time64" }, -[419] = { 5, TD, SEN(mq_timedreceive_time64), "mq_timedreceive_time64"}, -[420] = { 4, TI, SEN(semtimedop_time64), "semtimedop_time64" }, -[421] = { 4, TS, SEN(rt_sigtimedwait_time64), "rt_sigtimedwait_time64"}, -[422] = { 6, 0, SEN(futex_time64), "futex_time64" }, -[423] = { 2, 0, SEN(sched_rr_get_interval_time64), "sched_rr_get_interval_time64" }, -[424] = { 4, TD|TS, SEN(pidfd_send_signal), "pidfd_send_signal" }, -[425] = { 2, TD, SEN(io_uring_setup), "io_uring_setup" }, -[426] = { 6, TD|TS, SEN(io_uring_enter), "io_uring_enter" }, -[427] = { 4, TD|TM, SEN(io_uring_register), "io_uring_register" }, +#include "syscallent-common-32.h" +#include "syscallent-common.h" #ifdef __ARM_EABI__ # define ARM_FIRST_SHUFFLED_SYSCALL 500 diff --git a/linux/avr32/set_scno.c b/linux/avr32/set_scno.c index da218f4a..77dd9477 100644 --- a/linux/avr32/set_scno.c +++ b/linux/avr32/set_scno.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -8,6 +8,8 @@ static int arch_set_scno(struct tcb *tcp, kernel_ulong_t scno) { + if (ptrace_syscall_info_is_valid() && get_regs(tcp) < 0) + return -1; avr32_regs.r8 = scno; return set_regs(tcp->pid); } diff --git a/linux/avr32/syscallent.h b/linux/avr32/syscallent.h index 81d18d6b..491ff8e9 100644 --- a/linux/avr32/syscallent.h +++ b/linux/avr32/syscallent.h @@ -1,6 +1,6 @@ /* * Copyright (c) 2004-2009 Atmel Corporation - * Copyright (c) 2009-2019 The strace developers. + * Copyright (c) 2009-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -17,9 +17,9 @@ [ 8] = { 2, TD|TF, SEN(creat), "creat" }, [ 9] = { 2, TF, SEN(link), "link" }, [ 10] = { 1, TF, SEN(unlink), "unlink" }, -[ 11] = { 3, TF|TP|SE|SI, SEN(execve), "execve" }, +[ 11] = { 3, TF|TP|TSD|SE|SI, SEN(execve), "execve" }, [ 12] = { 1, TF, SEN(chdir), "chdir" }, -[ 13] = { 1, 0, SEN(time), "time" }, +[ 13] = { 1, TCL, SEN(time), "time" }, [ 14] = { 3, TF, SEN(mknod), "mknod" }, [ 15] = { 2, TF, SEN(chmod), "chmod" }, [ 16] = { 3, TF, SEN(chown), "chown" }, @@ -29,8 +29,8 @@ [ 20] = { 0, PU|NF, SEN(getpid), "getpid" }, [ 21] = { 5, TF, SEN(mount), "mount" }, [ 22] = { 1, TF, SEN(umount2), "umount2" }, -[ 23] = { 1, 0, SEN(setuid), "setuid" }, -[ 24] = { 0, PU|NF, SEN(getuid), "getuid" }, +[ 23] = { 1, TC, SEN(setuid), "setuid" }, +[ 24] = { 0, TC|PU|NF, SEN(getuid), "getuid" }, [ 25] = { 1, 0, SEN(stime), "stime" }, [ 26] = { 4, 0, SEN(ptrace), "ptrace" }, [ 27] = { 1, 0, SEN(alarm), "alarm" }, @@ -43,7 +43,7 @@ [ 34] = { 1, TF, SEN(chroot), "chroot" }, [ 35] = { 0, 0, SEN(sync), "sync" }, [ 36] = { 1, TD, SEN(fsync), "fsync" }, -[ 37] = { 2, TS, SEN(kill), "kill" }, +[ 37] = { 2, TS|TP, SEN(kill), "kill" }, [ 38] = { 2, TF, SEN(rename), "rename" }, [ 39] = { 2, TF, SEN(mkdir), "mkdir" }, [ 40] = { 1, TF, SEN(rmdir), "rmdir" }, @@ -52,22 +52,22 @@ [ 43] = { 1, 0, SEN(times), "times" }, [ 44] = { 5, TP, SEN(clone), "clone" }, [ 45] = { 1, TM|SI, SEN(brk), "brk" }, -[ 46] = { 1, 0, SEN(setgid), "setgid" }, -[ 47] = { 0, PU|NF, SEN(getgid), "getgid" }, +[ 46] = { 1, TC, SEN(setgid), "setgid" }, +[ 47] = { 0, TC|PU|NF, SEN(getgid), "getgid" }, [ 48] = { 2, TF, SEN(getcwd), "getcwd" }, -[ 49] = { 0, PU|NF, SEN(geteuid), "geteuid" }, -[ 50] = { 0, PU|NF, SEN(getegid), "getegid" }, +[ 49] = { 0, TC|PU|NF, SEN(geteuid), "geteuid" }, +[ 50] = { 0, TC|PU|NF, SEN(getegid), "getegid" }, [ 51] = { 1, TF, SEN(acct), "acct" }, -[ 52] = { 1, NF, SEN(setfsuid), "setfsuid" }, -[ 53] = { 1, NF, SEN(setfsgid), "setfsgid" }, +[ 52] = { 1, TC|NF, SEN(setfsuid), "setfsuid" }, +[ 53] = { 1, TC|NF, SEN(setfsgid), "setfsgid" }, [ 54] = { 3, TD, SEN(ioctl), "ioctl" }, [ 55] = { 3, TD, SEN(fcntl), "fcntl" }, [ 56] = { 2, 0, SEN(setpgid), "setpgid" }, [ 57] = { 5, TM|SI, SEN(mremap), "mremap" }, -[ 58] = { 3, 0, SEN(setresuid), "setresuid" }, -[ 59] = { 3, 0, SEN(getresuid), "getresuid" }, -[ 60] = { 2, 0, SEN(setreuid), "setreuid" }, -[ 61] = { 2, 0, SEN(setregid), "setregid" }, +[ 58] = { 3, TC, SEN(setresuid), "setresuid" }, +[ 59] = { 3, TC, SEN(getresuid), "getresuid" }, +[ 60] = { 2, TC, SEN(setreuid), "setreuid" }, +[ 61] = { 2, TC, SEN(setregid), "setregid" }, [ 62] = { 2, TSFA, SEN(ustat), "ustat" }, [ 63] = { 2, TD, SEN(dup2), "dup2" }, [ 64] = { 0, PU|NF, SEN(getppid), "getppid" }, @@ -78,16 +78,16 @@ [ 69] = { 4, TS, SEN(rt_sigprocmask), "rt_sigprocmask" }, [ 70] = { 2, TS, SEN(rt_sigpending), "rt_sigpending" }, [ 71] = { 4, TS, SEN(rt_sigtimedwait_time32), "rt_sigtimedwait" }, -[ 72] = { 3, TS, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, +[ 72] = { 3, TS|TP, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, [ 73] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" }, [ 74] = { 2, 0, SEN(sethostname), "sethostname" }, [ 75] = { 2, 0, SEN(setrlimit), "setrlimit" }, [ 76] = { 2, 0, SEN(getrlimit), "getrlimit" }, [ 77] = { 2, 0, SEN(getrusage), "getrusage" }, -[ 78] = { 2, 0, SEN(gettimeofday), "gettimeofday" }, -[ 79] = { 2, 0, SEN(settimeofday), "settimeofday" }, -[ 80] = { 2, 0, SEN(getgroups), "getgroups" }, -[ 81] = { 2, 0, SEN(setgroups), "setgroups" }, +[ 78] = { 2, TCL, SEN(gettimeofday), "gettimeofday" }, +[ 79] = { 2, TCL, SEN(settimeofday), "settimeofday" }, +[ 80] = { 2, TC, SEN(getgroups), "getgroups" }, +[ 81] = { 2, TC, SEN(setgroups), "setgroups" }, [ 82] = { 5, TD, SEN(select), "select" }, [ 83] = { 2, TF, SEN(symlink), "symlink" }, [ 84] = { 1, TD, SEN(fchdir), "fchdir" }, @@ -114,11 +114,11 @@ [105] = { 2, 0, SEN(getitimer), "getitimer" }, [106] = { 1, TF, SEN(swapoff), "swapoff" }, [107] = { 1, 0, SEN(sysinfo), "sysinfo" }, -[108] = { 6, TI, SEN(ipc), "ipc" }, +[108] = { 6, TI|TSD, SEN(ipc), "ipc" }, [109] = { 4, TD|TN, SEN(sendfile), "sendfile" }, [110] = { 2, 0, SEN(setdomainname), "setdomainname" }, [111] = { 1, 0, SEN(uname), "uname" }, -[112] = { 1, 0, SEN(adjtimex32), "adjtimex" }, +[112] = { 1, TCL, SEN(adjtimex32), "adjtimex" }, [113] = { 3, TM|SI, SEN(mprotect), "mprotect" }, [114] = { 0, TP, SEN(vfork), "vfork" }, [115] = { 3, 0, SEN(init_module), "init_module" }, @@ -152,9 +152,9 @@ [143] = { 2, 0, SEN(nanosleep_time32), "nanosleep" }, [144] = { 3, TD, SEN(poll_time32), "poll" }, [145] = { 3, 0, SEN(nfsservctl), "nfsservctl" }, -[146] = { 3, 0, SEN(setresgid), "setresgid" }, -[147] = { 3, 0, SEN(getresgid), "getresgid" }, -[148] = { 5, 0, SEN(prctl), "prctl" }, +[146] = { 3, TC, SEN(setresgid), "setresgid" }, +[147] = { 3, TC, SEN(getresgid), "getresgid" }, +[148] = { 5, TC, SEN(prctl), "prctl" }, [149] = { 3, TN, SEN(socket), "socket" }, [150] = { 3, TN, SEN(bind), "bind" }, [151] = { 3, TN, SEN(connect), "connect" }, @@ -196,13 +196,13 @@ [187] = { 2, TF, SEN(removexattr), "removexattr" }, [188] = { 2, TF, SEN(removexattr), "lremovexattr" }, [189] = { 2, TD, SEN(fremovexattr), "fremovexattr" }, -[190] = { 2, TS, SEN(kill), "tkill" }, +[190] = { 2, TS|TP, SEN(tkill), "tkill" }, [191] = { 4, TD|TN, SEN(sendfile64), "sendfile64" }, [192] = { 6, 0, SEN(futex_time32), "futex" }, [193] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" }, [194] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" }, -[195] = { 2, 0, SEN(capget), "capget" }, -[196] = { 2, 0, SEN(capset), "capset" }, +[195] = { 2, TC, SEN(capget), "capget" }, +[196] = { 2, TC, 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_time32), "io_getevents" }, @@ -221,13 +221,13 @@ [212] = { 2, 0, SEN(timer_gettime32), "timer_gettime" }, [213] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" }, [214] = { 1, 0, SEN(timer_delete), "timer_delete" }, -[215] = { 2, 0, SEN(clock_settime32), "clock_settime" }, -[216] = { 2, 0, SEN(clock_gettime32), "clock_gettime" }, -[217] = { 2, 0, SEN(clock_getres_time32), "clock_getres" }, +[215] = { 2, TCL, SEN(clock_settime32), "clock_settime" }, +[216] = { 2, TCL, SEN(clock_gettime32), "clock_gettime" }, +[217] = { 2, TCL, SEN(clock_getres_time32), "clock_getres" }, [218] = { 4, 0, SEN(clock_nanosleep_time32), "clock_nanosleep" }, [219] = { 3, TF|TSF|TSFA, SEN(statfs64), "statfs64" }, [220] = { 3, TD|TFSF|TSFA, SEN(fstatfs64), "fstatfs64" }, -[221] = { 3, TS, SEN(tgkill), "tgkill" }, +[221] = { 3, TS|TP, SEN(tgkill), "tgkill" }, [222] = { }, [223] = { 2, TF, SEN(utimes), "utimes" }, [224] = { 6, TD, SEN(fadvise64_64), "fadvise64_64" }, @@ -264,7 +264,7 @@ [255] = { 3, TD|TF, SEN(faccessat), "faccessat" }, [256] = { 6, TD, SEN(pselect6_time32), "pselect6" }, [257] = { 5, TD, SEN(ppoll_time32), "ppoll" }, -[258] = { 1, TP, SEN(unshare), "unshare" }, +[258] = { 1, 0, SEN(unshare), "unshare" }, [259] = { 2, 0, SEN(set_robust_list), "set_robust_list" }, [260] = { 3, 0, SEN(get_robust_list), "get_robust_list" }, [261] = { 6, TD, SEN(splice), "splice" }, @@ -312,7 +312,7 @@ [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_adjtime32), "clock_adjtime" }, +[306] = { 2, TCL, SEN(clock_adjtime32), "clock_adjtime" }, [307] = { 1, TD, SEN(syncfs), "syncfs" }, [308] = { 4, TN, SEN(sendmmsg), "sendmmsg" }, [309] = { 6, 0, SEN(process_vm_readv), "process_vm_readv" }, @@ -326,7 +326,7 @@ [317] = { 3, 0, SEN(getrandom), "getrandom" }, [318] = { 2, TD, SEN(memfd_create), "memfd_create" }, [319] = { 3, TD, SEN(bpf), "bpf" }, -[320] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat" }, +[320] = { 5, TD|TF|TP|TSD|SE|SI, SEN(execveat), "execveat" }, [321] = { 4, TN, SEN(accept4), "accept4" }, [322] = { 1, TD, SEN(userfaultfd), "userfaultfd" }, [323] = { 2, 0, SEN(membarrier), "membarrier" }, diff --git a/linux/bfin/syscallent.h b/linux/bfin/syscallent.h index 8a3209d1..53d5c235 100644 --- a/linux/bfin/syscallent.h +++ b/linux/bfin/syscallent.h @@ -1,7 +1,7 @@ /* * Copyright (c) 1993 Branko Lankester * Copyright (c) 1993, 1994, 1995 Rick Sladkey - * Copyright (c) 1995-2019 The strace developers. + * Copyright (c) 1995-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -18,9 +18,9 @@ [ 8] = { 2, TD|TF, SEN(creat), "creat" }, [ 9] = { 2, TF, SEN(link), "link" }, [ 10] = { 1, TF, SEN(unlink), "unlink" }, -[ 11] = { 3, TF|TP|SE|SI, SEN(execve), "execve" }, +[ 11] = { 3, TF|TP|TSD|SE|SI, SEN(execve), "execve" }, [ 12] = { 1, TF, SEN(chdir), "chdir" }, -[ 13] = { 1, 0, SEN(time), "time" }, +[ 13] = { 1, TCL, SEN(time), "time" }, [ 14] = { 3, TF, SEN(mknod), "mknod" }, [ 15] = { 2, TF, SEN(chmod), "chmod" }, [ 16] = { 3, TF, SEN(chown16), "chown" }, @@ -30,8 +30,8 @@ [ 20] = { 0, PU|NF, SEN(getpid), "getpid" }, [ 21] = { 5, TF, SEN(mount), "mount" }, [ 22] = { 1, TF, SEN(umount), "umount" }, -[ 23] = { 1, 0, SEN(setuid16), "setuid" }, -[ 24] = { 0, PU|NF, SEN(getuid16), "getuid" }, +[ 23] = { 1, TC, SEN(setuid16), "setuid" }, +[ 24] = { 0, TC|PU|NF, SEN(getuid16), "getuid" }, [ 25] = { 1, 0, SEN(stime), "stime" }, [ 26] = { 4, 0, SEN(ptrace), "ptrace" }, [ 27] = { 1, 0, SEN(alarm), "alarm" }, @@ -44,7 +44,7 @@ [ 34] = { 1, 0, SEN(nice), "nice" }, [ 35] = { 0, 0, SEN(ftime), "ftime" }, [ 36] = { 0, 0, SEN(sync), "sync" }, -[ 37] = { 2, TS, SEN(kill), "kill" }, +[ 37] = { 2, TS|TP, SEN(kill), "kill" }, [ 38] = { 2, TF, SEN(rename), "rename" }, [ 39] = { 2, TF, SEN(mkdir), "mkdir" }, [ 40] = { 1, TF, SEN(rmdir), "rmdir" }, @@ -53,11 +53,11 @@ [ 43] = { 1, 0, SEN(times), "times" }, [ 44] = { 0, 0, SEN(prof), "prof" }, [ 45] = { 1, TM|SI, SEN(brk), "brk" }, -[ 46] = { 1, 0, SEN(setgid16), "setgid" }, -[ 47] = { 0, PU|NF, SEN(getgid16), "getgid" }, +[ 46] = { 1, TC, SEN(setgid16), "setgid" }, +[ 47] = { 0, TC|PU|NF, SEN(getgid16), "getgid" }, [ 48] = { 2, TS, SEN(signal), "signal" }, -[ 49] = { 0, PU|NF, SEN(geteuid16), "geteuid" }, -[ 50] = { 0, PU|NF, SEN(getegid16), "getegid" }, +[ 49] = { 0, TC|PU|NF, SEN(geteuid16), "geteuid" }, +[ 50] = { 0, TC|PU|NF, SEN(getegid16), "getegid" }, [ 51] = { 1, TF, SEN(acct), "acct" }, [ 52] = { 2, TF, SEN(umount2), "umount2" }, [ 53] = { 0, 0, SEN(lock), "lock" }, @@ -77,18 +77,18 @@ [ 67] = { 3, TS, SEN(sigaction), "sigaction" }, [ 68] = { 0, TS, SEN(sgetmask), "sgetmask" }, [ 69] = { 1, TS, SEN(ssetmask), "ssetmask" }, -[ 70] = { 2, 0, SEN(setreuid16), "setreuid" }, -[ 71] = { 2, 0, SEN(setregid16), "setregid" }, +[ 70] = { 2, TC, SEN(setreuid16), "setreuid" }, +[ 71] = { 2, TC, SEN(setregid16), "setregid" }, [ 72] = { 3, TS, SEN(sigsuspend), "sigsuspend" }, [ 73] = { 1, TS, SEN(sigpending), "sigpending" }, [ 74] = { 2, 0, SEN(sethostname), "sethostname" }, [ 75] = { 2, 0, SEN(setrlimit), "setrlimit" }, [ 76] = { 2, 0, SEN(getrlimit), "old_getrlimit" }, [ 77] = { 2, 0, SEN(getrusage), "getrusage" }, -[ 78] = { 2, 0, SEN(gettimeofday), "gettimeofday" }, -[ 79] = { 2, 0, SEN(settimeofday), "settimeofday" }, -[ 80] = { 2, 0, SEN(getgroups16), "getgroups" }, -[ 81] = { 2, 0, SEN(setgroups16), "setgroups" }, +[ 78] = { 2, TCL, SEN(gettimeofday), "gettimeofday" }, +[ 79] = { 2, TCL, SEN(settimeofday), "settimeofday" }, +[ 80] = { 2, TC, SEN(getgroups16), "getgroups" }, +[ 81] = { 2, TC, SEN(setgroups16), "setgroups" }, [ 82] = { 1, TD, SEN(oldselect), "select" }, [ 83] = { 2, TF, SEN(symlink), "symlink" }, [ 84] = { 2, TF|TLST|TSTA, SEN(oldlstat), "oldlstat" }, @@ -109,7 +109,7 @@ [ 99] = { 2, TF|TSF|TSFA, SEN(statfs), "statfs" }, [100] = { 2, TD|TFSF|TSFA, SEN(fstatfs), "fstatfs" }, [101] = { 3, 0, SEN(ioperm), "ioperm" }, -[102] = { 2, TD, SEN(socketcall), "socketcall" }, +[102] = { 2, TD|TSD, SEN(socketcall), "socketcall" }, [103] = { 3, 0, SEN(syslog), "syslog" }, [104] = { 3, 0, SEN(setitimer), "setitimer" }, [105] = { 2, 0, SEN(getitimer), "getitimer" }, @@ -124,14 +124,14 @@ [114] = { 4, TP, SEN(wait4), "wait4" }, [115] = { 1, TF, SEN(swapoff), "swapoff" }, [116] = { 1, 0, SEN(sysinfo), "sysinfo" }, -[117] = { 6, TI, SEN(ipc), "ipc" }, +[117] = { 6, TI|TSD, SEN(ipc), "ipc" }, [118] = { 1, TD, SEN(fsync), "fsync" }, [119] = { 0, TS, SEN(sigreturn), "sigreturn" }, [120] = { 5, TP, SEN(clone), "clone" }, [121] = { 2, 0, SEN(setdomainname), "setdomainname" }, [122] = { 1, 0, SEN(uname), "uname" }, [123] = { 3, 0, SEN(modify_ldt), "modify_ldt" }, -[124] = { 1, 0, SEN(adjtimex32), "adjtimex" }, +[124] = { 1, TCL, SEN(adjtimex32), "adjtimex" }, [125] = { 3, TM|SI, SEN(mprotect), "mprotect" }, [126] = { 3, TS, SEN(sigprocmask), "sigprocmask" }, [127] = { 2, 0, SEN(create_module), "create_module" }, @@ -145,8 +145,8 @@ [135] = { 3, 0, SEN(sysfs), "sysfs" }, [136] = { 1, NF, SEN(personality), "personality" }, [137] = { 5, 0, SEN(afs_syscall), "afs_syscall" }, -[138] = { 1, NF, SEN(setfsuid16), "setfsuid" }, -[139] = { 1, NF, SEN(setfsgid16), "setfsgid" }, +[138] = { 1, TC|NF, SEN(setfsuid16), "setfsuid" }, +[139] = { 1, TC|NF, SEN(setfsgid16), "setfsgid" }, [140] = { 5, TD, SEN(llseek), "_llseek" }, [141] = { 3, TD, SEN(getdents), "getdents" }, [142] = { 5, TD, SEN(select), "_newselect" }, @@ -171,28 +171,28 @@ [161] = { 2, 0, SEN(sched_rr_get_interval_time32),"sched_rr_get_interval"}, [162] = { 2, 0, SEN(nanosleep_time32), "nanosleep" }, [163] = { 5, TM|SI, SEN(mremap), "mremap" }, -[164] = { 3, 0, SEN(setresuid16), "setresuid" }, -[165] = { 3, 0, SEN(getresuid16), "getresuid" }, +[164] = { 3, TC, SEN(setresuid16), "setresuid" }, +[165] = { 3, TC, SEN(getresuid16), "getresuid" }, [166] = { 5, 0, SEN(vm86), "vm86" }, [167] = { 5, 0, SEN(query_module), "query_module" }, [168] = { 3, TD, SEN(poll_time32), "poll" }, [169] = { 3, 0, SEN(nfsservctl), "nfsservctl" }, -[170] = { 3, 0, SEN(setresgid16), "setresgid" }, -[171] = { 3, 0, SEN(getresgid16), "getresgid" }, -[172] = { 5, 0, SEN(prctl), "prctl" }, +[170] = { 3, TC, SEN(setresgid16), "setresgid" }, +[171] = { 3, TC, SEN(getresgid16), "getresgid" }, +[172] = { 5, TC, SEN(prctl), "prctl" }, [173] = { 0, TS, SEN(rt_sigreturn), "rt_sigreturn" }, [174] = { 4, TS, SEN(rt_sigaction), "rt_sigaction" }, [175] = { 4, TS, SEN(rt_sigprocmask), "rt_sigprocmask" }, [176] = { 2, TS, SEN(rt_sigpending), "rt_sigpending" }, [177] = { 4, TS, SEN(rt_sigtimedwait_time32), "rt_sigtimedwait" }, -[178] = { 3, TS, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, +[178] = { 3, TS|TP, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, [179] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" }, [180] = { 5, TD, SEN(pread), "pread" }, [181] = { 5, TD, SEN(pwrite), "pwrite" }, [182] = { 3, TF, SEN(chown16), "lchown" }, [183] = { 2, TF, SEN(getcwd), "getcwd" }, -[184] = { 2, 0, SEN(capget), "capget" }, -[185] = { 2, 0, SEN(capset), "capset" }, +[184] = { 2, TC, SEN(capget), "capget" }, +[185] = { 2, TC, SEN(capset), "capset" }, [186] = { 2, TS, SEN(sigaltstack), "sigaltstack" }, [187] = { 4, TD|TN, SEN(sendfile), "sendfile" }, [188] = { 5, TN, SEN(getpmsg), "getpmsg" }, @@ -206,24 +206,24 @@ [196] = { 2, TF|TLST|TSTA, SEN(lstat64), "lstat64" }, [197] = { 2, TD|TFST|TSTA, SEN(fstat64), "fstat64" }, [198] = { 3, TF, SEN(chown), "chown32" }, -[199] = { 0, PU|NF, SEN(getuid), "getuid32" }, -[200] = { 0, PU|NF, SEN(getgid), "getgid32" }, -[201] = { 0, PU|NF, SEN(geteuid), "geteuid32" }, -[202] = { 0, PU|NF, SEN(geteuid), "getegid32" }, -[203] = { 2, 0, SEN(setreuid), "setreuid32" }, -[204] = { 2, 0, SEN(setregid), "setregid32" }, -[205] = { 2, 0, SEN(getgroups), "getgroups32" }, -[206] = { 2, 0, SEN(setgroups), "setgroups32" }, +[199] = { 0, TC|PU|NF, SEN(getuid), "getuid32" }, +[200] = { 0, TC|PU|NF, SEN(getgid), "getgid32" }, +[201] = { 0, TC|PU|NF, SEN(geteuid), "geteuid32" }, +[202] = { 0, TC|PU|NF, SEN(geteuid), "getegid32" }, +[203] = { 2, TC, SEN(setreuid), "setreuid32" }, +[204] = { 2, TC, SEN(setregid), "setregid32" }, +[205] = { 2, TC, SEN(getgroups), "getgroups32" }, +[206] = { 2, TC, SEN(setgroups), "setgroups32" }, [207] = { 3, TD, SEN(fchown), "fchown32" }, -[208] = { 3, 0, SEN(setresuid), "setresuid32" }, -[209] = { 3, 0, SEN(getresuid), "getresuid32" }, -[210] = { 3, 0, SEN(setresgid), "setresgid32" }, -[211] = { 3, 0, SEN(getresgid), "getresgid32" }, +[208] = { 3, TC, SEN(setresuid), "setresuid32" }, +[209] = { 3, TC, SEN(getresuid), "getresuid32" }, +[210] = { 3, TC, SEN(setresgid), "setresgid32" }, +[211] = { 3, TC, SEN(getresgid), "getresgid32" }, [212] = { 3, TF, SEN(chown), "lchown32" }, -[213] = { 1, 0, SEN(setuid), "setuid32" }, -[214] = { 1, 0, SEN(setgid), "setgid32" }, -[215] = { 1, NF, SEN(setfsuid), "setfsuid32" }, -[216] = { 1, NF, SEN(setfsgid), "setfsgid32" }, +[213] = { 1, TC, SEN(setuid), "setuid32" }, +[214] = { 1, TC, SEN(setgid), "setgid32" }, +[215] = { 1, TC|NF, SEN(setfsuid), "setfsuid32" }, +[216] = { 1, TC|NF, SEN(setfsgid), "setfsgid32" }, [217] = { 2, TF, SEN(pivotroot), "pivot_root" }, [218] = { 3, TM, SEN(mincore), "mincore" }, [219] = { 3, TM, SEN(madvise), "madvise" }, @@ -244,7 +244,7 @@ [235] = { 2, TF, SEN(removexattr), "removexattr" }, [236] = { 2, TF, SEN(removexattr), "lremovexattr" }, [237] = { 2, TD, SEN(fremovexattr), "fremovexattr" }, -[238] = { 2, TS, SEN(kill), "tkill" }, +[238] = { 2, TS|TP, SEN(tkill), "tkill" }, [239] = { 4, TD|TN, SEN(sendfile64), "sendfile64" }, [240] = { 6, 0, SEN(futex_time32), "futex" }, [241] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" }, @@ -271,13 +271,13 @@ [262] = { 2, 0, SEN(timer_gettime32), "timer_gettime" }, [263] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" }, [264] = { 1, 0, SEN(timer_delete), "timer_delete" }, -[265] = { 2, 0, SEN(clock_settime32), "clock_settime" }, -[266] = { 2, 0, SEN(clock_gettime32), "clock_gettime" }, -[267] = { 2, 0, SEN(clock_getres_time32), "clock_getres" }, +[265] = { 2, TCL, SEN(clock_settime32), "clock_settime" }, +[266] = { 2, TCL, SEN(clock_gettime32), "clock_gettime" }, +[267] = { 2, TCL, SEN(clock_getres_time32), "clock_getres" }, [268] = { 4, 0, SEN(clock_nanosleep_time32), "clock_nanosleep" }, [269] = { 3, TF|TSF|TSFA, SEN(statfs64), "statfs64" }, [270] = { 3, TD|TFSF|TSFA, SEN(fstatfs64), "fstatfs64" }, -[271] = { 3, TS, SEN(tgkill), "tgkill" }, +[271] = { 3, TS|TP, SEN(tgkill), "tgkill" }, [272] = { 2, TF, SEN(utimes), "utimes" }, [273] = { 6, TD, SEN(fadvise64_64), "fadvise64_64" }, [274] = { 5, 0, SEN(vserver), "vserver" }, @@ -316,7 +316,7 @@ [307] = { 3, TD|TF, SEN(faccessat), "faccessat" }, [308] = { 6, TD, SEN(pselect6_time32), "pselect6" }, [309] = { 5, TD, SEN(ppoll_time32), "ppoll" }, -[310] = { 1, TP, SEN(unshare), "unshare" }, +[310] = { 1, 0, SEN(unshare), "unshare" }, [311] = { 2, 0, SEN(sram_alloc), "sram_alloc" }, [312] = { 1, 0, SEN(printargs), "sram_free" }, [313] = { 3, 0, SEN(printargs), "dma_memcpy" }, @@ -383,7 +383,7 @@ [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_adjtime32), "clock_adjtime" }, +[377] = { 2, TCL, SEN(clock_adjtime32), "clock_adjtime" }, [378] = { 1, TD, SEN(syncfs), "syncfs" }, [379] = { 2, TD, SEN(setns), "setns" }, [380] = { 4, TN, SEN(sendmmsg), "sendmmsg" }, @@ -398,4 +398,4 @@ [389] = { 3, 0, SEN(getrandom), "getrandom" }, [390] = { 2, TD, SEN(memfd_create), "memfd_create" }, [391] = { 3, TD, SEN(bpf), "bpf" }, -[392] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat" }, +[392] = { 5, TD|TF|TP|TSD|SE|SI, SEN(execveat), "execveat" }, diff --git a/linux/csky/get_scno.c b/linux/csky/get_scno.c index 9efb2020..bfc8619f 100644 --- a/linux/csky/get_scno.c +++ b/linux/csky/get_scno.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2019 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -12,7 +12,7 @@ arch_get_scno(struct tcb *tcp) #if defined(__CSKYABIV2__) tcp->scno = csky_regs.regs[3]; #else - tcp->scno = csky_regs.r1; + tcp->scno = csky_regs.a1; #endif return 1; } diff --git a/linux/csky/raw_syscall.h b/linux/csky/raw_syscall.h index aad0abdc..0ffb83ca 100644 --- a/linux/csky/raw_syscall.h +++ b/linux/csky/raw_syscall.h @@ -6,18 +6,18 @@ */ #ifndef STRACE_RAW_SYSCALL_H -#define STRACE_RAW_SYSCALL_H +# define STRACE_RAW_SYSCALL_H # include "kernel_types.h" static inline kernel_ulong_t raw_syscall_0(const kernel_ulong_t nr, kernel_ulong_t *err) { -#if defined(__CSKYABIV2__) +# if defined(__CSKYABIV2__) register kernel_ulong_t scno __asm__("r7") = nr; -#else +# else register kernel_ulong_t scno __asm__("r1") = nr; -#endif +# endif register kernel_ulong_t a0 __asm__("a0"); asm volatile("trap 0" : "+r"(scno), "=r"(a0) diff --git a/linux/csky/set_scno.c b/linux/csky/set_scno.c index 1f043caf..88870e52 100644 --- a/linux/csky/set_scno.c +++ b/linux/csky/set_scno.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -8,10 +8,12 @@ static int arch_set_scno(struct tcb *tcp, kernel_ulong_t scno) { + if (ptrace_syscall_info_is_valid() && get_regs(tcp) < 0) + return -1; #if defined(__CSKYABIV2__) csky_regs.regs[3] = scno; #else - csky_regs.r1 = scno; + csky_regs.a1 = scno; #endif return set_regs(tcp->pid); } diff --git a/linux/dummy.h b/linux/dummy.h index 15621bd5..61047190 100644 --- a/linux/dummy.h +++ b/linux/dummy.h @@ -1,7 +1,7 @@ /* * Copyright (c) 1993 Branko Lankester * Copyright (c) 1993, 1994, 1995 Rick Sladkey - * Copyright (c) 1995-2019 The strace developers. + * Copyright (c) 1995-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -53,6 +53,7 @@ # define sys_getgid sys_getuid # define sys_getgid16 sys_getuid16 # define sys_getpeername sys_getsockname +# define sys_getppid sys_getpid # define sys_getresgid sys_getresuid # define sys_getresgid16 sys_getresuid16 # define sys_lstat sys_stat @@ -87,12 +88,7 @@ # define sys_vfork sys_fork /* printargs does the right thing */ -# define sys_getpgrp printargs -# define sys_getpid printargs -# define sys_getppid printargs -# define sys_gettid printargs # define sys_idle printargs -# define sys_inotify_init printargs # define sys_munlockall printargs # define sys_pause printargs # define sys_printargs printargs @@ -109,10 +105,7 @@ /* printargs_d does the right thing */ # define sys_exit printargs_d -# define sys_getpgid printargs_d -# define sys_getsid printargs_d # define sys_nice printargs_d -# define sys_setpgid printargs_d # define sys_setpgrp printargs_d # define sys_timer_delete printargs_d # define sys_timer_getoverrun printargs_d diff --git a/linux/hppa/arch_regs.c b/linux/hppa/arch_regs.c index 6d427e5c..ec09f9c7 100644 --- a/linux/hppa/arch_regs.c +++ b/linux/hppa/arch_regs.c @@ -1,14 +1,11 @@ /* - * Copyright (c) 2015-2019 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ -static unsigned long hppa_r28; - -#define PT_GR20 offsetof(struct pt_regs, gr[20]) -#define PT_GR28 offsetof(struct pt_regs, gr[28]) - -#define ARCH_PC_PEEK_ADDR offsetof(struct pt_regs, iaoq[0]) -#define ARCH_SP_PEEK_ADDR offsetof(struct pt_regs, gr[30]) +static struct user_regs_struct hppa_regs; +#define ARCH_REGS_FOR_GETREGS hppa_regs +#define ARCH_PC_REG hppa_regs.iaoq[0] +#define ARCH_SP_REG hppa_regs.gr[30] diff --git a/linux/hppa/get_error.c b/linux/hppa/get_error.c index 0a2d5a86..a3721797 100644 --- a/linux/hppa/get_error.c +++ b/linux/hppa/get_error.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -10,10 +10,10 @@ static void arch_get_error(struct tcb *tcp, const bool check_errno) { - if (check_errno && is_negated_errno(hppa_r28)) { + if (check_errno && is_negated_errno(hppa_regs.gr[28])) { tcp->u_rval = -1; - tcp->u_error = -hppa_r28; + tcp->u_error = -hppa_regs.gr[28]; } else { - tcp->u_rval = hppa_r28; + tcp->u_rval = hppa_regs.gr[28]; } } diff --git a/linux/hppa/get_scno.c b/linux/hppa/get_scno.c index fe0fb5e3..d20c8011 100644 --- a/linux/hppa/get_scno.c +++ b/linux/hppa/get_scno.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -9,5 +9,6 @@ static int arch_get_scno(struct tcb *tcp) { - return upeek(tcp, PT_GR20, &tcp->scno) < 0 ? -1 : 1; + tcp->scno = hppa_regs.gr[20]; + return 1; } diff --git a/linux/hppa/get_syscall_args.c b/linux/hppa/get_syscall_args.c index 186533b8..7ed762fd 100644 --- a/linux/hppa/get_syscall_args.c +++ b/linux/hppa/get_syscall_args.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2019 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -9,11 +9,7 @@ static int arch_get_syscall_args(struct tcb *tcp) { - for (unsigned int i = 0; i < n_args(tcp); ++i) { - unsigned int addr = offsetof(struct pt_regs, gr[26 - i]); - - if (upeek(tcp, addr, &tcp->u_arg[i]) < 0) - return -1; - } + for (unsigned int i = 0; i < n_args(tcp); ++i) + tcp->u_arg[i] = hppa_regs.gr[26 - i]; return 1; } diff --git a/linux/hppa/get_syscall_result.c b/linux/hppa/get_syscall_result.c deleted file mode 100644 index af130b06..00000000 --- a/linux/hppa/get_syscall_result.c +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright (c) 2015-2018 The strace developers. - * All rights reserved. - * - * SPDX-License-Identifier: LGPL-2.1-or-later - */ - -static int -get_syscall_result_regs(struct tcb *tcp) -{ - return upeek(tcp, PT_GR28, &hppa_r28) < 0 ? -1 : 0; -} diff --git a/linux/hppa/set_error.c b/linux/hppa/set_error.c index 288d6f0a..a61c576d 100644 --- a/linux/hppa/set_error.c +++ b/linux/hppa/set_error.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -8,13 +8,13 @@ static int arch_set_error(struct tcb *tcp) { - hppa_r28 = -tcp->u_error; - return upoke(tcp, PT_GR28, hppa_r28); + hppa_regs.gr[28] = -tcp->u_error; + return set_regs(tcp->pid); } static int arch_set_success(struct tcb *tcp) { - hppa_r28 = tcp->u_rval; - return upoke(tcp, PT_GR28, hppa_r28); + hppa_regs.gr[28] = tcp->u_rval; + return set_regs(tcp->pid); } diff --git a/linux/hppa/set_scno.c b/linux/hppa/set_scno.c index 635e9b33..8553352c 100644 --- a/linux/hppa/set_scno.c +++ b/linux/hppa/set_scno.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -8,5 +8,8 @@ static int arch_set_scno(struct tcb *tcp, kernel_ulong_t scno) { - return upoke(tcp, PT_GR20, scno); + if (ptrace_syscall_info_is_valid() && get_regs(tcp) < 0) + return -1; + hppa_regs.gr[20] = scno; + return set_regs(tcp->pid); } diff --git a/linux/hppa/syscallent.h b/linux/hppa/syscallent.h index 72f15190..5521694f 100644 --- a/linux/hppa/syscallent.h +++ b/linux/hppa/syscallent.h @@ -1,6 +1,6 @@ /* * Copyright (c) 2001 Hewlett-Packard, Matthew Wilcox - * Copyright (c) 2001-2019 The strace developers. + * Copyright (c) 2001-2020 The strace developers. */ [ 0] = { 0, 0, SEN(restart_syscall), "restart_syscall" }, @@ -14,9 +14,9 @@ [ 8] = { 2, TD|TF, SEN(creat), "creat" }, [ 9] = { 2, TF, SEN(link), "link" }, [ 10] = { 1, TF, SEN(unlink), "unlink" }, -[ 11] = { 3, TF|TP|SE|SI, SEN(execve), "execve" }, +[ 11] = { 3, TF|TP|TSD|SE|SI, SEN(execve), "execve" }, [ 12] = { 1, TF, SEN(chdir), "chdir" }, -[ 13] = { 1, 0, SEN(time), "time" }, +[ 13] = { 1, TCL, SEN(time), "time" }, [ 14] = { 3, TF, SEN(mknod), "mknod" }, [ 15] = { 2, TF, SEN(chmod), "chmod" }, [ 16] = { 3, TF, SEN(chown), "lchown" }, @@ -26,8 +26,8 @@ [ 20] = { 0, PU|NF, SEN(getpid), "getpid" }, [ 21] = { 5, TF, SEN(mount), "mount" }, [ 22] = { 3, TN, SEN(bind), "bind" }, -[ 23] = { 1, 0, SEN(setuid), "setuid" }, -[ 24] = { 0, PU|NF, SEN(getuid), "getuid" }, +[ 23] = { 1, TC, SEN(setuid), "setuid" }, +[ 24] = { 0, TC|PU|NF, SEN(getuid), "getuid" }, [ 25] = { 1, 0, SEN(stime), "stime" }, [ 26] = { 4, 0, SEN(ptrace), "ptrace" }, [ 27] = { 1, 0, SEN(alarm), "alarm" }, @@ -40,7 +40,7 @@ [ 34] = { 1, 0, SEN(nice), "nice" }, [ 35] = { 3, TN, SEN(accept), "accept" }, [ 36] = { 0, 0, SEN(sync), "sync" }, -[ 37] = { 2, TS, SEN(kill), "kill" }, +[ 37] = { 2, TS|TP, SEN(kill), "kill" }, [ 38] = { 2, TF, SEN(rename), "rename" }, [ 39] = { 2, TF, SEN(mkdir), "mkdir" }, [ 40] = { 1, TF, SEN(rmdir), "rmdir" }, @@ -49,11 +49,11 @@ [ 43] = { 1, 0, SEN(times), "times" }, [ 44] = { 3, TN, SEN(getsockname), "getsockname" }, [ 45] = { 1, TM|SI, SEN(brk), "brk" }, -[ 46] = { 1, 0, SEN(setgid), "setgid" }, -[ 47] = { 0, PU|NF, SEN(getgid), "getgid" }, +[ 46] = { 1, TC, SEN(setgid), "setgid" }, +[ 47] = { 0, TC|PU|NF, SEN(getgid), "getgid" }, [ 48] = { 2, TS, SEN(signal), "signal" }, -[ 49] = { 0, PU|NF, SEN(geteuid), "geteuid" }, -[ 50] = { 0, PU|NF, SEN(getegid), "getegid" }, +[ 49] = { 0, TC|PU|NF, SEN(geteuid), "geteuid" }, +[ 50] = { 0, TC|PU|NF, SEN(getegid), "getegid" }, [ 51] = { 1, TF, SEN(acct), "acct" }, [ 52] = { 2, TF, SEN(umount2), "umount2" }, [ 53] = { 3, TN, SEN(getpeername), "getpeername" }, @@ -73,18 +73,18 @@ [ 67] = { 2, TF, SEN(pivotroot), "pivot_root" }, [ 68] = { 0, TS, SEN(sgetmask), "sgetmask" }, [ 69] = { 1, TS, SEN(ssetmask), "ssetmask" }, -[ 70] = { 2, 0, SEN(setreuid), "setreuid" }, -[ 71] = { 2, 0, SEN(setregid), "setregid" }, +[ 70] = { 2, TC, SEN(setreuid), "setreuid" }, +[ 71] = { 2, TC, SEN(setregid), "setregid" }, [ 72] = { 3, TM, SEN(mincore), "mincore" }, [ 73] = { 1, TS, SEN(sigpending), "sigpending" }, [ 74] = { 2, 0, SEN(sethostname), "sethostname" }, [ 75] = { 2, 0, SEN(setrlimit), "setrlimit" }, [ 76] = { 2, 0, SEN(getrlimit), "getrlimit" }, [ 77] = { 2, 0, SEN(getrusage), "getrusage" }, -[ 78] = { 2, 0, SEN(gettimeofday), "gettimeofday" }, -[ 79] = { 2, 0, SEN(settimeofday), "settimeofday" }, -[ 80] = { 2, 0, SEN(getgroups), "getgroups" }, -[ 81] = { 2, 0, SEN(setgroups), "setgroups" }, +[ 78] = { 2, TCL, SEN(gettimeofday), "gettimeofday" }, +[ 79] = { 2, TCL, SEN(settimeofday), "settimeofday" }, +[ 80] = { 2, TC, SEN(getgroups), "getgroups" }, +[ 81] = { 2, TC, SEN(setgroups), "setgroups" }, [ 82] = { 6, TN, SEN(sendto), "sendto" }, [ 83] = { 2, TF, SEN(symlink), "symlink" }, [ 84] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" }, @@ -109,8 +109,8 @@ [103] = { 3, 0, SEN(syslog), "syslog" }, [104] = { 3, 0, SEN(setitimer), "setitimer" }, [105] = { 2, 0, SEN(getitimer), "getitimer" }, -[106] = { 2, 0, SEN(capget), "capget" }, -[107] = { 2, 0, SEN(capset), "capset" }, +[106] = { 2, TC, SEN(capget), "capget" }, +[107] = { 2, TC, SEN(capset), "capset" }, [108] = { 5, TD, SEN(pread), "pread64" }, [109] = { 5, TD, SEN(pwrite), "pwrite64" }, [110] = { 2, TF, SEN(getcwd), "getcwd" }, @@ -127,7 +127,7 @@ [121] = { 2, 0, SEN(setdomainname), "setdomainname" }, [122] = { 4, TD|TN, SEN(sendfile), "sendfile" }, [123] = { 6, TN, SEN(recvfrom), "recvfrom" }, -[124] = { 1, 0, SEN(adjtimex32), "adjtimex" }, +[124] = { 1, TCL, SEN(adjtimex32), "adjtimex" }, [125] = { 3, TM|SI, SEN(mprotect), "mprotect" }, [126] = { 3, TS, SEN(sigprocmask), "sigprocmask" }, [127] = { 2, 0, SEN(create_module), "create_module" }, @@ -141,8 +141,8 @@ [135] = { 3, 0, SEN(sysfs), "sysfs" }, [136] = { 1, NF, SEN(personality), "personality" }, [137] = { 5, 0, SEN(afs_syscall), "afs_syscall" }, -[138] = { 1, NF, SEN(setfsuid), "setfsuid" }, -[139] = { 1, NF, SEN(setfsgid), "setfsgid" }, +[138] = { 1, TC|NF, SEN(setfsuid), "setfsuid" }, +[139] = { 1, TC|NF, SEN(setfsgid), "setfsgid" }, [140] = { 5, TD, SEN(llseek), "_llseek" }, [141] = { 3, TD, SEN(getdents), "getdents" }, [142] = { 5, TD, SEN(select), "_newselect" }, @@ -167,21 +167,21 @@ [161] = { 2, 0, SEN(sched_rr_get_interval_time32),"sched_rr_get_interval"}, [162] = { 2, 0, SEN(nanosleep_time32), "nanosleep" }, [163] = { 5, TM|SI, SEN(mremap), "mremap" }, -[164] = { 3, 0, SEN(setresuid), "setresuid" }, -[165] = { 3, 0, SEN(getresuid), "getresuid" }, +[164] = { 3, TC, SEN(setresuid), "setresuid" }, +[165] = { 3, TC, SEN(getresuid), "getresuid" }, [166] = { 2, TS, SEN(sigaltstack), "sigaltstack" }, [167] = { 5, 0, SEN(query_module), "query_module" }, [168] = { 3, TD, SEN(poll_time32), "poll" }, [169] = { 3, 0, SEN(nfsservctl), "nfsservctl" }, -[170] = { 3, 0, SEN(setresgid), "setresgid" }, -[171] = { 3, 0, SEN(getresgid), "getresgid" }, -[172] = { 5, 0, SEN(prctl), "prctl" }, +[170] = { 3, TC, SEN(setresgid), "setresgid" }, +[171] = { 3, TC, SEN(getresgid), "getresgid" }, +[172] = { 5, TC, SEN(prctl), "prctl" }, [173] = { 0, TS, SEN(rt_sigreturn), "rt_sigreturn" }, [174] = { 4, TS, SEN(rt_sigaction), "rt_sigaction" }, [175] = { 4, TS, SEN(rt_sigprocmask), "rt_sigprocmask" }, [176] = { 2, TS, SEN(rt_sigpending), "rt_sigpending" }, [177] = { 4, TS, SEN(rt_sigtimedwait_time32), "rt_sigtimedwait" }, -[178] = { 3, TS, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, +[178] = { 3, TS|TP, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, [179] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" }, [180] = { 3, TF, SEN(chown), "chown" }, [181] = { 5, TN, SEN(setsockopt), "setsockopt" }, @@ -211,7 +211,7 @@ [205] = { 5, 0, SEN(printargs), "acl_set" }, [206] = { 0, PU|NF, SEN(gettid), "gettid" }, [207] = { 4, TD, SEN(readahead), "readahead" }, -[208] = { 2, TS, SEN(kill), "tkill" }, +[208] = { 2, TS|TP, SEN(tkill), "tkill" }, [209] = { 4, TD|TN, SEN(sendfile64), "sendfile64" }, [210] = { 6, 0, SEN(futex_time32), "futex" }, [211] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" }, @@ -258,11 +258,11 @@ [252] = { 2, 0, SEN(timer_gettime32), "timer_gettime" }, [253] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" }, [254] = { 1, 0, SEN(timer_delete), "timer_delete" }, -[255] = { 2, 0, SEN(clock_settime32), "clock_settime" }, -[256] = { 2, 0, SEN(clock_gettime32), "clock_gettime" }, -[257] = { 2, 0, SEN(clock_getres_time32), "clock_getres" }, +[255] = { 2, TCL, SEN(clock_settime32), "clock_settime" }, +[256] = { 2, TCL, SEN(clock_gettime32), "clock_gettime" }, +[257] = { 2, TCL, SEN(clock_getres_time32), "clock_getres" }, [258] = { 4, 0, SEN(clock_nanosleep_time32), "clock_nanosleep" }, -[259] = { 3, TS, SEN(tgkill), "tgkill" }, +[259] = { 3, TS|TP, SEN(tgkill), "tgkill" }, [260] = { 6, TM, SEN(mbind), "mbind" }, [261] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" }, [262] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" }, @@ -291,7 +291,7 @@ [285] = { 4, TD|TF, SEN(readlinkat), "readlinkat" }, [286] = { 3, TD|TF, SEN(fchmodat), "fchmodat" }, [287] = { 3, TD|TF, SEN(faccessat), "faccessat" }, -[288] = { 1, TP, SEN(unshare), "unshare" }, +[288] = { 1, 0, SEN(unshare), "unshare" }, [289] = { 2, 0, SEN(set_robust_list), "set_robust_list" }, [290] = { 3, 0, SEN(get_robust_list), "get_robust_list" }, [291] = { 6, TD, SEN(splice), "splice" }, @@ -327,7 +327,7 @@ [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_adjtime32), "clock_adjtime" }, +[324] = { 2, TCL, SEN(clock_adjtime32), "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" }, @@ -345,41 +345,20 @@ [339] = { 3, 0, SEN(getrandom), "getrandom" }, [340] = { 2, TD, SEN(memfd_create), "memfd_create" }, [341] = { 3, TD, SEN(bpf), "bpf" }, -[342] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat" }, +[342] = { 5, TD|TF|TP|TSD|SE|SI, SEN(execveat), "execveat" }, [343] = { 2, 0, SEN(membarrier), "membarrier" }, [344] = { 1, TD, SEN(userfaultfd), "userfaultfd" }, [345] = { 3, TM, SEN(mlock2), "mlock2" }, [346] = { 6, TD, SEN(copy_file_range), "copy_file_range" }, [347] = { 6, TD, SEN(preadv2), "preadv2" }, [348] = { 6, TD, SEN(pwritev2), "pwritev2" }, -[349] = { 5, TD|TF|TSTA, SEN(statx), "statx" }, +[349] = { 5, TD|TF|TFST|TSTA,SEN(statx), "statx" }, [350] = { 6, 0, SEN(io_pgetevents_time32), "io_pgetevents" }, [351] = { 4, TM|SI, SEN(pkey_mprotect), "pkey_mprotect" }, [352] = { 2, 0, SEN(pkey_alloc), "pkey_alloc" }, [353] = { 1, 0, SEN(pkey_free), "pkey_free" }, [354] = { 4, 0, SEN(rseq), "rseq" }, -/* [355 ... 402] - reserved to sync up with other architectures */ -[403] = { 2, 0, SEN(clock_gettime64), "clock_gettime64" }, -[404] = { 2, 0, SEN(clock_settime64), "clock_settime64" }, -[405] = { 2, 0, SEN(clock_adjtime64), "clock_adjtime64" }, -[406] = { 2, 0, SEN(clock_getres_time64), "clock_getres_time64" }, -[407] = { 4, 0, SEN(clock_nanosleep_time64), "clock_nanosleep_time64"}, -[408] = { 2, 0, SEN(timer_gettime64), "timer_gettime64" }, -[409] = { 4, 0, SEN(timer_settime64), "timer_settime64" }, -[410] = { 2, TD, SEN(timerfd_gettime64), "timerfd_gettime64" }, -[411] = { 4, TD, SEN(timerfd_settime64), "timerfd_settime64" }, -[412] = { 4, TD|TF, SEN(utimensat_time64), "utimensat_time64" }, -[413] = { 6, TD, SEN(pselect6_time64), "pselect6_time64" }, -[414] = { 5, TD, SEN(ppoll_time64), "ppoll_time64" }, -[416] = { 6, 0, SEN(io_pgetevents_time64), "io_pgetevents_time64" }, -[417] = { 5, TN, SEN(recvmmsg_time64), "recvmmsg_time64" }, -[418] = { 5, TD, SEN(mq_timedsend_time64), "mq_timedsend_time64" }, -[419] = { 5, TD, SEN(mq_timedreceive_time64), "mq_timedreceive_time64"}, -[420] = { 4, TI, SEN(semtimedop_time64), "semtimedop_time64" }, -[421] = { 4, TS, SEN(rt_sigtimedwait_time64), "rt_sigtimedwait_time64"}, -[422] = { 6, 0, SEN(futex_time64), "futex_time64" }, -[423] = { 2, 0, SEN(sched_rr_get_interval_time64), "sched_rr_get_interval_time64" }, -[424] = { 4, TD|TS, SEN(pidfd_send_signal), "pidfd_send_signal" }, -[425] = { 2, TD, SEN(io_uring_setup), "io_uring_setup" }, -[426] = { 6, TD|TS, SEN(io_uring_enter), "io_uring_enter" }, -[427] = { 4, TD|TM, SEN(io_uring_register), "io_uring_register" }, +[355] = { 5, TD, SEN(kexec_file_load), "kexec_file_load" }, +/* [356 ... 402] - reserved to sync up with other architectures */ +#include "syscallent-common-32.h" +#include "syscallent-common.h" diff --git a/linux/i386/ioctls_arch0.h b/linux/i386/ioctls_arch0.h index adeef5d4..006de2d9 100644 --- a/linux/i386/ioctls_arch0.h +++ b/linux/i386/ioctls_arch0.h @@ -96,6 +96,7 @@ { "linux/kvm.h", "KVM_SET_ONE_REG", _IOC_WRITE, 0xaeac, 0x10 }, { "linux/kvm.h", "KVM_SET_PIT", _IOC_READ, 0xae66, 0x48 }, { "linux/kvm.h", "KVM_SET_PIT2", _IOC_WRITE, 0xaea0, 0x70 }, +{ "linux/kvm.h", "KVM_SET_PMU_EVENT_FILTER", _IOC_WRITE, 0xaeb2, 0x20 }, { "linux/kvm.h", "KVM_SET_REGS", _IOC_WRITE, 0xae82, 0x90 }, { "linux/kvm.h", "KVM_SET_SIGNAL_MASK", _IOC_WRITE, 0xae8b, 0x04 }, { "linux/kvm.h", "KVM_SET_SREGS", _IOC_WRITE, 0xae84, 0x138 }, diff --git a/linux/i386/syscallent.h b/linux/i386/syscallent.h index 98866f3d..c6e9cd9b 100644 --- a/linux/i386/syscallent.h +++ b/linux/i386/syscallent.h @@ -1,7 +1,7 @@ /* * Copyright (c) 1993 Branko Lankester * Copyright (c) 1993, 1994, 1995 Rick Sladkey - * Copyright (c) 1995-2019 The strace developers. + * Copyright (c) 1995-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -18,9 +18,9 @@ [ 8] = { 2, TD|TF, SEN(creat), "creat" }, [ 9] = { 2, TF, SEN(link), "link" }, [ 10] = { 1, TF, SEN(unlink), "unlink" }, -[ 11] = { 3, TF|TP|SE|SI, SEN(execve), "execve" }, +[ 11] = { 3, TF|TP|TSD|SE|SI, SEN(execve), "execve" }, [ 12] = { 1, TF, SEN(chdir), "chdir" }, -[ 13] = { 1, 0, SEN(time), "time" }, +[ 13] = { 1, TCL, SEN(time), "time" }, [ 14] = { 3, TF, SEN(mknod), "mknod" }, [ 15] = { 2, TF, SEN(chmod), "chmod" }, [ 16] = { 3, TF, SEN(chown16), "lchown" }, @@ -30,8 +30,8 @@ [ 20] = { 0, PU|NF, SEN(getpid), "getpid" }, [ 21] = { 5, TF, SEN(mount), "mount" }, [ 22] = { 1, TF, SEN(umount), "umount" }, -[ 23] = { 1, 0, SEN(setuid16), "setuid" }, -[ 24] = { 0, PU|NF, SEN(getuid16), "getuid" }, +[ 23] = { 1, TC, SEN(setuid16), "setuid" }, +[ 24] = { 0, TC|PU|NF, SEN(getuid16), "getuid" }, [ 25] = { 1, 0, SEN(stime), "stime" }, [ 26] = { 4, 0, SEN(ptrace), "ptrace" }, [ 27] = { 1, 0, SEN(alarm), "alarm" }, @@ -44,7 +44,7 @@ [ 34] = { 1, 0, SEN(nice), "nice" }, [ 35] = { 0, 0, SEN(ftime), "ftime" }, [ 36] = { 0, 0, SEN(sync), "sync" }, -[ 37] = { 2, TS, SEN(kill), "kill" }, +[ 37] = { 2, TS|TP, SEN(kill), "kill" }, [ 38] = { 2, TF, SEN(rename), "rename" }, [ 39] = { 2, TF, SEN(mkdir), "mkdir" }, [ 40] = { 1, TF, SEN(rmdir), "rmdir" }, @@ -53,11 +53,11 @@ [ 43] = { 1, 0, SEN(times), "times" }, [ 44] = { 0, 0, SEN(prof), "prof" }, [ 45] = { 1, TM|SI, SEN(brk), "brk" }, -[ 46] = { 1, 0, SEN(setgid16), "setgid" }, -[ 47] = { 0, PU|NF, SEN(getgid16), "getgid" }, +[ 46] = { 1, TC, SEN(setgid16), "setgid" }, +[ 47] = { 0, TC|PU|NF, SEN(getgid16), "getgid" }, [ 48] = { 2, TS, SEN(signal), "signal" }, -[ 49] = { 0, PU|NF, SEN(geteuid16), "geteuid" }, -[ 50] = { 0, PU|NF, SEN(getegid16), "getegid" }, +[ 49] = { 0, TC|PU|NF, SEN(geteuid16), "geteuid" }, +[ 50] = { 0, TC|PU|NF, SEN(getegid16), "getegid" }, [ 51] = { 1, TF, SEN(acct), "acct" }, [ 52] = { 2, TF, SEN(umount2), "umount2" }, [ 53] = { 0, 0, SEN(lock), "lock" }, @@ -77,18 +77,18 @@ [ 67] = { 3, TS, SEN(sigaction), "sigaction" }, [ 68] = { 0, TS, SEN(sgetmask), "sgetmask" }, [ 69] = { 1, TS, SEN(ssetmask), "ssetmask" }, -[ 70] = { 2, 0, SEN(setreuid16), "setreuid" }, -[ 71] = { 2, 0, SEN(setregid16), "setregid" }, +[ 70] = { 2, TC, SEN(setreuid16), "setreuid" }, +[ 71] = { 2, TC, SEN(setregid16), "setregid" }, [ 72] = { 3, TS, SEN(sigsuspend), "sigsuspend" }, [ 73] = { 1, TS, SEN(sigpending), "sigpending" }, [ 74] = { 2, 0, SEN(sethostname), "sethostname" }, [ 75] = { 2, 0, SEN(setrlimit), "setrlimit" }, [ 76] = { 2, 0, SEN(getrlimit), "getrlimit" }, [ 77] = { 2, 0, SEN(getrusage), "getrusage" }, -[ 78] = { 2, 0, SEN(gettimeofday), "gettimeofday" }, -[ 79] = { 2, 0, SEN(settimeofday), "settimeofday" }, -[ 80] = { 2, 0, SEN(getgroups16), "getgroups" }, -[ 81] = { 2, 0, SEN(setgroups16), "setgroups" }, +[ 78] = { 2, TCL, SEN(gettimeofday), "gettimeofday" }, +[ 79] = { 2, TCL, SEN(settimeofday), "settimeofday" }, +[ 80] = { 2, TC, SEN(getgroups16), "getgroups" }, +[ 81] = { 2, TC, SEN(setgroups16), "setgroups" }, [ 82] = { 1, TD, SEN(oldselect), "select" }, [ 83] = { 2, TF, SEN(symlink), "symlink" }, [ 84] = { 2, TF|TLST|TSTA, SEN(oldlstat), "oldlstat" }, @@ -109,7 +109,7 @@ [ 99] = { 2, TF|TSF|TSFA, SEN(statfs), "statfs" }, [100] = { 2, TD|TFSF|TSFA, SEN(fstatfs), "fstatfs" }, [101] = { 3, 0, SEN(ioperm), "ioperm" }, -[102] = { 2, TD, SEN(socketcall), "socketcall" }, +[102] = { 2, TD|TSD, SEN(socketcall), "socketcall" }, [103] = { 3, 0, SEN(syslog), "syslog" }, [104] = { 3, 0, SEN(setitimer), "setitimer" }, [105] = { 2, 0, SEN(getitimer), "getitimer" }, @@ -124,14 +124,14 @@ [114] = { 4, TP, SEN(wait4), "wait4" }, [115] = { 1, TF, SEN(swapoff), "swapoff" }, [116] = { 1, 0, SEN(sysinfo), "sysinfo" }, -[117] = { 6, TI, SEN(ipc), "ipc" }, +[117] = { 6, TI|TSD, SEN(ipc), "ipc" }, [118] = { 1, TD, SEN(fsync), "fsync" }, [119] = { 0, TS, SEN(sigreturn), "sigreturn" }, [120] = { 5, TP, SEN(clone), "clone" }, [121] = { 2, 0, SEN(setdomainname), "setdomainname" }, [122] = { 1, 0, SEN(uname), "uname" }, [123] = { 3, 0, SEN(modify_ldt), "modify_ldt" }, -[124] = { 1, 0, SEN(adjtimex32), "adjtimex" }, +[124] = { 1, TCL, SEN(adjtimex32), "adjtimex" }, [125] = { 3, TM|SI, SEN(mprotect), "mprotect" }, [126] = { 3, TS, SEN(sigprocmask), "sigprocmask" }, [127] = { 2, 0, SEN(create_module), "create_module" }, @@ -145,8 +145,8 @@ [135] = { 3, 0, SEN(sysfs), "sysfs" }, [136] = { 1, NF, SEN(personality), "personality" }, [137] = { 5, 0, SEN(afs_syscall), "afs_syscall" }, -[138] = { 1, NF, SEN(setfsuid16), "setfsuid" }, -[139] = { 1, NF, SEN(setfsgid16), "setfsgid" }, +[138] = { 1, TC|NF, SEN(setfsuid16), "setfsuid" }, +[139] = { 1, TC|NF, SEN(setfsgid16), "setfsgid" }, [140] = { 5, TD, SEN(llseek), "_llseek" }, [141] = { 3, TD, SEN(getdents), "getdents" }, [142] = { 5, TD, SEN(select), "_newselect" }, @@ -171,28 +171,28 @@ [161] = { 2, 0, SEN(sched_rr_get_interval_time32),"sched_rr_get_interval"}, [162] = { 2, 0, SEN(nanosleep_time32), "nanosleep" }, [163] = { 5, TM|SI, SEN(mremap), "mremap" }, -[164] = { 3, 0, SEN(setresuid16), "setresuid" }, -[165] = { 3, 0, SEN(getresuid16), "getresuid" }, +[164] = { 3, TC, SEN(setresuid16), "setresuid" }, +[165] = { 3, TC, SEN(getresuid16), "getresuid" }, [166] = { 5, 0, SEN(vm86), "vm86" }, [167] = { 5, 0, SEN(query_module), "query_module" }, [168] = { 3, TD, SEN(poll_time32), "poll" }, [169] = { 3, 0, SEN(nfsservctl), "nfsservctl" }, -[170] = { 3, 0, SEN(setresgid16), "setresgid" }, -[171] = { 3, 0, SEN(getresgid16), "getresgid" }, -[172] = { 5, 0, SEN(prctl), "prctl" }, +[170] = { 3, TC, SEN(setresgid16), "setresgid" }, +[171] = { 3, TC, SEN(getresgid16), "getresgid" }, +[172] = { 5, TC, SEN(prctl), "prctl" }, [173] = { 0, TS, SEN(rt_sigreturn), "rt_sigreturn" }, [174] = { 4, TS, SEN(rt_sigaction), "rt_sigaction" }, [175] = { 4, TS, SEN(rt_sigprocmask), "rt_sigprocmask" }, [176] = { 2, TS, SEN(rt_sigpending), "rt_sigpending" }, [177] = { 4, TS, SEN(rt_sigtimedwait_time32), "rt_sigtimedwait" }, -[178] = { 3, TS, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, +[178] = { 3, TS|TP, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, [179] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" }, [180] = { 5, TD, SEN(pread), "pread64" }, [181] = { 5, TD, SEN(pwrite), "pwrite64" }, [182] = { 3, TF, SEN(chown16), "chown" }, [183] = { 2, TF, SEN(getcwd), "getcwd" }, -[184] = { 2, 0, SEN(capget), "capget" }, -[185] = { 2, 0, SEN(capset), "capset" }, +[184] = { 2, TC, SEN(capget), "capget" }, +[185] = { 2, TC, SEN(capset), "capset" }, [186] = { 2, TS, SEN(sigaltstack), "sigaltstack" }, [187] = { 4, TD|TN, SEN(sendfile), "sendfile" }, [188] = { 5, TN, SEN(getpmsg), "getpmsg" }, @@ -206,24 +206,24 @@ [196] = { 2, TF|TLST|TSTA, SEN(lstat64), "lstat64" }, [197] = { 2, TD|TFST|TSTA, SEN(fstat64), "fstat64" }, [198] = { 3, TF, SEN(chown), "lchown32" }, -[199] = { 0, PU|NF, SEN(getuid), "getuid32" }, -[200] = { 0, PU|NF, SEN(getgid), "getgid32" }, -[201] = { 0, PU|NF, SEN(geteuid), "geteuid32" }, -[202] = { 0, PU|NF, SEN(getegid), "getegid32" }, -[203] = { 2, 0, SEN(setreuid), "setreuid32" }, -[204] = { 2, 0, SEN(setregid), "setregid32" }, -[205] = { 2, 0, SEN(getgroups), "getgroups32" }, -[206] = { 2, 0, SEN(setgroups), "setgroups32" }, +[199] = { 0, TC|PU|NF, SEN(getuid), "getuid32" }, +[200] = { 0, TC|PU|NF, SEN(getgid), "getgid32" }, +[201] = { 0, TC|PU|NF, SEN(geteuid), "geteuid32" }, +[202] = { 0, TC|PU|NF, SEN(getegid), "getegid32" }, +[203] = { 2, TC, SEN(setreuid), "setreuid32" }, +[204] = { 2, TC, SEN(setregid), "setregid32" }, +[205] = { 2, TC, SEN(getgroups), "getgroups32" }, +[206] = { 2, TC, SEN(setgroups), "setgroups32" }, [207] = { 3, TD, SEN(fchown), "fchown32" }, -[208] = { 3, 0, SEN(setresuid), "setresuid32" }, -[209] = { 3, 0, SEN(getresuid), "getresuid32" }, -[210] = { 3, 0, SEN(setresgid), "setresgid32" }, -[211] = { 3, 0, SEN(getresgid), "getresgid32" }, +[208] = { 3, TC, SEN(setresuid), "setresuid32" }, +[209] = { 3, TC, SEN(getresuid), "getresuid32" }, +[210] = { 3, TC, SEN(setresgid), "setresgid32" }, +[211] = { 3, TC, SEN(getresgid), "getresgid32" }, [212] = { 3, TF, SEN(chown), "chown32" }, -[213] = { 1, 0, SEN(setuid), "setuid32" }, -[214] = { 1, 0, SEN(setgid), "setgid32" }, -[215] = { 1, NF, SEN(setfsuid), "setfsuid32" }, -[216] = { 1, NF, SEN(setfsgid), "setfsgid32" }, +[213] = { 1, TC, SEN(setuid), "setuid32" }, +[214] = { 1, TC, SEN(setgid), "setgid32" }, +[215] = { 1, TC|NF, SEN(setfsuid), "setfsuid32" }, +[216] = { 1, TC|NF, SEN(setfsgid), "setfsgid32" }, [217] = { 2, TF, SEN(pivotroot), "pivot_root" }, [218] = { 3, TM, SEN(mincore), "mincore" }, [219] = { 3, TM, SEN(madvise), "madvise" }, @@ -244,7 +244,7 @@ [235] = { 2, TF, SEN(removexattr), "removexattr" }, [236] = { 2, TF, SEN(removexattr), "lremovexattr" }, [237] = { 2, TD, SEN(fremovexattr), "fremovexattr" }, -[238] = { 2, TS, SEN(kill), "tkill" }, +[238] = { 2, TS|TP, SEN(tkill), "tkill" }, [239] = { 4, TD|TN, SEN(sendfile64), "sendfile64" }, [240] = { 6, 0, SEN(futex_time32), "futex" }, [241] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" }, @@ -270,13 +270,13 @@ [261] = { 2, 0, SEN(timer_gettime32), "timer_gettime" }, [262] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" }, [263] = { 1, 0, SEN(timer_delete), "timer_delete" }, -[264] = { 2, 0, SEN(clock_settime32), "clock_settime" }, -[265] = { 2, 0, SEN(clock_gettime32), "clock_gettime" }, -[266] = { 2, 0, SEN(clock_getres_time32), "clock_getres" }, +[264] = { 2, TCL, SEN(clock_settime32), "clock_settime" }, +[265] = { 2, TCL, SEN(clock_gettime32), "clock_gettime" }, +[266] = { 2, TCL, SEN(clock_getres_time32), "clock_getres" }, [267] = { 4, 0, SEN(clock_nanosleep_time32), "clock_nanosleep" }, [268] = { 3, TF|TSF|TSFA, SEN(statfs64), "statfs64" }, [269] = { 3, TD|TFSF|TSFA, SEN(fstatfs64), "fstatfs64" }, -[270] = { 3, TS, SEN(tgkill), "tgkill" }, +[270] = { 3, TS|TP, SEN(tgkill), "tgkill" }, [271] = { 2, TF, SEN(utimes), "utimes" }, [272] = { 6, TD, SEN(fadvise64_64), "fadvise64_64" }, [273] = { 5, 0, SEN(vserver), "vserver" }, @@ -316,7 +316,7 @@ [307] = { 3, TD|TF, SEN(faccessat), "faccessat" }, [308] = { 6, TD, SEN(pselect6_time32), "pselect6" }, [309] = { 5, TD, SEN(ppoll_time32), "ppoll" }, -[310] = { 1, TP, SEN(unshare), "unshare" }, +[310] = { 1, 0, SEN(unshare), "unshare" }, [311] = { 2, 0, SEN(set_robust_list), "set_robust_list" }, [312] = { 3, 0, SEN(get_robust_list), "get_robust_list" }, [313] = { 6, TD, SEN(splice), "splice" }, @@ -349,7 +349,7 @@ [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_adjtime32), "clock_adjtime" }, +[343] = { 2, TCL, SEN(clock_adjtime32), "clock_adjtime" }, [344] = { 1, TD, SEN(syncfs), "syncfs" }, [345] = { 4, TN, SEN(sendmmsg), "sendmmsg" }, [346] = { 2, TD, SEN(setns), "setns" }, @@ -364,7 +364,7 @@ [355] = { 3, 0, SEN(getrandom), "getrandom" }, [356] = { 2, TD, SEN(memfd_create), "memfd_create" }, [357] = { 3, TD, SEN(bpf), "bpf" }, -[358] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat" }, +[358] = { 5, TD|TF|TP|TSD|SE|SI, SEN(execveat), "execveat" }, [359] = { 3, TN, SEN(socket), "socket" }, [360] = { 4, TN, SEN(socketpair), "socketpair" }, [361] = { 3, TN, SEN(bind), "bind" }, @@ -389,8 +389,8 @@ [380] = { 4, TM|SI, SEN(pkey_mprotect), "pkey_mprotect" }, [381] = { 2, 0, SEN(pkey_alloc), "pkey_alloc" }, [382] = { 1, 0, SEN(pkey_free), "pkey_free" }, -[383] = { 5, TD|TF|TSTA, SEN(statx), "statx" }, -[384] = { 2, TP, SEN(arch_prctl), "arch_prctl" }, +[383] = { 5, TD|TF|TFST|TSTA,SEN(statx), "statx" }, +[384] = { 2, 0, SEN(arch_prctl), "arch_prctl" }, [385] = { 6, 0, SEN(io_pgetevents_time32), "io_pgetevents" }, [386] = { 4, 0, SEN(rseq), "rseq" }, /* room for arch specific calls */ @@ -404,30 +404,8 @@ [400] = { 4, TI, SEN(msgsnd), "msgsnd" }, [401] = { 5, TI, SEN(msgrcv), "msgrcv" }, [402] = { 3, TI, SEN(msgctl), "msgctl" }, -[403] = { 2, 0, SEN(clock_gettime64), "clock_gettime64" }, -[404] = { 2, 0, SEN(clock_settime64), "clock_settime64" }, -[405] = { 2, 0, SEN(clock_adjtime64), "clock_adjtime64" }, -[406] = { 2, 0, SEN(clock_getres_time64), "clock_getres_time64" }, -[407] = { 4, 0, SEN(clock_nanosleep_time64), "clock_nanosleep_time64"}, -[408] = { 2, 0, SEN(timer_gettime64), "timer_gettime64" }, -[409] = { 4, 0, SEN(timer_settime64), "timer_settime64" }, -[410] = { 2, TD, SEN(timerfd_gettime64), "timerfd_gettime64" }, -[411] = { 4, TD, SEN(timerfd_settime64), "timerfd_settime64" }, -[412] = { 4, TD|TF, SEN(utimensat_time64), "utimensat_time64" }, -[413] = { 6, TD, SEN(pselect6_time64), "pselect6_time64" }, -[414] = { 5, TD, SEN(ppoll_time64), "ppoll_time64" }, -[416] = { 6, 0, SEN(io_pgetevents_time64), "io_pgetevents_time64" }, -[417] = { 5, TN, SEN(recvmmsg_time64), "recvmmsg_time64" }, -[418] = { 5, TD, SEN(mq_timedsend_time64), "mq_timedsend_time64" }, -[419] = { 5, TD, SEN(mq_timedreceive_time64), "mq_timedreceive_time64"}, -[420] = { 4, TI, SEN(semtimedop_time64), "semtimedop_time64" }, -[421] = { 4, TS, SEN(rt_sigtimedwait_time64), "rt_sigtimedwait_time64"}, -[422] = { 6, 0, SEN(futex_time64), "futex_time64" }, -[423] = { 2, 0, SEN(sched_rr_get_interval_time64), "sched_rr_get_interval_time64" }, -[424] = { 4, TD|TS, SEN(pidfd_send_signal), "pidfd_send_signal" }, -[425] = { 2, TD, SEN(io_uring_setup), "io_uring_setup" }, -[426] = { 6, TD|TS, SEN(io_uring_enter), "io_uring_enter" }, -[427] = { 4, TD|TM, SEN(io_uring_register), "io_uring_register" }, +#include "syscallent-common-32.h" +#include "syscallent-common.h" #define SYS_socket_subcall 500 #include "subcall32.h" diff --git a/linux/ia64/arch_defs_.h b/linux/ia64/arch_defs_.h index 87ca0cdb..107a74df 100644 --- a/linux/ia64/arch_defs_.h +++ b/linux/ia64/arch_defs_.h @@ -9,3 +9,4 @@ #define HAVE_ARCH_UID16_SYSCALLS 1 #define HAVE_ARCH_SA_RESTORER 0 #define HAVE_ARCH_DEDICATED_ERR_REG 1 +#define PERSONALITY0_AUDIT_ARCH { AUDIT_ARCH_IA64, SYSCALLENT_BASE_NR } diff --git a/linux/ia64/set_scno.c b/linux/ia64/set_scno.c index c1c89df9..c68c4cd8 100644 --- a/linux/ia64/set_scno.c +++ b/linux/ia64/set_scno.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -8,7 +8,8 @@ static int arch_set_scno(struct tcb *tcp, kernel_ulong_t scno) { + if (ptrace_syscall_info_is_valid() && get_regs(tcp) < 0) + return -1; ia64_regs.gr[15] = scno; - return set_regs(tcp->pid); } diff --git a/linux/ia64/shuffle_scno.c b/linux/ia64/shuffle_scno.c new file mode 100644 index 00000000..6bac3a8b --- /dev/null +++ b/linux/ia64/shuffle_scno.c @@ -0,0 +1,11 @@ +static_assert(!(SYSCALLENT_BASE_NR & (SYSCALLENT_BASE_NR - 1)), + "SYSCALLENT_BASE_NR is not a power of 2 (or zero)"); +static_assert(nsyscalls0 < SYSCALLENT_BASE_NR, + "syscall table is too big, " + "shuffling will only make everything worse"); + +kernel_ulong_t +shuffle_scno(kernel_ulong_t scno) +{ + return scno ^ SYSCALLENT_BASE_NR; +} diff --git a/linux/ia64/syscallent.h b/linux/ia64/syscallent.h index f6062c4d..eeb82574 100644 --- a/linux/ia64/syscallent.h +++ b/linux/ia64/syscallent.h @@ -1,348 +1,359 @@ /* * Copyright (c) 1999, 2001 Hewlett-Packard Co * David Mosberger-Tang - * Copyright (c) 2000-2019 The strace developers. + * Copyright (c) 2000-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ -[1024 + 0] = { 0, 0, SEN(printargs), "ni_syscall" }, -[1024 + 1] = { 1, TP|SE, SEN(exit), "exit" }, -[1024 + 2] = { 3, TD, SEN(read), "read" }, -[1024 + 3] = { 3, TD, SEN(write), "write" }, -[1024 + 4] = { 3, TD|TF, SEN(open), "open" }, -[1024 + 5] = { 1, TD, SEN(close), "close" }, -[1024 + 6] = { 2, TD|TF, SEN(creat), "creat" }, -[1024 + 7] = { 2, TF, SEN(link), "link" }, -[1024 + 8] = { 1, TF, SEN(unlink), "unlink" }, -[1024 + 9] = { 3, TF|TP|SE|SI, SEN(execve), "execve" }, -[1024 + 10] = { 1, TF, SEN(chdir), "chdir" }, -[1024 + 11] = { 1, TD, SEN(fchdir), "fchdir" }, -[1024 + 12] = { 2, TF, SEN(utimes), "utimes" }, -[1024 + 13] = { 3, TF, SEN(mknod), "mknod" }, -[1024 + 14] = { 2, TF, SEN(chmod), "chmod" }, -[1024 + 15] = { 3, TF, SEN(chown), "chown" }, -[1024 + 16] = { 3, TD, SEN(lseek), "lseek" }, -[1024 + 17] = { 0, PU|NF, SEN(getpid), "getpid" }, -[1024 + 18] = { 0, PU|NF, SEN(getppid), "getppid" }, -[1024 + 19] = { 5, TF, SEN(mount), "mount" }, -[1024 + 20] = { 2, TF, SEN(umount2), "umount" }, -[1024 + 21] = { 1, 0, SEN(setuid), "setuid" }, -[1024 + 22] = { 0, PU|NF, SEN(getuid), "getuid" }, -[1024 + 23] = { 0, PU|NF, SEN(geteuid), "geteuid" }, -[1024 + 24] = { 4, 0, SEN(ptrace), "ptrace" }, -[1024 + 25] = { 2, TF, SEN(access), "access" }, -[1024 + 26] = { 0, 0, SEN(sync), "sync" }, -[1024 + 27] = { 1, TD, SEN(fsync), "fsync" }, -[1024 + 28] = { 1, TD, SEN(fdatasync), "fdatasync" }, -[1024 + 29] = { 2, TS, SEN(kill), "kill" }, -[1024 + 30] = { 2, TF, SEN(rename), "rename" }, -[1024 + 31] = { 2, TF, SEN(mkdir), "mkdir" }, -[1024 + 32] = { 1, TF, SEN(rmdir), "rmdir" }, -[1024 + 33] = { 1, TD, SEN(dup), "dup" }, -[1024 + 34] = { 0, TD, SEN(pipe), "pipe" }, -[1024 + 35] = { 1, 0, SEN(times), "times" }, -[1024 + 36] = { 1, TM|SI, SEN(brk), "brk" }, -[1024 + 37] = { 1, 0, SEN(setgid), "setgid" }, -[1024 + 38] = { 0, PU|NF, SEN(getgid), "getgid" }, -[1024 + 39] = { 0, PU|NF, SEN(getegid), "getegid" }, -[1024 + 40] = { 1, TF, SEN(acct), "acct" }, -[1024 + 41] = { 3, TD, SEN(ioctl), "ioctl" }, -[1024 + 42] = { 3, TD, SEN(fcntl), "fcntl" }, -[1024 + 43] = { 1, NF, SEN(umask), "umask" }, -[1024 + 44] = { 1, TF, SEN(chroot), "chroot" }, -[1024 + 45] = { 2, TSFA, SEN(ustat), "ustat" }, -[1024 + 46] = { 2, TD, SEN(dup2), "dup2" }, -[1024 + 47] = { 2, 0, SEN(setreuid), "setreuid" }, -[1024 + 48] = { 2, 0, SEN(setregid), "setregid" }, -[1024 + 49] = { 3, 0, SEN(getresuid), "getresuid" }, -[1024 + 50] = { 3, 0, SEN(setresuid), "setresuid" }, -[1024 + 51] = { 3, 0, SEN(getresgid), "getresgid" }, -[1024 + 52] = { 3, 0, SEN(setresgid), "setresgid" }, -[1024 + 53] = { 2, 0, SEN(getgroups), "getgroups" }, -[1024 + 54] = { 2, 0, SEN(setgroups), "setgroups" }, -[1024 + 55] = { 1, 0, SEN(getpgid), "getpgid" }, -[1024 + 56] = { 2, 0, SEN(setpgid), "setpgid" }, -[1024 + 57] = { 0, 0, SEN(setsid), "setsid" }, -[1024 + 58] = { 1, 0, SEN(getsid), "getsid" }, -[1024 + 59] = { 2, 0, SEN(sethostname), "sethostname" }, -[1024 + 60] = { 2, 0, SEN(setrlimit), "setrlimit" }, -[1024 + 61] = { 2, 0, SEN(getrlimit), "getrlimit" }, -[1024 + 62] = { 2, 0, SEN(getrusage), "getrusage" }, -[1024 + 63] = { 2, 0, SEN(gettimeofday), "gettimeofday" }, -[1024 + 64] = { 2, 0, SEN(settimeofday), "settimeofday" }, -[1024 + 65] = { 5, TD, SEN(select), "select" }, -[1024 + 66] = { 3, TD, SEN(poll_time64), "poll" }, -[1024 + 67] = { 2, TF, SEN(symlink), "symlink" }, -[1024 + 68] = { 3, TF, SEN(readlink), "readlink" }, -[1024 + 69] = { 1, TF, SEN(uselib), "uselib" }, -[1024 + 70] = { 2, TF, SEN(swapon), "swapon" }, -[1024 + 71] = { 1, TF, SEN(swapoff), "swapoff" }, -[1024 + 72] = { 4, 0, SEN(reboot), "reboot" }, -[1024 + 73] = { 2, TF, SEN(truncate), "truncate" }, -[1024 + 74] = { 2, TD, SEN(ftruncate), "ftruncate" }, -[1024 + 75] = { 2, TD, SEN(fchmod), "fchmod" }, -[1024 + 76] = { 3, TD, SEN(fchown), "fchown" }, -[1024 + 77] = { 2, 0, SEN(getpriority), "getpriority" }, -[1024 + 78] = { 3, 0, SEN(setpriority), "setpriority" }, -[1024 + 79] = { 2, TF|TSF|TSFA, SEN(statfs), "statfs" }, -[1024 + 80] = { 2, TD|TFSF|TSFA, SEN(fstatfs), "fstatfs" }, -[1024 + 81] = { 0, PU|NF, SEN(gettid), "gettid" }, -[1024 + 82] = { 3, TI, SEN(semget), "semget" }, -[1024 + 83] = { 3, TI, SEN(semop), "semop" }, -[1024 + 84] = { 4, TI, SEN(semctl), "semctl" }, -[1024 + 85] = { 2, TI, SEN(msgget), "msgget" }, -[1024 + 86] = { 4, TI, SEN(msgsnd), "msgsnd" }, -[1024 + 87] = { 5, TI, SEN(msgrcv), "msgrcv" }, -[1024 + 88] = { 3, TI, SEN(msgctl), "msgctl" }, -[1024 + 89] = { 3, TI, SEN(shmget), "shmget" }, -[1024 + 90] = { 3, TI|TM|SI, SEN(shmat), "shmat" }, -[1024 + 91] = { 1, TI|TM|SI, SEN(shmdt), "shmdt" }, -[1024 + 92] = { 3, TI, SEN(shmctl), "shmctl" }, -[1024 + 93] = { 3, 0, SEN(syslog), "syslog" }, -[1024 + 94] = { 3, 0, SEN(setitimer), "setitimer" }, -[1024 + 95] = { 2, 0, SEN(getitimer), "getitimer" }, -[1024 + 96] = { 2, TF|TST|TSTA, SEN(stat), "stat" }, -[1024 + 97] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" }, -[1024 + 98] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" }, -[1024 + 99] = { 0, 0, SEN(vhangup), "vhangup" }, -[1024 + 100] = { 3, TF, SEN(chown), "lchown" }, -[1024 + 101] = { 5, TM|SI, SEN(remap_file_pages), "remap_file_pages" }, -[1024 + 102] = { 4, TP, SEN(wait4), "wait4" }, -[1024 + 103] = { 1, 0, SEN(sysinfo), "sysinfo" }, -[1024 + 104] = { 5, TP, SEN(clone), "clone" }, -[1024 + 105] = { 2, 0, SEN(setdomainname), "setdomainname" }, -[1024 + 106] = { 1, 0, SEN(uname), "uname" }, -[1024 + 107] = { 1, 0, SEN(adjtimex64), "adjtimex" }, -[1024 + 108] = { 2, 0, SEN(create_module), "create_module" }, -[1024 + 109] = { 3, 0, SEN(init_module), "init_module" }, -[1024 + 110] = { 2, 0, SEN(delete_module), "delete_module" }, -[1024 + 111] = { 1, 0, SEN(get_kernel_syms), "get_kernel_syms" }, -[1024 + 112] = { 5, 0, SEN(query_module), "query_module" }, -[1024 + 113] = { 4, TF, SEN(quotactl), "quotactl" }, -[1024 + 114] = { 2, 0, SEN(bdflush), "bdflush" }, -[1024 + 115] = { 3, 0, SEN(sysfs), "sysfs" }, -[1024 + 116] = { 1, NF, SEN(personality), "personality" }, -[1024 + 117] = { 5, 0, SEN(afs_syscall), "afs_syscall" }, -[1024 + 118] = { 1, NF, SEN(setfsuid), "setfsuid" }, -[1024 + 119] = { 1, NF, SEN(setfsgid), "setfsgid" }, -[1024 + 120] = { 3, TD, SEN(getdents), "getdents" }, -[1024 + 121] = { 2, TD, SEN(flock), "flock" }, -[1024 + 122] = { 3, TD, SEN(readv), "readv" }, -[1024 + 123] = { 3, TD, SEN(writev), "writev" }, -[1024 + 124] = { 4, TD, SEN(pread), "pread64" }, -[1024 + 125] = { 4, TD, SEN(pwrite), "pwrite64" }, -[1024 + 126] = { 1, 0, SEN(printargs), "_sysctl" }, -[1024 + 127] = { 6, TD|TM|SI, SEN(mmap), "mmap" }, -[1024 + 128] = { 2, TM|SI, SEN(munmap), "munmap" }, -[1024 + 129] = { 2, TM, SEN(mlock), "mlock" }, -[1024 + 130] = { 1, TM, SEN(mlockall), "mlockall" }, -[1024 + 131] = { 3, TM|SI, SEN(mprotect), "mprotect" }, -[1024 + 132] = { 5, TM|SI, SEN(mremap), "mremap" }, -[1024 + 133] = { 3, TM, SEN(msync), "msync" }, -[1024 + 134] = { 2, TM, SEN(munlock), "munlock" }, -[1024 + 135] = { 0, TM, SEN(munlockall), "munlockall" }, -[1024 + 136] = { 2, 0, SEN(sched_getparam), "sched_getparam" }, -[1024 + 137] = { 2, 0, SEN(sched_setparam), "sched_setparam" }, -[1024 + 138] = { 1, 0, SEN(sched_getscheduler), "sched_getscheduler" }, -[1024 + 139] = { 3, 0, SEN(sched_setscheduler), "sched_setscheduler" }, -[1024 + 140] = { 0, 0, SEN(sched_yield), "sched_yield" }, -[1024 + 141] = { 1, 0, SEN(sched_get_priority_max), "sched_get_priority_max"}, -[1024 + 142] = { 1, 0, SEN(sched_get_priority_min), "sched_get_priority_min"}, -[1024 + 143] = { 2, 0, SEN(sched_rr_get_interval_time64),"sched_rr_get_interval"}, -[1024 + 144] = { 2, 0, SEN(nanosleep_time64), "nanosleep" }, -[1024 + 145] = { 3, 0, SEN(nfsservctl), "nfsservctl" }, -[1024 + 146] = { 5, 0, SEN(prctl), "prctl" }, -[1024 + 147] = { 0, PU|NF, SEN(getpagesize), "getpagesize" }, -[1024 + 148] = { 6, TD|TM|SI, SEN(mmap_pgoff), "mmap2" }, -[1024 + 149] = { 5, 0, SEN(printargs), "pciconfig_read" }, -[1024 + 150] = { 5, 0, SEN(printargs), "pciconfig_write" }, -[1024 + 151] = { MA, 0, SEN(printargs), "perfmonctl" }, -[1024 + 152] = { 2, TS, SEN(sigaltstack), "sigaltstack" }, -[1024 + 153] = { 4, TS, SEN(rt_sigaction), "rt_sigaction" }, -[1024 + 154] = { 2, TS, SEN(rt_sigpending), "rt_sigpending" }, -[1024 + 155] = { 4, TS, SEN(rt_sigprocmask), "rt_sigprocmask" }, -[1024 + 156] = { 3, TS, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, -[1024 + 157] = { 0, TS, SEN(rt_sigreturn), "rt_sigreturn" }, -[1024 + 158] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" }, -[1024 + 159] = { 4, TS, SEN(rt_sigtimedwait_time64), "rt_sigtimedwait" }, -[1024 + 160] = { 2, TF, SEN(getcwd), "getcwd" }, -[1024 + 161] = { 2, 0, SEN(capget), "capget" }, -[1024 + 162] = { 2, 0, SEN(capset), "capset" }, -[1024 + 163] = { 4, TD|TN, SEN(sendfile), "sendfile" }, -[1024 + 164] = { 5, TN, SEN(getpmsg), "getpmsg" }, -[1024 + 165] = { 5, TN, SEN(putpmsg), "putpmsg" }, -[1024 + 166] = { 3, TN, SEN(socket), "socket" }, -[1024 + 167] = { 3, TN, SEN(bind), "bind" }, -[1024 + 168] = { 3, TN, SEN(connect), "connect" }, -[1024 + 169] = { 2, TN, SEN(listen), "listen" }, -[1024 + 170] = { 3, TN, SEN(accept), "accept" }, -[1024 + 171] = { 3, TN, SEN(getsockname), "getsockname" }, -[1024 + 172] = { 3, TN, SEN(getpeername), "getpeername" }, -[1024 + 173] = { 4, TN, SEN(socketpair), "socketpair" }, -[1024 + 174] = { 4, TN, SEN(send), "send" }, -[1024 + 175] = { 6, TN, SEN(sendto), "sendto" }, -[1024 + 176] = { 4, TN, SEN(recv), "recv" }, -[1024 + 177] = { 6, TN, SEN(recvfrom), "recvfrom" }, -[1024 + 178] = { 2, TN, SEN(shutdown), "shutdown" }, -[1024 + 179] = { 5, TN, SEN(setsockopt), "setsockopt" }, -[1024 + 180] = { 5, TN, SEN(getsockopt), "getsockopt" }, -[1024 + 181] = { 3, TN, SEN(sendmsg), "sendmsg" }, -[1024 + 182] = { 3, TN, SEN(recvmsg), "recvmsg" }, -[1024 + 183] = { 2, TF, SEN(pivotroot), "pivot_root" }, -[1024 + 184] = { 3, TM, SEN(mincore), "mincore" }, -[1024 + 185] = { 3, TM, SEN(madvise), "madvise" }, -[1024 + 186] = { 2, TF|TST|TSTA, SEN(stat), "stat" }, -[1024 + 187] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" }, -[1024 + 188] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" }, -[1024 + 189] = { 6, TP, SEN(clone), "clone2" }, -[1024 + 190] = { 3, TD, SEN(getdents64), "getdents64" }, -[1024 + 191] = { 2, 0, SEN(printargs), "getunwind" }, -[1024 + 192] = { 3, TD, SEN(readahead), "readahead" }, -[1024 + 193] = { 5, TF, SEN(setxattr), "setxattr" }, -[1024 + 194] = { 5, TF, SEN(setxattr), "lsetxattr" }, -[1024 + 195] = { 5, TD, SEN(fsetxattr), "fsetxattr" }, -[1024 + 196] = { 4, TF, SEN(getxattr), "getxattr" }, -[1024 + 197] = { 4, TF, SEN(getxattr), "lgetxattr" }, -[1024 + 198] = { 4, TD, SEN(fgetxattr), "fgetxattr" }, -[1024 + 199] = { 3, TF, SEN(listxattr), "listxattr" }, -[1024 + 200] = { 3, TF, SEN(listxattr), "llistxattr" }, -[1024 + 201] = { 3, TD, SEN(flistxattr), "flistxattr" }, -[1024 + 202] = { 2, TF, SEN(removexattr), "removexattr" }, -[1024 + 203] = { 2, TF, SEN(removexattr), "lremovexattr" }, -[1024 + 204] = { 2, TD, SEN(fremovexattr), "fremovexattr" }, -[1024 + 205] = { 2, TS, SEN(kill), "tkill" }, -[1024 + 206] = { 6, 0, SEN(futex_time64), "futex" }, -[1024 + 207] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" }, -[1024 + 208] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" }, -[1024 + 209] = { 1, 0, SEN(set_tid_address), "set_tid_address" }, -[1024 + 210] = { 4, TD, SEN(fadvise64), "fadvise64" }, -[1024 + 211] = { 3, TS, SEN(tgkill), "tgkill" }, -[1024 + 212] = { 1, TP|SE, SEN(exit), "exit_group" }, -[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_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" }, -[1024 + 220] = { 4, TD, SEN(epoll_ctl), "epoll_ctl" }, -[1024 + 221] = { 4, TD, SEN(epoll_wait), "epoll_wait" }, -[1024 + 222] = { 0, 0, SEN(restart_syscall), "restart_syscall" }, -[1024 + 223] = { 4, TI, SEN(semtimedop_time64), "semtimedop" }, -[1024 + 224] = { 3, 0, SEN(timer_create), "timer_create" }, -[1024 + 225] = { 4, 0, SEN(timer_settime64), "timer_settime" }, -[1024 + 226] = { 2, 0, SEN(timer_gettime64), "timer_gettime" }, -[1024 + 227] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" }, -[1024 + 228] = { 1, 0, SEN(timer_delete), "timer_delete" }, -[1024 + 229] = { 2, 0, SEN(clock_settime64), "clock_settime" }, -[1024 + 230] = { 2, 0, SEN(clock_gettime64), "clock_gettime" }, -[1024 + 231] = { 2, 0, SEN(clock_getres_time64), "clock_getres" }, -[1024 + 232] = { 4, 0, SEN(clock_nanosleep_time64), "clock_nanosleep" }, -[1024 + 233] = { 3, TD|TFSF|TSFA, SEN(fstatfs64), "fstatfs64" }, -[1024 + 234] = { 3, TF|TSF|TSFA, SEN(statfs64), "statfs64" }, -[1024 + 235] = { 6, TM, SEN(mbind), "mbind" }, -[1024 + 236] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" }, -[1024 + 237] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" }, -[1024 + 238] = { 4, TD, SEN(mq_open), "mq_open" }, -[1024 + 239] = { 1, 0, SEN(mq_unlink), "mq_unlink" }, -[1024 + 240] = { 5, TD, SEN(mq_timedsend_time64), "mq_timedsend" }, -[1024 + 241] = { 5, TD, SEN(mq_timedreceive_time64), "mq_timedreceive" }, -[1024 + 242] = { 2, TD, SEN(mq_notify), "mq_notify" }, -[1024 + 243] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" }, -[1024 + 244] = { 4, 0, SEN(kexec_load), "kexec_load" }, -[1024 + 245] = { 5, 0, SEN(vserver), "vserver" }, -[1024 + 246] = { 5, TP, SEN(waitid), "waitid" }, -[1024 + 247] = { 5, 0, SEN(add_key), "add_key" }, -[1024 + 248] = { 4, 0, SEN(request_key), "request_key" }, -[1024 + 249] = { 5, 0, SEN(keyctl), "keyctl" }, -[1024 + 250] = { 3, 0, SEN(ioprio_set), "ioprio_set" }, -[1024 + 251] = { 2, 0, SEN(ioprio_get), "ioprio_get" }, -[1024 + 252] = { 6, TM, SEN(move_pages), "move_pages" }, -[1024 + 253] = { 0, TD, SEN(inotify_init), "inotify_init" }, -[1024 + 254] = { 3, TD|TF, SEN(inotify_add_watch), "inotify_add_watch" }, -[1024 + 255] = { 2, TD, SEN(inotify_rm_watch), "inotify_rm_watch" }, -[1024 + 256] = { 4, TM, SEN(migrate_pages), "migrate_pages" }, -[1024 + 257] = { 4, TD|TF, SEN(openat), "openat" }, -[1024 + 258] = { 3, TD|TF, SEN(mkdirat), "mkdirat" }, -[1024 + 259] = { 4, TD|TF, SEN(mknodat), "mknodat" }, -[1024 + 260] = { 5, TD|TF, SEN(fchownat), "fchownat" }, -[1024 + 261] = { 3, TD|TF, SEN(futimesat), "futimesat" }, -[1024 + 262] = { 4, TD|TF|TFST|TSTA,SEN(newfstatat), "newfstatat" }, -[1024 + 263] = { 3, TD|TF, SEN(unlinkat), "unlinkat" }, -[1024 + 264] = { 4, TD|TF, SEN(renameat), "renameat" }, -[1024 + 265] = { 5, TD|TF, SEN(linkat), "linkat" }, -[1024 + 266] = { 3, TD|TF, SEN(symlinkat), "symlinkat" }, -[1024 + 267] = { 4, TD|TF, SEN(readlinkat), "readlinkat" }, -[1024 + 268] = { 3, TD|TF, SEN(fchmodat), "fchmodat" }, -[1024 + 269] = { 3, TD|TF, SEN(faccessat), "faccessat" }, -[1024 + 270] = { 6, TD, SEN(pselect6_time64), "pselect6" }, -[1024 + 271] = { 5, TD, SEN(ppoll_time64), "ppoll" }, -[1024 + 272] = { 1, TP, SEN(unshare), "unshare" }, -[1024 + 273] = { 6, TD, SEN(splice), "splice" }, -[1024 + 274] = { 2, 0, SEN(set_robust_list), "set_robust_list" }, -[1024 + 275] = { 3, 0, SEN(get_robust_list), "get_robust_list" }, -[1024 + 276] = { 4, TD, SEN(sync_file_range), "sync_file_range" }, -[1024 + 277] = { 4, TD, SEN(tee), "tee" }, -[1024 + 278] = { 4, TD, SEN(vmsplice), "vmsplice" }, -[1024 + 279] = { 4, TD, SEN(fallocate), "fallocate" }, -[1024 + 280] = { 3, 0, SEN(getcpu), "getcpu" }, -[1024 + 281] = { 6, TD, SEN(epoll_pwait), "epoll_pwait" }, -[1024 + 282] = { 4, TD|TF, SEN(utimensat_time64), "utimensat" }, -[1024 + 283] = { 3, TD|TS, SEN(signalfd), "signalfd" }, -[1024 + 284] = { 4, TD, SEN(timerfd), "timerfd" }, -[1024 + 285] = { 1, TD, SEN(eventfd), "eventfd" }, -[1024 + 286] = { 2, TD, SEN(timerfd_create), "timerfd_create" }, -[1024 + 287] = { 4, TD, SEN(timerfd_settime64), "timerfd_settime" }, -[1024 + 288] = { 2, TD, SEN(timerfd_gettime64), "timerfd_gettime" }, -[1024 + 289] = { 4, TD|TS, SEN(signalfd4), "signalfd4" }, -[1024 + 290] = { 2, TD, SEN(eventfd2), "eventfd2" }, -[1024 + 291] = { 1, TD, SEN(epoll_create1), "epoll_create1" }, -[1024 + 292] = { 3, TD, SEN(dup3), "dup3" }, -[1024 + 293] = { 2, TD, SEN(pipe2), "pipe2" }, -[1024 + 294] = { 1, TD, SEN(inotify_init1), "inotify_init1" }, -[1024 + 295] = { 4, TD, SEN(preadv), "preadv" }, -[1024 + 296] = { 4, TD, SEN(pwritev), "pwritev" }, -[1024 + 297] = { 4, TP|TS, SEN(rt_tgsigqueueinfo), "rt_tgsigqueueinfo" }, -[1024 + 298] = { 5, TN, SEN(recvmmsg_time64), "recvmmsg" }, -[1024 + 299] = { 2, TD, SEN(fanotify_init), "fanotify_init" }, -[1024 + 300] = { 5, TD|TF, SEN(fanotify_mark), "fanotify_mark" }, -[1024 + 301] = { 4, 0, SEN(prlimit64), "prlimit64" }, -[1024 + 302] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" }, -[1024 + 303] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" }, -[1024 + 304] = { 2, 0, SEN(clock_adjtime64), "clock_adjtime" }, -[1024 + 305] = { 1, TD, SEN(syncfs), "syncfs" }, -[1024 + 306] = { 2, TD, SEN(setns), "setns" }, -[1024 + 307] = { 4, TN, SEN(sendmmsg), "sendmmsg" }, -[1024 + 308] = { 6, 0, SEN(process_vm_readv), "process_vm_readv" }, -[1024 + 309] = { 6, 0, SEN(process_vm_writev), "process_vm_writev" }, -[1024 + 310] = { 4, TN, SEN(accept4), "accept4" }, -[1024 + 311] = { 3, TD, SEN(finit_module), "finit_module" }, -[1024 + 312] = { 3, 0, SEN(sched_setattr), "sched_setattr" }, -[1024 + 313] = { 4, 0, SEN(sched_getattr), "sched_getattr" }, -[1024 + 314] = { 5, TD|TF, SEN(renameat2), "renameat2" }, -[1024 + 315] = { 3, 0, SEN(getrandom), "getrandom" }, -[1024 + 316] = { 2, TD, SEN(memfd_create), "memfd_create" }, -[1024 + 317] = { 3, TD, SEN(bpf), "bpf" }, -[1024 + 318] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat" }, -[1024 + 319] = { 1, TD, SEN(userfaultfd), "userfaultfd" }, -[1024 + 320] = { 2, 0, SEN(membarrier), "membarrier" }, -[1024 + 321] = { 5, 0, SEN(kcmp), "kcmp" }, -[1024 + 322] = { 3, TM, SEN(mlock2), "mlock2" }, -[1024 + 323] = { 6, TD, SEN(copy_file_range), "copy_file_range" }, -[1024 + 324] = { 6, TD, SEN(preadv2), "preadv2" }, -[1024 + 325] = { 6, TD, SEN(pwritev2), "pwritev2" }, -[1024 + 326] = { 5, TD|TF|TSTA, SEN(statx), "statx" }, -[1024 + 327] = { 6, 0, SEN(io_pgetevents_time64), "io_pgetevents" }, -[1024 + 328] = { 5, TD, SEN(perf_event_open), "perf_event_open" }, -[1024 + 329] = { 3, 0, SEN(seccomp), "seccomp" }, -[1024 + 330] = { 4, TM|SI, SEN(pkey_mprotect), "pkey_mprotect" }, -[1024 + 331] = { 2, 0, SEN(pkey_alloc), "pkey_alloc" }, -[1024 + 332] = { 1, 0, SEN(pkey_free), "pkey_free" }, -[1024 + 333] = { 4, 0, SEN(rseq), "rseq" }, -/* [1024 + 334 ... 1024 + 423] - reserved to sync up with other architectures */ -[1024 + 424] = { 4, TD|TS, SEN(pidfd_send_signal), "pidfd_send_signal" }, -[1024 + 425] = { 2, TD, SEN(io_uring_setup), "io_uring_setup" }, -[1024 + 426] = { 6, TD|TS, SEN(io_uring_enter), "io_uring_enter" }, -[1024 + 427] = { 4, TD|TM, SEN(io_uring_register), "io_uring_register" }, +#ifdef SYSCALLENT_BASE_NR +/* + * The syscallent table starts from 0 because + * it is optimized for use with shuffle_scno. + */ +# define BASE_NR 0 +#else +/* + * __NR_* constants start from 1024 as usual. + * (1U << 10) cannot be used here because SCNO_SED is not smart enough. + */ +# define BASE_NR 1024 +#endif +[BASE_NR + 0] = { 0, 0, SEN(printargs), "ni_syscall" }, +[BASE_NR + 1] = { 1, TP|SE, SEN(exit), "exit" }, +[BASE_NR + 2] = { 3, TD, SEN(read), "read" }, +[BASE_NR + 3] = { 3, TD, SEN(write), "write" }, +[BASE_NR + 4] = { 3, TD|TF, SEN(open), "open" }, +[BASE_NR + 5] = { 1, TD, SEN(close), "close" }, +[BASE_NR + 6] = { 2, TD|TF, SEN(creat), "creat" }, +[BASE_NR + 7] = { 2, TF, SEN(link), "link" }, +[BASE_NR + 8] = { 1, TF, SEN(unlink), "unlink" }, +[BASE_NR + 9] = { 3, TF|TP|TSD|SE|SI, SEN(execve), "execve" }, +[BASE_NR + 10] = { 1, TF, SEN(chdir), "chdir" }, +[BASE_NR + 11] = { 1, TD, SEN(fchdir), "fchdir" }, +[BASE_NR + 12] = { 2, TF, SEN(utimes), "utimes" }, +[BASE_NR + 13] = { 3, TF, SEN(mknod), "mknod" }, +[BASE_NR + 14] = { 2, TF, SEN(chmod), "chmod" }, +[BASE_NR + 15] = { 3, TF, SEN(chown), "chown" }, +[BASE_NR + 16] = { 3, TD, SEN(lseek), "lseek" }, +[BASE_NR + 17] = { 0, PU|NF, SEN(getpid), "getpid" }, +[BASE_NR + 18] = { 0, PU|NF, SEN(getppid), "getppid" }, +[BASE_NR + 19] = { 5, TF, SEN(mount), "mount" }, +[BASE_NR + 20] = { 2, TF, SEN(umount2), "umount" }, +[BASE_NR + 21] = { 1, TC, SEN(setuid), "setuid" }, +[BASE_NR + 22] = { 0, TC|PU|NF, SEN(getuid), "getuid" }, +[BASE_NR + 23] = { 0, TC|PU|NF, SEN(geteuid), "geteuid" }, +[BASE_NR + 24] = { 4, 0, SEN(ptrace), "ptrace" }, +[BASE_NR + 25] = { 2, TF, SEN(access), "access" }, +[BASE_NR + 26] = { 0, 0, SEN(sync), "sync" }, +[BASE_NR + 27] = { 1, TD, SEN(fsync), "fsync" }, +[BASE_NR + 28] = { 1, TD, SEN(fdatasync), "fdatasync" }, +[BASE_NR + 29] = { 2, TS|TP, SEN(kill), "kill" }, +[BASE_NR + 30] = { 2, TF, SEN(rename), "rename" }, +[BASE_NR + 31] = { 2, TF, SEN(mkdir), "mkdir" }, +[BASE_NR + 32] = { 1, TF, SEN(rmdir), "rmdir" }, +[BASE_NR + 33] = { 1, TD, SEN(dup), "dup" }, +[BASE_NR + 34] = { 0, TD, SEN(pipe), "pipe" }, +[BASE_NR + 35] = { 1, 0, SEN(times), "times" }, +[BASE_NR + 36] = { 1, TM|SI, SEN(brk), "brk" }, +[BASE_NR + 37] = { 1, TC, SEN(setgid), "setgid" }, +[BASE_NR + 38] = { 0, TC|PU|NF, SEN(getgid), "getgid" }, +[BASE_NR + 39] = { 0, TC|PU|NF, SEN(getegid), "getegid" }, +[BASE_NR + 40] = { 1, TF, SEN(acct), "acct" }, +[BASE_NR + 41] = { 3, TD, SEN(ioctl), "ioctl" }, +[BASE_NR + 42] = { 3, TD, SEN(fcntl), "fcntl" }, +[BASE_NR + 43] = { 1, NF, SEN(umask), "umask" }, +[BASE_NR + 44] = { 1, TF, SEN(chroot), "chroot" }, +[BASE_NR + 45] = { 2, TSFA, SEN(ustat), "ustat" }, +[BASE_NR + 46] = { 2, TD, SEN(dup2), "dup2" }, +[BASE_NR + 47] = { 2, TC, SEN(setreuid), "setreuid" }, +[BASE_NR + 48] = { 2, TC, SEN(setregid), "setregid" }, +[BASE_NR + 49] = { 3, TC, SEN(getresuid), "getresuid" }, +[BASE_NR + 50] = { 3, TC, SEN(setresuid), "setresuid" }, +[BASE_NR + 51] = { 3, TC, SEN(getresgid), "getresgid" }, +[BASE_NR + 52] = { 3, TC, SEN(setresgid), "setresgid" }, +[BASE_NR + 53] = { 2, TC, SEN(getgroups), "getgroups" }, +[BASE_NR + 54] = { 2, TC, SEN(setgroups), "setgroups" }, +[BASE_NR + 55] = { 1, 0, SEN(getpgid), "getpgid" }, +[BASE_NR + 56] = { 2, 0, SEN(setpgid), "setpgid" }, +[BASE_NR + 57] = { 0, 0, SEN(setsid), "setsid" }, +[BASE_NR + 58] = { 1, 0, SEN(getsid), "getsid" }, +[BASE_NR + 59] = { 2, 0, SEN(sethostname), "sethostname" }, +[BASE_NR + 60] = { 2, 0, SEN(setrlimit), "setrlimit" }, +[BASE_NR + 61] = { 2, 0, SEN(getrlimit), "getrlimit" }, +[BASE_NR + 62] = { 2, 0, SEN(getrusage), "getrusage" }, +[BASE_NR + 63] = { 2, TCL, SEN(gettimeofday), "gettimeofday" }, +[BASE_NR + 64] = { 2, TCL, SEN(settimeofday), "settimeofday" }, +[BASE_NR + 65] = { 5, TD, SEN(select), "select" }, +[BASE_NR + 66] = { 3, TD, SEN(poll_time64), "poll" }, +[BASE_NR + 67] = { 2, TF, SEN(symlink), "symlink" }, +[BASE_NR + 68] = { 3, TF, SEN(readlink), "readlink" }, +[BASE_NR + 69] = { 1, TF, SEN(uselib), "uselib" }, +[BASE_NR + 70] = { 2, TF, SEN(swapon), "swapon" }, +[BASE_NR + 71] = { 1, TF, SEN(swapoff), "swapoff" }, +[BASE_NR + 72] = { 4, 0, SEN(reboot), "reboot" }, +[BASE_NR + 73] = { 2, TF, SEN(truncate), "truncate" }, +[BASE_NR + 74] = { 2, TD, SEN(ftruncate), "ftruncate" }, +[BASE_NR + 75] = { 2, TD, SEN(fchmod), "fchmod" }, +[BASE_NR + 76] = { 3, TD, SEN(fchown), "fchown" }, +[BASE_NR + 77] = { 2, 0, SEN(getpriority), "getpriority" }, +[BASE_NR + 78] = { 3, 0, SEN(setpriority), "setpriority" }, +[BASE_NR + 79] = { 2, TF|TSF|TSFA, SEN(statfs), "statfs" }, +[BASE_NR + 80] = { 2, TD|TFSF|TSFA, SEN(fstatfs), "fstatfs" }, +[BASE_NR + 81] = { 0, PU|NF, SEN(gettid), "gettid" }, +[BASE_NR + 82] = { 3, TI, SEN(semget), "semget" }, +[BASE_NR + 83] = { 3, TI, SEN(semop), "semop" }, +[BASE_NR + 84] = { 4, TI, SEN(semctl), "semctl" }, +[BASE_NR + 85] = { 2, TI, SEN(msgget), "msgget" }, +[BASE_NR + 86] = { 4, TI, SEN(msgsnd), "msgsnd" }, +[BASE_NR + 87] = { 5, TI, SEN(msgrcv), "msgrcv" }, +[BASE_NR + 88] = { 3, TI, SEN(msgctl), "msgctl" }, +[BASE_NR + 89] = { 3, TI, SEN(shmget), "shmget" }, +[BASE_NR + 90] = { 3, TI|TM|SI, SEN(shmat), "shmat" }, +[BASE_NR + 91] = { 1, TI|TM|SI, SEN(shmdt), "shmdt" }, +[BASE_NR + 92] = { 3, TI, SEN(shmctl), "shmctl" }, +[BASE_NR + 93] = { 3, 0, SEN(syslog), "syslog" }, +[BASE_NR + 94] = { 3, 0, SEN(setitimer), "setitimer" }, +[BASE_NR + 95] = { 2, 0, SEN(getitimer), "getitimer" }, +[BASE_NR + 96] = { 2, TF|TST|TSTA, SEN(stat), "stat" }, +[BASE_NR + 97] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" }, +[BASE_NR + 98] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" }, +[BASE_NR + 99] = { 0, 0, SEN(vhangup), "vhangup" }, +[BASE_NR + 100] = { 3, TF, SEN(chown), "lchown" }, +[BASE_NR + 101] = { 5, TM|SI, SEN(remap_file_pages), "remap_file_pages" }, +[BASE_NR + 102] = { 4, TP, SEN(wait4), "wait4" }, +[BASE_NR + 103] = { 1, 0, SEN(sysinfo), "sysinfo" }, +[BASE_NR + 104] = { 5, TP, SEN(clone), "clone" }, +[BASE_NR + 105] = { 2, 0, SEN(setdomainname), "setdomainname" }, +[BASE_NR + 106] = { 1, 0, SEN(uname), "uname" }, +[BASE_NR + 107] = { 1, TCL, SEN(adjtimex64), "adjtimex" }, +[BASE_NR + 108] = { 2, 0, SEN(create_module), "create_module" }, +[BASE_NR + 109] = { 3, 0, SEN(init_module), "init_module" }, +[BASE_NR + 110] = { 2, 0, SEN(delete_module), "delete_module" }, +[BASE_NR + 111] = { 1, 0, SEN(get_kernel_syms), "get_kernel_syms" }, +[BASE_NR + 112] = { 5, 0, SEN(query_module), "query_module" }, +[BASE_NR + 113] = { 4, TF, SEN(quotactl), "quotactl" }, +[BASE_NR + 114] = { 2, 0, SEN(bdflush), "bdflush" }, +[BASE_NR + 115] = { 3, 0, SEN(sysfs), "sysfs" }, +[BASE_NR + 116] = { 1, NF, SEN(personality), "personality" }, +[BASE_NR + 117] = { 5, 0, SEN(afs_syscall), "afs_syscall" }, +[BASE_NR + 118] = { 1, TC|NF, SEN(setfsuid), "setfsuid" }, +[BASE_NR + 119] = { 1, TC|NF, SEN(setfsgid), "setfsgid" }, +[BASE_NR + 120] = { 3, TD, SEN(getdents), "getdents" }, +[BASE_NR + 121] = { 2, TD, SEN(flock), "flock" }, +[BASE_NR + 122] = { 3, TD, SEN(readv), "readv" }, +[BASE_NR + 123] = { 3, TD, SEN(writev), "writev" }, +[BASE_NR + 124] = { 4, TD, SEN(pread), "pread64" }, +[BASE_NR + 125] = { 4, TD, SEN(pwrite), "pwrite64" }, +[BASE_NR + 126] = { 1, 0, SEN(printargs), "_sysctl" }, +[BASE_NR + 127] = { 6, TD|TM|SI, SEN(mmap), "mmap" }, +[BASE_NR + 128] = { 2, TM|SI, SEN(munmap), "munmap" }, +[BASE_NR + 129] = { 2, TM, SEN(mlock), "mlock" }, +[BASE_NR + 130] = { 1, TM, SEN(mlockall), "mlockall" }, +[BASE_NR + 131] = { 3, TM|SI, SEN(mprotect), "mprotect" }, +[BASE_NR + 132] = { 5, TM|SI, SEN(mremap), "mremap" }, +[BASE_NR + 133] = { 3, TM, SEN(msync), "msync" }, +[BASE_NR + 134] = { 2, TM, SEN(munlock), "munlock" }, +[BASE_NR + 135] = { 0, TM, SEN(munlockall), "munlockall" }, +[BASE_NR + 136] = { 2, 0, SEN(sched_getparam), "sched_getparam" }, +[BASE_NR + 137] = { 2, 0, SEN(sched_setparam), "sched_setparam" }, +[BASE_NR + 138] = { 1, 0, SEN(sched_getscheduler), "sched_getscheduler" }, +[BASE_NR + 139] = { 3, 0, SEN(sched_setscheduler), "sched_setscheduler" }, +[BASE_NR + 140] = { 0, 0, SEN(sched_yield), "sched_yield" }, +[BASE_NR + 141] = { 1, 0, SEN(sched_get_priority_max), "sched_get_priority_max"}, +[BASE_NR + 142] = { 1, 0, SEN(sched_get_priority_min), "sched_get_priority_min"}, +[BASE_NR + 143] = { 2, 0, SEN(sched_rr_get_interval_time64),"sched_rr_get_interval"}, +[BASE_NR + 144] = { 2, 0, SEN(nanosleep_time64), "nanosleep" }, +[BASE_NR + 145] = { 3, 0, SEN(nfsservctl), "nfsservctl" }, +[BASE_NR + 146] = { 5, TC, SEN(prctl), "prctl" }, +[BASE_NR + 147] = { 0, PU|NF, SEN(getpagesize), "old_getpagesize" }, +[BASE_NR + 148] = { 6, TD|TM|SI, SEN(mmap_pgoff), "mmap2" }, +[BASE_NR + 149] = { 5, 0, SEN(printargs), "pciconfig_read" }, +[BASE_NR + 150] = { 5, 0, SEN(printargs), "pciconfig_write" }, +[BASE_NR + 151] = { MA, 0, SEN(printargs), "perfmonctl" }, +[BASE_NR + 152] = { 2, TS, SEN(sigaltstack), "sigaltstack" }, +[BASE_NR + 153] = { 4, TS, SEN(rt_sigaction), "rt_sigaction" }, +[BASE_NR + 154] = { 2, TS, SEN(rt_sigpending), "rt_sigpending" }, +[BASE_NR + 155] = { 4, TS, SEN(rt_sigprocmask), "rt_sigprocmask" }, +[BASE_NR + 156] = { 3, TS|TP, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, +[BASE_NR + 157] = { 0, TS, SEN(rt_sigreturn), "rt_sigreturn" }, +[BASE_NR + 158] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" }, +[BASE_NR + 159] = { 4, TS, SEN(rt_sigtimedwait_time64), "rt_sigtimedwait" }, +[BASE_NR + 160] = { 2, TF, SEN(getcwd), "getcwd" }, +[BASE_NR + 161] = { 2, TC, SEN(capget), "capget" }, +[BASE_NR + 162] = { 2, TC, SEN(capset), "capset" }, +[BASE_NR + 163] = { 4, TD|TN, SEN(sendfile), "sendfile" }, +[BASE_NR + 164] = { 5, TN, SEN(getpmsg), "getpmsg" }, +[BASE_NR + 165] = { 5, TN, SEN(putpmsg), "putpmsg" }, +[BASE_NR + 166] = { 3, TN, SEN(socket), "socket" }, +[BASE_NR + 167] = { 3, TN, SEN(bind), "bind" }, +[BASE_NR + 168] = { 3, TN, SEN(connect), "connect" }, +[BASE_NR + 169] = { 2, TN, SEN(listen), "listen" }, +[BASE_NR + 170] = { 3, TN, SEN(accept), "accept" }, +[BASE_NR + 171] = { 3, TN, SEN(getsockname), "getsockname" }, +[BASE_NR + 172] = { 3, TN, SEN(getpeername), "getpeername" }, +[BASE_NR + 173] = { 4, TN, SEN(socketpair), "socketpair" }, +[BASE_NR + 174] = { 4, TN, SEN(send), "send" }, +[BASE_NR + 175] = { 6, TN, SEN(sendto), "sendto" }, +[BASE_NR + 176] = { 4, TN, SEN(recv), "recv" }, +[BASE_NR + 177] = { 6, TN, SEN(recvfrom), "recvfrom" }, +[BASE_NR + 178] = { 2, TN, SEN(shutdown), "shutdown" }, +[BASE_NR + 179] = { 5, TN, SEN(setsockopt), "setsockopt" }, +[BASE_NR + 180] = { 5, TN, SEN(getsockopt), "getsockopt" }, +[BASE_NR + 181] = { 3, TN, SEN(sendmsg), "sendmsg" }, +[BASE_NR + 182] = { 3, TN, SEN(recvmsg), "recvmsg" }, +[BASE_NR + 183] = { 2, TF, SEN(pivotroot), "pivot_root" }, +[BASE_NR + 184] = { 3, TM, SEN(mincore), "mincore" }, +[BASE_NR + 185] = { 3, TM, SEN(madvise), "madvise" }, +[BASE_NR + 186] = { 2, TF|TST|TSTA, SEN(stat), "stat" }, +[BASE_NR + 187] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" }, +[BASE_NR + 188] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" }, +[BASE_NR + 189] = { 6, TP, SEN(clone), "clone2" }, +[BASE_NR + 190] = { 3, TD, SEN(getdents64), "getdents64" }, +[BASE_NR + 191] = { 2, 0, SEN(printargs), "getunwind" }, +[BASE_NR + 192] = { 3, TD, SEN(readahead), "readahead" }, +[BASE_NR + 193] = { 5, TF, SEN(setxattr), "setxattr" }, +[BASE_NR + 194] = { 5, TF, SEN(setxattr), "lsetxattr" }, +[BASE_NR + 195] = { 5, TD, SEN(fsetxattr), "fsetxattr" }, +[BASE_NR + 196] = { 4, TF, SEN(getxattr), "getxattr" }, +[BASE_NR + 197] = { 4, TF, SEN(getxattr), "lgetxattr" }, +[BASE_NR + 198] = { 4, TD, SEN(fgetxattr), "fgetxattr" }, +[BASE_NR + 199] = { 3, TF, SEN(listxattr), "listxattr" }, +[BASE_NR + 200] = { 3, TF, SEN(listxattr), "llistxattr" }, +[BASE_NR + 201] = { 3, TD, SEN(flistxattr), "flistxattr" }, +[BASE_NR + 202] = { 2, TF, SEN(removexattr), "removexattr" }, +[BASE_NR + 203] = { 2, TF, SEN(removexattr), "lremovexattr" }, +[BASE_NR + 204] = { 2, TD, SEN(fremovexattr), "fremovexattr" }, +[BASE_NR + 205] = { 2, TS|TP, SEN(tkill), "tkill" }, +[BASE_NR + 206] = { 6, 0, SEN(futex_time64), "futex" }, +[BASE_NR + 207] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" }, +[BASE_NR + 208] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" }, +[BASE_NR + 209] = { 1, 0, SEN(set_tid_address), "set_tid_address" }, +[BASE_NR + 210] = { 4, TD, SEN(fadvise64), "fadvise64" }, +[BASE_NR + 211] = { 3, TS|TP, SEN(tgkill), "tgkill" }, +[BASE_NR + 212] = { 1, TP|SE, SEN(exit), "exit_group" }, +[BASE_NR + 213] = { 3, 0, SEN(lookup_dcookie), "lookup_dcookie" }, +[BASE_NR + 214] = { 2, TM, SEN(io_setup), "io_setup" }, +[BASE_NR + 215] = { 1, TM, SEN(io_destroy), "io_destroy" }, +[BASE_NR + 216] = { 5, 0, SEN(io_getevents_time64), "io_getevents" }, +[BASE_NR + 217] = { 3, 0, SEN(io_submit), "io_submit" }, +[BASE_NR + 218] = { 3, 0, SEN(io_cancel), "io_cancel" }, +[BASE_NR + 219] = { 1, TD, SEN(epoll_create), "epoll_create" }, +[BASE_NR + 220] = { 4, TD, SEN(epoll_ctl), "epoll_ctl" }, +[BASE_NR + 221] = { 4, TD, SEN(epoll_wait), "epoll_wait" }, +[BASE_NR + 222] = { 0, 0, SEN(restart_syscall), "restart_syscall" }, +[BASE_NR + 223] = { 4, TI, SEN(semtimedop_time64), "semtimedop" }, +[BASE_NR + 224] = { 3, 0, SEN(timer_create), "timer_create" }, +[BASE_NR + 225] = { 4, 0, SEN(timer_settime64), "timer_settime" }, +[BASE_NR + 226] = { 2, 0, SEN(timer_gettime64), "timer_gettime" }, +[BASE_NR + 227] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" }, +[BASE_NR + 228] = { 1, 0, SEN(timer_delete), "timer_delete" }, +[BASE_NR + 229] = { 2, TCL, SEN(clock_settime64), "clock_settime" }, +[BASE_NR + 230] = { 2, TCL, SEN(clock_gettime64), "clock_gettime" }, +[BASE_NR + 231] = { 2, TCL, SEN(clock_getres_time64), "clock_getres" }, +[BASE_NR + 232] = { 4, 0, SEN(clock_nanosleep_time64), "clock_nanosleep" }, +[BASE_NR + 233] = { 3, TD|TFSF|TSFA, SEN(fstatfs64), "fstatfs64" }, +[BASE_NR + 234] = { 3, TF|TSF|TSFA, SEN(statfs64), "statfs64" }, +[BASE_NR + 235] = { 6, TM, SEN(mbind), "mbind" }, +[BASE_NR + 236] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" }, +[BASE_NR + 237] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" }, +[BASE_NR + 238] = { 4, TD, SEN(mq_open), "mq_open" }, +[BASE_NR + 239] = { 1, 0, SEN(mq_unlink), "mq_unlink" }, +[BASE_NR + 240] = { 5, TD, SEN(mq_timedsend_time64), "mq_timedsend" }, +[BASE_NR + 241] = { 5, TD, SEN(mq_timedreceive_time64), "mq_timedreceive" }, +[BASE_NR + 242] = { 2, TD, SEN(mq_notify), "mq_notify" }, +[BASE_NR + 243] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" }, +[BASE_NR + 244] = { 4, 0, SEN(kexec_load), "kexec_load" }, +[BASE_NR + 245] = { 5, 0, SEN(vserver), "vserver" }, +[BASE_NR + 246] = { 5, TP, SEN(waitid), "waitid" }, +[BASE_NR + 247] = { 5, 0, SEN(add_key), "add_key" }, +[BASE_NR + 248] = { 4, 0, SEN(request_key), "request_key" }, +[BASE_NR + 249] = { 5, 0, SEN(keyctl), "keyctl" }, +[BASE_NR + 250] = { 3, 0, SEN(ioprio_set), "ioprio_set" }, +[BASE_NR + 251] = { 2, 0, SEN(ioprio_get), "ioprio_get" }, +[BASE_NR + 252] = { 6, TM, SEN(move_pages), "move_pages" }, +[BASE_NR + 253] = { 0, TD, SEN(inotify_init), "inotify_init" }, +[BASE_NR + 254] = { 3, TD|TF, SEN(inotify_add_watch), "inotify_add_watch" }, +[BASE_NR + 255] = { 2, TD, SEN(inotify_rm_watch), "inotify_rm_watch" }, +[BASE_NR + 256] = { 4, TM, SEN(migrate_pages), "migrate_pages" }, +[BASE_NR + 257] = { 4, TD|TF, SEN(openat), "openat" }, +[BASE_NR + 258] = { 3, TD|TF, SEN(mkdirat), "mkdirat" }, +[BASE_NR + 259] = { 4, TD|TF, SEN(mknodat), "mknodat" }, +[BASE_NR + 260] = { 5, TD|TF, SEN(fchownat), "fchownat" }, +[BASE_NR + 261] = { 3, TD|TF, SEN(futimesat), "futimesat" }, +[BASE_NR + 262] = { 4, TD|TF|TFST|TSTA,SEN(newfstatat), "newfstatat" }, +[BASE_NR + 263] = { 3, TD|TF, SEN(unlinkat), "unlinkat" }, +[BASE_NR + 264] = { 4, TD|TF, SEN(renameat), "renameat" }, +[BASE_NR + 265] = { 5, TD|TF, SEN(linkat), "linkat" }, +[BASE_NR + 266] = { 3, TD|TF, SEN(symlinkat), "symlinkat" }, +[BASE_NR + 267] = { 4, TD|TF, SEN(readlinkat), "readlinkat" }, +[BASE_NR + 268] = { 3, TD|TF, SEN(fchmodat), "fchmodat" }, +[BASE_NR + 269] = { 3, TD|TF, SEN(faccessat), "faccessat" }, +[BASE_NR + 270] = { 6, TD, SEN(pselect6_time64), "pselect6" }, +[BASE_NR + 271] = { 5, TD, SEN(ppoll_time64), "ppoll" }, +[BASE_NR + 272] = { 1, 0, SEN(unshare), "unshare" }, +[BASE_NR + 273] = { 6, TD, SEN(splice), "splice" }, +[BASE_NR + 274] = { 2, 0, SEN(set_robust_list), "set_robust_list" }, +[BASE_NR + 275] = { 3, 0, SEN(get_robust_list), "get_robust_list" }, +[BASE_NR + 276] = { 4, TD, SEN(sync_file_range), "sync_file_range" }, +[BASE_NR + 277] = { 4, TD, SEN(tee), "tee" }, +[BASE_NR + 278] = { 4, TD, SEN(vmsplice), "vmsplice" }, +[BASE_NR + 279] = { 4, TD, SEN(fallocate), "fallocate" }, +[BASE_NR + 280] = { 3, 0, SEN(getcpu), "getcpu" }, +[BASE_NR + 281] = { 6, TD, SEN(epoll_pwait), "epoll_pwait" }, +[BASE_NR + 282] = { 4, TD|TF, SEN(utimensat_time64), "utimensat" }, +[BASE_NR + 283] = { 3, TD|TS, SEN(signalfd), "signalfd" }, +[BASE_NR + 284] = { 4, TD, SEN(timerfd), "timerfd" }, +[BASE_NR + 285] = { 1, TD, SEN(eventfd), "eventfd" }, +[BASE_NR + 286] = { 2, TD, SEN(timerfd_create), "timerfd_create" }, +[BASE_NR + 287] = { 4, TD, SEN(timerfd_settime64), "timerfd_settime" }, +[BASE_NR + 288] = { 2, TD, SEN(timerfd_gettime64), "timerfd_gettime" }, +[BASE_NR + 289] = { 4, TD|TS, SEN(signalfd4), "signalfd4" }, +[BASE_NR + 290] = { 2, TD, SEN(eventfd2), "eventfd2" }, +[BASE_NR + 291] = { 1, TD, SEN(epoll_create1), "epoll_create1" }, +[BASE_NR + 292] = { 3, TD, SEN(dup3), "dup3" }, +[BASE_NR + 293] = { 2, TD, SEN(pipe2), "pipe2" }, +[BASE_NR + 294] = { 1, TD, SEN(inotify_init1), "inotify_init1" }, +[BASE_NR + 295] = { 4, TD, SEN(preadv), "preadv" }, +[BASE_NR + 296] = { 4, TD, SEN(pwritev), "pwritev" }, +[BASE_NR + 297] = { 4, TP|TS, SEN(rt_tgsigqueueinfo), "rt_tgsigqueueinfo" }, +[BASE_NR + 298] = { 5, TN, SEN(recvmmsg_time64), "recvmmsg" }, +[BASE_NR + 299] = { 2, TD, SEN(fanotify_init), "fanotify_init" }, +[BASE_NR + 300] = { 5, TD|TF, SEN(fanotify_mark), "fanotify_mark" }, +[BASE_NR + 301] = { 4, 0, SEN(prlimit64), "prlimit64" }, +[BASE_NR + 302] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" }, +[BASE_NR + 303] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" }, +[BASE_NR + 304] = { 2, TCL, SEN(clock_adjtime64), "clock_adjtime" }, +[BASE_NR + 305] = { 1, TD, SEN(syncfs), "syncfs" }, +[BASE_NR + 306] = { 2, TD, SEN(setns), "setns" }, +[BASE_NR + 307] = { 4, TN, SEN(sendmmsg), "sendmmsg" }, +[BASE_NR + 308] = { 6, 0, SEN(process_vm_readv), "process_vm_readv" }, +[BASE_NR + 309] = { 6, 0, SEN(process_vm_writev), "process_vm_writev" }, +[BASE_NR + 310] = { 4, TN, SEN(accept4), "accept4" }, +[BASE_NR + 311] = { 3, TD, SEN(finit_module), "finit_module" }, +[BASE_NR + 312] = { 3, 0, SEN(sched_setattr), "sched_setattr" }, +[BASE_NR + 313] = { 4, 0, SEN(sched_getattr), "sched_getattr" }, +[BASE_NR + 314] = { 5, TD|TF, SEN(renameat2), "renameat2" }, +[BASE_NR + 315] = { 3, 0, SEN(getrandom), "getrandom" }, +[BASE_NR + 316] = { 2, TD, SEN(memfd_create), "memfd_create" }, +[BASE_NR + 317] = { 3, TD, SEN(bpf), "bpf" }, +[BASE_NR + 318] = { 5, TD|TF|TP|TSD|SE|SI, SEN(execveat), "execveat" }, +[BASE_NR + 319] = { 1, TD, SEN(userfaultfd), "userfaultfd" }, +[BASE_NR + 320] = { 2, 0, SEN(membarrier), "membarrier" }, +[BASE_NR + 321] = { 5, 0, SEN(kcmp), "kcmp" }, +[BASE_NR + 322] = { 3, TM, SEN(mlock2), "mlock2" }, +[BASE_NR + 323] = { 6, TD, SEN(copy_file_range), "copy_file_range" }, +[BASE_NR + 324] = { 6, TD, SEN(preadv2), "preadv2" }, +[BASE_NR + 325] = { 6, TD, SEN(pwritev2), "pwritev2" }, +[BASE_NR + 326] = { 5, TD|TF|TFST|TSTA,SEN(statx), "statx" }, +[BASE_NR + 327] = { 6, 0, SEN(io_pgetevents_time64), "io_pgetevents" }, +[BASE_NR + 328] = { 5, TD, SEN(perf_event_open), "perf_event_open" }, +[BASE_NR + 329] = { 3, 0, SEN(seccomp), "seccomp" }, +[BASE_NR + 330] = { 4, TM|SI, SEN(pkey_mprotect), "pkey_mprotect" }, +[BASE_NR + 331] = { 2, 0, SEN(pkey_alloc), "pkey_alloc" }, +[BASE_NR + 332] = { 1, 0, SEN(pkey_free), "pkey_free" }, +[BASE_NR + 333] = { 4, 0, SEN(rseq), "rseq" }, +/* [BASE_NR + 334 ... BASE_NR + 423] - reserved to sync up with other architectures */ +#include "syscallent-common.h" +#undef BASE_NR diff --git a/linux/ia64/syscallent_base_nr.h b/linux/ia64/syscallent_base_nr.h new file mode 100644 index 00000000..612668ec --- /dev/null +++ b/linux/ia64/syscallent_base_nr.h @@ -0,0 +1 @@ +#define SYSCALLENT_BASE_NR (1U << 10) diff --git a/linux/inet_diag.h b/linux/inet_diag.h index cb9b7b3a..c132bce6 100644 --- a/linux/inet_diag.h +++ b/linux/inet_diag.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -44,6 +44,8 @@ struct inet_diag_req_v2 { enum { INET_DIAG_REQ_NONE, INET_DIAG_REQ_BYTECODE, + INET_DIAG_REQ_SK_BPF_STORAGES, + INET_DIAG_REQ_PROTOCOL, }; struct inet_diag_bc_op { @@ -66,6 +68,7 @@ enum { INET_DIAG_BC_MARK_COND, INET_DIAG_BC_S_EQ, INET_DIAG_BC_D_EQ, + INET_DIAG_BC_CGROUP_COND, }; struct inet_diag_hostcond { @@ -116,6 +119,10 @@ enum { INET_DIAG_MARK, INET_DIAG_BBRINFO, INET_DIAG_CLASS_ID, + INET_DIAG_MD5SIG, + INET_DIAG_ULP_INFO, + INET_DIAG_SK_BPF_STORAGES, + INET_DIAG_CGROUP_ID, }; /* INET_DIAG_MEM */ diff --git a/linux/m68k/set_scno.c b/linux/m68k/set_scno.c index 84e8835c..05af3dee 100644 --- a/linux/m68k/set_scno.c +++ b/linux/m68k/set_scno.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -8,6 +8,8 @@ static int arch_set_scno(struct tcb *tcp, kernel_ulong_t scno) { + if (ptrace_syscall_info_is_valid() && get_regs(tcp) < 0) + return -1; m68k_regs.orig_d0 = scno; return set_regs(tcp->pid); } diff --git a/linux/m68k/syscallent.h b/linux/m68k/syscallent.h index f2117697..e5ebefe1 100644 --- a/linux/m68k/syscallent.h +++ b/linux/m68k/syscallent.h @@ -1,7 +1,7 @@ /* * Copyright (c) 1993 Branko Lankester * Copyright (c) 1993, 1994, 1995 Rick Sladkey - * Copyright (c) 1995-2019 The strace developers. + * Copyright (c) 1995-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -18,9 +18,9 @@ [ 8] = { 2, TD|TF, SEN(creat), "creat" }, [ 9] = { 2, TF, SEN(link), "link" }, [ 10] = { 1, TF, SEN(unlink), "unlink" }, -[ 11] = { 3, TF|TP|SE|SI, SEN(execve), "execve" }, +[ 11] = { 3, TF|TP|TSD|SE|SI, SEN(execve), "execve" }, [ 12] = { 1, TF, SEN(chdir), "chdir" }, -[ 13] = { 1, 0, SEN(time), "time" }, +[ 13] = { 1, TCL, SEN(time), "time" }, [ 14] = { 3, TF, SEN(mknod), "mknod" }, [ 15] = { 2, TF, SEN(chmod), "chmod" }, [ 16] = { 3, TF, SEN(chown16), "chown" }, @@ -30,8 +30,8 @@ [ 20] = { 0, PU|NF, SEN(getpid), "getpid" }, [ 21] = { 5, TF, SEN(mount), "mount" }, [ 22] = { 1, TF, SEN(umount), "umount" }, -[ 23] = { 1, 0, SEN(setuid16), "setuid" }, -[ 24] = { 0, PU|NF, SEN(getuid16), "getuid" }, +[ 23] = { 1, TC, SEN(setuid16), "setuid" }, +[ 24] = { 0, TC|PU|NF, SEN(getuid16), "getuid" }, [ 25] = { 1, 0, SEN(stime), "stime" }, [ 26] = { 4, 0, SEN(ptrace), "ptrace" }, [ 27] = { 1, 0, SEN(alarm), "alarm" }, @@ -44,7 +44,7 @@ [ 34] = { 1, 0, SEN(nice), "nice" }, [ 35] = { 0, 0, SEN(ftime), "ftime" }, [ 36] = { 0, 0, SEN(sync), "sync" }, -[ 37] = { 2, TS, SEN(kill), "kill" }, +[ 37] = { 2, TS|TP, SEN(kill), "kill" }, [ 38] = { 2, TF, SEN(rename), "rename" }, [ 39] = { 2, TF, SEN(mkdir), "mkdir" }, [ 40] = { 1, TF, SEN(rmdir), "rmdir" }, @@ -53,11 +53,11 @@ [ 43] = { 1, 0, SEN(times), "times" }, [ 44] = { 0, 0, SEN(prof), "prof" }, [ 45] = { 1, TM|SI, SEN(brk), "brk" }, -[ 46] = { 1, 0, SEN(setgid16), "setgid" }, -[ 47] = { 0, PU|NF, SEN(getgid16), "getgid" }, +[ 46] = { 1, TC, SEN(setgid16), "setgid" }, +[ 47] = { 0, TC|PU|NF, SEN(getgid16), "getgid" }, [ 48] = { 2, TS, SEN(signal), "signal" }, -[ 49] = { 0, PU|NF, SEN(geteuid16), "geteuid" }, -[ 50] = { 0, PU|NF, SEN(getegid16), "getegid" }, +[ 49] = { 0, TC|PU|NF, SEN(geteuid16), "geteuid" }, +[ 50] = { 0, TC|PU|NF, SEN(getegid16), "getegid" }, [ 51] = { 1, TF, SEN(acct), "acct" }, [ 52] = { 2, TF, SEN(umount2), "umount2" }, [ 53] = { 0, 0, SEN(lock), "lock" }, @@ -77,18 +77,18 @@ [ 67] = { 3, TS, SEN(sigaction), "sigaction" }, [ 68] = { 0, TS, SEN(sgetmask), "sgetmask" }, [ 69] = { 1, TS, SEN(ssetmask), "ssetmask" }, -[ 70] = { 2, 0, SEN(setreuid16), "setreuid" }, -[ 71] = { 2, 0, SEN(setregid16), "setregid" }, +[ 70] = { 2, TC, SEN(setreuid16), "setreuid" }, +[ 71] = { 2, TC, SEN(setregid16), "setregid" }, [ 72] = { 3, TS, SEN(sigsuspend), "sigsuspend" }, [ 73] = { 1, TS, SEN(sigpending), "sigpending" }, [ 74] = { 2, 0, SEN(sethostname), "sethostname" }, [ 75] = { 2, 0, SEN(setrlimit), "setrlimit" }, [ 76] = { 2, 0, SEN(getrlimit), "getrlimit" }, [ 77] = { 2, 0, SEN(getrusage), "getrusage" }, -[ 78] = { 2, 0, SEN(gettimeofday), "gettimeofday" }, -[ 79] = { 2, 0, SEN(settimeofday), "settimeofday" }, -[ 80] = { 2, 0, SEN(getgroups16), "getgroups" }, -[ 81] = { 2, 0, SEN(setgroups16), "setgroups" }, +[ 78] = { 2, TCL, SEN(gettimeofday), "gettimeofday" }, +[ 79] = { 2, TCL, SEN(settimeofday), "settimeofday" }, +[ 80] = { 2, TC, SEN(getgroups16), "getgroups" }, +[ 81] = { 2, TC, SEN(setgroups16), "setgroups" }, [ 82] = { 1, TD, SEN(oldselect), "select" }, [ 83] = { 2, TF, SEN(symlink), "symlink" }, [ 84] = { 2, TF|TLST|TSTA, SEN(oldlstat), "oldlstat" }, @@ -109,7 +109,7 @@ [ 99] = { 2, TF|TSF|TSFA, SEN(statfs), "statfs" }, [100] = { 2, TD|TFSF|TSFA, SEN(fstatfs), "fstatfs" }, [101] = { 3, 0, SEN(ioperm), "ioperm" }, -[102] = { 2, TD, SEN(socketcall), "socketcall" }, +[102] = { 2, TD|TSD, SEN(socketcall), "socketcall" }, [103] = { 3, 0, SEN(syslog), "syslog" }, [104] = { 3, 0, SEN(setitimer), "setitimer" }, [105] = { 2, 0, SEN(getitimer), "getitimer" }, @@ -124,14 +124,14 @@ [114] = { 4, TP, SEN(wait4), "wait4" }, [115] = { 1, TF, SEN(swapoff), "swapoff" }, [116] = { 1, 0, SEN(sysinfo), "sysinfo" }, -[117] = { 6, TI, SEN(ipc), "ipc" }, +[117] = { 6, TI|TSD, SEN(ipc), "ipc" }, [118] = { 1, TD, SEN(fsync), "fsync" }, [119] = { 0, TS, SEN(sigreturn), "sigreturn" }, [120] = { 5, TP, SEN(clone), "clone" }, [121] = { 2, 0, SEN(setdomainname), "setdomainname" }, [122] = { 1, 0, SEN(uname), "uname" }, [123] = { 4, 0, SEN(cacheflush), "cacheflush" }, -[124] = { 1, 0, SEN(adjtimex32), "adjtimex" }, +[124] = { 1, TCL, SEN(adjtimex32), "adjtimex" }, [125] = { 3, TM|SI, SEN(mprotect), "mprotect" }, [126] = { 3, TS, SEN(sigprocmask), "sigprocmask" }, [127] = { 2, 0, SEN(create_module), "create_module" }, @@ -145,8 +145,8 @@ [135] = { 3, 0, SEN(sysfs), "sysfs" }, [136] = { 1, NF, SEN(personality), "personality" }, [137] = { 5, 0, SEN(afs_syscall), "afs_syscall" }, -[138] = { 1, NF, SEN(setfsuid16), "setfsuid" }, -[139] = { 1, NF, SEN(setfsgid16), "setfsgid" }, +[138] = { 1, TC|NF, SEN(setfsuid16), "setfsuid" }, +[139] = { 1, TC|NF, SEN(setfsgid16), "setfsgid" }, [140] = { 5, TD, SEN(llseek), "_llseek" }, [141] = { 3, TD, SEN(getdents), "getdents" }, [142] = { 5, TD, SEN(select), "_newselect" }, @@ -171,28 +171,28 @@ [161] = { 2, 0, SEN(sched_rr_get_interval_time32),"sched_rr_get_interval"}, [162] = { 2, 0, SEN(nanosleep_time32), "nanosleep" }, [163] = { 5, TM|SI, SEN(mremap), "mremap" }, -[164] = { 3, 0, SEN(setresuid16), "setresuid" }, -[165] = { 3, 0, SEN(getresuid16), "getresuid" }, +[164] = { 3, TC, SEN(setresuid16), "setresuid" }, +[165] = { 3, TC, SEN(getresuid16), "getresuid" }, [166] = { 0, PU|NF, SEN(getpagesize), "getpagesize" }, [167] = { 5, 0, SEN(query_module), "query_module" }, [168] = { 3, TD, SEN(poll_time32), "poll" }, [169] = { 3, 0, SEN(nfsservctl), "nfsservctl" }, -[170] = { 3, 0, SEN(setresgid16), "setresgid" }, -[171] = { 3, 0, SEN(getresgid16), "getresgid" }, -[172] = { 5, 0, SEN(prctl), "prctl" }, +[170] = { 3, TC, SEN(setresgid16), "setresgid" }, +[171] = { 3, TC, SEN(getresgid16), "getresgid" }, +[172] = { 5, TC, SEN(prctl), "prctl" }, [173] = { 0, TS, SEN(rt_sigreturn), "rt_sigreturn" }, [174] = { 4, TS, SEN(rt_sigaction), "rt_sigaction" }, [175] = { 4, TS, SEN(rt_sigprocmask), "rt_sigprocmask" }, [176] = { 2, TS, SEN(rt_sigpending), "rt_sigpending" }, [177] = { 4, TS, SEN(rt_sigtimedwait_time32), "rt_sigtimedwait" }, -[178] = { 3, TS, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, +[178] = { 3, TS|TP, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, [179] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" }, [180] = { 5, TD, SEN(pread), "pread64" }, [181] = { 5, TD, SEN(pwrite), "pwrite64" }, [182] = { 3, TF, SEN(chown16), "lchown" }, [183] = { 2, TF, SEN(getcwd), "getcwd" }, -[184] = { 2, 0, SEN(capget), "capget" }, -[185] = { 2, 0, SEN(capset), "capset" }, +[184] = { 2, TC, SEN(capget), "capget" }, +[185] = { 2, TC, SEN(capset), "capset" }, [186] = { 2, TS, SEN(sigaltstack), "sigaltstack" }, [187] = { 4, TD|TN, SEN(sendfile), "sendfile" }, [188] = { 5, TN, SEN(getpmsg), "getpmsg" }, @@ -206,29 +206,29 @@ [196] = { 2, TF|TLST|TSTA, SEN(lstat64), "lstat64" }, [197] = { 2, TD|TFST|TSTA, SEN(fstat64), "fstat64" }, [198] = { 3, TF, SEN(chown), "chown32" }, -[199] = { 0, PU|NF, SEN(getuid), "getuid32" }, -[200] = { 0, PU|NF, SEN(getgid), "getgid32" }, -[201] = { 0, PU|NF, SEN(geteuid), "geteuid32" }, -[202] = { 0, PU|NF, SEN(geteuid), "getegid32" }, -[203] = { 2, 0, SEN(setreuid), "setreuid32" }, -[204] = { 2, 0, SEN(setregid), "setregid32" }, -[205] = { 2, 0, SEN(getgroups), "getgroups32" }, -[206] = { 2, 0, SEN(setgroups), "setgroups32" }, +[199] = { 0, TC|PU|NF, SEN(getuid), "getuid32" }, +[200] = { 0, TC|PU|NF, SEN(getgid), "getgid32" }, +[201] = { 0, TC|PU|NF, SEN(geteuid), "geteuid32" }, +[202] = { 0, TC|PU|NF, SEN(geteuid), "getegid32" }, +[203] = { 2, TC, SEN(setreuid), "setreuid32" }, +[204] = { 2, TC, SEN(setregid), "setregid32" }, +[205] = { 2, TC, SEN(getgroups), "getgroups32" }, +[206] = { 2, TC, SEN(setgroups), "setgroups32" }, [207] = { 3, TD, SEN(fchown), "fchown32" }, -[208] = { 3, 0, SEN(setresuid), "setresuid32" }, -[209] = { 3, 0, SEN(getresuid), "getresuid32" }, -[210] = { 3, 0, SEN(setresgid), "setresgid32" }, -[211] = { 3, 0, SEN(getresgid), "getresgid32" }, +[208] = { 3, TC, SEN(setresuid), "setresuid32" }, +[209] = { 3, TC, SEN(getresuid), "getresuid32" }, +[210] = { 3, TC, SEN(setresgid), "setresgid32" }, +[211] = { 3, TC, SEN(getresgid), "getresgid32" }, [212] = { 3, TF, SEN(chown), "lchown32" }, -[213] = { 1, 0, SEN(setuid), "setuid32" }, -[214] = { 1, 0, SEN(setgid), "setgid32" }, -[215] = { 1, NF, SEN(setfsuid), "setfsuid32" }, -[216] = { 1, NF, SEN(setfsgid), "setfsgid32" }, +[213] = { 1, TC, SEN(setuid), "setuid32" }, +[214] = { 1, TC, SEN(setgid), "setgid32" }, +[215] = { 1, TC|NF, SEN(setfsuid), "setfsuid32" }, +[216] = { 1, TC|NF, SEN(setfsgid), "setfsgid32" }, [217] = { 2, TF, SEN(pivotroot), "pivot_root" }, [218 ... 219] = { }, [220] = { 3, TD, SEN(getdents64), "getdents64" }, [221] = { 0, PU|NF, SEN(gettid), "gettid" }, -[222] = { 2, TS, SEN(kill), "tkill" }, +[222] = { 2, TS|TP, SEN(tkill), "tkill" }, [223] = { 5, TF, SEN(setxattr), "setxattr" }, [224] = { 5, TF, SEN(setxattr), "lsetxattr" }, [225] = { 5, TD, SEN(fsetxattr), "fsetxattr" }, @@ -265,13 +265,13 @@ [256] = { 2, 0, SEN(timer_gettime32), "timer_gettime" }, [257] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" }, [258] = { 1, 0, SEN(timer_delete), "timer_delete" }, -[259] = { 2, 0, SEN(clock_settime32), "clock_settime" }, -[260] = { 2, 0, SEN(clock_gettime32), "clock_gettime" }, -[261] = { 2, 0, SEN(clock_getres_time32), "clock_getres" }, +[259] = { 2, TCL, SEN(clock_settime32), "clock_settime" }, +[260] = { 2, TCL, SEN(clock_gettime32), "clock_gettime" }, +[261] = { 2, TCL, SEN(clock_getres_time32), "clock_getres" }, [262] = { 4, 0, SEN(clock_nanosleep_time32), "clock_nanosleep" }, [263] = { 3, TF|TSF|TSFA, SEN(statfs64), "statfs64" }, [264] = { 3, TD|TFSF|TSFA, SEN(fstatfs64), "fstatfs64" }, -[265] = { 3, TS, SEN(tgkill), "tgkill" }, +[265] = { 3, TS|TP, SEN(tgkill), "tgkill" }, [266] = { 2, TF, SEN(utimes), "utimes" }, [267] = { 6, TD, SEN(fadvise64_64), "fadvise64_64" }, [268] = { 6, TM, SEN(mbind), "mbind" }, @@ -309,7 +309,7 @@ [300] = { 3, TD|TF, SEN(faccessat), "faccessat" }, [301] = { 6, TD, SEN(pselect6_time32), "pselect6" }, [302] = { 5, TD, SEN(ppoll_time32), "ppoll" }, -[303] = { 1, TP, SEN(unshare), "unshare" }, +[303] = { 1, 0, SEN(unshare), "unshare" }, [304] = { 2, 0, SEN(set_robust_list), "set_robust_list" }, [305] = { 3, 0, SEN(get_robust_list), "get_robust_list" }, [306] = { 6, TD, SEN(splice), "splice" }, @@ -348,7 +348,7 @@ [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_adjtime32), "clock_adjtime" }, +[342] = { 2, TCL, SEN(clock_adjtime32), "clock_adjtime" }, [343] = { 1, TD, SEN(syncfs), "syncfs" }, [344] = { 2, TD, SEN(setns), "setns" }, [345] = { 6, 0, SEN(process_vm_readv), "process_vm_readv" }, @@ -361,7 +361,7 @@ [352] = { 3, 0, SEN(getrandom), "getrandom" }, [353] = { 2, TD, SEN(memfd_create), "memfd_create" }, [354] = { 3, TD, SEN(bpf), "bpf" }, -[355] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat" }, +[355] = { 5, TD|TF|TP|TSD|SE|SI, SEN(execveat), "execveat" }, [356] = { 3, TN, SEN(socket), "socket" }, [357] = { 4, TN, SEN(socketpair), "socketpair" }, [358] = { 3, TN, SEN(bind), "bind" }, @@ -385,7 +385,7 @@ [376] = { 6, TD, SEN(copy_file_range), "copy_file_range" }, [377] = { 6, TD, SEN(preadv2), "preadv2" }, [378] = { 6, TD, SEN(pwritev2), "pwritev2" }, -[379] = { 5, TD|TF|TSTA, SEN(statx), "statx" }, +[379] = { 5, TD|TF|TFST|TSTA,SEN(statx), "statx" }, [380] = { 3, 0, SEN(seccomp), "seccomp" }, [381] = { 4, TM|SI, SEN(pkey_mprotect), "pkey_mprotect" }, [382] = { 2, 0, SEN(pkey_alloc), "pkey_alloc" }, @@ -402,30 +402,8 @@ [400] = { 4, TI, SEN(msgsnd), "msgsnd" }, [401] = { 5, TI, SEN(msgrcv), "msgrcv" }, [402] = { 3, TI, SEN(msgctl), "msgctl" }, -[403] = { 2, 0, SEN(clock_gettime64), "clock_gettime64" }, -[404] = { 2, 0, SEN(clock_settime64), "clock_settime64" }, -[405] = { 2, 0, SEN(clock_adjtime64), "clock_adjtime64" }, -[406] = { 2, 0, SEN(clock_getres_time64), "clock_getres_time64" }, -[407] = { 4, 0, SEN(clock_nanosleep_time64), "clock_nanosleep_time64"}, -[408] = { 2, 0, SEN(timer_gettime64), "timer_gettime64" }, -[409] = { 4, 0, SEN(timer_settime64), "timer_settime64" }, -[410] = { 2, TD, SEN(timerfd_gettime64), "timerfd_gettime64" }, -[411] = { 4, TD, SEN(timerfd_settime64), "timerfd_settime64" }, -[412] = { 4, TD|TF, SEN(utimensat_time64), "utimensat_time64" }, -[413] = { 6, TD, SEN(pselect6_time64), "pselect6_time64" }, -[414] = { 5, TD, SEN(ppoll_time64), "ppoll_time64" }, -[416] = { 6, 0, SEN(io_pgetevents_time64), "io_pgetevents_time64" }, -[417] = { 5, TN, SEN(recvmmsg_time64), "recvmmsg_time64" }, -[418] = { 5, TD, SEN(mq_timedsend_time64), "mq_timedsend_time64" }, -[419] = { 5, TD, SEN(mq_timedreceive_time64), "mq_timedreceive_time64"}, -[420] = { 4, TI, SEN(semtimedop_time64), "semtimedop_time64" }, -[421] = { 4, TS, SEN(rt_sigtimedwait_time64), "rt_sigtimedwait_time64"}, -[422] = { 6, 0, SEN(futex_time64), "futex_time64" }, -[423] = { 2, 0, SEN(sched_rr_get_interval_time64), "sched_rr_get_interval_time64" }, -[424] = { 4, TD|TS, SEN(pidfd_send_signal), "pidfd_send_signal" }, -[425] = { 2, TD, SEN(io_uring_setup), "io_uring_setup" }, -[426] = { 6, TD|TS, SEN(io_uring_enter), "io_uring_enter" }, -[427] = { 4, TD|TM, SEN(io_uring_register), "io_uring_register" }, +#include "syscallent-common-32.h" +#include "syscallent-common.h" #define SYS_socket_subcall 500 #include "subcall32.h" diff --git a/linux/metag/set_scno.c b/linux/metag/set_scno.c index 08dc3cd9..ae8f52dc 100644 --- a/linux/metag/set_scno.c +++ b/linux/metag/set_scno.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -8,6 +8,8 @@ static int arch_set_scno(struct tcb *tcp, kernel_ulong_t scno) { + if (ptrace_syscall_info_is_valid() && get_regs(tcp) < 0) + return -1; metag_regs.dx[0][1] = scno; return set_regs(tcp->pid); } diff --git a/linux/microblaze/syscallent.h b/linux/microblaze/syscallent.h index 8e2a3dd9..1c816318 100644 --- a/linux/microblaze/syscallent.h +++ b/linux/microblaze/syscallent.h @@ -1,7 +1,7 @@ /* * Copyright (c) 1993 Branko Lankester * Copyright (c) 1993, 1994, 1995 Rick Sladkey - * Copyright (c) 1995-2019 The strace developers. + * Copyright (c) 1995-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -18,9 +18,9 @@ [ 8] = { 2, TD|TF, SEN(creat), "creat" }, [ 9] = { 2, TF, SEN(link), "link" }, [ 10] = { 1, TF, SEN(unlink), "unlink" }, -[ 11] = { 3, TF|TP|SE|SI, SEN(execve), "execve" }, +[ 11] = { 3, TF|TP|TSD|SE|SI, SEN(execve), "execve" }, [ 12] = { 1, TF, SEN(chdir), "chdir" }, -[ 13] = { 1, 0, SEN(time), "time" }, +[ 13] = { 1, TCL, SEN(time), "time" }, [ 14] = { 3, TF, SEN(mknod), "mknod" }, [ 15] = { 2, TF, SEN(chmod), "chmod" }, [ 16] = { 3, TF, SEN(chown16), "lchown" }, @@ -30,8 +30,8 @@ [ 20] = { 0, PU|NF, SEN(getpid), "getpid" }, [ 21] = { 5, TF, SEN(mount), "mount" }, [ 22] = { 1, TF, SEN(umount), "umount" }, -[ 23] = { 1, 0, SEN(setuid16), "setuid" }, -[ 24] = { 0, PU|NF, SEN(getuid16), "getuid" }, +[ 23] = { 1, TC, SEN(setuid16), "setuid" }, +[ 24] = { 0, TC|PU|NF, SEN(getuid16), "getuid" }, [ 25] = { 1, 0, SEN(stime), "stime" }, [ 26] = { 4, 0, SEN(ptrace), "ptrace" }, [ 27] = { 1, 0, SEN(alarm), "alarm" }, @@ -44,7 +44,7 @@ [ 34] = { 1, 0, SEN(nice), "nice" }, [ 35] = { 0, 0, SEN(ftime), "ftime" }, [ 36] = { 0, 0, SEN(sync), "sync" }, -[ 37] = { 2, TS, SEN(kill), "kill" }, +[ 37] = { 2, TS|TP, SEN(kill), "kill" }, [ 38] = { 2, TF, SEN(rename), "rename" }, [ 39] = { 2, TF, SEN(mkdir), "mkdir" }, [ 40] = { 1, TF, SEN(rmdir), "rmdir" }, @@ -53,11 +53,11 @@ [ 43] = { 1, 0, SEN(times), "times" }, [ 44] = { 0, 0, SEN(prof), "prof" }, [ 45] = { 1, TM|SI, SEN(brk), "brk" }, -[ 46] = { 1, 0, SEN(setgid16), "setgid" }, -[ 47] = { 0, PU|NF, SEN(getgid16), "getgid" }, +[ 46] = { 1, TC, SEN(setgid16), "setgid" }, +[ 47] = { 0, TC|PU|NF, SEN(getgid16), "getgid" }, [ 48] = { 2, TS, SEN(signal), "signal" }, -[ 49] = { 0, PU|NF, SEN(geteuid16), "geteuid" }, -[ 50] = { 0, PU|NF, SEN(getegid16), "getegid" }, +[ 49] = { 0, TC|PU|NF, SEN(geteuid16), "geteuid" }, +[ 50] = { 0, TC|PU|NF, SEN(getegid16), "getegid" }, [ 51] = { 1, TF, SEN(acct), "acct" }, [ 52] = { 2, TF, SEN(umount2), "umount2" }, [ 53] = { 0, 0, SEN(lock), "lock" }, @@ -77,18 +77,18 @@ [ 67] = { 3, TS, SEN(sigaction), "sigaction" }, [ 68] = { 0, TS, SEN(sgetmask), "sgetmask" }, [ 69] = { 1, TS, SEN(ssetmask), "ssetmask" }, -[ 70] = { 2, 0, SEN(setreuid16), "setreuid" }, -[ 71] = { 2, 0, SEN(setregid16), "setregid" }, +[ 70] = { 2, TC, SEN(setreuid16), "setreuid" }, +[ 71] = { 2, TC, SEN(setregid16), "setregid" }, [ 72] = { 3, TS, SEN(sigsuspend), "sigsuspend" }, [ 73] = { 1, TS, SEN(sigpending), "sigpending" }, [ 74] = { 2, 0, SEN(sethostname), "sethostname" }, [ 75] = { 2, 0, SEN(setrlimit), "setrlimit" }, [ 76] = { 2, 0, SEN(getrlimit), "getrlimit" }, [ 77] = { 2, 0, SEN(getrusage), "getrusage" }, -[ 78] = { 2, 0, SEN(gettimeofday), "gettimeofday" }, -[ 79] = { 2, 0, SEN(settimeofday), "settimeofday" }, -[ 80] = { 2, 0, SEN(getgroups16), "getgroups" }, -[ 81] = { 2, 0, SEN(setgroups16), "setgroups" }, +[ 78] = { 2, TCL, SEN(gettimeofday), "gettimeofday" }, +[ 79] = { 2, TCL, SEN(settimeofday), "settimeofday" }, +[ 80] = { 2, TC, SEN(getgroups16), "getgroups" }, +[ 81] = { 2, TC, SEN(setgroups16), "setgroups" }, [ 82] = { 1, TD, SEN(oldselect), "select" }, [ 83] = { 2, TF, SEN(symlink), "symlink" }, [ 84] = { 2, TF|TLST|TSTA, SEN(oldlstat), "oldlstat" }, @@ -109,7 +109,7 @@ [ 99] = { 2, TF|TSF|TSFA, SEN(statfs), "statfs" }, [100] = { 2, TD|TFSF|TSFA, SEN(fstatfs), "fstatfs" }, [101] = { 3, 0, SEN(ioperm), "ioperm" }, -[102] = { 2, TD, SEN(socketcall), "socketcall" }, +[102] = { 2, TD|TSD, SEN(socketcall), "socketcall" }, [103] = { 3, 0, SEN(syslog), "syslog" }, [104] = { 3, 0, SEN(setitimer), "setitimer" }, [105] = { 2, 0, SEN(getitimer), "getitimer" }, @@ -124,14 +124,14 @@ [114] = { 4, TP, SEN(wait4), "wait4" }, [115] = { 1, TF, SEN(swapoff), "swapoff" }, [116] = { 1, 0, SEN(sysinfo), "sysinfo" }, -[117] = { 6, TI, SEN(ipc), "ipc" }, +[117] = { 6, TI|TSD, SEN(ipc), "ipc" }, [118] = { 1, TD, SEN(fsync), "fsync" }, [119] = { 0, TS, SEN(sigreturn), "sigreturn" }, [120] = { 6, TP, SEN(clone), "clone" }, [121] = { 2, 0, SEN(setdomainname), "setdomainname" }, [122] = { 1, 0, SEN(uname), "uname" }, [123] = { 3, 0, SEN(modify_ldt), "modify_ldt" }, -[124] = { 1, 0, SEN(adjtimex32), "adjtimex" }, +[124] = { 1, TCL, SEN(adjtimex32), "adjtimex" }, [125] = { 3, TM|SI, SEN(mprotect), "mprotect" }, [126] = { 3, TS, SEN(sigprocmask), "sigprocmask" }, [127] = { 2, 0, SEN(create_module), "create_module" }, @@ -145,8 +145,8 @@ [135] = { 3, 0, SEN(sysfs), "sysfs" }, [136] = { 1, NF, SEN(personality), "personality" }, [137] = { 5, 0, SEN(afs_syscall), "afs_syscall" }, -[138] = { 1, NF, SEN(setfsuid16), "setfsuid" }, -[139] = { 1, NF, SEN(setfsgid16), "setfsgid" }, +[138] = { 1, TC|NF, SEN(setfsuid16), "setfsuid" }, +[139] = { 1, TC|NF, SEN(setfsgid16), "setfsgid" }, [140] = { 5, TD, SEN(llseek), "_llseek" }, [141] = { 3, TD, SEN(getdents), "getdents" }, [142] = { 5, TD, SEN(select), "_newselect" }, @@ -171,28 +171,28 @@ [161] = { 2, 0, SEN(sched_rr_get_interval_time32),"sched_rr_get_interval"}, [162] = { 2, 0, SEN(nanosleep_time32), "nanosleep" }, [163] = { 5, TM|SI, SEN(mremap), "mremap" }, -[164] = { 3, 0, SEN(setresuid16), "setresuid" }, -[165] = { 3, 0, SEN(getresuid16), "getresuid" }, +[164] = { 3, TC, SEN(setresuid16), "setresuid" }, +[165] = { 3, TC, SEN(getresuid16), "getresuid" }, [166] = { 5, 0, SEN(vm86), "vm86" }, [167] = { 5, 0, SEN(query_module), "query_module" }, [168] = { 3, TD, SEN(poll_time32), "poll" }, [169] = { 3, 0, SEN(nfsservctl), "nfsservctl" }, -[170] = { 3, 0, SEN(setresgid16), "setresgid" }, -[171] = { 3, 0, SEN(getresgid16), "getresgid" }, -[172] = { 5, 0, SEN(prctl), "prctl" }, +[170] = { 3, TC, SEN(setresgid16), "setresgid" }, +[171] = { 3, TC, SEN(getresgid16), "getresgid" }, +[172] = { 5, TC, SEN(prctl), "prctl" }, [173] = { 0, TS, SEN(rt_sigreturn), "rt_sigreturn" }, [174] = { 4, TS, SEN(rt_sigaction), "rt_sigaction" }, [175] = { 4, TS, SEN(rt_sigprocmask), "rt_sigprocmask" }, [176] = { 2, TS, SEN(rt_sigpending), "rt_sigpending" }, [177] = { 4, TS, SEN(rt_sigtimedwait_time32), "rt_sigtimedwait" }, -[178] = { 3, TS, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, +[178] = { 3, TS|TP, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, [179] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" }, [180] = { 5, TD, SEN(pread), "pread64" }, [181] = { 5, TD, SEN(pwrite), "pwrite64" }, [182] = { 3, TF, SEN(chown16), "chown" }, [183] = { 2, TF, SEN(getcwd), "getcwd" }, -[184] = { 2, 0, SEN(capget), "capget" }, -[185] = { 2, 0, SEN(capset), "capset" }, +[184] = { 2, TC, SEN(capget), "capget" }, +[185] = { 2, TC, SEN(capset), "capset" }, [186] = { 2, TS, SEN(sigaltstack), "sigaltstack" }, [187] = { 4, TD|TN, SEN(sendfile), "sendfile" }, [188] = { 5, TN, SEN(getpmsg), "getpmsg" }, @@ -206,24 +206,24 @@ [196] = { 2, TF|TLST|TSTA, SEN(lstat64), "lstat64" }, [197] = { 2, TD|TFST|TSTA, SEN(fstat64), "fstat64" }, [198] = { 3, TF, SEN(chown), "lchown32" }, -[199] = { 0, PU|NF, SEN(getuid), "getuid32" }, -[200] = { 0, PU|NF, SEN(getgid), "getgid32" }, -[201] = { 0, PU|NF, SEN(geteuid), "geteuid32" }, -[202] = { 0, PU|NF, SEN(geteuid), "getegid32" }, -[203] = { 2, 0, SEN(setreuid), "setreuid32" }, -[204] = { 2, 0, SEN(setregid), "setregid32" }, -[205] = { 2, 0, SEN(getgroups), "getgroups32" }, -[206] = { 2, 0, SEN(setgroups), "setgroups32" }, +[199] = { 0, TC|PU|NF, SEN(getuid), "getuid32" }, +[200] = { 0, TC|PU|NF, SEN(getgid), "getgid32" }, +[201] = { 0, TC|PU|NF, SEN(geteuid), "geteuid32" }, +[202] = { 0, TC|PU|NF, SEN(geteuid), "getegid32" }, +[203] = { 2, TC, SEN(setreuid), "setreuid32" }, +[204] = { 2, TC, SEN(setregid), "setregid32" }, +[205] = { 2, TC, SEN(getgroups), "getgroups32" }, +[206] = { 2, TC, SEN(setgroups), "setgroups32" }, [207] = { 3, TD, SEN(fchown), "fchown32" }, -[208] = { 3, 0, SEN(setresuid), "setresuid32" }, -[209] = { 3, 0, SEN(getresuid), "getresuid32" }, -[210] = { 3, 0, SEN(setresgid), "setresgid32" }, -[211] = { 3, 0, SEN(getresgid), "getresgid32" }, +[208] = { 3, TC, SEN(setresuid), "setresuid32" }, +[209] = { 3, TC, SEN(getresuid), "getresuid32" }, +[210] = { 3, TC, SEN(setresgid), "setresgid32" }, +[211] = { 3, TC, SEN(getresgid), "getresgid32" }, [212] = { 3, TF, SEN(chown), "chown32" }, -[213] = { 1, 0, SEN(setuid), "setuid32" }, -[214] = { 1, 0, SEN(setgid), "setgid32" }, -[215] = { 1, NF, SEN(setfsuid), "setfsuid32" }, -[216] = { 1, NF, SEN(setfsgid), "setfsgid32" }, +[213] = { 1, TC, SEN(setuid), "setuid32" }, +[214] = { 1, TC, SEN(setgid), "setgid32" }, +[215] = { 1, TC|NF, SEN(setfsuid), "setfsuid32" }, +[216] = { 1, TC|NF, SEN(setfsgid), "setfsgid32" }, [217] = { 2, TF, SEN(pivotroot), "pivot_root" }, [218] = { 3, TM, SEN(mincore), "mincore" }, [219] = { 3, TM, SEN(madvise), "madvise" }, @@ -244,7 +244,7 @@ [235] = { 2, TF, SEN(removexattr), "removexattr" }, [236] = { 2, TF, SEN(removexattr), "lremovexattr" }, [237] = { 2, TD, SEN(fremovexattr), "fremovexattr" }, -[238] = { 2, TS, SEN(kill), "tkill" }, +[238] = { 2, TS|TP, SEN(tkill), "tkill" }, [239] = { 4, TD|TN, SEN(sendfile64), "sendfile64" }, [240] = { 6, 0, SEN(futex_time32), "futex" }, [241] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" }, @@ -270,13 +270,13 @@ [261] = { 2, 0, SEN(timer_gettime32), "timer_gettime" }, [262] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" }, [263] = { 1, 0, SEN(timer_delete), "timer_delete" }, -[264] = { 2, 0, SEN(clock_settime32), "clock_settime" }, -[265] = { 2, 0, SEN(clock_gettime32), "clock_gettime" }, -[266] = { 2, 0, SEN(clock_getres_time32), "clock_getres" }, +[264] = { 2, TCL, SEN(clock_settime32), "clock_settime" }, +[265] = { 2, TCL, SEN(clock_gettime32), "clock_gettime" }, +[266] = { 2, TCL, SEN(clock_getres_time32), "clock_getres" }, [267] = { 4, 0, SEN(clock_nanosleep_time32), "clock_nanosleep" }, [268] = { 3, TF|TSF|TSFA, SEN(statfs64), "statfs64" }, [269] = { 3, TD|TFSF|TSFA, SEN(fstatfs64), "fstatfs64" }, -[270] = { 3, TS, SEN(tgkill), "tgkill" }, +[270] = { 3, TS|TP, SEN(tgkill), "tgkill" }, [271] = { 2, TF, SEN(utimes), "utimes" }, [272] = { 6, TD, SEN(fadvise64_64), "fadvise64_64" }, [273] = { 5, 0, SEN(vserver), "vserver" }, @@ -316,7 +316,7 @@ [307] = { 3, TD|TF, SEN(faccessat), "faccessat" }, [308] = { 6, TD, SEN(pselect6_time32), "pselect6" }, [309] = { 5, TD, SEN(ppoll_time32), "ppoll" }, -[310] = { 1, TP, SEN(unshare), "unshare" }, +[310] = { 1, 0, SEN(unshare), "unshare" }, [311] = { 2, 0, SEN(set_robust_list), "set_robust_list" }, [312] = { 3, 0, SEN(get_robust_list), "get_robust_list" }, [313] = { 6, TD, SEN(splice), "splice" }, @@ -379,7 +379,7 @@ [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_adjtime32), "clock_adjtime" }, +[373] = { 2, TCL, SEN(clock_adjtime32), "clock_adjtime" }, [374] = { 1, TD, SEN(syncfs), "syncfs" }, [375] = { 2, TD, SEN(setns), "setns" }, [376] = { 4, TN, SEN(sendmmsg), "sendmmsg" }, @@ -394,7 +394,7 @@ [385] = { 3, 0, SEN(getrandom), "getrandom" }, [386] = { 2, TD, SEN(memfd_create), "memfd_create" }, [387] = { 3, TD, SEN(bpf), "bpf" }, -[388] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat" }, +[388] = { 5, TD|TF|TP|TSD|SE|SI, SEN(execveat), "execveat" }, [389] = { 1, TD, SEN(userfaultfd), "userfaultfd" }, [390] = { 2, 0, SEN(membarrier), "membarrier" }, [391] = { 3, TM, SEN(mlock2), "mlock2" }, @@ -404,31 +404,9 @@ [395] = { 4, TM|SI, SEN(pkey_mprotect), "pkey_mprotect" }, [396] = { 2, 0, SEN(pkey_alloc), "pkey_alloc" }, [397] = { 1, 0, SEN(pkey_free), "pkey_free" }, -[398] = { 5, TD|TF|TSTA, SEN(statx), "statx" }, +[398] = { 5, TD|TF|TFST|TSTA,SEN(statx), "statx" }, [399] = { 6, 0, SEN(io_pgetevents_time32), "io_pgetevents" }, [400] = { 4, 0, SEN(rseq), "rseq" }, /* [401 ... 402] - unused */ -[403] = { 2, 0, SEN(clock_gettime64), "clock_gettime64" }, -[404] = { 2, 0, SEN(clock_settime64), "clock_settime64" }, -[405] = { 2, 0, SEN(clock_adjtime64), "clock_adjtime64" }, -[406] = { 2, 0, SEN(clock_getres_time64), "clock_getres_time64" }, -[407] = { 4, 0, SEN(clock_nanosleep_time64), "clock_nanosleep_time64"}, -[408] = { 2, 0, SEN(timer_gettime64), "timer_gettime64" }, -[409] = { 4, 0, SEN(timer_settime64), "timer_settime64" }, -[410] = { 2, TD, SEN(timerfd_gettime64), "timerfd_gettime64" }, -[411] = { 4, TD, SEN(timerfd_settime64), "timerfd_settime64" }, -[412] = { 4, TD|TF, SEN(utimensat_time64), "utimensat_time64" }, -[413] = { 6, TD, SEN(pselect6_time64), "pselect6_time64" }, -[414] = { 5, TD, SEN(ppoll_time64), "ppoll_time64" }, -[416] = { 6, 0, SEN(io_pgetevents_time64), "io_pgetevents_time64" }, -[417] = { 5, TN, SEN(recvmmsg_time64), "recvmmsg_time64" }, -[418] = { 5, TD, SEN(mq_timedsend_time64), "mq_timedsend_time64" }, -[419] = { 5, TD, SEN(mq_timedreceive_time64), "mq_timedreceive_time64"}, -[420] = { 4, TI, SEN(semtimedop_time64), "semtimedop_time64" }, -[421] = { 4, TS, SEN(rt_sigtimedwait_time64), "rt_sigtimedwait_time64"}, -[422] = { 6, 0, SEN(futex_time64), "futex_time64" }, -[423] = { 2, 0, SEN(sched_rr_get_interval_time64), "sched_rr_get_interval_time64" }, -[424] = { 4, TD|TS, SEN(pidfd_send_signal), "pidfd_send_signal" }, -[425] = { 2, TD, SEN(io_uring_setup), "io_uring_setup" }, -[426] = { 6, TD|TS, SEN(io_uring_enter), "io_uring_enter" }, -[427] = { 4, TD|TM, SEN(io_uring_register), "io_uring_register" }, +#include "syscallent-common-32.h" +#include "syscallent-common.h" diff --git a/linux/mips/genstub.sh b/linux/mips/genstub.sh index 0d21692e..68775ba3 100755 --- a/linux/mips/genstub.sh +++ b/linux/mips/genstub.sh @@ -1,15 +1,15 @@ #!/bin/sh -e # -# Copyright (c) 2015-2018 The strace developers. +# Copyright (c) 2015-2019 The strace developers. # All rights reserved. # # SPDX-License-Identifier: LGPL-2.1-or-later -srcdir="${0%/*}" +srcdir="$1"; shift dstdir="$1"; shift -for n in n32 n64 o32; do +for n; do in="$srcdir/syscallent-$n.h" out="$dstdir/syscallent-$n-stub.h" - sed -r -n '/^#if/,/^#else/ {s/^([^{]*\{[^,]*,[^,]*,[[:space:]]*)[^,[:space:]]+,[[:space:]]*"([^"]+".*)/\1SEN(printargs), "'$n':\2/; s/^\[.*/&/p}' < "$in" > "$out" + sed -r -n '/^#if/,/^#else/ {s/^([^{]*\{[^,]*,[^,]*,[[:space:]]*)[^,[:space:]]+,[[:space:]]*"([^"]+".*)/\1SEN(printargs), SYSCALL_NAME_PREFIX "\2/; s/^\[.*/&/p}' < "$in" > "$out" done diff --git a/linux/mips/get_scno.c b/linux/mips/get_scno.c index f06fae46..d9815f63 100644 --- a/linux/mips/get_scno.c +++ b/linux/mips/get_scno.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -13,9 +13,7 @@ arch_get_scno(struct tcb *tcp) if (!scno_in_range(tcp->scno)) { if (mips_REG_A3 == 0 || mips_REG_A3 == (uint64_t) -1) { - if (debug_flag) - error_msg("stray syscall exit: v0 = %ld", - tcp->scno); + debug_msg("stray syscall exit: v0 = %ld", tcp->scno); return 0; } } diff --git a/linux/mips/get_syscall_args.c b/linux/mips/get_syscall_args.c index fc843f49..09d47dea 100644 --- a/linux/mips/get_syscall_args.c +++ b/linux/mips/get_syscall_args.c @@ -25,6 +25,9 @@ arch_get_syscall_args(struct tcb *tcp) && umoven(tcp, mips_REG_SP + 4 * sizeof(tcp->u_arg[0]), (n_args(tcp) - 4) * sizeof(tcp->u_arg[0]), &tcp->u_arg[4]) < 0) { + error_msg("pid %d: cannot fetch 5th and 6th syscall arguments" + " from tracee's memory", tcp->pid); + /* * Let's proceed with the first 4 arguments * instead of reporting the failure. diff --git a/linux/mips/ioctls_arch0.h b/linux/mips/ioctls_arch0.h index 7994bd43..6d31ea2f 100644 --- a/linux/mips/ioctls_arch0.h +++ b/linux/mips/ioctls_arch0.h @@ -80,8 +80,8 @@ { "asm/sockios.h", "FIOSETOWN", _IOC_WRITE, 0x667c, 0x04 }, { "asm/sockios.h", "SIOCATMARK", _IOC_READ, 0x7307, 0x04 }, { "asm/sockios.h", "SIOCGPGRP", _IOC_READ, 0x7309, 0x04 }, -{ "asm/sockios.h", "SIOCGSTAMP", 0, 0x8906, 0 }, -{ "asm/sockios.h", "SIOCGSTAMPNS", 0, 0x8907, 0 }, +{ "asm/sockios.h", "SIOCGSTAMPNS_OLD", 0, 0x8907, 0 }, +{ "asm/sockios.h", "SIOCGSTAMP_OLD", 0, 0x8906, 0 }, { "asm/sockios.h", "SIOCSPGRP", _IOC_WRITE, 0x7308, 0x04 }, { "linux/kvm.h", "KVM_ASSIGN_DEV_IRQ", _IOC_WRITE, 0xae70, 0x40 }, { "linux/kvm.h", "KVM_ASSIGN_PCI_DEVICE", _IOC_READ, 0xae69, 0x40 }, diff --git a/linux/mips/set_scno.c b/linux/mips/set_scno.c index ad312583..66448cfe 100644 --- a/linux/mips/set_scno.c +++ b/linux/mips/set_scno.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -8,6 +8,8 @@ static int arch_set_scno(struct tcb *tcp, kernel_ulong_t scno) { + if (ptrace_syscall_info_is_valid() && get_regs(tcp) < 0) + return -1; mips_REG_V0 = scno; return set_regs(tcp->pid); } diff --git a/linux/mips/syscallent-compat.h b/linux/mips/syscallent-compat.h index fce44a27..61ccfe4e 100644 --- a/linux/mips/syscallent-compat.h +++ b/linux/mips/syscallent-compat.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2018 The strace developers. + * Copyright (c) 2013-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -28,8 +28,8 @@ [ 20] = { 0, 0, SEN(printargs), "svr4_getpid" }, [ 21] = { 0, 0, SEN(printargs), "svr4_mount" }, [ 22] = { 0, 0, SEN(printargs), "svr4_umount" }, -[ 23] = { 0, 0, SEN(printargs), "svr4_setuid" }, -[ 24] = { 0, 0, SEN(printargs), "svr4_getuid" }, +[ 23] = { 0, TC, SEN(printargs), "svr4_setuid" }, +[ 24] = { 0, TC, SEN(printargs), "svr4_getuid" }, [ 25] = { 0, 0, SEN(printargs), "svr4_stime" }, [ 26] = { 0, 0, SEN(printargs), "svr4_ptrace" }, [ 27] = { 0, 0, SEN(printargs), "svr4_alarm" }, @@ -42,7 +42,7 @@ [ 34] = { 0, 0, SEN(printargs), "svr4_nice" }, [ 35] = { 0, TF|TSF|TSFA,SEN(printargs), "svr4_statfs" }, [ 36] = { 0, 0, SEN(printargs), "svr4_sync" }, -[ 37] = { 0, 0, SEN(printargs), "svr4_kill" }, +[ 37] = { 0, TP, SEN(printargs), "svr4_kill" }, [ 38] = { 0, TD|TFSF|TSFA,SEN(printargs), "svr4_fstatfs" }, [ 39] = { 0, 0, SEN(printargs), "svr4_setpgrp" }, [ 40] = { 0, 0, SEN(printargs), "svr4_cxenix" }, @@ -51,8 +51,8 @@ [ 43] = { 0, 0, SEN(printargs), "svr4_times" }, [ 44] = { 0, 0, SEN(printargs), "svr4_profil" }, [ 45] = { 0, 0, SEN(printargs), "svr4_plock" }, -[ 46] = { 0, 0, SEN(printargs), "svr4_setgid" }, -[ 47] = { 0, 0, SEN(printargs), "svr4_getgid" }, +[ 46] = { 0, TC, SEN(printargs), "svr4_setgid" }, +[ 47] = { 0, TC, SEN(printargs), "svr4_getgid" }, [ 48] = { 0, 0, SEN(printargs), "svr4_sig" }, [ 49] = { 0, 0, SEN(printargs), "svr4_msgsys" }, [ 50] = { 0, 0, SEN(printargs), "svr4_sysmips" }, @@ -91,8 +91,8 @@ [ 88] = { 0, TF|TLST|TSTA,SEN(printargs), "svr4_lstat" }, [ 89] = { 0, 0, SEN(printargs), "svr4_symlink" }, [ 90] = { 0, 0, SEN(printargs), "svr4_readlink" }, -[ 91] = { 0, 0, SEN(printargs), "svr4_setgroups" }, -[ 92] = { 0, 0, SEN(printargs), "svr4_getgroups" }, +[ 91] = { 0, TC, SEN(printargs), "svr4_setgroups" }, +[ 92] = { 0, TC, SEN(printargs), "svr4_getgroups" }, [ 93] = { 0, 0, SEN(printargs), "svr4_fchmod" }, [ 94] = { 0, 0, SEN(printargs), "svr4_fchown" }, [ 95] = { 0, 0, SEN(printargs), "svr4_sigprocmask" }, @@ -136,12 +136,12 @@ [ 133] = { 0, 0, SEN(printargs), "svr4_putpmsg" }, [ 134] = { 0, 0, SEN(printargs), "svr4_rename" }, [ 135] = { 0, 0, SEN(printargs), "svr4_nuname" }, -[ 136] = { 0, 0, SEN(printargs), "svr4_setegid" }, +[ 136] = { 0, TC, SEN(printargs), "svr4_setegid" }, [ 137] = { 0, 0, SEN(printargs), "svr4_sysconf" }, -[ 138] = { 0, 0, SEN(printargs), "svr4_adjtime" }, +[ 138] = { 0, TCL, SEN(printargs), "svr4_adjtime" }, [ 139] = { 0, 0, SEN(printargs), "svr4_sysinfo" }, [ 140] = { }, -[ 141] = { 0, 0, SEN(printargs), "svr4_seteuid" }, +[ 141] = { 0, TC, SEN(printargs), "svr4_seteuid" }, [ 142] = { 0, 0, SEN(printargs), "svr4_PYRAMID_statis" }, [ 143] = { 0, 0, SEN(printargs), "svr4_PYRAMID_tuning" }, [ 144] = { 0, 0, SEN(printargs), "svr4_PYRAMID_forcerr" }, @@ -179,8 +179,8 @@ [1020] = { 0, 0, SEN(printargs), "sysv_getpid" }, [1021] = { 0, 0, SEN(printargs), "sysv_mount" }, [1022] = { 0, 0, SEN(printargs), "sysv_umount" }, -[1023] = { 0, 0, SEN(printargs), "sysv_setuid" }, -[1024] = { 0, 0, SEN(printargs), "sysv_getuid" }, +[1023] = { 0, TC, SEN(printargs), "sysv_setuid" }, +[1024] = { 0, TC, SEN(printargs), "sysv_getuid" }, [1025] = { 0, 0, SEN(printargs), "sysv_stime" }, [1026] = { 0, 0, SEN(printargs), "sysv_ptrace" }, [1027] = { 0, 0, SEN(printargs), "sysv_alarm" }, @@ -193,7 +193,7 @@ [1034] = { 0, 0, SEN(printargs), "sysv_nice" }, [1035] = { 0, TF|TSF|TSFA,SEN(printargs), "sysv_statfs" }, [1036] = { 0, 0, SEN(printargs), "sysv_sync" }, -[1037] = { 0, 0, SEN(printargs), "sysv_kill" }, +[1037] = { 0, TP, SEN(printargs), "sysv_kill" }, [1038] = { 0, TD|TFSF|TSFA,SEN(printargs), "sysv_fstatfs" }, [1039] = { 0, 0, SEN(printargs), "sysv_setpgrp" }, [1040] = { 0, 0, SEN(printargs), "sysv_syssgi" }, @@ -202,8 +202,8 @@ [1043] = { 0, 0, SEN(printargs), "sysv_times" }, [1044] = { 0, 0, SEN(printargs), "sysv_profil" }, [1045] = { 0, 0, SEN(printargs), "sysv_plock" }, -[1046] = { 0, 0, SEN(printargs), "sysv_setgid" }, -[1047] = { 0, 0, SEN(printargs), "sysv_getgid" }, +[1046] = { 0, TC, SEN(printargs), "sysv_setgid" }, +[1047] = { 0, TC, SEN(printargs), "sysv_getgid" }, [1048] = { 0, 0, SEN(printargs), "sysv_sig" }, [1049] = { 0, 0, SEN(printargs), "sysv_msgsys" }, [1050] = { 0, 0, SEN(printargs), "sysv_sysmips" }, @@ -274,11 +274,11 @@ [1120] = { 0, 0, SEN(printargs), "sysv_getfh" }, [1121] = { 0, 0, SEN(printargs), "sysv_async_daemon" }, [1122] = { 0, 0, SEN(printargs), "sysv_exportfs" }, -[1123] = { 0, 0, SEN(printargs), "sysv_setregid" }, -[1124] = { 0, 0, SEN(printargs), "sysv_setreuid" }, +[1123] = { 0, TC, SEN(printargs), "sysv_setregid" }, +[1124] = { 0, TC, SEN(printargs), "sysv_setreuid" }, [1125] = { 0, 0, SEN(printargs), "sysv_getitimer" }, [1126] = { 0, 0, SEN(printargs), "sysv_setitimer" }, -[1127] = { 0, 0, SEN(printargs), "sysv_adjtime" }, +[1127] = { 0, TCL, SEN(printargs), "sysv_adjtime" }, [1128] = { 0, 0, SEN(printargs), "sysv_BSD_getime" }, [1129] = { 0, 0, SEN(printargs), "sysv_sproc" }, [1130] = { 0, 0, SEN(printargs), "sysv_prctl" }, @@ -364,8 +364,8 @@ [2020] = { 0, 0, SEN(printargs), "bsd43_getpid" }, [2021] = { 0, 0, SEN(printargs), "bsd43_oldmount" }, [2022] = { 0, 0, SEN(printargs), "bsd43_umount" }, -[2023] = { 0, 0, SEN(printargs), "bsd43_setuid" }, -[2024] = { 0, 0, SEN(printargs), "bsd43_getuid" }, +[2023] = { 0, TC, SEN(printargs), "bsd43_setuid" }, +[2024] = { 0, TC, SEN(printargs), "bsd43_getuid" }, [2025] = { 0, 0, SEN(printargs), "bsd43_stime" }, [2026] = { 0, 0, SEN(printargs), "bsd43_ptrace" }, [2027] = { 0, 0, SEN(printargs), "bsd43_alarm" }, @@ -378,7 +378,7 @@ [2034] = { 0, 0, SEN(printargs), "bsd43_nice" }, [2035] = { 0, 0, SEN(printargs), "bsd43_ftime" }, [2036] = { 0, 0, SEN(printargs), "bsd43_sync" }, -[2037] = { 0, 0, SEN(printargs), "bsd43_kill" }, +[2037] = { 0, TP, SEN(printargs), "bsd43_kill" }, [2038] = { 0, TF|TST|TSTA,SEN(printargs), "bsd43_stat" }, [2039] = { 0, 0, SEN(printargs), "bsd43_oldsetpgrp" }, [2040] = { 0, TF|TLST|TSTA,SEN(printargs), "bsd43_lstat" }, @@ -387,8 +387,8 @@ [2043] = { 0, 0, SEN(printargs), "bsd43_times" }, [2044] = { 0, 0, SEN(printargs), "bsd43_profil" }, [2045] = { 0, 0, SEN(printargs), "bsd43_msgsys" }, -[2046] = { 0, 0, SEN(printargs), "bsd43_setgid" }, -[2047] = { 0, 0, SEN(printargs), "bsd43_getgid" }, +[2046] = { 0, TC, SEN(printargs), "bsd43_setgid" }, +[2047] = { 0, TC, SEN(printargs), "bsd43_getgid" }, [2048] = { 0, 0, SEN(printargs), "bsd43_ssig" }, [2049] = { }, [2050] = { }, @@ -420,8 +420,8 @@ [2076] = { 0, 0, SEN(printargs), "bsd43_vhangup" }, [2077] = { 0, 0, SEN(printargs), "bsd43_vlimit" }, [2078] = { 0, TM, SEN(printargs), "bsd43_mincore" }, -[2079] = { 0, 0, SEN(printargs), "bsd43_getgroups" }, -[2080] = { 0, 0, SEN(printargs), "bsd43_setgroups" }, +[2079] = { 0, TC, SEN(printargs), "bsd43_getgroups" }, +[2080] = { 0, TC, SEN(printargs), "bsd43_setgroups" }, [2081] = { 0, 0, SEN(printargs), "bsd43_getpgrp" }, [2082] = { 0, 0, SEN(printargs), "bsd43_setpgrp" }, [2083] = { 0, 0, SEN(printargs), "bsd43_setitimer" }, @@ -457,18 +457,18 @@ [2113] = { 0, 0, SEN(printargs), "bsd43_oldrecvmsg" }, [2114] = { 0, 0, SEN(printargs), "bsd43_oldsendmsg" }, [2115] = { 0, 0, SEN(printargs), "bsd43_vtrace" }, -[2116] = { 0, 0, SEN(printargs), "bsd43_gettimeofday" }, +[2116] = { 0, TCL, SEN(printargs), "bsd43_gettimeofday" }, [2117] = { 0, 0, SEN(printargs), "bsd43_getrusage" }, [2118] = { 0, 0, SEN(printargs), "bsd43_getsockopt" }, [2119] = { }, [2120] = { 0, 0, SEN(printargs), "bsd43_readv" }, [2121] = { 0, 0, SEN(printargs), "bsd43_writev" }, -[2122] = { 0, 0, SEN(printargs), "bsd43_settimeofday" }, +[2122] = { 0, TCL, SEN(printargs), "bsd43_settimeofday" }, [2123] = { 0, 0, SEN(printargs), "bsd43_fchown" }, [2124] = { 0, 0, SEN(printargs), "bsd43_fchmod" }, [2125] = { 0, 0, SEN(printargs), "bsd43_oldrecvfrom" }, -[2126] = { 0, 0, SEN(printargs), "bsd43_setreuid" }, -[2127] = { 0, 0, SEN(printargs), "bsd43_setregid" }, +[2126] = { 0, TC, SEN(printargs), "bsd43_setreuid" }, +[2127] = { 0, TC, SEN(printargs), "bsd43_setregid" }, [2128] = { 0, 0, SEN(printargs), "bsd43_rename" }, [2129] = { 0, 0, SEN(printargs), "bsd43_truncate" }, [2130] = { 0, 0, SEN(printargs), "bsd43_ftruncate" }, @@ -481,13 +481,13 @@ [2137] = { 0, 0, SEN(printargs), "bsd43_rmdir" }, [2138] = { 0, 0, SEN(printargs), "bsd43_utimes" }, [2139] = { 0, 0, SEN(printargs), "bsd43_sigcleanup" }, -[2140] = { 0, 0, SEN(printargs), "bsd43_adjtime" }, +[2140] = { 0, TCL, SEN(printargs), "bsd43_adjtime" }, [2141] = { 0, 0, SEN(printargs), "bsd43_oldgetpeername" }, [2142] = { 0, 0, SEN(printargs), "bsd43_gethostid" }, [2143] = { 0, 0, SEN(printargs), "bsd43_sethostid" }, [2144] = { 0, 0, SEN(printargs), "bsd43_getrlimit" }, [2145] = { 0, 0, SEN(printargs), "bsd43_setrlimit" }, -[2146] = { 0, 0, SEN(printargs), "bsd43_killpg" }, +[2146] = { 0, TP, SEN(printargs), "bsd43_killpg" }, [2147] = { 0, 0, SEN(printargs), "bsd43_shmsys" }, [2148] = { 0, 0, SEN(printargs), "bsd43_quota" }, [2149] = { 0, 0, SEN(printargs), "bsd43_qquota" }, @@ -557,8 +557,8 @@ [3020] = { 0, 0, SEN(printargs), "posix_getpid" }, [3021] = { 0, 0, SEN(printargs), "posix_mount" }, [3022] = { 0, 0, SEN(printargs), "posix_umount" }, -[3023] = { 0, 0, SEN(printargs), "posix_setuid" }, -[3024] = { 0, 0, SEN(printargs), "posix_getuid" }, +[3023] = { 0, TC, SEN(printargs), "posix_setuid" }, +[3024] = { 0, TC, SEN(printargs), "posix_getuid" }, [3025] = { 0, 0, SEN(printargs), "posix_stime" }, [3026] = { 0, 0, SEN(printargs), "posix_ptrace" }, [3027] = { 0, 0, SEN(printargs), "posix_alarm" }, @@ -571,7 +571,7 @@ [3034] = { 0, 0, SEN(printargs), "posix_nice" }, [3035] = { 0, TF|TSF|TSFA,SEN(printargs), "posix_statfs" }, [3036] = { 0, 0, SEN(printargs), "posix_sync" }, -[3037] = { 0, 0, SEN(printargs), "posix_kill" }, +[3037] = { 0, TP, SEN(printargs), "posix_kill" }, [3038] = { 0, TD|TFSF|TSFA,SEN(printargs), "posix_fstatfs" }, [3039] = { 0, 0, SEN(printargs), "posix_getpgrp" }, [3040] = { 0, 0, SEN(printargs), "posix_syssgi" }, @@ -580,8 +580,8 @@ [3043] = { 0, 0, SEN(printargs), "posix_times" }, [3044] = { 0, 0, SEN(printargs), "posix_profil" }, [3045] = { 0, 0, SEN(printargs), "posix_lock" }, -[3046] = { 0, 0, SEN(printargs), "posix_setgid" }, -[3047] = { 0, 0, SEN(printargs), "posix_getgid" }, +[3046] = { 0, TC, SEN(printargs), "posix_setgid" }, +[3047] = { 0, TC, SEN(printargs), "posix_getgid" }, [3048] = { 0, 0, SEN(printargs), "posix_sig" }, [3049] = { 0, 0, SEN(printargs), "posix_msgsys" }, [3050] = { 0, 0, SEN(printargs), "posix_sysmips" }, @@ -652,11 +652,11 @@ [3120] = { 0, 0, SEN(printargs), "posix_nfs_getfh" }, [3121] = { 0, 0, SEN(printargs), "posix_async_daemon" }, [3122] = { 0, 0, SEN(printargs), "posix_exportfs" }, -[3123] = { 0, 0, SEN(printargs), "posix_SGI_setregid" }, -[3124] = { 0, 0, SEN(printargs), "posix_SGI_setreuid" }, +[3123] = { 0, TC, SEN(printargs), "posix_SGI_setregid" }, +[3124] = { 0, TC, SEN(printargs), "posix_SGI_setreuid" }, [3125] = { 0, 0, SEN(printargs), "posix_getitimer" }, [3126] = { 0, 0, SEN(printargs), "posix_setitimer" }, -[3127] = { 0, 0, SEN(printargs), "posix_adjtime" }, +[3127] = { 0, TCL, SEN(printargs), "posix_adjtime" }, [3128] = { 0, 0, SEN(printargs), "posix_SGI_bsdgettime" }, [3129] = { 0, 0, SEN(printargs), "posix_SGI_sproc" }, [3130] = { 0, 0, SEN(printargs), "posix_SGI_prctl" }, @@ -684,12 +684,12 @@ [3156] = { 0, TM|SI, SEN(printargs), "posix_munmap" }, [3157] = { 0, TM, SEN(printargs), "posix_madvise" }, [3158] = { 0, 0, SEN(printargs), "posix_BSD_getpagesize" }, -[3159] = { 0, 0, SEN(printargs), "posix_setreuid" }, -[3160] = { 0, 0, SEN(printargs), "posix_setregid" }, +[3159] = { 0, TC, SEN(printargs), "posix_setreuid" }, +[3160] = { 0, TC, SEN(printargs), "posix_setregid" }, [3161] = { 0, 0, SEN(printargs), "posix_setpgid" }, -[3162] = { 0, 0, SEN(printargs), "posix_getgroups" }, -[3163] = { 0, 0, SEN(printargs), "posix_setgroups" }, -[3164] = { 0, 0, SEN(printargs), "posix_gettimeofday" }, +[3162] = { 0, TC, SEN(printargs), "posix_getgroups" }, +[3163] = { 0, TC, SEN(printargs), "posix_setgroups" }, +[3164] = { 0, TCL, SEN(printargs), "posix_gettimeofday" }, [3165] = { 0, 0, SEN(printargs), "posix_getrusage" }, [3166] = { 0, 0, SEN(printargs), "posix_getrlimit" }, [3167] = { 0, 0, SEN(printargs), "posix_setrlimit" }, diff --git a/linux/mips/syscallent-n32.h b/linux/mips/syscallent-n32.h index 16ec2a1b..9c05c867 100644 --- a/linux/mips/syscallent-n32.h +++ b/linux/mips/syscallent-n32.h @@ -1,376 +1,359 @@ /* - * Copyright (c) 2013-2019 The strace developers. + * Copyright (c) 2013-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ +#define BASE_NR 6000 #if defined LINUX_MIPSN32 /* For an N32 strace decode the N32 64-bit syscalls. */ -[6000] = { 3, TD, SEN(read), "read" }, /* start of Linux N32 */ -[6001] = { 3, TD, SEN(write), "write" }, -[6002] = { 3, TD|TF, SEN(open), "open" }, -[6003] = { 1, TD, SEN(close), "close" }, -[6004] = { 2, TF|TST|TSTA, SEN(stat64), "stat" }, -[6005] = { 2, TD|TFST|TSTA, SEN(fstat64), "fstat" }, -[6006] = { 2, TF|TLST|TSTA, SEN(lstat64), "lstat" }, -[6007] = { 3, TD, SEN(poll_time32), "poll" }, -[6008] = { 3, TD, SEN(lseek), "lseek" }, -[6009] = { 6, TD|TM|SI, SEN(mmap), "mmap" }, -[6010] = { 3, TM|SI, SEN(mprotect), "mprotect" }, -[6011] = { 2, TM|SI, SEN(munmap), "munmap" }, -[6012] = { 1, TM|SI, SEN(brk), "brk" }, -[6013] = { 4, TS, SEN(rt_sigaction), "rt_sigaction" }, -[6014] = { 4, TS, SEN(rt_sigprocmask), "rt_sigprocmask" }, -[6015] = { 3, TD, SEN(ioctl), "ioctl" }, -[6016] = { 4, TD, SEN(pread), "pread64" }, -[6017] = { 4, TD, SEN(pwrite), "pwrite64" }, -[6018] = { 3, TD, SEN(readv), "readv" }, -[6019] = { 3, TD, SEN(writev), "writev" }, -[6020] = { 2, TF, SEN(access), "access" }, -[6021] = { 0, TD, SEN(pipe), "pipe" }, -[6022] = { 5, TD, SEN(select), "_newselect" }, -[6023] = { 0, 0, SEN(sched_yield), "sched_yield" }, -[6024] = { 5, TM|SI, SEN(mremap), "mremap" }, -[6025] = { 3, TM, SEN(msync), "msync" }, -[6026] = { 3, TM, SEN(mincore), "mincore" }, -[6027] = { 3, TM, SEN(madvise), "madvise" }, -[6028] = { 3, TI, SEN(shmget), "shmget" }, -[6029] = { 3, TI|TM|SI, SEN(shmat), "shmat" }, -[6030] = { 3, TI, SEN(shmctl), "shmctl" }, -[6031] = { 1, TD, SEN(dup), "dup" }, -[6032] = { 2, TD, SEN(dup2), "dup2" }, -[6033] = { 0, TS, SEN(pause), "pause" }, -[6034] = { 2, 0, SEN(nanosleep_time32), "nanosleep" }, -[6035] = { 2, 0, SEN(getitimer), "getitimer" }, -[6036] = { 3, 0, SEN(setitimer), "setitimer" }, -[6037] = { 1, 0, SEN(alarm), "alarm" }, -[6038] = { 0, PU|NF, SEN(getpid), "getpid" }, -[6039] = { 4, TD|TN, SEN(sendfile), "sendfile" }, -[6040] = { 3, TN, SEN(socket), "socket" }, -[6041] = { 3, TN, SEN(connect), "connect" }, -[6042] = { 3, TN, SEN(accept), "accept" }, -[6043] = { 6, TN, SEN(sendto), "sendto" }, -[6044] = { 6, TN, SEN(recvfrom), "recvfrom" }, -[6045] = { 3, TN, SEN(sendmsg), "sendmsg" }, -[6046] = { 3, TN, SEN(recvmsg), "recvmsg" }, -[6047] = { 2, TN, SEN(shutdown), "shutdown" }, -[6048] = { 3, TN, SEN(bind), "bind" }, -[6049] = { 2, TN, SEN(listen), "listen" }, -[6050] = { 3, TN, SEN(getsockname), "getsockname" }, -[6051] = { 3, TN, SEN(getpeername), "getpeername" }, -[6052] = { 4, TN, SEN(socketpair), "socketpair" }, -[6053] = { 5, TN, SEN(setsockopt), "setsockopt" }, -[6054] = { 5, TN, SEN(getsockopt), "getsockopt" }, -[6055] = { 5, TP, SEN(clone), "clone" }, -[6056] = { 0, TP, SEN(fork), "fork" }, -[6057] = { 3, TF|TP|SE|SI, SEN(execve), "execve" }, -[6058] = { 1, TP|SE, SEN(exit), "exit" }, -[6059] = { 4, TP, SEN(wait4), "wait4" }, -[6060] = { 2, TS, SEN(kill), "kill" }, -[6061] = { 1, 0, SEN(uname), "uname" }, -[6062] = { 3, TI, SEN(semget), "semget" }, -[6063] = { 3, TI, SEN(semop), "semop" }, -[6064] = { 4, TI, SEN(semctl), "semctl" }, -[6065] = { 1, TI|TM|SI, SEN(shmdt), "shmdt" }, -[6066] = { 2, TI, SEN(msgget), "msgget" }, -[6067] = { 4, TI, SEN(msgsnd), "msgsnd" }, -[6068] = { 5, TI, SEN(msgrcv), "msgrcv" }, -[6069] = { 3, TI, SEN(msgctl), "msgctl" }, -[6070] = { 3, TD, SEN(fcntl), "fcntl" }, -[6071] = { 2, TD, SEN(flock), "flock" }, -[6072] = { 1, TD, SEN(fsync), "fsync" }, -[6073] = { 1, TD, SEN(fdatasync), "fdatasync" }, -[6074] = { 2, TF, SEN(truncate64), "truncate" }, -[6075] = { 2, TD, SEN(ftruncate64), "ftruncate" }, -[6076] = { 3, TD, SEN(getdents), "getdents" }, -[6077] = { 2, TF, SEN(getcwd), "getcwd" }, -[6078] = { 1, TF, SEN(chdir), "chdir" }, -[6079] = { 1, TD, SEN(fchdir), "fchdir" }, -[6080] = { 2, TF, SEN(rename), "rename" }, -[6081] = { 2, TF, SEN(mkdir), "mkdir" }, -[6082] = { 1, TF, SEN(rmdir), "rmdir" }, -[6083] = { 2, TD|TF, SEN(creat), "creat" }, -[6084] = { 2, TF, SEN(link), "link" }, -[6085] = { 1, TF, SEN(unlink), "unlink" }, -[6086] = { 2, TF, SEN(symlink), "symlink" }, -[6087] = { 3, TF, SEN(readlink), "readlink" }, -[6088] = { 2, TF, SEN(chmod), "chmod" }, -[6089] = { 2, TD, SEN(fchmod), "fchmod" }, -[6090] = { 3, TF, SEN(chown), "chown" }, -[6091] = { 3, TD, SEN(fchown), "fchown" }, -[6092] = { 3, TF, SEN(chown), "lchown" }, -[6093] = { 1, NF, SEN(umask), "umask" }, -[6094] = { 2, 0, SEN(gettimeofday), "gettimeofday" }, -[6095] = { 2, 0, SEN(getrlimit), "getrlimit" }, -[6096] = { 2, 0, SEN(getrusage), "getrusage" }, -[6097] = { 1, 0, SEN(sysinfo), "sysinfo" }, -[6098] = { 1, 0, SEN(times), "times" }, -[6099] = { 4, 0, SEN(ptrace), "ptrace" }, -[6100] = { 0, PU|NF, SEN(getuid), "getuid" }, -[6101] = { 3, 0, SEN(syslog), "syslog" }, -[6102] = { 0, PU|NF, SEN(getgid), "getgid" }, -[6103] = { 1, 0, SEN(setuid), "setuid" }, -[6104] = { 1, 0, SEN(setgid), "setgid" }, -[6105] = { 0, PU|NF, SEN(geteuid), "geteuid" }, -[6106] = { 0, PU|NF, SEN(getegid), "getegid" }, -[6107] = { 2, 0, SEN(setpgid), "setpgid" }, -[6108] = { 0, PU|NF, SEN(getppid), "getppid" }, -[6109] = { 0, PU|NF, SEN(getpgrp), "getpgrp" }, -[6110] = { 0, 0, SEN(setsid), "setsid" }, -[6111] = { 2, 0, SEN(setreuid), "setreuid" }, -[6112] = { 2, 0, SEN(setregid), "setregid" }, -[6113] = { 2, 0, SEN(getgroups), "getgroups" }, -[6114] = { 2, 0, SEN(setgroups), "setgroups" }, -[6115] = { 3, 0, SEN(setresuid), "setresuid" }, -[6116] = { 3, 0, SEN(getresuid), "getresuid" }, -[6117] = { 3, 0, SEN(setresgid), "setresgid" }, -[6118] = { 3, 0, SEN(getresgid), "getresgid" }, -[6119] = { 1, 0, SEN(getpgid), "getpgid" }, -[6120] = { 1, NF, SEN(setfsuid), "setfsuid" }, -[6121] = { 1, NF, SEN(setfsgid), "setfsgid" }, -[6122] = { 1, 0, SEN(getsid), "getsid" }, -[6123] = { 2, 0, SEN(capget), "capget" }, -[6124] = { 2, 0, SEN(capset), "capset" }, -[6125] = { 2, TS, SEN(rt_sigpending), "rt_sigpending" }, -[6126] = { 4, TS, SEN(rt_sigtimedwait_time32), "rt_sigtimedwait" }, -[6127] = { 3, TS, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, -[6128] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" }, -[6129] = { 2, TS, SEN(sigaltstack), "sigaltstack" }, -[6130] = { 2, TF, SEN(utime), "utime" }, -[6131] = { 3, TF, SEN(mknod), "mknod" }, -[6132] = { 1, NF, SEN(personality), "personality" }, -[6133] = { 2, TSFA, SEN(ustat), "ustat" }, -[6134] = { 2, TF|TSF|TSFA, SEN(statfs), "statfs" }, -[6135] = { 2, TD|TFSF|TSFA, SEN(fstatfs), "fstatfs" }, -[6136] = { 3, 0, SEN(sysfs), "sysfs" }, -[6137] = { 2, 0, SEN(getpriority), "getpriority" }, -[6138] = { 3, 0, SEN(setpriority), "setpriority" }, -[6139] = { 2, 0, SEN(sched_setparam), "sched_setparam" }, -[6140] = { 2, 0, SEN(sched_getparam), "sched_getparam" }, -[6141] = { 3, 0, SEN(sched_setscheduler), "sched_setscheduler" }, -[6142] = { 1, 0, SEN(sched_getscheduler), "sched_getscheduler" }, -[6143] = { 1, 0, SEN(sched_get_priority_max), "sched_get_priority_max"}, -[6144] = { 1, 0, SEN(sched_get_priority_min), "sched_get_priority_min"}, -[6145] = { 2, 0, SEN(sched_rr_get_interval_time32),"sched_rr_get_interval"}, -[6146] = { 2, TM, SEN(mlock), "mlock" }, -[6147] = { 2, TM, SEN(munlock), "munlock" }, -[6148] = { 1, TM, SEN(mlockall), "mlockall" }, -[6149] = { 0, TM, SEN(munlockall), "munlockall" }, -[6150] = { 0, 0, SEN(vhangup), "vhangup" }, -[6151] = { 2, TF, SEN(pivotroot), "pivot_root" }, -[6152] = { 1, 0, SEN(sysctl), "_sysctl" }, -[6153] = { 5, 0, SEN(prctl), "prctl" }, -[6154] = { 1, 0, SEN(adjtimex32), "adjtimex" }, -[6155] = { 2, 0, SEN(setrlimit), "setrlimit" }, -[6156] = { 1, TF, SEN(chroot), "chroot" }, -[6157] = { 0, 0, SEN(sync), "sync" }, -[6158] = { 1, TF, SEN(acct), "acct" }, -[6159] = { 2, 0, SEN(settimeofday), "settimeofday" }, -[6160] = { 5, TF, SEN(mount), "mount" }, -[6161] = { 2, TF, SEN(umount2), "umount2" }, -[6162] = { 2, TF, SEN(swapon), "swapon" }, -[6163] = { 1, TF, SEN(swapoff), "swapoff" }, -[6164] = { 4, 0, SEN(reboot), "reboot" }, -[6165] = { 2, 0, SEN(sethostname), "sethostname" }, -[6166] = { 2, 0, SEN(setdomainname), "setdomainname" }, -[6167] = { 2, 0, SEN(create_module), "create_module" }, -[6168] = { 3, 0, SEN(init_module), "init_module" }, -[6169] = { 2, 0, SEN(delete_module), "delete_module" }, -[6170] = { 1, 0, SEN(get_kernel_syms), "get_kernel_syms" }, -[6171] = { 5, 0, SEN(query_module), "query_module" }, -[6172] = { 4, TF, SEN(quotactl), "quotactl" }, -[6173] = { 3, 0, SEN(nfsservctl), "nfsservctl" }, -[6174] = { 5, TN, SEN(getpmsg), "getpmsg" }, -[6175] = { 5, TN, SEN(putpmsg), "putpmsg" }, -[6176] = { 0, 0, SEN(afs_syscall), "afs_syscall" }, -[6177] = { 0, 0, SEN(printargs), "reserved177" }, -[6178] = { 0, PU|NF, SEN(gettid), "gettid" }, -[6179] = { 3, TD, SEN(readahead), "readahead" }, -[6180] = { 5, TF, SEN(setxattr), "setxattr" }, -[6181] = { 5, TF, SEN(setxattr), "lsetxattr" }, -[6182] = { 5, TD, SEN(fsetxattr), "fsetxattr" }, -[6183] = { 4, TF, SEN(getxattr), "getxattr" }, -[6184] = { 4, TF, SEN(getxattr), "lgetxattr" }, -[6185] = { 4, TD, SEN(fgetxattr), "fgetxattr" }, -[6186] = { 3, TF, SEN(listxattr), "listxattr" }, -[6187] = { 3, TF, SEN(listxattr), "llistxattr" }, -[6188] = { 3, TD, SEN(flistxattr), "flistxattr" }, -[6189] = { 2, TF, SEN(removexattr), "removexattr" }, -[6190] = { 2, TF, SEN(removexattr), "lremovexattr" }, -[6191] = { 2, TD, SEN(fremovexattr), "fremovexattr" }, -[6192] = { 2, TS, SEN(kill), "tkill" }, -[6193] = { 1, 0, SEN(time), "time" }, -[6194] = { 6, 0, SEN(futex_time32), "futex" }, -[6195] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" }, -[6196] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" }, -[6197] = { 3, 0, SEN(printargs), "cacheflush" }, -[6198] = { 3, 0, SEN(printargs), "cachectl" }, -[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_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" }, -[6206] = { 3, 0, SEN(lookup_dcookie), "lookup_dcookie" }, -[6207] = { 1, TD, SEN(epoll_create), "epoll_create" }, -[6208] = { 4, TD, SEN(epoll_ctl), "epoll_ctl" }, -[6209] = { 4, TD, SEN(epoll_wait), "epoll_wait" }, -[6210] = { 5, TM|SI, SEN(remap_file_pages), "remap_file_pages" }, -[6211] = { 0, TS, SEN(rt_sigreturn), "rt_sigreturn" }, -[6212] = { 3, TD, SEN(fcntl64), "fcntl64" }, -[6213] = { 1, 0, SEN(set_tid_address), "set_tid_address" }, -[6214] = { 0, 0, SEN(restart_syscall), "restart_syscall" }, -[6215] = { 4, TI, SEN(semtimedop_time32), "semtimedop" }, -[6216] = { 4, TD, SEN(fadvise64_64), "fadvise64" }, -[6217] = { 3, TF|TSF|TSFA, SEN(statfs64), "statfs64" }, -[6218] = { 3, TD|TFSF|TSFA, SEN(fstatfs64), "fstatfs64" }, -[6219] = { 4, TD|TN, SEN(sendfile64), "sendfile64" }, -[6220] = { 3, 0, SEN(timer_create), "timer_create" }, -[6221] = { 4, 0, SEN(timer_settime32), "timer_settime" }, -[6222] = { 2, 0, SEN(timer_gettime32), "timer_gettime" }, -[6223] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" }, -[6224] = { 1, 0, SEN(timer_delete), "timer_delete" }, -[6225] = { 2, 0, SEN(clock_settime32), "clock_settime" }, -[6226] = { 2, 0, SEN(clock_gettime32), "clock_gettime" }, -[6227] = { 2, 0, SEN(clock_getres_time32), "clock_getres" }, -[6228] = { 4, 0, SEN(clock_nanosleep_time32), "clock_nanosleep" }, -[6229] = { 3, TS, SEN(tgkill), "tgkill" }, -[6230] = { 2, TF, SEN(utimes), "utimes" }, -[6231] = { 6, TM, SEN(mbind), "mbind" }, -[6232] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" }, -[6233] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" }, -[6234] = { 4, TD, SEN(mq_open), "mq_open" }, -[6235] = { 1, 0, SEN(mq_unlink), "mq_unlink" }, -[6236] = { 5, TD, SEN(mq_timedsend_time32), "mq_timedsend" }, -[6237] = { 5, TD, SEN(mq_timedreceive_time32), "mq_timedreceive" }, -[6238] = { 2, TD, SEN(mq_notify), "mq_notify" }, -[6239] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" }, -[6240] = { 5, 0, SEN(vserver), "vserver" }, -[6241] = { 5, TP, SEN(waitid), "waitid" }, -[6242] = { }, -[6243] = { 5, 0, SEN(add_key), "add_key" }, -[6244] = { 4, 0, SEN(request_key), "request_key" }, -[6245] = { 5, 0, SEN(keyctl), "keyctl" }, -[6246] = { 1, 0, SEN(set_thread_area), "set_thread_area" }, -[6247] = { 0, TD, SEN(inotify_init), "inotify_init" }, -[6248] = { 3, TD|TF, SEN(inotify_add_watch), "inotify_add_watch" }, -[6249] = { 2, TD, SEN(inotify_rm_watch), "inotify_rm_watch" }, -[6250] = { 4, TM, SEN(migrate_pages), "migrate_pages" }, -[6251] = { 4, TD|TF, SEN(openat), "openat" }, -[6252] = { 3, TD|TF, SEN(mkdirat), "mkdirat" }, -[6253] = { 4, TD|TF, SEN(mknodat), "mknodat" }, -[6254] = { 5, TD|TF, SEN(fchownat), "fchownat" }, -[6255] = { 3, TD|TF, SEN(futimesat), "futimesat" }, -[6256] = { 4, TD|TF|TFST|TSTA,SEN(newfstatat), "newfstatat" }, -[6257] = { 3, TD|TF, SEN(unlinkat), "unlinkat" }, -[6258] = { 4, TD|TF, SEN(renameat), "renameat" }, -[6259] = { 5, TD|TF, SEN(linkat), "linkat" }, -[6260] = { 3, TD|TF, SEN(symlinkat), "symlinkat" }, -[6261] = { 4, TD|TF, SEN(readlinkat), "readlinkat" }, -[6262] = { 3, TD|TF, SEN(fchmodat), "fchmodat" }, -[6263] = { 3, TD|TF, SEN(faccessat), "faccessat" }, -[6264] = { 6, TD, SEN(pselect6_time32), "pselect6" }, -[6265] = { 5, TD, SEN(ppoll_time32), "ppoll" }, -[6266] = { 1, TP, SEN(unshare), "unshare" }, -[6267] = { 6, TD, SEN(splice), "splice" }, -[6268] = { 4, TD, SEN(sync_file_range), "sync_file_range" }, -[6269] = { 4, TD, SEN(tee), "tee" }, -[6270] = { 4, TD, SEN(vmsplice), "vmsplice" }, -[6271] = { 6, TM, SEN(move_pages), "move_pages" }, -[6272] = { 2, 0, SEN(set_robust_list), "set_robust_list" }, -[6273] = { 3, 0, SEN(get_robust_list), "get_robust_list" }, -[6274] = { 4, 0, SEN(kexec_load), "kexec_load" }, -[6275] = { 3, 0, SEN(getcpu), "getcpu" }, -[6276] = { 6, TD, SEN(epoll_pwait), "epoll_pwait" }, -[6277] = { 3, 0, SEN(ioprio_set), "ioprio_set" }, -[6278] = { 2, 0, SEN(ioprio_get), "ioprio_get" }, -[6279] = { 4, TD|TF, SEN(utimensat_time32), "utimensat" }, -[6280] = { 3, TD|TS, SEN(signalfd), "signalfd" }, -[6281] = { 4, TD, SEN(timerfd), "timerfd" }, -[6282] = { 1, TD, SEN(eventfd), "eventfd" }, -[6283] = { 4, TD, SEN(fallocate), "fallocate" }, -[6284] = { 2, TD, SEN(timerfd_create), "timerfd_create" }, -[6285] = { 2, TD, SEN(timerfd_gettime32), "timerfd_gettime" }, -[6286] = { 4, TD, SEN(timerfd_settime32), "timerfd_settime" }, -[6287] = { 4, TD|TS, SEN(signalfd4), "signalfd4" }, -[6288] = { 2, TD, SEN(eventfd2), "eventfd2" }, -[6289] = { 1, TD, SEN(epoll_create1), "epoll_create1" }, -[6290] = { 3, TD, SEN(dup3), "dup3" }, -[6291] = { 2, TD, SEN(pipe2), "pipe2" }, -[6292] = { 1, TD, SEN(inotify_init1), "inotify_init1" }, -[6293] = { 4, TD, SEN(preadv), "preadv" }, -[6294] = { 4, TD, SEN(pwritev), "pwritev" }, -[6295] = { 4, TP|TS, SEN(rt_tgsigqueueinfo), "rt_tgsigqueueinfo" }, -[6296] = { 5, TD, SEN(perf_event_open), "perf_event_open" }, -[6297] = { 4, TN, SEN(accept4), "accept4" }, -[6298] = { 5, TN, SEN(recvmmsg_time32), "recvmmsg" }, -[6299] = { 3, TD, SEN(getdents64), "getdents64" }, -[6300] = { 2, TD, SEN(fanotify_init), "fanotify_init" }, -[6301] = { 5, TD|TF, SEN(fanotify_mark), "fanotify_mark" }, -[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_adjtime32), "clock_adjtime" }, -[6306] = { 1, TD, SEN(syncfs), "syncfs" }, -[6307] = { 4, TN, SEN(sendmmsg), "sendmmsg" }, -[6308] = { 2, TD, SEN(setns), "setns" }, -[6309] = { 6, 0, SEN(process_vm_readv), "process_vm_readv" }, -[6310] = { 6, 0, SEN(process_vm_writev), "process_vm_writev" }, -[6311] = { 5, 0, SEN(kcmp), "kcmp" }, -[6312] = { 3, TD, SEN(finit_module), "finit_module" }, -[6313] = { 3, 0, SEN(sched_setattr), "sched_setattr" }, -[6314] = { 4, 0, SEN(sched_getattr), "sched_getattr" }, -[6315] = { 5, TD|TF, SEN(renameat2), "renameat2" }, -[6316] = { 3, 0, SEN(seccomp), "seccomp" }, -[6317] = { 3, 0, SEN(getrandom), "getrandom" }, -[6318] = { 2, TD, SEN(memfd_create), "memfd_create" }, -[6319] = { 3, TD, SEN(bpf), "bpf" }, -[6320] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat" }, -[6321] = { 1, TD, SEN(userfaultfd), "userfaultfd" }, -[6322] = { 2, 0, SEN(membarrier), "membarrier" }, -[6323] = { 3, TM, SEN(mlock2), "mlock2" }, -[6324] = { 6, TD, SEN(copy_file_range), "copy_file_range" }, -[6325] = { 6, TD, SEN(preadv2), "preadv2" }, -[6326] = { 6, TD, SEN(pwritev2), "pwritev2" }, -[6327] = { 4, TM|SI, SEN(pkey_mprotect), "pkey_mprotect" }, -[6328] = { 2, 0, SEN(pkey_alloc), "pkey_alloc" }, -[6329] = { 1, 0, SEN(pkey_free), "pkey_free" }, -[6330] = { 5, TD|TF|TSTA, SEN(statx), "statx" }, -[6331] = { 4, 0, SEN(rseq), "rseq" }, -[6332] = { 6, 0, SEN(io_pgetevents_time32), "io_pgetevents" }, -/* [6333 ... 6402] - reserved to sync up with other architectures */ -[6403] = { 2, 0, SEN(clock_gettime64), "clock_gettime64" }, -[6404] = { 2, 0, SEN(clock_settime64), "clock_settime64" }, -[6405] = { 2, 0, SEN(clock_adjtime64), "clock_adjtime64" }, -[6406] = { 2, 0, SEN(clock_getres_time64), "clock_getres_time64" }, -[6407] = { 4, 0, SEN(clock_nanosleep_time64), "clock_nanosleep_time64"}, -[6408] = { 2, 0, SEN(timer_gettime64), "timer_gettime64" }, -[6409] = { 4, 0, SEN(timer_settime64), "timer_settime64" }, -[6410] = { 2, TD, SEN(timerfd_gettime64), "timerfd_gettime64" }, -[6411] = { 4, TD, SEN(timerfd_settime64), "timerfd_settime64" }, -[6412] = { 4, TD|TF, SEN(utimensat_time64), "utimensat_time64" }, -[6413] = { 6, TD, SEN(pselect6_time64), "pselect6_time64" }, -[6414] = { 5, TD, SEN(ppoll_time64), "ppoll_time64" }, -[6416] = { 6, 0, SEN(io_pgetevents_time64), "io_pgetevents_time64" }, -[6417] = { 5, TN, SEN(recvmmsg_time64), "recvmmsg_time64" }, -[6418] = { 5, TD, SEN(mq_timedsend_time64), "mq_timedsend_time64" }, -[6419] = { 5, TD, SEN(mq_timedreceive_time64), "mq_timedreceive_time64"}, -[6420] = { 4, TI, SEN(semtimedop_time64), "semtimedop_time64" }, -[6421] = { 4, TS, SEN(rt_sigtimedwait_time64), "rt_sigtimedwait_time64"}, -[6422] = { 6, 0, SEN(futex_time64), "futex_time64" }, -[6423] = { 2, 0, SEN(sched_rr_get_interval_time64), "sched_rr_get_interval_time64" }, -[6424] = { 4, TD|TS, SEN(pidfd_send_signal), "pidfd_send_signal" }, -[6425] = { 2, TD, SEN(io_uring_setup), "io_uring_setup" }, -[6426] = { 6, TD|TS, SEN(io_uring_enter), "io_uring_enter" }, -[6427] = { 4, TD|TM, SEN(io_uring_register), "io_uring_register" }, +[BASE_NR + 0] = { 3, TD, SEN(read), "read" }, /* start of Linux N32 */ +[BASE_NR + 1] = { 3, TD, SEN(write), "write" }, +[BASE_NR + 2] = { 3, TD|TF, SEN(open), "open" }, +[BASE_NR + 3] = { 1, TD, SEN(close), "close" }, +[BASE_NR + 4] = { 2, TF|TST|TSTA, SEN(stat64), "stat" }, +[BASE_NR + 5] = { 2, TD|TFST|TSTA, SEN(fstat64), "fstat" }, +[BASE_NR + 6] = { 2, TF|TLST|TSTA, SEN(lstat64), "lstat" }, +[BASE_NR + 7] = { 3, TD, SEN(poll_time32), "poll" }, +[BASE_NR + 8] = { 3, TD, SEN(lseek), "lseek" }, +[BASE_NR + 9] = { 6, TD|TM|SI, SEN(mmap), "mmap" }, +[BASE_NR + 10] = { 3, TM|SI, SEN(mprotect), "mprotect" }, +[BASE_NR + 11] = { 2, TM|SI, SEN(munmap), "munmap" }, +[BASE_NR + 12] = { 1, TM|SI, SEN(brk), "brk" }, +[BASE_NR + 13] = { 4, TS, SEN(rt_sigaction), "rt_sigaction" }, +[BASE_NR + 14] = { 4, TS, SEN(rt_sigprocmask), "rt_sigprocmask" }, +[BASE_NR + 15] = { 3, TD, SEN(ioctl), "ioctl" }, +[BASE_NR + 16] = { 4, TD, SEN(pread), "pread64" }, +[BASE_NR + 17] = { 4, TD, SEN(pwrite), "pwrite64" }, +[BASE_NR + 18] = { 3, TD, SEN(readv), "readv" }, +[BASE_NR + 19] = { 3, TD, SEN(writev), "writev" }, +[BASE_NR + 20] = { 2, TF, SEN(access), "access" }, +[BASE_NR + 21] = { 0, TD, SEN(pipe), "pipe" }, +[BASE_NR + 22] = { 5, TD, SEN(select), "_newselect" }, +[BASE_NR + 23] = { 0, 0, SEN(sched_yield), "sched_yield" }, +[BASE_NR + 24] = { 5, TM|SI, SEN(mremap), "mremap" }, +[BASE_NR + 25] = { 3, TM, SEN(msync), "msync" }, +[BASE_NR + 26] = { 3, TM, SEN(mincore), "mincore" }, +[BASE_NR + 27] = { 3, TM, SEN(madvise), "madvise" }, +[BASE_NR + 28] = { 3, TI, SEN(shmget), "shmget" }, +[BASE_NR + 29] = { 3, TI|TM|SI, SEN(shmat), "shmat" }, +[BASE_NR + 30] = { 3, TI, SEN(shmctl), "shmctl" }, +[BASE_NR + 31] = { 1, TD, SEN(dup), "dup" }, +[BASE_NR + 32] = { 2, TD, SEN(dup2), "dup2" }, +[BASE_NR + 33] = { 0, TS, SEN(pause), "pause" }, +[BASE_NR + 34] = { 2, 0, SEN(nanosleep_time32), "nanosleep" }, +[BASE_NR + 35] = { 2, 0, SEN(getitimer), "getitimer" }, +[BASE_NR + 36] = { 3, 0, SEN(setitimer), "setitimer" }, +[BASE_NR + 37] = { 1, 0, SEN(alarm), "alarm" }, +[BASE_NR + 38] = { 0, PU|NF, SEN(getpid), "getpid" }, +[BASE_NR + 39] = { 4, TD|TN, SEN(sendfile), "sendfile" }, +[BASE_NR + 40] = { 3, TN, SEN(socket), "socket" }, +[BASE_NR + 41] = { 3, TN, SEN(connect), "connect" }, +[BASE_NR + 42] = { 3, TN, SEN(accept), "accept" }, +[BASE_NR + 43] = { 6, TN, SEN(sendto), "sendto" }, +[BASE_NR + 44] = { 6, TN, SEN(recvfrom), "recvfrom" }, +[BASE_NR + 45] = { 3, TN, SEN(sendmsg), "sendmsg" }, +[BASE_NR + 46] = { 3, TN, SEN(recvmsg), "recvmsg" }, +[BASE_NR + 47] = { 2, TN, SEN(shutdown), "shutdown" }, +[BASE_NR + 48] = { 3, TN, SEN(bind), "bind" }, +[BASE_NR + 49] = { 2, TN, SEN(listen), "listen" }, +[BASE_NR + 50] = { 3, TN, SEN(getsockname), "getsockname" }, +[BASE_NR + 51] = { 3, TN, SEN(getpeername), "getpeername" }, +[BASE_NR + 52] = { 4, TN, SEN(socketpair), "socketpair" }, +[BASE_NR + 53] = { 5, TN, SEN(setsockopt), "setsockopt" }, +[BASE_NR + 54] = { 5, TN, SEN(getsockopt), "getsockopt" }, +[BASE_NR + 55] = { 5, TP, SEN(clone), "clone" }, +[BASE_NR + 56] = { 0, TP, SEN(fork), "fork" }, +[BASE_NR + 57] = { 3, TF|TP|TSD|SE|SI, SEN(execve), "execve" }, +[BASE_NR + 58] = { 1, TP|SE, SEN(exit), "exit" }, +[BASE_NR + 59] = { 4, TP, SEN(wait4), "wait4" }, +[BASE_NR + 60] = { 2, TS|TP, SEN(kill), "kill" }, +[BASE_NR + 61] = { 1, 0, SEN(uname), "uname" }, +[BASE_NR + 62] = { 3, TI, SEN(semget), "semget" }, +[BASE_NR + 63] = { 3, TI, SEN(semop), "semop" }, +[BASE_NR + 64] = { 4, TI, SEN(semctl), "semctl" }, +[BASE_NR + 65] = { 1, TI|TM|SI, SEN(shmdt), "shmdt" }, +[BASE_NR + 66] = { 2, TI, SEN(msgget), "msgget" }, +[BASE_NR + 67] = { 4, TI, SEN(msgsnd), "msgsnd" }, +[BASE_NR + 68] = { 5, TI, SEN(msgrcv), "msgrcv" }, +[BASE_NR + 69] = { 3, TI, SEN(msgctl), "msgctl" }, +[BASE_NR + 70] = { 3, TD, SEN(fcntl), "fcntl" }, +[BASE_NR + 71] = { 2, TD, SEN(flock), "flock" }, +[BASE_NR + 72] = { 1, TD, SEN(fsync), "fsync" }, +[BASE_NR + 73] = { 1, TD, SEN(fdatasync), "fdatasync" }, +[BASE_NR + 74] = { 2, TF, SEN(truncate64), "truncate" }, +[BASE_NR + 75] = { 2, TD, SEN(ftruncate64), "ftruncate" }, +[BASE_NR + 76] = { 3, TD, SEN(getdents), "getdents" }, +[BASE_NR + 77] = { 2, TF, SEN(getcwd), "getcwd" }, +[BASE_NR + 78] = { 1, TF, SEN(chdir), "chdir" }, +[BASE_NR + 79] = { 1, TD, SEN(fchdir), "fchdir" }, +[BASE_NR + 80] = { 2, TF, SEN(rename), "rename" }, +[BASE_NR + 81] = { 2, TF, SEN(mkdir), "mkdir" }, +[BASE_NR + 82] = { 1, TF, SEN(rmdir), "rmdir" }, +[BASE_NR + 83] = { 2, TD|TF, SEN(creat), "creat" }, +[BASE_NR + 84] = { 2, TF, SEN(link), "link" }, +[BASE_NR + 85] = { 1, TF, SEN(unlink), "unlink" }, +[BASE_NR + 86] = { 2, TF, SEN(symlink), "symlink" }, +[BASE_NR + 87] = { 3, TF, SEN(readlink), "readlink" }, +[BASE_NR + 88] = { 2, TF, SEN(chmod), "chmod" }, +[BASE_NR + 89] = { 2, TD, SEN(fchmod), "fchmod" }, +[BASE_NR + 90] = { 3, TF, SEN(chown), "chown" }, +[BASE_NR + 91] = { 3, TD, SEN(fchown), "fchown" }, +[BASE_NR + 92] = { 3, TF, SEN(chown), "lchown" }, +[BASE_NR + 93] = { 1, NF, SEN(umask), "umask" }, +[BASE_NR + 94] = { 2, TCL, SEN(gettimeofday), "gettimeofday" }, +[BASE_NR + 95] = { 2, 0, SEN(getrlimit), "getrlimit" }, +[BASE_NR + 96] = { 2, 0, SEN(getrusage), "getrusage" }, +[BASE_NR + 97] = { 1, 0, SEN(sysinfo), "sysinfo" }, +[BASE_NR + 98] = { 1, 0, SEN(times), "times" }, +[BASE_NR + 99] = { 4, 0, SEN(ptrace), "ptrace" }, +[BASE_NR + 100] = { 0, TC|PU|NF, SEN(getuid), "getuid" }, +[BASE_NR + 101] = { 3, 0, SEN(syslog), "syslog" }, +[BASE_NR + 102] = { 0, TC|PU|NF, SEN(getgid), "getgid" }, +[BASE_NR + 103] = { 1, TC, SEN(setuid), "setuid" }, +[BASE_NR + 104] = { 1, TC, SEN(setgid), "setgid" }, +[BASE_NR + 105] = { 0, TC|PU|NF, SEN(geteuid), "geteuid" }, +[BASE_NR + 106] = { 0, TC|PU|NF, SEN(getegid), "getegid" }, +[BASE_NR + 107] = { 2, 0, SEN(setpgid), "setpgid" }, +[BASE_NR + 108] = { 0, PU|NF, SEN(getppid), "getppid" }, +[BASE_NR + 109] = { 0, PU|NF, SEN(getpgrp), "getpgrp" }, +[BASE_NR + 110] = { 0, 0, SEN(setsid), "setsid" }, +[BASE_NR + 111] = { 2, TC, SEN(setreuid), "setreuid" }, +[BASE_NR + 112] = { 2, TC, SEN(setregid), "setregid" }, +[BASE_NR + 113] = { 2, TC, SEN(getgroups), "getgroups" }, +[BASE_NR + 114] = { 2, TC, SEN(setgroups), "setgroups" }, +[BASE_NR + 115] = { 3, TC, SEN(setresuid), "setresuid" }, +[BASE_NR + 116] = { 3, TC, SEN(getresuid), "getresuid" }, +[BASE_NR + 117] = { 3, TC, SEN(setresgid), "setresgid" }, +[BASE_NR + 118] = { 3, TC, SEN(getresgid), "getresgid" }, +[BASE_NR + 119] = { 1, 0, SEN(getpgid), "getpgid" }, +[BASE_NR + 120] = { 1, TC|NF, SEN(setfsuid), "setfsuid" }, +[BASE_NR + 121] = { 1, TC|NF, SEN(setfsgid), "setfsgid" }, +[BASE_NR + 122] = { 1, 0, SEN(getsid), "getsid" }, +[BASE_NR + 123] = { 2, TC, SEN(capget), "capget" }, +[BASE_NR + 124] = { 2, TC, SEN(capset), "capset" }, +[BASE_NR + 125] = { 2, TS, SEN(rt_sigpending), "rt_sigpending" }, +[BASE_NR + 126] = { 4, TS, SEN(rt_sigtimedwait_time32), "rt_sigtimedwait" }, +[BASE_NR + 127] = { 3, TS|TP, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, +[BASE_NR + 128] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" }, +[BASE_NR + 129] = { 2, TS, SEN(sigaltstack), "sigaltstack" }, +[BASE_NR + 130] = { 2, TF, SEN(utime), "utime" }, +[BASE_NR + 131] = { 3, TF, SEN(mknod), "mknod" }, +[BASE_NR + 132] = { 1, NF, SEN(personality), "personality" }, +[BASE_NR + 133] = { 2, TSFA, SEN(ustat), "ustat" }, +[BASE_NR + 134] = { 2, TF|TSF|TSFA, SEN(statfs), "statfs" }, +[BASE_NR + 135] = { 2, TD|TFSF|TSFA, SEN(fstatfs), "fstatfs" }, +[BASE_NR + 136] = { 3, 0, SEN(sysfs), "sysfs" }, +[BASE_NR + 137] = { 2, 0, SEN(getpriority), "getpriority" }, +[BASE_NR + 138] = { 3, 0, SEN(setpriority), "setpriority" }, +[BASE_NR + 139] = { 2, 0, SEN(sched_setparam), "sched_setparam" }, +[BASE_NR + 140] = { 2, 0, SEN(sched_getparam), "sched_getparam" }, +[BASE_NR + 141] = { 3, 0, SEN(sched_setscheduler), "sched_setscheduler" }, +[BASE_NR + 142] = { 1, 0, SEN(sched_getscheduler), "sched_getscheduler" }, +[BASE_NR + 143] = { 1, 0, SEN(sched_get_priority_max), "sched_get_priority_max"}, +[BASE_NR + 144] = { 1, 0, SEN(sched_get_priority_min), "sched_get_priority_min"}, +[BASE_NR + 145] = { 2, 0, SEN(sched_rr_get_interval_time32),"sched_rr_get_interval"}, +[BASE_NR + 146] = { 2, TM, SEN(mlock), "mlock" }, +[BASE_NR + 147] = { 2, TM, SEN(munlock), "munlock" }, +[BASE_NR + 148] = { 1, TM, SEN(mlockall), "mlockall" }, +[BASE_NR + 149] = { 0, TM, SEN(munlockall), "munlockall" }, +[BASE_NR + 150] = { 0, 0, SEN(vhangup), "vhangup" }, +[BASE_NR + 151] = { 2, TF, SEN(pivotroot), "pivot_root" }, +[BASE_NR + 152] = { 1, 0, SEN(sysctl), "_sysctl" }, +[BASE_NR + 153] = { 5, TC, SEN(prctl), "prctl" }, +[BASE_NR + 154] = { 1, TCL, SEN(adjtimex32), "adjtimex" }, +[BASE_NR + 155] = { 2, 0, SEN(setrlimit), "setrlimit" }, +[BASE_NR + 156] = { 1, TF, SEN(chroot), "chroot" }, +[BASE_NR + 157] = { 0, 0, SEN(sync), "sync" }, +[BASE_NR + 158] = { 1, TF, SEN(acct), "acct" }, +[BASE_NR + 159] = { 2, TCL, SEN(settimeofday), "settimeofday" }, +[BASE_NR + 160] = { 5, TF, SEN(mount), "mount" }, +[BASE_NR + 161] = { 2, TF, SEN(umount2), "umount2" }, +[BASE_NR + 162] = { 2, TF, SEN(swapon), "swapon" }, +[BASE_NR + 163] = { 1, TF, SEN(swapoff), "swapoff" }, +[BASE_NR + 164] = { 4, 0, SEN(reboot), "reboot" }, +[BASE_NR + 165] = { 2, 0, SEN(sethostname), "sethostname" }, +[BASE_NR + 166] = { 2, 0, SEN(setdomainname), "setdomainname" }, +[BASE_NR + 167] = { 2, 0, SEN(create_module), "create_module" }, +[BASE_NR + 168] = { 3, 0, SEN(init_module), "init_module" }, +[BASE_NR + 169] = { 2, 0, SEN(delete_module), "delete_module" }, +[BASE_NR + 170] = { 1, 0, SEN(get_kernel_syms), "get_kernel_syms" }, +[BASE_NR + 171] = { 5, 0, SEN(query_module), "query_module" }, +[BASE_NR + 172] = { 4, TF, SEN(quotactl), "quotactl" }, +[BASE_NR + 173] = { 3, 0, SEN(nfsservctl), "nfsservctl" }, +[BASE_NR + 174] = { 5, TN, SEN(getpmsg), "getpmsg" }, +[BASE_NR + 175] = { 5, TN, SEN(putpmsg), "putpmsg" }, +[BASE_NR + 176] = { 0, 0, SEN(afs_syscall), "afs_syscall" }, +[BASE_NR + 177] = { 0, 0, SEN(printargs), "reserved177" }, +[BASE_NR + 178] = { 0, PU|NF, SEN(gettid), "gettid" }, +[BASE_NR + 179] = { 3, TD, SEN(readahead), "readahead" }, +[BASE_NR + 180] = { 5, TF, SEN(setxattr), "setxattr" }, +[BASE_NR + 181] = { 5, TF, SEN(setxattr), "lsetxattr" }, +[BASE_NR + 182] = { 5, TD, SEN(fsetxattr), "fsetxattr" }, +[BASE_NR + 183] = { 4, TF, SEN(getxattr), "getxattr" }, +[BASE_NR + 184] = { 4, TF, SEN(getxattr), "lgetxattr" }, +[BASE_NR + 185] = { 4, TD, SEN(fgetxattr), "fgetxattr" }, +[BASE_NR + 186] = { 3, TF, SEN(listxattr), "listxattr" }, +[BASE_NR + 187] = { 3, TF, SEN(listxattr), "llistxattr" }, +[BASE_NR + 188] = { 3, TD, SEN(flistxattr), "flistxattr" }, +[BASE_NR + 189] = { 2, TF, SEN(removexattr), "removexattr" }, +[BASE_NR + 190] = { 2, TF, SEN(removexattr), "lremovexattr" }, +[BASE_NR + 191] = { 2, TD, SEN(fremovexattr), "fremovexattr" }, +[BASE_NR + 192] = { 2, TS|TP, SEN(tkill), "tkill" }, +[BASE_NR + 193] = { 1, TCL, SEN(time), "time" }, +[BASE_NR + 194] = { 6, 0, SEN(futex_time32), "futex" }, +[BASE_NR + 195] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" }, +[BASE_NR + 196] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" }, +[BASE_NR + 197] = { 3, 0, SEN(printargs), "cacheflush" }, +[BASE_NR + 198] = { 3, 0, SEN(printargs), "cachectl" }, +[BASE_NR + 199] = { 4, 0, SEN(sysmips), "sysmips" }, +[BASE_NR + 200] = { 2, TM, SEN(io_setup), "io_setup" }, +[BASE_NR + 201] = { 1, TM, SEN(io_destroy), "io_destroy" }, +[BASE_NR + 202] = { 5, 0, SEN(io_getevents_time32), "io_getevents" }, +[BASE_NR + 203] = { 3, 0, SEN(io_submit), "io_submit" }, +[BASE_NR + 204] = { 3, 0, SEN(io_cancel), "io_cancel" }, +[BASE_NR + 205] = { 1, TP|SE, SEN(exit), "exit_group" }, +[BASE_NR + 206] = { 3, 0, SEN(lookup_dcookie), "lookup_dcookie" }, +[BASE_NR + 207] = { 1, TD, SEN(epoll_create), "epoll_create" }, +[BASE_NR + 208] = { 4, TD, SEN(epoll_ctl), "epoll_ctl" }, +[BASE_NR + 209] = { 4, TD, SEN(epoll_wait), "epoll_wait" }, +[BASE_NR + 210] = { 5, TM|SI, SEN(remap_file_pages), "remap_file_pages" }, +[BASE_NR + 211] = { 0, TS, SEN(rt_sigreturn), "rt_sigreturn" }, +[BASE_NR + 212] = { 3, TD, SEN(fcntl64), "fcntl64" }, +[BASE_NR + 213] = { 1, 0, SEN(set_tid_address), "set_tid_address" }, +[BASE_NR + 214] = { 0, 0, SEN(restart_syscall), "restart_syscall" }, +[BASE_NR + 215] = { 4, TI, SEN(semtimedop_time32), "semtimedop" }, +[BASE_NR + 216] = { 4, TD, SEN(fadvise64_64), "fadvise64" }, +[BASE_NR + 217] = { 3, TF|TSF|TSFA, SEN(statfs64), "statfs64" }, +[BASE_NR + 218] = { 3, TD|TFSF|TSFA, SEN(fstatfs64), "fstatfs64" }, +[BASE_NR + 219] = { 4, TD|TN, SEN(sendfile64), "sendfile64" }, +[BASE_NR + 220] = { 3, 0, SEN(timer_create), "timer_create" }, +[BASE_NR + 221] = { 4, 0, SEN(timer_settime32), "timer_settime" }, +[BASE_NR + 222] = { 2, 0, SEN(timer_gettime32), "timer_gettime" }, +[BASE_NR + 223] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" }, +[BASE_NR + 224] = { 1, 0, SEN(timer_delete), "timer_delete" }, +[BASE_NR + 225] = { 2, TCL, SEN(clock_settime32), "clock_settime" }, +[BASE_NR + 226] = { 2, TCL, SEN(clock_gettime32), "clock_gettime" }, +[BASE_NR + 227] = { 2, TCL, SEN(clock_getres_time32), "clock_getres" }, +[BASE_NR + 228] = { 4, 0, SEN(clock_nanosleep_time32), "clock_nanosleep" }, +[BASE_NR + 229] = { 3, TS|TP, SEN(tgkill), "tgkill" }, +[BASE_NR + 230] = { 2, TF, SEN(utimes), "utimes" }, +[BASE_NR + 231] = { 6, TM, SEN(mbind), "mbind" }, +[BASE_NR + 232] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" }, +[BASE_NR + 233] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" }, +[BASE_NR + 234] = { 4, TD, SEN(mq_open), "mq_open" }, +[BASE_NR + 235] = { 1, 0, SEN(mq_unlink), "mq_unlink" }, +[BASE_NR + 236] = { 5, TD, SEN(mq_timedsend_time32), "mq_timedsend" }, +[BASE_NR + 237] = { 5, TD, SEN(mq_timedreceive_time32), "mq_timedreceive" }, +[BASE_NR + 238] = { 2, TD, SEN(mq_notify), "mq_notify" }, +[BASE_NR + 239] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" }, +[BASE_NR + 240] = { 5, 0, SEN(vserver), "vserver" }, +[BASE_NR + 241] = { 5, TP, SEN(waitid), "waitid" }, +[BASE_NR + 242] = { }, +[BASE_NR + 243] = { 5, 0, SEN(add_key), "add_key" }, +[BASE_NR + 244] = { 4, 0, SEN(request_key), "request_key" }, +[BASE_NR + 245] = { 5, 0, SEN(keyctl), "keyctl" }, +[BASE_NR + 246] = { 1, 0, SEN(set_thread_area), "set_thread_area" }, +[BASE_NR + 247] = { 0, TD, SEN(inotify_init), "inotify_init" }, +[BASE_NR + 248] = { 3, TD|TF, SEN(inotify_add_watch), "inotify_add_watch" }, +[BASE_NR + 249] = { 2, TD, SEN(inotify_rm_watch), "inotify_rm_watch" }, +[BASE_NR + 250] = { 4, TM, SEN(migrate_pages), "migrate_pages" }, +[BASE_NR + 251] = { 4, TD|TF, SEN(openat), "openat" }, +[BASE_NR + 252] = { 3, TD|TF, SEN(mkdirat), "mkdirat" }, +[BASE_NR + 253] = { 4, TD|TF, SEN(mknodat), "mknodat" }, +[BASE_NR + 254] = { 5, TD|TF, SEN(fchownat), "fchownat" }, +[BASE_NR + 255] = { 3, TD|TF, SEN(futimesat), "futimesat" }, +[BASE_NR + 256] = { 4, TD|TF|TFST|TSTA,SEN(newfstatat), "newfstatat" }, +[BASE_NR + 257] = { 3, TD|TF, SEN(unlinkat), "unlinkat" }, +[BASE_NR + 258] = { 4, TD|TF, SEN(renameat), "renameat" }, +[BASE_NR + 259] = { 5, TD|TF, SEN(linkat), "linkat" }, +[BASE_NR + 260] = { 3, TD|TF, SEN(symlinkat), "symlinkat" }, +[BASE_NR + 261] = { 4, TD|TF, SEN(readlinkat), "readlinkat" }, +[BASE_NR + 262] = { 3, TD|TF, SEN(fchmodat), "fchmodat" }, +[BASE_NR + 263] = { 3, TD|TF, SEN(faccessat), "faccessat" }, +[BASE_NR + 264] = { 6, TD, SEN(pselect6_time32), "pselect6" }, +[BASE_NR + 265] = { 5, TD, SEN(ppoll_time32), "ppoll" }, +[BASE_NR + 266] = { 1, 0, SEN(unshare), "unshare" }, +[BASE_NR + 267] = { 6, TD, SEN(splice), "splice" }, +[BASE_NR + 268] = { 4, TD, SEN(sync_file_range), "sync_file_range" }, +[BASE_NR + 269] = { 4, TD, SEN(tee), "tee" }, +[BASE_NR + 270] = { 4, TD, SEN(vmsplice), "vmsplice" }, +[BASE_NR + 271] = { 6, TM, SEN(move_pages), "move_pages" }, +[BASE_NR + 272] = { 2, 0, SEN(set_robust_list), "set_robust_list" }, +[BASE_NR + 273] = { 3, 0, SEN(get_robust_list), "get_robust_list" }, +[BASE_NR + 274] = { 4, 0, SEN(kexec_load), "kexec_load" }, +[BASE_NR + 275] = { 3, 0, SEN(getcpu), "getcpu" }, +[BASE_NR + 276] = { 6, TD, SEN(epoll_pwait), "epoll_pwait" }, +[BASE_NR + 277] = { 3, 0, SEN(ioprio_set), "ioprio_set" }, +[BASE_NR + 278] = { 2, 0, SEN(ioprio_get), "ioprio_get" }, +[BASE_NR + 279] = { 4, TD|TF, SEN(utimensat_time32), "utimensat" }, +[BASE_NR + 280] = { 3, TD|TS, SEN(signalfd), "signalfd" }, +[BASE_NR + 281] = { 4, TD, SEN(timerfd), "timerfd" }, +[BASE_NR + 282] = { 1, TD, SEN(eventfd), "eventfd" }, +[BASE_NR + 283] = { 4, TD, SEN(fallocate), "fallocate" }, +[BASE_NR + 284] = { 2, TD, SEN(timerfd_create), "timerfd_create" }, +[BASE_NR + 285] = { 2, TD, SEN(timerfd_gettime32), "timerfd_gettime" }, +[BASE_NR + 286] = { 4, TD, SEN(timerfd_settime32), "timerfd_settime" }, +[BASE_NR + 287] = { 4, TD|TS, SEN(signalfd4), "signalfd4" }, +[BASE_NR + 288] = { 2, TD, SEN(eventfd2), "eventfd2" }, +[BASE_NR + 289] = { 1, TD, SEN(epoll_create1), "epoll_create1" }, +[BASE_NR + 290] = { 3, TD, SEN(dup3), "dup3" }, +[BASE_NR + 291] = { 2, TD, SEN(pipe2), "pipe2" }, +[BASE_NR + 292] = { 1, TD, SEN(inotify_init1), "inotify_init1" }, +[BASE_NR + 293] = { 4, TD, SEN(preadv), "preadv" }, +[BASE_NR + 294] = { 4, TD, SEN(pwritev), "pwritev" }, +[BASE_NR + 295] = { 4, TP|TS, SEN(rt_tgsigqueueinfo), "rt_tgsigqueueinfo" }, +[BASE_NR + 296] = { 5, TD, SEN(perf_event_open), "perf_event_open" }, +[BASE_NR + 297] = { 4, TN, SEN(accept4), "accept4" }, +[BASE_NR + 298] = { 5, TN, SEN(recvmmsg_time32), "recvmmsg" }, +[BASE_NR + 299] = { 3, TD, SEN(getdents64), "getdents64" }, +[BASE_NR + 300] = { 2, TD, SEN(fanotify_init), "fanotify_init" }, +[BASE_NR + 301] = { 5, TD|TF, SEN(fanotify_mark), "fanotify_mark" }, +[BASE_NR + 302] = { 4, 0, SEN(prlimit64), "prlimit64" }, +[BASE_NR + 303] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" }, +[BASE_NR + 304] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" }, +[BASE_NR + 305] = { 2, TCL, SEN(clock_adjtime32), "clock_adjtime" }, +[BASE_NR + 306] = { 1, TD, SEN(syncfs), "syncfs" }, +[BASE_NR + 307] = { 4, TN, SEN(sendmmsg), "sendmmsg" }, +[BASE_NR + 308] = { 2, TD, SEN(setns), "setns" }, +[BASE_NR + 309] = { 6, 0, SEN(process_vm_readv), "process_vm_readv" }, +[BASE_NR + 310] = { 6, 0, SEN(process_vm_writev), "process_vm_writev" }, +[BASE_NR + 311] = { 5, 0, SEN(kcmp), "kcmp" }, +[BASE_NR + 312] = { 3, TD, SEN(finit_module), "finit_module" }, +[BASE_NR + 313] = { 3, 0, SEN(sched_setattr), "sched_setattr" }, +[BASE_NR + 314] = { 4, 0, SEN(sched_getattr), "sched_getattr" }, +[BASE_NR + 315] = { 5, TD|TF, SEN(renameat2), "renameat2" }, +[BASE_NR + 316] = { 3, 0, SEN(seccomp), "seccomp" }, +[BASE_NR + 317] = { 3, 0, SEN(getrandom), "getrandom" }, +[BASE_NR + 318] = { 2, TD, SEN(memfd_create), "memfd_create" }, +[BASE_NR + 319] = { 3, TD, SEN(bpf), "bpf" }, +[BASE_NR + 320] = { 5, TD|TF|TP|TSD|SE|SI, SEN(execveat), "execveat" }, +[BASE_NR + 321] = { 1, TD, SEN(userfaultfd), "userfaultfd" }, +[BASE_NR + 322] = { 2, 0, SEN(membarrier), "membarrier" }, +[BASE_NR + 323] = { 3, TM, SEN(mlock2), "mlock2" }, +[BASE_NR + 324] = { 6, TD, SEN(copy_file_range), "copy_file_range" }, +[BASE_NR + 325] = { 6, TD, SEN(preadv2), "preadv2" }, +[BASE_NR + 326] = { 6, TD, SEN(pwritev2), "pwritev2" }, +[BASE_NR + 327] = { 4, TM|SI, SEN(pkey_mprotect), "pkey_mprotect" }, +[BASE_NR + 328] = { 2, 0, SEN(pkey_alloc), "pkey_alloc" }, +[BASE_NR + 329] = { 1, 0, SEN(pkey_free), "pkey_free" }, +[BASE_NR + 330] = { 5, TD|TF|TFST|TSTA,SEN(statx), "statx" }, +[BASE_NR + 331] = { 4, 0, SEN(rseq), "rseq" }, +[BASE_NR + 332] = { 6, 0, SEN(io_pgetevents_time32), "io_pgetevents" }, +# include "syscallent-common-32.h" +# include "syscallent-common.h" # define SYS_socket_subcall 6500 # include "subcall32.h" #else +# define SYSCALL_NAME_PREFIX "n32:" # include "syscallent-n32-stub.h" +# include "syscallent-common-32-stub.h" +# include "syscallent-common-stub.h" +# undef SYSCALL_NAME_PREFIX #endif +#undef BASE_NR diff --git a/linux/mips/syscallent-n64.h b/linux/mips/syscallent-n64.h index 15db301e..6a71a27b 100644 --- a/linux/mips/syscallent-n64.h +++ b/linux/mips/syscallent-n64.h @@ -1,352 +1,353 @@ /* - * Copyright (c) 2013-2019 The strace developers. + * Copyright (c) 2013-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ +#define BASE_NR 5000 #if defined LINUX_MIPSN64 /* For an N64 strace decode the N64 64-bit syscalls. */ -[5000] = { 3, TD, SEN(read), "read" }, /* start of Linux N64 */ -[5001] = { 3, TD, SEN(write), "write" }, -[5002] = { 3, TD|TF, SEN(open), "open" }, -[5003] = { 1, TD, SEN(close), "close" }, -[5004] = { 2, TF|TST|TSTA, SEN(stat), "stat" }, -[5005] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" }, -[5006] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" }, -[5007] = { 3, TD, SEN(poll_time64), "poll" }, -[5008] = { 3, TD, SEN(lseek), "lseek" }, -[5009] = { 6, TD|TM|SI, SEN(mmap), "mmap" }, -[5010] = { 3, TM|SI, SEN(mprotect), "mprotect" }, -[5011] = { 2, TM|SI, SEN(munmap), "munmap" }, -[5012] = { 1, TM|SI, SEN(brk), "brk" }, -[5013] = { 4, TS, SEN(rt_sigaction), "rt_sigaction" }, -[5014] = { 4, TS, SEN(rt_sigprocmask), "rt_sigprocmask" }, -[5015] = { 3, TD, SEN(ioctl), "ioctl" }, -[5016] = { 4, TD, SEN(pread), "pread64" }, -[5017] = { 4, TD, SEN(pwrite), "pwrite64" }, -[5018] = { 3, TD, SEN(readv), "readv" }, -[5019] = { 3, TD, SEN(writev), "writev" }, -[5020] = { 2, TF, SEN(access), "access" }, -[5021] = { 0, TD, SEN(pipe), "pipe" }, -[5022] = { 5, TD, SEN(select), "_newselect" }, -[5023] = { 0, 0, SEN(sched_yield), "sched_yield" }, -[5024] = { 5, TM|SI, SEN(mremap), "mremap" }, -[5025] = { 3, TM, SEN(msync), "msync" }, -[5026] = { 3, TM, SEN(mincore), "mincore" }, -[5027] = { 3, TM, SEN(madvise), "madvise" }, -[5028] = { 3, TI, SEN(shmget), "shmget" }, -[5029] = { 3, TI|TM|SI, SEN(shmat), "shmat" }, -[5030] = { 3, TI, SEN(shmctl), "shmctl" }, -[5031] = { 1, TD, SEN(dup), "dup" }, -[5032] = { 2, TD, SEN(dup2), "dup2" }, -[5033] = { 0, TS, SEN(pause), "pause" }, -[5034] = { 2, 0, SEN(nanosleep_time64), "nanosleep" }, -[5035] = { 2, 0, SEN(getitimer), "getitimer" }, -[5036] = { 3, 0, SEN(setitimer), "setitimer" }, -[5037] = { 1, 0, SEN(alarm), "alarm" }, -[5038] = { 0, PU|NF, SEN(getpid), "getpid" }, -[5039] = { 4, TD|TN, SEN(sendfile), "sendfile" }, -[5040] = { 3, TN, SEN(socket), "socket" }, -[5041] = { 3, TN, SEN(connect), "connect" }, -[5042] = { 3, TN, SEN(accept), "accept" }, -[5043] = { 6, TN, SEN(sendto), "sendto" }, -[5044] = { 6, TN, SEN(recvfrom), "recvfrom" }, -[5045] = { 3, TN, SEN(sendmsg), "sendmsg" }, -[5046] = { 3, TN, SEN(recvmsg), "recvmsg" }, -[5047] = { 2, TN, SEN(shutdown), "shutdown" }, -[5048] = { 3, TN, SEN(bind), "bind" }, -[5049] = { 2, TN, SEN(listen), "listen" }, -[5050] = { 3, TN, SEN(getsockname), "getsockname" }, -[5051] = { 3, TN, SEN(getpeername), "getpeername" }, -[5052] = { 4, TN, SEN(socketpair), "socketpair" }, -[5053] = { 5, TN, SEN(setsockopt), "setsockopt" }, -[5054] = { 5, TN, SEN(getsockopt), "getsockopt" }, -[5055] = { 5, TP, SEN(clone), "clone" }, -[5056] = { 0, TP, SEN(fork), "fork" }, -[5057] = { 3, TF|TP|SE|SI, SEN(execve), "execve" }, -[5058] = { 1, TP|SE, SEN(exit), "exit" }, -[5059] = { 4, TP, SEN(wait4), "wait4" }, -[5060] = { 2, TS, SEN(kill), "kill" }, -[5061] = { 1, 0, SEN(uname), "uname" }, -[5062] = { 3, TI, SEN(semget), "semget" }, -[5063] = { 3, TI, SEN(semop), "semop" }, -[5064] = { 4, TI, SEN(semctl), "semctl" }, -[5065] = { 1, TI|TM|SI, SEN(shmdt), "shmdt" }, -[5066] = { 2, TI, SEN(msgget), "msgget" }, -[5067] = { 4, TI, SEN(msgsnd), "msgsnd" }, -[5068] = { 5, TI, SEN(msgrcv), "msgrcv" }, -[5069] = { 3, TI, SEN(msgctl), "msgctl" }, -[5070] = { 3, TD, SEN(fcntl), "fcntl" }, -[5071] = { 2, TD, SEN(flock), "flock" }, -[5072] = { 1, TD, SEN(fsync), "fsync" }, -[5073] = { 1, TD, SEN(fdatasync), "fdatasync" }, -[5074] = { 2, TF, SEN(truncate), "truncate" }, -[5075] = { 2, TD, SEN(ftruncate), "ftruncate" }, -[5076] = { 3, TD, SEN(getdents), "getdents" }, -[5077] = { 2, TF, SEN(getcwd), "getcwd" }, -[5078] = { 1, TF, SEN(chdir), "chdir" }, -[5079] = { 1, TD, SEN(fchdir), "fchdir" }, -[5080] = { 2, TF, SEN(rename), "rename" }, -[5081] = { 2, TF, SEN(mkdir), "mkdir" }, -[5082] = { 1, TF, SEN(rmdir), "rmdir" }, -[5083] = { 2, TD|TF, SEN(creat), "creat" }, -[5084] = { 2, TF, SEN(link), "link" }, -[5085] = { 1, TF, SEN(unlink), "unlink" }, -[5086] = { 2, TF, SEN(symlink), "symlink" }, -[5087] = { 3, TF, SEN(readlink), "readlink" }, -[5088] = { 2, TF, SEN(chmod), "chmod" }, -[5089] = { 2, TD, SEN(fchmod), "fchmod" }, -[5090] = { 3, TF, SEN(chown), "chown" }, -[5091] = { 3, TD, SEN(fchown), "fchown" }, -[5092] = { 3, TF, SEN(chown), "lchown" }, -[5093] = { 1, NF, SEN(umask), "umask" }, -[5094] = { 2, 0, SEN(gettimeofday), "gettimeofday" }, -[5095] = { 2, 0, SEN(getrlimit), "getrlimit" }, -[5096] = { 2, 0, SEN(getrusage), "getrusage" }, -[5097] = { 1, 0, SEN(sysinfo), "sysinfo" }, -[5098] = { 1, 0, SEN(times), "times" }, -[5099] = { 4, 0, SEN(ptrace), "ptrace" }, -[5100] = { 0, PU|NF, SEN(getuid), "getuid" }, -[5101] = { 3, 0, SEN(syslog), "syslog" }, -[5102] = { 0, PU|NF, SEN(getgid), "getgid" }, -[5103] = { 1, 0, SEN(setuid), "setuid" }, -[5104] = { 1, 0, SEN(setgid), "setgid" }, -[5105] = { 0, PU|NF, SEN(geteuid), "geteuid" }, -[5106] = { 0, PU|NF, SEN(getegid), "getegid" }, -[5107] = { 2, 0, SEN(setpgid), "setpgid" }, -[5108] = { 0, PU|NF, SEN(getppid), "getppid" }, -[5109] = { 0, PU|NF, SEN(getpgrp), "getpgrp" }, -[5110] = { 0, 0, SEN(setsid), "setsid" }, -[5111] = { 2, 0, SEN(setreuid), "setreuid" }, -[5112] = { 2, 0, SEN(setregid), "setregid" }, -[5113] = { 2, 0, SEN(getgroups), "getgroups" }, -[5114] = { 2, 0, SEN(setgroups), "setgroups" }, -[5115] = { 3, 0, SEN(setresuid), "setresuid" }, -[5116] = { 3, 0, SEN(getresuid), "getresuid" }, -[5117] = { 3, 0, SEN(setresgid), "setresgid" }, -[5118] = { 3, 0, SEN(getresgid), "getresgid" }, -[5119] = { 1, 0, SEN(getpgid), "getpgid" }, -[5120] = { 1, NF, SEN(setfsuid), "setfsuid" }, -[5121] = { 1, NF, SEN(setfsgid), "setfsgid" }, -[5122] = { 1, 0, SEN(getsid), "getsid" }, -[5123] = { 2, 0, SEN(capget), "capget" }, -[5124] = { 2, 0, SEN(capset), "capset" }, -[5125] = { 2, TS, SEN(rt_sigpending), "rt_sigpending" }, -[5126] = { 4, TS, SEN(rt_sigtimedwait_time64), "rt_sigtimedwait" }, -[5127] = { 3, TS, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, -[5128] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" }, -[5129] = { 2, TS, SEN(sigaltstack), "sigaltstack" }, -[5130] = { 2, TF, SEN(utime), "utime" }, -[5131] = { 3, TF, SEN(mknod), "mknod" }, -[5132] = { 1, NF, SEN(personality), "personality" }, -[5133] = { 2, TSFA, SEN(ustat), "ustat" }, -[5134] = { 2, TF|TSF|TSFA, SEN(statfs), "statfs" }, -[5135] = { 2, TD|TFSF|TSFA, SEN(fstatfs), "fstatfs" }, -[5136] = { 3, 0, SEN(sysfs), "sysfs" }, -[5137] = { 2, 0, SEN(getpriority), "getpriority" }, -[5138] = { 3, 0, SEN(setpriority), "setpriority" }, -[5139] = { 2, 0, SEN(sched_setparam), "sched_setparam" }, -[5140] = { 2, 0, SEN(sched_getparam), "sched_getparam" }, -[5141] = { 3, 0, SEN(sched_setscheduler), "sched_setscheduler" }, -[5142] = { 1, 0, SEN(sched_getscheduler), "sched_getscheduler" }, -[5143] = { 1, 0, SEN(sched_get_priority_max), "sched_get_priority_max"}, -[5144] = { 1, 0, SEN(sched_get_priority_min), "sched_get_priority_min"}, -[5145] = { 2, 0, SEN(sched_rr_get_interval_time64),"sched_rr_get_interval"}, -[5146] = { 2, TM, SEN(mlock), "mlock" }, -[5147] = { 2, TM, SEN(munlock), "munlock" }, -[5148] = { 1, TM, SEN(mlockall), "mlockall" }, -[5149] = { 0, TM, SEN(munlockall), "munlockall" }, -[5150] = { 0, 0, SEN(vhangup), "vhangup" }, -[5151] = { 2, TF, SEN(pivotroot), "pivot_root" }, -[5152] = { 1, 0, SEN(sysctl), "_sysctl" }, -[5153] = { 5, 0, SEN(prctl), "prctl" }, -[5154] = { 1, 0, SEN(adjtimex64), "adjtimex" }, -[5155] = { 2, 0, SEN(setrlimit), "setrlimit" }, -[5156] = { 1, TF, SEN(chroot), "chroot" }, -[5157] = { 0, 0, SEN(sync), "sync" }, -[5158] = { 1, TF, SEN(acct), "acct" }, -[5159] = { 2, 0, SEN(settimeofday), "settimeofday" }, -[5160] = { 5, TF, SEN(mount), "mount" }, -[5161] = { 2, TF, SEN(umount2), "umount2" }, -[5162] = { 2, TF, SEN(swapon), "swapon" }, -[5163] = { 1, TF, SEN(swapoff), "swapoff" }, -[5164] = { 4, 0, SEN(reboot), "reboot" }, -[5165] = { 2, 0, SEN(sethostname), "sethostname" }, -[5166] = { 2, 0, SEN(setdomainname), "setdomainname" }, -[5167] = { 2, 0, SEN(create_module), "create_module" }, -[5168] = { 3, 0, SEN(init_module), "init_module" }, -[5169] = { 2, 0, SEN(delete_module), "delete_module" }, -[5170] = { 1, 0, SEN(get_kernel_syms), "get_kernel_syms" }, -[5171] = { 5, 0, SEN(query_module), "query_module" }, -[5172] = { 4, TF, SEN(quotactl), "quotactl" }, -[5173] = { 3, 0, SEN(nfsservctl), "nfsservctl" }, -[5174] = { 5, TN, SEN(getpmsg), "getpmsg" }, -[5175] = { 5, TN, SEN(putpmsg), "putpmsg" }, -[5176] = { 0, 0, SEN(afs_syscall), "afs_syscall" }, -[5177] = { 0, 0, SEN(printargs), "reserved177" }, -[5178] = { 0, PU|NF, SEN(gettid), "gettid" }, -[5179] = { 3, TD, SEN(readahead), "readahead" }, -[5180] = { 5, TF, SEN(setxattr), "setxattr" }, -[5181] = { 5, TF, SEN(setxattr), "lsetxattr" }, -[5182] = { 5, TD, SEN(fsetxattr), "fsetxattr" }, -[5183] = { 4, TF, SEN(getxattr), "getxattr" }, -[5184] = { 4, TF, SEN(getxattr), "lgetxattr" }, -[5185] = { 4, TD, SEN(fgetxattr), "fgetxattr" }, -[5186] = { 3, TF, SEN(listxattr), "listxattr" }, -[5187] = { 3, TF, SEN(listxattr), "llistxattr" }, -[5188] = { 3, TD, SEN(flistxattr), "flistxattr" }, -[5189] = { 2, TF, SEN(removexattr), "removexattr" }, -[5190] = { 2, TF, SEN(removexattr), "lremovexattr" }, -[5191] = { 2, TD, SEN(fremovexattr), "fremovexattr" }, -[5192] = { 2, TS, SEN(kill), "tkill" }, -[5193] = { 1, 0, SEN(time), "time" }, -[5194] = { 6, 0, SEN(futex_time64), "futex" }, -[5195] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" }, -[5196] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" }, -[5197] = { 3, 0, SEN(printargs), "cacheflush" }, -[5198] = { 3, 0, SEN(printargs), "cachectl" }, -[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_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" }, -[5206] = { 3, 0, SEN(lookup_dcookie), "lookup_dcookie" }, -[5207] = { 1, TD, SEN(epoll_create), "epoll_create" }, -[5208] = { 4, TD, SEN(epoll_ctl), "epoll_ctl" }, -[5209] = { 4, TD, SEN(epoll_wait), "epoll_wait" }, -[5210] = { 5, TM|SI, SEN(remap_file_pages), "remap_file_pages" }, -[5211] = { 0, TS, SEN(rt_sigreturn), "rt_sigreturn" }, -[5212] = { 1, 0, SEN(set_tid_address), "set_tid_address" }, -[5213] = { 0, 0, SEN(restart_syscall), "restart_syscall" }, -[5214] = { 4, TI, SEN(semtimedop_time64), "semtimedop" }, -[5215] = { 4, TD, SEN(fadvise64), "fadvise64" }, -[5216] = { 3, 0, SEN(timer_create), "timer_create" }, -[5217] = { 4, 0, SEN(timer_settime64), "timer_settime" }, -[5218] = { 2, 0, SEN(timer_gettime64), "timer_gettime" }, -[5219] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" }, -[5220] = { 1, 0, SEN(timer_delete), "timer_delete" }, -[5221] = { 2, 0, SEN(clock_settime64), "clock_settime" }, -[5222] = { 2, 0, SEN(clock_gettime64), "clock_gettime" }, -[5223] = { 2, 0, SEN(clock_getres_time64), "clock_getres" }, -[5224] = { 4, 0, SEN(clock_nanosleep_time64), "clock_nanosleep" }, -[5225] = { 3, TS, SEN(tgkill), "tgkill" }, -[5226] = { 2, TF, SEN(utimes), "utimes" }, -[5227] = { 6, TM, SEN(mbind), "mbind" }, -[5228] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" }, -[5229] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" }, -[5230] = { 4, TD, SEN(mq_open), "mq_open" }, -[5231] = { 1, 0, SEN(mq_unlink), "mq_unlink" }, -[5232] = { 5, TD, SEN(mq_timedsend_time64), "mq_timedsend" }, -[5233] = { 5, TD, SEN(mq_timedreceive_time64), "mq_timedreceive" }, -[5234] = { 2, TD, SEN(mq_notify), "mq_notify" }, -[5235] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" }, -[5236] = { 5, 0, SEN(vserver), "vserver" }, -[5237] = { 5, TP, SEN(waitid), "waitid" }, -[5238] = { }, -[5239] = { 5, 0, SEN(add_key), "add_key" }, -[5240] = { 4, 0, SEN(request_key), "request_key" }, -[5241] = { 5, 0, SEN(keyctl), "keyctl" }, -[5242] = { 1, 0, SEN(set_thread_area), "set_thread_area" }, -[5243] = { 0, TD, SEN(inotify_init), "inotify_init" }, -[5244] = { 3, TD|TF, SEN(inotify_add_watch), "inotify_add_watch" }, -[5245] = { 2, TD, SEN(inotify_rm_watch), "inotify_rm_watch" }, -[5246] = { 4, TM, SEN(migrate_pages), "migrate_pages" }, -[5247] = { 4, TD|TF, SEN(openat), "openat" }, -[5248] = { 3, TD|TF, SEN(mkdirat), "mkdirat" }, -[5249] = { 4, TD|TF, SEN(mknodat), "mknodat" }, -[5250] = { 5, TD|TF, SEN(fchownat), "fchownat" }, -[5251] = { 3, TD|TF, SEN(futimesat), "futimesat" }, -[5252] = { 4, TD|TF|TFST|TSTA,SEN(newfstatat), "newfstatat" }, -[5253] = { 3, TD|TF, SEN(unlinkat), "unlinkat" }, -[5254] = { 4, TD|TF, SEN(renameat), "renameat" }, -[5255] = { 5, TD|TF, SEN(linkat), "linkat" }, -[5256] = { 3, TD|TF, SEN(symlinkat), "symlinkat" }, -[5257] = { 4, TD|TF, SEN(readlinkat), "readlinkat" }, -[5258] = { 3, TD|TF, SEN(fchmodat), "fchmodat" }, -[5259] = { 3, TD|TF, SEN(faccessat), "faccessat" }, -[5260] = { 6, TD, SEN(pselect6_time64), "pselect6" }, -[5261] = { 5, TD, SEN(ppoll_time64), "ppoll" }, -[5262] = { 1, TP, SEN(unshare), "unshare" }, -[5263] = { 6, TD, SEN(splice), "splice" }, -[5264] = { 4, TD, SEN(sync_file_range), "sync_file_range" }, -[5265] = { 4, TD, SEN(tee), "tee" }, -[5266] = { 4, TD, SEN(vmsplice), "vmsplice" }, -[5267] = { 6, TM, SEN(move_pages), "move_pages" }, -[5268] = { 2, 0, SEN(set_robust_list), "set_robust_list" }, -[5269] = { 3, 0, SEN(get_robust_list), "get_robust_list" }, -[5270] = { 4, 0, SEN(kexec_load), "kexec_load" }, -[5271] = { 3, 0, SEN(getcpu), "getcpu" }, -[5272] = { 6, TD, SEN(epoll_pwait), "epoll_pwait" }, -[5273] = { 3, 0, SEN(ioprio_set), "ioprio_set" }, -[5274] = { 2, 0, SEN(ioprio_get), "ioprio_get" }, -[5275] = { 4, TD|TF, SEN(utimensat_time64), "utimensat" }, -[5276] = { 3, TD|TS, SEN(signalfd), "signalfd" }, -[5277] = { 4, TD, SEN(timerfd), "timerfd" }, -[5278] = { 1, TD, SEN(eventfd), "eventfd" }, -[5279] = { 4, TD, SEN(fallocate), "fallocate" }, -[5280] = { 2, TD, SEN(timerfd_create), "timerfd_create" }, -[5281] = { 2, TD, SEN(timerfd_gettime64), "timerfd_gettime" }, -[5282] = { 4, TD, SEN(timerfd_settime64), "timerfd_settime" }, -[5283] = { 4, TD|TS, SEN(signalfd4), "signalfd4" }, -[5284] = { 2, TD, SEN(eventfd2), "eventfd2" }, -[5285] = { 1, TD, SEN(epoll_create1), "epoll_create1" }, -[5286] = { 3, TD, SEN(dup3), "dup3" }, -[5287] = { 2, TD, SEN(pipe2), "pipe2" }, -[5288] = { 1, TD, SEN(inotify_init1), "inotify_init1" }, -[5289] = { 4, TD, SEN(preadv), "preadv" }, -[5290] = { 4, TD, SEN(pwritev), "pwritev" }, -[5291] = { 4, TP|TS, SEN(rt_tgsigqueueinfo), "rt_tgsigqueueinfo" }, -[5292] = { 5, TD, SEN(perf_event_open), "perf_event_open" }, -[5293] = { 4, TN, SEN(accept4), "accept4" }, -[5294] = { 5, TN, SEN(recvmmsg_time64), "recvmmsg" }, -[5295] = { 2, TD, SEN(fanotify_init), "fanotify_init" }, -[5296] = { 5, TD|TF, SEN(fanotify_mark), "fanotify_mark" }, -[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_adjtime64), "clock_adjtime" }, -[5301] = { 1, TD, SEN(syncfs), "syncfs" }, -[5302] = { 4, TN, SEN(sendmmsg), "sendmmsg" }, -[5303] = { 2, TD, SEN(setns), "setns" }, -[5304] = { 6, 0, SEN(process_vm_readv), "process_vm_readv" }, -[5305] = { 6, 0, SEN(process_vm_writev), "process_vm_writev" }, -[5306] = { 5, 0, SEN(kcmp), "kcmp" }, -[5307] = { 3, TD, SEN(finit_module), "finit_module" }, -[5308] = { 3, TD, SEN(getdents64), "getdents64" }, -[5309] = { 3, 0, SEN(sched_setattr), "sched_setattr" }, -[5310] = { 4, 0, SEN(sched_getattr), "sched_getattr" }, -[5311] = { 5, TD|TF, SEN(renameat2), "renameat2" }, -[5312] = { 3, 0, SEN(seccomp), "seccomp" }, -[5313] = { 3, 0, SEN(getrandom), "getrandom" }, -[5314] = { 2, TD, SEN(memfd_create), "memfd_create" }, -[5315] = { 3, TD, SEN(bpf), "bpf" }, -[5316] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat" }, -[5317] = { 1, TD, SEN(userfaultfd), "userfaultfd" }, -[5318] = { 2, 0, SEN(membarrier), "membarrier" }, -[5319] = { 3, TM, SEN(mlock2), "mlock2" }, -[5320] = { 6, TD, SEN(copy_file_range), "copy_file_range" }, -[5321] = { 6, TD, SEN(preadv2), "preadv2" }, -[5322] = { 6, TD, SEN(pwritev2), "pwritev2" }, -[5323] = { 4, TM|SI, SEN(pkey_mprotect), "pkey_mprotect" }, -[5324] = { 2, 0, SEN(pkey_alloc), "pkey_alloc" }, -[5325] = { 1, 0, SEN(pkey_free), "pkey_free" }, -[5326] = { 5, TD|TF|TSTA, SEN(statx), "statx" }, -[5327] = { 4, 0, SEN(rseq), "rseq" }, -[5328] = { 6, 0, SEN(io_pgetevents_time64), "io_pgetevents" }, -/* [5329 ... 5423] - reserved to sync up with other architectures */ -[5424] = { 4, TD|TS, SEN(pidfd_send_signal), "pidfd_send_signal" }, -[5425] = { 2, TD, SEN(io_uring_setup), "io_uring_setup" }, -[5426] = { 6, TD|TS, SEN(io_uring_enter), "io_uring_enter" }, -[5427] = { 4, TD|TM, SEN(io_uring_register), "io_uring_register" }, +[BASE_NR + 0] = { 3, TD, SEN(read), "read" }, /* start of Linux N64 */ +[BASE_NR + 1] = { 3, TD, SEN(write), "write" }, +[BASE_NR + 2] = { 3, TD|TF, SEN(open), "open" }, +[BASE_NR + 3] = { 1, TD, SEN(close), "close" }, +[BASE_NR + 4] = { 2, TF|TST|TSTA, SEN(stat), "stat" }, +[BASE_NR + 5] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" }, +[BASE_NR + 6] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" }, +[BASE_NR + 7] = { 3, TD, SEN(poll_time64), "poll" }, +[BASE_NR + 8] = { 3, TD, SEN(lseek), "lseek" }, +[BASE_NR + 9] = { 6, TD|TM|SI, SEN(mmap), "mmap" }, +[BASE_NR + 10] = { 3, TM|SI, SEN(mprotect), "mprotect" }, +[BASE_NR + 11] = { 2, TM|SI, SEN(munmap), "munmap" }, +[BASE_NR + 12] = { 1, TM|SI, SEN(brk), "brk" }, +[BASE_NR + 13] = { 4, TS, SEN(rt_sigaction), "rt_sigaction" }, +[BASE_NR + 14] = { 4, TS, SEN(rt_sigprocmask), "rt_sigprocmask" }, +[BASE_NR + 15] = { 3, TD, SEN(ioctl), "ioctl" }, +[BASE_NR + 16] = { 4, TD, SEN(pread), "pread64" }, +[BASE_NR + 17] = { 4, TD, SEN(pwrite), "pwrite64" }, +[BASE_NR + 18] = { 3, TD, SEN(readv), "readv" }, +[BASE_NR + 19] = { 3, TD, SEN(writev), "writev" }, +[BASE_NR + 20] = { 2, TF, SEN(access), "access" }, +[BASE_NR + 21] = { 0, TD, SEN(pipe), "pipe" }, +[BASE_NR + 22] = { 5, TD, SEN(select), "_newselect" }, +[BASE_NR + 23] = { 0, 0, SEN(sched_yield), "sched_yield" }, +[BASE_NR + 24] = { 5, TM|SI, SEN(mremap), "mremap" }, +[BASE_NR + 25] = { 3, TM, SEN(msync), "msync" }, +[BASE_NR + 26] = { 3, TM, SEN(mincore), "mincore" }, +[BASE_NR + 27] = { 3, TM, SEN(madvise), "madvise" }, +[BASE_NR + 28] = { 3, TI, SEN(shmget), "shmget" }, +[BASE_NR + 29] = { 3, TI|TM|SI, SEN(shmat), "shmat" }, +[BASE_NR + 30] = { 3, TI, SEN(shmctl), "shmctl" }, +[BASE_NR + 31] = { 1, TD, SEN(dup), "dup" }, +[BASE_NR + 32] = { 2, TD, SEN(dup2), "dup2" }, +[BASE_NR + 33] = { 0, TS, SEN(pause), "pause" }, +[BASE_NR + 34] = { 2, 0, SEN(nanosleep_time64), "nanosleep" }, +[BASE_NR + 35] = { 2, 0, SEN(getitimer), "getitimer" }, +[BASE_NR + 36] = { 3, 0, SEN(setitimer), "setitimer" }, +[BASE_NR + 37] = { 1, 0, SEN(alarm), "alarm" }, +[BASE_NR + 38] = { 0, PU|NF, SEN(getpid), "getpid" }, +[BASE_NR + 39] = { 4, TD|TN, SEN(sendfile), "sendfile" }, +[BASE_NR + 40] = { 3, TN, SEN(socket), "socket" }, +[BASE_NR + 41] = { 3, TN, SEN(connect), "connect" }, +[BASE_NR + 42] = { 3, TN, SEN(accept), "accept" }, +[BASE_NR + 43] = { 6, TN, SEN(sendto), "sendto" }, +[BASE_NR + 44] = { 6, TN, SEN(recvfrom), "recvfrom" }, +[BASE_NR + 45] = { 3, TN, SEN(sendmsg), "sendmsg" }, +[BASE_NR + 46] = { 3, TN, SEN(recvmsg), "recvmsg" }, +[BASE_NR + 47] = { 2, TN, SEN(shutdown), "shutdown" }, +[BASE_NR + 48] = { 3, TN, SEN(bind), "bind" }, +[BASE_NR + 49] = { 2, TN, SEN(listen), "listen" }, +[BASE_NR + 50] = { 3, TN, SEN(getsockname), "getsockname" }, +[BASE_NR + 51] = { 3, TN, SEN(getpeername), "getpeername" }, +[BASE_NR + 52] = { 4, TN, SEN(socketpair), "socketpair" }, +[BASE_NR + 53] = { 5, TN, SEN(setsockopt), "setsockopt" }, +[BASE_NR + 54] = { 5, TN, SEN(getsockopt), "getsockopt" }, +[BASE_NR + 55] = { 5, TP, SEN(clone), "clone" }, +[BASE_NR + 56] = { 0, TP, SEN(fork), "fork" }, +[BASE_NR + 57] = { 3, TF|TP|TSD|SE|SI, SEN(execve), "execve" }, +[BASE_NR + 58] = { 1, TP|SE, SEN(exit), "exit" }, +[BASE_NR + 59] = { 4, TP, SEN(wait4), "wait4" }, +[BASE_NR + 60] = { 2, TS|TP, SEN(kill), "kill" }, +[BASE_NR + 61] = { 1, 0, SEN(uname), "uname" }, +[BASE_NR + 62] = { 3, TI, SEN(semget), "semget" }, +[BASE_NR + 63] = { 3, TI, SEN(semop), "semop" }, +[BASE_NR + 64] = { 4, TI, SEN(semctl), "semctl" }, +[BASE_NR + 65] = { 1, TI|TM|SI, SEN(shmdt), "shmdt" }, +[BASE_NR + 66] = { 2, TI, SEN(msgget), "msgget" }, +[BASE_NR + 67] = { 4, TI, SEN(msgsnd), "msgsnd" }, +[BASE_NR + 68] = { 5, TI, SEN(msgrcv), "msgrcv" }, +[BASE_NR + 69] = { 3, TI, SEN(msgctl), "msgctl" }, +[BASE_NR + 70] = { 3, TD, SEN(fcntl), "fcntl" }, +[BASE_NR + 71] = { 2, TD, SEN(flock), "flock" }, +[BASE_NR + 72] = { 1, TD, SEN(fsync), "fsync" }, +[BASE_NR + 73] = { 1, TD, SEN(fdatasync), "fdatasync" }, +[BASE_NR + 74] = { 2, TF, SEN(truncate), "truncate" }, +[BASE_NR + 75] = { 2, TD, SEN(ftruncate), "ftruncate" }, +[BASE_NR + 76] = { 3, TD, SEN(getdents), "getdents" }, +[BASE_NR + 77] = { 2, TF, SEN(getcwd), "getcwd" }, +[BASE_NR + 78] = { 1, TF, SEN(chdir), "chdir" }, +[BASE_NR + 79] = { 1, TD, SEN(fchdir), "fchdir" }, +[BASE_NR + 80] = { 2, TF, SEN(rename), "rename" }, +[BASE_NR + 81] = { 2, TF, SEN(mkdir), "mkdir" }, +[BASE_NR + 82] = { 1, TF, SEN(rmdir), "rmdir" }, +[BASE_NR + 83] = { 2, TD|TF, SEN(creat), "creat" }, +[BASE_NR + 84] = { 2, TF, SEN(link), "link" }, +[BASE_NR + 85] = { 1, TF, SEN(unlink), "unlink" }, +[BASE_NR + 86] = { 2, TF, SEN(symlink), "symlink" }, +[BASE_NR + 87] = { 3, TF, SEN(readlink), "readlink" }, +[BASE_NR + 88] = { 2, TF, SEN(chmod), "chmod" }, +[BASE_NR + 89] = { 2, TD, SEN(fchmod), "fchmod" }, +[BASE_NR + 90] = { 3, TF, SEN(chown), "chown" }, +[BASE_NR + 91] = { 3, TD, SEN(fchown), "fchown" }, +[BASE_NR + 92] = { 3, TF, SEN(chown), "lchown" }, +[BASE_NR + 93] = { 1, NF, SEN(umask), "umask" }, +[BASE_NR + 94] = { 2, TCL, SEN(gettimeofday), "gettimeofday" }, +[BASE_NR + 95] = { 2, 0, SEN(getrlimit), "getrlimit" }, +[BASE_NR + 96] = { 2, 0, SEN(getrusage), "getrusage" }, +[BASE_NR + 97] = { 1, 0, SEN(sysinfo), "sysinfo" }, +[BASE_NR + 98] = { 1, 0, SEN(times), "times" }, +[BASE_NR + 99] = { 4, 0, SEN(ptrace), "ptrace" }, +[BASE_NR + 100] = { 0, TC|PU|NF, SEN(getuid), "getuid" }, +[BASE_NR + 101] = { 3, 0, SEN(syslog), "syslog" }, +[BASE_NR + 102] = { 0, TC|PU|NF, SEN(getgid), "getgid" }, +[BASE_NR + 103] = { 1, TC, SEN(setuid), "setuid" }, +[BASE_NR + 104] = { 1, TC, SEN(setgid), "setgid" }, +[BASE_NR + 105] = { 0, TC|PU|NF, SEN(geteuid), "geteuid" }, +[BASE_NR + 106] = { 0, TC|PU|NF, SEN(getegid), "getegid" }, +[BASE_NR + 107] = { 2, 0, SEN(setpgid), "setpgid" }, +[BASE_NR + 108] = { 0, PU|NF, SEN(getppid), "getppid" }, +[BASE_NR + 109] = { 0, PU|NF, SEN(getpgrp), "getpgrp" }, +[BASE_NR + 110] = { 0, 0, SEN(setsid), "setsid" }, +[BASE_NR + 111] = { 2, TC, SEN(setreuid), "setreuid" }, +[BASE_NR + 112] = { 2, TC, SEN(setregid), "setregid" }, +[BASE_NR + 113] = { 2, TC, SEN(getgroups), "getgroups" }, +[BASE_NR + 114] = { 2, TC, SEN(setgroups), "setgroups" }, +[BASE_NR + 115] = { 3, TC, SEN(setresuid), "setresuid" }, +[BASE_NR + 116] = { 3, TC, SEN(getresuid), "getresuid" }, +[BASE_NR + 117] = { 3, TC, SEN(setresgid), "setresgid" }, +[BASE_NR + 118] = { 3, TC, SEN(getresgid), "getresgid" }, +[BASE_NR + 119] = { 1, 0, SEN(getpgid), "getpgid" }, +[BASE_NR + 120] = { 1, TC|NF, SEN(setfsuid), "setfsuid" }, +[BASE_NR + 121] = { 1, TC|NF, SEN(setfsgid), "setfsgid" }, +[BASE_NR + 122] = { 1, 0, SEN(getsid), "getsid" }, +[BASE_NR + 123] = { 2, TC, SEN(capget), "capget" }, +[BASE_NR + 124] = { 2, TC, SEN(capset), "capset" }, +[BASE_NR + 125] = { 2, TS, SEN(rt_sigpending), "rt_sigpending" }, +[BASE_NR + 126] = { 4, TS, SEN(rt_sigtimedwait_time64), "rt_sigtimedwait" }, +[BASE_NR + 127] = { 3, TS|TP, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, +[BASE_NR + 128] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" }, +[BASE_NR + 129] = { 2, TS, SEN(sigaltstack), "sigaltstack" }, +[BASE_NR + 130] = { 2, TF, SEN(utime), "utime" }, +[BASE_NR + 131] = { 3, TF, SEN(mknod), "mknod" }, +[BASE_NR + 132] = { 1, NF, SEN(personality), "personality" }, +[BASE_NR + 133] = { 2, TSFA, SEN(ustat), "ustat" }, +[BASE_NR + 134] = { 2, TF|TSF|TSFA, SEN(statfs), "statfs" }, +[BASE_NR + 135] = { 2, TD|TFSF|TSFA, SEN(fstatfs), "fstatfs" }, +[BASE_NR + 136] = { 3, 0, SEN(sysfs), "sysfs" }, +[BASE_NR + 137] = { 2, 0, SEN(getpriority), "getpriority" }, +[BASE_NR + 138] = { 3, 0, SEN(setpriority), "setpriority" }, +[BASE_NR + 139] = { 2, 0, SEN(sched_setparam), "sched_setparam" }, +[BASE_NR + 140] = { 2, 0, SEN(sched_getparam), "sched_getparam" }, +[BASE_NR + 141] = { 3, 0, SEN(sched_setscheduler), "sched_setscheduler" }, +[BASE_NR + 142] = { 1, 0, SEN(sched_getscheduler), "sched_getscheduler" }, +[BASE_NR + 143] = { 1, 0, SEN(sched_get_priority_max), "sched_get_priority_max"}, +[BASE_NR + 144] = { 1, 0, SEN(sched_get_priority_min), "sched_get_priority_min"}, +[BASE_NR + 145] = { 2, 0, SEN(sched_rr_get_interval_time64),"sched_rr_get_interval"}, +[BASE_NR + 146] = { 2, TM, SEN(mlock), "mlock" }, +[BASE_NR + 147] = { 2, TM, SEN(munlock), "munlock" }, +[BASE_NR + 148] = { 1, TM, SEN(mlockall), "mlockall" }, +[BASE_NR + 149] = { 0, TM, SEN(munlockall), "munlockall" }, +[BASE_NR + 150] = { 0, 0, SEN(vhangup), "vhangup" }, +[BASE_NR + 151] = { 2, TF, SEN(pivotroot), "pivot_root" }, +[BASE_NR + 152] = { 1, 0, SEN(sysctl), "_sysctl" }, +[BASE_NR + 153] = { 5, TC, SEN(prctl), "prctl" }, +[BASE_NR + 154] = { 1, TCL, SEN(adjtimex64), "adjtimex" }, +[BASE_NR + 155] = { 2, 0, SEN(setrlimit), "setrlimit" }, +[BASE_NR + 156] = { 1, TF, SEN(chroot), "chroot" }, +[BASE_NR + 157] = { 0, 0, SEN(sync), "sync" }, +[BASE_NR + 158] = { 1, TF, SEN(acct), "acct" }, +[BASE_NR + 159] = { 2, TCL, SEN(settimeofday), "settimeofday" }, +[BASE_NR + 160] = { 5, TF, SEN(mount), "mount" }, +[BASE_NR + 161] = { 2, TF, SEN(umount2), "umount2" }, +[BASE_NR + 162] = { 2, TF, SEN(swapon), "swapon" }, +[BASE_NR + 163] = { 1, TF, SEN(swapoff), "swapoff" }, +[BASE_NR + 164] = { 4, 0, SEN(reboot), "reboot" }, +[BASE_NR + 165] = { 2, 0, SEN(sethostname), "sethostname" }, +[BASE_NR + 166] = { 2, 0, SEN(setdomainname), "setdomainname" }, +[BASE_NR + 167] = { 2, 0, SEN(create_module), "create_module" }, +[BASE_NR + 168] = { 3, 0, SEN(init_module), "init_module" }, +[BASE_NR + 169] = { 2, 0, SEN(delete_module), "delete_module" }, +[BASE_NR + 170] = { 1, 0, SEN(get_kernel_syms), "get_kernel_syms" }, +[BASE_NR + 171] = { 5, 0, SEN(query_module), "query_module" }, +[BASE_NR + 172] = { 4, TF, SEN(quotactl), "quotactl" }, +[BASE_NR + 173] = { 3, 0, SEN(nfsservctl), "nfsservctl" }, +[BASE_NR + 174] = { 5, TN, SEN(getpmsg), "getpmsg" }, +[BASE_NR + 175] = { 5, TN, SEN(putpmsg), "putpmsg" }, +[BASE_NR + 176] = { 0, 0, SEN(afs_syscall), "afs_syscall" }, +[BASE_NR + 177] = { 0, 0, SEN(printargs), "reserved177" }, +[BASE_NR + 178] = { 0, PU|NF, SEN(gettid), "gettid" }, +[BASE_NR + 179] = { 3, TD, SEN(readahead), "readahead" }, +[BASE_NR + 180] = { 5, TF, SEN(setxattr), "setxattr" }, +[BASE_NR + 181] = { 5, TF, SEN(setxattr), "lsetxattr" }, +[BASE_NR + 182] = { 5, TD, SEN(fsetxattr), "fsetxattr" }, +[BASE_NR + 183] = { 4, TF, SEN(getxattr), "getxattr" }, +[BASE_NR + 184] = { 4, TF, SEN(getxattr), "lgetxattr" }, +[BASE_NR + 185] = { 4, TD, SEN(fgetxattr), "fgetxattr" }, +[BASE_NR + 186] = { 3, TF, SEN(listxattr), "listxattr" }, +[BASE_NR + 187] = { 3, TF, SEN(listxattr), "llistxattr" }, +[BASE_NR + 188] = { 3, TD, SEN(flistxattr), "flistxattr" }, +[BASE_NR + 189] = { 2, TF, SEN(removexattr), "removexattr" }, +[BASE_NR + 190] = { 2, TF, SEN(removexattr), "lremovexattr" }, +[BASE_NR + 191] = { 2, TD, SEN(fremovexattr), "fremovexattr" }, +[BASE_NR + 192] = { 2, TS|TP, SEN(tkill), "tkill" }, +[BASE_NR + 193] = { 1, TCL, SEN(time), "time" }, +[BASE_NR + 194] = { 6, 0, SEN(futex_time64), "futex" }, +[BASE_NR + 195] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" }, +[BASE_NR + 196] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" }, +[BASE_NR + 197] = { 3, 0, SEN(printargs), "cacheflush" }, +[BASE_NR + 198] = { 3, 0, SEN(printargs), "cachectl" }, +[BASE_NR + 199] = { 4, 0, SEN(sysmips), "sysmips" }, +[BASE_NR + 200] = { 2, TM, SEN(io_setup), "io_setup" }, +[BASE_NR + 201] = { 1, TM, SEN(io_destroy), "io_destroy" }, +[BASE_NR + 202] = { 5, 0, SEN(io_getevents_time64), "io_getevents" }, +[BASE_NR + 203] = { 3, 0, SEN(io_submit), "io_submit" }, +[BASE_NR + 204] = { 3, 0, SEN(io_cancel), "io_cancel" }, +[BASE_NR + 205] = { 1, TP|SE, SEN(exit), "exit_group" }, +[BASE_NR + 206] = { 3, 0, SEN(lookup_dcookie), "lookup_dcookie" }, +[BASE_NR + 207] = { 1, TD, SEN(epoll_create), "epoll_create" }, +[BASE_NR + 208] = { 4, TD, SEN(epoll_ctl), "epoll_ctl" }, +[BASE_NR + 209] = { 4, TD, SEN(epoll_wait), "epoll_wait" }, +[BASE_NR + 210] = { 5, TM|SI, SEN(remap_file_pages), "remap_file_pages" }, +[BASE_NR + 211] = { 0, TS, SEN(rt_sigreturn), "rt_sigreturn" }, +[BASE_NR + 212] = { 1, 0, SEN(set_tid_address), "set_tid_address" }, +[BASE_NR + 213] = { 0, 0, SEN(restart_syscall), "restart_syscall" }, +[BASE_NR + 214] = { 4, TI, SEN(semtimedop_time64), "semtimedop" }, +[BASE_NR + 215] = { 4, TD, SEN(fadvise64), "fadvise64" }, +[BASE_NR + 216] = { 3, 0, SEN(timer_create), "timer_create" }, +[BASE_NR + 217] = { 4, 0, SEN(timer_settime64), "timer_settime" }, +[BASE_NR + 218] = { 2, 0, SEN(timer_gettime64), "timer_gettime" }, +[BASE_NR + 219] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" }, +[BASE_NR + 220] = { 1, 0, SEN(timer_delete), "timer_delete" }, +[BASE_NR + 221] = { 2, TCL, SEN(clock_settime64), "clock_settime" }, +[BASE_NR + 222] = { 2, TCL, SEN(clock_gettime64), "clock_gettime" }, +[BASE_NR + 223] = { 2, TCL, SEN(clock_getres_time64), "clock_getres" }, +[BASE_NR + 224] = { 4, 0, SEN(clock_nanosleep_time64), "clock_nanosleep" }, +[BASE_NR + 225] = { 3, TS|TP, SEN(tgkill), "tgkill" }, +[BASE_NR + 226] = { 2, TF, SEN(utimes), "utimes" }, +[BASE_NR + 227] = { 6, TM, SEN(mbind), "mbind" }, +[BASE_NR + 228] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" }, +[BASE_NR + 229] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" }, +[BASE_NR + 230] = { 4, TD, SEN(mq_open), "mq_open" }, +[BASE_NR + 231] = { 1, 0, SEN(mq_unlink), "mq_unlink" }, +[BASE_NR + 232] = { 5, TD, SEN(mq_timedsend_time64), "mq_timedsend" }, +[BASE_NR + 233] = { 5, TD, SEN(mq_timedreceive_time64), "mq_timedreceive" }, +[BASE_NR + 234] = { 2, TD, SEN(mq_notify), "mq_notify" }, +[BASE_NR + 235] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" }, +[BASE_NR + 236] = { 5, 0, SEN(vserver), "vserver" }, +[BASE_NR + 237] = { 5, TP, SEN(waitid), "waitid" }, +[BASE_NR + 238] = { }, +[BASE_NR + 239] = { 5, 0, SEN(add_key), "add_key" }, +[BASE_NR + 240] = { 4, 0, SEN(request_key), "request_key" }, +[BASE_NR + 241] = { 5, 0, SEN(keyctl), "keyctl" }, +[BASE_NR + 242] = { 1, 0, SEN(set_thread_area), "set_thread_area" }, +[BASE_NR + 243] = { 0, TD, SEN(inotify_init), "inotify_init" }, +[BASE_NR + 244] = { 3, TD|TF, SEN(inotify_add_watch), "inotify_add_watch" }, +[BASE_NR + 245] = { 2, TD, SEN(inotify_rm_watch), "inotify_rm_watch" }, +[BASE_NR + 246] = { 4, TM, SEN(migrate_pages), "migrate_pages" }, +[BASE_NR + 247] = { 4, TD|TF, SEN(openat), "openat" }, +[BASE_NR + 248] = { 3, TD|TF, SEN(mkdirat), "mkdirat" }, +[BASE_NR + 249] = { 4, TD|TF, SEN(mknodat), "mknodat" }, +[BASE_NR + 250] = { 5, TD|TF, SEN(fchownat), "fchownat" }, +[BASE_NR + 251] = { 3, TD|TF, SEN(futimesat), "futimesat" }, +[BASE_NR + 252] = { 4, TD|TF|TFST|TSTA,SEN(newfstatat), "newfstatat" }, +[BASE_NR + 253] = { 3, TD|TF, SEN(unlinkat), "unlinkat" }, +[BASE_NR + 254] = { 4, TD|TF, SEN(renameat), "renameat" }, +[BASE_NR + 255] = { 5, TD|TF, SEN(linkat), "linkat" }, +[BASE_NR + 256] = { 3, TD|TF, SEN(symlinkat), "symlinkat" }, +[BASE_NR + 257] = { 4, TD|TF, SEN(readlinkat), "readlinkat" }, +[BASE_NR + 258] = { 3, TD|TF, SEN(fchmodat), "fchmodat" }, +[BASE_NR + 259] = { 3, TD|TF, SEN(faccessat), "faccessat" }, +[BASE_NR + 260] = { 6, TD, SEN(pselect6_time64), "pselect6" }, +[BASE_NR + 261] = { 5, TD, SEN(ppoll_time64), "ppoll" }, +[BASE_NR + 262] = { 1, 0, SEN(unshare), "unshare" }, +[BASE_NR + 263] = { 6, TD, SEN(splice), "splice" }, +[BASE_NR + 264] = { 4, TD, SEN(sync_file_range), "sync_file_range" }, +[BASE_NR + 265] = { 4, TD, SEN(tee), "tee" }, +[BASE_NR + 266] = { 4, TD, SEN(vmsplice), "vmsplice" }, +[BASE_NR + 267] = { 6, TM, SEN(move_pages), "move_pages" }, +[BASE_NR + 268] = { 2, 0, SEN(set_robust_list), "set_robust_list" }, +[BASE_NR + 269] = { 3, 0, SEN(get_robust_list), "get_robust_list" }, +[BASE_NR + 270] = { 4, 0, SEN(kexec_load), "kexec_load" }, +[BASE_NR + 271] = { 3, 0, SEN(getcpu), "getcpu" }, +[BASE_NR + 272] = { 6, TD, SEN(epoll_pwait), "epoll_pwait" }, +[BASE_NR + 273] = { 3, 0, SEN(ioprio_set), "ioprio_set" }, +[BASE_NR + 274] = { 2, 0, SEN(ioprio_get), "ioprio_get" }, +[BASE_NR + 275] = { 4, TD|TF, SEN(utimensat_time64), "utimensat" }, +[BASE_NR + 276] = { 3, TD|TS, SEN(signalfd), "signalfd" }, +[BASE_NR + 277] = { 4, TD, SEN(timerfd), "timerfd" }, +[BASE_NR + 278] = { 1, TD, SEN(eventfd), "eventfd" }, +[BASE_NR + 279] = { 4, TD, SEN(fallocate), "fallocate" }, +[BASE_NR + 280] = { 2, TD, SEN(timerfd_create), "timerfd_create" }, +[BASE_NR + 281] = { 2, TD, SEN(timerfd_gettime64), "timerfd_gettime" }, +[BASE_NR + 282] = { 4, TD, SEN(timerfd_settime64), "timerfd_settime" }, +[BASE_NR + 283] = { 4, TD|TS, SEN(signalfd4), "signalfd4" }, +[BASE_NR + 284] = { 2, TD, SEN(eventfd2), "eventfd2" }, +[BASE_NR + 285] = { 1, TD, SEN(epoll_create1), "epoll_create1" }, +[BASE_NR + 286] = { 3, TD, SEN(dup3), "dup3" }, +[BASE_NR + 287] = { 2, TD, SEN(pipe2), "pipe2" }, +[BASE_NR + 288] = { 1, TD, SEN(inotify_init1), "inotify_init1" }, +[BASE_NR + 289] = { 4, TD, SEN(preadv), "preadv" }, +[BASE_NR + 290] = { 4, TD, SEN(pwritev), "pwritev" }, +[BASE_NR + 291] = { 4, TP|TS, SEN(rt_tgsigqueueinfo), "rt_tgsigqueueinfo" }, +[BASE_NR + 292] = { 5, TD, SEN(perf_event_open), "perf_event_open" }, +[BASE_NR + 293] = { 4, TN, SEN(accept4), "accept4" }, +[BASE_NR + 294] = { 5, TN, SEN(recvmmsg_time64), "recvmmsg" }, +[BASE_NR + 295] = { 2, TD, SEN(fanotify_init), "fanotify_init" }, +[BASE_NR + 296] = { 5, TD|TF, SEN(fanotify_mark), "fanotify_mark" }, +[BASE_NR + 297] = { 4, 0, SEN(prlimit64), "prlimit64" }, +[BASE_NR + 298] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" }, +[BASE_NR + 299] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" }, +[BASE_NR + 300] = { 2, TCL, SEN(clock_adjtime64), "clock_adjtime" }, +[BASE_NR + 301] = { 1, TD, SEN(syncfs), "syncfs" }, +[BASE_NR + 302] = { 4, TN, SEN(sendmmsg), "sendmmsg" }, +[BASE_NR + 303] = { 2, TD, SEN(setns), "setns" }, +[BASE_NR + 304] = { 6, 0, SEN(process_vm_readv), "process_vm_readv" }, +[BASE_NR + 305] = { 6, 0, SEN(process_vm_writev), "process_vm_writev" }, +[BASE_NR + 306] = { 5, 0, SEN(kcmp), "kcmp" }, +[BASE_NR + 307] = { 3, TD, SEN(finit_module), "finit_module" }, +[BASE_NR + 308] = { 3, TD, SEN(getdents64), "getdents64" }, +[BASE_NR + 309] = { 3, 0, SEN(sched_setattr), "sched_setattr" }, +[BASE_NR + 310] = { 4, 0, SEN(sched_getattr), "sched_getattr" }, +[BASE_NR + 311] = { 5, TD|TF, SEN(renameat2), "renameat2" }, +[BASE_NR + 312] = { 3, 0, SEN(seccomp), "seccomp" }, +[BASE_NR + 313] = { 3, 0, SEN(getrandom), "getrandom" }, +[BASE_NR + 314] = { 2, TD, SEN(memfd_create), "memfd_create" }, +[BASE_NR + 315] = { 3, TD, SEN(bpf), "bpf" }, +[BASE_NR + 316] = { 5, TD|TF|TP|TSD|SE|SI, SEN(execveat), "execveat" }, +[BASE_NR + 317] = { 1, TD, SEN(userfaultfd), "userfaultfd" }, +[BASE_NR + 318] = { 2, 0, SEN(membarrier), "membarrier" }, +[BASE_NR + 319] = { 3, TM, SEN(mlock2), "mlock2" }, +[BASE_NR + 320] = { 6, TD, SEN(copy_file_range), "copy_file_range" }, +[BASE_NR + 321] = { 6, TD, SEN(preadv2), "preadv2" }, +[BASE_NR + 322] = { 6, TD, SEN(pwritev2), "pwritev2" }, +[BASE_NR + 323] = { 4, TM|SI, SEN(pkey_mprotect), "pkey_mprotect" }, +[BASE_NR + 324] = { 2, 0, SEN(pkey_alloc), "pkey_alloc" }, +[BASE_NR + 325] = { 1, 0, SEN(pkey_free), "pkey_free" }, +[BASE_NR + 326] = { 5, TD|TF|TFST|TSTA,SEN(statx), "statx" }, +[BASE_NR + 327] = { 4, 0, SEN(rseq), "rseq" }, +[BASE_NR + 328] = { 6, 0, SEN(io_pgetevents_time64), "io_pgetevents" }, +# include "syscallent-common.h" # define SYS_socket_subcall 5500 # include "subcall64.h" #else +# define SYSCALL_NAME_PREFIX "n64:" # include "syscallent-n64-stub.h" +# include "syscallent-common-stub.h" +# undef SYSCALL_NAME_PREFIX #endif +#undef BASE_NR diff --git a/linux/mips/syscallent-o32.h b/linux/mips/syscallent-o32.h index 7fdc60f6..2ff3aa7f 100644 --- a/linux/mips/syscallent-o32.h +++ b/linux/mips/syscallent-o32.h @@ -1,423 +1,407 @@ /* - * Copyright (c) 2013-2019 The strace developers. + * Copyright (c) 2013-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ +#define BASE_NR 4000 #if defined LINUX_MIPSO32 /* For an O32 strace, decode the o32 syscalls. */ # define SYS_syscall_subcall 4000 -[4000] = { MA, 0, SEN(syscall), "syscall" }, /* start of Linux o32 */ -[4001] = { 1, TP|SE, SEN(exit), "exit" }, -[4002] = { 0, TP, SEN(fork), "fork" }, -[4003] = { 3, TD, SEN(read), "read" }, -[4004] = { 3, TD, SEN(write), "write" }, -[4005] = { 3, TD|TF, SEN(open), "open" }, -[4006] = { 1, TD, SEN(close), "close" }, -[4007] = { 3, TP, SEN(waitpid), "waitpid" }, -[4008] = { 2, TD|TF, SEN(creat), "creat" }, -[4009] = { 2, TF, SEN(link), "link" }, -[4010] = { 1, TF, SEN(unlink), "unlink" }, -[4011] = { 3, TF|TP|SE|SI, SEN(execve), "execve" }, -[4012] = { 1, TF, SEN(chdir), "chdir" }, -[4013] = { 1, 0, SEN(time), "time" }, -[4014] = { 3, TF, SEN(mknod), "mknod" }, -[4015] = { 2, TF, SEN(chmod), "chmod" }, -[4016] = { 3, TF, SEN(chown), "lchown" }, -[4017] = { 0, TM, SEN(break), "break" }, -[4018] = { 2, TF|TST|TSTA, SEN(oldstat), "oldstat" }, -[4019] = { 3, TD, SEN(lseek), "lseek" }, -[4020] = { 0, PU|NF, SEN(getpid), "getpid" }, -[4021] = { 5, TF, SEN(mount), "mount" }, -[4022] = { 1, TF, SEN(umount), "umount" }, -[4023] = { 1, 0, SEN(setuid), "setuid" }, -[4024] = { 0, PU|NF, SEN(getuid), "getuid" }, -[4025] = { 1, 0, SEN(stime), "stime" }, -[4026] = { 4, 0, SEN(ptrace), "ptrace" }, -[4027] = { 1, 0, SEN(alarm), "alarm" }, -[4028] = { 2, TD|TFST|TSTA, SEN(oldfstat), "oldfstat" }, -[4029] = { 0, TS, SEN(pause), "pause" }, -[4030] = { 2, TF, SEN(utime), "utime" }, -[4031] = { 0, 0, SEN(stty), "stty" }, -[4032] = { 0, 0, SEN(gtty), "gtty" }, -[4033] = { 2, TF, SEN(access), "access" }, -[4034] = { 1, 0, SEN(nice), "nice" }, -[4035] = { 1, 0, SEN(ftime), "ftime" }, -[4036] = { 0, 0, SEN(sync), "sync" }, -[4037] = { 2, TS, SEN(kill), "kill" }, -[4038] = { 2, TF, SEN(rename), "rename" }, -[4039] = { 2, TF, SEN(mkdir), "mkdir" }, -[4040] = { 1, TF, SEN(rmdir), "rmdir" }, -[4041] = { 1, TD, SEN(dup), "dup" }, -[4042] = { 0, TD, SEN(pipe), "pipe" }, -[4043] = { 1, 0, SEN(times), "times" }, -[4044] = { 0, 0, SEN(prof), "prof" }, -[4045] = { 1, TM|SI, SEN(brk), "brk" }, -[4046] = { 1, 0, SEN(setgid), "setgid" }, -[4047] = { 0, PU|NF, SEN(getgid), "getgid" }, -[4048] = { 2, TS, SEN(signal), "signal" }, -[4049] = { 0, PU|NF, SEN(geteuid), "geteuid" }, -[4050] = { 0, PU|NF, SEN(getegid), "getegid" }, -[4051] = { 1, TF, SEN(acct), "acct" }, -[4052] = { 2, TF, SEN(umount2), "umount2" }, -[4053] = { 0, 0, SEN(lock), "lock" }, -[4054] = { 3, TD, SEN(ioctl), "ioctl" }, -[4055] = { 3, TD, SEN(fcntl), "fcntl" }, -[4056] = { 0, 0, SEN(mpx), "mpx" }, -[4057] = { 2, 0, SEN(setpgid), "setpgid" }, -[4058] = { 0, 0, SEN(ulimit), "ulimit" }, -[4059] = { 1, 0, SEN(oldolduname), "oldolduname" }, -[4060] = { 1, NF, SEN(umask), "umask" }, -[4061] = { 1, TF, SEN(chroot), "chroot" }, -[4062] = { 2, TSFA, SEN(ustat), "ustat" }, -[4063] = { 2, TD, SEN(dup2), "dup2" }, -[4064] = { 0, PU|NF, SEN(getppid), "getppid" }, -[4065] = { 0, PU|NF, SEN(getpgrp), "getpgrp" }, -[4066] = { 0, 0, SEN(setsid), "setsid" }, -[4067] = { 3, TS, SEN(sigaction), "sigaction" }, -[4068] = { 0, TS, SEN(sgetmask), "sgetmask" }, -[4069] = { 1, TS, SEN(ssetmask), "ssetmask" }, -[4070] = { 2, 0, SEN(setreuid), "setreuid" }, -[4071] = { 2, 0, SEN(setregid), "setregid" }, -[4072] = { 1, TS, SEN(sigsuspend), "sigsuspend" }, -[4073] = { 1, TS, SEN(sigpending), "sigpending" }, -[4074] = { 2, 0, SEN(sethostname), "sethostname" }, -[4075] = { 2, 0, SEN(setrlimit), "setrlimit" }, -[4076] = { 2, 0, SEN(getrlimit), "getrlimit" }, -[4077] = { 2, 0, SEN(getrusage), "getrusage" }, -[4078] = { 2, 0, SEN(gettimeofday), "gettimeofday" }, -[4079] = { 2, 0, SEN(settimeofday), "settimeofday" }, -[4080] = { 2, 0, SEN(getgroups), "getgroups" }, -[4081] = { 2, 0, SEN(setgroups), "setgroups" }, -[4082] = { 0, 0, SEN(printargs), "reserved82" }, -[4083] = { 2, TF, SEN(symlink), "symlink" }, -[4084] = { 2, TF|TLST|TSTA, SEN(oldlstat), "oldlstat" }, -[4085] = { 3, TF, SEN(readlink), "readlink" }, -[4086] = { 1, TF, SEN(uselib), "uselib" }, -[4087] = { 2, TF, SEN(swapon), "swapon" }, -[4088] = { 4, 0, SEN(reboot), "reboot" }, -[4089] = { 3, TD, SEN(readdir), "readdir" }, -[4090] = { 6, TD|TM|SI, SEN(mmap), "mmap" }, -[4091] = { 2, TM|SI, SEN(munmap), "munmap" }, -[4092] = { 2, TF, SEN(truncate), "truncate" }, -[4093] = { 2, TD, SEN(ftruncate), "ftruncate" }, -[4094] = { 2, TD, SEN(fchmod), "fchmod" }, -[4095] = { 3, TD, SEN(fchown), "fchown" }, -[4096] = { 2, 0, SEN(getpriority), "getpriority" }, -[4097] = { 3, 0, SEN(setpriority), "setpriority" }, -[4098] = { 0, 0, SEN(profil), "profil" }, -[4099] = { 2, TF|TSF|TSFA, SEN(statfs), "statfs" }, -[4100] = { 2, TD|TFSF|TSFA, SEN(fstatfs), "fstatfs" }, -[4101] = { 3, 0, SEN(ioperm), "ioperm" }, -[4102] = { 2, TD, SEN(socketcall), "socketcall" }, -[4103] = { 3, 0, SEN(syslog), "syslog" }, -[4104] = { 3, 0, SEN(setitimer), "setitimer" }, -[4105] = { 2, 0, SEN(getitimer), "getitimer" }, -[4106] = { 2, TF|TST|TSTA, SEN(stat), "stat" }, -[4107] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" }, -[4108] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" }, -[4109] = { 1, 0, SEN(olduname), "olduname" }, -[4110] = { 1, 0, SEN(iopl), "iopl" }, -[4111] = { 0, 0, SEN(vhangup), "vhangup" }, -[4112] = { 0, 0, SEN(idle), "idle" }, -[4113] = { 5, 0, SEN(vm86old), "vm86" }, -[4114] = { 4, TP, SEN(wait4), "wait4" }, -[4115] = { 1, TF, SEN(swapoff), "swapoff" }, -[4116] = { 1, 0, SEN(sysinfo), "sysinfo" }, -[4117] = { 6, TI, SEN(ipc), "ipc" }, -[4118] = { 1, TD, SEN(fsync), "fsync" }, -[4119] = { 0, TS, SEN(sigreturn), "sigreturn" }, -[4120] = { 5, TP, SEN(clone), "clone" }, -[4121] = { 2, 0, SEN(setdomainname), "setdomainname" }, -[4122] = { 1, 0, SEN(uname), "uname" }, -[4123] = { 0, 0, SEN(modify_ldt), "modify_ldt" }, -[4124] = { 1, 0, SEN(adjtimex32), "adjtimex" }, -[4125] = { 3, TM|SI, SEN(mprotect), "mprotect" }, -[4126] = { 3, TS, SEN(sigprocmask), "sigprocmask" }, -[4127] = { 2, 0, SEN(create_module), "create_module" }, -[4128] = { 3, 0, SEN(init_module), "init_module" }, -[4129] = { 2, 0, SEN(delete_module), "delete_module" }, -[4130] = { 1, 0, SEN(get_kernel_syms), "get_kernel_syms" }, -[4131] = { 4, TF, SEN(quotactl), "quotactl" }, -[4132] = { 1, 0, SEN(getpgid), "getpgid" }, -[4133] = { 1, TD, SEN(fchdir), "fchdir" }, -[4134] = { 2, 0, SEN(bdflush), "bdflush" }, -[4135] = { 3, 0, SEN(sysfs), "sysfs" }, -[4136] = { 1, NF, SEN(personality), "personality" }, -[4137] = { 0, 0, SEN(afs_syscall), "afs_syscall" }, -[4138] = { 1, NF, SEN(setfsuid), "setfsuid" }, -[4139] = { 1, NF, SEN(setfsgid), "setfsgid" }, -[4140] = { 5, TD, SEN(llseek), "_llseek" }, -[4141] = { 3, TD, SEN(getdents), "getdents" }, -[4142] = { 5, TD, SEN(select), "_newselect" }, -[4143] = { 2, TD, SEN(flock), "flock" }, -[4144] = { 3, TM, SEN(msync), "msync" }, -[4145] = { 3, TD, SEN(readv), "readv" }, -[4146] = { 3, TD, SEN(writev), "writev" }, -[4147] = { 3, 0, SEN(printargs), "cacheflush" }, -[4148] = { 3, 0, SEN(printargs), "cachectl" }, -[4149] = { 4, 0, SEN(sysmips), "sysmips" }, -[4150] = { 0, 0, SEN(setup), "setup" }, -[4151] = { 1, 0, SEN(getsid), "getsid" }, -[4152] = { 1, TD, SEN(fdatasync), "fdatasync" }, -[4153] = { 1, 0, SEN(sysctl), "_sysctl" }, -[4154] = { 2, TM, SEN(mlock), "mlock" }, -[4155] = { 2, TM, SEN(munlock), "munlock" }, -[4156] = { 1, TM, SEN(mlockall), "mlockall" }, -[4157] = { 0, TM, SEN(munlockall), "munlockall" }, -[4158] = { 2, 0, SEN(sched_setparam), "sched_setparam" }, -[4159] = { 2, 0, SEN(sched_getparam), "sched_getparam" }, -[4160] = { 3, 0, SEN(sched_setscheduler), "sched_setscheduler" }, -[4161] = { 1, 0, SEN(sched_getscheduler), "sched_getscheduler" }, -[4162] = { 0, 0, SEN(sched_yield), "sched_yield" }, -[4163] = { 1, 0, SEN(sched_get_priority_max), "sched_get_priority_max"}, -[4164] = { 1, 0, SEN(sched_get_priority_min), "sched_get_priority_min"}, -[4165] = { 2, 0, SEN(sched_rr_get_interval_time32),"sched_rr_get_interval"}, -[4166] = { 2, 0, SEN(nanosleep_time32), "nanosleep" }, -[4167] = { 5, TM|SI, SEN(mremap), "mremap" }, -[4168] = { 3, TN, SEN(accept), "accept" }, -[4169] = { 3, TN, SEN(bind), "bind" }, -[4170] = { 3, TN, SEN(connect), "connect" }, -[4171] = { 3, TN, SEN(getpeername), "getpeername" }, -[4172] = { 3, TN, SEN(getsockname), "getsockname" }, -[4173] = { 5, TN, SEN(getsockopt), "getsockopt" }, -[4174] = { 2, TN, SEN(listen), "listen" }, -[4175] = { 4, TN, SEN(recv), "recv" }, -[4176] = { 6, TN, SEN(recvfrom), "recvfrom" }, -[4177] = { 3, TN, SEN(recvmsg), "recvmsg" }, -[4178] = { 4, TN, SEN(send), "send" }, -[4179] = { 3, TN, SEN(sendmsg), "sendmsg" }, -[4180] = { 6, TN, SEN(sendto), "sendto" }, -[4181] = { 5, TN, SEN(setsockopt), "setsockopt" }, -[4182] = { 2, TN, SEN(shutdown), "shutdown" }, -[4183] = { 3, TN, SEN(socket), "socket" }, -[4184] = { 4, TN, SEN(socketpair), "socketpair" }, -[4185] = { 3, 0, SEN(setresuid), "setresuid" }, -[4186] = { 3, 0, SEN(getresuid), "getresuid" }, -[4187] = { 5, 0, SEN(query_module), "query_module" }, -[4188] = { 3, TD, SEN(poll_time32), "poll" }, -[4189] = { 3, 0, SEN(nfsservctl), "nfsservctl" }, -[4190] = { 3, 0, SEN(setresgid), "setresgid" }, -[4191] = { 3, 0, SEN(getresgid), "getresgid" }, -[4192] = { 5, 0, SEN(prctl), "prctl" }, -[4193] = { 0, TS, SEN(rt_sigreturn), "rt_sigreturn" }, -[4194] = { 4, TS, SEN(rt_sigaction), "rt_sigaction" }, -[4195] = { 4, TS, SEN(rt_sigprocmask), "rt_sigprocmask" }, -[4196] = { 2, TS, SEN(rt_sigpending), "rt_sigpending" }, -[4197] = { 4, TS, SEN(rt_sigtimedwait_time32), "rt_sigtimedwait" }, -[4198] = { 3, TS, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, -[4199] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" }, -[4200] = { 6, TD, SEN(pread), "pread64" }, -[4201] = { 6, TD, SEN(pwrite), "pwrite64" }, -[4202] = { 3, TF, SEN(chown), "chown" }, -[4203] = { 2, TF, SEN(getcwd), "getcwd" }, -[4204] = { 2, 0, SEN(capget), "capget" }, -[4205] = { 2, 0, SEN(capset), "capset" }, -[4206] = { 2, TS, SEN(sigaltstack), "sigaltstack" }, -[4207] = { 4, TD|TN, SEN(sendfile), "sendfile" }, -[4208] = { 5, TN, SEN(getpmsg), "getpmsg" }, -[4209] = { 5, TN, SEN(putpmsg), "putpmsg" }, -[4210] = { 6, TD|TM|SI, SEN(mmap_4koff), "mmap2" }, -[4211] = { 4, TF, SEN(truncate64), "truncate64" }, -[4212] = { 4, TD, SEN(ftruncate64), "ftruncate64" }, -[4213] = { 2, TF|TST|TSTA, SEN(stat64), "stat64" }, -[4214] = { 2, TF|TLST|TSTA, SEN(lstat64), "lstat64" }, -[4215] = { 2, TD|TFST|TSTA, SEN(fstat64), "fstat64" }, -[4216] = { 2, TF, SEN(pivotroot), "pivot_root" }, -[4217] = { 3, TM, SEN(mincore), "mincore" }, -[4218] = { 3, TM, SEN(madvise), "madvise" }, -[4219] = { 3, TD, SEN(getdents64), "getdents64" }, -[4220] = { 3, TD, SEN(fcntl64), "fcntl64" }, -[4221] = { 0, 0, SEN(printargs), "reserved221" }, -[4222] = { 0, PU|NF, SEN(gettid), "gettid" }, -[4223] = { 5, TD, SEN(readahead), "readahead" }, -[4224] = { 5, TF, SEN(setxattr), "setxattr" }, -[4225] = { 5, TF, SEN(setxattr), "lsetxattr" }, -[4226] = { 5, TD, SEN(fsetxattr), "fsetxattr" }, -[4227] = { 4, TF, SEN(getxattr), "getxattr" }, -[4228] = { 4, TF, SEN(getxattr), "lgetxattr" }, -[4229] = { 4, TD, SEN(fgetxattr), "fgetxattr" }, -[4230] = { 3, TF, SEN(listxattr), "listxattr" }, -[4231] = { 3, TF, SEN(listxattr), "llistxattr" }, -[4232] = { 3, TD, SEN(flistxattr), "flistxattr" }, -[4233] = { 2, TF, SEN(removexattr), "removexattr" }, -[4234] = { 2, TF, SEN(removexattr), "lremovexattr" }, -[4235] = { 2, TD, SEN(fremovexattr), "fremovexattr" }, -[4236] = { 2, TS, SEN(kill), "tkill" }, -[4237] = { 4, TD|TN, SEN(sendfile64), "sendfile64" }, -[4238] = { 6, 0, SEN(futex_time32), "futex" }, -[4239] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" }, -[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_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" }, -[4247] = { 4, 0, SEN(lookup_dcookie), "lookup_dcookie" }, -[4248] = { 1, TD, SEN(epoll_create), "epoll_create" }, -[4249] = { 4, TD, SEN(epoll_ctl), "epoll_ctl" }, -[4250] = { 4, TD, SEN(epoll_wait), "epoll_wait" }, -[4251] = { 5, TM|SI, SEN(remap_file_pages), "remap_file_pages" }, -[4252] = { 1, 0, SEN(set_tid_address), "set_tid_address" }, -[4253] = { 0, 0, SEN(restart_syscall), "restart_syscall" }, -[4254] = { 7, TD, SEN(fadvise64_64), "fadvise64" }, -[4255] = { 3, TF|TSF|TSFA, SEN(statfs64), "statfs64" }, -[4256] = { 3, TD|TFSF|TSFA, SEN(fstatfs64), "fstatfs64" }, -[4257] = { 3, 0, SEN(timer_create), "timer_create" }, -[4258] = { 4, 0, SEN(timer_settime32), "timer_settime" }, -[4259] = { 2, 0, SEN(timer_gettime32), "timer_gettime" }, -[4260] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" }, -[4261] = { 1, 0, SEN(timer_delete), "timer_delete" }, -[4262] = { 2, 0, SEN(clock_settime32), "clock_settime" }, -[4263] = { 2, 0, SEN(clock_gettime32), "clock_gettime" }, -[4264] = { 2, 0, SEN(clock_getres_time32), "clock_getres" }, -[4265] = { 4, 0, SEN(clock_nanosleep_time32), "clock_nanosleep" }, -[4266] = { 3, TS, SEN(tgkill), "tgkill" }, -[4267] = { 2, TF, SEN(utimes), "utimes" }, -[4268] = { 6, TM, SEN(mbind), "mbind" }, -[4269] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" }, -[4270] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" }, -[4271] = { 4, TD, SEN(mq_open), "mq_open" }, -[4272] = { 1, 0, SEN(mq_unlink), "mq_unlink" }, -[4273] = { 5, TD, SEN(mq_timedsend_time32), "mq_timedsend" }, -[4274] = { 5, TD, SEN(mq_timedreceive_time32), "mq_timedreceive" }, -[4275] = { 2, TD, SEN(mq_notify), "mq_notify" }, -[4276] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" }, -[4277] = { 5, 0, SEN(vserver), "vserver" }, -[4278] = { 5, TP, SEN(waitid), "waitid" }, -[4279] = { }, -[4280] = { 5, 0, SEN(add_key), "add_key" }, -[4281] = { 4, 0, SEN(request_key), "request_key" }, -[4282] = { 5, 0, SEN(keyctl), "keyctl" }, -[4283] = { 1, 0, SEN(set_thread_area), "set_thread_area" }, -[4284] = { 0, TD, SEN(inotify_init), "inotify_init" }, -[4285] = { 3, TD|TF, SEN(inotify_add_watch), "inotify_add_watch" }, -[4286] = { 2, TD, SEN(inotify_rm_watch), "inotify_rm_watch" }, -[4287] = { 4, TM, SEN(migrate_pages), "migrate_pages" }, -[4288] = { 4, TD|TF, SEN(openat), "openat" }, -[4289] = { 3, TD|TF, SEN(mkdirat), "mkdirat" }, -[4290] = { 4, TD|TF, SEN(mknodat), "mknodat" }, -[4291] = { 5, TD|TF, SEN(fchownat), "fchownat" }, -[4292] = { 3, TD|TF, SEN(futimesat), "futimesat" }, -[4293] = { 4, TD|TF|TFST|TSTA,SEN(fstatat64), "fstatat64" }, -[4294] = { 3, TD|TF, SEN(unlinkat), "unlinkat" }, -[4295] = { 4, TD|TF, SEN(renameat), "renameat" }, -[4296] = { 5, TD|TF, SEN(linkat), "linkat" }, -[4297] = { 3, TD|TF, SEN(symlinkat), "symlinkat" }, -[4298] = { 4, TD|TF, SEN(readlinkat), "readlinkat" }, -[4299] = { 3, TD|TF, SEN(fchmodat), "fchmodat" }, -[4300] = { 3, TD|TF, SEN(faccessat), "faccessat" }, -[4301] = { 6, TD, SEN(pselect6_time32), "pselect6" }, -[4302] = { 5, TD, SEN(ppoll_time32), "ppoll" }, -[4303] = { 1, TP, SEN(unshare), "unshare" }, -[4304] = { 6, TD, SEN(splice), "splice" }, -[4305] = { 7, TD, SEN(sync_file_range), "sync_file_range" }, -[4306] = { 4, TD, SEN(tee), "tee" }, -[4307] = { 4, TD, SEN(vmsplice), "vmsplice" }, -[4308] = { 6, TM, SEN(move_pages), "move_pages" }, -[4309] = { 2, 0, SEN(set_robust_list), "set_robust_list" }, -[4310] = { 3, 0, SEN(get_robust_list), "get_robust_list" }, -[4311] = { 4, 0, SEN(kexec_load), "kexec_load" }, -[4312] = { 3, 0, SEN(getcpu), "getcpu" }, -[4313] = { 6, TD, SEN(epoll_pwait), "epoll_pwait" }, -[4314] = { 3, 0, SEN(ioprio_set), "ioprio_set" }, -[4315] = { 2, 0, SEN(ioprio_get), "ioprio_get" }, -[4316] = { 4, TD|TF, SEN(utimensat_time32), "utimensat" }, -[4317] = { 3, TD|TS, SEN(signalfd), "signalfd" }, -[4318] = { 4, TD, SEN(timerfd), "timerfd" }, -[4319] = { 1, TD, SEN(eventfd), "eventfd" }, -[4320] = { 6, TD, SEN(fallocate), "fallocate" }, -[4321] = { 2, TD, SEN(timerfd_create), "timerfd_create" }, -[4322] = { 2, TD, SEN(timerfd_gettime32), "timerfd_gettime" }, -[4323] = { 4, TD, SEN(timerfd_settime32), "timerfd_settime" }, -[4324] = { 4, TD|TS, SEN(signalfd4), "signalfd4" }, -[4325] = { 2, TD, SEN(eventfd2), "eventfd2" }, -[4326] = { 1, TD, SEN(epoll_create1), "epoll_create1" }, -[4327] = { 3, TD, SEN(dup3), "dup3" }, -[4328] = { 2, TD, SEN(pipe2), "pipe2" }, -[4329] = { 1, TD, SEN(inotify_init1), "inotify_init1" }, -[4330] = { 5, TD, SEN(preadv), "preadv" }, -[4331] = { 5, TD, SEN(pwritev), "pwritev" }, -[4332] = { 4, TP|TS, SEN(rt_tgsigqueueinfo), "rt_tgsigqueueinfo" }, -[4333] = { 5, TD, SEN(perf_event_open), "perf_event_open" }, -[4334] = { 4, TN, SEN(accept4), "accept4" }, -[4335] = { 5, TN, SEN(recvmmsg_time32), "recvmmsg" }, -[4336] = { 2, TD, SEN(fanotify_init), "fanotify_init" }, -[4337] = { 6, TD|TF, SEN(fanotify_mark), "fanotify_mark" }, -[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_adjtime32), "clock_adjtime" }, -[4342] = { 1, TD, SEN(syncfs), "syncfs" }, -[4343] = { 4, TN, SEN(sendmmsg), "sendmmsg" }, -[4344] = { 2, TD, SEN(setns), "setns" }, -[4345] = { 6, 0, SEN(process_vm_readv), "process_vm_readv" }, -[4346] = { 6, 0, SEN(process_vm_writev), "process_vm_writev" }, -[4347] = { 5, 0, SEN(kcmp), "kcmp" }, -[4348] = { 3, TD, SEN(finit_module), "finit_module" }, -[4349] = { 3, 0, SEN(sched_setattr), "sched_setattr" }, -[4350] = { 4, 0, SEN(sched_getattr), "sched_getattr" }, -[4351] = { 5, TD|TF, SEN(renameat2), "renameat2" }, -[4352] = { 3, 0, SEN(seccomp), "seccomp" }, -[4353] = { 3, 0, SEN(getrandom), "getrandom" }, -[4354] = { 2, TD, SEN(memfd_create), "memfd_create" }, -[4355] = { 3, TD, SEN(bpf), "bpf" }, -[4356] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat" }, -[4357] = { 1, TD, SEN(userfaultfd), "userfaultfd" }, -[4358] = { 2, 0, SEN(membarrier), "membarrier" }, -[4359] = { 3, TM, SEN(mlock2), "mlock2" }, -[4360] = { 6, TD, SEN(copy_file_range), "copy_file_range" }, -[4361] = { 6, TD, SEN(preadv2), "preadv2" }, -[4362] = { 6, TD, SEN(pwritev2), "pwritev2" }, -[4363] = { 4, TM|SI, SEN(pkey_mprotect), "pkey_mprotect" }, -[4364] = { 2, 0, SEN(pkey_alloc), "pkey_alloc" }, -[4365] = { 1, 0, SEN(pkey_free), "pkey_free" }, -[4366] = { 5, TD|TF|TSTA, SEN(statx), "statx" }, -[4367] = { 4, 0, SEN(rseq), "rseq" }, -[4368] = { 6, 0, SEN(io_pgetevents_time32), "io_pgetevents" }, +[BASE_NR + 0] = { MA, TSD, SEN(syscall), "syscall" }, /* start of Linux o32 */ +[BASE_NR + 1] = { 1, TP|SE, SEN(exit), "exit" }, +[BASE_NR + 2] = { 0, TP, SEN(fork), "fork" }, +[BASE_NR + 3] = { 3, TD, SEN(read), "read" }, +[BASE_NR + 4] = { 3, TD, SEN(write), "write" }, +[BASE_NR + 5] = { 3, TD|TF, SEN(open), "open" }, +[BASE_NR + 6] = { 1, TD, SEN(close), "close" }, +[BASE_NR + 7] = { 3, TP, SEN(waitpid), "waitpid" }, +[BASE_NR + 8] = { 2, TD|TF, SEN(creat), "creat" }, +[BASE_NR + 9] = { 2, TF, SEN(link), "link" }, +[BASE_NR + 10] = { 1, TF, SEN(unlink), "unlink" }, +[BASE_NR + 11] = { 3, TF|TP|TSD|SE|SI, SEN(execve), "execve" }, +[BASE_NR + 12] = { 1, TF, SEN(chdir), "chdir" }, +[BASE_NR + 13] = { 1, TCL, SEN(time), "time" }, +[BASE_NR + 14] = { 3, TF, SEN(mknod), "mknod" }, +[BASE_NR + 15] = { 2, TF, SEN(chmod), "chmod" }, +[BASE_NR + 16] = { 3, TF, SEN(chown), "lchown" }, +[BASE_NR + 17] = { 0, TM, SEN(break), "break" }, +[BASE_NR + 18] = { 2, TF|TST|TSTA, SEN(oldstat), "oldstat" }, +[BASE_NR + 19] = { 3, TD, SEN(lseek), "lseek" }, +[BASE_NR + 20] = { 0, PU|NF, SEN(getpid), "getpid" }, +[BASE_NR + 21] = { 5, TF, SEN(mount), "mount" }, +[BASE_NR + 22] = { 1, TF, SEN(umount), "umount" }, +[BASE_NR + 23] = { 1, TC, SEN(setuid), "setuid" }, +[BASE_NR + 24] = { 0, TC|PU|NF, SEN(getuid), "getuid" }, +[BASE_NR + 25] = { 1, 0, SEN(stime), "stime" }, +[BASE_NR + 26] = { 4, 0, SEN(ptrace), "ptrace" }, +[BASE_NR + 27] = { 1, 0, SEN(alarm), "alarm" }, +[BASE_NR + 28] = { 2, TD|TFST|TSTA, SEN(oldfstat), "oldfstat" }, +[BASE_NR + 29] = { 0, TS, SEN(pause), "pause" }, +[BASE_NR + 30] = { 2, TF, SEN(utime), "utime" }, +[BASE_NR + 31] = { 0, 0, SEN(stty), "stty" }, +[BASE_NR + 32] = { 0, 0, SEN(gtty), "gtty" }, +[BASE_NR + 33] = { 2, TF, SEN(access), "access" }, +[BASE_NR + 34] = { 1, 0, SEN(nice), "nice" }, +[BASE_NR + 35] = { 1, 0, SEN(ftime), "ftime" }, +[BASE_NR + 36] = { 0, 0, SEN(sync), "sync" }, +[BASE_NR + 37] = { 2, TS|TP, SEN(kill), "kill" }, +[BASE_NR + 38] = { 2, TF, SEN(rename), "rename" }, +[BASE_NR + 39] = { 2, TF, SEN(mkdir), "mkdir" }, +[BASE_NR + 40] = { 1, TF, SEN(rmdir), "rmdir" }, +[BASE_NR + 41] = { 1, TD, SEN(dup), "dup" }, +[BASE_NR + 42] = { 0, TD, SEN(pipe), "pipe" }, +[BASE_NR + 43] = { 1, 0, SEN(times), "times" }, +[BASE_NR + 44] = { 0, 0, SEN(prof), "prof" }, +[BASE_NR + 45] = { 1, TM|SI, SEN(brk), "brk" }, +[BASE_NR + 46] = { 1, TC, SEN(setgid), "setgid" }, +[BASE_NR + 47] = { 0, TC|PU|NF, SEN(getgid), "getgid" }, +[BASE_NR + 48] = { 2, TS, SEN(signal), "signal" }, +[BASE_NR + 49] = { 0, TC|PU|NF, SEN(geteuid), "geteuid" }, +[BASE_NR + 50] = { 0, TC|PU|NF, SEN(getegid), "getegid" }, +[BASE_NR + 51] = { 1, TF, SEN(acct), "acct" }, +[BASE_NR + 52] = { 2, TF, SEN(umount2), "umount2" }, +[BASE_NR + 53] = { 0, 0, SEN(lock), "lock" }, +[BASE_NR + 54] = { 3, TD, SEN(ioctl), "ioctl" }, +[BASE_NR + 55] = { 3, TD, SEN(fcntl), "fcntl" }, +[BASE_NR + 56] = { 0, 0, SEN(mpx), "mpx" }, +[BASE_NR + 57] = { 2, 0, SEN(setpgid), "setpgid" }, +[BASE_NR + 58] = { 0, 0, SEN(ulimit), "ulimit" }, +[BASE_NR + 59] = { 1, 0, SEN(oldolduname), "oldolduname" }, +[BASE_NR + 60] = { 1, NF, SEN(umask), "umask" }, +[BASE_NR + 61] = { 1, TF, SEN(chroot), "chroot" }, +[BASE_NR + 62] = { 2, TSFA, SEN(ustat), "ustat" }, +[BASE_NR + 63] = { 2, TD, SEN(dup2), "dup2" }, +[BASE_NR + 64] = { 0, PU|NF, SEN(getppid), "getppid" }, +[BASE_NR + 65] = { 0, PU|NF, SEN(getpgrp), "getpgrp" }, +[BASE_NR + 66] = { 0, 0, SEN(setsid), "setsid" }, +[BASE_NR + 67] = { 3, TS, SEN(sigaction), "sigaction" }, +[BASE_NR + 68] = { 0, TS, SEN(sgetmask), "sgetmask" }, +[BASE_NR + 69] = { 1, TS, SEN(ssetmask), "ssetmask" }, +[BASE_NR + 70] = { 2, TC, SEN(setreuid), "setreuid" }, +[BASE_NR + 71] = { 2, TC, SEN(setregid), "setregid" }, +[BASE_NR + 72] = { 1, TS, SEN(sigsuspend), "sigsuspend" }, +[BASE_NR + 73] = { 1, TS, SEN(sigpending), "sigpending" }, +[BASE_NR + 74] = { 2, 0, SEN(sethostname), "sethostname" }, +[BASE_NR + 75] = { 2, 0, SEN(setrlimit), "setrlimit" }, +[BASE_NR + 76] = { 2, 0, SEN(getrlimit), "getrlimit" }, +[BASE_NR + 77] = { 2, 0, SEN(getrusage), "getrusage" }, +[BASE_NR + 78] = { 2, TCL, SEN(gettimeofday), "gettimeofday" }, +[BASE_NR + 79] = { 2, TCL, SEN(settimeofday), "settimeofday" }, +[BASE_NR + 80] = { 2, TC, SEN(getgroups), "getgroups" }, +[BASE_NR + 81] = { 2, TC, SEN(setgroups), "setgroups" }, +[BASE_NR + 82] = { 0, 0, SEN(printargs), "reserved82" }, +[BASE_NR + 83] = { 2, TF, SEN(symlink), "symlink" }, +[BASE_NR + 84] = { 2, TF|TLST|TSTA, SEN(oldlstat), "oldlstat" }, +[BASE_NR + 85] = { 3, TF, SEN(readlink), "readlink" }, +[BASE_NR + 86] = { 1, TF, SEN(uselib), "uselib" }, +[BASE_NR + 87] = { 2, TF, SEN(swapon), "swapon" }, +[BASE_NR + 88] = { 4, 0, SEN(reboot), "reboot" }, +[BASE_NR + 89] = { 3, TD, SEN(readdir), "readdir" }, +[BASE_NR + 90] = { 6, TD|TM|SI, SEN(mmap), "mmap" }, +[BASE_NR + 91] = { 2, TM|SI, SEN(munmap), "munmap" }, +[BASE_NR + 92] = { 2, TF, SEN(truncate), "truncate" }, +[BASE_NR + 93] = { 2, TD, SEN(ftruncate), "ftruncate" }, +[BASE_NR + 94] = { 2, TD, SEN(fchmod), "fchmod" }, +[BASE_NR + 95] = { 3, TD, SEN(fchown), "fchown" }, +[BASE_NR + 96] = { 2, 0, SEN(getpriority), "getpriority" }, +[BASE_NR + 97] = { 3, 0, SEN(setpriority), "setpriority" }, +[BASE_NR + 98] = { 0, 0, SEN(profil), "profil" }, +[BASE_NR + 99] = { 2, TF|TSF|TSFA, SEN(statfs), "statfs" }, +[BASE_NR + 100] = { 2, TD|TFSF|TSFA, SEN(fstatfs), "fstatfs" }, +[BASE_NR + 101] = { 3, 0, SEN(ioperm), "ioperm" }, +[BASE_NR + 102] = { 2, TD|TSD, SEN(socketcall), "socketcall" }, +[BASE_NR + 103] = { 3, 0, SEN(syslog), "syslog" }, +[BASE_NR + 104] = { 3, 0, SEN(setitimer), "setitimer" }, +[BASE_NR + 105] = { 2, 0, SEN(getitimer), "getitimer" }, +[BASE_NR + 106] = { 2, TF|TST|TSTA, SEN(stat), "stat" }, +[BASE_NR + 107] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" }, +[BASE_NR + 108] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" }, +[BASE_NR + 109] = { 1, 0, SEN(olduname), "olduname" }, +[BASE_NR + 110] = { 1, 0, SEN(iopl), "iopl" }, +[BASE_NR + 111] = { 0, 0, SEN(vhangup), "vhangup" }, +[BASE_NR + 112] = { 0, 0, SEN(idle), "idle" }, +[BASE_NR + 113] = { 5, 0, SEN(vm86old), "vm86" }, +[BASE_NR + 114] = { 4, TP, SEN(wait4), "wait4" }, +[BASE_NR + 115] = { 1, TF, SEN(swapoff), "swapoff" }, +[BASE_NR + 116] = { 1, 0, SEN(sysinfo), "sysinfo" }, +[BASE_NR + 117] = { 6, TI|TSD, SEN(ipc), "ipc" }, +[BASE_NR + 118] = { 1, TD, SEN(fsync), "fsync" }, +[BASE_NR + 119] = { 0, TS, SEN(sigreturn), "sigreturn" }, +[BASE_NR + 120] = { 5, TP, SEN(clone), "clone" }, +[BASE_NR + 121] = { 2, 0, SEN(setdomainname), "setdomainname" }, +[BASE_NR + 122] = { 1, 0, SEN(uname), "uname" }, +[BASE_NR + 123] = { 0, 0, SEN(modify_ldt), "modify_ldt" }, +[BASE_NR + 124] = { 1, TCL, SEN(adjtimex32), "adjtimex" }, +[BASE_NR + 125] = { 3, TM|SI, SEN(mprotect), "mprotect" }, +[BASE_NR + 126] = { 3, TS, SEN(sigprocmask), "sigprocmask" }, +[BASE_NR + 127] = { 2, 0, SEN(create_module), "create_module" }, +[BASE_NR + 128] = { 3, 0, SEN(init_module), "init_module" }, +[BASE_NR + 129] = { 2, 0, SEN(delete_module), "delete_module" }, +[BASE_NR + 130] = { 1, 0, SEN(get_kernel_syms), "get_kernel_syms" }, +[BASE_NR + 131] = { 4, TF, SEN(quotactl), "quotactl" }, +[BASE_NR + 132] = { 1, 0, SEN(getpgid), "getpgid" }, +[BASE_NR + 133] = { 1, TD, SEN(fchdir), "fchdir" }, +[BASE_NR + 134] = { 2, 0, SEN(bdflush), "bdflush" }, +[BASE_NR + 135] = { 3, 0, SEN(sysfs), "sysfs" }, +[BASE_NR + 136] = { 1, NF, SEN(personality), "personality" }, +[BASE_NR + 137] = { 0, 0, SEN(afs_syscall), "afs_syscall" }, +[BASE_NR + 138] = { 1, TC|NF, SEN(setfsuid), "setfsuid" }, +[BASE_NR + 139] = { 1, TC|NF, SEN(setfsgid), "setfsgid" }, +[BASE_NR + 140] = { 5, TD, SEN(llseek), "_llseek" }, +[BASE_NR + 141] = { 3, TD, SEN(getdents), "getdents" }, +[BASE_NR + 142] = { 5, TD, SEN(select), "_newselect" }, +[BASE_NR + 143] = { 2, TD, SEN(flock), "flock" }, +[BASE_NR + 144] = { 3, TM, SEN(msync), "msync" }, +[BASE_NR + 145] = { 3, TD, SEN(readv), "readv" }, +[BASE_NR + 146] = { 3, TD, SEN(writev), "writev" }, +[BASE_NR + 147] = { 3, 0, SEN(printargs), "cacheflush" }, +[BASE_NR + 148] = { 3, 0, SEN(printargs), "cachectl" }, +[BASE_NR + 149] = { 4, 0, SEN(sysmips), "sysmips" }, +[BASE_NR + 150] = { 0, 0, SEN(setup), "setup" }, +[BASE_NR + 151] = { 1, 0, SEN(getsid), "getsid" }, +[BASE_NR + 152] = { 1, TD, SEN(fdatasync), "fdatasync" }, +[BASE_NR + 153] = { 1, 0, SEN(sysctl), "_sysctl" }, +[BASE_NR + 154] = { 2, TM, SEN(mlock), "mlock" }, +[BASE_NR + 155] = { 2, TM, SEN(munlock), "munlock" }, +[BASE_NR + 156] = { 1, TM, SEN(mlockall), "mlockall" }, +[BASE_NR + 157] = { 0, TM, SEN(munlockall), "munlockall" }, +[BASE_NR + 158] = { 2, 0, SEN(sched_setparam), "sched_setparam" }, +[BASE_NR + 159] = { 2, 0, SEN(sched_getparam), "sched_getparam" }, +[BASE_NR + 160] = { 3, 0, SEN(sched_setscheduler), "sched_setscheduler" }, +[BASE_NR + 161] = { 1, 0, SEN(sched_getscheduler), "sched_getscheduler" }, +[BASE_NR + 162] = { 0, 0, SEN(sched_yield), "sched_yield" }, +[BASE_NR + 163] = { 1, 0, SEN(sched_get_priority_max), "sched_get_priority_max"}, +[BASE_NR + 164] = { 1, 0, SEN(sched_get_priority_min), "sched_get_priority_min"}, +[BASE_NR + 165] = { 2, 0, SEN(sched_rr_get_interval_time32),"sched_rr_get_interval"}, +[BASE_NR + 166] = { 2, 0, SEN(nanosleep_time32), "nanosleep" }, +[BASE_NR + 167] = { 5, TM|SI, SEN(mremap), "mremap" }, +[BASE_NR + 168] = { 3, TN, SEN(accept), "accept" }, +[BASE_NR + 169] = { 3, TN, SEN(bind), "bind" }, +[BASE_NR + 170] = { 3, TN, SEN(connect), "connect" }, +[BASE_NR + 171] = { 3, TN, SEN(getpeername), "getpeername" }, +[BASE_NR + 172] = { 3, TN, SEN(getsockname), "getsockname" }, +[BASE_NR + 173] = { 5, TN, SEN(getsockopt), "getsockopt" }, +[BASE_NR + 174] = { 2, TN, SEN(listen), "listen" }, +[BASE_NR + 175] = { 4, TN, SEN(recv), "recv" }, +[BASE_NR + 176] = { 6, TN, SEN(recvfrom), "recvfrom" }, +[BASE_NR + 177] = { 3, TN, SEN(recvmsg), "recvmsg" }, +[BASE_NR + 178] = { 4, TN, SEN(send), "send" }, +[BASE_NR + 179] = { 3, TN, SEN(sendmsg), "sendmsg" }, +[BASE_NR + 180] = { 6, TN, SEN(sendto), "sendto" }, +[BASE_NR + 181] = { 5, TN, SEN(setsockopt), "setsockopt" }, +[BASE_NR + 182] = { 2, TN, SEN(shutdown), "shutdown" }, +[BASE_NR + 183] = { 3, TN, SEN(socket), "socket" }, +[BASE_NR + 184] = { 4, TN, SEN(socketpair), "socketpair" }, +[BASE_NR + 185] = { 3, TC, SEN(setresuid), "setresuid" }, +[BASE_NR + 186] = { 3, TC, SEN(getresuid), "getresuid" }, +[BASE_NR + 187] = { 5, 0, SEN(query_module), "query_module" }, +[BASE_NR + 188] = { 3, TD, SEN(poll_time32), "poll" }, +[BASE_NR + 189] = { 3, 0, SEN(nfsservctl), "nfsservctl" }, +[BASE_NR + 190] = { 3, TC, SEN(setresgid), "setresgid" }, +[BASE_NR + 191] = { 3, TC, SEN(getresgid), "getresgid" }, +[BASE_NR + 192] = { 5, TC, SEN(prctl), "prctl" }, +[BASE_NR + 193] = { 0, TS, SEN(rt_sigreturn), "rt_sigreturn" }, +[BASE_NR + 194] = { 4, TS, SEN(rt_sigaction), "rt_sigaction" }, +[BASE_NR + 195] = { 4, TS, SEN(rt_sigprocmask), "rt_sigprocmask" }, +[BASE_NR + 196] = { 2, TS, SEN(rt_sigpending), "rt_sigpending" }, +[BASE_NR + 197] = { 4, TS, SEN(rt_sigtimedwait_time32), "rt_sigtimedwait" }, +[BASE_NR + 198] = { 3, TS|TP, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, +[BASE_NR + 199] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" }, +[BASE_NR + 200] = { 6, TD, SEN(pread), "pread64" }, +[BASE_NR + 201] = { 6, TD, SEN(pwrite), "pwrite64" }, +[BASE_NR + 202] = { 3, TF, SEN(chown), "chown" }, +[BASE_NR + 203] = { 2, TF, SEN(getcwd), "getcwd" }, +[BASE_NR + 204] = { 2, TC, SEN(capget), "capget" }, +[BASE_NR + 205] = { 2, TC, SEN(capset), "capset" }, +[BASE_NR + 206] = { 2, TS, SEN(sigaltstack), "sigaltstack" }, +[BASE_NR + 207] = { 4, TD|TN, SEN(sendfile), "sendfile" }, +[BASE_NR + 208] = { 5, TN, SEN(getpmsg), "getpmsg" }, +[BASE_NR + 209] = { 5, TN, SEN(putpmsg), "putpmsg" }, +[BASE_NR + 210] = { 6, TD|TM|SI, SEN(mmap_4koff), "mmap2" }, +[BASE_NR + 211] = { 4, TF, SEN(truncate64), "truncate64" }, +[BASE_NR + 212] = { 4, TD, SEN(ftruncate64), "ftruncate64" }, +[BASE_NR + 213] = { 2, TF|TST|TSTA, SEN(stat64), "stat64" }, +[BASE_NR + 214] = { 2, TF|TLST|TSTA, SEN(lstat64), "lstat64" }, +[BASE_NR + 215] = { 2, TD|TFST|TSTA, SEN(fstat64), "fstat64" }, +[BASE_NR + 216] = { 2, TF, SEN(pivotroot), "pivot_root" }, +[BASE_NR + 217] = { 3, TM, SEN(mincore), "mincore" }, +[BASE_NR + 218] = { 3, TM, SEN(madvise), "madvise" }, +[BASE_NR + 219] = { 3, TD, SEN(getdents64), "getdents64" }, +[BASE_NR + 220] = { 3, TD, SEN(fcntl64), "fcntl64" }, +[BASE_NR + 221] = { 0, 0, SEN(printargs), "reserved221" }, +[BASE_NR + 222] = { 0, PU|NF, SEN(gettid), "gettid" }, +[BASE_NR + 223] = { 5, TD, SEN(readahead), "readahead" }, +[BASE_NR + 224] = { 5, TF, SEN(setxattr), "setxattr" }, +[BASE_NR + 225] = { 5, TF, SEN(setxattr), "lsetxattr" }, +[BASE_NR + 226] = { 5, TD, SEN(fsetxattr), "fsetxattr" }, +[BASE_NR + 227] = { 4, TF, SEN(getxattr), "getxattr" }, +[BASE_NR + 228] = { 4, TF, SEN(getxattr), "lgetxattr" }, +[BASE_NR + 229] = { 4, TD, SEN(fgetxattr), "fgetxattr" }, +[BASE_NR + 230] = { 3, TF, SEN(listxattr), "listxattr" }, +[BASE_NR + 231] = { 3, TF, SEN(listxattr), "llistxattr" }, +[BASE_NR + 232] = { 3, TD, SEN(flistxattr), "flistxattr" }, +[BASE_NR + 233] = { 2, TF, SEN(removexattr), "removexattr" }, +[BASE_NR + 234] = { 2, TF, SEN(removexattr), "lremovexattr" }, +[BASE_NR + 235] = { 2, TD, SEN(fremovexattr), "fremovexattr" }, +[BASE_NR + 236] = { 2, TS|TP, SEN(tkill), "tkill" }, +[BASE_NR + 237] = { 4, TD|TN, SEN(sendfile64), "sendfile64" }, +[BASE_NR + 238] = { 6, 0, SEN(futex_time32), "futex" }, +[BASE_NR + 239] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" }, +[BASE_NR + 240] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" }, +[BASE_NR + 241] = { 2, TM, SEN(io_setup), "io_setup" }, +[BASE_NR + 242] = { 1, TM, SEN(io_destroy), "io_destroy" }, +[BASE_NR + 243] = { 5, 0, SEN(io_getevents_time32), "io_getevents" }, +[BASE_NR + 244] = { 3, 0, SEN(io_submit), "io_submit" }, +[BASE_NR + 245] = { 3, 0, SEN(io_cancel), "io_cancel" }, +[BASE_NR + 246] = { 1, TP|SE, SEN(exit), "exit_group" }, +[BASE_NR + 247] = { 4, 0, SEN(lookup_dcookie), "lookup_dcookie" }, +[BASE_NR + 248] = { 1, TD, SEN(epoll_create), "epoll_create" }, +[BASE_NR + 249] = { 4, TD, SEN(epoll_ctl), "epoll_ctl" }, +[BASE_NR + 250] = { 4, TD, SEN(epoll_wait), "epoll_wait" }, +[BASE_NR + 251] = { 5, TM|SI, SEN(remap_file_pages), "remap_file_pages" }, +[BASE_NR + 252] = { 1, 0, SEN(set_tid_address), "set_tid_address" }, +[BASE_NR + 253] = { 0, 0, SEN(restart_syscall), "restart_syscall" }, +[BASE_NR + 254] = { 7, TD, SEN(fadvise64_64), "fadvise64" }, +[BASE_NR + 255] = { 3, TF|TSF|TSFA, SEN(statfs64), "statfs64" }, +[BASE_NR + 256] = { 3, TD|TFSF|TSFA, SEN(fstatfs64), "fstatfs64" }, +[BASE_NR + 257] = { 3, 0, SEN(timer_create), "timer_create" }, +[BASE_NR + 258] = { 4, 0, SEN(timer_settime32), "timer_settime" }, +[BASE_NR + 259] = { 2, 0, SEN(timer_gettime32), "timer_gettime" }, +[BASE_NR + 260] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" }, +[BASE_NR + 261] = { 1, 0, SEN(timer_delete), "timer_delete" }, +[BASE_NR + 262] = { 2, TCL, SEN(clock_settime32), "clock_settime" }, +[BASE_NR + 263] = { 2, TCL, SEN(clock_gettime32), "clock_gettime" }, +[BASE_NR + 264] = { 2, TCL, SEN(clock_getres_time32), "clock_getres" }, +[BASE_NR + 265] = { 4, 0, SEN(clock_nanosleep_time32), "clock_nanosleep" }, +[BASE_NR + 266] = { 3, TS|TP, SEN(tgkill), "tgkill" }, +[BASE_NR + 267] = { 2, TF, SEN(utimes), "utimes" }, +[BASE_NR + 268] = { 6, TM, SEN(mbind), "mbind" }, +[BASE_NR + 269] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" }, +[BASE_NR + 270] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" }, +[BASE_NR + 271] = { 4, TD, SEN(mq_open), "mq_open" }, +[BASE_NR + 272] = { 1, 0, SEN(mq_unlink), "mq_unlink" }, +[BASE_NR + 273] = { 5, TD, SEN(mq_timedsend_time32), "mq_timedsend" }, +[BASE_NR + 274] = { 5, TD, SEN(mq_timedreceive_time32), "mq_timedreceive" }, +[BASE_NR + 275] = { 2, TD, SEN(mq_notify), "mq_notify" }, +[BASE_NR + 276] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" }, +[BASE_NR + 277] = { 5, 0, SEN(vserver), "vserver" }, +[BASE_NR + 278] = { 5, TP, SEN(waitid), "waitid" }, +[BASE_NR + 279] = { }, +[BASE_NR + 280] = { 5, 0, SEN(add_key), "add_key" }, +[BASE_NR + 281] = { 4, 0, SEN(request_key), "request_key" }, +[BASE_NR + 282] = { 5, 0, SEN(keyctl), "keyctl" }, +[BASE_NR + 283] = { 1, 0, SEN(set_thread_area), "set_thread_area" }, +[BASE_NR + 284] = { 0, TD, SEN(inotify_init), "inotify_init" }, +[BASE_NR + 285] = { 3, TD|TF, SEN(inotify_add_watch), "inotify_add_watch" }, +[BASE_NR + 286] = { 2, TD, SEN(inotify_rm_watch), "inotify_rm_watch" }, +[BASE_NR + 287] = { 4, TM, SEN(migrate_pages), "migrate_pages" }, +[BASE_NR + 288] = { 4, TD|TF, SEN(openat), "openat" }, +[BASE_NR + 289] = { 3, TD|TF, SEN(mkdirat), "mkdirat" }, +[BASE_NR + 290] = { 4, TD|TF, SEN(mknodat), "mknodat" }, +[BASE_NR + 291] = { 5, TD|TF, SEN(fchownat), "fchownat" }, +[BASE_NR + 292] = { 3, TD|TF, SEN(futimesat), "futimesat" }, +[BASE_NR + 293] = { 4, TD|TF|TFST|TSTA,SEN(fstatat64), "fstatat64" }, +[BASE_NR + 294] = { 3, TD|TF, SEN(unlinkat), "unlinkat" }, +[BASE_NR + 295] = { 4, TD|TF, SEN(renameat), "renameat" }, +[BASE_NR + 296] = { 5, TD|TF, SEN(linkat), "linkat" }, +[BASE_NR + 297] = { 3, TD|TF, SEN(symlinkat), "symlinkat" }, +[BASE_NR + 298] = { 4, TD|TF, SEN(readlinkat), "readlinkat" }, +[BASE_NR + 299] = { 3, TD|TF, SEN(fchmodat), "fchmodat" }, +[BASE_NR + 300] = { 3, TD|TF, SEN(faccessat), "faccessat" }, +[BASE_NR + 301] = { 6, TD, SEN(pselect6_time32), "pselect6" }, +[BASE_NR + 302] = { 5, TD, SEN(ppoll_time32), "ppoll" }, +[BASE_NR + 303] = { 1, 0, SEN(unshare), "unshare" }, +[BASE_NR + 304] = { 6, TD, SEN(splice), "splice" }, +[BASE_NR + 305] = { 7, TD, SEN(sync_file_range), "sync_file_range" }, +[BASE_NR + 306] = { 4, TD, SEN(tee), "tee" }, +[BASE_NR + 307] = { 4, TD, SEN(vmsplice), "vmsplice" }, +[BASE_NR + 308] = { 6, TM, SEN(move_pages), "move_pages" }, +[BASE_NR + 309] = { 2, 0, SEN(set_robust_list), "set_robust_list" }, +[BASE_NR + 310] = { 3, 0, SEN(get_robust_list), "get_robust_list" }, +[BASE_NR + 311] = { 4, 0, SEN(kexec_load), "kexec_load" }, +[BASE_NR + 312] = { 3, 0, SEN(getcpu), "getcpu" }, +[BASE_NR + 313] = { 6, TD, SEN(epoll_pwait), "epoll_pwait" }, +[BASE_NR + 314] = { 3, 0, SEN(ioprio_set), "ioprio_set" }, +[BASE_NR + 315] = { 2, 0, SEN(ioprio_get), "ioprio_get" }, +[BASE_NR + 316] = { 4, TD|TF, SEN(utimensat_time32), "utimensat" }, +[BASE_NR + 317] = { 3, TD|TS, SEN(signalfd), "signalfd" }, +[BASE_NR + 318] = { 4, TD, SEN(timerfd), "timerfd" }, +[BASE_NR + 319] = { 1, TD, SEN(eventfd), "eventfd" }, +[BASE_NR + 320] = { 6, TD, SEN(fallocate), "fallocate" }, +[BASE_NR + 321] = { 2, TD, SEN(timerfd_create), "timerfd_create" }, +[BASE_NR + 322] = { 2, TD, SEN(timerfd_gettime32), "timerfd_gettime" }, +[BASE_NR + 323] = { 4, TD, SEN(timerfd_settime32), "timerfd_settime" }, +[BASE_NR + 324] = { 4, TD|TS, SEN(signalfd4), "signalfd4" }, +[BASE_NR + 325] = { 2, TD, SEN(eventfd2), "eventfd2" }, +[BASE_NR + 326] = { 1, TD, SEN(epoll_create1), "epoll_create1" }, +[BASE_NR + 327] = { 3, TD, SEN(dup3), "dup3" }, +[BASE_NR + 328] = { 2, TD, SEN(pipe2), "pipe2" }, +[BASE_NR + 329] = { 1, TD, SEN(inotify_init1), "inotify_init1" }, +[BASE_NR + 330] = { 5, TD, SEN(preadv), "preadv" }, +[BASE_NR + 331] = { 5, TD, SEN(pwritev), "pwritev" }, +[BASE_NR + 332] = { 4, TP|TS, SEN(rt_tgsigqueueinfo), "rt_tgsigqueueinfo" }, +[BASE_NR + 333] = { 5, TD, SEN(perf_event_open), "perf_event_open" }, +[BASE_NR + 334] = { 4, TN, SEN(accept4), "accept4" }, +[BASE_NR + 335] = { 5, TN, SEN(recvmmsg_time32), "recvmmsg" }, +[BASE_NR + 336] = { 2, TD, SEN(fanotify_init), "fanotify_init" }, +[BASE_NR + 337] = { 6, TD|TF, SEN(fanotify_mark), "fanotify_mark" }, +[BASE_NR + 338] = { 4, 0, SEN(prlimit64), "prlimit64" }, +[BASE_NR + 339] = { 5, TD|TF, SEN(name_to_handle_at), "name_to_handle_at" }, +[BASE_NR + 340] = { 3, TD, SEN(open_by_handle_at), "open_by_handle_at" }, +[BASE_NR + 341] = { 2, TCL, SEN(clock_adjtime32), "clock_adjtime" }, +[BASE_NR + 342] = { 1, TD, SEN(syncfs), "syncfs" }, +[BASE_NR + 343] = { 4, TN, SEN(sendmmsg), "sendmmsg" }, +[BASE_NR + 344] = { 2, TD, SEN(setns), "setns" }, +[BASE_NR + 345] = { 6, 0, SEN(process_vm_readv), "process_vm_readv" }, +[BASE_NR + 346] = { 6, 0, SEN(process_vm_writev), "process_vm_writev" }, +[BASE_NR + 347] = { 5, 0, SEN(kcmp), "kcmp" }, +[BASE_NR + 348] = { 3, TD, SEN(finit_module), "finit_module" }, +[BASE_NR + 349] = { 3, 0, SEN(sched_setattr), "sched_setattr" }, +[BASE_NR + 350] = { 4, 0, SEN(sched_getattr), "sched_getattr" }, +[BASE_NR + 351] = { 5, TD|TF, SEN(renameat2), "renameat2" }, +[BASE_NR + 352] = { 3, 0, SEN(seccomp), "seccomp" }, +[BASE_NR + 353] = { 3, 0, SEN(getrandom), "getrandom" }, +[BASE_NR + 354] = { 2, TD, SEN(memfd_create), "memfd_create" }, +[BASE_NR + 355] = { 3, TD, SEN(bpf), "bpf" }, +[BASE_NR + 356] = { 5, TD|TF|TP|TSD|SE|SI, SEN(execveat), "execveat" }, +[BASE_NR + 357] = { 1, TD, SEN(userfaultfd), "userfaultfd" }, +[BASE_NR + 358] = { 2, 0, SEN(membarrier), "membarrier" }, +[BASE_NR + 359] = { 3, TM, SEN(mlock2), "mlock2" }, +[BASE_NR + 360] = { 6, TD, SEN(copy_file_range), "copy_file_range" }, +[BASE_NR + 361] = { 6, TD, SEN(preadv2), "preadv2" }, +[BASE_NR + 362] = { 6, TD, SEN(pwritev2), "pwritev2" }, +[BASE_NR + 363] = { 4, TM|SI, SEN(pkey_mprotect), "pkey_mprotect" }, +[BASE_NR + 364] = { 2, 0, SEN(pkey_alloc), "pkey_alloc" }, +[BASE_NR + 365] = { 1, 0, SEN(pkey_free), "pkey_free" }, +[BASE_NR + 366] = { 5, TD|TF|TFST|TSTA,SEN(statx), "statx" }, +[BASE_NR + 367] = { 4, 0, SEN(rseq), "rseq" }, +[BASE_NR + 368] = { 6, 0, SEN(io_pgetevents_time32), "io_pgetevents" }, /* room for arch specific calls */ -[4393] = { 3, TI, SEN(semget), "semget" }, -[4394] = { 4, TI, SEN(semctl), "semctl" }, -[4395] = { 3, TI, SEN(shmget), "shmget" }, -[4396] = { 3, TI, SEN(shmctl), "shmctl" }, -[4397] = { 3, TI|TM|SI, SEN(shmat), "shmat" }, -[4398] = { 1, TI|TM|SI, SEN(shmdt), "shmdt" }, -[4399] = { 2, TI, SEN(msgget), "msgget" }, -[4400] = { 4, TI, SEN(msgsnd), "msgsnd" }, -[4401] = { 5, TI, SEN(msgrcv), "msgrcv" }, -[4402] = { 3, TI, SEN(msgctl), "msgctl" }, -[4403] = { 2, 0, SEN(clock_gettime64), "clock_gettime64" }, -[4404] = { 2, 0, SEN(clock_settime64), "clock_settime64" }, -[4405] = { 2, 0, SEN(clock_adjtime64), "clock_adjtime64" }, -[4406] = { 2, 0, SEN(clock_getres_time64), "clock_getres_time64" }, -[4407] = { 4, 0, SEN(clock_nanosleep_time64), "clock_nanosleep_time64"}, -[4408] = { 2, 0, SEN(timer_gettime64), "timer_gettime64" }, -[4409] = { 4, 0, SEN(timer_settime64), "timer_settime64" }, -[4410] = { 2, TD, SEN(timerfd_gettime64), "timerfd_gettime64" }, -[4411] = { 4, TD, SEN(timerfd_settime64), "timerfd_settime64" }, -[4412] = { 4, TD|TF, SEN(utimensat_time64), "utimensat_time64" }, -[4413] = { 6, TD, SEN(pselect6_time64), "pselect6_time64" }, -[4414] = { 5, TD, SEN(ppoll_time64), "ppoll_time64" }, -[4416] = { 6, 0, SEN(io_pgetevents_time64), "io_pgetevents_time64" }, -[4417] = { 5, TN, SEN(recvmmsg_time64), "recvmmsg_time64" }, -[4418] = { 5, TD, SEN(mq_timedsend_time64), "mq_timedsend_time64" }, -[4419] = { 5, TD, SEN(mq_timedreceive_time64), "mq_timedreceive_time64"}, -[4420] = { 4, TI, SEN(semtimedop_time64), "semtimedop_time64" }, -[4421] = { 4, TS, SEN(rt_sigtimedwait_time64), "rt_sigtimedwait_time64"}, -[4422] = { 6, 0, SEN(futex_time64), "futex_time64" }, -[4423] = { 2, 0, SEN(sched_rr_get_interval_time64), "sched_rr_get_interval_time64" }, -[4424] = { 4, TD|TS, SEN(pidfd_send_signal), "pidfd_send_signal" }, -[4425] = { 2, TD, SEN(io_uring_setup), "io_uring_setup" }, -[4426] = { 6, TD|TS, SEN(io_uring_enter), "io_uring_enter" }, -[4427] = { 4, TD|TM, SEN(io_uring_register), "io_uring_register" }, +[BASE_NR + 393] = { 3, TI, SEN(semget), "semget" }, +[BASE_NR + 394] = { 4, TI, SEN(semctl), "semctl" }, +[BASE_NR + 395] = { 3, TI, SEN(shmget), "shmget" }, +[BASE_NR + 396] = { 3, TI, SEN(shmctl), "shmctl" }, +[BASE_NR + 397] = { 3, TI|TM|SI, SEN(shmat), "shmat" }, +[BASE_NR + 398] = { 1, TI|TM|SI, SEN(shmdt), "shmdt" }, +[BASE_NR + 399] = { 2, TI, SEN(msgget), "msgget" }, +[BASE_NR + 400] = { 4, TI, SEN(msgsnd), "msgsnd" }, +[BASE_NR + 401] = { 5, TI, SEN(msgrcv), "msgrcv" }, +[BASE_NR + 402] = { 3, TI, SEN(msgctl), "msgctl" }, +# include "syscallent-common-32.h" +# include "syscallent-common.h" # define SYS_socket_subcall 4500 # include "subcall32.h" #else +# define SYSCALL_NAME_PREFIX "o32:" # include "syscallent-o32-stub.h" +# include "syscallent-common-32-stub.h" +# include "syscallent-common-stub.h" +# undef SYSCALL_NAME_PREFIX #endif +#undef BASE_NR diff --git a/linux/nios2/set_scno.c b/linux/nios2/set_scno.c index 64f226b1..ae1b196f 100644 --- a/linux/nios2/set_scno.c +++ b/linux/nios2/set_scno.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -8,6 +8,8 @@ static int arch_set_scno(struct tcb *tcp, kernel_ulong_t scno) { + if (ptrace_syscall_info_is_valid() && get_regs(tcp) < 0) + return -1; nios2_regs.regs[2] = scno; return set_regs(tcp->pid); } diff --git a/linux/or1k/set_scno.c b/linux/or1k/set_scno.c index df2c5ad8..853364ac 100644 --- a/linux/or1k/set_scno.c +++ b/linux/or1k/set_scno.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -8,6 +8,8 @@ static int arch_set_scno(struct tcb *tcp, kernel_ulong_t scno) { + if (ptrace_syscall_info_is_valid() && get_regs(tcp) < 0) + return -1; or1k_regs.gpr[11] = scno; return set_regs(tcp->pid); } diff --git a/linux/powerpc/ioctls_arch0.h b/linux/powerpc/ioctls_arch0.h index 190887d4..c5255242 100644 --- a/linux/powerpc/ioctls_arch0.h +++ b/linux/powerpc/ioctls_arch0.h @@ -89,6 +89,7 @@ { "asm/ps3fb.h", "PS3FB_IOCTL_ON", _IOC_NONE, 0x7204, 0x00 }, { "asm/ps3fb.h", "PS3FB_IOCTL_SCREENINFO", _IOC_READ, 0x7203, 0x04 }, { "asm/ps3fb.h", "PS3FB_IOCTL_SETMODE", _IOC_WRITE, 0x7201, 0x04 }, +{ "asm/vas-api.h", "VAS_TX_WIN_OPEN", _IOC_WRITE, 0x7620, 0x40 }, { "linux/kvm.h", "KVM_ALLOCATE_RMA", _IOC_READ, 0xaea9, 0x08 }, { "linux/kvm.h", "KVM_ASSIGN_DEV_IRQ", _IOC_WRITE, 0xae70, 0x40 }, { "linux/kvm.h", "KVM_ASSIGN_PCI_DEVICE", _IOC_READ, 0xae69, 0x40 }, @@ -144,6 +145,7 @@ { "linux/kvm.h", "KVM_PPC_RESIZE_HPT_COMMIT", _IOC_READ, 0xaeae, 0x10 }, { "linux/kvm.h", "KVM_PPC_RESIZE_HPT_PREPARE", _IOC_READ, 0xaead, 0x10 }, { "linux/kvm.h", "KVM_PPC_RTAS_DEFINE_TOKEN", _IOC_WRITE, 0xaeac, 0x80 }, +{ "linux/kvm.h", "KVM_PPC_SVM_OFF", _IOC_NONE, 0xaeb3, 0x00 }, { "linux/kvm.h", "KVM_REGISTER_COALESCED_MMIO", _IOC_WRITE, 0xae67, 0x10 }, { "linux/kvm.h", "KVM_REINJECT_CONTROL", _IOC_NONE, 0xae71, 0x00 }, { "linux/kvm.h", "KVM_RUN", _IOC_NONE, 0xae80, 0x00 }, diff --git a/linux/powerpc/set_error.c b/linux/powerpc/set_error.c index 9b8a6f2f..90dae8b6 100644 --- a/linux/powerpc/set_error.c +++ b/linux/powerpc/set_error.c @@ -1,24 +1,35 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ +static int +arch_set_r3_ccr(struct tcb *tcp, const unsigned long r3, + const unsigned long ccr_set, const unsigned long ccr_clear) +{ + if (ptrace_syscall_info_is_valid() && + upeek(tcp, sizeof(long) * PT_CCR, &ppc_regs.ccr)) + return -1; + const unsigned long old_ccr = ppc_regs.ccr; + ppc_regs.gpr[3] = r3; + ppc_regs.ccr |= ccr_set; + ppc_regs.ccr &= ~ccr_clear; + if (ppc_regs.ccr != old_ccr && + upoke(tcp, sizeof(long) * PT_CCR, ppc_regs.ccr)) + return -1; + return upoke(tcp, sizeof(long) * (PT_R0 + 3), ppc_regs.gpr[3]); +} + static int arch_set_error(struct tcb *tcp) { - ppc_regs.gpr[3] = tcp->u_error; - ppc_regs.ccr |= 0x10000000; - return upoke(tcp, sizeof(long) * PT_CCR, ppc_regs.ccr) || - upoke(tcp, sizeof(long) * (PT_R0 + 3), ppc_regs.gpr[3]); + return arch_set_r3_ccr(tcp, tcp->u_error, 0x10000000, 0); } static int arch_set_success(struct tcb *tcp) { - ppc_regs.gpr[3] = tcp->u_rval; - ppc_regs.ccr &= ~0x10000000; - return upoke(tcp, sizeof(long) * PT_CCR, ppc_regs.ccr) || - upoke(tcp, sizeof(long) * (PT_R0 + 3), ppc_regs.gpr[3]); + return arch_set_r3_ccr(tcp, tcp->u_rval, 0, 0x10000000); } diff --git a/linux/powerpc/syscallent.h b/linux/powerpc/syscallent.h index 4e184646..db4dd2b5 100644 --- a/linux/powerpc/syscallent.h +++ b/linux/powerpc/syscallent.h @@ -1,7 +1,7 @@ /* * Copyright (c) 1993 Branko Lankester * Copyright (c) 1993, 1994, 1995 Rick Sladkey - * Copyright (c) 1995-2019 The strace developers. + * Copyright (c) 1995-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -18,9 +18,9 @@ [ 8] = { 2, TD|TF, SEN(creat), "creat" }, [ 9] = { 2, TF, SEN(link), "link" }, [ 10] = { 1, TF, SEN(unlink), "unlink" }, -[ 11] = { 3, TF|TP|SE|SI, SEN(execve), "execve" }, +[ 11] = { 3, TF|TP|TSD|SE|SI, SEN(execve), "execve" }, [ 12] = { 1, TF, SEN(chdir), "chdir" }, -[ 13] = { 1, 0, SEN(time), "time" }, +[ 13] = { 1, TCL, SEN(time), "time" }, [ 14] = { 3, TF, SEN(mknod), "mknod" }, [ 15] = { 2, TF, SEN(chmod), "chmod" }, [ 16] = { 3, TF, SEN(chown), "lchown" }, @@ -30,8 +30,8 @@ [ 20] = { 0, PU|NF, SEN(getpid), "getpid" }, [ 21] = { 5, TF, SEN(mount), "mount" }, [ 22] = { 1, TF, SEN(umount), "umount" }, -[ 23] = { 1, 0, SEN(setuid), "setuid" }, -[ 24] = { 0, PU|NF, SEN(getuid), "getuid" }, +[ 23] = { 1, TC, SEN(setuid), "setuid" }, +[ 24] = { 0, TC|PU|NF, SEN(getuid), "getuid" }, [ 25] = { 1, 0, SEN(stime), "stime" }, [ 26] = { 4, 0, SEN(ptrace), "ptrace" }, [ 27] = { 1, 0, SEN(alarm), "alarm" }, @@ -44,7 +44,7 @@ [ 34] = { 1, 0, SEN(nice), "nice" }, [ 35] = { 0, 0, SEN(ftime), "ftime" }, [ 36] = { 0, 0, SEN(sync), "sync" }, -[ 37] = { 2, TS, SEN(kill), "kill" }, +[ 37] = { 2, TS|TP, SEN(kill), "kill" }, [ 38] = { 2, TF, SEN(rename), "rename" }, [ 39] = { 2, TF, SEN(mkdir), "mkdir" }, [ 40] = { 1, TF, SEN(rmdir), "rmdir" }, @@ -53,11 +53,11 @@ [ 43] = { 1, 0, SEN(times), "times" }, [ 44] = { 0, 0, SEN(prof), "prof" }, [ 45] = { 1, TM|SI, SEN(brk), "brk" }, -[ 46] = { 1, 0, SEN(setgid), "setgid" }, -[ 47] = { 0, PU|NF, SEN(getgid), "getgid" }, +[ 46] = { 1, TC, SEN(setgid), "setgid" }, +[ 47] = { 0, TC|PU|NF, SEN(getgid), "getgid" }, [ 48] = { 2, TS, SEN(signal), "signal" }, -[ 49] = { 0, PU|NF, SEN(geteuid), "geteuid" }, -[ 50] = { 0, PU|NF, SEN(getegid), "getegid" }, +[ 49] = { 0, TC|PU|NF, SEN(geteuid), "geteuid" }, +[ 50] = { 0, TC|PU|NF, SEN(getegid), "getegid" }, [ 51] = { 1, TF, SEN(acct), "acct" }, [ 52] = { 2, TF, SEN(umount2), "umount2" }, [ 53] = { 0, 0, SEN(lock), "lock" }, @@ -77,18 +77,18 @@ [ 67] = { 3, TS, SEN(sigaction), "sigaction" }, [ 68] = { 0, TS, SEN(sgetmask), "sgetmask" }, [ 69] = { 1, TS, SEN(ssetmask), "ssetmask" }, -[ 70] = { 2, 0, SEN(setreuid), "setreuid" }, -[ 71] = { 2, 0, SEN(setregid), "setregid" }, +[ 70] = { 2, TC, SEN(setreuid), "setreuid" }, +[ 71] = { 2, TC, SEN(setregid), "setregid" }, [ 72] = { 1, TS, SEN(sigsuspend), "sigsuspend" }, [ 73] = { 1, TS, SEN(sigpending), "sigpending" }, [ 74] = { 2, 0, SEN(sethostname), "sethostname" }, [ 75] = { 2, 0, SEN(setrlimit), "setrlimit" }, [ 76] = { 2, 0, SEN(getrlimit), "getrlimit" }, [ 77] = { 2, 0, SEN(getrusage), "getrusage" }, -[ 78] = { 2, 0, SEN(gettimeofday), "gettimeofday" }, -[ 79] = { 2, 0, SEN(settimeofday), "settimeofday" }, -[ 80] = { 2, 0, SEN(getgroups), "getgroups" }, -[ 81] = { 2, 0, SEN(setgroups), "setgroups" }, +[ 78] = { 2, TCL, SEN(gettimeofday), "gettimeofday" }, +[ 79] = { 2, TCL, SEN(settimeofday), "settimeofday" }, +[ 80] = { 2, TC, SEN(getgroups), "getgroups" }, +[ 81] = { 2, TC, SEN(setgroups), "setgroups" }, [ 82] = { 1, TD, SEN(oldselect), "select" }, [ 83] = { 2, TF, SEN(symlink), "symlink" }, [ 84] = { 2, TF|TLST|TSTA, SEN(oldlstat), "oldlstat" }, @@ -109,7 +109,7 @@ [ 99] = { 2, TF|TSF|TSFA, SEN(statfs), "statfs" }, [100] = { 2, TD|TFSF|TSFA, SEN(fstatfs), "fstatfs" }, [101] = { 3, 0, SEN(ioperm), "ioperm" }, -[102] = { 2, TD, SEN(socketcall), "socketcall" }, +[102] = { 2, TD|TSD, SEN(socketcall), "socketcall" }, [103] = { 3, 0, SEN(syslog), "syslog" }, [104] = { 3, 0, SEN(setitimer), "setitimer" }, [105] = { 2, 0, SEN(getitimer), "getitimer" }, @@ -124,14 +124,14 @@ [114] = { 4, TP, SEN(wait4), "wait4" }, [115] = { 1, TF, SEN(swapoff), "swapoff" }, [116] = { 1, 0, SEN(sysinfo), "sysinfo" }, -[117] = { 6, TI, SEN(ipc), "ipc" }, +[117] = { 6, TI|TSD, SEN(ipc), "ipc" }, [118] = { 1, TD, SEN(fsync), "fsync" }, [119] = { 0, TS, SEN(sigreturn), "sigreturn" }, [120] = { 5, TP, SEN(clone), "clone" }, [121] = { 2, 0, SEN(setdomainname), "setdomainname" }, [122] = { 1, 0, SEN(uname), "uname" }, [123] = { 5, 0, SEN(printargs), "modify_ldt" }, -[124] = { 1, 0, SEN(adjtimex32), "adjtimex" }, +[124] = { 1, TCL, SEN(adjtimex32), "adjtimex" }, [125] = { 3, TM|SI, SEN(mprotect), "mprotect" }, [126] = { 3, TS, SEN(sigprocmask), "sigprocmask" }, [127] = { 2, 0, SEN(create_module), "create_module" }, @@ -145,8 +145,8 @@ [135] = { 3, 0, SEN(sysfs), "sysfs" }, [136] = { 1, NF, SEN(personality), "personality" }, [137] = { 5, 0, SEN(afs_syscall), "afs_syscall" }, -[138] = { 1, NF, SEN(setfsuid), "setfsuid" }, -[139] = { 1, NF, SEN(setfsgid), "setfsgid" }, +[138] = { 1, TC|NF, SEN(setfsuid), "setfsuid" }, +[139] = { 1, TC|NF, SEN(setfsgid), "setfsgid" }, [140] = { 5, TD, SEN(llseek), "_llseek" }, [141] = { 3, TD, SEN(getdents), "getdents" }, [142] = { 5, TD, SEN(select), "_newselect" }, @@ -171,27 +171,27 @@ [161] = { 2, 0, SEN(sched_rr_get_interval_time32),"sched_rr_get_interval"}, [162] = { 2, 0, SEN(nanosleep_time32), "nanosleep" }, [163] = { 5, TM|SI, SEN(mremap), "mremap" }, -[164] = { 3, 0, SEN(setresuid), "setresuid" }, -[165] = { 3, 0, SEN(getresuid), "getresuid" }, +[164] = { 3, TC, SEN(setresuid), "setresuid" }, +[165] = { 3, TC, SEN(getresuid), "getresuid" }, [166] = { 5, 0, SEN(query_module), "query_module" }, [167] = { 3, TD, SEN(poll_time32), "poll" }, [168] = { 3, 0, SEN(nfsservctl), "nfsservctl" }, -[169] = { 3, 0, SEN(setresgid), "setresgid" }, -[170] = { 3, 0, SEN(getresgid), "getresgid" }, -[171] = { 5, 0, SEN(prctl), "prctl" }, +[169] = { 3, TC, SEN(setresgid), "setresgid" }, +[170] = { 3, TC, SEN(getresgid), "getresgid" }, +[171] = { 5, TC, SEN(prctl), "prctl" }, [172] = { 0, TS, SEN(rt_sigreturn), "rt_sigreturn" }, [173] = { 4, TS, SEN(rt_sigaction), "rt_sigaction" }, [174] = { 4, TS, SEN(rt_sigprocmask), "rt_sigprocmask" }, [175] = { 2, TS, SEN(rt_sigpending), "rt_sigpending" }, [176] = { 4, TS, SEN(rt_sigtimedwait_time32), "rt_sigtimedwait" }, -[177] = { 3, TS, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, +[177] = { 3, TS|TP, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, [178] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" }, [179] = { 6, TD, SEN(pread), "pread64" }, [180] = { 6, TD, SEN(pwrite), "pwrite64" }, [181] = { 3, TF, SEN(chown), "chown" }, [182] = { 2, TF, SEN(getcwd), "getcwd" }, -[183] = { 2, 0, SEN(capget), "capget" }, -[184] = { 2, 0, SEN(capset), "capset" }, +[183] = { 2, TC, SEN(capget), "capget" }, +[184] = { 2, TC, SEN(capset), "capset" }, [185] = { 2, TS, SEN(sigaltstack), "sigaltstack" }, [186] = { 4, TD|TN, SEN(sendfile), "sendfile" }, [187] = { 5, TN, SEN(getpmsg), "getpmsg" }, @@ -215,7 +215,7 @@ [205] = { 3, TM, SEN(madvise), "madvise" }, [206] = { 3, TM, SEN(mincore), "mincore" }, [207] = { 0, PU|NF, SEN(gettid), "gettid" }, -[208] = { 2, TS, SEN(kill), "tkill" }, +[208] = { 2, TS|TP, SEN(tkill), "tkill" }, [209] = { 5, TF, SEN(setxattr), "setxattr" }, [210] = { 5, TF, SEN(setxattr), "lsetxattr" }, [211] = { 5, TD, SEN(fsetxattr), "fsetxattr" }, @@ -252,12 +252,12 @@ [242] = { 2, 0, SEN(timer_gettime32), "timer_gettime" }, [243] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" }, [244] = { 1, 0, SEN(timer_delete), "timer_delete" }, -[245] = { 2, 0, SEN(clock_settime32), "clock_settime" }, -[246] = { 2, 0, SEN(clock_gettime32), "clock_gettime" }, -[247] = { 2, 0, SEN(clock_getres_time32), "clock_getres" }, +[245] = { 2, TCL, SEN(clock_settime32), "clock_settime" }, +[246] = { 2, TCL, SEN(clock_gettime32), "clock_gettime" }, +[247] = { 2, TCL, SEN(clock_getres_time32), "clock_getres" }, [248] = { 4, 0, SEN(clock_nanosleep_time32), "clock_nanosleep" }, [249] = { 2, 0, SEN(printargs), "swapcontext" }, -[250] = { 3, TS, SEN(tgkill), "tgkill" }, +[250] = { 3, TS|TP, SEN(tgkill), "tgkill" }, [251] = { 2, TF, SEN(utimes), "utimes" }, [252] = { 3, TF|TSF|TSFA, SEN(statfs64), "statfs64" }, [253] = { 3, TD|TFSF|TSFA, SEN(fstatfs64), "fstatfs64" }, @@ -289,7 +289,7 @@ [279] = { 4, 0, SEN(printargs), "spu_create" }, [280] = { 6, TD, SEN(pselect6_time32), "pselect6" }, [281] = { 5, TD, SEN(ppoll_time32), "ppoll" }, -[282] = { 1, TP, SEN(unshare), "unshare" }, +[282] = { 1, 0, SEN(unshare), "unshare" }, [283] = { 6, TD, SEN(splice), "splice" }, [284] = { 4, TD, SEN(tee), "tee" }, [285] = { 4, TD, SEN(vmsplice), "vmsplice" }, @@ -354,7 +354,7 @@ [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_adjtime32), "clock_adjtime" }, +[347] = { 2, TCL, SEN(clock_adjtime32), "clock_adjtime" }, [348] = { 1, TD, SEN(syncfs), "syncfs" }, [349] = { 4, TN, SEN(sendmmsg), "sendmmsg" }, [350] = { 2, TD, SEN(setns), "setns" }, @@ -369,7 +369,7 @@ [359] = { 3, 0, SEN(getrandom), "getrandom" }, [360] = { 2, TD, SEN(memfd_create), "memfd_create" }, [361] = { 3, TD, SEN(bpf), "bpf" }, -[362] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat" }, +[362] = { 5, TD|TF|TP|TSD|SE|SI, SEN(execveat), "execveat" }, [363] = { 0, 0, SEN(printargs), "switch_endian" }, [364] = { 1, TD, SEN(userfaultfd), "userfaultfd" }, [365] = { 2, 0, SEN(membarrier), "membarrier" }, @@ -379,7 +379,7 @@ [380] = { 6, TD, SEN(preadv2), "preadv2" }, [381] = { 6, TD, SEN(pwritev2), "pwritev2" }, [382] = { 5, TD, SEN(kexec_file_load), "kexec_file_load" }, -[383] = { 5, TD|TF|TSTA, SEN(statx), "statx" }, +[383] = { 5, TD|TF|TFST|TSTA,SEN(statx), "statx" }, [384] = { 2, 0, SEN(pkey_alloc), "pkey_alloc" }, [385] = { 1, 0, SEN(pkey_free), "pkey_free" }, [386] = { 4, TM|SI, SEN(pkey_mprotect), "pkey_mprotect" }, @@ -396,30 +396,8 @@ [400] = { 4, TI, SEN(msgsnd), "msgsnd" }, [401] = { 5, TI, SEN(msgrcv), "msgrcv" }, [402] = { 3, TI, SEN(msgctl), "msgctl" }, -[403] = { 2, 0, SEN(clock_gettime64), "clock_gettime64" }, -[404] = { 2, 0, SEN(clock_settime64), "clock_settime64" }, -[405] = { 2, 0, SEN(clock_adjtime64), "clock_adjtime64" }, -[406] = { 2, 0, SEN(clock_getres_time64), "clock_getres_time64" }, -[407] = { 4, 0, SEN(clock_nanosleep_time64), "clock_nanosleep_time64"}, -[408] = { 2, 0, SEN(timer_gettime64), "timer_gettime64" }, -[409] = { 4, 0, SEN(timer_settime64), "timer_settime64" }, -[410] = { 2, TD, SEN(timerfd_gettime64), "timerfd_gettime64" }, -[411] = { 4, TD, SEN(timerfd_settime64), "timerfd_settime64" }, -[412] = { 4, TD|TF, SEN(utimensat_time64), "utimensat_time64" }, -[413] = { 6, TD, SEN(pselect6_time64), "pselect6_time64" }, -[414] = { 5, TD, SEN(ppoll_time64), "ppoll_time64" }, -[416] = { 6, 0, SEN(io_pgetevents_time64), "io_pgetevents_time64" }, -[417] = { 5, TN, SEN(recvmmsg_time64), "recvmmsg_time64" }, -[418] = { 5, TD, SEN(mq_timedsend_time64), "mq_timedsend_time64" }, -[419] = { 5, TD, SEN(mq_timedreceive_time64), "mq_timedreceive_time64"}, -[420] = { 4, TI, SEN(semtimedop_time64), "semtimedop_time64" }, -[421] = { 4, TS, SEN(rt_sigtimedwait_time64), "rt_sigtimedwait_time64"}, -[422] = { 6, 0, SEN(futex_time64), "futex_time64" }, -[423] = { 2, 0, SEN(sched_rr_get_interval_time64), "sched_rr_get_interval_time64" }, -[424] = { 4, TD|TS, SEN(pidfd_send_signal), "pidfd_send_signal" }, -[425] = { 2, TD, SEN(io_uring_setup), "io_uring_setup" }, -[426] = { 6, TD|TS, SEN(io_uring_enter), "io_uring_enter" }, -[427] = { 4, TD|TM, SEN(io_uring_register), "io_uring_register" }, +#include "syscallent-common-32.h" +#include "syscallent-common.h" #define SYS_socket_subcall 500 #include "subcall32.h" diff --git a/linux/powerpc64/arch_defs_.h b/linux/powerpc64/arch_defs_.h index 871f4109..a4ac007e 100644 --- a/linux/powerpc64/arch_defs_.h +++ b/linux/powerpc64/arch_defs_.h @@ -8,3 +8,5 @@ #define HAVE_ARCH_OLD_SELECT 1 #define SUPPORTED_PERSONALITIES 2 #define HAVE_ARCH_DEDICATED_ERR_REG 1 +#define PERSONALITY0_AUDIT_ARCH { AUDIT_ARCH_PPC64, 0 } +#define PERSONALITY1_AUDIT_ARCH { AUDIT_ARCH_PPC, 0 } diff --git a/linux/powerpc64/arch_get_personality.c b/linux/powerpc64/arch_get_personality.c index 9817d44a..1bc238a2 100644 --- a/linux/powerpc64/arch_get_personality.c +++ b/linux/powerpc64/arch_get_personality.c @@ -1,16 +1,13 @@ /* * Copyright (c) 2018 Dmitry V. Levin + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ -#ifndef AUDIT_ARCH_PPC -# define AUDIT_ARCH_PPC 0x14 -#endif - int -get_personality_from_syscall_info(const struct ptrace_syscall_info *sci) +get_personality_from_syscall_info(const struct_ptrace_syscall_info *sci) { return sci->arch == AUDIT_ARCH_PPC; } diff --git a/linux/powerpc64/syscallent.h b/linux/powerpc64/syscallent.h index 47a59990..9c306d28 100644 --- a/linux/powerpc64/syscallent.h +++ b/linux/powerpc64/syscallent.h @@ -1,7 +1,7 @@ /* * Copyright (c) 1993 Branko Lankester * Copyright (c) 1993, 1994, 1995 Rick Sladkey - * Copyright (c) 1995-2019 The strace developers. + * Copyright (c) 1995-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -18,9 +18,9 @@ [ 8] = { 2, TD|TF, SEN(creat), "creat" }, [ 9] = { 2, TF, SEN(link), "link" }, [ 10] = { 1, TF, SEN(unlink), "unlink" }, -[ 11] = { 3, TF|TP|SE|SI, SEN(execve), "execve" }, +[ 11] = { 3, TF|TP|TSD|SE|SI, SEN(execve), "execve" }, [ 12] = { 1, TF, SEN(chdir), "chdir" }, -[ 13] = { 1, 0, SEN(time), "time" }, +[ 13] = { 1, TCL, SEN(time), "time" }, [ 14] = { 3, TF, SEN(mknod), "mknod" }, [ 15] = { 2, TF, SEN(chmod), "chmod" }, [ 16] = { 3, TF, SEN(chown), "lchown" }, @@ -30,8 +30,8 @@ [ 20] = { 0, PU|NF, SEN(getpid), "getpid" }, [ 21] = { 5, TF, SEN(mount), "mount" }, [ 22] = { 1, TF, SEN(umount), "umount" }, -[ 23] = { 1, 0, SEN(setuid), "setuid" }, -[ 24] = { 0, PU|NF, SEN(getuid), "getuid" }, +[ 23] = { 1, TC, SEN(setuid), "setuid" }, +[ 24] = { 0, TC|PU|NF, SEN(getuid), "getuid" }, [ 25] = { 1, 0, SEN(stime), "stime" }, [ 26] = { 4, 0, SEN(ptrace), "ptrace" }, [ 27] = { 1, 0, SEN(alarm), "alarm" }, @@ -44,7 +44,7 @@ [ 34] = { 1, 0, SEN(nice), "nice" }, [ 35] = { 0, 0, SEN(ftime), "ftime" }, [ 36] = { 0, 0, SEN(sync), "sync" }, -[ 37] = { 2, TS, SEN(kill), "kill" }, +[ 37] = { 2, TS|TP, SEN(kill), "kill" }, [ 38] = { 2, TF, SEN(rename), "rename" }, [ 39] = { 2, TF, SEN(mkdir), "mkdir" }, [ 40] = { 1, TF, SEN(rmdir), "rmdir" }, @@ -53,11 +53,11 @@ [ 43] = { 1, 0, SEN(times), "times" }, [ 44] = { 0, 0, SEN(prof), "prof" }, [ 45] = { 1, TM|SI, SEN(brk), "brk" }, -[ 46] = { 1, 0, SEN(setgid), "setgid" }, -[ 47] = { 0, PU|NF, SEN(getgid), "getgid" }, +[ 46] = { 1, TC, SEN(setgid), "setgid" }, +[ 47] = { 0, TC|PU|NF, SEN(getgid), "getgid" }, [ 48] = { 2, TS, SEN(signal), "signal" }, -[ 49] = { 0, PU|NF, SEN(geteuid), "geteuid" }, -[ 50] = { 0, PU|NF, SEN(getegid), "getegid" }, +[ 49] = { 0, TC|PU|NF, SEN(geteuid), "geteuid" }, +[ 50] = { 0, TC|PU|NF, SEN(getegid), "getegid" }, [ 51] = { 1, TF, SEN(acct), "acct" }, [ 52] = { 2, TF, SEN(umount2), "umount2" }, [ 53] = { 0, 0, SEN(lock), "lock" }, @@ -77,18 +77,18 @@ [ 67] = { 3, TS, SEN(sigaction), "sigaction" }, [ 68] = { 0, TS, SEN(sgetmask), "sgetmask" }, [ 69] = { 1, TS, SEN(ssetmask), "ssetmask" }, -[ 70] = { 2, 0, SEN(setreuid), "setreuid" }, -[ 71] = { 2, 0, SEN(setregid), "setregid" }, +[ 70] = { 2, TC, SEN(setreuid), "setreuid" }, +[ 71] = { 2, TC, SEN(setregid), "setregid" }, [ 72] = { 1, TS, SEN(sigsuspend), "sigsuspend" }, [ 73] = { 1, TS, SEN(sigpending), "sigpending" }, [ 74] = { 2, 0, SEN(sethostname), "sethostname" }, [ 75] = { 2, 0, SEN(setrlimit), "setrlimit" }, [ 76] = { 2, 0, SEN(getrlimit), "getrlimit" }, [ 77] = { 2, 0, SEN(getrusage), "getrusage" }, -[ 78] = { 2, 0, SEN(gettimeofday), "gettimeofday" }, -[ 79] = { 2, 0, SEN(settimeofday), "settimeofday" }, -[ 80] = { 2, 0, SEN(getgroups), "getgroups" }, -[ 81] = { 2, 0, SEN(setgroups), "setgroups" }, +[ 78] = { 2, TCL, SEN(gettimeofday), "gettimeofday" }, +[ 79] = { 2, TCL, SEN(settimeofday), "settimeofday" }, +[ 80] = { 2, TC, SEN(getgroups), "getgroups" }, +[ 81] = { 2, TC, SEN(setgroups), "setgroups" }, [ 82] = { 1, TD, SEN(oldselect), "select" }, [ 83] = { 2, TF, SEN(symlink), "symlink" }, [ 84] = { 2, TF|TLST|TSTA, SEN(oldlstat), "oldlstat" }, @@ -109,7 +109,7 @@ [ 99] = { 2, TF|TSF|TSFA, SEN(statfs), "statfs" }, [100] = { 2, TD|TFSF|TSFA, SEN(fstatfs), "fstatfs" }, [101] = { 3, 0, SEN(ioperm), "ioperm" }, -[102] = { 2, TD, SEN(socketcall), "socketcall" }, +[102] = { 2, TD|TSD, SEN(socketcall), "socketcall" }, [103] = { 3, 0, SEN(syslog), "syslog" }, [104] = { 3, 0, SEN(setitimer), "setitimer" }, [105] = { 2, 0, SEN(getitimer), "getitimer" }, @@ -124,14 +124,14 @@ [114] = { 4, TP, SEN(wait4), "wait4" }, [115] = { 1, TF, SEN(swapoff), "swapoff" }, [116] = { 1, 0, SEN(sysinfo), "sysinfo" }, -[117] = { 6, TI, SEN(ipc), "ipc" }, +[117] = { 6, TI|TSD, SEN(ipc), "ipc" }, [118] = { 1, TD, SEN(fsync), "fsync" }, [119] = { 0, TS, SEN(sigreturn), "sigreturn" }, [120] = { 5, TP, SEN(clone), "clone" }, [121] = { 2, 0, SEN(setdomainname), "setdomainname" }, [122] = { 1, 0, SEN(uname), "uname" }, [123] = { 5, 0, SEN(printargs), "modify_ldt" }, -[124] = { 1, 0, SEN(adjtimex64), "adjtimex" }, +[124] = { 1, TCL, SEN(adjtimex64), "adjtimex" }, [125] = { 3, TM|SI, SEN(mprotect), "mprotect" }, [126] = { 3, TS, SEN(sigprocmask), "sigprocmask" }, [127] = { 2, 0, SEN(create_module), "create_module" }, @@ -145,8 +145,8 @@ [135] = { 3, 0, SEN(sysfs), "sysfs" }, [136] = { 1, NF, SEN(personality), "personality" }, [137] = { 5, 0, SEN(afs_syscall), "afs_syscall" }, -[138] = { 1, NF, SEN(setfsuid), "setfsuid" }, -[139] = { 1, NF, SEN(setfsgid), "setfsgid" }, +[138] = { 1, TC|NF, SEN(setfsuid), "setfsuid" }, +[139] = { 1, TC|NF, SEN(setfsgid), "setfsgid" }, [140] = { 5, TD, SEN(llseek), "_llseek" }, [141] = { 3, TD, SEN(getdents), "getdents" }, [142] = { 5, TD, SEN(select), "_newselect" }, @@ -171,27 +171,27 @@ [161] = { 2, 0, SEN(sched_rr_get_interval_time64),"sched_rr_get_interval"}, [162] = { 2, 0, SEN(nanosleep_time64), "nanosleep" }, [163] = { 5, TM|SI, SEN(mremap), "mremap" }, -[164] = { 3, 0, SEN(setresuid), "setresuid" }, -[165] = { 3, 0, SEN(getresuid), "getresuid" }, +[164] = { 3, TC, SEN(setresuid), "setresuid" }, +[165] = { 3, TC, SEN(getresuid), "getresuid" }, [166] = { 5, 0, SEN(query_module), "query_module" }, [167] = { 3, TD, SEN(poll_time64), "poll" }, [168] = { 3, 0, SEN(nfsservctl), "nfsservctl" }, -[169] = { 3, 0, SEN(setresgid), "setresgid" }, -[170] = { 3, 0, SEN(getresgid), "getresgid" }, -[171] = { 5, 0, SEN(prctl), "prctl" }, +[169] = { 3, TC, SEN(setresgid), "setresgid" }, +[170] = { 3, TC, SEN(getresgid), "getresgid" }, +[171] = { 5, TC, SEN(prctl), "prctl" }, [172] = { 0, TS, SEN(rt_sigreturn), "rt_sigreturn" }, [173] = { 4, TS, SEN(rt_sigaction), "rt_sigaction" }, [174] = { 4, TS, SEN(rt_sigprocmask), "rt_sigprocmask" }, [175] = { 2, TS, SEN(rt_sigpending), "rt_sigpending" }, [176] = { 4, TS, SEN(rt_sigtimedwait_time64), "rt_sigtimedwait" }, -[177] = { 3, TS, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, +[177] = { 3, TS|TP, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, [178] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" }, [179] = { 4, TD, SEN(pread), "pread64" }, [180] = { 4, TD, SEN(pwrite), "pwrite64" }, [181] = { 3, TF, SEN(chown), "chown" }, [182] = { 2, TF, SEN(getcwd), "getcwd" }, -[183] = { 2, 0, SEN(capget), "capget" }, -[184] = { 2, 0, SEN(capset), "capset" }, +[183] = { 2, TC, SEN(capget), "capget" }, +[184] = { 2, TC, SEN(capset), "capset" }, [185] = { 2, TS, SEN(sigaltstack), "sigaltstack" }, [186] = { 4, TD|TN, SEN(sendfile), "sendfile" }, [187] = { 5, TN, SEN(getpmsg), "getpmsg" }, @@ -210,7 +210,7 @@ [205] = { 3, TM, SEN(madvise), "madvise" }, [206] = { 3, TM, SEN(mincore), "mincore" }, [207] = { 0, PU|NF, SEN(gettid), "gettid" }, -[208] = { 2, TS, SEN(kill), "tkill" }, +[208] = { 2, TS|TP, SEN(tkill), "tkill" }, [209] = { 5, TF, SEN(setxattr), "setxattr" }, [210] = { 5, TF, SEN(setxattr), "lsetxattr" }, [211] = { 5, TD, SEN(fsetxattr), "fsetxattr" }, @@ -247,12 +247,12 @@ [242] = { 2, 0, SEN(timer_gettime64), "timer_gettime" }, [243] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" }, [244] = { 1, 0, SEN(timer_delete), "timer_delete" }, -[245] = { 2, 0, SEN(clock_settime64), "clock_settime" }, -[246] = { 2, 0, SEN(clock_gettime64), "clock_gettime" }, -[247] = { 2, 0, SEN(clock_getres_time64), "clock_getres" }, +[245] = { 2, TCL, SEN(clock_settime64), "clock_settime" }, +[246] = { 2, TCL, SEN(clock_gettime64), "clock_gettime" }, +[247] = { 2, TCL, SEN(clock_getres_time64), "clock_getres" }, [248] = { 4, 0, SEN(clock_nanosleep_time64), "clock_nanosleep" }, [249] = { 2, 0, SEN(printargs), "swapcontext" }, -[250] = { 3, TS, SEN(tgkill), "tgkill" }, +[250] = { 3, TS|TP, SEN(tgkill), "tgkill" }, [251] = { 2, TF, SEN(utimes), "utimes" }, [252] = { 3, TF|TSF|TSFA, SEN(statfs64), "statfs64" }, [253] = { 3, TD|TFSF|TSFA, SEN(fstatfs64), "fstatfs64" }, @@ -284,7 +284,7 @@ [279] = { 4, 0, SEN(printargs), "spu_create" }, [280] = { 6, TD, SEN(pselect6_time64), "pselect6" }, [281] = { 5, TD, SEN(ppoll_time64), "ppoll" }, -[282] = { 1, TP, SEN(unshare), "unshare" }, +[282] = { 1, 0, SEN(unshare), "unshare" }, [283] = { 6, TD, SEN(splice), "splice" }, [284] = { 4, TD, SEN(tee), "tee" }, [285] = { 4, TD, SEN(vmsplice), "vmsplice" }, @@ -349,7 +349,7 @@ [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_adjtime64), "clock_adjtime" }, +[347] = { 2, TCL, SEN(clock_adjtime64), "clock_adjtime" }, [348] = { 1, TD, SEN(syncfs), "syncfs" }, [349] = { 4, TN, SEN(sendmmsg), "sendmmsg" }, [350] = { 2, TD, SEN(setns), "setns" }, @@ -364,7 +364,7 @@ [359] = { 3, 0, SEN(getrandom), "getrandom" }, [360] = { 2, TD, SEN(memfd_create), "memfd_create" }, [361] = { 3, TD, SEN(bpf), "bpf" }, -[362] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat" }, +[362] = { 5, TD|TF|TP|TSD|SE|SI, SEN(execveat), "execveat" }, [363] = { 0, 0, SEN(printargs), "switch_endian" }, [364] = { 1, TD, SEN(userfaultfd), "userfaultfd" }, [365] = { 2, 0, SEN(membarrier), "membarrier" }, @@ -374,7 +374,7 @@ [380] = { 6, TD, SEN(preadv2), "preadv2" }, [381] = { 6, TD, SEN(pwritev2), "pwritev2" }, [382] = { 5, TD, SEN(kexec_file_load), "kexec_file_load" }, -[383] = { 5, TD|TF|TSTA, SEN(statx), "statx" }, +[383] = { 5, TD|TF|TFST|TSTA,SEN(statx), "statx" }, [384] = { 2, 0, SEN(pkey_alloc), "pkey_alloc" }, [385] = { 1, 0, SEN(pkey_free), "pkey_free" }, [386] = { 4, TM|SI, SEN(pkey_mprotect), "pkey_mprotect" }, @@ -393,10 +393,7 @@ [401] = { 5, TI, SEN(msgrcv), "msgrcv" }, [402] = { 3, TI, SEN(msgctl), "msgctl" }, /* [403 ... 423] - reserved to sync up with other architectures */ -[424] = { 4, TD|TS, SEN(pidfd_send_signal), "pidfd_send_signal" }, -[425] = { 2, TD, SEN(io_uring_setup), "io_uring_setup" }, -[426] = { 6, TD|TS, SEN(io_uring_enter), "io_uring_enter" }, -[427] = { 4, TD|TM, SEN(io_uring_register), "io_uring_register" }, +#include "syscallent-common.h" #define SYS_socket_subcall 500 #include "subcall64.h" diff --git a/linux/powerpc64le/arch_defs_.h b/linux/powerpc64le/arch_defs_.h new file mode 100644 index 00000000..494672a0 --- /dev/null +++ b/linux/powerpc64le/arch_defs_.h @@ -0,0 +1,9 @@ +/* + * Copyright (c) 2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#define HAVE_ARCH_OLD_SELECT 1 +#define HAVE_ARCH_DEDICATED_ERR_REG 1 diff --git a/linux/powerpc64le/arch_regs.c b/linux/powerpc64le/arch_regs.c new file mode 100644 index 00000000..8c4a45d6 --- /dev/null +++ b/linux/powerpc64le/arch_regs.c @@ -0,0 +1 @@ +#include "../powerpc/arch_regs.c" diff --git a/linux/powerpc64le/arch_rt_sigframe.c b/linux/powerpc64le/arch_rt_sigframe.c new file mode 100644 index 00000000..ae5a5368 --- /dev/null +++ b/linux/powerpc64le/arch_rt_sigframe.c @@ -0,0 +1,13 @@ +/* + * Copyright (c) 2017-2018 Dmitry V. Levin + * Copyright (c) 2018-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +FUNC_GET_RT_SIGFRAME_ADDR +{ + kernel_ulong_t sp; + return get_stack_pointer(tcp, &sp) ? sp : 0; +} diff --git a/linux/powerpc64le/errnoent.h b/linux/powerpc64le/errnoent.h new file mode 100644 index 00000000..945ce853 --- /dev/null +++ b/linux/powerpc64le/errnoent.h @@ -0,0 +1 @@ +#include "../powerpc64/errnoent.h" diff --git a/linux/powerpc64le/get_error.c b/linux/powerpc64le/get_error.c new file mode 100644 index 00000000..c7fc341d --- /dev/null +++ b/linux/powerpc64le/get_error.c @@ -0,0 +1 @@ +#include "../powerpc64/get_error.c" diff --git a/linux/powerpc64le/get_scno.c b/linux/powerpc64le/get_scno.c new file mode 100644 index 00000000..9a0c9e4a --- /dev/null +++ b/linux/powerpc64le/get_scno.c @@ -0,0 +1,14 @@ +/* + * Copyright (c) 2015-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +/* Return codes: 1 - ok, 0 - ignore, other - error. */ +static int +arch_get_scno(struct tcb *tcp) +{ + tcp->scno = ppc_regs.gpr[0]; + return 1; +} diff --git a/linux/powerpc64le/get_syscall_args.c b/linux/powerpc64le/get_syscall_args.c new file mode 100644 index 00000000..281eb606 --- /dev/null +++ b/linux/powerpc64le/get_syscall_args.c @@ -0,0 +1 @@ +#include "../powerpc64/get_syscall_args.c" diff --git a/linux/powerpc64le/ioctls_arch0.h b/linux/powerpc64le/ioctls_arch0.h new file mode 100644 index 00000000..14d0c0b1 --- /dev/null +++ b/linux/powerpc64le/ioctls_arch0.h @@ -0,0 +1 @@ +#include "../powerpc64/ioctls_arch0.h" diff --git a/linux/powerpc64le/ioctls_inc0.h b/linux/powerpc64le/ioctls_inc0.h new file mode 100644 index 00000000..a89fa3c0 --- /dev/null +++ b/linux/powerpc64le/ioctls_inc0.h @@ -0,0 +1 @@ +#include "../powerpc64/ioctls_inc0.h" diff --git a/linux/powerpc64le/raw_syscall.h b/linux/powerpc64le/raw_syscall.h new file mode 100644 index 00000000..f1800fc5 --- /dev/null +++ b/linux/powerpc64le/raw_syscall.h @@ -0,0 +1 @@ +#include "../powerpc64/raw_syscall.h" diff --git a/linux/powerpc64le/rt_sigframe.h b/linux/powerpc64le/rt_sigframe.h new file mode 100644 index 00000000..cd8902f4 --- /dev/null +++ b/linux/powerpc64le/rt_sigframe.h @@ -0,0 +1 @@ +#include "../powerpc64/rt_sigframe.h" diff --git a/linux/powerpc64le/set_error.c b/linux/powerpc64le/set_error.c new file mode 100644 index 00000000..207ffe9a --- /dev/null +++ b/linux/powerpc64le/set_error.c @@ -0,0 +1 @@ +#include "../powerpc64/set_error.c" diff --git a/linux/powerpc64le/set_scno.c b/linux/powerpc64le/set_scno.c new file mode 100644 index 00000000..d3f6479a --- /dev/null +++ b/linux/powerpc64le/set_scno.c @@ -0,0 +1 @@ +#include "../powerpc64/set_scno.c" diff --git a/linux/powerpc64le/syscallent.h b/linux/powerpc64le/syscallent.h new file mode 100644 index 00000000..785a81b0 --- /dev/null +++ b/linux/powerpc64le/syscallent.h @@ -0,0 +1 @@ +#include "../powerpc64/syscallent.h" diff --git a/linux/powerpc64le/userent.h b/linux/powerpc64le/userent.h new file mode 100644 index 00000000..1f711811 --- /dev/null +++ b/linux/powerpc64le/userent.h @@ -0,0 +1 @@ +#include "../powerpc64/userent.h" diff --git a/linux/riscv/arch_defs_.h b/linux/riscv/arch_defs_.h deleted file mode 100644 index a9c27bc7..00000000 --- a/linux/riscv/arch_defs_.h +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright (c) 2018 The strace developers. - * All rights reserved. - * - * SPDX-License-Identifier: LGPL-2.1-or-later - */ - -#define HAVE_ARCH_UID16_SYSCALLS 1 -#define SUPPORTED_PERSONALITIES 2 -#define CAN_ARCH_BE_COMPAT_ON_64BIT_KERNEL 1 diff --git a/linux/riscv/arch_get_personality.c b/linux/riscv/arch_get_personality.c deleted file mode 100644 index 78cf4329..00000000 --- a/linux/riscv/arch_get_personality.c +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (c) 2018 Dmitry V. Levin - * All rights reserved. - * - * SPDX-License-Identifier: LGPL-2.1-or-later - */ - -#ifndef AUDIT_ARCH_RISCV32 -# define AUDIT_ARCH_RISCV32 0x400000f3 -#endif - -int -get_personality_from_syscall_info(const struct ptrace_syscall_info *sci) -{ - return sci->arch == AUDIT_ARCH_RISCV32; -} diff --git a/linux/riscv/arch_regs.c b/linux/riscv/arch_regs.c deleted file mode 100644 index cbf5a67e..00000000 --- a/linux/riscv/arch_regs.c +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Copyright (c) 2016-2018 The strace developers. - * All rights reserved. - * - * SPDX-License-Identifier: LGPL-2.1-or-later - */ - -static struct user_regs_struct riscv_regs; -#define ARCH_REGS_FOR_GETREGSET riscv_regs -#define ARCH_PC_REG riscv_regs.pc -#define ARCH_SP_REG riscv_regs.sp diff --git a/linux/riscv/get_error.c b/linux/riscv/get_error.c deleted file mode 100644 index d4066534..00000000 --- a/linux/riscv/get_error.c +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright (c) 2016-2018 The strace developers. - * All rights reserved. - * - * SPDX-License-Identifier: LGPL-2.1-or-later - */ - -#include "negated_errno.h" - -static void -arch_get_error(struct tcb *tcp, const bool check_errno) -{ - if (check_errno && is_negated_errno(riscv_regs.a0)) { - tcp->u_rval = -1; - tcp->u_error = -riscv_regs.a0; - } else { - tcp->u_rval = riscv_regs.a0; - } -} diff --git a/linux/riscv/get_scno.c b/linux/riscv/get_scno.c deleted file mode 100644 index 6b4256e7..00000000 --- a/linux/riscv/get_scno.c +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright (c) 2015-2018 The strace developers. - * All rights reserved. - * - * SPDX-License-Identifier: LGPL-2.1-or-later - */ - -/* Return codes: 1 - ok, 0 - ignore, other - error. */ -static int -arch_get_scno(struct tcb *tcp) -{ - tcp->scno = riscv_regs.a7; - return 1; -} diff --git a/linux/riscv/get_syscall_args.c b/linux/riscv/get_syscall_args.c deleted file mode 100644 index 9418b8e4..00000000 --- a/linux/riscv/get_syscall_args.c +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright (c) 2016-2018 The strace developers. - * All rights reserved. - * - * SPDX-License-Identifier: LGPL-2.1-or-later - */ - -/* Return -1 on error or 1 on success (never 0!). */ -static int -arch_get_syscall_args(struct tcb *tcp) -{ - tcp->u_arg[0] = riscv_regs.a0; - tcp->u_arg[1] = riscv_regs.a1; - tcp->u_arg[2] = riscv_regs.a2; - tcp->u_arg[3] = riscv_regs.a3; - tcp->u_arg[4] = riscv_regs.a4; - tcp->u_arg[5] = riscv_regs.a5; - return 1; -} diff --git a/linux/riscv/ioctls_arch0.h b/linux/riscv/ioctls_arch0.h deleted file mode 100644 index 9c039fc8..00000000 --- a/linux/riscv/ioctls_arch0.h +++ /dev/null @@ -1 +0,0 @@ -/* Generated by ioctls_gen.sh from definitions found in $linux/arch/riscv/include/ tree. */ diff --git a/linux/riscv/ioctls_arch1.h b/linux/riscv/ioctls_arch1.h deleted file mode 100644 index 41d00f92..00000000 --- a/linux/riscv/ioctls_arch1.h +++ /dev/null @@ -1 +0,0 @@ -#include "ioctls_arch0.h" diff --git a/linux/riscv/ioctls_inc0.h b/linux/riscv/ioctls_inc0.h deleted file mode 100644 index f9939faa..00000000 --- a/linux/riscv/ioctls_inc0.h +++ /dev/null @@ -1 +0,0 @@ -#include "64/ioctls_inc.h" diff --git a/linux/riscv/ioctls_inc1.h b/linux/riscv/ioctls_inc1.h deleted file mode 100644 index 4aecf983..00000000 --- a/linux/riscv/ioctls_inc1.h +++ /dev/null @@ -1 +0,0 @@ -#include "32/ioctls_inc.h" diff --git a/linux/riscv/raw_syscall.h b/linux/riscv/raw_syscall.h deleted file mode 100644 index e069b11c..00000000 --- a/linux/riscv/raw_syscall.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Raw syscalls. - * - * Copyright (c) 2018 The strace developers. - * All rights reserved. - * - * SPDX-License-Identifier: LGPL-2.1-or-later - */ - -#ifndef STRACE_RAW_SYSCALL_H -# define STRACE_RAW_SYSCALL_H - -# include "kernel_types.h" - -static inline kernel_ulong_t -raw_syscall_0(const kernel_ulong_t nr, kernel_ulong_t *err) -{ - *err = 0; - register kernel_ulong_t a7 __asm__("a7") = nr; - register kernel_ulong_t a0 __asm__("a0"); - __asm__ __volatile__("scall" - : "=r"(a0) - : "r"(a7) - : "memory"); - return a0; -} -# define raw_syscall_0 raw_syscall_0 - -#endif /* !STRACE_RAW_SYSCALL_H */ diff --git a/linux/riscv/set_error.c b/linux/riscv/set_error.c deleted file mode 100644 index b9038c90..00000000 --- a/linux/riscv/set_error.c +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright (c) 2016-2018 The strace developers. - * All rights reserved. - * - * SPDX-License-Identifier: LGPL-2.1-or-later - */ - -static int -arch_set_error(struct tcb *tcp) -{ - riscv_regs.a0 = -tcp->u_error; - return set_regs(tcp->pid); -} - -static int -arch_set_success(struct tcb *tcp) -{ - riscv_regs.a0 = tcp->u_rval; - return set_regs(tcp->pid); -} diff --git a/linux/riscv/set_scno.c b/linux/riscv/set_scno.c deleted file mode 100644 index 2c586ee9..00000000 --- a/linux/riscv/set_scno.c +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright (c) 2016-2018 The strace developers. - * All rights reserved. - * - * SPDX-License-Identifier: LGPL-2.1-or-later - */ - -static int -arch_set_scno(struct tcb *tcp, kernel_ulong_t scno) -{ - riscv_regs.a7 = scno; - return set_regs(tcp->pid); -} diff --git a/linux/riscv/syscallent.h b/linux/riscv/syscallent.h deleted file mode 100644 index b8274586..00000000 --- a/linux/riscv/syscallent.h +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Copyright (c) 2016-2018 The strace developers. - * All rights reserved. - * - * SPDX-License-Identifier: LGPL-2.1-or-later - */ - -#include "64/syscallent.h" - -/* #define __NR_riscv_flush_icache (__NR_arch_specific_syscall + 15) */ -[259] = { 3, TM, SEN(riscv_flush_icache), "riscv_flush_icache" }, diff --git a/linux/riscv/syscallent1.h b/linux/riscv/syscallent1.h deleted file mode 100644 index 22eff673..00000000 --- a/linux/riscv/syscallent1.h +++ /dev/null @@ -1 +0,0 @@ -#include "32/syscallent.h" diff --git a/linux/riscv64/arch_regs.c b/linux/riscv64/arch_regs.c new file mode 100644 index 00000000..5a2bab90 --- /dev/null +++ b/linux/riscv64/arch_regs.c @@ -0,0 +1,11 @@ +/* + * Copyright (c) 2016-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +static struct user_regs_struct riscv_regs; +#define ARCH_REGS_FOR_GETREGSET riscv_regs +#define ARCH_PC_REG riscv_regs.pc +#define ARCH_SP_REG riscv_regs.sp diff --git a/linux/riscv64/get_error.c b/linux/riscv64/get_error.c new file mode 100644 index 00000000..ac20c769 --- /dev/null +++ b/linux/riscv64/get_error.c @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2016-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#include "negated_errno.h" + +static void +arch_get_error(struct tcb *tcp, const bool check_errno) +{ + if (check_errno && is_negated_errno(riscv_regs.a0)) { + tcp->u_rval = -1; + tcp->u_error = -riscv_regs.a0; + } else { + tcp->u_rval = riscv_regs.a0; + } +} diff --git a/linux/riscv64/get_scno.c b/linux/riscv64/get_scno.c new file mode 100644 index 00000000..c77f4f55 --- /dev/null +++ b/linux/riscv64/get_scno.c @@ -0,0 +1,14 @@ +/* + * Copyright (c) 2015-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +/* Return codes: 1 - ok, 0 - ignore, other - error. */ +static int +arch_get_scno(struct tcb *tcp) +{ + tcp->scno = riscv_regs.a7; + return 1; +} diff --git a/linux/riscv64/get_syscall_args.c b/linux/riscv64/get_syscall_args.c new file mode 100644 index 00000000..0167fa52 --- /dev/null +++ b/linux/riscv64/get_syscall_args.c @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2016-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +/* Return -1 on error or 1 on success (never 0!). */ +static int +arch_get_syscall_args(struct tcb *tcp) +{ + tcp->u_arg[0] = riscv_regs.a0; + tcp->u_arg[1] = riscv_regs.a1; + tcp->u_arg[2] = riscv_regs.a2; + tcp->u_arg[3] = riscv_regs.a3; + tcp->u_arg[4] = riscv_regs.a4; + tcp->u_arg[5] = riscv_regs.a5; + return 1; +} diff --git a/linux/riscv64/ioctls_arch0.h b/linux/riscv64/ioctls_arch0.h new file mode 100644 index 00000000..9c039fc8 --- /dev/null +++ b/linux/riscv64/ioctls_arch0.h @@ -0,0 +1 @@ +/* Generated by ioctls_gen.sh from definitions found in $linux/arch/riscv/include/ tree. */ diff --git a/linux/riscv64/ioctls_inc0.h b/linux/riscv64/ioctls_inc0.h new file mode 100644 index 00000000..f9939faa --- /dev/null +++ b/linux/riscv64/ioctls_inc0.h @@ -0,0 +1 @@ +#include "64/ioctls_inc.h" diff --git a/linux/riscv64/raw_syscall.h b/linux/riscv64/raw_syscall.h new file mode 100644 index 00000000..932975cd --- /dev/null +++ b/linux/riscv64/raw_syscall.h @@ -0,0 +1,29 @@ +/* + * Raw syscalls. + * + * Copyright (c) 2018-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#ifndef STRACE_RAW_SYSCALL_H +# define STRACE_RAW_SYSCALL_H + +# include "kernel_types.h" + +static inline kernel_ulong_t +raw_syscall_0(const kernel_ulong_t nr, kernel_ulong_t *err) +{ + *err = 0; + register kernel_ulong_t a7 __asm__("a7") = nr; + register kernel_ulong_t a0 __asm__("a0"); + __asm__ __volatile__("scall" + : "=r"(a0) + : "r"(a7) + : "memory"); + return a0; +} +# define raw_syscall_0 raw_syscall_0 + +#endif /* !STRACE_RAW_SYSCALL_H */ diff --git a/linux/riscv64/set_error.c b/linux/riscv64/set_error.c new file mode 100644 index 00000000..b922e102 --- /dev/null +++ b/linux/riscv64/set_error.c @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2016-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +static int +arch_set_error(struct tcb *tcp) +{ + riscv_regs.a0 = -tcp->u_error; + return set_regs(tcp->pid); +} + +static int +arch_set_success(struct tcb *tcp) +{ + riscv_regs.a0 = tcp->u_rval; + return set_regs(tcp->pid); +} diff --git a/linux/riscv64/set_scno.c b/linux/riscv64/set_scno.c new file mode 100644 index 00000000..f6d08d4c --- /dev/null +++ b/linux/riscv64/set_scno.c @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2016-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +static int +arch_set_scno(struct tcb *tcp, kernel_ulong_t scno) +{ + if (ptrace_syscall_info_is_valid() && get_regs(tcp) < 0) + return -1; + riscv_regs.a7 = scno; + return set_regs(tcp->pid); +} diff --git a/linux/riscv64/syscallent.h b/linux/riscv64/syscallent.h new file mode 100644 index 00000000..60c6ce58 --- /dev/null +++ b/linux/riscv64/syscallent.h @@ -0,0 +1,11 @@ +/* + * Copyright (c) 2016-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#include "64/syscallent.h" + +/* #define __NR_riscv_flush_icache (__NR_arch_specific_syscall + 15) */ +[259] = { 3, TM, SEN(riscv_flush_icache), "riscv_flush_icache" }, diff --git a/linux/s390/arch_regs.c b/linux/s390/arch_regs.c index dd872ca3..e9bda5c0 100644 --- a/linux/s390/arch_regs.c +++ b/linux/s390/arch_regs.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ /* PTRACE_GETREGSET on S390 is available since linux v2.6.27. */ -static struct user_regs_struct s390_regset; +static s390_regs s390_regset; #define ARCH_REGS_FOR_GETREGSET s390_regset #define ARCH_PC_REG s390_regset.psw.addr #define ARCH_SP_REG s390_regset.gprs[15] diff --git a/linux/s390/check_scno.c b/linux/s390/check_scno.c new file mode 100644 index 00000000..76d0f9cf --- /dev/null +++ b/linux/s390/check_scno.c @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +/* Return codes: 1 - ok, 0 - ignore, other - error. */ +static int +arch_check_scno(struct tcb *tcp) +{ + if (ptrace_sci.entry.nr) + return 1; + + /* + * Apparently, arch/s390/include/asm/syscall.h:syscall_get_nr() + * returns 0 for out-of-range syscall numbers. + * This kernel bug is exposed via PTRACE_GET_SYSCALL_INFO interface. + * Workaround it by falling back to get_regs(). + */ + + if (get_regs(tcp) < 0) + return -1; + + arch_get_scno(tcp); + if (tcp->scno) { + ptrace_sci.entry.nr = tcp->scno; + debug_func_msg("fixed scno: 0 -> %#lx", tcp->scno); + } + + return 1; +} diff --git a/linux/s390/ioctls_arch0.h b/linux/s390/ioctls_arch0.h index db6204e4..94285630 100644 --- a/linux/s390/ioctls_arch0.h +++ b/linux/s390/ioctls_arch0.h @@ -27,6 +27,7 @@ { "asm/dasd.h", "BIODASDPRRST", _IOC_NONE, 0x4405, 0x00 }, { "asm/dasd.h", "BIODASDPSRD", _IOC_READ, 0x4404, 0xc0 }, { "asm/dasd.h", "BIODASDQUIESCE", _IOC_NONE, 0x4406, 0x00 }, +{ "asm/dasd.h", "BIODASDRAS", _IOC_WRITE, 0x4403, 0x10 }, { "asm/dasd.h", "BIODASDRESUME", _IOC_NONE, 0x4407, 0x00 }, { "asm/dasd.h", "BIODASDRLSE", _IOC_NONE, 0x4403, 0x00 }, { "asm/dasd.h", "BIODASDRSRV", _IOC_NONE, 0x4402, 0x00 }, @@ -37,15 +38,21 @@ { "asm/dasd.h", "DASDAPIVER", _IOC_READ, 0x4400, 0x04 }, { "asm/hypfs.h", "HYPFS_DIAG304", _IOC_READ|_IOC_WRITE, 0x1020, 0x18 }, { "asm/ioctls.h", "FIOQSIZE", 0, 0x545E, 0 }, +{ "asm/pkey.h", "PKEY_APQNS4K", _IOC_READ|_IOC_WRITE, 0x701b, 0x14 }, +{ "asm/pkey.h", "PKEY_APQNS4KT", _IOC_READ|_IOC_WRITE, 0x701c, 0x50 }, { "asm/pkey.h", "PKEY_CLR2PROTK", _IOC_READ|_IOC_WRITE, 0x7004, 0x6c }, { "asm/pkey.h", "PKEY_CLR2SECK", _IOC_READ|_IOC_WRITE, 0x7002, 0x68 }, +{ "asm/pkey.h", "PKEY_CLR2SECK2", _IOC_READ|_IOC_WRITE, 0x7012, 0x3c }, { "asm/pkey.h", "PKEY_FINDCARD", _IOC_READ|_IOC_WRITE, 0x7005, 0x44 }, { "asm/pkey.h", "PKEY_GENPROTK", _IOC_READ|_IOC_WRITE, 0x7008, 0x4c }, { "asm/pkey.h", "PKEY_GENSECK", _IOC_READ|_IOC_WRITE, 0x7001, 0x48 }, +{ "asm/pkey.h", "PKEY_GENSECK2", _IOC_READ|_IOC_WRITE, 0x7011, 0x1c }, { "asm/pkey.h", "PKEY_KBLOB2PROTK", _IOC_READ|_IOC_WRITE, 0x700a, 0x50 }, +{ "asm/pkey.h", "PKEY_KBLOB2PROTK2", _IOC_READ|_IOC_WRITE, 0x701a, 0x58 }, { "asm/pkey.h", "PKEY_SEC2PROTK", _IOC_READ|_IOC_WRITE, 0x7003, 0x8c }, { "asm/pkey.h", "PKEY_SKEY2PKEY", _IOC_READ|_IOC_WRITE, 0x7006, 0x88 }, { "asm/pkey.h", "PKEY_VERIFYKEY", _IOC_READ|_IOC_WRITE, 0x7007, 0x4c }, +{ "asm/pkey.h", "PKEY_VERIFYKEY2", _IOC_READ|_IOC_WRITE, 0x7017, 0x18 }, { "asm/pkey.h", "PKEY_VERIFYPROTK", _IOC_WRITE, 0x7009, 0x48 }, { "asm/sclp_ctl.h", "SCLP_CTL_SCCB", _IOC_READ|_IOC_WRITE, 0x1010, 0x0c }, { "asm/tape390.h", "TAPE390_CRYPT_QUERY", _IOC_READ, 0x6403, 0x03 }, @@ -117,6 +124,7 @@ { "linux/kvm.h", "KVM_REGISTER_COALESCED_MMIO", _IOC_WRITE, 0xae67, 0x10 }, { "linux/kvm.h", "KVM_REINJECT_CONTROL", _IOC_NONE, 0xae71, 0x00 }, { "linux/kvm.h", "KVM_RUN", _IOC_NONE, 0xae80, 0x00 }, +{ "linux/kvm.h", "KVM_S390_CLEAR_RESET", _IOC_NONE, 0xaec4, 0x00 }, { "linux/kvm.h", "KVM_S390_ENABLE_SIE", _IOC_NONE, 0xae06, 0x00 }, { "linux/kvm.h", "KVM_S390_GET_CMMA_BITS", _IOC_READ|_IOC_WRITE, 0xaeb8, 0x20 }, { "linux/kvm.h", "KVM_S390_GET_IRQ_STATE", _IOC_WRITE, 0xaeb6, 0x20 }, @@ -125,6 +133,8 @@ { "linux/kvm.h", "KVM_S390_INTERRUPT", _IOC_WRITE, 0xae94, 0x10 }, { "linux/kvm.h", "KVM_S390_IRQ", _IOC_WRITE, 0xaeb4, 0x48 }, { "linux/kvm.h", "KVM_S390_MEM_OP", _IOC_WRITE, 0xaeb1, 0x40 }, +{ "linux/kvm.h", "KVM_S390_NORMAL_RESET", _IOC_NONE, 0xaec3, 0x00 }, +{ "linux/kvm.h", "KVM_S390_PV_COMMAND", _IOC_READ|_IOC_WRITE, 0xaec5, 0x20 }, { "linux/kvm.h", "KVM_S390_SET_CMMA_BITS", _IOC_WRITE, 0xaeb9, 0x20 }, { "linux/kvm.h", "KVM_S390_SET_INITIAL_PSW", _IOC_WRITE, 0xae96, 0x10 }, { "linux/kvm.h", "KVM_S390_SET_IRQ_STATE", _IOC_WRITE, 0xaeb5, 0x20 }, diff --git a/linux/s390/set_scno.c b/linux/s390/set_scno.c index 650deecb..6ce2c12f 100644 --- a/linux/s390/set_scno.c +++ b/linux/s390/set_scno.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -12,6 +12,8 @@ static int arch_set_scno(struct tcb *tcp, kernel_ulong_t scno) { + if (ptrace_syscall_info_is_valid() && get_regs(tcp) < 0) + return -1; ARCH_REGSET.gprs[2] = scno; return set_regs(tcp->pid); } diff --git a/linux/s390/syscallent.h b/linux/s390/syscallent.h index 24cd190b..7af96b5c 100644 --- a/linux/s390/syscallent.h +++ b/linux/s390/syscallent.h @@ -1,6 +1,6 @@ /* * Copyright (c) 2000 IBM Deutschland Entwicklung GmbH, IBM Coporation - * Copyright (c) 2000-2019 The strace developers. + * Copyright (c) 2000-2020 The strace developers. * Authors: Ulrich Weigand * D.J. Barrow * All rights reserved. @@ -20,9 +20,9 @@ [ 8] = { 2, TD|TF, SEN(creat), "creat" }, [ 9] = { 2, TF, SEN(link), "link" }, [ 10] = { 1, TF, SEN(unlink), "unlink" }, -[ 11] = { 3, TF|TP|SE|SI, SEN(execve), "execve" }, +[ 11] = { 3, TF|TP|TSD|SE|SI, SEN(execve), "execve" }, [ 12] = { 1, TF, SEN(chdir), "chdir" }, -[ 13] = { 1, 0, SEN(time), "time" }, +[ 13] = { 1, TCL, SEN(time), "time" }, [ 14] = { 3, TF, SEN(mknod), "mknod" }, [ 15] = { 2, TF, SEN(chmod), "chmod" }, [ 16] = { 3, TF, SEN(chown16), "lchown" }, @@ -32,8 +32,8 @@ [ 20] = { 0, PU|NF, SEN(getpid), "getpid" }, [ 21] = { 5, TF, SEN(mount), "mount" }, [ 22] = { 1, TF, SEN(umount), "umount" }, -[ 23] = { 1, 0, SEN(setuid16), "setuid" }, -[ 24] = { 0, PU|NF, SEN(getuid16), "getuid" }, +[ 23] = { 1, TC, SEN(setuid16), "setuid" }, +[ 24] = { 0, TC|PU|NF, SEN(getuid16), "getuid" }, [ 25] = { 1, 0, SEN(stime), "stime" }, [ 26] = { 4, 0, SEN(ptrace), "ptrace" }, [ 27] = { 1, 0, SEN(alarm), "alarm" }, @@ -46,7 +46,7 @@ [ 34] = { 1, 0, SEN(nice), "nice" }, [ 35] = { }, [ 36] = { 0, 0, SEN(sync), "sync" }, -[ 37] = { 2, TS, SEN(kill), "kill" }, +[ 37] = { 2, TS|TP, SEN(kill), "kill" }, [ 38] = { 2, TF, SEN(rename), "rename" }, [ 39] = { 2, TF, SEN(mkdir), "mkdir" }, [ 40] = { 1, TF, SEN(rmdir), "rmdir" }, @@ -55,11 +55,11 @@ [ 43] = { 1, 0, SEN(times), "times" }, [ 44] = { }, [ 45] = { 1, TM|SI, SEN(brk), "brk" }, -[ 46] = { 1, 0, SEN(setgid16), "setgid" }, -[ 47] = { 0, PU|NF, SEN(getgid16), "getgid" }, +[ 46] = { 1, TC, SEN(setgid16), "setgid" }, +[ 47] = { 0, TC|PU|NF, SEN(getgid16), "getgid" }, [ 48] = { 2, TS, SEN(signal), "signal" }, -[ 49] = { 0, PU|NF, SEN(geteuid16), "geteuid" }, -[ 50] = { 0, PU|NF, SEN(getegid16), "getegid" }, +[ 49] = { 0, TC|PU|NF, SEN(geteuid16), "geteuid" }, +[ 50] = { 0, TC|PU|NF, SEN(getegid16), "getegid" }, [ 51] = { 1, TF, SEN(acct), "acct" }, [ 52] = { 2, TF, SEN(umount2), "umount2" }, [ 53] = { }, @@ -79,18 +79,18 @@ [ 67] = { 3, TS, SEN(sigaction), "sigaction" }, [ 68] = { }, [ 69] = { }, -[ 70] = { 2, 0, SEN(setreuid16), "setreuid" }, -[ 71] = { 2, 0, SEN(setregid16), "setregid" }, +[ 70] = { 2, TC, SEN(setreuid16), "setreuid" }, +[ 71] = { 2, TC, SEN(setregid16), "setregid" }, [ 72] = { 3, TS, SEN(sigsuspend), "sigsuspend" }, [ 73] = { 1, TS, SEN(sigpending), "sigpending" }, [ 74] = { 2, 0, SEN(sethostname), "sethostname" }, [ 75] = { 2, 0, SEN(setrlimit), "setrlimit" }, [ 76] = { 2, 0, SEN(getrlimit), "getrlimit" }, [ 77] = { 2, 0, SEN(getrusage), "getrusage" }, -[ 78] = { 2, 0, SEN(gettimeofday), "gettimeofday" }, -[ 79] = { 2, 0, SEN(settimeofday), "settimeofday" }, -[ 80] = { 2, 0, SEN(getgroups16), "getgroups" }, -[ 81] = { 2, 0, SEN(setgroups16), "setgroups" }, +[ 78] = { 2, TCL, SEN(gettimeofday), "gettimeofday" }, +[ 79] = { 2, TCL, SEN(settimeofday), "settimeofday" }, +[ 80] = { 2, TC, SEN(getgroups16), "getgroups" }, +[ 81] = { 2, TC, SEN(setgroups16), "setgroups" }, [ 82] = { }, [ 83] = { 2, TF, SEN(symlink), "symlink" }, [ 84] = { }, @@ -111,7 +111,7 @@ [ 99] = { 2, TF|TSF|TSFA, SEN(statfs), "statfs" }, [100] = { 2, TD|TFSF|TSFA, SEN(fstatfs), "fstatfs" }, [101] = { 3, 0, SEN(ioperm), "ioperm" }, -[102] = { 2, TD, SEN(socketcall), "socketcall" }, +[102] = { 2, TD|TSD, SEN(socketcall), "socketcall" }, [103] = { 3, 0, SEN(syslog), "syslog" }, [104] = { 3, 0, SEN(setitimer), "setitimer" }, [105] = { 2, 0, SEN(getitimer), "getitimer" }, @@ -126,14 +126,14 @@ [114] = { 4, TP, SEN(wait4), "wait4" }, [115] = { 1, TF, SEN(swapoff), "swapoff" }, [116] = { 1, 0, SEN(sysinfo), "sysinfo" }, -[117] = { 5, TI, SEN(ipc), "ipc" }, +[117] = { 5, TI|TSD, SEN(ipc), "ipc" }, [118] = { 1, TD, SEN(fsync), "fsync" }, [119] = { 0, TS, SEN(sigreturn), "sigreturn" }, [120] = { 5, TP, SEN(clone), "clone" }, [121] = { 2, 0, SEN(setdomainname), "setdomainname" }, [122] = { 1, 0, SEN(uname), "uname" }, [123] = { }, -[124] = { 1, 0, SEN(adjtimex32), "adjtimex" }, +[124] = { 1, TCL, SEN(adjtimex32), "adjtimex" }, [125] = { 3, TM|SI, SEN(mprotect), "mprotect" }, [126] = { 3, TS, SEN(sigprocmask), "sigprocmask" }, [127] = { 2, 0, SEN(create_module), "create_module" }, @@ -147,8 +147,8 @@ [135] = { 3, 0, SEN(sysfs), "sysfs" }, [136] = { 1, NF, SEN(personality), "personality" }, [137] = { 5, 0, SEN(afs_syscall), "afs_syscall" }, -[138] = { 1, NF, SEN(setfsuid16), "setfsuid" }, -[139] = { 1, NF, SEN(setfsgid16), "setfsgid" }, +[138] = { 1, TC|NF, SEN(setfsuid16), "setfsuid" }, +[139] = { 1, TC|NF, SEN(setfsgid16), "setfsgid" }, [140] = { 5, TD, SEN(llseek), "_llseek" }, [141] = { 3, TD, SEN(getdents), "getdents" }, [142] = { 5, TD, SEN(select), "_newselect" }, @@ -173,28 +173,28 @@ [161] = { 2, 0, SEN(sched_rr_get_interval_time32),"sched_rr_get_interval"}, [162] = { 2, 0, SEN(nanosleep_time32), "nanosleep" }, [163] = { 5, TM|SI, SEN(mremap), "mremap" }, -[164] = { 3, 0, SEN(setresuid16), "setresuid" }, -[165] = { 3, 0, SEN(getresuid16), "getresuid" }, +[164] = { 3, TC, SEN(setresuid16), "setresuid" }, +[165] = { 3, TC, SEN(getresuid16), "getresuid" }, [166] = { }, [167] = { 5, 0, SEN(query_module), "query_module" }, [168] = { 3, TD, SEN(poll_time32), "poll" }, [169] = { 3, 0, SEN(nfsservctl), "nfsservctl" }, -[170] = { 3, 0, SEN(setresgid16), "setresgid" }, -[171] = { 3, 0, SEN(getresgid16), "getresgid" }, -[172] = { 5, 0, SEN(prctl), "prctl" }, +[170] = { 3, TC, SEN(setresgid16), "setresgid" }, +[171] = { 3, TC, SEN(getresgid16), "getresgid" }, +[172] = { 5, TC, SEN(prctl), "prctl" }, [173] = { 0, TS, SEN(rt_sigreturn), "rt_sigreturn" }, [174] = { 4, TS, SEN(rt_sigaction), "rt_sigaction" }, [175] = { 4, TS, SEN(rt_sigprocmask), "rt_sigprocmask" }, [176] = { 2, TS, SEN(rt_sigpending), "rt_sigpending" }, [177] = { 4, TS, SEN(rt_sigtimedwait_time32), "rt_sigtimedwait" }, -[178] = { 3, TS, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, +[178] = { 3, TS|TP, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, [179] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" }, [180] = { 5, TD, SEN(pread), "pread64" }, [181] = { 5, TD, SEN(pwrite), "pwrite64" }, [182] = { 3, TF, SEN(chown16), "chown" }, [183] = { 2, TF, SEN(getcwd), "getcwd" }, -[184] = { 2, 0, SEN(capget), "capget" }, -[185] = { 2, 0, SEN(capset), "capset" }, +[184] = { 2, TC, SEN(capget), "capget" }, +[185] = { 2, TC, SEN(capset), "capset" }, [186] = { 2, TS, SEN(sigaltstack), "sigaltstack" }, [187] = { 4, TD|TN, SEN(sendfile), "sendfile" }, [188] = { 5, TN, SEN(getpmsg), "getpmsg" }, @@ -208,24 +208,24 @@ [196] = { 2, TF|TLST|TSTA, SEN(lstat64), "lstat64" }, [197] = { 2, TD|TFST|TSTA, SEN(fstat64), "fstat64" }, [198] = { 3, TF, SEN(chown), "lchown32" }, -[199] = { 0, PU|NF, SEN(getuid), "getuid32" }, -[200] = { 0, PU|NF, SEN(getgid), "getgid32" }, -[201] = { 0, PU|NF, SEN(geteuid), "geteuid32" }, -[202] = { 0, PU|NF, SEN(getegid), "getegid32" }, -[203] = { 2, 0, SEN(setreuid), "setreuid32" }, -[204] = { 2, 0, SEN(setregid), "setregid32" }, -[205] = { 2, 0, SEN(getgroups), "getgroups32" }, -[206] = { 2, 0, SEN(setgroups), "setgroups32" }, +[199] = { 0, TC|PU|NF, SEN(getuid), "getuid32" }, +[200] = { 0, TC|PU|NF, SEN(getgid), "getgid32" }, +[201] = { 0, TC|PU|NF, SEN(geteuid), "geteuid32" }, +[202] = { 0, TC|PU|NF, SEN(getegid), "getegid32" }, +[203] = { 2, TC, SEN(setreuid), "setreuid32" }, +[204] = { 2, TC, SEN(setregid), "setregid32" }, +[205] = { 2, TC, SEN(getgroups), "getgroups32" }, +[206] = { 2, TC, SEN(setgroups), "setgroups32" }, [207] = { 3, TD, SEN(fchown), "fchown32" }, -[208] = { 3, 0, SEN(setresuid), "setresuid32" }, -[209] = { 3, 0, SEN(getresuid), "getresuid32" }, -[210] = { 3, 0, SEN(setresgid), "setresgid32" }, -[211] = { 3, 0, SEN(getresgid), "getresgid32" }, +[208] = { 3, TC, SEN(setresuid), "setresuid32" }, +[209] = { 3, TC, SEN(getresuid), "getresuid32" }, +[210] = { 3, TC, SEN(setresgid), "setresgid32" }, +[211] = { 3, TC, SEN(getresgid), "getresgid32" }, [212] = { 3, TF, SEN(chown), "chown32" }, -[213] = { 1, 0, SEN(setuid), "setuid32" }, -[214] = { 1, 0, SEN(setgid), "setgid32" }, -[215] = { 1, NF, SEN(setfsuid), "setfsuid32" }, -[216] = { 1, NF, SEN(setfsgid), "setfsgid32" }, +[213] = { 1, TC, SEN(setuid), "setuid32" }, +[214] = { 1, TC, SEN(setgid), "setgid32" }, +[215] = { 1, TC|NF, SEN(setfsuid), "setfsuid32" }, +[216] = { 1, TC|NF, SEN(setfsgid), "setfsgid32" }, [217] = { 2, TF, SEN(pivotroot), "pivot_root" }, [218] = { 3, TM, SEN(mincore), "mincore" }, [219] = { 3, TM, SEN(madvise), "madvise" }, @@ -246,11 +246,11 @@ [234] = { 2, TF, SEN(removexattr), "lremovexattr" }, [235] = { 2, TD, SEN(fremovexattr), "fremovexattr" }, [236] = { 0, PU|NF, SEN(gettid), "gettid" }, -[237] = { 2, TS, SEN(kill), "tkill" }, +[237] = { 2, TS|TP, SEN(tkill), "tkill" }, [238] = { 6, 0, SEN(futex_time32), "futex" }, [239] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" }, [240] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" }, -[241] = { 3, TS, SEN(tgkill), "tgkill" }, +[241] = { 3, TS|TP, SEN(tgkill), "tgkill" }, [242] = { }, [243] = { 2, TM, SEN(io_setup), "io_setup" }, [244] = { 1, TM, SEN(io_destroy), "io_destroy" }, @@ -268,9 +268,9 @@ [256] = { 2, 0, SEN(timer_gettime32), "timer_gettime" }, [257] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" }, [258] = { 1, 0, SEN(timer_delete), "timer_delete" }, -[259] = { 2, 0, SEN(clock_settime32), "clock_settime" }, -[260] = { 2, 0, SEN(clock_gettime32), "clock_gettime" }, -[261] = { 2, 0, SEN(clock_getres_time32), "clock_getres" }, +[259] = { 2, TCL, SEN(clock_settime32), "clock_settime" }, +[260] = { 2, TCL, SEN(clock_gettime32), "clock_gettime" }, +[261] = { 2, TCL, SEN(clock_getres_time32), "clock_getres" }, [262] = { 4, 0, SEN(clock_nanosleep_time32), "clock_nanosleep" }, [263] = { 5, 0, SEN(vserver), "vserver" }, [264] = { 6, TD, SEN(fadvise64_64), "fadvise64_64" }, @@ -312,7 +312,7 @@ [300] = { 3, TD|TF, SEN(faccessat), "faccessat" }, [301] = { 6, TD, SEN(pselect6_time32), "pselect6" }, [302] = { 5, TD, SEN(ppoll_time32), "ppoll" }, -[303] = { 1, TP, SEN(unshare), "unshare" }, +[303] = { 1, 0, SEN(unshare), "unshare" }, [304] = { 2, 0, SEN(set_robust_list), "set_robust_list" }, [305] = { 3, 0, SEN(get_robust_list), "get_robust_list" }, [306] = { 6, TD, SEN(splice), "splice" }, @@ -346,7 +346,7 @@ [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_adjtime32), "clock_adjtime" }, +[337] = { 2, TCL, SEN(clock_adjtime32), "clock_adjtime" }, [338] = { 1, TD, SEN(syncfs), "syncfs" }, [339] = { 2, TD, SEN(setns), "setns" }, [340] = { 6, 0, SEN(process_vm_readv), "process_vm_readv" }, @@ -363,7 +363,7 @@ [351] = { 3, TD, SEN(bpf), "bpf" }, [352] = { 3, 0, SEN(s390_pci_mmio_write), "s390_pci_mmio_write" }, [353] = { 3, 0, SEN(s390_pci_mmio_read), "s390_pci_mmio_read" }, -[354] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat" }, +[354] = { 5, TD|TF|TP|TSD|SE|SI, SEN(execveat), "execveat" }, [355] = { 1, TD, SEN(userfaultfd), "userfaultfd" }, [356] = { 2, 0, SEN(membarrier), "membarrier" }, [357] = { 5, TN, SEN(recvmmsg_time32), "recvmmsg" }, @@ -388,7 +388,7 @@ [376] = { 6, TD, SEN(preadv2), "preadv2" }, [377] = { 6, TD, SEN(pwritev2), "pwritev2" }, [378] = { 2, 0, SEN(s390_guarded_storage), "s390_guarded_storage" }, -[379] = { 5, TD|TF|TSTA, SEN(statx), "statx" }, +[379] = { 5, TD|TF|TFST|TSTA,SEN(statx), "statx" }, [380] = { 4, 0, SEN(s390_sthyi), "s390_sthyi" }, [381] = { 5, TD, SEN(kexec_file_load), "kexec_file_load" }, [382] = { 6, 0, SEN(io_pgetevents_time32), "io_pgetevents" }, @@ -407,30 +407,8 @@ [400] = { 4, TI, SEN(msgsnd), "msgsnd" }, [401] = { 5, TI, SEN(msgrcv), "msgrcv" }, [402] = { 3, TI, SEN(msgctl), "msgctl" }, -[403] = { 2, 0, SEN(clock_gettime64), "clock_gettime64" }, -[404] = { 2, 0, SEN(clock_settime64), "clock_settime64" }, -[405] = { 2, 0, SEN(clock_adjtime64), "clock_adjtime64" }, -[406] = { 2, 0, SEN(clock_getres_time64), "clock_getres_time64" }, -[407] = { 4, 0, SEN(clock_nanosleep_time64), "clock_nanosleep_time64"}, -[408] = { 2, 0, SEN(timer_gettime64), "timer_gettime64" }, -[409] = { 4, 0, SEN(timer_settime64), "timer_settime64" }, -[410] = { 2, TD, SEN(timerfd_gettime64), "timerfd_gettime64" }, -[411] = { 4, TD, SEN(timerfd_settime64), "timerfd_settime64" }, -[412] = { 4, TD|TF, SEN(utimensat_time64), "utimensat_time64" }, -[413] = { 6, TD, SEN(pselect6_time64), "pselect6_time64" }, -[414] = { 5, TD, SEN(ppoll_time64), "ppoll_time64" }, -[416] = { 6, 0, SEN(io_pgetevents_time64), "io_pgetevents_time64" }, -[417] = { 5, TN, SEN(recvmmsg_time64), "recvmmsg_time64" }, -[418] = { 5, TD, SEN(mq_timedsend_time64), "mq_timedsend_time64" }, -[419] = { 5, TD, SEN(mq_timedreceive_time64), "mq_timedreceive_time64"}, -[420] = { 4, TI, SEN(semtimedop_time64), "semtimedop_time64" }, -[421] = { 4, TS, SEN(rt_sigtimedwait_time64), "rt_sigtimedwait_time64"}, -[422] = { 6, 0, SEN(futex_time64), "futex_time64" }, -[423] = { 2, 0, SEN(sched_rr_get_interval_time64), "sched_rr_get_interval_time64" }, -[424] = { 4, TD|TS, SEN(pidfd_send_signal), "pidfd_send_signal" }, -[425] = { 2, TD, SEN(io_uring_setup), "io_uring_setup" }, -[426] = { 6, TD|TS, SEN(io_uring_enter), "io_uring_enter" }, -[427] = { 4, TD|TM, SEN(io_uring_register), "io_uring_register" }, +#include "syscallent-common-32.h" +#include "syscallent-common.h" #define SYS_socket_subcall 500 #include "subcall32.h" diff --git a/linux/s390x/arch_defs_.h b/linux/s390x/arch_defs_.h index 1e520761..750ab512 100644 --- a/linux/s390x/arch_defs_.h +++ b/linux/s390x/arch_defs_.h @@ -9,3 +9,5 @@ #define HAVE_ARCH_OLD_MMAP_PGOFF 1 #define HAVE_ARCH_UID16_SYSCALLS 1 #define SUPPORTED_PERSONALITIES 2 +#define PERSONALITY0_AUDIT_ARCH { AUDIT_ARCH_S390X, 0 } +#define PERSONALITY1_AUDIT_ARCH { AUDIT_ARCH_S390, 0 } diff --git a/linux/s390x/arch_get_personality.c b/linux/s390x/arch_get_personality.c index 8b12132e..c82c6c3e 100644 --- a/linux/s390x/arch_get_personality.c +++ b/linux/s390x/arch_get_personality.c @@ -1,16 +1,13 @@ /* * Copyright (c) 2018 Dmitry V. Levin + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ -#ifndef AUDIT_ARCH_S390 -# define AUDIT_ARCH_S390 0x16 -#endif - int -get_personality_from_syscall_info(const struct ptrace_syscall_info *sci) +get_personality_from_syscall_info(const struct_ptrace_syscall_info *sci) { return sci->arch == AUDIT_ARCH_S390; } diff --git a/linux/s390x/check_scno.c b/linux/s390x/check_scno.c new file mode 100644 index 00000000..c2e9aaa1 --- /dev/null +++ b/linux/s390x/check_scno.c @@ -0,0 +1 @@ +#include "s390/check_scno.c" diff --git a/linux/s390x/ioctls_arch0.h b/linux/s390x/ioctls_arch0.h index 2f9e3b7d..beb87131 100644 --- a/linux/s390x/ioctls_arch0.h +++ b/linux/s390x/ioctls_arch0.h @@ -27,6 +27,7 @@ { "asm/dasd.h", "BIODASDPRRST", _IOC_NONE, 0x4405, 0x00 }, { "asm/dasd.h", "BIODASDPSRD", _IOC_READ, 0x4404, 0xc0 }, { "asm/dasd.h", "BIODASDQUIESCE", _IOC_NONE, 0x4406, 0x00 }, +{ "asm/dasd.h", "BIODASDRAS", _IOC_WRITE, 0x4403, 0x10 }, { "asm/dasd.h", "BIODASDRESUME", _IOC_NONE, 0x4407, 0x00 }, { "asm/dasd.h", "BIODASDRLSE", _IOC_NONE, 0x4403, 0x00 }, { "asm/dasd.h", "BIODASDRSRV", _IOC_NONE, 0x4402, 0x00 }, @@ -37,15 +38,21 @@ { "asm/dasd.h", "DASDAPIVER", _IOC_READ, 0x4400, 0x04 }, { "asm/hypfs.h", "HYPFS_DIAG304", _IOC_READ|_IOC_WRITE, 0x1020, 0x18 }, { "asm/ioctls.h", "FIOQSIZE", 0, 0x545E, 0 }, +{ "asm/pkey.h", "PKEY_APQNS4K", _IOC_READ|_IOC_WRITE, 0x701b, 0x20 }, +{ "asm/pkey.h", "PKEY_APQNS4KT", _IOC_READ|_IOC_WRITE, 0x701c, 0x58 }, { "asm/pkey.h", "PKEY_CLR2PROTK", _IOC_READ|_IOC_WRITE, 0x7004, 0x6c }, { "asm/pkey.h", "PKEY_CLR2SECK", _IOC_READ|_IOC_WRITE, 0x7002, 0x68 }, +{ "asm/pkey.h", "PKEY_CLR2SECK2", _IOC_READ|_IOC_WRITE, 0x7012, 0x48 }, { "asm/pkey.h", "PKEY_FINDCARD", _IOC_READ|_IOC_WRITE, 0x7005, 0x44 }, { "asm/pkey.h", "PKEY_GENPROTK", _IOC_READ|_IOC_WRITE, 0x7008, 0x4c }, { "asm/pkey.h", "PKEY_GENSECK", _IOC_READ|_IOC_WRITE, 0x7001, 0x48 }, +{ "asm/pkey.h", "PKEY_GENSECK2", _IOC_READ|_IOC_WRITE, 0x7011, 0x28 }, { "asm/pkey.h", "PKEY_KBLOB2PROTK", _IOC_READ|_IOC_WRITE, 0x700a, 0x58 }, +{ "asm/pkey.h", "PKEY_KBLOB2PROTK2", _IOC_READ|_IOC_WRITE, 0x701a, 0x68 }, { "asm/pkey.h", "PKEY_SEC2PROTK", _IOC_READ|_IOC_WRITE, 0x7003, 0x8c }, { "asm/pkey.h", "PKEY_SKEY2PKEY", _IOC_READ|_IOC_WRITE, 0x7006, 0x88 }, { "asm/pkey.h", "PKEY_VERIFYKEY", _IOC_READ|_IOC_WRITE, 0x7007, 0x4c }, +{ "asm/pkey.h", "PKEY_VERIFYKEY2", _IOC_READ|_IOC_WRITE, 0x7017, 0x20 }, { "asm/pkey.h", "PKEY_VERIFYPROTK", _IOC_WRITE, 0x7009, 0x48 }, { "asm/sclp_ctl.h", "SCLP_CTL_SCCB", _IOC_READ|_IOC_WRITE, 0x1010, 0x0c }, { "asm/tape390.h", "TAPE390_CRYPT_QUERY", _IOC_READ, 0x6403, 0x03 }, @@ -117,6 +124,7 @@ { "linux/kvm.h", "KVM_REGISTER_COALESCED_MMIO", _IOC_WRITE, 0xae67, 0x10 }, { "linux/kvm.h", "KVM_REINJECT_CONTROL", _IOC_NONE, 0xae71, 0x00 }, { "linux/kvm.h", "KVM_RUN", _IOC_NONE, 0xae80, 0x00 }, +{ "linux/kvm.h", "KVM_S390_CLEAR_RESET", _IOC_NONE, 0xaec4, 0x00 }, { "linux/kvm.h", "KVM_S390_ENABLE_SIE", _IOC_NONE, 0xae06, 0x00 }, { "linux/kvm.h", "KVM_S390_GET_CMMA_BITS", _IOC_READ|_IOC_WRITE, 0xaeb8, 0x20 }, { "linux/kvm.h", "KVM_S390_GET_IRQ_STATE", _IOC_WRITE, 0xaeb6, 0x20 }, @@ -125,6 +133,8 @@ { "linux/kvm.h", "KVM_S390_INTERRUPT", _IOC_WRITE, 0xae94, 0x10 }, { "linux/kvm.h", "KVM_S390_IRQ", _IOC_WRITE, 0xaeb4, 0x48 }, { "linux/kvm.h", "KVM_S390_MEM_OP", _IOC_WRITE, 0xaeb1, 0x40 }, +{ "linux/kvm.h", "KVM_S390_NORMAL_RESET", _IOC_NONE, 0xaec3, 0x00 }, +{ "linux/kvm.h", "KVM_S390_PV_COMMAND", _IOC_READ|_IOC_WRITE, 0xaec5, 0x20 }, { "linux/kvm.h", "KVM_S390_SET_CMMA_BITS", _IOC_WRITE, 0xaeb9, 0x20 }, { "linux/kvm.h", "KVM_S390_SET_INITIAL_PSW", _IOC_WRITE, 0xae96, 0x10 }, { "linux/kvm.h", "KVM_S390_SET_IRQ_STATE", _IOC_WRITE, 0xaeb5, 0x20 }, diff --git a/linux/s390x/syscallent.h b/linux/s390x/syscallent.h index 5b61cdc2..6daa310e 100644 --- a/linux/s390x/syscallent.h +++ b/linux/s390x/syscallent.h @@ -1,6 +1,6 @@ /* * Copyright (c) 2000 IBM Deutschland Entwicklung GmbH, IBM Coporation - * Copyright (c) 2000-2019 The strace developers. + * Copyright (c) 2000-2020 The strace developers. * Author: Ulrich Weigand * All rights reserved. * @@ -19,7 +19,7 @@ [ 8] = { 2, TD|TF, SEN(creat), "creat" }, [ 9] = { 2, TF, SEN(link), "link" }, [ 10] = { 1, TF, SEN(unlink), "unlink" }, -[ 11] = { 3, TF|TP|SE|SI, SEN(execve), "execve" }, +[ 11] = { 3, TF|TP|TSD|SE|SI, SEN(execve), "execve" }, [ 12] = { 1, TF, SEN(chdir), "chdir" }, [ 13] = { }, [ 14] = { 3, TF, SEN(mknod), "mknod" }, @@ -45,7 +45,7 @@ [ 34] = { 1, 0, SEN(nice), "nice" }, [ 35] = { }, [ 36] = { 0, 0, SEN(sync), "sync" }, -[ 37] = { 2, TS, SEN(kill), "kill" }, +[ 37] = { 2, TS|TP, SEN(kill), "kill" }, [ 38] = { 2, TF, SEN(rename), "rename" }, [ 39] = { 2, TF, SEN(mkdir), "mkdir" }, [ 40] = { 1, TF, SEN(rmdir), "rmdir" }, @@ -83,8 +83,8 @@ [ 75] = { 2, 0, SEN(setrlimit), "setrlimit" }, [ 76] = { }, [ 77] = { 2, 0, SEN(getrusage), "getrusage" }, -[ 78] = { 2, 0, SEN(gettimeofday), "gettimeofday" }, -[ 79] = { 2, 0, SEN(settimeofday), "settimeofday" }, +[ 78] = { 2, TCL, SEN(gettimeofday), "gettimeofday" }, +[ 79] = { 2, TCL, SEN(settimeofday), "settimeofday" }, [ 80 ... 82] = { }, [ 83] = { 2, TF, SEN(symlink), "symlink" }, [ 84] = { }, @@ -105,7 +105,7 @@ [ 99] = { 2, TF|TSF|TSFA, SEN(statfs), "statfs" }, [100] = { 2, TD|TFSF|TSFA, SEN(fstatfs), "fstatfs" }, [101] = { }, -[102] = { 2, TD, SEN(socketcall), "socketcall" }, +[102] = { 2, TD|TSD, SEN(socketcall), "socketcall" }, [103] = { 3, 0, SEN(syslog), "syslog" }, [104] = { 3, 0, SEN(setitimer), "setitimer" }, [105] = { 2, 0, SEN(getitimer), "getitimer" }, @@ -120,14 +120,14 @@ [114] = { 4, TP, SEN(wait4), "wait4" }, [115] = { 1, TF, SEN(swapoff), "swapoff" }, [116] = { 1, 0, SEN(sysinfo), "sysinfo" }, -[117] = { 5, TI, SEN(ipc), "ipc" }, +[117] = { 5, TI|TSD, SEN(ipc), "ipc" }, [118] = { 1, TD, SEN(fsync), "fsync" }, [119] = { 0, TS, SEN(sigreturn), "sigreturn" }, [120] = { 5, TP, SEN(clone), "clone" }, [121] = { 2, 0, SEN(setdomainname), "setdomainname" }, [122] = { 1, 0, SEN(uname), "uname" }, [123] = { }, -[124] = { 1, 0, SEN(adjtimex64), "adjtimex" }, +[124] = { 1, TCL, SEN(adjtimex64), "adjtimex" }, [125] = { 3, TM|SI, SEN(mprotect), "mprotect" }, [126] = { 3, TS, SEN(sigprocmask), "sigprocmask" }, [127] = { 2, 0, SEN(create_module), "create_module" }, @@ -170,20 +170,20 @@ [168] = { 3, TD, SEN(poll_time64), "poll" }, [169] = { 3, 0, SEN(nfsservctl), "nfsservctl" }, [170 ... 171] = { }, -[172] = { 5, 0, SEN(prctl), "prctl" }, +[172] = { 5, TC, SEN(prctl), "prctl" }, [173] = { 0, TS, SEN(rt_sigreturn), "rt_sigreturn" }, [174] = { 4, TS, SEN(rt_sigaction), "rt_sigaction" }, [175] = { 4, TS, SEN(rt_sigprocmask), "rt_sigprocmask" }, [176] = { 2, TS, SEN(rt_sigpending), "rt_sigpending" }, [177] = { 4, TS, SEN(rt_sigtimedwait_time64), "rt_sigtimedwait" }, -[178] = { 3, TS, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, +[178] = { 3, TS|TP, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, [179] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" }, [180] = { 4, TD, SEN(pread), "pread64" }, [181] = { 4, TD, SEN(pwrite), "pwrite64" }, [182] = { }, [183] = { 2, TF, SEN(getcwd), "getcwd" }, -[184] = { 2, 0, SEN(capget), "capget" }, -[185] = { 2, 0, SEN(capset), "capset" }, +[184] = { 2, TC, SEN(capget), "capget" }, +[185] = { 2, TC, SEN(capset), "capset" }, [186] = { 2, TS, SEN(sigaltstack), "sigaltstack" }, [187] = { 4, TD|TN, SEN(sendfile), "sendfile" }, [188] = { 5, TN, SEN(getpmsg), "getpmsg" }, @@ -192,24 +192,24 @@ [191] = { 2, 0, SEN(getrlimit), "getrlimit" }, [196 ... 197] = { }, [198] = { 3, TF, SEN(chown), "lchown" }, -[199] = { 0, PU|NF, SEN(getuid), "getuid" }, -[200] = { 0, PU|NF, SEN(getgid), "getgid" }, -[201] = { 0, PU|NF, SEN(geteuid), "geteuid" }, -[202] = { 0, PU|NF, SEN(getegid), "getegid" }, -[203] = { 2, 0, SEN(setreuid), "setreuid" }, -[204] = { 2, 0, SEN(setregid), "setregid" }, -[205] = { 2, 0, SEN(getgroups), "getgroups" }, -[206] = { 2, 0, SEN(setgroups), "setgroups" }, +[199] = { 0, TC|PU|NF, SEN(getuid), "getuid" }, +[200] = { 0, TC|PU|NF, SEN(getgid), "getgid" }, +[201] = { 0, TC|PU|NF, SEN(geteuid), "geteuid" }, +[202] = { 0, TC|PU|NF, SEN(getegid), "getegid" }, +[203] = { 2, TC, SEN(setreuid), "setreuid" }, +[204] = { 2, TC, SEN(setregid), "setregid" }, +[205] = { 2, TC, SEN(getgroups), "getgroups" }, +[206] = { 2, TC, SEN(setgroups), "setgroups" }, [207] = { 3, TD, SEN(fchown), "fchown" }, -[208] = { 3, 0, SEN(setresuid), "setresuid" }, -[209] = { 3, 0, SEN(getresuid), "getresuid" }, -[210] = { 3, 0, SEN(setresgid), "setresgid" }, -[211] = { 3, 0, SEN(getresgid), "getresgid" }, +[208] = { 3, TC, SEN(setresuid), "setresuid" }, +[209] = { 3, TC, SEN(getresuid), "getresuid" }, +[210] = { 3, TC, SEN(setresgid), "setresgid" }, +[211] = { 3, TC, SEN(getresgid), "getresgid" }, [212] = { 3, TF, SEN(chown), "chown" }, -[213] = { 1, 0, SEN(setuid), "setuid" }, -[214] = { 1, 0, SEN(setgid), "setgid" }, -[215] = { 1, NF, SEN(setfsuid), "setfsuid" }, -[216] = { 1, NF, SEN(setfsgid), "setfsgid" }, +[213] = { 1, TC, SEN(setuid), "setuid" }, +[214] = { 1, TC, SEN(setgid), "setgid" }, +[215] = { 1, TC|NF, SEN(setfsuid), "setfsuid" }, +[216] = { 1, TC|NF, SEN(setfsgid), "setfsgid" }, [217] = { 2, TF, SEN(pivotroot), "pivot_root" }, [218] = { 3, TM, SEN(mincore), "mincore" }, [219] = { 3, TM, SEN(madvise), "madvise" }, @@ -230,11 +230,11 @@ [234] = { 2, TF, SEN(removexattr), "lremovexattr" }, [235] = { 2, TD, SEN(fremovexattr), "fremovexattr" }, [236] = { 0, PU|NF, SEN(gettid), "gettid" }, -[237] = { 2, TS, SEN(kill), "tkill" }, +[237] = { 2, TS|TP, SEN(tkill), "tkill" }, [238] = { 6, 0, SEN(futex_time64), "futex" }, [239] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" }, [240] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" }, -[241] = { 3, TS, SEN(tgkill), "tgkill" }, +[241] = { 3, TS|TP, SEN(tgkill), "tgkill" }, [242] = { }, [243] = { 2, TM, SEN(io_setup), "io_setup" }, [244] = { 1, TM, SEN(io_destroy), "io_destroy" }, @@ -252,9 +252,9 @@ [256] = { 2, 0, SEN(timer_gettime64), "timer_gettime" }, [257] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" }, [258] = { 1, 0, SEN(timer_delete), "timer_delete" }, -[259] = { 2, 0, SEN(clock_settime64), "clock_settime" }, -[260] = { 2, 0, SEN(clock_gettime64), "clock_gettime" }, -[261] = { 2, 0, SEN(clock_getres_time64), "clock_getres" }, +[259] = { 2, TCL, SEN(clock_settime64), "clock_settime" }, +[260] = { 2, TCL, SEN(clock_gettime64), "clock_gettime" }, +[261] = { 2, TCL, SEN(clock_getres_time64), "clock_getres" }, [262] = { 4, 0, SEN(clock_nanosleep_time64), "clock_nanosleep" }, [263] = { 5, 0, SEN(vserver), "vserver" }, [264] = { }, @@ -296,7 +296,7 @@ [300] = { 3, TD|TF, SEN(faccessat), "faccessat" }, [301] = { 6, TD, SEN(pselect6_time64), "pselect6" }, [302] = { 5, TD, SEN(ppoll_time64), "ppoll" }, -[303] = { 1, TP, SEN(unshare), "unshare" }, +[303] = { 1, 0, SEN(unshare), "unshare" }, [304] = { 2, 0, SEN(set_robust_list), "set_robust_list" }, [305] = { 3, 0, SEN(get_robust_list), "get_robust_list" }, [306] = { 6, TD, SEN(splice), "splice" }, @@ -330,7 +330,7 @@ [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_adjtime64), "clock_adjtime" }, +[337] = { 2, TCL, SEN(clock_adjtime64), "clock_adjtime" }, [338] = { 1, TD, SEN(syncfs), "syncfs" }, [339] = { 2, TD, SEN(setns), "setns" }, [340] = { 6, 0, SEN(process_vm_readv), "process_vm_readv" }, @@ -347,7 +347,7 @@ [351] = { 3, TD, SEN(bpf), "bpf" }, [352] = { 3, 0, SEN(s390_pci_mmio_write), "s390_pci_mmio_write" }, [353] = { 3, 0, SEN(s390_pci_mmio_read), "s390_pci_mmio_read" }, -[354] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat" }, +[354] = { 5, TD|TF|TP|TSD|SE|SI, SEN(execveat), "execveat" }, [355] = { 1, TD, SEN(userfaultfd), "userfaultfd" }, [356] = { 2, 0, SEN(membarrier), "membarrier" }, [357] = { 5, TN, SEN(recvmmsg_time64), "recvmmsg" }, @@ -372,7 +372,7 @@ [376] = { 6, TD, SEN(preadv2), "preadv2" }, [377] = { 6, TD, SEN(pwritev2), "pwritev2" }, [378] = { 2, 0, SEN(s390_guarded_storage), "s390_guarded_storage" }, -[379] = { 5, TD|TF|TSTA, SEN(statx), "statx" }, +[379] = { 5, TD|TF|TFST|TSTA,SEN(statx), "statx" }, [380] = { 4, 0, SEN(s390_sthyi), "s390_sthyi" }, [381] = { 5, TD, SEN(kexec_file_load), "kexec_file_load" }, [382] = { 6, 0, SEN(io_pgetevents_time64), "io_pgetevents" }, @@ -393,10 +393,7 @@ [401] = { 5, TI, SEN(msgrcv), "msgrcv" }, [402] = { 3, TI, SEN(msgctl), "msgctl" }, /* [403 ... 423] - reserved to sync up with other architectures */ -[424] = { 4, TD|TS, SEN(pidfd_send_signal), "pidfd_send_signal" }, -[425] = { 2, TD, SEN(io_uring_setup), "io_uring_setup" }, -[426] = { 6, TD|TS, SEN(io_uring_enter), "io_uring_enter" }, -[427] = { 4, TD|TM, SEN(io_uring_register), "io_uring_register" }, +#include "syscallent-common.h" #define SYS_socket_subcall 500 #include "subcall64.h" diff --git a/linux/sh/arch_getrval2.c b/linux/sh/arch_getrval2.c index bd32ac8f..a01fb20f 100644 --- a/linux/sh/arch_getrval2.c +++ b/linux/sh/arch_getrval2.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -8,8 +8,5 @@ long getrval2(struct tcb *tcp) { - unsigned long val; - if (upeek(tcp, 4*(REG_REG0+1), &val) < 0) - return -1; - return val; + return sh_regs.regs[1]; } diff --git a/linux/sh/arch_regs.c b/linux/sh/arch_regs.c index 74164547..f318fab8 100644 --- a/linux/sh/arch_regs.c +++ b/linux/sh/arch_regs.c @@ -1,10 +1,11 @@ /* - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ -static unsigned long sh_r0; -#define ARCH_PC_PEEK_ADDR (4 * REG_PC) -#define ARCH_SP_PEEK_ADDR (4 * 15) +static struct pt_regs sh_regs; +#define ARCH_REGS_FOR_GETREGS sh_regs +#define ARCH_PC_REG sh_regs.pc +#define ARCH_SP_REG sh_regs.regs[15] diff --git a/linux/sh/get_error.c b/linux/sh/get_error.c index 9319c612..01095761 100644 --- a/linux/sh/get_error.c +++ b/linux/sh/get_error.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -10,10 +10,10 @@ static void arch_get_error(struct tcb *tcp, const bool check_errno) { - if (check_errno && is_negated_errno(sh_r0)) { + if (check_errno && is_negated_errno(sh_regs.regs[0])) { tcp->u_rval = -1; - tcp->u_error = -sh_r0; + tcp->u_error = -sh_regs.regs[0]; } else { - tcp->u_rval = sh_r0; + tcp->u_rval = sh_regs.regs[0]; } } diff --git a/linux/sh/get_scno.c b/linux/sh/get_scno.c index b23824d5..7dd26bf0 100644 --- a/linux/sh/get_scno.c +++ b/linux/sh/get_scno.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -9,26 +9,6 @@ static int arch_get_scno(struct tcb *tcp) { - kernel_ulong_t scno = 0; - - /* - * In the new syscall ABI, the system call number is in R3. - */ - if (upeek(tcp, 4*(REG_REG0+3), &scno) < 0) - return -1; - - if ((long) scno < 0) { - /* Odd as it may seem, a glibc bug has been known to cause - glibc to issue bogus negative syscall numbers. So for - our purposes, make strace print what it *should* have been */ - kernel_ulong_t correct_scno = (scno & 0xff); - if (debug_flag) - error_msg("Detected glibc bug: bogus system call" - " number = %ld, correcting to %ld", - scno, correct_scno); - scno = correct_scno; - } - - tcp->scno = scno; + tcp->scno = sh_regs.regs[3]; return 1; } diff --git a/linux/sh/get_syscall_args.c b/linux/sh/get_syscall_args.c index 4156baa8..3b9391e8 100644 --- a/linux/sh/get_syscall_args.c +++ b/linux/sh/get_syscall_args.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2019 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -9,18 +9,9 @@ static int arch_get_syscall_args(struct tcb *tcp) { - static const int syscall_regs[MAX_ARGS] = { - 4 * (REG_REG0+4), - 4 * (REG_REG0+5), - 4 * (REG_REG0+6), - 4 * (REG_REG0+7), - 4 * (REG_REG0 ), - 4 * (REG_REG0+1) - }; - unsigned int i; + static const unsigned int syscall_regs[MAX_ARGS] = { 4, 5, 6, 7, 0, 1 }; - for (i = 0; i < n_args(tcp); ++i) - if (upeek(tcp, syscall_regs[i], &tcp->u_arg[i]) < 0) - return -1; + for (unsigned int i = 0; i < n_args(tcp); ++i) + tcp->u_arg[i] = sh_regs.regs[syscall_regs[i]]; return 1; } diff --git a/linux/sh/get_syscall_result.c b/linux/sh/get_syscall_result.c deleted file mode 100644 index a8d6bc49..00000000 --- a/linux/sh/get_syscall_result.c +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright (c) 2015-2018 The strace developers. - * All rights reserved. - * - * SPDX-License-Identifier: LGPL-2.1-or-later - */ - -static int -get_syscall_result_regs(struct tcb *tcp) -{ - /* new syscall ABI returns result in R0 */ - return upeek(tcp, 4 * REG_REG0, &sh_r0) < 0 ? -1 : 0; -} diff --git a/linux/sh/set_error.c b/linux/sh/set_error.c index ef51a5c4..28ed085f 100644 --- a/linux/sh/set_error.c +++ b/linux/sh/set_error.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -8,13 +8,13 @@ static int arch_set_error(struct tcb *tcp) { - sh_r0 = -tcp->u_error; - return upoke(tcp, 4 * REG_REG0, sh_r0); + sh_regs.regs[0] = -tcp->u_error; + return set_regs(tcp->pid); } static int arch_set_success(struct tcb *tcp) { - sh_r0 = tcp->u_rval; - return upoke(tcp, 4 * REG_REG0, sh_r0); + sh_regs.regs[0] = tcp->u_rval; + return set_regs(tcp->pid); } diff --git a/linux/sh/set_scno.c b/linux/sh/set_scno.c index 2f0b7703..fc2a01d7 100644 --- a/linux/sh/set_scno.c +++ b/linux/sh/set_scno.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -8,5 +8,8 @@ static int arch_set_scno(struct tcb *tcp, kernel_ulong_t scno) { - return upoke(tcp, 4 * (REG_REG0 + 3), scno); + if (ptrace_syscall_info_is_valid() && get_regs(tcp) < 0) + return -1; + sh_regs.regs[3] = scno; + return set_regs(tcp->pid); } diff --git a/linux/sh/syscallent.h b/linux/sh/syscallent.h index 44cc9d90..5349f720 100644 --- a/linux/sh/syscallent.h +++ b/linux/sh/syscallent.h @@ -3,7 +3,7 @@ * Copyright (c) 1993, 1994, 1995 Rick Sladkey * Copyright (c) 2000 PocketPenguins Inc. Linux for Hitachi SuperH * port by Greg Banks - * Copyright (c) 2000-2019 The strace developers. + * Copyright (c) 2000-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -20,9 +20,9 @@ [ 8] = { 2, TD|TF, SEN(creat), "creat" }, [ 9] = { 2, TF, SEN(link), "link" }, [ 10] = { 1, TF, SEN(unlink), "unlink" }, -[ 11] = { 3, TF|TP|SE|SI, SEN(execve), "execve" }, +[ 11] = { 3, TF|TP|TSD|SE|SI, SEN(execve), "execve" }, [ 12] = { 1, TF, SEN(chdir), "chdir" }, -[ 13] = { 1, 0, SEN(time), "time" }, +[ 13] = { 1, TCL, SEN(time), "time" }, [ 14] = { 3, TF, SEN(mknod), "mknod" }, [ 15] = { 2, TF, SEN(chmod), "chmod" }, [ 16] = { 3, TF, SEN(chown16), "lchown" }, @@ -32,8 +32,8 @@ [ 20] = { 0, PU|NF, SEN(getpid), "getpid" }, [ 21] = { 5, TF, SEN(mount), "mount" }, [ 22] = { 1, TF, SEN(umount), "umount" }, -[ 23] = { 1, 0, SEN(setuid16), "setuid" }, -[ 24] = { 0, PU|NF, SEN(getuid16), "getuid" }, +[ 23] = { 1, TC, SEN(setuid16), "setuid" }, +[ 24] = { 0, TC|PU|NF, SEN(getuid16), "getuid" }, [ 25] = { 1, 0, SEN(stime), "stime" }, [ 26] = { 4, 0, SEN(ptrace), "ptrace" }, [ 27] = { 1, 0, SEN(alarm), "alarm" }, @@ -46,7 +46,7 @@ [ 34] = { 1, 0, SEN(nice), "nice" }, [ 35] = { 0, 0, SEN(ftime), "ftime" }, [ 36] = { 0, 0, SEN(sync), "sync" }, -[ 37] = { 2, TS, SEN(kill), "kill" }, +[ 37] = { 2, TS|TP, SEN(kill), "kill" }, [ 38] = { 2, TF, SEN(rename), "rename" }, [ 39] = { 2, TF, SEN(mkdir), "mkdir" }, [ 40] = { 1, TF, SEN(rmdir), "rmdir" }, @@ -55,11 +55,11 @@ [ 43] = { 1, 0, SEN(times), "times" }, [ 44] = { 0, 0, SEN(prof), "prof" }, [ 45] = { 1, TM|SI, SEN(brk), "brk" }, -[ 46] = { 1, 0, SEN(setgid16), "setgid" }, -[ 47] = { 0, PU|NF, SEN(getgid16), "getgid" }, +[ 46] = { 1, TC, SEN(setgid16), "setgid" }, +[ 47] = { 0, TC|PU|NF, SEN(getgid16), "getgid" }, [ 48] = { 2, TS, SEN(signal), "signal" }, -[ 49] = { 0, PU|NF, SEN(geteuid16), "geteuid" }, -[ 50] = { 0, PU|NF, SEN(getegid16), "getegid" }, +[ 49] = { 0, TC|PU|NF, SEN(geteuid16), "geteuid" }, +[ 50] = { 0, TC|PU|NF, SEN(getegid16), "getegid" }, [ 51] = { 1, TF, SEN(acct), "acct" }, [ 52] = { 2, TF, SEN(umount2), "umount2" }, [ 53] = { 0, 0, SEN(lock), "lock" }, @@ -79,18 +79,18 @@ [ 67] = { 3, TS, SEN(sigaction), "sigaction" }, [ 68] = { 0, TS, SEN(sgetmask), "sgetmask" }, [ 69] = { 1, TS, SEN(ssetmask), "ssetmask" }, -[ 70] = { 2, 0, SEN(setreuid16), "setreuid" }, -[ 71] = { 2, 0, SEN(setregid16), "setregid" }, +[ 70] = { 2, TC, SEN(setreuid16), "setreuid" }, +[ 71] = { 2, TC, SEN(setregid16), "setregid" }, [ 72] = { 1, TS, SEN(sigsuspend), "sigsuspend" }, [ 73] = { 1, TS, SEN(sigpending), "sigpending" }, [ 74] = { 2, 0, SEN(sethostname), "sethostname" }, [ 75] = { 2, 0, SEN(setrlimit), "setrlimit" }, [ 76] = { 2, 0, SEN(getrlimit), "getrlimit" }, [ 77] = { 2, 0, SEN(getrusage), "getrusage" }, -[ 78] = { 2, 0, SEN(gettimeofday), "gettimeofday" }, -[ 79] = { 2, 0, SEN(settimeofday), "settimeofday" }, -[ 80] = { 2, 0, SEN(getgroups16), "getgroups" }, -[ 81] = { 2, 0, SEN(setgroups16), "setgroups" }, +[ 78] = { 2, TCL, SEN(gettimeofday), "gettimeofday" }, +[ 79] = { 2, TCL, SEN(settimeofday), "settimeofday" }, +[ 80] = { 2, TC, SEN(getgroups16), "getgroups" }, +[ 81] = { 2, TC, SEN(setgroups16), "setgroups" }, [ 82] = { 1, TD, SEN(oldselect), "select" }, [ 83] = { 2, TF, SEN(symlink), "symlink" }, [ 84] = { 2, TF|TLST|TSTA, SEN(oldlstat), "oldlstat" }, @@ -111,7 +111,7 @@ [ 99] = { 2, TF|TSF|TSFA, SEN(statfs), "statfs" }, [100] = { 2, TD|TFSF|TSFA, SEN(fstatfs), "fstatfs" }, [101] = { 3, 0, SEN(ioperm), "ioperm" }, -[102] = { 2, TD, SEN(socketcall), "socketcall" }, +[102] = { 2, TD|TSD, SEN(socketcall), "socketcall" }, [103] = { 3, 0, SEN(syslog), "syslog" }, [104] = { 3, 0, SEN(setitimer), "setitimer" }, [105] = { 2, 0, SEN(getitimer), "getitimer" }, @@ -126,14 +126,14 @@ [114] = { 4, TP, SEN(wait4), "wait4" }, [115] = { 1, TF, SEN(swapoff), "swapoff" }, [116] = { 1, 0, SEN(sysinfo), "sysinfo" }, -[117] = { 6, TI, SEN(ipc), "ipc" }, +[117] = { 6, TI|TSD, SEN(ipc), "ipc" }, [118] = { 1, TD, SEN(fsync), "fsync" }, [119] = { 0, TS, SEN(sigreturn), "sigreturn" }, [120] = { 5, TP, SEN(clone), "clone" }, [121] = { 2, 0, SEN(setdomainname), "setdomainname" }, [122] = { 1, 0, SEN(uname), "uname" }, [123] = { 3, 0, SEN(cacheflush), "cacheflush" }, -[124] = { 1, 0, SEN(adjtimex32), "adjtimex" }, +[124] = { 1, TCL, SEN(adjtimex32), "adjtimex" }, [125] = { 3, TM|SI, SEN(mprotect), "mprotect" }, [126] = { 3, TS, SEN(sigprocmask), "sigprocmask" }, [127] = { 2, 0, SEN(create_module), "create_module" }, @@ -147,8 +147,8 @@ [135] = { 3, 0, SEN(sysfs), "sysfs" }, [136] = { 1, NF, SEN(personality), "personality" }, [137] = { 5, 0, SEN(afs_syscall), "afs_syscall" }, -[138] = { 1, NF, SEN(setfsuid16), "setfsuid" }, -[139] = { 1, NF, SEN(setfsgid16), "setfsgid" }, +[138] = { 1, TC|NF, SEN(setfsuid16), "setfsuid" }, +[139] = { 1, TC|NF, SEN(setfsgid16), "setfsgid" }, [140] = { 5, TD, SEN(llseek), "_llseek" }, [141] = { 3, TD, SEN(getdents), "getdents" }, [142] = { 5, TD, SEN(select), "_newselect" }, @@ -173,28 +173,28 @@ [161] = { 2, 0, SEN(sched_rr_get_interval_time32),"sched_rr_get_interval"}, [162] = { 2, 0, SEN(nanosleep_time32), "nanosleep" }, [163] = { 5, TM|SI, SEN(mremap), "mremap" }, -[164] = { 3, 0, SEN(setresuid16), "setresuid" }, -[165] = { 3, 0, SEN(getresuid16), "getresuid" }, +[164] = { 3, TC, SEN(setresuid16), "setresuid" }, +[165] = { 3, TC, SEN(getresuid16), "getresuid" }, [166] = { 5, 0, SEN(vm86), "vm86" }, [167] = { 5, 0, SEN(query_module), "query_module" }, [168] = { 3, TD, SEN(poll_time32), "poll" }, [169] = { 3, 0, SEN(nfsservctl), "nfsservctl" }, -[170] = { 3, 0, SEN(setresgid16), "setresgid" }, -[171] = { 3, 0, SEN(getresgid16), "getresgid" }, -[172] = { 5, 0, SEN(prctl), "prctl" }, +[170] = { 3, TC, SEN(setresgid16), "setresgid" }, +[171] = { 3, TC, SEN(getresgid16), "getresgid" }, +[172] = { 5, TC, SEN(prctl), "prctl" }, [173] = { 0, TS, SEN(rt_sigreturn), "rt_sigreturn" }, [174] = { 4, TS, SEN(rt_sigaction), "rt_sigaction" }, [175] = { 4, TS, SEN(rt_sigprocmask), "rt_sigprocmask" }, [176] = { 2, TS, SEN(rt_sigpending), "rt_sigpending" }, [177] = { 4, TS, SEN(rt_sigtimedwait_time32), "rt_sigtimedwait" }, -[178] = { 3, TS, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, +[178] = { 3, TS|TP, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, [179] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" }, [180] = { 6, TD, SEN(pread), "pread64" }, [181] = { 6, TD, SEN(pwrite), "pwrite64" }, [182] = { 3, TF, SEN(chown16), "chown" }, [183] = { 2, TF, SEN(getcwd), "getcwd" }, -[184] = { 2, 0, SEN(capget), "capget" }, -[185] = { 2, 0, SEN(capset), "capset" }, +[184] = { 2, TC, SEN(capget), "capget" }, +[185] = { 2, TC, SEN(capset), "capset" }, [186] = { 2, TS, SEN(sigaltstack), "sigaltstack" }, [187] = { 4, TD|TN, SEN(sendfile), "sendfile" }, [188 ... 189] = { }, @@ -207,24 +207,24 @@ [196] = { 2, TF|TLST|TSTA, SEN(lstat64), "lstat64" }, [197] = { 2, TD|TFST|TSTA, SEN(fstat64), "fstat64" }, [198] = { 3, TF, SEN(chown), "lchown32" }, -[199] = { 0, PU|NF, SEN(getuid), "getuid32" }, -[200] = { 0, PU|NF, SEN(getgid), "getgid32" }, -[201] = { 0, PU|NF, SEN(geteuid), "geteuid32" }, -[202] = { 0, PU|NF, SEN(getegid), "getegid32" }, -[203] = { 2, 0, SEN(setreuid), "setreuid32" }, -[204] = { 2, 0, SEN(setregid), "setregid32" }, -[205] = { 2, 0, SEN(getgroups), "getgroups32" }, -[206] = { 2, 0, SEN(setgroups), "setgroups32" }, +[199] = { 0, TC|PU|NF, SEN(getuid), "getuid32" }, +[200] = { 0, TC|PU|NF, SEN(getgid), "getgid32" }, +[201] = { 0, TC|PU|NF, SEN(geteuid), "geteuid32" }, +[202] = { 0, TC|PU|NF, SEN(getegid), "getegid32" }, +[203] = { 2, TC, SEN(setreuid), "setreuid32" }, +[204] = { 2, TC, SEN(setregid), "setregid32" }, +[205] = { 2, TC, SEN(getgroups), "getgroups32" }, +[206] = { 2, TC, SEN(setgroups), "setgroups32" }, [207] = { 3, TD, SEN(fchown), "fchown32" }, -[208] = { 3, 0, SEN(setresuid), "setresuid32" }, -[209] = { 3, 0, SEN(getresuid), "getresuid32" }, -[210] = { 3, 0, SEN(setresgid), "setresgid32" }, -[211] = { 3, 0, SEN(getresgid), "getresgid32" }, +[208] = { 3, TC, SEN(setresuid), "setresuid32" }, +[209] = { 3, TC, SEN(getresuid), "getresuid32" }, +[210] = { 3, TC, SEN(setresgid), "setresgid32" }, +[211] = { 3, TC, SEN(getresgid), "getresgid32" }, [212] = { 3, TF, SEN(chown), "chown32" }, -[213] = { 1, 0, SEN(setuid), "setuid32" }, -[214] = { 1, 0, SEN(setgid), "setgid32" }, -[215] = { 1, NF, SEN(setfsuid), "setfsuid32" }, -[216] = { 1, NF, SEN(setfsgid), "setfsgid32" }, +[213] = { 1, TC, SEN(setuid), "setuid32" }, +[214] = { 1, TC, SEN(setgid), "setgid32" }, +[215] = { 1, TC|NF, SEN(setfsuid), "setfsuid32" }, +[216] = { 1, TC|NF, SEN(setfsgid), "setfsgid32" }, [217] = { 2, TF, SEN(pivotroot), "pivot_root" }, [218] = { 3, TM, SEN(mincore), "mincore" }, [219] = { 3, TM, SEN(madvise), "madvise" }, @@ -245,7 +245,7 @@ [235] = { 2, TF, SEN(removexattr), "removexattr" }, [236] = { 2, TF, SEN(removexattr), "lremovexattr" }, [237] = { 2, TD, SEN(fremovexattr), "fremovexattr" }, -[238] = { 2, TS, SEN(kill), "tkill" }, +[238] = { 2, TS|TP, SEN(tkill), "tkill" }, [239] = { 4, TD|TN, SEN(sendfile64), "sendfile64" }, [240] = { 6, 0, SEN(futex_time32), "futex" }, [241] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" }, @@ -270,13 +270,13 @@ [261] = { 2, 0, SEN(timer_gettime32), "timer_gettime" }, [262] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" }, [263] = { 1, 0, SEN(timer_delete), "timer_delete" }, -[264] = { 2, 0, SEN(clock_settime32), "clock_settime" }, -[265] = { 2, 0, SEN(clock_gettime32), "clock_gettime" }, -[266] = { 2, 0, SEN(clock_getres_time32), "clock_getres" }, +[264] = { 2, TCL, SEN(clock_settime32), "clock_settime" }, +[265] = { 2, TCL, SEN(clock_gettime32), "clock_gettime" }, +[266] = { 2, TCL, SEN(clock_getres_time32), "clock_getres" }, [267] = { 4, 0, SEN(clock_nanosleep_time32), "clock_nanosleep" }, [268] = { 3, TF|TSF|TSFA, SEN(statfs64), "statfs64" }, [269] = { 3, TD|TFSF|TSFA, SEN(fstatfs64), "fstatfs64" }, -[270] = { 3, TS, SEN(tgkill), "tgkill" }, +[270] = { 3, TS|TP, SEN(tgkill), "tgkill" }, [271] = { 2, TF, SEN(utimes), "utimes" }, [272] = { 6, TD, SEN(fadvise64_64), "fadvise64_64" }, [273] = { }, @@ -316,7 +316,7 @@ [307] = { 3, TD|TF, SEN(faccessat), "faccessat" }, [308] = { 6, TD, SEN(pselect6_time32), "pselect6" }, [309] = { 5, TD, SEN(ppoll_time32), "ppoll" }, -[310] = { 1, TP, SEN(unshare), "unshare" }, +[310] = { 1, 0, SEN(unshare), "unshare" }, [311] = { 2, 0, SEN(set_robust_list), "set_robust_list" }, [312] = { 3, 0, SEN(get_robust_list), "get_robust_list" }, [313] = { 6, TD, SEN(splice), "splice" }, @@ -367,7 +367,7 @@ [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_adjtime32), "clock_adjtime" }, +[361] = { 2, TCL, SEN(clock_adjtime32), "clock_adjtime" }, [362] = { 1, TD, SEN(syncfs), "syncfs" }, [363] = { 4, TN, SEN(sendmmsg), "sendmmsg" }, [364] = { 2, TD, SEN(setns), "setns" }, @@ -382,14 +382,14 @@ [373] = { 3, 0, SEN(getrandom), "getrandom" }, [374] = { 2, TD, SEN(memfd_create), "memfd_create" }, [375] = { 3, TD, SEN(bpf), "bpf" }, -[376] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat" }, +[376] = { 5, TD|TF|TP|TSD|SE|SI, SEN(execveat), "execveat" }, [377] = { 1, TD, SEN(userfaultfd), "userfaultfd" }, [378] = { 2, 0, SEN(membarrier), "membarrier" }, [379] = { 3, TM, SEN(mlock2), "mlock2" }, [380] = { 6, TD, SEN(copy_file_range), "copy_file_range" }, [381] = { 6, TD, SEN(preadv2), "preadv2" }, [382] = { 6, TD, SEN(pwritev2), "pwritev2" }, -[383] = { 5, TD|TF|TSTA, SEN(statx), "statx" }, +[383] = { 5, TD|TF|TFST|TSTA,SEN(statx), "statx" }, [384] = { 4, TM|SI, SEN(pkey_mprotect), "pkey_mprotect" }, [385] = { 2, 0, SEN(pkey_alloc), "pkey_alloc" }, [386] = { 1, 0, SEN(pkey_free), "pkey_free" }, @@ -405,30 +405,8 @@ [400] = { 4, TI, SEN(msgsnd), "msgsnd" }, [401] = { 5, TI, SEN(msgrcv), "msgrcv" }, [402] = { 3, TI, SEN(msgctl), "msgctl" }, -[403] = { 2, 0, SEN(clock_gettime64), "clock_gettime64" }, -[404] = { 2, 0, SEN(clock_settime64), "clock_settime64" }, -[405] = { 2, 0, SEN(clock_adjtime64), "clock_adjtime64" }, -[406] = { 2, 0, SEN(clock_getres_time64), "clock_getres_time64" }, -[407] = { 4, 0, SEN(clock_nanosleep_time64), "clock_nanosleep_time64"}, -[408] = { 2, 0, SEN(timer_gettime64), "timer_gettime64" }, -[409] = { 4, 0, SEN(timer_settime64), "timer_settime64" }, -[410] = { 2, TD, SEN(timerfd_gettime64), "timerfd_gettime64" }, -[411] = { 4, TD, SEN(timerfd_settime64), "timerfd_settime64" }, -[412] = { 4, TD|TF, SEN(utimensat_time64), "utimensat_time64" }, -[413] = { 6, TD, SEN(pselect6_time64), "pselect6_time64" }, -[414] = { 5, TD, SEN(ppoll_time64), "ppoll_time64" }, -[416] = { 6, 0, SEN(io_pgetevents_time64), "io_pgetevents_time64" }, -[417] = { 5, TN, SEN(recvmmsg_time64), "recvmmsg_time64" }, -[418] = { 5, TD, SEN(mq_timedsend_time64), "mq_timedsend_time64" }, -[419] = { 5, TD, SEN(mq_timedreceive_time64), "mq_timedreceive_time64"}, -[420] = { 4, TI, SEN(semtimedop_time64), "semtimedop_time64" }, -[421] = { 4, TS, SEN(rt_sigtimedwait_time64), "rt_sigtimedwait_time64"}, -[422] = { 6, 0, SEN(futex_time64), "futex_time64" }, -[423] = { 2, 0, SEN(sched_rr_get_interval_time64), "sched_rr_get_interval_time64" }, -[424] = { 4, TD|TS, SEN(pidfd_send_signal), "pidfd_send_signal" }, -[425] = { 2, TD, SEN(io_uring_setup), "io_uring_setup" }, -[426] = { 6, TD|TS, SEN(io_uring_enter), "io_uring_enter" }, -[427] = { 4, TD|TM, SEN(io_uring_register), "io_uring_register" }, +#include "syscallent-common-32.h" +#include "syscallent-common.h" #define SYS_socket_subcall 500 #include "subcall32.h" diff --git a/linux/sh64/arch_regs.c b/linux/sh64/arch_regs.c index 9b3d4eb3..4bd08b6d 100644 --- a/linux/sh64/arch_regs.c +++ b/linux/sh64/arch_regs.c @@ -1,10 +1,11 @@ /* - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ -static unsigned long sh64_r9; -#define ARCH_PC_PEEK_ADDR REG_PC -#define ARCH_SP_PEEK_ADDR REG_GENERAL(15) +static struct pt_regs sh64_regs; +#define ARCH_REGS_FOR_GETREGS sh64_regs +#define ARCH_PC_REG sh64_regs.pc +#define ARCH_SP_REG sh64_regs.regs[15] diff --git a/linux/sh64/arch_regs.h b/linux/sh64/arch_regs.h deleted file mode 100644 index 5bf759d6..00000000 --- a/linux/sh64/arch_regs.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (c) 2015-2018 The strace developers. - * All rights reserved. - * - * SPDX-License-Identifier: LGPL-2.1-or-later - */ - -/* SH64 Linux - this code assumes the following kernel API for system calls: - PC Offset 0 - System Call Offset 16 (actually, (syscall no.) | (0x1n << 16), - where n = no. of parameters. - Other regs Offset 24+ - - On entry: R2-7 = parameters 1-6 (as many as necessary) - On return: R9 = result. -*/ - -/* Offset for peeks of registers */ -#define REG_OFFSET (24) -#define REG_GENERAL(x) (8*(x)+REG_OFFSET) -#define REG_PC (0*8) -#define REG_SYSCALL (2*8) diff --git a/linux/sh64/get_error.c b/linux/sh64/get_error.c index 795031c9..44242299 100644 --- a/linux/sh64/get_error.c +++ b/linux/sh64/get_error.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -10,10 +10,10 @@ static void arch_get_error(struct tcb *tcp, const bool check_errno) { - if (check_errno && is_negated_errno(sh64_r9)) { + if (check_errno && is_negated_errno(sh64_regs.regs[9])) { tcp->u_rval = -1; - tcp->u_error = -sh64_r9; + tcp->u_error = -sh64_regs.regs[9]; } else { - tcp->u_rval = sh64_r9; + tcp->u_rval = sh64_regs.regs[9]; } } diff --git a/linux/sh64/get_scno.c b/linux/sh64/get_scno.c index c85786bd..c769dce4 100644 --- a/linux/sh64/get_scno.c +++ b/linux/sh64/get_scno.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -9,8 +9,6 @@ static int arch_get_scno(struct tcb *tcp) { - if (upeek(tcp, REG_SYSCALL, &tcp->scno) < 0) - return -1; - tcp->scno &= 0xffff; + tcp->scno = sh64_regs.regs[9]; return 1; } diff --git a/linux/sh64/get_syscall_args.c b/linux/sh64/get_syscall_args.c index 4b53e20e..8dd38b0b 100644 --- a/linux/sh64/get_syscall_args.c +++ b/linux/sh64/get_syscall_args.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2019 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -9,13 +9,7 @@ static int arch_get_syscall_args(struct tcb *tcp) { - /* Registers used by SH5 Linux system calls for parameters */ - static const int syscall_regs[MAX_ARGS] = { 2, 3, 4, 5, 6, 7 }; - unsigned int i; - - for (i = 0; i < n_args(tcp); ++i) - if (upeek(tcp, REG_GENERAL(syscall_regs[i]), - &tcp->u_arg[i]) < 0) - return -1; + for (unsigned int i = 0; i < n_args(tcp); ++i) + tcp->u_arg[i] = sh64_regs.regs[i + 2]; return 1; } diff --git a/linux/sh64/get_syscall_result.c b/linux/sh64/get_syscall_result.c deleted file mode 100644 index 1183f687..00000000 --- a/linux/sh64/get_syscall_result.c +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright (c) 2015-2018 The strace developers. - * All rights reserved. - * - * SPDX-License-Identifier: LGPL-2.1-or-later - */ - -static int -get_syscall_result_regs(struct tcb *tcp) -{ - /* ABI defines result returned in r9 */ - return upeek(tcp, REG_GENERAL(9), &sh64_r9) < 0 ? -1 : 0; -} diff --git a/linux/sh64/set_error.c b/linux/sh64/set_error.c index 4a983571..91da7772 100644 --- a/linux/sh64/set_error.c +++ b/linux/sh64/set_error.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -8,13 +8,13 @@ static int arch_set_error(struct tcb *tcp) { - sh64_r9 = -tcp->u_error; - return upoke(tcp, REG_GENERAL(9), sh64_r9); + sh64_regs.regs[9] = -tcp->u_error; + return set_regs(tcp->pid); } static int arch_set_success(struct tcb *tcp) { - sh64_r9 = tcp->u_rval; - return upoke(tcp, REG_GENERAL(9), sh64_r9); + sh64_regs.regs[9] = tcp->u_rval; + return set_regs(tcp->pid); } diff --git a/linux/sh64/set_scno.c b/linux/sh64/set_scno.c index f7e0fdfa..79d7213b 100644 --- a/linux/sh64/set_scno.c +++ b/linux/sh64/set_scno.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -8,5 +8,8 @@ static int arch_set_scno(struct tcb *tcp, kernel_ulong_t scno) { - return upoke(tcp, REG_SYSCALL, scno); + if (ptrace_syscall_info_is_valid() && get_regs(tcp) < 0) + return -1; + sh64_regs.regs[9] = scno; + return set_regs(tcp->pid); } diff --git a/linux/sh64/syscallent.h b/linux/sh64/syscallent.h index a21b0c47..4ec35d31 100644 --- a/linux/sh64/syscallent.h +++ b/linux/sh64/syscallent.h @@ -1,7 +1,7 @@ /* * Copyright (c) 1993 Branko Lankester * Copyright (c) 1993, 1994, 1995 Rick Sladkey - * Copyright (c) 1995-2019 The strace developers. + * Copyright (c) 1995-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -18,9 +18,9 @@ [ 8] = { 2, TD|TF, SEN(creat), "creat" }, [ 9] = { 2, TF, SEN(link), "link" }, [ 10] = { 1, TF, SEN(unlink), "unlink" }, -[ 11] = { 3, TF|TP|SE|SI, SEN(execve), "execve" }, +[ 11] = { 3, TF|TP|TSD|SE|SI, SEN(execve), "execve" }, [ 12] = { 1, TF, SEN(chdir), "chdir" }, -[ 13] = { 1, 0, SEN(time), "time" }, +[ 13] = { 1, TCL, SEN(time), "time" }, [ 14] = { 3, TF, SEN(mknod), "mknod" }, [ 15] = { 2, TF, SEN(chmod), "chmod" }, [ 16] = { 3, TF, SEN(chown16), "lchown" }, @@ -30,8 +30,8 @@ [ 20] = { 0, PU|NF, SEN(getpid), "getpid" }, [ 21] = { 5, TF, SEN(mount), "mount" }, [ 22] = { 1, TF, SEN(umount), "umount" }, -[ 23] = { 1, 0, SEN(setuid16), "setuid" }, -[ 24] = { 0, PU|NF, SEN(getuid16), "getuid" }, +[ 23] = { 1, TC, SEN(setuid16), "setuid" }, +[ 24] = { 0, TC|PU|NF, SEN(getuid16), "getuid" }, [ 25] = { 1, 0, SEN(stime), "stime" }, [ 26] = { 4, 0, SEN(ptrace), "ptrace" }, [ 27] = { 1, 0, SEN(alarm), "alarm" }, @@ -44,7 +44,7 @@ [ 34] = { 1, 0, SEN(nice), "nice" }, [ 35] = { 0, 0, SEN(ftime), "ftime" }, [ 36] = { 0, 0, SEN(sync), "sync" }, -[ 37] = { 2, TS, SEN(kill), "kill" }, +[ 37] = { 2, TS|TP, SEN(kill), "kill" }, [ 38] = { 2, TF, SEN(rename), "rename" }, [ 39] = { 2, TF, SEN(mkdir), "mkdir" }, [ 40] = { 1, TF, SEN(rmdir), "rmdir" }, @@ -53,11 +53,11 @@ [ 43] = { 1, 0, SEN(times), "times" }, [ 44] = { 0, 0, SEN(prof), "prof" }, [ 45] = { 1, TM|SI, SEN(brk), "brk" }, -[ 46] = { 1, 0, SEN(setgid16), "setgid" }, -[ 47] = { 0, PU|NF, SEN(getgid16), "getgid" }, +[ 46] = { 1, TC, SEN(setgid16), "setgid" }, +[ 47] = { 0, TC|PU|NF, SEN(getgid16), "getgid" }, [ 48] = { 2, TS, SEN(signal), "signal" }, -[ 49] = { 0, PU|NF, SEN(geteuid16), "geteuid" }, -[ 50] = { 0, PU|NF, SEN(getegid16), "getegid" }, +[ 49] = { 0, TC|PU|NF, SEN(geteuid16), "geteuid" }, +[ 50] = { 0, TC|PU|NF, SEN(getegid16), "getegid" }, [ 51] = { 1, TF, SEN(acct), "acct" }, [ 52] = { 2, TF, SEN(umount2), "umount2" }, [ 53] = { 0, 0, SEN(lock), "lock" }, @@ -77,18 +77,18 @@ [ 67] = { 3, TS, SEN(sigaction), "sigaction" }, [ 68] = { 0, TS, SEN(sgetmask), "sgetmask" }, [ 69] = { 1, TS, SEN(ssetmask), "ssetmask" }, -[ 70] = { 2, 0, SEN(setreuid16), "setreuid" }, -[ 71] = { 2, 0, SEN(setregid16), "setregid" }, +[ 70] = { 2, TC, SEN(setreuid16), "setreuid" }, +[ 71] = { 2, TC, SEN(setregid16), "setregid" }, [ 72] = { 1, TS, SEN(sigsuspend), "sigsuspend" }, [ 73] = { 1, TS, SEN(sigpending), "sigpending" }, [ 74] = { 2, 0, SEN(sethostname), "sethostname" }, [ 75] = { 2, 0, SEN(setrlimit), "setrlimit" }, [ 76] = { 2, 0, SEN(getrlimit), "getrlimit" }, [ 77] = { 2, 0, SEN(getrusage), "getrusage" }, -[ 78] = { 2, 0, SEN(gettimeofday), "gettimeofday" }, -[ 79] = { 2, 0, SEN(settimeofday), "settimeofday" }, -[ 80] = { 2, 0, SEN(getgroups16), "getgroups" }, -[ 81] = { 2, 0, SEN(setgroups16), "setgroups" }, +[ 78] = { 2, TCL, SEN(gettimeofday), "gettimeofday" }, +[ 79] = { 2, TCL, SEN(settimeofday), "settimeofday" }, +[ 80] = { 2, TC, SEN(getgroups16), "getgroups" }, +[ 81] = { 2, TC, SEN(setgroups16), "setgroups" }, [ 82] = { }, [ 83] = { 2, TF, SEN(symlink), "symlink" }, [ 84] = { 2, TF|TLST|TSTA, SEN(oldlstat), "oldlstat" }, @@ -109,7 +109,7 @@ [ 99] = { 2, TF|TSF|TSFA, SEN(statfs), "statfs" }, [100] = { 2, TD|TFSF|TSFA, SEN(fstatfs), "fstatfs" }, [101] = { 3, 0, SEN(ioperm), "ioperm" }, -[102] = { 2, TD, SEN(socketcall), "socketcall" }, +[102] = { 2, TD|TSD, SEN(socketcall), "socketcall" }, [103] = { 3, 0, SEN(syslog), "syslog" }, [104] = { 3, 0, SEN(setitimer), "setitimer" }, [105] = { 2, 0, SEN(getitimer), "getitimer" }, @@ -124,14 +124,14 @@ [114] = { 4, TP, SEN(wait4), "wait4" }, [115] = { 1, TF, SEN(swapoff), "swapoff" }, [116] = { 1, 0, SEN(sysinfo), "sysinfo" }, -[117] = { 6, TI, SEN(ipc), "ipc" }, +[117] = { 6, TI|TSD, SEN(ipc), "ipc" }, [118] = { 1, TD, SEN(fsync), "fsync" }, [119] = { 0, TS, SEN(sigreturn), "sigreturn" }, [120] = { 5, TP, SEN(clone), "clone" }, [121] = { 2, 0, SEN(setdomainname), "setdomainname" }, [122] = { 1, 0, SEN(uname), "uname" }, [123] = { 3, 0, SEN(printargs), "cacheflush" }, -[124] = { 1, 0, SEN(adjtimex64), "adjtimex" }, +[124] = { 1, TCL, SEN(adjtimex64), "adjtimex" }, [125] = { 3, TM|SI, SEN(mprotect), "mprotect" }, [126] = { 3, TS, SEN(sigprocmask), "sigprocmask" }, [127] = { 2, 0, SEN(create_module), "create_module" }, @@ -145,8 +145,8 @@ [135] = { 3, 0, SEN(sysfs), "sysfs" }, [136] = { 1, NF, SEN(personality), "personality" }, [137] = { 5, 0, SEN(afs_syscall), "afs_syscall" }, -[138] = { 1, NF, SEN(setfsuid16), "setfsuid" }, -[139] = { 1, NF, SEN(setfsgid16), "setfsgid" }, +[138] = { 1, TC|NF, SEN(setfsuid16), "setfsuid" }, +[139] = { 1, TC|NF, SEN(setfsgid16), "setfsgid" }, [140] = { 5, TD, SEN(llseek), "_llseek" }, [141] = { 3, TD, SEN(getdents), "getdents" }, [142] = { 5, TD, SEN(select), "_newselect" }, @@ -171,28 +171,28 @@ [161] = { 2, 0, SEN(sched_rr_get_interval_time64),"sched_rr_get_interval"}, [162] = { 2, 0, SEN(nanosleep_time64), "nanosleep" }, [163] = { 5, TM|SI, SEN(mremap), "mremap" }, -[164] = { 3, 0, SEN(setresuid16), "setresuid" }, -[165] = { 3, 0, SEN(getresuid16), "getresuid" }, +[164] = { 3, TC, SEN(setresuid16), "setresuid" }, +[165] = { 3, TC, SEN(getresuid16), "getresuid" }, [166] = { }, [167] = { 5, 0, SEN(query_module), "query_module" }, [168] = { 3, TD, SEN(poll_time64), "poll" }, [169] = { 3, 0, SEN(nfsservctl), "nfsservctl" }, -[170] = { 3, 0, SEN(setresgid16), "setresgid" }, -[171] = { 3, 0, SEN(getresgid16), "getresgid" }, -[172] = { 5, 0, SEN(prctl), "prctl" }, +[170] = { 3, TC, SEN(setresgid16), "setresgid" }, +[171] = { 3, TC, SEN(getresgid16), "getresgid" }, +[172] = { 5, TC, SEN(prctl), "prctl" }, [173] = { 0, TS, SEN(rt_sigreturn), "rt_sigreturn" }, [174] = { 4, TS, SEN(rt_sigaction), "rt_sigaction" }, [175] = { 4, TS, SEN(rt_sigprocmask), "rt_sigprocmask" }, [176] = { 2, TS, SEN(rt_sigpending), "rt_sigpending" }, [177] = { 4, TS, SEN(rt_sigtimedwait_time64), "rt_sigtimedwait" }, -[178] = { 3, TS, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, +[178] = { 3, TS|TP, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, [179] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" }, [180] = { 4, TD, SEN(pread), "pread64" }, [181] = { 4, TD, SEN(pwrite), "pwrite64" }, [182] = { 3, TF, SEN(chown16), "chown" }, [183] = { 2, TF, SEN(getcwd), "getcwd" }, -[184] = { 2, 0, SEN(capget), "capget" }, -[185] = { 2, 0, SEN(capset), "capset" }, +[184] = { 2, TC, SEN(capget), "capget" }, +[185] = { 2, TC, SEN(capset), "capset" }, [186] = { 2, TS, SEN(sigaltstack), "sigaltstack" }, [187] = { 4, TD|TN, SEN(sendfile), "sendfile" }, [188 ... 189] = { }, @@ -205,24 +205,24 @@ [196] = { 2, TF|TLST|TSTA, SEN(lstat64), "lstat64" }, [197] = { 2, TD|TFST|TSTA, SEN(fstat64), "fstat64" }, [198] = { 3, TF, SEN(chown), "lchown32" }, -[199] = { 0, PU|NF, SEN(getuid), "getuid32" }, -[200] = { 0, PU|NF, SEN(getgid), "getgid32" }, -[201] = { 0, PU|NF, SEN(geteuid), "geteuid32" }, -[202] = { 0, PU|NF, SEN(getegid), "getegid32" }, -[203] = { 2, 0, SEN(setreuid), "setreuid32" }, -[204] = { 2, 0, SEN(setregid), "setregid32" }, -[205] = { 2, 0, SEN(getgroups), "getgroups32" }, -[206] = { 2, 0, SEN(setgroups), "setgroups32" }, +[199] = { 0, TC|PU|NF, SEN(getuid), "getuid32" }, +[200] = { 0, TC|PU|NF, SEN(getgid), "getgid32" }, +[201] = { 0, TC|PU|NF, SEN(geteuid), "geteuid32" }, +[202] = { 0, TC|PU|NF, SEN(getegid), "getegid32" }, +[203] = { 2, TC, SEN(setreuid), "setreuid32" }, +[204] = { 2, TC, SEN(setregid), "setregid32" }, +[205] = { 2, TC, SEN(getgroups), "getgroups32" }, +[206] = { 2, TC, SEN(setgroups), "setgroups32" }, [207] = { 3, TD, SEN(fchown), "fchown32" }, -[208] = { 3, 0, SEN(setresuid), "setresuid32" }, -[209] = { 3, 0, SEN(getresuid), "getresuid32" }, -[210] = { 3, 0, SEN(setresgid), "setresgid32" }, -[211] = { 3, 0, SEN(getresgid), "getresgid32" }, +[208] = { 3, TC, SEN(setresuid), "setresuid32" }, +[209] = { 3, TC, SEN(getresuid), "getresuid32" }, +[210] = { 3, TC, SEN(setresgid), "setresgid32" }, +[211] = { 3, TC, SEN(getresgid), "getresgid32" }, [212] = { 3, TF, SEN(chown), "chown32" }, -[213] = { 1, 0, SEN(setuid), "setuid32" }, -[214] = { 1, 0, SEN(setgid), "setgid32" }, -[215] = { 1, NF, SEN(setfsuid), "setfsuid32" }, -[216] = { 1, NF, SEN(setfsgid), "setfsgid32" }, +[213] = { 1, TC, SEN(setuid), "setuid32" }, +[214] = { 1, TC, SEN(setgid), "setgid32" }, +[215] = { 1, TC|NF, SEN(setfsuid), "setfsuid32" }, +[216] = { 1, TC|NF, SEN(setfsgid), "setfsgid32" }, [217] = { 2, TF, SEN(pivotroot), "pivot_root" }, [218] = { 3, TM, SEN(mincore), "mincore" }, [219] = { 3, TM, SEN(madvise), "madvise" }, @@ -271,7 +271,7 @@ [263] = { 2, TF, SEN(removexattr), "removexattr" }, [264] = { 2, TF, SEN(removexattr), "lremovexattr" }, [265] = { 2, TD, SEN(fremovexattr), "fremovexattr" }, -[266] = { 2, TS, SEN(kill), "tkill" }, +[266] = { 2, TS|TP, SEN(tkill), "tkill" }, [267] = { 4, TD|TN, SEN(sendfile64), "sendfile64" }, [268] = { 6, 0, SEN(futex_time64), "futex" }, [269] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" }, @@ -296,13 +296,13 @@ [289] = { 2, 0, SEN(timer_gettime64), "timer_gettime" }, [290] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" }, [291] = { 1, 0, SEN(timer_delete), "timer_delete" }, -[292] = { 2, 0, SEN(clock_settime64), "clock_settime" }, -[293] = { 2, 0, SEN(clock_gettime64), "clock_gettime" }, -[294] = { 2, 0, SEN(clock_getres_time64), "clock_getres" }, +[292] = { 2, TCL, SEN(clock_settime64), "clock_settime" }, +[293] = { 2, TCL, SEN(clock_gettime64), "clock_gettime" }, +[294] = { 2, TCL, SEN(clock_getres_time64), "clock_getres" }, [295] = { 4, 0, SEN(clock_nanosleep_time64), "clock_nanosleep" }, [296] = { 3, TF|TSF|TSFA, SEN(statfs64), "statfs64" }, [297] = { 3, TD|TFSF|TSFA, SEN(fstatfs64), "fstatfs64" }, -[298] = { 3, TS, SEN(tgkill), "tgkill" }, +[298] = { 3, TS|TP, SEN(tgkill), "tgkill" }, [299] = { 2, TF, SEN(utimes), "utimes" }, [300] = { 4, TD, SEN(fadvise64_64), "fadvise64_64" }, [301] = { }, @@ -342,7 +342,7 @@ [335] = { 3, TD|TF, SEN(faccessat), "faccessat" }, [336] = { 6, TD, SEN(pselect6_time64), "pselect6" }, [337] = { 5, TD, SEN(ppoll_time64), "ppoll" }, -[338] = { 1, TP, SEN(unshare), "unshare" }, +[338] = { 1, 0, SEN(unshare), "unshare" }, [339] = { 2, 0, SEN(set_robust_list), "set_robust_list" }, [340] = { 3, 0, SEN(get_robust_list), "get_robust_list" }, [341] = { 6, TD, SEN(splice), "splice" }, @@ -376,7 +376,7 @@ [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_adjtime64), "clock_adjtime" }, +[372] = { 2, TCL, SEN(clock_adjtime64), "clock_adjtime" }, [373] = { 1, TD, SEN(syncfs), "syncfs" }, [374] = { 4, TN, SEN(sendmmsg), "sendmmsg" }, [375] = { 2, TD, SEN(setns), "setns" }, @@ -391,7 +391,7 @@ [384] = { 3, 0, SEN(getrandom), "getrandom" }, [385] = { 2, TD, SEN(memfd_create), "memfd_create" }, [386] = { 3, TD, SEN(bpf), "bpf" }, -[387] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat" }, +[387] = { 5, TD|TF|TP|TSD|SE|SI, SEN(execveat), "execveat" }, [388] = { 1, TD, SEN(userfaultfd), "userfaultfd" }, [389] = { 2, 0, SEN(membarrier), "membarrier" }, [390] = { 3, TM, SEN(mlock2), "mlock2" }, @@ -399,10 +399,7 @@ [392] = { 6, TD, SEN(preadv2), "preadv2" }, [393] = { 6, TD, SEN(pwritev2), "pwritev2" }, /* [403 ... 423] - reserved to sync up with other architectures */ -[424] = { 4, TD|TS, SEN(pidfd_send_signal), "pidfd_send_signal" }, -[425] = { 2, TD, SEN(io_uring_setup), "io_uring_setup" }, -[426] = { 6, TD|TS, SEN(io_uring_enter), "io_uring_enter" }, -[427] = { 4, TD|TM, SEN(io_uring_register), "io_uring_register" }, +#include "syscallent-common.h" #define SYS_socket_subcall 500 #include "subcall64.h" diff --git a/linux/smc_diag.h b/linux/smc_diag.h index c4f2088b..f4bdd793 100644 --- a/linux/smc_diag.h +++ b/linux/smc_diag.h @@ -23,7 +23,10 @@ struct smc_diag_req { struct smc_diag_msg { uint8_t diag_family; uint8_t diag_state; - uint8_t diag_fallback; + union { + uint8_t diag_fallback; + uint8_t diag_mode; + }; uint8_t diag_shutdown; struct inet_diag_sockid id; diff --git a/linux/sparc/arch_defs_.h b/linux/sparc/arch_defs_.h index 3549c95d..184d0010 100644 --- a/linux/sparc/arch_defs_.h +++ b/linux/sparc/arch_defs_.h @@ -1,10 +1,11 @@ /* - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ +#define ARCH_SIZEOF_STRUCT_MSQID64_DS 104 #define HAVE_ARCH_GETRVAL2 1 #define HAVE_ARCH_UID16_SYSCALLS 1 #define HAVE_ARCH_SA_RESTORER 1 diff --git a/linux/sparc/set_error.c b/linux/sparc/set_error.c index 7cffdd3f..767be69d 100644 --- a/linux/sparc/set_error.c +++ b/linux/sparc/set_error.c @@ -1,22 +1,28 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ static int -arch_set_error(struct tcb *tcp) +sparc_set_o0_psr(struct tcb *tcp, const unsigned long o0, + const unsigned long psr_set, const unsigned long psr_clear) { - sparc_regs.psr |= PSR_C; - sparc_regs.u_regs[U_REG_O0] = tcp->u_error; + sparc_regs.u_regs[U_REG_O0] = o0; + sparc_regs.psr |= psr_set; + sparc_regs.psr &= ~psr_clear; return set_regs(tcp->pid); } +static int +arch_set_error(struct tcb *tcp) +{ + return sparc_set_o0_psr(tcp, tcp->u_error, PSR_C, 0); +} + static int arch_set_success(struct tcb *tcp) { - sparc_regs.psr &= ~PSR_C; - sparc_regs.u_regs[U_REG_O0] = tcp->u_rval; - return set_regs(tcp->pid); + return sparc_set_o0_psr(tcp, tcp->u_rval, 0, PSR_C); } diff --git a/linux/sparc/set_scno.c b/linux/sparc/set_scno.c index 813fc3a0..b5ab93ca 100644 --- a/linux/sparc/set_scno.c +++ b/linux/sparc/set_scno.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -13,6 +13,8 @@ static int arch_set_scno(struct tcb *tcp, kernel_ulong_t scno) { + if (ptrace_syscall_info_is_valid() && get_regs(tcp) < 0) + return -1; sparc_regs.u_regs[U_REG_G1] = scno; return set_regs(tcp->pid); } diff --git a/linux/sparc/syscallent.h b/linux/sparc/syscallent.h index 706c15e6..a385368a 100644 --- a/linux/sparc/syscallent.h +++ b/linux/sparc/syscallent.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999-2019 The strace developers. + * Copyright (c) 1999-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -16,7 +16,7 @@ [ 8] = { 2, TD|TF, SEN(creat), "creat" }, [ 9] = { 2, TF, SEN(link), "link" }, [ 10] = { 1, TF, SEN(unlink), "unlink" }, -[ 11] = { 2, TF|TP|SE|SI, SEN(execv), "execv" }, +[ 11] = { 2, TF|TP|TSD|SE|SI, SEN(execv), "execv" }, [ 12] = { 1, TF, SEN(chdir), "chdir" }, [ 13] = { 3, TF, SEN(chown16), "chown" }, [ 14] = { 3, TF, SEN(mknod), "mknod" }, @@ -26,10 +26,10 @@ [ 18] = { 4, 0, SEN(printargs), "perfctr" }, [ 19] = { 3, TD, SEN(lseek), "lseek" }, [ 20] = { 0, PU|NF, SEN(getpid), "getpid" }, -[ 21] = { 2, 0, SEN(capget), "capget" }, -[ 22] = { 2, 0, SEN(capset), "capset" }, -[ 23] = { 1, 0, SEN(setuid16), "setuid" }, -[ 24] = { 0, PU|NF, SEN(getuid16), "getuid" }, +[ 21] = { 2, TC, SEN(capget), "capget" }, +[ 22] = { 2, TC, SEN(capset), "capset" }, +[ 23] = { 1, TC, SEN(setuid16), "setuid" }, +[ 24] = { 0, TC|PU|NF, SEN(getuid16), "getuid" }, [ 25] = { 4, TD, SEN(vmsplice), "vmsplice" }, [ 26] = { 4, 0, SEN(ptrace), "ptrace" }, [ 27] = { 1, 0, SEN(alarm), "alarm" }, @@ -42,29 +42,29 @@ [ 34] = { 1, 0, SEN(nice), "nice" }, [ 35] = { 3, TF, SEN(chown), "chown32" }, [ 36] = { 0, 0, SEN(sync), "sync" }, -[ 37] = { 2, TS, SEN(kill), "kill" }, +[ 37] = { 2, TS|TP, SEN(kill), "kill" }, [ 38] = { 2, TF|TST|TSTA, SEN(stat), "stat" }, [ 39] = { 4, TD|TN, SEN(sendfile), "sendfile" }, [ 40] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" }, [ 41] = { 1, TD, SEN(dup), "dup" }, [ 42] = { 0, TD, SEN(pipe), "pipe" }, [ 43] = { 1, 0, SEN(times), "times" }, -[ 44] = { 0, PU|NF, SEN(getuid), "getuid32" }, +[ 44] = { 0, TC|PU|NF, SEN(getuid), "getuid32" }, [ 45] = { 2, TF, SEN(umount2), "umount2" }, -[ 46] = { 1, 0, SEN(setgid16), "setgid" }, -[ 47] = { 0, PU|NF, SEN(getgid16), "getgid" }, +[ 46] = { 1, TC, SEN(setgid16), "setgid" }, +[ 47] = { 0, TC|PU|NF, SEN(getgid16), "getgid" }, [ 48] = { 2, TS, SEN(signal), "signal" }, -[ 49] = { 0, PU|NF, SEN(geteuid16), "geteuid" }, -[ 50] = { 0, PU|NF, SEN(getegid16), "getegid" }, +[ 49] = { 0, TC|PU|NF, SEN(geteuid16), "geteuid" }, +[ 50] = { 0, TC|PU|NF, SEN(getegid16), "getegid" }, [ 51] = { 1, TF, SEN(acct), "acct" }, [ 52] = { }, -[ 53] = { 0, PU|NF, SEN(getgid), "getgid32" }, +[ 53] = { 0, TC|PU|NF, SEN(getgid), "getgid32" }, [ 54] = { 3, TD, SEN(ioctl), "ioctl" }, [ 55] = { 4, 0, SEN(reboot), "reboot" }, [ 56] = { 6, TD|TM|SI, SEN(mmap_4koff), "mmap2" }, [ 57] = { 2, TF, SEN(symlink), "symlink" }, [ 58] = { 3, TF, SEN(readlink), "readlink" }, -[ 59] = { 3, TF|TP|SE|SI, SEN(execve), "execve" }, +[ 59] = { 3, TF|TP|TSD|SE|SI, SEN(execve), "execve" }, [ 60] = { 1, NF, SEN(umask), "umask" }, [ 61] = { 1, TF, SEN(chroot), "chroot" }, [ 62] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" }, @@ -74,32 +74,32 @@ [ 66] = { 0, TP, SEN(vfork), "vfork" }, [ 67] = { 5, TD, SEN(pread), "pread64" }, [ 68] = { 5, TD, SEN(pwrite), "pwrite64" }, -[ 69] = { 0, PU|NF, SEN(geteuid), "geteuid32" }, -[ 70] = { 0, PU|NF, SEN(getegid), "getegid32" }, +[ 69] = { 0, TC|PU|NF, SEN(geteuid), "geteuid32" }, +[ 70] = { 0, TC|PU|NF, SEN(getegid), "getegid32" }, [ 71] = { 6, TD|TM|SI, SEN(mmap), "mmap" }, -[ 72] = { 2, 0, SEN(setreuid), "setreuid32" }, +[ 72] = { 2, TC, SEN(setreuid), "setreuid32" }, [ 73] = { 2, TM|SI, SEN(munmap), "munmap" }, [ 74] = { 3, TM|SI, SEN(mprotect), "mprotect" }, [ 75] = { 3, TM, SEN(madvise), "madvise" }, [ 76] = { 0, 0, SEN(vhangup), "vhangup" }, [ 77] = { 3, TF, SEN(truncate64), "truncate64" }, [ 78] = { 3, TM, SEN(mincore), "mincore" }, -[ 79] = { 2, 0, SEN(getgroups16), "getgroups" }, -[ 80] = { 2, 0, SEN(setgroups16), "setgroups" }, +[ 79] = { 2, TC, SEN(getgroups16), "getgroups" }, +[ 80] = { 2, TC, SEN(setgroups16), "setgroups" }, [ 81] = { 0, PU|NF, SEN(getpgrp), "getpgrp" }, -[ 82] = { 2, 0, SEN(setgroups), "setgroups32" }, +[ 82] = { 2, TC, SEN(setgroups), "setgroups32" }, [ 83] = { 3, 0, SEN(setitimer), "setitimer" }, [ 84] = { 3, TD, SEN(ftruncate64), "ftruncate64" }, [ 85] = { 2, TF, SEN(swapon), "swapon" }, [ 86] = { 2, 0, SEN(getitimer), "getitimer" }, -[ 87] = { 1, 0, SEN(setuid), "setuid32" }, +[ 87] = { 1, TC, SEN(setuid), "setuid32" }, [ 88] = { 2, 0, SEN(sethostname), "sethostname" }, -[ 89] = { 1, 0, SEN(setgid), "setgid32" }, +[ 89] = { 1, TC, SEN(setgid), "setgid32" }, [ 90] = { 2, TD, SEN(dup2), "dup2" }, -[ 91] = { 1, NF, SEN(setfsuid), "setfsuid32" }, +[ 91] = { 1, TC|NF, SEN(setfsuid), "setfsuid32" }, [ 92] = { 3, TD, SEN(fcntl), "fcntl" }, [ 93] = { 5, TD, SEN(select), "select" }, -[ 94] = { 1, NF, SEN(setfsgid), "setfsgid32" }, +[ 94] = { 1, TC|NF, SEN(setfsgid), "setfsgid32" }, [ 95] = { 1, TD, SEN(fsync), "fsync" }, [ 96] = { 3, 0, SEN(setpriority), "setpriority" }, [ 97] = { 3, TN, SEN(socket), "socket" }, @@ -111,28 +111,28 @@ [103] = { 4, TS, SEN(rt_sigprocmask), "rt_sigprocmask" }, [104] = { 2, TS, SEN(rt_sigpending), "rt_sigpending" }, [105] = { 4, TS, SEN(rt_sigtimedwait_time32), "rt_sigtimedwait" }, -[106] = { 3, TS, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, +[106] = { 3, TS|TP, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, [107] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" }, -[108] = { 3, 0, SEN(setresuid), "setresuid32" }, -[109] = { 3, 0, SEN(getresuid), "getresuid32" }, -[110] = { 3, 0, SEN(setresgid), "setresgid32" }, -[111] = { 3, 0, SEN(getresgid), "getresgid32" }, -[112] = { 2, 0, SEN(setregid), "setregid32" }, +[108] = { 3, TC, SEN(setresuid), "setresuid32" }, +[109] = { 3, TC, SEN(getresuid), "getresuid32" }, +[110] = { 3, TC, SEN(setresgid), "setresgid32" }, +[111] = { 3, TC, SEN(getresgid), "getresgid32" }, +[112] = { 2, TC, SEN(setregid), "setregid32" }, [113] = { 3, TN, SEN(recvmsg), "recvmsg" }, [114] = { 3, TN, SEN(sendmsg), "sendmsg" }, -[115] = { 2, 0, SEN(getgroups), "getgroups32" }, -[116] = { 2, 0, SEN(gettimeofday), "gettimeofday" }, +[115] = { 2, TC, SEN(getgroups), "getgroups32" }, +[116] = { 2, TCL, SEN(gettimeofday), "gettimeofday" }, [117] = { 2, 0, SEN(getrusage), "getrusage" }, [118] = { 5, TN, SEN(getsockopt), "getsockopt" }, [119] = { 2, TF, SEN(getcwd), "getcwd" }, [120] = { 3, TD, SEN(readv), "readv" }, [121] = { 3, TD, SEN(writev), "writev" }, -[122] = { 2, 0, SEN(settimeofday), "settimeofday" }, +[122] = { 2, TCL, SEN(settimeofday), "settimeofday" }, [123] = { 3, TD, SEN(fchown16), "fchown" }, [124] = { 2, TD, SEN(fchmod), "fchmod" }, [125] = { 6, TN, SEN(recvfrom), "recvfrom" }, -[126] = { 2, 0, SEN(setreuid16), "setreuid" }, -[127] = { 2, 0, SEN(setregid16), "setregid" }, +[126] = { 2, TC, SEN(setreuid16), "setreuid" }, +[127] = { 2, TC, SEN(setregid16), "setregid" }, [128] = { 2, TF, SEN(rename), "rename" }, [129] = { 2, TF, SEN(truncate), "truncate" }, [130] = { 2, TD, SEN(ftruncate), "ftruncate" }, @@ -152,7 +152,7 @@ [144] = { 2, 0, SEN(getrlimit), "getrlimit" }, [145] = { 2, 0, SEN(setrlimit), "setrlimit" }, [146] = { 2, TF, SEN(pivotroot), "pivot_root" }, -[147] = { 5, 0, SEN(prctl), "prctl" }, +[147] = { 5, TC, SEN(prctl), "prctl" }, [148] = { 5, 0, SEN(printargs), "pciconfig_read" }, [149] = { 5, 0, SEN(printargs), "pciconfig_write" }, [150] = { 3, TN, SEN(getsockname), "getsockname" }, @@ -192,7 +192,7 @@ [184] = { 5, 0, SEN(query_module), "query_module" }, [185] = { 2, 0, SEN(setpgid), "setpgid" }, [186] = { 2, TD, SEN(fremovexattr), "fremovexattr" }, -[187] = { 2, TS, SEN(kill), "tkill" }, +[187] = { 2, TS|TP, SEN(tkill), "tkill" }, [188] = { 1, TP|SE, SEN(exit), "exit_group" }, [189] = { 1, 0, SEN(uname), "uname" }, [190] = { 3, 0, SEN(init_module), "init_module" }, @@ -211,20 +211,20 @@ [203] = { 1, TF, SEN(uselib), "uselib" }, [204] = { 3, TD, SEN(readdir), "readdir" }, [205] = { 4, TD, SEN(readahead), "readahead" }, -[206] = { 2, TD, SEN(socketcall), "socketcall" }, +[206] = { 2, TD|TSD, SEN(socketcall), "socketcall" }, [207] = { 3, 0, SEN(syslog), "syslog" }, [208] = { 4, 0, SEN(lookup_dcookie), "lookup_dcookie" }, [209] = { 5, TD, SEN(fadvise64), "fadvise64" }, [210] = { 6, TD, SEN(fadvise64_64), "fadvise64_64" }, -[211] = { 3, TS, SEN(tgkill), "tgkill" }, +[211] = { 3, TS|TP, SEN(tgkill), "tgkill" }, [212] = { 3, TP, SEN(waitpid), "waitpid" }, [213] = { 1, TF, SEN(swapoff), "swapoff" }, [214] = { 1, 0, SEN(sysinfo), "sysinfo" }, -[215] = { 6, TI, SEN(ipc), "ipc" }, +[215] = { 6, TI|TSD, SEN(ipc), "ipc" }, [216] = { 0, TS, SEN(sigreturn), "sigreturn" }, [217] = { 5, TP, SEN(clone), "clone" }, [218] = { 2, 0, SEN(ioprio_get), "ioprio_get" }, -[219] = { 1, 0, SEN(adjtimex32), "adjtimex" }, +[219] = { 1, TCL, SEN(adjtimex32), "adjtimex" }, [220] = { 3, TS, SEN(sigprocmask), "sigprocmask" }, [221] = { 2, 0, SEN(create_module), "create_module" }, [222] = { 2, 0, SEN(delete_module), "delete_module" }, @@ -233,10 +233,10 @@ [225] = { 2, 0, SEN(bdflush), "bdflush" }, [226] = { 3, 0, SEN(sysfs), "sysfs" }, [227] = { 5, 0, SEN(afs_syscall), "afs_syscall" }, -[228] = { 1, NF, SEN(setfsuid16), "setfsuid" }, -[229] = { 1, NF, SEN(setfsgid16), "setfsgid" }, +[228] = { 1, TC|NF, SEN(setfsuid16), "setfsuid" }, +[229] = { 1, TC|NF, SEN(setfsgid16), "setfsgid" }, [230] = { 5, TD, SEN(select), "_newselect" }, -[231] = { 1, 0, SEN(time), "time" }, +[231] = { 1, TCL, SEN(time), "time" }, [232] = { 6, TD, SEN(splice), "splice" }, [233] = { 1, 0, SEN(stime), "stime" }, [234] = { 3, TF|TSF|TSFA, SEN(statfs64), "statfs64" }, @@ -261,9 +261,9 @@ [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_settime32), "clock_settime" }, -[257] = { 2, 0, SEN(clock_gettime32), "clock_gettime" }, -[258] = { 2, 0, SEN(clock_getres_time32), "clock_getres" }, +[256] = { 2, TCL, SEN(clock_settime32), "clock_settime" }, +[257] = { 2, TCL, SEN(clock_gettime32), "clock_gettime" }, +[258] = { 2, TCL, SEN(clock_getres_time32), "clock_getres" }, [259] = { 4, 0, SEN(clock_nanosleep_time32), "clock_nanosleep" }, [260] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" }, [261] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" }, @@ -272,7 +272,7 @@ [264] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" }, [265] = { 1, 0, SEN(timer_delete), "timer_delete" }, [266] = { 3, 0, SEN(timer_create), "timer_create" }, -[267] = { }, +[267] = { 5, 0, SEN(vserver), "vserver" }, [268] = { 2, TM, SEN(io_setup), "io_setup" }, [269] = { 1, TM, SEN(io_destroy), "io_destroy" }, [270] = { 3, 0, SEN(io_submit), "io_submit" }, @@ -304,7 +304,7 @@ [296] = { 3, TD|TF, SEN(faccessat), "faccessat" }, [297] = { 6, TD, SEN(pselect6_time32), "pselect6" }, [298] = { 5, TD, SEN(ppoll_time32), "ppoll" }, -[299] = { 1, TP, SEN(unshare), "unshare" }, +[299] = { 1, 0, SEN(unshare), "unshare" }, [300] = { 2, 0, SEN(set_robust_list), "set_robust_list" }, [301] = { 3, 0, SEN(get_robust_list), "get_robust_list" }, [302] = { 4, TM, SEN(migrate_pages), "migrate_pages" }, @@ -339,7 +339,7 @@ [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_adjtime32), "clock_adjtime" }, +[334] = { 2, TCL, SEN(clock_adjtime32), "clock_adjtime" }, [335] = { 1, TD, SEN(syncfs), "syncfs" }, [336] = { 4, TN, SEN(sendmmsg), "sendmmsg" }, [337] = { 2, TD, SEN(setns), "setns" }, @@ -355,7 +355,7 @@ [347] = { 3, 0, SEN(getrandom), "getrandom" }, [348] = { 2, TD, SEN(memfd_create), "memfd_create" }, [349] = { 3, TD, SEN(bpf), "bpf" }, -[350] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat" }, +[350] = { 5, TD|TF|TP|TSD|SE|SI, SEN(execveat), "execveat" }, [351] = { 2, 0, SEN(membarrier), "membarrier" }, [352] = { 1, TD, SEN(userfaultfd), "userfaultfd" }, [353] = { 3, TN, SEN(bind), "bind" }, @@ -365,7 +365,7 @@ [357] = { 6, TD, SEN(copy_file_range), "copy_file_range" }, [358] = { 6, TD, SEN(preadv2), "preadv2" }, [359] = { 6, TD, SEN(pwritev2), "pwritev2" }, -[360] = { 5, TD|TF|TSTA, SEN(statx), "statx" }, +[360] = { 5, TD|TF|TFST|TSTA,SEN(statx), "statx" }, [361] = { 6, 0, SEN(io_pgetevents_time32), "io_pgetevents" }, [362] = { 4, TM|SI, SEN(pkey_mprotect), "pkey_mprotect" }, [363] = { 2, 0, SEN(pkey_alloc), "pkey_alloc" }, @@ -382,30 +382,8 @@ [400] = { 4, TI, SEN(msgsnd), "msgsnd" }, [401] = { 5, TI, SEN(msgrcv), "msgrcv" }, [402] = { 3, TI, SEN(msgctl), "msgctl" }, -[403] = { 2, 0, SEN(clock_gettime64), "clock_gettime64" }, -[404] = { 2, 0, SEN(clock_settime64), "clock_settime64" }, -[405] = { 2, 0, SEN(clock_adjtime64), "clock_adjtime64" }, -[406] = { 2, 0, SEN(clock_getres_time64), "clock_getres_time64" }, -[407] = { 4, 0, SEN(clock_nanosleep_time64), "clock_nanosleep_time64"}, -[408] = { 2, 0, SEN(timer_gettime64), "timer_gettime64" }, -[409] = { 4, 0, SEN(timer_settime64), "timer_settime64" }, -[410] = { 2, TD, SEN(timerfd_gettime64), "timerfd_gettime64" }, -[411] = { 4, TD, SEN(timerfd_settime64), "timerfd_settime64" }, -[412] = { 4, TD|TF, SEN(utimensat_time64), "utimensat_time64" }, -[413] = { 6, TD, SEN(pselect6_time64), "pselect6_time64" }, -[414] = { 5, TD, SEN(ppoll_time64), "ppoll_time64" }, -[416] = { 6, 0, SEN(io_pgetevents_time64), "io_pgetevents_time64" }, -[417] = { 5, TN, SEN(recvmmsg_time64), "recvmmsg_time64" }, -[418] = { 5, TD, SEN(mq_timedsend_time64), "mq_timedsend_time64" }, -[419] = { 5, TD, SEN(mq_timedreceive_time64), "mq_timedreceive_time64"}, -[420] = { 4, TI, SEN(semtimedop_time64), "semtimedop_time64" }, -[421] = { 4, TS, SEN(rt_sigtimedwait_time64), "rt_sigtimedwait_time64"}, -[422] = { 6, 0, SEN(futex_time64), "futex_time64" }, -[423] = { 2, 0, SEN(sched_rr_get_interval_time64), "sched_rr_get_interval_time64" }, -[424] = { 4, TD|TS, SEN(pidfd_send_signal), "pidfd_send_signal" }, -[425] = { 2, TD, SEN(io_uring_setup), "io_uring_setup" }, -[426] = { 6, TD|TS, SEN(io_uring_enter), "io_uring_enter" }, -[427] = { 4, TD|TM, SEN(io_uring_register), "io_uring_register" }, +#include "syscallent-common-32.h" +#include "syscallent-common.h" #define SYS_socket_subcall 500 #include "subcall32.h" diff --git a/linux/sparc64/arch_defs_.h b/linux/sparc64/arch_defs_.h index 68eef4fc..abefb538 100644 --- a/linux/sparc64/arch_defs_.h +++ b/linux/sparc64/arch_defs_.h @@ -1,12 +1,15 @@ /* - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ +#define ARCH_M32_SIZEOF_STRUCT_MSQID64_DS 104 #define HAVE_ARCH_GETRVAL2 1 #define HAVE_ARCH_UID16_SYSCALLS 1 #define HAVE_ARCH_SA_RESTORER 1 #define SUPPORTED_PERSONALITIES 2 +#define PERSONALITY0_AUDIT_ARCH { AUDIT_ARCH_SPARC64, 0 } +#define PERSONALITY1_AUDIT_ARCH { AUDIT_ARCH_SPARC, 0 } #define HAVE_ARCH_DEDICATED_ERR_REG 1 diff --git a/linux/sparc64/arch_get_personality.c b/linux/sparc64/arch_get_personality.c index 36d11915..249a842f 100644 --- a/linux/sparc64/arch_get_personality.c +++ b/linux/sparc64/arch_get_personality.c @@ -1,16 +1,13 @@ /* * Copyright (c) 2018 Dmitry V. Levin + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ -#ifndef AUDIT_ARCH_SPARC -# define AUDIT_ARCH_SPARC 0x2 -#endif - int -get_personality_from_syscall_info(const struct ptrace_syscall_info *sci) +get_personality_from_syscall_info(const struct_ptrace_syscall_info *sci) { return sci->arch == AUDIT_ARCH_SPARC; } diff --git a/linux/sparc64/set_error.c b/linux/sparc64/set_error.c index e89c578e..69778e57 100644 --- a/linux/sparc64/set_error.c +++ b/linux/sparc64/set_error.c @@ -1,22 +1,29 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ static int -arch_set_error(struct tcb *tcp) +sparc64_set_o0_tstate(struct tcb *tcp, const unsigned long o0, + const unsigned long tstate_set, + const unsigned long tstate_clear) { - sparc_regs.tstate |= 0x1100000000UL; - sparc_regs.u_regs[U_REG_O0] = tcp->u_error; + sparc_regs.u_regs[U_REG_O0] = o0; + sparc_regs.tstate |= tstate_set; + sparc_regs.tstate &= ~tstate_clear; return set_regs(tcp->pid); } +static int +arch_set_error(struct tcb *tcp) +{ + return sparc64_set_o0_tstate(tcp, tcp->u_error, 0x1100000000UL, 0); +} + static int arch_set_success(struct tcb *tcp) { - sparc_regs.tstate &= ~0x1100000000UL; - sparc_regs.u_regs[U_REG_O0] = tcp->u_rval; - return set_regs(tcp->pid); + return sparc64_set_o0_tstate(tcp, tcp->u_rval, 0, 0x1100000000UL); } diff --git a/linux/sparc64/syscallent.h b/linux/sparc64/syscallent.h index 1023b07d..5faa721c 100644 --- a/linux/sparc64/syscallent.h +++ b/linux/sparc64/syscallent.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004-2019 The strace developers. + * Copyright (c) 2004-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -16,7 +16,7 @@ [ 8] = { 2, TD|TF, SEN(creat), "creat" }, [ 9] = { 2, TF, SEN(link), "link" }, [ 10] = { 1, TF, SEN(unlink), "unlink" }, -[ 11] = { 2, TF|TP|SE|SI, SEN(execv), "execv" }, +[ 11] = { 2, TF|TP|TSD|SE|SI, SEN(execv), "execv" }, [ 12] = { 1, TF, SEN(chdir), "chdir" }, [ 13] = { 3, TF, SEN(chown), "chown" }, [ 14] = { 3, TF, SEN(mknod), "mknod" }, @@ -26,10 +26,10 @@ [ 18] = { 4, 0, SEN(printargs), "perfctr" }, [ 19] = { 3, TD, SEN(lseek), "lseek" }, [ 20] = { 0, PU|NF, SEN(getpid), "getpid" }, -[ 21] = { 2, 0, SEN(capget), "capget" }, -[ 22] = { 2, 0, SEN(capset), "capset" }, -[ 23] = { 1, 0, SEN(setuid), "setuid" }, -[ 24] = { 0, PU|NF, SEN(getuid), "getuid" }, +[ 21] = { 2, TC, SEN(capget), "capget" }, +[ 22] = { 2, TC, SEN(capset), "capset" }, +[ 23] = { 1, TC, SEN(setuid), "setuid" }, +[ 24] = { 0, TC|PU|NF, SEN(getuid), "getuid" }, [ 25] = { 4, TD, SEN(vmsplice), "vmsplice" }, [ 26] = { 4, 0, SEN(ptrace), "ptrace" }, [ 27] = { 1, 0, SEN(alarm), "alarm" }, @@ -41,7 +41,7 @@ [ 34] = { 1, 0, SEN(nice), "nice" }, [ 35] = { }, [ 36] = { 0, 0, SEN(sync), "sync" }, -[ 37] = { 2, TS, SEN(kill), "kill" }, +[ 37] = { 2, TS|TP, SEN(kill), "kill" }, [ 38] = { 2, TF|TST|TSTA, SEN(stat), "stat" }, [ 39] = { 4, TD|TN, SEN(sendfile), "sendfile" }, [ 40] = { 2, TF|TLST|TSTA, SEN(lstat), "lstat" }, @@ -50,11 +50,11 @@ [ 43] = { 1, 0, SEN(times), "times" }, [ 44] = { }, [ 45] = { 2, TF, SEN(umount2), "umount2" }, -[ 46] = { 1, 0, SEN(setgid), "setgid" }, -[ 47] = { 0, PU|NF, SEN(getgid), "getgid" }, +[ 46] = { 1, TC, SEN(setgid), "setgid" }, +[ 47] = { 0, TC|PU|NF, SEN(getgid), "getgid" }, [ 48] = { 2, TS, SEN(signal), "signal" }, -[ 49] = { 0, PU|NF, SEN(geteuid), "geteuid" }, -[ 50] = { 0, PU|NF, SEN(getegid), "getegid" }, +[ 49] = { 0, TC|PU|NF, SEN(geteuid), "geteuid" }, +[ 50] = { 0, TC|PU|NF, SEN(getegid), "getegid" }, [ 51] = { 1, TF, SEN(acct), "acct" }, [ 52] = { 2, 0, SEN(printargs), "memory_ordering" }, [ 53] = { }, @@ -63,7 +63,7 @@ [ 56] = { }, [ 57] = { 2, TF, SEN(symlink), "symlink" }, [ 58] = { 3, TF, SEN(readlink), "readlink" }, -[ 59] = { 3, TF|TP|SE|SI, SEN(execve), "execve" }, +[ 59] = { 3, TF|TP|TSD|SE|SI, SEN(execve), "execve" }, [ 60] = { 1, NF, SEN(umask), "umask" }, [ 61] = { 1, TF, SEN(chroot), "chroot" }, [ 62] = { 2, TD|TFST|TSTA, SEN(fstat), "fstat" }, @@ -82,8 +82,8 @@ [ 76] = { 0, 0, SEN(vhangup), "vhangup" }, [ 77] = { }, [ 78] = { 3, TM, SEN(mincore), "mincore" }, -[ 79] = { 2, 0, SEN(getgroups), "getgroups" }, -[ 80] = { 2, 0, SEN(setgroups), "setgroups" }, +[ 79] = { 2, TC, SEN(getgroups), "getgroups" }, +[ 80] = { 2, TC, SEN(setgroups), "setgroups" }, [ 81] = { 0, PU|NF, SEN(getpgrp), "getpgrp" }, [ 82] = { }, [ 83] = { 3, 0, SEN(setitimer), "setitimer" }, @@ -109,28 +109,28 @@ [103] = { 4, TS, SEN(rt_sigprocmask), "rt_sigprocmask" }, [104] = { 2, TS, SEN(rt_sigpending), "rt_sigpending" }, [105] = { 4, TS, SEN(rt_sigtimedwait_time64), "rt_sigtimedwait" }, -[106] = { 3, TS, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, +[106] = { 3, TS|TP, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, [107] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" }, -[108] = { 3, 0, SEN(setresuid), "setresuid" }, -[109] = { 3, 0, SEN(getresuid), "getresuid" }, -[110] = { 3, 0, SEN(setresgid), "setresgid" }, -[111] = { 3, 0, SEN(getresgid), "getresgid" }, +[108] = { 3, TC, SEN(setresuid), "setresuid" }, +[109] = { 3, TC, SEN(getresuid), "getresuid" }, +[110] = { 3, TC, SEN(setresgid), "setresgid" }, +[111] = { 3, TC, SEN(getresgid), "getresgid" }, [112] = { }, [113] = { 3, TN, SEN(recvmsg), "recvmsg" }, [114] = { 3, TN, SEN(sendmsg), "sendmsg" }, [115] = { }, -[116] = { 2, 0, SEN(gettimeofday), "gettimeofday" }, +[116] = { 2, TCL, SEN(gettimeofday), "gettimeofday" }, [117] = { 2, 0, SEN(getrusage), "getrusage" }, [118] = { 5, TN, SEN(getsockopt), "getsockopt" }, [119] = { 2, TF, SEN(getcwd), "getcwd" }, [120] = { 3, TD, SEN(readv), "readv" }, [121] = { 3, TD, SEN(writev), "writev" }, -[122] = { 2, 0, SEN(settimeofday), "settimeofday" }, +[122] = { 2, TCL, SEN(settimeofday), "settimeofday" }, [123] = { 3, TD, SEN(fchown), "fchown" }, [124] = { 2, TD, SEN(fchmod), "fchmod" }, [125] = { 6, TN, SEN(recvfrom), "recvfrom" }, -[126] = { 2, 0, SEN(setreuid), "setreuid" }, -[127] = { 2, 0, SEN(setregid), "setregid" }, +[126] = { 2, TC, SEN(setreuid), "setreuid" }, +[127] = { 2, TC, SEN(setregid), "setregid" }, [128] = { 2, TF, SEN(rename), "rename" }, [129] = { 2, TF, SEN(truncate), "truncate" }, [130] = { 2, TD, SEN(ftruncate), "ftruncate" }, @@ -150,7 +150,7 @@ [144] = { 2, 0, SEN(getrlimit), "getrlimit" }, [145] = { 2, 0, SEN(setrlimit), "setrlimit" }, [146] = { 2, TF, SEN(pivotroot), "pivot_root" }, -[147] = { 5, 0, SEN(prctl), "prctl" }, +[147] = { 5, TC, SEN(prctl), "prctl" }, [148] = { 5, 0, SEN(printargs), "pciconfig_read" }, [149] = { 5, 0, SEN(printargs), "pciconfig_write" }, [150] = { 3, TN, SEN(getsockname), "getsockname" }, @@ -190,7 +190,7 @@ [184] = { 5, 0, SEN(query_module), "query_module" }, [185] = { 2, 0, SEN(setpgid), "setpgid" }, [186] = { 2, TD, SEN(fremovexattr), "fremovexattr" }, -[187] = { 2, TS, SEN(kill), "tkill" }, +[187] = { 2, TS|TP, SEN(tkill), "tkill" }, [188] = { 1, TP|SE, SEN(exit), "exit_group" }, [189] = { 1, 0, SEN(uname), "uname" }, [190] = { 3, 0, SEN(init_module), "init_module" }, @@ -209,20 +209,20 @@ [203] = { 1, TF, SEN(uselib), "uselib" }, [204] = { 3, TD, SEN(readdir), "readdir" }, [205] = { 3, TD, SEN(readahead), "readahead" }, -[206] = { 2, TD, SEN(socketcall), "socketcall" }, +[206] = { 2, TD|TSD, SEN(socketcall), "socketcall" }, [207] = { 3, 0, SEN(syslog), "syslog" }, [208] = { 3, 0, SEN(lookup_dcookie), "lookup_dcookie" }, [209] = { 4, TD, SEN(fadvise64), "fadvise64" }, [210] = { 4, TD, SEN(fadvise64_64), "fadvise64_64" }, -[211] = { 3, TS, SEN(tgkill), "tgkill" }, +[211] = { 3, TS|TP, SEN(tgkill), "tgkill" }, [212] = { 3, TP, SEN(waitpid), "waitpid" }, [213] = { 1, TF, SEN(swapoff), "swapoff" }, [214] = { 1, 0, SEN(sysinfo), "sysinfo" }, -[215] = { 6, TI, SEN(ipc), "ipc" }, +[215] = { 6, TI|TSD, SEN(ipc), "ipc" }, [216] = { 0, TS, SEN(sigreturn), "sigreturn" }, [217] = { 5, TP, SEN(clone), "clone" }, [218] = { 2, 0, SEN(ioprio_get), "ioprio_get" }, -[219] = { 1, 0, SEN(adjtimex64), "adjtimex" }, +[219] = { 1, TCL, SEN(adjtimex64), "adjtimex" }, [220] = { 3, TS, SEN(sigprocmask), "sigprocmask" }, [221] = { 2, 0, SEN(create_module), "create_module" }, [222] = { 2, 0, SEN(delete_module), "delete_module" }, @@ -231,8 +231,8 @@ [225] = { 2, 0, SEN(bdflush), "bdflush" }, [226] = { 3, 0, SEN(sysfs), "sysfs" }, [227] = { 5, 0, SEN(afs_syscall), "afs_syscall" }, -[228] = { 1, NF, SEN(setfsuid), "setfsuid" }, -[229] = { 1, NF, SEN(setfsgid), "setfsgid" }, +[228] = { 1, TC|NF, SEN(setfsuid), "setfsuid" }, +[229] = { 1, TC|NF, SEN(setfsgid), "setfsgid" }, [230] = { 5, TD, SEN(select), "_newselect" }, [231] = { }, [232] = { 6, TD, SEN(splice), "splice" }, @@ -259,9 +259,9 @@ [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_settime64), "clock_settime" }, -[257] = { 2, 0, SEN(clock_gettime64), "clock_gettime" }, -[258] = { 2, 0, SEN(clock_getres_time64), "clock_getres" }, +[256] = { 2, TCL, SEN(clock_settime64), "clock_settime" }, +[257] = { 2, TCL, SEN(clock_gettime64), "clock_gettime" }, +[258] = { 2, TCL, SEN(clock_getres_time64), "clock_getres" }, [259] = { 4, 0, SEN(clock_nanosleep_time64), "clock_nanosleep" }, [260] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" }, [261] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" }, @@ -270,7 +270,7 @@ [264] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" }, [265] = { 1, 0, SEN(timer_delete), "timer_delete" }, [266] = { 3, 0, SEN(timer_create), "timer_create" }, -[267] = { }, +[267] = { 5, 0, SEN(vserver), "vserver" }, [268] = { 2, TM, SEN(io_setup), "io_setup" }, [269] = { 1, TM, SEN(io_destroy), "io_destroy" }, [270] = { 3, 0, SEN(io_submit), "io_submit" }, @@ -302,7 +302,7 @@ [296] = { 3, TD|TF, SEN(faccessat), "faccessat" }, [297] = { 6, TD, SEN(pselect6_time64), "pselect6" }, [298] = { 5, TD, SEN(ppoll_time64), "ppoll" }, -[299] = { 1, TP, SEN(unshare), "unshare" }, +[299] = { 1, 0, SEN(unshare), "unshare" }, [300] = { 2, 0, SEN(set_robust_list), "set_robust_list" }, [301] = { 3, 0, SEN(get_robust_list), "get_robust_list" }, [302] = { 4, TM, SEN(migrate_pages), "migrate_pages" }, @@ -337,7 +337,7 @@ [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_sparc64_adjtime), "clock_adjtime" }, +[334] = { 2, TCL, SEN(clock_sparc64_adjtime), "clock_adjtime" }, [335] = { 1, TD, SEN(syncfs), "syncfs" }, [336] = { 4, TN, SEN(sendmmsg), "sendmmsg" }, [337] = { 2, TD, SEN(setns), "setns" }, @@ -353,7 +353,7 @@ [347] = { 3, 0, SEN(getrandom), "getrandom" }, [348] = { 2, TD, SEN(memfd_create), "memfd_create" }, [349] = { 3, TD, SEN(bpf), "bpf" }, -[350] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat" }, +[350] = { 5, TD|TF|TP|TSD|SE|SI, SEN(execveat), "execveat" }, [351] = { 2, 0, SEN(membarrier), "membarrier" }, [352] = { 1, TD, SEN(userfaultfd), "userfaultfd" }, [353] = { 3, TN, SEN(bind), "bind" }, @@ -363,7 +363,7 @@ [357] = { 6, TD, SEN(copy_file_range), "copy_file_range" }, [358] = { 6, TD, SEN(preadv2), "preadv2" }, [359] = { 6, TD, SEN(pwritev2), "pwritev2" }, -[360] = { 5, TD|TF|TSTA, SEN(statx), "statx" }, +[360] = { 5, TD|TF|TFST|TSTA,SEN(statx), "statx" }, [361] = { 6, 0, SEN(io_pgetevents_time64), "io_pgetevents" }, [362] = { 4, TM|SI, SEN(pkey_mprotect), "pkey_mprotect" }, [363] = { 2, 0, SEN(pkey_alloc), "pkey_alloc" }, @@ -382,10 +382,7 @@ [401] = { 5, TI, SEN(msgrcv), "msgrcv" }, [402] = { 3, TI, SEN(msgctl), "msgctl" }, /* [403 ... 423] - reserved to sync up with other architectures */ -[424] = { 4, TD|TS, SEN(pidfd_send_signal), "pidfd_send_signal" }, -[425] = { 2, TD, SEN(io_uring_setup), "io_uring_setup" }, -[426] = { 6, TD|TS, SEN(io_uring_enter), "io_uring_enter" }, -[427] = { 4, TD|TM, SEN(io_uring_register), "io_uring_register" }, +#include "syscallent-common.h" #define SYS_socket_subcall 500 #include "subcall64.h" diff --git a/linux/syscallent-common-32.h b/linux/syscallent-common-32.h new file mode 100644 index 00000000..57d60047 --- /dev/null +++ b/linux/syscallent-common-32.h @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#ifndef BASE_NR +# define BASE_NR 0 +#endif +[BASE_NR + 403] = { 2, 0, SEN(clock_gettime64), "clock_gettime64" }, +[BASE_NR + 404] = { 2, 0, SEN(clock_settime64), "clock_settime64" }, +[BASE_NR + 405] = { 2, 0, SEN(clock_adjtime64), "clock_adjtime64" }, +[BASE_NR + 406] = { 2, 0, SEN(clock_getres_time64), "clock_getres_time64" }, +[BASE_NR + 407] = { 4, 0, SEN(clock_nanosleep_time64), "clock_nanosleep_time64"}, +[BASE_NR + 408] = { 2, 0, SEN(timer_gettime64), "timer_gettime64" }, +[BASE_NR + 409] = { 4, 0, SEN(timer_settime64), "timer_settime64" }, +[BASE_NR + 410] = { 2, TD, SEN(timerfd_gettime64), "timerfd_gettime64" }, +[BASE_NR + 411] = { 4, TD, SEN(timerfd_settime64), "timerfd_settime64" }, +[BASE_NR + 412] = { 4, TD|TF, SEN(utimensat_time64), "utimensat_time64" }, +[BASE_NR + 413] = { 6, TD, SEN(pselect6_time64), "pselect6_time64" }, +[BASE_NR + 414] = { 5, TD, SEN(ppoll_time64), "ppoll_time64" }, +[BASE_NR + 416] = { 6, 0, SEN(io_pgetevents_time64), "io_pgetevents_time64" }, +[BASE_NR + 417] = { 5, TN, SEN(recvmmsg_time64), "recvmmsg_time64" }, +[BASE_NR + 418] = { 5, TD, SEN(mq_timedsend_time64), "mq_timedsend_time64" }, +[BASE_NR + 419] = { 5, TD, SEN(mq_timedreceive_time64), "mq_timedreceive_time64"}, +[BASE_NR + 420] = { 4, TI, SEN(semtimedop_time64), "semtimedop_time64" }, +[BASE_NR + 421] = { 4, TS, SEN(rt_sigtimedwait_time64), "rt_sigtimedwait_time64"}, +[BASE_NR + 422] = { 6, 0, SEN(futex_time64), "futex_time64" }, +[BASE_NR + 423] = { 2, 0, SEN(sched_rr_get_interval_time64), "sched_rr_get_interval_time64" }, diff --git a/linux/syscallent-common.h b/linux/syscallent-common.h new file mode 100644 index 00000000..6ca296ac --- /dev/null +++ b/linux/syscallent-common.h @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2019-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#ifndef BASE_NR +# define BASE_NR 0 +#endif +[BASE_NR + 424] = { 4, TD|TS|TP, SEN(pidfd_send_signal), "pidfd_send_signal" }, +[BASE_NR + 425] = { 2, TD, SEN(io_uring_setup), "io_uring_setup" }, +[BASE_NR + 426] = { 6, TD|TS, SEN(io_uring_enter), "io_uring_enter" }, +[BASE_NR + 427] = { 4, TD|TM, SEN(io_uring_register), "io_uring_register" }, +[BASE_NR + 428] = { 3, TD|TF, SEN(open_tree), "open_tree" }, +[BASE_NR + 429] = { 5, TD|TF, SEN(move_mount), "move_mount" }, +[BASE_NR + 430] = { 2, TD, SEN(fsopen), "fsopen" }, +[BASE_NR + 431] = { 5, TD|TF, SEN(fsconfig), "fsconfig" }, +[BASE_NR + 432] = { 3, TD, SEN(fsmount), "fsmount" }, +[BASE_NR + 433] = { 3, TD|TF, SEN(fspick), "fspick" }, +[BASE_NR + 434] = { 2, TD, SEN(pidfd_open), "pidfd_open" }, +[BASE_NR + 435] = { 2, TP, SEN(clone3), "clone3" }, +[BASE_NR + 436] = { 3, TD, SEN(close_range), "close_range" }, +[BASE_NR + 437] = { 4, TD|TF, SEN(openat2), "openat2" }, +[BASE_NR + 438] = { 3, TD, SEN(pidfd_getfd), "pidfd_getfd" }, +[BASE_NR + 439] = { 4, TD|TF, SEN(faccessat2), "faccessat2" }, diff --git a/linux/syscallent_base_nr.h b/linux/syscallent_base_nr.h new file mode 100644 index 00000000..da84fa5f --- /dev/null +++ b/linux/syscallent_base_nr.h @@ -0,0 +1 @@ +/* nothing */ diff --git a/linux/tile/arch_defs_.h b/linux/tile/arch_defs_.h index a781208c..12ba0d8b 100644 --- a/linux/tile/arch_defs_.h +++ b/linux/tile/arch_defs_.h @@ -6,6 +6,8 @@ */ #define SUPPORTED_PERSONALITIES 2 +#define PERSONALITY0_AUDIT_ARCH { AUDIT_ARCH_TILEGX, 0 } +#define PERSONALITY1_AUDIT_ARCH { AUDIT_ARCH_TILEGX32, 0 } #define CAN_ARCH_BE_COMPAT_ON_64BIT_KERNEL 1 #ifdef __tilepro__ diff --git a/linux/tile/arch_get_personality.c b/linux/tile/arch_get_personality.c index 0a88242d..93c25042 100644 --- a/linux/tile/arch_get_personality.c +++ b/linux/tile/arch_get_personality.c @@ -1,19 +1,13 @@ /* * Copyright (c) 2018 Dmitry V. Levin + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ -#ifndef AUDIT_ARCH_TILEGX32 -# define AUDIT_ARCH_TILEGX32 0x400000bf -#endif -#ifndef AUDIT_ARCH_TILEPRO -# define AUDIT_ARCH_TILEPRO 0x400000bc -#endif - int -get_personality_from_syscall_info(const struct ptrace_syscall_info *sci) +get_personality_from_syscall_info(const struct_ptrace_syscall_info *sci) { return sci->arch == AUDIT_ARCH_TILEGX32 || sci->arch == AUDIT_ARCH_TILEPRO; diff --git a/linux/tile/set_scno.c b/linux/tile/set_scno.c index c1ab0d55..d96ebc23 100644 --- a/linux/tile/set_scno.c +++ b/linux/tile/set_scno.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -8,6 +8,8 @@ static int arch_set_scno(struct tcb *tcp, kernel_ulong_t scno) { + if (ptrace_syscall_info_is_valid() && get_regs(tcp) < 0) + return -1; tile_regs.regs[10] = scno; return set_regs(tcp->pid); } diff --git a/linux/unix_diag.h b/linux/unix_diag.h index 1d15a0ce..ffabdce5 100644 --- a/linux/unix_diag.h +++ b/linux/unix_diag.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -24,6 +24,7 @@ struct unix_diag_req { # define UDIAG_SHOW_ICONS 0x08 # define UDIAG_SHOW_RQLEN 0x10 # define UDIAG_SHOW_MEMINFO 0x20 +# define UDIAG_SHOW_UID 0x40 struct unix_diag_msg { uint8_t udiag_family; @@ -42,6 +43,8 @@ enum { UNIX_DIAG_RQLEN, UNIX_DIAG_MEMINFO, UNIX_DIAG_SHUTDOWN, + UNIX_DIAG_UID, + UNIX_DIAG_FIRST_UNUSED }; struct unix_diag_vfs { diff --git a/linux/x32/arch_defs_.h b/linux/x32/arch_defs_.h index 1055de12..dfdd440e 100644 --- a/linux/x32/arch_defs_.h +++ b/linux/x32/arch_defs_.h @@ -1,13 +1,15 @@ /* - * Copyright (c) 2018-2019 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ -#define ARCH_TIMESIZE 8 +#define ARCH_SIZEOF_STRUCT_MSQID64_DS 120 #define HAVE_ARCH_OLD_MMAP 1 #define HAVE_ARCH_OLD_SELECT 1 #define HAVE_ARCH_UID16_SYSCALLS 1 #define HAVE_ARCH_OLD_TIME64_SYSCALLS 1 #define SUPPORTED_PERSONALITIES 2 +#define PERSONALITY0_AUDIT_ARCH { AUDIT_ARCH_X86_64, __X32_SYSCALL_BIT } +#define PERSONALITY1_AUDIT_ARCH { AUDIT_ARCH_I386, 0 } diff --git a/linux/x32/ioctls_inc0.h b/linux/x32/ioctls_inc0.h index 0706d019..9f936553 100644 --- a/linux/x32/ioctls_inc0.h +++ b/linux/x32/ioctls_inc0.h @@ -81,8 +81,8 @@ { "asm-generic/sockios.h", "FIOSETOWN", 0, 0x8901, 0 }, { "asm-generic/sockios.h", "SIOCATMARK", 0, 0x8905, 0 }, { "asm-generic/sockios.h", "SIOCGPGRP", 0, 0x8904, 0 }, -{ "asm-generic/sockios.h", "SIOCGSTAMP", 0, 0x8906, 0 }, -{ "asm-generic/sockios.h", "SIOCGSTAMPNS", 0, 0x8907, 0 }, +{ "asm-generic/sockios.h", "SIOCGSTAMPNS_OLD", 0, 0x8907, 0 }, +{ "asm-generic/sockios.h", "SIOCGSTAMP_OLD", 0, 0x8906, 0 }, { "asm-generic/sockios.h", "SIOCSPGRP", 0, 0x8902, 0 }, { "drm/amdgpu_drm.h", "DRM_IOCTL_AMDGPU_BO_LIST", _IOC_READ|_IOC_WRITE, 0x6443, 0x18 }, { "drm/amdgpu_drm.h", "DRM_IOCTL_AMDGPU_CS", _IOC_READ|_IOC_WRITE, 0x6444, 0x18 }, @@ -155,6 +155,7 @@ { "drm/drm.h", "DRM_IOCTL_MODE_GETCRTC", _IOC_READ|_IOC_WRITE, 0x64a1, 0x68 }, { "drm/drm.h", "DRM_IOCTL_MODE_GETENCODER", _IOC_READ|_IOC_WRITE, 0x64a6, 0x14 }, { "drm/drm.h", "DRM_IOCTL_MODE_GETFB", _IOC_READ|_IOC_WRITE, 0x64ad, 0x1c }, +{ "drm/drm.h", "DRM_IOCTL_MODE_GETFB2", _IOC_READ|_IOC_WRITE, 0x64ce, 0x68 }, { "drm/drm.h", "DRM_IOCTL_MODE_GETGAMMA", _IOC_READ|_IOC_WRITE, 0x64a4, 0x20 }, { "drm/drm.h", "DRM_IOCTL_MODE_GETPLANE", _IOC_READ|_IOC_WRITE, 0x64b6, 0x20 }, { "drm/drm.h", "DRM_IOCTL_MODE_GETPLANERESOURCES", _IOC_READ|_IOC_WRITE, 0x64b5, 0x10 }, @@ -193,8 +194,12 @@ { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_DESTROY", _IOC_READ|_IOC_WRITE, 0x64c0, 0x08 }, { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_FD_TO_HANDLE", _IOC_READ|_IOC_WRITE, 0x64c2, 0x10 }, { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD", _IOC_READ|_IOC_WRITE, 0x64c1, 0x10 }, +{ "drm/drm.h", "DRM_IOCTL_SYNCOBJ_QUERY", _IOC_READ|_IOC_WRITE, 0x64cb, 0x18 }, { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_RESET", _IOC_READ|_IOC_WRITE, 0x64c4, 0x10 }, { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_SIGNAL", _IOC_READ|_IOC_WRITE, 0x64c5, 0x10 }, +{ "drm/drm.h", "DRM_IOCTL_SYNCOBJ_TIMELINE_SIGNAL", _IOC_READ|_IOC_WRITE, 0x64cd, 0x18 }, +{ "drm/drm.h", "DRM_IOCTL_SYNCOBJ_TIMELINE_WAIT", _IOC_READ|_IOC_WRITE, 0x64ca, 0x28 }, +{ "drm/drm.h", "DRM_IOCTL_SYNCOBJ_TRANSFER", _IOC_READ|_IOC_WRITE, 0x64cc, 0x20 }, { "drm/drm.h", "DRM_IOCTL_SYNCOBJ_WAIT", _IOC_READ|_IOC_WRITE, 0x64c3, 0x20 }, { "drm/drm.h", "DRM_IOCTL_UNBLOCK", _IOC_READ|_IOC_WRITE, 0x6413, 0x04 }, { "drm/drm.h", "DRM_IOCTL_UNLOCK", _IOC_WRITE, 0x642b, 0x08 }, @@ -247,6 +252,7 @@ { "drm/i915_drm.h", "DRM_IOCTL_I915_FREE", _IOC_WRITE, 0x6449, 0x08 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_BUSY", _IOC_READ|_IOC_WRITE, 0x6457, 0x08 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_CONTEXT_CREATE", _IOC_READ|_IOC_WRITE, 0x646d, 0x08 }, +{ "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT", _IOC_READ|_IOC_WRITE, 0x646d, 0x10 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_CONTEXT_DESTROY", _IOC_WRITE, 0x646e, 0x08 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM", _IOC_READ|_IOC_WRITE, 0x6474, 0x18 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM", _IOC_READ|_IOC_WRITE, 0x6475, 0x18 }, @@ -263,6 +269,7 @@ { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_MADVISE", _IOC_READ|_IOC_WRITE, 0x6466, 0x0c }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_MMAP", _IOC_READ|_IOC_WRITE, 0x645e, 0x28 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_MMAP_GTT", _IOC_READ|_IOC_WRITE, 0x6464, 0x10 }, +{ "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_MMAP_OFFSET", _IOC_READ|_IOC_WRITE, 0x6464, 0x20 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_PIN", _IOC_READ|_IOC_WRITE, 0x6455, 0x18 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_PREAD", _IOC_WRITE, 0x645c, 0x20 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_PWRITE", _IOC_WRITE, 0x645d, 0x20 }, @@ -273,6 +280,8 @@ { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_THROTTLE", _IOC_NONE, 0x6458, 0x00 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_UNPIN", _IOC_WRITE, 0x6456, 0x08 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_USERPTR", _IOC_READ|_IOC_WRITE, 0x6473, 0x18 }, +{ "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_VM_CREATE", _IOC_READ|_IOC_WRITE, 0x647a, 0x10 }, +{ "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_VM_DESTROY", _IOC_WRITE, 0x647b, 0x10 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_WAIT", _IOC_READ|_IOC_WRITE, 0x646c, 0x10 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GETPARAM", _IOC_READ|_IOC_WRITE, 0x6446, 0x08 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_GET_PIPE_FROM_CRTC_ID", _IOC_READ|_IOC_WRITE, 0x6465, 0x08 }, @@ -295,8 +304,16 @@ { "drm/i915_drm.h", "DRM_IOCTL_I915_SET_SPRITE_COLORKEY", _IOC_READ|_IOC_WRITE, 0x646b, 0x14 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_SET_VBLANK_PIPE", _IOC_WRITE, 0x644d, 0x04 }, { "drm/i915_drm.h", "DRM_IOCTL_I915_VBLANK_SWAP", _IOC_READ|_IOC_WRITE, 0x644f, 0x0c }, +{ "drm/i915_drm.h", "I915_PERF_IOCTL_CONFIG", _IOC_NONE, 0x6902, 0x00 }, { "drm/i915_drm.h", "I915_PERF_IOCTL_DISABLE", _IOC_NONE, 0x6901, 0x00 }, { "drm/i915_drm.h", "I915_PERF_IOCTL_ENABLE", _IOC_NONE, 0x6900, 0x00 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_CTX_CREATE", _IOC_READ, 0x6445, 0x08 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_CTX_FREE", _IOC_WRITE, 0x6446, 0x08 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_GEM_CREATE", _IOC_READ|_IOC_WRITE, 0x6441, 0x10 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_GEM_INFO", _IOC_READ|_IOC_WRITE, 0x6442, 0x10 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_GEM_SUBMIT", _IOC_WRITE, 0x6443, 0x30 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_GEM_WAIT", _IOC_WRITE, 0x6444, 0x10 }, +{ "drm/lima_drm.h", "DRM_IOCTL_LIMA_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6440, 0x10 }, { "drm/mga_drm.h", "DRM_IOCTL_MGA_BLIT", _IOC_WRITE, 0x6448, 0x34 }, { "drm/mga_drm.h", "DRM_IOCTL_MGA_CLEAR", _IOC_WRITE, 0x6444, 0x14 }, { "drm/mga_drm.h", "DRM_IOCTL_MGA_DMA_BOOTSTRAP", _IOC_READ|_IOC_WRITE, 0x644c, 0x1c }, @@ -315,10 +332,11 @@ { "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_INFO", _IOC_READ|_IOC_WRITE, 0x6443, 0x18 }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_MADVISE", _IOC_READ|_IOC_WRITE, 0x6448, 0x0c }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_NEW", _IOC_READ|_IOC_WRITE, 0x6442, 0x10 }, -{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_SUBMIT", _IOC_READ|_IOC_WRITE, 0x6446, 0x28 }, +{ "drm/msm_drm.h", "DRM_IOCTL_MSM_GEM_SUBMIT", _IOC_READ|_IOC_WRITE, 0x6446, 0x48 }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6440, 0x10 }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_SUBMITQUEUE_CLOSE", _IOC_WRITE, 0x644b, 0x04 }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_SUBMITQUEUE_NEW", _IOC_READ|_IOC_WRITE, 0x644a, 0x0c }, +{ "drm/msm_drm.h", "DRM_IOCTL_MSM_SUBMITQUEUE_QUERY", _IOC_WRITE, 0x644c, 0x18 }, { "drm/msm_drm.h", "DRM_IOCTL_MSM_WAIT_FENCE", _IOC_WRITE, 0x6447, 0x20 }, { "drm/nouveau_drm.h", "DRM_IOCTL_NOUVEAU_GEM_CPU_FINI", _IOC_WRITE, 0x6483, 0x04 }, { "drm/nouveau_drm.h", "DRM_IOCTL_NOUVEAU_GEM_CPU_PREP", _IOC_WRITE, 0x6482, 0x08 }, @@ -333,6 +351,15 @@ { "drm/omap_drm.h", "DRM_IOCTL_OMAP_GEM_NEW", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 }, { "drm/omap_drm.h", "DRM_IOCTL_OMAP_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6440, 0x10 }, { "drm/omap_drm.h", "DRM_IOCTL_OMAP_SET_PARAM", _IOC_WRITE, 0x6441, 0x10 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_CREATE_BO", _IOC_READ|_IOC_WRITE, 0x6442, 0x18 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_GET_BO_OFFSET", _IOC_READ|_IOC_WRITE, 0x6445, 0x10 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6444, 0x10 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_MADVISE", _IOC_READ|_IOC_WRITE, 0x6448, 0x0c }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_MMAP_BO", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_PERFCNT_DUMP", _IOC_WRITE, 0x6447, 0x08 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_PERFCNT_ENABLE", _IOC_WRITE, 0x6446, 0x08 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_SUBMIT", _IOC_WRITE, 0x6440, 0x28 }, +{ "drm/panfrost_drm.h", "DRM_IOCTL_PANFROST_WAIT_BO", _IOC_WRITE, 0x6441, 0x10 }, { "drm/qxl_drm.h", "DRM_IOCTL_QXL_ALLOC", _IOC_READ|_IOC_WRITE, 0x6440, 0x08 }, { "drm/qxl_drm.h", "DRM_IOCTL_QXL_ALLOC_SURF", _IOC_READ|_IOC_WRITE, 0x6446, 0x18 }, { "drm/qxl_drm.h", "DRM_IOCTL_QXL_CLIENTCAP", _IOC_WRITE, 0x6445, 0x08 }, @@ -428,6 +455,7 @@ { "drm/v3d_drm.h", "DRM_IOCTL_V3D_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6444, 0x10 }, { "drm/v3d_drm.h", "DRM_IOCTL_V3D_MMAP_BO", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 }, { "drm/v3d_drm.h", "DRM_IOCTL_V3D_SUBMIT_CL", _IOC_READ|_IOC_WRITE, 0x6440, 0x38 }, +{ "drm/v3d_drm.h", "DRM_IOCTL_V3D_SUBMIT_CSD", _IOC_WRITE, 0x6447, 0x48 }, { "drm/v3d_drm.h", "DRM_IOCTL_V3D_SUBMIT_TFU", _IOC_WRITE, 0x6446, 0x44 }, { "drm/v3d_drm.h", "DRM_IOCTL_V3D_WAIT_BO", _IOC_READ|_IOC_WRITE, 0x6441, 0x10 }, { "drm/vc4_drm.h", "DRM_IOCTL_VC4_CREATE_BO", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 }, @@ -537,6 +565,8 @@ { "linux/arcfb.h", "FBIO_WAITEVENT", _IOC_NONE, 0x4688, 0x00 }, { "linux/aspeed-lpc-ctrl.h", "ASPEED_LPC_CTRL_IOCTL_GET_SIZE", _IOC_READ|_IOC_WRITE, 0xb200, 0x10 }, { "linux/aspeed-lpc-ctrl.h", "ASPEED_LPC_CTRL_IOCTL_MAP", _IOC_WRITE, 0xb201, 0x10 }, +{ "linux/aspeed-p2a-ctrl.h", "ASPEED_P2A_CTRL_IOCTL_GET_MEMORY_CONFIG", _IOC_READ|_IOC_WRITE, 0xb301, 0x10 }, +{ "linux/aspeed-p2a-ctrl.h", "ASPEED_P2A_CTRL_IOCTL_SET_WINDOW", _IOC_WRITE, 0xb300, 0x10 }, { "linux/atm_eni.h", "ENI_MEMDUMP", _IOC_WRITE, 0x6160, 0x0c }, { "linux/atm_eni.h", "ENI_SETMULT", _IOC_WRITE, 0x6167, 0x0c }, { "linux/atm_he.h", "HE_GET_REG", _IOC_WRITE, 0x6160, 0x0c }, @@ -613,8 +643,11 @@ { "linux/auto_fs.h", "AUTOFS_IOC_SETTIMEOUT", _IOC_READ|_IOC_WRITE, 0x9364, 0x04 }, { "linux/auto_fs.h", "AUTOFS_IOC_SETTIMEOUT32", _IOC_READ|_IOC_WRITE, 0x9364, 0x04 }, { "linux/blkpg.h", "BLKPG", _IOC_NONE, 0x1269, 0x00 }, +{ "linux/blkzoned.h", "BLKCLOSEZONE", _IOC_WRITE, 0x1287, 0x10 }, +{ "linux/blkzoned.h", "BLKFINISHZONE", _IOC_WRITE, 0x1288, 0x10 }, { "linux/blkzoned.h", "BLKGETNRZONES", _IOC_READ, 0x1285, 0x04 }, { "linux/blkzoned.h", "BLKGETZONESZ", _IOC_READ, 0x1284, 0x04 }, +{ "linux/blkzoned.h", "BLKOPENZONE", _IOC_WRITE, 0x1286, 0x10 }, { "linux/blkzoned.h", "BLKREPORTZONE", _IOC_READ|_IOC_WRITE, 0x1282, 0x10 }, { "linux/blkzoned.h", "BLKRESETZONE", _IOC_WRITE, 0x1283, 0x10 }, { "linux/bt-bmc.h", "BT_BMC_IOCTL_SMS_ATN", _IOC_NONE, 0xb100, 0x00 }, @@ -664,6 +697,7 @@ { "linux/btrfs.h", "BTRFS_IOC_SNAP_CREATE", _IOC_WRITE, 0x9401, 0x1000 }, { "linux/btrfs.h", "BTRFS_IOC_SNAP_CREATE_V2", _IOC_WRITE, 0x9417, 0x1000 }, { "linux/btrfs.h", "BTRFS_IOC_SNAP_DESTROY", _IOC_WRITE, 0x940f, 0x1000 }, +{ "linux/btrfs.h", "BTRFS_IOC_SNAP_DESTROY_V2", _IOC_WRITE, 0x943f, 0x1000 }, { "linux/btrfs.h", "BTRFS_IOC_SPACE_INFO", _IOC_READ|_IOC_WRITE, 0x9414, 0x10 }, { "linux/btrfs.h", "BTRFS_IOC_START_SYNC", _IOC_READ, 0x9418, 0x08 }, { "linux/btrfs.h", "BTRFS_IOC_SUBVOL_CREATE", _IOC_WRITE, 0x940e, 0x1000 }, @@ -752,6 +786,7 @@ { "linux/cdrom.h", "DVD_READ_STRUCT", 0, 0x5390, 0 }, { "linux/cdrom.h", "DVD_WRITE_STRUCT", 0, 0x5391, 0 }, { "linux/cec.h", "CEC_ADAP_G_CAPS", _IOC_READ|_IOC_WRITE, 0x6100, 0x4c }, +{ "linux/cec.h", "CEC_ADAP_G_CONNECTOR_INFO", _IOC_READ, 0x610a, 0x44 }, { "linux/cec.h", "CEC_ADAP_G_LOG_ADDRS", _IOC_READ, 0x6103, 0x5c }, { "linux/cec.h", "CEC_ADAP_G_PHYS_ADDR", _IOC_READ, 0x6101, 0x02 }, { "linux/cec.h", "CEC_ADAP_S_LOG_ADDRS", _IOC_READ|_IOC_WRITE, 0x6104, 0x5c }, @@ -787,6 +822,7 @@ { "linux/dm-ioctl.h", "DM_DEV_STATUS", _IOC_READ|_IOC_WRITE, 0xfd07, 0x138 }, { "linux/dm-ioctl.h", "DM_DEV_SUSPEND", _IOC_READ|_IOC_WRITE, 0xfd06, 0x138 }, { "linux/dm-ioctl.h", "DM_DEV_WAIT", _IOC_READ|_IOC_WRITE, 0xfd08, 0x138 }, +{ "linux/dm-ioctl.h", "DM_GET_TARGET_VERSION", _IOC_READ|_IOC_WRITE, 0xfd11, 0x138 }, { "linux/dm-ioctl.h", "DM_LIST_DEVICES", _IOC_READ|_IOC_WRITE, 0xfd02, 0x138 }, { "linux/dm-ioctl.h", "DM_LIST_VERSIONS", _IOC_READ|_IOC_WRITE, 0xfd0d, 0x138 }, { "linux/dm-ioctl.h", "DM_REMOVE_ALL", _IOC_READ|_IOC_WRITE, 0xfd01, 0x138 }, @@ -797,6 +833,9 @@ { "linux/dm-ioctl.h", "DM_TARGET_MSG", _IOC_READ|_IOC_WRITE, 0xfd0e, 0x138 }, { "linux/dm-ioctl.h", "DM_VERSION", _IOC_READ|_IOC_WRITE, 0xfd00, 0x138 }, { "linux/dma-buf.h", "DMA_BUF_IOCTL_SYNC", _IOC_WRITE, 0x6200, 0x08 }, +{ "linux/dma-buf.h", "DMA_BUF_SET_NAME_A", _IOC_WRITE, 0x6201, 0x04 }, +{ "linux/dma-buf.h", "DMA_BUF_SET_NAME_B", _IOC_WRITE, 0x6201, 0x08 }, +{ "linux/dma-heap.h", "DMA_HEAP_IOCTL_ALLOC", _IOC_READ|_IOC_WRITE, 0x4800, 0x18 }, { "linux/dn.h", "OSIOCGNETADDR", _IOC_READ, 0x89e1, 0x04 }, { "linux/dn.h", "OSIOCSNETADDR", _IOC_WRITE, 0x89e0, 0x04 }, { "linux/dn.h", "SIOCGNETADDR", _IOC_READ, 0x89e1, 0x04 }, @@ -953,13 +992,21 @@ { "linux/firewire-cdev.h", "FW_CDEV_IOC_START_ISO", _IOC_WRITE, 0x230a, 0x10 }, { "linux/firewire-cdev.h", "FW_CDEV_IOC_STOP_ISO", _IOC_WRITE, 0x230b, 0x04 }, { "linux/fpga-dfl.h", "DFL_FPGA_CHECK_EXTENSION", _IOC_NONE, 0xb601, 0x00 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_FME_ERR_GET_IRQ_NUM", _IOC_READ, 0xb683, 0x04 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_FME_ERR_SET_IRQ", _IOC_WRITE, 0xb684, 0x08 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_FME_PORT_ASSIGN", _IOC_WRITE, 0xb682, 0x04 }, { "linux/fpga-dfl.h", "DFL_FPGA_FME_PORT_PR", _IOC_NONE, 0xb680, 0x00 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_FME_PORT_RELEASE", _IOC_WRITE, 0xb681, 0x04 }, { "linux/fpga-dfl.h", "DFL_FPGA_GET_API_VERSION", _IOC_NONE, 0xb600, 0x00 }, { "linux/fpga-dfl.h", "DFL_FPGA_PORT_DMA_MAP", _IOC_NONE, 0xb643, 0x00 }, { "linux/fpga-dfl.h", "DFL_FPGA_PORT_DMA_UNMAP", _IOC_NONE, 0xb644, 0x00 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_PORT_ERR_GET_IRQ_NUM", _IOC_READ, 0xb645, 0x04 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_PORT_ERR_SET_IRQ", _IOC_WRITE, 0xb646, 0x08 }, { "linux/fpga-dfl.h", "DFL_FPGA_PORT_GET_INFO", _IOC_NONE, 0xb641, 0x00 }, { "linux/fpga-dfl.h", "DFL_FPGA_PORT_GET_REGION_INFO", _IOC_NONE, 0xb642, 0x00 }, { "linux/fpga-dfl.h", "DFL_FPGA_PORT_RESET", _IOC_NONE, 0xb640, 0x00 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_PORT_UINT_GET_IRQ_NUM", _IOC_READ, 0xb647, 0x04 }, +{ "linux/fpga-dfl.h", "DFL_FPGA_PORT_UINT_SET_IRQ", _IOC_WRITE, 0xb648, 0x08 }, { "linux/fs.h", "BLKALIGNOFF", _IOC_NONE, 0x127a, 0x00 }, { "linux/fs.h", "BLKBSZGET", _IOC_READ, 0x1270, 0x04 }, { "linux/fs.h", "BLKBSZSET", _IOC_WRITE, 0x1271, 0x04 }, @@ -1006,12 +1053,18 @@ { "linux/fs.h", "FS_IOC_GETFLAGS", _IOC_READ, 0x6601, 0x04 }, { "linux/fs.h", "FS_IOC_GETFSLABEL", _IOC_READ, 0x9431, 0x100 }, { "linux/fs.h", "FS_IOC_GETVERSION", _IOC_READ, 0x7601, 0x04 }, -{ "linux/fs.h", "FS_IOC_GET_ENCRYPTION_POLICY", _IOC_WRITE, 0x6615, 0x0c }, -{ "linux/fs.h", "FS_IOC_GET_ENCRYPTION_PWSALT", _IOC_WRITE, 0x6614, 0x10 }, { "linux/fs.h", "FS_IOC_SETFLAGS", _IOC_WRITE, 0x6602, 0x04 }, { "linux/fs.h", "FS_IOC_SETFSLABEL", _IOC_WRITE, 0x9432, 0x100 }, { "linux/fs.h", "FS_IOC_SETVERSION", _IOC_WRITE, 0x7602, 0x04 }, -{ "linux/fs.h", "FS_IOC_SET_ENCRYPTION_POLICY", _IOC_READ, 0x6613, 0x0c }, +{ "linux/fscrypt.h", "FS_IOC_ADD_ENCRYPTION_KEY", _IOC_READ|_IOC_WRITE, 0x6617, 0x50 }, +{ "linux/fscrypt.h", "FS_IOC_GET_ENCRYPTION_KEY_STATUS", _IOC_READ|_IOC_WRITE, 0x661a, 0x80 }, +{ "linux/fscrypt.h", "FS_IOC_GET_ENCRYPTION_NONCE", _IOC_READ, 0x661b, 0x10 }, +{ "linux/fscrypt.h", "FS_IOC_GET_ENCRYPTION_POLICY", _IOC_WRITE, 0x6615, 0x0c }, +{ "linux/fscrypt.h", "FS_IOC_GET_ENCRYPTION_POLICY_EX", _IOC_READ|_IOC_WRITE, 0x6616, 0x09 }, +{ "linux/fscrypt.h", "FS_IOC_GET_ENCRYPTION_PWSALT", _IOC_WRITE, 0x6614, 0x10 }, +{ "linux/fscrypt.h", "FS_IOC_REMOVE_ENCRYPTION_KEY", _IOC_READ|_IOC_WRITE, 0x6618, 0x40 }, +{ "linux/fscrypt.h", "FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS", _IOC_READ|_IOC_WRITE, 0x6619, 0x40 }, +{ "linux/fscrypt.h", "FS_IOC_SET_ENCRYPTION_POLICY", _IOC_READ, 0x6613, 0x0c }, { "linux/fsi.h", "FSI_SCOM_CHECK", _IOC_READ, 0x7300, 0x04 }, { "linux/fsi.h", "FSI_SCOM_READ", _IOC_READ|_IOC_WRITE, 0x7301, 0x20 }, { "linux/fsi.h", "FSI_SCOM_RESET", _IOC_WRITE, 0x7303, 0x04 }, @@ -1035,6 +1088,8 @@ { "linux/fsl_hypervisor.h", "FSL_HV_IOCTL_PARTITION_STOP", _IOC_READ|_IOC_WRITE, 0xaf04, 0x08 }, { "linux/fsl_hypervisor.h", "FSL_HV_IOCTL_SETPROP", _IOC_READ|_IOC_WRITE, 0xaf08, 0x28 }, { "linux/fsmap.h", "FS_IOC_GETFSMAP", _IOC_READ|_IOC_WRITE, 0x583b, 0xc0 }, +{ "linux/fsverity.h", "FS_IOC_ENABLE_VERITY", _IOC_WRITE, 0x6685, 0x80 }, +{ "linux/fsverity.h", "FS_IOC_MEASURE_VERITY", _IOC_READ|_IOC_WRITE, 0x6686, 0x04 }, { "linux/fuse.h", "FUSE_DEV_IOC_CLONE", _IOC_READ, 0xe500, 0x04 }, { "linux/genwqe/genwqe_card.h", "GENWQE_EXECUTE_DDCB", _IOC_READ|_IOC_WRITE, 0xa532, 0xe8 }, { "linux/genwqe/genwqe_card.h", "GENWQE_EXECUTE_RAW_DDCB", _IOC_READ|_IOC_WRITE, 0xa533, 0xe8 }, @@ -1049,19 +1104,19 @@ { "linux/genwqe/genwqe_card.h", "GENWQE_WRITE_REG16", _IOC_WRITE, 0xa523, 0x10 }, { "linux/genwqe/genwqe_card.h", "GENWQE_WRITE_REG32", _IOC_WRITE, 0xa521, 0x10 }, { "linux/genwqe/genwqe_card.h", "GENWQE_WRITE_REG64", _IOC_WRITE, 0xa51f, 0x10 }, -{ "linux/gigaset_dev.h", "GIGASET_BRKCHARS", _IOC_WRITE, 0x4702, 0x06 }, -{ "linux/gigaset_dev.h", "GIGASET_CONFIG", _IOC_READ|_IOC_WRITE, 0x4701, 0x04 }, -{ "linux/gigaset_dev.h", "GIGASET_REDIR", _IOC_READ|_IOC_WRITE, 0x4700, 0x04 }, -{ "linux/gigaset_dev.h", "GIGASET_VERSION", _IOC_READ|_IOC_WRITE, 0x4703, 0x10 }, { "linux/gpio.h", "GPIOHANDLE_GET_LINE_VALUES_IOCTL", _IOC_READ|_IOC_WRITE, 0xb408, 0x40 }, +{ "linux/gpio.h", "GPIOHANDLE_SET_CONFIG_IOCTL", _IOC_READ|_IOC_WRITE, 0xb40a, 0x54 }, { "linux/gpio.h", "GPIOHANDLE_SET_LINE_VALUES_IOCTL", _IOC_READ|_IOC_WRITE, 0xb409, 0x40 }, { "linux/gpio.h", "GPIO_GET_CHIPINFO_IOCTL", _IOC_READ, 0xb401, 0x44 }, { "linux/gpio.h", "GPIO_GET_LINEEVENT_IOCTL", _IOC_READ|_IOC_WRITE, 0xb404, 0x30 }, { "linux/gpio.h", "GPIO_GET_LINEHANDLE_IOCTL", _IOC_READ|_IOC_WRITE, 0xb403, 0x16c }, { "linux/gpio.h", "GPIO_GET_LINEINFO_IOCTL", _IOC_READ|_IOC_WRITE, 0xb402, 0x48 }, +{ "linux/gpio.h", "GPIO_GET_LINEINFO_UNWATCH_IOCTL", _IOC_READ|_IOC_WRITE, 0xb40c, 0x04 }, +{ "linux/gpio.h", "GPIO_GET_LINEINFO_WATCH_IOCTL", _IOC_READ|_IOC_WRITE, 0xb40b, 0x48 }, { "linux/gsmmux.h", "GSMIOC_DISABLE_NET", _IOC_NONE, 0x4703, 0x00 }, { "linux/gsmmux.h", "GSMIOC_ENABLE_NET", _IOC_WRITE, 0x4702, 0x34 }, { "linux/gsmmux.h", "GSMIOC_GETCONF", _IOC_READ, 0x4700, 0x4c }, +{ "linux/gsmmux.h", "GSMIOC_GETFIRST", _IOC_READ, 0x4704, 0x04 }, { "linux/gsmmux.h", "GSMIOC_SETCONF", _IOC_WRITE, 0x4701, 0x4c }, { "linux/hdreg.h", "HDIO_DRIVE_CMD", 0, 0x031f, 0 }, { "linux/hdreg.h", "HDIO_DRIVE_RESET", 0, 0x031c, 0 }, @@ -1164,6 +1219,7 @@ { "linux/if_pppox.h", "PPPOEIOCSFWD", _IOC_WRITE, 0xb100, 0x04 }, { "linux/if_tun.h", "TUNATTACHFILTER", _IOC_WRITE, 0x54d5, 0x08 }, { "linux/if_tun.h", "TUNDETACHFILTER", _IOC_WRITE, 0x54d6, 0x08 }, +{ "linux/if_tun.h", "TUNGETDEVNETNS", _IOC_NONE, 0x54e3, 0x00 }, { "linux/if_tun.h", "TUNGETFEATURES", _IOC_READ, 0x54cf, 0x04 }, { "linux/if_tun.h", "TUNGETFILTER", _IOC_READ, 0x54db, 0x08 }, { "linux/if_tun.h", "TUNGETIFF", _IOC_READ, 0x54d2, 0x04 }, @@ -1231,44 +1287,11 @@ { "linux/ipmi_bmc.h", "IPMI_BMC_IOCTL_CLEAR_SMS_ATN", _IOC_NONE, 0xb101, 0x00 }, { "linux/ipmi_bmc.h", "IPMI_BMC_IOCTL_FORCE_ABORT", _IOC_NONE, 0xb102, 0x00 }, { "linux/ipmi_bmc.h", "IPMI_BMC_IOCTL_SET_SMS_ATN", _IOC_NONE, 0xb100, 0x00 }, -{ "linux/isdn.h", "IIOCDBGVAR", _IOC_NONE, 0x497f, 0x00 }, -{ "linux/isdn.h", "IIOCDRVCTL", _IOC_NONE, 0x4980, 0x00 }, -{ "linux/isdn.h", "IIOCGETCPS", _IOC_NONE, 0x4915, 0x00 }, -{ "linux/isdn.h", "IIOCGETDVR", _IOC_NONE, 0x4916, 0x00 }, -{ "linux/isdn.h", "IIOCGETMAP", _IOC_NONE, 0x4911, 0x00 }, -{ "linux/isdn.h", "IIOCGETPRF", _IOC_NONE, 0x490f, 0x00 }, -{ "linux/isdn.h", "IIOCGETSET", _IOC_NONE, 0x4908, 0x00 }, -{ "linux/isdn.h", "IIOCNETAIF", _IOC_NONE, 0x4901, 0x00 }, -{ "linux/isdn.h", "IIOCNETALN", _IOC_NONE, 0x4920, 0x00 }, -{ "linux/isdn.h", "IIOCNETANM", _IOC_NONE, 0x4905, 0x00 }, -{ "linux/isdn.h", "IIOCNETASL", _IOC_NONE, 0x4913, 0x00 }, -{ "linux/isdn.h", "IIOCNETDIF", _IOC_NONE, 0x4902, 0x00 }, -{ "linux/isdn.h", "IIOCNETDIL", _IOC_NONE, 0x4914, 0x00 }, -{ "linux/isdn.h", "IIOCNETDLN", _IOC_NONE, 0x4921, 0x00 }, -{ "linux/isdn.h", "IIOCNETDNM", _IOC_NONE, 0x4906, 0x00 }, -{ "linux/isdn.h", "IIOCNETDWRSET", _IOC_NONE, 0x4918, 0x00 }, -{ "linux/isdn.h", "IIOCNETGCF", _IOC_NONE, 0x4904, 0x00 }, -{ "linux/isdn.h", "IIOCNETGNM", _IOC_NONE, 0x4907, 0x00 }, -{ "linux/isdn.h", "IIOCNETGPN", _IOC_NONE, 0x4922, 0x00 }, -{ "linux/isdn.h", "IIOCNETHUP", _IOC_NONE, 0x490b, 0x00 }, -{ "linux/isdn.h", "IIOCNETLCR", _IOC_NONE, 0x4917, 0x00 }, -{ "linux/isdn.h", "IIOCNETSCF", _IOC_NONE, 0x4903, 0x00 }, -{ "linux/isdn.h", "IIOCSETBRJ", _IOC_NONE, 0x490d, 0x00 }, -{ "linux/isdn.h", "IIOCSETGST", _IOC_NONE, 0x490c, 0x00 }, -{ "linux/isdn.h", "IIOCSETMAP", _IOC_NONE, 0x4912, 0x00 }, -{ "linux/isdn.h", "IIOCSETPRF", _IOC_NONE, 0x4910, 0x00 }, -{ "linux/isdn.h", "IIOCSETSET", _IOC_NONE, 0x4909, 0x00 }, -{ "linux/isdn.h", "IIOCSETVER", _IOC_NONE, 0x490a, 0x00 }, -{ "linux/isdn.h", "IIOCSIGPRF", _IOC_NONE, 0x490e, 0x00 }, -{ "linux/isdn_ppp.h", "PPPIOCBUNDLE", _IOC_WRITE, 0x7481, 0x04 }, -{ "linux/isdn_ppp.h", "PPPIOCGCALLINFO", _IOC_READ|_IOC_WRITE, 0x7480, 0x88 }, -{ "linux/isdn_ppp.h", "PPPIOCGCOMPRESSORS", _IOC_READ, 0x7486, 0x20 }, -{ "linux/isdn_ppp.h", "PPPIOCGIFNAME", _IOC_READ, 0x7488, 0x10 }, -{ "linux/isdn_ppp.h", "PPPIOCGMPFLAGS", _IOC_READ, 0x7482, 0x04 }, -{ "linux/isdn_ppp.h", "PPPIOCSCOMPRESSOR", _IOC_WRITE, 0x7487, 0x04 }, -{ "linux/isdn_ppp.h", "PPPIOCSMPFLAGS", _IOC_WRITE, 0x7483, 0x04 }, -{ "linux/isdn_ppp.h", "PPPIOCSMPMRU", _IOC_WRITE, 0x7485, 0x04 }, -{ "linux/isdn_ppp.h", "PPPIOCSMPMTU", _IOC_WRITE, 0x7484, 0x04 }, +{ "linux/isst_if.h", "ISST_IF_GET_PHY_ID", _IOC_READ|_IOC_WRITE, 0xfe01, 0x04 }, +{ "linux/isst_if.h", "ISST_IF_GET_PLATFORM_INFO", _IOC_READ, 0xfe00, 0x04 }, +{ "linux/isst_if.h", "ISST_IF_IO_CMD", _IOC_WRITE, 0xfe02, 0x04 }, +{ "linux/isst_if.h", "ISST_IF_MBOX_COMMAND", _IOC_READ|_IOC_WRITE, 0xfe03, 0x04 }, +{ "linux/isst_if.h", "ISST_IF_MSR_COMMAND", _IOC_READ|_IOC_WRITE, 0xfe04, 0x04 }, { "linux/ivtv.h", "IVTV_IOC_DMA_FRAME", _IOC_WRITE, 0x56c0, 0x38 }, { "linux/ivtv.h", "IVTV_IOC_PASSTHROUGH_MODE", _IOC_WRITE, 0x56c1, 0x04 }, { "linux/ivtvfb.h", "IVTVFB_IOC_DMA_FRAME", _IOC_WRITE, 0x56c0, 0x0c }, @@ -1284,6 +1307,7 @@ { "linux/kcov.h", "KCOV_DISABLE", _IOC_NONE, 0x6365, 0x00 }, { "linux/kcov.h", "KCOV_ENABLE", _IOC_NONE, 0x6364, 0x00 }, { "linux/kcov.h", "KCOV_INIT_TRACE", _IOC_READ, 0x6301, 0x04 }, +{ "linux/kcov.h", "KCOV_REMOTE_ENABLE", _IOC_WRITE, 0x6366, 0x18 }, { "linux/kd.h", "GIO_CMAP", 0, 0x4B70, 0 }, { "linux/kd.h", "GIO_FONT", 0, 0x4B60, 0 }, { "linux/kd.h", "GIO_FONTX", 0, 0x4B6B, 0 }, @@ -1332,6 +1356,7 @@ { "linux/kd.h", "PIO_UNISCRNMAP", 0, 0x4B6A, 0 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_ACQUIRE_VM", _IOC_WRITE, 0x4b15, 0x08 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_ALLOC_MEMORY_OF_GPU", _IOC_READ|_IOC_WRITE, 0x4b16, 0x28 }, +{ "linux/kfd_ioctl.h", "AMDKFD_IOC_ALLOC_QUEUE_GWS", _IOC_READ|_IOC_WRITE, 0x4b1e, 0x10 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_CREATE_EVENT", _IOC_READ|_IOC_WRITE, 0x4b08, 0x20 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_CREATE_QUEUE", _IOC_READ|_IOC_WRITE, 0x4b02, 0x58 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_DBG_ADDRESS_WATCH", _IOC_WRITE, 0x4b0f, 0x10 }, @@ -1356,6 +1381,7 @@ { "linux/kfd_ioctl.h", "AMDKFD_IOC_SET_MEMORY_POLICY", _IOC_WRITE, 0x4b04, 0x20 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_SET_SCRATCH_BACKING_VA", _IOC_READ|_IOC_WRITE, 0x4b11, 0x10 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_SET_TRAP_HANDLER", _IOC_WRITE, 0x4b13, 0x18 }, +{ "linux/kfd_ioctl.h", "AMDKFD_IOC_SMI_EVENTS", _IOC_READ|_IOC_WRITE, 0x4b1f, 0x08 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_UNMAP_MEMORY_FROM_GPU", _IOC_READ|_IOC_WRITE, 0x4b19, 0x18 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_UPDATE_QUEUE", _IOC_WRITE, 0x4b07, 0x18 }, { "linux/kfd_ioctl.h", "AMDKFD_IOC_WAIT_EVENTS", _IOC_READ|_IOC_WRITE, 0x4b0c, 0x18 }, @@ -1389,6 +1415,7 @@ { "linux/lirc.h", "LIRC_SET_WIDEBAND_RECEIVER", _IOC_WRITE, 0x6923, 0x04 }, { "linux/loop.h", "LOOP_CHANGE_FD", 0, 0x4C06, 0 }, { "linux/loop.h", "LOOP_CLR_FD", 0, 0x4C01, 0 }, +{ "linux/loop.h", "LOOP_CONFIGURE", 0, 0x4C0A, 0 }, { "linux/loop.h", "LOOP_CTL_ADD", 0, 0x4C80, 0 }, { "linux/loop.h", "LOOP_CTL_GET_FREE", 0, 0x4C82, 0 }, { "linux/loop.h", "LOOP_CTL_REMOVE", 0, 0x4C81, 0 }, @@ -1490,8 +1517,10 @@ { "linux/nsfs.h", "NS_GET_OWNER_UID", _IOC_NONE, 0xb704, 0x00 }, { "linux/nsfs.h", "NS_GET_PARENT", _IOC_NONE, 0xb702, 0x00 }, { "linux/nsfs.h", "NS_GET_USERNS", _IOC_NONE, 0xb701, 0x00 }, +{ "linux/nvme_ioctl.h", "NVME_IOCTL_ADMIN64_CMD", _IOC_READ|_IOC_WRITE, 0x4e47, 0x50 }, { "linux/nvme_ioctl.h", "NVME_IOCTL_ADMIN_CMD", _IOC_READ|_IOC_WRITE, 0x4e41, 0x48 }, { "linux/nvme_ioctl.h", "NVME_IOCTL_ID", _IOC_NONE, 0x4e40, 0x00 }, +{ "linux/nvme_ioctl.h", "NVME_IOCTL_IO64_CMD", _IOC_READ|_IOC_WRITE, 0x4e48, 0x50 }, { "linux/nvme_ioctl.h", "NVME_IOCTL_IO_CMD", _IOC_READ|_IOC_WRITE, 0x4e43, 0x48 }, { "linux/nvme_ioctl.h", "NVME_IOCTL_RESCAN", _IOC_NONE, 0x4e46, 0x00 }, { "linux/nvme_ioctl.h", "NVME_IOCTL_RESET", _IOC_NONE, 0x4e44, 0x00 }, @@ -1531,6 +1560,7 @@ { "linux/omapfb.h", "OMAPFB_WAITFORGO", _IOC_NONE, 0x4f3c, 0x00 }, { "linux/omapfb.h", "OMAPFB_WAITFORVSYNC", _IOC_NONE, 0x4f39, 0x00 }, { "linux/pcitest.h", "PCITEST_BAR", _IOC_NONE, 0x5001, 0x00 }, +{ "linux/pcitest.h", "PCITEST_CLEAR_IRQ", _IOC_NONE, 0x5010, 0x00 }, { "linux/pcitest.h", "PCITEST_COPY", _IOC_WRITE, 0x5006, 0x04 }, { "linux/pcitest.h", "PCITEST_GET_IRQTYPE", _IOC_NONE, 0x5009, 0x00 }, { "linux/pcitest.h", "PCITEST_LEGACY_IRQ", _IOC_NONE, 0x5002, 0x00 }, @@ -1561,6 +1591,9 @@ { "linux/phantom.h", "PHN_SET_REG", _IOC_WRITE, 0x7001, 0x04 }, { "linux/phantom.h", "PHN_SET_REGS", _IOC_WRITE, 0x7003, 0x04 }, { "linux/pktcdvd.h", "PACKET_CTRL_CMD", _IOC_READ|_IOC_WRITE, 0x5801, 0x18 }, +{ "linux/platform_data/cros_ec_chardev.h", "CROS_EC_DEV_IOCEVENTMASK", _IOC_NONE, 0xec02, 0x00 }, +{ "linux/platform_data/cros_ec_chardev.h", "CROS_EC_DEV_IOCRDMEM", _IOC_READ|_IOC_WRITE, 0xec01, 0x108 }, +{ "linux/platform_data/cros_ec_chardev.h", "CROS_EC_DEV_IOCXCMD", _IOC_READ|_IOC_WRITE, 0xec00, 0x14 }, { "linux/platform_data/media/si4713.h", "SI4713_IOC_MEASURE_RNL", _IOC_READ|_IOC_WRITE, 0x56c0, 0x1c }, { "linux/pmu.h", "PMU_IOC_CAN_SLEEP", _IOC_READ, 0x4205, 0x04 }, { "linux/pmu.h", "PMU_IOC_GET_BACKLIGHT", _IOC_READ, 0x4201, 0x04 }, @@ -1602,6 +1635,8 @@ { "linux/ppp-ioctl.h", "PPPIOCGDEBUG", _IOC_READ, 0x7441, 0x04 }, { "linux/ppp-ioctl.h", "PPPIOCGFLAGS", _IOC_READ, 0x745a, 0x04 }, { "linux/ppp-ioctl.h", "PPPIOCGIDLE", _IOC_READ, 0x743f, 0x10 }, +{ "linux/ppp-ioctl.h", "PPPIOCGIDLE32", _IOC_READ, 0x743f, 0x08 }, +{ "linux/ppp-ioctl.h", "PPPIOCGIDLE64", _IOC_READ, 0x743f, 0x10 }, { "linux/ppp-ioctl.h", "PPPIOCGL2TPSTATS", _IOC_READ, 0x7436, 0x48 }, { "linux/ppp-ioctl.h", "PPPIOCGMRU", _IOC_READ, 0x7453, 0x04 }, { "linux/ppp-ioctl.h", "PPPIOCGNPMODE", _IOC_READ|_IOC_WRITE, 0x744c, 0x08 }, @@ -1635,14 +1670,23 @@ { "linux/pr.h", "IOC_PR_RESERVE", _IOC_WRITE, 0x70c9, 0x10 }, { "linux/psp-sev.h", "SEV_ISSUE_CMD", _IOC_READ|_IOC_WRITE, 0x5300, 0x10 }, { "linux/ptp_clock.h", "PTP_CLOCK_GETCAPS", _IOC_READ, 0x3d01, 0x50 }, +{ "linux/ptp_clock.h", "PTP_CLOCK_GETCAPS2", _IOC_READ, 0x3d0a, 0x50 }, { "linux/ptp_clock.h", "PTP_ENABLE_PPS", _IOC_WRITE, 0x3d04, 0x04 }, +{ "linux/ptp_clock.h", "PTP_ENABLE_PPS2", _IOC_WRITE, 0x3d0d, 0x04 }, { "linux/ptp_clock.h", "PTP_EXTTS_REQUEST", _IOC_WRITE, 0x3d02, 0x10 }, +{ "linux/ptp_clock.h", "PTP_EXTTS_REQUEST2", _IOC_WRITE, 0x3d0b, 0x10 }, { "linux/ptp_clock.h", "PTP_PEROUT_REQUEST", _IOC_WRITE, 0x3d03, 0x38 }, +{ "linux/ptp_clock.h", "PTP_PEROUT_REQUEST2", _IOC_WRITE, 0x3d0c, 0x38 }, { "linux/ptp_clock.h", "PTP_PIN_GETFUNC", _IOC_READ|_IOC_WRITE, 0x3d06, 0x60 }, +{ "linux/ptp_clock.h", "PTP_PIN_GETFUNC2", _IOC_READ|_IOC_WRITE, 0x3d0f, 0x60 }, { "linux/ptp_clock.h", "PTP_PIN_SETFUNC", _IOC_WRITE, 0x3d07, 0x60 }, +{ "linux/ptp_clock.h", "PTP_PIN_SETFUNC2", _IOC_WRITE, 0x3d10, 0x60 }, { "linux/ptp_clock.h", "PTP_SYS_OFFSET", _IOC_WRITE, 0x3d05, 0x340 }, +{ "linux/ptp_clock.h", "PTP_SYS_OFFSET2", _IOC_WRITE, 0x3d0e, 0x340 }, { "linux/ptp_clock.h", "PTP_SYS_OFFSET_EXTENDED", _IOC_READ|_IOC_WRITE, 0x3d09, 0x4c0 }, +{ "linux/ptp_clock.h", "PTP_SYS_OFFSET_EXTENDED2", _IOC_READ|_IOC_WRITE, 0x3d12, 0x4c0 }, { "linux/ptp_clock.h", "PTP_SYS_OFFSET_PRECISE", _IOC_READ|_IOC_WRITE, 0x3d08, 0x40 }, +{ "linux/ptp_clock.h", "PTP_SYS_OFFSET_PRECISE2", _IOC_READ|_IOC_WRITE, 0x3d11, 0x40 }, { "linux/radeonfb.h", "FBIO_RADEON_GET_MIRROR", _IOC_READ, 0x4003, 0x04 }, { "linux/radeonfb.h", "FBIO_RADEON_SET_MIRROR", _IOC_WRITE, 0x4004, 0x04 }, { "linux/raid/md_u.h", "ADD_NEW_DISK", _IOC_WRITE, 0x0921, 0x14 }, @@ -1677,6 +1721,8 @@ { "linux/raw.h", "RAW_GETBIND", _IOC_NONE, 0xac01, 0x00 }, { "linux/raw.h", "RAW_SETBIND", _IOC_NONE, 0xac00, 0x00 }, { "linux/reiserfs_fs.h", "REISERFS_IOC_UNPACK", _IOC_WRITE, 0xcd01, 0x04 }, +{ "linux/remoteproc_cdev.h", "RPROC_GET_SHUTDOWN_ON_RELEASE", _IOC_READ, 0xb702, 0x04 }, +{ "linux/remoteproc_cdev.h", "RPROC_SET_SHUTDOWN_ON_RELEASE", _IOC_WRITE, 0xb701, 0x04 }, { "linux/rfkill.h", "RFKILL_IOCTL_NOINPUT", _IOC_NONE, 0x5201, 0x00 }, { "linux/rio_cm_cdev.h", "RIO_CM_CHAN_ACCEPT", _IOC_READ|_IOC_WRITE, 0x6307, 0x08 }, { "linux/rio_cm_cdev.h", "RIO_CM_CHAN_BIND", _IOC_WRITE, 0x6305, 0x08 }, @@ -1754,7 +1800,8 @@ { "linux/scif_ioctl.h", "SCIF_VREADFROM", _IOC_READ|_IOC_WRITE, 0x730c, 0x28 }, { "linux/scif_ioctl.h", "SCIF_VWRITETO", _IOC_READ|_IOC_WRITE, 0x730d, 0x28 }, { "linux/scif_ioctl.h", "SCIF_WRITETO", _IOC_READ|_IOC_WRITE, 0x730b, 0x28 }, -{ "linux/seccomp.h", "SECCOMP_IOCTL_NOTIF_ID_VALID", _IOC_READ, 0x2102, 0x08 }, +{ "linux/seccomp.h", "SECCOMP_IOCTL_NOTIF_ADDFD", _IOC_WRITE, 0x2103, 0x18 }, +{ "linux/seccomp.h", "SECCOMP_IOCTL_NOTIF_ID_VALID", _IOC_WRITE, 0x2102, 0x08 }, { "linux/seccomp.h", "SECCOMP_IOCTL_NOTIF_RECV", _IOC_READ|_IOC_WRITE, 0x2100, 0x50 }, { "linux/seccomp.h", "SECCOMP_IOCTL_NOTIF_SEND", _IOC_READ|_IOC_WRITE, 0x2101, 0x18 }, { "linux/sed-opal.h", "IOC_OPAL_ACTIVATE_LSP", _IOC_WRITE, 0x70df, 0x118 }, @@ -1762,13 +1809,17 @@ { "linux/sed-opal.h", "IOC_OPAL_ADD_USR_TO_LR", _IOC_WRITE, 0x70e4, 0x118 }, { "linux/sed-opal.h", "IOC_OPAL_ENABLE_DISABLE_MBR", _IOC_WRITE, 0x70e5, 0x110 }, { "linux/sed-opal.h", "IOC_OPAL_ERASE_LR", _IOC_WRITE, 0x70e6, 0x110 }, +{ "linux/sed-opal.h", "IOC_OPAL_GENERIC_TABLE_RW", _IOC_WRITE, 0x70eb, 0x138 }, { "linux/sed-opal.h", "IOC_OPAL_LOCK_UNLOCK", _IOC_WRITE, 0x70dd, 0x118 }, { "linux/sed-opal.h", "IOC_OPAL_LR_SETUP", _IOC_WRITE, 0x70e3, 0x128 }, +{ "linux/sed-opal.h", "IOC_OPAL_MBR_DONE", _IOC_WRITE, 0x70e9, 0x110 }, +{ "linux/sed-opal.h", "IOC_OPAL_PSID_REVERT_TPR", _IOC_WRITE, 0x70e8, 0x108 }, { "linux/sed-opal.h", "IOC_OPAL_REVERT_TPR", _IOC_WRITE, 0x70e2, 0x108 }, { "linux/sed-opal.h", "IOC_OPAL_SAVE", _IOC_WRITE, 0x70dc, 0x118 }, { "linux/sed-opal.h", "IOC_OPAL_SECURE_ERASE_LR", _IOC_WRITE, 0x70e7, 0x110 }, { "linux/sed-opal.h", "IOC_OPAL_SET_PW", _IOC_WRITE, 0x70e0, 0x220 }, { "linux/sed-opal.h", "IOC_OPAL_TAKE_OWNERSHIP", _IOC_WRITE, 0x70de, 0x108 }, +{ "linux/sed-opal.h", "IOC_OPAL_WRITE_SHADOW_MBR", _IOC_WRITE, 0x70ea, 0x120 }, { "linux/serio.h", "SPIOCSTYPE", _IOC_WRITE, 0x7101, 0x04 }, { "linux/sockios.h", "SIOCADDDLCI", 0, 0x8980, 0 }, { "linux/sockios.h", "SIOCADDMULTI", 0, 0x8931, 0 }, @@ -1817,6 +1868,8 @@ { "linux/sockios.h", "SIOCGMIIREG", 0, 0x8948, 0 }, { "linux/sockios.h", "SIOCGRARP", 0, 0x8961, 0 }, { "linux/sockios.h", "SIOCGSKNS", 0, 0x894C, 0 }, +{ "linux/sockios.h", "SIOCGSTAMPNS_NEW", _IOC_READ, 0x8907, 0x10 }, +{ "linux/sockios.h", "SIOCGSTAMP_NEW", _IOC_READ, 0x8906, 0x10 }, { "linux/sockios.h", "SIOCOUTQNSD", 0, 0x894B, 0 }, { "linux/sockios.h", "SIOCPROTOPRIVATE", 0, 0x89E0, 0 }, { "linux/sockios.h", "SIOCRTMSG", 0, 0x890D, 0 }, @@ -1982,7 +2035,8 @@ { "linux/suspend_ioctls.h", "SNAPSHOT_SET_SWAP_AREA", _IOC_WRITE, 0x330d, 0x0c }, { "linux/suspend_ioctls.h", "SNAPSHOT_UNFREEZE", _IOC_NONE, 0x3302, 0x00 }, { "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_CTL", _IOC_READ|_IOC_WRITE, 0x5743, 0x28 }, -{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_SUMMARY", _IOC_READ, 0x5742, 0x198 }, +{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_SUMMARY", _IOC_READ, 0x5742, 0x4d8 }, +{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_SUMMARY_LEGACY", _IOC_READ, 0x5742, 0x198 }, { "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_FLASH_INFO", _IOC_READ, 0x5740, 0x10 }, { "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_FLASH_PART_INFO", _IOC_READ|_IOC_WRITE, 0x5741, 0x10 }, { "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_PFF_TO_PORT", _IOC_READ|_IOC_WRITE, 0x5744, 0x0c }, @@ -2063,6 +2117,22 @@ { "linux/usb/iowarrior.h", "IOW_GETINFO", _IOC_READ, 0xc003, 0x28 }, { "linux/usb/iowarrior.h", "IOW_READ", _IOC_WRITE, 0xc002, 0x04 }, { "linux/usb/iowarrior.h", "IOW_WRITE", _IOC_WRITE, 0xc001, 0x04 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_CONFIGURE", _IOC_NONE, 0x5509, 0x00 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP0_READ", _IOC_READ|_IOC_WRITE, 0x5504, 0x08 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP0_STALL", _IOC_NONE, 0x550c, 0x00 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP0_WRITE", _IOC_WRITE, 0x5503, 0x08 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EPS_INFO", _IOC_READ, 0x550b, 0x3c0 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_CLEAR_HALT", _IOC_WRITE, 0x550e, 0x04 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_DISABLE", _IOC_WRITE, 0x5506, 0x04 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_ENABLE", _IOC_WRITE, 0x5505, 0x09 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_READ", _IOC_READ|_IOC_WRITE, 0x5508, 0x08 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_SET_HALT", _IOC_WRITE, 0x550d, 0x04 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_SET_WEDGE", _IOC_WRITE, 0x550f, 0x04 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EP_WRITE", _IOC_WRITE, 0x5507, 0x08 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_EVENT_FETCH", _IOC_READ, 0x5502, 0x08 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_INIT", _IOC_WRITE, 0x5500, 0x101 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_RUN", _IOC_NONE, 0x5501, 0x00 }, +{ "linux/usb/raw_gadget.h", "USB_RAW_IOCTL_VBUS_DRAW", _IOC_WRITE, 0x550a, 0x04 }, { "linux/usb/tmc.h", "USBTMC488_IOCTL_GET_CAPS", _IOC_READ, 0x5b11, 0x01 }, { "linux/usb/tmc.h", "USBTMC488_IOCTL_GOTO_LOCAL", _IOC_NONE, 0x5b14, 0x00 }, { "linux/usb/tmc.h", "USBTMC488_IOCTL_LOCAL_LOCKOUT", _IOC_NONE, 0x5b15, 0x00 }, @@ -2090,6 +2160,7 @@ { "linux/usb/tmc.h", "USBTMC_IOCTL_WRITE", _IOC_READ|_IOC_WRITE, 0x5b0d, 0x10 }, { "linux/usb/tmc.h", "USBTMC_IOCTL_WRITE_RESULT", _IOC_READ|_IOC_WRITE, 0x5b0f, 0x04 }, { "linux/usbdevice_fs.h", "USBDEVFS_ALLOC_STREAMS", _IOC_READ, 0x551c, 0x08 }, +{ "linux/usbdevice_fs.h", "USBDEVFS_ALLOW_SUSPEND", _IOC_NONE, 0x5522, 0x00 }, { "linux/usbdevice_fs.h", "USBDEVFS_BULK", _IOC_READ|_IOC_WRITE, 0x5502, 0x10 }, { "linux/usbdevice_fs.h", "USBDEVFS_BULK32", _IOC_READ|_IOC_WRITE, 0x5502, 0x10 }, { "linux/usbdevice_fs.h", "USBDEVFS_CLAIMINTERFACE", _IOC_READ, 0x550f, 0x04 }, @@ -2105,6 +2176,7 @@ { "linux/usbdevice_fs.h", "USBDEVFS_DISCSIGNAL", _IOC_READ, 0x550e, 0x08 }, { "linux/usbdevice_fs.h", "USBDEVFS_DISCSIGNAL32", _IOC_READ, 0x550e, 0x08 }, { "linux/usbdevice_fs.h", "USBDEVFS_DROP_PRIVILEGES", _IOC_WRITE, 0x551e, 0x04 }, +{ "linux/usbdevice_fs.h", "USBDEVFS_FORBID_SUSPEND", _IOC_NONE, 0x5521, 0x00 }, { "linux/usbdevice_fs.h", "USBDEVFS_FREE_STREAMS", _IOC_READ, 0x551d, 0x08 }, { "linux/usbdevice_fs.h", "USBDEVFS_GETDRIVER", _IOC_WRITE, 0x5508, 0x104 }, { "linux/usbdevice_fs.h", "USBDEVFS_GET_CAPABILITIES", _IOC_READ, 0x551a, 0x04 }, @@ -2124,11 +2196,13 @@ { "linux/usbdevice_fs.h", "USBDEVFS_SETINTERFACE", _IOC_READ, 0x5504, 0x08 }, { "linux/usbdevice_fs.h", "USBDEVFS_SUBMITURB", _IOC_READ, 0x550a, 0x2c }, { "linux/usbdevice_fs.h", "USBDEVFS_SUBMITURB32", _IOC_READ, 0x550a, 0x2a }, +{ "linux/usbdevice_fs.h", "USBDEVFS_WAIT_FOR_RESUME", _IOC_NONE, 0x5523, 0x00 }, { "linux/userfaultfd.h", "UFFDIO_API", _IOC_READ|_IOC_WRITE, 0xaa3f, 0x18 }, { "linux/userfaultfd.h", "UFFDIO_COPY", _IOC_READ|_IOC_WRITE, 0xaa03, 0x28 }, { "linux/userfaultfd.h", "UFFDIO_REGISTER", _IOC_READ|_IOC_WRITE, 0xaa00, 0x20 }, { "linux/userfaultfd.h", "UFFDIO_UNREGISTER", _IOC_READ, 0xaa01, 0x10 }, { "linux/userfaultfd.h", "UFFDIO_WAKE", _IOC_READ, 0xaa02, 0x10 }, +{ "linux/userfaultfd.h", "UFFDIO_WRITEPROTECT", _IOC_READ|_IOC_WRITE, 0xaa06, 0x18 }, { "linux/userfaultfd.h", "UFFDIO_ZEROPAGE", _IOC_READ|_IOC_WRITE, 0xaa04, 0x20 }, { "linux/uvcvideo.h", "UVCIOC_CTRL_MAP", _IOC_READ|_IOC_WRITE, 0x7520, 0x58 }, { "linux/uvcvideo.h", "UVCIOC_CTRL_QUERY", _IOC_READ|_IOC_WRITE, 0x7521, 0x0c }, @@ -2139,10 +2213,12 @@ { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_G_FMT", _IOC_READ|_IOC_WRITE, 0x5604, 0x58 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_G_FRAME_INTERVAL", _IOC_READ|_IOC_WRITE, 0x5615, 0x30 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_G_SELECTION", _IOC_READ|_IOC_WRITE, 0x563d, 0x40 }, +{ "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_QUERYCAP", _IOC_READ, 0x5600, 0x40 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_S_CROP", _IOC_READ|_IOC_WRITE, 0x563c, 0x38 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_S_FMT", _IOC_READ|_IOC_WRITE, 0x5605, 0x58 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_S_FRAME_INTERVAL", _IOC_READ|_IOC_WRITE, 0x5616, 0x30 }, { "linux/v4l2-subdev.h", "VIDIOC_SUBDEV_S_SELECTION", _IOC_READ|_IOC_WRITE, 0x563e, 0x40 }, +{ "linux/vboxguest.h", "VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES", _IOC_READ|_IOC_WRITE, 0x560d, 0x24 }, { "linux/vboxguest.h", "VBG_IOCTL_CHANGE_FILTER_MASK", _IOC_READ|_IOC_WRITE, 0x560c, 0x20 }, { "linux/vboxguest.h", "VBG_IOCTL_CHANGE_GUEST_CAPABILITIES", _IOC_READ|_IOC_WRITE, 0x560e, 0x20 }, { "linux/vboxguest.h", "VBG_IOCTL_CHECK_BALLOON", _IOC_READ|_IOC_WRITE, 0x5611, 0x20 }, @@ -2150,10 +2226,11 @@ { "linux/vboxguest.h", "VBG_IOCTL_HGCM_CONNECT", _IOC_READ|_IOC_WRITE, 0x5604, 0x9c }, { "linux/vboxguest.h", "VBG_IOCTL_HGCM_DISCONNECT", _IOC_READ|_IOC_WRITE, 0x5605, 0x1c }, { "linux/vboxguest.h", "VBG_IOCTL_INTERRUPT_ALL_WAIT_FOR_EVENTS", _IOC_READ|_IOC_WRITE, 0x560b, 0x18 }, -{ "linux/vboxguest.h", "VBG_IOCTL_VMMDEV_REQUEST_BIG", _IOC_READ|_IOC_WRITE, 0x5603, 0x00 }, +{ "linux/vboxguest.h", "VBG_IOCTL_VMMDEV_REQUEST_BIG", _IOC_NONE, 0x5603, 0x00 }, { "linux/vboxguest.h", "VBG_IOCTL_WAIT_FOR_EVENTS", _IOC_READ|_IOC_WRITE, 0x560a, 0x20 }, { "linux/vboxguest.h", "VBG_IOCTL_WRITE_CORE_DUMP", _IOC_READ|_IOC_WRITE, 0x5613, 0x1c }, { "linux/vfio.h", "VFIO_CHECK_EXTENSION", _IOC_NONE, 0x3b65, 0x00 }, +{ "linux/vfio.h", "VFIO_DEVICE_FEATURE", _IOC_NONE, 0x3b75, 0x00 }, { "linux/vfio.h", "VFIO_DEVICE_GET_GFX_DMABUF", _IOC_NONE, 0x3b73, 0x00 }, { "linux/vfio.h", "VFIO_DEVICE_GET_INFO", _IOC_NONE, 0x3b6b, 0x00 }, { "linux/vfio.h", "VFIO_DEVICE_GET_IRQ_INFO", _IOC_NONE, 0x3b6d, 0x00 }, @@ -2170,6 +2247,7 @@ { "linux/vfio.h", "VFIO_GROUP_GET_STATUS", _IOC_NONE, 0x3b67, 0x00 }, { "linux/vfio.h", "VFIO_GROUP_SET_CONTAINER", _IOC_NONE, 0x3b68, 0x00 }, { "linux/vfio.h", "VFIO_GROUP_UNSET_CONTAINER", _IOC_NONE, 0x3b69, 0x00 }, +{ "linux/vfio.h", "VFIO_IOMMU_DIRTY_PAGES", _IOC_NONE, 0x3b75, 0x00 }, { "linux/vfio.h", "VFIO_IOMMU_DISABLE", _IOC_NONE, 0x3b74, 0x00 }, { "linux/vfio.h", "VFIO_IOMMU_ENABLE", _IOC_NONE, 0x3b73, 0x00 }, { "linux/vfio.h", "VFIO_IOMMU_GET_INFO", _IOC_NONE, 0x3b70, 0x00 }, @@ -2207,6 +2285,14 @@ { "linux/vhost.h", "VHOST_SET_VRING_ERR", _IOC_WRITE, 0xaf22, 0x08 }, { "linux/vhost.h", "VHOST_SET_VRING_KICK", _IOC_WRITE, 0xaf20, 0x08 }, { "linux/vhost.h", "VHOST_SET_VRING_NUM", _IOC_WRITE, 0xaf10, 0x08 }, +{ "linux/vhost.h", "VHOST_VDPA_GET_CONFIG", _IOC_READ, 0xaf73, 0x08 }, +{ "linux/vhost.h", "VHOST_VDPA_GET_DEVICE_ID", _IOC_READ, 0xaf70, 0x04 }, +{ "linux/vhost.h", "VHOST_VDPA_GET_STATUS", _IOC_READ, 0xaf71, 0x01 }, +{ "linux/vhost.h", "VHOST_VDPA_GET_VRING_NUM", _IOC_READ, 0xaf76, 0x02 }, +{ "linux/vhost.h", "VHOST_VDPA_SET_CONFIG", _IOC_WRITE, 0xaf74, 0x08 }, +{ "linux/vhost.h", "VHOST_VDPA_SET_CONFIG_CALL", _IOC_WRITE, 0xaf77, 0x04 }, +{ "linux/vhost.h", "VHOST_VDPA_SET_STATUS", _IOC_WRITE, 0xaf72, 0x01 }, +{ "linux/vhost.h", "VHOST_VDPA_SET_VRING_ENABLE", _IOC_WRITE, 0xaf75, 0x08 }, { "linux/vhost.h", "VHOST_VSOCK_SET_GUEST_CID", _IOC_WRITE, 0xaf60, 0x08 }, { "linux/vhost.h", "VHOST_VSOCK_SET_RUNNING", _IOC_WRITE, 0xaf61, 0x04 }, { "linux/videodev2.h", "VIDIOC_CREATE_BUFS", _IOC_READ|_IOC_WRITE, 0x565c, 0xf8 }, @@ -2329,6 +2415,8 @@ { "linux/vt.h", "VT_WAITACTIVE", 0, 0x5607, 0 }, { "linux/vt.h", "VT_WAITEVENT", 0, 0x560E, 0 }, { "linux/vtpm_proxy.h", "VTPM_PROXY_IOC_NEW_DEV", _IOC_READ|_IOC_WRITE, 0xa100, 0x14 }, +{ "linux/watch_queue.h", "IOC_WATCH_QUEUE_SET_FILTER", _IOC_NONE, 0x5761, 0x00 }, +{ "linux/watch_queue.h", "IOC_WATCH_QUEUE_SET_SIZE", _IOC_NONE, 0x5760, 0x00 }, { "linux/watchdog.h", "WDIOC_GETBOOTSTATUS", _IOC_READ, 0x5702, 0x04 }, { "linux/watchdog.h", "WDIOC_GETPRETIMEOUT", _IOC_READ, 0x5709, 0x04 }, { "linux/watchdog.h", "WDIOC_GETSTATUS", _IOC_READ, 0x5701, 0x04 }, @@ -2404,6 +2492,11 @@ { "media/i2c/saa6588.h", "SAA6588_CMD_READ", _IOC_READ, 0x5203, 0x04 }, { "media/v4l2-common.h", "TUNER_SET_CONFIG", _IOC_WRITE, 0x645c, 0x08 }, { "media/v4l2-common.h", "VIDIOC_INT_RESET", _IOC_WRITE, 0x6466, 0x04 }, +{ "media/v4l2-ioctl.h", "VIDIOC_DQBUF_TIME32", _IOC_READ|_IOC_WRITE, 0x5611, 0x44 }, +{ "media/v4l2-ioctl.h", "VIDIOC_DQEVENT_TIME32", _IOC_READ, 0x5659, 0x80 }, +{ "media/v4l2-ioctl.h", "VIDIOC_PREPARE_BUF_TIME32", _IOC_READ|_IOC_WRITE, 0x565d, 0x44 }, +{ "media/v4l2-ioctl.h", "VIDIOC_QBUF_TIME32", _IOC_READ|_IOC_WRITE, 0x560f, 0x44 }, +{ "media/v4l2-ioctl.h", "VIDIOC_QUERYBUF_TIME32", _IOC_READ|_IOC_WRITE, 0x5609, 0x44 }, { "media/v4l2-subdev.h", "V4L2_DEVICE_NOTIFY_EVENT", _IOC_WRITE, 0x7602, 0x88 }, { "media/v4l2-subdev.h", "V4L2_SUBDEV_IR_RX_NOTIFY", _IOC_WRITE, 0x7600, 0x04 }, { "media/v4l2-subdev.h", "V4L2_SUBDEV_IR_TX_NOTIFY", _IOC_WRITE, 0x7601, 0x04 }, @@ -2417,8 +2510,11 @@ { "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_ATTACH", _IOC_NONE, 0x5204, 0x00 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_INIT_CREATE", _IOC_READ|_IOC_WRITE, 0x5205, 0x18 }, { "misc/fastrpc.h", "FASTRPC_IOCTL_INVOKE", _IOC_READ|_IOC_WRITE, 0x5203, 0x10 }, +{ "misc/fastrpc.h", "FASTRPC_IOCTL_MMAP", _IOC_READ|_IOC_WRITE, 0x5206, 0x20 }, +{ "misc/fastrpc.h", "FASTRPC_IOCTL_MUNMAP", _IOC_READ|_IOC_WRITE, 0x5207, 0x10 }, { "misc/habanalabs.h", "HL_IOCTL_CB", _IOC_READ|_IOC_WRITE, 0x4802, 0x18 }, { "misc/habanalabs.h", "HL_IOCTL_CS", _IOC_READ|_IOC_WRITE, 0x4803, 0x30 }, +{ "misc/habanalabs.h", "HL_IOCTL_DEBUG", _IOC_READ|_IOC_WRITE, 0x4806, 0x28 }, { "misc/habanalabs.h", "HL_IOCTL_INFO", _IOC_READ|_IOC_WRITE, 0x4801, 0x18 }, { "misc/habanalabs.h", "HL_IOCTL_MEMORY", _IOC_READ|_IOC_WRITE, 0x4805, 0x28 }, { "misc/habanalabs.h", "HL_IOCTL_WAIT_CS", _IOC_READ|_IOC_WRITE, 0x4804, 0x18 }, @@ -2429,6 +2525,23 @@ { "misc/ocxl.h", "OCXL_IOCTL_IRQ_ALLOC", _IOC_READ, 0xca11, 0x08 }, { "misc/ocxl.h", "OCXL_IOCTL_IRQ_FREE", _IOC_WRITE, 0xca12, 0x08 }, { "misc/ocxl.h", "OCXL_IOCTL_IRQ_SET_FD", _IOC_WRITE, 0xca13, 0x10 }, +{ "misc/uacce/hisi_qm.h", "UACCE_CMD_QM_SET_QP_CTX", _IOC_READ|_IOC_WRITE, 0x480a, 0x04 }, +{ "misc/uacce/uacce.h", "UACCE_CMD_PUT_Q", _IOC_NONE, 0x5701, 0x00 }, +{ "misc/uacce/uacce.h", "UACCE_CMD_START_Q", _IOC_NONE, 0x5700, 0x00 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_ADD_LDPC_CODE_PARAMS", _IOC_WRITE, 0x6605, 0x4c }, +{ "misc/xilinx_sdfec.h", "XSDFEC_CLEAR_STATS", _IOC_NONE, 0x660b, 0x00 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_GET_CONFIG", _IOC_READ, 0x6606, 0x1c }, +{ "misc/xilinx_sdfec.h", "XSDFEC_GET_STATS", _IOC_READ, 0x660c, 0x0c }, +{ "misc/xilinx_sdfec.h", "XSDFEC_GET_STATUS", _IOC_READ, 0x6602, 0x08 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_GET_TURBO", _IOC_READ, 0x6607, 0x08 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_IS_ACTIVE", _IOC_READ, 0x660a, 0x01 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_SET_BYPASS", _IOC_WRITE, 0x6609, 0x01 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_SET_DEFAULT_CONFIG", _IOC_NONE, 0x660d, 0x00 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_SET_IRQ", _IOC_WRITE, 0x6603, 0x02 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_SET_ORDER", _IOC_WRITE, 0x6608, 0x04 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_SET_TURBO", _IOC_WRITE, 0x6604, 0x08 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_START_DEV", _IOC_NONE, 0x6600, 0x00 }, +{ "misc/xilinx_sdfec.h", "XSDFEC_STOP_DEV", _IOC_NONE, 0x6601, 0x00 }, { "mtd/mtd-abi.h", "ECCGETLAYOUT", _IOC_READ, 0x4d11, 0x148 }, { "mtd/mtd-abi.h", "ECCGETSTATS", _IOC_READ, 0x4d12, 0x10 }, { "mtd/mtd-abi.h", "MEMERASE", _IOC_WRITE, 0x4d02, 0x08 }, @@ -2667,7 +2780,8 @@ { "sound/asound.h", "SNDRV_TIMER_IOCTL_START", _IOC_NONE, 0x54a0, 0x00 }, { "sound/asound.h", "SNDRV_TIMER_IOCTL_STATUS", _IOC_READ, 0x5414, 0x60 }, { "sound/asound.h", "SNDRV_TIMER_IOCTL_STOP", _IOC_NONE, 0x54a1, 0x00 }, -{ "sound/asound.h", "SNDRV_TIMER_IOCTL_TREAD", _IOC_WRITE, 0x5402, 0x04 }, +{ "sound/asound.h", "SNDRV_TIMER_IOCTL_TREAD64", _IOC_WRITE, 0x54a4, 0x04 }, +{ "sound/asound.h", "SNDRV_TIMER_IOCTL_TREAD_OLD", _IOC_WRITE, 0x5402, 0x04 }, { "sound/asound_fm.h", "SNDRV_DM_FM_IOCTL_CLEAR_PATCHES", _IOC_NONE, 0x4840, 0x00 }, { "sound/asound_fm.h", "SNDRV_DM_FM_IOCTL_INFO", _IOC_READ, 0x4820, 0x02 }, { "sound/asound_fm.h", "SNDRV_DM_FM_IOCTL_PLAY_NOTE", _IOC_WRITE, 0x4822, 0x0c }, @@ -2725,6 +2839,10 @@ { "sound/hdspm.h", "SNDRV_HDSPM_IOCTL_GET_PEAK_RMS", _IOC_READ, 0x4842, 0x908 }, { "sound/hdspm.h", "SNDRV_HDSPM_IOCTL_GET_STATUS", _IOC_READ, 0x4847, 0x20 }, { "sound/hdspm.h", "SNDRV_HDSPM_IOCTL_GET_VERSION", _IOC_READ, 0x4848, 0x24 }, +{ "sound/pcm.h", "SNDRV_PCM_IOCTL_STATUS32", _IOC_READ, 0x4120, 0x6c }, +{ "sound/pcm.h", "SNDRV_PCM_IOCTL_STATUS64", _IOC_READ, 0x4120, 0x80 }, +{ "sound/pcm.h", "SNDRV_PCM_IOCTL_STATUS_EXT32", _IOC_READ|_IOC_WRITE, 0x4124, 0x6c }, +{ "sound/pcm.h", "SNDRV_PCM_IOCTL_STATUS_EXT64", _IOC_READ|_IOC_WRITE, 0x4124, 0x80 }, { "sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_INFO", _IOC_READ, 0x4810, 0x28 }, { "sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_LOAD_CODE", _IOC_WRITE, 0x4811, 0x3012 }, { "sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_PAUSE", _IOC_NONE, 0x4815, 0x00 }, @@ -2751,15 +2869,6 @@ { "staging/android/ashmem.h", "ASHMEM_UNPIN", _IOC_WRITE, 0x7708, 0x08 }, { "staging/android/ion.h", "ION_IOC_ALLOC", _IOC_READ|_IOC_WRITE, 0x4900, 0x18 }, { "staging/android/ion.h", "ION_IOC_HEAP_QUERY", _IOC_READ|_IOC_WRITE, 0x4908, 0x18 }, -{ "staging/android/vsoc_shm.h", "VSOC_COND_WAIT", _IOC_READ|_IOC_WRITE, 0xf507, 0x20 }, -{ "staging/android/vsoc_shm.h", "VSOC_COND_WAKE", _IOC_NONE, 0xf508, 0x00 }, -{ "staging/android/vsoc_shm.h", "VSOC_CREATE_FD_SCOPED_PERMISSION", _IOC_WRITE, 0xf500, 0x10 }, -{ "staging/android/vsoc_shm.h", "VSOC_DESCRIBE_REGION", _IOC_READ, 0xf504, 0x3c }, -{ "staging/android/vsoc_shm.h", "VSOC_GET_FD_SCOPED_PERMISSION", _IOC_READ, 0xf501, 0x10 }, -{ "staging/android/vsoc_shm.h", "VSOC_MAYBE_SEND_INTERRUPT_TO_HOST", _IOC_NONE, 0xf502, 0x00 }, -{ "staging/android/vsoc_shm.h", "VSOC_SELF_INTERRUPT", _IOC_NONE, 0xf505, 0x00 }, -{ "staging/android/vsoc_shm.h", "VSOC_SEND_INTERRUPT_TO_HOST", _IOC_NONE, 0xf506, 0x00 }, -{ "staging/android/vsoc_shm.h", "VSOC_WAIT_FOR_INCOMING_INTERRUPT", _IOC_NONE, 0xf503, 0x00 }, { "video/da8xx-fb.h", "FBIGET_BRIGHTNESS", _IOC_READ, 0x4603, 0x04 }, { "video/da8xx-fb.h", "FBIGET_COLOR", _IOC_READ, 0x4605, 0x04 }, { "video/da8xx-fb.h", "FBIOGET_CONTRAST", _IOC_READ, 0x4601, 0x04 }, diff --git a/linux/x32/syscallent.h b/linux/x32/syscallent.h index 76d4676e..d4eaf8c1 100644 --- a/linux/x32/syscallent.h +++ b/linux/x32/syscallent.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2019 The strace developers. + * Copyright (c) 2012-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -67,7 +67,7 @@ [ 59] = { 3, TF|TP|SE|SI, SEN(printargs), "execve#64" }, [ 60] = { 1, TP|SE, SEN(exit), "exit" }, [ 61] = { 4, TP, SEN(wait4), "wait4" }, -[ 62] = { 2, TS, SEN(kill), "kill" }, +[ 62] = { 2, TS|TP, SEN(kill), "kill" }, [ 63] = { 1, 0, SEN(uname), "uname" }, [ 64] = { 3, TI, SEN(semget), "semget" }, [ 65] = { 3, TI, SEN(semop), "semop" }, @@ -101,40 +101,40 @@ [ 93] = { 3, TD, SEN(fchown), "fchown" }, [ 94] = { 3, TF, SEN(chown), "lchown" }, [ 95] = { 1, NF, SEN(umask), "umask" }, -[ 96] = { 2, 0, SEN(gettimeofday), "gettimeofday" }, +[ 96] = { 2, TCL, SEN(gettimeofday), "gettimeofday" }, [ 97] = { 2, 0, SEN(getrlimit), "getrlimit" }, [ 98] = { 2, 0, SEN(getrusage), "getrusage" }, [ 99] = { 1, 0, SEN(sysinfo), "sysinfo" }, [100] = { 1, 0, SEN(times), "times" }, [101] = { 4, 0, SEN(printargs), "ptrace#64" }, -[102] = { 0, PU|NF, SEN(getuid), "getuid" }, +[102] = { 0, TC|PU|NF, SEN(getuid), "getuid" }, [103] = { 3, 0, SEN(syslog), "syslog" }, -[104] = { 0, PU|NF, SEN(getgid), "getgid" }, -[105] = { 1, 0, SEN(setuid), "setuid" }, -[106] = { 1, 0, SEN(setgid), "setgid" }, -[107] = { 0, PU|NF, SEN(geteuid), "geteuid" }, -[108] = { 0, PU|NF, SEN(getegid), "getegid" }, +[104] = { 0, TC|PU|NF, SEN(getgid), "getgid" }, +[105] = { 1, TC, SEN(setuid), "setuid" }, +[106] = { 1, TC, SEN(setgid), "setgid" }, +[107] = { 0, TC|PU|NF, SEN(geteuid), "geteuid" }, +[108] = { 0, TC|PU|NF, SEN(getegid), "getegid" }, [109] = { 2, 0, SEN(setpgid), "setpgid" }, [110] = { 0, PU|NF, SEN(getppid), "getppid" }, [111] = { 0, PU|NF, SEN(getpgrp), "getpgrp" }, [112] = { 0, 0, SEN(setsid), "setsid" }, -[113] = { 2, 0, SEN(setreuid), "setreuid" }, -[114] = { 2, 0, SEN(setregid), "setregid" }, -[115] = { 2, 0, SEN(getgroups), "getgroups" }, -[116] = { 2, 0, SEN(setgroups), "setgroups" }, -[117] = { 3, 0, SEN(setresuid), "setresuid" }, -[118] = { 3, 0, SEN(getresuid), "getresuid" }, -[119] = { 3, 0, SEN(setresgid), "setresgid" }, -[120] = { 3, 0, SEN(getresgid), "getresgid" }, +[113] = { 2, TC, SEN(setreuid), "setreuid" }, +[114] = { 2, TC, SEN(setregid), "setregid" }, +[115] = { 2, TC, SEN(getgroups), "getgroups" }, +[116] = { 2, TC, SEN(setgroups), "setgroups" }, +[117] = { 3, TC, SEN(setresuid), "setresuid" }, +[118] = { 3, TC, SEN(getresuid), "getresuid" }, +[119] = { 3, TC, SEN(setresgid), "setresgid" }, +[120] = { 3, TC, SEN(getresgid), "getresgid" }, [121] = { 1, 0, SEN(getpgid), "getpgid" }, -[122] = { 1, NF, SEN(setfsuid), "setfsuid" }, -[123] = { 1, NF, SEN(setfsgid), "setfsgid" }, +[122] = { 1, TC|NF, SEN(setfsuid), "setfsuid" }, +[123] = { 1, TC|NF, SEN(setfsgid), "setfsgid" }, [124] = { 1, 0, SEN(getsid), "getsid" }, -[125] = { 2, 0, SEN(capget), "capget" }, -[126] = { 2, 0, SEN(capset), "capset" }, +[125] = { 2, TC, SEN(capget), "capget" }, +[126] = { 2, TC, SEN(capset), "capset" }, [127] = { 2, TS, SEN(printargs), "rt_sigpending#64" }, [128] = { 4, TS, SEN(printargs), "rt_sigtimedwait#64" }, -[129] = { 3, TS, SEN(printargs), "rt_sigqueueinfo#64" }, +[129] = { 3, TS|TP, SEN(printargs), "rt_sigqueueinfo#64" }, [130] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" }, [131] = { 2, TS, SEN(printargs), "sigaltstack#64" }, [132] = { 2, TF, SEN(utime), "utime" }, @@ -162,14 +162,14 @@ [154] = { 3, 0, SEN(modify_ldt), "modify_ldt" }, [155] = { 2, TF, SEN(pivotroot), "pivot_root" }, [156] = { 1, 0, SEN(printargs), "_sysctl#64" }, -[157] = { 5, 0, SEN(prctl), "prctl" }, -[158] = { 2, TP, SEN(arch_prctl), "arch_prctl" }, -[159] = { 1, 0, SEN(adjtimex64), "adjtimex" }, +[157] = { 5, TC, SEN(prctl), "prctl" }, +[158] = { 2, 0, SEN(arch_prctl), "arch_prctl" }, +[159] = { 1, TCL, SEN(adjtimex64), "adjtimex" }, [160] = { 2, 0, SEN(setrlimit), "setrlimit" }, [161] = { 1, TF, SEN(chroot), "chroot" }, [162] = { 0, 0, SEN(sync), "sync" }, [163] = { 1, TF, SEN(acct), "acct" }, -[164] = { 2, 0, SEN(settimeofday), "settimeofday" }, +[164] = { 2, TCL, SEN(settimeofday), "settimeofday" }, [165] = { 5, TF, SEN(mount), "mount" }, [166] = { 2, TF, SEN(umount2), "umount2" }, [167] = { 2, TF, SEN(swapon), "swapon" }, @@ -205,8 +205,8 @@ [197] = { 2, TF, SEN(removexattr), "removexattr" }, [198] = { 2, TF, SEN(removexattr), "lremovexattr" }, [199] = { 2, TD, SEN(fremovexattr), "fremovexattr" }, -[200] = { 2, TS, SEN(kill), "tkill" }, -[201] = { 1, 0, SEN(time), "time" }, +[200] = { 2, TS|TP, SEN(tkill), "tkill" }, +[201] = { 1, TCL, SEN(time), "time" }, [202] = { 6, 0, SEN(futex_time64), "futex" }, [203] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" }, [204] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" }, @@ -232,14 +232,14 @@ [224] = { 2, 0, SEN(timer_gettime64), "timer_gettime" }, [225] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" }, [226] = { 1, 0, SEN(timer_delete), "timer_delete" }, -[227] = { 2, 0, SEN(clock_settime64), "clock_settime" }, -[228] = { 2, 0, SEN(clock_gettime64), "clock_gettime" }, -[229] = { 2, 0, SEN(clock_getres_time64), "clock_getres" }, +[227] = { 2, TCL, SEN(clock_settime64), "clock_settime" }, +[228] = { 2, TCL, SEN(clock_gettime64), "clock_gettime" }, +[229] = { 2, TCL, SEN(clock_getres_time64), "clock_getres" }, [230] = { 4, 0, SEN(clock_nanosleep_time64), "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" }, -[234] = { 3, TS, SEN(tgkill), "tgkill" }, +[234] = { 3, TS|TP, SEN(tgkill), "tgkill" }, [235] = { 2, TF, SEN(utimes), "utimes" }, [236] = { 5, 0, SEN(printargs), "vserver#64" }, [237] = { 6, TM, SEN(mbind), "mbind" }, @@ -277,7 +277,7 @@ [269] = { 3, TD|TF, SEN(faccessat), "faccessat" }, [270] = { 6, TD, SEN(pselect6_time64), "pselect6" }, [271] = { 5, TD, SEN(ppoll_time64), "ppoll" }, -[272] = { 1, TP, SEN(unshare), "unshare" }, +[272] = { 1, 0, SEN(unshare), "unshare" }, [273] = { 2, 0, SEN(printargs), "set_robust_list#64" }, [274] = { 3, 0, SEN(printargs), "get_robust_list#64" }, [275] = { 6, TD, SEN(splice), "splice" }, @@ -310,7 +310,7 @@ [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_adjtime64), "clock_adjtime" }, +[305] = { 2, TCL, SEN(clock_adjtime64), "clock_adjtime" }, [306] = { 1, TD, SEN(syncfs), "syncfs" }, [307] = { 4, TN, SEN(printargs), "sendmmsg#64" }, [308] = { 2, TD, SEN(setns), "setns" }, @@ -337,11 +337,11 @@ [329] = { 4, TM|SI, SEN(pkey_mprotect), "pkey_mprotect" }, [330] = { 2, 0, SEN(pkey_alloc), "pkey_alloc" }, [331] = { 1, 0, SEN(pkey_free), "pkey_free" }, -[332] = { 5, TD|TF|TSTA, SEN(statx), "statx" }, +[332] = { 5, TD|TF|TFST|TSTA,SEN(statx), "statx" }, [333] = { 6, 0, SEN(io_pgetevents_time64), "io_pgetevents" }, [334] = { 4, 0, SEN(rseq), "rseq" }, /* [335 ... 423] - reserved to sync up with other architectures */ -[424] = { 4, TD|TS, SEN(pidfd_send_signal), "pidfd_send_signal" }, +#include "syscallent-common.h" /* * x32-specific system call numbers start at 512 to avoid cache impact * for native 64-bit operation. @@ -354,11 +354,11 @@ [517] = { 6, CST|TN, SEN(recvfrom), "recvfrom" }, [518] = { 3, CST|TN, SEN(sendmsg), "sendmsg" }, [519] = { 3, CST|TN, SEN(recvmsg), "recvmsg" }, -[520] = { 3, CST|TF|TP|SE|SI,SEN(execve), "execve" }, +[520] = { 3, CST|TF|TP|TSD|SE|SI,SEN(execve), "execve" }, [521] = { 4, CST, SEN(ptrace), "ptrace" }, [522] = { 2, CST|TS, SEN(rt_sigpending), "rt_sigpending" }, [523] = { 4, CST|TS, SEN(rt_sigtimedwait_time64), "rt_sigtimedwait" }, -[524] = { 3, CST|TS, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, +[524] = { 3, CST|TS|TP, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, [525] = { 2, CST|TS, SEN(sigaltstack), "sigaltstack" }, [526] = { 3, CST, SEN(timer_create), "timer_create" }, [527] = { 2, CST|TD, SEN(mq_notify), "mq_notify" }, @@ -379,9 +379,6 @@ [542] = { 5, CST|TN, SEN(getsockopt), "getsockopt" }, [543] = { 2, CST|TM, SEN(io_setup), "io_setup" }, [544] = { 3, CST, SEN(io_submit), "io_submit" }, -[545] = { 5, CST|TD|TF|TP|SE|SI, SEN(execveat), "execveat" }, +[545] = { 5, CST|TD|TF|TP|TSD|SE|SI, SEN(execveat), "execveat" }, [546] = { 5, TD, SEN(preadv2), "preadv2" }, [547] = { 5, TD, SEN(pwritev2), "pwritev2" }, -[425] = { 2, TD, SEN(io_uring_setup), "io_uring_setup" }, -[426] = { 6, TD|TS, SEN(io_uring_enter), "io_uring_enter" }, -[427] = { 4, TD|TM, SEN(io_uring_register), "io_uring_register" }, diff --git a/linux/x86_64/arch_defs_.h b/linux/x86_64/arch_defs_.h index a8c1d991..a4daf872 100644 --- a/linux/x86_64/arch_defs_.h +++ b/linux/x86_64/arch_defs_.h @@ -1,11 +1,18 @@ /* - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ +#define ARCH_MX32_SIZEOF_STRUCT_MSQID64_DS 120 #define HAVE_ARCH_OLD_MMAP 1 #define HAVE_ARCH_OLD_SELECT 1 #define HAVE_ARCH_UID16_SYSCALLS 1 #define SUPPORTED_PERSONALITIES 3 +#define PERSONALITY0_AUDIT_ARCH { AUDIT_ARCH_X86_64, 0 } +#define PERSONALITY1_AUDIT_ARCH { AUDIT_ARCH_I386, 0 } +#define PERSONALITY2_AUDIT_ARCH { AUDIT_ARCH_X86_64, __X32_SYSCALL_BIT } +#ifndef __X32_SYSCALL_BIT +# define __X32_SYSCALL_BIT 0x40000000UL +#endif diff --git a/linux/x86_64/arch_get_personality.c b/linux/x86_64/arch_get_personality.c index 1dcc6932..0e5a3b4b 100644 --- a/linux/x86_64/arch_get_personality.c +++ b/linux/x86_64/arch_get_personality.c @@ -1,16 +1,12 @@ /* - * Copyright (c) 2010-2018 The strace developers. + * Copyright (c) 2010-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ -#ifndef AUDIT_ARCH_I386 -# define AUDIT_ARCH_I386 0x40000003 -#endif - int -get_personality_from_syscall_info(const struct ptrace_syscall_info *sci) +get_personality_from_syscall_info(const struct_ptrace_syscall_info *sci) { unsigned int pers = sci->arch == AUDIT_ARCH_I386; @@ -25,10 +21,6 @@ get_personality_from_syscall_info(const struct ptrace_syscall_info *sci) kernel_ulong_t scno = sci->entry.nr; -# ifndef __X32_SYSCALL_BIT -# define __X32_SYSCALL_BIT 0x40000000 -# endif - if (pers == 0 && (scno & __X32_SYSCALL_BIT)) { /* * Syscall number -1 requires special treatment: diff --git a/linux/x86_64/arch_kvm.c b/linux/x86_64/arch_kvm.c index cb168f34..92164829 100644 --- a/linux/x86_64/arch_kvm.c +++ b/linux/x86_64/arch_kvm.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -104,14 +104,7 @@ arch_print_kvm_sregs(struct tcb *const tcp, PRINT_FIELD_U(", ", *sregs, cr8); PRINT_FIELD_U(", ", *sregs, efer); PRINT_FIELD_X(", ", *sregs, apic_base); - tprints(", interrupt_bitmap=["); - - unsigned int i; - for (i = 0; i < ARRAY_SIZE(sregs->interrupt_bitmap); i++) { - if (i != 0) - tprints(", "); - tprintf("%#" PRI__x64, sregs->interrupt_bitmap[i]); - } - tprints("]}"); + PRINT_FIELD_X_ARRAY(", ", *sregs, interrupt_bitmap); + tprints("}"); } #endif /* HAVE_STRUCT_KVM_SREGS */ diff --git a/linux/x86_64/get_scno.c b/linux/x86_64/get_scno.c index 0a274888..b9eaa144 100644 --- a/linux/x86_64/get_scno.c +++ b/linux/x86_64/get_scno.c @@ -5,7 +5,7 @@ * Copyright (c) 2008-2013 Denys Vlasenko * Copyright (c) 2012 H.J. Lu * Copyright (c) 2010-2015 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -18,10 +18,6 @@ arch_get_scno(struct tcb *tcp) kernel_ulong_t scno = 0; unsigned int currpers; -#ifndef __X32_SYSCALL_BIT -# define __X32_SYSCALL_BIT 0x40000000 -#endif - /* * GETREGSET of NT_PRSTATUS tells us regset size, * which unambiguously detects i386. diff --git a/linux/x86_64/ioctls_arch0.h b/linux/x86_64/ioctls_arch0.h index 06e93fa9..9a4c6752 100644 --- a/linux/x86_64/ioctls_arch0.h +++ b/linux/x86_64/ioctls_arch0.h @@ -96,6 +96,7 @@ { "linux/kvm.h", "KVM_SET_ONE_REG", _IOC_WRITE, 0xaeac, 0x10 }, { "linux/kvm.h", "KVM_SET_PIT", _IOC_READ, 0xae66, 0x48 }, { "linux/kvm.h", "KVM_SET_PIT2", _IOC_WRITE, 0xaea0, 0x70 }, +{ "linux/kvm.h", "KVM_SET_PMU_EVENT_FILTER", _IOC_WRITE, 0xaeb2, 0x20 }, { "linux/kvm.h", "KVM_SET_REGS", _IOC_WRITE, 0xae82, 0x90 }, { "linux/kvm.h", "KVM_SET_SIGNAL_MASK", _IOC_WRITE, 0xae8b, 0x04 }, { "linux/kvm.h", "KVM_SET_SREGS", _IOC_WRITE, 0xae84, 0x138 }, diff --git a/linux/x86_64/syscallent.h b/linux/x86_64/syscallent.h index 03bda0d6..a1606295 100644 --- a/linux/x86_64/syscallent.h +++ b/linux/x86_64/syscallent.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002-2019 The strace developers. + * Copyright (c) 2002-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -64,10 +64,10 @@ [ 56] = { 5, TP, SEN(clone), "clone" }, [ 57] = { 0, TP, SEN(fork), "fork" }, [ 58] = { 0, TP, SEN(vfork), "vfork" }, -[ 59] = { 3, TF|TP|SE|SI, SEN(execve), "execve" }, +[ 59] = { 3, TF|TP|TSD|SE|SI, SEN(execve), "execve" }, [ 60] = { 1, TP|SE, SEN(exit), "exit" }, [ 61] = { 4, TP, SEN(wait4), "wait4" }, -[ 62] = { 2, TS, SEN(kill), "kill" }, +[ 62] = { 2, TS|TP, SEN(kill), "kill" }, [ 63] = { 1, 0, SEN(uname), "uname" }, [ 64] = { 3, TI, SEN(semget), "semget" }, [ 65] = { 3, TI, SEN(semop), "semop" }, @@ -101,40 +101,40 @@ [ 93] = { 3, TD, SEN(fchown), "fchown" }, [ 94] = { 3, TF, SEN(chown), "lchown" }, [ 95] = { 1, NF, SEN(umask), "umask" }, -[ 96] = { 2, 0, SEN(gettimeofday), "gettimeofday" }, +[ 96] = { 2, TCL, SEN(gettimeofday), "gettimeofday" }, [ 97] = { 2, 0, SEN(getrlimit), "getrlimit" }, [ 98] = { 2, 0, SEN(getrusage), "getrusage" }, [ 99] = { 1, 0, SEN(sysinfo), "sysinfo" }, [100] = { 1, 0, SEN(times), "times" }, [101] = { 4, 0, SEN(ptrace), "ptrace" }, -[102] = { 0, PU|NF, SEN(getuid), "getuid" }, +[102] = { 0, TC|PU|NF, SEN(getuid), "getuid" }, [103] = { 3, 0, SEN(syslog), "syslog" }, -[104] = { 0, PU|NF, SEN(getgid), "getgid" }, -[105] = { 1, 0, SEN(setuid), "setuid" }, -[106] = { 1, 0, SEN(setgid), "setgid" }, -[107] = { 0, PU|NF, SEN(geteuid), "geteuid" }, -[108] = { 0, PU|NF, SEN(getegid), "getegid" }, +[104] = { 0, TC|PU|NF, SEN(getgid), "getgid" }, +[105] = { 1, TC, SEN(setuid), "setuid" }, +[106] = { 1, TC, SEN(setgid), "setgid" }, +[107] = { 0, TC|PU|NF, SEN(geteuid), "geteuid" }, +[108] = { 0, TC|PU|NF, SEN(getegid), "getegid" }, [109] = { 2, 0, SEN(setpgid), "setpgid" }, [110] = { 0, PU|NF, SEN(getppid), "getppid" }, [111] = { 0, PU|NF, SEN(getpgrp), "getpgrp" }, [112] = { 0, 0, SEN(setsid), "setsid" }, -[113] = { 2, 0, SEN(setreuid), "setreuid" }, -[114] = { 2, 0, SEN(setregid), "setregid" }, -[115] = { 2, 0, SEN(getgroups), "getgroups" }, -[116] = { 2, 0, SEN(setgroups), "setgroups" }, -[117] = { 3, 0, SEN(setresuid), "setresuid" }, -[118] = { 3, 0, SEN(getresuid), "getresuid" }, -[119] = { 3, 0, SEN(setresgid), "setresgid" }, -[120] = { 3, 0, SEN(getresgid), "getresgid" }, +[113] = { 2, TC, SEN(setreuid), "setreuid" }, +[114] = { 2, TC, SEN(setregid), "setregid" }, +[115] = { 2, TC, SEN(getgroups), "getgroups" }, +[116] = { 2, TC, SEN(setgroups), "setgroups" }, +[117] = { 3, TC, SEN(setresuid), "setresuid" }, +[118] = { 3, TC, SEN(getresuid), "getresuid" }, +[119] = { 3, TC, SEN(setresgid), "setresgid" }, +[120] = { 3, TC, SEN(getresgid), "getresgid" }, [121] = { 1, 0, SEN(getpgid), "getpgid" }, -[122] = { 1, NF, SEN(setfsuid), "setfsuid" }, -[123] = { 1, NF, SEN(setfsgid), "setfsgid" }, +[122] = { 1, TC|NF, SEN(setfsuid), "setfsuid" }, +[123] = { 1, TC|NF, SEN(setfsgid), "setfsgid" }, [124] = { 1, 0, SEN(getsid), "getsid" }, -[125] = { 2, 0, SEN(capget), "capget" }, -[126] = { 2, 0, SEN(capset), "capset" }, +[125] = { 2, TC, SEN(capget), "capget" }, +[126] = { 2, TC, SEN(capset), "capset" }, [127] = { 2, TS, SEN(rt_sigpending), "rt_sigpending" }, [128] = { 4, TS, SEN(rt_sigtimedwait_time64), "rt_sigtimedwait" }, -[129] = { 3, TS, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, +[129] = { 3, TS|TP, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, [130] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" }, [131] = { 2, TS, SEN(sigaltstack), "sigaltstack" }, [132] = { 2, TF, SEN(utime), "utime" }, @@ -162,14 +162,14 @@ [154] = { 3, 0, SEN(modify_ldt), "modify_ldt" }, [155] = { 2, TF, SEN(pivotroot), "pivot_root" }, [156] = { 1, 0, SEN(sysctl), "_sysctl" }, -[157] = { 5, 0, SEN(prctl), "prctl" }, -[158] = { 2, TP, SEN(arch_prctl), "arch_prctl" }, -[159] = { 1, 0, SEN(adjtimex64), "adjtimex" }, +[157] = { 5, TC, SEN(prctl), "prctl" }, +[158] = { 2, 0, SEN(arch_prctl), "arch_prctl" }, +[159] = { 1, TCL, SEN(adjtimex64), "adjtimex" }, [160] = { 2, 0, SEN(setrlimit), "setrlimit" }, [161] = { 1, TF, SEN(chroot), "chroot" }, [162] = { 0, 0, SEN(sync), "sync" }, [163] = { 1, TF, SEN(acct), "acct" }, -[164] = { 2, 0, SEN(settimeofday), "settimeofday" }, +[164] = { 2, TCL, SEN(settimeofday), "settimeofday" }, [165] = { 5, TF, SEN(mount), "mount" }, [166] = { 2, TF, SEN(umount2), "umount2" }, [167] = { 2, TF, SEN(swapon), "swapon" }, @@ -205,8 +205,8 @@ [197] = { 2, TF, SEN(removexattr), "removexattr" }, [198] = { 2, TF, SEN(removexattr), "lremovexattr" }, [199] = { 2, TD, SEN(fremovexattr), "fremovexattr" }, -[200] = { 2, TS, SEN(kill), "tkill" }, -[201] = { 1, 0, SEN(time), "time" }, +[200] = { 2, TS|TP, SEN(tkill), "tkill" }, +[201] = { 1, TCL, SEN(time), "time" }, [202] = { 6, 0, SEN(futex_time64), "futex" }, [203] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" }, [204] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" }, @@ -232,14 +232,14 @@ [224] = { 2, 0, SEN(timer_gettime64), "timer_gettime" }, [225] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" }, [226] = { 1, 0, SEN(timer_delete), "timer_delete" }, -[227] = { 2, 0, SEN(clock_settime64), "clock_settime" }, -[228] = { 2, 0, SEN(clock_gettime64), "clock_gettime" }, -[229] = { 2, 0, SEN(clock_getres_time64), "clock_getres" }, +[227] = { 2, TCL, SEN(clock_settime64), "clock_settime" }, +[228] = { 2, TCL, SEN(clock_gettime64), "clock_gettime" }, +[229] = { 2, TCL, SEN(clock_getres_time64), "clock_getres" }, [230] = { 4, 0, SEN(clock_nanosleep_time64), "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" }, -[234] = { 3, TS, SEN(tgkill), "tgkill" }, +[234] = { 3, TS|TP, SEN(tgkill), "tgkill" }, [235] = { 2, TF, SEN(utimes), "utimes" }, [236] = { 5, 0, SEN(vserver), "vserver" }, [237] = { 6, TM, SEN(mbind), "mbind" }, @@ -277,7 +277,7 @@ [269] = { 3, TD|TF, SEN(faccessat), "faccessat" }, [270] = { 6, TD, SEN(pselect6_time64), "pselect6" }, [271] = { 5, TD, SEN(ppoll_time64), "ppoll" }, -[272] = { 1, TP, SEN(unshare), "unshare" }, +[272] = { 1, 0, SEN(unshare), "unshare" }, [273] = { 2, 0, SEN(set_robust_list), "set_robust_list" }, [274] = { 3, 0, SEN(get_robust_list), "get_robust_list" }, [275] = { 6, TD, SEN(splice), "splice" }, @@ -310,7 +310,7 @@ [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_adjtime64), "clock_adjtime" }, +[305] = { 2, TCL, SEN(clock_adjtime64), "clock_adjtime" }, [306] = { 1, TD, SEN(syncfs), "syncfs" }, [307] = { 4, TN, SEN(sendmmsg), "sendmmsg" }, [308] = { 2, TD, SEN(setns), "setns" }, @@ -327,7 +327,7 @@ [319] = { 2, TD, SEN(memfd_create), "memfd_create" }, [320] = { 5, TD, SEN(kexec_file_load), "kexec_file_load" }, [321] = { 3, TD, SEN(bpf), "bpf" }, -[322] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat" }, +[322] = { 5, TD|TF|TP|TSD|SE|SI, SEN(execveat), "execveat" }, [323] = { 1, TD, SEN(userfaultfd), "userfaultfd" }, [324] = { 2, 0, SEN(membarrier), "membarrier" }, [325] = { 3, TM, SEN(mlock2), "mlock2" }, @@ -337,11 +337,8 @@ [329] = { 4, TM|SI, SEN(pkey_mprotect), "pkey_mprotect" }, [330] = { 2, 0, SEN(pkey_alloc), "pkey_alloc" }, [331] = { 1, 0, SEN(pkey_free), "pkey_free" }, -[332] = { 5, TD|TF|TSTA, SEN(statx), "statx" }, +[332] = { 5, TD|TF|TFST|TSTA,SEN(statx), "statx" }, [333] = { 6, 0, SEN(io_pgetevents_time64), "io_pgetevents" }, [334] = { 4, 0, SEN(rseq), "rseq" }, /* [335 ... 423] - reserved to sync up with other architectures */ -[424] = { 4, TD|TS, SEN(pidfd_send_signal), "pidfd_send_signal" }, -[425] = { 2, TD, SEN(io_uring_setup), "io_uring_setup" }, -[426] = { 6, TD|TS, SEN(io_uring_enter), "io_uring_enter" }, -[427] = { 4, TD|TM, SEN(io_uring_register), "io_uring_register" }, +#include "syscallent-common.h" diff --git a/linux/xtensa/arch_regs.c b/linux/xtensa/arch_regs.c index 557e5bac..dfcc3150 100644 --- a/linux/xtensa/arch_regs.c +++ b/linux/xtensa/arch_regs.c @@ -1,10 +1,11 @@ /* - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ -static unsigned long xtensa_a2; -#define ARCH_PC_PEEK_ADDR REG_PC -#define ARCH_SP_PEEK_ADDR (REG_A_BASE + 1) +static struct user_pt_regs xtensa_regs; +#define ARCH_REGS_FOR_GETREGS xtensa_regs +#define ARCH_PC_REG xtensa_regs.pc +#define ARCH_SP_REG xtensa_regs.a[1] diff --git a/linux/xtensa/get_error.c b/linux/xtensa/get_error.c index 7fc8ac2c..70e6fa19 100644 --- a/linux/xtensa/get_error.c +++ b/linux/xtensa/get_error.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -10,10 +10,10 @@ static void arch_get_error(struct tcb *tcp, const bool check_errno) { - if (check_errno && is_negated_errno(xtensa_a2)) { + if (check_errno && is_negated_errno(xtensa_regs.a[2])) { tcp->u_rval = -1; - tcp->u_error = -xtensa_a2; + tcp->u_error = -xtensa_regs.a[2]; } else { - tcp->u_rval = xtensa_a2; + tcp->u_rval = xtensa_regs.a[2]; } } diff --git a/linux/xtensa/get_syscall_args.c b/linux/xtensa/get_syscall_args.c index 69b981c3..7bdc1985 100644 --- a/linux/xtensa/get_syscall_args.c +++ b/linux/xtensa/get_syscall_args.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2019 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -9,19 +9,9 @@ static int arch_get_syscall_args(struct tcb *tcp) { - /* arg0: a6, arg1: a3, arg2: a4, arg3: a5, arg4: a8, arg5: a9 */ - static const int xtensaregs[MAX_ARGS] = { - REG_A_BASE + 6, - REG_A_BASE + 3, - REG_A_BASE + 4, - REG_A_BASE + 5, - REG_A_BASE + 8, - REG_A_BASE + 9 - }; - unsigned int i; + static const unsigned int syscall_regs[MAX_ARGS] = { 6, 3, 4, 5, 8, 9 }; - for (i = 0; i < n_args(tcp); ++i) - if (upeek(tcp, xtensaregs[i], &tcp->u_arg[i]) < 0) - return -1; + for (unsigned int i = 0; i < n_args(tcp); ++i) + tcp->u_arg[i] = xtensa_regs.a[syscall_regs[i]]; return 1; } diff --git a/linux/xtensa/get_syscall_result.c b/linux/xtensa/get_syscall_result.c deleted file mode 100644 index bbb091c9..00000000 --- a/linux/xtensa/get_syscall_result.c +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright (c) 2015-2018 The strace developers. - * All rights reserved. - * - * SPDX-License-Identifier: LGPL-2.1-or-later - */ - -static int -get_syscall_result_regs(struct tcb *tcp) -{ - return upeek(tcp, REG_A_BASE + 2, &xtensa_a2) < 0 ? -1 : 0; -} diff --git a/linux/xtensa/set_error.c b/linux/xtensa/set_error.c index cd6d627b..8fcc658a 100644 --- a/linux/xtensa/set_error.c +++ b/linux/xtensa/set_error.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -8,13 +8,13 @@ static int arch_set_error(struct tcb *tcp) { - xtensa_a2 = -tcp->u_error; - return upoke(tcp, REG_A_BASE + 2, xtensa_a2); + xtensa_regs.a[2] = -tcp->u_error; + return set_regs(tcp->pid); } static int arch_set_success(struct tcb *tcp) { - xtensa_a2 = tcp->u_rval; - return upoke(tcp, REG_A_BASE + 2, xtensa_a2); + xtensa_regs.a[2] = tcp->u_rval; + return set_regs(tcp->pid); } diff --git a/linux/xtensa/syscallent.h b/linux/xtensa/syscallent.h index 8cb6a46c..a94fd93d 100644 --- a/linux/xtensa/syscallent.h +++ b/linux/xtensa/syscallent.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2019 The strace developers. + * Copyright (c) 2013-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -117,37 +117,37 @@ [114] = { 4, TD|TN, SEN(sendfile64), "sendfile64" }, [115] = { 4, TN, SEN(sendmmsg), "sendmmsg" }, [116] = { 5, TP, SEN(clone), "clone" }, -[117] = { 3, TF|TP|SE|SI, SEN(execve), "execve" }, +[117] = { 3, TF|TP|TSD|SE|SI, SEN(execve), "execve" }, [118] = { 1, TP|SE, SEN(exit), "exit" }, [119] = { 1, TP|SE, SEN(exit), "exit_group" }, [120] = { 0, PU|NF, SEN(getpid), "getpid" }, [121] = { 4, TP, SEN(wait4), "wait4" }, [122] = { 5, TP, SEN(waitid), "waitid" }, -[123] = { 2, TS, SEN(kill), "kill" }, -[124] = { 2, TS, SEN(kill), "tkill" }, -[125] = { 3, TS, SEN(tgkill), "tgkill" }, +[123] = { 2, TS|TP, SEN(kill), "kill" }, +[124] = { 2, TS|TP, SEN(tkill), "tkill" }, +[125] = { 3, TS|TP, SEN(tgkill), "tgkill" }, [126] = { 1, 0, SEN(set_tid_address), "set_tid_address" }, [127] = { 0, PU|NF, SEN(gettid), "gettid" }, [128] = { 0, 0, SEN(setsid), "setsid" }, [129] = { 1, 0, SEN(getsid), "getsid" }, -[130] = { 5, 0, SEN(prctl), "prctl" }, +[130] = { 5, TC, SEN(prctl), "prctl" }, [131] = { 1, NF, SEN(personality), "personality" }, [132] = { 2, 0, SEN(getpriority), "getpriority" }, [133] = { 3, 0, SEN(setpriority), "setpriority" }, [134] = { 3, 0, SEN(setitimer), "setitimer" }, [135] = { 2, 0, SEN(getitimer), "getitimer" }, -[136] = { 1, 0, SEN(setuid), "setuid" }, -[137] = { 0, PU|NF, SEN(getuid), "getuid" }, -[138] = { 1, 0, SEN(setgid), "setgid" }, -[139] = { 0, PU|NF, SEN(getgid), "getgid" }, -[140] = { 0, PU|NF, SEN(geteuid), "geteuid" }, -[141] = { 0, PU|NF, SEN(getegid), "getegid" }, -[142] = { 2, 0, SEN(setreuid), "setreuid" }, -[143] = { 2, 0, SEN(setregid), "setregid" }, -[144] = { 3, 0, SEN(setresuid), "setresuid" }, -[145] = { 3, 0, SEN(getresuid), "getresuid" }, -[146] = { 3, 0, SEN(setresgid), "setresgid" }, -[147] = { 3, 0, SEN(getresgid), "getresgid" }, +[136] = { 1, TC, SEN(setuid), "setuid" }, +[137] = { 0, TC|PU|NF, SEN(getuid), "getuid" }, +[138] = { 1, TC, SEN(setgid), "setgid" }, +[139] = { 0, TC|PU|NF, SEN(getgid), "getgid" }, +[140] = { 0, TC|PU|NF, SEN(geteuid), "geteuid" }, +[141] = { 0, TC|PU|NF, SEN(getegid), "getegid" }, +[142] = { 2, TC, SEN(setreuid), "setreuid" }, +[143] = { 2, TC, SEN(setregid), "setregid" }, +[144] = { 3, TC, SEN(setresuid), "setresuid" }, +[145] = { 3, TC, SEN(getresuid), "getresuid" }, +[146] = { 3, TC, SEN(setresgid), "setresgid" }, +[147] = { 3, TC, SEN(getresgid), "getresgid" }, [148] = { 2, 0, SEN(setpgid), "setpgid" }, [149] = { 1, 0, SEN(getpgid), "getpgid" }, [150] = { 0, PU|NF, SEN(getppid), "getppid" }, @@ -157,8 +157,8 @@ [155] = { 1, TF, SEN(acct), "acct" }, [156] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" }, [157] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" }, -[158] = { 2, 0, SEN(capget), "capget" }, -[159] = { 2, 0, SEN(capset), "capset" }, +[158] = { 2, TC, SEN(capget), "capget" }, +[159] = { 2, TC, SEN(capset), "capset" }, [160] = { 4, 0, SEN(ptrace), "ptrace" }, [161] = { 4, TI, SEN(semtimedop_time32), "semtimedop" }, [162] = { 3, TI, SEN(semget), "semget" }, @@ -179,8 +179,8 @@ [177] = { 1, TF, SEN(swapoff), "swapoff" }, [178] = { 0, 0, SEN(sync), "sync" }, [179] = { 1, TD, SEN(syncfs), "syncfs" }, -[180] = { 1, NF, SEN(setfsuid), "setfsuid" }, -[181] = { 1, NF, SEN(setfsgid), "setfsgid" }, +[180] = { 1, TC|NF, SEN(setfsuid), "setfsuid" }, +[181] = { 1, TC|NF, SEN(setfsgid), "setfsgid" }, [182] = { 3, 0, SEN(sysfs), "sysfs" }, [183] = { 2, TSFA, SEN(ustat), "ustat" }, [184] = { 2, TF|TSF|TSFA, SEN(statfs), "statfs" }, @@ -191,12 +191,12 @@ [189] = { 2, 0, SEN(getrlimit), "getrlimit" }, [190] = { 2, 0, SEN(getrusage), "getrusage" }, [191] = { 6, 0, SEN(futex_time32), "futex" }, -[192] = { 2, 0, SEN(gettimeofday), "gettimeofday" }, -[193] = { 2, 0, SEN(settimeofday), "settimeofday" }, -[194] = { 1, 0, SEN(adjtimex32), "adjtimex" }, +[192] = { 2, TCL, SEN(gettimeofday), "gettimeofday" }, +[193] = { 2, TCL, SEN(settimeofday), "settimeofday" }, +[194] = { 1, TCL, SEN(adjtimex32), "adjtimex" }, [195] = { 2, 0, SEN(nanosleep_time32), "nanosleep" }, -[196] = { 2, 0, SEN(getgroups), "getgroups" }, -[197] = { 2, 0, SEN(setgroups), "setgroups" }, +[196] = { 2, TC, SEN(getgroups), "getgroups" }, +[197] = { 2, TC, SEN(setgroups), "setgroups" }, [198] = { 2, 0, SEN(sethostname), "sethostname" }, [199] = { 2, 0, SEN(setdomainname), "setdomainname" }, [200] = { 3, 0, SEN(syslog), "syslog" }, @@ -227,7 +227,7 @@ [227] = { 4, TS, SEN(rt_sigprocmask), "rt_sigprocmask" }, [228] = { 2, TS, SEN(rt_sigpending), "rt_sigpending" }, [229] = { 4, TS, SEN(rt_sigtimedwait_time32), "rt_sigtimedwait" }, -[230] = { 3, TS, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, +[230] = { 3, TS|TP, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" }, [231] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" }, [232] = { 4, TD, SEN(mq_open), "mq_open" }, [233] = { 1, 0, SEN(mq_unlink), "mq_unlink" }, @@ -241,9 +241,9 @@ [241] = { 3, 0, SEN(io_submit), "io_submit" }, [242] = { 5, 0, SEN(io_getevents_time32), "io_getevents" }, [243] = { 3, 0, SEN(io_cancel), "io_cancel" }, -[244] = { 2, 0, SEN(clock_settime32), "clock_settime" }, -[245] = { 2, 0, SEN(clock_gettime32), "clock_gettime" }, -[246] = { 2, 0, SEN(clock_getres_time32), "clock_getres" }, +[244] = { 2, TCL, SEN(clock_settime32), "clock_settime" }, +[245] = { 2, TCL, SEN(clock_gettime32), "clock_gettime" }, +[246] = { 2, TCL, SEN(clock_getres_time32), "clock_getres" }, [247] = { 4, 0, SEN(clock_nanosleep_time32), "clock_nanosleep" }, [248] = { 3, 0, SEN(timer_create), "timer_create" }, [249] = { 1, 0, SEN(timer_delete), "timer_delete" }, @@ -263,7 +263,7 @@ [263] = { 6, TM, SEN(mbind), "mbind" }, [264] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" }, [265] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" }, -[266] = { 1, TP, SEN(unshare), "unshare" }, +[266] = { 1, 0, SEN(unshare), "unshare" }, [267] = { 6, TM, SEN(move_pages), "move_pages" }, [268] = { 6, TD, SEN(splice), "splice" }, [269] = { 4, TD, SEN(tee), "tee" }, @@ -324,7 +324,7 @@ [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_adjtime32), "clock_adjtime" }, +[329] = { 2, TCL, SEN(clock_adjtime32), "clock_adjtime" }, [330] = { 4, 0, SEN(prlimit64), "prlimit64" }, [331] = { 5, 0, SEN(kcmp), "kcmp" }, [332] = { 3, TD, SEN(finit_module), "finit_module" }, @@ -336,7 +336,7 @@ [338] = { 3, 0, SEN(getrandom), "getrandom" }, [339] = { 2, TD, SEN(memfd_create), "memfd_create" }, [340] = { 3, TD, SEN(bpf), "bpf" }, -[341] = { 5, TD|TF|TP|SE|SI, SEN(execveat), "execveat" }, +[341] = { 5, TD|TF|TP|TSD|SE|SI, SEN(execveat), "execveat" }, [342] = { 1, TD, SEN(userfaultfd), "userfaultfd" }, [343] = { 2, 0, SEN(membarrier), "membarrier" }, [344] = { 3, TM, SEN(mlock2), "mlock2" }, @@ -346,30 +346,8 @@ [348] = { 4, TM|SI, SEN(pkey_mprotect), "pkey_mprotect" }, [349] = { 2, 0, SEN(pkey_alloc), "pkey_alloc" }, [350] = { 1, 0, SEN(pkey_free), "pkey_free" }, -[351] = { 5, TD|TF|TSTA, SEN(statx), "statx" }, +[351] = { 5, TD|TF|TFST|TSTA,SEN(statx), "statx" }, [352] = { 4, 0, SEN(rseq), "rseq" }, /* [353 ... 402] - reserved to sync up with other architectures */ -[403] = { 2, 0, SEN(clock_gettime64), "clock_gettime64" }, -[404] = { 2, 0, SEN(clock_settime64), "clock_settime64" }, -[405] = { 2, 0, SEN(clock_adjtime64), "clock_adjtime64" }, -[406] = { 2, 0, SEN(clock_getres_time64), "clock_getres_time64" }, -[407] = { 4, 0, SEN(clock_nanosleep_time64), "clock_nanosleep_time64"}, -[408] = { 2, 0, SEN(timer_gettime64), "timer_gettime64" }, -[409] = { 4, 0, SEN(timer_settime64), "timer_settime64" }, -[410] = { 2, TD, SEN(timerfd_gettime64), "timerfd_gettime64" }, -[411] = { 4, TD, SEN(timerfd_settime64), "timerfd_settime64" }, -[412] = { 4, TD|TF, SEN(utimensat_time64), "utimensat_time64" }, -[413] = { 6, TD, SEN(pselect6_time64), "pselect6_time64" }, -[414] = { 5, TD, SEN(ppoll_time64), "ppoll_time64" }, -[416] = { 6, 0, SEN(io_pgetevents_time64), "io_pgetevents_time64" }, -[417] = { 5, TN, SEN(recvmmsg_time64), "recvmmsg_time64" }, -[418] = { 5, TD, SEN(mq_timedsend_time64), "mq_timedsend_time64" }, -[419] = { 5, TD, SEN(mq_timedreceive_time64), "mq_timedreceive_time64"}, -[420] = { 4, TI, SEN(semtimedop_time64), "semtimedop_time64" }, -[421] = { 4, TS, SEN(rt_sigtimedwait_time64), "rt_sigtimedwait_time64"}, -[422] = { 6, 0, SEN(futex_time64), "futex_time64" }, -[423] = { 2, 0, SEN(sched_rr_get_interval_time64), "sched_rr_get_interval_time64" }, -[424] = { 4, TD|TS, SEN(pidfd_send_signal), "pidfd_send_signal" }, -[425] = { 2, TD, SEN(io_uring_setup), "io_uring_setup" }, -[426] = { 6, TD|TS, SEN(io_uring_enter), "io_uring_enter" }, -[427] = { 4, TD|TM, SEN(io_uring_register), "io_uring_register" }, +#include "syscallent-common-32.h" +#include "syscallent-common.h" diff --git a/list.h b/list.h index 98563e4d..ddaf33ca 100644 --- a/list.h +++ b/list.h @@ -1,7 +1,7 @@ /* * Some simple implementation of lists similar to the one used in the kernel. * - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -33,7 +33,7 @@ * to the next and the previous items in the list, respectively. Note that * they do not perform additional checks for the validity of these pointers, * so they have to be guarded with respective list_head/list_tail checks in case - * of lists with designated heads (where the list's head is not embedded withing + * of lists with designated heads (where the list's head is not embedded within * a list item. * * list_{insert,append,remove,remove_tail,remove_head,replace} provide some diff --git a/loop.c b/loop.c index 36a40c55..9fdd1ddb 100644 --- a/loop.c +++ b/loop.c @@ -1,14 +1,13 @@ /* * Copyright (c) 2012 The Chromium OS Authors. - * Copyright (c) 2012-2018 The strace developers. + * Copyright (c) 2012-2020 The strace developers. * Written by Mike Frysinger . * * SPDX-License-Identifier: LGPL-2.1-or-later */ #include "defs.h" -#include -#include +#include "types/loop.h" typedef struct loop_info struct_loop_info; @@ -34,30 +33,28 @@ decode_loop_info(struct tcb *const tcp, const kernel_ulong_t addr) if (umove_or_printaddr(tcp, addr, &info)) return; - tprintf("{lo_number=%d", info.lo_number); + PRINT_FIELD_D("{", info, lo_number); if (!abbrev(tcp)) { PRINT_FIELD_DEV(", ", info, lo_device); - tprintf(", lo_inode=%" PRI_klu, (kernel_ulong_t) info.lo_inode); + PRINT_FIELD_U(", ", info, lo_inode); PRINT_FIELD_DEV(", ", info, lo_rdevice); } - tprintf(", lo_offset=%#x", info.lo_offset); + PRINT_FIELD_X(", ", info, lo_offset); if (!abbrev(tcp) || info.lo_encrypt_type != LO_CRYPT_NONE) { - tprints(", lo_encrypt_type="); - printxval(loop_crypt_type_options, info.lo_encrypt_type, - "LO_CRYPT_???"); + PRINT_FIELD_XVAL(", ", info, lo_encrypt_type, + loop_crypt_type_options, "LO_CRYPT_???"); /* - * It is converted to unsigned before use in kernel, see - * loop_info64_from_old in drivers/block/loop.c + * It is converted to unsigned before use in the kernel, + * see loop_info64_from_old in drivers/block/loop.c */ - tprintf(", lo_encrypt_key_size=%" PRIu32, - (uint32_t) info.lo_encrypt_key_size); + PRINT_FIELD_U(", ", info, lo_encrypt_key_size); } - tprints(", lo_flags="); - printflags(loop_flags_options, info.lo_flags, "LO_FLAGS_???"); + PRINT_FIELD_FLAGS(", ", info, lo_flags, + loop_flags_options, "LO_FLAGS_???"); PRINT_FIELD_CSTRING(", ", info, lo_name); @@ -68,68 +65,88 @@ decode_loop_info(struct tcb *const tcp, const kernel_ulong_t addr) lo_encrypt_key_size, 0); } - if (!abbrev(tcp)) - tprintf(", lo_init=[%#" PRI_klx ", %#" PRI_klx "]" - ", reserved=[%#hhx, %#hhx, %#hhx, %#hhx]}", - (kernel_ulong_t) info.lo_init[0], - (kernel_ulong_t) info.lo_init[1], - info.reserved[0], info.reserved[1], - info.reserved[2], info.reserved[3]); - else - tprints(", ...}"); + if (!abbrev(tcp)) { + PRINT_FIELD_X_ARRAY(", ", info, lo_init); + PRINT_FIELD_X_ARRAY(", ", info, reserved); + } else { + tprints(", ..."); + } + + tprints("}"); } static void -decode_loop_info64(struct tcb *const tcp, const kernel_ulong_t addr) +print_loop_info64(struct tcb *const tcp, const struct loop_info64 *const info64) { - struct loop_info64 info64; - - tprints(", "); - if (umove_or_printaddr(tcp, addr, &info64)) - return; - if (!abbrev(tcp)) { - PRINT_FIELD_DEV("{", info64, lo_device); - tprintf(", lo_inode=%" PRIu64, (uint64_t) info64.lo_inode); - PRINT_FIELD_DEV(", ", info64, lo_rdevice); - tprintf(", lo_offset=%#" PRIx64 ", lo_sizelimit=%" PRIu64 - ", lo_number=%" PRIu32, - (uint64_t) info64.lo_offset, - (uint64_t) info64.lo_sizelimit, - (uint32_t) info64.lo_number); + PRINT_FIELD_DEV("{", *info64, lo_device); + PRINT_FIELD_U(", ", *info64, lo_inode); + PRINT_FIELD_DEV(", ", *info64, lo_rdevice); + PRINT_FIELD_X(", ", *info64, lo_offset); + PRINT_FIELD_U(", ", *info64, lo_sizelimit); + PRINT_FIELD_U(", ", *info64, lo_number); } else { - tprintf("{lo_offset=%#" PRIx64 ", lo_number=%" PRIu32, - (uint64_t) info64.lo_offset, - (uint32_t) info64.lo_number); + PRINT_FIELD_X("{", *info64, lo_offset); + PRINT_FIELD_U(", ", *info64, lo_number); } - if (!abbrev(tcp) || info64.lo_encrypt_type != LO_CRYPT_NONE) { - tprints(", lo_encrypt_type="); - printxval(loop_crypt_type_options, info64.lo_encrypt_type, - "LO_CRYPT_???"); - tprintf(", lo_encrypt_key_size=%" PRIu32, - info64.lo_encrypt_key_size); + if (!abbrev(tcp) || info64->lo_encrypt_type != LO_CRYPT_NONE) { + PRINT_FIELD_XVAL(", ", *info64, lo_encrypt_type, + loop_crypt_type_options, "LO_CRYPT_???"); + PRINT_FIELD_U(", ", *info64, lo_encrypt_key_size); } - tprints(", lo_flags="); - printflags(loop_flags_options, info64.lo_flags, "LO_FLAGS_???"); + PRINT_FIELD_FLAGS(", ", *info64, lo_flags, + loop_flags_options, "LO_FLAGS_???"); - PRINT_FIELD_CSTRING(", ", info64, lo_file_name); + PRINT_FIELD_CSTRING(", ", *info64, lo_file_name); - if (!abbrev(tcp) || info64.lo_encrypt_type != LO_CRYPT_NONE) { - PRINT_FIELD_CSTRING(", ", info64, lo_crypt_name); + if (!abbrev(tcp) || info64->lo_encrypt_type != LO_CRYPT_NONE) { + PRINT_FIELD_CSTRING(", ", *info64, lo_crypt_name); const unsigned int lo_encrypt_key_size = - MIN((unsigned) info64.lo_encrypt_key_size, LO_KEY_SIZE); - PRINT_FIELD_STRING(", ", info64, lo_encrypt_key, + MIN((unsigned) info64->lo_encrypt_key_size, LO_KEY_SIZE); + PRINT_FIELD_STRING(", ", *info64, lo_encrypt_key, lo_encrypt_key_size, 0); } if (!abbrev(tcp)) - tprintf(", lo_init=[%#" PRIx64 ", %#" PRIx64 "]}", - (uint64_t) info64.lo_init[0], - (uint64_t) info64.lo_init[1]); + PRINT_FIELD_X_ARRAY(", ", *info64, lo_init); else - tprints(", ...}"); + tprints(", ..."); + + tprints("}"); +} + +static void +decode_loop_info64(struct tcb *const tcp, const kernel_ulong_t addr) +{ + struct loop_info64 info64; + + tprints(", "); + if (!umove_or_printaddr(tcp, addr, &info64)) + print_loop_info64(tcp, &info64); +} + +static void +decode_loop_config(struct tcb *const tcp, const kernel_ulong_t addr) +{ + struct_loop_config config; + + tprints(", "); + if (umove_or_printaddr(tcp, addr, &config)) + return; + + PRINT_FIELD_FD("{", config, fd, tcp); + + PRINT_FIELD_U(", ", config, block_size); + + tprints(", info="); + print_loop_info64(tcp, &config.info); + + if (!IS_ARRAY_ZERO(config.__reserved)) + PRINT_FIELD_X_ARRAY(", ", config, __reserved); + + tprints("}"); } MPERS_PRINTER_DECL(int, loop_ioctl, @@ -153,6 +170,10 @@ MPERS_PRINTER_DECL(int, loop_ioctl, decode_loop_info64(tcp, arg); break; + case LOOP_CONFIGURE: + decode_loop_config(tcp, arg); + break; + case LOOP_CLR_FD: case LOOP_SET_CAPACITY: /* newer loop-control stuff */ diff --git a/m4/ax_prog_cc_for_build.m4 b/m4/ax_prog_cc_for_build.m4 index 0572e251..868878c6 100644 --- a/m4/ax_prog_cc_for_build.m4 +++ b/m4/ax_prog_cc_for_build.m4 @@ -1,5 +1,5 @@ # =========================================================================== -# http://www.gnu.org/software/autoconf-archive/ax_prog_cc_for_build.html +# https://www.gnu.org/software/autoconf-archive/ax_prog_cc_for_build.html # =========================================================================== # # SYNOPSIS @@ -26,14 +26,14 @@ # LICENSE # # Copyright (c) 2008 Paolo Bonzini -# Copyright (c) 2008-2017 The strace developers. +# Copyright (c) 2008-2020 The strace developers. # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. -#serial 8 +#serial 9 #modified for strace project AU_ALIAS([AC_PROG_CC_FOR_BUILD], [AX_PROG_CC_FOR_BUILD]) @@ -77,6 +77,8 @@ pushdef([ac_cv_host_os], ac_cv_build_os)dnl pushdef([am_cv_prog_cc_c_o], am_cv_build_prog_cc_c_o)dnl pushdef([am_cv_CC_dependencies_compiler_type], am_cv_build_CC_dependencies_compiler_type)dnl pushdef([gl_unknown_warnings_are_errors], gl_build_unknown_warnings_are_errors)dnl +pushdef([st_cv_enable_Werror], st_cv_build_enable_Werror)dnl +pushdef([st_cv_cc_enable_Werror], st_cv_build_cc_enable_Werror)dnl st_SAVE_VAR([ac_c_decl_warn_flag]) st_SAVE_VAR([ac_c_preproc_warn_flag]) @@ -112,6 +114,8 @@ st_RESTORE_VAR([ac_c_decl_warn_flag]) dnl Restore the old definitions dnl +popdef([st_cv_cc_enable_Werror])dnl +popdef([st_cv_enable_Werror])dnl popdef([gl_unknown_warnings_are_errors])dnl popdef([am_cv_CC_dependencies_compiler_type])dnl popdef([am_cv_prog_cc_c_o])dnl diff --git a/m4/bpf_attr.m4 b/m4/bpf_attr.m4 index 8db2a643..60dfff99 100644 --- a/m4/bpf_attr.m4 +++ b/m4/bpf_attr.m4 @@ -4,6 +4,7 @@ AC_DEFUN([st_BPF_ATTR], [dnl struct bpf_map_info.btf_id, struct bpf_map_info.btf_key_type_id, struct bpf_map_info.btf_value_type_id, + struct bpf_map_info.btf_vmlinux_value_type_id, struct bpf_map_info.id, struct bpf_map_info.ifindex, struct bpf_map_info.key_size, @@ -44,8 +45,18 @@ AC_DEFUN([st_BPF_ATTR], [dnl struct bpf_prog_info.xlated_prog_insns, struct bpf_prog_info.xlated_prog_len, union bpf_attr.attach_bpf_fd, + union bpf_attr.attach_btf_id, union bpf_attr.attach_flags, + union bpf_attr.attach_prog_fd, union bpf_attr.attach_type, + union bpf_attr.batch.count, + union bpf_attr.batch.elem_flags, + union bpf_attr.batch.flags, + union bpf_attr.batch.in_batch, + union bpf_attr.batch.keys, + union bpf_attr.batch.map_fd, + union bpf_attr.batch.out_batch, + union bpf_attr.batch.values, union bpf_attr.bpf_fd, union bpf_attr.btf, union bpf_attr.btf_fd, @@ -56,6 +67,7 @@ AC_DEFUN([st_BPF_ATTR], [dnl union bpf_attr.btf_log_size, union bpf_attr.btf_size, union bpf_attr.btf_value_type_id, + union bpf_attr.btf_vmlinux_value_type_id, union bpf_attr.dummy, union bpf_attr.expected_attach_type, union bpf_attr.file_flags, @@ -76,6 +88,14 @@ AC_DEFUN([st_BPF_ATTR], [dnl union bpf_attr.line_info, union bpf_attr.line_info_cnt, union bpf_attr.line_info_rec_size, + union bpf_attr.link_create.attach_type, + union bpf_attr.link_create.flags, + union bpf_attr.link_create.prog_fd, + union bpf_attr.link_create.target_fd, + union bpf_attr.link_update.flags, + union bpf_attr.link_update.link_fd, + union bpf_attr.link_update.new_prog_fd, + union bpf_attr.link_update.old_prog_fd, union bpf_attr.log_buf, union bpf_attr.log_level, union bpf_attr.log_size, @@ -105,6 +125,7 @@ AC_DEFUN([st_BPF_ATTR], [dnl union bpf_attr.query.target_fd, union bpf_attr.raw_tracepoint.name, union bpf_attr.raw_tracepoint.prog_fd, + union bpf_attr.replace_bpf_fd, union bpf_attr.start_id, union bpf_attr.target_fd, union bpf_attr.task_fd_query.buf, @@ -116,6 +137,10 @@ AC_DEFUN([st_BPF_ATTR], [dnl union bpf_attr.task_fd_query.probe_addr, union bpf_attr.task_fd_query.probe_offset, union bpf_attr.task_fd_query.prog_id, + union bpf_attr.test.ctx_in, + union bpf_attr.test.ctx_out, + union bpf_attr.test.ctx_size_in, + union bpf_attr.test.ctx_size_out, union bpf_attr.test.data_in, union bpf_attr.test.data_out, union bpf_attr.test.data_size_in, diff --git a/m4/mpers.m4 b/m4/mpers.m4 index 13725d71..4b4634cb 100644 --- a/m4/mpers.m4 +++ b/m4/mpers.m4 @@ -2,7 +2,7 @@ # # Copyright (c) 2015-2017 Dmitry V. Levin # Copyright (c) 2015 Elvira Khabirova -# Copyright (c) 2015-2018 The strace developers. +# Copyright (c) 2015-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: LGPL-2.1-or-later @@ -68,6 +68,21 @@ pushdef([st_cv_cc], [st_cv_$1_cc]) pushdef([st_cv_runtime], [st_cv_$1_runtime]) pushdef([st_cv_mpers], [st_cv_$1_mpers]) +pushdef([EXEEXT], MPERS_NAME[_EXEEXT])dnl +pushdef([OBJEXT], MPERS_NAME[_OBJEXT])dnl +pushdef([LDFLAGS], [LDFLAGS_FOR_]MPERS_NAME)dnl +pushdef([WARN_CFLAGS], [WARN_CFLAGS_FOR_]MPERS_NAME)dnl + +st_SAVE_VAR([CC]) +st_SAVE_VAR([CPP]) +st_SAVE_VAR([CFLAGS]) +st_SAVE_VAR([CPPFLAGS]) + +CC=[$CC_FOR_]MPERS_NAME +CPP=[$CPP_FOR_]MPERS_NAME +CFLAGS=[$CFLAGS_FOR_]MPERS_NAME +CPPFLAGS=[$CPPFLAGS_FOR_]MPERS_NAME + case "$arch" in [$2]) case "$enable_mpers" in @@ -84,26 +99,29 @@ case "$arch" in AC_MSG_NOTICE([Created empty gnu_stubs]) IFLAG=-I.]) popdef([gnu_stubs]) + saved_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS${IFLAG:+ }$IFLAG" saved_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS MPERS_CFLAGS $IFLAG" - AC_CACHE_CHECK([for mpers_name personality compile support], [st_cv_cc], - [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include - int main(){return 0;}]])], + CFLAGS="$CFLAGS MPERS_CFLAGS" + AC_CACHE_CHECK([for mpers_name personality compile support (using $CC $CPPFLAGS $CFLAGS)], + [st_cv_cc], + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], + [[return 0]])], [st_cv_cc=yes], [st_cv_cc=no])]) if test $st_cv_cc = yes; then AC_CACHE_CHECK([for mpers_name personality runtime support], [st_cv_runtime], - [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include - int main(){return 0;}]])], + [AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include ]], + [[return 0]])], [st_cv_runtime=yes], [st_cv_runtime=no], [st_cv_runtime=no])]) AC_CACHE_CHECK([whether mpers.sh mpers_name MPERS_CFLAGS works], [st_cv_mpers], [if READELF="$READELF" \ - CC="$CC" CPP="$CPP" CPPFLAGS="$CPPFLAGS $IFLAG" \ - $srcdir/mpers_test.sh [$1] MPERS_CFLAGS; then + CC="$CC" CPP="$CPP" CPPFLAGS="$CPPFLAGS" \ + $srcdir/mpers_test.sh [$1] "MPERS_CFLAGS"; then st_cv_mpers=yes else st_cv_mpers=no @@ -129,9 +147,18 @@ case "$arch" in [#include "$srcdir/kernel_types.h"]) st_MPERS_SAVE_AC_CV([sizeof_kernel_long_t]) popdef([SIZEOF_KERNEL_LONG_T]) + + pushdef([SIZEOF_STRUCT_MSQID64_DS], + MPERS_NAME[_SIZEOF_STRUCT_MSQID64_DS]) + st_MPERS_LOAD_AC_CV([sizeof_struct_msqid64_ds]) + AC_CHECK_SIZEOF([struct msqid64_ds],, + [#include ]) + st_MPERS_SAVE_AC_CV([sizeof_struct_msqid64_ds]) + popdef([SIZEOF_STRUCT_MSQID64_DS]) fi fi fi + CPPFLAGS="$saved_CPPFLAGS" CFLAGS="$saved_CFLAGS" ;; @@ -162,6 +189,16 @@ esac AM_CONDITIONAL(HAVE_RUNTIME, [test "$st_cv_mpers$st_cv_runtime" = yesyes]) AM_CONDITIONAL(HAVE_MPERS, [test "$st_cv_mpers" = yes]) +st_RESTORE_VAR([CC]) +st_RESTORE_VAR([CPP]) +st_RESTORE_VAR([CFLAGS]) +st_RESTORE_VAR([CPPFLAGS]) + +popdef([WARN_CFLAGS])dnl +popdef([LDFLAGS])dnl +popdef([OBJEXT])dnl +popdef([EXEEXT])dnl + popdef([st_cv_mpers]) popdef([st_cv_runtime]) popdef([st_cv_cc]) diff --git a/m4/st_esyscmd_s.m4 b/m4/st_esyscmd_s.m4 new file mode 100644 index 00000000..df1302c9 --- /dev/null +++ b/m4/st_esyscmd_s.m4 @@ -0,0 +1,10 @@ +#!/usr/bin/m4 +# +# Copyright (c) 2019 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: LGPL-2.1-or-later + +AC_DEFUN([st_esyscmd_s], [dnl +m4_esyscmd_s([$1])dnl +m4_assert(m4_sysval == 0)]) diff --git a/m4/st_warn_cflags.m4 b/m4/st_warn_cflags.m4 index 9e4d7e3e..0ddc6bd2 100644 --- a/m4/st_warn_cflags.m4 +++ b/m4/st_warn_cflags.m4 @@ -1,11 +1,38 @@ #!/usr/bin/m4 # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: LGPL-2.1-or-later AC_DEFUN([st_WARN_CFLAGS], [dnl +AC_CACHE_CHECK([whether $[]_AC_CC[] is fresh enough for -Werror], + [st_cv_cc_enable_Werror], + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +#if defined __GNUC__ && defined __GNUC_MINOR__ +# define GNUC_PREREQ(maj, min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) +#else +# define GNUC_PREREQ(maj, min) 0 +#endif + +#if defined __clang__ && defined __clang_major__ && defined __clang_minor__ +# define CLANG_PREREQ(maj, min) ((__clang_major__ << 16) + __clang_minor__ >= ((maj) << 16) + (min)) +#else +# define CLANG_PREREQ(maj, min) 0 +#endif +]], + [[int i[GNUC_PREREQ(4, 8) + CLANG_PREREQ(6, 0) > 0 ? 1 : - 1];]])], + [st_cv_cc_enable_Werror=yes], + [st_cv_cc_enable_Werror=no])]) +AC_CACHE_CHECK([whether to try $[]_AC_CC[] with -Werror by default], + [st_cv_enable_Werror], + [if test "$st_cv_cc_enable_Werror" != yes; then + st_cv_enable_Werror='no, the compiler is too old' + elif test "$arch_enable_Werror" != yes; then + st_cv_enable_Werror='no, architecture is not ready' + else + st_cv_enable_Werror=yes + fi]) gl_WARN_ADD([-Wall]) gl_WARN_ADD([-Wempty-body]) gl_WARN_ADD([-Wformat-security]) @@ -23,12 +50,15 @@ gl_WARN_ADD([-Wsign-compare]) gl_WARN_ADD([-Wtype-limits]) gl_WARN_ADD([-Wwrite-strings]) AC_ARG_ENABLE([gcc-Werror], - [AS_HELP_STRING([--enable-gcc-Werror], [turn on gcc's -Werror option])], - [case $enableval in - yes) gl_WARN_ADD([-Werror]) ;; - no) ;; - *) AC_MSG_ERROR([bad value $enableval for gcc-Werror option]) ;; - esac] -) + [AS_HELP_STRING([--enable-gcc-Werror], + [turn on gcc's -Werror option])], + [case "$enable_gcc_Werror" in + yes|no|no,*) ;; + *) AC_MSG_ERROR([bad value $enable_gcc_Werror for gcc-Werror option]) ;; + esac], + [enable_gcc_Werror="$st_cv_enable_Werror"]) +if test "$enable_gcc_Werror" = yes; then + gl_WARN_ADD([-Werror]) +fi AC_SUBST([WARN_CFLAGS]) ]) diff --git a/macros.h b/macros.h index f3ebdaf4..2391b082 100644 --- a/macros.h +++ b/macros.h @@ -9,6 +9,7 @@ # define STRACE_MACROS_H # include +# include # include # include "gcc_compat.h" @@ -36,9 +37,11 @@ # define ROUNDUP(val_, div_) (ROUNDUP_DIV((val_), (div_)) * (div_)) # endif +# define sizeof_field(type_, member_) (sizeof(((type_ *)0)->member_)) + # ifndef offsetofend # define offsetofend(type_, member_) \ - (offsetof(type_, member_) + sizeof(((type_ *)0)->member_)) + (offsetof(type_, member_) + sizeof_field(type_, member_)) # endif # ifndef cast_ptr @@ -73,4 +76,10 @@ is_filled(const char *ptr, char fill, size_t size) # define IS_ARRAY_ZERO(arr_) \ is_filled((const char *) (arr_), 0, sizeof(arr_) + MUST_BE_ARRAY(arr_)) +# ifndef BIT +# define BIT(x_) (1U << (x_)) +# endif + +# define FLAG(name_) name_ = BIT(name_##_BIT) + #endif /* !STRACE_MACROS_H */ diff --git a/missing b/missing index 625aeb11..8d0eaad2 100755 --- a/missing +++ b/missing @@ -3,7 +3,7 @@ scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2020 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify diff --git a/mknod.c b/mknod.c index b01e6000..ca6d57bd 100644 --- a/mknod.c +++ b/mknod.c @@ -6,7 +6,7 @@ * Copyright (c) 2006 Ulrich Drepper * Copyright (c) 2006 Bernhard Kaindl * Copyright (c) 2006-2015 Dmitry V. Levin - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -46,6 +46,7 @@ SYS_FUNC(mknod) SYS_FUNC(mknodat) { print_dirfd(tcp, tcp->u_arg[0]); + tprints(", "); decode_mknod(tcp, 1); return RVAL_DECODED; diff --git a/mmap_cache.c b/mmap_cache.c index 89c62254..5f1948b2 100644 --- a/mmap_cache.c +++ b/mmap_cache.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2013 Luca Clementi - * Copyright (c) 2013-2018 The strace developers. + * Copyright (c) 2013-2020 The strace developers. * * SPDX-License-Identifier: LGPL-2.1-or-later */ @@ -84,7 +84,7 @@ mmap_cache_rebuild_if_invalid(struct tcb *tcp, const char *caller) return MMAP_CACHE_REBUILD_READY; char filename[sizeof("/proc/4294967296/maps")]; - xsprintf(filename, "/proc/%u/maps", tcp->pid); + xsprintf(filename, "/proc/%u/maps", get_proc_pid(tcp)); FILE *fp = fopen_stream(filename, "r"); if (!fp) { diff --git a/move_mount.c b/move_mount.c new file mode 100644 index 00000000..df150114 --- /dev/null +++ b/move_mount.c @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#include "defs.h" +#ifdef HAVE_LINUX_MOUNT_H +# include +#endif +#include "xlat/move_mount_flags.h" + +SYS_FUNC(move_mount) +{ + print_dirfd(tcp, tcp->u_arg[0]); + tprints(", "); + printpath(tcp, tcp->u_arg[1]); + tprints(", "); + print_dirfd(tcp, tcp->u_arg[2]); + tprints(", "); + printpath(tcp, tcp->u_arg[3]); + tprints(", "); + printflags(move_mount_flags, tcp->u_arg[4], "MOVE_MOUNT_???"); + return RVAL_DECODED; +} diff --git a/mpers.am b/mpers.am index 87387967..cb1307cd 100644 --- a/mpers.am +++ b/mpers.am @@ -1,2 +1,2 @@ # Generated by ./generate_mpers_am.sh; do not edit. -mpers_source_files = block.c btrfs.c dirent.c evdev_mpers.c fetch_bpf_fprog.c fetch_struct_flock.c fetch_struct_keyctl_kdf_params.c fetch_struct_mmsghdr.c fetch_struct_msghdr.c fetch_struct_stat.c fetch_struct_stat64.c fetch_struct_statfs.c fetch_struct_xfs_quotastat.c hdio.c ipc_msgctl.c ipc_shmctl.c loop.c mtd.c perf_ioctl.c print_aio_sigset.c print_group_req.c print_mq_attr.c print_msgbuf.c print_sg_req_info.c print_sigevent.c print_time.c print_timespec.c print_timeval.c printrusage.c printsiginfo.c rt_sigreturn.c rtc.c sg_io_v3.c sigaltstack.c sock.c sysinfo.c times.c ustat.c utime.c v4l2.c +mpers_source_files = block.c btrfs.c dirent.c evdev_mpers.c fetch_bpf_fprog.c fetch_struct_flock.c fetch_struct_keyctl_kdf_params.c fetch_struct_mmsghdr.c fetch_struct_msghdr.c fetch_struct_stat.c fetch_struct_stat64.c fetch_struct_statfs.c fetch_struct_xfs_quotastat.c hdio.c ipc_msgctl.c ipc_semctl.c ipc_shmctl.c loop.c mtd.c perf_ioctl.c print_aio_sigset.c print_group_req.c print_mq_attr.c print_msgbuf.c print_sg_req_info.c print_sigevent.c print_time.c print_timeval.c printrusage.c printsiginfo.c rt_sigreturn.c rtc.c sg_io_v3.c sigaltstack.c sock.c sysinfo.c times.c ustat.c utime.c v4l2.c diff --git a/mpers_test.sh b/mpers_test.sh index 110ce092..b0ee5660 100755 --- a/mpers_test.sh +++ b/mpers_test.sh @@ -2,7 +2,7 @@ # # Copyright (c) 2015 Elvira Khabirova # Copyright (c) 2015 Dmitry V. Levin -# Copyright (c) 2015-2019 The strace developers. +# Copyright (c) 2015-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: LGPL-2.1-or-later @@ -22,6 +22,7 @@ mkdir -p "$mpers_dir" sample="$mpers_dir/sample.c" cat > "$sample" < #include "mpers_type.h" #include DEF_MPERS_TYPE(sample_struct) typedef struct { @@ -56,6 +57,14 @@ typedef struct { unsigned short us[4]; char sc; unsigned char uc; + int8_t i8; + int16_t i16; + int32_t i32; + int64_t i64; + uint8_t u8; + uint16_t u16; + uint32_t u32; + uint64_t u64; } u[3][2]; short f[0]; } sample_struct; @@ -103,6 +112,14 @@ int16_t ss[7][9]; uint16_t us[4]; char sc; unsigned char uc; +signed char i8; +int16_t i16; +int32_t i32; +int64_t i64; +unsigned char u8; +uint16_t u16; +uint32_t u32; +uint64_t u64; } u[3][2]; int16_t f[0]; } ATTRIBUTE_PACKED ${mpers_name}_sample_struct; diff --git a/mpers_xlat.h b/mpers_xlat.h index 7ba3cbcc..a6c3c75f 100644 --- a/mpers_xlat.h +++ b/mpers_xlat.h @@ -26,7 +26,9 @@ extern const struct xlat btrfs_send_flags[]; extern const struct xlat btrfs_snap_flags_v2[]; extern const struct xlat btrfs_space_info_flags[]; extern const struct xlat btrfs_tree_objectids[]; +extern const struct xlat hdio_drive_cmds[]; extern const struct xlat msgctl_flags[]; +extern const struct xlat semctl_flags[]; extern const struct xlat shmctl_flags[]; extern const struct xlat loop_cmds[]; extern const struct xlat loop_flags_options[]; @@ -41,6 +43,7 @@ extern const struct xlat perf_ioctl_cmds[]; extern const struct xlat perf_ioctl_flags[]; extern const struct xlat mq_attr_flags[]; extern const struct xlat sigev_value[]; +extern const struct xlat elf_em[]; extern const struct xlat audit_arch[]; extern const struct xlat sigbus_codes[]; extern const struct xlat sigchld_codes[]; @@ -53,6 +56,8 @@ extern const struct xlat sigsegv_codes[]; extern const struct xlat sigsys_codes[]; extern const struct xlat sigtrap_codes[]; extern const struct xlat sigemt_codes[]; +extern const struct xlat rtc_vl_flags[]; +extern const struct xlat rtc_ioctl_cmds[]; extern const struct xlat sg_io_info[]; extern const struct xlat sg_io_dxfer_direction[]; extern const struct xlat sg_io_flags[]; @@ -61,6 +66,7 @@ extern const struct xlat iffflags[]; extern const struct xlat arp_hardware_types[]; extern const struct xlat v4l2_pix_fmts[]; extern const struct xlat v4l2_sdr_fmts[]; +extern const struct xlat v4l2_ioctl_cmds[]; extern const struct xlat v4l2_device_capabilities_flags[]; extern const struct xlat v4l2_buf_types[]; extern const struct xlat v4l2_format_description_flags[]; @@ -70,12 +76,16 @@ extern const struct xlat v4l2_vbi_flags[]; extern const struct xlat v4l2_sliced_flags[]; extern const struct xlat v4l2_memories[]; extern const struct xlat v4l2_buf_flags[]; +extern const struct xlat v4l2_buf_flags_ts_type[]; +extern const struct xlat v4l2_buf_flags_ts_src[]; +extern const struct xlat v4l2_buf_flags_masks[]; extern const struct xlat v4l2_streaming_capabilities[]; extern const struct xlat v4l2_capture_modes[]; extern const struct xlat v4l2_input_types[]; extern const struct xlat v4l2_control_classes[]; extern const struct xlat v4l2_control_id_bases[]; extern const struct xlat v4l2_control_ids[]; +extern const struct xlat v4l2_control_query_flags[]; extern const struct xlat v4l2_tuner_types[]; extern const struct xlat v4l2_tuner_capabilities[]; extern const struct xlat v4l2_tuner_rxsubchanses[]; diff --git a/msghdr.c b/msghdr.c index 830c5918..170b8e51 100644 --- a/msghdr.c +++ b/msghdr.c @@ -4,7 +4,7 @@ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey * Copyright (c) 1996-2000 Wichert Akkerman * Copyright (c) 2005-2016 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -69,7 +69,7 @@ print_scm_creds(struct tcb *tcp, const void *cmsg_data, { const struct ucred *uc = cmsg_data; - PRINT_FIELD_U("{", *uc, pid); + PRINT_FIELD_TGID("{", *uc, pid, tcp); PRINT_FIELD_UID(", ", *uc, uid); PRINT_FIELD_UID(", ", *uc, gid); tprints("}"); @@ -89,18 +89,37 @@ print_scm_timestamp_old(struct tcb *tcp, const void *cmsg_data, print_struct_timeval_data_size(cmsg_data, data_len); } +#ifdef current_klongsize +# if current_klongsize == 4 +# define PRINT_TIMESPEC_DATA_SIZE print_timespec32_data_size +# define PRINT_TIMESPEC_ARRAY_DATA_SIZE print_timespec32_array_data_size +# else +# define PRINT_TIMESPEC_DATA_SIZE print_timespec64_data_size +# define PRINT_TIMESPEC_ARRAY_DATA_SIZE print_timespec64_array_data_size +# endif +#else +# define PRINT_TIMESPEC_DATA_SIZE \ + ((current_klongsize == 4) ? \ + print_timespec32_data_size : \ + print_timespec64_data_size) +# define PRINT_TIMESPEC_ARRAY_DATA_SIZE \ + ((current_klongsize == 4) ? \ + print_timespec32_array_data_size : \ + print_timespec64_array_data_size) +#endif + static void print_scm_timestampns_old(struct tcb *tcp, const void *cmsg_data, const unsigned int data_len) { - print_struct_timespec_data_size(cmsg_data, data_len); + PRINT_TIMESPEC_DATA_SIZE(cmsg_data, data_len); } static void print_scm_timestamping_old(struct tcb *tcp, const void *cmsg_data, const unsigned int data_len) { - print_struct_timespec_array_data_size(cmsg_data, 3, data_len); + PRINT_TIMESPEC_ARRAY_DATA_SIZE(cmsg_data, 3, data_len); } static void @@ -197,7 +216,7 @@ print_cmsg_ip_recverr(struct tcb *tcp, const void *cmsg_data, PRINT_FIELD_U(", ", *err, ee_code); PRINT_FIELD_U(", ", *err, ee_info); PRINT_FIELD_U(", ", *err, ee_data); - PRINT_FIELD_SOCKADDR(", ", *err, offender); + PRINT_FIELD_SOCKADDR(", ", *err, offender, tcp); tprints("}"); } @@ -209,7 +228,7 @@ print_cmsg_ip_origdstaddr(struct tcb *tcp, const void *cmsg_data, data_len > sizeof(struct sockaddr_storage) ? sizeof(struct sockaddr_storage) : data_len; - print_sockaddr(cmsg_data, addr_len); + print_sockaddr(tcp, cmsg_data, addr_len); } typedef void (* const cmsg_printer)(struct tcb *, const void *, unsigned int); @@ -274,7 +293,7 @@ get_optmem_max(struct tcb *tcp) static int optmem_max; if (!optmem_max) { - if (read_int_from_file(tcp, "/proc/sys/net/core/optmem_max", + if (read_int_from_file("/proc/sys/net/core/optmem_max", &optmem_max) || optmem_max <= 0) { optmem_max = sizeof(long long) * (2 * IOV_MAX + 512); } else { diff --git a/net.c b/net.c index f08691c7..2099f0ac 100644 --- a/net.c +++ b/net.c @@ -3,7 +3,7 @@ * Copyright (c) 1993 Branko Lankester * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey * Copyright (c) 1996-2000 Wichert Akkerman - * Copyright (c) 1999-2019 The strace developers. + * Copyright (c) 1999-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -123,14 +123,13 @@ SYS_FUNC(socket) switch (tcp->u_arg[0]) { case AF_INET: case AF_INET6: - printxval_search(inet_protocols, tcp->u_arg[2], "IPPROTO_???"); + printxval(inet_protocols, tcp->u_arg[2], "IPPROTO_???"); break; case AF_AX25: /* Those are not available in public headers. */ - printxval_searchn_ex(ARRSZ_PAIR(ax25_protocols) - 1, - tcp->u_arg[2], "AX25_P_???", - XLAT_STYLE_VERBOSE); + printxval_ex(ax25_protocols, tcp->u_arg[2], "AX25_P_???", + XLAT_STYLE_VERBOSE); break; case AF_NETLINK: @@ -139,21 +138,21 @@ SYS_FUNC(socket) case AF_PACKET: tprints("htons("); - printxval_searchn(ethernet_protocols, ethernet_protocols_size, - ntohs(tcp->u_arg[2]), "ETH_P_???"); + printxval(ethernet_protocols, ntohs(tcp->u_arg[2]), + "ETH_P_???"); tprints(")"); break; case AF_IRDA: - printxval_index(can_protocols, tcp->u_arg[2], "IRDAPROTO_???"); + printxval(can_protocols, tcp->u_arg[2], "IRDAPROTO_???"); break; case AF_CAN: - printxval_index(can_protocols, tcp->u_arg[2], "CAN_???"); + printxval(can_protocols, tcp->u_arg[2], "CAN_???"); break; case AF_BLUETOOTH: - printxval_index(bt_protocols, tcp->u_arg[2], "BTPROTO_???"); + printxval(bt_protocols, tcp->u_arg[2], "BTPROTO_???"); break; case AF_RXRPC: @@ -165,24 +164,23 @@ SYS_FUNC(socket) break; case AF_PHONET: - printxval_index(phonet_protocols, tcp->u_arg[2], "PN_PROTO_???"); + printxval(phonet_protocols, tcp->u_arg[2], "PN_PROTO_???"); break; case AF_CAIF: - printxval_index(caif_protocols, tcp->u_arg[2], "CAIFPROTO_???"); + printxval(caif_protocols, tcp->u_arg[2], "CAIFPROTO_???"); break; case AF_NFC: - printxval_index(nfc_protocols, tcp->u_arg[2], - "NFC_SOCKPROTO_???"); + printxval(nfc_protocols, tcp->u_arg[2], "NFC_SOCKPROTO_???"); break; case AF_KCM: - printxval_index(kcm_protocols, tcp->u_arg[2], "KCMPROTO_???"); + printxval(kcm_protocols, tcp->u_arg[2], "KCMPROTO_???"); break; case AF_SMC: - printxval_index(smc_protocols, tcp->u_arg[2], "SMCPROTO_???"); + printxval(smc_protocols, tcp->u_arg[2], "SMCPROTO_???"); break; default: @@ -293,7 +291,8 @@ SYS_FUNC(recv) printaddr(tcp->u_arg[1]); } else { decode_sockbuf(tcp, tcp->u_arg[0], tcp->u_arg[1], - tcp->u_rval); + MIN((kernel_ulong_t) tcp->u_rval, + tcp->u_arg[2])); } tprintf(", %" PRI_klu ", ", tcp->u_arg[2]); @@ -318,7 +317,8 @@ SYS_FUNC(recvfrom) printaddr(tcp->u_arg[1]); } else { decode_sockbuf(tcp, tcp->u_arg[0], tcp->u_arg[1], - tcp->u_rval); + MIN((kernel_ulong_t) tcp->u_rval, + tcp->u_arg[2])); } /* size */ tprintf(", %" PRI_klu ", ", tcp->u_arg[2]); @@ -463,7 +463,7 @@ print_sockopt_fd_level_name(struct tcb *tcp, int fd, unsigned int level, { printfd(tcp, fd); tprints(", "); - printxval_search(socketlayers, level, "SOL_??"); + printxval(socketlayers, level, "SOL_??"); tprints(", "); switch (level) { @@ -486,13 +486,13 @@ print_sockopt_fd_level_name(struct tcb *tcp, int fd, unsigned int level, printxval(sock_ipx_options, name, "IPX_???"); break; case SOL_AX25: - printxval_search(sock_ax25_options, name, "AX25_???"); + printxval(sock_ax25_options, name, "AX25_???"); break; case SOL_PACKET: printxval(sock_packet_options, name, "PACKET_???"); break; case SOL_TCP: - printxval_index(sock_tcp_options, name, "TCP_???"); + printxval(sock_tcp_options, name, "TCP_???"); break; case SOL_SCTP: printxval(sock_sctp_options, name, "SCTP_???"); @@ -507,31 +507,31 @@ print_sockopt_fd_level_name(struct tcb *tcp, int fd, unsigned int level, printxval(sock_udp_options, name, "UDP_???"); break; case SOL_IRDA: - printxval_index(sock_irda_options, name, "IRLMP_???"); + printxval(sock_irda_options, name, "IRLMP_???"); break; case SOL_LLC: - printxval_index(sock_llc_options, name, "LLC_OPT_???"); + printxval(sock_llc_options, name, "LLC_OPT_???"); break; case SOL_DCCP: - printxval_search(sock_dccp_options, name, "DCCP_SOCKOPT_???"); + printxval(sock_dccp_options, name, "DCCP_SOCKOPT_???"); break; case SOL_TIPC: - printxval_search(sock_tipc_options, name, "TIPC_???"); + printxval(sock_tipc_options, name, "TIPC_???"); break; case SOL_RXRPC: - printxval_index(sock_rxrpc_options, name, "RXRPC_???"); + printxval(sock_rxrpc_options, name, "RXRPC_???"); break; case SOL_PPPOL2TP: - printxval_index(sock_pppol2tp_options, name, "PPPOL2TP_SO_???"); + printxval(sock_pppol2tp_options, name, "PPPOL2TP_SO_???"); break; case SOL_BLUETOOTH: - printxval_search(sock_bluetooth_options, name, "BT_???"); + printxval(sock_bluetooth_options, name, "BT_???"); break; case SOL_PNPIPE: printxval(sock_pnp_options, name, "PNPIPE_???"); break; case SOL_RDS: - printxval_search(sock_rds_options, name, "RDS_???"); + printxval(sock_rds_options, name, "RDS_???"); break; case SOL_IUCV: printxval(sock_iucv_options, name, "SO_???"); @@ -540,10 +540,10 @@ print_sockopt_fd_level_name(struct tcb *tcp, int fd, unsigned int level, printxval(sock_caif_options, name, "CAIFSO_???"); break; case SOL_ALG: - printxval_index(sock_alg_options, name, "ALG_???"); + printxval(sock_alg_options, name, "ALG_???"); break; case SOL_NFC: - printxval_index(sock_nfcllcp_options, name, "NFC_LLCP_???"); + printxval(sock_nfcllcp_options, name, "NFC_LLCP_???"); break; case SOL_KCM: printxval(sock_kcm_options, name, "KCM_???"); @@ -552,7 +552,7 @@ print_sockopt_fd_level_name(struct tcb *tcp, int fd, unsigned int level, printxval(sock_tls_options, name, "TLS_???"); break; case SOL_XDP: - printxval_index(sock_xdp_options, name, "XDP_???"); + printxval(sock_xdp_options, name, "XDP_???"); break; /* Other SOL_* protocol levels still need work. */ @@ -579,24 +579,8 @@ print_get_linger(struct tcb *const tcp, const kernel_ulong_t addr, if (umoven_or_printaddr(tcp, addr, len, &linger)) return; - if (len < sizeof(linger.l_onoff)) { - tprints("{l_onoff="); - print_quoted_string((void *) &linger.l_onoff, - len, QUOTE_FORCE_HEX); - } else { - PRINT_FIELD_D("{", linger, l_onoff); - - if (len > offsetof(struct linger, l_linger)) { - len -= offsetof(struct linger, l_linger); - if (len < sizeof(linger.l_linger)) { - tprints(", l_linger="); - print_quoted_string((void *) &linger.l_linger, - len, QUOTE_FORCE_HEX); - } else { - PRINT_FIELD_D(", ", linger, l_linger); - } - } - } + PRINT_FIELD_LEN("{", linger, l_onoff, len, PRINT_FIELD_D); + PRINT_FIELD_LEN(", ", linger, l_linger, len, PRINT_FIELD_D); tprints("}"); } @@ -617,38 +601,9 @@ print_get_ucred(struct tcb *const tcp, const kernel_ulong_t addr, if (umoven_or_printaddr(tcp, addr, len, &uc)) return; - if (len < sizeof(uc.pid)) { - tprints("{pid="); - print_quoted_string((void *) &uc.pid, - len, QUOTE_FORCE_HEX); - } else { - PRINT_FIELD_D("{", uc, pid); - - if (len > offsetof(struct ucred, uid)) { - len -= offsetof(struct ucred, uid); - if (len < sizeof(uc.uid)) { - tprints(", uid="); - print_quoted_string((void *) &uc.uid, - len, QUOTE_FORCE_HEX); - } else { - PRINT_FIELD_UID(", ", uc, uid); - - if (len > offsetof(struct ucred, gid) - - offsetof(struct ucred, uid)) { - len -= offsetof(struct ucred, gid) - - offsetof(struct ucred, uid); - if (len < sizeof(uc.gid)) { - tprints(", gid="); - print_quoted_string((void *) &uc.gid, - len, - QUOTE_FORCE_HEX); - } else { - PRINT_FIELD_UID(", ", uc, gid); - } - } - } - } - } + PRINT_FIELD_LEN("{", uc, pid, len, PRINT_FIELD_TGID, tcp); + PRINT_FIELD_LEN(", ", uc, uid, len, PRINT_FIELD_UID); + PRINT_FIELD_LEN(", ", uc, gid, len, PRINT_FIELD_UID); tprints("}"); } @@ -665,7 +620,7 @@ print_get_error(struct tcb *const tcp, const kernel_ulong_t addr, return; tprints("["); - print_xlat_ex(err, err_name(err), XLAT_STYLE_FMT_U); + print_err(err, false); tprints("]"); } @@ -688,38 +643,9 @@ print_tpacket_stats(struct tcb *const tcp, const kernel_ulong_t addr, if (umoven_or_printaddr(tcp, addr, len, &stats)) return; - if (len < sizeof(stats.tp_packets)) { - tprints("{tp_packets="); - print_quoted_string((void *) &stats.tp_packets, - len, QUOTE_FORCE_HEX); - } else { - PRINT_FIELD_U("{", stats, tp_packets); - - if (len > offsetof(struct tp_stats, tp_drops)) { - len -= offsetof(struct tp_stats, tp_drops); - if (len < sizeof(stats.tp_drops)) { - tprints(", tp_drops="); - print_quoted_string((void *) &stats.tp_drops, - len, QUOTE_FORCE_HEX); - } else { - PRINT_FIELD_U(", ", stats, tp_drops); - - if (len > offsetof(struct tp_stats, tp_freeze_q_cnt) - - offsetof(struct tp_stats, tp_drops)) { - len -= offsetof(struct tp_stats, tp_freeze_q_cnt) - - offsetof(struct tp_stats, tp_drops); - if (len < sizeof(stats.tp_freeze_q_cnt)) { - tprints(", tp_freeze_q_cnt="); - print_quoted_string((void *) &stats.tp_freeze_q_cnt, - len, - QUOTE_FORCE_HEX); - } else { - PRINT_FIELD_U(", ", stats, tp_freeze_q_cnt); - } - } - } - } - } + PRINT_FIELD_LEN("{", stats, tp_packets, len, PRINT_FIELD_U); + PRINT_FIELD_LEN(", ", stats, tp_drops, len, PRINT_FIELD_U); + PRINT_FIELD_LEN(", ", stats, tp_freeze_q_cnt, len, PRINT_FIELD_U); tprints("}"); } #endif /* PACKET_STATISTICS */ diff --git a/netlink.c b/netlink.c index a107a175..cb29033a 100644 --- a/netlink.c +++ b/netlink.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2016 Fabien Siron * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -13,6 +13,7 @@ #include #include #include +#include "print_fields.h" #include "xlat/netlink_ack_flags.h" #include "xlat/netlink_delete_flags.h" #include "xlat/netlink_flags.h" @@ -39,6 +40,10 @@ #include "xlat/nl_xfrm_types.h" #include "xlat/nlmsgerr_attrs.h" +#define XLAT_MACROS_ONLY +# include "xlat/crypto_msgs.h" +#undef XLAT_MACROS_ONLY + /* * Fetch a struct nlmsghdr from the given address. */ @@ -80,11 +85,14 @@ get_fd_nl_family(struct tcb *const tcp, const int fd) if (nl_details == details) return -1; - const struct xlat *xlats = netlink_protocols; - for (; xlats->str; ++xlats) { - const char *name = STR_STRIP_PREFIX(xlats->str, "NETLINK_"); + const struct xlat_data *xlats = netlink_protocols->data; + for (uint32_t idx = 0; idx < netlink_protocols->size; idx++) { + if (!netlink_protocols->data[idx].str) + continue; + + const char *name = STR_STRIP_PREFIX(xlats[idx].str, "NETLINK_"); if (!strncmp(nl_details, name, strlen(name))) - return xlats->val; + return xlats[idx].val; } if (*nl_details >= '0' && *nl_details <= '9') @@ -438,8 +446,9 @@ print_nlmsghdr(struct tcb *tcp, decode_nlmsg_flags(nlmsghdr->nlmsg_flags, nlmsghdr->nlmsg_type, family); - tprintf(", seq=%u, pid=%u}", nlmsghdr->nlmsg_seq, - nlmsghdr->nlmsg_pid); + tprintf(", seq=%u, pid=", nlmsghdr->nlmsg_seq); + printpid(tcp, nlmsghdr->nlmsg_pid, PT_TGID); + tprints("}"); } static bool @@ -498,12 +507,7 @@ decode_nlmsgerr(struct tcb *const tcp, if (umove_or_printaddr(tcp, addr, &err.error)) return; - tprints("{error="); - if (err.error < 0 && (unsigned) -err.error < nerrnos) { - tprintf("-%s", errnoent[-err.error]); - } else { - tprintf("%d", err.error); - } + PRINT_FIELD_ERR_D("{", err, error); addr += offsetof(struct nlmsgerr, msg); len -= offsetof(struct nlmsgerr, msg); @@ -534,9 +538,7 @@ decode_nlmsgerr(struct tcb *const tcp, } static const netlink_decoder_t netlink_decoders[] = { -#ifdef HAVE_LINUX_CRYPTOUSER_H [NETLINK_CRYPTO] = decode_netlink_crypto, -#endif #ifdef HAVE_LINUX_NETFILTER_NFNETLINK_H [NETLINK_NETFILTER] = decode_netlink_netfilter, #endif diff --git a/netlink_crypto.c b/netlink_crypto.c index 135416b4..a1e05b52 100644 --- a/netlink_crypto.c +++ b/netlink_crypto.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -8,15 +8,18 @@ #include "defs.h" -#ifdef HAVE_LINUX_CRYPTOUSER_H +#include "netlink.h" +#include "nlattr.h" +#include "print_fields.h" -# include "netlink.h" -# include "nlattr.h" -# include "print_fields.h" +#include "types/cryptouser.h" -# include +#include "xlat/crypto_nl_attrs.h" + +#define XLAT_MACROS_ONLY +# include "xlat/crypto_msgs.h" +#undef XLAT_MACROS_ONLY -# include "xlat/crypto_nl_attrs.h" static bool decode_crypto_report_generic(struct tcb *const tcp, @@ -37,8 +40,7 @@ decode_crypto_report_hash(struct tcb *const tcp, const unsigned int len, const void *const opaque_data) { -# ifdef HAVE_STRUCT_CRYPTO_REPORT_HASH - struct crypto_report_hash rhash; + struct_crypto_report_hash rhash; if (len < sizeof(rhash)) printstrn(tcp, addr, len); @@ -48,9 +50,6 @@ decode_crypto_report_hash(struct tcb *const tcp, PRINT_FIELD_U(", ", rhash, digestsize); tprints("}"); } -# else - printstrn(tcp, addr, len); -# endif return true; } @@ -61,8 +60,7 @@ decode_crypto_report_blkcipher(struct tcb *const tcp, const unsigned int len, const void *const opaque_data) { -# ifdef HAVE_STRUCT_CRYPTO_REPORT_BLKCIPHER - struct crypto_report_blkcipher rblkcipher; + struct_crypto_report_blkcipher rblkcipher; if (len < sizeof(rblkcipher)) printstrn(tcp, addr, len); @@ -75,9 +73,6 @@ decode_crypto_report_blkcipher(struct tcb *const tcp, PRINT_FIELD_U(", ", rblkcipher, ivsize); tprints("}"); } -# else - printstrn(tcp, addr, len); -# endif return true; } @@ -88,8 +83,7 @@ decode_crypto_report_aead(struct tcb *const tcp, const unsigned int len, const void *const opaque_data) { -# ifdef HAVE_STRUCT_CRYPTO_REPORT_AEAD - struct crypto_report_aead raead; + struct_crypto_report_aead raead; if (len < sizeof(raead)) printstrn(tcp, addr, len); @@ -101,9 +95,6 @@ decode_crypto_report_aead(struct tcb *const tcp, PRINT_FIELD_U(", ", raead, ivsize); tprints("}"); } -# else - printstrn(tcp, addr, len); -# endif return true; } @@ -114,8 +105,7 @@ decode_crypto_report_rng(struct tcb *const tcp, const unsigned int len, const void *const opaque_data) { -# ifdef HAVE_STRUCT_CRYPTO_REPORT_RNG - struct crypto_report_rng rrng; + struct_crypto_report_rng rrng; if (len < sizeof(rrng)) printstrn(tcp, addr, len); @@ -124,9 +114,6 @@ decode_crypto_report_rng(struct tcb *const tcp, PRINT_FIELD_U(", ", rrng, seedsize); tprints("}"); } -# else - printstrn(tcp, addr, len); -# endif return true; } @@ -137,8 +124,7 @@ decode_crypto_report_cipher(struct tcb *const tcp, const unsigned int len, const void *const opaque_data) { -# ifdef HAVE_STRUCT_CRYPTO_REPORT_CIPHER - struct crypto_report_cipher rcipher; + struct_crypto_report_cipher rcipher; if (len < sizeof(rcipher)) printstrn(tcp, addr, len); @@ -149,9 +135,6 @@ decode_crypto_report_cipher(struct tcb *const tcp, PRINT_FIELD_U(", ", rcipher, max_keysize); tprints("}"); } -# else - printstrn(tcp, addr, len); -# endif return true; } @@ -175,7 +158,7 @@ decode_crypto_user_alg(struct tcb *const tcp, const kernel_ulong_t addr, const unsigned int len) { - struct crypto_user_alg alg; + struct_crypto_user_alg alg; if (len < sizeof(alg)) printstrn(tcp, addr, len); @@ -220,5 +203,3 @@ decode_netlink_crypto(struct tcb *const tcp, return true; } - -#endif /* HAVE_LINUX_CRYPTOUSER_H */ diff --git a/netlink_packet_diag.c b/netlink_packet_diag.c index dd26f95a..6355429b 100644 --- a/netlink_packet_diag.c +++ b/netlink_packet_diag.c @@ -174,10 +174,8 @@ DECL_NETLINK_DIAG_DECODER(decode_packet_diag_msg) (char *) &msg + offset)) { PRINT_FIELD_XVAL("", msg, pdiag_type, socktypes, "SOCK_???"); - PRINT_FIELD_XVAL_SORTED_SIZED(", ", msg, pdiag_num, - ethernet_protocols, - ethernet_protocols_size, - "ETH_P_???"); + PRINT_FIELD_XVAL(", ", msg, pdiag_num, + ethernet_protocols, "ETH_P_???"); PRINT_FIELD_U(", ", msg, pdiag_ino); PRINT_FIELD_COOKIE(", ", msg, pdiag_cookie); decode_nla = true; diff --git a/netlink_route.c b/netlink_route.c index ff803fae..0811760f 100644 --- a/netlink_route.c +++ b/netlink_route.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2016 Fabien Siron * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -90,15 +90,17 @@ static const netlink_route_decoder_t route_decoders[] = { [RTM_NEWNETCONF - RTM_BASE] = decode_netconfmsg, #endif -#ifdef HAVE_STRUCT_BR_PORT_MSG [RTM_DELMDB - RTM_BASE] = decode_br_port_msg, [RTM_GETMDB - RTM_BASE] = decode_br_port_msg, [RTM_NEWMDB - RTM_BASE] = decode_br_port_msg, -#endif [RTM_DELNSID - RTM_BASE] = decode_rtgenmsg, [RTM_GETNSID - RTM_BASE] = decode_rtgenmsg, - [RTM_NEWNSID - RTM_BASE] = decode_rtgenmsg + [RTM_NEWNSID - RTM_BASE] = decode_rtgenmsg, + + [RTM_NEWCHAIN - RTM_BASE] = decode_tcmsg, + [RTM_DELCHAIN - RTM_BASE] = decode_tcmsg, + [RTM_GETCHAIN - RTM_BASE] = decode_tcmsg, }; bool diff --git a/netlink_smc_diag.c b/netlink_smc_diag.c index 9255c0de..16815fde 100644 --- a/netlink_smc_diag.c +++ b/netlink_smc_diag.c @@ -136,7 +136,7 @@ decode_smc_diag_shutdown(struct tcb *const tcp, const void *const opaque_data) { const struct decode_nla_xlat_opts opts = { - ARRSZ_PAIR(sock_shutdown_flags) - 1, "???_SHUTDOWN", + sock_shutdown_flags, "???_SHUTDOWN", .size = 1, }; @@ -183,11 +183,11 @@ decode_smc_diag_fallback(struct tcb *const tcp, * net/smc/smc_clc.h */ tprints("{reason="); - printxval_search_ex(smc_decl_codes, fb.reason, - "SMC_CLC_DECL_???", XLAT_STYLE_VERBOSE); + printxval_ex(smc_decl_codes, fb.reason, "SMC_CLC_DECL_???", + XLAT_STYLE_VERBOSE); tprints(", peer_diagnosis="); - printxval_search_ex(smc_decl_codes, fb.peer_diagnosis, - "SMC_CLC_DECL_???", XLAT_STYLE_VERBOSE); + printxval_ex(smc_decl_codes, fb.peer_diagnosis, "SMC_CLC_DECL_???", + XLAT_STYLE_VERBOSE); tprints("}"); return true; @@ -215,9 +215,8 @@ DECL_NETLINK_DIAG_DECODER(decode_smc_diag_msg) (void *) &msg + offset)) { PRINT_FIELD_XVAL("", msg, diag_state, smc_states, "SMC_???"); - PRINT_FIELD_XVAL_INDEX(", ", msg, diag_fallback, - smc_diag_mode, - "SMC_DIAG_MODE_???"); + PRINT_FIELD_XVAL(", ", msg, diag_fallback, + smc_diag_mode, "SMC_DIAG_MODE_???"); PRINT_FIELD_U(", ", msg, diag_shutdown); /* * AF_SMC protocol family socket handler diff --git a/netlink_unix_diag.c b/netlink_unix_diag.c index 5a909963..a41fe3c8 100644 --- a/netlink_unix_diag.c +++ b/netlink_unix_diag.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2016 Fabien Siron * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -119,7 +119,8 @@ static const nla_decoder_t unix_diag_msg_nla_decoders[] = { [UNIX_DIAG_ICONS] = decode_unix_diag_inode, [UNIX_DIAG_RQLEN] = decode_unix_diag_rqlen, [UNIX_DIAG_MEMINFO] = decode_nla_meminfo, - [UNIX_DIAG_SHUTDOWN] = decode_nla_u8 + [UNIX_DIAG_SHUTDOWN] = decode_nla_u8, + [UNIX_DIAG_UID] = decode_nla_uid }; DECL_NETLINK_DIAG_DECODER(decode_unix_diag_msg) diff --git a/nlattr.c b/nlattr.c index f3df7d99..7f13642c 100644 --- a/nlattr.c +++ b/nlattr.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2016 Fabien Siron * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -165,7 +165,8 @@ decode_nla_str(struct tcb *const tcp, const unsigned int len, const void *const opaque_data) { - printstr_ex(tcp, addr, len, QUOTE_0_TERMINATED); + printstr_ex(tcp, addr, len, + QUOTE_OMIT_TRAILING_0 | QUOTE_EXPECT_TRAILING_0); return true; } @@ -196,10 +197,8 @@ decode_nla_meminfo(struct tcb *const tcp, unsigned int count = 0; print_array_ex(tcp, addr, nmemb, &mem, sizeof(mem), tfetch_mem, print_uint32_array_member, &count, - PAF_PRINT_INDICES | PAF_INDEX_XLAT_VALUE_INDEXED - | XLAT_STYLE_FMT_U, - ARRSZ_PAIR(netlink_sk_meminfo_indices) - 1, - "SK_MEMINFO_???"); + PAF_PRINT_INDICES | XLAT_STYLE_FMT_U, + netlink_sk_meminfo_indices, "SK_MEMINFO_???"); return true; } @@ -286,8 +285,7 @@ decode_nla_xval(struct tcb *const tcp, data.val = opts->process_fn(data.val); if (opts->prefix) tprints(opts->prefix); - printxval_dispatch_ex(opts->xlat, opts->xlat_size, data.val, - opts->dflt, opts->xt, opts->style); + printxval_ex(opts->xlat, data.val, opts->dflt, opts->style); if (opts->suffix) tprints(opts->suffix); } @@ -307,11 +305,9 @@ decode_nla_ether_proto(struct tcb *const tcp, const unsigned int len, const void *const opaque_data) { - const struct decode_nla_xlat_opts opts = { + static const struct decode_nla_xlat_opts opts = { .xlat = ethernet_protocols, - .xlat_size = ethernet_protocols_size, .dflt = "ETHER_P_???", - .xt = XT_SORTED, .prefix = "htons(", .suffix = ")", .size = 2, @@ -327,10 +323,8 @@ decode_nla_ip_proto(struct tcb *const tcp, const unsigned int len, const void *const opaque_data) { - const struct decode_nla_xlat_opts opts = { + static const struct decode_nla_xlat_opts opts = { .xlat = inet_protocols, - .xlat_size = inet_protocols_size, - .xt = XT_SORTED, .dflt = "IPPROTO_???", .size = 1, }; @@ -338,6 +332,26 @@ decode_nla_ip_proto(struct tcb *const tcp, return decode_nla_xval(tcp, addr, len, &opts); } +bool +decode_nla_hwaddr(struct tcb *const tcp, + const kernel_ulong_t addr, + const unsigned int len, + const void *const opaque_data) +{ + if (len > MAX_ADDR_LEN) + return false; + + uint8_t buf[len]; + const uintptr_t arphrd = (uintptr_t) opaque_data; + + if (!umoven_or_printaddr(tcp, addr, len, buf)) { + print_hwaddr("", buf, len, arphrd & NLA_HWADDR_FAMILY_OFFSET + ? arphrd & ~NLA_HWADDR_FAMILY_OFFSET : -1U); + } + + return true; +} + bool decode_nla_in_addr(struct tcb *const tcp, const kernel_ulong_t addr, @@ -390,10 +404,6 @@ decode_nla_flags(struct tcb *const tcp, const size_t bytes_offs = is_bigendian ? sizeof(data) - len : 0; - if (opts->xt == XT_INDEXED) - error_func_msg("indexed xlats are currently incompatible with " - "printflags"); - if (!umoven_or_printaddr(tcp, addr, len, data.bytes + bytes_offs)) { if (opts->process_fn) data.flags = opts->process_fn(data.flags); diff --git a/nlattr.h b/nlattr.h index a11f2f1d..8b9b841f 100644 --- a/nlattr.h +++ b/nlattr.h @@ -1,7 +1,7 @@ /* * Copyright (c) 2016 Fabien Siron * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -14,9 +14,7 @@ struct decode_nla_xlat_opts { const struct xlat *xlat; - size_t xlat_size; /* is not needed for XT_NORMAL */ const char *dflt; - enum xlat_type xt; enum xlat_style style; const char *prefix; const char *suffix; @@ -89,4 +87,34 @@ DECL_NLA(rt_class); DECL_NLA(rt_proto); DECL_NLA(tc_stats); +# define NLA_HWADDR_FAMILY_OFFSET 1024 + +/** + * Print hardware (low-level, L2) address. + * @param opaque_data Interpreted as integer value, not pointer + */ +DECL_NLA(hwaddr); + +/** Non-standard decoder that accepts ARPHRD_* value as an argument */ +static inline bool +decode_nla_hwaddr_family(struct tcb *const tcp, + const kernel_ulong_t addr, + const unsigned int len, + const unsigned int arphrd) +{ + return decode_nla_hwaddr(tcp, addr, len, (void *) (uintptr_t) ( + arphrd > NLA_HWADDR_FAMILY_OFFSET ? 0 + : NLA_HWADDR_FAMILY_OFFSET | arphrd)); +} + +/** decode_nla_hwaddr wrapper that ignores opaque_data */ +static inline bool +decode_nla_hwaddr_nofamily(struct tcb *const tcp, + const kernel_ulong_t addr, + const unsigned int len, + const void *const opaque_data) +{ + return decode_nla_hwaddr(tcp, addr, len, NULL); +} + #endif /* !STRACE_NLATTR_H */ diff --git a/numa.c b/numa.c index 0029dfb3..5cd5fe12 100644 --- a/numa.c +++ b/numa.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2003-2007 Ulrich Drepper * Copyright (c) 2005-2016 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -44,7 +44,8 @@ print_nodemask(struct tcb *const tcp, const kernel_ulong_t addr, SYS_FUNC(migrate_pages) { - tprintf("%d, %" PRI_klu ", ", (int) tcp->u_arg[0], tcp->u_arg[1]); + printpid(tcp, tcp->u_arg[0], PT_TGID); + tprintf(", %" PRI_klu ", ", tcp->u_arg[1]); print_nodemask(tcp, tcp->u_arg[2], tcp->u_arg[1]); tprints(", "); print_nodemask(tcp, tcp->u_arg[3], tcp->u_arg[1]); @@ -52,25 +53,62 @@ SYS_FUNC(migrate_pages) return RVAL_DECODED; } -#include "xlat/policies.h" -#include "xlat/mbindflags.h" +#include "xlat/mpol_modes.h" +#include "xlat/mpol_mode_flags.h" +#include "xlat/mbind_flags.h" + +static void +print_mode(struct tcb *const tcp, const kernel_ulong_t mode_arg) +{ + const kernel_ulong_t flags_mask = + MPOL_F_STATIC_NODES | MPOL_F_RELATIVE_NODES; + const kernel_ulong_t mode = mode_arg & ~flags_mask; + const unsigned int flags = mode_arg & flags_mask; + + if (!flags) { + printxval64(mpol_modes, mode, "MPOL_???"); + return; + } + + const char *mode_str = xlookup(mpol_modes, mode); + if (!mode_str) { + printflags64(mpol_mode_flags, mode_arg, "MPOL_???"); + return; + } + + if (xlat_verbose(xlat_verbosity) != XLAT_STYLE_ABBREV) + tprintf("%#" PRI_klx, mode_arg); + + if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW) + return; + + if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE) + tprints(" /* "); + + tprints(mode_str); + tprints("|"); + printflags_ex(flags, NULL, XLAT_STYLE_ABBREV, mpol_mode_flags, NULL); + + if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE) + tprints(" */"); +} SYS_FUNC(mbind) { printaddr(tcp->u_arg[0]); tprintf(", %" PRI_klu ", ", tcp->u_arg[1]); - printxval64(policies, tcp->u_arg[2], "MPOL_???"); + print_mode(tcp, tcp->u_arg[2]); tprints(", "); print_nodemask(tcp, tcp->u_arg[3], tcp->u_arg[4]); tprintf(", %" PRI_klu ", ", tcp->u_arg[4]); - printflags(mbindflags, tcp->u_arg[5], "MPOL_???"); + printflags(mbind_flags, tcp->u_arg[5], "MPOL_???"); return RVAL_DECODED; } SYS_FUNC(set_mempolicy) { - printxval(policies, tcp->u_arg[0], "MPOL_???"); + print_mode(tcp, (unsigned int) tcp->u_arg[0]); tprints(", "); print_nodemask(tcp, tcp->u_arg[1], tcp->u_arg[2]); tprintf(", %" PRI_klu, tcp->u_arg[2]); @@ -78,7 +116,7 @@ SYS_FUNC(set_mempolicy) return RVAL_DECODED; } -#include "xlat/mempolicyflags.h" +#include "xlat/get_mempolicy_flags.h" SYS_FUNC(get_mempolicy) { @@ -86,7 +124,7 @@ SYS_FUNC(get_mempolicy) int pol; if (!umove_or_printaddr(tcp, tcp->u_arg[0], &pol)) { tprints("["); - printxval(policies, pol, "MPOL_???"); + printxval(mpol_modes, pol, "MPOL_???"); tprints("]"); } tprints(", "); @@ -94,7 +132,7 @@ SYS_FUNC(get_mempolicy) tprintf(", %" PRI_klu ", ", tcp->u_arg[2]); printaddr(tcp->u_arg[3]); tprints(", "); - printflags64(mempolicyflags, tcp->u_arg[4], "MPOL_???"); + printflags64(get_mempolicy_flags, tcp->u_arg[4], "MPOL_???"); } return 0; } @@ -121,21 +159,8 @@ static bool print_status(struct tcb *tcp, void *elem_buf, size_t elem_size, void *data) { const int status = *(int *) elem_buf; - bool is_errno = (status < 0) && ((unsigned) -status < nerrnos); - - if (!is_errno || xlat_verbose(xlat_verbosity) != XLAT_STYLE_ABBREV) - tprintf("%d", status); - if (!is_errno || xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW) - return true; - - if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE) - tprints(" /* "); - - tprintf("-%s", errnoent[-status]); - - if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE) - tprints(" */"); + print_err(status, true); return true; } @@ -146,7 +171,8 @@ SYS_FUNC(move_pages) kernel_ulong_t buf; if (entering(tcp)) { - tprintf("%d, %" PRI_klu ", ", (int) tcp->u_arg[0], npages); + printpid(tcp, tcp->u_arg[0], PT_TGID); + tprintf(", %" PRI_klu ", ", npages); print_array(tcp, tcp->u_arg[2], npages, &buf, current_wordsize, tfetch_mem, print_addr, 0); tprints(", "); diff --git a/number_set.c b/number_set.c index 4092ffda..3f9e5fa7 100644 --- a/number_set.c +++ b/number_set.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -12,7 +13,9 @@ #include #include #include +#include "defs.h" #include "number_set.h" +#include "static_assert.h" #include "xmalloc.h" typedef unsigned int number_slot_t; @@ -47,6 +50,14 @@ reallocate_number_set(struct number_set *const set, const unsigned int new_nslot set->nslots = new_nslots; } +static unsigned int +get_number_setbit(const struct number_set *const set) +{ + static_assert(sizeof(number_slot_t) == sizeof(uint32_t), + "number_slot_t is not 32-bit long"); + return popcount32(set->vec, set->nslots); +} + bool number_set_array_is_empty(const struct number_set *const set, const unsigned int idx) @@ -69,6 +80,25 @@ is_number_in_set_array(const unsigned int number, const struct number_set *const && number_isset(number, set[idx].vec)) ^ set[idx].not; } +bool +is_complete_set(const struct number_set *const set, const unsigned int max_numbers) +{ + return set && ((set->not && !set->nslots) || + (get_number_setbit(set) == max_numbers)); +} + +bool +is_complete_set_array(const struct number_set *const set, + const unsigned int *const max_numbers, + const unsigned int nmemb) +{ + for (unsigned int i = 0; i < nmemb; ++i) { + if (!is_complete_set(&set[i], max_numbers[i])) + return false; + } + return true; +} + void add_number_to_set(const unsigned int number, struct number_set *const set) { diff --git a/number_set.h b/number_set.h index 77dc3a9c..4ceebaa0 100644 --- a/number_set.h +++ b/number_set.h @@ -1,5 +1,6 @@ /* * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -21,6 +22,13 @@ is_number_in_set(unsigned int number, const struct number_set *); extern bool is_number_in_set_array(unsigned int number, const struct number_set *, unsigned int idx); +extern bool +is_complete_set(const struct number_set *, unsigned int max_numbers); + +extern bool +is_complete_set_array(const struct number_set *, const unsigned int *, + const unsigned int nmemb); + extern void add_number_to_set(unsigned int number, struct number_set *); @@ -39,8 +47,48 @@ alloc_number_set_array(unsigned int nmemb) ATTRIBUTE_MALLOC; extern void free_number_set_array(struct number_set *, unsigned int nmemb); +enum status_t { + STATUS_SUCCESSFUL, + STATUS_FAILED, + STATUS_UNFINISHED, + STATUS_UNAVAILABLE, + STATUS_DETACHED, + NUMBER_OF_STATUSES +}; + +enum quiet_bits { + /** Do not print messages on tracee attach/detach. */ + QUIET_ATTACH, + /** Do not print messages on tracee exits. */ + QUIET_EXIT, + /** Do not print messages about path tracing path resolution. */ + QUIET_PATH_RESOLVE, + /** Do not print messages on personality change. */ + QUIET_PERSONALITY, + /** Do not print messages on superseding execve. */ + QUIET_THREAD_EXECVE, + + NUM_QUIET_BITS +}; + +enum decode_fd_bits { + DECODE_FD_PATH, + DECODE_FD_SOCKET, + DECODE_FD_DEV, + DECODE_FD_PIDFD, + + NUM_DECODE_FD_BITS +}; + +extern bool quiet_set_updated; +extern bool decode_fd_set_updated; + extern struct number_set *read_set; extern struct number_set *write_set; extern struct number_set *signal_set; +extern struct number_set *status_set; +extern struct number_set *quiet_set; +extern struct number_set *decode_fd_set; +extern struct number_set *trace_set; #endif /* !STRACE_NUMBER_SET_H */ diff --git a/open.c b/open.c index 153c93a2..eb6af088 100644 --- a/open.c +++ b/open.c @@ -7,7 +7,7 @@ * Copyright (c) 2006-2007 Ulrich Drepper * Copyright (c) 2009-2013 Denys Vlasenko * Copyright (c) 2005-2015 Dmitry V. Levin - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -18,6 +18,10 @@ #include +#include "print_fields.h" + +#include "types/openat2.h" + /* some libcs are guilty of messing up with O_ACCMODE */ #undef O_ACCMODE #define O_ACCMODE 03 @@ -30,6 +34,7 @@ #include "xlat/open_access_modes.h" #include "xlat/open_mode_flags.h" +#include "xlat/open_resolve_flags.h" #ifndef AT_FDCWD # define AT_FDCWD -100 @@ -45,22 +50,19 @@ print_dirfd(struct tcb *tcp, int fd) print_xlat_d(AT_FDCWD); else printfd(tcp, fd); - - tprints(", "); } /* * low bits of the open(2) flags define access mode, * other bits are real flags. */ -const char * -sprint_open_modes(unsigned int flags) +static const char * +sprint_open_modes64(uint64_t flags) { - static char outstr[(1 + ARRAY_SIZE(open_mode_flags)) * sizeof("O_LARGEFILE")]; + static char outstr[sizeof("flags O_ACCMODE")]; char *p; char sep; const char *str; - const struct xlat *x; sep = ' '; p = stpcpy(outstr, "flags"); @@ -73,28 +75,28 @@ sprint_open_modes(unsigned int flags) return outstr; sep = '|'; } + *p = '\0'; - for (x = open_mode_flags; x->str; x++) { - if ((flags & x->val) == x->val) { - *p++ = sep; - p = stpcpy(p, x->str); - flags &= ~x->val; - if (!flags) - return outstr; - sep = '|'; - } - } - /* flags is still nonzero */ - *p++ = sep; - p = xappendstr(outstr, p, "%#x", flags); - return outstr; + return sprintflags_ex(outstr, open_mode_flags, flags, sep, + XLAT_STYLE_ABBREV) ?: outstr; } +const char * +sprint_open_modes(unsigned int flags) +{ + return sprint_open_modes64(flags); +} + +static void +tprint_open_modes64(uint64_t flags) +{ + print_xlat_ex(flags, sprint_open_modes64(flags) + sizeof("flags"), + XLAT_STYLE_DEFAULT); +} void tprint_open_modes(unsigned int flags) { - print_xlat_ex(flags, sprint_open_modes(flags) + sizeof("flags"), - XLAT_STYLE_DEFAULT); + tprint_open_modes64(flags); } static int @@ -118,12 +120,54 @@ SYS_FUNC(open) return decode_open(tcp, 0); } +static void +print_open_how(struct tcb *tcp, kernel_ulong_t addr, kernel_ulong_t size) +{ + enum { OPEN_HOW_MIN_SIZE = 24 }; + + struct_open_how how; + + if (size < OPEN_HOW_MIN_SIZE) { + printaddr(addr); + return; + } + if (umoven_or_printaddr(tcp, addr, MIN(size, sizeof(how)), &how)) + return; + + tprints("{flags="); + tprint_open_modes64(how.flags); + if ((how.flags & (O_CREAT| __O_TMPFILE)) || how.mode) + PRINT_FIELD_NUMERIC_UMODE_T(", ", how, mode); + PRINT_FIELD_FLAGS(", ", how, resolve, open_resolve_flags, + "RESOLVE_???"); + + if (size > sizeof(how)) { + print_nonzero_bytes(tcp, ", ", addr, sizeof(how), + MIN(size, get_pagesize()), QUOTE_FORCE_HEX); + } + + tprints("}"); +} + SYS_FUNC(openat) { print_dirfd(tcp, tcp->u_arg[0]); + tprints(", "); return decode_open(tcp, 1); } +SYS_FUNC(openat2) +{ + print_dirfd(tcp, tcp->u_arg[0]); + tprints(", "); + printpath(tcp, tcp->u_arg[1]); + tprints(", "); + print_open_how(tcp, tcp->u_arg[2], tcp->u_arg[3]); + tprintf(", %" PRI_klu, tcp->u_arg[3]); + + return RVAL_DECODED | RVAL_FD; +} + SYS_FUNC(creat) { printpath(tcp, tcp->u_arg[0]); diff --git a/open_tree.c b/open_tree.c new file mode 100644 index 00000000..15adec52 --- /dev/null +++ b/open_tree.c @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#include "defs.h" +#include +#ifdef HAVE_LINUX_MOUNT_H +# include +#endif +#include "xlat/open_tree_flags.h" + +SYS_FUNC(open_tree) +{ + print_dirfd(tcp, tcp->u_arg[0]); + tprints(", "); + printpath(tcp, tcp->u_arg[1]); + tprints(", "); + printflags(open_tree_flags, tcp->u_arg[2], "OPEN_TREE_???"); + return RVAL_DECODED | RVAL_FD; +} diff --git a/pathtrace.c b/pathtrace.c index 142e1b65..7c184151 100644 --- a/pathtrace.c +++ b/pathtrace.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2011 Comtrol Corp. - * Copyright (c) 2011-2019 The strace developers. + * Copyright (c) 2011-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -11,6 +11,7 @@ #include #include +#include "number_set.h" #include "syscall.h" #include "xstring.h" @@ -75,10 +76,10 @@ storepath(const char *path, struct path_set *set) } /* - * Get path associated with fd. + * Get path associated with fd of a process with pid. */ int -getfdpath(struct tcb *tcp, int fd, char *buf, unsigned bufsize) +getfdpath_pid(pid_t pid, int fd, char *buf, unsigned bufsize) { char linkpath[sizeof("/proc/%u/fd/%u") + 2 * sizeof(int)*3]; ssize_t n; @@ -86,7 +87,12 @@ getfdpath(struct tcb *tcp, int fd, char *buf, unsigned bufsize) if (fd < 0) return -1; - xsprintf(linkpath, "/proc/%u/fd/%u", tcp->pid, fd); + int proc_pid = 0; + translate_pid(NULL, pid, PT_TID, &proc_pid); + if (!proc_pid) + return -1; + + xsprintf(linkpath, "/proc/%u/fd/%u", proc_pid, fd); n = readlink(linkpath, buf, bufsize - 1); /* * NB: if buf is too small, readlink doesn't fail, @@ -119,7 +125,21 @@ pathtrace_select_set(const char *path, struct path_set *set) return; } - error_msg("Requested path '%s' resolved into '%s'", path, rpath); + if (!is_number_in_set(QUIET_PATH_RESOLVE, quiet_set)) { + char *path_quoted = xmalloc(strlen(path) * 4 + 4); + char *rpath_quoted = xmalloc(strlen(rpath) * 4 + 4); + + string_quote(path, path_quoted, strlen(path) + 1, + QUOTE_0_TERMINATED, NULL); + string_quote(rpath, rpath_quoted, strlen(rpath) + 1, + QUOTE_0_TERMINATED, NULL); + + error_msg("Requested path %s resolved into %s", + path_quoted, rpath_quoted); + + free(path_quoted); + free(rpath_quoted); + } storepath(rpath, set); } @@ -178,6 +198,7 @@ pathtrace_match_set(struct tcb *tcp, struct path_set *set) */ switch (s->sen) { + case SEN_close_range: case SEN_dup2: case SEN_dup3: case SEN_kexec_file_load: @@ -190,8 +211,10 @@ pathtrace_match_set(struct tcb *tcp, struct path_set *set) case SEN_execveat: case SEN_faccessat: + case SEN_faccessat2: case SEN_fchmodat: case SEN_fchownat: + case SEN_fspick: case SEN_fstatat64: case SEN_futimesat: case SEN_inotify_add_watch: @@ -199,7 +222,9 @@ pathtrace_match_set(struct tcb *tcp, struct path_set *set) case SEN_mknodat: case SEN_name_to_handle_at: case SEN_newfstatat: + case SEN_open_tree: case SEN_openat: + case SEN_openat2: case SEN_readlinkat: case SEN_statx: case SEN_unlinkat: @@ -222,6 +247,7 @@ pathtrace_match_set(struct tcb *tcp, struct path_set *set) return upathmatch(tcp, tcp->u_arg[1], set); case SEN_linkat: + case SEN_move_mount: case SEN_renameat2: case SEN_renameat: /* fd, path, fd, path */ @@ -316,6 +342,21 @@ pathtrace_match_set(struct tcb *tcp, struct path_set *set) return false; } + case SEN_fsconfig: { + /* x, x, x, maybe path, maybe fd */ + const unsigned int cmd = tcp->u_arg[1]; + switch (cmd) { + case 3 /* FSCONFIG_SET_PATH */: + case 4 /* FSCONFIG_SET_PATH_EMPTY */: + return fdmatch(tcp, tcp->u_arg[4], set) || + upathmatch(tcp, tcp->u_arg[3], set); + case 5 /* FSCONFIG_SET_FD */: + return fdmatch(tcp, tcp->u_arg[4], set); + } + + return false; + } + case SEN_accept4: case SEN_accept: case SEN_bpf: @@ -324,6 +365,8 @@ pathtrace_match_set(struct tcb *tcp, struct path_set *set) case SEN_eventfd2: case SEN_eventfd: case SEN_fanotify_init: + case SEN_fsmount: + case SEN_fsopen: case SEN_inotify_init: case SEN_inotify_init1: case SEN_io_uring_enter: @@ -338,6 +381,7 @@ pathtrace_match_set(struct tcb *tcp, struct path_set *set) case SEN_mq_timedsend_time32: case SEN_mq_timedsend_time64: case SEN_perf_event_open: + case SEN_pidfd_open: case SEN_pipe: case SEN_pipe2: case SEN_printargs: diff --git a/perf.c b/perf.c index 1c45f8d1..b65ec1e5 100644 --- a/perf.c +++ b/perf.c @@ -2,7 +2,7 @@ * Copyright (c) 2013 Ben Noordhuis * Copyright (c) 2013-2015 Dmitry V. Levin * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2015-2019 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -371,8 +371,16 @@ print_perf_event_attr(struct tcb *const tcp, const kernel_ulong_t addr) _PERF_CHECK_FIELD(sample_max_stack); PRINT_FIELD_U(", ", *attr, sample_max_stack); - /* _PERF_CHECK_FIELD(__reserved_2); - PRINT_FIELD_U(", ", *attr, __reserved2); */ + _PERF_CHECK_FIELD(__reserved_2); + if (attr->__reserved_2) + tprintf(" /* bytes 110..111: %#hx */", attr->__reserved_2); + + _PERF_CHECK_FIELD(aux_sample_size); + PRINT_FIELD_U(", ", *attr, aux_sample_size); + + /* _PERF_CHECK_FIELD(__reserved_3); + if (attr->__reserved_3) + PRINT_FIELD_X(", ", *attr, __reserved_3); */ print_perf_event_attr_out: if ((attr->size && (attr->size > size)) || diff --git a/perf_event_struct.h b/perf_event_struct.h index b9489a65..69f53b89 100644 --- a/perf_event_struct.h +++ b/perf_event_struct.h @@ -1,5 +1,6 @@ /* * Copyright (c) 2016-2018 Eugene Syromyatnikov + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -76,6 +77,9 @@ struct perf_event_attr { uint16_t sample_max_stack; uint16_t __reserved_2; /* End of ver 5 - 112 bytes */ + uint32_t aux_sample_size; + uint32_t __reserved_3; + /* End of ver 6 - 120 bytes */ }; struct perf_event_query_bpf { diff --git a/perf_ioctl.c b/perf_ioctl.c index 427aa9eb..cad5fdb9 100644 --- a/perf_ioctl.c +++ b/perf_ioctl.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -90,7 +90,7 @@ MPERS_PRINTER_DECL(int, perf_ioctl, case PERF_EVENT_IOC_SET_OUTPUT: case PERF_EVENT_IOC_SET_BPF: - tprintf(", "); + tprints(", "); printfd(tcp, (int) arg); return RVAL_IOCTL_DECODED; diff --git a/pidfd_getfd.c b/pidfd_getfd.c new file mode 100644 index 00000000..dc263e27 --- /dev/null +++ b/pidfd_getfd.c @@ -0,0 +1,31 @@ +/* + * pidfd_getfd() syscall decoder. + * + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#include "defs.h" +#include "number_set.h" + +SYS_FUNC(pidfd_getfd) +{ + int pidfd = (int) tcp->u_arg[0]; + int targetfd = (int) tcp->u_arg[1]; + unsigned int flags = (unsigned int) tcp->u_arg[2]; + + printfd(tcp, pidfd); + tprints(", "); + + pid_t target_pid = pidfd_get_pid(tcp->pid, pidfd); + if (target_pid > 0) + printfd_pid(tcp, target_pid, targetfd); + else + tprintf("%d", targetfd); + + tprintf(", %#x", flags); + + return RVAL_DECODED | RVAL_FD; +} diff --git a/pidfd_open.c b/pidfd_open.c new file mode 100644 index 00000000..11d8061c --- /dev/null +++ b/pidfd_open.c @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2019 Dmitry V. Levin + * Copyright (c) 2019-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#include "defs.h" + +SYS_FUNC(pidfd_open) +{ + /* pid_t pid */ + printpid(tcp, tcp->u_arg[0], PT_TGID); + + /* unsigned int flags */ + tprintf(", %#x", (unsigned int) tcp->u_arg[1]); + + return RVAL_DECODED | RVAL_FD; +} diff --git a/pidns.c b/pidns.c new file mode 100644 index 00000000..94b16fa9 --- /dev/null +++ b/pidns.c @@ -0,0 +1,608 @@ +/* + * Copyright (c) 2020 Ákos Uzonyi + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#include "defs.h" + + +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include + +#include "largefile_wrappers.h" +#include "trie.h" +#include "nsfs.h" +#include "xmalloc.h" +#include "xstring.h" + +/** + * Key: PID NS ID + * Value: a btree: + * Key: a process PID in NS + * Value: the process's PID as present in /proc + */ +static struct trie *ns_pid_to_proc_pid[PT_COUNT]; + +/** + * Key: Proc PID + * Value: struct proc_data + */ +static struct trie *proc_data_cache; + +static bool ns_get_parent_enotty = false; + +static const char tid_str[] = "NSpid:\t"; +static const char tgid_str[] = "NStgid:\t"; +static const char pgid_str[] = "NSpgid:\t"; +static const char sid_str[] = "NSsid:\t"; + +static const struct { + const char *str; + size_t size; +} id_strs[PT_COUNT] = { + [PT_TID] = { tid_str, sizeof(tid_str) - 1 }, + [PT_TGID] = { tgid_str, sizeof(tgid_str) - 1 }, + [PT_PGID] = { pgid_str, sizeof(pgid_str) - 1 }, + [PT_SID] = { sid_str, sizeof(sid_str) - 1 }, +}; + + +/** + * Limit on PID NS hierarchy depth, imposed since Linux 3.7. NS traversal + * is not possible before Linux 4.9, so we consider this limit pretty universal. + */ +#define MAX_NS_DEPTH 32 + +static const size_t ns_id_size = sizeof(unsigned int) * 8; +static const uint8_t ptr_sz_lg = (sizeof(void *) == 8 ? 6 : 5); + +static int pid_max; +static uint8_t pid_max_size, pid_max_size_lg; + +struct proc_data { + int proc_pid; + int ns_count; + unsigned int ns_hierarchy[MAX_NS_DEPTH]; + int id_count[PT_COUNT]; + int id_hierarchy[PT_COUNT][MAX_NS_DEPTH]; +}; + +/** + * Helper function for creating a trie. + * + * For node_key_bits and data_block_key_bits 4 is used (so trie height is 32 / 4 + * = 8, and node sizes are 8 byte * 2^4 = 128 bytes), which seems to be a good + * tradeoff between memory usage and lookup time. It should not be too large, + * since there can be large holes between PIDs, and it would be just a waste of + * memory having large nodes with lot of NULL pointers in them. + */ +static struct trie * +create_trie_4(uint8_t key_size, uint8_t item_size_lg, uint64_t empty_value) +{ + struct trie *t = trie_create(key_size, item_size_lg, 4, 4, empty_value); + if (!t) + error_msg_and_die("creating trie failed"); + + return t; +} + +void +pidns_init(void) +{ + if (proc_data_cache) + return; + + pid_max = INT_MAX; + if (read_int_from_file("/proc/sys/kernel/pid_max", &pid_max) < 0) + debug_func_perror_msg("reading /proc/sys/kernel/pid_max"); + pid_max_size = ilog2_32(pid_max - 1) + 1; + pid_max_size_lg = ilog2_32(pid_max_size - 1) + 1; + + for (int i = 0; i < PT_COUNT; i++) + ns_pid_to_proc_pid[i] = create_trie_4(ns_id_size, ptr_sz_lg, 0); + + proc_data_cache = create_trie_4(pid_max_size, ptr_sz_lg, 0); +} + +static void +put_proc_pid(unsigned int ns, int ns_pid, enum pid_type type, int proc_pid) +{ + struct trie *b = (struct trie *) (uintptr_t) trie_get(ns_pid_to_proc_pid[type], ns); + if (!b) { + b = create_trie_4(pid_max_size, pid_max_size_lg, 0); + trie_set(ns_pid_to_proc_pid[type], ns, (uint64_t) (uintptr_t) b); + } + trie_set(b, ns_pid, proc_pid); +} + +static int +get_cached_proc_pid(unsigned int ns, int ns_pid, enum pid_type type) +{ + struct trie *b = (struct trie *) (uintptr_t) + trie_get(ns_pid_to_proc_pid[type], ns); + if (!b) + return 0; + + return trie_get(b, ns_pid); +} + +/** + * Helper function, converts pid to string, or to "self" for pid == 0. + * Uses static buffer for operation. + */ +static const char * +pid_to_str(pid_t pid) +{ + if (!pid) + return "self"; + + static char buf[sizeof("-2147483648")]; + xsprintf(buf, "%d", pid); + return buf; +} + +/** + * Returns a list of PID NS IDs for the specified PID. + * + * @param proc_pid PID (as present in /proc) to get information for. + * @param ns_buf Pointer to buffer that is able to contain at least + * ns_buf_size items. + * @return Amount of NS in list. 0 indicates error. + */ +static size_t +get_ns_hierarchy(int proc_pid, unsigned int *ns_buf, size_t ns_buf_size) +{ + char path[PATH_MAX + 1]; + xsprintf(path, "/proc/%s/ns/pid", pid_to_str(proc_pid)); + + int fd = open_file(path, O_RDONLY); + if (fd < 0) + return 0; + + size_t n = 0; + while (n < ns_buf_size) { + strace_stat_t st; + if (fstat_fd(fd, &st)) + break; + + ns_buf[n++] = st.st_ino; + if (n >= ns_buf_size) + break; + + if (ns_get_parent_enotty) + break; + + int parent_fd = ioctl(fd, NS_GET_PARENT); + if (parent_fd < 0) { + switch (errno) { + case EPERM: + break; + + case ENOTTY: + ns_get_parent_enotty = true; + error_msg("NS_* ioctl commands are not " + "supported by the kernel"); + break; + + default: + perror_func_msg("ioctl(NS_GET_PARENT)"); + break; + } + + break; + } + + close(fd); + fd = parent_fd; + } + + close(fd); + + return n; +} + +/** + * Get list of IDs present in NS* proc status record. IDs are placed as they are + * stored in /proc (from top to bottom of NS hierarchy). + * + * @param proc_pid PID (as present in /proc) to get information for. + * @param id_buf Pointer to buffer that is able to contain at least + * MAX_NS_DEPTH items. Can be NULL. + * @param type Type of ID requested. + * @return Number of items stored in id_list. 0 indicates error. + */ +static size_t +get_id_list(int proc_pid, int *id_buf, enum pid_type type) +{ + const char *ns_str = id_strs[type].str; + size_t ns_str_size = id_strs[type].size; + + size_t n = 0; + + char status_path[PATH_MAX + 1]; + xsprintf(status_path, "/proc/%s/status", pid_to_str(proc_pid)); + FILE *f = fopen_stream(status_path, "r"); + if (!f) + return 0; + + char *line = NULL; + size_t linesize = 0; + char *p = NULL; + + while (getline(&line, &linesize, f) > 0) { + if (strncmp(line, ns_str, ns_str_size) == 0) { + p = line + ns_str_size; + break; + } + } + + while (p) { + errno = 0; + long id = strtol(p, NULL, 10); + + if (id < 0 || id > INT_MAX || errno) { + perror_func_msg("converting pid (%ld) to int", id); + break; + } + + if (id_buf) + id_buf[n] = (int) id; + + n++; + strsep(&p, "\t"); + } + + free(line); + fclose(f); + + return n; +} + +/** + * Returns whether the /proc filesystem's PID namespace is the same as strace's. + */ +static bool +is_proc_ours(void) +{ + static int cached_val = -1; + + if (cached_val < 0) + cached_val = get_id_list(0, NULL, PT_TID) <= 1; + + return cached_val; +} + +/** + * Returns the PID namespace of the tracee + */ +static unsigned int +get_ns(struct tcb *tcp) +{ + if (!tcp->pid_ns) { + int proc_pid = 0; + translate_pid(NULL, tcp->pid, PT_TID, &proc_pid); + + if (proc_pid) + get_ns_hierarchy(proc_pid, &tcp->pid_ns, 1); + } + + return tcp->pid_ns; +} + +/** + * Returns the PID namespace of strace + */ +static unsigned int +get_our_ns(void) +{ + static unsigned int our_ns = 0; + static bool our_ns_initialised = false; + + if (!our_ns_initialised) { + get_ns_hierarchy(0, &our_ns, 1); + our_ns_initialised = true; + } + + return our_ns; +} + +/** + * Returns the cached proc_data struct associated with proc_pid. + * If none found, allocates a new proc_data. + */ +static struct proc_data * +get_or_create_proc_data(int proc_pid) +{ + struct proc_data *pd = (struct proc_data *) (uintptr_t) + trie_get(proc_data_cache, proc_pid); + + if (!pd) { + pd = calloc(1, sizeof(*pd)); + if (!pd) + return NULL; + + pd->proc_pid = proc_pid; + trie_set(proc_data_cache, proc_pid, (uint64_t) (uintptr_t) pd); + } + + return pd; +} + +/** + * Updates the proc_data from /proc + * If the process does not exists, returns false, and frees the proc_data + */ +static bool +update_proc_data(struct proc_data *pd, enum pid_type type) +{ + pd->ns_count = get_ns_hierarchy(pd->proc_pid, + pd->ns_hierarchy, MAX_NS_DEPTH); + if (!pd->ns_count) + goto fail; + + pd->id_count[type] = get_id_list(pd->proc_pid, + pd->id_hierarchy[type], type); + if (!pd->id_count[type]) + goto fail; + + return true; + +fail: + trie_set(proc_data_cache, pd->proc_pid, (uint64_t) (uintptr_t) NULL); + free(pd); + return false; +} + +/** + * Paramters for id translation + */ +struct translate_id_params { + /* The result (output) */ + int result_id; + /* The proc data of the process (output) */ + struct proc_data *pd; + + /* The namespace to be translated from */ + unsigned int from_ns; + /* The id to be translated */ + int from_id; + /* The type of the id */ + enum pid_type type; +}; + +/** + * Translates an id to our namespace, given the proc_pid of the process, + * by reading files in /proc. + * + * @param tip The parameters + * @param proc_pid The proc pid of the process. + * If 0, use the cached values in tip->pd. + */ +static void +translate_id_proc_pid(struct translate_id_params *tip, int proc_pid) +{ + struct proc_data *pd = proc_pid ? + get_or_create_proc_data(proc_pid) : + tip->pd; + + tip->result_id = 0; + tip->pd = NULL; + + if (!pd) + return; + + if (proc_pid && !update_proc_data(pd, tip->type)) + return; + + if (!pd->ns_count || pd->id_count[tip->type] < pd->ns_count) + return; + + int *id_hierarchy = pd->id_hierarchy[tip->type]; + int id_count = pd->id_count[tip->type]; + + for (int i = 0; i < pd->ns_count; i++) { + unsigned int ns = pd->ns_hierarchy[i]; + int ns_id = id_hierarchy[id_count - i - 1]; + int our_id = id_hierarchy[id_count - pd->ns_count]; + + if (ns != tip->from_ns) + continue; + + if (ns_id != tip->from_id) + return; + + tip->result_id = our_id; + tip->pd = pd; + return; + } +} + +/** + * Translates an id to our namespace by reading all proc entries in a directory. + * The directory is either /proc or /proc//task. + * + * + * @param tip The parameters + * @param path The path of the directory to be read. + * @param read_task_dir Whether recurse to "task" subdirectory. + */ +static void +translate_id_dir(struct translate_id_params *tip, const char *path, + bool read_task_dir) +{ + DIR *dir = opendir(path); + if (!dir) { + debug_func_perror_msg("opening dir: %s", path); + return; + } + + while (!tip->result_id) { + errno = 0; + struct_dirent *entry = read_dir(dir); + if (!entry) { + if (errno) + perror_func_msg("readdir"); + + break; + } + + if (entry->d_type != DT_DIR) + continue; + + errno = 0; + long proc_pid = strtol(entry->d_name, NULL, 10); + if (proc_pid < 1 || proc_pid > INT_MAX || errno) + continue; + + if (read_task_dir) { + char task_dir_path[PATH_MAX + 1]; + xsprintf(task_dir_path, "/proc/%ld/task", proc_pid); + translate_id_dir(tip, task_dir_path, false); + } + + if (tip->result_id) + break; + + translate_id_proc_pid(tip, proc_pid); + } + + closedir(dir); +} + +/** + * Iterator function of the proc_data_cache for id translation. + * If the cache contains the id we are looking for, reads the corresponding + * directory in /proc, and if cache is valid, saves the result. + */ +static void +proc_data_cache_iterator_fn(void* fn_data, uint64_t key, uint64_t val) +{ + struct translate_id_params *tip = (struct translate_id_params *)fn_data; + struct proc_data *pd = (struct proc_data *) (uintptr_t) val; + + if (!pd) + return; + + /* Result already found in an earlier iteration */ + if (tip->result_id) + return; + + /* Translate from cache */ + tip->pd = pd; + translate_id_proc_pid(tip, 0); + if (!tip->result_id) + return; + + /* Now translate from actual data in /proc, to check cache validity */ + translate_id_proc_pid(tip, pd->proc_pid); +} + +int +translate_pid(struct tcb *tcp, int from_id, enum pid_type type, + int *proc_pid_ptr) +{ + if (from_id <= 0 || type < 0 || type >= PT_COUNT) + return 0; + + /* If translation is trivial */ + if ((!tcp || get_ns(tcp) == get_our_ns()) && + (!proc_pid_ptr || is_proc_ours())) { + if (proc_pid_ptr) + *proc_pid_ptr = from_id; + + return from_id; + } + + struct translate_id_params tip = { + .result_id = 0, + .pd = NULL, + .from_ns = tcp ? get_ns(tcp) : get_our_ns(), + .from_id = from_id, + .type = type, + }; + + if (!tip.from_ns) + return 0; + + if (ns_get_parent_enotty) + return 0; + + /* Look for a cached proc_pid for this (from_ns, from_id) pair */ + int cached_proc_pid = get_cached_proc_pid(tip.from_ns, tip.from_id, + tip.type); + if (cached_proc_pid) { + translate_id_proc_pid(&tip, cached_proc_pid); + if (tip.result_id) + goto exit; + } + + /* Iterate through the cache, find potential proc_data */ + trie_iterate_keys(proc_data_cache, 0, pid_max - 1, + proc_data_cache_iterator_fn, &tip); + /* (proc_data_cache_iterator_fn takes care about updating proc_data) */ + if (tip.result_id) + goto exit; + + /* No cache helped, read all entries in /proc */ + translate_id_dir(&tip, "/proc", true); + +exit: + if (tip.pd) { + if (tip.pd->proc_pid) + put_proc_pid(tip.from_ns, tip.from_id, tip.type, + tip.pd->proc_pid); + + if (proc_pid_ptr) + *proc_pid_ptr = tip.pd->proc_pid; + } + + return tip.result_id; +} + +int +get_proc_pid(struct tcb *tcp) +{ + int proc_pid = 0; + translate_pid(NULL, tcp->pid, PT_TID, &proc_pid); + return proc_pid; +} + +static void +printpid_translation(struct tcb *tcp, int pid, enum pid_type type) +{ + if (!pidns_translation) + return; + + int strace_pid = translate_pid(tcp, pid, type, NULL); + if (strace_pid && strace_pid != pid) + tprintf_comment("%d in strace's PID NS", strace_pid); +} + +void +printpid(struct tcb *tcp, int pid, enum pid_type type) +{ + tprintf("%d", pid); + printpid_translation(tcp, pid, type); +} + +void +printpid_tgid_pgid(struct tcb *tcp, int pid) +{ + tprintf("%d", pid); + if (pid > 0) + printpid_translation(tcp, pid, PT_TGID); + else if (pid < -1) + printpid_translation(tcp, -pid, PT_PGID); +} diff --git a/prctl.c b/prctl.c index 814abc2a..b904fa34 100644 --- a/prctl.c +++ b/prctl.c @@ -3,7 +3,7 @@ * Copyright (c) 1996-2000 Wichert Akkerman * Copyright (c) 2005-2007 Roland McGrath * Copyright (c) 2008-2015 Dmitry V. Levin - * Copyright (c) 2014-2019 The strace developers. + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -104,6 +104,7 @@ SYS_FUNC(prctl) case PR_GET_SECCOMP: case PR_GET_TIMERSLACK: case PR_GET_TIMING: + case PR_GET_TAGGED_ADDR_CTRL: return RVAL_DECODED; case PR_GET_CHILD_SUBREAPER: @@ -241,6 +242,7 @@ SYS_FUNC(prctl) case PR_SET_FPEXC: case PR_SET_KEEPCAPS: case PR_SET_TIMING: + case PR_SET_TAGGED_ADDR_CTRL: tprintf(", %" PRI_klu, arg2); return RVAL_DECODED; @@ -367,6 +369,7 @@ SYS_FUNC(prctl) case PR_SET_NO_NEW_PRIVS: case PR_SET_THP_DISABLE: + case PR_SET_IO_FLUSHER: tprintf(", %" PRI_klu, arg2); print_prctl_args(tcp, 2); return RVAL_DECODED; @@ -409,6 +412,7 @@ SYS_FUNC(prctl) case PR_GET_THP_DISABLE: case PR_MPX_DISABLE_MANAGEMENT: case PR_MPX_ENABLE_MANAGEMENT: + case PR_GET_IO_FLUSHER: default: print_prctl_args(tcp, 1); return RVAL_DECODED; @@ -433,8 +437,11 @@ SYS_FUNC(arch_prctl) if (entering(tcp)) tprints(", "); else - printnum_ptr(tcp, addr); + printnum_kptr(tcp, addr); return 0; + + case ARCH_GET_CPUID: /* has no arguments */ + return RVAL_DECODED; } tprintf(", %#" PRI_klx, addr); diff --git a/print_fields.h b/print_fields.h index 63968af3..33d4a458 100644 --- a/print_fields.h +++ b/print_fields.h @@ -1,6 +1,6 @@ /* * Copyright (c) 2016-2017 Dmitry V. Levin - * Copyright (c) 2017-2019 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -9,6 +9,8 @@ #ifndef STRACE_PRINT_FIELDS_H # define STRACE_PRINT_FIELDS_H +# include "static_assert.h" + /* * The printf-like function to use in header files * shared between strace and its tests. @@ -50,10 +52,28 @@ (int) sizeof((where_).field_) * 2, \ zero_extend_signed_to_ull((where_).field_)) +# define PRINT_FIELD_UINT_ARRAY(prefix_, where_, field_, fmt_) \ + do { \ + STRACE_PRINTF("%s%s=", (prefix_), #field_); \ + for (size_t i_ = 0; i_ < ARRAY_SIZE((where_).field_); ++i_) \ + STRACE_PRINTF("%s" fmt_, (i_ ? ", " : "["), \ + zero_extend_signed_to_ull((where_).field_[i_]));\ + STRACE_PRINTF("]"); \ + } while (0) + +# define PRINT_FIELD_U_ARRAY(prefix_, where_, field_) \ + PRINT_FIELD_UINT_ARRAY((prefix_), (where_), field_, "%llu") + +# define PRINT_FIELD_X_ARRAY(prefix_, where_, field_) \ + PRINT_FIELD_UINT_ARRAY((prefix_), (where_), field_, "%#llx") + + # define PRINT_FIELD_COOKIE(prefix_, where_, field_) \ - STRACE_PRINTF("%s%s=[%llu, %llu]", (prefix_), #field_, \ - zero_extend_signed_to_ull((where_).field_[0]), \ - zero_extend_signed_to_ull((where_).field_[1])) + do { \ + static_assert(ARRAY_SIZE((where_).field_) == 2, \ + "unexpected array size"); \ + PRINT_FIELD_U_ARRAY((prefix_), (where_), field_); \ + } while (0) # define PRINT_FIELD_FLAGS(prefix_, where_, field_, xlat_, dflt_) \ do { \ @@ -79,21 +99,18 @@ (xlat_), NULL); \ } while (0) -# define PRINT_FIELD_XVAL_SORTED_SIZED(prefix_, where_, field_, xlat_, \ - xlat_size_, dflt_) \ +# define PRINT_FIELD_ERR_D(prefix_, where_, field_) \ do { \ STRACE_PRINTF("%s%s=", (prefix_), #field_); \ - printxval_searchn((xlat_), (xlat_size_), \ - zero_extend_signed_to_ull((where_).field_), \ - (dflt_)); \ + print_err(sign_extend_unsigned_to_ll((where_).field_), \ + true); \ } while (0) -# define PRINT_FIELD_XVAL_INDEX(prefix_, where_, field_, xlat_, dflt_) \ +# define PRINT_FIELD_ERR_U(prefix_, where_, field_) \ do { \ STRACE_PRINTF("%s%s=", (prefix_), #field_); \ - printxval_index((xlat_), \ - zero_extend_signed_to_ull((where_).field_), \ - (dflt_)); \ + print_err(zero_extend_signed_to_ull((where_).field_), \ + false); \ } while (0) /* @@ -149,6 +166,13 @@ (size_)); \ } while (0) +# define PRINT_FIELD_ARRAY(prefix_, where_, field_, tcp_, print_func_) \ + do { \ + STRACE_PRINTF("%s%s=", (prefix_), #field_); \ + print_local_array((tcp_), (where_).field_, \ + (print_func_)); \ + } while (0) + # define PRINT_FIELD_HEX_ARRAY(prefix_, where_, field_) \ do { \ STRACE_PRINTF("%s%s=", (prefix_), #field_); \ @@ -207,10 +231,10 @@ print_ifindex((where_).field_); \ } while (0) -# define PRINT_FIELD_SOCKADDR(prefix_, where_, field_) \ +# define PRINT_FIELD_SOCKADDR(prefix_, where_, field_, tcp_) \ do { \ STRACE_PRINTF("%s%s=", (prefix_), #field_); \ - print_sockaddr(&(where_).field_, \ + print_sockaddr(tcp_, &(where_).field_, \ sizeof((where_).field_)); \ } while (0) @@ -220,6 +244,13 @@ print_dev_t((where_).field_); \ } while (0) +# define PRINT_FIELD_NUMERIC_UMODE_T(prefix_, where_, field_) \ + do { \ + STRACE_PRINTF("%s%s=", (prefix_), #field_); \ + print_numeric_ll_umode_t( \ + zero_extend_signed_to_ull((where_).field_)); \ + } while (0) + # define PRINT_FIELD_PTR(prefix_, where_, field_) \ do { \ STRACE_PRINTF("%s%s=", (prefix_), #field_); \ @@ -232,6 +263,30 @@ printfd((tcp_), (where_).field_); \ } while (0) +# define PRINT_FIELD_TID(prefix_, where_, field_, tcp_) \ + do { \ + STRACE_PRINTF("%s%s=", (prefix_), #field_); \ + printpid((tcp_), (where_).field_, PT_TID); \ + } while (0) + +# define PRINT_FIELD_TGID(prefix_, where_, field_, tcp_) \ + do { \ + STRACE_PRINTF("%s%s=", (prefix_), #field_); \ + printpid((tcp_), (where_).field_, PT_TGID); \ + } while (0) + +# define PRINT_FIELD_PGID(prefix_, where_, field_, tcp_) \ + do { \ + STRACE_PRINTF("%s%s=", (prefix_), #field_); \ + printpid((tcp_), (where_).field_, PT_PGID); \ + } while (0) + +# define PRINT_FIELD_SID(prefix_, where_, field_, tcp_) \ + do { \ + STRACE_PRINTF("%s%s=", (prefix_), #field_); \ + printpid((tcp_), (where_).field_, PT_SID); \ + } while (0) + # define PRINT_FIELD_STRN(prefix_, where_, field_, len_, tcp_) \ do { \ STRACE_PRINTF("%s%s=", (prefix_), #field_); \ @@ -264,4 +319,28 @@ (size_)); \ } while (0) +# define PRINT_FIELD_HWADDR_SZ(prefix_, where_, field_, size_, hwtype_) \ + do { \ + static_assert(sizeof(((where_).field_)[0]) == 1, \ + "hwaddress is not a byte array"); \ + STRACE_PRINTF("%s%s=", (prefix_), #field_); \ + print_hwaddr("", (const uint8_t *) ((where_).field_), \ + (size_), (hwtype_)); \ + } while (0) + +# define PRINT_FIELD_LEN(prefix_, where_, field_, \ + len_, print_func_, ...) \ + do { \ + unsigned int start = offsetof(typeof(where_), field_); \ + unsigned int end = start + sizeof(where_.field_); \ + if (len_ >= end) { \ + print_func_(prefix_, where_, field_, \ + ##__VA_ARGS__); \ + } else if (len_ > start) { \ + tprintf("%s%s=", prefix_, #field_); \ + print_quoted_string((void *)&where_.field_, \ + len_ - start, QUOTE_FORCE_HEX); \ + } \ + } while (0) + #endif /* !STRACE_PRINT_FIELDS_H */ diff --git a/print_group_req.c b/print_group_req.c index f0ce58b9..7ea62e5d 100644 --- a/print_group_req.c +++ b/print_group_req.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -30,7 +30,7 @@ MPERS_PRINTER_DECL(void, print_group_req, struct tcb *const tcp, printaddr(addr); } else if (!umove_or_printaddr(tcp, addr, &greq)) { PRINT_FIELD_IFINDEX("{", greq, gr_interface); - PRINT_FIELD_SOCKADDR(", ", greq, gr_group); + PRINT_FIELD_SOCKADDR(", ", greq, gr_group, tcp); tprints("}"); } } diff --git a/print_mac.c b/print_mac.c index 8753954e..c5d5f5c4 100644 --- a/print_mac.c +++ b/print_mac.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2019 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -10,9 +10,85 @@ #include "error_prints.h" #include "xstring.h" -#ifndef MAX_ADDR_LEN -# define MAX_ADDR_LEN 32 -#endif +#define XLAT_MACROS_ONLY +# include "xlat/arp_hardware_types.h" +#undef XLAT_MACROS_ONLY + +DIAG_PUSH_IGNORE_OVERRIDE_INIT + +static uint8_t hwaddr_sizes[] = { + [0 ... ARPHRD_VSOCKMON] = 255, + + [ARPHRD_NETROM] = 7 /* AX25_ADDR_LEN */, + [ARPHRD_ETHER] = 6 /* ETH_ALEN */, + /* ARPHRD_EETHER - no actual devices in Linux */ + [ARPHRD_AX25] = 7 /* AX25_ADDR_LEN */, + /* ARPHRD_PRONET - no actual devices in Linux */ + /* ARPHRD_CHAOS - no actual devices in Linux */ + [ARPHRD_IEEE802] = 6 /* FC_ALEN */, + [ARPHRD_ARCNET] = 1 /* ARCNET_ALEN */, + /* ARPHRD_APPLETLK - no actual devices in Linux */ + [ARPHRD_DLCI] = sizeof(short), + /* ARPHRD_ATM - no explicit setting */ + /* ARPHRD_METRICOM - no actual devices in Linux */ + [ARPHRD_IEEE1394] = 16 /* FWNET_ALEN */, + [ARPHRD_EUI64] = 8 /* EUI64_ADDR_LEN */, + [ARPHRD_INFINIBAND] = 20 /* INFINIBAND_ALEN */, + [ARPHRD_SLIP] = 0, + /* ARPHRD_CSLIP - no actual devices in Linux */ + /* ARPHRD_SLIP6 - no actual devices in Linux */ + /* ARPHRD_CSLIP6 - no actual devices in Linux */ + /* ARPHRD_RSRVD - no actual devices in Linux */ + /* ARPHRD_ADAPT - no actual devices in Linux */ + [ARPHRD_ROSE] = 5 /* ROSE_ADDR_LEN */, + [ARPHRD_X25] = 0, + /* ARPHRD_HWX25 - no actual devices in Linux */ + [ARPHRD_CAN] = 0, + [ARPHRD_PPP] = 0, + /* ARPHRD_CISCO - no actual devices in Linux */ + /* ARPHRD_LAPB - no actual devices in Linux */ + /* ARPHRD_DDCMP - no actual devices in Linux */ + [ARPHRD_RAWHDLC] = 0, + [ARPHRD_RAWIP] = 0, + [ARPHRD_TUNNEL] = 4 /* IPIP */, + [ARPHRD_TUNNEL6] = 16 /* sizeof(struct in6_addr) */, + /* ARPHRD_FRAD - no actual devices in Linux */ + /* ARPHRD_SKIP - no actual devices in Linux */ + [ARPHRD_LOOPBACK] = 6 /* ETH_ALEN */, + [ARPHRD_LOCALTLK] = 1 /* LTALK_ALEN */, + [ARPHRD_FDDI] = 6 /* FDDI_K_ALEN */, + /* ARPHRD_BIF - no actual devices in Linux */ + [ARPHRD_SIT] = 4, + [ARPHRD_IPDDP] = 0, + [ARPHRD_IPGRE] = 4, + [ARPHRD_PIMREG] = 0, + [ARPHRD_HIPPI] = 6 /* HIPPI_ALEN */, + /* ARPHRD_ASH - no actual devices in Linux */ + /* ARPHRD_ECONET - no actual devices in Linux */ + [ARPHRD_IRDA] = 4 /* LAP_ALEN */, + /* ARPHRD_FCPP - no actual devices in Linux */ + /* ARPHRD_FCAL - no actual devices in Linux */ + /* ARPHRD_FCPL - no actual devices in Linux */ + /* ARPHRD_FCFABRIC - no actual devices in Linux */ + /* ARPHRD_IEEE802_TR - no actual devices in Linux */ + [ARPHRD_IEEE80211] = 6 /* ETH_ALEN */, + [ARPHRD_IEEE80211_PRISM] = 6 /* ETH_ALEN */, + [ARPHRD_IEEE80211_RADIOTAP] = 6 /* ETH_ALEN */, + [ARPHRD_IEEE802154] + = 8 /* IEEE802154_EXTENDED_ADDR_LEN */, + [ARPHRD_IEEE802154_MONITOR] + = 8 /* IEEE802154_EXTENDED_ADDR_LEN */, + [ARPHRD_PHONET] = 1, + [ARPHRD_PHONET_PIPE] = 1, + [ARPHRD_CAIF] = 0, + [ARPHRD_IP6GRE] = 16 /* sizeof(struct in6_addr) */, + [ARPHRD_NETLINK] = 0, + [ARPHRD_6LOWPAN] = 8 /* EUI64_ADDR_LEN */ + /* ^ or ETH_ALEN, depending on lltype */, + [ARPHRD_VSOCKMON] = 0, +}; + +DIAG_POP_IGNORE_OVERRIDE_INIT const char * sprint_mac_addr(const uint8_t addr[], size_t size) @@ -38,11 +114,39 @@ void print_mac_addr(const char *prefix, const uint8_t addr[], size_t size) { tprints(prefix); - if (xlat_verbose(xlat_verbosity) != XLAT_STYLE_ABBREV) + if (xlat_verbose(xlat_verbosity) != XLAT_STYLE_ABBREV + || size > MAX_ADDR_LEN) print_quoted_string((const char *) addr, size, QUOTE_FORCE_HEX); - if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW) + if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW + || size > MAX_ADDR_LEN) return; (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE ? tprints_comment : tprints)(sprint_mac_addr(addr, size)); } + +const char * +sprint_hwaddr(const uint8_t hwaddr[], size_t size, uint32_t devtype) +{ + uint8_t sz = (devtype < ARRAY_SIZE(hwaddr_sizes)) + ? hwaddr_sizes[devtype] : 255; + + return sprint_mac_addr(hwaddr, MIN(size, sz)); +} + +void +print_hwaddr(const char *prefix, const uint8_t addr[], size_t size, + uint32_t devtype) +{ + tprints(prefix); + if (xlat_verbose(xlat_verbosity) != XLAT_STYLE_ABBREV + || size > MAX_ADDR_LEN) + print_quoted_string((const char *) addr, size, + QUOTE_FORCE_HEX); + if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW + || size > MAX_ADDR_LEN) + return; + (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE + ? tprints_comment : tprints)(sprint_hwaddr(addr, size, + devtype)); +} diff --git a/print_msgbuf.c b/print_msgbuf.c index e61eef92..a25498ff 100644 --- a/print_msgbuf.c +++ b/print_msgbuf.c @@ -5,15 +5,16 @@ * Copyright (c) 1996-1999 Wichert Akkerman * Copyright (c) 2003-2006 Roland McGrath * Copyright (c) 2006-2015 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ #include "defs.h" +#include "ipc_defs.h" -#include +#include MSG_H_PROVIDER #include DEF_MPERS_TYPE(msgbuf_t) typedef struct msgbuf msgbuf_t; diff --git a/print_statfs.c b/print_statfs.c index b4e8f1e0..80ecf2f4 100644 --- a/print_statfs.c +++ b/print_statfs.c @@ -14,7 +14,7 @@ static void print_statfs_type(const char *const prefix, const unsigned long long magic) { tprints(prefix); - printxval_search(fsmagic, magic, NULL); + printxval(fsmagic, magic, NULL); } #if defined HAVE_STRUCT_STATFS_F_FLAGS || defined HAVE_STRUCT_STATFS64_F_FLAGS diff --git a/print_syscall_number.c b/print_syscall_number.c new file mode 100644 index 00000000..5427afb2 --- /dev/null +++ b/print_syscall_number.c @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#include "defs.h" + +void +print_syscall_number(struct tcb *tcp) +{ + if (tcp->true_scno != (kernel_ulong_t) -1) { + tprintf("[%4" PRI_klu "] ", tcp->true_scno); + } else { + tprintf("[????] "); + } +} diff --git a/print_timespec.c b/print_timespec.c deleted file mode 100644 index 5b353cea..00000000 --- a/print_timespec.c +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. - * All rights reserved. - * - * SPDX-License-Identifier: LGPL-2.1-or-later - */ - -#include "defs.h" - -#include DEF_MPERS_TYPE(timespec_t) - -#include "kernel_timespec.h" - -#if defined MPERS_IS_mx32 -# define TIMESPEC_IS_32BIT 0 -#elif defined MPERS_IS_m32 -# define TIMESPEC_IS_32BIT 1 -#elif ARCH_TIMESIZE == 4 -# define TIMESPEC_IS_32BIT 1 -#else -# define TIMESPEC_IS_32BIT 0 -#endif - -#if TIMESPEC_IS_32BIT -typedef kernel_timespec32_t timespec_t; -# define PRINT_TIMESPEC_DATA_SIZE print_timespec32_data_size -# define PRINT_TIMESPEC_ARRAY_DATA_SIZE print_timespec32_array_data_size -#else -typedef kernel_timespec64_t timespec_t; -# define PRINT_TIMESPEC_DATA_SIZE print_timespec64_data_size -# define PRINT_TIMESPEC_ARRAY_DATA_SIZE print_timespec64_array_data_size -#endif - -#include MPERS_DEFS - -MPERS_PRINTER_DECL(bool, print_struct_timespec_data_size, - const void *arg, const size_t size) -{ - return PRINT_TIMESPEC_DATA_SIZE(arg, size); -} - -MPERS_PRINTER_DECL(bool, print_struct_timespec_array_data_size, - const void *arg, const unsigned int nmemb, - const size_t size) -{ - return PRINT_TIMESPEC_ARRAY_DATA_SIZE(arg, nmemb, size); -} diff --git a/print_timespec.h b/print_timespec.h index 9199d530..0f0e296d 100644 --- a/print_timespec.h +++ b/print_timespec.h @@ -1,6 +1,6 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -38,6 +38,16 @@ print_timespec_t(const TIMESPEC_T *t) print_sec_nsec(TIMESPEC_TO_SEC_NSEC(t)); } +#if defined PRINT_TIMESPEC_DATA_SIZE || defined PRINT_TIMESPEC_ARRAY_DATA_SIZE +static void +print_unaligned_timespec_t(const void *arg) +{ + TIMESPEC_T t; + memcpy(&t, arg, sizeof(t)); + print_timespec_t(&t); +} +#endif /* PRINT_TIMESPEC_DATA_SIZE || PRINT_TIMESPEC_ARRAY_DATA_SIZE */ + #ifdef PRINT_TIMESPEC_DATA_SIZE bool PRINT_TIMESPEC_DATA_SIZE(const void *arg, const size_t size) @@ -47,7 +57,7 @@ PRINT_TIMESPEC_DATA_SIZE(const void *arg, const size_t size) return false; } - print_timespec_t(arg); + print_unaligned_timespec_t(arg); return true; } #endif /* PRINT_TIMESPEC_DATA_SIZE */ @@ -57,9 +67,6 @@ bool PRINT_TIMESPEC_ARRAY_DATA_SIZE(const void *arg, const unsigned int nmemb, const size_t size) { - const TIMESPEC_T *ts = arg; - unsigned int i; - if (nmemb > size / sizeof(TIMESPEC_T)) { tprints("?"); return false; @@ -67,10 +74,10 @@ PRINT_TIMESPEC_ARRAY_DATA_SIZE(const void *arg, const unsigned int nmemb, tprints("["); - for (i = 0; i < nmemb; i++) { + for (unsigned int i = 0; i < nmemb; i++, arg += sizeof(TIMESPEC_T)) { if (i) tprints(", "); - print_timespec_t(&ts[i]); + print_unaligned_timespec_t(arg); } tprints("]"); diff --git a/print_timespec32.c b/print_timespec32.c index f6a16bc9..8e69e2a2 100644 --- a/print_timespec32.c +++ b/print_timespec32.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019 Dmitry V. Levin + * Copyright (c) 2019-2020 Dmitry V. Levin * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -7,17 +7,19 @@ #include "defs.h" -#if HAVE_ARCH_TIME32_SYSCALLS +#if HAVE_ARCH_TIME32_SYSCALLS || HAVE_ARCH_TIMESPEC32 # define TIMESPEC_T kernel_timespec32_t # define PRINT_TIMESPEC_DATA_SIZE print_timespec32_data_size # define PRINT_TIMESPEC_ARRAY_DATA_SIZE print_timespec32_array_data_size -# define PRINT_TIMESPEC print_timespec32 -# define SPRINT_TIMESPEC sprint_timespec32 -# define PRINT_TIMESPEC_UTIME_PAIR print_timespec32_utime_pair -# define PRINT_ITIMERSPEC print_itimerspec32 +# if HAVE_ARCH_TIME32_SYSCALLS +# define PRINT_TIMESPEC print_timespec32 +# define SPRINT_TIMESPEC sprint_timespec32 +# define PRINT_TIMESPEC_UTIME_PAIR print_timespec32_utime_pair +# define PRINT_ITIMERSPEC print_itimerspec32 +# endif /* HAVE_ARCH_TIME32_SYSCALLS */ # include "kernel_timespec.h" # include "print_timespec.h" -#endif /* HAVE_ARCH_TIME32_SYSCALLS */ +#endif /* HAVE_ARCH_TIME32_SYSCALLS || HAVE_ARCH_TIMESPEC32 */ diff --git a/print_timeval.c b/print_timeval.c index ff87b27b..ab60976e 100644 --- a/print_timeval.c +++ b/print_timeval.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2015-2017 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -10,7 +10,9 @@ #include DEF_MPERS_TYPE(timeval_t) -typedef struct timeval timeval_t; +#include "kernel_timeval.h" + +typedef kernel_old_timeval_t timeval_t; #include MPERS_DEFS diff --git a/printmode.c b/printmode.c index 30468fbf..a53a6ce4 100644 --- a/printmode.c +++ b/printmode.c @@ -4,7 +4,7 @@ * Copyright (c) 1993-1996 Rick Sladkey * Copyright (c) 1996-1999 Wichert Akkerman * Copyright (c) 2012 Denys Vlasenko - * Copyright (c) 2012-2018 The strace developers. + * Copyright (c) 2012-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -47,7 +47,7 @@ print_numeric_umode_t(const unsigned short mode) } void -print_numeric_long_umask(const unsigned long mode) +print_numeric_ll_umode_t(const unsigned long long mode) { - tprintf("%#03lo", mode); + tprintf("%#03llo", mode); } diff --git a/printrusage.c b/printrusage.c index 27a9c36d..a78a87e8 100644 --- a/printrusage.c +++ b/printrusage.c @@ -3,25 +3,27 @@ * Copyright (c) 1993 Branko Lankester * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey * Copyright (c) 1996-1999 Wichert Akkerman - * Copyright (c) 1999-2018 The strace developers. + * Copyright (c) 1999-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later */ #include "defs.h" -#include -#include DEF_MPERS_TYPE(rusage_t) +#include DEF_MPERS_TYPE(kernel_rusage_t) -typedef struct rusage rusage_t; +#include "kernel_rusage.h" #include MPERS_DEFS +#include +#include "print_fields.h" + MPERS_PRINTER_DECL(void, printrusage, struct tcb *const tcp, const kernel_ulong_t addr) { - rusage_t ru; + kernel_rusage_t ru; if (umove_or_printaddr(tcp, addr, &ru)) return; @@ -30,26 +32,23 @@ MPERS_PRINTER_DECL(void, printrusage, MPERS_FUNC_NAME(print_struct_timeval)(&ru.ru_utime); tprints(", ru_stime="); MPERS_FUNC_NAME(print_struct_timeval)(&ru.ru_stime); - if (abbrev(tcp)) + if (abbrev(tcp)) { tprints(", ..."); - else { -#define PRINT_RUSAGE_MEMBER(member) \ - tprintf(", " #member "=%llu", zero_extend_signed_to_ull(ru.member)) - PRINT_RUSAGE_MEMBER(ru_maxrss); - PRINT_RUSAGE_MEMBER(ru_ixrss); - PRINT_RUSAGE_MEMBER(ru_idrss); - PRINT_RUSAGE_MEMBER(ru_isrss); - PRINT_RUSAGE_MEMBER(ru_minflt); - PRINT_RUSAGE_MEMBER(ru_majflt); - PRINT_RUSAGE_MEMBER(ru_nswap); - PRINT_RUSAGE_MEMBER(ru_inblock); - PRINT_RUSAGE_MEMBER(ru_oublock); - PRINT_RUSAGE_MEMBER(ru_msgsnd); - PRINT_RUSAGE_MEMBER(ru_msgrcv); - PRINT_RUSAGE_MEMBER(ru_nsignals); - PRINT_RUSAGE_MEMBER(ru_nvcsw); - PRINT_RUSAGE_MEMBER(ru_nivcsw); -#undef PRINT_RUSAGE_MEMBER + } else { + PRINT_FIELD_U(", ", ru, ru_maxrss); + PRINT_FIELD_U(", ", ru, ru_ixrss); + PRINT_FIELD_U(", ", ru, ru_idrss); + PRINT_FIELD_U(", ", ru, ru_isrss); + PRINT_FIELD_U(", ", ru, ru_minflt); + PRINT_FIELD_U(", ", ru, ru_majflt); + PRINT_FIELD_U(", ", ru, ru_nswap); + PRINT_FIELD_U(", ", ru, ru_inblock); + PRINT_FIELD_U(", ", ru, ru_oublock); + PRINT_FIELD_U(", ", ru, ru_msgsnd); + PRINT_FIELD_U(", ", ru, ru_msgrcv); + PRINT_FIELD_U(", ", ru, ru_nsignals); + PRINT_FIELD_U(", ", ru, ru_nvcsw); + PRINT_FIELD_U(", ", ru, ru_nivcsw); } tprints("}"); } @@ -84,26 +83,23 @@ printrusage32(struct tcb *const tcp, const kernel_ulong_t addr) print_timeval32_t(&ru.ru_utime); tprints(", ru_stime="); print_timeval32_t(&ru.ru_stime); - if (abbrev(tcp)) + if (abbrev(tcp)) { tprints(", ..."); - else { -# define PRINT_RUSAGE_MEMBER(member) \ - tprintf(", " #member "=%lu", ru.member) - PRINT_RUSAGE_MEMBER(ru_maxrss); - PRINT_RUSAGE_MEMBER(ru_ixrss); - PRINT_RUSAGE_MEMBER(ru_idrss); - PRINT_RUSAGE_MEMBER(ru_isrss); - PRINT_RUSAGE_MEMBER(ru_minflt); - PRINT_RUSAGE_MEMBER(ru_majflt); - PRINT_RUSAGE_MEMBER(ru_nswap); - PRINT_RUSAGE_MEMBER(ru_inblock); - PRINT_RUSAGE_MEMBER(ru_oublock); - PRINT_RUSAGE_MEMBER(ru_msgsnd); - PRINT_RUSAGE_MEMBER(ru_msgrcv); - PRINT_RUSAGE_MEMBER(ru_nsignals); - PRINT_RUSAGE_MEMBER(ru_nvcsw); - PRINT_RUSAGE_MEMBER(ru_nivcsw); -# undef PRINT_RUSAGE_MEMBER + } else { + PRINT_FIELD_U(", ", ru, ru_maxrss); + PRINT_FIELD_U(", ", ru, ru_ixrss); + PRINT_FIELD_U(", ", ru, ru_idrss); + PRINT_FIELD_U(", ", ru, ru_isrss); + PRINT_FIELD_U(", ", ru, ru_minflt); + PRINT_FIELD_U(", ", ru, ru_majflt); + PRINT_FIELD_U(", ", ru, ru_nswap); + PRINT_FIELD_U(", ", ru, ru_inblock); + PRINT_FIELD_U(", ", ru, ru_oublock); + PRINT_FIELD_U(", ", ru, ru_msgsnd); + PRINT_FIELD_U(", ", ru, ru_msgrcv); + PRINT_FIELD_U(", ", ru, ru_nsignals); + PRINT_FIELD_U(", ", ru, ru_nvcsw); + PRINT_FIELD_U(", ", ru, ru_nivcsw); } tprints("}"); } diff --git a/printsiginfo.c b/printsiginfo.c index 9cfc4c63..cb4cde4a 100644 --- a/printsiginfo.c +++ b/printsiginfo.c @@ -7,7 +7,7 @@ * Copyright (c) 2013 Denys Vlasenko * Copyright (c) 2011-2015 Dmitry V. Levin * Copyright (c) 2015 Elvira Khabirova - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -24,10 +24,17 @@ #include "nr_prefix.c" +#include "print_fields.h" + #ifndef IN_MPERS # include "printsiginfo.h" #endif +#define XLAT_MACROS_ONLY +/* For xlat/audit_arch.h */ +# include "xlat/elf_em.h" +#undef XLAT_MACROS_ONLY + #include "xlat/audit_arch.h" #include "xlat/sigbus_codes.h" #include "xlat/sigchld_codes.h" @@ -49,11 +56,10 @@ #endif static void -printsigsource(const siginfo_t *sip) +printsigsource(struct tcb *tcp, const siginfo_t *sip) { - tprintf(", si_pid=%u, si_uid=%u", - (unsigned int) sip->si_pid, - (unsigned int) sip->si_uid); + PRINT_FIELD_TGID(", ", *sip, si_pid, tcp); + PRINT_FIELD_UID(", ", *sip, si_uid); } static void @@ -110,24 +116,18 @@ print_si_code(int si_signo, unsigned int si_code) } static void -print_si_info(const siginfo_t *sip) +print_si_info(struct tcb *tcp, const siginfo_t *sip) { - if (sip->si_errno) { - tprints(", si_errno="); - if ((unsigned) sip->si_errno < nerrnos - && errnoent[sip->si_errno]) - tprints(errnoent[sip->si_errno]); - else - tprintf("%d", sip->si_errno); - } + if (sip->si_errno) + PRINT_FIELD_ERR_U(", ", *sip, si_errno); if (SI_FROMUSER(sip)) { switch (sip->si_code) { case SI_USER: - printsigsource(sip); + printsigsource(tcp, sip); break; case SI_TKILL: - printsigsource(sip); + printsigsource(tcp, sip); break; #if defined HAVE_SIGINFO_T_SI_TIMERID && defined HAVE_SIGINFO_T_SI_OVERRUN case SI_TIMER: @@ -137,7 +137,7 @@ print_si_info(const siginfo_t *sip) break; #endif default: - printsigsource(sip); + printsigsource(tcp, sip); if (sip->si_ptr) printsigval(sip); break; @@ -145,7 +145,7 @@ print_si_info(const siginfo_t *sip) } else { switch (sip->si_signo) { case SIGCHLD: - printsigsource(sip); + printsigsource(tcp, sip); tprints(", si_status="); if (sip->si_code == CLD_EXITED) tprintf("%d", sip->si_status); @@ -171,7 +171,7 @@ print_si_info(const siginfo_t *sip) #ifdef HAVE_SIGINFO_T_SI_SYSCALL case SIGSYS: { /* - * Note that we can safely use the personlity set in + * Note that we can safely use the personality set in * current_personality here (and don't have to guess it * based on X32_SYSCALL_BIT and si_arch, for example): * - The signal is delivered as a result of seccomp @@ -204,7 +204,7 @@ print_si_info(const siginfo_t *sip) #endif default: if (sip->si_pid || sip->si_uid) - printsigsource(sip); + printsigsource(tcp, sip); if (sip->si_ptr) printsigval(sip); } @@ -215,7 +215,7 @@ print_si_info(const siginfo_t *sip) static #endif void -printsiginfo(const siginfo_t *sip) +printsiginfo(struct tcb *tcp, const siginfo_t *sip) { if (sip->si_signo == 0) { tprints("{}"); @@ -230,7 +230,7 @@ printsiginfo(const siginfo_t *sip) #ifdef SI_NOINFO if (sip->si_code != SI_NOINFO) #endif - print_si_info(sip); + print_si_info(tcp, sip); tprints("}"); } @@ -241,13 +241,13 @@ MPERS_PRINTER_DECL(void, printsiginfo_at, siginfo_t si; if (!umove_or_printaddr(tcp, addr, &si)) - printsiginfo(&si); + printsiginfo(tcp, &si); } static bool print_siginfo_t(struct tcb *tcp, void *elem_buf, size_t elem_size, void *data) { - printsiginfo((const siginfo_t *) elem_buf); + printsiginfo(tcp, (const siginfo_t *) elem_buf); return true; } diff --git a/printsiginfo.h b/printsiginfo.h index 4088cb54..ee5ecc8e 100644 --- a/printsiginfo.h +++ b/printsiginfo.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -8,6 +8,6 @@ #ifndef STRACE_PRINTSIGINFO_H # define STRACE_PRINTSIGINFO_H -extern void printsiginfo(const siginfo_t *); +extern void printsiginfo(struct tcb *, const siginfo_t *); #endif /* !STRACE_PRINTSIGINFO_H */ diff --git a/process.c b/process.c index d224c396..72a74922 100644 --- a/process.c +++ b/process.c @@ -8,7 +8,7 @@ * * Copyright (c) 2000 PocketPenguins Inc. Linux for Hitachi SuperH * port by Greg Banks - * Copyright (c) 1999-2018 The strace developers. + * Copyright (c) 1999-2020 The strace developers. * * All rights reserved. * @@ -33,39 +33,43 @@ #define uoff(member) offsetof(struct user, member) #define XLAT_UOFF(member) { uoff(member), "offsetof(struct user, " #member ")" } -static const struct xlat struct_user_offsets[] = { +static const struct xlat_data struct_user_offsets_data[] = { #include "userent.h" - XLAT_END + { 0, 0 } +}; + +static const struct xlat struct_user_offsets = { + .type = XT_SORTED, + .size = ARRAY_SIZE(struct_user_offsets_data) - 1, + .data = struct_user_offsets_data, }; static void print_user_offset_addr(const kernel_ulong_t addr) { - bool no_str = false; - const struct xlat *x; + const uint64_t last_user_offset = struct_user_offsets.size ? + struct_user_offsets.data[struct_user_offsets.size - 1].val : 0; - for (x = struct_user_offsets; x->str; ++x) { - if (x->val >= addr) - break; - } + uint64_t base_addr = addr; + const char *str = xlookup_le(&struct_user_offsets, &base_addr); - if (!x->str || (x == struct_user_offsets && x->val > addr)) - no_str = true; - if (no_str || xlat_verbose(xlat_verbosity) != XLAT_STYLE_ABBREV) + /* We don't want to pretty print addresses beyond struct user */ + if (addr > base_addr && base_addr == last_user_offset) + str = NULL; + + if (!str || xlat_verbose(xlat_verbosity) != XLAT_STYLE_ABBREV) printaddr(addr); - if (no_str || xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW) + if (!str || xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW) return; if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE) tprints(" /* "); - if (x->val > addr) { - --x; + if (base_addr == addr) + tprints(str); + else tprintf("%s + %" PRI_klu, - x->str, addr - (kernel_ulong_t) x->val); - } else { - tprints(x->str); - } + str, addr - (kernel_ulong_t) base_addr); if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE) tprints(" */"); @@ -88,7 +92,8 @@ SYS_FUNC(ptrace) } /* pid */ - tprintf(", %d", pid); + tprints(", "); + printpid(tcp, pid, PT_TGID); /* addr */ switch (request) { diff --git a/process_vm.c b/process_vm.c index abee1e68..9a151c60 100644 --- a/process_vm.c +++ b/process_vm.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2012 Denys Vlasenko * Copyright (c) 2012-2015 Dmitry V. Levin - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -13,7 +13,8 @@ SYS_FUNC(process_vm_readv) { if (entering(tcp)) { /* arg 1: pid */ - tprintf("%d, ", (int) tcp->u_arg[0]); + printpid(tcp, tcp->u_arg[0], PT_TGID); + tprints(", "); } else { kernel_ulong_t local_iovcnt = tcp->u_arg[2]; kernel_ulong_t remote_iovcnt = tcp->u_arg[4]; @@ -42,7 +43,8 @@ SYS_FUNC(process_vm_writev) kernel_ulong_t flags = tcp->u_arg[5]; /* arg 1: pid */ - tprintf("%d, ", (int) tcp->u_arg[0]); + printpid(tcp, tcp->u_arg[0], PT_TGID); + tprints(", "); /* arg 2: local iov */ tprint_iov(tcp, local_iovcnt, tcp->u_arg[1], IOV_DECODE_STR); /* arg 3: local iovcnt */ diff --git a/ptp.c b/ptp.c index ffc16063..d925829d 100644 --- a/ptp.c +++ b/ptp.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2014 Stefan Sørensen * Copyright (c) 2014-2015 Dmitry V. Levin - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -11,11 +11,29 @@ #ifdef HAVE_STRUCT_PTP_SYS_OFFSET +# include "print_fields.h" + # include # include -# include "print_fields.h" -# include "xlat/ptp_flags_options.h" +# ifndef PTP_CLOCK_GETCAPS2 +# define PTP_CLOCK_GETCAPS2 _IOR(PTP_CLK_MAGIC, 10, struct ptp_clock_caps) +# endif +# ifndef PTP_EXTTS_REQUEST2 +# define PTP_EXTTS_REQUEST2 _IOW(PTP_CLK_MAGIC, 11, struct ptp_extts_request) +# endif +# ifndef PTP_PEROUT_REQUEST2 +# define PTP_PEROUT_REQUEST2 _IOW(PTP_CLK_MAGIC, 12, struct ptp_perout_request) +# endif +# ifndef PTP_ENABLE_PPS2 +# define PTP_ENABLE_PPS2 _IOW(PTP_CLK_MAGIC, 13, int) +# endif +# ifndef PTP_SYS_OFFSET2 +# define PTP_SYS_OFFSET2 _IOW(PTP_CLK_MAGIC, 14, struct ptp_sys_offset) +# endif + +# include "xlat/ptp_extts_flags.h" +# include "xlat/ptp_perout_flags.h" int ptp_ioctl(struct tcb *const tcp, const unsigned int code, @@ -25,7 +43,8 @@ ptp_ioctl(struct tcb *const tcp, const unsigned int code, return RVAL_DECODED; switch (code) { - case PTP_EXTTS_REQUEST: { + case PTP_EXTTS_REQUEST: + case PTP_EXTTS_REQUEST2: { struct ptp_extts_request extts; tprints(", "); @@ -33,12 +52,13 @@ ptp_ioctl(struct tcb *const tcp, const unsigned int code, break; PRINT_FIELD_D("{", extts, index); - PRINT_FIELD_FLAGS(", ", extts, flags, ptp_flags_options, "PTP_???"); + PRINT_FIELD_FLAGS(", ", extts, flags, ptp_extts_flags, "PTP_???"); tprints("}"); break; } - case PTP_PEROUT_REQUEST: { + case PTP_PEROUT_REQUEST: + case PTP_PEROUT_REQUEST2: { struct ptp_perout_request perout; tprints(", "); @@ -50,16 +70,18 @@ ptp_ioctl(struct tcb *const tcp, const unsigned int code, PRINT_FIELD_D("}, period={", perout.period, sec); PRINT_FIELD_U(", ", perout.period, nsec); PRINT_FIELD_D("}, ", perout, index); - PRINT_FIELD_FLAGS(", ", perout, flags, ptp_flags_options, "PTP_???"); + PRINT_FIELD_FLAGS(", ", perout, flags, ptp_perout_flags, "PTP_???"); tprints("}"); break; } case PTP_ENABLE_PPS: + case PTP_ENABLE_PPS2: tprintf(", %" PRI_kld, arg); break; - case PTP_SYS_OFFSET: { + case PTP_SYS_OFFSET: + case PTP_SYS_OFFSET2: { struct ptp_sys_offset sysoff; if (entering(tcp)) { @@ -99,7 +121,8 @@ ptp_ioctl(struct tcb *const tcp, const unsigned int code, break; } } - case PTP_CLOCK_GETCAPS: { + case PTP_CLOCK_GETCAPS: + case PTP_CLOCK_GETCAPS2: { struct ptp_clock_caps caps; if (entering(tcp)) diff --git a/ptrace.h b/ptrace.h index e4a5851d..197c4ce8 100644 --- a/ptrace.h +++ b/ptrace.h @@ -8,7 +8,7 @@ * Copyright (c) 2011-2016 Dmitry V. Levin * Copyright (c) 2013 Ali Polatel * Copyright (c) 2015 Mike Frysinger - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -162,6 +162,13 @@ # define PTRACE_SYSCALL_INFO_ENTRY 1 # define PTRACE_SYSCALL_INFO_EXIT 2 # define PTRACE_SYSCALL_INFO_SECCOMP 3 +# endif + +# if defined HAVE_STRUCT_PTRACE_SYSCALL_INFO +typedef struct ptrace_syscall_info struct_ptrace_syscall_info; +# elif defined HAVE_STRUCT___PTRACE_SYSCALL_INFO +typedef struct __ptrace_syscall_info struct_ptrace_syscall_info; +# else struct ptrace_syscall_info { uint8_t op; uint8_t pad[3]; @@ -184,6 +191,7 @@ struct ptrace_syscall_info { } seccomp; }; }; +typedef struct ptrace_syscall_info struct_ptrace_syscall_info; # endif # if !HAVE_DECL_PTRACE_PEEKUSER diff --git a/ptrace_syscall_info.c b/ptrace_syscall_info.c index 8ded55ad..2310c147 100644 --- a/ptrace_syscall_info.c +++ b/ptrace_syscall_info.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2018 Dmitry V. Levin - * Copyright (c) 2018-2019 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -20,22 +20,24 @@ bool ptrace_get_syscall_info_supported; +#define FAIL do { ptrace_stop = -1U; goto done; } while (0) + +#ifdef HAVE_FORK static int kill_tracee(pid_t pid) { return kill_save_errno(pid, SIGKILL); } -#define FAIL do { ptrace_stop = -1U; goto done; } while (0) - static const unsigned int expected_none_size = - offsetof(struct ptrace_syscall_info, entry); + offsetof(struct_ptrace_syscall_info, entry); static const unsigned int expected_entry_size = - offsetofend(struct ptrace_syscall_info, entry.args); + offsetofend(struct_ptrace_syscall_info, entry.args); +#endif /* HAVE_FORK */ static const unsigned int expected_exit_size = - offsetofend(struct ptrace_syscall_info, exit.is_error); + offsetofend(struct_ptrace_syscall_info, exit.is_error); static const unsigned int expected_seccomp_size = - offsetofend(struct ptrace_syscall_info, seccomp.ret_data); + offsetofend(struct_ptrace_syscall_info, seccomp.ret_data); /* * Test that PTRACE_GET_SYSCALL_INFO API is supported by the kernel, and @@ -81,6 +83,12 @@ test_ptrace_get_syscall_info(void) }; const unsigned long *exp_args; +# if SIZEOF_KERNEL_LONG_T > SIZEOF_LONG +# define CAST (unsigned long) +# else +# define CAST +# endif + int pid = fork(); if (pid < 0) perror_func_msg_and_die("fork"); @@ -113,7 +121,7 @@ test_ptrace_get_syscall_info(void) unsigned int ptrace_stop; for (ptrace_stop = 0; ; ++ptrace_stop) { - struct ptrace_syscall_info info = { + struct_ptrace_syscall_info info = { .op = 0xff /* invalid PTRACE_SYSCALL_INFO_* op */ }; const size_t size = sizeof(info); @@ -196,12 +204,12 @@ test_ptrace_get_syscall_info(void) || !info.instruction_pointer || !info.stack_pointer || (info.entry.nr != exp_args[0]) - || (info.entry.args[0] != exp_args[1]) - || (info.entry.args[1] != exp_args[2]) - || (info.entry.args[2] != exp_args[3]) - || (info.entry.args[3] != exp_args[4]) - || (info.entry.args[4] != exp_args[5]) - || (info.entry.args[5] != exp_args[6])) { + || (CAST info.entry.args[0] != exp_args[1]) + || (CAST info.entry.args[1] != exp_args[2]) + || (CAST info.entry.args[2] != exp_args[3]) + || (CAST info.entry.args[3] != exp_args[4]) + || (CAST info.entry.args[4] != exp_args[5]) + || (CAST info.entry.args[5] != exp_args[6])) { debug_func_msg("#%d: entry stop" " mismatch", ptrace_stop); @@ -267,7 +275,7 @@ void print_ptrace_syscall_info(struct tcb *tcp, kernel_ulong_t addr, kernel_ulong_t user_len) { - struct ptrace_syscall_info info; + struct_ptrace_syscall_info info; kernel_ulong_t kernel_len = tcp->u_rval; kernel_ulong_t ret_len = MIN(user_len, kernel_len); kernel_ulong_t fetch_size = MIN(ret_len, expected_seccomp_size); @@ -277,22 +285,22 @@ print_ptrace_syscall_info(struct tcb *tcp, kernel_ulong_t addr, return; } - PRINT_FIELD_XVAL_INDEX("{", info, op, ptrace_syscall_info_op, - "PTRACE_SYSCALL_INFO_???"); - if (fetch_size < offsetofend(struct ptrace_syscall_info, arch)) + PRINT_FIELD_XVAL("{", info, op, ptrace_syscall_info_op, + "PTRACE_SYSCALL_INFO_???"); + if (fetch_size < offsetofend(struct_ptrace_syscall_info, arch)) goto printed; PRINT_FIELD_XVAL(", ", info, arch, audit_arch, "AUDIT_ARCH_???"); - if (fetch_size < offsetofend(struct ptrace_syscall_info, + if (fetch_size < offsetofend(struct_ptrace_syscall_info, instruction_pointer)) goto printed; PRINT_FIELD_ADDR64(", ", info, instruction_pointer); - if (fetch_size < offsetofend(struct ptrace_syscall_info, stack_pointer)) + if (fetch_size < offsetofend(struct_ptrace_syscall_info, stack_pointer)) goto printed; PRINT_FIELD_ADDR64(", ", info, stack_pointer); - if (fetch_size < offsetofend(struct ptrace_syscall_info, entry.nr)) + if (fetch_size < offsetofend(struct_ptrace_syscall_info, entry.nr)) goto printed; switch(info.op) { @@ -304,7 +312,7 @@ print_ptrace_syscall_info(struct tcb *tcp, kernel_ulong_t addr, for (unsigned int i = 0; i < ARRAY_SIZE(info.entry.args); ++i) { const unsigned int i_size = - offsetofend(struct ptrace_syscall_info, + offsetofend(struct_ptrace_syscall_info, entry.args[i]); if (fetch_size < i_size) { if (i) @@ -326,11 +334,7 @@ entry_printed: tprints(", exit={"); if (fetch_size >= expected_exit_size && info.exit.is_error) { - uint64_t err = -info.exit.rval; - - tprints("rval=-"); - print_xlat_ex(err, err_name(err), - XLAT_STYLE_FMT_U); + PRINT_FIELD_ERR_D("", info.exit, rval); } else { PRINT_FIELD_D("", info.exit, rval); } diff --git a/readlink.c b/readlink.c index 6a4920e4..aa6279dc 100644 --- a/readlink.c +++ b/readlink.c @@ -6,7 +6,7 @@ * Copyright (c) 2006 Ulrich Drepper * Copyright (c) 2006 Bernhard Kaindl * Copyright (c) 2006-2015 Dmitry V. Levin - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -44,7 +44,9 @@ SYS_FUNC(readlink) SYS_FUNC(readlinkat) { - if (entering(tcp)) + if (entering(tcp)) { print_dirfd(tcp, tcp->u_arg[0]); + tprints(", "); + } return decode_readlink(tcp, 1); } diff --git a/renameat.c b/renameat.c index 8f7118de..584ea020 100644 --- a/renameat.c +++ b/renameat.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -11,9 +11,11 @@ static void decode_renameat(struct tcb *tcp) { print_dirfd(tcp, tcp->u_arg[0]); + tprints(", "); printpath(tcp, tcp->u_arg[1]); tprints(", "); print_dirfd(tcp, tcp->u_arg[2]); + tprints(", "); printpath(tcp, tcp->u_arg[3]); } diff --git a/resource.c b/resource.c index 53192ee9..284f38ec 100644 --- a/resource.c +++ b/resource.c @@ -3,7 +3,7 @@ * Copyright (c) 1993 Branko Lankester * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey * Copyright (c) 1996-1999 Wichert Akkerman - * Copyright (c) 1999-2019 The strace developers. + * Copyright (c) 1999-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -142,7 +142,8 @@ SYS_FUNC(setrlimit) SYS_FUNC(prlimit64) { if (entering(tcp)) { - tprintf("%d, ", (int) tcp->u_arg[0]); + printpid(tcp, tcp->u_arg[0], PT_TGID); + tprints(", "); printxval(resources, tcp->u_arg[1], "RLIMIT_???"); tprints(", "); print_rlimit64(tcp, tcp->u_arg[2]); @@ -179,10 +180,28 @@ SYS_FUNC(osf_getrusage) #include "xlat/priorities.h" +static void +priority_print_who(struct tcb *tcp, int which, int who) +{ + switch (which) + { + case PRIO_PROCESS: + printpid(tcp, who, PT_TGID); + break; + case PRIO_PGRP: + printpid(tcp, who, PT_PGID); + break; + default: + tprintf("%d", who); + break; + } +} + SYS_FUNC(getpriority) { printxval(priorities, tcp->u_arg[0], "PRIO_???"); - tprintf(", %d", (int) tcp->u_arg[1]); + tprints(", "); + priority_print_who(tcp, tcp->u_arg[0], tcp->u_arg[1]); return RVAL_DECODED; } @@ -190,7 +209,9 @@ SYS_FUNC(getpriority) SYS_FUNC(setpriority) { printxval(priorities, tcp->u_arg[0], "PRIO_???"); - tprintf(", %d, %d", (int) tcp->u_arg[1], (int) tcp->u_arg[2]); + tprints(", "); + priority_print_who(tcp, tcp->u_arg[0], tcp->u_arg[1]); + tprintf(", %d", (int) tcp->u_arg[2]); return RVAL_DECODED; } diff --git a/riscv.c b/riscv.c index 7f37281f..825eb293 100644 --- a/riscv.c +++ b/riscv.c @@ -1,7 +1,7 @@ /* * RISC-V-specific syscall decoders. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -9,7 +9,7 @@ #include "defs.h" -#ifdef RISCV +#ifdef RISCV64 # include "xlat/riscv_flush_icache_flags.h" @@ -30,4 +30,4 @@ SYS_FUNC(riscv_flush_icache) return RVAL_DECODED; } -#endif /* RISCV */ +#endif /* RISCV64 */ diff --git a/rtc.c b/rtc.c index dd292471..68ea1eb9 100644 --- a/rtc.c +++ b/rtc.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2004 Ulrich Drepper * Copyright (c) 2004-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -18,6 +18,12 @@ typedef struct rtc_pll_info struct_rtc_pll_info; #include MPERS_DEFS +#include "xlat/rtc_vl_flags.h" + +#define XLAT_MACROS_ONLY +# include "xlat/rtc_ioctl_cmds.h" +#undef XLAT_MACROS_ONLY + static void print_rtc_time(struct tcb *tcp, const struct rtc_time *rt) { @@ -65,6 +71,19 @@ decode_rtc_pll_info(struct tcb *const tcp, const kernel_ulong_t addr) pll.pll_posmult, pll.pll_negmult, (long) pll.pll_clock); } +static void +decode_rtc_vl(struct tcb *const tcp, const kernel_ulong_t addr) +{ + unsigned int val; + + if (umove_or_printaddr(tcp, addr, &val)) + return; + + tprints("["); + printflags(rtc_vl_flags, val, "RTC_VL_???"); + tprints("]"); +} + MPERS_PRINTER_DECL(int, rtc_ioctl, struct tcb *const tcp, const unsigned int code, const kernel_ulong_t arg) { @@ -106,14 +125,12 @@ MPERS_PRINTER_DECL(int, rtc_ioctl, struct tcb *const tcp, tprints(", "); decode_rtc_pll_info(tcp, arg); break; -#ifdef RTC_VL_READ case RTC_VL_READ: if (entering(tcp)) return 0; tprints(", "); - printnum_int(tcp, arg, "%d"); + decode_rtc_vl(tcp, arg); break; -#endif case RTC_AIE_ON: case RTC_AIE_OFF: case RTC_UIE_ON: @@ -122,9 +139,7 @@ MPERS_PRINTER_DECL(int, rtc_ioctl, struct tcb *const tcp, case RTC_PIE_OFF: case RTC_WIE_ON: case RTC_WIE_OFF: -#ifdef RTC_VL_CLR case RTC_VL_CLR: -#endif /* no args */ break; default: diff --git a/rtnl_addr.c b/rtnl_addr.c index 88ef39c1..f2f283e8 100644 --- a/rtnl_addr.c +++ b/rtnl_addr.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2016 Fabien Siron * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -50,7 +50,7 @@ decode_ifa_cacheinfo(struct tcb *const tcp, PRINT_FIELD_U(", ", ci, ifa_valid); PRINT_FIELD_U(", ", ci, cstamp); PRINT_FIELD_U(", ", ci, tstamp); - tprintf("}"); + tprints("}"); } return true; @@ -73,14 +73,16 @@ decode_ifa_flags(struct tcb *const tcp, } static const nla_decoder_t ifaddrmsg_nla_decoders[] = { - [IFA_ADDRESS] = decode_ifa_address, - [IFA_LOCAL] = decode_ifa_address, - [IFA_LABEL] = decode_nla_str, - [IFA_BROADCAST] = decode_ifa_address, - [IFA_ANYCAST] = decode_ifa_address, - [IFA_CACHEINFO] = decode_ifa_cacheinfo, - [IFA_MULTICAST] = decode_ifa_address, - [IFA_FLAGS] = decode_ifa_flags + [IFA_ADDRESS] = decode_ifa_address, + [IFA_LOCAL] = decode_ifa_address, + [IFA_LABEL] = decode_nla_str, + [IFA_BROADCAST] = decode_ifa_address, + [IFA_ANYCAST] = decode_ifa_address, + [IFA_CACHEINFO] = decode_ifa_cacheinfo, + [IFA_MULTICAST] = decode_ifa_address, + [IFA_FLAGS] = decode_ifa_flags, + [IFA_RT_PRIORITY] = decode_nla_u32, + [IFA_TARGET_NETNSID] = decode_nla_s32, }; DECL_NETLINK_ROUTE_DECODER(decode_ifaddrmsg) diff --git a/rtnl_link.c b/rtnl_link.c index 92bc1e03..7f81414a 100644 --- a/rtnl_link.c +++ b/rtnl_link.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2016 Fabien Siron * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -16,11 +16,10 @@ #include -#ifdef HAVE_LINUX_IF_LINK_H -# include -#endif #include +#include "types/rtnl_link.h" + #include "xlat/in6_addr_gen_mode.h" #include "xlat/inet_devconf_indices.h" #include "xlat/inet6_devconf_indices.h" @@ -42,15 +41,26 @@ #include "xlat/tun_device_types.h" #include "xlat/xdp_flags.h" +static bool +decode_ifla_hwaddr(struct tcb *const tcp, + const kernel_ulong_t addr, + const unsigned int len, + const void *const opaque_data) +{ + const struct ifinfomsg *ifinfo = (const struct ifinfomsg *) opaque_data; + + return decode_nla_hwaddr_family(tcp, addr, len, ifinfo->ifi_family); +} + static bool decode_rtnl_link_stats(struct tcb *const tcp, const kernel_ulong_t addr, const unsigned int len, const void *const opaque_data) { - struct rtnl_link_stats st; + struct_rtnl_link_stats st; const unsigned int min_size = - offsetofend(struct rtnl_link_stats, tx_compressed); + offsetofend(struct_rtnl_link_stats, tx_compressed); const unsigned int def_size = sizeof(st); const unsigned int size = (len >= def_size) ? def_size : @@ -86,10 +96,9 @@ decode_rtnl_link_stats(struct tcb *const tcp, PRINT_FIELD_U(", ", st, rx_compressed); PRINT_FIELD_U(", ", st, tx_compressed); -#ifdef HAVE_STRUCT_RTNL_LINK_STATS_RX_NOHANDLER + if (len >= def_size) PRINT_FIELD_U(", ", st, rx_nohandler); -#endif tprints("}"); } @@ -289,7 +298,7 @@ static const nla_decoder_t ifla_info_data_bridge_nla_decoders[] = { [IFLA_BR_TCN_TIMER] = decode_nla_u64, [IFLA_BR_TOPOLOGY_CHANGE_TIMER] = decode_nla_u64, [IFLA_BR_GC_TIMER] = decode_nla_u64, - [IFLA_BR_GROUP_ADDR] = NULL, /* MAC address */ + [IFLA_BR_GROUP_ADDR] = decode_nla_hwaddr_nofamily, [IFLA_BR_FDB_FLUSH] = NULL, /* unspecified */ [IFLA_BR_MCAST_ROUTER] = decode_nla_u8, [IFLA_BR_MCAST_SNOOPING] = decode_nla_u8, @@ -337,10 +346,8 @@ decode_nla_tun_type(struct tcb *const tcp, const unsigned int len, const void *const opaque_data) { - const struct decode_nla_xlat_opts opts = { + static const struct decode_nla_xlat_opts opts = { .xlat = tun_device_types, - .xlat_size = ARRAY_SIZE(tun_device_types) - 1, - .xt = XT_INDEXED, .dflt = "IFF_???", .size = 1, }; @@ -424,10 +431,9 @@ decode_rtnl_link_stats64(struct tcb *const tcp, const unsigned int len, const void *const opaque_data) { -#ifdef HAVE_STRUCT_RTNL_LINK_STATS64 - struct rtnl_link_stats64 st; + struct_rtnl_link_stats64 st; const unsigned int min_size = - offsetofend(struct rtnl_link_stats64, tx_compressed); + offsetofend(struct_rtnl_link_stats64, tx_compressed); const unsigned int def_size = sizeof(st); const unsigned int size = (len >= def_size) ? def_size : @@ -463,17 +469,13 @@ decode_rtnl_link_stats64(struct tcb *const tcp, PRINT_FIELD_U(", ", st, rx_compressed); PRINT_FIELD_U(", ", st, tx_compressed); -# ifdef HAVE_STRUCT_RTNL_LINK_STATS64_RX_NOHANDLER + if (len >= def_size) PRINT_FIELD_U(", ", st, rx_nohandler); -# endif tprints("}"); } return true; -#else - return false; -#endif } static bool @@ -482,23 +484,24 @@ decode_ifla_port_vsi(struct tcb *const tcp, const unsigned int len, const void *const opaque_data) { -#ifdef HAVE_STRUCT_IFLA_PORT_VSI - struct ifla_port_vsi vsi; + struct_ifla_port_vsi vsi; if (len < sizeof(vsi)) return false; - else if (!umove_or_printaddr(tcp, addr, &vsi)) { - PRINT_FIELD_U("{", vsi, vsi_mgr_id); - PRINT_FIELD_STRING(", ", vsi, vsi_type_id, - sizeof(vsi.vsi_type_id), QUOTE_FORCE_HEX); - PRINT_FIELD_U(", ", vsi, vsi_type_version); - tprints("}"); - } + if (umove_or_printaddr(tcp, addr, &vsi)) + return true; + + PRINT_FIELD_U("{", vsi, vsi_mgr_id); + PRINT_FIELD_STRING(", ", vsi, vsi_type_id, + sizeof(vsi.vsi_type_id), QUOTE_FORCE_HEX); + PRINT_FIELD_U(", ", vsi, vsi_type_version); + + if (!IS_ARRAY_ZERO(vsi.pad)) + PRINT_FIELD_HEX_ARRAY(", ", vsi, pad); + + tprints("}"); return true; -#else - return false; -#endif } static const nla_decoder_t ifla_port_nla_decoders[] = { @@ -563,10 +566,8 @@ decode_ifla_xdp_attached(struct tcb *const tcp, const unsigned int len, const void *const opaque_data) { - const struct decode_nla_xlat_opts opts = { + static const struct decode_nla_xlat_opts opts = { .xlat = rtnl_ifla_xdp_attached_mode, - .xlat_size = ARRAY_SIZE(rtnl_ifla_xdp_attached_mode) - 1, - .xt = XT_INDEXED, .dflt = "XDP_ATTACHED_???", .size = 1, }; @@ -582,6 +583,7 @@ static const nla_decoder_t ifla_xdp_nla_decoders[] = { [IFLA_XDP_DRV_PROG_ID] = decode_nla_u32, [IFLA_XDP_SKB_PROG_ID] = decode_nla_u32, [IFLA_XDP_HW_PROG_ID] = decode_nla_u32, + [IFLA_XDP_EXPECTED_FD] = decode_nla_fd, }; static bool @@ -628,10 +630,8 @@ decode_ifla_inet_conf(struct tcb *const tcp, print_array_ex(tcp, addr, cnt, &elem, sizeof(elem), tfetch_mem, print_int32_array_member, NULL, - PAF_PRINT_INDICES | PAF_INDEX_XLAT_VALUE_INDEXED - | XLAT_STYLE_FMT_D, - ARRSZ_PAIR(inet_devconf_indices) - 1, - "IPV4_DEVCONF_???"); + PAF_PRINT_INDICES | XLAT_STYLE_FMT_D, + inet_devconf_indices, "IPV4_DEVCONF_???"); return true; } @@ -646,8 +646,8 @@ decode_ifla_inet6_flags(struct tcb *const tcp, const unsigned int len, const void *const opaque_data) { - const struct decode_nla_xlat_opts opts = { - ARRSZ_PAIR(inet6_if_flags) - 1, "IF_???", + static const struct decode_nla_xlat_opts opts = { + inet6_if_flags, "IF_???", .size = 4, }; @@ -668,10 +668,8 @@ decode_ifla_inet6_conf(struct tcb *const tcp, print_array_ex(tcp, addr, cnt, &elem, sizeof(elem), tfetch_mem, print_int32_array_member, NULL, - PAF_PRINT_INDICES | PAF_INDEX_XLAT_VALUE_INDEXED - | XLAT_STYLE_FMT_D, - ARRSZ_PAIR(inet6_devconf_indices) - 1, - "DEVCONF_???"); + PAF_PRINT_INDICES | XLAT_STYLE_FMT_D, + inet6_devconf_indices, "DEVCONF_???"); return true; } @@ -690,9 +688,8 @@ decode_ifla_inet6_stats(struct tcb *const tcp, print_array_ex(tcp, addr, cnt, &elem, sizeof(elem), tfetch_mem, print_uint64_array_member, NULL, - PAF_PRINT_INDICES | PAF_INDEX_XLAT_VALUE_INDEXED - | XLAT_STYLE_FMT_U, ARRSZ_PAIR(snmp_ip_stats) - 1, - "IPSTATS_MIB_???"); + PAF_PRINT_INDICES | XLAT_STYLE_FMT_U, + snmp_ip_stats, "IPSTATS_MIB_???"); return true; } @@ -737,9 +734,8 @@ decode_ifla_inet6_icmp6_stats(struct tcb *const tcp, print_array_ex(tcp, addr, cnt, &elem, sizeof(elem), tfetch_mem, print_uint64_array_member, NULL, - PAF_PRINT_INDICES | PAF_INDEX_XLAT_VALUE_INDEXED - | XLAT_STYLE_FMT_U, ARRSZ_PAIR(snmp_icmp6_stats) - 1, - "ICMP6_MIB_???"); + PAF_PRINT_INDICES | XLAT_STYLE_FMT_U, + snmp_icmp6_stats, "ICMP6_MIB_???"); return true; } @@ -750,9 +746,8 @@ decode_ifla_inet6_agm(struct tcb *const tcp, const unsigned int len, const void *const opaque_data) { - const struct decode_nla_xlat_opts opts = { - ARRSZ_PAIR(in6_addr_gen_mode) - 1, "IN6_ADDR_GEN_MODE_???", - .xt = XT_INDEXED, + static const struct decode_nla_xlat_opts opts = { + in6_addr_gen_mode, "IN6_ADDR_GEN_MODE_???", .size = 1, }; @@ -820,9 +815,48 @@ decode_ifla_af_spec(struct tcb *const tcp, return true; } +static bool +decode_ifla_prop_list_attr(struct tcb *const tcp, + const kernel_ulong_t addr, + const unsigned int len, + const void *const opaque_data) +{ + const uintptr_t type = (uintptr_t) opaque_data; + + switch (type) { + case IFLA_ALT_IFNAME: + return decode_nla_str(tcp, addr, len, NULL); + default: + return false; + } + + return true; +} + +static bool +decode_ifla_prop_list(struct tcb *const tcp, + const kernel_ulong_t addr, + const unsigned int len, + const void *const opaque_data) +{ + nla_decoder_t ifla_prop_list_decoder = &decode_ifla_prop_list_attr; + + /* + * We're using the zero-size decoder list in order to avoid large table, + * as IFLA_ALT_IFNAME is the only attribute type we need to decode + * inside the IFLA_PROP_LIST attribute so far, and it has rather large + * value of 53. + */ + decode_nlattr(tcp, addr, len, rtnl_link_attrs, "IFLA_???", + &ifla_prop_list_decoder, 0, NULL); + + return true; +} + + static const nla_decoder_t ifinfomsg_nla_decoders[] = { - [IFLA_ADDRESS] = NULL, /* unimplemented */ - [IFLA_BROADCAST] = NULL, /* unimplemented */ + [IFLA_ADDRESS] = decode_ifla_hwaddr, + [IFLA_BROADCAST] = decode_ifla_hwaddr, [IFLA_IFNAME] = decode_nla_str, [IFLA_MTU] = decode_nla_u32, [IFLA_LINK] = decode_nla_u32, @@ -872,6 +906,9 @@ static const nla_decoder_t ifinfomsg_nla_decoders[] = { [IFLA_NEW_IFINDEX] = decode_nla_ifindex, [IFLA_MIN_MTU] = decode_nla_u32, [IFLA_MAX_MTU] = decode_nla_u32, + [IFLA_PROP_LIST] = decode_ifla_prop_list, + [IFLA_ALT_IFNAME] = decode_nla_str, + [IFLA_PERM_ADDRESS] = decode_ifla_hwaddr, }; DECL_NETLINK_ROUTE_DECODER(decode_ifinfomsg) @@ -887,10 +924,8 @@ DECL_NETLINK_ROUTE_DECODER(decode_ifinfomsg) if (!umoven_or_printaddr(tcp, addr + offset, sizeof(ifinfo) - offset, (char *) &ifinfo + offset)) { - PRINT_FIELD_XVAL_SORTED_SIZED("", ifinfo, ifi_type, - arp_hardware_types, - arp_hardware_types_size, - "ARPHRD_???"); + PRINT_FIELD_XVAL("", ifinfo, ifi_type, + arp_hardware_types, "ARPHRD_???"); PRINT_FIELD_IFINDEX(", ", ifinfo, ifi_index); PRINT_FIELD_FLAGS(", ", ifinfo, ifi_flags, iffflags, "IFF_???"); @@ -906,6 +941,6 @@ DECL_NETLINK_ROUTE_DECODER(decode_ifinfomsg) tprints(", "); decode_nlattr(tcp, addr + offset, len - offset, rtnl_link_attrs, "IFLA_???", - ARRSZ_PAIR(ifinfomsg_nla_decoders), NULL); + ARRSZ_PAIR(ifinfomsg_nla_decoders), &ifinfo); } } diff --git a/rtnl_mdb.c b/rtnl_mdb.c index dbbfb896..a2030d48 100644 --- a/rtnl_mdb.c +++ b/rtnl_mdb.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2016 Fabien Siron * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -9,27 +9,22 @@ #include "defs.h" -#ifdef HAVE_STRUCT_BR_PORT_MSG +#include "netlink_route.h" +#include "nlattr.h" +#include "print_fields.h" -# include "netlink_route.h" -# include "nlattr.h" -# include "print_fields.h" +#include "types/rtnl_mdb.h" +#include "netlink.h" -# include -# include -# include "netlink.h" - -# ifdef HAVE_STRUCT_BR_MDB_ENTRY_FLAGS -# include "xlat/mdb_flags.h" -# endif -# include "xlat/mdb_states.h" -# include "xlat/multicast_router_types.h" -# include "xlat/rtnl_mdb_attrs.h" -# include "xlat/rtnl_mdba_mdb_attrs.h" -# include "xlat/rtnl_mdba_mdb_eattr_attrs.h" -# include "xlat/rtnl_mdba_mdb_entry_attrs.h" -# include "xlat/rtnl_mdba_router_attrs.h" -# include "xlat/rtnl_mdba_router_pattr_attrs.h" +#include "xlat/mdb_flags.h" +#include "xlat/mdb_states.h" +#include "xlat/multicast_router_types.h" +#include "xlat/rtnl_mdb_attrs.h" +#include "xlat/rtnl_mdba_mdb_attrs.h" +#include "xlat/rtnl_mdba_mdb_eattr_attrs.h" +#include "xlat/rtnl_mdba_mdb_entry_attrs.h" +#include "xlat/rtnl_mdba_router_attrs.h" +#include "xlat/rtnl_mdba_router_pattr_attrs.h" static const nla_decoder_t mdba_mdb_eattr_nla_decoders[] = { [MDBA_MDB_EATTR_TIMER] = decode_nla_u32 @@ -41,21 +36,22 @@ decode_mdba_mdb_entry_info(struct tcb *const tcp, const unsigned int len, const void *const opaque_data) { -# ifdef HAVE_STRUCT_BR_MDB_ENTRY - struct br_mdb_entry entry; + struct_br_mdb_entry entry; if (len < sizeof(entry)) return false; else if (!umove_or_printaddr(tcp, addr, &entry)) { PRINT_FIELD_IFINDEX("{", entry, ifindex); PRINT_FIELD_XVAL(", ", entry, state, mdb_states, "MDB_???"); -# ifdef HAVE_STRUCT_BR_MDB_ENTRY_FLAGS + + /* + * Note that it's impossible to derive if flags/vid fields + * are present on all architectures except m68k; as a side note, + * v4.3-rc1~96^2~365 has introduced an ABI breakage on m68k. + */ PRINT_FIELD_FLAGS(", ", entry, flags, mdb_flags, "MDB_FLAGS_???"); -# endif -# ifdef HAVE_STRUCT_BR_MDB_ENTRY_VID PRINT_FIELD_U(", ", entry, vid); -# endif const int proto = ntohs(entry.addr.proto); @@ -77,9 +73,6 @@ decode_mdba_mdb_entry_info(struct tcb *const tcp, } return true; -# else - return false; -# endif /* HAVE_STRUCT_BR_MDB_ENTRY */ } static const nla_decoder_t mdba_mdb_entry_nla_decoders[] = { @@ -185,7 +178,7 @@ static const nla_decoder_t br_port_msg_nla_decoders[] = { DECL_NETLINK_ROUTE_DECODER(decode_br_port_msg) { - struct br_port_msg bpm = { .family = family }; + struct_br_port_msg bpm = { .family = family }; size_t offset = sizeof(bpm.family); bool decode_nla = false; @@ -212,5 +205,3 @@ DECL_NETLINK_ROUTE_DECODER(decode_br_port_msg) ARRAY_SIZE(br_port_msg_nla_decoders), NULL); } } - -#endif diff --git a/rtnl_neigh.c b/rtnl_neigh.c index c542fee6..90e77eb5 100644 --- a/rtnl_neigh.c +++ b/rtnl_neigh.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2016 Fabien Siron * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -58,7 +58,7 @@ decode_nda_cacheinfo(struct tcb *const tcp, static const nla_decoder_t ndmsg_nla_decoders[] = { [NDA_DST] = decode_neigh_addr, - [NDA_LLADDR] = decode_neigh_addr, + [NDA_LLADDR] = decode_nla_hwaddr_nofamily, [NDA_CACHEINFO] = decode_nda_cacheinfo, [NDA_PROBES] = decode_nla_u32, [NDA_VLAN] = decode_nla_u16, @@ -69,6 +69,7 @@ static const nla_decoder_t ndmsg_nla_decoders[] = { [NDA_LINK_NETNSID] = decode_nla_u32, [NDA_SRC_VNI] = NULL, [NDA_PROTOCOL] = decode_nla_u8, + [NDA_NH_ID] = decode_nla_u32, }; DECL_NETLINK_ROUTE_DECODER(decode_ndmsg) diff --git a/rtnl_neightbl.c b/rtnl_neightbl.c index f9f5756b..4c1752f2 100644 --- a/rtnl_neightbl.c +++ b/rtnl_neightbl.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2016 Fabien Siron * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -12,11 +12,7 @@ #include "nlattr.h" #include "print_fields.h" -#include "netlink.h" -#include -#ifdef HAVE_LINUX_NEIGHBOUR_H -# include -#endif +#include "types/rtnl_neightbl.h" #include "xlat/rtnl_neightbl_attrs.h" #include "xlat/rtnl_neightbl_parms_attrs.h" @@ -27,8 +23,7 @@ decode_ndt_config(struct tcb *const tcp, const unsigned int len, const void *const opaque_data) { -#ifdef HAVE_STRUCT_NDT_CONFIG - struct ndt_config ndtc; + struct_ndt_config ndtc; if (len < sizeof(ndtc)) return false; @@ -46,9 +41,6 @@ decode_ndt_config(struct tcb *const tcp, } return true; -#else - return false; -#endif } static const nla_decoder_t ndt_parms_nla_decoders[] = { @@ -91,8 +83,7 @@ decode_ndt_stats(struct tcb *const tcp, const unsigned int len, const void *const opaque_data) { -#ifdef HAVE_STRUCT_NDT_STATS - struct ndt_stats ndtst; + struct_ndt_stats ndtst; const unsigned int min_size = offsetofend(struct ndt_stats, ndts_forced_gc_runs); const unsigned int def_size = sizeof(ndtst); @@ -114,17 +105,12 @@ decode_ndt_stats(struct tcb *const tcp, PRINT_FIELD_U(", ", ndtst, ndts_rcv_probes_ucast); PRINT_FIELD_U(", ", ndtst, ndts_periodic_gc_runs); PRINT_FIELD_U(", ", ndtst, ndts_forced_gc_runs); -# ifdef HAVE_STRUCT_NDT_STATS_NDTS_TABLE_FULLS if (len >= def_size) PRINT_FIELD_U(", ", ndtst, ndts_table_fulls); -# endif tprints("}"); } return true; -#else - return false; -#endif } static const nla_decoder_t ndtmsg_nla_decoders[] = { diff --git a/rtnl_route.c b/rtnl_route.c index f1bca94d..f8f534a5 100644 --- a/rtnl_route.c +++ b/rtnl_route.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2016 Fabien Siron * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -13,8 +13,7 @@ #include "print_fields.h" #include -#include "netlink.h" -#include +#include "types/rtnl_route.h" #include "xlat/ip_type_of_services.h" #include "xlat/lwtunnel_encap_types.h" @@ -52,7 +51,7 @@ decode_nla_rt_proto(struct tcb *const tcp, if (len < sizeof(num)) return false; if (!umove_or_printaddr(tcp, addr, &num)) - printxval_search(routing_protocols, num, "RTPROT_???"); + printxval(routing_protocols, num, "RTPROT_???"); return true; } @@ -138,8 +137,7 @@ decode_rta_mfc_stats(struct tcb *const tcp, const unsigned int len, const void *const opaque_data) { -#ifdef HAVE_STRUCT_RTA_MFC_STATS - struct rta_mfc_stats mfcs; + struct_rta_mfc_stats mfcs; if (len < sizeof(mfcs)) return false; @@ -151,9 +149,6 @@ decode_rta_mfc_stats(struct tcb *const tcp, } return true; -#else - return false; -#endif } static bool @@ -162,15 +157,14 @@ decode_rtvia(struct tcb *const tcp, const unsigned int len, const void *const opaque_data) { -#ifdef HAVE_STRUCT_RTVIA - struct rtvia via; + struct_rtvia via; if (len < sizeof(via)) return false; else if (!umove_or_printaddr(tcp, addr, &via)) { PRINT_FIELD_XVAL("{", via, rtvia_family, addrfams, "AF_???"); - const unsigned int offset = offsetof(struct rtvia, rtvia_addr); + const unsigned int offset = offsetof(struct_rtvia, rtvia_addr); if (len > offset) { tprints(", "); @@ -181,9 +175,6 @@ decode_rtvia(struct tcb *const tcp, } return true; -#else - return false; -#endif } static bool diff --git a/rtnl_rule.c b/rtnl_rule.c index 7c628dbd..87fb960f 100644 --- a/rtnl_rule.c +++ b/rtnl_rule.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2016 Fabien Siron * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -42,8 +42,10 @@ decode_fib_rule_uid_range(struct tcb *const tcp, const unsigned int len, const void *const opaque_data) { -#ifdef HAVE_STRUCT_FIB_RULE_UID_RANGE - struct fib_rule_uid_range range; + struct /* fib_rule_uid_range */ { + uint32_t start; + uint32_t end; + } range; if (len < sizeof(range)) return false; @@ -54,9 +56,6 @@ decode_fib_rule_uid_range(struct tcb *const tcp, } return true; -#else - return false; -#endif } static bool diff --git a/rtnl_tc.c b/rtnl_tc.c index dd056e19..5cd28ce2 100644 --- a/rtnl_tc.c +++ b/rtnl_tc.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2016 Fabien Siron * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -174,6 +174,7 @@ static const nla_decoder_t tca_stats_nla_decoders[] = { [TCA_STATS_RATE_EST64] = decode_gnet_stats_rate_est64, [TCA_STATS_PAD] = NULL, [TCA_STATS_BASIC_HW] = decode_gnet_stats_basic, + [TCA_STATS_PKT64] = decode_nla_u64, }; bool @@ -278,6 +279,7 @@ static const nla_decoder_t tcmsg_nla_decoders[] = { [TCA_HW_OFFLOAD] = decode_nla_u8, [TCA_INGRESS_BLOCK] = decode_nla_u32, [TCA_EGRESS_BLOCK] = decode_nla_u32, + [TCA_DUMP_FLAGS] = decode_nla_u32, }; DECL_NETLINK_ROUTE_DECODER(decode_tcmsg) diff --git a/rtnl_tc_action.c b/rtnl_tc_action.c index b23d84d6..a4d58b44 100644 --- a/rtnl_tc_action.c +++ b/rtnl_tc_action.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2016 Fabien Siron * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -13,9 +13,41 @@ #include "print_fields.h" #include "netlink.h" +#include #include #include "xlat/rtnl_tc_action_attrs.h" +#include "xlat/rtnl_tca_act_flags.h" +#include "xlat/rtnl_tca_act_hw_stats.h" + + +static bool +decode_tca_act_flags(struct tcb *const tcp, + const kernel_ulong_t addr, + const unsigned int len, + const void *const opaque_data) +{ + static const struct decode_nla_xlat_opts opts = { + rtnl_tca_act_flags, "TCA_ACT_FLAGS_???", + .size = 4, + }; + + return decode_nla_flags(tcp, addr, len, &opts); +} + +static bool +decode_tca_act_hw_stats(struct tcb *const tcp, + const kernel_ulong_t addr, + const unsigned int len, + const void *const opaque_data) +{ + static const struct decode_nla_xlat_opts opts = { + rtnl_tca_act_hw_stats, "TCA_ACT_HW_STATS_???", + .size = 4, + }; + + return decode_nla_flags(tcp, addr, len, &opts); +} static const nla_decoder_t tcamsg_nla_decoders[] = { [TCA_ACT_KIND] = decode_nla_str, @@ -23,7 +55,10 @@ static const nla_decoder_t tcamsg_nla_decoders[] = { [TCA_ACT_INDEX] = decode_nla_u32, [TCA_ACT_STATS] = decode_nla_tc_stats, [TCA_ACT_PAD] = NULL, - [TCA_ACT_COOKIE] = NULL /* default parser */ + [TCA_ACT_COOKIE] = NULL, /* default parser */ + [TCA_ACT_FLAGS] = decode_tca_act_flags, + [TCA_ACT_HW_STATS] = decode_tca_act_hw_stats, + [TCA_ACT_USED_HW_STATS] = decode_tca_act_hw_stats, }; DECL_NETLINK_ROUTE_DECODER(decode_tcamsg) diff --git a/s390.c b/s390.c index a650b23f..5864b542 100644 --- a/s390.c +++ b/s390.c @@ -1,7 +1,7 @@ /* * s390-specific syscalls decoders. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -73,25 +73,29 @@ struct sthyi_hdr { uint16_t infhlen3; /**< Length of Hypervisor Section3 */ uint16_t infgoff3; /**< Offset to Guest Section3 mapped by INF0GST */ uint16_t infglen3; /**< Length of Guest Section3 */ - /* 44 bytes in total */ } ATTRIBUTE_PACKED; +static_assert(sizeof(struct sthyi_hdr) == 44, + "Unexpected struct sthyi_hdr size"); struct sthyi_machine { uint8_t infmflg1; /**< Machine Flag Byte 1 reserved for IBM use */ uint8_t infmflg2; /**< Machine Flag Byte 2 reserved for IBM use */ /** - * Machine Validity Byte 1 - * - 0x80 - Processor Count Validity. When this bit is on, it indicates - * that INFMSCPS, INFMDCPS, INFMSIFL, and INFMDIFL contain - * valid counts. The validity bit may be off when: - * - STHYI support is not available on a lower level hypervisor, or - * - Global Performance Data is not enabled. - * - 0x40 - Machine ID Validity. This bit being on indicates that a - * SYSIB 1.1.1 was obtained from STSI and information reported - * in the following fields is valid: INFMTYPE, INFMMANU, - * INFMSEQ, and INFMPMAN. - * - 0x20 - Machine Name Validity. This bit being on indicates that the - * INFMNAME field is valid. + * Machine Validity Byte 1. + * - 0x80 - INFMPROC, Processor Count Validity. When this bit is on, + * it indicates that INFMSCPS, INFMDCPS, INFMSIFL, + * and INFMDIFL contain valid counts. The validity bit + * may be off when: + * - STHYI support is not available on a lower level + * hypervisor, or + * - Global Performance Data is not enabled. + * - 0x40 - INFMMID, Machine ID Validity. This bit being on indicates + * that a SYSIB 1.1.1 was obtained from STSI and information + * reported in the following fields is valid: INFMTYPE, + * INFMMANU, INFMSEQ, and INFMPMAN. + * - 0x20 - INFMMNAM, Machine Name Validity. This bit being on + * indicates that the INFMNAME field is valid. + * - 0x10 - INFMPLNV, reserved for IBM use. */ uint8_t infmval1; uint8_t infmval2; /**< Machine Validity Byte 2 reserved for IBM use */ @@ -120,32 +124,40 @@ struct sthyi_machine { char infmmanu[16]; /**< EBCDIC Manufacturer */ char infmseq[16]; /**< EBCDIC Sequence Code */ char infmpman[4]; /**< EBCDIC Plant of Manufacture */ - /* 60 bytes in total*/ + char reserved_1__[4]; /**< Reserved for future IBM use */ + char infmplnm[8]; /**< EBCDIC Reserved for IBM use */ } ATTRIBUTE_PACKED; +static_assert(sizeof(struct sthyi_machine) == 72, + "Unexpected struct sthyi_machine size"); struct sthyi_partition { /** - * Partition Flag Byte 1 - * - 0x80 - Multithreading (MT) is enabled. + * Partition Flag Byte 1. + * - 0x80 - INFPMTEN, multithreading (MT) is enabled. + * - 0x40 - INFPPOOL, reserved for IBM use. */ uint8_t infpflg1; /** Partition Flag Byte 2 reserved for IBM use */ uint8_t infpflg2; /** - * Partition Validity Byte 1 - * - 0x80 - Processor count validity. This bit being on indicates that - * INFPSCPS, INFPDCPS, INFPSIFL, and INFPDIFL contain valid - * counts. - * - 0x40 - Partition weight-based capped capacity validity. This bit - * being on indicates that INFPWBCP and INFPWBIF are valid - * - 0x20 - Partition absolute capped capacity validity. This bit being - * on indicates that INFPABCP and INFPABIF are valid. - * - 0x10 - Partition ID validity. This bit being on indicates that a - * SYSIB 2.2.2 was obtained from STSI and information reported - * in the following fields is valid: INFPPNUM and INFPPNAM. - * - 0x08 - LPAR group absolute capacity capping information validity. - * This bit being on indicates that INFPLGNM, INFPLGCP, and - * INFPLGIF are valid. + * Partition Validity Byte 1. + * - 0x80 - INFPPROC, Processor Count Validity. This bit being on + * indicates that INFPSCPS, INFPDCPS, INFPSIFL, and INFPDIFL + * contain valid counts. + * - 0x40 - INFPWBCC, Partition Weight-Based Capped Capacity Validity. + * This bit being on indicates that INFPWBCP and INFPWBIF + * are valid. + * - 0x20 - INFPACC, Partition Absolute Capped Capacity Validity. + * This bit being on indicates that INFPABCP and INFPABIF + * are valid. + * - 0x10 - INFPPID, Partition ID Validity. This bit being on indicates + * that a SYSIB 2.2.2 was obtained from STSI and information + * reported in the following fields is valid: INFPPNUM + * and INFPPNAM. + * - 0x08 - INFPLGVL, LPAR Group Absolute Capacity Capping Information + * Validity. This bit being on indicates that INFPLGNM, + * INFPLGCP, and INFPLGIF are valid. + * - 0x04 - INFPPLNV, reserved for IBM use. */ uint8_t infpval1; /** Partition Validity Byte 2 reserved for IBM use */ @@ -217,16 +229,19 @@ struct sthyi_partition { * contains a scaled number where 0x00010000 represents one core. */ uint32_t infplgif; - /* 56 bytes */ + char infpplnm[8]; /**< Reserved for future IBM use. */ } ATTRIBUTE_PACKED; +static_assert(sizeof(struct sthyi_partition) == 64, + "Unexpected struct sthyi_partition size"); struct sthyi_hypervisor { /** * Hypervisor Flag Byte 1 - * - 0x80 - Guest CPU usage hard limiting is using the consumption - * method. - * - 0x40 - If on, LIMITHARD caps use prorated core time for capping. - * If off, raw CPU time is used. + * - 0x80 - INFYLMCN, guest CPU usage hard limiting is using + * the consumption method. + * - 0x40 - INFYLMPR, if on, LIMITHARD caps use prorated core time + * for capping. If off, raw CPU time is used. + * - 0x20 - INFYMTEN, hypervisor is MT-enabled. */ uint8_t infyflg1; uint8_t infyflg2; /**< Hypervisor Flag Byte 2 reserved for IBM use */ @@ -279,8 +294,34 @@ struct sthyi_hypervisor { * Number of cores when MT enabled. */ uint16_t infydifl; - /* 32 bytes */ + /** + * Mask of installed function codes. Bit position corresponding + * to the function code number is on if the function code is supported + * by this hypervisor. Bits may be on even if the guest + * is not authorized. + * + * Element 0 (INFYINS0) flags: + * - 0x80 - INFYFCCP, FC = 0, Obtain CPU Capacity Info. + * - 0x40 - INFYFHYP, FC = 1, Hypervisor Environment Info. + * - 0x20 - INFYFGLS, FC = 2, Guest List. + * - 0x10 - INFYFGST, FC = 3, Designated Guest Info. + * - 0x08 - INFYFPLS, FC = 4, Resource Pool List. + * - 0x04 - INFYFPDS, FC = 5, Designated Resource Pool Information. + * - 0x02 - INFYFPML, FC = 6, Resource Pool Member List. + */ + uint8_t infyinsf[8]; + /** + * Mask of authorized functions codes. Bit position corresponding + * to the function code number is on if the function code is supported + * by this hypervisor and the guest has been authorized + * in the directory. + * + * The flags are the same as in infyinsf. + */ + uint8_t infyautf[8]; } ATTRIBUTE_PACKED; +static_assert(sizeof(struct sthyi_hypervisor) == 48, + "Unexpected struct sthyi_hypervisor size"); struct sthyi_guest { /** @@ -366,8 +407,9 @@ struct sthyi_guest { * not capped. */ uint32_t infgpicc; - /* 56 bytes */ } ATTRIBUTE_PACKED; +static_assert(sizeof(struct sthyi_guest) == 56, + "Unexpected struct sthyi_guest size"); static void @@ -434,13 +476,13 @@ decode_ebcdic(const char *ebcdic, char *ascii, size_t size) # define IS_BLANK(arr_) /* 0x40 is space in EBCDIC */ \ is_filled(arr_, '\x40', sizeof(arr_) + MUST_BE_ARRAY(arr_)) -# define CHECK_SIZE(hdr_, size_, name_, ...) \ +# define CHECK_SIZE_EX(hdr_, min_size_, size_, name_, ...) \ do { \ - if ((size_) < sizeof(*(hdr_))) { \ + if ((size_) < (min_size_)) { \ tprintf_comment("Invalid " name_ " with size " \ "%hu < %zu expected", \ ##__VA_ARGS__, \ - (size_), sizeof(*(hdr_))); \ + (size_), (min_size_)); \ print_quoted_string((char *) (hdr_), (size_), \ QUOTE_FORCE_HEX); \ \ @@ -448,25 +490,32 @@ decode_ebcdic(const char *ebcdic, char *ascii, size_t size) } \ } while (0) -# define PRINT_UNKNOWN_TAIL(hdr_, size_) \ +# define CHECK_SIZE(hdr_, size_, name_, ...) \ + CHECK_SIZE_EX((hdr_), sizeof(*(hdr_)), (size_), name_, ##__VA_ARGS__) + +# define PRINT_UNKNOWN_TAIL_EX(hdr_, hdr_size_, size_) \ do { \ - if ((size_) > sizeof(*(hdr_)) && \ - !is_filled((char *) ((hdr_) + 1), '\0', \ - (size_) - sizeof(*(hdr_)))) { \ - tprints(", "); \ - print_quoted_string((char *) ((hdr_) + 1), \ - (size_) - sizeof(*(hdr_)), \ + if ((size_) > (hdr_size_) && \ + !is_filled(((char *) hdr_) + (hdr_size_), '\0', \ + (size_) - (hdr_size_))) { \ + tprints(", "); \ + print_quoted_string(((char *) hdr_) + (hdr_size_), \ + (size_) - (hdr_size_), \ QUOTE_FORCE_HEX); \ } \ } while (0) +# define PRINT_UNKNOWN_TAIL(hdr_, size_) \ + PRINT_UNKNOWN_TAIL_EX((hdr_), sizeof(*(hdr_)), (size_)) + static void print_sthyi_machine(struct tcb *tcp, struct sthyi_machine *hdr, uint16_t size, bool *dummy) { + size_t last_decoded = offsetofend(typeof(*hdr), infmpman); int cnt_val, name_val, id_val; - CHECK_SIZE(hdr, size, "machine structure"); + CHECK_SIZE_EX(hdr, last_decoded, size, "machine structure"); tprints("/* machine */ {"); if (!abbrev(tcp)) { @@ -520,7 +569,18 @@ print_sthyi_machine(struct tcb *tcp, struct sthyi_machine *hdr, uint16_t size, if (id_val || !IS_ARRAY_ZERO(hdr->infmpman)) PRINT_FIELD_EBCDIC(", ", *hdr, infmpman); - PRINT_UNKNOWN_TAIL(hdr, size); + if (size >= offsetofend(struct sthyi_machine, infmplnm)) { + last_decoded = offsetofend(struct sthyi_machine, + infmplnm); + + if (!IS_ARRAY_ZERO(hdr->reserved_1__)) + PRINT_FIELD_HEX_ARRAY(", ", *hdr, reserved_1__); + + if (!IS_ARRAY_ZERO(hdr->infmplnm)) + PRINT_FIELD_EBCDIC(", ", *hdr, infmplnm); + } + + PRINT_UNKNOWN_TAIL_EX(hdr, last_decoded, size); } else { tprints(", ..."); } @@ -532,11 +592,12 @@ static void print_sthyi_partition(struct tcb *tcp, struct sthyi_partition *hdr, uint16_t size, bool *mt) { + size_t last_decoded = offsetofend(typeof(*hdr), infpabif); int cnt_val, wcap_val, acap_val, id_val, lpar_val; *mt = false; - CHECK_SIZE(hdr, size, "partition structure"); + CHECK_SIZE_EX(hdr, last_decoded, size, "partition structure"); *mt = !!(hdr->infpflg1 & 0x80); @@ -601,21 +662,31 @@ print_sthyi_partition(struct tcb *tcp, struct sthyi_partition *hdr, if (acap_val || hdr->infpabif) PRINT_FIELD_WEIGHT(", ", *hdr, infpabif); - if (!IS_ARRAY_ZERO(hdr->infplgnm)) { - PRINT_FIELD_EBCDIC(", ", *hdr, infplgnm); - - PRINT_FIELD_WEIGHT(", ", *hdr, infplgcp); - PRINT_FIELD_WEIGHT(", ", *hdr, infplgif); - } else { - if (lpar_val) - PRINT_FIELD_HEX_ARRAY(", ", *hdr, infplgnm); - if (hdr->infplgcp) - PRINT_FIELD_X(", ", *hdr, infplgcp); - if (hdr->infplgif) - PRINT_FIELD_X(", ", *hdr, infplgif); + if (size >= offsetofend(struct sthyi_partition, infplgif)) { + if (!IS_ARRAY_ZERO(hdr->infplgnm)) { + PRINT_FIELD_EBCDIC(", ", *hdr, infplgnm); + + PRINT_FIELD_WEIGHT(", ", *hdr, infplgcp); + PRINT_FIELD_WEIGHT(", ", *hdr, infplgif); + } else { + if (lpar_val) + PRINT_FIELD_HEX_ARRAY(", ", *hdr, infplgnm); + if (hdr->infplgcp) + PRINT_FIELD_X(", ", *hdr, infplgcp); + if (hdr->infplgif) + PRINT_FIELD_X(", ", *hdr, infplgif); + } } - PRINT_UNKNOWN_TAIL(hdr, size); + if (size >= offsetofend(struct sthyi_partition, infpplnm)) { + last_decoded = offsetofend(struct sthyi_partition, + infpplnm); + + if (!IS_ARRAY_ZERO(hdr->infpplnm)) + PRINT_FIELD_EBCDIC(", ", *hdr, infpplnm); + } + + PRINT_UNKNOWN_TAIL_EX(hdr, last_decoded, size); } else { tprints(", ..."); } @@ -623,16 +694,57 @@ print_sthyi_partition(struct tcb *tcp, struct sthyi_partition *hdr, tprints("}"); } +static void +print_funcs(const uint8_t funcs[8]) +{ + static const char *func_descs[] = { + [0] = "Obtain CPU Capacity Info", + [1] = "Hypervisor Environment Info", + [2] = "Guest List", + [3] = "Designated Guest Info", + [4] = "Resource Pool List", + [5] = "Designated Resource Pool Information", + [6] = "Resource Pool Member List", + }; + + static_assert(ARRAY_SIZE(func_descs) <= 64, + "func_descs is too big"); + + if (is_filled((const char *) funcs, 0, 8)) + return; + + bool cont = false; + + for (size_t i = 0; i < ARRAY_SIZE(func_descs); i++) { + if (!func_descs[i]) + continue; + + size_t b = i >> 3; + size_t f = 1 << (7 - (i & 7)); + + if (!(funcs[b] & f)) + continue; + + tprintf("%s%zu: %s", cont ? ", " : " /* ", i, func_descs[i]); + cont = true; + } + + if (cont) + tprints(" */"); +} + static void print_sthyi_hypervisor(struct tcb *tcp, struct sthyi_hypervisor *hdr, uint16_t size, int num, bool mt) { - CHECK_SIZE(hdr, size, "hypervisor %d structure", num); + size_t last_decoded = offsetofend(typeof(*hdr), infydifl); + + CHECK_SIZE_EX(hdr, last_decoded, size, "hypervisor %d structure", num); tprintf("/* hypervisor %d */ ", num); PRINT_FIELD_0X("{", *hdr, infyflg1); if (!abbrev(tcp) && hdr->infyflg1) - tprintf_comment("%s%s%s%s%#.0x%s", + tprintf_comment("%s%s%s%s%s%s%#.0x%s", hdr->infyflg1 & 0x80 ? "0x80 - guest CPU usage had limiting is using " "the consumption method" : "", @@ -641,10 +753,14 @@ print_sthyi_hypervisor(struct tcb *tcp, struct sthyi_hypervisor *hdr, hdr->infyflg1 & 0x40 ? "0x40 - LIMITHARD caps use prorated core time " "for capping" : "", - (hdr->infyflg1 & 0xC0) && (hdr->infyflg1 & 0x3F) ? + (hdr->infyflg1 & 0xC0) && (hdr->infyflg1 & 0x20) ? ", " : "", - hdr->infyflg1 & 0x3F, - hdr->infyflg1 & 0x3F ? " - ???" : ""); + hdr->infyflg1 & 0x20 ? + "0x20 - hypervisor is MT-enabled" :"", + (hdr->infyflg1 & 0xE0) && (hdr->infyflg1 & 0x1F) ? + ", " : "", + hdr->infyflg1 & 0x1F, + hdr->infyflg1 & 0x1F ? " - ???" : ""); if (!abbrev(tcp)) { if (hdr->infyflg2) /* Reserved */ @@ -687,7 +803,18 @@ print_sthyi_hypervisor(struct tcb *tcp, struct sthyi_hypervisor *hdr, PRINT_FIELD_U(", ", *hdr, infydifl); if (!abbrev(tcp)) { - PRINT_UNKNOWN_TAIL(hdr, size); + if (size >= offsetofend(struct sthyi_hypervisor, infyautf)) { + last_decoded = offsetofend(struct sthyi_hypervisor, + infyautf); + + PRINT_FIELD_HEX_ARRAY(", ", *hdr, infyinsf); + print_funcs(hdr->infyinsf); + + PRINT_FIELD_HEX_ARRAY(", ", *hdr, infyautf); + print_funcs(hdr->infyautf); + } + + PRINT_UNKNOWN_TAIL_EX(hdr, last_decoded, size); } else { tprints(", ..."); } @@ -962,7 +1089,9 @@ sthyi_sections: /** * Wrapper for the s390 STHYI instruction that provides hypervisor information. * - * See https://www.ibm.com/support/knowledgecenter/SSB27U_6.3.0/com.ibm.zvm.v630.hcpb4/hcpb4sth.htm + * See + * https://www.ibm.com/support/knowledgecenter/SSB27U_6.4.0/com.ibm.zvm.v640.hcpb4/hcpb4sth.htm + * https://web.archive.org/web/20170306000915/https://www.ibm.com/support/knowledgecenter/SSB27U_6.3.0/com.ibm.zvm.v630.hcpb4/hcpb4sth.htm * for the instruction documentation. * * The difference in the kernel wrapper is that it doesn't require the 4K diff --git a/sched.c b/sched.c index 417ff742..ff427e48 100644 --- a/sched.c +++ b/sched.c @@ -2,7 +2,7 @@ * Copyright (c) 2004 Ulrich Drepper * Copyright (c) 2005 Roland McGrath * Copyright (c) 2012-2015 Dmitry V. Levin - * Copyright (c) 2014-2019 The strace developers. + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -13,13 +13,15 @@ #include #include "sched_attr.h" +#include "print_fields.h" + #include "xlat/schedulers.h" #include "xlat/sched_flags.h" SYS_FUNC(sched_getscheduler) { if (entering(tcp)) { - tprintf("%d", (int) tcp->u_arg[0]); + printpid(tcp, tcp->u_arg[0], PT_TGID); } else if (!syserror(tcp)) { tcp->auxstr = xlookup(schedulers, (kernel_ulong_t) tcp->u_rval); return RVAL_STR; @@ -29,7 +31,8 @@ SYS_FUNC(sched_getscheduler) SYS_FUNC(sched_setscheduler) { - tprintf("%d, ", (int) tcp->u_arg[0]); + printpid(tcp, tcp->u_arg[0], PT_TGID); + tprints(", "); printxval(schedulers, tcp->u_arg[1], "SCHED_???"); tprints(", "); printnum_int(tcp, tcp->u_arg[2], "%d"); @@ -39,16 +42,19 @@ SYS_FUNC(sched_setscheduler) SYS_FUNC(sched_getparam) { - if (entering(tcp)) - tprintf("%d, ", (int) tcp->u_arg[0]); - else + if (entering(tcp)) { + printpid(tcp, tcp->u_arg[0], PT_TGID); + tprints(", "); + } else { printnum_int(tcp, tcp->u_arg[1], "%d"); + } return 0; } SYS_FUNC(sched_setparam) { - tprintf("%d, ", (int) tcp->u_arg[0]); + printpid(tcp, tcp->u_arg[0], PT_TGID); + tprints(", "); printnum_int(tcp, tcp->u_arg[1], "%d"); return RVAL_DECODED; @@ -66,7 +72,8 @@ do_sched_rr_get_interval(struct tcb *const tcp, const print_obj_by_addr_fn print_ts) { if (entering(tcp)) { - tprintf("%d, ", (int) tcp->u_arg[0]); + printpid(tcp, tcp->u_arg[0], PT_TGID); + tprints(", "); } else { if (syserror(tcp)) printaddr(tcp->u_arg[1]); @@ -94,6 +101,7 @@ print_sched_attr(struct tcb *const tcp, const kernel_ulong_t addr, { struct sched_attr attr = {}; unsigned int size; + bool is_set = false; if (usize) { /* called from sched_getattr */ @@ -104,6 +112,8 @@ print_sched_attr(struct tcb *const tcp, const kernel_ulong_t addr, size = attr.size; } else { /* called from sched_setattr */ + is_set = true; + if (umove_or_printaddr(tcp, addr, &attr.size)) return; usize = attr.size; @@ -116,34 +126,47 @@ print_sched_attr(struct tcb *const tcp, const kernel_ulong_t addr, } } - tprintf("{size=%u", attr.size); + PRINT_FIELD_U("{", attr, size); - if (size >= SCHED_ATTR_MIN_SIZE) { - tprints(", sched_policy="); - printxval(schedulers, attr.sched_policy, "SCHED_???"); - tprints(", sched_flags="); - printflags64(sched_flags, attr.sched_flags, "SCHED_FLAG_???"); + if (size < SCHED_ATTR_MIN_SIZE) + goto end; -#define PRINT_SCHED_FIELD(field, fmt) \ - tprintf(", " #field "=%" fmt, attr.field) + if (!is_set + || (int) attr.sched_policy < 0 + || !(attr.sched_flags & (SCHED_FLAG_KEEP_POLICY + | SCHED_FLAG_KEEP_PARAMS))) + PRINT_FIELD_XVAL(", ", attr, sched_policy, schedulers, + "SCHED_???"); + PRINT_FIELD_FLAGS(", ", attr, sched_flags, sched_flags, + "SCHED_FLAG_???"); - PRINT_SCHED_FIELD(sched_nice, "d"); - PRINT_SCHED_FIELD(sched_priority, "u"); - PRINT_SCHED_FIELD(sched_runtime, PRIu64); - PRINT_SCHED_FIELD(sched_deadline, PRIu64); - PRINT_SCHED_FIELD(sched_period, PRIu64); - if (usize > size) - tprints(", ..."); + if (!is_set || !(attr.sched_flags & SCHED_FLAG_KEEP_PARAMS)) { + PRINT_FIELD_D(", ", attr, sched_nice); + PRINT_FIELD_U(", ", attr, sched_priority); + PRINT_FIELD_U(", ", attr, sched_runtime); + PRINT_FIELD_U(", ", attr, sched_deadline); + PRINT_FIELD_U(", ", attr, sched_period); } + if (size < SCHED_ATTR_SIZE_VER1) + goto end; + + PRINT_FIELD_U(", ", attr, sched_util_min); + PRINT_FIELD_U(", ", attr, sched_util_max); + +end: + if ((is_set ? usize : attr.size) > size) + tprints(", ..."); + tprints("}"); } SYS_FUNC(sched_setattr) { if (entering(tcp)) { - tprintf("%d, ", (int) tcp->u_arg[0]); + printpid(tcp, tcp->u_arg[0], PT_TGID); + tprints(", "); print_sched_attr(tcp, tcp->u_arg[1], 0); } else { struct sched_attr attr; @@ -162,7 +185,8 @@ SYS_FUNC(sched_setattr) SYS_FUNC(sched_getattr) { if (entering(tcp)) { - tprintf("%d, ", (int) tcp->u_arg[0]); + printpid(tcp, tcp->u_arg[0], PT_TGID); + tprints(", "); } else { const unsigned int size = tcp->u_arg[2]; diff --git a/sched_attr.h b/sched_attr.h index c305ccfb..ce3e327d 100644 --- a/sched_attr.h +++ b/sched_attr.h @@ -1,5 +1,6 @@ /* * Copyright (c) 2017-2018 Dmitry V. Levin + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -19,8 +20,14 @@ struct sched_attr { uint64_t sched_runtime; uint64_t sched_deadline; uint64_t sched_period; + /* ver. 1 fields below */ + uint32_t sched_util_min; + uint32_t sched_util_max; }; # define SCHED_ATTR_MIN_SIZE 48 +# ifndef SCHED_ATTR_SIZE_VER1 +# define SCHED_ATTR_SIZE_VER1 56 +# endif #endif /* !STRACE_SCHED_ATTR_H */ diff --git a/scno.head b/scno.head index 11814b15..8e2e6e38 100644 --- a/scno.head +++ b/scno.head @@ -5,6 +5,8 @@ * SPDX-License-Identifier: LGPL-2.1-or-later */ +#include + #if defined __X32_SYSCALL_BIT && defined __NR_read \ && (__X32_SYSCALL_BIT & __NR_read) == __X32_SYSCALL_BIT # define SYSCALL_BIT __X32_SYSCALL_BIT diff --git a/scsi.c b/scsi.c index 02749a38..e968b41e 100644 --- a/scsi.c +++ b/scsi.c @@ -1,6 +1,7 @@ /* * Copyright (c) 2007 Vladimir Nadvornik * Copyright (c) 2007-2018 Dmitry V. Levin + * Copyright (c) 2007-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -12,7 +13,9 @@ # include #endif -#include "xlat/scsi_sg_commands.h" +#define XLAT_MACROS_ONLY +# include "xlat/scsi_sg_commands.h" +#undef XLAT_MACROS_ONLY #include "xlat/sg_scsi_reset.h" static int diff --git a/signal.c b/signal.c index fcaf9d4f..49b4ebd5 100644 --- a/signal.c +++ b/signal.c @@ -6,7 +6,7 @@ * Copyright (c) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation * Linux for s390 port by D.J. Barrow * - * Copyright (c) 2001-2019 The strace developers. + * Copyright (c) 1999-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -138,25 +138,6 @@ sprintsigname(const int sig) return buf; } -static unsigned int -popcount32(const uint32_t *a, unsigned int size) -{ - unsigned int count = 0; - - for (; size; ++a, --size) { - uint32_t x = *a; - -#ifdef HAVE___BUILTIN_POPCOUNT - count += __builtin_popcount(x); -#else - for (; x; ++count) - x &= x - 1; -#endif - } - - return count; -} - const char * sprintsigmask_n(const char *prefix, const void *sig_mask, unsigned int bytes) { @@ -458,17 +439,31 @@ SYS_FUNC(sigprocmask) SYS_FUNC(kill) { /* pid */ - tprintf("%d, ", (int) tcp->u_arg[0]); + printpid_tgid_pgid(tcp, tcp->u_arg[0]); + tprints(", "); /* signal */ printsignal(tcp->u_arg[1]); return RVAL_DECODED; } +SYS_FUNC(tkill) +{ + printpid(tcp, tcp->u_arg[0], PT_TID); + tprints(", "); + printsignal(tcp->u_arg[1]); + + return RVAL_DECODED; +} + SYS_FUNC(tgkill) { - /* tgid, tid */ - tprintf("%d, %d, ", (int) tcp->u_arg[0], (int) tcp->u_arg[1]); + /* tgid */ + printpid(tcp, tcp->u_arg[0], PT_TGID); + tprints(", "); + /* tid */ + printpid(tcp, tcp->u_arg[1], PT_TID); + tprints(", "); /* signal */ printsignal(tcp->u_arg[2]); @@ -634,7 +629,8 @@ print_sigqueueinfo(struct tcb *const tcp, const int sig, SYS_FUNC(rt_sigqueueinfo) { - tprintf("%d, ", (int) tcp->u_arg[0]); + printpid(tcp, tcp->u_arg[0], PT_TGID); + tprints(", "); print_sigqueueinfo(tcp, tcp->u_arg[1], tcp->u_arg[2]); return RVAL_DECODED; @@ -642,7 +638,10 @@ SYS_FUNC(rt_sigqueueinfo) SYS_FUNC(rt_tgsigqueueinfo) { - tprintf("%d, %d, ", (int) tcp->u_arg[0], (int) tcp->u_arg[1]); + printpid(tcp, tcp->u_arg[0], PT_TGID); + tprints(", "); + printpid(tcp, tcp->u_arg[1], PT_TID); + tprints(", "); print_sigqueueinfo(tcp, tcp->u_arg[2], tcp->u_arg[3]); return RVAL_DECODED; diff --git a/sock.c b/sock.c index a0152bdd..1dfbf7ea 100644 --- a/sock.c +++ b/sock.c @@ -1,6 +1,6 @@ /* * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey - * Copyright (c) 1996-2018 The strace developers. + * Copyright (c) 1996-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -37,8 +37,6 @@ print_ifname(const char *ifname) print_quoted_string(ifname, IFNAMSIZ + 1, QUOTE_0_TERMINATED); } -DIAG_PUSH_IGNORE_OVERRIDE_INIT - static void print_ifreq(struct tcb *const tcp, const unsigned int code, const kernel_ulong_t arg, const struct_ifreq *const ifr) @@ -46,104 +44,27 @@ print_ifreq(struct tcb *const tcp, const unsigned int code, switch (code) { case SIOCSIFADDR: case SIOCGIFADDR: - PRINT_FIELD_SOCKADDR("", *ifr, ifr_addr); + PRINT_FIELD_SOCKADDR("", *ifr, ifr_addr, tcp); break; case SIOCSIFDSTADDR: case SIOCGIFDSTADDR: - PRINT_FIELD_SOCKADDR("", *ifr, ifr_dstaddr); + PRINT_FIELD_SOCKADDR("", *ifr, ifr_dstaddr, tcp); break; case SIOCSIFBRDADDR: case SIOCGIFBRDADDR: - PRINT_FIELD_SOCKADDR("", *ifr, ifr_broadaddr); + PRINT_FIELD_SOCKADDR("", *ifr, ifr_broadaddr, tcp); break; case SIOCSIFNETMASK: case SIOCGIFNETMASK: - PRINT_FIELD_SOCKADDR("", *ifr, ifr_netmask); + PRINT_FIELD_SOCKADDR("", *ifr, ifr_netmask, tcp); break; case SIOCSIFHWADDR: case SIOCGIFHWADDR: { - static uint8_t hwaddr_sizes[] = { - [0 ... ARPHRD_IEEE802_TR] = 255, - - [ARPHRD_NETROM] = 7 /* AX25_ADDR_LEN */, - [ARPHRD_ETHER] = 6 /* ETH_ALEN */, - /* ARPHRD_EETHER - no actual devices in Linux */ - [ARPHRD_AX25] = 7 /* AX25_ADDR_LEN */, - /* ARPHRD_PRONET - no actual devices in Linux */ - /* ARPHRD_CHAOS - no actual devices in Linux */ - [ARPHRD_IEEE802] = 6 /* FC_ALEN */, - [ARPHRD_ARCNET] = 1 /* ARCNET_ALEN */, - /* ARPHRD_APPLETLK - no actual devices in Linux */ - [ARPHRD_DLCI] = sizeof(short), - /* ARPHRD_ATM - no explicit setting */ - /* ARPHRD_METRICOM - no actual devices in Linux */ - [ARPHRD_IEEE1394] = 16 /* FWNET_ALEN */, - [ARPHRD_EUI64] = 8 /* EUI64_ADDR_LEN */, - [ARPHRD_INFINIBAND] = 20 /* INFINIBAND_ALEN */, - [ARPHRD_SLIP] = 0, - /* ARPHRD_CSLIP - no actual devices in Linux */ - /* ARPHRD_SLIP6 - no actual devices in Linux */ - /* ARPHRD_CSLIP6 - no actual devices in Linux */ - /* ARPHRD_RSRVD - no actual devices in Linux */ - /* ARPHRD_ADAPT - no actual devices in Linux */ - [ARPHRD_ROSE] = 5 /* ROSE_ADDR_LEN */, - [ARPHRD_X25] = 0, - /* ARPHRD_HWX25 - no actual devices in Linux */ - [ARPHRD_CAN] = 0, - [ARPHRD_PPP] = 0, - /* ARPHRD_CISCO - no actual devices in Linux */ - /* ARPHRD_LAPB - no actual devices in Linux */ - /* ARPHRD_DDCMP - no actual devices in Linux */ - [ARPHRD_RAWHDLC] = 0, - [ARPHRD_RAWIP] = 0, - [ARPHRD_TUNNEL] = 4 /* IPIP */, - [ARPHRD_TUNNEL6] = 16 /* sizeof(struct in6_addr) */, - /* ARPHRD_FRAD - no actual devices in Linux */ - /* ARPHRD_SKIP - no actual devices in Linux */ - [ARPHRD_LOOPBACK] = 6 /* ETH_ALEN */, - [ARPHRD_LOCALTLK] = 1 /* LTALK_ALEN */, - [ARPHRD_FDDI] = 6 /* FDDI_K_ALEN */, - /* ARPHRD_BIF - no actual devices in Linux */ - [ARPHRD_SIT] = 4, - [ARPHRD_IPDDP] = 0, - [ARPHRD_IPGRE] = 4, - [ARPHRD_PIMREG] = 0, - [ARPHRD_HIPPI] = 6 /* HIPPI_ALEN */, - /* ARPHRD_ASH - no actual devices in Linux */ - /* ARPHRD_ECONET - no actual devices in Linux */ - [ARPHRD_IRDA] = 4 /* LAP_ALEN */, - /* ARPHRD_FCPP - no actual devices in Linux */ - /* ARPHRD_FCAL - no actual devices in Linux */ - /* ARPHRD_FCPL - no actual devices in Linux */ - /* ARPHRD_FCFABRIC - no actual devices in Linux */ - /* ARPHRD_IEEE802_TR - no actual devices in Linux */ - [ARPHRD_IEEE80211] = 6 /* ETH_ALEN */, - [ARPHRD_IEEE80211_PRISM] = 6 /* ETH_ALEN */, - [ARPHRD_IEEE80211_RADIOTAP] = 6 /* ETH_ALEN */, - [ARPHRD_IEEE802154] - = 8 /* IEEE802154_EXTENDED_ADDR_LEN */, - [ARPHRD_IEEE802154_MONITOR] - = 8 /* IEEE802154_EXTENDED_ADDR_LEN */, - [ARPHRD_PHONET] = 1, - [ARPHRD_PHONET_PIPE] = 1, - [ARPHRD_CAIF] = 0, - [ARPHRD_IP6GRE] = 16 /* sizeof(struct in6_addr) */, - [ARPHRD_NETLINK] = 0, - [ARPHRD_6LOWPAN] = 8 /* EUI64_ADDR_LEN */ - /* ^ or ETH_ALEN, depending on lltype */, - [ARPHRD_VSOCKMON] = 0, - }; - - uint16_t proto = ifr->ifr_hwaddr.sa_family; - uint8_t sz = (proto < ARRAY_SIZE(hwaddr_sizes)) - ? hwaddr_sizes[proto] : 255; - - PRINT_FIELD_XVAL_SORTED_SIZED("ifr_hwaddr={", ifr->ifr_hwaddr, - sa_family, arp_hardware_types, - arp_hardware_types_size, - "ARPHRD_???"); - PRINT_FIELD_MAC_SZ(", ", ifr->ifr_hwaddr, sa_data, - MIN(sizeof(ifr->ifr_hwaddr.sa_data), sz)); + PRINT_FIELD_XVAL("ifr_hwaddr={", ifr->ifr_hwaddr, sa_family, + arp_hardware_types, "ARPHRD_???"); + PRINT_FIELD_HWADDR_SZ(", ", ifr->ifr_hwaddr, sa_data, + sizeof(ifr->ifr_hwaddr.sa_data), + ifr->ifr_hwaddr.sa_family); tprints("}"); break; } @@ -184,8 +105,6 @@ print_ifreq(struct tcb *const tcp, const unsigned int code, } } -DIAG_POP_IGNORE_OVERRIDE_INIT - static unsigned int print_ifc_len(int len) { @@ -207,7 +126,7 @@ print_ifconf_ifreq(struct tcb *tcp, void *elem_buf, size_t elem_size, tprints("{ifr_name="); print_ifname(ifr->ifr_name); - PRINT_FIELD_SOCKADDR(", ", *ifr, ifr_addr); + PRINT_FIELD_SOCKADDR(", ", *ifr, ifr_addr, tcp); tprints("}"); return true; diff --git a/sockaddr.c b/sockaddr.c index acba7f02..fb8887c2 100644 --- a/sockaddr.c +++ b/sockaddr.c @@ -4,7 +4,7 @@ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey * Copyright (c) 1996-2000 Wichert Akkerman * Copyright (c) 2005-2016 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -41,13 +41,13 @@ #include "xlat/bluetooth_l2_psm.h" #include "xlat/hci_channels.h" -#define SIZEOF_SA_FAMILY sizeof(((struct sockaddr *) 0)->sa_family) +#define SIZEOF_SA_FAMILY sizeof_field(struct sockaddr, sa_family) const size_t arp_hardware_types_size = ARRAY_SIZE(arp_hardware_types) - 1; const size_t ethernet_protocols_size = ARRAY_SIZE(ethernet_protocols) - 1; static void -print_sockaddr_data_un(const void *const buf, const int addrlen) +print_sockaddr_data_un(struct tcb *tcp, const void *const buf, const int addrlen) { const struct sockaddr_un *const sa_un = buf; const int un_len = addrlen > (int) sizeof(*sa_un) @@ -172,7 +172,8 @@ decode_inet_addr(struct tcb *const tcp, } static void -print_sockaddr_data_in(const void *const buf, const int addrlen) +print_sockaddr_data_in(struct tcb *tcp, const void *const buf, + const int addrlen) { const struct sockaddr_in *const sa_in = buf; @@ -183,7 +184,8 @@ print_sockaddr_data_in(const void *const buf, const int addrlen) #define SIN6_MIN_LEN offsetof(struct sockaddr_in6, sin6_scope_id) static void -print_sockaddr_data_in6(const void *const buf, const int addrlen) +print_sockaddr_data_in6(struct tcb *tcp, const void *const buf, + const int addrlen) { const struct sockaddr_in6 *const sa_in6 = buf; @@ -322,7 +324,8 @@ print_ax25_addr(const void /* ax25_address */ *addr_void) } static void -print_sockaddr_data_ax25(const void *const buf, const int addrlen) +print_sockaddr_data_ax25(struct tcb *tcp, const void *const buf, + const int addrlen) { const struct full_sockaddr_ax25 *const sax25 = buf; size_t addrlen_us = MAX(addrlen, 0); @@ -372,7 +375,8 @@ digis_end: } static void -print_sockaddr_data_ipx(const void *const buf, const int addrlen) +print_sockaddr_data_ipx(struct tcb *tcp, const void *const buf, + const int addrlen) { const struct sockaddr_ipx *const sa_ipx = buf; unsigned int i; @@ -399,7 +403,8 @@ print_x25_addr(const void /* struct x25_address */ *addr_void) } static void -print_sockaddr_data_x25(const void *const buf, const int addrlen) +print_sockaddr_data_x25(struct tcb *tcp, const void *const buf, + const int addrlen) { const struct sockaddr_x25 *const sa_x25 = buf; @@ -407,11 +412,11 @@ print_sockaddr_data_x25(const void *const buf, const int addrlen) } static void -print_sockaddr_data_nl(const void *const buf, const int addrlen) +print_sockaddr_data_nl(struct tcb *tcp, const void *const buf, const int addrlen) { const struct sockaddr_nl *const sa_nl = buf; - PRINT_FIELD_D("", *sa_nl, nl_pid); + PRINT_FIELD_TGID("", *sa_nl, nl_pid, tcp); PRINT_FIELD_0X(", ", *sa_nl, nl_groups); } @@ -433,8 +438,8 @@ print_sll_protocol(const struct sockaddr_ll *const sa_ll) tprints(" /* "); tprints("htons("); - printxval_search_ex(ethernet_protocols, ntohs(sa_ll->sll_protocol), - "ETH_P_???", XLAT_STYLE_ABBREV); + printxval_ex(ethernet_protocols, ntohs(sa_ll->sll_protocol), + "ETH_P_???", XLAT_STYLE_ABBREV); tprints(")"); if (x_style == XLAT_STYLE_VERBOSE) @@ -442,16 +447,17 @@ print_sll_protocol(const struct sockaddr_ll *const sa_ll) } static void -print_sockaddr_data_ll(const void *const buf, const int addrlen) +print_sockaddr_data_ll(struct tcb *tcp, const void *const buf, + const int addrlen) { const struct sockaddr_ll *const sa_ll = buf; print_sll_protocol(sa_ll); PRINT_FIELD_IFINDEX(", ", *sa_ll, sll_ifindex); tprints(", sll_hatype="); - printxval_search(arp_hardware_types, sa_ll->sll_hatype, "ARPHRD_???"); + printxval(arp_hardware_types, sa_ll->sll_hatype, "ARPHRD_???"); tprints(", sll_pkttype="); - printxval_index(af_packet_types, sa_ll->sll_pkttype, "PACKET_???"); + printxval(af_packet_types, sa_ll->sll_pkttype, "PACKET_???"); tprintf(", sll_halen=%u", sa_ll->sll_halen); if (sa_ll->sll_halen) { const unsigned int oob_halen = @@ -567,7 +573,8 @@ print_bluetooth_l2_cid_end: } static void -print_sockaddr_data_bt(const void *const buf, const int addrlen) +print_sockaddr_data_bt(struct tcb *tcp, const void *const buf, + const int addrlen) { struct sockaddr_hci { /* sa_family_t */ uint16_t hci_family; @@ -599,12 +606,21 @@ print_sockaddr_data_bt(const void *const buf, const int addrlen) }; switch (addrlen) { + case offsetofend(struct sockaddr_hci, hci_dev): case sizeof(struct sockaddr_hci): { const struct sockaddr_hci *const hci = buf; - tprintf("hci_dev=htobs(%hu), hci_channel=", - btohs(hci->hci_dev)); - printxval_index(hci_channels, hci->hci_channel, - "HCI_CHANNEL_???"); + tprintf("hci_dev=htobs(%hu)", btohs(hci->hci_dev)); + + /* + * hci_channel field has been introduced + * Linux commit in v2.6.38-rc1~476^2~14^2~3^2~43^2~9. + */ + if (addrlen == sizeof(struct sockaddr_hci)) { + tprints(", hci_channel="); + printxval(hci_channels, hci->hci_channel, + "HCI_CHANNEL_???"); + } + break; } case sizeof(struct sockaddr_sco): { @@ -630,8 +646,8 @@ print_sockaddr_data_bt(const void *const buf, const int addrlen) if (addrlen == sizeof(struct sockaddr_l2)) { tprints(", l2_bdaddr_type="); - printxval_index(bdaddr_types, l2->l2_bdaddr_type, - "BDADDR_???"); + printxval(bdaddr_types, l2->l2_bdaddr_type, + "BDADDR_???"); } break; @@ -642,7 +658,7 @@ print_sockaddr_data_bt(const void *const buf, const int addrlen) } } -typedef void (* const sockaddr_printer)(const void *const, const int); +typedef void (* const sockaddr_printer)(struct tcb *tcp, const void *const, const int); static const struct { const sockaddr_printer printer; @@ -660,12 +676,12 @@ static const struct { }; void -print_sockaddr(const void *const buf, const int addrlen) +print_sockaddr(struct tcb *tcp, const void *const buf, const int addrlen) { const struct sockaddr *const sa = buf; tprints("{sa_family="); - printxval_index(addrfams, sa->sa_family, "AF_???"); + printxval(addrfams, sa->sa_family, "AF_???"); if (addrlen > (int) SIZEOF_SA_FAMILY) { tprints(", "); @@ -673,7 +689,7 @@ print_sockaddr(const void *const buf, const int addrlen) if (sa->sa_family < ARRAY_SIZE(sa_printers) && sa_printers[sa->sa_family].printer && addrlen >= sa_printers[sa->sa_family].min_len) { - sa_printers[sa->sa_family].printer(buf, addrlen); + sa_printers[sa->sa_family].printer(tcp, buf, addrlen); } else { print_sockaddr_data_raw(buf, addrlen); } @@ -704,7 +720,7 @@ decode_sockaddr(struct tcb *const tcp, const kernel_ulong_t addr, int addrlen) memset(&addrbuf.pad[addrlen], 0, sizeof(addrbuf.pad) - addrlen); - print_sockaddr(&addrbuf, addrlen); + print_sockaddr(tcp, &addrbuf, addrlen); return addrbuf.sa.sa_family; } diff --git a/socketutils.c b/socketutils.c index d6191187..be459714 100644 --- a/socketutils.c +++ b/socketutils.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2014 Zubin Mithra * Copyright (c) 2014-2016 Dmitry V. Levin - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -21,7 +21,7 @@ #include #ifndef UNIX_PATH_MAX -# define UNIX_PATH_MAX sizeof(((struct sockaddr_un *) 0)->sun_path) +# define UNIX_PATH_MAX sizeof_field(struct sockaddr_un, sun_path) #endif #include "xstring.h" diff --git a/stage_output.c b/stage_output.c new file mode 100644 index 00000000..3bfbdba7 --- /dev/null +++ b/stage_output.c @@ -0,0 +1,75 @@ +/* + * Copyright (c) 2017 Intel Corporation + * Copyright (c) 2019 Paul Chaignon + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +/* + * open_memstream returns a FILE stream that allows writing to a + * dynamically growing buffer, that can be either copied to + * tcp->outf (syscall successful) or dropped (syscall failed) + */ + +#include "defs.h" + +struct staged_output_data { + char *memfptr; + size_t memfloc; + FILE *real_outf; /* Backup for real outf while staging */ +}; + +FILE * +strace_open_memstream(struct tcb *tcp) +{ + FILE *fp = NULL; + +#if HAVE_OPEN_MEMSTREAM + tcp->staged_output_data = xmalloc(sizeof(*tcp->staged_output_data)); + fp = open_memstream(&tcp->staged_output_data->memfptr, + &tcp->staged_output_data->memfloc); + if (!fp) + perror_msg_and_die("open_memstream"); + /* + * Call to fflush required to update tcp->memfptr, + * see open_memstream man page. + */ + fflush(fp); + + /* Store the FILE pointer for later restoration. */ + tcp->staged_output_data->real_outf = tcp->outf; + tcp->outf = fp; +#endif + + return fp; +} + +void +strace_close_memstream(struct tcb *tcp, bool publish) +{ +#if HAVE_OPEN_MEMSTREAM + if (!tcp->staged_output_data) { + debug_msg("memstream already closed"); + return; + } + + if (fclose(tcp->outf)) + perror_msg("fclose(tcp->outf)"); + + tcp->outf = tcp->staged_output_data->real_outf; + if (tcp->staged_output_data->memfptr) { + if (publish) + fputs_unlocked(tcp->staged_output_data->memfptr, + tcp->outf); + else + debug_msg("syscall output dropped: %s", + tcp->staged_output_data->memfptr); + + free(tcp->staged_output_data->memfptr); + tcp->staged_output_data->memfptr = NULL; + } + free(tcp->staged_output_data); + tcp->staged_output_data = NULL; +#endif +} diff --git a/stat.c b/stat.c index c7ad4811..de39f9d5 100644 --- a/stat.c +++ b/stat.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2005-2015 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -44,6 +44,7 @@ SYS_FUNC(newfstatat) { if (entering(tcp)) { print_dirfd(tcp, tcp->u_arg[0]); + tprints(", "); printpath(tcp, tcp->u_arg[1]); tprints(", "); } else { diff --git a/stat64.c b/stat64.c index 62584728..f7899e40 100644 --- a/stat64.c +++ b/stat64.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2005-2015 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -44,6 +44,7 @@ SYS_FUNC(fstatat64) { if (entering(tcp)) { print_dirfd(tcp, tcp->u_arg[0]); + tprints(", "); printpath(tcp, tcp->u_arg[1]); tprints(", "); } else { diff --git a/statx.c b/statx.c index 9cc30c4f..f5fb3cad 100644 --- a/statx.c +++ b/statx.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -19,6 +19,7 @@ SYS_FUNC(statx) { if (entering(tcp)) { print_dirfd(tcp, tcp->u_arg[0]); + tprints(", "); printpath(tcp, tcp->u_arg[1]); tprints(", "); @@ -48,19 +49,19 @@ SYS_FUNC(statx) if (umove_or_printaddr(tcp, tcp->u_arg[4], &stx)) return 0; - tprints("{stx_mask="); - printflags(statx_masks, stx.stx_mask, "STATX_???"); + PRINT_FIELD_FLAGS("{", stx, stx_mask, statx_masks, + "STATX_???"); if (!abbrev(tcp)) PRINT_FIELD_U(", ", stx, stx_blksize); - tprints(", stx_attributes="); - printflags(statx_attrs, stx.stx_attributes, "STATX_ATTR_???"); + PRINT_FIELD_FLAGS(", ", stx, stx_attributes, statx_attrs, + "STATX_ATTR_???"); if (!abbrev(tcp)) { PRINT_FIELD_U(", ", stx, stx_nlink); - printuid(", stx_uid=", stx.stx_uid); - printuid(", stx_gid=", stx.stx_gid); + PRINT_FIELD_UID(", ", stx, stx_uid); + PRINT_FIELD_UID(", ", stx, stx_gid); } tprints(", stx_mode="); @@ -73,11 +74,8 @@ SYS_FUNC(statx) if (!abbrev(tcp)) { PRINT_FIELD_U(", ", stx, stx_blocks); - - tprints(", stx_attributes_mask="); - printflags(statx_attrs, stx.stx_attributes_mask, - "STATX_ATTR_???"); - + PRINT_FIELD_FLAGS(", ", stx, stx_attributes_mask, + statx_attrs, "STATX_ATTR_???"); PRINT_FIELD_TIME(stx_atime); PRINT_FIELD_TIME(stx_btime); PRINT_FIELD_TIME(stx_ctime); diff --git a/strace-log-merge.1 b/strace-log-merge.1 index 2236392e..24d8b4aa 100644 --- a/strace-log-merge.1 +++ b/strace-log-merge.1 @@ -11,7 +11,7 @@ . BR "\\$1" .. .\" -.TH STRACE-LOG-MERGE 1 "2019-03-17" "strace 5.1" +.TH STRACE-LOG-MERGE 1 "2020-09-23" "strace 5.9" .\" .SH NAME strace-log-merge \- merge strace \-ff \-tt output diff --git a/strace.1 b/strace.1 index bd463f29..59472a41 100644 --- a/strace.1 +++ b/strace.1 @@ -33,30 +33,30 @@ . el \ . BR "\\$1" .. -.TH STRACE 1 "2019-03-17" "strace 5.1" +.TH STRACE 1 "2020-09-23" "strace 5.9" .SH NAME strace \- trace system calls and signals .SH SYNOPSIS .SY strace -.if ''#' .ig end_unwind_opt -.OP \-ACdffhikqrtttTvVxxy -.end_unwind_opt -.if '#'#' .ig end_no_unwind_opt -.OP \-ACdffhiqrtttTvVxxy -.end_no_unwind_opt +.if ''#' .OP \-ACdffhikqqrtttTvVwxxyyzZ +.if '#'#' .OP \-ACdffhiqqrtttTvVwxxyyzZ .OP \-I n .OP \-b execve .OM \-e expr +.OP \-O overhead +.OP \-S sortby +.OP \-U columns .OP \-a column .OP \-o file .OP \-s strsize .OP \-X format .OM \-P path .OM \-p pid +.OP \-\-seccomp\-bpf .BR "" { .OR \-p pid .BR "" | -.OP \-D +.OP \-DDD .OM \-E var\fR[=\fIval\fR] .OP \-u username .IR command " [" args ] @@ -64,24 +64,25 @@ strace \- trace system calls and signals .YS .SY strace .B \-c -.OP \-df +.OP \-dfwzZ .OP \-I n .OP \-b execve .OM \-e expr .OP \-O overhead .OP \-S sortby +.OP \-U columns .OM \-P path .OM \-p pid +.OP \-\-seccomp\-bpf .BR "" { .OR \-p pid .BR "" | -.OP \-D +.OP \-DDD .OM \-E var\fR[=\fIval\fR] .OP -u username .IR command " [" args ] .BR "" } .YS - .SH DESCRIPTION .IX "strace command" "" "\fLstrace\fR command" .LP @@ -156,9 +157,9 @@ This example shows the shell performing ">>xyzzy" output redirection: .CW open("xyzzy", O_WRONLY|O_APPEND|O_CREAT, 0666) = 3 .CE -Here, the third argument of +Here, the second and the third argument of .BR open (2) -is decoded by breaking down the +are decoded by breaking down the flag argument into its three bitwise-OR constituents and printing the mode value in octal by tradition. Where the traditional or native usage differs from ANSI or POSIX, the latter forms are preferred. @@ -217,9 +218,9 @@ on a system with supplementary group ids: .CW getgroups(32, [100, 0]) = 2 .CE -On the other hand, bit-sets are also shown using square brackets -but set elements are separated only by a space. Here is the shell, -preparing to execute an external command: +On the other hand, bit-sets are also shown using square brackets, +but set elements are separated only by a space. +Here is the shell, preparing to execute an external command: .CW sigprocmask(SIG_BLOCK, [CHLD TTOU], []) = 0 .CE @@ -233,184 +234,33 @@ sigprocmask(SIG_UNBLOCK, ~[], NULL) = 0 .CE Here, the second argument represents the full set of all signals. .SH OPTIONS -.SS Output format -.TP 12 -.BI "\-a " column -Align return values in a specific column (default column 40). -.TP -.B \-i -Print the instruction pointer at the time of the system call. -.if ''#' .ig end_unwind -.TP -.B \-k -Print the execution stack trace of the traced processes after each system call. -.end_unwind -.TP -.BI "\-o " filename -Write the trace output to the file -.I filename -rather than to stderr. -.IR filename . pid -form is used if -.B \-ff -option is supplied. -If the argument begins with '|' or '!', the rest of the -argument is treated as a command and all output is piped to it. -This is convenient for piping the debugging output to a program -without affecting the redirections of executed programs. -The latter is not compatible with -.B \-ff -option currently. -.TP -.B \-A -Open the file provided in the -.B \-o -option in append mode. -.TP -.B \-q -Suppress messages about attaching, detaching etc. This happens -automatically when output is redirected to a file and the command -is run directly instead of attaching. -.TP -.B \-qq -If given twice, suppress messages about process exit status. -.TP -.B \-r -Print a relative timestamp upon entry to each system call. This -records the time difference between the beginning of successive -system calls. -Note that since -.B \-r -option uses the monotonic clock time for measuring time difference and not the -wall clock time, its measurements can differ from the difference in time -reported by the -.B \-t -option. -.TP -.BI "\-s " strsize -Specify the maximum string size to print (the default is 32). Note -that filenames are not considered strings and are always printed in -full. -.TP -.B \-t -Prefix each line of the trace with the wall clock time. -.TP -.B \-tt -If given twice, the time printed will include the microseconds. -.TP -.B \-ttt -If given thrice, the time printed will include the microseconds -and the leading portion will be printed as the number -of seconds since the epoch. -.TP -.B \-T -Show the time spent in system calls. This records the time -difference between the beginning and the end of each system call. -.TP -.B \-x -Print all non-ASCII strings in hexadecimal string format. -.TP -.B \-xx -Print all strings in hexadecimal string format. -.TP -.BI "\-X " format -Set the format for printing of named constants and flags. -Supported -.I format -values are: -.RS -.TP 10 -.B raw -Raw number output, without decoding. -.TP -.B abbrev -Output a named constant or a set of flags instead of the raw number if they are -found. -This is the default -.B strace -behaviour. -.TP -.B verbose -Output both the raw value and the decoded string (as a comment). -.RE -.TP -.B \-y -Print paths associated with file descriptor arguments. -.TP -.B \-yy -Print protocol specific information associated with socket file descriptors, -and block/character device number associated with device file descriptors. -.SS Statistics -.TP 12 -.B \-c -Count time, calls, and errors for each system call and report a summary on -program exit, suppressing the regular output. -This attempts to show system time (CPU time spent running -in the kernel) independent of wall clock time. If -.B \-c -is used with -.BR \-f , -only aggregate totals for all traced processes are kept. -.TP -.B \-C -Like -.B \-c -but also print regular output while processes are running. -.TP -.BI "\-O " overhead -Set the overhead for tracing system calls to -.I overhead -microseconds. -This is useful for overriding the default heuristic for guessing -how much time is spent in mere measuring when timing system calls using -the -.B \-c -option. The accuracy of the heuristic can be gauged by timing a given -program run without tracing (using -.BR time (1)) -and comparing the accumulated -system call time to the total produced using -.BR \-c . -.TP -.BI "\-S " sortby -Sort the output of the histogram printed by the -.B \-c -option by the specified criterion. Legal values are -.BR time , -.BR calls , -.BR name , -and -.B nothing -(default is -.BR time ). -.TP -.B \-w -Summarise the time difference between the beginning and end of -each system call. The default is to summarise the system time. -.SS Filtering +.SS General .TP 12 .BI "\-e " expr A qualifying expression which modifies which events to trace or how to trace them. The format of the expression is: .RS 15 .IP -[\,\fIqualifier\/\fB=\fR][\fB!\fR][\fB?\fR]\,\fIvalue1\/\fR[\fB,\fR[\fB?\fR]\,\fIvalue2\/\fR]... +[\,\fIqualifier\/\fB=\fR][\fB!\fR]\,\fIvalue\/\fR[\fB,\fR\,\fIvalue\/\fR]... .RE .IP where .I qualifier is one of -.BR trace , -.BR abbrev , -.BR verbose , -.BR raw , -.BR signal , -.BR read , -.BR write , +.BR trace " (or " t ), +.BR abbrev " (or " a ), +.BR verbose " (or " v ), +.BR raw " (or " x ), +.BR signal " (or " signals " or " s ), +.BR read " (or " reads " or " r ), +.BR write " (or " writes " or " w ), .BR fault , .BR inject , +.BR status , +.BR quiet " (or " silent " or " silence " or " q ), +.BR decode\-fds " (or " decode\-fd ), or -.B kvm +.BR kvm , and .I value is a qualifier-dependent symbol or number. The default @@ -426,11 +276,6 @@ system call. By contrast, .BR \-e "\ " trace "=!" open means to trace every system call except .BR open . -Question mark before the syscall qualification allows suppression of error -in case no syscalls matched the qualification provided. -Appending one of "@64", "@32", or "@x32" suffixes to the syscall qualification -allows specifying syscalls only for the 64-bit, 32-bit, or 32-on-64-bit -personality, respectively. In addition, the special values .B all and @@ -440,104 +285,325 @@ have the obvious meanings. Note that some shells use the exclamation point for history expansion even inside quoted arguments. If so, you must escape the exclamation point with a backslash. +.SS Startup +.TP 12 +\fB\-E\ \fIvar\fR=\,\fIval\fR +.TQ +.BR "\-\-env" = \fIvar\fR = \fIval\fR +Run command with +.IR var = val +in its list of environment variables. .TP -\fB\-e\ trace\fR=\,\fIset\fR -Trace only the specified set of system calls. The -.B \-c -option is useful for determining which system calls might be useful -to trace. For example, -.BR trace = open,close,read,write -means to only -trace those four system calls. Be careful when making inferences -about the user/kernel boundary if only a subset of system calls -are being monitored. The default is -.BR trace = all . -.TP -\fB\-e\ trace\fR=/\,\fIregex\fR -Trace only those system calls that match the -.IR regex . -You can use -.B POSIX -Extended Regular Expression syntax (see -.BR regex (7)). -.TP -.BR "\-e\ trace" = %file +.BI "\-E " var .TQ -.BR "\-e\ trace" = file " (deprecated)" -Trace all system calls which take a file name as an argument. You -can think of this as an abbreviation for -.BR "\-e\ trace" = open , stat , chmod , unlink ,... -which is useful to seeing what files the process is referencing. -Furthermore, using the abbreviation will ensure that you don't -accidentally forget to include a call like -.BR lstat (2) -in the list. Betchya woulda forgot that one. +.BR "\-\-env" = \fIvar\fR +Remove +.IR var +from the inherited list of environment variables before passing it on to +the command. .TP -.BR "\-e\ trace" = %process +.BI "\-p " pid .TQ -.BR "\-e\ trace" = process " (deprecated)" -Trace all system calls which involve process management. This -is useful for watching the fork, wait, and exec steps of a process. +.BR "\-\-attach" = \fIpid\fR +Attach to the process with the process +.SM ID +.I pid +and begin tracing. +The trace may be terminated +at any time by a keyboard interrupt signal +.RB ( CTRL\-C ). +.B strace +will respond by detaching itself from the traced process(es) +leaving it (them) to continue running. +Multiple +.B \-p +options can be used to attach to many processes in addition to +.I command +(which is optional if at least one +.B \-p +option is given). +.B \-p +"`pidof PROG`" syntax is supported. .TP -.BR "\-e\ trace" = %net +.BI "\-u " username .TQ -.BR "\-e\ trace" = %network +.BR "\-\-user" = \fIusername\fR +Run command with the user \s-1ID\s0, group \s-2ID\s0, and +supplementary groups of +.IR username . +This option is only useful when running as root and enables the +correct execution of setuid and/or setgid binaries. +Unless this option is used setuid and setgid programs are executed +without effective privileges. +.SS Tracing +.TP 12 +.BI "\-b " syscall .TQ -.BR "\-e\ trace" = network " (deprecated)" -Trace all the network related system calls. +.BR "\-\-detach\-on" = \fIsyscall\fR +If specified syscall is reached, detach from traced process. +Currently, only +.BR execve (2) +syscall is supported. This option is useful if you want to trace +multi-threaded process and therefore require +.BR \-f , +but don't want to trace its (potentially very complex) children. .TP -.BR "\-e\ trace" = %signal +.B \-D .TQ -.BR "\-e\ trace" = signal " (deprecated)" -Trace all signal related system calls. -.TP -.BR "\-e\ trace" = %ipc +.B \-\-daemonize .TQ -.BR "\-e\ trace" = ipc " (deprecated)" -Trace all IPC related system calls. +.BR \-\-daemonize = grandchild +Run tracer process as a grandchild, not as the parent of the +tracee. This reduces the visible effect of +.B strace +by keeping the tracee a direct child of the calling process. .TP -.BR "\-e\ trace" = %desc +.B \-DD .TQ -.BR "\-e\ trace" = desc " (deprecated)" -Trace all file descriptor related system calls. +.BR \-\-daemonize = pgroup +.TQ +.BR \-\-daemonize = pgrp +Run tracer process as tracee's grandchild in a separate process group. +In addition to reduction of the visible effect of +.BR strace , +it also avoids killing of +.B strace +with +.BR kill (2) +issued to the whole process group. .TP -.BR "\-e\ trace" = %memory +.B \-DDD .TQ -.BR "\-e\ trace" = memory " (deprecated)" -Trace all memory mapping related system calls. +.BR \-\-daemonize = session +Run tracer process as tracee's grandchild in a separate session +("true daemonisation"). +In addition to reduction of the visible effect of +.BR strace , +it also avoids killing of +.B strace +upon session termination. .TP -.BR "\-e\ trace" = %stat -Trace stat syscall variants. +.B \-f +.TQ +.BR \-\-follow\-forks +Trace child processes as they are created by currently traced +processes as a result of the +.BR fork (2), +.BR vfork (2) +and +.BR clone (2) +system calls. Note that +.B \-p +.I PID +.B \-f +will attach all threads of process +.I PID +if it is multi-threaded, not only thread with +.IR thread_id " = " PID . .TP -.BR "\-e\ trace" = %lstat -Trace lstat syscall variants. +.B \-\-output\-separately +If the +.BR \-\-output = \fIfilename\fR +option is in effect, each processes trace is written to +.IR filename . pid +where +.I pid +is the numeric process id of each process. .TP -.BR "\-e\ trace" = %fstat -Trace fstat and fstatat syscall variants. +.B \-ff +.TQ +.B \-\-follow\-forks \-\-output\-separately +Combine the effects of +.B \-\-follow\-forks +and +.B \-\-output\-separately +options. +This is incompatible with +.BR \-c , +since no per-process counts are kept. +.IP +One might want to consider using +.BR strace-log-merge (1) +to obtain a combined strace log view. .TP -.BR "\-e\ trace" = %%stat +.BI "\-I " interruptible +.TQ +.BR "\-\-interruptible" = \fIinterruptible\fR +When +.B strace +can be interrupted by signals (such as pressing +.BR CTRL\-C ). +.RS +.TP 15 +.BR 1 ", " anywhere +no signals are blocked; +.TQ +.BR 2 ", " waiting +fatal signals are blocked while decoding syscall (default); +.TQ +.BR 3 ", " never +fatal signals are always blocked (default if +.BR -o " " \fIFILE\fR " " \fIPROG\fR ); +.TQ +.BR 4 ", " never_tstp +fatal signals and +.BR SIGTSTP " (" CTRL\-Z ) +are always blocked (useful to make +.BI "strace -o " "FILE PROG" +not stop on +.BR CTRL\-Z , +default if +.BR \-D ). +.RE +.SS Filtering +.TP 12 +\fB\-e\ trace\fR=\,\fIsyscall_set\fR +.TQ +\fB\-\-trace\fR=\,\fIsyscall_set\fR +Trace only the specified set of system calls. +.I syscall_set +is defined as +[\fB!\fR]\,\fIvalue\fR[\fB,\fR\,\fIvalue\/\fR], +and +.I value +can be one of the following: +.RS +.TP 13 +.I syscall +Trace specific syscall, specified by its name (but see +.BR NOTES ). +.TP +.BI ? value +Question mark before the syscall qualification allows suppression of error +in case no syscalls matched the qualification provided. +.TP +.BI / regex +Trace only those system calls that match the +.IR regex . +You can use +.B POSIX +Extended Regular Expression syntax (see +.BR regex (7)). +.TP +.IB syscall @64 +Trace +.I syscall +only for the 64-bit personality. +.TP +.IB syscall @32 +Trace +.I syscall +only for the 32-bit personality. +.TP +.IB syscall @x32 +Trace +.I syscall +only for the 32-on-64-bit personality. +.TP +.B %file +.TQ +.BR file +Trace all system calls which take a file name as an argument. You +can think of this as an abbreviation for +.BR "\-e\ trace" = open , stat , chmod , unlink ,... +which is useful to seeing what files the process is referencing. +Furthermore, using the abbreviation will ensure that you don't +accidentally forget to include a call like +.BR lstat (2) +in the list. Betchya woulda forgot that one. +The syntax without a preceding percent sign +.RB (\[dq] "-e trace" = file \[dq]) +is deprecated. +.TP +.B %process +.TQ +.B process +Trace system calls associated with process lifecycle +(creation, exec, termination). +The syntax without a preceding percent sign +.RB (\[dq] "-e trace" = process \[dq]) +is deprecated. +.TP +.B %net +.TQ +.B %network +.TQ +.B network +Trace all the network related system calls. +The syntax without a preceding percent sign +.RB (\[dq] "-e trace" = network \[dq]) +is deprecated. +.TP +.BR %signal +.TQ +.BR signal +Trace all signal related system calls. +The syntax without a preceding percent sign +.RB (\[dq] "-e trace" = signal \[dq]) +is deprecated. +.TP +.BR %ipc +.TQ +.BR ipc +Trace all IPC related system calls. +The syntax without a preceding percent sign +.RB (\[dq] "-e trace" = ipc \[dq]) +is deprecated. +.TP +.BR %desc +.TQ +.BR desc +Trace all file descriptor related system calls. +The syntax without a preceding percent sign +.RB (\[dq] "-e trace" = desc \[dq]) +is deprecated. +.TP +.BR %memory +.TQ +.BR memory +Trace all memory mapping related system calls. +The syntax without a preceding percent sign +.RB (\[dq] "-e trace" = memory \[dq]) +is deprecated. +.TP +.BR %creds +Trace system calls that read or modify user and group identifiers or capability sets. +.TP +.BR %stat +Trace stat syscall variants. +.TP +.BR %lstat +Trace lstat syscall variants. +.TP +.BR %fstat +Trace fstat, fstatat, and statx syscall variants. +.TP +.BR %%stat Trace syscalls used for requesting file status (stat, lstat, fstat, fstatat, statx, and their variants). .TP -.BR "\-e\ trace" = %statfs +.BR %statfs Trace statfs, statfs64, statvfs, osf_statfs, and osf_statfs64 system calls. The same effect can be achieved with .BR "\-e\ trace" = /^(.*_)?statv?fs regular expression. .TP -.BR "\-e\ trace" = %fstatfs +.BR %fstatfs Trace fstatfs, fstatfs64, fstatvfs, osf_fstatfs, and osf_fstatfs64 system calls. The same effect can be achieved with .BR "\-e\ trace" = /fstatv?fs regular expression. .TP -.BR "\-e\ trace" = %%statfs +.BR %%statfs Trace syscalls related to file system statistics (statfs-like, fstatfs-like, and ustat). The same effect can be achieved with .BR "\-e\ trace" = /statv?fs|fsstat|ustat regular expression. .TP -.BR "\-e\ trace" = %pure +.BR %clock +Trace system calls that read or modify system clocks. +.TP +.BR %pure Trace syscalls that always succeed and have no arguments. Currently, this list includes .BR arc_gettls "(2), " getdtablesize "(2), " getegid "(2), " getegid32 "(2)," @@ -549,9 +615,121 @@ Currently, this list includes .BR getxgid "(2), " getxpid "(2), " getxuid "(2), " kern_features "(2), and" .BR metag_get_tls "(2)" syscalls. +.RE +.IP +The +.B \-c +option is useful for determining which system calls might be useful +to trace. For example, +.BR trace = open,close,read,write +means to only +trace those four system calls. Be careful when making inferences +about the user/kernel boundary if only a subset of system calls +are being monitored. The default is +.BR trace = all . +.TP +\fB\-e\ signal\fR=\,\fIset\fR +.TQ +\fB\-\-signal\fR=\,\fIset\fR +Trace only the specified subset of signals. The default is +.BR signal = all . +For example, +.BR signal "=!" SIGIO +(or +.BR signal "=!" io ) +causes +.B SIGIO +signals not to be traced. +.TP +\fB\-e\ status\fR=\,\fIset\fR +.TQ +\fB\-\-status\fR=\,\fIset\fR +Print only system calls with the specified return status. The default is +.BR status = all . +When using the +.B status +qualifier, because +.B strace +waits for system calls to return before deciding whether they should be printed +or not, the traditional order of events may not be preserved anymore. If two +system calls are executed by concurrent threads, +.B strace +will first print both the entry and exit of the first system call to exit, +regardless of their respective entry time. The entry and exit of the second +system call to exit will be printed afterwards. Here is an example when +.BR select (2) +is called, but a different thread calls +.BR clock_gettime (2) +before +.BR select (2) +finishes: +.CW +[pid 28779] 1130322148.939977 clock_gettime(CLOCK_REALTIME, {1130322148, 939977000}) = 0 +[pid 28772] 1130322148.438139 select(4, [3], NULL, NULL, NULL) = 1 (in [3]) +.CE +.I set +can include the following elements: +.RS +.TP 13 +.B successful +Trace system calls that returned without an error code. +The +.B -z +option has the effect of +.BR status = successful . +.TQ +.B failed +Trace system calls that returned with an error code. +The +.B -Z +option has the effect of +.BR status = failed . +.TQ +.B unfinished +Trace system calls that did not return. This might happen, for example, due to +an execve call in a neighbour thread. +.TQ +.B unavailable +Trace system calls that returned but strace failed to fetch the error status. +.TQ +.B detached +Trace system calls for which strace detached before the return. +.RE +.TP +.BI "\-P " path +.TQ +.BR "\-\-trace\-path" = \fIpath\fR +Trace only system calls accessing +.IR path . +Multiple +.B \-P +options can be used to specify several paths. +.TP +.B \-z +.TQ +.B \-\-successful\-only +Print only syscalls that returned without an error code. +.TP +.B \-Z +.TQ +.B \-\-failed\-only +Print only syscalls that returned with an error code. +.SS Output format +.TP 12 +.BI "\-a " column +.TQ +.BR "\-\-columns" = \fIcolumn\fR +Align return values in a specific column (default column 40). .TP -\fB\-e\ abbrev\fR=\,\fIset\fR +\fB\-e\ abbrev\fR=\,\fIsyscall_set\fR +.TQ +\fB\-\-abbrev\fR=\,\fIsyscall_set\fR Abbreviate the output from printing each member of large structures. +The syntax of the +.I syscall_set +specification is the same as in the +.B "-e trace" +option. The default is .BR abbrev = all . The @@ -559,13 +737,27 @@ The option has the effect of .BR abbrev = none . .TP -\fB\-e\ verbose\fR=\,\fIset\fR -Dereference structures for the specified set of system calls. The -default is +\fB\-e\ verbose\fR=\,\fIsyscall_set\fR +.TQ +\fB\-\-verbose\fR=\,\fIsyscall_set\fR +Dereference structures for the specified set of system calls. +The syntax of the +.I syscall_set +specification is the same as in the +.B "-e trace" +option. +The default is .BR verbose = all . .TP -\fB\-e\ raw\fR=\,\fIset\fR +\fB\-e\ raw\fR=\,\fIsyscall_set\fR +.TQ +\fB\-\-raw\fR=\,\fIsyscall_set\fR Print raw, undecoded arguments for the specified set of system calls. +The syntax of the +.I syscall_set +specification is the same as in the +.B "-e trace" +option. This option has the effect of causing all arguments to be printed in hexadecimal. This is mostly useful if you don't trust the decoding or you need to know the actual numeric value of an @@ -574,48 +766,443 @@ See also .B \-X raw option. .TP -\fB\-e\ signal\fR=\,\fIset\fR -Trace only the specified subset of signals. The default is -.BR signal = all . -For example, -.BR signal "=!" SIGIO -(or -.BR signal "=!" io ) -causes -.B SIGIO -signals not to be traced. +\fB\-e\ read\fR=\,\fIset\fR +.TQ +\fB\-\-read\fR=\,\fIset\fR +Perform a full hexadecimal and ASCII dump of all the data read from +file descriptors listed in the specified set. For example, to see +all input activity on file descriptors +.I 3 +and +.I 5 +use +\fB\-e\ read\fR=\,\fI3\fR,\fI5\fR. +Note that this is independent from the normal tracing of the +.BR read (2) +system call which is controlled by the option +.BR -e "\ " trace = read . +.TP +\fB\-e\ write\fR=\,\fIset\fR +.TQ +\fB\-\-write\fR=\,\fIset\fR +Perform a full hexadecimal and ASCII dump of all the data written to +file descriptors listed in the specified set. For example, to see +all output activity on file descriptors +.I 3 +and +.I 5 +use +\fB\-e\ write\fR=\,\fI3\fR,\,\fI5\fR. +Note that this is independent from the normal tracing of the +.BR write (2) +system call which is controlled by the option +.BR -e "\ " trace = write . +.TP +\fB\-e\ quiet\fR=\,\fIset\fR +.TQ +\fB\-\-quiet\fR=\,\fIset\fR +.TQ +\fB\-\-silent\fR=\,\fIset\fR +.TQ +\fB\-\-silence\fR=\,\fIset\fR +Suppress various information messages. The default is +.BR quiet = none . +.I set +can include the following elements: +.RS +.TP 17 +.B attach +Suppress messages about attaching and detaching +.RB (\[dq] "[ Process NNNN attached ]" "\[dq]," +.RB "\[dq]" "[ Process NNNN detached ]" "\[dq])." +.TQ +.B exit +Suppress messages about process exits +.RB (\[dq] "+++ exited with SSS +++" \[dq]). +.TQ +.B path-resolution +Suppress messages about resolution of paths provided via the +.B \-P +option +.RB (\[dq] "Requested path \[dq]...\[dq] resolved into \[dq]...\[dq]" \[dq]). +.TQ +.B personality +Suppress messages about process personality changes +.RB (\[dq] "[ Process PID=NNNN runs in PPP mode. ]" \[dq]). +.TQ +.B thread-execve +.TQ +.B superseded +Suppress messages about process being superseded by +.BR execve (2) +in another thread +.RB (\[dq] "+++ superseded by execve in pid NNNN +++" \[dq]). +.RE +.TP +\fB\-e\ decode\-fds\fR=\,\fIset\fR +.TQ +\fB\-\-decode\-fds\fR=\,\fIset\fR +Decode various information associated with file descriptors. The default is +.BR decode\-fds = none . +.I set +can include the following elements: +.RS +.TP 8 +.B path +Print file paths. +.TQ +.B socket +Print socket protocol-specific information, +.TQ +.B dev +Print character/block device numbers. +.TQ +.B pidfd +Print PIDs associated with pidfd file descriptors. +.RE +.TP +.BR "\-e\ kvm" = vcpu +.TQ +.BR "\-\-kvm" = vcpu +Print the exit reason of kvm vcpu. Requires Linux kernel version 4.16.0 +or higher. +.TP +.B \-i +.TQ +.B \-\-instruction\-pointer +Print the instruction pointer at the time of the system call. +.TP +.B \-n +.TQ +.B \-\-syscall\-number +Print the syscall number. +.if ''#' .TP +.if ''#' .B \-k +.if ''#' .TQ +.if ''#' .B \-\-stack\-traces +.if ''#' Print the execution stack trace of the traced +.if ''#' processes after each system call. +.TP +.BI "\-o " filename +.TQ +.BR "\-\-output" = \fIfilename\fR +Write the trace output to the file +.I filename +rather than to stderr. +.IR filename . pid +form is used if +.B \-ff +option is supplied. +If the argument begins with '|' or '!', the rest of the +argument is treated as a command and all output is piped to it. +This is convenient for piping the debugging output to a program +without affecting the redirections of executed programs. +The latter is not compatible with +.B \-ff +option currently. +.TP +.B \-A +.TQ +.B \-\-output\-append\-mode +Open the file provided in the +.B \-o +option in append mode. +.TP +.B \-q +.TQ +.B \-\-quiet +.TQ +.BR \-\-quiet = attach , personality +Suppress messages about attaching, detaching, and personality changes. +This happens automatically when output is redirected to a file +and the command is run directly instead of attaching. +.TP +.B \-qq +.TQ +.BR \-\-quiet = attach , personality , exit +Suppress messages attaching, detaching, personality changes, +and about process exit status. +.TP +.B \-qqq +.TQ +.BR \-\-quiet = all +Suppress all suppressible messages (please refer to the +.B -e quiet +option description for the full list of suppressible messages). +.TP +.B \-r +.TQ +.BR \-\-relative\-timestamps [= \fIprecision\fR ] +Print a relative timestamp upon entry to each system call. This +records the time difference between the beginning of successive +system calls. +.I precision +can be one of +.BR s " (for seconds), " ms " (milliseconds), " us " (microseconds), or " ns +(nanoseconds), and allows setting the precision of time value being printed. +Default is +.B us +(microseconds). +Note that since +.B \-r +option uses the monotonic clock time for measuring time difference and not the +wall clock time, its measurements can differ from the difference in time +reported by the +.B \-t +option. +.TP +.BI "\-s " strsize +.TQ +.BR "\-\-string\-limit" = \fIstrsize\fR +Specify the maximum string size to print (the default is 32). Note +that filenames are not considered strings and are always printed in +full. +.TP +.BR \-\-absolute\-timestamps [=[[ format: ] \fIformat\fR ],[[ precision: ] \fIprecision ]] +.TQ +.BR \-\-timestamps [=[[ format: ] \fIformat\fR ],[[ precision: ] \fIprecision ]] +Prefix each line of the trace with the wall clock time in the specified +.I format +with the specified +.IR precision . +.I format +can be one of the following: +.RS +.TP 14 +.B none +No time stamp is printed. +Can be used to override the previous setting. +.TQ +.B time +Wall clock time +.RB ( strftime (3) +format string is +.BR %T ). +.TQ +.B unix +Number of seconds since the epoch +.RB ( strftime (3) +format string is +.BR %s ). +.RE +.IP +.I precision +can be one of +.BR s " (for seconds), " ms " (milliseconds), " us " (microseconds), or " ns +(nanoseconds). +Default arguments for the option are +.BR format:time , precision:s . +.TP +.B \-t +.TQ +.B \-\-absolute\-timestamps +Prefix each line of the trace with the wall clock time. +.TP +.B \-tt +.TQ +.BR \-\-absolute\-timestamps = precision:us +If given twice, the time printed will include the microseconds. +.TP +.B \-ttt +.TQ +.BR \-\-absolute\-timestamps = format:unix , precision:us +If given thrice, the time printed will include the microseconds +and the leading portion will be printed as the number +of seconds since the epoch. +.TP +.B \-T +.TQ +.BR \-\-syscall\-times [= \fIprecision\fR ] +Show the time spent in system calls. This records the time +difference between the beginning and the end of each system call. +.I precision +can be one of +.BR s " (for seconds), " ms " (milliseconds), " us " (microseconds), or " ns +(nanoseconds), and allows setting the precision of time value being printed. +Default is +.B us +(microseconds). +.TP +.B \-v +.TQ +.B \-\-no\-abbrev +Print unabbreviated versions of environment, stat, termios, etc. +calls. These structures are very common in calls and so the default +behavior displays a reasonable subset of structure members. Use +this option to get all of the gory details. +.TP +.B \-x +.TQ +.BR \-\-strings\-in\-hex = \fInon\-ascii\fR +Print all non-ASCII strings in hexadecimal string format. +.TP +.B \-xx +.TQ +.B \-\-strings\-in\-hex +.TQ +.BR \-\-strings\-in\-hex = \fIall\fR +Print all strings in hexadecimal string format. +.TP +.BI "\-X " format +.TQ +.BR "\-\-const\-print\-style" = \fIformat\fR +Set the format for printing of named constants and flags. +Supported +.I format +values are: +.RS +.TP 10 +.B raw +Raw number output, without decoding. +.TQ +.B abbrev +Output a named constant or a set of flags instead of the raw number if they are +found. +This is the default +.B strace +behaviour. +.TQ +.B verbose +Output both the raw value and the decoded string (as a comment). +.RE +.TP +.B \-y +.TQ +.B \-\-decode\-fds +.TQ +.BR \-\-decode\-fds = path +Print paths associated with file descriptor arguments. +.TP +.B \-yy +.TQ +.BR \-\-decode\-fds = all +Print all available information associated with file descritors: +protocol-specific information associated with socket file descriptors, +block/character device number associated with device file descriptors, +and PIDs asociated with pidfd file descriptors. +.TP +.B \-\-pidns\-translation +If strace and tracee are in different PID namespaces, print PIDs in +strace's namespace, too. +.SS Statistics +.TP 12 +.B \-c +.TQ +.B \-\-summary\-only +Count time, calls, and errors for each system call and report a summary on +program exit, suppressing the regular output. +This attempts to show system time (CPU time spent running +in the kernel) independent of wall clock time. If +.B \-c +is used with +.BR \-f , +only aggregate totals for all traced processes are kept. +.TP +.B \-C +.TQ +.B \-\-summary +Like +.B \-c +but also print regular output while processes are running. +.TP +.BI "\-O " overhead +.TQ +.BR "\-\-summary\-syscall\-overhead " = \fIoverhead\fR +Set the overhead for tracing system calls to +.IR overhead . +This is useful for overriding the default heuristic for guessing +how much time is spent in mere measuring when timing system calls using +the +.B \-c +option. The accuracy of the heuristic can be gauged by timing a given +program run without tracing (using +.BR time (1)) +and comparing the accumulated +system call time to the total produced using +.BR \-c . +.IP +The format of +.I overhead +specification is described in section +.IR "Time specification format description". .TP -\fB\-e\ read\fR=\,\fIset\fR -Perform a full hexadecimal and ASCII dump of all the data read from -file descriptors listed in the specified set. For example, to see -all input activity on file descriptors -.I 3 +.BI "\-S " sortby +.TQ +.BR "\-\-summary\-sort\-by" = \fIsortby\fR +Sort the output of the histogram printed by the +.B \-c +option by the specified criterion. Legal values are +.BR time " (or " time\-percent " or " time\-total " or " total\-time ), +.BR min\-time " (or " shortest " or " time\-min ), +.BR max\-time " (or " longest " or " time\-max ), +.BR avg\-time " (or " time\-avg ), +.BR calls " (or " count ), +.BR errors " (or " error ), +.BR name " (or " syscall " or " syscall\-name ), and -.I 5 -use -\fB\-e\ read\fR=\,\fI3\fR,\fI5\fR. -Note that this is independent from the normal tracing of the -.BR read (2) -system call which is controlled by the option -.BR -e "\ " trace = read . +.BR nothing " (or " none ); +default is +.BR time . .TP -\fB\-e\ write\fR=\,\fIset\fR -Perform a full hexadecimal and ASCII dump of all the data written to -file descriptors listed in the specified set. For example, to see -all output activity on file descriptors -.I 3 -and -.I 5 -use -\fB\-e\ write\fR=\,\fI3\fR,\,\fI5\fR. -Note that this is independent from the normal tracing of the -.BR write (2) -system call which is controlled by the option -.BR -e "\ " trace = write . +.BI "\-U " columns +.TQ +.BR "\-\-summary\-columns" = \fIcolumns\fR +Configure a set (and order) of columns being shown in the call summary. +The +.I columns +argument is a comma-separated list with items being one of the following: +.RS +.TP 36 +.BR time\-percent " (or " time ) +Percentage of cumulative time consumed by a specific system call. +.TQ +.BR total\-time " (or " time\-total ) +Total system (or wall clock, if +.B \-w +option is provided) time consumed by a specific system call. +.TQ +.BR min\-time " (or " shortest " or " time\-min ) +Minimum observed call duration. +.TQ +.BR max\-time " (or " longest " or " time\-max ) +Maximum observed call duration. +.TQ +.BR avg\-time " (or " time\-avg ) +Average call duration. +.TQ +.BR calls " (or " count ) +Call count. +.TQ +.BR errors " (or " error ) +Error count. +.TQ +.BR name " (or " syscall " or " syscall\-name ) +Syscall name. +.RE +.IP +The default value is +.BR time\-percent , total\-time , avg\-time , calls , errors , name . +If the +.B name +field is not supplied explicitly, it is added as the last column. .TP -\fB\-e\ inject\fR=\,\fIset\/\fR[:\fBerror\fR=\,\fIerrno\/\fR|:\fBretval\fR=\,\fIvalue\/\fR][:\fBsignal\fR=\,\fIsig\/\fR][:\fBsyscall\fR=\fIsyscall\fR][:\fBdelay_enter\fR=\,\fIusecs\/\fR][:\fBdelay_exit\fR=\,\fIusecs\/\fR][:\fBwhen\fR=\,\fIexpr\/\fR] +.B \-w +.TQ +.B \-\-summary\-wall\-clock +Summarise the time difference between the beginning and end of +each system call. The default is to summarise the system time. +.SS Tampering +.TP 12 +\fB\-e\ inject\fR=\,\fIsyscall_set\/\fR[:\fBerror\fR=\,\fIerrno\/\fR|:\fBretval\fR=\,\fIvalue\/\fR][:\fBsignal\fR=\,\fIsig\/\fR][:\fBsyscall\fR=\fIsyscall\fR][:\fBdelay_enter\fR=\,\fIdelay\/\fR][:\fBdelay_exit\fR=\,\fIdelay\/\fR][:\fBwhen\fR=\,\fIexpr\/\fR] +.TQ +\fB\-\-inject\fR=\,\fIsyscall_set\/\fR[:\fBerror\fR=\,\fIerrno\/\fR|:\fBretval\fR=\,\fIvalue\/\fR][:\fBsignal\fR=\,\fIsig\/\fR][:\fBsyscall\fR=\fIsyscall\fR][:\fBdelay_enter\fR=\,\fIdelay\/\fR][:\fBdelay_exit\fR=\,\fIdelay\/\fR][:\fBwhen\fR=\,\fIexpr\/\fR] Perform syscall tampering for the specified set of syscalls. - +The syntax of the +.I syscall_set +specification is the same as in the +.B "-e trace" +option. +.IP At least one of .BR error , .BR retval , @@ -628,7 +1215,7 @@ options has to be specified. and .B retval are mutually exclusive. - +.IP If :\fBerror\fR=\,\fIerrno\/\fR option is specified, a fault is injected into a syscall invocation: the syscall number is replaced by -1 which corresponds to an invalid syscall @@ -638,24 +1225,28 @@ and the error code is specified using a symbolic value like .B ENOSYS or a numeric value within 1..4095 range. - +.IP If :\fBretval\fR=\,\fIvalue\/\fR option is specified, success injection is performed: the syscall number is replaced by -1, but a bogus success value is returned to the callee. - +.IP If :\fBsignal\fR=\,\fIsig\/\fR option is specified with either a symbolic value like .B SIGSEGV or a numeric value within 1..\fBSIGRTMAX\fR range, that signal is delivered on entering every syscall specified by the .IR set . - -If :\fBdelay_enter\fR=\,\fIusecs\/\fR or :\fBdelay_exit\fR=\,\fIusecs\/\fR +.IP +If :\fBdelay_enter\fR=\,\fIdelay\/\fR or :\fBdelay_exit\fR=\,\fIdelay\/\fR options are specified, delay injection is performed: the tracee is delayed -by at least -.IR usecs -microseconds on entering or exiting the syscall. - +by time period specified by +.IR delay +on entering or exiting the syscall, respectively. +The format of +.I delay +specification is described in section +.IR "Time specification format description". +.IP If :\fBsignal\fR=\,\fIsig\/\fR option is specified without :\fBerror\fR=\,\fIerrno\/\fR, :\fBretval\fR=\,\fIvalue\/\fR or :\fBdelay_{enter,exit}\fR=\,\fIusecs\/\fR options, @@ -664,48 +1255,74 @@ then only a signal is delivered without a syscall fault or delay injection. Conversely, :\fBerror\fR=\,\fIerrno\/\fR or :\fBretval\fR=\,\fIvalue\/\fR option without -:\fBdelay_enter\fR=\,\fIusecs\/\fR, -:\fBdelay_exit\fR=\,\fIusecs\/\fR or +:\fBdelay_enter\fR=\,\fIdelay\/\fR, +:\fBdelay_exit\fR=\,\fIdelay\/\fR or :\fBsignal\fR=\,\fIsig\/\fR options injects a fault without delivering a signal or injecting a delay, etc. - +.IP If both :\fBerror\fR=\,\fIerrno\/\fR or :\fBretval\fR=\,\fIvalue\/\fR and :\fBsignal\fR=\,\fIsig\/\fR options are specified, then both a fault or success is injected and a signal is delivered. - +.IP if :\fBsyscall\fR=\fIsyscall\fR option is specified, the corresponding syscall with no side effects is injected instead of -1. Currently, only "pure" (see .BR "-e trace" = "%pure" description) syscalls can be specified there. - +.IP Unless a :\fBwhen\fR=\,\fIexpr\fR subexpression is specified, an injection is being made into every invocation of each syscall from the .IR set . - -The format of the subexpression is one of the following: +.IP +The format of the subexpression is: +.RS 15 +.IP +\fIfirst\/\fR[\fB..\fR\,\fIlast\/\fR][\fB+\fR[\,\fIstep\/\fR]] +.RE +.IP +Number +.I first +stands for the first invocation number in the range, number +.I last +stands for the last invocation number in the range, and +.I step +stands for the step between two consecutive invocations. +The following combinations are useful: .RS -.IP "" 2 +.TP 18 .I first -.RS 4 For every syscall from the .IR set , perform an injection for the syscall invocation number .I first only. -.RE -.IP "" 2 +.TQ +\fIfirst\/\fB..\fR\,\fIlast\fR +For every syscall from the +.IR set , +perform an injection for the syscall invocation number +.I first +and all subsequent invocations until the invocation number +.I last +(inclusive). +.TQ \fIfirst\/\fB+\fR -.RS 4 For every syscall from the .IR set , perform injections for the syscall invocation number .I first and all subsequent invocations. -.RE -.IP "" 2 -\fIfirst\/\fB+\fIstep\fR -.RS 4 +.TQ +\fIfirst\/\fB..\fR\,\fIlast\/\fB+\fR +For every syscall from the +.IR set , +perform injections for the syscall invocation number +.I first +and all subsequent invocations until the invocation number +.I last +(inclusive). +.TQ +\fIfirst\/\fB+\fR\,\fIstep\fR For every syscall from the .IR set , perform injections for syscall invocations number @@ -713,20 +1330,26 @@ perform injections for syscall invocations number .IR first + step , .IR first + step + step , and so on. -.RE +.TQ +\fIfirst\/\fB..\fR\,\fIlast\fB+\fR\,\fIstep\fR +Same as the previous, but consider only syscall invocations with numbers up to +.I last +(inclusive). .RE .IP For example, to fail each third and subsequent chdir syscalls with .BR ENOENT , use \fB\-e\ inject\fR=\,\fIchdir\/\fR:\fBerror\fR=\,\fIENOENT\/\fR:\fBwhen\fR=\,\fI3\/\fB+\fR. - +.IP The valid range for numbers .I first and .I step -is 1..65535. - +is 1..65535, and for number +.I last +is 1..65534. +.IP An injection expression can contain only one .BR error = or @@ -736,163 +1359,29 @@ specification, and only one specification. If an injection expression contains multiple .BR when = specifications, the last one takes precedence. - +.IP Accounting of syscalls that are subject to injection is done per syscall and per tracee. - +.IP Specification of syscall injection can be combined with other syscall filtering options, for example, \fB\-P \fI/dev/urandom \fB\-e inject\fR=\,\fIfile\/\fR:\fBerror\fR=\,\fIENOENT\fR. - .TP -\fB\-e\ fault\fR=\,\fIset\/\fR[:\fBerror\fR=\,\fIerrno\/\fR][:\fBwhen\fR=\,\fIexpr\/\fR] +\fB\-e\ fault\fR=\,\fIsyscall_set\/\fR[:\fBerror\fR=\,\fIerrno\/\fR][:\fBwhen\fR=\,\fIexpr\/\fR] +.TQ +\fB\-\-fault\fR=\,\fIsyscall_set\/\fR[:\fBerror\fR=\,\fIerrno\/\fR][:\fBwhen\fR=\,\fIexpr\/\fR] Perform syscall fault injection for the specified set of syscalls. - +.IP This is equivalent to more generic \fB\-e\ inject\fR= expression with default value of .I errno option set to .BR ENOSYS . -.TP -.BR "\-e\ kvm" = vcpu -Print the exit reason of kvm vcpu. Requires Linux kernel version 4.16.0 -or higher. - -.TP -.BI "\-P " path -Trace only system calls accessing -.IR path . -Multiple -.B \-P -options can be used to specify several paths. -.TP -.B \-v -Print unabbreviated versions of environment, stat, termios, etc. -calls. These structures are very common in calls and so the default -behavior displays a reasonable subset of structure members. Use -this option to get all of the gory details. -.SS Tracing -.TP 12 -.BI "\-b " syscall -If specified syscall is reached, detach from traced process. -Currently, only -.BR execve (2) -syscall is supported. This option is useful if you want to trace -multi-threaded process and therefore require -.BR \-f , -but don't want to trace its (potentially very complex) children. -.TP -.B \-D -Run tracer process as a detached grandchild, not as parent of the -tracee. This reduces the visible effect of -.B strace -by keeping the tracee a direct child of the calling process. -.TP -.B \-f -Trace child processes as they are created by currently traced -processes as a result of the -.BR fork (2), -.BR vfork (2) -and -.BR clone (2) -system calls. Note that -.B \-p -.I PID -.B \-f -will attach all threads of process -.I PID -if it is multi-threaded, not only thread with -.IR thread_id " = " PID . -.TP -.B \-ff -If the -.B \-o -.I filename -option is in effect, each processes trace is written to -.IR filename . pid -where -.I pid -is the numeric process id of each process. -This is incompatible with -.BR \-c , -since no per-process counts are kept. - -One might want to consider using -.BR strace-log-merge (1) -to obtain a combined strace log view. -.TP -.BI "\-I " interruptible -When -.B strace -can be interrupted by signals (such as pressing -.BR CTRL\-C ). -.RS -.TP 4 -.B 1 -no signals are blocked; -.TQ -.B 2 -fatal signals are blocked while decoding syscall (default); -.TQ -.B 3 -fatal signals are always blocked (default if -.BR -o " " \fIFILE\fR " " \fIPROG\fR ); -.TQ -.B 4 -fatal signals and -.BR SIGTSTP " (" CTRL\-Z ) -are always blocked (useful to make -.BI "strace -o " "FILE PROG" -not stop on -.BR CTRL\-Z , -default if -.BR \-D ). -.RE -.SS Startup -.TP 12 -\fB\-E\ \fIvar\fR=\,\fIval\fR -Run command with -.IR var = val -in its list of environment variables. -.TP -.BI "\-E " var -Remove -.IR var -from the inherited list of environment variables before passing it on to -the command. -.TP -.BI "\-p " pid -Attach to the process with the process -.SM ID -.I pid -and begin tracing. -The trace may be terminated -at any time by a keyboard interrupt signal -.RB ( CTRL\-C ). -.B strace -will respond by detaching itself from the traced process(es) -leaving it (them) to continue running. -Multiple -.B \-p -options can be used to attach to many processes in addition to -.I command -(which is optional if at least one -.B \-p -option is given). -.B \-p -"`pidof PROG`" syntax is supported. -.TP -.BI "\-u " username -Run command with the user \s-1ID\s0, group \s-2ID\s0, and -supplementary groups of -.IR username . -This option is only useful when running as root and enables the -correct execution of setuid and/or setgid binaries. -Unless this option is used setuid and setgid programs are executed -without effective privileges. .SS Miscellaneous .TP 12 .B \-d +.TQ +.B \-\-debug Show some debugging output of .B strace itself on the standard error. @@ -909,11 +1398,56 @@ and it is ignored at all if used along with one or more instances of option. .TP .B \-h +.TQ +.B \-\-help Print the help summary. .TP +.B \-\-seccomp\-bpf +Try to enable use of seccomp-bpf (see +.BR seccomp (2)) +to have +.BR ptrace (2)-stops +only when system calls that are being traced occur in the traced processes. +This option has no effect unless +.BR \-f / \-\-follow\-forks +is also specified. +.B \-\-seccomp\-bpf +is also not applicable to processes attached using +.BR \-p / \-\-attach +option. An attempt to enable system calls filtering using seccomp-bpf may +fail for various reasons, e.g. there are too many system calls to filter, +the seccomp API is not available, or +.B strace +itself is being traced. +In cases when seccomp-bpf filter setup failed, +.B strace +proceeds as usual and stops traced processes on every system call. +.TP .B \-V +.TQ +.B \-\-version Print the version number of .BR strace . +.SS "Time specification format description" +.PP +Time values can be specified as a decimal floating point number +(in a format accepted by +.BR strtod (3)), +optionally followed by one of the following suffices that specify +the unit of time: +.B s +(seconds), +.B ms +(milliseconds), +.B us +(microseconds), or +.B ns +(nanoseconds). +If no suffix is specified, the value is interpreted as microseconds. +.PP +The described format is used for +.BR \-O ", " "\-e inject" = delay_enter ", and " "\-e inject" = delay_exit +options. .SH DIAGNOSTICS When .I command @@ -968,7 +1502,7 @@ If you do use this feature, please remember to install a regular non-setuid version of .B strace for ordinary users to use. -.SH "MULTIPLE PERSONALITY SUPPORT" +.SH "MULTIPLE PERSONALITIES SUPPORT" On some architectures, .B strace supports decoding of syscalls for processes that use different ABI rather than @@ -983,14 +1517,28 @@ allbox; lb lb l l. Architecture ABIs supported -x86_64 i386, x32 (when built as an x86_64 application); i386 (when built as an x32 application) +x86_64 i386, x32 [1]; i386 [2] AArch64 ARM 32-bit EABI -PowerPC 64-bit PowerPC 32-bit -RISC-V 64-bit RISC-V 32-bit +PowerPC 64-bit [3] PowerPC 32-bit s390x s390 SPARC 64-bit SPARC 32-bit TILE 64-bit TILE 32-bit .TE +.RS 0 +.TP 5 +[1] +When +.B strace +is built as an x86_64 application +.TQ +[2] +When +.B strace +is built as an x32 application +.TQ +[3] +Big endian only +.RE .PP This support is optional and relies on ability to generate and parse structure definitions during the build time. @@ -1005,15 +1553,15 @@ has): .B m32-mpers .B strace can trace and properly decode non-native 32-bit binaries. -.TP +.TQ .B no-m32-mpers .B strace can trace, but cannot properly decode non-native 32-bit binaries. -.TP +.TQ .B mx32-mpers .B strace can trace and properly decode non-native 32-on-64-bit binaries. -.TP +.TQ .B no-mx32-mpers .B strace can trace, but cannot properly decode non-native 32-on-64-bit binaries. @@ -1109,7 +1657,9 @@ effective user .SM ID privileges while being traced. .LP -A traced process runs slowly. +A traced process runs slowly (but check out the +.B \-\-seccomp\-bpf +option). .LP Traced processes which are descended from .I command @@ -1171,7 +1721,7 @@ Since 2009, .B strace is actively maintained by Dmitry Levin. .B strace -gained support for AArch64, ARC, AVR32, Blackfin, Meta, Nios II, OpenSISC 1000, +gained support for AArch64, ARC, AVR32, Blackfin, Meta, Nios II, OpenRISC 1000, RISC-V, Tile/TileGx, Xtensa architectures since that time. In 2012, unmaintained and apparently broken support for non-Linux operating systems was removed. @@ -1190,8 +1740,10 @@ repository commit log. Problems with .B strace should be reported to the +.UR mailto:strace\-devel@lists.strace.io .B strace -mailing list at . +mailing list +.UE . .SH "SEE ALSO" .BR strace-log-merge (1), .BR ltrace (1), @@ -1200,3 +1752,14 @@ mailing list at . .BR time (1), .BR ptrace (2), .BR proc (5) +.PP +.UR https://strace.io/ +.B strace +Home Page +.UE +.SH AUTHORS +The complete list of +.B strace +contributors can be found in the +.B CREDITS +file. diff --git a/strace.1.in b/strace.1.in index 76a74119..53f5082a 100644 --- a/strace.1.in +++ b/strace.1.in @@ -38,25 +38,25 @@ strace \- trace system calls and signals .SH SYNOPSIS .SY strace -.if '@ENABLE_STACKTRACE_TRUE@'#' .ig end_unwind_opt -.OP \-ACdffhikqrtttTvVxxy -.end_unwind_opt -.if '@ENABLE_STACKTRACE_FALSE@'#' .ig end_no_unwind_opt -.OP \-ACdffhiqrtttTvVxxy -.end_no_unwind_opt +.if '@ENABLE_STACKTRACE_FALSE@'#' .OP \-ACdffhikqqrtttTvVwxxyyzZ +.if '@ENABLE_STACKTRACE_TRUE@'#' .OP \-ACdffhiqqrtttTvVwxxyyzZ .OP \-I n .OP \-b execve .OM \-e expr +.OP \-O overhead +.OP \-S sortby +.OP \-U columns .OP \-a column .OP \-o file .OP \-s strsize .OP \-X format .OM \-P path .OM \-p pid +.OP \-\-seccomp\-bpf .BR "" { .OR \-p pid .BR "" | -.OP \-D +.OP \-DDD .OM \-E var\fR[=\fIval\fR] .OP \-u username .IR command " [" args ] @@ -64,24 +64,25 @@ strace \- trace system calls and signals .YS .SY strace .B \-c -.OP \-df +.OP \-dfwzZ .OP \-I n .OP \-b execve .OM \-e expr .OP \-O overhead .OP \-S sortby +.OP \-U columns .OM \-P path .OM \-p pid +.OP \-\-seccomp\-bpf .BR "" { .OR \-p pid .BR "" | -.OP \-D +.OP \-DDD .OM \-E var\fR[=\fIval\fR] .OP -u username .IR command " [" args ] .BR "" } .YS - .SH DESCRIPTION .IX "strace command" "" "\fLstrace\fR command" .LP @@ -156,9 +157,9 @@ This example shows the shell performing ">>xyzzy" output redirection: .CW open("xyzzy", O_WRONLY|O_APPEND|O_CREAT, 0666) = 3 .CE -Here, the third argument of +Here, the second and the third argument of .BR open (2) -is decoded by breaking down the +are decoded by breaking down the flag argument into its three bitwise-OR constituents and printing the mode value in octal by tradition. Where the traditional or native usage differs from ANSI or POSIX, the latter forms are preferred. @@ -217,9 +218,9 @@ on a system with supplementary group ids: .CW getgroups(32, [100, 0]) = 2 .CE -On the other hand, bit-sets are also shown using square brackets -but set elements are separated only by a space. Here is the shell, -preparing to execute an external command: +On the other hand, bit-sets are also shown using square brackets, +but set elements are separated only by a space. +Here is the shell, preparing to execute an external command: .CW sigprocmask(SIG_BLOCK, [CHLD TTOU], []) = 0 .CE @@ -233,184 +234,33 @@ sigprocmask(SIG_UNBLOCK, ~[], NULL) = 0 .CE Here, the second argument represents the full set of all signals. .SH OPTIONS -.SS Output format -.TP 12 -.BI "\-a " column -Align return values in a specific column (default column 40). -.TP -.B \-i -Print the instruction pointer at the time of the system call. -.if '@ENABLE_STACKTRACE_TRUE@'#' .ig end_unwind -.TP -.B \-k -Print the execution stack trace of the traced processes after each system call. -.end_unwind -.TP -.BI "\-o " filename -Write the trace output to the file -.I filename -rather than to stderr. -.IR filename . pid -form is used if -.B \-ff -option is supplied. -If the argument begins with '|' or '!', the rest of the -argument is treated as a command and all output is piped to it. -This is convenient for piping the debugging output to a program -without affecting the redirections of executed programs. -The latter is not compatible with -.B \-ff -option currently. -.TP -.B \-A -Open the file provided in the -.B \-o -option in append mode. -.TP -.B \-q -Suppress messages about attaching, detaching etc. This happens -automatically when output is redirected to a file and the command -is run directly instead of attaching. -.TP -.B \-qq -If given twice, suppress messages about process exit status. -.TP -.B \-r -Print a relative timestamp upon entry to each system call. This -records the time difference between the beginning of successive -system calls. -Note that since -.B \-r -option uses the monotonic clock time for measuring time difference and not the -wall clock time, its measurements can differ from the difference in time -reported by the -.B \-t -option. -.TP -.BI "\-s " strsize -Specify the maximum string size to print (the default is 32). Note -that filenames are not considered strings and are always printed in -full. -.TP -.B \-t -Prefix each line of the trace with the wall clock time. -.TP -.B \-tt -If given twice, the time printed will include the microseconds. -.TP -.B \-ttt -If given thrice, the time printed will include the microseconds -and the leading portion will be printed as the number -of seconds since the epoch. -.TP -.B \-T -Show the time spent in system calls. This records the time -difference between the beginning and the end of each system call. -.TP -.B \-x -Print all non-ASCII strings in hexadecimal string format. -.TP -.B \-xx -Print all strings in hexadecimal string format. -.TP -.BI "\-X " format -Set the format for printing of named constants and flags. -Supported -.I format -values are: -.RS -.TP 10 -.B raw -Raw number output, without decoding. -.TP -.B abbrev -Output a named constant or a set of flags instead of the raw number if they are -found. -This is the default -.B strace -behaviour. -.TP -.B verbose -Output both the raw value and the decoded string (as a comment). -.RE -.TP -.B \-y -Print paths associated with file descriptor arguments. -.TP -.B \-yy -Print protocol specific information associated with socket file descriptors, -and block/character device number associated with device file descriptors. -.SS Statistics -.TP 12 -.B \-c -Count time, calls, and errors for each system call and report a summary on -program exit, suppressing the regular output. -This attempts to show system time (CPU time spent running -in the kernel) independent of wall clock time. If -.B \-c -is used with -.BR \-f , -only aggregate totals for all traced processes are kept. -.TP -.B \-C -Like -.B \-c -but also print regular output while processes are running. -.TP -.BI "\-O " overhead -Set the overhead for tracing system calls to -.I overhead -microseconds. -This is useful for overriding the default heuristic for guessing -how much time is spent in mere measuring when timing system calls using -the -.B \-c -option. The accuracy of the heuristic can be gauged by timing a given -program run without tracing (using -.BR time (1)) -and comparing the accumulated -system call time to the total produced using -.BR \-c . -.TP -.BI "\-S " sortby -Sort the output of the histogram printed by the -.B \-c -option by the specified criterion. Legal values are -.BR time , -.BR calls , -.BR name , -and -.B nothing -(default is -.BR time ). -.TP -.B \-w -Summarise the time difference between the beginning and end of -each system call. The default is to summarise the system time. -.SS Filtering +.SS General .TP 12 .BI "\-e " expr A qualifying expression which modifies which events to trace or how to trace them. The format of the expression is: .RS 15 .IP -[\,\fIqualifier\/\fB=\fR][\fB!\fR][\fB?\fR]\,\fIvalue1\/\fR[\fB,\fR[\fB?\fR]\,\fIvalue2\/\fR]... +[\,\fIqualifier\/\fB=\fR][\fB!\fR]\,\fIvalue\/\fR[\fB,\fR\,\fIvalue\/\fR]... .RE .IP where .I qualifier is one of -.BR trace , -.BR abbrev , -.BR verbose , -.BR raw , -.BR signal , -.BR read , -.BR write , +.BR trace " (or " t ), +.BR abbrev " (or " a ), +.BR verbose " (or " v ), +.BR raw " (or " x ), +.BR signal " (or " signals " or " s ), +.BR read " (or " reads " or " r ), +.BR write " (or " writes " or " w ), .BR fault , .BR inject , +.BR status , +.BR quiet " (or " silent " or " silence " or " q ), +.BR decode\-fds " (or " decode\-fd ), or -.B kvm +.BR kvm , and .I value is a qualifier-dependent symbol or number. The default @@ -426,11 +276,6 @@ system call. By contrast, .BR \-e "\ " trace "=!" open means to trace every system call except .BR open . -Question mark before the syscall qualification allows suppression of error -in case no syscalls matched the qualification provided. -Appending one of "@64", "@32", or "@x32" suffixes to the syscall qualification -allows specifying syscalls only for the 64-bit, 32-bit, or 32-on-64-bit -personality, respectively. In addition, the special values .B all and @@ -440,104 +285,325 @@ have the obvious meanings. Note that some shells use the exclamation point for history expansion even inside quoted arguments. If so, you must escape the exclamation point with a backslash. +.SS Startup +.TP 12 +\fB\-E\ \fIvar\fR=\,\fIval\fR +.TQ +.BR "\-\-env" = \fIvar\fR = \fIval\fR +Run command with +.IR var = val +in its list of environment variables. .TP -\fB\-e\ trace\fR=\,\fIset\fR -Trace only the specified set of system calls. The -.B \-c -option is useful for determining which system calls might be useful -to trace. For example, -.BR trace = open,close,read,write -means to only -trace those four system calls. Be careful when making inferences -about the user/kernel boundary if only a subset of system calls -are being monitored. The default is -.BR trace = all . -.TP -\fB\-e\ trace\fR=/\,\fIregex\fR -Trace only those system calls that match the -.IR regex . -You can use -.B POSIX -Extended Regular Expression syntax (see -.BR regex (7)). -.TP -.BR "\-e\ trace" = %file +.BI "\-E " var .TQ -.BR "\-e\ trace" = file " (deprecated)" -Trace all system calls which take a file name as an argument. You -can think of this as an abbreviation for -.BR "\-e\ trace" = open , stat , chmod , unlink ,... -which is useful to seeing what files the process is referencing. -Furthermore, using the abbreviation will ensure that you don't -accidentally forget to include a call like -.BR lstat (2) -in the list. Betchya woulda forgot that one. +.BR "\-\-env" = \fIvar\fR +Remove +.IR var +from the inherited list of environment variables before passing it on to +the command. .TP -.BR "\-e\ trace" = %process +.BI "\-p " pid .TQ -.BR "\-e\ trace" = process " (deprecated)" -Trace all system calls which involve process management. This -is useful for watching the fork, wait, and exec steps of a process. +.BR "\-\-attach" = \fIpid\fR +Attach to the process with the process +.SM ID +.I pid +and begin tracing. +The trace may be terminated +at any time by a keyboard interrupt signal +.RB ( CTRL\-C ). +.B strace +will respond by detaching itself from the traced process(es) +leaving it (them) to continue running. +Multiple +.B \-p +options can be used to attach to many processes in addition to +.I command +(which is optional if at least one +.B \-p +option is given). +.B \-p +"`pidof PROG`" syntax is supported. .TP -.BR "\-e\ trace" = %net +.BI "\-u " username .TQ -.BR "\-e\ trace" = %network +.BR "\-\-user" = \fIusername\fR +Run command with the user \s-1ID\s0, group \s-2ID\s0, and +supplementary groups of +.IR username . +This option is only useful when running as root and enables the +correct execution of setuid and/or setgid binaries. +Unless this option is used setuid and setgid programs are executed +without effective privileges. +.SS Tracing +.TP 12 +.BI "\-b " syscall .TQ -.BR "\-e\ trace" = network " (deprecated)" -Trace all the network related system calls. +.BR "\-\-detach\-on" = \fIsyscall\fR +If specified syscall is reached, detach from traced process. +Currently, only +.BR execve (2) +syscall is supported. This option is useful if you want to trace +multi-threaded process and therefore require +.BR \-f , +but don't want to trace its (potentially very complex) children. .TP -.BR "\-e\ trace" = %signal +.B \-D .TQ -.BR "\-e\ trace" = signal " (deprecated)" -Trace all signal related system calls. -.TP -.BR "\-e\ trace" = %ipc +.B \-\-daemonize .TQ -.BR "\-e\ trace" = ipc " (deprecated)" -Trace all IPC related system calls. +.BR \-\-daemonize = grandchild +Run tracer process as a grandchild, not as the parent of the +tracee. This reduces the visible effect of +.B strace +by keeping the tracee a direct child of the calling process. .TP -.BR "\-e\ trace" = %desc +.B \-DD .TQ -.BR "\-e\ trace" = desc " (deprecated)" -Trace all file descriptor related system calls. +.BR \-\-daemonize = pgroup +.TQ +.BR \-\-daemonize = pgrp +Run tracer process as tracee's grandchild in a separate process group. +In addition to reduction of the visible effect of +.BR strace , +it also avoids killing of +.B strace +with +.BR kill (2) +issued to the whole process group. .TP -.BR "\-e\ trace" = %memory +.B \-DDD .TQ -.BR "\-e\ trace" = memory " (deprecated)" -Trace all memory mapping related system calls. +.BR \-\-daemonize = session +Run tracer process as tracee's grandchild in a separate session +("true daemonisation"). +In addition to reduction of the visible effect of +.BR strace , +it also avoids killing of +.B strace +upon session termination. .TP -.BR "\-e\ trace" = %stat -Trace stat syscall variants. +.B \-f +.TQ +.BR \-\-follow\-forks +Trace child processes as they are created by currently traced +processes as a result of the +.BR fork (2), +.BR vfork (2) +and +.BR clone (2) +system calls. Note that +.B \-p +.I PID +.B \-f +will attach all threads of process +.I PID +if it is multi-threaded, not only thread with +.IR thread_id " = " PID . .TP -.BR "\-e\ trace" = %lstat -Trace lstat syscall variants. +.B \-\-output\-separately +If the +.BR \-\-output = \fIfilename\fR +option is in effect, each processes trace is written to +.IR filename . pid +where +.I pid +is the numeric process id of each process. .TP -.BR "\-e\ trace" = %fstat -Trace fstat and fstatat syscall variants. +.B \-ff +.TQ +.B \-\-follow\-forks \-\-output\-separately +Combine the effects of +.B \-\-follow\-forks +and +.B \-\-output\-separately +options. +This is incompatible with +.BR \-c , +since no per-process counts are kept. +.IP +One might want to consider using +.BR strace-log-merge (1) +to obtain a combined strace log view. .TP -.BR "\-e\ trace" = %%stat +.BI "\-I " interruptible +.TQ +.BR "\-\-interruptible" = \fIinterruptible\fR +When +.B strace +can be interrupted by signals (such as pressing +.BR CTRL\-C ). +.RS +.TP 15 +.BR 1 ", " anywhere +no signals are blocked; +.TQ +.BR 2 ", " waiting +fatal signals are blocked while decoding syscall (default); +.TQ +.BR 3 ", " never +fatal signals are always blocked (default if +.BR -o " " \fIFILE\fR " " \fIPROG\fR ); +.TQ +.BR 4 ", " never_tstp +fatal signals and +.BR SIGTSTP " (" CTRL\-Z ) +are always blocked (useful to make +.BI "strace -o " "FILE PROG" +not stop on +.BR CTRL\-Z , +default if +.BR \-D ). +.RE +.SS Filtering +.TP 12 +\fB\-e\ trace\fR=\,\fIsyscall_set\fR +.TQ +\fB\-\-trace\fR=\,\fIsyscall_set\fR +Trace only the specified set of system calls. +.I syscall_set +is defined as +[\fB!\fR]\,\fIvalue\fR[\fB,\fR\,\fIvalue\/\fR], +and +.I value +can be one of the following: +.RS +.TP 13 +.I syscall +Trace specific syscall, specified by its name (but see +.BR NOTES ). +.TP +.BI ? value +Question mark before the syscall qualification allows suppression of error +in case no syscalls matched the qualification provided. +.TP +.BI / regex +Trace only those system calls that match the +.IR regex . +You can use +.B POSIX +Extended Regular Expression syntax (see +.BR regex (7)). +.TP +.IB syscall @64 +Trace +.I syscall +only for the 64-bit personality. +.TP +.IB syscall @32 +Trace +.I syscall +only for the 32-bit personality. +.TP +.IB syscall @x32 +Trace +.I syscall +only for the 32-on-64-bit personality. +.TP +.B %file +.TQ +.BR file +Trace all system calls which take a file name as an argument. You +can think of this as an abbreviation for +.BR "\-e\ trace" = open , stat , chmod , unlink ,... +which is useful to seeing what files the process is referencing. +Furthermore, using the abbreviation will ensure that you don't +accidentally forget to include a call like +.BR lstat (2) +in the list. Betchya woulda forgot that one. +The syntax without a preceding percent sign +.RB (\[dq] "-e trace" = file \[dq]) +is deprecated. +.TP +.B %process +.TQ +.B process +Trace system calls associated with process lifecycle +(creation, exec, termination). +The syntax without a preceding percent sign +.RB (\[dq] "-e trace" = process \[dq]) +is deprecated. +.TP +.B %net +.TQ +.B %network +.TQ +.B network +Trace all the network related system calls. +The syntax without a preceding percent sign +.RB (\[dq] "-e trace" = network \[dq]) +is deprecated. +.TP +.BR %signal +.TQ +.BR signal +Trace all signal related system calls. +The syntax without a preceding percent sign +.RB (\[dq] "-e trace" = signal \[dq]) +is deprecated. +.TP +.BR %ipc +.TQ +.BR ipc +Trace all IPC related system calls. +The syntax without a preceding percent sign +.RB (\[dq] "-e trace" = ipc \[dq]) +is deprecated. +.TP +.BR %desc +.TQ +.BR desc +Trace all file descriptor related system calls. +The syntax without a preceding percent sign +.RB (\[dq] "-e trace" = desc \[dq]) +is deprecated. +.TP +.BR %memory +.TQ +.BR memory +Trace all memory mapping related system calls. +The syntax without a preceding percent sign +.RB (\[dq] "-e trace" = memory \[dq]) +is deprecated. +.TP +.BR %creds +Trace system calls that read or modify user and group identifiers or capability sets. +.TP +.BR %stat +Trace stat syscall variants. +.TP +.BR %lstat +Trace lstat syscall variants. +.TP +.BR %fstat +Trace fstat, fstatat, and statx syscall variants. +.TP +.BR %%stat Trace syscalls used for requesting file status (stat, lstat, fstat, fstatat, statx, and their variants). .TP -.BR "\-e\ trace" = %statfs +.BR %statfs Trace statfs, statfs64, statvfs, osf_statfs, and osf_statfs64 system calls. The same effect can be achieved with .BR "\-e\ trace" = /^(.*_)?statv?fs regular expression. .TP -.BR "\-e\ trace" = %fstatfs +.BR %fstatfs Trace fstatfs, fstatfs64, fstatvfs, osf_fstatfs, and osf_fstatfs64 system calls. The same effect can be achieved with .BR "\-e\ trace" = /fstatv?fs regular expression. .TP -.BR "\-e\ trace" = %%statfs +.BR %%statfs Trace syscalls related to file system statistics (statfs-like, fstatfs-like, and ustat). The same effect can be achieved with .BR "\-e\ trace" = /statv?fs|fsstat|ustat regular expression. .TP -.BR "\-e\ trace" = %pure +.BR %clock +Trace system calls that read or modify system clocks. +.TP +.BR %pure Trace syscalls that always succeed and have no arguments. Currently, this list includes .BR arc_gettls "(2), " getdtablesize "(2), " getegid "(2), " getegid32 "(2)," @@ -549,9 +615,121 @@ Currently, this list includes .BR getxgid "(2), " getxpid "(2), " getxuid "(2), " kern_features "(2), and" .BR metag_get_tls "(2)" syscalls. +.RE +.IP +The +.B \-c +option is useful for determining which system calls might be useful +to trace. For example, +.BR trace = open,close,read,write +means to only +trace those four system calls. Be careful when making inferences +about the user/kernel boundary if only a subset of system calls +are being monitored. The default is +.BR trace = all . +.TP +\fB\-e\ signal\fR=\,\fIset\fR +.TQ +\fB\-\-signal\fR=\,\fIset\fR +Trace only the specified subset of signals. The default is +.BR signal = all . +For example, +.BR signal "=!" SIGIO +(or +.BR signal "=!" io ) +causes +.B SIGIO +signals not to be traced. +.TP +\fB\-e\ status\fR=\,\fIset\fR +.TQ +\fB\-\-status\fR=\,\fIset\fR +Print only system calls with the specified return status. The default is +.BR status = all . +When using the +.B status +qualifier, because +.B strace +waits for system calls to return before deciding whether they should be printed +or not, the traditional order of events may not be preserved anymore. If two +system calls are executed by concurrent threads, +.B strace +will first print both the entry and exit of the first system call to exit, +regardless of their respective entry time. The entry and exit of the second +system call to exit will be printed afterwards. Here is an example when +.BR select (2) +is called, but a different thread calls +.BR clock_gettime (2) +before +.BR select (2) +finishes: +.CW +[pid 28779] 1130322148.939977 clock_gettime(CLOCK_REALTIME, {1130322148, 939977000}) = 0 +[pid 28772] 1130322148.438139 select(4, [3], NULL, NULL, NULL) = 1 (in [3]) +.CE +.I set +can include the following elements: +.RS +.TP 13 +.B successful +Trace system calls that returned without an error code. +The +.B -z +option has the effect of +.BR status = successful . +.TQ +.B failed +Trace system calls that returned with an error code. +The +.B -Z +option has the effect of +.BR status = failed . +.TQ +.B unfinished +Trace system calls that did not return. This might happen, for example, due to +an execve call in a neighbour thread. +.TQ +.B unavailable +Trace system calls that returned but strace failed to fetch the error status. +.TQ +.B detached +Trace system calls for which strace detached before the return. +.RE +.TP +.BI "\-P " path +.TQ +.BR "\-\-trace\-path" = \fIpath\fR +Trace only system calls accessing +.IR path . +Multiple +.B \-P +options can be used to specify several paths. +.TP +.B \-z +.TQ +.B \-\-successful\-only +Print only syscalls that returned without an error code. +.TP +.B \-Z +.TQ +.B \-\-failed\-only +Print only syscalls that returned with an error code. +.SS Output format +.TP 12 +.BI "\-a " column +.TQ +.BR "\-\-columns" = \fIcolumn\fR +Align return values in a specific column (default column 40). .TP -\fB\-e\ abbrev\fR=\,\fIset\fR +\fB\-e\ abbrev\fR=\,\fIsyscall_set\fR +.TQ +\fB\-\-abbrev\fR=\,\fIsyscall_set\fR Abbreviate the output from printing each member of large structures. +The syntax of the +.I syscall_set +specification is the same as in the +.B "-e trace" +option. The default is .BR abbrev = all . The @@ -559,13 +737,27 @@ The option has the effect of .BR abbrev = none . .TP -\fB\-e\ verbose\fR=\,\fIset\fR -Dereference structures for the specified set of system calls. The -default is +\fB\-e\ verbose\fR=\,\fIsyscall_set\fR +.TQ +\fB\-\-verbose\fR=\,\fIsyscall_set\fR +Dereference structures for the specified set of system calls. +The syntax of the +.I syscall_set +specification is the same as in the +.B "-e trace" +option. +The default is .BR verbose = all . .TP -\fB\-e\ raw\fR=\,\fIset\fR +\fB\-e\ raw\fR=\,\fIsyscall_set\fR +.TQ +\fB\-\-raw\fR=\,\fIsyscall_set\fR Print raw, undecoded arguments for the specified set of system calls. +The syntax of the +.I syscall_set +specification is the same as in the +.B "-e trace" +option. This option has the effect of causing all arguments to be printed in hexadecimal. This is mostly useful if you don't trust the decoding or you need to know the actual numeric value of an @@ -574,48 +766,443 @@ See also .B \-X raw option. .TP -\fB\-e\ signal\fR=\,\fIset\fR -Trace only the specified subset of signals. The default is -.BR signal = all . -For example, -.BR signal "=!" SIGIO -(or -.BR signal "=!" io ) -causes -.B SIGIO -signals not to be traced. +\fB\-e\ read\fR=\,\fIset\fR +.TQ +\fB\-\-read\fR=\,\fIset\fR +Perform a full hexadecimal and ASCII dump of all the data read from +file descriptors listed in the specified set. For example, to see +all input activity on file descriptors +.I 3 +and +.I 5 +use +\fB\-e\ read\fR=\,\fI3\fR,\fI5\fR. +Note that this is independent from the normal tracing of the +.BR read (2) +system call which is controlled by the option +.BR -e "\ " trace = read . +.TP +\fB\-e\ write\fR=\,\fIset\fR +.TQ +\fB\-\-write\fR=\,\fIset\fR +Perform a full hexadecimal and ASCII dump of all the data written to +file descriptors listed in the specified set. For example, to see +all output activity on file descriptors +.I 3 +and +.I 5 +use +\fB\-e\ write\fR=\,\fI3\fR,\,\fI5\fR. +Note that this is independent from the normal tracing of the +.BR write (2) +system call which is controlled by the option +.BR -e "\ " trace = write . +.TP +\fB\-e\ quiet\fR=\,\fIset\fR +.TQ +\fB\-\-quiet\fR=\,\fIset\fR +.TQ +\fB\-\-silent\fR=\,\fIset\fR +.TQ +\fB\-\-silence\fR=\,\fIset\fR +Suppress various information messages. The default is +.BR quiet = none . +.I set +can include the following elements: +.RS +.TP 17 +.B attach +Suppress messages about attaching and detaching +.RB (\[dq] "[ Process NNNN attached ]" "\[dq]," +.RB "\[dq]" "[ Process NNNN detached ]" "\[dq])." +.TQ +.B exit +Suppress messages about process exits +.RB (\[dq] "+++ exited with SSS +++" \[dq]). +.TQ +.B path-resolution +Suppress messages about resolution of paths provided via the +.B \-P +option +.RB (\[dq] "Requested path \[dq]...\[dq] resolved into \[dq]...\[dq]" \[dq]). +.TQ +.B personality +Suppress messages about process personality changes +.RB (\[dq] "[ Process PID=NNNN runs in PPP mode. ]" \[dq]). +.TQ +.B thread-execve +.TQ +.B superseded +Suppress messages about process being superseded by +.BR execve (2) +in another thread +.RB (\[dq] "+++ superseded by execve in pid NNNN +++" \[dq]). +.RE +.TP +\fB\-e\ decode\-fds\fR=\,\fIset\fR +.TQ +\fB\-\-decode\-fds\fR=\,\fIset\fR +Decode various information associated with file descriptors. The default is +.BR decode\-fds = none . +.I set +can include the following elements: +.RS +.TP 8 +.B path +Print file paths. +.TQ +.B socket +Print socket protocol-specific information, +.TQ +.B dev +Print character/block device numbers. +.TQ +.B pidfd +Print PIDs associated with pidfd file descriptors. +.RE +.TP +.BR "\-e\ kvm" = vcpu +.TQ +.BR "\-\-kvm" = vcpu +Print the exit reason of kvm vcpu. Requires Linux kernel version 4.16.0 +or higher. +.TP +.B \-i +.TQ +.B \-\-instruction\-pointer +Print the instruction pointer at the time of the system call. +.TP +.B \-n +.TQ +.B \-\-syscall\-number +Print the syscall number. +.if '@ENABLE_STACKTRACE_FALSE@'#' .TP +.if '@ENABLE_STACKTRACE_FALSE@'#' .B \-k +.if '@ENABLE_STACKTRACE_FALSE@'#' .TQ +.if '@ENABLE_STACKTRACE_FALSE@'#' .B \-\-stack\-traces +.if '@ENABLE_STACKTRACE_FALSE@'#' Print the execution stack trace of the traced +.if '@ENABLE_STACKTRACE_FALSE@'#' processes after each system call. +.TP +.BI "\-o " filename +.TQ +.BR "\-\-output" = \fIfilename\fR +Write the trace output to the file +.I filename +rather than to stderr. +.IR filename . pid +form is used if +.B \-ff +option is supplied. +If the argument begins with '|' or '!', the rest of the +argument is treated as a command and all output is piped to it. +This is convenient for piping the debugging output to a program +without affecting the redirections of executed programs. +The latter is not compatible with +.B \-ff +option currently. +.TP +.B \-A +.TQ +.B \-\-output\-append\-mode +Open the file provided in the +.B \-o +option in append mode. +.TP +.B \-q +.TQ +.B \-\-quiet +.TQ +.BR \-\-quiet = attach , personality +Suppress messages about attaching, detaching, and personality changes. +This happens automatically when output is redirected to a file +and the command is run directly instead of attaching. +.TP +.B \-qq +.TQ +.BR \-\-quiet = attach , personality , exit +Suppress messages attaching, detaching, personality changes, +and about process exit status. +.TP +.B \-qqq +.TQ +.BR \-\-quiet = all +Suppress all suppressible messages (please refer to the +.B -e quiet +option description for the full list of suppressible messages). +.TP +.B \-r +.TQ +.BR \-\-relative\-timestamps [= \fIprecision\fR ] +Print a relative timestamp upon entry to each system call. This +records the time difference between the beginning of successive +system calls. +.I precision +can be one of +.BR s " (for seconds), " ms " (milliseconds), " us " (microseconds), or " ns +(nanoseconds), and allows setting the precision of time value being printed. +Default is +.B us +(microseconds). +Note that since +.B \-r +option uses the monotonic clock time for measuring time difference and not the +wall clock time, its measurements can differ from the difference in time +reported by the +.B \-t +option. +.TP +.BI "\-s " strsize +.TQ +.BR "\-\-string\-limit" = \fIstrsize\fR +Specify the maximum string size to print (the default is 32). Note +that filenames are not considered strings and are always printed in +full. +.TP +.BR \-\-absolute\-timestamps [=[[ format: ] \fIformat\fR ],[[ precision: ] \fIprecision ]] +.TQ +.BR \-\-timestamps [=[[ format: ] \fIformat\fR ],[[ precision: ] \fIprecision ]] +Prefix each line of the trace with the wall clock time in the specified +.I format +with the specified +.IR precision . +.I format +can be one of the following: +.RS +.TP 14 +.B none +No time stamp is printed. +Can be used to override the previous setting. +.TQ +.B time +Wall clock time +.RB ( strftime (3) +format string is +.BR %T ). +.TQ +.B unix +Number of seconds since the epoch +.RB ( strftime (3) +format string is +.BR %s ). +.RE +.IP +.I precision +can be one of +.BR s " (for seconds), " ms " (milliseconds), " us " (microseconds), or " ns +(nanoseconds). +Default arguments for the option are +.BR format:time , precision:s . +.TP +.B \-t +.TQ +.B \-\-absolute\-timestamps +Prefix each line of the trace with the wall clock time. +.TP +.B \-tt +.TQ +.BR \-\-absolute\-timestamps = precision:us +If given twice, the time printed will include the microseconds. +.TP +.B \-ttt +.TQ +.BR \-\-absolute\-timestamps = format:unix , precision:us +If given thrice, the time printed will include the microseconds +and the leading portion will be printed as the number +of seconds since the epoch. +.TP +.B \-T +.TQ +.BR \-\-syscall\-times [= \fIprecision\fR ] +Show the time spent in system calls. This records the time +difference between the beginning and the end of each system call. +.I precision +can be one of +.BR s " (for seconds), " ms " (milliseconds), " us " (microseconds), or " ns +(nanoseconds), and allows setting the precision of time value being printed. +Default is +.B us +(microseconds). +.TP +.B \-v +.TQ +.B \-\-no\-abbrev +Print unabbreviated versions of environment, stat, termios, etc. +calls. These structures are very common in calls and so the default +behavior displays a reasonable subset of structure members. Use +this option to get all of the gory details. +.TP +.B \-x +.TQ +.BR \-\-strings\-in\-hex = \fInon\-ascii\fR +Print all non-ASCII strings in hexadecimal string format. +.TP +.B \-xx +.TQ +.B \-\-strings\-in\-hex +.TQ +.BR \-\-strings\-in\-hex = \fIall\fR +Print all strings in hexadecimal string format. +.TP +.BI "\-X " format +.TQ +.BR "\-\-const\-print\-style" = \fIformat\fR +Set the format for printing of named constants and flags. +Supported +.I format +values are: +.RS +.TP 10 +.B raw +Raw number output, without decoding. +.TQ +.B abbrev +Output a named constant or a set of flags instead of the raw number if they are +found. +This is the default +.B strace +behaviour. +.TQ +.B verbose +Output both the raw value and the decoded string (as a comment). +.RE +.TP +.B \-y +.TQ +.B \-\-decode\-fds +.TQ +.BR \-\-decode\-fds = path +Print paths associated with file descriptor arguments. +.TP +.B \-yy +.TQ +.BR \-\-decode\-fds = all +Print all available information associated with file descritors: +protocol-specific information associated with socket file descriptors, +block/character device number associated with device file descriptors, +and PIDs asociated with pidfd file descriptors. +.TP +.B \-\-pidns\-translation +If strace and tracee are in different PID namespaces, print PIDs in +strace's namespace, too. +.SS Statistics +.TP 12 +.B \-c +.TQ +.B \-\-summary\-only +Count time, calls, and errors for each system call and report a summary on +program exit, suppressing the regular output. +This attempts to show system time (CPU time spent running +in the kernel) independent of wall clock time. If +.B \-c +is used with +.BR \-f , +only aggregate totals for all traced processes are kept. +.TP +.B \-C +.TQ +.B \-\-summary +Like +.B \-c +but also print regular output while processes are running. +.TP +.BI "\-O " overhead +.TQ +.BR "\-\-summary\-syscall\-overhead " = \fIoverhead\fR +Set the overhead for tracing system calls to +.IR overhead . +This is useful for overriding the default heuristic for guessing +how much time is spent in mere measuring when timing system calls using +the +.B \-c +option. The accuracy of the heuristic can be gauged by timing a given +program run without tracing (using +.BR time (1)) +and comparing the accumulated +system call time to the total produced using +.BR \-c . +.IP +The format of +.I overhead +specification is described in section +.IR "Time specification format description". .TP -\fB\-e\ read\fR=\,\fIset\fR -Perform a full hexadecimal and ASCII dump of all the data read from -file descriptors listed in the specified set. For example, to see -all input activity on file descriptors -.I 3 +.BI "\-S " sortby +.TQ +.BR "\-\-summary\-sort\-by" = \fIsortby\fR +Sort the output of the histogram printed by the +.B \-c +option by the specified criterion. Legal values are +.BR time " (or " time\-percent " or " time\-total " or " total\-time ), +.BR min\-time " (or " shortest " or " time\-min ), +.BR max\-time " (or " longest " or " time\-max ), +.BR avg\-time " (or " time\-avg ), +.BR calls " (or " count ), +.BR errors " (or " error ), +.BR name " (or " syscall " or " syscall\-name ), and -.I 5 -use -\fB\-e\ read\fR=\,\fI3\fR,\fI5\fR. -Note that this is independent from the normal tracing of the -.BR read (2) -system call which is controlled by the option -.BR -e "\ " trace = read . +.BR nothing " (or " none ); +default is +.BR time . .TP -\fB\-e\ write\fR=\,\fIset\fR -Perform a full hexadecimal and ASCII dump of all the data written to -file descriptors listed in the specified set. For example, to see -all output activity on file descriptors -.I 3 -and -.I 5 -use -\fB\-e\ write\fR=\,\fI3\fR,\,\fI5\fR. -Note that this is independent from the normal tracing of the -.BR write (2) -system call which is controlled by the option -.BR -e "\ " trace = write . +.BI "\-U " columns +.TQ +.BR "\-\-summary\-columns" = \fIcolumns\fR +Configure a set (and order) of columns being shown in the call summary. +The +.I columns +argument is a comma-separated list with items being one of the following: +.RS +.TP 36 +.BR time\-percent " (or " time ) +Percentage of cumulative time consumed by a specific system call. +.TQ +.BR total\-time " (or " time\-total ) +Total system (or wall clock, if +.B \-w +option is provided) time consumed by a specific system call. +.TQ +.BR min\-time " (or " shortest " or " time\-min ) +Minimum observed call duration. +.TQ +.BR max\-time " (or " longest " or " time\-max ) +Maximum observed call duration. +.TQ +.BR avg\-time " (or " time\-avg ) +Average call duration. +.TQ +.BR calls " (or " count ) +Call count. +.TQ +.BR errors " (or " error ) +Error count. +.TQ +.BR name " (or " syscall " or " syscall\-name ) +Syscall name. +.RE +.IP +The default value is +.BR time\-percent , total\-time , avg\-time , calls , errors , name . +If the +.B name +field is not supplied explicitly, it is added as the last column. .TP -\fB\-e\ inject\fR=\,\fIset\/\fR[:\fBerror\fR=\,\fIerrno\/\fR|:\fBretval\fR=\,\fIvalue\/\fR][:\fBsignal\fR=\,\fIsig\/\fR][:\fBsyscall\fR=\fIsyscall\fR][:\fBdelay_enter\fR=\,\fIusecs\/\fR][:\fBdelay_exit\fR=\,\fIusecs\/\fR][:\fBwhen\fR=\,\fIexpr\/\fR] +.B \-w +.TQ +.B \-\-summary\-wall\-clock +Summarise the time difference between the beginning and end of +each system call. The default is to summarise the system time. +.SS Tampering +.TP 12 +\fB\-e\ inject\fR=\,\fIsyscall_set\/\fR[:\fBerror\fR=\,\fIerrno\/\fR|:\fBretval\fR=\,\fIvalue\/\fR][:\fBsignal\fR=\,\fIsig\/\fR][:\fBsyscall\fR=\fIsyscall\fR][:\fBdelay_enter\fR=\,\fIdelay\/\fR][:\fBdelay_exit\fR=\,\fIdelay\/\fR][:\fBwhen\fR=\,\fIexpr\/\fR] +.TQ +\fB\-\-inject\fR=\,\fIsyscall_set\/\fR[:\fBerror\fR=\,\fIerrno\/\fR|:\fBretval\fR=\,\fIvalue\/\fR][:\fBsignal\fR=\,\fIsig\/\fR][:\fBsyscall\fR=\fIsyscall\fR][:\fBdelay_enter\fR=\,\fIdelay\/\fR][:\fBdelay_exit\fR=\,\fIdelay\/\fR][:\fBwhen\fR=\,\fIexpr\/\fR] Perform syscall tampering for the specified set of syscalls. - +The syntax of the +.I syscall_set +specification is the same as in the +.B "-e trace" +option. +.IP At least one of .BR error , .BR retval , @@ -628,7 +1215,7 @@ options has to be specified. and .B retval are mutually exclusive. - +.IP If :\fBerror\fR=\,\fIerrno\/\fR option is specified, a fault is injected into a syscall invocation: the syscall number is replaced by -1 which corresponds to an invalid syscall @@ -638,24 +1225,28 @@ and the error code is specified using a symbolic value like .B ENOSYS or a numeric value within 1..4095 range. - +.IP If :\fBretval\fR=\,\fIvalue\/\fR option is specified, success injection is performed: the syscall number is replaced by -1, but a bogus success value is returned to the callee. - +.IP If :\fBsignal\fR=\,\fIsig\/\fR option is specified with either a symbolic value like .B SIGSEGV or a numeric value within 1..\fBSIGRTMAX\fR range, that signal is delivered on entering every syscall specified by the .IR set . - -If :\fBdelay_enter\fR=\,\fIusecs\/\fR or :\fBdelay_exit\fR=\,\fIusecs\/\fR +.IP +If :\fBdelay_enter\fR=\,\fIdelay\/\fR or :\fBdelay_exit\fR=\,\fIdelay\/\fR options are specified, delay injection is performed: the tracee is delayed -by at least -.IR usecs -microseconds on entering or exiting the syscall. - +by time period specified by +.IR delay +on entering or exiting the syscall, respectively. +The format of +.I delay +specification is described in section +.IR "Time specification format description". +.IP If :\fBsignal\fR=\,\fIsig\/\fR option is specified without :\fBerror\fR=\,\fIerrno\/\fR, :\fBretval\fR=\,\fIvalue\/\fR or :\fBdelay_{enter,exit}\fR=\,\fIusecs\/\fR options, @@ -664,48 +1255,74 @@ then only a signal is delivered without a syscall fault or delay injection. Conversely, :\fBerror\fR=\,\fIerrno\/\fR or :\fBretval\fR=\,\fIvalue\/\fR option without -:\fBdelay_enter\fR=\,\fIusecs\/\fR, -:\fBdelay_exit\fR=\,\fIusecs\/\fR or +:\fBdelay_enter\fR=\,\fIdelay\/\fR, +:\fBdelay_exit\fR=\,\fIdelay\/\fR or :\fBsignal\fR=\,\fIsig\/\fR options injects a fault without delivering a signal or injecting a delay, etc. - +.IP If both :\fBerror\fR=\,\fIerrno\/\fR or :\fBretval\fR=\,\fIvalue\/\fR and :\fBsignal\fR=\,\fIsig\/\fR options are specified, then both a fault or success is injected and a signal is delivered. - +.IP if :\fBsyscall\fR=\fIsyscall\fR option is specified, the corresponding syscall with no side effects is injected instead of -1. Currently, only "pure" (see .BR "-e trace" = "%pure" description) syscalls can be specified there. - +.IP Unless a :\fBwhen\fR=\,\fIexpr\fR subexpression is specified, an injection is being made into every invocation of each syscall from the .IR set . - -The format of the subexpression is one of the following: +.IP +The format of the subexpression is: +.RS 15 +.IP +\fIfirst\/\fR[\fB..\fR\,\fIlast\/\fR][\fB+\fR[\,\fIstep\/\fR]] +.RE +.IP +Number +.I first +stands for the first invocation number in the range, number +.I last +stands for the last invocation number in the range, and +.I step +stands for the step between two consecutive invocations. +The following combinations are useful: .RS -.IP "" 2 +.TP 18 .I first -.RS 4 For every syscall from the .IR set , perform an injection for the syscall invocation number .I first only. -.RE -.IP "" 2 +.TQ +\fIfirst\/\fB..\fR\,\fIlast\fR +For every syscall from the +.IR set , +perform an injection for the syscall invocation number +.I first +and all subsequent invocations until the invocation number +.I last +(inclusive). +.TQ \fIfirst\/\fB+\fR -.RS 4 For every syscall from the .IR set , perform injections for the syscall invocation number .I first and all subsequent invocations. -.RE -.IP "" 2 -\fIfirst\/\fB+\fIstep\fR -.RS 4 +.TQ +\fIfirst\/\fB..\fR\,\fIlast\/\fB+\fR +For every syscall from the +.IR set , +perform injections for the syscall invocation number +.I first +and all subsequent invocations until the invocation number +.I last +(inclusive). +.TQ +\fIfirst\/\fB+\fR\,\fIstep\fR For every syscall from the .IR set , perform injections for syscall invocations number @@ -713,20 +1330,26 @@ perform injections for syscall invocations number .IR first + step , .IR first + step + step , and so on. -.RE +.TQ +\fIfirst\/\fB..\fR\,\fIlast\fB+\fR\,\fIstep\fR +Same as the previous, but consider only syscall invocations with numbers up to +.I last +(inclusive). .RE .IP For example, to fail each third and subsequent chdir syscalls with .BR ENOENT , use \fB\-e\ inject\fR=\,\fIchdir\/\fR:\fBerror\fR=\,\fIENOENT\/\fR:\fBwhen\fR=\,\fI3\/\fB+\fR. - +.IP The valid range for numbers .I first and .I step -is 1..65535. - +is 1..65535, and for number +.I last +is 1..65534. +.IP An injection expression can contain only one .BR error = or @@ -736,163 +1359,29 @@ specification, and only one specification. If an injection expression contains multiple .BR when = specifications, the last one takes precedence. - +.IP Accounting of syscalls that are subject to injection is done per syscall and per tracee. - +.IP Specification of syscall injection can be combined with other syscall filtering options, for example, \fB\-P \fI/dev/urandom \fB\-e inject\fR=\,\fIfile\/\fR:\fBerror\fR=\,\fIENOENT\fR. - .TP -\fB\-e\ fault\fR=\,\fIset\/\fR[:\fBerror\fR=\,\fIerrno\/\fR][:\fBwhen\fR=\,\fIexpr\/\fR] +\fB\-e\ fault\fR=\,\fIsyscall_set\/\fR[:\fBerror\fR=\,\fIerrno\/\fR][:\fBwhen\fR=\,\fIexpr\/\fR] +.TQ +\fB\-\-fault\fR=\,\fIsyscall_set\/\fR[:\fBerror\fR=\,\fIerrno\/\fR][:\fBwhen\fR=\,\fIexpr\/\fR] Perform syscall fault injection for the specified set of syscalls. - +.IP This is equivalent to more generic \fB\-e\ inject\fR= expression with default value of .I errno option set to .BR ENOSYS . -.TP -.BR "\-e\ kvm" = vcpu -Print the exit reason of kvm vcpu. Requires Linux kernel version 4.16.0 -or higher. - -.TP -.BI "\-P " path -Trace only system calls accessing -.IR path . -Multiple -.B \-P -options can be used to specify several paths. -.TP -.B \-v -Print unabbreviated versions of environment, stat, termios, etc. -calls. These structures are very common in calls and so the default -behavior displays a reasonable subset of structure members. Use -this option to get all of the gory details. -.SS Tracing -.TP 12 -.BI "\-b " syscall -If specified syscall is reached, detach from traced process. -Currently, only -.BR execve (2) -syscall is supported. This option is useful if you want to trace -multi-threaded process and therefore require -.BR \-f , -but don't want to trace its (potentially very complex) children. -.TP -.B \-D -Run tracer process as a detached grandchild, not as parent of the -tracee. This reduces the visible effect of -.B strace -by keeping the tracee a direct child of the calling process. -.TP -.B \-f -Trace child processes as they are created by currently traced -processes as a result of the -.BR fork (2), -.BR vfork (2) -and -.BR clone (2) -system calls. Note that -.B \-p -.I PID -.B \-f -will attach all threads of process -.I PID -if it is multi-threaded, not only thread with -.IR thread_id " = " PID . -.TP -.B \-ff -If the -.B \-o -.I filename -option is in effect, each processes trace is written to -.IR filename . pid -where -.I pid -is the numeric process id of each process. -This is incompatible with -.BR \-c , -since no per-process counts are kept. - -One might want to consider using -.BR strace-log-merge (1) -to obtain a combined strace log view. -.TP -.BI "\-I " interruptible -When -.B strace -can be interrupted by signals (such as pressing -.BR CTRL\-C ). -.RS -.TP 4 -.B 1 -no signals are blocked; -.TQ -.B 2 -fatal signals are blocked while decoding syscall (default); -.TQ -.B 3 -fatal signals are always blocked (default if -.BR -o " " \fIFILE\fR " " \fIPROG\fR ); -.TQ -.B 4 -fatal signals and -.BR SIGTSTP " (" CTRL\-Z ) -are always blocked (useful to make -.BI "strace -o " "FILE PROG" -not stop on -.BR CTRL\-Z , -default if -.BR \-D ). -.RE -.SS Startup -.TP 12 -\fB\-E\ \fIvar\fR=\,\fIval\fR -Run command with -.IR var = val -in its list of environment variables. -.TP -.BI "\-E " var -Remove -.IR var -from the inherited list of environment variables before passing it on to -the command. -.TP -.BI "\-p " pid -Attach to the process with the process -.SM ID -.I pid -and begin tracing. -The trace may be terminated -at any time by a keyboard interrupt signal -.RB ( CTRL\-C ). -.B strace -will respond by detaching itself from the traced process(es) -leaving it (them) to continue running. -Multiple -.B \-p -options can be used to attach to many processes in addition to -.I command -(which is optional if at least one -.B \-p -option is given). -.B \-p -"`pidof PROG`" syntax is supported. -.TP -.BI "\-u " username -Run command with the user \s-1ID\s0, group \s-2ID\s0, and -supplementary groups of -.IR username . -This option is only useful when running as root and enables the -correct execution of setuid and/or setgid binaries. -Unless this option is used setuid and setgid programs are executed -without effective privileges. .SS Miscellaneous .TP 12 .B \-d +.TQ +.B \-\-debug Show some debugging output of .B strace itself on the standard error. @@ -909,11 +1398,56 @@ and it is ignored at all if used along with one or more instances of option. .TP .B \-h +.TQ +.B \-\-help Print the help summary. .TP +.B \-\-seccomp\-bpf +Try to enable use of seccomp-bpf (see +.BR seccomp (2)) +to have +.BR ptrace (2)-stops +only when system calls that are being traced occur in the traced processes. +This option has no effect unless +.BR \-f / \-\-follow\-forks +is also specified. +.B \-\-seccomp\-bpf +is also not applicable to processes attached using +.BR \-p / \-\-attach +option. An attempt to enable system calls filtering using seccomp-bpf may +fail for various reasons, e.g. there are too many system calls to filter, +the seccomp API is not available, or +.B strace +itself is being traced. +In cases when seccomp-bpf filter setup failed, +.B strace +proceeds as usual and stops traced processes on every system call. +.TP .B \-V +.TQ +.B \-\-version Print the version number of .BR strace . +.SS "Time specification format description" +.PP +Time values can be specified as a decimal floating point number +(in a format accepted by +.BR strtod (3)), +optionally followed by one of the following suffices that specify +the unit of time: +.B s +(seconds), +.B ms +(milliseconds), +.B us +(microseconds), or +.B ns +(nanoseconds). +If no suffix is specified, the value is interpreted as microseconds. +.PP +The described format is used for +.BR \-O ", " "\-e inject" = delay_enter ", and " "\-e inject" = delay_exit +options. .SH DIAGNOSTICS When .I command @@ -968,7 +1502,7 @@ If you do use this feature, please remember to install a regular non-setuid version of .B strace for ordinary users to use. -.SH "MULTIPLE PERSONALITY SUPPORT" +.SH "MULTIPLE PERSONALITIES SUPPORT" On some architectures, .B strace supports decoding of syscalls for processes that use different ABI rather than @@ -983,14 +1517,28 @@ allbox; lb lb l l. Architecture ABIs supported -x86_64 i386, x32 (when built as an x86_64 application); i386 (when built as an x32 application) +x86_64 i386, x32 [1]; i386 [2] AArch64 ARM 32-bit EABI -PowerPC 64-bit PowerPC 32-bit -RISC-V 64-bit RISC-V 32-bit +PowerPC 64-bit [3] PowerPC 32-bit s390x s390 SPARC 64-bit SPARC 32-bit TILE 64-bit TILE 32-bit .TE +.RS 0 +.TP 5 +[1] +When +.B strace +is built as an x86_64 application +.TQ +[2] +When +.B strace +is built as an x32 application +.TQ +[3] +Big endian only +.RE .PP This support is optional and relies on ability to generate and parse structure definitions during the build time. @@ -1005,15 +1553,15 @@ has): .B m32-mpers .B strace can trace and properly decode non-native 32-bit binaries. -.TP +.TQ .B no-m32-mpers .B strace can trace, but cannot properly decode non-native 32-bit binaries. -.TP +.TQ .B mx32-mpers .B strace can trace and properly decode non-native 32-on-64-bit binaries. -.TP +.TQ .B no-mx32-mpers .B strace can trace, but cannot properly decode non-native 32-on-64-bit binaries. @@ -1109,7 +1657,9 @@ effective user .SM ID privileges while being traced. .LP -A traced process runs slowly. +A traced process runs slowly (but check out the +.B \-\-seccomp\-bpf +option). .LP Traced processes which are descended from .I command @@ -1171,7 +1721,7 @@ Since 2009, .B strace is actively maintained by Dmitry Levin. .B strace -gained support for AArch64, ARC, AVR32, Blackfin, Meta, Nios II, OpenSISC 1000, +gained support for AArch64, ARC, AVR32, Blackfin, Meta, Nios II, OpenRISC 1000, RISC-V, Tile/TileGx, Xtensa architectures since that time. In 2012, unmaintained and apparently broken support for non-Linux operating systems was removed. @@ -1190,8 +1740,10 @@ repository commit log. Problems with .B strace should be reported to the +.UR mailto:strace\-devel@lists.strace.io .B strace -mailing list at . +mailing list +.UE . .SH "SEE ALSO" .BR strace-log-merge (1), .BR ltrace (1), @@ -1200,3 +1752,14 @@ mailing list at . .BR time (1), .BR ptrace (2), .BR proc (5) +.PP +.UR https://strace.io/ +.B strace +Home Page +.UE +.SH AUTHORS +The complete list of +.B strace +contributors can be found in the +.B CREDITS +file. diff --git a/strace.c b/strace.c index 318b1409..2897195c 100644 --- a/strace.c +++ b/strace.c @@ -3,7 +3,7 @@ * Copyright (c) 1993 Branko Lankester * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey * Copyright (c) 1996-1999 Wichert Akkerman - * Copyright (c) 1999-2019 The strace developers. + * Copyright (c) 1999-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -20,17 +20,16 @@ #ifdef HAVE_PATHS_H # include #endif +#include #include #include #include #include #include -#ifdef HAVE_PRCTL -# include -#endif -#include +#include #include "kill_save_errno.h" +#include "filter_seccomp.h" #include "largefile_wrappers.h" #include "mmap_cache.h" #include "number_set.h" @@ -66,17 +65,28 @@ bool stack_trace_enabled; const unsigned int syscall_trap_sig = SIGTRAP | 0x80; cflag_t cflag = CFLAG_NONE; -unsigned int followfork; +bool followfork; +bool output_separately; unsigned int ptrace_setoptions = PTRACE_O_TRACESYSGOOD | PTRACE_O_TRACEEXEC | PTRACE_O_TRACEEXIT; +static struct xlat_data xflag_str[] = { + { HEXSTR_NON_ASCII, "non-ascii" }, + { HEXSTR_ALL, "all" }, +}; unsigned int xflag; bool debug_flag; bool Tflag; +int Tflag_scale = 1000; +int Tflag_width = 6; bool iflag; +bool nflag; bool count_wallclock; -unsigned int qflag; -static unsigned int tflag; +static int tflag_scale = 1000000000; +static unsigned tflag_width = 0; +static const char *tflag_format = NULL; static bool rflag; +static int rflag_scale = 1000; +static int rflag_width = 6; static bool print_pid_pfx; /* -I n */ @@ -92,6 +102,21 @@ static int opt_intr; /* We play with signal mask only if this mode is active: */ #define interactive (opt_intr == INTR_WHILE_WAIT) +enum { + DAEMONIZE_NONE = 0, + DAEMONIZE_GRANDCHILD = 1, + DAEMONIZE_NEW_PGROUP = 2, + DAEMONIZE_NEW_SESSION = 3, + + DAEMONIZE_OPTS_GUARD__, + MAX_DAEMONIZE_OPTS = DAEMONIZE_OPTS_GUARD__ - 1 +}; +static struct xlat_data daemonize_str[] = { + { DAEMONIZE_GRANDCHILD, "grandchild" }, + { DAEMONIZE_NEW_PGROUP, "pgroup" }, + { DAEMONIZE_NEW_PGROUP, "pgrp" }, + { DAEMONIZE_NEW_SESSION, "session" }, +}; /* * daemonized_tracer supports -D option. * With this option, strace forks twice. @@ -104,16 +129,12 @@ static int opt_intr; * wait() etc. Without -D, strace process gets lodged in between, * disrupting parent<->child link. */ -static bool daemonized_tracer; +static unsigned int daemonized_tracer; static int post_attach_sigstop = TCB_IGNORE_ONE_SIGSTOP; #define use_seize (post_attach_sigstop == 0) -/* Sometimes we want to print only succeeding syscalls. */ -bool not_failing_only; - -/* Show path associated with fd arguments */ -unsigned int show_fd_path; +unsigned int pidns_translation; static bool detach_on_execve; @@ -233,80 +254,200 @@ print_version(void) static void usage(void) { +#ifdef ENABLE_STACKTRACE +# define K_OPT "k" +#else +# define K_OPT "" +#endif + printf("\ -usage: strace [-CdffhiqrtttTvVwxxy] [-I n] [-e expr]...\n\ - [-a column] [-o file] [-s strsize] [-P path]...\n\ - -p pid... / [-D] [-E var=val]... [-u username] PROG [ARGS]\n\ - or: strace -c[dfw] [-I n] [-e expr]... [-O overhead] [-S sortby]\n\ - -p pid... / [-D] [-E var=val]... [-u username] PROG [ARGS]\n\ +Usage: strace [-ACdffhi" K_OPT "qqrtttTvVwxxyyzZ] [-I N] [-b execve] [-e EXPR]...\n\ + [-a COLUMN] [-o FILE] [-s STRSIZE] [-X FORMAT] [-O OVERHEAD]\n\ + [-S SORTBY] [-P PATH]... [-p PID]... [-U COLUMNS] [--seccomp-bpf]\n\ + { -p PID | [-DDD] [-E VAR=VAL]... [-u USERNAME] PROG [ARGS] }\n\ + or: strace -c[dfwzZ] [-I N] [-b execve] [-e EXPR]... [-O OVERHEAD]\n\ + [-S SORTBY] [-P PATH]... [-p PID]... [-U COLUMNS] [--seccomp-bpf]\n\ + { -p PID | [-DDD] [-E VAR=VAL]... [-u USERNAME] PROG [ARGS] }\n\ +\n\ +General:\n\ + -e EXPR a qualifying expression: OPTION=[!]all or OPTION=[!]VAL1[,VAL2]...\n\ + options: trace, abbrev, verbose, raw, signal, read, write, fault,\n\ + inject, status, quiet, kvm, decode-fds\n\ +\n\ +Startup:\n\ + -E VAR=VAL, --env=VAR=VAL\n\ + put VAR=VAL in the environment for command\n\ + -E VAR, --env=VAR\n\ + remove VAR from the environment for command\n\ + -p PID, --attach=PID\n\ + trace process with process id PID, may be repeated\n\ + -u USERNAME, --user=USERNAME\n\ + run command as USERNAME handling setuid and/or setgid\n\ +\n\ +Tracing:\n\ + -b execve, --detach-on=execve\n\ + detach on execve syscall\n\ + -D, --daemonize[=grandchild]\n\ + run tracer process as a grandchild, not as a parent\n\ + -DD, --daemonize=pgroup\n\ + run tracer process in a separate process group\n\ + -DDD, --daemonize=session\n\ + run tracer process in a separate session\n\ + -f, --follow-forks\n\ + follow forks\n\ + -ff, --follow-forks --output-separately\n\ + follow forks with output into separate files\n\ + -I INTERRUPTIBLE, --interruptible=INTERRUPTIBLE\n\ + 1, anywhere: no signals are blocked\n\ + 2, waiting: fatal signals are blocked while decoding syscall (default)\n\ + 3, never: fatal signals are always blocked (default if '-o FILE PROG')\n\ + 4, never_tstp: fatal signals and SIGTSTP (^Z) are always blocked\n\ + (useful to make 'strace -o FILE PROG' not stop on ^Z)\n\ +\n\ +Filtering:\n\ + -e trace=[!]{[?]SYSCALL[@64|@32|@x32]|[?]/REGEX|GROUP|all|none},\n\ + --trace=[!]{[?]SYSCALL[@64|@32|@x32]|[?]/REGEX|GROUP|all|none}\n\ + trace only specified syscalls.\n\ + groups: %%clock, %%creds, %%desc, %%file, %%fstat, %%fstatfs %%ipc, %%lstat,\n\ + %%memory, %%net, %%process, %%pure, %%signal, %%stat, %%%%stat,\n\ + %%statfs, %%%%statfs\n\ + -e signal=SET, --signal=SET\n\ + trace only the specified set of signals\n\ + print only the signals from SET\n\ + -e status=SET, --status=SET\n\ + print only system calls with the return statuses in SET\n\ + statuses: successful, failed, unfinished, unavailable, detached\n\ + -P PATH, --trace-path=PATH\n\ + trace accesses to PATH\n\ + -z, --successful-only\n\ + print only syscalls that returned without an error code\n\ + -Z, --failed-only\n\ + print only syscalls that returned with an error code\n\ \n\ Output format:\n\ - -a column alignment COLUMN for printing syscall results (default %d)\n\ - -i print instruction pointer at time of syscall\n\ + -a COLUMN, --columns=COLUMN\n\ + alignment COLUMN for printing syscall results (default %d)\n\ + -e abbrev=SET, --abbrev=SET\n\ + abbreviate output for the syscalls in SET\n\ + -e verbose=SET, --verbose=SET\n\ + dereference structures for the syscall in SET\n\ + -e raw=SET, --raw=SET\n\ + print undecoded arguments for the syscalls in SET\n\ + -e read=SET, --read=SET\n\ + dump the data read from the file descriptors in SET\n\ + -e write=SET, --write=SET\n\ + dump the data written to the file descriptors in SET\n\ + -e quiet=SET, --quiet=SET\n\ + suppress various informational messages\n\ + messages: attach, exit, path-resolution, personality, thread-execve\n\ + -e kvm=vcpu, --kvm=vcpu\n\ + print exit reason of kvm vcpu\n\ + -e decode-fds=SET, --decode-fds=SET\n\ + what kinds of file descritor information details to decode\n\ + details: dev (device major/minor for block/char device files)\n\ + path (file path),\n\ + pidfd (associated PID for pidfds),\n\ + socket (protocol-specific information for socket descriptors)\n\ + -i, --instruction-pointer\n\ + print instruction pointer at time of syscall\n\ " #ifdef ENABLE_STACKTRACE "\ - -k obtain stack trace between each syscall\n\ + -k, --stack-traces\n\ + obtain stack trace between each syscall\n\ " #endif "\ - -o file send trace output to FILE instead of stderr\n\ - -q suppress messages about attaching, detaching, etc.\n\ - -r print relative timestamp\n\ - -s strsize limit length of print strings to STRSIZE chars (default %d)\n\ - -t print absolute timestamp\n\ - -tt print absolute timestamp with usecs\n\ - -T print time spent in each syscall\n\ - -x print non-ascii strings in hex\n\ - -xx print all strings in hex\n\ - -X format set the format for printing of named constants and flags\n\ - -y print paths associated with file descriptor arguments\n\ - -yy print protocol specific information associated with socket file descriptors\n\ + -n, --syscall-number\n\ + print syscall number\n\ + -o FILE, --output=FILE\n\ + send trace output to FILE instead of stderr\n\ + -A, --output-append-mode\n\ + open the file provided in the -o option in append mode\n\ + --output-separately\n\ + output into separate files (by appending pid to file names)\n\ + -q, --quiet=attach,personality\n\ + suppress messages about attaching, detaching, etc.\n\ + -qq, --quiet=attach,personality,exit\n\ + suppress messages about process exit status as well.\n\ + -qqq, --quiet=all\n\ + suppress all suppressible messages.\n\ + -r, --relative-timestamps[=PRECISION]\n\ + print relative timestamp\n\ + precision: one of s, ms, us, ns; default is microseconds\n\ + -s STRSIZE, --string-limit=STRSIZE\n\ + limit length of print strings to STRSIZE chars (default %d)\n\ + --absolute-timestamps=[[format:]FORMAT[,[precision:]PRECISION]]\n\ + set the format of absolute timestamps\n\ + format: none, time, or unix; default is time\n\ + precision: one of s, ms, us, ns; default is seconds\n\ + -t, --absolute-timestamps[=time]\n\ + print absolute timestamp\n\ + -tt, --absolute-timestamps=[time,]us\n\ + print absolute timestamp with usecs\n\ + -ttt, --absolute-timestamps=unix,us\n\ + print absolute UNIX time with usecs\n\ + -T, --syscall-times[=PRECISION]\n\ + print time spent in each syscall\n\ + precision: one of s, ms, us, ns; default is microseconds\n\ + -v, --no-abbrev\n\ + verbose mode: print entities unabbreviated\n\ + -x, --strings-in-hex=non-ascii\n\ + print non-ascii strings in hex\n\ + -xx, --strings-in-hex[=all]\n\ + print all strings in hex\n\ + -X FORMAT, --const-print-style=FORMAT\n\ + set the FORMAT for printing of named constants and flags\n\ + formats: raw, abbrev, verbose\n\ + -y, --decode-fds[=path]\n\ + print paths associated with file descriptor arguments\n\ + -yy, --decode-fds=all\n\ + print all available information associated with file\n\ + descriptors in addition to paths\n\ \n\ Statistics:\n\ - -c count time, calls, and errors for each syscall and report summary\n\ - -C like -c but also print regular output\n\ - -O overhead set overhead for tracing syscalls to OVERHEAD usecs\n\ - -S sortby sort syscall counts by: time, calls, name, nothing (default %s)\n\ - -w summarise syscall latency (default is system time)\n\ + -c, --summary-only\n\ + count time, calls, and errors for each syscall and report\n\ + summary\n\ + -C, --summary like -c, but also print the regular output\n\ + -O OVERHEAD[UNIT], --summary-syscall-overhead=OVERHEAD[UNIT]\n\ + set overhead for tracing syscalls to OVERHEAD UNITs\n\ + units: one of s, ms, us, ns; default is microseconds\n\ + -S SORTBY, --summary-sort-by=SORTBY\n\ + sort syscall counts by: time, min-time, max-time, avg-time,\n\ + calls, errors, name, nothing (default %s)\n\ + -U COLUMNS, --summary-columns=COLUMNS\n\ + show specific columns in the summary report: comma-separated\n\ + list of time-percent, total-time, min-time, max-time, \n\ + avg-time, calls, errors, name\n\ + (default time-percent,total-time,avg-time,calls,errors,name)\n\ + -w, --summary-wall-clock\n\ + summarise syscall latency (default is system time)\n\ \n\ -Filtering:\n\ - -e expr a qualifying expression: option=[!]all or option=[!]val1[,val2]...\n\ - options: trace, abbrev, verbose, raw, signal, read, write, fault, inject, kvm\n\ - -P path trace accesses to path\n\ -\n\ -Tracing:\n\ - -b execve detach on execve syscall\n\ - -D run tracer process as a detached grandchild, not as parent\n\ - -f follow forks\n\ - -ff follow forks with output into separate files\n\ - -I interruptible\n\ - 1: no signals are blocked\n\ - 2: fatal signals are blocked while decoding syscall (default)\n\ - 3: fatal signals are always blocked (default if '-o FILE PROG')\n\ - 4: fatal signals and SIGTSTP (^Z) are always blocked\n\ - (useful to make 'strace -o FILE PROG' not stop on ^Z)\n\ -\n\ -Startup:\n\ - -E var remove var from the environment for command\n\ - -E var=val put var=val in the environment for command\n\ - -p pid trace process with process id PID, may be repeated\n\ - -u username run command as username handling setuid and/or setgid\n\ +Tampering:\n\ + -e inject=SET[:error=ERRNO|:retval=VALUE][:signal=SIG][:syscall=SYSCALL]\n\ + [:delay_enter=DELAY][:delay_exit=DELAY][:when=WHEN],\n\ + --inject=SET[:error=ERRNO|:retval=VALUE][:signal=SIG][:syscall=SYSCALL]\n\ + [:delay_enter=DELAY][:delay_exit=DELAY][:when=WHEN]\n\ + perform syscall tampering for the syscalls in SET\n\ + delay: microseconds or NUMBER{s|ms|us|ns}\n\ + when: FIRST[..LAST][+[STEP]]\n\ + -e fault=SET[:error=ERRNO][:when=WHEN], --fault=SET[:error=ERRNO][:when=WHEN]\n\ + synonym for -e inject with default ERRNO set to ENOSYS.\n\ \n\ Miscellaneous:\n\ - -d enable debug output to stderr\n\ - -v verbose mode: print unabbreviated argv, stat, termios, etc. args\n\ - -h print help message\n\ - -V print version\n\ + -d, --debug enable debug output to stderr\n\ + -h, --help print help message\n\ + --seccomp-bpf enable seccomp-bpf filtering\n\ + -V, --version print version\n\ " /* ancient, no one should use it -F -- attempt to follow vforks (deprecated, use -f)\n\ */ -/* this is broken, so don't document it --z -- print only succeeding syscalls\n\ - */ , DEFAULT_ACOLUMN, DEFAULT_STRLEN, DEFAULT_SORTBY); exit(0); + +#undef K_OPT } void ATTRIBUTE_NORETURN @@ -321,9 +462,14 @@ die(void) } static void -error_opt_arg(int opt, const char *arg) +error_opt_arg(int opt, const struct option *lopt, const char *arg) { - error_msg_and_help("invalid -%c argument: '%s'", opt, arg); + if (lopt && lopt->name) { + error_msg_and_help("invalid --%s argument: '%s'", + lopt->name, arg); + } else { + error_msg_and_help("invalid -%c argument: '%s'", opt, arg); + } } static const char *ptrace_attach_cmd; @@ -397,7 +543,7 @@ set_cloexec_flag(int fd) { int flags, newflags; - flags = fcntl(fd, F_GETFD); + flags = fcntl_fd(fd, F_GETFD); if (flags < 0) { /* Can happen only if fd is bad. * Should never happen: if it does, we have a bug @@ -411,7 +557,7 @@ set_cloexec_flag(int fd) if (flags == newflags) return; - if (fcntl(fd, F_SETFD, newflags)) /* never fails */ + if (fcntl_fd(fd, F_SETFD, newflags)) /* never fails */ perror_msg_and_die("fcntl(%d, F_SETFD, %#x)", fd, newflags); } @@ -500,7 +646,7 @@ outf_perror(const struct tcb * const tcp) return; /* This is ugly, but we don't store separate file names */ - if (followfork >= 2) + if (output_separately) perror_msg("%s.%u", outfname, tcp->pid); else perror_msg("%s", outfname); @@ -604,12 +750,13 @@ printleader(struct tcb *tcp) /* If -ff, "previous tcb we printed" is always the same as current, * because we have per-tcb output files. */ - if (followfork >= 2) + if (output_separately) printing_tcp = tcp; if (printing_tcp) { set_current_tcp(printing_tcp); - if (printing_tcp->curcol != 0 && (followfork < 2 || printing_tcp == tcp)) { + if (!tcp->staged_output_data && printing_tcp->curcol != 0 && + (!output_separately || printing_tcp == tcp)) { /* * case 1: we have a shared log (i.e. not -ff), and last line * wasn't finished (same or different tcb, doesn't matter). @@ -630,28 +777,23 @@ printleader(struct tcb *tcp) else if (nprocs > 1 && !outfname) tprintf("[pid %5u] ", tcp->pid); - if (tflag) { + if (tflag_format) { struct timespec ts; clock_gettime(CLOCK_REALTIME, &ts); - if (tflag > 2) { - tprintf("%lld.%06ld ", - (long long) ts.tv_sec, (long) ts.tv_nsec / 1000); - } else { - time_t local = ts.tv_sec; - char str[MAX(sizeof("HH:MM:SS"), sizeof(ts.tv_sec) * 3)]; - struct tm *tm = localtime(&local); + time_t local = ts.tv_sec; + char str[MAX(sizeof("HH:MM:SS"), sizeof(local) * 3)]; + struct tm *tm = localtime(&local); - if (tm) - strftime(str, sizeof(str), "%T", tm); - else - xsprintf(str, "%lld", (long long) local); - if (tflag > 1) - tprintf("%s.%06ld ", - str, (long) ts.tv_nsec / 1000); - else - tprintf("%s ", str); - } + if (tm) + strftime(str, sizeof(str), tflag_format, tm); + else + xsprintf(str, "%lld", (long long) local); + if (tflag_width) + tprintf("%s.%0*ld ", str, tflag_width, + (long) ts.tv_nsec / tflag_scale); + else + tprintf("%s ", str); } if (rflag) { @@ -666,12 +808,17 @@ printleader(struct tcb *tcp) ts_sub(&dts, &ts, &ots); ots = ts; - tprintf("%s%6ld.%06ld%s ", - tflag ? "(+" : "", - (long) dts.tv_sec, (long) dts.tv_nsec / 1000, - tflag ? ")" : ""); + tprintf("%s%6ld", tflag_format ? "(+" : "", (long) dts.tv_sec); + if (rflag_width) { + tprintf(".%0*ld", + rflag_width, (long) dts.tv_nsec / rflag_scale); + } + tprints(tflag_format ? ") " : " "); } + if (nflag) + print_syscall_number(tcp); + if (iflag) print_instruction_pointer(tcp); } @@ -692,7 +839,7 @@ after_successful_attach(struct tcb *tcp, const unsigned int flags) { tcp->flags |= TCB_ATTACHED | TCB_STARTUP | flags; tcp->outf = shared_log; /* if not -ff mode, the same file is for all */ - if (followfork >= 2) { + if (output_separately) { char name[PATH_MAX]; xsprintf(name, "%s.%u", outfname, tcp->pid); tcp->outf = strace_fopen(name); @@ -790,6 +937,14 @@ droptcb(struct tcb *tcp) if (tcp->pid == 0) return; + if (cflag && debug_flag) { + struct timespec dt; + + ts_sub(&dt, &tcp->stime, &tcp->atime); + debug_func_msg("pid %d: %.9f seconds of system time spent " + "since attach", tcp->pid, ts_float(&dt)); + } + int p; for (p = 0; p < SUPPORTED_PERSONALITIES; ++p) free(tcp->inject_vec[p]); @@ -812,12 +967,18 @@ droptcb(struct tcb *tcp) debug_msg("dropped tcb for pid %d, %d remain", tcp->pid, nprocs); if (tcp->outf) { - if (followfork >= 2) { - if (tcp->curcol != 0) + bool publish = true; + if (!is_complete_set(status_set, NUMBER_OF_STATUSES)) { + publish = is_number_in_set(STATUS_DETACHED, status_set); + strace_close_memstream(tcp, publish); + } + + if (output_separately) { + if (tcp->curcol != 0 && publish) fprintf(tcp->outf, " \n"); fclose(tcp->outf); } else { - if (printing_tcp == tcp && tcp->curcol != 0) + if (printing_tcp == tcp && tcp->curcol != 0 && publish) fprintf(tcp->outf, " \n"); flush_tcp_output(tcp); } @@ -987,7 +1148,8 @@ detach(struct tcb *tcp) } drop: - if (!qflag && (tcp->flags & TCB_ATTACHED)) + if (!is_number_in_set(QUIET_ATTACH, quiet_set) + && (tcp->flags & TCB_ATTACHED)) error_msg("Process %u detached", tcp->pid); droptcb(tcp); @@ -1040,7 +1202,7 @@ attach_tcb(struct tcb *const tcp) unsigned int ntid = 0, nerr = 0; if (followfork && tcp->pid != strace_child && - xsprintf(procdir, task_path, tcp->pid) > 0 && + xsprintf(procdir, task_path, get_proc_pid(tcp)) > 0 && (dir = opendir(procdir)) != NULL) { struct_dirent *de; @@ -1068,7 +1230,7 @@ attach_tcb(struct tcb *const tcp) closedir(dir); } - if (!qflag) { + if (!is_number_in_set(QUIET_ATTACH, quiet_set)) { if (ntid > nerr) error_msg("Process %u attached" " with %u threads", @@ -1104,6 +1266,27 @@ startup_attach(void) /* grandchild */ /* We will be the tracer process. Remember our new pid: */ strace_tracer_pid = getpid(); + + switch (daemonized_tracer) { + case DAEMONIZE_NEW_PGROUP: + /* + * If -D is passed twice, create a new process group, + * so we won't be killed by kill(0, ...). + */ + if (setpgid(0, 0) < 0) + perror_msg_and_die("Cannot create a new" + " process group"); + break; + case DAEMONIZE_NEW_SESSION: + /* + * If -D is passed thrice, create a new session, + * so we won't be killed upon session termination. + */ + if (setsid() < 0) + perror_msg_and_die("Cannot create a new" + " session"); + break; + } } for (tcbi = 0; tcbi < tcbtabsize; tcbi++) { @@ -1147,6 +1330,7 @@ struct exec_params { uid_t run_euid; gid_t run_egid; char **argv; + char **env; char *pathname; struct sigaction child_sa; }; @@ -1205,7 +1389,11 @@ exec_or_die(void) if (params_for_tracee.child_sa.sa_handler != SIG_DFL) sigaction(SIGCHLD, ¶ms_for_tracee.child_sa, NULL); - execv(params->pathname, params->argv); + debug_msg("seccomp filter %s", + seccomp_filtering ? "enabled" : "disabled"); + if (seccomp_filtering) + init_seccomp_filter(); + execve(params->pathname, params->argv, params->env); perror_msg_and_die("exec"); } @@ -1274,7 +1462,7 @@ redirect_standard_fds(void) } static void -startup_child(char **argv) +startup_child(char **argv, char **env) { strace_stat_t statbuf; const char *filename; @@ -1347,13 +1535,14 @@ startup_child(char **argv) params_for_tracee.run_euid = (statbuf.st_mode & S_ISUID) ? statbuf.st_uid : run_uid; params_for_tracee.run_egid = (statbuf.st_mode & S_ISGID) ? statbuf.st_gid : run_gid; params_for_tracee.argv = argv; + params_for_tracee.env = env; /* * On NOMMU, can be safely freed only after execve in tracee. * It's hard to know when that happens, so we just leak it. */ params_for_tracee.pathname = NOMMU_SYSTEM ? xstrdup(pathname) : pathname; -#if defined HAVE_PRCTL && defined PR_SET_PTRACER && defined PR_SET_PTRACER_ANY +#if defined PR_SET_PTRACER && defined PR_SET_PTRACER_ANY if (daemonized_tracer) prctl(PR_SET_PTRACER, PR_SET_PTRACER_ANY); #endif @@ -1443,6 +1632,10 @@ startup_child(char **argv) * to create a genuine separate stack and execute on it. */ } + + if (seccomp_filtering) + tcp->flags |= TCB_SECCOMP_FILTER; + /* * A case where straced process is part of a pipe: * { sleep 1; yes | head -n99999; } | strace -o/dev/null sh -c 'exec <&-; sleep 9' @@ -1507,35 +1700,29 @@ test_ptrace_seize(void) } } -static unsigned +static unsigned int get_os_release(void) { - unsigned rel; - const char *p; struct utsname u; if (uname(&u) < 0) perror_msg_and_die("uname"); - /* u.release has this form: "3.2.9[-some-garbage]" */ - rel = 0; - p = u.release; - for (;;) { - if (!(*p >= '0' && *p <= '9')) - error_msg_and_die("Bad OS release string: '%s'", u.release); - /* Note: this open-codes KERNEL_VERSION(): */ - rel = (rel << 8) | atoi(p); - if (rel >= KERNEL_VERSION(1, 0, 0)) - break; - while (*p >= '0' && *p <= '9') - p++; - if (*p != '.') { - if (rel >= KERNEL_VERSION(0, 1, 0)) { - /* "X.Y-something" means "X.Y.0" */ - rel <<= 8; - break; - } - error_msg_and_die("Bad OS release string: '%s'", u.release); + /* + * u.release string consists of at most three parts + * and normally has this form: "3.2.9[-some-garbage]", + * "X.Y-something" means "X.Y.0". + */ + const char *p = u.release; + unsigned int rel = 0; + for (unsigned int parts = 0; parts < 3; ++parts) { + unsigned int n = 0; + for (; (*p >= '0') && (*p <= '9'); ++p) { + n *= 10; + n += *p - '0'; } - p++; + rel <<= 8; + rel |= n; + if (*p == '.') + ++p; } return rel; } @@ -1547,6 +1734,211 @@ set_sighandler(int signo, void (*sighandler)(int), struct sigaction *oldact) sigaction(signo, &sa, oldact); } +static int +parse_interruptible_arg(const char *arg) +{ + static const struct xlat_data intr_str[] = { + { INTR_ANYWHERE, "anywhere" }, + { INTR_ANYWHERE, "always" }, + { INTR_WHILE_WAIT, "waiting" }, + { INTR_NEVER, "never" }, + { INTR_BLOCK_TSTP_TOO, "never_tstp" }, + }; + + const struct xlat_data *intr_arg = find_xlat_val(intr_str, arg); + + return intr_arg ? (int) intr_arg->val + : (int) string_to_uint_upto(arg, NUM_INTR_OPTS - 1); +} + +static int +parse_ts_arg(const char *in_arg) +{ + static const char format_pfx[] = "format:"; + static const char scale_pfx[] = "precision:"; + + enum { + TOKEN_FORMAT = 1 << 0, + TOKEN_SCALE = 1 << 1, + } token_type; + enum { + FK_UNSET, + FK_NONE, + FK_TIME, + FK_UNIX, + } format_kind = FK_UNSET; + int precision_width; + int precision_scale = 0; + char *arg = xstrdup(in_arg); + char *saveptr = NULL; + + for (const char *token = strtok_r(arg, ",", &saveptr); + token; token = strtok_r(NULL, ",", &saveptr)) { + token_type = TOKEN_FORMAT | TOKEN_SCALE; + + if (!strncasecmp(token, format_pfx, sizeof(format_pfx) - 1)) { + token += sizeof(format_pfx) - 1; + token_type = TOKEN_FORMAT; + } else if (!strncasecmp(token, scale_pfx, + sizeof(scale_pfx) - 1)) { + token += sizeof(scale_pfx) - 1; + token_type = TOKEN_SCALE; + + } + + if (token_type & TOKEN_FORMAT) { + if (!strcasecmp(token, "none")) { + format_kind = FK_NONE; + continue; + } else if (!strcasecmp(token, "time")) { + format_kind = FK_TIME; + continue; + } else if (!strcasecmp(token, "unix")) { + format_kind = FK_UNIX; + continue; + } + } + + if (token_type & TOKEN_SCALE) { + precision_scale = + str2timescale_optarg(token, &precision_width); + + if (precision_scale > 0) + continue; + } + + free(arg); + return -1; + } + + switch (format_kind) { + case FK_UNSET: + if (!tflag_format) + tflag_format = "%T"; + break; + case FK_NONE: + tflag_format = NULL; + break; + case FK_TIME: + tflag_format = "%T"; + break; + case FK_UNIX: + tflag_format = "%s"; + break; + } + + if (precision_scale > 0) { + tflag_scale = precision_scale; + tflag_width = precision_width; + } + + free(arg); + return 0; +} + +static void +remove_from_env(char **env, size_t *env_count, const char *var) +{ + const size_t len = strlen(var); + size_t w = 0; + + debug_func_msg("Removing variable \"%s\" from the command environment", + var); + + for (size_t r = 0; r < *env_count; ++r) { + if (!strncmp(env[r], var, len) && + (env[r][len] == '=' || env[r][len] == '\0')) { + debug_func_msg("Skipping entry %zu (\"%s\")", + r, env[r]); + continue; + } + if (w < r) { + debug_func_msg("Copying entry %zu to %zu", r, w); + env[w] = env[r]; + } + ++w; + } + + if (w < *env_count) { + debug_func_msg("Decreasing env count from %zu to %zu", + *env_count, w); + *env_count = w; + } +} + +static void +add_to_env(char **env, size_t *env_count, char *var, const size_t len) +{ + size_t r; + + for (r = 0; r < *env_count; ++r) { + if (!strncmp(env[r], var, len) && + (env[r][len] == '=' || env[r][len] == '\0')) + break; + } + + if (r < *env_count) { + debug_func_msg("Replacing entry %zu (\"%s\")" + ", key=\"%.*s\", var=\"%s\"", + r, env[r], (int) len, var, var); + } else { + debug_func_msg("Adding entry %zu" + ", key=\"%.*s\", var=\"%s\"", + r, (int) len, var, var); + *env_count += 1; + } + + env[r] = var; +} + +static void +update_env(char **env, size_t *env_count, char *var) +{ + char *val = strchr(var, '='); + + if (val) + add_to_env(env, env_count, var, val - var); + else + remove_from_env(env, env_count, var); +} + +static char ** +make_env(char **orig_env, char *const *env_changes, size_t env_change_count) +{ + if (!env_change_count) + return orig_env; + + char **new_env; + size_t new_env_count = 0; + size_t new_env_size; + + /* Determining the environment variable count. */ + if (orig_env) { + for (; orig_env[new_env_count]; ++new_env_count) + ; + } + new_env_size = new_env_count + env_change_count; + + if (new_env_size < new_env_count || new_env_size < env_change_count || + new_env_size + 1 < new_env_size) + error_msg_and_die("Cannot construct new environment: the sum " + "of old environment variable count (%zu) and " + "environment changes count (%zu) is too big", + new_env_count, env_change_count); + + new_env_size++; + new_env = xallocarray(new_env_size, sizeof(*new_env)); + if (new_env_count) + memcpy(new_env, orig_env, new_env_count * sizeof(*orig_env)); + + for (size_t i = 0; i < env_change_count; ++i) + update_env(new_env, &new_env_count, env_changes[i]); + + new_env[new_env_count] = NULL; + + return new_env; +} + /* * Initialization part of main() was eating much stack (~0.5k), * which was unused after init. @@ -1558,8 +1950,51 @@ set_sighandler(int signo, void (*sighandler)(int), struct sigaction *oldact) static void ATTRIBUTE_NOINLINE init(int argc, char *argv[]) { + static const char qflag_qual[] = "attach,personality"; + static const char qqflag_qual[] = "exit,attach,personality"; + static const char qqqflag_qual[] = "all"; + static const char yflag_qual[] = "path"; + static const char yyflag_qual[] = "all"; + static const char tflag_str[] = "format:time"; + static const char ttflag_str[] = "precision:us,format:time"; + static const char tttflag_str[] = "format:unix,precision:us"; + int c, i; - int optF = 0; + int optF = 0, zflags = 0; + int lopt_idx; + int daemonized_tracer_long = DAEMONIZE_NONE; + int xflag_long = HEXSTR_NONE; + int qflag_short = 0; + int followfork_short = 0; + int yflag_short = 0; + bool tflag_long_set = false; + int tflag_short = 0; + bool columns_set = false; + bool sortby_set = false; + + /* + * We can initialise global_path_set only after tracing backend + * initialisation, so we store pointers to all the paths from + * command-line arguments during parsing in this array and then, + * after the successful backend initialisation, iterate over it + * in order to add them to global_path_set. + */ + const char **pathtrace_paths = NULL; + size_t pathtrace_size = 0; + size_t pathtrace_count = 0; + + /** + * Storage for environment changes requested for command. They + * are stored in a temporary array and not applied as is during + * command line parsing for two reasons: + * - putenv() changes environment of the tracer as well, + * which is unacceptable. + * - Environment changes have to be applied + * in a tracing-backend-specific way. + */ + char **env_changes = NULL; + size_t env_change_size = 0; + size_t env_change_count = 0; if (!program_invocation_name || !*program_invocation_name) { static char name[] = "strace"; @@ -1571,26 +2006,121 @@ init(int argc, char *argv[]) os_release = get_os_release(); + pidns_init(); + shared_log = stderr; set_sortby(DEFAULT_SORTBY); set_personality(DEFAULT_PERSONALITY); - qualify("trace=all"); - qualify("abbrev=all"); - qualify("verbose=all"); + qualify_trace("all"); + qualify_abbrev("all"); + qualify_verbose("all"); #if DEFAULT_QUAL_FLAGS != (QUAL_TRACE | QUAL_ABBREV | QUAL_VERBOSE) # error Bug in DEFAULT_QUAL_FLAGS #endif - qualify("signal=all"); - while ((c = getopt(argc, argv, "+" -#ifdef ENABLE_STACKTRACE - "k" -#endif - "a:Ab:cCdDe:E:fFhiI:o:O:p:P:qrs:S:tTu:vVwxX:yz")) != EOF) { + qualify_status("all"); + qualify_quiet("none"); + qualify_decode_fd("none"); + qualify_signals("all"); + + static const char optstring[] = + "+a:Ab:cCdDe:E:fFhiI:kno:O:p:P:qrs:S:tTu:U:vVwxX:yzZ"; + + enum { + GETOPT_SECCOMP = 0x100, + GETOPT_DAEMONIZE, + GETOPT_HEX_STR, + GETOPT_FOLLOWFORKS, + GETOPT_OUTPUT_SEPARATELY, + GETOPT_TS, + GETOPT_PIDNS_TRANSLATION, + + GETOPT_QUAL_TRACE, + GETOPT_QUAL_ABBREV, + GETOPT_QUAL_VERBOSE, + GETOPT_QUAL_RAW, + GETOPT_QUAL_SIGNAL, + GETOPT_QUAL_STATUS, + GETOPT_QUAL_READ, + GETOPT_QUAL_WRITE, + GETOPT_QUAL_FAULT, + GETOPT_QUAL_INJECT, + GETOPT_QUAL_KVM, + GETOPT_QUAL_QUIET, + GETOPT_QUAL_DECODE_FD, + }; + static const struct option longopts[] = { + { "columns", required_argument, 0, 'a' }, + { "output-append-mode", no_argument, 0, 'A' }, + { "detach-on", required_argument, 0, 'b' }, + { "summary-only", no_argument, 0, 'c' }, + { "summary", no_argument, 0, 'C' }, + { "debug", no_argument, 0, 'd' }, + { "daemonize", optional_argument, 0, GETOPT_DAEMONIZE }, + { "daemonised", optional_argument, 0, GETOPT_DAEMONIZE }, + { "daemonized", optional_argument, 0, GETOPT_DAEMONIZE }, + { "env", required_argument, 0, 'E' }, + { "follow-forks", no_argument, 0, GETOPT_FOLLOWFORKS }, + { "output-separately", no_argument, 0, + GETOPT_OUTPUT_SEPARATELY }, + { "help", no_argument, 0, 'h' }, + { "instruction-pointer", no_argument, 0, 'i' }, + { "interruptible", required_argument, 0, 'I' }, + { "stack-traces", no_argument, 0, 'k' }, + { "syscall-number", no_argument, 0, 'n' }, + { "output", required_argument, 0, 'o' }, + { "summary-syscall-overhead", required_argument, 0, 'O' }, + { "attach", required_argument, 0, 'p' }, + { "trace-path", required_argument, 0, 'P' }, + { "relative-timestamps", optional_argument, 0, 'r' }, + { "string-limit", required_argument, 0, 's' }, + { "summary-sort-by", required_argument, 0, 'S' }, + { "absolute-timestamps", optional_argument, 0, GETOPT_TS }, + { "timestamps", optional_argument, 0, GETOPT_TS }, + { "syscall-times", optional_argument, 0, 'T' }, + { "user", required_argument, 0, 'u' }, + { "summary-columns", required_argument, 0, 'U' }, + { "no-abbrev", no_argument, 0, 'v' }, + { "version", no_argument, 0, 'V' }, + { "summary-wall-clock", no_argument, 0, 'w' }, + { "strings-in-hex", optional_argument, 0, GETOPT_HEX_STR }, + { "const-print-style", required_argument, 0, 'X' }, + { "pidns-translation", no_argument , 0, GETOPT_PIDNS_TRANSLATION }, + { "successful-only", no_argument, 0, 'z' }, + { "failed-only", no_argument, 0, 'Z' }, + { "failing-only", no_argument, 0, 'Z' }, + { "seccomp-bpf", no_argument, 0, GETOPT_SECCOMP }, + + { "trace", required_argument, 0, GETOPT_QUAL_TRACE }, + { "abbrev", required_argument, 0, GETOPT_QUAL_ABBREV }, + { "verbose", required_argument, 0, GETOPT_QUAL_VERBOSE }, + { "raw", required_argument, 0, GETOPT_QUAL_RAW }, + { "signals", required_argument, 0, GETOPT_QUAL_SIGNAL }, + { "status", required_argument, 0, GETOPT_QUAL_STATUS }, + { "read", required_argument, 0, GETOPT_QUAL_READ }, + { "write", required_argument, 0, GETOPT_QUAL_WRITE }, + { "fault", required_argument, 0, GETOPT_QUAL_FAULT }, + { "inject", required_argument, 0, GETOPT_QUAL_INJECT }, + { "kvm", required_argument, 0, GETOPT_QUAL_KVM }, + { "quiet", optional_argument, 0, GETOPT_QUAL_QUIET }, + { "silent", optional_argument, 0, GETOPT_QUAL_QUIET }, + { "silence", optional_argument, 0, GETOPT_QUAL_QUIET }, + { "decode-fds", optional_argument, 0, GETOPT_QUAL_DECODE_FD }, + + { 0, 0, 0, 0 } + }; + + lopt_idx = -1; + while ((c = getopt_long(argc, argv, optstring, longopts, &lopt_idx)) != EOF) { + const struct option *lopt = lopt_idx >= 0 + && (unsigned) lopt_idx < ARRAY_SIZE(longopts) + ? longopts + lopt_idx : NULL; + lopt_idx = -1; + switch (c) { case 'a': acolumn = string_to_uint(optarg); if (acolumn < 0) - error_opt_arg(c, optarg); + error_opt_arg(c, lopt, optarg); break; case 'A': open_append = true; @@ -1603,13 +2133,17 @@ init(int argc, char *argv[]) break; case 'c': if (cflag == CFLAG_BOTH) { - error_msg_and_help("-c and -C are mutually exclusive"); + error_msg_and_help("-c/--summary-only and " + "-C/--summary are mutually " + "exclusive"); } cflag = CFLAG_ONLY_STATS; break; case 'C': if (cflag == CFLAG_ONLY_STATS) { - error_msg_and_help("-c and -C are mutually exclusive"); + error_msg_and_help("-c/--summary-only and " + "-C/--summary are mutually " + "exclusive"); } cflag = CFLAG_BOTH; break; @@ -1617,17 +2151,35 @@ init(int argc, char *argv[]) debug_flag = 1; break; case 'D': - daemonized_tracer = 1; + daemonized_tracer++; + break; + case GETOPT_DAEMONIZE: + daemonized_tracer_long = + find_arg_val(optarg, daemonize_str, + DAEMONIZE_GRANDCHILD, + DAEMONIZE_NONE); + if (daemonized_tracer_long <= DAEMONIZE_NONE) + error_opt_arg(c, lopt, optarg); break; case 'e': qualify(optarg); break; case 'E': - if (putenv(optarg) < 0) - perror_msg_and_die("putenv"); + if (env_change_count >= env_change_size) + env_changes = xgrowarray(env_changes, + &env_change_size, + sizeof(*env_changes)); + + env_changes[env_change_count++] = optarg; break; case 'f': - followfork++; + followfork_short++; + break; + case GETOPT_FOLLOWFORKS: + followfork = true; + break; + case GETOPT_OUTPUT_SEPARATELY: + output_separately = true; break; case 'F': optF = 1; @@ -1639,56 +2191,86 @@ init(int argc, char *argv[]) iflag = 1; break; case 'I': - opt_intr = string_to_uint_upto(optarg, NUM_INTR_OPTS - 1); + opt_intr = parse_interruptible_arg(optarg); if (opt_intr <= 0) - error_opt_arg(c, optarg); + error_opt_arg(c, lopt, optarg); break; -#ifdef ENABLE_STACKTRACE case 'k': +#ifdef ENABLE_STACKTRACE stack_trace_enabled = true; - break; +#else + error_msg_and_die("Stack traces (-k/--stack-traces " + "option) are not supported by this " + "build of strace"); #endif + break; + case 'n': + nflag = 1; + break; case 'o': outfname = optarg; break; case 'O': - i = string_to_uint(optarg); - if (i < 0) - error_opt_arg(c, optarg); - set_overhead(i); + if (set_overhead(optarg) < 0) + error_opt_arg(c, lopt, optarg); break; case 'p': process_opt_p_list(optarg); break; case 'P': - pathtrace_select(optarg); + if (pathtrace_count >= pathtrace_size) + pathtrace_paths = xgrowarray(pathtrace_paths, + &pathtrace_size, + sizeof(pathtrace_paths[0])); + + pathtrace_paths[pathtrace_count++] = optarg; break; case 'q': - qflag++; + qflag_short++; break; case 'r': rflag = 1; + rflag_width = 6; + rflag_scale = str2timescale_optarg(optarg, + &rflag_width); + if (rflag_scale < 0) + error_opt_arg(c, lopt, optarg); break; case 's': i = string_to_uint(optarg); if (i < 0 || (unsigned int) i > -1U / 4) - error_opt_arg(c, optarg); + error_opt_arg(c, lopt, optarg); max_strlen = i; break; case 'S': set_sortby(optarg); + sortby_set = true; break; case 't': - tflag++; + tflag_short++; + break; + case GETOPT_TS: + tflag_long_set = true; + if (parse_ts_arg(optarg ?: tflag_str)) + error_opt_arg(c, lopt, optarg); break; case 'T': Tflag = 1; + Tflag_width = 6; + Tflag_scale = str2timescale_optarg(optarg, + &Tflag_width); + if (Tflag_scale < 0) + error_opt_arg(c, lopt, optarg); break; case 'u': username = optarg; break; + case 'U': + columns_set = true; + set_count_summary_columns(optarg); + break; case 'v': - qualify("abbrev=none"); + qualify_abbrev("none"); break; case 'V': print_version(); @@ -1700,6 +2282,12 @@ init(int argc, char *argv[]) case 'x': xflag++; break; + case GETOPT_HEX_STR: + xflag_long = find_arg_val(optarg, xflag_str, + HEXSTR_ALL, HEXSTR_NONE); + if (xflag_long <= HEXSTR_NONE) + error_opt_arg(c, lopt, optarg); + break; case 'X': if (!strcmp(optarg, "raw")) xlat_verbosity = XLAT_STYLE_RAW; @@ -1708,13 +2296,65 @@ init(int argc, char *argv[]) else if (!strcmp(optarg, "verbose")) xlat_verbosity = XLAT_STYLE_VERBOSE; else - error_opt_arg(c, optarg); + error_opt_arg(c, lopt, optarg); break; case 'y': - show_fd_path++; + yflag_short++; + break; + case GETOPT_PIDNS_TRANSLATION: + pidns_translation++; break; case 'z': - not_failing_only = 1; + clear_number_set_array(status_set, 1); + add_number_to_set(STATUS_SUCCESSFUL, status_set); + zflags++; + break; + case 'Z': + clear_number_set_array(status_set, 1); + add_number_to_set(STATUS_FAILED, status_set); + zflags++; + break; + case GETOPT_SECCOMP: + seccomp_filtering = true; + break; + case GETOPT_QUAL_TRACE: + qualify_trace(optarg); + break; + case GETOPT_QUAL_ABBREV: + qualify_abbrev(optarg); + break; + case GETOPT_QUAL_VERBOSE: + qualify_verbose(optarg); + break; + case GETOPT_QUAL_RAW: + qualify_raw(optarg); + break; + case GETOPT_QUAL_SIGNAL: + qualify_signals(optarg); + break; + case GETOPT_QUAL_STATUS: + qualify_status(optarg); + break; + case GETOPT_QUAL_READ: + qualify_read(optarg); + break; + case GETOPT_QUAL_WRITE: + qualify_write(optarg); + break; + case GETOPT_QUAL_FAULT: + qualify_fault(optarg); + break; + case GETOPT_QUAL_INJECT: + qualify_inject(optarg); + break; + case GETOPT_QUAL_KVM: + qualify_kvm(optarg); + break; + case GETOPT_QUAL_QUIET: + qualify_quiet(optarg ?: qflag_qual); + break; + case GETOPT_QUAL_DECODE_FD: + qualify_decode_fd(optarg ?: yflag_qual); break; default: error_msg_and_help(NULL); @@ -1729,8 +2369,81 @@ init(int argc, char *argv[]) error_msg_and_help("must have PROG [ARGS] or -p PID"); } + if (daemonized_tracer_long) { + if (daemonized_tracer) { + error_msg_and_die("-D and --daemonize cannot" + " be provided simultaneously"); + } else { + daemonized_tracer = daemonized_tracer_long; + } + } + if (!argc && daemonized_tracer) { - error_msg_and_help("PROG [ARGS] must be specified with -D"); + error_msg_and_help("PROG [ARGS] must be specified with " + "-D/--daemonize"); + } + + if (daemonized_tracer > (unsigned int) MAX_DAEMONIZE_OPTS) + error_msg_and_help("Too many -D's (%u), maximum supported -D " + "count is %d", + daemonized_tracer, MAX_DAEMONIZE_OPTS); + + if (tflag_short) { + if (tflag_long_set) { + error_msg_and_die("-t and --absolute-timestamps cannot" + " be provided simultaneously"); + } + + parse_ts_arg(tflag_short == 1 ? tflag_str : + tflag_short == 2 ? ttflag_str : tttflag_str); + } + + if (xflag_long) { + if (xflag) { + error_msg_and_die("-x and --strings-in-hex cannot" + " be provided simultaneously"); + } else { + xflag = xflag_long; + } + } + + if (yflag_short) { + if (decode_fd_set_updated) { + error_msg_and_die("-y and --decode-fds cannot" + " be provided simultaneously"); + } + + qualify_decode_fd(yflag_short == 1 ? yflag_qual : yyflag_qual); + } + + if (seccomp_filtering && detach_on_execve) { + error_msg("--seccomp-bpf is not enabled because" + " it is not compatible with -b"); + seccomp_filtering = false; + } + + if (followfork_short) { + if (followfork) { + error_msg_and_die("-f and --follow-forks cannot" + " be provided simultaneously"); + } else if (followfork_short >= 2 && output_separately) { + error_msg_and_die("-ff and --output-separately cannot" + " be provided simultaneously"); + } else { + followfork = true; + output_separately = followfork_short >= 2; + } + } + + if (seccomp_filtering) { + if (nprocs && (!argc || debug_flag)) + error_msg("--seccomp-bpf is not enabled for processes" + " attached with -p"); + if (!followfork) { + error_msg("--seccomp-bpf cannot be used without " + "-f/--follow-forks, disabling"); + seccomp_filtering = false; + } } if (optF) { @@ -1738,34 +2451,80 @@ init(int argc, char *argv[]) error_msg("deprecated option -F ignored"); } else { error_msg("option -F is deprecated, " - "please use -f instead"); - followfork = optF; + "please use -f/--follow-forks instead"); + followfork = true; } } - if (followfork >= 2 && cflag) { - error_msg_and_help("(-c or -C) and -ff are mutually exclusive"); + if (output_separately && cflag) { + error_msg_and_help("(-c/--summary-only or -C/--summary) and" + " -ff/--output-separately" + " are mutually exclusive"); } if (count_wallclock && !cflag) { - error_msg_and_help("-w must be given with (-c or -C)"); + error_msg_and_help("-w/--summary-wall-clock must be given with" + " (-c/--summary-only or -C/--summary)"); + } + + if (columns_set && !cflag) { + error_msg_and_help("-U/--summary-columns must be given with" + " (-c/--summary-only or -C/--summary)"); + } + + if (sortby_set && !cflag) { + error_msg("-S/--summary-sort-by has no effect without" + " (-c/--summary-only or -C/--summary)"); } if (cflag == CFLAG_ONLY_STATS) { if (iflag) - error_msg("-%c has no effect with -c", 'i'); + error_msg("-i/--instruction-pointer has no effect " + "with -c/--summary-only"); if (stack_trace_enabled) - error_msg("-%c has no effect with -c", 'k'); + error_msg("-k/--stack-traces has no effect " + "with -c/--summary-only"); + if (nflag) + error_msg("-n/--syscall-number has no effect " + "with -c/--summary-only"); if (rflag) - error_msg("-%c has no effect with -c", 'r'); - if (tflag) - error_msg("-%c has no effect with -c", 't'); + error_msg("-r/--relative-timestamps has no effect " + "with -c/--summary-only"); + if (tflag_format) + error_msg("-t/--absolute-timestamps has no effect " + "with -c/--summary-only"); if (Tflag) - error_msg("-%c has no effect with -c", 'T'); - if (show_fd_path) - error_msg("-%c has no effect with -c", 'y'); + error_msg("-T/--syscall-times has no effect " + "with -c/--summary-only"); + if (!number_set_array_is_empty(decode_fd_set, 0)) + error_msg("-y/--decode-fds has no effect " + "with -c/--summary-only"); } + if (!outfname) { + if (output_separately && !followfork) + error_msg("--output-separately has no effect " + "without -o/--output"); + if (open_append) + error_msg("-A/--output-append-mode has no effect " + "without -o/--output"); + } + +#ifndef HAVE_OPEN_MEMSTREAM + if (!is_complete_set(status_set, NUMBER_OF_STATUSES)) + error_msg_and_help("open_memstream is required to use -z, -Z, or -e status"); +#endif + + if (zflags > 1) + error_msg("Only the last of " + "-z/--successful-only/-Z/--failed-only options will " + "take effect. " + "See status qualifier for more complex filters."); + + for (size_t cnt = 0; cnt < pathtrace_count; ++cnt) + pathtrace_select(pathtrace_paths[cnt]); + free(pathtrace_paths); + acolumn_spaces = xmalloc(acolumn + 1); memset(acolumn_spaces, ' ', acolumn); acolumn_spaces[acolumn] = '\0'; @@ -1782,7 +2541,8 @@ init(int argc, char *argv[]) struct passwd *pent; if (getuid() != 0 || geteuid() != 0) { - error_msg_and_die("You must be root to use the -u option"); + error_msg_and_die("You must be root to use " + "the -u/--username option"); } pent = getpwnam(username); if (pent == NULL) { @@ -1799,6 +2559,12 @@ init(int argc, char *argv[]) ptrace_setoptions |= PTRACE_O_TRACECLONE | PTRACE_O_TRACEFORK | PTRACE_O_TRACEVFORK; + + if (seccomp_filtering) + check_seccomp_filter(); + if (seccomp_filtering) + ptrace_setoptions |= PTRACE_O_TRACESECCOMP; + debug_msg("ptrace_setoptions = %#x", ptrace_setoptions); test_ptrace_seize(); test_ptrace_get_syscall_info(); @@ -1824,11 +2590,12 @@ init(int argc, char *argv[]) * We can't do the .PID funny business * when using popen, so prohibit it. */ - if (followfork >= 2) - error_msg_and_help("piping the output and -ff " + if (output_separately) + error_msg_and_help("piping the output and " + "-ff/--output-separately " "are mutually exclusive"); shared_log = strace_popen(outfname + 1); - } else if (followfork < 2) { + } else if (!output_separately) { shared_log = strace_fopen(outfname); } else if (strlen(outfname) >= PATH_MAX - sizeof(int) * 3) { errno = ENAMETOOLONG; @@ -1836,8 +2603,7 @@ init(int argc, char *argv[]) } } else { /* -ff without -o FILE is the same as single -f */ - if (followfork >= 2) - followfork = 1; + output_separately = false; } if (!outfname || outfname[0] == '|' || outfname[0] == '!') { @@ -1857,12 +2623,22 @@ init(int argc, char *argv[]) if (outfname && argc) { if (!opt_intr) opt_intr = INTR_NEVER; - if (!qflag) - qflag = 1; + if (!qflag_short && !quiet_set_updated) + qflag_short = 1; } if (!opt_intr) opt_intr = INTR_WHILE_WAIT; + if (qflag_short) { + if (quiet_set_updated) { + error_msg_and_die("-q and -e quiet/--quiet cannot" + " be provided simultaneously"); + } + + qualify_quiet(qflag_short == 1 ? qflag_qual : + qflag_short == 2 ? qqflag_qual : qqqflag_qual); + } + /* * startup_child() must be called before the signal handlers get * installed below as they are inherited into the spawned process. @@ -1870,7 +2646,19 @@ init(int argc, char *argv[]) * in the startup_child() mode we kill the spawned process anyway. */ if (argc) { - startup_child(argv); + char **new_environ = make_env(environ, env_changes, + env_change_count); + free(env_changes); + + startup_child(argv, new_environ); + + /* + * On a NOMMU system, new_environ can be freed only after exec + * in child, so we leak it in that case, similar to pathname + * in startup_child(). + */ + if (new_environ != environ && !NOMMU_SYSTEM) + free(new_environ); } set_sighandler(SIGTTOU, SIG_IGN, NULL); @@ -1904,7 +2692,8 @@ init(int argc, char *argv[]) * -f: yes (there can be more pids in the future); or * -p PID1,PID2: yes (there are already more than one pid) */ - print_pid_pfx = (outfname && followfork < 2 && (followfork == 1 || nprocs > 1)); + print_pid_pfx = outfname && !output_separately && + ((followfork && !output_separately) || nprocs > 1); } static struct tcb * @@ -1986,6 +2775,7 @@ print_debug_info(const int pid, int status) [PTRACE_EVENT_VFORK_DONE] = "VFORK_DONE", [PTRACE_EVENT_EXEC] = "EXEC", [PTRACE_EVENT_EXIT] = "EXIT", + [PTRACE_EVENT_SECCOMP] = "SECCOMP", /* [PTRACE_EVENT_STOP (=128)] would make biggish array */ }; const char *e = "??"; @@ -2007,18 +2797,20 @@ maybe_allocate_tcb(const int pid, int status) strace_child = 0; return NULL; } - /* - * This can happen if we inherited an unknown child. - * Example: (sleep 1 & exec strace true) - */ - error_msg("Exit of unknown pid %u ignored", pid); + if (!is_number_in_set(QUIET_EXIT, quiet_set)) { + /* + * This can happen if we inherited an unknown child. + * Example: (sleep 1 & exec strace true) + */ + error_msg("Exit of unknown pid %u ignored", pid); + } return NULL; } if (followfork) { /* We assume it's a fork/vfork/clone child */ struct tcb *tcp = alloctcb(pid); after_successful_attach(tcp, post_attach_sigstop); - if (!qflag) + if (!is_number_in_set(QUIET_ATTACH, quiet_set)) error_msg("Process %d attached", pid); return tcp; } else { @@ -2030,40 +2822,66 @@ maybe_allocate_tcb(const int pid, int status) * observable stop here is the initial ptrace-stop. */ ptrace(PTRACE_DETACH, pid, NULL, 0L); - error_msg("Detached unknown pid %d", pid); + if (!is_number_in_set(QUIET_ATTACH, quiet_set)) + error_msg("Detached unknown pid %d", pid); return NULL; } } +/* + * Under Linux, execve changes pid to thread leader's pid, and we see this + * changed pid on EVENT_EXEC and later, execve sysexit. Leader "disappears" + * without exit notification. Let user know that, drop leader's tcb, and fix + * up pid in execve thread's tcb. Effectively, execve thread's tcb replaces + * leader's tcb. + * + * BTW, leader is 'stuck undead' (doesn't report WIFEXITED on exit syscall) + * in multi-threaded programs exactly in order to handle this case. + */ static struct tcb * maybe_switch_tcbs(struct tcb *tcp, const int pid) { - FILE *fp; - struct tcb *execve_thread; - long old_pid = tcb_wait_tab[tcp->wait_data_idx].msg; + /* + * PTRACE_GETEVENTMSG returns old pid starting from Linux 3.0. + * On 2.6 and earlier it can return garbage. + */ + if (os_release < KERNEL_VERSION(3, 0, 0)) + return NULL; + + const long old_pid = tcb_wait_tab[tcp->wait_data_idx].msg; /* Avoid truncation in pid2tcb() param passing */ if (old_pid <= 0 || old_pid == pid) - return tcp; + return NULL; if ((unsigned long) old_pid > UINT_MAX) - return tcp; - execve_thread = pid2tcb(old_pid); + return NULL; + struct tcb *execve_thread = pid2tcb(old_pid); /* It should be !NULL, but I feel paranoid */ if (!execve_thread) - return tcp; + return NULL; if (execve_thread->curcol != 0) { /* - * One case we are here is -ff: - * try "strace -oLOG -ff test/threaded_execve" + * One case we are here is -ff, try + * "strace -oLOG -ff test/threaded_execve". + * Another case is demonstrated by + * tests/maybe_switch_current_tcp.c */ fprintf(execve_thread->outf, " \n", pid); /*execve_thread->curcol = 0; - no need, see code below */ } - /* Swap output FILEs (needed for -ff) */ - fp = execve_thread->outf; + /* Swap output FILEs and memstream (needed for -ff) */ + FILE *fp = execve_thread->outf; execve_thread->outf = tcp->outf; tcp->outf = fp; + if (execve_thread->staged_output_data || tcp->staged_output_data) { + struct staged_output_data *staged_output_data; + + staged_output_data = execve_thread->staged_output_data; + execve_thread->staged_output_data = tcp->staged_output_data; + tcp->staged_output_data = staged_output_data; + } + /* And their column positions */ execve_thread->curcol = tcp->curcol; tcp->curcol = 0; @@ -2073,15 +2891,35 @@ maybe_switch_tcbs(struct tcb *tcp, const int pid) tcp = execve_thread; tcp->pid = pid; if (cflag != CFLAG_ONLY_STATS) { - printleader(tcp); - tprintf("+++ superseded by execve in pid %lu +++\n", old_pid); - line_ended(); + if (!is_number_in_set(QUIET_THREAD_EXECVE, quiet_set)) { + printleader(tcp); + tprintf("+++ superseded by execve in pid %lu +++\n", + old_pid); + line_ended(); + } + /* + * Need to reopen memstream for thread + * as we closed it in droptcb. + */ + if (!is_complete_set(status_set, NUMBER_OF_STATUSES)) + strace_open_memstream(tcp); tcp->flags |= TCB_REPRINT; } return tcp; } +static struct tcb * +maybe_switch_current_tcp(void) +{ + struct tcb *tcp = maybe_switch_tcbs(current_tcp, current_tcp->pid); + + if (tcp) + set_current_tcp(tcp); + + return tcp; +} + static void print_signalled(struct tcb *tcp, const int pid, int status) { @@ -2109,7 +2947,7 @@ print_exited(struct tcb *tcp, const int pid, int status) } if (cflag != CFLAG_ONLY_STATS && - qflag < 2) { + !is_number_in_set(QUIET_EXIT, quiet_set)) { printleader(tcp); tprintf("+++ exited with %d +++\n", WEXITSTATUS(status)); line_ended(); @@ -2125,7 +2963,7 @@ print_stopped(struct tcb *tcp, const siginfo_t *si, const unsigned int sig) printleader(tcp); if (si) { tprintf("--- %s ", sprintsigname(sig)); - printsiginfo(si); + printsiginfo(tcp, si); tprints(" ---\n"); } else tprintf("--- stopped by %s ---\n", sprintsigname(sig)); @@ -2158,6 +2996,10 @@ startup_tcb(struct tcb *tcp) if ((tcp->flags & TCB_GRABBED) && (get_scno(tcp) == 1)) tcp->s_prev_ent = tcp->s_ent; + + if (cflag) { + tcp->atime = tcp->stime; + } } static void @@ -2168,7 +3010,7 @@ print_event_exit(struct tcb *tcp) return; } - if (followfork < 2 && printing_tcp && printing_tcp != tcp + if (!output_separately && printing_tcp && printing_tcp != tcp && printing_tcp->curcol != 0) { set_current_tcp(printing_tcp); tprints(" \n"); @@ -2191,6 +3033,10 @@ print_event_exit(struct tcb *tcp) tprints(") "); tabto(); tprints("= ?\n"); + if (!is_complete_set(status_set, NUMBER_OF_STATUSES)) { + bool publish = is_number_in_set(STATUS_UNFINISHED, status_set); + strace_close_memstream(tcp, publish); + } line_ended(); } @@ -2242,6 +3088,8 @@ next_event(void) if (interrupted) return NULL; + invalidate_umove_cache(); + struct tcb *tcp = NULL; struct list_item *elem; @@ -2370,12 +3218,8 @@ next_event(void) } if (cflag) { - struct timespec stime = { - .tv_sec = ru.ru_stime.tv_sec, - .tv_nsec = ru.ru_stime.tv_usec * 1000 - }; - ts_sub(&tcp->dtime, &stime, &tcp->stime); - tcp->stime = stime; + tcp->stime.tv_sec = ru.ru_stime.tv_sec; + tcp->stime.tv_nsec = ru.ru_stime.tv_usec * 1000; } tcb_wait_tab_check_size(wait_tab_pos); @@ -2463,6 +3307,9 @@ next_event(void) case PTRACE_EVENT_EXIT: wd->te = TE_STOP_BEFORE_EXIT; break; + case PTRACE_EVENT_SECCOMP: + wd->te = TE_SECCOMP; + break; default: wd->te = TE_RESTART; } @@ -2548,7 +3395,7 @@ trace_syscall(struct tcb *tcp, unsigned int *sig) static bool dispatch_event(const struct tcb_wait_data *wd) { - unsigned int restart_op = PTRACE_SYSCALL; + unsigned int restart_op; unsigned int restart_sig = 0; enum trace_event te = wd ? wd->te : TE_BREAK; /* @@ -2557,6 +3404,11 @@ dispatch_event(const struct tcb_wait_data *wd) */ int status = wd ? wd->status : 0; + if (current_tcp && has_seccomp_filter(current_tcp)) + restart_op = seccomp_filter_restart_operator(current_tcp); + else + restart_op = PTRACE_SYSCALL; + switch (te) { case TE_BREAK: return false; @@ -2567,6 +3419,27 @@ dispatch_event(const struct tcb_wait_data *wd) case TE_RESTART: break; + case TE_SECCOMP: + if (!has_seccomp_filter(current_tcp)) { + /* + * We don't know if forks/clones have a seccomp filter + * when they are created, but we can detect it when we + * have a seccomp-stop. + * In such a case, if !seccomp_before_sysentry, we have + * already processed the syscall entry, so we avoid + * processing it a second time. + */ + current_tcp->flags |= TCB_SECCOMP_FILTER; + restart_op = PTRACE_SYSCALL; + break; + } + + if (seccomp_before_sysentry) { + restart_op = PTRACE_SYSCALL; + break; + } + ATTRIBUTE_FALLTHROUGH; + case TE_SYSCALL_STOP: if (trace_syscall(current_tcp, &restart_sig) < 0) { /* @@ -2582,6 +3455,42 @@ dispatch_event(const struct tcb_wait_data *wd) */ return true; } + if (has_seccomp_filter(current_tcp)) { + /* + * Syscall and seccomp stops can happen in different + * orders depending on kernel. strace tests this in + * check_seccomp_order_tracer(). + * + * Linux 3.5--4.7: + * (seccomp-stop before syscall-entry-stop) + * +--> seccomp-stop ->-PTRACE_SYSCALL->-+ + * | | + * PTRACE_CONT syscall-entry-stop + * | | + * syscall-exit-stop <---PTRACE_SYSCALL-----<----+ + * + * Linux 4.8+: + * (seccomp-stop after syscall-entry-stop) + * syscall-entry-stop + * + * +---->-----PTRACE_CONT---->----+ + * | | + * syscall-exit-stop seccomp-stop + * | | + * +----<----PTRACE_SYSCALL---<---+ + * + * Note in Linux 4.8+, we restart in PTRACE_CONT + * after syscall-exit to skip the syscall-entry-stop. + * The next seccomp-stop will be treated as a syscall + * entry. + * + * The line below implements this behavior. + * Note that exiting(current_tcp) actually marks + * a syscall-entry-stop because the flag was inverted + * in the above call to trace_syscall. + */ + restart_op = exiting(current_tcp) ? PTRACE_SYSCALL : PTRACE_CONT; + } break; case TE_SIGNAL_DELIVERY_STOP: @@ -2625,7 +3534,7 @@ dispatch_event(const struct tcb_wait_data *wd) * and all the following syscall state tracking is screwed up * otherwise. */ - if (entering(current_tcp)) { + if (!maybe_switch_current_tcp() && entering(current_tcp)) { int ret; error_msg("Stray PTRACE_EVENT_EXEC from pid %d" @@ -2642,25 +3551,6 @@ dispatch_event(const struct tcb_wait_data *wd) } } - /* - * Under Linux, execve changes pid to thread leader's pid, - * and we see this changed pid on EVENT_EXEC and later, - * execve sysexit. Leader "disappears" without exit - * notification. Let user know that, drop leader's tcb, - * and fix up pid in execve thread's tcb. - * Effectively, execve thread's tcb replaces leader's tcb. - * - * BTW, leader is 'stuck undead' (doesn't report WIFEXITED - * on exit syscall) in multithreaded programs exactly - * in order to handle this case. - * - * PTRACE_GETEVENTMSG returns old pid starting from Linux 3.0. - * On 2.6 and earlier, it can return garbage. - */ - if (os_release >= KERNEL_VERSION(3, 0, 0)) - set_current_tcp(maybe_switch_tcbs(current_tcp, - current_tcp->pid)); - if (detach_on_execve) { if (current_tcp->flags & TCB_SKIP_DETACH_ON_FIRST_EXEC) { current_tcp->flags &= ~TCB_SKIP_DETACH_ON_FIRST_EXEC; @@ -2780,10 +3670,6 @@ timer_sighandler(int sig) errno = saved_errno; } -#ifdef ENABLE_COVERAGE_GCOV -extern void __gcov_flush(void); -#endif - static void ATTRIBUTE_NORETURN terminate(void) { @@ -2810,18 +3696,14 @@ terminate(void) /* Child was killed by a signal, mimic that. */ exit_code &= 0xff; signal(exit_code, SIG_DFL); -#ifdef ENABLE_COVERAGE_GCOV - __gcov_flush(); -#endif + GCOV_DUMP; raise(exit_code); /* Unblock the signal. */ sigset_t mask; sigemptyset(&mask); sigaddset(&mask, exit_code); -#ifdef ENABLE_COVERAGE_GCOV - __gcov_flush(); -#endif + GCOV_DUMP; sigprocmask(SIG_UNBLOCK, &mask, NULL); /* Paranoia - what if this signal is not fatal? diff --git a/strace.spec b/strace.spec index 8f8ce6b2..32a7b5a5 100644 --- a/strace.spec +++ b/strace.spec @@ -1,9 +1,9 @@ Summary: Tracks and displays system calls associated with a running process Name: strace -Version: 5.1 +Version: 5.9 Release: 1%{?dist} # The test suite is GPLv2+, all the rest is LGPLv2.1+. -License: LGPL-2.1-or-later and GPL-2.0-or-later +License: LGPL-2.1+ and GPL-2.0+ # Some distros require Group tag to be present, # some require Group tag to be absent, # some do not care about Group tag at all, @@ -12,11 +12,16 @@ License: LGPL-2.1-or-later and GPL-2.0-or-later Group: Development%{?suse_version:/Tools}/Debuggers %endif URL: https://strace.io +%if 0%{?fedora} >= 12 || 0%{?centos} >= 6 || 0%{?rhel} >= 6 || 0%{?suse_version} >= 1200 Source: https://strace.io/files/%{version}/strace-%{version}.tar.xz +BuildRequires: xz +%else +Source: strace-%{version}.tar.gz +%endif BuildRequires: gcc gzip # Install Bluetooth headers for AF_BLUETOOTH sockets decoding. -%if 0%{?fedora} >= 18 || 0%{?centos} >= 8 || 0%{?rhel} >= 8 || 0%{?suse_version} >= 1200 +%if 0%{?fedora} >= 18 || 0%{?centos} >= 6 || 0%{?rhel} >= 8 || 0%{?suse_version} >= 1200 BuildRequires: pkgconfig(bluez) %endif @@ -34,6 +39,12 @@ BuildRequires: pkgconfig(bluez) %{?!buildroot:BuildRoot: %_tmppath/buildroot-%name-%version-%release} %define maybe_use_defattr %{?suse_version:%%defattr(-,root,root)} +# Fallback definitions for make_build/make_install macros +%{?!__make: %global __make %_bindir/make} +%{?!__install: %global __install %_bindir/install} +%{?!make_build: %global make_build %__make %{?_smp_mflags}} +%{?!make_install: %global make_install %__make install DESTDIR="%{?buildroot}" INSTALL="%__install -p"} + %description The strace program intercepts and records the system calls called and received by a running process. Strace can print a record of each @@ -47,8 +58,8 @@ received by a process. %prep %setup -q echo -n %version-%release > .tarball-version -echo -n 2019 > .year -echo -n 2019-03-17 > .strace.1.in.date +echo -n 2020 > .year +echo -n 2020-09-23 > .strace.1.in.date %build echo 'BEGIN OF BUILD ENVIRONMENT INFORMATION' @@ -64,10 +75,10 @@ echo 'END OF BUILD ENVIRONMENT INFORMATION' CFLAGS_FOR_BUILD="$RPM_OPT_FLAGS"; export CFLAGS_FOR_BUILD %configure --enable-mpers=check -make %{?_smp_mflags} +%make_build %install -make DESTDIR=%{buildroot} install +%make_install # remove unpackaged files from the buildroot rm -f %{buildroot}%{_bindir}/strace-graph @@ -80,9 +91,9 @@ wait %check %{buildroot}%{_bindir}/strace -V -make %{?_smp_mflags} -k check VERBOSE=1 +%make_build -k check VERBOSE=1 echo 'BEGIN OF TEST SUITE INFORMATION' -tail -n 99999 -- tests*/test-suite.log tests*/ksysent.log +tail -n 99999 -- tests*/test-suite.log tests*/ksysent.gen.log find tests* -type f -name '*.log' -print0 | xargs -r0 grep -H '^KERNEL BUG:' -- ||: echo 'END OF TEST SUITE INFORMATION' @@ -95,8 +106,32 @@ echo 'END OF TEST SUITE INFORMATION' %{_mandir}/man1/* %changelog -* Wed May 22 2019 strace-devel@lists.strace.io - 5.1-1 -- strace 5.1 snapshot. +* Thu Sep 24 2020 strace-devel@lists.strace.io - 5.9-1 +- strace 5.9 snapshot. + +* Thu Aug 06 2020 Dmitry V. Levin - 5.8-1 +- v5.7 -> v5.8. + +* Mon Jun 01 2020 Dmitry V. Levin - 5.7-1 +- v5.6 -> v5.7. + +* Tue Apr 07 2020 Dmitry V. Levin - 5.6-1 +- v5.5 -> v5.6. + +* Thu Feb 06 2020 Dmitry V. Levin - 5.5-1 +- v5.4 -> v5.5. + +* Thu Nov 28 2019 Dmitry V. Levin - 5.4-1 +- v5.3 -> v5.4. + +* Wed Sep 25 2019 Dmitry V. Levin - 5.3-1 +- v5.2 -> v5.3. + +* Fri Jul 12 2019 Dmitry V. Levin - 5.2-1 +- v5.1 -> v5.2. + +* Wed May 22 2019 Dmitry V. Levin - 5.1-1 +- v5.0 -> v5.1. * Tue Mar 19 2019 Dmitry V. Levin - 5.0-1 - v4.26 -> v5.0 (resolves: #478419, #526740, #851457, #1609318, diff --git a/strace.spec.in b/strace.spec.in index 9a12658f..14e2c8c7 100644 --- a/strace.spec.in +++ b/strace.spec.in @@ -3,7 +3,7 @@ Name: strace Version: @PACKAGE_VERSION@ Release: 1%{?dist} # The test suite is GPLv2+, all the rest is LGPLv2.1+. -License: LGPL-2.1-or-later and GPL-2.0-or-later +License: LGPL-2.1+ and GPL-2.0+ # Some distros require Group tag to be present, # some require Group tag to be absent, # some do not care about Group tag at all, @@ -12,11 +12,16 @@ License: LGPL-2.1-or-later and GPL-2.0-or-later Group: Development%{?suse_version:/Tools}/Debuggers %endif URL: https://strace.io +%if 0%{?fedora} >= 12 || 0%{?centos} >= 6 || 0%{?rhel} >= 6 || 0%{?suse_version} >= 1200 Source: https://strace.io/files/%{version}/strace-%{version}.tar.xz +BuildRequires: xz +%else +Source: strace-%{version}.tar.gz +%endif BuildRequires: gcc gzip # Install Bluetooth headers for AF_BLUETOOTH sockets decoding. -%if 0%{?fedora} >= 18 || 0%{?centos} >= 8 || 0%{?rhel} >= 8 || 0%{?suse_version} >= 1200 +%if 0%{?fedora} >= 18 || 0%{?centos} >= 6 || 0%{?rhel} >= 8 || 0%{?suse_version} >= 1200 BuildRequires: pkgconfig(bluez) %endif @@ -34,6 +39,12 @@ BuildRequires: pkgconfig(bluez) %{?!buildroot:BuildRoot: %_tmppath/buildroot-%name-%version-%release} %define maybe_use_defattr %{?suse_version:%%defattr(-,root,root)} +# Fallback definitions for make_build/make_install macros +%{?!__make: %global __make %_bindir/make} +%{?!__install: %global __install %_bindir/install} +%{?!make_build: %global make_build %__make %{?_smp_mflags}} +%{?!make_install: %global make_install %__make install DESTDIR="%{?buildroot}" INSTALL="%__install -p"} + %description The strace program intercepts and records the system calls called and received by a running process. Strace can print a record of each @@ -64,10 +75,10 @@ echo 'END OF BUILD ENVIRONMENT INFORMATION' CFLAGS_FOR_BUILD="$RPM_OPT_FLAGS"; export CFLAGS_FOR_BUILD %configure --enable-mpers=check -make %{?_smp_mflags} +%make_build %install -make DESTDIR=%{buildroot} install +%make_install # remove unpackaged files from the buildroot rm -f %{buildroot}%{_bindir}/strace-graph @@ -80,9 +91,9 @@ wait %check %{buildroot}%{_bindir}/strace -V -make %{?_smp_mflags} -k check VERBOSE=1 +%make_build -k check VERBOSE=1 echo 'BEGIN OF TEST SUITE INFORMATION' -tail -n 99999 -- tests*/test-suite.log tests*/ksysent.log +tail -n 99999 -- tests*/test-suite.log tests*/ksysent.gen.log find tests* -type f -name '*.log' -print0 | xargs -r0 grep -H '^KERNEL BUG:' -- ||: echo 'END OF TEST SUITE INFORMATION' @@ -98,6 +109,30 @@ echo 'END OF TEST SUITE INFORMATION' * @RPM_CHANGELOGTIME@ @PACKAGE_BUGREPORT@ - @PACKAGE_VERSION@-1 - @PACKAGE_STRING@ snapshot. +* Thu Aug 06 2020 Dmitry V. Levin - 5.8-1 +- v5.7 -> v5.8. + +* Mon Jun 01 2020 Dmitry V. Levin - 5.7-1 +- v5.6 -> v5.7. + +* Tue Apr 07 2020 Dmitry V. Levin - 5.6-1 +- v5.5 -> v5.6. + +* Thu Feb 06 2020 Dmitry V. Levin - 5.5-1 +- v5.4 -> v5.5. + +* Thu Nov 28 2019 Dmitry V. Levin - 5.4-1 +- v5.3 -> v5.4. + +* Wed Sep 25 2019 Dmitry V. Levin - 5.3-1 +- v5.2 -> v5.3. + +* Fri Jul 12 2019 Dmitry V. Levin - 5.2-1 +- v5.1 -> v5.2. + +* Wed May 22 2019 Dmitry V. Levin - 5.1-1 +- v5.0 -> v5.1. + * Tue Mar 19 2019 Dmitry V. Levin - 5.0-1 - v4.26 -> v5.0 (resolves: #478419, #526740, #851457, #1609318, #1610774, #1662936, #1676045). diff --git a/sync_file_range2.c b/sync_file_range2.c index e249cb10..09d42a73 100644 --- a/sync_file_range2.c +++ b/sync_file_range2.c @@ -20,7 +20,7 @@ SYS_FUNC(sync_file_range2) printflags(sync_file_range_flags, tcp->u_arg[1], "SYNC_FILE_RANGE_???"); argn = printllval(tcp, ", %lld, ", 2); - argn = printllval(tcp, "%lld", argn); + printllval(tcp, "%lld", argn); return RVAL_DECODED; } diff --git a/syscall.c b/syscall.c index bae7343c..d228ae4d 100644 --- a/syscall.c +++ b/syscall.c @@ -6,7 +6,7 @@ * Copyright (c) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation * Linux for s390 port by D.J. Barrow * - * Copyright (c) 1999-2019 The strace developers. + * Copyright (c) 1999-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -28,7 +28,7 @@ #include /* for __X32_SYSCALL_BIT */ -#include +#include "scno.h" #include "regs.h" @@ -41,6 +41,7 @@ #include "syscall.h" #include "xstring.h" +#include "syscallent_base_nr.h" /* Define these shorthand notations to simplify the syscallent files. */ #include "sysent_shorthand_defs.h" @@ -267,9 +268,11 @@ update_personality(struct tcb *tcp, unsigned int personality) return; tcp->currpers = personality; - if (!qflag) { - error_msg("[ Process PID=%d runs in %s mode. ]", - tcp->pid, personality_names[personality]); + if (!is_number_in_set(QUIET_PERSONALITY, quiet_set)) { + printleader(tcp); + tprintf("[ Process PID=%d runs in %s mode. ]\n", + tcp->pid, personality_names[personality]); + line_ended(); } if (need_mpers_warning[personality]) { @@ -416,13 +419,24 @@ dumpio(struct tcb *tcp) } } -const char * -err_name(unsigned long err) +static const char * +err_name(uint64_t err) +{ + return err < nerrnos ? errnoent[err] : NULL; +} + +void +print_err(int64_t err, bool negated) { - if ((err < nerrnos) && errnoent[err]) - return errnoent[err]; + const char *str = err_name(negated ? -err : err); - return NULL; + if (!str || xlat_verbose(xlat_verbosity) != XLAT_STYLE_ABBREV) + tprintf(negated ? "%" PRId64 : "%" PRIu64, err); + if (!str || xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW) + return; + (xlat_verbose(xlat_verbosity) == XLAT_STYLE_ABBREV + ? tprintf : tprintf_comment)("%s%s", + negated ? "-" : "", str); } static void @@ -477,9 +491,12 @@ tamper_with_syscall_entering(struct tcb *tcp, unsigned int *signo) struct inject_opts *opts = tcb_inject_opts(tcp); - if (!opts || opts->first == 0) + if (!opts || opts->first == 0 || opts->last == 0) return 0; + if (opts->last != INJECT_LAST_INF) + --opts->last; + --opts->first; if (opts->first != 0) @@ -579,11 +596,13 @@ syscall_entering_decode(struct tcb *tcp) return res; } +#ifdef SYS_syscall_subcall + if (tcp_sysent(tcp)->sen == SEN_syscall) + decode_syscall_subcall(tcp); +#endif #if defined SYS_ipc_subcall \ - || defined SYS_socket_subcall \ - || defined SYS_syscall_subcall - for (;;) { - switch (tcp_sysent(tcp)->sen) { + || defined SYS_socket_subcall + switch (tcp_sysent(tcp)->sen) { # ifdef SYS_ipc_subcall case SEN_ipc: decode_ipc_subcall(tcp); @@ -594,15 +613,6 @@ syscall_entering_decode(struct tcb *tcp) decode_socket_subcall(tcp); break; # endif -# ifdef SYS_syscall_subcall - case SEN_syscall: - decode_syscall_subcall(tcp); - if (tcp_sysent(tcp)->sen != SEN_syscall) - continue; - break; -# endif - } - break; } #endif @@ -615,7 +625,7 @@ syscall_entering_trace(struct tcb *tcp, unsigned int *sig) if (hide_log(tcp)) { /* * Restrain from fault injection - * while the trace executes strace code. + * while the tracee executes strace code. */ tcp->qual_flg &= ~QUAL_INJECT; @@ -650,12 +660,16 @@ syscall_entering_trace(struct tcb *tcp, unsigned int *sig) } #ifdef ENABLE_STACKTRACE - if (stack_trace_enabled) { - if (tcp_sysent(tcp)->sys_flags & STACKTRACE_CAPTURE_ON_ENTER) - unwind_tcb_capture(tcp); + if (stack_trace_enabled && + !check_exec_syscall(tcp) && + tcp_sysent(tcp)->sys_flags & STACKTRACE_CAPTURE_ON_ENTER) { + unwind_tcb_capture(tcp); } #endif + if (!is_complete_set(status_set, NUMBER_OF_STATUSES)) + strace_open_memstream(tcp); + printleader(tcp); tprintf("%s(", tcp_sysent(tcp)->sys_name); int res = raw(tcp) ? printargs(tcp) : tcp_sysent(tcp)->sys_func(tcp); @@ -668,9 +682,27 @@ syscall_entering_finish(struct tcb *tcp, int res) { tcp->flags |= TCB_INSYSCALL; tcp->sys_func_rval = res; + /* Measure the entrance time as late as possible to avoid errors. */ if ((Tflag || cflag) && !filtered(tcp)) clock_gettime(CLOCK_MONOTONIC, &tcp->etime); + + /* Start tracking system time */ + if (cflag) { + if (debug_flag) { + struct timespec dt; + + ts_sub(&dt, &tcp->stime, &tcp->ltime); + + if (ts_nz(&dt)) + debug_func_msg("pid %d: %.9f seconds of system " + "time spent since the last " + "syscall exit", + tcp->pid, ts_float(&dt)); + } + + tcp->ltime = tcp->stime; + } } /* Returns: @@ -718,7 +750,7 @@ print_syscall_resume(struct tcb *tcp) * "strace -ff -oLOG test/threaded_execve" corner case. * It's the only case when -ff mode needs reprinting. */ - if ((followfork < 2 && printing_tcp != tcp) + if ((!output_separately && printing_tcp != tcp && !tcp->staged_output_data) || (tcp->flags & TCB_REPRINT)) { tcp->flags &= ~TCB_REPRINT; printleader(tcp); @@ -748,6 +780,11 @@ syscall_exiting_trace(struct tcb *tcp, struct timespec *ts, int res) tprints(") "); tabto(); tprints("= ? \n"); + if (!is_complete_set(status_set, NUMBER_OF_STATUSES)) { + bool publish = is_number_in_set(STATUS_UNAVAILABLE, + status_set); + strace_close_memstream(tcp, publish); + } line_ended(); return res; } @@ -757,22 +794,24 @@ syscall_exiting_trace(struct tcb *tcp, struct timespec *ts, int res) if (raw(tcp)) { /* sys_res = printargs(tcp); - but it's nop on sysexit */ } else { - /* FIXME: not_failing_only (IOW, option -z) is broken: - * failure of syscall is known only after syscall return. - * Thus we end up with something like this on, say, ENOENT: - * open("does_not_exist", O_RDONLY - * {next syscall decode} - * whereas the intended result is that open(...) line - * is not shown at all. - */ - if (not_failing_only && tcp->u_error) - return 0; /* ignore failed syscalls */ if (tcp->sys_func_rval & RVAL_DECODED) sys_res = tcp->sys_func_rval; else sys_res = tcp_sysent(tcp)->sys_func(tcp); } + if (!is_complete_set(status_set, NUMBER_OF_STATUSES)) { + bool publish = syserror(tcp) + && is_number_in_set(STATUS_FAILED, status_set); + publish |= !syserror(tcp) + && is_number_in_set(STATUS_SUCCESSFUL, status_set); + strace_close_memstream(tcp, publish); + if (!publish) { + line_ended(); + return 0; + } + } + tprints(") "); tabto(); @@ -863,10 +902,17 @@ syscall_exiting_trace(struct tcb *tcp, struct timespec *ts, int res) tprintf("= %#" PRI_klx, tcp->u_rval); } break; - case RVAL_OCTAL: + case RVAL_OCTAL: { + unsigned long long mode = + zero_extend_signed_to_ull(tcp->u_rval); tprints("= "); - print_numeric_long_umask(tcp->u_rval); +#if ANY_WORDSIZE_LESS_THAN_KERNEL_LONG + if (current_klongsize < sizeof(tcp->u_rval)) + mode = (unsigned int) mode; +#endif + print_numeric_ll_umode_t(mode); break; + } case RVAL_UDECIMAL: #if ANY_WORDSIZE_LESS_THAN_KERNEL_LONG if (current_klongsize < sizeof(tcp->u_rval)) { @@ -879,12 +925,33 @@ syscall_exiting_trace(struct tcb *tcp, struct timespec *ts, int res) } break; case RVAL_FD: - if (show_fd_path) { + /* + * printfd accepts int as fd and it makes + * little sense to pass negative fds to it. + */ + if ((current_klongsize < sizeof(tcp->u_rval)) || + ((kernel_ulong_t) tcp->u_rval <= INT_MAX)) { tprints("= "); printfd(tcp, tcp->u_rval); - } else + } else { tprintf("= %" PRI_kld, tcp->u_rval); + } + break; + case RVAL_TID: + case RVAL_SID: + case RVAL_TGID: + case RVAL_PGID: { + #define _(_t) [RVAL_##_t - RVAL_TID] = PT_##_t + static const enum pid_type types[] = { + _(TID), _(SID), _(TGID), _(PGID), + }; + #undef _ + + tprints("= "); + printpid(tcp, tcp->u_rval, + types[(sys_res & RVAL_MASK) - RVAL_TID]); break; + } default: error_msg("invalid rval format"); break; @@ -897,8 +964,12 @@ syscall_exiting_trace(struct tcb *tcp, struct timespec *ts, int res) } if (Tflag) { ts_sub(ts, ts, &tcp->etime); - tprintf(" <%ld.%06ld>", - (long) ts->tv_sec, (long) ts->tv_nsec / 1000); + tprintf(" <%ld", (long) ts->tv_sec); + if (Tflag_width) { + tprintf(".%0*ld", + Tflag_width, (long) ts->tv_nsec / Tflag_scale); + } + tprints(">"); } tprints("\n"); dumpio(tcp); @@ -917,6 +988,9 @@ syscall_exiting_finish(struct tcb *tcp) tcp->flags &= ~(TCB_INSYSCALL | TCB_TAMPERED | TCB_INJECT_DELAY_EXIT); tcp->sys_func_rval = 0; free_tcb_priv_data(tcp); + + if (cflag) + tcp->ltime = tcp->stime; } bool @@ -948,7 +1022,7 @@ restore_cleared_syserror(struct tcb *tcp) tcp->u_error = saved_u_error; } -static struct ptrace_syscall_info ptrace_sci; +static struct_ptrace_syscall_info ptrace_sci; static bool ptrace_syscall_info_is_valid(void) @@ -1152,7 +1226,7 @@ free_sysent_buf(void *ptr) } static bool -ptrace_get_syscall_info(struct tcb *tcp) +strace_get_syscall_info(struct tcb *tcp) { /* * ptrace_get_syscall_info_supported should have been checked @@ -1198,7 +1272,7 @@ get_instruction_pointer(struct tcb *tcp, kernel_ulong_t *ip) return false; if (ptrace_get_syscall_info_supported) { - if (!ptrace_get_syscall_info(tcp)) + if (!strace_get_syscall_info(tcp)) return false; *ip = (kernel_ulong_t) ptrace_sci.instruction_pointer; return true; @@ -1225,7 +1299,7 @@ get_stack_pointer(struct tcb *tcp, kernel_ulong_t *sp) return false; if (ptrace_get_syscall_info_supported) { - if (!ptrace_get_syscall_info(tcp)) + if (!strace_get_syscall_info(tcp)) return false; *sp = (kernel_ulong_t) ptrace_sci.stack_pointer; return true; @@ -1252,7 +1326,7 @@ get_syscall_regs(struct tcb *tcp) return get_regs_error; if (ptrace_get_syscall_info_supported) - return ptrace_get_syscall_info(tcp) ? 0 : get_regs_error; + return strace_get_syscall_info(tcp) ? 0 : get_regs_error; return get_regs(tcp); } @@ -1284,10 +1358,7 @@ get_scno(struct tcb *tcp) return -1; if (ptrace_syscall_info_is_valid()) { - /* - * So far it's just a workaround for x32, - * but let's pretend it could be used elsewhere. - */ + /* Apply arch-specific workarounds. */ int rc = arch_check_scno(tcp); if (rc != 1) return rc; @@ -1298,6 +1369,7 @@ get_scno(struct tcb *tcp) return rc; } + tcp->true_scno = tcp->scno; tcp->scno = shuffle_scno(tcp->scno); if (scno_is_valid(tcp->scno)) { diff --git a/sysent.h b/sysent.h index 336a30bf..eed15b25 100644 --- a/sysent.h +++ b/sysent.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -16,25 +16,28 @@ typedef struct sysent { const char *sys_name; } struct_sysent; -# define TRACE_FILE 00000001 /* Trace file-related syscalls. */ -# define TRACE_IPC 00000002 /* Trace IPC-related syscalls. */ -# define TRACE_NETWORK 00000004 /* Trace network-related syscalls. */ -# define TRACE_PROCESS 00000010 /* Trace process-related syscalls. */ -# define TRACE_SIGNAL 00000020 /* Trace signal-related syscalls. */ -# define TRACE_DESC 00000040 /* Trace file descriptor-related syscalls. */ -# define TRACE_MEMORY 00000100 /* Trace memory mapping-related syscalls. */ -# define SYSCALL_NEVER_FAILS 00000200 /* Syscall is always successful. */ -# define MEMORY_MAPPING_CHANGE 00000400 /* Trigger proc/maps cache updating */ -# define STACKTRACE_CAPTURE_ON_ENTER 00001000 /* Capture stacktrace on "entering" stage */ -# define TRACE_INDIRECT_SUBCALL 00002000 /* Syscall is an indirect socket/ipc subcall. */ -# define COMPAT_SYSCALL_TYPES 00004000 /* A compat syscall that uses compat types. */ -# define TRACE_STAT 00010000 /* Trace {,*_}{,old}{,x}stat{,64} syscalls. */ -# define TRACE_LSTAT 00020000 /* Trace *lstat* syscalls. */ -# define TRACE_STATFS 00040000 /* Trace statfs, statfs64, and statvfs syscalls. */ -# define TRACE_FSTATFS 00100000 /* Trace fstatfs, fstatfs64 and fstatvfs syscalls. */ -# define TRACE_STATFS_LIKE 00200000 /* Trace statfs-like, fstatfs-like and ustat syscalls. */ -# define TRACE_FSTAT 00400000 /* Trace *fstat{,at}{,64} syscalls. */ -# define TRACE_STAT_LIKE 01000000 /* Trace *{,l,f}stat{,x,at}{,64} syscalls. */ -# define TRACE_PURE 02000000 /* Trace getter syscalls with no arguments. */ +# define TRACE_FILE 000000001 /* Trace file-related syscalls. */ +# define TRACE_IPC 000000002 /* Trace IPC-related syscalls. */ +# define TRACE_NETWORK 000000004 /* Trace network-related syscalls. */ +# define TRACE_PROCESS 000000010 /* Trace process-related syscalls. */ +# define TRACE_SIGNAL 000000020 /* Trace signal-related syscalls. */ +# define TRACE_DESC 000000040 /* Trace file descriptor-related syscalls. */ +# define TRACE_MEMORY 000000100 /* Trace memory mapping-related syscalls. */ +# define SYSCALL_NEVER_FAILS 000000200 /* Syscall is always successful. */ +# define MEMORY_MAPPING_CHANGE 000000400 /* Trigger proc/maps cache updating */ +# define STACKTRACE_CAPTURE_ON_ENTER 000001000 /* Capture stacktrace on "entering" stage */ +# define TRACE_INDIRECT_SUBCALL 000002000 /* Syscall is an indirect socket/ipc subcall. */ +# define COMPAT_SYSCALL_TYPES 000004000 /* A compat syscall that uses compat types. */ +# define TRACE_STAT 000010000 /* Trace {,*_}{,old}{,x}stat{,64} syscalls. */ +# define TRACE_LSTAT 000020000 /* Trace *lstat* syscalls. */ +# define TRACE_STATFS 000040000 /* Trace statfs, statfs64, and statvfs syscalls. */ +# define TRACE_FSTATFS 000100000 /* Trace fstatfs, fstatfs64 and fstatvfs syscalls. */ +# define TRACE_STATFS_LIKE 000200000 /* Trace statfs-like, fstatfs-like and ustat syscalls. */ +# define TRACE_FSTAT 000400000 /* Trace *fstat{,at}{,64} syscalls. */ +# define TRACE_STAT_LIKE 001000000 /* Trace *{,l,f}stat{,x,at}{,64} syscalls. */ +# define TRACE_PURE 002000000 /* Trace getter syscalls with no arguments. */ +# define TRACE_SECCOMP_DEFAULT 004000000 /* Syscall is traced by seccomp filter by default. */ +# define TRACE_CREDS 010000000 /* Trace process credentials-related syscalls. */ +# define TRACE_CLOCK 020000000 /* Trace syscalls reading or modifying system clocks. */ #endif /* !STRACE_SYSENT_H */ diff --git a/sysent_shorthand_defs.h b/sysent_shorthand_defs.h index 009f9a4b..e9c83f74 100644 --- a/sysent_shorthand_defs.h +++ b/sysent_shorthand_defs.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -27,6 +27,9 @@ # define SI 0 # define SE 0 # define CST 0 +# define TSD 0 +# define TC 0 +# define TCL 0 # define SEN(a) 0, 0 #else /* !STRACE_TESTS_H */ @@ -51,6 +54,9 @@ # define SI MEMORY_MAPPING_CHANGE # define SE STACKTRACE_CAPTURE_ON_ENTER # define CST COMPAT_SYSCALL_TYPES +# define TSD TRACE_SECCOMP_DEFAULT +# define TC TRACE_CREDS +# define TCL TRACE_CLOCK /* SEN(a) is defined elsewhere */ #endif diff --git a/sysent_shorthand_undefs.h b/sysent_shorthand_undefs.h index bc9ad131..708dd552 100644 --- a/sysent_shorthand_undefs.h +++ b/sysent_shorthand_undefs.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -19,9 +19,13 @@ #undef TSF #undef TFSF #undef TSFA +#undef PU #undef NF #undef MA #undef SI #undef SE #undef CST +#undef TSD +#undef TC +#undef TCL #undef SEN diff --git a/syslog.c b/syslog.c index 34d56199..b5e0d8f3 100644 --- a/syslog.c +++ b/syslog.c @@ -9,37 +9,63 @@ #include "defs.h" #include "xlat/syslog_action_type.h" +#include "xlat/syslog_console_levels.h" SYS_FUNC(syslog) { int type = tcp->u_arg[0]; + int len = tcp->u_arg[2]; if (entering(tcp)) { /* type */ - printxval(syslog_action_type, type, "SYSLOG_ACTION_???"); - tprints(", "); + printxval_ex(syslog_action_type, type, "SYSLOG_ACTION_???", + XLAT_STYLE_VERBOSE | XLAT_STYLE_FMT_D); } switch (type) { - case SYSLOG_ACTION_READ: - case SYSLOG_ACTION_READ_ALL: - case SYSLOG_ACTION_READ_CLEAR: - if (entering(tcp)) - return 0; - break; - default: - printaddr(tcp->u_arg[1]); - tprintf(", %" PRI_klu, tcp->u_arg[2]); - return RVAL_DECODED; + /* Those commands have bufp and len ignored */ + case SYSLOG_ACTION_CLOSE: + case SYSLOG_ACTION_OPEN: + case SYSLOG_ACTION_CLEAR: + case SYSLOG_ACTION_CONSOLE_OFF: + case SYSLOG_ACTION_CONSOLE_ON: + case SYSLOG_ACTION_SIZE_UNREAD: + case SYSLOG_ACTION_SIZE_BUFFER: + return RVAL_DECODED; + + case SYSLOG_ACTION_READ: + case SYSLOG_ACTION_READ_ALL: + case SYSLOG_ACTION_READ_CLEAR: + if (entering(tcp)) { + tprints(", "); + return 0; + } + break; + + case SYSLOG_ACTION_CONSOLE_LEVEL: /* Uses len */ + tprints(", "); + printaddr64(tcp->u_arg[1]); + tprints(", "); + printxval_ex(syslog_console_levels, len, "LOGLEVEL_???", + XLAT_STYLE_VERBOSE | XLAT_STYLE_FMT_D); + return RVAL_DECODED; + + default: + tprints(", "); + printaddr64(tcp->u_arg[1]); + tprintf(", %d", len); + return RVAL_DECODED; } + /* syscall exit handler for SYSLOG_ACTION_READ* */ + /* bufp */ if (syserror(tcp)) - printaddr(tcp->u_arg[1]); + printaddr64(tcp->u_arg[1]); else printstrn(tcp, tcp->u_arg[1], tcp->u_rval); /* len */ - tprintf(", %d", (int) tcp->u_arg[2]); + tprintf(", %d", len); return 0; } diff --git a/tee.c b/tee.c new file mode 100644 index 00000000..af161630 --- /dev/null +++ b/tee.c @@ -0,0 +1,525 @@ +/* + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#include "defs.h" +#include "print_fields.h" + +#include "types/tee.h" + +#define XLAT_MACROS_ONLY +#include "xlat/tee_ioctl_cmds.h" +#undef XLAT_MACROS_ONLY + +#include "xlat/tee_ioctl_gen_caps.h" +#include "xlat/tee_ioctl_impl_ids.h" +#include "xlat/tee_ioctl_login_types.h" +#include "xlat/tee_ioctl_max_arg_size.h" +#include "xlat/tee_ioctl_origins.h" +#include "xlat/tee_ioctl_optee_caps.h" +#include "xlat/tee_ioctl_param_attr_types.h" +#include "xlat/tee_ioctl_shm_flags.h" + +#define TEE_IOCTL_PARAM_SIZE(x) (sizeof(struct_tee_ioctl_param) * (x)) + +#define TEE_FETCH_BUF_DATA(buf_, arg_, params_) \ + tee_fetch_buf_data(tcp, arg, &buf_, sizeof(arg_), \ + &arg_, &arg_.num_params, \ + params_) + +/* session id is printed as 0x%x in libteec */ +#define PRINT_FIELD_SESSION(prefix_, where_, field_) \ + PRINT_FIELD_X(prefix_, where_, field_) + +static void +tee_print_buf(struct_tee_ioctl_buf_data *buf) +{ + PRINT_FIELD_U("{", *buf, buf_len); + PRINT_FIELD_ADDR64(", ", *buf, buf_ptr); + tprints("}"); +} + +static int +tee_fetch_buf_data(struct tcb *const tcp, + const kernel_ulong_t arg, + struct_tee_ioctl_buf_data *buf, + size_t arg_size, + void *arg_struct, + unsigned *num_params, + uint64_t *params) +{ + if (umove_or_printaddr(tcp, arg, buf)) + return RVAL_IOCTL_DECODED; + if (buf->buf_len > TEE_MAX_ARG_SIZE || buf->buf_len < arg_size) { + tee_print_buf(buf); + return RVAL_IOCTL_DECODED; + } + if (umoven(tcp, buf->buf_ptr, arg_size, arg_struct)) { + tee_print_buf(buf); + return RVAL_IOCTL_DECODED; + } + if (entering(tcp) && + (arg_size + TEE_IOCTL_PARAM_SIZE(*num_params) != buf->buf_len)) { + /* + * We could print whatever number of params + * is in buf_data, but the kernel would ignore + * them anyway (and return -EINVAL) if + * the above condition is not satisfied. + * + * Except for on exiting. The kernel has the right + * to update num_params but not buf_len + * (see tee_ioctl_supp_recv) + */ + tee_print_buf(buf); + return RVAL_IOCTL_DECODED; + } + if (*num_params) { + *params = buf->buf_ptr + arg_size; + } else { + *params = 0; + } + + return 0; +} + +static bool +tee_print_param_fn(struct tcb *tcp, void *elem_buf, size_t elem_size, void *data) +{ + struct_tee_ioctl_param *param = (struct_tee_ioctl_param *) elem_buf; + + tprintf("{attr="); + printxval(tee_ioctl_param_attr_types, + param->attr & ~TEE_IOCTL_PARAM_ATTR_META, + "TEE_IOCTL_PARAM_ATTR_"); + if (param->attr & TEE_IOCTL_PARAM_ATTR_META) + tprintf("|TEE_IOCTL_PARAM_ATTR_META"); + + switch (param->attr) { + case TEE_IOCTL_PARAM_ATTR_TYPE_NONE: + break; + + case TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INPUT: + case TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INOUT: + case TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_OUTPUT: + tprintf(", shm_offs=%#llx", (unsigned long long) param->a); + tprintf(", size=%#llx", (unsigned long long) param->b); + tprintf(", shm_id=%llu", (unsigned long long) param->c); + break; + + case TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_INPUT: + case TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_INOUT: + case TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_OUTPUT: + default: + PRINT_FIELD_X(", ", *param, a); + PRINT_FIELD_X(", ", *param, b); + PRINT_FIELD_X(", ", *param, c); + break; + } + tprints("}"); + return true; +} + +static void +tee_print_params(struct tcb *const tcp, uint64_t params_start, unsigned num_params) +{ + struct_tee_ioctl_param param_buffer; + + tprints(", params="); + print_array(tcp, params_start, num_params, ¶m_buffer, sizeof(param_buffer), + tfetch_mem, tee_print_param_fn, NULL); +} + +static int +tee_version(struct tcb *const tcp, const kernel_ulong_t arg) +{ + struct_tee_ioctl_version_data version; + + if (entering(tcp)) { + tprints(", "); + return 0; + } + + if (umove_or_printaddr(tcp, arg, &version)) + return RVAL_IOCTL_DECODED; + + PRINT_FIELD_XVAL("{", version, impl_id, + tee_ioctl_impl_ids, "TEE_IMPL_ID_???"); + PRINT_FIELD_FLAGS(", ", version, gen_caps, + tee_ioctl_gen_caps, "TEE_GEN_CAP_???"); + if (version.impl_id == TEE_IMPL_ID_OPTEE) { + PRINT_FIELD_FLAGS(", ", version, impl_caps, + tee_ioctl_optee_caps, "TEE_OPTEE_CAP_???"); + } else { + PRINT_FIELD_X(", ", version, impl_caps); + } + + tprints("}"); + return RVAL_IOCTL_DECODED; +} + +static int +tee_open_session(struct tcb *const tcp, const kernel_ulong_t arg) +{ + int rval; + struct_tee_ioctl_buf_data buf_data; + struct_tee_ioctl_open_session_arg open_session; + uint64_t params; + gid_t gid; + + if (entering(tcp)) { + tprints(", "); + + if ((rval = TEE_FETCH_BUF_DATA(buf_data, open_session, ¶ms))) + return rval; + + PRINT_FIELD_U("{", buf_data, buf_len); + PRINT_FIELD_UUID(", buf_ptr={", open_session, uuid); + PRINT_FIELD_XVAL(", ", open_session, clnt_login, + tee_ioctl_login_types, "TEE_IOCTL_LOGIN_???"); + /* + * tee_ioctl_open_session_arg.clnt_uuid is used to pass + * connectionData, which is currently only used to indicate + * which group the client application wishes to authenticate as + * (when TEE_IOCTL_LOGIN_GROUP or TEE_IOCTL_LOGIN_GROUP_APPLICATION + * are used). + * + * It is not an UUID; actual client UUID is computed in the kernel. + */ + switch (open_session.clnt_login) { + case TEE_IOCTL_LOGIN_PUBLIC: + case TEE_IOCTL_LOGIN_USER: + case TEE_IOCTL_LOGIN_APPLICATION: + case TEE_IOCTL_LOGIN_USER_APPLICATION: + break; + case TEE_IOCTL_LOGIN_GROUP: + case TEE_IOCTL_LOGIN_GROUP_APPLICATION: + memcpy(&gid, open_session.clnt_uuid, sizeof(gid)); + printuid(", clnt_uuid=", gid); + break; + default: + PRINT_FIELD_X_ARRAY(", ", open_session, clnt_uuid); + } + PRINT_FIELD_U(", ", open_session, cancel_id); + PRINT_FIELD_U(", ", open_session, num_params); + tee_print_params(tcp, params, open_session.num_params); + + tprints("}"); + return 0; + + } else if (syserror(tcp)) { + tprints("}"); + return RVAL_IOCTL_DECODED; + + } else { + tprints(" => "); + /* + * Yes, params are [in/out] for TEE_IOC_OPEN_SESSION. + * As for all other operations they are used in. + */ + if ((rval = TEE_FETCH_BUF_DATA(buf_data, open_session, ¶ms))) + return rval; + + PRINT_FIELD_SESSION("{", open_session, session); + PRINT_FIELD_U(", ", open_session, ret); + PRINT_FIELD_XVAL(", ", open_session, ret_origin, tee_ioctl_origins, + "TEEC_ORIGIN_???"); + tee_print_params(tcp, params, open_session.num_params); + + tprints("}}"); + return RVAL_IOCTL_DECODED; + } +} + +static int +tee_invoke(struct tcb *const tcp, const kernel_ulong_t arg) +{ + int rval; + struct_tee_ioctl_buf_data buf_data; + struct_tee_ioctl_invoke_arg invoke; + uint64_t params; + + if (entering(tcp)) { + tprints(", "); + if ((rval = TEE_FETCH_BUF_DATA(buf_data, invoke, ¶ms))) + return rval; + + PRINT_FIELD_U("{", buf_data, buf_len); + PRINT_FIELD_U(", buf_ptr={", invoke, func); + PRINT_FIELD_SESSION(", ", invoke, session); + PRINT_FIELD_U(", ", invoke, cancel_id); + PRINT_FIELD_U(", ", invoke, num_params); + tee_print_params(tcp, params, invoke.num_params); + + tprints("}"); + return 0; + + } else if (syserror(tcp)) { + tprints("}"); + return RVAL_IOCTL_DECODED; + + } else { + tprints(" => "); + if ((rval = TEE_FETCH_BUF_DATA(buf_data, invoke, ¶ms))) + return rval; + + PRINT_FIELD_U("{", invoke, ret); + PRINT_FIELD_XVAL(", ", invoke, ret_origin, tee_ioctl_origins, + "TEEC_ORIGIN_???"); + tee_print_params(tcp, params, invoke.num_params); + + tprints("}}"); + return RVAL_IOCTL_DECODED; + } +} + +static int +tee_cancel(struct tcb *const tcp, const kernel_ulong_t arg) +{ + struct_tee_ioctl_cancel_arg cancel; + + tprints(", "); + if (umove_or_printaddr(tcp, arg, &cancel)) + return RVAL_IOCTL_DECODED; + + PRINT_FIELD_U("{", cancel, cancel_id); + PRINT_FIELD_SESSION(", ", cancel, session); + + tprints("}"); + return RVAL_IOCTL_DECODED; +} + +static int +tee_close_session(struct tcb *const tcp, const kernel_ulong_t arg) +{ + struct_tee_ioctl_close_session_arg close_session; + + tprints(", "); + if (umove_or_printaddr(tcp, arg, &close_session)) + return RVAL_IOCTL_DECODED; + + PRINT_FIELD_SESSION("{", close_session, session); + + tprints("}"); + return RVAL_IOCTL_DECODED; +} + +static int +tee_suppl_recv(struct tcb *const tcp, const kernel_ulong_t arg) +{ + int rval; + struct_tee_ioctl_buf_data buf_data; + struct_tee_iocl_supp_recv_arg supp_recv; + uint64_t params; + + if (entering(tcp)) { + tprints(", "); + if ((rval = TEE_FETCH_BUF_DATA(buf_data, supp_recv, ¶ms))) + return rval; + + PRINT_FIELD_U("{", buf_data, buf_len); + PRINT_FIELD_U(", buf_ptr={", supp_recv, func); + PRINT_FIELD_U(", ", supp_recv, num_params); + tee_print_params(tcp, params, supp_recv.num_params); + + tprints("}"); + return 0; + + } else if (syserror(tcp)) { + tprints("}"); + return RVAL_IOCTL_DECODED; + + } else { + tprints(" => "); + if ((rval = TEE_FETCH_BUF_DATA(buf_data, supp_recv, ¶ms))) + return rval; + + /* num_params is [in/out] for TEE_IOC_SUPPL_RECV only */ + PRINT_FIELD_U("{", supp_recv, num_params); + tee_print_params(tcp, params, supp_recv.num_params); + + tprints("}}"); + return RVAL_IOCTL_DECODED; + } +} + +static int +tee_suppl_send(struct tcb *const tcp, const kernel_ulong_t arg) +{ + int rval; + struct_tee_ioctl_buf_data buf_data; + struct_tee_iocl_supp_send_arg supp_send; + uint64_t params; + + if (entering(tcp)) { + tprints(", "); + if ((rval = TEE_FETCH_BUF_DATA(buf_data, supp_send, ¶ms))) + return rval; + + PRINT_FIELD_U("{", buf_data, buf_len); + PRINT_FIELD_U(", buf_ptr={", supp_send, num_params); + tee_print_params(tcp, params, supp_send.num_params); + + tprints("}"); + return 0; + + } else if (syserror(tcp)) { + tprints("}"); + return RVAL_IOCTL_DECODED; + + } else { + tprints(" => "); + if ((rval = TEE_FETCH_BUF_DATA(buf_data, supp_send, ¶ms))) + return rval; + + PRINT_FIELD_U("{", supp_send, ret); + tee_print_params(tcp, params, supp_send.num_params); + + tprints("}}"); + return RVAL_IOCTL_DECODED; + } +} + +static int +tee_shm_alloc(struct tcb *const tcp, const kernel_ulong_t arg) +{ + struct_tee_ioctl_shm_alloc_data shm_alloc; + + if (entering(tcp)) { + tprints(", "); + if (umove_or_printaddr(tcp, arg, &shm_alloc)) + return RVAL_IOCTL_DECODED; + + PRINT_FIELD_X("{", shm_alloc, size); + PRINT_FIELD_FLAGS(", ", shm_alloc, flags, + tee_ioctl_shm_flags, "TEE_IOCTL_SHM_???"); + tprints("}"); + return 0; + + } else if (syserror(tcp)) { + return RVAL_IOCTL_DECODED; + + } else { + tprints(" => "); + if (umove_or_printaddr(tcp, arg, &shm_alloc)) + return RVAL_IOCTL_DECODED; + + PRINT_FIELD_X("{", shm_alloc, size); + PRINT_FIELD_FLAGS(", ", shm_alloc, flags, + tee_ioctl_shm_flags, "TEE_IOCTL_SHM_???"); + PRINT_FIELD_D(", ", shm_alloc, id); + + tprints("}"); + return RVAL_IOCTL_DECODED; + } +} + +static int +tee_shm_register_fd(struct tcb *const tcp, const kernel_ulong_t arg) +{ + struct_tee_ioctl_shm_register_fd_data shm_register_fd; + + if (entering(tcp)) { + tprints(", "); + if (umove_or_printaddr(tcp, arg, &shm_register_fd)) + return RVAL_IOCTL_DECODED; + + PRINT_FIELD_FD("{", shm_register_fd, fd, tcp); + PRINT_FIELD_FLAGS(", ", shm_register_fd, flags, + tee_ioctl_shm_flags, "TEE_IOCTL_SHM_???"); + tprints("}"); + return 0; + + } else if (syserror(tcp)) { + return RVAL_IOCTL_DECODED; + + } else { + tprints(" => "); + if (umove_or_printaddr(tcp, arg, &shm_register_fd)) + return RVAL_IOCTL_DECODED; + + PRINT_FIELD_X("{", shm_register_fd, size); + PRINT_FIELD_D(", ", shm_register_fd, id); + + tprints("}"); + return RVAL_IOCTL_DECODED; + } +} + +static int +tee_shm_register(struct tcb *const tcp, const kernel_ulong_t arg) +{ + struct_tee_ioctl_shm_register_data shm_register; + + if (entering(tcp)) { + tprints(", "); + if (umove_or_printaddr(tcp, arg, &shm_register)) + return RVAL_IOCTL_DECODED; + + PRINT_FIELD_ADDR64("{", shm_register, addr); + PRINT_FIELD_X(", ", shm_register, length); + PRINT_FIELD_FLAGS(", ", shm_register, flags, + tee_ioctl_shm_flags, "TEE_IOCTL_SHM_???"); + tprints("}"); + return 0; + + } else if (syserror(tcp)) { + return RVAL_IOCTL_DECODED; + + } else { + tprints(" => "); + if (umove_or_printaddr(tcp, arg, &shm_register)) + return RVAL_IOCTL_DECODED; + + PRINT_FIELD_X("{", shm_register, length); + PRINT_FIELD_FLAGS(", ", shm_register, flags, + tee_ioctl_shm_flags, "TEE_IOCTL_SHM_???"); + PRINT_FIELD_D(", ", shm_register, id); + + tprints("}"); + return RVAL_IOCTL_DECODED; + } +} + +int +tee_ioctl(struct tcb *const tcp, const unsigned int code, + const kernel_ulong_t arg) +{ + switch (code) { + case TEE_IOC_VERSION: + return tee_version(tcp, arg); + + case TEE_IOC_OPEN_SESSION: + return tee_open_session(tcp, arg); + + case TEE_IOC_INVOKE: + return tee_invoke(tcp, arg); + + case TEE_IOC_CANCEL: + return tee_cancel(tcp, arg); + + case TEE_IOC_CLOSE_SESSION: + return tee_close_session(tcp, arg); + + case TEE_IOC_SUPPL_RECV: + return tee_suppl_recv(tcp, arg); + + case TEE_IOC_SUPPL_SEND: + return tee_suppl_send(tcp, arg); + + case TEE_IOC_SHM_ALLOC: + return tee_shm_alloc(tcp, arg); + + case TEE_IOC_SHM_REGISTER_FD: + /* This one isn't upstream */ + return tee_shm_register_fd(tcp, arg); + + case TEE_IOC_SHM_REGISTER: + return tee_shm_register(tcp, arg); + + default: + return RVAL_DECODED; + } +} diff --git a/test-driver b/test-driver index b8521a48..9759384a 100755 --- a/test-driver +++ b/test-driver @@ -3,7 +3,7 @@ scriptversion=2018-03-07.03; # UTC -# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# Copyright (C) 2011-2020 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -42,11 +42,13 @@ print_usage () { cat < -# Copyright (c) 2011-2019 The strace developers. +# Copyright (c) 2011-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later OS = linux +CC = @CC_FOR_M32@ ARCH = @arch_m32@ NATIVE_ARCH = @arch_native@ SIZEOF_KERNEL_LONG_T = 4 SIZEOF_LONG = 4 MPERS_NAME = m32 -MPERS_CC_FLAGS = @cc_flags_m32@ +MPERS_CC_FLAGS = @CFLAGS_FOR_M32@ @cc_flags_m32@ ARCH_MFLAGS = -DMPERS_IS_$(MPERS_NAME) $(MPERS_CC_FLAGS) AM_CFLAGS = $(WARN_CFLAGS) AM_CPPFLAGS = $(ARCH_MFLAGS) \ @@ -29,6 +30,7 @@ AM_LDFLAGS = $(ARCH_MFLAGS) libtests_a_SOURCES = \ create_nl_socket.c \ + create_tmpfile.c \ errno2name.c \ error_msg.c \ fill_memory.c \ @@ -40,15 +42,21 @@ libtests_a_SOURCES = \ inode_of_sockfd.c \ libmmsg.c \ libsocketcall.c \ + lock_file.c \ overflowuid.c \ + pidns.c \ + pidns.h \ pipe_maxfd.c \ print_quoted_string.c \ print_time.c \ printflags.c \ - printxval.c \ + printxval-Xabbrev.c \ + printxval-Xraw.c \ + printxval-Xverbose.c \ signal2name.c \ skip_unavailable.c \ sprintrc.c \ + status.c \ tail_alloc.c \ test_netlink.h \ test_nlattr.h \ @@ -58,6 +66,7 @@ libtests_a_SOURCES = \ test_ucopy.h \ tests.h \ tprintf.c \ + xmalloc_for_tests.c \ # end of libtests_a_SOURCES libtests_a_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 check_LIBRARIES = libtests.a @@ -73,49 +82,102 @@ check_PROGRAMS = $(PURE_EXECUTABLES) \ attach-p-cmd-cmd \ attach-p-cmd-p \ block_reset_raise_run \ + block_reset_run \ bpf-obj_get_info_by_fd \ bpf-obj_get_info_by_fd-prog \ bpf-obj_get_info_by_fd-prog-v \ bpf-obj_get_info_by_fd-v \ bpf-success \ + bpf-success-long-y \ bpf-success-v \ caps-abbrev \ check_sigblock \ check_sigign \ clone_parent \ + clone_parent--quiet-exit \ + clone_parent-q \ + clone_parent-qq \ clone_ptrace \ + clone_ptrace--quiet-attach \ + clone_ptrace--quiet-exit \ + clone_ptrace-q \ + clone_ptrace-qq \ + clone3-success \ + clone3-success-Xabbrev \ + clone3-success-Xraw \ + clone3-success-Xverbose \ count-f \ delay \ execve-v \ execveat-v \ + fcntl--pidns-translation \ + fcntl64--pidns-translation \ + filter_seccomp-flag \ + filter_seccomp-perf \ filter-unavailable \ fork-f \ + fork--pidns-translation \ fsync-y \ + get_process_reaper \ + getpgrp--pidns-translation \ getpid \ + getpid--pidns-translation \ getppid \ + getsid--pidns-translation \ gettid \ + gettid--pidns-translation \ inject-nf \ int_0x80 \ + ioctl_block--pidns-translation \ ioctl_dm-v \ ioctl_evdev-success \ + ioctl_evdev-success-Xabbrev \ + ioctl_evdev-success-Xraw \ + ioctl_evdev-success-Xverbose \ ioctl_evdev-success-v \ - ioctl_evdev-v \ + ioctl_evdev-success-v-Xabbrev \ + ioctl_evdev-success-v-Xraw \ + ioctl_evdev-success-v-Xverbose \ + ioctl_hdio-success \ + ioctl_hdio-success-Xabbrev \ + ioctl_hdio-success-Xraw \ + ioctl_hdio-success-Xverbose \ + ioctl_hdio-success-v \ + ioctl_hdio-success-v-Xabbrev \ + ioctl_hdio-success-v-Xraw \ + ioctl_hdio-success-v-Xverbose \ ioctl_loop-nv \ ioctl_loop-v \ ioctl_nsfs \ ioctl_perf-success \ ioctl_rtc-v \ + ioctl_v4l2-success \ + ioctl_v4l2-success-Xabbrev \ + ioctl_v4l2-success-Xraw \ + ioctl_v4l2-success-Xverbose \ + ioctl_v4l2-success-v \ + ioctl_v4l2-success-v-Xabbrev \ + ioctl_v4l2-success-v-Xraw \ + ioctl_v4l2-success-v-Xverbose \ + ioprio--pidns-translation \ is_linux_mips_n64 \ + kcmp-y--pidns-translation \ kill_child \ + kill--pidns-translation \ ksysent \ list_sigaction_signum \ localtime \ looping_threads \ + migrate_pages--pidns-translation \ mmsg-silent \ mmsg_name-v \ + move_pages--pidns-translation \ msg_control-v \ net-accept-connect \ + net-sockaddr--pidns-translation \ net-tpacket_stats-success \ + nlattr_ifla_xdp-y \ + netlink_audit--pidns-translation \ netlink_inet_diag \ netlink_netlink_diag \ netlink_unix_diag \ @@ -127,11 +189,20 @@ check_PROGRAMS = $(PURE_EXECUTABLES) \ pc \ perf_event_open_nonverbose \ perf_event_open_unabbrev \ + pidfd_open--pidns-translation \ + pidfd_send_signal--pidns-translation \ + pidns-cache \ + poll-P \ + ppoll-P \ ppoll-v \ + prlimit64--pidns-translation \ prctl-seccomp-filter-v \ prctl-seccomp-strict \ prctl-spec-inject \ print_maxfd \ + print_ppid_tracerpid \ + process_vm_readv--pidns-translation \ + process_vm_writev--pidns-translation \ qual_fault \ qual_inject-error-signal \ qual_inject-retval \ @@ -145,7 +216,13 @@ check_PROGRAMS = $(PURE_EXECUTABLES) \ quotactl-xfs-v \ redirect-fds \ restart_syscall \ + rt_sigqueueinfo--pidns-translation \ + rt_tgsigqueueinfo--pidns-translation \ run_expect_termsig \ + sched_xetaffinity--pidns-translation \ + sched_xetattr--pidns-translation \ + sched_xetparam--pidns-translation \ + sched_xetscheduler--pidns-translation \ scm_rights \ seccomp-filter-v \ seccomp-strict \ @@ -153,17 +230,35 @@ check_PROGRAMS = $(PURE_EXECUTABLES) \ set_ptracer_any \ set_sigblock \ set_sigign \ + setpgrp-exec \ signal_receive \ + signal_receive--pidns-translation \ sleep \ stack-fcall \ + stack-fcall-attach \ stack-fcall-mangled \ + status-none-threads \ + status-unfinished-threads \ + so_peercred--pidns-translation \ + syslog-success \ + tgkill--pidns-translation \ threads-execve \ + threads-execve--quiet-thread-execve \ + threads-execve-q \ + threads-execve-qq \ + threads-execve-qqq \ + tkill--pidns-translation \ + tracer_ppid_pgid_sid \ + trie_test \ unblock_reset_raise \ unix-pair-send-recv \ unix-pair-sendto-recvfrom \ vfork-f \ wait4-v \ waitid-v \ + xetpgid--pidns-translation \ + xetpriority--pidns-translation \ + xet_robust_list--pidns-translation \ zeroargc \ # end of check_PROGRAMS @@ -177,6 +272,8 @@ ftruncate64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 localtime_LDADD = $(clock_LIBS) $(LDADD) looping_threads_LDADD = -lpthread $(LDADD) lstat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 +maybe_switch_current_tcp_LDADD = -lpthread $(LDADD) +maybe_switch_current_tcp__quiet_thread_execve_LDADD = -lpthread $(LDADD) mmap64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 mmap64_Xabbrev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 mmap64_Xraw_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 @@ -190,7 +287,13 @@ preadv_pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 stat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 statfs_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 +status_none_threads_LDADD = -lpthread $(LDADD) +status_unfinished_threads_LDADD = -lpthread $(LDADD) threads_execve_LDADD = -lpthread $(clock_LIBS) $(LDADD) +threads_execve__quiet_thread_execve_LDADD = -lpthread $(clock_LIBS) $(LDADD) +threads_execve_q_LDADD = -lpthread $(clock_LIBS) $(LDADD) +threads_execve_qq_LDADD = -lpthread $(clock_LIBS) $(LDADD) +threads_execve_qqq_LDADD = -lpthread $(clock_LIBS) $(LDADD) times_LDADD = $(clock_LIBS) $(LDADD) truncate64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 uio_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 @@ -198,14 +301,22 @@ uio_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 stack_fcall_SOURCES = stack-fcall.c \ stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c +stack_fcall_attach_SOURCES = stack-fcall-attach.c \ + stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c + stack_fcall_mangled_SOURCES = stack-fcall-mangled.c \ stack-fcall-mangled-0.c stack-fcall-mangled-1.c \ stack-fcall-mangled-2.c stack-fcall-mangled-3.c +trie_test_SOURCES = trie_test.c trie_for_tests.c +trie_test_CPPFLAGS = $(AM_CPPFLAGS) $(CODE_COVERAGE_CPPFLAGS) +trie_test_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS) +trie_test_LDADD = $(LDADD) $(CODE_COVERAGE_LIBS) + include gen_tests.am if ENABLE_STACKTRACE -STACKTRACE_TESTS = strace-k.test +STACKTRACE_TESTS = strace-k.test strace-k-p.test if USE_DEMANGLE STACKTRACE_TESTS += strace-k-demangle.test endif @@ -214,6 +325,7 @@ STACKTRACE_TESTS = endif DECODER_TESTS = \ + bpf-success-long-y.test \ bpf-success-v.test \ bpf-success.test \ brk.test \ @@ -226,17 +338,21 @@ DECODER_TESTS = \ btrfs-wX.test \ caps-abbrev.test \ caps.test \ + clone-flags.test \ + clone3-success.test \ eventfd.test \ execve-v.test \ execve.test \ fadvise64.test \ + faccessat.test \ + faccessat2.test \ futex.test \ getuid.test \ int_0x80.test \ + inotify_init-y.test \ ioctl.test \ - ioctl_evdev-success-v.test \ + ioctl_block--pidns-translation.test \ ioctl_evdev-success.test \ - ioctl_perf-success.test \ ipc_msgbuf.test \ kern_features-fault.test \ llseek.test \ @@ -278,6 +394,7 @@ DECODER_TESTS = \ seccomp-strict.test \ sigaltstack.test \ sun_path.test \ + syslog-success.test \ uio.test \ umount.test \ umount2.test \ @@ -293,7 +410,6 @@ MISC_TESTS = \ attach-f-p.test \ attach-p-cmd.test \ bexecve.test \ - clone_parent.test \ clone_ptrace.test \ count-f.test \ count.test \ @@ -302,20 +418,24 @@ MISC_TESTS = \ detach-sleeping.test \ detach-stopped.test \ fflush.test \ + filter_seccomp-perf.test \ filter-unavailable.test \ filtering_fd-syntax.test \ filtering_syscall-syntax.test \ first_exec_failure.test \ + fork--pidns-translation.test \ get_regs.test \ + gettid--pidns-translation.test \ inject-nf.test \ interactive_block.test \ kill_child.test \ - ksysent.test \ localtime.test \ looping_threads.test \ + netlink_audit--pidns-translation.test \ opipe.test \ options-syntax.test \ pc.test \ + pidns-cache.test \ printpath-umovestr-legacy.test \ printstrn-umoven-legacy.test \ qual_fault-syntax.test \ @@ -335,8 +455,16 @@ MISC_TESTS = \ restart_syscall.test \ sigblock.test \ sigign.test \ + status-detached.test \ + status-none-threads.test \ + status-unfinished-threads.test \ strace-C.test \ + strace-D.test \ + strace-DD.test \ + strace-DDD.test \ strace-E.test \ + strace-E-override.test \ + strace-E-unset.test \ strace-S.test \ strace-T.test \ strace-V.test \ @@ -349,6 +477,7 @@ MISC_TESTS = \ strace-ttt.test \ termsig.test \ threads-execve.test \ + umovestr_cached.test \ # end of MISC_TESTS TESTS = $(GEN_TESTS) $(DECODER_TESTS) $(MISC_TESTS) $(STACKTRACE_TESTS) @@ -381,7 +510,10 @@ EXTRA_DIST = \ eventfd.expected \ fadvise.h \ fcntl-common.c \ + filter_seccomp.in \ + filter_seccomp.sh \ filter-unavailable.expected \ + fork--pidns-translation.awk \ fstatat.c \ fstatx.c \ gen_pure_executables.sh \ @@ -390,17 +522,20 @@ EXTRA_DIST = \ getresugid.c \ init.sh \ init_delete_module.h \ + ioctl-success.sh \ ioctl_kvm_run_common.c \ ipc.sh \ + kernel_old_timespec.h \ + kernel_old_timex.h \ ksysent.sed \ lstatx.c \ match.awk \ net.expected \ - netlink_sock_diag-v.sh \ nlattr_ifla.h \ pipe.expected \ print_user_desc.c \ printsignal.c \ + printxval.c \ process_vm_readv_writev.c \ pure_executables.list \ qual_fault-exit_group.expected \ @@ -414,6 +549,7 @@ EXTRA_DIST = \ run.sh \ sched.in \ scno_tampering.sh \ + semop-common.c \ setfsugid.c \ setresugid.c \ setreugid.c \ @@ -422,18 +558,37 @@ EXTRA_DIST = \ sockaddr_xlat.c \ sockname.c \ stack-fcall.h \ + status-detached.expected \ + strace--follow-forks-output-separately.expected \ + strace--relative-timestamps.expected \ + strace--relative-timestamps-s.expected \ + strace--relative-timestamps-ms.expected \ + strace--relative-timestamps-us.expected \ + strace--relative-timestamps-ns.expected \ + strace--syscall-times.expected \ + strace--syscall-times-s.expected \ + strace--syscall-times-ms.expected \ + strace--syscall-times-us.expected \ + strace--syscall-times-ns.expected \ strace-C.expected \ + strace-D.expected \ + strace-DDD.expected \ strace-E.expected \ + strace-E-unset.expected \ strace-T.expected \ strace-ff.expected \ strace-k-demangle.expected \ strace-k-demangle.test \ + strace-k-p.expected \ + strace-k-p.test \ strace-k.expected \ strace-k.test \ strace-r.expected \ strace.supp \ sun_path.expected \ syntax.sh \ + trace_clock.in \ + trace_creds.in \ trace_fstat.in \ trace_fstatfs.in \ trace_lstat.in \ @@ -454,6 +609,7 @@ EXTRA_DIST = \ unix-pair-send-recv.expected \ unix-pair-sendto-recvfrom.expected \ xchownx.c \ + xgetdents.c \ xgetrlimit.c \ xselect.c \ xstatfs.c \ diff --git a/tests-m32/Makefile.in b/tests-m32/Makefile.in index 9c424933..defaf835 100644 --- a/tests-m32/Makefile.in +++ b/tests-m32/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. +# Makefile.in generated by automake 1.16.2 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2018 Free Software Foundation, Inc. +# Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -17,7 +17,7 @@ # Automake input for strace tests. # # Copyright (c) 2011-2016 Dmitry V. Levin -# Copyright (c) 2011-2019 The strace developers. +# Copyright (c) 2011-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -105,59 +105,173 @@ host_triplet = @host@ check_PROGRAMS = $(am__EXEEXT_1) _newselect-P$(EXEEXT) answer$(EXEEXT) \ attach-f-p$(EXEEXT) attach-f-p-cmd$(EXEEXT) \ attach-p-cmd-cmd$(EXEEXT) attach-p-cmd-p$(EXEEXT) \ - block_reset_raise_run$(EXEEXT) bpf-obj_get_info_by_fd$(EXEEXT) \ + block_reset_raise_run$(EXEEXT) block_reset_run$(EXEEXT) \ + bpf-obj_get_info_by_fd$(EXEEXT) \ bpf-obj_get_info_by_fd-prog$(EXEEXT) \ bpf-obj_get_info_by_fd-prog-v$(EXEEXT) \ bpf-obj_get_info_by_fd-v$(EXEEXT) bpf-success$(EXEEXT) \ - bpf-success-v$(EXEEXT) caps-abbrev$(EXEEXT) \ - check_sigblock$(EXEEXT) check_sigign$(EXEEXT) \ - clone_parent$(EXEEXT) clone_ptrace$(EXEEXT) count-f$(EXEEXT) \ + bpf-success-long-y$(EXEEXT) bpf-success-v$(EXEEXT) \ + caps-abbrev$(EXEEXT) check_sigblock$(EXEEXT) \ + check_sigign$(EXEEXT) clone_parent$(EXEEXT) \ + clone_parent--quiet-exit$(EXEEXT) clone_parent-q$(EXEEXT) \ + clone_parent-qq$(EXEEXT) clone_ptrace$(EXEEXT) \ + clone_ptrace--quiet-attach$(EXEEXT) \ + clone_ptrace--quiet-exit$(EXEEXT) clone_ptrace-q$(EXEEXT) \ + clone_ptrace-qq$(EXEEXT) clone3-success$(EXEEXT) \ + clone3-success-Xabbrev$(EXEEXT) clone3-success-Xraw$(EXEEXT) \ + clone3-success-Xverbose$(EXEEXT) count-f$(EXEEXT) \ delay$(EXEEXT) execve-v$(EXEEXT) execveat-v$(EXEEXT) \ - filter-unavailable$(EXEEXT) fork-f$(EXEEXT) fsync-y$(EXEEXT) \ - getpid$(EXEEXT) getppid$(EXEEXT) gettid$(EXEEXT) \ - inject-nf$(EXEEXT) int_0x80$(EXEEXT) ioctl_dm-v$(EXEEXT) \ - ioctl_evdev-success$(EXEEXT) ioctl_evdev-success-v$(EXEEXT) \ - ioctl_evdev-v$(EXEEXT) ioctl_loop-nv$(EXEEXT) \ + fcntl--pidns-translation$(EXEEXT) \ + fcntl64--pidns-translation$(EXEEXT) \ + filter_seccomp-flag$(EXEEXT) filter_seccomp-perf$(EXEEXT) \ + filter-unavailable$(EXEEXT) fork-f$(EXEEXT) \ + fork--pidns-translation$(EXEEXT) fsync-y$(EXEEXT) \ + get_process_reaper$(EXEEXT) \ + getpgrp--pidns-translation$(EXEEXT) getpid$(EXEEXT) \ + getpid--pidns-translation$(EXEEXT) getppid$(EXEEXT) \ + getsid--pidns-translation$(EXEEXT) gettid$(EXEEXT) \ + gettid--pidns-translation$(EXEEXT) inject-nf$(EXEEXT) \ + int_0x80$(EXEEXT) ioctl_block--pidns-translation$(EXEEXT) \ + ioctl_dm-v$(EXEEXT) ioctl_evdev-success$(EXEEXT) \ + ioctl_evdev-success-Xabbrev$(EXEEXT) \ + ioctl_evdev-success-Xraw$(EXEEXT) \ + ioctl_evdev-success-Xverbose$(EXEEXT) \ + ioctl_evdev-success-v$(EXEEXT) \ + ioctl_evdev-success-v-Xabbrev$(EXEEXT) \ + ioctl_evdev-success-v-Xraw$(EXEEXT) \ + ioctl_evdev-success-v-Xverbose$(EXEEXT) \ + ioctl_hdio-success$(EXEEXT) \ + ioctl_hdio-success-Xabbrev$(EXEEXT) \ + ioctl_hdio-success-Xraw$(EXEEXT) \ + ioctl_hdio-success-Xverbose$(EXEEXT) \ + ioctl_hdio-success-v$(EXEEXT) \ + ioctl_hdio-success-v-Xabbrev$(EXEEXT) \ + ioctl_hdio-success-v-Xraw$(EXEEXT) \ + ioctl_hdio-success-v-Xverbose$(EXEEXT) ioctl_loop-nv$(EXEEXT) \ ioctl_loop-v$(EXEEXT) ioctl_nsfs$(EXEEXT) \ ioctl_perf-success$(EXEEXT) ioctl_rtc-v$(EXEEXT) \ - is_linux_mips_n64$(EXEEXT) kill_child$(EXEEXT) \ - ksysent$(EXEEXT) list_sigaction_signum$(EXEEXT) \ - localtime$(EXEEXT) looping_threads$(EXEEXT) \ - mmsg-silent$(EXEEXT) mmsg_name-v$(EXEEXT) \ + ioctl_v4l2-success$(EXEEXT) \ + ioctl_v4l2-success-Xabbrev$(EXEEXT) \ + ioctl_v4l2-success-Xraw$(EXEEXT) \ + ioctl_v4l2-success-Xverbose$(EXEEXT) \ + ioctl_v4l2-success-v$(EXEEXT) \ + ioctl_v4l2-success-v-Xabbrev$(EXEEXT) \ + ioctl_v4l2-success-v-Xraw$(EXEEXT) \ + ioctl_v4l2-success-v-Xverbose$(EXEEXT) \ + ioprio--pidns-translation$(EXEEXT) is_linux_mips_n64$(EXEEXT) \ + kcmp-y--pidns-translation$(EXEEXT) kill_child$(EXEEXT) \ + kill--pidns-translation$(EXEEXT) ksysent$(EXEEXT) \ + list_sigaction_signum$(EXEEXT) localtime$(EXEEXT) \ + looping_threads$(EXEEXT) \ + migrate_pages--pidns-translation$(EXEEXT) mmsg-silent$(EXEEXT) \ + mmsg_name-v$(EXEEXT) move_pages--pidns-translation$(EXEEXT) \ msg_control-v$(EXEEXT) net-accept-connect$(EXEEXT) \ - net-tpacket_stats-success$(EXEEXT) netlink_inet_diag$(EXEEXT) \ - netlink_netlink_diag$(EXEEXT) netlink_unix_diag$(EXEEXT) \ - nsyscalls$(EXEEXT) nsyscalls-d$(EXEEXT) oldselect-P$(EXEEXT) \ + net-sockaddr--pidns-translation$(EXEEXT) \ + net-tpacket_stats-success$(EXEEXT) nlattr_ifla_xdp-y$(EXEEXT) \ + netlink_audit--pidns-translation$(EXEEXT) \ + netlink_inet_diag$(EXEEXT) netlink_netlink_diag$(EXEEXT) \ + netlink_unix_diag$(EXEEXT) nsyscalls$(EXEEXT) \ + nsyscalls-d$(EXEEXT) oldselect-P$(EXEEXT) \ oldselect-efault-P$(EXEEXT) orphaned_process_group$(EXEEXT) \ pc$(EXEEXT) perf_event_open_nonverbose$(EXEEXT) \ - perf_event_open_unabbrev$(EXEEXT) ppoll-v$(EXEEXT) \ + perf_event_open_unabbrev$(EXEEXT) \ + pidfd_open--pidns-translation$(EXEEXT) \ + pidfd_send_signal--pidns-translation$(EXEEXT) \ + pidns-cache$(EXEEXT) poll-P$(EXEEXT) ppoll-P$(EXEEXT) \ + ppoll-v$(EXEEXT) prlimit64--pidns-translation$(EXEEXT) \ prctl-seccomp-filter-v$(EXEEXT) prctl-seccomp-strict$(EXEEXT) \ prctl-spec-inject$(EXEEXT) print_maxfd$(EXEEXT) \ + print_ppid_tracerpid$(EXEEXT) \ + process_vm_readv--pidns-translation$(EXEEXT) \ + process_vm_writev--pidns-translation$(EXEEXT) \ qual_fault$(EXEEXT) qual_inject-error-signal$(EXEEXT) \ qual_inject-retval$(EXEEXT) qual_inject-signal$(EXEEXT) \ qual_signal$(EXEEXT) quotactl-success$(EXEEXT) \ quotactl-success-v$(EXEEXT) quotactl-v$(EXEEXT) \ quotactl-xfs-success$(EXEEXT) quotactl-xfs-success-v$(EXEEXT) \ quotactl-xfs-v$(EXEEXT) redirect-fds$(EXEEXT) \ - restart_syscall$(EXEEXT) run_expect_termsig$(EXEEXT) \ + restart_syscall$(EXEEXT) \ + rt_sigqueueinfo--pidns-translation$(EXEEXT) \ + rt_tgsigqueueinfo--pidns-translation$(EXEEXT) \ + run_expect_termsig$(EXEEXT) \ + sched_xetaffinity--pidns-translation$(EXEEXT) \ + sched_xetattr--pidns-translation$(EXEEXT) \ + sched_xetparam--pidns-translation$(EXEEXT) \ + sched_xetscheduler--pidns-translation$(EXEEXT) \ scm_rights$(EXEEXT) seccomp-filter-v$(EXEEXT) \ seccomp-strict$(EXEEXT) select-P$(EXEEXT) \ set_ptracer_any$(EXEEXT) set_sigblock$(EXEEXT) \ - set_sigign$(EXEEXT) signal_receive$(EXEEXT) sleep$(EXEEXT) \ - stack-fcall$(EXEEXT) stack-fcall-mangled$(EXEEXT) \ - threads-execve$(EXEEXT) unblock_reset_raise$(EXEEXT) \ - unix-pair-send-recv$(EXEEXT) \ + set_sigign$(EXEEXT) setpgrp-exec$(EXEEXT) \ + signal_receive$(EXEEXT) \ + signal_receive--pidns-translation$(EXEEXT) sleep$(EXEEXT) \ + stack-fcall$(EXEEXT) stack-fcall-attach$(EXEEXT) \ + stack-fcall-mangled$(EXEEXT) status-none-threads$(EXEEXT) \ + status-unfinished-threads$(EXEEXT) \ + so_peercred--pidns-translation$(EXEEXT) \ + syslog-success$(EXEEXT) tgkill--pidns-translation$(EXEEXT) \ + threads-execve$(EXEEXT) \ + threads-execve--quiet-thread-execve$(EXEEXT) \ + threads-execve-q$(EXEEXT) threads-execve-qq$(EXEEXT) \ + threads-execve-qqq$(EXEEXT) tkill--pidns-translation$(EXEEXT) \ + tracer_ppid_pgid_sid$(EXEEXT) trie_test$(EXEEXT) \ + unblock_reset_raise$(EXEEXT) unix-pair-send-recv$(EXEEXT) \ unix-pair-sendto-recvfrom$(EXEEXT) vfork-f$(EXEEXT) \ - wait4-v$(EXEEXT) waitid-v$(EXEEXT) zeroargc$(EXEEXT) + wait4-v$(EXEEXT) waitid-v$(EXEEXT) \ + xetpgid--pidns-translation$(EXEEXT) \ + xetpriority--pidns-translation$(EXEEXT) \ + xet_robust_list--pidns-translation$(EXEEXT) zeroargc$(EXEEXT) @ENABLE_STACKTRACE_TRUE@@USE_DEMANGLE_TRUE@am__append_1 = strace-k-demangle.test TESTS = $(GEN_TESTS) $(DECODER_TESTS) $(MISC_TESTS) $(am__EXEEXT_2) subdir = tests-m32 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ax_code_coverage.m4 \ +am__aclocal_m4_deps = $(top_srcdir)/xlat/btrfs_compress_types.m4 \ + $(top_srcdir)/xlat/close_range_flags.m4 \ + $(top_srcdir)/xlat/loop_flags_options.m4 \ + $(top_srcdir)/xlat/rtnl_ifla_xdp_attached_mode.m4 \ + $(top_srcdir)/xlat/rtnl_ifla_xdp_attrs.m4 \ + $(top_srcdir)/xlat/rtnl_link_attrs.m4 \ + $(top_srcdir)/xlat/rtnl_tc_action_attrs.m4 \ + $(top_srcdir)/xlat/rtnl_tca_stab_attrs.m4 \ + $(top_srcdir)/xlat/rtnl_tca_stats_attrs.m4 \ + $(top_srcdir)/xlat/st_check_enums.m4 \ + $(top_srcdir)/xlat/sysctl_kern.m4 \ + $(top_srcdir)/xlat/sysctl_net.m4 \ + $(top_srcdir)/xlat/sysctl_net_core.m4 \ + $(top_srcdir)/xlat/sysctl_net_ipv4.m4 \ + $(top_srcdir)/xlat/sysctl_net_ipv4_conf.m4 \ + $(top_srcdir)/xlat/sysctl_net_ipv4_route.m4 \ + $(top_srcdir)/xlat/sysctl_net_ipv6.m4 \ + $(top_srcdir)/xlat/sysctl_net_ipv6_route.m4 \ + $(top_srcdir)/xlat/sysctl_net_unix.m4 \ + $(top_srcdir)/xlat/sysctl_root.m4 \ + $(top_srcdir)/xlat/sysctl_vm.m4 \ + $(top_srcdir)/xlat/v4l2_buf_types.m4 \ + $(top_srcdir)/xlat/v4l2_colorspaces.m4 \ + $(top_srcdir)/xlat/v4l2_control_types.m4 \ + $(top_srcdir)/xlat/v4l2_fields.m4 \ + $(top_srcdir)/xlat/v4l2_framesize_types.m4 \ + $(top_srcdir)/xlat/v4l2_memories.m4 \ + $(top_srcdir)/xlat/v4l2_tuner_types.m4 \ + $(top_srcdir)/xlat/waitid_types.m4 \ + $(top_srcdir)/types/check-btrfs.m4 \ + $(top_srcdir)/types/check-cryptouser.m4 \ + $(top_srcdir)/types/check-evdev.m4 \ + $(top_srcdir)/types/check-io_uring.m4 \ + $(top_srcdir)/types/check-loop.m4 \ + $(top_srcdir)/types/check-openat2.m4 \ + $(top_srcdir)/types/check-rtnl_link.m4 \ + $(top_srcdir)/types/check-rtnl_mdb.m4 \ + $(top_srcdir)/types/check-rtnl_neightbl.m4 \ + $(top_srcdir)/types/check-rtnl_route.m4 \ + $(top_srcdir)/types/check-tee.m4 \ + $(top_srcdir)/types/check-v4l2.m4 \ + $(top_srcdir)/types/st_check_types.m4 \ + $(top_srcdir)/m4/ax_code_coverage.m4 \ $(top_srcdir)/m4/ax_prog_cc_for_build.m4 \ $(top_srcdir)/m4/ax_valgrind_check.m4 \ $(top_srcdir)/m4/bpf_attr.m4 $(top_srcdir)/m4/mpers.m4 \ - $(top_srcdir)/m4/st_demangle.m4 $(top_srcdir)/m4/st_libdw.m4 \ + $(top_srcdir)/m4/st_demangle.m4 \ + $(top_srcdir)/m4/st_esyscmd_s.m4 $(top_srcdir)/m4/st_libdw.m4 \ $(top_srcdir)/m4/st_libunwind.m4 \ $(top_srcdir)/m4/st_save_restore_var.m4 \ $(top_srcdir)/m4/st_stacktrace.m4 \ @@ -173,19 +287,27 @@ CONFIG_CLEAN_VPATH_FILES = am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \ access$(EXEEXT) acct$(EXEEXT) add_key$(EXEEXT) \ adjtimex$(EXEEXT) aio$(EXEEXT) aio_pgetevents$(EXEEXT) \ - alarm$(EXEEXT) bpf$(EXEEXT) bpf-obj_get_info_by_fd$(EXEEXT) \ - bpf-obj_get_info_by_fd-prog$(EXEEXT) \ - bpf-obj_get_info_by_fd-prog-v$(EXEEXT) \ - bpf-obj_get_info_by_fd-v$(EXEEXT) bpf-v$(EXEEXT) brk$(EXEEXT) \ + alarm$(EXEEXT) bpf$(EXEEXT) bpf-v$(EXEEXT) brk$(EXEEXT) \ btrfs$(EXEEXT) caps$(EXEEXT) chmod$(EXEEXT) chown$(EXEEXT) \ chown32$(EXEEXT) chroot$(EXEEXT) clock_adjtime$(EXEEXT) \ clock_nanosleep$(EXEEXT) clock_xettime$(EXEEXT) \ + clone-flags$(EXEEXT) clone3$(EXEEXT) clone3-Xabbrev$(EXEEXT) \ + clone3-Xraw$(EXEEXT) clone3-Xverbose$(EXEEXT) \ + close_range$(EXEEXT) close_range-P$(EXEEXT) \ + close_range-y$(EXEEXT) close_range-yy$(EXEEXT) \ copy_file_range$(EXEEXT) creat$(EXEEXT) delete_module$(EXEEXT) \ - dev-yy$(EXEEXT) dup$(EXEEXT) dup2$(EXEEXT) dup3$(EXEEXT) \ + dev--decode-fds-dev$(EXEEXT) dev--decode-fds-path$(EXEEXT) \ + dev--decode-fds-socket$(EXEEXT) dev-yy$(EXEEXT) dup$(EXEEXT) \ + dup-P$(EXEEXT) dup-y$(EXEEXT) dup-yy$(EXEEXT) dup2$(EXEEXT) \ + dup2-P$(EXEEXT) dup2-y$(EXEEXT) dup2-yy$(EXEEXT) dup3$(EXEEXT) \ + dup3-P$(EXEEXT) dup3-y$(EXEEXT) dup3-yy$(EXEEXT) \ epoll_create$(EXEEXT) epoll_create1$(EXEEXT) \ epoll_ctl$(EXEEXT) epoll_pwait$(EXEEXT) epoll_wait$(EXEEXT) \ erestartsys$(EXEEXT) eventfd$(EXEEXT) execve$(EXEEXT) \ - execveat$(EXEEXT) faccessat$(EXEEXT) fadvise64$(EXEEXT) \ + execveat$(EXEEXT) faccessat$(EXEEXT) faccessat-P$(EXEEXT) \ + faccessat-y$(EXEEXT) faccessat-yy$(EXEEXT) faccessat2$(EXEEXT) \ + faccessat2-P$(EXEEXT) faccessat2-y$(EXEEXT) \ + faccessat2-yy$(EXEEXT) fadvise64$(EXEEXT) \ fadvise64_64$(EXEEXT) fallocate$(EXEEXT) \ fanotify_init$(EXEEXT) fanotify_mark$(EXEEXT) \ fanotify_mark-Xabbrev$(EXEEXT) fanotify_mark-Xraw$(EXEEXT) \ @@ -194,37 +316,54 @@ am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \ fchown32$(EXEEXT) fchownat$(EXEEXT) fcntl$(EXEEXT) \ fcntl64$(EXEEXT) fdatasync$(EXEEXT) fflush$(EXEEXT) \ file_handle$(EXEEXT) file_ioctl$(EXEEXT) finit_module$(EXEEXT) \ - flock$(EXEEXT) fstat$(EXEEXT) fstat-Xabbrev$(EXEEXT) \ + flock$(EXEEXT) fsconfig$(EXEEXT) fsconfig-P$(EXEEXT) \ + fsmount$(EXEEXT) fsopen$(EXEEXT) fspick$(EXEEXT) \ + fspick-P$(EXEEXT) fstat$(EXEEXT) fstat-Xabbrev$(EXEEXT) \ fstat-Xraw$(EXEEXT) fstat-Xverbose$(EXEEXT) fstat64$(EXEEXT) \ fstat64-Xabbrev$(EXEEXT) fstat64-Xraw$(EXEEXT) \ fstat64-Xverbose$(EXEEXT) fstatat64$(EXEEXT) fstatfs$(EXEEXT) \ fstatfs64$(EXEEXT) fsync$(EXEEXT) ftruncate$(EXEEXT) \ ftruncate64$(EXEEXT) futex$(EXEEXT) futimesat$(EXEEXT) \ get_mempolicy$(EXEEXT) getcpu$(EXEEXT) getcwd$(EXEEXT) \ - getdents$(EXEEXT) getdents64$(EXEEXT) getegid$(EXEEXT) \ - getegid32$(EXEEXT) geteuid$(EXEEXT) geteuid32$(EXEEXT) \ - getgid$(EXEEXT) getgid32$(EXEEXT) getgroups$(EXEEXT) \ - getgroups32$(EXEEXT) getpeername$(EXEEXT) getpgrp$(EXEEXT) \ - getpid$(EXEEXT) getppid$(EXEEXT) getrandom$(EXEEXT) \ - getresgid$(EXEEXT) getresgid32$(EXEEXT) getresuid$(EXEEXT) \ - getresuid32$(EXEEXT) getrlimit$(EXEEXT) getrusage$(EXEEXT) \ - getsid$(EXEEXT) getsockname$(EXEEXT) getuid$(EXEEXT) \ - getuid32$(EXEEXT) getxxid$(EXEEXT) group_req$(EXEEXT) \ - inet-cmsg$(EXEEXT) init_module$(EXEEXT) inotify$(EXEEXT) \ - inotify_init1$(EXEEXT) io_uring_enter$(EXEEXT) \ - io_uring_register$(EXEEXT) io_uring_setup$(EXEEXT) \ - ioctl$(EXEEXT) ioctl_block$(EXEEXT) ioctl_dm$(EXEEXT) \ - ioctl_evdev$(EXEEXT) ioctl_inotify$(EXEEXT) \ + getdents$(EXEEXT) getdents-v$(EXEEXT) getdents64$(EXEEXT) \ + getdents64-v$(EXEEXT) getegid$(EXEEXT) getegid32$(EXEEXT) \ + geteuid$(EXEEXT) geteuid32$(EXEEXT) getgid$(EXEEXT) \ + getgid32$(EXEEXT) getgroups$(EXEEXT) getgroups32$(EXEEXT) \ + getpeername$(EXEEXT) getpgrp$(EXEEXT) getpid$(EXEEXT) \ + getppid$(EXEEXT) getrandom$(EXEEXT) getresgid$(EXEEXT) \ + getresgid32$(EXEEXT) getresuid$(EXEEXT) getresuid32$(EXEEXT) \ + getrlimit$(EXEEXT) getrusage$(EXEEXT) getsid$(EXEEXT) \ + getsockname$(EXEEXT) getuid$(EXEEXT) getuid32$(EXEEXT) \ + getxgid$(EXEEXT) getxpid$(EXEEXT) getxuid$(EXEEXT) \ + group_req$(EXEEXT) inet-cmsg$(EXEEXT) init_module$(EXEEXT) \ + inotify$(EXEEXT) inotify_init$(EXEEXT) inotify_init-y$(EXEEXT) \ + inotify_init1$(EXEEXT) inotify_init1-y$(EXEEXT) \ + io_uring_enter$(EXEEXT) io_uring_register$(EXEEXT) \ + io_uring_setup$(EXEEXT) ioctl$(EXEEXT) ioctl_block$(EXEEXT) \ + ioctl_dm$(EXEEXT) ioctl_evdev$(EXEEXT) \ + ioctl_evdev-Xabbrev$(EXEEXT) ioctl_evdev-Xraw$(EXEEXT) \ + ioctl_evdev-Xverbose$(EXEEXT) ioctl_evdev-v$(EXEEXT) \ + ioctl_evdev-v-Xabbrev$(EXEEXT) ioctl_evdev-v-Xraw$(EXEEXT) \ + ioctl_evdev-v-Xverbose$(EXEEXT) ioctl_hdio$(EXEEXT) \ + ioctl_hdio-Xabbrev$(EXEEXT) ioctl_hdio-Xraw$(EXEEXT) \ + ioctl_hdio-Xverbose$(EXEEXT) ioctl_hdio-v$(EXEEXT) \ + ioctl_hdio-v-Xabbrev$(EXEEXT) ioctl_hdio-v-Xraw$(EXEEXT) \ + ioctl_hdio-v-Xverbose$(EXEEXT) ioctl_inotify$(EXEEXT) \ ioctl_kvm_run$(EXEEXT) ioctl_kvm_run-v$(EXEEXT) \ ioctl_kvm_run_auxstr_vcpu$(EXEEXT) ioctl_loop$(EXEEXT) \ ioctl_mtd$(EXEEXT) ioctl_nbd$(EXEEXT) ioctl_perf$(EXEEXT) \ ioctl_ptp$(EXEEXT) ioctl_random$(EXEEXT) ioctl_rtc$(EXEEXT) \ ioctl_scsi$(EXEEXT) ioctl_sg_io_v3$(EXEEXT) \ ioctl_sg_io_v4$(EXEEXT) ioctl_sock_gifconf$(EXEEXT) \ - ioctl_uffdio$(EXEEXT) ioctl_v4l2$(EXEEXT) ioperm$(EXEEXT) \ - iopl$(EXEEXT) ioprio$(EXEEXT) ioprio-Xabbrev$(EXEEXT) \ - ioprio-Xraw$(EXEEXT) ioprio-Xverbose$(EXEEXT) ip_mreq$(EXEEXT) \ - ipc$(EXEEXT) ipc_msg$(EXEEXT) ipc_msg-Xabbrev$(EXEEXT) \ + ioctl_tee$(EXEEXT) ioctl_uffdio$(EXEEXT) ioctl_v4l2$(EXEEXT) \ + ioctl_v4l2-Xabbrev$(EXEEXT) ioctl_v4l2-Xraw$(EXEEXT) \ + ioctl_v4l2-Xverbose$(EXEEXT) ioctl_v4l2-v$(EXEEXT) \ + ioctl_v4l2-v-Xabbrev$(EXEEXT) ioctl_v4l2-v-Xraw$(EXEEXT) \ + ioctl_v4l2-v-Xverbose$(EXEEXT) ioctl_watchdog$(EXEEXT) \ + ioperm$(EXEEXT) iopl$(EXEEXT) ioprio$(EXEEXT) \ + ioprio-Xabbrev$(EXEEXT) ioprio-Xraw$(EXEEXT) \ + ioprio-Xverbose$(EXEEXT) ip_mreq$(EXEEXT) ipc$(EXEEXT) \ + ipc_msg$(EXEEXT) ipc_msg-Xabbrev$(EXEEXT) \ ipc_msg-Xraw$(EXEEXT) ipc_msg-Xverbose$(EXEEXT) \ ipc_msgbuf$(EXEEXT) ipc_msgbuf-Xabbrev$(EXEEXT) \ ipc_msgbuf-Xraw$(EXEEXT) ipc_msgbuf-Xverbose$(EXEEXT) \ @@ -240,7 +379,10 @@ am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \ lchown$(EXEEXT) lchown32$(EXEEXT) link$(EXEEXT) \ linkat$(EXEEXT) llseek$(EXEEXT) lookup_dcookie$(EXEEXT) \ lseek$(EXEEXT) lstat$(EXEEXT) lstat64$(EXEEXT) \ - madvise$(EXEEXT) mbind$(EXEEXT) membarrier$(EXEEXT) \ + madvise$(EXEEXT) maybe_switch_current_tcp$(EXEEXT) \ + maybe_switch_current_tcp--quiet-thread-execve$(EXEEXT) \ + mbind$(EXEEXT) mbind-Xabbrev$(EXEEXT) mbind-Xraw$(EXEEXT) \ + mbind-Xverbose$(EXEEXT) membarrier$(EXEEXT) \ memfd_create$(EXEEXT) memfd_create-Xabbrev$(EXEEXT) \ memfd_create-Xraw$(EXEEXT) memfd_create-Xverbose$(EXEEXT) \ migrate_pages$(EXEEXT) mincore$(EXEEXT) mkdir$(EXEEXT) \ @@ -251,14 +393,18 @@ am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \ mmap64-Xraw$(EXEEXT) mmap64-Xverbose$(EXEEXT) mmsg$(EXEEXT) \ mmsg_name$(EXEEXT) modify_ldt$(EXEEXT) mount$(EXEEXT) \ mount-Xabbrev$(EXEEXT) mount-Xraw$(EXEEXT) \ - mount-Xverbose$(EXEEXT) move_pages$(EXEEXT) \ + mount-Xverbose$(EXEEXT) move_mount$(EXEEXT) \ + move_mount-P$(EXEEXT) move_pages$(EXEEXT) \ move_pages-Xabbrev$(EXEEXT) move_pages-Xraw$(EXEEXT) \ move_pages-Xverbose$(EXEEXT) mq$(EXEEXT) mq_sendrecv$(EXEEXT) \ mq_sendrecv-read$(EXEEXT) mq_sendrecv-write$(EXEEXT) \ msg_control$(EXEEXT) msg_name$(EXEEXT) munlockall$(EXEEXT) \ - nanosleep$(EXEEXT) net-icmp_filter$(EXEEXT) \ - net-packet_mreq$(EXEEXT) net-packet_mreq-Xabbrev$(EXEEXT) \ - net-packet_mreq-Xraw$(EXEEXT) \ + nanosleep$(EXEEXT) net--decode-fds-dev-netlink$(EXEEXT) \ + net--decode-fds-none-netlink$(EXEEXT) \ + net--decode-fds-path-netlink$(EXEEXT) \ + net--decode-fds-socket-netlink$(EXEEXT) \ + net-icmp_filter$(EXEEXT) net-packet_mreq$(EXEEXT) \ + net-packet_mreq-Xabbrev$(EXEEXT) net-packet_mreq-Xraw$(EXEEXT) \ net-packet_mreq-Xverbose$(EXEEXT) net-sockaddr$(EXEEXT) \ net-tpacket_req$(EXEEXT) net-tpacket_stats$(EXEEXT) \ net-y-unix$(EXEEXT) net-yy-inet$(EXEEXT) net-yy-inet6$(EXEEXT) \ @@ -296,18 +442,28 @@ am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \ old_mmap-Xraw$(EXEEXT) old_mmap-Xverbose$(EXEEXT) \ old_mmap-v-none$(EXEEXT) oldfstat$(EXEEXT) oldlstat$(EXEEXT) \ oldselect$(EXEEXT) oldselect-efault$(EXEEXT) oldstat$(EXEEXT) \ - open$(EXEEXT) openat$(EXEEXT) osf_utimes$(EXEEXT) \ - pause$(EXEEXT) perf_event_open$(EXEEXT) personality$(EXEEXT) \ - personality-Xabbrev$(EXEEXT) personality-Xraw$(EXEEXT) \ - personality-Xverbose$(EXEEXT) pidfd_send_signal$(EXEEXT) \ - pipe$(EXEEXT) pipe2$(EXEEXT) pkey_alloc$(EXEEXT) \ - pkey_free$(EXEEXT) pkey_mprotect$(EXEEXT) poll$(EXEEXT) \ - poll-P$(EXEEXT) ppoll$(EXEEXT) ppoll-P$(EXEEXT) \ - prctl-arg2-intptr$(EXEEXT) prctl-dumpable$(EXEEXT) \ - prctl-name$(EXEEXT) prctl-no-args$(EXEEXT) \ - prctl-pdeathsig$(EXEEXT) prctl-securebits$(EXEEXT) \ - prctl-tid_address$(EXEEXT) prctl-tsc$(EXEEXT) \ - pread64-pwrite64$(EXEEXT) preadv$(EXEEXT) \ + open$(EXEEXT) open_tree$(EXEEXT) open_tree-P$(EXEEXT) \ + openat$(EXEEXT) openat2$(EXEEXT) openat2-Xabbrev$(EXEEXT) \ + openat2-Xraw$(EXEEXT) openat2-Xverbose$(EXEEXT) \ + openat2-v$(EXEEXT) openat2-v-y$(EXEEXT) \ + openat2-v-y-Xabbrev$(EXEEXT) openat2-v-y-Xraw$(EXEEXT) \ + openat2-v-y-Xverbose$(EXEEXT) openat2-y$(EXEEXT) \ + osf_utimes$(EXEEXT) pause$(EXEEXT) perf_event_open$(EXEEXT) \ + personality$(EXEEXT) personality-Xabbrev$(EXEEXT) \ + personality-Xraw$(EXEEXT) personality-Xverbose$(EXEEXT) \ + pidfd_getfd$(EXEEXT) pidfd_getfd-y$(EXEEXT) \ + pidfd_getfd-yy$(EXEEXT) pidfd_open$(EXEEXT) \ + pidfd_open--decode-fd-path$(EXEEXT) \ + pidfd_open--decode-fd-pidfd$(EXEEXT) \ + pidfd_open--decode-fd-socket$(EXEEXT) pidfd_open-P$(EXEEXT) \ + pidfd_open-y$(EXEEXT) pidfd_open-yy$(EXEEXT) \ + pidfd_send_signal$(EXEEXT) pipe$(EXEEXT) pipe2$(EXEEXT) \ + pkey_alloc$(EXEEXT) pkey_free$(EXEEXT) pkey_mprotect$(EXEEXT) \ + poll$(EXEEXT) ppoll$(EXEEXT) prctl-arg2-intptr$(EXEEXT) \ + prctl-dumpable$(EXEEXT) prctl-name$(EXEEXT) \ + prctl-no-args$(EXEEXT) prctl-pdeathsig$(EXEEXT) \ + prctl-securebits$(EXEEXT) prctl-tid_address$(EXEEXT) \ + prctl-tsc$(EXEEXT) pread64-pwrite64$(EXEEXT) preadv$(EXEEXT) \ preadv-pwritev$(EXEEXT) preadv2-pwritev2$(EXEEXT) \ printpath-umovestr$(EXEEXT) \ printpath-umovestr-peekdata$(EXEEXT) \ @@ -322,7 +478,8 @@ am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \ quotactl-Xraw$(EXEEXT) quotactl-Xverbose$(EXEEXT) \ quotactl-xfs$(EXEEXT) read-write$(EXEEXT) readahead$(EXEEXT) \ readdir$(EXEEXT) readlink$(EXEEXT) readlinkat$(EXEEXT) \ - readv$(EXEEXT) reboot$(EXEEXT) recvfrom$(EXEEXT) \ + readv$(EXEEXT) reboot$(EXEEXT) recv-MSG_TRUNC$(EXEEXT) \ + recvfrom$(EXEEXT) recvfrom-MSG_TRUNC$(EXEEXT) \ recvmmsg-timeout$(EXEEXT) recvmsg$(EXEEXT) \ remap_file_pages$(EXEEXT) remap_file_pages-Xabbrev$(EXEEXT) \ remap_file_pages-Xraw$(EXEEXT) \ @@ -341,8 +498,10 @@ am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \ sched_xetparam$(EXEEXT) sched_xetscheduler$(EXEEXT) \ sched_yield$(EXEEXT) seccomp-filter$(EXEEXT) \ seccomp_get_action_avail$(EXEEXT) select$(EXEEXT) \ - semop$(EXEEXT) sendfile$(EXEEXT) sendfile64$(EXEEXT) \ - set_mempolicy$(EXEEXT) setdomainname$(EXEEXT) \ + semop$(EXEEXT) semop-indirect$(EXEEXT) semtimedop$(EXEEXT) \ + sendfile$(EXEEXT) sendfile64$(EXEEXT) set_mempolicy$(EXEEXT) \ + set_mempolicy-Xabbrev$(EXEEXT) set_mempolicy-Xraw$(EXEEXT) \ + set_mempolicy-Xverbose$(EXEEXT) setdomainname$(EXEEXT) \ setfsgid$(EXEEXT) setfsgid32$(EXEEXT) setfsuid$(EXEEXT) \ setfsuid32$(EXEEXT) setgid$(EXEEXT) setgid32$(EXEEXT) \ setgroups$(EXEEXT) setgroups32$(EXEEXT) sethostname$(EXEEXT) \ @@ -364,27 +523,36 @@ am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \ sockaddr_xlat-Xverbose$(EXEEXT) socketcall$(EXEEXT) \ sockopt-sol_netlink$(EXEEXT) sockopt-timestamp$(EXEEXT) \ splice$(EXEEXT) stat$(EXEEXT) stat64$(EXEEXT) statfs$(EXEEXT) \ - statfs64$(EXEEXT) statx$(EXEEXT) swap$(EXEEXT) \ + statfs64$(EXEEXT) status-all$(EXEEXT) status-failed$(EXEEXT) \ + status-failed-long$(EXEEXT) status-failed-status$(EXEEXT) \ + status-none$(EXEEXT) status-none-f$(EXEEXT) \ + status-successful$(EXEEXT) status-successful-long$(EXEEXT) \ + status-successful-status$(EXEEXT) status-unfinished$(EXEEXT) \ + statx$(EXEEXT) strace--strings-in-hex$(EXEEXT) \ + strace--strings-in-hex-all$(EXEEXT) \ + strace--strings-in-hex-non-ascii$(EXEEXT) strace-n$(EXEEXT) \ + strace-x$(EXEEXT) strace-xx$(EXEEXT) swap$(EXEEXT) \ sxetmask$(EXEEXT) symlink$(EXEEXT) symlinkat$(EXEEXT) \ sync$(EXEEXT) sync_file_range$(EXEEXT) \ sync_file_range2$(EXEEXT) sysinfo$(EXEEXT) syslog$(EXEEXT) \ - tee$(EXEEXT) time$(EXEEXT) timer_create$(EXEEXT) \ - timer_xettime$(EXEEXT) timerfd_xettime$(EXEEXT) times$(EXEEXT) \ - times-fail$(EXEEXT) truncate$(EXEEXT) truncate64$(EXEEXT) \ + tee$(EXEEXT) tgkill$(EXEEXT) time$(EXEEXT) \ + timer_create$(EXEEXT) timer_xettime$(EXEEXT) \ + timerfd_xettime$(EXEEXT) times$(EXEEXT) times-fail$(EXEEXT) \ + tkill$(EXEEXT) truncate$(EXEEXT) truncate64$(EXEEXT) \ ugetrlimit$(EXEEXT) uio$(EXEEXT) umask$(EXEEXT) \ umount$(EXEEXT) umount2$(EXEEXT) umoven-illptr$(EXEEXT) \ umovestr$(EXEEXT) umovestr-illptr$(EXEEXT) umovestr2$(EXEEXT) \ - umovestr3$(EXEEXT) uname$(EXEEXT) unlink$(EXEEXT) \ - unlinkat$(EXEEXT) unshare$(EXEEXT) userfaultfd$(EXEEXT) \ - ustat$(EXEEXT) utime$(EXEEXT) utimensat$(EXEEXT) \ - utimensat-Xabbrev$(EXEEXT) utimensat-Xraw$(EXEEXT) \ - utimensat-Xverbose$(EXEEXT) utimes$(EXEEXT) vhangup$(EXEEXT) \ - vmsplice$(EXEEXT) wait4$(EXEEXT) waitid$(EXEEXT) \ - waitpid$(EXEEXT) xattr$(EXEEXT) xattr-strings$(EXEEXT) \ - xet_robust_list$(EXEEXT) xet_thread_area_x86$(EXEEXT) \ - xetitimer$(EXEEXT) xetpgid$(EXEEXT) xetpriority$(EXEEXT) \ - xettimeofday$(EXEEXT) -AR = ar + umovestr3$(EXEEXT) umovestr_cached$(EXEEXT) \ + umovestr_cached_adjacent$(EXEEXT) uname$(EXEEXT) \ + unlink$(EXEEXT) unlinkat$(EXEEXT) unshare$(EXEEXT) \ + userfaultfd$(EXEEXT) ustat$(EXEEXT) utime$(EXEEXT) \ + utimensat$(EXEEXT) utimensat-Xabbrev$(EXEEXT) \ + utimensat-Xraw$(EXEEXT) utimensat-Xverbose$(EXEEXT) \ + utimes$(EXEEXT) vhangup$(EXEEXT) vmsplice$(EXEEXT) \ + wait4$(EXEEXT) waitid$(EXEEXT) waitpid$(EXEEXT) xattr$(EXEEXT) \ + xattr-strings$(EXEEXT) xet_robust_list$(EXEEXT) \ + xet_thread_area_x86$(EXEEXT) xetitimer$(EXEEXT) \ + xetpgid$(EXEEXT) xetpriority$(EXEEXT) xettimeofday$(EXEEXT) ARFLAGS = cru AM_V_AR = $(am__v_AR_@AM_V@) am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) @@ -393,6 +561,7 @@ am__v_AR_1 = libtests_a_AR = $(AR) $(ARFLAGS) libtests_a_LIBADD = am_libtests_a_OBJECTS = libtests_a-create_nl_socket.$(OBJEXT) \ + libtests_a-create_tmpfile.$(OBJEXT) \ libtests_a-errno2name.$(OBJEXT) libtests_a-error_msg.$(OBJEXT) \ libtests_a-fill_memory.$(OBJEXT) \ libtests_a-get_page_size.$(OBJEXT) \ @@ -403,17 +572,23 @@ am_libtests_a_OBJECTS = libtests_a-create_nl_socket.$(OBJEXT) \ libtests_a-inode_of_sockfd.$(OBJEXT) \ libtests_a-libmmsg.$(OBJEXT) \ libtests_a-libsocketcall.$(OBJEXT) \ - libtests_a-overflowuid.$(OBJEXT) \ + libtests_a-lock_file.$(OBJEXT) \ + libtests_a-overflowuid.$(OBJEXT) libtests_a-pidns.$(OBJEXT) \ libtests_a-pipe_maxfd.$(OBJEXT) \ libtests_a-print_quoted_string.$(OBJEXT) \ libtests_a-print_time.$(OBJEXT) \ - libtests_a-printflags.$(OBJEXT) libtests_a-printxval.$(OBJEXT) \ + libtests_a-printflags.$(OBJEXT) \ + libtests_a-printxval-Xabbrev.$(OBJEXT) \ + libtests_a-printxval-Xraw.$(OBJEXT) \ + libtests_a-printxval-Xverbose.$(OBJEXT) \ libtests_a-signal2name.$(OBJEXT) \ libtests_a-skip_unavailable.$(OBJEXT) \ - libtests_a-sprintrc.$(OBJEXT) libtests_a-tail_alloc.$(OBJEXT) \ + libtests_a-sprintrc.$(OBJEXT) libtests_a-status.$(OBJEXT) \ + libtests_a-tail_alloc.$(OBJEXT) \ libtests_a-test_printpath.$(OBJEXT) \ libtests_a-test_printstrn.$(OBJEXT) \ - libtests_a-test_ucopy.$(OBJEXT) libtests_a-tprintf.$(OBJEXT) + libtests_a-test_ucopy.$(OBJEXT) libtests_a-tprintf.$(OBJEXT) \ + libtests_a-xmalloc_for_tests.$(OBJEXT) libtests_a_OBJECTS = $(am_libtests_a_OBJECTS) _newselect_SOURCES = _newselect.c _newselect_OBJECTS = _newselect.$(OBJEXT) @@ -482,6 +657,10 @@ block_reset_raise_run_SOURCES = block_reset_raise_run.c block_reset_raise_run_OBJECTS = block_reset_raise_run.$(OBJEXT) block_reset_raise_run_LDADD = $(LDADD) block_reset_raise_run_DEPENDENCIES = libtests.a +block_reset_run_SOURCES = block_reset_run.c +block_reset_run_OBJECTS = block_reset_run.$(OBJEXT) +block_reset_run_LDADD = $(LDADD) +block_reset_run_DEPENDENCIES = libtests.a bpf_SOURCES = bpf.c bpf_OBJECTS = bpf.$(OBJEXT) bpf_LDADD = $(LDADD) @@ -509,6 +688,10 @@ bpf_success_SOURCES = bpf-success.c bpf_success_OBJECTS = bpf-success.$(OBJEXT) bpf_success_LDADD = $(LDADD) bpf_success_DEPENDENCIES = libtests.a +bpf_success_long_y_SOURCES = bpf-success-long-y.c +bpf_success_long_y_OBJECTS = bpf-success-long-y.$(OBJEXT) +bpf_success_long_y_LDADD = $(LDADD) +bpf_success_long_y_DEPENDENCIES = libtests.a bpf_success_v_SOURCES = bpf-success-v.c bpf_success_v_OBJECTS = bpf-success-v.$(OBJEXT) bpf_success_v_LDADD = $(LDADD) @@ -569,14 +752,95 @@ clock_xettime_SOURCES = clock_xettime.c clock_xettime_OBJECTS = clock_xettime.$(OBJEXT) clock_xettime_LDADD = $(LDADD) clock_xettime_DEPENDENCIES = libtests.a +clone_flags_SOURCES = clone-flags.c +clone_flags_OBJECTS = clone-flags.$(OBJEXT) +clone_flags_LDADD = $(LDADD) +clone_flags_DEPENDENCIES = libtests.a +clone3_SOURCES = clone3.c +clone3_OBJECTS = clone3.$(OBJEXT) +clone3_LDADD = $(LDADD) +clone3_DEPENDENCIES = libtests.a +clone3_Xabbrev_SOURCES = clone3-Xabbrev.c +clone3_Xabbrev_OBJECTS = clone3-Xabbrev.$(OBJEXT) +clone3_Xabbrev_LDADD = $(LDADD) +clone3_Xabbrev_DEPENDENCIES = libtests.a +clone3_Xraw_SOURCES = clone3-Xraw.c +clone3_Xraw_OBJECTS = clone3-Xraw.$(OBJEXT) +clone3_Xraw_LDADD = $(LDADD) +clone3_Xraw_DEPENDENCIES = libtests.a +clone3_Xverbose_SOURCES = clone3-Xverbose.c +clone3_Xverbose_OBJECTS = clone3-Xverbose.$(OBJEXT) +clone3_Xverbose_LDADD = $(LDADD) +clone3_Xverbose_DEPENDENCIES = libtests.a +clone3_success_SOURCES = clone3-success.c +clone3_success_OBJECTS = clone3-success.$(OBJEXT) +clone3_success_LDADD = $(LDADD) +clone3_success_DEPENDENCIES = libtests.a +clone3_success_Xabbrev_SOURCES = clone3-success-Xabbrev.c +clone3_success_Xabbrev_OBJECTS = clone3-success-Xabbrev.$(OBJEXT) +clone3_success_Xabbrev_LDADD = $(LDADD) +clone3_success_Xabbrev_DEPENDENCIES = libtests.a +clone3_success_Xraw_SOURCES = clone3-success-Xraw.c +clone3_success_Xraw_OBJECTS = clone3-success-Xraw.$(OBJEXT) +clone3_success_Xraw_LDADD = $(LDADD) +clone3_success_Xraw_DEPENDENCIES = libtests.a +clone3_success_Xverbose_SOURCES = clone3-success-Xverbose.c +clone3_success_Xverbose_OBJECTS = clone3-success-Xverbose.$(OBJEXT) +clone3_success_Xverbose_LDADD = $(LDADD) +clone3_success_Xverbose_DEPENDENCIES = libtests.a clone_parent_SOURCES = clone_parent.c clone_parent_OBJECTS = clone_parent.$(OBJEXT) clone_parent_LDADD = $(LDADD) clone_parent_DEPENDENCIES = libtests.a +clone_parent__quiet_exit_SOURCES = clone_parent--quiet-exit.c +clone_parent__quiet_exit_OBJECTS = clone_parent--quiet-exit.$(OBJEXT) +clone_parent__quiet_exit_LDADD = $(LDADD) +clone_parent__quiet_exit_DEPENDENCIES = libtests.a +clone_parent_q_SOURCES = clone_parent-q.c +clone_parent_q_OBJECTS = clone_parent-q.$(OBJEXT) +clone_parent_q_LDADD = $(LDADD) +clone_parent_q_DEPENDENCIES = libtests.a +clone_parent_qq_SOURCES = clone_parent-qq.c +clone_parent_qq_OBJECTS = clone_parent-qq.$(OBJEXT) +clone_parent_qq_LDADD = $(LDADD) +clone_parent_qq_DEPENDENCIES = libtests.a clone_ptrace_SOURCES = clone_ptrace.c clone_ptrace_OBJECTS = clone_ptrace.$(OBJEXT) clone_ptrace_LDADD = $(LDADD) clone_ptrace_DEPENDENCIES = libtests.a +clone_ptrace__quiet_attach_SOURCES = clone_ptrace--quiet-attach.c +clone_ptrace__quiet_attach_OBJECTS = \ + clone_ptrace--quiet-attach.$(OBJEXT) +clone_ptrace__quiet_attach_LDADD = $(LDADD) +clone_ptrace__quiet_attach_DEPENDENCIES = libtests.a +clone_ptrace__quiet_exit_SOURCES = clone_ptrace--quiet-exit.c +clone_ptrace__quiet_exit_OBJECTS = clone_ptrace--quiet-exit.$(OBJEXT) +clone_ptrace__quiet_exit_LDADD = $(LDADD) +clone_ptrace__quiet_exit_DEPENDENCIES = libtests.a +clone_ptrace_q_SOURCES = clone_ptrace-q.c +clone_ptrace_q_OBJECTS = clone_ptrace-q.$(OBJEXT) +clone_ptrace_q_LDADD = $(LDADD) +clone_ptrace_q_DEPENDENCIES = libtests.a +clone_ptrace_qq_SOURCES = clone_ptrace-qq.c +clone_ptrace_qq_OBJECTS = clone_ptrace-qq.$(OBJEXT) +clone_ptrace_qq_LDADD = $(LDADD) +clone_ptrace_qq_DEPENDENCIES = libtests.a +close_range_SOURCES = close_range.c +close_range_OBJECTS = close_range.$(OBJEXT) +close_range_LDADD = $(LDADD) +close_range_DEPENDENCIES = libtests.a +close_range_P_SOURCES = close_range-P.c +close_range_P_OBJECTS = close_range-P.$(OBJEXT) +close_range_P_LDADD = $(LDADD) +close_range_P_DEPENDENCIES = libtests.a +close_range_y_SOURCES = close_range-y.c +close_range_y_OBJECTS = close_range-y.$(OBJEXT) +close_range_y_LDADD = $(LDADD) +close_range_y_DEPENDENCIES = libtests.a +close_range_yy_SOURCES = close_range-yy.c +close_range_yy_OBJECTS = close_range-yy.$(OBJEXT) +close_range_yy_LDADD = $(LDADD) +close_range_yy_DEPENDENCIES = libtests.a copy_file_range_SOURCES = copy_file_range.c copy_file_range_OBJECTS = copy_file_range.$(OBJEXT) copy_file_range_LDADD = $(LDADD) @@ -596,6 +860,18 @@ delete_module_SOURCES = delete_module.c delete_module_OBJECTS = delete_module.$(OBJEXT) delete_module_LDADD = $(LDADD) delete_module_DEPENDENCIES = libtests.a +dev__decode_fds_dev_SOURCES = dev--decode-fds-dev.c +dev__decode_fds_dev_OBJECTS = dev--decode-fds-dev.$(OBJEXT) +dev__decode_fds_dev_LDADD = $(LDADD) +dev__decode_fds_dev_DEPENDENCIES = libtests.a +dev__decode_fds_path_SOURCES = dev--decode-fds-path.c +dev__decode_fds_path_OBJECTS = dev--decode-fds-path.$(OBJEXT) +dev__decode_fds_path_LDADD = $(LDADD) +dev__decode_fds_path_DEPENDENCIES = libtests.a +dev__decode_fds_socket_SOURCES = dev--decode-fds-socket.c +dev__decode_fds_socket_OBJECTS = dev--decode-fds-socket.$(OBJEXT) +dev__decode_fds_socket_LDADD = $(LDADD) +dev__decode_fds_socket_DEPENDENCIES = libtests.a dev_yy_SOURCES = dev-yy.c dev_yy_OBJECTS = dev-yy.$(OBJEXT) dev_yy_LDADD = $(LDADD) @@ -604,14 +880,50 @@ dup_SOURCES = dup.c dup_OBJECTS = dup.$(OBJEXT) dup_LDADD = $(LDADD) dup_DEPENDENCIES = libtests.a +dup_P_SOURCES = dup-P.c +dup_P_OBJECTS = dup-P.$(OBJEXT) +dup_P_LDADD = $(LDADD) +dup_P_DEPENDENCIES = libtests.a +dup_y_SOURCES = dup-y.c +dup_y_OBJECTS = dup-y.$(OBJEXT) +dup_y_LDADD = $(LDADD) +dup_y_DEPENDENCIES = libtests.a +dup_yy_SOURCES = dup-yy.c +dup_yy_OBJECTS = dup-yy.$(OBJEXT) +dup_yy_LDADD = $(LDADD) +dup_yy_DEPENDENCIES = libtests.a dup2_SOURCES = dup2.c dup2_OBJECTS = dup2.$(OBJEXT) dup2_LDADD = $(LDADD) dup2_DEPENDENCIES = libtests.a +dup2_P_SOURCES = dup2-P.c +dup2_P_OBJECTS = dup2-P.$(OBJEXT) +dup2_P_LDADD = $(LDADD) +dup2_P_DEPENDENCIES = libtests.a +dup2_y_SOURCES = dup2-y.c +dup2_y_OBJECTS = dup2-y.$(OBJEXT) +dup2_y_LDADD = $(LDADD) +dup2_y_DEPENDENCIES = libtests.a +dup2_yy_SOURCES = dup2-yy.c +dup2_yy_OBJECTS = dup2-yy.$(OBJEXT) +dup2_yy_LDADD = $(LDADD) +dup2_yy_DEPENDENCIES = libtests.a dup3_SOURCES = dup3.c dup3_OBJECTS = dup3.$(OBJEXT) dup3_LDADD = $(LDADD) dup3_DEPENDENCIES = libtests.a +dup3_P_SOURCES = dup3-P.c +dup3_P_OBJECTS = dup3-P.$(OBJEXT) +dup3_P_LDADD = $(LDADD) +dup3_P_DEPENDENCIES = libtests.a +dup3_y_SOURCES = dup3-y.c +dup3_y_OBJECTS = dup3-y.$(OBJEXT) +dup3_y_LDADD = $(LDADD) +dup3_y_DEPENDENCIES = libtests.a +dup3_yy_SOURCES = dup3-yy.c +dup3_yy_OBJECTS = dup3-yy.$(OBJEXT) +dup3_yy_LDADD = $(LDADD) +dup3_yy_DEPENDENCIES = libtests.a epoll_create_SOURCES = epoll_create.c epoll_create_OBJECTS = epoll_create.$(OBJEXT) epoll_create_LDADD = $(LDADD) @@ -660,6 +972,34 @@ faccessat_SOURCES = faccessat.c faccessat_OBJECTS = faccessat.$(OBJEXT) faccessat_LDADD = $(LDADD) faccessat_DEPENDENCIES = libtests.a +faccessat_P_SOURCES = faccessat-P.c +faccessat_P_OBJECTS = faccessat-P.$(OBJEXT) +faccessat_P_LDADD = $(LDADD) +faccessat_P_DEPENDENCIES = libtests.a +faccessat_y_SOURCES = faccessat-y.c +faccessat_y_OBJECTS = faccessat-y.$(OBJEXT) +faccessat_y_LDADD = $(LDADD) +faccessat_y_DEPENDENCIES = libtests.a +faccessat_yy_SOURCES = faccessat-yy.c +faccessat_yy_OBJECTS = faccessat-yy.$(OBJEXT) +faccessat_yy_LDADD = $(LDADD) +faccessat_yy_DEPENDENCIES = libtests.a +faccessat2_SOURCES = faccessat2.c +faccessat2_OBJECTS = faccessat2.$(OBJEXT) +faccessat2_LDADD = $(LDADD) +faccessat2_DEPENDENCIES = libtests.a +faccessat2_P_SOURCES = faccessat2-P.c +faccessat2_P_OBJECTS = faccessat2-P.$(OBJEXT) +faccessat2_P_LDADD = $(LDADD) +faccessat2_P_DEPENDENCIES = libtests.a +faccessat2_y_SOURCES = faccessat2-y.c +faccessat2_y_OBJECTS = faccessat2-y.$(OBJEXT) +faccessat2_y_LDADD = $(LDADD) +faccessat2_y_DEPENDENCIES = libtests.a +faccessat2_yy_SOURCES = faccessat2-yy.c +faccessat2_yy_OBJECTS = faccessat2-yy.$(OBJEXT) +faccessat2_yy_LDADD = $(LDADD) +faccessat2_yy_DEPENDENCIES = libtests.a fadvise64_SOURCES = fadvise64.c fadvise64_OBJECTS = fadvise64.$(OBJEXT) fadvise64_LDADD = $(LDADD) @@ -720,10 +1060,19 @@ fcntl_SOURCES = fcntl.c fcntl_OBJECTS = fcntl.$(OBJEXT) fcntl_LDADD = $(LDADD) fcntl_DEPENDENCIES = libtests.a +fcntl__pidns_translation_SOURCES = fcntl--pidns-translation.c +fcntl__pidns_translation_OBJECTS = fcntl--pidns-translation.$(OBJEXT) +fcntl__pidns_translation_LDADD = $(LDADD) +fcntl__pidns_translation_DEPENDENCIES = libtests.a fcntl64_SOURCES = fcntl64.c fcntl64_OBJECTS = fcntl64.$(OBJEXT) fcntl64_LDADD = $(LDADD) fcntl64_DEPENDENCIES = libtests.a +fcntl64__pidns_translation_SOURCES = fcntl64--pidns-translation.c +fcntl64__pidns_translation_OBJECTS = \ + fcntl64--pidns-translation.$(OBJEXT) +fcntl64__pidns_translation_LDADD = $(LDADD) +fcntl64__pidns_translation_DEPENDENCIES = libtests.a fdatasync_SOURCES = fdatasync.c fdatasync_OBJECTS = fdatasync.$(OBJEXT) fdatasync_LDADD = $(LDADD) @@ -743,6 +1092,14 @@ file_ioctl_DEPENDENCIES = libtests.a filter_unavailable_SOURCES = filter-unavailable.c filter_unavailable_OBJECTS = filter-unavailable.$(OBJEXT) filter_unavailable_DEPENDENCIES = $(LDADD) +filter_seccomp_flag_SOURCES = filter_seccomp-flag.c +filter_seccomp_flag_OBJECTS = filter_seccomp-flag.$(OBJEXT) +filter_seccomp_flag_LDADD = $(LDADD) +filter_seccomp_flag_DEPENDENCIES = libtests.a +filter_seccomp_perf_SOURCES = filter_seccomp-perf.c +filter_seccomp_perf_OBJECTS = filter_seccomp-perf.$(OBJEXT) +filter_seccomp_perf_LDADD = $(LDADD) +filter_seccomp_perf_DEPENDENCIES = libtests.a finit_module_SOURCES = finit_module.c finit_module_OBJECTS = finit_module.$(OBJEXT) finit_module_LDADD = $(LDADD) @@ -751,10 +1108,38 @@ flock_SOURCES = flock.c flock_OBJECTS = flock.$(OBJEXT) flock_LDADD = $(LDADD) flock_DEPENDENCIES = libtests.a +fork__pidns_translation_SOURCES = fork--pidns-translation.c +fork__pidns_translation_OBJECTS = fork--pidns-translation.$(OBJEXT) +fork__pidns_translation_LDADD = $(LDADD) +fork__pidns_translation_DEPENDENCIES = libtests.a fork_f_SOURCES = fork-f.c fork_f_OBJECTS = fork-f.$(OBJEXT) fork_f_LDADD = $(LDADD) fork_f_DEPENDENCIES = libtests.a +fsconfig_SOURCES = fsconfig.c +fsconfig_OBJECTS = fsconfig.$(OBJEXT) +fsconfig_LDADD = $(LDADD) +fsconfig_DEPENDENCIES = libtests.a +fsconfig_P_SOURCES = fsconfig-P.c +fsconfig_P_OBJECTS = fsconfig-P.$(OBJEXT) +fsconfig_P_LDADD = $(LDADD) +fsconfig_P_DEPENDENCIES = libtests.a +fsmount_SOURCES = fsmount.c +fsmount_OBJECTS = fsmount.$(OBJEXT) +fsmount_LDADD = $(LDADD) +fsmount_DEPENDENCIES = libtests.a +fsopen_SOURCES = fsopen.c +fsopen_OBJECTS = fsopen.$(OBJEXT) +fsopen_LDADD = $(LDADD) +fsopen_DEPENDENCIES = libtests.a +fspick_SOURCES = fspick.c +fspick_OBJECTS = fspick.$(OBJEXT) +fspick_LDADD = $(LDADD) +fspick_DEPENDENCIES = libtests.a +fspick_P_SOURCES = fspick-P.c +fspick_P_OBJECTS = fspick-P.$(OBJEXT) +fspick_P_LDADD = $(LDADD) +fspick_P_DEPENDENCIES = libtests.a fstat_SOURCES = fstat.c fstat_OBJECTS = fstat.$(OBJEXT) fstat_LDADD = $(LDADD) @@ -827,6 +1212,10 @@ get_mempolicy_SOURCES = get_mempolicy.c get_mempolicy_OBJECTS = get_mempolicy.$(OBJEXT) get_mempolicy_LDADD = $(LDADD) get_mempolicy_DEPENDENCIES = libtests.a +get_process_reaper_SOURCES = get_process_reaper.c +get_process_reaper_OBJECTS = get_process_reaper.$(OBJEXT) +get_process_reaper_LDADD = $(LDADD) +get_process_reaper_DEPENDENCIES = libtests.a getcpu_SOURCES = getcpu.c getcpu_OBJECTS = getcpu.$(OBJEXT) getcpu_LDADD = $(LDADD) @@ -839,10 +1228,18 @@ getdents_SOURCES = getdents.c getdents_OBJECTS = getdents.$(OBJEXT) getdents_LDADD = $(LDADD) getdents_DEPENDENCIES = libtests.a +getdents_v_SOURCES = getdents-v.c +getdents_v_OBJECTS = getdents-v.$(OBJEXT) +getdents_v_LDADD = $(LDADD) +getdents_v_DEPENDENCIES = libtests.a getdents64_SOURCES = getdents64.c getdents64_OBJECTS = getdents64.$(OBJEXT) getdents64_LDADD = $(LDADD) getdents64_DEPENDENCIES = libtests.a +getdents64_v_SOURCES = getdents64-v.c +getdents64_v_OBJECTS = getdents64-v.$(OBJEXT) +getdents64_v_LDADD = $(LDADD) +getdents64_v_DEPENDENCIES = libtests.a getegid_SOURCES = getegid.c getegid_OBJECTS = getegid.$(OBJEXT) getegid_LDADD = $(LDADD) @@ -883,10 +1280,20 @@ getpgrp_SOURCES = getpgrp.c getpgrp_OBJECTS = getpgrp.$(OBJEXT) getpgrp_LDADD = $(LDADD) getpgrp_DEPENDENCIES = libtests.a +getpgrp__pidns_translation_SOURCES = getpgrp--pidns-translation.c +getpgrp__pidns_translation_OBJECTS = \ + getpgrp--pidns-translation.$(OBJEXT) +getpgrp__pidns_translation_LDADD = $(LDADD) +getpgrp__pidns_translation_DEPENDENCIES = libtests.a getpid_SOURCES = getpid.c getpid_OBJECTS = getpid.$(OBJEXT) getpid_LDADD = $(LDADD) getpid_DEPENDENCIES = libtests.a +getpid__pidns_translation_SOURCES = getpid--pidns-translation.c +getpid__pidns_translation_OBJECTS = \ + getpid--pidns-translation.$(OBJEXT) +getpid__pidns_translation_LDADD = $(LDADD) +getpid__pidns_translation_DEPENDENCIES = libtests.a getppid_SOURCES = getppid.c getppid_OBJECTS = getppid.$(OBJEXT) getppid_LDADD = $(LDADD) @@ -923,6 +1330,11 @@ getsid_SOURCES = getsid.c getsid_OBJECTS = getsid.$(OBJEXT) getsid_LDADD = $(LDADD) getsid_DEPENDENCIES = libtests.a +getsid__pidns_translation_SOURCES = getsid--pidns-translation.c +getsid__pidns_translation_OBJECTS = \ + getsid--pidns-translation.$(OBJEXT) +getsid__pidns_translation_LDADD = $(LDADD) +getsid__pidns_translation_DEPENDENCIES = libtests.a getsockname_SOURCES = getsockname.c getsockname_OBJECTS = getsockname.$(OBJEXT) getsockname_LDADD = $(LDADD) @@ -931,6 +1343,11 @@ gettid_SOURCES = gettid.c gettid_OBJECTS = gettid.$(OBJEXT) gettid_LDADD = $(LDADD) gettid_DEPENDENCIES = libtests.a +gettid__pidns_translation_SOURCES = gettid--pidns-translation.c +gettid__pidns_translation_OBJECTS = \ + gettid--pidns-translation.$(OBJEXT) +gettid__pidns_translation_LDADD = $(LDADD) +gettid__pidns_translation_DEPENDENCIES = libtests.a getuid_SOURCES = getuid.c getuid_OBJECTS = getuid.$(OBJEXT) getuid_LDADD = $(LDADD) @@ -939,10 +1356,18 @@ getuid32_SOURCES = getuid32.c getuid32_OBJECTS = getuid32.$(OBJEXT) getuid32_LDADD = $(LDADD) getuid32_DEPENDENCIES = libtests.a -getxxid_SOURCES = getxxid.c -getxxid_OBJECTS = getxxid.$(OBJEXT) -getxxid_LDADD = $(LDADD) -getxxid_DEPENDENCIES = libtests.a +getxgid_SOURCES = getxgid.c +getxgid_OBJECTS = getxgid.$(OBJEXT) +getxgid_LDADD = $(LDADD) +getxgid_DEPENDENCIES = libtests.a +getxpid_SOURCES = getxpid.c +getxpid_OBJECTS = getxpid.$(OBJEXT) +getxpid_LDADD = $(LDADD) +getxpid_DEPENDENCIES = libtests.a +getxuid_SOURCES = getxuid.c +getxuid_OBJECTS = getxuid.$(OBJEXT) +getxuid_LDADD = $(LDADD) +getxuid_DEPENDENCIES = libtests.a group_req_SOURCES = group_req.c group_req_OBJECTS = group_req.$(OBJEXT) group_req_LDADD = $(LDADD) @@ -963,10 +1388,22 @@ inotify_SOURCES = inotify.c inotify_OBJECTS = inotify.$(OBJEXT) inotify_LDADD = $(LDADD) inotify_DEPENDENCIES = libtests.a +inotify_init_SOURCES = inotify_init.c +inotify_init_OBJECTS = inotify_init.$(OBJEXT) +inotify_init_LDADD = $(LDADD) +inotify_init_DEPENDENCIES = libtests.a +inotify_init_y_SOURCES = inotify_init-y.c +inotify_init_y_OBJECTS = inotify_init-y.$(OBJEXT) +inotify_init_y_LDADD = $(LDADD) +inotify_init_y_DEPENDENCIES = libtests.a inotify_init1_SOURCES = inotify_init1.c inotify_init1_OBJECTS = inotify_init1.$(OBJEXT) inotify_init1_LDADD = $(LDADD) inotify_init1_DEPENDENCIES = libtests.a +inotify_init1_y_SOURCES = inotify_init1-y.c +inotify_init1_y_OBJECTS = inotify_init1-y.$(OBJEXT) +inotify_init1_y_LDADD = $(LDADD) +inotify_init1_y_DEPENDENCIES = libtests.a int_0x80_SOURCES = int_0x80.c int_0x80_OBJECTS = int_0x80.$(OBJEXT) int_0x80_LDADD = $(LDADD) @@ -991,6 +1428,12 @@ ioctl_block_SOURCES = ioctl_block.c ioctl_block_OBJECTS = ioctl_block.$(OBJEXT) ioctl_block_LDADD = $(LDADD) ioctl_block_DEPENDENCIES = libtests.a +ioctl_block__pidns_translation_SOURCES = \ + ioctl_block--pidns-translation.c +ioctl_block__pidns_translation_OBJECTS = \ + ioctl_block--pidns-translation.$(OBJEXT) +ioctl_block__pidns_translation_LDADD = $(LDADD) +ioctl_block__pidns_translation_DEPENDENCIES = libtests.a ioctl_dm_SOURCES = ioctl_dm.c ioctl_dm_OBJECTS = ioctl_dm.$(OBJEXT) ioctl_dm_LDADD = $(LDADD) @@ -1003,18 +1446,143 @@ ioctl_evdev_SOURCES = ioctl_evdev.c ioctl_evdev_OBJECTS = ioctl_evdev.$(OBJEXT) ioctl_evdev_LDADD = $(LDADD) ioctl_evdev_DEPENDENCIES = libtests.a +ioctl_evdev_Xabbrev_SOURCES = ioctl_evdev-Xabbrev.c +ioctl_evdev_Xabbrev_OBJECTS = ioctl_evdev-Xabbrev.$(OBJEXT) +ioctl_evdev_Xabbrev_LDADD = $(LDADD) +ioctl_evdev_Xabbrev_DEPENDENCIES = libtests.a +ioctl_evdev_Xraw_SOURCES = ioctl_evdev-Xraw.c +ioctl_evdev_Xraw_OBJECTS = ioctl_evdev-Xraw.$(OBJEXT) +ioctl_evdev_Xraw_LDADD = $(LDADD) +ioctl_evdev_Xraw_DEPENDENCIES = libtests.a +ioctl_evdev_Xverbose_SOURCES = ioctl_evdev-Xverbose.c +ioctl_evdev_Xverbose_OBJECTS = ioctl_evdev-Xverbose.$(OBJEXT) +ioctl_evdev_Xverbose_LDADD = $(LDADD) +ioctl_evdev_Xverbose_DEPENDENCIES = libtests.a ioctl_evdev_success_SOURCES = ioctl_evdev-success.c ioctl_evdev_success_OBJECTS = ioctl_evdev-success.$(OBJEXT) ioctl_evdev_success_LDADD = $(LDADD) ioctl_evdev_success_DEPENDENCIES = libtests.a +ioctl_evdev_success_Xabbrev_SOURCES = ioctl_evdev-success-Xabbrev.c +ioctl_evdev_success_Xabbrev_OBJECTS = \ + ioctl_evdev-success-Xabbrev.$(OBJEXT) +ioctl_evdev_success_Xabbrev_LDADD = $(LDADD) +ioctl_evdev_success_Xabbrev_DEPENDENCIES = libtests.a +ioctl_evdev_success_Xraw_SOURCES = ioctl_evdev-success-Xraw.c +ioctl_evdev_success_Xraw_OBJECTS = ioctl_evdev-success-Xraw.$(OBJEXT) +ioctl_evdev_success_Xraw_LDADD = $(LDADD) +ioctl_evdev_success_Xraw_DEPENDENCIES = libtests.a +ioctl_evdev_success_Xverbose_SOURCES = ioctl_evdev-success-Xverbose.c +ioctl_evdev_success_Xverbose_OBJECTS = \ + ioctl_evdev-success-Xverbose.$(OBJEXT) +ioctl_evdev_success_Xverbose_LDADD = $(LDADD) +ioctl_evdev_success_Xverbose_DEPENDENCIES = libtests.a ioctl_evdev_success_v_SOURCES = ioctl_evdev-success-v.c ioctl_evdev_success_v_OBJECTS = ioctl_evdev-success-v.$(OBJEXT) ioctl_evdev_success_v_LDADD = $(LDADD) ioctl_evdev_success_v_DEPENDENCIES = libtests.a +ioctl_evdev_success_v_Xabbrev_SOURCES = \ + ioctl_evdev-success-v-Xabbrev.c +ioctl_evdev_success_v_Xabbrev_OBJECTS = \ + ioctl_evdev-success-v-Xabbrev.$(OBJEXT) +ioctl_evdev_success_v_Xabbrev_LDADD = $(LDADD) +ioctl_evdev_success_v_Xabbrev_DEPENDENCIES = libtests.a +ioctl_evdev_success_v_Xraw_SOURCES = ioctl_evdev-success-v-Xraw.c +ioctl_evdev_success_v_Xraw_OBJECTS = \ + ioctl_evdev-success-v-Xraw.$(OBJEXT) +ioctl_evdev_success_v_Xraw_LDADD = $(LDADD) +ioctl_evdev_success_v_Xraw_DEPENDENCIES = libtests.a +ioctl_evdev_success_v_Xverbose_SOURCES = \ + ioctl_evdev-success-v-Xverbose.c +ioctl_evdev_success_v_Xverbose_OBJECTS = \ + ioctl_evdev-success-v-Xverbose.$(OBJEXT) +ioctl_evdev_success_v_Xverbose_LDADD = $(LDADD) +ioctl_evdev_success_v_Xverbose_DEPENDENCIES = libtests.a ioctl_evdev_v_SOURCES = ioctl_evdev-v.c ioctl_evdev_v_OBJECTS = ioctl_evdev-v.$(OBJEXT) ioctl_evdev_v_LDADD = $(LDADD) ioctl_evdev_v_DEPENDENCIES = libtests.a +ioctl_evdev_v_Xabbrev_SOURCES = ioctl_evdev-v-Xabbrev.c +ioctl_evdev_v_Xabbrev_OBJECTS = ioctl_evdev-v-Xabbrev.$(OBJEXT) +ioctl_evdev_v_Xabbrev_LDADD = $(LDADD) +ioctl_evdev_v_Xabbrev_DEPENDENCIES = libtests.a +ioctl_evdev_v_Xraw_SOURCES = ioctl_evdev-v-Xraw.c +ioctl_evdev_v_Xraw_OBJECTS = ioctl_evdev-v-Xraw.$(OBJEXT) +ioctl_evdev_v_Xraw_LDADD = $(LDADD) +ioctl_evdev_v_Xraw_DEPENDENCIES = libtests.a +ioctl_evdev_v_Xverbose_SOURCES = ioctl_evdev-v-Xverbose.c +ioctl_evdev_v_Xverbose_OBJECTS = ioctl_evdev-v-Xverbose.$(OBJEXT) +ioctl_evdev_v_Xverbose_LDADD = $(LDADD) +ioctl_evdev_v_Xverbose_DEPENDENCIES = libtests.a +ioctl_hdio_SOURCES = ioctl_hdio.c +ioctl_hdio_OBJECTS = ioctl_hdio.$(OBJEXT) +ioctl_hdio_LDADD = $(LDADD) +ioctl_hdio_DEPENDENCIES = libtests.a +ioctl_hdio_Xabbrev_SOURCES = ioctl_hdio-Xabbrev.c +ioctl_hdio_Xabbrev_OBJECTS = ioctl_hdio-Xabbrev.$(OBJEXT) +ioctl_hdio_Xabbrev_LDADD = $(LDADD) +ioctl_hdio_Xabbrev_DEPENDENCIES = libtests.a +ioctl_hdio_Xraw_SOURCES = ioctl_hdio-Xraw.c +ioctl_hdio_Xraw_OBJECTS = ioctl_hdio-Xraw.$(OBJEXT) +ioctl_hdio_Xraw_LDADD = $(LDADD) +ioctl_hdio_Xraw_DEPENDENCIES = libtests.a +ioctl_hdio_Xverbose_SOURCES = ioctl_hdio-Xverbose.c +ioctl_hdio_Xverbose_OBJECTS = ioctl_hdio-Xverbose.$(OBJEXT) +ioctl_hdio_Xverbose_LDADD = $(LDADD) +ioctl_hdio_Xverbose_DEPENDENCIES = libtests.a +ioctl_hdio_success_SOURCES = ioctl_hdio-success.c +ioctl_hdio_success_OBJECTS = ioctl_hdio-success.$(OBJEXT) +ioctl_hdio_success_LDADD = $(LDADD) +ioctl_hdio_success_DEPENDENCIES = libtests.a +ioctl_hdio_success_Xabbrev_SOURCES = ioctl_hdio-success-Xabbrev.c +ioctl_hdio_success_Xabbrev_OBJECTS = \ + ioctl_hdio-success-Xabbrev.$(OBJEXT) +ioctl_hdio_success_Xabbrev_LDADD = $(LDADD) +ioctl_hdio_success_Xabbrev_DEPENDENCIES = libtests.a +ioctl_hdio_success_Xraw_SOURCES = ioctl_hdio-success-Xraw.c +ioctl_hdio_success_Xraw_OBJECTS = ioctl_hdio-success-Xraw.$(OBJEXT) +ioctl_hdio_success_Xraw_LDADD = $(LDADD) +ioctl_hdio_success_Xraw_DEPENDENCIES = libtests.a +ioctl_hdio_success_Xverbose_SOURCES = ioctl_hdio-success-Xverbose.c +ioctl_hdio_success_Xverbose_OBJECTS = \ + ioctl_hdio-success-Xverbose.$(OBJEXT) +ioctl_hdio_success_Xverbose_LDADD = $(LDADD) +ioctl_hdio_success_Xverbose_DEPENDENCIES = libtests.a +ioctl_hdio_success_v_SOURCES = ioctl_hdio-success-v.c +ioctl_hdio_success_v_OBJECTS = ioctl_hdio-success-v.$(OBJEXT) +ioctl_hdio_success_v_LDADD = $(LDADD) +ioctl_hdio_success_v_DEPENDENCIES = libtests.a +ioctl_hdio_success_v_Xabbrev_SOURCES = ioctl_hdio-success-v-Xabbrev.c +ioctl_hdio_success_v_Xabbrev_OBJECTS = \ + ioctl_hdio-success-v-Xabbrev.$(OBJEXT) +ioctl_hdio_success_v_Xabbrev_LDADD = $(LDADD) +ioctl_hdio_success_v_Xabbrev_DEPENDENCIES = libtests.a +ioctl_hdio_success_v_Xraw_SOURCES = ioctl_hdio-success-v-Xraw.c +ioctl_hdio_success_v_Xraw_OBJECTS = \ + ioctl_hdio-success-v-Xraw.$(OBJEXT) +ioctl_hdio_success_v_Xraw_LDADD = $(LDADD) +ioctl_hdio_success_v_Xraw_DEPENDENCIES = libtests.a +ioctl_hdio_success_v_Xverbose_SOURCES = \ + ioctl_hdio-success-v-Xverbose.c +ioctl_hdio_success_v_Xverbose_OBJECTS = \ + ioctl_hdio-success-v-Xverbose.$(OBJEXT) +ioctl_hdio_success_v_Xverbose_LDADD = $(LDADD) +ioctl_hdio_success_v_Xverbose_DEPENDENCIES = libtests.a +ioctl_hdio_v_SOURCES = ioctl_hdio-v.c +ioctl_hdio_v_OBJECTS = ioctl_hdio-v.$(OBJEXT) +ioctl_hdio_v_LDADD = $(LDADD) +ioctl_hdio_v_DEPENDENCIES = libtests.a +ioctl_hdio_v_Xabbrev_SOURCES = ioctl_hdio-v-Xabbrev.c +ioctl_hdio_v_Xabbrev_OBJECTS = ioctl_hdio-v-Xabbrev.$(OBJEXT) +ioctl_hdio_v_Xabbrev_LDADD = $(LDADD) +ioctl_hdio_v_Xabbrev_DEPENDENCIES = libtests.a +ioctl_hdio_v_Xraw_SOURCES = ioctl_hdio-v-Xraw.c +ioctl_hdio_v_Xraw_OBJECTS = ioctl_hdio-v-Xraw.$(OBJEXT) +ioctl_hdio_v_Xraw_LDADD = $(LDADD) +ioctl_hdio_v_Xraw_DEPENDENCIES = libtests.a +ioctl_hdio_v_Xverbose_SOURCES = ioctl_hdio-v-Xverbose.c +ioctl_hdio_v_Xverbose_OBJECTS = ioctl_hdio-v-Xverbose.$(OBJEXT) +ioctl_hdio_v_Xverbose_LDADD = $(LDADD) +ioctl_hdio_v_Xverbose_DEPENDENCIES = libtests.a ioctl_inotify_SOURCES = ioctl_inotify.c ioctl_inotify_OBJECTS = ioctl_inotify.$(OBJEXT) ioctl_inotify_LDADD = $(LDADD) @@ -1096,6 +1664,10 @@ ioctl_sock_gifconf_SOURCES = ioctl_sock_gifconf.c ioctl_sock_gifconf_OBJECTS = ioctl_sock_gifconf.$(OBJEXT) ioctl_sock_gifconf_LDADD = $(LDADD) ioctl_sock_gifconf_DEPENDENCIES = libtests.a +ioctl_tee_SOURCES = ioctl_tee.c +ioctl_tee_OBJECTS = ioctl_tee.$(OBJEXT) +ioctl_tee_LDADD = $(LDADD) +ioctl_tee_DEPENDENCIES = libtests.a ioctl_uffdio_SOURCES = ioctl_uffdio.c ioctl_uffdio_OBJECTS = ioctl_uffdio.$(OBJEXT) ioctl_uffdio_LDADD = $(LDADD) @@ -1104,6 +1676,76 @@ ioctl_v4l2_SOURCES = ioctl_v4l2.c ioctl_v4l2_OBJECTS = ioctl_v4l2.$(OBJEXT) ioctl_v4l2_LDADD = $(LDADD) ioctl_v4l2_DEPENDENCIES = libtests.a +ioctl_v4l2_Xabbrev_SOURCES = ioctl_v4l2-Xabbrev.c +ioctl_v4l2_Xabbrev_OBJECTS = ioctl_v4l2-Xabbrev.$(OBJEXT) +ioctl_v4l2_Xabbrev_LDADD = $(LDADD) +ioctl_v4l2_Xabbrev_DEPENDENCIES = libtests.a +ioctl_v4l2_Xraw_SOURCES = ioctl_v4l2-Xraw.c +ioctl_v4l2_Xraw_OBJECTS = ioctl_v4l2-Xraw.$(OBJEXT) +ioctl_v4l2_Xraw_LDADD = $(LDADD) +ioctl_v4l2_Xraw_DEPENDENCIES = libtests.a +ioctl_v4l2_Xverbose_SOURCES = ioctl_v4l2-Xverbose.c +ioctl_v4l2_Xverbose_OBJECTS = ioctl_v4l2-Xverbose.$(OBJEXT) +ioctl_v4l2_Xverbose_LDADD = $(LDADD) +ioctl_v4l2_Xverbose_DEPENDENCIES = libtests.a +ioctl_v4l2_success_SOURCES = ioctl_v4l2-success.c +ioctl_v4l2_success_OBJECTS = ioctl_v4l2-success.$(OBJEXT) +ioctl_v4l2_success_LDADD = $(LDADD) +ioctl_v4l2_success_DEPENDENCIES = libtests.a +ioctl_v4l2_success_Xabbrev_SOURCES = ioctl_v4l2-success-Xabbrev.c +ioctl_v4l2_success_Xabbrev_OBJECTS = \ + ioctl_v4l2-success-Xabbrev.$(OBJEXT) +ioctl_v4l2_success_Xabbrev_LDADD = $(LDADD) +ioctl_v4l2_success_Xabbrev_DEPENDENCIES = libtests.a +ioctl_v4l2_success_Xraw_SOURCES = ioctl_v4l2-success-Xraw.c +ioctl_v4l2_success_Xraw_OBJECTS = ioctl_v4l2-success-Xraw.$(OBJEXT) +ioctl_v4l2_success_Xraw_LDADD = $(LDADD) +ioctl_v4l2_success_Xraw_DEPENDENCIES = libtests.a +ioctl_v4l2_success_Xverbose_SOURCES = ioctl_v4l2-success-Xverbose.c +ioctl_v4l2_success_Xverbose_OBJECTS = \ + ioctl_v4l2-success-Xverbose.$(OBJEXT) +ioctl_v4l2_success_Xverbose_LDADD = $(LDADD) +ioctl_v4l2_success_Xverbose_DEPENDENCIES = libtests.a +ioctl_v4l2_success_v_SOURCES = ioctl_v4l2-success-v.c +ioctl_v4l2_success_v_OBJECTS = ioctl_v4l2-success-v.$(OBJEXT) +ioctl_v4l2_success_v_LDADD = $(LDADD) +ioctl_v4l2_success_v_DEPENDENCIES = libtests.a +ioctl_v4l2_success_v_Xabbrev_SOURCES = ioctl_v4l2-success-v-Xabbrev.c +ioctl_v4l2_success_v_Xabbrev_OBJECTS = \ + ioctl_v4l2-success-v-Xabbrev.$(OBJEXT) +ioctl_v4l2_success_v_Xabbrev_LDADD = $(LDADD) +ioctl_v4l2_success_v_Xabbrev_DEPENDENCIES = libtests.a +ioctl_v4l2_success_v_Xraw_SOURCES = ioctl_v4l2-success-v-Xraw.c +ioctl_v4l2_success_v_Xraw_OBJECTS = \ + ioctl_v4l2-success-v-Xraw.$(OBJEXT) +ioctl_v4l2_success_v_Xraw_LDADD = $(LDADD) +ioctl_v4l2_success_v_Xraw_DEPENDENCIES = libtests.a +ioctl_v4l2_success_v_Xverbose_SOURCES = \ + ioctl_v4l2-success-v-Xverbose.c +ioctl_v4l2_success_v_Xverbose_OBJECTS = \ + ioctl_v4l2-success-v-Xverbose.$(OBJEXT) +ioctl_v4l2_success_v_Xverbose_LDADD = $(LDADD) +ioctl_v4l2_success_v_Xverbose_DEPENDENCIES = libtests.a +ioctl_v4l2_v_SOURCES = ioctl_v4l2-v.c +ioctl_v4l2_v_OBJECTS = ioctl_v4l2-v.$(OBJEXT) +ioctl_v4l2_v_LDADD = $(LDADD) +ioctl_v4l2_v_DEPENDENCIES = libtests.a +ioctl_v4l2_v_Xabbrev_SOURCES = ioctl_v4l2-v-Xabbrev.c +ioctl_v4l2_v_Xabbrev_OBJECTS = ioctl_v4l2-v-Xabbrev.$(OBJEXT) +ioctl_v4l2_v_Xabbrev_LDADD = $(LDADD) +ioctl_v4l2_v_Xabbrev_DEPENDENCIES = libtests.a +ioctl_v4l2_v_Xraw_SOURCES = ioctl_v4l2-v-Xraw.c +ioctl_v4l2_v_Xraw_OBJECTS = ioctl_v4l2-v-Xraw.$(OBJEXT) +ioctl_v4l2_v_Xraw_LDADD = $(LDADD) +ioctl_v4l2_v_Xraw_DEPENDENCIES = libtests.a +ioctl_v4l2_v_Xverbose_SOURCES = ioctl_v4l2-v-Xverbose.c +ioctl_v4l2_v_Xverbose_OBJECTS = ioctl_v4l2-v-Xverbose.$(OBJEXT) +ioctl_v4l2_v_Xverbose_LDADD = $(LDADD) +ioctl_v4l2_v_Xverbose_DEPENDENCIES = libtests.a +ioctl_watchdog_SOURCES = ioctl_watchdog.c +ioctl_watchdog_OBJECTS = ioctl_watchdog.$(OBJEXT) +ioctl_watchdog_LDADD = $(LDADD) +ioctl_watchdog_DEPENDENCIES = libtests.a ioperm_SOURCES = ioperm.c ioperm_OBJECTS = ioperm.$(OBJEXT) ioperm_LDADD = $(LDADD) @@ -1116,6 +1758,11 @@ ioprio_SOURCES = ioprio.c ioprio_OBJECTS = ioprio.$(OBJEXT) ioprio_LDADD = $(LDADD) ioprio_DEPENDENCIES = libtests.a +ioprio__pidns_translation_SOURCES = ioprio--pidns-translation.c +ioprio__pidns_translation_OBJECTS = \ + ioprio--pidns-translation.$(OBJEXT) +ioprio__pidns_translation_LDADD = $(LDADD) +ioprio__pidns_translation_DEPENDENCIES = libtests.a ioprio_Xabbrev_SOURCES = ioprio-Xabbrev.c ioprio_Xabbrev_OBJECTS = ioprio-Xabbrev.$(OBJEXT) ioprio_Xabbrev_LDADD = $(LDADD) @@ -1212,6 +1859,11 @@ kcmp_y_SOURCES = kcmp-y.c kcmp_y_OBJECTS = kcmp-y.$(OBJEXT) kcmp_y_LDADD = $(LDADD) kcmp_y_DEPENDENCIES = libtests.a +kcmp_y__pidns_translation_SOURCES = kcmp-y--pidns-translation.c +kcmp_y__pidns_translation_OBJECTS = \ + kcmp-y--pidns-translation.$(OBJEXT) +kcmp_y__pidns_translation_LDADD = $(LDADD) +kcmp_y__pidns_translation_DEPENDENCIES = libtests.a kern_features_SOURCES = kern_features.c kern_features_OBJECTS = kern_features.$(OBJEXT) kern_features_LDADD = $(LDADD) @@ -1260,6 +1912,10 @@ kill_SOURCES = kill.c kill_OBJECTS = kill.$(OBJEXT) kill_LDADD = $(LDADD) kill_DEPENDENCIES = libtests.a +kill__pidns_translation_SOURCES = kill--pidns-translation.c +kill__pidns_translation_OBJECTS = kill--pidns-translation.$(OBJEXT) +kill__pidns_translation_LDADD = $(LDADD) +kill__pidns_translation_DEPENDENCIES = libtests.a kill_child_SOURCES = kill_child.c kill_child_OBJECTS = kill_child.$(OBJEXT) kill_child_LDADD = $(LDADD) @@ -1318,10 +1974,30 @@ madvise_SOURCES = madvise.c madvise_OBJECTS = madvise.$(OBJEXT) madvise_LDADD = $(LDADD) madvise_DEPENDENCIES = libtests.a +maybe_switch_current_tcp_SOURCES = maybe_switch_current_tcp.c +maybe_switch_current_tcp_OBJECTS = maybe_switch_current_tcp.$(OBJEXT) +maybe_switch_current_tcp_DEPENDENCIES = $(LDADD) +maybe_switch_current_tcp__quiet_thread_execve_SOURCES = \ + maybe_switch_current_tcp--quiet-thread-execve.c +maybe_switch_current_tcp__quiet_thread_execve_OBJECTS = \ + maybe_switch_current_tcp--quiet-thread-execve.$(OBJEXT) +maybe_switch_current_tcp__quiet_thread_execve_DEPENDENCIES = $(LDADD) mbind_SOURCES = mbind.c mbind_OBJECTS = mbind.$(OBJEXT) mbind_LDADD = $(LDADD) mbind_DEPENDENCIES = libtests.a +mbind_Xabbrev_SOURCES = mbind-Xabbrev.c +mbind_Xabbrev_OBJECTS = mbind-Xabbrev.$(OBJEXT) +mbind_Xabbrev_LDADD = $(LDADD) +mbind_Xabbrev_DEPENDENCIES = libtests.a +mbind_Xraw_SOURCES = mbind-Xraw.c +mbind_Xraw_OBJECTS = mbind-Xraw.$(OBJEXT) +mbind_Xraw_LDADD = $(LDADD) +mbind_Xraw_DEPENDENCIES = libtests.a +mbind_Xverbose_SOURCES = mbind-Xverbose.c +mbind_Xverbose_OBJECTS = mbind-Xverbose.$(OBJEXT) +mbind_Xverbose_LDADD = $(LDADD) +mbind_Xverbose_DEPENDENCIES = libtests.a membarrier_SOURCES = membarrier.c membarrier_OBJECTS = membarrier.$(OBJEXT) membarrier_LDADD = $(LDADD) @@ -1346,6 +2022,12 @@ migrate_pages_SOURCES = migrate_pages.c migrate_pages_OBJECTS = migrate_pages.$(OBJEXT) migrate_pages_LDADD = $(LDADD) migrate_pages_DEPENDENCIES = libtests.a +migrate_pages__pidns_translation_SOURCES = \ + migrate_pages--pidns-translation.c +migrate_pages__pidns_translation_OBJECTS = \ + migrate_pages--pidns-translation.$(OBJEXT) +migrate_pages__pidns_translation_LDADD = $(LDADD) +migrate_pages__pidns_translation_DEPENDENCIES = libtests.a mincore_SOURCES = mincore.c mincore_OBJECTS = mincore.$(OBJEXT) mincore_LDADD = $(LDADD) @@ -1446,10 +2128,24 @@ mount_Xverbose_SOURCES = mount-Xverbose.c mount_Xverbose_OBJECTS = mount-Xverbose.$(OBJEXT) mount_Xverbose_LDADD = $(LDADD) mount_Xverbose_DEPENDENCIES = libtests.a +move_mount_SOURCES = move_mount.c +move_mount_OBJECTS = move_mount.$(OBJEXT) +move_mount_LDADD = $(LDADD) +move_mount_DEPENDENCIES = libtests.a +move_mount_P_SOURCES = move_mount-P.c +move_mount_P_OBJECTS = move_mount-P.$(OBJEXT) +move_mount_P_LDADD = $(LDADD) +move_mount_P_DEPENDENCIES = libtests.a move_pages_SOURCES = move_pages.c move_pages_OBJECTS = move_pages.$(OBJEXT) move_pages_LDADD = $(LDADD) move_pages_DEPENDENCIES = libtests.a +move_pages__pidns_translation_SOURCES = \ + move_pages--pidns-translation.c +move_pages__pidns_translation_OBJECTS = \ + move_pages--pidns-translation.$(OBJEXT) +move_pages__pidns_translation_LDADD = $(LDADD) +move_pages__pidns_translation_DEPENDENCIES = libtests.a move_pages_Xabbrev_SOURCES = move_pages-Xabbrev.c move_pages_Xabbrev_OBJECTS = move_pages-Xabbrev.$(OBJEXT) move_pages_Xabbrev_LDADD = $(LDADD) @@ -1497,6 +2193,27 @@ nanosleep_SOURCES = nanosleep.c nanosleep_OBJECTS = nanosleep.$(OBJEXT) nanosleep_LDADD = $(LDADD) nanosleep_DEPENDENCIES = libtests.a +net__decode_fds_dev_netlink_SOURCES = net--decode-fds-dev-netlink.c +net__decode_fds_dev_netlink_OBJECTS = \ + net--decode-fds-dev-netlink.$(OBJEXT) +net__decode_fds_dev_netlink_LDADD = $(LDADD) +net__decode_fds_dev_netlink_DEPENDENCIES = libtests.a +net__decode_fds_none_netlink_SOURCES = net--decode-fds-none-netlink.c +net__decode_fds_none_netlink_OBJECTS = \ + net--decode-fds-none-netlink.$(OBJEXT) +net__decode_fds_none_netlink_LDADD = $(LDADD) +net__decode_fds_none_netlink_DEPENDENCIES = libtests.a +net__decode_fds_path_netlink_SOURCES = net--decode-fds-path-netlink.c +net__decode_fds_path_netlink_OBJECTS = \ + net--decode-fds-path-netlink.$(OBJEXT) +net__decode_fds_path_netlink_LDADD = $(LDADD) +net__decode_fds_path_netlink_DEPENDENCIES = libtests.a +net__decode_fds_socket_netlink_SOURCES = \ + net--decode-fds-socket-netlink.c +net__decode_fds_socket_netlink_OBJECTS = \ + net--decode-fds-socket-netlink.$(OBJEXT) +net__decode_fds_socket_netlink_LDADD = $(LDADD) +net__decode_fds_socket_netlink_DEPENDENCIES = libtests.a net_accept_connect_SOURCES = net-accept-connect.c net_accept_connect_OBJECTS = net-accept-connect.$(OBJEXT) net_accept_connect_LDADD = $(LDADD) @@ -1525,6 +2242,12 @@ net_sockaddr_SOURCES = net-sockaddr.c net_sockaddr_OBJECTS = net-sockaddr.$(OBJEXT) net_sockaddr_LDADD = $(LDADD) net_sockaddr_DEPENDENCIES = libtests.a +net_sockaddr__pidns_translation_SOURCES = \ + net-sockaddr--pidns-translation.c +net_sockaddr__pidns_translation_OBJECTS = \ + net-sockaddr--pidns-translation.$(OBJEXT) +net_sockaddr__pidns_translation_LDADD = $(LDADD) +net_sockaddr__pidns_translation_DEPENDENCIES = libtests.a net_tpacket_req_SOURCES = net-tpacket_req.c net_tpacket_req_OBJECTS = net-tpacket_req.$(OBJEXT) net_tpacket_req_LDADD = $(LDADD) @@ -1562,6 +2285,12 @@ netlink_audit_SOURCES = netlink_audit.c netlink_audit_OBJECTS = netlink_audit.$(OBJEXT) netlink_audit_LDADD = $(LDADD) netlink_audit_DEPENDENCIES = libtests.a +netlink_audit__pidns_translation_SOURCES = \ + netlink_audit--pidns-translation.c +netlink_audit__pidns_translation_OBJECTS = \ + netlink_audit--pidns-translation.$(OBJEXT) +netlink_audit__pidns_translation_LDADD = $(LDADD) +netlink_audit__pidns_translation_DEPENDENCIES = libtests.a netlink_crypto_SOURCES = netlink_crypto.c netlink_crypto_OBJECTS = netlink_crypto.$(OBJEXT) netlink_crypto_LDADD = $(LDADD) @@ -1710,6 +2439,10 @@ nlattr_ifla_xdp_SOURCES = nlattr_ifla_xdp.c nlattr_ifla_xdp_OBJECTS = nlattr_ifla_xdp.$(OBJEXT) nlattr_ifla_xdp_LDADD = $(LDADD) nlattr_ifla_xdp_DEPENDENCIES = libtests.a +nlattr_ifla_xdp_y_SOURCES = nlattr_ifla_xdp-y.c +nlattr_ifla_xdp_y_OBJECTS = nlattr_ifla_xdp-y.$(OBJEXT) +nlattr_ifla_xdp_y_LDADD = $(LDADD) +nlattr_ifla_xdp_y_DEPENDENCIES = libtests.a nlattr_inet_diag_msg_SOURCES = nlattr_inet_diag_msg.c nlattr_inet_diag_msg_OBJECTS = nlattr_inet_diag_msg.$(OBJEXT) nlattr_inet_diag_msg_LDADD = $(LDADD) @@ -1851,10 +2584,58 @@ open_SOURCES = open.c open_OBJECTS = open.$(OBJEXT) open_LDADD = $(LDADD) open_DEPENDENCIES = libtests.a +open_tree_SOURCES = open_tree.c +open_tree_OBJECTS = open_tree.$(OBJEXT) +open_tree_LDADD = $(LDADD) +open_tree_DEPENDENCIES = libtests.a +open_tree_P_SOURCES = open_tree-P.c +open_tree_P_OBJECTS = open_tree-P.$(OBJEXT) +open_tree_P_LDADD = $(LDADD) +open_tree_P_DEPENDENCIES = libtests.a openat_SOURCES = openat.c openat_OBJECTS = openat.$(OBJEXT) openat_LDADD = $(LDADD) openat_DEPENDENCIES = libtests.a +openat2_SOURCES = openat2.c +openat2_OBJECTS = openat2.$(OBJEXT) +openat2_LDADD = $(LDADD) +openat2_DEPENDENCIES = libtests.a +openat2_Xabbrev_SOURCES = openat2-Xabbrev.c +openat2_Xabbrev_OBJECTS = openat2-Xabbrev.$(OBJEXT) +openat2_Xabbrev_LDADD = $(LDADD) +openat2_Xabbrev_DEPENDENCIES = libtests.a +openat2_Xraw_SOURCES = openat2-Xraw.c +openat2_Xraw_OBJECTS = openat2-Xraw.$(OBJEXT) +openat2_Xraw_LDADD = $(LDADD) +openat2_Xraw_DEPENDENCIES = libtests.a +openat2_Xverbose_SOURCES = openat2-Xverbose.c +openat2_Xverbose_OBJECTS = openat2-Xverbose.$(OBJEXT) +openat2_Xverbose_LDADD = $(LDADD) +openat2_Xverbose_DEPENDENCIES = libtests.a +openat2_v_SOURCES = openat2-v.c +openat2_v_OBJECTS = openat2-v.$(OBJEXT) +openat2_v_LDADD = $(LDADD) +openat2_v_DEPENDENCIES = libtests.a +openat2_v_y_SOURCES = openat2-v-y.c +openat2_v_y_OBJECTS = openat2-v-y.$(OBJEXT) +openat2_v_y_LDADD = $(LDADD) +openat2_v_y_DEPENDENCIES = libtests.a +openat2_v_y_Xabbrev_SOURCES = openat2-v-y-Xabbrev.c +openat2_v_y_Xabbrev_OBJECTS = openat2-v-y-Xabbrev.$(OBJEXT) +openat2_v_y_Xabbrev_LDADD = $(LDADD) +openat2_v_y_Xabbrev_DEPENDENCIES = libtests.a +openat2_v_y_Xraw_SOURCES = openat2-v-y-Xraw.c +openat2_v_y_Xraw_OBJECTS = openat2-v-y-Xraw.$(OBJEXT) +openat2_v_y_Xraw_LDADD = $(LDADD) +openat2_v_y_Xraw_DEPENDENCIES = libtests.a +openat2_v_y_Xverbose_SOURCES = openat2-v-y-Xverbose.c +openat2_v_y_Xverbose_OBJECTS = openat2-v-y-Xverbose.$(OBJEXT) +openat2_v_y_Xverbose_LDADD = $(LDADD) +openat2_v_y_Xverbose_DEPENDENCIES = libtests.a +openat2_y_SOURCES = openat2-y.c +openat2_y_OBJECTS = openat2-y.$(OBJEXT) +openat2_y_LDADD = $(LDADD) +openat2_y_DEPENDENCIES = libtests.a orphaned_process_group_SOURCES = orphaned_process_group.c orphaned_process_group_OBJECTS = orphaned_process_group.$(OBJEXT) orphaned_process_group_LDADD = $(LDADD) @@ -1899,10 +2680,69 @@ personality_Xverbose_SOURCES = personality-Xverbose.c personality_Xverbose_OBJECTS = personality-Xverbose.$(OBJEXT) personality_Xverbose_LDADD = $(LDADD) personality_Xverbose_DEPENDENCIES = libtests.a +pidfd_getfd_SOURCES = pidfd_getfd.c +pidfd_getfd_OBJECTS = pidfd_getfd.$(OBJEXT) +pidfd_getfd_LDADD = $(LDADD) +pidfd_getfd_DEPENDENCIES = libtests.a +pidfd_getfd_y_SOURCES = pidfd_getfd-y.c +pidfd_getfd_y_OBJECTS = pidfd_getfd-y.$(OBJEXT) +pidfd_getfd_y_LDADD = $(LDADD) +pidfd_getfd_y_DEPENDENCIES = libtests.a +pidfd_getfd_yy_SOURCES = pidfd_getfd-yy.c +pidfd_getfd_yy_OBJECTS = pidfd_getfd-yy.$(OBJEXT) +pidfd_getfd_yy_LDADD = $(LDADD) +pidfd_getfd_yy_DEPENDENCIES = libtests.a +pidfd_open_SOURCES = pidfd_open.c +pidfd_open_OBJECTS = pidfd_open.$(OBJEXT) +pidfd_open_LDADD = $(LDADD) +pidfd_open_DEPENDENCIES = libtests.a +pidfd_open__decode_fd_path_SOURCES = pidfd_open--decode-fd-path.c +pidfd_open__decode_fd_path_OBJECTS = \ + pidfd_open--decode-fd-path.$(OBJEXT) +pidfd_open__decode_fd_path_LDADD = $(LDADD) +pidfd_open__decode_fd_path_DEPENDENCIES = libtests.a +pidfd_open__decode_fd_pidfd_SOURCES = pidfd_open--decode-fd-pidfd.c +pidfd_open__decode_fd_pidfd_OBJECTS = \ + pidfd_open--decode-fd-pidfd.$(OBJEXT) +pidfd_open__decode_fd_pidfd_LDADD = $(LDADD) +pidfd_open__decode_fd_pidfd_DEPENDENCIES = libtests.a +pidfd_open__decode_fd_socket_SOURCES = pidfd_open--decode-fd-socket.c +pidfd_open__decode_fd_socket_OBJECTS = \ + pidfd_open--decode-fd-socket.$(OBJEXT) +pidfd_open__decode_fd_socket_LDADD = $(LDADD) +pidfd_open__decode_fd_socket_DEPENDENCIES = libtests.a +pidfd_open__pidns_translation_SOURCES = \ + pidfd_open--pidns-translation.c +pidfd_open__pidns_translation_OBJECTS = \ + pidfd_open--pidns-translation.$(OBJEXT) +pidfd_open__pidns_translation_LDADD = $(LDADD) +pidfd_open__pidns_translation_DEPENDENCIES = libtests.a +pidfd_open_P_SOURCES = pidfd_open-P.c +pidfd_open_P_OBJECTS = pidfd_open-P.$(OBJEXT) +pidfd_open_P_LDADD = $(LDADD) +pidfd_open_P_DEPENDENCIES = libtests.a +pidfd_open_y_SOURCES = pidfd_open-y.c +pidfd_open_y_OBJECTS = pidfd_open-y.$(OBJEXT) +pidfd_open_y_LDADD = $(LDADD) +pidfd_open_y_DEPENDENCIES = libtests.a +pidfd_open_yy_SOURCES = pidfd_open-yy.c +pidfd_open_yy_OBJECTS = pidfd_open-yy.$(OBJEXT) +pidfd_open_yy_LDADD = $(LDADD) +pidfd_open_yy_DEPENDENCIES = libtests.a pidfd_send_signal_SOURCES = pidfd_send_signal.c pidfd_send_signal_OBJECTS = pidfd_send_signal.$(OBJEXT) pidfd_send_signal_LDADD = $(LDADD) pidfd_send_signal_DEPENDENCIES = libtests.a +pidfd_send_signal__pidns_translation_SOURCES = \ + pidfd_send_signal--pidns-translation.c +pidfd_send_signal__pidns_translation_OBJECTS = \ + pidfd_send_signal--pidns-translation.$(OBJEXT) +pidfd_send_signal__pidns_translation_LDADD = $(LDADD) +pidfd_send_signal__pidns_translation_DEPENDENCIES = libtests.a +pidns_cache_SOURCES = pidns-cache.c +pidns_cache_OBJECTS = pidns-cache.$(OBJEXT) +pidns_cache_LDADD = $(LDADD) +pidns_cache_DEPENDENCIES = libtests.a pipe_SOURCES = pipe.c pipe_OBJECTS = pipe.$(OBJEXT) pipe_LDADD = $(LDADD) @@ -2008,6 +2848,10 @@ print_maxfd_SOURCES = print_maxfd.c print_maxfd_OBJECTS = print_maxfd.$(OBJEXT) print_maxfd_LDADD = $(LDADD) print_maxfd_DEPENDENCIES = libtests.a +print_ppid_tracerpid_SOURCES = print_ppid_tracerpid.c +print_ppid_tracerpid_OBJECTS = print_ppid_tracerpid.$(OBJEXT) +print_ppid_tracerpid_LDADD = $(LDADD) +print_ppid_tracerpid_DEPENDENCIES = libtests.a printpath_umovestr_SOURCES = printpath-umovestr.c printpath_umovestr_OBJECTS = printpath-umovestr.$(OBJEXT) printpath_umovestr_LDADD = $(LDADD) @@ -2057,14 +2901,31 @@ prlimit64_SOURCES = prlimit64.c prlimit64_OBJECTS = prlimit64.$(OBJEXT) prlimit64_LDADD = $(LDADD) prlimit64_DEPENDENCIES = libtests.a +prlimit64__pidns_translation_SOURCES = prlimit64--pidns-translation.c +prlimit64__pidns_translation_OBJECTS = \ + prlimit64--pidns-translation.$(OBJEXT) +prlimit64__pidns_translation_LDADD = $(LDADD) +prlimit64__pidns_translation_DEPENDENCIES = libtests.a process_vm_readv_SOURCES = process_vm_readv.c process_vm_readv_OBJECTS = process_vm_readv.$(OBJEXT) process_vm_readv_LDADD = $(LDADD) process_vm_readv_DEPENDENCIES = libtests.a +process_vm_readv__pidns_translation_SOURCES = \ + process_vm_readv--pidns-translation.c +process_vm_readv__pidns_translation_OBJECTS = \ + process_vm_readv--pidns-translation.$(OBJEXT) +process_vm_readv__pidns_translation_LDADD = $(LDADD) +process_vm_readv__pidns_translation_DEPENDENCIES = libtests.a process_vm_writev_SOURCES = process_vm_writev.c process_vm_writev_OBJECTS = process_vm_writev.$(OBJEXT) process_vm_writev_LDADD = $(LDADD) process_vm_writev_DEPENDENCIES = libtests.a +process_vm_writev__pidns_translation_SOURCES = \ + process_vm_writev--pidns-translation.c +process_vm_writev__pidns_translation_OBJECTS = \ + process_vm_writev--pidns-translation.$(OBJEXT) +process_vm_writev__pidns_translation_LDADD = $(LDADD) +process_vm_writev__pidns_translation_DEPENDENCIES = libtests.a pselect6_SOURCES = pselect6.c pselect6_OBJECTS = pselect6.$(OBJEXT) pselect6_LDADD = $(LDADD) @@ -2173,10 +3034,18 @@ reboot_SOURCES = reboot.c reboot_OBJECTS = reboot.$(OBJEXT) reboot_LDADD = $(LDADD) reboot_DEPENDENCIES = libtests.a +recv_MSG_TRUNC_SOURCES = recv-MSG_TRUNC.c +recv_MSG_TRUNC_OBJECTS = recv-MSG_TRUNC.$(OBJEXT) +recv_MSG_TRUNC_LDADD = $(LDADD) +recv_MSG_TRUNC_DEPENDENCIES = libtests.a recvfrom_SOURCES = recvfrom.c recvfrom_OBJECTS = recvfrom.$(OBJEXT) recvfrom_LDADD = $(LDADD) recvfrom_DEPENDENCIES = libtests.a +recvfrom_MSG_TRUNC_SOURCES = recvfrom-MSG_TRUNC.c +recvfrom_MSG_TRUNC_OBJECTS = recvfrom-MSG_TRUNC.$(OBJEXT) +recvfrom_MSG_TRUNC_LDADD = $(LDADD) +recvfrom_MSG_TRUNC_DEPENDENCIES = libtests.a recvmmsg_timeout_SOURCES = recvmmsg-timeout.c recvmmsg_timeout_OBJECTS = recvmmsg-timeout.$(OBJEXT) recvmmsg_timeout_LDADD = $(LDADD) @@ -2250,6 +3119,12 @@ rt_sigqueueinfo_SOURCES = rt_sigqueueinfo.c rt_sigqueueinfo_OBJECTS = rt_sigqueueinfo.$(OBJEXT) rt_sigqueueinfo_LDADD = $(LDADD) rt_sigqueueinfo_DEPENDENCIES = libtests.a +rt_sigqueueinfo__pidns_translation_SOURCES = \ + rt_sigqueueinfo--pidns-translation.c +rt_sigqueueinfo__pidns_translation_OBJECTS = \ + rt_sigqueueinfo--pidns-translation.$(OBJEXT) +rt_sigqueueinfo__pidns_translation_LDADD = $(LDADD) +rt_sigqueueinfo__pidns_translation_DEPENDENCIES = libtests.a rt_sigreturn_SOURCES = rt_sigreturn.c rt_sigreturn_OBJECTS = rt_sigreturn.$(OBJEXT) rt_sigreturn_LDADD = $(LDADD) @@ -2266,6 +3141,12 @@ rt_tgsigqueueinfo_SOURCES = rt_tgsigqueueinfo.c rt_tgsigqueueinfo_OBJECTS = rt_tgsigqueueinfo.$(OBJEXT) rt_tgsigqueueinfo_LDADD = $(LDADD) rt_tgsigqueueinfo_DEPENDENCIES = libtests.a +rt_tgsigqueueinfo__pidns_translation_SOURCES = \ + rt_tgsigqueueinfo--pidns-translation.c +rt_tgsigqueueinfo__pidns_translation_OBJECTS = \ + rt_tgsigqueueinfo--pidns-translation.$(OBJEXT) +rt_tgsigqueueinfo__pidns_translation_LDADD = $(LDADD) +rt_tgsigqueueinfo__pidns_translation_DEPENDENCIES = libtests.a run_expect_termsig_SOURCES = run_expect_termsig.c run_expect_termsig_OBJECTS = run_expect_termsig.$(OBJEXT) run_expect_termsig_LDADD = $(LDADD) @@ -2306,18 +3187,42 @@ sched_xetaffinity_SOURCES = sched_xetaffinity.c sched_xetaffinity_OBJECTS = sched_xetaffinity.$(OBJEXT) sched_xetaffinity_LDADD = $(LDADD) sched_xetaffinity_DEPENDENCIES = libtests.a +sched_xetaffinity__pidns_translation_SOURCES = \ + sched_xetaffinity--pidns-translation.c +sched_xetaffinity__pidns_translation_OBJECTS = \ + sched_xetaffinity--pidns-translation.$(OBJEXT) +sched_xetaffinity__pidns_translation_LDADD = $(LDADD) +sched_xetaffinity__pidns_translation_DEPENDENCIES = libtests.a sched_xetattr_SOURCES = sched_xetattr.c sched_xetattr_OBJECTS = sched_xetattr.$(OBJEXT) sched_xetattr_LDADD = $(LDADD) sched_xetattr_DEPENDENCIES = libtests.a +sched_xetattr__pidns_translation_SOURCES = \ + sched_xetattr--pidns-translation.c +sched_xetattr__pidns_translation_OBJECTS = \ + sched_xetattr--pidns-translation.$(OBJEXT) +sched_xetattr__pidns_translation_LDADD = $(LDADD) +sched_xetattr__pidns_translation_DEPENDENCIES = libtests.a sched_xetparam_SOURCES = sched_xetparam.c sched_xetparam_OBJECTS = sched_xetparam.$(OBJEXT) sched_xetparam_LDADD = $(LDADD) sched_xetparam_DEPENDENCIES = libtests.a +sched_xetparam__pidns_translation_SOURCES = \ + sched_xetparam--pidns-translation.c +sched_xetparam__pidns_translation_OBJECTS = \ + sched_xetparam--pidns-translation.$(OBJEXT) +sched_xetparam__pidns_translation_LDADD = $(LDADD) +sched_xetparam__pidns_translation_DEPENDENCIES = libtests.a sched_xetscheduler_SOURCES = sched_xetscheduler.c sched_xetscheduler_OBJECTS = sched_xetscheduler.$(OBJEXT) sched_xetscheduler_LDADD = $(LDADD) sched_xetscheduler_DEPENDENCIES = libtests.a +sched_xetscheduler__pidns_translation_SOURCES = \ + sched_xetscheduler--pidns-translation.c +sched_xetscheduler__pidns_translation_OBJECTS = \ + sched_xetscheduler--pidns-translation.$(OBJEXT) +sched_xetscheduler__pidns_translation_LDADD = $(LDADD) +sched_xetscheduler__pidns_translation_DEPENDENCIES = libtests.a sched_yield_SOURCES = sched_yield.c sched_yield_OBJECTS = sched_yield.$(OBJEXT) sched_yield_LDADD = $(LDADD) @@ -2354,6 +3259,14 @@ semop_SOURCES = semop.c semop_OBJECTS = semop.$(OBJEXT) semop_LDADD = $(LDADD) semop_DEPENDENCIES = libtests.a +semop_indirect_SOURCES = semop-indirect.c +semop_indirect_OBJECTS = semop-indirect.$(OBJEXT) +semop_indirect_LDADD = $(LDADD) +semop_indirect_DEPENDENCIES = libtests.a +semtimedop_SOURCES = semtimedop.c +semtimedop_OBJECTS = semtimedop.$(OBJEXT) +semtimedop_LDADD = $(LDADD) +semtimedop_DEPENDENCIES = libtests.a sendfile_SOURCES = sendfile.c sendfile_OBJECTS = sendfile.$(OBJEXT) sendfile_LDADD = $(LDADD) @@ -2366,6 +3279,18 @@ set_mempolicy_SOURCES = set_mempolicy.c set_mempolicy_OBJECTS = set_mempolicy.$(OBJEXT) set_mempolicy_LDADD = $(LDADD) set_mempolicy_DEPENDENCIES = libtests.a +set_mempolicy_Xabbrev_SOURCES = set_mempolicy-Xabbrev.c +set_mempolicy_Xabbrev_OBJECTS = set_mempolicy-Xabbrev.$(OBJEXT) +set_mempolicy_Xabbrev_LDADD = $(LDADD) +set_mempolicy_Xabbrev_DEPENDENCIES = libtests.a +set_mempolicy_Xraw_SOURCES = set_mempolicy-Xraw.c +set_mempolicy_Xraw_OBJECTS = set_mempolicy-Xraw.$(OBJEXT) +set_mempolicy_Xraw_LDADD = $(LDADD) +set_mempolicy_Xraw_DEPENDENCIES = libtests.a +set_mempolicy_Xverbose_SOURCES = set_mempolicy-Xverbose.c +set_mempolicy_Xverbose_OBJECTS = set_mempolicy-Xverbose.$(OBJEXT) +set_mempolicy_Xverbose_LDADD = $(LDADD) +set_mempolicy_Xverbose_DEPENDENCIES = libtests.a set_ptracer_any_SOURCES = set_ptracer_any.c set_ptracer_any_OBJECTS = set_ptracer_any.$(OBJEXT) set_ptracer_any_LDADD = $(LDADD) @@ -2422,6 +3347,10 @@ setns_SOURCES = setns.c setns_OBJECTS = setns.$(OBJEXT) setns_LDADD = $(LDADD) setns_DEPENDENCIES = libtests.a +setpgrp_exec_SOURCES = setpgrp-exec.c +setpgrp_exec_OBJECTS = setpgrp-exec.$(OBJEXT) +setpgrp_exec_LDADD = $(LDADD) +setpgrp_exec_DEPENDENCIES = libtests.a setregid_SOURCES = setregid.c setregid_OBJECTS = setregid.$(OBJEXT) setregid_LDADD = $(LDADD) @@ -2506,6 +3435,12 @@ signal_receive_SOURCES = signal_receive.c signal_receive_OBJECTS = signal_receive.$(OBJEXT) signal_receive_LDADD = $(LDADD) signal_receive_DEPENDENCIES = libtests.a +signal_receive__pidns_translation_SOURCES = \ + signal_receive--pidns-translation.c +signal_receive__pidns_translation_OBJECTS = \ + signal_receive--pidns-translation.$(OBJEXT) +signal_receive__pidns_translation_LDADD = $(LDADD) +signal_receive__pidns_translation_DEPENDENCIES = libtests.a signalfd4_SOURCES = signalfd4.c signalfd4_OBJECTS = signalfd4.$(OBJEXT) signalfd4_LDADD = $(LDADD) @@ -2542,6 +3477,12 @@ so_peercred_SOURCES = so_peercred.c so_peercred_OBJECTS = so_peercred.$(OBJEXT) so_peercred_LDADD = $(LDADD) so_peercred_DEPENDENCIES = libtests.a +so_peercred__pidns_translation_SOURCES = \ + so_peercred--pidns-translation.c +so_peercred__pidns_translation_OBJECTS = \ + so_peercred--pidns-translation.$(OBJEXT) +so_peercred__pidns_translation_LDADD = $(LDADD) +so_peercred__pidns_translation_DEPENDENCIES = libtests.a so_peercred_Xabbrev_SOURCES = so_peercred-Xabbrev.c so_peercred_Xabbrev_OBJECTS = so_peercred-Xabbrev.$(OBJEXT) so_peercred_Xabbrev_LDADD = $(LDADD) @@ -2604,6 +3545,12 @@ am_stack_fcall_OBJECTS = stack-fcall.$(OBJEXT) stack-fcall-0.$(OBJEXT) \ stack_fcall_OBJECTS = $(am_stack_fcall_OBJECTS) stack_fcall_LDADD = $(LDADD) stack_fcall_DEPENDENCIES = libtests.a +am_stack_fcall_attach_OBJECTS = stack-fcall-attach.$(OBJEXT) \ + stack-fcall-0.$(OBJEXT) stack-fcall-1.$(OBJEXT) \ + stack-fcall-2.$(OBJEXT) stack-fcall-3.$(OBJEXT) +stack_fcall_attach_OBJECTS = $(am_stack_fcall_attach_OBJECTS) +stack_fcall_attach_LDADD = $(LDADD) +stack_fcall_attach_DEPENDENCIES = libtests.a am_stack_fcall_mangled_OBJECTS = stack-fcall-mangled.$(OBJEXT) \ stack-fcall-mangled-0.$(OBJEXT) \ stack-fcall-mangled-1.$(OBJEXT) \ @@ -2628,10 +3575,84 @@ statfs64_SOURCES = statfs64.c statfs64_OBJECTS = statfs64.$(OBJEXT) statfs64_LDADD = $(LDADD) statfs64_DEPENDENCIES = libtests.a +status_all_SOURCES = status-all.c +status_all_OBJECTS = status-all.$(OBJEXT) +status_all_LDADD = $(LDADD) +status_all_DEPENDENCIES = libtests.a +status_failed_SOURCES = status-failed.c +status_failed_OBJECTS = status-failed.$(OBJEXT) +status_failed_LDADD = $(LDADD) +status_failed_DEPENDENCIES = libtests.a +status_failed_long_SOURCES = status-failed-long.c +status_failed_long_OBJECTS = status-failed-long.$(OBJEXT) +status_failed_long_LDADD = $(LDADD) +status_failed_long_DEPENDENCIES = libtests.a +status_failed_status_SOURCES = status-failed-status.c +status_failed_status_OBJECTS = status-failed-status.$(OBJEXT) +status_failed_status_LDADD = $(LDADD) +status_failed_status_DEPENDENCIES = libtests.a +status_none_SOURCES = status-none.c +status_none_OBJECTS = status-none.$(OBJEXT) +status_none_LDADD = $(LDADD) +status_none_DEPENDENCIES = libtests.a +status_none_f_SOURCES = status-none-f.c +status_none_f_OBJECTS = status-none-f.$(OBJEXT) +status_none_f_LDADD = $(LDADD) +status_none_f_DEPENDENCIES = libtests.a +status_none_threads_SOURCES = status-none-threads.c +status_none_threads_OBJECTS = status-none-threads.$(OBJEXT) +status_none_threads_DEPENDENCIES = $(LDADD) +status_successful_SOURCES = status-successful.c +status_successful_OBJECTS = status-successful.$(OBJEXT) +status_successful_LDADD = $(LDADD) +status_successful_DEPENDENCIES = libtests.a +status_successful_long_SOURCES = status-successful-long.c +status_successful_long_OBJECTS = status-successful-long.$(OBJEXT) +status_successful_long_LDADD = $(LDADD) +status_successful_long_DEPENDENCIES = libtests.a +status_successful_status_SOURCES = status-successful-status.c +status_successful_status_OBJECTS = status-successful-status.$(OBJEXT) +status_successful_status_LDADD = $(LDADD) +status_successful_status_DEPENDENCIES = libtests.a +status_unfinished_SOURCES = status-unfinished.c +status_unfinished_OBJECTS = status-unfinished.$(OBJEXT) +status_unfinished_LDADD = $(LDADD) +status_unfinished_DEPENDENCIES = libtests.a +status_unfinished_threads_SOURCES = status-unfinished-threads.c +status_unfinished_threads_OBJECTS = \ + status-unfinished-threads.$(OBJEXT) +status_unfinished_threads_DEPENDENCIES = $(LDADD) statx_SOURCES = statx.c statx_OBJECTS = statx.$(OBJEXT) statx_LDADD = $(LDADD) statx_DEPENDENCIES = libtests.a +strace__strings_in_hex_SOURCES = strace--strings-in-hex.c +strace__strings_in_hex_OBJECTS = strace--strings-in-hex.$(OBJEXT) +strace__strings_in_hex_LDADD = $(LDADD) +strace__strings_in_hex_DEPENDENCIES = libtests.a +strace__strings_in_hex_all_SOURCES = strace--strings-in-hex-all.c +strace__strings_in_hex_all_OBJECTS = \ + strace--strings-in-hex-all.$(OBJEXT) +strace__strings_in_hex_all_LDADD = $(LDADD) +strace__strings_in_hex_all_DEPENDENCIES = libtests.a +strace__strings_in_hex_non_ascii_SOURCES = \ + strace--strings-in-hex-non-ascii.c +strace__strings_in_hex_non_ascii_OBJECTS = \ + strace--strings-in-hex-non-ascii.$(OBJEXT) +strace__strings_in_hex_non_ascii_LDADD = $(LDADD) +strace__strings_in_hex_non_ascii_DEPENDENCIES = libtests.a +strace_n_SOURCES = strace-n.c +strace_n_OBJECTS = strace-n.$(OBJEXT) +strace_n_LDADD = $(LDADD) +strace_n_DEPENDENCIES = libtests.a +strace_x_SOURCES = strace-x.c +strace_x_OBJECTS = strace-x.$(OBJEXT) +strace_x_LDADD = $(LDADD) +strace_x_DEPENDENCIES = libtests.a +strace_xx_SOURCES = strace-xx.c +strace_xx_OBJECTS = strace-xx.$(OBJEXT) +strace_xx_LDADD = $(LDADD) +strace_xx_DEPENDENCIES = libtests.a swap_SOURCES = swap.c swap_OBJECTS = swap.$(OBJEXT) swap_LDADD = $(LDADD) @@ -2668,13 +3689,41 @@ syslog_SOURCES = syslog.c syslog_OBJECTS = syslog.$(OBJEXT) syslog_LDADD = $(LDADD) syslog_DEPENDENCIES = libtests.a +syslog_success_SOURCES = syslog-success.c +syslog_success_OBJECTS = syslog-success.$(OBJEXT) +syslog_success_LDADD = $(LDADD) +syslog_success_DEPENDENCIES = libtests.a tee_SOURCES = tee.c tee_OBJECTS = tee.$(OBJEXT) tee_LDADD = $(LDADD) tee_DEPENDENCIES = libtests.a +tgkill_SOURCES = tgkill.c +tgkill_OBJECTS = tgkill.$(OBJEXT) +tgkill_LDADD = $(LDADD) +tgkill_DEPENDENCIES = libtests.a +tgkill__pidns_translation_SOURCES = tgkill--pidns-translation.c +tgkill__pidns_translation_OBJECTS = \ + tgkill--pidns-translation.$(OBJEXT) +tgkill__pidns_translation_LDADD = $(LDADD) +tgkill__pidns_translation_DEPENDENCIES = libtests.a threads_execve_SOURCES = threads-execve.c threads_execve_OBJECTS = threads-execve.$(OBJEXT) threads_execve_DEPENDENCIES = $(am__DEPENDENCIES_1) $(LDADD) +threads_execve__quiet_thread_execve_SOURCES = \ + threads-execve--quiet-thread-execve.c +threads_execve__quiet_thread_execve_OBJECTS = \ + threads-execve--quiet-thread-execve.$(OBJEXT) +threads_execve__quiet_thread_execve_DEPENDENCIES = \ + $(am__DEPENDENCIES_1) $(LDADD) +threads_execve_q_SOURCES = threads-execve-q.c +threads_execve_q_OBJECTS = threads-execve-q.$(OBJEXT) +threads_execve_q_DEPENDENCIES = $(am__DEPENDENCIES_1) $(LDADD) +threads_execve_qq_SOURCES = threads-execve-qq.c +threads_execve_qq_OBJECTS = threads-execve-qq.$(OBJEXT) +threads_execve_qq_DEPENDENCIES = $(am__DEPENDENCIES_1) $(LDADD) +threads_execve_qqq_SOURCES = threads-execve-qqq.c +threads_execve_qqq_OBJECTS = threads-execve-qqq.$(OBJEXT) +threads_execve_qqq_DEPENDENCIES = $(am__DEPENDENCIES_1) $(LDADD) time_SOURCES = time.c time_OBJECTS = time.$(OBJEXT) time_LDADD = $(LDADD) @@ -2698,6 +3747,24 @@ times_fail_SOURCES = times-fail.c times_fail_OBJECTS = times-fail.$(OBJEXT) times_fail_LDADD = $(LDADD) times_fail_DEPENDENCIES = libtests.a +tkill_SOURCES = tkill.c +tkill_OBJECTS = tkill.$(OBJEXT) +tkill_LDADD = $(LDADD) +tkill_DEPENDENCIES = libtests.a +tkill__pidns_translation_SOURCES = tkill--pidns-translation.c +tkill__pidns_translation_OBJECTS = tkill--pidns-translation.$(OBJEXT) +tkill__pidns_translation_LDADD = $(LDADD) +tkill__pidns_translation_DEPENDENCIES = libtests.a +tracer_ppid_pgid_sid_SOURCES = tracer_ppid_pgid_sid.c +tracer_ppid_pgid_sid_OBJECTS = tracer_ppid_pgid_sid.$(OBJEXT) +tracer_ppid_pgid_sid_LDADD = $(LDADD) +tracer_ppid_pgid_sid_DEPENDENCIES = libtests.a +am_trie_test_OBJECTS = trie_test-trie_test.$(OBJEXT) \ + trie_test-trie_for_tests.$(OBJEXT) +trie_test_OBJECTS = $(am_trie_test_OBJECTS) +trie_test_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_1) +trie_test_LINK = $(CCLD) $(trie_test_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ truncate_SOURCES = truncate.c truncate_OBJECTS = truncate.$(OBJEXT) truncate_LDADD = $(LDADD) @@ -2746,6 +3813,14 @@ umovestr3_SOURCES = umovestr3.c umovestr3_OBJECTS = umovestr3.$(OBJEXT) umovestr3_LDADD = $(LDADD) umovestr3_DEPENDENCIES = libtests.a +umovestr_cached_SOURCES = umovestr_cached.c +umovestr_cached_OBJECTS = umovestr_cached.$(OBJEXT) +umovestr_cached_LDADD = $(LDADD) +umovestr_cached_DEPENDENCIES = libtests.a +umovestr_cached_adjacent_SOURCES = umovestr_cached_adjacent.c +umovestr_cached_adjacent_OBJECTS = umovestr_cached_adjacent.$(OBJEXT) +umovestr_cached_adjacent_LDADD = $(LDADD) +umovestr_cached_adjacent_DEPENDENCIES = libtests.a uname_SOURCES = uname.c uname_OBJECTS = uname.$(OBJEXT) uname_LDADD = $(LDADD) @@ -2851,6 +3926,12 @@ xet_robust_list_SOURCES = xet_robust_list.c xet_robust_list_OBJECTS = xet_robust_list.$(OBJEXT) xet_robust_list_LDADD = $(LDADD) xet_robust_list_DEPENDENCIES = libtests.a +xet_robust_list__pidns_translation_SOURCES = \ + xet_robust_list--pidns-translation.c +xet_robust_list__pidns_translation_OBJECTS = \ + xet_robust_list--pidns-translation.$(OBJEXT) +xet_robust_list__pidns_translation_LDADD = $(LDADD) +xet_robust_list__pidns_translation_DEPENDENCIES = libtests.a xet_thread_area_x86_SOURCES = xet_thread_area_x86.c xet_thread_area_x86_OBJECTS = xet_thread_area_x86.$(OBJEXT) xet_thread_area_x86_LDADD = $(LDADD) @@ -2863,10 +3944,21 @@ xetpgid_SOURCES = xetpgid.c xetpgid_OBJECTS = xetpgid.$(OBJEXT) xetpgid_LDADD = $(LDADD) xetpgid_DEPENDENCIES = libtests.a +xetpgid__pidns_translation_SOURCES = xetpgid--pidns-translation.c +xetpgid__pidns_translation_OBJECTS = \ + xetpgid--pidns-translation.$(OBJEXT) +xetpgid__pidns_translation_LDADD = $(LDADD) +xetpgid__pidns_translation_DEPENDENCIES = libtests.a xetpriority_SOURCES = xetpriority.c xetpriority_OBJECTS = xetpriority.$(OBJEXT) xetpriority_LDADD = $(LDADD) xetpriority_DEPENDENCIES = libtests.a +xetpriority__pidns_translation_SOURCES = \ + xetpriority--pidns-translation.c +xetpriority__pidns_translation_OBJECTS = \ + xetpriority--pidns-translation.$(OBJEXT) +xetpriority__pidns_translation_LDADD = $(LDADD) +xetpriority__pidns_translation_DEPENDENCIES = libtests.a xettimeofday_SOURCES = xettimeofday.c xettimeofday_OBJECTS = xettimeofday.$(OBJEXT) xettimeofday_LDADD = $(LDADD) @@ -2900,29 +3992,55 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/attach-f-p.Po ./$(DEPDIR)/attach-p-cmd-cmd.Po \ ./$(DEPDIR)/attach-p-cmd-p.Po \ ./$(DEPDIR)/block_reset_raise_run.Po \ + ./$(DEPDIR)/block_reset_run.Po \ ./$(DEPDIR)/bpf-obj_get_info_by_fd-prog-v.Po \ ./$(DEPDIR)/bpf-obj_get_info_by_fd-prog.Po \ ./$(DEPDIR)/bpf-obj_get_info_by_fd-v.Po \ ./$(DEPDIR)/bpf-obj_get_info_by_fd.Po \ - ./$(DEPDIR)/bpf-success-v.Po ./$(DEPDIR)/bpf-success.Po \ - ./$(DEPDIR)/bpf-v.Po ./$(DEPDIR)/bpf.Po ./$(DEPDIR)/brk.Po \ - ./$(DEPDIR)/btrfs.Po ./$(DEPDIR)/caps-abbrev.Po \ - ./$(DEPDIR)/caps.Po ./$(DEPDIR)/check_sigblock.Po \ - ./$(DEPDIR)/check_sigign.Po ./$(DEPDIR)/chmod.Po \ - ./$(DEPDIR)/chown.Po ./$(DEPDIR)/chown32.Po \ - ./$(DEPDIR)/chroot.Po ./$(DEPDIR)/clock_adjtime.Po \ - ./$(DEPDIR)/clock_nanosleep.Po ./$(DEPDIR)/clock_xettime.Po \ - ./$(DEPDIR)/clone_parent.Po ./$(DEPDIR)/clone_ptrace.Po \ - ./$(DEPDIR)/copy_file_range.Po ./$(DEPDIR)/count-f.Po \ - ./$(DEPDIR)/creat.Po ./$(DEPDIR)/delay.Po \ - ./$(DEPDIR)/delete_module.Po ./$(DEPDIR)/dev-yy.Po \ - ./$(DEPDIR)/dup.Po ./$(DEPDIR)/dup2.Po ./$(DEPDIR)/dup3.Po \ - ./$(DEPDIR)/epoll_create.Po ./$(DEPDIR)/epoll_create1.Po \ - ./$(DEPDIR)/epoll_ctl.Po ./$(DEPDIR)/epoll_pwait.Po \ - ./$(DEPDIR)/epoll_wait.Po ./$(DEPDIR)/erestartsys.Po \ - ./$(DEPDIR)/eventfd.Po ./$(DEPDIR)/execve-v.Po \ - ./$(DEPDIR)/execve.Po ./$(DEPDIR)/execveat-v.Po \ - ./$(DEPDIR)/execveat.Po ./$(DEPDIR)/faccessat.Po \ + ./$(DEPDIR)/bpf-success-long-y.Po ./$(DEPDIR)/bpf-success-v.Po \ + ./$(DEPDIR)/bpf-success.Po ./$(DEPDIR)/bpf-v.Po \ + ./$(DEPDIR)/bpf.Po ./$(DEPDIR)/brk.Po ./$(DEPDIR)/btrfs.Po \ + ./$(DEPDIR)/caps-abbrev.Po ./$(DEPDIR)/caps.Po \ + ./$(DEPDIR)/check_sigblock.Po ./$(DEPDIR)/check_sigign.Po \ + ./$(DEPDIR)/chmod.Po ./$(DEPDIR)/chown.Po \ + ./$(DEPDIR)/chown32.Po ./$(DEPDIR)/chroot.Po \ + ./$(DEPDIR)/clock_adjtime.Po ./$(DEPDIR)/clock_nanosleep.Po \ + ./$(DEPDIR)/clock_xettime.Po ./$(DEPDIR)/clone-flags.Po \ + ./$(DEPDIR)/clone3-Xabbrev.Po ./$(DEPDIR)/clone3-Xraw.Po \ + ./$(DEPDIR)/clone3-Xverbose.Po \ + ./$(DEPDIR)/clone3-success-Xabbrev.Po \ + ./$(DEPDIR)/clone3-success-Xraw.Po \ + ./$(DEPDIR)/clone3-success-Xverbose.Po \ + ./$(DEPDIR)/clone3-success.Po ./$(DEPDIR)/clone3.Po \ + ./$(DEPDIR)/clone_parent--quiet-exit.Po \ + ./$(DEPDIR)/clone_parent-q.Po ./$(DEPDIR)/clone_parent-qq.Po \ + ./$(DEPDIR)/clone_parent.Po \ + ./$(DEPDIR)/clone_ptrace--quiet-attach.Po \ + ./$(DEPDIR)/clone_ptrace--quiet-exit.Po \ + ./$(DEPDIR)/clone_ptrace-q.Po ./$(DEPDIR)/clone_ptrace-qq.Po \ + ./$(DEPDIR)/clone_ptrace.Po ./$(DEPDIR)/close_range-P.Po \ + ./$(DEPDIR)/close_range-y.Po ./$(DEPDIR)/close_range-yy.Po \ + ./$(DEPDIR)/close_range.Po ./$(DEPDIR)/copy_file_range.Po \ + ./$(DEPDIR)/count-f.Po ./$(DEPDIR)/creat.Po \ + ./$(DEPDIR)/delay.Po ./$(DEPDIR)/delete_module.Po \ + ./$(DEPDIR)/dev--decode-fds-dev.Po \ + ./$(DEPDIR)/dev--decode-fds-path.Po \ + ./$(DEPDIR)/dev--decode-fds-socket.Po ./$(DEPDIR)/dev-yy.Po \ + ./$(DEPDIR)/dup-P.Po ./$(DEPDIR)/dup-y.Po \ + ./$(DEPDIR)/dup-yy.Po ./$(DEPDIR)/dup.Po ./$(DEPDIR)/dup2-P.Po \ + ./$(DEPDIR)/dup2-y.Po ./$(DEPDIR)/dup2-yy.Po \ + ./$(DEPDIR)/dup2.Po ./$(DEPDIR)/dup3-P.Po \ + ./$(DEPDIR)/dup3-y.Po ./$(DEPDIR)/dup3-yy.Po \ + ./$(DEPDIR)/dup3.Po ./$(DEPDIR)/epoll_create.Po \ + ./$(DEPDIR)/epoll_create1.Po ./$(DEPDIR)/epoll_ctl.Po \ + ./$(DEPDIR)/epoll_pwait.Po ./$(DEPDIR)/epoll_wait.Po \ + ./$(DEPDIR)/erestartsys.Po ./$(DEPDIR)/eventfd.Po \ + ./$(DEPDIR)/execve-v.Po ./$(DEPDIR)/execve.Po \ + ./$(DEPDIR)/execveat-v.Po ./$(DEPDIR)/execveat.Po \ + ./$(DEPDIR)/faccessat-P.Po ./$(DEPDIR)/faccessat-y.Po \ + ./$(DEPDIR)/faccessat-yy.Po ./$(DEPDIR)/faccessat.Po \ + ./$(DEPDIR)/faccessat2-P.Po ./$(DEPDIR)/faccessat2-y.Po \ + ./$(DEPDIR)/faccessat2-yy.Po ./$(DEPDIR)/faccessat2.Po \ ./$(DEPDIR)/fadvise64.Po ./$(DEPDIR)/fadvise64_64.Po \ ./$(DEPDIR)/fallocate.Po ./$(DEPDIR)/fanotify_init.Po \ ./$(DEPDIR)/fanotify_mark-Xabbrev.Po \ @@ -2931,12 +4049,19 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/fanotify_mark.Po ./$(DEPDIR)/fchdir.Po \ ./$(DEPDIR)/fchmod.Po ./$(DEPDIR)/fchmodat.Po \ ./$(DEPDIR)/fchown.Po ./$(DEPDIR)/fchown32.Po \ - ./$(DEPDIR)/fchownat.Po ./$(DEPDIR)/fcntl.Po \ + ./$(DEPDIR)/fchownat.Po \ + ./$(DEPDIR)/fcntl--pidns-translation.Po ./$(DEPDIR)/fcntl.Po \ + ./$(DEPDIR)/fcntl64--pidns-translation.Po \ ./$(DEPDIR)/fcntl64.Po ./$(DEPDIR)/fdatasync.Po \ ./$(DEPDIR)/fflush.Po ./$(DEPDIR)/file_handle.Po \ ./$(DEPDIR)/file_ioctl.Po ./$(DEPDIR)/filter-unavailable.Po \ - ./$(DEPDIR)/finit_module.Po ./$(DEPDIR)/flock.Po \ - ./$(DEPDIR)/fork-f.Po ./$(DEPDIR)/fstat-Xabbrev.Po \ + ./$(DEPDIR)/filter_seccomp-flag.Po \ + ./$(DEPDIR)/filter_seccomp-perf.Po ./$(DEPDIR)/finit_module.Po \ + ./$(DEPDIR)/flock.Po ./$(DEPDIR)/fork--pidns-translation.Po \ + ./$(DEPDIR)/fork-f.Po ./$(DEPDIR)/fsconfig-P.Po \ + ./$(DEPDIR)/fsconfig.Po ./$(DEPDIR)/fsmount.Po \ + ./$(DEPDIR)/fsopen.Po ./$(DEPDIR)/fspick-P.Po \ + ./$(DEPDIR)/fspick.Po ./$(DEPDIR)/fstat-Xabbrev.Po \ ./$(DEPDIR)/fstat-Xraw.Po ./$(DEPDIR)/fstat-Xverbose.Po \ ./$(DEPDIR)/fstat.Po ./$(DEPDIR)/fstat64-Xabbrev.Po \ ./$(DEPDIR)/fstat64-Xraw.Po ./$(DEPDIR)/fstat64-Xverbose.Po \ @@ -2946,30 +4071,66 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/fsync.Po ./$(DEPDIR)/ftruncate.Po \ ./$(DEPDIR)/ftruncate64-ftruncate64.Po ./$(DEPDIR)/futex.Po \ ./$(DEPDIR)/futimesat.Po ./$(DEPDIR)/get_mempolicy.Po \ - ./$(DEPDIR)/getcpu.Po ./$(DEPDIR)/getcwd.Po \ - ./$(DEPDIR)/getdents.Po ./$(DEPDIR)/getdents64.Po \ - ./$(DEPDIR)/getegid.Po ./$(DEPDIR)/getegid32.Po \ - ./$(DEPDIR)/geteuid.Po ./$(DEPDIR)/geteuid32.Po \ - ./$(DEPDIR)/getgid.Po ./$(DEPDIR)/getgid32.Po \ - ./$(DEPDIR)/getgroups.Po ./$(DEPDIR)/getgroups32.Po \ - ./$(DEPDIR)/getpeername.Po ./$(DEPDIR)/getpgrp.Po \ - ./$(DEPDIR)/getpid.Po ./$(DEPDIR)/getppid.Po \ - ./$(DEPDIR)/getrandom.Po ./$(DEPDIR)/getresgid.Po \ - ./$(DEPDIR)/getresgid32.Po ./$(DEPDIR)/getresuid.Po \ - ./$(DEPDIR)/getresuid32.Po ./$(DEPDIR)/getrlimit.Po \ - ./$(DEPDIR)/getrusage.Po ./$(DEPDIR)/getsid.Po \ - ./$(DEPDIR)/getsockname.Po ./$(DEPDIR)/gettid.Po \ + ./$(DEPDIR)/get_process_reaper.Po ./$(DEPDIR)/getcpu.Po \ + ./$(DEPDIR)/getcwd.Po ./$(DEPDIR)/getdents-v.Po \ + ./$(DEPDIR)/getdents.Po ./$(DEPDIR)/getdents64-v.Po \ + ./$(DEPDIR)/getdents64.Po ./$(DEPDIR)/getegid.Po \ + ./$(DEPDIR)/getegid32.Po ./$(DEPDIR)/geteuid.Po \ + ./$(DEPDIR)/geteuid32.Po ./$(DEPDIR)/getgid.Po \ + ./$(DEPDIR)/getgid32.Po ./$(DEPDIR)/getgroups.Po \ + ./$(DEPDIR)/getgroups32.Po ./$(DEPDIR)/getpeername.Po \ + ./$(DEPDIR)/getpgrp--pidns-translation.Po \ + ./$(DEPDIR)/getpgrp.Po \ + ./$(DEPDIR)/getpid--pidns-translation.Po ./$(DEPDIR)/getpid.Po \ + ./$(DEPDIR)/getppid.Po ./$(DEPDIR)/getrandom.Po \ + ./$(DEPDIR)/getresgid.Po ./$(DEPDIR)/getresgid32.Po \ + ./$(DEPDIR)/getresuid.Po ./$(DEPDIR)/getresuid32.Po \ + ./$(DEPDIR)/getrlimit.Po ./$(DEPDIR)/getrusage.Po \ + ./$(DEPDIR)/getsid--pidns-translation.Po ./$(DEPDIR)/getsid.Po \ + ./$(DEPDIR)/getsockname.Po \ + ./$(DEPDIR)/gettid--pidns-translation.Po ./$(DEPDIR)/gettid.Po \ ./$(DEPDIR)/getuid.Po ./$(DEPDIR)/getuid32.Po \ - ./$(DEPDIR)/getxxid.Po ./$(DEPDIR)/group_req.Po \ + ./$(DEPDIR)/getxgid.Po ./$(DEPDIR)/getxpid.Po \ + ./$(DEPDIR)/getxuid.Po ./$(DEPDIR)/group_req.Po \ ./$(DEPDIR)/inet-cmsg.Po ./$(DEPDIR)/init_module.Po \ ./$(DEPDIR)/inject-nf.Po ./$(DEPDIR)/inotify.Po \ - ./$(DEPDIR)/inotify_init1.Po ./$(DEPDIR)/int_0x80.Po \ - ./$(DEPDIR)/io_uring_enter.Po ./$(DEPDIR)/io_uring_register.Po \ - ./$(DEPDIR)/io_uring_setup.Po ./$(DEPDIR)/ioctl.Po \ + ./$(DEPDIR)/inotify_init-y.Po ./$(DEPDIR)/inotify_init.Po \ + ./$(DEPDIR)/inotify_init1-y.Po ./$(DEPDIR)/inotify_init1.Po \ + ./$(DEPDIR)/int_0x80.Po ./$(DEPDIR)/io_uring_enter.Po \ + ./$(DEPDIR)/io_uring_register.Po ./$(DEPDIR)/io_uring_setup.Po \ + ./$(DEPDIR)/ioctl.Po \ + ./$(DEPDIR)/ioctl_block--pidns-translation.Po \ ./$(DEPDIR)/ioctl_block.Po ./$(DEPDIR)/ioctl_dm-v.Po \ - ./$(DEPDIR)/ioctl_dm.Po ./$(DEPDIR)/ioctl_evdev-success-v.Po \ + ./$(DEPDIR)/ioctl_dm.Po ./$(DEPDIR)/ioctl_evdev-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_evdev-Xraw.Po \ + ./$(DEPDIR)/ioctl_evdev-Xverbose.Po \ + ./$(DEPDIR)/ioctl_evdev-success-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_evdev-success-Xraw.Po \ + ./$(DEPDIR)/ioctl_evdev-success-Xverbose.Po \ + ./$(DEPDIR)/ioctl_evdev-success-v-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_evdev-success-v-Xraw.Po \ + ./$(DEPDIR)/ioctl_evdev-success-v-Xverbose.Po \ + ./$(DEPDIR)/ioctl_evdev-success-v.Po \ ./$(DEPDIR)/ioctl_evdev-success.Po \ + ./$(DEPDIR)/ioctl_evdev-v-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_evdev-v-Xraw.Po \ + ./$(DEPDIR)/ioctl_evdev-v-Xverbose.Po \ ./$(DEPDIR)/ioctl_evdev-v.Po ./$(DEPDIR)/ioctl_evdev.Po \ + ./$(DEPDIR)/ioctl_hdio-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_hdio-Xraw.Po \ + ./$(DEPDIR)/ioctl_hdio-Xverbose.Po \ + ./$(DEPDIR)/ioctl_hdio-success-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_hdio-success-Xraw.Po \ + ./$(DEPDIR)/ioctl_hdio-success-Xverbose.Po \ + ./$(DEPDIR)/ioctl_hdio-success-v-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_hdio-success-v-Xraw.Po \ + ./$(DEPDIR)/ioctl_hdio-success-v-Xverbose.Po \ + ./$(DEPDIR)/ioctl_hdio-success-v.Po \ + ./$(DEPDIR)/ioctl_hdio-success.Po \ + ./$(DEPDIR)/ioctl_hdio-v-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_hdio-v-Xraw.Po \ + ./$(DEPDIR)/ioctl_hdio-v-Xverbose.Po \ + ./$(DEPDIR)/ioctl_hdio-v.Po ./$(DEPDIR)/ioctl_hdio.Po \ ./$(DEPDIR)/ioctl_inotify.Po ./$(DEPDIR)/ioctl_kvm_run-v.Po \ ./$(DEPDIR)/ioctl_kvm_run.Po \ ./$(DEPDIR)/ioctl_kvm_run_auxstr_vcpu.Po \ @@ -2981,21 +4142,38 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/ioctl_rtc-v.Po ./$(DEPDIR)/ioctl_rtc.Po \ ./$(DEPDIR)/ioctl_scsi.Po ./$(DEPDIR)/ioctl_sg_io_v3.Po \ ./$(DEPDIR)/ioctl_sg_io_v4.Po \ - ./$(DEPDIR)/ioctl_sock_gifconf.Po ./$(DEPDIR)/ioctl_uffdio.Po \ - ./$(DEPDIR)/ioctl_v4l2.Po ./$(DEPDIR)/ioperm.Po \ - ./$(DEPDIR)/iopl.Po ./$(DEPDIR)/ioprio-Xabbrev.Po \ - ./$(DEPDIR)/ioprio-Xraw.Po ./$(DEPDIR)/ioprio-Xverbose.Po \ - ./$(DEPDIR)/ioprio.Po ./$(DEPDIR)/ip_mreq.Po \ - ./$(DEPDIR)/ipc.Po ./$(DEPDIR)/ipc_msg-Xabbrev.Po \ - ./$(DEPDIR)/ipc_msg-Xraw.Po ./$(DEPDIR)/ipc_msg-Xverbose.Po \ - ./$(DEPDIR)/ipc_msg.Po ./$(DEPDIR)/ipc_msgbuf-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_sock_gifconf.Po ./$(DEPDIR)/ioctl_tee.Po \ + ./$(DEPDIR)/ioctl_uffdio.Po ./$(DEPDIR)/ioctl_v4l2-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_v4l2-Xraw.Po \ + ./$(DEPDIR)/ioctl_v4l2-Xverbose.Po \ + ./$(DEPDIR)/ioctl_v4l2-success-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_v4l2-success-Xraw.Po \ + ./$(DEPDIR)/ioctl_v4l2-success-Xverbose.Po \ + ./$(DEPDIR)/ioctl_v4l2-success-v-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_v4l2-success-v-Xraw.Po \ + ./$(DEPDIR)/ioctl_v4l2-success-v-Xverbose.Po \ + ./$(DEPDIR)/ioctl_v4l2-success-v.Po \ + ./$(DEPDIR)/ioctl_v4l2-success.Po \ + ./$(DEPDIR)/ioctl_v4l2-v-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_v4l2-v-Xraw.Po \ + ./$(DEPDIR)/ioctl_v4l2-v-Xverbose.Po \ + ./$(DEPDIR)/ioctl_v4l2-v.Po ./$(DEPDIR)/ioctl_v4l2.Po \ + ./$(DEPDIR)/ioctl_watchdog.Po ./$(DEPDIR)/ioperm.Po \ + ./$(DEPDIR)/iopl.Po ./$(DEPDIR)/ioprio--pidns-translation.Po \ + ./$(DEPDIR)/ioprio-Xabbrev.Po ./$(DEPDIR)/ioprio-Xraw.Po \ + ./$(DEPDIR)/ioprio-Xverbose.Po ./$(DEPDIR)/ioprio.Po \ + ./$(DEPDIR)/ip_mreq.Po ./$(DEPDIR)/ipc.Po \ + ./$(DEPDIR)/ipc_msg-Xabbrev.Po ./$(DEPDIR)/ipc_msg-Xraw.Po \ + ./$(DEPDIR)/ipc_msg-Xverbose.Po ./$(DEPDIR)/ipc_msg.Po \ + ./$(DEPDIR)/ipc_msgbuf-Xabbrev.Po \ ./$(DEPDIR)/ipc_msgbuf-Xraw.Po \ ./$(DEPDIR)/ipc_msgbuf-Xverbose.Po ./$(DEPDIR)/ipc_msgbuf.Po \ ./$(DEPDIR)/ipc_sem-Xabbrev.Po ./$(DEPDIR)/ipc_sem-Xraw.Po \ ./$(DEPDIR)/ipc_sem-Xverbose.Po ./$(DEPDIR)/ipc_sem.Po \ ./$(DEPDIR)/ipc_shm-Xabbrev.Po ./$(DEPDIR)/ipc_shm-Xraw.Po \ ./$(DEPDIR)/ipc_shm-Xverbose.Po ./$(DEPDIR)/ipc_shm.Po \ - ./$(DEPDIR)/is_linux_mips_n64.Po ./$(DEPDIR)/kcmp-y.Po \ + ./$(DEPDIR)/is_linux_mips_n64.Po \ + ./$(DEPDIR)/kcmp-y--pidns-translation.Po ./$(DEPDIR)/kcmp-y.Po \ ./$(DEPDIR)/kcmp.Po ./$(DEPDIR)/kern_features.Po \ ./$(DEPDIR)/kernel_version-Xabbrev.Po \ ./$(DEPDIR)/kernel_version-Xraw.Po \ @@ -3003,10 +4181,12 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/kernel_version.Po ./$(DEPDIR)/kexec_file_load.Po \ ./$(DEPDIR)/kexec_load.Po ./$(DEPDIR)/keyctl-Xabbrev.Po \ ./$(DEPDIR)/keyctl-Xraw.Po ./$(DEPDIR)/keyctl-Xverbose.Po \ - ./$(DEPDIR)/keyctl.Po ./$(DEPDIR)/kill.Po \ - ./$(DEPDIR)/kill_child.Po ./$(DEPDIR)/ksysent.Po \ - ./$(DEPDIR)/lchown.Po ./$(DEPDIR)/lchown32.Po \ + ./$(DEPDIR)/keyctl.Po ./$(DEPDIR)/kill--pidns-translation.Po \ + ./$(DEPDIR)/kill.Po ./$(DEPDIR)/kill_child.Po \ + ./$(DEPDIR)/ksysent.Po ./$(DEPDIR)/lchown.Po \ + ./$(DEPDIR)/lchown32.Po \ ./$(DEPDIR)/libtests_a-create_nl_socket.Po \ + ./$(DEPDIR)/libtests_a-create_tmpfile.Po \ ./$(DEPDIR)/libtests_a-errno2name.Po \ ./$(DEPDIR)/libtests_a-error_msg.Po \ ./$(DEPDIR)/libtests_a-fill_memory.Po \ @@ -3018,37 +4198,48 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/libtests_a-inode_of_sockfd.Po \ ./$(DEPDIR)/libtests_a-libmmsg.Po \ ./$(DEPDIR)/libtests_a-libsocketcall.Po \ + ./$(DEPDIR)/libtests_a-lock_file.Po \ ./$(DEPDIR)/libtests_a-overflowuid.Po \ + ./$(DEPDIR)/libtests_a-pidns.Po \ ./$(DEPDIR)/libtests_a-pipe_maxfd.Po \ ./$(DEPDIR)/libtests_a-print_quoted_string.Po \ ./$(DEPDIR)/libtests_a-print_time.Po \ ./$(DEPDIR)/libtests_a-printflags.Po \ - ./$(DEPDIR)/libtests_a-printxval.Po \ + ./$(DEPDIR)/libtests_a-printxval-Xabbrev.Po \ + ./$(DEPDIR)/libtests_a-printxval-Xraw.Po \ + ./$(DEPDIR)/libtests_a-printxval-Xverbose.Po \ ./$(DEPDIR)/libtests_a-signal2name.Po \ ./$(DEPDIR)/libtests_a-skip_unavailable.Po \ ./$(DEPDIR)/libtests_a-sprintrc.Po \ + ./$(DEPDIR)/libtests_a-status.Po \ ./$(DEPDIR)/libtests_a-tail_alloc.Po \ ./$(DEPDIR)/libtests_a-test_printpath.Po \ ./$(DEPDIR)/libtests_a-test_printstrn.Po \ ./$(DEPDIR)/libtests_a-test_ucopy.Po \ - ./$(DEPDIR)/libtests_a-tprintf.Po ./$(DEPDIR)/link.Po \ - ./$(DEPDIR)/linkat.Po ./$(DEPDIR)/list_sigaction_signum.Po \ - ./$(DEPDIR)/llseek.Po ./$(DEPDIR)/localtime.Po \ - ./$(DEPDIR)/lookup_dcookie.Po ./$(DEPDIR)/looping_threads.Po \ - ./$(DEPDIR)/lseek.Po ./$(DEPDIR)/lstat.Po \ - ./$(DEPDIR)/lstat64-lstat64.Po ./$(DEPDIR)/madvise.Po \ - ./$(DEPDIR)/mbind.Po ./$(DEPDIR)/membarrier.Po \ - ./$(DEPDIR)/memfd_create-Xabbrev.Po \ + ./$(DEPDIR)/libtests_a-tprintf.Po \ + ./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po \ + ./$(DEPDIR)/link.Po ./$(DEPDIR)/linkat.Po \ + ./$(DEPDIR)/list_sigaction_signum.Po ./$(DEPDIR)/llseek.Po \ + ./$(DEPDIR)/localtime.Po ./$(DEPDIR)/lookup_dcookie.Po \ + ./$(DEPDIR)/looping_threads.Po ./$(DEPDIR)/lseek.Po \ + ./$(DEPDIR)/lstat.Po ./$(DEPDIR)/lstat64-lstat64.Po \ + ./$(DEPDIR)/madvise.Po \ + ./$(DEPDIR)/maybe_switch_current_tcp--quiet-thread-execve.Po \ + ./$(DEPDIR)/maybe_switch_current_tcp.Po \ + ./$(DEPDIR)/mbind-Xabbrev.Po ./$(DEPDIR)/mbind-Xraw.Po \ + ./$(DEPDIR)/mbind-Xverbose.Po ./$(DEPDIR)/mbind.Po \ + ./$(DEPDIR)/membarrier.Po ./$(DEPDIR)/memfd_create-Xabbrev.Po \ ./$(DEPDIR)/memfd_create-Xraw.Po \ ./$(DEPDIR)/memfd_create-Xverbose.Po \ - ./$(DEPDIR)/memfd_create.Po ./$(DEPDIR)/migrate_pages.Po \ - ./$(DEPDIR)/mincore.Po ./$(DEPDIR)/mkdir.Po \ - ./$(DEPDIR)/mkdirat.Po ./$(DEPDIR)/mknod.Po \ - ./$(DEPDIR)/mknodat.Po ./$(DEPDIR)/mlock.Po \ - ./$(DEPDIR)/mlock2.Po ./$(DEPDIR)/mlockall.Po \ - ./$(DEPDIR)/mmap-Xabbrev.Po ./$(DEPDIR)/mmap-Xraw.Po \ - ./$(DEPDIR)/mmap-Xverbose.Po ./$(DEPDIR)/mmap.Po \ - ./$(DEPDIR)/mmap64-mmap64.Po \ + ./$(DEPDIR)/memfd_create.Po \ + ./$(DEPDIR)/migrate_pages--pidns-translation.Po \ + ./$(DEPDIR)/migrate_pages.Po ./$(DEPDIR)/mincore.Po \ + ./$(DEPDIR)/mkdir.Po ./$(DEPDIR)/mkdirat.Po \ + ./$(DEPDIR)/mknod.Po ./$(DEPDIR)/mknodat.Po \ + ./$(DEPDIR)/mlock.Po ./$(DEPDIR)/mlock2.Po \ + ./$(DEPDIR)/mlockall.Po ./$(DEPDIR)/mmap-Xabbrev.Po \ + ./$(DEPDIR)/mmap-Xraw.Po ./$(DEPDIR)/mmap-Xverbose.Po \ + ./$(DEPDIR)/mmap.Po ./$(DEPDIR)/mmap64-mmap64.Po \ ./$(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Po \ ./$(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Po \ ./$(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Po \ @@ -3056,24 +4247,34 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/mmsg_name-v.Po ./$(DEPDIR)/mmsg_name.Po \ ./$(DEPDIR)/modify_ldt.Po ./$(DEPDIR)/mount-Xabbrev.Po \ ./$(DEPDIR)/mount-Xraw.Po ./$(DEPDIR)/mount-Xverbose.Po \ - ./$(DEPDIR)/mount.Po ./$(DEPDIR)/move_pages-Xabbrev.Po \ + ./$(DEPDIR)/mount.Po ./$(DEPDIR)/move_mount-P.Po \ + ./$(DEPDIR)/move_mount.Po \ + ./$(DEPDIR)/move_pages--pidns-translation.Po \ + ./$(DEPDIR)/move_pages-Xabbrev.Po \ ./$(DEPDIR)/move_pages-Xraw.Po \ ./$(DEPDIR)/move_pages-Xverbose.Po ./$(DEPDIR)/move_pages.Po \ ./$(DEPDIR)/mq.Po ./$(DEPDIR)/mq_sendrecv-read.Po \ ./$(DEPDIR)/mq_sendrecv-write.Po ./$(DEPDIR)/mq_sendrecv.Po \ ./$(DEPDIR)/msg_control-v.Po ./$(DEPDIR)/msg_control.Po \ ./$(DEPDIR)/msg_name.Po ./$(DEPDIR)/munlockall.Po \ - ./$(DEPDIR)/nanosleep.Po ./$(DEPDIR)/net-accept-connect.Po \ + ./$(DEPDIR)/nanosleep.Po \ + ./$(DEPDIR)/net--decode-fds-dev-netlink.Po \ + ./$(DEPDIR)/net--decode-fds-none-netlink.Po \ + ./$(DEPDIR)/net--decode-fds-path-netlink.Po \ + ./$(DEPDIR)/net--decode-fds-socket-netlink.Po \ + ./$(DEPDIR)/net-accept-connect.Po \ ./$(DEPDIR)/net-icmp_filter.Po \ ./$(DEPDIR)/net-packet_mreq-Xabbrev.Po \ ./$(DEPDIR)/net-packet_mreq-Xraw.Po \ ./$(DEPDIR)/net-packet_mreq-Xverbose.Po \ - ./$(DEPDIR)/net-packet_mreq.Po ./$(DEPDIR)/net-sockaddr.Po \ - ./$(DEPDIR)/net-tpacket_req.Po \ + ./$(DEPDIR)/net-packet_mreq.Po \ + ./$(DEPDIR)/net-sockaddr--pidns-translation.Po \ + ./$(DEPDIR)/net-sockaddr.Po ./$(DEPDIR)/net-tpacket_req.Po \ ./$(DEPDIR)/net-tpacket_stats-success.Po \ ./$(DEPDIR)/net-tpacket_stats.Po ./$(DEPDIR)/net-y-unix.Po \ ./$(DEPDIR)/net-yy-inet.Po ./$(DEPDIR)/net-yy-inet6.Po \ ./$(DEPDIR)/net-yy-netlink.Po ./$(DEPDIR)/net-yy-unix.Po \ + ./$(DEPDIR)/netlink_audit--pidns-translation.Po \ ./$(DEPDIR)/netlink_audit.Po ./$(DEPDIR)/netlink_crypto.Po \ ./$(DEPDIR)/netlink_generic.Po \ ./$(DEPDIR)/netlink_inet_diag.Po \ @@ -3104,7 +4305,9 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/nlattr_ifla_af_spec.Po \ ./$(DEPDIR)/nlattr_ifla_brport.Po \ ./$(DEPDIR)/nlattr_ifla_linkinfo.Po \ - ./$(DEPDIR)/nlattr_ifla_port.Po ./$(DEPDIR)/nlattr_ifla_xdp.Po \ + ./$(DEPDIR)/nlattr_ifla_port.Po \ + ./$(DEPDIR)/nlattr_ifla_xdp-y.Po \ + ./$(DEPDIR)/nlattr_ifla_xdp.Po \ ./$(DEPDIR)/nlattr_inet_diag_msg.Po \ ./$(DEPDIR)/nlattr_inet_diag_req_compat.Po \ ./$(DEPDIR)/nlattr_inet_diag_req_v2.Po \ @@ -3128,7 +4331,14 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/oldselect-P.Po ./$(DEPDIR)/oldselect-efault-P.Po \ ./$(DEPDIR)/oldselect-efault.Po ./$(DEPDIR)/oldselect.Po \ ./$(DEPDIR)/oldstat.Po ./$(DEPDIR)/open.Po \ - ./$(DEPDIR)/openat.Po ./$(DEPDIR)/orphaned_process_group.Po \ + ./$(DEPDIR)/open_tree-P.Po ./$(DEPDIR)/open_tree.Po \ + ./$(DEPDIR)/openat.Po ./$(DEPDIR)/openat2-Xabbrev.Po \ + ./$(DEPDIR)/openat2-Xraw.Po ./$(DEPDIR)/openat2-Xverbose.Po \ + ./$(DEPDIR)/openat2-v-y-Xabbrev.Po \ + ./$(DEPDIR)/openat2-v-y-Xraw.Po \ + ./$(DEPDIR)/openat2-v-y-Xverbose.Po ./$(DEPDIR)/openat2-v-y.Po \ + ./$(DEPDIR)/openat2-v.Po ./$(DEPDIR)/openat2-y.Po \ + ./$(DEPDIR)/openat2.Po ./$(DEPDIR)/orphaned_process_group.Po \ ./$(DEPDIR)/osf_utimes.Po ./$(DEPDIR)/pause.Po \ ./$(DEPDIR)/pc.Po ./$(DEPDIR)/perf_event_open.Po \ ./$(DEPDIR)/perf_event_open_nonverbose.Po \ @@ -3136,14 +4346,24 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/personality-Xabbrev.Po \ ./$(DEPDIR)/personality-Xraw.Po \ ./$(DEPDIR)/personality-Xverbose.Po ./$(DEPDIR)/personality.Po \ - ./$(DEPDIR)/pidfd_send_signal.Po ./$(DEPDIR)/pipe.Po \ - ./$(DEPDIR)/pipe2.Po ./$(DEPDIR)/pkey_alloc.Po \ - ./$(DEPDIR)/pkey_free.Po ./$(DEPDIR)/pkey_mprotect.Po \ - ./$(DEPDIR)/poll-P.Po ./$(DEPDIR)/poll.Po \ - ./$(DEPDIR)/ppoll-P.Po ./$(DEPDIR)/ppoll-v.Po \ - ./$(DEPDIR)/ppoll.Po ./$(DEPDIR)/prctl-arg2-intptr.Po \ - ./$(DEPDIR)/prctl-dumpable.Po ./$(DEPDIR)/prctl-name.Po \ - ./$(DEPDIR)/prctl-no-args.Po ./$(DEPDIR)/prctl-pdeathsig.Po \ + ./$(DEPDIR)/pidfd_getfd-y.Po ./$(DEPDIR)/pidfd_getfd-yy.Po \ + ./$(DEPDIR)/pidfd_getfd.Po \ + ./$(DEPDIR)/pidfd_open--decode-fd-path.Po \ + ./$(DEPDIR)/pidfd_open--decode-fd-pidfd.Po \ + ./$(DEPDIR)/pidfd_open--decode-fd-socket.Po \ + ./$(DEPDIR)/pidfd_open--pidns-translation.Po \ + ./$(DEPDIR)/pidfd_open-P.Po ./$(DEPDIR)/pidfd_open-y.Po \ + ./$(DEPDIR)/pidfd_open-yy.Po ./$(DEPDIR)/pidfd_open.Po \ + ./$(DEPDIR)/pidfd_send_signal--pidns-translation.Po \ + ./$(DEPDIR)/pidfd_send_signal.Po ./$(DEPDIR)/pidns-cache.Po \ + ./$(DEPDIR)/pipe.Po ./$(DEPDIR)/pipe2.Po \ + ./$(DEPDIR)/pkey_alloc.Po ./$(DEPDIR)/pkey_free.Po \ + ./$(DEPDIR)/pkey_mprotect.Po ./$(DEPDIR)/poll-P.Po \ + ./$(DEPDIR)/poll.Po ./$(DEPDIR)/ppoll-P.Po \ + ./$(DEPDIR)/ppoll-v.Po ./$(DEPDIR)/ppoll.Po \ + ./$(DEPDIR)/prctl-arg2-intptr.Po ./$(DEPDIR)/prctl-dumpable.Po \ + ./$(DEPDIR)/prctl-name.Po ./$(DEPDIR)/prctl-no-args.Po \ + ./$(DEPDIR)/prctl-pdeathsig.Po \ ./$(DEPDIR)/prctl-seccomp-filter-v.Po \ ./$(DEPDIR)/prctl-seccomp-strict.Po \ ./$(DEPDIR)/prctl-securebits.Po \ @@ -3152,7 +4372,7 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Po \ ./$(DEPDIR)/preadv-preadv.Po ./$(DEPDIR)/preadv2-pwritev2.Po \ ./$(DEPDIR)/preadv_pwritev-preadv-pwritev.Po \ - ./$(DEPDIR)/print_maxfd.Po \ + ./$(DEPDIR)/print_maxfd.Po ./$(DEPDIR)/print_ppid_tracerpid.Po \ ./$(DEPDIR)/printpath-umovestr-peekdata.Po \ ./$(DEPDIR)/printpath-umovestr-undumpable.Po \ ./$(DEPDIR)/printpath-umovestr.Po \ @@ -3161,8 +4381,12 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/printsignal-Xverbose.Po ./$(DEPDIR)/printstr.Po \ ./$(DEPDIR)/printstrn-umoven-peekdata.Po \ ./$(DEPDIR)/printstrn-umoven-undumpable.Po \ - ./$(DEPDIR)/printstrn-umoven.Po ./$(DEPDIR)/prlimit64.Po \ + ./$(DEPDIR)/printstrn-umoven.Po \ + ./$(DEPDIR)/prlimit64--pidns-translation.Po \ + ./$(DEPDIR)/prlimit64.Po \ + ./$(DEPDIR)/process_vm_readv--pidns-translation.Po \ ./$(DEPDIR)/process_vm_readv.Po \ + ./$(DEPDIR)/process_vm_writev--pidns-translation.Po \ ./$(DEPDIR)/process_vm_writev.Po ./$(DEPDIR)/pselect6.Po \ ./$(DEPDIR)/ptrace.Po ./$(DEPDIR)/ptrace_syscall_info.Po \ ./$(DEPDIR)/pwritev-pwritev.Po ./$(DEPDIR)/qual_fault.Po \ @@ -3180,8 +4404,10 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/readahead.Po ./$(DEPDIR)/readdir.Po \ ./$(DEPDIR)/readlink.Po ./$(DEPDIR)/readlinkat.Po \ ./$(DEPDIR)/readv.Po ./$(DEPDIR)/reboot.Po \ - ./$(DEPDIR)/recvfrom.Po ./$(DEPDIR)/recvmmsg-timeout.Po \ - ./$(DEPDIR)/recvmsg.Po ./$(DEPDIR)/redirect-fds.Po \ + ./$(DEPDIR)/recv-MSG_TRUNC.Po \ + ./$(DEPDIR)/recvfrom-MSG_TRUNC.Po ./$(DEPDIR)/recvfrom.Po \ + ./$(DEPDIR)/recvmmsg-timeout.Po ./$(DEPDIR)/recvmsg.Po \ + ./$(DEPDIR)/redirect-fds.Po \ ./$(DEPDIR)/remap_file_pages-Xabbrev.Po \ ./$(DEPDIR)/remap_file_pages-Xraw.Po \ ./$(DEPDIR)/remap_file_pages-Xverbose.Po \ @@ -3190,9 +4416,11 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/request_key.Po ./$(DEPDIR)/restart_syscall.Po \ ./$(DEPDIR)/riscv_flush_icache.Po ./$(DEPDIR)/rmdir.Po \ ./$(DEPDIR)/rt_sigaction.Po ./$(DEPDIR)/rt_sigpending.Po \ - ./$(DEPDIR)/rt_sigprocmask.Po ./$(DEPDIR)/rt_sigqueueinfo.Po \ - ./$(DEPDIR)/rt_sigreturn.Po ./$(DEPDIR)/rt_sigsuspend.Po \ - ./$(DEPDIR)/rt_sigtimedwait.Po \ + ./$(DEPDIR)/rt_sigprocmask.Po \ + ./$(DEPDIR)/rt_sigqueueinfo--pidns-translation.Po \ + ./$(DEPDIR)/rt_sigqueueinfo.Po ./$(DEPDIR)/rt_sigreturn.Po \ + ./$(DEPDIR)/rt_sigsuspend.Po ./$(DEPDIR)/rt_sigtimedwait.Po \ + ./$(DEPDIR)/rt_tgsigqueueinfo--pidns-translation.Po \ ./$(DEPDIR)/rt_tgsigqueueinfo.Po \ ./$(DEPDIR)/run_expect_termsig.Po \ ./$(DEPDIR)/s390_guarded_storage-v.Po \ @@ -3202,22 +4430,31 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/s390_sthyi.Po \ ./$(DEPDIR)/sched_get_priority_mxx.Po \ ./$(DEPDIR)/sched_rr_get_interval.Po \ - ./$(DEPDIR)/sched_xetaffinity.Po ./$(DEPDIR)/sched_xetattr.Po \ + ./$(DEPDIR)/sched_xetaffinity--pidns-translation.Po \ + ./$(DEPDIR)/sched_xetaffinity.Po \ + ./$(DEPDIR)/sched_xetattr--pidns-translation.Po \ + ./$(DEPDIR)/sched_xetattr.Po \ + ./$(DEPDIR)/sched_xetparam--pidns-translation.Po \ ./$(DEPDIR)/sched_xetparam.Po \ + ./$(DEPDIR)/sched_xetscheduler--pidns-translation.Po \ ./$(DEPDIR)/sched_xetscheduler.Po ./$(DEPDIR)/sched_yield.Po \ ./$(DEPDIR)/scm_rights.Po ./$(DEPDIR)/seccomp-filter-v.Po \ ./$(DEPDIR)/seccomp-filter.Po ./$(DEPDIR)/seccomp-strict.Po \ ./$(DEPDIR)/seccomp_get_action_avail.Po \ ./$(DEPDIR)/select-P.Po ./$(DEPDIR)/select.Po \ - ./$(DEPDIR)/semop.Po ./$(DEPDIR)/sendfile.Po \ - ./$(DEPDIR)/sendfile64.Po ./$(DEPDIR)/set_mempolicy.Po \ - ./$(DEPDIR)/set_ptracer_any.Po ./$(DEPDIR)/set_sigblock.Po \ - ./$(DEPDIR)/set_sigign.Po ./$(DEPDIR)/setdomainname.Po \ - ./$(DEPDIR)/setfsgid.Po ./$(DEPDIR)/setfsgid32.Po \ - ./$(DEPDIR)/setfsuid.Po ./$(DEPDIR)/setfsuid32.Po \ - ./$(DEPDIR)/setgid.Po ./$(DEPDIR)/setgid32.Po \ - ./$(DEPDIR)/setgroups.Po ./$(DEPDIR)/setgroups32.Po \ - ./$(DEPDIR)/sethostname.Po ./$(DEPDIR)/setns.Po \ + ./$(DEPDIR)/semop-indirect.Po ./$(DEPDIR)/semop.Po \ + ./$(DEPDIR)/semtimedop.Po ./$(DEPDIR)/sendfile.Po \ + ./$(DEPDIR)/sendfile64.Po ./$(DEPDIR)/set_mempolicy-Xabbrev.Po \ + ./$(DEPDIR)/set_mempolicy-Xraw.Po \ + ./$(DEPDIR)/set_mempolicy-Xverbose.Po \ + ./$(DEPDIR)/set_mempolicy.Po ./$(DEPDIR)/set_ptracer_any.Po \ + ./$(DEPDIR)/set_sigblock.Po ./$(DEPDIR)/set_sigign.Po \ + ./$(DEPDIR)/setdomainname.Po ./$(DEPDIR)/setfsgid.Po \ + ./$(DEPDIR)/setfsgid32.Po ./$(DEPDIR)/setfsuid.Po \ + ./$(DEPDIR)/setfsuid32.Po ./$(DEPDIR)/setgid.Po \ + ./$(DEPDIR)/setgid32.Po ./$(DEPDIR)/setgroups.Po \ + ./$(DEPDIR)/setgroups32.Po ./$(DEPDIR)/sethostname.Po \ + ./$(DEPDIR)/setns.Po ./$(DEPDIR)/setpgrp-exec.Po \ ./$(DEPDIR)/setregid.Po ./$(DEPDIR)/setregid32.Po \ ./$(DEPDIR)/setresgid.Po ./$(DEPDIR)/setresgid32.Po \ ./$(DEPDIR)/setresuid.Po ./$(DEPDIR)/setresuid32.Po \ @@ -3228,11 +4465,14 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/shmxt.Po ./$(DEPDIR)/shutdown.Po \ ./$(DEPDIR)/sigaction.Po ./$(DEPDIR)/sigaltstack.Po \ ./$(DEPDIR)/siginfo.Po ./$(DEPDIR)/signal.Po \ + ./$(DEPDIR)/signal_receive--pidns-translation.Po \ ./$(DEPDIR)/signal_receive.Po ./$(DEPDIR)/signalfd4.Po \ ./$(DEPDIR)/sigpending.Po ./$(DEPDIR)/sigprocmask.Po \ ./$(DEPDIR)/sigreturn.Po ./$(DEPDIR)/sigsuspend.Po \ ./$(DEPDIR)/sleep.Po ./$(DEPDIR)/so_error.Po \ - ./$(DEPDIR)/so_linger.Po ./$(DEPDIR)/so_peercred-Xabbrev.Po \ + ./$(DEPDIR)/so_linger.Po \ + ./$(DEPDIR)/so_peercred--pidns-translation.Po \ + ./$(DEPDIR)/so_peercred-Xabbrev.Po \ ./$(DEPDIR)/so_peercred-Xraw.Po \ ./$(DEPDIR)/so_peercred-Xverbose.Po ./$(DEPDIR)/so_peercred.Po \ ./$(DEPDIR)/sock_filter-v-Xabbrev.Po \ @@ -3246,6 +4486,7 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/sockopt-timestamp.Po ./$(DEPDIR)/splice.Po \ ./$(DEPDIR)/stack-fcall-0.Po ./$(DEPDIR)/stack-fcall-1.Po \ ./$(DEPDIR)/stack-fcall-2.Po ./$(DEPDIR)/stack-fcall-3.Po \ + ./$(DEPDIR)/stack-fcall-attach.Po \ ./$(DEPDIR)/stack-fcall-mangled-0.Po \ ./$(DEPDIR)/stack-fcall-mangled-1.Po \ ./$(DEPDIR)/stack-fcall-mangled-2.Po \ @@ -3253,22 +4494,45 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/stack-fcall-mangled.Po ./$(DEPDIR)/stack-fcall.Po \ ./$(DEPDIR)/stat.Po ./$(DEPDIR)/stat64-stat64.Po \ ./$(DEPDIR)/statfs-statfs.Po ./$(DEPDIR)/statfs64.Po \ - ./$(DEPDIR)/statx.Po ./$(DEPDIR)/swap.Po \ - ./$(DEPDIR)/sxetmask.Po ./$(DEPDIR)/symlink.Po \ - ./$(DEPDIR)/symlinkat.Po ./$(DEPDIR)/sync.Po \ - ./$(DEPDIR)/sync_file_range.Po ./$(DEPDIR)/sync_file_range2.Po \ - ./$(DEPDIR)/sysinfo.Po ./$(DEPDIR)/syslog.Po \ - ./$(DEPDIR)/tee.Po ./$(DEPDIR)/threads-execve.Po \ - ./$(DEPDIR)/time.Po ./$(DEPDIR)/timer_create.Po \ - ./$(DEPDIR)/timer_xettime.Po ./$(DEPDIR)/timerfd_xettime.Po \ - ./$(DEPDIR)/times-fail.Po ./$(DEPDIR)/times.Po \ - ./$(DEPDIR)/truncate.Po ./$(DEPDIR)/truncate64-truncate64.Po \ - ./$(DEPDIR)/ugetrlimit.Po ./$(DEPDIR)/uio-uio.Po \ - ./$(DEPDIR)/umask.Po ./$(DEPDIR)/umount.Po \ - ./$(DEPDIR)/umount2.Po ./$(DEPDIR)/umoven-illptr.Po \ - ./$(DEPDIR)/umovestr-illptr.Po ./$(DEPDIR)/umovestr.Po \ - ./$(DEPDIR)/umovestr2.Po ./$(DEPDIR)/umovestr3.Po \ - ./$(DEPDIR)/uname.Po ./$(DEPDIR)/unblock_reset_raise.Po \ + ./$(DEPDIR)/status-all.Po ./$(DEPDIR)/status-failed-long.Po \ + ./$(DEPDIR)/status-failed-status.Po \ + ./$(DEPDIR)/status-failed.Po ./$(DEPDIR)/status-none-f.Po \ + ./$(DEPDIR)/status-none-threads.Po ./$(DEPDIR)/status-none.Po \ + ./$(DEPDIR)/status-successful-long.Po \ + ./$(DEPDIR)/status-successful-status.Po \ + ./$(DEPDIR)/status-successful.Po \ + ./$(DEPDIR)/status-unfinished-threads.Po \ + ./$(DEPDIR)/status-unfinished.Po ./$(DEPDIR)/statx.Po \ + ./$(DEPDIR)/strace--strings-in-hex-all.Po \ + ./$(DEPDIR)/strace--strings-in-hex-non-ascii.Po \ + ./$(DEPDIR)/strace--strings-in-hex.Po ./$(DEPDIR)/strace-n.Po \ + ./$(DEPDIR)/strace-x.Po ./$(DEPDIR)/strace-xx.Po \ + ./$(DEPDIR)/swap.Po ./$(DEPDIR)/sxetmask.Po \ + ./$(DEPDIR)/symlink.Po ./$(DEPDIR)/symlinkat.Po \ + ./$(DEPDIR)/sync.Po ./$(DEPDIR)/sync_file_range.Po \ + ./$(DEPDIR)/sync_file_range2.Po ./$(DEPDIR)/sysinfo.Po \ + ./$(DEPDIR)/syslog-success.Po ./$(DEPDIR)/syslog.Po \ + ./$(DEPDIR)/tee.Po ./$(DEPDIR)/tgkill--pidns-translation.Po \ + ./$(DEPDIR)/tgkill.Po \ + ./$(DEPDIR)/threads-execve--quiet-thread-execve.Po \ + ./$(DEPDIR)/threads-execve-q.Po \ + ./$(DEPDIR)/threads-execve-qq.Po \ + ./$(DEPDIR)/threads-execve-qqq.Po \ + ./$(DEPDIR)/threads-execve.Po ./$(DEPDIR)/time.Po \ + ./$(DEPDIR)/timer_create.Po ./$(DEPDIR)/timer_xettime.Po \ + ./$(DEPDIR)/timerfd_xettime.Po ./$(DEPDIR)/times-fail.Po \ + ./$(DEPDIR)/times.Po ./$(DEPDIR)/tkill--pidns-translation.Po \ + ./$(DEPDIR)/tkill.Po ./$(DEPDIR)/tracer_ppid_pgid_sid.Po \ + ./$(DEPDIR)/trie_test-trie_for_tests.Po \ + ./$(DEPDIR)/trie_test-trie_test.Po ./$(DEPDIR)/truncate.Po \ + ./$(DEPDIR)/truncate64-truncate64.Po ./$(DEPDIR)/ugetrlimit.Po \ + ./$(DEPDIR)/uio-uio.Po ./$(DEPDIR)/umask.Po \ + ./$(DEPDIR)/umount.Po ./$(DEPDIR)/umount2.Po \ + ./$(DEPDIR)/umoven-illptr.Po ./$(DEPDIR)/umovestr-illptr.Po \ + ./$(DEPDIR)/umovestr.Po ./$(DEPDIR)/umovestr2.Po \ + ./$(DEPDIR)/umovestr3.Po ./$(DEPDIR)/umovestr_cached.Po \ + ./$(DEPDIR)/umovestr_cached_adjacent.Po ./$(DEPDIR)/uname.Po \ + ./$(DEPDIR)/unblock_reset_raise.Po \ ./$(DEPDIR)/unix-pair-send-recv.Po \ ./$(DEPDIR)/unix-pair-sendto-recvfrom.Po ./$(DEPDIR)/unlink.Po \ ./$(DEPDIR)/unlinkat.Po ./$(DEPDIR)/unshare.Po \ @@ -3281,10 +4545,15 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/wait4-v.Po ./$(DEPDIR)/wait4.Po \ ./$(DEPDIR)/waitid-v.Po ./$(DEPDIR)/waitid.Po \ ./$(DEPDIR)/waitpid.Po ./$(DEPDIR)/xattr-strings.Po \ - ./$(DEPDIR)/xattr.Po ./$(DEPDIR)/xet_robust_list.Po \ + ./$(DEPDIR)/xattr.Po \ + ./$(DEPDIR)/xet_robust_list--pidns-translation.Po \ + ./$(DEPDIR)/xet_robust_list.Po \ ./$(DEPDIR)/xet_thread_area_x86.Po ./$(DEPDIR)/xetitimer.Po \ - ./$(DEPDIR)/xetpgid.Po ./$(DEPDIR)/xetpriority.Po \ - ./$(DEPDIR)/xettimeofday.Po ./$(DEPDIR)/zeroargc.Po + ./$(DEPDIR)/xetpgid--pidns-translation.Po \ + ./$(DEPDIR)/xetpgid.Po \ + ./$(DEPDIR)/xetpriority--pidns-translation.Po \ + ./$(DEPDIR)/xetpriority.Po ./$(DEPDIR)/xettimeofday.Po \ + ./$(DEPDIR)/zeroargc.Po am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -3306,79 +4575,128 @@ SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c accept.c \ accept4.c access.c acct.c add_key.c adjtimex.c aio.c \ aio_pgetevents.c alarm.c answer.c attach-f-p.c \ attach-f-p-cmd.c attach-p-cmd-cmd.c attach-p-cmd-p.c \ - block_reset_raise_run.c bpf.c bpf-obj_get_info_by_fd.c \ - bpf-obj_get_info_by_fd-prog.c bpf-obj_get_info_by_fd-prog-v.c \ - bpf-obj_get_info_by_fd-v.c bpf-success.c bpf-success-v.c \ - bpf-v.c brk.c btrfs.c caps.c caps-abbrev.c check_sigblock.c \ + block_reset_raise_run.c block_reset_run.c bpf.c \ + bpf-obj_get_info_by_fd.c bpf-obj_get_info_by_fd-prog.c \ + bpf-obj_get_info_by_fd-prog-v.c bpf-obj_get_info_by_fd-v.c \ + bpf-success.c bpf-success-long-y.c bpf-success-v.c bpf-v.c \ + brk.c btrfs.c caps.c caps-abbrev.c check_sigblock.c \ check_sigign.c chmod.c chown.c chown32.c chroot.c \ clock_adjtime.c clock_nanosleep.c clock_xettime.c \ - clone_parent.c clone_ptrace.c copy_file_range.c count-f.c \ - creat.c delay.c delete_module.c dev-yy.c dup.c dup2.c dup3.c \ - epoll_create.c epoll_create1.c epoll_ctl.c epoll_pwait.c \ - epoll_wait.c erestartsys.c eventfd.c execve.c execve-v.c \ - execveat.c execveat-v.c faccessat.c fadvise64.c fadvise64_64.c \ + clone-flags.c clone3.c clone3-Xabbrev.c clone3-Xraw.c \ + clone3-Xverbose.c clone3-success.c clone3-success-Xabbrev.c \ + clone3-success-Xraw.c clone3-success-Xverbose.c clone_parent.c \ + clone_parent--quiet-exit.c clone_parent-q.c clone_parent-qq.c \ + clone_ptrace.c clone_ptrace--quiet-attach.c \ + clone_ptrace--quiet-exit.c clone_ptrace-q.c clone_ptrace-qq.c \ + close_range.c close_range-P.c close_range-y.c close_range-yy.c \ + copy_file_range.c count-f.c creat.c delay.c delete_module.c \ + dev--decode-fds-dev.c dev--decode-fds-path.c \ + dev--decode-fds-socket.c dev-yy.c dup.c dup-P.c dup-y.c \ + dup-yy.c dup2.c dup2-P.c dup2-y.c dup2-yy.c dup3.c dup3-P.c \ + dup3-y.c dup3-yy.c epoll_create.c epoll_create1.c epoll_ctl.c \ + epoll_pwait.c epoll_wait.c erestartsys.c eventfd.c execve.c \ + execve-v.c execveat.c execveat-v.c faccessat.c faccessat-P.c \ + faccessat-y.c faccessat-yy.c faccessat2.c faccessat2-P.c \ + faccessat2-y.c faccessat2-yy.c fadvise64.c fadvise64_64.c \ fallocate.c fanotify_init.c fanotify_mark.c \ fanotify_mark-Xabbrev.c fanotify_mark-Xraw.c \ fanotify_mark-Xverbose.c fchdir.c fchmod.c fchmodat.c fchown.c \ - fchown32.c fchownat.c fcntl.c fcntl64.c fdatasync.c fflush.c \ - file_handle.c file_ioctl.c filter-unavailable.c finit_module.c \ - flock.c fork-f.c fstat.c fstat-Xabbrev.c fstat-Xraw.c \ - fstat-Xverbose.c fstat64.c fstat64-Xabbrev.c fstat64-Xraw.c \ - fstat64-Xverbose.c fstatat64.c fstatfs.c fstatfs64.c fsync.c \ - fsync-y.c ftruncate.c ftruncate64.c futex.c futimesat.c \ - get_mempolicy.c getcpu.c getcwd.c getdents.c getdents64.c \ - getegid.c getegid32.c geteuid.c geteuid32.c getgid.c \ - getgid32.c getgroups.c getgroups32.c getpeername.c getpgrp.c \ - getpid.c getppid.c getrandom.c getresgid.c getresgid32.c \ - getresuid.c getresuid32.c getrlimit.c getrusage.c getsid.c \ - getsockname.c gettid.c getuid.c getuid32.c getxxid.c \ - group_req.c inet-cmsg.c init_module.c inject-nf.c inotify.c \ - inotify_init1.c int_0x80.c io_uring_enter.c \ - io_uring_register.c io_uring_setup.c ioctl.c ioctl_block.c \ - ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-success.c \ - ioctl_evdev-success-v.c ioctl_evdev-v.c ioctl_inotify.c \ - ioctl_kvm_run.c ioctl_kvm_run-v.c ioctl_kvm_run_auxstr_vcpu.c \ - ioctl_loop.c ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c \ - ioctl_nbd.c ioctl_nsfs.c ioctl_perf.c ioctl_perf-success.c \ - ioctl_ptp.c ioctl_random.c ioctl_rtc.c ioctl_rtc-v.c \ - ioctl_scsi.c ioctl_sg_io_v3.c ioctl_sg_io_v4.c \ - ioctl_sock_gifconf.c ioctl_uffdio.c ioctl_v4l2.c ioperm.c \ - iopl.c ioprio.c ioprio-Xabbrev.c ioprio-Xraw.c \ - ioprio-Xverbose.c ip_mreq.c ipc.c ipc_msg.c ipc_msg-Xabbrev.c \ - ipc_msg-Xraw.c ipc_msg-Xverbose.c ipc_msgbuf.c \ - ipc_msgbuf-Xabbrev.c ipc_msgbuf-Xraw.c ipc_msgbuf-Xverbose.c \ - ipc_sem.c ipc_sem-Xabbrev.c ipc_sem-Xraw.c ipc_sem-Xverbose.c \ - ipc_shm.c ipc_shm-Xabbrev.c ipc_shm-Xraw.c ipc_shm-Xverbose.c \ - is_linux_mips_n64.c kcmp.c kcmp-y.c kern_features.c \ + fchown32.c fchownat.c fcntl.c fcntl--pidns-translation.c \ + fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \ + file_handle.c file_ioctl.c filter-unavailable.c \ + filter_seccomp-flag.c filter_seccomp-perf.c finit_module.c \ + flock.c fork--pidns-translation.c fork-f.c fsconfig.c \ + fsconfig-P.c fsmount.c fsopen.c fspick.c fspick-P.c fstat.c \ + fstat-Xabbrev.c fstat-Xraw.c fstat-Xverbose.c fstat64.c \ + fstat64-Xabbrev.c fstat64-Xraw.c fstat64-Xverbose.c \ + fstatat64.c fstatfs.c fstatfs64.c fsync.c fsync-y.c \ + ftruncate.c ftruncate64.c futex.c futimesat.c get_mempolicy.c \ + get_process_reaper.c getcpu.c getcwd.c getdents.c getdents-v.c \ + getdents64.c getdents64-v.c getegid.c getegid32.c geteuid.c \ + geteuid32.c getgid.c getgid32.c getgroups.c getgroups32.c \ + getpeername.c getpgrp.c getpgrp--pidns-translation.c getpid.c \ + getpid--pidns-translation.c getppid.c getrandom.c getresgid.c \ + getresgid32.c getresuid.c getresuid32.c getrlimit.c \ + getrusage.c getsid.c getsid--pidns-translation.c getsockname.c \ + gettid.c gettid--pidns-translation.c getuid.c getuid32.c \ + getxgid.c getxpid.c getxuid.c group_req.c inet-cmsg.c \ + init_module.c inject-nf.c inotify.c inotify_init.c \ + inotify_init-y.c inotify_init1.c inotify_init1-y.c int_0x80.c \ + io_uring_enter.c io_uring_register.c io_uring_setup.c ioctl.c \ + ioctl_block.c ioctl_block--pidns-translation.c ioctl_dm.c \ + ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-Xabbrev.c \ + ioctl_evdev-Xraw.c ioctl_evdev-Xverbose.c \ + ioctl_evdev-success.c ioctl_evdev-success-Xabbrev.c \ + ioctl_evdev-success-Xraw.c ioctl_evdev-success-Xverbose.c \ + ioctl_evdev-success-v.c ioctl_evdev-success-v-Xabbrev.c \ + ioctl_evdev-success-v-Xraw.c ioctl_evdev-success-v-Xverbose.c \ + ioctl_evdev-v.c ioctl_evdev-v-Xabbrev.c ioctl_evdev-v-Xraw.c \ + ioctl_evdev-v-Xverbose.c ioctl_hdio.c ioctl_hdio-Xabbrev.c \ + ioctl_hdio-Xraw.c ioctl_hdio-Xverbose.c ioctl_hdio-success.c \ + ioctl_hdio-success-Xabbrev.c ioctl_hdio-success-Xraw.c \ + ioctl_hdio-success-Xverbose.c ioctl_hdio-success-v.c \ + ioctl_hdio-success-v-Xabbrev.c ioctl_hdio-success-v-Xraw.c \ + ioctl_hdio-success-v-Xverbose.c ioctl_hdio-v.c \ + ioctl_hdio-v-Xabbrev.c ioctl_hdio-v-Xraw.c \ + ioctl_hdio-v-Xverbose.c ioctl_inotify.c ioctl_kvm_run.c \ + ioctl_kvm_run-v.c ioctl_kvm_run_auxstr_vcpu.c ioctl_loop.c \ + ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c ioctl_nbd.c \ + ioctl_nsfs.c ioctl_perf.c ioctl_perf-success.c ioctl_ptp.c \ + ioctl_random.c ioctl_rtc.c ioctl_rtc-v.c ioctl_scsi.c \ + ioctl_sg_io_v3.c ioctl_sg_io_v4.c ioctl_sock_gifconf.c \ + ioctl_tee.c ioctl_uffdio.c ioctl_v4l2.c ioctl_v4l2-Xabbrev.c \ + ioctl_v4l2-Xraw.c ioctl_v4l2-Xverbose.c ioctl_v4l2-success.c \ + ioctl_v4l2-success-Xabbrev.c ioctl_v4l2-success-Xraw.c \ + ioctl_v4l2-success-Xverbose.c ioctl_v4l2-success-v.c \ + ioctl_v4l2-success-v-Xabbrev.c ioctl_v4l2-success-v-Xraw.c \ + ioctl_v4l2-success-v-Xverbose.c ioctl_v4l2-v.c \ + ioctl_v4l2-v-Xabbrev.c ioctl_v4l2-v-Xraw.c \ + ioctl_v4l2-v-Xverbose.c ioctl_watchdog.c ioperm.c iopl.c \ + ioprio.c ioprio--pidns-translation.c ioprio-Xabbrev.c \ + ioprio-Xraw.c ioprio-Xverbose.c ip_mreq.c ipc.c ipc_msg.c \ + ipc_msg-Xabbrev.c ipc_msg-Xraw.c ipc_msg-Xverbose.c \ + ipc_msgbuf.c ipc_msgbuf-Xabbrev.c ipc_msgbuf-Xraw.c \ + ipc_msgbuf-Xverbose.c ipc_sem.c ipc_sem-Xabbrev.c \ + ipc_sem-Xraw.c ipc_sem-Xverbose.c ipc_shm.c ipc_shm-Xabbrev.c \ + ipc_shm-Xraw.c ipc_shm-Xverbose.c is_linux_mips_n64.c kcmp.c \ + kcmp-y.c kcmp-y--pidns-translation.c kern_features.c \ kernel_version.c kernel_version-Xabbrev.c \ kernel_version-Xraw.c kernel_version-Xverbose.c \ kexec_file_load.c kexec_load.c keyctl.c keyctl-Xabbrev.c \ - keyctl-Xraw.c keyctl-Xverbose.c kill.c kill_child.c ksysent.c \ - lchown.c lchown32.c link.c linkat.c list_sigaction_signum.c \ - llseek.c localtime.c lookup_dcookie.c looping_threads.c \ - lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \ + keyctl-Xraw.c keyctl-Xverbose.c kill.c \ + kill--pidns-translation.c kill_child.c ksysent.c lchown.c \ + lchown32.c link.c linkat.c list_sigaction_signum.c llseek.c \ + localtime.c lookup_dcookie.c looping_threads.c lseek.c lstat.c \ + lstat64.c madvise.c maybe_switch_current_tcp.c \ + maybe_switch_current_tcp--quiet-thread-execve.c mbind.c \ + mbind-Xabbrev.c mbind-Xraw.c mbind-Xverbose.c membarrier.c \ memfd_create.c memfd_create-Xabbrev.c memfd_create-Xraw.c \ - memfd_create-Xverbose.c migrate_pages.c mincore.c mkdir.c \ - mkdirat.c mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c \ + memfd_create-Xverbose.c migrate_pages.c \ + migrate_pages--pidns-translation.c mincore.c mkdir.c mkdirat.c \ + mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c \ mmap-Xabbrev.c mmap-Xraw.c mmap-Xverbose.c mmap64.c \ mmap64-Xabbrev.c mmap64-Xraw.c mmap64-Xverbose.c mmsg.c \ mmsg-silent.c mmsg_name.c mmsg_name-v.c modify_ldt.c mount.c \ - mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c move_pages.c \ + mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c move_mount.c \ + move_mount-P.c move_pages.c move_pages--pidns-translation.c \ move_pages-Xabbrev.c move_pages-Xraw.c move_pages-Xverbose.c \ mq.c mq_sendrecv.c mq_sendrecv-read.c mq_sendrecv-write.c \ msg_control.c msg_control-v.c msg_name.c munlockall.c \ - nanosleep.c net-accept-connect.c net-icmp_filter.c \ - net-packet_mreq.c net-packet_mreq-Xabbrev.c \ + nanosleep.c net--decode-fds-dev-netlink.c \ + net--decode-fds-none-netlink.c net--decode-fds-path-netlink.c \ + net--decode-fds-socket-netlink.c net-accept-connect.c \ + net-icmp_filter.c net-packet_mreq.c net-packet_mreq-Xabbrev.c \ net-packet_mreq-Xraw.c net-packet_mreq-Xverbose.c \ - net-sockaddr.c net-tpacket_req.c net-tpacket_stats.c \ + net-sockaddr.c net-sockaddr--pidns-translation.c \ + net-tpacket_req.c net-tpacket_stats.c \ net-tpacket_stats-success.c net-y-unix.c net-yy-inet.c \ net-yy-inet6.c net-yy-netlink.c net-yy-unix.c netlink_audit.c \ - netlink_crypto.c netlink_generic.c netlink_inet_diag.c \ - netlink_kobject_uevent.c netlink_netfilter.c \ - netlink_netlink_diag.c netlink_protocol.c netlink_route.c \ - netlink_selinux.c netlink_sock_diag.c netlink_unix_diag.c \ - netlink_xfrm.c newfstatat.c nfnetlink_acct.c \ - nfnetlink_cthelper.c nfnetlink_ctnetlink.c \ + netlink_audit--pidns-translation.c netlink_crypto.c \ + netlink_generic.c netlink_inet_diag.c netlink_kobject_uevent.c \ + netlink_netfilter.c netlink_netlink_diag.c netlink_protocol.c \ + netlink_route.c netlink_selinux.c netlink_sock_diag.c \ + netlink_unix_diag.c netlink_xfrm.c newfstatat.c \ + nfnetlink_acct.c nfnetlink_cthelper.c nfnetlink_ctnetlink.c \ nfnetlink_ctnetlink_exp.c nfnetlink_cttimeout.c \ nfnetlink_ipset.c nfnetlink_nft_compat.c nfnetlink_nftables.c \ nfnetlink_osf.c nfnetlink_queue.c nfnetlink_ulog.c nlattr.c \ @@ -3386,166 +4704,249 @@ SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c accept.c \ nlattr_fib_rule_hdr.c nlattr_ifaddrlblmsg.c nlattr_ifaddrmsg.c \ nlattr_ifinfomsg.c nlattr_ifla_af_spec.c nlattr_ifla_brport.c \ nlattr_ifla_linkinfo.c nlattr_ifla_port.c nlattr_ifla_xdp.c \ - nlattr_inet_diag_msg.c nlattr_inet_diag_req_compat.c \ - nlattr_inet_diag_req_v2.c nlattr_mdba_mdb_entry.c \ - nlattr_mdba_router_port.c nlattr_ndmsg.c nlattr_ndtmsg.c \ - nlattr_netconfmsg.c nlattr_netlink_diag_msg.c \ - nlattr_nlmsgerr.c nlattr_packet_diag_msg.c nlattr_rtgenmsg.c \ - nlattr_rtmsg.c nlattr_smc_diag_msg.c nlattr_tc_stats.c \ - nlattr_tca_stab.c nlattr_tcamsg.c nlattr_tcmsg.c \ - nlattr_unix_diag_msg.c nsyscalls.c nsyscalls-d.c old_mmap.c \ - old_mmap-P.c old_mmap-Xabbrev.c old_mmap-Xraw.c \ - old_mmap-Xverbose.c old_mmap-v-none.c oldfstat.c oldlstat.c \ - oldselect.c oldselect-P.c oldselect-efault.c \ - oldselect-efault-P.c oldstat.c open.c openat.c \ + nlattr_ifla_xdp-y.c nlattr_inet_diag_msg.c \ + nlattr_inet_diag_req_compat.c nlattr_inet_diag_req_v2.c \ + nlattr_mdba_mdb_entry.c nlattr_mdba_router_port.c \ + nlattr_ndmsg.c nlattr_ndtmsg.c nlattr_netconfmsg.c \ + nlattr_netlink_diag_msg.c nlattr_nlmsgerr.c \ + nlattr_packet_diag_msg.c nlattr_rtgenmsg.c nlattr_rtmsg.c \ + nlattr_smc_diag_msg.c nlattr_tc_stats.c nlattr_tca_stab.c \ + nlattr_tcamsg.c nlattr_tcmsg.c nlattr_unix_diag_msg.c \ + nsyscalls.c nsyscalls-d.c old_mmap.c old_mmap-P.c \ + old_mmap-Xabbrev.c old_mmap-Xraw.c old_mmap-Xverbose.c \ + old_mmap-v-none.c oldfstat.c oldlstat.c oldselect.c \ + oldselect-P.c oldselect-efault.c oldselect-efault-P.c \ + oldstat.c open.c open_tree.c open_tree-P.c openat.c openat2.c \ + openat2-Xabbrev.c openat2-Xraw.c openat2-Xverbose.c \ + openat2-v.c openat2-v-y.c openat2-v-y-Xabbrev.c \ + openat2-v-y-Xraw.c openat2-v-y-Xverbose.c openat2-y.c \ orphaned_process_group.c osf_utimes.c pause.c pc.c \ perf_event_open.c perf_event_open_nonverbose.c \ perf_event_open_unabbrev.c personality.c personality-Xabbrev.c \ - personality-Xraw.c personality-Xverbose.c pidfd_send_signal.c \ - pipe.c pipe2.c pkey_alloc.c pkey_free.c pkey_mprotect.c poll.c \ - poll-P.c ppoll.c ppoll-P.c ppoll-v.c prctl-arg2-intptr.c \ - prctl-dumpable.c prctl-name.c prctl-no-args.c \ - prctl-pdeathsig.c prctl-seccomp-filter-v.c \ + personality-Xraw.c personality-Xverbose.c pidfd_getfd.c \ + pidfd_getfd-y.c pidfd_getfd-yy.c pidfd_open.c \ + pidfd_open--decode-fd-path.c pidfd_open--decode-fd-pidfd.c \ + pidfd_open--decode-fd-socket.c pidfd_open--pidns-translation.c \ + pidfd_open-P.c pidfd_open-y.c pidfd_open-yy.c \ + pidfd_send_signal.c pidfd_send_signal--pidns-translation.c \ + pidns-cache.c pipe.c pipe2.c pkey_alloc.c pkey_free.c \ + pkey_mprotect.c poll.c poll-P.c ppoll.c ppoll-P.c ppoll-v.c \ + prctl-arg2-intptr.c prctl-dumpable.c prctl-name.c \ + prctl-no-args.c prctl-pdeathsig.c prctl-seccomp-filter-v.c \ prctl-seccomp-strict.c prctl-securebits.c prctl-spec-inject.c \ prctl-tid_address.c prctl-tsc.c pread64-pwrite64.c preadv.c \ preadv-pwritev.c preadv2-pwritev2.c print_maxfd.c \ - printpath-umovestr.c printpath-umovestr-peekdata.c \ - printpath-umovestr-undumpable.c printsignal-Xabbrev.c \ - printsignal-Xraw.c printsignal-Xverbose.c printstr.c \ - printstrn-umoven.c printstrn-umoven-peekdata.c \ - printstrn-umoven-undumpable.c prlimit64.c process_vm_readv.c \ - process_vm_writev.c pselect6.c ptrace.c ptrace_syscall_info.c \ - pwritev.c qual_fault.c qual_inject-error-signal.c \ - qual_inject-retval.c qual_inject-signal.c qual_signal.c \ - quotactl.c quotactl-Xabbrev.c quotactl-Xraw.c \ - quotactl-Xverbose.c quotactl-success.c quotactl-success-v.c \ - quotactl-v.c quotactl-xfs.c quotactl-xfs-success.c \ - quotactl-xfs-success-v.c quotactl-xfs-v.c read-write.c \ - readahead.c readdir.c readlink.c readlinkat.c readv.c reboot.c \ - recvfrom.c recvmmsg-timeout.c recvmsg.c redirect-fds.c \ - remap_file_pages.c remap_file_pages-Xabbrev.c \ + print_ppid_tracerpid.c printpath-umovestr.c \ + printpath-umovestr-peekdata.c printpath-umovestr-undumpable.c \ + printsignal-Xabbrev.c printsignal-Xraw.c \ + printsignal-Xverbose.c printstr.c printstrn-umoven.c \ + printstrn-umoven-peekdata.c printstrn-umoven-undumpable.c \ + prlimit64.c prlimit64--pidns-translation.c process_vm_readv.c \ + process_vm_readv--pidns-translation.c process_vm_writev.c \ + process_vm_writev--pidns-translation.c pselect6.c ptrace.c \ + ptrace_syscall_info.c pwritev.c qual_fault.c \ + qual_inject-error-signal.c qual_inject-retval.c \ + qual_inject-signal.c qual_signal.c quotactl.c \ + quotactl-Xabbrev.c quotactl-Xraw.c quotactl-Xverbose.c \ + quotactl-success.c quotactl-success-v.c quotactl-v.c \ + quotactl-xfs.c quotactl-xfs-success.c quotactl-xfs-success-v.c \ + quotactl-xfs-v.c read-write.c readahead.c readdir.c readlink.c \ + readlinkat.c readv.c reboot.c recv-MSG_TRUNC.c recvfrom.c \ + recvfrom-MSG_TRUNC.c recvmmsg-timeout.c recvmsg.c \ + redirect-fds.c remap_file_pages.c remap_file_pages-Xabbrev.c \ remap_file_pages-Xraw.c remap_file_pages-Xverbose.c rename.c \ renameat.c renameat2.c request_key.c restart_syscall.c \ riscv_flush_icache.c rmdir.c rt_sigaction.c rt_sigpending.c \ - rt_sigprocmask.c rt_sigqueueinfo.c rt_sigreturn.c \ + rt_sigprocmask.c rt_sigqueueinfo.c \ + rt_sigqueueinfo--pidns-translation.c rt_sigreturn.c \ rt_sigsuspend.c rt_sigtimedwait.c rt_tgsigqueueinfo.c \ - run_expect_termsig.c s390_guarded_storage.c \ - s390_guarded_storage-v.c s390_pci_mmio_read_write.c \ - s390_runtime_instr.c s390_sthyi.c s390_sthyi-v.c \ - sched_get_priority_mxx.c sched_rr_get_interval.c \ - sched_xetaffinity.c sched_xetattr.c sched_xetparam.c \ - sched_xetscheduler.c sched_yield.c scm_rights.c \ - seccomp-filter.c seccomp-filter-v.c seccomp-strict.c \ - seccomp_get_action_avail.c select.c select-P.c semop.c \ - sendfile.c sendfile64.c set_mempolicy.c set_ptracer_any.c \ - set_sigblock.c set_sigign.c setdomainname.c setfsgid.c \ - setfsgid32.c setfsuid.c setfsuid32.c setgid.c setgid32.c \ - setgroups.c setgroups32.c sethostname.c setns.c setregid.c \ - setregid32.c setresgid.c setresgid32.c setresuid.c \ - setresuid32.c setreuid.c setreuid32.c setrlimit.c \ - setrlimit-Xabbrev.c setrlimit-Xraw.c setrlimit-Xverbose.c \ - setuid.c setuid32.c shmxt.c shutdown.c sigaction.c \ - sigaltstack.c siginfo.c signal.c signal_receive.c signalfd4.c \ - sigpending.c sigprocmask.c sigreturn.c sigsuspend.c sleep.c \ - so_error.c so_linger.c so_peercred.c so_peercred-Xabbrev.c \ - so_peercred-Xraw.c so_peercred-Xverbose.c sock_filter-v.c \ - sock_filter-v-Xabbrev.c sock_filter-v-Xraw.c \ - sock_filter-v-Xverbose.c sockaddr_xlat-Xabbrev.c \ - sockaddr_xlat-Xraw.c sockaddr_xlat-Xverbose.c socketcall.c \ - sockopt-sol_netlink.c sockopt-timestamp.c splice.c \ - $(stack_fcall_SOURCES) $(stack_fcall_mangled_SOURCES) stat.c \ - stat64.c statfs.c statfs64.c statx.c swap.c sxetmask.c \ - symlink.c symlinkat.c sync.c sync_file_range.c \ - sync_file_range2.c sysinfo.c syslog.c tee.c threads-execve.c \ + rt_tgsigqueueinfo--pidns-translation.c run_expect_termsig.c \ + s390_guarded_storage.c s390_guarded_storage-v.c \ + s390_pci_mmio_read_write.c s390_runtime_instr.c s390_sthyi.c \ + s390_sthyi-v.c sched_get_priority_mxx.c \ + sched_rr_get_interval.c sched_xetaffinity.c \ + sched_xetaffinity--pidns-translation.c sched_xetattr.c \ + sched_xetattr--pidns-translation.c sched_xetparam.c \ + sched_xetparam--pidns-translation.c sched_xetscheduler.c \ + sched_xetscheduler--pidns-translation.c sched_yield.c \ + scm_rights.c seccomp-filter.c seccomp-filter-v.c \ + seccomp-strict.c seccomp_get_action_avail.c select.c \ + select-P.c semop.c semop-indirect.c semtimedop.c sendfile.c \ + sendfile64.c set_mempolicy.c set_mempolicy-Xabbrev.c \ + set_mempolicy-Xraw.c set_mempolicy-Xverbose.c \ + set_ptracer_any.c set_sigblock.c set_sigign.c setdomainname.c \ + setfsgid.c setfsgid32.c setfsuid.c setfsuid32.c setgid.c \ + setgid32.c setgroups.c setgroups32.c sethostname.c setns.c \ + setpgrp-exec.c setregid.c setregid32.c setresgid.c \ + setresgid32.c setresuid.c setresuid32.c setreuid.c \ + setreuid32.c setrlimit.c setrlimit-Xabbrev.c setrlimit-Xraw.c \ + setrlimit-Xverbose.c setuid.c setuid32.c shmxt.c shutdown.c \ + sigaction.c sigaltstack.c siginfo.c signal.c signal_receive.c \ + signal_receive--pidns-translation.c signalfd4.c sigpending.c \ + sigprocmask.c sigreturn.c sigsuspend.c sleep.c so_error.c \ + so_linger.c so_peercred.c so_peercred--pidns-translation.c \ + so_peercred-Xabbrev.c so_peercred-Xraw.c \ + so_peercred-Xverbose.c sock_filter-v.c sock_filter-v-Xabbrev.c \ + sock_filter-v-Xraw.c sock_filter-v-Xverbose.c \ + sockaddr_xlat-Xabbrev.c sockaddr_xlat-Xraw.c \ + sockaddr_xlat-Xverbose.c socketcall.c sockopt-sol_netlink.c \ + sockopt-timestamp.c splice.c $(stack_fcall_SOURCES) \ + $(stack_fcall_attach_SOURCES) $(stack_fcall_mangled_SOURCES) \ + stat.c stat64.c statfs.c statfs64.c status-all.c \ + status-failed.c status-failed-long.c status-failed-status.c \ + status-none.c status-none-f.c status-none-threads.c \ + status-successful.c status-successful-long.c \ + status-successful-status.c status-unfinished.c \ + status-unfinished-threads.c statx.c strace--strings-in-hex.c \ + strace--strings-in-hex-all.c \ + strace--strings-in-hex-non-ascii.c strace-n.c strace-x.c \ + strace-xx.c swap.c sxetmask.c symlink.c symlinkat.c sync.c \ + sync_file_range.c sync_file_range2.c sysinfo.c syslog.c \ + syslog-success.c tee.c tgkill.c tgkill--pidns-translation.c \ + threads-execve.c threads-execve--quiet-thread-execve.c \ + threads-execve-q.c threads-execve-qq.c threads-execve-qqq.c \ time.c timer_create.c timer_xettime.c timerfd_xettime.c \ - times.c times-fail.c truncate.c truncate64.c ugetrlimit.c \ - uio.c umask.c umount.c umount2.c umoven-illptr.c umovestr.c \ - umovestr-illptr.c umovestr2.c umovestr3.c uname.c \ - unblock_reset_raise.c unix-pair-send-recv.c \ + times.c times-fail.c tkill.c tkill--pidns-translation.c \ + tracer_ppid_pgid_sid.c $(trie_test_SOURCES) truncate.c \ + truncate64.c ugetrlimit.c uio.c umask.c umount.c umount2.c \ + umoven-illptr.c umovestr.c umovestr-illptr.c umovestr2.c \ + umovestr3.c umovestr_cached.c umovestr_cached_adjacent.c \ + uname.c unblock_reset_raise.c unix-pair-send-recv.c \ unix-pair-sendto-recvfrom.c unlink.c unlinkat.c unshare.c \ userfaultfd.c ustat.c utime.c utimensat.c utimensat-Xabbrev.c \ utimensat-Xraw.c utimensat-Xverbose.c utimes.c vfork-f.c \ vhangup.c vmsplice.c wait4.c wait4-v.c waitid.c waitid-v.c \ waitpid.c xattr.c xattr-strings.c xet_robust_list.c \ - xet_thread_area_x86.c xetitimer.c xetpgid.c xetpriority.c \ - xettimeofday.c zeroargc.c + xet_robust_list--pidns-translation.c xet_thread_area_x86.c \ + xetitimer.c xetpgid.c xetpgid--pidns-translation.c \ + xetpriority.c xetpriority--pidns-translation.c xettimeofday.c \ + zeroargc.c DIST_SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c \ accept.c accept4.c access.c acct.c add_key.c adjtimex.c aio.c \ aio_pgetevents.c alarm.c answer.c attach-f-p.c \ attach-f-p-cmd.c attach-p-cmd-cmd.c attach-p-cmd-p.c \ - block_reset_raise_run.c bpf.c bpf-obj_get_info_by_fd.c \ - bpf-obj_get_info_by_fd-prog.c bpf-obj_get_info_by_fd-prog-v.c \ - bpf-obj_get_info_by_fd-v.c bpf-success.c bpf-success-v.c \ - bpf-v.c brk.c btrfs.c caps.c caps-abbrev.c check_sigblock.c \ + block_reset_raise_run.c block_reset_run.c bpf.c \ + bpf-obj_get_info_by_fd.c bpf-obj_get_info_by_fd-prog.c \ + bpf-obj_get_info_by_fd-prog-v.c bpf-obj_get_info_by_fd-v.c \ + bpf-success.c bpf-success-long-y.c bpf-success-v.c bpf-v.c \ + brk.c btrfs.c caps.c caps-abbrev.c check_sigblock.c \ check_sigign.c chmod.c chown.c chown32.c chroot.c \ clock_adjtime.c clock_nanosleep.c clock_xettime.c \ - clone_parent.c clone_ptrace.c copy_file_range.c count-f.c \ - creat.c delay.c delete_module.c dev-yy.c dup.c dup2.c dup3.c \ - epoll_create.c epoll_create1.c epoll_ctl.c epoll_pwait.c \ - epoll_wait.c erestartsys.c eventfd.c execve.c execve-v.c \ - execveat.c execveat-v.c faccessat.c fadvise64.c fadvise64_64.c \ + clone-flags.c clone3.c clone3-Xabbrev.c clone3-Xraw.c \ + clone3-Xverbose.c clone3-success.c clone3-success-Xabbrev.c \ + clone3-success-Xraw.c clone3-success-Xverbose.c clone_parent.c \ + clone_parent--quiet-exit.c clone_parent-q.c clone_parent-qq.c \ + clone_ptrace.c clone_ptrace--quiet-attach.c \ + clone_ptrace--quiet-exit.c clone_ptrace-q.c clone_ptrace-qq.c \ + close_range.c close_range-P.c close_range-y.c close_range-yy.c \ + copy_file_range.c count-f.c creat.c delay.c delete_module.c \ + dev--decode-fds-dev.c dev--decode-fds-path.c \ + dev--decode-fds-socket.c dev-yy.c dup.c dup-P.c dup-y.c \ + dup-yy.c dup2.c dup2-P.c dup2-y.c dup2-yy.c dup3.c dup3-P.c \ + dup3-y.c dup3-yy.c epoll_create.c epoll_create1.c epoll_ctl.c \ + epoll_pwait.c epoll_wait.c erestartsys.c eventfd.c execve.c \ + execve-v.c execveat.c execveat-v.c faccessat.c faccessat-P.c \ + faccessat-y.c faccessat-yy.c faccessat2.c faccessat2-P.c \ + faccessat2-y.c faccessat2-yy.c fadvise64.c fadvise64_64.c \ fallocate.c fanotify_init.c fanotify_mark.c \ fanotify_mark-Xabbrev.c fanotify_mark-Xraw.c \ fanotify_mark-Xverbose.c fchdir.c fchmod.c fchmodat.c fchown.c \ - fchown32.c fchownat.c fcntl.c fcntl64.c fdatasync.c fflush.c \ - file_handle.c file_ioctl.c filter-unavailable.c finit_module.c \ - flock.c fork-f.c fstat.c fstat-Xabbrev.c fstat-Xraw.c \ - fstat-Xverbose.c fstat64.c fstat64-Xabbrev.c fstat64-Xraw.c \ - fstat64-Xverbose.c fstatat64.c fstatfs.c fstatfs64.c fsync.c \ - fsync-y.c ftruncate.c ftruncate64.c futex.c futimesat.c \ - get_mempolicy.c getcpu.c getcwd.c getdents.c getdents64.c \ - getegid.c getegid32.c geteuid.c geteuid32.c getgid.c \ - getgid32.c getgroups.c getgroups32.c getpeername.c getpgrp.c \ - getpid.c getppid.c getrandom.c getresgid.c getresgid32.c \ - getresuid.c getresuid32.c getrlimit.c getrusage.c getsid.c \ - getsockname.c gettid.c getuid.c getuid32.c getxxid.c \ - group_req.c inet-cmsg.c init_module.c inject-nf.c inotify.c \ - inotify_init1.c int_0x80.c io_uring_enter.c \ - io_uring_register.c io_uring_setup.c ioctl.c ioctl_block.c \ - ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-success.c \ - ioctl_evdev-success-v.c ioctl_evdev-v.c ioctl_inotify.c \ - ioctl_kvm_run.c ioctl_kvm_run-v.c ioctl_kvm_run_auxstr_vcpu.c \ - ioctl_loop.c ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c \ - ioctl_nbd.c ioctl_nsfs.c ioctl_perf.c ioctl_perf-success.c \ - ioctl_ptp.c ioctl_random.c ioctl_rtc.c ioctl_rtc-v.c \ - ioctl_scsi.c ioctl_sg_io_v3.c ioctl_sg_io_v4.c \ - ioctl_sock_gifconf.c ioctl_uffdio.c ioctl_v4l2.c ioperm.c \ - iopl.c ioprio.c ioprio-Xabbrev.c ioprio-Xraw.c \ - ioprio-Xverbose.c ip_mreq.c ipc.c ipc_msg.c ipc_msg-Xabbrev.c \ - ipc_msg-Xraw.c ipc_msg-Xverbose.c ipc_msgbuf.c \ - ipc_msgbuf-Xabbrev.c ipc_msgbuf-Xraw.c ipc_msgbuf-Xverbose.c \ - ipc_sem.c ipc_sem-Xabbrev.c ipc_sem-Xraw.c ipc_sem-Xverbose.c \ - ipc_shm.c ipc_shm-Xabbrev.c ipc_shm-Xraw.c ipc_shm-Xverbose.c \ - is_linux_mips_n64.c kcmp.c kcmp-y.c kern_features.c \ + fchown32.c fchownat.c fcntl.c fcntl--pidns-translation.c \ + fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \ + file_handle.c file_ioctl.c filter-unavailable.c \ + filter_seccomp-flag.c filter_seccomp-perf.c finit_module.c \ + flock.c fork--pidns-translation.c fork-f.c fsconfig.c \ + fsconfig-P.c fsmount.c fsopen.c fspick.c fspick-P.c fstat.c \ + fstat-Xabbrev.c fstat-Xraw.c fstat-Xverbose.c fstat64.c \ + fstat64-Xabbrev.c fstat64-Xraw.c fstat64-Xverbose.c \ + fstatat64.c fstatfs.c fstatfs64.c fsync.c fsync-y.c \ + ftruncate.c ftruncate64.c futex.c futimesat.c get_mempolicy.c \ + get_process_reaper.c getcpu.c getcwd.c getdents.c getdents-v.c \ + getdents64.c getdents64-v.c getegid.c getegid32.c geteuid.c \ + geteuid32.c getgid.c getgid32.c getgroups.c getgroups32.c \ + getpeername.c getpgrp.c getpgrp--pidns-translation.c getpid.c \ + getpid--pidns-translation.c getppid.c getrandom.c getresgid.c \ + getresgid32.c getresuid.c getresuid32.c getrlimit.c \ + getrusage.c getsid.c getsid--pidns-translation.c getsockname.c \ + gettid.c gettid--pidns-translation.c getuid.c getuid32.c \ + getxgid.c getxpid.c getxuid.c group_req.c inet-cmsg.c \ + init_module.c inject-nf.c inotify.c inotify_init.c \ + inotify_init-y.c inotify_init1.c inotify_init1-y.c int_0x80.c \ + io_uring_enter.c io_uring_register.c io_uring_setup.c ioctl.c \ + ioctl_block.c ioctl_block--pidns-translation.c ioctl_dm.c \ + ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-Xabbrev.c \ + ioctl_evdev-Xraw.c ioctl_evdev-Xverbose.c \ + ioctl_evdev-success.c ioctl_evdev-success-Xabbrev.c \ + ioctl_evdev-success-Xraw.c ioctl_evdev-success-Xverbose.c \ + ioctl_evdev-success-v.c ioctl_evdev-success-v-Xabbrev.c \ + ioctl_evdev-success-v-Xraw.c ioctl_evdev-success-v-Xverbose.c \ + ioctl_evdev-v.c ioctl_evdev-v-Xabbrev.c ioctl_evdev-v-Xraw.c \ + ioctl_evdev-v-Xverbose.c ioctl_hdio.c ioctl_hdio-Xabbrev.c \ + ioctl_hdio-Xraw.c ioctl_hdio-Xverbose.c ioctl_hdio-success.c \ + ioctl_hdio-success-Xabbrev.c ioctl_hdio-success-Xraw.c \ + ioctl_hdio-success-Xverbose.c ioctl_hdio-success-v.c \ + ioctl_hdio-success-v-Xabbrev.c ioctl_hdio-success-v-Xraw.c \ + ioctl_hdio-success-v-Xverbose.c ioctl_hdio-v.c \ + ioctl_hdio-v-Xabbrev.c ioctl_hdio-v-Xraw.c \ + ioctl_hdio-v-Xverbose.c ioctl_inotify.c ioctl_kvm_run.c \ + ioctl_kvm_run-v.c ioctl_kvm_run_auxstr_vcpu.c ioctl_loop.c \ + ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c ioctl_nbd.c \ + ioctl_nsfs.c ioctl_perf.c ioctl_perf-success.c ioctl_ptp.c \ + ioctl_random.c ioctl_rtc.c ioctl_rtc-v.c ioctl_scsi.c \ + ioctl_sg_io_v3.c ioctl_sg_io_v4.c ioctl_sock_gifconf.c \ + ioctl_tee.c ioctl_uffdio.c ioctl_v4l2.c ioctl_v4l2-Xabbrev.c \ + ioctl_v4l2-Xraw.c ioctl_v4l2-Xverbose.c ioctl_v4l2-success.c \ + ioctl_v4l2-success-Xabbrev.c ioctl_v4l2-success-Xraw.c \ + ioctl_v4l2-success-Xverbose.c ioctl_v4l2-success-v.c \ + ioctl_v4l2-success-v-Xabbrev.c ioctl_v4l2-success-v-Xraw.c \ + ioctl_v4l2-success-v-Xverbose.c ioctl_v4l2-v.c \ + ioctl_v4l2-v-Xabbrev.c ioctl_v4l2-v-Xraw.c \ + ioctl_v4l2-v-Xverbose.c ioctl_watchdog.c ioperm.c iopl.c \ + ioprio.c ioprio--pidns-translation.c ioprio-Xabbrev.c \ + ioprio-Xraw.c ioprio-Xverbose.c ip_mreq.c ipc.c ipc_msg.c \ + ipc_msg-Xabbrev.c ipc_msg-Xraw.c ipc_msg-Xverbose.c \ + ipc_msgbuf.c ipc_msgbuf-Xabbrev.c ipc_msgbuf-Xraw.c \ + ipc_msgbuf-Xverbose.c ipc_sem.c ipc_sem-Xabbrev.c \ + ipc_sem-Xraw.c ipc_sem-Xverbose.c ipc_shm.c ipc_shm-Xabbrev.c \ + ipc_shm-Xraw.c ipc_shm-Xverbose.c is_linux_mips_n64.c kcmp.c \ + kcmp-y.c kcmp-y--pidns-translation.c kern_features.c \ kernel_version.c kernel_version-Xabbrev.c \ kernel_version-Xraw.c kernel_version-Xverbose.c \ kexec_file_load.c kexec_load.c keyctl.c keyctl-Xabbrev.c \ - keyctl-Xraw.c keyctl-Xverbose.c kill.c kill_child.c ksysent.c \ - lchown.c lchown32.c link.c linkat.c list_sigaction_signum.c \ - llseek.c localtime.c lookup_dcookie.c looping_threads.c \ - lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \ + keyctl-Xraw.c keyctl-Xverbose.c kill.c \ + kill--pidns-translation.c kill_child.c ksysent.c lchown.c \ + lchown32.c link.c linkat.c list_sigaction_signum.c llseek.c \ + localtime.c lookup_dcookie.c looping_threads.c lseek.c lstat.c \ + lstat64.c madvise.c maybe_switch_current_tcp.c \ + maybe_switch_current_tcp--quiet-thread-execve.c mbind.c \ + mbind-Xabbrev.c mbind-Xraw.c mbind-Xverbose.c membarrier.c \ memfd_create.c memfd_create-Xabbrev.c memfd_create-Xraw.c \ - memfd_create-Xverbose.c migrate_pages.c mincore.c mkdir.c \ - mkdirat.c mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c \ + memfd_create-Xverbose.c migrate_pages.c \ + migrate_pages--pidns-translation.c mincore.c mkdir.c mkdirat.c \ + mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c \ mmap-Xabbrev.c mmap-Xraw.c mmap-Xverbose.c mmap64.c \ mmap64-Xabbrev.c mmap64-Xraw.c mmap64-Xverbose.c mmsg.c \ mmsg-silent.c mmsg_name.c mmsg_name-v.c modify_ldt.c mount.c \ - mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c move_pages.c \ + mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c move_mount.c \ + move_mount-P.c move_pages.c move_pages--pidns-translation.c \ move_pages-Xabbrev.c move_pages-Xraw.c move_pages-Xverbose.c \ mq.c mq_sendrecv.c mq_sendrecv-read.c mq_sendrecv-write.c \ msg_control.c msg_control-v.c msg_name.c munlockall.c \ - nanosleep.c net-accept-connect.c net-icmp_filter.c \ - net-packet_mreq.c net-packet_mreq-Xabbrev.c \ + nanosleep.c net--decode-fds-dev-netlink.c \ + net--decode-fds-none-netlink.c net--decode-fds-path-netlink.c \ + net--decode-fds-socket-netlink.c net-accept-connect.c \ + net-icmp_filter.c net-packet_mreq.c net-packet_mreq-Xabbrev.c \ net-packet_mreq-Xraw.c net-packet_mreq-Xverbose.c \ - net-sockaddr.c net-tpacket_req.c net-tpacket_stats.c \ + net-sockaddr.c net-sockaddr--pidns-translation.c \ + net-tpacket_req.c net-tpacket_stats.c \ net-tpacket_stats-success.c net-y-unix.c net-yy-inet.c \ net-yy-inet6.c net-yy-netlink.c net-yy-unix.c netlink_audit.c \ - netlink_crypto.c netlink_generic.c netlink_inet_diag.c \ - netlink_kobject_uevent.c netlink_netfilter.c \ - netlink_netlink_diag.c netlink_protocol.c netlink_route.c \ - netlink_selinux.c netlink_sock_diag.c netlink_unix_diag.c \ - netlink_xfrm.c newfstatat.c nfnetlink_acct.c \ - nfnetlink_cthelper.c nfnetlink_ctnetlink.c \ + netlink_audit--pidns-translation.c netlink_crypto.c \ + netlink_generic.c netlink_inet_diag.c netlink_kobject_uevent.c \ + netlink_netfilter.c netlink_netlink_diag.c netlink_protocol.c \ + netlink_route.c netlink_selinux.c netlink_sock_diag.c \ + netlink_unix_diag.c netlink_xfrm.c newfstatat.c \ + nfnetlink_acct.c nfnetlink_cthelper.c nfnetlink_ctnetlink.c \ nfnetlink_ctnetlink_exp.c nfnetlink_cttimeout.c \ nfnetlink_ipset.c nfnetlink_nft_compat.c nfnetlink_nftables.c \ nfnetlink_osf.c nfnetlink_queue.c nfnetlink_ulog.c nlattr.c \ @@ -3553,89 +4954,123 @@ DIST_SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c \ nlattr_fib_rule_hdr.c nlattr_ifaddrlblmsg.c nlattr_ifaddrmsg.c \ nlattr_ifinfomsg.c nlattr_ifla_af_spec.c nlattr_ifla_brport.c \ nlattr_ifla_linkinfo.c nlattr_ifla_port.c nlattr_ifla_xdp.c \ - nlattr_inet_diag_msg.c nlattr_inet_diag_req_compat.c \ - nlattr_inet_diag_req_v2.c nlattr_mdba_mdb_entry.c \ - nlattr_mdba_router_port.c nlattr_ndmsg.c nlattr_ndtmsg.c \ - nlattr_netconfmsg.c nlattr_netlink_diag_msg.c \ - nlattr_nlmsgerr.c nlattr_packet_diag_msg.c nlattr_rtgenmsg.c \ - nlattr_rtmsg.c nlattr_smc_diag_msg.c nlattr_tc_stats.c \ - nlattr_tca_stab.c nlattr_tcamsg.c nlattr_tcmsg.c \ - nlattr_unix_diag_msg.c nsyscalls.c nsyscalls-d.c old_mmap.c \ - old_mmap-P.c old_mmap-Xabbrev.c old_mmap-Xraw.c \ - old_mmap-Xverbose.c old_mmap-v-none.c oldfstat.c oldlstat.c \ - oldselect.c oldselect-P.c oldselect-efault.c \ - oldselect-efault-P.c oldstat.c open.c openat.c \ + nlattr_ifla_xdp-y.c nlattr_inet_diag_msg.c \ + nlattr_inet_diag_req_compat.c nlattr_inet_diag_req_v2.c \ + nlattr_mdba_mdb_entry.c nlattr_mdba_router_port.c \ + nlattr_ndmsg.c nlattr_ndtmsg.c nlattr_netconfmsg.c \ + nlattr_netlink_diag_msg.c nlattr_nlmsgerr.c \ + nlattr_packet_diag_msg.c nlattr_rtgenmsg.c nlattr_rtmsg.c \ + nlattr_smc_diag_msg.c nlattr_tc_stats.c nlattr_tca_stab.c \ + nlattr_tcamsg.c nlattr_tcmsg.c nlattr_unix_diag_msg.c \ + nsyscalls.c nsyscalls-d.c old_mmap.c old_mmap-P.c \ + old_mmap-Xabbrev.c old_mmap-Xraw.c old_mmap-Xverbose.c \ + old_mmap-v-none.c oldfstat.c oldlstat.c oldselect.c \ + oldselect-P.c oldselect-efault.c oldselect-efault-P.c \ + oldstat.c open.c open_tree.c open_tree-P.c openat.c openat2.c \ + openat2-Xabbrev.c openat2-Xraw.c openat2-Xverbose.c \ + openat2-v.c openat2-v-y.c openat2-v-y-Xabbrev.c \ + openat2-v-y-Xraw.c openat2-v-y-Xverbose.c openat2-y.c \ orphaned_process_group.c osf_utimes.c pause.c pc.c \ perf_event_open.c perf_event_open_nonverbose.c \ perf_event_open_unabbrev.c personality.c personality-Xabbrev.c \ - personality-Xraw.c personality-Xverbose.c pidfd_send_signal.c \ - pipe.c pipe2.c pkey_alloc.c pkey_free.c pkey_mprotect.c poll.c \ - poll-P.c ppoll.c ppoll-P.c ppoll-v.c prctl-arg2-intptr.c \ - prctl-dumpable.c prctl-name.c prctl-no-args.c \ - prctl-pdeathsig.c prctl-seccomp-filter-v.c \ + personality-Xraw.c personality-Xverbose.c pidfd_getfd.c \ + pidfd_getfd-y.c pidfd_getfd-yy.c pidfd_open.c \ + pidfd_open--decode-fd-path.c pidfd_open--decode-fd-pidfd.c \ + pidfd_open--decode-fd-socket.c pidfd_open--pidns-translation.c \ + pidfd_open-P.c pidfd_open-y.c pidfd_open-yy.c \ + pidfd_send_signal.c pidfd_send_signal--pidns-translation.c \ + pidns-cache.c pipe.c pipe2.c pkey_alloc.c pkey_free.c \ + pkey_mprotect.c poll.c poll-P.c ppoll.c ppoll-P.c ppoll-v.c \ + prctl-arg2-intptr.c prctl-dumpable.c prctl-name.c \ + prctl-no-args.c prctl-pdeathsig.c prctl-seccomp-filter-v.c \ prctl-seccomp-strict.c prctl-securebits.c prctl-spec-inject.c \ prctl-tid_address.c prctl-tsc.c pread64-pwrite64.c preadv.c \ preadv-pwritev.c preadv2-pwritev2.c print_maxfd.c \ - printpath-umovestr.c printpath-umovestr-peekdata.c \ - printpath-umovestr-undumpable.c printsignal-Xabbrev.c \ - printsignal-Xraw.c printsignal-Xverbose.c printstr.c \ - printstrn-umoven.c printstrn-umoven-peekdata.c \ - printstrn-umoven-undumpable.c prlimit64.c process_vm_readv.c \ - process_vm_writev.c pselect6.c ptrace.c ptrace_syscall_info.c \ - pwritev.c qual_fault.c qual_inject-error-signal.c \ - qual_inject-retval.c qual_inject-signal.c qual_signal.c \ - quotactl.c quotactl-Xabbrev.c quotactl-Xraw.c \ - quotactl-Xverbose.c quotactl-success.c quotactl-success-v.c \ - quotactl-v.c quotactl-xfs.c quotactl-xfs-success.c \ - quotactl-xfs-success-v.c quotactl-xfs-v.c read-write.c \ - readahead.c readdir.c readlink.c readlinkat.c readv.c reboot.c \ - recvfrom.c recvmmsg-timeout.c recvmsg.c redirect-fds.c \ - remap_file_pages.c remap_file_pages-Xabbrev.c \ + print_ppid_tracerpid.c printpath-umovestr.c \ + printpath-umovestr-peekdata.c printpath-umovestr-undumpable.c \ + printsignal-Xabbrev.c printsignal-Xraw.c \ + printsignal-Xverbose.c printstr.c printstrn-umoven.c \ + printstrn-umoven-peekdata.c printstrn-umoven-undumpable.c \ + prlimit64.c prlimit64--pidns-translation.c process_vm_readv.c \ + process_vm_readv--pidns-translation.c process_vm_writev.c \ + process_vm_writev--pidns-translation.c pselect6.c ptrace.c \ + ptrace_syscall_info.c pwritev.c qual_fault.c \ + qual_inject-error-signal.c qual_inject-retval.c \ + qual_inject-signal.c qual_signal.c quotactl.c \ + quotactl-Xabbrev.c quotactl-Xraw.c quotactl-Xverbose.c \ + quotactl-success.c quotactl-success-v.c quotactl-v.c \ + quotactl-xfs.c quotactl-xfs-success.c quotactl-xfs-success-v.c \ + quotactl-xfs-v.c read-write.c readahead.c readdir.c readlink.c \ + readlinkat.c readv.c reboot.c recv-MSG_TRUNC.c recvfrom.c \ + recvfrom-MSG_TRUNC.c recvmmsg-timeout.c recvmsg.c \ + redirect-fds.c remap_file_pages.c remap_file_pages-Xabbrev.c \ remap_file_pages-Xraw.c remap_file_pages-Xverbose.c rename.c \ renameat.c renameat2.c request_key.c restart_syscall.c \ riscv_flush_icache.c rmdir.c rt_sigaction.c rt_sigpending.c \ - rt_sigprocmask.c rt_sigqueueinfo.c rt_sigreturn.c \ + rt_sigprocmask.c rt_sigqueueinfo.c \ + rt_sigqueueinfo--pidns-translation.c rt_sigreturn.c \ rt_sigsuspend.c rt_sigtimedwait.c rt_tgsigqueueinfo.c \ - run_expect_termsig.c s390_guarded_storage.c \ - s390_guarded_storage-v.c s390_pci_mmio_read_write.c \ - s390_runtime_instr.c s390_sthyi.c s390_sthyi-v.c \ - sched_get_priority_mxx.c sched_rr_get_interval.c \ - sched_xetaffinity.c sched_xetattr.c sched_xetparam.c \ - sched_xetscheduler.c sched_yield.c scm_rights.c \ - seccomp-filter.c seccomp-filter-v.c seccomp-strict.c \ - seccomp_get_action_avail.c select.c select-P.c semop.c \ - sendfile.c sendfile64.c set_mempolicy.c set_ptracer_any.c \ - set_sigblock.c set_sigign.c setdomainname.c setfsgid.c \ - setfsgid32.c setfsuid.c setfsuid32.c setgid.c setgid32.c \ - setgroups.c setgroups32.c sethostname.c setns.c setregid.c \ - setregid32.c setresgid.c setresgid32.c setresuid.c \ - setresuid32.c setreuid.c setreuid32.c setrlimit.c \ - setrlimit-Xabbrev.c setrlimit-Xraw.c setrlimit-Xverbose.c \ - setuid.c setuid32.c shmxt.c shutdown.c sigaction.c \ - sigaltstack.c siginfo.c signal.c signal_receive.c signalfd4.c \ - sigpending.c sigprocmask.c sigreturn.c sigsuspend.c sleep.c \ - so_error.c so_linger.c so_peercred.c so_peercred-Xabbrev.c \ - so_peercred-Xraw.c so_peercred-Xverbose.c sock_filter-v.c \ - sock_filter-v-Xabbrev.c sock_filter-v-Xraw.c \ - sock_filter-v-Xverbose.c sockaddr_xlat-Xabbrev.c \ - sockaddr_xlat-Xraw.c sockaddr_xlat-Xverbose.c socketcall.c \ - sockopt-sol_netlink.c sockopt-timestamp.c splice.c \ - $(stack_fcall_SOURCES) $(stack_fcall_mangled_SOURCES) stat.c \ - stat64.c statfs.c statfs64.c statx.c swap.c sxetmask.c \ - symlink.c symlinkat.c sync.c sync_file_range.c \ - sync_file_range2.c sysinfo.c syslog.c tee.c threads-execve.c \ + rt_tgsigqueueinfo--pidns-translation.c run_expect_termsig.c \ + s390_guarded_storage.c s390_guarded_storage-v.c \ + s390_pci_mmio_read_write.c s390_runtime_instr.c s390_sthyi.c \ + s390_sthyi-v.c sched_get_priority_mxx.c \ + sched_rr_get_interval.c sched_xetaffinity.c \ + sched_xetaffinity--pidns-translation.c sched_xetattr.c \ + sched_xetattr--pidns-translation.c sched_xetparam.c \ + sched_xetparam--pidns-translation.c sched_xetscheduler.c \ + sched_xetscheduler--pidns-translation.c sched_yield.c \ + scm_rights.c seccomp-filter.c seccomp-filter-v.c \ + seccomp-strict.c seccomp_get_action_avail.c select.c \ + select-P.c semop.c semop-indirect.c semtimedop.c sendfile.c \ + sendfile64.c set_mempolicy.c set_mempolicy-Xabbrev.c \ + set_mempolicy-Xraw.c set_mempolicy-Xverbose.c \ + set_ptracer_any.c set_sigblock.c set_sigign.c setdomainname.c \ + setfsgid.c setfsgid32.c setfsuid.c setfsuid32.c setgid.c \ + setgid32.c setgroups.c setgroups32.c sethostname.c setns.c \ + setpgrp-exec.c setregid.c setregid32.c setresgid.c \ + setresgid32.c setresuid.c setresuid32.c setreuid.c \ + setreuid32.c setrlimit.c setrlimit-Xabbrev.c setrlimit-Xraw.c \ + setrlimit-Xverbose.c setuid.c setuid32.c shmxt.c shutdown.c \ + sigaction.c sigaltstack.c siginfo.c signal.c signal_receive.c \ + signal_receive--pidns-translation.c signalfd4.c sigpending.c \ + sigprocmask.c sigreturn.c sigsuspend.c sleep.c so_error.c \ + so_linger.c so_peercred.c so_peercred--pidns-translation.c \ + so_peercred-Xabbrev.c so_peercred-Xraw.c \ + so_peercred-Xverbose.c sock_filter-v.c sock_filter-v-Xabbrev.c \ + sock_filter-v-Xraw.c sock_filter-v-Xverbose.c \ + sockaddr_xlat-Xabbrev.c sockaddr_xlat-Xraw.c \ + sockaddr_xlat-Xverbose.c socketcall.c sockopt-sol_netlink.c \ + sockopt-timestamp.c splice.c $(stack_fcall_SOURCES) \ + $(stack_fcall_attach_SOURCES) $(stack_fcall_mangled_SOURCES) \ + stat.c stat64.c statfs.c statfs64.c status-all.c \ + status-failed.c status-failed-long.c status-failed-status.c \ + status-none.c status-none-f.c status-none-threads.c \ + status-successful.c status-successful-long.c \ + status-successful-status.c status-unfinished.c \ + status-unfinished-threads.c statx.c strace--strings-in-hex.c \ + strace--strings-in-hex-all.c \ + strace--strings-in-hex-non-ascii.c strace-n.c strace-x.c \ + strace-xx.c swap.c sxetmask.c symlink.c symlinkat.c sync.c \ + sync_file_range.c sync_file_range2.c sysinfo.c syslog.c \ + syslog-success.c tee.c tgkill.c tgkill--pidns-translation.c \ + threads-execve.c threads-execve--quiet-thread-execve.c \ + threads-execve-q.c threads-execve-qq.c threads-execve-qqq.c \ time.c timer_create.c timer_xettime.c timerfd_xettime.c \ - times.c times-fail.c truncate.c truncate64.c ugetrlimit.c \ - uio.c umask.c umount.c umount2.c umoven-illptr.c umovestr.c \ - umovestr-illptr.c umovestr2.c umovestr3.c uname.c \ - unblock_reset_raise.c unix-pair-send-recv.c \ + times.c times-fail.c tkill.c tkill--pidns-translation.c \ + tracer_ppid_pgid_sid.c $(trie_test_SOURCES) truncate.c \ + truncate64.c ugetrlimit.c uio.c umask.c umount.c umount2.c \ + umoven-illptr.c umovestr.c umovestr-illptr.c umovestr2.c \ + umovestr3.c umovestr_cached.c umovestr_cached_adjacent.c \ + uname.c unblock_reset_raise.c unix-pair-send-recv.c \ unix-pair-sendto-recvfrom.c unlink.c unlinkat.c unshare.c \ userfaultfd.c ustat.c utime.c utimensat.c utimensat-Xabbrev.c \ utimensat-Xraw.c utimensat-Xverbose.c utimes.c vfork-f.c \ vhangup.c vmsplice.c wait4.c wait4-v.c waitid.c waitid-v.c \ waitpid.c xattr.c xattr-strings.c xet_robust_list.c \ - xet_thread_area_x86.c xetitimer.c xetpgid.c xetpriority.c \ - xettimeofday.c zeroargc.c + xet_robust_list--pidns-translation.c xet_thread_area_x86.c \ + xetitimer.c xetpgid.c xetpgid--pidns-translation.c \ + xetpriority.c xetpriority--pidns-translation.c xettimeofday.c \ + zeroargc.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -3846,9 +5281,11 @@ am__set_TESTS_bases = \ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` +AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' RECHECK_LOGS = $(TEST_LOGS) AM_RECURSIVE_TARGETS = check recheck -@ENABLE_STACKTRACE_TRUE@am__EXEEXT_2 = strace-k.test $(am__append_1) +@ENABLE_STACKTRACE_TRUE@am__EXEEXT_2 = strace-k.test strace-k-p.test \ +@ENABLE_STACKTRACE_TRUE@ $(am__append_1) TEST_SUITE_LOG = test-suite.log TEST_EXTENSIONS = @EXEEXT@ .test am__test_logs1 = $(TESTS:=.log) @@ -3874,17 +5311,22 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_EXEEXT = @BUILD_EXEEXT@ BUILD_OBJEXT = @BUILD_OBJEXT@ -CC = @CC@ +CC = @CC_FOR_M32@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ +CC_FOR_M32 = @CC_FOR_M32@ +CC_FOR_MX32 = @CC_FOR_MX32@ CFLAGS = @CFLAGS@ CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ +CFLAGS_FOR_M32 = @CFLAGS_FOR_M32@ +CFLAGS_FOR_MX32 = @CFLAGS_FOR_MX32@ CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@ CODE_COVERAGE_CPPFLAGS = @CODE_COVERAGE_CPPFLAGS@ CODE_COVERAGE_CXXFLAGS = @CODE_COVERAGE_CXXFLAGS@ @@ -3895,7 +5337,11 @@ COPYRIGHT_YEAR = @COPYRIGHT_YEAR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@ +CPPFLAGS_FOR_M32 = @CPPFLAGS_FOR_M32@ +CPPFLAGS_FOR_MX32 = @CPPFLAGS_FOR_MX32@ CPP_FOR_BUILD = @CPP_FOR_BUILD@ +CPP_FOR_M32 = @CPP_FOR_M32@ +CPP_FOR_MX32 = @CPP_FOR_MX32@ CYGPATH_W = @CYGPATH_W@ DEB_CHANGELOGTIME = @DEB_CHANGELOGTIME@ DEFS = @DEFS@ @@ -3937,7 +5383,6 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PERL = @PERL@ RANLIB = @RANLIB@ READELF = @READELF@ RPM_CHANGELOGTIME = @RPM_CHANGELOGTIME@ @@ -3956,6 +5401,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CC_FOR_BUILD = @ac_ct_CC_FOR_BUILD@ am__include = @am__include@ @@ -4029,7 +5475,7 @@ OS = linux ARCH = @arch_m32@ NATIVE_ARCH = @arch_native@ MPERS_NAME = m32 -MPERS_CC_FLAGS = @cc_flags_m32@ +MPERS_CC_FLAGS = @CFLAGS_FOR_M32@ @cc_flags_m32@ ARCH_MFLAGS = -DMPERS_IS_$(MPERS_NAME) $(MPERS_CC_FLAGS) AM_CFLAGS = $(WARN_CFLAGS) AM_CPPFLAGS = $(ARCH_MFLAGS) \ @@ -4046,6 +5492,7 @@ AM_CPPFLAGS = $(ARCH_MFLAGS) \ AM_LDFLAGS = $(ARCH_MFLAGS) libtests_a_SOURCES = \ create_nl_socket.c \ + create_tmpfile.c \ errno2name.c \ error_msg.c \ fill_memory.c \ @@ -4057,15 +5504,21 @@ libtests_a_SOURCES = \ inode_of_sockfd.c \ libmmsg.c \ libsocketcall.c \ + lock_file.c \ overflowuid.c \ + pidns.c \ + pidns.h \ pipe_maxfd.c \ print_quoted_string.c \ print_time.c \ printflags.c \ - printxval.c \ + printxval-Xabbrev.c \ + printxval-Xraw.c \ + printxval-Xverbose.c \ signal2name.c \ skip_unavailable.c \ sprintrc.c \ + status.c \ tail_alloc.c \ test_netlink.h \ test_nlattr.h \ @@ -4075,6 +5528,7 @@ libtests_a_SOURCES = \ test_ucopy.h \ tests.h \ tprintf.c \ + xmalloc_for_tests.c \ # end of libtests_a_SOURCES libtests_a_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 @@ -4094,10 +5548,6 @@ PURE_EXECUTABLES = \ aio_pgetevents \ alarm \ bpf \ - bpf-obj_get_info_by_fd \ - bpf-obj_get_info_by_fd-prog \ - bpf-obj_get_info_by_fd-prog-v \ - bpf-obj_get_info_by_fd-v \ bpf-v \ brk \ btrfs \ @@ -4109,13 +5559,34 @@ PURE_EXECUTABLES = \ clock_adjtime \ clock_nanosleep \ clock_xettime \ + clone-flags \ + clone3 \ + clone3-Xabbrev \ + clone3-Xraw \ + clone3-Xverbose \ + close_range \ + close_range-P \ + close_range-y \ + close_range-yy \ copy_file_range \ creat \ delete_module \ + dev--decode-fds-dev \ + dev--decode-fds-path \ + dev--decode-fds-socket \ dev-yy \ dup \ + dup-P \ + dup-y \ + dup-yy \ dup2 \ + dup2-P \ + dup2-y \ + dup2-yy \ dup3 \ + dup3-P \ + dup3-y \ + dup3-yy \ epoll_create \ epoll_create1 \ epoll_ctl \ @@ -4126,6 +5597,13 @@ PURE_EXECUTABLES = \ execve \ execveat \ faccessat \ + faccessat-P \ + faccessat-y \ + faccessat-yy \ + faccessat2 \ + faccessat2-P \ + faccessat2-y \ + faccessat2-yy \ fadvise64 \ fadvise64_64 \ fallocate \ @@ -4148,6 +5626,12 @@ PURE_EXECUTABLES = \ file_ioctl \ finit_module \ flock \ + fsconfig \ + fsconfig-P \ + fsmount \ + fsopen \ + fspick \ + fspick-P \ fstat \ fstat-Xabbrev \ fstat-Xraw \ @@ -4168,7 +5652,9 @@ PURE_EXECUTABLES = \ getcpu \ getcwd \ getdents \ + getdents-v \ getdents64 \ + getdents64-v \ getegid \ getegid32 \ geteuid \ @@ -4192,12 +5678,17 @@ PURE_EXECUTABLES = \ getsockname \ getuid \ getuid32 \ - getxxid \ + getxgid \ + getxpid \ + getxuid \ group_req \ inet-cmsg \ init_module \ inotify \ + inotify_init \ + inotify_init-y \ inotify_init1 \ + inotify_init1-y \ io_uring_enter \ io_uring_register \ io_uring_setup \ @@ -4205,6 +5696,21 @@ PURE_EXECUTABLES = \ ioctl_block \ ioctl_dm \ ioctl_evdev \ + ioctl_evdev-Xabbrev \ + ioctl_evdev-Xraw \ + ioctl_evdev-Xverbose \ + ioctl_evdev-v \ + ioctl_evdev-v-Xabbrev \ + ioctl_evdev-v-Xraw \ + ioctl_evdev-v-Xverbose \ + ioctl_hdio \ + ioctl_hdio-Xabbrev \ + ioctl_hdio-Xraw \ + ioctl_hdio-Xverbose \ + ioctl_hdio-v \ + ioctl_hdio-v-Xabbrev \ + ioctl_hdio-v-Xraw \ + ioctl_hdio-v-Xverbose \ ioctl_inotify \ ioctl_kvm_run \ ioctl_kvm_run-v \ @@ -4220,8 +5726,17 @@ PURE_EXECUTABLES = \ ioctl_sg_io_v3 \ ioctl_sg_io_v4 \ ioctl_sock_gifconf \ + ioctl_tee \ ioctl_uffdio \ ioctl_v4l2 \ + ioctl_v4l2-Xabbrev \ + ioctl_v4l2-Xraw \ + ioctl_v4l2-Xverbose \ + ioctl_v4l2-v \ + ioctl_v4l2-v-Xabbrev \ + ioctl_v4l2-v-Xraw \ + ioctl_v4l2-v-Xverbose \ + ioctl_watchdog \ ioperm \ iopl \ ioprio \ @@ -4270,7 +5785,12 @@ PURE_EXECUTABLES = \ lstat \ lstat64 \ madvise \ + maybe_switch_current_tcp \ + maybe_switch_current_tcp--quiet-thread-execve \ mbind \ + mbind-Xabbrev \ + mbind-Xraw \ + mbind-Xverbose \ membarrier \ memfd_create \ memfd_create-Xabbrev \ @@ -4300,6 +5820,8 @@ PURE_EXECUTABLES = \ mount-Xabbrev \ mount-Xraw \ mount-Xverbose \ + move_mount \ + move_mount-P \ move_pages \ move_pages-Xabbrev \ move_pages-Xraw \ @@ -4312,6 +5834,10 @@ PURE_EXECUTABLES = \ msg_name \ munlockall \ nanosleep \ + net--decode-fds-dev-netlink \ + net--decode-fds-none-netlink \ + net--decode-fds-path-netlink \ + net--decode-fds-socket-netlink \ net-icmp_filter \ net-packet_mreq \ net-packet_mreq-Xabbrev \ @@ -4391,7 +5917,19 @@ PURE_EXECUTABLES = \ oldselect-efault \ oldstat \ open \ + open_tree \ + open_tree-P \ openat \ + openat2 \ + openat2-Xabbrev \ + openat2-Xraw \ + openat2-Xverbose \ + openat2-v \ + openat2-v-y \ + openat2-v-y-Xabbrev \ + openat2-v-y-Xraw \ + openat2-v-y-Xverbose \ + openat2-y \ osf_utimes \ pause \ perf_event_open \ @@ -4399,6 +5937,16 @@ PURE_EXECUTABLES = \ personality-Xabbrev \ personality-Xraw \ personality-Xverbose \ + pidfd_getfd \ + pidfd_getfd-y \ + pidfd_getfd-yy \ + pidfd_open \ + pidfd_open--decode-fd-path \ + pidfd_open--decode-fd-pidfd \ + pidfd_open--decode-fd-socket \ + pidfd_open-P \ + pidfd_open-y \ + pidfd_open-yy \ pidfd_send_signal \ pipe \ pipe2 \ @@ -4406,9 +5954,7 @@ PURE_EXECUTABLES = \ pkey_free \ pkey_mprotect \ poll \ - poll-P \ ppoll \ - ppoll-P \ prctl-arg2-intptr \ prctl-dumpable \ prctl-name \ @@ -4450,7 +5996,9 @@ PURE_EXECUTABLES = \ readlinkat \ readv \ reboot \ + recv-MSG_TRUNC \ recvfrom \ + recvfrom-MSG_TRUNC \ recvmmsg-timeout \ recvmsg \ remap_file_pages \ @@ -4488,9 +6036,14 @@ PURE_EXECUTABLES = \ seccomp_get_action_avail \ select \ semop \ + semop-indirect \ + semtimedop \ sendfile \ sendfile64 \ set_mempolicy \ + set_mempolicy-Xabbrev \ + set_mempolicy-Xraw \ + set_mempolicy-Xverbose \ setdomainname \ setfsgid \ setfsgid32 \ @@ -4548,7 +6101,23 @@ PURE_EXECUTABLES = \ stat64 \ statfs \ statfs64 \ + status-all \ + status-failed \ + status-failed-long \ + status-failed-status \ + status-none \ + status-none-f \ + status-successful \ + status-successful-long \ + status-successful-status \ + status-unfinished \ statx \ + strace--strings-in-hex \ + strace--strings-in-hex-all \ + strace--strings-in-hex-non-ascii \ + strace-n \ + strace-x \ + strace-xx \ swap \ sxetmask \ symlink \ @@ -4559,12 +6128,14 @@ PURE_EXECUTABLES = \ sysinfo \ syslog \ tee \ + tgkill \ time \ timer_create \ timer_xettime \ timerfd_xettime \ times \ times-fail \ + tkill \ truncate \ truncate64 \ ugetrlimit \ @@ -4577,6 +6148,8 @@ PURE_EXECUTABLES = \ umovestr-illptr \ umovestr2 \ umovestr3 \ + umovestr_cached \ + umovestr_cached_adjacent \ uname \ unlink \ unlinkat \ @@ -4614,6 +6187,8 @@ ftruncate64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 localtime_LDADD = $(clock_LIBS) $(LDADD) looping_threads_LDADD = -lpthread $(LDADD) lstat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 +maybe_switch_current_tcp_LDADD = -lpthread $(LDADD) +maybe_switch_current_tcp__quiet_thread_execve_LDADD = -lpthread $(LDADD) mmap64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 mmap64_Xabbrev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 mmap64_Xraw_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 @@ -4627,17 +6202,30 @@ preadv_pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 stat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 statfs_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 +status_none_threads_LDADD = -lpthread $(LDADD) +status_unfinished_threads_LDADD = -lpthread $(LDADD) threads_execve_LDADD = -lpthread $(clock_LIBS) $(LDADD) +threads_execve__quiet_thread_execve_LDADD = -lpthread $(clock_LIBS) $(LDADD) +threads_execve_q_LDADD = -lpthread $(clock_LIBS) $(LDADD) +threads_execve_qq_LDADD = -lpthread $(clock_LIBS) $(LDADD) +threads_execve_qqq_LDADD = -lpthread $(clock_LIBS) $(LDADD) times_LDADD = $(clock_LIBS) $(LDADD) truncate64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 uio_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 stack_fcall_SOURCES = stack-fcall.c \ stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c +stack_fcall_attach_SOURCES = stack-fcall-attach.c \ + stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c + stack_fcall_mangled_SOURCES = stack-fcall-mangled.c \ stack-fcall-mangled-0.c stack-fcall-mangled-1.c \ stack-fcall-mangled-2.c stack-fcall-mangled-3.c +trie_test_SOURCES = trie_test.c trie_for_tests.c +trie_test_CPPFLAGS = $(AM_CPPFLAGS) $(CODE_COVERAGE_CPPFLAGS) +trie_test_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS) +trie_test_LDADD = $(LDADD) $(CODE_COVERAGE_LIBS) # Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in; do not edit. GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test \ @@ -4651,50 +6239,114 @@ GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test \ btrfs.gen.test chmod.gen.test chown.gen.test chown32.gen.test \ chroot.gen.test clock.gen.test clock_adjtime.gen.test \ clock_nanosleep.gen.test clock_xettime.gen.test \ - copy_file_range.gen.test creat.gen.test delete_module.gen.test \ - dev-yy.gen.test dup.gen.test dup2.gen.test dup3.gen.test \ + clone3.gen.test clone3-Xabbrev.gen.test clone3-Xraw.gen.test \ + clone3-Xverbose.gen.test clone3-success-Xabbrev.gen.test \ + clone3-success-Xraw.gen.test clone3-success-Xverbose.gen.test \ + clone_parent.gen.test clone_parent--quiet-exit.gen.test \ + clone_parent-q.gen.test clone_parent-qq.gen.test \ + clone_ptrace--quiet-attach.gen.test \ + clone_ptrace--quiet-exit.gen.test clone_ptrace-q.gen.test \ + clone_ptrace-qq.gen.test close_range.gen.test \ + close_range-P.gen.test close_range-y.gen.test \ + close_range-yy.gen.test copy_file_range.gen.test \ + creat.gen.test delete_module.gen.test \ + dev--decode-fds-dev.gen.test dev--decode-fds-path.gen.test \ + dev--decode-fds-socket.gen.test dev-yy.gen.test dup.gen.test \ + dup-P.gen.test dup-y.gen.test dup-yy.gen.test dup2.gen.test \ + dup2-P.gen.test dup2-y.gen.test dup2-yy.gen.test dup3.gen.test \ + dup3-P.gen.test dup3-y.gen.test dup3-yy.gen.test \ epoll_create.gen.test epoll_create1.gen.test \ epoll_ctl.gen.test epoll_pwait.gen.test epoll_wait.gen.test \ erestartsys.gen.test execveat.gen.test execveat-v.gen.test \ - faccessat.gen.test fadvise64_64.gen.test fallocate.gen.test \ + faccessat-P.gen.test faccessat-y.gen.test \ + faccessat-yy.gen.test faccessat2-P.gen.test \ + faccessat2-y.gen.test faccessat2-yy.gen.test \ + fadvise64_64.gen.test fallocate.gen.test \ fanotify_init.gen.test fanotify_mark.gen.test \ fanotify_mark-Xabbrev.gen.test fanotify_mark-Xraw.gen.test \ fanotify_mark-Xverbose.gen.test fchdir.gen.test \ fchmod.gen.test fchmodat.gen.test fchown.gen.test \ fchown32.gen.test fchownat.gen.test fcntl.gen.test \ - fcntl64.gen.test fdatasync.gen.test file_handle.gen.test \ - file_ioctl.gen.test finit_module.gen.test flock.gen.test \ - fork-f.gen.test fstat.gen.test fstat-Xabbrev.gen.test \ - fstat-Xraw.gen.test fstat-Xverbose.gen.test fstat64.gen.test \ + fcntl--pidns-translation.gen.test fcntl64.gen.test \ + fcntl64--pidns-translation.gen.test fdatasync.gen.test \ + file_handle.gen.test file_ioctl.gen.test \ + filter_seccomp.gen.test filter_seccomp-flag.gen.test \ + finit_module.gen.test flock.gen.test fork-f.gen.test \ + fsconfig.gen.test fsconfig-P.gen.test fsmount.gen.test \ + fsopen.gen.test fspick.gen.test fspick-P.gen.test \ + fstat.gen.test fstat-Xabbrev.gen.test fstat-Xraw.gen.test \ + fstat-Xverbose.gen.test fstat64.gen.test \ fstat64-Xabbrev.gen.test fstat64-Xraw.gen.test \ fstat64-Xverbose.gen.test fstatat64.gen.test fstatfs.gen.test \ fstatfs64.gen.test fsync.gen.test fsync-y.gen.test \ ftruncate.gen.test ftruncate64.gen.test futimesat.gen.test \ get_mempolicy.gen.test getcpu.gen.test getcwd.gen.test \ - getdents.gen.test getdents64.gen.test getegid.gen.test \ - getegid32.gen.test geteuid.gen.test geteuid32.gen.test \ - getgid.gen.test getgid32.gen.test getgroups.gen.test \ + getdents.gen.test getdents-v.gen.test getdents64.gen.test \ + getdents64-v.gen.test getegid.gen.test getegid-creds.gen.test \ + getegid32.gen.test getegid32-creds.gen.test geteuid.gen.test \ + geteuid-creds.gen.test geteuid32.gen.test \ + geteuid32-creds.gen.test getgid.gen.test getgid-creds.gen.test \ + getgid32.gen.test getgid32-creds.gen.test getgroups.gen.test \ getgroups32.gen.test getpeername.gen.test getpgrp.gen.test \ - getpid.gen.test getppid.gen.test getrandom.gen.test \ - getresgid.gen.test getresgid32.gen.test getresuid.gen.test \ - getresuid32.gen.test getrlimit.gen.test getrusage.gen.test \ - getsid.gen.test getsockname.gen.test gettid.gen.test \ - getuid32.gen.test getxxid.gen.test group_req.gen.test \ - inet-cmsg.gen.test init_module.gen.test inotify.gen.test \ - inotify_init1.gen.test io_uring_enter.gen.test \ - io_uring_register.gen.test io_uring_setup.gen.test \ - ioctl_block.gen.test ioctl_dm.gen.test ioctl_dm-v.gen.test \ - ioctl_evdev.gen.test ioctl_evdev-v.gen.test \ - ioctl_inotify.gen.test ioctl_kvm_run.gen.test \ - ioctl_kvm_run-v.gen.test ioctl_kvm_run_auxstr_vcpu.gen.test \ - ioctl_loop.gen.test ioctl_loop-nv.gen.test \ - ioctl_loop-v.gen.test ioctl_mtd.gen.test ioctl_nbd.gen.test \ - ioctl_nsfs.gen.test ioctl_perf.gen.test ioctl_ptp.gen.test \ - ioctl_random.gen.test ioctl_rtc.gen.test ioctl_rtc-v.gen.test \ - ioctl_scsi.gen.test ioctl_sg_io_v3.gen.test \ - ioctl_sg_io_v4.gen.test ioctl_sock_gifconf.gen.test \ - ioctl_uffdio.gen.test ioctl_v4l2.gen.test ioperm.gen.test \ - iopl.gen.test ioprio.gen.test ioprio-Xabbrev.gen.test \ + getpgrp--pidns-translation.gen.test getpid.gen.test \ + getpid--pidns-translation.gen.test getppid.gen.test \ + getrandom.gen.test getresgid.gen.test getresgid32.gen.test \ + getresuid.gen.test getresuid32.gen.test getrlimit.gen.test \ + getrusage.gen.test getsid.gen.test \ + getsid--pidns-translation.gen.test getsockname.gen.test \ + gettid.gen.test getuid-creds.gen.test getuid32.gen.test \ + getuid32-creds.gen.test getxgid.gen.test getxpid.gen.test \ + getxuid.gen.test group_req.gen.test inet-cmsg.gen.test \ + init_module.gen.test inotify.gen.test inotify_init.gen.test \ + inotify_init1.gen.test inotify_init1-y.gen.test \ + io_uring_enter.gen.test io_uring_register.gen.test \ + io_uring_setup.gen.test ioctl_block.gen.test ioctl_dm.gen.test \ + ioctl_dm-v.gen.test ioctl_evdev.gen.test \ + ioctl_evdev-Xabbrev.gen.test ioctl_evdev-Xraw.gen.test \ + ioctl_evdev-Xverbose.gen.test ioctl_evdev-v.gen.test \ + ioctl_evdev-v-Xabbrev.gen.test ioctl_evdev-v-Xraw.gen.test \ + ioctl_evdev-v-Xverbose.gen.test \ + ioctl_evdev-success-Xabbrev.gen.test \ + ioctl_evdev-success-Xraw.gen.test \ + ioctl_evdev-success-Xverbose.gen.test \ + ioctl_evdev-success-v.gen.test \ + ioctl_evdev-success-v-Xabbrev.gen.test \ + ioctl_evdev-success-v-Xraw.gen.test \ + ioctl_evdev-success-v-Xverbose.gen.test ioctl_hdio.gen.test \ + ioctl_hdio-Xabbrev.gen.test ioctl_hdio-Xraw.gen.test \ + ioctl_hdio-Xverbose.gen.test ioctl_hdio-v.gen.test \ + ioctl_hdio-v-Xabbrev.gen.test ioctl_hdio-v-Xraw.gen.test \ + ioctl_hdio-v-Xverbose.gen.test ioctl_hdio-success.gen.test \ + ioctl_hdio-success-Xabbrev.gen.test \ + ioctl_hdio-success-Xraw.gen.test \ + ioctl_hdio-success-Xverbose.gen.test \ + ioctl_hdio-success-v.gen.test \ + ioctl_hdio-success-v-Xabbrev.gen.test \ + ioctl_hdio-success-v-Xraw.gen.test \ + ioctl_hdio-success-v-Xverbose.gen.test ioctl_inotify.gen.test \ + ioctl_kvm_run.gen.test ioctl_kvm_run-v.gen.test \ + ioctl_kvm_run_auxstr_vcpu.gen.test ioctl_loop.gen.test \ + ioctl_loop-nv.gen.test ioctl_loop-v.gen.test \ + ioctl_mtd.gen.test ioctl_nbd.gen.test ioctl_nsfs.gen.test \ + ioctl_perf.gen.test ioctl_perf-success.gen.test \ + ioctl_ptp.gen.test ioctl_random.gen.test ioctl_rtc.gen.test \ + ioctl_rtc-v.gen.test ioctl_scsi.gen.test \ + ioctl_sg_io_v3.gen.test ioctl_sg_io_v4.gen.test \ + ioctl_sock_gifconf.gen.test ioctl_tee.gen.test \ + ioctl_uffdio.gen.test ioctl_v4l2.gen.test \ + ioctl_v4l2-Xabbrev.gen.test ioctl_v4l2-Xraw.gen.test \ + ioctl_v4l2-Xverbose.gen.test ioctl_v4l2-v.gen.test \ + ioctl_v4l2-v-Xabbrev.gen.test ioctl_v4l2-v-Xraw.gen.test \ + ioctl_v4l2-v-Xverbose.gen.test ioctl_v4l2-success.gen.test \ + ioctl_v4l2-success-Xabbrev.gen.test \ + ioctl_v4l2-success-Xraw.gen.test \ + ioctl_v4l2-success-Xverbose.gen.test \ + ioctl_v4l2-success-v.gen.test \ + ioctl_v4l2-success-v-Xabbrev.gen.test \ + ioctl_v4l2-success-v-Xraw.gen.test \ + ioctl_v4l2-success-v-Xverbose.gen.test ioctl_watchdog.gen.test \ + ioperm.gen.test iopl.gen.test ioprio.gen.test \ + ioprio--pidns-translation.gen.test ioprio-Xabbrev.gen.test \ ioprio-Xraw.gen.test ioprio-Xverbose.gen.test ip_mreq.gen.test \ ipc.gen.test ipc_msg.gen.test ipc_msg-Xabbrev.gen.test \ ipc_msg-Xraw.gen.test ipc_msg-Xverbose.gen.test \ @@ -4704,34 +6356,47 @@ GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test \ ipc_sem-Xverbose.gen.test ipc_shm.gen.test \ ipc_shm-Xabbrev.gen.test ipc_shm-Xraw.gen.test \ ipc_shm-Xverbose.gen.test kcmp.gen.test kcmp-y.gen.test \ - kern_features.gen.test kernel_version.gen.test \ - kernel_version-Xabbrev.gen.test kernel_version-Xraw.gen.test \ - kernel_version-Xverbose.gen.test kexec_file_load.gen.test \ - kexec_load.gen.test keyctl.gen.test keyctl-Xabbrev.gen.test \ - keyctl-Xraw.gen.test keyctl-Xverbose.gen.test kill.gen.test \ + kcmp-y--pidns-translation.gen.test kern_features.gen.test \ + kernel_version.gen.test kernel_version-Xabbrev.gen.test \ + kernel_version-Xraw.gen.test kernel_version-Xverbose.gen.test \ + kexec_file_load.gen.test kexec_load.gen.test keyctl.gen.test \ + keyctl-Xabbrev.gen.test keyctl-Xraw.gen.test \ + keyctl-Xverbose.gen.test kill.gen.test \ + kill--pidns-translation.gen.test ksysent.gen.test \ lchown.gen.test lchown32.gen.test link.gen.test \ linkat.gen.test lookup_dcookie.gen.test lstat.gen.test \ - lstat64.gen.test madvise.gen.test mbind.gen.test \ - membarrier.gen.test memfd_create.gen.test \ - memfd_create-Xabbrev.gen.test memfd_create-Xraw.gen.test \ - memfd_create-Xverbose.gen.test migrate_pages.gen.test \ - mincore.gen.test mkdir.gen.test mkdirat.gen.test \ - mknod.gen.test mknodat.gen.test mlock.gen.test mlock2.gen.test \ + lstat64.gen.test madvise.gen.test \ + maybe_switch_current_tcp.gen.test \ + maybe_switch_current_tcp--quiet-thread-execve.gen.test \ + mbind.gen.test mbind-Xabbrev.gen.test mbind-Xraw.gen.test \ + mbind-Xverbose.gen.test membarrier.gen.test \ + memfd_create.gen.test memfd_create-Xabbrev.gen.test \ + memfd_create-Xraw.gen.test memfd_create-Xverbose.gen.test \ + migrate_pages.gen.test \ + migrate_pages--pidns-translation.gen.test mincore.gen.test \ + mkdir.gen.test mkdirat.gen.test mknod.gen.test \ + mknodat.gen.test mlock.gen.test mlock2.gen.test \ mlockall.gen.test mmap-Xabbrev.gen.test mmap-Xraw.gen.test \ mmap-Xverbose.gen.test mmap64.gen.test mmap64-Xabbrev.gen.test \ mmap64-Xraw.gen.test mmap64-Xverbose.gen.test mmsg.gen.test \ mmsg-silent.gen.test mmsg_name.gen.test mmsg_name-v.gen.test \ modify_ldt.gen.test mount.gen.test mount-Xabbrev.gen.test \ mount-Xraw.gen.test mount-Xverbose.gen.test \ - move_pages.gen.test move_pages-Xabbrev.gen.test \ - move_pages-Xraw.gen.test move_pages-Xverbose.gen.test \ - mq.gen.test mq_sendrecv.gen.test mq_sendrecv-read.gen.test \ + move_mount.gen.test move_mount-P.gen.test move_pages.gen.test \ + move_pages-Xabbrev.gen.test move_pages-Xraw.gen.test \ + move_pages-Xverbose.gen.test \ + move_pages--pidns-translation.gen.test mq.gen.test \ + mq_sendrecv.gen.test mq_sendrecv-read.gen.test \ mq_sendrecv-write.gen.test msg_control.gen.test \ msg_control-v.gen.test msg_name.gen.test munlockall.gen.test \ - nanosleep.gen.test net-icmp_filter.gen.test \ - net-packet_mreq.gen.test net-packet_mreq-Xabbrev.gen.test \ - net-packet_mreq-Xraw.gen.test \ + nanosleep.gen.test net--decode-fds-dev-netlink.gen.test \ + net--decode-fds-none-netlink.gen.test \ + net--decode-fds-path-netlink.gen.test \ + net--decode-fds-socket-netlink.gen.test \ + net-icmp_filter.gen.test net-packet_mreq.gen.test \ + net-packet_mreq-Xabbrev.gen.test net-packet_mreq-Xraw.gen.test \ net-packet_mreq-Xverbose.gen.test net-sockaddr.gen.test \ + net-sockaddr--pidns-translation.gen.test \ net-tpacket_req.gen.test net-tpacket_stats.gen.test \ net-yy-inet6.gen.test netlink_audit.gen.test \ netlink_crypto.gen.test netlink_generic.gen.test \ @@ -4750,7 +6415,8 @@ GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test \ nlattr_ifaddrmsg.gen.test nlattr_ifinfomsg.gen.test \ nlattr_ifla_af_spec.gen.test nlattr_ifla_brport.gen.test \ nlattr_ifla_linkinfo.gen.test nlattr_ifla_port.gen.test \ - nlattr_ifla_xdp.gen.test nlattr_inet_diag_msg.gen.test \ + nlattr_ifla_xdp.gen.test nlattr_ifla_xdp-y.gen.test \ + nlattr_inet_diag_msg.gen.test \ nlattr_inet_diag_req_compat.gen.test \ nlattr_inet_diag_req_v2.gen.test \ nlattr_mdba_mdb_entry.gen.test \ @@ -4767,31 +6433,50 @@ GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test \ old_mmap-v-none.gen.test oldfstat.gen.test oldlstat.gen.test \ oldselect.gen.test oldselect-P.gen.test \ oldselect-efault.gen.test oldselect-efault-P.gen.test \ - oldstat.gen.test open.gen.test openat.gen.test \ - orphaned_process_group.gen.test osf_utimes.gen.test \ - pause.gen.test perf_event_open.gen.test \ + oldstat.gen.test open.gen.test open_tree.gen.test \ + open_tree-P.gen.test openat.gen.test openat2.gen.test \ + openat2-Xabbrev.gen.test openat2-Xraw.gen.test \ + openat2-Xverbose.gen.test openat2-v.gen.test \ + openat2-v-y.gen.test openat2-v-y-Xabbrev.gen.test \ + openat2-v-y-Xraw.gen.test openat2-v-y-Xverbose.gen.test \ + openat2-y.gen.test orphaned_process_group.gen.test \ + osf_utimes.gen.test pause.gen.test perf_event_open.gen.test \ perf_event_open_nonverbose.gen.test \ perf_event_open_unabbrev.gen.test personality-Xabbrev.gen.test \ personality-Xraw.gen.test personality-Xverbose.gen.test \ - pidfd_send_signal.gen.test pipe2.gen.test pkey_alloc.gen.test \ - pkey_free.gen.test pkey_mprotect.gen.test ppoll.gen.test \ - ppoll-P.gen.test ppoll-v.gen.test pread64-pwrite64.gen.test \ - preadv.gen.test preadv-pwritev.gen.test \ - preadv2-pwritev2.gen.test printpath-umovestr.gen.test \ + pidfd_getfd.gen.test pidfd_getfd-y.gen.test \ + pidfd_getfd-yy.gen.test pidfd_open.gen.test \ + pidfd_open--decode-fd-path.gen.test \ + pidfd_open--decode-fd-pidfd.gen.test \ + pidfd_open--decode-fd-socket.gen.test pidfd_open-P.gen.test \ + pidfd_open-y.gen.test pidfd_open-yy.gen.test \ + pidfd_open--pidns-translation.gen.test \ + pidfd_send_signal.gen.test \ + pidfd_send_signal--pidns-translation.gen.test pipe2.gen.test \ + pkey_alloc.gen.test pkey_free.gen.test pkey_mprotect.gen.test \ + ppoll.gen.test ppoll-P.gen.test ppoll-v.gen.test \ + pread64-pwrite64.gen.test preadv.gen.test \ + preadv-pwritev.gen.test preadv2-pwritev2.gen.test \ + printpath-umovestr.gen.test \ printpath-umovestr-peekdata.gen.test \ printpath-umovestr-undumpable.gen.test \ printsignal-Xabbrev.gen.test printsignal-Xraw.gen.test \ printsignal-Xverbose.gen.test printstr.gen.test \ printstrn-umoven.gen.test printstrn-umoven-peekdata.gen.test \ printstrn-umoven-undumpable.gen.test prlimit64.gen.test \ - process_vm_readv.gen.test process_vm_writev.gen.test \ + prlimit64--pidns-translation.gen.test \ + process_vm_readv.gen.test \ + process_vm_readv--pidns-translation.gen.test \ + process_vm_writev.gen.test \ + process_vm_writev--pidns-translation.gen.test \ pselect6.gen.test ptrace.gen.test ptrace_syscall_info.gen.test \ pwritev.gen.test quotactl.gen.test quotactl-Xabbrev.gen.test \ quotactl-Xraw.gen.test quotactl-Xverbose.gen.test \ quotactl-v.gen.test quotactl-xfs.gen.test \ quotactl-xfs-v.gen.test read-write.gen.test readahead.gen.test \ readdir.gen.test readlink.gen.test readlinkat.gen.test \ - reboot.gen.test recvfrom.gen.test recvmmsg-timeout.gen.test \ + reboot.gen.test recv-MSG_TRUNC.gen.test recvfrom.gen.test \ + recvfrom-MSG_TRUNC.gen.test recvmmsg-timeout.gen.test \ recvmsg.gen.test regex.gen.test remap_file_pages.gen.test \ remap_file_pages-Xabbrev.gen.test \ remap_file_pages-Xraw.gen.test \ @@ -4799,72 +6484,133 @@ GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test \ renameat.gen.test renameat2.gen.test request_key.gen.test \ riscv_flush_icache.gen.test rmdir.gen.test \ rt_sigpending.gen.test rt_sigprocmask.gen.test \ - rt_sigqueueinfo.gen.test rt_sigreturn.gen.test \ - rt_sigsuspend.gen.test rt_sigtimedwait.gen.test \ - rt_tgsigqueueinfo.gen.test s390_guarded_storage.gen.test \ - s390_guarded_storage-v.gen.test \ + rt_sigqueueinfo.gen.test \ + rt_sigqueueinfo--pidns-translation.gen.test \ + rt_sigreturn.gen.test rt_sigsuspend.gen.test \ + rt_sigtimedwait.gen.test rt_tgsigqueueinfo.gen.test \ + rt_tgsigqueueinfo--pidns-translation.gen.test \ + s390_guarded_storage.gen.test s390_guarded_storage-v.gen.test \ s390_pci_mmio_read_write.gen.test s390_runtime_instr.gen.test \ s390_sthyi.gen.test s390_sthyi-v.gen.test sched.gen.test \ sched_get_priority_mxx.gen.test sched_rr_get_interval.gen.test \ - sched_xetaffinity.gen.test sched_xetattr.gen.test \ - sched_xetparam.gen.test sched_xetscheduler.gen.test \ + sched_xetaffinity.gen.test \ + sched_xetaffinity--pidns-translation.gen.test \ + sched_xetattr.gen.test \ + sched_xetattr--pidns-translation.gen.test \ + sched_xetparam.gen.test \ + sched_xetparam--pidns-translation.gen.test \ + sched_xetscheduler.gen.test \ + sched_xetscheduler--pidns-translation.gen.test \ sched_yield.gen.test seccomp-filter.gen.test \ seccomp-filter-v.gen.test seccomp_get_action_avail.gen.test \ select.gen.test select-P.gen.test semop.gen.test \ - sendfile.gen.test sendfile64.gen.test set_mempolicy.gen.test \ - setdomainname.gen.test setfsgid.gen.test setfsgid32.gen.test \ - setfsuid.gen.test setfsuid32.gen.test setgid.gen.test \ - setgid32.gen.test setgroups.gen.test setgroups32.gen.test \ - sethostname.gen.test setns.gen.test setregid.gen.test \ - setregid32.gen.test setresgid.gen.test setresgid32.gen.test \ - setresuid.gen.test setresuid32.gen.test setreuid.gen.test \ - setreuid32.gen.test setrlimit.gen.test \ - setrlimit-Xabbrev.gen.test setrlimit-Xraw.gen.test \ - setrlimit-Xverbose.gen.test setuid.gen.test setuid32.gen.test \ - shmxt.gen.test shutdown.gen.test sigaction.gen.test \ - siginfo.gen.test signal.gen.test signal_receive.gen.test \ - signalfd4.gen.test sigpending.gen.test sigprocmask.gen.test \ - sigreturn.gen.test sigsuspend.gen.test so_error.gen.test \ - so_linger.gen.test so_peercred.gen.test \ - so_peercred-Xabbrev.gen.test so_peercred-Xraw.gen.test \ - so_peercred-Xverbose.gen.test sock_filter-v.gen.test \ + semop-indirect.gen.test semtimedop.gen.test sendfile.gen.test \ + sendfile64.gen.test set_mempolicy.gen.test \ + set_mempolicy-Xabbrev.gen.test set_mempolicy-Xraw.gen.test \ + set_mempolicy-Xverbose.gen.test setdomainname.gen.test \ + setfsgid.gen.test setfsgid32.gen.test setfsuid.gen.test \ + setfsuid32.gen.test setgid.gen.test setgid32.gen.test \ + setgroups.gen.test setgroups32.gen.test sethostname.gen.test \ + setns.gen.test setregid.gen.test setregid32.gen.test \ + setresgid.gen.test setresgid32.gen.test setresuid.gen.test \ + setresuid32.gen.test setreuid.gen.test setreuid32.gen.test \ + setrlimit.gen.test setrlimit-Xabbrev.gen.test \ + setrlimit-Xraw.gen.test setrlimit-Xverbose.gen.test \ + setuid.gen.test setuid32.gen.test shmxt.gen.test \ + shutdown.gen.test sigaction.gen.test siginfo.gen.test \ + signal.gen.test signal_receive.gen.test \ + signal_receive--pidns-translation.gen.test signalfd4.gen.test \ + sigpending.gen.test sigprocmask.gen.test sigreturn.gen.test \ + sigsuspend.gen.test so_error.gen.test so_linger.gen.test \ + so_peercred.gen.test so_peercred-Xabbrev.gen.test \ + so_peercred-Xraw.gen.test so_peercred-Xverbose.gen.test \ + so_peercred--pidns-translation.gen.test sock_filter-v.gen.test \ sock_filter-v-Xabbrev.gen.test sock_filter-v-Xraw.gen.test \ sock_filter-v-Xverbose.gen.test sockaddr_xlat-Xabbrev.gen.test \ sockaddr_xlat-Xraw.gen.test sockaddr_xlat-Xverbose.gen.test \ socketcall.gen.test sockopt-sol_netlink.gen.test \ sockopt-timestamp.gen.test splice.gen.test stat.gen.test \ stat64.gen.test statfs.gen.test statfs64.gen.test \ - statx.gen.test swap.gen.test sxetmask.gen.test \ - symlink.gen.test symlinkat.gen.test sync.gen.test \ - sync_file_range.gen.test sync_file_range2.gen.test \ - sysinfo.gen.test syslog.gen.test tee.gen.test time.gen.test \ + status-all.gen.test status-failed.gen.test \ + status-failed-long.gen.test status-failed-status.gen.test \ + status-none.gen.test status-successful.gen.test \ + status-successful-long.gen.test \ + status-successful-status.gen.test status-unfinished.gen.test \ + statx.gen.test strace--absolute-timestamps.gen.test \ + strace--absolute-timestamps-format-time.gen.test \ + strace--absolute-timestamps-format-time-precision-s.gen.test \ + strace--absolute-timestamps-format-time-precision-ms.gen.test \ + strace--absolute-timestamps-format-time-precision-us.gen.test \ + strace--absolute-timestamps-format-time-precision-ns.gen.test \ + strace--absolute-timestamps-format-unix-precision-s.gen.test \ + strace--absolute-timestamps-format-unix-precision-ms.gen.test \ + strace--absolute-timestamps-format-unix-precision-us.gen.test \ + strace--absolute-timestamps-format-unix-precision-ns.gen.test \ + strace--follow-forks-output-separately.gen.test \ + strace--relative-timestamps.gen.test \ + strace--relative-timestamps-s.gen.test \ + strace--relative-timestamps-ms.gen.test \ + strace--relative-timestamps-us.gen.test \ + strace--relative-timestamps-ns.gen.test \ + strace--syscall-times.gen.test \ + strace--syscall-times-s.gen.test \ + strace--syscall-times-ms.gen.test \ + strace--syscall-times-us.gen.test \ + strace--syscall-times-ns.gen.test \ + strace--strings-in-hex.gen.test \ + strace--strings-in-hex-all.gen.test \ + strace--strings-in-hex-non-ascii.gen.test \ + strace--timestamps.gen.test strace--timestamps-time.gen.test \ + strace--timestamps-time-s.gen.test \ + strace--timestamps-time-ms.gen.test \ + strace--timestamps-time-us.gen.test \ + strace--timestamps-time-ns.gen.test \ + strace--timestamps-unix-s.gen.test \ + strace--timestamps-unix-ms.gen.test \ + strace--timestamps-unix-us.gen.test \ + strace--timestamps-unix-ns.gen.test strace-n.gen.test \ + strace-x.gen.test strace-xx.gen.test swap.gen.test \ + sxetmask.gen.test symlink.gen.test symlinkat.gen.test \ + sync.gen.test sync_file_range.gen.test \ + sync_file_range2.gen.test sysinfo.gen.test syslog.gen.test \ + tee.gen.test tgkill.gen.test \ + tgkill--pidns-translation.gen.test \ + threads-execve--quiet-thread-execve.gen.test \ + threads-execve-q.gen.test threads-execve-qq.gen.test \ + threads-execve-qqq.gen.test time.gen.test \ timer_create.gen.test timer_xettime.gen.test \ timerfd_xettime.gen.test times.gen.test times-fail.gen.test \ - trace_fstat.gen.test trace_fstatfs.gen.test \ - trace_lstat.gen.test trace_personality_32.gen.test \ - trace_personality_64.gen.test \ + tkill.gen.test tkill--pidns-translation.gen.test \ + trace_clock.gen.test trace_creds.gen.test trace_fstat.gen.test \ + trace_fstatfs.gen.test trace_lstat.gen.test \ + trace_personality_32.gen.test trace_personality_64.gen.test \ trace_personality_regex_32.gen.test \ trace_personality_regex_64.gen.test \ trace_personality_regex_x32.gen.test \ trace_personality_x32.gen.test trace_question.gen.test \ trace_stat.gen.test trace_stat_like.gen.test \ trace_statfs.gen.test trace_statfs_like.gen.test \ - truncate.gen.test truncate64.gen.test ugetrlimit.gen.test \ - umask.gen.test umoven-illptr.gen.test umovestr-illptr.gen.test \ - umovestr3.gen.test unlink.gen.test unlinkat.gen.test \ - unshare.gen.test userfaultfd.gen.test ustat.gen.test \ - utime.gen.test utimensat.gen.test utimensat-Xabbrev.gen.test \ - utimensat-Xraw.gen.test utimensat-Xverbose.gen.test \ - utimes.gen.test vfork-f.gen.test vhangup.gen.test \ - vmsplice.gen.test wait4.gen.test wait4-v.gen.test \ - waitid.gen.test waitid-v.gen.test waitpid.gen.test \ - xattr.gen.test xattr-strings.gen.test xet_robust_list.gen.test \ - xetitimer.gen.test xetpgid.gen.test xetpriority.gen.test \ + trie_test.gen.test truncate.gen.test truncate64.gen.test \ + ugetrlimit.gen.test umask.gen.test umoven-illptr.gen.test \ + umovestr-illptr.gen.test umovestr3.gen.test \ + umovestr_cached_adjacent.gen.test unlink.gen.test \ + unlinkat.gen.test unshare.gen.test userfaultfd.gen.test \ + ustat.gen.test utime.gen.test utimensat.gen.test \ + utimensat-Xabbrev.gen.test utimensat-Xraw.gen.test \ + utimensat-Xverbose.gen.test utimes.gen.test vfork-f.gen.test \ + vhangup.gen.test vmsplice.gen.test wait4.gen.test \ + wait4-v.gen.test waitid.gen.test waitid-v.gen.test \ + waitpid.gen.test xattr.gen.test xattr-strings.gen.test \ + xet_robust_list.gen.test \ + xet_robust_list--pidns-translation.gen.test xetitimer.gen.test \ + xetpgid.gen.test xetpgid--pidns-translation.gen.test \ + xetpriority.gen.test xetpriority--pidns-translation.gen.test \ xettimeofday.gen.test @ENABLE_STACKTRACE_FALSE@STACKTRACE_TESTS = @ENABLE_STACKTRACE_TRUE@STACKTRACE_TESTS = strace-k.test \ -@ENABLE_STACKTRACE_TRUE@ $(am__append_1) +@ENABLE_STACKTRACE_TRUE@ strace-k-p.test $(am__append_1) DECODER_TESTS = \ + bpf-success-long-y.test \ bpf-success-v.test \ bpf-success.test \ brk.test \ @@ -4877,17 +6623,21 @@ DECODER_TESTS = \ btrfs-wX.test \ caps-abbrev.test \ caps.test \ + clone-flags.test \ + clone3-success.test \ eventfd.test \ execve-v.test \ execve.test \ fadvise64.test \ + faccessat.test \ + faccessat2.test \ futex.test \ getuid.test \ int_0x80.test \ + inotify_init-y.test \ ioctl.test \ - ioctl_evdev-success-v.test \ + ioctl_block--pidns-translation.test \ ioctl_evdev-success.test \ - ioctl_perf-success.test \ ipc_msgbuf.test \ kern_features-fault.test \ llseek.test \ @@ -4929,6 +6679,7 @@ DECODER_TESTS = \ seccomp-strict.test \ sigaltstack.test \ sun_path.test \ + syslog-success.test \ uio.test \ umount.test \ umount2.test \ @@ -4944,7 +6695,6 @@ MISC_TESTS = \ attach-f-p.test \ attach-p-cmd.test \ bexecve.test \ - clone_parent.test \ clone_ptrace.test \ count-f.test \ count.test \ @@ -4953,20 +6703,24 @@ MISC_TESTS = \ detach-sleeping.test \ detach-stopped.test \ fflush.test \ + filter_seccomp-perf.test \ filter-unavailable.test \ filtering_fd-syntax.test \ filtering_syscall-syntax.test \ first_exec_failure.test \ + fork--pidns-translation.test \ get_regs.test \ + gettid--pidns-translation.test \ inject-nf.test \ interactive_block.test \ kill_child.test \ - ksysent.test \ localtime.test \ looping_threads.test \ + netlink_audit--pidns-translation.test \ opipe.test \ options-syntax.test \ pc.test \ + pidns-cache.test \ printpath-umovestr-legacy.test \ printstrn-umoven-legacy.test \ qual_fault-syntax.test \ @@ -4986,8 +6740,16 @@ MISC_TESTS = \ restart_syscall.test \ sigblock.test \ sigign.test \ + status-detached.test \ + status-none-threads.test \ + status-unfinished-threads.test \ strace-C.test \ + strace-D.test \ + strace-DD.test \ + strace-DDD.test \ strace-E.test \ + strace-E-override.test \ + strace-E-unset.test \ strace-S.test \ strace-T.test \ strace-V.test \ @@ -5000,6 +6762,7 @@ MISC_TESTS = \ strace-ttt.test \ termsig.test \ threads-execve.test \ + umovestr_cached.test \ # end of MISC_TESTS XFAIL_TESTS_ = @@ -5027,7 +6790,10 @@ EXTRA_DIST = \ eventfd.expected \ fadvise.h \ fcntl-common.c \ + filter_seccomp.in \ + filter_seccomp.sh \ filter-unavailable.expected \ + fork--pidns-translation.awk \ fstatat.c \ fstatx.c \ gen_pure_executables.sh \ @@ -5036,17 +6802,20 @@ EXTRA_DIST = \ getresugid.c \ init.sh \ init_delete_module.h \ + ioctl-success.sh \ ioctl_kvm_run_common.c \ ipc.sh \ + kernel_old_timespec.h \ + kernel_old_timex.h \ ksysent.sed \ lstatx.c \ match.awk \ net.expected \ - netlink_sock_diag-v.sh \ nlattr_ifla.h \ pipe.expected \ print_user_desc.c \ printsignal.c \ + printxval.c \ process_vm_readv_writev.c \ pure_executables.list \ qual_fault-exit_group.expected \ @@ -5060,6 +6829,7 @@ EXTRA_DIST = \ run.sh \ sched.in \ scno_tampering.sh \ + semop-common.c \ setfsugid.c \ setresugid.c \ setreugid.c \ @@ -5068,18 +6838,37 @@ EXTRA_DIST = \ sockaddr_xlat.c \ sockname.c \ stack-fcall.h \ + status-detached.expected \ + strace--follow-forks-output-separately.expected \ + strace--relative-timestamps.expected \ + strace--relative-timestamps-s.expected \ + strace--relative-timestamps-ms.expected \ + strace--relative-timestamps-us.expected \ + strace--relative-timestamps-ns.expected \ + strace--syscall-times.expected \ + strace--syscall-times-s.expected \ + strace--syscall-times-ms.expected \ + strace--syscall-times-us.expected \ + strace--syscall-times-ns.expected \ strace-C.expected \ + strace-D.expected \ + strace-DDD.expected \ strace-E.expected \ + strace-E-unset.expected \ strace-T.expected \ strace-ff.expected \ strace-k-demangle.expected \ strace-k-demangle.test \ + strace-k-p.expected \ + strace-k-p.test \ strace-k.expected \ strace-k.test \ strace-r.expected \ strace.supp \ sun_path.expected \ syntax.sh \ + trace_clock.in \ + trace_creds.in \ trace_fstat.in \ trace_fstatfs.in \ trace_lstat.in \ @@ -5100,6 +6889,7 @@ EXTRA_DIST = \ unix-pair-send-recv.expected \ unix-pair-sendto-recvfrom.expected \ xchownx.c \ + xgetdents.c \ xgetrlimit.c \ xselect.c \ xstatfs.c \ @@ -5233,6 +7023,10 @@ block_reset_raise_run$(EXEEXT): $(block_reset_raise_run_OBJECTS) $(block_reset_r @rm -f block_reset_raise_run$(EXEEXT) $(AM_V_CCLD)$(LINK) $(block_reset_raise_run_OBJECTS) $(block_reset_raise_run_LDADD) $(LIBS) +block_reset_run$(EXEEXT): $(block_reset_run_OBJECTS) $(block_reset_run_DEPENDENCIES) $(EXTRA_block_reset_run_DEPENDENCIES) + @rm -f block_reset_run$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(block_reset_run_OBJECTS) $(block_reset_run_LDADD) $(LIBS) + bpf$(EXEEXT): $(bpf_OBJECTS) $(bpf_DEPENDENCIES) $(EXTRA_bpf_DEPENDENCIES) @rm -f bpf$(EXEEXT) $(AM_V_CCLD)$(LINK) $(bpf_OBJECTS) $(bpf_LDADD) $(LIBS) @@ -5257,6 +7051,10 @@ bpf-success$(EXEEXT): $(bpf_success_OBJECTS) $(bpf_success_DEPENDENCIES) $(EXTRA @rm -f bpf-success$(EXEEXT) $(AM_V_CCLD)$(LINK) $(bpf_success_OBJECTS) $(bpf_success_LDADD) $(LIBS) +bpf-success-long-y$(EXEEXT): $(bpf_success_long_y_OBJECTS) $(bpf_success_long_y_DEPENDENCIES) $(EXTRA_bpf_success_long_y_DEPENDENCIES) + @rm -f bpf-success-long-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(bpf_success_long_y_OBJECTS) $(bpf_success_long_y_LDADD) $(LIBS) + bpf-success-v$(EXEEXT): $(bpf_success_v_OBJECTS) $(bpf_success_v_DEPENDENCIES) $(EXTRA_bpf_success_v_DEPENDENCIES) @rm -f bpf-success-v$(EXEEXT) $(AM_V_CCLD)$(LINK) $(bpf_success_v_OBJECTS) $(bpf_success_v_LDADD) $(LIBS) @@ -5317,14 +7115,94 @@ clock_xettime$(EXEEXT): $(clock_xettime_OBJECTS) $(clock_xettime_DEPENDENCIES) $ @rm -f clock_xettime$(EXEEXT) $(AM_V_CCLD)$(LINK) $(clock_xettime_OBJECTS) $(clock_xettime_LDADD) $(LIBS) +clone-flags$(EXEEXT): $(clone_flags_OBJECTS) $(clone_flags_DEPENDENCIES) $(EXTRA_clone_flags_DEPENDENCIES) + @rm -f clone-flags$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone_flags_OBJECTS) $(clone_flags_LDADD) $(LIBS) + +clone3$(EXEEXT): $(clone3_OBJECTS) $(clone3_DEPENDENCIES) $(EXTRA_clone3_DEPENDENCIES) + @rm -f clone3$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone3_OBJECTS) $(clone3_LDADD) $(LIBS) + +clone3-Xabbrev$(EXEEXT): $(clone3_Xabbrev_OBJECTS) $(clone3_Xabbrev_DEPENDENCIES) $(EXTRA_clone3_Xabbrev_DEPENDENCIES) + @rm -f clone3-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone3_Xabbrev_OBJECTS) $(clone3_Xabbrev_LDADD) $(LIBS) + +clone3-Xraw$(EXEEXT): $(clone3_Xraw_OBJECTS) $(clone3_Xraw_DEPENDENCIES) $(EXTRA_clone3_Xraw_DEPENDENCIES) + @rm -f clone3-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone3_Xraw_OBJECTS) $(clone3_Xraw_LDADD) $(LIBS) + +clone3-Xverbose$(EXEEXT): $(clone3_Xverbose_OBJECTS) $(clone3_Xverbose_DEPENDENCIES) $(EXTRA_clone3_Xverbose_DEPENDENCIES) + @rm -f clone3-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone3_Xverbose_OBJECTS) $(clone3_Xverbose_LDADD) $(LIBS) + +clone3-success$(EXEEXT): $(clone3_success_OBJECTS) $(clone3_success_DEPENDENCIES) $(EXTRA_clone3_success_DEPENDENCIES) + @rm -f clone3-success$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone3_success_OBJECTS) $(clone3_success_LDADD) $(LIBS) + +clone3-success-Xabbrev$(EXEEXT): $(clone3_success_Xabbrev_OBJECTS) $(clone3_success_Xabbrev_DEPENDENCIES) $(EXTRA_clone3_success_Xabbrev_DEPENDENCIES) + @rm -f clone3-success-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone3_success_Xabbrev_OBJECTS) $(clone3_success_Xabbrev_LDADD) $(LIBS) + +clone3-success-Xraw$(EXEEXT): $(clone3_success_Xraw_OBJECTS) $(clone3_success_Xraw_DEPENDENCIES) $(EXTRA_clone3_success_Xraw_DEPENDENCIES) + @rm -f clone3-success-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone3_success_Xraw_OBJECTS) $(clone3_success_Xraw_LDADD) $(LIBS) + +clone3-success-Xverbose$(EXEEXT): $(clone3_success_Xverbose_OBJECTS) $(clone3_success_Xverbose_DEPENDENCIES) $(EXTRA_clone3_success_Xverbose_DEPENDENCIES) + @rm -f clone3-success-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone3_success_Xverbose_OBJECTS) $(clone3_success_Xverbose_LDADD) $(LIBS) + clone_parent$(EXEEXT): $(clone_parent_OBJECTS) $(clone_parent_DEPENDENCIES) $(EXTRA_clone_parent_DEPENDENCIES) @rm -f clone_parent$(EXEEXT) $(AM_V_CCLD)$(LINK) $(clone_parent_OBJECTS) $(clone_parent_LDADD) $(LIBS) +clone_parent--quiet-exit$(EXEEXT): $(clone_parent__quiet_exit_OBJECTS) $(clone_parent__quiet_exit_DEPENDENCIES) $(EXTRA_clone_parent__quiet_exit_DEPENDENCIES) + @rm -f clone_parent--quiet-exit$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone_parent__quiet_exit_OBJECTS) $(clone_parent__quiet_exit_LDADD) $(LIBS) + +clone_parent-q$(EXEEXT): $(clone_parent_q_OBJECTS) $(clone_parent_q_DEPENDENCIES) $(EXTRA_clone_parent_q_DEPENDENCIES) + @rm -f clone_parent-q$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone_parent_q_OBJECTS) $(clone_parent_q_LDADD) $(LIBS) + +clone_parent-qq$(EXEEXT): $(clone_parent_qq_OBJECTS) $(clone_parent_qq_DEPENDENCIES) $(EXTRA_clone_parent_qq_DEPENDENCIES) + @rm -f clone_parent-qq$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone_parent_qq_OBJECTS) $(clone_parent_qq_LDADD) $(LIBS) + clone_ptrace$(EXEEXT): $(clone_ptrace_OBJECTS) $(clone_ptrace_DEPENDENCIES) $(EXTRA_clone_ptrace_DEPENDENCIES) @rm -f clone_ptrace$(EXEEXT) $(AM_V_CCLD)$(LINK) $(clone_ptrace_OBJECTS) $(clone_ptrace_LDADD) $(LIBS) +clone_ptrace--quiet-attach$(EXEEXT): $(clone_ptrace__quiet_attach_OBJECTS) $(clone_ptrace__quiet_attach_DEPENDENCIES) $(EXTRA_clone_ptrace__quiet_attach_DEPENDENCIES) + @rm -f clone_ptrace--quiet-attach$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone_ptrace__quiet_attach_OBJECTS) $(clone_ptrace__quiet_attach_LDADD) $(LIBS) + +clone_ptrace--quiet-exit$(EXEEXT): $(clone_ptrace__quiet_exit_OBJECTS) $(clone_ptrace__quiet_exit_DEPENDENCIES) $(EXTRA_clone_ptrace__quiet_exit_DEPENDENCIES) + @rm -f clone_ptrace--quiet-exit$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone_ptrace__quiet_exit_OBJECTS) $(clone_ptrace__quiet_exit_LDADD) $(LIBS) + +clone_ptrace-q$(EXEEXT): $(clone_ptrace_q_OBJECTS) $(clone_ptrace_q_DEPENDENCIES) $(EXTRA_clone_ptrace_q_DEPENDENCIES) + @rm -f clone_ptrace-q$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone_ptrace_q_OBJECTS) $(clone_ptrace_q_LDADD) $(LIBS) + +clone_ptrace-qq$(EXEEXT): $(clone_ptrace_qq_OBJECTS) $(clone_ptrace_qq_DEPENDENCIES) $(EXTRA_clone_ptrace_qq_DEPENDENCIES) + @rm -f clone_ptrace-qq$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone_ptrace_qq_OBJECTS) $(clone_ptrace_qq_LDADD) $(LIBS) + +close_range$(EXEEXT): $(close_range_OBJECTS) $(close_range_DEPENDENCIES) $(EXTRA_close_range_DEPENDENCIES) + @rm -f close_range$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(close_range_OBJECTS) $(close_range_LDADD) $(LIBS) + +close_range-P$(EXEEXT): $(close_range_P_OBJECTS) $(close_range_P_DEPENDENCIES) $(EXTRA_close_range_P_DEPENDENCIES) + @rm -f close_range-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(close_range_P_OBJECTS) $(close_range_P_LDADD) $(LIBS) + +close_range-y$(EXEEXT): $(close_range_y_OBJECTS) $(close_range_y_DEPENDENCIES) $(EXTRA_close_range_y_DEPENDENCIES) + @rm -f close_range-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(close_range_y_OBJECTS) $(close_range_y_LDADD) $(LIBS) + +close_range-yy$(EXEEXT): $(close_range_yy_OBJECTS) $(close_range_yy_DEPENDENCIES) $(EXTRA_close_range_yy_DEPENDENCIES) + @rm -f close_range-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(close_range_yy_OBJECTS) $(close_range_yy_LDADD) $(LIBS) + copy_file_range$(EXEEXT): $(copy_file_range_OBJECTS) $(copy_file_range_DEPENDENCIES) $(EXTRA_copy_file_range_DEPENDENCIES) @rm -f copy_file_range$(EXEEXT) $(AM_V_CCLD)$(LINK) $(copy_file_range_OBJECTS) $(copy_file_range_LDADD) $(LIBS) @@ -5345,6 +7223,18 @@ delete_module$(EXEEXT): $(delete_module_OBJECTS) $(delete_module_DEPENDENCIES) $ @rm -f delete_module$(EXEEXT) $(AM_V_CCLD)$(LINK) $(delete_module_OBJECTS) $(delete_module_LDADD) $(LIBS) +dev--decode-fds-dev$(EXEEXT): $(dev__decode_fds_dev_OBJECTS) $(dev__decode_fds_dev_DEPENDENCIES) $(EXTRA_dev__decode_fds_dev_DEPENDENCIES) + @rm -f dev--decode-fds-dev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dev__decode_fds_dev_OBJECTS) $(dev__decode_fds_dev_LDADD) $(LIBS) + +dev--decode-fds-path$(EXEEXT): $(dev__decode_fds_path_OBJECTS) $(dev__decode_fds_path_DEPENDENCIES) $(EXTRA_dev__decode_fds_path_DEPENDENCIES) + @rm -f dev--decode-fds-path$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dev__decode_fds_path_OBJECTS) $(dev__decode_fds_path_LDADD) $(LIBS) + +dev--decode-fds-socket$(EXEEXT): $(dev__decode_fds_socket_OBJECTS) $(dev__decode_fds_socket_DEPENDENCIES) $(EXTRA_dev__decode_fds_socket_DEPENDENCIES) + @rm -f dev--decode-fds-socket$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dev__decode_fds_socket_OBJECTS) $(dev__decode_fds_socket_LDADD) $(LIBS) + dev-yy$(EXEEXT): $(dev_yy_OBJECTS) $(dev_yy_DEPENDENCIES) $(EXTRA_dev_yy_DEPENDENCIES) @rm -f dev-yy$(EXEEXT) $(AM_V_CCLD)$(LINK) $(dev_yy_OBJECTS) $(dev_yy_LDADD) $(LIBS) @@ -5353,14 +7243,50 @@ dup$(EXEEXT): $(dup_OBJECTS) $(dup_DEPENDENCIES) $(EXTRA_dup_DEPENDENCIES) @rm -f dup$(EXEEXT) $(AM_V_CCLD)$(LINK) $(dup_OBJECTS) $(dup_LDADD) $(LIBS) +dup-P$(EXEEXT): $(dup_P_OBJECTS) $(dup_P_DEPENDENCIES) $(EXTRA_dup_P_DEPENDENCIES) + @rm -f dup-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dup_P_OBJECTS) $(dup_P_LDADD) $(LIBS) + +dup-y$(EXEEXT): $(dup_y_OBJECTS) $(dup_y_DEPENDENCIES) $(EXTRA_dup_y_DEPENDENCIES) + @rm -f dup-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dup_y_OBJECTS) $(dup_y_LDADD) $(LIBS) + +dup-yy$(EXEEXT): $(dup_yy_OBJECTS) $(dup_yy_DEPENDENCIES) $(EXTRA_dup_yy_DEPENDENCIES) + @rm -f dup-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dup_yy_OBJECTS) $(dup_yy_LDADD) $(LIBS) + dup2$(EXEEXT): $(dup2_OBJECTS) $(dup2_DEPENDENCIES) $(EXTRA_dup2_DEPENDENCIES) @rm -f dup2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(dup2_OBJECTS) $(dup2_LDADD) $(LIBS) +dup2-P$(EXEEXT): $(dup2_P_OBJECTS) $(dup2_P_DEPENDENCIES) $(EXTRA_dup2_P_DEPENDENCIES) + @rm -f dup2-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dup2_P_OBJECTS) $(dup2_P_LDADD) $(LIBS) + +dup2-y$(EXEEXT): $(dup2_y_OBJECTS) $(dup2_y_DEPENDENCIES) $(EXTRA_dup2_y_DEPENDENCIES) + @rm -f dup2-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dup2_y_OBJECTS) $(dup2_y_LDADD) $(LIBS) + +dup2-yy$(EXEEXT): $(dup2_yy_OBJECTS) $(dup2_yy_DEPENDENCIES) $(EXTRA_dup2_yy_DEPENDENCIES) + @rm -f dup2-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dup2_yy_OBJECTS) $(dup2_yy_LDADD) $(LIBS) + dup3$(EXEEXT): $(dup3_OBJECTS) $(dup3_DEPENDENCIES) $(EXTRA_dup3_DEPENDENCIES) @rm -f dup3$(EXEEXT) $(AM_V_CCLD)$(LINK) $(dup3_OBJECTS) $(dup3_LDADD) $(LIBS) +dup3-P$(EXEEXT): $(dup3_P_OBJECTS) $(dup3_P_DEPENDENCIES) $(EXTRA_dup3_P_DEPENDENCIES) + @rm -f dup3-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dup3_P_OBJECTS) $(dup3_P_LDADD) $(LIBS) + +dup3-y$(EXEEXT): $(dup3_y_OBJECTS) $(dup3_y_DEPENDENCIES) $(EXTRA_dup3_y_DEPENDENCIES) + @rm -f dup3-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dup3_y_OBJECTS) $(dup3_y_LDADD) $(LIBS) + +dup3-yy$(EXEEXT): $(dup3_yy_OBJECTS) $(dup3_yy_DEPENDENCIES) $(EXTRA_dup3_yy_DEPENDENCIES) + @rm -f dup3-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dup3_yy_OBJECTS) $(dup3_yy_LDADD) $(LIBS) + epoll_create$(EXEEXT): $(epoll_create_OBJECTS) $(epoll_create_DEPENDENCIES) $(EXTRA_epoll_create_DEPENDENCIES) @rm -f epoll_create$(EXEEXT) $(AM_V_CCLD)$(LINK) $(epoll_create_OBJECTS) $(epoll_create_LDADD) $(LIBS) @@ -5409,6 +7335,34 @@ faccessat$(EXEEXT): $(faccessat_OBJECTS) $(faccessat_DEPENDENCIES) $(EXTRA_facce @rm -f faccessat$(EXEEXT) $(AM_V_CCLD)$(LINK) $(faccessat_OBJECTS) $(faccessat_LDADD) $(LIBS) +faccessat-P$(EXEEXT): $(faccessat_P_OBJECTS) $(faccessat_P_DEPENDENCIES) $(EXTRA_faccessat_P_DEPENDENCIES) + @rm -f faccessat-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat_P_OBJECTS) $(faccessat_P_LDADD) $(LIBS) + +faccessat-y$(EXEEXT): $(faccessat_y_OBJECTS) $(faccessat_y_DEPENDENCIES) $(EXTRA_faccessat_y_DEPENDENCIES) + @rm -f faccessat-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat_y_OBJECTS) $(faccessat_y_LDADD) $(LIBS) + +faccessat-yy$(EXEEXT): $(faccessat_yy_OBJECTS) $(faccessat_yy_DEPENDENCIES) $(EXTRA_faccessat_yy_DEPENDENCIES) + @rm -f faccessat-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat_yy_OBJECTS) $(faccessat_yy_LDADD) $(LIBS) + +faccessat2$(EXEEXT): $(faccessat2_OBJECTS) $(faccessat2_DEPENDENCIES) $(EXTRA_faccessat2_DEPENDENCIES) + @rm -f faccessat2$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat2_OBJECTS) $(faccessat2_LDADD) $(LIBS) + +faccessat2-P$(EXEEXT): $(faccessat2_P_OBJECTS) $(faccessat2_P_DEPENDENCIES) $(EXTRA_faccessat2_P_DEPENDENCIES) + @rm -f faccessat2-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat2_P_OBJECTS) $(faccessat2_P_LDADD) $(LIBS) + +faccessat2-y$(EXEEXT): $(faccessat2_y_OBJECTS) $(faccessat2_y_DEPENDENCIES) $(EXTRA_faccessat2_y_DEPENDENCIES) + @rm -f faccessat2-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat2_y_OBJECTS) $(faccessat2_y_LDADD) $(LIBS) + +faccessat2-yy$(EXEEXT): $(faccessat2_yy_OBJECTS) $(faccessat2_yy_DEPENDENCIES) $(EXTRA_faccessat2_yy_DEPENDENCIES) + @rm -f faccessat2-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat2_yy_OBJECTS) $(faccessat2_yy_LDADD) $(LIBS) + fadvise64$(EXEEXT): $(fadvise64_OBJECTS) $(fadvise64_DEPENDENCIES) $(EXTRA_fadvise64_DEPENDENCIES) @rm -f fadvise64$(EXEEXT) $(AM_V_CCLD)$(LINK) $(fadvise64_OBJECTS) $(fadvise64_LDADD) $(LIBS) @@ -5469,10 +7423,18 @@ fcntl$(EXEEXT): $(fcntl_OBJECTS) $(fcntl_DEPENDENCIES) $(EXTRA_fcntl_DEPENDENCIE @rm -f fcntl$(EXEEXT) $(AM_V_CCLD)$(LINK) $(fcntl_OBJECTS) $(fcntl_LDADD) $(LIBS) +fcntl--pidns-translation$(EXEEXT): $(fcntl__pidns_translation_OBJECTS) $(fcntl__pidns_translation_DEPENDENCIES) $(EXTRA_fcntl__pidns_translation_DEPENDENCIES) + @rm -f fcntl--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fcntl__pidns_translation_OBJECTS) $(fcntl__pidns_translation_LDADD) $(LIBS) + fcntl64$(EXEEXT): $(fcntl64_OBJECTS) $(fcntl64_DEPENDENCIES) $(EXTRA_fcntl64_DEPENDENCIES) @rm -f fcntl64$(EXEEXT) $(AM_V_CCLD)$(LINK) $(fcntl64_OBJECTS) $(fcntl64_LDADD) $(LIBS) +fcntl64--pidns-translation$(EXEEXT): $(fcntl64__pidns_translation_OBJECTS) $(fcntl64__pidns_translation_DEPENDENCIES) $(EXTRA_fcntl64__pidns_translation_DEPENDENCIES) + @rm -f fcntl64--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fcntl64__pidns_translation_OBJECTS) $(fcntl64__pidns_translation_LDADD) $(LIBS) + fdatasync$(EXEEXT): $(fdatasync_OBJECTS) $(fdatasync_DEPENDENCIES) $(EXTRA_fdatasync_DEPENDENCIES) @rm -f fdatasync$(EXEEXT) $(AM_V_CCLD)$(LINK) $(fdatasync_OBJECTS) $(fdatasync_LDADD) $(LIBS) @@ -5493,6 +7455,14 @@ filter-unavailable$(EXEEXT): $(filter_unavailable_OBJECTS) $(filter_unavailable_ @rm -f filter-unavailable$(EXEEXT) $(AM_V_CCLD)$(LINK) $(filter_unavailable_OBJECTS) $(filter_unavailable_LDADD) $(LIBS) +filter_seccomp-flag$(EXEEXT): $(filter_seccomp_flag_OBJECTS) $(filter_seccomp_flag_DEPENDENCIES) $(EXTRA_filter_seccomp_flag_DEPENDENCIES) + @rm -f filter_seccomp-flag$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(filter_seccomp_flag_OBJECTS) $(filter_seccomp_flag_LDADD) $(LIBS) + +filter_seccomp-perf$(EXEEXT): $(filter_seccomp_perf_OBJECTS) $(filter_seccomp_perf_DEPENDENCIES) $(EXTRA_filter_seccomp_perf_DEPENDENCIES) + @rm -f filter_seccomp-perf$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(filter_seccomp_perf_OBJECTS) $(filter_seccomp_perf_LDADD) $(LIBS) + finit_module$(EXEEXT): $(finit_module_OBJECTS) $(finit_module_DEPENDENCIES) $(EXTRA_finit_module_DEPENDENCIES) @rm -f finit_module$(EXEEXT) $(AM_V_CCLD)$(LINK) $(finit_module_OBJECTS) $(finit_module_LDADD) $(LIBS) @@ -5501,10 +7471,38 @@ flock$(EXEEXT): $(flock_OBJECTS) $(flock_DEPENDENCIES) $(EXTRA_flock_DEPENDENCIE @rm -f flock$(EXEEXT) $(AM_V_CCLD)$(LINK) $(flock_OBJECTS) $(flock_LDADD) $(LIBS) +fork--pidns-translation$(EXEEXT): $(fork__pidns_translation_OBJECTS) $(fork__pidns_translation_DEPENDENCIES) $(EXTRA_fork__pidns_translation_DEPENDENCIES) + @rm -f fork--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fork__pidns_translation_OBJECTS) $(fork__pidns_translation_LDADD) $(LIBS) + fork-f$(EXEEXT): $(fork_f_OBJECTS) $(fork_f_DEPENDENCIES) $(EXTRA_fork_f_DEPENDENCIES) @rm -f fork-f$(EXEEXT) $(AM_V_CCLD)$(LINK) $(fork_f_OBJECTS) $(fork_f_LDADD) $(LIBS) +fsconfig$(EXEEXT): $(fsconfig_OBJECTS) $(fsconfig_DEPENDENCIES) $(EXTRA_fsconfig_DEPENDENCIES) + @rm -f fsconfig$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fsconfig_OBJECTS) $(fsconfig_LDADD) $(LIBS) + +fsconfig-P$(EXEEXT): $(fsconfig_P_OBJECTS) $(fsconfig_P_DEPENDENCIES) $(EXTRA_fsconfig_P_DEPENDENCIES) + @rm -f fsconfig-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fsconfig_P_OBJECTS) $(fsconfig_P_LDADD) $(LIBS) + +fsmount$(EXEEXT): $(fsmount_OBJECTS) $(fsmount_DEPENDENCIES) $(EXTRA_fsmount_DEPENDENCIES) + @rm -f fsmount$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fsmount_OBJECTS) $(fsmount_LDADD) $(LIBS) + +fsopen$(EXEEXT): $(fsopen_OBJECTS) $(fsopen_DEPENDENCIES) $(EXTRA_fsopen_DEPENDENCIES) + @rm -f fsopen$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fsopen_OBJECTS) $(fsopen_LDADD) $(LIBS) + +fspick$(EXEEXT): $(fspick_OBJECTS) $(fspick_DEPENDENCIES) $(EXTRA_fspick_DEPENDENCIES) + @rm -f fspick$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fspick_OBJECTS) $(fspick_LDADD) $(LIBS) + +fspick-P$(EXEEXT): $(fspick_P_OBJECTS) $(fspick_P_DEPENDENCIES) $(EXTRA_fspick_P_DEPENDENCIES) + @rm -f fspick-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fspick_P_OBJECTS) $(fspick_P_LDADD) $(LIBS) + fstat$(EXEEXT): $(fstat_OBJECTS) $(fstat_DEPENDENCIES) $(EXTRA_fstat_DEPENDENCIES) @rm -f fstat$(EXEEXT) $(AM_V_CCLD)$(LINK) $(fstat_OBJECTS) $(fstat_LDADD) $(LIBS) @@ -5577,6 +7575,10 @@ get_mempolicy$(EXEEXT): $(get_mempolicy_OBJECTS) $(get_mempolicy_DEPENDENCIES) $ @rm -f get_mempolicy$(EXEEXT) $(AM_V_CCLD)$(LINK) $(get_mempolicy_OBJECTS) $(get_mempolicy_LDADD) $(LIBS) +get_process_reaper$(EXEEXT): $(get_process_reaper_OBJECTS) $(get_process_reaper_DEPENDENCIES) $(EXTRA_get_process_reaper_DEPENDENCIES) + @rm -f get_process_reaper$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(get_process_reaper_OBJECTS) $(get_process_reaper_LDADD) $(LIBS) + getcpu$(EXEEXT): $(getcpu_OBJECTS) $(getcpu_DEPENDENCIES) $(EXTRA_getcpu_DEPENDENCIES) @rm -f getcpu$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getcpu_OBJECTS) $(getcpu_LDADD) $(LIBS) @@ -5589,10 +7591,18 @@ getdents$(EXEEXT): $(getdents_OBJECTS) $(getdents_DEPENDENCIES) $(EXTRA_getdents @rm -f getdents$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getdents_OBJECTS) $(getdents_LDADD) $(LIBS) +getdents-v$(EXEEXT): $(getdents_v_OBJECTS) $(getdents_v_DEPENDENCIES) $(EXTRA_getdents_v_DEPENDENCIES) + @rm -f getdents-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(getdents_v_OBJECTS) $(getdents_v_LDADD) $(LIBS) + getdents64$(EXEEXT): $(getdents64_OBJECTS) $(getdents64_DEPENDENCIES) $(EXTRA_getdents64_DEPENDENCIES) @rm -f getdents64$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getdents64_OBJECTS) $(getdents64_LDADD) $(LIBS) +getdents64-v$(EXEEXT): $(getdents64_v_OBJECTS) $(getdents64_v_DEPENDENCIES) $(EXTRA_getdents64_v_DEPENDENCIES) + @rm -f getdents64-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(getdents64_v_OBJECTS) $(getdents64_v_LDADD) $(LIBS) + getegid$(EXEEXT): $(getegid_OBJECTS) $(getegid_DEPENDENCIES) $(EXTRA_getegid_DEPENDENCIES) @rm -f getegid$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getegid_OBJECTS) $(getegid_LDADD) $(LIBS) @@ -5633,10 +7643,18 @@ getpgrp$(EXEEXT): $(getpgrp_OBJECTS) $(getpgrp_DEPENDENCIES) $(EXTRA_getpgrp_DEP @rm -f getpgrp$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getpgrp_OBJECTS) $(getpgrp_LDADD) $(LIBS) +getpgrp--pidns-translation$(EXEEXT): $(getpgrp__pidns_translation_OBJECTS) $(getpgrp__pidns_translation_DEPENDENCIES) $(EXTRA_getpgrp__pidns_translation_DEPENDENCIES) + @rm -f getpgrp--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(getpgrp__pidns_translation_OBJECTS) $(getpgrp__pidns_translation_LDADD) $(LIBS) + getpid$(EXEEXT): $(getpid_OBJECTS) $(getpid_DEPENDENCIES) $(EXTRA_getpid_DEPENDENCIES) @rm -f getpid$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getpid_OBJECTS) $(getpid_LDADD) $(LIBS) +getpid--pidns-translation$(EXEEXT): $(getpid__pidns_translation_OBJECTS) $(getpid__pidns_translation_DEPENDENCIES) $(EXTRA_getpid__pidns_translation_DEPENDENCIES) + @rm -f getpid--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(getpid__pidns_translation_OBJECTS) $(getpid__pidns_translation_LDADD) $(LIBS) + getppid$(EXEEXT): $(getppid_OBJECTS) $(getppid_DEPENDENCIES) $(EXTRA_getppid_DEPENDENCIES) @rm -f getppid$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getppid_OBJECTS) $(getppid_LDADD) $(LIBS) @@ -5673,6 +7691,10 @@ getsid$(EXEEXT): $(getsid_OBJECTS) $(getsid_DEPENDENCIES) $(EXTRA_getsid_DEPENDE @rm -f getsid$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getsid_OBJECTS) $(getsid_LDADD) $(LIBS) +getsid--pidns-translation$(EXEEXT): $(getsid__pidns_translation_OBJECTS) $(getsid__pidns_translation_DEPENDENCIES) $(EXTRA_getsid__pidns_translation_DEPENDENCIES) + @rm -f getsid--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(getsid__pidns_translation_OBJECTS) $(getsid__pidns_translation_LDADD) $(LIBS) + getsockname$(EXEEXT): $(getsockname_OBJECTS) $(getsockname_DEPENDENCIES) $(EXTRA_getsockname_DEPENDENCIES) @rm -f getsockname$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getsockname_OBJECTS) $(getsockname_LDADD) $(LIBS) @@ -5681,6 +7703,10 @@ gettid$(EXEEXT): $(gettid_OBJECTS) $(gettid_DEPENDENCIES) $(EXTRA_gettid_DEPENDE @rm -f gettid$(EXEEXT) $(AM_V_CCLD)$(LINK) $(gettid_OBJECTS) $(gettid_LDADD) $(LIBS) +gettid--pidns-translation$(EXEEXT): $(gettid__pidns_translation_OBJECTS) $(gettid__pidns_translation_DEPENDENCIES) $(EXTRA_gettid__pidns_translation_DEPENDENCIES) + @rm -f gettid--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(gettid__pidns_translation_OBJECTS) $(gettid__pidns_translation_LDADD) $(LIBS) + getuid$(EXEEXT): $(getuid_OBJECTS) $(getuid_DEPENDENCIES) $(EXTRA_getuid_DEPENDENCIES) @rm -f getuid$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getuid_OBJECTS) $(getuid_LDADD) $(LIBS) @@ -5689,9 +7715,17 @@ getuid32$(EXEEXT): $(getuid32_OBJECTS) $(getuid32_DEPENDENCIES) $(EXTRA_getuid32 @rm -f getuid32$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getuid32_OBJECTS) $(getuid32_LDADD) $(LIBS) -getxxid$(EXEEXT): $(getxxid_OBJECTS) $(getxxid_DEPENDENCIES) $(EXTRA_getxxid_DEPENDENCIES) - @rm -f getxxid$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(getxxid_OBJECTS) $(getxxid_LDADD) $(LIBS) +getxgid$(EXEEXT): $(getxgid_OBJECTS) $(getxgid_DEPENDENCIES) $(EXTRA_getxgid_DEPENDENCIES) + @rm -f getxgid$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(getxgid_OBJECTS) $(getxgid_LDADD) $(LIBS) + +getxpid$(EXEEXT): $(getxpid_OBJECTS) $(getxpid_DEPENDENCIES) $(EXTRA_getxpid_DEPENDENCIES) + @rm -f getxpid$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(getxpid_OBJECTS) $(getxpid_LDADD) $(LIBS) + +getxuid$(EXEEXT): $(getxuid_OBJECTS) $(getxuid_DEPENDENCIES) $(EXTRA_getxuid_DEPENDENCIES) + @rm -f getxuid$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(getxuid_OBJECTS) $(getxuid_LDADD) $(LIBS) group_req$(EXEEXT): $(group_req_OBJECTS) $(group_req_DEPENDENCIES) $(EXTRA_group_req_DEPENDENCIES) @rm -f group_req$(EXEEXT) @@ -5713,10 +7747,22 @@ inotify$(EXEEXT): $(inotify_OBJECTS) $(inotify_DEPENDENCIES) $(EXTRA_inotify_DEP @rm -f inotify$(EXEEXT) $(AM_V_CCLD)$(LINK) $(inotify_OBJECTS) $(inotify_LDADD) $(LIBS) +inotify_init$(EXEEXT): $(inotify_init_OBJECTS) $(inotify_init_DEPENDENCIES) $(EXTRA_inotify_init_DEPENDENCIES) + @rm -f inotify_init$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(inotify_init_OBJECTS) $(inotify_init_LDADD) $(LIBS) + +inotify_init-y$(EXEEXT): $(inotify_init_y_OBJECTS) $(inotify_init_y_DEPENDENCIES) $(EXTRA_inotify_init_y_DEPENDENCIES) + @rm -f inotify_init-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(inotify_init_y_OBJECTS) $(inotify_init_y_LDADD) $(LIBS) + inotify_init1$(EXEEXT): $(inotify_init1_OBJECTS) $(inotify_init1_DEPENDENCIES) $(EXTRA_inotify_init1_DEPENDENCIES) @rm -f inotify_init1$(EXEEXT) $(AM_V_CCLD)$(LINK) $(inotify_init1_OBJECTS) $(inotify_init1_LDADD) $(LIBS) +inotify_init1-y$(EXEEXT): $(inotify_init1_y_OBJECTS) $(inotify_init1_y_DEPENDENCIES) $(EXTRA_inotify_init1_y_DEPENDENCIES) + @rm -f inotify_init1-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(inotify_init1_y_OBJECTS) $(inotify_init1_y_LDADD) $(LIBS) + int_0x80$(EXEEXT): $(int_0x80_OBJECTS) $(int_0x80_DEPENDENCIES) $(EXTRA_int_0x80_DEPENDENCIES) @rm -f int_0x80$(EXEEXT) $(AM_V_CCLD)$(LINK) $(int_0x80_OBJECTS) $(int_0x80_LDADD) $(LIBS) @@ -5741,6 +7787,10 @@ ioctl_block$(EXEEXT): $(ioctl_block_OBJECTS) $(ioctl_block_DEPENDENCIES) $(EXTRA @rm -f ioctl_block$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_block_OBJECTS) $(ioctl_block_LDADD) $(LIBS) +ioctl_block--pidns-translation$(EXEEXT): $(ioctl_block__pidns_translation_OBJECTS) $(ioctl_block__pidns_translation_DEPENDENCIES) $(EXTRA_ioctl_block__pidns_translation_DEPENDENCIES) + @rm -f ioctl_block--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_block__pidns_translation_OBJECTS) $(ioctl_block__pidns_translation_LDADD) $(LIBS) + ioctl_dm$(EXEEXT): $(ioctl_dm_OBJECTS) $(ioctl_dm_DEPENDENCIES) $(EXTRA_ioctl_dm_DEPENDENCIES) @rm -f ioctl_dm$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_dm_OBJECTS) $(ioctl_dm_LDADD) $(LIBS) @@ -5753,18 +7803,130 @@ ioctl_evdev$(EXEEXT): $(ioctl_evdev_OBJECTS) $(ioctl_evdev_DEPENDENCIES) $(EXTRA @rm -f ioctl_evdev$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_evdev_OBJECTS) $(ioctl_evdev_LDADD) $(LIBS) +ioctl_evdev-Xabbrev$(EXEEXT): $(ioctl_evdev_Xabbrev_OBJECTS) $(ioctl_evdev_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_evdev_Xabbrev_DEPENDENCIES) + @rm -f ioctl_evdev-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_Xabbrev_OBJECTS) $(ioctl_evdev_Xabbrev_LDADD) $(LIBS) + +ioctl_evdev-Xraw$(EXEEXT): $(ioctl_evdev_Xraw_OBJECTS) $(ioctl_evdev_Xraw_DEPENDENCIES) $(EXTRA_ioctl_evdev_Xraw_DEPENDENCIES) + @rm -f ioctl_evdev-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_Xraw_OBJECTS) $(ioctl_evdev_Xraw_LDADD) $(LIBS) + +ioctl_evdev-Xverbose$(EXEEXT): $(ioctl_evdev_Xverbose_OBJECTS) $(ioctl_evdev_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_evdev_Xverbose_DEPENDENCIES) + @rm -f ioctl_evdev-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_Xverbose_OBJECTS) $(ioctl_evdev_Xverbose_LDADD) $(LIBS) + ioctl_evdev-success$(EXEEXT): $(ioctl_evdev_success_OBJECTS) $(ioctl_evdev_success_DEPENDENCIES) $(EXTRA_ioctl_evdev_success_DEPENDENCIES) @rm -f ioctl_evdev-success$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_evdev_success_OBJECTS) $(ioctl_evdev_success_LDADD) $(LIBS) +ioctl_evdev-success-Xabbrev$(EXEEXT): $(ioctl_evdev_success_Xabbrev_OBJECTS) $(ioctl_evdev_success_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_evdev_success_Xabbrev_DEPENDENCIES) + @rm -f ioctl_evdev-success-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_success_Xabbrev_OBJECTS) $(ioctl_evdev_success_Xabbrev_LDADD) $(LIBS) + +ioctl_evdev-success-Xraw$(EXEEXT): $(ioctl_evdev_success_Xraw_OBJECTS) $(ioctl_evdev_success_Xraw_DEPENDENCIES) $(EXTRA_ioctl_evdev_success_Xraw_DEPENDENCIES) + @rm -f ioctl_evdev-success-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_success_Xraw_OBJECTS) $(ioctl_evdev_success_Xraw_LDADD) $(LIBS) + +ioctl_evdev-success-Xverbose$(EXEEXT): $(ioctl_evdev_success_Xverbose_OBJECTS) $(ioctl_evdev_success_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_evdev_success_Xverbose_DEPENDENCIES) + @rm -f ioctl_evdev-success-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_success_Xverbose_OBJECTS) $(ioctl_evdev_success_Xverbose_LDADD) $(LIBS) + ioctl_evdev-success-v$(EXEEXT): $(ioctl_evdev_success_v_OBJECTS) $(ioctl_evdev_success_v_DEPENDENCIES) $(EXTRA_ioctl_evdev_success_v_DEPENDENCIES) @rm -f ioctl_evdev-success-v$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_evdev_success_v_OBJECTS) $(ioctl_evdev_success_v_LDADD) $(LIBS) +ioctl_evdev-success-v-Xabbrev$(EXEEXT): $(ioctl_evdev_success_v_Xabbrev_OBJECTS) $(ioctl_evdev_success_v_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_evdev_success_v_Xabbrev_DEPENDENCIES) + @rm -f ioctl_evdev-success-v-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_success_v_Xabbrev_OBJECTS) $(ioctl_evdev_success_v_Xabbrev_LDADD) $(LIBS) + +ioctl_evdev-success-v-Xraw$(EXEEXT): $(ioctl_evdev_success_v_Xraw_OBJECTS) $(ioctl_evdev_success_v_Xraw_DEPENDENCIES) $(EXTRA_ioctl_evdev_success_v_Xraw_DEPENDENCIES) + @rm -f ioctl_evdev-success-v-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_success_v_Xraw_OBJECTS) $(ioctl_evdev_success_v_Xraw_LDADD) $(LIBS) + +ioctl_evdev-success-v-Xverbose$(EXEEXT): $(ioctl_evdev_success_v_Xverbose_OBJECTS) $(ioctl_evdev_success_v_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_evdev_success_v_Xverbose_DEPENDENCIES) + @rm -f ioctl_evdev-success-v-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_success_v_Xverbose_OBJECTS) $(ioctl_evdev_success_v_Xverbose_LDADD) $(LIBS) + ioctl_evdev-v$(EXEEXT): $(ioctl_evdev_v_OBJECTS) $(ioctl_evdev_v_DEPENDENCIES) $(EXTRA_ioctl_evdev_v_DEPENDENCIES) @rm -f ioctl_evdev-v$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_evdev_v_OBJECTS) $(ioctl_evdev_v_LDADD) $(LIBS) +ioctl_evdev-v-Xabbrev$(EXEEXT): $(ioctl_evdev_v_Xabbrev_OBJECTS) $(ioctl_evdev_v_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_evdev_v_Xabbrev_DEPENDENCIES) + @rm -f ioctl_evdev-v-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_v_Xabbrev_OBJECTS) $(ioctl_evdev_v_Xabbrev_LDADD) $(LIBS) + +ioctl_evdev-v-Xraw$(EXEEXT): $(ioctl_evdev_v_Xraw_OBJECTS) $(ioctl_evdev_v_Xraw_DEPENDENCIES) $(EXTRA_ioctl_evdev_v_Xraw_DEPENDENCIES) + @rm -f ioctl_evdev-v-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_v_Xraw_OBJECTS) $(ioctl_evdev_v_Xraw_LDADD) $(LIBS) + +ioctl_evdev-v-Xverbose$(EXEEXT): $(ioctl_evdev_v_Xverbose_OBJECTS) $(ioctl_evdev_v_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_evdev_v_Xverbose_DEPENDENCIES) + @rm -f ioctl_evdev-v-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_v_Xverbose_OBJECTS) $(ioctl_evdev_v_Xverbose_LDADD) $(LIBS) + +ioctl_hdio$(EXEEXT): $(ioctl_hdio_OBJECTS) $(ioctl_hdio_DEPENDENCIES) $(EXTRA_ioctl_hdio_DEPENDENCIES) + @rm -f ioctl_hdio$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_OBJECTS) $(ioctl_hdio_LDADD) $(LIBS) + +ioctl_hdio-Xabbrev$(EXEEXT): $(ioctl_hdio_Xabbrev_OBJECTS) $(ioctl_hdio_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_hdio_Xabbrev_DEPENDENCIES) + @rm -f ioctl_hdio-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_Xabbrev_OBJECTS) $(ioctl_hdio_Xabbrev_LDADD) $(LIBS) + +ioctl_hdio-Xraw$(EXEEXT): $(ioctl_hdio_Xraw_OBJECTS) $(ioctl_hdio_Xraw_DEPENDENCIES) $(EXTRA_ioctl_hdio_Xraw_DEPENDENCIES) + @rm -f ioctl_hdio-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_Xraw_OBJECTS) $(ioctl_hdio_Xraw_LDADD) $(LIBS) + +ioctl_hdio-Xverbose$(EXEEXT): $(ioctl_hdio_Xverbose_OBJECTS) $(ioctl_hdio_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_hdio_Xverbose_DEPENDENCIES) + @rm -f ioctl_hdio-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_Xverbose_OBJECTS) $(ioctl_hdio_Xverbose_LDADD) $(LIBS) + +ioctl_hdio-success$(EXEEXT): $(ioctl_hdio_success_OBJECTS) $(ioctl_hdio_success_DEPENDENCIES) $(EXTRA_ioctl_hdio_success_DEPENDENCIES) + @rm -f ioctl_hdio-success$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_success_OBJECTS) $(ioctl_hdio_success_LDADD) $(LIBS) + +ioctl_hdio-success-Xabbrev$(EXEEXT): $(ioctl_hdio_success_Xabbrev_OBJECTS) $(ioctl_hdio_success_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_hdio_success_Xabbrev_DEPENDENCIES) + @rm -f ioctl_hdio-success-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_success_Xabbrev_OBJECTS) $(ioctl_hdio_success_Xabbrev_LDADD) $(LIBS) + +ioctl_hdio-success-Xraw$(EXEEXT): $(ioctl_hdio_success_Xraw_OBJECTS) $(ioctl_hdio_success_Xraw_DEPENDENCIES) $(EXTRA_ioctl_hdio_success_Xraw_DEPENDENCIES) + @rm -f ioctl_hdio-success-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_success_Xraw_OBJECTS) $(ioctl_hdio_success_Xraw_LDADD) $(LIBS) + +ioctl_hdio-success-Xverbose$(EXEEXT): $(ioctl_hdio_success_Xverbose_OBJECTS) $(ioctl_hdio_success_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_hdio_success_Xverbose_DEPENDENCIES) + @rm -f ioctl_hdio-success-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_success_Xverbose_OBJECTS) $(ioctl_hdio_success_Xverbose_LDADD) $(LIBS) + +ioctl_hdio-success-v$(EXEEXT): $(ioctl_hdio_success_v_OBJECTS) $(ioctl_hdio_success_v_DEPENDENCIES) $(EXTRA_ioctl_hdio_success_v_DEPENDENCIES) + @rm -f ioctl_hdio-success-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_success_v_OBJECTS) $(ioctl_hdio_success_v_LDADD) $(LIBS) + +ioctl_hdio-success-v-Xabbrev$(EXEEXT): $(ioctl_hdio_success_v_Xabbrev_OBJECTS) $(ioctl_hdio_success_v_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_hdio_success_v_Xabbrev_DEPENDENCIES) + @rm -f ioctl_hdio-success-v-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_success_v_Xabbrev_OBJECTS) $(ioctl_hdio_success_v_Xabbrev_LDADD) $(LIBS) + +ioctl_hdio-success-v-Xraw$(EXEEXT): $(ioctl_hdio_success_v_Xraw_OBJECTS) $(ioctl_hdio_success_v_Xraw_DEPENDENCIES) $(EXTRA_ioctl_hdio_success_v_Xraw_DEPENDENCIES) + @rm -f ioctl_hdio-success-v-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_success_v_Xraw_OBJECTS) $(ioctl_hdio_success_v_Xraw_LDADD) $(LIBS) + +ioctl_hdio-success-v-Xverbose$(EXEEXT): $(ioctl_hdio_success_v_Xverbose_OBJECTS) $(ioctl_hdio_success_v_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_hdio_success_v_Xverbose_DEPENDENCIES) + @rm -f ioctl_hdio-success-v-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_success_v_Xverbose_OBJECTS) $(ioctl_hdio_success_v_Xverbose_LDADD) $(LIBS) + +ioctl_hdio-v$(EXEEXT): $(ioctl_hdio_v_OBJECTS) $(ioctl_hdio_v_DEPENDENCIES) $(EXTRA_ioctl_hdio_v_DEPENDENCIES) + @rm -f ioctl_hdio-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_v_OBJECTS) $(ioctl_hdio_v_LDADD) $(LIBS) + +ioctl_hdio-v-Xabbrev$(EXEEXT): $(ioctl_hdio_v_Xabbrev_OBJECTS) $(ioctl_hdio_v_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_hdio_v_Xabbrev_DEPENDENCIES) + @rm -f ioctl_hdio-v-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_v_Xabbrev_OBJECTS) $(ioctl_hdio_v_Xabbrev_LDADD) $(LIBS) + +ioctl_hdio-v-Xraw$(EXEEXT): $(ioctl_hdio_v_Xraw_OBJECTS) $(ioctl_hdio_v_Xraw_DEPENDENCIES) $(EXTRA_ioctl_hdio_v_Xraw_DEPENDENCIES) + @rm -f ioctl_hdio-v-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_v_Xraw_OBJECTS) $(ioctl_hdio_v_Xraw_LDADD) $(LIBS) + +ioctl_hdio-v-Xverbose$(EXEEXT): $(ioctl_hdio_v_Xverbose_OBJECTS) $(ioctl_hdio_v_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_hdio_v_Xverbose_DEPENDENCIES) + @rm -f ioctl_hdio-v-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_v_Xverbose_OBJECTS) $(ioctl_hdio_v_Xverbose_LDADD) $(LIBS) + ioctl_inotify$(EXEEXT): $(ioctl_inotify_OBJECTS) $(ioctl_inotify_DEPENDENCIES) $(EXTRA_ioctl_inotify_DEPENDENCIES) @rm -f ioctl_inotify$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_inotify_OBJECTS) $(ioctl_inotify_LDADD) $(LIBS) @@ -5845,6 +8007,10 @@ ioctl_sock_gifconf$(EXEEXT): $(ioctl_sock_gifconf_OBJECTS) $(ioctl_sock_gifconf_ @rm -f ioctl_sock_gifconf$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_sock_gifconf_OBJECTS) $(ioctl_sock_gifconf_LDADD) $(LIBS) +ioctl_tee$(EXEEXT): $(ioctl_tee_OBJECTS) $(ioctl_tee_DEPENDENCIES) $(EXTRA_ioctl_tee_DEPENDENCIES) + @rm -f ioctl_tee$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_tee_OBJECTS) $(ioctl_tee_LDADD) $(LIBS) + ioctl_uffdio$(EXEEXT): $(ioctl_uffdio_OBJECTS) $(ioctl_uffdio_DEPENDENCIES) $(EXTRA_ioctl_uffdio_DEPENDENCIES) @rm -f ioctl_uffdio$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_uffdio_OBJECTS) $(ioctl_uffdio_LDADD) $(LIBS) @@ -5853,6 +8019,70 @@ ioctl_v4l2$(EXEEXT): $(ioctl_v4l2_OBJECTS) $(ioctl_v4l2_DEPENDENCIES) $(EXTRA_io @rm -f ioctl_v4l2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_OBJECTS) $(ioctl_v4l2_LDADD) $(LIBS) +ioctl_v4l2-Xabbrev$(EXEEXT): $(ioctl_v4l2_Xabbrev_OBJECTS) $(ioctl_v4l2_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_v4l2_Xabbrev_DEPENDENCIES) + @rm -f ioctl_v4l2-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_Xabbrev_OBJECTS) $(ioctl_v4l2_Xabbrev_LDADD) $(LIBS) + +ioctl_v4l2-Xraw$(EXEEXT): $(ioctl_v4l2_Xraw_OBJECTS) $(ioctl_v4l2_Xraw_DEPENDENCIES) $(EXTRA_ioctl_v4l2_Xraw_DEPENDENCIES) + @rm -f ioctl_v4l2-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_Xraw_OBJECTS) $(ioctl_v4l2_Xraw_LDADD) $(LIBS) + +ioctl_v4l2-Xverbose$(EXEEXT): $(ioctl_v4l2_Xverbose_OBJECTS) $(ioctl_v4l2_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_v4l2_Xverbose_DEPENDENCIES) + @rm -f ioctl_v4l2-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_Xverbose_OBJECTS) $(ioctl_v4l2_Xverbose_LDADD) $(LIBS) + +ioctl_v4l2-success$(EXEEXT): $(ioctl_v4l2_success_OBJECTS) $(ioctl_v4l2_success_DEPENDENCIES) $(EXTRA_ioctl_v4l2_success_DEPENDENCIES) + @rm -f ioctl_v4l2-success$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_success_OBJECTS) $(ioctl_v4l2_success_LDADD) $(LIBS) + +ioctl_v4l2-success-Xabbrev$(EXEEXT): $(ioctl_v4l2_success_Xabbrev_OBJECTS) $(ioctl_v4l2_success_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_v4l2_success_Xabbrev_DEPENDENCIES) + @rm -f ioctl_v4l2-success-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_success_Xabbrev_OBJECTS) $(ioctl_v4l2_success_Xabbrev_LDADD) $(LIBS) + +ioctl_v4l2-success-Xraw$(EXEEXT): $(ioctl_v4l2_success_Xraw_OBJECTS) $(ioctl_v4l2_success_Xraw_DEPENDENCIES) $(EXTRA_ioctl_v4l2_success_Xraw_DEPENDENCIES) + @rm -f ioctl_v4l2-success-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_success_Xraw_OBJECTS) $(ioctl_v4l2_success_Xraw_LDADD) $(LIBS) + +ioctl_v4l2-success-Xverbose$(EXEEXT): $(ioctl_v4l2_success_Xverbose_OBJECTS) $(ioctl_v4l2_success_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_v4l2_success_Xverbose_DEPENDENCIES) + @rm -f ioctl_v4l2-success-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_success_Xverbose_OBJECTS) $(ioctl_v4l2_success_Xverbose_LDADD) $(LIBS) + +ioctl_v4l2-success-v$(EXEEXT): $(ioctl_v4l2_success_v_OBJECTS) $(ioctl_v4l2_success_v_DEPENDENCIES) $(EXTRA_ioctl_v4l2_success_v_DEPENDENCIES) + @rm -f ioctl_v4l2-success-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_success_v_OBJECTS) $(ioctl_v4l2_success_v_LDADD) $(LIBS) + +ioctl_v4l2-success-v-Xabbrev$(EXEEXT): $(ioctl_v4l2_success_v_Xabbrev_OBJECTS) $(ioctl_v4l2_success_v_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_v4l2_success_v_Xabbrev_DEPENDENCIES) + @rm -f ioctl_v4l2-success-v-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_success_v_Xabbrev_OBJECTS) $(ioctl_v4l2_success_v_Xabbrev_LDADD) $(LIBS) + +ioctl_v4l2-success-v-Xraw$(EXEEXT): $(ioctl_v4l2_success_v_Xraw_OBJECTS) $(ioctl_v4l2_success_v_Xraw_DEPENDENCIES) $(EXTRA_ioctl_v4l2_success_v_Xraw_DEPENDENCIES) + @rm -f ioctl_v4l2-success-v-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_success_v_Xraw_OBJECTS) $(ioctl_v4l2_success_v_Xraw_LDADD) $(LIBS) + +ioctl_v4l2-success-v-Xverbose$(EXEEXT): $(ioctl_v4l2_success_v_Xverbose_OBJECTS) $(ioctl_v4l2_success_v_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_v4l2_success_v_Xverbose_DEPENDENCIES) + @rm -f ioctl_v4l2-success-v-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_success_v_Xverbose_OBJECTS) $(ioctl_v4l2_success_v_Xverbose_LDADD) $(LIBS) + +ioctl_v4l2-v$(EXEEXT): $(ioctl_v4l2_v_OBJECTS) $(ioctl_v4l2_v_DEPENDENCIES) $(EXTRA_ioctl_v4l2_v_DEPENDENCIES) + @rm -f ioctl_v4l2-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_v_OBJECTS) $(ioctl_v4l2_v_LDADD) $(LIBS) + +ioctl_v4l2-v-Xabbrev$(EXEEXT): $(ioctl_v4l2_v_Xabbrev_OBJECTS) $(ioctl_v4l2_v_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_v4l2_v_Xabbrev_DEPENDENCIES) + @rm -f ioctl_v4l2-v-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_v_Xabbrev_OBJECTS) $(ioctl_v4l2_v_Xabbrev_LDADD) $(LIBS) + +ioctl_v4l2-v-Xraw$(EXEEXT): $(ioctl_v4l2_v_Xraw_OBJECTS) $(ioctl_v4l2_v_Xraw_DEPENDENCIES) $(EXTRA_ioctl_v4l2_v_Xraw_DEPENDENCIES) + @rm -f ioctl_v4l2-v-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_v_Xraw_OBJECTS) $(ioctl_v4l2_v_Xraw_LDADD) $(LIBS) + +ioctl_v4l2-v-Xverbose$(EXEEXT): $(ioctl_v4l2_v_Xverbose_OBJECTS) $(ioctl_v4l2_v_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_v4l2_v_Xverbose_DEPENDENCIES) + @rm -f ioctl_v4l2-v-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_v_Xverbose_OBJECTS) $(ioctl_v4l2_v_Xverbose_LDADD) $(LIBS) + +ioctl_watchdog$(EXEEXT): $(ioctl_watchdog_OBJECTS) $(ioctl_watchdog_DEPENDENCIES) $(EXTRA_ioctl_watchdog_DEPENDENCIES) + @rm -f ioctl_watchdog$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_watchdog_OBJECTS) $(ioctl_watchdog_LDADD) $(LIBS) + ioperm$(EXEEXT): $(ioperm_OBJECTS) $(ioperm_DEPENDENCIES) $(EXTRA_ioperm_DEPENDENCIES) @rm -f ioperm$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioperm_OBJECTS) $(ioperm_LDADD) $(LIBS) @@ -5865,6 +8095,10 @@ ioprio$(EXEEXT): $(ioprio_OBJECTS) $(ioprio_DEPENDENCIES) $(EXTRA_ioprio_DEPENDE @rm -f ioprio$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioprio_OBJECTS) $(ioprio_LDADD) $(LIBS) +ioprio--pidns-translation$(EXEEXT): $(ioprio__pidns_translation_OBJECTS) $(ioprio__pidns_translation_DEPENDENCIES) $(EXTRA_ioprio__pidns_translation_DEPENDENCIES) + @rm -f ioprio--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioprio__pidns_translation_OBJECTS) $(ioprio__pidns_translation_LDADD) $(LIBS) + ioprio-Xabbrev$(EXEEXT): $(ioprio_Xabbrev_OBJECTS) $(ioprio_Xabbrev_DEPENDENCIES) $(EXTRA_ioprio_Xabbrev_DEPENDENCIES) @rm -f ioprio-Xabbrev$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioprio_Xabbrev_OBJECTS) $(ioprio_Xabbrev_LDADD) $(LIBS) @@ -5961,6 +8195,10 @@ kcmp-y$(EXEEXT): $(kcmp_y_OBJECTS) $(kcmp_y_DEPENDENCIES) $(EXTRA_kcmp_y_DEPENDE @rm -f kcmp-y$(EXEEXT) $(AM_V_CCLD)$(LINK) $(kcmp_y_OBJECTS) $(kcmp_y_LDADD) $(LIBS) +kcmp-y--pidns-translation$(EXEEXT): $(kcmp_y__pidns_translation_OBJECTS) $(kcmp_y__pidns_translation_DEPENDENCIES) $(EXTRA_kcmp_y__pidns_translation_DEPENDENCIES) + @rm -f kcmp-y--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(kcmp_y__pidns_translation_OBJECTS) $(kcmp_y__pidns_translation_LDADD) $(LIBS) + kern_features$(EXEEXT): $(kern_features_OBJECTS) $(kern_features_DEPENDENCIES) $(EXTRA_kern_features_DEPENDENCIES) @rm -f kern_features$(EXEEXT) $(AM_V_CCLD)$(LINK) $(kern_features_OBJECTS) $(kern_features_LDADD) $(LIBS) @@ -6009,6 +8247,10 @@ kill$(EXEEXT): $(kill_OBJECTS) $(kill_DEPENDENCIES) $(EXTRA_kill_DEPENDENCIES) @rm -f kill$(EXEEXT) $(AM_V_CCLD)$(LINK) $(kill_OBJECTS) $(kill_LDADD) $(LIBS) +kill--pidns-translation$(EXEEXT): $(kill__pidns_translation_OBJECTS) $(kill__pidns_translation_DEPENDENCIES) $(EXTRA_kill__pidns_translation_DEPENDENCIES) + @rm -f kill--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(kill__pidns_translation_OBJECTS) $(kill__pidns_translation_LDADD) $(LIBS) + kill_child$(EXEEXT): $(kill_child_OBJECTS) $(kill_child_DEPENDENCIES) $(EXTRA_kill_child_DEPENDENCIES) @rm -f kill_child$(EXEEXT) $(AM_V_CCLD)$(LINK) $(kill_child_OBJECTS) $(kill_child_LDADD) $(LIBS) @@ -6069,10 +8311,30 @@ madvise$(EXEEXT): $(madvise_OBJECTS) $(madvise_DEPENDENCIES) $(EXTRA_madvise_DEP @rm -f madvise$(EXEEXT) $(AM_V_CCLD)$(LINK) $(madvise_OBJECTS) $(madvise_LDADD) $(LIBS) +maybe_switch_current_tcp$(EXEEXT): $(maybe_switch_current_tcp_OBJECTS) $(maybe_switch_current_tcp_DEPENDENCIES) $(EXTRA_maybe_switch_current_tcp_DEPENDENCIES) + @rm -f maybe_switch_current_tcp$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(maybe_switch_current_tcp_OBJECTS) $(maybe_switch_current_tcp_LDADD) $(LIBS) + +maybe_switch_current_tcp--quiet-thread-execve$(EXEEXT): $(maybe_switch_current_tcp__quiet_thread_execve_OBJECTS) $(maybe_switch_current_tcp__quiet_thread_execve_DEPENDENCIES) $(EXTRA_maybe_switch_current_tcp__quiet_thread_execve_DEPENDENCIES) + @rm -f maybe_switch_current_tcp--quiet-thread-execve$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(maybe_switch_current_tcp__quiet_thread_execve_OBJECTS) $(maybe_switch_current_tcp__quiet_thread_execve_LDADD) $(LIBS) + mbind$(EXEEXT): $(mbind_OBJECTS) $(mbind_DEPENDENCIES) $(EXTRA_mbind_DEPENDENCIES) @rm -f mbind$(EXEEXT) $(AM_V_CCLD)$(LINK) $(mbind_OBJECTS) $(mbind_LDADD) $(LIBS) +mbind-Xabbrev$(EXEEXT): $(mbind_Xabbrev_OBJECTS) $(mbind_Xabbrev_DEPENDENCIES) $(EXTRA_mbind_Xabbrev_DEPENDENCIES) + @rm -f mbind-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(mbind_Xabbrev_OBJECTS) $(mbind_Xabbrev_LDADD) $(LIBS) + +mbind-Xraw$(EXEEXT): $(mbind_Xraw_OBJECTS) $(mbind_Xraw_DEPENDENCIES) $(EXTRA_mbind_Xraw_DEPENDENCIES) + @rm -f mbind-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(mbind_Xraw_OBJECTS) $(mbind_Xraw_LDADD) $(LIBS) + +mbind-Xverbose$(EXEEXT): $(mbind_Xverbose_OBJECTS) $(mbind_Xverbose_DEPENDENCIES) $(EXTRA_mbind_Xverbose_DEPENDENCIES) + @rm -f mbind-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(mbind_Xverbose_OBJECTS) $(mbind_Xverbose_LDADD) $(LIBS) + membarrier$(EXEEXT): $(membarrier_OBJECTS) $(membarrier_DEPENDENCIES) $(EXTRA_membarrier_DEPENDENCIES) @rm -f membarrier$(EXEEXT) $(AM_V_CCLD)$(LINK) $(membarrier_OBJECTS) $(membarrier_LDADD) $(LIBS) @@ -6097,6 +8359,10 @@ migrate_pages$(EXEEXT): $(migrate_pages_OBJECTS) $(migrate_pages_DEPENDENCIES) $ @rm -f migrate_pages$(EXEEXT) $(AM_V_CCLD)$(LINK) $(migrate_pages_OBJECTS) $(migrate_pages_LDADD) $(LIBS) +migrate_pages--pidns-translation$(EXEEXT): $(migrate_pages__pidns_translation_OBJECTS) $(migrate_pages__pidns_translation_DEPENDENCIES) $(EXTRA_migrate_pages__pidns_translation_DEPENDENCIES) + @rm -f migrate_pages--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(migrate_pages__pidns_translation_OBJECTS) $(migrate_pages__pidns_translation_LDADD) $(LIBS) + mincore$(EXEEXT): $(mincore_OBJECTS) $(mincore_DEPENDENCIES) $(EXTRA_mincore_DEPENDENCIES) @rm -f mincore$(EXEEXT) $(AM_V_CCLD)$(LINK) $(mincore_OBJECTS) $(mincore_LDADD) $(LIBS) @@ -6197,10 +8463,22 @@ mount-Xverbose$(EXEEXT): $(mount_Xverbose_OBJECTS) $(mount_Xverbose_DEPENDENCIES @rm -f mount-Xverbose$(EXEEXT) $(AM_V_CCLD)$(LINK) $(mount_Xverbose_OBJECTS) $(mount_Xverbose_LDADD) $(LIBS) +move_mount$(EXEEXT): $(move_mount_OBJECTS) $(move_mount_DEPENDENCIES) $(EXTRA_move_mount_DEPENDENCIES) + @rm -f move_mount$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(move_mount_OBJECTS) $(move_mount_LDADD) $(LIBS) + +move_mount-P$(EXEEXT): $(move_mount_P_OBJECTS) $(move_mount_P_DEPENDENCIES) $(EXTRA_move_mount_P_DEPENDENCIES) + @rm -f move_mount-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(move_mount_P_OBJECTS) $(move_mount_P_LDADD) $(LIBS) + move_pages$(EXEEXT): $(move_pages_OBJECTS) $(move_pages_DEPENDENCIES) $(EXTRA_move_pages_DEPENDENCIES) @rm -f move_pages$(EXEEXT) $(AM_V_CCLD)$(LINK) $(move_pages_OBJECTS) $(move_pages_LDADD) $(LIBS) +move_pages--pidns-translation$(EXEEXT): $(move_pages__pidns_translation_OBJECTS) $(move_pages__pidns_translation_DEPENDENCIES) $(EXTRA_move_pages__pidns_translation_DEPENDENCIES) + @rm -f move_pages--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(move_pages__pidns_translation_OBJECTS) $(move_pages__pidns_translation_LDADD) $(LIBS) + move_pages-Xabbrev$(EXEEXT): $(move_pages_Xabbrev_OBJECTS) $(move_pages_Xabbrev_DEPENDENCIES) $(EXTRA_move_pages_Xabbrev_DEPENDENCIES) @rm -f move_pages-Xabbrev$(EXEEXT) $(AM_V_CCLD)$(LINK) $(move_pages_Xabbrev_OBJECTS) $(move_pages_Xabbrev_LDADD) $(LIBS) @@ -6249,6 +8527,22 @@ nanosleep$(EXEEXT): $(nanosleep_OBJECTS) $(nanosleep_DEPENDENCIES) $(EXTRA_nanos @rm -f nanosleep$(EXEEXT) $(AM_V_CCLD)$(LINK) $(nanosleep_OBJECTS) $(nanosleep_LDADD) $(LIBS) +net--decode-fds-dev-netlink$(EXEEXT): $(net__decode_fds_dev_netlink_OBJECTS) $(net__decode_fds_dev_netlink_DEPENDENCIES) $(EXTRA_net__decode_fds_dev_netlink_DEPENDENCIES) + @rm -f net--decode-fds-dev-netlink$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(net__decode_fds_dev_netlink_OBJECTS) $(net__decode_fds_dev_netlink_LDADD) $(LIBS) + +net--decode-fds-none-netlink$(EXEEXT): $(net__decode_fds_none_netlink_OBJECTS) $(net__decode_fds_none_netlink_DEPENDENCIES) $(EXTRA_net__decode_fds_none_netlink_DEPENDENCIES) + @rm -f net--decode-fds-none-netlink$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(net__decode_fds_none_netlink_OBJECTS) $(net__decode_fds_none_netlink_LDADD) $(LIBS) + +net--decode-fds-path-netlink$(EXEEXT): $(net__decode_fds_path_netlink_OBJECTS) $(net__decode_fds_path_netlink_DEPENDENCIES) $(EXTRA_net__decode_fds_path_netlink_DEPENDENCIES) + @rm -f net--decode-fds-path-netlink$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(net__decode_fds_path_netlink_OBJECTS) $(net__decode_fds_path_netlink_LDADD) $(LIBS) + +net--decode-fds-socket-netlink$(EXEEXT): $(net__decode_fds_socket_netlink_OBJECTS) $(net__decode_fds_socket_netlink_DEPENDENCIES) $(EXTRA_net__decode_fds_socket_netlink_DEPENDENCIES) + @rm -f net--decode-fds-socket-netlink$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(net__decode_fds_socket_netlink_OBJECTS) $(net__decode_fds_socket_netlink_LDADD) $(LIBS) + net-accept-connect$(EXEEXT): $(net_accept_connect_OBJECTS) $(net_accept_connect_DEPENDENCIES) $(EXTRA_net_accept_connect_DEPENDENCIES) @rm -f net-accept-connect$(EXEEXT) $(AM_V_CCLD)$(LINK) $(net_accept_connect_OBJECTS) $(net_accept_connect_LDADD) $(LIBS) @@ -6277,6 +8571,10 @@ net-sockaddr$(EXEEXT): $(net_sockaddr_OBJECTS) $(net_sockaddr_DEPENDENCIES) $(EX @rm -f net-sockaddr$(EXEEXT) $(AM_V_CCLD)$(LINK) $(net_sockaddr_OBJECTS) $(net_sockaddr_LDADD) $(LIBS) +net-sockaddr--pidns-translation$(EXEEXT): $(net_sockaddr__pidns_translation_OBJECTS) $(net_sockaddr__pidns_translation_DEPENDENCIES) $(EXTRA_net_sockaddr__pidns_translation_DEPENDENCIES) + @rm -f net-sockaddr--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(net_sockaddr__pidns_translation_OBJECTS) $(net_sockaddr__pidns_translation_LDADD) $(LIBS) + net-tpacket_req$(EXEEXT): $(net_tpacket_req_OBJECTS) $(net_tpacket_req_DEPENDENCIES) $(EXTRA_net_tpacket_req_DEPENDENCIES) @rm -f net-tpacket_req$(EXEEXT) $(AM_V_CCLD)$(LINK) $(net_tpacket_req_OBJECTS) $(net_tpacket_req_LDADD) $(LIBS) @@ -6313,6 +8611,10 @@ netlink_audit$(EXEEXT): $(netlink_audit_OBJECTS) $(netlink_audit_DEPENDENCIES) $ @rm -f netlink_audit$(EXEEXT) $(AM_V_CCLD)$(LINK) $(netlink_audit_OBJECTS) $(netlink_audit_LDADD) $(LIBS) +netlink_audit--pidns-translation$(EXEEXT): $(netlink_audit__pidns_translation_OBJECTS) $(netlink_audit__pidns_translation_DEPENDENCIES) $(EXTRA_netlink_audit__pidns_translation_DEPENDENCIES) + @rm -f netlink_audit--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(netlink_audit__pidns_translation_OBJECTS) $(netlink_audit__pidns_translation_LDADD) $(LIBS) + netlink_crypto$(EXEEXT): $(netlink_crypto_OBJECTS) $(netlink_crypto_DEPENDENCIES) $(EXTRA_netlink_crypto_DEPENDENCIES) @rm -f netlink_crypto$(EXEEXT) $(AM_V_CCLD)$(LINK) $(netlink_crypto_OBJECTS) $(netlink_crypto_LDADD) $(LIBS) @@ -6461,6 +8763,10 @@ nlattr_ifla_xdp$(EXEEXT): $(nlattr_ifla_xdp_OBJECTS) $(nlattr_ifla_xdp_DEPENDENC @rm -f nlattr_ifla_xdp$(EXEEXT) $(AM_V_CCLD)$(LINK) $(nlattr_ifla_xdp_OBJECTS) $(nlattr_ifla_xdp_LDADD) $(LIBS) +nlattr_ifla_xdp-y$(EXEEXT): $(nlattr_ifla_xdp_y_OBJECTS) $(nlattr_ifla_xdp_y_DEPENDENCIES) $(EXTRA_nlattr_ifla_xdp_y_DEPENDENCIES) + @rm -f nlattr_ifla_xdp-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(nlattr_ifla_xdp_y_OBJECTS) $(nlattr_ifla_xdp_y_LDADD) $(LIBS) + nlattr_inet_diag_msg$(EXEEXT): $(nlattr_inet_diag_msg_OBJECTS) $(nlattr_inet_diag_msg_DEPENDENCIES) $(EXTRA_nlattr_inet_diag_msg_DEPENDENCIES) @rm -f nlattr_inet_diag_msg$(EXEEXT) $(AM_V_CCLD)$(LINK) $(nlattr_inet_diag_msg_OBJECTS) $(nlattr_inet_diag_msg_LDADD) $(LIBS) @@ -6601,10 +8907,58 @@ open$(EXEEXT): $(open_OBJECTS) $(open_DEPENDENCIES) $(EXTRA_open_DEPENDENCIES) @rm -f open$(EXEEXT) $(AM_V_CCLD)$(LINK) $(open_OBJECTS) $(open_LDADD) $(LIBS) +open_tree$(EXEEXT): $(open_tree_OBJECTS) $(open_tree_DEPENDENCIES) $(EXTRA_open_tree_DEPENDENCIES) + @rm -f open_tree$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(open_tree_OBJECTS) $(open_tree_LDADD) $(LIBS) + +open_tree-P$(EXEEXT): $(open_tree_P_OBJECTS) $(open_tree_P_DEPENDENCIES) $(EXTRA_open_tree_P_DEPENDENCIES) + @rm -f open_tree-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(open_tree_P_OBJECTS) $(open_tree_P_LDADD) $(LIBS) + openat$(EXEEXT): $(openat_OBJECTS) $(openat_DEPENDENCIES) $(EXTRA_openat_DEPENDENCIES) @rm -f openat$(EXEEXT) $(AM_V_CCLD)$(LINK) $(openat_OBJECTS) $(openat_LDADD) $(LIBS) +openat2$(EXEEXT): $(openat2_OBJECTS) $(openat2_DEPENDENCIES) $(EXTRA_openat2_DEPENDENCIES) + @rm -f openat2$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_OBJECTS) $(openat2_LDADD) $(LIBS) + +openat2-Xabbrev$(EXEEXT): $(openat2_Xabbrev_OBJECTS) $(openat2_Xabbrev_DEPENDENCIES) $(EXTRA_openat2_Xabbrev_DEPENDENCIES) + @rm -f openat2-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_Xabbrev_OBJECTS) $(openat2_Xabbrev_LDADD) $(LIBS) + +openat2-Xraw$(EXEEXT): $(openat2_Xraw_OBJECTS) $(openat2_Xraw_DEPENDENCIES) $(EXTRA_openat2_Xraw_DEPENDENCIES) + @rm -f openat2-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_Xraw_OBJECTS) $(openat2_Xraw_LDADD) $(LIBS) + +openat2-Xverbose$(EXEEXT): $(openat2_Xverbose_OBJECTS) $(openat2_Xverbose_DEPENDENCIES) $(EXTRA_openat2_Xverbose_DEPENDENCIES) + @rm -f openat2-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_Xverbose_OBJECTS) $(openat2_Xverbose_LDADD) $(LIBS) + +openat2-v$(EXEEXT): $(openat2_v_OBJECTS) $(openat2_v_DEPENDENCIES) $(EXTRA_openat2_v_DEPENDENCIES) + @rm -f openat2-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_v_OBJECTS) $(openat2_v_LDADD) $(LIBS) + +openat2-v-y$(EXEEXT): $(openat2_v_y_OBJECTS) $(openat2_v_y_DEPENDENCIES) $(EXTRA_openat2_v_y_DEPENDENCIES) + @rm -f openat2-v-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_v_y_OBJECTS) $(openat2_v_y_LDADD) $(LIBS) + +openat2-v-y-Xabbrev$(EXEEXT): $(openat2_v_y_Xabbrev_OBJECTS) $(openat2_v_y_Xabbrev_DEPENDENCIES) $(EXTRA_openat2_v_y_Xabbrev_DEPENDENCIES) + @rm -f openat2-v-y-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_v_y_Xabbrev_OBJECTS) $(openat2_v_y_Xabbrev_LDADD) $(LIBS) + +openat2-v-y-Xraw$(EXEEXT): $(openat2_v_y_Xraw_OBJECTS) $(openat2_v_y_Xraw_DEPENDENCIES) $(EXTRA_openat2_v_y_Xraw_DEPENDENCIES) + @rm -f openat2-v-y-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_v_y_Xraw_OBJECTS) $(openat2_v_y_Xraw_LDADD) $(LIBS) + +openat2-v-y-Xverbose$(EXEEXT): $(openat2_v_y_Xverbose_OBJECTS) $(openat2_v_y_Xverbose_DEPENDENCIES) $(EXTRA_openat2_v_y_Xverbose_DEPENDENCIES) + @rm -f openat2-v-y-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_v_y_Xverbose_OBJECTS) $(openat2_v_y_Xverbose_LDADD) $(LIBS) + +openat2-y$(EXEEXT): $(openat2_y_OBJECTS) $(openat2_y_DEPENDENCIES) $(EXTRA_openat2_y_DEPENDENCIES) + @rm -f openat2-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_y_OBJECTS) $(openat2_y_LDADD) $(LIBS) + orphaned_process_group$(EXEEXT): $(orphaned_process_group_OBJECTS) $(orphaned_process_group_DEPENDENCIES) $(EXTRA_orphaned_process_group_DEPENDENCIES) @rm -f orphaned_process_group$(EXEEXT) $(AM_V_CCLD)$(LINK) $(orphaned_process_group_OBJECTS) $(orphaned_process_group_LDADD) $(LIBS) @@ -6649,10 +9003,62 @@ personality-Xverbose$(EXEEXT): $(personality_Xverbose_OBJECTS) $(personality_Xve @rm -f personality-Xverbose$(EXEEXT) $(AM_V_CCLD)$(LINK) $(personality_Xverbose_OBJECTS) $(personality_Xverbose_LDADD) $(LIBS) +pidfd_getfd$(EXEEXT): $(pidfd_getfd_OBJECTS) $(pidfd_getfd_DEPENDENCIES) $(EXTRA_pidfd_getfd_DEPENDENCIES) + @rm -f pidfd_getfd$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_getfd_OBJECTS) $(pidfd_getfd_LDADD) $(LIBS) + +pidfd_getfd-y$(EXEEXT): $(pidfd_getfd_y_OBJECTS) $(pidfd_getfd_y_DEPENDENCIES) $(EXTRA_pidfd_getfd_y_DEPENDENCIES) + @rm -f pidfd_getfd-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_getfd_y_OBJECTS) $(pidfd_getfd_y_LDADD) $(LIBS) + +pidfd_getfd-yy$(EXEEXT): $(pidfd_getfd_yy_OBJECTS) $(pidfd_getfd_yy_DEPENDENCIES) $(EXTRA_pidfd_getfd_yy_DEPENDENCIES) + @rm -f pidfd_getfd-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_getfd_yy_OBJECTS) $(pidfd_getfd_yy_LDADD) $(LIBS) + +pidfd_open$(EXEEXT): $(pidfd_open_OBJECTS) $(pidfd_open_DEPENDENCIES) $(EXTRA_pidfd_open_DEPENDENCIES) + @rm -f pidfd_open$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_open_OBJECTS) $(pidfd_open_LDADD) $(LIBS) + +pidfd_open--decode-fd-path$(EXEEXT): $(pidfd_open__decode_fd_path_OBJECTS) $(pidfd_open__decode_fd_path_DEPENDENCIES) $(EXTRA_pidfd_open__decode_fd_path_DEPENDENCIES) + @rm -f pidfd_open--decode-fd-path$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_open__decode_fd_path_OBJECTS) $(pidfd_open__decode_fd_path_LDADD) $(LIBS) + +pidfd_open--decode-fd-pidfd$(EXEEXT): $(pidfd_open__decode_fd_pidfd_OBJECTS) $(pidfd_open__decode_fd_pidfd_DEPENDENCIES) $(EXTRA_pidfd_open__decode_fd_pidfd_DEPENDENCIES) + @rm -f pidfd_open--decode-fd-pidfd$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_open__decode_fd_pidfd_OBJECTS) $(pidfd_open__decode_fd_pidfd_LDADD) $(LIBS) + +pidfd_open--decode-fd-socket$(EXEEXT): $(pidfd_open__decode_fd_socket_OBJECTS) $(pidfd_open__decode_fd_socket_DEPENDENCIES) $(EXTRA_pidfd_open__decode_fd_socket_DEPENDENCIES) + @rm -f pidfd_open--decode-fd-socket$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_open__decode_fd_socket_OBJECTS) $(pidfd_open__decode_fd_socket_LDADD) $(LIBS) + +pidfd_open--pidns-translation$(EXEEXT): $(pidfd_open__pidns_translation_OBJECTS) $(pidfd_open__pidns_translation_DEPENDENCIES) $(EXTRA_pidfd_open__pidns_translation_DEPENDENCIES) + @rm -f pidfd_open--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_open__pidns_translation_OBJECTS) $(pidfd_open__pidns_translation_LDADD) $(LIBS) + +pidfd_open-P$(EXEEXT): $(pidfd_open_P_OBJECTS) $(pidfd_open_P_DEPENDENCIES) $(EXTRA_pidfd_open_P_DEPENDENCIES) + @rm -f pidfd_open-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_open_P_OBJECTS) $(pidfd_open_P_LDADD) $(LIBS) + +pidfd_open-y$(EXEEXT): $(pidfd_open_y_OBJECTS) $(pidfd_open_y_DEPENDENCIES) $(EXTRA_pidfd_open_y_DEPENDENCIES) + @rm -f pidfd_open-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_open_y_OBJECTS) $(pidfd_open_y_LDADD) $(LIBS) + +pidfd_open-yy$(EXEEXT): $(pidfd_open_yy_OBJECTS) $(pidfd_open_yy_DEPENDENCIES) $(EXTRA_pidfd_open_yy_DEPENDENCIES) + @rm -f pidfd_open-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_open_yy_OBJECTS) $(pidfd_open_yy_LDADD) $(LIBS) + pidfd_send_signal$(EXEEXT): $(pidfd_send_signal_OBJECTS) $(pidfd_send_signal_DEPENDENCIES) $(EXTRA_pidfd_send_signal_DEPENDENCIES) @rm -f pidfd_send_signal$(EXEEXT) $(AM_V_CCLD)$(LINK) $(pidfd_send_signal_OBJECTS) $(pidfd_send_signal_LDADD) $(LIBS) +pidfd_send_signal--pidns-translation$(EXEEXT): $(pidfd_send_signal__pidns_translation_OBJECTS) $(pidfd_send_signal__pidns_translation_DEPENDENCIES) $(EXTRA_pidfd_send_signal__pidns_translation_DEPENDENCIES) + @rm -f pidfd_send_signal--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_send_signal__pidns_translation_OBJECTS) $(pidfd_send_signal__pidns_translation_LDADD) $(LIBS) + +pidns-cache$(EXEEXT): $(pidns_cache_OBJECTS) $(pidns_cache_DEPENDENCIES) $(EXTRA_pidns_cache_DEPENDENCIES) + @rm -f pidns-cache$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidns_cache_OBJECTS) $(pidns_cache_LDADD) $(LIBS) + pipe$(EXEEXT): $(pipe_OBJECTS) $(pipe_DEPENDENCIES) $(EXTRA_pipe_DEPENDENCIES) @rm -f pipe$(EXEEXT) $(AM_V_CCLD)$(LINK) $(pipe_OBJECTS) $(pipe_LDADD) $(LIBS) @@ -6757,6 +9163,10 @@ print_maxfd$(EXEEXT): $(print_maxfd_OBJECTS) $(print_maxfd_DEPENDENCIES) $(EXTRA @rm -f print_maxfd$(EXEEXT) $(AM_V_CCLD)$(LINK) $(print_maxfd_OBJECTS) $(print_maxfd_LDADD) $(LIBS) +print_ppid_tracerpid$(EXEEXT): $(print_ppid_tracerpid_OBJECTS) $(print_ppid_tracerpid_DEPENDENCIES) $(EXTRA_print_ppid_tracerpid_DEPENDENCIES) + @rm -f print_ppid_tracerpid$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(print_ppid_tracerpid_OBJECTS) $(print_ppid_tracerpid_LDADD) $(LIBS) + printpath-umovestr$(EXEEXT): $(printpath_umovestr_OBJECTS) $(printpath_umovestr_DEPENDENCIES) $(EXTRA_printpath_umovestr_DEPENDENCIES) @rm -f printpath-umovestr$(EXEEXT) $(AM_V_CCLD)$(LINK) $(printpath_umovestr_OBJECTS) $(printpath_umovestr_LDADD) $(LIBS) @@ -6801,14 +9211,26 @@ prlimit64$(EXEEXT): $(prlimit64_OBJECTS) $(prlimit64_DEPENDENCIES) $(EXTRA_prlim @rm -f prlimit64$(EXEEXT) $(AM_V_CCLD)$(LINK) $(prlimit64_OBJECTS) $(prlimit64_LDADD) $(LIBS) +prlimit64--pidns-translation$(EXEEXT): $(prlimit64__pidns_translation_OBJECTS) $(prlimit64__pidns_translation_DEPENDENCIES) $(EXTRA_prlimit64__pidns_translation_DEPENDENCIES) + @rm -f prlimit64--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(prlimit64__pidns_translation_OBJECTS) $(prlimit64__pidns_translation_LDADD) $(LIBS) + process_vm_readv$(EXEEXT): $(process_vm_readv_OBJECTS) $(process_vm_readv_DEPENDENCIES) $(EXTRA_process_vm_readv_DEPENDENCIES) @rm -f process_vm_readv$(EXEEXT) $(AM_V_CCLD)$(LINK) $(process_vm_readv_OBJECTS) $(process_vm_readv_LDADD) $(LIBS) +process_vm_readv--pidns-translation$(EXEEXT): $(process_vm_readv__pidns_translation_OBJECTS) $(process_vm_readv__pidns_translation_DEPENDENCIES) $(EXTRA_process_vm_readv__pidns_translation_DEPENDENCIES) + @rm -f process_vm_readv--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(process_vm_readv__pidns_translation_OBJECTS) $(process_vm_readv__pidns_translation_LDADD) $(LIBS) + process_vm_writev$(EXEEXT): $(process_vm_writev_OBJECTS) $(process_vm_writev_DEPENDENCIES) $(EXTRA_process_vm_writev_DEPENDENCIES) @rm -f process_vm_writev$(EXEEXT) $(AM_V_CCLD)$(LINK) $(process_vm_writev_OBJECTS) $(process_vm_writev_LDADD) $(LIBS) +process_vm_writev--pidns-translation$(EXEEXT): $(process_vm_writev__pidns_translation_OBJECTS) $(process_vm_writev__pidns_translation_DEPENDENCIES) $(EXTRA_process_vm_writev__pidns_translation_DEPENDENCIES) + @rm -f process_vm_writev--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(process_vm_writev__pidns_translation_OBJECTS) $(process_vm_writev__pidns_translation_LDADD) $(LIBS) + pselect6$(EXEEXT): $(pselect6_OBJECTS) $(pselect6_DEPENDENCIES) $(EXTRA_pselect6_DEPENDENCIES) @rm -f pselect6$(EXEEXT) $(AM_V_CCLD)$(LINK) $(pselect6_OBJECTS) $(pselect6_LDADD) $(LIBS) @@ -6917,10 +9339,18 @@ reboot$(EXEEXT): $(reboot_OBJECTS) $(reboot_DEPENDENCIES) $(EXTRA_reboot_DEPENDE @rm -f reboot$(EXEEXT) $(AM_V_CCLD)$(LINK) $(reboot_OBJECTS) $(reboot_LDADD) $(LIBS) +recv-MSG_TRUNC$(EXEEXT): $(recv_MSG_TRUNC_OBJECTS) $(recv_MSG_TRUNC_DEPENDENCIES) $(EXTRA_recv_MSG_TRUNC_DEPENDENCIES) + @rm -f recv-MSG_TRUNC$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(recv_MSG_TRUNC_OBJECTS) $(recv_MSG_TRUNC_LDADD) $(LIBS) + recvfrom$(EXEEXT): $(recvfrom_OBJECTS) $(recvfrom_DEPENDENCIES) $(EXTRA_recvfrom_DEPENDENCIES) @rm -f recvfrom$(EXEEXT) $(AM_V_CCLD)$(LINK) $(recvfrom_OBJECTS) $(recvfrom_LDADD) $(LIBS) +recvfrom-MSG_TRUNC$(EXEEXT): $(recvfrom_MSG_TRUNC_OBJECTS) $(recvfrom_MSG_TRUNC_DEPENDENCIES) $(EXTRA_recvfrom_MSG_TRUNC_DEPENDENCIES) + @rm -f recvfrom-MSG_TRUNC$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(recvfrom_MSG_TRUNC_OBJECTS) $(recvfrom_MSG_TRUNC_LDADD) $(LIBS) + recvmmsg-timeout$(EXEEXT): $(recvmmsg_timeout_OBJECTS) $(recvmmsg_timeout_DEPENDENCIES) $(EXTRA_recvmmsg_timeout_DEPENDENCIES) @rm -f recvmmsg-timeout$(EXEEXT) $(AM_V_CCLD)$(LINK) $(recvmmsg_timeout_OBJECTS) $(recvmmsg_timeout_LDADD) $(LIBS) @@ -6993,6 +9423,10 @@ rt_sigqueueinfo$(EXEEXT): $(rt_sigqueueinfo_OBJECTS) $(rt_sigqueueinfo_DEPENDENC @rm -f rt_sigqueueinfo$(EXEEXT) $(AM_V_CCLD)$(LINK) $(rt_sigqueueinfo_OBJECTS) $(rt_sigqueueinfo_LDADD) $(LIBS) +rt_sigqueueinfo--pidns-translation$(EXEEXT): $(rt_sigqueueinfo__pidns_translation_OBJECTS) $(rt_sigqueueinfo__pidns_translation_DEPENDENCIES) $(EXTRA_rt_sigqueueinfo__pidns_translation_DEPENDENCIES) + @rm -f rt_sigqueueinfo--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(rt_sigqueueinfo__pidns_translation_OBJECTS) $(rt_sigqueueinfo__pidns_translation_LDADD) $(LIBS) + rt_sigreturn$(EXEEXT): $(rt_sigreturn_OBJECTS) $(rt_sigreturn_DEPENDENCIES) $(EXTRA_rt_sigreturn_DEPENDENCIES) @rm -f rt_sigreturn$(EXEEXT) $(AM_V_CCLD)$(LINK) $(rt_sigreturn_OBJECTS) $(rt_sigreturn_LDADD) $(LIBS) @@ -7009,6 +9443,10 @@ rt_tgsigqueueinfo$(EXEEXT): $(rt_tgsigqueueinfo_OBJECTS) $(rt_tgsigqueueinfo_DEP @rm -f rt_tgsigqueueinfo$(EXEEXT) $(AM_V_CCLD)$(LINK) $(rt_tgsigqueueinfo_OBJECTS) $(rt_tgsigqueueinfo_LDADD) $(LIBS) +rt_tgsigqueueinfo--pidns-translation$(EXEEXT): $(rt_tgsigqueueinfo__pidns_translation_OBJECTS) $(rt_tgsigqueueinfo__pidns_translation_DEPENDENCIES) $(EXTRA_rt_tgsigqueueinfo__pidns_translation_DEPENDENCIES) + @rm -f rt_tgsigqueueinfo--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(rt_tgsigqueueinfo__pidns_translation_OBJECTS) $(rt_tgsigqueueinfo__pidns_translation_LDADD) $(LIBS) + run_expect_termsig$(EXEEXT): $(run_expect_termsig_OBJECTS) $(run_expect_termsig_DEPENDENCIES) $(EXTRA_run_expect_termsig_DEPENDENCIES) @rm -f run_expect_termsig$(EXEEXT) $(AM_V_CCLD)$(LINK) $(run_expect_termsig_OBJECTS) $(run_expect_termsig_LDADD) $(LIBS) @@ -7049,18 +9487,34 @@ sched_xetaffinity$(EXEEXT): $(sched_xetaffinity_OBJECTS) $(sched_xetaffinity_DEP @rm -f sched_xetaffinity$(EXEEXT) $(AM_V_CCLD)$(LINK) $(sched_xetaffinity_OBJECTS) $(sched_xetaffinity_LDADD) $(LIBS) +sched_xetaffinity--pidns-translation$(EXEEXT): $(sched_xetaffinity__pidns_translation_OBJECTS) $(sched_xetaffinity__pidns_translation_DEPENDENCIES) $(EXTRA_sched_xetaffinity__pidns_translation_DEPENDENCIES) + @rm -f sched_xetaffinity--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(sched_xetaffinity__pidns_translation_OBJECTS) $(sched_xetaffinity__pidns_translation_LDADD) $(LIBS) + sched_xetattr$(EXEEXT): $(sched_xetattr_OBJECTS) $(sched_xetattr_DEPENDENCIES) $(EXTRA_sched_xetattr_DEPENDENCIES) @rm -f sched_xetattr$(EXEEXT) $(AM_V_CCLD)$(LINK) $(sched_xetattr_OBJECTS) $(sched_xetattr_LDADD) $(LIBS) +sched_xetattr--pidns-translation$(EXEEXT): $(sched_xetattr__pidns_translation_OBJECTS) $(sched_xetattr__pidns_translation_DEPENDENCIES) $(EXTRA_sched_xetattr__pidns_translation_DEPENDENCIES) + @rm -f sched_xetattr--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(sched_xetattr__pidns_translation_OBJECTS) $(sched_xetattr__pidns_translation_LDADD) $(LIBS) + sched_xetparam$(EXEEXT): $(sched_xetparam_OBJECTS) $(sched_xetparam_DEPENDENCIES) $(EXTRA_sched_xetparam_DEPENDENCIES) @rm -f sched_xetparam$(EXEEXT) $(AM_V_CCLD)$(LINK) $(sched_xetparam_OBJECTS) $(sched_xetparam_LDADD) $(LIBS) +sched_xetparam--pidns-translation$(EXEEXT): $(sched_xetparam__pidns_translation_OBJECTS) $(sched_xetparam__pidns_translation_DEPENDENCIES) $(EXTRA_sched_xetparam__pidns_translation_DEPENDENCIES) + @rm -f sched_xetparam--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(sched_xetparam__pidns_translation_OBJECTS) $(sched_xetparam__pidns_translation_LDADD) $(LIBS) + sched_xetscheduler$(EXEEXT): $(sched_xetscheduler_OBJECTS) $(sched_xetscheduler_DEPENDENCIES) $(EXTRA_sched_xetscheduler_DEPENDENCIES) @rm -f sched_xetscheduler$(EXEEXT) $(AM_V_CCLD)$(LINK) $(sched_xetscheduler_OBJECTS) $(sched_xetscheduler_LDADD) $(LIBS) +sched_xetscheduler--pidns-translation$(EXEEXT): $(sched_xetscheduler__pidns_translation_OBJECTS) $(sched_xetscheduler__pidns_translation_DEPENDENCIES) $(EXTRA_sched_xetscheduler__pidns_translation_DEPENDENCIES) + @rm -f sched_xetscheduler--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(sched_xetscheduler__pidns_translation_OBJECTS) $(sched_xetscheduler__pidns_translation_LDADD) $(LIBS) + sched_yield$(EXEEXT): $(sched_yield_OBJECTS) $(sched_yield_DEPENDENCIES) $(EXTRA_sched_yield_DEPENDENCIES) @rm -f sched_yield$(EXEEXT) $(AM_V_CCLD)$(LINK) $(sched_yield_OBJECTS) $(sched_yield_LDADD) $(LIBS) @@ -7097,6 +9551,14 @@ semop$(EXEEXT): $(semop_OBJECTS) $(semop_DEPENDENCIES) $(EXTRA_semop_DEPENDENCIE @rm -f semop$(EXEEXT) $(AM_V_CCLD)$(LINK) $(semop_OBJECTS) $(semop_LDADD) $(LIBS) +semop-indirect$(EXEEXT): $(semop_indirect_OBJECTS) $(semop_indirect_DEPENDENCIES) $(EXTRA_semop_indirect_DEPENDENCIES) + @rm -f semop-indirect$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(semop_indirect_OBJECTS) $(semop_indirect_LDADD) $(LIBS) + +semtimedop$(EXEEXT): $(semtimedop_OBJECTS) $(semtimedop_DEPENDENCIES) $(EXTRA_semtimedop_DEPENDENCIES) + @rm -f semtimedop$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(semtimedop_OBJECTS) $(semtimedop_LDADD) $(LIBS) + sendfile$(EXEEXT): $(sendfile_OBJECTS) $(sendfile_DEPENDENCIES) $(EXTRA_sendfile_DEPENDENCIES) @rm -f sendfile$(EXEEXT) $(AM_V_CCLD)$(LINK) $(sendfile_OBJECTS) $(sendfile_LDADD) $(LIBS) @@ -7109,6 +9571,18 @@ set_mempolicy$(EXEEXT): $(set_mempolicy_OBJECTS) $(set_mempolicy_DEPENDENCIES) $ @rm -f set_mempolicy$(EXEEXT) $(AM_V_CCLD)$(LINK) $(set_mempolicy_OBJECTS) $(set_mempolicy_LDADD) $(LIBS) +set_mempolicy-Xabbrev$(EXEEXT): $(set_mempolicy_Xabbrev_OBJECTS) $(set_mempolicy_Xabbrev_DEPENDENCIES) $(EXTRA_set_mempolicy_Xabbrev_DEPENDENCIES) + @rm -f set_mempolicy-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(set_mempolicy_Xabbrev_OBJECTS) $(set_mempolicy_Xabbrev_LDADD) $(LIBS) + +set_mempolicy-Xraw$(EXEEXT): $(set_mempolicy_Xraw_OBJECTS) $(set_mempolicy_Xraw_DEPENDENCIES) $(EXTRA_set_mempolicy_Xraw_DEPENDENCIES) + @rm -f set_mempolicy-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(set_mempolicy_Xraw_OBJECTS) $(set_mempolicy_Xraw_LDADD) $(LIBS) + +set_mempolicy-Xverbose$(EXEEXT): $(set_mempolicy_Xverbose_OBJECTS) $(set_mempolicy_Xverbose_DEPENDENCIES) $(EXTRA_set_mempolicy_Xverbose_DEPENDENCIES) + @rm -f set_mempolicy-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(set_mempolicy_Xverbose_OBJECTS) $(set_mempolicy_Xverbose_LDADD) $(LIBS) + set_ptracer_any$(EXEEXT): $(set_ptracer_any_OBJECTS) $(set_ptracer_any_DEPENDENCIES) $(EXTRA_set_ptracer_any_DEPENDENCIES) @rm -f set_ptracer_any$(EXEEXT) $(AM_V_CCLD)$(LINK) $(set_ptracer_any_OBJECTS) $(set_ptracer_any_LDADD) $(LIBS) @@ -7165,6 +9639,10 @@ setns$(EXEEXT): $(setns_OBJECTS) $(setns_DEPENDENCIES) $(EXTRA_setns_DEPENDENCIE @rm -f setns$(EXEEXT) $(AM_V_CCLD)$(LINK) $(setns_OBJECTS) $(setns_LDADD) $(LIBS) +setpgrp-exec$(EXEEXT): $(setpgrp_exec_OBJECTS) $(setpgrp_exec_DEPENDENCIES) $(EXTRA_setpgrp_exec_DEPENDENCIES) + @rm -f setpgrp-exec$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(setpgrp_exec_OBJECTS) $(setpgrp_exec_LDADD) $(LIBS) + setregid$(EXEEXT): $(setregid_OBJECTS) $(setregid_DEPENDENCIES) $(EXTRA_setregid_DEPENDENCIES) @rm -f setregid$(EXEEXT) $(AM_V_CCLD)$(LINK) $(setregid_OBJECTS) $(setregid_LDADD) $(LIBS) @@ -7249,6 +9727,10 @@ signal_receive$(EXEEXT): $(signal_receive_OBJECTS) $(signal_receive_DEPENDENCIES @rm -f signal_receive$(EXEEXT) $(AM_V_CCLD)$(LINK) $(signal_receive_OBJECTS) $(signal_receive_LDADD) $(LIBS) +signal_receive--pidns-translation$(EXEEXT): $(signal_receive__pidns_translation_OBJECTS) $(signal_receive__pidns_translation_DEPENDENCIES) $(EXTRA_signal_receive__pidns_translation_DEPENDENCIES) + @rm -f signal_receive--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(signal_receive__pidns_translation_OBJECTS) $(signal_receive__pidns_translation_LDADD) $(LIBS) + signalfd4$(EXEEXT): $(signalfd4_OBJECTS) $(signalfd4_DEPENDENCIES) $(EXTRA_signalfd4_DEPENDENCIES) @rm -f signalfd4$(EXEEXT) $(AM_V_CCLD)$(LINK) $(signalfd4_OBJECTS) $(signalfd4_LDADD) $(LIBS) @@ -7285,6 +9767,10 @@ so_peercred$(EXEEXT): $(so_peercred_OBJECTS) $(so_peercred_DEPENDENCIES) $(EXTRA @rm -f so_peercred$(EXEEXT) $(AM_V_CCLD)$(LINK) $(so_peercred_OBJECTS) $(so_peercred_LDADD) $(LIBS) +so_peercred--pidns-translation$(EXEEXT): $(so_peercred__pidns_translation_OBJECTS) $(so_peercred__pidns_translation_DEPENDENCIES) $(EXTRA_so_peercred__pidns_translation_DEPENDENCIES) + @rm -f so_peercred--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(so_peercred__pidns_translation_OBJECTS) $(so_peercred__pidns_translation_LDADD) $(LIBS) + so_peercred-Xabbrev$(EXEEXT): $(so_peercred_Xabbrev_OBJECTS) $(so_peercred_Xabbrev_DEPENDENCIES) $(EXTRA_so_peercred_Xabbrev_DEPENDENCIES) @rm -f so_peercred-Xabbrev$(EXEEXT) $(AM_V_CCLD)$(LINK) $(so_peercred_Xabbrev_OBJECTS) $(so_peercred_Xabbrev_LDADD) $(LIBS) @@ -7345,6 +9831,10 @@ stack-fcall$(EXEEXT): $(stack_fcall_OBJECTS) $(stack_fcall_DEPENDENCIES) $(EXTRA @rm -f stack-fcall$(EXEEXT) $(AM_V_CCLD)$(LINK) $(stack_fcall_OBJECTS) $(stack_fcall_LDADD) $(LIBS) +stack-fcall-attach$(EXEEXT): $(stack_fcall_attach_OBJECTS) $(stack_fcall_attach_DEPENDENCIES) $(EXTRA_stack_fcall_attach_DEPENDENCIES) + @rm -f stack-fcall-attach$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(stack_fcall_attach_OBJECTS) $(stack_fcall_attach_LDADD) $(LIBS) + stack-fcall-mangled$(EXEEXT): $(stack_fcall_mangled_OBJECTS) $(stack_fcall_mangled_DEPENDENCIES) $(EXTRA_stack_fcall_mangled_DEPENDENCIES) @rm -f stack-fcall-mangled$(EXEEXT) $(AM_V_CCLD)$(LINK) $(stack_fcall_mangled_OBJECTS) $(stack_fcall_mangled_LDADD) $(LIBS) @@ -7365,10 +9855,82 @@ statfs64$(EXEEXT): $(statfs64_OBJECTS) $(statfs64_DEPENDENCIES) $(EXTRA_statfs64 @rm -f statfs64$(EXEEXT) $(AM_V_CCLD)$(LINK) $(statfs64_OBJECTS) $(statfs64_LDADD) $(LIBS) +status-all$(EXEEXT): $(status_all_OBJECTS) $(status_all_DEPENDENCIES) $(EXTRA_status_all_DEPENDENCIES) + @rm -f status-all$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_all_OBJECTS) $(status_all_LDADD) $(LIBS) + +status-failed$(EXEEXT): $(status_failed_OBJECTS) $(status_failed_DEPENDENCIES) $(EXTRA_status_failed_DEPENDENCIES) + @rm -f status-failed$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_failed_OBJECTS) $(status_failed_LDADD) $(LIBS) + +status-failed-long$(EXEEXT): $(status_failed_long_OBJECTS) $(status_failed_long_DEPENDENCIES) $(EXTRA_status_failed_long_DEPENDENCIES) + @rm -f status-failed-long$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_failed_long_OBJECTS) $(status_failed_long_LDADD) $(LIBS) + +status-failed-status$(EXEEXT): $(status_failed_status_OBJECTS) $(status_failed_status_DEPENDENCIES) $(EXTRA_status_failed_status_DEPENDENCIES) + @rm -f status-failed-status$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_failed_status_OBJECTS) $(status_failed_status_LDADD) $(LIBS) + +status-none$(EXEEXT): $(status_none_OBJECTS) $(status_none_DEPENDENCIES) $(EXTRA_status_none_DEPENDENCIES) + @rm -f status-none$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_none_OBJECTS) $(status_none_LDADD) $(LIBS) + +status-none-f$(EXEEXT): $(status_none_f_OBJECTS) $(status_none_f_DEPENDENCIES) $(EXTRA_status_none_f_DEPENDENCIES) + @rm -f status-none-f$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_none_f_OBJECTS) $(status_none_f_LDADD) $(LIBS) + +status-none-threads$(EXEEXT): $(status_none_threads_OBJECTS) $(status_none_threads_DEPENDENCIES) $(EXTRA_status_none_threads_DEPENDENCIES) + @rm -f status-none-threads$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_none_threads_OBJECTS) $(status_none_threads_LDADD) $(LIBS) + +status-successful$(EXEEXT): $(status_successful_OBJECTS) $(status_successful_DEPENDENCIES) $(EXTRA_status_successful_DEPENDENCIES) + @rm -f status-successful$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_successful_OBJECTS) $(status_successful_LDADD) $(LIBS) + +status-successful-long$(EXEEXT): $(status_successful_long_OBJECTS) $(status_successful_long_DEPENDENCIES) $(EXTRA_status_successful_long_DEPENDENCIES) + @rm -f status-successful-long$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_successful_long_OBJECTS) $(status_successful_long_LDADD) $(LIBS) + +status-successful-status$(EXEEXT): $(status_successful_status_OBJECTS) $(status_successful_status_DEPENDENCIES) $(EXTRA_status_successful_status_DEPENDENCIES) + @rm -f status-successful-status$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_successful_status_OBJECTS) $(status_successful_status_LDADD) $(LIBS) + +status-unfinished$(EXEEXT): $(status_unfinished_OBJECTS) $(status_unfinished_DEPENDENCIES) $(EXTRA_status_unfinished_DEPENDENCIES) + @rm -f status-unfinished$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_unfinished_OBJECTS) $(status_unfinished_LDADD) $(LIBS) + +status-unfinished-threads$(EXEEXT): $(status_unfinished_threads_OBJECTS) $(status_unfinished_threads_DEPENDENCIES) $(EXTRA_status_unfinished_threads_DEPENDENCIES) + @rm -f status-unfinished-threads$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_unfinished_threads_OBJECTS) $(status_unfinished_threads_LDADD) $(LIBS) + statx$(EXEEXT): $(statx_OBJECTS) $(statx_DEPENDENCIES) $(EXTRA_statx_DEPENDENCIES) @rm -f statx$(EXEEXT) $(AM_V_CCLD)$(LINK) $(statx_OBJECTS) $(statx_LDADD) $(LIBS) +strace--strings-in-hex$(EXEEXT): $(strace__strings_in_hex_OBJECTS) $(strace__strings_in_hex_DEPENDENCIES) $(EXTRA_strace__strings_in_hex_DEPENDENCIES) + @rm -f strace--strings-in-hex$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(strace__strings_in_hex_OBJECTS) $(strace__strings_in_hex_LDADD) $(LIBS) + +strace--strings-in-hex-all$(EXEEXT): $(strace__strings_in_hex_all_OBJECTS) $(strace__strings_in_hex_all_DEPENDENCIES) $(EXTRA_strace__strings_in_hex_all_DEPENDENCIES) + @rm -f strace--strings-in-hex-all$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(strace__strings_in_hex_all_OBJECTS) $(strace__strings_in_hex_all_LDADD) $(LIBS) + +strace--strings-in-hex-non-ascii$(EXEEXT): $(strace__strings_in_hex_non_ascii_OBJECTS) $(strace__strings_in_hex_non_ascii_DEPENDENCIES) $(EXTRA_strace__strings_in_hex_non_ascii_DEPENDENCIES) + @rm -f strace--strings-in-hex-non-ascii$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(strace__strings_in_hex_non_ascii_OBJECTS) $(strace__strings_in_hex_non_ascii_LDADD) $(LIBS) + +strace-n$(EXEEXT): $(strace_n_OBJECTS) $(strace_n_DEPENDENCIES) $(EXTRA_strace_n_DEPENDENCIES) + @rm -f strace-n$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(strace_n_OBJECTS) $(strace_n_LDADD) $(LIBS) + +strace-x$(EXEEXT): $(strace_x_OBJECTS) $(strace_x_DEPENDENCIES) $(EXTRA_strace_x_DEPENDENCIES) + @rm -f strace-x$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(strace_x_OBJECTS) $(strace_x_LDADD) $(LIBS) + +strace-xx$(EXEEXT): $(strace_xx_OBJECTS) $(strace_xx_DEPENDENCIES) $(EXTRA_strace_xx_DEPENDENCIES) + @rm -f strace-xx$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(strace_xx_OBJECTS) $(strace_xx_LDADD) $(LIBS) + swap$(EXEEXT): $(swap_OBJECTS) $(swap_DEPENDENCIES) $(EXTRA_swap_DEPENDENCIES) @rm -f swap$(EXEEXT) $(AM_V_CCLD)$(LINK) $(swap_OBJECTS) $(swap_LDADD) $(LIBS) @@ -7405,14 +9967,42 @@ syslog$(EXEEXT): $(syslog_OBJECTS) $(syslog_DEPENDENCIES) $(EXTRA_syslog_DEPENDE @rm -f syslog$(EXEEXT) $(AM_V_CCLD)$(LINK) $(syslog_OBJECTS) $(syslog_LDADD) $(LIBS) +syslog-success$(EXEEXT): $(syslog_success_OBJECTS) $(syslog_success_DEPENDENCIES) $(EXTRA_syslog_success_DEPENDENCIES) + @rm -f syslog-success$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(syslog_success_OBJECTS) $(syslog_success_LDADD) $(LIBS) + tee$(EXEEXT): $(tee_OBJECTS) $(tee_DEPENDENCIES) $(EXTRA_tee_DEPENDENCIES) @rm -f tee$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tee_OBJECTS) $(tee_LDADD) $(LIBS) +tgkill$(EXEEXT): $(tgkill_OBJECTS) $(tgkill_DEPENDENCIES) $(EXTRA_tgkill_DEPENDENCIES) + @rm -f tgkill$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(tgkill_OBJECTS) $(tgkill_LDADD) $(LIBS) + +tgkill--pidns-translation$(EXEEXT): $(tgkill__pidns_translation_OBJECTS) $(tgkill__pidns_translation_DEPENDENCIES) $(EXTRA_tgkill__pidns_translation_DEPENDENCIES) + @rm -f tgkill--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(tgkill__pidns_translation_OBJECTS) $(tgkill__pidns_translation_LDADD) $(LIBS) + threads-execve$(EXEEXT): $(threads_execve_OBJECTS) $(threads_execve_DEPENDENCIES) $(EXTRA_threads_execve_DEPENDENCIES) @rm -f threads-execve$(EXEEXT) $(AM_V_CCLD)$(LINK) $(threads_execve_OBJECTS) $(threads_execve_LDADD) $(LIBS) +threads-execve--quiet-thread-execve$(EXEEXT): $(threads_execve__quiet_thread_execve_OBJECTS) $(threads_execve__quiet_thread_execve_DEPENDENCIES) $(EXTRA_threads_execve__quiet_thread_execve_DEPENDENCIES) + @rm -f threads-execve--quiet-thread-execve$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(threads_execve__quiet_thread_execve_OBJECTS) $(threads_execve__quiet_thread_execve_LDADD) $(LIBS) + +threads-execve-q$(EXEEXT): $(threads_execve_q_OBJECTS) $(threads_execve_q_DEPENDENCIES) $(EXTRA_threads_execve_q_DEPENDENCIES) + @rm -f threads-execve-q$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(threads_execve_q_OBJECTS) $(threads_execve_q_LDADD) $(LIBS) + +threads-execve-qq$(EXEEXT): $(threads_execve_qq_OBJECTS) $(threads_execve_qq_DEPENDENCIES) $(EXTRA_threads_execve_qq_DEPENDENCIES) + @rm -f threads-execve-qq$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(threads_execve_qq_OBJECTS) $(threads_execve_qq_LDADD) $(LIBS) + +threads-execve-qqq$(EXEEXT): $(threads_execve_qqq_OBJECTS) $(threads_execve_qqq_DEPENDENCIES) $(EXTRA_threads_execve_qqq_DEPENDENCIES) + @rm -f threads-execve-qqq$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(threads_execve_qqq_OBJECTS) $(threads_execve_qqq_LDADD) $(LIBS) + time$(EXEEXT): $(time_OBJECTS) $(time_DEPENDENCIES) $(EXTRA_time_DEPENDENCIES) @rm -f time$(EXEEXT) $(AM_V_CCLD)$(LINK) $(time_OBJECTS) $(time_LDADD) $(LIBS) @@ -7437,6 +10027,22 @@ times-fail$(EXEEXT): $(times_fail_OBJECTS) $(times_fail_DEPENDENCIES) $(EXTRA_ti @rm -f times-fail$(EXEEXT) $(AM_V_CCLD)$(LINK) $(times_fail_OBJECTS) $(times_fail_LDADD) $(LIBS) +tkill$(EXEEXT): $(tkill_OBJECTS) $(tkill_DEPENDENCIES) $(EXTRA_tkill_DEPENDENCIES) + @rm -f tkill$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(tkill_OBJECTS) $(tkill_LDADD) $(LIBS) + +tkill--pidns-translation$(EXEEXT): $(tkill__pidns_translation_OBJECTS) $(tkill__pidns_translation_DEPENDENCIES) $(EXTRA_tkill__pidns_translation_DEPENDENCIES) + @rm -f tkill--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(tkill__pidns_translation_OBJECTS) $(tkill__pidns_translation_LDADD) $(LIBS) + +tracer_ppid_pgid_sid$(EXEEXT): $(tracer_ppid_pgid_sid_OBJECTS) $(tracer_ppid_pgid_sid_DEPENDENCIES) $(EXTRA_tracer_ppid_pgid_sid_DEPENDENCIES) + @rm -f tracer_ppid_pgid_sid$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(tracer_ppid_pgid_sid_OBJECTS) $(tracer_ppid_pgid_sid_LDADD) $(LIBS) + +trie_test$(EXEEXT): $(trie_test_OBJECTS) $(trie_test_DEPENDENCIES) $(EXTRA_trie_test_DEPENDENCIES) + @rm -f trie_test$(EXEEXT) + $(AM_V_CCLD)$(trie_test_LINK) $(trie_test_OBJECTS) $(trie_test_LDADD) $(LIBS) + truncate$(EXEEXT): $(truncate_OBJECTS) $(truncate_DEPENDENCIES) $(EXTRA_truncate_DEPENDENCIES) @rm -f truncate$(EXEEXT) $(AM_V_CCLD)$(LINK) $(truncate_OBJECTS) $(truncate_LDADD) $(LIBS) @@ -7485,6 +10091,14 @@ umovestr3$(EXEEXT): $(umovestr3_OBJECTS) $(umovestr3_DEPENDENCIES) $(EXTRA_umove @rm -f umovestr3$(EXEEXT) $(AM_V_CCLD)$(LINK) $(umovestr3_OBJECTS) $(umovestr3_LDADD) $(LIBS) +umovestr_cached$(EXEEXT): $(umovestr_cached_OBJECTS) $(umovestr_cached_DEPENDENCIES) $(EXTRA_umovestr_cached_DEPENDENCIES) + @rm -f umovestr_cached$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(umovestr_cached_OBJECTS) $(umovestr_cached_LDADD) $(LIBS) + +umovestr_cached_adjacent$(EXEEXT): $(umovestr_cached_adjacent_OBJECTS) $(umovestr_cached_adjacent_DEPENDENCIES) $(EXTRA_umovestr_cached_adjacent_DEPENDENCIES) + @rm -f umovestr_cached_adjacent$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(umovestr_cached_adjacent_OBJECTS) $(umovestr_cached_adjacent_LDADD) $(LIBS) + uname$(EXEEXT): $(uname_OBJECTS) $(uname_DEPENDENCIES) $(EXTRA_uname_DEPENDENCIES) @rm -f uname$(EXEEXT) $(AM_V_CCLD)$(LINK) $(uname_OBJECTS) $(uname_LDADD) $(LIBS) @@ -7589,6 +10203,10 @@ xet_robust_list$(EXEEXT): $(xet_robust_list_OBJECTS) $(xet_robust_list_DEPENDENC @rm -f xet_robust_list$(EXEEXT) $(AM_V_CCLD)$(LINK) $(xet_robust_list_OBJECTS) $(xet_robust_list_LDADD) $(LIBS) +xet_robust_list--pidns-translation$(EXEEXT): $(xet_robust_list__pidns_translation_OBJECTS) $(xet_robust_list__pidns_translation_DEPENDENCIES) $(EXTRA_xet_robust_list__pidns_translation_DEPENDENCIES) + @rm -f xet_robust_list--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(xet_robust_list__pidns_translation_OBJECTS) $(xet_robust_list__pidns_translation_LDADD) $(LIBS) + xet_thread_area_x86$(EXEEXT): $(xet_thread_area_x86_OBJECTS) $(xet_thread_area_x86_DEPENDENCIES) $(EXTRA_xet_thread_area_x86_DEPENDENCIES) @rm -f xet_thread_area_x86$(EXEEXT) $(AM_V_CCLD)$(LINK) $(xet_thread_area_x86_OBJECTS) $(xet_thread_area_x86_LDADD) $(LIBS) @@ -7601,10 +10219,18 @@ xetpgid$(EXEEXT): $(xetpgid_OBJECTS) $(xetpgid_DEPENDENCIES) $(EXTRA_xetpgid_DEP @rm -f xetpgid$(EXEEXT) $(AM_V_CCLD)$(LINK) $(xetpgid_OBJECTS) $(xetpgid_LDADD) $(LIBS) +xetpgid--pidns-translation$(EXEEXT): $(xetpgid__pidns_translation_OBJECTS) $(xetpgid__pidns_translation_DEPENDENCIES) $(EXTRA_xetpgid__pidns_translation_DEPENDENCIES) + @rm -f xetpgid--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(xetpgid__pidns_translation_OBJECTS) $(xetpgid__pidns_translation_LDADD) $(LIBS) + xetpriority$(EXEEXT): $(xetpriority_OBJECTS) $(xetpriority_DEPENDENCIES) $(EXTRA_xetpriority_DEPENDENCIES) @rm -f xetpriority$(EXEEXT) $(AM_V_CCLD)$(LINK) $(xetpriority_OBJECTS) $(xetpriority_LDADD) $(LIBS) +xetpriority--pidns-translation$(EXEEXT): $(xetpriority__pidns_translation_OBJECTS) $(xetpriority__pidns_translation_DEPENDENCIES) $(EXTRA_xetpriority__pidns_translation_DEPENDENCIES) + @rm -f xetpriority--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(xetpriority__pidns_translation_OBJECTS) $(xetpriority__pidns_translation_LDADD) $(LIBS) + xettimeofday$(EXEEXT): $(xettimeofday_OBJECTS) $(xettimeofday_DEPENDENCIES) $(EXTRA_xettimeofday_DEPENDENCIES) @rm -f xettimeofday$(EXEEXT) $(AM_V_CCLD)$(LINK) $(xettimeofday_OBJECTS) $(xettimeofday_LDADD) $(LIBS) @@ -7636,10 +10262,12 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attach-p-cmd-cmd.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attach-p-cmd-p.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/block_reset_raise_run.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/block_reset_run.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-obj_get_info_by_fd-prog-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-obj_get_info_by_fd-prog.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-obj_get_info_by_fd-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-obj_get_info_by_fd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-success-long-y.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-success-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-success.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-v.Po@am__quote@ # am--include-marker @@ -7657,16 +10285,48 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clock_adjtime.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clock_nanosleep.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clock_xettime.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone-flags.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone3-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone3-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone3-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone3-success-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone3-success-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone3-success-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone3-success.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone3.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone_parent--quiet-exit.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone_parent-q.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone_parent-qq.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone_parent.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone_ptrace--quiet-attach.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone_ptrace--quiet-exit.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone_ptrace-q.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone_ptrace-qq.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone_ptrace.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close_range-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close_range-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close_range-yy.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close_range.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/copy_file_range.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/count-f.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/creat.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/delay.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/delete_module.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dev--decode-fds-dev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dev--decode-fds-path.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dev--decode-fds-socket.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dev-yy.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup-yy.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup2-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup2-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup2-yy.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup3-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup3-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup3-yy.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup3.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/epoll_create.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/epoll_create1.Po@am__quote@ # am--include-marker @@ -7679,7 +10339,14 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-yy.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat2-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat2-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat2-yy.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat2.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fadvise64.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fadvise64_64.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fallocate.Po@am__quote@ # am--include-marker @@ -7694,16 +10361,27 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown32.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl64--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl64.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fdatasync.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fflush.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_ioctl.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter-unavailable.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter_seccomp-flag.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter_seccomp-perf.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/finit_module.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flock.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fork--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fork-f.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsconfig-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsconfig.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsmount.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsopen.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fspick-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fspick.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstat-Xabbrev.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstat-Xraw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstat-Xverbose.Po@am__quote@ # am--include-marker @@ -7722,9 +10400,12 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/futex.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/futimesat.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get_mempolicy.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get_process_reaper.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getcpu.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getcwd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdents-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdents.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdents64-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdents64.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getegid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getegid32.Po@am__quote@ # am--include-marker @@ -7735,7 +10416,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getgroups.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getgroups32.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpeername.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpgrp--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpgrp.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpid--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getppid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getrandom.Po@am__quote@ # am--include-marker @@ -7745,30 +10428,66 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getresuid32.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getrlimit.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getrusage.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getsid--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getsid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getsockname.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettid--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getuid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getuid32.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getxxid.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getxgid.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getxpid.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getxuid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/group_req.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inet-cmsg.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/init_module.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inject-nf.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inotify.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inotify_init-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inotify_init.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inotify_init1-y.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inotify_init1.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/int_0x80.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/io_uring_enter.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/io_uring_register.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/io_uring_setup.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_block--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_block.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_dm-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_dm.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-success-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-success-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-success-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-success-v-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-success-v-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-success-v-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-success-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-success.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-v-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-v-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-v-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-success-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-success-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-success-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-success-v-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-success-v-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-success-v-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-success-v.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-success.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-v-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-v-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-v-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-v.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_inotify.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_kvm_run-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_kvm_run.Po@am__quote@ # am--include-marker @@ -7789,10 +10508,28 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_sg_io_v3.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_sg_io_v4.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_sock_gifconf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_tee.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_uffdio.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-success-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-success-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-success-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-success-v-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-success-v-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-success-v-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-success-v.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-success.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-v-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-v-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-v-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_watchdog.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioperm.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iopl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioprio--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioprio-Xabbrev.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioprio-Xraw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioprio-Xverbose.Po@am__quote@ # am--include-marker @@ -7816,6 +10553,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_shm-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_shm.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/is_linux_mips_n64.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kcmp-y--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kcmp-y.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kcmp.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kern_features.Po@am__quote@ # am--include-marker @@ -7829,12 +10567,14 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl-Xraw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kill--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kill.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kill_child.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ksysent.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lchown.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lchown32.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-create_nl_socket.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-create_tmpfile.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-errno2name.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-error_msg.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-fill_memory.Po@am__quote@ # am--include-marker @@ -7846,20 +10586,26 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-inode_of_sockfd.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-libmmsg.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-libsocketcall.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-lock_file.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-overflowuid.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-pidns.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-pipe_maxfd.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-print_quoted_string.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-print_time.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-printflags.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-printxval.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-printxval-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-printxval-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-printxval-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-signal2name.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-skip_unavailable.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-sprintrc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-status.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-tail_alloc.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-test_printpath.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-test_printstrn.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-test_ucopy.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-tprintf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list_sigaction_signum.Po@am__quote@ # am--include-marker @@ -7871,12 +10617,18 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lstat.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lstat64-lstat64.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/madvise.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/maybe_switch_current_tcp--quiet-thread-execve.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/maybe_switch_current_tcp.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbind-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbind-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbind-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbind.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/membarrier.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memfd_create-Xabbrev.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memfd_create-Xraw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memfd_create-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memfd_create.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/migrate_pages--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/migrate_pages.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mincore.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkdir.Po@am__quote@ # am--include-marker @@ -7903,6 +10655,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-Xraw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_mount-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_mount.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_pages--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_pages-Xabbrev.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_pages-Xraw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_pages-Xverbose.Po@am__quote@ # am--include-marker @@ -7916,12 +10671,17 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msg_name.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/munlockall.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nanosleep.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net--decode-fds-dev-netlink.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net--decode-fds-none-netlink.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net--decode-fds-path-netlink.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net--decode-fds-socket-netlink.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-accept-connect.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-icmp_filter.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-packet_mreq-Xabbrev.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-packet_mreq-Xraw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-packet_mreq-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-packet_mreq.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-sockaddr--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-sockaddr.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-tpacket_req.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-tpacket_stats-success.Po@am__quote@ # am--include-marker @@ -7931,6 +10691,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-yy-inet6.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-yy-netlink.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-yy-unix.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_audit--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_audit.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_crypto.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_generic.Po@am__quote@ # am--include-marker @@ -7968,6 +10729,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_brport.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_linkinfo.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_port.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_xdp-y.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_xdp.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_inet_diag_msg.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_inet_diag_req_compat.Po@am__quote@ # am--include-marker @@ -8004,7 +10766,19 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oldselect.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oldstat.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open_tree-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open_tree.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-v-y-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-v-y-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-v-y-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-v-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-v.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orphaned_process_group.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/osf_utimes.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pause.Po@am__quote@ # am--include-marker @@ -8016,7 +10790,20 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/personality-Xraw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/personality-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/personality.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_getfd-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_getfd-yy.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_getfd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open--decode-fd-path.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open--decode-fd-pidfd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open--decode-fd-socket.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open--pidns-translation.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open-yy.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_send_signal--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_send_signal.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidns-cache.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipe.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipe2.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pkey_alloc.Po@am__quote@ # am--include-marker @@ -8043,6 +10830,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/preadv2-pwritev2.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/preadv_pwritev-preadv-pwritev.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/print_maxfd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/print_ppid_tracerpid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printpath-umovestr-peekdata.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printpath-umovestr-undumpable.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printpath-umovestr.Po@am__quote@ # am--include-marker @@ -8053,8 +10841,11 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printstrn-umoven-peekdata.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printstrn-umoven-undumpable.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printstrn-umoven.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prlimit64--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prlimit64.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process_vm_readv--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process_vm_readv.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process_vm_writev--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process_vm_writev.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pselect6.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ptrace.Po@am__quote@ # am--include-marker @@ -8083,6 +10874,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readlinkat.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readv.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reboot.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/recv-MSG_TRUNC.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/recvfrom-MSG_TRUNC.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/recvfrom.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/recvmmsg-timeout.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/recvmsg.Po@am__quote@ # am--include-marker @@ -8101,10 +10894,12 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigaction.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigpending.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigprocmask.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigqueueinfo--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigqueueinfo.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigreturn.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigsuspend.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigtimedwait.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_tgsigqueueinfo--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_tgsigqueueinfo.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/run_expect_termsig.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/s390_guarded_storage-v.Po@am__quote@ # am--include-marker @@ -8115,9 +10910,13 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/s390_sthyi.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_get_priority_mxx.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_rr_get_interval.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetaffinity--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetaffinity.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetattr--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetattr.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetparam--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetparam.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetscheduler--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetscheduler.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_yield.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scm_rights.Po@am__quote@ # am--include-marker @@ -8127,9 +10926,14 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/seccomp_get_action_avail.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/select-P.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/select.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/semop-indirect.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/semop.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/semtimedop.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sendfile.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sendfile64.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/set_mempolicy-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/set_mempolicy-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/set_mempolicy-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/set_mempolicy.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/set_ptracer_any.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/set_sigblock.Po@am__quote@ # am--include-marker @@ -8145,6 +10949,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setgroups32.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sethostname.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setns.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setpgrp-exec.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setregid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setregid32.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setresgid.Po@am__quote@ # am--include-marker @@ -8165,6 +10970,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigaltstack.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/siginfo.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal_receive--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal_receive.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signalfd4.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigpending.Po@am__quote@ # am--include-marker @@ -8174,6 +10980,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sleep.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_error.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_linger.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred-Xabbrev.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred-Xraw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred-Xverbose.Po@am__quote@ # am--include-marker @@ -8193,6 +11000,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-1.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-2.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-3.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-attach.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-0.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-1.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-2.Po@am__quote@ # am--include-marker @@ -8203,7 +11011,25 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat64-stat64.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/statfs-statfs.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/statfs64.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-all.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-failed-long.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-failed-status.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-failed.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-none-f.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-none-threads.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-none.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-successful-long.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-successful-status.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-successful.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-unfinished-threads.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-unfinished.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/statx.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace--strings-in-hex-all.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace--strings-in-hex-non-ascii.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace--strings-in-hex.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-n.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-x.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-xx.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/swap.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sxetmask.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/symlink.Po@am__quote@ # am--include-marker @@ -8212,8 +11038,15 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sync_file_range.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sync_file_range2.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sysinfo.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/syslog-success.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/syslog.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tee.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tgkill--pidns-translation.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tgkill.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve--quiet-thread-execve.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve-q.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve-qq.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve-qqq.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/time.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timer_create.Po@am__quote@ # am--include-marker @@ -8221,6 +11054,11 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timerfd_xettime.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/times-fail.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/times.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tkill--pidns-translation.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tkill.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tracer_ppid_pgid_sid.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trie_test-trie_for_tests.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trie_test-trie_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/truncate.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/truncate64-truncate64.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ugetrlimit.Po@am__quote@ # am--include-marker @@ -8233,6 +11071,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umovestr.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umovestr2.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umovestr3.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umovestr_cached.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umovestr_cached_adjacent.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uname.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unblock_reset_raise.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unix-pair-send-recv.Po@am__quote@ # am--include-marker @@ -8258,10 +11098,13 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/waitpid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xattr-strings.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xattr.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xet_robust_list--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xet_robust_list.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xet_thread_area_x86.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetitimer.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpgid--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpgid.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpriority--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpriority.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xettimeofday.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zeroargc.Po@am__quote@ # am--include-marker @@ -8273,15 +11116,17 @@ $(am__depfiles_remade): am--depfiles: $(am__depfiles_remade) .c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` @@ -8300,6 +11145,20 @@ libtests_a-create_nl_socket.obj: create_nl_socket.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-create_nl_socket.obj `if test -f 'create_nl_socket.c'; then $(CYGPATH_W) 'create_nl_socket.c'; else $(CYGPATH_W) '$(srcdir)/create_nl_socket.c'; fi` +libtests_a-create_tmpfile.o: create_tmpfile.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-create_tmpfile.o -MD -MP -MF $(DEPDIR)/libtests_a-create_tmpfile.Tpo -c -o libtests_a-create_tmpfile.o `test -f 'create_tmpfile.c' || echo '$(srcdir)/'`create_tmpfile.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-create_tmpfile.Tpo $(DEPDIR)/libtests_a-create_tmpfile.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='create_tmpfile.c' object='libtests_a-create_tmpfile.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-create_tmpfile.o `test -f 'create_tmpfile.c' || echo '$(srcdir)/'`create_tmpfile.c + +libtests_a-create_tmpfile.obj: create_tmpfile.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-create_tmpfile.obj -MD -MP -MF $(DEPDIR)/libtests_a-create_tmpfile.Tpo -c -o libtests_a-create_tmpfile.obj `if test -f 'create_tmpfile.c'; then $(CYGPATH_W) 'create_tmpfile.c'; else $(CYGPATH_W) '$(srcdir)/create_tmpfile.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-create_tmpfile.Tpo $(DEPDIR)/libtests_a-create_tmpfile.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='create_tmpfile.c' object='libtests_a-create_tmpfile.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-create_tmpfile.obj `if test -f 'create_tmpfile.c'; then $(CYGPATH_W) 'create_tmpfile.c'; else $(CYGPATH_W) '$(srcdir)/create_tmpfile.c'; fi` + libtests_a-errno2name.o: errno2name.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-errno2name.o -MD -MP -MF $(DEPDIR)/libtests_a-errno2name.Tpo -c -o libtests_a-errno2name.o `test -f 'errno2name.c' || echo '$(srcdir)/'`errno2name.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-errno2name.Tpo $(DEPDIR)/libtests_a-errno2name.Po @@ -8454,6 +11313,20 @@ libtests_a-libsocketcall.obj: libsocketcall.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-libsocketcall.obj `if test -f 'libsocketcall.c'; then $(CYGPATH_W) 'libsocketcall.c'; else $(CYGPATH_W) '$(srcdir)/libsocketcall.c'; fi` +libtests_a-lock_file.o: lock_file.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-lock_file.o -MD -MP -MF $(DEPDIR)/libtests_a-lock_file.Tpo -c -o libtests_a-lock_file.o `test -f 'lock_file.c' || echo '$(srcdir)/'`lock_file.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-lock_file.Tpo $(DEPDIR)/libtests_a-lock_file.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lock_file.c' object='libtests_a-lock_file.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-lock_file.o `test -f 'lock_file.c' || echo '$(srcdir)/'`lock_file.c + +libtests_a-lock_file.obj: lock_file.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-lock_file.obj -MD -MP -MF $(DEPDIR)/libtests_a-lock_file.Tpo -c -o libtests_a-lock_file.obj `if test -f 'lock_file.c'; then $(CYGPATH_W) 'lock_file.c'; else $(CYGPATH_W) '$(srcdir)/lock_file.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-lock_file.Tpo $(DEPDIR)/libtests_a-lock_file.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lock_file.c' object='libtests_a-lock_file.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-lock_file.obj `if test -f 'lock_file.c'; then $(CYGPATH_W) 'lock_file.c'; else $(CYGPATH_W) '$(srcdir)/lock_file.c'; fi` + libtests_a-overflowuid.o: overflowuid.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-overflowuid.o -MD -MP -MF $(DEPDIR)/libtests_a-overflowuid.Tpo -c -o libtests_a-overflowuid.o `test -f 'overflowuid.c' || echo '$(srcdir)/'`overflowuid.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-overflowuid.Tpo $(DEPDIR)/libtests_a-overflowuid.Po @@ -8468,6 +11341,20 @@ libtests_a-overflowuid.obj: overflowuid.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-overflowuid.obj `if test -f 'overflowuid.c'; then $(CYGPATH_W) 'overflowuid.c'; else $(CYGPATH_W) '$(srcdir)/overflowuid.c'; fi` +libtests_a-pidns.o: pidns.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-pidns.o -MD -MP -MF $(DEPDIR)/libtests_a-pidns.Tpo -c -o libtests_a-pidns.o `test -f 'pidns.c' || echo '$(srcdir)/'`pidns.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-pidns.Tpo $(DEPDIR)/libtests_a-pidns.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pidns.c' object='libtests_a-pidns.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-pidns.o `test -f 'pidns.c' || echo '$(srcdir)/'`pidns.c + +libtests_a-pidns.obj: pidns.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-pidns.obj -MD -MP -MF $(DEPDIR)/libtests_a-pidns.Tpo -c -o libtests_a-pidns.obj `if test -f 'pidns.c'; then $(CYGPATH_W) 'pidns.c'; else $(CYGPATH_W) '$(srcdir)/pidns.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-pidns.Tpo $(DEPDIR)/libtests_a-pidns.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pidns.c' object='libtests_a-pidns.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-pidns.obj `if test -f 'pidns.c'; then $(CYGPATH_W) 'pidns.c'; else $(CYGPATH_W) '$(srcdir)/pidns.c'; fi` + libtests_a-pipe_maxfd.o: pipe_maxfd.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-pipe_maxfd.o -MD -MP -MF $(DEPDIR)/libtests_a-pipe_maxfd.Tpo -c -o libtests_a-pipe_maxfd.o `test -f 'pipe_maxfd.c' || echo '$(srcdir)/'`pipe_maxfd.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-pipe_maxfd.Tpo $(DEPDIR)/libtests_a-pipe_maxfd.Po @@ -8524,19 +11411,47 @@ libtests_a-printflags.obj: printflags.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printflags.obj `if test -f 'printflags.c'; then $(CYGPATH_W) 'printflags.c'; else $(CYGPATH_W) '$(srcdir)/printflags.c'; fi` -libtests_a-printxval.o: printxval.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval.o -MD -MP -MF $(DEPDIR)/libtests_a-printxval.Tpo -c -o libtests_a-printxval.o `test -f 'printxval.c' || echo '$(srcdir)/'`printxval.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval.Tpo $(DEPDIR)/libtests_a-printxval.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printxval.c' object='libtests_a-printxval.o' libtool=no @AMDEPBACKSLASH@ +libtests_a-printxval-Xabbrev.o: printxval-Xabbrev.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval-Xabbrev.o -MD -MP -MF $(DEPDIR)/libtests_a-printxval-Xabbrev.Tpo -c -o libtests_a-printxval-Xabbrev.o `test -f 'printxval-Xabbrev.c' || echo '$(srcdir)/'`printxval-Xabbrev.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval-Xabbrev.Tpo $(DEPDIR)/libtests_a-printxval-Xabbrev.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printxval-Xabbrev.c' object='libtests_a-printxval-Xabbrev.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval-Xabbrev.o `test -f 'printxval-Xabbrev.c' || echo '$(srcdir)/'`printxval-Xabbrev.c + +libtests_a-printxval-Xabbrev.obj: printxval-Xabbrev.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval-Xabbrev.obj -MD -MP -MF $(DEPDIR)/libtests_a-printxval-Xabbrev.Tpo -c -o libtests_a-printxval-Xabbrev.obj `if test -f 'printxval-Xabbrev.c'; then $(CYGPATH_W) 'printxval-Xabbrev.c'; else $(CYGPATH_W) '$(srcdir)/printxval-Xabbrev.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval-Xabbrev.Tpo $(DEPDIR)/libtests_a-printxval-Xabbrev.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printxval-Xabbrev.c' object='libtests_a-printxval-Xabbrev.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval-Xabbrev.obj `if test -f 'printxval-Xabbrev.c'; then $(CYGPATH_W) 'printxval-Xabbrev.c'; else $(CYGPATH_W) '$(srcdir)/printxval-Xabbrev.c'; fi` + +libtests_a-printxval-Xraw.o: printxval-Xraw.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval-Xraw.o -MD -MP -MF $(DEPDIR)/libtests_a-printxval-Xraw.Tpo -c -o libtests_a-printxval-Xraw.o `test -f 'printxval-Xraw.c' || echo '$(srcdir)/'`printxval-Xraw.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval-Xraw.Tpo $(DEPDIR)/libtests_a-printxval-Xraw.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printxval-Xraw.c' object='libtests_a-printxval-Xraw.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval-Xraw.o `test -f 'printxval-Xraw.c' || echo '$(srcdir)/'`printxval-Xraw.c + +libtests_a-printxval-Xraw.obj: printxval-Xraw.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval-Xraw.obj -MD -MP -MF $(DEPDIR)/libtests_a-printxval-Xraw.Tpo -c -o libtests_a-printxval-Xraw.obj `if test -f 'printxval-Xraw.c'; then $(CYGPATH_W) 'printxval-Xraw.c'; else $(CYGPATH_W) '$(srcdir)/printxval-Xraw.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval-Xraw.Tpo $(DEPDIR)/libtests_a-printxval-Xraw.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printxval-Xraw.c' object='libtests_a-printxval-Xraw.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval-Xraw.obj `if test -f 'printxval-Xraw.c'; then $(CYGPATH_W) 'printxval-Xraw.c'; else $(CYGPATH_W) '$(srcdir)/printxval-Xraw.c'; fi` + +libtests_a-printxval-Xverbose.o: printxval-Xverbose.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval-Xverbose.o -MD -MP -MF $(DEPDIR)/libtests_a-printxval-Xverbose.Tpo -c -o libtests_a-printxval-Xverbose.o `test -f 'printxval-Xverbose.c' || echo '$(srcdir)/'`printxval-Xverbose.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval-Xverbose.Tpo $(DEPDIR)/libtests_a-printxval-Xverbose.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printxval-Xverbose.c' object='libtests_a-printxval-Xverbose.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval.o `test -f 'printxval.c' || echo '$(srcdir)/'`printxval.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval-Xverbose.o `test -f 'printxval-Xverbose.c' || echo '$(srcdir)/'`printxval-Xverbose.c -libtests_a-printxval.obj: printxval.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval.obj -MD -MP -MF $(DEPDIR)/libtests_a-printxval.Tpo -c -o libtests_a-printxval.obj `if test -f 'printxval.c'; then $(CYGPATH_W) 'printxval.c'; else $(CYGPATH_W) '$(srcdir)/printxval.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval.Tpo $(DEPDIR)/libtests_a-printxval.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printxval.c' object='libtests_a-printxval.obj' libtool=no @AMDEPBACKSLASH@ +libtests_a-printxval-Xverbose.obj: printxval-Xverbose.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval-Xverbose.obj -MD -MP -MF $(DEPDIR)/libtests_a-printxval-Xverbose.Tpo -c -o libtests_a-printxval-Xverbose.obj `if test -f 'printxval-Xverbose.c'; then $(CYGPATH_W) 'printxval-Xverbose.c'; else $(CYGPATH_W) '$(srcdir)/printxval-Xverbose.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval-Xverbose.Tpo $(DEPDIR)/libtests_a-printxval-Xverbose.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printxval-Xverbose.c' object='libtests_a-printxval-Xverbose.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval.obj `if test -f 'printxval.c'; then $(CYGPATH_W) 'printxval.c'; else $(CYGPATH_W) '$(srcdir)/printxval.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval-Xverbose.obj `if test -f 'printxval-Xverbose.c'; then $(CYGPATH_W) 'printxval-Xverbose.c'; else $(CYGPATH_W) '$(srcdir)/printxval-Xverbose.c'; fi` libtests_a-signal2name.o: signal2name.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-signal2name.o -MD -MP -MF $(DEPDIR)/libtests_a-signal2name.Tpo -c -o libtests_a-signal2name.o `test -f 'signal2name.c' || echo '$(srcdir)/'`signal2name.c @@ -8580,6 +11495,20 @@ libtests_a-sprintrc.obj: sprintrc.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-sprintrc.obj `if test -f 'sprintrc.c'; then $(CYGPATH_W) 'sprintrc.c'; else $(CYGPATH_W) '$(srcdir)/sprintrc.c'; fi` +libtests_a-status.o: status.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-status.o -MD -MP -MF $(DEPDIR)/libtests_a-status.Tpo -c -o libtests_a-status.o `test -f 'status.c' || echo '$(srcdir)/'`status.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-status.Tpo $(DEPDIR)/libtests_a-status.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='status.c' object='libtests_a-status.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-status.o `test -f 'status.c' || echo '$(srcdir)/'`status.c + +libtests_a-status.obj: status.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-status.obj -MD -MP -MF $(DEPDIR)/libtests_a-status.Tpo -c -o libtests_a-status.obj `if test -f 'status.c'; then $(CYGPATH_W) 'status.c'; else $(CYGPATH_W) '$(srcdir)/status.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-status.Tpo $(DEPDIR)/libtests_a-status.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='status.c' object='libtests_a-status.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-status.obj `if test -f 'status.c'; then $(CYGPATH_W) 'status.c'; else $(CYGPATH_W) '$(srcdir)/status.c'; fi` + libtests_a-tail_alloc.o: tail_alloc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-tail_alloc.o -MD -MP -MF $(DEPDIR)/libtests_a-tail_alloc.Tpo -c -o libtests_a-tail_alloc.o `test -f 'tail_alloc.c' || echo '$(srcdir)/'`tail_alloc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-tail_alloc.Tpo $(DEPDIR)/libtests_a-tail_alloc.Po @@ -8650,6 +11579,20 @@ libtests_a-tprintf.obj: tprintf.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-tprintf.obj `if test -f 'tprintf.c'; then $(CYGPATH_W) 'tprintf.c'; else $(CYGPATH_W) '$(srcdir)/tprintf.c'; fi` +libtests_a-xmalloc_for_tests.o: xmalloc_for_tests.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-xmalloc_for_tests.o -MD -MP -MF $(DEPDIR)/libtests_a-xmalloc_for_tests.Tpo -c -o libtests_a-xmalloc_for_tests.o `test -f 'xmalloc_for_tests.c' || echo '$(srcdir)/'`xmalloc_for_tests.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-xmalloc_for_tests.Tpo $(DEPDIR)/libtests_a-xmalloc_for_tests.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xmalloc_for_tests.c' object='libtests_a-xmalloc_for_tests.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-xmalloc_for_tests.o `test -f 'xmalloc_for_tests.c' || echo '$(srcdir)/'`xmalloc_for_tests.c + +libtests_a-xmalloc_for_tests.obj: xmalloc_for_tests.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-xmalloc_for_tests.obj -MD -MP -MF $(DEPDIR)/libtests_a-xmalloc_for_tests.Tpo -c -o libtests_a-xmalloc_for_tests.obj `if test -f 'xmalloc_for_tests.c'; then $(CYGPATH_W) 'xmalloc_for_tests.c'; else $(CYGPATH_W) '$(srcdir)/xmalloc_for_tests.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-xmalloc_for_tests.Tpo $(DEPDIR)/libtests_a-xmalloc_for_tests.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xmalloc_for_tests.c' object='libtests_a-xmalloc_for_tests.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-xmalloc_for_tests.obj `if test -f 'xmalloc_for_tests.c'; then $(CYGPATH_W) 'xmalloc_for_tests.c'; else $(CYGPATH_W) '$(srcdir)/xmalloc_for_tests.c'; fi` + fstat64-fstat64.o: fstat64.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fstat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fstat64-fstat64.o -MD -MP -MF $(DEPDIR)/fstat64-fstat64.Tpo -c -o fstat64-fstat64.o `test -f 'fstat64.c' || echo '$(srcdir)/'`fstat64.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/fstat64-fstat64.Tpo $(DEPDIR)/fstat64-fstat64.Po @@ -8860,6 +11803,34 @@ statfs-statfs.obj: statfs.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(statfs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o statfs-statfs.obj `if test -f 'statfs.c'; then $(CYGPATH_W) 'statfs.c'; else $(CYGPATH_W) '$(srcdir)/statfs.c'; fi` +trie_test-trie_test.o: trie_test.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -MT trie_test-trie_test.o -MD -MP -MF $(DEPDIR)/trie_test-trie_test.Tpo -c -o trie_test-trie_test.o `test -f 'trie_test.c' || echo '$(srcdir)/'`trie_test.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/trie_test-trie_test.Tpo $(DEPDIR)/trie_test-trie_test.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='trie_test.c' object='trie_test-trie_test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -c -o trie_test-trie_test.o `test -f 'trie_test.c' || echo '$(srcdir)/'`trie_test.c + +trie_test-trie_test.obj: trie_test.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -MT trie_test-trie_test.obj -MD -MP -MF $(DEPDIR)/trie_test-trie_test.Tpo -c -o trie_test-trie_test.obj `if test -f 'trie_test.c'; then $(CYGPATH_W) 'trie_test.c'; else $(CYGPATH_W) '$(srcdir)/trie_test.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/trie_test-trie_test.Tpo $(DEPDIR)/trie_test-trie_test.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='trie_test.c' object='trie_test-trie_test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -c -o trie_test-trie_test.obj `if test -f 'trie_test.c'; then $(CYGPATH_W) 'trie_test.c'; else $(CYGPATH_W) '$(srcdir)/trie_test.c'; fi` + +trie_test-trie_for_tests.o: trie_for_tests.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -MT trie_test-trie_for_tests.o -MD -MP -MF $(DEPDIR)/trie_test-trie_for_tests.Tpo -c -o trie_test-trie_for_tests.o `test -f 'trie_for_tests.c' || echo '$(srcdir)/'`trie_for_tests.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/trie_test-trie_for_tests.Tpo $(DEPDIR)/trie_test-trie_for_tests.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='trie_for_tests.c' object='trie_test-trie_for_tests.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -c -o trie_test-trie_for_tests.o `test -f 'trie_for_tests.c' || echo '$(srcdir)/'`trie_for_tests.c + +trie_test-trie_for_tests.obj: trie_for_tests.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -MT trie_test-trie_for_tests.obj -MD -MP -MF $(DEPDIR)/trie_test-trie_for_tests.Tpo -c -o trie_test-trie_for_tests.obj `if test -f 'trie_for_tests.c'; then $(CYGPATH_W) 'trie_for_tests.c'; else $(CYGPATH_W) '$(srcdir)/trie_for_tests.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/trie_test-trie_for_tests.Tpo $(DEPDIR)/trie_test-trie_for_tests.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='trie_for_tests.c' object='trie_test-trie_for_tests.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -c -o trie_test-trie_for_tests.obj `if test -f 'trie_for_tests.c'; then $(CYGPATH_W) 'trie_for_tests.c'; else $(CYGPATH_W) '$(srcdir)/trie_for_tests.c'; fi` + truncate64-truncate64.o: truncate64.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(truncate64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT truncate64-truncate64.o -MD -MP -MF $(DEPDIR)/truncate64-truncate64.Tpo -c -o truncate64-truncate64.o `test -f 'truncate64.c' || echo '$(srcdir)/'`truncate64.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/truncate64-truncate64.Tpo $(DEPDIR)/truncate64-truncate64.Po @@ -9052,7 +12023,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS) test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ @@ -9220,10 +12191,12 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/attach-p-cmd-cmd.Po -rm -f ./$(DEPDIR)/attach-p-cmd-p.Po -rm -f ./$(DEPDIR)/block_reset_raise_run.Po + -rm -f ./$(DEPDIR)/block_reset_run.Po -rm -f ./$(DEPDIR)/bpf-obj_get_info_by_fd-prog-v.Po -rm -f ./$(DEPDIR)/bpf-obj_get_info_by_fd-prog.Po -rm -f ./$(DEPDIR)/bpf-obj_get_info_by_fd-v.Po -rm -f ./$(DEPDIR)/bpf-obj_get_info_by_fd.Po + -rm -f ./$(DEPDIR)/bpf-success-long-y.Po -rm -f ./$(DEPDIR)/bpf-success-v.Po -rm -f ./$(DEPDIR)/bpf-success.Po -rm -f ./$(DEPDIR)/bpf-v.Po @@ -9241,16 +12214,48 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/clock_adjtime.Po -rm -f ./$(DEPDIR)/clock_nanosleep.Po -rm -f ./$(DEPDIR)/clock_xettime.Po + -rm -f ./$(DEPDIR)/clone-flags.Po + -rm -f ./$(DEPDIR)/clone3-Xabbrev.Po + -rm -f ./$(DEPDIR)/clone3-Xraw.Po + -rm -f ./$(DEPDIR)/clone3-Xverbose.Po + -rm -f ./$(DEPDIR)/clone3-success-Xabbrev.Po + -rm -f ./$(DEPDIR)/clone3-success-Xraw.Po + -rm -f ./$(DEPDIR)/clone3-success-Xverbose.Po + -rm -f ./$(DEPDIR)/clone3-success.Po + -rm -f ./$(DEPDIR)/clone3.Po + -rm -f ./$(DEPDIR)/clone_parent--quiet-exit.Po + -rm -f ./$(DEPDIR)/clone_parent-q.Po + -rm -f ./$(DEPDIR)/clone_parent-qq.Po -rm -f ./$(DEPDIR)/clone_parent.Po + -rm -f ./$(DEPDIR)/clone_ptrace--quiet-attach.Po + -rm -f ./$(DEPDIR)/clone_ptrace--quiet-exit.Po + -rm -f ./$(DEPDIR)/clone_ptrace-q.Po + -rm -f ./$(DEPDIR)/clone_ptrace-qq.Po -rm -f ./$(DEPDIR)/clone_ptrace.Po + -rm -f ./$(DEPDIR)/close_range-P.Po + -rm -f ./$(DEPDIR)/close_range-y.Po + -rm -f ./$(DEPDIR)/close_range-yy.Po + -rm -f ./$(DEPDIR)/close_range.Po -rm -f ./$(DEPDIR)/copy_file_range.Po -rm -f ./$(DEPDIR)/count-f.Po -rm -f ./$(DEPDIR)/creat.Po -rm -f ./$(DEPDIR)/delay.Po -rm -f ./$(DEPDIR)/delete_module.Po + -rm -f ./$(DEPDIR)/dev--decode-fds-dev.Po + -rm -f ./$(DEPDIR)/dev--decode-fds-path.Po + -rm -f ./$(DEPDIR)/dev--decode-fds-socket.Po -rm -f ./$(DEPDIR)/dev-yy.Po + -rm -f ./$(DEPDIR)/dup-P.Po + -rm -f ./$(DEPDIR)/dup-y.Po + -rm -f ./$(DEPDIR)/dup-yy.Po -rm -f ./$(DEPDIR)/dup.Po + -rm -f ./$(DEPDIR)/dup2-P.Po + -rm -f ./$(DEPDIR)/dup2-y.Po + -rm -f ./$(DEPDIR)/dup2-yy.Po -rm -f ./$(DEPDIR)/dup2.Po + -rm -f ./$(DEPDIR)/dup3-P.Po + -rm -f ./$(DEPDIR)/dup3-y.Po + -rm -f ./$(DEPDIR)/dup3-yy.Po -rm -f ./$(DEPDIR)/dup3.Po -rm -f ./$(DEPDIR)/epoll_create.Po -rm -f ./$(DEPDIR)/epoll_create1.Po @@ -9263,7 +12268,14 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/execve.Po -rm -f ./$(DEPDIR)/execveat-v.Po -rm -f ./$(DEPDIR)/execveat.Po + -rm -f ./$(DEPDIR)/faccessat-P.Po + -rm -f ./$(DEPDIR)/faccessat-y.Po + -rm -f ./$(DEPDIR)/faccessat-yy.Po -rm -f ./$(DEPDIR)/faccessat.Po + -rm -f ./$(DEPDIR)/faccessat2-P.Po + -rm -f ./$(DEPDIR)/faccessat2-y.Po + -rm -f ./$(DEPDIR)/faccessat2-yy.Po + -rm -f ./$(DEPDIR)/faccessat2.Po -rm -f ./$(DEPDIR)/fadvise64.Po -rm -f ./$(DEPDIR)/fadvise64_64.Po -rm -f ./$(DEPDIR)/fallocate.Po @@ -9278,16 +12290,27 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/fchown.Po -rm -f ./$(DEPDIR)/fchown32.Po -rm -f ./$(DEPDIR)/fchownat.Po + -rm -f ./$(DEPDIR)/fcntl--pidns-translation.Po -rm -f ./$(DEPDIR)/fcntl.Po + -rm -f ./$(DEPDIR)/fcntl64--pidns-translation.Po -rm -f ./$(DEPDIR)/fcntl64.Po -rm -f ./$(DEPDIR)/fdatasync.Po -rm -f ./$(DEPDIR)/fflush.Po -rm -f ./$(DEPDIR)/file_handle.Po -rm -f ./$(DEPDIR)/file_ioctl.Po -rm -f ./$(DEPDIR)/filter-unavailable.Po + -rm -f ./$(DEPDIR)/filter_seccomp-flag.Po + -rm -f ./$(DEPDIR)/filter_seccomp-perf.Po -rm -f ./$(DEPDIR)/finit_module.Po -rm -f ./$(DEPDIR)/flock.Po + -rm -f ./$(DEPDIR)/fork--pidns-translation.Po -rm -f ./$(DEPDIR)/fork-f.Po + -rm -f ./$(DEPDIR)/fsconfig-P.Po + -rm -f ./$(DEPDIR)/fsconfig.Po + -rm -f ./$(DEPDIR)/fsmount.Po + -rm -f ./$(DEPDIR)/fsopen.Po + -rm -f ./$(DEPDIR)/fspick-P.Po + -rm -f ./$(DEPDIR)/fspick.Po -rm -f ./$(DEPDIR)/fstat-Xabbrev.Po -rm -f ./$(DEPDIR)/fstat-Xraw.Po -rm -f ./$(DEPDIR)/fstat-Xverbose.Po @@ -9306,9 +12329,12 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/futex.Po -rm -f ./$(DEPDIR)/futimesat.Po -rm -f ./$(DEPDIR)/get_mempolicy.Po + -rm -f ./$(DEPDIR)/get_process_reaper.Po -rm -f ./$(DEPDIR)/getcpu.Po -rm -f ./$(DEPDIR)/getcwd.Po + -rm -f ./$(DEPDIR)/getdents-v.Po -rm -f ./$(DEPDIR)/getdents.Po + -rm -f ./$(DEPDIR)/getdents64-v.Po -rm -f ./$(DEPDIR)/getdents64.Po -rm -f ./$(DEPDIR)/getegid.Po -rm -f ./$(DEPDIR)/getegid32.Po @@ -9319,7 +12345,9 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/getgroups.Po -rm -f ./$(DEPDIR)/getgroups32.Po -rm -f ./$(DEPDIR)/getpeername.Po + -rm -f ./$(DEPDIR)/getpgrp--pidns-translation.Po -rm -f ./$(DEPDIR)/getpgrp.Po + -rm -f ./$(DEPDIR)/getpid--pidns-translation.Po -rm -f ./$(DEPDIR)/getpid.Po -rm -f ./$(DEPDIR)/getppid.Po -rm -f ./$(DEPDIR)/getrandom.Po @@ -9329,30 +12357,66 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/getresuid32.Po -rm -f ./$(DEPDIR)/getrlimit.Po -rm -f ./$(DEPDIR)/getrusage.Po + -rm -f ./$(DEPDIR)/getsid--pidns-translation.Po -rm -f ./$(DEPDIR)/getsid.Po -rm -f ./$(DEPDIR)/getsockname.Po + -rm -f ./$(DEPDIR)/gettid--pidns-translation.Po -rm -f ./$(DEPDIR)/gettid.Po -rm -f ./$(DEPDIR)/getuid.Po -rm -f ./$(DEPDIR)/getuid32.Po - -rm -f ./$(DEPDIR)/getxxid.Po + -rm -f ./$(DEPDIR)/getxgid.Po + -rm -f ./$(DEPDIR)/getxpid.Po + -rm -f ./$(DEPDIR)/getxuid.Po -rm -f ./$(DEPDIR)/group_req.Po -rm -f ./$(DEPDIR)/inet-cmsg.Po -rm -f ./$(DEPDIR)/init_module.Po -rm -f ./$(DEPDIR)/inject-nf.Po -rm -f ./$(DEPDIR)/inotify.Po + -rm -f ./$(DEPDIR)/inotify_init-y.Po + -rm -f ./$(DEPDIR)/inotify_init.Po + -rm -f ./$(DEPDIR)/inotify_init1-y.Po -rm -f ./$(DEPDIR)/inotify_init1.Po -rm -f ./$(DEPDIR)/int_0x80.Po -rm -f ./$(DEPDIR)/io_uring_enter.Po -rm -f ./$(DEPDIR)/io_uring_register.Po -rm -f ./$(DEPDIR)/io_uring_setup.Po -rm -f ./$(DEPDIR)/ioctl.Po + -rm -f ./$(DEPDIR)/ioctl_block--pidns-translation.Po -rm -f ./$(DEPDIR)/ioctl_block.Po -rm -f ./$(DEPDIR)/ioctl_dm-v.Po -rm -f ./$(DEPDIR)/ioctl_dm.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-v-Xverbose.Po -rm -f ./$(DEPDIR)/ioctl_evdev-success-v.Po -rm -f ./$(DEPDIR)/ioctl_evdev-success.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-v-Xverbose.Po -rm -f ./$(DEPDIR)/ioctl_evdev-v.Po -rm -f ./$(DEPDIR)/ioctl_evdev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-v-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-v.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-v-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-v.Po + -rm -f ./$(DEPDIR)/ioctl_hdio.Po -rm -f ./$(DEPDIR)/ioctl_inotify.Po -rm -f ./$(DEPDIR)/ioctl_kvm_run-v.Po -rm -f ./$(DEPDIR)/ioctl_kvm_run.Po @@ -9373,10 +12437,28 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/ioctl_sg_io_v3.Po -rm -f ./$(DEPDIR)/ioctl_sg_io_v4.Po -rm -f ./$(DEPDIR)/ioctl_sock_gifconf.Po + -rm -f ./$(DEPDIR)/ioctl_tee.Po -rm -f ./$(DEPDIR)/ioctl_uffdio.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-v-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-v.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-v-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-v.Po -rm -f ./$(DEPDIR)/ioctl_v4l2.Po + -rm -f ./$(DEPDIR)/ioctl_watchdog.Po -rm -f ./$(DEPDIR)/ioperm.Po -rm -f ./$(DEPDIR)/iopl.Po + -rm -f ./$(DEPDIR)/ioprio--pidns-translation.Po -rm -f ./$(DEPDIR)/ioprio-Xabbrev.Po -rm -f ./$(DEPDIR)/ioprio-Xraw.Po -rm -f ./$(DEPDIR)/ioprio-Xverbose.Po @@ -9400,6 +12482,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/ipc_shm-Xverbose.Po -rm -f ./$(DEPDIR)/ipc_shm.Po -rm -f ./$(DEPDIR)/is_linux_mips_n64.Po + -rm -f ./$(DEPDIR)/kcmp-y--pidns-translation.Po -rm -f ./$(DEPDIR)/kcmp-y.Po -rm -f ./$(DEPDIR)/kcmp.Po -rm -f ./$(DEPDIR)/kern_features.Po @@ -9413,12 +12496,14 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/keyctl-Xraw.Po -rm -f ./$(DEPDIR)/keyctl-Xverbose.Po -rm -f ./$(DEPDIR)/keyctl.Po + -rm -f ./$(DEPDIR)/kill--pidns-translation.Po -rm -f ./$(DEPDIR)/kill.Po -rm -f ./$(DEPDIR)/kill_child.Po -rm -f ./$(DEPDIR)/ksysent.Po -rm -f ./$(DEPDIR)/lchown.Po -rm -f ./$(DEPDIR)/lchown32.Po -rm -f ./$(DEPDIR)/libtests_a-create_nl_socket.Po + -rm -f ./$(DEPDIR)/libtests_a-create_tmpfile.Po -rm -f ./$(DEPDIR)/libtests_a-errno2name.Po -rm -f ./$(DEPDIR)/libtests_a-error_msg.Po -rm -f ./$(DEPDIR)/libtests_a-fill_memory.Po @@ -9430,20 +12515,26 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/libtests_a-inode_of_sockfd.Po -rm -f ./$(DEPDIR)/libtests_a-libmmsg.Po -rm -f ./$(DEPDIR)/libtests_a-libsocketcall.Po + -rm -f ./$(DEPDIR)/libtests_a-lock_file.Po -rm -f ./$(DEPDIR)/libtests_a-overflowuid.Po + -rm -f ./$(DEPDIR)/libtests_a-pidns.Po -rm -f ./$(DEPDIR)/libtests_a-pipe_maxfd.Po -rm -f ./$(DEPDIR)/libtests_a-print_quoted_string.Po -rm -f ./$(DEPDIR)/libtests_a-print_time.Po -rm -f ./$(DEPDIR)/libtests_a-printflags.Po - -rm -f ./$(DEPDIR)/libtests_a-printxval.Po + -rm -f ./$(DEPDIR)/libtests_a-printxval-Xabbrev.Po + -rm -f ./$(DEPDIR)/libtests_a-printxval-Xraw.Po + -rm -f ./$(DEPDIR)/libtests_a-printxval-Xverbose.Po -rm -f ./$(DEPDIR)/libtests_a-signal2name.Po -rm -f ./$(DEPDIR)/libtests_a-skip_unavailable.Po -rm -f ./$(DEPDIR)/libtests_a-sprintrc.Po + -rm -f ./$(DEPDIR)/libtests_a-status.Po -rm -f ./$(DEPDIR)/libtests_a-tail_alloc.Po -rm -f ./$(DEPDIR)/libtests_a-test_printpath.Po -rm -f ./$(DEPDIR)/libtests_a-test_printstrn.Po -rm -f ./$(DEPDIR)/libtests_a-test_ucopy.Po -rm -f ./$(DEPDIR)/libtests_a-tprintf.Po + -rm -f ./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po -rm -f ./$(DEPDIR)/link.Po -rm -f ./$(DEPDIR)/linkat.Po -rm -f ./$(DEPDIR)/list_sigaction_signum.Po @@ -9455,12 +12546,18 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/lstat.Po -rm -f ./$(DEPDIR)/lstat64-lstat64.Po -rm -f ./$(DEPDIR)/madvise.Po + -rm -f ./$(DEPDIR)/maybe_switch_current_tcp--quiet-thread-execve.Po + -rm -f ./$(DEPDIR)/maybe_switch_current_tcp.Po + -rm -f ./$(DEPDIR)/mbind-Xabbrev.Po + -rm -f ./$(DEPDIR)/mbind-Xraw.Po + -rm -f ./$(DEPDIR)/mbind-Xverbose.Po -rm -f ./$(DEPDIR)/mbind.Po -rm -f ./$(DEPDIR)/membarrier.Po -rm -f ./$(DEPDIR)/memfd_create-Xabbrev.Po -rm -f ./$(DEPDIR)/memfd_create-Xraw.Po -rm -f ./$(DEPDIR)/memfd_create-Xverbose.Po -rm -f ./$(DEPDIR)/memfd_create.Po + -rm -f ./$(DEPDIR)/migrate_pages--pidns-translation.Po -rm -f ./$(DEPDIR)/migrate_pages.Po -rm -f ./$(DEPDIR)/mincore.Po -rm -f ./$(DEPDIR)/mkdir.Po @@ -9487,6 +12584,9 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/mount-Xraw.Po -rm -f ./$(DEPDIR)/mount-Xverbose.Po -rm -f ./$(DEPDIR)/mount.Po + -rm -f ./$(DEPDIR)/move_mount-P.Po + -rm -f ./$(DEPDIR)/move_mount.Po + -rm -f ./$(DEPDIR)/move_pages--pidns-translation.Po -rm -f ./$(DEPDIR)/move_pages-Xabbrev.Po -rm -f ./$(DEPDIR)/move_pages-Xraw.Po -rm -f ./$(DEPDIR)/move_pages-Xverbose.Po @@ -9500,12 +12600,17 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/msg_name.Po -rm -f ./$(DEPDIR)/munlockall.Po -rm -f ./$(DEPDIR)/nanosleep.Po + -rm -f ./$(DEPDIR)/net--decode-fds-dev-netlink.Po + -rm -f ./$(DEPDIR)/net--decode-fds-none-netlink.Po + -rm -f ./$(DEPDIR)/net--decode-fds-path-netlink.Po + -rm -f ./$(DEPDIR)/net--decode-fds-socket-netlink.Po -rm -f ./$(DEPDIR)/net-accept-connect.Po -rm -f ./$(DEPDIR)/net-icmp_filter.Po -rm -f ./$(DEPDIR)/net-packet_mreq-Xabbrev.Po -rm -f ./$(DEPDIR)/net-packet_mreq-Xraw.Po -rm -f ./$(DEPDIR)/net-packet_mreq-Xverbose.Po -rm -f ./$(DEPDIR)/net-packet_mreq.Po + -rm -f ./$(DEPDIR)/net-sockaddr--pidns-translation.Po -rm -f ./$(DEPDIR)/net-sockaddr.Po -rm -f ./$(DEPDIR)/net-tpacket_req.Po -rm -f ./$(DEPDIR)/net-tpacket_stats-success.Po @@ -9515,6 +12620,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/net-yy-inet6.Po -rm -f ./$(DEPDIR)/net-yy-netlink.Po -rm -f ./$(DEPDIR)/net-yy-unix.Po + -rm -f ./$(DEPDIR)/netlink_audit--pidns-translation.Po -rm -f ./$(DEPDIR)/netlink_audit.Po -rm -f ./$(DEPDIR)/netlink_crypto.Po -rm -f ./$(DEPDIR)/netlink_generic.Po @@ -9552,6 +12658,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/nlattr_ifla_brport.Po -rm -f ./$(DEPDIR)/nlattr_ifla_linkinfo.Po -rm -f ./$(DEPDIR)/nlattr_ifla_port.Po + -rm -f ./$(DEPDIR)/nlattr_ifla_xdp-y.Po -rm -f ./$(DEPDIR)/nlattr_ifla_xdp.Po -rm -f ./$(DEPDIR)/nlattr_inet_diag_msg.Po -rm -f ./$(DEPDIR)/nlattr_inet_diag_req_compat.Po @@ -9588,7 +12695,19 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/oldselect.Po -rm -f ./$(DEPDIR)/oldstat.Po -rm -f ./$(DEPDIR)/open.Po + -rm -f ./$(DEPDIR)/open_tree-P.Po + -rm -f ./$(DEPDIR)/open_tree.Po -rm -f ./$(DEPDIR)/openat.Po + -rm -f ./$(DEPDIR)/openat2-Xabbrev.Po + -rm -f ./$(DEPDIR)/openat2-Xraw.Po + -rm -f ./$(DEPDIR)/openat2-Xverbose.Po + -rm -f ./$(DEPDIR)/openat2-v-y-Xabbrev.Po + -rm -f ./$(DEPDIR)/openat2-v-y-Xraw.Po + -rm -f ./$(DEPDIR)/openat2-v-y-Xverbose.Po + -rm -f ./$(DEPDIR)/openat2-v-y.Po + -rm -f ./$(DEPDIR)/openat2-v.Po + -rm -f ./$(DEPDIR)/openat2-y.Po + -rm -f ./$(DEPDIR)/openat2.Po -rm -f ./$(DEPDIR)/orphaned_process_group.Po -rm -f ./$(DEPDIR)/osf_utimes.Po -rm -f ./$(DEPDIR)/pause.Po @@ -9600,7 +12719,20 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/personality-Xraw.Po -rm -f ./$(DEPDIR)/personality-Xverbose.Po -rm -f ./$(DEPDIR)/personality.Po + -rm -f ./$(DEPDIR)/pidfd_getfd-y.Po + -rm -f ./$(DEPDIR)/pidfd_getfd-yy.Po + -rm -f ./$(DEPDIR)/pidfd_getfd.Po + -rm -f ./$(DEPDIR)/pidfd_open--decode-fd-path.Po + -rm -f ./$(DEPDIR)/pidfd_open--decode-fd-pidfd.Po + -rm -f ./$(DEPDIR)/pidfd_open--decode-fd-socket.Po + -rm -f ./$(DEPDIR)/pidfd_open--pidns-translation.Po + -rm -f ./$(DEPDIR)/pidfd_open-P.Po + -rm -f ./$(DEPDIR)/pidfd_open-y.Po + -rm -f ./$(DEPDIR)/pidfd_open-yy.Po + -rm -f ./$(DEPDIR)/pidfd_open.Po + -rm -f ./$(DEPDIR)/pidfd_send_signal--pidns-translation.Po -rm -f ./$(DEPDIR)/pidfd_send_signal.Po + -rm -f ./$(DEPDIR)/pidns-cache.Po -rm -f ./$(DEPDIR)/pipe.Po -rm -f ./$(DEPDIR)/pipe2.Po -rm -f ./$(DEPDIR)/pkey_alloc.Po @@ -9627,6 +12759,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/preadv2-pwritev2.Po -rm -f ./$(DEPDIR)/preadv_pwritev-preadv-pwritev.Po -rm -f ./$(DEPDIR)/print_maxfd.Po + -rm -f ./$(DEPDIR)/print_ppid_tracerpid.Po -rm -f ./$(DEPDIR)/printpath-umovestr-peekdata.Po -rm -f ./$(DEPDIR)/printpath-umovestr-undumpable.Po -rm -f ./$(DEPDIR)/printpath-umovestr.Po @@ -9637,8 +12770,11 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/printstrn-umoven-peekdata.Po -rm -f ./$(DEPDIR)/printstrn-umoven-undumpable.Po -rm -f ./$(DEPDIR)/printstrn-umoven.Po + -rm -f ./$(DEPDIR)/prlimit64--pidns-translation.Po -rm -f ./$(DEPDIR)/prlimit64.Po + -rm -f ./$(DEPDIR)/process_vm_readv--pidns-translation.Po -rm -f ./$(DEPDIR)/process_vm_readv.Po + -rm -f ./$(DEPDIR)/process_vm_writev--pidns-translation.Po -rm -f ./$(DEPDIR)/process_vm_writev.Po -rm -f ./$(DEPDIR)/pselect6.Po -rm -f ./$(DEPDIR)/ptrace.Po @@ -9667,6 +12803,8 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/readlinkat.Po -rm -f ./$(DEPDIR)/readv.Po -rm -f ./$(DEPDIR)/reboot.Po + -rm -f ./$(DEPDIR)/recv-MSG_TRUNC.Po + -rm -f ./$(DEPDIR)/recvfrom-MSG_TRUNC.Po -rm -f ./$(DEPDIR)/recvfrom.Po -rm -f ./$(DEPDIR)/recvmmsg-timeout.Po -rm -f ./$(DEPDIR)/recvmsg.Po @@ -9685,10 +12823,12 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/rt_sigaction.Po -rm -f ./$(DEPDIR)/rt_sigpending.Po -rm -f ./$(DEPDIR)/rt_sigprocmask.Po + -rm -f ./$(DEPDIR)/rt_sigqueueinfo--pidns-translation.Po -rm -f ./$(DEPDIR)/rt_sigqueueinfo.Po -rm -f ./$(DEPDIR)/rt_sigreturn.Po -rm -f ./$(DEPDIR)/rt_sigsuspend.Po -rm -f ./$(DEPDIR)/rt_sigtimedwait.Po + -rm -f ./$(DEPDIR)/rt_tgsigqueueinfo--pidns-translation.Po -rm -f ./$(DEPDIR)/rt_tgsigqueueinfo.Po -rm -f ./$(DEPDIR)/run_expect_termsig.Po -rm -f ./$(DEPDIR)/s390_guarded_storage-v.Po @@ -9699,9 +12839,13 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/s390_sthyi.Po -rm -f ./$(DEPDIR)/sched_get_priority_mxx.Po -rm -f ./$(DEPDIR)/sched_rr_get_interval.Po + -rm -f ./$(DEPDIR)/sched_xetaffinity--pidns-translation.Po -rm -f ./$(DEPDIR)/sched_xetaffinity.Po + -rm -f ./$(DEPDIR)/sched_xetattr--pidns-translation.Po -rm -f ./$(DEPDIR)/sched_xetattr.Po + -rm -f ./$(DEPDIR)/sched_xetparam--pidns-translation.Po -rm -f ./$(DEPDIR)/sched_xetparam.Po + -rm -f ./$(DEPDIR)/sched_xetscheduler--pidns-translation.Po -rm -f ./$(DEPDIR)/sched_xetscheduler.Po -rm -f ./$(DEPDIR)/sched_yield.Po -rm -f ./$(DEPDIR)/scm_rights.Po @@ -9711,9 +12855,14 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/seccomp_get_action_avail.Po -rm -f ./$(DEPDIR)/select-P.Po -rm -f ./$(DEPDIR)/select.Po + -rm -f ./$(DEPDIR)/semop-indirect.Po -rm -f ./$(DEPDIR)/semop.Po + -rm -f ./$(DEPDIR)/semtimedop.Po -rm -f ./$(DEPDIR)/sendfile.Po -rm -f ./$(DEPDIR)/sendfile64.Po + -rm -f ./$(DEPDIR)/set_mempolicy-Xabbrev.Po + -rm -f ./$(DEPDIR)/set_mempolicy-Xraw.Po + -rm -f ./$(DEPDIR)/set_mempolicy-Xverbose.Po -rm -f ./$(DEPDIR)/set_mempolicy.Po -rm -f ./$(DEPDIR)/set_ptracer_any.Po -rm -f ./$(DEPDIR)/set_sigblock.Po @@ -9729,6 +12878,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/setgroups32.Po -rm -f ./$(DEPDIR)/sethostname.Po -rm -f ./$(DEPDIR)/setns.Po + -rm -f ./$(DEPDIR)/setpgrp-exec.Po -rm -f ./$(DEPDIR)/setregid.Po -rm -f ./$(DEPDIR)/setregid32.Po -rm -f ./$(DEPDIR)/setresgid.Po @@ -9749,6 +12899,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/sigaltstack.Po -rm -f ./$(DEPDIR)/siginfo.Po -rm -f ./$(DEPDIR)/signal.Po + -rm -f ./$(DEPDIR)/signal_receive--pidns-translation.Po -rm -f ./$(DEPDIR)/signal_receive.Po -rm -f ./$(DEPDIR)/signalfd4.Po -rm -f ./$(DEPDIR)/sigpending.Po @@ -9758,6 +12909,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/sleep.Po -rm -f ./$(DEPDIR)/so_error.Po -rm -f ./$(DEPDIR)/so_linger.Po + -rm -f ./$(DEPDIR)/so_peercred--pidns-translation.Po -rm -f ./$(DEPDIR)/so_peercred-Xabbrev.Po -rm -f ./$(DEPDIR)/so_peercred-Xraw.Po -rm -f ./$(DEPDIR)/so_peercred-Xverbose.Po @@ -9777,6 +12929,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/stack-fcall-1.Po -rm -f ./$(DEPDIR)/stack-fcall-2.Po -rm -f ./$(DEPDIR)/stack-fcall-3.Po + -rm -f ./$(DEPDIR)/stack-fcall-attach.Po -rm -f ./$(DEPDIR)/stack-fcall-mangled-0.Po -rm -f ./$(DEPDIR)/stack-fcall-mangled-1.Po -rm -f ./$(DEPDIR)/stack-fcall-mangled-2.Po @@ -9787,7 +12940,25 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/stat64-stat64.Po -rm -f ./$(DEPDIR)/statfs-statfs.Po -rm -f ./$(DEPDIR)/statfs64.Po + -rm -f ./$(DEPDIR)/status-all.Po + -rm -f ./$(DEPDIR)/status-failed-long.Po + -rm -f ./$(DEPDIR)/status-failed-status.Po + -rm -f ./$(DEPDIR)/status-failed.Po + -rm -f ./$(DEPDIR)/status-none-f.Po + -rm -f ./$(DEPDIR)/status-none-threads.Po + -rm -f ./$(DEPDIR)/status-none.Po + -rm -f ./$(DEPDIR)/status-successful-long.Po + -rm -f ./$(DEPDIR)/status-successful-status.Po + -rm -f ./$(DEPDIR)/status-successful.Po + -rm -f ./$(DEPDIR)/status-unfinished-threads.Po + -rm -f ./$(DEPDIR)/status-unfinished.Po -rm -f ./$(DEPDIR)/statx.Po + -rm -f ./$(DEPDIR)/strace--strings-in-hex-all.Po + -rm -f ./$(DEPDIR)/strace--strings-in-hex-non-ascii.Po + -rm -f ./$(DEPDIR)/strace--strings-in-hex.Po + -rm -f ./$(DEPDIR)/strace-n.Po + -rm -f ./$(DEPDIR)/strace-x.Po + -rm -f ./$(DEPDIR)/strace-xx.Po -rm -f ./$(DEPDIR)/swap.Po -rm -f ./$(DEPDIR)/sxetmask.Po -rm -f ./$(DEPDIR)/symlink.Po @@ -9796,8 +12967,15 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/sync_file_range.Po -rm -f ./$(DEPDIR)/sync_file_range2.Po -rm -f ./$(DEPDIR)/sysinfo.Po + -rm -f ./$(DEPDIR)/syslog-success.Po -rm -f ./$(DEPDIR)/syslog.Po -rm -f ./$(DEPDIR)/tee.Po + -rm -f ./$(DEPDIR)/tgkill--pidns-translation.Po + -rm -f ./$(DEPDIR)/tgkill.Po + -rm -f ./$(DEPDIR)/threads-execve--quiet-thread-execve.Po + -rm -f ./$(DEPDIR)/threads-execve-q.Po + -rm -f ./$(DEPDIR)/threads-execve-qq.Po + -rm -f ./$(DEPDIR)/threads-execve-qqq.Po -rm -f ./$(DEPDIR)/threads-execve.Po -rm -f ./$(DEPDIR)/time.Po -rm -f ./$(DEPDIR)/timer_create.Po @@ -9805,6 +12983,11 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/timerfd_xettime.Po -rm -f ./$(DEPDIR)/times-fail.Po -rm -f ./$(DEPDIR)/times.Po + -rm -f ./$(DEPDIR)/tkill--pidns-translation.Po + -rm -f ./$(DEPDIR)/tkill.Po + -rm -f ./$(DEPDIR)/tracer_ppid_pgid_sid.Po + -rm -f ./$(DEPDIR)/trie_test-trie_for_tests.Po + -rm -f ./$(DEPDIR)/trie_test-trie_test.Po -rm -f ./$(DEPDIR)/truncate.Po -rm -f ./$(DEPDIR)/truncate64-truncate64.Po -rm -f ./$(DEPDIR)/ugetrlimit.Po @@ -9817,6 +13000,8 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/umovestr.Po -rm -f ./$(DEPDIR)/umovestr2.Po -rm -f ./$(DEPDIR)/umovestr3.Po + -rm -f ./$(DEPDIR)/umovestr_cached.Po + -rm -f ./$(DEPDIR)/umovestr_cached_adjacent.Po -rm -f ./$(DEPDIR)/uname.Po -rm -f ./$(DEPDIR)/unblock_reset_raise.Po -rm -f ./$(DEPDIR)/unix-pair-send-recv.Po @@ -9842,10 +13027,13 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/waitpid.Po -rm -f ./$(DEPDIR)/xattr-strings.Po -rm -f ./$(DEPDIR)/xattr.Po + -rm -f ./$(DEPDIR)/xet_robust_list--pidns-translation.Po -rm -f ./$(DEPDIR)/xet_robust_list.Po -rm -f ./$(DEPDIR)/xet_thread_area_x86.Po -rm -f ./$(DEPDIR)/xetitimer.Po + -rm -f ./$(DEPDIR)/xetpgid--pidns-translation.Po -rm -f ./$(DEPDIR)/xetpgid.Po + -rm -f ./$(DEPDIR)/xetpriority--pidns-translation.Po -rm -f ./$(DEPDIR)/xetpriority.Po -rm -f ./$(DEPDIR)/xettimeofday.Po -rm -f ./$(DEPDIR)/zeroargc.Po @@ -9911,10 +13099,12 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/attach-p-cmd-cmd.Po -rm -f ./$(DEPDIR)/attach-p-cmd-p.Po -rm -f ./$(DEPDIR)/block_reset_raise_run.Po + -rm -f ./$(DEPDIR)/block_reset_run.Po -rm -f ./$(DEPDIR)/bpf-obj_get_info_by_fd-prog-v.Po -rm -f ./$(DEPDIR)/bpf-obj_get_info_by_fd-prog.Po -rm -f ./$(DEPDIR)/bpf-obj_get_info_by_fd-v.Po -rm -f ./$(DEPDIR)/bpf-obj_get_info_by_fd.Po + -rm -f ./$(DEPDIR)/bpf-success-long-y.Po -rm -f ./$(DEPDIR)/bpf-success-v.Po -rm -f ./$(DEPDIR)/bpf-success.Po -rm -f ./$(DEPDIR)/bpf-v.Po @@ -9932,16 +13122,48 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/clock_adjtime.Po -rm -f ./$(DEPDIR)/clock_nanosleep.Po -rm -f ./$(DEPDIR)/clock_xettime.Po + -rm -f ./$(DEPDIR)/clone-flags.Po + -rm -f ./$(DEPDIR)/clone3-Xabbrev.Po + -rm -f ./$(DEPDIR)/clone3-Xraw.Po + -rm -f ./$(DEPDIR)/clone3-Xverbose.Po + -rm -f ./$(DEPDIR)/clone3-success-Xabbrev.Po + -rm -f ./$(DEPDIR)/clone3-success-Xraw.Po + -rm -f ./$(DEPDIR)/clone3-success-Xverbose.Po + -rm -f ./$(DEPDIR)/clone3-success.Po + -rm -f ./$(DEPDIR)/clone3.Po + -rm -f ./$(DEPDIR)/clone_parent--quiet-exit.Po + -rm -f ./$(DEPDIR)/clone_parent-q.Po + -rm -f ./$(DEPDIR)/clone_parent-qq.Po -rm -f ./$(DEPDIR)/clone_parent.Po + -rm -f ./$(DEPDIR)/clone_ptrace--quiet-attach.Po + -rm -f ./$(DEPDIR)/clone_ptrace--quiet-exit.Po + -rm -f ./$(DEPDIR)/clone_ptrace-q.Po + -rm -f ./$(DEPDIR)/clone_ptrace-qq.Po -rm -f ./$(DEPDIR)/clone_ptrace.Po + -rm -f ./$(DEPDIR)/close_range-P.Po + -rm -f ./$(DEPDIR)/close_range-y.Po + -rm -f ./$(DEPDIR)/close_range-yy.Po + -rm -f ./$(DEPDIR)/close_range.Po -rm -f ./$(DEPDIR)/copy_file_range.Po -rm -f ./$(DEPDIR)/count-f.Po -rm -f ./$(DEPDIR)/creat.Po -rm -f ./$(DEPDIR)/delay.Po -rm -f ./$(DEPDIR)/delete_module.Po + -rm -f ./$(DEPDIR)/dev--decode-fds-dev.Po + -rm -f ./$(DEPDIR)/dev--decode-fds-path.Po + -rm -f ./$(DEPDIR)/dev--decode-fds-socket.Po -rm -f ./$(DEPDIR)/dev-yy.Po + -rm -f ./$(DEPDIR)/dup-P.Po + -rm -f ./$(DEPDIR)/dup-y.Po + -rm -f ./$(DEPDIR)/dup-yy.Po -rm -f ./$(DEPDIR)/dup.Po + -rm -f ./$(DEPDIR)/dup2-P.Po + -rm -f ./$(DEPDIR)/dup2-y.Po + -rm -f ./$(DEPDIR)/dup2-yy.Po -rm -f ./$(DEPDIR)/dup2.Po + -rm -f ./$(DEPDIR)/dup3-P.Po + -rm -f ./$(DEPDIR)/dup3-y.Po + -rm -f ./$(DEPDIR)/dup3-yy.Po -rm -f ./$(DEPDIR)/dup3.Po -rm -f ./$(DEPDIR)/epoll_create.Po -rm -f ./$(DEPDIR)/epoll_create1.Po @@ -9954,7 +13176,14 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/execve.Po -rm -f ./$(DEPDIR)/execveat-v.Po -rm -f ./$(DEPDIR)/execveat.Po + -rm -f ./$(DEPDIR)/faccessat-P.Po + -rm -f ./$(DEPDIR)/faccessat-y.Po + -rm -f ./$(DEPDIR)/faccessat-yy.Po -rm -f ./$(DEPDIR)/faccessat.Po + -rm -f ./$(DEPDIR)/faccessat2-P.Po + -rm -f ./$(DEPDIR)/faccessat2-y.Po + -rm -f ./$(DEPDIR)/faccessat2-yy.Po + -rm -f ./$(DEPDIR)/faccessat2.Po -rm -f ./$(DEPDIR)/fadvise64.Po -rm -f ./$(DEPDIR)/fadvise64_64.Po -rm -f ./$(DEPDIR)/fallocate.Po @@ -9969,16 +13198,27 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/fchown.Po -rm -f ./$(DEPDIR)/fchown32.Po -rm -f ./$(DEPDIR)/fchownat.Po + -rm -f ./$(DEPDIR)/fcntl--pidns-translation.Po -rm -f ./$(DEPDIR)/fcntl.Po + -rm -f ./$(DEPDIR)/fcntl64--pidns-translation.Po -rm -f ./$(DEPDIR)/fcntl64.Po -rm -f ./$(DEPDIR)/fdatasync.Po -rm -f ./$(DEPDIR)/fflush.Po -rm -f ./$(DEPDIR)/file_handle.Po -rm -f ./$(DEPDIR)/file_ioctl.Po -rm -f ./$(DEPDIR)/filter-unavailable.Po + -rm -f ./$(DEPDIR)/filter_seccomp-flag.Po + -rm -f ./$(DEPDIR)/filter_seccomp-perf.Po -rm -f ./$(DEPDIR)/finit_module.Po -rm -f ./$(DEPDIR)/flock.Po + -rm -f ./$(DEPDIR)/fork--pidns-translation.Po -rm -f ./$(DEPDIR)/fork-f.Po + -rm -f ./$(DEPDIR)/fsconfig-P.Po + -rm -f ./$(DEPDIR)/fsconfig.Po + -rm -f ./$(DEPDIR)/fsmount.Po + -rm -f ./$(DEPDIR)/fsopen.Po + -rm -f ./$(DEPDIR)/fspick-P.Po + -rm -f ./$(DEPDIR)/fspick.Po -rm -f ./$(DEPDIR)/fstat-Xabbrev.Po -rm -f ./$(DEPDIR)/fstat-Xraw.Po -rm -f ./$(DEPDIR)/fstat-Xverbose.Po @@ -9997,9 +13237,12 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/futex.Po -rm -f ./$(DEPDIR)/futimesat.Po -rm -f ./$(DEPDIR)/get_mempolicy.Po + -rm -f ./$(DEPDIR)/get_process_reaper.Po -rm -f ./$(DEPDIR)/getcpu.Po -rm -f ./$(DEPDIR)/getcwd.Po + -rm -f ./$(DEPDIR)/getdents-v.Po -rm -f ./$(DEPDIR)/getdents.Po + -rm -f ./$(DEPDIR)/getdents64-v.Po -rm -f ./$(DEPDIR)/getdents64.Po -rm -f ./$(DEPDIR)/getegid.Po -rm -f ./$(DEPDIR)/getegid32.Po @@ -10010,7 +13253,9 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/getgroups.Po -rm -f ./$(DEPDIR)/getgroups32.Po -rm -f ./$(DEPDIR)/getpeername.Po + -rm -f ./$(DEPDIR)/getpgrp--pidns-translation.Po -rm -f ./$(DEPDIR)/getpgrp.Po + -rm -f ./$(DEPDIR)/getpid--pidns-translation.Po -rm -f ./$(DEPDIR)/getpid.Po -rm -f ./$(DEPDIR)/getppid.Po -rm -f ./$(DEPDIR)/getrandom.Po @@ -10020,30 +13265,66 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/getresuid32.Po -rm -f ./$(DEPDIR)/getrlimit.Po -rm -f ./$(DEPDIR)/getrusage.Po + -rm -f ./$(DEPDIR)/getsid--pidns-translation.Po -rm -f ./$(DEPDIR)/getsid.Po -rm -f ./$(DEPDIR)/getsockname.Po + -rm -f ./$(DEPDIR)/gettid--pidns-translation.Po -rm -f ./$(DEPDIR)/gettid.Po -rm -f ./$(DEPDIR)/getuid.Po -rm -f ./$(DEPDIR)/getuid32.Po - -rm -f ./$(DEPDIR)/getxxid.Po + -rm -f ./$(DEPDIR)/getxgid.Po + -rm -f ./$(DEPDIR)/getxpid.Po + -rm -f ./$(DEPDIR)/getxuid.Po -rm -f ./$(DEPDIR)/group_req.Po -rm -f ./$(DEPDIR)/inet-cmsg.Po -rm -f ./$(DEPDIR)/init_module.Po -rm -f ./$(DEPDIR)/inject-nf.Po -rm -f ./$(DEPDIR)/inotify.Po + -rm -f ./$(DEPDIR)/inotify_init-y.Po + -rm -f ./$(DEPDIR)/inotify_init.Po + -rm -f ./$(DEPDIR)/inotify_init1-y.Po -rm -f ./$(DEPDIR)/inotify_init1.Po -rm -f ./$(DEPDIR)/int_0x80.Po -rm -f ./$(DEPDIR)/io_uring_enter.Po -rm -f ./$(DEPDIR)/io_uring_register.Po -rm -f ./$(DEPDIR)/io_uring_setup.Po -rm -f ./$(DEPDIR)/ioctl.Po + -rm -f ./$(DEPDIR)/ioctl_block--pidns-translation.Po -rm -f ./$(DEPDIR)/ioctl_block.Po -rm -f ./$(DEPDIR)/ioctl_dm-v.Po -rm -f ./$(DEPDIR)/ioctl_dm.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-v-Xverbose.Po -rm -f ./$(DEPDIR)/ioctl_evdev-success-v.Po -rm -f ./$(DEPDIR)/ioctl_evdev-success.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-v-Xverbose.Po -rm -f ./$(DEPDIR)/ioctl_evdev-v.Po -rm -f ./$(DEPDIR)/ioctl_evdev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-v-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-v.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-v-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-v.Po + -rm -f ./$(DEPDIR)/ioctl_hdio.Po -rm -f ./$(DEPDIR)/ioctl_inotify.Po -rm -f ./$(DEPDIR)/ioctl_kvm_run-v.Po -rm -f ./$(DEPDIR)/ioctl_kvm_run.Po @@ -10064,10 +13345,28 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/ioctl_sg_io_v3.Po -rm -f ./$(DEPDIR)/ioctl_sg_io_v4.Po -rm -f ./$(DEPDIR)/ioctl_sock_gifconf.Po + -rm -f ./$(DEPDIR)/ioctl_tee.Po -rm -f ./$(DEPDIR)/ioctl_uffdio.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-v-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-v.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-v-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-v.Po -rm -f ./$(DEPDIR)/ioctl_v4l2.Po + -rm -f ./$(DEPDIR)/ioctl_watchdog.Po -rm -f ./$(DEPDIR)/ioperm.Po -rm -f ./$(DEPDIR)/iopl.Po + -rm -f ./$(DEPDIR)/ioprio--pidns-translation.Po -rm -f ./$(DEPDIR)/ioprio-Xabbrev.Po -rm -f ./$(DEPDIR)/ioprio-Xraw.Po -rm -f ./$(DEPDIR)/ioprio-Xverbose.Po @@ -10091,6 +13390,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/ipc_shm-Xverbose.Po -rm -f ./$(DEPDIR)/ipc_shm.Po -rm -f ./$(DEPDIR)/is_linux_mips_n64.Po + -rm -f ./$(DEPDIR)/kcmp-y--pidns-translation.Po -rm -f ./$(DEPDIR)/kcmp-y.Po -rm -f ./$(DEPDIR)/kcmp.Po -rm -f ./$(DEPDIR)/kern_features.Po @@ -10104,12 +13404,14 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/keyctl-Xraw.Po -rm -f ./$(DEPDIR)/keyctl-Xverbose.Po -rm -f ./$(DEPDIR)/keyctl.Po + -rm -f ./$(DEPDIR)/kill--pidns-translation.Po -rm -f ./$(DEPDIR)/kill.Po -rm -f ./$(DEPDIR)/kill_child.Po -rm -f ./$(DEPDIR)/ksysent.Po -rm -f ./$(DEPDIR)/lchown.Po -rm -f ./$(DEPDIR)/lchown32.Po -rm -f ./$(DEPDIR)/libtests_a-create_nl_socket.Po + -rm -f ./$(DEPDIR)/libtests_a-create_tmpfile.Po -rm -f ./$(DEPDIR)/libtests_a-errno2name.Po -rm -f ./$(DEPDIR)/libtests_a-error_msg.Po -rm -f ./$(DEPDIR)/libtests_a-fill_memory.Po @@ -10121,20 +13423,26 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/libtests_a-inode_of_sockfd.Po -rm -f ./$(DEPDIR)/libtests_a-libmmsg.Po -rm -f ./$(DEPDIR)/libtests_a-libsocketcall.Po + -rm -f ./$(DEPDIR)/libtests_a-lock_file.Po -rm -f ./$(DEPDIR)/libtests_a-overflowuid.Po + -rm -f ./$(DEPDIR)/libtests_a-pidns.Po -rm -f ./$(DEPDIR)/libtests_a-pipe_maxfd.Po -rm -f ./$(DEPDIR)/libtests_a-print_quoted_string.Po -rm -f ./$(DEPDIR)/libtests_a-print_time.Po -rm -f ./$(DEPDIR)/libtests_a-printflags.Po - -rm -f ./$(DEPDIR)/libtests_a-printxval.Po + -rm -f ./$(DEPDIR)/libtests_a-printxval-Xabbrev.Po + -rm -f ./$(DEPDIR)/libtests_a-printxval-Xraw.Po + -rm -f ./$(DEPDIR)/libtests_a-printxval-Xverbose.Po -rm -f ./$(DEPDIR)/libtests_a-signal2name.Po -rm -f ./$(DEPDIR)/libtests_a-skip_unavailable.Po -rm -f ./$(DEPDIR)/libtests_a-sprintrc.Po + -rm -f ./$(DEPDIR)/libtests_a-status.Po -rm -f ./$(DEPDIR)/libtests_a-tail_alloc.Po -rm -f ./$(DEPDIR)/libtests_a-test_printpath.Po -rm -f ./$(DEPDIR)/libtests_a-test_printstrn.Po -rm -f ./$(DEPDIR)/libtests_a-test_ucopy.Po -rm -f ./$(DEPDIR)/libtests_a-tprintf.Po + -rm -f ./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po -rm -f ./$(DEPDIR)/link.Po -rm -f ./$(DEPDIR)/linkat.Po -rm -f ./$(DEPDIR)/list_sigaction_signum.Po @@ -10146,12 +13454,18 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/lstat.Po -rm -f ./$(DEPDIR)/lstat64-lstat64.Po -rm -f ./$(DEPDIR)/madvise.Po + -rm -f ./$(DEPDIR)/maybe_switch_current_tcp--quiet-thread-execve.Po + -rm -f ./$(DEPDIR)/maybe_switch_current_tcp.Po + -rm -f ./$(DEPDIR)/mbind-Xabbrev.Po + -rm -f ./$(DEPDIR)/mbind-Xraw.Po + -rm -f ./$(DEPDIR)/mbind-Xverbose.Po -rm -f ./$(DEPDIR)/mbind.Po -rm -f ./$(DEPDIR)/membarrier.Po -rm -f ./$(DEPDIR)/memfd_create-Xabbrev.Po -rm -f ./$(DEPDIR)/memfd_create-Xraw.Po -rm -f ./$(DEPDIR)/memfd_create-Xverbose.Po -rm -f ./$(DEPDIR)/memfd_create.Po + -rm -f ./$(DEPDIR)/migrate_pages--pidns-translation.Po -rm -f ./$(DEPDIR)/migrate_pages.Po -rm -f ./$(DEPDIR)/mincore.Po -rm -f ./$(DEPDIR)/mkdir.Po @@ -10178,6 +13492,9 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/mount-Xraw.Po -rm -f ./$(DEPDIR)/mount-Xverbose.Po -rm -f ./$(DEPDIR)/mount.Po + -rm -f ./$(DEPDIR)/move_mount-P.Po + -rm -f ./$(DEPDIR)/move_mount.Po + -rm -f ./$(DEPDIR)/move_pages--pidns-translation.Po -rm -f ./$(DEPDIR)/move_pages-Xabbrev.Po -rm -f ./$(DEPDIR)/move_pages-Xraw.Po -rm -f ./$(DEPDIR)/move_pages-Xverbose.Po @@ -10191,12 +13508,17 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/msg_name.Po -rm -f ./$(DEPDIR)/munlockall.Po -rm -f ./$(DEPDIR)/nanosleep.Po + -rm -f ./$(DEPDIR)/net--decode-fds-dev-netlink.Po + -rm -f ./$(DEPDIR)/net--decode-fds-none-netlink.Po + -rm -f ./$(DEPDIR)/net--decode-fds-path-netlink.Po + -rm -f ./$(DEPDIR)/net--decode-fds-socket-netlink.Po -rm -f ./$(DEPDIR)/net-accept-connect.Po -rm -f ./$(DEPDIR)/net-icmp_filter.Po -rm -f ./$(DEPDIR)/net-packet_mreq-Xabbrev.Po -rm -f ./$(DEPDIR)/net-packet_mreq-Xraw.Po -rm -f ./$(DEPDIR)/net-packet_mreq-Xverbose.Po -rm -f ./$(DEPDIR)/net-packet_mreq.Po + -rm -f ./$(DEPDIR)/net-sockaddr--pidns-translation.Po -rm -f ./$(DEPDIR)/net-sockaddr.Po -rm -f ./$(DEPDIR)/net-tpacket_req.Po -rm -f ./$(DEPDIR)/net-tpacket_stats-success.Po @@ -10206,6 +13528,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/net-yy-inet6.Po -rm -f ./$(DEPDIR)/net-yy-netlink.Po -rm -f ./$(DEPDIR)/net-yy-unix.Po + -rm -f ./$(DEPDIR)/netlink_audit--pidns-translation.Po -rm -f ./$(DEPDIR)/netlink_audit.Po -rm -f ./$(DEPDIR)/netlink_crypto.Po -rm -f ./$(DEPDIR)/netlink_generic.Po @@ -10243,6 +13566,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/nlattr_ifla_brport.Po -rm -f ./$(DEPDIR)/nlattr_ifla_linkinfo.Po -rm -f ./$(DEPDIR)/nlattr_ifla_port.Po + -rm -f ./$(DEPDIR)/nlattr_ifla_xdp-y.Po -rm -f ./$(DEPDIR)/nlattr_ifla_xdp.Po -rm -f ./$(DEPDIR)/nlattr_inet_diag_msg.Po -rm -f ./$(DEPDIR)/nlattr_inet_diag_req_compat.Po @@ -10279,7 +13603,19 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/oldselect.Po -rm -f ./$(DEPDIR)/oldstat.Po -rm -f ./$(DEPDIR)/open.Po + -rm -f ./$(DEPDIR)/open_tree-P.Po + -rm -f ./$(DEPDIR)/open_tree.Po -rm -f ./$(DEPDIR)/openat.Po + -rm -f ./$(DEPDIR)/openat2-Xabbrev.Po + -rm -f ./$(DEPDIR)/openat2-Xraw.Po + -rm -f ./$(DEPDIR)/openat2-Xverbose.Po + -rm -f ./$(DEPDIR)/openat2-v-y-Xabbrev.Po + -rm -f ./$(DEPDIR)/openat2-v-y-Xraw.Po + -rm -f ./$(DEPDIR)/openat2-v-y-Xverbose.Po + -rm -f ./$(DEPDIR)/openat2-v-y.Po + -rm -f ./$(DEPDIR)/openat2-v.Po + -rm -f ./$(DEPDIR)/openat2-y.Po + -rm -f ./$(DEPDIR)/openat2.Po -rm -f ./$(DEPDIR)/orphaned_process_group.Po -rm -f ./$(DEPDIR)/osf_utimes.Po -rm -f ./$(DEPDIR)/pause.Po @@ -10291,7 +13627,20 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/personality-Xraw.Po -rm -f ./$(DEPDIR)/personality-Xverbose.Po -rm -f ./$(DEPDIR)/personality.Po + -rm -f ./$(DEPDIR)/pidfd_getfd-y.Po + -rm -f ./$(DEPDIR)/pidfd_getfd-yy.Po + -rm -f ./$(DEPDIR)/pidfd_getfd.Po + -rm -f ./$(DEPDIR)/pidfd_open--decode-fd-path.Po + -rm -f ./$(DEPDIR)/pidfd_open--decode-fd-pidfd.Po + -rm -f ./$(DEPDIR)/pidfd_open--decode-fd-socket.Po + -rm -f ./$(DEPDIR)/pidfd_open--pidns-translation.Po + -rm -f ./$(DEPDIR)/pidfd_open-P.Po + -rm -f ./$(DEPDIR)/pidfd_open-y.Po + -rm -f ./$(DEPDIR)/pidfd_open-yy.Po + -rm -f ./$(DEPDIR)/pidfd_open.Po + -rm -f ./$(DEPDIR)/pidfd_send_signal--pidns-translation.Po -rm -f ./$(DEPDIR)/pidfd_send_signal.Po + -rm -f ./$(DEPDIR)/pidns-cache.Po -rm -f ./$(DEPDIR)/pipe.Po -rm -f ./$(DEPDIR)/pipe2.Po -rm -f ./$(DEPDIR)/pkey_alloc.Po @@ -10318,6 +13667,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/preadv2-pwritev2.Po -rm -f ./$(DEPDIR)/preadv_pwritev-preadv-pwritev.Po -rm -f ./$(DEPDIR)/print_maxfd.Po + -rm -f ./$(DEPDIR)/print_ppid_tracerpid.Po -rm -f ./$(DEPDIR)/printpath-umovestr-peekdata.Po -rm -f ./$(DEPDIR)/printpath-umovestr-undumpable.Po -rm -f ./$(DEPDIR)/printpath-umovestr.Po @@ -10328,8 +13678,11 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/printstrn-umoven-peekdata.Po -rm -f ./$(DEPDIR)/printstrn-umoven-undumpable.Po -rm -f ./$(DEPDIR)/printstrn-umoven.Po + -rm -f ./$(DEPDIR)/prlimit64--pidns-translation.Po -rm -f ./$(DEPDIR)/prlimit64.Po + -rm -f ./$(DEPDIR)/process_vm_readv--pidns-translation.Po -rm -f ./$(DEPDIR)/process_vm_readv.Po + -rm -f ./$(DEPDIR)/process_vm_writev--pidns-translation.Po -rm -f ./$(DEPDIR)/process_vm_writev.Po -rm -f ./$(DEPDIR)/pselect6.Po -rm -f ./$(DEPDIR)/ptrace.Po @@ -10358,6 +13711,8 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/readlinkat.Po -rm -f ./$(DEPDIR)/readv.Po -rm -f ./$(DEPDIR)/reboot.Po + -rm -f ./$(DEPDIR)/recv-MSG_TRUNC.Po + -rm -f ./$(DEPDIR)/recvfrom-MSG_TRUNC.Po -rm -f ./$(DEPDIR)/recvfrom.Po -rm -f ./$(DEPDIR)/recvmmsg-timeout.Po -rm -f ./$(DEPDIR)/recvmsg.Po @@ -10376,10 +13731,12 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/rt_sigaction.Po -rm -f ./$(DEPDIR)/rt_sigpending.Po -rm -f ./$(DEPDIR)/rt_sigprocmask.Po + -rm -f ./$(DEPDIR)/rt_sigqueueinfo--pidns-translation.Po -rm -f ./$(DEPDIR)/rt_sigqueueinfo.Po -rm -f ./$(DEPDIR)/rt_sigreturn.Po -rm -f ./$(DEPDIR)/rt_sigsuspend.Po -rm -f ./$(DEPDIR)/rt_sigtimedwait.Po + -rm -f ./$(DEPDIR)/rt_tgsigqueueinfo--pidns-translation.Po -rm -f ./$(DEPDIR)/rt_tgsigqueueinfo.Po -rm -f ./$(DEPDIR)/run_expect_termsig.Po -rm -f ./$(DEPDIR)/s390_guarded_storage-v.Po @@ -10390,9 +13747,13 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/s390_sthyi.Po -rm -f ./$(DEPDIR)/sched_get_priority_mxx.Po -rm -f ./$(DEPDIR)/sched_rr_get_interval.Po + -rm -f ./$(DEPDIR)/sched_xetaffinity--pidns-translation.Po -rm -f ./$(DEPDIR)/sched_xetaffinity.Po + -rm -f ./$(DEPDIR)/sched_xetattr--pidns-translation.Po -rm -f ./$(DEPDIR)/sched_xetattr.Po + -rm -f ./$(DEPDIR)/sched_xetparam--pidns-translation.Po -rm -f ./$(DEPDIR)/sched_xetparam.Po + -rm -f ./$(DEPDIR)/sched_xetscheduler--pidns-translation.Po -rm -f ./$(DEPDIR)/sched_xetscheduler.Po -rm -f ./$(DEPDIR)/sched_yield.Po -rm -f ./$(DEPDIR)/scm_rights.Po @@ -10402,9 +13763,14 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/seccomp_get_action_avail.Po -rm -f ./$(DEPDIR)/select-P.Po -rm -f ./$(DEPDIR)/select.Po + -rm -f ./$(DEPDIR)/semop-indirect.Po -rm -f ./$(DEPDIR)/semop.Po + -rm -f ./$(DEPDIR)/semtimedop.Po -rm -f ./$(DEPDIR)/sendfile.Po -rm -f ./$(DEPDIR)/sendfile64.Po + -rm -f ./$(DEPDIR)/set_mempolicy-Xabbrev.Po + -rm -f ./$(DEPDIR)/set_mempolicy-Xraw.Po + -rm -f ./$(DEPDIR)/set_mempolicy-Xverbose.Po -rm -f ./$(DEPDIR)/set_mempolicy.Po -rm -f ./$(DEPDIR)/set_ptracer_any.Po -rm -f ./$(DEPDIR)/set_sigblock.Po @@ -10420,6 +13786,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/setgroups32.Po -rm -f ./$(DEPDIR)/sethostname.Po -rm -f ./$(DEPDIR)/setns.Po + -rm -f ./$(DEPDIR)/setpgrp-exec.Po -rm -f ./$(DEPDIR)/setregid.Po -rm -f ./$(DEPDIR)/setregid32.Po -rm -f ./$(DEPDIR)/setresgid.Po @@ -10440,6 +13807,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/sigaltstack.Po -rm -f ./$(DEPDIR)/siginfo.Po -rm -f ./$(DEPDIR)/signal.Po + -rm -f ./$(DEPDIR)/signal_receive--pidns-translation.Po -rm -f ./$(DEPDIR)/signal_receive.Po -rm -f ./$(DEPDIR)/signalfd4.Po -rm -f ./$(DEPDIR)/sigpending.Po @@ -10449,6 +13817,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/sleep.Po -rm -f ./$(DEPDIR)/so_error.Po -rm -f ./$(DEPDIR)/so_linger.Po + -rm -f ./$(DEPDIR)/so_peercred--pidns-translation.Po -rm -f ./$(DEPDIR)/so_peercred-Xabbrev.Po -rm -f ./$(DEPDIR)/so_peercred-Xraw.Po -rm -f ./$(DEPDIR)/so_peercred-Xverbose.Po @@ -10468,6 +13837,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/stack-fcall-1.Po -rm -f ./$(DEPDIR)/stack-fcall-2.Po -rm -f ./$(DEPDIR)/stack-fcall-3.Po + -rm -f ./$(DEPDIR)/stack-fcall-attach.Po -rm -f ./$(DEPDIR)/stack-fcall-mangled-0.Po -rm -f ./$(DEPDIR)/stack-fcall-mangled-1.Po -rm -f ./$(DEPDIR)/stack-fcall-mangled-2.Po @@ -10478,7 +13848,25 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/stat64-stat64.Po -rm -f ./$(DEPDIR)/statfs-statfs.Po -rm -f ./$(DEPDIR)/statfs64.Po + -rm -f ./$(DEPDIR)/status-all.Po + -rm -f ./$(DEPDIR)/status-failed-long.Po + -rm -f ./$(DEPDIR)/status-failed-status.Po + -rm -f ./$(DEPDIR)/status-failed.Po + -rm -f ./$(DEPDIR)/status-none-f.Po + -rm -f ./$(DEPDIR)/status-none-threads.Po + -rm -f ./$(DEPDIR)/status-none.Po + -rm -f ./$(DEPDIR)/status-successful-long.Po + -rm -f ./$(DEPDIR)/status-successful-status.Po + -rm -f ./$(DEPDIR)/status-successful.Po + -rm -f ./$(DEPDIR)/status-unfinished-threads.Po + -rm -f ./$(DEPDIR)/status-unfinished.Po -rm -f ./$(DEPDIR)/statx.Po + -rm -f ./$(DEPDIR)/strace--strings-in-hex-all.Po + -rm -f ./$(DEPDIR)/strace--strings-in-hex-non-ascii.Po + -rm -f ./$(DEPDIR)/strace--strings-in-hex.Po + -rm -f ./$(DEPDIR)/strace-n.Po + -rm -f ./$(DEPDIR)/strace-x.Po + -rm -f ./$(DEPDIR)/strace-xx.Po -rm -f ./$(DEPDIR)/swap.Po -rm -f ./$(DEPDIR)/sxetmask.Po -rm -f ./$(DEPDIR)/symlink.Po @@ -10487,8 +13875,15 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/sync_file_range.Po -rm -f ./$(DEPDIR)/sync_file_range2.Po -rm -f ./$(DEPDIR)/sysinfo.Po + -rm -f ./$(DEPDIR)/syslog-success.Po -rm -f ./$(DEPDIR)/syslog.Po -rm -f ./$(DEPDIR)/tee.Po + -rm -f ./$(DEPDIR)/tgkill--pidns-translation.Po + -rm -f ./$(DEPDIR)/tgkill.Po + -rm -f ./$(DEPDIR)/threads-execve--quiet-thread-execve.Po + -rm -f ./$(DEPDIR)/threads-execve-q.Po + -rm -f ./$(DEPDIR)/threads-execve-qq.Po + -rm -f ./$(DEPDIR)/threads-execve-qqq.Po -rm -f ./$(DEPDIR)/threads-execve.Po -rm -f ./$(DEPDIR)/time.Po -rm -f ./$(DEPDIR)/timer_create.Po @@ -10496,6 +13891,11 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/timerfd_xettime.Po -rm -f ./$(DEPDIR)/times-fail.Po -rm -f ./$(DEPDIR)/times.Po + -rm -f ./$(DEPDIR)/tkill--pidns-translation.Po + -rm -f ./$(DEPDIR)/tkill.Po + -rm -f ./$(DEPDIR)/tracer_ppid_pgid_sid.Po + -rm -f ./$(DEPDIR)/trie_test-trie_for_tests.Po + -rm -f ./$(DEPDIR)/trie_test-trie_test.Po -rm -f ./$(DEPDIR)/truncate.Po -rm -f ./$(DEPDIR)/truncate64-truncate64.Po -rm -f ./$(DEPDIR)/ugetrlimit.Po @@ -10508,6 +13908,8 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/umovestr.Po -rm -f ./$(DEPDIR)/umovestr2.Po -rm -f ./$(DEPDIR)/umovestr3.Po + -rm -f ./$(DEPDIR)/umovestr_cached.Po + -rm -f ./$(DEPDIR)/umovestr_cached_adjacent.Po -rm -f ./$(DEPDIR)/uname.Po -rm -f ./$(DEPDIR)/unblock_reset_raise.Po -rm -f ./$(DEPDIR)/unix-pair-send-recv.Po @@ -10533,10 +13935,13 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/waitpid.Po -rm -f ./$(DEPDIR)/xattr-strings.Po -rm -f ./$(DEPDIR)/xattr.Po + -rm -f ./$(DEPDIR)/xet_robust_list--pidns-translation.Po -rm -f ./$(DEPDIR)/xet_robust_list.Po -rm -f ./$(DEPDIR)/xet_thread_area_x86.Po -rm -f ./$(DEPDIR)/xetitimer.Po + -rm -f ./$(DEPDIR)/xetpgid--pidns-translation.Po -rm -f ./$(DEPDIR)/xetpgid.Po + -rm -f ./$(DEPDIR)/xetpriority--pidns-translation.Po -rm -f ./$(DEPDIR)/xetpriority.Po -rm -f ./$(DEPDIR)/xettimeofday.Po -rm -f ./$(DEPDIR)/zeroargc.Po @@ -10659,13 +14064,79 @@ $(srcdir)/clock_nanosleep.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/clock_xettime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ -$(srcdir)/copy_file_range.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in +$(srcdir)/clone3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ -$(srcdir)/creat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in +$(srcdir)/clone3-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ -$(srcdir)/delete_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in +$(srcdir)/clone3-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-success-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-success-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-success-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_parent.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_parent--quiet-exit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_parent-q.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_parent-qq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_ptrace--quiet-attach.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_ptrace--quiet-exit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_ptrace-q.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_ptrace-qq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/close_range.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/close_range-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/close_range-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/close_range-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/copy_file_range.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/creat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/delete_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dev--decode-fds-dev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dev--decode-fds-path.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dev--decode-fds-socket.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/dev-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in @@ -10674,12 +14145,39 @@ $(srcdir)/dev-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/dup.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/dup-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/dup2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/dup2-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup2-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup2-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/dup3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/dup3-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup3-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup3-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/epoll_create.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -10704,7 +14202,22 @@ $(srcdir)/execveat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/execveat-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ -$(srcdir)/faccessat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in +$(srcdir)/faccessat-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat2-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat2-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat2-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/fadvise64_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in @@ -10749,9 +14262,15 @@ $(srcdir)/fchownat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/fcntl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/fcntl--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/fcntl64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/fcntl64--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/fdatasync.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -10761,6 +14280,12 @@ $(srcdir)/file_handle.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.i $(srcdir)/file_ioctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/filter_seccomp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/filter_seccomp-flag.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/finit_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -10770,6 +14295,24 @@ $(srcdir)/flock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/fork-f.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/fsconfig.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fsconfig-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fsmount.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fsopen.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fspick.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fspick-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/fstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -10830,27 +14373,51 @@ $(srcdir)/getcwd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/getdents.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getdents-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getdents64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getdents64-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getegid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getegid-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getegid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getegid32-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/geteuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/geteuid-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/geteuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/geteuid32-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getgid-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getgid32-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getgroups.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -10863,9 +14430,15 @@ $(srcdir)/getpeername.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.i $(srcdir)/getpgrp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getpgrp--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getpid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getpid--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getppid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -10893,16 +14466,31 @@ $(srcdir)/getrusage.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/getsid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getsid--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getsockname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/gettid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getuid-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ -$(srcdir)/getxxid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in +$(srcdir)/getuid32-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/getxgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/getxpid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/getxuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/group_req.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in @@ -10917,9 +14505,15 @@ $(srcdir)/init_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.i $(srcdir)/inotify.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/inotify_init.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/inotify_init1.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/inotify_init1-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/io_uring_enter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -10941,9 +14535,96 @@ $(srcdir)/ioctl_dm-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/ioctl_evdev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_evdev-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioctl_evdev-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_evdev-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioctl_inotify.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -10977,6 +14658,9 @@ $(srcdir)/ioctl_nsfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/ioctl_perf.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_perf-success.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioctl_ptp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11001,12 +14685,63 @@ $(srcdir)/ioctl_sg_io_v4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_test $(srcdir)/ioctl_sock_gifconf.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_tee.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioctl_uffdio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/ioctl_v4l2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_v4l2-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_watchdog.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioperm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11016,6 +14751,9 @@ $(srcdir)/iopl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/ioprio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioprio--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioprio-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11082,6 +14820,9 @@ $(srcdir)/kcmp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/kcmp-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/kcmp-y--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/kern_features.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11118,6 +14859,12 @@ $(srcdir)/keyctl-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/kill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/kill--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ksysent.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/lchown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11142,9 +14889,24 @@ $(srcdir)/lstat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/madvise.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/maybe_switch_current_tcp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/maybe_switch_current_tcp--quiet-thread-execve.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/mbind.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/mbind-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/mbind-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/mbind-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/membarrier.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11163,6 +14925,9 @@ $(srcdir)/memfd_create-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/g $(srcdir)/migrate_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/migrate_pages--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/mincore.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11235,6 +15000,12 @@ $(srcdir)/mount-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/mount-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/move_mount.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/move_mount-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/move_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11247,6 +15018,9 @@ $(srcdir)/move_pages-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/move_pages-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/move_pages--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/mq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11274,6 +15048,18 @@ $(srcdir)/munlockall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/nanosleep.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/net--decode-fds-dev-netlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/net--decode-fds-none-netlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/net--decode-fds-path-netlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/net--decode-fds-socket-netlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/net-icmp_filter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11292,6 +15078,9 @@ $(srcdir)/net-packet_mreq-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir $(srcdir)/net-sockaddr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/net-sockaddr--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/net-tpacket_req.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11403,6 +15192,9 @@ $(srcdir)/nlattr_ifla_port.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_te $(srcdir)/nlattr_ifla_xdp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/nlattr_ifla_xdp-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/nlattr_inet_diag_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11502,9 +15294,45 @@ $(srcdir)/oldstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/open.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/open_tree.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/open_tree-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/openat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/openat2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v-y-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v-y-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v-y-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/orphaned_process_group.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11532,9 +15360,45 @@ $(srcdir)/personality-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_te $(srcdir)/personality-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/pidfd_getfd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_getfd-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_getfd-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open--decode-fd-path.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open--decode-fd-pidfd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open--decode-fd-socket.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/pidfd_send_signal.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/pidfd_send_signal--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/pipe2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11601,12 +15465,21 @@ $(srcdir)/printstrn-umoven-undumpable.gen.test: $(abs_srcdir)/gen_tests.sh $(src $(srcdir)/prlimit64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/prlimit64--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/process_vm_readv.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/process_vm_readv--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/process_vm_writev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/process_vm_writev--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/pselect6.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11658,9 +15531,15 @@ $(srcdir)/readlinkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/reboot.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/recv-MSG_TRUNC.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/recvfrom.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/recvfrom-MSG_TRUNC.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/recvmmsg-timeout.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11709,6 +15588,9 @@ $(srcdir)/rt_sigprocmask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_test $(srcdir)/rt_sigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/rt_sigqueueinfo--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/rt_sigreturn.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11721,6 +15603,9 @@ $(srcdir)/rt_sigtimedwait.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/rt_tgsigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/rt_tgsigqueueinfo--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/s390_guarded_storage.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11751,15 +15636,27 @@ $(srcdir)/sched_rr_get_interval.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/g $(srcdir)/sched_xetaffinity.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/sched_xetaffinity--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sched_xetattr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/sched_xetattr--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sched_xetparam.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/sched_xetparam--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sched_xetscheduler.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/sched_xetscheduler--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sched_yield.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11781,6 +15678,12 @@ $(srcdir)/select-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/semop.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/semop-indirect.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/semtimedop.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sendfile.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11790,6 +15693,15 @@ $(srcdir)/sendfile64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/set_mempolicy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/set_mempolicy-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/set_mempolicy-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/set_mempolicy-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/setdomainname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11883,6 +15795,9 @@ $(srcdir)/signal.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/signal_receive.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/signal_receive--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/signalfd4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11916,6 +15831,9 @@ $(srcdir)/so_peercred-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_te $(srcdir)/so_peercred-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/so_peercred--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sock_filter-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11961,9 +15879,147 @@ $(srcdir)/statfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/statfs64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/status-all.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-failed.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-failed-long.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-failed-status.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-none.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-successful.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-successful-long.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-successful-status.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-unfinished.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/statx.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/strace--absolute-timestamps.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time-precision-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time-precision-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time-precision-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time-precision-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-unix-precision-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-unix-precision-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-unix-precision-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-unix-precision-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--follow-forks-output-separately.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--strings-in-hex.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--strings-in-hex-all.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--strings-in-hex-non-ascii.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-unix-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-unix-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-unix-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-unix-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace-n.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace-x.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace-xx.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/swap.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11994,6 +16050,24 @@ $(srcdir)/syslog.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/tee.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/tgkill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/tgkill--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/threads-execve--quiet-thread-execve.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/threads-execve-q.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/threads-execve-qq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/threads-execve-qqq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/time.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -12012,6 +16086,18 @@ $(srcdir)/times.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/times-fail.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/tkill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/tkill--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/trace_clock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/trace_creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/trace_fstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -12054,6 +16140,9 @@ $(srcdir)/trace_statfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests. $(srcdir)/trace_statfs_like.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/trie_test.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/truncate.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -12075,6 +16164,9 @@ $(srcdir)/umovestr-illptr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/umovestr3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/umovestr_cached_adjacent.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/unlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -12141,15 +16233,24 @@ $(srcdir)/xattr-strings.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests $(srcdir)/xet_robust_list.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/xet_robust_list--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/xetitimer.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/xetpgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/xetpgid--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/xetpriority.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/xetpriority--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/xettimeofday.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ diff --git a/tests-m32/_newselect.c b/tests-m32/_newselect.c index bfba2edb..d4553341 100644 --- a/tests-m32/_newselect.c +++ b/tests-m32/_newselect.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR__newselect diff --git a/tests-m32/accept.c b/tests-m32/accept.c index df5dee80..6ba19a45 100644 --- a/tests-m32/accept.c +++ b/tests-m32/accept.c @@ -2,7 +2,7 @@ * Check decoding of accept syscall. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,7 +12,7 @@ #include -#include +#include "scno.h" #if defined __NR_accept diff --git a/tests-m32/accept_compat.h b/tests-m32/accept_compat.h index 0fbdc690..fb010a19 100644 --- a/tests-m32/accept_compat.h +++ b/tests-m32/accept_compat.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ # include # include -# include +# include "scno.h" # if defined __NR_socketcall && defined __sparc__ /* diff --git a/tests-m32/access.c b/tests-m32/access.c index cbdde6a2..8bdbb626 100644 --- a/tests-m32/access.c +++ b/tests-m32/access.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_access diff --git a/tests-m32/access.gen.test b/tests-m32/access.gen.test index 7d80e6f8..adcf5ca5 100755 --- a/tests-m32/access.gen.test +++ b/tests-m32/access.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (access -a30 -P access_sample); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (access -a30 --trace-path=access_sample); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a30 -P access_sample +run_strace_match_diff -a30 --trace-path=access_sample diff --git a/tests-m32/acct.c b/tests-m32/acct.c index 2127df60..16b67cbc 100644 --- a/tests-m32/acct.c +++ b/tests-m32/acct.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_acct diff --git a/tests-m32/add_key.c b/tests-m32/add_key.c index c1014927..20163274 100644 --- a/tests-m32/add_key.c +++ b/tests-m32/add_key.c @@ -2,14 +2,13 @@ * Check decoding of add_key syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_add_key diff --git a/tests-m32/adjtimex.c b/tests-m32/adjtimex.c index 87d3acdc..3b88d04e 100644 --- a/tests-m32/adjtimex.c +++ b/tests-m32/adjtimex.c @@ -8,26 +8,45 @@ */ #include "tests.h" -#include -#include -#include -#include -#include +#include "scno.h" -#include "xlat.h" -#include "xlat/adjtimex_state.h" -#include "xlat/adjtimex_status.h" +#ifdef __NR_adjtimex + +# include +# include +# include +# include +# include +# include + +# include "kernel_old_timex.h" + +# include "xlat.h" +# include "xlat/adjtimex_state.h" +# include "xlat/adjtimex_status.h" + +static const char *errstr; + +static long +k_adjtimex(void *const buf) +{ + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = (uintptr_t) buf; + const long rc = syscall(__NR_adjtimex, arg1, bad, bad, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} int main(void) { - int state = adjtimex(NULL); - printf("adjtimex(NULL) = %s\n", sprintrc(state)); + int state = k_adjtimex(NULL); + printf("adjtimex(NULL) = %s\n", errstr); - TAIL_ALLOC_OBJECT_CONST_PTR(struct timex, tx); + TAIL_ALLOC_OBJECT_CONST_PTR(kernel_old_timex_t, tx); memset(tx, 0, sizeof(*tx)); - state = adjtimex(tx); + state = k_adjtimex(tx); if (state < 0) perror_msg_and_skip("adjtimex"); @@ -60,11 +79,7 @@ main(void) (intmax_t) tx->calcnt, (intmax_t) tx->errcnt, (intmax_t) tx->stbcnt, -#ifdef HAVE_STRUCT_TIMEX_TAI tx->tai, -#else - *(const int *)((const void *) tx + offsetofend(struct timex, stbcnt)), -#endif state); printxval(adjtimex_state, (unsigned int) state, NULL); puts(")"); @@ -72,3 +87,9 @@ main(void) puts("+++ exited with 0 +++"); return 0; } + +#else + +SKIP_MAIN_UNDEFINED("__NR_adjtimex") + +#endif diff --git a/tests-m32/aio.c b/tests-m32/aio.c index 13821998..f8c2f861 100644 --- a/tests-m32/aio.c +++ b/tests-m32/aio.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,7 +12,7 @@ #include #include #include -#include +#include "scno.h" #if defined __NR_io_setup \ && defined __NR_io_submit \ @@ -117,7 +117,7 @@ main(void) /* In order to make record valid */ .aio_nbytes = (size_t) 0x1020304050607080ULL, .aio_offset = 0xdeadda7abadc0dedULL, -# ifdef IOCB_FLAG_RESFD +# ifdef HAVE_STRUCT_IOCB_AIO_FLAGS .aio_flags = 0xfacef157, .aio_resfd = 0xded1ca7e, # endif @@ -298,30 +298,31 @@ main(void) printf("io_submit(%#lx, %ld, [" "{aio_data=%#" PRI__x64 ", aio_key=%u" ", aio_lio_opcode=%hu /* IOCB_CMD_??? */, aio_fildes=%d}" - ", {aio_key=%u, aio_lio_opcode=IOCB_CMD_PWRITE, aio_reqprio=%hd" - ", aio_fildes=%d, aio_buf=NULL" + ", {aio_data=0, aio_key=%u, aio_lio_opcode=IOCB_CMD_PWRITE" + ", aio_reqprio=IOPRIO_PRIO_VALUE(0x5 /* IOPRIO_CLASS_??? */" + ", 7919), aio_fildes=%d, aio_buf=NULL" ", aio_nbytes=%" PRI__u64 ", aio_offset=%" PRI__d64 -# ifdef IOCB_FLAG_RESFD - ", aio_resfd=%d, aio_flags=%#x" +# ifdef HAVE_STRUCT_IOCB_AIO_FLAGS + ", aio_flags=IOCB_FLAG_RESFD|IOCB_FLAG_IOPRIO|%#x, aio_resfd=%d" # endif - "}, {aio_key=%u, aio_lio_opcode=IOCB_CMD_PWRITE" + "}, {aio_data=0, aio_key=%u, aio_lio_opcode=IOCB_CMD_PWRITE" ", aio_reqprio=%hd, aio_fildes=%d, aio_buf=%#" PRI__x64 ", aio_nbytes=%" PRI__u64 ", aio_offset=%" PRI__d64 - "}, {aio_key=%u, aio_lio_opcode=IOCB_CMD_PWRITE" + "}, {aio_data=0, aio_key=%u, aio_lio_opcode=IOCB_CMD_PWRITE" ", aio_reqprio=%hd, aio_fildes=%d" ", aio_buf=\"\\0\\1\\2\\3%.28s\"..." ", aio_nbytes=%" PRI__u64 ", aio_offset=%" PRI__d64 - "}, {aio_key=%u, aio_lio_opcode=IOCB_CMD_PWRITEV" + "}, {aio_data=0, aio_key=%u, aio_lio_opcode=IOCB_CMD_PWRITEV" ", aio_reqprio=%hd, aio_fildes=%d, aio_buf=%#" PRI__x64 ", aio_nbytes=%" PRI__u64 ", aio_offset=%" PRI__d64 "}, NULL, %#lx, ... /* %p */]) = ", *ctx, 1057L, cbv2[0].aio_data, cbv2[0].aio_key, cbv2[0].aio_lio_opcode, cbv2[0].aio_fildes, - cbv2[1].aio_key, cbv2[1].aio_reqprio, cbv2[1].aio_fildes, + cbv2[1].aio_key, cbv2[1].aio_fildes, cbv2[1].aio_nbytes, cbv2[1].aio_offset, -# ifdef IOCB_FLAG_RESFD - cbv2[1].aio_resfd, cbv2[1].aio_flags, +# ifdef HAVE_STRUCT_IOCB_AIO_FLAGS + cbv2[1].aio_flags & ~3, cbv2[1].aio_resfd, # endif cbv2[2].aio_key, cbv2[2].aio_reqprio, cbv2[2].aio_fildes, cbv2[2].aio_buf, cbv2[2].aio_nbytes, cbv2[2].aio_offset, diff --git a/tests-m32/aio_pgetevents.c b/tests-m32/aio_pgetevents.c index 8bea0b7b..f82f690a 100644 --- a/tests-m32/aio_pgetevents.c +++ b/tests-m32/aio_pgetevents.c @@ -2,7 +2,7 @@ * Check decoding of io_pgetevents syscall. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,6 @@ #include "tests.h" #include -#include #include "scno.h" #if defined __NR_io_setup && defined __NR_io_pgetevents diff --git a/tests-m32/alarm.c b/tests-m32/alarm.c index 35404535..4411e114 100644 --- a/tests-m32/alarm.c +++ b/tests-m32/alarm.c @@ -2,13 +2,14 @@ * This file is part of alarm strace test. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_alarm @@ -18,8 +19,8 @@ int main(void) { - int rc = syscall(__NR_alarm, (unsigned long) 0xffffffff0000002aULL); - printf("alarm(%u) = %d\n", 42, rc); + const unsigned long arg = (unsigned long) 0xffffffff0000002aULL; + printf("alarm(%u) = %s\n", 42, sprintrc(syscall(__NR_alarm, arg))); puts("+++ exited with 0 +++"); return 0; diff --git a/tests-m32/answer.c b/tests-m32/answer.c index a69adc39..dcea6f1d 100644 --- a/tests-m32/answer.c +++ b/tests-m32/answer.c @@ -2,6 +2,7 @@ * Check decoding of fault injected exit_group syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,7 +10,7 @@ #include "tests.h" #include -#include +#include "scno.h" int main(void) diff --git a/tests-m32/attach-f-p.c b/tests-m32/attach-f-p.c index 3b7aed85..4ee6714e 100644 --- a/tests-m32/attach-f-p.c +++ b/tests-m32/attach-f-p.c @@ -2,6 +2,7 @@ * This file is part of attach-f-p strace test. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -14,7 +15,7 @@ #include #include #include -#include +#include "scno.h" #include #define N 3 diff --git a/tests-m32/bexecve.test b/tests-m32/bexecve.test index 7a135871..c25235cd 100755 --- a/tests-m32/bexecve.test +++ b/tests-m32/bexecve.test @@ -3,7 +3,7 @@ # Check -bexecve behavior. # # Copyright (c) 2015 Dmitry V. Levin -# Copyright (c) 2015-2018 The strace developers. +# Copyright (c) 2015-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -16,23 +16,36 @@ run_strace_redir() $STRACE "$@" 2> "$LOG" } -run_strace_redir -enone ../set_ptracer_any true || +run_strace_redir --quiet=personality -enone ../set_ptracer_any true || dump_log_and_fail_with "$STRACE $args: unexpected exit status" -run_strace_redir -enone ../set_ptracer_any false +run_strace_redir --quiet=personality -enone ../set_ptracer_any false [ $? -eq 1 ] || dump_log_and_fail_with "$STRACE $args: unexpected exit status" -run_strace_redir -bexecve -enone ../set_ptracer_any false || +run_strace_redir --quiet=personality -bexecve -enone ../set_ptracer_any false || dump_log_and_fail_with "$STRACE $args: unexpected exit status" pattern_detached='[^:]*strace: Process [1-9][0-9]* detached' -pattern_personality='[^:]*strace: \[ Process PID=[1-9][0-9]* runs in .* mode. \]' LC_ALL=C grep -x "$pattern_detached" "$LOG" > /dev/null || dump_log_and_fail_with "$STRACE $args: output mismatch" -if LC_ALL=C grep -E -v -x "($pattern_detached|$pattern_personality)" "$LOG" > /dev/null; then +if LC_ALL=C grep -E -v -x "$pattern_detached" "$LOG" > /dev/null; then + dump_log_and_fail_with "$STRACE $args: unexpected output" +fi + +run_strace_redir --quiet=personality --seccomp-bpf -bexecve -enone ../set_ptracer_any false || + dump_log_and_fail_with "$STRACE $args: unexpected exit status" + +pattern_seccomp='[^:]*strace: --seccomp-bpf is not enabled because it is not compatible with -b' + +LC_ALL=C grep -x "$pattern_detached" "$LOG" > /dev/null && +LC_ALL=C grep -x "$pattern_seccomp" "$LOG" > /dev/null || + dump_log_and_fail_with "$STRACE $args: output mismatch" + +pattern_all="$pattern_detached|$pattern_seccomp" +if LC_ALL=C grep -E -v -x "$pattern_all" "$LOG" > /dev/null; then dump_log_and_fail_with "$STRACE $args: unexpected output" fi diff --git a/tests-m32/block_reset_run.c b/tests-m32/block_reset_run.c new file mode 100644 index 00000000..cba77bf3 --- /dev/null +++ b/tests-m32/block_reset_run.c @@ -0,0 +1,33 @@ +/* + * Execute the specified command with a blocked default signal handler. + * + * Copyright (c) 2017-2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include +#include + +int +main(int ac, char **av) +{ + if (ac < 3) + error_msg_and_fail("usage: block_reset_run signo path..."); + + sigset_t mask; + sigemptyset(&mask); + const int signo = atoi(av[1]); + if (sigaddset(&mask, signo)) + perror_msg_and_fail("sigaddset: %s", av[1]); + if (sigprocmask(SIG_BLOCK, &mask, NULL)) + perror_msg_and_fail("sigprocmask"); + if (signal(signo, SIG_DFL) == SIG_ERR) + perror_msg_and_fail("signal: %s", av[1]); + + execvp(av[2], av + 2); + perror_msg_and_fail("execvp: %s", av[2]); +} diff --git a/tests-m32/bpf-obj_get_info_by_fd.c b/tests-m32/bpf-obj_get_info_by_fd.c index 3e18591d..9428692e 100644 --- a/tests-m32/bpf-obj_get_info_by_fd.c +++ b/tests-m32/bpf-obj_get_info_by_fd.c @@ -1,7 +1,7 @@ /* * Check bpf(BPF_OBJ_GET_INFO_BY_FD) decoding. * - * Copyright (c) 2018-2019 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -21,7 +21,6 @@ #include #include #include -#include #include "print_fields.h" #include "scno.h" @@ -88,6 +87,10 @@ print_map_create(void *attr_void, size_t size, long rc) printf(", btf_fd=0" ", btf_key_type_id=0, btf_value_type_id=0"); } + if (size > offsetof(struct BPF_MAP_CREATE_struct, + btf_vmlinux_value_type_id)) { + printf(", btf_vmlinux_value_type_id=0"); + } printf("}, %zu) = ", size); if (rc >= 0) printf("%ld\n", rc); @@ -206,6 +209,10 @@ print_prog_load(void *attr_void, size_t size, long rc) printf(", line_info=NULL"); if (size > offsetof(struct BPF_PROG_LOAD_struct, line_info_cnt)) printf(", line_info_cnt=0"); + if (size > offsetof(struct BPF_PROG_LOAD_struct, attach_btf_id)) + printf(", attach_btf_id=0"); + if (size > offsetof(struct BPF_PROG_LOAD_struct, attach_prog_fd)) + printf(", attach_prog_fd=0"); printf("}, %zu) = ", size); if (rc >= 0) printf("%ld\n", rc); @@ -232,8 +239,26 @@ try_bpf(kernel_ulong_t cmd, void (*printer)(void *attr, size_t size, long rc), } int -main(void) +main(int ac, char **av) { + /* + * There is a delay when the locked memory is being reclaimed + * after a BPF program or map is removed. + * + * Privileged tools like iproute2 and bpftool workaround this + * by raising RLIMIT_MEMLOCK to infinity prior to creating + * BPF objects. + * + * This test is expected to be invoked without extra privileges + * and therefore does not have this option. + * + * The approach taken by this test is serialize all invocations + * and insert a delay long enough to let the locked memory be + * reclaimed. + */ + lock_file_by_dirname(av[0], "bpf-obj_get_info_by_fd"); + sleep(1); + struct BPF_MAP_CREATE_struct bpf_map_create_attr = { .map_type = BPF_MAP_TYPE_ARRAY, .key_size = 4, @@ -260,7 +285,7 @@ main(void) .prog_name = "test_prog", }; size_t bpf_prog_load_attr_sizes[] = { - sizeof(bpf_prog_load_attr), + BPF_PROG_LOAD_struct_size, offsetofend(struct BPF_PROG_LOAD_struct, prog_name), offsetofend(struct BPF_PROG_LOAD_struct, prog_flags), offsetofend(struct BPF_PROG_LOAD_struct, kern_version), @@ -331,6 +356,10 @@ main(void) if (bpf_map_get_info_attr.info_len > offsetof(struct bpf_map_info_struct, ifindex)) printf(", ifindex=%u", map_info->ifindex); + if (bpf_map_get_info_attr.info_len > + offsetof(struct bpf_map_info_struct, btf_vmlinux_value_type_id)) + printf(", btf_vmlinux_value_type_id=%u", + map_info->btf_vmlinux_value_type_id); if (bpf_map_get_info_attr.info_len > offsetof(struct bpf_map_info_struct, netns_dev)) printf(", netns_dev=makedev(%#x, %#x)", diff --git a/tests-m32/bpf-success-long-y.c b/tests-m32/bpf-success-long-y.c new file mode 100644 index 00000000..d0e9b2a9 --- /dev/null +++ b/tests-m32/bpf-success-long-y.c @@ -0,0 +1,3 @@ +#define INJECT_RETVAL ((long) 0xbadc0de1e55beefULL) +#define FD0_PATH "" +#include "bpf.c" diff --git a/tests-m32/bpf-success-long-y.test b/tests-m32/bpf-success-long-y.test new file mode 100755 index 00000000..5ed7e854 --- /dev/null +++ b/tests-m32/bpf-success-long-y.test @@ -0,0 +1,16 @@ +:#!/bin/sh -efu +# +# Copyright (c) 2018-2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/scno_tampering.sh" + +case "$SIZEOF_LONG" in + 4) rval=508935919;; + 8) rval=841540765612359407;; +esac + +run_strace -a20 -y -e trace=bpf -e inject=bpf:retval="${rval}" ../bpf-success-long-y < /dev/full > "$EXP" +match_diff "$LOG" "$EXP" diff --git a/tests-m32/bpf.c b/tests-m32/bpf.c index fd29ab44..4f58ca29 100644 --- a/tests-m32/bpf.c +++ b/tests-m32/bpf.c @@ -2,7 +2,7 @@ * Check bpf syscall decoding. * * Copyright (c) 2015-2017 Dmitry V. Levin - * Copyright (c) 2015-2019 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -16,7 +16,6 @@ #include #include -#include #include "scno.h" #ifdef HAVE_LINUX_BPF_H @@ -28,6 +27,8 @@ #include "xlat.h" #include "xlat/bpf_commands.h" +#include "xlat/bpf_map_types.h" +#include "xlat/bpf_prog_types.h" #if defined MPERS_IS_m32 || SIZEOF_KERNEL_LONG_T > 4 # define BIG_ADDR(addr64_, addr32_) addr64_ @@ -42,6 +43,10 @@ # define BIG_ADDR_MAYBE(addr_) #endif +#ifndef FD0_PATH +# define FD0_PATH "" +#endif + #ifndef HAVE_STRUCT_BPF_INSN struct bpf_insn { uint8_t code; @@ -74,6 +79,12 @@ union bpf_attr_data { BPF_ATTR_DATA_FIELD(BPF_BTF_LOAD); BPF_ATTR_DATA_FIELD(BPF_BTF_GET_FD_BY_ID); BPF_ATTR_DATA_FIELD(BPF_TASK_FD_QUERY); + BPF_ATTR_DATA_FIELD(BPF_MAP_FREEZE); + BPF_ATTR_DATA_FIELD(BPF_MAP_LOOKUP_BATCH); + BPF_ATTR_DATA_FIELD(BPF_MAP_UPDATE_BATCH); + BPF_ATTR_DATA_FIELD(BPF_MAP_DELETE_BATCH); + BPF_ATTR_DATA_FIELD(BPF_LINK_CREATE); + BPF_ATTR_DATA_FIELD(BPF_LINK_UPDATE); char char_data[256]; }; @@ -108,8 +119,8 @@ sys_bpf(kernel_ulong_t cmd, kernel_ulong_t attr, kernel_ulong_t size) #ifdef INJECT_RETVAL if (rc != INJECT_RETVAL) - error_msg_and_fail("Got a return value of %ld != %d", - rc, INJECT_RETVAL); + error_msg_and_fail("Got a return value of %ld != %ld", + rc, (long) INJECT_RETVAL); static char inj_errstr[4096]; @@ -250,6 +261,8 @@ init_BPF_MAP_CREATE_attr7(struct bpf_attr_check *check) attr->map_ifindex = ifindex_lo(); } +static_assert(ARRAY_SIZE(bpf_map_types_xdata) == 28, + "The map_type for tests 1 and 2 below needs to be updated"); static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { { .data = { .BPF_MAP_CREATE_data = { .map_type = 2 } }, @@ -259,7 +272,7 @@ static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { }, { /* 1 */ .data = { .BPF_MAP_CREATE_data = { - .map_type = 20, + .map_type = 27, .key_size = 4, .value_size = 8, .max_entries = 256, @@ -269,7 +282,7 @@ static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { .map_name = "0123456789abcde", } }, .size = offsetof(struct BPF_MAP_CREATE_struct, map_name) + 8, - .str = "map_type=BPF_MAP_TYPE_REUSEPORT_SOCKARRAY, key_size=4" + .str = "map_type=BPF_MAP_TYPE_RINGBUF, key_size=4" ", value_size=8, max_entries=256" ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NO_COMMON_LRU" "|BPF_F_NUMA_NODE|BPF_F_RDONLY|BPF_F_WRONLY" @@ -281,21 +294,21 @@ static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { }, { /* 2 */ .data = { .BPF_MAP_CREATE_data = { - .map_type = 24, + .map_type = 28, .key_size = 0xface1e55, .value_size = 0xbadc0ded, .max_entries = 0xbeefcafe, - .map_flags = 0xffffff80, + .map_flags = 0xfffff800, .inner_map_fd = 2718281828, .numa_node = -1, .map_name = "", .map_ifindex = 3141592653, } }, .size = offsetofend(struct BPF_MAP_CREATE_struct, map_ifindex), - .str = "map_type=0x18 /* BPF_MAP_TYPE_??? */" + .str = "map_type=0x1c /* BPF_MAP_TYPE_??? */" ", key_size=4207812181, value_size=3134983661" ", max_entries=3203386110" - ", map_flags=0xffffff80 /* BPF_F_??? */" + ", map_flags=0xfffff800 /* BPF_F_??? */" ", inner_map_fd=-1576685468" ", map_name=\"\", map_ifindex=3141592653", @@ -316,7 +329,8 @@ static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { ", max_entries=3203386110" ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE" "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID" - "|0xc0dede80", + "|BPF_F_RDONLY_PROG|BPF_F_CLONE" + "|BPF_F_MMAPABLE|0xc0ded800", }, { /* 4 */ .data = { .BPF_MAP_CREATE_data = { @@ -334,7 +348,8 @@ static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { ", max_entries=3203386110" ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE" "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID" - "|0xc0dede80" + "|BPF_F_RDONLY_PROG|BPF_F_CLONE" + "|BPF_F_MMAPABLE|0xc0ded800" ", inner_map_fd=-1576685468", }, { /* 5 */ @@ -353,7 +368,8 @@ static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { ", max_entries=3203386110" ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE" "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID" - "|0xc0dede80" + "|BPF_F_RDONLY_PROG|BPF_F_CLONE" + "|BPF_F_MMAPABLE|0xc0ded800" ", inner_map_fd=-1576685468" ", numa_node=4294967295 /* NUMA_NO_NODE */", }, @@ -374,7 +390,8 @@ static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { ", max_entries=3203386110" ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE" "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID" - "|0xc0dede80" + "|BPF_F_RDONLY_PROG|BPF_F_CLONE" + "|BPF_F_MMAPABLE|0xc0ded800" ", inner_map_fd=-1576685468" ", numa_node=4294967295 /* NUMA_NO_NODE */" ", map_name=\"fedcba987654321\"...", @@ -396,7 +413,8 @@ static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { ", max_entries=3203386110" ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE" "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID" - "|0xc0dede80" + "|BPF_F_RDONLY_PROG|BPF_F_CLONE" + "|BPF_F_MMAPABLE|0xc0ded800" ", inner_map_fd=-1576685468" ", numa_node=4294967295 /* NUMA_NO_NODE */" ", map_name=\"0123456789abcde\"" @@ -416,12 +434,34 @@ static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { ", value_size=0" ", max_entries=0" ", map_flags=0" - ", inner_map_fd=0" + ", inner_map_fd=0" FD0_PATH + ", map_name=\"\"" + ", map_ifindex=0" + ", btf_fd=-1159983635" + ", btf_key_type_id=4207869677" + ", btf_value_type_id=3405705229" + }, + { /* 9 */ + .data = { .BPF_MAP_CREATE_data = { + .btf_fd = 0xbadc0ded, + .btf_key_type_id = 0xfacefeed, + .btf_value_type_id = 0xcafef00d, + .btf_vmlinux_value_type_id = 0xdeadc0de, + } }, + .size = offsetofend(struct BPF_MAP_CREATE_struct, + btf_vmlinux_value_type_id), + .str = "map_type=BPF_MAP_TYPE_UNSPEC" + ", key_size=0" + ", value_size=0" + ", max_entries=0" + ", map_flags=0" + ", inner_map_fd=0" FD0_PATH ", map_name=\"\"" ", map_ifindex=0" ", btf_fd=-1159983635" ", btf_key_type_id=4207869677" ", btf_value_type_id=3405705229" + ", btf_vmlinux_value_type_id=3735929054" }, }; @@ -435,10 +475,12 @@ static const struct bpf_attr_check BPF_MAP_LOOKUP_ELEM_checks[] = { .data = { .BPF_MAP_LOOKUP_ELEM_data = { .map_fd = -1, .key = 0xdeadbeef, - .value = 0xbadc0ded + .value = 0xbadc0ded, + .flags = 4 } }, - .size = offsetofend(struct BPF_MAP_LOOKUP_ELEM_struct, value), + .size = offsetofend(struct BPF_MAP_LOOKUP_ELEM_struct, flags), .str = "map_fd=-1, key=0xdeadbeef, value=0xbadc0ded" + ", flags=BPF_F_LOCK" } }; @@ -496,6 +538,14 @@ static const struct bpf_attr_check BPF_MAP_GET_NEXT_KEY_checks[] = { } }; +static const struct bpf_attr_check BPF_MAP_FREEZE_checks[] = { + { + .data = { .BPF_MAP_FREEZE_data = { .map_fd = -1 } }, + .size = offsetofend(struct BPF_MAP_FREEZE_struct, map_fd), + .str = "map_fd=-1" + } +}; + static const struct bpf_insn insns[] = { { .code = 0x95, @@ -556,7 +606,7 @@ print_BPF_PROG_LOAD_attr3(const struct bpf_attr_check *check, unsigned long addr ", insns=" INSNS_FMT ", license=\"%s\", log_level=2718281828" ", log_size=%u, log_buf=%p" ", kern_version=KERNEL_VERSION(51966, 240, 13)" - ", prog_flags=0x4 /* BPF_F_??? */" + ", prog_flags=0x10 /* BPF_F_??? */" ", prog_name=\"0123456789abcde\"..., prog_ifindex=3203399405", (unsigned int) ARRAY_SIZE(insns), INSNS_ARG, license, log_buf_size, get_log_buf_tail()); @@ -582,13 +632,16 @@ print_BPF_PROG_LOAD_attr4(const struct bpf_attr_check *check, unsigned long addr ", license=\"%s\", log_level=2718281828, log_size=4" ", log_buf=\"log \"..." ", kern_version=KERNEL_VERSION(51966, 240, 13)" - ", prog_flags=BPF_F_STRICT_ALIGNMENT|BPF_F_ANY_ALIGNMENT|0x4" + ", prog_flags=BPF_F_STRICT_ALIGNMENT|BPF_F_ANY_ALIGNMENT" + "|BPF_F_TEST_RND_HI32|BPF_F_TEST_STATE_FREQ|0x10" ", prog_name=\"0123456789abcde\"..., prog_ifindex=%s" ", expected_attach_type=BPF_CGROUP_INET6_BIND", (unsigned int) ARRAY_SIZE(insns), INSNS_ARG, license, IFINDEX_LO_STR); } +static_assert(ARRAY_SIZE(bpf_prog_types_xdata) == 31, + "The prog_type for test 5 below needs to be updated"); static struct bpf_attr_check BPF_PROG_LOAD_checks[] = { { .data = { .BPF_PROG_LOAD_data = { .prog_type = 1 } }, @@ -598,7 +651,7 @@ static struct bpf_attr_check BPF_PROG_LOAD_checks[] = { }, { /* 1 */ .data = { .BPF_PROG_LOAD_data = { - .prog_type = 22, + .prog_type = 31, .insn_cnt = 0xbadc0ded, .insns = 0, .license = 0, @@ -609,7 +662,7 @@ static struct bpf_attr_check BPF_PROG_LOAD_checks[] = { .prog_flags = 0, } }, .size = offsetofend(struct BPF_PROG_LOAD_struct, prog_flags), - .str = "prog_type=0x16 /* BPF_PROG_TYPE_??? */" + .str = "prog_type=0x1f /* BPF_PROG_TYPE_??? */" ", insn_cnt=3134983661, insns=NULL, license=NULL" ", log_level=42, log_size=3141592653, log_buf=NULL" ", kern_version=KERNEL_VERSION(51966, 240, 13)" @@ -629,7 +682,7 @@ static struct bpf_attr_check BPF_PROG_LOAD_checks[] = { .prog_name = "fedcba987654321", } }, .size = offsetofend(struct BPF_PROG_LOAD_struct, prog_name), - .str = "prog_type=BPF_PROG_TYPE_SK_REUSEPORT" + .str = "prog_type=BPF_PROG_TYPE_LIRC_MODE2" ", insn_cnt=3134983661" ", insns=" BIG_ADDR("0xffffffff00000000", "NULL") ", license=" BIG_ADDR("0xffffffff00000000", "NULL") @@ -646,7 +699,7 @@ static struct bpf_attr_check BPF_PROG_LOAD_checks[] = { .log_level = 2718281828U, .log_size = log_buf_size, .kern_version = 0xcafef00d, - .prog_flags = 4, + .prog_flags = 16, .prog_name = "0123456789abcdef", .prog_ifindex = 0xbeeffeed, } }, @@ -661,7 +714,7 @@ static struct bpf_attr_check BPF_PROG_LOAD_checks[] = { .log_level = 2718281828U, .log_size = 4, .kern_version = 0xcafef00d, - .prog_flags = 7, + .prog_flags = 0x1f, .prog_name = "0123456789abcdef", .expected_attach_type = 9, } }, @@ -671,6 +724,30 @@ static struct bpf_attr_check BPF_PROG_LOAD_checks[] = { .print_fn = print_BPF_PROG_LOAD_attr4 }, { /* 5 */ + .data = { .BPF_PROG_LOAD_data = { + .prog_type = 30, + .insn_cnt = 0xbadc0ded, + .insns = 0xffffffff00000000, + .license = 0xffffffff00000000, + .log_level = 2718281828U, + .log_size = log_buf_size, + .log_buf = 0xffffffff00000000, + .kern_version = 0xcafef00d, + .prog_flags = 1, + .prog_name = "fedcba987654321", + } }, + .size = offsetofend(struct BPF_PROG_LOAD_struct, prog_name), + .str = "prog_type=BPF_PROG_TYPE_SK_LOOKUP" + ", insn_cnt=3134983661" + ", insns=" BIG_ADDR("0xffffffff00000000", "NULL") + ", license=" BIG_ADDR("0xffffffff00000000", "NULL") + ", log_level=2718281828, log_size=4096" + ", log_buf=" BIG_ADDR("0xffffffff00000000", "NULL") + ", kern_version=KERNEL_VERSION(51966, 240, 13)" + ", prog_flags=BPF_F_STRICT_ALIGNMENT" + ", prog_name=\"fedcba987654321\"", + }, + { /* 6 */ .data = { .BPF_PROG_LOAD_data = { .prog_flags = 2, .expected_attach_type = 17, @@ -680,10 +757,12 @@ static struct bpf_attr_check BPF_PROG_LOAD_checks[] = { .func_info_cnt = 0xdad3bef4, .line_info_rec_size = 0xdad5bef6, .line_info = 0xfac5fed5fac7fed8, - .line_info_cnt = 0xdad7bef8 + .line_info_cnt = 0xdad7bef8, + .attach_btf_id = 0xdad7befa, + .attach_prog_fd = 0xbadc0def, } }, .size = offsetofend(struct BPF_PROG_LOAD_struct, - line_info_cnt), + attach_prog_fd), .str = "prog_type=BPF_PROG_TYPE_UNSPEC" ", insn_cnt=0" ", insns=NULL" @@ -703,6 +782,8 @@ static struct bpf_attr_check BPF_PROG_LOAD_checks[] = { ", line_info_rec_size=3671441142" ", line_info=0xfac5fed5fac7fed8" ", line_info_cnt=3671572216" + ", attach_btf_id=3671572218" + ", attach_prog_fd=-1159983633" }, }; @@ -717,7 +798,7 @@ static struct bpf_attr_check BPF_OBJ_PIN_checks[] = { { .data = { .BPF_OBJ_PIN_data = { .pathname = 0 } }, .size = offsetofend(struct BPF_OBJ_PIN_struct, pathname), - .str = "pathname=NULL, bpf_fd=0" + .str = "pathname=NULL, bpf_fd=0" FD0_PATH }, { .data = { .BPF_OBJ_PIN_data = { @@ -725,7 +806,7 @@ static struct bpf_attr_check BPF_OBJ_PIN_checks[] = { } }, .size = offsetofend(struct BPF_OBJ_PIN_struct, pathname), .str = "pathname=" BIG_ADDR("0xffffffffffffffff", "0xffffffff") - ", bpf_fd=0", + ", bpf_fd=0" FD0_PATH, }, { .data = { .BPF_OBJ_PIN_data = { .bpf_fd = -1 } }, @@ -751,7 +832,7 @@ static const struct bpf_attr_check BPF_PROG_ATTACH_checks[] = { { .data = { .BPF_PROG_ATTACH_data = { .target_fd = -1 } }, .size = offsetofend(struct BPF_PROG_ATTACH_struct, target_fd), - .str = "target_fd=-1, attach_bpf_fd=0" + .str = "target_fd=-1, attach_bpf_fd=0" FD0_PATH ", attach_type=BPF_CGROUP_INET_INGRESS, attach_flags=0" }, { @@ -759,13 +840,28 @@ static const struct bpf_attr_check BPF_PROG_ATTACH_checks[] = { .target_fd = -1, .attach_bpf_fd = -2, .attach_type = 2, - .attach_flags = 1 + .attach_flags = 7 } }, .size = offsetofend(struct BPF_PROG_ATTACH_struct, attach_flags), .str = "target_fd=-1, attach_bpf_fd=-2" ", attach_type=BPF_CGROUP_INET_SOCK_CREATE" - ", attach_flags=BPF_F_ALLOW_OVERRIDE" - } + ", attach_flags=BPF_F_ALLOW_OVERRIDE|BPF_F_ALLOW_MULTI" + "|BPF_F_REPLACE" + }, + { + .data = { .BPF_PROG_ATTACH_data = { + .target_fd = -1, + .attach_bpf_fd = -2, + .attach_type = 2, + .attach_flags = 0xf8, + .replace_bpf_fd = -3, + } }, + .size = offsetofend(struct BPF_PROG_ATTACH_struct, replace_bpf_fd), + .str = "target_fd=-1, attach_bpf_fd=-2" + ", attach_type=BPF_CGROUP_INET_SOCK_CREATE" + ", attach_flags=0xf8 /* BPF_F_??? */" + ", replace_bpf_fd=-3" + }, }; @@ -810,6 +906,33 @@ static const struct bpf_attr_check BPF_PROG_TEST_RUN_checks[] = { ", data_in=0xfacef11dbadc2ded" ", data_out=0xfacef33dbadc4ded" ", repeat=4207410904, duration=4207541978}" + }, + { + .data = { .BPF_PROG_TEST_RUN_data = { + .prog_fd = -1, + .retval = 0xfac1fed2, + .data_size_in = 0xfac3fed4, + .data_size_out = 0xfac5fed6, + .data_in = (uint64_t) 0xfacef11dbadc2dedULL, + .data_out = (uint64_t) 0xfacef33dbadc4dedULL, + .repeat = 0xfac7fed8, + .duration = 0xfac9feda, + .ctx_size_in = 0xfacbfedc, + .ctx_size_out = 0xfacdfede, + .ctx_in = (uint64_t) 0xfacef55dbadc6dedULL, + .ctx_out = (uint64_t) 0xfacef77dbadc8dedULL + } }, + .size = offsetofend(struct BPF_PROG_TEST_RUN_struct, ctx_out), + .str = "test={prog_fd=-1, retval=4207017682" + ", data_size_in=4207148756, data_size_out=4207279830" + ", data_in=0xfacef11dbadc2ded" + ", data_out=0xfacef33dbadc4ded" + ", repeat=4207410904" + ", duration=4207541978" + ", ctx_size_in=4207673052" + ", ctx_size_out=4207804126" + ", ctx_in=0xfacef55dbadc6ded" + ", ctx_out=0xfacef77dbadc8ded}" } }; @@ -855,6 +978,7 @@ static const struct bpf_attr_check BPF_PROG_GET_NEXT_ID_checks[] = { }; #define BPF_MAP_GET_NEXT_ID_checks BPF_PROG_GET_NEXT_ID_checks +#define BPF_BTF_GET_NEXT_ID_checks BPF_PROG_GET_NEXT_ID_checks static const struct bpf_attr_check BPF_PROG_GET_FD_BY_ID_checks[] = { { @@ -953,8 +1077,8 @@ print_BPF_PROG_QUERY_attr4(const struct bpf_attr_check *check, unsigned long add printf("query={target_fd=-1153374643" ", attach_type=0xfeedface /* BPF_??? */" ", query_flags=BPF_F_QUERY_EFFECTIVE|0xdeadf00c" - ", attach_flags=BPF_F_ALLOW_MULTI|0xbeefcafc" -#if defined(INJECT_RETVAL) && INJECT_RETVAL > 0 + ", attach_flags=BPF_F_ALLOW_MULTI|BPF_F_REPLACE|0xbeefcaf8" +#if defined(INJECT_RETVAL) ", prog_ids=[0, 1, 4294967295, 2718281828], prog_cnt=4}" #else ", prog_ids=%p, prog_cnt=4}", prog_load_ids_ptr @@ -981,8 +1105,8 @@ print_BPF_PROG_QUERY_attr5(const struct bpf_attr_check *check, unsigned long add printf("query={target_fd=-1153374643" ", attach_type=0xfeedface /* BPF_??? */" ", query_flags=BPF_F_QUERY_EFFECTIVE|0xdeadf00c" - ", attach_flags=BPF_F_ALLOW_MULTI|0xbeefcafc" -#if defined(INJECT_RETVAL) && INJECT_RETVAL > 0 + ", attach_flags=BPF_F_ALLOW_MULTI|BPF_F_REPLACE|0xbeefcaf8" +#if defined(INJECT_RETVAL) ", prog_ids=[0, 1, 4294967295, 2718281828, ... /* %p */]" ", prog_cnt=5}", prog_load_ids_ptr + ARRAY_SIZE(prog_load_ids) @@ -1003,13 +1127,13 @@ static struct bpf_attr_check BPF_PROG_QUERY_checks[] = { { /* 1 */ .data = { .BPF_PROG_QUERY_data = { .target_fd = 3141592653U, - .attach_type = 16, + .attach_type = 37, .query_flags = 1, .attach_flags = 3, } }, .size = offsetofend(struct BPF_PROG_QUERY_struct, attach_flags), .str = "query={target_fd=-1153374643" - ", attach_type=BPF_LIRC_MODE2" + ", attach_type=BPF_XDP" ", query_flags=BPF_F_QUERY_EFFECTIVE" ", attach_flags=BPF_F_ALLOW_OVERRIDE|BPF_F_ALLOW_MULTI" ", prog_ids=NULL, prog_cnt=0}", @@ -1017,17 +1141,17 @@ static struct bpf_attr_check BPF_PROG_QUERY_checks[] = { { /* 2 */ .data = { .BPF_PROG_QUERY_data = { .target_fd = 3141592653U, - .attach_type = 18, + .attach_type = 38, .query_flags = 0xfffffffe, - .attach_flags = 0xfffffffc, + .attach_flags = 0xfffffff8, .prog_ids = 0xffffffffffffffffULL, .prog_cnt = 2718281828, } }, .size = offsetofend(struct BPF_PROG_QUERY_struct, prog_cnt), .str = "query={target_fd=-1153374643" - ", attach_type=0x12 /* BPF_??? */" + ", attach_type=0x26 /* BPF_??? */" ", query_flags=0xfffffffe /* BPF_F_QUERY_??? */" - ", attach_flags=0xfffffffc /* BPF_F_??? */" + ", attach_flags=0xfffffff8 /* BPF_F_??? */" ", prog_ids=" BIG_ADDR("0xffffffffffffffff", "0xffffffff") ", prog_cnt=2718281828}", @@ -1045,7 +1169,7 @@ static struct bpf_attr_check BPF_PROG_QUERY_checks[] = { .str = "query={target_fd=-1153374643" ", attach_type=0xfeedface /* BPF_??? */" ", query_flags=BPF_F_QUERY_EFFECTIVE|0xdeadf00c" - ", attach_flags=BPF_F_ALLOW_MULTI|0xbeefcafc" + ", attach_flags=BPF_F_ALLOW_MULTI|BPF_F_REPLACE|0xbeefcaf8" ", prog_ids=" BIG_ADDR_MAYBE("0xffffffffffffffff") "[]" ", prog_cnt=0}", }, @@ -1091,7 +1215,7 @@ static struct bpf_attr_check BPF_RAW_TRACEPOINT_OPEN_checks[] = { .data = { .BPF_RAW_TRACEPOINT_OPEN_data = { .name = 0 } }, .size = offsetofend(struct BPF_RAW_TRACEPOINT_OPEN_struct, name), - .str = "raw_tracepoint={name=NULL, prog_fd=0}", + .str = "raw_tracepoint={name=NULL, prog_fd=0" FD0_PATH "}", }, { /* 1 */ .data = { .BPF_RAW_TRACEPOINT_OPEN_data = { @@ -1165,16 +1289,16 @@ static const struct bpf_attr_check BPF_BTF_GET_FD_BY_ID_checks[] = { static const struct bpf_attr_check BPF_TASK_FD_QUERY_checks[] = { { - .data = { .BPF_TASK_FD_QUERY_data = { .pid = 0xdeadbeef } }, + .data = { .BPF_TASK_FD_QUERY_data = { .pid = 1735928559 } }, .size = offsetofend(struct BPF_TASK_FD_QUERY_struct, pid), - .str = "task_fd_query={pid=3735928559, fd=0, flags=0" - ", buf_len=0, buf=NULL, prog_id=0" + .str = "task_fd_query={pid=1735928559, fd=0" FD0_PATH + ", flags=0, buf_len=0, buf=NULL, prog_id=0" ", fd_type=BPF_FD_TYPE_RAW_TRACEPOINT" ", probe_offset=0, probe_addr=0}" }, { /* 1 */ .data = { .BPF_TASK_FD_QUERY_data = { - .pid = 0xcafef00d, + .pid = 1405705229, .fd = 0xdeadbeef, .flags = 0xfacefeed, .buf_len = 0xdefaced, @@ -1185,7 +1309,7 @@ static const struct bpf_attr_check BPF_TASK_FD_QUERY_checks[] = { .probe_addr = 0xfac5fed5fac7fed8 } }, .size = offsetofend(struct BPF_TASK_FD_QUERY_struct, probe_addr), - .str = "task_fd_query={pid=3405705229" + .str = "task_fd_query={pid=1405705229" ", fd=-559038737" ", flags=4207869677" ", buf_len=233811181" @@ -1197,6 +1321,117 @@ static const struct bpf_attr_check BPF_TASK_FD_QUERY_checks[] = { } }; +static const struct bpf_attr_check BPF_MAP_LOOKUP_BATCH_checks[] = { + { + .data = { .BPF_MAP_LOOKUP_BATCH_data = { .map_fd = -1 } }, + .size = offsetofend(struct BPF_MAP_LOOKUP_BATCH_struct, map_fd ), + .str = "batch={in_batch=NULL, out_batch=NULL, keys=NULL" + ", values=NULL, count=0, map_fd=-1, elem_flags=BPF_ANY" + ", flags=0}" + }, + { + .data = { .BPF_MAP_LOOKUP_BATCH_data = { + .in_batch = 0xfacefeed, + .out_batch = 0xbadc0ded, + .keys = 0xdeadf00d, + .values = 0xfffffffe, + .count = 3, + .map_fd = -1, + .elem_flags = 4, + .flags = 4 + } }, + .size = offsetofend(struct BPF_MAP_LOOKUP_BATCH_struct, flags), + .str = "batch={in_batch=0xfacefeed, out_batch=0xbadc0ded" + ", keys=0xdeadf00d, values=0xfffffffe, count=3" + ", map_fd=-1, elem_flags=BPF_F_LOCK, flags=0x4}" + } +}; + +static const struct bpf_attr_check BPF_MAP_UPDATE_BATCH_checks[] = { + { + .data = { .BPF_MAP_UPDATE_BATCH_data = { .map_fd = -1 } }, + .size = offsetofend(struct BPF_MAP_UPDATE_BATCH_struct, map_fd ), + .str = "batch={keys=NULL, values=NULL, count=0, map_fd=-1" + ", elem_flags=BPF_ANY, flags=0}" + }, + { + .data = { .BPF_MAP_UPDATE_BATCH_data = { + .keys = 0xdeadf00d, + .values = 0xfffffffe, + .count = 3, + .map_fd = -1, + .elem_flags = 4, + .flags = 4 + } }, + .size = offsetofend(struct BPF_MAP_UPDATE_BATCH_struct, flags), + .str = "batch={keys=0xdeadf00d, values=0xfffffffe, count=3" + ", map_fd=-1, elem_flags=BPF_F_LOCK, flags=0x4}" + } +}; + +static const struct bpf_attr_check BPF_MAP_DELETE_BATCH_checks[] = { + { + .data = { .BPF_MAP_DELETE_BATCH_data = { .map_fd = -1 } }, + .size = offsetofend(struct BPF_MAP_DELETE_BATCH_struct, map_fd ), + .str = "batch={keys=NULL, count=0, map_fd=-1" + ", elem_flags=BPF_ANY, flags=0}" + }, + { + .data = { .BPF_MAP_DELETE_BATCH_data = { + .keys = 0xdeadf00d, + .count = 3, + .map_fd = -1, + .elem_flags = 4, + .flags = 4 + } }, + .size = offsetofend(struct BPF_MAP_DELETE_BATCH_struct, flags), + .str = "batch={keys=0xdeadf00d, count=3, map_fd=-1" + ", elem_flags=BPF_F_LOCK, flags=0x4}" + } +}; + +static const struct bpf_attr_check BPF_LINK_CREATE_checks[] = { + { + .data = { .BPF_LINK_CREATE_data = { .prog_fd = -1, .target_fd = -2 } }, + .size = offsetofend(struct BPF_LINK_CREATE_struct, flags), + .str = "link_create={prog_fd=-1, target_fd=-2" + ", attach_type=BPF_CGROUP_INET_INGRESS, flags=0}" + }, + { + .data = { .BPF_LINK_CREATE_data = { + .prog_fd = -1, + .target_fd = 0xdeadbeef, + .attach_type = 5, + .flags = 4 + } }, + .size = offsetofend(struct BPF_LINK_CREATE_struct, flags), + .str = "link_create={prog_fd=-1, target_fd=-559038737" + ", attach_type=BPF_SK_SKB_STREAM_VERDICT, flags=0x4}" + } +}; + +static const struct bpf_attr_check BPF_LINK_UPDATE_checks[] = { + { + .data = { .BPF_LINK_UPDATE_data = { + .link_fd = -1, + .new_prog_fd = -2 + } }, + .size = offsetofend(struct BPF_LINK_UPDATE_struct, old_prog_fd), + .str = "link_update={link_fd=-1, new_prog_fd=-2, flags=0}" + }, + { + .data = { .BPF_LINK_UPDATE_data = { + .link_fd = -1, + .new_prog_fd = 0xdeadbeef, + .flags = 4, + .old_prog_fd = 0xdeadf00d + } }, + .size = offsetofend(struct BPF_LINK_UPDATE_struct, old_prog_fd), + .str = "link_update={link_fd=-1, new_prog_fd=-559038737" + ", flags=BPF_F_REPLACE, old_prog_fd=-559026163}" + } +}; + #define CHK(cmd_) \ { \ @@ -1231,6 +1466,13 @@ main(void) CHK(BPF_BTF_GET_FD_BY_ID), CHK(BPF_TASK_FD_QUERY), CHK(BPF_MAP_LOOKUP_AND_DELETE_ELEM), + CHK(BPF_MAP_FREEZE), + CHK(BPF_BTF_GET_NEXT_ID), + CHK(BPF_MAP_LOOKUP_BATCH), + CHK(BPF_MAP_UPDATE_BATCH), + CHK(BPF_MAP_DELETE_BATCH), + CHK(BPF_LINK_CREATE), + CHK(BPF_LINK_UPDATE), }; page_size = get_page_size(); diff --git a/tests-m32/brk.c b/tests-m32/brk.c index caf40e13..90f990e1 100644 --- a/tests-m32/brk.c +++ b/tests-m32/brk.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_brk diff --git a/tests-m32/btrfs.c b/tests-m32/btrfs.c index f1a26bf3..2a474dc4 100644 --- a/tests-m32/btrfs.c +++ b/tests-m32/btrfs.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -815,7 +815,7 @@ btrfs_test_clone_ioctls(void) args.dest_offset); } -# define BTRFS_COMPRESS_TYPES 2 +# define BTRFS_COMPRESS_TYPES 3 # define BTRFS_INVALID_COMPRESS (BTRFS_COMPRESS_TYPES + 1) static void @@ -886,9 +886,9 @@ btrfs_test_defrag_ioctls(void) static const char * xlookup(const struct xlat *xlat, const uint64_t val) { - for (; xlat->str != NULL; xlat++) - if (xlat->val == val) - return xlat->str; + for (size_t i = 0; i < xlat->size; i++) + if (xlat->data[i].val == val) + return xlat->data[i].str; return NULL; } @@ -2068,7 +2068,7 @@ btrfs_test_features_ioctls(void) static void btrfs_test_read_ioctls(void) { - static const struct xlat btrfs_read_cmd[] = { + static const struct xlat_data btrfs_read_cmd[] = { XLAT(BTRFS_IOC_BALANCE_PROGRESS), XLAT(BTRFS_IOC_FS_INFO), XLAT(BTRFS_IOC_GET_FEATURES), diff --git a/tests-m32/caps-abbrev.awk b/tests-m32/caps-abbrev.awk index c00023b4..1ec02e34 100644 --- a/tests-m32/caps-abbrev.awk +++ b/tests-m32/caps-abbrev.awk @@ -3,12 +3,13 @@ # This file is part of caps strace test. # # Copyright (c) 2014-2018 Dmitry V. Levin +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later BEGIN { - cap = "(0|1< +# Copyright (c) 2014-2020 Dmitry V. Levin # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later BEGIN { - cap = "(0|1< * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_chmod diff --git a/tests-m32/chown.c b/tests-m32/chown.c index 05fe9af1..4b6daea0 100644 --- a/tests-m32/chown.c +++ b/tests-m32/chown.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_chown diff --git a/tests-m32/chown32.c b/tests-m32/chown32.c index f2726203..5a0601cb 100644 --- a/tests-m32/chown32.c +++ b/tests-m32/chown32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_chown32 diff --git a/tests-m32/chroot.c b/tests-m32/chroot.c index 3fc441e3..1cef5f9b 100644 --- a/tests-m32/chroot.c +++ b/tests-m32/chroot.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_chroot diff --git a/tests-m32/clock_adjtime.c b/tests-m32/clock_adjtime.c index 8e5a12fb..610c75e3 100644 --- a/tests-m32/clock_adjtime.c +++ b/tests-m32/clock_adjtime.c @@ -2,13 +2,14 @@ * This file is part of clock_adjtime strace test. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_clock_adjtime diff --git a/tests-m32/clock_nanosleep.c b/tests-m32/clock_nanosleep.c index 258c3ac1..854fdb3f 100644 --- a/tests-m32/clock_nanosleep.c +++ b/tests-m32/clock_nanosleep.c @@ -2,21 +2,24 @@ * Check decoding of clock_nanosleep and clock_gettime syscalls. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include -#include -#include -#include -#include -#include -#include +#include "scno.h" + +#ifdef __NR_clock_nanosleep + +# include +# include +# include +# include +# include +# include +# include static void handler(int signo) @@ -127,3 +130,9 @@ main(void) puts("+++ exited with 0 +++"); return 0; } + +#else + +SKIP_MAIN_UNDEFINED("__NR_clock_nanosleep") + +#endif diff --git a/tests-m32/clock_xettime.c b/tests-m32/clock_xettime.c index c25240da..345c3a42 100644 --- a/tests-m32/clock_xettime.c +++ b/tests-m32/clock_xettime.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +11,7 @@ #include #include #include -#include +#include "scno.h" #if defined __NR_clock_getres \ && defined __NR_clock_gettime \ diff --git a/tests-m32/clone-flags.c b/tests-m32/clone-flags.c new file mode 100644 index 00000000..04bb2c76 --- /dev/null +++ b/tests-m32/clone-flags.c @@ -0,0 +1,151 @@ +/* + * Check decoding of clone flags. + * + * Copyright (c) 2017-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#define XLAT_MACROS_ONLY +#include "xlat/clone_flags.h" +#undef XLAT_MACROS_ONLY + +static const int child_exit_status = 42; +static pid_t pid; + +static pid_t +wait_cloned(pid_t pid, int sig, const char *text) +{ + if (pid < 0) + perror_msg_and_fail("clone %s", text); + int status; + pid_t rc = wait(&status); + if (sig) { + if (rc != pid) + perror_msg_and_fail("unexpected wait rc %d from %s", + rc, text); + if (!WIFEXITED(status) || + WEXITSTATUS(status) != child_exit_status) + error_msg_and_fail("unexpected wait status %#x from %s", + status, text); + } else { + if (rc >= 0) + error_msg_and_fail("unexpected wait rc %d from %s", + rc, text); + } + return pid; +} + +#ifdef IA64 +extern int __clone2(int (*)(void *), void *, size_t, int, void *, ...); +# define do_clone(fn_, stack_, size_, flags_, arg_, ...) \ + wait_cloned(__clone2((fn_), (stack_), (size_), (flags_), (arg_), \ + ## __VA_ARGS__), (flags_) & 0xff, #flags_) +# define SYSCALL_NAME "clone2" +# define STACK_SIZE_FMT ", stack_size=%#lx" +# define STACK_SIZE_ARG child_stack_size, +#else +# define do_clone(fn_, stack_, size_, flags_, arg_, ...) \ + wait_cloned(clone((fn_), (stack_), (flags_), (arg_), \ + ## __VA_ARGS__), (flags_) & 0xff, #flags_) +# define SYSCALL_NAME "clone" +# define STACK_SIZE_FMT "" +# define STACK_SIZE_ARG +#endif + +static int +child(void *const arg) +{ + return child_exit_status; +} + +int +main(void) +{ + const unsigned long child_stack_size = get_page_size(); + void *const child_stack = + tail_alloc(child_stack_size * 2) + child_stack_size; + + const char *child_stack_expected_str = getenv("CHILD_STACK_EXPECTED"); + const char *child_stack_reported_str = getenv("CHILD_STACK_REPORTED"); + + if (!child_stack_expected_str || !child_stack_reported_str) { + const unsigned long child_stack_base = + (unsigned long) child_stack / 0x1000; + pid = do_clone(child, child_stack, child_stack_size, + SIGCHLD, 0); + printf("%s\\(child_stack=(%#lx|%#lx)[[:xdigit:]]{3}" + STACK_SIZE_FMT ", flags=%s\\) = %d\n", + SYSCALL_NAME, child_stack_base, child_stack_base - 1, + STACK_SIZE_ARG "SIGCHLD", pid); + return 0; + } + const unsigned long child_stack_expected = + strtoul(child_stack_expected_str, 0, 16); + const unsigned long child_stack_reported = + strtoul(child_stack_reported_str, 0, 16); + const unsigned long child_stack_printed = + (unsigned long) child_stack + + (child_stack_reported - child_stack_expected); + + pid = do_clone(child, child_stack, child_stack_size, 0, 0); + printf("%s(child_stack=%#lx" STACK_SIZE_FMT ", flags=%s) = %d\n", + SYSCALL_NAME, child_stack_printed, STACK_SIZE_ARG + "0", pid); + + pid = do_clone(child, child_stack, child_stack_size, CLONE_FS, 0); + printf("%s(child_stack=%#lx" STACK_SIZE_FMT ", flags=%s) = %d\n", + SYSCALL_NAME, child_stack_printed, STACK_SIZE_ARG + "CLONE_FS", pid); + + pid = do_clone(child, child_stack, child_stack_size, SIGCHLD, 0); + printf("%s(child_stack=%#lx" STACK_SIZE_FMT ", flags=%s) = %d\n", + SYSCALL_NAME, child_stack_printed, STACK_SIZE_ARG + "SIGCHLD", pid); + + pid = do_clone(child, child_stack, child_stack_size, + CLONE_FS|SIGCHLD, 0); + printf("%s(child_stack=%#lx" STACK_SIZE_FMT ", flags=%s) = %d\n", + SYSCALL_NAME, child_stack_printed, STACK_SIZE_ARG + "CLONE_FS|SIGCHLD", pid); + + TAIL_ALLOC_OBJECT_CONST_PTR(pid_t, ptid); + pid = do_clone(child, child_stack, child_stack_size, + CLONE_PARENT_SETTID|SIGCHLD, 0, ptid); + printf("%s(child_stack=%#lx" STACK_SIZE_FMT ", flags=%s" + ", parent_tid=[%u]) = %d\n", + SYSCALL_NAME, child_stack_printed, STACK_SIZE_ARG + "CLONE_PARENT_SETTID|SIGCHLD", *ptid, pid); + + char buf[PATH_MAX]; + if (readlink("/proc/self/fd/0", buf, sizeof(buf) - 1) > 0) { + *ptid = 0; + pid = do_clone(child, child_stack, child_stack_size, + CLONE_PIDFD|SIGCHLD, 0, ptid); + char *fname = 0; + if (asprintf(&fname, "/proc/self/fd/%d", *ptid) < 0) + perror_msg_and_fail("asprintf"); + int rc = readlink(fname, buf, sizeof(buf) - 1); + if ((unsigned int) rc >= sizeof(buf)) + perror_msg_and_fail("readlink"); + buf[rc] = '\0'; + printf("%s(child_stack=%#lx" STACK_SIZE_FMT ", flags=%s" + ", parent_tid=[%u<%s>]) = %d\n", + SYSCALL_NAME, child_stack_printed, STACK_SIZE_ARG + "CLONE_PIDFD|SIGCHLD", *ptid, buf, pid); + } + + return 0; +} diff --git a/tests-m32/clone-flags.test b/tests-m32/clone-flags.test new file mode 100755 index 00000000..9485afa5 --- /dev/null +++ b/tests-m32/clone-flags.test @@ -0,0 +1,24 @@ +#!/bin/sh -efu +# +# Check decoding of clone flags. +# +# Copyright (c) 2019-2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +case "$STRACE_ARCH" in + ia64) syscall=clone2 ;; + *) syscall=clone ;; +esac + +# Find out the expected and reported child stack addresses. +run_strace_match_grep --silence=exits -e signal=none -e trace=$syscall +CHILD_STACK_EXPECTED="$(sed -n 's/^clone[^(]*(child_stack=(\(0x[[:xdigit:]]\+\)|.*/\1/p' "$EXP")000" +CHILD_STACK_REPORTED="$(sed -n 's/^clone[^(]*(child_stack=\(0x[[:xdigit:]]\+\),.*/\1/p' "$LOG")" +export CHILD_STACK_EXPECTED CHILD_STACK_REPORTED + +# Use child stack addresses to check decoding. +run_strace_match_diff -a35 --silence=exits,personality -y -e signal=none -e trace=$syscall diff --git a/tests-m32/clone3-Xabbrev.c b/tests-m32/clone3-Xabbrev.c new file mode 100644 index 00000000..2b7e4175 --- /dev/null +++ b/tests-m32/clone3-Xabbrev.c @@ -0,0 +1 @@ +#include "clone3.c" diff --git a/tests-m32/clone3-Xabbrev.gen.test b/tests-m32/clone3-Xabbrev.gen.test new file mode 100755 index 00000000..39eea6b5 --- /dev/null +++ b/tests-m32/clone3-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone3-Xabbrev -a16 -Xabbrev -e trace=clone3); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a16 -Xabbrev -e trace=clone3 diff --git a/tests-m32/clone3-Xraw.c b/tests-m32/clone3-Xraw.c new file mode 100644 index 00000000..1e1facb4 --- /dev/null +++ b/tests-m32/clone3-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "clone3.c" diff --git a/tests-m32/clone3-Xraw.gen.test b/tests-m32/clone3-Xraw.gen.test new file mode 100755 index 00000000..727ea5ad --- /dev/null +++ b/tests-m32/clone3-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone3-Xraw -a16 -Xraw -e trace=clone3); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a16 -Xraw -e trace=clone3 diff --git a/tests-m32/clone3-Xverbose.c b/tests-m32/clone3-Xverbose.c new file mode 100644 index 00000000..23c45a0b --- /dev/null +++ b/tests-m32/clone3-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "clone3.c" diff --git a/tests-m32/clone3-Xverbose.gen.test b/tests-m32/clone3-Xverbose.gen.test new file mode 100755 index 00000000..9955d021 --- /dev/null +++ b/tests-m32/clone3-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone3-Xverbose -a16 -Xverbose -e trace=clone3); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a16 -Xverbose -e trace=clone3 diff --git a/tests-m32/clone3-success-Xabbrev.c b/tests-m32/clone3-success-Xabbrev.c new file mode 100644 index 00000000..8df14f94 --- /dev/null +++ b/tests-m32/clone3-success-Xabbrev.c @@ -0,0 +1,2 @@ +#define RETVAL_INJECTED 1 +#include "clone3.c" diff --git a/tests-m32/clone3-success-Xabbrev.gen.test b/tests-m32/clone3-success-Xabbrev.gen.test new file mode 100755 index 00000000..a9c16f43 --- /dev/null +++ b/tests-m32/clone3-success-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone3-success-Xabbrev +clone3-success.test -a16 -Xabbrev); do not edit. +set -- -a16 -Xabbrev +. "${srcdir=.}/clone3-success.test" diff --git a/tests-m32/clone3-success-Xraw.c b/tests-m32/clone3-success-Xraw.c new file mode 100644 index 00000000..9a81c752 --- /dev/null +++ b/tests-m32/clone3-success-Xraw.c @@ -0,0 +1,3 @@ +#define RETVAL_INJECTED 1 +#define XLAT_RAW 1 +#include "clone3.c" diff --git a/tests-m32/clone3-success-Xraw.gen.test b/tests-m32/clone3-success-Xraw.gen.test new file mode 100755 index 00000000..d1ed0b0b --- /dev/null +++ b/tests-m32/clone3-success-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone3-success-Xraw +clone3-success.test -a16 -Xraw); do not edit. +set -- -a16 -Xraw +. "${srcdir=.}/clone3-success.test" diff --git a/tests-m32/clone3-success-Xverbose.c b/tests-m32/clone3-success-Xverbose.c new file mode 100644 index 00000000..2b2a3bd1 --- /dev/null +++ b/tests-m32/clone3-success-Xverbose.c @@ -0,0 +1,3 @@ +#define RETVAL_INJECTED 1 +#define XLAT_VERBOSE 1 +#include "clone3.c" diff --git a/tests-m32/clone3-success-Xverbose.gen.test b/tests-m32/clone3-success-Xverbose.gen.test new file mode 100755 index 00000000..3b7a3f83 --- /dev/null +++ b/tests-m32/clone3-success-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone3-success-Xverbose +clone3-success.test -a16 -Xverbose); do not edit. +set -- -a16 -Xverbose +. "${srcdir=.}/clone3-success.test" diff --git a/tests-m32/clone3-success.c b/tests-m32/clone3-success.c new file mode 100644 index 00000000..8df14f94 --- /dev/null +++ b/tests-m32/clone3-success.c @@ -0,0 +1,2 @@ +#define RETVAL_INJECTED 1 +#include "clone3.c" diff --git a/tests-m32/clone3-success.test b/tests-m32/clone3-success.test new file mode 100755 index 00000000..4db29f41 --- /dev/null +++ b/tests-m32/clone3-success.test @@ -0,0 +1,12 @@ +#!/bin/sh -efu +# +# Copyright (c) 2019 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/scno_tampering.sh" + +run_strace -a10 "$@" -e trace=clone3 -e inject=clone3:retval=42 \ + "../$NAME" > "$EXP" +match_diff "$LOG" "$EXP" diff --git a/tests-m32/clone3.c b/tests-m32/clone3.c new file mode 100644 index 00000000..c15cb1d3 --- /dev/null +++ b/tests-m32/clone3.c @@ -0,0 +1,629 @@ +/* + * Check decoding of clone3 syscall. + * + * Copyright (c) 2019-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#include +#include +#include +#include +#include +#include +#include + +#ifdef HAVE_LINUX_SCHED_H +# include +#endif + +#ifdef HAVE_STRUCT_USER_DESC +# include +#endif + +#define XLAT_MACROS_ONLY +# include "xlat/clone_flags.h" +# include "xlat/clone3_flags.h" +#undef XLAT_MACROS_ONLY + +#include "scno.h" + +#ifndef VERBOSE +# define VERBOSE 0 +#endif +#ifndef RETVAL_INJECTED +# define RETVAL_INJECTED 0 +#endif + +struct test_clone_args { + uint64_t flags; + uint64_t pidfd; + uint64_t child_tid; + uint64_t parent_tid; + uint64_t exit_signal; + uint64_t stack; + uint64_t stack_size; + uint64_t tls; + uint64_t set_tid; + uint64_t set_tid_size; + uint64_t cgroup; +}; + +#ifdef HAVE_STRUCT_CLONE_ARGS_CGROUP +typedef struct clone_args struct_clone_args; +#else +typedef struct test_clone_args struct_clone_args; +#endif + +enum validity_flag_bits { + STRUCT_VALID_BIT, + PIDFD_VALID_BIT, + CHILD_TID_VALID_BIT, + PARENT_TID_VALID_BIT, + TLS_VALID_BIT, +}; + +enum validity_flags { + FLAG(STRUCT_VALID), + FLAG(PIDFD_VALID), + FLAG(CHILD_TID_VALID), + FLAG(PARENT_TID_VALID), + FLAG(TLS_VALID), +}; + +#define MAX_SET_TID_SIZE 32 + +static const int child_exit_status = 42; + +#if RETVAL_INJECTED +static const long injected_retval = 42; + +# define INJ_STR " (INJECTED)\n" +#else /* !RETVAL_INJECTED */ +# define INJ_STR "\n" +#endif /* RETVAL_INJECTED */ + +#define ERR(b_) ((1ULL << (b_)) + FAIL_BUILD_ON_ZERO((b_) < 64)) + + +#if !RETVAL_INJECTED +static void +wait_cloned(int pid) +{ + int status; + + errno = 0; + while (waitpid(pid, &status, WEXITED | __WCLONE) != pid) { + if (errno != EINTR) + perror_msg_and_fail("waitpid(%d)", pid); + } +} +#endif + +static long +do_clone3_(void *args, kernel_ulong_t size, uint64_t possible_errors, int line) +{ + long rc = syscall(__NR_clone3, args, size); + +#if RETVAL_INJECTED + if (rc != injected_retval) + perror_msg_and_fail("%d: Unexpected injected return value " + "of a clone3() call (%ld instead of %ld)", + line, rc, injected_retval); +#else + + static int unimplemented_error = -1; + + if (!(possible_errors & ERR(0))) { + if (rc >= 0) + error_msg_and_fail("%d: Unexpected success" + " of a clone3() call", line); + if (unimplemented_error < 0) + unimplemented_error = + (errno == EINVAL) ? ENOSYS : errno; + } + + /* + * This code works as long as all the errors we care about (EFAULT + * and EINVAL so far) fit inside 64 bits, otherwise it should + * be rewritten. + */ + if (rc < 0 && errno != unimplemented_error + && (errno >= 64 || errno < 0 || !(ERR(errno) & possible_errors))) { + perror_msg_and_fail("%d: Unexpected failure of a clone3() call" + " (got errno %d, expected errno bitmask" + " %#" PRIx64 ")", + line, errno, possible_errors); + } + + if (!rc) + _exit(child_exit_status); + + if (rc > 0 && ((struct_clone_args *) args)->exit_signal) + wait_cloned(rc); +#endif + + return rc; +} + +#define do_clone3(args_, size_, errors_) \ + do_clone3_((args_), (size_), (errors_), __LINE__) + +static inline void +print_addr64(const char *pfx, uint64_t addr) +{ + if (addr) + printf("%s%#" PRIx64, pfx, addr); + else + printf("%sNULL", pfx); +} + +static void +print_tls(const char *pfx, uint64_t arg_ptr, enum validity_flags vf) +{ +#if defined HAVE_STRUCT_USER_DESC && defined __i386__ + if (!(vf & TLS_VALID)) { + print_addr64(pfx, arg_ptr); + return; + } + + struct user_desc *arg = (struct user_desc *) (uintptr_t) arg_ptr; + + printf("%s{entry_number=%d" + ", base_addr=%#08x" + ", limit=%#08x" + ", seg_32bit=%u" + ", contents=%u" + ", read_exec_only=%u" + ", limit_in_pages=%u" + ", seg_not_present=%u" + ", useable=%u}", + pfx, + arg->entry_number, + arg->base_addr, + arg->limit, + arg->seg_32bit, + arg->contents, + arg->read_exec_only, + arg->limit_in_pages, + arg->seg_not_present, + arg->useable); +#else + print_addr64(pfx, arg_ptr); +#endif +} + +static void +print_set_tid(uint64_t set_tid, uint64_t set_tid_size) +{ + if (!set_tid || set_tid != (uintptr_t) set_tid || + !set_tid_size || set_tid_size > MAX_SET_TID_SIZE) { + print_addr64(", set_tid=", set_tid); + } else { + printf(", set_tid="); + int *tids = (int *) (uintptr_t) set_tid; + for (unsigned int i = 0; i < set_tid_size; ++i) + printf("%s%d", i ? ", " : "[", tids[i]); + printf("]"); + } + + printf(", set_tid_size=%" PRIu64, set_tid_size); +} + +static inline void +print_clone3(struct_clone_args *const arg, long rc, kernel_ulong_t sz, + enum validity_flags valid, + const char *flags_str, const char *es_str) +{ + int saved_errno = errno; + + printf("clone3("); + if (!(valid & STRUCT_VALID)) { + printf("%p", arg); + goto out; + } + +#if XLAT_RAW + printf("{flags=%#" PRIx64, (uint64_t) arg->flags); +#elif XLAT_VERBOSE + if (flags_str[0] == '0') + printf("{flags=%#" PRIx64, (uint64_t) arg->flags); + else + printf("{flags=%#" PRIx64 " /* %s */", + (uint64_t) arg->flags, flags_str); +#else + printf("{flags=%s", flags_str); +#endif + + if (arg->flags & CLONE_PIDFD) + print_addr64(", pidfd=", arg->pidfd); + + if (arg->flags & (CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID)) { + if (valid & CHILD_TID_VALID) + printf(", child_tid=[%d]", + *(int *) (uintptr_t) arg->child_tid); + else + print_addr64(", child_tid=", arg->child_tid); + } + + if (arg->flags & CLONE_PARENT_SETTID) + print_addr64(", parent_tid=", arg->parent_tid); + + printf(", exit_signal=%s", es_str); + print_addr64(", stack=", arg->stack); + printf(", stack_size=%" PRIx64, (uint64_t) arg->stack_size); + + if (arg->flags & CLONE_SETTLS) + print_tls("tls=", arg->tls, valid); + + if (sz >= offsetofend(struct_clone_args, set_tid_size) && + (arg->set_tid || arg->set_tid_size)) + print_set_tid(arg->set_tid, arg->set_tid_size); + + if (sz > offsetof(struct_clone_args, cgroup) && + (arg->cgroup || arg->flags & CLONE_INTO_CGROUP)) + printf(", cgroup=%" PRIu64, (uint64_t) arg->cgroup); + + printf("}"); + + if (rc < 0) + goto out; + + bool comma = false; + + if (arg->flags & CLONE_PIDFD) { + if (valid & PIDFD_VALID) + printf(" => {pidfd=[%d]", + *(int *) (uintptr_t) arg->pidfd); + else + print_addr64(" => {pidfd=", arg->pidfd); + + comma = true; + } + + if (arg->flags & CLONE_PARENT_SETTID) { + printf(comma ? ", " : " => {"); + + if (valid & PARENT_TID_VALID) + printf("parent_tid=[%d]", + *(int *) (uintptr_t) arg->parent_tid); + else + print_addr64("parent_tid=", arg->parent_tid); + + comma = true; + } + + if (comma) + printf("}"); + +out: + errno = saved_errno; +} + +int +main(int argc, char *argv[]) +{ + static const struct { + struct_clone_args args; + uint64_t possible_errors; + enum validity_flags vf; + const char *flags_str; + const char *es_str; + } arg_vals[] = { + { { .flags = 0 }, + ERR(0), 0, "0", "0" }, + { { .flags = CLONE_PARENT_SETTID }, + ERR(0), 0, "CLONE_PARENT_SETTID", "0" }, + + /* check clone3_flags/clone_flags interoperation */ + { { .flags = CLONE_CLEAR_SIGHAND }, + ERR(EINVAL) | ERR(0), 0, "CLONE_CLEAR_SIGHAND", "0" }, + { { .flags = CLONE_PARENT_SETTID | CLONE_CLEAR_SIGHAND }, + ERR(EINVAL) | ERR(0), 0, + "CLONE_PARENT_SETTID|CLONE_CLEAR_SIGHAND", "0" }, + + { { .set_tid = 0xfacefeedcafebabe }, + ERR(E2BIG) | ERR(EINVAL), 0, "0", "0" }, + { { .set_tid_size = 0xfacecafefeedbabe }, + ERR(E2BIG) | ERR(EINVAL), 0, "0", "0" }, + { { .set_tid = 0xfacefeedcafebabe, + .set_tid_size = MAX_SET_TID_SIZE + 1 }, + ERR(E2BIG) | ERR(EINVAL), 0, "0", "0" }, + }; + TAIL_ALLOC_OBJECT_CONST_PTR(struct_clone_args, arg); + const size_t arg1_size = offsetofend(struct_clone_args, tls); + struct_clone_args *const arg1 = tail_alloc(arg1_size); + const size_t arg2_size = sizeof(*arg) + 8; + struct_clone_args *const arg2 = tail_alloc(arg2_size); + TAIL_ALLOC_OBJECT_CONST_PTR(int, pidfd); + TAIL_ALLOC_OBJECT_CONST_PTR(int, child_tid); + TAIL_ALLOC_OBJECT_CONST_PTR(int, parent_tid); + int *const tids = tail_alloc(sizeof(*tids) * MAX_SET_TID_SIZE); + long rc; + +#if defined HAVE_STRUCT_USER_DESC + TAIL_ALLOC_OBJECT_CONST_PTR(struct user_desc, tls); + + fill_memory(tls, sizeof(*tls)); +#else + TAIL_ALLOC_OBJECT_CONST_PTR(int, tls); +#endif + + *pidfd = 0xbadc0ded; + *child_tid = 0xdeadface; + *parent_tid = 0xfeedbeef; + fill_memory(tids, sizeof(*tids) * MAX_SET_TID_SIZE); + + rc = do_clone3(NULL, 0, ERR(EINVAL)); + printf("clone3(NULL, 0) = %s" INJ_STR, sprintrc(rc)); + + rc = do_clone3(arg + 1, sizeof(*arg), ERR(EFAULT)); + printf("clone3(%p, %zu) = %s" INJ_STR, + arg + 1, sizeof(*arg), sprintrc(rc)); + + size_t short_size = arg1_size - sizeof(uint64_t); + char *short_start = (char *) arg1 + sizeof(uint64_t); + rc = do_clone3(short_start, short_size, ERR(EINVAL)); + printf("clone3(%p, %zu) = %s" INJ_STR, + short_start, short_size, sprintrc(rc)); + + + memset(arg, 0, sizeof(*arg)); + memset(arg1, 0, arg1_size); + memset(arg2, 0, arg2_size); + + rc = do_clone3(arg, 64, ERR(0)); + printf("clone3({flags=0, exit_signal=0, stack=NULL, stack_size=0}, 64)" + " = %s" INJ_STR, + sprintrc(rc)); + + rc = do_clone3(arg, sizeof(*arg) + 8, ERR(EFAULT)); + printf("clone3({flags=0, exit_signal=0, stack=NULL, stack_size=0, ???}" +#if RETVAL_INJECTED + " => {???}" +#endif + ", %zu) = %s" INJ_STR, + sizeof(*arg) + 8, sprintrc(rc)); + + rc = do_clone3(arg1, arg1_size, ERR(0)); + printf("clone3({flags=0, exit_signal=0, stack=NULL, stack_size=0}" + ", %zu) = %s" INJ_STR, + arg1_size, sprintrc(rc)); + + rc = do_clone3(arg2, arg2_size, ERR(0)); + printf("clone3({flags=0, exit_signal=0, stack=NULL, stack_size=0}" + ", %zu) = %s" INJ_STR, + arg2_size, sprintrc(rc)); + + arg->set_tid = (uintptr_t) tids; + arg->set_tid_size = MAX_SET_TID_SIZE; + rc = do_clone3(arg, sizeof(*arg), ERR(E2BIG) | ERR(EINVAL)); + print_clone3(arg, rc, sizeof(*arg), STRUCT_VALID, "0", "0"); + printf(", %zu) = %s" INJ_STR, sizeof(*arg), sprintrc(rc)); + memset(arg, 0, sizeof(*arg)); + + arg->cgroup = 0xfacefeedbadc0ded; + rc = do_clone3(arg, sizeof(*arg), ERR(0) | ERR(E2BIG)); + print_clone3(arg, rc, sizeof(*arg), STRUCT_VALID, "0", "0"); + printf(", %zu) = %s" INJ_STR, sizeof(*arg), sprintrc(rc)); + memset(arg, 0, sizeof(*arg)); + + arg->flags = CLONE_INTO_CGROUP; + rc = do_clone3(arg, sizeof(*arg), ERR(0) | ERR(EINVAL) | ERR(EBADF)); + print_clone3(arg, rc, sizeof(*arg), STRUCT_VALID, + "CLONE_INTO_CGROUP", "0"); + printf(", %zu) = %s" INJ_STR, sizeof(*arg), sprintrc(rc)); + memset(arg, 0, sizeof(*arg)); + + /* + * NB: the following check is purposefully fragile (it will break + * when system's struct clone_args has additional fields, + * so it signalises that the decoder needs to be updated. + */ + arg2[1].flags = 0xfacefeeddeadc0de; + arg2->exit_signal = 0xdeadface00000000ULL | SIGCHLD; + rc = do_clone3(arg2, sizeof(*arg2) + 8, ERR(E2BIG)); + printf("clone3({flags=0, exit_signal=%llu, stack=NULL, stack_size=0" + ", /* bytes %zu..%zu */ " +#if WORDS_BIGENDIAN + "\"\\xfa\\xce\\xfe\\xed\\xde\\xad\\xc0\\xde\"" +#else + "\"\\xde\\xc0\\xad\\xde\\xed\\xfe\\xce\\xfa\"" +#endif +#if RETVAL_INJECTED + "} => {/* bytes %zu..%zu */ " +# if WORDS_BIGENDIAN + "\"\\xfa\\xce\\xfe\\xed\\xde\\xad\\xc0\\xde\"" +# else + "\"\\xde\\xc0\\xad\\xde\\xed\\xfe\\xce\\xfa\"" +# endif +#endif /* RETVAL_INJECTED */ + "}, %zu) = %s" INJ_STR, + 0xdeadface00000000ULL | SIGCHLD, + sizeof(*arg2), sizeof(*arg2) + 7, +#if RETVAL_INJECTED + sizeof(*arg2), sizeof(*arg2) + 7, +#endif + sizeof(*arg2) + 8, sprintrc(rc)); + + arg2->exit_signal = 0xdeadc0de; + rc = do_clone3(arg2, sizeof(*arg) + 16, ERR(E2BIG)); + printf("clone3({flags=0, exit_signal=3735929054, stack=NULL" + ", stack_size=0, ???}" +#if RETVAL_INJECTED + " => {???}" +#endif + ", %zu) = %s" INJ_STR, + sizeof(*arg) + 16, sprintrc(rc)); + + arg->flags = 0xface3eefbeefc0de; + arg->exit_signal = 0x1e55c0de; + rc = do_clone3(arg, 64, ERR(EINVAL)); + printf("clone3({flags=%s, child_tid=NULL, exit_signal=508936414" + ", stack=NULL, stack_size=0, tls=NULL}, 64) = %s" INJ_STR, + XLAT_KNOWN(0xface3eefbeefc0de, "CLONE_VFORK|CLONE_PARENT" + "|CLONE_THREAD|CLONE_NEWNS|CLONE_SYSVSEM|CLONE_SETTLS" + "|CLONE_CHILD_CLEARTID|CLONE_UNTRACED|CLONE_NEWCGROUP" + "|CLONE_NEWUTS|CLONE_NEWIPC|CLONE_NEWUSER|CLONE_NEWPID|CLONE_IO" + "|CLONE_NEWTIME|CLONE_CLEAR_SIGHAND|CLONE_INTO_CGROUP" + "|0xface3eec0040005e"), + sprintrc(rc)); + + arg->flags = 0xdec0deac0040007fULL; + arg->exit_signal = 250; + arg->stack = 0xface1e55beeff00dULL; + arg->stack_size = 0xcaffeedefacedca7ULL; + rc = do_clone3(arg, 64, ERR(EINVAL)); + printf("clone3({flags=%s, exit_signal=250" + ", stack=0xface1e55beeff00d, stack_size=0xcaffeedefacedca7}, 64)" + " = %s" INJ_STR, + XLAT_UNKNOWN(0xdec0deac0040007f, "CLONE_???"), + sprintrc(rc)); + + arg->exit_signal = SIGCHLD; + + struct { + uint64_t flag; + const char *flag_str; + uint64_t *field; + const char *field_name; + int *ptr; + bool deref_exiting; + } pid_fields[] = { + { ARG_STR(CLONE_PIDFD), + (uint64_t *) &arg->pidfd, + "pidfd", pidfd, true }, + { ARG_STR(CLONE_CHILD_SETTID), + (uint64_t *) &arg->child_tid, + "child_tid", child_tid }, + { ARG_STR(CLONE_CHILD_CLEARTID), + (uint64_t *) &arg->child_tid, + "child_tid", child_tid }, + { ARG_STR(CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID), + (uint64_t *) &arg->child_tid, + "child_tid", child_tid }, + { ARG_STR(CLONE_PARENT_SETTID), + (uint64_t *) &arg->parent_tid, + "parent_tid", parent_tid, true }, + }; + + for (size_t i = 0; i < ARRAY_SIZE(pid_fields); i++) { + char flag_str[128]; + const char *rc_str; + + arg->flags = 0xbad0000000000001ULL | pid_fields[i].flag; + +#if XLAT_RAW + snprintf(flag_str, sizeof(flag_str), "%#" PRIx64, + (uint64_t) arg->flags); +#elif XLAT_VERBOSE + snprintf(flag_str, sizeof(flag_str), + "%#" PRIx64 " /* %s|0xbad0000000000001 */", + (uint64_t) arg->flags, pid_fields[i].flag_str); +#else + snprintf(flag_str, sizeof(flag_str), "%s|0xbad0000000000001", + pid_fields[i].flag_str); +#endif + + pid_fields[i].field[0] = 0; + rc = do_clone3(arg, 64, ERR(EINVAL)); + rc_str = sprintrc(rc); + printf("clone3({flags=%s, %s=NULL" + ", exit_signal=" XLAT_KNOWN(SIGCHLD, "SIGCHLD") + ", stack=0xface1e55beeff00d" + ", stack_size=0xcaffeedefacedca7}", + flag_str, pid_fields[i].field_name); +#if RETVAL_INJECTED + if (pid_fields[i].deref_exiting) + printf(" => {%s=NULL}", pid_fields[i].field_name); +#endif /* RETVAL_INJECTED */ + printf(", 64) = %s" INJ_STR, rc_str); + + pid_fields[i].field[0] = (uintptr_t) (pid_fields[i].ptr + 1); + rc = do_clone3(arg, 64, ERR(EINVAL)); + rc_str = sprintrc(rc); + printf("clone3({flags=%s, %s=%p" + ", exit_signal=" XLAT_KNOWN(SIGCHLD, "SIGCHLD") + ", stack=0xface1e55beeff00d" + ", stack_size=0xcaffeedefacedca7}", + flag_str, pid_fields[i].field_name, + pid_fields[i].ptr + 1); +#if RETVAL_INJECTED + if (pid_fields[i].deref_exiting) + printf(" => {%s=%p}", + pid_fields[i].field_name, pid_fields[i].ptr + 1); +#endif /* RETVAL_INJECTED */ + printf(", 64) = %s" INJ_STR, rc_str); + + pid_fields[i].field[0] = (uintptr_t) pid_fields[i].ptr; + rc = do_clone3(arg, 64, ERR(EINVAL)); + rc_str = sprintrc(rc); + printf("clone3({flags=%s, %s=%p" + ", exit_signal=" XLAT_KNOWN(SIGCHLD, "SIGCHLD") + ", stack=0xface1e55beeff00d" + ", stack_size=0xcaffeedefacedca7}", + flag_str, pid_fields[i].field_name, + pid_fields[i].ptr); +#if RETVAL_INJECTED + if (pid_fields[i].deref_exiting) + printf(" => {%s=[%d]}", + pid_fields[i].field_name, *pid_fields[i].ptr); +#endif /* RETVAL_INJECTED */ + printf(", 64) = %s" INJ_STR, rc_str); + } + + arg->flags = 0xbad0000000000001ULL | CLONE_SETTLS; + rc = do_clone3(arg, 64, ERR(EINVAL)); + printf("clone3({flags=" + XLAT_KNOWN(0xbad0000000080001, "CLONE_SETTLS|0xbad0000000000001") + ", exit_signal=" XLAT_KNOWN(SIGCHLD, "SIGCHLD") + ", stack=0xface1e55beeff00d" + ", stack_size=0xcaffeedefacedca7, tls=NULL}, 64) = %s" INJ_STR, + sprintrc(rc)); + + arg->tls = (uintptr_t) (tls + 1); + rc = do_clone3(arg, 64, ERR(EINVAL)); + printf("clone3({flags=" + XLAT_KNOWN(0xbad0000000080001, "CLONE_SETTLS|0xbad0000000000001") + ", exit_signal=" XLAT_KNOWN(SIGCHLD, "SIGCHLD") + ", stack=0xface1e55beeff00d" + ", stack_size=0xcaffeedefacedca7, tls=%p}, 64) = %s" INJ_STR, + tls + 1, sprintrc(rc)); + + arg->tls = (uintptr_t) tls; + rc = do_clone3(arg, 64, ERR(EINVAL)); + printf("clone3({flags=" + XLAT_KNOWN(0xbad0000000080001, "CLONE_SETTLS|0xbad0000000000001") + ", exit_signal=" XLAT_KNOWN(SIGCHLD, "SIGCHLD") + ", stack=0xface1e55beeff00d, stack_size=0xcaffeedefacedca7, tls=" +#if defined HAVE_STRUCT_USER_DESC && defined __i386__ + "{entry_number=2206368128, base_addr=0x87868584" + ", limit=0x8b8a8988, seg_32bit=0, contents=2, read_exec_only=1" + ", limit_in_pages=0, seg_not_present=0, useable=0}" +#else + "%p" +#endif + "}, 64) = %s" INJ_STR, +#if !defined HAVE_STRUCT_USER_DESC || !defined __i386__ + tls, +#endif + sprintrc(rc)); + + for (size_t i = 0; i < ARRAY_SIZE(arg_vals); i++) { + memcpy(arg, &arg_vals[i].args, sizeof(*arg)); + + rc = do_clone3(arg, sizeof(*arg), arg_vals[i].possible_errors); + print_clone3(arg, rc, sizeof(*arg), + arg_vals[i].vf | STRUCT_VALID, + arg_vals[i].flags_str, arg_vals[i].es_str); + printf(", %zu) = %s" INJ_STR, sizeof(*arg), sprintrc(rc)); + } + + puts("+++ exited with 0 +++"); + + return 0; +} diff --git a/tests-m32/clone3.gen.test b/tests-m32/clone3.gen.test new file mode 100755 index 00000000..e5d5ca40 --- /dev/null +++ b/tests-m32/clone3.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone3 -a16 ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a16 diff --git a/tests-m32/clone_parent--quiet-exit.c b/tests-m32/clone_parent--quiet-exit.c new file mode 100644 index 00000000..fc80d805 --- /dev/null +++ b/tests-m32/clone_parent--quiet-exit.c @@ -0,0 +1,2 @@ +#define QUIET_MSG 1 +#include "clone_parent.c" diff --git a/tests-m32/clone_parent--quiet-exit.gen.test b/tests-m32/clone_parent--quiet-exit.gen.test new file mode 100755 index 00000000..298abc0b --- /dev/null +++ b/tests-m32/clone_parent--quiet-exit.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone_parent--quiet-exit +clone_ptrace.test --quiet=exit,personality); do not edit. +set -- --quiet=exit,personality +. "${srcdir=.}/clone_ptrace.test" diff --git a/tests-m32/clone_parent-q.c b/tests-m32/clone_parent-q.c new file mode 100644 index 00000000..503b8e8f --- /dev/null +++ b/tests-m32/clone_parent-q.c @@ -0,0 +1,2 @@ +#define QUIET_MSG 0 +#include "clone_parent.c" diff --git a/tests-m32/clone_parent-q.gen.test b/tests-m32/clone_parent-q.gen.test new file mode 100755 index 00000000..0d0ecb66 --- /dev/null +++ b/tests-m32/clone_parent-q.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone_parent-q +clone_ptrace.test -q); do not edit. +set -- -q +. "${srcdir=.}/clone_ptrace.test" diff --git a/tests-m32/clone_parent-qq.c b/tests-m32/clone_parent-qq.c new file mode 100644 index 00000000..fc80d805 --- /dev/null +++ b/tests-m32/clone_parent-qq.c @@ -0,0 +1,2 @@ +#define QUIET_MSG 1 +#include "clone_parent.c" diff --git a/tests-m32/clone_parent-qq.gen.test b/tests-m32/clone_parent-qq.gen.test new file mode 100755 index 00000000..e472bd4c --- /dev/null +++ b/tests-m32/clone_parent-qq.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone_parent-qq +clone_ptrace.test -qq); do not edit. +set -- -qq +. "${srcdir=.}/clone_ptrace.test" diff --git a/tests-m32/clone_parent.c b/tests-m32/clone_parent.c index 111f98d1..d0e9cdac 100644 --- a/tests-m32/clone_parent.c +++ b/tests-m32/clone_parent.c @@ -1,7 +1,7 @@ /* * Check handling of CLONE_PARENT'ed processes. * - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -17,25 +17,34 @@ #include #include +#ifndef QUIET_MSG +# define QUIET_MSG 0 +#endif + static int child(void *const arg) { return 42; } -#define child_stack_size (get_page_size() / 2) - #ifdef IA64 extern int __clone2(int (*)(void *), void *, size_t, int, void *, ...); -# define clone(fn, child_stack, flags, arg) \ - __clone2(fn, child_stack, child_stack_size, flags, arg) +# define do_clone(fn_, stack_, size_, flags_, arg_, ...) \ + __clone2((fn_), (stack_), (size_), (flags_), (arg_), ## __VA_ARGS__) +#else +# define do_clone(fn_, stack_, size_, flags_, arg_, ...) \ + clone((fn_), (stack_), (flags_), (arg_), ## __VA_ARGS__) #endif int main(void) { - const pid_t pid = clone(child, tail_alloc(child_stack_size), - CLONE_PARENT | SIGCHLD, 0); + const unsigned long child_stack_size = get_page_size(); + void *const child_stack = + tail_alloc(child_stack_size * 2) + child_stack_size; + + const pid_t pid = do_clone(child, child_stack, child_stack_size, + CLONE_PARENT | SIGCHLD, 0); if (pid < 0) perror_msg_and_fail("clone"); @@ -51,10 +60,14 @@ main(void) FILE *const fp = fdopen(3, "a"); if (!fp) perror_msg_and_fail("fdopen"); +#if !QUIET_MSG if (fprintf(fp, "%s: Exit of unknown pid %d ignored\n", getenv("STRACE_EXE") ?: "strace", pid) < 0) perror_msg_and_fail("fprintf"); +#endif +#if !QUIET_MSG puts("+++ exited with 0 +++"); +#endif return 0; } diff --git a/tests-m32/clone_parent.gen.test b/tests-m32/clone_parent.gen.test new file mode 100755 index 00000000..4303eb02 --- /dev/null +++ b/tests-m32/clone_parent.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone_parent +clone_ptrace.test ); do not edit. +set -- +. "${srcdir=.}/clone_ptrace.test" diff --git a/tests-m32/clone_parent.test b/tests-m32/clone_parent.test deleted file mode 100755 index a5b077f3..00000000 --- a/tests-m32/clone_parent.test +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -efu -# -# Check handling of CLONE_PARENT'ed processes. -# -# Copyright (c) 2017-2018 The strace developers. -# All rights reserved. -# -# SPDX-License-Identifier: GPL-2.0-or-later - -. "${srcdir=.}/clone_ptrace.test" diff --git a/tests-m32/clone_ptrace--quiet-attach.c b/tests-m32/clone_ptrace--quiet-attach.c new file mode 100644 index 00000000..2fb8d855 --- /dev/null +++ b/tests-m32/clone_ptrace--quiet-attach.c @@ -0,0 +1,2 @@ +#define QUIET_ATTACH 1 +#include "clone_ptrace.c" diff --git a/tests-m32/clone_ptrace--quiet-attach.gen.test b/tests-m32/clone_ptrace--quiet-attach.gen.test new file mode 100755 index 00000000..d5c3e73a --- /dev/null +++ b/tests-m32/clone_ptrace--quiet-attach.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone_ptrace--quiet-attach +clone_ptrace.test --quiet=attach,personality); do not edit. +set -- --quiet=attach,personality +. "${srcdir=.}/clone_ptrace.test" diff --git a/tests-m32/clone_ptrace--quiet-exit.c b/tests-m32/clone_ptrace--quiet-exit.c new file mode 100644 index 00000000..3503cfbe --- /dev/null +++ b/tests-m32/clone_ptrace--quiet-exit.c @@ -0,0 +1,2 @@ +#define QUIET_EXIT 1 +#include "clone_ptrace.c" diff --git a/tests-m32/clone_ptrace--quiet-exit.gen.test b/tests-m32/clone_ptrace--quiet-exit.gen.test new file mode 100755 index 00000000..6342598d --- /dev/null +++ b/tests-m32/clone_ptrace--quiet-exit.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone_ptrace--quiet-exit +clone_ptrace.test --quiet=exit,personality); do not edit. +set -- --quiet=exit,personality +. "${srcdir=.}/clone_ptrace.test" diff --git a/tests-m32/clone_ptrace-q.c b/tests-m32/clone_ptrace-q.c new file mode 100644 index 00000000..2fb8d855 --- /dev/null +++ b/tests-m32/clone_ptrace-q.c @@ -0,0 +1,2 @@ +#define QUIET_ATTACH 1 +#include "clone_ptrace.c" diff --git a/tests-m32/clone_ptrace-q.gen.test b/tests-m32/clone_ptrace-q.gen.test new file mode 100755 index 00000000..155e3a5d --- /dev/null +++ b/tests-m32/clone_ptrace-q.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone_ptrace-q +clone_ptrace.test -q); do not edit. +set -- -q +. "${srcdir=.}/clone_ptrace.test" diff --git a/tests-m32/clone_ptrace-qq.c b/tests-m32/clone_ptrace-qq.c new file mode 100644 index 00000000..037fbca3 --- /dev/null +++ b/tests-m32/clone_ptrace-qq.c @@ -0,0 +1,3 @@ +#define QUIET_ATTACH 1 +#define QUIET_EXIT 1 +#include "clone_ptrace.c" diff --git a/tests-m32/clone_ptrace-qq.gen.test b/tests-m32/clone_ptrace-qq.gen.test new file mode 100755 index 00000000..caa8ab41 --- /dev/null +++ b/tests-m32/clone_ptrace-qq.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone_ptrace-qq +clone_ptrace.test -qq); do not edit. +set -- -qq +. "${srcdir=.}/clone_ptrace.test" diff --git a/tests-m32/clone_ptrace.c b/tests-m32/clone_ptrace.c index ee366ab9..4598400d 100644 --- a/tests-m32/clone_ptrace.c +++ b/tests-m32/clone_ptrace.c @@ -1,7 +1,7 @@ /* * Check handling of CLONE_PTRACE'ed processes. * - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -20,6 +20,13 @@ static siginfo_t sinfo; +#ifndef QUIET_ATTACH +# define QUIET_ATTACH 0 +#endif +#ifndef QUIET_EXIT +# define QUIET_EXIT 0 +#endif + static void handler(const int no, siginfo_t *const si, void *const uc) { @@ -34,12 +41,13 @@ child(void *const arg) return 0; } -#define child_stack_size (get_page_size() / 2) - #ifdef IA64 extern int __clone2(int (*)(void *), void *, size_t, int, void *, ...); -# define clone(fn, child_stack, flags, arg) \ - __clone2(fn, child_stack, child_stack_size, flags, arg) +# define do_clone(fn_, stack_, size_, flags_, arg_, ...) \ + __clone2((fn_), (stack_), (size_), (flags_), (arg_), ## __VA_ARGS__) +#else +# define do_clone(fn_, stack_, size_, flags_, arg_, ...) \ + clone((fn_), (stack_), (flags_), (arg_), ## __VA_ARGS__) #endif int @@ -52,8 +60,12 @@ main(void) if (sigprocmask(SIG_UNBLOCK, &mask, NULL)) perror_msg_and_fail("sigprocmask"); - const pid_t pid = clone(child, tail_alloc(child_stack_size), - CLONE_PTRACE | SIGCHLD, 0); + const unsigned long child_stack_size = get_page_size(); + void *const child_stack = + tail_alloc(child_stack_size * 2) + child_stack_size; + + const pid_t pid = do_clone(child, child_stack, child_stack_size, + CLONE_PTRACE | SIGCHLD, 0); if (pid < 0) perror_msg_and_fail("clone"); @@ -69,9 +81,11 @@ main(void) FILE *const fp = fdopen(3, "a"); if (!fp) perror_msg_and_fail("fdopen"); +#if !QUIET_ATTACH if (fprintf(fp, "%s: Detached unknown pid %d\n", getenv("STRACE_EXE") ?: "strace", pid) < 0) perror_msg_and_fail("fprintf"); +#endif int status; while (wait(&status) != pid) { @@ -82,8 +96,11 @@ main(void) error_msg_and_fail("unexpected child exit status %d", status); printf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_KILLED, si_pid=%d" - ", si_uid=%u, si_status=%s, si_utime=%u, si_stime=%u} ---\n" - "+++ exited with 0 +++\n", pid, geteuid(), "SIGUSR1", + ", si_uid=%d, si_status=%s, si_utime=%u, si_stime=%u} ---\n" +#if !QUIET_EXIT + "+++ exited with 0 +++\n" +#endif + , pid, geteuid(), "SIGUSR1", (unsigned int) sinfo.si_utime, (unsigned int) sinfo.si_stime); return 0; diff --git a/tests-m32/clone_ptrace.test b/tests-m32/clone_ptrace.test index 24c4298a..6f77ed8b 100755 --- a/tests-m32/clone_ptrace.test +++ b/tests-m32/clone_ptrace.test @@ -2,7 +2,7 @@ # # Check handling of CLONE_PTRACE'ed processes. # -# Copyright (c) 2017-2018 The strace developers. +# Copyright (c) 2017-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ . "${srcdir=.}/init.sh" run_prog > /dev/null 3>&1 -args="-e trace=none $args" +args="-e trace=none ${1:---quiet=personality} $args" > "$LOG" || fail_ "failed to write $LOG" $STRACE -o "$LOG" $args > "$EXP" 2> "$OUT"-err 3> "$EXP"-err || { diff --git a/tests-m32/close_range-P.c b/tests-m32/close_range-P.c new file mode 100644 index 00000000..2c757b07 --- /dev/null +++ b/tests-m32/close_range-P.c @@ -0,0 +1,4 @@ +#define PATH_TRACING +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "close_range.c" diff --git a/tests-m32/close_range-P.gen.test b/tests-m32/close_range-P.gen.test new file mode 100755 index 00000000..85fb6a81 --- /dev/null +++ b/tests-m32/close_range-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (close_range-P -a21 --trace=close_range -P /dev/full 7>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a21 --trace=close_range -P /dev/full 7>>/dev/full diff --git a/tests-m32/close_range-y.c b/tests-m32/close_range-y.c new file mode 100644 index 00000000..61b481b4 --- /dev/null +++ b/tests-m32/close_range-y.c @@ -0,0 +1,5 @@ +#define FD0_PATH "" +#define FD7_PATH "" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "close_range.c" diff --git a/tests-m32/close_range-y.gen.test b/tests-m32/close_range-y.gen.test new file mode 100755 index 00000000..da08dc05 --- /dev/null +++ b/tests-m32/close_range-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (close_range-y -a33 --trace=close_range -y 7>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a33 --trace=close_range -y 7>>/dev/full diff --git a/tests-m32/close_range-yy.c b/tests-m32/close_range-yy.c new file mode 100644 index 00000000..64997fc8 --- /dev/null +++ b/tests-m32/close_range-yy.c @@ -0,0 +1,5 @@ +#define FD0_PATH ">" +#define FD7_PATH ">" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "close_range.c" diff --git a/tests-m32/close_range-yy.gen.test b/tests-m32/close_range-yy.gen.test new file mode 100755 index 00000000..3f3b9cba --- /dev/null +++ b/tests-m32/close_range-yy.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (close_range-yy -a33 --trace=close_range -yy 7>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a33 --trace=close_range -yy 7>>/dev/full diff --git a/tests-m32/close_range.c b/tests-m32/close_range.c new file mode 100644 index 00000000..b3a3ab7d --- /dev/null +++ b/tests-m32/close_range.c @@ -0,0 +1,147 @@ +/* + * Check decoding of close_range syscall. + * + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_close_range + +# include +# include +# include + +# ifdef HAVE_LINUX_CLOSE_RANGE_H +# include +# else +# define CLOSE_RANGE_UNSHARE (1U << 1) +# endif + +# ifndef FD0_PATH +# define FD0_PATH "" +# endif +# ifndef FD7_PATH +# define FD7_PATH "" +# endif +# ifndef SKIP_IF_PROC_IS_UNAVAILABLE +# define SKIP_IF_PROC_IS_UNAVAILABLE +# endif + +static const char *errstr; + +static long +k_close_range(const unsigned int fd1, const unsigned int fd2, const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | fd1; + const kernel_ulong_t arg2 = fill | fd2; + const kernel_ulong_t arg3 = fill | flags; + const long rc = syscall(__NR_close_range, arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +static void +xdup2(int fd1, int fd2) +{ + if (dup2(fd1, fd2) != fd2) + perror_msg_and_fail("dup2(%d, %d)", fd1, fd2); +} + +int +main(void) +{ + SKIP_IF_PROC_IS_UNAVAILABLE; + + const int fd0 = dup(0); + const int fd7 = dup(7); + const int fd7_min = MIN(7, fd7); + const int fd7_max = MAX(7, fd7); + + k_close_range(-2, -1, 1); +# ifndef PATH_TRACING + printf("close_range(-2, -1, 0x1 /* CLOSE_RANGE_??? */) = %s\n", errstr); +# endif + + k_close_range(-1, -2, 2); +# ifndef PATH_TRACING + printf("close_range(-1, -2, CLOSE_RANGE_UNSHARE) = %s\n", errstr); +# endif + + k_close_range(-3, 0, 4); +# ifndef PATH_TRACING + printf("close_range(-3, 0" FD0_PATH ", 0x4 /* CLOSE_RANGE_??? */)" + " = %s\n", errstr); +# endif + + k_close_range(0, -4, -1); +# ifndef PATH_TRACING + printf("close_range(0" FD0_PATH ", -4, CLOSE_RANGE_UNSHARE|%#x) = %s\n", + (-1U & ~CLOSE_RANGE_UNSHARE), errstr); +# endif + + k_close_range(-5, 7, 0); + printf("close_range(-5, 7" FD7_PATH ", 0) = %s\n", errstr); + + k_close_range(7, -6, 1); + printf("close_range(7" FD7_PATH ", -6, 0x1 /* CLOSE_RANGE_??? */)" + " = %s\n", errstr); + + k_close_range(7, 7, 4); + printf("close_range(7" FD7_PATH ", 7" FD7_PATH + ", 0x4 /* CLOSE_RANGE_??? */) = %s\n", errstr); + + k_close_range(-7, -7, 7); +# ifndef PATH_TRACING + printf("close_range(-7, -7, CLOSE_RANGE_UNSHARE|0x5) = %s\n", errstr); +# endif + + k_close_range(7, 0, 0); + printf("close_range(7" FD7_PATH ", 0" FD0_PATH ", 0) = %s\n", errstr); + + k_close_range(fd7, fd0, 0); + printf("close_range(%d" FD7_PATH ", %d" FD0_PATH ", 0) = %s\n", + fd7, fd0, errstr); + + if (k_close_range(0, 0, 0) == 0) + xdup2(fd0, 0); +# ifndef PATH_TRACING + printf("close_range(0" FD0_PATH ", 0" FD0_PATH ", 0) = %s\n", errstr); +# endif + + if (k_close_range(fd0, fd0, 0) == 0) + xdup2(0, fd0); +# ifndef PATH_TRACING + printf("close_range(%d" FD0_PATH ", %d" FD0_PATH ", 0) = %s\n", + fd0, fd0, errstr); +# endif + + if (k_close_range(7, 7, 0) == 0) + xdup2(fd7, 7); + printf("close_range(7" FD7_PATH ", 7" FD7_PATH ", 0) = %s\n", errstr); + + if (k_close_range(fd7, fd7, 0) == 0) + xdup2(7, fd7); + printf("close_range(%d" FD7_PATH ", %d" FD7_PATH ", 0) = %s\n", + fd7, fd7, errstr); + + if (k_close_range(fd7_max, -1, 0) == 0) + xdup2(fd7_min, fd7_max); + printf("close_range(%d" FD7_PATH ", -1, 0) = %s\n", + fd7_max, errstr); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_close_range") + +#endif diff --git a/tests-m32/close_range.gen.test b/tests-m32/close_range.gen.test new file mode 100755 index 00000000..19e6f4b9 --- /dev/null +++ b/tests-m32/close_range.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (close_range -a21 7>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a21 7>>/dev/full diff --git a/tests-m32/copy_file_range.c b/tests-m32/copy_file_range.c index c1f142c6..f39f8afc 100644 --- a/tests-m32/copy_file_range.c +++ b/tests-m32/copy_file_range.c @@ -2,14 +2,13 @@ * This file is part of copy_file_range strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #if defined __NR_copy_file_range diff --git a/tests-m32/count-f.test b/tests-m32/count-f.test index 4f3d45f8..001008a3 100755 --- a/tests-m32/count-f.test +++ b/tests-m32/count-f.test @@ -2,7 +2,7 @@ # # Check whether -c counts through forks and clones properly. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ . "${srcdir=.}/init.sh" run_prog -run_strace -q -f -c $args +run_strace -e silent=attach -f -c $args match_grep exit 0 diff --git a/tests-m32/count.test b/tests-m32/count.test index 6abb1772..c1ba3720 100755 --- a/tests-m32/count.test +++ b/tests-m32/count.test @@ -3,7 +3,7 @@ # Check whether -c and -w options work. # # Copyright (c) 2014-2016 Dmitry V. Levin -# Copyright (c) 2014-2018 The strace developers. +# Copyright (c) 2014-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -29,13 +29,25 @@ grep_log() } } -grep_log ' *[^ ]+ +0\.0[^n]*nanosleep' -c -grep_log ' *[^ ]+ +0\.0[^n]*nanosleep' -c -O1 -grep_log ' *[^ ]+ +0\.0[^n]*nanosleep' -c -enanosleep -grep_log ' *[^ ]+ +0\.0[^n]*nanosleep' -c -O1 -enanosleep -grep_log ' *[^ ]+ +(1\.[01]|0\.99)[^n]*nanosleep' -cw -grep_log ' *[^ ]+ +(1\.[01]|0\.99)[^n]*nanosleep' -cw -O1 -grep_log '100\.00 +(1\.[01]|0\.99)[^n]*nanosleep' -cw -enanosleep -grep_log '100\.00 +(1\.[01]|0\.99)[^n]*nanosleep' -cw -O1 -enanosleep +GENERIC=' *[^ ]+ +0\.0[^n]*nanosleep *' +WALLCLOCK=' *[^ ]+ +(1\.[01]|0\.99)[^n]*nanosleep *' +WALLCLOCK1='100\.00 +(1\.[01]|0\.99)[^n]*nanosleep' +HALFCLOCK=' *[^ ]+ +0\.[567][^n]*nanosleep *' + +grep_log "$GENERIC" -c +grep_log "$GENERIC" -c -O1 +grep_log "$GENERIC" -c --summary-syscall-overhead=1 +grep_log "$GENERIC" -c -enanosleep +grep_log "$GENERIC" -c -O1 -enanosleep +grep_log "$WALLCLOCK" -cw +grep_log "$WALLCLOCK" -cw -O1 +grep_log "$WALLCLOCK1" -cw -enanosleep +grep_log "$WALLCLOCK1" -cw -O1 -enanosleep +grep_log "$HALFCLOCK" -cw -O4.5e2ms -enanosleep +grep_log "$HALFCLOCK" -cw --summary-syscall-overhead=4.5e2ms -enanosleep +grep_log "$HALFCLOCK" -cw -O4.5e-1s -enanosleep +grep_log "$HALFCLOCK" -cw --summary-syscall-overhead=4.5e-1s -enanosleep +grep_log "$HALFCLOCK" -cw -O456789012ns -enanosleep +grep_log "$HALFCLOCK" -cw --summary-syscall-overhead=456789012ns -enanosleep exit 0 diff --git a/tests-m32/creat.c b/tests-m32/creat.c index 71819d5b..6a5c08e5 100644 --- a/tests-m32/creat.c +++ b/tests-m32/creat.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_creat diff --git a/tests-m32/create_tmpfile.c b/tests-m32/create_tmpfile.c new file mode 100644 index 00000000..56f4e60c --- /dev/null +++ b/tests-m32/create_tmpfile.c @@ -0,0 +1,46 @@ +/* + * Create a temporary file in the current directory. + * + * Copyright (c) 2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include + +#ifndef O_TMPFILE +# if defined __hppa__ +# define O_TMPFILE 040000000 +# elif defined __alpha__ +# define O_TMPFILE 0100000000 +# elif defined __sparc__ +# define O_TMPFILE 0200000000 +# else +# define O_TMPFILE 020000000 +# endif +#endif + +int +create_tmpfile(unsigned int flags) +{ + int fd = open(".", O_TMPFILE | O_DIRECTORY | O_EXCL | flags, 0600); + + if (fd < 0) { + /* + * Since every test is executed in a separate directory, + * there is no need to protect from race conditions. + */ + static const char fname[] = "create_tmpfile"; + + fd = open(fname, O_CREAT | O_EXCL | flags, 0600); + if (fd < 0) + perror_msg_and_fail("open: %s", fname); + if (unlink(fname)) + perror_msg_and_fail("unlink: %s", fname); + } + + return fd; +} diff --git a/tests-m32/delay.c b/tests-m32/delay.c index fb19b157..1b54c443 100644 --- a/tests-m32/delay.c +++ b/tests-m32/delay.c @@ -1,13 +1,14 @@ /* * Check delay injection. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include #include #include #include @@ -16,7 +17,7 @@ #include #include #include -#include +#include "scno.h" static int64_t usecs_from_tv(const struct timeval *const tv) @@ -30,6 +31,22 @@ usecs_from_ts(const struct timespec *const ts) return (int64_t) ts->tv_sec * 1000000 + ts->tv_nsec / 1000; } +static void +check_(const int64_t got, const bool ge, const int64_t orig, const int nproc, + const int exitcode) +{ + const int64_t thresh = (orig * (ge ? nproc - 1 : nproc + 1)) / nproc; + + if (ge ? got >= thresh : got <= thresh) + return; + + fprintf(stderr, "Got delay of %" PRId64 ", %s than threshold value of " + "%" PRId64 " (expected nominal delay value is %" PRId64 + ")\n", got, ge ? "less" : "more", thresh, orig); + + _exit(exitcode); +} + static void check_delay(const struct timeval *const tv0, const struct timespec *const ts, @@ -42,17 +59,10 @@ check_delay(const struct timeval *const tv0, const int64_t us = usecs_from_ts(ts); const int64_t us1 = usecs_from_tv(tv1); - if (us - us0 < delay_exit * (nproc - 1) / nproc) - _exit(1); - - if (us - us0 > delay_exit * (nproc + 1) / nproc) - _exit(2); - - if (us1 - us < delay_enter * (nproc - 1) / nproc) - _exit(3); - - if (us1 - us > delay_enter * (nproc + 1) / nproc) - _exit(4); + check_(us - us0, true, delay_exit, nproc, 1); + check_(us - us0, false, delay_exit, nproc, 2); + check_(us1 - us, true, delay_enter, nproc, 3); + check_(us1 - us, false, delay_enter, nproc, 4); } static void diff --git a/tests-m32/delay.test b/tests-m32/delay.test index df8552c7..f74e27f1 100755 --- a/tests-m32/delay.test +++ b/tests-m32/delay.test @@ -2,15 +2,22 @@ # # Check delay injection. # -# Copyright (c) 2018 The strace developers. +# Copyright (c) 2018-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" -delay_enter=800000 -delay_exit=1600000 -run_strace -f -r -egettimeofday \ - -einject=gettimeofday:delay_enter=$delay_enter:delay_exit=$delay_exit \ - ../delay 4 $delay_enter $delay_exit +while read -r denter dexit denter_us dexit_us; do + [ -n "$denter" ] || continue + + run_strace --follow-forks -r -egettimeofday \ + -einject=gettimeofday:delay_enter=$denter:delay_exit=$dexit \ + ../delay 4 $denter_us $dexit_us +done <<-EOF + 800000 1600000 800000 1600000 + 8e5 1.6s 800000 1600000 + 800ms 1.6e+6us 800000 1600000 + +8e8ns .16E7 800000 1600000 +EOF diff --git a/tests-m32/delete_module.c b/tests-m32/delete_module.c index 3b2614c1..ad2bca67 100644 --- a/tests-m32/delete_module.c +++ b/tests-m32/delete_module.c @@ -2,7 +2,7 @@ * Check decoding of delete_module syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_delete_module) diff --git a/tests-m32/dev--decode-fds-dev.c b/tests-m32/dev--decode-fds-dev.c new file mode 100644 index 00000000..eb8eb5e8 --- /dev/null +++ b/tests-m32/dev--decode-fds-dev.c @@ -0,0 +1,2 @@ +#define PRINT_DEVNUM 1 +#include "dev-yy.c" diff --git a/tests-m32/dev--decode-fds-dev.gen.test b/tests-m32/dev--decode-fds-dev.gen.test new file mode 100755 index 00000000..92983d0e --- /dev/null +++ b/tests-m32/dev--decode-fds-dev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dev--decode-fds-dev -a30 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" -e decode-fds=dev); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a30 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" -e decode-fds=dev diff --git a/tests-m32/dev--decode-fds-path.c b/tests-m32/dev--decode-fds-path.c new file mode 100644 index 00000000..2a5fa129 --- /dev/null +++ b/tests-m32/dev--decode-fds-path.c @@ -0,0 +1,2 @@ +#define PRINT_DEVNUM 0 +#include "dev-yy.c" diff --git a/tests-m32/dev--decode-fds-path.gen.test b/tests-m32/dev--decode-fds-path.gen.test new file mode 100755 index 00000000..0be131ed --- /dev/null +++ b/tests-m32/dev--decode-fds-path.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dev--decode-fds-path -a19 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" -e decode-fds=path); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a19 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" -e decode-fds=path diff --git a/tests-m32/dev--decode-fds-socket.c b/tests-m32/dev--decode-fds-socket.c new file mode 100644 index 00000000..2a5fa129 --- /dev/null +++ b/tests-m32/dev--decode-fds-socket.c @@ -0,0 +1,2 @@ +#define PRINT_DEVNUM 0 +#include "dev-yy.c" diff --git a/tests-m32/dev--decode-fds-socket.gen.test b/tests-m32/dev--decode-fds-socket.gen.test new file mode 100755 index 00000000..56085642 --- /dev/null +++ b/tests-m32/dev--decode-fds-socket.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dev--decode-fds-socket -a19 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" --decode-fds=socket); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a19 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" --decode-fds=socket diff --git a/tests-m32/dev-yy.c b/tests-m32/dev-yy.c index b9f55fa4..0ffb0c4c 100644 --- a/tests-m32/dev-yy.c +++ b/tests-m32/dev-yy.c @@ -1,7 +1,7 @@ /* * Check printing of character/block device numbers in -yy mode. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,12 +12,22 @@ #include #include -#include +#include "scno.h" #include #include +#ifndef PRINT_DEVNUM +# define PRINT_DEVNUM 1 +#endif + +#if PRINT_DEVNUM +# define DEV_FMT "<%s<%s %u:%u>>" +#else +# define DEV_FMT "<%s>" +#endif + #if defined __NR_openat && defined O_PATH int @@ -47,10 +57,13 @@ main(void) printf("openat(AT_FDCWD, \"%s\", O_RDONLY|O_PATH) = %s", checks[i].path, sprintrc(fd)); if (fd >= 0) - printf("<%s<%s %u:%u>>", - checks[i].path, - checks[i].blk ? "block" : "char", - checks[i].major, checks[i].minor); + printf(DEV_FMT, + checks[i].path +# if PRINT_DEVNUM + , checks[i].blk ? "block" : "char", + checks[i].major, checks[i].minor +# endif + ); puts(""); if (fd < 0) { @@ -63,9 +76,13 @@ main(void) int rc = fsync(fd); - printf("fsync(%ld<%s<%s %u:%u>>) = %s\n", - fd, checks[i].path, checks[i].blk ? "block" : "char", - checks[i].major, checks[i].minor, sprintrc(rc)); + printf("fsync(%ld" DEV_FMT ") = %s\n", + fd, checks[i].path, +# if PRINT_DEVNUM + checks[i].blk ? "block" : "char", + checks[i].major, checks[i].minor, +# endif + sprintrc(rc)); close(fd); } diff --git a/tests-m32/dup-P.c b/tests-m32/dup-P.c new file mode 100644 index 00000000..c65def8f --- /dev/null +++ b/tests-m32/dup-P.c @@ -0,0 +1,4 @@ +#define PATH_TRACING +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "dup.c" diff --git a/tests-m32/dup-P.gen.test b/tests-m32/dup-P.gen.test new file mode 100755 index 00000000..5d170a39 --- /dev/null +++ b/tests-m32/dup-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup-P -a7 --trace=dup -P /dev/full 9>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a7 --trace=dup -P /dev/full 9>>/dev/full diff --git a/tests-m32/dup-y.c b/tests-m32/dup-y.c new file mode 100644 index 00000000..285f20af --- /dev/null +++ b/tests-m32/dup-y.c @@ -0,0 +1,5 @@ +#define FD0_PATH "" +#define FD9_PATH "" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "dup.c" diff --git a/tests-m32/dup-y.gen.test b/tests-m32/dup-y.gen.test new file mode 100755 index 00000000..b29c05fe --- /dev/null +++ b/tests-m32/dup-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup-y -a8 --trace=dup -y 9>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a8 --trace=dup -y 9>>/dev/full diff --git a/tests-m32/dup-yy.c b/tests-m32/dup-yy.c new file mode 100644 index 00000000..2e8175d0 --- /dev/null +++ b/tests-m32/dup-yy.c @@ -0,0 +1,5 @@ +#define FD0_PATH ">" +#define FD9_PATH ">" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "dup.c" diff --git a/tests-m32/dup-yy.gen.test b/tests-m32/dup-yy.gen.test new file mode 100755 index 00000000..6f73d83a --- /dev/null +++ b/tests-m32/dup-yy.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup-yy -a8 --trace=dup -yy 9>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a8 --trace=dup -yy 9>>/dev/full diff --git a/tests-m32/dup.c b/tests-m32/dup.c index 5cf5df7c..d668e95e 100644 --- a/tests-m32/dup.c +++ b/tests-m32/dup.c @@ -1,20 +1,72 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Check decoding of dup syscall. + * + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include +#include "scno.h" + +#ifdef __NR_dup + +# include +# include + +# ifndef FD0_PATH +# define FD0_PATH "" +# endif +# ifndef FD9_PATH +# define FD9_PATH "" +# endif +# ifndef SKIP_IF_PROC_IS_UNAVAILABLE +# define SKIP_IF_PROC_IS_UNAVAILABLE +# endif + +static const char *errstr; + +static long +k_dup(const unsigned int fd) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | fd; + const long rc = syscall(__NR_dup, arg1, bad, bad, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} int main(void) { - int rc = dup(-1); - printf("dup(-1) = %d %s (%m)\n", rc, errno2name()); + SKIP_IF_PROC_IS_UNAVAILABLE; + + k_dup(-1); +# ifndef PATH_TRACING + printf("dup(-1) = %s\n", errstr); +# endif + + int d1 = k_dup(0); +# ifndef PATH_TRACING + printf("dup(0" FD0_PATH ") = %d" FD0_PATH "\n", d1); +# endif + + int d2 = k_dup(d1); +# ifndef PATH_TRACING + printf("dup(%d" FD0_PATH ") = %d" FD0_PATH "\n", d1, d2); +# endif + + d2 = k_dup(9); + printf("dup(9" FD9_PATH ") = %d" FD9_PATH "\n", d2); puts("+++ exited with 0 +++"); return 0; } + +#else + +SKIP_MAIN_UNDEFINED("__NR_dup") + +#endif diff --git a/tests-m32/dup.gen.test b/tests-m32/dup.gen.test index e559cdbc..6e9a4f79 100755 --- a/tests-m32/dup.gen.test +++ b/tests-m32/dup.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup -a8 ); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup -a7 9>>/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a8 +run_strace_match_diff -a7 9>>/dev/full diff --git a/tests-m32/dup2-P.c b/tests-m32/dup2-P.c new file mode 100644 index 00000000..f9603eab --- /dev/null +++ b/tests-m32/dup2-P.c @@ -0,0 +1,4 @@ +#define PATH_TRACING +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "dup2.c" diff --git a/tests-m32/dup2-P.gen.test b/tests-m32/dup2-P.gen.test new file mode 100755 index 00000000..98df93e6 --- /dev/null +++ b/tests-m32/dup2-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup2-P -a11 --trace=dup2 -P /dev/full 9>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a11 --trace=dup2 -P /dev/full 9>>/dev/full diff --git a/tests-m32/dup2-y.c b/tests-m32/dup2-y.c new file mode 100644 index 00000000..6b64663c --- /dev/null +++ b/tests-m32/dup2-y.c @@ -0,0 +1,5 @@ +#define FD0_PATH "" +#define FD9_PATH "" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "dup2.c" diff --git a/tests-m32/dup2-y.gen.test b/tests-m32/dup2-y.gen.test new file mode 100755 index 00000000..79d89c53 --- /dev/null +++ b/tests-m32/dup2-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup2-y -a13 --trace=dup2 -y 9>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a13 --trace=dup2 -y 9>>/dev/full diff --git a/tests-m32/dup2-yy.c b/tests-m32/dup2-yy.c new file mode 100644 index 00000000..6040579c --- /dev/null +++ b/tests-m32/dup2-yy.c @@ -0,0 +1,5 @@ +#define FD0_PATH ">" +#define FD9_PATH ">" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "dup2.c" diff --git a/tests-m32/dup2-yy.gen.test b/tests-m32/dup2-yy.gen.test new file mode 100755 index 00000000..1c7ff8ea --- /dev/null +++ b/tests-m32/dup2-yy.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup2-yy -a13 --trace=dup2 -yy 9>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a13 --trace=dup2 -yy 9>>/dev/full diff --git a/tests-m32/dup2.c b/tests-m32/dup2.c index fba8fca5..ec735e92 100644 --- a/tests-m32/dup2.c +++ b/tests-m32/dup2.c @@ -1,27 +1,117 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Check decoding of dup2 syscall. + * + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_dup2 # include # include +# ifndef FD0_PATH +# define FD0_PATH "" +# endif +# ifndef FD9_PATH +# define FD9_PATH "" +# endif +# ifndef SKIP_IF_PROC_IS_UNAVAILABLE +# define SKIP_IF_PROC_IS_UNAVAILABLE +# endif + +static const char *errstr; + +static long +k_dup2(const unsigned int fd1, const unsigned int fd2) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | fd1; + const kernel_ulong_t arg2 = fill | fd2; + const long rc = syscall(__NR_dup2, arg1, arg2, bad, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + int main(void) { - const long int fd_old = (long int) 0xdeadbeefffffffffULL; - const long int fd_new = (long int) 0xdeadbeeffffffffeULL; + SKIP_IF_PROC_IS_UNAVAILABLE; + + int fd0 = dup(0); + int fd9 = dup(9); + + if (k_dup2(0, 0)) + perror_msg_and_skip("dup2"); +# ifndef PATH_TRACING + printf("dup2(0" FD0_PATH ", 0" FD0_PATH ") = 0" FD0_PATH "\n"); +# endif + + k_dup2(-1, -2); +# ifndef PATH_TRACING + printf("dup2(-1, -2) = %s\n", errstr); +# endif + + k_dup2(-2, -1); +# ifndef PATH_TRACING + printf("dup2(-2, -1) = %s\n", errstr); +# endif + + k_dup2(-3, 0); +# ifndef PATH_TRACING + printf("dup2(-3, 0" FD0_PATH ") = %s\n", errstr); +# endif + + k_dup2(0, -4); +# ifndef PATH_TRACING + printf("dup2(0" FD0_PATH ", -4) = %s\n", errstr); +# endif + + k_dup2(-5, 9); + printf("dup2(-5, 9" FD9_PATH ") = %s\n", errstr); + + k_dup2(9, -6); + printf("dup2(9" FD9_PATH ", -6) = %s\n", errstr); + + k_dup2(9, 9); + printf("dup2(9" FD9_PATH ", 9" FD9_PATH ") = 9" FD9_PATH "\n"); + + k_dup2(0, fd0); +# ifndef PATH_TRACING + printf("dup2(0" FD0_PATH ", %d" FD0_PATH ") = %d" FD0_PATH "\n", + fd0, fd0); +# endif + + k_dup2(9, fd9); + printf("dup2(9" FD9_PATH ", %d" FD9_PATH ") = %d" FD9_PATH "\n", + fd9, fd9); + + k_dup2(0, fd9); + printf("dup2(0" FD0_PATH ", %d" FD9_PATH ") = %d" FD0_PATH "\n", + fd9, fd9); + + k_dup2(9, fd0); + printf("dup2(9" FD9_PATH ", %d" FD0_PATH ") = %d" FD9_PATH "\n", + fd0, fd0); + + close(fd0); + close(fd9); + + k_dup2(0, fd0); +# ifndef PATH_TRACING + printf("dup2(0" FD0_PATH ", %d) = %d" FD0_PATH "\n", + fd0, fd0); +# endif - long rc = syscall(__NR_dup2, fd_old, fd_new); - printf("dup2(%d, %d) = %ld %s (%m)\n", - (int) fd_old, (int) fd_new, rc, errno2name()); + k_dup2(9, fd9); + printf("dup2(9" FD9_PATH ", %d) = %d" FD9_PATH "\n", + fd9, fd9); puts("+++ exited with 0 +++"); return 0; diff --git a/tests-m32/dup2.gen.test b/tests-m32/dup2.gen.test index 6a6d2f58..6d2c0688 100755 --- a/tests-m32/dup2.gen.test +++ b/tests-m32/dup2.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup2 -a13 ); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup2 -a11 9>>/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a13 +run_strace_match_diff -a11 9>>/dev/full diff --git a/tests-m32/dup3-P.c b/tests-m32/dup3-P.c new file mode 100644 index 00000000..09ddb93e --- /dev/null +++ b/tests-m32/dup3-P.c @@ -0,0 +1,4 @@ +#define PATH_TRACING +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "dup3.c" diff --git a/tests-m32/dup3-P.gen.test b/tests-m32/dup3-P.gen.test new file mode 100755 index 00000000..ad77199c --- /dev/null +++ b/tests-m32/dup3-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup3-P -a13 --trace=dup3 -P /dev/full 7>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a13 --trace=dup3 -P /dev/full 7>>/dev/full diff --git a/tests-m32/dup3-y.c b/tests-m32/dup3-y.c new file mode 100644 index 00000000..730a9200 --- /dev/null +++ b/tests-m32/dup3-y.c @@ -0,0 +1,5 @@ +#define FD0_PATH "" +#define FD7_PATH "" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "dup3.c" diff --git a/tests-m32/dup3-y.gen.test b/tests-m32/dup3-y.gen.test new file mode 100755 index 00000000..0c74ee0c --- /dev/null +++ b/tests-m32/dup3-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup3-y -a15 --trace=dup3 -y 7>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a15 --trace=dup3 -y 7>>/dev/full diff --git a/tests-m32/dup3-yy.c b/tests-m32/dup3-yy.c new file mode 100644 index 00000000..24d7988b --- /dev/null +++ b/tests-m32/dup3-yy.c @@ -0,0 +1,5 @@ +#define FD0_PATH ">" +#define FD7_PATH ">" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "dup3.c" diff --git a/tests-m32/dup3-yy.gen.test b/tests-m32/dup3-yy.gen.test new file mode 100755 index 00000000..6581ef5c --- /dev/null +++ b/tests-m32/dup3-yy.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup3-yy -a15 --trace=dup3 -yy 7>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a15 --trace=dup3 -yy 7>>/dev/full diff --git a/tests-m32/dup3.c b/tests-m32/dup3.c index 741e06f8..93025724 100644 --- a/tests-m32/dup3.c +++ b/tests-m32/dup3.c @@ -1,28 +1,140 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Check decoding of dup3 syscall. + * + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include +#include "scno.h" -#if defined __NR_dup3 && defined O_CLOEXEC +#ifdef __NR_dup3 +# include # include # include +# ifndef O_CLOEXEC +# if defined __alpha__ || defined __hppa__ +# define O_CLOEXEC 010000000 +# elif defined __sparc__ +# define O_CLOEXEC 020000000 +# else +# define O_CLOEXEC 02000000 +# endif +# endif /* !O_CLOEXEC */ + +# ifndef FD0_PATH +# define FD0_PATH "" +# endif +# ifndef FD7_PATH +# define FD7_PATH "" +# endif +# ifndef SKIP_IF_PROC_IS_UNAVAILABLE +# define SKIP_IF_PROC_IS_UNAVAILABLE +# endif + +static const char *errstr; + +static long +k_dup3(const unsigned int fd1, const unsigned int fd2, const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | fd1; + const kernel_ulong_t arg2 = fill | fd2; + const kernel_ulong_t arg3 = fill | flags; + const long rc = syscall(__NR_dup3, arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + int main(void) { - const long int fd_old = (long int) 0xdeadbeefffffffffULL; - const long int fd_new = (long int) 0xdeadbeeffffffffeULL; + SKIP_IF_PROC_IS_UNAVAILABLE; + + int fd0 = dup(0); + int fd7 = dup(7); + + k_dup3(0, 0, 0); +# ifndef PATH_TRACING + printf("dup3(0" FD0_PATH ", 0" FD0_PATH ", 0) = %s\n", errstr); +# endif + + k_dup3(-1, -2, O_CLOEXEC); +# ifndef PATH_TRACING + printf("dup3(-1, -2, O_CLOEXEC) = %s\n", errstr); +# endif + + k_dup3(-2, -1, O_TRUNC); +# ifndef PATH_TRACING + printf("dup3(-2, -1, O_TRUNC) = %s\n", errstr); +# endif + + k_dup3(-3, 0, O_TRUNC | O_CLOEXEC); +# ifndef PATH_TRACING + printf("dup3(-3, 0" FD0_PATH ", O_TRUNC|O_CLOEXEC) = %s\n", errstr); +# endif + + k_dup3(0, -4, O_RDONLY); +# ifndef PATH_TRACING + printf("dup3(0" FD0_PATH ", -4, 0) = %s\n", errstr); +# endif + + k_dup3(-5, 7, O_WRONLY); + printf("dup3(-5, 7" FD7_PATH ", 0x1 /* O_??? */) = %s\n", errstr); + + k_dup3(7, -6, O_RDWR); + printf("dup3(7" FD7_PATH ", -6, 0x2 /* O_??? */) = %s\n", errstr); + + k_dup3(7, 7, O_CLOEXEC); + printf("dup3(7" FD7_PATH ", 7" FD7_PATH ", O_CLOEXEC) = %s\n", errstr); + + k_dup3(-7, -7, 7); +# ifndef PATH_TRACING + printf("dup3(-7, -7, %s) = %s\n", +# ifdef __sparc__ + "O_NDELAY|0x3" +# else + "0x7 /* O_??? */" +# endif + , errstr); +# endif + + if (k_dup3(0, fd0, O_CLOEXEC) != fd0) + perror_msg_and_skip("dup3"); +# ifndef PATH_TRACING + printf("dup3(0" FD0_PATH ", %d" FD0_PATH ", O_CLOEXEC) = %d" FD0_PATH + "\n", fd0, fd0); +# endif + + k_dup3(7, fd7, 0); + printf("dup3(7" FD7_PATH ", %d" FD7_PATH ", 0) = %d" FD7_PATH + "\n", fd7, fd7); + + k_dup3(0, fd7, O_CLOEXEC); + printf("dup3(0" FD0_PATH ", %d" FD7_PATH ", O_CLOEXEC) = %d" FD0_PATH + "\n", fd7, fd7); + + k_dup3(7, fd0, 0); + printf("dup3(7" FD7_PATH ", %d" FD0_PATH ", 0) = %d" FD7_PATH + "\n", fd0, fd0); + + close(fd0); + close(fd7); + + k_dup3(0, fd0, O_CLOEXEC); +# ifndef PATH_TRACING + printf("dup3(0" FD0_PATH ", %d, O_CLOEXEC) = %d" FD0_PATH "\n", + fd0, fd0); +# endif - long rc = syscall(__NR_dup3, fd_old, fd_new, O_CLOEXEC); - printf("dup3(%d, %d, O_CLOEXEC) = %ld %s (%m)\n", - (int) fd_old, (int) fd_new, rc, errno2name()); + k_dup3(7, fd7, 0); + printf("dup3(7" FD7_PATH ", %d, 0) = %d" FD7_PATH "\n", + fd7, fd7); puts("+++ exited with 0 +++"); return 0; @@ -30,6 +142,6 @@ main(void) #else -SKIP_MAIN_UNDEFINED("__NR_dup3 && O_CLOEXEC") +SKIP_MAIN_UNDEFINED("__NR_dup3") #endif diff --git a/tests-m32/dup3.gen.test b/tests-m32/dup3.gen.test index 776b9a79..f5aeb036 100755 --- a/tests-m32/dup3.gen.test +++ b/tests-m32/dup3.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup3 -a24 ); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup3 -a13 7>>/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a24 +run_strace_match_diff -a13 7>>/dev/full diff --git a/tests-m32/epoll_create.c b/tests-m32/epoll_create.c index 42cc8d04..9b808cce 100644 --- a/tests-m32/epoll_create.c +++ b/tests-m32/epoll_create.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_epoll_create diff --git a/tests-m32/epoll_create1.c b/tests-m32/epoll_create1.c index 81b33825..f01867cc 100644 --- a/tests-m32/epoll_create1.c +++ b/tests-m32/epoll_create1.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -7,7 +8,7 @@ #include "tests.h" #include -#include +#include "scno.h" #if defined __NR_epoll_create1 && defined O_CLOEXEC diff --git a/tests-m32/epoll_ctl.c b/tests-m32/epoll_ctl.c index 85a288cd..b1e7a063 100644 --- a/tests-m32/epoll_ctl.c +++ b/tests-m32/epoll_ctl.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_epoll_ctl diff --git a/tests-m32/epoll_pwait.c b/tests-m32/epoll_pwait.c index ce95e6dc..1e283463 100644 --- a/tests-m32/epoll_pwait.c +++ b/tests-m32/epoll_pwait.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_epoll_pwait diff --git a/tests-m32/epoll_wait.c b/tests-m32/epoll_wait.c index 3981905d..21c48511 100644 --- a/tests-m32/epoll_wait.c +++ b/tests-m32/epoll_wait.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_epoll_wait diff --git a/tests-m32/eventfd.c b/tests-m32/eventfd.c index 75d33dd7..4c78dced 100644 --- a/tests-m32/eventfd.c +++ b/tests-m32/eventfd.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -8,7 +9,7 @@ #include "tests.h" #include #include -#include +#include "scno.h" #if defined __NR_eventfd2 && defined O_CLOEXEC diff --git a/tests-m32/execveat.c b/tests-m32/execveat.c index 629a69ab..c8b1f4cd 100644 --- a/tests-m32/execveat.c +++ b/tests-m32/execveat.c @@ -2,14 +2,13 @@ * This file is part of execveat strace test. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_execveat diff --git a/tests-m32/faccessat-P.c b/tests-m32/faccessat-P.c new file mode 100644 index 00000000..0024d554 --- /dev/null +++ b/tests-m32/faccessat-P.c @@ -0,0 +1,4 @@ +#define PATH_TRACING +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "faccessat.c" diff --git a/tests-m32/faccessat-P.gen.test b/tests-m32/faccessat-P.gen.test new file mode 100755 index 00000000..9210a5fc --- /dev/null +++ b/tests-m32/faccessat-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (faccessat-P -a23 --trace=faccessat -P /dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a23 --trace=faccessat -P /dev/full diff --git a/tests-m32/faccessat-y.c b/tests-m32/faccessat-y.c new file mode 100644 index 00000000..61f67d73 --- /dev/null +++ b/tests-m32/faccessat-y.c @@ -0,0 +1,4 @@ +#define FD_PATH "" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "faccessat.c" diff --git a/tests-m32/faccessat-y.gen.test b/tests-m32/faccessat-y.gen.test new file mode 100755 index 00000000..bc0db7f7 --- /dev/null +++ b/tests-m32/faccessat-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (faccessat-y +faccessat.test -a24 -y); do not edit. +set -- -a24 -y +. "${srcdir=.}/faccessat.test" diff --git a/tests-m32/faccessat-yy.c b/tests-m32/faccessat-yy.c new file mode 100644 index 00000000..b516240a --- /dev/null +++ b/tests-m32/faccessat-yy.c @@ -0,0 +1,4 @@ +#define FD_PATH ">" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "faccessat.c" diff --git a/tests-m32/faccessat-yy.gen.test b/tests-m32/faccessat-yy.gen.test new file mode 100755 index 00000000..e4a82246 --- /dev/null +++ b/tests-m32/faccessat-yy.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (faccessat-yy +faccessat.test -a24 -yy); do not edit. +set -- -a24 -yy +. "${srcdir=.}/faccessat.test" diff --git a/tests-m32/faccessat.c b/tests-m32/faccessat.c index 6d95555a..b5498bc7 100644 --- a/tests-m32/faccessat.c +++ b/tests-m32/faccessat.c @@ -1,27 +1,144 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Check decoding of faccessat syscall. + * + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_faccessat +# include # include # include +# ifndef FD_PATH +# define FD_PATH "" +# endif +# ifndef SKIP_IF_PROC_IS_UNAVAILABLE +# define SKIP_IF_PROC_IS_UNAVAILABLE +# endif + +static const char *errstr; + +static long +k_faccessat(const unsigned int dirfd, + const void *const pathname, + const unsigned int mode) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + + const kernel_ulong_t arg1 = fill | dirfd; + const kernel_ulong_t arg2 = (uintptr_t) pathname; + const kernel_ulong_t arg3 = fill | mode; + const long rc = syscall(__NR_faccessat, + arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + int main(void) { - static const char sample[] = "faccessat.sample"; - const long int fd = (long int) 0xdeadbeefffffffffULL; + SKIP_IF_PROC_IS_UNAVAILABLE; + + TAIL_ALLOC_OBJECT_CONST_PTR(const char, unterminated); + char *unterminated_str; + if (asprintf(&unterminated_str, "%p", unterminated) < 0) + perror_msg_and_fail("asprintf"); + const void *const efault = unterminated + 1; + char *efault_str; + if (asprintf(&efault_str, "%p", efault) < 0) + perror_msg_and_fail("asprintf"); + + typedef struct { + char sym; + char null; + } sym_null; + + TAIL_ALLOC_OBJECT_CONST_PTR(sym_null, dot); + dot->sym = '.'; + dot->null = '\0'; + const char *const null = &dot->null; + + TAIL_ALLOC_OBJECT_CONST_PTR(sym_null, slash); + slash->sym = '/'; + slash->null = '\0'; + + static const char path[] = "/dev/full"; + const char *const fd_path = tail_memdup(path, sizeof(path)); + int fd = open(path, O_WRONLY); + if (fd < 0) + perror_msg_and_fail("open: %s", path); + char *fd_str; + if (asprintf(&fd_str, "%d%s", fd, FD_PATH) < 0) + perror_msg_and_fail("asprintf"); + char *path_quoted; + if (asprintf(&path_quoted, "\"%s\"", path) < 0) + perror_msg_and_fail("asprintf"); + + struct { + int val; + const char *str; + } dirfds[] = { + { ARG_STR(-1) }, + { -100, "AT_FDCWD" }, + { fd, fd_str }, + }, modes[] = { + { ARG_STR(F_OK) }, + { ARG_STR(R_OK) }, + { ARG_STR(W_OK) }, + { ARG_STR(X_OK) }, + { ARG_STR(R_OK|W_OK) }, + { ARG_STR(R_OK|X_OK) }, + { ARG_STR(W_OK|X_OK) }, + { ARG_STR(R_OK|W_OK|X_OK) }, + { 8, "0x8 /* ?_OK */" }, + { -1, "R_OK|W_OK|X_OK|0xfffffff8" }, + }; + + struct { + const void *val; + const char *str; + } paths[] = { + { 0, "NULL" }, + { efault, efault_str }, + { unterminated, unterminated_str }, + { null, "\"\"" }, + { &dot->sym, "\".\"" }, + { &slash->sym, "\"/\"" }, + { fd_path, path_quoted }, + }; - long rc = syscall(__NR_faccessat, fd, sample, F_OK); - printf("faccessat(%d, \"%s\", F_OK) = %ld %s (%m)\n", - (int) fd, sample, rc, errno2name()); + for (unsigned int dirfd_i = 0; + dirfd_i < ARRAY_SIZE(dirfds); + ++dirfd_i) { + for (unsigned int path_i = 0; + path_i < ARRAY_SIZE(paths); + ++path_i) { + for (unsigned int mode_i = 0; + mode_i < ARRAY_SIZE(modes); + ++mode_i) { + k_faccessat(dirfds[dirfd_i].val, + paths[path_i].val, + modes[mode_i].val); +# ifdef PATH_TRACING + if (dirfds[dirfd_i].val == fd || + paths[path_i].val == fd_path) +# endif + printf("faccessat(%s, %s, %s) = %s\n", + dirfds[dirfd_i].str, + paths[path_i].str, + modes[mode_i].str, + errstr); + } + } + } puts("+++ exited with 0 +++"); return 0; diff --git a/tests-m32/faccessat.gen.test b/tests-m32/faccessat.gen.test deleted file mode 100755 index 4ccec2aa..00000000 --- a/tests-m32/faccessat.gen.test +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (faccessat -P $NAME.sample); do not edit. -. "${srcdir=.}/init.sh" -run_strace_match_diff -P $NAME.sample diff --git a/tests-m32/faccessat.test b/tests-m32/faccessat.test new file mode 100755 index 00000000..7b368493 --- /dev/null +++ b/tests-m32/faccessat.test @@ -0,0 +1,19 @@ +#!/bin/sh +# +# Check decoding of faccessat syscall. +# +# Copyright (c) 2020 Dmitry V. Levin +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +check_prog sed + +run_prog > /dev/null +run_strace -a23 --trace=faccessat "$@" $args > "$EXP" + +# Filter out faccessat() calls made by ld.so and libc. +sed -n '/^faccessat(-1, NULL,/,$p' < "$LOG" > "$OUT" +match_diff "$OUT" "$EXP" diff --git a/tests-m32/faccessat2-P.c b/tests-m32/faccessat2-P.c new file mode 100644 index 00000000..0e6af948 --- /dev/null +++ b/tests-m32/faccessat2-P.c @@ -0,0 +1,4 @@ +#define PATH_TRACING +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "faccessat2.c" diff --git a/tests-m32/faccessat2-P.gen.test b/tests-m32/faccessat2-P.gen.test new file mode 100755 index 00000000..341f4a58 --- /dev/null +++ b/tests-m32/faccessat2-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (faccessat2-P -a27 --trace=faccessat2 -P /dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a27 --trace=faccessat2 -P /dev/full diff --git a/tests-m32/faccessat2-y.c b/tests-m32/faccessat2-y.c new file mode 100644 index 00000000..9337cb5d --- /dev/null +++ b/tests-m32/faccessat2-y.c @@ -0,0 +1,4 @@ +#define FD_PATH "" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "faccessat2.c" diff --git a/tests-m32/faccessat2-y.gen.test b/tests-m32/faccessat2-y.gen.test new file mode 100755 index 00000000..caeeb72a --- /dev/null +++ b/tests-m32/faccessat2-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (faccessat2-y +faccessat2.test -a28 -y); do not edit. +set -- -a28 -y +. "${srcdir=.}/faccessat2.test" diff --git a/tests-m32/faccessat2-yy.c b/tests-m32/faccessat2-yy.c new file mode 100644 index 00000000..a23f3d41 --- /dev/null +++ b/tests-m32/faccessat2-yy.c @@ -0,0 +1,4 @@ +#define FD_PATH ">" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "faccessat2.c" diff --git a/tests-m32/faccessat2-yy.gen.test b/tests-m32/faccessat2-yy.gen.test new file mode 100755 index 00000000..ecaeef2d --- /dev/null +++ b/tests-m32/faccessat2-yy.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (faccessat2-yy +faccessat2.test -a28 -yy); do not edit. +set -- -a28 -yy +. "${srcdir=.}/faccessat2.test" diff --git a/tests-m32/faccessat2.c b/tests-m32/faccessat2.c new file mode 100644 index 00000000..74d17cd5 --- /dev/null +++ b/tests-m32/faccessat2.c @@ -0,0 +1,174 @@ +/* + * Check decoding of faccessat2 syscall. + * + * Copyright (c) 2016-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_faccessat2 + +# include +# include +# include + +# define XLAT_MACROS_ONLY +# include "xlat/faccessat_flags.h" +# undef XLAT_MACROS_ONLY + +# ifndef FD_PATH +# define FD_PATH "" +# endif +# ifndef SKIP_IF_PROC_IS_UNAVAILABLE +# define SKIP_IF_PROC_IS_UNAVAILABLE +# endif + +static const char *errstr; + +static long +k_faccessat2(const unsigned int dirfd, + const void *const pathname, + const unsigned int mode, + const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + + const kernel_ulong_t arg1 = fill | dirfd; + const kernel_ulong_t arg2 = (uintptr_t) pathname; + const kernel_ulong_t arg3 = fill | mode; + const kernel_ulong_t arg4 = fill | flags; + const long rc = syscall(__NR_faccessat2, + arg1, arg2, arg3, arg4, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + SKIP_IF_PROC_IS_UNAVAILABLE; + + TAIL_ALLOC_OBJECT_CONST_PTR(const char, unterminated); + char *unterminated_str; + if (asprintf(&unterminated_str, "%p", unterminated) < 0) + perror_msg_and_fail("asprintf"); + const void *const efault = unterminated + 1; + char *efault_str; + if (asprintf(&efault_str, "%p", efault) < 0) + perror_msg_and_fail("asprintf"); + + typedef struct { + char sym; + char null; + } sym_null; + + TAIL_ALLOC_OBJECT_CONST_PTR(sym_null, dot); + dot->sym = '.'; + dot->null = '\0'; + const char *const null = &dot->null; + + TAIL_ALLOC_OBJECT_CONST_PTR(sym_null, slash); + slash->sym = '/'; + slash->null = '\0'; + + static const char path[] = "/dev/full"; + const char *const fd_path = tail_memdup(path, sizeof(path)); + int fd = open(path, O_WRONLY); + if (fd < 0) + perror_msg_and_fail("open: %s", path); + char *fd_str; + if (asprintf(&fd_str, "%d%s", fd, FD_PATH) < 0) + perror_msg_and_fail("asprintf"); + char *path_quoted; + if (asprintf(&path_quoted, "\"%s\"", path) < 0) + perror_msg_and_fail("asprintf"); + + struct { + int val; + const char *str; + } dirfds[] = { + { ARG_STR(-1) }, + { -100, "AT_FDCWD" }, + { fd, fd_str }, + }, modes[] = { + { ARG_STR(F_OK) }, + { ARG_STR(R_OK) }, + { ARG_STR(W_OK) }, + { ARG_STR(X_OK) }, + { ARG_STR(R_OK|W_OK) }, + { ARG_STR(R_OK|X_OK) }, + { ARG_STR(W_OK|X_OK) }, + { ARG_STR(R_OK|W_OK|X_OK) }, + { 8, "0x8 /* ?_OK */" }, + { -1, "R_OK|W_OK|X_OK|0xfffffff8" }, + }, flags[] = { + { ARG_STR(0) }, + { ARG_STR(AT_SYMLINK_NOFOLLOW) }, + { ARG_STR(AT_EACCESS) }, + { ARG_STR(AT_EMPTY_PATH) }, + { ARG_STR(AT_SYMLINK_NOFOLLOW|AT_EACCESS) }, + { ARG_STR(AT_SYMLINK_NOFOLLOW|AT_EMPTY_PATH) }, + { ARG_STR(AT_EACCESS|AT_EMPTY_PATH) }, + { ARG_STR(AT_SYMLINK_NOFOLLOW|AT_EACCESS|AT_EMPTY_PATH) }, + { 1, "0x1 /* AT_??? */" }, + { -1, "AT_SYMLINK_NOFOLLOW|AT_EACCESS|AT_EMPTY_PATH|0xffffecff" }, + }; + + struct { + const void *val; + const char *str; + } paths[] = { + { 0, "NULL" }, + { efault, efault_str }, + { unterminated, unterminated_str }, + { null, "\"\"" }, + { &dot->sym, "\".\"" }, + { &slash->sym, "\"/\"" }, + { fd_path, path_quoted }, + }; + + for (unsigned int dirfd_i = 0; + dirfd_i < ARRAY_SIZE(dirfds); + ++dirfd_i) { + for (unsigned int path_i = 0; + path_i < ARRAY_SIZE(paths); + ++path_i) { + for (unsigned int mode_i = 0; + mode_i < ARRAY_SIZE(modes); + ++mode_i) { + for (unsigned int flag_i = 0; + flag_i < ARRAY_SIZE(flags); + ++flag_i) { + k_faccessat2(dirfds[dirfd_i].val, + paths[path_i].val, + modes[mode_i].val, + flags[flag_i].val); +# ifdef PATH_TRACING + if (dirfds[dirfd_i].val == fd || + paths[path_i].val == fd_path) +# endif + printf("faccessat2(%s, %s, %s, %s) = %s\n", + dirfds[dirfd_i].str, + paths[path_i].str, + modes[mode_i].str, + flags[flag_i].str, + errstr); + } + } + } + } + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_faccessat2") + +#endif diff --git a/tests-m32/faccessat2.test b/tests-m32/faccessat2.test new file mode 100755 index 00000000..eea9ea9f --- /dev/null +++ b/tests-m32/faccessat2.test @@ -0,0 +1,19 @@ +#!/bin/sh +# +# Check decoding of faccessat2 syscall. +# +# Copyright (c) 2020 Dmitry V. Levin +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +check_prog sed + +run_prog > /dev/null +run_strace -a27 --trace=faccessat2 "$@" $args > "$EXP" + +# Filter out faccessat2() calls made by ld.so and libc. +sed -n '/^faccessat2(-1, NULL,/,$p' < "$LOG" > "$OUT" +match_diff "$OUT" "$EXP" diff --git a/tests-m32/fadvise64.c b/tests-m32/fadvise64.c index 1d7b6681..7cbd3ad4 100644 --- a/tests-m32/fadvise64.c +++ b/tests-m32/fadvise64.c @@ -3,7 +3,7 @@ * * Copyright (c) 2016 Eugene Syromyatnikov * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +11,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fadvise64 diff --git a/tests-m32/fadvise64_64.c b/tests-m32/fadvise64_64.c index 1520b7e4..292b8338 100644 --- a/tests-m32/fadvise64_64.c +++ b/tests-m32/fadvise64_64.c @@ -3,7 +3,7 @@ * * Copyright (c) 2016 Eugene Syromyatnikov * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +11,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __arm__ # ifdef __NR_arm_fadvise64_64 diff --git a/tests-m32/fallocate.c b/tests-m32/fallocate.c index 0e2284de..b48cd157 100644 --- a/tests-m32/fallocate.c +++ b/tests-m32/fallocate.c @@ -2,7 +2,7 @@ * Check decoding of fallocate syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_fallocate) && defined(HAVE_FALLOCATE) && HAVE_FALLOCATE diff --git a/tests-m32/fanotify_init.c b/tests-m32/fanotify_init.c index a3eeff53..f9fc9161 100644 --- a/tests-m32/fanotify_init.c +++ b/tests-m32/fanotify_init.c @@ -2,7 +2,7 @@ * Check decoding of fanotify_init syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined __NR_fanotify_init @@ -44,13 +44,14 @@ main(void) { F8ILL_KULONG_MASK, "FAN_CLASS_NOTIF" }, { (kernel_ulong_t) 0xffffffff0000000cULL, "0xc /* FAN_CLASS_??? */" }, - { (kernel_ulong_t) 0xdec0deddefacec04ULL, - "FAN_CLASS_CONTENT|0xefacec00 /* FAN_??? */" }, + { (kernel_ulong_t) 0xdec0deddeface004ULL, + "FAN_CLASS_CONTENT|0xeface000 /* FAN_??? */" }, { (kernel_ulong_t) 0xffffffffffffffffULL, "0xc /* FAN_CLASS_??? */|FAN_CLOEXEC|FAN_NONBLOCK|" "FAN_UNLIMITED_QUEUE|FAN_UNLIMITED_MARKS|" "FAN_ENABLE_AUDIT|FAN_REPORT_TID|FAN_REPORT_FID|" - "0xfffffc80" }, + "FAN_REPORT_DIR_FID|FAN_REPORT_NAME|" + "0xfffff080" }, }; static const struct strval event_f_flags[] = { { F8ILL_KULONG_MASK, "O_RDONLY" }, diff --git a/tests-m32/fanotify_mark.c b/tests-m32/fanotify_mark.c index 33d18253..f4bda84a 100644 --- a/tests-m32/fanotify_mark.c +++ b/tests-m32/fanotify_mark.c @@ -3,7 +3,7 @@ * * Copyright (c) 2015-2016 Dmitry V. Levin * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2015-2019 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +11,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined HAVE_SYS_FANOTIFY_H && defined HAVE_FANOTIFY_MARK && \ defined __NR_fanotify_mark @@ -68,11 +68,6 @@ struct strval { const char *str; }; -struct strval64 { - uint64_t val; - const char *str; -}; - # define STR16 "0123456789abcdef" # define STR64 STR16 STR16 STR16 STR16 @@ -150,15 +145,16 @@ main(void) "FAN_OPEN_PERM|" "FAN_ACCESS_PERM|" "FAN_OPEN_EXEC_PERM|" + "FAN_DIR_MODIFY|" "FAN_ONDIR|" "FAN_EVENT_ON_CHILD|" - "0xdeadfeedb7f8a000" + "0xdeadfeedb7f0a000" # endif # if XLAT_VERBOSE " */" # endif }, - { ARG_ULL_STR(0xffffffffb7f8a000) + { ARG_ULL_STR(0xffffffffb7f0a000) # if !XLAT_RAW " /* FAN_??? */" # endif diff --git a/tests-m32/fchdir.c b/tests-m32/fchdir.c index 118e5fea..ff0c64b5 100644 --- a/tests-m32/fchdir.c +++ b/tests-m32/fchdir.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fchdir diff --git a/tests-m32/fchmod.c b/tests-m32/fchmod.c index 4fa06727..3bf2da60 100644 --- a/tests-m32/fchmod.c +++ b/tests-m32/fchmod.c @@ -3,14 +3,14 @@ * * Copyright (c) 2016 Fabien Siron * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fchmod @@ -22,14 +22,7 @@ int main(void) { - static const char fname[] = "fchmod_test_file"; - - int fd = open(fname, O_CREAT|O_RDONLY, 0400); - if (fd < 0) - perror_msg_and_fail("open"); - - if (unlink(fname)) - perror_msg_and_fail("unlink"); + int fd = create_tmpfile(O_RDWR); long rc = syscall(__NR_fchmod, fd, 0600); printf("fchmod(%d, 0600) = %s\n", fd, sprintrc(rc)); diff --git a/tests-m32/fchmodat.c b/tests-m32/fchmodat.c index f2fa5dd0..3fdb5ef4 100644 --- a/tests-m32/fchmodat.c +++ b/tests-m32/fchmodat.c @@ -2,13 +2,14 @@ * Check decoding of fchmodat syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fchmodat diff --git a/tests-m32/fchown.c b/tests-m32/fchown.c index 98bfd9de..bc5ca24c 100644 --- a/tests-m32/fchown.c +++ b/tests-m32/fchown.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fchown diff --git a/tests-m32/fchown32.c b/tests-m32/fchown32.c index 9d52f9a8..9604aa0a 100644 --- a/tests-m32/fchown32.c +++ b/tests-m32/fchown32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fchown32 diff --git a/tests-m32/fchownat.c b/tests-m32/fchownat.c index 32167bc7..d790bd98 100644 --- a/tests-m32/fchownat.c +++ b/tests-m32/fchownat.c @@ -2,13 +2,14 @@ * Check decoding of fchownat syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #include #if defined __NR_fchownat && defined AT_FDCWD && defined AT_SYMLINK_NOFOLLOW diff --git a/tests-m32/fcntl--pidns-translation.c b/tests-m32/fcntl--pidns-translation.c new file mode 100644 index 00000000..e249424a --- /dev/null +++ b/tests-m32/fcntl--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "fcntl.c" diff --git a/tests-m32/fcntl--pidns-translation.gen.test b/tests-m32/fcntl--pidns-translation.gen.test new file mode 100755 index 00000000..7a93d8a6 --- /dev/null +++ b/tests-m32/fcntl--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fcntl--pidns-translation test_pidns -a8 -e trace=fcntl); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a8 -e trace=fcntl diff --git a/tests-m32/fcntl-common.c b/tests-m32/fcntl-common.c index b2125171..ec18aa79 100644 --- a/tests-m32/fcntl-common.c +++ b/tests-m32/fcntl-common.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -13,6 +13,8 @@ #include #include #include "flock.h" +#include "pidns.h" +#include "scno.h" #define FILE_LEN 4096 @@ -48,12 +50,14 @@ test_flock_einval(const int cmd, const char *name) fl->l_len = (TYPEOF_FLOCK_OFF_T) 0xdefaced2cafef00dULL; invoke_test_syscall(0, cmd, fl); + pidns_print_leader(); printf("%s(0, %s, {l_type=F_RDLCK, l_whence=SEEK_SET" ", l_start=%jd, l_len=%jd}) = %s\n", TEST_SYSCALL_STR, name, (intmax_t) fl->l_start, (intmax_t) fl->l_len, errstr); void *const bad_addr = (void *) fl + 1; invoke_test_syscall(0, cmd, bad_addr); + pidns_print_leader(); printf("%s(0, %s, %p) = %s\n", TEST_SYSCALL_STR, name, bad_addr, errstr); } @@ -72,12 +76,14 @@ test_flock64_einval(const int cmd, const char *name) fl->l_len = (TYPEOF_FLOCK_OFF_T) 0xdefaced2cafef00dULL; invoke_test_syscall(0, cmd, fl); + pidns_print_leader(); printf("%s(0, %s, {l_type=F_RDLCK, l_whence=SEEK_SET" ", l_start=%jd, l_len=%jd}) = %s\n", TEST_SYSCALL_STR, name, (intmax_t) fl->l_start, (intmax_t) fl->l_len, errstr); void *const bad_addr = (void *) fl + 1; invoke_test_syscall(0, cmd, bad_addr); + pidns_print_leader(); printf("%s(0, %s, %p) = %s\n", TEST_SYSCALL_STR, name, bad_addr, errstr); } @@ -94,6 +100,7 @@ test_flock(void) fl->l_len = FILE_LEN; long rc = invoke_test_syscall(0, F_SETLK, fl); + pidns_print_leader(); printf("%s(0, F_SETLK, {l_type=F_RDLCK, l_whence=SEEK_SET" ", l_start=0, l_len=%d}) = %s\n", TEST_SYSCALL_STR, FILE_LEN, errstr); @@ -101,11 +108,13 @@ test_flock(void) return; invoke_test_syscall(0, F_GETLK, fl); + pidns_print_leader(); printf("%s(0, F_GETLK, {l_type=F_UNLCK, l_whence=SEEK_SET" ", l_start=0, l_len=%d, l_pid=0}) = 0\n", TEST_SYSCALL_STR, FILE_LEN); invoke_test_syscall(0, F_SETLKW, fl); + pidns_print_leader(); printf("%s(0, F_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET" ", l_start=0, l_len=%d}) = 0\n", TEST_SYSCALL_STR, FILE_LEN); @@ -124,6 +133,7 @@ test_flock64_ofd(void) fl->l_len = FILE_LEN; long rc = invoke_test_syscall(0, F_OFD_SETLK, fl); + pidns_print_leader(); printf("%s(0, F_OFD_SETLK, {l_type=F_RDLCK, l_whence=SEEK_SET" ", l_start=0, l_len=%d}) = %s\n", TEST_SYSCALL_STR, FILE_LEN, errstr); @@ -131,11 +141,13 @@ test_flock64_ofd(void) return; invoke_test_syscall(0, F_OFD_GETLK, fl); + pidns_print_leader(); printf("%s(0, F_OFD_GETLK, {l_type=F_UNLCK, l_whence=SEEK_SET" ", l_start=0, l_len=%d, l_pid=0}) = 0\n", TEST_SYSCALL_STR, FILE_LEN); invoke_test_syscall(0, F_OFD_SETLKW, fl); + pidns_print_leader(); printf("%s(0, F_OFD_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET" ", l_start=0, l_len=%d}) = 0\n", TEST_SYSCALL_STR, FILE_LEN); @@ -167,18 +179,21 @@ test_flock64(void) static long test_f_owner_ex_type_pid(const int cmd, const char *const cmd_name, const int type, const char *const type_name, - pid_t pid) + enum pid_type pid_type, pid_t pid) { TAIL_ALLOC_OBJECT_CONST_PTR(struct_kernel_f_owner_ex, fo); fo->type = type; fo->pid = pid; long rc = invoke_test_syscall(0, cmd, fo); - printf("%s(0, %s, {type=%s, pid=%d}) = %s\n", - TEST_SYSCALL_STR, cmd_name, type_name, fo->pid, errstr); + pidns_print_leader(); + printf("%s(0, %s, {type=%s, pid=%d%s}) = %s\n", + TEST_SYSCALL_STR, cmd_name, type_name, + fo->pid, pidns_pid2str(pid_type), errstr); void *bad_addr = (void *) fo + 1; invoke_test_syscall(0, cmd, bad_addr); + pidns_print_leader(); printf("%s(0, %s, %p) = %s\n", TEST_SYSCALL_STR, cmd_name, bad_addr, errstr); @@ -187,35 +202,35 @@ test_f_owner_ex_type_pid(const int cmd, const char *const cmd_name, static void test_f_owner_ex_umove_or_printaddr(const int type, const char *const type_name, - pid_t pid) + enum pid_type pid_type, pid_t pid) { long rc = test_f_owner_ex_type_pid(ARG_STR(F_SETOWN_EX), - type, type_name, pid); + type, type_name, pid_type, pid); if (!rc) test_f_owner_ex_type_pid(ARG_STR(F_GETOWN_EX), - type, type_name, pid); + type, type_name, pid_type, pid); } static void test_f_owner_ex(void) { - static const struct { + struct { int type; const char *type_name; - pid_t pid[2]; + enum pid_type pid_type; + pid_t pid; } a[] = { - { ARG_STR(F_OWNER_TID), { 1234567890, 20 } }, - { ARG_STR(F_OWNER_PID), { 1298126790, 30 } }, - { ARG_STR(F_OWNER_PGRP), { 1294567890, 40 } } + { ARG_STR(F_OWNER_TID), PT_NONE, 1234567890 }, + { ARG_STR(F_OWNER_PID), PT_NONE, 1234567890 }, + { ARG_STR(F_OWNER_PGRP), PT_NONE, 1234567890 }, + { ARG_STR(F_OWNER_TID), PT_TID, syscall(__NR_gettid) }, + { ARG_STR(F_OWNER_PID), PT_TGID, getpid() }, + { ARG_STR(F_OWNER_PGRP), PT_PGID, getpgid(0) }, }; - for (unsigned int i = 0; i < ARRAY_SIZE(a); i++) { - for (unsigned int j = 0; j < ARRAY_SIZE(a[0].pid); j++) { - test_f_owner_ex_umove_or_printaddr(a[i].type, - a[i].type_name, - a[i].pid[j]); - } - } + for (unsigned int i = 0; i < ARRAY_SIZE(a); i++) + test_f_owner_ex_umove_or_printaddr(a[i].type, a[i].type_name, + a[i].pid_type, a[i].pid); } #endif /* TEST_F_OWNER_EX */ @@ -228,6 +243,23 @@ struct fcntl_cmd_check { void (*print_flags)(long rc); }; +static void +test_xetown(void) +{ + const int pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); + + invoke_test_syscall(0, F_SETOWN, (void *) (intptr_t) pid); + pidns_print_leader(); + printf("%s(0, F_SETOWN, %d%s) = %s\n", + TEST_SYSCALL_STR, pid, pid_str, errstr); + + invoke_test_syscall(0, F_GETOWN, NULL); + pidns_print_leader(); + printf("%s(0, F_GETOWN) = %d%s\n", + TEST_SYSCALL_STR, pid, pid_str); +} + static void print_retval_flags(const struct fcntl_cmd_check *check, long rc) { @@ -243,12 +275,14 @@ static void test_other_set_cmd(const struct fcntl_cmd_check *check) { invoke_test_syscall(check->fd, check->cmd, (void *) check->arg); + pidns_print_leader(); printf("%s(%d, %s, %s) = %s\n", TEST_SYSCALL_STR, check->fd, check->cmd_str, check->arg_str, errstr); /* bad file fd */ invoke_test_syscall(-1, check->cmd, (void *) check->arg); + pidns_print_leader(); printf("%s(-1, %s, %s) = %s\n", TEST_SYSCALL_STR, check->cmd_str, check->arg_str, errstr); @@ -258,12 +292,14 @@ static void test_other_get_cmd(const struct fcntl_cmd_check *check) { long rc = invoke_test_syscall(check->fd, check->cmd, NULL); + pidns_print_leader(); printf("%s(%d, %s) = ", TEST_SYSCALL_STR, check->fd, check->cmd_str); print_retval_flags(check, rc); /* bad file fd */ invoke_test_syscall(-1, check->cmd, NULL); + pidns_print_leader(); printf("%s(-1, %s) = %s\n", TEST_SYSCALL_STR, check->cmd_str, errstr); } @@ -315,7 +351,6 @@ test_fcntl_others(void) { static const struct fcntl_cmd_check set_checks[] = { { 0, ARG_STR(F_SETFD), ARG_STR(FD_CLOEXEC) }, - { 0, ARG_STR(F_SETOWN), ARG_STR(20) }, #ifdef F_SETPIPE_SZ { 0, ARG_STR(F_SETPIPE_SZ), ARG_STR(4097) }, #endif @@ -336,7 +371,6 @@ test_fcntl_others(void) static const struct fcntl_cmd_check get_checks[] = { { 0, ARG_STR(F_GETFD), .print_flags = print_flags_getfd }, { 1, ARG_STR(F_GETFD), .print_flags = print_flags_getfd }, - { 0, ARG_STR(F_GETOWN) }, #ifdef F_GETPIPE_SZ { 0, ARG_STR(F_GETPIPE_SZ) }, #endif @@ -352,20 +386,16 @@ test_fcntl_others(void) static void create_sample(void) { - char fname[] = TEST_SYSCALL_STR "_XXXXXX"; - (void) close(0); - if (mkstemp(fname)) - perror_msg_and_fail("mkstemp: %s", fname); - if (unlink(fname)) - perror_msg_and_fail("unlink: %s", fname); - if (ftruncate(0, FILE_LEN)) + if (ftruncate(create_tmpfile(O_RDWR), FILE_LEN)) perror_msg_and_fail("ftruncate"); } int main(void) { + PIDNS_TEST_INIT; + create_sample(); test_flock(); test_flock64(); @@ -373,7 +403,9 @@ main(void) test_f_owner_ex(); #endif test_fcntl_others(); + test_xetown(); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-m32/fcntl.c b/tests-m32/fcntl.c index bd9ffbdd..ca9c737b 100644 --- a/tests-m32/fcntl.c +++ b/tests-m32/fcntl.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fcntl @@ -24,6 +24,7 @@ test_flock64_undecoded(const int cmd, const char *name) .l_len = 0xdefaced2cafef00dULL }; invoke_test_syscall(0, cmd, &fl); + pidns_print_leader(); printf("%s(0, %s, %p) = %s\n", TEST_SYSCALL_STR, name, &fl, errstr); } diff --git a/tests-m32/fcntl64--pidns-translation.c b/tests-m32/fcntl64--pidns-translation.c new file mode 100644 index 00000000..c6fdadd1 --- /dev/null +++ b/tests-m32/fcntl64--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "fcntl64.c" diff --git a/tests-m32/fcntl64--pidns-translation.gen.test b/tests-m32/fcntl64--pidns-translation.gen.test new file mode 100755 index 00000000..3c464516 --- /dev/null +++ b/tests-m32/fcntl64--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fcntl64--pidns-translation test_pidns -a8 -e trace=fcntl64); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a8 -e trace=fcntl64 diff --git a/tests-m32/fcntl64.c b/tests-m32/fcntl64.c index 97277b2f..07df7224 100644 --- a/tests-m32/fcntl64.c +++ b/tests-m32/fcntl64.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fcntl64 @@ -27,6 +27,7 @@ test_flock64_lk64(void) fl->l_len = FILE_LEN; long rc = invoke_test_syscall(0, F_SETLK64, fl); + pidns_print_leader(); printf("%s(0, F_SETLK64, {l_type=F_RDLCK, l_whence=SEEK_SET" ", l_start=0, l_len=%d}) = %s\n", TEST_SYSCALL_STR, FILE_LEN, errstr); @@ -35,11 +36,13 @@ test_flock64_lk64(void) return; invoke_test_syscall(0, F_GETLK64, fl); + pidns_print_leader(); printf("%s(0, F_GETLK64, {l_type=F_UNLCK, l_whence=SEEK_SET" ", l_start=0, l_len=%d, l_pid=0}) = 0\n", TEST_SYSCALL_STR, FILE_LEN); invoke_test_syscall(0, F_SETLKW64, fl); + pidns_print_leader(); printf("%s(0, F_SETLKW64, {l_type=F_UNLCK, l_whence=SEEK_SET" ", l_start=0, l_len=%d}) = 0\n", TEST_SYSCALL_STR, FILE_LEN); diff --git a/tests-m32/fdatasync.c b/tests-m32/fdatasync.c index f4c8d55f..a1f2ba29 100644 --- a/tests-m32/fdatasync.c +++ b/tests-m32/fdatasync.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fdatasync diff --git a/tests-m32/file_handle.c b/tests-m32/file_handle.c index 38cd5af8..edabde61 100644 --- a/tests-m32/file_handle.c +++ b/tests-m32/file_handle.c @@ -3,14 +3,14 @@ * * Copyright (c) 2015-2016 Dmitry V. Levin * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_name_to_handle_at && defined __NR_open_by_handle_at diff --git a/tests-m32/file_ioctl.c b/tests-m32/file_ioctl.c index 7a2a905c..d0efb210 100644 --- a/tests-m32/file_ioctl.c +++ b/tests-m32/file_ioctl.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,6 +11,7 @@ # include # include +# include # include # include # include "xlat.h" diff --git a/tests-m32/fill_memory.c b/tests-m32/fill_memory.c index 3e09d597..f82314c2 100644 --- a/tests-m32/fill_memory.c +++ b/tests-m32/fill_memory.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -24,3 +24,39 @@ fill_memory(void *ptr, size_t size) { fill_memory_ex(ptr, size, 0x80, 0x80); } + +void +fill_memory16_ex(void *ptr, size_t size, uint16_t start, + unsigned int period) +{ + uint16_t *p = ptr; + size_t i; + + for (i = 0; i < size / sizeof(uint16_t); i++) { + p[i] = start + i % period; + } +} + +void +fill_memory16(void *ptr, size_t size) +{ + fill_memory16_ex(ptr, size, 0x80c0, 0x8000); +} + +void +fill_memory32_ex(void *ptr, size_t size, uint32_t start, + unsigned int period) +{ + uint32_t *p = ptr; + size_t i; + + for (i = 0; i < size / sizeof(uint32_t); i++) { + p[i] = start + i % period; + } +} + +void +fill_memory32(void *ptr, size_t size) +{ + fill_memory32_ex(ptr, size, 0x80a0c0e0, 0x80000000); +} diff --git a/tests-m32/filter_seccomp-flag.c b/tests-m32/filter_seccomp-flag.c new file mode 100644 index 00000000..480db894 --- /dev/null +++ b/tests-m32/filter_seccomp-flag.c @@ -0,0 +1,85 @@ +/* + * Check that syscall numbers do not conflict with seccomp filter flags. + * + * Copyright (c) 2019 Paul Chaignon + * Copyright (c) 2018-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "arch_defs.h" +#include "sysent.h" +#include "scno.h" + +/* PERSONALITY*_AUDIT_ARCH definitions depend on AUDIT_ARCH_* constants. */ +#ifdef PERSONALITY0_AUDIT_ARCH +# include +# define XLAT_MACROS_ONLY +# include "xlat/elf_em.h" +# include "xlat/audit_arch.h" +# undef XLAT_MACROS_ONLY +#endif + +/* Define these shorthand notations to simplify the syscallent files. */ +#include "sysent_shorthand_defs.h" + +const struct_sysent sysent0[] = { +#include "syscallent.h" +}; + +#if SUPPORTED_PERSONALITIES > 1 +const struct_sysent sysent1[] = { +# include "syscallent1.h" +}; +#endif + +#if SUPPORTED_PERSONALITIES > 2 +const struct_sysent sysent2[] = { +# include "syscallent2.h" +}; +#endif + +const unsigned int nsyscall_vec[SUPPORTED_PERSONALITIES] = { + ARRAY_SIZE(sysent0), +#if SUPPORTED_PERSONALITIES > 1 + ARRAY_SIZE(sysent1), +#endif +#if SUPPORTED_PERSONALITIES > 2 + ARRAY_SIZE(sysent2), +#endif +}; + +struct audit_arch_t { + unsigned int arch; + unsigned int flag; +}; + +static const struct audit_arch_t audit_arch_vec[SUPPORTED_PERSONALITIES] = { +#if SUPPORTED_PERSONALITIES > 1 + PERSONALITY0_AUDIT_ARCH, + PERSONALITY1_AUDIT_ARCH, +# if SUPPORTED_PERSONALITIES > 2 + PERSONALITY2_AUDIT_ARCH, +# endif +#endif +}; + +int +main(void) +{ + for (unsigned int p = 0; p < SUPPORTED_PERSONALITIES; ++p) { + if (!audit_arch_vec[p].flag) + continue; + for (unsigned int nr = 1; nr < nsyscall_vec[p]; ++nr) { + if (!(audit_arch_vec[p].flag & nr)) + continue; + error_msg_and_fail("system call number %u of" + " personality %u conflicts with" + " seccomp filter flag %#x", + nr, p, audit_arch_vec[p].flag); + } + } + return 0; +} diff --git a/tests-m32/filter_seccomp-flag.gen.test b/tests-m32/filter_seccomp-flag.gen.test new file mode 100755 index 00000000..b1185bec --- /dev/null +++ b/tests-m32/filter_seccomp-flag.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (filter_seccomp-flag ../$NAME ); do not edit. +. "${srcdir=.}/init.sh" +../$NAME diff --git a/tests-m32/filter_seccomp-perf.c b/tests-m32/filter_seccomp-perf.c new file mode 100644 index 00000000..742e1ebb --- /dev/null +++ b/tests-m32/filter_seccomp-perf.c @@ -0,0 +1,39 @@ +/* + * Check seccomp filter performance. + * + * Copyright (c) 2019 Paul Chaignon + * Copyright (c) 2018-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include +#include +#include + +static volatile bool stop = false; + +static void +handler(int signo) +{ + stop = true; +} + +int +main(void) +{ + unsigned int i; + int rc = 0; + + signal(SIGALRM, handler); + alarm(1); + + for (i = 0; !stop; i++) { + rc |= chdir("."); + } + printf("%d\n", i); + return rc; +} diff --git a/tests-m32/filter_seccomp-perf.test b/tests-m32/filter_seccomp-perf.test new file mode 100755 index 00000000..149d7044 --- /dev/null +++ b/tests-m32/filter_seccomp-perf.test @@ -0,0 +1,27 @@ +#!/bin/sh +# +# Check seccomp filter performance. +# +# Copyright (c) 2019 Paul Chaignon +# Copyright (c) 2018-2019 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" +. "${srcdir=.}/filter_seccomp.sh" + +args="-f -qq -e signal=none -e trace=fchdir ../$NAME" +num_regular="$(run_strace $args)" +mv "$LOG" "$LOG.regular" +num_seccomp="$(run_strace --seccomp-bpf $args)" +mv "$LOG" "$LOG.seccomp" +match_diff "$LOG.regular" "$LOG.seccomp" + +min_ratio=6 +# With seccomp filter enabled, we should be able to complete +# at least $min_ratio times more chdir system calls. +ratio="$((num_seccomp / num_regular))" +if [ "$ratio" -lt "$min_ratio" ]; then + fail_ "Only $ratio times more syscalls performed with seccomp filter enabled, expected at least $min_ratio times speedup" +fi diff --git a/tests-m32/filter_seccomp.gen.test b/tests-m32/filter_seccomp.gen.test new file mode 100755 index 00000000..d41da057 --- /dev/null +++ b/tests-m32/filter_seccomp.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (filter_seccomp . "${srcdir=.}/filter_seccomp.sh"; test_prog_set --seccomp-bpf -f); do not edit. +. "${srcdir=.}/init.sh" +. "${srcdir=.}/filter_seccomp.sh"; test_prog_set --seccomp-bpf -f diff --git a/tests-m32/filter_seccomp.in b/tests-m32/filter_seccomp.in new file mode 100644 index 00000000..76e4d7e6 --- /dev/null +++ b/tests-m32/filter_seccomp.in @@ -0,0 +1,4 @@ +fork-f -a26 -qq -e signal=none -e trace=chdir +vfork-f -a26 -qq -e signal=none -e trace=chdir +fork-f -a26 -qq -e signal=none -e trace=chdir,%memory,%ipc,%pure,%signal,%network -e status=failed +status-none-f -e trace=!ptrace -e status=none diff --git a/tests-m32/filter_seccomp.sh b/tests-m32/filter_seccomp.sh new file mode 100755 index 00000000..cf5dee57 --- /dev/null +++ b/tests-m32/filter_seccomp.sh @@ -0,0 +1,14 @@ +#!/bin/sh +# +# Skip the test if seccomp filter is not available. +# +# Copyright (c) 2018-2019 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +$STRACE --seccomp-bpf -f -e trace=fchdir / > /dev/null 2> "$LOG" ||: +if grep -x "[^:]*strace: seccomp filter is requested but unavailable" \ + "$LOG" > /dev/null; then + skip_ 'seccomp filter is unavailable' +fi diff --git a/tests-m32/filtering_fd-syntax.test b/tests-m32/filtering_fd-syntax.test index 53bf1b1c..00d9f47a 100755 --- a/tests-m32/filtering_fd-syntax.test +++ b/tests-m32/filtering_fd-syntax.test @@ -3,7 +3,7 @@ # Check descriptor set parsing syntax. # # Copyright (c) 2016 Dmitry V. Levin -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -14,8 +14,10 @@ check_fd_qualify() { check_e "invalid descriptor '$1'" -e"read=$2" check_e "invalid descriptor '$1'" -e "read=$2" + check_e "invalid descriptor '$1'" "--read=$2" check_e "invalid descriptor '$1'" -e"write=$2" check_e "invalid descriptor '$1'" -e "write=$2" + check_e "invalid descriptor '$1'" "--write=$2" } for arg in '' , ,, ,,, ; do diff --git a/tests-m32/filtering_syscall-syntax.test b/tests-m32/filtering_syscall-syntax.test index fe42edbe..8dd83cde 100755 --- a/tests-m32/filtering_syscall-syntax.test +++ b/tests-m32/filtering_syscall-syntax.test @@ -4,6 +4,7 @@ # # Copyright (c) 2016-2018 Dmitry V. Levin # Copyright (c) 2017 Nikolay Marchuk +# Copyright (c) 2018-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -16,37 +17,51 @@ check_syscall() check_e "invalid system call '$1'" -e "$2" check_e "invalid system call '$1'" -etrace="$2" + check_e "invalid system call '$1'" --trace="$2" check_e "invalid system call '$1'" -e trace="$2" check_e "invalid system call '$1'" -eabbrev="$2" + check_e "invalid system call '$1'" --abbrev="$2" check_e "invalid system call '$1'" -e abbrev="$2" check_e "invalid system call '$1'" -everbose="$2" + check_e "invalid system call '$1'" --verbose="$2" check_e "invalid system call '$1'" -e verbose="$2" check_e "invalid system call '$1'" -eraw="$2" + check_e "invalid system call '$1'" --raw="$2" check_e "invalid system call '$1'" -e raw="$2" check_e "invalid system call '$1'" -einject="$2" + check_e "invalid system call '$1'" --inject="$2" check_e "invalid system call '$1'" -e inject="$2" check_e "invalid system call '$1'" -einject="$2:" check_e "invalid system call '$1'" -einject="$2::" check_e "invalid system call '$1'" -einject="$2:::" + check_e "invalid system call '$1'" --inject="$2:" + check_e "invalid system call '$1'" --inject="$2::" + check_e "invalid system call '$1'" --inject="$2:::" check_e "invalid system call '$1'" -e inject="$2:" check_e "invalid system call '$1'" -e inject="$2::" check_e "invalid system call '$1'" -e inject="$2:::" check_e "invalid system call '$1'" -einject="$2:when=3" + check_e "invalid system call '$1'" --inject="$2:when=3" check_e "invalid system call '$1'" -e inject="$2:when=3" check_e "invalid system call '$1'" -efault="$2" + check_e "invalid system call '$1'" --fault="$2" check_e "invalid system call '$1'" -e fault="$2" check_e "invalid system call '$1'" -efault="$2:" check_e "invalid system call '$1'" -efault="$2::" check_e "invalid system call '$1'" -efault="$2:::" + check_e "invalid system call '$1'" --fault="$2:" + check_e "invalid system call '$1'" --fault="$2::" + check_e "invalid system call '$1'" --fault="$2:::" check_e "invalid system call '$1'" -e fault="$2:" check_e "invalid system call '$1'" -e fault="$2::" check_e "invalid system call '$1'" -e fault="$2:::" check_e "invalid system call '$1'" -efault="$2:when=4" + check_e "invalid system call '$1'" --fault="$2:when=4" check_e "invalid system call '$1'" -e fault="$2:when=4" } diff --git a/tests-m32/finit_module.c b/tests-m32/finit_module.c index 64e6df02..7c775658 100644 --- a/tests-m32/finit_module.c +++ b/tests-m32/finit_module.c @@ -2,7 +2,7 @@ * Check decoding of finit_module syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,6 @@ #include "tests.h" -#include #include "scno.h" #if defined(__NR_finit_module) diff --git a/tests-m32/flock.c b/tests-m32/flock.c index 4f044409..1253616f 100644 --- a/tests-m32/flock.c +++ b/tests-m32/flock.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_flock diff --git a/tests-m32/fork--pidns-translation.awk b/tests-m32/fork--pidns-translation.awk new file mode 100644 index 00000000..ef6858f4 --- /dev/null +++ b/tests-m32/fork--pidns-translation.awk @@ -0,0 +1,15 @@ +/fork/ { + match($0, "([0-9]+) in strace\x27s PID NS", a); + if (a[1]) + fork_pid = a[1] +} + +/exited with 0/ { + if (!exit_pid) + exit_pid = $1 +} + +END { + if (!fork_pid || !exit_pid || fork_pid != exit_pid) + exit 1 +} diff --git a/tests-m32/fork--pidns-translation.c b/tests-m32/fork--pidns-translation.c new file mode 100644 index 00000000..1d490ce4 --- /dev/null +++ b/tests-m32/fork--pidns-translation.c @@ -0,0 +1,78 @@ +/* + * Test PID namespace translation + * + * Copyright (c) 2020 Ákos Uzonyi + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#include "tests.h" +#include "scno.h" +#include "pidns.h" + +#ifdef __NR_fork + +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include "nsfs.h" + +# ifndef CLONE_NEWUSER +# define CLONE_NEWUSER 0x10000000 +# endif + +# ifndef CLONE_NEWPID +# define CLONE_NEWPID 0x20000000 +# endif + +static int +fork_chain(int depth) +{ + if (!depth) + return 0; + + int pid = syscall(__NR_fork); + if (pid < 0) + return errno; + + if (!pid) + _exit(fork_chain(depth - 1)); + + int status; + if (wait(&status) < 0) + return errno; + + if (!WIFEXITED(status)) + return -1; + + return WEXITSTATUS(status); +} + +int main(void) +{ + check_ns_ioctl(); + + if (unshare(CLONE_NEWPID | CLONE_NEWUSER) < 0) { + if (errno == EPERM) + perror_msg_and_skip("unshare"); + + perror_msg_and_fail("unshare"); + } + + errno = fork_chain(2); + if (errno) + perror("fork_chain"); +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_fork") + +#endif diff --git a/tests-m32/fork--pidns-translation.test b/tests-m32/fork--pidns-translation.test new file mode 100755 index 00000000..24cc5930 --- /dev/null +++ b/tests-m32/fork--pidns-translation.test @@ -0,0 +1,14 @@ +#!/bin/sh +# +# Check pidns translation of fork's return value. +# +# Copyright (c) 2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: LGPL-2.1-or-later + +. "${srcdir=.}/init.sh" + +run_prog +run_strace -a6 --pidns-translation -f -e trace=fork $args +match_awk diff --git a/tests-m32/fsconfig-P.c b/tests-m32/fsconfig-P.c new file mode 100644 index 00000000..b763332c --- /dev/null +++ b/tests-m32/fsconfig-P.c @@ -0,0 +1,2 @@ +#define PATH_TRACING +#include "fsconfig.c" diff --git a/tests-m32/fsconfig-P.gen.test b/tests-m32/fsconfig-P.gen.test new file mode 100755 index 00000000..36001fa8 --- /dev/null +++ b/tests-m32/fsconfig-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fsconfig-P -s300 -y -P /dev/full -e trace=fsconfig); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -s300 -y -P /dev/full -e trace=fsconfig diff --git a/tests-m32/fsconfig.c b/tests-m32/fsconfig.c new file mode 100644 index 00000000..2399a6a1 --- /dev/null +++ b/tests-m32/fsconfig.c @@ -0,0 +1,298 @@ +/* + * Check decoding of fsconfig syscall. + * + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_fsconfig + +# include +# include +# include +# include +# include + +# define XLAT_MACROS_ONLY +# include "xlat/fsconfig_cmds.h" +# undef XLAT_MACROS_ONLY + +static const char *errstr; + +static long +k_fsconfig(const unsigned int fs_fd, + const unsigned int cmd, + const void *key, + const void *value, + const unsigned int aux) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | fs_fd; + const kernel_ulong_t arg2 = fill | cmd; + const kernel_ulong_t arg3 = (uintptr_t) key; + const kernel_ulong_t arg4 = (uintptr_t) value; + const kernel_ulong_t arg5 = fill | aux; + const long rc = syscall(__NR_fsconfig, + arg1, arg2, arg3, arg4, arg5, bad); + errstr = sprintrc(rc); + return rc; +} + +static const char path_full[] = "/dev/full"; +static const int max_string_size = 256; +static const int max_blob_size = 300; +static const int huge_blob_size = 1024 * 1024 + 1; +static const char *fd_path; +static const void *efault; +static const char *empty; +static char *fname; +static char *key1; +static char *key; +static char *val1; +static char *val; +static char *blob1; +static char *blob; +static int fd; + +static void +test_fsconfig_unknown(void) +{ + k_fsconfig(fd, 8, empty, val, -100); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, 0x8 /* FSCONFIG_??? */, %p, %p, -100) = %s\n", + fd, fd_path, empty, val, errstr); +# endif + + k_fsconfig(-100, -1, empty, fd_path, fd); +# ifndef PATH_TRACING + printf("fsconfig(-100, 0xffffffff /* FSCONFIG_??? */, %p, %p, %d)" + " = %s\n", + empty, fd_path, fd, errstr); +# endif +} + +static void +test_fsconfig_cmd(const unsigned int cmd, const char *cmd_str) +{ + k_fsconfig(fd, cmd, empty, val, -100); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, %p, %p, -100) = %s\n", + fd, fd_path, cmd_str, empty, val, errstr); +# endif + + k_fsconfig(-100, cmd, empty, fd_path, fd); +# ifndef PATH_TRACING + printf("fsconfig(-100, %s, %p, %p, %d) = %s\n", + cmd_str, empty, fd_path, fd, errstr); +# endif +} + +static void +test_fsconfig_set_flag(const unsigned int cmd, const char *cmd_str) +{ + k_fsconfig(fd, cmd, key, val, -100); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%s\", %p, -100) = %s\n", + fd, fd_path, cmd_str, key, val, errstr); +# endif + + k_fsconfig(fd, cmd, key1, val, -100); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%.*s\"..., %p, -100) = %s\n", + fd, fd_path, cmd_str, max_string_size, key1, val, errstr); +# endif + + k_fsconfig(-100, cmd, key, fd_path, fd); +# ifndef PATH_TRACING + printf("fsconfig(-100, %s, \"%s\", %p, %d) = %s\n", + cmd_str, key, fd_path, fd, errstr); +# endif +} + +static void +test_fsconfig_set_string(const unsigned int cmd, const char *cmd_str) +{ + k_fsconfig(fd, cmd, key, val, -100); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%s\", \"%s\", -100) = %s\n", + fd, fd_path, cmd_str, key, val, errstr); +# endif + + k_fsconfig(fd, cmd, key1, val1, -100); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%.*s\"..., \"%.*s\"..., -100) = %s\n", + fd, fd_path, cmd_str, max_string_size, key1, max_string_size, val1, + errstr); +# endif + + k_fsconfig(-100, cmd, key, fd_path, fd); +# ifndef PATH_TRACING + printf("fsconfig(-100, %s, \"%s\", \"%s\", %d) = %s\n", + cmd_str, key, fd_path, fd, errstr); +# endif +} + +static void +test_fsconfig_set_binary(const unsigned int cmd, const char *cmd_str) +{ + k_fsconfig(fd, cmd, key, blob, max_blob_size); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%s\", ", fd, fd_path, cmd_str, key); + print_quoted_hex(blob, max_blob_size); + printf(", %d) = %s\n", max_blob_size, errstr); +# endif + + k_fsconfig(fd, cmd, key1, blob1, max_blob_size + 1); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%.*s\"..., ", + fd, fd_path, cmd_str, max_string_size, key1); + print_quoted_hex(blob1, max_blob_size); + printf("..., %d) = %s\n", max_blob_size + 1, errstr); +# endif + + k_fsconfig(fd, cmd, key, empty, 0); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%s\", \"\", 0) = %s\n", + fd, fd_path, cmd_str, key, errstr); +# endif + + k_fsconfig(fd, cmd, key, fname, -100); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%s\", %p, -100) = %s\n", + fd, fd_path, cmd_str, key, fname, errstr); +# endif + + k_fsconfig(fd, cmd, key, fname, huge_blob_size); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%s\", %p, %d) = %s\n", + fd, fd_path, cmd_str, key, fname, huge_blob_size, errstr); +# endif + + k_fsconfig(-100, cmd, key, fd_path, sizeof(path_full)); +# ifndef PATH_TRACING + printf("fsconfig(-100, %s, \"%s\", ", cmd_str, key); + print_quoted_hex(fd_path, sizeof(path_full)); + printf(", %d) = %s\n", (int) sizeof(path_full), errstr); +# endif + + k_fsconfig(-100, cmd, key, fname, fd); +# ifndef PATH_TRACING + printf("fsconfig(-100, %s, \"%s\", ", cmd_str, key); + print_quoted_hex(fname, fd); + printf(", %d) = %s\n", fd, errstr); +# endif +} + +static void +test_fsconfig_set_path(const unsigned int cmd, const char *cmd_str) +{ + fill_memory_ex(fname, PATH_MAX, '0', 10); + k_fsconfig(fd, cmd, key, fname, -100); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%s\", \"%.*s\"..., AT_FDCWD) = %s\n", + fd, fd_path, cmd_str, key, (int) PATH_MAX - 1, fname, errstr); +# endif + + fname[PATH_MAX - 1] = '\0'; + k_fsconfig(fd, cmd, key, fname, -1); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%s\", \"%s\", -1) = %s\n", + fd, fd_path, cmd_str, key, fname, errstr); +# endif + + k_fsconfig(-100, cmd, key, empty, fd); + printf("fsconfig(-100, %s, \"%s\", \"\", %d<%s>) = %s\n", + cmd_str, key, fd, fd_path, errstr); + + k_fsconfig(-1, cmd, 0, fd_path, -100); + printf("fsconfig(-1, %s, NULL, \"%s\", AT_FDCWD) = %s\n", + cmd_str, fd_path, errstr); + + k_fsconfig(-1, cmd, efault, efault + 1, fd); + printf("fsconfig(-1, %s, %p, %p, %d<%s>) = %s\n", + cmd_str, efault, efault + 1, fd, fd_path, errstr); + + k_fsconfig(-100, cmd, key, fname, -1); +# ifndef PATH_TRACING + printf("fsconfig(-100, %s, \"%s\", \"%s\", -1) = %s\n", + cmd_str, key, fname, errstr); +# endif +} + +static void +test_fsconfig_set_fd(const unsigned int cmd, const char *cmd_str) +{ + k_fsconfig(fd, cmd, key, val, -100); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%s\", %p, -100) = %s\n", + fd, fd_path, cmd_str, key, val, errstr); +# endif + + k_fsconfig(-100, cmd, key1, 0, fd); + printf("fsconfig(-100, %s, \"%.*s\"..., NULL, %d<%s>) = %s\n", + cmd_str, max_string_size, key1, fd, fd_path, errstr); + + k_fsconfig(-1, cmd, efault, efault + 1, fd); + printf("fsconfig(-1, %s, %p, %p, %d<%s>) = %s\n", + cmd_str, efault, efault + 1, fd, fd_path, errstr); + + k_fsconfig(-100, cmd, key, fd_path, -1); +# ifndef PATH_TRACING + printf("fsconfig(-100, %s, \"%s\", %p, -1) = %s\n", + cmd_str, key, fd_path, errstr); +# endif +} + +int +main(void) +{ + skip_if_unavailable("/proc/self/fd/"); + + fd_path = tail_memdup(path_full, sizeof(path_full)); + efault = fd_path + sizeof(path_full); + empty = efault - 1; + fname = tail_alloc(PATH_MAX); + key1 = tail_alloc(max_string_size + 1); + key = key1 + 1; + val1 = tail_alloc(max_string_size + 1); + val = val1 + 1; + blob1 = tail_alloc(max_blob_size + 1); + blob = blob1 + 1; + + fill_memory_ex(fname, PATH_MAX, '0', 10); + fill_memory_ex(key1, max_string_size, 'a', 'z' - 'a' + 1); + key1[max_string_size] = '\0'; + fill_memory_ex(val1, max_string_size, 'A', 'Z' - 'A' + 1); + val1[max_string_size] = '\0'; + fill_memory_ex(blob, max_blob_size, '0', 10); + blob[0] = 0; + blob1[0] = 0; + fd = open(fd_path, O_WRONLY); + if (fd < 0) + perror_msg_and_fail("open: %s", fd_path); + + test_fsconfig_unknown(); + test_fsconfig_set_flag(ARG_STR(FSCONFIG_SET_FLAG)); + test_fsconfig_set_string(ARG_STR(FSCONFIG_SET_STRING)); + test_fsconfig_set_binary(ARG_STR(FSCONFIG_SET_BINARY)); + test_fsconfig_set_path(ARG_STR(FSCONFIG_SET_PATH)); + test_fsconfig_set_path(ARG_STR(FSCONFIG_SET_PATH_EMPTY)); + test_fsconfig_set_fd(ARG_STR(FSCONFIG_SET_FD)); + test_fsconfig_cmd(ARG_STR(FSCONFIG_CMD_CREATE)); + test_fsconfig_cmd(ARG_STR(FSCONFIG_CMD_RECONFIGURE)); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_fsconfig") + +#endif diff --git a/tests-m32/fsconfig.gen.test b/tests-m32/fsconfig.gen.test new file mode 100755 index 00000000..f482be10 --- /dev/null +++ b/tests-m32/fsconfig.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fsconfig -s300 -y); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -s300 -y diff --git a/tests-m32/fsmount.c b/tests-m32/fsmount.c new file mode 100644 index 00000000..28b14a40 --- /dev/null +++ b/tests-m32/fsmount.c @@ -0,0 +1,97 @@ +/* + * Check decoding of fsmount syscall. + * + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_fsmount + +# include +# include +# include +# include + +static const char *errstr; + +static long +k_fsmount(const unsigned int fs_fd, + const unsigned int flags, + const unsigned int attr_flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | fs_fd; + const kernel_ulong_t arg2 = fill | flags; + const kernel_ulong_t arg3 = fill | attr_flags; + const long rc = syscall(__NR_fsmount, + arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + skip_if_unavailable("/proc/self/fd/"); + + static const char path[] = "/dev/full"; + int fd = open(path, O_WRONLY); + if (fd < 0) + perror_msg_and_fail("open: %s", path); + + struct { + unsigned int val; + const char *str; + } flags[] = { + { ARG_STR(0) }, + { 1, "FSMOUNT_CLOEXEC" }, + { 2, "0x2 /* FSMOUNT_??? */" }, + { 0xfffffffe, "0xfffffffe /* FSMOUNT_??? */" }, + { -1, "FSMOUNT_CLOEXEC|0xfffffffe" } + }, + attrs[] = { + { ARG_STR(0) }, + { 1, "MOUNT_ATTR_RDONLY" }, + { 0x10, "MOUNT_ATTR_NOATIME" }, + { 0xbf, "MOUNT_ATTR_RDONLY|MOUNT_ATTR_NOSUID|MOUNT_ATTR_NODEV" + "|MOUNT_ATTR_NOEXEC|MOUNT_ATTR_NOATIME" + "|MOUNT_ATTR_STRICTATIME|MOUNT_ATTR_NODIRATIME" }, + { 0x40, "0x40 /* MOUNT_ATTR_??? */" }, + { 0xffffff40, "0xffffff40 /* MOUNT_ATTR_??? */" }, + { -1, "MOUNT_ATTR_RDONLY|MOUNT_ATTR_NOSUID|MOUNT_ATTR_NODEV" + "|MOUNT_ATTR_NOEXEC|MOUNT_ATTR_NOATIME" + "|MOUNT_ATTR_STRICTATIME|MOUNT_ATTR_NODIRATIME" + "|0xffffff40" } + }; + + for (unsigned int i = 0; i < ARRAY_SIZE(flags); ++i) { + for (unsigned int j = 0; j < ARRAY_SIZE(attrs); ++j) { + k_fsmount(-1, flags[i].val, attrs[j].val); + printf("fsmount(-1, %s, %s) = %s\n", + flags[i].str, attrs[j].str, errstr); + + k_fsmount(-100, flags[i].val, attrs[j].val); + printf("fsmount(-100, %s, %s) = %s\n", + flags[i].str, attrs[j].str, errstr); + + k_fsmount(fd, flags[i].val, attrs[j].val); + printf("fsmount(%d<%s>, %s, %s) = %s\n", + fd, path, flags[i].str, attrs[j].str, errstr); + } + } + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_fsmount") + +#endif diff --git a/tests-m32/fsmount.gen.test b/tests-m32/fsmount.gen.test new file mode 100755 index 00000000..aff762bb --- /dev/null +++ b/tests-m32/fsmount.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fsmount -a18 -y); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a18 -y diff --git a/tests-m32/fsopen.c b/tests-m32/fsopen.c new file mode 100644 index 00000000..1d8af8bb --- /dev/null +++ b/tests-m32/fsopen.c @@ -0,0 +1,67 @@ +/* + * Check decoding of fsopen syscall. + * + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_fsopen + +# include +# include +# include + +static const char *errstr; + +static long +k_fsopen(const void *name, const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = (uintptr_t) name; + const kernel_ulong_t arg2 = fill | flags; + const long rc = syscall(__NR_fsopen, arg1, arg2, bad, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + char *const name1 = tail_alloc(DEFAULT_STRLEN + 2); + char *const name = name1 + 1; + const void *const efault = name + DEFAULT_STRLEN + 1; + const char *const empty = efault - 1; + fill_memory_ex(name1, DEFAULT_STRLEN + 1, '0', 10); + name1[DEFAULT_STRLEN + 1] = '\0'; + + k_fsopen(name, 0); + printf("fsopen(\"%s\", 0) = %s\n", name, errstr); + + k_fsopen(name1, 1); + printf("fsopen(\"%.*s\"..., FSOPEN_CLOEXEC) = %s\n", + DEFAULT_STRLEN, name1, errstr); + + k_fsopen(0, 2); + printf("fsopen(NULL, 0x2 /* FSOPEN_??? */) = %s\n", errstr); + + k_fsopen(efault, 0xfffffffe); + printf("fsopen(%p, 0xfffffffe /* FSOPEN_??? */) = %s\n", efault, errstr); + + k_fsopen(empty, -1); + printf("fsopen(\"\", FSOPEN_CLOEXEC|0xfffffffe) = %s\n", errstr); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_fsopen") + +#endif diff --git a/tests-m32/fsopen.gen.test b/tests-m32/fsopen.gen.test new file mode 100755 index 00000000..b4130f07 --- /dev/null +++ b/tests-m32/fsopen.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fsopen -a35 ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a35 diff --git a/tests-m32/fspick-P.c b/tests-m32/fspick-P.c new file mode 100644 index 00000000..f3d41eb3 --- /dev/null +++ b/tests-m32/fspick-P.c @@ -0,0 +1,2 @@ +#define PATH_TRACING +#include "fspick.c" diff --git a/tests-m32/fspick-P.gen.test b/tests-m32/fspick-P.gen.test new file mode 100755 index 00000000..98c0021b --- /dev/null +++ b/tests-m32/fspick-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fspick-P -a27 -y -P /dev/full -e trace=fspick); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a27 -y -P /dev/full -e trace=fspick diff --git a/tests-m32/fspick.c b/tests-m32/fspick.c new file mode 100644 index 00000000..3f7f9d70 --- /dev/null +++ b/tests-m32/fspick.c @@ -0,0 +1,109 @@ +/* + * Check decoding of fspick syscall. + * + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_fspick + +# include +# include +# include +# include +# include + +static const char *errstr; + +static long +k_fspick(const unsigned int dfd, + const void *fname, + const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | dfd; + const kernel_ulong_t arg2 = (uintptr_t) fname; + const kernel_ulong_t arg3 = fill | flags; + const long rc = syscall(__NR_fspick, arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + skip_if_unavailable("/proc/self/fd/"); + + static const char path_full[] = "/dev/full"; + const char *const path = tail_memdup(path_full, sizeof(path_full)); + char *const fname = tail_alloc(PATH_MAX); + const void *const efault = fname + PATH_MAX; + const char *const empty = efault - 1; + fill_memory_ex(fname, PATH_MAX, '0', 10); + + int dfd = open(path, O_WRONLY); + if (dfd < 0) + perror_msg_and_fail("open: %s", path); + + k_fspick(-1, 0, 1); +# ifndef PATH_TRACING + printf("fspick(-1, NULL, %s) = %s\n", "FSPICK_CLOEXEC", errstr); +# endif + + k_fspick(-100, fname, 0); +# ifndef PATH_TRACING + printf("fspick(%s, \"%.*s\"..., 0) = %s\n", + "AT_FDCWD", (int) PATH_MAX - 1, fname, errstr); +# endif + + fname[PATH_MAX - 1] = '\0'; + k_fspick(dfd, fname, 0xfffffff0); + printf("fspick(%d<%s>, \"%s\", %s) = %s\n", + dfd, path, fname, "0xfffffff0 /* FSPICK_??? */", errstr); + + k_fspick(-1, efault, 0xf); +# ifndef PATH_TRACING + printf("fspick(-1, %p, %s) = %s\n", + efault, + "FSPICK_CLOEXEC|FSPICK_SYMLINK_NOFOLLOW" + "|FSPICK_NO_AUTOMOUNT|FSPICK_EMPTY_PATH", + errstr); +# endif + + k_fspick(-1, empty, -1); +# ifndef PATH_TRACING + printf("fspick(-1, \"\", %s|0xfffffff0) = %s\n", + "FSPICK_CLOEXEC|FSPICK_SYMLINK_NOFOLLOW" + "|FSPICK_NO_AUTOMOUNT|FSPICK_EMPTY_PATH", + errstr); +# endif + + if (k_fspick(-1, path, 0) < 0) + printf("fspick(-1, \"%s\", 0) = %s\n", + path, errstr); + else + printf("fspick(-1, \"%s\", 0) = %s<%s>\n", + path, errstr, path); + + if (k_fspick(dfd, empty, 8) < 0) + printf("fspick(%d<%s>, \"\", %s) = %s\n", + dfd, path, "FSPICK_EMPTY_PATH", errstr); + else + printf("fspick(%d<%s>, \"\", %s) = %s<%s>\n", + dfd, path, "FSPICK_EMPTY_PATH", errstr, path); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_fspick") + +#endif diff --git a/tests-m32/fspick.gen.test b/tests-m32/fspick.gen.test new file mode 100755 index 00000000..a1261985 --- /dev/null +++ b/tests-m32/fspick.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fspick -a27 -y); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a27 -y diff --git a/tests-m32/fstat.c b/tests-m32/fstat.c index 7a52e0cc..d0b5454d 100644 --- a/tests-m32/fstat.c +++ b/tests-m32/fstat.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fstat diff --git a/tests-m32/fstat64.c b/tests-m32/fstat64.c index 5d30ca41..2ce73a98 100644 --- a/tests-m32/fstat64.c +++ b/tests-m32/fstat64.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fstat64 diff --git a/tests-m32/fstatat64.c b/tests-m32/fstatat64.c index 949463c9..965958ef 100644 --- a/tests-m32/fstatat64.c +++ b/tests-m32/fstatat64.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fstatat64 diff --git a/tests-m32/fstatat64.gen.test b/tests-m32/fstatat64.gen.test index 8da5c7f2..a453ff22 100755 --- a/tests-m32/fstatat64.gen.test +++ b/tests-m32/fstatat64.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fstatat64 -a32 -v -P stat.sample -P /dev/full); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fstatat64 -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a32 -v -P stat.sample -P /dev/full +run_strace_match_diff -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full diff --git a/tests-m32/fstatfs.c b/tests-m32/fstatfs.c index f1609405..e3a38aa7 100644 --- a/tests-m32/fstatfs.c +++ b/tests-m32/fstatfs.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fstatfs diff --git a/tests-m32/fstatfs64.c b/tests-m32/fstatfs64.c index 14da042a..95171ca2 100644 --- a/tests-m32/fstatfs64.c +++ b/tests-m32/fstatfs64.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fstatfs64 diff --git a/tests-m32/fsync.c b/tests-m32/fsync.c index 5624096b..2efc3395 100644 --- a/tests-m32/fsync.c +++ b/tests-m32/fsync.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fsync diff --git a/tests-m32/ftruncate.c b/tests-m32/ftruncate.c index 6c77d4b1..70f813f8 100644 --- a/tests-m32/ftruncate.c +++ b/tests-m32/ftruncate.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_ftruncate diff --git a/tests-m32/ftruncate64.c b/tests-m32/ftruncate64.c index b7e350b4..ad7fc471 100644 --- a/tests-m32/ftruncate64.c +++ b/tests-m32/ftruncate64.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_ftruncate64 diff --git a/tests-m32/futex.c b/tests-m32/futex.c index 47191f27..f246e22a 100644 --- a/tests-m32/futex.c +++ b/tests-m32/futex.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -8,7 +8,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_futex @@ -495,7 +495,7 @@ main(int argc, char *argv[]) * wake val2 processes waiting for uaddr2 in case * operation encoded in val3 (change of value at uaddr2 * and comparison of previous value against provided - * constant) succeedes with value at uaddr2. Operation + * constant) succeeds with value at uaddr2. Operation * result is written to value of uaddr2 (in any case). * 1. uaddr - futex address * 2. op - FUTEX_WAKE_OP diff --git a/tests-m32/futimesat.c b/tests-m32/futimesat.c index 8024f87b..5782f1f6 100644 --- a/tests-m32/futimesat.c +++ b/tests-m32/futimesat.c @@ -2,13 +2,14 @@ * Check decoding of futimesat syscall. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_futimesat diff --git a/tests-m32/gen_tests.am b/tests-m32/gen_tests.am index e6d1fc7b..e0a2952d 100644 --- a/tests-m32/gen_tests.am +++ b/tests-m32/gen_tests.am @@ -1,5 +1,5 @@ # Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in; do not edit. -GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test accept4.gen.test access.gen.test acct.gen.test add_key.gen.test adjtimex.gen.test aio.gen.test aio_pgetevents.gen.test alarm.gen.test bpf.gen.test bpf-obj_get_info_by_fd.gen.test bpf-obj_get_info_by_fd-prog.gen.test bpf-obj_get_info_by_fd-prog-v.gen.test bpf-obj_get_info_by_fd-v.gen.test bpf-v.gen.test btrfs.gen.test chmod.gen.test chown.gen.test chown32.gen.test chroot.gen.test clock.gen.test clock_adjtime.gen.test clock_nanosleep.gen.test clock_xettime.gen.test copy_file_range.gen.test creat.gen.test delete_module.gen.test dev-yy.gen.test dup.gen.test dup2.gen.test dup3.gen.test epoll_create.gen.test epoll_create1.gen.test epoll_ctl.gen.test epoll_pwait.gen.test epoll_wait.gen.test erestartsys.gen.test execveat.gen.test execveat-v.gen.test faccessat.gen.test fadvise64_64.gen.test fallocate.gen.test fanotify_init.gen.test fanotify_mark.gen.test fanotify_mark-Xabbrev.gen.test fanotify_mark-Xraw.gen.test fanotify_mark-Xverbose.gen.test fchdir.gen.test fchmod.gen.test fchmodat.gen.test fchown.gen.test fchown32.gen.test fchownat.gen.test fcntl.gen.test fcntl64.gen.test fdatasync.gen.test file_handle.gen.test file_ioctl.gen.test finit_module.gen.test flock.gen.test fork-f.gen.test fstat.gen.test fstat-Xabbrev.gen.test fstat-Xraw.gen.test fstat-Xverbose.gen.test fstat64.gen.test fstat64-Xabbrev.gen.test fstat64-Xraw.gen.test fstat64-Xverbose.gen.test fstatat64.gen.test fstatfs.gen.test fstatfs64.gen.test fsync.gen.test fsync-y.gen.test ftruncate.gen.test ftruncate64.gen.test futimesat.gen.test get_mempolicy.gen.test getcpu.gen.test getcwd.gen.test getdents.gen.test getdents64.gen.test getegid.gen.test getegid32.gen.test geteuid.gen.test geteuid32.gen.test getgid.gen.test getgid32.gen.test getgroups.gen.test getgroups32.gen.test getpeername.gen.test getpgrp.gen.test getpid.gen.test getppid.gen.test getrandom.gen.test getresgid.gen.test getresgid32.gen.test getresuid.gen.test getresuid32.gen.test getrlimit.gen.test getrusage.gen.test getsid.gen.test getsockname.gen.test gettid.gen.test getuid32.gen.test getxxid.gen.test group_req.gen.test inet-cmsg.gen.test init_module.gen.test inotify.gen.test inotify_init1.gen.test io_uring_enter.gen.test io_uring_register.gen.test io_uring_setup.gen.test ioctl_block.gen.test ioctl_dm.gen.test ioctl_dm-v.gen.test ioctl_evdev.gen.test ioctl_evdev-v.gen.test ioctl_inotify.gen.test ioctl_kvm_run.gen.test ioctl_kvm_run-v.gen.test ioctl_kvm_run_auxstr_vcpu.gen.test ioctl_loop.gen.test ioctl_loop-nv.gen.test ioctl_loop-v.gen.test ioctl_mtd.gen.test ioctl_nbd.gen.test ioctl_nsfs.gen.test ioctl_perf.gen.test ioctl_ptp.gen.test ioctl_random.gen.test ioctl_rtc.gen.test ioctl_rtc-v.gen.test ioctl_scsi.gen.test ioctl_sg_io_v3.gen.test ioctl_sg_io_v4.gen.test ioctl_sock_gifconf.gen.test ioctl_uffdio.gen.test ioctl_v4l2.gen.test ioperm.gen.test iopl.gen.test ioprio.gen.test ioprio-Xabbrev.gen.test ioprio-Xraw.gen.test ioprio-Xverbose.gen.test ip_mreq.gen.test ipc.gen.test ipc_msg.gen.test ipc_msg-Xabbrev.gen.test ipc_msg-Xraw.gen.test ipc_msg-Xverbose.gen.test ipc_msgbuf-Xabbrev.gen.test ipc_msgbuf-Xraw.gen.test ipc_msgbuf-Xverbose.gen.test ipc_sem.gen.test ipc_sem-Xabbrev.gen.test ipc_sem-Xraw.gen.test ipc_sem-Xverbose.gen.test ipc_shm.gen.test ipc_shm-Xabbrev.gen.test ipc_shm-Xraw.gen.test ipc_shm-Xverbose.gen.test kcmp.gen.test kcmp-y.gen.test kern_features.gen.test kernel_version.gen.test kernel_version-Xabbrev.gen.test kernel_version-Xraw.gen.test kernel_version-Xverbose.gen.test kexec_file_load.gen.test kexec_load.gen.test keyctl.gen.test keyctl-Xabbrev.gen.test keyctl-Xraw.gen.test keyctl-Xverbose.gen.test kill.gen.test lchown.gen.test lchown32.gen.test link.gen.test linkat.gen.test lookup_dcookie.gen.test lstat.gen.test lstat64.gen.test madvise.gen.test mbind.gen.test membarrier.gen.test memfd_create.gen.test memfd_create-Xabbrev.gen.test memfd_create-Xraw.gen.test memfd_create-Xverbose.gen.test migrate_pages.gen.test mincore.gen.test mkdir.gen.test mkdirat.gen.test mknod.gen.test mknodat.gen.test mlock.gen.test mlock2.gen.test mlockall.gen.test mmap-Xabbrev.gen.test mmap-Xraw.gen.test mmap-Xverbose.gen.test mmap64.gen.test mmap64-Xabbrev.gen.test mmap64-Xraw.gen.test mmap64-Xverbose.gen.test mmsg.gen.test mmsg-silent.gen.test mmsg_name.gen.test mmsg_name-v.gen.test modify_ldt.gen.test mount.gen.test mount-Xabbrev.gen.test mount-Xraw.gen.test mount-Xverbose.gen.test move_pages.gen.test move_pages-Xabbrev.gen.test move_pages-Xraw.gen.test move_pages-Xverbose.gen.test mq.gen.test mq_sendrecv.gen.test mq_sendrecv-read.gen.test mq_sendrecv-write.gen.test msg_control.gen.test msg_control-v.gen.test msg_name.gen.test munlockall.gen.test nanosleep.gen.test net-icmp_filter.gen.test net-packet_mreq.gen.test net-packet_mreq-Xabbrev.gen.test net-packet_mreq-Xraw.gen.test net-packet_mreq-Xverbose.gen.test net-sockaddr.gen.test net-tpacket_req.gen.test net-tpacket_stats.gen.test net-yy-inet6.gen.test netlink_audit.gen.test netlink_crypto.gen.test netlink_generic.gen.test netlink_kobject_uevent.gen.test netlink_netfilter.gen.test netlink_protocol.gen.test netlink_route.gen.test netlink_selinux.gen.test netlink_xfrm.gen.test newfstatat.gen.test nfnetlink_acct.gen.test nfnetlink_cthelper.gen.test nfnetlink_ctnetlink.gen.test nfnetlink_ctnetlink_exp.gen.test nfnetlink_cttimeout.gen.test nfnetlink_ipset.gen.test nfnetlink_nft_compat.gen.test nfnetlink_nftables.gen.test nfnetlink_osf.gen.test nfnetlink_queue.gen.test nfnetlink_ulog.gen.test nlattr.gen.test nlattr_br_port_msg.gen.test nlattr_crypto_user_alg.gen.test nlattr_dcbmsg.gen.test nlattr_fib_rule_hdr.gen.test nlattr_ifaddrlblmsg.gen.test nlattr_ifaddrmsg.gen.test nlattr_ifinfomsg.gen.test nlattr_ifla_af_spec.gen.test nlattr_ifla_brport.gen.test nlattr_ifla_linkinfo.gen.test nlattr_ifla_port.gen.test nlattr_ifla_xdp.gen.test nlattr_inet_diag_msg.gen.test nlattr_inet_diag_req_compat.gen.test nlattr_inet_diag_req_v2.gen.test nlattr_mdba_mdb_entry.gen.test nlattr_mdba_router_port.gen.test nlattr_ndmsg.gen.test nlattr_ndtmsg.gen.test nlattr_netconfmsg.gen.test nlattr_netlink_diag_msg.gen.test nlattr_nlmsgerr.gen.test nlattr_packet_diag_msg.gen.test nlattr_rtgenmsg.gen.test nlattr_rtmsg.gen.test nlattr_smc_diag_msg.gen.test nlattr_tc_stats.gen.test nlattr_tca_stab.gen.test nlattr_tcamsg.gen.test nlattr_tcmsg.gen.test nlattr_unix_diag_msg.gen.test old_mmap.gen.test old_mmap-P.gen.test old_mmap-Xabbrev.gen.test old_mmap-Xraw.gen.test old_mmap-Xverbose.gen.test old_mmap-v-none.gen.test oldfstat.gen.test oldlstat.gen.test oldselect.gen.test oldselect-P.gen.test oldselect-efault.gen.test oldselect-efault-P.gen.test oldstat.gen.test open.gen.test openat.gen.test orphaned_process_group.gen.test osf_utimes.gen.test pause.gen.test perf_event_open.gen.test perf_event_open_nonverbose.gen.test perf_event_open_unabbrev.gen.test personality-Xabbrev.gen.test personality-Xraw.gen.test personality-Xverbose.gen.test pidfd_send_signal.gen.test pipe2.gen.test pkey_alloc.gen.test pkey_free.gen.test pkey_mprotect.gen.test ppoll.gen.test ppoll-P.gen.test ppoll-v.gen.test pread64-pwrite64.gen.test preadv.gen.test preadv-pwritev.gen.test preadv2-pwritev2.gen.test printpath-umovestr.gen.test printpath-umovestr-peekdata.gen.test printpath-umovestr-undumpable.gen.test printsignal-Xabbrev.gen.test printsignal-Xraw.gen.test printsignal-Xverbose.gen.test printstr.gen.test printstrn-umoven.gen.test printstrn-umoven-peekdata.gen.test printstrn-umoven-undumpable.gen.test prlimit64.gen.test process_vm_readv.gen.test process_vm_writev.gen.test pselect6.gen.test ptrace.gen.test ptrace_syscall_info.gen.test pwritev.gen.test quotactl.gen.test quotactl-Xabbrev.gen.test quotactl-Xraw.gen.test quotactl-Xverbose.gen.test quotactl-v.gen.test quotactl-xfs.gen.test quotactl-xfs-v.gen.test read-write.gen.test readahead.gen.test readdir.gen.test readlink.gen.test readlinkat.gen.test reboot.gen.test recvfrom.gen.test recvmmsg-timeout.gen.test recvmsg.gen.test regex.gen.test remap_file_pages.gen.test remap_file_pages-Xabbrev.gen.test remap_file_pages-Xraw.gen.test remap_file_pages-Xverbose.gen.test rename.gen.test renameat.gen.test renameat2.gen.test request_key.gen.test riscv_flush_icache.gen.test rmdir.gen.test rt_sigpending.gen.test rt_sigprocmask.gen.test rt_sigqueueinfo.gen.test rt_sigreturn.gen.test rt_sigsuspend.gen.test rt_sigtimedwait.gen.test rt_tgsigqueueinfo.gen.test s390_guarded_storage.gen.test s390_guarded_storage-v.gen.test s390_pci_mmio_read_write.gen.test s390_runtime_instr.gen.test s390_sthyi.gen.test s390_sthyi-v.gen.test sched.gen.test sched_get_priority_mxx.gen.test sched_rr_get_interval.gen.test sched_xetaffinity.gen.test sched_xetattr.gen.test sched_xetparam.gen.test sched_xetscheduler.gen.test sched_yield.gen.test seccomp-filter.gen.test seccomp-filter-v.gen.test seccomp_get_action_avail.gen.test select.gen.test select-P.gen.test semop.gen.test sendfile.gen.test sendfile64.gen.test set_mempolicy.gen.test setdomainname.gen.test setfsgid.gen.test setfsgid32.gen.test setfsuid.gen.test setfsuid32.gen.test setgid.gen.test setgid32.gen.test setgroups.gen.test setgroups32.gen.test sethostname.gen.test setns.gen.test setregid.gen.test setregid32.gen.test setresgid.gen.test setresgid32.gen.test setresuid.gen.test setresuid32.gen.test setreuid.gen.test setreuid32.gen.test setrlimit.gen.test setrlimit-Xabbrev.gen.test setrlimit-Xraw.gen.test setrlimit-Xverbose.gen.test setuid.gen.test setuid32.gen.test shmxt.gen.test shutdown.gen.test sigaction.gen.test siginfo.gen.test signal.gen.test signal_receive.gen.test signalfd4.gen.test sigpending.gen.test sigprocmask.gen.test sigreturn.gen.test sigsuspend.gen.test so_error.gen.test so_linger.gen.test so_peercred.gen.test so_peercred-Xabbrev.gen.test so_peercred-Xraw.gen.test so_peercred-Xverbose.gen.test sock_filter-v.gen.test sock_filter-v-Xabbrev.gen.test sock_filter-v-Xraw.gen.test sock_filter-v-Xverbose.gen.test sockaddr_xlat-Xabbrev.gen.test sockaddr_xlat-Xraw.gen.test sockaddr_xlat-Xverbose.gen.test socketcall.gen.test sockopt-sol_netlink.gen.test sockopt-timestamp.gen.test splice.gen.test stat.gen.test stat64.gen.test statfs.gen.test statfs64.gen.test statx.gen.test swap.gen.test sxetmask.gen.test symlink.gen.test symlinkat.gen.test sync.gen.test sync_file_range.gen.test sync_file_range2.gen.test sysinfo.gen.test syslog.gen.test tee.gen.test time.gen.test timer_create.gen.test timer_xettime.gen.test timerfd_xettime.gen.test times.gen.test times-fail.gen.test trace_fstat.gen.test trace_fstatfs.gen.test trace_lstat.gen.test trace_personality_32.gen.test trace_personality_64.gen.test trace_personality_regex_32.gen.test trace_personality_regex_64.gen.test trace_personality_regex_x32.gen.test trace_personality_x32.gen.test trace_question.gen.test trace_stat.gen.test trace_stat_like.gen.test trace_statfs.gen.test trace_statfs_like.gen.test truncate.gen.test truncate64.gen.test ugetrlimit.gen.test umask.gen.test umoven-illptr.gen.test umovestr-illptr.gen.test umovestr3.gen.test unlink.gen.test unlinkat.gen.test unshare.gen.test userfaultfd.gen.test ustat.gen.test utime.gen.test utimensat.gen.test utimensat-Xabbrev.gen.test utimensat-Xraw.gen.test utimensat-Xverbose.gen.test utimes.gen.test vfork-f.gen.test vhangup.gen.test vmsplice.gen.test wait4.gen.test wait4-v.gen.test waitid.gen.test waitid-v.gen.test waitpid.gen.test xattr.gen.test xattr-strings.gen.test xet_robust_list.gen.test xetitimer.gen.test xetpgid.gen.test xetpriority.gen.test xettimeofday.gen.test +GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test accept4.gen.test access.gen.test acct.gen.test add_key.gen.test adjtimex.gen.test aio.gen.test aio_pgetevents.gen.test alarm.gen.test bpf.gen.test bpf-obj_get_info_by_fd.gen.test bpf-obj_get_info_by_fd-prog.gen.test bpf-obj_get_info_by_fd-prog-v.gen.test bpf-obj_get_info_by_fd-v.gen.test bpf-v.gen.test btrfs.gen.test chmod.gen.test chown.gen.test chown32.gen.test chroot.gen.test clock.gen.test clock_adjtime.gen.test clock_nanosleep.gen.test clock_xettime.gen.test clone3.gen.test clone3-Xabbrev.gen.test clone3-Xraw.gen.test clone3-Xverbose.gen.test clone3-success-Xabbrev.gen.test clone3-success-Xraw.gen.test clone3-success-Xverbose.gen.test clone_parent.gen.test clone_parent--quiet-exit.gen.test clone_parent-q.gen.test clone_parent-qq.gen.test clone_ptrace--quiet-attach.gen.test clone_ptrace--quiet-exit.gen.test clone_ptrace-q.gen.test clone_ptrace-qq.gen.test close_range.gen.test close_range-P.gen.test close_range-y.gen.test close_range-yy.gen.test copy_file_range.gen.test creat.gen.test delete_module.gen.test dev--decode-fds-dev.gen.test dev--decode-fds-path.gen.test dev--decode-fds-socket.gen.test dev-yy.gen.test dup.gen.test dup-P.gen.test dup-y.gen.test dup-yy.gen.test dup2.gen.test dup2-P.gen.test dup2-y.gen.test dup2-yy.gen.test dup3.gen.test dup3-P.gen.test dup3-y.gen.test dup3-yy.gen.test epoll_create.gen.test epoll_create1.gen.test epoll_ctl.gen.test epoll_pwait.gen.test epoll_wait.gen.test erestartsys.gen.test execveat.gen.test execveat-v.gen.test faccessat-P.gen.test faccessat-y.gen.test faccessat-yy.gen.test faccessat2-P.gen.test faccessat2-y.gen.test faccessat2-yy.gen.test fadvise64_64.gen.test fallocate.gen.test fanotify_init.gen.test fanotify_mark.gen.test fanotify_mark-Xabbrev.gen.test fanotify_mark-Xraw.gen.test fanotify_mark-Xverbose.gen.test fchdir.gen.test fchmod.gen.test fchmodat.gen.test fchown.gen.test fchown32.gen.test fchownat.gen.test fcntl.gen.test fcntl--pidns-translation.gen.test fcntl64.gen.test fcntl64--pidns-translation.gen.test fdatasync.gen.test file_handle.gen.test file_ioctl.gen.test filter_seccomp.gen.test filter_seccomp-flag.gen.test finit_module.gen.test flock.gen.test fork-f.gen.test fsconfig.gen.test fsconfig-P.gen.test fsmount.gen.test fsopen.gen.test fspick.gen.test fspick-P.gen.test fstat.gen.test fstat-Xabbrev.gen.test fstat-Xraw.gen.test fstat-Xverbose.gen.test fstat64.gen.test fstat64-Xabbrev.gen.test fstat64-Xraw.gen.test fstat64-Xverbose.gen.test fstatat64.gen.test fstatfs.gen.test fstatfs64.gen.test fsync.gen.test fsync-y.gen.test ftruncate.gen.test ftruncate64.gen.test futimesat.gen.test get_mempolicy.gen.test getcpu.gen.test getcwd.gen.test getdents.gen.test getdents-v.gen.test getdents64.gen.test getdents64-v.gen.test getegid.gen.test getegid-creds.gen.test getegid32.gen.test getegid32-creds.gen.test geteuid.gen.test geteuid-creds.gen.test geteuid32.gen.test geteuid32-creds.gen.test getgid.gen.test getgid-creds.gen.test getgid32.gen.test getgid32-creds.gen.test getgroups.gen.test getgroups32.gen.test getpeername.gen.test getpgrp.gen.test getpgrp--pidns-translation.gen.test getpid.gen.test getpid--pidns-translation.gen.test getppid.gen.test getrandom.gen.test getresgid.gen.test getresgid32.gen.test getresuid.gen.test getresuid32.gen.test getrlimit.gen.test getrusage.gen.test getsid.gen.test getsid--pidns-translation.gen.test getsockname.gen.test gettid.gen.test getuid-creds.gen.test getuid32.gen.test getuid32-creds.gen.test getxgid.gen.test getxpid.gen.test getxuid.gen.test group_req.gen.test inet-cmsg.gen.test init_module.gen.test inotify.gen.test inotify_init.gen.test inotify_init1.gen.test inotify_init1-y.gen.test io_uring_enter.gen.test io_uring_register.gen.test io_uring_setup.gen.test ioctl_block.gen.test ioctl_dm.gen.test ioctl_dm-v.gen.test ioctl_evdev.gen.test ioctl_evdev-Xabbrev.gen.test ioctl_evdev-Xraw.gen.test ioctl_evdev-Xverbose.gen.test ioctl_evdev-v.gen.test ioctl_evdev-v-Xabbrev.gen.test ioctl_evdev-v-Xraw.gen.test ioctl_evdev-v-Xverbose.gen.test ioctl_evdev-success-Xabbrev.gen.test ioctl_evdev-success-Xraw.gen.test ioctl_evdev-success-Xverbose.gen.test ioctl_evdev-success-v.gen.test ioctl_evdev-success-v-Xabbrev.gen.test ioctl_evdev-success-v-Xraw.gen.test ioctl_evdev-success-v-Xverbose.gen.test ioctl_hdio.gen.test ioctl_hdio-Xabbrev.gen.test ioctl_hdio-Xraw.gen.test ioctl_hdio-Xverbose.gen.test ioctl_hdio-v.gen.test ioctl_hdio-v-Xabbrev.gen.test ioctl_hdio-v-Xraw.gen.test ioctl_hdio-v-Xverbose.gen.test ioctl_hdio-success.gen.test ioctl_hdio-success-Xabbrev.gen.test ioctl_hdio-success-Xraw.gen.test ioctl_hdio-success-Xverbose.gen.test ioctl_hdio-success-v.gen.test ioctl_hdio-success-v-Xabbrev.gen.test ioctl_hdio-success-v-Xraw.gen.test ioctl_hdio-success-v-Xverbose.gen.test ioctl_inotify.gen.test ioctl_kvm_run.gen.test ioctl_kvm_run-v.gen.test ioctl_kvm_run_auxstr_vcpu.gen.test ioctl_loop.gen.test ioctl_loop-nv.gen.test ioctl_loop-v.gen.test ioctl_mtd.gen.test ioctl_nbd.gen.test ioctl_nsfs.gen.test ioctl_perf.gen.test ioctl_perf-success.gen.test ioctl_ptp.gen.test ioctl_random.gen.test ioctl_rtc.gen.test ioctl_rtc-v.gen.test ioctl_scsi.gen.test ioctl_sg_io_v3.gen.test ioctl_sg_io_v4.gen.test ioctl_sock_gifconf.gen.test ioctl_tee.gen.test ioctl_uffdio.gen.test ioctl_v4l2.gen.test ioctl_v4l2-Xabbrev.gen.test ioctl_v4l2-Xraw.gen.test ioctl_v4l2-Xverbose.gen.test ioctl_v4l2-v.gen.test ioctl_v4l2-v-Xabbrev.gen.test ioctl_v4l2-v-Xraw.gen.test ioctl_v4l2-v-Xverbose.gen.test ioctl_v4l2-success.gen.test ioctl_v4l2-success-Xabbrev.gen.test ioctl_v4l2-success-Xraw.gen.test ioctl_v4l2-success-Xverbose.gen.test ioctl_v4l2-success-v.gen.test ioctl_v4l2-success-v-Xabbrev.gen.test ioctl_v4l2-success-v-Xraw.gen.test ioctl_v4l2-success-v-Xverbose.gen.test ioctl_watchdog.gen.test ioperm.gen.test iopl.gen.test ioprio.gen.test ioprio--pidns-translation.gen.test ioprio-Xabbrev.gen.test ioprio-Xraw.gen.test ioprio-Xverbose.gen.test ip_mreq.gen.test ipc.gen.test ipc_msg.gen.test ipc_msg-Xabbrev.gen.test ipc_msg-Xraw.gen.test ipc_msg-Xverbose.gen.test ipc_msgbuf-Xabbrev.gen.test ipc_msgbuf-Xraw.gen.test ipc_msgbuf-Xverbose.gen.test ipc_sem.gen.test ipc_sem-Xabbrev.gen.test ipc_sem-Xraw.gen.test ipc_sem-Xverbose.gen.test ipc_shm.gen.test ipc_shm-Xabbrev.gen.test ipc_shm-Xraw.gen.test ipc_shm-Xverbose.gen.test kcmp.gen.test kcmp-y.gen.test kcmp-y--pidns-translation.gen.test kern_features.gen.test kernel_version.gen.test kernel_version-Xabbrev.gen.test kernel_version-Xraw.gen.test kernel_version-Xverbose.gen.test kexec_file_load.gen.test kexec_load.gen.test keyctl.gen.test keyctl-Xabbrev.gen.test keyctl-Xraw.gen.test keyctl-Xverbose.gen.test kill.gen.test kill--pidns-translation.gen.test ksysent.gen.test lchown.gen.test lchown32.gen.test link.gen.test linkat.gen.test lookup_dcookie.gen.test lstat.gen.test lstat64.gen.test madvise.gen.test maybe_switch_current_tcp.gen.test maybe_switch_current_tcp--quiet-thread-execve.gen.test mbind.gen.test mbind-Xabbrev.gen.test mbind-Xraw.gen.test mbind-Xverbose.gen.test membarrier.gen.test memfd_create.gen.test memfd_create-Xabbrev.gen.test memfd_create-Xraw.gen.test memfd_create-Xverbose.gen.test migrate_pages.gen.test migrate_pages--pidns-translation.gen.test mincore.gen.test mkdir.gen.test mkdirat.gen.test mknod.gen.test mknodat.gen.test mlock.gen.test mlock2.gen.test mlockall.gen.test mmap-Xabbrev.gen.test mmap-Xraw.gen.test mmap-Xverbose.gen.test mmap64.gen.test mmap64-Xabbrev.gen.test mmap64-Xraw.gen.test mmap64-Xverbose.gen.test mmsg.gen.test mmsg-silent.gen.test mmsg_name.gen.test mmsg_name-v.gen.test modify_ldt.gen.test mount.gen.test mount-Xabbrev.gen.test mount-Xraw.gen.test mount-Xverbose.gen.test move_mount.gen.test move_mount-P.gen.test move_pages.gen.test move_pages-Xabbrev.gen.test move_pages-Xraw.gen.test move_pages-Xverbose.gen.test move_pages--pidns-translation.gen.test mq.gen.test mq_sendrecv.gen.test mq_sendrecv-read.gen.test mq_sendrecv-write.gen.test msg_control.gen.test msg_control-v.gen.test msg_name.gen.test munlockall.gen.test nanosleep.gen.test net--decode-fds-dev-netlink.gen.test net--decode-fds-none-netlink.gen.test net--decode-fds-path-netlink.gen.test net--decode-fds-socket-netlink.gen.test net-icmp_filter.gen.test net-packet_mreq.gen.test net-packet_mreq-Xabbrev.gen.test net-packet_mreq-Xraw.gen.test net-packet_mreq-Xverbose.gen.test net-sockaddr.gen.test net-sockaddr--pidns-translation.gen.test net-tpacket_req.gen.test net-tpacket_stats.gen.test net-yy-inet6.gen.test netlink_audit.gen.test netlink_crypto.gen.test netlink_generic.gen.test netlink_kobject_uevent.gen.test netlink_netfilter.gen.test netlink_protocol.gen.test netlink_route.gen.test netlink_selinux.gen.test netlink_xfrm.gen.test newfstatat.gen.test nfnetlink_acct.gen.test nfnetlink_cthelper.gen.test nfnetlink_ctnetlink.gen.test nfnetlink_ctnetlink_exp.gen.test nfnetlink_cttimeout.gen.test nfnetlink_ipset.gen.test nfnetlink_nft_compat.gen.test nfnetlink_nftables.gen.test nfnetlink_osf.gen.test nfnetlink_queue.gen.test nfnetlink_ulog.gen.test nlattr.gen.test nlattr_br_port_msg.gen.test nlattr_crypto_user_alg.gen.test nlattr_dcbmsg.gen.test nlattr_fib_rule_hdr.gen.test nlattr_ifaddrlblmsg.gen.test nlattr_ifaddrmsg.gen.test nlattr_ifinfomsg.gen.test nlattr_ifla_af_spec.gen.test nlattr_ifla_brport.gen.test nlattr_ifla_linkinfo.gen.test nlattr_ifla_port.gen.test nlattr_ifla_xdp.gen.test nlattr_ifla_xdp-y.gen.test nlattr_inet_diag_msg.gen.test nlattr_inet_diag_req_compat.gen.test nlattr_inet_diag_req_v2.gen.test nlattr_mdba_mdb_entry.gen.test nlattr_mdba_router_port.gen.test nlattr_ndmsg.gen.test nlattr_ndtmsg.gen.test nlattr_netconfmsg.gen.test nlattr_netlink_diag_msg.gen.test nlattr_nlmsgerr.gen.test nlattr_packet_diag_msg.gen.test nlattr_rtgenmsg.gen.test nlattr_rtmsg.gen.test nlattr_smc_diag_msg.gen.test nlattr_tc_stats.gen.test nlattr_tca_stab.gen.test nlattr_tcamsg.gen.test nlattr_tcmsg.gen.test nlattr_unix_diag_msg.gen.test old_mmap.gen.test old_mmap-P.gen.test old_mmap-Xabbrev.gen.test old_mmap-Xraw.gen.test old_mmap-Xverbose.gen.test old_mmap-v-none.gen.test oldfstat.gen.test oldlstat.gen.test oldselect.gen.test oldselect-P.gen.test oldselect-efault.gen.test oldselect-efault-P.gen.test oldstat.gen.test open.gen.test open_tree.gen.test open_tree-P.gen.test openat.gen.test openat2.gen.test openat2-Xabbrev.gen.test openat2-Xraw.gen.test openat2-Xverbose.gen.test openat2-v.gen.test openat2-v-y.gen.test openat2-v-y-Xabbrev.gen.test openat2-v-y-Xraw.gen.test openat2-v-y-Xverbose.gen.test openat2-y.gen.test orphaned_process_group.gen.test osf_utimes.gen.test pause.gen.test perf_event_open.gen.test perf_event_open_nonverbose.gen.test perf_event_open_unabbrev.gen.test personality-Xabbrev.gen.test personality-Xraw.gen.test personality-Xverbose.gen.test pidfd_getfd.gen.test pidfd_getfd-y.gen.test pidfd_getfd-yy.gen.test pidfd_open.gen.test pidfd_open--decode-fd-path.gen.test pidfd_open--decode-fd-pidfd.gen.test pidfd_open--decode-fd-socket.gen.test pidfd_open-P.gen.test pidfd_open-y.gen.test pidfd_open-yy.gen.test pidfd_open--pidns-translation.gen.test pidfd_send_signal.gen.test pidfd_send_signal--pidns-translation.gen.test pipe2.gen.test pkey_alloc.gen.test pkey_free.gen.test pkey_mprotect.gen.test ppoll.gen.test ppoll-P.gen.test ppoll-v.gen.test pread64-pwrite64.gen.test preadv.gen.test preadv-pwritev.gen.test preadv2-pwritev2.gen.test printpath-umovestr.gen.test printpath-umovestr-peekdata.gen.test printpath-umovestr-undumpable.gen.test printsignal-Xabbrev.gen.test printsignal-Xraw.gen.test printsignal-Xverbose.gen.test printstr.gen.test printstrn-umoven.gen.test printstrn-umoven-peekdata.gen.test printstrn-umoven-undumpable.gen.test prlimit64.gen.test prlimit64--pidns-translation.gen.test process_vm_readv.gen.test process_vm_readv--pidns-translation.gen.test process_vm_writev.gen.test process_vm_writev--pidns-translation.gen.test pselect6.gen.test ptrace.gen.test ptrace_syscall_info.gen.test pwritev.gen.test quotactl.gen.test quotactl-Xabbrev.gen.test quotactl-Xraw.gen.test quotactl-Xverbose.gen.test quotactl-v.gen.test quotactl-xfs.gen.test quotactl-xfs-v.gen.test read-write.gen.test readahead.gen.test readdir.gen.test readlink.gen.test readlinkat.gen.test reboot.gen.test recv-MSG_TRUNC.gen.test recvfrom.gen.test recvfrom-MSG_TRUNC.gen.test recvmmsg-timeout.gen.test recvmsg.gen.test regex.gen.test remap_file_pages.gen.test remap_file_pages-Xabbrev.gen.test remap_file_pages-Xraw.gen.test remap_file_pages-Xverbose.gen.test rename.gen.test renameat.gen.test renameat2.gen.test request_key.gen.test riscv_flush_icache.gen.test rmdir.gen.test rt_sigpending.gen.test rt_sigprocmask.gen.test rt_sigqueueinfo.gen.test rt_sigqueueinfo--pidns-translation.gen.test rt_sigreturn.gen.test rt_sigsuspend.gen.test rt_sigtimedwait.gen.test rt_tgsigqueueinfo.gen.test rt_tgsigqueueinfo--pidns-translation.gen.test s390_guarded_storage.gen.test s390_guarded_storage-v.gen.test s390_pci_mmio_read_write.gen.test s390_runtime_instr.gen.test s390_sthyi.gen.test s390_sthyi-v.gen.test sched.gen.test sched_get_priority_mxx.gen.test sched_rr_get_interval.gen.test sched_xetaffinity.gen.test sched_xetaffinity--pidns-translation.gen.test sched_xetattr.gen.test sched_xetattr--pidns-translation.gen.test sched_xetparam.gen.test sched_xetparam--pidns-translation.gen.test sched_xetscheduler.gen.test sched_xetscheduler--pidns-translation.gen.test sched_yield.gen.test seccomp-filter.gen.test seccomp-filter-v.gen.test seccomp_get_action_avail.gen.test select.gen.test select-P.gen.test semop.gen.test semop-indirect.gen.test semtimedop.gen.test sendfile.gen.test sendfile64.gen.test set_mempolicy.gen.test set_mempolicy-Xabbrev.gen.test set_mempolicy-Xraw.gen.test set_mempolicy-Xverbose.gen.test setdomainname.gen.test setfsgid.gen.test setfsgid32.gen.test setfsuid.gen.test setfsuid32.gen.test setgid.gen.test setgid32.gen.test setgroups.gen.test setgroups32.gen.test sethostname.gen.test setns.gen.test setregid.gen.test setregid32.gen.test setresgid.gen.test setresgid32.gen.test setresuid.gen.test setresuid32.gen.test setreuid.gen.test setreuid32.gen.test setrlimit.gen.test setrlimit-Xabbrev.gen.test setrlimit-Xraw.gen.test setrlimit-Xverbose.gen.test setuid.gen.test setuid32.gen.test shmxt.gen.test shutdown.gen.test sigaction.gen.test siginfo.gen.test signal.gen.test signal_receive.gen.test signal_receive--pidns-translation.gen.test signalfd4.gen.test sigpending.gen.test sigprocmask.gen.test sigreturn.gen.test sigsuspend.gen.test so_error.gen.test so_linger.gen.test so_peercred.gen.test so_peercred-Xabbrev.gen.test so_peercred-Xraw.gen.test so_peercred-Xverbose.gen.test so_peercred--pidns-translation.gen.test sock_filter-v.gen.test sock_filter-v-Xabbrev.gen.test sock_filter-v-Xraw.gen.test sock_filter-v-Xverbose.gen.test sockaddr_xlat-Xabbrev.gen.test sockaddr_xlat-Xraw.gen.test sockaddr_xlat-Xverbose.gen.test socketcall.gen.test sockopt-sol_netlink.gen.test sockopt-timestamp.gen.test splice.gen.test stat.gen.test stat64.gen.test statfs.gen.test statfs64.gen.test status-all.gen.test status-failed.gen.test status-failed-long.gen.test status-failed-status.gen.test status-none.gen.test status-successful.gen.test status-successful-long.gen.test status-successful-status.gen.test status-unfinished.gen.test statx.gen.test strace--absolute-timestamps.gen.test strace--absolute-timestamps-format-time.gen.test strace--absolute-timestamps-format-time-precision-s.gen.test strace--absolute-timestamps-format-time-precision-ms.gen.test strace--absolute-timestamps-format-time-precision-us.gen.test strace--absolute-timestamps-format-time-precision-ns.gen.test strace--absolute-timestamps-format-unix-precision-s.gen.test strace--absolute-timestamps-format-unix-precision-ms.gen.test strace--absolute-timestamps-format-unix-precision-us.gen.test strace--absolute-timestamps-format-unix-precision-ns.gen.test strace--follow-forks-output-separately.gen.test strace--relative-timestamps.gen.test strace--relative-timestamps-s.gen.test strace--relative-timestamps-ms.gen.test strace--relative-timestamps-us.gen.test strace--relative-timestamps-ns.gen.test strace--syscall-times.gen.test strace--syscall-times-s.gen.test strace--syscall-times-ms.gen.test strace--syscall-times-us.gen.test strace--syscall-times-ns.gen.test strace--strings-in-hex.gen.test strace--strings-in-hex-all.gen.test strace--strings-in-hex-non-ascii.gen.test strace--timestamps.gen.test strace--timestamps-time.gen.test strace--timestamps-time-s.gen.test strace--timestamps-time-ms.gen.test strace--timestamps-time-us.gen.test strace--timestamps-time-ns.gen.test strace--timestamps-unix-s.gen.test strace--timestamps-unix-ms.gen.test strace--timestamps-unix-us.gen.test strace--timestamps-unix-ns.gen.test strace-n.gen.test strace-x.gen.test strace-xx.gen.test swap.gen.test sxetmask.gen.test symlink.gen.test symlinkat.gen.test sync.gen.test sync_file_range.gen.test sync_file_range2.gen.test sysinfo.gen.test syslog.gen.test tee.gen.test tgkill.gen.test tgkill--pidns-translation.gen.test threads-execve--quiet-thread-execve.gen.test threads-execve-q.gen.test threads-execve-qq.gen.test threads-execve-qqq.gen.test time.gen.test timer_create.gen.test timer_xettime.gen.test timerfd_xettime.gen.test times.gen.test times-fail.gen.test tkill.gen.test tkill--pidns-translation.gen.test trace_clock.gen.test trace_creds.gen.test trace_fstat.gen.test trace_fstatfs.gen.test trace_lstat.gen.test trace_personality_32.gen.test trace_personality_64.gen.test trace_personality_regex_32.gen.test trace_personality_regex_64.gen.test trace_personality_regex_x32.gen.test trace_personality_x32.gen.test trace_question.gen.test trace_stat.gen.test trace_stat_like.gen.test trace_statfs.gen.test trace_statfs_like.gen.test trie_test.gen.test truncate.gen.test truncate64.gen.test ugetrlimit.gen.test umask.gen.test umoven-illptr.gen.test umovestr-illptr.gen.test umovestr3.gen.test umovestr_cached_adjacent.gen.test unlink.gen.test unlinkat.gen.test unshare.gen.test userfaultfd.gen.test ustat.gen.test utime.gen.test utimensat.gen.test utimensat-Xabbrev.gen.test utimensat-Xraw.gen.test utimensat-Xverbose.gen.test utimes.gen.test vfork-f.gen.test vhangup.gen.test vmsplice.gen.test wait4.gen.test wait4-v.gen.test waitid.gen.test waitid-v.gen.test waitpid.gen.test xattr.gen.test xattr-strings.gen.test xet_robust_list.gen.test xet_robust_list--pidns-translation.gen.test xetitimer.gen.test xetpgid.gen.test xetpgid--pidns-translation.gen.test xetpriority.gen.test xetpriority--pidns-translation.gen.test xettimeofday.gen.test $(srcdir)/_newselect.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -79,6 +79,63 @@ $(srcdir)/clock_nanosleep.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/clock_xettime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/clone3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-success-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-success-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-success-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_parent.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_parent--quiet-exit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_parent-q.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_parent-qq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_ptrace--quiet-attach.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_ptrace--quiet-exit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_ptrace-q.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_ptrace-qq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/close_range.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/close_range-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/close_range-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/close_range-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/copy_file_range.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -88,18 +145,54 @@ $(srcdir)/creat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/delete_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/dev--decode-fds-dev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dev--decode-fds-path.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dev--decode-fds-socket.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/dev-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/dup.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/dup-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/dup2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/dup2-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup2-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup2-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/dup3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/dup3-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup3-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup3-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/epoll_create.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -124,7 +217,22 @@ $(srcdir)/execveat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/execveat-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ -$(srcdir)/faccessat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in +$(srcdir)/faccessat-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat2-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat2-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat2-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/fadvise64_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in @@ -169,9 +277,15 @@ $(srcdir)/fchownat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/fcntl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/fcntl--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/fcntl64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/fcntl64--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/fdatasync.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -181,6 +295,12 @@ $(srcdir)/file_handle.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.i $(srcdir)/file_ioctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/filter_seccomp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/filter_seccomp-flag.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/finit_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -190,6 +310,24 @@ $(srcdir)/flock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/fork-f.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/fsconfig.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fsconfig-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fsmount.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fsopen.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fspick.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fspick-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/fstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -250,27 +388,51 @@ $(srcdir)/getcwd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/getdents.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getdents-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getdents64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getdents64-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getegid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getegid-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getegid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getegid32-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/geteuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/geteuid-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/geteuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/geteuid32-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getgid-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getgid32-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getgroups.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -283,9 +445,15 @@ $(srcdir)/getpeername.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.i $(srcdir)/getpgrp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getpgrp--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getpid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getpid--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getppid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -313,16 +481,31 @@ $(srcdir)/getrusage.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/getsid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getsid--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getsockname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/gettid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getuid-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ -$(srcdir)/getxxid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in +$(srcdir)/getuid32-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/getxgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/getxpid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/getxuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/group_req.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in @@ -337,9 +520,15 @@ $(srcdir)/init_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.i $(srcdir)/inotify.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/inotify_init.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/inotify_init1.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/inotify_init1-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/io_uring_enter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -361,9 +550,96 @@ $(srcdir)/ioctl_dm-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/ioctl_evdev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_evdev-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioctl_evdev-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_evdev-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioctl_inotify.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -397,6 +673,9 @@ $(srcdir)/ioctl_nsfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/ioctl_perf.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_perf-success.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioctl_ptp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -421,12 +700,63 @@ $(srcdir)/ioctl_sg_io_v4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_test $(srcdir)/ioctl_sock_gifconf.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_tee.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioctl_uffdio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/ioctl_v4l2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_v4l2-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_watchdog.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioperm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -436,6 +766,9 @@ $(srcdir)/iopl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/ioprio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioprio--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioprio-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -502,6 +835,9 @@ $(srcdir)/kcmp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/kcmp-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/kcmp-y--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/kern_features.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -538,6 +874,12 @@ $(srcdir)/keyctl-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/kill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/kill--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ksysent.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/lchown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -562,9 +904,24 @@ $(srcdir)/lstat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/madvise.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/maybe_switch_current_tcp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/maybe_switch_current_tcp--quiet-thread-execve.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/mbind.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/mbind-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/mbind-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/mbind-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/membarrier.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -583,6 +940,9 @@ $(srcdir)/memfd_create-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/g $(srcdir)/migrate_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/migrate_pages--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/mincore.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -655,6 +1015,12 @@ $(srcdir)/mount-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/mount-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/move_mount.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/move_mount-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/move_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -667,6 +1033,9 @@ $(srcdir)/move_pages-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/move_pages-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/move_pages--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/mq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -694,6 +1063,18 @@ $(srcdir)/munlockall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/nanosleep.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/net--decode-fds-dev-netlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/net--decode-fds-none-netlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/net--decode-fds-path-netlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/net--decode-fds-socket-netlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/net-icmp_filter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -712,6 +1093,9 @@ $(srcdir)/net-packet_mreq-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir $(srcdir)/net-sockaddr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/net-sockaddr--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/net-tpacket_req.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -823,6 +1207,9 @@ $(srcdir)/nlattr_ifla_port.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_te $(srcdir)/nlattr_ifla_xdp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/nlattr_ifla_xdp-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/nlattr_inet_diag_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -922,9 +1309,45 @@ $(srcdir)/oldstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/open.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/open_tree.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/open_tree-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/openat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/openat2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v-y-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v-y-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v-y-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/orphaned_process_group.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -952,9 +1375,45 @@ $(srcdir)/personality-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_te $(srcdir)/personality-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/pidfd_getfd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_getfd-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_getfd-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open--decode-fd-path.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open--decode-fd-pidfd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open--decode-fd-socket.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/pidfd_send_signal.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/pidfd_send_signal--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/pipe2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1021,12 +1480,21 @@ $(srcdir)/printstrn-umoven-undumpable.gen.test: $(abs_srcdir)/gen_tests.sh $(src $(srcdir)/prlimit64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/prlimit64--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/process_vm_readv.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/process_vm_readv--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/process_vm_writev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/process_vm_writev--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/pselect6.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1078,9 +1546,15 @@ $(srcdir)/readlinkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/reboot.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/recv-MSG_TRUNC.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/recvfrom.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/recvfrom-MSG_TRUNC.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/recvmmsg-timeout.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1129,6 +1603,9 @@ $(srcdir)/rt_sigprocmask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_test $(srcdir)/rt_sigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/rt_sigqueueinfo--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/rt_sigreturn.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1141,6 +1618,9 @@ $(srcdir)/rt_sigtimedwait.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/rt_tgsigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/rt_tgsigqueueinfo--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/s390_guarded_storage.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1171,15 +1651,27 @@ $(srcdir)/sched_rr_get_interval.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/g $(srcdir)/sched_xetaffinity.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/sched_xetaffinity--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sched_xetattr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/sched_xetattr--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sched_xetparam.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/sched_xetparam--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sched_xetscheduler.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/sched_xetscheduler--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sched_yield.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1201,6 +1693,12 @@ $(srcdir)/select-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/semop.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/semop-indirect.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/semtimedop.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sendfile.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1210,6 +1708,15 @@ $(srcdir)/sendfile64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/set_mempolicy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/set_mempolicy-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/set_mempolicy-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/set_mempolicy-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/setdomainname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1303,6 +1810,9 @@ $(srcdir)/signal.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/signal_receive.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/signal_receive--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/signalfd4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1336,6 +1846,9 @@ $(srcdir)/so_peercred-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_te $(srcdir)/so_peercred-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/so_peercred--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sock_filter-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1381,9 +1894,147 @@ $(srcdir)/statfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/statfs64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/status-all.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-failed.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-failed-long.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-failed-status.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-none.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-successful.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-successful-long.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-successful-status.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-unfinished.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/statx.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/strace--absolute-timestamps.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time-precision-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time-precision-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time-precision-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time-precision-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-unix-precision-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-unix-precision-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-unix-precision-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-unix-precision-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--follow-forks-output-separately.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--strings-in-hex.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--strings-in-hex-all.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--strings-in-hex-non-ascii.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-unix-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-unix-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-unix-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-unix-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace-n.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace-x.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace-xx.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/swap.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1414,6 +2065,24 @@ $(srcdir)/syslog.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/tee.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/tgkill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/tgkill--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/threads-execve--quiet-thread-execve.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/threads-execve-q.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/threads-execve-qq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/threads-execve-qqq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/time.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1432,6 +2101,18 @@ $(srcdir)/times.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/times-fail.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/tkill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/tkill--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/trace_clock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/trace_creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/trace_fstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1474,6 +2155,9 @@ $(srcdir)/trace_statfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests. $(srcdir)/trace_statfs_like.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/trie_test.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/truncate.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1495,6 +2179,9 @@ $(srcdir)/umovestr-illptr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/umovestr3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/umovestr_cached_adjacent.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/unlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1561,14 +2248,23 @@ $(srcdir)/xattr-strings.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests $(srcdir)/xet_robust_list.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/xet_robust_list--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/xetitimer.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/xetpgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/xetpgid--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/xetpriority.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/xetpriority--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/xettimeofday.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ diff --git a/tests-m32/gen_tests.in b/tests-m32/gen_tests.in index 487b9608..359462a1 100644 --- a/tests-m32/gen_tests.in +++ b/tests-m32/gen_tests.in @@ -1,6 +1,6 @@ # Input for gen_tests.sh # -# Copyright (c) 2017-2019 The strace developers. +# Copyright (c) 2017-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -9,7 +9,7 @@ _newselect _newselect-P -e trace=_newselect -P /dev/full 9>>/dev/full accept -a22 accept4 -a37 -access -a30 -P access_sample +access -a30 --trace-path=access_sample acct -a20 add_key -a30 -s12 adjtimex -a15 @@ -31,13 +31,44 @@ clock test_trace_expr 'times|fcntl.*' -e/clock clock_adjtime -a37 clock_nanosleep -e trace=clock_nanosleep,clock_gettime clock_xettime -a36 -e trace=clock_getres,clock_gettime,clock_settime +clone3 -a16 +clone3-Xabbrev -a16 -Xabbrev -e trace=clone3 +clone3-Xraw -a16 -Xraw -e trace=clone3 +clone3-Xverbose -a16 -Xverbose -e trace=clone3 +clone3-success-Xabbrev +clone3-success.test -a16 -Xabbrev +clone3-success-Xraw +clone3-success.test -a16 -Xraw +clone3-success-Xverbose +clone3-success.test -a16 -Xverbose +clone_parent +clone_ptrace.test +clone_parent--quiet-exit +clone_ptrace.test --quiet=exit,personality +clone_parent-q +clone_ptrace.test -q +clone_parent-qq +clone_ptrace.test -qq +clone_ptrace--quiet-attach +clone_ptrace.test --quiet=attach,personality +clone_ptrace--quiet-exit +clone_ptrace.test --quiet=exit,personality +clone_ptrace-q +clone_ptrace.test -q +clone_ptrace-qq +clone_ptrace.test -qq +close_range -a21 7>>/dev/full +close_range-P -a21 --trace=close_range -P /dev/full 7>>/dev/full +close_range-y -a33 --trace=close_range -y 7>>/dev/full +close_range-yy -a33 --trace=close_range -yy 7>>/dev/full copy_file_range creat -a20 delete_module -a23 +dev--decode-fds-dev -a30 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" -e decode-fds=dev +dev--decode-fds-path -a19 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" -e decode-fds=path +dev--decode-fds-socket -a19 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" --decode-fds=socket dev-yy -a30 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" -yy -dup -a8 -dup2 -a13 -dup3 -a24 +dup -a7 9>>/dev/full +dup-P -a7 --trace=dup -P /dev/full 9>>/dev/full +dup-y -a8 --trace=dup -y 9>>/dev/full +dup-yy -a8 --trace=dup -yy 9>>/dev/full +dup2 -a11 9>>/dev/full +dup2-P -a11 --trace=dup2 -P /dev/full 9>>/dev/full +dup2-y -a13 --trace=dup2 -y 9>>/dev/full +dup2-yy -a13 --trace=dup2 -yy 9>>/dev/full +dup3 -a13 7>>/dev/full +dup3-P -a13 --trace=dup3 -P /dev/full 7>>/dev/full +dup3-y -a15 --trace=dup3 -y 7>>/dev/full +dup3-yy -a15 --trace=dup3 -yy 7>>/dev/full epoll_create -a17 epoll_create1 -a28 epoll_ctl @@ -46,7 +77,12 @@ epoll_wait -a26 erestartsys -a34 -e signal=none -e trace=recvfrom execveat execveat-v -v -e trace=execveat -faccessat -P $NAME.sample +faccessat-P -a23 --trace=faccessat -P /dev/full +faccessat-y +faccessat.test -a24 -y +faccessat-yy +faccessat.test -a24 -yy +faccessat2-P -a27 --trace=faccessat2 -P /dev/full +faccessat2-y +faccessat2.test -a28 -y +faccessat2-yy +faccessat2.test -a28 -yy fadvise64_64 +fadvise64.test fallocate -a18 fanotify_init @@ -61,13 +97,23 @@ fchown -a16 fchown32 -a18 fchownat fcntl -a8 +fcntl--pidns-translation test_pidns -a8 -e trace=fcntl fcntl64 -a8 +fcntl64--pidns-translation test_pidns -a8 -e trace=fcntl64 fdatasync -a14 file_handle -e trace=name_to_handle_at,open_by_handle_at file_ioctl +ioctl.test +filter_seccomp . "${srcdir=.}/filter_seccomp.sh"; test_prog_set --seccomp-bpf -f +filter_seccomp-flag ../$NAME finit_module -a25 flock -a19 fork-f -a26 -qq -f -e signal=none -e trace=chdir +fsconfig -s300 -y +fsconfig-P -s300 -y -P /dev/full -e trace=fsconfig +fsmount -a18 -y +fsopen -a35 +fspick -a27 -y +fspick-P -a27 -y -P /dev/full -e trace=fspick fstat -a15 -v -P stat.sample fstat-Xabbrev -a15 -v -Xabbrev -P stat.sample -e trace=fstat fstat-Xraw -a15 -v -Xraw -P stat.sample -e trace=fstat @@ -76,7 +122,7 @@ fstat64 -a17 -v -P stat.sample fstat64-Xabbrev -a17 -Xabbrev -v -P stat.sample -e trace=fstat64 fstat64-Xraw -a17 -Xraw -v -P stat.sample -e trace=fstat64 fstat64-Xverbose -a17 -Xverbose -v -P stat.sample -e trace=fstat64 -fstatat64 -a32 -v -P stat.sample -P /dev/full +fstatat64 -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full fstatfs -a18 fstatfs64 -a24 fsync -a10 @@ -87,19 +133,29 @@ futimesat -a28 get_mempolicy -s3 -a38 getcpu -a25 getcwd -a18 -getdents -a22 -v -getdents64 -a24 -v +getdents -a31 +getdents-v -a22 -v --trace=getdents +getdents64 -a33 +getdents64-v -a24 -v --trace=getdents64 getegid +getuid.test +getegid-creds +getuid.test getegid32 +getuid.test +getegid32-creds +getuid.test geteuid +getuid.test +geteuid-creds +getuid.test geteuid32 +getuid.test +geteuid32-creds +getuid.test getgid +getuid.test +getgid-creds +getuid.test getgid32 +getuid.test +getgid32-creds +getuid.test getgroups -a17 getgroups32 -a19 getpeername -a27 getpgrp -a10 +getpgrp--pidns-translation test_pidns -e trace=getpgrp -a10 getpid -a9 +getpid--pidns-translation test_pidns -e trace=getpid -a9 getppid -a10 getrandom -a32 -s3 getresgid -a25 @@ -109,23 +165,59 @@ getresuid32 -a27 getrlimit -a27 getrusage -v getsid -a10 +getsid--pidns-translation test_pidns -e trace=getsid -a10 getsockname -a27 gettid -a9 +getuid-creds +getuid.test getuid32 +getuid.test -getxxid -a10 -e trace=getxpid,getxuid,getxgid +getuid32-creds +getuid.test +getxgid -a10 +getxpid -a10 +getxuid -a10 group_req -e trace=setsockopt inet-cmsg -e trace=recvmsg init_module -a27 inotify -a23 -e trace=inotify_add_watch,inotify_rm_watch +inotify_init -a15 inotify_init1 -a27 +inotify_init1-y -a27 -y -e trace=inotify_init1 io_uring_enter -y io_uring_register -y io_uring_setup -a26 -y ioctl_block +ioctl.test ioctl_dm +ioctl.test -s9 ioctl_dm-v +ioctl.test -v -s9 -ioctl_evdev +ioctl.test -ioctl_evdev-v +ioctl.test -v +ioctl_evdev +ioctl.test -a26 +ioctl_evdev-Xabbrev +ioctl.test -a26 -Xabbrev +ioctl_evdev-Xraw +ioctl.test -a28 -Xraw +ioctl_evdev-Xverbose +ioctl.test -a41 -Xverbose +ioctl_evdev-v +ioctl.test -a26 -v +ioctl_evdev-v-Xabbrev +ioctl.test -a26 -v -Xabbrev +ioctl_evdev-v-Xraw +ioctl.test -a28 -v -Xraw +ioctl_evdev-v-Xverbose +ioctl.test -a41 -v -Xverbose +ioctl_evdev-success-Xabbrev +ioctl_evdev-success.test -Xabbrev +ioctl_evdev-success-Xraw +ioctl_evdev-success.test -a27 -Xraw +ioctl_evdev-success-Xverbose +ioctl_evdev-success.test -a43 -Xverbose +ioctl_evdev-success-v +ioctl_evdev-success.test -a26 -v +ioctl_evdev-success-v-Xabbrev +ioctl_evdev-success.test -v -Xabbrev +ioctl_evdev-success-v-Xraw +ioctl_evdev-success.test -a27 -v -Xraw +ioctl_evdev-success-v-Xverbose +ioctl_evdev-success.test -a43 -v -Xverbose +ioctl_hdio +ioctl.test -a27 +ioctl_hdio-Xabbrev +ioctl.test -a27 -Xabbrev +ioctl_hdio-Xraw +ioctl.test -a20 -Xraw +ioctl_hdio-Xverbose +ioctl.test -a39 -Xverbose +ioctl_hdio-v +ioctl.test -a27 -v +ioctl_hdio-v-Xabbrev +ioctl.test -a27 -v -Xabbrev +ioctl_hdio-v-Xraw +ioctl.test -a20 -v -Xraw +ioctl_hdio-v-Xverbose +ioctl.test -a39 -v -Xverbose +ioctl_hdio-success +ioctl-success.sh -a27 +ioctl_hdio-success-Xabbrev +ioctl-success.sh -a27 -Xabbrev +ioctl_hdio-success-Xraw +ioctl-success.sh -a20 -Xraw +ioctl_hdio-success-Xverbose +ioctl-success.sh -a39 -Xverbose +ioctl_hdio-success-v +ioctl-success.sh -a27 -v +ioctl_hdio-success-v-Xabbrev +ioctl-success.sh -a27 -v -Xabbrev +ioctl_hdio-success-v-Xraw +ioctl-success.sh -a20 -v -Xraw +ioctl_hdio-success-v-Xverbose +ioctl-success.sh -a39 -v -Xverbose ioctl_inotify +ioctl.test ioctl_kvm_run +ioctl.test -a36 -y ioctl_kvm_run-v +ioctl.test -v -a36 -y @@ -137,6 +229,7 @@ ioctl_mtd +ioctl.test ioctl_nbd +ioctl.test -y ioctl_nsfs +ioctl.test -esignal=none ioctl_perf +ioctl.test +ioctl_perf-success +ioctl-success.sh -a35 ioctl_ptp +ioctl.test ioctl_random +ioctl.test ioctl_rtc +ioctl.test @@ -145,11 +238,29 @@ ioctl_scsi +ioctl.test ioctl_sg_io_v3 +ioctl.test ioctl_sg_io_v4 +ioctl.test ioctl_sock_gifconf +ioctl.test -a28 -s1 +ioctl_tee +ioctl.test ioctl_uffdio +ioctl.test ioctl_v4l2 +ioctl.test +ioctl_v4l2-Xabbrev +ioctl.test -Xabbrev +ioctl_v4l2-Xraw +ioctl.test -Xraw +ioctl_v4l2-Xverbose +ioctl.test -Xverbose +ioctl_v4l2-v +ioctl.test -v +ioctl_v4l2-v-Xabbrev +ioctl.test -v -Xabbrev +ioctl_v4l2-v-Xraw +ioctl.test -v -Xraw +ioctl_v4l2-v-Xverbose +ioctl.test -v -Xverbose +ioctl_v4l2-success +ioctl-success.sh -a29 +ioctl_v4l2-success-Xabbrev +ioctl-success.sh -a29 -Xabbrev +ioctl_v4l2-success-Xraw +ioctl-success.sh -a27 -Xraw +ioctl_v4l2-success-Xverbose +ioctl-success.sh -a30 -Xverbose +ioctl_v4l2-success-v +ioctl-success.sh -a29 -v +ioctl_v4l2-success-v-Xabbrev +ioctl-success.sh -a29 -v -Xabbrev +ioctl_v4l2-success-v-Xraw +ioctl-success.sh -a27 -v -Xraw +ioctl_v4l2-success-v-Xverbose +ioctl-success.sh -a29 -v -Xverbose +ioctl_watchdog +ioctl.test ioperm -a27 iopl -a8 ioprio -a18 -e trace=ioprio_get,ioprio_set +ioprio--pidns-translation test_pidns -a18 -e trace=ioprio_get,ioprio_set ioprio-Xabbrev -a18 -e trace=ioprio_get,ioprio_set -Xabbrev ioprio-Xraw -a18 -e trace=ioprio_get,ioprio_set -Xraw ioprio-Xverbose -a18 -e trace=ioprio_get,ioprio_set -Xverbose @@ -160,18 +271,19 @@ ipc_msg-Xabbrev +ipc.sh -Xabbrev -a26 ipc_msg-Xraw +ipc.sh -Xraw -a16 ipc_msg-Xverbose +ipc.sh -Xverbose -a34 ipc_msgbuf-Xabbrev +ipc_msgbuf.test -Xabbrev -ipc_msgbuf-Xraw +ipc_msgbuf.test -Xraw -a22 +ipc_msgbuf-Xraw +ipc_msgbuf.test -Xraw -a19 ipc_msgbuf-Xverbose +ipc_msgbuf.test -Xverbose ipc_sem +ipc.sh -a29 ipc_sem-Xabbrev +ipc.sh -Xabbrev -a29 ipc_sem-Xraw +ipc.sh -Xraw -a19 ipc_sem-Xverbose +ipc.sh -Xverbose -a36 -ipc_shm +ipc.sh -a29 -ipc_shm-Xabbrev +ipc.sh -Xabbrev -a29 +ipc_shm +ipc.sh -a26 +ipc_shm-Xabbrev +ipc.sh -Xabbrev -a26 ipc_shm-Xraw +ipc.sh -Xraw -a19 -ipc_shm-Xverbose +ipc.sh -Xverbose -a36 +ipc_shm-Xverbose +ipc.sh -Xverbose -a34 kcmp -a22 kcmp-y -a22 -y -e trace=kcmp +kcmp-y--pidns-translation test_pidns -a22 -y -e trace=kcmp kern_features -a16 kernel_version -a16 -v -e trace=bpf kernel_version-Xabbrev -a16 -Xabbrev -v -e trace=bpf @@ -184,21 +296,29 @@ keyctl-Xabbrev -a31 -s10 -e trace=keyctl -Xabbrev keyctl-Xraw -a13 -s10 -e trace=keyctl -Xraw keyctl-Xverbose -a41 -s10 -e trace=keyctl -Xverbose kill -a12 -esignal=none +kill--pidns-translation test_pidns -a12 -e trace=kill -esignal=none +ksysent ../$NAME lchown -a30 lchown32 -a32 link linkat lookup_dcookie -a27 -lstat -a32 -v -P stat.sample -P /dev/full -lstat64 -a32 -v -P stat.sample -P /dev/full +lstat -a31 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full +lstat64 -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full madvise -a33 +maybe_switch_current_tcp -a30 -f -e trace=execveat +maybe_switch_current_tcp--quiet-thread-execve -a30 -s48 -f -e trace=execveat --quiet=personality,thread-execve mbind +mbind-Xabbrev -Xabbrev -e trace=mbind +mbind-Xraw -a33 -Xraw -e trace=mbind +mbind-Xverbose -Xverbose -e trace=mbind membarrier -a36 memfd_create memfd_create-Xabbrev -Xabbrev -e trace=memfd_create memfd_create-Xraw -a30 -Xraw -e trace=memfd_create memfd_create-Xverbose -Xverbose -e trace=memfd_create migrate_pages -a33 +migrate_pages--pidns-translation test_pidns -a33 -e trace=migrate_pages mincore -a22 mkdir -a20 mkdirat -a28 @@ -223,10 +343,13 @@ mount -a33 mount-Xabbrev -a33 -e trace=mount -Xabbrev mount-Xraw -a33 -e trace=mount -Xraw mount-Xverbose -a33 -e trace=mount -Xverbose +move_mount -y +move_mount-P -y -P /dev/full -e trace=move_mount move_pages -s3 move_pages-Xabbrev -s3 -e trace=move_pages -Xabbrev move_pages-Xraw -s3 -a36 -e trace=move_pages -Xraw move_pages-Xverbose -s3 -e trace=move_pages -Xverbose +move_pages--pidns-translation test_pidns -s3 -e trace=move_pages mq -a32 -e trace=mq_getsetattr,mq_open,mq_unlink mq_sendrecv -a14 -e trace=mq_open,mq_notify,mq_timedsend,mq_timedreceive,mq_unlink mq_sendrecv-read -eread=0 -a14 -e trace=mq_open,mq_notify,mq_timedsend,mq_timedreceive,mq_unlink @@ -236,12 +359,17 @@ msg_control-v -v -a21 -e trace=sendmsg msg_name -a20 -e trace=recvmsg munlockall -a13 nanosleep -a20 +net--decode-fds-dev-netlink +net-yy-netlink.test --decode-fds=dev +net--decode-fds-none-netlink +net-yy-netlink.test --decode-fds=none -a9 +net--decode-fds-path-netlink +net-yy-netlink.test --decode-fds=path +net--decode-fds-socket-netlink +net-yy-netlink.test --decode-fds=socket net-icmp_filter -e trace=getsockopt,setsockopt net-packet_mreq -e trace=setsockopt net-packet_mreq-Xabbrev -e trace=setsockopt -Xabbrev net-packet_mreq-Xraw -e trace=setsockopt -Xraw net-packet_mreq-Xverbose -e trace=setsockopt -Xverbose net-sockaddr -a24 -e trace=connect +net-sockaddr--pidns-translation test_pidns -a24 -e trace=connect net-tpacket_req -e trace=setsockopt net-tpacket_stats -e trace=getsockopt net-yy-inet6 +net-yy-inet.test @@ -254,7 +382,7 @@ netlink_protocol -e trace=sendto netlink_route +netlink_sock_diag.test netlink_selinux +netlink_sock_diag.test netlink_xfrm +netlink_sock_diag.test -newfstatat -a32 -v -P stat.sample -P /dev/full +newfstatat -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full nfnetlink_acct +netlink_sock_diag.test nfnetlink_cthelper +netlink_sock_diag.test nfnetlink_ctnetlink +netlink_sock_diag.test @@ -279,6 +407,7 @@ nlattr_ifla_brport +netlink_sock_diag.test nlattr_ifla_linkinfo +netlink_sock_diag.test nlattr_ifla_port +netlink_sock_diag.test nlattr_ifla_xdp +netlink_sock_diag.test +nlattr_ifla_xdp-y +netlink_sock_diag.test -y; exec 9>/dev/full oldstat -a32 -v -P stat.sample -P /dev/full open -a30 -P $NAME.sample +open_tree -a30 -y +open_tree-P -a30 --decode-fds -P /dev/full -e trace=open_tree openat -a36 -P $NAME.sample +openat2 -a35 +openat2-Xabbrev --trace=openat2 -a35 -Xabbrev +openat2-Xraw --trace=openat2 -a32 -Xraw +openat2-Xverbose --trace=openat2 -a35 -Xverbose +openat2-v --trace=openat2 -a35 -v +openat2-v-y --trace=openat2 -a36 -v -y >/dev/full -semop -a32 -e trace=semop,semtimedop +semop -a32 +semop-indirect -a32 -e trace=semop +semtimedop sendfile -a27 sendfile64 -a29 -set_mempolicy -s3 -a35 +set_mempolicy -a34 -s3 +set_mempolicy-Xabbrev -a34 -s3 -Xabbrev -e trace=set_mempolicy +set_mempolicy-Xraw -a24 -s3 -Xraw -e trace=set_mempolicy +set_mempolicy-Xverbose -s3 -Xverbose -e trace=set_mempolicy setdomainname -a24 setfsgid -a12 setfsgid32 -a14 @@ -439,6 +608,7 @@ sigaction -a31 siginfo -e trace=none signal -a25 -e signal=none -e trace='/^signal$' signal_receive -a16 -e trace=kill +signal_receive--pidns-translation test_pidns -a16 -e trace=kill signalfd4 sigpending -a15 sigprocmask -a34 @@ -450,6 +620,7 @@ so_peercred -e trace=getsockopt so_peercred-Xabbrev -e trace=getsockopt -Xabbrev so_peercred-Xraw -e trace=getsockopt -Xraw -a39 so_peercred-Xverbose -e trace=getsockopt -Xverbose +so_peercred--pidns-translation test_pidns -e trace=getsockopt sock_filter-v -v -e trace=getsockopt,setsockopt sock_filter-v-Xabbrev -v -e trace=getsockopt,setsockopt -X abbrev sock_filter-v-Xraw -a 37 -v -e trace=getsockopt,setsockopt -X raw @@ -461,11 +632,57 @@ socketcall -a20 sockopt-sol_netlink -e trace=getsockopt,setsockopt sockopt-timestamp -e trace=recvmsg splice -stat -a32 -v -P stat.sample -P /dev/full -stat64 -a32 -v -P stat.sample -P /dev/full +stat -a30 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full +stat64 -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full statfs -a17 statfs64 -a23 -statx -a32 -v -P stat.sample -P /dev/full +status-all -a10 -e trace=chdir --status=detached,failed,successful,unavailable,unfinished +status-failed -a10 -e trace=chdir -Z +status-failed-long -a10 -e trace=chdir --failed-only +status-failed-status -a10 -e trace=chdir -e status=failed +status-none -e trace=all --status=none +status-successful -a10 -e trace=chdir -z +status-successful-long -a10 -e trace=chdir --successful-only +status-successful-status -a10 -e trace=chdir --status=successful +status-unfinished -a10 -e trace=all --status=unfinished +statx -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full +strace--absolute-timestamps +strace-t.test --absolute-timestamps +strace--absolute-timestamps-format-time +strace-t.test --absolute-timestamps=format:time +strace--absolute-timestamps-format-time-precision-s +strace-t.test --absolute-timestamps=format:time --absolute-timestamps=precision:s +strace--absolute-timestamps-format-time-precision-ms +strace-tt.test 3 --absolute-timestamps=format:time --absolute-timestamps=precision:ms +strace--absolute-timestamps-format-time-precision-us +strace-tt.test 6 --absolute-timestamps=format:time --absolute-timestamps=precision:us +strace--absolute-timestamps-format-time-precision-ns +strace-tt.test 9 --absolute-timestamps=format:time --absolute-timestamps=precision:ns +strace--absolute-timestamps-format-unix-precision-s +strace-ttt.test 0 --absolute-timestamps=format:unix --absolute-timestamps=precision:s +strace--absolute-timestamps-format-unix-precision-ms +strace-ttt.test 3 --absolute-timestamps=precision:ms --absolute-timestamps=format:unix +strace--absolute-timestamps-format-unix-precision-us +strace-ttt.test 6 --absolute-timestamps=precision:us --absolute-timestamps=format:unix +strace--absolute-timestamps-format-unix-precision-ns +strace-ttt.test 9 --absolute-timestamps=format:unix --absolute-timestamps=precision:ns +strace--follow-forks-output-separately +strace-ff.test --follow-forks --output-separately +strace--relative-timestamps +strace-r.test --relative-timestamps +strace--relative-timestamps-s +strace-r.test --relative-timestamps=s +strace--relative-timestamps-ms +strace-r.test --relative-timestamps=ms +strace--relative-timestamps-us +strace-r.test --relative-timestamps=us +strace--relative-timestamps-ns +strace-r.test --relative-timestamps=ns +strace--syscall-times +strace-T.test --syscall-times +strace--syscall-times-s +strace-T.test --syscall-times=s +strace--syscall-times-ms +strace-T.test --syscall-times=ms +strace--syscall-times-us +strace-T.test --syscall-times=us +strace--syscall-times-ns +strace-T.test --syscall-times=ns +strace--strings-in-hex --trace=chdir --strings-in-hex --columns=18 +strace--strings-in-hex-all --trace=chdir --strings-in-hex=all --columns=18 +strace--strings-in-hex-non-ascii --trace=chdir --strings-in-hex=non-ascii --columns=12 +strace--timestamps +strace-t.test --timestamps +strace--timestamps-time +strace-t.test --timestamps=time +strace--timestamps-time-s +strace-t.test --timestamps=time,s +strace--timestamps-time-ms +strace-tt.test 3 --timestamps=time,ms +strace--timestamps-time-us +strace-tt.test 6 --timestamps=time,us +strace--timestamps-time-ns +strace-tt.test 9 --timestamps=time,ns +strace--timestamps-unix-s +strace-ttt.test 0 --timestamps=unix,s +strace--timestamps-unix-ms +strace-ttt.test 3 --timestamps=unix,ms +strace--timestamps-unix-us +strace-ttt.test 6 --timestamps=unix,us +strace--timestamps-unix-ns +strace-ttt.test 9 --timestamps=unix,ns +strace-n -e trace=listen -n -qq -a 12 +strace-x -e trace=chdir -x -a 12 +strace-xx -e trace=chdir -xx -a 18 swap -a23 -e trace=swapon,swapoff sxetmask -a11 -e trace=sgetmask,ssetmask symlink -a34 @@ -474,14 +691,24 @@ sync -a7 sync_file_range sync_file_range2 sysinfo -a14 -syslog -a36 +syslog -a35 tee +tgkill -a15 --signal='!cont' +tgkill--pidns-translation test_pidns -a15 --signal='!cont' -e trace=tgkill +threads-execve--quiet-thread-execve +threads-execve.test -s40 --quiet=personality,thread-execve +threads-execve-q +threads-execve.test -q +threads-execve-qq +threads-execve.test -qq +threads-execve-qqq +threads-execve.test -qqq time -a10 timer_create timer_xettime -e trace=timer_create,timer_settime,timer_gettime timerfd_xettime -e trace=timerfd_create,timerfd_settime,timerfd_gettime times -esignal=none times-fail -a12 -e trace=times +tkill -a12 --signal='!cont' +tkill--pidns-translation test_pidns --signal='!cont' -a12 -e trace=tkill +trace_clock test_trace_expr 'clock_nanosleep|times' -e%clock +trace_creds test_trace_expr '([gs]et[^p]*([gu]id|groups)|caps|prctl|[fl]?chown|print(path-umovestr|strn-umoven)-undumpable|ptrace|quotactl|rt_sigtimedwait|rt_(tg)?sigqueueinfo).*' -e%creds trace_fstat test_trace_expr '' -e%fstat -v -P stat.sample -P /dev/full trace_fstatfs test_trace_expr '' -e%fstatfs trace_lstat test_trace_expr '' -e%lstat -v -P stat.sample -P /dev/full @@ -496,6 +723,7 @@ trace_stat test_trace_expr '' -e%stat -v -P stat.sample -P /dev/full trace_stat_like test_trace_expr '' -e%%stat -v -P stat.sample -P /dev/full trace_statfs test_trace_expr '' -e%statfs trace_statfs_like test_trace_expr '' -e%%statfs +trie_test run_prog truncate truncate64 ugetrlimit -a28 @@ -503,6 +731,7 @@ umask -a11 umoven-illptr -a36 -e trace=nanosleep umovestr-illptr -a11 -e trace=chdir umovestr3 -a14 -e trace=chdir +umovestr_cached_adjacent +umovestr_cached.test 3 unlink -a24 unlinkat -a35 unshare -a11 @@ -525,7 +754,10 @@ waitpid -a28 xattr -a22 -e trace=getxattr,fgetxattr,lgetxattr,setxattr,fsetxattr,lsetxattr,listxattr,flistxattr,llistxattr,removexattr,fremovexattr,lremovexattr xattr-strings -a22 -s 4 -e trace=fsetxattr xet_robust_list -a24 -e trace=get_robust_list,set_robust_list +xet_robust_list--pidns-translation test_pidns -a24 -e trace=get_robust_list,set_robust_list xetitimer -a29 -e trace=setitimer,getitimer xetpgid -a11 -e trace=getpgid,setpgid -xetpriority -a29 -e trace=getpriority,setpriority +xetpgid--pidns-translation test_pidns -a11 -e trace=getpgid,setpgid +xetpriority -a27 -e trace=getpriority,setpriority +xetpriority--pidns-translation test_pidns -a27 -e trace=getpriority,setpriority xettimeofday -a20 -e trace=gettimeofday,settimeofday diff --git a/tests-m32/get_mempolicy.c b/tests-m32/get_mempolicy.c index 7667bdb0..c2e9fa69 100644 --- a/tests-m32/get_mempolicy.c +++ b/tests-m32/get_mempolicy.c @@ -1,14 +1,14 @@ /* * Check decoding of get_mempolicy syscall. * - * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 Dmitry V. Levin * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_get_mempolicy @@ -16,7 +16,7 @@ # include # include "xlat.h" -# include "xlat/policies.h" +# include "xlat/mpol_modes.h" # define MAX_STRLEN 3 # define NLONGS(n) ((n + 8 * sizeof(long) - 2) \ @@ -68,20 +68,20 @@ main(void) rc = syscall(__NR_get_mempolicy, mode, nodemask, maxnode, addr, flags); printf("get_mempolicy(%p, %p, %lu, %#lx, %s|%#lx) = %ld %s (%m)\n", mode, nodemask, maxnode, addr, - "MPOL_F_NODE|MPOL_F_ADDR", - flags & ~3, rc, errno2name()); + "MPOL_F_NODE|MPOL_F_ADDR|MPOL_F_MEMS_ALLOWED", + flags & ~7, rc, errno2name()); mode = tail_alloc(sizeof(*mode)); rc = syscall(__NR_get_mempolicy, mode, 0, 0, 0, 0); printf("get_mempolicy(["); - printxval(policies, (unsigned) *mode, "MPOL_???"); + printxval(mpol_modes, (unsigned) *mode, "MPOL_???"); printf("], NULL, 0, NULL, 0) = %ld\n", rc); *mode = -1; rc = syscall(__NR_get_mempolicy, mode, 0, 0, mode - 1, 2); printf("get_mempolicy(["); - printxval(policies, (unsigned) *mode, "MPOL_???"); + printxval(mpol_modes, (unsigned) *mode, "MPOL_???"); printf("], NULL, 0, %p, MPOL_F_ADDR) = %ld\n", mode - 1, rc); maxnode = get_page_size() * 8; diff --git a/tests-m32/get_process_reaper.c b/tests-m32/get_process_reaper.c new file mode 100644 index 00000000..2cc69060 --- /dev/null +++ b/tests-m32/get_process_reaper.c @@ -0,0 +1,108 @@ +/* + * Print the process reaper id. + * + * Copyright (c) 2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include +#include + +/* PARENT - CHILD - GRANDCHILD */ + +static int +grandchild(int read_fd, int write_fd) +{ + /* wait for notification from PARENT about CHILD completion */ + pid_t pid; + if (read(read_fd, &pid, sizeof(pid)) != 0) + perror_msg_and_fail("read"); + + /* write ppid to PARENT */ + pid = getppid(); + if (write(write_fd, &pid, sizeof(pid)) != sizeof(pid)) + perror_msg_and_fail("write"); + + _exit(0); +} + +static int +child(int read_fd, int write_fd) +{ + pid_t pid = fork(); + if (pid < 0) + perror_msg_and_fail("fork"); + + if (!pid) + return grandchild(read_fd, write_fd); + else + _exit(0); +} + +static int +parent(pid_t pid, int read_fd, int write_fd) +{ + /* wait for CHILD completion */ + int status; + if (waitpid(pid, &status, 0) != pid) + perror_msg_and_fail("waitpid"); + if (status != 0) + error_msg_and_fail("status %x", status); + + /* notify GRANDCHILD about CHILD completion */ + close(write_fd), + write_fd = -1; + + /* read ppid of GRANDCHILD */ + if (read(read_fd, &pid, sizeof(pid)) != sizeof(pid)) + perror_msg_and_fail("read"); + + printf("%d\n", pid); + return 0; +} + +int +main(void) +{ + int parent_grandchild_fds[2]; +#define parent_read_fd parent_grandchild_fds[0] +#define grandchild_write_fd parent_grandchild_fds[1] + + int grandchild_parent_fds[2]; +#define grandchild_read_fd grandchild_parent_fds[0] +#define parent_write_fd grandchild_parent_fds[1] + + if (pipe(parent_grandchild_fds) || + pipe(grandchild_parent_fds)) + perror_msg_and_fail("pipe"); + + pid_t pid = fork(); + if (pid < 0) + perror_msg_and_fail("fork"); + + if (!pid) { + /* CHILD */ + close(parent_read_fd), + parent_read_fd = -1; + + close(parent_write_fd), + parent_write_fd = -1; + + return child(grandchild_read_fd, + grandchild_write_fd); + } else { + /* PARENT */ + close(grandchild_read_fd), + grandchild_read_fd = -1; + + close(grandchild_write_fd), + grandchild_write_fd = -1; + + return parent(pid, parent_read_fd, + parent_write_fd); + } +} diff --git a/tests-m32/get_sigset_size.c b/tests-m32/get_sigset_size.c index f58d1f51..7921bb1e 100644 --- a/tests-m32/get_sigset_size.c +++ b/tests-m32/get_sigset_size.c @@ -2,6 +2,7 @@ * Find out the size of kernel's sigset_t. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +11,7 @@ #include "tests.h" #include #include -#include +#include "scno.h" /* * If the sigset size specified to rt_sigprocmask is not equal to the size diff --git a/tests-m32/getcpu.c b/tests-m32/getcpu.c index ecbaf0dc..85edf407 100644 --- a/tests-m32/getcpu.c +++ b/tests-m32/getcpu.c @@ -2,7 +2,7 @@ * Check decoding of getcpu syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getcpu diff --git a/tests-m32/getcwd.c b/tests-m32/getcwd.c index 5f9a7293..ff563ff4 100644 --- a/tests-m32/getcwd.c +++ b/tests-m32/getcwd.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -7,7 +7,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getcwd diff --git a/tests-m32/getdents-v.c b/tests-m32/getdents-v.c new file mode 100644 index 00000000..c9bd7ae3 --- /dev/null +++ b/tests-m32/getdents-v.c @@ -0,0 +1,3 @@ +/* Check --no-abbrev decoding of getdents syscall. */ +#define VERBOSE 1 +#include "getdents.c" diff --git a/tests-m32/getdents-v.gen.test b/tests-m32/getdents-v.gen.test new file mode 100755 index 00000000..fc1466ac --- /dev/null +++ b/tests-m32/getdents-v.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getdents-v -a22 -v --trace=getdents); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a22 -v --trace=getdents diff --git a/tests-m32/getdents.c b/tests-m32/getdents.c index 998e667f..2eb012a4 100644 --- a/tests-m32/getdents.c +++ b/tests-m32/getdents.c @@ -1,119 +1,42 @@ /* + * Check decoding of getdents syscall. + * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getdents -# include -# include -# include -# include -# include -# include -# include - -static const char fname[] = - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nZ"; -static const char qname[] = - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nZ"; +# define kernel_dirent_type kernel_dirent_t +# define NR_getdents __NR_getdents +# define STR_getdents "getdents" -static char buf[8192]; +# include "xgetdents.c" -static const char * -str_d_type(const unsigned char d_type) -{ - switch (d_type) { - case DT_DIR: - return "DT_DIR"; - case DT_REG: - return "DT_REG"; - default: - return "DT_UNKNOWN"; - } -} +# if VERBOSE static void -print_dirent(const kernel_dirent *d) +print_dirent(const kernel_dirent_type *d) { - const unsigned int d_name_offset = offsetof(kernel_dirent, d_name); - int d_name_len = d->d_reclen - d_name_offset - 1; - assert(d_name_len > 0); - - printf("{d_ino=%llu, d_off=%llu, d_reclen=%u, d_name=", - (unsigned long long) d->d_ino, - (unsigned long long) d->d_off, d->d_reclen); - - if (d->d_name[0] == '.') - printf("\"%.*s\"", d_name_len, d->d_name); - else - printf("\"%s\"", qname); - + const unsigned int d_name_offset = offsetof(kernel_dirent_type, d_name); + int d_name_len = (int) d->d_reclen - d_name_offset - 1; + if (d_name_len <= 0) + error_msg_and_fail("d_name_len = %d", d_name_len); + + PRINT_FIELD_U("{", *d, d_ino); + PRINT_FIELD_U(", ", *d, d_off); + PRINT_FIELD_U(", ", *d, d_reclen); + printf(", d_name="); + print_quoted_cstring(d->d_name, d_name_len); printf(", d_type=%s}", str_d_type(*((const char *) d + d->d_reclen - 1))); } - -int -main(void) -{ - static const char dname[] = "getdents.test.tmp.dir"; - - assert(!mkdir(dname, 0700)); - assert(!chdir(dname)); - (void) close(0); - assert(!creat(fname, 0600)); - assert(!close(0)); - assert(!open(".", O_RDONLY | O_DIRECTORY)); - - unsigned long count = (unsigned long) 0xfacefeeddeadbeefULL; - long rc = syscall(__NR_getdents, (long) 0xdefacedffffffffULL, NULL, - count); - printf("getdents(-1, NULL, %u) = %ld %s (%m)\n", - (unsigned) count, rc, errno2name()); - - count = (unsigned long) 0xfacefeed00000000ULL | sizeof(buf); - while ((rc = syscall(__NR_getdents, 0, buf, count))) { - kernel_dirent *d; - long i; - - if (rc < 0) - perror_msg_and_skip("getdents"); - printf("getdents(0, ["); - for (i = 0; i < rc; i += d->d_reclen) { - d = (kernel_dirent *) &buf[i]; - if (i) - printf(", "); - print_dirent(d); - } - printf("], %u) = %ld\n", (unsigned) count, rc); - } - printf("getdents(0, [], %u) = 0\n", (unsigned) count); - puts("+++ exited with 0 +++"); - assert(!unlink(fname)); - assert(!chdir("..")); - assert(!rmdir(dname)); - - return 0; -} +# endif #else diff --git a/tests-m32/getdents.gen.test b/tests-m32/getdents.gen.test index 0db5f20a..adcbb9c3 100755 --- a/tests-m32/getdents.gen.test +++ b/tests-m32/getdents.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getdents -a22 -v); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getdents -a31 ); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a22 -v +run_strace_match_diff -a31 diff --git a/tests-m32/getdents64-v.c b/tests-m32/getdents64-v.c new file mode 100644 index 00000000..cf782482 --- /dev/null +++ b/tests-m32/getdents64-v.c @@ -0,0 +1,3 @@ +/* Check --no-abbrev decoding of getdents64 syscall. */ +#define VERBOSE 1 +#include "getdents64.c" diff --git a/tests-m32/getdents64-v.gen.test b/tests-m32/getdents64-v.gen.test new file mode 100755 index 00000000..9b49ce91 --- /dev/null +++ b/tests-m32/getdents64-v.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getdents64-v -a24 -v --trace=getdents64); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a24 -v --trace=getdents64 diff --git a/tests-m32/getdents64.c b/tests-m32/getdents64.c index e0575cf4..0e46a221 100644 --- a/tests-m32/getdents64.c +++ b/tests-m32/getdents64.c @@ -1,125 +1,41 @@ /* + * Check decoding of getdents64 syscall. + * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getdents64 -# include -# include -# include -# include -# include -# include -# include -# include - -static const char fname[] = - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nZ"; -static const char qname[] = - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nZ"; +# define kernel_dirent_type kernel_dirent64_t +# define NR_getdents __NR_getdents64 +# define STR_getdents "getdents64" -typedef struct { - uint64_t d_ino; - uint64_t d_off; - unsigned short d_reclen; - unsigned char d_type; - char d_name[256]; -} kernel_dirent64; +# include "xgetdents.c" -static char buf[8192]; - -static const char * -str_d_type(const unsigned char d_type) -{ - switch (d_type) { - case DT_DIR: - return "DT_DIR"; - case DT_REG: - return "DT_REG"; - default: - return "DT_UNKNOWN"; - } -} +# if VERBOSE static void -print_dirent(const kernel_dirent64 *d) +print_dirent(const kernel_dirent_type *d) { - const unsigned int d_name_offset = offsetof(kernel_dirent64, d_name); - int d_name_len = d->d_reclen - d_name_offset; - assert(d_name_len > 0); - - printf("{d_ino=%" PRIu64 ", d_off=%" PRId64 - ", d_reclen=%u, d_type=%s, d_name=", - d->d_ino, d->d_off, d->d_reclen, str_d_type(d->d_type)); - - if (d->d_name[0] == '.') - printf("\"%.*s\"}", d_name_len, d->d_name); - else - printf("\"%s\"}", qname); -} - -int -main(void) -{ - static const char dname[] = "getdents64.test.tmp.dir"; - - assert(!mkdir(dname, 0700)); - assert(!chdir(dname)); - (void) close(0); - assert(!creat(fname, 0600)); - assert(!close(0)); - assert(!open(".", O_RDONLY | O_DIRECTORY)); - - unsigned long count = (unsigned long) 0xfacefeeddeadbeefULL; - long rc = syscall(__NR_getdents64, (long) 0xdefacedffffffffULL, NULL, - count); - printf("getdents64(-1, NULL, %u) = %ld %s (%m)\n", - (unsigned) count, rc, errno2name()); - - count = (unsigned long) 0xfacefeed00000000ULL | sizeof(buf); - while ((rc = syscall(__NR_getdents64, 0, buf, count))) { - kernel_dirent64 *d; - long i; - - if (rc < 0) - perror_msg_and_skip("getdents64"); - printf("getdents64(0, ["); - for (i = 0; i < rc; i += d->d_reclen) { - d = (kernel_dirent64 *) &buf[i]; - if (i) - printf(", "); - print_dirent(d); - } - printf("], %u) = %ld\n", (unsigned) count, rc); - } - printf("getdents64(0, [], %u) = 0\n", (unsigned) count); - puts("+++ exited with 0 +++"); - assert(!unlink(fname)); - assert(!chdir("..")); - assert(!rmdir(dname)); - - return 0; + const unsigned int d_name_offset = offsetof(kernel_dirent_type, d_name); + int d_name_len = (int) d->d_reclen - d_name_offset; + if (d_name_len <= 0) + error_msg_and_fail("d_name_len = %d", d_name_len); + + PRINT_FIELD_U("{", *d, d_ino); + PRINT_FIELD_U(", ", *d, d_off); + PRINT_FIELD_U(", ", *d, d_reclen); + printf(", d_type=%s, d_name=", str_d_type(d->d_type)); + print_quoted_cstring(d->d_name, d_name_len); + printf("}"); } +# endif #else diff --git a/tests-m32/getdents64.gen.test b/tests-m32/getdents64.gen.test index 6e24d400..de87954b 100755 --- a/tests-m32/getdents64.gen.test +++ b/tests-m32/getdents64.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getdents64 -a24 -v); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getdents64 -a33 ); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a24 -v +run_strace_match_diff -a33 diff --git a/tests-m32/getegid-creds.gen.test b/tests-m32/getegid-creds.gen.test new file mode 100755 index 00000000..7ac87f13 --- /dev/null +++ b/tests-m32/getegid-creds.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getegid-creds +getuid.test ); do not edit. +set -- +. "${srcdir=.}/getuid.test" diff --git a/tests-m32/getegid.c b/tests-m32/getegid.c index 2e0754b7..d5927fea 100644 --- a/tests-m32/getegid.c +++ b/tests-m32/getegid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getegid @@ -16,7 +16,7 @@ int main(void) { - printf("getegid() = %ld\n", syscall(__NR_getegid)); + printf("getegid() = %s\n", sprintrc(syscall(__NR_getegid))); return 0; } diff --git a/tests-m32/getegid32-creds.gen.test b/tests-m32/getegid32-creds.gen.test new file mode 100755 index 00000000..c080ac0b --- /dev/null +++ b/tests-m32/getegid32-creds.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getegid32-creds +getuid.test ); do not edit. +set -- +. "${srcdir=.}/getuid.test" diff --git a/tests-m32/getegid32.c b/tests-m32/getegid32.c index b7f5cb08..bbfcf94e 100644 --- a/tests-m32/getegid32.c +++ b/tests-m32/getegid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getegid32 diff --git a/tests-m32/geteuid-creds.gen.test b/tests-m32/geteuid-creds.gen.test new file mode 100755 index 00000000..8210f679 --- /dev/null +++ b/tests-m32/geteuid-creds.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (geteuid-creds +getuid.test ); do not edit. +set -- +. "${srcdir=.}/getuid.test" diff --git a/tests-m32/geteuid.c b/tests-m32/geteuid.c index 430df1c6..a1defc8c 100644 --- a/tests-m32/geteuid.c +++ b/tests-m32/geteuid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_geteuid @@ -16,7 +16,7 @@ int main(void) { - printf("geteuid() = %ld\n", syscall(__NR_geteuid)); + printf("geteuid() = %s\n", sprintrc(syscall(__NR_geteuid))); return 0; } diff --git a/tests-m32/geteuid32-creds.gen.test b/tests-m32/geteuid32-creds.gen.test new file mode 100755 index 00000000..e0ced55a --- /dev/null +++ b/tests-m32/geteuid32-creds.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (geteuid32-creds +getuid.test ); do not edit. +set -- +. "${srcdir=.}/getuid.test" diff --git a/tests-m32/geteuid32.c b/tests-m32/geteuid32.c index 94174f32..e6bd57d1 100644 --- a/tests-m32/geteuid32.c +++ b/tests-m32/geteuid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_geteuid32 diff --git a/tests-m32/getgid-creds.gen.test b/tests-m32/getgid-creds.gen.test new file mode 100755 index 00000000..e82e11dd --- /dev/null +++ b/tests-m32/getgid-creds.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getgid-creds +getuid.test ); do not edit. +set -- +. "${srcdir=.}/getuid.test" diff --git a/tests-m32/getgid.c b/tests-m32/getgid.c index 1bd70502..c9c9f722 100644 --- a/tests-m32/getgid.c +++ b/tests-m32/getgid.c @@ -1,14 +1,14 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" -#ifdef __NR_getgid +#if defined __NR_getgid && (!defined __NR_getxgid || __NR_getxgid != __NR_getgid) # include # include diff --git a/tests-m32/getgid32-creds.gen.test b/tests-m32/getgid32-creds.gen.test new file mode 100755 index 00000000..7d379935 --- /dev/null +++ b/tests-m32/getgid32-creds.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getgid32-creds +getuid.test ); do not edit. +set -- +. "${srcdir=.}/getuid.test" diff --git a/tests-m32/getgid32.c b/tests-m32/getgid32.c index c6859cf4..922c6f5f 100644 --- a/tests-m32/getgid32.c +++ b/tests-m32/getgid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getgid32 diff --git a/tests-m32/getgroups.c b/tests-m32/getgroups.c index 36c095df..c87d9874 100644 --- a/tests-m32/getgroups.c +++ b/tests-m32/getgroups.c @@ -2,7 +2,7 @@ * Check decoding of getgroups/getgroups32 syscalls. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -17,7 +17,7 @@ #else # include "tests.h" -# include +# include "scno.h" # ifdef __NR_getgroups diff --git a/tests-m32/getgroups32.c b/tests-m32/getgroups32.c index d005792d..a626d35f 100644 --- a/tests-m32/getgroups32.c +++ b/tests-m32/getgroups32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getgroups32 diff --git a/tests-m32/getpgrp--pidns-translation.c b/tests-m32/getpgrp--pidns-translation.c new file mode 100644 index 00000000..de8ceb33 --- /dev/null +++ b/tests-m32/getpgrp--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "getpgrp.c" diff --git a/tests-m32/getpgrp--pidns-translation.gen.test b/tests-m32/getpgrp--pidns-translation.gen.test new file mode 100755 index 00000000..93636118 --- /dev/null +++ b/tests-m32/getpgrp--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getpgrp--pidns-translation test_pidns -e trace=getpgrp -a10); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -e trace=getpgrp -a10 diff --git a/tests-m32/getpgrp.c b/tests-m32/getpgrp.c index 3d45f718..c981d79b 100644 --- a/tests-m32/getpgrp.c +++ b/tests-m32/getpgrp.c @@ -1,12 +1,13 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #ifdef __NR_getpgrp @@ -16,8 +17,13 @@ int main(void) { - printf("getpgrp() = %ld\n", syscall(__NR_getpgrp)); + PIDNS_TEST_INIT; + pidns_print_leader(); + printf("getpgrp() = %d%s\n", (int) syscall(__NR_getpgrp), + pidns_pid2str(PT_PGID)); + + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-m32/getpid--pidns-translation.c b/tests-m32/getpid--pidns-translation.c new file mode 100644 index 00000000..94b12a1a --- /dev/null +++ b/tests-m32/getpid--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "getpid.c" diff --git a/tests-m32/getpid--pidns-translation.gen.test b/tests-m32/getpid--pidns-translation.gen.test new file mode 100755 index 00000000..abe2cf45 --- /dev/null +++ b/tests-m32/getpid--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getpid--pidns-translation test_pidns -e trace=getpid -a9); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -e trace=getpid -a9 diff --git a/tests-m32/getpid.c b/tests-m32/getpid.c index 5e88e052..4291400d 100644 --- a/tests-m32/getpid.c +++ b/tests-m32/getpid.c @@ -1,14 +1,15 @@ /* - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" -#ifdef __NR_getpid +#if defined __NR_getpid && (!defined __NR_getxpid || __NR_getxpid != __NR_getpid) # include # include @@ -16,7 +17,12 @@ int main(void) { - printf("getpid() = %ld\n", syscall(__NR_getpid)); + PIDNS_TEST_INIT; + + pidns_print_leader(); + printf("getpid() = %d%s\n", (int) syscall(__NR_getpid), + pidns_pid2str(PT_TGID)); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-m32/getppid.c b/tests-m32/getppid.c index 718d0691..fd279763 100644 --- a/tests-m32/getppid.c +++ b/tests-m32/getppid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getppid @@ -16,7 +16,7 @@ int main(void) { - printf("getppid() = %ld\n", syscall(__NR_getppid)); + printf("getppid() = %s\n", sprintrc(syscall(__NR_getppid))); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-m32/getrandom.c b/tests-m32/getrandom.c index eb6cdb1b..ebb8c839 100644 --- a/tests-m32/getrandom.c +++ b/tests-m32/getrandom.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getrandom diff --git a/tests-m32/getresgid.c b/tests-m32/getresgid.c index 3ad2c190..ebf35212 100644 --- a/tests-m32/getresgid.c +++ b/tests-m32/getresgid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getresgid diff --git a/tests-m32/getresgid32.c b/tests-m32/getresgid32.c index b78afaed..bd8ce212 100644 --- a/tests-m32/getresgid32.c +++ b/tests-m32/getresgid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getresgid32 diff --git a/tests-m32/getresuid.c b/tests-m32/getresuid.c index 5bb2e301..8a29c172 100644 --- a/tests-m32/getresuid.c +++ b/tests-m32/getresuid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getresuid diff --git a/tests-m32/getresuid32.c b/tests-m32/getresuid32.c index 13acc695..306b9d59 100644 --- a/tests-m32/getresuid32.c +++ b/tests-m32/getresuid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getresuid32 diff --git a/tests-m32/getrlimit.c b/tests-m32/getrlimit.c index 6d3b4cd5..8a323091 100644 --- a/tests-m32/getrlimit.c +++ b/tests-m32/getrlimit.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getrlimit diff --git a/tests-m32/getrusage.c b/tests-m32/getrusage.c index 412d8a00..13defc9f 100644 --- a/tests-m32/getrusage.c +++ b/tests-m32/getrusage.c @@ -1,14 +1,14 @@ /* * Copyright (c) 2016 Fei Jie * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getrusage @@ -18,30 +18,41 @@ # include # include +# include "kernel_rusage.h" # include "xlat.h" # include "xlat/usagewho.h" int -invoke_print(int who, const char *who_str, struct rusage *usage) +invoke_print(int who, const char *who_str, kernel_rusage_t *usage) { int rc = syscall(__NR_getrusage, who, usage); int saved_errno = errno; printf("getrusage(%s, {ru_utime={tv_sec=%lld, tv_usec=%llu}" - ", ru_stime={tv_sec=%lld, tv_usec=%llu}, ru_maxrss=%lu" - ", ru_ixrss=%lu, ru_idrss=%lu, ru_isrss=%lu, ru_minflt=%lu" - ", ru_majflt=%lu, ru_nswap=%lu, ru_inblock=%lu" - ", ru_oublock=%lu, ru_msgsnd=%lu, ru_msgrcv=%lu" - ", ru_nsignals=%lu, ru_nvcsw=%lu, ru_nivcsw=%lu}) = %s\n", + ", ru_stime={tv_sec=%lld, tv_usec=%llu}, ru_maxrss=%llu" + ", ru_ixrss=%llu, ru_idrss=%llu, ru_isrss=%llu, ru_minflt=%llu" + ", ru_majflt=%llu, ru_nswap=%llu, ru_inblock=%llu" + ", ru_oublock=%llu, ru_msgsnd=%llu, ru_msgrcv=%llu" + ", ru_nsignals=%llu, ru_nvcsw=%llu, ru_nivcsw=%llu}) = %s\n", who_str, (long long) usage->ru_utime.tv_sec, zero_extend_signed_to_ull(usage->ru_utime.tv_usec), (long long) usage->ru_stime.tv_sec, zero_extend_signed_to_ull(usage->ru_stime.tv_usec), - usage->ru_maxrss, usage->ru_ixrss, usage->ru_idrss, - usage->ru_isrss, usage->ru_minflt, usage->ru_majflt, - usage->ru_nswap, usage->ru_inblock, usage->ru_oublock, - usage->ru_msgsnd, usage->ru_msgrcv, usage->ru_nsignals, - usage->ru_nvcsw, usage->ru_nivcsw, sprintrc(rc)); + zero_extend_signed_to_ull(usage->ru_maxrss), + zero_extend_signed_to_ull(usage->ru_ixrss), + zero_extend_signed_to_ull(usage->ru_idrss), + zero_extend_signed_to_ull(usage->ru_isrss), + zero_extend_signed_to_ull(usage->ru_minflt), + zero_extend_signed_to_ull(usage->ru_majflt), + zero_extend_signed_to_ull(usage->ru_nswap), + zero_extend_signed_to_ull(usage->ru_inblock), + zero_extend_signed_to_ull(usage->ru_oublock), + zero_extend_signed_to_ull(usage->ru_msgsnd), + zero_extend_signed_to_ull(usage->ru_msgrcv), + zero_extend_signed_to_ull(usage->ru_nsignals), + zero_extend_signed_to_ull(usage->ru_nvcsw), + zero_extend_signed_to_ull(usage->ru_nivcsw), + sprintrc(rc)); errno = saved_errno; return rc; } @@ -49,7 +60,7 @@ invoke_print(int who, const char *who_str, struct rusage *usage) int main(void) { - TAIL_ALLOC_OBJECT_CONST_PTR(struct rusage, usage); + TAIL_ALLOC_OBJECT_CONST_PTR(kernel_rusage_t, usage); if (invoke_print(ARG_STR(RUSAGE_SELF), usage)) { perror_msg_and_fail("RUSAGE_SELF"); } diff --git a/tests-m32/getsid--pidns-translation.c b/tests-m32/getsid--pidns-translation.c new file mode 100644 index 00000000..7f983e87 --- /dev/null +++ b/tests-m32/getsid--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "getsid.c" diff --git a/tests-m32/getsid--pidns-translation.gen.test b/tests-m32/getsid--pidns-translation.gen.test new file mode 100755 index 00000000..c07ae33c --- /dev/null +++ b/tests-m32/getsid--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getsid--pidns-translation test_pidns -e trace=getsid -a10); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -e trace=getsid -a10 diff --git a/tests-m32/getsid.c b/tests-m32/getsid.c index 588ea4ab..71355bb6 100644 --- a/tests-m32/getsid.c +++ b/tests-m32/getsid.c @@ -1,20 +1,27 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include "pidns.h" + #include #include int main(void) { + PIDNS_TEST_INIT; + pid_t pid = getpid(); - printf("getsid(%d) = %d\n", pid, getsid(pid)); + pidns_print_leader(); + printf("getsid(%d%s) = %d%s\n", pid, pidns_pid2str(PT_TGID), + getsid(pid), pidns_pid2str(PT_SID)); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-m32/gettid--pidns-translation.c b/tests-m32/gettid--pidns-translation.c new file mode 100644 index 00000000..500c3213 --- /dev/null +++ b/tests-m32/gettid--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "gettid.c" diff --git a/tests-m32/gettid--pidns-translation.test b/tests-m32/gettid--pidns-translation.test new file mode 100755 index 00000000..9624129e --- /dev/null +++ b/tests-m32/gettid--pidns-translation.test @@ -0,0 +1,18 @@ +#!/bin/sh +# +# Check pidns translation of gettid's return value. +# +# Copyright (c) 2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: LGPL-2.1-or-later + +. "${srcdir=.}/init.sh" + +run_prog > /dev/null +run_strace -a9 --pidns-translation -f -e trace=gettid $args > "$EXP" +parent_pid="$(tail -n 2 $LOG | head -n 1 | cut -d' ' -f1)" +init_pid="$(tail -n 1 $LOG | cut -d' ' -f1)" +# uniq: filter out extra gettid calls made by musl libc +grep -E -v "^($parent_pid|$init_pid) |unfinished|resumed" "$LOG" | uniq > "$OUT" +match_diff "$OUT" "$EXP" diff --git a/tests-m32/gettid.c b/tests-m32/gettid.c index 24947e89..8df4f8d5 100644 --- a/tests-m32/gettid.c +++ b/tests-m32/gettid.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -8,12 +8,18 @@ #include "tests.h" #include #include -#include +#include "scno.h" +#include "pidns.h" int main(void) { - printf("gettid() = %ld\n", syscall(__NR_gettid)); + PIDNS_TEST_INIT; + + pidns_print_leader(); + printf("gettid() = %d%s\n", (int) syscall(__NR_gettid), + pidns_pid2str(PT_TID)); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-m32/getuid-creds.gen.test b/tests-m32/getuid-creds.gen.test new file mode 100755 index 00000000..5cd14c58 --- /dev/null +++ b/tests-m32/getuid-creds.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getuid-creds +getuid.test ); do not edit. +set -- +. "${srcdir=.}/getuid.test" diff --git a/tests-m32/getuid.c b/tests-m32/getuid.c index 56f6c902..f3ff9af1 100644 --- a/tests-m32/getuid.c +++ b/tests-m32/getuid.c @@ -1,14 +1,14 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" -#ifdef __NR_getuid +#if defined __NR_getuid && (!defined __NR_getxuid || __NR_getxuid != __NR_getuid) # include # include diff --git a/tests-m32/getuid.test b/tests-m32/getuid.test index a0bbb3ed..e8351a22 100755 --- a/tests-m32/getuid.test +++ b/tests-m32/getuid.test @@ -1,16 +1,33 @@ #!/bin/sh # -# Check getuid syscall decoding. +# Check get(e)?[gu]id(32)? syscalls decoding. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" +check_prog grep check_prog uniq + +if [ "${NAME%-creds}" = "$NAME" ]; then + syscall="$NAME" +else + NAME="${NAME%-creds}" + syscall='%creds' +fi + run_prog > /dev/null -run_strace -qq -a9 -e$NAME $args > "$EXP" -uniq < "$LOG" > "$OUT" +run_strace -qq -a9 -e"$syscall" $args > "$EXP" + +case "$STRACE_ARCH:$syscall" in + mips:%creds) + grep -Fxv 'prctl(PR_GET_FP_MODE) = 0' < "$LOG" | uniq > "$OUT" + ;; + *) uniq < "$LOG" > "$OUT" + ;; +esac + match_diff "$OUT" "$EXP" diff --git a/tests-m32/getuid32-creds.gen.test b/tests-m32/getuid32-creds.gen.test new file mode 100755 index 00000000..d6311ca0 --- /dev/null +++ b/tests-m32/getuid32-creds.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getuid32-creds +getuid.test ); do not edit. +set -- +. "${srcdir=.}/getuid.test" diff --git a/tests-m32/getuid32.c b/tests-m32/getuid32.c index 1222dbcb..0c0441f7 100644 --- a/tests-m32/getuid32.c +++ b/tests-m32/getuid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getuid32 diff --git a/tests-m32/getxgid.c b/tests-m32/getxgid.c new file mode 100644 index 00000000..2fa6edd8 --- /dev/null +++ b/tests-m32/getxgid.c @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_getxgid + +# include +# include + +int +main(void) +{ + long id = syscall(__NR_getxgid); + printf("getxgid() = %ld (egid %ld)\n", id, id); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_getxgid") + +#endif diff --git a/tests-m32/getxgid.gen.test b/tests-m32/getxgid.gen.test new file mode 100755 index 00000000..e9068a37 --- /dev/null +++ b/tests-m32/getxgid.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getxgid -a10 ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 diff --git a/tests-m32/getxpid.c b/tests-m32/getxpid.c new file mode 100644 index 00000000..f8218db8 --- /dev/null +++ b/tests-m32/getxpid.c @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_getxpid + +# include +# include + +int +main(void) +{ + long id = syscall(__NR_getxpid); + pid_t ppid = getppid(); + + printf("getxpid() = %ld (ppid %ld)\n", id, (long) ppid); + printf("getxpid() = %ld (ppid %ld)\n", id, (long) ppid); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_getxpid") + +#endif diff --git a/tests-m32/getxpid.gen.test b/tests-m32/getxpid.gen.test new file mode 100755 index 00000000..0473cced --- /dev/null +++ b/tests-m32/getxpid.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getxpid -a10 ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 diff --git a/tests-m32/getxuid.c b/tests-m32/getxuid.c new file mode 100644 index 00000000..6263550d --- /dev/null +++ b/tests-m32/getxuid.c @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_getxuid + +# include +# include + +int +main(void) +{ + long id = syscall(__NR_getxuid); + printf("getxuid() = %ld (euid %ld)\n", id, id); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_getxuid") + +#endif diff --git a/tests-m32/getxuid.gen.test b/tests-m32/getxuid.gen.test new file mode 100755 index 00000000..37db2ddf --- /dev/null +++ b/tests-m32/getxuid.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getxuid -a10 ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 diff --git a/tests-m32/getxxid.c b/tests-m32/getxxid.c deleted file mode 100644 index 864cea5b..00000000 --- a/tests-m32/getxxid.c +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2016-2018 Dmitry V. Levin - * All rights reserved. - * - * SPDX-License-Identifier: GPL-2.0-or-later - */ - -#include "tests.h" -#include - -#if defined __NR_getxpid && defined __NR_getxuid && defined __NR_getxgid - -# include -# include - -int -main(void) -{ - long id; - pid_t ppid; - - id = syscall(__NR_getxpid); - ppid = getppid(); - printf("getxpid() = %ld (ppid %ld)\n", id, (long) ppid); - printf("getxpid() = %ld (ppid %ld)\n", id, (long) ppid); - - id = syscall(__NR_getxuid); - printf("getxuid() = %ld (euid %ld)\n", id, id); - - id = syscall(__NR_getxgid); - printf("getxgid() = %ld (egid %ld)\n", id, id); - - puts("+++ exited with 0 +++"); - return 0; -} - -#else - -SKIP_MAIN_UNDEFINED("__NR_getxpid && __NR_getxuid && __NR_getxgid") - -#endif diff --git a/tests-m32/getxxid.gen.test b/tests-m32/getxxid.gen.test deleted file mode 100755 index 5aa89f65..00000000 --- a/tests-m32/getxxid.gen.test +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getxxid -a10 -e trace=getxpid,getxuid,getxgid); do not edit. -. "${srcdir=.}/init.sh" -run_strace_match_diff -a10 -e trace=getxpid,getxuid,getxgid diff --git a/tests-m32/init.sh b/tests-m32/init.sh index 40e62188..52417051 100644 --- a/tests-m32/init.sh +++ b/tests-m32/init.sh @@ -1,7 +1,7 @@ #!/bin/sh # # Copyright (c) 2011-2016 Dmitry V. Levin -# Copyright (c) 2011-2018 The strace developers. +# Copyright (c) 2011-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -11,6 +11,7 @@ ME_="${0##*/}" LOG="log" OUT="out" EXP="exp" +CONFIG_H="../../config.h" warn_() { printf >&2 '%s\n' "$*"; } fail_() { warn_ "$ME_: failed test: $*"; exit 1; } @@ -18,6 +19,33 @@ skip_() { warn_ "$ME_: skipped test: $*"; exit 77; } framework_failure_() { warn_ "$ME_: framework failure: $*"; exit 99; } framework_skip_() { warn_ "$ME_: framework skip: $*"; exit 77; } +# get_config_str OPTION +# +# Returns the value of OPTION from config.h (path to which set +# in the CONFIG_H variable). +get_config_str() +{ + sed -r -n 's/#define[[:space:]]*'"$1"'[[:space:]]*"([^"]*)".*/\1/p' \ + "$CONFIG_H" +} + +# get_config_option OPTION YES_STRING [NO_STRING] +# +# Returns YES_STRING in case OPTION is enabled (present in config.h and has +# a non-zero numeric value). Otherwise, NO_STRING (or empty string, if not +# specified) is returned. +get_config_option() +{ + local opt + opt=$(sed -r -n 's/#define[[:space:]]*'"$1"'[[:space:]]*([0-9]+)$/\1/p' \ + "$CONFIG_H") + if [ -n "$opt" -a "$opt" -ne 0 ]; then + printf "%s" "$2" + else + printf "%s" "${3-}" + fi +} + check_prog() { type "$@" > /dev/null 2>&1 || @@ -161,7 +189,7 @@ match_diff() # dump both files and fail with ERROR_MESSAGE. match_grep() { - local output patterns error pattern cnt failed= + local output patterns error pattern cnt failed= rc negated if [ $# -eq 0 ]; then output="$LOG" else @@ -183,7 +211,15 @@ match_grep() cnt=1 while read -r pattern; do - LC_ALL=C grep -E -x -e "$pattern" < "$output" > /dev/null || { + negated=0 + [ "x${pattern#!}" = "x${pattern}" ] || + negated=1 + + rc="$negated" + LC_ALL=C grep -E -x -e "${pattern#!}" < "$output" > /dev/null || + rc="$((!negated))" + + [ 0 = "$rc" ] || { test -n "$failed" || { echo 'Failed patterns of expected output:' failed=1 @@ -191,7 +227,8 @@ match_grep() printf '#%d: %s\n' "$cnt" "$pattern" } cnt=$(($cnt + 1)) - done < "$patterns" + done < "$patterns" || + fail_ "Error reading patterns from \"$patterns\"" test -z "$failed" || { echo 'Actual output:' cat < "$output" @@ -203,7 +240,7 @@ match_grep() run_strace_match_diff() { args="$*" - [ -n "$args" -a -z "${args##*-e trace=*}" ] || + [ -n "$args" -a \( -z "${args##*-e trace=*}" -o -z "${args##*--trace=*}" \) ] || set -- -e trace="$NAME" "$@" run_prog > /dev/null run_strace "$@" $args > "$EXP" @@ -214,7 +251,7 @@ run_strace_match_diff() run_strace_match_grep() { args="$*" - [ -n "$args" -a -z "${args##*-e trace=*}" ] || + [ -n "$args" -a \( -z "${args##*-e trace=*}" -o -z "${args##*--trace=*}" \) ] || set -- -e trace="$NAME" "$@" run_prog > /dev/null run_strace "$@" $args > "$EXP" @@ -247,6 +284,20 @@ require_min_kernel_version_or_skip() skip_ "the kernel release $uname_r is not $1 or newer" } +# Usage: require_min_nproc 2 +require_min_nproc() +{ + local min_nproc + min_nproc="$1"; shift + + check_prog nproc + local nproc + nproc="$(nproc)" + + [ "$nproc" -ge "$min_nproc" ] || + framework_skip_ "nproc = $nproc is less than $min_nproc" +} + # Usage: grep_pid_status $pid GREP-OPTIONS... grep_pid_status() { @@ -297,6 +348,13 @@ test_pure_prog_set() try_run_prog "../$t" || continue run_strace $prog_args "$@" "../$t" > "$expfile" + + case "$STRACE_ARCH:$MIPS_ABI:$NAME" in + mips:o32:*creds) + sed -i '/^prctl(PR_GET_FP_MODE) *= 0$/d' "$LOG" + ;; + esac + match_diff "$LOG" "$expfile" } < /dev/null; done } @@ -324,6 +382,41 @@ test_trace_expr() < negative.list } +test_prog_set() +{ + test_pure_prog_set "$@" < "$srcdir/$NAME.in" +} + +test_pidns_run_strace() +{ + local parent_pid init_pid + + check_prog tail + check_prog cut + check_prog grep + + run_prog > /dev/null + run_strace --pidns-translation -f $@ $args > "$EXP" + + # filter out logs made by the parent or init process of the pidns test + parent_pid="$(tail -n 2 $LOG | head -n 1 | cut -d' ' -f1)" + init_pid="$(tail -n 1 $LOG | cut -d' ' -f1)" + grep -E -v "^($parent_pid|$init_pid) " "$LOG" > "$OUT" + match_diff "$OUT" "$EXP" +} + +test_pidns() +{ + check_prog unshare + unshare -Urpf true || framework_skip_ "unshare -Urpf true failed" + + test_pidns_run_strace "$@" + + # test PID translation when /proc is mounted from an other namespace + STRACE="unshare -Urpf $STRACE" + test_pidns_run_strace "$@" +} + check_prog cat check_prog rm @@ -365,7 +458,7 @@ fi : "${STRACE_EXE:=$STRACE}" export STRACE_EXE -: "${TIMEOUT_DURATION:=600}" +: "${TIMEOUT_DURATION:=1500}" : "${SLEEP_A_BIT:=sleep 1}" [ -z "${VERBOSE-}" ] || diff --git a/tests-m32/init_module.c b/tests-m32/init_module.c index 601f7f92..a8884720 100644 --- a/tests-m32/init_module.c +++ b/tests-m32/init_module.c @@ -2,7 +2,7 @@ * Check decoding of init_module syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_init_module) diff --git a/tests-m32/inject-nf.c b/tests-m32/inject-nf.c index b419984f..22f34571 100644 --- a/tests-m32/inject-nf.c +++ b/tests-m32/inject-nf.c @@ -1,7 +1,7 @@ /* * Check decoding of return values injected into a syscall that "never fails". * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,32 +12,30 @@ #include #include #include -#include +#include "scno.h" #include "raw_syscall.h" -#ifdef __alpha__ -/* alpha has no getpid */ -# define SC_NR __NR_getpgrp -# define SC_NAME "getpgrp" -# define getpid getpgrp +#ifdef __NR_geteuid32 +# define SC_NR __NR_geteuid32 +# define SC_NAME "geteuid32" #else -# define SC_NR __NR_getpid -# define SC_NAME "getpid" +# define SC_NR __NR_geteuid +# define SC_NAME "geteuid" #endif #ifdef raw_syscall_0 # define INVOKE_SC(err) raw_syscall_0(SC_NR, &err) #else -/* No raw_syscall_0, let's use getpid() and hope for the best. */ -# define INVOKE_SC(err) getpid() +/* No raw_syscall_0, let's use geteuid() and hope for the best. */ +# define INVOKE_SC(err) geteuid() #endif /* * This prototype is intentionally different * from the prototype provided by . */ -extern kernel_ulong_t getpid(void); +extern kernel_ulong_t geteuid(void); int main(int ac, char **av) @@ -45,7 +43,7 @@ main(int ac, char **av) assert(ac == 1 || ac == 2); kernel_ulong_t expected = - (ac == 1) ? getpid() : strtoull(av[1], NULL, 0); + (ac == 1) ? geteuid() : strtoull(av[1], NULL, 0); kernel_ulong_t err = 0; kernel_ulong_t rc = INVOKE_SC(err); diff --git a/tests-m32/inject-nf.test b/tests-m32/inject-nf.test index cadb5adb..7b0c3fda 100755 --- a/tests-m32/inject-nf.test +++ b/tests-m32/inject-nf.test @@ -2,21 +2,14 @@ # # Check decoding of return values injected into a syscall that "never fails". # -# Copyright (c) 2018 The strace developers. +# Copyright (c) 2018-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/scno_tampering.sh" -case "$STRACE_ARCH" in -alpha) - SYSCALL=getpgrp - ;; -*) - SYSCALL=getpid - ;; -esac +SYSCALL='/^geteuid(32)?$' run_prog prog="$args" diff --git a/tests-m32/inotify.c b/tests-m32/inotify.c index db751d4e..f5167509 100644 --- a/tests-m32/inotify.c +++ b/tests-m32/inotify.c @@ -2,7 +2,7 @@ * Check decoding of inotify_add_watch and inotify_rm_watch syscalls. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_inotify_add_watch) && defined(__NR_inotify_rm_watch) diff --git a/tests-m32/inotify_init-y.c b/tests-m32/inotify_init-y.c new file mode 100644 index 00000000..cbe094ba --- /dev/null +++ b/tests-m32/inotify_init-y.c @@ -0,0 +1,2 @@ +#define PRINT_PATHS +#include "inotify_init.c" diff --git a/tests-m32/inotify_init-y.test b/tests-m32/inotify_init-y.test new file mode 100755 index 00000000..36f24776 --- /dev/null +++ b/tests-m32/inotify_init-y.test @@ -0,0 +1,17 @@ +#!/bin/sh +# +# Check decoding of inotify_init with path decoding enabled. +# +# Copyright (c) 2018-2019 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +# Test expects "anon_inode:inotify" link path format for a inotify fd, which +# is in place since v2.6.33-rc1~34^2~7. Check for older link path formats +# is implemented in inotify_init1 test. +require_min_kernel_version_or_skip 2.6.33 + +run_strace_match_diff -a15 -y -e trace=inotify_init diff --git a/tests-m32/inotify_init.c b/tests-m32/inotify_init.c new file mode 100644 index 00000000..9537a7d5 --- /dev/null +++ b/tests-m32/inotify_init.c @@ -0,0 +1,48 @@ +/* + * Check decoding of inotify_init syscall. + * + * Copyright (c) 2018-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_inotify_init + +# include +# include + +int +main(void) +{ +# ifdef PRINT_PATHS + skip_if_unavailable("/proc/self/fd/"); +# endif + + long rc = syscall(__NR_inotify_init, 42); + +# ifdef PRINT_PATHS + if (rc < 0) + perror_msg_and_skip("inotify_init"); +# endif + + printf("inotify_init() = " +# ifdef PRINT_PATHS + "%ld\n", rc +# else + "%s\n", sprintrc(rc) +# endif + ); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_inotify_init"); + +#endif diff --git a/tests-m32/inotify_init.gen.test b/tests-m32/inotify_init.gen.test new file mode 100755 index 00000000..47e6f602 --- /dev/null +++ b/tests-m32/inotify_init.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (inotify_init -a15 ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a15 diff --git a/tests-m32/inotify_init1-y.c b/tests-m32/inotify_init1-y.c new file mode 100644 index 00000000..53c65e66 --- /dev/null +++ b/tests-m32/inotify_init1-y.c @@ -0,0 +1,2 @@ +#define PRINT_PATHS +#include "inotify_init1.c" diff --git a/tests-m32/inotify_init1-y.gen.test b/tests-m32/inotify_init1-y.gen.test new file mode 100755 index 00000000..160d4d3e --- /dev/null +++ b/tests-m32/inotify_init1-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (inotify_init1-y -a27 -y -e trace=inotify_init1); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a27 -y -e trace=inotify_init1 diff --git a/tests-m32/inotify_init1.c b/tests-m32/inotify_init1.c index 4f352b70..efff52ec 100644 --- a/tests-m32/inotify_init1.c +++ b/tests-m32/inotify_init1.c @@ -2,7 +2,7 @@ * Check decoding of inotify_init1 syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_inotify_init1) @@ -25,9 +25,19 @@ # endif # define all_flags (O_NONBLOCK | cloexec_flag) +# ifdef PRINT_PATHS +# define RC_FMT "%ld<%s>" +# else +# define RC_FMT "%s" +# endif + int main(void) { +# ifdef PRINT_PATHS + skip_if_unavailable("/proc/self/fd/"); +# endif + static const kernel_ulong_t bogus_flags1 = (kernel_ulong_t) 0xfacefeeddeadbeefULL | O_NONBLOCK; static const kernel_ulong_t bogus_flags2 = @@ -46,8 +56,51 @@ main(void) (unsigned int) bogus_flags2, sprintrc(rc)); rc = syscall(__NR_inotify_init1, all_flags); - printf("inotify_init1(IN_NONBLOCK%s) = %s\n", - all_flags & cloexec_flag ? "|IN_CLOEXEC" : "", sprintrc(rc)); + +# ifdef PRINT_PATHS + if (rc < 0) + perror_msg_and_skip("inotify_init(%#x)", all_flags); + + /* + * Kernels that do not have v2.6.33-rc1~34^2~7 do not have + * "anon_inode:" prefix. Let's assume that it can be either "inotify" + * or "anon_inode:inotify" for now, as any change there may be + * of interest. + */ + char path[sizeof("/proc/self/fd/") + sizeof(rc) * 3]; + char buf[2] = ""; + const char *inotify_path; + ssize_t ret; + + ret = snprintf(path, sizeof(path), "/proc/self/fd/%ld", rc); + if ((ret < 0) || ((size_t) ret >= sizeof(path))) + perror_msg_and_fail("snprintf(path)"); + + ret = readlink(path, buf, sizeof(buf)); + if (ret < 0) + perror_msg_and_fail("readlink"); + + switch (buf[0]) { + case 'a': + inotify_path = "anon_inode:inotify"; + break; + case 'i': + inotify_path = "inotify"; + break; + default: + error_msg_and_fail("Unexpected first char '%c' of inotify fd " + "link path", buf[0]); + } +# endif + + printf("inotify_init1(IN_NONBLOCK%s) = " RC_FMT "\n", + all_flags & cloexec_flag ? "|IN_CLOEXEC" : "", +# ifdef PRINT_PATHS + rc, inotify_path +# else + sprintrc(rc) +# endif + ); puts("+++ exited with 0 +++"); diff --git a/tests-m32/io_uring_enter.c b/tests-m32/io_uring_enter.c index 3284ebac..bc741cd4 100644 --- a/tests-m32/io_uring_enter.c +++ b/tests-m32/io_uring_enter.c @@ -9,7 +9,6 @@ #include "tests.h" #include -#include #include "scno.h" #ifdef __NR_io_uring_enter diff --git a/tests-m32/io_uring_register.c b/tests-m32/io_uring_register.c index a0327ed8..b0c5b9ee 100644 --- a/tests-m32/io_uring_register.c +++ b/tests-m32/io_uring_register.c @@ -2,6 +2,7 @@ * Check decoding of io_uring_register syscall. * * Copyright (c) 2019 Dmitry V. Levin + * Copyright (c) 2019-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,16 +10,37 @@ #include "tests.h" #include -#include #include "scno.h" #ifdef __NR_io_uring_register # include +# include # include # include # include +# ifdef HAVE_LINUX_IO_URING_H +# include +# endif + +/* From tests/bpf.c */ +# if defined MPERS_IS_m32 || SIZEOF_KERNEL_LONG_T > 4 +# define BIG_ADDR_MAYBE(addr_) +# elif defined __arm__ || defined __i386__ || defined __mips__ \ + || defined __powerpc__ || defined __riscv__ || defined __s390__ \ + || defined __sparc__ || defined __tile__ +# define BIG_ADDR_MAYBE(addr_) addr_ " or " +# else +# define BIG_ADDR_MAYBE(addr_) +# endif + +# if WORDS_BIGENDIAN +# define BE_LE(be_, le_) be_ +# else +# define BE_LE(be_, le_) le_ +# endif + static const char *errstr; static long @@ -64,15 +86,40 @@ main(void) int fd_full = open(path_full, O_RDONLY); if (fd_full < 0) - perror_msg_and_fail("open: %s", path_null); + perror_msg_and_fail("open: %s", path_full); int fds[] = { fd_full, fd_null }; const int *arg_fds = tail_memdup(fds, sizeof(fds)); - sys_io_uring_register(fd_null, 0xbadc0ded, path_null, 0xdeadbeef); - printf("io_uring_register(%u<%s>, %#x /* IORING_REGISTER_??? */" - ", %p, %u) = %s\n", - fd_null, path_null, 0xbadc0ded, path_null, 0xdeadbeef, errstr); + static const unsigned int invalid_ops[] = { 0xbadc0dedU, 11 }; + + for (size_t i = 0; i < ARRAY_SIZE(invalid_ops); i++) { + sys_io_uring_register(fd_null, invalid_ops[i], path_null, + 0xdeadbeef); + printf("io_uring_register(%u<%s>, %#x /* IORING_REGISTER_??? */" + ", %p, %u) = %s\n", + fd_null, path_null, invalid_ops[i], path_null, + 0xdeadbeef, errstr); + } + + static const struct { + unsigned int op; + const char *str; + } no_arg_ops[] = { + { 1, "IORING_UNREGISTER_BUFFERS" }, + { 3, "IORING_UNREGISTER_FILES" }, + { 5, "IORING_UNREGISTER_EVENTFD" }, + { 9, "IORING_REGISTER_PERSONALITY" }, + { 10, "IORING_UNREGISTER_PERSONALITY" }, + }; + + for (size_t i = 0; i < ARRAY_SIZE(no_arg_ops); i++) { + sys_io_uring_register(fd_null, no_arg_ops[i].op, path_null, + 0xdeadbeef); + printf("io_uring_register(%u<%s>, %s, %p, %u) = %s\n", + fd_null, path_null, no_arg_ops[i].str, path_null, + 0xdeadbeef, errstr); + } sys_io_uring_register(fd_null, 0, arg_iov, ARRAY_SIZE(iov)); printf("io_uring_register(%u<%s>, IORING_REGISTER_BUFFERS" @@ -83,11 +130,157 @@ main(void) iov[1].iov_base, (unsigned long) iov[1].iov_len, (unsigned int) ARRAY_SIZE(iov), errstr); - sys_io_uring_register(fd_null, 2, arg_fds, ARRAY_SIZE(fds)); - printf("io_uring_register(%u<%s>, IORING_REGISTER_FILES" - ", [%u<%s>, %u<%s>], %u) = %s\n", + static const struct { + unsigned int op; + const char *str; + } fd_arr_ops[] = { + { 2, "IORING_REGISTER_FILES" }, + { 4, "IORING_REGISTER_EVENTFD" }, + { 7, "IORING_REGISTER_EVENTFD_ASYNC" }, + }; + + for (size_t i = 0; i < ARRAY_SIZE(fd_arr_ops); i++) { + sys_io_uring_register(fd_null, fd_arr_ops[i].op, arg_fds, + ARRAY_SIZE(fds)); + printf("io_uring_register(%u<%s>, %s, [%u<%s>, %u<%s>], %u)" + " = %s\n", + fd_null, path_null, fd_arr_ops[i].str, + fd_full, path_full, fd_null, path_null, + (unsigned int) ARRAY_SIZE(fds), errstr); + } + +# ifdef HAVE_STRUCT_IO_URING_FILES_UPDATE + struct io_uring_files_update bogus_iufu; + struct io_uring_files_update iufu; + + sys_io_uring_register(fd_null, 6, NULL, 0xfacefeed); + printf("io_uring_register(%u<%s>, IORING_REGISTER_FILES_UPDATE" + ", NULL, 4207869677) = %s\n", + fd_null, path_null, errstr); + + fill_memory(&bogus_iufu, sizeof(bogus_iufu)); + sys_io_uring_register(fd_null, 6, &bogus_iufu, 0); + printf("io_uring_register(%u<%s>, IORING_REGISTER_FILES_UPDATE" + ", {offset=%" PRIu32 ", resv=%#" PRIx32 ", fds=" + BIG_ADDR_MAYBE(BE_LE("0x88898a8b8c8d8e8f", "0x8f8e8d8c8b8a8988")) + "[]}, 0) = %s\n", + fd_null, path_null, + ((uint32_t *) &bogus_iufu)[0], ((uint32_t *) &bogus_iufu)[1], + errstr); + + memset(&iufu, 0, sizeof(iufu)); + iufu.offset = 0xdeadc0deU; + iufu.fds = (uintptr_t) fds; + sys_io_uring_register(fd_null, 6, &iufu, ARRAY_SIZE(fds)); + printf("io_uring_register(%u<%s>, IORING_REGISTER_FILES_UPDATE" + ", {offset=3735929054, fds=[%u<%s>, %u<%s>]}, %u) = %s\n", fd_null, path_null, fd_full, path_full, fd_null, path_null, (unsigned int) ARRAY_SIZE(fds), errstr); +# endif + +# ifdef HAVE_STRUCT_IO_URING_PROBE + struct io_uring_probe *probe = tail_alloc(sizeof(*probe) + + (DEFAULT_STRLEN + 1) * sizeof(struct io_uring_probe_op)); + + sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, NULL, 0xfacefeed); + printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE" + ", NULL, 4207869677) = %s\n", + fd_null, path_null, errstr); + + sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, probe, + 0xfacefeed); + printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE" + ", %p, 4207869677) = %s\n", + fd_null, path_null, probe, errstr); + + sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, + (char *) probe + 1, DEFAULT_STRLEN + 1); + printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE" + ", %p, %d) = %s\n", + fd_null, path_null, (char *) probe + 1, DEFAULT_STRLEN + 1, + errstr); + + sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, probe, 0); + printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE" + ", {last_op=%u /* IORING_OP_??? */, ops_len=%hhu, resv=%#hx" + ", resv2=[%#x, %#x, %#x], ops=[]}, 0) = %s\n", + fd_null, path_null, probe->last_op, probe->ops_len, probe->resv, + probe->resv2[0], probe->resv2[1], probe->resv2[2], errstr); + + probe->last_op = IORING_OP_READV; + probe->resv = 0; + sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, probe, 0); + printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE" + ", {last_op=IORING_OP_READV, ops_len=%hhu" + ", resv2=[%#x, %#x, %#x], ops=[]}, 0) = %s\n", + fd_null, path_null, probe->ops_len, + probe->resv2[0], probe->resv2[1], probe->resv2[2], errstr); + + probe->last_op = IORING_OP_EPOLL_CTL; + probe->resv2[0] = 0; + probe->resv2[2] = 0; + + probe->ops[0].op = IORING_OP_NOP; + probe->ops[0].resv = 0xde; + probe->ops[0].flags = 0; + probe->ops[0].resv2 = 0xbeefface; + + probe->ops[1].op = 33; + probe->ops[1].resv = 0; + probe->ops[1].flags = IO_URING_OP_SUPPORTED; + probe->ops[1].resv2 = 0xdeadc0de; + + probe->ops[2].op = 34; + probe->ops[2].resv = 0xaf; + probe->ops[2].flags = 0xbeef; + probe->ops[2].resv2 = 0; + + probe->ops[3].op = 0xfe; + probe->ops[3].resv = 0; + probe->ops[3].flags = 0xc0de; + probe->ops[3].resv2 = 0; + + sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, probe, 4); + printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE" + ", {last_op=IORING_OP_EPOLL_CTL, ops_len=%hhu" + ", resv2=[0, %#x, 0], ops=[" + "{op=IORING_OP_NOP, resv=0xde, flags=0, resv2=0xbeefface}, " + "{op=IORING_OP_TEE, flags=IO_URING_OP_SUPPORTED" + ", resv2=0xdeadc0de}, " + "{op=34 /* IORING_OP_??? */, resv=0xaf" + ", flags=IO_URING_OP_SUPPORTED|0xbeee}, " + "{op=254 /* IORING_OP_??? */" + ", flags=0xc0de /* IO_URING_OP_??? */}]}, 4) = %s\n", + fd_null, path_null, probe->ops_len, probe->resv2[1], errstr); + + probe->last_op = 34; + probe->resv2[1] = 0; + fill_memory_ex(probe->ops, sizeof(probe->ops[0]) * (DEFAULT_STRLEN + 1), + 0x40, 0x80); + sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, probe, + DEFAULT_STRLEN + 1); + printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE" + ", {last_op=34 /* IORING_OP_??? */, ops_len=%hhu, ops=[", + fd_null, path_null, probe->ops_len); + for (size_t i = 0; i < DEFAULT_STRLEN; i++) { + printf("%s{op=%u /* IORING_OP_??? */, resv=%#hhx" + ", flags=%s%#hx%s, resv2=%#x}", + i ? ", " : "", + probe->ops[i].op, probe->ops[i].resv, + probe->ops[i].flags & 1 ? "IO_URING_OP_SUPPORTED|" : "", + (typeof(probe->ops[i].flags)) (probe->ops[i].flags & ~1), + probe->ops[i].flags & 1 ? "" : " /* IO_URING_OP_??? */", + probe->ops[i].resv2); + } + printf(", ...]}, %d) = %s\n", DEFAULT_STRLEN + 1, errstr); + + probe->last_op = 0; + probe->ops_len = 0; + memset(probe->ops, 0, sizeof(probe->ops[0]) * (DEFAULT_STRLEN + 1)); + sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, probe, 8); + printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE, %p, 8) = %s\n", + fd_null, path_null, probe, errstr); +# endif puts("+++ exited with 0 +++"); return 0; diff --git a/tests-m32/io_uring_setup.c b/tests-m32/io_uring_setup.c index f48095bb..d54f8c9b 100644 --- a/tests-m32/io_uring_setup.c +++ b/tests-m32/io_uring_setup.c @@ -2,6 +2,7 @@ * Check decoding of io_uring_setup syscall. * * Copyright (c) 2019 Dmitry V. Levin + * Copyright (c) 2019-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,17 +10,34 @@ #include "tests.h" #include -#include #include "scno.h" #if defined HAVE_LINUX_IO_URING_H && defined __NR_io_uring_setup +# include # include # include # include # include +# include +# include + # include "print_fields.h" +# include "xlat.h" + +# include "xlat/uring_setup_features.h" +# include "xlat/uring_cqring_flags.h" + +# ifdef HAVE_STRUCT_IO_URING_PARAMS_FEATURES +# ifdef HAVE_STRUCT_IO_URING_PARAMS_WQ_FD +# define RESV_START 0 +# else +# define RESV_START 1 +# endif +# else /* !HAVE_STRUCT_IO_URING_PARAMS_FEATURES */ +# define RESV_START 2 +# endif /* HAVE_STRUCT_IO_URING_PARAMS_FEATURES */ static const char *errstr; @@ -39,12 +57,18 @@ sys_io_uring_setup(uint32_t nentries, const void *params) int main(void) { + static const char path_full[] = "/dev/full"; + long rc; TAIL_ALLOC_OBJECT_CONST_PTR(struct io_uring_params, params); const void *efault = (const void *) params + 1; skip_if_unavailable("/proc/self/fd/"); + int fd_full = open(path_full, O_RDONLY); + if (fd_full < 0) + perror_msg_and_fail("open: %s", path_full); + sys_io_uring_setup(-1U, NULL); printf("io_uring_setup(%u, NULL) = %s\n", -1U, errstr); @@ -55,42 +79,110 @@ main(void) params->flags = -1; sys_io_uring_setup(1, params); printf("io_uring_setup(%u, {flags=IORING_SETUP_IOPOLL" - "|IORING_SETUP_SQPOLL|IORING_SETUP_SQ_AFF|%#x" - ", sq_thread_cpu=%#x, sq_thread_idle=%u, resv={", - 1, -1U - 7, params->sq_thread_cpu, params->sq_thread_idle); - for (unsigned int i = 0; i < ARRAY_SIZE(params->resv); ++i) - printf("%s%#x", i ? ", " : "", params->resv[i]); - printf("}}) = %s\n", errstr); - - memset(params, 0, sizeof(*params)); - rc = sys_io_uring_setup(2, params); - printf("io_uring_setup(%u, {flags=0, sq_thread_cpu=0" - ", sq_thread_idle=0", 2); - if (rc < 0) - printf("}) = %s\n", errstr); - else - printf(", sq_entries=%u, cq_entries=%u" - ", sq_off={head=%u, tail=%u, ring_mask=%u" - ", ring_entries=%u, flags=%u, dropped=%u, array=%u}" - ", cq_off={head=%u, tail=%u, ring_mask=%u" - ", ring_entries=%u, overflow=%u, cqes=%u}" - "}) = %ld\n", - params->sq_entries, - params->cq_entries, - params->sq_off.head, - params->sq_off.tail, - params->sq_off.ring_mask, - params->sq_off.ring_entries, - params->sq_off.flags, - params->sq_off.dropped, - params->sq_off.array, - params->cq_off.head, - params->cq_off.tail, - params->cq_off.ring_mask, - params->cq_off.ring_entries, - params->cq_off.overflow, - params->cq_off.cqes, - rc); + "|IORING_SETUP_SQPOLL|IORING_SETUP_SQ_AFF|IORING_SETUP_CQSIZE" + "|IORING_SETUP_CLAMP|IORING_SETUP_ATTACH_WQ|%#x" + ", sq_thread_cpu=%#x, sq_thread_idle=%u, wq_fd=%d, resv=[", + 1, -1U - 63, params->sq_thread_cpu, params->sq_thread_idle, +# if defined HAVE_STRUCT_IO_URING_PARAMS_WQ_FD + params->wq_fd +# elif defined HAVE_STRUCT_IO_URING_PARAMS_FEATURES + params->resv[0] +# else + params->resv[1] +# endif + ); + for (unsigned int i = RESV_START; i < ARRAY_SIZE(params->resv); ++i) + printf("%s%#x", i != RESV_START ? ", " : "", params->resv[i]); + printf("]}) = %s\n", errstr); + + for (size_t i = 0; i < 2; i++) { + memset(params, 0, sizeof(*params)); + +# if defined HAVE_STRUCT_IO_URING_PARAMS_WQ_FD + params->wq_fd +# elif defined HAVE_STRUCT_IO_URING_PARAMS_FEATURES + params->resv[0] +# else + params->resv[1] +# endif + = i == 1 ? fd_full : -1; + params->flags = i == 1 ? 32 : 0; + + rc = sys_io_uring_setup(2, params); + printf("io_uring_setup(%u, {flags=%s, sq_thread_cpu=0" + ", sq_thread_idle=0", + 2, i == 1 ? "IORING_SETUP_ATTACH_WQ" : "0"); + if (i == 1) + printf(", wq_fd=%d<%s>", fd_full, path_full); + if (rc < 0) { + printf("}) = %s\n", errstr); + } else { + printf(", sq_entries=%u, cq_entries=%u, features=", + params->sq_entries, + params->cq_entries); + printflags(uring_setup_features, +# ifdef HAVE_STRUCT_IO_URING_PARAMS_FEATURES + params->features, +# else + params->resv[0], +# endif + "IORING_FEAT_???"); + printf(", sq_off={head=%u, tail=%u, ring_mask=%u" + ", ring_entries=%u, flags=%u, dropped=%u" + ", array=%u", + params->sq_off.head, + params->sq_off.tail, + params->sq_off.ring_mask, + params->sq_off.ring_entries, + params->sq_off.flags, + params->sq_off.dropped, + params->sq_off.array); + if (params->sq_off.resv1) + printf(", resv1=%#x", params->sq_off.resv1); + if (params->sq_off.resv2) + printf(", resv1=%#llx", + (unsigned long long) + params->sq_off.resv2); + + printf("}, cq_off={head=%u, tail=%u, ring_mask=%u" + ", ring_entries=%u, overflow=%u, cqes=%u, flags=", + params->cq_off.head, + params->cq_off.tail, + params->cq_off.ring_mask, + params->cq_off.ring_entries, + params->cq_off.overflow, + params->cq_off.cqes); +# ifdef HAVE_STRUCT_IO_CQRING_OFFSETS_FLAGS + printflags(uring_cqring_flags, + params->cq_off.flags, + "IORING_CQ_???"); + if (params->cq_off.resv1) + printf(", resv1=%#x", params->cq_off.resv1); + if (params->cq_off.resv2) + printf(", resv2=%#llx", + (unsigned long long) + params->cq_off.resv2); +# else + union { + struct { + uint32_t flags; + uint32_t resv1; + } s; + uint64_t v; + } u = { .v = params->cq_off.resv[0] }; + printflags(uring_cqring_flags, u.s.flags, + "IORING_CQ_???"); + if (u.s.resv1) + printf(", resv1=%#x", u.s.resv1); + if (params->cq_off.resv[1]) + printf(", resv2=%#llx", + (unsigned long long) + params->cq_off.resv[1]); +# endif + + printf("}}) = %ld\n", rc); + } + } puts("+++ exited with 0 +++"); return 0; diff --git a/tests-m32/ioctl-success.sh b/tests-m32/ioctl-success.sh new file mode 100755 index 00000000..9dd8aee8 --- /dev/null +++ b/tests-m32/ioctl-success.sh @@ -0,0 +1,21 @@ +#!/bin/sh -efu +# +# Check decoding of ioctls using syscall injection. +# +# Expects a binary that accepts IOCTL_INJECT_START as the first argument. +# +# Copyright (c) 2018-2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/scno_tampering.sh" + +: ${IOCTL_INJECT_START=256} +: ${IOCTL_INJECT_RETVAL=42} + +run_strace -a50 "$@" -e trace=ioctl \ + -e inject=ioctl:retval="${IOCTL_INJECT_RETVAL}":when="${IOCTL_INJECT_START}+" \ + "../$NAME" "${IOCTL_INJECT_START}" "${IOCTL_INJECT_RETVAL}" > "$EXP" +grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT" +match_diff "$OUT" "$EXP" diff --git a/tests-m32/ioctl.c b/tests-m32/ioctl.c index ec4e3670..4f8e2e9f 100644 --- a/tests-m32/ioctl.c +++ b/tests-m32/ioctl.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -14,6 +14,8 @@ #include #include +#include + #ifdef HAVE_LINUX_MMTIMER_H # include #endif diff --git a/tests-m32/ioctl_block--pidns-translation.c b/tests-m32/ioctl_block--pidns-translation.c new file mode 100644 index 00000000..5eed6076 --- /dev/null +++ b/tests-m32/ioctl_block--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "ioctl_block.c" diff --git a/tests-m32/ioctl_block--pidns-translation.test b/tests-m32/ioctl_block--pidns-translation.test new file mode 100755 index 00000000..d06855f9 --- /dev/null +++ b/tests-m32/ioctl_block--pidns-translation.test @@ -0,0 +1,22 @@ +#!/bin/sh +# +# Check pidns translation of ioctl(BLK*) syscall decoding. +# +# Copyright (c) 2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: LGPL-2.1-or-later + +. "${srcdir=.}/init.sh" + +check_prog head +check_prog tail +check_prog cut +check_prog grep + +run_prog > /dev/null +run_strace --pidns-translation -f -a16 -e trace=ioctl $@ $args > "$EXP" +parent_pid="$(tail -n 2 $LOG | head -n 1 | cut -d' ' -f1)" +init_pid="$(tail -n 1 $LOG | cut -d' ' -f1)" +grep -E -v "^($parent_pid|$init_pid) |ioctl\([0123][,<]" "$LOG" > "$OUT" +match_diff "$OUT" "$EXP" diff --git a/tests-m32/ioctl_block.c b/tests-m32/ioctl_block.c index 65f434c8..8a345f4e 100644 --- a/tests-m32/ioctl_block.c +++ b/tests-m32/ioctl_block.c @@ -2,14 +2,16 @@ * This file is part of ioctl_block strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include "pidns.h" #include +#include #include #include #include @@ -24,7 +26,7 @@ static const unsigned int magic = 0xdeadbeef; static const unsigned long lmagic = (unsigned long) 0xdeadbeefbadc0dedULL; -static struct xlat block_argless[] = { +static struct xlat_data block_argless[] = { XLAT(BLKRRPART), XLAT(BLKFLSBUF), #ifdef BLKTRACESTART @@ -41,12 +43,15 @@ static struct xlat block_argless[] = { #define TEST_NULL_ARG(cmd) \ do { \ ioctl(-1, cmd, 0); \ + pidns_print_leader(); \ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", #cmd); \ } while (0) int main(void) { + PIDNS_TEST_INIT; + TEST_NULL_ARG(BLKBSZGET); TEST_NULL_ARG(BLKBSZSET); TEST_NULL_ARG(BLKFRAGET); @@ -91,18 +96,22 @@ main(void) #endif ioctl(-1, BLKRASET, lmagic); + pidns_print_leader(); printf("ioctl(-1, BLKRASET, %lu) = -1 EBADF (%m)\n", lmagic); ioctl(-1, BLKFRASET, lmagic); + pidns_print_leader(); printf("ioctl(-1, BLKFRASET, %lu) = -1 EBADF (%m)\n", lmagic); TAIL_ALLOC_OBJECT_CONST_PTR(int, val_int); *val_int = magic; ioctl(-1, BLKROSET, val_int); + pidns_print_leader(); printf("ioctl(-1, BLKROSET, [%d]) = -1 EBADF (%m)\n", *val_int); ioctl(-1, BLKBSZSET, val_int); + pidns_print_leader(); printf("ioctl(-1, BLKBSZSET, [%d]) = -1 EBADF (%m)\n", *val_int); uint64_t *pair_int64 = tail_alloc(sizeof(*pair_int64) * 2); @@ -111,18 +120,21 @@ main(void) #ifdef BLKDISCARD ioctl(-1, BLKDISCARD, pair_int64); + pidns_print_leader(); printf("ioctl(-1, BLKDISCARD, [%" PRIu64 ", %" PRIu64 "])" " = -1 EBADF (%m)\n", pair_int64[0], pair_int64[1]); #endif #ifdef BLKSECDISCARD ioctl(-1, BLKSECDISCARD, pair_int64); + pidns_print_leader(); printf("ioctl(-1, BLKSECDISCARD, [%" PRIu64 ", %" PRIu64 "])" " = -1 EBADF (%m)\n", pair_int64[0], pair_int64[1]); #endif #ifdef BLKZEROOUT ioctl(-1, BLKZEROOUT, pair_int64); + pidns_print_leader(); printf("ioctl(-1, BLKZEROOUT, [%" PRIu64 ", %" PRIu64 "])" " = -1 EBADF (%m)\n", pair_int64[0], pair_int64[1]); #endif @@ -134,6 +146,7 @@ main(void) blkpg->data = (void *) (unsigned long) 0xcafef00dfffffeedULL; ioctl(-1, BLKPG, blkpg); + pidns_print_leader(); printf("ioctl(-1, BLKPG, {op=%s, flags=%d, datalen=%d" ", data=%#lx}) = -1 EBADF (%m)\n", "BLKPG_RESIZE_PARTITION", blkpg->flags, blkpg->datalen, @@ -149,6 +162,7 @@ main(void) blkpg->data = bp; ioctl(-1, BLKPG, blkpg); + pidns_print_leader(); printf("ioctl(-1, BLKPG, {op=%s, flags=%d, datalen=%d" ", data={start=%lld, length=%lld, pno=%d" ", devname=\"%.*s\"..., volname=\"%.*s\"...}})" @@ -162,25 +176,31 @@ main(void) #if defined BLKTRACESETUP && defined HAVE_STRUCT_BLK_USER_TRACE_SETUP TAIL_ALLOC_OBJECT_CONST_PTR(struct blk_user_trace_setup, buts); fill_memory(buts, sizeof(*buts)); + buts->pid = getpid(); ioctl(-1, BLKTRACESETUP, buts); + pidns_print_leader(); printf("ioctl(-1, BLKTRACESETUP, {act_mask=%hu, buf_size=%u, buf_nr=%u" - ", start_lba=%" PRI__u64 ", end_lba=%" PRI__u64 ", pid=%u})" + ", start_lba=%" PRI__u64 ", end_lba=%" PRI__u64 ", pid=%d%s})" " = -1 EBADF (%m)\n", buts->act_mask, buts->buf_size, buts->buf_nr, - buts->start_lba, buts->end_lba, buts->pid); + buts->start_lba, buts->end_lba, buts->pid, + pidns_pid2str(PT_TGID)); #endif unsigned int i; for (i = 0; i < ARRAY_SIZE(block_argless); ++i) { ioctl(-1, (unsigned long) block_argless[i].val, lmagic); + pidns_print_leader(); printf("ioctl(-1, %s) = -1 EBADF (%m)\n", block_argless[i].str); } ioctl(-1, _IOC(_IOC_READ, 0x12, 0xfe, 0xff), lmagic); + pidns_print_leader(); printf("ioctl(-1, %s, %#lx) = -1 EBADF (%m)\n", "_IOC(_IOC_READ, 0x12, 0xfe, 0xff)", lmagic); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-m32/ioctl_evdev-Xabbrev.c b/tests-m32/ioctl_evdev-Xabbrev.c new file mode 100644 index 00000000..ac474bf6 --- /dev/null +++ b/tests-m32/ioctl_evdev-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_evdev.c" diff --git a/tests-m32/ioctl_evdev-Xabbrev.gen.test b/tests-m32/ioctl_evdev-Xabbrev.gen.test new file mode 100755 index 00000000..5f724444 --- /dev/null +++ b/tests-m32/ioctl_evdev-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-Xabbrev +ioctl.test -a26 -Xabbrev); do not edit. +set -- -a26 -Xabbrev +. "${srcdir=.}/ioctl.test" diff --git a/tests-m32/ioctl_evdev-Xraw.c b/tests-m32/ioctl_evdev-Xraw.c new file mode 100644 index 00000000..15f586f9 --- /dev/null +++ b/tests-m32/ioctl_evdev-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_evdev.c" diff --git a/tests-m32/ioctl_evdev-Xraw.gen.test b/tests-m32/ioctl_evdev-Xraw.gen.test new file mode 100755 index 00000000..f292f4cb --- /dev/null +++ b/tests-m32/ioctl_evdev-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-Xraw +ioctl.test -a28 -Xraw); do not edit. +set -- -a28 -Xraw +. "${srcdir=.}/ioctl.test" diff --git a/tests-m32/ioctl_evdev-Xverbose.c b/tests-m32/ioctl_evdev-Xverbose.c new file mode 100644 index 00000000..603c2f01 --- /dev/null +++ b/tests-m32/ioctl_evdev-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_evdev.c" diff --git a/tests-m32/ioctl_evdev-Xverbose.gen.test b/tests-m32/ioctl_evdev-Xverbose.gen.test new file mode 100755 index 00000000..0b1b4fca --- /dev/null +++ b/tests-m32/ioctl_evdev-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-Xverbose +ioctl.test -a41 -Xverbose); do not edit. +set -- -a41 -Xverbose +. "${srcdir=.}/ioctl.test" diff --git a/tests-m32/ioctl_evdev-success-Xabbrev.c b/tests-m32/ioctl_evdev-success-Xabbrev.c new file mode 100644 index 00000000..9f2416bf --- /dev/null +++ b/tests-m32/ioctl_evdev-success-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_evdev-success.c" diff --git a/tests-m32/ioctl_evdev-success-Xabbrev.gen.test b/tests-m32/ioctl_evdev-success-Xabbrev.gen.test new file mode 100755 index 00000000..64323225 --- /dev/null +++ b/tests-m32/ioctl_evdev-success-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-success-Xabbrev +ioctl_evdev-success.test -Xabbrev); do not edit. +set -- -Xabbrev +. "${srcdir=.}/ioctl_evdev-success.test" diff --git a/tests-m32/ioctl_evdev-success-Xraw.c b/tests-m32/ioctl_evdev-success-Xraw.c new file mode 100644 index 00000000..097672a7 --- /dev/null +++ b/tests-m32/ioctl_evdev-success-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_evdev-success.c" diff --git a/tests-m32/ioctl_evdev-success-Xraw.gen.test b/tests-m32/ioctl_evdev-success-Xraw.gen.test new file mode 100755 index 00000000..c4f8c43b --- /dev/null +++ b/tests-m32/ioctl_evdev-success-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-success-Xraw +ioctl_evdev-success.test -a27 -Xraw); do not edit. +set -- -a27 -Xraw +. "${srcdir=.}/ioctl_evdev-success.test" diff --git a/tests-m32/ioctl_evdev-success-Xverbose.c b/tests-m32/ioctl_evdev-success-Xverbose.c new file mode 100644 index 00000000..9ee67a08 --- /dev/null +++ b/tests-m32/ioctl_evdev-success-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_evdev-success.c" diff --git a/tests-m32/ioctl_evdev-success-Xverbose.gen.test b/tests-m32/ioctl_evdev-success-Xverbose.gen.test new file mode 100755 index 00000000..a1781fc2 --- /dev/null +++ b/tests-m32/ioctl_evdev-success-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-success-Xverbose +ioctl_evdev-success.test -a43 -Xverbose); do not edit. +set -- -a43 -Xverbose +. "${srcdir=.}/ioctl_evdev-success.test" diff --git a/tests-m32/ioctl_evdev-success-v-Xabbrev.c b/tests-m32/ioctl_evdev-success-v-Xabbrev.c new file mode 100644 index 00000000..566ad3ea --- /dev/null +++ b/tests-m32/ioctl_evdev-success-v-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_evdev-success-v.c" diff --git a/tests-m32/ioctl_evdev-success-v-Xabbrev.gen.test b/tests-m32/ioctl_evdev-success-v-Xabbrev.gen.test new file mode 100755 index 00000000..cdb9e795 --- /dev/null +++ b/tests-m32/ioctl_evdev-success-v-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-success-v-Xabbrev +ioctl_evdev-success.test -v -Xabbrev); do not edit. +set -- -v -Xabbrev +. "${srcdir=.}/ioctl_evdev-success.test" diff --git a/tests-m32/ioctl_evdev-success-v-Xraw.c b/tests-m32/ioctl_evdev-success-v-Xraw.c new file mode 100644 index 00000000..461bcd76 --- /dev/null +++ b/tests-m32/ioctl_evdev-success-v-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_evdev-success-v.c" diff --git a/tests-m32/ioctl_evdev-success-v-Xraw.gen.test b/tests-m32/ioctl_evdev-success-v-Xraw.gen.test new file mode 100755 index 00000000..4c29234c --- /dev/null +++ b/tests-m32/ioctl_evdev-success-v-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-success-v-Xraw +ioctl_evdev-success.test -a27 -v -Xraw); do not edit. +set -- -a27 -v -Xraw +. "${srcdir=.}/ioctl_evdev-success.test" diff --git a/tests-m32/ioctl_evdev-success-v-Xverbose.c b/tests-m32/ioctl_evdev-success-v-Xverbose.c new file mode 100644 index 00000000..17543205 --- /dev/null +++ b/tests-m32/ioctl_evdev-success-v-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_evdev-success-v.c" diff --git a/tests-m32/ioctl_evdev-success-v-Xverbose.gen.test b/tests-m32/ioctl_evdev-success-v-Xverbose.gen.test new file mode 100755 index 00000000..d1d1cde5 --- /dev/null +++ b/tests-m32/ioctl_evdev-success-v-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-success-v-Xverbose +ioctl_evdev-success.test -a43 -v -Xverbose); do not edit. +set -- -a43 -v -Xverbose +. "${srcdir=.}/ioctl_evdev-success.test" diff --git a/tests-m32/ioctl_evdev-success-v.gen.test b/tests-m32/ioctl_evdev-success-v.gen.test new file mode 100755 index 00000000..aa72de10 --- /dev/null +++ b/tests-m32/ioctl_evdev-success-v.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-success-v +ioctl_evdev-success.test -a26 -v); do not edit. +set -- -a26 -v +. "${srcdir=.}/ioctl_evdev-success.test" diff --git a/tests-m32/ioctl_evdev-success-v.test b/tests-m32/ioctl_evdev-success-v.test deleted file mode 100755 index faedee30..00000000 --- a/tests-m32/ioctl_evdev-success-v.test +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -efu -# -# Copyright (c) 2018 The strace developers. -# All rights reserved. -# -# SPDX-License-Identifier: GPL-2.0-or-later - -. "${srcdir=.}/scno_tampering.sh" - -: ${IOCTL_INJECT_START=256} -: ${IOCTL_INJECT_RETVAL=8} - -run_prog -run_strace -a16 -v -e trace=ioctl \ - -e inject=ioctl:retval="${IOCTL_INJECT_RETVAL}":when="${IOCTL_INJECT_START}+" \ - ../ioctl_evdev-success-v "${IOCTL_INJECT_START}" "${IOCTL_INJECT_RETVAL}"> "$EXP" -grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT" -match_diff "$OUT" "$EXP" diff --git a/tests-m32/ioctl_evdev-success.c b/tests-m32/ioctl_evdev-success.c index 7887d417..d6809be5 100644 --- a/tests-m32/ioctl_evdev-success.c +++ b/tests-m32/ioctl_evdev-success.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,6 +9,7 @@ #ifdef HAVE_LINUX_INPUT_H +# include # include # include # include @@ -16,17 +17,19 @@ # include # include "print_fields.h" +# define NUM_WORDS 4 + static const char *errstr; struct evdev_check { unsigned long cmd; const char *cmd_str; - void *arg_ptr; - void (*print_arg)(long rc, void *ptr, void *arg); + const void *arg_ptr; + void (*print_arg)(long rc, const void *ptr, const void *arg); }; static long -invoke_test_syscall(unsigned long cmd, void *p) +invoke_test_syscall(unsigned long cmd, const void *p) { long rc = ioctl(-1, cmd, p); errstr = sprintrc(rc); @@ -38,10 +41,10 @@ invoke_test_syscall(unsigned long cmd, void *p) } static void -test_evdev(struct evdev_check *check, void *arg) +test_evdev(struct evdev_check *check, const void *arg) { long rc = invoke_test_syscall(check->cmd, check->arg_ptr); - printf("ioctl(-1, %s, ", check->cmd_str); + printf("ioctl(-1, %s, ", sprintxlat(check->cmd_str, check->cmd, NULL)); if (check->print_arg) check->print_arg(rc, check->arg_ptr, arg); else @@ -50,9 +53,12 @@ test_evdev(struct evdev_check *check, void *arg) } static void -print_input_absinfo(long rc, void *ptr, void *arg) +print_input_absinfo(long rc, const void *ptr, const void *arg) { - struct input_absinfo *absinfo = ptr; + const struct input_absinfo *absinfo = ptr; +# if VERBOSE + const uintptr_t sz = (uintptr_t) arg; +# endif if (rc < 0) { printf("%p", absinfo); @@ -64,9 +70,20 @@ print_input_absinfo(long rc, void *ptr, void *arg) PRINT_FIELD_U(", ", *absinfo, maximum); PRINT_FIELD_U(", ", *absinfo, fuzz); PRINT_FIELD_U(", ", *absinfo, flat); + if (sz > offsetofend(struct input_absinfo, flat)) { + if (sz >= 24) { # ifdef HAVE_STRUCT_INPUT_ABSINFO_RESOLUTION - PRINT_FIELD_U(", ", *absinfo, resolution); + PRINT_FIELD_U(", ", *absinfo, resolution); +# else + printf(", resolution=%u", *((int *) ptr + 5)); # endif + + if (sz > 24) + printf(", ..."); + } else { + printf(", ..."); + } + } # else printf(", ..."); # endif @@ -74,66 +91,90 @@ print_input_absinfo(long rc, void *ptr, void *arg) } static void -print_input_id(long rc, void *ptr, void *arg) +print_input_id(long rc, const void *ptr, const void *arg) { - struct input_id *id = ptr; + const struct input_id *id = ptr; if (rc < 0) { printf("%p", id); return; } - printf("{ID_BUS=%" PRIu16 - ", ID_VENDOR=%" PRIu16 - ", ID_PRODUCT=%" PRIu16 - ", ID_VERSION=%" PRIu16 "}", + printf("{bustype=%" PRIu16 + ", vendor=%" PRIu16 + ", product=%" PRIu16 + ", version=%" PRIu16 "}", id->bustype, id->vendor, id->product, id->version); } # ifdef EVIOCGMTSLOTS static void -print_mtslots(long rc, void *ptr, void *arg) +print_mtslots(long rc, const void *ptr, const void *arg) { - int *buffer = ptr; - const char **str = arg; - int num = atoi(*(str + 1)); + const unsigned int *buffer = ptr; + const char * const * str = arg; if (rc < 0) { printf("%p", buffer); return; } - printf("{code=%s", *str); + printf("{code=%s", sprintxlat(*str, *buffer, NULL)); printf(", values=["); - for (unsigned int i = 1; i <= (unsigned) num; i++) - printf("%s%s", i > 1 ? ", " : "", *(str + i + 1)); + for (unsigned int i = 1; str[i]; i++) + printf("%s%s", i > 1 ? ", " : "", str[i]); printf("]}"); } # endif static void -print_getbit(long rc, void *ptr, void *arg) +print_getbit(long rc, const void *ptr, const void *arg) { - const char **str = arg; - int num = atoi(*str); + const char * const *str = arg + sizeof(char *); +# if XLAT_RAW || XLAT_VERBOSE + const unsigned long *buf = ptr; + const unsigned long buf_size = (uintptr_t) (str[-1]); +# endif - if (rc < 0) { + + + if (rc <= 0) { printf("%p", ptr); return; } +# if !XLAT_RAW printf("["); - printf("%s", *(str + 1)); - for (unsigned int i = 2; i <= (unsigned) num; i++) { -# if ! VERBOSE - if (i > 4) { + for (unsigned long i = 0; str[i]; i++) { +# if ! VERBOSE + if (i >= 4) { printf(", ..."); break; } -# endif - printf(", "); - printf("%s", *(str + i)); +# endif + if (i) + printf(", "); + printf("%s", str[i]); } printf("]"); +# endif /* !XLAT_RAW */ + +# if XLAT_VERBOSE + printf(" /* "); +# endif + +# if XLAT_RAW || XLAT_VERBOSE + printf("["); + const unsigned long cnt = + (MIN((unsigned long) rc, buf_size) + sizeof(long) - 1) + / sizeof(long); + for (unsigned long i = 0; i < cnt; i++) + printf("%s%#lx", i ? ", " : "", buf[i]); + printf("]"); +# endif + +# if XLAT_VERBOSE + printf(" */"); +# endif } int @@ -158,8 +199,8 @@ main(int argc, char **argv) for (unsigned int i = 0; i < num_skip; i++) { long rc = ioctl(-1, EVIOCGID, NULL); - printf("ioctl(-1, EVIOCGID, NULL) = %s%s\n", - sprintrc(rc), + printf("ioctl(-1, %s, NULL) = %s%s\n", + XLAT_STR(EVIOCGID), sprintrc(rc), rc == inject_retval ? " (INJECTED)" : ""); if (rc != inject_retval) @@ -174,52 +215,132 @@ main(int argc, char **argv) ", EVIOCGID, NULL) returning %lu", inject_retval); + static const void *absinfo_sz = + (const void *) (uintptr_t) sizeof(struct input_absinfo); + TAIL_ALLOC_OBJECT_CONST_PTR(struct input_id, id); TAIL_ALLOC_OBJECT_CONST_PTR(struct input_absinfo, absinfo); TAIL_ALLOC_OBJECT_CONST_PTR(int, bad_addr_slot); + + struct input_absinfo *absinfo_24 = tail_alloc(MAX(sizeof(*absinfo_24), + 24)); + struct input_absinfo *absinfo_32 = tail_alloc(MAX(sizeof(*absinfo_32), + 32)); + + fill_memory(absinfo, sizeof(struct input_absinfo)); + fill_memory(absinfo_24, 24); + fill_memory(absinfo_32, 32); + # ifdef EVIOCGMTSLOTS - int mtslots[] = { ABS_MT_SLOT, 1, 3 }; - /* we use the second element to indicate the number of values */ - /* mtslots_str[1] is "2" so the number of values is 2 */ - const char *mtslots_str[] = { "ABS_MT_SLOT", "2", "1", "3" }; + static const unsigned int mtslots[] = { ABS_MT_SLOT, 1, 3 }; + static const char * const mtslots_str[] = { + "ABS_MT_SLOT", "1", "3", NULL }; /* invalid flag */ - int invalid_mtslot[] = { -1, 1 }; - char invalid_str[4096]; - snprintf(invalid_str, sizeof(invalid_str), "%#x /* ABS_MT_??? */", invalid_mtslot[0]); - const char *invalid_mtslot_str[] = { invalid_str, "1", "1" }; + static const unsigned int invalid_mtslot[] = { -1, 1 }; + static const char * const invalid_mtslot_str[] = { + "" +# if !XLAT_RAW && !XLAT_VERBOSE + "0xffffffff" +# endif +# if !XLAT_VERBOSE + " /* " +# endif + "ABS_MT_???" +# if !XLAT_VERBOSE + " */" +# endif + , "1", NULL }; # endif + enum { ULONG_BIT = sizeof(unsigned long) * 8 }; + /* set more than 4 bits */ - unsigned long ev_more[] = { 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED | 1 << EV_SND | 1 << EV_PWR }; - /* we use the first element to indicate the number of set bits */ - /* ev_more_str[0] is "5" so the number of set bits is 5 */ - const char *ev_more_str[] = { "5", "EV_ABS", "EV_MSC", "EV_LED", "EV_SND", "EV_PWR" }; + static const unsigned long ev_more[NUM_WORDS] = { + 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED | 1 << EV_SND + | 1 << EV_PWR }; + static const char * const ev_more_str_2[] = { + (char *) (uintptr_t) 4, + XLAT_KNOWN(0x3, "EV_ABS"), XLAT_KNOWN(0x4, "EV_MSC"), NULL }; + static const char * const ev_more_str_3[] = { + (char *) (uintptr_t) 4, + XLAT_KNOWN(0x3, "EV_ABS"), XLAT_KNOWN(0x4, "EV_MSC"), + XLAT_KNOWN(0x11, "EV_LED"), XLAT_KNOWN(0x12, "EV_SND"), + XLAT_KNOWN(0x16, "EV_PWR"), NULL }; /* set less than 4 bits */ - unsigned long ev_less[] = { 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED }; - const char *ev_less_str[] = { "3", "EV_ABS", "EV_MSC", "EV_LED" }; + static const unsigned long ev_less[NUM_WORDS] = { + 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED }; + static const char * const ev_less_str_2[] = { + (char *) (uintptr_t) 4, + XLAT_KNOWN(0x3, "EV_ABS"), XLAT_KNOWN(0x4, "EV_MSC"), NULL }; + static const char * const ev_less_str_3[] = { + (char *) (uintptr_t) 4, + XLAT_KNOWN(0x3, "EV_ABS"), XLAT_KNOWN(0x4, "EV_MSC"), + XLAT_KNOWN(0x11, "EV_LED"), NULL }; /* set zero bit */ - unsigned long ev_zero[] = { 0x0 }; - const char *ev_zero_str[] = { "0", " 0 " }; + static const unsigned long ev_zero[NUM_WORDS] = { 0x0 }; + static const char * const ev_zero_str[] = { + (char *) (uintptr_t) 1, + " 0 ", NULL }; /* KEY_MAX is 0x2ff which is greater than retval * 8 */ - unsigned long key[] = { 1 << KEY_1 | 1 << KEY_2, 0 }; - const char *key_str[] = { "2", "KEY_1", "KEY_2" }; + static const unsigned long key[NUM_WORDS] = { + 1 << KEY_1 | 1 << KEY_2, + [ KEY_F12 / ULONG_BIT ] = 1 << (KEY_F12 % ULONG_BIT) }; + + static const char * const key_str_8[] = { + (char *) (uintptr_t) (NUM_WORDS * sizeof(long)), + XLAT_KNOWN(0x2, "KEY_1"), XLAT_KNOWN(0x3, "KEY_2"), NULL }; + static const char * const key_str_16[] = { + (char *) (uintptr_t) (NUM_WORDS * sizeof(long)), + XLAT_KNOWN(0x2, "KEY_1"), XLAT_KNOWN(0x3, "KEY_2"), + XLAT_KNOWN(0x58, "KEY_F12"), NULL }; + + assert(sizeof(ev_more) >= (unsigned long) inject_retval); + assert(sizeof(ev_less) >= (unsigned long) inject_retval); + assert(sizeof(ev_zero) >= (unsigned long) inject_retval); + assert(sizeof(key) >= (unsigned long) inject_retval); struct { struct evdev_check check; - void *ptr; + const void *ptr; } a[] = { { { ARG_STR(EVIOCGID), id, print_input_id }, NULL }, - { { ARG_STR(EVIOCGABS(ABS_X)), absinfo, print_input_absinfo }, NULL }, - { { ARG_STR(EVIOCGABS(ABS_Y)), absinfo, print_input_absinfo }, NULL }, - { { ARG_STR(EVIOCGABS(ABS_Y)), absinfo, print_input_absinfo }, NULL }, - { { ARG_STR(EVIOCGBIT(0, 0)), ev_more, print_getbit }, &ev_more_str }, - { { ARG_STR(EVIOCGBIT(0, 0)), ev_less, print_getbit }, &ev_less_str }, + { { _IOC(_IOC_READ, 'E', 0x40 + ABS_Y, 19), "EVIOCGABS(ABS_Y)", + absinfo, NULL }, NULL }, + { { _IOC(_IOC_READ, 'E', 0x40 + ABS_Y, 20), + "EVIOCGABS(ABS_Y)", absinfo, print_input_absinfo }, + (const void *) (uintptr_t) 20 }, + { { _IOC(_IOC_READ, 'E', 0x40 + ABS_Y, 21), + "EVIOCGABS(ABS_Y)", absinfo_24, print_input_absinfo }, + (const void *) (uintptr_t) 21 }, + { { _IOC(_IOC_READ, 'E', 0x40 + ABS_Y, 24), + "EVIOCGABS(ABS_Y)", absinfo_24, print_input_absinfo }, + (const void *) (uintptr_t) 24 }, + { { _IOC(_IOC_READ, 'E', 0x40 + ABS_Y, 32), + "EVIOCGABS(ABS_Y)", absinfo_32, print_input_absinfo }, + (const void *) (uintptr_t) 32 }, + { { ARG_STR(EVIOCGABS(ABS_X)), absinfo, print_input_absinfo }, + absinfo_sz}, + { { ARG_STR(EVIOCGABS(ABS_Y)), absinfo, print_input_absinfo }, + absinfo_sz }, + { { ARG_STR(EVIOCGABS(ABS_Y)), absinfo, print_input_absinfo }, + absinfo_sz }, + { { ARG_STR(EVIOCGBIT(0, 0)), ev_more, print_getbit }, + inject_retval * 8 <= EV_LED + ? (const void *) &ev_more_str_2 + : (const void *) &ev_more_str_3 }, + { { ARG_STR(EVIOCGBIT(0, 0)), ev_less, print_getbit }, + inject_retval * 8 <= EV_LED + ? (const void *) &ev_less_str_2 + : (const void *) &ev_less_str_3 }, { { ARG_STR(EVIOCGBIT(0, 0)), ev_zero, print_getbit }, &ev_zero_str }, - { { ARG_STR(EVIOCGBIT(EV_KEY, 0)), key, print_getbit }, &key_str}, + { { ARG_STR(EVIOCGBIT(EV_KEY, 0)), key, print_getbit }, + inject_retval * 8 <= KEY_F12 + ? (const void *) &key_str_8 + : (const void *) &key_str_16 }, # ifdef EVIOCGMTSLOTS { { ARG_STR(EVIOCGMTSLOTS(12)), mtslots, print_mtslots }, &mtslots_str }, { { ARG_STR(EVIOCGMTSLOTS(8)), invalid_mtslot, print_mtslots }, &invalid_mtslot_str } diff --git a/tests-m32/ioctl_evdev-success.test b/tests-m32/ioctl_evdev-success.test index 54b0a20a..0a7489d3 100755 --- a/tests-m32/ioctl_evdev-success.test +++ b/tests-m32/ioctl_evdev-success.test @@ -1,6 +1,6 @@ #!/bin/sh -efu # -# Copyright (c) 2018 The strace developers. +# Copyright (c) 2018-2019 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -8,11 +8,15 @@ . "${srcdir=.}/scno_tampering.sh" : ${IOCTL_INJECT_START=256} -: ${IOCTL_INJECT_RETVAL=8} run_prog -run_strace -a16 -e trace=ioctl \ - -e inject=ioctl:retval="${IOCTL_INJECT_RETVAL}":when="${IOCTL_INJECT_START}+" \ - ../ioctl_evdev-success "${IOCTL_INJECT_START}" "${IOCTL_INJECT_RETVAL}"> "$EXP" -grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT" -match_diff "$OUT" "$EXP" +prog="$args" + +for ret in 0 2 8 15 16; do + run_strace -a26 "$@" -e trace=ioctl \ + -e inject=ioctl:retval="${ret}":when="${IOCTL_INJECT_START}+" \ + "$prog" \ + "${IOCTL_INJECT_START}" "${ret}"> "$EXP.${ret}" + grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT.$ret" + match_diff "$OUT.$ret" "$EXP.$ret" +done diff --git a/tests-m32/ioctl_evdev-v-Xabbrev.c b/tests-m32/ioctl_evdev-v-Xabbrev.c new file mode 100644 index 00000000..b2ed15cb --- /dev/null +++ b/tests-m32/ioctl_evdev-v-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_evdev-v.c" diff --git a/tests-m32/ioctl_evdev-v-Xabbrev.gen.test b/tests-m32/ioctl_evdev-v-Xabbrev.gen.test new file mode 100755 index 00000000..f6efb73b --- /dev/null +++ b/tests-m32/ioctl_evdev-v-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-v-Xabbrev +ioctl.test -a26 -v -Xabbrev); do not edit. +set -- -a26 -v -Xabbrev +. "${srcdir=.}/ioctl.test" diff --git a/tests-m32/ioctl_evdev-v-Xraw.c b/tests-m32/ioctl_evdev-v-Xraw.c new file mode 100644 index 00000000..c6f4e535 --- /dev/null +++ b/tests-m32/ioctl_evdev-v-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_evdev-v.c" diff --git a/tests-m32/ioctl_evdev-v-Xraw.gen.test b/tests-m32/ioctl_evdev-v-Xraw.gen.test new file mode 100755 index 00000000..d4460685 --- /dev/null +++ b/tests-m32/ioctl_evdev-v-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-v-Xraw +ioctl.test -a28 -v -Xraw); do not edit. +set -- -a28 -v -Xraw +. "${srcdir=.}/ioctl.test" diff --git a/tests-m32/ioctl_evdev-v-Xverbose.c b/tests-m32/ioctl_evdev-v-Xverbose.c new file mode 100644 index 00000000..f9112774 --- /dev/null +++ b/tests-m32/ioctl_evdev-v-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_evdev-v.c" diff --git a/tests-m32/ioctl_evdev-v-Xverbose.gen.test b/tests-m32/ioctl_evdev-v-Xverbose.gen.test new file mode 100755 index 00000000..7f9c2984 --- /dev/null +++ b/tests-m32/ioctl_evdev-v-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-v-Xverbose +ioctl.test -a41 -v -Xverbose); do not edit. +set -- -a41 -v -Xverbose +. "${srcdir=.}/ioctl.test" diff --git a/tests-m32/ioctl_evdev-v.gen.test b/tests-m32/ioctl_evdev-v.gen.test index bf74ef4c..3b012fb9 100755 --- a/tests-m32/ioctl_evdev-v.gen.test +++ b/tests-m32/ioctl_evdev-v.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-v +ioctl.test -v); do not edit. -set -- -v +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-v +ioctl.test -a26 -v); do not edit. +set -- -a26 -v . "${srcdir=.}/ioctl.test" diff --git a/tests-m32/ioctl_evdev.c b/tests-m32/ioctl_evdev.c index 02be472c..e97b5498 100644 --- a/tests-m32/ioctl_evdev.c +++ b/tests-m32/ioctl_evdev.c @@ -2,7 +2,7 @@ * This file is part of ioctl_evdev strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -26,6 +26,12 @@ # define ABS_MT_TOOL_Y 0x3d # endif +# if XLAT_VERBOSE +# define UNK_CMD(val_, str_) val_ +# else +# define UNK_CMD(val_, str_) val_ " /* " str_ " */" +# endif + static const unsigned int magic = 0xdeadbeef; static const unsigned long lmagic = (unsigned long) 0xdeadbeefbadc0dedULL; @@ -43,9 +49,11 @@ print_envelope(const struct ff_envelope *const e) static void print_ffe_common(const struct ff_effect *const ffe, const char *const type_str) { - printf("ioctl(-1, EVIOCSFF, {type=%s, id=%" PRIu16 + printf("ioctl(-1, %s", XLAT_STR(EVIOCSFF)); + printf(", {type=%s, id=%" PRId16 ", direction=%" PRIu16 ", ", - type_str, ffe->id, ffe->direction); + sprintxlat(type_str, ffe->type, NULL), + ffe->id, ffe->direction); # if VERBOSE printf("trigger={button=%hu, interval=%hu}" ", replay={length=%hu, delay=%hu}", @@ -54,10 +62,11 @@ print_ffe_common(const struct ff_effect *const ffe, const char *const type_str) # endif /* VERBOSE */ } -# define TEST_NULL_ARG_EX(cmd, str) \ +# define TEST_NULL_ARG_EX(cmd, str) \ do { \ ioctl(-1, cmd, 0); \ - printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", str); \ + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", \ + sprintxlat(str, cmd, NULL)); \ } while (0) # define TEST_NULL_ARG(cmd) TEST_NULL_ARG_EX(cmd, #cmd) @@ -107,17 +116,23 @@ main(void) TEST_NULL_ARG(EVIOCGABS(ABS_X)); TEST_NULL_ARG(EVIOCSABS(ABS_X)); - TEST_NULL_ARG_EX(EVIOCGABS(0xe), "EVIOCGABS(0xe /* ABS_??? */)"); - TEST_NULL_ARG_EX(EVIOCSABS(0xe), "EVIOCSABS(0xe /* ABS_??? */)"); + TEST_NULL_ARG_EX(EVIOCGABS(0xe), + "EVIOCGABS(" UNK_CMD("0xe", "ABS_???") ")"); + TEST_NULL_ARG_EX(EVIOCSABS(0xe), + "EVIOCSABS(" UNK_CMD("0xe", "ABS_???") ")"); TEST_NULL_ARG(EVIOCGABS(ABS_MT_TOOL_Y)); TEST_NULL_ARG(EVIOCSABS(ABS_MT_TOOL_Y)); - TEST_NULL_ARG_EX(EVIOCGABS(0x3e), "EVIOCGABS(0x3e /* ABS_??? */)"); - TEST_NULL_ARG_EX(EVIOCSABS(0x3e), "EVIOCSABS(0x3e /* ABS_??? */)"); + TEST_NULL_ARG_EX(EVIOCGABS(0x3e), + "EVIOCGABS(" UNK_CMD("0x3e", "ABS_???") ")"); + TEST_NULL_ARG_EX(EVIOCSABS(0x3e), + "EVIOCSABS(" UNK_CMD("0x3e", "ABS_???") ")"); - TEST_NULL_ARG_EX(EVIOCGABS(0x3f), "EVIOCGABS(0x3f /* ABS_??? */)"); - TEST_NULL_ARG_EX(EVIOCSABS(0x3f), "EVIOCSABS(0x3f /* ABS_??? */)"); + TEST_NULL_ARG_EX(EVIOCGABS(0x3f), + "EVIOCGABS(" UNK_CMD("0x3f", "ABS_???") ")"); + TEST_NULL_ARG_EX(EVIOCSABS(0x3f), + "EVIOCSABS(" UNK_CMD("0x3f", "ABS_???") ")"); TEST_NULL_ARG(EVIOCGBIT(0, 0)); TEST_NULL_ARG(EVIOCGBIT(EV_KEY, 1)); @@ -132,25 +147,36 @@ main(void) TEST_NULL_ARG(EVIOCGBIT(EV_PWR, 10)); TEST_NULL_ARG(EVIOCGBIT(EV_FF_STATUS, 11)); - TEST_NULL_ARG_EX(EVIOCGBIT(0x6, 12), "EVIOCGBIT(0x6 /* EV_??? */, 12)"); + TEST_NULL_ARG_EX(EVIOCGBIT(0x6, 12), + "EVIOCGBIT(" UNK_CMD("0x6", "EV_???") ", 12)"); TEST_NULL_ARG_EX(EVIOCGBIT(0x18, 13), - "EVIOCGBIT(0x18 /* EV_??? */, 13)"); + "EVIOCGBIT(" UNK_CMD("0x18", "EV_???") ", 13)"); TEST_NULL_ARG_EX(EVIOCGBIT(0x1f, 14), - "EVIOCGBIT(0x1f /* EV_??? */, 14)"); + "EVIOCGBIT(" UNK_CMD("0x1f", "EV_???") ", 14)"); ioctl(-1, EVIOCGBIT(EV_MAX, 42), 0); - printf("ioctl(-1, EVIOCGBIT(%#x /* EV_??? */, 42), NULL)" - " = -1 EBADF (%m)\n", EV_MAX); + printf("ioctl(-1, "); +# if XLAT_RAW + printf("%#x", EVIOCGBIT(EV_MAX, 42)); +# elif XLAT_VERBOSE + printf("%#x /* EVIOCGBIT(%#x, 42) */", EVIOCGBIT(EV_MAX, 42), EV_MAX); +# else + printf("EVIOCGBIT(%#x /* EV_??? */, 42)", EV_MAX); +# endif + printf(", NULL) = -1 EBADF (%m)\n"); ioctl(-1, EVIOCRMFF, lmagic); - printf("ioctl(-1, EVIOCRMFF, %d) = -1 EBADF (%m)\n", (int) lmagic); + printf("ioctl(-1, %s, %d) = -1 EBADF (%m)\n", + XLAT_STR(EVIOCRMFF), (int) lmagic); ioctl(-1, EVIOCGRAB, lmagic); - printf("ioctl(-1, EVIOCGRAB, %lu) = -1 EBADF (%m)\n", lmagic); + printf("ioctl(-1, %s, %lu) = -1 EBADF (%m)\n", + XLAT_STR(EVIOCGRAB), lmagic); # ifdef EVIOCREVOKE ioctl(-1, EVIOCREVOKE, lmagic); - printf("ioctl(-1, EVIOCREVOKE, %lu) = -1 EBADF (%m)\n", lmagic); + printf("ioctl(-1, %s, %lu) = -1 EBADF (%m)\n", + XLAT_STR(EVIOCREVOKE), lmagic); # endif const unsigned int size = get_page_size(); @@ -162,7 +188,8 @@ main(void) # ifdef EVIOCSCLOCKID ioctl(-1, EVIOCSCLOCKID, val_int); - printf("ioctl(-1, EVIOCSCLOCKID, [%u]) = -1 EBADF (%m)\n", *val_int); + printf("ioctl(-1, %s, [%u]) = -1 EBADF (%m)\n", + XLAT_STR(EVIOCSCLOCKID), *val_int); # endif int *pair_int = tail_alloc(sizeof(*pair_int) * 2); @@ -171,14 +198,15 @@ main(void) # ifdef EVIOSGREP ioctl(-1, EVIOCSREP, pair_int); - printf("ioctl(-1, EVIOCSREP, [%u, %u]) = -1 EBADF (%m)\n", - pair_int[0], pair_int[1]); + printf("ioctl(-1, %s, [%u, %u]) = -1 EBADF (%m)\n", + XLAT_STR(EVIOCSREP), pair_int[0], pair_int[1]); # endif pair_int[1] = 1; ioctl(-1, EVIOCSKEYCODE, pair_int); - printf("ioctl(-1, EVIOCSKEYCODE, [%u, %s]) = -1 EBADF (%m)\n", - pair_int[0], "KEY_ESC"); + printf("ioctl(-1, %s, [%u, %s]) = -1 EBADF (%m)\n", + XLAT_STR(EVIOCSKEYCODE), pair_int[0], + XLAT_KNOWN(0x1, "KEY_ESC")); # ifdef EVIOCSKEYCODE_V2 TAIL_ALLOC_OBJECT_CONST_PTR(struct input_keymap_entry, ike); @@ -186,16 +214,16 @@ main(void) ike->keycode = 2; ioctl(-1, EVIOCSKEYCODE_V2, ike); - printf("ioctl(-1, EVIOCSKEYCODE_V2, {flags=%" PRIu8 - ", len=%" PRIu8 ", ", ike->flags, ike->len); + printf("ioctl(-1, %s, {flags=%" PRIu8 ", len=%" PRIu8 ", ", + XLAT_STR(EVIOCSKEYCODE_V2), ike->flags, ike->len); # if VERBOSE printf("index=%" PRIu16 ", keycode=%s, scancode=[", - ike->index, "KEY_1"); + ike->index, XLAT_STR(KEY_1)); unsigned int i; for (i = 0; i < ARRAY_SIZE(ike->scancode); ++i) { if (i > 0) printf(", "); - printf("%" PRIx8, ike->scancode[i]); + printf("%#" PRIx8, ike->scancode[i]); } printf("]"); # else @@ -256,26 +284,37 @@ main(void) ffe->type = 0xff; ioctl(-1, EVIOCSFF, ffe); - print_ffe_common(ffe, "0xff /* FF_??? */"); + print_ffe_common(ffe, +# if !XLAT_RAW && !XLAT_VERBOSE + "0xff" +# endif +# if !XLAT_VERBOSE + " /* " +# endif + "FF_???" +# if !XLAT_VERBOSE + " */" +# endif + ); errno = EBADF; printf("}) = -1 EBADF (%m)\n"); # endif ioctl(-1, _IOC(_IOC_READ, 0x45, 0x1, 0xff), lmagic); printf("ioctl(-1, %s, %#lx) = -1 EBADF (%m)\n", - "_IOC(_IOC_READ, 0x45, 0x1, 0xff)", lmagic); + XLAT_STR(_IOC(_IOC_READ, 0x45, 0x1, 0xff)), lmagic); ioctl(-1, _IOC(_IOC_WRITE, 0x45, 0x1, 0xff), lmagic); printf("ioctl(-1, %s, %#lx) = -1 EBADF (%m)\n", - "_IOC(_IOC_WRITE, 0x45, 0x1, 0xff)", lmagic); + XLAT_STR(_IOC(_IOC_WRITE, 0x45, 0x1, 0xff)), lmagic); ioctl(-1, _IOC(_IOC_READ|_IOC_WRITE, 0x45, 0xfe, 0xff), lmagic); printf("ioctl(-1, %s, %#lx) = -1 EBADF (%m)\n", - "_IOC(_IOC_READ|_IOC_WRITE, 0x45, 0xfe, 0xff)", lmagic); + XLAT_STR(_IOC(_IOC_READ|_IOC_WRITE, 0x45, 0xfe, 0xff)), lmagic); ioctl(-1, _IOC(_IOC_READ|_IOC_WRITE, 0x45, 0, 0), lmagic); printf("ioctl(-1, %s, %#lx) = -1 EBADF (%m)\n", - "_IOC(_IOC_READ|_IOC_WRITE, 0x45, 0, 0)", lmagic); + XLAT_STR(_IOC(_IOC_READ|_IOC_WRITE, 0x45, 0, 0)), lmagic); puts("+++ exited with 0 +++"); return 0; diff --git a/tests-m32/ioctl_evdev.gen.test b/tests-m32/ioctl_evdev.gen.test index 68a43f7c..4b9ba413 100755 --- a/tests-m32/ioctl_evdev.gen.test +++ b/tests-m32/ioctl_evdev.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev +ioctl.test ); do not edit. -set -- +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev +ioctl.test -a26); do not edit. +set -- -a26 . "${srcdir=.}/ioctl.test" diff --git a/tests-m32/ioctl_hdio-Xabbrev.c b/tests-m32/ioctl_hdio-Xabbrev.c new file mode 100644 index 00000000..aa0af2ac --- /dev/null +++ b/tests-m32/ioctl_hdio-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_hdio.c" diff --git a/tests-m32/ioctl_hdio-Xabbrev.gen.test b/tests-m32/ioctl_hdio-Xabbrev.gen.test new file mode 100755 index 00000000..1ab876b9 --- /dev/null +++ b/tests-m32/ioctl_hdio-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-Xabbrev +ioctl.test -a27 -Xabbrev); do not edit. +set -- -a27 -Xabbrev +. "${srcdir=.}/ioctl.test" diff --git a/tests-m32/ioctl_hdio-Xraw.c b/tests-m32/ioctl_hdio-Xraw.c new file mode 100644 index 00000000..9e169a85 --- /dev/null +++ b/tests-m32/ioctl_hdio-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_hdio.c" diff --git a/tests-m32/ioctl_hdio-Xraw.gen.test b/tests-m32/ioctl_hdio-Xraw.gen.test new file mode 100755 index 00000000..fa03656b --- /dev/null +++ b/tests-m32/ioctl_hdio-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-Xraw +ioctl.test -a20 -Xraw); do not edit. +set -- -a20 -Xraw +. "${srcdir=.}/ioctl.test" diff --git a/tests-m32/ioctl_hdio-Xverbose.c b/tests-m32/ioctl_hdio-Xverbose.c new file mode 100644 index 00000000..29e45e8e --- /dev/null +++ b/tests-m32/ioctl_hdio-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_hdio.c" diff --git a/tests-m32/ioctl_hdio-Xverbose.gen.test b/tests-m32/ioctl_hdio-Xverbose.gen.test new file mode 100755 index 00000000..1dde165f --- /dev/null +++ b/tests-m32/ioctl_hdio-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-Xverbose +ioctl.test -a39 -Xverbose); do not edit. +set -- -a39 -Xverbose +. "${srcdir=.}/ioctl.test" diff --git a/tests-m32/ioctl_hdio-success-Xabbrev.c b/tests-m32/ioctl_hdio-success-Xabbrev.c new file mode 100644 index 00000000..410f1969 --- /dev/null +++ b/tests-m32/ioctl_hdio-success-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_hdio-success.c" diff --git a/tests-m32/ioctl_hdio-success-Xabbrev.gen.test b/tests-m32/ioctl_hdio-success-Xabbrev.gen.test new file mode 100755 index 00000000..fa74b9e7 --- /dev/null +++ b/tests-m32/ioctl_hdio-success-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-success-Xabbrev +ioctl-success.sh -a27 -Xabbrev); do not edit. +set -- -a27 -Xabbrev +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-m32/ioctl_hdio-success-Xraw.c b/tests-m32/ioctl_hdio-success-Xraw.c new file mode 100644 index 00000000..ee63bb8b --- /dev/null +++ b/tests-m32/ioctl_hdio-success-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_hdio-success.c" diff --git a/tests-m32/ioctl_hdio-success-Xraw.gen.test b/tests-m32/ioctl_hdio-success-Xraw.gen.test new file mode 100755 index 00000000..2ac7c9cd --- /dev/null +++ b/tests-m32/ioctl_hdio-success-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-success-Xraw +ioctl-success.sh -a20 -Xraw); do not edit. +set -- -a20 -Xraw +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-m32/ioctl_hdio-success-Xverbose.c b/tests-m32/ioctl_hdio-success-Xverbose.c new file mode 100644 index 00000000..bef62b06 --- /dev/null +++ b/tests-m32/ioctl_hdio-success-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_hdio-success.c" diff --git a/tests-m32/ioctl_hdio-success-Xverbose.gen.test b/tests-m32/ioctl_hdio-success-Xverbose.gen.test new file mode 100755 index 00000000..acbded54 --- /dev/null +++ b/tests-m32/ioctl_hdio-success-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-success-Xverbose +ioctl-success.sh -a39 -Xverbose); do not edit. +set -- -a39 -Xverbose +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-m32/ioctl_hdio-success-v-Xabbrev.c b/tests-m32/ioctl_hdio-success-v-Xabbrev.c new file mode 100644 index 00000000..13745378 --- /dev/null +++ b/tests-m32/ioctl_hdio-success-v-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_hdio-success-v.c" diff --git a/tests-m32/ioctl_hdio-success-v-Xabbrev.gen.test b/tests-m32/ioctl_hdio-success-v-Xabbrev.gen.test new file mode 100755 index 00000000..d6a3ab28 --- /dev/null +++ b/tests-m32/ioctl_hdio-success-v-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-success-v-Xabbrev +ioctl-success.sh -a27 -v -Xabbrev); do not edit. +set -- -a27 -v -Xabbrev +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-m32/ioctl_hdio-success-v-Xraw.c b/tests-m32/ioctl_hdio-success-v-Xraw.c new file mode 100644 index 00000000..c34ad585 --- /dev/null +++ b/tests-m32/ioctl_hdio-success-v-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_hdio-success-v.c" diff --git a/tests-m32/ioctl_hdio-success-v-Xraw.gen.test b/tests-m32/ioctl_hdio-success-v-Xraw.gen.test new file mode 100755 index 00000000..b0d664bd --- /dev/null +++ b/tests-m32/ioctl_hdio-success-v-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-success-v-Xraw +ioctl-success.sh -a20 -v -Xraw); do not edit. +set -- -a20 -v -Xraw +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-m32/ioctl_hdio-success-v-Xverbose.c b/tests-m32/ioctl_hdio-success-v-Xverbose.c new file mode 100644 index 00000000..4f44b496 --- /dev/null +++ b/tests-m32/ioctl_hdio-success-v-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_hdio-success-v.c" diff --git a/tests-m32/ioctl_hdio-success-v-Xverbose.gen.test b/tests-m32/ioctl_hdio-success-v-Xverbose.gen.test new file mode 100755 index 00000000..72e9f62d --- /dev/null +++ b/tests-m32/ioctl_hdio-success-v-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-success-v-Xverbose +ioctl-success.sh -a39 -v -Xverbose); do not edit. +set -- -a39 -v -Xverbose +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-m32/ioctl_hdio-success-v.c b/tests-m32/ioctl_hdio-success-v.c new file mode 100644 index 00000000..f48ca935 --- /dev/null +++ b/tests-m32/ioctl_hdio-success-v.c @@ -0,0 +1,2 @@ +#define VERBOSE 1 +#include "ioctl_hdio-success.c" diff --git a/tests-m32/ioctl_hdio-success-v.gen.test b/tests-m32/ioctl_hdio-success-v.gen.test new file mode 100755 index 00000000..a4b6c0fe --- /dev/null +++ b/tests-m32/ioctl_hdio-success-v.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-success-v +ioctl-success.sh -a27 -v); do not edit. +set -- -a27 -v +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-m32/ioctl_hdio-success.c b/tests-m32/ioctl_hdio-success.c new file mode 100644 index 00000000..680d7033 --- /dev/null +++ b/tests-m32/ioctl_hdio-success.c @@ -0,0 +1,2 @@ +#define INJECT_RETVAL 42 +#include "ioctl_hdio.c" diff --git a/tests-m32/ioctl_hdio-success.gen.test b/tests-m32/ioctl_hdio-success.gen.test new file mode 100755 index 00000000..ec9318ad --- /dev/null +++ b/tests-m32/ioctl_hdio-success.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-success +ioctl-success.sh -a27); do not edit. +set -- -a27 +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-m32/ioctl_hdio-v-Xabbrev.c b/tests-m32/ioctl_hdio-v-Xabbrev.c new file mode 100644 index 00000000..86aca7d6 --- /dev/null +++ b/tests-m32/ioctl_hdio-v-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_hdio-v.c" diff --git a/tests-m32/ioctl_hdio-v-Xabbrev.gen.test b/tests-m32/ioctl_hdio-v-Xabbrev.gen.test new file mode 100755 index 00000000..92df94d8 --- /dev/null +++ b/tests-m32/ioctl_hdio-v-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-v-Xabbrev +ioctl.test -a27 -v -Xabbrev); do not edit. +set -- -a27 -v -Xabbrev +. "${srcdir=.}/ioctl.test" diff --git a/tests-m32/ioctl_hdio-v-Xraw.c b/tests-m32/ioctl_hdio-v-Xraw.c new file mode 100644 index 00000000..e55841aa --- /dev/null +++ b/tests-m32/ioctl_hdio-v-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_hdio-v.c" diff --git a/tests-m32/ioctl_hdio-v-Xraw.gen.test b/tests-m32/ioctl_hdio-v-Xraw.gen.test new file mode 100755 index 00000000..a7e81ca1 --- /dev/null +++ b/tests-m32/ioctl_hdio-v-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-v-Xraw +ioctl.test -a20 -v -Xraw); do not edit. +set -- -a20 -v -Xraw +. "${srcdir=.}/ioctl.test" diff --git a/tests-m32/ioctl_hdio-v-Xverbose.c b/tests-m32/ioctl_hdio-v-Xverbose.c new file mode 100644 index 00000000..00b524eb --- /dev/null +++ b/tests-m32/ioctl_hdio-v-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_hdio-v.c" diff --git a/tests-m32/ioctl_hdio-v-Xverbose.gen.test b/tests-m32/ioctl_hdio-v-Xverbose.gen.test new file mode 100755 index 00000000..eba5488c --- /dev/null +++ b/tests-m32/ioctl_hdio-v-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-v-Xverbose +ioctl.test -a39 -v -Xverbose); do not edit. +set -- -a39 -v -Xverbose +. "${srcdir=.}/ioctl.test" diff --git a/tests-m32/ioctl_hdio-v.c b/tests-m32/ioctl_hdio-v.c new file mode 100644 index 00000000..fcff6702 --- /dev/null +++ b/tests-m32/ioctl_hdio-v.c @@ -0,0 +1,2 @@ +#define VERBOSE 1 +#include "ioctl_hdio.c" diff --git a/tests-m32/ioctl_hdio-v.gen.test b/tests-m32/ioctl_hdio-v.gen.test new file mode 100755 index 00000000..7d1adc3d --- /dev/null +++ b/tests-m32/ioctl_hdio-v.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-v +ioctl.test -a27 -v); do not edit. +set -- -a27 -v +. "${srcdir=.}/ioctl.test" diff --git a/tests-m32/ioctl_hdio.c b/tests-m32/ioctl_hdio.c new file mode 100644 index 00000000..d340782c --- /dev/null +++ b/tests-m32/ioctl_hdio.c @@ -0,0 +1,227 @@ +/* + * Check HDIO_* ioctl decoding. + * + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#include +#include +#include +#include +#include + +static const char *errstr; + +static long +do_ioctl(kernel_ulong_t cmd, kernel_ulong_t arg) +{ + long rc = ioctl(-1, cmd, arg); + + errstr = sprintrc(rc); + +#ifdef INJECT_RETVAL + if (rc != INJECT_RETVAL) + error_msg_and_fail("Got a return value of %ld != %ld", + rc, (long) INJECT_RETVAL); + + static char inj_errstr[4096]; + + snprintf(inj_errstr, sizeof(inj_errstr), "%s (INJECTED)", errstr); + errstr = inj_errstr; +#endif + + return rc; +} + +static inline long +do_ioctl_ptr(kernel_ulong_t cmd, const void *arg) +{ + return do_ioctl(cmd, (uintptr_t) arg); +} + +int +main(int argc, char *argv[]) +{ +#ifdef INJECT_RETVAL + unsigned long num_skip; + bool locked = false; + + if (argc < 2) + error_msg_and_fail("Usage: %s NUM_SKIP", argv[0]); + + num_skip = strtoul(argv[1], NULL, 0); + + for (size_t i = 0; i < num_skip; i++) { + long ret = ioctl(-1, HDIO_GET_UNMASKINTR, 0); + + printf("ioctl(-1, %s, 0) = %s%s\n", + XLAT_STR(HDIO_GET_UNMASKINTR), sprintrc(ret), + ret == INJECT_RETVAL ? " (INJECTED)" : ""); + + if (ret != INJECT_RETVAL) + continue; + + locked = true; + break; + } + + if (!locked) + error_msg_and_fail("Hasn't locked on ioctl(-1" + ", HDIO_GET_UNMASKINTR, 0) returning %d", + INJECT_RETVAL); +#endif + + long rc; + + /* Decoding is not supported */ + static const struct { + uint32_t cmd; + const char *str; + } unsupp_cmds[] = { + { ARG_STR(HDIO_GET_UNMASKINTR) }, + { ARG_STR(HDIO_GET_MULTCOUNT) }, + { ARG_STR(HDIO_GET_QDMA) }, + { ARG_STR(HDIO_SET_XFER) }, + { ARG_STR(HDIO_OBSOLETE_IDENTITY) }, + { ARG_STR(HDIO_GET_KEEPSETTINGS) }, + { ARG_STR(HDIO_GET_32BIT) }, + { ARG_STR(HDIO_GET_NOWERR) }, + { ARG_STR(HDIO_GET_DMA) }, + { ARG_STR(HDIO_GET_NICE) }, + { ARG_STR(HDIO_GET_IDENTITY) }, + { ARG_STR(HDIO_GET_WCACHE) }, + { ARG_STR(HDIO_GET_ACOUSTIC) }, + { ARG_STR(HDIO_GET_ADDRESS) }, + { ARG_STR(HDIO_GET_BUSSTATE) }, + { ARG_STR(HDIO_TRISTATE_HWIF) }, + { ARG_STR(HDIO_DRIVE_RESET) }, + { ARG_STR(HDIO_DRIVE_TASKFILE) }, + { ARG_STR(HDIO_DRIVE_TASK) }, + { ARG_STR(HDIO_SET_MULTCOUNT) }, + { ARG_STR(HDIO_SET_UNMASKINTR) }, + { ARG_STR(HDIO_SET_KEEPSETTINGS) }, + { ARG_STR(HDIO_SET_32BIT) }, + { ARG_STR(HDIO_SET_NOWERR) }, + { ARG_STR(HDIO_SET_DMA) }, + { ARG_STR(HDIO_SET_PIO_MODE) }, + { ARG_STR(HDIO_SCAN_HWIF) }, + { ARG_STR(HDIO_UNREGISTER_HWIF) }, + { ARG_STR(HDIO_SET_NICE) }, + { ARG_STR(HDIO_SET_WCACHE) }, + { ARG_STR(HDIO_SET_ACOUSTIC) }, + { ARG_STR(HDIO_SET_BUSSTATE) }, + { ARG_STR(HDIO_SET_QDMA) }, + { ARG_STR(HDIO_SET_ADDRESS) }, + }; + + for (size_t i = 0; i < ARRAY_SIZE(unsupp_cmds); i++) { + do_ioctl(unsupp_cmds[i].cmd, 0); + printf("ioctl(-1, " XLAT_FMT ", 0) = %s\n", + XLAT_SEL(unsupp_cmds[i].cmd, unsupp_cmds[i].str), + errstr); + + do_ioctl(unsupp_cmds[i].cmd, + (unsigned long) 0xbadc0deddeadc0deULL); + printf("ioctl(-1, " XLAT_FMT ", %#lx) = %s\n", + XLAT_SEL(unsupp_cmds[i].cmd, unsupp_cmds[i].str), + (unsigned long) 0xbadc0deddeadc0deULL, errstr); + } + + + /* HDIO_GETGEO */ + do_ioctl(HDIO_GETGEO, 0); + printf("ioctl(-1, %s, NULL) = %s\n", + XLAT_STR(HDIO_GETGEO), errstr); + + TAIL_ALLOC_OBJECT_CONST_PTR(struct hd_geometry, p_hd_geom); + + p_hd_geom->heads = 0xca; + p_hd_geom->sectors = 0xfe; + p_hd_geom->cylinders = 0xbabe; + p_hd_geom->start = (unsigned long) 0xbadc0deddeadfaceULL; + + do_ioctl_ptr(HDIO_GETGEO, (char *) p_hd_geom + 1); + printf("ioctl(-1, %s, %p) = %s\n", + XLAT_STR(HDIO_GETGEO), (char *) p_hd_geom + 1, errstr); + + rc = do_ioctl_ptr(HDIO_GETGEO, p_hd_geom); + printf("ioctl(-1, %s, ", XLAT_STR(HDIO_GETGEO)); + if (rc >= 0) { + printf("{heads=202, sectors=254, cylinders=47806, start=%lu}", + (unsigned long) 0xbadc0deddeadfaceULL); + } else { + printf("%p", p_hd_geom); + } + printf(") = %s\n", errstr); + + /* HDIO_DRIVE_CMD */ + do_ioctl(HDIO_DRIVE_CMD, 0); + printf("ioctl(-1, %s, NULL) = %s\n", + XLAT_STR(HDIO_DRIVE_CMD), errstr); + + TAIL_ALLOC_OBJECT_CONST_PTR(struct hd_drive_cmd_hdr, p_hd_drive_cmd); + struct hd_drive_cmd_hdr *p_hd_drive_cmd2 = + tail_alloc(sizeof(*p_hd_drive_cmd2) + 16); + struct hd_drive_cmd_hdr *p_hd_drive_cmd3 = + tail_alloc(sizeof(*p_hd_drive_cmd3) + DEFAULT_STRLEN + 1); + + fill_memory(p_hd_drive_cmd2, sizeof(*p_hd_drive_cmd2) + 16); + fill_memory(p_hd_drive_cmd3, + sizeof(*p_hd_drive_cmd3) + DEFAULT_STRLEN + 1); + + p_hd_drive_cmd->command = 0xca; + p_hd_drive_cmd->sector_number = 0xff; + p_hd_drive_cmd->feature = 0xee; + p_hd_drive_cmd->sector_count = 0; + + do_ioctl_ptr(HDIO_DRIVE_CMD, (char *) p_hd_drive_cmd + 1); + printf("ioctl(-1, %s, %p) = %s\n", + XLAT_STR(HDIO_DRIVE_CMD), (char *) p_hd_drive_cmd + 1, errstr); + + for (size_t i = 0; i < 2; i++) { + p_hd_drive_cmd->sector_count = i; + + rc = do_ioctl_ptr(HDIO_DRIVE_CMD, p_hd_drive_cmd); + printf("ioctl(-1, %s, {command=" XLAT_FMT ", sector_number=255" + ", feature=238, sector_count=%zu", + XLAT_STR(HDIO_DRIVE_CMD), + XLAT_SEL(0xca, "ATA_CMD_WRITE"), i); + if (rc >= 0) { + printf("} => {/* status */ 0xca, /* error */ 255" + ", /* nsector */ 238"); + if (i) + printf(", %p", p_hd_drive_cmd + 1); + } + printf("}) = %s\n", errstr); + } + + rc = do_ioctl_ptr(HDIO_DRIVE_CMD, p_hd_drive_cmd2); + printf("ioctl(-1, %s, {command=0x80" NRAW(" /* ATA_CMD_??? */") + ", sector_number=129, feature=130, sector_count=131", + XLAT_STR(HDIO_DRIVE_CMD)); + if (rc >= 0) { + printf("} => {/* status */ 0x80, /* error */ 129" + ", /* nsector */ 130, %p", p_hd_drive_cmd2 + 1); + } + printf("}) = %s\n", errstr); + + rc = do_ioctl_ptr(HDIO_DRIVE_CMD, p_hd_drive_cmd3); + printf("ioctl(-1, %s, {command=0x80" NRAW(" /* ATA_CMD_??? */") + ", sector_number=129, feature=130, sector_count=131", + XLAT_STR(HDIO_DRIVE_CMD)); + if (rc >= 0) { + printf("} => {/* status */ 0x80, /* error */ 129" + ", /* nsector */ 130, "); + print_quoted_hex(p_hd_drive_cmd3 + 1, DEFAULT_STRLEN); + printf("..."); + } + printf("}) = %s\n", errstr); + + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests-m32/ioctl_hdio.gen.test b/tests-m32/ioctl_hdio.gen.test new file mode 100755 index 00000000..478c717d --- /dev/null +++ b/tests-m32/ioctl_hdio.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio +ioctl.test -a27); do not edit. +set -- -a27 +. "${srcdir=.}/ioctl.test" diff --git a/tests-m32/ioctl_inotify.c b/tests-m32/ioctl_inotify.c index 6be0c0ee..6ca006ae 100644 --- a/tests-m32/ioctl_inotify.c +++ b/tests-m32/ioctl_inotify.c @@ -1,7 +1,7 @@ /* * This file is part of ioctl_inotify strace test. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -13,7 +13,7 @@ #include #include #include -#include +#include "scno.h" #include #ifndef INOTIFY_IOC_SETNEXTWD diff --git a/tests-m32/ioctl_kvm_run_common.c b/tests-m32/ioctl_kvm_run_common.c index 26e72cec..9107c30c 100644 --- a/tests-m32/ioctl_kvm_run_common.c +++ b/tests-m32/ioctl_kvm_run_common.c @@ -4,7 +4,7 @@ * * kvmtest.c author: Josh Triplett * Copyright (c) 2015 Intel Corporation - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to @@ -238,6 +238,10 @@ run_kvm(const int vcpu_fd, struct kvm_run *const run, const size_t mmap_size, run->mmio.data[4], run->mmio.data[5], run->mmio.data[6], run->mmio.data[7], run->mmio.len, run->mmio.is_write); + case KVM_EXIT_FAIL_ENTRY: + error_msg_and_fail("Got an unexpected FAIL_ENTRY exit:" + " hardware_entry_failure_reason %" PRI__x64, + run->fail_entry.hardware_entry_failure_reason); default: error_msg_and_fail("exit_reason = %#x", diff --git a/tests-m32/ioctl_loop.c b/tests-m32/ioctl_loop.c index 53665603..69c2f191 100644 --- a/tests-m32/ioctl_loop.c +++ b/tests-m32/ioctl_loop.c @@ -3,7 +3,7 @@ * * Copyright (c) 2016 JingPiao Chen * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -17,11 +17,17 @@ #include #include #include -#include +#include "scno.h" #include #include #include "print_fields.h" +#ifdef HAVE_STRUCT_LOOP_CONFIG +typedef struct loop_config struct_loop_config; +#else +# include "types/loop.h" +#endif + #define XLAT_MACROS_ONLY #include "xlat/loop_cmds.h" #undef XLAT_MACROS_ONLY @@ -155,6 +161,27 @@ print_loop_info64(struct loop_info64 * const info64, bool print_encrypt, #endif /* !ABBREV */ } +static void +print_loop_config(struct_loop_config *config, bool print_reserved) +{ +#if ABBREV + printf("%p", config); +#else + printf("{fd=%d, block_size=%u, info=", + (int) config->fd, config->block_size); + print_loop_info64(&config->info, false, "LO_CRYPT_NONE", NULL, + "LO_FLAGS_READ_ONLY"); + if (print_reserved) { + printf(", __reserved="); + for (size_t i = 0; i < ARRAY_SIZE(config->__reserved); ++i) + printf("%s%#llx", (i ? ", " : "["), + (unsigned long long) config->__reserved[i]); + printf("]"); + } + printf("}"); +#endif /* !ABBREV */ +} + int main(void) { @@ -167,6 +194,7 @@ main(void) TAIL_ALLOC_OBJECT_CONST_PTR(struct loop_info, info); TAIL_ALLOC_OBJECT_CONST_PTR(struct loop_info64, info64); + TAIL_ALLOC_OBJECT_CONST_PTR(struct_loop_config, config); /* Unknown loop commands */ sys_ioctl(-1, unknown_loop_cmd, magic); @@ -178,12 +206,12 @@ main(void) _IOC_SIZE((unsigned int) unknown_loop_cmd), (unsigned long) magic); - sys_ioctl(-1, LOOP_SET_BLOCK_SIZE + 1, magic); + sys_ioctl(-1, LOOP_CONFIGURE + 1, magic); printf("ioctl(-1, _IOC(%s, 0x4c, %#x, %#x), %#lx) = " "-1 EBADF (%m)\n", _IOC_NONE ? "0" : "_IOC_NONE", - _IOC_NR(LOOP_SET_BLOCK_SIZE + 1), - _IOC_SIZE(LOOP_SET_BLOCK_SIZE + 1), + _IOC_NR(LOOP_CONFIGURE + 1), + _IOC_SIZE(LOOP_CONFIGURE + 1), (unsigned long) magic); sys_ioctl(-1, LOOP_CTL_GET_FREE + 1, magic); @@ -281,6 +309,32 @@ main(void) ioctl(-1, LOOP_GET_STATUS64, (unsigned long) info64 | kernel_mask); printf("ioctl(-1, LOOP_GET_STATUS64, %p) = -1 EBADF (%m)\n", info64); + /* LOOP_CONFIGURE */ + ioctl(-1, LOOP_CONFIGURE, NULL); + printf("ioctl(-1, LOOP_CONFIGURE, NULL) = -1 EBADF (%m)\n"); + + fill_memory(config, sizeof(*config)); + config->info.lo_flags = LO_FLAGS_READ_ONLY; + config->info.lo_encrypt_type = LO_CRYPT_NONE; + memset(config->info.lo_file_name, 'C', sizeof(config->info.lo_file_name)); + memset(config->info.lo_crypt_name, 'D', sizeof(config->info.lo_crypt_name)); + memset(config->info.lo_encrypt_key, 'E', sizeof(config->info.lo_encrypt_key)); + + ioctl(-1, LOOP_CONFIGURE, (void *) config + ALIGNOF(config)); + printf("ioctl(-1, LOOP_CONFIGURE, %p) = -1 EBADF (%m)\n", + (void *) config + ALIGNOF(config)); + + printf("ioctl(-1, LOOP_CONFIGURE, "); + print_loop_config(config, true); + ioctl(-1, LOOP_CONFIGURE, config); + printf(") = -1 EBADF (%m)\n"); + + memset(config->__reserved, 0, sizeof(config->__reserved)); + printf("ioctl(-1, LOOP_CONFIGURE, "); + print_loop_config(config, false); + ioctl(-1, LOOP_CONFIGURE, config); + printf(") = -1 EBADF (%m)\n"); + /* LOOP_CHANGE_FD */ sys_ioctl(-1, LOOP_CHANGE_FD, magic); printf("ioctl(-1, LOOP_CHANGE_FD, %d) = -1 EBADF (%m)\n", diff --git a/tests-m32/ioctl_nsfs.c b/tests-m32/ioctl_nsfs.c index 74dbe6e9..0af05aaf 100644 --- a/tests-m32/ioctl_nsfs.c +++ b/tests-m32/ioctl_nsfs.c @@ -2,7 +2,7 @@ * Check decoding of NS_* commands of ioctl syscall. * * Copyright (c) 2017 Nikolay Marchuk - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -86,22 +86,27 @@ child(void *arg) #ifdef IA64 extern int __clone2(int (*)(void *), void *, size_t, int, void *, ...); -# define clone(fn, child_stack, flags, arg) \ - __clone2(fn, child_stack, get_page_size() / 2, flags, arg) +# define do_clone(fn_, stack_, size_, flags_, arg_, ...) \ + __clone2((fn_), (stack_), (size_), (flags_), (arg_), ## __VA_ARGS__) +#else +# define do_clone(fn_, stack_, size_, flags_, arg_, ...) \ + clone((fn_), (stack_), (flags_), (arg_), ## __VA_ARGS__) #endif static void test_user_namespace(void) { - pid_t pid; int pipefd[2]; - int status; - if (pipe(pipefd)) perror_msg_and_fail("pipe"); - pid = clone(child, tail_alloc(get_page_size() / 2), - CLONE_NEWUSER | CLONE_UNTRACED | SIGCHLD, pipefd); + const unsigned long child_stack_size = get_page_size(); + void *const child_stack = + tail_alloc(child_stack_size * 2) + child_stack_size; + + const pid_t pid = do_clone(child, child_stack, child_stack_size, + CLONE_NEWUSER | CLONE_UNTRACED | SIGCHLD, + pipefd); if (pid == -1) { perror("clone"); return; @@ -109,6 +114,8 @@ test_user_namespace(void) close(pipefd[0]); test_clone(pid); close(pipefd[1]); + + int status; if (wait(&status) != pid) { perror_msg_and_fail("wait"); } else if (status != 0) { diff --git a/tests-m32/ioctl_perf-success.c b/tests-m32/ioctl_perf-success.c index eaf572ac..51419b10 100644 --- a/tests-m32/ioctl_perf-success.c +++ b/tests-m32/ioctl_perf-success.c @@ -1,7 +1,7 @@ /* * Check decoding of successful PERF_EVENT_IOC_{ID,QUERY_BPF} ioctls. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,29 +9,31 @@ #include "tests.h" -#ifdef HAVE_LINUX_PERF_EVENT_H -# include -# include -# include -# include -# include -# include +#include +#include +#include +#include +#include +#include + +#ifdef HAVE_LINUX_PERF_EVENT_H # include +#endif -# ifndef PERF_EVENT_IOC_ID -# define PERF_EVENT_IOC_ID _IOR('$', 7, void *) -# endif +#ifndef PERF_EVENT_IOC_ID +# define PERF_EVENT_IOC_ID _IOR('$', 7, void *) +#endif -# ifndef PERF_EVENT_IOC_QUERY_BPF -# define PERF_EVENT_IOC_QUERY_BPF _IOWR('$', 10, void *) +#ifndef PERF_EVENT_IOC_QUERY_BPF +# define PERF_EVENT_IOC_QUERY_BPF _IOWR('$', 10, void *) struct perf_event_query_bpf { uint32_t ids_len; uint32_t prog_cnt; uint32_t ids[0]; }; -# endif +#endif int main(int argc, char **argv) @@ -137,9 +139,3 @@ main(int argc, char **argv) puts("+++ exited with 0 +++"); return 0; } - -#else - -SKIP_MAIN_UNDEFINED("HAVE_LINUX_PERF_EVENT_H"); - -#endif diff --git a/tests-m32/ioctl_perf-success.gen.test b/tests-m32/ioctl_perf-success.gen.test new file mode 100755 index 00000000..3ff72055 --- /dev/null +++ b/tests-m32/ioctl_perf-success.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_perf-success +ioctl-success.sh -a35); do not edit. +set -- -a35 +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-m32/ioctl_perf-success.test b/tests-m32/ioctl_perf-success.test deleted file mode 100755 index 2edd1d34..00000000 --- a/tests-m32/ioctl_perf-success.test +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh -efu -# -# Check decoding of successful PERF_EVENT_IOC_{ID,QUERY_BPF} ioctls. -# -# Copyright (c) 2018 The strace developers. -# All rights reserved. -# -# SPDX-License-Identifier: GPL-2.0-or-later - -. "${srcdir=.}/scno_tampering.sh" - -: ${IOCTL_INJECT_START=256} -: ${IOCTL_INJECT_RETVAL=42} - -run_prog -run_strace -a35 -e trace=ioctl \ - -e inject=ioctl:retval="${IOCTL_INJECT_RETVAL}":when="${IOCTL_INJECT_START}+" \ - ../ioctl_perf-success "${IOCTL_INJECT_START}" "${IOCTL_INJECT_RETVAL}" > "$EXP" -grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT" -match_diff "$OUT" "$EXP" diff --git a/tests-m32/ioctl_perf.c b/tests-m32/ioctl_perf.c index 30cb35f6..af4f443e 100644 --- a/tests-m32/ioctl_perf.c +++ b/tests-m32/ioctl_perf.c @@ -1,7 +1,7 @@ /* * Check decoding of PERF_EVENT_IOC_* commands of ioctl syscall. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -16,7 +16,7 @@ # include # include # include -# include +# include "scno.h" # include /* diff --git a/tests-m32/ioctl_ptp.c b/tests-m32/ioctl_ptp.c index 52d9698a..ef2bca77 100644 --- a/tests-m32/ioctl_ptp.c +++ b/tests-m32/ioctl_ptp.c @@ -2,7 +2,7 @@ * Check decoding of PTP_* commands of ioctl syscall. * * Copyright (c) 2018 Harsha Sharma - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,7 +12,6 @@ #ifdef HAVE_STRUCT_PTP_SYS_OFFSET -# include # include # include # include @@ -21,12 +20,31 @@ # include # include +# ifndef PTP_CLOCK_GETCAPS2 +# define PTP_CLOCK_GETCAPS2 _IOR(PTP_CLK_MAGIC, 10, struct ptp_clock_caps) +# endif +# ifndef PTP_EXTTS_REQUEST2 +# define PTP_EXTTS_REQUEST2 _IOW(PTP_CLK_MAGIC, 11, struct ptp_extts_request) +# endif +# ifndef PTP_PEROUT_REQUEST2 +# define PTP_PEROUT_REQUEST2 _IOW(PTP_CLK_MAGIC, 12, struct ptp_perout_request) +# endif +# ifndef PTP_ENABLE_PPS2 +# define PTP_ENABLE_PPS2 _IOW(PTP_CLK_MAGIC, 13, int) +# endif +# ifndef PTP_SYS_OFFSET2 +# define PTP_SYS_OFFSET2 _IOW(PTP_CLK_MAGIC, 14, struct ptp_sys_offset) +# endif + # include "xlat.h" -# include "xlat/ptp_flags_options.h" +# include "xlat/ptp_extts_flags.h" +# include "xlat/ptp_perout_flags.h" static void test_no_device(void) { + const char *errstr; + TAIL_ALLOC_OBJECT_CONST_PTR(struct ptp_clock_caps, caps); fill_memory(caps, sizeof(*caps)); @@ -39,60 +57,93 @@ test_no_device(void) TAIL_ALLOC_OBJECT_CONST_PTR(struct ptp_perout_request, perout); fill_memory(perout, sizeof(*perout)); - int saved_errno; - /* PTP_CLOCK_GETCAPS */ - ioctl(-1, PTP_CLOCK_GETCAPS, NULL); - printf("ioctl(-1, PTP_CLOCK_GETCAPS, NULL) = -1 EBADF (%m)\n"); - ioctl(-1, PTP_CLOCK_GETCAPS, caps); - printf("ioctl(-1, PTP_CLOCK_GETCAPS, %p) = -1 EBADF (%m)\n", caps); + errstr = sprintrc(ioctl(-1, PTP_CLOCK_GETCAPS, NULL)); + printf("ioctl(-1, PTP_CLOCK_GETCAPS, NULL) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_CLOCK_GETCAPS, caps)); + printf("ioctl(-1, PTP_CLOCK_GETCAPS, %p) = %s\n", caps, errstr); /* PTP_SYS_OFFSET */ - ioctl(-1, PTP_SYS_OFFSET, NULL); - printf("ioctl(-1, PTP_SYS_OFFSET, NULL) = -1 EBADF (%m)\n"); - ioctl(-1, PTP_SYS_OFFSET, sysoff); - printf("ioctl(-1, PTP_SYS_OFFSET, {n_samples=%u}) = -1 EBADF (%m)\n", - sysoff->n_samples); + errstr = sprintrc(ioctl(-1, PTP_SYS_OFFSET, NULL)); + printf("ioctl(-1, PTP_SYS_OFFSET, NULL) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_SYS_OFFSET, sysoff)); + printf("ioctl(-1, PTP_SYS_OFFSET, {n_samples=%u}) = %s\n", + sysoff->n_samples, errstr); /* PTP_ENABLE_PPS */ - ioctl(-1, PTP_ENABLE_PPS, 0); - printf("ioctl(-1, PTP_ENABLE_PPS, 0) = -1 EBADF (%m)\n"); - ioctl(-1, PTP_ENABLE_PPS, 1); - printf("ioctl(-1, PTP_ENABLE_PPS, 1) = -1 EBADF (%m)\n"); + errstr = sprintrc(ioctl(-1, PTP_ENABLE_PPS, 0)); + printf("ioctl(-1, PTP_ENABLE_PPS, 0) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_ENABLE_PPS, 1)); + printf("ioctl(-1, PTP_ENABLE_PPS, 1) = %s\n", errstr); /* PTP_EXTTS_REQUEST */ - ioctl(-1, PTP_EXTTS_REQUEST, NULL); - printf("ioctl(-1, PTP_EXTTS_REQUEST, NULL) = -1 EBADF (%m)\n"); - ioctl(-1, PTP_EXTTS_REQUEST, extts); - saved_errno = errno; + errstr = sprintrc(ioctl(-1, PTP_EXTTS_REQUEST, NULL)); + printf("ioctl(-1, PTP_EXTTS_REQUEST, NULL) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_EXTTS_REQUEST, extts)); printf("ioctl(-1, PTP_EXTTS_REQUEST, {index=%d, flags=", extts->index); - printflags(ptp_flags_options, extts->flags, "PTP_???"); - errno = saved_errno; - printf("}) = -1 EBADF (%m)\n"); + printflags(ptp_extts_flags, extts->flags, "PTP_???"); + printf("}) = %s\n", errstr); /* PTP_PEROUT_REQUEST */ - ioctl(-1, PTP_PEROUT_REQUEST, NULL); - printf("ioctl(-1, PTP_PEROUT_REQUEST, NULL) = -1 EBADF (%m)\n"); - ioctl(-1, PTP_PEROUT_REQUEST, perout); - saved_errno = errno; + errstr = sprintrc(ioctl(-1, PTP_PEROUT_REQUEST, NULL)); + printf("ioctl(-1, PTP_PEROUT_REQUEST, NULL) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_PEROUT_REQUEST, perout)); printf("ioctl(-1, PTP_PEROUT_REQUEST, {start={sec=%" PRId64 ", nsec=%" PRIu32 "}, period={sec=%" PRId64 ", nsec=%" PRIu32 "}" ", index=%d, flags=", (int64_t) perout->start.sec, perout->start.nsec, (int64_t)perout->period.sec, perout->period.nsec, perout->index); - printflags(ptp_flags_options, perout->flags, "PTP_???"); - errno = saved_errno; - printf("}) = -1 EBADF (%m)\n"); + printflags(ptp_perout_flags, perout->flags, "PTP_???"); + printf("}) = %s\n", errstr); + + /* PTP_CLOCK_GETCAPS2 */ + errstr = sprintrc(ioctl(-1, PTP_CLOCK_GETCAPS2, NULL)); + printf("ioctl(-1, PTP_CLOCK_GETCAPS2, NULL) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_CLOCK_GETCAPS2, caps)); + printf("ioctl(-1, PTP_CLOCK_GETCAPS2, %p) = %s\n", caps, errstr); + + /* PTP_SYS_OFFSET2 */ + errstr = sprintrc(ioctl(-1, PTP_SYS_OFFSET2, NULL)); + printf("ioctl(-1, PTP_SYS_OFFSET2, NULL) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_SYS_OFFSET2, sysoff)); + printf("ioctl(-1, PTP_SYS_OFFSET2, {n_samples=%u}) = %s\n", + sysoff->n_samples, errstr); + + /* PTP_ENABLE_PPS2 */ + errstr = sprintrc(ioctl(-1, PTP_ENABLE_PPS2, 0)); + printf("ioctl(-1, PTP_ENABLE_PPS2, 0) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_ENABLE_PPS2, 1)); + printf("ioctl(-1, PTP_ENABLE_PPS2, 1) = %s\n", errstr); + + /* PTP_EXTTS_REQUEST2 */ + errstr = sprintrc(ioctl(-1, PTP_EXTTS_REQUEST2, NULL)); + printf("ioctl(-1, PTP_EXTTS_REQUEST2, NULL) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_EXTTS_REQUEST2, extts)); + printf("ioctl(-1, PTP_EXTTS_REQUEST2, {index=%d, flags=", extts->index); + printflags(ptp_extts_flags, extts->flags, "PTP_???"); + printf("}) = %s\n", errstr); + + /* PTP_PEROUT_REQUEST2 */ + errstr = sprintrc(ioctl(-1, PTP_PEROUT_REQUEST2, NULL)); + printf("ioctl(-1, PTP_PEROUT_REQUEST2, NULL) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_PEROUT_REQUEST2, perout)); + printf("ioctl(-1, PTP_PEROUT_REQUEST2, {start={sec=%" PRId64 + ", nsec=%" PRIu32 "}, period={sec=%" PRId64 ", nsec=%" PRIu32 "}" + ", index=%d, flags=", + (int64_t) perout->start.sec, perout->start.nsec, + (int64_t)perout->period.sec, perout->period.nsec, perout->index); + printflags(ptp_perout_flags, perout->flags, "PTP_???"); + printf("}) = %s\n", errstr); /* unrecognized */ ioctl(-1, _IOC(_IOC_READ, PTP_CLK_MAGIC, 0xff, 0xfe), 0); - printf("ioctl(-1, _IOC(_IOC_READ, %#x, 0xff, 0xfe), 0)" - " = -1 EBADF (%m)\n", PTP_CLK_MAGIC); + printf("ioctl(-1, _IOC(_IOC_READ, %#x, 0xff, 0xfe), 0) = %s\n", + PTP_CLK_MAGIC, errstr); const unsigned long arg = (unsigned long) 0xfacefeeddeadbeefULL; ioctl(-1, _IOC(_IOC_WRITE, PTP_CLK_MAGIC, 0xfd, 0xfc), arg); printf("ioctl(-1, _IOC(_IOC_WRITE, %#x, 0xfd, 0xfc), %#lx)" - " = -1 EBADF (%m)\n", PTP_CLK_MAGIC, arg); + " = %s\n", PTP_CLK_MAGIC, arg, errstr); } int diff --git a/tests-m32/ioctl_rtc.c b/tests-m32/ioctl_rtc.c index d192e378..19d54f6b 100644 --- a/tests-m32/ioctl_rtc.c +++ b/tests-m32/ioctl_rtc.c @@ -34,7 +34,7 @@ print_rtc_time(const struct rtc_time *rt) #endif } -static struct xlat rtc_argless[] = { +static struct xlat_data rtc_argless[] = { XLAT(RTC_AIE_OFF), XLAT(RTC_PIE_ON), XLAT(RTC_PIE_OFF), diff --git a/tests-m32/ioctl_scsi.c b/tests-m32/ioctl_scsi.c index b6347b62..15eb56a9 100644 --- a/tests-m32/ioctl_scsi.c +++ b/tests-m32/ioctl_scsi.c @@ -2,7 +2,7 @@ * Check decoding of SCSI ioctl commands. * * Copyright (c) 2017 Dmitry V. Levin - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -15,7 +15,9 @@ # include # include # include -# include "xlat/scsi_sg_commands.h" +# define XLAT_MACROS_ONLY +# include "xlat/scsi_sg_commands.h" +# undef XLAT_MACROS_ONLY # define TEST_NO_ARG(cmd) \ do { \ diff --git a/tests-m32/ioctl_sg_io_v4.c b/tests-m32/ioctl_sg_io_v4.c index 59438285..087ae788 100644 --- a/tests-m32/ioctl_sg_io_v4.c +++ b/tests-m32/ioctl_sg_io_v4.c @@ -2,6 +2,7 @@ * Check decoding of ioctl SG_IO v4 commands. * * Copyright (c) 2017-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -16,8 +17,9 @@ # include # include # include - -# include "xlat/scsi_sg_commands.h" +# define XLAT_MACROS_ONLY +# include "xlat/scsi_sg_commands.h" +# undef XLAT_MACROS_ONLY int main(void) diff --git a/tests-m32/ioctl_tee.c b/tests-m32/ioctl_tee.c new file mode 100644 index 00000000..f6c2b3ae --- /dev/null +++ b/tests-m32/ioctl_tee.c @@ -0,0 +1,437 @@ +/* + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#ifdef HAVE_LINUX_TEE_H + +# include +# include +# include + +# include + +# include +# include +# include + +# include "xlat.h" + +# define NUM_PARAMS 8 +# define RVAL_EBADF " = -1 EBADF (%m)\n" + +# define UUID_SIZE 16 + +# ifndef TEE_IOCTL_PARAM_ATTR_META +# define TEE_IOCTL_PARAM_ATTR_META 0x100 +# endif + +# ifndef HAVE_STRUCT_TEE_IOCTL_SHM_REGISTER_FD_DATA +struct tee_ioctl_shm_register_fd_data { + __s64 fd; + __u64 size; + __u32 flags; + __u8 _pad1[4]; + __u32 id; + __u8 _pad2[4]; +} ATTRIBUTE_ALIGNED(8); +# endif + +# ifndef HAVE_STRUCT_TEE_IOCTL_SHM_REGISTER_DATA +struct tee_ioctl_shm_register_data { + __u64 addr; + __u64 length; + __u32 flags; + __s32 id; +}; +# endif + +# ifndef TEE_IOC_SHM_REGISTER_FD +# define TEE_IOC_SHM_REGISTER_FD _IOWR(TEE_IOC_MAGIC, TEE_IOC_BASE + 8, \ + struct tee_ioctl_shm_register_fd_data) +# endif + +# ifndef TEE_IOC_SHM_REGISTER +# define TEE_IOC_SHM_REGISTER _IOWR(TEE_IOC_MAGIC, TEE_IOC_BASE + 9, \ + struct tee_ioctl_shm_register_data) +# endif + + +typedef struct { + uint8_t b[UUID_SIZE]; +} uuid_t; + +# define UUID_INIT(a_, b_, c_, d0, d1, d2, d3, d4, d5, d6, d7) \ +{ .b = {((a_) >> 24) & 0xff, ((a_) >> 16) & 0xff, \ + ((a_) >> 8) & 0xff, (a_) & 0xff, \ + ((b_) >> 8) & 0xff, (b_) & 0xff, \ + ((c_) >> 8) & 0xff, (c_) & 0xff, \ + (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7)} } + +# define CHK_NULL(ioctl_) \ + do { \ + ioctl(-1, ioctl_, NULL); \ + printf("ioctl(-1, " #ioctl_ ", NULL)" RVAL_EBADF); \ + } while (0) + +# define CHK_BUF(ioctl_) \ + do { \ + ioctl(-1, ioctl_, &buf_data); \ + printf("ioctl(-1, " #ioctl_ \ + ", {buf_len=%llu, buf_ptr=%#llx})" RVAL_EBADF, \ + (unsigned long long) buf_data.buf_len, \ + (unsigned long long) buf_data.buf_ptr); \ + } while (0) + +# define DEFINE_BUF_W_PARAMS(type_, shorthand_) \ + const size_t shorthand_ ## _size = sizeof(type_) + \ + NUM_PARAMS * sizeof(struct tee_ioctl_param); \ + union { \ + type_ shorthand_; \ + uint8_t data[shorthand_ ## _size]; \ + } shorthand_ ## _buf + +static const unsigned long one_beef = (unsigned long) 0xcafef00ddeadbeefULL; +static const unsigned long two_beef = (unsigned long) 0xbadc0dedbadc0dedULL; +static const unsigned long red_beef = (unsigned long) 0xdefacedbeef0beefULL; +static const unsigned long blu_beef = (unsigned long) 0xfacefeedcafef00dULL; + +static const uuid_t uuid_beef = UUID_INIT(0xdeadbeef, 0xcafe, 0xc0de, + 0xba, 0xdc, 0x0d, 0xed, + 0xfa, 0xce, 0xfe, 0xed); + +static void +fill_params(struct tee_ioctl_param *params) +{ + for (unsigned i = 0; i < NUM_PARAMS; i++) { + params[i].a = two_beef; + params[i].b = red_beef; + params[i].c = blu_beef; + } + params[0].attr = TEE_IOCTL_PARAM_ATTR_TYPE_NONE; + params[1].attr = TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_INPUT; + params[2].attr = TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_OUTPUT; + params[3].attr = TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_INOUT; + params[4].attr = TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INPUT; + params[5].attr = TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_OUTPUT; + params[6].attr = TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INOUT; + params[7].attr = TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_INPUT | + TEE_IOCTL_PARAM_ATTR_META; +} + +static void +print_params(struct tee_ioctl_param *params) +{ + printf("{attr=TEE_IOCTL_PARAM_ATTR_TYPE_NONE}, " + "{attr=TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_INPUT, a=%#llx, b=%#llx, c=%#llx}, " + "{attr=TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_OUTPUT, a=%#llx, b=%#llx, c=%#llx}, " + "{attr=TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_INOUT, a=%#llx, b=%#llx, c=%#llx}, " + "{attr=TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INPUT, shm_offs=%#llx, size=%#llx, shm_id=%llu}, " + "{attr=TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_OUTPUT, shm_offs=%#llx, size=%#llx, shm_id=%llu}, " + "{attr=TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INOUT, shm_offs=%#llx, size=%#llx, shm_id=%llu}, " + "{attr=TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_INPUT|TEE_IOCTL_PARAM_ATTR_META, a=%#llx, b=%#llx, c=%#llx}", + (unsigned long long) two_beef, (unsigned long long) red_beef, + (unsigned long long) blu_beef, (unsigned long long) two_beef, + (unsigned long long) red_beef, (unsigned long long) blu_beef, + (unsigned long long) two_beef, (unsigned long long) red_beef, + (unsigned long long) blu_beef, (unsigned long long) two_beef, + (unsigned long long) red_beef, (unsigned long long) blu_beef, + (unsigned long long) two_beef, (unsigned long long) red_beef, + (unsigned long long) blu_beef, (unsigned long long) two_beef, + (unsigned long long) red_beef, (unsigned long long) blu_beef, + (unsigned long long) two_beef, (unsigned long long) red_beef, + (unsigned long long) blu_beef + ); +} + +int +main(void) +{ + gid_t gid; + + struct tee_ioctl_cancel_arg cancel; + struct tee_ioctl_shm_alloc_data shm_alloc; + struct tee_ioctl_shm_register_data shm_register; + struct tee_ioctl_close_session_arg close_session; + struct tee_ioctl_shm_register_fd_data shm_register_fd; + + struct tee_ioctl_buf_data buf_data; + struct tee_ioctl_param *params = NULL; + + DEFINE_BUF_W_PARAMS(struct tee_ioctl_invoke_arg, invoke); + DEFINE_BUF_W_PARAMS(struct tee_iocl_supp_recv_arg, supp_recv); + DEFINE_BUF_W_PARAMS(struct tee_iocl_supp_send_arg, supp_send); + DEFINE_BUF_W_PARAMS(struct tee_ioctl_open_session_arg, open_session); + + static const char null_path[] = "/dev/null"; + int fd = open(null_path, O_RDONLY); + + /* NULL as arg */ + CHK_NULL(TEE_IOC_CANCEL); + CHK_NULL(TEE_IOC_INVOKE); + CHK_NULL(TEE_IOC_VERSION); + CHK_NULL(TEE_IOC_SHM_ALLOC); + CHK_NULL(TEE_IOC_SUPPL_RECV); + CHK_NULL(TEE_IOC_SUPPL_SEND); + CHK_NULL(TEE_IOC_OPEN_SESSION); + CHK_NULL(TEE_IOC_SHM_REGISTER); + CHK_NULL(TEE_IOC_CLOSE_SESSION); + + /* Valid parameterless calls */ + ioctl(-1, TEE_IOC_SHM_REGISTER_FD, NULL); + printf("ioctl(-1, _IOC(_IOC_READ|_IOC_WRITE, 0xa4, 0x8, 0x20), NULL)" + RVAL_EBADF); + ioctl(-1, _IOC(_IOC_NONE, 0xa4, 0xa, 0), NULL); + printf("ioctl(-1, _IOC(_IOC_NONE, 0xa4, 0xa, 0), 0)" RVAL_EBADF); + + cancel.cancel_id = (uint32_t) one_beef; + cancel.session = (uint32_t) two_beef; + ioctl(-1, TEE_IOC_CANCEL, &cancel); + printf("ioctl(-1, TEE_IOC_CANCEL, {cancel_id=%u, session=%#x})" RVAL_EBADF, + (uint32_t) one_beef, (uint32_t) two_beef); + + close_session.session = (uint32_t) red_beef; + ioctl(-1, TEE_IOC_CLOSE_SESSION, &close_session); + printf("ioctl(-1, TEE_IOC_CLOSE_SESSION, {session=%#x})" RVAL_EBADF, + (uint32_t) red_beef); + + shm_alloc.size = one_beef; + shm_alloc.flags = TEE_IOCTL_SHM_MAPPED | TEE_IOCTL_SHM_DMA_BUF | 0x80; + ioctl(-1, TEE_IOC_SHM_ALLOC, &shm_alloc); + printf("ioctl(-1, TEE_IOC_SHM_ALLOC, {size=%#llx, " + "flags=TEE_IOCTL_SHM_MAPPED|TEE_IOCTL_SHM_DMA_BUF|0x80})" RVAL_EBADF, + (unsigned long long) one_beef); + + shm_register.addr = red_beef; + shm_register.length = blu_beef; + shm_register.flags = TEE_IOCTL_SHM_MAPPED | 0x80; + ioctl(-1, TEE_IOC_SHM_REGISTER, &shm_register); + printf("ioctl(-1, TEE_IOC_SHM_REGISTER, {addr=%#llx, length=%#llx, " + "flags=TEE_IOCTL_SHM_MAPPED|0x80})" RVAL_EBADF, + (unsigned long long) red_beef, + (unsigned long long) blu_beef); + + if (fd >= 0) { + shm_register_fd.fd = fd; + shm_register_fd.flags = TEE_IOCTL_SHM_DMA_BUF; + ioctl(-1, TEE_IOC_SHM_REGISTER_FD, &shm_register_fd); + printf("ioctl(-1, _IOC(_IOC_READ|_IOC_WRITE, 0xa4, 0x8, 0x20), " + "{fd=%d, flags=TEE_IOCTL_SHM_DMA_BUF})" RVAL_EBADF, fd); + } + + /* Beef in buf_data */ + buf_data.buf_ptr = one_beef; + buf_data.buf_len = two_beef; + CHK_BUF(TEE_IOC_INVOKE); + CHK_BUF(TEE_IOC_OPEN_SESSION); + CHK_BUF(TEE_IOC_SUPPL_RECV); + CHK_BUF(TEE_IOC_SUPPL_SEND); + + /* Valid calls with parameters */ + invoke_buf.invoke.func = (uint32_t) one_beef; + invoke_buf.invoke.session = (uint32_t) two_beef; + invoke_buf.invoke.cancel_id = (uint32_t) red_beef; + invoke_buf.invoke.num_params = NUM_PARAMS; + params = (struct tee_ioctl_param *)(&invoke_buf.invoke + 1); + fill_params(params); + buf_data.buf_ptr = (uintptr_t) &invoke_buf; + buf_data.buf_len = invoke_size; + ioctl(-1, TEE_IOC_INVOKE, &buf_data); + printf("ioctl(-1, TEE_IOC_INVOKE, {buf_len=%llu, " + "buf_ptr={func=%u, session=%#x, cancel_id=%u, " + "num_params=%u, params=[", + (unsigned long long) buf_data.buf_len, + (uint32_t) one_beef, (uint32_t) two_beef, + (uint32_t) red_beef, NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + open_session_buf.open_session.clnt_login = TEE_IOCTL_LOGIN_PUBLIC; + gid = (gid_t) blu_beef; + memcpy(&open_session_buf.open_session.clnt_uuid, &gid, sizeof(gid_t)); + memcpy(&open_session_buf.open_session.uuid, &uuid_beef, UUID_SIZE); + open_session_buf.open_session.cancel_id = (uint32_t) red_beef; + open_session_buf.open_session.num_params = NUM_PARAMS; + params = (struct tee_ioctl_param *)(&open_session_buf.open_session + 1); + fill_params(params); + buf_data.buf_ptr = (uintptr_t) &open_session_buf; + buf_data.buf_len = open_session_size; + ioctl(-1, TEE_IOC_OPEN_SESSION, &buf_data); + printf("ioctl(-1, TEE_IOC_OPEN_SESSION, {buf_len=%llu, " + "buf_ptr={uuid=deadbeef-cafe-c0de-badc-0dedfacefeed, " + "clnt_login=TEE_IOCTL_LOGIN_PUBLIC, " + "cancel_id=%u, " + "num_params=%u, params=[", + (unsigned long long) buf_data.buf_len, + (uint32_t) red_beef, NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + /* All the login types */ + open_session_buf.open_session.clnt_login = TEE_IOCTL_LOGIN_USER; + ioctl(-1, TEE_IOC_OPEN_SESSION, &buf_data); + printf("ioctl(-1, TEE_IOC_OPEN_SESSION, {buf_len=%llu, " + "buf_ptr={uuid=deadbeef-cafe-c0de-badc-0dedfacefeed, " + "clnt_login=TEE_IOCTL_LOGIN_USER, " + "cancel_id=%u, " + "num_params=%u, params=[", + (unsigned long long) buf_data.buf_len, + (uint32_t) red_beef, NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + open_session_buf.open_session.clnt_login = TEE_IOCTL_LOGIN_GROUP; + ioctl(-1, TEE_IOC_OPEN_SESSION, &buf_data); + printf("ioctl(-1, TEE_IOC_OPEN_SESSION, {buf_len=%llu, " + "buf_ptr={uuid=deadbeef-cafe-c0de-badc-0dedfacefeed, " + "clnt_login=TEE_IOCTL_LOGIN_GROUP, " + "clnt_uuid=%u, cancel_id=%u, " + "num_params=%u, params=[", + (unsigned long long) buf_data.buf_len, + gid, (uint32_t) red_beef, NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + open_session_buf.open_session.clnt_login = TEE_IOCTL_LOGIN_APPLICATION; + ioctl(-1, TEE_IOC_OPEN_SESSION, &buf_data); + printf("ioctl(-1, TEE_IOC_OPEN_SESSION, {buf_len=%llu, " + "buf_ptr={uuid=deadbeef-cafe-c0de-badc-0dedfacefeed, " + "clnt_login=TEE_IOCTL_LOGIN_APPLICATION, " + "cancel_id=%u, " + "num_params=%u, params=[", + (unsigned long long) buf_data.buf_len, + (uint32_t) red_beef, NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + open_session_buf.open_session.clnt_login = TEE_IOCTL_LOGIN_USER_APPLICATION; + ioctl(-1, TEE_IOC_OPEN_SESSION, &buf_data); + printf("ioctl(-1, TEE_IOC_OPEN_SESSION, {buf_len=%llu, " + "buf_ptr={uuid=deadbeef-cafe-c0de-badc-0dedfacefeed, " + "clnt_login=TEE_IOCTL_LOGIN_USER_APPLICATION, " + "cancel_id=%u, " + "num_params=%u, params=[", + (unsigned long long) buf_data.buf_len, + (uint32_t) red_beef, NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + open_session_buf.open_session.clnt_login = TEE_IOCTL_LOGIN_GROUP_APPLICATION; + ioctl(-1, TEE_IOC_OPEN_SESSION, &buf_data); + printf("ioctl(-1, TEE_IOC_OPEN_SESSION, {buf_len=%llu, " + "buf_ptr={uuid=deadbeef-cafe-c0de-badc-0dedfacefeed, " + "clnt_login=TEE_IOCTL_LOGIN_GROUP_APPLICATION, " + "clnt_uuid=%u, cancel_id=%u, " + "num_params=%u, params=[", + (unsigned long long) buf_data.buf_len, + gid, (uint32_t) red_beef, NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + open_session_buf.open_session.clnt_login = 0xff; + ioctl(-1, TEE_IOC_OPEN_SESSION, &buf_data); + printf("ioctl(-1, TEE_IOC_OPEN_SESSION, {buf_len=%llu, " + "buf_ptr={uuid=deadbeef-cafe-c0de-badc-0dedfacefeed, " + "clnt_login=%#x /* TEE_IOCTL_LOGIN_??? */, " + "clnt_uuid=[", (unsigned long long) buf_data.buf_len, + open_session_buf.open_session.clnt_login); + for (unsigned i = 0; i < UUID_SIZE; i++) { + if (i > 0) + printf(", "); + printf("%#x", open_session_buf.open_session.clnt_uuid[i]); + } + printf("], cancel_id=%u, " + "num_params=%u, params=[", + (uint32_t) red_beef, NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + supp_recv_buf.supp_recv.func = (uint32_t) blu_beef; + supp_recv_buf.supp_recv.num_params = NUM_PARAMS; + params = (struct tee_ioctl_param *)(&supp_recv_buf.supp_recv + 1); + fill_params(params); + buf_data.buf_ptr = (uintptr_t) &supp_recv_buf; + buf_data.buf_len = supp_recv_size; + ioctl(-1, TEE_IOC_SUPPL_RECV, &buf_data); + printf("ioctl(-1, TEE_IOC_SUPPL_RECV, {buf_len=%llu, " + "buf_ptr={func=%u, " + "num_params=%u, params=[", + (unsigned long long) buf_data.buf_len, + (uint32_t) blu_beef, NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + supp_send_buf.supp_send.num_params = NUM_PARAMS; + params = (struct tee_ioctl_param *)(&supp_send_buf.supp_send + 1); + fill_params(params); + buf_data.buf_ptr = (uintptr_t) &supp_send_buf; + buf_data.buf_len = supp_send_size; + ioctl(-1, TEE_IOC_SUPPL_SEND, &buf_data); + printf("ioctl(-1, TEE_IOC_SUPPL_SEND, {buf_len=%llu, " + "buf_ptr={num_params=%u, params=[", + (unsigned long long) buf_data.buf_len, + NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + /* Valid buf, but unmatching num_params */ + invoke_buf.invoke.num_params = 0; + supp_recv_buf.supp_recv.num_params = 0; + supp_send_buf.supp_send.num_params = 0; + open_session_buf.open_session.num_params = 0; + + buf_data.buf_ptr = (uintptr_t) &invoke_buf; + buf_data.buf_len = invoke_size; + CHK_BUF(TEE_IOC_INVOKE); + buf_data.buf_ptr = (uintptr_t) &open_session_buf; + buf_data.buf_len = open_session_size; + CHK_BUF(TEE_IOC_OPEN_SESSION); + buf_data.buf_ptr = (uintptr_t) &supp_recv_buf; + buf_data.buf_len = supp_recv_size; + CHK_BUF(TEE_IOC_SUPPL_RECV); + buf_data.buf_ptr = (uintptr_t) &supp_send_buf; + buf_data.buf_len = supp_send_size; + CHK_BUF(TEE_IOC_SUPPL_SEND); + + invoke_buf.invoke.num_params = NUM_PARAMS; + supp_recv_buf.supp_recv.num_params = NUM_PARAMS; + supp_send_buf.supp_send.num_params = NUM_PARAMS; + open_session_buf.open_session.num_params = NUM_PARAMS; + + /* Invalid buf_len */ + buf_data.buf_len = 0; + CHK_BUF(TEE_IOC_INVOKE); + CHK_BUF(TEE_IOC_OPEN_SESSION); + CHK_BUF(TEE_IOC_SUPPL_RECV); + CHK_BUF(TEE_IOC_SUPPL_SEND); + + buf_data.buf_len = (unsigned long long) -1; + CHK_BUF(TEE_IOC_INVOKE); + CHK_BUF(TEE_IOC_OPEN_SESSION); + CHK_BUF(TEE_IOC_SUPPL_RECV); + CHK_BUF(TEE_IOC_SUPPL_SEND); + + /* Valid buf_len, invalid buf_ptr */ + buf_data.buf_ptr = one_beef; + buf_data.buf_len = invoke_size; + CHK_BUF(TEE_IOC_INVOKE); + buf_data.buf_len = open_session_size; + CHK_BUF(TEE_IOC_OPEN_SESSION); + buf_data.buf_len = supp_recv_size; + CHK_BUF(TEE_IOC_SUPPL_RECV); + buf_data.buf_len = supp_send_size; + CHK_BUF(TEE_IOC_SUPPL_SEND); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else /* !HAVE_LINUX_TEE_H */ + +SKIP_MAIN_UNDEFINED("HAVE_LINUX_TEE_H") + +#endif /* HAVE_LINUX_TEE_H */ diff --git a/tests-m32/ioctl_tee.gen.test b/tests-m32/ioctl_tee.gen.test new file mode 100755 index 00000000..f220bca2 --- /dev/null +++ b/tests-m32/ioctl_tee.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_tee +ioctl.test ); do not edit. +set -- +. "${srcdir=.}/ioctl.test" diff --git a/tests-m32/ioctl_uffdio.c b/tests-m32/ioctl_uffdio.c index 19104442..971440d0 100644 --- a/tests-m32/ioctl_uffdio.c +++ b/tests-m32/ioctl_uffdio.c @@ -1,14 +1,14 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin * Copyright (c) 2016 Red Hat, Inc. - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_userfaultfd && defined HAVE_LINUX_USERFAULTFD_H @@ -135,6 +135,13 @@ main(void) " mode=UFFDIO_COPY_MODE_DONTWAKE, copy=%#zx}) = %d\n", fd, area2, area1, pagesize, pagesize, rc); + copy_struct->mode = 0xdeadbeef;; + rc = ioctl(fd, UFFDIO_COPY, copy_struct); + printf("ioctl(%d, UFFDIO_COPY, {dst=%p, src=%p, len=%#zx," + " mode=UFFDIO_COPY_MODE_DONTWAKE|UFFDIO_COPY_MODE_WP|0xdeadbeec" + "}) = %s\n", + fd, area2, area1, pagesize, sprintrc(rc)); + /* ---- ZEROPAGE ---- */ TAIL_ALLOC_OBJECT_CONST_PTR(struct uffdio_zeropage, zero_struct); madvise(area2, pagesize, MADV_DONTNEED); diff --git a/tests-m32/ioctl_v4l2-Xabbrev.c b/tests-m32/ioctl_v4l2-Xabbrev.c new file mode 100644 index 00000000..54046bff --- /dev/null +++ b/tests-m32/ioctl_v4l2-Xabbrev.c @@ -0,0 +1 @@ +#include "ioctl_v4l2.c" diff --git a/tests-m32/ioctl_v4l2-Xabbrev.gen.test b/tests-m32/ioctl_v4l2-Xabbrev.gen.test new file mode 100755 index 00000000..f90c41dc --- /dev/null +++ b/tests-m32/ioctl_v4l2-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-Xabbrev +ioctl.test -Xabbrev); do not edit. +set -- -Xabbrev +. "${srcdir=.}/ioctl.test" diff --git a/tests-m32/ioctl_v4l2-Xraw.c b/tests-m32/ioctl_v4l2-Xraw.c new file mode 100644 index 00000000..da45f6da --- /dev/null +++ b/tests-m32/ioctl_v4l2-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_v4l2.c" diff --git a/tests-m32/ioctl_v4l2-Xraw.gen.test b/tests-m32/ioctl_v4l2-Xraw.gen.test new file mode 100755 index 00000000..9ebd2835 --- /dev/null +++ b/tests-m32/ioctl_v4l2-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-Xraw +ioctl.test -Xraw); do not edit. +set -- -Xraw +. "${srcdir=.}/ioctl.test" diff --git a/tests-m32/ioctl_v4l2-Xverbose.c b/tests-m32/ioctl_v4l2-Xverbose.c new file mode 100644 index 00000000..52173f77 --- /dev/null +++ b/tests-m32/ioctl_v4l2-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_v4l2.c" diff --git a/tests-m32/ioctl_v4l2-Xverbose.gen.test b/tests-m32/ioctl_v4l2-Xverbose.gen.test new file mode 100755 index 00000000..0d0ccd0d --- /dev/null +++ b/tests-m32/ioctl_v4l2-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-Xverbose +ioctl.test -Xverbose); do not edit. +set -- -Xverbose +. "${srcdir=.}/ioctl.test" diff --git a/tests-m32/ioctl_v4l2-success-Xabbrev.c b/tests-m32/ioctl_v4l2-success-Xabbrev.c new file mode 100644 index 00000000..c328ee1e --- /dev/null +++ b/tests-m32/ioctl_v4l2-success-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_v4l2-success.c" diff --git a/tests-m32/ioctl_v4l2-success-Xabbrev.gen.test b/tests-m32/ioctl_v4l2-success-Xabbrev.gen.test new file mode 100755 index 00000000..60e33ad9 --- /dev/null +++ b/tests-m32/ioctl_v4l2-success-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-success-Xabbrev +ioctl-success.sh -a29 -Xabbrev); do not edit. +set -- -a29 -Xabbrev +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-m32/ioctl_v4l2-success-Xraw.c b/tests-m32/ioctl_v4l2-success-Xraw.c new file mode 100644 index 00000000..2ceb2d3d --- /dev/null +++ b/tests-m32/ioctl_v4l2-success-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_v4l2-success.c" diff --git a/tests-m32/ioctl_v4l2-success-Xraw.gen.test b/tests-m32/ioctl_v4l2-success-Xraw.gen.test new file mode 100755 index 00000000..f1ee3f2f --- /dev/null +++ b/tests-m32/ioctl_v4l2-success-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-success-Xraw +ioctl-success.sh -a27 -Xraw); do not edit. +set -- -a27 -Xraw +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-m32/ioctl_v4l2-success-Xverbose.c b/tests-m32/ioctl_v4l2-success-Xverbose.c new file mode 100644 index 00000000..c09ee349 --- /dev/null +++ b/tests-m32/ioctl_v4l2-success-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_v4l2-success.c" diff --git a/tests-m32/ioctl_v4l2-success-Xverbose.gen.test b/tests-m32/ioctl_v4l2-success-Xverbose.gen.test new file mode 100755 index 00000000..a1b69a4a --- /dev/null +++ b/tests-m32/ioctl_v4l2-success-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-success-Xverbose +ioctl-success.sh -a30 -Xverbose); do not edit. +set -- -a30 -Xverbose +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-m32/ioctl_v4l2-success-v-Xabbrev.c b/tests-m32/ioctl_v4l2-success-v-Xabbrev.c new file mode 100644 index 00000000..f06ca45d --- /dev/null +++ b/tests-m32/ioctl_v4l2-success-v-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_v4l2-success-v.c" diff --git a/tests-m32/ioctl_v4l2-success-v-Xabbrev.gen.test b/tests-m32/ioctl_v4l2-success-v-Xabbrev.gen.test new file mode 100755 index 00000000..49dfc26a --- /dev/null +++ b/tests-m32/ioctl_v4l2-success-v-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-success-v-Xabbrev +ioctl-success.sh -a29 -v -Xabbrev); do not edit. +set -- -a29 -v -Xabbrev +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-m32/ioctl_v4l2-success-v-Xraw.c b/tests-m32/ioctl_v4l2-success-v-Xraw.c new file mode 100644 index 00000000..a95c12fa --- /dev/null +++ b/tests-m32/ioctl_v4l2-success-v-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_v4l2-success-v.c" diff --git a/tests-m32/ioctl_v4l2-success-v-Xraw.gen.test b/tests-m32/ioctl_v4l2-success-v-Xraw.gen.test new file mode 100755 index 00000000..55e9799c --- /dev/null +++ b/tests-m32/ioctl_v4l2-success-v-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-success-v-Xraw +ioctl-success.sh -a27 -v -Xraw); do not edit. +set -- -a27 -v -Xraw +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-m32/ioctl_v4l2-success-v-Xverbose.c b/tests-m32/ioctl_v4l2-success-v-Xverbose.c new file mode 100644 index 00000000..ac659b31 --- /dev/null +++ b/tests-m32/ioctl_v4l2-success-v-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_v4l2-success-v.c" diff --git a/tests-m32/ioctl_v4l2-success-v-Xverbose.gen.test b/tests-m32/ioctl_v4l2-success-v-Xverbose.gen.test new file mode 100755 index 00000000..ed9278f1 --- /dev/null +++ b/tests-m32/ioctl_v4l2-success-v-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-success-v-Xverbose +ioctl-success.sh -a29 -v -Xverbose); do not edit. +set -- -a29 -v -Xverbose +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-m32/ioctl_v4l2-success-v.c b/tests-m32/ioctl_v4l2-success-v.c new file mode 100644 index 00000000..fadad4ef --- /dev/null +++ b/tests-m32/ioctl_v4l2-success-v.c @@ -0,0 +1,2 @@ +#define VERBOSE 1 +#include "ioctl_v4l2-success.c" diff --git a/tests-m32/ioctl_v4l2-success-v.gen.test b/tests-m32/ioctl_v4l2-success-v.gen.test new file mode 100755 index 00000000..6eca4cdd --- /dev/null +++ b/tests-m32/ioctl_v4l2-success-v.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-success-v +ioctl-success.sh -a29 -v); do not edit. +set -- -a29 -v +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-m32/ioctl_v4l2-success.c b/tests-m32/ioctl_v4l2-success.c new file mode 100644 index 00000000..f1b834ee --- /dev/null +++ b/tests-m32/ioctl_v4l2-success.c @@ -0,0 +1,1473 @@ +/* + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#include +#include +#include +#include +#include +#include "kernel_v4l2_types.h" + +#define XLAT_MACROS_ONLY +# include "xlat/v4l2_ioctl_cmds.h" +#undef XLAT_MACROS_ONLY + +static bool +fill_fmt(struct v4l2_format *f) +{ + static struct v4l2_clip *clips; + + switch (f->type) { + case V4L2_BUF_TYPE_VIDEO_CAPTURE: + case V4L2_BUF_TYPE_VIDEO_OUTPUT: + f->fmt.pix.width = 0xdeadc0de; + f->fmt.pix.height = 0xfeedbeef; + f->fmt.pix.pixelformat = 0xb5315258; /* forurcc_be("XR15") */ + f->fmt.pix.field = f->type == V4L2_BUF_TYPE_VIDEO_CAPTURE + ? V4L2_FIELD_ALTERNATE : 0xdec0ded1; + f->fmt.pix.bytesperline = 0xbadc0ded; + f->fmt.pix.sizeimage = 0xface1e55; + f->fmt.pix.colorspace = V4L2_COLORSPACE_REC709; + break; + + case V4L2_BUF_TYPE_VIDEO_OVERLAY: +#if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY + case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY: +#endif + f->fmt.win.w.left = 0xa0a1a2a3; + f->fmt.win.w.top = 0xb0b1b2b3; + f->fmt.win.w.width = 0xc0c1c2c3; + f->fmt.win.w.height = 0xd0d1d2d3; + f->fmt.win.field = f->type == V4L2_BUF_TYPE_VIDEO_OVERLAY + ? V4L2_FIELD_ANY : 10; + f->fmt.win.chromakey = 0xbeefface; + + if (!clips) + clips = tail_alloc(sizeof(*clips) * 3); + f->fmt.win.clips = clips; + + f->fmt.win.clips[0].c.left = 0xa4a5a6a7; + f->fmt.win.clips[0].c.top = 0xb4b5b6b7; + f->fmt.win.clips[0].c.width = 0xc4c5c6c7; + f->fmt.win.clips[0].c.height = 0xd4d5d6d7; + f->fmt.win.clips[0].next = clips; + + f->fmt.win.clips[1].c.left = 0xa8a9aaab; + f->fmt.win.clips[1].c.top = 0xb8b9babb; + f->fmt.win.clips[1].c.width = 0xc8c9cacb; + f->fmt.win.clips[1].c.height = 0xd8d9dadb; + + f->fmt.win.clips[2].c.left = 0xacadaeaf; + f->fmt.win.clips[2].c.top = 0xbcbdbebf; + f->fmt.win.clips[2].c.width = 0xcccdcecf; + f->fmt.win.clips[2].c.height = 0xdcdddedf; + f->fmt.win.clips[2].next = clips + 1; + + f->fmt.win.clipcount = f->type == V4L2_BUF_TYPE_VIDEO_OVERLAY + ? 4 : 0; + f->fmt.win.bitmap = f->type == V4L2_BUF_TYPE_VIDEO_OVERLAY + ? NULL : clips; + break; + + case V4L2_BUF_TYPE_VBI_CAPTURE: + case V4L2_BUF_TYPE_VBI_OUTPUT: + f->fmt.vbi.sampling_rate = 0xdecaffed; + f->fmt.vbi.offset = 0xcafefeed; + f->fmt.vbi.samples_per_line = 0xbeefaced; + f->fmt.vbi.sample_format = V4L2_PIX_FMT_RGB555X; + + f->fmt.vbi.start[0] = 0xdec0ded0; + f->fmt.vbi.start[1] = 0xdec0ded1; + f->fmt.vbi.count[0] = 0xacceded2; + f->fmt.vbi.count[1] = 0xacceded3; + + f->fmt.vbi.flags = f->type == V4L2_BUF_TYPE_VBI_CAPTURE + ? 0x3 : 0x1ce50d1c; + break; + +#if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE + case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: + case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE: + f->fmt.pix_mp.width = 0xdeaffade; + f->fmt.pix_mp.height = 0xfadeb1a5; + f->fmt.pix_mp.pixelformat = 0x36314454; + f->fmt.pix_mp.field = V4L2_FIELD_NONE; + f->fmt.pix_mp.colorspace = 13; + + for (size_t i = 0; i < VIDEO_MAX_PLANES; i++) { + f->fmt.pix_mp.plane_fmt[i].sizeimage = 0xd0decad0 ^ i; + if (sizeof(f->fmt.pix_mp.plane_fmt[i].bytesperline) == + sizeof(uint32_t)) { + f->fmt.pix_mp.plane_fmt[i].bytesperline + = 0xd0decad1 ^ i; + } else { +# if WORDS_BIGENDIAN + f->fmt.pix_mp.plane_fmt[i].bytesperline + = 0xd0de; + f->fmt.pix_mp.plane_fmt[i].reserved[0] + = 0xcad1 ^ i; +# else + f->fmt.pix_mp.plane_fmt[i].bytesperline + = 0xcad1 ^ i; + f->fmt.pix_mp.plane_fmt[i].reserved[0] + = 0xd0de; +# endif + } + } + + f->fmt.pix_mp.num_planes = f->type == + V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE ? 0xd5 : 0; + break; +#endif +#if HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE + case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: + case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: + f->fmt.sliced.service_set = 0xfeed; + for (size_t i = 0; i < 2; i++) { + for (size_t j = 0; j < 24; j++) { + f->fmt.sliced.service_lines[i][j] = + 0xdead ^ (i << 8) ^ j; + } + } + f->fmt.sliced.io_size = 0xdefaceed; + break; +#endif +#if HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE + case V4L2_BUF_TYPE_SDR_CAPTURE: +# if HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT + case V4L2_BUF_TYPE_SDR_OUTPUT: +# endif + f->fmt.sdr.pixelformat = V4L2_SDR_FMT_CU8; +# ifdef HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE + if (sizeof(f->fmt.sdr.buffersize == sizeof(uint32_t))) + f->fmt.sdr.buffersize = 0xbadc0ded; + else + ((uint32_t *) &f->fmt.sdr)[1] = 0xbadc0ded; +# else + ((uint32_t *) &f->fmt.sdr)[1] = 0xbadc0ded; +# endif + break; +#endif + default: + return false; + } + + return true; +} + +static void +print_fmt(const char *pfx, struct v4l2_format *f) +{ + switch (f->type) { + case V4L2_BUF_TYPE_VIDEO_CAPTURE: + case V4L2_BUF_TYPE_VIDEO_OUTPUT: + printf("%sfmt.pix={width=3735929054, height=4276993775" + ", pixelformat=" RAW("0xb5315258") + NRAW("v4l2_fourcc('X', 'R', '1', '\\xb5')" + " /* V4L2_PIX_FMT_XRGB555X */") + ", field=%s, bytesperline=3134983661" + ", sizeimage=4207812181, colorspace=" + XLAT_KNOWN(0x3, "V4L2_COLORSPACE_REC709") "}", + pfx, f->type == V4L2_BUF_TYPE_VIDEO_CAPTURE + ? XLAT_STR(V4L2_FIELD_ALTERNATE) + : XLAT_UNKNOWN(0xdec0ded1, "V4L2_FIELD_???")); + break; + + case V4L2_BUF_TYPE_VIDEO_OVERLAY: +#if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY + case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY: +#endif + printf("%sfmt.win={left=-1600019805, top=-1330531661" + ", width=3233923779, height=3503411923, field=%s" + ", chromakey=0xbeefface, clips=[", + pfx, f->type == V4L2_BUF_TYPE_VIDEO_OVERLAY + ? XLAT_STR(V4L2_FIELD_ANY) + : XLAT_UNKNOWN(0xa, "V4L2_FIELD_???")); + if (f->type == V4L2_BUF_TYPE_VIDEO_OVERLAY) { + printf("{left=-1532647769, top=-1263159625" + ", width=3301295815, height=3570783959}, " + "{left=-1465275733, top=-1195787589" + ", width=3368667851, height=3638155995}, " + "{left=-1397903697, top=-1128415553" + ", width=3436039887, height=3705528031}, " + "... /* %p */", f->fmt.win.clips + 3); + } + printf("], clipcount=%d, bitmap=", + f->type == V4L2_BUF_TYPE_VIDEO_OVERLAY ? 4 : 0); + + if (f->type == V4L2_BUF_TYPE_VIDEO_OVERLAY) + printf("NULL"); + else + printf("%p", f->fmt.win.bitmap); + +#ifdef HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA + printf(", global_alpha=%#hhx}", f->fmt.win.global_alpha); +#else + struct win_ga { + struct v4l2_rect w; + uint32_t field; + uint32_t chromakey; + struct v4l2_clip *clips; + uint32_t clipcount; + void *bitmap; + uint8_t global_alpha; + }; + printf(", global_alpha=%#hhx}", + ((struct win_ga *) &f->fmt.win)->global_alpha); +#endif + break; + + case V4L2_BUF_TYPE_VBI_CAPTURE: + case V4L2_BUF_TYPE_VBI_OUTPUT: + printf("%sfmt.vbi={sampling_rate=3737845741, offset=3405709037" + ", samples_per_line=3203378413, sample_format=" + RAW("0x51424752") NRAW("v4l2_fourcc('R', 'G', 'B', 'Q')" + " /* V4L2_PIX_FMT_RGB555X */") + ", start=[-557785392, -557785391]" + ", count=[2899238610, 2899238611], flags=%s}", + pfx, f->type == V4L2_BUF_TYPE_VBI_CAPTURE + ? XLAT_KNOWN(0x3, "V4L2_VBI_UNSYNC|V4L2_VBI_INTERLACED") + : XLAT_UNKNOWN(0x1ce50d1c, "V4L2_VBI_???")); + break; + +#if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE + case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: + case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE: + printf("%sfmt.pix_mp={width=3736074974, height=4208898469" + ", pixelformat=" RAW("0x36314454") + NRAW("v4l2_fourcc('T', 'D', '1', '6')") + ", field=%s, colorspace=0xd" + NRAW(" /* V4L2_COLORSPACE_??? */") ", plane_fmt=[", + pfx, XLAT_STR(V4L2_FIELD_NONE)); + if (f->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) { + printf("{sizeimage=3504261840, bytesperline=3504261841}" + ", " + "{sizeimage=3504261841, bytesperline=3504261840}" + ", " + "{sizeimage=3504261842, bytesperline=3504261843}" + ", " + "{sizeimage=3504261843, bytesperline=3504261842}" + ", " + "{sizeimage=3504261844, bytesperline=3504261845}" + ", " + "{sizeimage=3504261845, bytesperline=3504261844}" + ", " + "{sizeimage=3504261846, bytesperline=3504261847}" + ", " + "{sizeimage=3504261847, bytesperline=3504261846}" + "], num_planes=213}"); + } else { + printf("], num_planes=0}"); + } + break; +#endif +#if HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE + case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: + case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: + printf("%sfmt.sliced={service_set=" + XLAT_UNKNOWN(0xfeed, "V4L2_SLICED_???") + ", io_size=3740978925, service_lines=[[0xdead, 0xdeac" + ", 0xdeaf, 0xdeae, 0xdea9, 0xdea8, 0xdeab, 0xdeaa" + ", 0xdea5, 0xdea4, 0xdea7, 0xdea6, 0xdea1, 0xdea0" + ", 0xdea3, 0xdea2, 0xdebd, 0xdebc, 0xdebf, 0xdebe" + ", 0xdeb9, 0xdeb8, 0xdebb, 0xdeba], [0xdfad, 0xdfac" + ", 0xdfaf, 0xdfae, 0xdfa9, 0xdfa8, 0xdfab, 0xdfaa" + ", 0xdfa5, 0xdfa4, 0xdfa7, 0xdfa6, 0xdfa1, 0xdfa0" + ", 0xdfa3, 0xdfa2, 0xdfbd, 0xdfbc, 0xdfbf, 0xdfbe" + ", 0xdfb9, 0xdfb8, 0xdfbb, 0xdfba]]}", + pfx); + break; +#endif +#if HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE + case V4L2_BUF_TYPE_SDR_CAPTURE: +# if HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT + case V4L2_BUF_TYPE_SDR_OUTPUT: +# endif + printf("%sfmt.sdr={pixelformat=" RAW("0x38305543") + NRAW("v4l2_fourcc('C', 'U', '0', '8')" + " /* V4L2_SDR_FMT_CU8 */") + ", buffersize=3134983661}", + pfx); + break; +#endif + } +} + +int +main(int argc, char **argv) +{ + unsigned long num_skip; + long inject_retval; + bool locked = false; + + if (argc == 1) + return 0; + + if (argc < 3) + error_msg_and_fail("Usage: %s NUM_SKIP INJECT_RETVAL", argv[0]); + + num_skip = strtoul(argv[1], NULL, 0); + inject_retval = strtol(argv[2], NULL, 0); + + if (inject_retval < 0) + error_msg_and_fail("Expected non-negative INJECT_RETVAL, " + "but got %ld", inject_retval); + + for (unsigned int i = 0; i < num_skip; i++) { + long rc = ioctl(-1, VIDIOC_QUERYCAP, NULL); + printf("ioctl(-1, %s, NULL) = %s%s\n", + XLAT_STR(VIDIOC_QUERYCAP), sprintrc(rc), + rc == inject_retval ? " (INJECTED)" : ""); + + if (rc != inject_retval) + continue; + + locked = true; + break; + } + + if (!locked) + error_msg_and_fail("Hasn't locked on ioctl(-1" + ", VIDIOC_QUERYCAP, NULL) returning %lu", + inject_retval); + + + /* VIDIOC_QUERYCAP */ + struct v4l2_capability *caps = tail_alloc(sizeof(*caps)); + + fill_memory(caps, sizeof(*caps)); + caps->capabilities = 0xdeadbeef; +#ifdef HAVE_STRUCT_V4L2_CAPABILITY_DEVICE_CAPS + caps->device_caps = 0xfacefeed; +#else + caps->reserved[0] = 0xfacefeed; +#endif + + ioctl(-1, VIDIOC_QUERYCAP, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_QUERYCAP), inject_retval); + + ioctl(-1, VIDIOC_QUERYCAP, (char *) caps + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_QUERYCAP), (char *) caps + 1, inject_retval); + + ioctl(-1, VIDIOC_QUERYCAP, caps); + printf("ioctl(-1, %s, {driver=", XLAT_STR(VIDIOC_QUERYCAP)); + print_quoted_cstring((char *) caps->driver, sizeof(caps->driver)); + printf(", card="); + print_quoted_cstring((char *) caps->card, sizeof(caps->card)); + printf(", bus_info="); + print_quoted_cstring((char *) caps->bus_info, sizeof(caps->bus_info)); + printf(", version=" +#ifdef WORDS_BIGENDIAN + XLAT_KNOWN(0xd0d1d2d3, "KERNEL_VERSION(53457, 210, 211)") +#else + XLAT_KNOWN(0xd3d2d1d0, "KERNEL_VERSION(54226, 209, 208)") +#endif + ", capabilities=" XLAT_KNOWN(0xdeadbeef, + "V4L2_CAP_VIDEO_CAPTURE|V4L2_CAP_VIDEO_OUTPUT" + "|V4L2_CAP_VIDEO_OVERLAY|V4L2_CAP_VBI_OUTPUT" + "|V4L2_CAP_SLICED_VBI_CAPTURE|V4L2_CAP_SLICED_VBI_OUTPUT" + "|V4L2_CAP_VIDEO_OUTPUT_OVERLAY|V4L2_CAP_HW_FREQ_SEEK" + "|V4L2_CAP_RDS_OUTPUT|V4L2_CAP_VIDEO_CAPTURE_MPLANE" + "|V4L2_CAP_VIDEO_OUTPUT_MPLANE|V4L2_CAP_VIDEO_M2M" + "|V4L2_CAP_TUNER|V4L2_CAP_RADIO|V4L2_CAP_MODULATOR" + "|V4L2_CAP_EXT_PIX_FORMAT|V4L2_CAP_META_CAPTURE|V4L2_CAP_ASYNCIO" + "|V4L2_CAP_STREAMING|V4L2_CAP_META_OUTPUT|V4L2_CAP_TOUCH" + "|V4L2_CAP_DEVICE_CAPS|0x40000008")); + printf(", device_caps=" XLAT_KNOWN(0xfacefeed, + "V4L2_CAP_VIDEO_CAPTURE|V4L2_CAP_VIDEO_OVERLAY" + "|V4L2_CAP_VBI_OUTPUT|V4L2_CAP_SLICED_VBI_CAPTURE" + "|V4L2_CAP_SLICED_VBI_OUTPUT|V4L2_CAP_VIDEO_OUTPUT_OVERLAY" + "|V4L2_CAP_HW_FREQ_SEEK|V4L2_CAP_RDS_OUTPUT" + "|V4L2_CAP_VIDEO_CAPTURE_MPLANE|V4L2_CAP_VIDEO_OUTPUT_MPLANE" + "|V4L2_CAP_VIDEO_M2M_MPLANE|V4L2_CAP_VIDEO_M2M|V4L2_CAP_AUDIO" + "|V4L2_CAP_RADIO|V4L2_CAP_MODULATOR|V4L2_CAP_SDR_OUTPUT" + "|V4L2_CAP_META_CAPTURE|V4L2_CAP_ASYNCIO|V4L2_CAP_META_OUTPUT" + "|V4L2_CAP_TOUCH|V4L2_CAP_DEVICE_CAPS|0x60000008")); + printf("}) = %ld (INJECTED)\n", inject_retval); + + + /* VIDIOC_ENUM_FMT */ + static const struct strval32 buf_types[] = { + { ARG_XLAT_UNKNOWN(0, "V4L2_BUF_TYPE_???") }, + { ARG_XLAT_KNOWN(0x1, "V4L2_BUF_TYPE_VIDEO_CAPTURE") }, + { ARG_XLAT_KNOWN(0x2, "V4L2_BUF_TYPE_VIDEO_OUTPUT") }, + { ARG_XLAT_KNOWN(0x3, "V4L2_BUF_TYPE_VIDEO_OVERLAY") }, + { ARG_XLAT_KNOWN(0x4, "V4L2_BUF_TYPE_VBI_CAPTURE") }, + { ARG_XLAT_KNOWN(0x5, "V4L2_BUF_TYPE_VBI_OUTPUT") }, + { ARG_XLAT_KNOWN(0x6, "V4L2_BUF_TYPE_SLICED_VBI_CAPTURE") }, + { ARG_XLAT_KNOWN(0x7, "V4L2_BUF_TYPE_SLICED_VBI_OUTPUT") }, + { ARG_XLAT_KNOWN(0x8, "V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY") }, + { ARG_XLAT_KNOWN(0x9, "V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE") }, + { ARG_XLAT_KNOWN(0xa, "V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE") }, + { ARG_XLAT_KNOWN(0xb, "V4L2_BUF_TYPE_SDR_CAPTURE") }, + { ARG_XLAT_KNOWN(0xc, "V4L2_BUF_TYPE_SDR_OUTPUT") }, + { ARG_XLAT_KNOWN(0xd, "V4L2_BUF_TYPE_META_CAPTURE") }, + { ARG_XLAT_KNOWN(0xe, "V4L2_BUF_TYPE_META_OUTPUT") }, + { ARG_XLAT_UNKNOWN(0xf, "V4L2_BUF_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0x80, "V4L2_BUF_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0xbadc0ded, "V4L2_BUF_TYPE_???") }, + }; + static const struct strval32 fmtdesc_flags[] = { + { ARG_STR(0) }, + { ARG_XLAT_KNOWN(0x1, "V4L2_FMT_FLAG_COMPRESSED") }, + { ARG_XLAT_KNOWN(0x3e, "V4L2_FMT_FLAG_EMULATED" + "|V4L2_FMT_FLAG_CONTINUOUS_BYTESTREAM" + "|V4L2_FMT_FLAG_DYN_RESOLUTION" + "|V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL" + "|0x20") }, + { ARG_XLAT_UNKNOWN(0xdead0000, "V4L2_FMT_FLAG_???") }, + }; + static const struct strval32 fmtdesc_fmts[] = { + { 0x4c47504a, RAW("0x4c47504a") + NRAW("v4l2_fourcc('J', 'P', 'G', 'L')" + " /* V4L2_PIX_FMT_JPGL */") }, + { 0xbadc0ded, RAW("0xbadc0ded") + NRAW("v4l2_fourcc('\\xed', '\\x0d', '\\xdc'," + " '\\xba')") }, + }; + struct v4l2_fmtdesc *fmtdesc = tail_alloc(sizeof(*fmtdesc)); + + fill_memory(fmtdesc, sizeof(*fmtdesc)); + fmtdesc->index = 0xdeac0de; + + ioctl(-1, VIDIOC_ENUM_FMT, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FMT), inject_retval); + + ioctl(-1, VIDIOC_ENUM_FMT, (char *) fmtdesc + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FMT), (char *) fmtdesc + 1, inject_retval); + + for (size_t i = 0; i < ARRAY_SIZE(buf_types); i++) { + for (size_t j = 0; j < ARRAY_SIZE(fmtdesc_flags); j++) { + for (size_t k = 0; k < ARRAY_SIZE(fmtdesc_fmts); k++) { + fmtdesc->type = buf_types[i].val; + fmtdesc->flags = fmtdesc_flags[j].val; + fmtdesc->pixelformat = fmtdesc_fmts[k].val; + + ioctl(-1, VIDIOC_ENUM_FMT, fmtdesc); + printf("ioctl(-1, %s, {index=233488606, type=%s" + ", flags=%s, description=", + XLAT_STR(VIDIOC_ENUM_FMT), + buf_types[i].str, + fmtdesc_flags[j].str); + print_quoted_cstring((char *) fmtdesc->description, + sizeof(fmtdesc->description)); + printf(", pixelformat=%s}) = %ld (INJECTED)\n", + fmtdesc_fmts[k].str, inject_retval); + + fill_memory_ex(fmtdesc->description, + sizeof(fmtdesc->description), + (i * 9 + j) * 7 + k, + (k * 3 + j) * 11 + i + 5); + } + } + } + + + /* VIDIOC_REQBUFS */ + static const struct strval32 reqb_mems[] = { + { ARG_XLAT_UNKNOWN(0, "V4L2_MEMORY_???") }, + { ARG_XLAT_KNOWN(0x1, "V4L2_MEMORY_MMAP") }, + { ARG_XLAT_KNOWN(0x4, "V4L2_MEMORY_DMABUF") }, + { ARG_XLAT_UNKNOWN(0x5, "V4L2_MEMORY_???") }, + { ARG_XLAT_UNKNOWN(0xbadc0ded, "V4L2_MEMORY_???") }, + }; + struct v4l2_requestbuffers *reqb = tail_alloc(sizeof(*reqb)); + + fill_memory(reqb, sizeof(*reqb)); + reqb->count = 0xfeedface; + + ioctl(-1, VIDIOC_REQBUFS, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_REQBUFS), inject_retval); + + ioctl(-1, VIDIOC_REQBUFS, (char *) reqb + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_REQBUFS), (char *) reqb + 1, inject_retval); + + for (size_t i = 0; i < MAX(ARRAY_SIZE(buf_types), + ARRAY_SIZE(reqb_mems)); i++) { + reqb->type = buf_types[i % ARRAY_SIZE(buf_types)].val; + reqb->memory = reqb_mems[i % ARRAY_SIZE(reqb_mems)].val; + + ioctl(-1, VIDIOC_REQBUFS, reqb); + printf("ioctl(-1, %s, {type=%s, memory=%s" + ", count=4277009102 => 4277009102}) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_REQBUFS), + buf_types[i % ARRAY_SIZE(buf_types)].str, + reqb_mems[i % ARRAY_SIZE(reqb_mems)].str, + inject_retval); + } + + + /* VIDIOC_G_FMT, VIDIOC_S_FMT, VIDIOC_TRY_FMT */ + static const struct strval32 fmt_cmds[] = { + { ARG_STR(VIDIOC_G_FMT) }, + { ARG_STR(VIDIOC_S_FMT) }, + { ARG_STR(VIDIOC_TRY_FMT) }, + }; + + struct v4l2_format *fmt = tail_alloc(sizeof(*fmt)); + + for (size_t i = 0; i < ARRAY_SIZE(fmt_cmds); i++) { + ioctl(-1, fmt_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(fmt_cmds[i].str, fmt_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, fmt_cmds[i].val, (char *) fmt + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(fmt_cmds[i].str, fmt_cmds[i].val, NULL), + (char *) fmt + 1, inject_retval); + + for (size_t j = 0; j < ARRAY_SIZE(buf_types); j++) { + fill_memory(fmt, sizeof(*fmt)); + + fmt->type = buf_types[j].val; + if (!fill_fmt(fmt)) + continue; + + ioctl(-1, fmt_cmds[i].val, fmt); + printf("ioctl(-1, %s, {type=%s", + sprintxlat(fmt_cmds[i].str, fmt_cmds[i].val, + NULL), + buf_types[j].str); + print_fmt(", ", fmt); + if (fmt_cmds[i].val != VIDIOC_G_FMT && + buf_types[j].val != V4L2_BUF_TYPE_VIDEO_OVERLAY && + buf_types[j].val != 8) + print_fmt("} => {", fmt); + printf("}) = %ld (INJECTED)\n", inject_retval); + } + } + + + /* VIDIOC_QUERYBUF, VIDIOC_QBUF, VIDIOC_DQBUF */ + static const struct strval32 buf_cmds[] = { + { ARG_STR(VIDIOC_QUERYBUF) }, + { ARG_STR(VIDIOC_QBUF) }, + { ARG_STR(VIDIOC_DQBUF) }, + }; + + kernel_v4l2_buffer_t *buf = tail_alloc(sizeof(*buf)); + + for (size_t i = 0; i < ARRAY_SIZE(buf_cmds); i++) { + ioctl(-1, buf_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(buf_cmds[i].str, buf_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, buf_cmds[i].val, (char *) buf + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(buf_cmds[i].str, buf_cmds[i].val, NULL), + (char *) buf + 1, inject_retval); + + fill_memory(buf, sizeof(*buf)); + buf->index = 0xdeadc0de; + buf->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + buf->bytesused = 0xdecaffee; + buf->flags = 0x1ff; /* TODO: update */ + buf->field = V4L2_FIELD_TOP; + + buf->timestamp.tv_sec = 0x1e55c0de; + buf->timestamp.tv_usec = 999999; + + buf->timecode.type = V4L2_TC_TYPE_24FPS; + buf->timecode.flags = 0xbeefdeaf; + + buf->memory = V4L2_MEMORY_MMAP; + buf->m.offset = 0xfacefeed; + buf->length = 0xcafebed5; + buf->reserved = 0xdeefaced; + + ioctl(-1, buf_cmds[i].val, buf); + printf("ioctl(-1, %s, {type=" + XLAT_KNOWN(0x1, "V4L2_BUF_TYPE_VIDEO_CAPTURE") + ", index=3735929054, memory=" + XLAT_KNOWN(0x1, "V4L2_MEMORY_MMAP") + ", m.offset=0xfacefeed, length=3405692629" + ", bytesused=3737845742, flags=" RAW("0x1ff") +#if !XLAT_RAW + XLAT_KNOWN(0x1ff, "V4L2_BUF_FLAG_MAPPED" + "|V4L2_BUF_FLAG_QUEUED|V4L2_BUF_FLAG_DONE" + "|V4L2_BUF_FLAG_KEYFRAME|V4L2_BUF_FLAG_PFRAME" + "|V4L2_BUF_FLAG_BFRAME|V4L2_BUF_FLAG_ERROR" + "|V4L2_BUF_FLAG_IN_REQUEST|V4L2_BUF_FLAG_TIMECODE") "|" + XLAT_KNOWN(0, "V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN") "|" + XLAT_KNOWN(0, "V4L2_BUF_FLAG_TSTAMP_SRC_EOF") +#endif + "%s, ...}) = %ld (INJECTED)\n", + sprintxlat(buf_cmds[i].str, buf_cmds[i].val, NULL), + buf_cmds[i].val == VIDIOC_DQBUF + ? ", timestamp={tv_sec=508936414, tv_usec=999999}" : "", + inject_retval); + + buf->type = V4L2_BUF_TYPE_VBI_CAPTURE; + buf->flags = 0x268040; + buf->field = 0xb; + buf->memory = V4L2_MEMORY_USERPTR; + buf->m.userptr = (long) 0xdefaced0dec0ded1LL; + + ioctl(-1, buf_cmds[i].val, buf); + printf("ioctl(-1, %s, {type=" + XLAT_KNOWN(0x4, "V4L2_BUF_TYPE_VBI_CAPTURE") + ", index=3735929054, memory=" + XLAT_KNOWN(0x2, "V4L2_MEMORY_USERPTR") + ", m.userptr=%p, length=3405692629" + ", bytesused=3737845742, flags=" RAW("0x268040") +#if !XLAT_RAW + XLAT_KNOWN(0x200040, "V4L2_BUF_FLAG_ERROR|0x200000") "|" + XLAT_UNKNOWN(0x8000, "V4L2_BUF_FLAG_TIMESTAMP_???") "|" + XLAT_UNKNOWN(0x60000, "V4L2_BUF_FLAG_TSTAMP_SRC_???") +#endif + "%s, ...}) = %ld (INJECTED)\n", + sprintxlat(buf_cmds[i].str, buf_cmds[i].val, NULL), + (void *) (intptr_t) 0xdefaced0dec0ded1LL, + buf_cmds[i].val == VIDIOC_DQBUF + ? ", timestamp={tv_sec=508936414, tv_usec=999999}" : "", + inject_retval); + + buf->type = 0x9; + buf->flags = 0; + + ioctl(-1, buf_cmds[i].val, buf); + printf("ioctl(-1, %s, {type=" + XLAT_KNOWN(0x9, "V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE") + ", index=3735929054, memory=" + XLAT_KNOWN(0x2, "V4L2_MEMORY_USERPTR") + ", m.userptr=%p, length=3405692629" + ", bytesused=3737845742, flags=" RAW("0") +#if !XLAT_RAW + XLAT_KNOWN(0, "V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN") "|" + XLAT_KNOWN(0, "V4L2_BUF_FLAG_TSTAMP_SRC_EOF") +#endif + "%s, ...}) = %ld (INJECTED)\n", + sprintxlat(buf_cmds[i].str, buf_cmds[i].val, NULL), + (void *) (intptr_t) 0xdefaced0dec0ded1LL, + buf_cmds[i].val == VIDIOC_DQBUF + ? ", timestamp={tv_sec=508936414, tv_usec=999999}" : "", + inject_retval); + + buf->type = 0xa; + buf->memory = V4L2_MEMORY_OVERLAY; + buf->flags = 0x2000; + + ioctl(-1, buf_cmds[i].val, buf); + printf("ioctl(-1, %s, {type=" + XLAT_KNOWN(0xa, "V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE") + ", index=3735929054, memory=" + XLAT_KNOWN(0x3, "V4L2_MEMORY_OVERLAY") + ", length=3405692629, bytesused=3737845742" + ", flags=" RAW("0x2000") +#if !XLAT_RAW + XLAT_KNOWN(0x2000, "V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC") + "|" XLAT_KNOWN(0, "V4L2_BUF_FLAG_TSTAMP_SRC_EOF") +#endif + "%s, ...}) = %ld (INJECTED)\n", + sprintxlat(buf_cmds[i].str, buf_cmds[i].val, NULL), + buf_cmds[i].val == VIDIOC_DQBUF + ? ", timestamp={tv_sec=508936414, tv_usec=999999}" : "", + inject_retval); + } + + + /* VIDIOC_G_FBUF, VIDIOC_S_FBUF */ + static const struct strval32 fbuf_cmds[] = { + { ARG_STR(VIDIOC_G_FBUF) }, + { ARG_STR(VIDIOC_S_FBUF) }, + }; + + struct v4l2_framebuffer *fbuf = tail_alloc(sizeof(*fbuf)); + + for (size_t i = 0; i < ARRAY_SIZE(fbuf_cmds); i++) { + ioctl(-1, fbuf_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(fbuf_cmds[i].str, fbuf_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, fbuf_cmds[i].val, (char *) fbuf + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(fbuf_cmds[i].str, fbuf_cmds[i].val, NULL), + (char *) fbuf + 1, inject_retval); + + fill_memory32(fbuf, sizeof(*fbuf)); + fbuf->base = NULL; + + ioctl(-1, fbuf_cmds[i].val, fbuf); + printf("ioctl(-1, %s, {capability=0x80a0c0e0, flags=0x80a0c0e1" + ", base=NULL}) = %ld (INJECTED)\n", + sprintxlat(fbuf_cmds[i].str, fbuf_cmds[i].val, NULL), + inject_retval); + } + + + /* VIDIOC_G_PARM, VIDIOC_S_PARM */ + static const struct strval32 sparm_cmds[] = { + { ARG_STR(VIDIOC_G_PARM) }, + { ARG_STR(VIDIOC_S_PARM) }, + }; + + struct v4l2_streamparm *sparm = tail_alloc(sizeof(*sparm)); + + for (size_t i = 0; i < ARRAY_SIZE(sparm_cmds); i++) { + ioctl(-1, sparm_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(sparm_cmds[i].str, sparm_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, sparm_cmds[i].val, (char *) sparm + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(sparm_cmds[i].str, sparm_cmds[i].val, NULL), + (char *) sparm + 1, inject_retval); + + fill_memory32(sparm, sizeof(*sparm)); + + ioctl(-1, sparm_cmds[i].val, sparm); + printf("ioctl(-1, %s, {type=" + XLAT_UNKNOWN(0x80a0c0e0, "V4L2_BUF_TYPE_???") + "}) = %ld (INJECTED)\n", + sprintxlat(sparm_cmds[i].str, sparm_cmds[i].val, NULL), + inject_retval); + + sparm->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + + static const char *parm_str1 = "parm.capture={capability=" + XLAT_UNKNOWN(0x80a0c0e1, "V4L2_CAP_???") + ", capturemode=" + XLAT_UNKNOWN(0x80a0c0e2, "V4L2_MODE_???") + ", timeperframe=2158018787/2158018788" + ", extendedmode=0x80a0c0e5, readbuffers=2158018790}"; + + ioctl(-1, sparm_cmds[i].val, sparm); + printf("ioctl(-1, %s, {type=" + XLAT_KNOWN(0x1, "V4L2_BUF_TYPE_VIDEO_CAPTURE") + ", %s}%s%s%s) = %ld (INJECTED)\n", + sprintxlat(sparm_cmds[i].str, sparm_cmds[i].val, NULL), + parm_str1, + sparm_cmds[i].val == VIDIOC_S_PARM ? " => {" : "", + sparm_cmds[i].val == VIDIOC_S_PARM ? parm_str1 : "", + sparm_cmds[i].val == VIDIOC_S_PARM ? "}" : "", + inject_retval); + + sparm->parm.capture.capability = 0x1000; + sparm->parm.capture.capturemode = 0x1; + + static const char *parm_str2 = "parm.capture={capability=" + XLAT_KNOWN(0x1000, "V4L2_CAP_TIMEPERFRAME") + ", capturemode=" + XLAT_KNOWN(0x1, "V4L2_MODE_HIGHQUALITY") + ", timeperframe=2158018787/2158018788" + ", extendedmode=0x80a0c0e5, readbuffers=2158018790}"; + + ioctl(-1, sparm_cmds[i].val, sparm); + printf("ioctl(-1, %s, {type=" + XLAT_KNOWN(0x1, "V4L2_BUF_TYPE_VIDEO_CAPTURE") + ", %s}%s%s%s) = %ld (INJECTED)\n", + sprintxlat(sparm_cmds[i].str, sparm_cmds[i].val, NULL), + parm_str2, + sparm_cmds[i].val == VIDIOC_S_PARM ? " => {" : "", + sparm_cmds[i].val == VIDIOC_S_PARM ? parm_str2 : "", + sparm_cmds[i].val == VIDIOC_S_PARM ? "}" : "", + inject_retval); + + sparm->type = 0x9; + sparm->parm.capture.capability = 0xdeadbeef; + sparm->parm.capture.capturemode = 0xadec0ded; + + ioctl(-1, sparm_cmds[i].val, sparm); + printf("ioctl(-1, %s, {type=" + XLAT_KNOWN(0x9, "V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE") + "}) = %ld (INJECTED)\n", + sprintxlat(sparm_cmds[i].str, sparm_cmds[i].val, NULL), + inject_retval); + + fill_memory32(sparm, sizeof(*sparm)); + sparm->type = V4L2_BUF_TYPE_VIDEO_OUTPUT; + + static const char *parm_str3 = "parm.output={capability=" + XLAT_UNKNOWN(0x80a0c0e1, "V4L2_CAP_???") + ", outputmode=" + XLAT_UNKNOWN(0x80a0c0e2, "V4L2_MODE_???") + ", timeperframe=2158018787/2158018788" + ", extendedmode=0x80a0c0e5, writebuffers=2158018790}"; + + ioctl(-1, sparm_cmds[i].val, sparm); + printf("ioctl(-1, %s, {type=" + XLAT_KNOWN(0x2, "V4L2_BUF_TYPE_VIDEO_OUTPUT") + ", %s}%s%s%s) = %ld (INJECTED)\n", + sprintxlat(sparm_cmds[i].str, sparm_cmds[i].val, NULL), + parm_str3, + sparm_cmds[i].val == VIDIOC_S_PARM ? " => {" : "", + sparm_cmds[i].val == VIDIOC_S_PARM ? parm_str3 : "", + sparm_cmds[i].val == VIDIOC_S_PARM ? "}" : "", + inject_retval); + + } + + + /* VIDIOC_G_STD, VIDIOC_S_STD */ + static const struct strval32 stdid_cmds[] = { + { ARG_STR(VIDIOC_G_STD) }, + { ARG_STR(VIDIOC_S_STD) }, + }; + static const struct strval64 stdids[] = { + { ARG_STR(0) }, + { ARG_STR(0x1) }, + { ARG_STR(0xb000) }, + { ARG_STR(0x3ffffff) }, + { ARG_STR(0xffffffff) }, + { ARG_ULL_STR(0xbadc0deddeadface) }, + }; + + v4l2_std_id *stdid = tail_alloc(sizeof(*stdid)); + + for (size_t i = 0; i < ARRAY_SIZE(stdid_cmds); i++) { + ioctl(-1, stdid_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(stdid_cmds[i].str, stdid_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, stdid_cmds[i].val, (char *) stdid + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(stdid_cmds[i].str, stdid_cmds[i].val, NULL), + (char *) stdid + 1, inject_retval); + + for (size_t j = 0; j < ARRAY_SIZE(stdids); j++) { + *stdid = stdids[j].val; + + ioctl(-1, stdid_cmds[i].val, stdid); + printf("ioctl(-1, %s, [%s]) = %ld (INJECTED)\n", + sprintxlat(stdid_cmds[i].str, stdid_cmds[i].val, NULL), + stdids[j].str, inject_retval); + + } + } + + + /* VIDIOC_ENUMSTD */ + struct v4l2_standard *std = tail_alloc(sizeof(*std)); + + ioctl(-1, VIDIOC_ENUMSTD, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUMSTD), inject_retval); + + ioctl(-1, VIDIOC_ENUMSTD, (char *) std + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUMSTD), (char *) std + 1, inject_retval); + + for (size_t i = 0; i < ARRAY_SIZE(stdids); i++) { + fill_memory32(&std->frameperiod, sizeof(*std) - + offsetof(struct v4l2_standard, frameperiod)); + fill_memory_ex(std->name, sizeof(std->name), i * 47 + 1, 255); + std->index = 0xdeadface; + std->id = stdids[i].val; + + ioctl(-1, VIDIOC_ENUMSTD, std); + printf("ioctl(-1, %s, {index=3735943886, name=", + XLAT_STR(VIDIOC_ENUMSTD)); + print_quoted_cstring((char *) std->name, sizeof(std->name)); + printf(", frameperiod=2158018784/2158018785" + ", framelines=2158018786}) = %ld (INJECTED)\n", + inject_retval); + } + + + /* VIDIOC_ENUMINPUT */ + static const struct strval32 input_types[] = { + { ARG_XLAT_UNKNOWN(0, "V4L2_INPUT_TYPE_???") }, + { V4L2_INPUT_TYPE_TUNER, + XLAT_KNOWN(0x1, "V4L2_INPUT_TYPE_TUNER") }, + { V4L2_INPUT_TYPE_CAMERA, + XLAT_KNOWN(0x2, "V4L2_INPUT_TYPE_CAMERA") }, + { ARG_XLAT_UNKNOWN(0x4, "V4L2_INPUT_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0xdeadc0de, "V4L2_INPUT_TYPE_???") }, + }; + + struct v4l2_input *input = tail_alloc(sizeof(*input)); + + ioctl(-1, VIDIOC_ENUMINPUT, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUMINPUT), inject_retval); + + ioctl(-1, VIDIOC_ENUMINPUT, (char *) input + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUMINPUT), (char *) input + 1, inject_retval); + + for (size_t i = 0; i < ARRAY_SIZE(stdids); i++) { + for (size_t j = 0; j < ARRAY_SIZE(input_types); j++) { + fill_memory32(input, sizeof(*input)); + fill_memory_ex(input->name, sizeof(input->name), + i * 47 + 13, 255); + input->type = input_types[j].val; + input->std = stdids[i].val; + + ioctl(-1, VIDIOC_ENUMINPUT, input); + printf("ioctl(-1, %s, {index=2158018784, name=", + XLAT_STR(VIDIOC_ENUMINPUT)); + print_quoted_cstring((char *) input->name, + sizeof(input->name)); + printf(", type=%s}) = %ld (INJECTED)\n", + input_types[j].str, inject_retval); + } + } + + + /* VIDIOC_G_CTRL, VIDIOC_S_CTRL */ + static const struct strval32 ctrl_cmds[] = { + { ARG_STR(VIDIOC_G_CTRL) }, + { ARG_STR(VIDIOC_S_CTRL) }, + }; + + struct v4l2_control *ctrl = tail_alloc(sizeof(*ctrl)); + + for (size_t i = 0; i < ARRAY_SIZE(ctrl_cmds); i++) { + ioctl(-1, ctrl_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(ctrl_cmds[i].str, ctrl_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, ctrl_cmds[i].val, (char *) ctrl + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(ctrl_cmds[i].str, ctrl_cmds[i].val, NULL), + (char *) ctrl + 1, inject_retval); + + /* NB: cid printing is mostly tested in ioctl_v4l2.c */ + fill_memory32(ctrl, sizeof(*ctrl)); + ioctl(-1, ctrl_cmds[i].val, ctrl); + printf("ioctl(-1, %s, {id=0x80a0c0e0" + NRAW(" /* V4L2_CID_??? */") + ", value=-2136948511%s}) = %ld (INJECTED)\n", + sprintxlat(ctrl_cmds[i].str, ctrl_cmds[i].val, NULL), + ctrl_cmds[i].val == VIDIOC_S_CTRL + ? " => -2136948511" : "", + inject_retval); + } + + + /* VIDIOC_G_TUNER, VIDIOC_S_TUNER */ + static const struct strval32 tuner_cmds[] = { + { ARG_STR(VIDIOC_G_TUNER) }, + { ARG_STR(VIDIOC_S_TUNER) }, + }; + static const struct strval32 tuner_types[] = { + { ARG_XLAT_UNKNOWN(0, "V4L2_TUNER_???") }, + { ARG_XLAT_KNOWN(0x1, "V4L2_TUNER_RADIO") }, + { ARG_XLAT_KNOWN(0x5, "V4L2_TUNER_RF") }, + { ARG_XLAT_UNKNOWN(0x6, "V4L2_TUNER_???") }, + { ARG_XLAT_UNKNOWN(0xdeadc0de, "V4L2_TUNER_???") }, + }; + static const struct strval32 tuner_caps[] = { + { ARG_STR(0) }, + { ARG_XLAT_KNOWN(0x1fff, "V4L2_TUNER_CAP_LOW" + "|V4L2_TUNER_CAP_NORM" + "|V4L2_TUNER_CAP_HWSEEK_BOUNDED" + "|V4L2_TUNER_CAP_HWSEEK_WRAP" + "|V4L2_TUNER_CAP_STEREO|V4L2_TUNER_CAP_LANG2" + "|V4L2_TUNER_CAP_LANG1|V4L2_TUNER_CAP_RDS" + "|V4L2_TUNER_CAP_RDS_BLOCK_IO" + "|V4L2_TUNER_CAP_RDS_CONTROLS" + "|V4L2_TUNER_CAP_FREQ_BANDS" + "|V4L2_TUNER_CAP_HWSEEK_PROG_LIM" + "|V4L2_TUNER_CAP_1HZ") }, + { ARG_XLAT_KNOWN(0xdeadc0de, "V4L2_TUNER_CAP_NORM" + "|V4L2_TUNER_CAP_HWSEEK_BOUNDED" + "|V4L2_TUNER_CAP_HWSEEK_WRAP" + "|V4L2_TUNER_CAP_STEREO|V4L2_TUNER_CAP_LANG1" + "|V4L2_TUNER_CAP_RDS|0xdeadc000") }, + { ARG_XLAT_UNKNOWN(0xffffe000, "V4L2_TUNER_CAP_???") }, + }; + static const struct strval32 tuner_rxsc[] = { + { ARG_STR(0) }, + { ARG_XLAT_KNOWN(0x1f, "V4L2_TUNER_SUB_MONO" + "|V4L2_TUNER_SUB_STEREO|V4L2_TUNER_SUB_LANG2" + "|V4L2_TUNER_SUB_LANG1|V4L2_TUNER_SUB_RDS") }, + { ARG_XLAT_KNOWN(0xbeefface, "V4L2_TUNER_SUB_STEREO" + "|V4L2_TUNER_SUB_LANG2|V4L2_TUNER_SUB_LANG1" + "|0xbeeffac0") }, + { ARG_XLAT_UNKNOWN(0xffffffe0, "V4L2_TUNER_SUB_???") }, + + }; + static const struct strval32 tuner_amodes[] = { + { ARG_XLAT_KNOWN(0, "V4L2_TUNER_MODE_MONO") }, + { ARG_XLAT_KNOWN(0x2, "V4L2_TUNER_MODE_LANG2") }, + { ARG_XLAT_KNOWN(0x4, "V4L2_TUNER_MODE_LANG1_LANG2") }, + { ARG_XLAT_UNKNOWN(0x5, "V4L2_TUNER_MODE_???") }, + { ARG_XLAT_UNKNOWN(0xcaffeeed, "V4L2_TUNER_MODE_???") }, + }; + static const size_t tuner_iters = MAX(MAX(MAX(ARRAY_SIZE(tuner_types), + ARRAY_SIZE(tuner_caps)), + ARRAY_SIZE(tuner_rxsc)), + ARRAY_SIZE(tuner_amodes)); + + struct v4l2_tuner *tuner = tail_alloc(sizeof(*tuner)); + + for (size_t i = 0; i < ARRAY_SIZE(tuner_cmds); i++) { + ioctl(-1, tuner_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(tuner_cmds[i].str, tuner_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, tuner_cmds[i].val, (char *) tuner + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(tuner_cmds[i].str, tuner_cmds[i].val, NULL), + (char *) tuner + 1, inject_retval); + + for (size_t j = 0; j < tuner_iters; j++) { + fill_memory32(tuner, sizeof(*tuner)); + fill_memory_ex(tuner->name, sizeof(tuner->name), + j * 47 + 7, 255); + tuner->type = + tuner_types[j % ARRAY_SIZE(tuner_types)].val; + tuner->capability = + tuner_caps[j % ARRAY_SIZE(tuner_caps)].val; + tuner->rxsubchans = + tuner_rxsc[j % ARRAY_SIZE(tuner_rxsc)].val; + tuner->audmode = + tuner_amodes[j % ARRAY_SIZE(tuner_amodes)].val; + + ioctl(-1, tuner_cmds[i].val, tuner); + printf("ioctl(-1, %s, {index=2158018784", + sprintxlat(tuner_cmds[i].str, + tuner_cmds[i].val, NULL)); + for (size_t k = 0; + k < (tuner_cmds[i].val == VIDIOC_S_TUNER ? 2 : 1); + k++) { + printf("%sname=", k ? "} => {" : ", "); + print_quoted_cstring((char *) tuner->name, + sizeof(tuner->name)); + printf(", type=%s, capability=%s" + ", rangelow=2158018795" + ", rangehigh=2158018796, rxsubchans=%s" + ", audmode=%s, signal=-2136948497" + ", afc=-2136948496", + tuner_types[j % + ARRAY_SIZE(tuner_types)].str, + tuner_caps[j % + ARRAY_SIZE(tuner_caps)].str, + tuner_rxsc[j % + ARRAY_SIZE(tuner_rxsc)].str, + tuner_amodes[j % + ARRAY_SIZE(tuner_amodes)].str); + } + printf("}) = %ld (INJECTED)\n", inject_retval); + } + } + + + /* VIDIOC_QUERYCTRL */ + static const struct strval32 cids[] = { + { ARG_XLAT_UNKNOWN(0, "V4L2_CID_???") }, + { ARG_XLAT_UNKNOWN(0x97abcd, "V4L2_CID_???") }, + { ARG_XLAT_KNOWN(0x980000, "V4L2_CTRL_CLASS_USER+0") }, + { ARG_XLAT_KNOWN(0x990a64, + "V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE") }, + { ARG_XLAT_KNOWN(0xa31234, "V4L2_CTRL_CLASS_DETECT+0x1234") }, + { ARG_XLAT_UNKNOWN(0xa40000, "V4L2_CID_???") }, + { 0xdeadc0de, +#if XLAT_RAW + "0xdeadc0de" +#else + XLAT_KNOWN(0xc0000000, "V4L2_CTRL_FLAG_NEXT_CTRL" + "|V4L2_CTRL_FLAG_NEXT_COMPOUND") + "|0x1eadc0de /* V4L2_CID_??? */" +#endif + }, + }; + static const struct strval32 ctrl_types[] = { + { ARG_XLAT_UNKNOWN(0, "V4L2_CTRL_TYPE_???") }, + { ARG_XLAT_KNOWN(0x1, "V4L2_CTRL_TYPE_INTEGER") }, + { ARG_XLAT_KNOWN(0x2, "V4L2_CTRL_TYPE_BOOLEAN") }, + { ARG_XLAT_KNOWN(0x3, "V4L2_CTRL_TYPE_MENU") }, + { ARG_XLAT_KNOWN(0x4, "V4L2_CTRL_TYPE_BUTTON") }, + { ARG_XLAT_KNOWN(0x5, "V4L2_CTRL_TYPE_INTEGER64") }, + { ARG_XLAT_KNOWN(0x6, "V4L2_CTRL_TYPE_CTRL_CLASS") }, + { ARG_XLAT_KNOWN(0x7, "V4L2_CTRL_TYPE_STRING") }, + { ARG_XLAT_KNOWN(0x8, "V4L2_CTRL_TYPE_BITMASK") }, + { ARG_XLAT_KNOWN(0x9, "V4L2_CTRL_TYPE_INTEGER_MENU") }, + { ARG_XLAT_UNKNOWN(0xa, "V4L2_CTRL_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0xff, "V4L2_CTRL_TYPE_???") }, + { ARG_XLAT_KNOWN(0x100, "V4L2_CTRL_TYPE_U8") }, + { ARG_XLAT_KNOWN(0x101, "V4L2_CTRL_TYPE_U16") }, + { ARG_XLAT_KNOWN(0x102, "V4L2_CTRL_TYPE_U32") }, + { ARG_XLAT_UNKNOWN(0x103, "V4L2_CTRL_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0x104, "V4L2_CTRL_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0x105, "V4L2_CTRL_TYPE_???") }, + { ARG_XLAT_KNOWN(0x106, "V4L2_CTRL_TYPE_AREA") }, + { ARG_XLAT_UNKNOWN(0x107, "V4L2_CTRL_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0xdeadc0de, "V4L2_CTRL_TYPE_???") }, + }; + static const struct strval32 ctrl_flags[] = { + { ARG_STR(0) }, + { ARG_XLAT_KNOWN(0x7ff, "V4L2_CTRL_FLAG_DISABLED" + "|V4L2_CTRL_FLAG_GRABBED" + "|V4L2_CTRL_FLAG_READ_ONLY" + "|V4L2_CTRL_FLAG_UPDATE" + "|V4L2_CTRL_FLAG_INACTIVE" + "|V4L2_CTRL_FLAG_SLIDER" + "|V4L2_CTRL_FLAG_WRITE_ONLY" + "|V4L2_CTRL_FLAG_VOLATILE" + "|V4L2_CTRL_FLAG_HAS_PAYLOAD" + "|V4L2_CTRL_FLAG_EXECUTE_ON_WRITE" + "|V4L2_CTRL_FLAG_MODIFY_LAYOUT") }, + { ARG_XLAT_KNOWN(0xbeefface, "V4L2_CTRL_FLAG_GRABBED" + "|V4L2_CTRL_FLAG_READ_ONLY" + "|V4L2_CTRL_FLAG_UPDATE" + "|V4L2_CTRL_FLAG_WRITE_ONLY" + "|V4L2_CTRL_FLAG_VOLATILE" + "|V4L2_CTRL_FLAG_EXECUTE_ON_WRITE" + "|0xbeeff800") }, + { ARG_XLAT_UNKNOWN(0xfffff800, "V4L2_CTRL_FLAG_???") }, + }; + static const size_t qctrl_iters = MAX(MAX(ARRAY_SIZE(cids), + ARRAY_SIZE(ctrl_types)), + ARRAY_SIZE(ctrl_flags)); + + struct v4l2_queryctrl *qctrl = tail_alloc(sizeof(*qctrl)); + + ioctl(-1, VIDIOC_QUERYCTRL, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_QUERYCTRL), inject_retval); + + ioctl(-1, VIDIOC_QUERYCTRL, (char *) qctrl + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_QUERYCTRL), (char *) qctrl + 1, inject_retval); + + for (size_t i = 0; i < qctrl_iters; i++) { + fill_memory32(qctrl, sizeof(*qctrl)); + fill_memory_ex(qctrl->name, sizeof(qctrl->name), + i * 47 + 5, 255); + qctrl->id = cids[i % ARRAY_SIZE(cids)].val; + qctrl->type = ctrl_types[i % ARRAY_SIZE(ctrl_types)].val; + qctrl->flags = ctrl_flags[i % ARRAY_SIZE(ctrl_flags)].val; + + if (i % 2) + memset(qctrl->reserved, 0, sizeof(qctrl->reserved)); + + ioctl(-1, VIDIOC_QUERYCTRL, qctrl); + printf("ioctl(-1, %s, {id=%s, type=%s, name=", + XLAT_STR(VIDIOC_QUERYCTRL), + cids[i % ARRAY_SIZE(cids)].str, + ctrl_types[i % ARRAY_SIZE(ctrl_types)].str); + print_quoted_cstring((char *) qctrl->name, sizeof(qctrl->name)); +#if VERBOSE + printf(", minimum=-2136948502, maximum=-2136948501" + ", step=-2136948500, default_value=-2136948499" + ", flags=%s%s", + ctrl_flags[i % ARRAY_SIZE(ctrl_flags)].str, + i % 2 ? "" : ", reserved=[0x80a0c0ef, 0x80a0c0f0]"); +#else + printf(", ..."); +#endif + printf("}) = %ld (INJECTED)\n", inject_retval); + } + + + /* VIDIOC_G_INPUT, VIDIOC_S_INPUT */ + static const struct strval32 input_cmds[] = { + { ARG_STR(VIDIOC_G_INPUT) }, + { ARG_STR(VIDIOC_S_INPUT) }, + }; + static const struct strval32 inputids[] = { + { ARG_STR(0) }, + { ARG_STR(1) }, + { ARG_STR(1578221295) }, + { ARG_STR(31415926) }, + { ARG_STR(4294967295) }, + }; + + int *inputid = tail_alloc(sizeof(*inputid)); + + for (size_t i = 0; i < ARRAY_SIZE(input_cmds); i++) { + ioctl(-1, input_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(input_cmds[i].str, input_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, input_cmds[i].val, (char *) inputid + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(input_cmds[i].str, input_cmds[i].val, NULL), + (char *) inputid + 1, inject_retval); + + for (size_t j = 0; j < ARRAY_SIZE(inputids); j++) { + *inputid = inputids[j].val; + + ioctl(-1, input_cmds[i].val, inputid); + printf("ioctl(-1, %s, [%s]) = %ld (INJECTED)\n", + sprintxlat(input_cmds[i].str, input_cmds[i].val, + NULL), + inputids[j].str, inject_retval); + + } + } + + + /* VIDIOC_CROPCAP */ + struct v4l2_cropcap *ccap = tail_alloc(sizeof(*ccap)); + + fill_memory32(ccap, sizeof(*ccap)); + + ioctl(-1, VIDIOC_CROPCAP, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_CROPCAP), inject_retval); + + ioctl(-1, VIDIOC_CROPCAP, (char *) ccap + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_CROPCAP), (char *) ccap + 1, inject_retval); + + for (size_t i = 0; i < ARRAY_SIZE(buf_types); i++) { + ccap->type = buf_types[i].val; + + ioctl(-1, VIDIOC_CROPCAP, ccap); + printf("ioctl(-1, %s, {type=%s" + ", bounds={left=-2136948511, top=-2136948510" + ", width=2158018787, height=2158018788}" + ", defrect={left=-2136948507, top=-2136948506" + ", width=2158018791, height=2158018792}" + ", pixelaspect=2158018793/2158018794})" + " = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_CROPCAP), + buf_types[i].str, inject_retval); + } + + + /* VIDIOC_G_CROP, VIDIOC_S_CROP */ + static const struct strval32 crop_cmds[] = { + { ARG_STR(VIDIOC_G_CROP) }, + { ARG_STR(VIDIOC_S_CROP) }, + }; + struct v4l2_crop *crop = tail_alloc(sizeof(*crop)); + + for (size_t i = 0; i < ARRAY_SIZE(crop_cmds); i++) { + fill_memory32(crop, sizeof(*crop)); + + ioctl(-1, crop_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(crop_cmds[i].str, crop_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, crop_cmds[i].val, (char *) crop + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(crop_cmds[i].str, crop_cmds[i].val, NULL), + (char *) crop + 1, inject_retval); + + for (size_t j = 0; j < ARRAY_SIZE(buf_types); j++) { + crop->type = buf_types[j].val; + + ioctl(-1, crop_cmds[i].val, crop); + printf("ioctl(-1, %s, {type=%s, c={left=-2136948511" + ", top=-2136948510, width=2158018787" + ", height=2158018788}}) = %ld (INJECTED)\n", + sprintxlat(crop_cmds[i].str, crop_cmds[i].val, + NULL), + buf_types[j].str, inject_retval); + } + } + + +#ifdef VIDIOC_S_EXT_CTRLS + /* VIDIOC_S_EXT_CTRLS, VIDIOC_TRY_EXT_CTRLS, VIDIOC_G_EXT_CTRLS */ + static const struct strval32 ectrl_cmds[] = { + { ARG_STR(VIDIOC_S_EXT_CTRLS) }, + { ARG_STR(VIDIOC_TRY_EXT_CTRLS) }, + { ARG_STR(VIDIOC_G_EXT_CTRLS) }, + }; + /* static const struct strval32 ectrl_which = { + }; */ + + struct v4l2_ext_controls *ectrls = tail_alloc(sizeof(*ectrls)); + /* struct v4l2_ext_control *ectrl = tail_alloc(sizeof(*ectrl) * 2); */ + + for (size_t i = 0; i < ARRAY_SIZE(ectrl_cmds); i++) { + fill_memory32(ectrls, sizeof(*ectrls)); + + ioctl(-1, ectrl_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(ectrl_cmds[i].str, ectrl_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, ectrl_cmds[i].val, (char *) ectrls + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(ectrl_cmds[i].str, ectrl_cmds[i].val, NULL), + (char *) ectrls + 1, inject_retval); + } + +#endif /* VIDIOC_S_EXT_CTRLS */ + + +#ifdef HAVE_STRUCT_V4L2_FRMSIZEENUM + /* VIDIOC_ENUM_FRAMESIZES */ + static const struct strval32 frmsz_simple_types[] = { + { ARG_XLAT_UNKNOWN(0, "V4L2_FRMSIZE_TYPE_???") }, + { ARG_XLAT_KNOWN(0x2, "V4L2_FRMSIZE_TYPE_CONTINUOUS") }, + { ARG_XLAT_UNKNOWN(0x4, "V4L2_FRMSIZE_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0xdeadf157, "V4L2_FRMSIZE_TYPE_???") }, + }; + + struct v4l2_frmsizeenum *fse = tail_alloc(sizeof(*fse)); + + ioctl(-1, VIDIOC_ENUM_FRAMESIZES, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMESIZES), inject_retval); + + ioctl(-1, VIDIOC_ENUM_FRAMESIZES, (char *) fse + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMESIZES), (char *) fse + 1, + inject_retval); + + fill_memory32(fse, sizeof(*fse)); + fse->type = V4L2_FRMSIZE_TYPE_DISCRETE; + + ioctl(-1, VIDIOC_ENUM_FRAMESIZES, fse); + printf("ioctl(-1, %s, {index=2158018784, pixel_format=" + RAW("0x80a0c0e1") + NRAW("v4l2_fourcc('\\xe1', '\\xc0', '\\xa0', '\\x80')") + ", type=" XLAT_KNOWN(0x1, "V4L2_FRMSIZE_TYPE_DISCRETE") + ", discrete={width=2158018787, height=2158018788}" + "}) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMESIZES), inject_retval); + + fse->pixel_format = 0x5c22270d; + fse->type = V4L2_FRMSIZE_TYPE_STEPWISE; + + ioctl(-1, VIDIOC_ENUM_FRAMESIZES, fse); + printf("ioctl(-1, %s, {index=2158018784, pixel_format=" + RAW("0x5c22270d") + NRAW("v4l2_fourcc('\\x0d', '\\\'', '\"', '\\\\')") + ", type=" XLAT_KNOWN(0x3, "V4L2_FRMSIZE_TYPE_STEPWISE") + ", stepwise={min_width=2158018787, max_width=2158018788" + ", step_width=2158018789, min_height=2158018790" + ", max_height=2158018791, step_height=2158018792}" + "}) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMESIZES), inject_retval); + + for (size_t i = 0; i < ARRAY_SIZE(frmsz_simple_types); i++) { + fill_memory32(fse, sizeof(*fse)); + fse->type = frmsz_simple_types[i].val; + + ioctl(-1, VIDIOC_ENUM_FRAMESIZES, fse); + printf("ioctl(-1, %s, {index=2158018784, pixel_format=" + RAW("0x80a0c0e1") + NRAW("v4l2_fourcc('\\xe1', '\\xc0', '\\xa0', '\\x80')") + ", type=%s}) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMESIZES), + frmsz_simple_types[i].str, inject_retval); + + } +#endif /* HAVE_STRUCT_V4L2_FRMSIZEENUM */ + + +#ifdef HAVE_STRUCT_V4L2_FRMIVALENUM + /* VIDIOC_ENUM_FRAMEINTERVALS */ + static const struct strval32 frmival_simple_types[] = { + { ARG_XLAT_UNKNOWN(0, "V4L2_FRMIVAL_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0x4, "V4L2_FRMIVAL_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0xdeadf157, "V4L2_FRMIVAL_TYPE_???") }, + }; + static const struct strval32 frmival_step_types[] = { + { ARG_XLAT_KNOWN(0x2, "V4L2_FRMIVAL_TYPE_CONTINUOUS") }, + { ARG_XLAT_KNOWN(0x3, "V4L2_FRMIVAL_TYPE_STEPWISE") }, + }; + + struct v4l2_frmivalenum *fie = tail_alloc(sizeof(*fie)); + + ioctl(-1, VIDIOC_ENUM_FRAMEINTERVALS, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMEINTERVALS), inject_retval); + + ioctl(-1, VIDIOC_ENUM_FRAMEINTERVALS, (char *) fie + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMEINTERVALS), (char *) fie + 1, + inject_retval); + + fill_memory32(fie, sizeof(*fie)); + fie->type = V4L2_FRMIVAL_TYPE_DISCRETE; + + ioctl(-1, VIDIOC_ENUM_FRAMEINTERVALS, fie); + printf("ioctl(-1, %s, {index=2158018784, pixel_format=" + RAW("0x80a0c0e1") + NRAW("v4l2_fourcc('\\xe1', '\\xc0', '\\xa0', '\\x80')") + ", width=2158018786, height=2158018787" + ", type=" XLAT_KNOWN(0x1, "V4L2_FRMIVAL_TYPE_DISCRETE") + ", discrete=2158018789/2158018790}) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMEINTERVALS), inject_retval); + + fie->pixel_format = 0x5c22270d; + + for (size_t i = 0; i < ARRAY_SIZE(frmival_step_types); i++) { + fie->type = frmival_step_types[i].val; + + ioctl(-1, VIDIOC_ENUM_FRAMEINTERVALS, fie); + printf("ioctl(-1, %s, {index=2158018784, pixel_format=" + RAW("0x5c22270d") + NRAW("v4l2_fourcc('\\x0d', '\\\'', '\"', '\\\\')") + ", width=2158018786, height=2158018787, type=%s" + ", stepwise={min=2158018789/2158018790" + ", max=2158018791/2158018792" + ", step=2158018793/2158018794}}) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMEINTERVALS), + frmival_step_types[i].str, inject_retval); + } + + for (size_t i = 0; i < ARRAY_SIZE(frmival_simple_types); i++) { + fill_memory32(fie, sizeof(*fie)); + fie->type = frmival_simple_types[i].val; + + ioctl(-1, VIDIOC_ENUM_FRAMEINTERVALS, fie); + printf("ioctl(-1, %s, {index=2158018784, pixel_format=" + RAW("0x80a0c0e1") + NRAW("v4l2_fourcc('\\xe1', '\\xc0', '\\xa0', '\\x80')") + ", width=2158018786, height=2158018787, type=%s})" + " = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMEINTERVALS), + frmival_simple_types[i].str, inject_retval); + + } +#endif /* HAVE_STRUCT_V4L2_FRMIVALENUM */ + + +#ifdef HAVE_STRUCT_V4L2_CREATE_BUFFERS + /* VIDIOC_CREATE_BUFS */ + struct v4l2_create_buffers *cbuf = tail_alloc(sizeof(*cbuf)); + + fill_memory32(cbuf, sizeof(*cbuf)); + + ioctl(-1, VIDIOC_CREATE_BUFS, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_CREATE_BUFS), inject_retval); + + ioctl(-1, VIDIOC_CREATE_BUFS, (char *) cbuf + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_CREATE_BUFS), (char *) cbuf + 1, inject_retval); + + for (size_t i = 0; i < MAX(ARRAY_SIZE(buf_types), + ARRAY_SIZE(reqb_mems)); i++) { + cbuf->memory = reqb_mems[i % ARRAY_SIZE(reqb_mems)].val; + cbuf->format.type = buf_types[i % ARRAY_SIZE(buf_types)].val; + if (!fill_fmt(&cbuf->format)) + continue; + + ioctl(-1, VIDIOC_CREATE_BUFS, cbuf); + printf("ioctl(-1, %s, {count=2158018785, memory=%s" + ", format={type=%s", + XLAT_STR(VIDIOC_CREATE_BUFS), + reqb_mems[i % ARRAY_SIZE(reqb_mems)].str, + buf_types[i % ARRAY_SIZE(buf_types)].str); + print_fmt(", ", &cbuf->format); + printf("}}) = %ld ({index=2158018784, count=2158018785})" + " (INJECTED)\n", inject_retval); + } +#endif /* HAVE_STRUCT_V4L2_CREATE_BUFFERS */ + + puts("+++ exited with 0 +++"); + + return 0; +} diff --git a/tests-m32/ioctl_v4l2-success.gen.test b/tests-m32/ioctl_v4l2-success.gen.test new file mode 100755 index 00000000..90376491 --- /dev/null +++ b/tests-m32/ioctl_v4l2-success.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-success +ioctl-success.sh -a29); do not edit. +set -- -a29 +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-m32/ioctl_v4l2-v-Xabbrev.c b/tests-m32/ioctl_v4l2-v-Xabbrev.c new file mode 100644 index 00000000..3e40ce38 --- /dev/null +++ b/tests-m32/ioctl_v4l2-v-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_v4l2-v.c" diff --git a/tests-m32/ioctl_v4l2-v-Xabbrev.gen.test b/tests-m32/ioctl_v4l2-v-Xabbrev.gen.test new file mode 100755 index 00000000..64f2eacb --- /dev/null +++ b/tests-m32/ioctl_v4l2-v-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-v-Xabbrev +ioctl.test -v -Xabbrev); do not edit. +set -- -v -Xabbrev +. "${srcdir=.}/ioctl.test" diff --git a/tests-m32/ioctl_v4l2-v-Xraw.c b/tests-m32/ioctl_v4l2-v-Xraw.c new file mode 100644 index 00000000..42d6610a --- /dev/null +++ b/tests-m32/ioctl_v4l2-v-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_v4l2-v.c" diff --git a/tests-m32/ioctl_v4l2-v-Xraw.gen.test b/tests-m32/ioctl_v4l2-v-Xraw.gen.test new file mode 100755 index 00000000..8fb58831 --- /dev/null +++ b/tests-m32/ioctl_v4l2-v-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-v-Xraw +ioctl.test -v -Xraw); do not edit. +set -- -v -Xraw +. "${srcdir=.}/ioctl.test" diff --git a/tests-m32/ioctl_v4l2-v-Xverbose.c b/tests-m32/ioctl_v4l2-v-Xverbose.c new file mode 100644 index 00000000..6230f9a1 --- /dev/null +++ b/tests-m32/ioctl_v4l2-v-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_v4l2-v.c" diff --git a/tests-m32/ioctl_v4l2-v-Xverbose.gen.test b/tests-m32/ioctl_v4l2-v-Xverbose.gen.test new file mode 100755 index 00000000..72dcde68 --- /dev/null +++ b/tests-m32/ioctl_v4l2-v-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-v-Xverbose +ioctl.test -v -Xverbose); do not edit. +set -- -v -Xverbose +. "${srcdir=.}/ioctl.test" diff --git a/tests-m32/ioctl_v4l2-v.c b/tests-m32/ioctl_v4l2-v.c new file mode 100644 index 00000000..dcb6c24d --- /dev/null +++ b/tests-m32/ioctl_v4l2-v.c @@ -0,0 +1,3 @@ +/* This file is part of ioctl_v4l2-v strace test. */ +#define VERBOSE 1 +#include "ioctl_v4l2.c" diff --git a/tests-m32/ioctl_v4l2-v.gen.test b/tests-m32/ioctl_v4l2-v.gen.test new file mode 100755 index 00000000..c5fe341d --- /dev/null +++ b/tests-m32/ioctl_v4l2-v.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-v +ioctl.test -v); do not edit. +set -- -v +. "${srcdir=.}/ioctl.test" diff --git a/tests-m32/ioctl_v4l2.c b/tests-m32/ioctl_v4l2.c index 54e9ee7c..c52798a4 100644 --- a/tests-m32/ioctl_v4l2.c +++ b/tests-m32/ioctl_v4l2.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -8,11 +8,23 @@ #include "tests.h" #include +#include #include #include #include -#include -#include +#include "kernel_v4l2_types.h" + +#define XLAT_MACROS_ONLY +# include "xlat/v4l2_ioctl_cmds.h" +#undef XLAT_MACROS_ONLY + +#ifndef V4L2_CTRL_FLAG_NEXT_CTRL +# define V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000 +#endif + +#ifndef V4L2_CTRL_CLASS_DETECT +# define V4L2_CTRL_CLASS_DETECT 0x00a30000 +#endif #define cc0(arg) ((unsigned int) (unsigned char) (arg)) #define cc1(arg) ((unsigned int) (unsigned char) ((unsigned int) (arg) >> 8)) @@ -70,8 +82,21 @@ init_v4l2_format(struct v4l2_format *const f, i < ARRAY_SIZE(f->fmt.pix_mp.plane_fmt); i++) { cur_pix[i].sizeimage = 0x1e3c531c | i; - cur_pix[i].bytesperline = 0xa983d721 | i; + if (sizeof(cur_pix[i].bytesperline) == + sizeof(uint32_t)) { + cur_pix[i].bytesperline = 0xa983d721 | i; + } else { +# if WORDS_BIGENDIAN + cur_pix[i].bytesperline = 0xa983; + cur_pix[i].reserved[0] = 0xd721 | i; +# else + cur_pix[i].bytesperline = 0xd721 | i; + cur_pix[i].reserved[0] = 0xa983; +# endif + } } + if (buf_type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) + f->fmt.pix_mp.num_planes = 1; break; } #endif @@ -85,10 +110,10 @@ init_v4l2_format(struct v4l2_format *const f, f->fmt.win.w.height = 0xbbd886c8; f->fmt.win.field = V4L2_FIELD_ANY; f->fmt.win.chromakey = 0xdb1f991f; - f->fmt.win.clipcount = 2; + f->fmt.win.clipcount = + buf_type == V4L2_BUF_TYPE_VIDEO_OVERLAY ? 3 : 2; f->fmt.win.clips = - tail_alloc(sizeof(*f->fmt.win.clips) * - f->fmt.win.clipcount); + tail_alloc(sizeof(*f->fmt.win.clips) * 2); f->fmt.win.clips[0].c.left = 0x3313d36e; f->fmt.win.clips[0].c.top = 0xcdffe510; f->fmt.win.clips[0].c.width = 0x2064f3a8; @@ -101,6 +126,9 @@ init_v4l2_format(struct v4l2_format *const f, f->fmt.win.bitmap = (void *) -2UL; #ifdef HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA f->fmt.win.global_alpha = 0xce; +#else + ((uint8_t *) &f->fmt.win)[offsetofend(struct v4l2_window, + bitmap)] = 0xce; #endif break; case V4L2_BUF_TYPE_VBI_CAPTURE: @@ -138,7 +166,12 @@ init_v4l2_format(struct v4l2_format *const f, case V4L2_BUF_TYPE_SDR_OUTPUT: f->fmt.sdr.pixelformat = sf_magic; # ifdef HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE - f->fmt.sdr.buffersize = 0x25afabfb; + if (sizeof(f->fmt.sdr.buffersize == sizeof(uint32_t))) + f->fmt.sdr.buffersize = 0x25afabfb; + else + ((uint32_t *) &f->fmt.sdr)[1] = 0x25afabfb; +# else + ((uint32_t *) &f->fmt.sdr)[1] = 0x25afabfb; # endif break; #endif @@ -155,8 +188,8 @@ init_v4l2_format(struct v4l2_format *const f, static void dprint_ioctl_v4l2(struct v4l2_format *const f, - const char *request, const unsigned int buf_type, - const char *buf_type_string) + XLAT_SEL(unsigned reqval, const char *reqstr), + const unsigned int buf_type, const char *buf_type_string) { int saved_errno; @@ -164,12 +197,16 @@ dprint_ioctl_v4l2(struct v4l2_format *const f, case V4L2_BUF_TYPE_VIDEO_CAPTURE: case V4L2_BUF_TYPE_VIDEO_OUTPUT: saved_errno = errno; - printf("ioctl(-1, %s, {type=%s" + printf("ioctl(-1, " XLAT_FMT ", {type=" XLAT_FMT ", fmt.pix={width=%u, height=%u, pixelformat=", - request, - buf_type_string, + XLAT_SEL(reqval, reqstr), + XLAT_SEL(buf_type, buf_type_string), f->fmt.pix.width, f->fmt.pix.height); +#if XLAT_RAW + printf("%#x", buf_type == V4L2_BUF_TYPE_VIDEO_CAPTURE + ? magic : pf_magic); +#else /* !XLAT_RAW */ if (buf_type == V4L2_BUF_TYPE_VIDEO_CAPTURE) printf("v4l2_fourcc('\\x%x', '\\x%x', '\\x%x', '\\x%x')", cc0(magic), cc1(magic), cc2(magic), cc3(magic)); @@ -178,12 +215,15 @@ dprint_ioctl_v4l2(struct v4l2_format *const f, "/* V4L2_PIX_FMT_SPCA508 */", cc0(pf_magic), cc1(pf_magic), cc2(pf_magic), cc3(pf_magic)); +#endif /* XLAT_RAW */ errno = saved_errno; - printf(", field=V4L2_FIELD_NONE, bytesperline=%u, sizeimage=%u" - ", colorspace=V4L2_COLORSPACE_JPEG}}) = -1 EBADF (%m)\n", + printf(", field=" XLAT_FMT ", bytesperline=%u, sizeimage=%u" + ", colorspace=" XLAT_FMT "}}) = -1 EBADF (%m)\n", + XLAT_ARGS(V4L2_FIELD_NONE), f->fmt.pix.bytesperline, - f->fmt.pix.sizeimage); + f->fmt.pix.sizeimage, + XLAT_ARGS(V4L2_COLORSPACE_JPEG)); break; #if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: @@ -191,13 +231,17 @@ dprint_ioctl_v4l2(struct v4l2_format *const f, unsigned int i; saved_errno = errno; - printf("ioctl(-1, %s" - ", {type=%s" + printf("ioctl(-1, " XLAT_FMT + ", {type=" XLAT_FMT ", fmt.pix_mp={width=%u, height=%u, pixelformat=", - request, - buf_type_string, + XLAT_SEL(reqval, reqstr), + XLAT_SEL(buf_type, buf_type_string), f->fmt.pix_mp.width, f->fmt.pix_mp.height); +# if XLAT_RAW + printf("%#x", buf_type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE + ? magic : pf_magic); +# else /* !XLAT_RAW */ if (buf_type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) printf("v4l2_fourcc('\\x%x', '\\x%x', '\\x%x', '\\x%x')", cc0(magic), cc1(magic), cc2(magic), cc3(magic)); @@ -206,21 +250,35 @@ dprint_ioctl_v4l2(struct v4l2_format *const f, "/* V4L2_PIX_FMT_SPCA508 */", cc0(pf_magic), cc1(pf_magic), cc2(pf_magic), cc3(pf_magic)); +# endif /* XLAT_RAW */ - printf(", field=V4L2_FIELD_NONE, colorspace=" - "V4L2_COLORSPACE_JPEG, plane_fmt=["); + printf(", field=" XLAT_FMT ", colorspace=" XLAT_FMT + ", plane_fmt=[", + XLAT_ARGS(V4L2_FIELD_NONE), + XLAT_ARGS(V4L2_COLORSPACE_JPEG)); for (i = 0; - i < ARRAY_SIZE(f->fmt.pix_mp.plane_fmt); + i < (buf_type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE + ? 1 : ARRAY_SIZE(f->fmt.pix_mp.plane_fmt)); ++i) { if (i) printf(", "); printf("{sizeimage=%u, bytesperline=%u}", f->fmt.pix_mp.plane_fmt[i].sizeimage, - f->fmt.pix_mp.plane_fmt[i].bytesperline); + sizeof(f->fmt.pix_mp.plane_fmt[i].bytesperline) == + sizeof(uint32_t) + ? f->fmt.pix_mp.plane_fmt[i].bytesperline : +# if WORDS_BIGENDIAN + (f->fmt.pix_mp.plane_fmt[i].bytesperline << 16) | + f->fmt.pix_mp.plane_fmt[i].reserved[0] +# else + f->fmt.pix_mp.plane_fmt[i].bytesperline | + (f->fmt.pix_mp.plane_fmt[i].reserved[0] << 16) +# endif + ); } errno = saved_errno; printf("], num_planes=%u}}) = -1 EBADF (%m)\n", - f->fmt.pix_mp.num_planes); + f->fmt.pix_mp.num_planes); break; } #endif @@ -228,20 +286,17 @@ dprint_ioctl_v4l2(struct v4l2_format *const f, case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY: #endif case V4L2_BUF_TYPE_VIDEO_OVERLAY: - printf("ioctl(-1, %s, {type=%s" + saved_errno = errno; + printf("ioctl(-1, " XLAT_FMT ", {type=" XLAT_FMT ", fmt.win={left=%d, top=%d, width=%u, height=%u" - ", field=V4L2_FIELD_ANY, chromakey=%#x, clips=" + ", field=" XLAT_FMT ", chromakey=%#x, clips=" "[{left=%d, top=%d, width=%u, height=%u}, " - "{left=%d, top=%d, width=%u, height=%u}]" - ", clipcount=%u, bitmap=%p" -#ifdef HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA - ", global_alpha=%#x" -#endif - "}}) = -1 EBADF (%m)\n", - request, - buf_type_string, + "{left=%d, top=%d, width=%u, height=%u}", + XLAT_SEL(reqval, reqstr), + XLAT_SEL(buf_type, buf_type_string), f->fmt.win.w.left, f->fmt.win.w.top, f->fmt.win.w.width, f->fmt.win.w.height, + XLAT_ARGS(V4L2_FIELD_ANY), f->fmt.win.chromakey, f->fmt.win.clips[0].c.left, f->fmt.win.clips[0].c.top, @@ -250,24 +305,37 @@ dprint_ioctl_v4l2(struct v4l2_format *const f, f->fmt.win.clips[1].c.left, f->fmt.win.clips[1].c.top, f->fmt.win.clips[1].c.width, - f->fmt.win.clips[1].c.height, - f->fmt.win.clipcount, f->fmt.win.bitmap + f->fmt.win.clips[1].c.height); + if (f->fmt.win.clipcount > 2) + printf(", ... /* %p */", f->fmt.win.clips + 2); + errno = saved_errno; + printf("], clipcount=%u, bitmap=%p" + ", global_alpha=%#x" + "}}) = -1 EBADF (%m)\n", + f->fmt.win.clipcount, f->fmt.win.bitmap, #ifdef HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA - , f->fmt.win.global_alpha + f->fmt.win.global_alpha +#else + ((uint8_t *) &f->fmt.win)[offsetofend(struct v4l2_window, + bitmap)] #endif ); break; case V4L2_BUF_TYPE_VBI_CAPTURE: case V4L2_BUF_TYPE_VBI_OUTPUT: saved_errno = errno; - printf("ioctl(-1, %s, {type=%s" + printf("ioctl(-1, " XLAT_FMT ", {type=" XLAT_FMT ", fmt.vbi={sampling_rate=%u, offset=%u" ", samples_per_line=%u, sample_format=", - request, - buf_type_string, + XLAT_SEL(reqval, reqstr), + XLAT_SEL(buf_type, buf_type_string), f->fmt.vbi.sampling_rate, f->fmt.vbi.offset, f->fmt.vbi.samples_per_line); +#if XLAT_RAW + printf("%#x", buf_type == V4L2_BUF_TYPE_VBI_CAPTURE + ? magic : pf_magic); +#else /* !XLAT_RAW */ if (buf_type == V4L2_BUF_TYPE_VBI_CAPTURE) printf("v4l2_fourcc('\\x%x', '\\x%x', '\\x%x', '\\x%x')", cc0(magic), cc1(magic), cc2(magic), cc3(magic)); @@ -276,24 +344,27 @@ dprint_ioctl_v4l2(struct v4l2_format *const f, "/* V4L2_PIX_FMT_SPCA508 */", cc0(pf_magic), cc1(pf_magic), cc2(pf_magic), cc3(pf_magic)); +#endif /* XLAT_RAW */ errno = saved_errno; - printf(", start=[%u, %u], count=[%u, %u]" - ", flags=V4L2_VBI_INTERLACED}})" + printf(", start=[%d, %d], count=[%u, %u]" + ", flags=" XLAT_FMT "}})" " = -1 EBADF (%m)\n", f->fmt.vbi.start[0], f->fmt.vbi.start[1], - f->fmt.vbi.count[0], f->fmt.vbi.count[1]); + f->fmt.vbi.count[0], f->fmt.vbi.count[1], + XLAT_ARGS(V4L2_VBI_INTERLACED)); break; #if HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: { unsigned int i, j; - printf("ioctl(-1, %s, {type=%s" - ", fmt.sliced={service_set=V4L2_SLICED_VPS" + printf("ioctl(-1, " XLAT_FMT ", {type=" XLAT_FMT + ", fmt.sliced={service_set=" XLAT_FMT ", io_size=%u, service_lines=[", - request, - buf_type_string, + XLAT_SEL(reqval, reqstr), + XLAT_SEL(buf_type, buf_type_string), + XLAT_ARGS(V4L2_SLICED_VPS), f->fmt.sliced.io_size); for (i = 0; i < ARRAY_SIZE(f->fmt.sliced.service_lines); @@ -321,30 +392,38 @@ dprint_ioctl_v4l2(struct v4l2_format *const f, #if HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE case V4L2_BUF_TYPE_SDR_CAPTURE: saved_errno = errno; - printf("ioctl(-1, %s, {type=%s" + printf("ioctl(-1, " XLAT_FMT ", {type=" XLAT_FMT ", fmt.sdr={pixelformat=", - request, - buf_type_string); + XLAT_SEL(reqval, reqstr), + XLAT_SEL(buf_type, buf_type_string)); +# if XLAT_RAW + if (buf_type == V4L2_BUF_TYPE_SDR_CAPTURE) + printf("%#x", magic); +# if HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT + else + printf("%#x", sf_magic); +# endif +# else /* !XLAT_RAW */ if (buf_type == V4L2_BUF_TYPE_SDR_CAPTURE) printf("v4l2_fourcc('\\x%x', '\\x%x', '\\x%x', '\\x%x')", cc0(magic), cc1(magic), cc2(magic), cc3(magic)); -# if HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT +# if HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT else printf("v4l2_fourcc('%c', '%c', '%c', '%c') " "/* V4L2_SDR_FMT_RU12LE */", cc0(sf_magic), cc1(sf_magic), cc2(sf_magic), cc3(sf_magic)); -# endif +# endif +# endif /* XLAT_RAW */ errno = saved_errno; - printf( -# ifdef HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE - ", buffersize=%u" -# endif - "}}) = -1 EBADF (%m)\n" + printf(", buffersize=%u}}) = -1 EBADF (%m)\n" # ifdef HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE - , f->fmt.sdr.buffersize + , sizeof(f->fmt.sdr.buffersize == sizeof(uint32_t)) + ? f->fmt.sdr.buffersize : ((uint32_t *) &f->fmt.sdr)[1] +# else + , ((uint32_t *) &f->fmt.sdr)[1] # endif ); break; @@ -352,7 +431,8 @@ dprint_ioctl_v4l2(struct v4l2_format *const f, } } #define print_ioctl_v4l2(v4l2_format, request, buf_type) \ - dprint_ioctl_v4l2((v4l2_format), (request), (buf_type), #buf_type) + dprint_ioctl_v4l2((v4l2_format), XLAT_SEL(request, #request), \ + (buf_type), #buf_type) int main(void) @@ -364,267 +444,559 @@ main(void) unsigned char cc[sizeof(int)] = { 'A', '\'', '\\', '\xfa' }; + /* Unknown */ + static const struct { + uint32_t flags; + const char *str; + } cmd_flags[] = { + { ARG_STR(_IOC_NONE) }, + { ARG_STR(_IOC_READ) }, + { ARG_STR(_IOC_WRITE) }, + { ARG_STR(_IOC_READ|_IOC_WRITE) }, + }; + static const uint8_t unknown_cmds[] = { + 1, 3, 6 /* VIDIOC_G_MPEGCOMP */, 7 /* VIDIOC_S_MPEGCOMP */, + 12, 13, 20, 31, 32, 35, 42, 43, 44, 45, 51, 52, 53, + 81 /* VIDIOC_G_CHIP_IDENT_OLD */, + 83 /* VIDIOC_ENUM_DV_PRESETS */, 84 /* VIDIOC_S_DV_PRESET */, + 85 /* VIDIOC_G_DV_PRESET */, 86 /* VIDIOC_QUERY_DV_PRESET */, + 104 /* 103 is the last existing */, 255 + }; + + for (size_t i = 0; i < ARRAY_SIZE(unknown_cmds); i++) { + /* Trying to hit common argument sizes */ + for (size_t j = 0; j < 256; j += 4) { + for (size_t k = 0; k < ARRAY_SIZE(cmd_flags); k++) { + uint32_t ioc = _IOC(cmd_flags[k].flags, 'V', + unknown_cmds[i], j); + /* + * Conflicts with VT* and VBG* ioctls + * that happen to also use 'V' command type. + */ + switch (ioc) { + /* VT_GETMODE */ + case _IOC(_IOC_NONE, 'V', 1, 0): + /* VT_GETSTATE */ + case _IOC(_IOC_NONE, 'V', 3, 0): + /* VBG_IOCTL_VMMDEV_REQUEST_BIG */ + case _IOC(_IOC_READ|_IOC_WRITE, 'V', 3, 0): + /* VT_ACTIVATE */ + case _IOC(_IOC_NONE, 'V', 6, 0): + /* VT_WAITACTIVE */ + case _IOC(_IOC_NONE, 'V', 7, 0): + /* VT_UNLOCKSWITCH */ + case _IOC(_IOC_NONE, 'V', 12, 0): + /* VBG_IOCTL_CHANGE_FILTER_MASK */ + case _IOC(_IOC_READ|_IOC_WRITE, 'V', 12, 32): + /* VT_GETHIFONTMASK */ + case _IOC(_IOC_NONE, 'V', 13, 0): + continue; + /* VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES */ + case _IOC(_IOC_READ|_IOC_WRITE, 'V', 13, 36): + continue; + } + + ioctl(-1, ioc, 0); + printf("ioctl(-1, " NABBR("%#x") VERB(" /* ") + NRAW("_IOC(%s, 0x56, %#x, %#zx)") + VERB(" */") ", 0) = -1 EBADF (%m)\n" +#if XLAT_RAW || XLAT_VERBOSE + , ioc +#endif +#if !XLAT_RAW + , cmd_flags[k].str, unknown_cmds[i], j +#endif + ); + + ioctl(-1, ioc, + (unsigned long) 0xbadc0deddeadc0deULL); + printf("ioctl(-1, " NABBR("%#x") VERB(" /* ") + NRAW("_IOC(%s, 0x56, %#x, %#zx)") + VERB(" */") ", %#lx) = -1 EBADF (%m)\n", +#if XLAT_RAW || XLAT_VERBOSE + ioc, +#endif +#if !XLAT_RAW + cmd_flags[k].str, unknown_cmds[i], j, +#endif + (unsigned long) 0xbadc0deddeadc0deULL); + } + } + } + + /* Decoding is not supported */ + static const struct { + uint32_t cmd; + const char *str; + } unsupp_cmds[] = { + { ARG_STR(VIDIOC_OVERLAY) }, +#ifdef VIDIOC_EXPBUF + { ARG_STR(VIDIOC_EXPBUF) }, +#endif + { ARG_STR(VIDIOC_G_AUDIO) }, + { ARG_STR(VIDIOC_S_AUDIO) }, + { ARG_STR(VIDIOC_QUERYMENU) }, +#ifdef VIDIOC_G_EDID + { ARG_STR(VIDIOC_G_EDID) }, +#endif +#ifdef VIDIOC_S_EDID + { ARG_STR(VIDIOC_S_EDID) }, +#endif + { ARG_STR(VIDIOC_G_OUTPUT) }, + { ARG_STR(VIDIOC_S_OUTPUT) }, + { ARG_STR(VIDIOC_ENUMOUTPUT) }, + { ARG_STR(VIDIOC_G_AUDOUT) }, + { ARG_STR(VIDIOC_S_AUDOUT) }, + { ARG_STR(VIDIOC_G_MODULATOR) }, + { ARG_STR(VIDIOC_S_MODULATOR) }, + { ARG_STR(VIDIOC_G_FREQUENCY) }, + { ARG_STR(VIDIOC_S_FREQUENCY) }, + { ARG_STR(VIDIOC_G_JPEGCOMP) }, + { ARG_STR(VIDIOC_S_JPEGCOMP) }, + { ARG_STR(VIDIOC_QUERYSTD) }, + { ARG_STR(VIDIOC_ENUMAUDIO) }, + { ARG_STR(VIDIOC_ENUMAUDOUT) }, + { ARG_STR(VIDIOC_G_PRIORITY) }, + { ARG_STR(VIDIOC_S_PRIORITY) }, + { ARG_STR(VIDIOC_G_SLICED_VBI_CAP) }, + { ARG_STR(VIDIOC_LOG_STATUS) }, +#ifdef VIDIOC_G_ENC_INDEX + { ARG_STR(VIDIOC_G_ENC_INDEX) }, +#endif +#ifdef VIDIOC_ENCODER_CMD + { ARG_STR(VIDIOC_ENCODER_CMD) }, +#endif +#ifdef VIDIOC_TRY_ENCODER_CMD + { ARG_STR(VIDIOC_TRY_ENCODER_CMD) }, +#endif +#ifdef VIDIOC_DBG_S_REGISTER + { ARG_STR(VIDIOC_DBG_S_REGISTER) }, +#endif +#ifdef VIDIOC_DBG_G_REGISTER + { ARG_STR(VIDIOC_DBG_G_REGISTER) }, +#endif +#ifdef VIDIOC_G_CHIP_IDENT_OLD + { ARG_STR(VIDIOC_G_CHIP_IDENT_OLD) }, +#endif +#ifdef VIDIOC_DBG_G_CHIP_IDENT + /* Broken on RHEL 6/7 */ + /* { ARG_STR(VIDIOC_DBG_G_CHIP_IDENT) }, */ +#endif +#ifdef VIDIOC_S_HW_FREQ_SEEK + { ARG_STR(VIDIOC_S_HW_FREQ_SEEK) }, +#endif +#ifdef VIDIOC_ENUM_DV_PRESETS + /* Next 4 are broken on RHEL 6 */ + /* { ARG_STR(VIDIOC_ENUM_DV_PRESETS) }, */ +#endif +#ifdef VIDIOC_S_DV_PRESET + /* { ARG_STR(VIDIOC_S_DV_PRESET) }, */ +#endif +#ifdef VIDIOC_G_DV_PRESET + /* { ARG_STR(VIDIOC_G_DV_PRESET) }, */ +#endif +#ifdef VIDIOC_QUERY_DV_PRESET + /* { ARG_STR(VIDIOC_QUERY_DV_PRESET) }, */ +#endif +#ifdef VIDIOC_S_DV_TIMINGS + { ARG_STR(VIDIOC_S_DV_TIMINGS) }, +#endif +#ifdef VIDIOC_G_DV_TIMINGS + { ARG_STR(VIDIOC_G_DV_TIMINGS) }, +#endif +#ifdef VIDIOC_DQEVENT + { ARG_STR(VIDIOC_DQEVENT) }, +#endif +#ifdef VIDIOC_SUBSCRIBE_EVENT + { ARG_STR(VIDIOC_SUBSCRIBE_EVENT) }, +#endif +#ifdef VIDIOC_UNSUBSCRIBE_EVENT + { ARG_STR(VIDIOC_UNSUBSCRIBE_EVENT) }, +#endif +#ifdef VIDIOC_PREPARE_BUF + { ARG_STR(VIDIOC_PREPARE_BUF) }, +#endif +#ifdef VIDIOC_G_SELECTION + { ARG_STR(VIDIOC_G_SELECTION) }, +#endif +#ifdef VIDIOC_S_SELECTION + { ARG_STR(VIDIOC_S_SELECTION) }, +#endif +#ifdef VIDIOC_DECODER_CMD + { ARG_STR(VIDIOC_DECODER_CMD) }, +#endif +#ifdef VIDIOC_TRY_DECODER_CMD + { ARG_STR(VIDIOC_TRY_DECODER_CMD) }, +#endif +#ifdef VIDIOC_ENUM_DV_TIMINGS + { ARG_STR(VIDIOC_ENUM_DV_TIMINGS) }, +#endif +#ifdef VIDIOC_QUERY_DV_TIMINGS + { ARG_STR(VIDIOC_QUERY_DV_TIMINGS) }, +#endif +#ifdef VIDIOC_DV_TIMINGS_CAP + { ARG_STR(VIDIOC_DV_TIMINGS_CAP) }, +#endif +#ifdef VIDIOC_ENUM_FREQ_BANDS + { ARG_STR(VIDIOC_ENUM_FREQ_BANDS) }, +#endif +#ifdef VIDIOC_DBG_G_CHIP_INFO + { ARG_STR(VIDIOC_DBG_G_CHIP_INFO) }, +#endif +#ifdef VIDIOC_QUERY_EXT_CTRL + { ARG_STR(VIDIOC_QUERY_EXT_CTRL) }, +#endif +#ifdef VIDIOC_SUBDEV_ENUM_MBUS_CODE + { ARG_STR(VIDIOC_SUBDEV_ENUM_MBUS_CODE) }, +#endif +#ifdef VIDIOC_SUBDEV_G_FMT + { ARG_STR(VIDIOC_SUBDEV_G_FMT) }, +#endif +#ifdef VIDIOC_SUBDEV_S_FMT + { ARG_STR(VIDIOC_SUBDEV_S_FMT) }, +#endif +#ifdef VIDIOC_SUBDEV_G_FRAME_INTERVAL + { ARG_STR(VIDIOC_SUBDEV_G_FRAME_INTERVAL) }, +#endif +#ifdef VIDIOC_SUBDEV_S_FRAME_INTERVAL + { ARG_STR(VIDIOC_SUBDEV_S_FRAME_INTERVAL) }, +#endif +#ifdef VIDIOC_SUBDEV_G_CROP + { ARG_STR(VIDIOC_SUBDEV_G_CROP) }, +#endif +#ifdef VIDIOC_SUBDEV_S_CROP + { ARG_STR(VIDIOC_SUBDEV_S_CROP) }, +#endif +#ifdef VIDIOC_SUBDEV_G_SELECTION + { ARG_STR(VIDIOC_SUBDEV_G_SELECTION) }, +#endif +#ifdef VIDIOC_SUBDEV_S_SELECTION + { ARG_STR(VIDIOC_SUBDEV_S_SELECTION) }, +#endif +#ifdef VIDIOC_SUBDEV_ENUM_FRAME_SIZE + { ARG_STR(VIDIOC_SUBDEV_ENUM_FRAME_SIZE) }, +#endif +#ifdef VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL + { ARG_STR(VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL) }, +#endif + }; + + for (size_t i = 0; i < ARRAY_SIZE(unsupp_cmds); i++) { + switch (unsupp_cmds[i].cmd) { + /* + * VIDIOC_G_SLICED_VBI_CAP macro has been changed from + * IOR to IOWR in Linux v2.6.19-rc1~643^2~37, skip it. + */ + case _IOR('V', 69, struct v4l2_sliced_vbi_cap): + continue; + } + + ioctl(-1, unsupp_cmds[i].cmd, 0); + printf("ioctl(-1, " XLAT_FMT ", 0) = -1 EBADF (%m)\n", + XLAT_SEL(unsupp_cmds[i].cmd, unsupp_cmds[i].str)); + + ioctl(-1, unsupp_cmds[i].cmd, + (unsigned long) 0xbadc0deddeadc0deULL); + printf("ioctl(-1, " XLAT_FMT ", %#lx) = -1 EBADF (%m)\n", + XLAT_SEL(unsupp_cmds[i].cmd, unsupp_cmds[i].str), + (unsigned long) 0xbadc0deddeadc0deULL); + } + /* VIDIOC_QUERYCAP */ ioctl(-1, VIDIOC_QUERYCAP, 0); - printf("ioctl(-1, VIDIOC_QUERYCAP, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_QUERYCAP)); ioctl(-1, VIDIOC_QUERYCAP, page); - printf("ioctl(-1, VIDIOC_QUERYCAP, %p) = -1 EBADF (%m)\n", page); + printf("ioctl(-1, %s, %p) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_QUERYCAP), page); /* VIDIOC_ENUM_FMT */ ioctl(-1, VIDIOC_ENUM_FMT, 0); - printf("ioctl(-1, VIDIOC_ENUM_FMT, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_ENUM_FMT)); TAIL_ALLOC_OBJECT_CONST_PTR(struct v4l2_fmtdesc, p_fmtdesc); p_fmtdesc->index = magic; p_fmtdesc->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; ioctl(-1, VIDIOC_ENUM_FMT, p_fmtdesc); - printf("ioctl(-1, VIDIOC_ENUM_FMT, {index=%u" - ", type=V4L2_BUF_TYPE_VIDEO_CAPTURE}) = -1 EBADF (%m)\n", - p_fmtdesc->index); + printf("ioctl(-1, %s, {index=%u, type=" XLAT_FMT + "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_ENUM_FMT), p_fmtdesc->index, + XLAT_ARGS(V4L2_BUF_TYPE_VIDEO_CAPTURE)); /* VIDIOC_G_FMT */ ioctl(-1, VIDIOC_G_FMT, 0); - printf("ioctl(-1, VIDIOC_G_FMT, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FMT)); TAIL_ALLOC_OBJECT_CONST_PTR(struct v4l2_format, p_format); p_format->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; ioctl(-1, VIDIOC_G_FMT, p_format); - printf("ioctl(-1, VIDIOC_G_FMT" - ", {type=V4L2_BUF_TYPE_VIDEO_CAPTURE}) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, {type=" XLAT_FMT "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FMT), + XLAT_ARGS(V4L2_BUF_TYPE_VIDEO_CAPTURE)); #if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE p_format->type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE; ioctl(-1, VIDIOC_G_FMT, p_format); - printf("ioctl(-1, VIDIOC_G_FMT" - ", {type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE}) =" - " -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, {type=" XLAT_FMT "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FMT), + XLAT_ARGS(V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE)); #endif #if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY p_format->type = V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY; ioctl(-1, VIDIOC_G_FMT, p_format); - printf("ioctl(-1, VIDIOC_G_FMT" - ", {type=V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY}) =" - " -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, {type=" XLAT_FMT "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FMT), + XLAT_ARGS(V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY)); #endif p_format->type = V4L2_BUF_TYPE_VIDEO_OVERLAY; ioctl(-1, VIDIOC_G_FMT, p_format); - printf("ioctl(-1, VIDIOC_G_FMT" - ", {type=V4L2_BUF_TYPE_VIDEO_OVERLAY}) =" - " -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, {type=" XLAT_FMT "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FMT), + XLAT_ARGS(V4L2_BUF_TYPE_VIDEO_OVERLAY)); p_format->type = V4L2_BUF_TYPE_VBI_CAPTURE; ioctl(-1, VIDIOC_G_FMT, p_format); - printf("ioctl(-1, VIDIOC_G_FMT" - ", {type=V4L2_BUF_TYPE_VBI_CAPTURE}) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, {type=" XLAT_FMT "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FMT), + XLAT_ARGS(V4L2_BUF_TYPE_VBI_CAPTURE)); #if HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE p_format->type = V4L2_BUF_TYPE_SLICED_VBI_CAPTURE; ioctl(-1, VIDIOC_G_FMT, p_format); - printf("ioctl(-1, VIDIOC_G_FMT" - ", {type=V4L2_BUF_TYPE_SLICED_VBI_CAPTURE}) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, {type=" XLAT_FMT "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FMT), + XLAT_ARGS(V4L2_BUF_TYPE_SLICED_VBI_CAPTURE)); #endif #if HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE p_format->type = V4L2_BUF_TYPE_SDR_CAPTURE; ioctl(-1, VIDIOC_G_FMT, p_format); - printf("ioctl(-1, VIDIOC_G_FMT" - ", {type=V4L2_BUF_TYPE_SDR_CAPTURE}) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, {type=" XLAT_FMT "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FMT), + XLAT_ARGS(V4L2_BUF_TYPE_SDR_CAPTURE)); #endif #if HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT p_format->type = V4L2_BUF_TYPE_SDR_OUTPUT; ioctl(-1, VIDIOC_G_FMT, p_format); - printf("ioctl(-1, VIDIOC_G_FMT" - ", {type=V4L2_BUF_TYPE_SDR_OUTPUT}) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, {type=" XLAT_FMT "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FMT), + XLAT_ARGS(V4L2_BUF_TYPE_SDR_OUTPUT)); #endif /* VIDIOC_S_FMT */ ioctl(-1, VIDIOC_S_FMT, 0); - printf("ioctl(-1, VIDIOC_S_FMT, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_FMT)); init_v4l2_format(p_format, V4L2_BUF_TYPE_VIDEO_OUTPUT); ioctl(-1, VIDIOC_S_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_S_FMT", V4L2_BUF_TYPE_VIDEO_OUTPUT); + print_ioctl_v4l2(p_format, VIDIOC_S_FMT, + V4L2_BUF_TYPE_VIDEO_OUTPUT); #if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE init_v4l2_format(p_format, V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE); ioctl(-1, VIDIOC_S_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_S_FMT", + print_ioctl_v4l2(p_format, VIDIOC_S_FMT, V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE); #endif #if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY init_v4l2_format(p_format, V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY); ioctl(-1, VIDIOC_S_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_S_FMT", + print_ioctl_v4l2(p_format, VIDIOC_S_FMT, V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY); #endif init_v4l2_format(p_format, V4L2_BUF_TYPE_VIDEO_OVERLAY); ioctl(-1, VIDIOC_S_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_S_FMT", + print_ioctl_v4l2(p_format, VIDIOC_S_FMT, V4L2_BUF_TYPE_VIDEO_OVERLAY); init_v4l2_format(p_format, V4L2_BUF_TYPE_VBI_CAPTURE); ioctl(-1, VIDIOC_S_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_S_FMT", V4L2_BUF_TYPE_VBI_CAPTURE); + print_ioctl_v4l2(p_format, VIDIOC_S_FMT, V4L2_BUF_TYPE_VBI_CAPTURE); #if HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE init_v4l2_format(p_format, V4L2_BUF_TYPE_SLICED_VBI_CAPTURE); ioctl(-1, VIDIOC_S_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_S_FMT", + print_ioctl_v4l2(p_format, VIDIOC_S_FMT, V4L2_BUF_TYPE_SLICED_VBI_CAPTURE); #endif #if HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE init_v4l2_format(p_format, V4L2_BUF_TYPE_SDR_CAPTURE); ioctl(-1, VIDIOC_S_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_S_FMT", V4L2_BUF_TYPE_SDR_CAPTURE); + print_ioctl_v4l2(p_format, VIDIOC_S_FMT, V4L2_BUF_TYPE_SDR_CAPTURE); #endif #if HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT init_v4l2_format(p_format, V4L2_BUF_TYPE_SDR_OUTPUT); ioctl(-1, VIDIOC_S_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_S_FMT", V4L2_BUF_TYPE_SDR_OUTPUT); + print_ioctl_v4l2(p_format, VIDIOC_S_FMT, V4L2_BUF_TYPE_SDR_OUTPUT); #endif /* VIDIOC_TRY_FMT */ ioctl(-1, VIDIOC_TRY_FMT, 0); - printf("ioctl(-1, VIDIOC_TRY_FMT, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_TRY_FMT)); init_v4l2_format(p_format, V4L2_BUF_TYPE_VIDEO_OUTPUT); ioctl(-1, VIDIOC_TRY_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_TRY_FMT", + print_ioctl_v4l2(p_format, VIDIOC_TRY_FMT, V4L2_BUF_TYPE_VIDEO_OUTPUT); #if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE init_v4l2_format(p_format, V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE); ioctl(-1, VIDIOC_TRY_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_TRY_FMT", + print_ioctl_v4l2(p_format, VIDIOC_TRY_FMT, V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE); #endif #if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY init_v4l2_format(p_format, V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY); ioctl(-1, VIDIOC_TRY_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_TRY_FMT", + print_ioctl_v4l2(p_format, VIDIOC_TRY_FMT, V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY); #endif init_v4l2_format(p_format, V4L2_BUF_TYPE_VIDEO_OVERLAY); ioctl(-1, VIDIOC_TRY_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_TRY_FMT", + print_ioctl_v4l2(p_format, VIDIOC_TRY_FMT, V4L2_BUF_TYPE_VIDEO_OVERLAY); init_v4l2_format(p_format, V4L2_BUF_TYPE_VBI_CAPTURE); ioctl(-1, VIDIOC_TRY_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_TRY_FMT", V4L2_BUF_TYPE_VBI_CAPTURE); + print_ioctl_v4l2(p_format, VIDIOC_TRY_FMT, V4L2_BUF_TYPE_VBI_CAPTURE); #if HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE init_v4l2_format(p_format, V4L2_BUF_TYPE_SLICED_VBI_CAPTURE); ioctl(-1, VIDIOC_TRY_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_TRY_FMT", + print_ioctl_v4l2(p_format, VIDIOC_TRY_FMT, V4L2_BUF_TYPE_SLICED_VBI_CAPTURE); #endif #if HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE init_v4l2_format(p_format, V4L2_BUF_TYPE_SDR_CAPTURE); ioctl(-1, VIDIOC_TRY_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_TRY_FMT", V4L2_BUF_TYPE_SDR_CAPTURE); + print_ioctl_v4l2(p_format, VIDIOC_TRY_FMT, V4L2_BUF_TYPE_SDR_CAPTURE); #endif #if HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT init_v4l2_format(p_format, V4L2_BUF_TYPE_SDR_OUTPUT); ioctl(-1, VIDIOC_TRY_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_TRY_FMT", V4L2_BUF_TYPE_SDR_OUTPUT); + print_ioctl_v4l2(p_format, VIDIOC_TRY_FMT, V4L2_BUF_TYPE_SDR_OUTPUT); #endif struct v4l2_format *const p_v4l2_format = page_end - sizeof(*p_v4l2_format); ioctl(-1, VIDIOC_TRY_FMT, p_v4l2_format); - printf("ioctl(-1, VIDIOC_TRY_FMT, {type=%#x /* V4L2_BUF_TYPE_??? */})" - " = -1 EBADF (%m)\n", p_v4l2_format->type); + printf("ioctl(-1, %s, {type=%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") "})" + " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_TRY_FMT), p_v4l2_format->type); /* VIDIOC_REQBUFS */ ioctl(-1, VIDIOC_REQBUFS, 0); - printf("ioctl(-1, VIDIOC_REQBUFS, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_REQBUFS)); struct v4l2_requestbuffers *const p_v4l2_requestbuffers = page_end - sizeof(*p_v4l2_requestbuffers); ioctl(-1, VIDIOC_REQBUFS, p_v4l2_requestbuffers); - printf("ioctl(-1, VIDIOC_REQBUFS, {type=%#x /* V4L2_BUF_TYPE_??? */, " - "memory=%#x /* V4L2_MEMORY_??? */, count=%u})" + printf("ioctl(-1, %s, {type=%#x" + NRAW(" /* V4L2_BUF_TYPE_??? */") + ", memory=%#x" NRAW(" /* V4L2_MEMORY_??? */") ", count=%u})" " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_REQBUFS), p_v4l2_requestbuffers->type, p_v4l2_requestbuffers->memory, p_v4l2_requestbuffers->count); /* VIDIOC_QUERYBUF */ ioctl(-1, VIDIOC_QUERYBUF, 0); - printf("ioctl(-1, VIDIOC_QUERYBUF, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_QUERYBUF)); - struct v4l2_buffer *const p_v4l2_buffer = + kernel_v4l2_buffer_t *const p_v4l2_buffer = page_end - sizeof(*p_v4l2_buffer); ioctl(-1, VIDIOC_QUERYBUF, p_v4l2_buffer); - printf("ioctl(-1, VIDIOC_QUERYBUF, {type=%#x /* V4L2_BUF_TYPE_??? */" + printf("ioctl(-1, %s, {type=%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") ", index=%u}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_QUERYBUF), p_v4l2_buffer->type, p_v4l2_buffer->index); /* VIDIOC_QBUF */ ioctl(-1, VIDIOC_QBUF, 0); - printf("ioctl(-1, VIDIOC_QBUF, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_QBUF)); ioctl(-1, VIDIOC_QBUF, p_v4l2_buffer); - printf("ioctl(-1, VIDIOC_QBUF, {type=%#x /* V4L2_BUF_TYPE_??? */" + printf("ioctl(-1, %s, {type=%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") ", index=%u}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_QBUF), p_v4l2_buffer->type, p_v4l2_buffer->index); /* VIDIOC_DQBUF */ ioctl(-1, VIDIOC_DQBUF, 0); - printf("ioctl(-1, VIDIOC_DQBUF, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_DQBUF)); ioctl(-1, VIDIOC_DQBUF, p_v4l2_buffer); - printf("ioctl(-1, VIDIOC_DQBUF, {type=%#x" - " /* V4L2_BUF_TYPE_??? */}) = -1 EBADF (%m)\n", - p_v4l2_buffer->type); + printf("ioctl(-1, %s, {type=%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") + "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_DQBUF), p_v4l2_buffer->type); /* VIDIOC_G_FBUF */ ioctl(-1, VIDIOC_G_FBUF, 0); - printf("ioctl(-1, VIDIOC_G_FBUF, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FBUF)); ioctl(-1, VIDIOC_G_FBUF, page); - printf("ioctl(-1, VIDIOC_G_FBUF, %p) = -1 EBADF (%m)\n", page); + printf("ioctl(-1, %s, %p) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FBUF), page); /* VIDIOC_S_FBUF */ ioctl(-1, VIDIOC_S_FBUF, 0); - printf("ioctl(-1, VIDIOC_S_FBUF, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_FBUF)); struct v4l2_framebuffer *const p_v4l2_framebuffer = page_end - sizeof(*p_v4l2_framebuffer); ioctl(-1, VIDIOC_S_FBUF, p_v4l2_framebuffer); - printf("ioctl(-1, VIDIOC_S_FBUF, {capability=%#x" + printf("ioctl(-1, %s, {capability=%#x" ", flags=%#x, base=%p}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_FBUF), p_v4l2_framebuffer->capability, p_v4l2_framebuffer->flags, p_v4l2_framebuffer->base); /* VIDIOC_STREAMON */ ioctl(-1, VIDIOC_STREAMON, 0); - printf("ioctl(-1, VIDIOC_STREAMON, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_STREAMON)); int *const p_int = page_end - sizeof(int); ioctl(-1, VIDIOC_STREAMON, p_int); - printf("ioctl(-1, VIDIOC_STREAMON, [%#x /* V4L2_BUF_TYPE_??? */])" - " = -1 EBADF (%m)\n", *p_int); + printf("ioctl(-1, %s, [%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") "])" + " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_STREAMON), *p_int); /* VIDIOC_STREAMOFF */ ioctl(-1, VIDIOC_STREAMOFF, 0); - printf("ioctl(-1, VIDIOC_STREAMOFF, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_STREAMOFF)); ioctl(-1, VIDIOC_STREAMOFF, p_int); - printf("ioctl(-1, VIDIOC_STREAMOFF, [%#x /* V4L2_BUF_TYPE_??? */])" - " = -1 EBADF (%m)\n", *p_int); + printf("ioctl(-1, %s, [%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") "])" + " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_STREAMOFF), *p_int); /* VIDIOC_G_PARM */ ioctl(-1, VIDIOC_G_PARM, 0); - printf("ioctl(-1, VIDIOC_G_PARM, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_PARM)); struct v4l2_streamparm *const p_v4l2_streamparm = page_end - sizeof(*p_v4l2_streamparm); ioctl(-1, VIDIOC_G_PARM, p_v4l2_streamparm); - printf("ioctl(-1, VIDIOC_G_PARM, {type=%#x /* V4L2_BUF_TYPE_??? */})" - " = -1 EBADF (%m)\n", p_v4l2_streamparm->type); + printf("ioctl(-1, %s, {type=%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") "})" + " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_PARM), p_v4l2_streamparm->type); /* VIDIOC_S_PARM */ ioctl(-1, VIDIOC_S_PARM, 0); - printf("ioctl(-1, VIDIOC_S_PARM, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_PARM)); ioctl(-1, VIDIOC_S_PARM, p_v4l2_streamparm); - printf("ioctl(-1, VIDIOC_S_PARM, {type=%#x /* V4L2_BUF_TYPE_??? */})" - " = -1 EBADF (%m)\n", p_v4l2_streamparm->type); + printf("ioctl(-1, %s, {type=%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") "})" + " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_PARM), p_v4l2_streamparm->type); TAIL_ALLOC_OBJECT_CONST_PTR(struct v4l2_streamparm, p_streamparm); p_streamparm->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; @@ -633,91 +1005,135 @@ main(void) p_streamparm->parm.capture.timeperframe.numerator = 0xdeadbeef; p_streamparm->parm.capture.timeperframe.denominator = 0xbadc0ded; ioctl(-1, VIDIOC_S_PARM, p_streamparm); - printf("ioctl(-1, VIDIOC_S_PARM, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE" - ", parm.capture={capability=V4L2_CAP_TIMEPERFRAME" - ", capturemode=V4L2_MODE_HIGHQUALITY, timeperframe=%u/%u" - ", extendedmode=%u, readbuffers=%u}}) = -1 EBADF (%m)\n", + printf("ioctl(-1, %s, {type=" XLAT_FMT + ", parm.capture={capability=" XLAT_FMT + ", capturemode=" XLAT_FMT ", timeperframe=%u/%u" + ", extendedmode=%#x, readbuffers=%u}}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_PARM), XLAT_ARGS(V4L2_BUF_TYPE_VIDEO_CAPTURE), + XLAT_ARGS(V4L2_CAP_TIMEPERFRAME), XLAT_ARGS(V4L2_MODE_HIGHQUALITY), p_streamparm->parm.capture.timeperframe.numerator, p_streamparm->parm.capture.timeperframe.denominator, -1U, -1U); p_streamparm->type = V4L2_BUF_TYPE_VIDEO_OUTPUT; p_streamparm->parm.output.outputmode = 0; ioctl(-1, VIDIOC_S_PARM, p_streamparm); - printf("ioctl(-1, VIDIOC_S_PARM, {type=V4L2_BUF_TYPE_VIDEO_OUTPUT" - ", parm.output={capability=V4L2_CAP_TIMEPERFRAME" + printf("ioctl(-1, %s, {type=" XLAT_FMT + ", parm.output={capability=" XLAT_FMT ", outputmode=0, timeperframe=%u/%u" - ", extendedmode=%u, writebuffers=%u}}) = -1 EBADF (%m)\n", + ", extendedmode=%#x, writebuffers=%u}}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_PARM), XLAT_ARGS(V4L2_BUF_TYPE_VIDEO_OUTPUT), + XLAT_ARGS(V4L2_CAP_TIMEPERFRAME), p_streamparm->parm.output.timeperframe.numerator, p_streamparm->parm.output.timeperframe.denominator, -1U, -1U); /* VIDIOC_G_STD */ ioctl(-1, VIDIOC_G_STD, 0); - printf("ioctl(-1, VIDIOC_G_STD, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_STD)); ioctl(-1, VIDIOC_G_STD, page); - printf("ioctl(-1, VIDIOC_G_STD, %p) = -1 EBADF (%m)\n", page); + printf("ioctl(-1, %s, %p) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_STD), page); /* VIDIOC_S_STD */ ioctl(-1, VIDIOC_S_STD, 0); - printf("ioctl(-1, VIDIOC_S_STD, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_STD)); long long *const p_longlong = page_end - sizeof(*p_longlong); ioctl(-1, VIDIOC_S_STD, p_longlong); - printf("ioctl(-1, VIDIOC_S_STD, [%#llx]) = -1 EBADF (%m)\n", - *p_longlong); + printf("ioctl(-1, %s, [%#llx]) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_STD), *p_longlong); /* VIDIOC_ENUMSTD */ ioctl(-1, VIDIOC_ENUMSTD, 0); - printf("ioctl(-1, VIDIOC_ENUMSTD, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_ENUMSTD)); struct v4l2_standard *const p_v4l2_standard = page_end - sizeof(*p_v4l2_standard); ioctl(-1, VIDIOC_ENUMSTD, p_v4l2_standard); - printf("ioctl(-1, VIDIOC_ENUMSTD, {index=%u}) = -1 EBADF (%m)\n", - p_v4l2_standard->index); + printf("ioctl(-1, %s, {index=%u}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_ENUMSTD), p_v4l2_standard->index); /* VIDIOC_ENUMINPUT */ ioctl(-1, VIDIOC_ENUMINPUT, 0); - printf("ioctl(-1, VIDIOC_ENUMINPUT, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_ENUMINPUT)); struct v4l2_input *const p_v4l2_input = page_end - sizeof(*p_v4l2_input); ioctl(-1, VIDIOC_ENUMINPUT, p_v4l2_input); - printf("ioctl(-1, VIDIOC_ENUMINPUT, {index=%u}) = -1 EBADF (%m)\n", - p_v4l2_input->index); + printf("ioctl(-1, %s, {index=%u}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_ENUMINPUT), p_v4l2_input->index); /* VIDIOC_G_CTRL */ ioctl(-1, VIDIOC_G_CTRL, 0); - printf("ioctl(-1, VIDIOC_G_CTRL, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_CTRL)); + + static const struct v4l2_control v4l2_control_vals[] = { + { .id = 0, .value = 3141592653U }, + { .id = 0x97abcd, .value = 1234567890U }, + { .id = V4L2_CTRL_CLASS_USER, .value = 0 }, + { .id = 0x990a64, .value = 42 }, + { .id = 0xa31234, .value = 1 }, + { .id = 0xa40000, .value = -1 }, + }; + static const char *id_strs[] = { + "0" NRAW(" /* V4L2_CID_??? */"), + "0x97abcd" NRAW(" /* V4L2_CID_??? */"), + XLAT_KNOWN(0x980000, "V4L2_CTRL_CLASS_USER+0"), + XLAT_KNOWN(0x990a64, "V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE"), + XLAT_KNOWN(0xa31234, "V4L2_CTRL_CLASS_DETECT+0x1234"), + "0xa40000" NRAW(" /* V4L2_CID_??? */"), + }; struct v4l2_control *const p_v4l2_control = page_end - sizeof(*p_v4l2_control); ioctl(-1, VIDIOC_G_CTRL, p_v4l2_control); - printf("ioctl(-1, VIDIOC_G_CTRL, {id=%#x /* V4L2_CID_??? */})" - " = -1 EBADF (%m)\n", p_v4l2_control->id); + printf("ioctl(-1, %s, {id=%#x" NRAW(" /* V4L2_CID_??? */") + "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_CTRL), p_v4l2_control->id); /* VIDIOC_S_CTRL */ ioctl(-1, VIDIOC_S_CTRL, 0); - printf("ioctl(-1, VIDIOC_S_CTRL, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_CTRL)); ioctl(-1, VIDIOC_S_CTRL, p_v4l2_control); - printf("ioctl(-1, VIDIOC_S_CTRL, {id=%#x /* V4L2_CID_??? */" + printf("ioctl(-1, %s, {id=%#x" NRAW(" /* V4L2_CID_??? */") ", value=%d}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_CTRL), p_v4l2_control->id, p_v4l2_control->value); + for (size_t i = 0; i < ARRAY_SIZE(id_strs); i++) { + struct v4l2_control v4l2_c = v4l2_control_vals[i]; + + ioctl(-1, VIDIOC_G_CTRL, &v4l2_c); + printf("ioctl(-1, %s, {id=%s}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_CTRL), id_strs[i]); + + ioctl(-1, VIDIOC_S_CTRL, &v4l2_c); + printf("ioctl(-1, %s, {id=%s, value=%d}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_CTRL), id_strs[i], v4l2_c.value); + } + /* VIDIOC_G_TUNER */ ioctl(-1, VIDIOC_G_TUNER, 0); - printf("ioctl(-1, VIDIOC_G_TUNER, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_TUNER)); struct v4l2_tuner *const p_v4l2_tuner = page_end - sizeof(*p_v4l2_tuner); ioctl(-1, VIDIOC_G_TUNER, p_v4l2_tuner); - printf("ioctl(-1, VIDIOC_G_TUNER, {index=%u})" - " = -1 EBADF (%m)\n", p_v4l2_tuner->index); + printf("ioctl(-1, %s, {index=%u}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_TUNER), p_v4l2_tuner->index); /* VIDIOC_S_TUNER */ ioctl(-1, VIDIOC_S_TUNER, 0); - printf("ioctl(-1, VIDIOC_S_TUNER, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_TUNER)); TAIL_ALLOC_OBJECT_CONST_PTR(struct v4l2_tuner, p_tuner); p_tuner->index = 0x4fb6df39; @@ -731,79 +1147,98 @@ main(void) p_tuner->signal = 0x10bf92c8; p_tuner->afc = 0x3bf7e18b; ioctl(-1, VIDIOC_S_TUNER, p_tuner); - printf("ioctl(-1, VIDIOC_S_TUNER, {index=%u" - ", name=\"cum tacent clamant\"" - ", type=V4L2_TUNER_RADIO, capability=V4L2_TUNER_CAP_LOW" + printf("ioctl(-1, %s, {index=%u, name=\"cum tacent clamant\"" + ", type=" XLAT_FMT ", capability=" XLAT_FMT ", rangelow=%u, rangehigh=%u" - ", rxsubchans=V4L2_TUNER_SUB_MONO" - ", audmode=V4L2_TUNER_MODE_MONO, signal=%d, afc=%d" - "}) = -1 EBADF (%m)\n", - p_tuner->index, p_tuner->rangelow, - p_tuner->rangehigh, p_tuner->signal, p_tuner->afc); + ", rxsubchans=" XLAT_FMT ", audmode=" XLAT_FMT + ", signal=%d, afc=%d}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_TUNER), p_tuner->index, + XLAT_ARGS(V4L2_TUNER_RADIO), XLAT_ARGS(V4L2_TUNER_CAP_LOW), + p_tuner->rangelow, p_tuner->rangehigh, + XLAT_ARGS(V4L2_TUNER_SUB_MONO), XLAT_ARGS(V4L2_TUNER_MODE_MONO), + p_tuner->signal, p_tuner->afc); /* VIDIOC_QUERYCTRL */ ioctl(-1, VIDIOC_QUERYCTRL, 0); - printf("ioctl(-1, VIDIOC_QUERYCTRL, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_QUERYCTRL)); struct v4l2_queryctrl *const p_v4l2_queryctrl = page_end - sizeof(*p_v4l2_queryctrl); ioctl(-1, VIDIOC_QUERYCTRL, p_v4l2_queryctrl); -#ifdef V4L2_CTRL_FLAG_NEXT_CTRL - printf("ioctl(-1, VIDIOC_QUERYCTRL, {id=V4L2_CTRL_FLAG_NEXT_CTRL" - "|%#x /* V4L2_CID_??? */}) = -1 EBADF (%m)\n", - p_v4l2_queryctrl->id & ~V4L2_CTRL_FLAG_NEXT_CTRL); + printf("ioctl(-1, %s, {id=" +#if XLAT_RAW + "%#x" +#else + XLAT_FMT "|%#x /* V4L2_CID_??? */" +#endif + "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_QUERYCTRL), +#if XLAT_RAW + p_v4l2_queryctrl->id #else - printf("ioctl(-1, VIDIOC_QUERYCTRL, {id=%#x /* V4L2_CID_??? */})" - " = -1 EBADF (%m)\n", p_v4l2_queryctrl->id); + XLAT_ARGS(V4L2_CTRL_FLAG_NEXT_CTRL), + p_v4l2_queryctrl->id & ~V4L2_CTRL_FLAG_NEXT_CTRL #endif + ); TAIL_ALLOC_OBJECT_CONST_PTR(struct v4l2_queryctrl, p_queryctrl); p_queryctrl->id = V4L2_CID_SATURATION; ioctl(-1, VIDIOC_QUERYCTRL, p_queryctrl); - printf("ioctl(-1, VIDIOC_QUERYCTRL, {id=V4L2_CID_SATURATION})" - " = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, {id=" XLAT_FMT "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_QUERYCTRL), XLAT_ARGS(V4L2_CID_SATURATION)); /* VIDIOC_G_INPUT */ ioctl(-1, VIDIOC_G_INPUT, 0); - printf("ioctl(-1, VIDIOC_G_INPUT, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_INPUT)); ioctl(-1, VIDIOC_G_INPUT, page); - printf("ioctl(-1, VIDIOC_G_INPUT, %p) = -1 EBADF (%m)\n", page); + printf("ioctl(-1, %s, %p) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_INPUT), page); /* VIDIOC_S_INPUT */ ioctl(-1, VIDIOC_S_INPUT, 0); - printf("ioctl(-1, VIDIOC_S_INPUT, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_INPUT)); ioctl(-1, VIDIOC_S_INPUT, p_int); - printf("ioctl(-1, VIDIOC_S_INPUT, [%u]) = -1 EBADF (%m)\n", *p_int); + printf("ioctl(-1, %s, [%u]) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_INPUT), *p_int); /* VIDIOC_CROPCAP */ ioctl(-1, VIDIOC_CROPCAP, 0); - printf("ioctl(-1, VIDIOC_CROPCAP, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_CROPCAP)); struct v4l2_cropcap *const p_v4l2_cropcap = page_end - sizeof(*p_v4l2_cropcap); ioctl(-1, VIDIOC_CROPCAP, p_v4l2_cropcap); - printf("ioctl(-1, VIDIOC_CROPCAP, {type=%#x /* V4L2_BUF_TYPE_??? */})" - " = -1 EBADF (%m)\n", p_v4l2_cropcap->type); + printf("ioctl(-1, %s, {type=%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") "})" + " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_CROPCAP), p_v4l2_cropcap->type); /* VIDIOC_G_CROP */ ioctl(-1, VIDIOC_G_CROP, 0); - printf("ioctl(-1, VIDIOC_G_CROP, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_CROP)); struct v4l2_crop *const p_v4l2_crop = page_end - sizeof(*p_v4l2_crop); ioctl(-1, VIDIOC_G_CROP, p_v4l2_crop); - printf("ioctl(-1, VIDIOC_G_CROP, {type=%#x /* V4L2_BUF_TYPE_??? */})" - " = -1 EBADF (%m)\n", p_v4l2_crop->type); + printf("ioctl(-1, %s, {type=%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") "})" + " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_CROP), p_v4l2_crop->type); /* VIDIOC_S_CROP */ ioctl(-1, VIDIOC_S_CROP, 0); - printf("ioctl(-1, VIDIOC_S_CROP, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_CROP)); ioctl(-1, VIDIOC_S_CROP, p_v4l2_crop); - printf("ioctl(-1, VIDIOC_S_CROP, {type=%#x /* V4L2_BUF_TYPE_??? */" + printf("ioctl(-1, %s, {type=%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") ", c={left=%d, top=%d, width=%u, height=%u}}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_CROP), p_v4l2_crop->type, p_v4l2_crop->c.left, p_v4l2_crop->c.top, @@ -813,36 +1248,42 @@ main(void) #ifdef VIDIOC_S_EXT_CTRLS /* VIDIOC_S_EXT_CTRLS */ ioctl(-1, VIDIOC_S_EXT_CTRLS, 0); - printf("ioctl(-1, VIDIOC_S_EXT_CTRLS, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_EXT_CTRLS)); TAIL_ALLOC_OBJECT_CONST_PTR(struct v4l2_ext_controls, p_ext_controls); p_ext_controls->ctrl_class = V4L2_CTRL_CLASS_USER; p_ext_controls->count = 0; p_ext_controls->controls = (void *) -2UL; ioctl(-1, VIDIOC_S_EXT_CTRLS, p_ext_controls); - printf("ioctl(-1, VIDIOC_S_EXT_CTRLS, {ctrl_class=V4L2_CTRL_CLASS_USER" - ", count=%u}) = -1 EBADF (%m)\n", p_ext_controls->count); + printf("ioctl(-1, %s, {ctrl_class=" XLAT_FMT ", count=%u})" + " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_EXT_CTRLS), XLAT_ARGS(V4L2_CTRL_CLASS_USER), + p_ext_controls->count); p_ext_controls->ctrl_class = 0x00a30000; p_ext_controls->count = magic; ioctl(-1, VIDIOC_S_EXT_CTRLS, p_ext_controls); - printf("ioctl(-1, VIDIOC_S_EXT_CTRLS, {ctrl_class=V4L2_CTRL_CLASS_DETECT" + printf("ioctl(-1, %s, {ctrl_class=" XLAT_FMT ", count=%u, controls=%p}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_EXT_CTRLS), XLAT_ARGS(V4L2_CTRL_CLASS_DETECT), p_ext_controls->count, p_ext_controls->controls); p_ext_controls->ctrl_class = 0x00a40000; p_ext_controls->count = magic; ioctl(-1, VIDIOC_S_EXT_CTRLS, p_ext_controls); - printf("ioctl(-1, VIDIOC_S_EXT_CTRLS" - ", {ctrl_class=0xa40000 /* V4L2_CTRL_CLASS_??? */" + printf("ioctl(-1, %s" + ", {ctrl_class=0xa40000" NRAW(" /* V4L2_CTRL_CLASS_??? */") ", count=%u, controls=%p}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_EXT_CTRLS), p_ext_controls->count, p_ext_controls->controls); p_ext_controls->ctrl_class = V4L2_CTRL_CLASS_MPEG; p_ext_controls->count = magic; ioctl(-1, VIDIOC_S_EXT_CTRLS, p_ext_controls); - printf("ioctl(-1, VIDIOC_S_EXT_CTRLS, {ctrl_class=V4L2_CTRL_CLASS_MPEG" + printf("ioctl(-1, %s, {ctrl_class=" XLAT_FMT ", count=%u, controls=%p}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_EXT_CTRLS), XLAT_ARGS(V4L2_CTRL_CLASS_MPEG), p_ext_controls->count, p_ext_controls->controls); # if HAVE_DECL_V4L2_CTRL_TYPE_STRING @@ -858,107 +1299,132 @@ main(void) tail_alloc(p_ext_controls->controls[1].size); ioctl(-1, VIDIOC_S_EXT_CTRLS, p_ext_controls); - printf("ioctl(-1, VIDIOC_S_EXT_CTRLS" - ", {ctrl_class=V4L2_CTRL_CLASS_MPEG, count=%u, controls=" - "[{id=V4L2_CID_BRIGHTNESS, size=0, value=%d, value64=%lld}" - ", {id=V4L2_CID_CONTRAST, size=2, string=\"\\377\\377\"}" - "] => controls=" - "[{id=V4L2_CID_BRIGHTNESS, size=0, value=%d, value64=%lld}" - ", {id=V4L2_CID_CONTRAST, size=2, string=\"\\377\\377\"}" + printf("ioctl(-1, %s, {ctrl_class=" XLAT_FMT ", count=%u, controls=" + "[{id=" XLAT_FMT ", size=0, value=%d, value64=%lld}" + ", {id=" XLAT_FMT ", size=2, string=\"\\377\\377\"}" + "]} => {controls=" + "[{id=" XLAT_FMT ", size=0, value=%d, value64=%lld}" + ", {id=" XLAT_FMT ", size=2, string=\"\\377\\377\"}" "], error_idx=%u}) = -1 EBADF (%m)\n", - p_ext_controls->count, + XLAT_STR(VIDIOC_S_EXT_CTRLS), XLAT_ARGS(V4L2_CTRL_CLASS_MPEG), + p_ext_controls->count, XLAT_ARGS(V4L2_CID_BRIGHTNESS), p_ext_controls->controls[0].value, (long long) p_ext_controls->controls[0].value64, + XLAT_ARGS(V4L2_CID_CONTRAST), XLAT_ARGS(V4L2_CID_BRIGHTNESS), p_ext_controls->controls[0].value, (long long) p_ext_controls->controls[0].value64, - p_ext_controls->error_idx); + XLAT_ARGS(V4L2_CID_CONTRAST), p_ext_controls->error_idx); ++p_ext_controls->count; ioctl(-1, VIDIOC_S_EXT_CTRLS, p_ext_controls); - printf("ioctl(-1, VIDIOC_S_EXT_CTRLS" - ", {ctrl_class=V4L2_CTRL_CLASS_MPEG, count=%u, controls=" - "[{id=V4L2_CID_BRIGHTNESS, size=0, value=%d, value64=%lld}" - ", {id=V4L2_CID_CONTRAST, size=2, string=\"\\377\\377\"}" + printf("ioctl(-1, %s, {ctrl_class=" XLAT_FMT ", count=%u, controls=" + "[{id=" XLAT_FMT ", size=0, value=%d, value64=%lld}" + ", {id=" XLAT_FMT ", size=2, string=\"\\377\\377\"}" ", ... /* %p */]}) = -1 EBADF (%m)\n", - p_ext_controls->count, + XLAT_STR(VIDIOC_S_EXT_CTRLS), XLAT_ARGS(V4L2_CTRL_CLASS_MPEG), + p_ext_controls->count, XLAT_ARGS(V4L2_CID_BRIGHTNESS), p_ext_controls->controls[0].value, (long long) p_ext_controls->controls[0].value64, - p_ext_controls->controls + 2); + XLAT_ARGS(V4L2_CID_CONTRAST), p_ext_controls->controls + 2); # endif /* HAVE_DECL_V4L2_CTRL_TYPE_STRING */ /* VIDIOC_TRY_EXT_CTRLS */ ioctl(-1, VIDIOC_TRY_EXT_CTRLS, 0); - printf("ioctl(-1, VIDIOC_TRY_EXT_CTRLS, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_TRY_EXT_CTRLS)); p_ext_controls->ctrl_class = V4L2_CTRL_CLASS_USER; p_ext_controls->count = magic; p_ext_controls->controls = (void *) -2UL; ioctl(-1, VIDIOC_TRY_EXT_CTRLS, p_ext_controls); - printf("ioctl(-1, VIDIOC_TRY_EXT_CTRLS" - ", {ctrl_class=V4L2_CTRL_CLASS_USER, count=%u, controls=%p})" + printf("ioctl(-1, %s, {ctrl_class=" XLAT_FMT ", count=%u, controls=%p})" " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_TRY_EXT_CTRLS), XLAT_ARGS(V4L2_CTRL_CLASS_USER), p_ext_controls->count, p_ext_controls->controls); /* VIDIOC_G_EXT_CTRLS */ ioctl(-1, VIDIOC_G_EXT_CTRLS, 0); - printf("ioctl(-1, VIDIOC_G_EXT_CTRLS, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_EXT_CTRLS)); ioctl(-1, VIDIOC_G_EXT_CTRLS, p_ext_controls); - printf("ioctl(-1, VIDIOC_G_EXT_CTRLS" - ", {ctrl_class=V4L2_CTRL_CLASS_USER, count=%u, controls=%p" + printf("ioctl(-1, %s, {ctrl_class=" XLAT_FMT ", count=%u, controls=%p" ", error_idx=%u}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_EXT_CTRLS), XLAT_ARGS(V4L2_CTRL_CLASS_USER), p_ext_controls->count, p_ext_controls->controls, p_ext_controls->error_idx); #endif /* VIDIOC_S_EXT_CTRLS */ -#ifdef VIDIOC_ENUM_FRAMESIZES +#ifdef HAVE_STRUCT_V4L2_FRMSIZEENUM ioctl(-1, VIDIOC_ENUM_FRAMESIZES, 0); - printf("ioctl(-1, VIDIOC_ENUM_FRAMESIZES, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_ENUM_FRAMESIZES)); TAIL_ALLOC_OBJECT_CONST_PTR(struct v4l2_frmsizeenum, p_frmsizeenum); p_frmsizeenum->index = magic; p_frmsizeenum->pixel_format = fourcc(cc[0], cc[1], cc[2], cc[3]); ioctl(-1, VIDIOC_ENUM_FRAMESIZES, p_frmsizeenum); - printf("ioctl(-1, VIDIOC_ENUM_FRAMESIZES, {index=%u" - ", pixel_format=v4l2_fourcc('%c', '\\%c', '\\%c', '\\x%x')})" - " = -1 EBADF (%m)\n", p_frmsizeenum->index, - cc[0], cc[1], cc[2], cc[3]); -#endif /* VIDIOC_ENUM_FRAMESIZES */ - -#ifdef VIDIOC_ENUM_FRAMEINTERVALS + printf("ioctl(-1, %s, {index=%u, pixel_format=" +# if XLAT_RAW + "0x%hhx%hhx%hhx%hhx" +# else /* !XLAT_RAW */ + "v4l2_fourcc('%c', '\\%c', '\\%c', '\\x%x')" +# endif /* XLAT_RAW */ + "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_ENUM_FRAMESIZES), p_frmsizeenum->index, +# if XLAT_RAW + cc[3], cc[2], cc[1], cc[0] +# else /* !XLAT_RAW */ + cc[0], cc[1], cc[2], cc[3] +# endif /* XLAT_RAW */ + ); +#endif /* HAVE_STRUCT_V4L2_FRMSIZEENUM */ + +#ifdef HAVE_STRUCT_V4L2_FRMIVALENUM ioctl(-1, VIDIOC_ENUM_FRAMEINTERVALS, 0); - printf("ioctl(-1, VIDIOC_ENUM_FRAMEINTERVALS, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_ENUM_FRAMEINTERVALS)); struct v4l2_frmivalenum *const p_v4l2_frmivalenum = page_end - sizeof(*p_v4l2_frmivalenum); ioctl(-1, VIDIOC_ENUM_FRAMEINTERVALS, p_v4l2_frmivalenum); - printf("ioctl(-1, VIDIOC_ENUM_FRAMEINTERVALS, {index=%u" - ", pixel_format=v4l2_fourcc('\\x%x', '\\x%x', '\\x%x', '\\x%x')" + printf("ioctl(-1, %s, {index=%u, pixel_format=" +# if XLAT_RAW + "%#x" +# else /* !XLAT_RAW */ + "v4l2_fourcc('\\x%x', '\\x%x', '\\x%x', '\\x%x')" +# endif /* XLAT_RAW */ ", width=%u, height=%u}) = -1 EBADF (%m)\n", - p_v4l2_frmivalenum->index, + XLAT_STR(VIDIOC_ENUM_FRAMEINTERVALS), p_v4l2_frmivalenum->index, +# if XLAT_RAW + p_v4l2_frmivalenum->pixel_format, +# else /* !XLAT_RAW */ cc0(p_v4l2_frmivalenum->pixel_format), cc1(p_v4l2_frmivalenum->pixel_format), cc2(p_v4l2_frmivalenum->pixel_format), cc3(p_v4l2_frmivalenum->pixel_format), +# endif /* XLAT_RAW */ p_v4l2_frmivalenum->width, p_v4l2_frmivalenum->height); -#endif /* VIDIOC_ENUM_FRAMEINTERVALS */ +#endif /* HAVE_STRUCT_V4L2_FRMIVALENUM */ -#ifdef VIDIOC_CREATE_BUFS +#ifdef HAVE_STRUCT_V4L2_CREATE_BUFFERS ioctl(-1, VIDIOC_CREATE_BUFS, 0); - printf("ioctl(-1, VIDIOC_CREATE_BUFS, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_CREATE_BUFS)); struct v4l2_create_buffers *const p_v4l2_create_buffers = page_end - sizeof(*p_v4l2_create_buffers); ioctl(-1, VIDIOC_CREATE_BUFS, p_v4l2_create_buffers); - printf("ioctl(-1, VIDIOC_CREATE_BUFS, {count=%u, memory=%#x" - " /* V4L2_MEMORY_??? */, format={type=%#x" - " /* V4L2_BUF_TYPE_??? */}}) = -1 EBADF (%m)\n", + printf("ioctl(-1, %s, {count=%u, memory=%#x" + NRAW(" /* V4L2_MEMORY_??? */") ", format={type=%#x" + NRAW(" /* V4L2_BUF_TYPE_??? */") "}}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_CREATE_BUFS), p_v4l2_create_buffers->count, p_v4l2_create_buffers->memory, p_v4l2_create_buffers->format.type); -#endif /* VIDIOC_CREATE_BUFS */ +#endif /* HAVE_STRUCT_V4L2_CREATE_BUFFERS */ puts("+++ exited with 0 +++"); return 0; diff --git a/tests-m32/ioctl_watchdog.c b/tests-m32/ioctl_watchdog.c new file mode 100644 index 00000000..d1af8365 --- /dev/null +++ b/tests-m32/ioctl_watchdog.c @@ -0,0 +1,61 @@ +/* + * Check decoding of WDIOC* commands of ioctl syscall. + * + * Copyright (c) 2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#include +#include +#include +#include + +#define XLAT_MACROS_ONLY +#include "xlat/watchdog_ioctl_cmds.h" +#undef XLAT_MACROS_ONLY + +#define RVAL_EBADF " = -1 EBADF (%m)\n" + +int +main(void) +{ + int val = 123; + + ioctl(-1, WDIOC_GETSTATUS, &val); + printf("ioctl(-1, WDIOC_GETSTATUS, %p)" RVAL_EBADF, &val); + + ioctl(-1, WDIOC_GETBOOTSTATUS, &val); + printf("ioctl(-1, WDIOC_GETBOOTSTATUS, %p)" RVAL_EBADF, &val); + + ioctl(-1, WDIOC_GETTEMP, &val); + printf("ioctl(-1, WDIOC_GETTEMP, %p)" RVAL_EBADF, &val); + + ioctl(-1, WDIOC_GETTIMEOUT, &val); + printf("ioctl(-1, WDIOC_GETTIMEOUT, %p)" RVAL_EBADF, &val); + + ioctl(-1, WDIOC_GETPRETIMEOUT, &val); + printf("ioctl(-1, WDIOC_GETPRETIMEOUT, %p)" RVAL_EBADF, &val); + + ioctl(-1, WDIOC_GETTIMELEFT, &val); + printf("ioctl(-1, WDIOC_GETTIMELEFT, %p)" RVAL_EBADF, &val); + + ioctl(-1, WDIOC_SETTIMEOUT, &val); + printf("ioctl(-1, WDIOC_SETTIMEOUT, [123])" RVAL_EBADF); + + ioctl(-1, WDIOC_SETPRETIMEOUT, &val); + printf("ioctl(-1, WDIOC_SETPRETIMEOUT, [123])" RVAL_EBADF); + + ioctl(-1, WDIOC_KEEPALIVE); + printf("ioctl(-1, WDIOC_KEEPALIVE)" RVAL_EBADF); + + ioctl(-1, _IOC(_IOC_NONE, 'W', 0xff, 0), &val); + printf("ioctl(-1, _IOC(_IOC_NONE, %#x, 0xff, 0), %p)" RVAL_EBADF, + 'W', &val); + + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests-m32/ioctl_watchdog.gen.test b/tests-m32/ioctl_watchdog.gen.test new file mode 100755 index 00000000..ed1c71f4 --- /dev/null +++ b/tests-m32/ioctl_watchdog.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_watchdog +ioctl.test ); do not edit. +set -- +. "${srcdir=.}/ioctl.test" diff --git a/tests-m32/ioperm.c b/tests-m32/ioperm.c index 3f99b2db..cba8e7be 100644 --- a/tests-m32/ioperm.c +++ b/tests-m32/ioperm.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_ioperm diff --git a/tests-m32/iopl.c b/tests-m32/iopl.c index f8904030..f8c772b6 100644 --- a/tests-m32/iopl.c +++ b/tests-m32/iopl.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_iopl diff --git a/tests-m32/ioprio--pidns-translation.c b/tests-m32/ioprio--pidns-translation.c new file mode 100644 index 00000000..bcb49a8b --- /dev/null +++ b/tests-m32/ioprio--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "ioprio.c" diff --git a/tests-m32/ioprio--pidns-translation.gen.test b/tests-m32/ioprio--pidns-translation.gen.test new file mode 100755 index 00000000..f6a9c726 --- /dev/null +++ b/tests-m32/ioprio--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioprio--pidns-translation test_pidns -a18 -e trace=ioprio_get,ioprio_set); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a18 -e trace=ioprio_get,ioprio_set diff --git a/tests-m32/ioprio.c b/tests-m32/ioprio.c index 65775963..5d998a22 100644 --- a/tests-m32/ioprio.c +++ b/tests-m32/ioprio.c @@ -2,15 +2,15 @@ * Check decoding of ioprio_get and ioprio_set syscalls. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" - -#include +#include "scno.h" +#include "pidns.h" #if defined(__NR_ioprio_get) && defined(__NR_ioprio_set) @@ -30,12 +30,18 @@ enum { int main(void) { + PIDNS_TEST_INIT; + static const kernel_ulong_t bogus_which = (kernel_ulong_t) 0xdeadfacefa57beefULL; static const kernel_ulong_t bogus_who = (kernel_ulong_t) 0xbadc0dedda7a1057ULL; static const kernel_ulong_t bogus_ioprio = (kernel_ulong_t) 0xdec0ded1facefeedULL; + + const int pid = getpid(); + const int pgid = getpgid(0); + # if !XLAT_RAW static const char * const bogus_ioprio_str = "IOPRIO_PRIO_VALUE(0x7d677 /* IOPRIO_CLASS_??? */, 7917)"; @@ -46,6 +52,7 @@ main(void) rc = syscall(__NR_ioprio_get, bogus_which, bogus_who); errstr = sprintrc(rc); + pidns_print_leader(); # if XLAT_RAW printf("ioprio_get(%#x, %d) = %s\n", (int) bogus_which, (int) bogus_who, errstr); @@ -54,47 +61,52 @@ main(void) (int) bogus_which, (int) bogus_who, errstr); # endif - rc = syscall(__NR_ioprio_get, 1, 0); + rc = syscall(__NR_ioprio_get, 1, pid); errstr = sprintrc(rc); + pidns_print_leader(); + printf("ioprio_get("); # if XLAT_RAW - printf("ioprio_get(0x1, 0) = %s\n", errstr); + printf("0x1, "); # elif XLAT_VERBOSE - printf("ioprio_get(0x1 /* IOPRIO_WHO_PROCESS */, 0) = %s", errstr); - if (rc >= 0) { - printf(" (IOPRIO_PRIO_VALUE(%u /* ", (unsigned int) rc >> 13); - printxval(ioprio_class, (unsigned int) rc >> 13, - "IOPRIO_CLASS_???"); - printf(" */, %u))", (unsigned int) rc & 0x1fff); - } - puts(""); + printf("0x1 /* IOPRIO_WHO_PROCESS */, "); # else /* XLAT_ABBREV */ - printf("ioprio_get(IOPRIO_WHO_PROCESS, 0) = %s", errstr); + printf("IOPRIO_WHO_PROCESS, "); +# endif + printf("%d%s) = %s", pid, pidns_pid2str(PT_TGID), errstr); +# if !XLAT_RAW if (rc >= 0) { printf(" (IOPRIO_PRIO_VALUE("); printxval(ioprio_class, (unsigned int) rc >> 13, "IOPRIO_CLASS_???"); printf(", %u))", (unsigned int) rc & 0x1fff); } - puts(""); # endif + puts(""); - rc = syscall(__NR_ioprio_set, 2, 0, 8191); + rc = syscall(__NR_ioprio_set, 2, pgid, 8191); errstr = sprintrc(rc); + pidns_print_leader(); + printf("ioprio_set("); # if XLAT_RAW - printf("ioprio_set(%#x, 0, 8191) = %s\n", 2, errstr); + printf("%#x", 2); # elif XLAT_VERBOSE - printf("ioprio_set(%#x /* IOPRIO_WHO_PGRP */, 0, 8191" - " /* IOPRIO_PRIO_VALUE(0 /* IOPRIO_CLASS_NONE */, 8191) */)" - " = %s\n", - 2, errstr); + printf("%#x /* IOPRIO_WHO_PGRP */", 2); # else /* XLAT_ABBREV */ - printf("ioprio_set(IOPRIO_WHO_PGRP, 0" - ", IOPRIO_PRIO_VALUE(IOPRIO_CLASS_NONE, 8191)) = %s\n", - errstr); + printf("IOPRIO_WHO_PGRP"); +# endif + printf(", %d%s", pgid, pidns_pid2str(PT_PGID)); +# if XLAT_RAW + printf(", 8191)"); +# elif XLAT_VERBOSE + printf(", 8191 /* IOPRIO_PRIO_VALUE(0 /* IOPRIO_CLASS_NONE */, 8191) */)"); +# else /* XLAT_ABBREV */ + printf(", IOPRIO_PRIO_VALUE(IOPRIO_CLASS_NONE, 8191))"); # endif + printf(" = %s\n", errstr); rc = syscall(__NR_ioprio_set, bogus_which, bogus_who, bogus_ioprio); errstr = sprintrc(rc); + pidns_print_leader(); # if XLAT_RAW printf("ioprio_set(%#x, %d, %d) = %s\n", (int) bogus_which, (int) bogus_who, (int) bogus_ioprio, @@ -109,6 +121,7 @@ main(void) errstr); # endif + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; diff --git a/tests-m32/ipc.c b/tests-m32/ipc.c index 5c86f207..5cd0b603 100644 --- a/tests-m32/ipc.c +++ b/tests-m32/ipc.c @@ -2,13 +2,14 @@ * Check decoding of ipc syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_ipc && defined HAVE_LINUX_IPC_H diff --git a/tests-m32/ipc_msg.c b/tests-m32/ipc_msg.c index b12f4af3..55dc287f 100644 --- a/tests-m32/ipc_msg.c +++ b/tests-m32/ipc_msg.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2015 Elvira Khabirova * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -20,18 +20,24 @@ # define MSG_STAT_ANY 13 #endif +#undef TEST_MSGCTL_BOGUS_ADDR + +/* + * Starting with commit glibc-2.32~83, on every 32-bit architecture + * where 32-bit time_t support is enabled, glibc tries to retrieve + * the data provided in the third argument of msgctl call. + */ +#if GLIBC_PREREQ_GE(2, 32) && defined __TIMESIZE && __TIMESIZE != 64 +# define TEST_MSGCTL_BOGUS_ADDR 0 +#endif /* * Before glibc-2.22-122-gbe48165, ppc64 code tried to retrieve data * provided in third argument of msgctl call (in case of IPC_SET cmd) * which led to segmentation fault. */ -#undef TEST_MSGCTL_BOGUS_ADDR -#if defined __GLIBC__ && defined POWERPC64 -# if !(defined __GLIBC_MINOR__) \ - || ((__GLIBC__ << 16) + __GLIBC_MINOR__ < (2 << 16) + 23) -# define TEST_MSGCTL_BOGUS_ADDR 0 -# endif -#endif /* __GLIBC__ && POWERPC64 */ +#if GLIBC_PREREQ_LT(2, 23) && (defined POWERPC64 || defined POWERPC64LE) +# define TEST_MSGCTL_BOGUS_ADDR 0 +#endif #ifndef TEST_MSGCTL_BOGUS_ADDR # define TEST_MSGCTL_BOGUS_ADDR 1 @@ -43,6 +49,7 @@ # define str_ipc_rmid "0" # define str_ipc_set "0x1" # define str_ipc_stat "0x2" +# define str_ipc_info "0x3" # define str_msg_stat "0xb" # define str_msg_info "0xc" # define str_msg_stat_any "0xd" @@ -55,6 +62,7 @@ # define str_ipc_rmid "0 /\\* IPC_RMID \\*/" # define str_ipc_set "0x1 /\\* IPC_SET \\*/" # define str_ipc_stat "0x2 /\\* IPC_STAT \\*/" +# define str_ipc_info "0x3 /\\* IPC_INFO \\*/" # define str_msg_stat "0xb /\\* MSG_STAT \\*/" # define str_msg_info "0xc /\\* MSG_INFO \\*/" # define str_msg_stat_any "0xd /\\* MSG_STAT_ANY \\*/" @@ -66,6 +74,7 @@ # define str_ipc_rmid "IPC_RMID" # define str_ipc_set "IPC_SET" # define str_ipc_stat "IPC_STAT" +# define str_ipc_info "IPC_INFO" # define str_msg_stat "MSG_STAT" # define str_msg_info "MSG_INFO" # define str_msg_stat_any "MSG_STAT_ANY" @@ -84,6 +93,68 @@ cleanup(void) id = -1; } +static void +print_msginfo(const char *const str_ipc_cmd, + const struct msginfo *const info, + const int rc) +{ + if (rc < 0) { + printf("msgctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", + id, str_ipc_64, str_ipc_cmd, info, sprintrc_grep(rc)); + return; + } + + printf("msgctl\\(%d, (%s\\|)?%s, \\{msgpool=%d, msgmap=%d, msgmax=%d" + ", msgmnb=%d, msgmni=%d, msgssz=%d, msgtql=%d, msgseg=%u\\}\\)" + " = %d\n", + id, + str_ipc_64, + str_ipc_cmd, + info->msgpool, + info->msgmap, + info->msgmax, + info->msgmnb, + info->msgmni, + info->msgssz, + info->msgtql, + (unsigned) info->msgseg, + rc); +} + +static void +print_msqid_ds(const char *const str_ipc_cmd, + const struct msqid_ds *const ds, + const int rc) +{ + if (rc < 0) { + printf("msgctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", + id, str_ipc_64, str_ipc_cmd, ds, sprintrc_grep(rc)); + return; + } + + printf("msgctl\\(%d, (%s\\|)?%s, \\{msg_perm=\\{uid=%u" + ", gid=%u, mode=%#o, key=%u, cuid=%u, cgid=%u\\}" + ", msg_stime=%u, msg_rtime=%u, msg_ctime=%u, msg_qnum=%u" + ", msg_qbytes=%u, msg_lspid=%d, msg_lrpid=%d\\}\\) = %d\n", + id, + str_ipc_64, + str_ipc_cmd, + (unsigned) ds->msg_perm.uid, + (unsigned) ds->msg_perm.gid, + (unsigned) ds->msg_perm.mode, + (unsigned) ds->msg_perm.__key, + (unsigned) ds->msg_perm.cuid, + (unsigned) ds->msg_perm.cgid, + (unsigned) ds->msg_stime, + (unsigned) ds->msg_rtime, + (unsigned) ds->msg_ctime, + (unsigned) ds->msg_qnum, + (unsigned) ds->msg_qbytes, + (int) ds->msg_lspid, + (int) ds->msg_lrpid, + rc); +} + int main(void) { @@ -98,7 +169,10 @@ main(void) static const int bogus_flags = 0xface1e55 & ~IPC_CREAT; int rc; - struct msqid_ds ds; + union { + struct msqid_ds ds; + struct msginfo info; + } buf; rc = msgget(bogus_key, bogus_flags); printf("msgget\\(%#llx, %s\\|%#04o\\) = %s\n", @@ -123,39 +197,32 @@ main(void) sprintrc_grep(rc)); #endif - if (msgctl(id, IPC_STAT, &ds)) + rc = msgctl(id, IPC_STAT, &buf.ds); + if (rc < 0) perror_msg_and_skip("msgctl IPC_STAT"); - printf("msgctl\\(%d, (%s\\|)?%s, \\{msg_perm=\\{uid=%u" - ", gid=%u, mode=%#o, key=%u, cuid=%u, cgid=%u\\}, msg_stime=%u" - ", msg_rtime=%u, msg_ctime=%u, msg_qnum=%u, msg_qbytes=%u" - ", msg_lspid=%u, msg_lrpid=%u\\}\\) = 0\n", - id, str_ipc_64, str_ipc_stat, - (unsigned) ds.msg_perm.uid, (unsigned) ds.msg_perm.gid, - (unsigned) ds.msg_perm.mode, (unsigned) ds.msg_perm.__key, - (unsigned) ds.msg_perm.cuid, (unsigned) ds.msg_perm.cgid, - (unsigned) ds.msg_stime, (unsigned) ds.msg_rtime, - (unsigned) ds.msg_ctime, (unsigned) ds.msg_qnum, - (unsigned) ds.msg_qbytes, (unsigned) ds.msg_lspid, - (unsigned) ds.msg_lrpid); - - if (msgctl(id, IPC_SET, &ds)) + print_msqid_ds(str_ipc_stat, &buf.ds, rc); + + if (msgctl(id, IPC_SET, &buf.ds)) perror_msg_and_skip("msgctl IPC_SET"); printf("msgctl\\(%d, (%s\\|)?%s, \\{msg_perm=\\{uid=%u" - ", gid=%u, mode=%#o\\}, ...\\}\\) = 0\n", - id, str_ipc_64, str_ipc_set, (unsigned) ds.msg_perm.uid, - (unsigned) ds.msg_perm.gid, (unsigned) ds.msg_perm.mode); + ", gid=%u, mode=%#o\\}, msg_qbytes=%u\\}\\) = 0\n", + id, str_ipc_64, str_ipc_set, + (unsigned) buf.ds.msg_perm.uid, + (unsigned) buf.ds.msg_perm.gid, + (unsigned) buf.ds.msg_perm.mode, + (unsigned) buf.ds.msg_qbytes); - rc = msgctl(0, MSG_INFO, &ds); - printf("msgctl\\(0, (%s\\|)?%s, %p\\) = %s\n", - str_ipc_64, str_msg_info, &ds, sprintrc_grep(rc)); + rc = msgctl(id, IPC_INFO, &buf.ds); + print_msginfo(str_ipc_info, &buf.info, rc); - rc = msgctl(id, MSG_STAT, &ds); - printf("msgctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", - id, str_ipc_64, str_msg_stat, &ds, sprintrc_grep(rc)); + rc = msgctl(id, MSG_INFO, &buf.ds); + print_msginfo(str_msg_info, &buf.info, rc); - rc = msgctl(id, MSG_STAT_ANY, &ds); - printf("msgctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", - id, str_ipc_64, str_msg_stat_any, &ds, sprintrc_grep(rc)); + rc = msgctl(id, MSG_STAT, &buf.ds); + print_msqid_ds(str_msg_stat, &buf.ds, rc); + + rc = msgctl(id, MSG_STAT_ANY, &buf.ds); + print_msqid_ds(str_msg_stat_any, &buf.ds, rc); return 0; } diff --git a/tests-m32/ipc_msgbuf-Xraw.gen.test b/tests-m32/ipc_msgbuf-Xraw.gen.test index c1112cb6..be350755 100755 --- a/tests-m32/ipc_msgbuf-Xraw.gen.test +++ b/tests-m32/ipc_msgbuf-Xraw.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_msgbuf-Xraw +ipc_msgbuf.test -Xraw -a22); do not edit. -set -- -Xraw -a22 +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_msgbuf-Xraw +ipc_msgbuf.test -Xraw -a19); do not edit. +set -- -Xraw -a19 . "${srcdir=.}/ipc_msgbuf.test" diff --git a/tests-m32/ipc_msgbuf.c b/tests-m32/ipc_msgbuf.c index 92525f94..ffad6913 100644 --- a/tests-m32/ipc_msgbuf.c +++ b/tests-m32/ipc_msgbuf.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2015 Elvira Khabirova * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +11,7 @@ #include #include #include -#include +#include "scno.h" #include #include #include diff --git a/tests-m32/ipc_sem.c b/tests-m32/ipc_sem.c index 7341f728..365ed177 100644 --- a/tests-m32/ipc_sem.c +++ b/tests-m32/ipc_sem.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2015 Andreas Schwab * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,6 +11,7 @@ #include #include #include +#include #include #include "xlat.h" @@ -24,7 +25,9 @@ # define str_ipc_flags "0xface1e00" # define str_ipc_private "0" # define str_ipc_rmid "0" +# define str_ipc_set "0x1" # define str_ipc_stat "0x2" +# define str_ipc_info "0x3" # define str_sem_stat "0x12" # define str_sem_info "0x13" # define str_sem_stat_any "0x14" @@ -35,7 +38,9 @@ "0xface1e00 /\\* IPC_CREAT\\|IPC_EXCL\\|IPC_NOWAIT\\|0xface1000 \\*/" # define str_ipc_private "0 /\\* IPC_PRIVATE \\*/" # define str_ipc_rmid "0 /\\* IPC_RMID \\*/" +# define str_ipc_set "0x1 /\\* IPC_SET \\*/" # define str_ipc_stat "0x2 /\\* IPC_STAT \\*/" +# define str_ipc_info "0x3 /\\* IPC_INFO \\*/" # define str_sem_stat "0x12 /\\* SEM_STAT \\*/" # define str_sem_info "0x13 /\\* SEM_INFO \\*/" # define str_sem_stat_any "0x14 /\\* SEM_STAT_ANY \\*/" @@ -45,7 +50,9 @@ # define str_ipc_flags "IPC_CREAT\\|IPC_EXCL\\|IPC_NOWAIT\\|0xface1000" # define str_ipc_private "IPC_PRIVATE" # define str_ipc_rmid "IPC_RMID" +# define str_ipc_set "IPC_SET" # define str_ipc_stat "IPC_STAT" +# define str_ipc_info "IPC_INFO" # define str_sem_stat "SEM_STAT" # define str_sem_info "SEM_INFO" # define str_sem_stat_any "SEM_STAT_ANY" @@ -72,6 +79,66 @@ cleanup(void) id = -1; } +static void +print_semid_ds(const char *const str_ipc_cmd, + const struct semid_ds *const ds, + const int rc) +{ + if (rc < 0) { + printf("semctl\\(%d, 0, (%s\\|)?%s, (%p|\\[%p\\])\\) = %s\n", + id, str_ipc_64, str_ipc_cmd, &ds, &ds, + sprintrc_grep(rc)); + return; + } + printf("semctl\\(%d, 0, (%s\\|)?%s, \\{sem_perm=\\{uid=%u, gid=%u" + ", mode=%#o, key=%u, cuid=%u, cgid=%u\\}, sem_otime=%llu" + ", sem_ctime=%llu, sem_nsems=%llu\\}\\) = %d\n", + id, + str_ipc_64, + str_ipc_cmd, + (unsigned) ds->sem_perm.uid, + (unsigned) ds->sem_perm.gid, + (unsigned) ds->sem_perm.mode, + (unsigned) ds->sem_perm.__key, + (unsigned) ds->sem_perm.cuid, + (unsigned) ds->sem_perm.cgid, + (unsigned long long) ds->sem_otime, + (unsigned long long) ds->sem_ctime, + (unsigned long long) ds->sem_nsems, + rc); +} + +static void +print_sem_info(const char *const str_ipc_cmd, + const struct seminfo *const info, + const int rc) +{ + if (rc < 0) { + printf("semctl\\(%d, 0, (%s\\|)?%s, (%p|\\[%p\\])\\) = %s\n", + id, str_ipc_64, str_ipc_cmd, &info, &info, + sprintrc_grep(rc)); + return; + } + + printf("semctl\\(%d, 0, (%s\\|)?%s, \\{semmap=%d, semmni=%d" + ", semmns=%d, semmnu=%d, semmsl=%d, semopm=%d, semume=%d" + ", semusz=%d, semvmx=%d, semaem=%d\\}\\) = %d\n", + id, + str_ipc_64, + str_ipc_cmd, + info->semmap, + info->semmni, + info->semmns, + info->semmnu, + info->semmsl, + info->semopm, + info->semume, + info->semusz, + info->semvmx, + info->semaem, + rc); +} + int main(void) { @@ -91,6 +158,8 @@ main(void) struct semid_ds ds; struct seminfo info; + memset(&ds, 0, sizeof(ds)); + rc = semget(bogus_key, bogus_size, bogus_flags); printf("semget\\(%#llx, %d, %s\\|%#04o\\) = %s\n", zero_extend_signed_to_ull(bogus_key), bogus_size, @@ -108,25 +177,41 @@ main(void) bogus_semid, bogus_semnum, str_ipc_64, str_bogus_cmd, bogus_arg, bogus_arg, sprintrc_grep(rc)); + un.__buf = &info; + rc = semctl(id, 0, IPC_INFO, un); + print_sem_info(str_ipc_info, &info, rc); + + rc = semctl(id, 0, SEM_INFO, un); + print_sem_info(str_sem_info, &info, rc); + un.buf = &ds; - if (semctl(id, 0, IPC_STAT, un)) + rc = semctl(id, 0, IPC_STAT, un); + if (rc < 0) perror_msg_and_skip("semctl IPC_STAT"); - printf("semctl\\(%d, 0, (%s\\|)?%s, \\[?%p\\]?\\) = 0\n", - id, str_ipc_64, str_ipc_stat, &ds); + print_semid_ds(str_ipc_stat, &ds, rc); - un.__buf = &info; - rc = semctl(0, 0, SEM_INFO, un); - printf("semctl\\(0, 0, (%s\\|)?%s, \\[?%p\\]?\\) = %s\n", - str_ipc_64, str_sem_info, &info, sprintrc_grep(rc)); + if (semctl(id, 0, IPC_SET, un)) + perror_msg_and_skip("semctl IPC_SET"); + printf("semctl\\(%d, 0, (%s\\|)?%s, \\{sem_perm=\\{uid=%u, gid=%u" + ", mode=%#o\\}\\}\\) = 0\n", + id, str_ipc_64, str_ipc_set, + (unsigned) ds.sem_perm.uid, + (unsigned) ds.sem_perm.gid, + (unsigned) ds.sem_perm.mode); - un.buf = &ds; rc = semctl(id, 0, SEM_STAT, un); - printf("semctl\\(%d, 0, (%s\\|)?%s, \\[?%p\\]?\\) = %s\n", - id, str_ipc_64, str_sem_stat, &ds, sprintrc_grep(rc)); + print_semid_ds(str_sem_stat, &ds, rc); +/* + * glibc fails to pass the buffer for SEM_STAT_ANY command, + * so the kernel receives garbage instead of un.buf address: + * https://sourceware.org/bugzilla/show_bug.cgi?id=26637 + * musl doesn't pass the buffer either. + */ +#if 0 rc = semctl(id, 0, SEM_STAT_ANY, un); - printf("semctl\\(%d, 0, (%s\\|)?%s, (%p|\\[(%p|NULL)\\]|NULL)\\) = %s\n", - id, str_ipc_64, str_sem_stat_any, &ds, &ds, sprintrc_grep(rc)); + print_semid_ds(str_sem_stat_any, &ds, rc); +#endif return 0; } diff --git a/tests-m32/ipc_shm-Xabbrev.gen.test b/tests-m32/ipc_shm-Xabbrev.gen.test index d68c2462..19821620 100755 --- a/tests-m32/ipc_shm-Xabbrev.gen.test +++ b/tests-m32/ipc_shm-Xabbrev.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_shm-Xabbrev +ipc.sh -Xabbrev -a29); do not edit. -set -- -Xabbrev -a29 +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_shm-Xabbrev +ipc.sh -Xabbrev -a26); do not edit. +set -- -Xabbrev -a26 . "${srcdir=.}/ipc.sh" diff --git a/tests-m32/ipc_shm-Xverbose.gen.test b/tests-m32/ipc_shm-Xverbose.gen.test index 170adeee..457ad666 100755 --- a/tests-m32/ipc_shm-Xverbose.gen.test +++ b/tests-m32/ipc_shm-Xverbose.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_shm-Xverbose +ipc.sh -Xverbose -a36); do not edit. -set -- -Xverbose -a36 +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_shm-Xverbose +ipc.sh -Xverbose -a34); do not edit. +set -- -Xverbose -a34 . "${srcdir=.}/ipc.sh" diff --git a/tests-m32/ipc_shm.c b/tests-m32/ipc_shm.c index 76c19d8d..18de6bf1 100644 --- a/tests-m32/ipc_shm.c +++ b/tests-m32/ipc_shm.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2015 Elvira Khabirova * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -25,6 +25,10 @@ # define SHM_STAT_ANY 15 #endif +#ifndef SHM_NORESERVE +# define SHM_NORESERVE 010000 +#endif + #include "xlat.h" #include "xlat/shm_resource_flags.h" @@ -35,6 +39,7 @@ # define str_ipc_rmid "0" # define str_ipc_set "0x1" # define str_ipc_stat "0x2" +# define str_ipc_info "0x3" # define str_shm_stat "0xd" # define str_shm_info "0xe" # define str_shm_stat_any "0xf" @@ -49,6 +54,7 @@ # define str_ipc_rmid "0 /\\* IPC_RMID \\*/" # define str_ipc_set "0x1 /\\* IPC_SET \\*/" # define str_ipc_stat "0x2 /\\* IPC_STAT \\*/" +# define str_ipc_info "0x3 /\\* IPC_INFO \\*/" # define str_shm_stat "0xd /\\* SHM_STAT \\*/" # define str_shm_info "0xe /\\* SHM_INFO \\*/" # define str_shm_stat_any "0xf /\\* SHM_STAT_ANY \\*/" @@ -62,6 +68,7 @@ # define str_ipc_rmid "IPC_RMID" # define str_ipc_set "IPC_SET" # define str_ipc_stat "IPC_STAT" +# define str_ipc_info "IPC_INFO" # define str_shm_stat "SHM_STAT" # define str_shm_info "SHM_INFO" # define str_shm_stat_any "SHM_STAT_ANY" @@ -69,6 +76,21 @@ # define str_bogus_cmd "0xdefaced2 /\\* SHM_\\?\\?\\? \\*/" #endif +#undef TEST_SHMCTL_BOGUS_ADDR + +/* + * Starting with commit glibc-2.32~80, on every 32-bit architecture + * where 32-bit time_t support is enabled, glibc tries to retrieve + * the data provided in the third argument of shmctl call. + */ +#if GLIBC_PREREQ_GE(2, 32) && defined __TIMESIZE && __TIMESIZE != 64 +# define TEST_SHMCTL_BOGUS_ADDR 0 +#endif + +#ifndef TEST_SHMCTL_BOGUS_ADDR +# define TEST_SHMCTL_BOGUS_ADDR 1 +#endif + static int id = -1; static void @@ -80,6 +102,89 @@ cleanup(void) id = -1; } +static void +print_shmid_ds(const char *const str_ipc_cmd, + const struct shmid_ds *const ds, + const int rc) +{ + if (rc < 0) { + printf("shmctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", + id, str_ipc_64, str_ipc_cmd, ds, sprintrc_grep(rc)); + return; + } + printf("shmctl\\(%d, (%s\\|)?%s, \\{shm_perm=\\{uid=%u, gid=%u" + ", mode=%#o, key=%u, cuid=%u, cgid=%u\\}, shm_segsz=%u" + ", shm_cpid=%d, shm_lpid=%d, shm_nattch=%u, shm_atime=%u" + ", shm_dtime=%u, shm_ctime=%u\\}\\) = %d\n", + id, + str_ipc_64, + str_ipc_cmd, + (unsigned) ds->shm_perm.uid, + (unsigned) ds->shm_perm.gid, + (unsigned) ds->shm_perm.mode, + (unsigned) ds->shm_perm.__key, + (unsigned) ds->shm_perm.cuid, + (unsigned) ds->shm_perm.cgid, + (unsigned) ds->shm_segsz, + (int) ds->shm_cpid, + (int) ds->shm_lpid, + (unsigned) ds->shm_nattch, + (unsigned) ds->shm_atime, + (unsigned) ds->shm_dtime, + (unsigned) ds->shm_ctime, + rc); +} + +static void +print_ipc_info(const char *const str_ipc_cmd, + const struct shminfo *const info, + const int rc) +{ + if (rc < 0) { + printf("shmctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", + id, str_ipc_64, str_ipc_cmd, info, sprintrc_grep(rc)); + return; + } + + printf("shmctl\\(%d, (%s\\|)?%s, \\{shmmax=%llu, shmmin=%llu" + ", shmmni=%llu, shmseg=%llu, shmall=%llu\\}\\) = %d\n", + id, + str_ipc_64, + str_ipc_cmd, + (unsigned long long) info->shmmax, + (unsigned long long) info->shmmin, + (unsigned long long) info->shmmni, + (unsigned long long) info->shmseg, + (unsigned long long) info->shmall, + rc); +} + +static void +print_shm_info(const char *const str_ipc_cmd, + const struct shm_info *const info, + const int rc) +{ + if (rc < 0) { + printf("shmctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", + id, str_ipc_64, str_ipc_cmd, info, sprintrc_grep(rc)); + return; + } + + printf("shmctl\\(%d, (%s\\|)?%s, \\{used_ids=%d, shm_tot=%llu" + ", shm_rss=%llu, shm_swp=%llu, swap_attempts=%llu" + ", swap_successes=%llu\\}\\) = %d\n", + id, + str_ipc_64, + str_ipc_cmd, + info->used_ids, + (unsigned long long) info->shm_tot, + (unsigned long long) info->shm_rss, + (unsigned long long) info->shm_swp, + (unsigned long long) info->swap_attempts, + (unsigned long long) info->swap_successes, + rc); +} + int main(void) { @@ -88,7 +193,9 @@ main(void) static const key_t bogus_key = (key_t) 0xeca86420fdb97531ULL; static const int bogus_id = 0xdefaced1; static const int bogus_cmd = 0xdefaced2; +#if TEST_SHMCTL_BOGUS_ADDR static void * const bogus_addr = (void *) -1L; +#endif static const size_t bogus_size = /* * musl sets size to SIZE_MAX if size argument is greater than @@ -105,7 +212,11 @@ main(void) static const unsigned int huge_flags = 21 << SHM_HUGE_SHIFT; int bogus_flags; int rc; - struct shmid_ds ds; + union { + struct shmid_ds ds; + struct shminfo ipc_info; + struct shm_info shm_info; + } buf; rc = shmget(bogus_key, bogus_size, 0); printf("shmget\\(%#llx, %zu, 000\\) = %s\n", @@ -156,45 +267,38 @@ main(void) printf("shmctl\\(%d, (%s\\|)?%s, NULL\\) = %s\n", bogus_id, str_ipc_64, str_bogus_cmd, sprintrc_grep(rc)); +#if TEST_SHMCTL_BOGUS_ADDR rc = shmctl(bogus_id, IPC_STAT, bogus_addr); printf("shmctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", bogus_id, str_ipc_64, str_ipc_stat, bogus_addr, sprintrc_grep(rc)); +#endif - if (shmctl(id, IPC_STAT, &ds)) + rc = shmctl(id, IPC_STAT, &buf.ds); + if (rc < 0) perror_msg_and_skip("shmctl IPC_STAT"); - printf("shmctl\\(%d, (%s\\|)?%s, \\{shm_perm=\\{uid=%u, gid=%u, " - "mode=%#o, key=%u, cuid=%u, cgid=%u\\}, shm_segsz=%u, shm_cpid=%u, " - "shm_lpid=%u, shm_nattch=%u, shm_atime=%u, shm_dtime=%u, " - "shm_ctime=%u\\}\\) = 0\n", - id, str_ipc_64, str_ipc_stat, - (unsigned) ds.shm_perm.uid, (unsigned) ds.shm_perm.gid, - (unsigned) ds.shm_perm.mode, (unsigned) ds.shm_perm.__key, - (unsigned) ds.shm_perm.cuid, (unsigned) ds.shm_perm.cgid, - (unsigned) ds.shm_segsz, (unsigned) ds.shm_cpid, - (unsigned) ds.shm_lpid, (unsigned) ds.shm_nattch, - (unsigned) ds.shm_atime, (unsigned) ds.shm_dtime, - (unsigned) ds. shm_ctime); - - if (shmctl(id, IPC_SET, &ds)) + print_shmid_ds(str_ipc_stat, &buf.ds, rc); + + if (shmctl(id, IPC_SET, &buf.ds)) perror_msg_and_skip("shmctl IPC_SET"); printf("shmctl\\(%d, (%s\\|)?%s, \\{shm_perm=\\{uid=%u, gid=%u" - ", mode=%#o\\}, ...\\}\\) = 0\n", + ", mode=%#o\\}\\}\\) = 0\n", id, str_ipc_64, str_ipc_set, - (unsigned) ds.shm_perm.uid, (unsigned) ds.shm_perm.gid, - (unsigned) ds.shm_perm.mode); + (unsigned) buf.ds.shm_perm.uid, + (unsigned) buf.ds.shm_perm.gid, + (unsigned) buf.ds.shm_perm.mode); - rc = shmctl(0, SHM_INFO, &ds); - printf("shmctl\\(0, (%s\\|)?%s, %p\\) = %s\n", - str_ipc_64, str_shm_info, &ds, sprintrc_grep(rc)); + rc = shmctl(id, IPC_INFO, &buf.ds); + print_ipc_info(str_ipc_info, &buf.ipc_info, rc); - rc = shmctl(id, SHM_STAT, &ds); - printf("shmctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", - id, str_ipc_64, str_shm_stat, &ds, sprintrc_grep(rc)); + rc = shmctl(id, SHM_INFO, &buf.ds); + print_shm_info(str_shm_info, &buf.shm_info, rc); - rc = shmctl(id, SHM_STAT_ANY, &ds); - printf("shmctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", - id, str_ipc_64, str_shm_stat_any, &ds, sprintrc_grep(rc)); + rc = shmctl(id, SHM_STAT, &buf.ds); + print_shmid_ds(str_shm_stat, &buf.ds, rc); + + rc = shmctl(id, SHM_STAT_ANY, &buf.ds); + print_shmid_ds(str_shm_stat_any, &buf.ds, rc); return 0; } diff --git a/tests-m32/ipc_shm.gen.test b/tests-m32/ipc_shm.gen.test index 2e697d3f..72f1571f 100755 --- a/tests-m32/ipc_shm.gen.test +++ b/tests-m32/ipc_shm.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_shm +ipc.sh -a29); do not edit. -set -- -a29 +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_shm +ipc.sh -a26); do not edit. +set -- -a26 . "${srcdir=.}/ipc.sh" diff --git a/tests-m32/kcmp-y--pidns-translation.c b/tests-m32/kcmp-y--pidns-translation.c new file mode 100644 index 00000000..f54d94cc --- /dev/null +++ b/tests-m32/kcmp-y--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "kcmp-y.c" diff --git a/tests-m32/kcmp-y--pidns-translation.gen.test b/tests-m32/kcmp-y--pidns-translation.gen.test new file mode 100755 index 00000000..61c3ac9c --- /dev/null +++ b/tests-m32/kcmp-y--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (kcmp-y--pidns-translation test_pidns -a22 -y -e trace=kcmp); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a22 -y -e trace=kcmp diff --git a/tests-m32/kcmp.c b/tests-m32/kcmp.c index 4e3433ee..07a446ee 100644 --- a/tests-m32/kcmp.c +++ b/tests-m32/kcmp.c @@ -2,16 +2,15 @@ * Check decoding of kcmp syscall. * * Copyright (c) 2016-2017 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" - -#include #include "scno.h" +#include "pidns.h" #ifdef __NR_kcmp @@ -65,7 +64,26 @@ static const char zero_path[] = "/dev/zero"; static void printpidfd(const char *prefix, pid_t pid, unsigned fd) { - printf("%s%d", prefix, fd); + const char *path = NULL; + +# if VERBOSE_FD + if (pid == getpid()) { + switch (fd) + { + case NULL_FD: + path = null_path; + break; + case ZERO_FD: + path = zero_path; + break; + } + } +# endif + + if (path) + printf("%s%d<%s>", prefix, fd, path); + else + printf("%s%d", prefix, fd); } /* @@ -83,7 +101,11 @@ do_kcmp(kernel_ulong_t pid1, kernel_ulong_t pid2, kernel_ulong_t type, rc = syscall(__NR_kcmp, pid1, pid2, type, idx1, idx2); errstr = sprintrc(rc); - printf("kcmp(%d, %d, ", (int) pid1, (int) pid2); + const char *pid_str = pidns_pid2str(PT_TGID); + pidns_print_leader(); + printf("kcmp(%d%s, %d%s, ", + (int) pid1, (int) pid1 == getpid() ? pid_str : "", + (int) pid2, (int) pid2 == getpid() ? pid_str : ""); if (type_str) printf("%s", type_str); @@ -128,6 +150,8 @@ do_kcmp(kernel_ulong_t pid1, kernel_ulong_t pid2, kernel_ulong_t type, int main(void) { + PIDNS_TEST_INIT; + static const kernel_ulong_t bogus_pid1 = (kernel_ulong_t) 0xdeadca75face1057ULL; static const kernel_ulong_t bogus_pid2 = @@ -180,7 +204,7 @@ main(void) /* KCMP_FILE is the only type which has additional args */ do_kcmp(3141592653U, 2718281828U, ARG_STR(KCMP_FILE), bogus_idx1, bogus_idx2); - do_kcmp(-1, -1, ARG_STR(KCMP_FILE), NULL_FD, ZERO_FD); + do_kcmp(getpid(), getpid(), ARG_STR(KCMP_FILE), NULL_FD, ZERO_FD); /* Types without additional args */ do_kcmp(-1, -1, ARG_STR(KCMP_VM), bogus_idx1, bogus_idx2); @@ -199,10 +223,11 @@ main(void) for (i = 0; i < ARRAY_SIZE(slot_data); i++) { memcpy(slot, slot_data + i, sizeof(*slot)); - do_kcmp(getpid(), getppid(), ARG_STR(KCMP_EPOLL_TFD), NULL_FD, + do_kcmp(getpid(), -1, ARG_STR(KCMP_EPOLL_TFD), NULL_FD, (uintptr_t) slot, 1); } + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; diff --git a/tests-m32/kern_features.c b/tests-m32/kern_features.c index 4814414d..d4b79a6d 100644 --- a/tests-m32/kern_features.c +++ b/tests-m32/kern_features.c @@ -1,7 +1,7 @@ /* * Check decoding of SPARC-specific kern_features syscall. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,7 +9,6 @@ #include "tests.h" -#include #include "raw_syscall.h" #include "scno.h" diff --git a/tests-m32/kernel_old_timespec.h b/tests-m32/kernel_old_timespec.h new file mode 100644 index 00000000..fac6d7e5 --- /dev/null +++ b/tests-m32/kernel_old_timespec.h @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef STRACE_KERNEL_OLD_TIMESPEC_H +# define STRACE_KERNEL_OLD_TIMESPEC_H + +typedef struct { +# if SIZEOF_KERNEL_LONG_T == 4 || defined LINUX_MIPSN32 + int +# else + long long +# endif + tv_sec, tv_nsec; +} kernel_old_timespec_t; + +#endif /* !STRACE_KERNEL_OLD_TIMESPEC_H */ diff --git a/tests-m32/kernel_old_timex.h b/tests-m32/kernel_old_timex.h new file mode 100644 index 00000000..2591a1ad --- /dev/null +++ b/tests-m32/kernel_old_timex.h @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef STRACE_KERNEL_OLD_TIMEX_H +# define STRACE_KERNEL_OLD_TIMEX_H + +# define HAVE_ARCH_TIME32_SYSCALLS 1 +# include "kernel_timex.h" +# undef HAVE_ARCH_TIME32_SYSCALLS + +typedef +# if SIZEOF_KERNEL_LONG_T == 4 || defined LINUX_MIPSN32 +kernel_timex32_t +# elif defined __sparc__ +kernel_sparc64_timex_t +# else +kernel_timex64_t +# endif +kernel_old_timex_t; + +#endif /* !STRACE_KERNEL_OLD_TIMEX_H */ diff --git a/tests-m32/kernel_version.c b/tests-m32/kernel_version.c index 6e1c0eac..692f94a1 100644 --- a/tests-m32/kernel_version.c +++ b/tests-m32/kernel_version.c @@ -1,7 +1,7 @@ /* * Check kernel version decoding. * - * Copyright (c) 2015-2019 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -15,7 +15,6 @@ #include #include -#include #include "scno.h" #ifdef HAVE_LINUX_BPF_H @@ -35,9 +34,9 @@ static void print_bpf_attr(void) { #if XLAT_RAW - printf("{prog_type=0x16" + printf("{prog_type=0x1f" #else - printf("{prog_type=0x16 /* BPF_PROG_TYPE_??? */" + printf("{prog_type=0x1f /* BPF_PROG_TYPE_??? */" #endif ", insn_cnt=3134983661" ", insns=NULL" @@ -70,7 +69,9 @@ print_bpf_attr(void) ", func_info_cnt=0" ", line_info_rec_size=0" ", line_info=NULL" - ", line_info_cnt=0}"); + ", line_info_cnt=0" + ", attach_btf_id=0" + ", attach_prog_fd=0}"); } int @@ -78,7 +79,7 @@ main(void) { long ret; struct BPF_PROG_LOAD_struct prog = { - .prog_type = 22, + .prog_type = 31, .insn_cnt = 0xbadc0ded, .insns = 0, .license = 0, diff --git a/tests-m32/kexec_file_load.c b/tests-m32/kexec_file_load.c index 5e5d91ed..3ab52587 100644 --- a/tests-m32/kexec_file_load.c +++ b/tests-m32/kexec_file_load.c @@ -2,14 +2,13 @@ * Check decoding of kexec_file_load syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_kexec_file_load diff --git a/tests-m32/kexec_load.c b/tests-m32/kexec_load.c index ae7a72c0..db515143 100644 --- a/tests-m32/kexec_load.c +++ b/tests-m32/kexec_load.c @@ -2,7 +2,7 @@ * Check decoding of kexec_load syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_kexec_load diff --git a/tests-m32/keyctl.c b/tests-m32/keyctl.c index ccfd3b44..6dc30fb9 100644 --- a/tests-m32/keyctl.c +++ b/tests-m32/keyctl.c @@ -2,7 +2,7 @@ * Check decoding of keyctl syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_keyctl @@ -45,7 +45,33 @@ struct keyctl_kdf_params { }; # endif +# ifndef HAVE_STRUCT_KEYCTL_PKEY_QUERY +struct keyctl_pkey_query { + uint32_t supported_ops; + uint32_t key_size; + uint16_t max_data_size; + uint16_t max_sig_size; + uint16_t max_enc_size; + uint16_t max_dec_size; + uint32_t __spare[10]; +}; +# endif + +# ifndef HAVE_STRUCT_KEYCTL_PKEY_PARAMS +struct keyctl_pkey_params { + int32_t key_id; + uint32_t in_len; + union { + uint32_t out_len; + uint32_t in2_len; + }; + uint32_t __spare[7]; +}; +# endif + # include "xlat.h" +# include "xlat/keyctl_caps0.h" +# include "xlat/keyctl_caps1.h" # include "xlat/keyctl_commands.h" # ifndef KEY_SPEC_REQKEY_AUTH_KEY @@ -71,10 +97,13 @@ bool buf_in_arg; # if XLAT_RAW # define XARG_STR(v_) (v_), STRINGIFY(v_) +# define XSTR(v_, s_) STRINGIFY(v_) # elif XLAT_VERBOSE # define XARG_STR(v_) (v_), STRINGIFY(v_) " /* " #v_ " */" +# define XSTR(v_, s_) STRINGIFY(v_) " /* " s_ " */" # else # define XARG_STR ARG_STR +# define XSTR(v_, s_) s_ # endif /* @@ -125,6 +154,21 @@ print_arg(kernel_ulong_t arg, const char *str, const char *fmt, size_t size, } } +void +print_flags(const struct xlat *xlat, unsigned long long flags, + const char *const dflt) +{ +# if XLAT_RAW + printf("%#llx", flags); +# elif XLAT_VERBOSE + printf("%#llx /* ", flags); + printflags(xlat, flags, dflt); + printf(" */"); +# else + printflags(xlat, flags, dflt); +# endif +} + /* * Arguments are passed as sz, val, str, fmt. Arguments are read until 4 * arguments are retrieved or size of 0 is occurred. @@ -268,6 +312,51 @@ kckdfp_to_str(struct keyctl_kdf_params *kdf, bool deref_hash, bool deref_oi, return buf; } +const char * +kcpp_to_str(struct keyctl_pkey_params *params, bool out, const char *key_str, + bool print_spare) +{ + static char buf[4096]; + + size_t left = sizeof(buf); + char *pos = buf; + + append_str(&pos, &left, "{key_id="); + +# if XLAT_RAW + append_str(&pos, &left, "%d", params->key_id); +# elif XLAT_VERBOSE + if (key_str) + append_str(&pos, &left, "%d /* %s */", params->key_id, key_str); + else + append_str(&pos, &left, "%d", params->key_id); +# else + if (key_str) + append_str(&pos, &left, "%s", key_str); + else + append_str(&pos, &left, "%d", params->key_id); +# endif + + append_str(&pos, &left, ", in_len=%u, %s=%u", + params->in_len, + out ? "out_len" : "in2_len", params->out_len); + + if (print_spare) { + append_str(&pos, &left, ", __spare=["); + + for (size_t i = 0; i < ARRAY_SIZE(params->__spare); i++) { + append_str(&pos, &left, "%s%#x", + i ? ", " : "", params->__spare[i]); + } + + append_str(&pos, &left, "]"); + } + + append_str(&pos, &left, "}"); + + return buf; +} + int main(void) { @@ -358,8 +447,10 @@ main(void) char *bogus_buf2 = tail_alloc(256); char *key_iov_str1; char *key_iov_str2 = tail_alloc(4096); + const char *errstr; ssize_t ret; ssize_t kis_size = 0; + long rc; size_t i; key_iov[0].iov_base = short_type; @@ -1092,6 +1183,222 @@ main(void) nul_terminated_buf = true; + /* KEYCTL_PKEY_QUERY */ + do_keyctl(ARG_STR(KEYCTL_PKEY_QUERY), + sizeof(int32_t), bogus_key2, NULL, "%d", + sizeof(kernel_ulong_t), + (kernel_ulong_t) 0xfeedf157badc0dedLLU, NULL, + kulong_fmt, + sizeof(char *), bogus_str, NULL, ptr_fmt, + sizeof(char *), ARG_STR(NULL), ptr_fmt); + + struct keyctl_pkey_query query; + do_keyctl(ARG_STR(KEYCTL_PKEY_QUERY), + sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), "%d", + sizeof(kernel_ulong_t), (kernel_ulong_t) 0, NULL, kulong_fmt, + sizeof(char *), "x\377\0\1", "\"x\\377\"", NULL, + sizeof(&query), &query, NULL, ptr_fmt); + + /* + * KEYCTL_PKEY_ENCRYPT, KEYCTL_PKEY_DECRYPT, KEYCTL_PKEY_SIGN, + * KEYCTL_PKEY_VERIFY + */ + static const struct { + int op; + const char *str; + bool out; + } pkey_ops[] = { + { ARG_STR(KEYCTL_PKEY_ENCRYPT), true }, + { ARG_STR(KEYCTL_PKEY_DECRYPT), true }, + { ARG_STR(KEYCTL_PKEY_SIGN), true }, + { ARG_STR(KEYCTL_PKEY_VERIFY), false }, + }; + static const char pkey_str1[] = STR32 "xxx"; + static const char pkey_str2[] = "\1\2HAI\255\0\1"; + static struct { + struct keyctl_pkey_params params; + const char * key_str; + bool print_spare; + const char *str1; + const char *str2; + } pkey_vecs[] = { + { { KEY_SPEC_PROCESS_KEYRING, 0, { .out_len = 0 } }, + "KEY_SPEC_PROCESS_KEYRING", false, "\"\"", "\"\"" }, + { { 0, 0, { .out_len = 0 }, .__spare = { 1 } }, + NULL, true, "\"\"", "\"\"" }, + { { 0xdeadc0deU, 10, { .out_len = 10 }, + .__spare = { 0, 0xfacefeed } }, + NULL, true, "\"AbCdEfGhIj\"", NULL }, + { { 0xdeadc0deU, sizeof(pkey_str1), + { .out_len = sizeof(pkey_str2) - 1 }, + .__spare = { [6] = 0xdec0ded } }, + NULL, true, + "\"AbCdEfGhIj\"...", "\"\\1\\2HAI\\255\\0\\1\"" }, + }; + + char *pkey1 = tail_memdup(pkey_str1, sizeof(pkey_str1) - 1); + char *pkey2 = tail_memdup(pkey_str2, sizeof(pkey_str2) - 1); + struct keyctl_pkey_params *pkey_params = + tail_alloc(sizeof(*pkey_params)); + + for (i = 0; i < ARRAY_SIZE(pkey_ops); i++) { + do_keyctl(pkey_ops[i].op, pkey_ops[i].str, + sizeof(char *), ARG_STR(NULL), ptr_fmt, + sizeof(char *), ARG_STR(NULL), ptr_fmt, + sizeof(char *), ARG_STR(NULL), ptr_fmt, + sizeof(char *), ARG_STR(NULL), ptr_fmt); + + do_keyctl(pkey_ops[i].op, pkey_ops[i].str, + sizeof(char *), (uint32_t *) pkey_params + 1, NULL, + ptr_fmt, + sizeof(char *), "x\377\0\1", "\"x\\377\"", ptr_fmt, + sizeof(char *), pkey1, NULL, ptr_fmt, + sizeof(char *), pkey2, NULL, ptr_fmt); + + for (size_t j = 0; j < ARRAY_SIZE(pkey_vecs); j++) { + memcpy(pkey_params, &pkey_vecs[j].params, + sizeof(*pkey_params)); + do_keyctl(pkey_ops[i].op, pkey_ops[i].str, + sizeof(char *), pkey_params, + kcpp_to_str(pkey_params, + pkey_ops[i].out, + pkey_vecs[j].key_str, + pkey_vecs[j].print_spare), + ptr_fmt, + sizeof(char *), "", "\"\"", ptr_fmt, + sizeof(char *), pkey1, pkey_vecs[j].str1, + ptr_fmt, + sizeof(char *), pkey2, + pkey_ops[i].out ? NULL + : pkey_vecs[j].str2, + ptr_fmt); + } + } + + /* KEYCTL_MOVE */ + static const struct { + kernel_ulong_t key; + const char *str; + } move_keys[] = { + { 0xbadc0ded, "-1159983635" }, + { XARG_STR(KEY_SPEC_THREAD_KEYRING) }, + }; + static const struct { + kernel_ulong_t val; + const char *str; + } move_flags[] = { + { (kernel_ulong_t) 0xbadc0ded00000000ULL, "0" }, + { 1, XSTR(0x1, "KEYCTL_MOVE_EXCL") }, + { (kernel_ulong_t) 0xbadc0ded00000001ULL, + XSTR(0x1, "KEYCTL_MOVE_EXCL") }, + { (kernel_ulong_t) 0xfffffffffffffffeULL, +# if !XLAT_RAW + "0xfffffffe /* KEYCTL_MOVE_??? */" +# else + "0xfffffffe" +# endif + }, + { (kernel_ulong_t) 0xffffffffffffffffULL, + XSTR(0xffffffff, "KEYCTL_MOVE_EXCL|0xfffffffe") }, + }; + + for (i = 0; i < ARRAY_SIZE(move_keys) * ARRAY_SIZE(move_flags); i++) { + do_keyctl(ARG_STR(KEYCTL_MOVE), + sizeof(kernel_ulong_t), + move_keys[i % ARRAY_SIZE(move_keys)].key, + move_keys[i % ARRAY_SIZE(move_keys)].str, + kulong_fmt, + sizeof(kernel_ulong_t), + move_keys[(i + 1) % ARRAY_SIZE(move_keys)].key, + move_keys[(i + 1) % ARRAY_SIZE(move_keys)].str, + kulong_fmt, + sizeof(kernel_ulong_t), + move_keys[(i + 2) % ARRAY_SIZE(move_keys)].key, + move_keys[(i + 2) % ARRAY_SIZE(move_keys)].str, + kulong_fmt, + sizeof(kernel_ulong_t), + move_flags[i % ARRAY_SIZE(move_flags)].val, + move_flags[i % ARRAY_SIZE(move_flags)].str, + kulong_fmt); + } + + /* KEYCTL_CAPABILITIES */ + unsigned char *caps1 = tail_alloc(1); + unsigned char *caps2 = tail_alloc(2); + unsigned char *caps4 = tail_alloc(4); + + do_keyctl(ARG_STR(KEYCTL_CAPABILITIES), + sizeof(unsigned char *), ARG_STR(NULL), ptr_fmt, + sizeof(kernel_ulong_t), + (kernel_ulong_t) 0xfeedf157badc0dedLLU, NULL, + ksize_fmt, + 0); + + const kernel_ulong_t bad_len = (kernel_ulong_t) 0xbadc0ded00000001LLU; + rc = syscall(__NR_keyctl, KEYCTL_CAPABILITIES, caps1, bad_len); + errstr = sprintrc(rc); + printf("keyctl(" XSTR(0x1f, "KEYCTL_CAPABILITIES") ", "); + if (rc >= 0) { + printf("["); + if (rc >= 1) + print_flags(keyctl_caps0, caps1[0], "KEYCTL_CAPS0_???"); + printf("]"); + } else { + printf("%p", caps1); + } + printf(", %llu) = %s\n", (unsigned long long) bad_len, errstr); + + rc = syscall(__NR_keyctl, KEYCTL_CAPABILITIES, caps1, 2); + errstr = sprintrc(rc); + printf("keyctl(" XSTR(0x1f, "KEYCTL_CAPABILITIES") ", "); + if (rc >= 0) { + printf("["); + if (rc == 1) + print_flags(keyctl_caps0, caps1[0], "KEYCTL_CAPS0_???"); + printf("]"); + } else { + printf("%p", caps1); + } + printf(", 2) = %s\n", errstr); + + rc = syscall(__NR_keyctl, KEYCTL_CAPABILITIES, caps2, 2); + errstr = sprintrc(rc); + printf("keyctl(" XSTR(0x1f, "KEYCTL_CAPABILITIES") ", "); + if (rc >= 0) { + printf("["); + if (rc >= 1) + print_flags(keyctl_caps0, caps2[0], "KEYCTL_CAPS0_???"); + if (rc >= 2) { + printf(", "); + print_flags(keyctl_caps1, caps2[1], "KEYCTL_CAPS1_???"); + } + printf("]"); + } else { + printf("%p", caps2); + } + printf(", 2) = %s\n", errstr); + + rc = syscall(__NR_keyctl, KEYCTL_CAPABILITIES, caps4, 4); + errstr = sprintrc(rc); + printf("keyctl(" XSTR(0x1f, "KEYCTL_CAPABILITIES") ", "); + if (rc >= 0) { + printf("["); + if (rc >= 1) + print_flags(keyctl_caps0, caps4[0], "KEYCTL_CAPS0_???"); + if (rc >= 2) { + printf(", "); + print_flags(keyctl_caps1, caps4[1], "KEYCTL_CAPS1_???"); + } + if (rc >= 3) + printf(", %hhx", caps4[2]); + if (rc >= 4) + printf(", %hhx", caps4[3]); + printf("]"); + } else { + printf("%p", caps4); + } + printf(", 4) = %s\n", errstr); + puts("+++ exited with 0 +++"); return 0; diff --git a/tests-m32/kill--pidns-translation.c b/tests-m32/kill--pidns-translation.c new file mode 100644 index 00000000..4736ca14 --- /dev/null +++ b/tests-m32/kill--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "kill.c" diff --git a/tests-m32/kill--pidns-translation.gen.test b/tests-m32/kill--pidns-translation.gen.test new file mode 100755 index 00000000..4e909e99 --- /dev/null +++ b/tests-m32/kill--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (kill--pidns-translation test_pidns -a12 -e trace=kill -esignal=none); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a12 -e trace=kill -esignal=none diff --git a/tests-m32/kill.c b/tests-m32/kill.c index 4ef9b628..653e945c 100644 --- a/tests-m32/kill.c +++ b/tests-m32/kill.c @@ -3,14 +3,15 @@ * * Copyright (c) 2015-2016 Dmitry V. Levin * Copyright (c) 2016 Fei Jie - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #ifdef __NR_kill @@ -26,6 +27,8 @@ handler(int sig) int main(void) { + PIDNS_TEST_INIT; + const struct sigaction act = { .sa_handler = handler }; if (sigaction(SIGALRM, &act, NULL)) perror_msg_and_fail("sigaction"); @@ -37,18 +40,23 @@ main(void) perror_msg_and_fail("sigprocmask"); const int pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); long rc = syscall(__NR_kill, pid, (long) 0xdefaced00000000ULL | SIGALRM); - printf("kill(%d, SIGALRM) = %ld\n", pid, rc); + pidns_print_leader(); + printf("kill(%d%s, SIGALRM) = %ld\n", pid, pid_str, rc); const long big_pid = (long) 0xfacefeedbadc0dedULL; const long big_sig = (long) 0xdeadbeefcafef00dULL; rc = syscall(__NR_kill, big_pid, big_sig); + pidns_print_leader(); printf("kill(%d, %d) = %ld %s (%m)\n", (int) big_pid, (int) big_sig, rc, errno2name()); rc = syscall(__NR_kill, (long) 0xdefaced00000000ULL | pid, 0); - printf("kill(%d, 0) = %ld\n", pid, rc); + pidns_print_leader(); + printf("kill(%d%s, 0) = %ld\n", pid, pid_str, rc); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-m32/ksysent.c b/tests-m32/ksysent.c index 4319bdb2..0716db70 100644 --- a/tests-m32/ksysent.c +++ b/tests-m32/ksysent.c @@ -2,7 +2,7 @@ * Validate syscallent.h file. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,7 +12,7 @@ #include "sysent.h" #include #include -#include +#include "scno.h" #include "sysent_shorthand_defs.h" diff --git a/tests-m32/ksysent.gen.test b/tests-m32/ksysent.gen.test new file mode 100755 index 00000000..c63ea44b --- /dev/null +++ b/tests-m32/ksysent.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ksysent ../$NAME ); do not edit. +. "${srcdir=.}/init.sh" +../$NAME diff --git a/tests-m32/ksysent.sed b/tests-m32/ksysent.sed index c35ba22f..92069e75 100644 --- a/tests-m32/ksysent.sed +++ b/tests-m32/ksysent.sed @@ -1,6 +1,6 @@ #!/bin/sed -rnf # -# Copyright (c) 2015-2018 The strace developers. +# Copyright (c) 2015-2019 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -8,6 +8,9 @@ # should not have been exported at all /#define[[:space:]]+__NR_(sys_epoll_|arch_specific_syscall|arm_sync_file_range|syscalls|syscall_count|syscall_max|available|reserved|unused)/d +# remove new aliases to traditional names on alpha +/#define[[:space:]]+__NR_get[gup]id[[:space:]]+__NR_getx[gup]id$/d + # should not have been named this way s/__NR_(arm|xtensa)_fadvise64_64/__NR_fadvise64_64/ @@ -17,4 +20,12 @@ s/__NR_madvise1/__NR_madvise/ s/__NR_paccept/__NR_accept4/ # generate + +# prioritize __NR_umount over __NR_umount2 +s/#define[[:space:]]+__NR_(umount)2([[:space:]].*)?$/#if defined __NR_\12 \&\& (!defined __NR_\1 || __NR_\1 != __NR_\12)\n[__NR_\12 \& 0xffff] = "\12",\n#endif/p + +# prioritize __NR_osf_shmat over __NR_shmat +s/#define[[:space:]]+__NR_(shmat)([[:space:]].*)?$/#if defined __NR_\1 \&\& (!defined __NR_osf_\1 || __NR_osf_\1 != __NR_\1)\n[__NR_\1 \& 0xffff] = "\1",\n#endif/p + +# generic s/#define[[:space:]]+__NR_([a-z_][^[:space:]]+)([[:space:]].*)?$/#ifdef __NR_\1\n[__NR_\1 \& 0xffff] = "\1",\n#endif/p diff --git a/tests-m32/ksysent.test b/tests-m32/ksysent.test deleted file mode 100755 index 347ed675..00000000 --- a/tests-m32/ksysent.test +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -# -# Copyright (c) 2015-2018 The strace developers. -# All rights reserved. -# -# SPDX-License-Identifier: GPL-2.0-or-later - -# Validate syscallent.h - -./ksysent diff --git a/tests-m32/lchown.c b/tests-m32/lchown.c index c9008219..b8d40945 100644 --- a/tests-m32/lchown.c +++ b/tests-m32/lchown.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_lchown diff --git a/tests-m32/lchown32.c b/tests-m32/lchown32.c index 1a505e1f..c2542a82 100644 --- a/tests-m32/lchown32.c +++ b/tests-m32/lchown32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_lchown32 diff --git a/tests-m32/libmmsg.c b/tests-m32/libmmsg.c index 0f23597d..4dbe4edf 100644 --- a/tests-m32/libmmsg.c +++ b/tests-m32/libmmsg.c @@ -2,6 +2,7 @@ * Wrappers for recvmmsg and sendmmsg syscalls. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,7 +10,7 @@ #include "tests.h" #include -#include +#include "scno.h" #ifndef __NR_recvmmsg # define __NR_recvmmsg -1 diff --git a/tests-m32/libsocketcall.c b/tests-m32/libsocketcall.c index 34f65478..6692d4b0 100644 --- a/tests-m32/libsocketcall.c +++ b/tests-m32/libsocketcall.c @@ -2,6 +2,7 @@ * Invoke a socket syscall, either directly or via __NR_socketcall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +11,7 @@ #include "tests.h" #include #include -#include +#include "scno.h" /* * Invoke a socket syscall, either directly or via __NR_socketcall. diff --git a/tests-m32/link.c b/tests-m32/link.c index 357eb0be..468086fe 100644 --- a/tests-m32/link.c +++ b/tests-m32/link.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_link diff --git a/tests-m32/linkat.c b/tests-m32/linkat.c index 748ddf18..7e348f12 100644 --- a/tests-m32/linkat.c +++ b/tests-m32/linkat.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_linkat @@ -30,7 +30,7 @@ main(void) printf("linkat(%s, \"%s\", %s, \"%s\", %s) = %ld %s (%m)\n", "AT_FDCWD", sample_1, "AT_FDCWD", sample_2, "AT_SYMLINK_NOFOLLOW|AT_REMOVEDIR|AT_SYMLINK_FOLLOW" - "|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|0xffffe0ff", + "|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|AT_RECURSIVE|0xffff60ff", rc, errno2name()); puts("+++ exited with 0 +++"); diff --git a/tests-m32/llseek.c b/tests-m32/llseek.c index 169fa913..55e63363 100644 --- a/tests-m32/llseek.c +++ b/tests-m32/llseek.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR__llseek diff --git a/tests-m32/localtime.c b/tests-m32/localtime.c index 652d3e6a..42e39c55 100644 --- a/tests-m32/localtime.c +++ b/tests-m32/localtime.c @@ -1,7 +1,7 @@ /* * Check handling of localtime() returning NULL in printleader(). * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -14,7 +14,7 @@ #include #include -#include +#include "scno.h" int main(void) diff --git a/tests-m32/lock_file.c b/tests-m32/lock_file.c new file mode 100644 index 00000000..56cf112d --- /dev/null +++ b/tests-m32/lock_file.c @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#include +#include +#include +#include +#include +#include + +/* Obtain an exclusive lock on dirname(path_name)/lock_name file. */ +int +lock_file_by_dirname(const char *path_name, const char *lock_name) +{ + const char *slash = path_name ? strrchr(path_name, '/') : NULL; + const int plen = slash ? (int) (slash - path_name) + 1 : 0; + + char *lock_file = NULL; + if (asprintf(&lock_file, "%.*s%s", plen, path_name, lock_name) < 0) + perror_msg_and_fail("asprintf"); + + int lock_fd = open(lock_file, O_RDONLY); + if (lock_fd < 0) + perror_msg_and_fail("open: %s", lock_file); + + if (flock(lock_fd, LOCK_EX)) + perror_msg_and_fail("flock: %s", lock_file); + + free(lock_file); + + return lock_fd; +} diff --git a/tests-m32/lookup_dcookie.c b/tests-m32/lookup_dcookie.c index 430ae135..9617a4ca 100644 --- a/tests-m32/lookup_dcookie.c +++ b/tests-m32/lookup_dcookie.c @@ -2,7 +2,7 @@ * Check decoding of lookup_dcookie syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_lookup_dcookie diff --git a/tests-m32/looping_threads.test b/tests-m32/looping_threads.test index e8b0bbb5..3e5d3ba9 100755 --- a/tests-m32/looping_threads.test +++ b/tests-m32/looping_threads.test @@ -2,7 +2,7 @@ # # Check tracing of looping threads. # -# Copyright (c) 2009-2019 The strace developers. +# Copyright (c) 2009-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -20,16 +20,16 @@ inc="$(nproc)" [ "$inc" -ge 1 ] || inc=1 timeout_2="$(($TIMEOUT_DURATION/2))" -timeout_8="$(($TIMEOUT_DURATION/8))" +timeout_16="$(($TIMEOUT_DURATION/16))" nproc=1 -run_prog "../$NAME" "$timeout_8" "$nproc" +run_prog "../$NAME" "$timeout_16" "$nproc" while :; do - run_strace -f -qq -enone -esignal=none "../$NAME" "$timeout_2" "$nproc" + run_strace --follow-forks -qq -enone -esignal=none "../$NAME" "$timeout_2" "$nproc" s1="$(date +%s)" - [ "$(($s1-$s0))" -lt "$timeout_8" ] || + [ "$(($s1-$s0))" -lt "$timeout_16" ] || break nproc="$(($nproc+$inc))" diff --git a/tests-m32/lseek.c b/tests-m32/lseek.c index 0e12bf9c..f0d842d1 100644 --- a/tests-m32/lseek.c +++ b/tests-m32/lseek.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_lseek diff --git a/tests-m32/lstat.c b/tests-m32/lstat.c index 1a200fe7..61c5cb53 100644 --- a/tests-m32/lstat.c +++ b/tests-m32/lstat.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_lstat diff --git a/tests-m32/lstat.gen.test b/tests-m32/lstat.gen.test index 7231c491..71155b69 100755 --- a/tests-m32/lstat.gen.test +++ b/tests-m32/lstat.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (lstat -a32 -v -P stat.sample -P /dev/full); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (lstat -a31 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a32 -v -P stat.sample -P /dev/full +run_strace_match_diff -a31 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full diff --git a/tests-m32/lstat64.c b/tests-m32/lstat64.c index 0c0cf879..de5a2651 100644 --- a/tests-m32/lstat64.c +++ b/tests-m32/lstat64.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_lstat64 diff --git a/tests-m32/lstat64.gen.test b/tests-m32/lstat64.gen.test index 124cce4b..4584f9d8 100755 --- a/tests-m32/lstat64.gen.test +++ b/tests-m32/lstat64.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (lstat64 -a32 -v -P stat.sample -P /dev/full); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (lstat64 -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a32 -v -P stat.sample -P /dev/full +run_strace_match_diff -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full diff --git a/tests-m32/madvise.c b/tests-m32/madvise.c index 33a7abbe..51118c6a 100644 --- a/tests-m32/madvise.c +++ b/tests-m32/madvise.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include #include #include -#include +#include "scno.h" static const char *errstr; diff --git a/tests-m32/maybe_switch_current_tcp--quiet-thread-execve.c b/tests-m32/maybe_switch_current_tcp--quiet-thread-execve.c new file mode 100644 index 00000000..b5c0a503 --- /dev/null +++ b/tests-m32/maybe_switch_current_tcp--quiet-thread-execve.c @@ -0,0 +1,2 @@ +#define QUIET_MSG 1 +#include "maybe_switch_current_tcp.c" diff --git a/tests-m32/maybe_switch_current_tcp--quiet-thread-execve.gen.test b/tests-m32/maybe_switch_current_tcp--quiet-thread-execve.gen.test new file mode 100755 index 00000000..43327dbb --- /dev/null +++ b/tests-m32/maybe_switch_current_tcp--quiet-thread-execve.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (maybe_switch_current_tcp--quiet-thread-execve -a30 -s48 -f -e trace=execveat --quiet=personality,thread-execve); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a30 -s48 -f -e trace=execveat --quiet=personality,thread-execve diff --git a/tests-m32/maybe_switch_current_tcp.c b/tests-m32/maybe_switch_current_tcp.c new file mode 100644 index 00000000..7ba1b9b9 --- /dev/null +++ b/tests-m32/maybe_switch_current_tcp.c @@ -0,0 +1,83 @@ +/* + * Check for PTRACE_EVENT_EXEC diagnostics. + * + * Copyright (c) 2019 Dmitry V. Levin + * Copyright (c) 2019-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include +#include +#include +#include "scno.h" + +#ifndef QUIET_MSG +# define QUIET_MSG 0 +#endif + +static pid_t leader; +static volatile unsigned int trigger; + +static void * +thread(void *arg) +{ + const char *argv[] = {((char **) arg)[0], "1", "2", NULL}; + int tid = syscall(__NR_gettid); + + printf("%-5d execveat(AT_FDCWD, \"%s\", [\"%s\", \"%s\", \"%s\"]" + ", NULL, 0 \n" +#if !QUIET_MSG + "%-5d +++ superseded by execve in pid %d +++\n" +#endif + , tid, argv[0], argv[0], argv[1], argv[2], leader +#if !QUIET_MSG + , leader, tid +#endif + ); + + while (!trigger) { + /* Wait for the parent to enter the busy loop. */ + } + + syscall(__NR_execveat, -100, argv[0], argv, NULL, 0); + perror_msg_and_fail("execveat"); +} + +int +main(int ac, char **av) +{ + setvbuf(stdout, NULL, _IONBF, 0); + leader = getpid(); + + if (ac <= 1) { + char *argv[] = {av[0], (char *) "1", NULL}; + printf("%-5d execveat(AT_FDCWD, \"%s\"" + ", [\"%s\", \"%s\"], NULL, 0) = 0\n", + leader, argv[0], argv[0], argv[1]); + syscall(__NR_execveat, -100, argv[0], argv, NULL, 0); + perror_msg_and_skip("execveat"); + } + + /* + * Since execveat is supported by the kernel, + * PTRACE_EVENT_EXEC support in the kernel is good enough. + */ + if (ac <= 2) { + pthread_t t; + errno = pthread_create(&t, NULL, thread, av); + if (errno) + perror_msg_and_fail("pthread_create"); + + for (;;) + ++trigger; + } + + printf("%-5d <... execveat resumed>) = 0\n" + "%-5d +++ exited with 0 +++\n", + leader, leader); + return 0; +} diff --git a/tests-m32/maybe_switch_current_tcp.gen.test b/tests-m32/maybe_switch_current_tcp.gen.test new file mode 100755 index 00000000..ebd50ec2 --- /dev/null +++ b/tests-m32/maybe_switch_current_tcp.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (maybe_switch_current_tcp -a30 -f -e trace=execveat); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a30 -f -e trace=execveat diff --git a/tests-m32/mbind-Xabbrev.c b/tests-m32/mbind-Xabbrev.c new file mode 100644 index 00000000..a318b5d2 --- /dev/null +++ b/tests-m32/mbind-Xabbrev.c @@ -0,0 +1 @@ +#include "mbind.c" diff --git a/tests-m32/mbind-Xabbrev.gen.test b/tests-m32/mbind-Xabbrev.gen.test new file mode 100755 index 00000000..3ecf1831 --- /dev/null +++ b/tests-m32/mbind-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mbind-Xabbrev -Xabbrev -e trace=mbind); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -Xabbrev -e trace=mbind diff --git a/tests-m32/mbind-Xraw.c b/tests-m32/mbind-Xraw.c new file mode 100644 index 00000000..86f9608b --- /dev/null +++ b/tests-m32/mbind-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "mbind.c" diff --git a/tests-m32/mbind-Xraw.gen.test b/tests-m32/mbind-Xraw.gen.test new file mode 100755 index 00000000..b66b4812 --- /dev/null +++ b/tests-m32/mbind-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mbind-Xraw -a33 -Xraw -e trace=mbind); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a33 -Xraw -e trace=mbind diff --git a/tests-m32/mbind-Xverbose.c b/tests-m32/mbind-Xverbose.c new file mode 100644 index 00000000..29285cc0 --- /dev/null +++ b/tests-m32/mbind-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "mbind.c" diff --git a/tests-m32/mbind-Xverbose.gen.test b/tests-m32/mbind-Xverbose.gen.test new file mode 100755 index 00000000..20ebed6d --- /dev/null +++ b/tests-m32/mbind-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mbind-Xverbose -Xverbose -e trace=mbind); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -Xverbose -e trace=mbind diff --git a/tests-m32/mbind.c b/tests-m32/mbind.c index 8e478a6f..321defb9 100644 --- a/tests-m32/mbind.c +++ b/tests-m32/mbind.c @@ -1,34 +1,139 @@ /* * Check decoding of mbind syscall. * - * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 Dmitry V. Levin * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_mbind # include # include +static const char *errstr; + +static long +k_mbind(const unsigned long start, + const unsigned long len, + const unsigned long mode, + const unsigned long nmask, + const unsigned long maxnode, + const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t arg1 = start; + const kernel_ulong_t arg2 = len; + const kernel_ulong_t arg3 = mode; + const kernel_ulong_t arg4 = nmask; + const kernel_ulong_t arg5 = maxnode; + const kernel_ulong_t arg6 = fill | flags; + const long rc = syscall(__NR_mbind, arg1, arg2, arg3, arg4, arg5, arg6); + errstr = sprintrc(rc); + return rc; +} + +# if XLAT_RAW +# define out_str raw +# define flags_str "0xffffffff" +# elif XLAT_VERBOSE +# define out_str verbose +# define flags_str "0xffffffff /* MPOL_MF_STRICT|MPOL_MF_MOVE" \ + "|MPOL_MF_MOVE_ALL|0xfffffff8 */" +# else +# define out_str abbrev +# define flags_str "MPOL_MF_STRICT|MPOL_MF_MOVE|MPOL_MF_MOVE_ALL|0xfffffff8" +# endif + +static struct { + unsigned long val; + const char *raw; + const char *verbose; + const char *abbrev; +} mpol_modes[] = { + { ARG_STR(0), + "0 /* MPOL_DEFAULT */", + "MPOL_DEFAULT" }, + { ARG_STR(0x1), + "0x1 /* MPOL_PREFERRED */", + "MPOL_PREFERRED" }, + { ARG_STR(0x2), + "0x2 /* MPOL_BIND */", + "MPOL_BIND" }, + { ARG_STR(0x3), + "0x3 /* MPOL_INTERLEAVE */", + "MPOL_INTERLEAVE" }, + { ARG_STR(0x4), + "0x4 /* MPOL_LOCAL */", + "MPOL_LOCAL" }, + { ARG_STR(0x8000), + "0x8000 /* MPOL_DEFAULT|MPOL_F_STATIC_NODES */", + "MPOL_DEFAULT|MPOL_F_STATIC_NODES" }, + { ARG_STR(0x4001), + "0x4001 /* MPOL_PREFERRED|MPOL_F_RELATIVE_NODES */", + "MPOL_PREFERRED|MPOL_F_RELATIVE_NODES" }, + { ARG_STR(0xc002), + "0xc002 /* MPOL_BIND|MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES */", + "MPOL_BIND|MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES" }, + { ARG_STR(0x5), + "0x5 /* MPOL_??? */", + "0x5 /* MPOL_??? */" }, + { ARG_STR(0xffff3fff), + "0xffff3fff /* MPOL_??? */", + "0xffff3fff /* MPOL_??? */" }, + { ARG_STR(0xffffffff), + "0xffffffff /* MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES|0xffff3fff */", + "MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES|0xffff3fff" }, +# if SIZEOF_LONG > 4 + { 0xffffffff00000000UL, + "0xffffffff00000000", + "0xffffffff00000000 /* MPOL_??? */", + "0xffffffff00000000 /* MPOL_??? */" }, + { 0xffffffffffff3fffUL, + "0xffffffffffff3fff", + "0xffffffffffff3fff /* MPOL_??? */", + "0xffffffffffff3fff /* MPOL_??? */" }, + { -1UL, + "0xffffffffffffffff", + "0xffffffffffffffff /* MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES" + "|0xffffffffffff3fff */", + "MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES|0xffffffffffff3fff" }, +# endif +}; + int main(void) { - const unsigned long len = (unsigned long) 0xcafef00dbadc0dedULL; - const unsigned long mode = 3; - const unsigned long nodemask = (unsigned long) 0xfacefeedfffffff1ULL; - const unsigned long maxnode = (unsigned long) 0xdeadbeeffffffff2ULL; - const unsigned long flags = -1UL; - - long rc = syscall(__NR_mbind, 0, len, mode, nodemask, maxnode, flags); - printf("mbind(NULL, %lu, %s, %#lx, %lu, %s|%#x) = %ld %s (%m)\n", - len, "MPOL_INTERLEAVE", nodemask, maxnode, - "MPOL_MF_STRICT|MPOL_MF_MOVE|MPOL_MF_MOVE_ALL", - (unsigned) flags & ~7, rc, errno2name()); + const unsigned long size = get_page_size(); + unsigned long *const addr = tail_alloc(size); + const unsigned long start = (unsigned long) 0xfffffff1fffffff2ULL; + const unsigned long len = (unsigned long) 0xfffffff4fffffff4ULL; + const unsigned long nodemask = (unsigned long) 0xfffffff5fffffff6ULL; + const unsigned long maxnode = (unsigned long) 0xfffffff7fffffff8ULL; + + if (k_mbind((unsigned long) addr, size, mpol_modes[0].val, 0, 0, 0)) + perror_msg_and_skip("mbind"); + printf("mbind(%p, %lu, %s, NULL, 0, 0) = 0\n", + addr, size, mpol_modes[0].out_str); + + for (unsigned int i = 0; i < ARRAY_SIZE(mpol_modes); ++i) { + if (i) { + k_mbind((unsigned long) addr, size, mpol_modes[i].val, + 0, 0, 0); + printf("mbind(%p, %lu, %s, NULL, 0, 0) = %s\n", + addr, size, mpol_modes[i].out_str, errstr); + } + + k_mbind(start, len, mpol_modes[i].val, + nodemask, maxnode, -1U); + printf("mbind(%#lx, %lu, %s, %#lx, %lu, %s) = %s\n", + start, len, mpol_modes[i].out_str, + nodemask, maxnode, flags_str, errstr); + } puts("+++ exited with 0 +++"); return 0; diff --git a/tests-m32/membarrier.c b/tests-m32/membarrier.c index 0e55497b..bdacf7f3 100644 --- a/tests-m32/membarrier.c +++ b/tests-m32/membarrier.c @@ -1,13 +1,12 @@ /* * Copyright (c) 2015-2017 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_membarrier diff --git a/tests-m32/memfd_create.c b/tests-m32/memfd_create.c index 2658a1ba..06e017ef 100644 --- a/tests-m32/memfd_create.c +++ b/tests-m32/memfd_create.c @@ -2,13 +2,13 @@ * Check decoding of memfd_create syscall. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_memfd_create diff --git a/tests-m32/migrate_pages--pidns-translation.c b/tests-m32/migrate_pages--pidns-translation.c new file mode 100644 index 00000000..ec34938d --- /dev/null +++ b/tests-m32/migrate_pages--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "migrate_pages.c" diff --git a/tests-m32/migrate_pages--pidns-translation.gen.test b/tests-m32/migrate_pages--pidns-translation.gen.test new file mode 100755 index 00000000..c6b5b3a0 --- /dev/null +++ b/tests-m32/migrate_pages--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (migrate_pages--pidns-translation test_pidns -a33 -e trace=migrate_pages); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a33 -e trace=migrate_pages diff --git a/tests-m32/migrate_pages.c b/tests-m32/migrate_pages.c index e8e66ece..34da2808 100644 --- a/tests-m32/migrate_pages.c +++ b/tests-m32/migrate_pages.c @@ -2,13 +2,15 @@ * Check decoding of migrate_pages syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #ifdef __NR_migrate_pages @@ -18,11 +20,21 @@ int main(void) { - const long pid = (long) 0xfacefeedffffffffULL; + PIDNS_TEST_INIT; + + const long pid = (long) 0xfacefeed00000000ULL | getpid(); long rc = syscall(__NR_migrate_pages, pid, 0, 0, 0); - printf("migrate_pages(%d, 0, NULL, NULL) = %ld %s (%m)\n", - (int) pid, rc, errno2name()); + pidns_print_leader(); + printf("migrate_pages(%d%s, 0, NULL, NULL) = %ld", + (int) pid, pidns_pid2str(PT_TGID), rc); + + if (rc < 0) + printf(" %s (%m)\n", errno2name()); + else + printf("\n"); + + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-m32/mkdir.c b/tests-m32/mkdir.c index e6e62ef6..9faee7eb 100644 --- a/tests-m32/mkdir.c +++ b/tests-m32/mkdir.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_mkdir diff --git a/tests-m32/mkdirat.c b/tests-m32/mkdirat.c index 91bf06be..1b5a68f7 100644 --- a/tests-m32/mkdirat.c +++ b/tests-m32/mkdirat.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_mkdirat diff --git a/tests-m32/mknod.c b/tests-m32/mknod.c index 94d80284..e4d0e5fc 100644 --- a/tests-m32/mknod.c +++ b/tests-m32/mknod.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_mknod @@ -31,44 +31,44 @@ main(int ac, char **av) sample = av[0]; long rc = call_mknod(0, dev); - printf("mknod(\"%s\", 000) = %ld %s (%m)\n", - sample, rc, errno2name()); + printf("mknod(\"%s\", 000) = %s\n", + sample, sprintrc(rc)); rc = call_mknod(0xffff, dev); - printf("mknod(\"%s\", %#03ho) = %ld %s (%m)\n", - sample, (unsigned short) -1, rc, errno2name()); + printf("mknod(\"%s\", %#03ho) = %s\n", + sample, (unsigned short) -1, sprintrc(rc)); rc = call_mknod(S_IFREG, 0); - printf("mknod(\"%s\", S_IFREG|000) = %ld %s (%m)\n", - sample, rc, errno2name()); + printf("mknod(\"%s\", S_IFREG|000) = %s\n", + sample, sprintrc(rc)); rc = call_mknod(S_IFDIR | 06, 0); - printf("mknod(\"%s\", S_IFDIR|006) = %ld %s (%m)\n", - sample, rc, errno2name()); + printf("mknod(\"%s\", S_IFDIR|006) = %s\n", + sample, sprintrc(rc)); rc = call_mknod(S_IFLNK | 060, 0); - printf("mknod(\"%s\", S_IFLNK|060) = %ld %s (%m)\n", - sample, rc, errno2name()); + printf("mknod(\"%s\", S_IFLNK|060) = %s\n", + sample, sprintrc(rc)); rc = call_mknod(S_IFIFO | 0600, 0); - printf("mknod(\"%s\", S_IFIFO|0600) = %ld %s (%m)\n", - sample, rc, errno2name()); + printf("mknod(\"%s\", S_IFIFO|0600) = %s\n", + sample, sprintrc(rc)); dev = (unsigned long) 0xdeadbeef00000000ULL | makedev(1, 7); rc = call_mknod(S_IFCHR | 024, dev); - printf("mknod(\"%s\", S_IFCHR|024, makedev(0x1, 0x7)) = %ld %s (%m)\n", - sample, rc, errno2name()); + printf("mknod(\"%s\", S_IFCHR|024, makedev(0x1, 0x7)) = %s\n", + sample, sprintrc(rc)); const unsigned short mode = (0xffff & ~S_IFMT) | S_IFBLK; dev = (unsigned long) 0xdeadbeefbadc0dedULL; rc = call_mknod(mode, dev); printf("mknod(\"%s\", S_IFBLK|S_ISUID|S_ISGID|S_ISVTX|%#03ho" - ", makedev(%#x, %#x)) = %ld %s (%m)\n", + ", makedev(%#x, %#x)) = %s\n", sample, (short) (mode & ~(S_IFMT|S_ISUID|S_ISGID|S_ISVTX)), major((unsigned) dev), minor((unsigned) dev), - rc, errno2name()); + sprintrc(rc)); puts("+++ exited with 0 +++"); return 0; diff --git a/tests-m32/mknodat.c b/tests-m32/mknodat.c index 34b34d80..ffc56210 100644 --- a/tests-m32/mknodat.c +++ b/tests-m32/mknodat.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_mknodat diff --git a/tests-m32/mlock.c b/tests-m32/mlock.c index 0f31d20c..c2550ba9 100644 --- a/tests-m32/mlock.c +++ b/tests-m32/mlock.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_mlock && defined __NR_munlock diff --git a/tests-m32/mlock2.c b/tests-m32/mlock2.c index 23f1cd9a..0489afe3 100644 --- a/tests-m32/mlock2.c +++ b/tests-m32/mlock2.c @@ -1,12 +1,12 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_mlock2 diff --git a/tests-m32/modify_ldt.c b/tests-m32/modify_ldt.c index 78e370e4..b642bbe2 100644 --- a/tests-m32/modify_ldt.c +++ b/tests-m32/modify_ldt.c @@ -1,7 +1,7 @@ /* * Check decoding of modify_ldt syscall. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,7 +9,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined __NR_modify_ldt && defined HAVE_STRUCT_USER_DESC @@ -23,18 +23,26 @@ void printrc(long rc) { # ifdef __x86_64__ - int err = -rc; + /* + * Hopefully, we don't expect EPERM to be returned, + * otherwise we can't distinguish it on x32. + */ + if (rc != -1) { + int err = -rc; - /* Thanks, long return type of syscall(2) */ - printf("%lld", zero_extend_signed_to_ull(rc)); + /* Thanks, long return type of syscall(2) */ + printf("%lld", zero_extend_signed_to_ull(rc)); - if (err > 0 && err < 0x1000) { - errno = err; - printf(" %s (%m)", errno2name()); + if (err > 0 && err < 0x1000) { + errno = err; + printf(" %s (%m)", errno2name()); + } } -# else - printf("%s", sprintrc(rc)); + else # endif + { + printf("%s", sprintrc(rc)); + } puts(""); } diff --git a/tests-m32/move_mount-P.c b/tests-m32/move_mount-P.c new file mode 100644 index 00000000..1e1cd5c8 --- /dev/null +++ b/tests-m32/move_mount-P.c @@ -0,0 +1,2 @@ +#define PATH_TRACING +#include "move_mount.c" diff --git a/tests-m32/move_mount-P.gen.test b/tests-m32/move_mount-P.gen.test new file mode 100755 index 00000000..780d8c9c --- /dev/null +++ b/tests-m32/move_mount-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (move_mount-P -y -P /dev/full -e trace=move_mount); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -y -P /dev/full -e trace=move_mount diff --git a/tests-m32/move_mount.c b/tests-m32/move_mount.c new file mode 100644 index 00000000..b6ebfdac --- /dev/null +++ b/tests-m32/move_mount.c @@ -0,0 +1,102 @@ +/* + * Check decoding of move_mount syscall. + * + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_move_mount + +# include +# include +# include +# include +# include + +static const char *errstr; + +static long +k_move_mount(const unsigned int from_dfd, const void *from_fname, + const unsigned int to_dfd, const void *to_fname, + const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | from_dfd; + const kernel_ulong_t arg2 = (uintptr_t) from_fname; + const kernel_ulong_t arg3 = fill | to_dfd; + const kernel_ulong_t arg4 = (uintptr_t) to_fname; + const kernel_ulong_t arg5 = fill | flags; + const long rc = syscall(__NR_move_mount, + arg1, arg2, arg3, arg4, arg5, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + skip_if_unavailable("/proc/self/fd/"); + + static const char path_full[] = "/dev/full"; + const char *const path = tail_memdup(path_full, sizeof(path_full)); + const void *const efault = path + sizeof(path_full); + const char *const empty = efault - 1; + char *const fname = tail_alloc(PATH_MAX); + fill_memory_ex(fname, PATH_MAX, '0', 10); + + int dfd = open(path, O_WRONLY); + if (dfd < 0) + perror_msg_and_fail("open: %s", path); + + k_move_mount(-1, 0, -100, efault, 0); +# ifndef PATH_TRACING + printf("move_mount(-1, NULL, AT_FDCWD, %p, 0) = %s\n", efault, errstr); +# endif + + k_move_mount(-100, efault, -1, 0, 0); +# ifndef PATH_TRACING + printf("move_mount(AT_FDCWD, %p, -1, NULL, 0) = %s\n", efault, errstr); +# endif + + k_move_mount(dfd, fname, -100, empty, 1); + printf("move_mount(%d<%s>, \"%.*s\"..., AT_FDCWD, \"\", %s) = %s\n", + dfd, path, (int) PATH_MAX - 1, fname, "MOVE_MOUNT_F_SYMLINKS", errstr); + + k_move_mount(-100, empty, dfd, fname, 0x10); + printf("move_mount(AT_FDCWD, \"\", %d<%s>, \"%.*s\"..., %s) = %s\n", + dfd, path, (int) PATH_MAX - 1, fname, "MOVE_MOUNT_T_SYMLINKS", errstr); + +# define f_flags_str "MOVE_MOUNT_F_SYMLINKS|MOVE_MOUNT_F_AUTOMOUNTS|MOVE_MOUNT_F_EMPTY_PATH" + fname[PATH_MAX - 1] = '\0'; + k_move_mount(dfd, fname, -100, empty, 7); + printf("move_mount(%d<%s>, \"%s\", AT_FDCWD, \"\", %s) = %s\n", + dfd, path, fname, f_flags_str, errstr); + +# define t_flags_str "MOVE_MOUNT_T_SYMLINKS|MOVE_MOUNT_T_AUTOMOUNTS|MOVE_MOUNT_T_EMPTY_PATH" + k_move_mount(-100, empty, dfd, fname, 0x70); + printf("move_mount(AT_FDCWD, \"\", %d<%s>, \"%s\", %s) = %s\n", + dfd, path, fname, t_flags_str, errstr); + + k_move_mount(-1, path, -100, empty, 0x77); + printf("move_mount(-1, \"%s\", AT_FDCWD, \"\", %s) = %s\n", + path, f_flags_str "|" t_flags_str, errstr); + + k_move_mount(-100, empty, -1, path, -1); + printf("move_mount(AT_FDCWD, \"\", -1, \"%s\", %s) = %s\n", + path, f_flags_str "|" t_flags_str "|0xffffff88", errstr); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_move_mount") + +#endif diff --git a/tests-m32/move_mount.gen.test b/tests-m32/move_mount.gen.test new file mode 100755 index 00000000..465810ff --- /dev/null +++ b/tests-m32/move_mount.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (move_mount -y ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -y diff --git a/tests-m32/move_pages--pidns-translation.c b/tests-m32/move_pages--pidns-translation.c new file mode 100644 index 00000000..8498e399 --- /dev/null +++ b/tests-m32/move_pages--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "move_pages.c" diff --git a/tests-m32/move_pages--pidns-translation.gen.test b/tests-m32/move_pages--pidns-translation.gen.test new file mode 100755 index 00000000..acd97c62 --- /dev/null +++ b/tests-m32/move_pages--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (move_pages--pidns-translation test_pidns -s3 -e trace=move_pages); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -s3 -e trace=move_pages diff --git a/tests-m32/move_pages.c b/tests-m32/move_pages.c index 895c7c6f..e648f00a 100644 --- a/tests-m32/move_pages.c +++ b/tests-m32/move_pages.c @@ -2,14 +2,15 @@ * Check decoding of move_pages syscall. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #ifdef __NR_move_pages @@ -122,15 +123,20 @@ print_status_array(const int *const status, const unsigned long count) } static void -print_stat_pages(const unsigned long pid, const unsigned long count, - const void **const pages, int *const status) +print_stat_pages(const unsigned long pid, + const char *pid_str, + const unsigned long count, + const void **const pages, + int *const status) { const unsigned long flags = (unsigned long) 0xfacefeed00000002ULL; long rc = syscall(__NR_move_pages, pid, count, pages, NULL, status, flags); const char *errstr = sprintrc(rc); - printf("move_pages(%d, %lu, ", (int) pid, count); + pidns_print_leader(); + printf("move_pages(%d%s, %lu, ", (int) pid, pid_str, + count); print_page_array(pages, count, 0); printf(", NULL, "); if (rc) { @@ -152,6 +158,7 @@ print_stat_pages(const unsigned long pid, const unsigned long count, static void print_move_pages(const unsigned long pid, + const char *pid_str, unsigned long count, const unsigned int offset, const void **const pages, @@ -164,7 +171,9 @@ print_move_pages(const unsigned long pid, long rc = syscall(__NR_move_pages, pid, count, pages, nodes, status, flags); const char *errstr = sprintrc(rc); - printf("move_pages(%d, %lu, ", (int) pid, count); + pidns_print_leader(); + printf("move_pages(%d%s, %lu, ", (int) pid, pid_str, + count); print_page_array(pages, count, offset); printf(", "); print_node_array(nodes, count, offset); @@ -185,8 +194,11 @@ print_move_pages(const unsigned long pid, int main(void) { + PIDNS_TEST_INIT; + const unsigned long pid = (unsigned long) 0xfacefeed00000000ULL | getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); unsigned long count = 1; const unsigned page_size = get_page_size(); const void *const page = tail_alloc(page_size); @@ -195,40 +207,41 @@ main(void) TAIL_ALLOC_OBJECT_VAR_PTR(int, nodes); TAIL_ALLOC_OBJECT_VAR_PTR(int, status); - print_stat_pages(pid, 0, pages, status); - print_move_pages(pid, 0, 0, pages, nodes, status); - print_move_pages(pid, 0, 1, pages + 1, nodes + 1, status + 1); + print_stat_pages(pid, pid_str, 0, pages, status); + print_move_pages(pid, pid_str, 0, 0, pages, nodes, status); + print_move_pages(pid, pid_str, 0, 1, pages + 1, nodes + 1, status + 1); *pages = page; - print_stat_pages(pid, count, pages, status); + print_stat_pages(pid, pid_str, count, pages, status); *nodes = 0xdeadbee1; - print_move_pages(pid, count, 0, pages, nodes, status); - print_move_pages(pid, count, 1, pages, nodes, status); + print_move_pages(pid, pid_str, count, 0, pages, nodes, status); + print_move_pages(pid, pid_str, count, 1, pages, nodes, status); ++count; --status; *(--pages) = efault; - print_stat_pages(pid, count, pages, status); + print_stat_pages(pid, pid_str, count, pages, status); *(--nodes) = 0xdeadbee2; - print_move_pages(pid, count, 0, pages, nodes, status); - print_move_pages(pid, count, 1, pages, nodes, status); + print_move_pages(pid, pid_str, count, 0, pages, nodes, status); + print_move_pages(pid, pid_str, count, 1, pages, nodes, status); ++count; --status; *(--pages) = nodes; - print_stat_pages(pid, count, pages, status); + print_stat_pages(pid, pid_str, count, pages, status); *(--nodes) = 0xdeadbee3; - print_move_pages(pid, count, 0, pages, nodes, status); - print_move_pages(pid, count, 1, pages, nodes, status); + print_move_pages(pid, pid_str, count, 0, pages, nodes, status); + print_move_pages(pid, pid_str, count, 1, pages, nodes, status); ++count; --status; *(--pages) = status; - print_stat_pages(pid, count, pages, status); + print_stat_pages(pid, pid_str, count, pages, status); *(--nodes) = 0xdeadbee4; - print_move_pages(pid, count, 0, pages, nodes, status); - print_move_pages(pid, count, 1, pages, nodes, status); + print_move_pages(pid, pid_str, count, 0, pages, nodes, status); + print_move_pages(pid, pid_str, count, 1, pages, nodes, status); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-m32/mq_sendrecv.c b/tests-m32/mq_sendrecv.c index 7af0f36e..45ddf5ee 100644 --- a/tests-m32/mq_sendrecv.c +++ b/tests-m32/mq_sendrecv.c @@ -3,7 +3,7 @@ * mq_unlink syscalls. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +11,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined __NR_mq_open && __NR_mq_timedsend && __NR_mq_timedreceive && \ __NR_mq_notify && __NR_mq_unlink diff --git a/tests-m32/msg_control.c b/tests-m32/msg_control.c index a4a32a88..2fd6c95d 100644 --- a/tests-m32/msg_control.c +++ b/tests-m32/msg_control.c @@ -2,7 +2,7 @@ * Check decoding of struct msghdr ancillary data. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -25,6 +25,9 @@ # include #endif +#include "kernel_timeval.h" +#include "kernel_old_timespec.h" + #include "xlat.h" #define XLAT_MACROS_ONLY #include "xlat/sock_options.h" @@ -38,9 +41,6 @@ # define SOL_TCP 6 #endif -#define MIN_SIZE_OF(type, member) \ - (offsetof(type, member) + sizeof(((type *) 0)->member)) - static struct cmsghdr * get_cmsghdr(void *const page, const size_t len) { @@ -87,11 +87,11 @@ test_scm_rights1(struct msghdr *const mh, struct cmsghdr *cmsg = get_cmsghdr(page, msg_controllen); - if (msg_controllen >= MIN_SIZE_OF(struct cmsghdr, cmsg_len)) + if (msg_controllen >= offsetofend(struct cmsghdr, cmsg_len)) cmsg->cmsg_len = cmsg_len; - if (msg_controllen >= MIN_SIZE_OF(struct cmsghdr, cmsg_level)) + if (msg_controllen >= offsetofend(struct cmsghdr, cmsg_level)) cmsg->cmsg_level = SOL_SOCKET; - if (msg_controllen >= MIN_SIZE_OF(struct cmsghdr, cmsg_type)) + if (msg_controllen >= offsetofend(struct cmsghdr, cmsg_type)) cmsg->cmsg_type = SCM_RIGHTS; size_t src_len = @@ -152,11 +152,11 @@ test_scm_rights2(struct msghdr *const mh, memcpy(CMSG_DATA(cmsg[0]), src[0], cmsg_len[0] - CMSG_LEN(0)); const size_t msg_controllen1 = msg_controllen - aligned_cms_len[0]; - if (msg_controllen1 >= MIN_SIZE_OF(struct cmsghdr, cmsg_len)) + if (msg_controllen1 >= offsetofend(struct cmsghdr, cmsg_len)) cmsg[1]->cmsg_len = cmsg_len[1]; - if (msg_controllen >= MIN_SIZE_OF(struct cmsghdr, cmsg_level)) + if (msg_controllen >= offsetofend(struct cmsghdr, cmsg_level)) cmsg[1]->cmsg_level = SOL_SOCKET; - if (msg_controllen >= MIN_SIZE_OF(struct cmsghdr, cmsg_type)) + if (msg_controllen >= offsetofend(struct cmsghdr, cmsg_type)) cmsg[1]->cmsg_type = SCM_RIGHTS; size_t src1_len = cmsg_len[1] < msg_controllen1 ? cmsg_len[1] : msg_controllen1; @@ -217,15 +217,17 @@ test_scm_rights3(struct msghdr *const mh, void *const page, const size_t nfds) static void test_scm_timestamp_old(struct msghdr *const mh, void *const page) { - size_t len = CMSG_SPACE(sizeof(struct timeval)); + static const kernel_old_timeval_t tv = { + .tv_sec = 123456789, + .tv_usec = 987654 + }; + size_t len = CMSG_SPACE(sizeof(tv)); struct cmsghdr *cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = CMSG_LEN(sizeof(struct timeval)); + cmsg->cmsg_len = CMSG_LEN(sizeof(tv)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMP_OLD; - struct timeval *tv = (struct timeval *) CMSG_DATA(cmsg); - tv->tv_sec = 123456789; - tv->tv_usec = 987654; + memcpy(CMSG_DATA(cmsg), &tv, sizeof(tv)); mh->msg_control = cmsg; mh->msg_controllen = len; @@ -237,13 +239,13 @@ test_scm_timestamp_old(struct msghdr *const mh, void *const page) ", cmsg_data={tv_sec=%lld, tv_usec=%llu}}]" ", msg_controllen=%lu, msg_flags=0}, 0) = %d %s (%m)\n", (unsigned) cmsg->cmsg_len, - (long long) tv->tv_sec, zero_extend_signed_to_ull(tv->tv_usec), + (long long) tv.tv_sec, zero_extend_signed_to_ull(tv.tv_usec), (unsigned long) len, rc, errno2name()); - len = CMSG_SPACE(sizeof(struct timeval) - sizeof(long)); + len = CMSG_SPACE(sizeof(tv) - sizeof(long)); cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = CMSG_LEN(sizeof(struct timeval) - sizeof(long)); + cmsg->cmsg_len = CMSG_LEN(sizeof(tv) - sizeof(long)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMP_OLD; @@ -262,15 +264,17 @@ test_scm_timestamp_old(struct msghdr *const mh, void *const page) static void test_scm_timestampns_old(struct msghdr *const mh, void *const page) { - size_t len = CMSG_SPACE(sizeof(struct timespec)); + static const kernel_old_timespec_t ts = { + .tv_sec = 123456789, + .tv_nsec = 987654321 + }; + size_t len = CMSG_SPACE(sizeof(ts)); struct cmsghdr *cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = CMSG_LEN(sizeof(struct timespec)); + cmsg->cmsg_len = CMSG_LEN(sizeof(ts)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMPNS_OLD; - struct timespec *ts = (struct timespec *) CMSG_DATA(cmsg); - ts->tv_sec = 123456789; - ts->tv_nsec = 987654321; + memcpy(CMSG_DATA(cmsg), &ts, sizeof(ts)); mh->msg_control = cmsg; mh->msg_controllen = len; @@ -282,13 +286,13 @@ test_scm_timestampns_old(struct msghdr *const mh, void *const page) ", cmsg_data={tv_sec=%lld, tv_nsec=%llu}}]" ", msg_controllen=%lu, msg_flags=0}, 0) = %d %s (%m)\n", (unsigned) cmsg->cmsg_len, - (long long) ts->tv_sec, zero_extend_signed_to_ull(ts->tv_nsec), + (long long) ts.tv_sec, zero_extend_signed_to_ull(ts.tv_nsec), (unsigned long) len, rc, errno2name()); - len = CMSG_SPACE(sizeof(struct timespec) - sizeof(long)); + len = CMSG_SPACE(sizeof(ts) - sizeof(long)); cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = CMSG_LEN(sizeof(struct timespec) - sizeof(long)); + cmsg->cmsg_len = CMSG_LEN(sizeof(ts) - sizeof(long)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMPNS_OLD; @@ -308,19 +312,18 @@ test_scm_timestampns_old(struct msghdr *const mh, void *const page) static void test_scm_timestamping_old(struct msghdr *const mh, void *const page) { - size_t len = CMSG_SPACE(3 * sizeof(struct timespec)); + static const kernel_old_timespec_t ts[] = { + { .tv_sec = 123456789, .tv_nsec = 987654321 }, + { .tv_sec = 123456790, .tv_nsec = 987654320 }, + { .tv_sec = 123456791, .tv_nsec = 987654319 } + }; + size_t len = CMSG_SPACE(sizeof(ts)); struct cmsghdr *cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = CMSG_LEN(3 * sizeof(struct timespec)); + cmsg->cmsg_len = CMSG_LEN(sizeof(ts)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMPING_OLD; - struct timespec *ts = (struct timespec *) CMSG_DATA(cmsg); - ts[0].tv_sec = 123456789; - ts[0].tv_nsec = 987654321; - ts[1].tv_sec = 123456790; - ts[1].tv_nsec = 987654320; - ts[2].tv_sec = 123456791; - ts[2].tv_nsec = 987654319; + memcpy(CMSG_DATA(cmsg), ts, sizeof(ts)); mh->msg_control = cmsg; mh->msg_controllen = len; @@ -340,10 +343,10 @@ test_scm_timestamping_old(struct msghdr *const mh, void *const page) zero_extend_signed_to_ull(ts[2].tv_nsec), (unsigned long) len, rc, errno2name()); - len = CMSG_SPACE(3 * sizeof(struct timespec) - sizeof(long)); + len = CMSG_SPACE(sizeof(ts) - sizeof(long)); cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = CMSG_LEN(3 * sizeof(struct timespec) - sizeof(long)); + cmsg->cmsg_len = CMSG_LEN(sizeof(ts) - sizeof(long)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMPING_OLD; @@ -364,16 +367,17 @@ test_scm_timestamping_old(struct msghdr *const mh, void *const page) static void test_scm_timestamp_new(struct msghdr *const mh, void *const page) { - size_t len = CMSG_SPACE(sizeof(struct __kernel_sock_timeval)); + static const struct __kernel_sock_timeval tv = { + .tv_sec = 0xdefaceddeadbeef, + .tv_usec = 0xdec0dedcafef00d + }; + size_t len = CMSG_SPACE(sizeof(tv)); struct cmsghdr *cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = CMSG_LEN(sizeof(struct __kernel_sock_timeval)); + cmsg->cmsg_len = CMSG_LEN(sizeof(tv)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMP_NEW; - struct __kernel_sock_timeval *tv = - (struct __kernel_sock_timeval *) CMSG_DATA(cmsg); - tv->tv_sec = 0xdefaceddeadbeef; - tv->tv_usec = 0xdec0dedcafef00d; + memcpy(CMSG_DATA(cmsg), &tv, sizeof(tv)); mh->msg_control = cmsg; mh->msg_controllen = len; @@ -385,14 +389,13 @@ test_scm_timestamp_new(struct msghdr *const mh, void *const page) ", cmsg_data={tv_sec=%lld, tv_usec=%llu}}]" ", msg_controllen=%lu, msg_flags=0}, 0) = %s\n", (unsigned) cmsg->cmsg_len, - (long long) tv->tv_sec, zero_extend_signed_to_ull(tv->tv_usec), + (long long) tv.tv_sec, zero_extend_signed_to_ull(tv.tv_usec), (unsigned long) len, sprintrc(rc)); - len = CMSG_SPACE(sizeof(struct __kernel_sock_timeval) - sizeof(long)); + len = CMSG_SPACE(sizeof(tv) - sizeof(long)); cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = - CMSG_LEN(sizeof(struct __kernel_sock_timeval) - sizeof(long)); + cmsg->cmsg_len = CMSG_LEN(sizeof(tv) - sizeof(long)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMP_NEW; @@ -413,16 +416,17 @@ test_scm_timestamp_new(struct msghdr *const mh, void *const page) static void test_scm_timestampns_new(struct msghdr *const mh, void *const page) { - size_t len = CMSG_SPACE(sizeof(struct __kernel_timespec)); + static const struct __kernel_timespec ts = { + .tv_sec = 0xdefaceddeadbeef, + .tv_nsec = 0xdec0dedcafef00d + }; + size_t len = CMSG_SPACE(sizeof(ts)); struct cmsghdr *cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = CMSG_LEN(sizeof(struct __kernel_timespec)); + cmsg->cmsg_len = CMSG_LEN(sizeof(ts)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMPNS_NEW; - struct __kernel_timespec *ts = - (struct __kernel_timespec *) CMSG_DATA(cmsg); - ts->tv_sec = 0xdefaceddeadbeef; - ts->tv_nsec = 0xdec0dedcafef00d; + memcpy(CMSG_DATA(cmsg), &ts, sizeof(ts)); mh->msg_control = cmsg; mh->msg_controllen = len; @@ -434,14 +438,13 @@ test_scm_timestampns_new(struct msghdr *const mh, void *const page) ", cmsg_data={tv_sec=%lld, tv_nsec=%llu}}]" ", msg_controllen=%lu, msg_flags=0}, 0) = %s\n", (unsigned) cmsg->cmsg_len, - (long long) ts->tv_sec, zero_extend_signed_to_ull(ts->tv_nsec), + (long long) ts.tv_sec, zero_extend_signed_to_ull(ts.tv_nsec), (unsigned long) len, sprintrc(rc)); - len = CMSG_SPACE(sizeof(struct __kernel_timespec) - sizeof(long)); + len = CMSG_SPACE(sizeof(ts) - sizeof(long)); cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = - CMSG_LEN(sizeof(struct __kernel_timespec) - sizeof(long)); + cmsg->cmsg_len = CMSG_LEN(sizeof(ts) - sizeof(long)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMPNS_NEW; @@ -461,20 +464,18 @@ test_scm_timestampns_new(struct msghdr *const mh, void *const page) static void test_scm_timestamping_new(struct msghdr *const mh, void *const page) { - size_t len = CMSG_SPACE(3 * sizeof(struct __kernel_timespec)); + static const struct __kernel_timespec ts[] = { + { .tv_sec = 0xdeface0deadbef1, .tv_nsec = 0xdec0de2cafef0d3 }, + { .tv_sec = 0xdeface4deadbef5, .tv_nsec = 0xdec0de6cafef0d7 }, + { .tv_sec = 0xdeface8deadbef9, .tv_nsec = 0xdec0dedcafef00d } + }; + size_t len = CMSG_SPACE(sizeof(ts)); struct cmsghdr *cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = CMSG_LEN(3 * sizeof(struct __kernel_timespec)); + cmsg->cmsg_len = CMSG_LEN(sizeof(ts)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMPING_NEW; - struct __kernel_timespec *ts = - (struct __kernel_timespec *) CMSG_DATA(cmsg); - ts[0].tv_sec = 0xdeface0deadbef1; - ts[0].tv_nsec = 0xdec0de2cafef0d3; - ts[1].tv_sec = 0xdeface4deadbef5; - ts[1].tv_nsec = 0xdec0de6cafef0d7; - ts[2].tv_sec = 0xdeface8deadbef9; - ts[2].tv_nsec = 0xdec0dedcafef00d; + memcpy(CMSG_DATA(cmsg), ts, sizeof(ts)); mh->msg_control = cmsg; mh->msg_controllen = len; @@ -494,11 +495,10 @@ test_scm_timestamping_new(struct msghdr *const mh, void *const page) zero_extend_signed_to_ull(ts[2].tv_nsec), (unsigned long) len, sprintrc(rc)); - len = CMSG_SPACE(3 * sizeof(struct __kernel_timespec) - sizeof(long)); + len = CMSG_SPACE(sizeof(ts) - sizeof(long)); cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = - CMSG_LEN(3 * sizeof(struct __kernel_timespec) - sizeof(long)); + cmsg->cmsg_len = CMSG_LEN(sizeof(ts) - sizeof(long)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMPING_NEW; @@ -987,7 +987,7 @@ int main(int ac, const char **av) printf("sendmsg(-1, %p, 0) = %d %s (%m)\n", mh + 1, rc, errno2name()); - void *page = tail_alloc(1) + 1; + void *page = tail_alloc(1024) + 1024; mh->msg_control = page; mh->msg_controllen = CMSG_LEN(0); rc = sendmsg(-1, mh, 0); diff --git a/tests-m32/nanosleep.c b/tests-m32/nanosleep.c index c7ebf496..d55b395c 100644 --- a/tests-m32/nanosleep.c +++ b/tests-m32/nanosleep.c @@ -2,19 +2,38 @@ * Check decoding of nanosleep syscall. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include -#include -#include -#include -#include +#include "scno.h" + +#ifdef __NR_nanosleep + +# include +# include +# include +# include +# include +# include + +# include "kernel_old_timespec.h" + +static const char *errstr; + +static long +k_nanosleep(const void *const req, void *const rem) +{ + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = (uintptr_t) req; + const kernel_ulong_t arg2 = (uintptr_t) rem; + const long rc = syscall(__NR_nanosleep, arg1, arg2, bad, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} static void handler(int signo) @@ -25,7 +44,7 @@ int main(void) { struct { - struct timespec ts; + kernel_old_timespec_t ts; uint32_t pad[2]; } req = { .ts.tv_nsec = 0xc0de1, @@ -38,47 +57,51 @@ main(void) const struct sigaction act = { .sa_handler = handler }; const struct itimerval itv = { .it_value.tv_usec = 111111 }; - if (nanosleep(&req.ts, NULL)) + if (k_nanosleep(&req.ts, NULL)) perror_msg_and_fail("nanosleep"); printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, NULL) = 0\n", (long long) req.ts.tv_sec, zero_extend_signed_to_ull(req.ts.tv_nsec)); - assert(nanosleep(NULL, &rem.ts) == -1); - printf("nanosleep(NULL, %p) = -1 EFAULT (%m)\n", &rem.ts); + assert(k_nanosleep(NULL, &rem.ts) == -1); + printf("nanosleep(NULL, %p) = %s\n", &rem.ts, errstr); - if (nanosleep(&req.ts, &rem.ts)) + if (k_nanosleep(&req.ts, &rem.ts)) perror_msg_and_fail("nanosleep"); printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, %p) = 0\n", (long long) req.ts.tv_sec, zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts); req.ts.tv_nsec = 1000000000; - assert(nanosleep(&req.ts, &rem.ts) == -1); - printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, %p) = -1 EINVAL (%m)\n", + assert(k_nanosleep(&req.ts, &rem.ts) == -1); + printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, %p) = %s\n", (long long) req.ts.tv_sec, - zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts); + zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts, + errstr); req.ts.tv_sec = 0xdeadbeefU; req.ts.tv_nsec = 0xfacefeedU; - assert(nanosleep(&req.ts, &rem.ts) == -1); - printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, %p) = -1 EINVAL (%m)\n", + assert(k_nanosleep(&req.ts, &rem.ts) == -1); + printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, %p) = %s\n", (long long) req.ts.tv_sec, - zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts); + zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts, + errstr); req.ts.tv_sec = (time_t) 0xcafef00ddeadbeefLL; req.ts.tv_nsec = (long) 0xbadc0dedfacefeedLL; - assert(nanosleep(&req.ts, &rem.ts) == -1); - printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, %p) = -1 EINVAL (%m)\n", + assert(k_nanosleep(&req.ts, &rem.ts) == -1); + printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, %p) = %s\n", (long long) req.ts.tv_sec, - zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts); + zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts, + errstr); req.ts.tv_sec = -1; req.ts.tv_nsec = -1; - assert(nanosleep(&req.ts, &rem.ts) == -1); - printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, %p) = -1 EINVAL (%m)\n", + assert(k_nanosleep(&req.ts, &rem.ts) == -1); + printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, %p) = %s\n", (long long) req.ts.tv_sec, - zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts); + zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts, + errstr); assert(sigaction(SIGALRM, &act, NULL) == 0); assert(sigprocmask(SIG_SETMASK, &set, NULL) == 0); @@ -88,7 +111,7 @@ main(void) req.ts.tv_sec = 0; req.ts.tv_nsec = 999999999; - assert(nanosleep(&req.ts, &rem.ts) == -1); + assert(k_nanosleep(&req.ts, &rem.ts) == -1); printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}" ", {tv_sec=%lld, tv_nsec=%llu})" " = ? ERESTART_RESTARTBLOCK (Interrupted by signal)\n", @@ -101,3 +124,9 @@ main(void) puts("+++ exited with 0 +++"); return 0; } + +#else + +SKIP_MAIN_UNDEFINED("__NR_nanosleep") + +#endif diff --git a/tests-m32/net--decode-fds-dev-netlink.c b/tests-m32/net--decode-fds-dev-netlink.c new file mode 100644 index 00000000..a84f91b5 --- /dev/null +++ b/tests-m32/net--decode-fds-dev-netlink.c @@ -0,0 +1,2 @@ +#define PRINT_SOCK 1 +#include "net-yy-netlink.c" diff --git a/tests-m32/net--decode-fds-dev-netlink.gen.test b/tests-m32/net--decode-fds-dev-netlink.gen.test new file mode 100755 index 00000000..92663b86 --- /dev/null +++ b/tests-m32/net--decode-fds-dev-netlink.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (net--decode-fds-dev-netlink +net-yy-netlink.test --decode-fds=dev); do not edit. +set -- --decode-fds=dev +. "${srcdir=.}/net-yy-netlink.test" diff --git a/tests-m32/net--decode-fds-none-netlink.c b/tests-m32/net--decode-fds-none-netlink.c new file mode 100644 index 00000000..2c8daace --- /dev/null +++ b/tests-m32/net--decode-fds-none-netlink.c @@ -0,0 +1,2 @@ +#define PRINT_SOCK 0 +#include "net-yy-netlink.c" diff --git a/tests-m32/net--decode-fds-none-netlink.gen.test b/tests-m32/net--decode-fds-none-netlink.gen.test new file mode 100755 index 00000000..ea3f2250 --- /dev/null +++ b/tests-m32/net--decode-fds-none-netlink.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (net--decode-fds-none-netlink +net-yy-netlink.test --decode-fds=none -a9); do not edit. +set -- --decode-fds=none -a9 +. "${srcdir=.}/net-yy-netlink.test" diff --git a/tests-m32/net--decode-fds-path-netlink.c b/tests-m32/net--decode-fds-path-netlink.c new file mode 100644 index 00000000..a84f91b5 --- /dev/null +++ b/tests-m32/net--decode-fds-path-netlink.c @@ -0,0 +1,2 @@ +#define PRINT_SOCK 1 +#include "net-yy-netlink.c" diff --git a/tests-m32/net--decode-fds-path-netlink.gen.test b/tests-m32/net--decode-fds-path-netlink.gen.test new file mode 100755 index 00000000..6943b682 --- /dev/null +++ b/tests-m32/net--decode-fds-path-netlink.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (net--decode-fds-path-netlink +net-yy-netlink.test --decode-fds=path); do not edit. +set -- --decode-fds=path +. "${srcdir=.}/net-yy-netlink.test" diff --git a/tests-m32/net--decode-fds-socket-netlink.c b/tests-m32/net--decode-fds-socket-netlink.c new file mode 100644 index 00000000..7416ccd9 --- /dev/null +++ b/tests-m32/net--decode-fds-socket-netlink.c @@ -0,0 +1,2 @@ +#define PRINT_SOCK 2 +#include "net-yy-netlink.c" diff --git a/tests-m32/net--decode-fds-socket-netlink.gen.test b/tests-m32/net--decode-fds-socket-netlink.gen.test new file mode 100755 index 00000000..012d876f --- /dev/null +++ b/tests-m32/net--decode-fds-socket-netlink.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (net--decode-fds-socket-netlink +net-yy-netlink.test --decode-fds=socket); do not edit. +set -- --decode-fds=socket +. "${srcdir=.}/net-yy-netlink.test" diff --git a/tests-m32/net-sockaddr--pidns-translation.c b/tests-m32/net-sockaddr--pidns-translation.c new file mode 100644 index 00000000..ff432bf4 --- /dev/null +++ b/tests-m32/net-sockaddr--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "net-sockaddr.c" diff --git a/tests-m32/net-sockaddr--pidns-translation.gen.test b/tests-m32/net-sockaddr--pidns-translation.gen.test new file mode 100755 index 00000000..ce8db05e --- /dev/null +++ b/tests-m32/net-sockaddr--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (net-sockaddr--pidns-translation test_pidns -a24 -e trace=connect); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a24 -e trace=connect diff --git a/tests-m32/net-sockaddr.c b/tests-m32/net-sockaddr.c index cd973922..c7e9bde7 100644 --- a/tests-m32/net-sockaddr.c +++ b/tests-m32/net-sockaddr.c @@ -2,13 +2,14 @@ * Check decoding of sockaddr structures * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include "pidns.h" #include #include #include @@ -40,18 +41,21 @@ check_un(void) memset(un->sun_path, '0', sizeof(un->sun_path)); unsigned int len = sizeof(*un); int ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%.*u\"}" ", %u) = %d EBADF (%m)\n", (int) sizeof(un->sun_path), 0, len, ret); un->sun_path[1] = 0; ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%u\"}, %u)" " = %d EBADF (%m)\n", 0, len, ret); un->sun_path[0] = 0; un->sun_path[2] = 1; ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNIX, sun_path=@\"\\0\\001%.*u\"}" ", %u) = %d EBADF (%m)\n", (int) sizeof(un->sun_path) - 3, 0, len, ret); @@ -61,12 +65,14 @@ check_un(void) memset(un->sun_path, '0', sizeof(un->sun_path)); len = sizeof(*un) + 2; ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%.*u\"}" ", %u) = %d EBADF (%m)\n", (int) sizeof(un->sun_path), 0, len, ret); un->sun_path[0] = 0; ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNIX, sun_path=@\"%.*u\"}" ", %u) = %d EBADF (%m)\n", (int) sizeof(un->sun_path) - 1, 0, len, ret); @@ -75,18 +81,21 @@ check_un(void) un->sun_family = AF_UNIX; len = sizeof(*un) - 2; ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%.*u\"}" ", %u) = %d EBADF (%m)\n", (int) sizeof(un->sun_path) - 2, 0, len, ret); un->sun_path[0] = 0; ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNIX, sun_path=@\"%.*u\"}" ", %u) = %d EBADF (%m)\n", (int) sizeof(un->sun_path) - 3, 0, len, ret); len = sizeof(*un); ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, %p, %u) = %d EBADF (%m)\n", un, len, ret); un = tail_alloc(sizeof(struct sockaddr_storage)); @@ -94,12 +103,14 @@ check_un(void) memset(un->sun_path, '0', sizeof(un->sun_path)); len = sizeof(struct sockaddr_storage) + 1; ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%.*u\"}" ", %u) = %d EBADF (%m)\n", (int) sizeof(un->sun_path), 0, len, ret); un->sun_path[0] = 0; ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNIX, sun_path=@\"%.*u\"}" ", %u) = %d EBADF (%m)\n", (int) sizeof(un->sun_path) - 1, 0, len, ret); @@ -117,6 +128,7 @@ check_in(void) in->sin_addr.s_addr = inet_addr(h_addr); unsigned int len = sizeof(*in); int ret = connect(-1, (void *) in, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_INET, sin_port=htons(%hu)" ", sin_addr=inet_addr(\"%s\")}, %u) = %d EBADF (%m)\n", h_port, h_addr, len, ret); @@ -127,6 +139,7 @@ check_in(void) in->sin_addr.s_addr = inet_addr(h_addr); len = sizeof(*in) + 4; ret = connect(-1, (void *) in, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_INET, sin_port=htons(%hu)" ", sin_addr=inet_addr(\"%s\")}, %u) = %d EBADF (%m)\n", h_port, h_addr, len, ret); @@ -137,6 +150,7 @@ check_in(void) in->sin_addr.s_addr = 0; len = sizeof(*in) - 4; ret = connect(-1, (void *) in, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_INET, sa_data=\"%s\"}, %u)" " = %d EBADF (%m)\n", "\\0\\0\\0\\0\\0\\0\\377\\377\\377\\377", @@ -144,6 +158,7 @@ check_in(void) len = sizeof(*in); ret = connect(-1, (void *) in, len); + pidns_print_leader(); printf("connect(-1, %p, %u) = %d EBADF (%m)\n", in, len, ret); } @@ -155,6 +170,7 @@ check_in6_linklocal(struct sockaddr_in6 *const in6, const char *const h_addr) in6->sin6_scope_id = 0xfacefeed; unsigned int len = sizeof(*in6); int ret = connect(-1, (void *) in6, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)" ", sin6_flowinfo=htonl(%u)" ", inet_pton(AF_INET6, \"%s\", &sin6_addr)" @@ -166,7 +182,8 @@ check_in6_linklocal(struct sockaddr_in6 *const in6, const char *const h_addr) in6->sin6_scope_id = ifindex_lo(); if (in6->sin6_scope_id) { ret = connect(-1, (void *) in6, len); - printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)" + pidns_print_leader(); + printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)" ", sin6_flowinfo=htonl(%u)" ", inet_pton(AF_INET6, \"%s\", &sin6_addr)" ", sin6_scope_id=%s}, %u)" @@ -191,6 +208,7 @@ check_in6(void) in6->sin6_scope_id = 0xfacefeed; unsigned int len = sizeof(*in6); int ret = connect(-1, (void *) in6, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)" ", sin6_flowinfo=htonl(%u)" ", inet_pton(AF_INET6, \"%s\", &sin6_addr)" @@ -209,6 +227,7 @@ check_in6(void) in6->sin6_scope_id = 0xfacefeed; len = sizeof(*in6) + 4; ret = connect(-1, (void *) in6, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)" ", sin6_flowinfo=htonl(%u)" ", inet_pton(AF_INET6, \"%s\", &sin6_addr)" @@ -223,6 +242,7 @@ check_in6(void) inet_pton(AF_INET6, h_addr, &in6->sin6_addr); len = sizeof(*in6) - sizeof(in6->sin6_scope_id); ret = connect(-1, (void *) in6, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)" ", sin6_flowinfo=htonl(%u)" ", inet_pton(AF_INET6, \"%s\", &sin6_addr)}, %u)" @@ -236,6 +256,7 @@ check_in6(void) memset(&in6->sin6_addr, '0', sizeof(in6->sin6_addr) - 4); len = sizeof(*in6) - sizeof(in6->sin6_scope_id) - 4; ret = connect(-1, (void *) in6, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_INET6" ", sa_data=\"\\0\\0\\0\\0\\0\\000%.*u\"}, %u)" " = %d EBADF (%m)\n", @@ -244,6 +265,7 @@ check_in6(void) len = sizeof(*in6) - sizeof(in6->sin6_scope_id); ret = connect(-1, (void *) in6, len); + pidns_print_leader(); printf("connect(-1, %p, %u) = %d EBADF (%m)\n", in6, len, ret); } @@ -262,6 +284,7 @@ check_ipx(void) void *ipx = tail_memdup(&c_ipx, sizeof(c_ipx)); unsigned int len = sizeof(c_ipx); int ret = connect(-1, ipx, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_IPX, sipx_port=htons(%u)" ", sipx_network=htonl(%#x)" ", sipx_node=[%#02x, %#02x, %#02x, %#02x, %#02x, %#02x]" @@ -316,18 +339,21 @@ check_ax25(void) fill_memory(sax, size); sax->fsa_ax25.sax25_family = AF_AX25; rc = connect(-1, sax_void, sizeof(struct sockaddr_ax25) - 1); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_AX25, sa_data=\"\\202\\203\\204\\205" "\\206\\207\\210\\211\\212\\213\\214\\215\\216\"}, %zu) = %s\n", sizeof(struct sockaddr_ax25) - 1, sprintrc(rc)); memcpy(sax, &ax25, sizeof(ax25)); rc = connect(-1, sax_void, sizeof(struct sockaddr_ax25)); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_AX25, fsa_ax25={sax25_call=VALID-13" ", sax25_ndigis=8}, fsa_digipeater=[/* ??? */]}, %zu) = %s\n", sizeof(struct sockaddr_ax25), sprintrc(rc)); sax->fsa_ax25.sax25_ndigis = 0; rc = connect(-1, sax_void, sizeof(struct sockaddr_ax25)); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_AX25, sax25_call=VALID-13" ", sax25_ndigis=0}, %zu) = %s\n", sizeof(struct sockaddr_ax25), sprintrc(rc)); @@ -335,6 +361,7 @@ check_ax25(void) sax->fsa_ax25.sax25_ndigis = 8; size = sizeof(struct sockaddr_ax25) + sizeof(ax25_address) * 3 + 1; rc = connect(-1, sax_void, size); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_AX25, fsa_ax25={sax25_call=VALID-13" ", sax25_ndigis=8}, fsa_digipeater" "=[{ax25_call=\"\\xa6\\xa0\\x82\\x40\\x86\\x8a\\x00\"" @@ -348,6 +375,7 @@ check_ax25(void) sax->fsa_digipeater[2].ax25_call[6] = 0x4; size = sizeof(struct sockaddr_ax25) + sizeof(ax25_address) * 4; rc = connect(-1, sax_void, size); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_AX25, fsa_ax25={sax25_call=VALID-13" ", sax25_ndigis=8}, fsa_digipeater" "=[{ax25_call=\"\\xa6\\xa0\\x82\\x40\\x86\\x8a\\x00\"" @@ -365,6 +393,7 @@ check_ax25(void) for (size_t i = 0; i < 3; i++) { size = sizeof(ax25) + sizeof(ax25_address) * (i / 2); rc = connect(-1, sax_void, size); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_AX25" ", fsa_ax25={sax25_call=VALID-13, sax25_ndigis=%d}" ", fsa_digipeater=[VALID2-7, OK-15, %s /* FINE-2 */" @@ -423,25 +452,28 @@ check_x25(void) .sx25_family = AF_X25, .sx25_addr = { "0123456789abcdef" }, }; - void *x25_void = tail_memdup(&c_x25, sizeof(c_x25) + 1); - struct sockaddr_x25 *x25 = x25_void; + void *const x25_void = tail_memdup(&c_x25, sizeof(c_x25) + 1); long rc; - rc = connect(-1, x25, sizeof(c_x25) - 1); + rc = connect(-1, x25_void, sizeof(c_x25) - 1); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_X25" ", sa_data=\"0123456789abcde\"}, %zu) = %s\n", sizeof(c_x25) - 1, sprintrc(rc)); for (size_t i = 0; i < 2; i++) { - rc = connect(-1, x25, sizeof(c_x25) + i); + rc = connect(-1, x25_void, sizeof(c_x25) + i); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_X25" ", sx25_addr={x25_addr=\"0123456789abcde\"...}" "}, %zu) = %s\n", sizeof(c_x25) + i, sprintrc(rc)); } + struct sockaddr_x25 *const x25 = x25_void; x25->sx25_addr.x25_addr[10] = '\0'; - rc = connect(-1, x25, sizeof(c_x25)); + rc = connect(-1, x25_void, sizeof(c_x25)); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_X25" ", sx25_addr={x25_addr=\"0123456789\"}" "}, %zu) = %s\n", @@ -457,19 +489,21 @@ check_nl(void) nl->nl_groups = 0xfacefeed; unsigned int len = sizeof(*nl); int ret = connect(-1, (void *) nl, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_NETLINK, nl_pid=%d" ", nl_groups=%#08x}, %u) = %d EBADF (%m)\n", nl->nl_pid, nl->nl_groups, len, ret); nl = ((void *) nl) - 4; nl->nl_family = AF_NETLINK; - nl->nl_pid = 1234567890; + nl->nl_pid = getpid(); nl->nl_groups = 0xfacefeed; len = sizeof(*nl) + 4; ret = connect(-1, (void *) nl, len); - printf("connect(-1, {sa_family=AF_NETLINK, nl_pid=%d" + pidns_print_leader(); + printf("connect(-1, {sa_family=AF_NETLINK, nl_pid=%d%s" ", nl_groups=%#08x}, %u) = %d EBADF (%m)\n", - nl->nl_pid, nl->nl_groups, len, ret); + nl->nl_pid, pidns_pid2str(PT_TGID), nl->nl_groups, len, ret); } static void @@ -487,6 +521,7 @@ check_ll(void) void *ll = tail_memdup(&c_ll, sizeof(c_ll)); unsigned int len = sizeof(c_ll); int ret = connect(-1, ll, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_PACKET" ", sll_protocol=htons(ETH_P_ALL)" ", sll_ifindex=%u, sll_hatype=ARPHRD_ETHER" @@ -502,6 +537,7 @@ check_ll(void) ((struct sockaddr_ll *) ll)->sll_halen++; ret = connect(-1, ll, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_PACKET" ", sll_protocol=htons(ETH_P_ALL)" ", sll_ifindex=%u, sll_hatype=ARPHRD_ETHER" @@ -517,6 +553,7 @@ check_ll(void) ((struct sockaddr_ll *) ll)->sll_halen = 0; ret = connect(-1, ll, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_PACKET" ", sll_protocol=htons(ETH_P_ALL)" ", sll_ifindex=%u, sll_hatype=ARPHRD_ETHER" @@ -526,6 +563,7 @@ check_ll(void) ((struct sockaddr_ll *) ll)->sll_ifindex = ifindex_lo(); if (((struct sockaddr_ll *) ll)->sll_ifindex) { ret = connect(-1, ll, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_PACKET" ", sll_protocol=htons(ETH_P_ALL)" ", sll_ifindex=%s" @@ -543,11 +581,24 @@ check_hci(void) TAIL_ALLOC_OBJECT_VAR_PTR(struct sockaddr_hci, hci); hci->hci_family = AF_BLUETOOTH; hci->hci_dev = htobs(h_port); +# ifdef HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL hci->hci_channel = HCI_CHANNEL_RAW; +# endif unsigned int len = sizeof(*hci); - int ret = connect(-1, (void *) hci, len); + + int ret = connect(-1, (void *) hci, 4); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_BLUETOOTH, hci_dev=htobs(%hu)" - ", hci_channel=HCI_CHANNEL_RAW}, %u) = %d EBADF (%m)\n", + "}, 4) = %d EBADF (%m)\n", + h_port, ret); + + ret = connect(-1, (void *) hci, len); + pidns_print_leader(); + printf("connect(-1, {sa_family=AF_BLUETOOTH, hci_dev=htobs(%hu)" +# ifdef HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL + ", hci_channel=HCI_CHANNEL_RAW" +# endif + "}, %u) = %d EBADF (%m)\n", h_port, len, ret); } @@ -561,6 +612,7 @@ check_sco(void) void *sco = tail_memdup(&c_sco, sizeof(c_sco)); unsigned int len = sizeof(c_sco); int ret = connect(-1, sco, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_BLUETOOTH" ", sco_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x" "}, %u) = %d EBADF (%m)\n", @@ -581,6 +633,7 @@ check_rc(void) void *rc = tail_memdup(&c_rc, sizeof(c_rc)); unsigned int len = sizeof(c_rc); int ret = connect(-1, rc, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_BLUETOOTH" ", rc_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x" ", rc_channel=%u}, %u) = %d EBADF (%m)\n", @@ -608,6 +661,7 @@ check_l2(void) unsigned int len = sizeof(c_l2); int ret = connect(-1, l2, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_BLUETOOTH" ", l2_psm=htobs(L2CAP_PSM_DYN_START + %hu)" ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x" @@ -629,6 +683,7 @@ check_l2(void) # endif memcpy(l2, &c_l2, sizeof(c_l2)); ret = connect(-1, l2, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_BLUETOOTH" ", l2_psm=htobs(L2CAP_PSM_SDP)" ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x" @@ -649,6 +704,7 @@ check_l2(void) # endif memcpy(l2, &c_l2, sizeof(c_l2)); ret = connect(-1, l2, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_BLUETOOTH" ", l2_psm=htobs(0xbad /* L2CAP_PSM_??? */)" ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x" @@ -666,6 +722,7 @@ check_l2(void) c_l2.l2_cid = htobs(0xffff); memcpy(l2, &c_l2, 12); ret = connect(-1, l2, 12); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_BLUETOOTH" ", l2_psm=htobs(L2CAP_PSM_AUTO_END)" ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x" @@ -689,6 +746,7 @@ check_raw(void) u.sa->sa_family = 0xff; unsigned int len = sizeof(*u.st) + 8; int ret = connect(-1, (void *) u.st, len); + pidns_print_leader(); printf("connect(-1, {sa_family=%#x /* AF_??? */, sa_data=\"%.*u\"}" ", %u) = %d EBADF (%m)\n", u.sa->sa_family, (int) (sizeof(*u.st) - sizeof(u.sa->sa_family)), 0, len, ret); @@ -696,19 +754,22 @@ check_raw(void) u.sa->sa_family = 0; len = sizeof(u.sa->sa_family) + 1; ret = connect(-1, (void *) u.st, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNSPEC, sa_data=\"0\"}, %u)" " = %d EBADF (%m)\n", len, ret); u.sa->sa_family = AF_BLUETOOTH; - ++len; ret = connect(-1, (void *) u.st, len); - printf("connect(-1, {sa_family=AF_BLUETOOTH, sa_data=\"00\"}, %u)" + pidns_print_leader(); + printf("connect(-1, {sa_family=AF_BLUETOOTH, sa_data=\"0\"}, %u)" " = %d EBADF (%m)\n", len, ret); } int main(void) { + PIDNS_TEST_INIT; + check_un(); check_in(); check_in6(); @@ -725,6 +786,7 @@ main(void) #endif check_raw(); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-m32/net-yy-netlink.c b/tests-m32/net-yy-netlink.c index 38b1a0d4..e2c95586 100644 --- a/tests-m32/net-yy-netlink.c +++ b/tests-m32/net-yy-netlink.c @@ -3,7 +3,7 @@ * * Copyright (c) 2013-2017 Dmitry V. Levin * Copyright (c) 2016 Fabien Siron - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -21,6 +21,27 @@ #include #include +#ifndef PRINT_SOCK +# define PRINT_SOCK 2 +#endif + +#if PRINT_SOCK == 2 +# define FMT_UNBOUND "" +# define FMT_BOUND "" +# define ARG_UNBOUND inode +# define ARG_BOUND addr.nl_pid +#elif PRINT_SOCK == 1 +# define FMT_UNBOUND "" +# define FMT_BOUND "" +# define ARG_UNBOUND inode +# define ARG_BOUND inode +#else +# define FMT_UNBOUND "%s" +# define FMT_BOUND "%s" +# define ARG_UNBOUND "" +# define ARG_BOUND "" +#endif + int main(void) { @@ -37,25 +58,27 @@ main(void) const int fd = socket(AF_NETLINK, SOCK_RAW, NETLINK_SOCK_DIAG); if (fd < 0) perror_msg_and_skip("socket"); +#if PRINT_SOCK const unsigned long inode = inode_of_sockfd(fd); +#endif printf("socket(AF_NETLINK, SOCK_RAW, NETLINK_SOCK_DIAG) = " - "%d\n", fd, inode); + "%d" FMT_UNBOUND "\n", fd, ARG_UNBOUND); if (bind(fd, sa, *len)) perror_msg_and_skip("bind"); - printf("bind(%d, {sa_family=AF_NETLINK" - ", nl_pid=%u, nl_groups=00000000}, %u) = 0\n", - fd, inode, addr.nl_pid, (unsigned) *len); + printf("bind(%d" FMT_UNBOUND ", {sa_family=AF_NETLINK" + ", nl_pid=%d, nl_groups=00000000}, %u) = 0\n", + fd, ARG_UNBOUND, addr.nl_pid, (unsigned) *len); if (getsockname(fd, sa, len)) perror_msg_and_fail("getsockname"); - printf("getsockname(%d, {sa_family=AF_NETLINK" - ", nl_pid=%u, nl_groups=00000000}, [%u]) = 0\n", - fd, addr.nl_pid, addr.nl_pid, (unsigned) *len); + printf("getsockname(%d" FMT_BOUND ", {sa_family=AF_NETLINK" + ", nl_pid=%d, nl_groups=00000000}, [%u]) = 0\n", + fd, ARG_BOUND, addr.nl_pid, (unsigned) *len); if (close(fd)) perror_msg_and_fail("close"); - printf("close(%d) = 0\n", fd, addr.nl_pid); + printf("close(%d" FMT_BOUND ") = 0\n", fd, ARG_BOUND); puts("+++ exited with 0 +++"); return 0; diff --git a/tests-m32/net-yy-netlink.test b/tests-m32/net-yy-netlink.test index 892c9799..729c59a7 100755 --- a/tests-m32/net-yy-netlink.test +++ b/tests-m32/net-yy-netlink.test @@ -6,7 +6,7 @@ # Copyright (c) 2014 Masatake YAMATO # Copyright (c) 2014-2016 Dmitry V. Levin # Copyright (c) 2016 Fabien Siron -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -15,9 +15,11 @@ check_prog sed +opts="${*:--yy}" + run_prog ../netlink_netlink_diag run_prog > /dev/null -run_strace -a22 -yy -eclose,network $args > "$EXP" +run_strace -a22 ${opts} -eclose,network $args > "$EXP" # Filter out close() calls made by ld.so and libc. sed -n '/socket/,$p' < "$LOG" > "$OUT" diff --git a/tests-m32/netlink_audit--pidns-translation.c b/tests-m32/netlink_audit--pidns-translation.c new file mode 100644 index 00000000..e08f9168 --- /dev/null +++ b/tests-m32/netlink_audit--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "netlink_audit.c" diff --git a/tests-m32/netlink_audit--pidns-translation.test b/tests-m32/netlink_audit--pidns-translation.test new file mode 100755 index 00000000..1a39eadd --- /dev/null +++ b/tests-m32/netlink_audit--pidns-translation.test @@ -0,0 +1,13 @@ +#!/bin/sh +# +# Check pidns translation of NETLINK_SOCK_DIAG protocol decoding +# +# Copyright (c) 2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: LGPL-2.1-or-later + +. "${srcdir=.}/init.sh" + +run_prog ../netlink_netlink_diag +test_pidns -e trace=sendto "$@" diff --git a/tests-m32/netlink_audit.c b/tests-m32/netlink_audit.c index eba609a1..559c2f71 100644 --- a/tests-m32/netlink_audit.c +++ b/tests-m32/netlink_audit.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include "pidns.h" #include #include #include @@ -17,18 +18,23 @@ static void test_nlmsg_type(const int fd) { + PIDNS_TEST_INIT; + long rc; struct nlmsghdr nlh = { .nlmsg_len = sizeof(nlh), .nlmsg_type = AUDIT_GET, .nlmsg_flags = NLM_F_REQUEST, + .nlmsg_pid = getpid(), }; rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0); + pidns_print_leader(); printf("sendto(%d, {len=%u, type=AUDIT_GET" - ", flags=NLM_F_REQUEST, seq=0, pid=0}" + ", flags=NLM_F_REQUEST, seq=0, pid=%d%s}" ", %u, MSG_DONTWAIT, NULL, 0) = %s\n", - fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc)); + fd, nlh.nlmsg_len, nlh.nlmsg_pid, pidns_pid2str(PT_TGID), + (unsigned) sizeof(nlh), sprintrc(rc)); } int main(void) @@ -39,6 +45,7 @@ int main(void) test_nlmsg_type(fd); + pidns_print_leader(); printf("+++ exited with 0 +++\n"); return 0; diff --git a/tests-m32/netlink_protocol.c b/tests-m32/netlink_protocol.c index fd901d88..99d9eb5d 100644 --- a/tests-m32/netlink_protocol.c +++ b/tests-m32/netlink_protocol.c @@ -3,7 +3,7 @@ * * Copyright (c) 2014-2017 Dmitry V. Levin * Copyright (c) 2016 Fabien Siron - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -264,7 +264,7 @@ test_nlmsgerr(const int fd) printf("sendto(%d, {{len=%u, type=NLMSG_ERROR, flags=NLM_F_REQUEST" ", seq=0, pid=0}, {error=-EACCES" ", msg={len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x" - ", seq=%u, pid=%u}}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n", + ", seq=%u, pid=%d}}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n", fd, nlh->nlmsg_len, err->msg.nlmsg_len, NLM_F_DUMP, err->msg.nlmsg_seq, err->msg.nlmsg_pid, nlh->nlmsg_len, sprintrc(rc)); @@ -289,7 +289,7 @@ test_nlmsgerr(const int fd) printf("sendto(%d, {{len=%u, type=NLMSG_ERROR, flags=NLM_F_REQUEST" ", seq=0, pid=0}, {error=-EACCES" ", msg={{len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x" - ", seq=%u, pid=%u}, \"\\x61\\x62\\x63\\x64\"}}}" + ", seq=%u, pid=%d}, \"\\x61\\x62\\x63\\x64\"}}}" ", %u, MSG_DONTWAIT, NULL, 0) = %s\n", fd, nlh->nlmsg_len, err->msg.nlmsg_len, NLM_F_DUMP, err->msg.nlmsg_seq, err->msg.nlmsg_pid, diff --git a/tests-m32/netlink_sock_diag-v.sh b/tests-m32/netlink_sock_diag-v.sh deleted file mode 100755 index 0fb467db..00000000 --- a/tests-m32/netlink_sock_diag-v.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -# -# Check verbose decoding of NETLINK_SOCK_DIAG protocol -# -# Copyright (c) 2017-2018 The strace developers. -# All rights reserved. -# -# SPDX-License-Identifier: GPL-2.0-or-later - -. "${srcdir=.}/init.sh" - -run_prog ../netlink_netlink_diag -run_strace_match_diff -v -e trace=sendto diff --git a/tests-m32/netlink_sock_diag.test b/tests-m32/netlink_sock_diag.test index d5fb977b..f3f17ec0 100755 --- a/tests-m32/netlink_sock_diag.test +++ b/tests-m32/netlink_sock_diag.test @@ -2,7 +2,7 @@ # # Check decoding of NETLINK_SOCK_DIAG protocol # -# Copyright (c) 2017-2018 The strace developers. +# Copyright (c) 2017-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -10,4 +10,4 @@ . "${srcdir=.}/init.sh" run_prog ../netlink_netlink_diag -run_strace_match_diff -e trace=sendto +run_strace_match_diff -e trace=sendto "$@" diff --git a/tests-m32/newfstatat.c b/tests-m32/newfstatat.c index 955dce6d..805248af 100644 --- a/tests-m32/newfstatat.c +++ b/tests-m32/newfstatat.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_newfstatat diff --git a/tests-m32/newfstatat.gen.test b/tests-m32/newfstatat.gen.test index 40ec797c..9bea27f2 100755 --- a/tests-m32/newfstatat.gen.test +++ b/tests-m32/newfstatat.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (newfstatat -a32 -v -P stat.sample -P /dev/full); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (newfstatat -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a32 -v -P stat.sample -P /dev/full +run_strace_match_diff -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full diff --git a/tests-m32/nlattr.c b/tests-m32/nlattr.c index 2c5927b2..1331386f 100644 --- a/tests-m32/nlattr.c +++ b/tests-m32/nlattr.c @@ -2,7 +2,7 @@ * Check decoding of netlink attribute. * * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -105,7 +105,7 @@ test_nlattr(const int fd) nla = NLMSG_ATTR(msg, sizeof(msg->udm)); *nla = (struct nlattr) { .nla_len = NLA_HDRLEN + 4, - .nla_type = UNIX_DIAG_SHUTDOWN + 1 + .nla_type = UNIX_DIAG_FIRST_UNUSED }; memcpy(RTA_DATA(nla), "1234", 4); rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0); @@ -116,7 +116,7 @@ test_nlattr(const int fd) ", nla_type=%#x /* UNIX_DIAG_??? */}" ", \"\\x31\\x32\\x33\\x34\"}}" ", %u, MSG_DONTWAIT, NULL, 0) = %s\n", - fd, msg_len, nla->nla_len, UNIX_DIAG_SHUTDOWN + 1, + fd, msg_len, nla->nla_len, UNIX_DIAG_FIRST_UNUSED, msg_len, sprintrc(rc)); /* print one struct nlattr and fetch fail second struct nlattr */ @@ -201,7 +201,7 @@ test_nlattr(const int fd) for (i = 0; i < ABBREV_LEN; ++i) { nla[i * 2] = (struct nlattr) { .nla_len = NLA_HDRLEN * 2 - 1, - .nla_type = UNIX_DIAG_SHUTDOWN + 1 + i + .nla_type = UNIX_DIAG_FIRST_UNUSED + i }; fill_memory_ex(&nla[i * 2 + 1], NLA_HDRLEN, '0' + i, '~' - '0' - i); @@ -218,7 +218,7 @@ test_nlattr(const int fd) if (i) printf(", "); printf("{{nla_len=%u, nla_type=%#x /* UNIX_DIAG_??? */}, ", - nla->nla_len, UNIX_DIAG_SHUTDOWN + 1 + i); + nla->nla_len, UNIX_DIAG_FIRST_UNUSED + i); print_quoted_hex(&nla[i * 2 + 1], NLA_HDRLEN - 1); printf("}"); } @@ -286,7 +286,7 @@ test_nla_type(const int fd) ", %u, MSG_DONTWAIT, NULL, 0) = %s\n", fd, msg_len, nla->nla_len, msg_len, sprintrc(rc)); - nla->nla_type = NLA_F_NESTED | (UNIX_DIAG_SHUTDOWN + 1); + nla->nla_type = NLA_F_NESTED | (UNIX_DIAG_FIRST_UNUSED); rc = sendto(fd, msg, msg->nlh.nlmsg_len, MSG_DONTWAIT, NULL, 0); printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY" ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX" @@ -294,7 +294,7 @@ test_nla_type(const int fd) ", udiag_ino=0, udiag_cookie=[0, 0]}, {nla_len=%u" ", nla_type=NLA_F_NESTED|%#x /* UNIX_DIAG_??? */}}" ", %u, MSG_DONTWAIT, NULL, 0) = %s\n", - fd, msg->nlh.nlmsg_len, nla->nla_len, UNIX_DIAG_SHUTDOWN + 1, + fd, msg->nlh.nlmsg_len, nla->nla_len, UNIX_DIAG_FIRST_UNUSED, msg->nlh.nlmsg_len, sprintrc(rc)); } diff --git a/tests-m32/nlattr_crypto_user_alg.c b/tests-m32/nlattr_crypto_user_alg.c index f90c6208..2cb2b549 100644 --- a/tests-m32/nlattr_crypto_user_alg.c +++ b/tests-m32/nlattr_crypto_user_alg.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -85,7 +85,8 @@ main(void) TEST_NLATTR_OBJECT_EX(fd, nlh0, hdrlen, init_crypto_user_alg, print_crypto_user_alg, CRYPTOCFGA_REPORT_HASH, - pattern, rhash, print_quoted_memory, + pattern, rhash, sizeof(rhash), + print_quoted_memory, printf("{type=\"efgh\""); PRINT_FIELD_U(", ", rhash, blocksize); PRINT_FIELD_U(", ", rhash, digestsize); @@ -104,7 +105,8 @@ main(void) TEST_NLATTR_OBJECT_EX(fd, nlh0, hdrlen, init_crypto_user_alg, print_crypto_user_alg, CRYPTOCFGA_REPORT_BLKCIPHER, - pattern, rblkcipher, print_quoted_memory, + pattern, rblkcipher, sizeof(rblkcipher), + print_quoted_memory, printf("{type=\"abcd\", geniv=\"efgh\""); PRINT_FIELD_U(", ", rblkcipher, blocksize); PRINT_FIELD_U(", ", rblkcipher, min_keysize); @@ -124,7 +126,8 @@ main(void) TEST_NLATTR_OBJECT_EX(fd, nlh0, hdrlen, init_crypto_user_alg, print_crypto_user_alg, CRYPTOCFGA_REPORT_AEAD, - pattern, raead, print_quoted_memory, + pattern, raead, sizeof(raead), + print_quoted_memory, printf("{type=\"abcd\", geniv=\"efgh\""); PRINT_FIELD_U(", ", raead, blocksize); PRINT_FIELD_U(", ", raead, maxauthsize); @@ -140,7 +143,7 @@ main(void) TEST_NLATTR_OBJECT_EX(fd, nlh0, hdrlen, init_crypto_user_alg, print_crypto_user_alg, CRYPTOCFGA_REPORT_RNG, - pattern, rrng, print_quoted_memory, + pattern, rrng, sizeof(rrng), print_quoted_memory, printf("{type=\"abcd\""); PRINT_FIELD_U(", ", rrng, seedsize); printf("}")); @@ -156,7 +159,8 @@ main(void) TEST_NLATTR_OBJECT_EX(fd, nlh0, hdrlen, init_crypto_user_alg, print_crypto_user_alg, CRYPTOCFGA_REPORT_CIPHER, - pattern, rcipher, print_quoted_memory, + pattern, rcipher, sizeof(rcipher), + print_quoted_memory, printf("{type=\"abcd\""); PRINT_FIELD_U(", ", rcipher, blocksize); PRINT_FIELD_U(", ", rcipher, min_keysize); diff --git a/tests-m32/nlattr_ifinfomsg.c b/tests-m32/nlattr_ifinfomsg.c index a8660196..4e6df29d 100644 --- a/tests-m32/nlattr_ifinfomsg.c +++ b/tests-m32/nlattr_ifinfomsg.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -27,6 +27,8 @@ #endif #define IFLA_LINK_NETNSID 37 #define IFLA_EVENT 44 +#define IFLA_PROP_LIST 52 +#define IFLA_ALT_IFNAME 53 #ifndef IFLA_INFO_KIND # define IFLA_INFO_KIND 1 @@ -36,6 +38,8 @@ # define IFLA_VF_PORT 1 #endif +static const unsigned int hdrlen = sizeof(struct ifinfomsg); + static void init_ifinfomsg(struct nlmsghdr *const nlh, const unsigned int msg_len) { @@ -65,6 +69,27 @@ print_ifinfomsg(const unsigned int msg_len) msg_len); } +static void +init_prop_list_msg(struct nlmsghdr *const nlh, + const unsigned int msg_len) +{ + init_ifinfomsg(nlh, msg_len); + + struct nlattr *nla = NLMSG_ATTR(nlh, hdrlen); + SET_STRUCT(struct nlattr, nla, + .nla_len = msg_len - NLMSG_SPACE(hdrlen), + .nla_type = IFLA_PROP_LIST, + ); +} + +static void +print_prop_list_msg(const unsigned int msg_len) +{ + print_ifinfomsg(msg_len); + printf(", {{nla_len=%u, nla_type=IFLA_PROP_LIST}", + msg_len - NLMSG_SPACE(hdrlen)); +} + int main(void) { @@ -96,9 +121,8 @@ main(void) .tx_compressed = 0xefdadfab }; const int fd = create_nl_socket(NETLINK_ROUTE); - const unsigned int hdrlen = sizeof(struct ifinfomsg); void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), - NLA_HDRLEN + sizeof(st)); + 2 * NLA_HDRLEN + MAX(sizeof(st), 20)); static char pattern[4096]; fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1); @@ -118,40 +142,39 @@ main(void) IFLA_LINK_NETNSID, pattern, netnsid, printf("%d", netnsid)); - TEST_NLATTR_OBJECT(fd, nlh0, hdrlen, - init_ifinfomsg, print_ifinfomsg, - IFLA_STATS, pattern, st, - PRINT_FIELD_U("{", st, rx_packets); - PRINT_FIELD_U(", ", st, tx_packets); - PRINT_FIELD_U(", ", st, rx_bytes); - PRINT_FIELD_U(", ", st, tx_bytes); - PRINT_FIELD_U(", ", st, rx_errors); - PRINT_FIELD_U(", ", st, tx_errors); - PRINT_FIELD_U(", ", st, rx_dropped); - PRINT_FIELD_U(", ", st, tx_dropped); - PRINT_FIELD_U(", ", st, multicast); - PRINT_FIELD_U(", ", st, collisions); - PRINT_FIELD_U(", ", st, rx_length_errors); - PRINT_FIELD_U(", ", st, rx_over_errors); - PRINT_FIELD_U(", ", st, rx_crc_errors); - PRINT_FIELD_U(", ", st, rx_frame_errors); - PRINT_FIELD_U(", ", st, rx_fifo_errors); - PRINT_FIELD_U(", ", st, rx_missed_errors); - PRINT_FIELD_U(", ", st, tx_aborted_errors); - PRINT_FIELD_U(", ", st, tx_carrier_errors); - PRINT_FIELD_U(", ", st, tx_fifo_errors); - PRINT_FIELD_U(", ", st, tx_heartbeat_errors); - PRINT_FIELD_U(", ", st, tx_window_errors); - PRINT_FIELD_U(", ", st, rx_compressed); - PRINT_FIELD_U(", ", st, tx_compressed); + const unsigned int sizeof_stats = + offsetofend(struct rtnl_link_stats, tx_compressed); + TEST_NLATTR_OBJECT_MINSZ(fd, nlh0, hdrlen, + init_ifinfomsg, print_ifinfomsg, + IFLA_STATS, pattern, st, sizeof_stats, + PRINT_FIELD_U("{", st, rx_packets); + PRINT_FIELD_U(", ", st, tx_packets); + PRINT_FIELD_U(", ", st, rx_bytes); + PRINT_FIELD_U(", ", st, tx_bytes); + PRINT_FIELD_U(", ", st, rx_errors); + PRINT_FIELD_U(", ", st, tx_errors); + PRINT_FIELD_U(", ", st, rx_dropped); + PRINT_FIELD_U(", ", st, tx_dropped); + PRINT_FIELD_U(", ", st, multicast); + PRINT_FIELD_U(", ", st, collisions); + PRINT_FIELD_U(", ", st, rx_length_errors); + PRINT_FIELD_U(", ", st, rx_over_errors); + PRINT_FIELD_U(", ", st, rx_crc_errors); + PRINT_FIELD_U(", ", st, rx_frame_errors); + PRINT_FIELD_U(", ", st, rx_fifo_errors); + PRINT_FIELD_U(", ", st, rx_missed_errors); + PRINT_FIELD_U(", ", st, tx_aborted_errors); + PRINT_FIELD_U(", ", st, tx_carrier_errors); + PRINT_FIELD_U(", ", st, tx_fifo_errors); + PRINT_FIELD_U(", ", st, tx_heartbeat_errors); + PRINT_FIELD_U(", ", st, tx_window_errors); + PRINT_FIELD_U(", ", st, rx_compressed); + PRINT_FIELD_U(", ", st, tx_compressed); #ifdef HAVE_STRUCT_RTNL_LINK_STATS_RX_NOHANDLER - PRINT_FIELD_U(", ", st, rx_nohandler); + PRINT_FIELD_U(", ", st, rx_nohandler); #endif printf("}")); -#ifdef HAVE_STRUCT_RTNL_LINK_STATS_RX_NOHANDLER - const unsigned int sizeof_stats = - offsetofend(struct rtnl_link_stats, tx_compressed); TEST_NLATTR(fd, nlh0, hdrlen, init_ifinfomsg, print_ifinfomsg, IFLA_STATS, sizeof_stats, &st, sizeof_stats, @@ -179,7 +202,6 @@ main(void) PRINT_FIELD_U(", ", st, rx_compressed); PRINT_FIELD_U(", ", st, tx_compressed); printf("}")); -#endif /* HAVE_STRUCT_RTNL_LINK_STATS_RX_NOHANDLER */ static const struct rtnl_link_ifmap map = { .mem_start = 0xadcbefedefbcdedb, @@ -341,6 +363,33 @@ main(void) printf("%s", ifla_events[i].str)); } + /* IFLA_PROP_LIST */ + struct { + char p1[20]; + } buf; + fill_memory(&buf, sizeof(buf)); + TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen, + init_prop_list_msg, print_prop_list_msg, + IFLA_ALT_IFNAME, "IFLA_ALT_IFNAME", + pattern, buf, print_quoted_stringn, 1, + print_quoted_memory(&buf, sizeof(buf)); + printf("...")); + + /* IFLA_ALT_IFNAME */ + static const char alt_ifname[] = "OH HAI THAR\r\n\t\377\0\v\x7e"; + TEST_NLATTR(fd, nlh0, hdrlen, + init_ifinfomsg, print_ifinfomsg, + IFLA_ALT_IFNAME, + sizeof(alt_ifname), alt_ifname, sizeof(alt_ifname), + print_quoted_memory(alt_ifname, sizeof(alt_ifname) - 1)); + + TEST_NLATTR(fd, nlh0, hdrlen, + init_ifinfomsg, print_ifinfomsg, + IFLA_ALT_IFNAME, + sizeof(alt_ifname) - 1, alt_ifname, sizeof(alt_ifname) - 1, + print_quoted_memory(alt_ifname, sizeof(alt_ifname) - 1); + printf("...")); + puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-m32/nlattr_ifla_linkinfo.c b/tests-m32/nlattr_ifla_linkinfo.c index 080e7371..9c648d05 100644 --- a/tests-m32/nlattr_ifla_linkinfo.c +++ b/tests-m32/nlattr_ifla_linkinfo.c @@ -1,7 +1,7 @@ /* * IFLA_LINKINFO netlink attribute decoding check. * - * Copyright (c) 2018-2019 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -347,7 +347,6 @@ main(void) /* bridge attrs */ static const struct val_name und_br_attrs[] = { { 0, "IFLA_BR_UNSPEC" }, - { 20, "IFLA_BR_GROUP_ADDR" }, { 21, "IFLA_BR_FDB_FLUSH" }, { 40, "IFLA_BR_PAD" }, { 47, "0x2f /* IFLA_BR_??? */" }, @@ -367,6 +366,21 @@ main(void) "\\x63\\x64\\x65\\x66\"" }); } + static const struct val_name hwa_br_attrs[] = { + { 20, "IFLA_BR_GROUP_ADDR" }, + }; + + for (size_t k = 0; k < ARRAY_SIZE(hwa_br_attrs); k++) { + TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "bridge", + hwa_br_attrs[k].val, hwa_br_attrs[k].name, + unknown_msg, pattern, + { 2, "ab:ac" }, + { 4, "ab:ac:db:cd" }, + { 6, "ab:ac:db:cd:61:62" }, + { 8, "ab:ac:db:cd:61:62:63:64" }, + { 10, "ab:ac:db:cd:61:62:63:64:65:66" }); + } + static const struct val_name u64_br_attrs[] = { { 16, "IFLA_BR_HELLO_TIMER" }, { 17, "IFLA_BR_TCN_TIMER" }, diff --git a/tests-m32/nlattr_ifla_port.c b/tests-m32/nlattr_ifla_port.c index df2a2ef6..49003614 100644 --- a/tests-m32/nlattr_ifla_port.c +++ b/tests-m32/nlattr_ifla_port.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -57,6 +57,21 @@ main(void) printf(", vsi_type_id=\"\\x61\\x62\\x63\""); PRINT_FIELD_U(", ", vsi, vsi_type_version); printf("}")); + + static const struct ifla_port_vsi vsi2 = { + .vsi_mgr_id = 0xab, + .vsi_type_id = { 10, 0, 255 }, + .vsi_type_version = 0xef, + .pad = { 0, 1, 2 }, + }; + TEST_NESTED_NLATTR_OBJECT(fd, nlh0, hdrlen, + init_ifinfomsg, print_ifinfomsg, + IFLA_PORT_VSI_TYPE, pattern, vsi2, + PRINT_FIELD_U("{", vsi2, vsi_mgr_id); + printf(", vsi_type_id=\"\\x0a\\x00\\xff\""); + PRINT_FIELD_U(", ", vsi2, vsi_type_version); + printf(", pad=\"\\x00\\x01\\x02\""); + printf("}")); #endif puts("+++ exited with 0 +++"); diff --git a/tests-m32/nlattr_ifla_xdp-y.c b/tests-m32/nlattr_ifla_xdp-y.c new file mode 100644 index 00000000..791c2be9 --- /dev/null +++ b/tests-m32/nlattr_ifla_xdp-y.c @@ -0,0 +1,3 @@ +#define PRINT_SOCK 1 +#define FD9_PATH "" +#include "nlattr_ifla_xdp.c" diff --git a/tests-m32/nlattr_ifla_xdp-y.gen.test b/tests-m32/nlattr_ifla_xdp-y.gen.test new file mode 100755 index 00000000..5826766f --- /dev/null +++ b/tests-m32/nlattr_ifla_xdp-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (nlattr_ifla_xdp-y +netlink_sock_diag.test -y; exec 9 - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -17,44 +17,28 @@ #endif #include +#define XLAT_MACROS_ONLY +# include "xlat/rtnl_ifla_xdp_attrs.h" +#undef XLAT_MACROS_ONLY + #if !HAVE_DECL_IFLA_XDP enum { IFLA_XDP = 43 }; #endif -#ifndef IFLA_XDP_FD -# define IFLA_XDP_FD 1 -#endif - -#ifndef IFLA_XDP_ATTACHED -# define IFLA_XDP_ATTACHED 2 -#endif - -#ifndef IFLA_XDP_PROG_ID -# define IFLA_XDP_PROG_ID 4 -#endif - -#ifndef IFLA_XDP_DRV_PROG_ID -# define IFLA_XDP_DRV_PROG_ID 5 -#endif -#ifndef IFLA_XDP_SKB_PROG_ID -# define IFLA_XDP_SKB_PROG_ID 6 +#if !HAVE_DECL_XDP_ATTACHED_NONE +enum { XDP_ATTACHED_NONE = 0 }; #endif - -#ifndef IFLA_XDP_HW_PROG_ID -# define IFLA_XDP_HW_PROG_ID 7 -#endif - -#ifndef XDP_ATTACHED_NONE -# define XDP_ATTACHED_NONE 0 -#endif - -#ifndef XDP_ATTACHED_MULTI -# define XDP_ATTACHED_MULTI 4 +#if !HAVE_DECL_XDP_ATTACHED_MULTI +enum { XDP_ATTACHED_MULTI = 4 }; #endif #define IFLA_ATTR IFLA_XDP #include "nlattr_ifla.h" +#ifndef FD9_PATH +# define FD9_PATH "" +#endif + int main(void) { @@ -118,6 +102,18 @@ main(void) printf("%u", num)); } + /* IFLA_XDP_EXPECTED_FD */ + TEST_NESTED_NLATTR_OBJECT_EX(fd, nlh0, hdrlen, + init_ifinfomsg, print_ifinfomsg, + IFLA_XDP_EXPECTED_FD, pattern, num, 1, + printf("%d", num)); + + int exp_fd = 9; + TEST_NESTED_NLATTR_OBJECT_EX(fd, nlh0, hdrlen, + init_ifinfomsg, print_ifinfomsg, + IFLA_XDP_EXPECTED_FD, pattern, exp_fd, 1, + printf("9" FD9_PATH)); + puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-m32/nlattr_inet_diag_req_compat.c b/tests-m32/nlattr_inet_diag_req_compat.c index 8cce46cd..9956b961 100644 --- a/tests-m32/nlattr_inet_diag_req_compat.c +++ b/tests-m32/nlattr_inet_diag_req_compat.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -73,10 +73,10 @@ main(void) char nla_type_str[256]; sprintf(nla_type_str, "%#x /* INET_DIAG_REQ_??? */", - INET_DIAG_REQ_BYTECODE + 1); + INET_DIAG_REQ_PROTOCOL + 1); TEST_NLATTR_(fd, nlh0, hdrlen, init_inet_diag_req, print_inet_diag_req, - INET_DIAG_REQ_BYTECODE + 1, nla_type_str, + INET_DIAG_REQ_PROTOCOL + 1, nla_type_str, 4, pattern, 4, print_quoted_hex(pattern, 4)); diff --git a/tests-m32/nlattr_mdba_mdb_entry.c b/tests-m32/nlattr_mdba_mdb_entry.c index 7ac89ff0..e7b0c498 100644 --- a/tests-m32/nlattr_mdba_mdb_entry.c +++ b/tests-m32/nlattr_mdba_mdb_entry.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -122,9 +122,13 @@ main(void) printf(", state=MDB_TEMPORARY"); # ifdef HAVE_STRUCT_BR_MDB_ENTRY_FLAGS printf(", flags=MDB_FLAGS_OFFLOAD"); +# else + printf(", flags=0"); # endif # ifdef HAVE_STRUCT_BR_MDB_ENTRY_VID PRINT_FIELD_U(", ", entry, vid); +# else + printf(", vid=0"); # endif printf(", addr={u="); print_quoted_hex(&entry.addr.u, @@ -145,9 +149,13 @@ main(void) printf(", state=MDB_TEMPORARY"); # ifdef HAVE_STRUCT_BR_MDB_ENTRY_FLAGS printf(", flags=MDB_FLAGS_OFFLOAD"); +# else + printf(", flags=0"); # endif # ifdef HAVE_STRUCT_BR_MDB_ENTRY_VID PRINT_FIELD_U(", ", entry, vid); +# else + printf(", vid=0"); # endif printf(", addr={u="); print_quoted_hex(&entry.addr.u, sizeof(entry.addr.u)); diff --git a/tests-m32/nlattr_mdba_router_port.c b/tests-m32/nlattr_mdba_router_port.c index 7ec9992a..f954ce41 100644 --- a/tests-m32/nlattr_mdba_router_port.c +++ b/tests-m32/nlattr_mdba_router_port.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,6 +12,8 @@ # include # include "test_nlattr.h" +/* struct br_mdb_entry needs a definition of struct in6_addr. */ +# include # include # include diff --git a/tests-m32/nlattr_ndmsg.c b/tests-m32/nlattr_ndmsg.c index 2dd82ce4..8404c7a0 100644 --- a/tests-m32/nlattr_ndmsg.c +++ b/tests-m32/nlattr_ndmsg.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -99,6 +99,17 @@ main(void) NDA_PORT, pattern, port, printf("htons(%u)", ntohs(port))); + static const uint8_t mac[6] = "\xf8\xc2\x49\x13\x57\xbd"; + TEST_NLATTR(fd, nlh0, hdrlen, init_ndmsg, print_ndmsg, + NDA_LLADDR, sizeof(mac) - 1, mac, sizeof(mac) - 1, + for (unsigned int i = 0; i < sizeof(mac) - 1; ++i) + printf("%s%02x", i ? ":" : "", mac[i])); + + TEST_NLATTR(fd, nlh0, hdrlen, init_ndmsg, print_ndmsg, + NDA_LLADDR, sizeof(mac), mac, sizeof(mac), + for (unsigned int i = 0; i < sizeof(mac); ++i) + printf("%s%02x", i ? ":" : "", mac[i])); + puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-m32/nlattr_packet_diag_msg.gen.test b/tests-m32/nlattr_packet_diag_msg.gen.test index 7177ea2a..f069775f 100755 --- a/tests-m32/nlattr_packet_diag_msg.gen.test +++ b/tests-m32/nlattr_packet_diag_msg.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (nlattr_packet_diag_msg +netlink_sock_diag-v.sh ); do not edit. -set -- -. "${srcdir=.}/netlink_sock_diag-v.sh" +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (nlattr_packet_diag_msg +netlink_sock_diag.test -v); do not edit. +set -- -v +. "${srcdir=.}/netlink_sock_diag.test" diff --git a/tests-m32/nlattr_tc_stats.c b/tests-m32/nlattr_tc_stats.c index c0ebaf89..3fb4b743 100644 --- a/tests-m32/nlattr_tc_stats.c +++ b/tests-m32/nlattr_tc_stats.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -16,6 +16,10 @@ # include # include +# if !HAVE_DECL_TCA_STATS_PKT64 +enum { TCA_STATS_PKT64 = 8 }; +# endif + const unsigned int hdrlen = sizeof(struct tcmsg); static void @@ -120,6 +124,12 @@ main(void) printf("}")); # endif + static const uint64_t pkt64 = 0xdeadc0defacefeedULL; + TEST_NESTED_NLATTR_OBJECT(fd, nlh0, hdrlen, + init_tcmsg, print_tcmsg, + TCA_STATS_PKT64, pattern, pkt64, + printf("16045693111314087661")); + puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-m32/nlattr_tcamsg.c b/tests-m32/nlattr_tcamsg.c index b8bd7e35..e25e32a6 100644 --- a/tests-m32/nlattr_tcamsg.c +++ b/tests-m32/nlattr_tcamsg.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,8 +10,26 @@ #include #include "test_nlattr.h" +#include #include +#if !HAVE_DECL_TCA_ACT_PAD +enum { TCA_ACT_PAD = 5 }; +#endif +#if !HAVE_DECL_TCA_ACT_COOKIE +enum { TCA_ACT_COOKIE = 6 }; +#endif +#if !HAVE_DECL_TCA_ACT_FLAGS +enum { TCA_ACT_FLAGS = 7 }; +#endif +#if !HAVE_DECL_TCA_ACT_HW_STATS +enum { TCA_ACT_HW_STATS = 8 }; +#endif +#if !HAVE_DECL_TCA_ACT_USED_HW_STATS +enum { TCA_ACT_USED_HW_STATS = 9 }; +#endif + + static void init_tcamsg(struct nlmsghdr *const nlh, const unsigned int msg_len) { @@ -47,14 +65,72 @@ main(void) static char pattern[4096]; fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1); - const unsigned int nla_type = 0xffff & NLA_TYPE_MASK; - char nla_type_str[256]; - sprintf(nla_type_str, "%#x /* TCA_ACT_??? */", nla_type); - TEST_NLATTR_(fd, nlh0, hdrlen, - init_tcamsg, print_tcamsg, - nla_type, nla_type_str, - 4, pattern, 4, - print_quoted_hex(pattern, 4)); + /* Invalid */ + static const unsigned int nla_invalid[] = { 10, 0xffff & NLA_TYPE_MASK }; + for (size_t i = 0; i < ARRAY_SIZE(nla_invalid); i++) { + char nla_type_str[256]; + sprintf(nla_type_str, "%#x /* TCA_ACT_??? */", nla_invalid[i]); + TEST_NLATTR_(fd, nlh0, hdrlen, + init_tcamsg, print_tcamsg, + nla_invalid[i], nla_type_str, + 21, pattern, 21, + print_quoted_hex(pattern, 21)); + } + + /* Default decoder */ + static const struct { + unsigned int val; + const char *str; + } nla_default[] = { + { ARG_STR(TCA_ACT_UNSPEC) }, + { ARG_STR(TCA_ACT_OPTIONS) }, + { ARG_STR(TCA_ACT_PAD) }, + { ARG_STR(TCA_ACT_COOKIE) }, + }; + for (size_t i = 0; i < ARRAY_SIZE(nla_default); i++) { + TEST_NLATTR_(fd, nlh0, hdrlen, + init_tcamsg, print_tcamsg, + nla_default[i].val, nla_default[i].str, + 17, pattern, 17, + print_quoted_hex(pattern, 17)); + } + + /* TCA_ACT_KIND */ + TEST_NLATTR(fd, nlh0, hdrlen, init_tcamsg, print_tcamsg, + TCA_ACT_KIND, 21, pattern, 21, + print_quoted_cstring(pattern, 22)); + + static const char kind[] = "Hello\tthere"; + TEST_NLATTR(fd, nlh0, hdrlen, init_tcamsg, print_tcamsg, + TCA_ACT_KIND, sizeof(kind), kind, sizeof(kind), + print_quoted_string(kind)); + + /* TCA_ACT_INDEX */ + static uint32_t idx = 0xdeadc0de; + TEST_NLATTR(fd, nlh0, hdrlen, init_tcamsg, print_tcamsg, + TCA_ACT_INDEX, sizeof(idx), &idx, sizeof(idx), + printf("%u", idx)); + + /* TCA_ACT_FLAGS */ + static uint32_t flags = 0xfacebeef; + TEST_NLATTR(fd, nlh0, hdrlen, init_tcamsg, print_tcamsg, + TCA_ACT_FLAGS, sizeof(flags), &flags, sizeof(flags), + printf("TCA_ACT_FLAGS_NO_PERCPU_STATS|0xfacebeee")); + + /* TCA_ACT_HW_STATS, TCA_ACT_USED_HW_STATS */ + static const struct strval32 nla_hw_st[] = { + { ARG_STR(TCA_ACT_HW_STATS) }, + { ARG_STR(TCA_ACT_USED_HW_STATS) }, + }; + + static uint32_t hw_st = 0xfacebeef; + for (size_t i = 0; i < ARRAY_SIZE(nla_hw_st); i++) { + TEST_NLATTR_(fd, nlh0, hdrlen, init_tcamsg, print_tcamsg, + nla_hw_st[i].val, nla_hw_st[i].str, + sizeof(hw_st), &hw_st, sizeof(hw_st), + printf("TCA_ACT_HW_STATS_IMMEDIATE|" + "TCA_ACT_HW_STATS_DELAYED|0xfacebeec")); + } puts("+++ exited with 0 +++"); return 0; diff --git a/tests-m32/nsyscalls-d.test b/tests-m32/nsyscalls-d.test index a6495b6b..8892de87 100755 --- a/tests-m32/nsyscalls-d.test +++ b/tests-m32/nsyscalls-d.test @@ -1,8 +1,8 @@ #!/bin/sh # -# Check decoding of out-of-range syscalls along with debug ouput +# Check decoding of out-of-range syscalls along with debug output # -# Copyright (c) 2017-2018 The strace developers. +# Copyright (c) 2017-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later diff --git a/tests-m32/nsyscalls.c b/tests-m32/nsyscalls.c index 529f50ee..1eb90071 100644 --- a/tests-m32/nsyscalls.c +++ b/tests-m32/nsyscalls.c @@ -2,7 +2,7 @@ * Check decoding of out-of-range syscalls. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -14,7 +14,7 @@ #include #include #include -#include +#include "scno.h" #include "sysent_shorthand_defs.h" @@ -28,13 +28,6 @@ static const struct_sysent syscallent[] = { # define DEBUG_PRINT 0 #endif -#if defined __X32_SYSCALL_BIT && defined __NR_read \ - && (__X32_SYSCALL_BIT & __NR_read) != 0 -# define SYSCALL_BIT __X32_SYSCALL_BIT -#else -# define SYSCALL_BIT 0 -#endif - #if DEBUG_PRINT static const char *strace_name; static FILE *debug_out; diff --git a/tests-m32/old_mmap.c b/tests-m32/old_mmap.c index 92ab3efb..f095bc43 100644 --- a/tests-m32/old_mmap.c +++ b/tests-m32/old_mmap.c @@ -2,14 +2,14 @@ * Check decoding of "old mmap" edition of mmap syscall. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" /* * On s390x and m68k, this is the mmap syscall used by glibc, so, @@ -22,6 +22,7 @@ || defined __s390__ || defined __s390x__) \ && (defined PATH_TRACING || !(defined __s390x__ || defined __m68k__)) +# include # include # include # include @@ -35,8 +36,9 @@ int main(void) { long rc = syscall(__NR_mmap, 0); + const bool implemented = rc != -1 || errno != ENOSYS; # ifndef PATH_TRACING - printf("mmap(NULL) = %ld %s (%m)\n", rc, errno2name()); + printf("mmap(NULL) = %s\n", sprintrc(rc)); # endif const unsigned long args1_c[6] = { @@ -60,42 +62,51 @@ main(void) rc = syscall(__NR_mmap, args); # if XLAT_RAW - printf("mmap(%#lx, %lu, %#x, %#x, %d, %#lx) = %ld %s (%m)\n", + printf("mmap(%#lx, %lu, %#x, %#x, %d, %#lx) = %s\n", args1_c[0], args1_c[1], PROT_READ|PROT_EXEC, MAP_FILE | MAP_FIXED, - (int) args1_c[4], args1_c[5], rc, errno2name()); + (int) args1_c[4], args1_c[5], sprintrc(rc)); # elif XLAT_VERBOSE printf("mmap(%#lx, %lu, %#x /* PROT_READ|PROT_EXEC */" - ", %#x /* MAP_FILE|MAP_FIXED */, %d, %#lx) = %ld %s (%m)\n", + ", %#x /* MAP_FILE|MAP_FIXED */, %d, %#lx) = %s\n", args1_c[0], args1_c[1], PROT_READ|PROT_EXEC, MAP_FILE | MAP_FIXED, - (int) args1_c[4], args1_c[5], rc, errno2name()); + (int) args1_c[4], args1_c[5], sprintrc(rc)); # else printf("mmap(%#lx, %lu, PROT_READ|PROT_EXEC, MAP_FILE|MAP_FIXED" - ", %d, %#lx) = %ld %s (%m)\n", + ", %d, %#lx) = %s\n", args1_c[0], args1_c[1], (int) args1_c[4], args1_c[5], - rc, errno2name()); + sprintrc(rc)); # endif memcpy(args, args2_c, sizeof(args2_c)); rc = syscall(__NR_mmap, args); # ifndef PATH_TRACING + const char *errstr; + if (implemented) { + char *str; + if (asprintf(&str, "%#lx", rc) < 0) + perror_msg_and_fail("asprintf"); + errstr = str; + } else { + errstr = sprintrc(rc); + } # if XLAT_RAW - printf("mmap(NULL, %lu, %#x, %#x, %d, %#lx) = %#lx\n", + printf("mmap(NULL, %lu, %#x, %#x, %d, %#lx) = %s\n", args2_c[1], PROT_READ|PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, - (int) args2_c[4], args2_c[5], rc); + (int) args2_c[4], args2_c[5], errstr); # elif XLAT_VERBOSE printf("mmap(NULL, %lu, %#x /* PROT_READ|PROT_WRITE */" - ", %#x /* MAP_PRIVATE|MAP_ANONYMOUS */, %d, %#lx) = %#lx\n", + ", %#x /* MAP_PRIVATE|MAP_ANONYMOUS */, %d, %#lx) = %s\n", args2_c[1], PROT_READ|PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, - (int) args2_c[4], args2_c[5], rc); + (int) args2_c[4], args2_c[5], errstr); # else printf("mmap(NULL, %lu, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS" - ", %d, %#lx) = %#lx\n", - args2_c[1], (int) args2_c[4], args2_c[5], rc); + ", %d, %#lx) = %s\n", + args2_c[1], (int) args2_c[4], args2_c[5], errstr); # endif # endif void *addr = (void *) rc; - if (mprotect(addr, page_size, PROT_NONE)) + if (implemented && mprotect(addr, page_size, PROT_NONE)) perror_msg_and_fail("mprotect(%p, %lu, PROT_NONE)", addr, page_size); diff --git a/tests-m32/oldfstat.c b/tests-m32/oldfstat.c index c2624777..12f0645b 100644 --- a/tests-m32/oldfstat.c +++ b/tests-m32/oldfstat.c @@ -3,14 +3,14 @@ * * Copyright (c) 2015-2016 Dmitry V. Levin * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_oldfstat && HAVE_STRUCT___OLD_KERNEL_STAT diff --git a/tests-m32/oldlstat.c b/tests-m32/oldlstat.c index 0444b17f..d6e8f4e3 100644 --- a/tests-m32/oldlstat.c +++ b/tests-m32/oldlstat.c @@ -3,14 +3,14 @@ * * Copyright (c) 2015-2016 Dmitry V. Levin * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_oldlstat && HAVE_STRUCT___OLD_KERNEL_STAT diff --git a/tests-m32/oldselect-efault.c b/tests-m32/oldselect-efault.c index 4e927521..5c555382 100644 --- a/tests-m32/oldselect-efault.c +++ b/tests-m32/oldselect-efault.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_select && defined __NR__newselect \ && __NR_select != __NR__newselect \ diff --git a/tests-m32/oldselect.c b/tests-m32/oldselect.c index 0af35541..b6f83081 100644 --- a/tests-m32/oldselect.c +++ b/tests-m32/oldselect.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_select && defined __NR__newselect \ && __NR_select != __NR__newselect \ diff --git a/tests-m32/oldstat.c b/tests-m32/oldstat.c index 03b40335..022dd33c 100644 --- a/tests-m32/oldstat.c +++ b/tests-m32/oldstat.c @@ -3,14 +3,14 @@ * * Copyright (c) 2015-2016 Dmitry V. Levin * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_oldstat && HAVE_STRUCT___OLD_KERNEL_STAT diff --git a/tests-m32/open.c b/tests-m32/open.c index 43a3ae68..05e1fb0f 100644 --- a/tests-m32/open.c +++ b/tests-m32/open.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_open diff --git a/tests-m32/open_tree-P.c b/tests-m32/open_tree-P.c new file mode 100644 index 00000000..0097d763 --- /dev/null +++ b/tests-m32/open_tree-P.c @@ -0,0 +1,2 @@ +#define PATH_TRACING +#include "open_tree.c" diff --git a/tests-m32/open_tree-P.gen.test b/tests-m32/open_tree-P.gen.test new file mode 100755 index 00000000..73d5cdb2 --- /dev/null +++ b/tests-m32/open_tree-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (open_tree-P -a30 --decode-fds -P /dev/full -e trace=open_tree); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a30 --decode-fds -P /dev/full -e trace=open_tree diff --git a/tests-m32/open_tree.c b/tests-m32/open_tree.c new file mode 100644 index 00000000..bdce09ea --- /dev/null +++ b/tests-m32/open_tree.c @@ -0,0 +1,110 @@ +/* + * Check decoding of open_tree syscall. + * + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_open_tree + +# include +# include +# include +# include +# include + +static const char *errstr; + +static long +k_open_tree(const unsigned int dfd, + const void *fname, + const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | dfd; + const kernel_ulong_t arg2 = (uintptr_t) fname; + const kernel_ulong_t arg3 = fill | flags; + const long rc = syscall(__NR_open_tree, arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + skip_if_unavailable("/proc/self/fd/"); + + static const char path_full[] = "/dev/full"; + const char *const path = tail_memdup(path_full, sizeof(path_full)); + char *const fname = tail_alloc(PATH_MAX); + const void *const efault = fname + PATH_MAX; + const char *const empty = efault - 1; + fill_memory_ex(fname, PATH_MAX, '0', 10); + + int dfd = open(path, O_WRONLY); + if (dfd < 0) + perror_msg_and_fail("open: %s", path); + + k_open_tree(-1, 0, 1); +# ifndef PATH_TRACING + printf("open_tree(-1, NULL, %s) = %s\n", "OPEN_TREE_CLONE", errstr); +# endif + + k_open_tree(-100, fname, 0); +# ifndef PATH_TRACING + printf("open_tree(%s, \"%.*s\"..., 0) = %s\n", + "AT_FDCWD", (int) PATH_MAX - 1, fname, errstr); +# endif + + fname[PATH_MAX - 1] = '\0'; + k_open_tree(dfd, fname, 0x8000); + printf("open_tree(%d<%s>, \"%s\", %s) = %s\n", + dfd, path, fname, "AT_RECURSIVE", errstr); + +# ifdef O_CLOEXEC + k_open_tree(-1, efault, O_CLOEXEC | 1); +# ifndef PATH_TRACING + printf("open_tree(-1, %p, %s) = %s\n", + efault, "OPEN_TREE_CLONE|OPEN_TREE_CLOEXEC", errstr); +# endif + + k_open_tree(-1, empty, -1); +# ifndef PATH_TRACING + printf("open_tree(-1, \"\", %s|%#x) = %s\n", + "OPEN_TREE_CLONE|OPEN_TREE_CLOEXEC" + "|AT_SYMLINK_NOFOLLOW|AT_REMOVEDIR|AT_SYMLINK_FOLLOW" + "|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|AT_RECURSIVE", + -1U & ~0x9f01 & ~O_CLOEXEC, + errstr); +# endif +# endif /* O_CLOEXEC */ + + if (k_open_tree(-1, path, 0) < 0) + printf("open_tree(-1, \"%s\", 0) = %s\n", + path, errstr); + else + printf("open_tree(-1, \"%s\", 0) = %s<%s>\n", + path, errstr, path); + + if (k_open_tree(dfd, empty, 0x1000) < 0) + printf("open_tree(%d<%s>, \"\", %s) = %s\n", + dfd, path, "AT_EMPTY_PATH", errstr); + else + printf("open_tree(%d<%s>, \"\", %s) = %s<%s>\n", + dfd, path, "AT_EMPTY_PATH", errstr, path); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_open_tree") + +#endif diff --git a/tests-m32/open_tree.gen.test b/tests-m32/open_tree.gen.test new file mode 100755 index 00000000..535010bb --- /dev/null +++ b/tests-m32/open_tree.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (open_tree -a30 -y); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a30 -y diff --git a/tests-m32/openat.c b/tests-m32/openat.c index d4a74178..8d1bca0b 100644 --- a/tests-m32/openat.c +++ b/tests-m32/openat.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2016 Katerina Koukiou - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_openat diff --git a/tests-m32/openat2-Xabbrev.c b/tests-m32/openat2-Xabbrev.c new file mode 100644 index 00000000..ba18bde0 --- /dev/null +++ b/tests-m32/openat2-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "openat2.c" diff --git a/tests-m32/openat2-Xabbrev.gen.test b/tests-m32/openat2-Xabbrev.gen.test new file mode 100755 index 00000000..371daa37 --- /dev/null +++ b/tests-m32/openat2-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (openat2-Xabbrev --trace=openat2 -a35 -Xabbrev); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff --trace=openat2 -a35 -Xabbrev diff --git a/tests-m32/openat2-Xraw.c b/tests-m32/openat2-Xraw.c new file mode 100644 index 00000000..7a50005a --- /dev/null +++ b/tests-m32/openat2-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "openat2.c" diff --git a/tests-m32/openat2-Xraw.gen.test b/tests-m32/openat2-Xraw.gen.test new file mode 100755 index 00000000..bf5084e4 --- /dev/null +++ b/tests-m32/openat2-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (openat2-Xraw --trace=openat2 -a32 -Xraw); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff --trace=openat2 -a32 -Xraw diff --git a/tests-m32/openat2-Xverbose.c b/tests-m32/openat2-Xverbose.c new file mode 100644 index 00000000..a69ad161 --- /dev/null +++ b/tests-m32/openat2-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "openat2.c" diff --git a/tests-m32/openat2-Xverbose.gen.test b/tests-m32/openat2-Xverbose.gen.test new file mode 100755 index 00000000..946996b1 --- /dev/null +++ b/tests-m32/openat2-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (openat2-Xverbose --trace=openat2 -a35 -Xverbose); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff --trace=openat2 -a35 -Xverbose diff --git a/tests-m32/openat2-v-y-Xabbrev.c b/tests-m32/openat2-v-y-Xabbrev.c new file mode 100644 index 00000000..daceedd8 --- /dev/null +++ b/tests-m32/openat2-v-y-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "openat2-v-y.c" diff --git a/tests-m32/openat2-v-y-Xabbrev.gen.test b/tests-m32/openat2-v-y-Xabbrev.gen.test new file mode 100755 index 00000000..665be81e --- /dev/null +++ b/tests-m32/openat2-v-y-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (openat2-v-y-Xabbrev --trace=openat2 -a35 -v -y -Xabbrev " +#include "openat2-v.c" diff --git a/tests-m32/openat2-v-y.gen.test b/tests-m32/openat2-v-y.gen.test new file mode 100755 index 00000000..9e4a3940 --- /dev/null +++ b/tests-m32/openat2-v-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (openat2-v-y --trace=openat2 -a36 -v -y " +#include "openat2.c" diff --git a/tests-m32/openat2-y.gen.test b/tests-m32/openat2-y.gen.test new file mode 100755 index 00000000..5dad223c --- /dev/null +++ b/tests-m32/openat2-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (openat2-y --trace=openat2 -a36 -y +# include +# include +# include +# include +# include +# include + +# ifdef HAVE_LINUX_OPENAT2 +# include +# endif + +# ifndef HAVE_LINUX_OPENAT2 +struct open_how { + uint64_t flags; + uint64_t mode; + uint64_t resolve; +}; +# endif + +# ifndef AT_FDCWD +# define AT_FDCWD -100 +# endif +# ifndef RESOLVE_NO_XDEV +# define RESOLVE_NO_XDEV 0x01 +# endif +# ifndef RESOLVE_IN_ROOT +# define RESOLVE_IN_ROOT 0x10 +# endif + +# ifndef O_TMPFILE +# if defined __hppa__ +# define __O_TMPFILE 040000000 +# elif defined __alpha__ +# define __O_TMPFILE 0100000000 +# elif defined __sparc__ +# define __O_TMPFILE 0200000000 +# else +# define __O_TMPFILE 020000000 +# endif +# endif + +# ifndef VERBOSE +# define VERBOSE 0 +# endif +# ifndef FD0_PATH +# define FD0_PATH "" +# endif + +static const char sample[] = "openat2.sample"; + +int +main(void) +{ + long rc; + const char *rcstr; + struct open_how *how = tail_alloc(sizeof(*how)); + struct open_how *how_big = tail_alloc(sizeof(*how_big) + 8); + + rc = syscall(__NR_openat2, 0, NULL, NULL, + (kernel_ulong_t) 0xdeadc0debadc0dedULL); + printf("openat2(0" FD0_PATH ", NULL, NULL, %llu) = %s\n", + (unsigned long long) (kernel_ulong_t) 0xdeadc0debadc0dedULL, + sprintrc(rc)); + + rc = syscall(__NR_openat2, -100, "", how + 1, sizeof(*how)); + printf("openat2(%s, \"\", %p, %zu) = %s\n", + XLAT_KNOWN(-100, "AT_FDCWD"), how + 1, sizeof(*how), + sprintrc(rc)); + + rc = syscall(__NR_openat2, -1, sample, how, 11); + printf("openat2(-1, \"%s\", %p, 11) = %s\n", sample, how, sprintrc(rc)); + + static struct strval64 flags[] = { + { ARG_STR(O_RDONLY|O_EXCL) }, + { ARG_STR(O_WRONLY|O_CREAT) }, + { ARG_STR(O_RDWR|O_LARGEFILE) }, +# ifdef O_TMPFILE + { ARG_STR(O_ACCMODE|O_TMPFILE) }, +# else + { ARG_STR(O_ACCMODE|__O_TMPFILE) }, +# endif + { ARG_ULL_STR(O_RDONLY|0xdeadface80000000) }, + }; + static uint64_t modes[] = { 0, 0777, 0xbadc0dedfacebeefULL }; + static struct strval64 resolve[] = { + { 0, NULL }, + { ARG_STR(RESOLVE_NO_XDEV) }, + { ARG_ULL_STR(RESOLVE_NO_XDEV|RESOLVE_IN_ROOT|0xfeedfacedcaffee0) }, + { 0xdec0dedbeefface0, NULL }, + }; + const size_t iters = MAX(MAX(ARRAY_SIZE(flags), ARRAY_SIZE(modes)), + ARRAY_SIZE(resolve)); + + + for (size_t i = 0; i < iters * 4; i++) { + how->flags = flags[i % ARRAY_SIZE(flags)].val; + how->mode = modes[i % ARRAY_SIZE(modes)]; + how->resolve = resolve[i % ARRAY_SIZE(resolve)].val; + + fill_memory(how_big + 1, 8); + memcpy(how_big, how, sizeof(*how)); + + for (size_t j = 0; j < 4; j++) { + rc = syscall(__NR_openat2, -1, sample, + j > 1 ? how_big : how, + j ? sizeof(*how) + 8 : sizeof(*how)); + rcstr = sprintrc(rc); + printf("openat2(-1, \"%s\", {flags=%s", + sample, + sprintxlat(flags[i % ARRAY_SIZE(flags)].str, + flags[i % ARRAY_SIZE(flags)].val, + NULL)); + + if (how->mode || (i % ARRAY_SIZE(flags) == 1) + || (i % ARRAY_SIZE(flags) == 3)) { + printf(", mode=%#03" PRIo64, + modes[i % ARRAY_SIZE(modes)]); + } + + printf(", resolve=%s", + sprintxlat(resolve[i % ARRAY_SIZE(resolve)].str, + resolve[i % ARRAY_SIZE(resolve)].val, + resolve[i % ARRAY_SIZE(resolve)].val + ? "RESOLVE_???" : NULL)); + if (j == 1) + printf(", ???"); + if (j == 2) { + printf(", /* bytes %zu..%zu */ \"\\x80\\x81" + "\\x82\\x83\\x84\\x85\\x86\\x87\"", + sizeof(*how), sizeof(*how) + 7); + } + printf("}, %zu) = %s\n", + j ? sizeof(*how) + 8 : sizeof(*how), rcstr); + + if (j == 2) + memset(how_big + 1, 0, 8); + } + } + + how->flags = O_RDONLY | O_NOCTTY; + how->mode = 0; + how->resolve = 0; + rc = syscall(__NR_openat2, -100, "/dev/full", how, sizeof(*how)); + printf("openat2(%s, \"/dev/full\", {flags=%s, resolve=0}, %zu)" + " = %s%s\n", + XLAT_KNOWN(-100, "AT_FDCWD"), XLAT_STR(O_RDONLY|O_NOCTTY), + sizeof(*how), sprintrc(rc), rc >= 0 ? FD0_PATH : ""); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_openat2"); + +#endif diff --git a/tests-m32/openat2.gen.test b/tests-m32/openat2.gen.test new file mode 100755 index 00000000..5add9e5b --- /dev/null +++ b/tests-m32/openat2.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (openat2 -a35 ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a35 diff --git a/tests-m32/options-syntax.test b/tests-m32/options-syntax.test index 5e43b3ab..e9aaf30e 100755 --- a/tests-m32/options-syntax.test +++ b/tests-m32/options-syntax.test @@ -3,7 +3,7 @@ # Check strace options syntax. # # Copyright (c) 2016 Dmitry V. Levin -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -11,42 +11,212 @@ . "${srcdir=.}/syntax.sh" check_e "Invalid process id: '0'" -p 0 +check_e "Invalid process id: '0'" --attach=0 check_e "Invalid process id: '-42'" -p -42 +check_e "Invalid process id: '-42'" --attach=-42 check_e "Invalid process id: '$$.'" -p $$. +check_e "Invalid process id: '$$.'" --attach=$$. check_e "Invalid process id: 'a'" -p 1,a +check_e "Invalid process id: 'a'" --attach=1,a check_e "Syscall 'chdir' for -b isn't supported" -b chdir +check_e "Syscall 'chdir' for -b isn't supported" --detach-on=chdir check_e "Syscall 'chdir' for -b isn't supported" -b execve -b chdir +check_e "Syscall 'chdir' for -b isn't supported" --detach-on=execve --detach-on=chdir check_e_using_grep 'exec: File *name too long' "$(printf '%4096s' ' ')" ff_name="$(printf '%4084s' ' ')" check_e_using_grep "$ff_name: File *name too long" -ff -o "$ff_name" true +check_e_using_grep "$ff_name: File *name too long" -ff --output="$ff_name" true check_h 'must have PROG [ARGS] or -p PID' -check_h 'PROG [ARGS] must be specified with -D' -D -p $$ -check_h '-c and -C are mutually exclusive' -c -C true -check_h '-c and -C are mutually exclusive' -C -c true -check_h '(-c or -C) and -ff are mutually exclusive' -c -ff true -check_h '(-c or -C) and -ff are mutually exclusive' -C -ff true -check_h '-w must be given with (-c or -C)' -w true -check_h 'piping the output and -ff are mutually exclusive' -o '|' -ff true -check_h 'piping the output and -ff are mutually exclusive' -o '!' -ff true +check_h "must have PROG [ARGS] or -p PID" --absolute-timestamps +check_h "must have PROG [ARGS] or -p PID" --absolute-timestamps= +check_h "must have PROG [ARGS] or -p PID" --absolute-timestamps=, +check_h "must have PROG [ARGS] or -p PID" --absolute-timestamps=,s +check_h "must have PROG [ARGS] or -p PID" --absolute-timestamps=s, +check_h "must have PROG [ARGS] or -p PID" --absolute-timestamps=,, +check_h "must have PROG [ARGS] or -p PID" --absolute-timestamps=s,,none +check_h "must have PROG [ARGS] or -p PID" --timestamps --absolute-timestamps=ns --timestamps=none --absolute-timestamps=format:time,precision:s --timestamps=ns,format:unix --absolute-timestamps=us,precision:ms,unix,precision:ns --timestamps=format:none,time,precision:us +check_h "invalid --absolute-timestamps argument: 'ss'" --absolute-timestamps=ss +check_h "invalid --timestamps argument: 'format:s'" --timestamps=format:s +check_h "invalid --timestamps argument: 's,non'" --timestamps=s,non +check_h "invalid --timestamps argument: 'precision:none'" --timestamps=precision:none +check_e '-t and --absolute-timestamps cannot be provided simultaneously' -t --timestamps -p $$ +check_e '-t and --absolute-timestamps cannot be provided simultaneously' --absolute-timestamps -ttt -p $$ +check_e '-t and --absolute-timestamps cannot be provided simultaneously' -t --timestamps=ns -t -p $$ +check_e '-t and --absolute-timestamps cannot be provided simultaneously' --timestamps=ns -t --absolute-timestamps=unix -p $$ +check_h 'PROG [ARGS] must be specified with -D/--daemonize' -D -p $$ +check_h 'PROG [ARGS] must be specified with -D/--daemonize' -DD -p $$ +check_h 'PROG [ARGS] must be specified with -D/--daemonize' -DDD -p $$ +check_h 'PROG [ARGS] must be specified with -D/--daemonize' -DDDD -p $$ +check_h 'PROG [ARGS] must be specified with -D/--daemonize' --daemonize -p $$ +check_h 'PROG [ARGS] must be specified with -D/--daemonize' --daemonize=grandchild -p $$ +check_h 'PROG [ARGS] must be specified with -D/--daemonize' --daemonize=pgroup -p $$ +check_h 'PROG [ARGS] must be specified with -D/--daemonize' --daemonize=Pgrp -p $$ +check_h 'PROG [ARGS] must be specified with -D/--daemonize' --daemonize=SESSION -p $$ +check_h 'Too many -D'\''s (4), maximum supported -D count is 3' -DDDD /bin/true +check_e '-D and --daemonize cannot be provided simultaneously' -D --daemonize -p $$ +check_e '-D and --daemonize cannot be provided simultaneously' --daemonize -D -p $$ +check_e '-D and --daemonize cannot be provided simultaneously' --daemonize -v -D /bit/true +check_h "invalid --daemonize argument: 'pgr'" --daemonize=pgr +check_h '-c/--summary-only and -C/--summary are mutually exclusive' -c -C true +check_h '-c/--summary-only and -C/--summary are mutually exclusive' --summary-only --summary true +check_h '-c/--summary-only and -C/--summary are mutually exclusive' -C -c true +check_h '-c/--summary-only and -C/--summary are mutually exclusive' --summary --summary-only true +check_h '(-c/--summary-only or -C/--summary) and -ff/--output-separately are mutually exclusive' -c -ff true +check_h '(-c/--summary-only or -C/--summary) and -ff/--output-separately are mutually exclusive' --summary-only -ff true +check_h '(-c/--summary-only or -C/--summary) and -ff/--output-separately are mutually exclusive' -C -ff true +check_h '(-c/--summary-only or -C/--summary) and -ff/--output-separately are mutually exclusive' --summary -ff true +check_h '-w/--summary-wall-clock must be given with (-c/--summary-only or -C/--summary)' -w true +check_h '-w/--summary-wall-clock must be given with (-c/--summary-only or -C/--summary)' --summary-wall-clock true +check_h '-U/--summary-columns must be given with (-c/--summary-only or -C/--summary)' -U name,time,count,errors true +check_h '-U/--summary-columns must be given with (-c/--summary-only or -C/--summary)' --summary-columns=name,time,count,errors true +check_h 'piping the output and -ff/--output-separately are mutually exclusive' -o '|' -ff true +check_h 'piping the output and -ff/--output-separately are mutually exclusive' --output='|' -ff true +check_h 'piping the output and -ff/--output-separately are mutually exclusive' -o '!' -ff true +check_h 'piping the output and -ff/--output-separately are mutually exclusive' --output='!' -ff true check_h "invalid -a argument: '-42'" -a -42 check_h "invalid -O argument: '-42'" -O -42 check_h "invalid -s argument: '-42'" -s -42 +check_h "invalid --string-limit argument: '-42'" --string-limit=-42 check_h "invalid -s argument: '1073741824'" -s 1073741824 +check_h "invalid --string-limit argument: '1073741824'" --string-limit=1073741824 +check_h "must have PROG [ARGS] or -p PID" --follow-forks +check_h "must have PROG [ARGS] or -p PID" --follow-forks --output-separately +check_h "must have PROG [ARGS] or -p PID" -f --output-separately +check_h "must have PROG [ARGS] or -p PID" --output-separately +check_e '-f and --follow-forks cannot be provided simultaneously' -f --follow-forks -p $$ +check_e '-ff and --output-separately cannot be provided simultaneously' --output-separately -ff -p $$ +check_h "invalid -I argument: '0x1'" -I 0x1 +check_h "invalid -I argument: '0'" -I 0 +check_h "must have PROG [ARGS] or -p PID" -I1 +check_h "must have PROG [ARGS] or -p PID" -I 2 +check_h "must have PROG [ARGS] or -p PID" -I3 +check_h "must have PROG [ARGS] or -p PID" -I 4 check_h "invalid -I argument: '5'" -I 5 +check_h "must have PROG [ARGS] or -p PID" -I always +check_h "must have PROG [ARGS] or -p PID" -I anywhere +check_h "must have PROG [ARGS] or -p PID" -Iwaiting +check_h "must have PROG [ARGS] or -p PID" -I never +check_h "must have PROG [ARGS] or -p PID" -Inever_tstp +check_h "invalid -I argument: '=never'" -I=never +check_h "invalid -I argument: 'nevertheless'" -Inevertheless +check_h "invalid -I argument: 'nev'" -Inev +check_h "invalid --interruptible argument: '0x1'" --interruptible=0x1 +check_h "invalid --interruptible argument: '0'" --interruptible=0 +check_h "must have PROG [ARGS] or -p PID" --interruptible 1 +check_h "must have PROG [ARGS] or -p PID" --interruptible=2 +check_h "invalid --interruptible argument: '5'" --interruptible=5 +check_h "must have PROG [ARGS] or -p PID" --interruptible=anywhere +check_h "must have PROG [ARGS] or -p PID" --interruptible=waiting +check_h "must have PROG [ARGS] or -p PID" --interruptible=never +check_h "must have PROG [ARGS] or -p PID" --interruptible=never_tstp +check_h "invalid --interruptible argument: 'nevertheless'" --interruptible=nevertheless +check_h "invalid --interruptible argument: 'nev'" --interruptible=nev +check_h "must have PROG [ARGS] or -p PID" --relative-timestamps +check_h "must have PROG [ARGS] or -p PID" --relative-timestamps=s +check_h "must have PROG [ARGS] or -p PID" --relative-timestamps=ms +check_h "must have PROG [ARGS] or -p PID" --relative-timestamps=us +check_h "must have PROG [ARGS] or -p PID" --relative-timestamps=ns +check_h "invalid --relative-timestamps argument: 'n'" --relative-timestamps=n +check_h "invalid --relative-timestamps argument: 'ss'" --relative-timestamps=ss +check_h "must have PROG [ARGS] or -p PID" --syscall-times +check_h "must have PROG [ARGS] or -p PID" --syscall-times=s +check_h "must have PROG [ARGS] or -p PID" --syscall-times=ms +check_h "must have PROG [ARGS] or -p PID" --syscall-times=us +check_h "must have PROG [ARGS] or -p PID" --syscall-times=ns +check_h "invalid --syscall-times argument: 'n'" --syscall-times=n +check_h "invalid --syscall-times argument: 'ss'" --syscall-times=ss +check_h "must have PROG [ARGS] or -p PID" --strings-in-hex +check_h "must have PROG [ARGS] or -p PID" --strings-in-hex=all +check_h "must have PROG [ARGS] or -p PID" --strings-in-hex=non-ascii +check_h "invalid --strings-in-hex argument: 'al'" --strings-in-hex=al +check_h "invalid --strings-in-hex argument: 'alll'" --strings-in-hex=alll +check_h "invalid --strings-in-hex argument: 'ascii'" --strings-in-hex=ascii +check_h "must have PROG [ARGS] or -p PID" --quiet=all +check_h "must have PROG [ARGS] or -p PID" --quiet=none +check_h "must have PROG [ARGS] or -p PID" --quiet=\!attach +check_h "must have PROG [ARGS] or -p PID" --quiet=exit,exits,personality +check_e "invalid quiet 'detach'" --quiet=detach -p $$ +check_e "invalid quiet 'fds'" -q --quiet=fds -p $$ +check_e "invalid quiet 'detach'" --quiet=detach -p $$ +check_e '-q and -e quiet/--quiet cannot be provided simultaneously' -q --quiet -p $$ +check_e '-q and -e quiet/--quiet cannot be provided simultaneously' -q -e q=none -p $$ +check_e '-q and -e quiet/--quiet cannot be provided simultaneously' -q -e silent=attach,personality -p $$ + +check_h 'must have PROG [ARGS] or -p PID' -P . +check_h 'must have PROG [ARGS] or -p PID' -P . -P.. +check_h 'must have PROG [ARGS] or -p PID' --trace-path=. +check_h 'must have PROG [ARGS] or -p PID' --trace-path=. --trace-path .. +check_e "Requested path \"///\" resolved into \"/\" +$STRACE_EXE: Requested path \"/.\" resolved into \"/\" +$STRACE_EXE: -q and -e quiet/--quiet cannot be provided simultaneously" -q --quiet -P /// -P/. . + +for i in time time_percent time-percent time_total time-total total_time total-time min_time min-time time_min time-min shortest max_time max-time time_max time-max longest avg_time avg-time time_avg time-avg calls count error errors name syscall syscall_name syscall-name none nothing; do + check_h "must have PROG [ARGS] or -p PID" -S "$i" + check_h "must have PROG [ARGS] or -p PID" --summary-sort-by="$i" + if [ "x$i" != xnone -a "x$i" != xnothing ]; then + check_h "must have PROG [ARGS] or -p PID" -c -U "$i" + check_h "must have PROG [ARGS] or -p PID" --summary-only --summary-columns="$i" + fi +done +for i in time,time_total,avg_time,calls,errors,name time_percent,total_time,time_avg,count,error,syscall_name; do + check_h "must have PROG [ARGS] or -p PID" -c -U "$i" + check_h "must have PROG [ARGS] or -p PID" --summary-only --summary-columns="$i" +done +for i in non syscall_names; do + check_h "invalid sortby: '$i'" -S "$i" + check_h "invalid sortby: '$i'" --summary-sort-by="$i" + check_h "unknown column name: '$i'" -U "$i" + check_h "unknown column name: '$i'" --summary-columns="$i" +done +check_h "unknown column name: ''" -U time,,name +check_h "call summary column has been provided more than once: 'time_percent' (-U option residual: 'time_percent,time_total')" -U time,time_percent,time_total + +check_e '-x and --strings-in-hex cannot be provided simultaneously' -x --strings-in-hex -p $$ +check_e '-x and --strings-in-hex cannot be provided simultaneously' --strings-in-hex -p $$ -xx check_h "invalid -X argument: 'test'" -Xtest +check_h "invalid --const-print-style argument: 'test'" --const-print-style=test check_h "invalid -X argument: 'a'" -Xa +check_h "invalid --const-print-style argument: 'a'" --const-print-style=a check_h "invalid -X argument: 'abbreviated'" -X abbreviated +check_h "invalid --const-print-style argument: 'abbreviated'" --const-print-style=abbreviated +check_h "must have PROG [ARGS] or -p PID" --decode-fds +check_h "must have PROG [ARGS] or -p PID" --decode-fds=all +check_h "must have PROG [ARGS] or -p PID" --decode-fds=none +check_h "must have PROG [ARGS] or -p PID" --decode-fds=path +check_h "must have PROG [ARGS] or -p PID" --decode-fds=socket,dev +check_h "must have PROG [ARGS] or -p PID" --decode-fds=\!path +check_h "must have PROG [ARGS] or -p PID" --decode-fds=socket,path,dev +check_e "invalid decode-fds 'p'" --decode-fds=p -p $$ +check_e "invalid decode-fds 'device'" -y --decode-fds=device -p $$ +check_e "invalid decode-fds 'name'" --decode-fds=path,name -p $$ +check_e "invalid decode-fds 'sock'" -e decode-fd=sock -y -p $$ +check_e '-y and --decode-fds cannot be provided simultaneously' -y --decode-fds -p $$ +check_e '-y and --decode-fds cannot be provided simultaneously' -e decode-fd=all -yy -p $$ +check_e '-y and --decode-fds cannot be provided simultaneously' --decode-fds=none -y -p $$ check_h "incorrect personality designator '' in qualification 'getcwd@'" -e trace=getcwd@ check_h "incorrect personality designator '42' in qualification 'getcwd@42'" -e trace=getcwd@42 check_h "incorrect personality designator '42' in qualification 'getcwd@42'" -e trace=gettid,getcwd@42 check_h "incorrect personality designator '42' in qualification '23@42'" -e trace=23@42,123 +check_h '--seccomp-bpf cannot be used without -f/--follow-forks, disabling +-w/--summary-wall-clock must be given with (-c/--summary-only or -C/--summary)' --seccomp-bpf -w / +check_h '--seccomp-bpf is not enabled for processes attached with -p +-w/--summary-wall-clock must be given with (-c/--summary-only or -C/--summary)' --seccomp-bpf -f -p 1 -w + +check_h 'option -F is deprecated, please use -f/--follow-forks instead +-w/--summary-wall-clock must be given with (-c/--summary-only or -C/--summary)' -F -w / +check_h 'option -F is deprecated, please use -f/--follow-forks instead +-w/--summary-wall-clock must be given with (-c/--summary-only or -C/--summary)' -FF -w / +check_h 'deprecated option -F ignored +-w/--summary-wall-clock must be given with (-c/--summary-only or -C/--summary)' -fF -w / + check_e "invalid system call '/getcwd@ohmy'" -e trace=/getcwd@ohmy check_e "invalid -e kvm= argument: 'chdir'" -e kvm=chdir +check_e "invalid -e kvm= argument: 'chdir'" --kvm=chdir case "$STRACE_NATIVE_ARCH" in x86_64) @@ -59,7 +229,7 @@ x32) check_h "must have PROG [ARGS] or -p PID" -e trace=getcwd@32 check_h "must have PROG [ARGS] or -p PID" -e trace=getcwd@x32 ;; -aarch64|powerpc64|riscv|s390x|sparc64|tile) +aarch64|powerpc64|s390x|sparc64|tile) check_h "must have PROG [ARGS] or -p PID" -e trace=getcwd@64 check_h "must have PROG [ARGS] or -p PID" -e trace=getcwd@32 check_h "incorrect personality designator 'x32' in qualification 'getcwd@x32'" -e trace=getcwd@x32 @@ -93,21 +263,60 @@ if [ "$uid" -ge 0 ]; then if [ "$uid" -eq 0 ]; then umsg="Cannot find user ':nosuchuser:'" else - umsg='You must be root to use the -u option' + umsg='You must be root to use the -u/--username option' fi check_e "$umsg" -u :nosuchuser: true - for c in i r t T y; do - check_e "-$c has no effect with -c -$STRACE_EXE: $umsg" -u :nosuchuser: -c -$c true + for c in i/--instruction-pointer n/--syscall-number r/--relative-timestamps t/--absolute-timestamps T/--syscall-times y/--decode-fds; do + check_e "-$c has no effect with -c/--summary-only +$STRACE_EXE: $umsg" -u :nosuchuser: -c -${c%%/*} true done - check_e "-i has no effect with -c -$STRACE_EXE: -r has no effect with -c -$STRACE_EXE: -t has no effect with -c -$STRACE_EXE: -T has no effect with -c -$STRACE_EXE: -y has no effect with -c -$STRACE_EXE: $umsg" -u :nosuchuser: -cirtTy true + + check_e "-i/--instruction-pointer has no effect with -c/--summary-only +$STRACE_EXE: -n/--syscall-number has no effect with -c/--summary-only +$STRACE_EXE: -r/--relative-timestamps has no effect with -c/--summary-only +$STRACE_EXE: -t/--absolute-timestamps has no effect with -c/--summary-only +$STRACE_EXE: -T/--syscall-times has no effect with -c/--summary-only +$STRACE_EXE: -y/--decode-fds has no effect with -c/--summary-only +$STRACE_EXE: Only the last of -z/--successful-only/-Z/--failed-only options will take effect. See status qualifier for more complex filters. +$STRACE_EXE: $umsg" -u :nosuchuser: -cinrtTyzZ true + + for c in --output-separately -A/--output-append-mode; do + check_e "$c has no effect without -o/--output +$STRACE_EXE: $umsg" -u :nosuchuser: ${c%%/*} true + done + + check_e "-S/--summary-sort-by has no effect without (-c/--summary-only or -C/--summary) +$STRACE_EXE: $umsg" -u :nosuchuser: --summary-sort-by errors true + + check_e "--output-separately has no effect without -o/--output +$STRACE_EXE: -A/--output-append-mode has no effect without -o/--output +$STRACE_EXE: $umsg" -u :nosuchuser: --output-separately --output-append-mode true + + check_e "$umsg" -u :nosuchuser: -ff true + check_e "$umsg" -u :nosuchuser: --output-separately --follow-forks true + + check_e "Only the last of -z/--successful-only/-Z/--failed-only options will take effect. See status qualifier for more complex filters. +$STRACE_EXE: $umsg" -u :nosuchuser: -z --successful-only true + check_e "Only the last of -z/--successful-only/-Z/--failed-only options will take effect. See status qualifier for more complex filters. +$STRACE_EXE: $umsg" -u :nosuchuser: --successful-only -Z true + check_e "Only the last of -z/--successful-only/-Z/--failed-only options will take effect. See status qualifier for more complex filters. +$STRACE_EXE: $umsg" -u :nosuchuser: --successful-only --failed-only true + + check_e "-n/--syscall-number has no effect with -c/--summary-only +$STRACE_EXE: $umsg" --user=:nosuchuser: --syscall-number --summary-only true + + check_e "-i/--instruction-pointer has no effect with -c/--summary-only +$STRACE_EXE: $umsg" --user=:nosuchuser: --instruction-pointer --summary-only true +fi + +check_e_using_grep 'ptrace_setoptions = 0x[[:xdigit:]]+' -d / +check_e_using_grep 'ptrace_setoptions = 0x[[:xdigit:]]+' --debug / + +if [ -z "$(get_config_option ENABLE_STACKTRACE 1)" ]; then + check_e "Stack traces (-k/--stack-traces option) are not supported by this build of strace" -k + check_e "Stack traces (-k/--stack-traces option) are not supported by this build of strace" --stack-traces fi args='-p 2147483647' diff --git a/tests-m32/orphaned_process_group.c b/tests-m32/orphaned_process_group.c index 83ab6e39..13aacf36 100644 --- a/tests-m32/orphaned_process_group.c +++ b/tests-m32/orphaned_process_group.c @@ -1,7 +1,7 @@ /* * Check tracing of orphaned process group. * - * Copyright (c) 2019 The strace developers. + * Copyright (c) 2019-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -139,7 +139,7 @@ main(void) */ leader = getpid(); printf("%-5d --- %s {si_signo=%s, si_code=SI_TKILL" - ", si_pid=%d, si_uid=%u} ---\n", + ", si_pid=%d, si_uid=%d} ---\n", stopped, "SIGSTOP", "SIGSTOP", stopped, geteuid()); printf("%-5d --- stopped by SIGSTOP ---\n", stopped); printf("%-5d +++ exited with 0 +++\n", leader); diff --git a/tests-m32/osf_utimes.c b/tests-m32/osf_utimes.c index d721e394..3d864740 100644 --- a/tests-m32/osf_utimes.c +++ b/tests-m32/osf_utimes.c @@ -2,13 +2,14 @@ * Check decoding of osf_utimes syscall. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_osf_utimes diff --git a/tests-m32/pause.c b/tests-m32/pause.c index 0260a6bc..c03123b1 100644 --- a/tests-m32/pause.c +++ b/tests-m32/pause.c @@ -3,14 +3,14 @@ * * Copyright (c) 2015-2016 Dmitry V. Levin * Copyright (c) 2016 Fei Jie - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_pause diff --git a/tests-m32/pc.c b/tests-m32/pc.c index 0bc28d18..2ee0543a 100644 --- a/tests-m32/pc.c +++ b/tests-m32/pc.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2020 Dmitry V. Levin * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -27,7 +27,7 @@ int main(void) #endif /* write instruction pointer length to the log */ - assert(write(-1, NULL, 2 * sizeof(void *)) < 0); + assert(write(-1, (void *) 8UL, 2 * sizeof(void *)) < 0); /* just a noticeable line in the log */ assert(munmap(&main, 0) < 0); diff --git a/tests-m32/pc.test b/tests-m32/pc.test index 40221e57..c039d5d3 100755 --- a/tests-m32/pc.test +++ b/tests-m32/pc.test @@ -3,7 +3,7 @@ # Check -i option. # # Copyright (c) 2015 Dmitry V. Levin -# Copyright (c) 2015-2018 The strace developers. +# Copyright (c) 2015-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -14,11 +14,11 @@ check_prog sed run_prog > /dev/null -args="-if $args" +args="--quiet=attach,personality -if $args" $STRACE $args 2> "$LOG" || dump_log_and_fail_with "$STRACE $args failed" -len="$(sed -r -n 's/^\[[[:xdigit:]]+\] write\(-1, NULL, ([[:digit:]]{1,2})\)[[:space:]]+= -1 .*/\1/p' "$LOG")" && +len="$(sed -r -n 's/^\[[[:xdigit:]]+\] write\(-1, 0x8, ([[:digit:]]{1,2})\)[[:space:]]+= -1 .*/\1/p' "$LOG")" && [ -n "$len" ] && pid="$(sed -r -n 's/^\[[[:xdigit:]]{'"$len"'}\] --- SIGCHLD \{si_signo=SIGCHLD, si_code=CLD_(KILLED|DUMPED), si_pid=([[:digit:]]+), .*/\2/p' "$LOG")" && [ -n "$pid" ] && diff --git a/tests-m32/perf_event_open.c b/tests-m32/perf_event_open.c index ae38b6de..d2f5b869 100644 --- a/tests-m32/perf_event_open.c +++ b/tests-m32/perf_event_open.c @@ -2,14 +2,14 @@ * Check verbose decoding of perf_event_open syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_perf_event_open) && defined(HAVE_LINUX_PERF_EVENT_H) @@ -137,7 +137,7 @@ print_event_attr(struct perf_event_attr *attr_ptr, size_t size, STRACE_PEA_ABBREV_SIZE = offsetof(struct perf_event_attr, config) + sizeof(attr_ptr->config), - STRACE_PEA_SIZE = 112, + STRACE_PEA_SIZE = 120, }; uint32_t read_size; @@ -476,6 +476,28 @@ print_event_attr(struct perf_event_attr *attr_ptr, size_t size, goto end; } + val = ((uint16_t *) attr)[110 / sizeof(uint16_t)]; + if (val) + printf(" /* bytes 110..111: %#" PRIx16 " */", (uint16_t) val); + + if (size <= 112) { + cutoff = 112; + goto end; + } + + val = +# ifdef HAVE_STRUCT_PERF_EVENT_ATTR_AUX_SAMPLE_SIZE + attr->aux_sample_size; +# else + ((uint32_t *) attr)[112 / sizeof(uint32_t)]; +# endif + printf(", aux_sample_size=%" PRIu32, (uint32_t) val); + + if (size <= 116) { + cutoff = 116; + goto end; + } + cutoff = STRACE_PEA_SIZE; end: @@ -489,7 +511,7 @@ end: } /* These require aligned access, so no byte-grain checks possible */ -# if defined SPARC || defined SPARC64 || defined POWERPC || defined POWERPC64 +# if defined SPARC || defined SPARC64 || defined POWERPC || defined POWERPC64 || defined ARM # define ATTR_REC(sz) { tail_alloc((sz + 7) & ~7), sz } # else # define ATTR_REC(sz) { tail_alloc(sz), sz } @@ -512,7 +534,8 @@ end: "PERF_SAMPLE_BRANCH_CALL|" \ "PERF_SAMPLE_BRANCH_NO_FLAGS|" \ "PERF_SAMPLE_BRANCH_NO_CYCLES|" \ - "PERF_SAMPLE_BRANCH_TYPE_SAVE" + "PERF_SAMPLE_BRANCH_TYPE_SAVE|" \ + "PERF_SAMPLE_BRANCH_HW_INDEX" int main(void) @@ -529,7 +552,11 @@ main(void) static const size_t attr_v4_625_size = PERF_ATTR_SIZE_VER4 + 5; static const size_t attr_v4_875_size = PERF_ATTR_SIZE_VER4 + 7; static const size_t attr_v5_size = PERF_ATTR_SIZE_VER5; - static const size_t attr_big_size = PERF_ATTR_SIZE_VER5 + 32; + static const size_t attr_v5_25_size = PERF_ATTR_SIZE_VER5 + 2; + static const size_t attr_v5_5_size = PERF_ATTR_SIZE_VER5 + 4; + static const size_t attr_v5_75_size = PERF_ATTR_SIZE_VER5 + 6; + static const size_t attr_v6_size = PERF_ATTR_SIZE_VER6; + static const size_t attr_big_size = PERF_ATTR_SIZE_VER6 + 32; static const struct u64_val_str attr_types[] = { { ARG_STR(PERF_TYPE_HARDWARE) }, @@ -597,7 +624,7 @@ main(void) static const struct u64_val_str sample_types[] = { { ARG_STR(0) }, { 0x800, "PERF_SAMPLE_BRANCH_STACK" }, - { ARG_ULL_STR(0xdeadc0deda700000) " /* PERF_SAMPLE_??? */" }, + { ARG_ULL_STR(0xdeadc0deda600000) " /* PERF_SAMPLE_??? */" }, { 0xffffffffffffffffULL, "PERF_SAMPLE_IP|PERF_SAMPLE_TID|PERF_SAMPLE_TIME|" "PERF_SAMPLE_ADDR|PERF_SAMPLE_READ|" @@ -608,7 +635,8 @@ main(void) "PERF_SAMPLE_WEIGHT|PERF_SAMPLE_DATA_SRC|" "PERF_SAMPLE_IDENTIFIER|PERF_SAMPLE_TRANSACTION|" "PERF_SAMPLE_REGS_INTR|PERF_SAMPLE_PHYS_ADDR|" - "0xfffffffffff00000" }, + "PERF_SAMPLE_AUX|" + "0xffffffffffe00000" }, }; static const struct u64_val_str read_formats[] = { { ARG_STR(0) }, @@ -640,11 +668,11 @@ main(void) static const struct u64_val_str branch_sample_types[] = { { ARG_STR(0) }, { 0x80, "PERF_SAMPLE_BRANCH_ABORT_TX" }, - { 0x1ffff, BRANCH_TYPE_ALL }, + { 0x3ffff, BRANCH_TYPE_ALL }, { ARG_ULL_STR(0xdeadcaffeeec0000) " /* PERF_SAMPLE_BRANCH_??? */" }, { 0xffffffffffffffffULL, - BRANCH_TYPE_ALL "|0xfffffffffffe0000" } + BRANCH_TYPE_ALL "|0xfffffffffffc0000" } }; static const struct s32_val_str clockids[] = { { 11, "CLOCK_TAI" }, @@ -669,6 +697,10 @@ main(void) ATTR_REC(attr_v4_625_size), ATTR_REC(attr_v4_875_size), ATTR_REC(attr_v5_size), + ATTR_REC(attr_v5_25_size), + ATTR_REC(attr_v5_5_size), + ATTR_REC(attr_v5_75_size), + ATTR_REC(attr_v6_size), ATTR_REC(attr_big_size), }; @@ -776,6 +808,10 @@ main(void) ip_desc_str = precise_ip_descs[flags_data.flags.precise_ip]; # endif + if (((i % 17) == 3) && (size >= 112)) + ((uint16_t *) attr)[110 / sizeof(uint16_t)] = 0; + + if (i == 0) attr->size = size + 8; diff --git a/tests-m32/perf_event_open_nonverbose.c b/tests-m32/perf_event_open_nonverbose.c index b87cb2c6..d5a21a06 100644 --- a/tests-m32/perf_event_open_nonverbose.c +++ b/tests-m32/perf_event_open_nonverbose.c @@ -2,14 +2,14 @@ * Check decoding of perf_event_open syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_perf_event_open) && defined(HAVE_LINUX_PERF_EVENT_H) diff --git a/tests-m32/pidfd_getfd-y.c b/tests-m32/pidfd_getfd-y.c new file mode 100644 index 00000000..7e786555 --- /dev/null +++ b/tests-m32/pidfd_getfd-y.c @@ -0,0 +1,3 @@ +#define PIDFD_PATH "" +#define FD0_PATH "" +#include "pidfd_getfd.c" diff --git a/tests-m32/pidfd_getfd-y.gen.test b/tests-m32/pidfd_getfd-y.gen.test new file mode 100755 index 00000000..9aa306ed --- /dev/null +++ b/tests-m32/pidfd_getfd-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (pidfd_getfd-y --trace=pidfd_getfd -a18 -e signal=none -y >" +#include "pidfd_getfd.c" diff --git a/tests-m32/pidfd_getfd-yy.gen.test b/tests-m32/pidfd_getfd-yy.gen.test new file mode 100755 index 00000000..7c1ca019 --- /dev/null +++ b/tests-m32/pidfd_getfd-yy.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (pidfd_getfd-yy --trace=pidfd_getfd -a18 -e signal=none -yy + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_pidfd_getfd + +# include +# include +# include +# include +# include +# include + +# ifndef PIDFD_PATH +# define PIDFD_PATH "" +# endif +# ifndef FD0_PATH +# define FD0_PATH "" +# endif +# ifndef PRINT_PIDFD +# define PRINT_PIDFD 0 +# endif + +static const char *errstr; + +static long +k_pidfd_getfd(const unsigned int pidfd, const unsigned int fd, + const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | pidfd; + const kernel_ulong_t arg2 = fill | fd; + const kernel_ulong_t arg3 = fill | flags; + const long rc = syscall(__NR_pidfd_getfd, + arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + long rc; + + rc = k_pidfd_getfd(-1U, -1U, 0); + printf("pidfd_getfd(-1, -1, 0) = %s\n", errstr); + + rc = k_pidfd_getfd(0, 0, 0xbadc0ded); + printf("pidfd_getfd(0" FD0_PATH ", 0, 0xbadc0ded) = %s\n", errstr); + + int child_wait_fds[2]; + if (pipe(child_wait_fds)) + perror_msg_and_fail("pipe"); + + int dupfd = dup(0); + int pid = fork(); + if (pid == 0) { + close(0); + close(child_wait_fds[1]); + if (read(child_wait_fds[0], &child_wait_fds[1], sizeof(int))) + _exit(2); + _exit(0); + } + close(dupfd); + + int pidfd = syscall(__NR_pidfd_open, pid, 0); +# if PRINT_PIDFD + char pidfd_str[sizeof("") + 3 * sizeof(int)]; + snprintf(pidfd_str, sizeof(pidfd_str), "", pid); +# else + const char *pidfd_str = PIDFD_PATH; +# endif + rc = k_pidfd_getfd(pidfd, dupfd, 0); + printf("pidfd_getfd(%d%s, %d%s, 0) = %s%s\n", + pidfd, pidfd >= 0 ? pidfd_str : "", + dupfd, pidfd >= 0 ? FD0_PATH : "", + errstr, rc >= 0 ? FD0_PATH : ""); + + puts("+++ exited with 0 +++"); + + close(child_wait_fds[1]); + int status; + assert(wait(&status) == pid); + assert(status == 0); + + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_pidfd_getfd"); + +#endif diff --git a/tests-m32/pidfd_getfd.gen.test b/tests-m32/pidfd_getfd.gen.test new file mode 100755 index 00000000..13a08d6c --- /dev/null +++ b/tests-m32/pidfd_getfd.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (pidfd_getfd -a18 -Xverbose -e signal=none + * Copyright (c) 2019-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" +#include "pidns.h" + +#ifdef __NR_pidfd_open + +# include +# include +# ifdef PATH_TRACING +# include +# endif + +static const char *errstr; + +static long +k_pidfd_open(const unsigned int pid, const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | pid; + const kernel_ulong_t arg2 = fill | flags; + const long rc = syscall(__NR_pidfd_open, + arg1, arg2, bad, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + PIDNS_TEST_INIT; + +# if defined PATH_TRACING || defined PRINT_PATHS + skip_if_unavailable("/proc/self/fd/"); +# endif + +# ifdef PATH_TRACING + static const char path_full[] = "/dev/full"; + (void) close(0); + if (open(path_full, O_WRONLY)) + perror_msg_and_skip(path_full); +# endif + + k_pidfd_open(0, 0); +# ifndef PATH_TRACING + pidns_print_leader(); + printf("pidfd_open(0, 0) = %s\n", errstr); +# endif + + k_pidfd_open(-1U, 0); +# ifndef PATH_TRACING + pidns_print_leader(); + printf("pidfd_open(-1, 0) = %s\n", errstr); +# endif + + k_pidfd_open(0, -1U); +# ifndef PATH_TRACING + pidns_print_leader(); + printf("pidfd_open(0, %#x) = %s\n", -1U, errstr); +# endif + + const unsigned int flags = 0xfacefeed; + const int pid = getpid(); + + k_pidfd_open(pid, flags); +# ifndef PATH_TRACING + const char *pid_str = pidns_pid2str(PT_TGID); + pidns_print_leader(); + printf("pidfd_open(%d%s, %#x) = %s\n", + pid, pid_str, flags, errstr); +# endif + +# ifdef PRINT_PATHS + long rc = k_pidfd_open(pid, 0); + if (rc < 0) + perror_msg_and_skip("pidfd_open"); +# else + k_pidfd_open(pid, 0); +# endif + +# ifndef PATH_TRACING + pidns_print_leader(); + printf("pidfd_open(%d%s, 0) = " +# if defined PRINT_PIDFD + "%ld\n", pid, pid_str, rc, pid +# elif defined PRINT_PATHS + "%ld\n", pid, pid_str, rc +# else + "%s\n", pid, pid_str, errstr +# endif + ); +# endif + + pidns_print_leader(); + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_pidfd_open"); + +#endif diff --git a/tests-m32/pidfd_open.gen.test b/tests-m32/pidfd_open.gen.test new file mode 100755 index 00000000..4c240f38 --- /dev/null +++ b/tests-m32/pidfd_open.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (pidfd_open -a17 ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a17 diff --git a/tests-m32/pidfd_send_signal--pidns-translation.c b/tests-m32/pidfd_send_signal--pidns-translation.c new file mode 100644 index 00000000..b04f10f5 --- /dev/null +++ b/tests-m32/pidfd_send_signal--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "pidfd_send_signal.c" diff --git a/tests-m32/pidfd_send_signal--pidns-translation.gen.test b/tests-m32/pidfd_send_signal--pidns-translation.gen.test new file mode 100755 index 00000000..21191b00 --- /dev/null +++ b/tests-m32/pidfd_send_signal--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (pidfd_send_signal--pidns-translation test_pidns -e trace=pidfd_send_signal); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -e trace=pidfd_send_signal diff --git a/tests-m32/pidfd_send_signal.c b/tests-m32/pidfd_send_signal.c index 014e43de..a6b2d28c 100644 --- a/tests-m32/pidfd_send_signal.c +++ b/tests-m32/pidfd_send_signal.c @@ -1,7 +1,7 @@ /* * Check decoding of pidfd_send_signal syscall. * - * Copyright (c) 2015-2019 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,8 +9,8 @@ #include "tests.h" #include -#include #include "scno.h" +#include "pidns.h" #ifdef __NR_pidfd_send_signal @@ -37,6 +37,8 @@ sys_pidfd_send_signal(int pidfd, int sig, const void *info, int flags) int main(void) { + PIDNS_TEST_INIT; + static const char null_path[] = "/dev/null"; int fd = open(null_path, O_RDONLY); @@ -47,19 +49,23 @@ main(void) const void *esi = (const void *) si + 1; sys_pidfd_send_signal(fd, SIGUSR1, esi, 0); + pidns_print_leader(); printf("pidfd_send_signal(%d, SIGUSR1, %p, 0) = %s\n", fd, esi, errstr); si->si_signo = SIGUSR1; si->si_code = SI_QUEUE; + si->si_pid = getpid(); sys_pidfd_send_signal(fd, SIGUSR2, si, -1); + pidns_print_leader(); printf("pidfd_send_signal(%d, SIGUSR2, {si_signo=SIGUSR1" - ", si_code=SI_QUEUE, si_errno=%d, si_pid=%u, si_uid=%u" + ", si_code=SI_QUEUE, si_errno=%u, si_pid=%d%s, si_uid=%d" ", si_value={int=%d, ptr=%p}}, %#x) = %s\n", - fd, si->si_errno, si->si_pid, si->si_uid, si->si_int, si->si_ptr, - -1U, errstr); + fd, si->si_errno, si->si_pid, pidns_pid2str(PT_TGID), si->si_uid, + si->si_int, si->si_ptr, -1U, errstr); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-m32/pidns-cache.c b/tests-m32/pidns-cache.c new file mode 100644 index 00000000..6319a7fd --- /dev/null +++ b/tests-m32/pidns-cache.c @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" +#include "pidns.h" + +#if defined __NR_getpid && (!defined __NR_getxpid || __NR_getxpid != __NR_getpid) + +# include +# include +# include + +# define SYSCALL_COUNT 1000 + +/** + * Max ratio of the execution time with and without pidns translation. + */ +# define MAX_TIME_RATIO 20 + +static long +execute_syscalls(void) +{ + /* Load our PID in the cache */ + syscall(__NR_getpid); + + struct timeval stop, start; + gettimeofday(&start, NULL); + + for (int i = 0; i < SYSCALL_COUNT; i++) + syscall(__NR_getpid); + + gettimeofday(&stop, NULL); + + return (stop.tv_usec - start.tv_usec) + + (stop.tv_sec - start.tv_sec) * 1000000; +} + +int +main(void) +{ + long max_us = execute_syscalls() * MAX_TIME_RATIO; + + pidns_test_init(); + + long us = execute_syscalls(); + if (us > max_us) + error_msg_and_fail("pidns translation took too long: %ld us " + "(max: %ld us)", us, max_us); + + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_getpid") + +#endif diff --git a/tests-m32/pidns-cache.test b/tests-m32/pidns-cache.test new file mode 100755 index 00000000..e4df0821 --- /dev/null +++ b/tests-m32/pidns-cache.test @@ -0,0 +1,15 @@ +#!/bin/sh +# +# Test pidns translation cache. +# +# Copyright (c) 2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +check_prog timeout + +run_prog > /dev/null +run_strace --pidns-translation -f -e trace=getpid $args diff --git a/tests-m32/pidns.c b/tests-m32/pidns.c new file mode 100644 index 00000000..4fe5b223 --- /dev/null +++ b/tests-m32/pidns.c @@ -0,0 +1,237 @@ +/* + * Testing framework for PID namespace translation + * + * Copyright (c) 2020 Ákos Uzonyi + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ +#include "tests.h" +#include "pidns.h" +#include "nsfs.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifndef CLONE_NEWUSER +# define CLONE_NEWUSER 0x10000000 +#endif + +#ifndef CLONE_NEWPID +# define CLONE_NEWPID 0x20000000 +#endif + +static bool pidns_translation = false; +static bool pidns_unshared = false; + +/* Our PIDs in strace's namespace */ +static pid_t pidns_strace_ids[PT_COUNT]; + +void +pidns_print_leader(void) +{ + if (pidns_translation) + printf("%-5d ", pidns_strace_ids[PT_TID]); +} + +const char * +pidns_pid2str(enum pid_type type) +{ + static const char format[] = " /* %d in strace's PID NS */"; + static char buf[PT_COUNT][sizeof(format) + sizeof(int) * 3]; + + if (type < 0 || type >= PT_COUNT) + return ""; + + if (!pidns_unshared || !pidns_strace_ids[type]) + return ""; + + snprintf(buf[type], sizeof(buf[type]), format, pidns_strace_ids[type]); + return buf[type]; +} + +/** + * This function is like fork, but does a few more things. It sets up the + * child's PGID and SID according to the parameters. Also it fills the + * pidns_strace_ids array in the child's memory with the PIDs of the child in + * parent's PID namespace. In the parent it waits for the child to terminate + * (but leaves the zombie to use it later as a process group). If the child + * terminates with nonzero exit status, the test is failed. + * + * @param pgid The process group the child should be moved to. It's expected + * to be a PID of a zombie process (will be reaped). If + * negative, leave the child in the process group of the parent. + * If 0, move the process to its own process group. + * @param new_sid Wheather child should be moved to a new session. + */ +static pid_t +pidns_fork(pid_t pgid, bool new_sid) +{ + int strace_ids_pipe[2]; + if (pipe(strace_ids_pipe) < 0) + perror_msg_and_fail("pipe"); + + fflush(stdout); + pid_t pid = fork(); + if (pid < 0) + perror_msg_and_fail("fork"); + + if (!pid) { + close(strace_ids_pipe[1]); + + ssize_t len = read(strace_ids_pipe[0], pidns_strace_ids, + sizeof(pidns_strace_ids)); + if (len < 0) + perror_msg_and_fail("read"); + if (len != sizeof(pidns_strace_ids)) + error_msg_and_fail("read returned < sizeof(pidns_strace_ids)"); + + close(strace_ids_pipe[0]); + + if (pidns_strace_ids[PT_SID]) + setsid(); + + return 0; + } + + pidns_strace_ids[PT_TID] = pid; + pidns_strace_ids[PT_TGID] = pid; + pidns_strace_ids[PT_PGID] = 0; + pidns_strace_ids[PT_SID] = 0; + + if (!pgid) + pgid = pid; + + if (pgid > 0) { + if (setpgid(pid, pgid) < 0) + perror_msg_and_fail("setpgid"); + + pidns_strace_ids[PT_PGID] = pgid; + } + + /* Reap group leader to test PGID decoding */ + if (pgid > 0 && pgid != pid) { + int ret = waitpid(pgid, NULL, WNOHANG); + if (ret < 0) + perror_msg_and_fail("wait"); + if (!ret) + error_msg_and_fail("could not reap group leader"); + } + + if (new_sid) { + pidns_strace_ids[PT_SID] = pid; + pidns_strace_ids[PT_PGID] = pid; + } + + ssize_t len = write(strace_ids_pipe[1], pidns_strace_ids, + sizeof(pidns_strace_ids)); + if (len < 0) + perror_msg_and_fail("write"); + if (len != sizeof(pidns_strace_ids)) + error_msg_and_fail("write returned < sizeof(pidns_strace_ids)"); + + close(strace_ids_pipe[0]); + close(strace_ids_pipe[1]); + + /* WNOWAIT: leave the zombie, to be able to use it as a process group */ + siginfo_t siginfo; + if (waitid(P_PID, pid, &siginfo, WEXITED | WNOWAIT) < 0) + perror_msg_and_fail("wait"); + if (siginfo.si_code != CLD_EXITED || siginfo.si_status) + error_msg_and_fail("child terminated with nonzero exit status"); + + return pid; +} + +static void +create_init_process(void) +{ + int child_pipe[2]; + if (pipe(child_pipe) < 0) + perror_msg_and_fail("pipe"); + + pid_t pid = fork(); + if (pid < 0) + perror_msg_and_fail("fork"); + + if (!pid) { + close(child_pipe[1]); + if (read(child_pipe[0], &child_pipe[1], sizeof(int)) != 0) + _exit(1); + _exit(0); + } + + close(child_pipe[0]); +} + +void +check_ns_ioctl(void) +{ + int fd = open("/proc/self/ns/pid", O_RDONLY); + if (fd < 0) { + if (errno == ENOENT) + perror_msg_and_skip("opening /proc/self/ns/pid"); + else + perror_msg_and_fail("opening /proc/self/ns/pid"); + } + + int userns_fd = ioctl(fd, NS_GET_USERNS); + if (userns_fd < 0) { + if (errno == ENOTTY) + error_msg_and_skip("NS_* ioctl commands are not " + "supported by the kernel"); + else + perror_msg_and_fail("ioctl(NS_GET_USERNS)"); + } + + close(userns_fd); + close(fd); +} + +void +pidns_test_init(void) +{ + pidns_translation = true; + + check_ns_ioctl(); + + if (!pidns_fork(-1, false)) + return; + + /* Unshare user namespace too, so we do not need to be root */ + if (unshare(CLONE_NEWUSER | CLONE_NEWPID) < 0) { + if (errno == EPERM) + perror_msg_and_skip("unshare"); + + perror_msg_and_fail("unshare"); + } + + pidns_unshared = true; + + create_init_process(); + + if (!pidns_fork(-1, false)) + return; + + if (!pidns_fork(-1, true)) + return; + + pid_t pgid; + if (!(pgid = pidns_fork(0, false))) + return; + + if (!pidns_fork(pgid, false)) + return; + + exit(0); +} diff --git a/tests-m32/pidns.h b/tests-m32/pidns.h new file mode 100644 index 00000000..bafc0d77 --- /dev/null +++ b/tests-m32/pidns.h @@ -0,0 +1,56 @@ +/* + * Test PID namespace translation + * + * Copyright (c) 2020 Ákos Uzonyi + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ +#ifndef STRACE_PIDNS_H +# define STRACE_PIDNS_H + +# ifdef PIDNS_TRANSLATION +# define PIDNS_TEST_INIT pidns_test_init() +# else +# define PIDNS_TEST_INIT +# endif + +# include + +enum pid_type { + PT_TID, + PT_TGID, + PT_PGID, + PT_SID, + + PT_COUNT, + PT_NONE = -1 +}; + +/* Prints leader (process tid) if pidns_test_init was called */ +void pidns_print_leader(void); + +/* + * Returns a static buffer containing the translation string of our PID. + */ +const char *pidns_pid2str(enum pid_type type); + +/** + * Skips the test if NS_* ioctl commands are not supported by the kernel. + */ +void check_ns_ioctl(void); + +/** + * Init pidns testing. + * + * Should be called at the beginning of the test's main function + * + * This function calls fork a couple of times, and returns in the child + * processes. These child processes are in a new PID namespace with different + * PID configurations (group leader, session leader, ...). If any child + * terminates with nonzero exit status the test is failed. Otherwise the test is + * succesful, and the parent process exits with 0. + */ +void pidns_test_init(void); + +#endif \ No newline at end of file diff --git a/tests-m32/pipe.c b/tests-m32/pipe.c index bdfc7565..2f357114 100644 --- a/tests-m32/pipe.c +++ b/tests-m32/pipe.c @@ -2,14 +2,14 @@ * Check decoding of pipe syscall. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_pipe diff --git a/tests-m32/pipe2.c b/tests-m32/pipe2.c index d948a1c6..83a3d4c2 100644 --- a/tests-m32/pipe2.c +++ b/tests-m32/pipe2.c @@ -2,13 +2,14 @@ * Check decoding of pipe2 syscall. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_pipe2 diff --git a/tests-m32/pkey_alloc.c b/tests-m32/pkey_alloc.c index 6a92be40..a76266ca 100644 --- a/tests-m32/pkey_alloc.c +++ b/tests-m32/pkey_alloc.c @@ -2,14 +2,13 @@ * Check decoding of pkey_alloc syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_pkey_alloc diff --git a/tests-m32/pkey_free.c b/tests-m32/pkey_free.c index 7bcb3f9a..b1759e23 100644 --- a/tests-m32/pkey_free.c +++ b/tests-m32/pkey_free.c @@ -2,14 +2,13 @@ * Check decoding of pkey_free syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_pkey_free diff --git a/tests-m32/pkey_mprotect.c b/tests-m32/pkey_mprotect.c index c9c96daa..9a711a0f 100644 --- a/tests-m32/pkey_mprotect.c +++ b/tests-m32/pkey_mprotect.c @@ -2,14 +2,13 @@ * Check decoding of pkey_mprotect syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_pkey_mprotect diff --git a/tests-m32/poll-P.test b/tests-m32/poll-P.test index 8ba2d303..68121614 100755 --- a/tests-m32/poll-P.test +++ b/tests-m32/poll-P.test @@ -2,20 +2,20 @@ # # Check path tracing of poll syscall. # -# Copyright (c) 2018 The strace developers. +# Copyright (c) 2018-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" -run_prog > /dev/null +run_prog > /dev/null 9>>/dev/full run_strace -a16 -vepoll -P /dev/full 9>>/dev/full \ $args > "$EXP" match_diff "$LOG" "$EXP" for abbrev in 0 1 2 3 4 5; do - run_prog "../$NAME" $abbrev > /dev/null + run_prog "../$NAME" $abbrev > /dev/null 9>>/dev/full run_strace -a16 -epoll -s$abbrev -P /dev/full 9>>/dev/full \ $args > "$EXP" match_diff "$LOG" "$EXP" diff --git a/tests-m32/poll.c b/tests-m32/poll.c index c08bee8e..846af5a7 100644 --- a/tests-m32/poll.c +++ b/tests-m32/poll.c @@ -2,13 +2,14 @@ * Check decoding of poll syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_poll diff --git a/tests-m32/ppoll.c b/tests-m32/ppoll.c index e7a4474f..9ada526d 100644 --- a/tests-m32/ppoll.c +++ b/tests-m32/ppoll.c @@ -2,13 +2,14 @@ * Check decoding of ppoll syscall. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_ppoll diff --git a/tests-m32/prctl-arg2-intptr.c b/tests-m32/prctl-arg2-intptr.c index be894270..3a5d9113 100644 --- a/tests-m32/prctl-arg2-intptr.c +++ b/tests-m32/prctl-arg2-intptr.c @@ -4,14 +4,14 @@ * * Copyright (c) 2016 Eugene Syromyatnikov * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_prctl diff --git a/tests-m32/prctl-dumpable.c b/tests-m32/prctl-dumpable.c index 7740d52a..5c196025 100644 --- a/tests-m32/prctl-dumpable.c +++ b/tests-m32/prctl-dumpable.c @@ -3,14 +3,14 @@ * * Copyright (c) 2016 Eugene Syromyatnikov * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #include #if defined __NR_prctl && defined PR_GET_DUMPABLE && defined PR_SET_DUMPABLE \ diff --git a/tests-m32/prctl-name.c b/tests-m32/prctl-name.c index 16d85911..70cdc3e1 100644 --- a/tests-m32/prctl-name.c +++ b/tests-m32/prctl-name.c @@ -3,19 +3,16 @@ * * Copyright (c) 2016 Eugene Syromyatnikov * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include -#ifdef HAVE_PRCTL -# include -#endif - -#if defined HAVE_PRCTL && defined PR_GET_NAME && defined PR_SET_NAME +#if defined PR_GET_NAME && defined PR_SET_NAME # include # include @@ -79,6 +76,6 @@ main(void) #else -SKIP_MAIN_UNDEFINED("HAVE_PRCTL && PR_GET_NAME && PR_SET_NAME") +SKIP_MAIN_UNDEFINED("PR_GET_NAME && PR_SET_NAME") #endif diff --git a/tests-m32/prctl-no-args.c b/tests-m32/prctl-no-args.c index 8ce13d80..8f50ca2f 100644 --- a/tests-m32/prctl-no-args.c +++ b/tests-m32/prctl-no-args.c @@ -1,17 +1,18 @@ /* * Check decoding of prctl operations without arguments and return code parsing: * PR_GET_KEEPCAPS, PR_GET_SECCOMP, PR_GET_TIMERSLACK, PR_GET_TIMING, - * PR_TASK_PERF_EVENTS_DISABLE, and PR_TASK_PERF_EVENTS_ENABLE. + * PR_TASK_PERF_EVENTS_DISABLE, PR_TASK_PERF_EVENTS_ENABLE, and + * PR_GET_TAGGED_ADDR_CTRL. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_prctl @@ -36,6 +37,7 @@ main(void) { 30, "PR_GET_TIMERSLACK" }, { 31, "PR_TASK_PERF_EVENTS_DISABLE" }, { 32, "PR_TASK_PERF_EVENTS_ENABLE" }, + { 56, "PR_GET_TAGGED_ADDR_CTRL" }, }; TAIL_ALLOC_OBJECT_CONST_PTR(unsigned int, ptr); diff --git a/tests-m32/prctl-pdeathsig.c b/tests-m32/prctl-pdeathsig.c index 6ffbbad7..da79fdf0 100644 --- a/tests-m32/prctl-pdeathsig.c +++ b/tests-m32/prctl-pdeathsig.c @@ -3,21 +3,21 @@ * * Copyright (c) 2016 JingPiao Chen * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #include #if defined __NR_prctl && defined PR_GET_PDEATHSIG && defined PR_SET_PDEATHSIG # include # include -# include +# include int main(void) diff --git a/tests-m32/prctl-seccomp-filter-v.c b/tests-m32/prctl-seccomp-filter-v.c index f29cfad6..56bee2fc 100644 --- a/tests-m32/prctl-seccomp-filter-v.c +++ b/tests-m32/prctl-seccomp-filter-v.c @@ -2,7 +2,7 @@ * Check verbose decoding of prctl PR_SET_SECCOMP SECCOMP_MODE_FILTER. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -13,18 +13,14 @@ #include #include #include -#include - -#ifdef HAVE_PRCTL -# include -#endif +#include #ifdef HAVE_LINUX_SECCOMP_H # include #endif #include +#include "scno.h" -#if defined HAVE_PRCTL \ - && defined PR_SET_NO_NEW_PRIVS \ +#if defined PR_SET_NO_NEW_PRIVS \ && defined PR_SET_SECCOMP \ && defined SECCOMP_MODE_FILTER \ && defined SECCOMP_RET_ERRNO \ @@ -43,14 +39,14 @@ BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_KILL) # define PRINT_ALLOW_SYSCALL(nr) \ - printf("BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, %#x, 0, 0x1), " \ + printf("BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, %#lx, 0, 0x1), " \ "BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_ALLOW), ", \ - __NR_ ## nr) + (long) __NR_ ## nr) # define PRINT_DENY_SYSCALL(nr, err) \ - printf("BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, %#x, 0, 0x1), " \ + printf("BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, %#lx, 0, 0x1), " \ "BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_ERRNO|%#x), ", \ - __NR_ ## nr, err) + (long) __NR_ ## nr, err) static const struct sock_filter filter[] = { /* load syscall number */ @@ -117,7 +113,7 @@ main(void) #else -SKIP_MAIN_UNDEFINED("HAVE_PRCTL && PR_SET_NO_NEW_PRIVS && PR_SET_SECCOMP" +SKIP_MAIN_UNDEFINED("PR_SET_NO_NEW_PRIVS && PR_SET_SECCOMP" " && SECCOMP_MODE_FILTER && SECCOMP_RET_ERRNO" " && BPF_JUMP && BPF_STMT") diff --git a/tests-m32/prctl-seccomp-strict.c b/tests-m32/prctl-seccomp-strict.c index 0573126e..353b07ee 100644 --- a/tests-m32/prctl-seccomp-strict.c +++ b/tests-m32/prctl-seccomp-strict.c @@ -1,17 +1,16 @@ /* * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#ifdef HAVE_PRCTL -# include -#endif +#include +#include "scno.h" -#if defined HAVE_PRCTL && defined PR_SET_SECCOMP && defined __NR_exit +#if defined PR_SET_SECCOMP && defined __NR_exit # include # include @@ -36,7 +35,7 @@ main(void) rc = 0; } else { /* - * If kernel implementaton of SECCOMP_MODE_STRICT is buggy, + * If kernel implementation of SECCOMP_MODE_STRICT is buggy, * the following syscall will result to SIGKILL. */ rc = write(1, text1, LENGTH_OF(text1)) != LENGTH_OF(text1); @@ -48,6 +47,6 @@ main(void) #else -SKIP_MAIN_UNDEFINED("HAVE_PRCTL && PR_SET_SECCOMP && __NR_exit") +SKIP_MAIN_UNDEFINED("PR_SET_SECCOMP && __NR_exit") #endif diff --git a/tests-m32/prctl-securebits.c b/tests-m32/prctl-securebits.c index 5b32f5b5..8a9f1365 100644 --- a/tests-m32/prctl-securebits.c +++ b/tests-m32/prctl-securebits.c @@ -3,14 +3,14 @@ * * Copyright (c) 2016 Eugene Syromyatnikov * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #include #if defined __NR_prctl && defined PR_GET_SECUREBITS && defined PR_SET_SECUREBITS diff --git a/tests-m32/prctl-spec-inject.c b/tests-m32/prctl-spec-inject.c index 3fa2df2d..c37c4e71 100644 --- a/tests-m32/prctl-spec-inject.c +++ b/tests-m32/prctl-spec-inject.c @@ -9,7 +9,7 @@ */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_prctl diff --git a/tests-m32/prctl-tid_address.c b/tests-m32/prctl-tid_address.c index 9652f00d..14e5d395 100644 --- a/tests-m32/prctl-tid_address.c +++ b/tests-m32/prctl-tid_address.c @@ -2,14 +2,14 @@ * Check decoding of prctl PR_GET_TID_ADDRESS operation. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #include #if defined __NR_prctl && defined __NR_set_tid_address && \ diff --git a/tests-m32/prctl-tsc.c b/tests-m32/prctl-tsc.c index 0ac27ecd..20f9accd 100644 --- a/tests-m32/prctl-tsc.c +++ b/tests-m32/prctl-tsc.c @@ -3,14 +3,14 @@ * * Copyright (c) 2016 JingPiao Chen * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #include #if defined __NR_prctl && defined PR_GET_TSC && defined PR_SET_TSC diff --git a/tests-m32/preadv.c b/tests-m32/preadv.c index 3d1b504e..fcdac2e5 100644 --- a/tests-m32/preadv.c +++ b/tests-m32/preadv.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2014-2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -74,12 +74,7 @@ main(void) perror_msg_and_fail("preadv"); printf("preadv(0, [], 0, -3) = -1 EINVAL (%m)\n"); - static const char tmp[] = "preadv-tmpfile"; - int fd = open(tmp, O_RDWR | O_CREAT | O_TRUNC, 0600); - if (fd < 0) - perror_msg_and_fail("open"); - if (unlink(tmp)) - perror_msg_and_fail("unlink"); + int fd = create_tmpfile(O_RDWR); static const char w[] = "0123456789abcde"; if (write(fd, w, LENGTH_OF(w)) != LENGTH_OF(w)) diff --git a/tests-m32/preadv2-pwritev2.c b/tests-m32/preadv2-pwritev2.c index 1266562e..d6be10a8 100644 --- a/tests-m32/preadv2-pwritev2.c +++ b/tests-m32/preadv2-pwritev2.c @@ -9,7 +9,6 @@ */ #include "tests.h" -#include #include "scno.h" #if defined __NR_preadv2 && defined __NR_pwritev2 diff --git a/tests-m32/print_ppid_tracerpid.c b/tests-m32/print_ppid_tracerpid.c new file mode 100644 index 00000000..ae55371e --- /dev/null +++ b/tests-m32/print_ppid_tracerpid.c @@ -0,0 +1,42 @@ +/* + * Helper program for strace-D.test + * + * Copyright (c) 2019-2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include +#include +#include + +int +main(void) +{ + static const char status[] = "/proc/self/status"; + FILE *fp = fopen(status, "r"); + if (!fp) + perror_msg_and_fail("fopen: %s", status); + + static const char prefix1[] = "PPid:"; + static const char prefix2[] = "TracerPid:"; + char *line = NULL; + size_t n = 0; + + while (getline(&line, &n, fp) > 0) { + if (strncmp(line, prefix1, sizeof(prefix1) - 1) == 0 || + strncmp(line, prefix2, sizeof(prefix2) - 1) == 0) + fputs(line, stdout); + } + + if (!line) + perror_msg_and_fail("getline"); + + free(line); + fclose(fp); + + return 0; +} diff --git a/tests-m32/printflags.c b/tests-m32/printflags.c index e9d66471..8793dfe0 100644 --- a/tests-m32/printflags.c +++ b/tests-m32/printflags.c @@ -17,21 +17,26 @@ int printflags(const struct xlat *xlat, unsigned long long flags, const char *const dflt) { - if (flags == 0 && xlat->val == 0 && xlat->str) { - fputs(xlat->str, stdout); + if (flags == 0 && xlat->data->val == 0 && xlat->data->str) { + fputs(xlat->data->str, stdout); return 1; } int n; + size_t i = 0; char sep = 0; - for (n = 0; xlat->str; xlat++) { - if (xlat->val && (flags & xlat->val) == xlat->val) { + const struct xlat_data *xd = xlat->data; + for (n = 0; i < xlat->size; xd++, i++) { + if (!xd->str) + continue; + + if (xd->val && (flags & xd->val) == xd->val) { if (sep) putc(sep, stdout); else sep = '|'; - fputs(xlat->str, stdout); - flags &= ~xlat->val; + fputs(xd->str, stdout); + flags &= ~xd->val; n++; } } diff --git a/tests-m32/printpath-umovestr-undumpable.c b/tests-m32/printpath-umovestr-undumpable.c index 216b6cac..6dd36230 100644 --- a/tests-m32/printpath-umovestr-undumpable.c +++ b/tests-m32/printpath-umovestr-undumpable.c @@ -1,19 +1,16 @@ /* * Force legacy printpath/umovestr using PR_SET_DUMPABLE. * - * Copyright (c) 2017-2018 Dmitry V. Levin + * Copyright (c) 2017-2020 Dmitry V. Levin * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include -#ifdef HAVE_PRCTL -# include -#endif - -#if defined HAVE_PRCTL && defined PR_SET_DUMPABLE +#ifdef PR_SET_DUMPABLE # include # include @@ -46,6 +43,6 @@ main(void) #else -SKIP_MAIN_UNDEFINED("HAVE_PRCTL && PR_SET_DUMPABLE") +SKIP_MAIN_UNDEFINED("PR_SET_DUMPABLE") #endif diff --git a/tests-m32/printstrn-umoven-undumpable.c b/tests-m32/printstrn-umoven-undumpable.c index be3f8d4b..d0600a2e 100644 --- a/tests-m32/printstrn-umoven-undumpable.c +++ b/tests-m32/printstrn-umoven-undumpable.c @@ -1,19 +1,16 @@ /* * Force legacy printpath/umovestr using PR_SET_DUMPABLE. * - * Copyright (c) 2017-2018 Dmitry V. Levin + * Copyright (c) 2017-2020 Dmitry V. Levin * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include -#ifdef HAVE_PRCTL -# include -#endif - -#if defined HAVE_PRCTL && defined PR_SET_DUMPABLE +#ifdef PR_SET_DUMPABLE # include # include @@ -46,6 +43,6 @@ main(void) #else -SKIP_MAIN_UNDEFINED("HAVE_PRCTL && PR_SET_DUMPABLE") +SKIP_MAIN_UNDEFINED("PR_SET_DUMPABLE") #endif diff --git a/tests-m32/printxval-Xabbrev.c b/tests-m32/printxval-Xabbrev.c new file mode 100644 index 00000000..902a386e --- /dev/null +++ b/tests-m32/printxval-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_NAME(s_) s_##_abbrev +#include "printxval.c" diff --git a/tests-m32/printxval-Xraw.c b/tests-m32/printxval-Xraw.c new file mode 100644 index 00000000..eb92a713 --- /dev/null +++ b/tests-m32/printxval-Xraw.c @@ -0,0 +1,3 @@ +#define XLAT_RAW 1 +#define XLAT_NAME(s_) s_##_raw +#include "printxval.c" diff --git a/tests-m32/printxval-Xverbose.c b/tests-m32/printxval-Xverbose.c new file mode 100644 index 00000000..f97529ed --- /dev/null +++ b/tests-m32/printxval-Xverbose.c @@ -0,0 +1,3 @@ +#define XLAT_VERBOSE 1 +#define XLAT_NAME(s_) s_##_verbose +#include "printxval.c" diff --git a/tests-m32/printxval.c b/tests-m32/printxval.c index 0cd629e4..19714570 100644 --- a/tests-m32/printxval.c +++ b/tests-m32/printxval.c @@ -4,6 +4,7 @@ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey * Copyright (c) 1996-1999 Wichert Akkerman * Copyright (c) 2005-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -13,19 +14,87 @@ #include "xlat.h" #include -int -printxval(const struct xlat *xlat, unsigned long long val, - const char *const dflt) +#if !XLAT_RAW +static const char * +lookup_xlat(const struct xlat *xlat, unsigned long long val) { - for (; xlat->str; xlat++) { - if (xlat->val == val) { - fputs(xlat->str, stdout); - return 1; + const struct xlat_data *xd = xlat->data; + + for (size_t i = 0; i < xlat->size; i++, xd++) { + if (!xd->str) + continue; + + if (xd->val == val) { + return xd->str; } } + return NULL; +} +#endif + +int +XLAT_NAME(printxval)(const struct xlat *xlat, unsigned long long val, + const char *const dflt) +{ +#if XLAT_RAW printf("%#llx", val); + + return 1; +#else + const char *str = lookup_xlat(xlat, val); + +# if XLAT_VERBOSE + printf("%#llx", val); + if (str || dflt) + printf(" /* %s */", str ?: dflt); +# else + if (str) { + fputs(str, stdout); + } else { + printf("%#llx", val); + if (dflt) + printf(" /* %s */", dflt); + } +# endif /* XLAT_VERBOSE */ + + return !!str; +#endif /* XLAT_RAW */ +} + +const char * +XLAT_NAME(sprintxlat)(const char *str, unsigned long long val, + const char *const dflt) +{ + static char buf[256]; + +#if XLAT_RAW + snprintf(buf, sizeof(buf), "%#llx", val); +#elif XLAT_VERBOSE + if (str || dflt) + snprintf(buf, sizeof(buf), "%#llx /* %s */", val, str ?: dflt); + else + snprintf(buf, sizeof(buf), "%#llx", val); +#else + if (str) + return str; + if (dflt) - printf(" /* %s */", dflt); - return 0; + snprintf(buf, sizeof(buf), "%#llx /* %s */", val, dflt); + else + snprintf(buf, sizeof(buf), "%#llx", val); +#endif + + return buf; +} + +const char * +XLAT_NAME(sprintxval)(const struct xlat *xlat, unsigned long long val, + const char *const dflt) +{ +#if XLAT_RAW + return sprintxlat(NULL, val, dflt); +#else + return sprintxlat(lookup_xlat(xlat, val), val, dflt); +#endif } diff --git a/tests-m32/prlimit64--pidns-translation.c b/tests-m32/prlimit64--pidns-translation.c new file mode 100644 index 00000000..3972de66 --- /dev/null +++ b/tests-m32/prlimit64--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "prlimit64.c" diff --git a/tests-m32/prlimit64--pidns-translation.gen.test b/tests-m32/prlimit64--pidns-translation.gen.test new file mode 100755 index 00000000..221f3c01 --- /dev/null +++ b/tests-m32/prlimit64--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (prlimit64--pidns-translation test_pidns -e trace=prlimit64); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -e trace=prlimit64 diff --git a/tests-m32/prlimit64.c b/tests-m32/prlimit64.c index 688ca75f..eb2e9631 100644 --- a/tests-m32/prlimit64.c +++ b/tests-m32/prlimit64.c @@ -2,13 +2,14 @@ * Check decoding of prlimit64 syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_prlimit64 @@ -18,6 +19,7 @@ # include # include +# include "pidns.h" # include "xlat.h" # include "xlat/resources.h" @@ -41,26 +43,38 @@ sprint_rlim(uint64_t lim) int main(void) { + PIDNS_TEST_INIT; + unsigned long pid = (unsigned long) 0xdefaced00000000ULL | (unsigned) getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); uint64_t *const rlimit = tail_alloc(sizeof(*rlimit) * 2); - const struct xlat *xlat; + const struct xlat_data *xlat; + size_t i = 0; + + for (xlat = resources->data; i < resources->size; ++xlat, ++i) { + if (!xlat->str) + continue; - for (xlat = resources; xlat->str; ++xlat) { unsigned long res = 0xfacefeed00000000ULL | xlat->val; long rc = syscall(__NR_prlimit64, pid, res, 0, rlimit); + pidns_print_leader(); if (rc) - printf("prlimit64(%d, %s, NULL, %p) = %ld %s (%m)\n", - (unsigned) pid, xlat->str, rlimit, + printf("prlimit64(%d%s, %s, NULL, %p) =" + " %ld %s (%m)\n", + (unsigned) pid, pid_str, + xlat->str, rlimit, rc, errno2name()); else - printf("prlimit64(%d, %s, NULL" + printf("prlimit64(%d%s, %s, NULL" ", {rlim_cur=%s, rlim_max=%s}) = 0\n", - (unsigned) pid, xlat->str, + (unsigned) pid, pid_str, + xlat->str, sprint_rlim(rlimit[0]), sprint_rlim(rlimit[1])); } + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-m32/process_vm_readv--pidns-translation.c b/tests-m32/process_vm_readv--pidns-translation.c new file mode 100644 index 00000000..0db29ca2 --- /dev/null +++ b/tests-m32/process_vm_readv--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "process_vm_readv.c" diff --git a/tests-m32/process_vm_readv--pidns-translation.gen.test b/tests-m32/process_vm_readv--pidns-translation.gen.test new file mode 100755 index 00000000..f8fc9441 --- /dev/null +++ b/tests-m32/process_vm_readv--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (process_vm_readv--pidns-translation test_pidns -s5 -a37 -e trace=process_vm_readv); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -s5 -a37 -e trace=process_vm_readv diff --git a/tests-m32/process_vm_readv.c b/tests-m32/process_vm_readv.c index 422000b8..b69551d0 100644 --- a/tests-m32/process_vm_readv.c +++ b/tests-m32/process_vm_readv.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -7,7 +7,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_process_vm_readv diff --git a/tests-m32/process_vm_readv_writev.c b/tests-m32/process_vm_readv_writev.c index 9309135a..343bd362 100644 --- a/tests-m32/process_vm_readv_writev.c +++ b/tests-m32/process_vm_readv_writev.c @@ -2,7 +2,7 @@ * Check decoding of process_vm_readv/process_vm_writev syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,6 +12,7 @@ #include #include #include +#include "pidns.h" #if OP_WR # define in_iovec rmt_iovec @@ -121,7 +122,7 @@ print_iov(const struct iovec *iov, const void *arg_ptr, long rc) } static void -do_call(kernel_ulong_t pid, +do_call(kernel_ulong_t pid, enum pid_type pid_type, kernel_ulong_t local_iov, const char *local_arg, kernel_ulong_t liovcnt, kernel_ulong_t remote_iov, const char *remote_arg, @@ -135,7 +136,8 @@ do_call(kernel_ulong_t pid, flags); errstr = sprintrc(rc); - printf("%s(%d, ", OP_STR, (int) pid); + pidns_print_leader(); + printf("%s(%d%s, ", OP_STR, (int) pid, pidns_pid2str(pid_type)); if (pr_iov) pr_iov((const struct iovec *) (uintptr_t) local_iov, local_arg, @@ -164,6 +166,8 @@ ptr_cast(void *ptr) int main(void) { + PIDNS_TEST_INIT; + enum { SIZE_11 = 2, SIZE_12 = 3, @@ -243,18 +247,18 @@ main(void) fill_memory_ex(data2_out, SIZE_2, SEGM2_BASE, SIZE_2); - do_call(bogus_pid, (kernel_ulong_t) (uintptr_t) ARG_STR(NULL), + do_call(bogus_pid, PT_NONE, (kernel_ulong_t) (uintptr_t) ARG_STR(NULL), bogus_iovcnt1, (kernel_ulong_t) (uintptr_t) ARG_STR(NULL), bogus_iovcnt2, bogus_flags, NULL); - do_call(my_pid, ptr_cast(bogus_iov + ARRAY_SIZE(bogus_iovec)), + do_call(my_pid, PT_TGID, ptr_cast(bogus_iov + ARRAY_SIZE(bogus_iovec)), "[]", 0, ptr_cast(in_iov + ARRAY_SIZE(in_iovec)), "[]", 0, 0, NULL); - do_call(my_pid, ptr_cast(bogus_iov + ARRAY_SIZE(bogus_iovec)), NULL, - bogus_iovcnt1, ptr_cast(in_iov + ARRAY_SIZE(in_iovec)), NULL, - bogus_iovcnt2, 0, print_iov); + do_call(my_pid, PT_TGID, ptr_cast(bogus_iov + ARRAY_SIZE(bogus_iovec)), + NULL, bogus_iovcnt1, ptr_cast(in_iov + ARRAY_SIZE(in_iovec)), + NULL, bogus_iovcnt2, 0, print_iov); - do_call(my_pid, ptr_cast(bogus_iov), (char *) &bogus_arg, + do_call(my_pid, PT_TGID, ptr_cast(bogus_iov), (char *) &bogus_arg, ARRAY_SIZE(bogus_iovec), ptr_cast(rmt_iov + 2), (char *) &rmt_arg_cut, ARRAY_SIZE(rmt_iovec) - 2, 0, print_iov); @@ -263,7 +267,7 @@ main(void) lcl_arg_cut.check_rc = 1; #endif - do_call(my_pid, ptr_cast(lcl_iov + 2), (char *) &lcl_arg_cut, + do_call(my_pid, PT_TGID, ptr_cast(lcl_iov + 2), (char *) &lcl_arg_cut, ARRAY_SIZE(lcl_iovec) - 1, ptr_cast(bogus_iov + 2), (char *) &bogus_arg_cut, ARRAY_SIZE(bogus_iovec) - 1, 0, print_iov); @@ -273,15 +277,16 @@ main(void) rmt_arg_cut.addr_term = 1; rmt_arg_cut.count = 5; - do_call(my_pid, ptr_cast(lcl_iov + 2), (char *) &lcl_arg_cut, + do_call(my_pid, PT_TGID, ptr_cast(lcl_iov + 2), (char *) &lcl_arg_cut, ARRAY_SIZE(lcl_iovec) - 2, ptr_cast(rmt_iov + 1), (char *) &rmt_arg_cut, ARRAY_SIZE(rmt_iovec), 0, print_iov); /* Correct call */ - do_call(my_pid, ptr_cast(lcl_iov), (char *) &lcl_arg, + do_call(my_pid, PT_TGID, ptr_cast(lcl_iov), (char *) &lcl_arg, ARRAY_SIZE(lcl_iovec), ptr_cast(rmt_iov), (char *) &rmt_arg, ARRAY_SIZE(rmt_iovec), 0, print_iov); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; diff --git a/tests-m32/process_vm_writev--pidns-translation.c b/tests-m32/process_vm_writev--pidns-translation.c new file mode 100644 index 00000000..9ba6a39b --- /dev/null +++ b/tests-m32/process_vm_writev--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "process_vm_writev.c" diff --git a/tests-m32/process_vm_writev--pidns-translation.gen.test b/tests-m32/process_vm_writev--pidns-translation.gen.test new file mode 100755 index 00000000..79d705c2 --- /dev/null +++ b/tests-m32/process_vm_writev--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (process_vm_writev--pidns-translation test_pidns -s5 -a38 -e trace=process_vm_writev); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -s5 -a38 -e trace=process_vm_writev diff --git a/tests-m32/process_vm_writev.c b/tests-m32/process_vm_writev.c index 848a9e91..e7476b79 100644 --- a/tests-m32/process_vm_writev.c +++ b/tests-m32/process_vm_writev.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -7,7 +7,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_process_vm_writev diff --git a/tests-m32/pselect6.c b/tests-m32/pselect6.c index c8122e27..5660df2b 100644 --- a/tests-m32/pselect6.c +++ b/tests-m32/pselect6.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -16,7 +16,7 @@ #include #include #include -#include +#include "scno.h" #include #ifdef __NR_pselect6 diff --git a/tests-m32/ptrace.c b/tests-m32/ptrace.c index 63435a76..38e7037a 100644 --- a/tests-m32/ptrace.c +++ b/tests-m32/ptrace.c @@ -2,14 +2,14 @@ * Check decoding of ptrace syscall. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #include #include "ptrace.h" @@ -127,16 +127,16 @@ test_peeksiginfo(unsigned long pid, const unsigned long bad_request) printf("ptrace(PTRACE_PEEKSIGINFO, %u" ", {off=%llu, flags=0, nr=%u}" ", [{si_signo=SIGUSR1, si_code=SI_TKILL" - ", si_pid=%u, si_uid=%u}" + ", si_pid=%d, si_uid=%d}" ", {si_signo=SIGUSR2, si_code=SI_TKILL" - ", si_pid=%u, si_uid=%u}" + ", si_pid=%d, si_uid=%d}" ", {si_signo=SIGALRM, si_code=SI_TKILL" - ", si_pid=%u, si_uid=%u}" + ", si_pid=%d, si_uid=%d}" "]) = %s\n", (unsigned) pid, psi->off, psi->nr, - (unsigned) pid, (unsigned) uid, - (unsigned) pid, (unsigned) uid, - (unsigned) pid, (unsigned) uid, + (int) pid, (int) uid, + (int) pid, (int) uid, + (int) pid, (int) uid, errstr); } @@ -307,7 +307,7 @@ main(void) do_ptrace(PTRACE_SETSIGINFO, pid, bad_request, (unsigned long) sip); printf("ptrace(PTRACE_SETSIGINFO, %u, %#lx, {si_signo=SIGBUS" - ", si_code=BUS_ADRALN, si_errno=%d, si_addr=%p}) = %s\n", + ", si_code=BUS_ADRALN, si_errno=%u, si_addr=%p}) = %s\n", (unsigned) pid, bad_request, sip->si_errno, sip->si_addr, errstr); @@ -321,7 +321,7 @@ main(void) do_ptrace(PTRACE_SETSIGINFO, pid, bad_request, (unsigned long) sip); printf("ptrace(PTRACE_SETSIGINFO, %u, %#lx, {si_signo=SIGPROF" - ", si_code=%#x, si_errno=%d, si_pid=0, si_uid=3}) = %s\n", + ", si_code=%#x, si_errno=%u, si_pid=0, si_uid=3}) = %s\n", (unsigned) pid, bad_request, sip->si_code, sip->si_errno, errstr); @@ -349,7 +349,7 @@ main(void) do_ptrace(PTRACE_SETSIGINFO, pid, bad_request, (unsigned long) sip); printf("ptrace(PTRACE_SETSIGINFO, %u, %#lx, {si_signo=SIGSYS" - ", si_code=SYS_SECCOMP, si_errno=%d, si_call_addr=NULL" + ", si_code=SYS_SECCOMP, si_errno=%u, si_call_addr=NULL" ", si_syscall=__NR_read, si_arch=%#x /* AUDIT_ARCH_??? */})" " = %s\n", (unsigned) pid, bad_request, sip->si_errno, sip->si_arch, diff --git a/tests-m32/ptrace_syscall_info.c b/tests-m32/ptrace_syscall_info.c index ea29d22e..cb630adb 100644 --- a/tests-m32/ptrace_syscall_info.c +++ b/tests-m32/ptrace_syscall_info.c @@ -2,6 +2,7 @@ * Check decoding of ptrace PTRACE_GET_SYSCALL_INFO request. * * Copyright (c) 2018 Dmitry V. Levin + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +11,6 @@ #include "tests.h" #include "ptrace.h" -#include #include "scno.h" #include @@ -23,6 +23,10 @@ #include #include "xlat.h" +#define XLAT_MACROS_ONLY +/* For xlat/audit_arch.h */ +# include "xlat/elf_em.h" +#undef XLAT_MACROS_ONLY #include "xlat/audit_arch.h" static const char *errstr; @@ -94,11 +98,11 @@ static const unsigned long args[][7] = { }; static const unsigned int expected_none_size = - offsetof(struct ptrace_syscall_info, entry); + offsetof(struct_ptrace_syscall_info, entry); static const unsigned int expected_entry_size = - offsetofend(struct ptrace_syscall_info, entry.args); + offsetofend(struct_ptrace_syscall_info, entry.args); static const unsigned int expected_exit_size = - offsetofend(struct ptrace_syscall_info, exit.is_error); + offsetofend(struct_ptrace_syscall_info, exit.is_error); static unsigned long end_of_page; static unsigned int ptrace_stop; @@ -115,7 +119,7 @@ test_none(void) pid, end_of_page, errstr); for (unsigned int size = 0; - size <= sizeof(struct ptrace_syscall_info); ++size) { + size <= sizeof(struct_ptrace_syscall_info); ++size) { unsigned long buf = end_of_page - size; memset((void *) buf, -1, size); @@ -137,21 +141,21 @@ test_none(void) } /* copy to a local structure to avoid unaligned access */ - struct ptrace_syscall_info info; + struct_ptrace_syscall_info info; memcpy(&info, (void *) buf, MIN(size, expected_none_size)); if (info.op != PTRACE_SYSCALL_INFO_NONE) FAIL("signal stop mismatch"); printf("{op=PTRACE_SYSCALL_INFO_NONE"); - if (size < offsetofend(struct ptrace_syscall_info, arch)) + if (size < offsetofend(struct_ptrace_syscall_info, arch)) goto printed_none; if (!info.arch) FAIL("signal stop mismatch"); printf(", arch="); printxval(audit_arch, info.arch, "AUDIT_ARCH_???"); - if (size < offsetofend(struct ptrace_syscall_info, + if (size < offsetofend(struct_ptrace_syscall_info, instruction_pointer)) goto printed_none; if (!info.instruction_pointer) @@ -159,7 +163,7 @@ test_none(void) printf(", instruction_pointer=%#llx", (unsigned long long) info.instruction_pointer); - if (size < offsetofend(struct ptrace_syscall_info, + if (size < offsetofend(struct_ptrace_syscall_info, stack_pointer)) goto printed_none; if (!info.stack_pointer) @@ -178,7 +182,7 @@ static void test_entry(void) { for (unsigned int size = 0; - size <= sizeof(struct ptrace_syscall_info); ++size) { + size <= sizeof(struct_ptrace_syscall_info); ++size) { unsigned long buf = end_of_page - size; memset((void *) buf, -1, size); @@ -197,21 +201,21 @@ test_entry(void) } /* copy to a local structure to avoid unaligned access */ - struct ptrace_syscall_info info; + struct_ptrace_syscall_info info; memcpy(&info, (void *) buf, MIN(size, expected_entry_size)); if (info.op != PTRACE_SYSCALL_INFO_ENTRY) FAIL("#%d: entry stop mismatch", ptrace_stop); printf("{op=PTRACE_SYSCALL_INFO_ENTRY"); - if (size < offsetofend(struct ptrace_syscall_info, arch)) + if (size < offsetofend(struct_ptrace_syscall_info, arch)) goto printed_entry_common; if (!info.arch) FAIL("#%d: entry stop mismatch", ptrace_stop); printf(", arch="); printxval(audit_arch, info.arch, "AUDIT_ARCH_???"); - if (size < offsetofend(struct ptrace_syscall_info, + if (size < offsetofend(struct_ptrace_syscall_info, instruction_pointer)) goto printed_entry_common; if (!info.instruction_pointer) @@ -219,7 +223,7 @@ test_entry(void) printf(", instruction_pointer=%#llx", (unsigned long long) info.instruction_pointer); - if (size < offsetofend(struct ptrace_syscall_info, + if (size < offsetofend(struct_ptrace_syscall_info, stack_pointer)) goto printed_entry_common; if (!info.stack_pointer) @@ -227,7 +231,7 @@ test_entry(void) printf(", stack_pointer=%#llx", (unsigned long long) info.stack_pointer); - if (size < offsetofend(struct ptrace_syscall_info, entry.nr)) + if (size < offsetofend(struct_ptrace_syscall_info, entry.nr)) goto printed_entry_common; const unsigned long *exp_args = args[ptrace_stop / 2]; if (info.entry.nr != exp_args[0]) @@ -236,14 +240,19 @@ test_entry(void) for (unsigned int i = 0; i < ARRAY_SIZE(info.entry.args); ++i) { const unsigned int i_size = - offsetofend(struct ptrace_syscall_info, + offsetofend(struct_ptrace_syscall_info, entry.args[i]); if (size < i_size) { if (i) break; goto printed_entry_nr; } - if (info.entry.args[i] != exp_args[i + 1]) +#if SIZEOF_KERNEL_LONG_T > SIZEOF_LONG +# define CAST (unsigned long) +#else +# define CAST +#endif + if (CAST info.entry.args[i] != exp_args[i + 1]) FAIL("#%d: entry stop mismatch", ptrace_stop); printf("%s%#llx", (i ? ", " : ", arg=["), (unsigned long long) info.entry.args[i]); @@ -262,7 +271,7 @@ static void test_exit(void) { for (unsigned int size = 0; - size <= sizeof(struct ptrace_syscall_info); ++size) { + size <= sizeof(struct_ptrace_syscall_info); ++size) { unsigned long buf = end_of_page - size; memset((void *) buf, -1, size); @@ -281,21 +290,21 @@ test_exit(void) } /* copy to a local structure to avoid unaligned access */ - struct ptrace_syscall_info info; + struct_ptrace_syscall_info info; memcpy(&info, (void *) buf, MIN(size, expected_exit_size)); if (info.op != PTRACE_SYSCALL_INFO_EXIT) FAIL("#%d: exit stop mismatch", ptrace_stop); printf("{op=PTRACE_SYSCALL_INFO_EXIT"); - if (size < offsetofend(struct ptrace_syscall_info, arch)) + if (size < offsetofend(struct_ptrace_syscall_info, arch)) goto printed_exit_common; if (!info.arch) FAIL("#%d: exit stop mismatch", ptrace_stop); printf(", arch="); printxval(audit_arch, info.arch, "AUDIT_ARCH_???"); - if (size < offsetofend(struct ptrace_syscall_info, + if (size < offsetofend(struct_ptrace_syscall_info, instruction_pointer)) goto printed_exit_common; if (!info.instruction_pointer) @@ -303,7 +312,7 @@ test_exit(void) printf(", instruction_pointer=%#llx", (unsigned long long) info.instruction_pointer); - if (size < offsetofend(struct ptrace_syscall_info, + if (size < offsetofend(struct_ptrace_syscall_info, stack_pointer)) goto printed_exit_common; if (!info.stack_pointer) @@ -320,7 +329,7 @@ test_exit(void) { 0, pid, NULL } /* gettid */ }, *exp_param = &exit_param[ptrace_stop / 2 - 1]; - if (size < offsetofend(struct ptrace_syscall_info, exit.rval)) + if (size < offsetofend(struct_ptrace_syscall_info, exit.rval)) goto printed_exit_common; if (info.exit.rval != exp_param->rval) FAIL("#%d: exit stop mismatch", ptrace_stop); diff --git a/tests-m32/pure_executables.am b/tests-m32/pure_executables.am index cc844502..e2773a5c 100644 --- a/tests-m32/pure_executables.am +++ b/tests-m32/pure_executables.am @@ -11,10 +11,6 @@ PURE_EXECUTABLES = \ aio_pgetevents \ alarm \ bpf \ - bpf-obj_get_info_by_fd \ - bpf-obj_get_info_by_fd-prog \ - bpf-obj_get_info_by_fd-prog-v \ - bpf-obj_get_info_by_fd-v \ bpf-v \ brk \ btrfs \ @@ -26,13 +22,34 @@ PURE_EXECUTABLES = \ clock_adjtime \ clock_nanosleep \ clock_xettime \ + clone-flags \ + clone3 \ + clone3-Xabbrev \ + clone3-Xraw \ + clone3-Xverbose \ + close_range \ + close_range-P \ + close_range-y \ + close_range-yy \ copy_file_range \ creat \ delete_module \ + dev--decode-fds-dev \ + dev--decode-fds-path \ + dev--decode-fds-socket \ dev-yy \ dup \ + dup-P \ + dup-y \ + dup-yy \ dup2 \ + dup2-P \ + dup2-y \ + dup2-yy \ dup3 \ + dup3-P \ + dup3-y \ + dup3-yy \ epoll_create \ epoll_create1 \ epoll_ctl \ @@ -43,6 +60,13 @@ PURE_EXECUTABLES = \ execve \ execveat \ faccessat \ + faccessat-P \ + faccessat-y \ + faccessat-yy \ + faccessat2 \ + faccessat2-P \ + faccessat2-y \ + faccessat2-yy \ fadvise64 \ fadvise64_64 \ fallocate \ @@ -65,6 +89,12 @@ PURE_EXECUTABLES = \ file_ioctl \ finit_module \ flock \ + fsconfig \ + fsconfig-P \ + fsmount \ + fsopen \ + fspick \ + fspick-P \ fstat \ fstat-Xabbrev \ fstat-Xraw \ @@ -85,7 +115,9 @@ PURE_EXECUTABLES = \ getcpu \ getcwd \ getdents \ + getdents-v \ getdents64 \ + getdents64-v \ getegid \ getegid32 \ geteuid \ @@ -109,12 +141,17 @@ PURE_EXECUTABLES = \ getsockname \ getuid \ getuid32 \ - getxxid \ + getxgid \ + getxpid \ + getxuid \ group_req \ inet-cmsg \ init_module \ inotify \ + inotify_init \ + inotify_init-y \ inotify_init1 \ + inotify_init1-y \ io_uring_enter \ io_uring_register \ io_uring_setup \ @@ -122,6 +159,21 @@ PURE_EXECUTABLES = \ ioctl_block \ ioctl_dm \ ioctl_evdev \ + ioctl_evdev-Xabbrev \ + ioctl_evdev-Xraw \ + ioctl_evdev-Xverbose \ + ioctl_evdev-v \ + ioctl_evdev-v-Xabbrev \ + ioctl_evdev-v-Xraw \ + ioctl_evdev-v-Xverbose \ + ioctl_hdio \ + ioctl_hdio-Xabbrev \ + ioctl_hdio-Xraw \ + ioctl_hdio-Xverbose \ + ioctl_hdio-v \ + ioctl_hdio-v-Xabbrev \ + ioctl_hdio-v-Xraw \ + ioctl_hdio-v-Xverbose \ ioctl_inotify \ ioctl_kvm_run \ ioctl_kvm_run-v \ @@ -137,8 +189,17 @@ PURE_EXECUTABLES = \ ioctl_sg_io_v3 \ ioctl_sg_io_v4 \ ioctl_sock_gifconf \ + ioctl_tee \ ioctl_uffdio \ ioctl_v4l2 \ + ioctl_v4l2-Xabbrev \ + ioctl_v4l2-Xraw \ + ioctl_v4l2-Xverbose \ + ioctl_v4l2-v \ + ioctl_v4l2-v-Xabbrev \ + ioctl_v4l2-v-Xraw \ + ioctl_v4l2-v-Xverbose \ + ioctl_watchdog \ ioperm \ iopl \ ioprio \ @@ -187,7 +248,12 @@ PURE_EXECUTABLES = \ lstat \ lstat64 \ madvise \ + maybe_switch_current_tcp \ + maybe_switch_current_tcp--quiet-thread-execve \ mbind \ + mbind-Xabbrev \ + mbind-Xraw \ + mbind-Xverbose \ membarrier \ memfd_create \ memfd_create-Xabbrev \ @@ -217,6 +283,8 @@ PURE_EXECUTABLES = \ mount-Xabbrev \ mount-Xraw \ mount-Xverbose \ + move_mount \ + move_mount-P \ move_pages \ move_pages-Xabbrev \ move_pages-Xraw \ @@ -229,6 +297,10 @@ PURE_EXECUTABLES = \ msg_name \ munlockall \ nanosleep \ + net--decode-fds-dev-netlink \ + net--decode-fds-none-netlink \ + net--decode-fds-path-netlink \ + net--decode-fds-socket-netlink \ net-icmp_filter \ net-packet_mreq \ net-packet_mreq-Xabbrev \ @@ -308,7 +380,19 @@ PURE_EXECUTABLES = \ oldselect-efault \ oldstat \ open \ + open_tree \ + open_tree-P \ openat \ + openat2 \ + openat2-Xabbrev \ + openat2-Xraw \ + openat2-Xverbose \ + openat2-v \ + openat2-v-y \ + openat2-v-y-Xabbrev \ + openat2-v-y-Xraw \ + openat2-v-y-Xverbose \ + openat2-y \ osf_utimes \ pause \ perf_event_open \ @@ -316,6 +400,16 @@ PURE_EXECUTABLES = \ personality-Xabbrev \ personality-Xraw \ personality-Xverbose \ + pidfd_getfd \ + pidfd_getfd-y \ + pidfd_getfd-yy \ + pidfd_open \ + pidfd_open--decode-fd-path \ + pidfd_open--decode-fd-pidfd \ + pidfd_open--decode-fd-socket \ + pidfd_open-P \ + pidfd_open-y \ + pidfd_open-yy \ pidfd_send_signal \ pipe \ pipe2 \ @@ -323,9 +417,7 @@ PURE_EXECUTABLES = \ pkey_free \ pkey_mprotect \ poll \ - poll-P \ ppoll \ - ppoll-P \ prctl-arg2-intptr \ prctl-dumpable \ prctl-name \ @@ -367,7 +459,9 @@ PURE_EXECUTABLES = \ readlinkat \ readv \ reboot \ + recv-MSG_TRUNC \ recvfrom \ + recvfrom-MSG_TRUNC \ recvmmsg-timeout \ recvmsg \ remap_file_pages \ @@ -405,9 +499,14 @@ PURE_EXECUTABLES = \ seccomp_get_action_avail \ select \ semop \ + semop-indirect \ + semtimedop \ sendfile \ sendfile64 \ set_mempolicy \ + set_mempolicy-Xabbrev \ + set_mempolicy-Xraw \ + set_mempolicy-Xverbose \ setdomainname \ setfsgid \ setfsgid32 \ @@ -465,7 +564,23 @@ PURE_EXECUTABLES = \ stat64 \ statfs \ statfs64 \ + status-all \ + status-failed \ + status-failed-long \ + status-failed-status \ + status-none \ + status-none-f \ + status-successful \ + status-successful-long \ + status-successful-status \ + status-unfinished \ statx \ + strace--strings-in-hex \ + strace--strings-in-hex-all \ + strace--strings-in-hex-non-ascii \ + strace-n \ + strace-x \ + strace-xx \ swap \ sxetmask \ symlink \ @@ -476,12 +591,14 @@ PURE_EXECUTABLES = \ sysinfo \ syslog \ tee \ + tgkill \ time \ timer_create \ timer_xettime \ timerfd_xettime \ times \ times-fail \ + tkill \ truncate \ truncate64 \ ugetrlimit \ @@ -494,6 +611,8 @@ PURE_EXECUTABLES = \ umovestr-illptr \ umovestr2 \ umovestr3 \ + umovestr_cached \ + umovestr_cached_adjacent \ uname \ unlink \ unlinkat \ diff --git a/tests-m32/pure_executables.list b/tests-m32/pure_executables.list index 37225209..7d0f8495 100755 --- a/tests-m32/pure_executables.list +++ b/tests-m32/pure_executables.list @@ -1,6 +1,6 @@ # Executables without side effects. # -# Copyright (c) 2017-2019 The strace developers. +# Copyright (c) 2017-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -16,10 +16,6 @@ aio aio_pgetevents alarm bpf -bpf-obj_get_info_by_fd -bpf-obj_get_info_by_fd-prog -bpf-obj_get_info_by_fd-prog-v -bpf-obj_get_info_by_fd-v bpf-v brk btrfs @@ -31,13 +27,34 @@ chroot clock_adjtime clock_nanosleep clock_xettime +clone-flags +clone3 +clone3-Xabbrev +clone3-Xraw +clone3-Xverbose +close_range +close_range-P +close_range-y +close_range-yy copy_file_range creat delete_module +dev--decode-fds-dev +dev--decode-fds-path +dev--decode-fds-socket dev-yy dup +dup-P +dup-y +dup-yy dup2 +dup2-P +dup2-y +dup2-yy dup3 +dup3-P +dup3-y +dup3-yy epoll_create epoll_create1 epoll_ctl @@ -48,6 +65,13 @@ eventfd execve execveat faccessat +faccessat-P +faccessat-y +faccessat-yy +faccessat2 +faccessat2-P +faccessat2-y +faccessat2-yy fadvise64 fadvise64_64 fallocate @@ -70,6 +94,12 @@ file_handle file_ioctl finit_module flock +fsconfig +fsconfig-P +fsmount +fsopen +fspick +fspick-P fstat fstat-Xabbrev fstat-Xraw @@ -90,7 +120,9 @@ get_mempolicy getcpu getcwd getdents +getdents-v getdents64 +getdents64-v getegid getegid32 geteuid @@ -114,12 +146,17 @@ getsid getsockname getuid getuid32 -getxxid +getxgid +getxpid +getxuid group_req inet-cmsg init_module inotify +inotify_init +inotify_init-y inotify_init1 +inotify_init1-y io_uring_enter io_uring_register io_uring_setup @@ -127,6 +164,21 @@ ioctl ioctl_block ioctl_dm ioctl_evdev +ioctl_evdev-Xabbrev +ioctl_evdev-Xraw +ioctl_evdev-Xverbose +ioctl_evdev-v +ioctl_evdev-v-Xabbrev +ioctl_evdev-v-Xraw +ioctl_evdev-v-Xverbose +ioctl_hdio +ioctl_hdio-Xabbrev +ioctl_hdio-Xraw +ioctl_hdio-Xverbose +ioctl_hdio-v +ioctl_hdio-v-Xabbrev +ioctl_hdio-v-Xraw +ioctl_hdio-v-Xverbose ioctl_inotify ioctl_kvm_run ioctl_kvm_run-v @@ -142,8 +194,17 @@ ioctl_scsi ioctl_sg_io_v3 ioctl_sg_io_v4 ioctl_sock_gifconf +ioctl_tee ioctl_uffdio ioctl_v4l2 +ioctl_v4l2-Xabbrev +ioctl_v4l2-Xraw +ioctl_v4l2-Xverbose +ioctl_v4l2-v +ioctl_v4l2-v-Xabbrev +ioctl_v4l2-v-Xraw +ioctl_v4l2-v-Xverbose +ioctl_watchdog ioperm iopl ioprio @@ -192,7 +253,12 @@ lseek lstat lstat64 madvise +maybe_switch_current_tcp +maybe_switch_current_tcp--quiet-thread-execve mbind +mbind-Xabbrev +mbind-Xraw +mbind-Xverbose membarrier memfd_create memfd_create-Xabbrev @@ -222,6 +288,8 @@ mount mount-Xabbrev mount-Xraw mount-Xverbose +move_mount +move_mount-P move_pages move_pages-Xabbrev move_pages-Xraw @@ -234,6 +302,10 @@ msg_control msg_name munlockall nanosleep +net--decode-fds-dev-netlink +net--decode-fds-none-netlink +net--decode-fds-path-netlink +net--decode-fds-socket-netlink net-icmp_filter net-packet_mreq net-packet_mreq-Xabbrev @@ -313,7 +385,19 @@ oldselect oldselect-efault oldstat open +open_tree +open_tree-P openat +openat2 +openat2-Xabbrev +openat2-Xraw +openat2-Xverbose +openat2-v +openat2-v-y +openat2-v-y-Xabbrev +openat2-v-y-Xraw +openat2-v-y-Xverbose +openat2-y osf_utimes pause perf_event_open @@ -321,6 +405,16 @@ personality personality-Xabbrev personality-Xraw personality-Xverbose +pidfd_getfd +pidfd_getfd-y +pidfd_getfd-yy +pidfd_open +pidfd_open--decode-fd-path +pidfd_open--decode-fd-pidfd +pidfd_open--decode-fd-socket +pidfd_open-P +pidfd_open-y +pidfd_open-yy pidfd_send_signal pipe pipe2 @@ -328,9 +422,7 @@ pkey_alloc pkey_free pkey_mprotect poll -poll-P ppoll -ppoll-P prctl-arg2-intptr prctl-dumpable prctl-name @@ -372,7 +464,9 @@ readlink readlinkat readv reboot +recv-MSG_TRUNC recvfrom +recvfrom-MSG_TRUNC recvmmsg-timeout recvmsg remap_file_pages @@ -410,9 +504,14 @@ seccomp-filter seccomp_get_action_avail select semop +semop-indirect +semtimedop sendfile sendfile64 set_mempolicy +set_mempolicy-Xabbrev +set_mempolicy-Xraw +set_mempolicy-Xverbose setdomainname setfsgid setfsgid32 @@ -470,7 +569,23 @@ stat stat64 statfs statfs64 +status-all +status-failed +status-failed-long +status-failed-status +status-none +status-none-f +status-successful +status-successful-long +status-successful-status +status-unfinished statx +strace--strings-in-hex +strace--strings-in-hex-all +strace--strings-in-hex-non-ascii +strace-n +strace-x +strace-xx swap sxetmask symlink @@ -481,12 +596,14 @@ sync_file_range2 sysinfo syslog tee +tgkill time timer_create timer_xettime timerfd_xettime times times-fail +tkill truncate truncate64 ugetrlimit @@ -499,6 +616,8 @@ umovestr umovestr-illptr umovestr2 umovestr3 +umovestr_cached +umovestr_cached_adjacent uname unlink unlinkat diff --git a/tests-m32/qual_fault-syntax.test b/tests-m32/qual_fault-syntax.test index c4fd27bf..fe5eca5b 100755 --- a/tests-m32/qual_fault-syntax.test +++ b/tests-m32/qual_fault-syntax.test @@ -3,6 +3,7 @@ # Check -e fault= syntax. # # Copyright (c) 2016-2018 Dmitry V. Levin +# Copyright (c) 2017-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -72,6 +73,27 @@ for arg in chdir:42 \!chdir:42 \ chdir:syscall=-42 \ chdir:syscall=42 \ chdir:syscall=gettid:syscall=gettid \ + chdir:when=. \ + chdir:when=.+ \ + chdir:when=..+ \ + chdir:when=+ \ + chdir:when=++ \ + chdir:when=10. \ + chdir:when=11.12 \ + chdir:when=13.14+ \ + chdir:when=15.. \ + chdir:when=16... \ + chdir:when=17...18 \ + chdir:when=.19 \ + chdir:when=..20 \ + chdir:when=..21+ \ + chdir:when=..22+3 \ + chdir:when=24..23 \ + chdir:when=25..26+0 \ + chdir:when=27..65535 \ + chdir:when=28..65535+ \ + chdir:when=65535..65535 \ + chdir:when=65535..65535+ \ ; do $STRACE -e fault="$arg" true 2> "$LOG" && fail_with "$arg" diff --git a/tests-m32/qual_fault.c b/tests-m32/qual_fault.c index 63bbade0..580d2913 100644 --- a/tests-m32/qual_fault.c +++ b/tests-m32/qual_fault.c @@ -2,7 +2,7 @@ * Check that fault injection works properly. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -29,7 +29,7 @@ static int out_fd; #define DEFAULT_ERRNO ENOSYS static const char *errstr; -static int is_raw, err, first, step, iter, try; +static int is_raw, err, first, last, step, iter, try; static void invoke(int fail) @@ -99,7 +99,7 @@ open_file(const char *prefix, int proc) int main(int argc, char *argv[]) { - assert(argc == 11); + assert(argc == 12); is_raw = !strcmp("raw", argv[1]); @@ -120,13 +120,14 @@ main(int argc, char *argv[]) errstr = errno2name(); first = atoi(argv[3]); - step = atoi(argv[4]); - iter = atoi(argv[5]); - int num_procs = atoi(argv[6]); - char *exp_prefix = argv[7]; - char *got_prefix = argv[8]; - char *out_prefix = argv[9]; - char *pid_prefix = argv[10]; + last = atoi(argv[4]); + step = atoi(argv[5]); + iter = atoi(argv[6]); + int num_procs = atoi(argv[7]); + char *exp_prefix = argv[8]; + char *got_prefix = argv[9]; + char *out_prefix = argv[10]; + char *pid_prefix = argv[11]; assert(first > 0); assert(step >= 0); @@ -164,8 +165,10 @@ main(int argc, char *argv[]) int i; for (i = 1; i <= iter; ++i) { int fail = 0; - if (first > 0) { + if (last != 0) { --first; + if (last != -1) + --last; if (first == 0) { fail = 1; first = step; diff --git a/tests-m32/qual_fault.test b/tests-m32/qual_fault.test index 497e35ea..f054ed49 100755 --- a/tests-m32/qual_fault.test +++ b/tests-m32/qual_fault.test @@ -3,7 +3,7 @@ # Check that fault injection works properly. # # Copyright (c) 2016 Dmitry V. Levin -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -22,24 +22,32 @@ N=100 check_fault_injection() { - local trace fault err first step procs extra + local trace fault err first last step procs extra trace=$1; shift fault=$1; shift err=$1; shift first=$1; shift + last=$1; shift step=$1; shift procs=$1; shift extra="$*" local when= - if [ -z "$first$step" ]; then + if [ -z "$first$last$step" ]; then first=1 + last=-1 step=1 + elif [ -z "$last" ]; then + case "$step" in + '') when=":when=$first"; step=1; last=$first ;; + +) when=":when=$first+"; step=1; last=-1 ;; + *) when=":when=$first+$step"; last=-1; ;; + esac else case "$step" in - '') when=":when=$first"; step=0 ;; - +) when=":when=$first+"; step=1 ;; - *) when=":when=$first+$step" ;; + '') when=":when=${first}..${last}"; step=1 ;; + +) when=":when=${first}..${last}+"; step=1 ;; + *) when=":when=${first}..${last}+${step}" ;; esac fi @@ -63,7 +71,7 @@ check_fault_injection() run_strace -a11 -ff -e trace=$trace \ "$@" -e fault=$fault$when$error$suffix $extra \ - ../$NAME $raw "$err" "$first" "$step" $N \ + ../$NAME $raw "$err" "$first" "$last" "$step" $N \ "$procs" "$outexp" "$outgot" "$outout" "$outpid" for i in $(seq 0 $((procs - 1)) ) @@ -78,19 +86,37 @@ check_fault_injection() for err in '' ENOSYS 22 einval; do for fault in writev desc,51; do check_fault_injection \ - writev $fault "$err" '' '' 1 -efault=chdir + writev $fault "$err" '' '' '' 1 -efault=chdir check_fault_injection \ - writev $fault "$err" '' '' 1 -efault=chdir -efault=none + writev $fault "$err" '' '' '' 1 -efault=chdir -efault=none for F in 1 2 3 5 7 11; do check_fault_injection \ - writev $fault "$err" $F '' 1 + writev $fault "$err" $F '' '' 1 check_fault_injection \ - writev $fault "$err" $F + 1 + writev $fault "$err" $F '' + 1 + + for L in 1 2 3 5 7 11; do + [ "$L" -ge "$F" ] || + continue + check_fault_injection \ + writev $fault "$err" $F $L '' 1 + check_fault_injection \ + writev $fault "$err" $F $L + 1 + done + for S in 1 2 3 5 7 11; do check_fault_injection \ - writev $fault "$err" $F $S 1 + writev $fault "$err" $F '' $S 1 check_fault_injection \ - writev $fault "$err" $F $S 4 + writev $fault "$err" $F '' $S 4 + for L in 1 2 3 5 7 11; do + [ "$L" -ge "$F" ] || + continue + check_fault_injection \ + writev $fault "$err" $F $L $S 1 + check_fault_injection \ + writev $fault "$err" $F $L $S 4 + done done done done diff --git a/tests-m32/qual_inject-error-signal.c b/tests-m32/qual_inject-error-signal.c index 4c89d78a..a9a8afc8 100644 --- a/tests-m32/qual_inject-error-signal.c +++ b/tests-m32/qual_inject-error-signal.c @@ -2,6 +2,7 @@ * Check fault injection along with signal injection. * * Copyright (c) 2017-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +12,7 @@ #include #include #include -#include +#include "scno.h" static struct stat before, after; diff --git a/tests-m32/qual_inject-retval.c b/tests-m32/qual_inject-retval.c index 16419a49..1e657a73 100644 --- a/tests-m32/qual_inject-retval.c +++ b/tests-m32/qual_inject-retval.c @@ -2,14 +2,14 @@ * Check success injection. * * Copyright (c) 2017 Elvira Khabirova - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_chdir diff --git a/tests-m32/qual_inject-signal.c b/tests-m32/qual_inject-signal.c index c09b8322..03bc0331 100644 --- a/tests-m32/qual_inject-signal.c +++ b/tests-m32/qual_inject-signal.c @@ -2,6 +2,7 @@ * Check that signal injection works properly. * * Copyright (c) 2017-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +11,7 @@ #include "tests.h" #include #include -#include +#include "scno.h" static void handler(int sig) diff --git a/tests-m32/qual_inject-syntax.test b/tests-m32/qual_inject-syntax.test index 53245345..c513fe12 100755 --- a/tests-m32/qual_inject-syntax.test +++ b/tests-m32/qual_inject-syntax.test @@ -3,6 +3,7 @@ # Check -e inject= syntax. # # Copyright (c) 2016-2018 Dmitry V. Levin +# Copyright (c) 2017-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -88,6 +89,27 @@ for arg in 42 chdir \ chdir:syscall=-42 \ chdir:syscall=42 \ chdir:syscall=gettid:syscall=gettid \ + chdir:when=. \ + chdir:when=.+ \ + chdir:when=..+ \ + chdir:when=+ \ + chdir:when=++ \ + chdir:when=10. \ + chdir:when=11.12 \ + chdir:when=13.14+ \ + chdir:when=15.. \ + chdir:when=16... \ + chdir:when=17...18 \ + chdir:when=.19 \ + chdir:when=..20 \ + chdir:when=..21+ \ + chdir:when=..22+3 \ + chdir:when=24..23 \ + chdir:when=25..26+0 \ + chdir:when=27..65535 \ + chdir:when=28..65535+ \ + chdir:when=65535..65535 \ + chdir:when=65535..65535+ \ ; do $STRACE -e inject="$arg" true 2> "$LOG" && fail_with "$arg" diff --git a/tests-m32/qual_signal.test b/tests-m32/qual_signal.test index 8fd2b69d..aab6a906 100755 --- a/tests-m32/qual_signal.test +++ b/tests-m32/qual_signal.test @@ -3,7 +3,7 @@ # Check how strace -e signal=set works. # # Copyright (c) 2016 Dmitry V. Levin -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -16,8 +16,12 @@ test_one_sig() sigs="$1"; shift run_prog "../$NAME" "$@" > /dev/null + run_strace -e trace=none -e signal="$sigs" "../$NAME" "$@" > "$EXP" match_diff "$LOG" "$EXP" + + run_strace --trace=none --signal="$sigs" "../$NAME" "$@" > "$EXP" + match_diff "$LOG" "$EXP" } test_sigs() @@ -86,6 +90,11 @@ for arg in ' ' invalid_signal_name SIG -1 256 1-1 \ fail_with "$arg" LC_ALL=C grep -F 'invalid signal' < "$LOG" > /dev/null || fail_with "$arg" + + $STRACE --signal="$arg" true 2> "$LOG" && + fail_with "$arg" + LC_ALL=C grep -F 'invalid signal' < "$LOG" > /dev/null || + fail_with "$arg" done exit 0 diff --git a/tests-m32/qual_syscall.test b/tests-m32/qual_syscall.test index 945fc8c7..a2882ba4 100755 --- a/tests-m32/qual_syscall.test +++ b/tests-m32/qual_syscall.test @@ -3,7 +3,7 @@ # Check how strace -e abbrev=set, -e raw=set, -e trace=set, # and -e verbose=set work. # -# Copyright (c) 2014-2018 The strace developers. +# Copyright (c) 2014-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -28,6 +28,16 @@ check_output_mismatch() } } +check_execve_output_mismatch() +{ + local what how + what="$1"; shift + how="$1"; shift + + check_output_mismatch "$@" -e "$what=$how" -e execve + check_output_mismatch "$@" "--$what=$how" --trace=execve +} + check_output_mismatch "$pattern_abbrev_verbose" -e execve LC_ALL=C grep -v -x "$pattern_abbrev_verbose" "$LOG" | LC_ALL=C grep '^[[:alnum:]_]*(' > /dev/null && @@ -47,22 +57,16 @@ LC_ALL=C grep '^[[:alnum:]_]*(' "$LOG" > /dev/null && for a in execve \!chdir /. all \!none \ file process \!desc \!ipc \!memory \!network \!signal; do - check_output_mismatch \ - "$pattern_abbrev_verbose" -e abbrev="$a" -e execve - check_output_mismatch \ - "$pattern_raw" -a22 -e raw="$a" -e execve - check_output_mismatch \ - "$pattern_abbrev_verbose" -e verbose="$a" -e execve + check_execve_output_mismatch abbrev "$a" "$pattern_abbrev_verbose" + check_execve_output_mismatch raw "$a" "$pattern_raw" + check_execve_output_mismatch verbose "$a" "$pattern_abbrev_verbose" done for a in \!execve chdir 42 \!all none \ \!file \!process desc ipc memory network signal; do - check_output_mismatch \ - "$pattern_nonabbrev_verbose" -e abbrev="$a" -e execve - check_output_mismatch \ - "$pattern_abbrev_verbose" -e raw="$a" -e execve - check_output_mismatch \ - "$pattern_nonverbose" -a31 -e verbose="$a" -e execve + check_execve_output_mismatch abbrev "$a" "$pattern_nonabbrev_verbose" + check_execve_output_mismatch raw "$a" "$pattern_abbrev_verbose" + check_execve_output_mismatch verbose "$a" "$pattern_nonverbose" --columns=31 done exit 0 diff --git a/tests-m32/qualify_personality.sh b/tests-m32/qualify_personality.sh index d57314fc..e2677f58 100644 --- a/tests-m32/qualify_personality.sh +++ b/tests-m32/qualify_personality.sh @@ -2,7 +2,7 @@ # # Common code for per-personality qualification tests # -# Copyright (c) 2018 The strace developers. +# Copyright (c) 2018-2019 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -25,7 +25,7 @@ x86_64) x32) supported_pers='x32 32' ;; -aarch64|powerpc64|riscv|s390x|sparc64|tile) +aarch64|powerpc64|s390x|sparc64|tile) supported_pers='64 32' ;; *) diff --git a/tests-m32/quotactl-xfs.c b/tests-m32/quotactl-xfs.c index 1fae566d..0708e2a3 100644 --- a/tests-m32/quotactl-xfs.c +++ b/tests-m32/quotactl-xfs.c @@ -3,7 +3,7 @@ * * Copyright (c) 2016 Eugene Syromyatnikov * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +11,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_quotactl) && \ (defined(HAVE_LINUX_QUOTA_H) || defined(HAVE_SYS_QUOTA_H)) && \ diff --git a/tests-m32/quotactl.c b/tests-m32/quotactl.c index 3a995276..fd455579 100644 --- a/tests-m32/quotactl.c +++ b/tests-m32/quotactl.c @@ -3,7 +3,7 @@ * * Copyright (c) 2016 Eugene Syromyatnikov * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +11,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_quotactl) && \ (defined(HAVE_LINUX_QUOTA_H) || defined(HAVE_SYS_QUOTA_H)) diff --git a/tests-m32/read-write.c b/tests-m32/read-write.c index 0217670b..27df009d 100644 --- a/tests-m32/read-write.c +++ b/tests-m32/read-write.c @@ -2,7 +2,7 @@ * Check decoding and dumping of read and write syscalls. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -14,7 +14,7 @@ #include #include #include -#include +#include "scno.h" static void dump_str_ex(const char *str, const unsigned int len, const int idx_w) @@ -153,9 +153,17 @@ main(void) skip_if_unavailable("/proc/self/fd/"); static const char tmp[] = "read-write-tmpfile"; - if (open(tmp, O_CREAT|O_RDONLY|O_TRUNC, 0600) != 0) + bool need_cleanup = true; + long rc; + + rc = open(tmp, O_RDONLY, 0600); + if (rc < 0) { + rc = open(tmp, O_CREAT|O_EXCL|O_RDONLY, 0600); + need_cleanup = false; + } + if (rc != 0) perror_msg_and_fail("creat: %s", tmp); - if (open(tmp, O_WRONLY) != 1) + if (open(tmp, O_TRUNC|O_WRONLY) != 1) perror_msg_and_fail("open: %s", tmp); static const char w_c[] = "0123456789abcde"; @@ -175,8 +183,6 @@ main(void) void *efault = r1 - get_page_size(); - long rc; - rc = k_write(1, w, 0); if (rc) perror_msg_and_fail("write: expected 0, returned %ld", rc); @@ -270,9 +276,11 @@ main(void) if (open("/dev/null", O_WRONLY) != 1) perror_msg_and_fail("open"); + (void) close(4); if (open("/dev/zero", O_RDONLY) != 4) perror_msg_and_fail("open"); + (void) close(5); if (open("/dev/null", O_WRONLY) != 5) perror_msg_and_fail("open"); @@ -282,6 +290,9 @@ main(void) test_dump(256, true); + if (need_cleanup && unlink(tmp)) + perror_msg_and_fail("unlink: %s", tmp); + tprintf("+++ exited with 0 +++\n"); return 0; } diff --git a/tests-m32/readahead.c b/tests-m32/readahead.c index 1b21fe59..bcd33e0c 100644 --- a/tests-m32/readahead.c +++ b/tests-m32/readahead.c @@ -1,34 +1,30 @@ /* * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef HAVE_READAHEAD /* Check for glibc readahead argument passing bugs. */ -# ifdef __GLIBC__ /* * glibc < 2.8 had an incorrect order of higher and lower parts of offset, * see https://sourceware.org/bugzilla/show_bug.cgi?id=5208 */ -# if !(defined __GLIBC_MINOR__ && \ - (__GLIBC__ << 16) + __GLIBC_MINOR__ >= (2 << 16) + 8) -# undef HAVE_READAHEAD -# endif /* glibc < 2.8 */ +# if GLIBC_PREREQ_LT(2, 8) +# undef HAVE_READAHEAD +# endif /* glibc < 2.8 */ /* * glibc < 2.25 had an incorrect implementation on mips n64, * see https://sourceware.org/bugzilla/show_bug.cgi?id=21026 */ -# if defined LINUX_MIPSN64 && !(defined __GLIBC_MINOR__ && \ - (__GLIBC__ << 16) + __GLIBC_MINOR__ >= (2 << 16) + 25) -# undef HAVE_READAHEAD -# endif /* LINUX_MIPSN64 && glibc < 2.25 */ -# endif /* __GLIBC__ */ +# if GLIBC_PREREQ_LT(2, 25) && defined LINUX_MIPSN64 +# undef HAVE_READAHEAD +# endif /* LINUX_MIPSN64 && glibc < 2.25 */ #endif /* HAVE_READAHEAD */ #ifdef HAVE_READAHEAD diff --git a/tests-m32/readdir.c b/tests-m32/readdir.c index 284c221e..709b4f31 100644 --- a/tests-m32/readdir.c +++ b/tests-m32/readdir.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_readdir diff --git a/tests-m32/readlink.c b/tests-m32/readlink.c index c2a9b22c..a140794a 100644 --- a/tests-m32/readlink.c +++ b/tests-m32/readlink.c @@ -1,13 +1,14 @@ /* * Copyright (c) 2015 Gleb Fotengauer-Malinovskiy * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_readlink diff --git a/tests-m32/readlinkat.c b/tests-m32/readlinkat.c index 6909ac0b..50534570 100644 --- a/tests-m32/readlinkat.c +++ b/tests-m32/readlinkat.c @@ -1,13 +1,14 @@ /* * Copyright (c) 2015 Gleb Fotengauer-Malinovskiy * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_readlinkat diff --git a/tests-m32/reboot.c b/tests-m32/reboot.c index 8bc9c6b0..0b22ee9f 100644 --- a/tests-m32/reboot.c +++ b/tests-m32/reboot.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_reboot diff --git a/tests-m32/recv-MSG_TRUNC.c b/tests-m32/recv-MSG_TRUNC.c new file mode 100644 index 00000000..ee9ea632 --- /dev/null +++ b/tests-m32/recv-MSG_TRUNC.c @@ -0,0 +1,59 @@ +/* + * Check decoding of recv MSG_TRUNC. + * + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include +#include +#include "scno.h" + +#ifndef __NR_recv +# define __NR_recv -1 +#endif +#define SC_recv 10 + +static int +sys_recv(int sockfd, const void *buf, unsigned int len, int flags) +{ + int rc = socketcall(__NR_recv, SC_recv, + sockfd, (long) buf, len, flags, 0); + if (rc < 0 && ENOSYS == errno) + perror_msg_and_skip("recv"); + return rc; +} + +int +main(void) +{ + static const char sbuf[2] = "AB"; + int sv[2]; + TAIL_ALLOC_OBJECT_CONST_PTR(char, rbuf); + + if (socketpair(AF_UNIX, SOCK_DGRAM, 0, sv)) + perror_msg_and_skip("socketpair"); + + if (send(sv[1], sbuf + 1, 1, 0) != 1) + perror_msg_and_skip("send"); + if (sys_recv(sv[0], rbuf - 1, 2, MSG_PEEK) != 1) + perror_msg_and_fail("recv"); + printf("recv(%d, \"B\", 2, MSG_PEEK) = 1\n", sv[0]); + + if (sys_recv(sv[0], rbuf, 1, MSG_TRUNC) != 1) + perror_msg_and_skip("recv"); + printf("recv(%d, \"B\", 1, MSG_TRUNC) = 1\n", sv[0]); + + if (send(sv[1], sbuf, 2, 0) != 2) + perror_msg_and_skip("send"); + if (sys_recv(sv[0], rbuf, 1, MSG_TRUNC) != 2) + perror_msg_and_skip("recv"); + printf("recv(%d, \"A\", 1, MSG_TRUNC) = 2\n", sv[0]); + + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests-m32/recv-MSG_TRUNC.gen.test b/tests-m32/recv-MSG_TRUNC.gen.test new file mode 100755 index 00000000..07f112b0 --- /dev/null +++ b/tests-m32/recv-MSG_TRUNC.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (recv-MSG_TRUNC -a26 -e trace=recv); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a26 -e trace=recv diff --git a/tests-m32/recvfrom-MSG_TRUNC.c b/tests-m32/recvfrom-MSG_TRUNC.c new file mode 100644 index 00000000..b8ef3786 --- /dev/null +++ b/tests-m32/recvfrom-MSG_TRUNC.c @@ -0,0 +1,42 @@ +/* + * Check decoding of recvfrom MSG_TRUNC. + * + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include + +int +main(void) +{ + static const char sbuf[2] = "AB"; + int sv[2]; + TAIL_ALLOC_OBJECT_CONST_PTR(char, rbuf); + + if (socketpair(AF_UNIX, SOCK_DGRAM, 0, sv)) + perror_msg_and_skip("socketpair"); + + if (send(sv[1], sbuf + 1, 1, 0) != 1) + perror_msg_and_skip("send"); + if (recvfrom(sv[0], rbuf - 1, 2, MSG_PEEK, NULL, NULL) != 1) + perror_msg_and_fail("recvfrom"); + printf("recvfrom(%d, \"B\", 2, MSG_PEEK, NULL, NULL) = 1\n", sv[0]); + + if (recvfrom(sv[0], rbuf, 1, MSG_TRUNC, NULL, NULL) != 1) + perror_msg_and_skip("recvfrom"); + printf("recvfrom(%d, \"B\", 1, MSG_TRUNC, NULL, NULL) = 1\n", sv[0]); + + if (send(sv[1], sbuf, 2, 0) != 2) + perror_msg_and_skip("send"); + if (recvfrom(sv[0], rbuf, 1, MSG_TRUNC, NULL, NULL) != 2) + perror_msg_and_skip("recvfrom"); + printf("recvfrom(%d, \"A\", 1, MSG_TRUNC, NULL, NULL) = 2\n", sv[0]); + + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests-m32/recvfrom-MSG_TRUNC.gen.test b/tests-m32/recvfrom-MSG_TRUNC.gen.test new file mode 100755 index 00000000..e27f52d0 --- /dev/null +++ b/tests-m32/recvfrom-MSG_TRUNC.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (recvfrom-MSG_TRUNC -e trace=recvfrom); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -e trace=recvfrom diff --git a/tests-m32/redirect.test b/tests-m32/redirect.test index ebf91bec..c98052c8 100755 --- a/tests-m32/redirect.test +++ b/tests-m32/redirect.test @@ -3,7 +3,7 @@ # Ensure that strace does not retain stdin and stdout descriptors. # # Copyright (c) 2016 Dmitry V. Levin -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -16,42 +16,34 @@ run_prog_skip_if_failed \ check_prog sleep check_prog yes +SLEEP_3_BITS="$SLEEP_A_BIT; $SLEEP_A_BIT; $SLEEP_A_BIT" > "$OUT" -> "$LOG" + +> lock1 +> lock2 ( - while [ -f "$LOG" ]; do - : + while [ -f lock1 ]; do + $SLEEP_A_BIT done - $SLEEP_A_BIT & yes - if kill -0 $! 2> /dev/null; then - wait - else - echo TIMEOUT >> "$OUT" - fi + [ -f lock2 ] || + printf ' input' >> "$OUT" ) | $STRACE -qq -enone -esignal=none \ - sh -c "exec <&- >&-; rm -f -- $LOG; $SLEEP_A_BIT; $SLEEP_A_BIT" - -if [ -s "$OUT" ]; then - fail_ "$STRACE failed to redirect standard input" -fi + sh -c "exec <&- >&-; rm -f lock1; $SLEEP_3_BITS; rm -f lock2" -> "$LOG" +> lock1 +> lock2 $STRACE -qq -enone -esignal=none \ - sh -c "exec <&- >&-; rm -f -- $LOG; $SLEEP_A_BIT; $SLEEP_A_BIT" | + sh -c "exec <&- >&-; rm -f lock1; $SLEEP_3_BITS; rm -f lock2" | ( - while [ -f "$LOG" ]; do - : + while [ -f lock1 ]; do + $SLEEP_A_BIT done - $SLEEP_A_BIT & cat > /dev/null - if kill -0 $! 2> /dev/null; then - wait - else - echo TIMEOUT >> "$OUT" - fi + [ -f lock2 ] || + printf ' output' >> "$OUT" ) if [ -s "$OUT" ]; then - fail_ "$STRACE failed to redirect standard output" + fail_ "$STRACE failed to redirect standard descriptors:$(cat "$OUT")" fi diff --git a/tests-m32/remap_file_pages.c b/tests-m32/remap_file_pages.c index 2a2bfc6e..7e43926e 100644 --- a/tests-m32/remap_file_pages.c +++ b/tests-m32/remap_file_pages.c @@ -2,14 +2,13 @@ * Check decoding of remap_file_pages syscall. * * Copyright (c) 2016-2017 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_remap_file_pages @@ -77,11 +76,17 @@ main(void) k_remap_file_pages(addr, size, prot, pgoff, flags); /* - * HP PA-RISC is the only architecture that has MAP_TYPE defined to 0x3, which - * is also used for MAP_SHARED_VALIDATE since Linux commit v4.15-rc1~71^2^2~23. + * HP PA-RISC is the only architecture that has MAP_TYPE defined to something + * different. For example, before commit v4.17-rc1~146^2~9 it was defined to + * 0x3 which is also used for MAP_SHARED_VALIDATE since Linux commit + * v4.15-rc1~71^2^2~23. */ # ifdef __hppa__ -# define MAP_TYPE_str "MAP_SHARED_VALIDATE" +# if MAP_TYPE == 0x03 +# define MAP_TYPE_str "MAP_SHARED_VALIDATE" +# else +# define MAP_TYPE_str "0x2b /* MAP_??? */" +# endif # else # define MAP_TYPE_str "0xf /* MAP_??? */" # endif diff --git a/tests-m32/rename.c b/tests-m32/rename.c index 3d77573c..ccd65b41 100644 --- a/tests-m32/rename.c +++ b/tests-m32/rename.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_rename diff --git a/tests-m32/renameat.c b/tests-m32/renameat.c index 7f11893f..8c648cd3 100644 --- a/tests-m32/renameat.c +++ b/tests-m32/renameat.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_renameat diff --git a/tests-m32/renameat2.c b/tests-m32/renameat2.c index 663c0638..548490cd 100644 --- a/tests-m32/renameat2.c +++ b/tests-m32/renameat2.c @@ -2,13 +2,13 @@ * Check decoding of renameat2 syscall. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_renameat2 diff --git a/tests-m32/request_key.c b/tests-m32/request_key.c index 20ae12f6..2ea9a7bd 100644 --- a/tests-m32/request_key.c +++ b/tests-m32/request_key.c @@ -2,7 +2,7 @@ * Check decoding of request_key syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_request_key diff --git a/tests-m32/restart_syscall.c b/tests-m32/restart_syscall.c index 9a8f7e3a..a42d3b9b 100644 --- a/tests-m32/restart_syscall.c +++ b/tests-m32/restart_syscall.c @@ -1,19 +1,21 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include #include #include #include #include +#define NANOSLEEP_NAME_RE "(nanosleep|clock_nanosleep(_time64)?)" +#define NANOSLEEP_CALL_RE "(nanosleep\\(|clock_nanosleep(_time64)?\\(CLOCK_REALTIME, 0, )" + int main(void) { @@ -27,20 +29,22 @@ main(void) const sigset_t set = {}; const struct sigaction act = { .sa_handler = SIG_IGN }; const struct itimerval itv = { .it_value.tv_usec = 111111 }; - struct timespec req = { .tv_nsec = 222222222 }, rem; + const struct timespec req = { .tv_nsec = 222222222 }; + struct timespec rem = { 0xdefaced, 0xdefaced }; - assert(sigaction(SIGALRM, &act, NULL) == 0); - assert(sigprocmask(SIG_SETMASK, &set, NULL) == 0); + if (sigaction(SIGALRM, &act, NULL)) + perror_msg_and_fail("sigaction"); + if (sigprocmask(SIG_SETMASK, &set, NULL)) + perror_msg_and_fail("sigprocmask"); if (setitimer(ITIMER_REAL, &itv, NULL)) perror_msg_and_skip("setitimer"); if (nanosleep(&req, &rem)) perror_msg_and_fail("nanosleep"); - printf("nanosleep\\(\\{tv_sec=%lld, tv_nsec=%llu\\}" - ", \\{tv_sec=%lld, tv_nsec=%llu\\}\\)" + printf("%s\\{tv_sec=0, tv_nsec=[0-9]+\\}" + ", \\{tv_sec=[0-9]+, tv_nsec=[0-9]+\\}\\)" " = \\? ERESTART_RESTARTBLOCK \\(Interrupted by signal\\)\n", - (long long) req.tv_sec, zero_extend_signed_to_ull(req.tv_nsec), - (long long) rem.tv_sec, zero_extend_signed_to_ull(rem.tv_nsec)); + NANOSLEEP_CALL_RE); puts("--- SIGALRM \\{si_signo=SIGALRM, si_code=SI_KERNEL\\} ---"); # ifdef __arm__ /* old kernels used to overwrite ARM_r0 with -EINTR */ @@ -48,12 +52,12 @@ main(void) # else # define ALTERNATIVE_NANOSLEEP_REQ "" # endif - printf("(nanosleep\\((%s\\{tv_sec=%lld, tv_nsec=%llu\\})" - ", %p|restart_syscall\\(<\\.\\.\\." - " resuming interrupted nanosleep \\.\\.\\.>)\\) = 0\n", + printf("(%s(%s\\{tv_sec=0, tv_nsec=[0-9]+\\})" + ", 0x[[:xdigit:]]+|restart_syscall\\(<\\.\\.\\." + " resuming interrupted %s \\.\\.\\.>)\\) = 0\n", + NANOSLEEP_CALL_RE, ALTERNATIVE_NANOSLEEP_REQ, - (long long) req.tv_sec, zero_extend_signed_to_ull(req.tv_nsec), - &rem); + NANOSLEEP_NAME_RE); puts("\\+\\+\\+ exited with 0 \\+\\+\\+"); return 0; diff --git a/tests-m32/restart_syscall.test b/tests-m32/restart_syscall.test index 8dde6684..5c433fda 100755 --- a/tests-m32/restart_syscall.test +++ b/tests-m32/restart_syscall.test @@ -2,7 +2,7 @@ # # Check how "resuming interrupted nanosleep" works. # -# Copyright (c) 2015-2018 The strace developers. +# Copyright (c) 2015-2019 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -10,6 +10,6 @@ . "${srcdir=.}/init.sh" run_prog > /dev/null -syscalls=nanosleep,restart_syscall +syscalls=restart_syscall,/nanosleep run_strace -a20 -e trace=$syscalls $args > "$EXP" match_grep "$LOG" "$EXP" diff --git a/tests-m32/riscv_flush_icache.c b/tests-m32/riscv_flush_icache.c index 27abf75b..645644c8 100644 --- a/tests-m32/riscv_flush_icache.c +++ b/tests-m32/riscv_flush_icache.c @@ -1,7 +1,7 @@ /* * Check decoding of riscv_flush_icache syscall. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,7 +9,6 @@ #include "tests.h" -#include #include "scno.h" diff --git a/tests-m32/rmdir.c b/tests-m32/rmdir.c index 505303ad..670f741d 100644 --- a/tests-m32/rmdir.c +++ b/tests-m32/rmdir.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_rmdir diff --git a/tests-m32/rt_sigpending.c b/tests-m32/rt_sigpending.c index 06b15db2..29954bad 100644 --- a/tests-m32/rt_sigpending.c +++ b/tests-m32/rt_sigpending.c @@ -2,14 +2,14 @@ * This file is part of rt_sigpending strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_rt_sigpending diff --git a/tests-m32/rt_sigprocmask.c b/tests-m32/rt_sigprocmask.c index e6f513da..599f2831 100644 --- a/tests-m32/rt_sigprocmask.c +++ b/tests-m32/rt_sigprocmask.c @@ -2,14 +2,14 @@ * This file is part of rt_sigprocmask strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_rt_sigprocmask diff --git a/tests-m32/rt_sigqueueinfo--pidns-translation.c b/tests-m32/rt_sigqueueinfo--pidns-translation.c new file mode 100644 index 00000000..74bfb464 --- /dev/null +++ b/tests-m32/rt_sigqueueinfo--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "rt_sigqueueinfo.c" diff --git a/tests-m32/rt_sigqueueinfo--pidns-translation.gen.test b/tests-m32/rt_sigqueueinfo--pidns-translation.gen.test new file mode 100755 index 00000000..ef490b55 --- /dev/null +++ b/tests-m32/rt_sigqueueinfo--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (rt_sigqueueinfo--pidns-translation test_pidns -esignal=none -e trace=rt_sigqueueinfo); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -esignal=none -e trace=rt_sigqueueinfo diff --git a/tests-m32/rt_sigqueueinfo.c b/tests-m32/rt_sigqueueinfo.c index 0455dd40..e22e4640 100644 --- a/tests-m32/rt_sigqueueinfo.c +++ b/tests-m32/rt_sigqueueinfo.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015 Elvira Khabirova - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include "pidns.h" #include #include #include @@ -15,6 +16,8 @@ int main(void) { + PIDNS_TEST_INIT; + struct sigaction sa = { .sa_handler = SIG_IGN }; @@ -22,15 +25,19 @@ main(void) .sival_ptr = (void *) (unsigned long) 0xdeadbeefbadc0dedULL }; pid_t pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); assert(sigaction(SIGUSR1, &sa, NULL) == 0); if (sigqueue(pid, SIGUSR1, value)) perror_msg_and_skip("sigqueue"); - printf("rt_sigqueueinfo(%u, SIGUSR1, {si_signo=SIGUSR1, " - "si_code=SI_QUEUE, si_pid=%u, si_uid=%u, " + pidns_print_leader(); + printf("rt_sigqueueinfo(%d%s, SIGUSR1, {si_signo=SIGUSR1, " + "si_code=SI_QUEUE, si_pid=%d%s, si_uid=%u, " "si_value={int=%d, ptr=%p}}) = 0\n", - pid, pid, getuid(), value.sival_int, value.sival_ptr); - printf("+++ exited with 0 +++\n"); + pid, pid_str, pid, pid_str, + getuid(), value.sival_int, value.sival_ptr); + pidns_print_leader(); + puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-m32/rt_sigsuspend.c b/tests-m32/rt_sigsuspend.c index 55ae6239..720e1782 100644 --- a/tests-m32/rt_sigsuspend.c +++ b/tests-m32/rt_sigsuspend.c @@ -2,14 +2,14 @@ * This file is part of rt_sigsuspend strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_rt_sigsuspend diff --git a/tests-m32/rt_sigtimedwait.c b/tests-m32/rt_sigtimedwait.c index 56144f52..5ecd9b13 100644 --- a/tests-m32/rt_sigtimedwait.c +++ b/tests-m32/rt_sigtimedwait.c @@ -2,14 +2,14 @@ * This file is part of rt_sigtimedwait strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_rt_sigtimedwait diff --git a/tests-m32/rt_tgsigqueueinfo--pidns-translation.c b/tests-m32/rt_tgsigqueueinfo--pidns-translation.c new file mode 100644 index 00000000..94396f00 --- /dev/null +++ b/tests-m32/rt_tgsigqueueinfo--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "rt_tgsigqueueinfo.c" diff --git a/tests-m32/rt_tgsigqueueinfo--pidns-translation.gen.test b/tests-m32/rt_tgsigqueueinfo--pidns-translation.gen.test new file mode 100755 index 00000000..399b2477 --- /dev/null +++ b/tests-m32/rt_tgsigqueueinfo--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (rt_tgsigqueueinfo--pidns-translation test_pidns -esignal=none -e trace=rt_tgsigqueueinfo); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -esignal=none -e trace=rt_tgsigqueueinfo diff --git a/tests-m32/rt_tgsigqueueinfo.c b/tests-m32/rt_tgsigqueueinfo.c index e3ad0e22..21d01cbb 100644 --- a/tests-m32/rt_tgsigqueueinfo.c +++ b/tests-m32/rt_tgsigqueueinfo.c @@ -2,16 +2,17 @@ * This file is part of rt_tgsigqueueinfo strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" -#ifdef __NR_rt_tgsigqueueinfo +#if defined __NR_rt_tgsigqueueinfo && defined __NR_gettid # include # include @@ -20,11 +21,11 @@ # include static long -k_tgsigqueueinfo(const pid_t pid, const int sig, const void *const info) +k_tgsigqueueinfo(const pid_t tgid, const int tid, const int sig, const void *const info) { return syscall(__NR_rt_tgsigqueueinfo, - F8ILL_KULONG_MASK | pid, - F8ILL_KULONG_MASK | pid, + F8ILL_KULONG_MASK | tgid, + F8ILL_KULONG_MASK | tid, F8ILL_KULONG_MASK | sig, info); } @@ -32,6 +33,8 @@ k_tgsigqueueinfo(const pid_t pid, const int sig, const void *const info) int main(void) { + PIDNS_TEST_INIT; + const struct sigaction sa = { .sa_handler = SIG_IGN }; @@ -48,17 +51,22 @@ main(void) info->si_value.sival_ptr = (void *) (unsigned long) 0xdeadbeeffacefeedULL; - if (k_tgsigqueueinfo(info->si_pid, SIGUSR1, info)) + if (k_tgsigqueueinfo(getpid(), syscall(__NR_gettid), SIGUSR1, info)) (errno == ENOSYS ? perror_msg_and_skip : perror_msg_and_fail)( "rt_tgsigqueueinfo"); - printf("rt_tgsigqueueinfo(%u, %u, %s, {si_signo=%s" - ", si_code=SI_QUEUE, si_errno=ENOENT, si_pid=%u" - ", si_uid=%u, si_value={int=%d, ptr=%p}}) = 0\n", - info->si_pid, info->si_pid, "SIGUSR1", "SIGUSR1", - info->si_pid, info->si_uid, info->si_value.sival_int, + pidns_print_leader(); + printf("rt_tgsigqueueinfo(%d%s, %d%s, %s, {si_signo=%s" + ", si_code=SI_QUEUE, si_errno=ENOENT, si_pid=%d%s" + ", si_uid=%d, si_value={int=%d, ptr=%p}}) = 0\n", + info->si_pid, pidns_pid2str(PT_TGID), + info->si_pid, pidns_pid2str(PT_TID), + "SIGUSR1", "SIGUSR1", + info->si_pid, pidns_pid2str(PT_TGID), + info->si_uid, info->si_value.sival_int, info->si_value.sival_ptr); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-m32/s390_guarded_storage.c b/tests-m32/s390_guarded_storage.c index a84c1413..2a17b02a 100644 --- a/tests-m32/s390_guarded_storage.c +++ b/tests-m32/s390_guarded_storage.c @@ -1,14 +1,14 @@ /* * Check decoding of s390_guarded_storage syscall. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_s390_guarded_storage && defined HAVE_ASM_GUARDED_STORAGE_H diff --git a/tests-m32/s390_pci_mmio_read_write.c b/tests-m32/s390_pci_mmio_read_write.c index 0cd160c6..1286b134 100644 --- a/tests-m32/s390_pci_mmio_read_write.c +++ b/tests-m32/s390_pci_mmio_read_write.c @@ -1,14 +1,14 @@ /* * Check decoding of s390_pci_mmio_read and s390_pci_mmio_write syscalls. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_s390_pci_mmio_read && defined __NR_s390_pci_mmio_write diff --git a/tests-m32/s390_runtime_instr.c b/tests-m32/s390_runtime_instr.c index db31719b..a336f94b 100644 --- a/tests-m32/s390_runtime_instr.c +++ b/tests-m32/s390_runtime_instr.c @@ -1,14 +1,14 @@ /* * Check decoding of s390_runtime_instr syscall. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_s390_runtime_instr diff --git a/tests-m32/s390_sthyi.c b/tests-m32/s390_sthyi.c index 5186fdc9..48c3dda7 100644 --- a/tests-m32/s390_sthyi.c +++ b/tests-m32/s390_sthyi.c @@ -1,14 +1,14 @@ /* * Check decoding of s390_sthyi syscall. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined HAVE_ICONV_H && defined HAVE_ICONV_OPEN && defined __NR_s390_sthyi @@ -113,7 +113,7 @@ ebcdic2ascii(unsigned char *ebcdic, size_t size) size, sizeof(ascii_buf)); if (cd == (iconv_t) -1) perror_msg_and_fail("ebcdic2ascii: unable to allocate a " - "conversion descriptior for converting " + "conversion descriptor for converting " "EBCDIC to ASCII"); while ((ret = iconv(cd, &ebcdic_pos, &ebcdic_left, @@ -185,6 +185,44 @@ print_ebcdic(const char *prefix, unsigned char *addr, unsigned int offs, return true; } +static inline void +print_funcs(unsigned char *addr, unsigned int offs) +{ + bool cont; + const uint8_t *funcs = addr + offs; + + if (!funcs[0]) + return; + + printf(" /* "); + + if (funcs[0] & 0x80) { + printf("0: Obtain CPU Capacity Info"); + cont = true; + } + + if (funcs[0] & 0x40) + printf("%s1: Hypervisor Environment Info", + cont ? ", " : (cont = true, "")); + if (funcs[0] & 0x20) + printf("%s2: Guest List", + cont ? ", " : (cont = true, "")); + if (funcs[0] & 0x10) + printf("%s3: Designated Guest Info", + cont ? ", " : (cont = true, "")); + if (funcs[0] & 0x08) + printf("%s4: Resource Pool List", + cont ? ", " : (cont = true, "")); + if (funcs[0] & 0x04) + printf("%s5: Designated Resource Pool Information", + cont ? ", " : (cont = true, "")); + if (funcs[0] & 0x02) + printf("%s6: Resource Pool Member List", + cont ? ", " : (cont = true, "")); + + printf(" */"); +} + static void print_hypervisor_header(unsigned char *buf, int level, unsigned int offs_pos, unsigned int len_pos, bool mt) @@ -220,10 +258,16 @@ print_hypervisor_header(unsigned char *buf, int level, unsigned int offs_pos, "for capping"); printed = true; } - if (cur[0] & 0x3F) { + if (cur[0] & 0x20) { if (printed) printf(", "); - printf("%#hhx - ???", cur[0] & 0x3F); + printf("0x20 - hypervisor is MT-enabled"); + printed = true; + } + if (cur[0] & 0x1F) { + if (printed) + printf(", "); + printf("%#hhx - ???", cur[0] & 0x1F); } printf(" */"); } @@ -254,7 +298,20 @@ print_hypervisor_header(unsigned char *buf, int level, unsigned int offs_pos, print_u16(", infydifl", cur, 30, VERBOSE); # if VERBOSE - if (hdr_size > 32 && !is_empty(cur + 32, hdr_size - 32)) { + if (hdr_size >= 48) { + printf(", infyinsf="); + print_quoted_hex((char *) (cur + 32), 8); + print_funcs(cur, 32); + + printf(", infyautf="); + print_quoted_hex((char *) (cur + 40), 8); + print_funcs(cur, 40); + + if (hdr_size > 48 && !is_empty(cur + 48, hdr_size - 48)) { + printf(", "); + print_quoted_hex((char *) (cur + 48), hdr_size - 48); + } + } else if (hdr_size > 32 && !is_empty(cur + 32, hdr_size - 32)) { printf(", "); print_quoted_hex((char *) (cur + 32), hdr_size - 32); } @@ -452,7 +509,7 @@ print_sthyi(unsigned char *buf) hdr_size = *(uint16_t *) (buf + 10); if (hdr_size < 44) error_msg_and_fail("sthyi: header section is too small " - "(got %hu, 44 expected)", hdr_size); + "(got %hu, >=44 expected)", hdr_size); /* INFHFLG1 */ print_0x8("{/* header */ {infhflg1", buf, 0, true); @@ -541,7 +598,7 @@ print_sthyi(unsigned char *buf) hdr_size = *(uint16_t *) (buf + 14); if (hdr_size < 60) error_msg_and_fail("sthyi: machine section is too small " - "(got %hu, 60 expected)", hdr_size); + "(got %hu, >=60 expected)", hdr_size); cur = buf + offs; @@ -584,7 +641,19 @@ print_sthyi(unsigned char *buf) print_ebcdic(", infmseq", cur, 40, 16, id_valid, false); print_ebcdic(", infmpman", cur, 56, 4, id_valid, false); - if (hdr_size > 60 && !is_empty(cur + 60, hdr_size - 60)) { + if (hdr_size >= 72) { + if (cur[60] || cur[61] || cur[62] || cur[63]) + printf(", reserved_1__=" + "\"\\x%#02hhx\\x%#02hhx\\x%#02hhx\\x%#02hhx\"", + cur[60], cur[61], cur[62], cur[63]); + + print_ebcdic(", infmplnm", cur, 64, 8, false, false); + + if (hdr_size > 72 && !is_empty(cur + 72, hdr_size - 72)) { + printf(", "); + print_quoted_hex((char *) (cur + 72), hdr_size - 72); + } + } else if (hdr_size > 60 && !is_empty(cur + 60, hdr_size - 60)) { printf(", "); print_quoted_hex((char *) (cur + 60), hdr_size - 60); } @@ -601,9 +670,9 @@ partition_hdr: goto hv_hdr; hdr_size = *(uint16_t *) (buf + 18); - if (hdr_size < 56) + if (hdr_size < 40) error_msg_and_fail("sthyi: partition section is too small " - "(got %hu, 56 expected)", hdr_size); + "(got %hu, >=40 expected)", hdr_size); cur = buf + offs; @@ -672,21 +741,28 @@ partition_hdr: print_weight(", infpwbif", cur, 32, pwcap_valid); print_weight(", infpabif", cur, 36, pacap_valid); - if (print_ebcdic(", infplgnm", cur, 40, 8, false, false)) { - - print_weight(", infplgcp", cur, 48, false); - print_weight(", infplgif", cur, 52, false); - } else { - if (lpar_valid) { - printf(", infplgnm="); - print_quoted_hex((char *) (cur + 40), 8); + if (hdr_size >= 56) { + if (print_ebcdic(", infplgnm", cur, 40, 8, false, false)) { + print_weight(", infplgcp", cur, 48, false); + print_weight(", infplgif", cur, 52, false); + } else { + if (lpar_valid) { + printf(", infplgnm="); + print_quoted_hex((char *) (cur + 40), 8); + } + print_x32(", infplgcp", cur, 48, false); + print_x32(", infplgif", cur, 52, false); } - - print_x32(", infplgcp", cur, 48, false); - print_x32(", infplgif", cur, 52, false); } - if (hdr_size > 56 && !is_empty(cur + 56, hdr_size - 56)) { + if (hdr_size >= 64) { + print_ebcdic(", infpplnm", cur, 56, 8, false, false); + + if (hdr_size > 64 && !is_empty(cur + 64, hdr_size - 64)) { + printf(", "); + print_quoted_hex((char *) (cur + 64), hdr_size - 64); + } + } else if (hdr_size > 56 && !is_empty(cur + 56, hdr_size - 56)) { printf(", "); print_quoted_hex((char *) (cur + 56), hdr_size - 56); } diff --git a/tests-m32/sched_get_priority_mxx.c b/tests-m32/sched_get_priority_mxx.c index 7715d286..56bbef57 100644 --- a/tests-m32/sched_get_priority_mxx.c +++ b/tests-m32/sched_get_priority_mxx.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_sched_get_priority_min) \ && defined(__NR_sched_get_priority_max) diff --git a/tests-m32/sched_rr_get_interval.c b/tests-m32/sched_rr_get_interval.c index b1117f3b..3af6f851 100644 --- a/tests-m32/sched_rr_get_interval.c +++ b/tests-m32/sched_rr_get_interval.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sched_rr_get_interval diff --git a/tests-m32/sched_xetaffinity--pidns-translation.c b/tests-m32/sched_xetaffinity--pidns-translation.c new file mode 100644 index 00000000..814e3989 --- /dev/null +++ b/tests-m32/sched_xetaffinity--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "sched_xetaffinity.c" diff --git a/tests-m32/sched_xetaffinity--pidns-translation.gen.test b/tests-m32/sched_xetaffinity--pidns-translation.gen.test new file mode 100755 index 00000000..767fa1a7 --- /dev/null +++ b/tests-m32/sched_xetaffinity--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sched_xetaffinity--pidns-translation test_pidns -a28 -e trace=sched_getaffinity,sched_setaffinity); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a28 -e trace=sched_getaffinity,sched_setaffinity diff --git a/tests-m32/sched_xetaffinity.c b/tests-m32/sched_xetaffinity.c index 4e6fbe20..105b3354 100644 --- a/tests-m32/sched_xetaffinity.c +++ b/tests-m32/sched_xetaffinity.c @@ -2,13 +2,15 @@ * This file is part of sched_xetaffinity strace test. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #include #if defined __NR_sched_getaffinity && defined __NR_sched_setaffinity \ @@ -40,8 +42,11 @@ setaffinity(unsigned long pid, unsigned long size, void *set) int main(void) { + PIDNS_TEST_INIT; + unsigned int cpuset_size = 1; const pid_t pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); while (cpuset_size) { assert(getaffinity(pid, cpuset_size, NULL) == -1); @@ -49,18 +54,21 @@ main(void) break; if (EINVAL != errno) perror_msg_and_skip("sched_getaffinity"); - printf("sched_getaffinity(%d, %u, NULL) = %s\n", - pid, cpuset_size, errstr); + pidns_print_leader(); + printf("sched_getaffinity(%d%s, %u, NULL) = %s\n", + pid, pid_str, cpuset_size, errstr); cpuset_size <<= 1; } assert(cpuset_size); - printf("sched_getaffinity(%d, %u, NULL) = %s\n", - pid, cpuset_size, errstr); + pidns_print_leader(); + printf("sched_getaffinity(%d%s, %u, NULL) = %s\n", + pid, pid_str, cpuset_size, errstr); cpu_set_t *cpuset = tail_alloc(cpuset_size); getaffinity(pid, cpuset_size, cpuset + 1); - printf("sched_getaffinity(%d, %u, %p) = %s\n", - pid, cpuset_size, cpuset + 1, errstr); + pidns_print_leader(); + printf("sched_getaffinity(%d%s, %u, %p) = %s\n", + pid, pid_str, cpuset_size, cpuset + 1, errstr); int ret_size = getaffinity(pid, cpuset_size, cpuset); if (ret_size < 0) @@ -68,7 +76,8 @@ main(void) pid, (unsigned) cpuset_size, cpuset, errstr); assert(ret_size <= (int) cpuset_size); - printf("sched_getaffinity(%d, %u, [", pid, cpuset_size); + pidns_print_leader(); + printf("sched_getaffinity(%d%s, %u, [", pid, pid_str, cpuset_size); const char *sep; unsigned int i, cpu; for (i = 0, cpu = 0, sep = ""; i < (unsigned) ret_size * 8; ++i) { @@ -84,8 +93,9 @@ main(void) CPU_SET_S(cpu, cpuset_size, cpuset); if (setaffinity(pid, cpuset_size, cpuset)) perror_msg_and_skip("sched_setaffinity"); - printf("sched_setaffinity(%d, %u, [%u]) = 0\n", - pid, cpuset_size, cpu); + pidns_print_leader(); + printf("sched_setaffinity(%d%s, %u, [%u]) = 0\n", + pid, pid_str, cpuset_size, cpu); const unsigned int big_size = cpuset_size < 128 ? 128 : cpuset_size * 2; cpuset = tail_alloc(big_size); @@ -94,7 +104,8 @@ main(void) perror_msg_and_fail("sched_getaffinity(%d, %u, %p) = %s\n", pid, big_size, cpuset, errstr); assert(ret_size <= (int) big_size); - printf("sched_getaffinity(%d, %u, [", pid, big_size); + pidns_print_leader(); + printf("sched_getaffinity(%d%s, %u, [", pid, pid_str, big_size); for (i = 0, sep = ""; i < (unsigned) ret_size * 8; ++i) { if (CPU_ISSET_S(i, (unsigned) ret_size, cpuset)) { printf("%s%u", sep, i); @@ -103,6 +114,7 @@ main(void) } printf("]) = %s\n", errstr); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-m32/sched_xetattr--pidns-translation.c b/tests-m32/sched_xetattr--pidns-translation.c new file mode 100644 index 00000000..c152023d --- /dev/null +++ b/tests-m32/sched_xetattr--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "sched_xetattr.c" diff --git a/tests-m32/sched_xetattr--pidns-translation.gen.test b/tests-m32/sched_xetattr--pidns-translation.gen.test new file mode 100755 index 00000000..52692a85 --- /dev/null +++ b/tests-m32/sched_xetattr--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sched_xetattr--pidns-translation test_pidns -a29 -e trace=sched_getattr,sched_setattr); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a29 -e trace=sched_getattr,sched_setattr diff --git a/tests-m32/sched_xetattr.c b/tests-m32/sched_xetattr.c index 3440876b..4a76b2d6 100644 --- a/tests-m32/sched_xetattr.c +++ b/tests-m32/sched_xetattr.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2017 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_sched_getattr && defined __NR_sched_setattr @@ -15,6 +15,7 @@ # include # include # include +# include "pidns.h" # include "sched_attr.h" # include "xlat.h" # include "xlat/schedulers.h" @@ -41,6 +42,8 @@ sys_sched_setattr(kernel_ulong_t pid, kernel_ulong_t attr, kernel_ulong_t flags) int main(void) { + PIDNS_TEST_INIT; + static const kernel_ulong_t bogus_pid = (kernel_ulong_t) 0xdefacedfacefeedULL; static const kernel_ulong_t bogus_size = @@ -48,20 +51,28 @@ main(void) static const kernel_ulong_t bogus_flags = (kernel_ulong_t) 0xdefaceddeadc0deULL; + const int pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); + TAIL_ALLOC_OBJECT_CONST_PTR(struct sched_attr, attr); TAIL_ALLOC_OBJECT_CONST_PTR(unsigned int, psize); void *const efault = attr + 1; - sys_sched_getattr(0, 0, 0, 0); - printf("sched_getattr(0, NULL, 0, 0) = %s\n", errstr); + sys_sched_getattr(pid, 0, 0, 0); + pidns_print_leader(); + printf("sched_getattr(%d%s, NULL, 0, 0) = %s\n", + pid, pid_str, errstr); sys_sched_getattr(0, (unsigned long) attr, 0, 0); + pidns_print_leader(); printf("sched_getattr(0, %p, 0, 0) = %s\n", attr, errstr); sys_sched_getattr(bogus_pid, 0, 0, 0); + pidns_print_leader(); printf("sched_getattr(%d, NULL, 0, 0) = %s\n", (int) bogus_pid, errstr); sys_sched_getattr(-1U, (unsigned long) attr, bogus_size, bogus_flags); + pidns_print_leader(); printf("sched_getattr(-1, %p, %s%u, %u) = %s\n", attr, # if defined __arm64__ || defined __aarch64__ @@ -71,24 +82,52 @@ main(void) # endif (unsigned) bogus_size, (unsigned) bogus_flags, errstr); + sys_sched_getattr(0, (unsigned long) efault, SCHED_ATTR_MIN_SIZE, 0); + pidns_print_leader(); + printf("sched_getattr(0, %p, %u, 0) = %s\n", + efault, (unsigned) SCHED_ATTR_MIN_SIZE, errstr); + + if (sys_sched_getattr(0, (unsigned long) attr, SCHED_ATTR_MIN_SIZE, 0)) + perror_msg_and_skip("sched_getattr"); + pidns_print_leader(); + printf("sched_getattr(0, {size=%u, sched_policy=", attr->size); + printxval(schedulers, attr->sched_policy, NULL); + printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u" + ", sched_runtime=%" PRIu64 ", sched_deadline=%" PRIu64 + ", sched_period=%" PRIu64 "}, %u, 0) = 0\n", + attr->sched_flags ? "SCHED_FLAG_RESET_ON_FORK" : "0", + attr->sched_nice, + attr->sched_priority, + attr->sched_runtime, + attr->sched_deadline, + attr->sched_period, + (unsigned) SCHED_ATTR_MIN_SIZE); + sys_sched_getattr(0, (unsigned long) efault, sizeof(*attr), 0); + pidns_print_leader(); printf("sched_getattr(0, %p, %u, 0) = %s\n", efault, (unsigned) sizeof(*attr), errstr); if (sys_sched_getattr(0, (unsigned long) attr, sizeof(*attr), 0)) perror_msg_and_skip("sched_getattr"); + pidns_print_leader(); printf("sched_getattr(0, {size=%u, sched_policy=", attr->size); printxval(schedulers, attr->sched_policy, NULL); printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u" ", sched_runtime=%" PRIu64 ", sched_deadline=%" PRIu64 - ", sched_period=%" PRIu64 "}, %u, 0) = 0\n", + ", sched_period=%" PRIu64, attr->sched_flags ? "SCHED_FLAG_RESET_ON_FORK" : "0", attr->sched_nice, attr->sched_priority, attr->sched_runtime, attr->sched_deadline, - attr->sched_period, - (unsigned) sizeof(*attr)); + attr->sched_period); + if (attr->size >= SCHED_ATTR_SIZE_VER1) { + printf(", sched_util_min=%u, sched_util_max=%u", + attr->sched_util_min, + attr->sched_util_max); + } + printf("}, %u, 0) = 0\n", (unsigned) sizeof(*attr)); # if defined __arm64__ || defined __aarch64__ long rc = @@ -97,66 +136,91 @@ main(void) F8ILL_KULONG_MASK | sizeof(*attr), F8ILL_KULONG_MASK); # if defined __arm64__ || defined __aarch64__ if (rc) { + pidns_print_leader(); printf("sched_getattr(0, %p, 0xffffffff<<32|%u, 0) = %s\n", attr, (unsigned) sizeof(*attr), errstr); } else # endif { + pidns_print_leader(); printf("sched_getattr(0, {size=%u, sched_policy=", attr->size); printxval(schedulers, attr->sched_policy, NULL); printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u" ", sched_runtime=%" PRIu64 ", sched_deadline=%" PRIu64 - ", sched_period=%" PRIu64 "}, %u, 0) = 0\n", + ", sched_period=%" PRIu64, attr->sched_flags ? "SCHED_FLAG_RESET_ON_FORK" : "0", attr->sched_nice, attr->sched_priority, attr->sched_runtime, attr->sched_deadline, - attr->sched_period, - (unsigned) sizeof(*attr)); + attr->sched_period); + if (attr->size >= SCHED_ATTR_SIZE_VER1) { + printf(", sched_util_min=%u, sched_util_max=%u", + attr->sched_util_min, + attr->sched_util_max); + } + printf("}, %u, 0) = 0\n", (unsigned) sizeof(*attr)); } sys_sched_setattr(bogus_pid, 0, 0); + pidns_print_leader(); printf("sched_setattr(%d, NULL, 0) = %s\n", (int) bogus_pid, errstr); attr->sched_flags |= 1; - if (sys_sched_setattr(0, (unsigned long) attr, 0)) + if (sys_sched_setattr(pid, (unsigned long) attr, 0)) perror_msg_and_skip("sched_setattr"); - printf("sched_setattr(0, {size=%u, sched_policy=", attr->size); + pidns_print_leader(); + printf("sched_setattr(%d%s, {size=%u, sched_policy=", + pid, pid_str, attr->size); printxval(schedulers, attr->sched_policy, NULL); printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u" ", sched_runtime=%" PRIu64 ", sched_deadline=%" PRIu64 - ", sched_period=%" PRIu64 "}, 0) = 0\n", + ", sched_period=%" PRIu64, "SCHED_FLAG_RESET_ON_FORK", attr->sched_nice, attr->sched_priority, attr->sched_runtime, attr->sched_deadline, attr->sched_period); + if (attr->size >= SCHED_ATTR_SIZE_VER1) { + printf(", sched_util_min=%u, sched_util_max=%u", + attr->sched_util_min, + attr->sched_util_max); + } + printf("}, 0) = 0\n"); sys_sched_setattr(F8ILL_KULONG_MASK, (unsigned long) attr, F8ILL_KULONG_MASK); + pidns_print_leader(); printf("sched_setattr(0, {size=%u, sched_policy=", attr->size); printxval(schedulers, attr->sched_policy, NULL); printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u" ", sched_runtime=%" PRIu64 ", sched_deadline=%" PRIu64 - ", sched_period=%" PRIu64 "}, 0) = 0\n", + ", sched_period=%" PRIu64, "SCHED_FLAG_RESET_ON_FORK", attr->sched_nice, attr->sched_priority, attr->sched_runtime, attr->sched_deadline, attr->sched_period); + if (attr->size >= SCHED_ATTR_SIZE_VER1) { + printf(", sched_util_min=%u, sched_util_max=%u", + attr->sched_util_min, + attr->sched_util_max); + } + printf("}, 0) = 0\n"); *psize = attr->size; sys_sched_setattr(0, (unsigned long) psize, 0); + pidns_print_leader(); printf("sched_setattr(0, %p, 0) = %s\n", psize, errstr); attr->size = 0; sys_sched_setattr(0, (unsigned long) attr, 0); + pidns_print_leader(); printf("sched_setattr(0, {size=%u, sched_policy=", attr->size); printxval(schedulers, attr->sched_policy, NULL); printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u" @@ -172,18 +236,20 @@ main(void) attr->size = 1; sys_sched_setattr(0, (unsigned long) attr, 0); + pidns_print_leader(); printf("sched_setattr(0, {size=%u} => {size=%u}, 0) = %s\n", 1, attr->size, errstr); attr->size = SCHED_ATTR_MIN_SIZE - 1; sys_sched_setattr(0, (unsigned long) attr, 0); + pidns_print_leader(); printf("sched_setattr(0, {size=%u} => {size=%u}, 0) = %s\n", SCHED_ATTR_MIN_SIZE - 1, attr->size, errstr); attr->size = 0x90807060; attr->sched_policy = 0xca7faced; - attr->sched_flags = 0xbadc0ded1057da78ULL; + attr->sched_flags = 0xbadc0ded1057da80ULL; attr->sched_nice = 0xafbfcfdf; attr->sched_priority = 0xb8c8d8e8; attr->sched_runtime = 0xbadcaffedeadf157ULL; @@ -191,11 +257,12 @@ main(void) attr->sched_period = 0xded1ca7edda7aca7ULL; sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags); + pidns_print_leader(); printf("sched_setattr(%d, {size=%u, sched_policy=%#x /* SCHED_??? */, " "sched_flags=%#" PRIx64 " /* SCHED_FLAG_??? */, " "sched_nice=%d, sched_priority=%u, sched_runtime=%" PRIu64 ", " - "sched_deadline=%" PRIu64 ", sched_period=%" PRIu64 ", ...}, %u)" - " = %s\n", + "sched_deadline=%" PRIu64 ", sched_period=%" PRIu64 ", " + "sched_util_min=%u, sched_util_max=%u, ...}, %u) = %s\n", (int) bogus_pid, attr->size, attr->sched_policy, @@ -205,6 +272,8 @@ main(void) attr->sched_runtime, attr->sched_deadline, attr->sched_period, + attr->sched_util_min, + attr->sched_util_max, (unsigned) bogus_flags, errstr); if (F8ILL_KULONG_SUPPORTED) { @@ -223,7 +292,7 @@ main(void) attr->size = 0x90807060; attr->sched_policy = 0xca7faced; - attr->sched_flags = 0xfULL; + attr->sched_flags = 0x87ULL; attr->sched_nice = 0xafbfcfdf; attr->sched_priority = 0xb8c8d8e8; attr->sched_runtime = 0xbadcaffedeadf157ULL; @@ -231,35 +300,143 @@ main(void) attr->sched_period = 0xded1ca7edda7aca7ULL; sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags); + pidns_print_leader(); printf("sched_setattr(%d, {size=%u, sched_policy=%#x /* SCHED_??? */, " "sched_flags=SCHED_FLAG_RESET_ON_FORK|SCHED_FLAG_RECLAIM|" - "SCHED_FLAG_DL_OVERRUN|0x8, " + "SCHED_FLAG_DL_OVERRUN|0x80, " + "sched_nice=%d, sched_priority=%u, sched_runtime=%" PRIu64 ", " + "sched_deadline=%" PRIu64 ", sched_period=%" PRIu64 ", " + "sched_util_min=%u, sched_util_max=%u, ...}, %u) = %s\n", + (int) bogus_pid, + attr->size, + attr->sched_policy, + attr->sched_nice, + attr->sched_priority, + attr->sched_runtime, + attr->sched_deadline, + attr->sched_period, + attr->sched_util_min, + attr->sched_util_max, + (unsigned) bogus_flags, errstr); + + if (F8ILL_KULONG_SUPPORTED) { + const kernel_ulong_t ill = f8ill_ptr_to_kulong(attr); + + sys_sched_getattr(0, ill, sizeof(*attr), 0); + pidns_print_leader(); + printf("sched_getattr(0, %#llx, %u, 0) = %s\n", + (unsigned long long) ill, (unsigned) sizeof(*attr), + errstr); + + sys_sched_setattr(0, ill, 0); + pidns_print_leader(); + printf("sched_setattr(0, %#llx, 0) = %s\n", + (unsigned long long) ill, errstr); + } + + attr->size = SCHED_ATTR_MIN_SIZE; + attr->sched_policy = 0xdefaced; + attr->sched_flags = 0x8fULL; + + sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags); + pidns_print_leader(); + printf("sched_setattr(%d, {size=%u, " + "sched_flags=SCHED_FLAG_RESET_ON_FORK|SCHED_FLAG_RECLAIM|" + "SCHED_FLAG_DL_OVERRUN|SCHED_FLAG_KEEP_POLICY|0x80, " "sched_nice=%d, sched_priority=%u, sched_runtime=%" PRIu64 ", " - "sched_deadline=%" PRIu64 ", sched_period=%" PRIu64 ", ...}, %u)" + "sched_deadline=%" PRIu64 ", sched_period=%" PRIu64 "}, %u)" " = %s\n", (int) bogus_pid, attr->size, + attr->sched_nice, + attr->sched_priority, + attr->sched_runtime, + attr->sched_deadline, + attr->sched_period, + (unsigned) bogus_flags, errstr); + + if (F8ILL_KULONG_SUPPORTED) { + const kernel_ulong_t ill = f8ill_ptr_to_kulong(attr); + + sys_sched_getattr(0, ill, sizeof(*attr), 0); + pidns_print_leader(); + printf("sched_getattr(0, %#llx, %u, 0) = %s\n", + (unsigned long long) ill, (unsigned) sizeof(*attr), + errstr); + + sys_sched_setattr(0, ill, 0); + pidns_print_leader(); + printf("sched_setattr(0, %#llx, 0) = %s\n", + (unsigned long long) ill, errstr); + } + + attr->size = SCHED_ATTR_SIZE_VER1; + attr->sched_flags = 0xe7ULL; + + sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags); + pidns_print_leader(); + printf("sched_setattr(%d, {size=%u, sched_policy=%#x /* SCHED_??? */, " + "sched_flags=SCHED_FLAG_RESET_ON_FORK|SCHED_FLAG_RECLAIM|" + "SCHED_FLAG_DL_OVERRUN|SCHED_FLAG_UTIL_CLAMP_MIN" + "|SCHED_FLAG_UTIL_CLAMP_MAX|0x80, " + "sched_nice=%d, sched_priority=%u, sched_runtime=%" PRIu64 ", " + "sched_deadline=%" PRIu64 ", sched_period=%" PRIu64 ", " + "sched_util_min=%u, sched_util_max=%u}, %u) = %s\n", + (int) bogus_pid, + attr->size, attr->sched_policy, attr->sched_nice, attr->sched_priority, attr->sched_runtime, attr->sched_deadline, attr->sched_period, + attr->sched_util_min, + attr->sched_util_max, + (unsigned) bogus_flags, errstr); + + if (F8ILL_KULONG_SUPPORTED) { + const kernel_ulong_t ill = f8ill_ptr_to_kulong(attr); + + sys_sched_getattr(0, ill, sizeof(*attr), 0); + pidns_print_leader(); + printf("sched_getattr(0, %#llx, %u, 0) = %s\n", + (unsigned long long) ill, (unsigned) sizeof(*attr), + errstr); + + sys_sched_setattr(0, ill, 0); + pidns_print_leader(); + printf("sched_setattr(0, %#llx, 0) = %s\n", + (unsigned long long) ill, errstr); + } + + attr->sched_flags = 0xcaffee90LL; + + sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags); + pidns_print_leader(); + printf("sched_setattr(%d, {size=%u, sched_flags=SCHED_FLAG_KEEP_PARAMS" + "|0xcaffee80, sched_util_min=%u, sched_util_max=%u}, %u) = %s\n", + (int) bogus_pid, + attr->size, + attr->sched_util_min, + attr->sched_util_max, (unsigned) bogus_flags, errstr); if (F8ILL_KULONG_SUPPORTED) { const kernel_ulong_t ill = f8ill_ptr_to_kulong(attr); sys_sched_getattr(0, ill, sizeof(*attr), 0); + pidns_print_leader(); printf("sched_getattr(0, %#llx, %u, 0) = %s\n", (unsigned long long) ill, (unsigned) sizeof(*attr), errstr); sys_sched_setattr(0, ill, 0); + pidns_print_leader(); printf("sched_setattr(0, %#llx, 0) = %s\n", (unsigned long long) ill, errstr); } + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-m32/sched_xetparam--pidns-translation.c b/tests-m32/sched_xetparam--pidns-translation.c new file mode 100644 index 00000000..9fb3e579 --- /dev/null +++ b/tests-m32/sched_xetparam--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "sched_xetparam.c" diff --git a/tests-m32/sched_xetparam--pidns-translation.gen.test b/tests-m32/sched_xetparam--pidns-translation.gen.test new file mode 100755 index 00000000..309cabbe --- /dev/null +++ b/tests-m32/sched_xetparam--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sched_xetparam--pidns-translation test_pidns -a23 -e trace=sched_getparam,sched_setparam); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a23 -e trace=sched_getparam,sched_setparam diff --git a/tests-m32/sched_xetparam.c b/tests-m32/sched_xetparam.c index e1325a6f..f48ba6d7 100644 --- a/tests-m32/sched_xetparam.c +++ b/tests-m32/sched_xetparam.c @@ -1,12 +1,13 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #if defined __NR_sched_getparam && defined __NR_sched_setparam @@ -17,18 +18,27 @@ int main(void) { + PIDNS_TEST_INIT; + struct sched_param *const param = tail_alloc(sizeof(struct sched_param)); - long rc = syscall(__NR_sched_getparam, 0, param); - printf("sched_getparam(0, [%d]) = %ld\n", - param->sched_priority, rc); + const int pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); + + long rc = syscall(__NR_sched_getparam, pid, param); + pidns_print_leader(); + printf("sched_getparam(%d%s, [%d]) = %ld\n", + pid, pid_str, param->sched_priority, rc); param->sched_priority = -1; - rc = syscall(__NR_sched_setparam, 0, param); - printf("sched_setparam(0, [%d]) = %ld %s (%m)\n", + rc = syscall(__NR_sched_setparam, pid, param); + pidns_print_leader(); + printf("sched_setparam(%d%s, [%d]) = %ld %s (%m)\n", + pid, pid_str, param->sched_priority, rc, errno2name()); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-m32/sched_xetscheduler--pidns-translation.c b/tests-m32/sched_xetscheduler--pidns-translation.c new file mode 100644 index 00000000..78b794b2 --- /dev/null +++ b/tests-m32/sched_xetscheduler--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "sched_xetscheduler.c" diff --git a/tests-m32/sched_xetscheduler--pidns-translation.gen.test b/tests-m32/sched_xetscheduler--pidns-translation.gen.test new file mode 100755 index 00000000..12581e44 --- /dev/null +++ b/tests-m32/sched_xetscheduler--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sched_xetscheduler--pidns-translation test_pidns -a22 -e trace=sched_getscheduler,sched_setscheduler); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a22 -e trace=sched_getscheduler,sched_setscheduler diff --git a/tests-m32/sched_xetscheduler.c b/tests-m32/sched_xetscheduler.c index bc48085a..d93db385 100644 --- a/tests-m32/sched_xetscheduler.c +++ b/tests-m32/sched_xetscheduler.c @@ -1,12 +1,13 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #if defined __NR_sched_getscheduler && defined __NR_sched_setscheduler @@ -17,8 +18,13 @@ int main(void) { + PIDNS_TEST_INIT; + TAIL_ALLOC_OBJECT_CONST_PTR(struct sched_param, param); - long rc = syscall(__NR_sched_getscheduler, 0); + const int pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); + + long rc = syscall(__NR_sched_getscheduler, pid); const char *scheduler; switch (rc) { case SCHED_FIFO: @@ -50,33 +56,43 @@ main(void) default: scheduler = "SCHED_OTHER"; } - printf("sched_getscheduler(0) = %ld (%s)\n", - rc, scheduler); + pidns_print_leader(); + printf("sched_getscheduler(%d%s) = %ld (%s)\n", + pid, pid_str, rc, scheduler); rc = syscall(__NR_sched_getscheduler, -1); + pidns_print_leader(); printf("sched_getscheduler(-1) = %s\n", sprintrc(rc)); param->sched_priority = -1; - rc = syscall(__NR_sched_setscheduler, 0, SCHED_FIFO, NULL); - printf("sched_setscheduler(0, SCHED_FIFO, NULL) = %s\n", sprintrc(rc)); + rc = syscall(__NR_sched_setscheduler, pid, SCHED_FIFO, NULL); + pidns_print_leader(); + printf("sched_setscheduler(%d%s, SCHED_FIFO, NULL) = %s\n", + pid, pid_str, sprintrc(rc)); - rc = syscall(__NR_sched_setscheduler, 0, SCHED_FIFO, param + 1); - printf("sched_setscheduler(0, SCHED_FIFO, %p) = %s\n", param + 1, - sprintrc(rc)); + rc = syscall(__NR_sched_setscheduler, pid, SCHED_FIFO, param + 1); + pidns_print_leader(); + printf("sched_setscheduler(%d%s, SCHED_FIFO, %p) = %s\n", + pid, pid_str, param + 1, sprintrc(rc)); - rc = syscall(__NR_sched_setscheduler, 0, 0xfaceda7a, param); - printf("sched_setscheduler(0, %#x /* SCHED_??? */, [%d]) = %s\n", - 0xfaceda7a, param->sched_priority, sprintrc(rc)); + rc = syscall(__NR_sched_setscheduler, pid, 0xfaceda7a, param); + pidns_print_leader(); + printf("sched_setscheduler(%d%s, %#x /* SCHED_??? */, [%d]) = %s\n", + pid, pid_str, 0xfaceda7a, + param->sched_priority, sprintrc(rc)); rc = syscall(__NR_sched_setscheduler, -1, SCHED_FIFO, param); + pidns_print_leader(); printf("sched_setscheduler(-1, SCHED_FIFO, [%d]) = %s\n", param->sched_priority, sprintrc(rc)); - rc = syscall(__NR_sched_setscheduler, 0, SCHED_FIFO, param); - printf("sched_setscheduler(0, SCHED_FIFO, [%d]) = %s\n", - param->sched_priority, sprintrc(rc)); + rc = syscall(__NR_sched_setscheduler, pid, SCHED_FIFO, param); + pidns_print_leader(); + printf("sched_setscheduler(%d%s, SCHED_FIFO, [%d]) = %s\n", + pid, pid_str, param->sched_priority, sprintrc(rc)); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-m32/sched_yield.c b/tests-m32/sched_yield.c index 40b55617..8a3d689f 100644 --- a/tests-m32/sched_yield.c +++ b/tests-m32/sched_yield.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sched_yield diff --git a/tests-m32/seccomp-filter-v.c b/tests-m32/seccomp-filter-v.c index 98eaeee5..b5f38ca5 100644 --- a/tests-m32/seccomp-filter-v.c +++ b/tests-m32/seccomp-filter-v.c @@ -2,7 +2,7 @@ * Check verbose decoding of seccomp SECCOMP_SET_MODE_FILTER. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -13,16 +13,13 @@ #include #include #include -#include #include - -#ifdef HAVE_PRCTL -# include -#endif +#include #ifdef HAVE_LINUX_SECCOMP_H # include #endif #include +#include "scno.h" #if defined __NR_seccomp \ && defined PR_SET_NO_NEW_PRIVS \ @@ -43,14 +40,14 @@ BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_KILL) # define PRINT_ALLOW_SYSCALL(nr) \ - tprintf("BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, %#x, 0, 0x1), " \ - "BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_ALLOW), ", \ - __NR_ ## nr) + tprintf("BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, %#lx, 0, 0x1), " \ + "BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_ALLOW), ", \ + (long) __NR_ ## nr) # define PRINT_DENY_SYSCALL(nr, err) \ - tprintf("BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, %#x, 0, 0x1), " \ - "BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_ERRNO|%#x), ", \ - __NR_ ## nr, err) + tprintf("BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, %#lx, 0, 0x1), " \ + "BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_ERRNO|%#x), ", \ + (long) __NR_ ## nr, err) static const struct sock_filter filter_c[] = { /* load syscall number */ @@ -118,7 +115,8 @@ main(void) tprintf("seccomp(SECCOMP_SET_MODE_FILTER, %s, {len=%u, filter=[", "SECCOMP_FILTER_FLAG_TSYNC|SECCOMP_FILTER_FLAG_LOG|" "SECCOMP_FILTER_FLAG_SPEC_ALLOW|" - "SECCOMP_FILTER_FLAG_NEW_LISTENER|0xfffffff0", + "SECCOMP_FILTER_FLAG_NEW_LISTENER|" + "SECCOMP_FILTER_FLAG_TSYNC_ESRCH|0xffffffe0", prog->len); for (i = 0; i < BPF_MAXINSNS; ++i) { if (i) diff --git a/tests-m32/seccomp-filter.c b/tests-m32/seccomp-filter.c index 5e28ffca..ef485dd8 100644 --- a/tests-m32/seccomp-filter.c +++ b/tests-m32/seccomp-filter.c @@ -2,7 +2,7 @@ * Check decoding of seccomp SECCOMP_SET_MODE_FILTER. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +11,7 @@ #include "tests.h" #include -#include +#include "scno.h" #include #ifdef HAVE_LINUX_SECCOMP_H @@ -38,12 +38,13 @@ main(void) " = %ld %s (%m)\n", "SECCOMP_FILTER_FLAG_TSYNC|SECCOMP_FILTER_FLAG_LOG|" "SECCOMP_FILTER_FLAG_SPEC_ALLOW|" - "SECCOMP_FILTER_FLAG_NEW_LISTENER|0xfffffff0", + "SECCOMP_FILTER_FLAG_NEW_LISTENER|" + "SECCOMP_FILTER_FLAG_TSYNC_ESRCH|0xffffffe0", prog->len, prog->filter, rc, errno2name()); - rc = syscall(__NR_seccomp, SECCOMP_SET_MODE_FILTER, -16L, efault); + rc = syscall(__NR_seccomp, SECCOMP_SET_MODE_FILTER, -32L, efault); printf("seccomp(SECCOMP_SET_MODE_FILTER, %s, %p) = %ld %s (%m)\n", - "0xfffffff0 /* SECCOMP_FILTER_FLAG_??? */", + "0xffffffe0 /* SECCOMP_FILTER_FLAG_??? */", efault, rc, errno2name()); puts("+++ exited with 0 +++"); diff --git a/tests-m32/seccomp-strict.c b/tests-m32/seccomp-strict.c index 1d088109..fcf30e54 100644 --- a/tests-m32/seccomp-strict.c +++ b/tests-m32/seccomp-strict.c @@ -2,13 +2,14 @@ * Check how seccomp SECCOMP_SET_MODE_STRICT is decoded. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_seccomp && defined __NR_exit @@ -37,7 +38,7 @@ main(void) rc = 0; } else { /* - * If kernel implementaton of SECCOMP_MODE_STRICT is buggy, + * If kernel implementation of SECCOMP_MODE_STRICT is buggy, * the following syscall will result to SIGKILL. */ rc = write(1, text1, LENGTH_OF(text1)) != LENGTH_OF(text1); diff --git a/tests-m32/seccomp_get_action_avail.c b/tests-m32/seccomp_get_action_avail.c index e61678f4..6ae23b96 100644 --- a/tests-m32/seccomp_get_action_avail.c +++ b/tests-m32/seccomp_get_action_avail.c @@ -8,7 +8,7 @@ */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_seccomp diff --git a/tests-m32/select.c b/tests-m32/select.c index 7935032b..d65d1364 100644 --- a/tests-m32/select.c +++ b/tests-m32/select.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_select && !defined __NR__newselect diff --git a/tests-m32/semop-common.c b/tests-m32/semop-common.c new file mode 100644 index 00000000..646a1169 --- /dev/null +++ b/tests-m32/semop-common.c @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2016-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include +#include +#include +#include +#include +#include + +#define XLAT_MACROS_ONLY +#include "xlat/semop_flags.h" +#undef XLAT_MACROS_ONLY + +static const char *errstr; + +static long +k_semop(const unsigned int semid, + const kernel_ulong_t sops, + const unsigned int nsops); + +union semun { + int val; + struct semid_ds *buf; + unsigned short *array; + struct seminfo *__buf; +}; + +static int id = -1; + +static void +cleanup(void) +{ + semctl(id, 0, IPC_RMID, 0); + id = -1; +} + +int +main(void) +{ + static const int bogus_semid = 0xfdb97531; + static kernel_ulong_t bogus_sops = (kernel_ulong_t) -1ULL; + static const unsigned int bogus_nsops = 0xdeadbeefU; + + id = semget(IPC_PRIVATE, 1, 0600); + if (id < 0) + perror_msg_and_skip("semget"); + atexit(cleanup); + + union semun sem_union = { .val = 0 }; + if (semctl(id, 0, SETVAL, sem_union) == -1) + perror_msg_and_skip("semctl"); + + k_semop(bogus_semid, 0, bogus_nsops); + printf("semop(%d, NULL, %u) = %s\n", + bogus_semid, bogus_nsops, errstr); + + k_semop(bogus_semid, bogus_sops, 1); + printf("semop(%d, %#llx, %u) = %s\n", + bogus_semid, (unsigned long long) bogus_sops, 1, errstr); + + TAIL_ALLOC_OBJECT_CONST_PTR(struct sembuf, sem_b2); + sem_b2->sem_num = 0xface; + sem_b2->sem_op = 0xf00d; + sem_b2->sem_flg = 0xbeef; + + k_semop(bogus_semid, (uintptr_t) sem_b2, 2); + printf("semop(%d, [{%hu, %hd, %s%s%#hx}, ... /* %p */], %u) = %s\n", + bogus_semid, sem_b2->sem_num, sem_b2->sem_op, + sem_b2->sem_flg & SEM_UNDO ? "SEM_UNDO|" : "", + sem_b2->sem_flg & IPC_NOWAIT ? "IPC_NOWAIT|" : "", + (short) (sem_b2->sem_flg & ~(SEM_UNDO | IPC_NOWAIT)), + sem_b2 + 1, 2, errstr); + + TAIL_ALLOC_OBJECT_CONST_PTR(struct sembuf, sem_b); + sem_b->sem_num = 0; + sem_b->sem_op = 1; + sem_b->sem_flg = SEM_UNDO; + + k_semop(id, (uintptr_t) sem_b, 1); + printf("semop(%d, [{0, 1, SEM_UNDO}], 1) = %s\n", id, errstr); + + sem_b->sem_op = -1; + k_semop(id, (uintptr_t) sem_b, 1); + printf("semop(%d, [{0, -1, SEM_UNDO}], 1) = %s\n", id, errstr); + + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests-m32/semop-indirect.c b/tests-m32/semop-indirect.c new file mode 100644 index 00000000..452f7baf --- /dev/null +++ b/tests-m32/semop-indirect.c @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2016-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#if defined __NR_ipc && !defined __ARM_EABI__ + +# include "semop-common.c" + +# define XLAT_MACROS_ONLY +# include "xlat/ipccalls.h" +# undef XLAT_MACROS_ONLY + +static long +k_semop(const unsigned int semid, + const kernel_ulong_t sops, + const unsigned int nsops) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | SEMOP; + const kernel_ulong_t arg2 = fill | semid; + const kernel_ulong_t arg3 = fill | nsops; + const kernel_ulong_t arg5 = sops; + const long rc = syscall(__NR_ipc, arg1, arg2, arg3, bad, arg5, bad); + errstr = sprintrc(rc); + return rc; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_ipc && !__ARM_EABI__") + +#endif diff --git a/tests-m32/semop-indirect.gen.test b/tests-m32/semop-indirect.gen.test new file mode 100755 index 00000000..b70a697c --- /dev/null +++ b/tests-m32/semop-indirect.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (semop-indirect -a32 -e trace=semop); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a32 -e trace=semop diff --git a/tests-m32/semop.c b/tests-m32/semop.c index f7f04701..7725cd46 100644 --- a/tests-m32/semop.c +++ b/tests-m32/semop.c @@ -1,143 +1,34 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include -#include -#include -#include -#include +#include "scno.h" -#include "xlat.h" -#include "xlat/semop_flags.h" +#ifdef __NR_semop -union semun { - int val; - struct semid_ds *buf; - unsigned short *array; - struct seminfo *__buf; -}; +# include "semop-common.c" -static int id = -1; - -static void -cleanup(void) +static long +k_semop(const unsigned int semid, + const kernel_ulong_t sops, + const unsigned int nsops) { - semctl(id, 0, IPC_RMID, 0); - id = -1; + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | semid; + const kernel_ulong_t arg2 = sops; + const kernel_ulong_t arg3 = fill | nsops; + const long rc = syscall(__NR_semop, arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; } -int -main(void) -{ - static const int bogus_semid = 0xfdb97531; - static void * const bogus_sops = (void *) -1L; - static const size_t bogus_nsops = (size_t) 0xdefaceddeadbeefULL; - - TAIL_ALLOC_OBJECT_CONST_PTR(struct timespec, ts); - int rc; - - id = semget(IPC_PRIVATE, 1, 0600); - if (id < 0) - perror_msg_and_skip("semget"); - atexit(cleanup); - - union semun sem_union = { .val = 0 }; - if (semctl(id, 0, SETVAL, sem_union) == -1) - perror_msg_and_skip("semctl"); - - TAIL_ALLOC_OBJECT_CONST_PTR(struct sembuf, sem_b); - TAIL_ALLOC_OBJECT_CONST_PTR(struct sembuf, sem_b2); - - rc = semop(bogus_semid, NULL, bogus_nsops); - printf("semop(%d, NULL, %u) = %s\n", - bogus_semid, (unsigned) bogus_nsops, sprintrc(rc)); - - rc = semop(bogus_semid, bogus_sops, 1); - printf("semop(%d, %p, %u) = %s\n", - bogus_semid, bogus_sops, 1, sprintrc(rc)); - - sem_b->sem_num = 0; - sem_b->sem_op = 1; - sem_b->sem_flg = SEM_UNDO; - - sem_b2->sem_num = 0xface; - sem_b2->sem_op = 0xf00d; - sem_b2->sem_flg = 0xbeef; +#else - rc = semop(bogus_semid, sem_b2, 2); - printf("semop(%d, [{%hu, %hd, %s%s%#hx}, ... /* %p */], %u) = %s\n", - bogus_semid, sem_b2->sem_num, sem_b2->sem_op, - sem_b2->sem_flg & SEM_UNDO ? "SEM_UNDO|" : "", - sem_b2->sem_flg & IPC_NOWAIT ? "IPC_NOWAIT|" : "", - (short) (sem_b2->sem_flg & ~(SEM_UNDO | IPC_NOWAIT)), - sem_b2 + 1, 2, sprintrc(rc)); +SKIP_MAIN_UNDEFINED("__NR_semop") - if (semop(id, sem_b, 1)) - perror_msg_and_skip("semop, 1"); - printf("semop(%d, [{0, 1, SEM_UNDO}], 1) = 0\n", id); - - sem_b->sem_op = -1; - if (semop(id, sem_b, 1)) - perror_msg_and_skip("semop, -1"); - printf("semop(%d, [{0, -1, SEM_UNDO}], 1) = 0\n", id); - - rc = semtimedop(bogus_semid, NULL, bogus_nsops, NULL); - printf("semtimedop(%d, NULL, %u, NULL) = %s\n", - bogus_semid, (unsigned) bogus_nsops, sprintrc(rc)); - - rc = semtimedop(id, sem_b + 1, 1, ts + 1); - printf("semtimedop(%d, %p, 1, %p) = %s\n", - id, sem_b + 1, ts + 1, sprintrc(rc)); - - ts->tv_sec = 1; - ts->tv_nsec = 123456789; - rc = semtimedop(bogus_semid, sem_b2, 2, ts); - printf("semtimedop(%d, [{%hu, %hd, %s%s%#hx}, ... /* %p */], %u" - ", {tv_sec=%lld, tv_nsec=%llu}) = %s\n", - bogus_semid, sem_b2->sem_num, sem_b2->sem_op, - sem_b2->sem_flg & SEM_UNDO ? "SEM_UNDO|" : "", - sem_b2->sem_flg & IPC_NOWAIT ? "IPC_NOWAIT|" : "", - (short) (sem_b2->sem_flg & ~(SEM_UNDO | IPC_NOWAIT)), - sem_b2 + 1, 2, - (long long) ts->tv_sec, zero_extend_signed_to_ull(ts->tv_nsec), - sprintrc(rc)); - - sem_b->sem_op = 1; - if (semtimedop(id, sem_b, 1, NULL)) - perror_msg_and_skip("semtimedop, 1"); - printf("semtimedop(%d, [{0, 1, SEM_UNDO}], 1, NULL) = 0\n", id); - - sem_b->sem_op = -1; - if (semtimedop(id, sem_b, 1, ts)) - perror_msg_and_skip("semtimedop, -1"); - printf("semtimedop(%d, [{0, -1, SEM_UNDO}], 1" - ", {tv_sec=%lld, tv_nsec=%llu}) = 0\n", id, - (long long) ts->tv_sec, zero_extend_signed_to_ull(ts->tv_nsec)); - - sem_b->sem_op = 1; - ts->tv_sec = 0xdeadbeefU; - ts->tv_nsec = 0xfacefeedU; - rc = semtimedop(id, sem_b, 1, ts); - printf("semtimedop(%d, [{0, 1, SEM_UNDO}], 1" - ", {tv_sec=%lld, tv_nsec=%llu}) = %s\n", - id, (long long) ts->tv_sec, - zero_extend_signed_to_ull(ts->tv_nsec), sprintrc(rc)); - - sem_b->sem_op = -1; - ts->tv_sec = (time_t) 0xcafef00ddeadbeefLL; - ts->tv_nsec = (long) 0xbadc0dedfacefeedLL; - rc = semtimedop(id, sem_b, 1, ts); - printf("semtimedop(%d, [{0, -1, SEM_UNDO}], 1" - ", {tv_sec=%lld, tv_nsec=%llu}) = %s\n", - id, (long long) ts->tv_sec, - zero_extend_signed_to_ull(ts->tv_nsec), sprintrc(rc)); - - puts("+++ exited with 0 +++"); - return 0; -} +#endif diff --git a/tests-m32/semop.gen.test b/tests-m32/semop.gen.test index 21b67ead..4199975a 100755 --- a/tests-m32/semop.gen.test +++ b/tests-m32/semop.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (semop -a32 -e trace=semop,semtimedop); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (semop -a32 ); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a32 -e trace=semop,semtimedop +run_strace_match_diff -a32 diff --git a/tests-m32/semtimedop.c b/tests-m32/semtimedop.c new file mode 100644 index 00000000..e3cea328 --- /dev/null +++ b/tests-m32/semtimedop.c @@ -0,0 +1,155 @@ +/* + * Copyright (c) 2016-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#if defined __NR_semtimedop || defined __NR_socketcall + +# include +# include +# include +# include +# include +# include + +# define XLAT_MACROS_ONLY +# include "xlat/semop_flags.h" +# undef XLAT_MACROS_ONLY + +union semun { + int val; + struct semid_ds *buf; + unsigned short *array; + struct seminfo *__buf; +}; + +static int id = -1; + +static void +cleanup(void) +{ + semctl(id, 0, IPC_RMID, 0); + id = -1; +} + +int +main(void) +{ + static const int bogus_semid = 0xfdb97531; + static void * const bogus_sops = (void *) -1L; + static const size_t bogus_nsops = (size_t) 0xdefaceddeadbeefULL; + + TAIL_ALLOC_OBJECT_CONST_PTR(struct timespec, ts); + int rc; + + id = semget(IPC_PRIVATE, 1, 0600); + if (id < 0) + perror_msg_and_skip("semget"); + atexit(cleanup); + + union semun sem_union = { .val = 0 }; + if (semctl(id, 0, SETVAL, sem_union) == -1) + perror_msg_and_skip("semctl"); + + TAIL_ALLOC_OBJECT_CONST_PTR(struct sembuf, sem_b); + TAIL_ALLOC_OBJECT_CONST_PTR(struct sembuf, sem_b2); + + rc = semtimedop(bogus_semid, NULL, bogus_nsops, NULL); + printf("semtimedop(%d, NULL, %u, NULL) = %s\n", + bogus_semid, (unsigned) bogus_nsops, sprintrc(rc)); + + rc = semtimedop(bogus_semid, bogus_sops, 1, NULL); + printf("semtimedop(%d, %p, %u, NULL) = %s\n", + bogus_semid, bogus_sops, 1, sprintrc(rc)); + + sem_b->sem_num = 0; + sem_b->sem_op = 1; + sem_b->sem_flg = SEM_UNDO; + + sem_b2->sem_num = 0xface; + sem_b2->sem_op = 0xf00d; + sem_b2->sem_flg = 0xbeef; + + rc = semtimedop(bogus_semid, sem_b2, 2, NULL); + printf("semtimedop(%d, [{%hu, %hd, %s%s%#hx}, ... /* %p */], %u" + ", NULL) = %s\n", + bogus_semid, sem_b2->sem_num, sem_b2->sem_op, + sem_b2->sem_flg & SEM_UNDO ? "SEM_UNDO|" : "", + sem_b2->sem_flg & IPC_NOWAIT ? "IPC_NOWAIT|" : "", + (short) (sem_b2->sem_flg & ~(SEM_UNDO | IPC_NOWAIT)), + sem_b2 + 1, 2, sprintrc(rc)); + + if (semtimedop(id, sem_b, 1, NULL)) + perror_msg_and_skip("semtimedop, 1"); + printf("semtimedop(%d, [{0, 1, SEM_UNDO}], 1, NULL) = 0\n", id); + + sem_b->sem_op = -1; + if (semtimedop(id, sem_b, 1, NULL)) + perror_msg_and_skip("semtimedop, -1"); + printf("semtimedop(%d, [{0, -1, SEM_UNDO}], 1, NULL) = 0\n", id); + + rc = semtimedop(bogus_semid, NULL, bogus_nsops, NULL); + printf("semtimedop(%d, NULL, %u, NULL) = %s\n", + bogus_semid, (unsigned) bogus_nsops, sprintrc(rc)); + + rc = semtimedop(id, sem_b + 1, 1, ts + 1); + printf("semtimedop(%d, %p, 1, %p) = %s\n", + id, sem_b + 1, ts + 1, sprintrc(rc)); + + ts->tv_sec = 1; + ts->tv_nsec = 123456789; + rc = semtimedop(bogus_semid, sem_b2, 2, ts); + printf("semtimedop(%d, [{%hu, %hd, %s%s%#hx}, ... /* %p */], %u" + ", {tv_sec=%lld, tv_nsec=%llu}) = %s\n", + bogus_semid, sem_b2->sem_num, sem_b2->sem_op, + sem_b2->sem_flg & SEM_UNDO ? "SEM_UNDO|" : "", + sem_b2->sem_flg & IPC_NOWAIT ? "IPC_NOWAIT|" : "", + (short) (sem_b2->sem_flg & ~(SEM_UNDO | IPC_NOWAIT)), + sem_b2 + 1, 2, + (long long) ts->tv_sec, zero_extend_signed_to_ull(ts->tv_nsec), + sprintrc(rc)); + + sem_b->sem_op = 1; + if (semtimedop(id, sem_b, 1, NULL)) + perror_msg_and_skip("semtimedop, 1"); + printf("semtimedop(%d, [{0, 1, SEM_UNDO}], 1, NULL) = 0\n", id); + + sem_b->sem_op = -1; + if (semtimedop(id, sem_b, 1, ts)) + perror_msg_and_skip("semtimedop, -1"); + printf("semtimedop(%d, [{0, -1, SEM_UNDO}], 1" + ", {tv_sec=%lld, tv_nsec=%llu}) = 0\n", id, + (long long) ts->tv_sec, zero_extend_signed_to_ull(ts->tv_nsec)); + + sem_b->sem_op = 1; + ts->tv_sec = 0xdeadbeefU; + ts->tv_nsec = 0xfacefeedU; + rc = semtimedop(id, sem_b, 1, ts); + printf("semtimedop(%d, [{0, 1, SEM_UNDO}], 1" + ", {tv_sec=%lld, tv_nsec=%llu}) = %s\n", + id, (long long) ts->tv_sec, + zero_extend_signed_to_ull(ts->tv_nsec), sprintrc(rc)); + + sem_b->sem_op = -1; + ts->tv_sec = (time_t) 0xcafef00ddeadbeefLL; + ts->tv_nsec = (long) 0xbadc0dedfacefeedLL; + rc = semtimedop(id, sem_b, 1, ts); + printf("semtimedop(%d, [{0, -1, SEM_UNDO}], 1" + ", {tv_sec=%lld, tv_nsec=%llu}) = %s\n", + id, (long long) ts->tv_sec, + zero_extend_signed_to_ull(ts->tv_nsec), sprintrc(rc)); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_semtimedop || __NR_socketcall") + +#endif diff --git a/tests-m32/semtimedop.gen.test b/tests-m32/semtimedop.gen.test new file mode 100755 index 00000000..1c767ff4 --- /dev/null +++ b/tests-m32/semtimedop.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (semtimedop ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff diff --git a/tests-m32/sendfile.c b/tests-m32/sendfile.c index 6ef3232e..cb6dd388 100644 --- a/tests-m32/sendfile.c +++ b/tests-m32/sendfile.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sendfile @@ -50,14 +50,9 @@ main(void) const unsigned int blen = file_size / 3; const unsigned int alen = file_size - blen; - static const char fname[] = "sendfile-tmpfile"; - int reg_in = open(fname, O_RDWR | O_CREAT | O_TRUNC, 0600); - if (reg_in < 0) - perror_msg_and_fail("open: %s", fname); - if (unlink(fname)) - perror_msg_and_fail("unlink: %s", fname); + int reg_in = create_tmpfile(O_RDWR); if (ftruncate(reg_in, file_size)) - perror_msg_and_fail("ftruncate: %s", fname); + perror_msg_and_fail("ftruncate(%d, %u)", reg_in, file_size); TAIL_ALLOC_OBJECT_VAR_PTR(uint32_t, p_off); void *p = p_off + 1; diff --git a/tests-m32/sendfile64.c b/tests-m32/sendfile64.c index c318ace8..9bcf1fc7 100644 --- a/tests-m32/sendfile64.c +++ b/tests-m32/sendfile64.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sendfile64 @@ -50,14 +50,9 @@ main(void) const unsigned int blen = file_size / 3; const unsigned int alen = file_size - blen; - static const char fname[] = "sendfile64-tmpfile"; - int reg_in = open(fname, O_RDWR | O_CREAT | O_TRUNC, 0600); - if (reg_in < 0) - perror_msg_and_fail("open: %s", fname); - if (unlink(fname)) - perror_msg_and_fail("unlink: %s", fname); + int reg_in = create_tmpfile(O_RDWR); if (ftruncate(reg_in, file_size)) - perror_msg_and_fail("ftruncate: %s", fname); + perror_msg_and_fail("ftruncate(%d, %u)", reg_in, file_size); TAIL_ALLOC_OBJECT_CONST_PTR(uint64_t, p_off); void *p = p_off + 1; diff --git a/tests-m32/set_mempolicy-Xabbrev.c b/tests-m32/set_mempolicy-Xabbrev.c new file mode 100644 index 00000000..2dbc4871 --- /dev/null +++ b/tests-m32/set_mempolicy-Xabbrev.c @@ -0,0 +1 @@ +#include "set_mempolicy.c" diff --git a/tests-m32/set_mempolicy-Xabbrev.gen.test b/tests-m32/set_mempolicy-Xabbrev.gen.test new file mode 100755 index 00000000..f27e985b --- /dev/null +++ b/tests-m32/set_mempolicy-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (set_mempolicy-Xabbrev -a34 -s3 -Xabbrev -e trace=set_mempolicy); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a34 -s3 -Xabbrev -e trace=set_mempolicy diff --git a/tests-m32/set_mempolicy-Xraw.c b/tests-m32/set_mempolicy-Xraw.c new file mode 100644 index 00000000..47436b51 --- /dev/null +++ b/tests-m32/set_mempolicy-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "set_mempolicy.c" diff --git a/tests-m32/set_mempolicy-Xraw.gen.test b/tests-m32/set_mempolicy-Xraw.gen.test new file mode 100755 index 00000000..3b5a6a4d --- /dev/null +++ b/tests-m32/set_mempolicy-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (set_mempolicy-Xraw -a24 -s3 -Xraw -e trace=set_mempolicy); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a24 -s3 -Xraw -e trace=set_mempolicy diff --git a/tests-m32/set_mempolicy-Xverbose.c b/tests-m32/set_mempolicy-Xverbose.c new file mode 100644 index 00000000..0396cb42 --- /dev/null +++ b/tests-m32/set_mempolicy-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "set_mempolicy.c" diff --git a/tests-m32/set_mempolicy-Xverbose.gen.test b/tests-m32/set_mempolicy-Xverbose.gen.test new file mode 100755 index 00000000..741229ed --- /dev/null +++ b/tests-m32/set_mempolicy-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (set_mempolicy-Xverbose -s3 -Xverbose -e trace=set_mempolicy); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -s3 -Xverbose -e trace=set_mempolicy diff --git a/tests-m32/set_mempolicy.c b/tests-m32/set_mempolicy.c index 46703713..ee65c4c9 100644 --- a/tests-m32/set_mempolicy.c +++ b/tests-m32/set_mempolicy.c @@ -2,29 +2,92 @@ * Check decoding of set_mempolicy syscall. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_set_mempolicy -# include # include # include # include -# include "xlat.h" -# include "xlat/policies.h" - # define MAX_STRLEN 3 # define NLONGS(n) ((n + 8 * sizeof(long) - 2) \ / (8 * sizeof(long))) +static const char *errstr; + +static long +k_set_mempolicy(const unsigned int mode, + const void *const nmask, + const unsigned long maxnode) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | mode; + const kernel_ulong_t arg2 = (unsigned long) nmask; + const kernel_ulong_t arg3 = maxnode; + const long rc = syscall(__NR_set_mempolicy, + arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +# if XLAT_RAW +# define out_str raw +# elif XLAT_VERBOSE +# define out_str verbose +# else +# define out_str abbrev +# endif + +static struct { + unsigned int val; + const char *raw; + const char *verbose; + const char *abbrev; +} mpol_modes[] = { + { ARG_STR(0), + "0 /* MPOL_DEFAULT */", + "MPOL_DEFAULT" }, + { ARG_STR(0x1), + "0x1 /* MPOL_PREFERRED */", + "MPOL_PREFERRED" }, + { ARG_STR(0x2), + "0x2 /* MPOL_BIND */", + "MPOL_BIND" }, + { ARG_STR(0x3), + "0x3 /* MPOL_INTERLEAVE */", + "MPOL_INTERLEAVE" }, + { ARG_STR(0x4), + "0x4 /* MPOL_LOCAL */", + "MPOL_LOCAL" }, + { ARG_STR(0x8000), + "0x8000 /* MPOL_DEFAULT|MPOL_F_STATIC_NODES */", + "MPOL_DEFAULT|MPOL_F_STATIC_NODES" }, + { ARG_STR(0x4001), + "0x4001 /* MPOL_PREFERRED|MPOL_F_RELATIVE_NODES */", + "MPOL_PREFERRED|MPOL_F_RELATIVE_NODES" }, + { ARG_STR(0xc002), + "0xc002 /* MPOL_BIND|MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES */", + "MPOL_BIND|MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES" }, + { ARG_STR(0x5), + "0x5 /* MPOL_??? */", + "0x5 /* MPOL_??? */" }, + { ARG_STR(0xffff3fff), + "0xffff3fff /* MPOL_??? */", + "0xffff3fff /* MPOL_??? */" }, + { ARG_STR(0xffffffff), + "0xffffffff /* MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES|0xffff3fff */", + "MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES|0xffff3fff" } +}; + static void print_nodes(const unsigned long maxnode, unsigned int offset) { @@ -38,10 +101,9 @@ print_nodes(const unsigned long maxnode, unsigned int offset) tail_alloc(size ? size : (offset ? 1 : 0)); memset(nodemask, 0, size); - long rc = syscall(__NR_set_mempolicy, 0, nodemask, maxnode); - const char *errstr = sprintrc(rc); + k_set_mempolicy(mpol_modes[0].val, nodemask, maxnode); - fputs("set_mempolicy(MPOL_DEFAULT, ", stdout); + printf("set_mempolicy(%s, ", mpol_modes[0].out_str); if (nlongs) { putc('[', stdout); @@ -103,15 +165,24 @@ test_offset(const unsigned int offset) int main(void) { - if (syscall(__NR_set_mempolicy, 0, 0, 0)) + if (k_set_mempolicy(mpol_modes[0].val, 0, 0)) perror_msg_and_skip("set_mempolicy"); - puts("set_mempolicy(MPOL_DEFAULT, NULL, 0) = 0"); + printf("set_mempolicy(%s, NULL, 0) = 0\n", mpol_modes[0].out_str); const unsigned long *nodemask = (void *) 0xfacefeedfffffffeULL; - const unsigned long maxnode = (unsigned long) 0xcafef00dbadc0dedULL; - long rc = syscall(__NR_set_mempolicy, 1, nodemask, maxnode); - printf("set_mempolicy(MPOL_PREFERRED, %p, %lu) = %s\n", - nodemask, maxnode, sprintrc(rc)); + const unsigned long maxnode = (unsigned long) 0xcafef00ddeadbeefULL; + + for (unsigned int i = 0; i < ARRAY_SIZE(mpol_modes); ++i) { + if (i) { + k_set_mempolicy(mpol_modes[i].val, 0, 0); + printf("set_mempolicy(%s, NULL, 0) = %s\n", + mpol_modes[i].out_str, errstr); + } + + k_set_mempolicy(mpol_modes[i].val, nodemask, maxnode); + printf("set_mempolicy(%s, %p, %lu) = %s\n", + mpol_modes[i].out_str, nodemask, maxnode, errstr); + } test_offset(0); test_offset(1); diff --git a/tests-m32/set_mempolicy.gen.test b/tests-m32/set_mempolicy.gen.test index f8c81c75..a527e6af 100755 --- a/tests-m32/set_mempolicy.gen.test +++ b/tests-m32/set_mempolicy.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (set_mempolicy -s3 -a35); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (set_mempolicy -a34 -s3); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -s3 -a35 +run_strace_match_diff -a34 -s3 diff --git a/tests-m32/set_ptracer_any.c b/tests-m32/set_ptracer_any.c index 747359c2..9fa56c14 100644 --- a/tests-m32/set_ptracer_any.c +++ b/tests-m32/set_ptracer_any.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2013-2015 Dmitry V. Levin - * Copyright (c) 2013-2018 The strace developers. + * Copyright (c) 2013-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,25 +9,21 @@ #include "tests.h" #include #include -#ifdef HAVE_PRCTL -# include -#endif +#include int main(int argc, char **argv) { if (argc < 2) return 99; -#ifdef HAVE_PRCTL /* Turn off restrictions on tracing if applicable. If the command * aren't available on this system, that's OK too. */ -# ifndef PR_SET_PTRACER -# define PR_SET_PTRACER 0x59616d61 -# endif -# ifndef PR_SET_PTRACER_ANY -# define PR_SET_PTRACER_ANY -1UL -# endif - (void) prctl(PR_SET_PTRACER, PR_SET_PTRACER_ANY, 0, 0, 0); +#ifndef PR_SET_PTRACER +# define PR_SET_PTRACER 0x59616d61 #endif +#ifndef PR_SET_PTRACER_ANY +# define PR_SET_PTRACER_ANY -1UL +#endif + (void) prctl(PR_SET_PTRACER, PR_SET_PTRACER_ANY, 0, 0, 0); if (write(1, "\n", 1) != 1) { perror("write"); return 99; diff --git a/tests-m32/setdomainname.c b/tests-m32/setdomainname.c index 177c0fd7..c2ff8eaa 100644 --- a/tests-m32/setdomainname.c +++ b/tests-m32/setdomainname.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setdomainname diff --git a/tests-m32/setfsgid.c b/tests-m32/setfsgid.c index 496b2679..74d642c4 100644 --- a/tests-m32/setfsgid.c +++ b/tests-m32/setfsgid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setfsgid diff --git a/tests-m32/setfsgid32.c b/tests-m32/setfsgid32.c index a931602c..29b41a9b 100644 --- a/tests-m32/setfsgid32.c +++ b/tests-m32/setfsgid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setfsgid32 diff --git a/tests-m32/setfsuid.c b/tests-m32/setfsuid.c index 269d38f2..78d4eb52 100644 --- a/tests-m32/setfsuid.c +++ b/tests-m32/setfsuid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setfsuid diff --git a/tests-m32/setfsuid32.c b/tests-m32/setfsuid32.c index cfcc0f83..2d4fa835 100644 --- a/tests-m32/setfsuid32.c +++ b/tests-m32/setfsuid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setfsuid32 diff --git a/tests-m32/setgid.c b/tests-m32/setgid.c index 3374924a..aba372b8 100644 --- a/tests-m32/setgid.c +++ b/tests-m32/setgid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setgid diff --git a/tests-m32/setgid32.c b/tests-m32/setgid32.c index 427c77b0..ac695e18 100644 --- a/tests-m32/setgid32.c +++ b/tests-m32/setgid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setgid32 diff --git a/tests-m32/setgroups.c b/tests-m32/setgroups.c index a47f1024..a18fdc17 100644 --- a/tests-m32/setgroups.c +++ b/tests-m32/setgroups.c @@ -2,7 +2,7 @@ * Check decoding of setgroups/setgroups32 syscalls. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -17,7 +17,7 @@ #else # include "tests.h" -# include +# include "scno.h" # ifdef __NR_setgroups diff --git a/tests-m32/setgroups32.c b/tests-m32/setgroups32.c index 935b73a9..eb111f04 100644 --- a/tests-m32/setgroups32.c +++ b/tests-m32/setgroups32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setgroups32 diff --git a/tests-m32/sethostname.c b/tests-m32/sethostname.c index c9b89c12..844fb6b8 100644 --- a/tests-m32/sethostname.c +++ b/tests-m32/sethostname.c @@ -3,14 +3,14 @@ * * Copyright (c) 2016 Fei Jie * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sethostname diff --git a/tests-m32/setns.c b/tests-m32/setns.c index 8ef7a19b..21a8dc6a 100644 --- a/tests-m32/setns.c +++ b/tests-m32/setns.c @@ -2,7 +2,7 @@ * Check decoding of setns syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setns diff --git a/tests-m32/setpgrp-exec.c b/tests-m32/setpgrp-exec.c new file mode 100644 index 00000000..8a84d436 --- /dev/null +++ b/tests-m32/setpgrp-exec.c @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include + +int main(int argc, char **argv) +{ + if (argc < 2) + error_msg_and_fail("argc < 2"); + + if (setpgid(0, 0)) + perror_msg_and_fail("setpgid"); + + (void) execvp(argv[1], argv + 1); + + perror_msg_and_fail("execvp: %s", argv[1]); +} diff --git a/tests-m32/setregid.c b/tests-m32/setregid.c index 68639e6a..232a140a 100644 --- a/tests-m32/setregid.c +++ b/tests-m32/setregid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setregid diff --git a/tests-m32/setregid32.c b/tests-m32/setregid32.c index 6291bc58..fca985ed 100644 --- a/tests-m32/setregid32.c +++ b/tests-m32/setregid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setregid32 diff --git a/tests-m32/setresgid.c b/tests-m32/setresgid.c index f3a160e3..6f64d0b0 100644 --- a/tests-m32/setresgid.c +++ b/tests-m32/setresgid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setresgid diff --git a/tests-m32/setresgid32.c b/tests-m32/setresgid32.c index e05ae8f8..45d252e6 100644 --- a/tests-m32/setresgid32.c +++ b/tests-m32/setresgid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setresgid32 diff --git a/tests-m32/setresuid.c b/tests-m32/setresuid.c index 855a9bf7..d0821c39 100644 --- a/tests-m32/setresuid.c +++ b/tests-m32/setresuid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setresuid diff --git a/tests-m32/setresuid32.c b/tests-m32/setresuid32.c index ccfc2a51..a8201810 100644 --- a/tests-m32/setresuid32.c +++ b/tests-m32/setresuid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setresuid32 diff --git a/tests-m32/setreuid.c b/tests-m32/setreuid.c index 1e34dd18..c1279c9c 100644 --- a/tests-m32/setreuid.c +++ b/tests-m32/setreuid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setreuid diff --git a/tests-m32/setreuid32.c b/tests-m32/setreuid32.c index c0345db7..903a2203 100644 --- a/tests-m32/setreuid32.c +++ b/tests-m32/setreuid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setreuid32 diff --git a/tests-m32/setrlimit.c b/tests-m32/setrlimit.c index 099e2402..886cf65a 100644 --- a/tests-m32/setrlimit.c +++ b/tests-m32/setrlimit.c @@ -9,7 +9,7 @@ */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setrlimit @@ -19,9 +19,13 @@ int main(void) { kernel_ulong_t *const rlimit = tail_alloc(sizeof(*rlimit) * 2); - const struct xlat *xlat; + const struct xlat_data *xlat; + size_t i = 0; + + for (xlat = resources->data, i = 0; i < resources->size; ++xlat, ++i) { + if (!xlat->str) + continue; - for (xlat = resources; xlat->str; ++xlat) { unsigned long res = 0xfacefeed00000000ULL | xlat->val; long rc = syscall(__NR_setrlimit, res, 0); # if XLAT_RAW diff --git a/tests-m32/setuid.c b/tests-m32/setuid.c index 4a8243e8..dcbe8ae0 100644 --- a/tests-m32/setuid.c +++ b/tests-m32/setuid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setuid diff --git a/tests-m32/setuid32.c b/tests-m32/setuid32.c index ba1b2e2d..8de08a72 100644 --- a/tests-m32/setuid32.c +++ b/tests-m32/setuid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setuid32 diff --git a/tests-m32/sigaction.c b/tests-m32/sigaction.c index fe6280ce..182fdae8 100644 --- a/tests-m32/sigaction.c +++ b/tests-m32/sigaction.c @@ -2,13 +2,14 @@ * Check decoding of sigaction syscall. * * Copyright (c) 2014-2018 Dmitry V. Levin + * Copyright (c) 2014-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sigaction @@ -156,7 +157,7 @@ main(void) sigdelset(mask.libc, SIGHUP); memcpy(new_act->mask, mask.old, sizeof(mask.old)); -# ifdef SA_RESTORER +# if defined SA_RESTORER && !(defined ALPHA || defined MIPS) new_act->flags = SA_RESTORER; new_act->restorer = (unsigned long) 0xdeadfacecafef00dULL; # define SA_RESTORER_FMT ", sa_flags=SA_RESTORER, sa_restorer=%#lx" diff --git a/tests-m32/sigblock.test b/tests-m32/sigblock.test index ab1eaeb7..cfcc75cb 100755 --- a/tests-m32/sigblock.test +++ b/tests-m32/sigblock.test @@ -4,7 +4,7 @@ # Starting with commit v4.17-5-gf83b49b strace is expected # to forward the signal mask to tracees unchanged. # -# Copyright (c) 2017-2018 The strace developers. +# Copyright (c) 2017-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -20,7 +20,7 @@ for sig in $(../list_sigaction_signum); do check_cmd="../check_sigblock $block $sig" run_prog $set_cmd $check_cmd STRACE="$set_cmd $saved_STRACE" - for i in '' -I1 -I2 -I3 -I4; do + for i in '' -I1 -Iwaiting --interruptible=3 --interruptible=never_tstp; do run_strace $i -enone $check_cmd done done diff --git a/tests-m32/sigign.test b/tests-m32/sigign.test index 07a8180c..e5555d61 100755 --- a/tests-m32/sigign.test +++ b/tests-m32/sigign.test @@ -4,7 +4,7 @@ # Starting with commit v4.17-8-ge97a66f strace is expected # to forward the signal disposition to tracees unchanged. # -# Copyright (c) 2017-2018 The strace developers. +# Copyright (c) 2017-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -20,7 +20,7 @@ for sig in $(../list_sigaction_signum); do check_cmd="../check_sigign $ign $sig" run_prog $set_cmd $check_cmd STRACE="$set_cmd $saved_STRACE" - for i in '' -I1 -I2 -I3 -I4; do + for i in '' --interruptible=always --interruptible=2 -Inever -I4; do run_strace $i -enone $check_cmd done done diff --git a/tests-m32/siginfo.c b/tests-m32/siginfo.c index 7789ff27..c7e57ec6 100644 --- a/tests-m32/siginfo.c +++ b/tests-m32/siginfo.c @@ -2,6 +2,7 @@ * Check SIGCHLD siginfo_t decoding. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -63,7 +64,7 @@ main(void) sigsuspend(&unblock_mask); tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED" - ", si_pid=%d, si_uid=%u, si_status=%d" + ", si_pid=%d, si_uid=%d, si_status=%d" ", si_utime=%llu, si_stime=%llu} ---\n", sinfo.si_pid, sinfo.si_uid, sinfo.si_status, zero_extend_signed_to_ull(sinfo.si_utime), @@ -94,7 +95,7 @@ main(void) sigsuspend(&unblock_mask); tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_KILLED" - ", si_pid=%d, si_uid=%u, si_status=SIGUSR1" + ", si_pid=%d, si_uid=%d, si_status=SIGUSR1" ", si_utime=%llu, si_stime=%llu} ---\n", sinfo.si_pid, sinfo.si_uid, zero_extend_signed_to_ull(sinfo.si_utime), @@ -121,7 +122,7 @@ main(void) sigsuspend(&unblock_mask); tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_STOPPED" - ", si_pid=%d, si_uid=%u, si_status=SIGSTOP" + ", si_pid=%d, si_uid=%d, si_status=SIGSTOP" ", si_utime=%llu, si_stime=%llu} ---\n", sinfo.si_pid, sinfo.si_uid, zero_extend_signed_to_ull(sinfo.si_utime), @@ -131,7 +132,7 @@ main(void) sigsuspend(&unblock_mask); tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_CONTINUED" - ", si_pid=%d, si_uid=%u, si_status=SIGCONT" + ", si_pid=%d, si_uid=%d, si_status=SIGCONT" ", si_utime=%llu, si_stime=%llu} ---\n", sinfo.si_pid, sinfo.si_uid, zero_extend_signed_to_ull(sinfo.si_utime), @@ -142,7 +143,7 @@ main(void) sigsuspend(&unblock_mask); tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED" - ", si_pid=%d, si_uid=%u, si_status=0" + ", si_pid=%d, si_uid=%d, si_status=0" ", si_utime=%llu, si_stime=%llu} ---\n", sinfo.si_pid, sinfo.si_uid, zero_extend_signed_to_ull(sinfo.si_utime), diff --git a/tests-m32/signal.c b/tests-m32/signal.c index 40cd77f5..db5a19a9 100644 --- a/tests-m32/signal.c +++ b/tests-m32/signal.c @@ -2,13 +2,14 @@ * Check decoding of signal syscall. * * Copyright (c) 2017-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_signal diff --git a/tests-m32/signal_receive--pidns-translation.c b/tests-m32/signal_receive--pidns-translation.c new file mode 100644 index 00000000..b4e3b2f8 --- /dev/null +++ b/tests-m32/signal_receive--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "signal_receive.c" diff --git a/tests-m32/signal_receive--pidns-translation.gen.test b/tests-m32/signal_receive--pidns-translation.gen.test new file mode 100755 index 00000000..63069001 --- /dev/null +++ b/tests-m32/signal_receive--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (signal_receive--pidns-translation test_pidns -a16 -e trace=kill); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a16 -e trace=kill diff --git a/tests-m32/signal_receive.c b/tests-m32/signal_receive.c index ad3b4ebd..46cac571 100644 --- a/tests-m32/signal_receive.c +++ b/tests-m32/signal_receive.c @@ -1,13 +1,14 @@ /* * Check decoding of signal delivery. * - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include "pidns.h" #include #include #include @@ -26,10 +27,13 @@ handler(int sig, siginfo_t *info, void *ucontext) int main(void) { + PIDNS_TEST_INIT; + static const char prefix[] = "KERNEL BUG"; int printed = 0; const int pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); const int uid = geteuid(); for (int sig = 1; sig <= 31; ++sig) { @@ -73,10 +77,13 @@ main(void) const int e_pid = s_pid; const int e_uid = s_uid; #endif - printf("kill(%d, %s) = 0\n", pid, signal2name(sig)); - printf("--- %s {si_signo=%s, si_code=SI_USER, si_pid=%d" + pidns_print_leader(); + printf("kill(%d%s, %s) = 0\n", pid, pid_str, signal2name(sig)); + pidns_print_leader(); + printf("--- %s {si_signo=%s, si_code=SI_USER, si_pid=%d%s" ", si_uid=%d} ---\n", - signal2name(sig), signal2name(e_sig), e_pid, e_uid); + signal2name(sig), signal2name(e_sig), + e_pid, pid_str, e_uid); if (s_code || sig != s_sig || pid != s_pid || uid != s_uid) { /* @@ -91,11 +98,11 @@ main(void) } fprintf(stderr, "%s: expected: si_signo=%d, si_code=%d" - ", si_pid=%d, si_uid=%d\n" + ", si_pid=%d%s, si_uid=%d\n" "%s: received: si_signo=%d, si_code=%d" - ", si_pid=%d, si_uid=%d\n", - prefix, sig, SI_USER, pid, uid, - prefix, sig, s_code, s_pid, s_uid); + ", si_pid=%d%s, si_uid=%d\n", + prefix, sig, SI_USER, pid, pid_str, uid, + prefix, sig, s_code, s_pid, pid_str, s_uid); } } @@ -104,6 +111,7 @@ main(void) "*** PLEASE FIX THE KERNEL ***\n", prefix); } + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-m32/signalfd4.c b/tests-m32/signalfd4.c index 71df2dcc..0ab6d21d 100644 --- a/tests-m32/signalfd4.c +++ b/tests-m32/signalfd4.c @@ -2,7 +2,7 @@ * Check decoding of signalfd4 syscall. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" #include -#include +#include "scno.h" #if defined HAVE_SYS_SIGNALFD_H \ && defined HAVE_SIGNALFD \ diff --git a/tests-m32/sigpending.c b/tests-m32/sigpending.c index f065c873..f39b3a48 100644 --- a/tests-m32/sigpending.c +++ b/tests-m32/sigpending.c @@ -2,13 +2,14 @@ * Check decoding of sigpending syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sigpending diff --git a/tests-m32/sigprocmask.c b/tests-m32/sigprocmask.c index 566b8346..4ab36d00 100644 --- a/tests-m32/sigprocmask.c +++ b/tests-m32/sigprocmask.c @@ -2,13 +2,14 @@ * Check decoding of sigprocmask syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sigprocmask diff --git a/tests-m32/sigreturn.c b/tests-m32/sigreturn.c index 5dece0a4..4b7516a6 100644 --- a/tests-m32/sigreturn.c +++ b/tests-m32/sigreturn.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __powerpc64__ \ || (defined __sparc__ && defined __arch64__) diff --git a/tests-m32/sigsuspend.c b/tests-m32/sigsuspend.c index 11ffae83..165c68fa 100644 --- a/tests-m32/sigsuspend.c +++ b/tests-m32/sigsuspend.c @@ -2,13 +2,14 @@ * Check decoding of sigsuspend syscall. * * Copyright (c) 2017-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sigsuspend diff --git a/tests-m32/sleep.c b/tests-m32/sleep.c index 0cdfcebc..f8fca446 100644 --- a/tests-m32/sleep.c +++ b/tests-m32/sleep.c @@ -2,14 +2,21 @@ * A simple nanosleep based sleep(1) replacement. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include +#include "scno.h" + +#ifdef __NR_nanosleep + +# include +# include + +# include "kernel_old_timespec.h" int main(int ac, char **av) @@ -20,10 +27,16 @@ main(int ac, char **av) if (ac > 2) error_msg_and_fail("extra operand"); - struct timespec ts = { atoi(av[1]), 0 }; + kernel_old_timespec_t ts = { atoi(av[1]), 0 }; - if (nanosleep(&ts, NULL)) + if (syscall(__NR_nanosleep, (unsigned long) &ts, 0)) perror_msg_and_fail("nanosleep"); return 0; } + +#else + +SKIP_MAIN_UNDEFINED("__NR_nanosleep") + +#endif diff --git a/tests-m32/so_error.c b/tests-m32/so_error.c index 2592a3c1..03211ab9 100644 --- a/tests-m32/so_error.c +++ b/tests-m32/so_error.c @@ -2,6 +2,7 @@ * Check decoding of SO_ERROR socket option. * * Copyright (c) 2018 Masatake YAMATO + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -37,7 +38,7 @@ reserve_ephemeral_port(void) for (in_port_t port = 49152; port < 61000; port++) { /* Just bind here. No listen. */ addr.sin_port = htons(port); - if (bind(sd, &addr, sizeof(addr)) == 0) + if (bind(sd, (void *) &addr, sizeof(addr)) == 0) return port; } error_msg_and_skip("no ephemeral port available for test purposes"); @@ -69,7 +70,7 @@ main(void) .sin_addr.s_addr = htonl(INADDR_LOOPBACK), .sin_port = htons(port), }; - if (connect(fd, &addr, sizeof(addr)) == 0) + if (connect(fd, (void *) &addr, sizeof(addr)) == 0) error_msg_and_skip("connect unexpectedly succeeded"); if (errno != EINPROGRESS) perror_msg_and_skip("connect failed for unexpected reason"); diff --git a/tests-m32/so_peercred--pidns-translation.c b/tests-m32/so_peercred--pidns-translation.c new file mode 100644 index 00000000..402bbcfe --- /dev/null +++ b/tests-m32/so_peercred--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "so_peercred.c" diff --git a/tests-m32/so_peercred--pidns-translation.gen.test b/tests-m32/so_peercred--pidns-translation.gen.test new file mode 100755 index 00000000..956f8f3b --- /dev/null +++ b/tests-m32/so_peercred--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (so_peercred--pidns-translation test_pidns -e trace=getsockopt); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -e trace=getsockopt diff --git a/tests-m32/so_peercred.c b/tests-m32/so_peercred.c index 151bb175..e34d6ee1 100644 --- a/tests-m32/so_peercred.c +++ b/tests-m32/so_peercred.c @@ -2,13 +2,14 @@ * Check decoding of SO_PEERCRED socket option. * * Copyright (c) 2017 Dmitry V. Levin - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include "pidns.h" #include #include @@ -53,6 +54,8 @@ so_str(void) int main(void) { + PIDNS_TEST_INIT; + TAIL_ALLOC_OBJECT_CONST_PTR(struct ucred, peercred); TAIL_ALLOC_OBJECT_CONST_PTR(socklen_t, len); @@ -75,6 +78,8 @@ main(void) struct ucred *const gid_truncated = tail_alloc(sizeof_gid_truncated); + const char *pid_str = pidns_pid2str(PT_TGID); + int sv[2]; if (socketpair(AF_UNIX, SOCK_STREAM, 0, sv)) perror_msg_and_skip("socketpair AF_UNIX SOCK_STREAM"); @@ -82,8 +87,10 @@ main(void) /* classic getsockopt */ *len = sizeof(*peercred); get_peercred(sv[0], peercred, len); + pidns_print_leader(); printf("getsockopt(%d, %s", sv[0], so_str()); PRINT_FIELD_D(", {", *peercred, pid); + printf("%s", pid_str); PRINT_FIELD_UID(", ", *peercred, uid); PRINT_FIELD_UID(", ", *peercred, gid); printf("}, [%d]) = %s\n", *len, errstr); @@ -91,14 +98,17 @@ main(void) /* getsockopt with zero optlen */ *len = 0; get_peercred(sv[0], peercred, len); + pidns_print_leader(); printf("getsockopt(%d, %s, %p, [0]) = %s\n", sv[0], so_str(), peercred, errstr); /* getsockopt with optlen larger than necessary - shortened */ *len = sizeof(*peercred) + 1; get_peercred(sv[0], peercred, len); + pidns_print_leader(); printf("getsockopt(%d, %s", sv[0], so_str()); PRINT_FIELD_D(", {", *peercred, pid); + printf("%s", pid_str); PRINT_FIELD_UID(", ", *peercred, uid); PRINT_FIELD_UID(", ", *peercred, gid); printf("}, [%u->%d]) = %s\n", @@ -110,6 +120,7 @@ main(void) */ *len = sizeof_pid_truncated; get_peercred(sv[0], pid_truncated, len); + pidns_print_leader(); printf("getsockopt(%d, %s, {pid=", sv[0], so_str()); print_quoted_hex(pid_truncated, *len); printf("}, [%d]) = %s\n", *len, errstr); @@ -120,8 +131,10 @@ main(void) */ *len = sizeof_pid; get_peercred(sv[0], pid, len); + pidns_print_leader(); printf("getsockopt(%d, %s", sv[0], so_str()); PRINT_FIELD_D(", {", *pid, pid); + printf("%s", pid_str); printf("}, [%d]) = %s\n", *len, errstr); /* @@ -136,8 +149,10 @@ main(void) * to struct ucred.pid field. */ memcpy(uid, uid_truncated, sizeof_uid_truncated); + pidns_print_leader(); printf("getsockopt(%d, %s", sv[0], so_str()); PRINT_FIELD_D(", {", *uid, pid); + printf("%s", pid_str); printf(", uid="); print_quoted_hex(&uid->uid, sizeof_uid_truncated - offsetof(struct ucred, uid)); @@ -149,8 +164,10 @@ main(void) */ *len = sizeof_uid; get_peercred(sv[0], uid, len); + pidns_print_leader(); printf("getsockopt(%d, %s", sv[0], so_str()); PRINT_FIELD_D(", {", *uid, pid); + printf("%s", pid_str); PRINT_FIELD_UID(", ", *uid, uid); printf("}, [%d]) = %s\n", *len, errstr); @@ -166,8 +183,10 @@ main(void) * to struct ucred.pid and struct ucred.uid fields. */ memcpy(peercred, gid_truncated, sizeof_gid_truncated); + pidns_print_leader(); printf("getsockopt(%d, %s", sv[0], so_str()); PRINT_FIELD_D(", {", *peercred, pid); + printf("%s", pid_str); PRINT_FIELD_UID(", ", *peercred, uid); printf(", gid="); print_quoted_hex(&peercred->gid, sizeof_gid_truncated - @@ -177,14 +196,17 @@ main(void) /* getsockopt optval EFAULT */ *len = sizeof(*peercred); get_peercred(sv[0], &peercred->uid, len); + pidns_print_leader(); printf("getsockopt(%d, %s, %p, [%d]) = %s\n", sv[0], so_str(), &peercred->uid, *len, errstr); /* getsockopt optlen EFAULT */ get_peercred(sv[0], peercred, len + 1); + pidns_print_leader(); printf("getsockopt(%d, %s, %p, %p) = %s\n", sv[0], so_str(), peercred, len + 1, errstr); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-m32/sock_filter-v.c b/tests-m32/sock_filter-v.c index ac483646..5b6c5d84 100644 --- a/tests-m32/sock_filter-v.c +++ b/tests-m32/sock_filter-v.c @@ -2,7 +2,7 @@ * Check decoding of socket filters. * * Copyright (c) 2017 Dmitry V. Levin - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -23,17 +23,6 @@ #define HEX_FMT "%#x" -#if XLAT_RAW -# define XLAT_FMT HEX_FMT -# define XLAT_ARGS(a_) (a_) -#elif XLAT_VERBOSE -# define XLAT_FMT HEX_FMT " /* %s */" -# define XLAT_ARGS(a_) (a_), #a_ -#else -# define XLAT_FMT "%s" -# define XLAT_ARGS(a_) #a_ -#endif - #define PRINT_STMT(pfx, code_fmt, k_fmt, ...) \ printf("%sBPF_STMT(" code_fmt ", " k_fmt ")", pfx, __VA_ARGS__) diff --git a/tests-m32/socketcall.c b/tests-m32/socketcall.c index aa68a7eb..664a7693 100644 --- a/tests-m32/socketcall.c +++ b/tests-m32/socketcall.c @@ -2,15 +2,16 @@ * Check decoding of socketcall syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" -#ifdef __NR_socketcall +#if defined __NR_socketcall && !defined __ARM_EABI__ # include # include @@ -22,9 +23,9 @@ static const char * xlookup_uint(const struct xlat *xlat, const unsigned int val) { - for (; xlat->str != NULL; xlat++) - if (xlat->val == val) - return xlat->str; + for (size_t i = 0; i < xlat->size; i++) + if (xlat->data[i].val == val) + return xlat->data[i].str; return NULL; } @@ -52,8 +53,8 @@ test_socketcall(const int i, const void *const addr) int main(void) { - assert((unsigned) sc_min == socketcalls[0].val); - assert((unsigned) sc_max == socketcalls[ARRAY_SIZE(socketcalls) - 2].val); + assert(0 == socketcalls->data[0].val); + assert((unsigned) sc_max == socketcalls->data[socketcalls->size - 1].val); const unsigned long *const args = tail_alloc(sizeof(*args) * 6); efault = tail_alloc(1) + 1; @@ -70,6 +71,6 @@ main(void) #else -SKIP_MAIN_UNDEFINED("__NR_socketcall") +SKIP_MAIN_UNDEFINED("__NR_socketcall && !__ARM_EABI__") #endif diff --git a/tests-m32/sockopt-timestamp.c b/tests-m32/sockopt-timestamp.c index c2659925..9dd1f961 100644 --- a/tests-m32/sockopt-timestamp.c +++ b/tests-m32/sockopt-timestamp.c @@ -2,6 +2,7 @@ * Check decoding of timestamp control messages. * * Copyright (c) 2019 Dmitry V. Levin + * Copyright (c) 2019-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,6 +10,7 @@ #include "tests.h" #include +#include #include #include @@ -17,6 +19,9 @@ # include #endif +#include "kernel_timeval.h" +#include "kernel_old_timespec.h" + #define XLAT_MACROS_ONLY #include "xlat/sock_options.h" #undef XLAT_MACROS_ONLY @@ -26,16 +31,18 @@ print_timestamp_old(const struct cmsghdr *c) { const void *cmsg_header = c; const void *cmsg_data = CMSG_DATA(c); - const struct timeval *tv = cmsg_data; - const unsigned int expected_len = sizeof(*tv); + kernel_old_timeval_t tv; + const unsigned int expected_len = sizeof(tv); const unsigned int data_len = c->cmsg_len - (cmsg_data - cmsg_header); if (expected_len != data_len) perror_msg_and_fail("sizeof(struct timeval) = %u" ", data_len = %u\n", expected_len, data_len); + + memcpy(&tv, cmsg_data, sizeof(tv)); printf("{tv_sec=%lld, tv_usec=%lld}", - (long long) tv->tv_sec, (long long) tv->tv_usec); + (long long) tv.tv_sec, (long long) tv.tv_usec); } static void @@ -43,16 +50,18 @@ print_timestampns_old(const struct cmsghdr *c) { const void *cmsg_header = c; const void *cmsg_data = CMSG_DATA(c); - const struct timespec *ts = cmsg_data; - const unsigned int expected_len = sizeof(*ts); + kernel_old_timespec_t ts; + const unsigned int expected_len = sizeof(ts); const unsigned int data_len = c->cmsg_len - (cmsg_data - cmsg_header); if (expected_len != data_len) perror_msg_and_fail("sizeof(struct timespec) = %u" ", data_len = %u\n", expected_len, data_len); + + memcpy(&ts, cmsg_data, sizeof(ts)); printf("{tv_sec=%lld, tv_nsec=%lld}", - (long long) ts->tv_sec, (long long) ts->tv_nsec); + (long long) ts.tv_sec, (long long) ts.tv_nsec); } #ifdef HAVE_STRUCT___KERNEL_SOCK_TIMEVAL @@ -61,16 +70,18 @@ print_timestamp_new(const struct cmsghdr *c) { const void *cmsg_header = c; const void *cmsg_data = CMSG_DATA(c); - const struct __kernel_sock_timeval *tv = cmsg_data; - const unsigned int expected_len = sizeof(*tv); + struct __kernel_sock_timeval tv; + const unsigned int expected_len = sizeof(tv); const unsigned int data_len = c->cmsg_len - (cmsg_data - cmsg_header); if (expected_len != data_len) perror_msg_and_fail("sizeof(struct __kernel_sock_timeval) = %u" ", data_len = %u\n", expected_len, data_len); + + memcpy(&tv, cmsg_data, sizeof(tv)); printf("{tv_sec=%lld, tv_usec=%lld}", - (long long) tv->tv_sec, (long long) tv->tv_usec); + (long long) tv.tv_sec, (long long) tv.tv_usec); } #endif /* HAVE_STRUCT___KERNEL_SOCK_TIMEVAL */ @@ -80,16 +91,18 @@ print_timestampns_new(const struct cmsghdr *c) { const void *cmsg_header = c; const void *cmsg_data = CMSG_DATA(c); - const struct __kernel_timespec *ts = cmsg_data; - const unsigned int expected_len = sizeof(*ts); + struct __kernel_timespec ts; + const unsigned int expected_len = sizeof(ts); const unsigned int data_len = c->cmsg_len - (cmsg_data - cmsg_header); if (expected_len != data_len) perror_msg_and_fail("sizeof(struct __kernel_timespec) = %u" ", data_len = %u\n", expected_len, data_len); + + memcpy(&ts, cmsg_data, sizeof(ts)); printf("{tv_sec=%lld, tv_nsec=%lld}", - (long long) ts->tv_sec, (long long) ts->tv_nsec); + (long long) ts.tv_sec, (long long) ts.tv_nsec); } #endif /* HAVE_STRUCT___KERNEL_TIMESPEC */ diff --git a/tests-m32/splice.c b/tests-m32/splice.c index 2acdde7f..f62d5ba2 100644 --- a/tests-m32/splice.c +++ b/tests-m32/splice.c @@ -2,14 +2,14 @@ * This file is part of splice strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_splice diff --git a/tests-m32/stack-fcall-0.c b/tests-m32/stack-fcall-0.c index 8a26a79c..be987a94 100644 --- a/tests-m32/stack-fcall-0.c +++ b/tests-m32/stack-fcall-0.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -7,7 +7,10 @@ #include "stack-fcall.h" -int f0(int i) +int +f0(int i, unsigned long f) { - return f1(i) - i; + f ^= (unsigned long) (void *) f0; + COMPLEX_BODY(i, f); + return f1(i, f) - i; } diff --git a/tests-m32/stack-fcall-1.c b/tests-m32/stack-fcall-1.c index b5cd89b3..88f33b9b 100644 --- a/tests-m32/stack-fcall-1.c +++ b/tests-m32/stack-fcall-1.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -7,7 +7,10 @@ #include "stack-fcall.h" -int f1(int i) +int +f1(int i, unsigned long f) { - return f2(i) + i; + f ^= (unsigned long) (void *) f1; + COMPLEX_BODY(i, f); + return f2(i, f) + i; } diff --git a/tests-m32/stack-fcall-2.c b/tests-m32/stack-fcall-2.c index 16beee58..00235903 100644 --- a/tests-m32/stack-fcall-2.c +++ b/tests-m32/stack-fcall-2.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -7,7 +7,10 @@ #include "stack-fcall.h" -int f2(int i) +int +f2(int i, unsigned long f) { - return f3(i) - i; + f ^= (unsigned long) (void *) f2; + COMPLEX_BODY(i, f); + return f3(i, f) - i; } diff --git a/tests-m32/stack-fcall-3.c b/tests-m32/stack-fcall-3.c index 538b6565..ea7d5fed 100644 --- a/tests-m32/stack-fcall-3.c +++ b/tests-m32/stack-fcall-3.c @@ -1,23 +1,28 @@ /* - * Copyright (c) 2014-2019 The strace developers. + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include -#include - #include "stack-fcall.h" -int f3(int i) +int +f3(int i, unsigned long f) { + f ^= (unsigned long) (void *) f3; + COMPLEX_BODY(i, f); switch (i) { case 1: - return kill(getpid(), SIGURG); - + i -= chdir(""); + break; + case 2: + i -= kill(getpid(), SIGURG) - 1; + break; default: - return chdir("") + i; + i -= syscall(__NR_exit, i - 3); + break; } - + return i; } diff --git a/tests-m32/stack-fcall-attach.c b/tests-m32/stack-fcall-attach.c new file mode 100644 index 00000000..f2db2b7e --- /dev/null +++ b/tests-m32/stack-fcall-attach.c @@ -0,0 +1,2 @@ +#define ATTACH_MODE 1 +#include "stack-fcall.c" diff --git a/tests-m32/stack-fcall.c b/tests-m32/stack-fcall.c index cf4000e5..d0c62143 100644 --- a/tests-m32/stack-fcall.c +++ b/tests-m32/stack-fcall.c @@ -1,15 +1,26 @@ /* - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ +#include "tests.h" +#include #include "stack-fcall.h" -int main(void) +#ifndef ATTACH_MODE +# define ATTACH_MODE 0 +#endif + +int +main(int ac, char **av) { - f0(0); - f0(1); - return 0; +#if ATTACH_MODE + /* sleep a bit to let the tracer time to catch up */ + sleep(1); +#endif + + for (;;) + ac += f0(ac, (unsigned long) (void *) main); } diff --git a/tests-m32/stack-fcall.h b/tests-m32/stack-fcall.h index cca0f94f..3afa8a26 100644 --- a/tests-m32/stack-fcall.h +++ b/tests-m32/stack-fcall.h @@ -1,10 +1,13 @@ /* - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ +#include +#include "scno.h" + #ifdef MANGLE # define f0 _ZN2ns2f0Ei @@ -14,7 +17,28 @@ #endif -int f0(int i); -int f1(int i); -int f2(int i); -int f3(int i); +int f0(int i, unsigned long); +int f1(int i, unsigned long); +int f2(int i, unsigned long); +int f3(int i, unsigned long); + +#define COMPLEX_BODY(i, f) \ + do { \ + int tid = syscall(__NR_gettid, f); \ + if (i == tid) \ + return 0; \ + switch ((unsigned int) tid & 3) { \ + case 0: \ + i += f0(tid, f); \ + break; \ + case 1: \ + i += f1(tid, f); \ + break; \ + case 2: \ + i += f2(tid, f); \ + break; \ + case 3: \ + i += f3(tid, f); \ + break; \ + } \ + } while (0) diff --git a/tests-m32/stat.c b/tests-m32/stat.c index 8c8daad1..f161b4f1 100644 --- a/tests-m32/stat.c +++ b/tests-m32/stat.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_stat diff --git a/tests-m32/stat.gen.test b/tests-m32/stat.gen.test index 13ccd0b8..83037995 100755 --- a/tests-m32/stat.gen.test +++ b/tests-m32/stat.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (stat -a32 -v -P stat.sample -P /dev/full); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (stat -a30 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a32 -v -P stat.sample -P /dev/full +run_strace_match_diff -a30 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full diff --git a/tests-m32/stat64.c b/tests-m32/stat64.c index 12ded432..5c6b56b8 100644 --- a/tests-m32/stat64.c +++ b/tests-m32/stat64.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_stat64 diff --git a/tests-m32/stat64.gen.test b/tests-m32/stat64.gen.test index f49df37a..fe86da1d 100755 --- a/tests-m32/stat64.gen.test +++ b/tests-m32/stat64.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (stat64 -a32 -v -P stat.sample -P /dev/full); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (stat64 -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a32 -v -P stat.sample -P /dev/full +run_strace_match_diff -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full diff --git a/tests-m32/statfs.c b/tests-m32/statfs.c index 5672a7fc..13b98fa5 100644 --- a/tests-m32/statfs.c +++ b/tests-m32/statfs.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2014-2018 Dmitry V. Levin + * Copyright (c) 2014-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_statfs diff --git a/tests-m32/statfs64.c b/tests-m32/statfs64.c index 1e0a4b24..5cd92529 100644 --- a/tests-m32/statfs64.c +++ b/tests-m32/statfs64.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_statfs64 diff --git a/tests-m32/status-all.c b/tests-m32/status-all.c new file mode 100644 index 00000000..db9510af --- /dev/null +++ b/tests-m32/status-all.c @@ -0,0 +1,24 @@ +/* + * Check status=all filtering for failed and successful syscalls. + * + * Copyright (c) 2019 Intel Corporation + * Copyright (c) 2019 Paul Chaignon + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include + +int +main(void) +{ + static const char sample_valid[] = "."; + static const char sample_invalid[] = ""; + + test_status_chdir(sample_valid, 1, 1); + test_status_chdir(sample_invalid, 1, 1); + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests-m32/status-all.gen.test b/tests-m32/status-all.gen.test new file mode 100755 index 00000000..0a10ba42 --- /dev/null +++ b/tests-m32/status-all.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (status-all -a10 -e trace=chdir --status=detached,failed,successful,unavailable,unfinished); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 -e trace=chdir --status=detached,failed,successful,unavailable,unfinished diff --git a/tests-m32/status-detached.expected b/tests-m32/status-detached.expected new file mode 100644 index 00000000..0a6325f5 --- /dev/null +++ b/tests-m32/status-detached.expected @@ -0,0 +1 @@ +nanosleep\({tv_sec=2, tv_nsec=0}, diff --git a/tests-m32/status-detached.test b/tests-m32/status-detached.test new file mode 100755 index 00000000..35692726 --- /dev/null +++ b/tests-m32/status-detached.test @@ -0,0 +1,20 @@ +#!/bin/sh +# +# Check -e status=detached option. +# +# Copyright (c) 2019 Paul Chaignon +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +run_prog ../sleep 0 + +# -I2 avoids blocking all fatal signals, the default when using -o. +$STRACE -o "$LOG" -I2 -e status=detached ../sleep 2 & +pid=$! +../sleep 1 +kill $pid +wait +match_grep diff --git a/tests-m32/status-failed-long.c b/tests-m32/status-failed-long.c new file mode 100644 index 00000000..ac61c515 --- /dev/null +++ b/tests-m32/status-failed-long.c @@ -0,0 +1 @@ +#include "status-failed.c" diff --git a/tests-m32/status-failed-long.gen.test b/tests-m32/status-failed-long.gen.test new file mode 100755 index 00000000..db2abc84 --- /dev/null +++ b/tests-m32/status-failed-long.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (status-failed-long -a10 -e trace=chdir --failed-only); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 -e trace=chdir --failed-only diff --git a/tests-m32/status-failed-status.c b/tests-m32/status-failed-status.c new file mode 100644 index 00000000..ac61c515 --- /dev/null +++ b/tests-m32/status-failed-status.c @@ -0,0 +1 @@ +#include "status-failed.c" diff --git a/tests-m32/status-failed-status.gen.test b/tests-m32/status-failed-status.gen.test new file mode 100755 index 00000000..f51b19f1 --- /dev/null +++ b/tests-m32/status-failed-status.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (status-failed-status -a10 -e trace=chdir -e status=failed); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 -e trace=chdir -e status=failed diff --git a/tests-m32/status-failed.c b/tests-m32/status-failed.c new file mode 100644 index 00000000..81d2885a --- /dev/null +++ b/tests-m32/status-failed.c @@ -0,0 +1,24 @@ +/* + * Check status=failed filtering for failed and successful syscalls. + * + * Copyright (c) 2019 Intel Corporation + * Copyright (c) 2019 Paul Chaignon + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include + +int +main(void) +{ + static const char sample_valid[] = "."; + static const char sample_invalid[] = ""; + + test_status_chdir(sample_valid, 0, 1); + test_status_chdir(sample_invalid, 0, 1); + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests-m32/status-failed.gen.test b/tests-m32/status-failed.gen.test new file mode 100755 index 00000000..fcc77903 --- /dev/null +++ b/tests-m32/status-failed.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (status-failed -a10 -e trace=chdir -Z); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 -e trace=chdir -Z diff --git a/tests-m32/status-none-f.c b/tests-m32/status-none-f.c new file mode 100644 index 00000000..b41a5666 --- /dev/null +++ b/tests-m32/status-none-f.c @@ -0,0 +1,19 @@ +/* + * Check basic seccomp filtering with large number of traced syscalls. + * + * Copyright (c) 2018-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include + +int +main(void) +{ + printf("%-5d +++ exited with 0 +++\n", getpid()); + return 0; +} diff --git a/tests-m32/status-none-threads.c b/tests-m32/status-none-threads.c new file mode 100644 index 00000000..ae939601 --- /dev/null +++ b/tests-m32/status-none-threads.c @@ -0,0 +1,53 @@ +/* + * Check status=none filtering when a non-leader thread invokes execve. + * + * Copyright (c) 2019 Paul Chaignon + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include +#include +#include +#include "scno.h" + +static pid_t leader; + +static void * +thread(void *arg) +{ + struct timespec ts = { .tv_nsec = 100000000 }; + (void) nanosleep(&ts, NULL); + + printf("%-5d +++ superseded by execve in pid %u +++\n", + leader, (int) syscall(__NR_gettid)); + + char *argv[] = {((char **) arg)[0], (char *) "0", NULL}; + execve(argv[0], argv, NULL); + perror_msg_and_fail("execve"); +} + +int +main(int ac, char **av) +{ + setvbuf(stdout, NULL, _IONBF, 0); + leader = getpid(); + + if (ac > 1) { + printf("%-5d +++ exited with 0 +++\n", leader); + return 0; + } + + pthread_t t; + errno = pthread_create(&t, NULL, thread, av); + if (errno) + perror_msg_and_fail("pthread_create"); + + struct timespec ts = { .tv_sec = 123 }; + (void) nanosleep(&ts, 0); + + return 1; +} diff --git a/tests-m32/status-none-threads.test b/tests-m32/status-none-threads.test new file mode 100755 index 00000000..630424e8 --- /dev/null +++ b/tests-m32/status-none-threads.test @@ -0,0 +1,47 @@ +#!/bin/sh +# +# Check status=none filtering when a non-leader thread invokes execve. +# +# Copyright (c) 2019 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +# Check that PTRACE_EVENT_EXEC support in kernel is good enough. +# The kernel before commit v3.1-rc1~308^2~7 reported 0 instead of old pid. +require_min_kernel_version_or_skip 3.1 + +# This test requires some concurrency between threads. +require_min_nproc 2 + +check_prog diff +run_prog_skip_if_failed date +%s > /dev/null +s0="$(date +%s)" + +run_prog > /dev/null + +set -- -a14 -f -e status=${status_filter:-none} $args + +# Due to probabilistic nature of the test, try it several times. +while :; do + > "$LOG" || fail_ "failed to write $LOG" + rc=0 + $STRACE -o "$LOG" "$@" > "$EXP" || { + rc=$? + cat < "$LOG" >&2 + } + + if [ "$rc" = 0 ] && diff -u -- "$EXP" "$LOG"; then + exit 0 + fi + + s1="$(date +%s)" + [ "$(($s1-$s0))" -gt "$(($TIMEOUT_DURATION/2))" ] || + continue + + [ "$rc" = 0 ] && + fail_ "$STRACE $* output mismatch" || + fail_ "$STRACE $* failed with code $rc" +done diff --git a/tests-m32/status-none.c b/tests-m32/status-none.c new file mode 100644 index 00000000..0144a60c --- /dev/null +++ b/tests-m32/status-none.c @@ -0,0 +1,18 @@ +/* + * Check basic -e status=none syscall filtering. + * + * Copyright (c) 2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include + +int +main(void) +{ + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests-m32/status-none.gen.test b/tests-m32/status-none.gen.test new file mode 100755 index 00000000..2b141f2f --- /dev/null +++ b/tests-m32/status-none.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (status-none -e trace=all --status=none); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -e trace=all --status=none diff --git a/tests-m32/status-successful-long.c b/tests-m32/status-successful-long.c new file mode 100644 index 00000000..45be5b19 --- /dev/null +++ b/tests-m32/status-successful-long.c @@ -0,0 +1 @@ +#include "status-successful.c" diff --git a/tests-m32/status-successful-long.gen.test b/tests-m32/status-successful-long.gen.test new file mode 100755 index 00000000..1618f32c --- /dev/null +++ b/tests-m32/status-successful-long.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (status-successful-long -a10 -e trace=chdir --successful-only); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 -e trace=chdir --successful-only diff --git a/tests-m32/status-successful-status.c b/tests-m32/status-successful-status.c new file mode 100644 index 00000000..45be5b19 --- /dev/null +++ b/tests-m32/status-successful-status.c @@ -0,0 +1 @@ +#include "status-successful.c" diff --git a/tests-m32/status-successful-status.gen.test b/tests-m32/status-successful-status.gen.test new file mode 100755 index 00000000..34ce3db8 --- /dev/null +++ b/tests-m32/status-successful-status.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (status-successful-status -a10 -e trace=chdir --status=successful); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 -e trace=chdir --status=successful diff --git a/tests-m32/status-successful.c b/tests-m32/status-successful.c new file mode 100644 index 00000000..b37854af --- /dev/null +++ b/tests-m32/status-successful.c @@ -0,0 +1,24 @@ +/* + * Check status=successful filtering for failed and successful syscalls. + * + * Copyright (c) 2019 Intel Corporation + * Copyright (c) 2019 Paul Chaignon + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include + +int +main(void) +{ + static const char sample_valid[] = "."; + static const char sample_invalid[] = ""; + + test_status_chdir(sample_valid, 1, 0); + test_status_chdir(sample_invalid, 1, 0); + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests-m32/status-successful.gen.test b/tests-m32/status-successful.gen.test new file mode 100755 index 00000000..395b85eb --- /dev/null +++ b/tests-m32/status-successful.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (status-successful -a10 -e trace=chdir -z); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 -e trace=chdir -z diff --git a/tests-m32/status-unfinished-threads.c b/tests-m32/status-unfinished-threads.c new file mode 100644 index 00000000..77c88173 --- /dev/null +++ b/tests-m32/status-unfinished-threads.c @@ -0,0 +1,66 @@ +/* + * Check status=unfinished filtering when a non-leader thread invokes execve. + * + * Copyright (c) 2019 Paul Chaignon + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_nanosleep + +# include +# include +# include +# include + +# include "kernel_old_timespec.h" + +static pid_t leader; + +static void * +thread(void *arg) +{ + kernel_old_timespec_t ts = { .tv_nsec = 100000000 }; + (void) syscall(__NR_nanosleep, (unsigned long) &ts, 0UL); + + printf("%-5d nanosleep({tv_sec=123, tv_nsec=0}, ) = ?\n" + "%-5d +++ superseded by execve in pid %u +++\n", + leader, leader, (int) syscall(__NR_gettid)); + + char *argv[] = {((char **) arg)[0], (char *) "0", NULL}; + execve(argv[0], argv, NULL); + perror_msg_and_fail("execve"); +} + +int +main(int ac, char **av) +{ + setvbuf(stdout, NULL, _IONBF, 0); + leader = getpid(); + + if (ac > 1) { + printf("%-5d exit_group(0) = ?\n" + "%-5d +++ exited with 0 +++\n", leader, leader); + return 0; + } + + pthread_t t; + errno = pthread_create(&t, NULL, thread, av); + if (errno) + perror_msg_and_fail("pthread_create"); + + kernel_old_timespec_t ts = { .tv_sec = 123 }; + (void) syscall(__NR_nanosleep, (unsigned long) &ts, 0UL); + + return 1; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_nanosleep") + +#endif diff --git a/tests-m32/status-unfinished-threads.test b/tests-m32/status-unfinished-threads.test new file mode 100755 index 00000000..f54a323f --- /dev/null +++ b/tests-m32/status-unfinished-threads.test @@ -0,0 +1,12 @@ +#!/bin/sh +# +# Check status=unfinished filtering when a non-leader thread invokes execve. +# +# Copyright (c) 2019 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +status_filter=unfinished + +. "${srcdir=.}"/status-none-threads.test diff --git a/tests-m32/status-unfinished.c b/tests-m32/status-unfinished.c new file mode 100644 index 00000000..de78eee4 --- /dev/null +++ b/tests-m32/status-unfinished.c @@ -0,0 +1,19 @@ +/* + * Check basic -e status=unfinished syscall filtering. + * + * Copyright (c) 2019 Paul Chaignon + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include + +int +main(void) +{ + puts("exit_group(0) = ?\n" + "+++ exited with 0 +++"); + return 0; +} diff --git a/tests-m32/status-unfinished.gen.test b/tests-m32/status-unfinished.gen.test new file mode 100755 index 00000000..c02817b0 --- /dev/null +++ b/tests-m32/status-unfinished.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (status-unfinished -a10 -e trace=all --status=unfinished); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 -e trace=all --status=unfinished diff --git a/tests-m32/status.c b/tests-m32/status.c new file mode 100644 index 00000000..82fd8b18 --- /dev/null +++ b/tests-m32/status.c @@ -0,0 +1,21 @@ +/* + * Helper function to check -e status option. + * + * Copyright (c) 2019 Intel Corporation + * Copyright (c) 2019 Paul Chaignon + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include + +void +test_status_chdir(const char *dir, bool print_success, bool print_fail) +{ + long rc = chdir(dir); + if ((rc == -1 && print_fail) || (rc != -1 && print_success)) + printf("chdir(\"%s\") = %s\n", dir, sprintrc(rc)); +} diff --git a/tests-m32/statx.c b/tests-m32/statx.c index c5e86ad2..c5537204 100644 --- a/tests-m32/statx.c +++ b/tests-m32/statx.c @@ -1,14 +1,14 @@ /* - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" -#ifdef __NR_statx +#if defined __NR_statx && defined HAVE_STRUCT_STATX # include # include "xlat.h" @@ -45,6 +45,6 @@ static const char *TEST_SYSCALL_STATX_MASK_STR = "STATX_ALL"; #else -SKIP_MAIN_UNDEFINED("__NR_statx") +SKIP_MAIN_UNDEFINED("__NR_statx && HAVE_STRUCT_STATX") #endif diff --git a/tests-m32/statx.gen.test b/tests-m32/statx.gen.test index bff3e3f2..564a5918 100755 --- a/tests-m32/statx.gen.test +++ b/tests-m32/statx.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (statx -a32 -v -P stat.sample -P /dev/full); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (statx -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a32 -v -P stat.sample -P /dev/full +run_strace_match_diff -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full diff --git a/tests-m32/strace--absolute-timestamps-format-time-precision-ms.gen.test b/tests-m32/strace--absolute-timestamps-format-time-precision-ms.gen.test new file mode 100755 index 00000000..061321c1 --- /dev/null +++ b/tests-m32/strace--absolute-timestamps-format-time-precision-ms.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps-format-time-precision-ms +strace-tt.test 3 --absolute-timestamps=format:time --absolute-timestamps=precision:ms); do not edit. +set -- 3 --absolute-timestamps=format:time --absolute-timestamps=precision:ms +. "${srcdir=.}/strace-tt.test" diff --git a/tests-m32/strace--absolute-timestamps-format-time-precision-ns.gen.test b/tests-m32/strace--absolute-timestamps-format-time-precision-ns.gen.test new file mode 100755 index 00000000..c1c94db9 --- /dev/null +++ b/tests-m32/strace--absolute-timestamps-format-time-precision-ns.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps-format-time-precision-ns +strace-tt.test 9 --absolute-timestamps=format:time --absolute-timestamps=precision:ns); do not edit. +set -- 9 --absolute-timestamps=format:time --absolute-timestamps=precision:ns +. "${srcdir=.}/strace-tt.test" diff --git a/tests-m32/strace--absolute-timestamps-format-time-precision-s.gen.test b/tests-m32/strace--absolute-timestamps-format-time-precision-s.gen.test new file mode 100755 index 00000000..52bfe1cc --- /dev/null +++ b/tests-m32/strace--absolute-timestamps-format-time-precision-s.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps-format-time-precision-s +strace-t.test --absolute-timestamps=format:time --absolute-timestamps=precision:s); do not edit. +set -- --absolute-timestamps=format:time --absolute-timestamps=precision:s +. "${srcdir=.}/strace-t.test" diff --git a/tests-m32/strace--absolute-timestamps-format-time-precision-us.gen.test b/tests-m32/strace--absolute-timestamps-format-time-precision-us.gen.test new file mode 100755 index 00000000..6c55961c --- /dev/null +++ b/tests-m32/strace--absolute-timestamps-format-time-precision-us.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps-format-time-precision-us +strace-tt.test 6 --absolute-timestamps=format:time --absolute-timestamps=precision:us); do not edit. +set -- 6 --absolute-timestamps=format:time --absolute-timestamps=precision:us +. "${srcdir=.}/strace-tt.test" diff --git a/tests-m32/strace--absolute-timestamps-format-time.gen.test b/tests-m32/strace--absolute-timestamps-format-time.gen.test new file mode 100755 index 00000000..1c55649b --- /dev/null +++ b/tests-m32/strace--absolute-timestamps-format-time.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps-format-time +strace-t.test --absolute-timestamps=format:time); do not edit. +set -- --absolute-timestamps=format:time +. "${srcdir=.}/strace-t.test" diff --git a/tests-m32/strace--absolute-timestamps-format-unix-precision-ms.gen.test b/tests-m32/strace--absolute-timestamps-format-unix-precision-ms.gen.test new file mode 100755 index 00000000..fe4d221e --- /dev/null +++ b/tests-m32/strace--absolute-timestamps-format-unix-precision-ms.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps-format-unix-precision-ms +strace-ttt.test 3 --absolute-timestamps=precision:ms --absolute-timestamps=format:unix); do not edit. +set -- 3 --absolute-timestamps=precision:ms --absolute-timestamps=format:unix +. "${srcdir=.}/strace-ttt.test" diff --git a/tests-m32/strace--absolute-timestamps-format-unix-precision-ns.gen.test b/tests-m32/strace--absolute-timestamps-format-unix-precision-ns.gen.test new file mode 100755 index 00000000..9ea30ba4 --- /dev/null +++ b/tests-m32/strace--absolute-timestamps-format-unix-precision-ns.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps-format-unix-precision-ns +strace-ttt.test 9 --absolute-timestamps=format:unix --absolute-timestamps=precision:ns); do not edit. +set -- 9 --absolute-timestamps=format:unix --absolute-timestamps=precision:ns +. "${srcdir=.}/strace-ttt.test" diff --git a/tests-m32/strace--absolute-timestamps-format-unix-precision-s.gen.test b/tests-m32/strace--absolute-timestamps-format-unix-precision-s.gen.test new file mode 100755 index 00000000..93b7221f --- /dev/null +++ b/tests-m32/strace--absolute-timestamps-format-unix-precision-s.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps-format-unix-precision-s +strace-ttt.test 0 --absolute-timestamps=format:unix --absolute-timestamps=precision:s); do not edit. +set -- 0 --absolute-timestamps=format:unix --absolute-timestamps=precision:s +. "${srcdir=.}/strace-ttt.test" diff --git a/tests-m32/strace--absolute-timestamps-format-unix-precision-us.gen.test b/tests-m32/strace--absolute-timestamps-format-unix-precision-us.gen.test new file mode 100755 index 00000000..f5136585 --- /dev/null +++ b/tests-m32/strace--absolute-timestamps-format-unix-precision-us.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps-format-unix-precision-us +strace-ttt.test 6 --absolute-timestamps=precision:us --absolute-timestamps=format:unix); do not edit. +set -- 6 --absolute-timestamps=precision:us --absolute-timestamps=format:unix +. "${srcdir=.}/strace-ttt.test" diff --git a/tests-m32/strace--absolute-timestamps.gen.test b/tests-m32/strace--absolute-timestamps.gen.test new file mode 100755 index 00000000..f5c79952 --- /dev/null +++ b/tests-m32/strace--absolute-timestamps.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps +strace-t.test --absolute-timestamps); do not edit. +set -- --absolute-timestamps +. "${srcdir=.}/strace-t.test" diff --git a/tests-m32/strace--follow-forks-output-separately.expected b/tests-m32/strace--follow-forks-output-separately.expected new file mode 100644 index 00000000..627a1b4c --- /dev/null +++ b/tests-m32/strace--follow-forks-output-separately.expected @@ -0,0 +1,2 @@ +exit_group(0) = ? ++++ exited with 0 +++ diff --git a/tests-m32/strace--follow-forks-output-separately.gen.test b/tests-m32/strace--follow-forks-output-separately.gen.test new file mode 100755 index 00000000..96c225ec --- /dev/null +++ b/tests-m32/strace--follow-forks-output-separately.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--follow-forks-output-separately +strace-ff.test --follow-forks --output-separately); do not edit. +set -- --follow-forks --output-separately +. "${srcdir=.}/strace-ff.test" diff --git a/tests-m32/strace--relative-timestamps-ms.expected b/tests-m32/strace--relative-timestamps-ms.expected new file mode 100644 index 00000000..9fff2962 --- /dev/null +++ b/tests-m32/strace--relative-timestamps-ms.expected @@ -0,0 +1,2 @@ +[ ]{5}0\.0{3} execve\("\.\./sleep", \["\.\./sleep", "1"\], 0x[[:xdigit:]]* /\* [[:digit:]]* vars \*/\) = 0 +[ ]{5}(1\.[01]|0\.9)[[:digit:]]{2} \+\+\+ exited with 0 \+\+\+ diff --git a/tests-m32/strace--relative-timestamps-ms.gen.test b/tests-m32/strace--relative-timestamps-ms.gen.test new file mode 100755 index 00000000..60a5865d --- /dev/null +++ b/tests-m32/strace--relative-timestamps-ms.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--relative-timestamps-ms +strace-r.test --relative-timestamps=ms); do not edit. +set -- --relative-timestamps=ms +. "${srcdir=.}/strace-r.test" diff --git a/tests-m32/strace--relative-timestamps-ns.expected b/tests-m32/strace--relative-timestamps-ns.expected new file mode 100644 index 00000000..d72c4779 --- /dev/null +++ b/tests-m32/strace--relative-timestamps-ns.expected @@ -0,0 +1,2 @@ +[ ]{5}0\.0{9} execve\("\.\./sleep", \["\.\./sleep", "1"\], 0x[[:xdigit:]]* /\* [[:digit:]]* vars \*/\) = 0 +[ ]{5}(1\.[01]|0\.9)[[:digit:]]{8} \+\+\+ exited with 0 \+\+\+ diff --git a/tests-m32/strace--relative-timestamps-ns.gen.test b/tests-m32/strace--relative-timestamps-ns.gen.test new file mode 100755 index 00000000..3aec8087 --- /dev/null +++ b/tests-m32/strace--relative-timestamps-ns.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--relative-timestamps-ns +strace-r.test --relative-timestamps=ns); do not edit. +set -- --relative-timestamps=ns +. "${srcdir=.}/strace-r.test" diff --git a/tests-m32/strace--relative-timestamps-s.expected b/tests-m32/strace--relative-timestamps-s.expected new file mode 100644 index 00000000..b3c5ff05 --- /dev/null +++ b/tests-m32/strace--relative-timestamps-s.expected @@ -0,0 +1,2 @@ +[ ]{5}0 execve\("\.\./sleep", \["\.\./sleep", "1"\], 0x[[:xdigit:]]* /\* [[:digit:]]* vars \*/\) = 0 +[ ]{5}[01] \+\+\+ exited with 0 \+\+\+ diff --git a/tests-m32/strace--relative-timestamps-s.gen.test b/tests-m32/strace--relative-timestamps-s.gen.test new file mode 100755 index 00000000..2d2ba8db --- /dev/null +++ b/tests-m32/strace--relative-timestamps-s.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--relative-timestamps-s +strace-r.test --relative-timestamps=s); do not edit. +set -- --relative-timestamps=s +. "${srcdir=.}/strace-r.test" diff --git a/tests-m32/strace--relative-timestamps-us.expected b/tests-m32/strace--relative-timestamps-us.expected new file mode 100644 index 00000000..2a5b9773 --- /dev/null +++ b/tests-m32/strace--relative-timestamps-us.expected @@ -0,0 +1,2 @@ +[ ]{5}0\.0{6} execve\("\.\./sleep", \["\.\./sleep", "1"\], 0x[[:xdigit:]]* /\* [[:digit:]]* vars \*/\) = 0 +[ ]{5}(1\.[01]|0\.9)[[:digit:]]{5} \+\+\+ exited with 0 \+\+\+ diff --git a/tests-m32/strace--relative-timestamps-us.gen.test b/tests-m32/strace--relative-timestamps-us.gen.test new file mode 100755 index 00000000..660c0f29 --- /dev/null +++ b/tests-m32/strace--relative-timestamps-us.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--relative-timestamps-us +strace-r.test --relative-timestamps=us); do not edit. +set -- --relative-timestamps=us +. "${srcdir=.}/strace-r.test" diff --git a/tests-m32/strace--relative-timestamps.expected b/tests-m32/strace--relative-timestamps.expected new file mode 100644 index 00000000..2a5b9773 --- /dev/null +++ b/tests-m32/strace--relative-timestamps.expected @@ -0,0 +1,2 @@ +[ ]{5}0\.0{6} execve\("\.\./sleep", \["\.\./sleep", "1"\], 0x[[:xdigit:]]* /\* [[:digit:]]* vars \*/\) = 0 +[ ]{5}(1\.[01]|0\.9)[[:digit:]]{5} \+\+\+ exited with 0 \+\+\+ diff --git a/tests-m32/strace--relative-timestamps.gen.test b/tests-m32/strace--relative-timestamps.gen.test new file mode 100755 index 00000000..c0e8abe4 --- /dev/null +++ b/tests-m32/strace--relative-timestamps.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--relative-timestamps +strace-r.test --relative-timestamps); do not edit. +set -- --relative-timestamps +. "${srcdir=.}/strace-r.test" diff --git a/tests-m32/strace--strings-in-hex-all.c b/tests-m32/strace--strings-in-hex-all.c new file mode 100644 index 00000000..af37c30c --- /dev/null +++ b/tests-m32/strace--strings-in-hex-all.c @@ -0,0 +1,2 @@ +#define STRACE_XX 1 +#include "strace-x.c" diff --git a/tests-m32/strace--strings-in-hex-all.gen.test b/tests-m32/strace--strings-in-hex-all.gen.test new file mode 100755 index 00000000..78d61edd --- /dev/null +++ b/tests-m32/strace--strings-in-hex-all.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--strings-in-hex-all --trace=chdir --strings-in-hex=all --columns=18); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff --trace=chdir --strings-in-hex=all --columns=18 diff --git a/tests-m32/strace--strings-in-hex-non-ascii.c b/tests-m32/strace--strings-in-hex-non-ascii.c new file mode 100644 index 00000000..e07ded29 --- /dev/null +++ b/tests-m32/strace--strings-in-hex-non-ascii.c @@ -0,0 +1,2 @@ +#define STRACE_XX 0 +#include "strace-x.c" diff --git a/tests-m32/strace--strings-in-hex-non-ascii.gen.test b/tests-m32/strace--strings-in-hex-non-ascii.gen.test new file mode 100755 index 00000000..037af673 --- /dev/null +++ b/tests-m32/strace--strings-in-hex-non-ascii.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--strings-in-hex-non-ascii --trace=chdir --strings-in-hex=non-ascii --columns=12); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff --trace=chdir --strings-in-hex=non-ascii --columns=12 diff --git a/tests-m32/strace--strings-in-hex.c b/tests-m32/strace--strings-in-hex.c new file mode 100644 index 00000000..af37c30c --- /dev/null +++ b/tests-m32/strace--strings-in-hex.c @@ -0,0 +1,2 @@ +#define STRACE_XX 1 +#include "strace-x.c" diff --git a/tests-m32/strace--strings-in-hex.gen.test b/tests-m32/strace--strings-in-hex.gen.test new file mode 100755 index 00000000..c16db4b9 --- /dev/null +++ b/tests-m32/strace--strings-in-hex.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--strings-in-hex --trace=chdir --strings-in-hex --columns=18); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff --trace=chdir --strings-in-hex --columns=18 diff --git a/tests-m32/strace--syscall-times-ms.expected b/tests-m32/strace--syscall-times-ms.expected new file mode 100644 index 00000000..62c652ad --- /dev/null +++ b/tests-m32/strace--syscall-times-ms.expected @@ -0,0 +1 @@ +nanosleep\(\{tv_sec=1, tv_nsec=0\}, NULL\) = 0 <(1\.[01]|0\.9)[[:digit:]]{2}> diff --git a/tests-m32/strace--syscall-times-ms.gen.test b/tests-m32/strace--syscall-times-ms.gen.test new file mode 100755 index 00000000..d6b43d4a --- /dev/null +++ b/tests-m32/strace--syscall-times-ms.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--syscall-times-ms +strace-T.test --syscall-times=ms); do not edit. +set -- --syscall-times=ms +. "${srcdir=.}/strace-T.test" diff --git a/tests-m32/strace--syscall-times-ns.expected b/tests-m32/strace--syscall-times-ns.expected new file mode 100644 index 00000000..0110af4c --- /dev/null +++ b/tests-m32/strace--syscall-times-ns.expected @@ -0,0 +1 @@ +nanosleep\(\{tv_sec=1, tv_nsec=0\}, NULL\) = 0 <(1\.[01]|0\.9)[[:digit:]]{8}> diff --git a/tests-m32/strace--syscall-times-ns.gen.test b/tests-m32/strace--syscall-times-ns.gen.test new file mode 100755 index 00000000..1b719f0f --- /dev/null +++ b/tests-m32/strace--syscall-times-ns.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--syscall-times-ns +strace-T.test --syscall-times=ns); do not edit. +set -- --syscall-times=ns +. "${srcdir=.}/strace-T.test" diff --git a/tests-m32/strace--syscall-times-s.expected b/tests-m32/strace--syscall-times-s.expected new file mode 100644 index 00000000..fd4d3401 --- /dev/null +++ b/tests-m32/strace--syscall-times-s.expected @@ -0,0 +1 @@ +nanosleep\(\{tv_sec=1, tv_nsec=0\}, NULL\) = 0 <[01]> diff --git a/tests-m32/strace--syscall-times-s.gen.test b/tests-m32/strace--syscall-times-s.gen.test new file mode 100755 index 00000000..095e49bd --- /dev/null +++ b/tests-m32/strace--syscall-times-s.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--syscall-times-s +strace-T.test --syscall-times=s); do not edit. +set -- --syscall-times=s +. "${srcdir=.}/strace-T.test" diff --git a/tests-m32/strace--syscall-times-us.expected b/tests-m32/strace--syscall-times-us.expected new file mode 100644 index 00000000..1ea02046 --- /dev/null +++ b/tests-m32/strace--syscall-times-us.expected @@ -0,0 +1 @@ +nanosleep\(\{tv_sec=1, tv_nsec=0\}, NULL\) = 0 <(1\.[01]|0\.9)[[:digit:]]{5}> diff --git a/tests-m32/strace--syscall-times-us.gen.test b/tests-m32/strace--syscall-times-us.gen.test new file mode 100755 index 00000000..65ac920e --- /dev/null +++ b/tests-m32/strace--syscall-times-us.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--syscall-times-us +strace-T.test --syscall-times=us); do not edit. +set -- --syscall-times=us +. "${srcdir=.}/strace-T.test" diff --git a/tests-m32/strace--syscall-times.expected b/tests-m32/strace--syscall-times.expected new file mode 100644 index 00000000..1ea02046 --- /dev/null +++ b/tests-m32/strace--syscall-times.expected @@ -0,0 +1 @@ +nanosleep\(\{tv_sec=1, tv_nsec=0\}, NULL\) = 0 <(1\.[01]|0\.9)[[:digit:]]{5}> diff --git a/tests-m32/strace--syscall-times.gen.test b/tests-m32/strace--syscall-times.gen.test new file mode 100755 index 00000000..a86a8f15 --- /dev/null +++ b/tests-m32/strace--syscall-times.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--syscall-times +strace-T.test --syscall-times); do not edit. +set -- --syscall-times +. "${srcdir=.}/strace-T.test" diff --git a/tests-m32/strace--timestamps-time-ms.gen.test b/tests-m32/strace--timestamps-time-ms.gen.test new file mode 100755 index 00000000..bc468d24 --- /dev/null +++ b/tests-m32/strace--timestamps-time-ms.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps-time-ms +strace-tt.test 3 --timestamps=time,ms); do not edit. +set -- 3 --timestamps=time,ms +. "${srcdir=.}/strace-tt.test" diff --git a/tests-m32/strace--timestamps-time-ns.gen.test b/tests-m32/strace--timestamps-time-ns.gen.test new file mode 100755 index 00000000..69a2a015 --- /dev/null +++ b/tests-m32/strace--timestamps-time-ns.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps-time-ns +strace-tt.test 9 --timestamps=time,ns); do not edit. +set -- 9 --timestamps=time,ns +. "${srcdir=.}/strace-tt.test" diff --git a/tests-m32/strace--timestamps-time-s.gen.test b/tests-m32/strace--timestamps-time-s.gen.test new file mode 100755 index 00000000..30a40df1 --- /dev/null +++ b/tests-m32/strace--timestamps-time-s.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps-time-s +strace-t.test --timestamps=time,s); do not edit. +set -- --timestamps=time,s +. "${srcdir=.}/strace-t.test" diff --git a/tests-m32/strace--timestamps-time-us.gen.test b/tests-m32/strace--timestamps-time-us.gen.test new file mode 100755 index 00000000..e4c7a78a --- /dev/null +++ b/tests-m32/strace--timestamps-time-us.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps-time-us +strace-tt.test 6 --timestamps=time,us); do not edit. +set -- 6 --timestamps=time,us +. "${srcdir=.}/strace-tt.test" diff --git a/tests-m32/strace--timestamps-time.gen.test b/tests-m32/strace--timestamps-time.gen.test new file mode 100755 index 00000000..94ad3453 --- /dev/null +++ b/tests-m32/strace--timestamps-time.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps-time +strace-t.test --timestamps=time); do not edit. +set -- --timestamps=time +. "${srcdir=.}/strace-t.test" diff --git a/tests-m32/strace--timestamps-unix-ms.gen.test b/tests-m32/strace--timestamps-unix-ms.gen.test new file mode 100755 index 00000000..51db21ad --- /dev/null +++ b/tests-m32/strace--timestamps-unix-ms.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps-unix-ms +strace-ttt.test 3 --timestamps=unix,ms); do not edit. +set -- 3 --timestamps=unix,ms +. "${srcdir=.}/strace-ttt.test" diff --git a/tests-m32/strace--timestamps-unix-ns.gen.test b/tests-m32/strace--timestamps-unix-ns.gen.test new file mode 100755 index 00000000..adfbdfc4 --- /dev/null +++ b/tests-m32/strace--timestamps-unix-ns.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps-unix-ns +strace-ttt.test 9 --timestamps=unix,ns); do not edit. +set -- 9 --timestamps=unix,ns +. "${srcdir=.}/strace-ttt.test" diff --git a/tests-m32/strace--timestamps-unix-s.gen.test b/tests-m32/strace--timestamps-unix-s.gen.test new file mode 100755 index 00000000..0177f07f --- /dev/null +++ b/tests-m32/strace--timestamps-unix-s.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps-unix-s +strace-ttt.test 0 --timestamps=unix,s); do not edit. +set -- 0 --timestamps=unix,s +. "${srcdir=.}/strace-ttt.test" diff --git a/tests-m32/strace--timestamps-unix-us.gen.test b/tests-m32/strace--timestamps-unix-us.gen.test new file mode 100755 index 00000000..42fdf060 --- /dev/null +++ b/tests-m32/strace--timestamps-unix-us.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps-unix-us +strace-ttt.test 6 --timestamps=unix,us); do not edit. +set -- 6 --timestamps=unix,us +. "${srcdir=.}/strace-ttt.test" diff --git a/tests-m32/strace--timestamps.gen.test b/tests-m32/strace--timestamps.gen.test new file mode 100755 index 00000000..c08f0e5b --- /dev/null +++ b/tests-m32/strace--timestamps.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps +strace-t.test --timestamps); do not edit. +set -- --timestamps +. "${srcdir=.}/strace-t.test" diff --git a/tests-m32/strace-D.expected b/tests-m32/strace-D.expected new file mode 100644 index 00000000..78c9d2dc --- /dev/null +++ b/tests-m32/strace-D.expected @@ -0,0 +1 @@ ++++ exited with 0 +++ diff --git a/tests-m32/strace-D.test b/tests-m32/strace-D.test new file mode 100755 index 00000000..6c6ff2c9 --- /dev/null +++ b/tests-m32/strace-D.test @@ -0,0 +1,72 @@ +#!/bin/sh -efu +# +# Check -D option. +# +# Copyright (c) 2019 Dmitry V. Levin +# Copyright (c) 2019-2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +check_prog sed +run_prog_skip_if_failed \ + kill -0 $$ + +get_parent_pid() +{ + sed '/^PPid:[[:space:]]*/!d;s///' +} + +get_tracer_pid() +{ + sed '/^TracerPid:[[:space:]]*/!d;s///' +} + +set -- ../print_ppid_tracerpid +"$@" > "$LOG" || + framework_skip_ "$* does not work" + +# not traced: PPid > 0, TracerPid == 0 +[ "$(get_parent_pid < "$LOG")" -gt 0 ] && +[ "$(get_tracer_pid < "$LOG")" -eq 0 ] || + dump_log_and_fail_with "$*: unexpected output" + +# !-D: PPid > 0, TracerPid > 0, PPid == TracerPid +run_strace -e q=attach,personality -enone "$@" > "$OUT" +[ "$(get_parent_pid < "$OUT")" -gt 0 ] && +[ "$(get_tracer_pid < "$OUT")" -gt 0 ] && +[ "$(get_parent_pid < "$OUT")" = "$(get_tracer_pid < "$OUT")" ] || { + cat < "$OUT" > "$LOG" + dump_log_and_fail_with "$STRACE $args: unexpected output" +} +match_diff + +test_parent_tracer_pid() +{ + local d parent_pid tracer_pid + d="$1"; shift + + # -D/-DD/-DDD: PPid > 0, TracerPid > 0, PPid != TracerPid + run_strace $d -q -enone "$@" > "$OUT" + + parent_pid="$(get_parent_pid < "$OUT")" && + [ "$parent_pid" -gt 0 ] && + tracer_pid="$(get_tracer_pid < "$OUT")" && + [ "$tracer_pid" -gt 0 ] && + [ "$parent_pid" != "$tracer_pid" ] || { + cat < "$OUT" > "$LOG" + dump_log_and_fail_with "$STRACE $args: unexpected output" + } + + while kill -0 "$tracer_pid" 2> /dev/null; do + $SLEEP_A_BIT + done + + match_diff +} + +test_parent_tracer_pid -D "$@" +test_parent_tracer_pid -DD "$@" +test_parent_tracer_pid -DDD "$@" diff --git a/tests-m32/strace-DD.test b/tests-m32/strace-DD.test new file mode 100755 index 00000000..95164bba --- /dev/null +++ b/tests-m32/strace-DD.test @@ -0,0 +1,73 @@ +#!/bin/sh -efu +# +# Check -DD option. +# +# Copyright (c) 2019-2020 Dmitry V. Levin +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +[ "$STRACE" = "$STRACE_EXE" ] || + skip_ 'Not applicable: $STRACE != $STRACE_EXE' + +run_prog_skip_if_failed \ + kill -0 $$ + +status_file=/proc/self/status +get_tracer_pid() +{ + sed '/^TracerPid:[[:space:]]*/!d;s///' "$@" +} +[ "$(get_tracer_pid "$status_file")" -ge 0 ] || + framework_skip_ "$status_file is not available" + +run_prog ../sleep 0 + +sleep_duration="$(($TIMEOUT_DURATION/2))" + +test_D() +{ + local tracee_pid tracer_pid rc sig=15 + + set -- $STRACE --output="$LOG" --columns=39 \ + --interruptible=anywhere --trace=nanosleep "$@" -- \ + ../sleep "$sleep_duration" + > "$LOG" + + ../setpgrp-exec "$@" & + tracee_pid=$! + + while tracer_pid="$(get_tracer_pid "/proc/$tracee_pid/status")"; do + [ "$tracer_pid" = 0 ] || + break + $SLEEP_A_BIT + done + + $SLEEP_A_BIT + kill -$sig -$tracee_pid + + wait $tracee_pid && rc=0 || rc=$? + [ "$rc" -eq $((128 + $sig)) ] || + dump_log_and_fail_with \ + "$* failed with unexpected exit status $rc" + + while kill -0 "$tracer_pid" 2> /dev/null; do + $SLEEP_A_BIT + done + match_diff "$LOG" "$EXP" +} + +printf 'nanosleep({tv_sec=%s, tv_nsec=0}, ' "$sleep_duration" > "$EXP" +test_D -D + +uid="${UID:-`id -u`}" +cat > "$EXP" <<__EOF__ +nanosleep({tv_sec=$sleep_duration, tv_nsec=0}, NULL) = ? ERESTART_RESTARTBLOCK (Interrupted by signal) +--- SIGTERM {si_signo=SIGTERM, si_code=SI_USER, si_pid=$$, si_uid=$uid} --- ++++ killed by SIGTERM +++ +__EOF__ + +test_D -DD +test_D -DDD diff --git a/tests-m32/strace-DDD.expected b/tests-m32/strace-DDD.expected new file mode 100644 index 00000000..78c9d2dc --- /dev/null +++ b/tests-m32/strace-DDD.expected @@ -0,0 +1 @@ ++++ exited with 0 +++ diff --git a/tests-m32/strace-DDD.test b/tests-m32/strace-DDD.test new file mode 100755 index 00000000..aad40009 --- /dev/null +++ b/tests-m32/strace-DDD.test @@ -0,0 +1,93 @@ +#!/bin/sh -efu +# +# Check -DDD option. +# +# Copyright (c) 2019-2020 Dmitry V. Levin +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +check_prog sed +run_prog_skip_if_failed \ + kill -0 $$ + +status_file=/proc/self/status +[ -f "$status_file" ] || + framework_skip_ "$status_file is not available" + +stat_file=/proc/self/stat +[ -f "$stat_file" ] || + framework_skip_ "$stat_file is not available" + +reapid="$(../get_process_reaper)" && [ "$reapid" -ge 1 ] || + fail_ 'get_process_reaper failed' + +set -- -enone -esignal=none ../tracer_ppid_pgid_sid +run_strace "$@" > "$OUT" +read -r tracer_pid ppid pgid sid < "$OUT" && +[ "$tracer_pid" -gt 1 ] && +[ "$tracer_pid" -ne "$reapid" ] && +[ "$ppid" -gt 1 ] && +[ "$ppid" -ne "$reapid" ] && +[ "$pgid" -ge 0 ] && +[ "$sid" -ge 0 ] || { + cat < "$OUT" > "$LOG" + dump_log_and_fail_with "$STRACE $args: unexpected output" +} +match_diff + +pgid0="$pgid" +sid0="$sid" + +run_strace -D "$@" > "$OUT" +read -r tracer_pid ppid pgid sid < "$OUT" && +[ "$tracer_pid" -gt 1 ] && +[ "$tracer_pid" -ne "$reapid" ] && +[ "$ppid" -eq "$reapid" ] && +[ "$pgid" = "$pgid0" ] && +[ "$sid" = "$sid0" ] || { + cat < "$OUT" > "$LOG" + dump_log_and_fail_with "$STRACE $args: unexpected output" +} +while kill -0 "$tracer_pid" 2> /dev/null; do + $SLEEP_A_BIT +done +match_diff + +run_strace -DD "$@" > "$OUT" +read -r tracer_pid ppid pgid sid < "$OUT" && +[ "$tracer_pid" -gt 1 ] && +[ "$tracer_pid" -ne "$reapid" ] && +[ "$ppid" -eq "$reapid" ] && +[ "$pgid" -gt 1 ] && +[ "$pgid" -ne "$reapid" ] && +[ "$pgid" != "$pgid0" ] && +[ "$pgid" != "$sid" ] && +[ "$sid" = "$sid0" ] || { + cat < "$OUT" > "$LOG" + dump_log_and_fail_with "$STRACE $args: unexpected output" +} +while kill -0 "$tracer_pid" 2> /dev/null; do + $SLEEP_A_BIT +done +match_diff + +run_strace -DDD "$@" > "$OUT" +read -r tracer_pid ppid pgid sid < "$OUT" && +[ "$tracer_pid" -gt 1 ] && +[ "$tracer_pid" -ne "$reapid" ] && +[ "$ppid" -eq "$reapid" ] && +[ "$pgid" -gt 1 ] && +[ "$pgid" -ne "$reapid" ] && +[ "$pgid" != "$pgid0" ] && +[ "$sid" = "$pgid" ] && +[ "$sid" != "$sid0" ] || { + cat < "$OUT" > "$LOG" + dump_log_and_fail_with "$STRACE $args: unexpected output" +} +while kill -0 "$tracer_pid" 2> /dev/null; do + $SLEEP_A_BIT +done +match_diff diff --git a/tests-m32/strace-E-override.test b/tests-m32/strace-E-override.test new file mode 100755 index 00000000..15596177 --- /dev/null +++ b/tests-m32/strace-E-override.test @@ -0,0 +1,14 @@ +#!/bin/sh +# +# Check that --env option does not affect strace's own environment. +# +# Copyright (c) 2019-2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +check_prog true +run_prog true +run_strace --quiet=all --trace=none --signal=none --env=PATH=/ $args diff --git a/tests-m32/strace-E-unset.expected b/tests-m32/strace-E-unset.expected new file mode 100644 index 00000000..6ce3620f --- /dev/null +++ b/tests-m32/strace-E-unset.expected @@ -0,0 +1,5 @@ +execve\("\.\./sleep", \["\.\./sleep", "0"\], \[.*"option_E_var=OPTION_E_VAL".*\]\) = 0 +execve\("\.\./sleep", \["\.\./sleep", "0"\], \[.*"option_E_unsets=OPTION_E_UNSETS".*\]\) = 0 +execve\("\.\./sleep", \["\.\./sleep", "0"\], \[.*"option_E_mod=OPTION_E_NEW".*\]\) = 0 +execve\("\.\./sleep", \["\.\./sleep", "0"\], \[.*"option_E_mods=OPTION_E_MODS".*\]\) = 0 +!execve\("\.\./sleep", \["\.\./sleep", "0"\], \[.*"option_E_unset=.*\]\) = 0 diff --git a/tests-m32/strace-E-unset.test b/tests-m32/strace-E-unset.test new file mode 100755 index 00000000..c7583c1f --- /dev/null +++ b/tests-m32/strace-E-unset.test @@ -0,0 +1,32 @@ +#!/bin/sh +# +# Check modify/unset behaviour of -E/--env option. +# +# Copyright (c) 2016-2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +export option_E_var=OPTION_E_VAL +export option_E_mod=OPTION_E_MOD +export option_E_mods=OPTION_E_MODS +export option_E_unset=OPTION_E_UNSET +export option_E_unsets=OPTION_E_UNSETS + +run_prog ../sleep 0 +run_strace -qqq -e signal=none -e trace=execve -v \ + -E option_E_mod=OPTION_E_NEW \ + -E option_E_unset \ + -E option_E_missing \ + $args +match_grep + +run_prog ../sleep 0 +run_strace --quiet=all --signal=none --trace=execve --no-abbrev \ + --env=option_E_mod=OPTION_E_NEW \ + --env=option_E_unset \ + --env=option_E_missing \ + $args +match_grep diff --git a/tests-m32/strace-E.test b/tests-m32/strace-E.test index 82b95df5..b0bebe1e 100755 --- a/tests-m32/strace-E.test +++ b/tests-m32/strace-E.test @@ -2,7 +2,7 @@ # # Check -E option. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -12,3 +12,7 @@ run_prog ../sleep 0 > /dev/null run_strace -E option_E_var=OPTION_E_VAL -v $args match_grep + +run_prog ../sleep 0 > /dev/null +run_strace --env=option_E_var=OPTION_E_VAL --no-abbrev $args +match_grep diff --git a/tests-m32/strace-S.test b/tests-m32/strace-S.test index 4b5be6d9..fcea4185 100755 --- a/tests-m32/strace-S.test +++ b/tests-m32/strace-S.test @@ -2,7 +2,7 @@ # # Check -S option. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -18,7 +18,7 @@ test_c() sortopts="$1"; shift sedexpr="$1"; shift - run_strace -c -w -S "$sortby" ../readv > /dev/null + run_strace -c -w $sortby ../readv > /dev/null sed -r -n -e "$sedexpr" < "$LOG" > "$OUT" [ -s "$OUT" ] || @@ -31,5 +31,31 @@ test_c() } c='[[:space:]]+([^[:space:]]+)' -test_c calls '-n -r' '/^[[:space:]]+[0-9]/ s/^'"$c$c$c$c"'[[:space:]].*/\4/p' -test_c name '' '/^[[:space:]]+[0-9]/ s/^'"$c$c$c$c"'([[:space:]]+[0-9]+)?'"$c"'$/\6/p' +for s in '' '-S time' --summary-sort-by=time_total '-S total_time'; do + test_c "$s" '-n -r' \ + 's/^[[:space:]]+([0-9]+)[.,]([0-9]+)[[:space:]].*/\1\t\2/p' +done +for s in '-S avg_time' --summary-sort-by=time_avg; do + test_c "$s" '-n -r' \ + '/^[[:space:]]+[0-9]/ s/^'"$c$c$c$c"'[[:space:]].*/\3/p' +done +for s in '-S calls' --summary-sort-by=count; do + test_c "$s" '-n -r' \ + '/^[[:space:]]+[0-9]/ s/^'"$c$c$c$c"'[[:space:]].*/\4/p' +done +for s in '-S name' --summary-sort-by=syscall '-S syscall_name'; do + test_c "$s" '' \ + '/^[[:space:]]+[0-9]/ s/^'"$c$c$c$c"'([[:space:]]+[0-9]+)?'"$c"'$/\6/p' +done +for s in '-S error' --summary-sort-by=errors; do + test_c "$s" '-n -r' \ + '/^[[:space:]]+[0-9]/ s/^'"$c$c$c$c"'([[:space:]]+([0-9]+))?'"$c"'$/\6/p' +done +for s in '--summary-columns=time,time-max,name -S max_time' '-U time-percent,max_time,syscall_name --summary-sort-by=longest'; do + test_c "$s" '-n -r' \ + '/^[[:space:]]+[0-9]/ s/^'"$c$c"'[[:space:]].*/\2/p' +done +for s in '--summary-columns=time,time_min,name -S min-time' '-U time_percent,min_time,syscall-name --summary-sort-by=shortest'; do + test_c "$s" '-n -r' \ + '/^[[:space:]]+[0-9]/ s/^'"$c$c"'[[:space:]].*/\2/p' +done diff --git a/tests-m32/strace-T.test b/tests-m32/strace-T.test index 7c3136b7..adca3e87 100755 --- a/tests-m32/strace-T.test +++ b/tests-m32/strace-T.test @@ -2,13 +2,15 @@ # # Check -T option. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" +T_opt="${1:--T}" + run_prog ../sleep 0 -run_strace -a24 -T -enanosleep ../sleep 1 +run_strace -a24 "${T_opt}" -enanosleep ../sleep 1 match_grep diff --git a/tests-m32/strace-V.test b/tests-m32/strace-V.test index a0274c28..30f10808 100755 --- a/tests-m32/strace-V.test +++ b/tests-m32/strace-V.test @@ -6,51 +6,30 @@ run_prog_skip_if_failed date +%Y > /dev/null year="$(date +%Y)" -run_strace -V > "$LOG" +run_strace -V > "$OUT" +run_strace --version > "$LOG" +match_diff "$LOG" "$OUT" '-V and --version output mismatch' -getstr() -{ - sed -r -n 's/#define[[:space:]]*'"$1"'[[:space:]]*"([^"]*)".*/\1/p' \ - ../../config.h -} - -# getoption OPTION YES_STRING [NO_STRING] -# -# Returns YES_STRING in case OPTION is enabled (present in config.h and has -# a non-zero numeric value). Otherwise, NO_STRING (or empty string, if not -# specified) is returned. -getoption() -{ - local opt - opt=$(sed -r -n 's/#define[[:space:]]*'"$1"'[[:space:]]*([0-9]+)$/\1/p' \ - ../../config.h) - if [ -n "$opt" -a "$opt" -ne 0 ]; then - printf "%s" "$2" - else - printf "%s" "${3-}" - fi -} - -config_year=$(getstr COPYRIGHT_YEAR) +config_year=$(get_config_str COPYRIGHT_YEAR) [ "$year" -ge "$config_year" ] && [ "$config_year" -ge 2017 ] || { echo >&2 "The year derived from config.h (${config_year}) does not pass sanity checks." exit 1 } -option_unwind=$(getoption ENABLE_STACKTRACE \ - " stack-trace=$(getstr USE_UNWINDER)") -option_demangle=$(getoption USE_DEMANGLE " stack-demangle") +option_unwind=$(get_config_option ENABLE_STACKTRACE \ + " stack-trace=$(get_config_str USE_UNWINDER)") +option_demangle=$(get_config_option USE_DEMANGLE " stack-demangle") option_m32= option_mx32= case "$STRACE_NATIVE_ARCH" in x86_64) - option_m32=$(getoption HAVE_M32_MPERS ' m32-mpers' ' no-m32-mpers') - option_mx32=$(getoption HAVE_MX32_MPERS ' mx32-mpers' ' no-mx32-mpers') + option_m32=$(get_config_option HAVE_M32_MPERS ' m32-mpers' ' no-m32-mpers') + option_mx32=$(get_config_option HAVE_MX32_MPERS ' mx32-mpers' ' no-mx32-mpers') ;; -aarch64|powerpc64|riscv|s390x|sparc64|tile|x32) - option_m32=$(getoption HAVE_M32_MPERS ' m32-mpers' ' no-m32-mpers') +aarch64|powerpc64|s390x|sparc64|tile|x32) + option_m32=$(get_config_option HAVE_M32_MPERS ' m32-mpers' ' no-m32-mpers') ;; esac @@ -58,12 +37,12 @@ features="${option_unwind}${option_demangle}${option_m32}${option_mx32}" [ -n "$features" ] || features=" (none)" cat > "$EXP" << __EOF__ -$(getstr PACKAGE_NAME) -- version $(getstr PACKAGE_VERSION) -Copyright (c) 1991-${config_year} The strace developers <$(getstr PACKAGE_URL)>. +$(get_config_str PACKAGE_NAME) -- version $(get_config_str PACKAGE_VERSION) +Copyright (c) 1991-${config_year} The strace developers <$(get_config_str PACKAGE_URL)>. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Optional features enabled:${features} __EOF__ -match_diff "$LOG" "$EXP" +match_diff "$OUT" "$EXP" diff --git a/tests-m32/strace-ff.test b/tests-m32/strace-ff.test index 429549f2..9011bdd8 100755 --- a/tests-m32/strace-ff.test +++ b/tests-m32/strace-ff.test @@ -1,17 +1,21 @@ -#!/bin/sh +#!/bin/sh -efu # # Check -ff option. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" +ff_opt="${*:--ff}" + run_prog_skip_if_failed \ kill -0 $$ +run_prog ../sleep 0 + ../set_ptracer_any ../sleep 3 > "$OUT" & tracee_pid=$! @@ -20,12 +24,13 @@ while ! [ -s "$OUT" ]; do fail_ 'set_ptracer_any sleep failed' done -run_strace -a14 -eexit_group -ff -p $tracee_pid +run_strace --quiet=personality -a14 -eexit_group ${ff_opt} -p $tracee_pid # check that output matches match_diff "$LOG.$tracee_pid" # check that no other output files have been created +set +f set -- "$LOG".* [ "$LOG.$tracee_pid" = "$*" ] || fail_ "too many output files: $*" diff --git a/tests-m32/strace-k-p.expected b/tests-m32/strace-k-p.expected new file mode 100644 index 00000000..e40c339e --- /dev/null +++ b/tests-m32/strace-k-p.expected @@ -0,0 +1,2 @@ +^chdir .*(__kernel_vsyscaln )?(__)?chdir f3 f2 f1 f0 main +^SIGURG .*(__kernel_vsyscaln )?(__)?kill f3 f2 f1 f0 main diff --git a/tests-m32/strace-k-p.test b/tests-m32/strace-k-p.test new file mode 100755 index 00000000..fac484f3 --- /dev/null +++ b/tests-m32/strace-k-p.test @@ -0,0 +1,13 @@ +#!/bin/sh +# +# Check strace -k for attached tracees. +# +# Copyright (c) 2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +ATTACH_MODE=1 +test_prog=../stack-fcall-attach + +. "${srcdir=.}"/strace-k.test diff --git a/tests-m32/strace-k.test b/tests-m32/strace-k.test index 7a323431..51e8cb2a 100755 --- a/tests-m32/strace-k.test +++ b/tests-m32/strace-k.test @@ -4,23 +4,49 @@ # # Copyright (c) 2014 Masatake YAMATO # Copyright (c) 2014-2016 Dmitry V. Levin -# Copyright (c) 2014-2019 The strace developers. +# Copyright (c) 2014-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" +: "${ATTACH_MODE=0}" + # strace -k is implemented using /proc/$pid/maps [ -f /proc/self/maps ] || framework_skip_ '/proc/self/maps is not available' check_prog grep +check_prog readlink check_prog sed check_prog tr +path_to_sed="$(command -v sed)" +if [ -x "$path_to_sed" ] && + path_to_sed="$(readlink -ev -- "$path_to_sed")"; then + "$path_to_sed" -n 's/^[^/]\+[[:space:]]\(\/.*\)$/\1/p' /proc/self/maps | + grep -F -x -e "$path_to_sed" > /dev/null || { + cat >&2 /proc/self/maps + framework_skip_ '/proc/self/maps is invalid' + } +fi + run_prog "${test_prog=../stack-fcall}" -run_strace -e chdir -k $args + +if [ "x${ATTACH_MODE}" = "x1" ]; then + ../set_ptracer_any "${test_prog}" >> "$EXP" & + tracee_pid=$! + + while ! [ -s "$EXP" ]; do + kill -0 "$tracee_pid" 2> /dev/null || + fail_ 'set_ptracer_any failed' + done + + run_strace --trace=chdir --stack-trace --attach="$tracee_pid" +else + run_strace -e chdir -k $args +fi expected="$srcdir/$NAME.expected" awk ' diff --git a/tests-m32/strace-n.c b/tests-m32/strace-n.c new file mode 100644 index 00000000..452bd4ca --- /dev/null +++ b/tests-m32/strace-n.c @@ -0,0 +1,40 @@ +/* + * Test strace's -n option. + * + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#include +#include +#include + +#define SC_listen 4 + +int +main(void) +{ + int rc; + +#if defined __NR_socketcall + if (syscall(__NR_socketcall, 0L, 0L, 0L, 0L, 0L) < 0 + && EINVAL == errno) + { + const long args[] = { 0, 0 }; + rc = syscall(__NR_socketcall, SC_listen, args); + printf("[%4u] listen(0, 0) = %s\n", __NR_socketcall, sprintrc(rc)); + } +#endif + +#if defined __NR_listen + rc = syscall(__NR_listen, 0, 0); + printf("[%4u] listen(0, 0) = %s\n", __NR_listen, sprintrc(rc)); +#endif + + return 0; +} diff --git a/tests-m32/strace-n.gen.test b/tests-m32/strace-n.gen.test new file mode 100755 index 00000000..023380f3 --- /dev/null +++ b/tests-m32/strace-n.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace-n -e trace=listen -n -qq -a 12); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -e trace=listen -n -qq -a 12 diff --git a/tests-m32/strace-r.test b/tests-m32/strace-r.test index 936f4a15..82997375 100755 --- a/tests-m32/strace-r.test +++ b/tests-m32/strace-r.test @@ -2,13 +2,15 @@ # # Check -r option. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" +r_opt="${1:--r}" + run_prog ../sleep 0 -run_strace -r -eexecve ../sleep 1 +run_strace "${r_opt}" -eexecve ../sleep 1 match_grep diff --git a/tests-m32/strace-t.test b/tests-m32/strace-t.test index a06408db..4d79a2d9 100755 --- a/tests-m32/strace-t.test +++ b/tests-m32/strace-t.test @@ -2,19 +2,21 @@ # # Check -t option. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" +opts="${*:--t}" + run_prog_skip_if_failed date +%s > "$LOG" run_prog_skip_if_failed date +%T --date "@$(cat "$LOG")" > /dev/null run_prog ../sleep 0 s0="$(date +%s)" -run_strace -t -eexecve $args +run_strace $opts -eexecve $args s1="$(date +%s)" s="$s0" diff --git a/tests-m32/strace-tt.test b/tests-m32/strace-tt.test index 4d1331b1..17d87d67 100755 --- a/tests-m32/strace-tt.test +++ b/tests-m32/strace-tt.test @@ -2,19 +2,23 @@ # # Check -tt option. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" +precision="${1:-6}" +[ x0 = "x$#" ] || shift +opts="${*:--tt}" + run_prog_skip_if_failed date +%s > "$LOG" run_prog_skip_if_failed date +%T --date "@$(cat "$LOG")" > /dev/null run_prog ../sleep 0 s0="$(date +%s)" -run_strace -tt -eexecve $args +run_strace $opts -eexecve $args s1="$(date +%s)" s="$s0" @@ -26,7 +30,7 @@ while [ "$s" -le "$s1" ]; do done cat > "$EXP" << __EOF__ -($t_reg)\\.[[:digit:]]{6} execve\\("\\.\\./sleep", \\["\\.\\./sleep", "0"\\], 0x[[:xdigit:]]* /\\* [[:digit:]]* vars \\*/\\) = 0 +($t_reg)\\.[[:digit:]]{${precision}} execve\\("\\.\\./sleep", \\["\\.\\./sleep", "0"\\], 0x[[:xdigit:]]* /\\* [[:digit:]]* vars \\*/\\) = 0 __EOF__ match_grep "$LOG" "$EXP" diff --git a/tests-m32/strace-ttt.test b/tests-m32/strace-ttt.test index 089ff064..2578d874 100755 --- a/tests-m32/strace-ttt.test +++ b/tests-m32/strace-ttt.test @@ -2,18 +2,22 @@ # # Check -ttt option. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" +precision="${1:-6}" +[ x0 = "x$#" ] || shift +opts="${*:--ttt}" + run_prog_skip_if_failed date +%s > /dev/null run_prog ../sleep 0 s0="$(date +%s)" -run_strace -ttt -eexecve $args +run_strace $opts -eexecve $args s1="$(date +%s)" s="$s0" @@ -23,8 +27,14 @@ while [ "$s" -le "$s1" ]; do s=$(($s + 1)) done +if [ x0 = "x${precision}" ]; then + subsec_re="" +else + subsec_re="\\.[[:digit:]]{${precision}}" +fi + cat > "$EXP" << __EOF__ -($t_reg)\\.[[:digit:]]{6} execve\\("\\.\\./sleep", \\["\\.\\./sleep", "0"\\], 0x[[:xdigit:]]* /\\* [[:digit:]]+ vars \\*/\\) = 0 +($t_reg)${subsec_re} execve\\("\\.\\./sleep", \\["\\.\\./sleep", "0"\\], 0x[[:xdigit:]]* /\\* [[:digit:]]+ vars \\*/\\) = 0 __EOF__ match_grep "$LOG" "$EXP" diff --git a/tests-m32/strace-x.c b/tests-m32/strace-x.c new file mode 100644 index 00000000..5d537e97 --- /dev/null +++ b/tests-m32/strace-x.c @@ -0,0 +1,82 @@ +/* + * Test strace's -x option. + * + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#include +#include + +#ifndef STRACE_XX +# define STRACE_XX 0 +#endif + +#if STRACE_XX +# define XOUT(x_, xx_) xx_ +#else +# define XOUT(x_, xx_) x_ +#endif + +int +main(void) +{ + static const struct { + const char *path; + const char *out; + } test_vecs[] = { + { "test", XOUT("test", "\\x74\\x65\\x73\\x74") }, + { "\t\n\v\f\r hi~", XOUT("\\t\\n\\v\\f\\r hi~", + "\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\x68\\x69\\x7e") }, + { "\t\n\v\f\r\16 hi~", XOUT( + "\\x09\\x0a\\x0b\\x0c\\x0d\\x0e\\x20\\x68\\x69\\x7e", + "\\x09\\x0a\\x0b\\x0c\\x0d\\x0e\\x20\\x68\\x69\\x7e") }, + { "\10\t\n\v\f\r hi~", XOUT( + "\\x08\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\x68\\x69\\x7e", + "\\x08\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\x68\\x69\\x7e") }, + { "\t\n\v\f\r\37 hi~", XOUT( + "\\x09\\x0a\\x0b\\x0c\\x0d\\x1f\\x20\\x68\\x69\\x7e", + "\\x09\\x0a\\x0b\\x0c\\x0d\\x1f\\x20\\x68\\x69\\x7e") }, + { "\t\n\v\f\r hi~\177", XOUT( + "\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\x68\\x69\\x7e\\x7f", + "\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\x68\\x69\\x7e\\x7f") }, + { "\t\n\v\f\r hi~\222", XOUT( + "\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\x68\\x69\\x7e\\x92", + "\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\x68\\x69\\x7e\\x92") }, + { "\t\n\v\f\r hi~\377", XOUT( + "\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\x68\\x69\\x7e\\xff", + "\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\x68\\x69\\x7e\\xff") }, + }; + static char path[] = " "; + + const char *rc_str; + + for (size_t i = 0; i < ARRAY_SIZE(test_vecs); i++) { + rc_str = sprintrc(chdir(test_vecs[i].path)); + printf("chdir(\"%s\") = %s\n", test_vecs[i].out, rc_str); + } + + for (unsigned char c = 1; c < 255; c++) { + path[1] = c; + rc_str = sprintrc(chdir(path)); + + printf("chdir("); +#if STRACE_XX + print_quoted_hex(path, sizeof(path) - 1); +#else + if (((c < ' ') || (c >= 0x7f)) && (c != '\t') && (c != '\n') && + (c != '\v') && (c != '\f') && (c != '\r')) + print_quoted_hex(path, sizeof(path) - 1); + else + print_quoted_string(path); +#endif + printf(") = %s\n", rc_str); + } + + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests-m32/strace-x.gen.test b/tests-m32/strace-x.gen.test new file mode 100755 index 00000000..231f34c6 --- /dev/null +++ b/tests-m32/strace-x.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace-x -e trace=chdir -x -a 12); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -e trace=chdir -x -a 12 diff --git a/tests-m32/strace-xx.c b/tests-m32/strace-xx.c new file mode 100644 index 00000000..af37c30c --- /dev/null +++ b/tests-m32/strace-xx.c @@ -0,0 +1,2 @@ +#define STRACE_XX 1 +#include "strace-x.c" diff --git a/tests-m32/strace-xx.gen.test b/tests-m32/strace-xx.gen.test new file mode 100755 index 00000000..3deb88cb --- /dev/null +++ b/tests-m32/strace-xx.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace-xx -e trace=chdir -xx -a 18); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -e trace=chdir -xx -a 18 diff --git a/tests-m32/swap.c b/tests-m32/swap.c index a854182e..4b032207 100644 --- a/tests-m32/swap.c +++ b/tests-m32/swap.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_swapon && defined __NR_swapoff diff --git a/tests-m32/sxetmask.c b/tests-m32/sxetmask.c index 3ad2368e..3b66f5a6 100644 --- a/tests-m32/sxetmask.c +++ b/tests-m32/sxetmask.c @@ -2,13 +2,14 @@ * Check decoding of sgetmask and ssetmask syscalls. * * Copyright (c) 2017-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_sgetmask && defined __NR_ssetmask diff --git a/tests-m32/symlink.c b/tests-m32/symlink.c index 8283a8e2..c47ad842 100644 --- a/tests-m32/symlink.c +++ b/tests-m32/symlink.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_symlink diff --git a/tests-m32/symlinkat.c b/tests-m32/symlinkat.c index be36b941..d2d1729b 100644 --- a/tests-m32/symlinkat.c +++ b/tests-m32/symlinkat.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_symlinkat diff --git a/tests-m32/sync.c b/tests-m32/sync.c index e0b654d0..db7924be 100644 --- a/tests-m32/sync.c +++ b/tests-m32/sync.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sync diff --git a/tests-m32/sync_file_range.c b/tests-m32/sync_file_range.c index 9eba7815..0f6d1e3f 100644 --- a/tests-m32/sync_file_range.c +++ b/tests-m32/sync_file_range.c @@ -2,6 +2,7 @@ * Check decoding of sync_file_range syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,7 +10,7 @@ #include "tests.h" #include -#include +#include "scno.h" #if defined HAVE_SYNC_FILE_RANGE && defined __NR_sync_file_range diff --git a/tests-m32/sync_file_range2.c b/tests-m32/sync_file_range2.c index 03af1005..d914b289 100644 --- a/tests-m32/sync_file_range2.c +++ b/tests-m32/sync_file_range2.c @@ -2,6 +2,7 @@ * Check decoding of sync_file_range2 syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,7 +10,7 @@ #include "tests.h" #include -#include +#include "scno.h" #if defined HAVE_SYNC_FILE_RANGE && defined __NR_sync_file_range2 diff --git a/tests-m32/syntax.sh b/tests-m32/syntax.sh index 2e30e6a1..da43d656 100644 --- a/tests-m32/syntax.sh +++ b/tests-m32/syntax.sh @@ -3,57 +3,76 @@ # Define syntax testing primitives. # # Copyright (c) 2016 Dmitry V. Levin -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" +log_sfx() +{ + printf "%.128s" "$*" | tr -c '0-9A-Za-z-=,' '_' +} + check_exit_status_and_stderr() { - $STRACE "$@" 2> "$LOG" && - dump_log_and_fail_with \ - "strace $* failed to handle the error properly" - match_diff "$LOG" "$EXP" || - dump_log_and_fail_with \ - "strace $* failed to print expected diagnostics" + local sfx + sfx="$1"; shift + $STRACE "$@" 2> "$LOG.$sfx" && { + cat "$LOG.$sfx" >&2 + fail_ "strace $* failed to handle the error properly" + } + match_diff "$LOG.$sfx" "$EXP.$sfx" \ + "strace $* failed to print expected diagnostics" } check_exit_status_and_stderr_using_grep() { - $STRACE "$@" 2> "$LOG" && - dump_log_and_fail_with \ - "strace $* failed to handle the error properly" - match_grep "$LOG" "$EXP" || - dump_log_and_fail_with \ - "strace $* failed to print expected diagnostics" + local sfx + sfx="$1"; shift + $STRACE "$@" 2> "$LOG.$sfx" && { + cat "$LOG.$sfx" >&2 + fail_ "strace $* failed to handle the error properly" + } + match_grep "$LOG.$sfx" "$EXP.$sfx" \ + "strace $* failed to print expected diagnostics" } check_e() { - local pattern="$1"; shift - cat > "$EXP" << __EOF__ + local pattern sfx + pattern="$1"; shift + sfx="$(log_sfx "$*")" + cat > "$EXP.$sfx" << __EOF__ $STRACE_EXE: $pattern __EOF__ - check_exit_status_and_stderr "$@" + check_exit_status_and_stderr "$sfx" "$@" } check_e_using_grep() { - local pattern="$1"; shift - cat > "$EXP" << __EOF__ + local pattern sfx + pattern="$1"; shift + sfx="$(log_sfx "$*")" + cat > "$EXP.$sfx" << __EOF__ $STRACE_EXE: $pattern __EOF__ - check_exit_status_and_stderr_using_grep "$@" + check_exit_status_and_stderr_using_grep "$sfx" "$@" } check_h() { - local pattern="$1"; shift - cat > "$EXP" << __EOF__ -$STRACE_EXE: $pattern -Try '$STRACE_EXE -h' for more information. -__EOF__ - check_exit_status_and_stderr "$@" + local patterns sfx + patterns="$1"; shift + sfx="$(log_sfx "$*")" + { + local pattern + printf '%s\n' "$patterns" | + while read -r pattern; do + printf '%s: %s\n' "$STRACE_EXE" "$pattern" + done + printf "Try '%s -h' for more information.\\n" "$STRACE_EXE" + } > "$EXP.$sfx" + check_exit_status_and_stderr "$sfx" "$@" } diff --git a/tests-m32/syslog-success.c b/tests-m32/syslog-success.c new file mode 100644 index 00000000..4374de6f --- /dev/null +++ b/tests-m32/syslog-success.c @@ -0,0 +1,2 @@ +#define RETVAL_INJECTED 1 +#include "syslog.c" diff --git a/tests-m32/syslog-success.test b/tests-m32/syslog-success.test new file mode 100755 index 00000000..adc916e4 --- /dev/null +++ b/tests-m32/syslog-success.test @@ -0,0 +1,11 @@ +#!/bin/sh -efu + +. "${srcdir=.}/scno_tampering.sh" + +run_prog ../syslog-success 0 +for i in 0 23 42; do + run_strace -a35 -e trace=syslog -e inject=syslog:retval="${i}" \ + ../syslog-success "${i}" > "$EXP.$i" + mv "$LOG" "$LOG.$i" + match_diff "$LOG.$i" "$EXP.$i" +done diff --git a/tests-m32/syslog.c b/tests-m32/syslog.c index 363fdf96..a9c3c813 100644 --- a/tests-m32/syslog.c +++ b/tests-m32/syslog.c @@ -1,27 +1,139 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_syslog # include # include -# define SYSLOG_ACTION_READ 2 +# ifdef RETVAL_INJECTED +# define RET_SFX " (INJECTED)" +# else +# define RET_SFX "" +# endif + +bool +valid_cmd(int cmd) +{ + return cmd >= 0 && cmd <= 10; +} + +void +printstr(const char *s, int cmd, long size) +{ + if (size < 0 || !valid_cmd(cmd)) + printf("%p", s); + else if (size == 0) + printf("\"\""); + else if (size <= DEFAULT_STRLEN) + print_quoted_memory(s, size); + else { + print_quoted_memory(s, DEFAULT_STRLEN); + printf("..."); + } +} int main(void) { - const long addr = (long) 0xfacefeeddeadbeefULL; - int rc = syscall(__NR_syslog, SYSLOG_ACTION_READ, addr, -1); - printf("syslog(SYSLOG_ACTION_READ, %#lx, -1) = %d %s (%m)\n", - addr, rc, errno2name()); + static const struct cmd_str { + unsigned int cmd; + const char *str; + } no_args[] = { + { 0, "0 /* SYSLOG_ACTION_CLOSE */" }, + { 1, "1 /* SYSLOG_ACTION_OPEN */" }, + { 5, "5 /* SYSLOG_ACTION_CLEAR */" }, + { 6, "6 /* SYSLOG_ACTION_CONSOLE_OFF */" }, + { 7, "7 /* SYSLOG_ACTION_CONSOLE_ON */" }, + { 9, "9 /* SYSLOG_ACTION_SIZE_UNREAD */" }, + { 10, "10 /* SYSLOG_ACTION_SIZE_BUFFER */" }, + }; + static const struct cmd_str two_args[] = { + { 0xfeedbeef, "-17973521 /* SYSLOG_ACTION_??? */" }, + { -1U, "-1 /* SYSLOG_ACTION_??? */" }, + { 2, "2 /* SYSLOG_ACTION_READ */" }, + { 3, "3 /* SYSLOG_ACTION_READ_ALL */" }, + { 4, "4 /* SYSLOG_ACTION_READ_CLEAR */" }, + { 11, "11 /* SYSLOG_ACTION_??? */" }, + { (1U << 31) - 1, "2147483647 /* SYSLOG_ACTION_??? */" }, + }; + static const struct cmd_str levels[] = { + { 0xfeedbeef, "-17973521 /* LOGLEVEL_??? */" }, + { -1U, "-1 /* LOGLEVEL_??? */" }, + { 0, "0 /* LOGLEVEL_EMERG */" }, + { 7, "7 /* LOGLEVEL_DEBUG */" }, + { 8, "8 /* LOGLEVEL_DEBUG+1 */" }, + { 9, "9 /* LOGLEVEL_??? */" }, + { (1U << 31) - 1, "2147483647 /* LOGLEVEL_??? */" }, + }; + static const kernel_ulong_t high = + (kernel_ulong_t) 0xbadc0ded00000000ULL; + static const size_t buf_size = 64; + + const kernel_ulong_t addr = (kernel_ulong_t) 0xfacefeeddeadbeefULL; + int rc; + char *buf = tail_alloc(buf_size); + + fill_memory(buf, buf_size); + + for (size_t i = 0; i < ARRAY_SIZE(no_args); i++) { + rc = syscall(__NR_syslog, high | no_args[i].cmd, addr, -1); + printf("syslog(%s) = %s" RET_SFX "\n", + no_args[i].str, sprintrc(rc)); + } + + for (size_t i = 0; i < ARRAY_SIZE(two_args); i++) { + rc = syscall(__NR_syslog, high | two_args[i].cmd, NULL, -1); + printf("syslog(%s, NULL, -1) = %s" RET_SFX "\n", + two_args[i].str, sprintrc(rc)); + +# ifdef RETVAL_INJECTED + /* Avoid valid commands with a bogus address */ + if (!valid_cmd(two_args[i].cmd)) +# endif + { + rc = syscall(__NR_syslog, high | two_args[i].cmd, addr, + -1); + printf("syslog(%s, %#llx, -1) = %s" RET_SFX "\n", + two_args[i].str, (unsigned long long) addr, + sprintrc(rc)); + + rc = syscall(__NR_syslog, two_args[i].cmd, addr, 0); + + printf("syslog(%s, %s, 0) = %s" RET_SFX "\n", + two_args[i].str, + !rc && valid_cmd(two_args[i].cmd) + && (sizeof(kernel_ulong_t) == sizeof(void *)) + ? "\"\"" + : (sizeof(addr) == 8) + ? "0xfacefeeddeadbeef" : "0xdeadbeef", + sprintrc(rc)); + } + + rc = syscall(__NR_syslog, two_args[i].cmd, buf, buf_size); + const char *errstr = sprintrc(rc); + + printf("syslog(%s, ", two_args[i].str); + if (rc >= 0 && valid_cmd(two_args[i].cmd)) + printstr(buf, two_args[i].cmd, rc); + else + printf("%p", buf); + printf(", %zu) = %s" RET_SFX "\n", buf_size, errstr); + } + + for (size_t i = 0; i < ARRAY_SIZE(levels); i++) { + rc = syscall(__NR_syslog, high | 8, addr, levels[i].cmd); + printf("syslog(8 /* SYSLOG_ACTION_CONSOLE_LEVEL */, %#llx, %s)" + " = %s" RET_SFX "\n", + (unsigned long long) addr, levels[i].str, sprintrc(rc)); + } puts("+++ exited with 0 +++"); return 0; diff --git a/tests-m32/syslog.gen.test b/tests-m32/syslog.gen.test index 5707a3e2..673b0180 100755 --- a/tests-m32/syslog.gen.test +++ b/tests-m32/syslog.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (syslog -a36 ); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (syslog -a35 ); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a36 +run_strace_match_diff -a35 diff --git a/tests-m32/tee.c b/tests-m32/tee.c index 2137c351..d620bb8f 100644 --- a/tests-m32/tee.c +++ b/tests-m32/tee.c @@ -2,13 +2,14 @@ * This file is part of tee strace test. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_tee diff --git a/tests-m32/termsig.test b/tests-m32/termsig.test index d41ddf0a..2bda35fc 100755 --- a/tests-m32/termsig.test +++ b/tests-m32/termsig.test @@ -2,7 +2,7 @@ # # Check termination signal forwarding. # -# Copyright (c) 2017-2018 The strace developers. +# Copyright (c) 2017-2019 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -11,10 +11,18 @@ run_expect_termsig="../run_expect_termsig 15" unblock_reset_raise="../unblock_reset_raise 15" +block_reset_run="../block_reset_run 15" +orig_STRACE="$STRACE" +run_prog $run_expect_termsig $block_reset_run $unblock_reset_raise run_prog $run_expect_termsig $unblock_reset_raise -STRACE="$run_expect_termsig $STRACE" +STRACE="$run_expect_termsig $orig_STRACE" +for i in 1 2 3 4; do + run_strace -I$i -enone -esignal=none $unblock_reset_raise +done + +STRACE="$run_expect_termsig $block_reset_run $orig_STRACE" for i in 1 2 3 4; do run_strace -I$i -enone -esignal=none $unblock_reset_raise done diff --git a/tests-m32/test_nlattr.h b/tests-m32/test_nlattr.h index 8b8c66b8..5a97382f 100644 --- a/tests-m32/test_nlattr.h +++ b/tests-m32/test_nlattr.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -15,6 +15,10 @@ #include "netlink.h" #include +#ifndef PRINT_SOCK +# define PRINT_SOCK 0 +#endif + static void init_nlattr(struct nlattr *const nla, const uint16_t nla_len, @@ -37,6 +41,29 @@ print_nlattr(const unsigned int nla_len, const char *const nla_type, bool add_da add_data ? "[" : "", nla_len, nla_type); } +static void +print_sockfd(int sockfd, const char *pfx, const char *sfx) +{ +#if PRINT_SOCK + static int fd = -1; + static unsigned long inode; + + if (sockfd < 0) { + printf("%s%d%s", pfx, sockfd, sfx); + return; + } + + if (sockfd != fd) { + fd = sockfd; + inode = inode_of_sockfd(fd); + } + + printf("%s%d%s", pfx, sockfd, inode, sfx); +#else + printf("%s%d%s", pfx, sockfd, sfx); +#endif +} + #define TEST_NLATTR_EX_(fd_, nlh0_, hdrlen_, \ init_msg_, print_msg_, \ nla_type_, nla_type_str_, \ @@ -60,7 +87,7 @@ print_nlattr(const unsigned int nla_len, const char *const nla_type, bool add_da sprintrc(sendto((fd_), nlh, msg_len, \ MSG_DONTWAIT, NULL, 0)); \ \ - printf("sendto(%d, {", (fd_)); \ + print_sockfd((fd_), "sendto(", ", {"); \ (print_msg_)(msg_len); \ print_nlattr(nla_len, (nla_type_str_), \ (nla_total_len_) > (nla_data_len_)); \ @@ -96,11 +123,9 @@ print_nlattr(const unsigned int nla_len, const char *const nla_type, bool add_da #define TEST_NLATTR_OBJECT_EX_(fd_, nlh0_, hdrlen_, \ init_msg_, print_msg_, \ nla_type_, nla_type_str_, \ - pattern_, obj_, fallback_func, ...) \ + pattern_, obj_, minsz_, fallback_func, ...) \ do { \ - const unsigned int plen = \ - sizeof(obj_) - 1 > DEFAULT_STRLEN \ - ? DEFAULT_STRLEN : (int) sizeof(obj_) - 1; \ + const unsigned int plen = MIN((minsz_) - 1, DEFAULT_STRLEN); \ /* len < sizeof(obj_) */ \ if (plen > 0) \ TEST_NLATTR_((fd_), (nlh0_), (hdrlen_), \ @@ -113,7 +138,7 @@ print_nlattr(const unsigned int nla_len, const char *const nla_type, bool add_da (init_msg_), (print_msg_), \ (nla_type_), (nla_type_str_), \ sizeof(obj_), \ - (pattern_), sizeof(obj_) - 1, \ + (pattern_), (minsz_) - 1, \ printf("%p", \ RTA_DATA(NLMSG_ATTR(nlh, (hdrlen_))))); \ /* sizeof(obj_) */ \ @@ -128,12 +153,12 @@ print_nlattr(const unsigned int nla_len, const char *const nla_type, bool add_da #define TEST_NLATTR_OBJECT_EX(fd_, nlh0_, hdrlen_, \ init_msg_, print_msg_, \ nla_type_, \ - pattern_, obj_, fallback_func, ...) \ + pattern_, obj_, minsz_, fallback_func, ...) \ TEST_NLATTR_OBJECT_EX_((fd_), (nlh0_), (hdrlen_), \ (init_msg_), (print_msg_), \ (nla_type_), #nla_type_, \ - (pattern_), (obj_), (fallback_func), \ - __VA_ARGS__) + (pattern_), (obj_), (minsz_), \ + (fallback_func), __VA_ARGS__) #define TEST_NLATTR_OBJECT(fd_, nlh0_, hdrlen_, \ init_msg_, print_msg_, \ @@ -141,8 +166,17 @@ print_nlattr(const unsigned int nla_len, const char *const nla_type, bool add_da TEST_NLATTR_OBJECT_EX_((fd_), (nlh0_), (hdrlen_), \ (init_msg_), (print_msg_), \ (nla_type_), #nla_type_, \ - (pattern_), (obj_), print_quoted_hex, \ - __VA_ARGS__) + (pattern_), (obj_), sizeof(obj_), \ + print_quoted_hex, __VA_ARGS__) + +#define TEST_NLATTR_OBJECT_MINSZ(fd_, nlh0_, hdrlen_, \ + init_msg_, print_msg_, \ + nla_type_, pattern_, obj_, minsz_, ...) \ + TEST_NLATTR_OBJECT_EX_((fd_), (nlh0_), (hdrlen_), \ + (init_msg_), (print_msg_), \ + (nla_type_), #nla_type_, \ + (pattern_), (obj_), (minsz_), \ + print_quoted_hex, __VA_ARGS__) #define TEST_NLATTR_ARRAY(fd_, nlh0_, hdrlen_, \ init_msg_, print_msg_, \ diff --git a/tests-m32/test_printstrn.c b/tests-m32/test_printstrn.c index 09c438d1..9e9a543c 100644 --- a/tests-m32/test_printstrn.c +++ b/tests-m32/test_printstrn.c @@ -2,7 +2,7 @@ * Test printstrn/umoven. * * Copyright (c) 2015-2017 Dmitry V. Levin - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -13,7 +13,6 @@ #include #include #include -#include #include "scno.h" #include "test_ucopy.h" diff --git a/tests-m32/test_ucopy.c b/tests-m32/test_ucopy.c index 78d393b2..0574c73c 100644 --- a/tests-m32/test_ucopy.c +++ b/tests-m32/test_ucopy.c @@ -2,7 +2,7 @@ * Test whether process_vm_readv and PTRACE_PEEKDATA work. * * Copyright (c) 2016-2017 Dmitry V. Levin - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -22,7 +22,6 @@ #ifndef HAVE_PROCESS_VM_READV -# include # include "scno.h" static ssize_t strace_process_vm_readv(pid_t pid, diff --git a/tests-m32/tests.h b/tests-m32/tests.h index 1a1b02c3..66c7f0e6 100644 --- a/tests-m32/tests.h +++ b/tests-m32/tests.h @@ -1,6 +1,6 @@ /* * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -24,6 +24,7 @@ # endif # include +# include # include # include "kernel_types.h" # include "gcc_compat.h" @@ -50,11 +51,72 @@ # define XLAT_VERBOSE 0 # endif + + +# if XLAT_RAW +# define XLAT_KNOWN(val_, str_) STRINGIFY_VAL(val_) +# define XLAT_UNKNOWN(val_, dflt_) STRINGIFY_VAL(val_) + +# define XLAT_FMT "%#x" +# define XLAT_ARGS(a_) (a_) +# define XLAT_SEL(v_, s_) v_ + +# define ABBR(s_) "" +# define RAW(s_) s_ +# define VERB(s_) "" +# define NABBR(s_) s_ +# define NRAW(s_) "" +# define NVERB(s_) s_ +# elif XLAT_VERBOSE +# define XLAT_KNOWN(val_, str_) STRINGIFY_VAL(val_) " /* " str_ " */" +# define XLAT_UNKNOWN(val_, dflt_) STRINGIFY_VAL(val_) " /* " dflt_ " */" + +# define XLAT_FMT "%#x /* %s */" +# define XLAT_ARGS(a_) a_, #a_ +# define XLAT_SEL(v_, s_) v_, s_ + +# define ABBR(s_) "" +# define RAW(s_) "" +# define VERB(s_) s_ +# define NABBR(s_) s_ +# define NRAW(s_) s_ +# define NVERB(s_) "" +# else /* !XLAT_RAW && !XLAT_VERBOSE */ +# define XLAT_KNOWN(val_, str_) str_ +# define XLAT_UNKNOWN(val_, dflt_) STRINGIFY_VAL(val_) " /* " dflt_ " */" + +# define XLAT_FMT "%s" +# define XLAT_ARGS(a_) #a_ +# define XLAT_SEL(v_, s_) s_ + +# define ABBR(s_) s_ +# define RAW(s_) "" +# define VERB(s_) "" +# define NABBR(s_) "" +# define NRAW(s_) s_ +# define NVERB(s_) s_ +# endif /* XLAT_RAW, XLAT_VERBOSE */ + +# define XLAT_STR(v_) sprintxlat(#v_, v_, NULL) + +# define ARG_XLAT_KNOWN(val_, str_) val_, XLAT_KNOWN(val_, str_) +# define ARG_XLAT_UNKNOWN(val_, str_) val_, XLAT_UNKNOWN(val_, str_) + # ifndef DEFAULT_STRLEN /* Default maximum # of bytes printed in printstr et al. */ # define DEFAULT_STRLEN 32 # endif +struct strval32 { + uint32_t val; + const char *str; +}; + +struct strval64 { + uint64_t val; + const char *str; +}; + /* Cached sysconf(_SC_PAGESIZE). */ size_t get_page_size(void); @@ -86,6 +148,12 @@ void perror_msg_and_skip(const char *, ...) /* Stat the specified file and skip the test if the stat call failed. */ void skip_if_unavailable(const char *); +/* + * Obtain an exclusive lock on dirname(path_name)/lock_name file + * using open and flock. + */ +int lock_file_by_dirname(const char *path_name, const char *lock_name); + /* * Allocate memory that ends on the page boundary. * Pages allocated by this call are preceded by an unmapped page @@ -116,15 +184,26 @@ void *tail_memdup(const void *, const size_t) # define TAIL_ALLOC_OBJECT_VAR_PTR(type_name, type_ptr) \ type_name *type_ptr = tail_alloc(sizeof(*type_ptr)) -/* +/** * Fill memory (pointed by ptr, having size bytes) with different bytes (with * values starting with start and resetting every period) in order to catch * sign, byte order and/or alignment errors. */ void fill_memory_ex(void *ptr, size_t size, unsigned char start, unsigned int period); -/* Shortcut for fill_memory_ex(ptr, size, 0x80, 0x80) */ +/** Shortcut for fill_memory_ex(ptr, size, 0x80, 0x80) */ void fill_memory(void *ptr, size_t size); +/** Variant of fill_memory_ex for arrays of 16-bit (2-byte) values. */ +void fill_memory16_ex(void *ptr, size_t size, uint16_t start, + unsigned int period); +/** Shortcut for fill_memory16_ex(ptr, size, 0x80c0, 0x8000) */ +void fill_memory16(void *ptr, size_t size); +/** Variant of fill_memory_ex for arrays of 32-bit (4-byte) values. */ +void fill_memory32_ex(void *ptr, size_t size, uint32_t start, + unsigned int period); +/** Shortcut for fill_memory32_ex(ptr, size, 0x80a0c0e0, 0x80000000) */ +void fill_memory32(void *ptr, size_t size); + /* Close stdin, move stdout to a non-standard descriptor, and print. */ void tprintf(const char *, ...) @@ -202,12 +281,49 @@ struct xlat; int printflags(const struct xlat *, const unsigned long long, const char *); /* Print constant in symbolic form according to xlat table. */ -int printxval(const struct xlat *, const unsigned long long, const char *); +int printxval_abbrev(const struct xlat *, const unsigned long long, + const char *); +int printxval_raw(const struct xlat *, const unsigned long long, const char *); +int printxval_verbose(const struct xlat *, const unsigned long long, + const char *); + +/* Print constant in symbolic form according to xlat table. */ +const char *sprintxlat_abbrev(const char *, const unsigned long long, + const char *); +const char *sprintxlat_raw(const char *, const unsigned long long, + const char *); +const char *sprintxlat_verbose(const char *, const unsigned long long, + const char *); + +/* Print constant in symbolic form according to xlat table. */ +const char *sprintxval_abbrev(const struct xlat *, const unsigned long long, + const char *); +const char *sprintxval_raw(const struct xlat *, const unsigned long long, + const char *); +const char *sprintxval_verbose(const struct xlat *, const unsigned long long, + const char *); + +# if XLAT_RAW +# define printxval printxval_raw +# define sprintxlat sprintxlat_raw +# define sprintxval sprintxval_raw +# elif XLAT_VERBOSE +# define printxval printxval_verbose +# define sprintxlat sprintxlat_verbose +# define sprintxval sprintxval_verbose +# else +# define printxval printxval_abbrev +# define sprintxlat sprintxlat_abbrev +# define sprintxval sprintxval_abbrev +# endif /* Invoke a socket syscall, either directly or via __NR_socketcall. */ int socketcall(const int nr, const int call, long a1, long a2, long a3, long a4, long a5); +/* Call chdir and print strace output depending on flags. */ +void test_status_chdir(const char *dir, bool print_success, bool print_fail); + /* Wrappers for recvmmsg and sendmmsg syscalls. */ struct mmsghdr; struct timespec; @@ -218,6 +334,9 @@ int send_mmsg(int, struct mmsghdr *, unsigned int, unsigned int); int create_nl_socket_ext(int proto, const char *name); # define create_nl_socket(proto) create_nl_socket_ext((proto), #proto) +/* Create a temporary file in the current directory. */ +int create_tmpfile(unsigned int flags); + /* Create a pipe with maximized descriptor numbers. */ void pipe_maxfd(int pipefd[2]); @@ -236,7 +355,7 @@ unsigned int ifindex_lo(void); /* * For 64-bit kernel_ulong_t and 32-bit pointer, * return a kernel_ulong_t value by filling higher bits. - * For other architertures, return the original pointer. + * For other architectures, return the original pointer. */ static inline kernel_ulong_t f8ill_ptr_to_kulong(const void *const ptr) diff --git a/tests-m32/tgkill--pidns-translation.c b/tests-m32/tgkill--pidns-translation.c new file mode 100644 index 00000000..c3ac2d0a --- /dev/null +++ b/tests-m32/tgkill--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "tgkill.c" diff --git a/tests-m32/tgkill--pidns-translation.gen.test b/tests-m32/tgkill--pidns-translation.gen.test new file mode 100755 index 00000000..8f729251 --- /dev/null +++ b/tests-m32/tgkill--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (tgkill--pidns-translation test_pidns -a15 --signal='!cont' -e trace=tgkill); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a15 --signal='!cont' -e trace=tgkill diff --git a/tests-m32/tgkill.c b/tests-m32/tgkill.c new file mode 100644 index 00000000..10816a61 --- /dev/null +++ b/tests-m32/tgkill.c @@ -0,0 +1,88 @@ +/* + * Check decoding of tgkill syscall. + * + * Copyright (c) 2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" +#include "pidns.h" + +#ifdef __NR_tgkill + +# include +# include +# include + +static const char *errstr; + +static long +k_tgkill(const unsigned int tgid, + const unsigned int tid, + const unsigned int sig) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | tgid; + const kernel_ulong_t arg2 = fill | tid; + const kernel_ulong_t arg3 = fill | sig; + const long rc = syscall(__NR_tgkill, arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + PIDNS_TEST_INIT; + + const int pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); + const int tid = syscall(__NR_gettid); + const char *tid_str = pidns_pid2str(PT_TID); + const int bad_pid = -1; + const int bad_sig = 0xface; + + k_tgkill(pid, tid, 0); + pidns_print_leader(); + printf("tgkill(%d%s, %d%s, 0) = %s\n", + pid, pid_str, tid, tid_str, errstr); + + k_tgkill(pid, bad_pid, 0); + pidns_print_leader(); + printf("tgkill(%d%s, %d, 0) = %s\n", + pid, pid_str, bad_pid, errstr); + + k_tgkill(bad_pid, tid, 0); + pidns_print_leader(); + printf("tgkill(%d, %d%s, 0) = %s\n", + bad_pid, tid, tid_str, errstr); + + k_tgkill(pid, tid, SIGCONT); + pidns_print_leader(); + printf("tgkill(%d%s, %d%s, SIGCONT) = %s\n", + pid, pid_str, tid, tid_str, errstr); + + k_tgkill(pid, tid, bad_sig); + pidns_print_leader(); + printf("tgkill(%d%s, %d%s, %d) = %s\n", + pid, pid_str, tid, tid_str, bad_sig, errstr); + + k_tgkill(pid, tid, -bad_sig); + pidns_print_leader(); + printf("tgkill(%d%s, %d%s, %d) = %s\n", + pid, pid_str, tid, tid_str, -bad_sig, errstr); + + pidns_print_leader(); + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_tgkill") + +#endif diff --git a/tests-m32/tgkill.gen.test b/tests-m32/tgkill.gen.test new file mode 100755 index 00000000..6ad0e480 --- /dev/null +++ b/tests-m32/tgkill.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (tgkill -a15 --signal='!cont'); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a15 --signal='!cont' diff --git a/tests-m32/threads-execve--quiet-thread-execve.c b/tests-m32/threads-execve--quiet-thread-execve.c new file mode 100644 index 00000000..9811b7be --- /dev/null +++ b/tests-m32/threads-execve--quiet-thread-execve.c @@ -0,0 +1,2 @@ +#define PRINT_SUPERSEDED 0 +#include "threads-execve.c" diff --git a/tests-m32/threads-execve--quiet-thread-execve.gen.test b/tests-m32/threads-execve--quiet-thread-execve.gen.test new file mode 100755 index 00000000..24ed8ae1 --- /dev/null +++ b/tests-m32/threads-execve--quiet-thread-execve.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (threads-execve--quiet-thread-execve +threads-execve.test -s40 --quiet=personality,thread-execve); do not edit. +set -- -s40 --quiet=personality,thread-execve +. "${srcdir=.}/threads-execve.test" diff --git a/tests-m32/threads-execve-q.c b/tests-m32/threads-execve-q.c new file mode 100644 index 00000000..a6627b7d --- /dev/null +++ b/tests-m32/threads-execve-q.c @@ -0,0 +1 @@ +#include "threads-execve.c" diff --git a/tests-m32/threads-execve-q.gen.test b/tests-m32/threads-execve-q.gen.test new file mode 100755 index 00000000..9865efef --- /dev/null +++ b/tests-m32/threads-execve-q.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (threads-execve-q +threads-execve.test -q); do not edit. +set -- -q +. "${srcdir=.}/threads-execve.test" diff --git a/tests-m32/threads-execve-qq.c b/tests-m32/threads-execve-qq.c new file mode 100644 index 00000000..2dc806d3 --- /dev/null +++ b/tests-m32/threads-execve-qq.c @@ -0,0 +1,2 @@ +#define PRINT_EXITED 0 +#include "threads-execve.c" diff --git a/tests-m32/threads-execve-qq.gen.test b/tests-m32/threads-execve-qq.gen.test new file mode 100755 index 00000000..515ac448 --- /dev/null +++ b/tests-m32/threads-execve-qq.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (threads-execve-qq +threads-execve.test -qq); do not edit. +set -- -qq +. "${srcdir=.}/threads-execve.test" diff --git a/tests-m32/threads-execve-qqq.c b/tests-m32/threads-execve-qqq.c new file mode 100644 index 00000000..c8e32918 --- /dev/null +++ b/tests-m32/threads-execve-qqq.c @@ -0,0 +1,3 @@ +#define PRINT_SUPERSEDED 0 +#define PRINT_EXITED 0 +#include "threads-execve.c" diff --git a/tests-m32/threads-execve-qqq.gen.test b/tests-m32/threads-execve-qqq.gen.test new file mode 100755 index 00000000..4a6641fc --- /dev/null +++ b/tests-m32/threads-execve-qqq.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (threads-execve-qqq +threads-execve.test -qqq); do not edit. +set -- -qqq +. "${srcdir=.}/threads-execve.test" diff --git a/tests-m32/threads-execve.c b/tests-m32/threads-execve.c index 56fab529..3c13e29a 100644 --- a/tests-m32/threads-execve.c +++ b/tests-m32/threads-execve.c @@ -2,21 +2,33 @@ * Check decoding of threads when a non-leader thread invokes execve. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include -#include -#include -#include -#include -#include -#include +#include "scno.h" + +#ifdef __NR_nanosleep + +# include +# include +# include +# include +# include +# include +# include + +# include "kernel_old_timespec.h" + +# ifndef PRINT_EXITED +# define PRINT_EXITED 1 +# endif +# ifndef PRINT_SUPERSEDED +# define PRINT_SUPERSEDED 1 +# endif static pid_t leader; static pid_t tid; @@ -110,9 +122,9 @@ thread(void *arg) struct timespec ts = { .tv_nsec = 100000000 }; (void) clock_nanosleep(CLOCK_REALTIME, 0, &ts, NULL); - ts.tv_nsec = 12345; + kernel_old_timespec_t ots = { .tv_nsec = 12345 }; printf("%-5d nanosleep({tv_sec=0, tv_nsec=%u}, NULL) = 0\n", - tid, (unsigned int) ts.tv_nsec); + tid, (unsigned int) ots.tv_nsec); switch (action % NUMBER_OF_ACTIONS) { case ACTION_exit: @@ -140,12 +152,12 @@ thread(void *arg) break; } - printf("%-5d +++ superseded by execve in pid %u +++\n" - "%-5d <... execve resumed>) = 0\n", - leader, tid, - leader); +# if PRINT_SUPERSEDED + printf("%-5d +++ superseded by execve in pid %u +++\n", leader, tid); +# endif + printf("%-5d <... execve resumed>) = 0\n", leader); - (void) nanosleep(&ts, NULL); + (void) syscall(__NR_nanosleep, (unsigned long) &ots, 0UL); execve(argv[0], argv, environ); perror_msg_and_fail("execve"); } @@ -178,7 +190,9 @@ main(int ac, char **av) action = atoi(av[2]); if (action >= NUMBER_OF_ACTIONS * NUMBER_OF_ITERATIONS) { +# if PRINT_EXITED printf("%-5d +++ exited with 0 +++\n", leader); +# endif return 0; } @@ -190,7 +204,7 @@ main(int ac, char **av) if (errno) perror_msg_and_fail("pthread_create"); - struct timespec ts = { .tv_sec = 123 }; + kernel_old_timespec_t ots = { .tv_sec = 123 }; sigset_t mask; sigemptyset(&mask); @@ -214,11 +228,18 @@ main(int ac, char **av) case ACTION_nanosleep: printf("%s nanosleep({tv_sec=%u, tv_nsec=0}" ", \n", - leader_str, (unsigned int) ts.tv_sec); + leader_str, (unsigned int) ots.tv_sec); close(fds[1]); - (void) nanosleep(&ts, 0); + (void) syscall(__NR_nanosleep, + (unsigned long) &ots, 0UL); break; } return 1; } + +#else + +SKIP_MAIN_UNDEFINED("__NR_nanosleep") + +#endif diff --git a/tests-m32/threads-execve.test b/tests-m32/threads-execve.test index 04ce15df..de659103 100755 --- a/tests-m32/threads-execve.test +++ b/tests-m32/threads-execve.test @@ -3,7 +3,7 @@ # Check decoding of threads when a non-leader thread invokes execve. # # Copyright (c) 2016 Dmitry V. Levin -# Copyright (c) 2016-2019 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -14,13 +14,18 @@ # The kernel before commit v3.1-rc1~308^2~7 reported 0 instead of old pid. require_min_kernel_version_or_skip 3.1 +# This test requires some concurrency between threads. +require_min_nproc 2 + +opts="${*:-}" + check_prog diff run_prog_skip_if_failed date +%s > /dev/null s0="$(date +%s)" run_prog > /dev/null -set -- -a21 -f -esignal=none -e trace=execve,exit,nanosleep,rt_sigsuspend $args +set -- -a21 -f -esignal=none -e trace=execve,exit,nanosleep,rt_sigsuspend $opts $args # Due to probabilistic nature of the test, try it several times. while :; do diff --git a/tests-m32/time.c b/tests-m32/time.c index 330c8846..f41d7fdb 100644 --- a/tests-m32/time.c +++ b/tests-m32/time.c @@ -2,14 +2,14 @@ * This file is part of time strace test. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_time diff --git a/tests-m32/timer_create.c b/tests-m32/timer_create.c index c9c64813..2c4dae19 100644 --- a/tests-m32/timer_create.c +++ b/tests-m32/timer_create.c @@ -2,13 +2,14 @@ * This file is part of timer_create strace test. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_timer_create diff --git a/tests-m32/timer_xettime.c b/tests-m32/timer_xettime.c index 17390c2d..04d037b2 100644 --- a/tests-m32/timer_xettime.c +++ b/tests-m32/timer_xettime.c @@ -2,14 +2,14 @@ * This file is part of timer_xettime strace test. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_timer_create \ && defined __NR_timer_gettime \ diff --git a/tests-m32/timerfd_xettime.c b/tests-m32/timerfd_xettime.c index 73616677..96d4c682 100644 --- a/tests-m32/timerfd_xettime.c +++ b/tests-m32/timerfd_xettime.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -8,7 +8,7 @@ #include "tests.h" #include -#include +#include "scno.h" #if defined __NR_timerfd_create \ && defined __NR_timerfd_gettime \ diff --git a/tests-m32/times-fail.c b/tests-m32/times-fail.c index 551803df..940966d5 100644 --- a/tests-m32/times-fail.c +++ b/tests-m32/times-fail.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,7 +9,7 @@ #include #include #include -#include +#include "scno.h" int main(void) diff --git a/tests-m32/times.c b/tests-m32/times.c index a390dde4..06a0f257 100644 --- a/tests-m32/times.c +++ b/tests-m32/times.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2015 Eugene Syromyatnikov * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -19,12 +19,13 @@ #include #include -#include +#include "scno.h" #include #include enum { - NUM_USER_ITERS = 1000000, + NUM_USER_ITERS_SQRT = 1000, + NUM_USER_ITERS = NUM_USER_ITERS_SQRT * NUM_USER_ITERS_SQRT, PARENT_CPUTIME_LIMIT_NSEC = 200000000, CHILD_CPUTIME_LIMIT_NSEC = 300000000 }; @@ -48,7 +49,7 @@ main(void) if (ts.tv_sec || ts.tv_nsec >= cputime_limit) break; - if (i && !(ts.tv_sec || ts.tv_nsec)) + if ((i > NUM_USER_ITERS_SQRT) && !(ts.tv_sec || ts.tv_nsec)) error_msg_and_skip("clock_gettime(CLOCK_PROCESS_CPUTIME_ID, {0, 0})"); for (i = 0; i < NUM_USER_ITERS; ++i) diff --git a/tests-m32/tkill--pidns-translation.c b/tests-m32/tkill--pidns-translation.c new file mode 100644 index 00000000..70a64f57 --- /dev/null +++ b/tests-m32/tkill--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "tkill.c" diff --git a/tests-m32/tkill--pidns-translation.gen.test b/tests-m32/tkill--pidns-translation.gen.test new file mode 100755 index 00000000..14c2fb31 --- /dev/null +++ b/tests-m32/tkill--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (tkill--pidns-translation test_pidns --signal='!cont' -a12 -e trace=tkill); do not edit. +. "${srcdir=.}/init.sh" +test_pidns --signal='!cont' -a12 -e trace=tkill diff --git a/tests-m32/tkill.c b/tests-m32/tkill.c new file mode 100644 index 00000000..89466e1a --- /dev/null +++ b/tests-m32/tkill.c @@ -0,0 +1,69 @@ +/* + * Check decoding of tkill syscall. + * + * Copyright (c) 2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" +#include "pidns.h" + +#ifdef __NR_tkill + +# include +# include +# include + +static const char *errstr; + +static long +k_tkill(const unsigned int tid, const unsigned int sig) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | tid; + const kernel_ulong_t arg2 = fill | sig; + const long rc = syscall(__NR_tkill, arg1, arg2, bad, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + PIDNS_TEST_INIT; + + const int tid = syscall(__NR_gettid); + const char *tid_str = pidns_pid2str(PT_TID); + const int bad_pid = -1; + const int bad_sig = 0xface; + + k_tkill(tid, 0); + pidns_print_leader(); + printf("tkill(%d%s, 0) = %s\n", tid, tid_str, errstr); + + k_tkill(tid, SIGCONT); + pidns_print_leader(); + printf("tkill(%d%s, SIGCONT) = %s\n", tid, tid_str, errstr); + + k_tkill(bad_pid, bad_sig); + pidns_print_leader(); + printf("tkill(%d, %d) = %s\n", bad_pid, bad_sig, errstr); + + k_tkill(bad_pid, -bad_sig); + pidns_print_leader(); + printf("tkill(%d, %d) = %s\n", bad_pid, -bad_sig, errstr); + + pidns_print_leader(); + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_tkill") + +#endif diff --git a/tests-m32/tkill.gen.test b/tests-m32/tkill.gen.test new file mode 100755 index 00000000..65e9d96e --- /dev/null +++ b/tests-m32/tkill.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (tkill -a12 --signal='!cont'); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a12 --signal='!cont' diff --git a/tests-m32/trace_clock.gen.test b/tests-m32/trace_clock.gen.test new file mode 100755 index 00000000..e9eea786 --- /dev/null +++ b/tests-m32/trace_clock.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (trace_clock test_trace_expr 'clock_nanosleep|times' -e%clock); do not edit. +. "${srcdir=.}/init.sh" +test_trace_expr 'clock_nanosleep|times' -e%clock diff --git a/tests-m32/trace_clock.in b/tests-m32/trace_clock.in new file mode 100644 index 00000000..511ec8ea --- /dev/null +++ b/tests-m32/trace_clock.in @@ -0,0 +1,5 @@ +adjtimex -a13 +clock_adjtime -a21 +clock_xettime -a21 +xettimeofday -a20 +time -a9 diff --git a/tests-m32/trace_creds.gen.test b/tests-m32/trace_creds.gen.test new file mode 100755 index 00000000..d8cd5892 --- /dev/null +++ b/tests-m32/trace_creds.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (trace_creds test_trace_expr '([gs]et[^p]*([gu]id|groups)|caps|prctl|[fl]?chown|print(path-umovestr|strn-umoven)-undumpable|ptrace|quotactl|rt_sigtimedwait|rt_(tg)?sigqueueinfo).*' -e%creds); do not edit. +. "${srcdir=.}/init.sh" +test_trace_expr '([gs]et[^p]*([gu]id|groups)|caps|prctl|[fl]?chown|print(path-umovestr|strn-umoven)-undumpable|ptrace|quotactl|rt_sigtimedwait|rt_(tg)?sigqueueinfo).*' -e%creds diff --git a/tests-m32/trace_creds.in b/tests-m32/trace_creds.in new file mode 100644 index 00000000..ce78253a --- /dev/null +++ b/tests-m32/trace_creds.in @@ -0,0 +1,8 @@ +getgroups -a17 +getgroups32 -a19 +getresgid -a25 +getresgid32 -a27 +getresuid -a25 +getresuid32 -a27 +setgroups -s2 -a17 +setgroups32 -s2 -a19 diff --git a/tests-m32/trace_fstat.in b/tests-m32/trace_fstat.in index 3fde131d..9d7b51bb 100644 --- a/tests-m32/trace_fstat.in +++ b/tests-m32/trace_fstat.in @@ -9,3 +9,4 @@ fstat64-Xverbose -a17 -Xverbose fstatat64 -a32 newfstatat -a32 oldfstat -a21 +statx -a32 diff --git a/tests-m32/trace_lstat.in b/tests-m32/trace_lstat.in index abbabc49..ca9f1318 100644 --- a/tests-m32/trace_lstat.in +++ b/tests-m32/trace_lstat.in @@ -1,3 +1,3 @@ -lstat -a32 +lstat -a31 lstat64 -a32 oldlstat -a32 diff --git a/tests-m32/trace_stat.in b/tests-m32/trace_stat.in index f105d784..75633050 100644 --- a/tests-m32/trace_stat.in +++ b/tests-m32/trace_stat.in @@ -1,3 +1,3 @@ oldstat -a32 -stat -a32 +stat -a30 stat64 -a32 diff --git a/tests-m32/tracer_ppid_pgid_sid.c b/tests-m32/tracer_ppid_pgid_sid.c new file mode 100644 index 00000000..69687fa2 --- /dev/null +++ b/tests-m32/tracer_ppid_pgid_sid.c @@ -0,0 +1,92 @@ +/* + * Helper program for strace-DDD.test + * + * Copyright (c) 2019-2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include +#include +#include +#include + +static int +fetch_tracer_pid(const char *str) +{ + for (; isspace(*str); ++str) + ; + return atoi(str); +} + +static int +get_tracer_pid(void) +{ + static const char status[] = "/proc/self/status"; + FILE *fp = fopen(status, "r"); + if (!fp) + perror_msg_and_fail("fopen: %s", status); + + static const char prefix[] = "TracerPid:"; + const size_t prefix_len = sizeof(prefix) - 1; + const char *str = NULL; + char *line = NULL; + size_t n = 0; + + while (getline(&line, &n, fp) > 0) { + if (strncmp(line, prefix, prefix_len) == 0) { + str = line + prefix_len; + break; + } + } + if (!str && !line) + perror_msg_and_fail("getline"); + + int pid = str ? fetch_tracer_pid(str) : 0; + free(line); + fclose(fp); + + return pid; +} + +static void +get_ppid_pgid_sid(int pid, int *ppid, int *pgid, int *sid) +{ + char *stat; + if (asprintf(&stat, "/proc/%d/stat", pid) < 0) + perror_msg_and_fail("asprintf"); + + FILE *fp = fopen(stat, "r"); + if (!fp) + perror_msg_and_fail("fopen: %s", stat); + char buf[4096]; + if (!fgets(buf, sizeof(buf), fp)) + perror_msg_and_fail("fgets: %s", stat); + + fclose(fp); + + const char *p = strrchr(buf, ')'); + if (!p) + error_msg_and_fail("%s: parenthesis not found", stat); + ++p; + + if (sscanf(p, " %*c %d %d %d", ppid, pgid, sid) != 3) + error_msg_and_fail("%s: sscanf failed", stat); +} + +int +main(void) +{ + int tracer_pid = get_tracer_pid(); + if (tracer_pid < 0) + error_msg_and_fail("tracer_pid = %d", tracer_pid); + + int ppid = 0, pgid = 0, sid = 0; + get_ppid_pgid_sid(tracer_pid, &ppid, &pgid, &sid); + printf("%d %d %d %d\n", tracer_pid, ppid, pgid, sid); + + return 0; +} diff --git a/tests-m32/trie_for_tests.c b/tests-m32/trie_for_tests.c new file mode 100644 index 00000000..13e564c4 --- /dev/null +++ b/tests-m32/trie_for_tests.c @@ -0,0 +1 @@ +#include "trie.c" diff --git a/tests-m32/trie_test.c b/tests-m32/trie_test.c new file mode 100644 index 00000000..44a35ce3 --- /dev/null +++ b/tests-m32/trie_test.c @@ -0,0 +1,121 @@ +/* + * Copyright (c) 2017-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "trie.h" + +#include +#include + +static void +assert_equals(const char *msg, uint64_t expected, uint64_t actual) { + if (actual != expected) + error_msg_and_fail("%s: expected: %" PRIu64 + ", actual: %" PRIu64, msg, expected, actual); +} + +static void +iterate_fn(void *data, uint64_t key, uint64_t value) +{ + uint64_t expected = key < 256 && key % 10 == 0 ? key + 42 : -1ULL; + assert_equals("iterate_fn", expected, value); + + int *count = (int *) data; + if (value != -1ULL) + (*count)++; +} + +static void +test_trie_iterate_fn(void) +{ + struct trie *t = trie_create(8, 6, 3, 3, -1); + for (int i = 0; i < 26; i++) + trie_set(t, i * 10, i * 10 + 42); + + static const struct { + uint64_t start; + uint64_t end; + int expected_count; + } iterate_params[] = { + {0, 256, 26}, + {0, UINT64_MAX, 26}, + {20, 90, 8}, + {99, 999, 16}, + {10000, 100000, 0}, + {200, 100, 0}, + }; + + for (size_t i = 0; i < ARRAY_SIZE(iterate_params); i++) { + int count = 0; + trie_iterate_keys(t, iterate_params[i].start, iterate_params[i].end, iterate_fn, &count); + assert_equals("iteration count", iterate_params[i].expected_count, count); + } +} + +struct key_value_pair { + uint64_t key, value; +}; + +static void +test_trie_get(void) +{ + static const struct { + uint8_t key_size; + uint8_t item_size_lg; + uint8_t node_key_bits; + uint8_t data_block_key_bits; + uint64_t empty_value; + + struct key_value_pair set_values[3], get_values[3]; + } params[] = { + {64, 6, 10, 10, 0, + {{300, 1}, {0xfacefeed, 0xabcdef123456}, {-1ULL, -1ULL}}, + {{301, 0}, {0xfacefeed, 0xabcdef123456}, {-1ULL, -1ULL}}}, + {8, 2, 4, 4, 10, + {{0xab, 0xcd}, {0xface, 2}, {0, 3}}, + {{0xab, 0xd}, {0xface, 10}, {0, 3}}}, + {30, 0, 6, 3, -1, + {{0xaaaa, 127}, {0xface, 0}, {0, 0}}, + {{0xaaaa, 1}, {0xface, 0}, {1, 1}}}, + {16, 4, 5, 11, 0xffffff, + {{0xabcdef, 42}, {0xabcd, 42}, {0xffff, 0}}, + {{0xabcdef, 0xffff}, {0xabcd, 42}, {0xffff, 0}}}, + {41, 5, 1, 1, -1, + {{0xabcdef01, 0x22222222}, {-1, 0x33333333}, {10, 10}}, + {{0xabcdef01, 0x22222222}, {-1, 0xffffffff}, {10, 10}}}, + }; + + for (size_t i = 0; i < ARRAY_SIZE(params); i++) { + struct trie *t = trie_create(params[i].key_size, + params[i].item_size_lg, + params[i].node_key_bits, + params[i].data_block_key_bits, + params[i].empty_value); + + if (!t) + error_msg_and_fail("trie creation failed"); + + for (size_t j = 0; j < ARRAY_SIZE(params[i].set_values); j++) { + struct key_value_pair kv = params[i].set_values[j]; + trie_set(t, kv.key, kv.value); + } + for (size_t j = 0; j < ARRAY_SIZE(params[i].get_values); j++) { + struct key_value_pair kv = params[i].get_values[j]; + assert_equals("trie_get", kv.value, trie_get(t, kv.key)); + } + + trie_free(t); + } +} + +int +main(void) +{ + test_trie_get(); + test_trie_iterate_fn(); + return 0; +} diff --git a/tests-m32/trie_test.gen.test b/tests-m32/trie_test.gen.test new file mode 100755 index 00000000..c097ae50 --- /dev/null +++ b/tests-m32/trie_test.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (trie_test run_prog ); do not edit. +. "${srcdir=.}/init.sh" +run_prog diff --git a/tests-m32/truncate.c b/tests-m32/truncate.c index bfb6299b..5204ec04 100644 --- a/tests-m32/truncate.c +++ b/tests-m32/truncate.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_truncate diff --git a/tests-m32/truncate64.c b/tests-m32/truncate64.c index 1dceb414..6b071715 100644 --- a/tests-m32/truncate64.c +++ b/tests-m32/truncate64.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_truncate64 diff --git a/tests-m32/ugetrlimit.c b/tests-m32/ugetrlimit.c index 49627c1f..951ab974 100644 --- a/tests-m32/ugetrlimit.c +++ b/tests-m32/ugetrlimit.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_ugetrlimit diff --git a/tests-m32/umount.c b/tests-m32/umount.c index cd89aa0b..74450bc1 100644 --- a/tests-m32/umount.c +++ b/tests-m32/umount.c @@ -9,7 +9,7 @@ #include #include #include -#include +#include "scno.h" #include #ifdef __NR_oldumount diff --git a/tests-m32/umount2.c b/tests-m32/umount2.c index d313d597..cf1fc129 100644 --- a/tests-m32/umount2.c +++ b/tests-m32/umount2.c @@ -10,12 +10,13 @@ #include #include #include -#include +#include "scno.h" #if defined __NR_umount2 && (!defined __NR_umount || __NR_umount2 != __NR_umount) +# define TEST_SYSCALL_NR __NR_umount2 # define TEST_SYSCALL_STR "umount2" #else -# define __NR_umount2 __NR_umount +# define TEST_SYSCALL_NR __NR_umount # define TEST_SYSCALL_STR "umount" #endif @@ -25,9 +26,9 @@ main(void) static const char sample[] = "umount2.sample"; if (mkdir(sample, 0700)) perror_msg_and_fail("mkdir: %s", sample); - (void) syscall(__NR_umount2, sample, 31); + long ret = syscall(TEST_SYSCALL_NR, sample, 31); printf("%s(\"%s\", MNT_FORCE|MNT_DETACH|MNT_EXPIRE|UMOUNT_NOFOLLOW|0x10)" - " = -1 EINVAL (%m)\n", TEST_SYSCALL_STR, sample); + " = %s\n", TEST_SYSCALL_STR, sample, sprintrc(ret)); if (rmdir(sample)) perror_msg_and_fail("rmdir: %s", sample); puts("+++ exited with 0 +++"); diff --git a/tests-m32/umoven-illptr.c b/tests-m32/umoven-illptr.c index 25839f77..6a86fdcf 100644 --- a/tests-m32/umoven-illptr.c +++ b/tests-m32/umoven-illptr.c @@ -2,36 +2,56 @@ * Check decoding of invalid pointer by umoven. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include -#include -#include +#include "scno.h" + +#ifdef __NR_nanosleep + +# include +# include + +# include "kernel_old_timespec.h" + +static const char *errstr; + +static long +k_nanosleep(const kernel_ulong_t arg1, const kernel_ulong_t arg2) +{ + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const long rc = syscall(__NR_nanosleep, arg1, arg2, bad, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} int main(void) { - if (F8ILL_KULONG_SUPPORTED) { - struct timespec ts = { 0, 0 }; - const void *const p = tail_memdup(&ts, sizeof(ts)); - - long rc = syscall(__NR_nanosleep, p, NULL); - printf("nanosleep({tv_sec=0, tv_nsec=0}, NULL) = %s\n", - sprintrc(rc)); - - const kernel_ulong_t ill = f8ill_ptr_to_kulong(p); - rc = syscall(__NR_nanosleep, ill, NULL); - printf("nanosleep(%#llx, NULL) = %s\n", - (unsigned long long) ill, sprintrc(rc)); - - puts("+++ exited with 0 +++"); - return 0; - } else { + if (!F8ILL_KULONG_SUPPORTED) return 77; - } + + kernel_old_timespec_t ts = { 0, 0 }; + const void *const p = tail_memdup(&ts, sizeof(ts)); + + k_nanosleep((unsigned long) p, 0); + printf("nanosleep({tv_sec=0, tv_nsec=0}, NULL) = %s\n", errstr); + + const kernel_ulong_t ill = f8ill_ptr_to_kulong(p); + k_nanosleep(ill, 0); + printf("nanosleep(%#llx, NULL) = %s\n", + (unsigned long long) ill, errstr); + + puts("+++ exited with 0 +++"); + return 0; } + +#else + +SKIP_MAIN_UNDEFINED("__NR_nanosleep") + +#endif diff --git a/tests-m32/umovestr-illptr.c b/tests-m32/umovestr-illptr.c index 5a24357a..6cfcfb86 100644 --- a/tests-m32/umovestr-illptr.c +++ b/tests-m32/umovestr-illptr.c @@ -2,6 +2,7 @@ * Check decoding of invalid pointer by umovestr. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +11,7 @@ #include "tests.h" #include #include -#include +#include "scno.h" int main(void) diff --git a/tests-m32/umovestr_cached.c b/tests-m32/umovestr_cached.c new file mode 100644 index 00000000..3d7bed3b --- /dev/null +++ b/tests-m32/umovestr_cached.c @@ -0,0 +1,47 @@ +/* + * Check effectiveness of umovestr memory caching. + * + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#include +#include +#include +#include + +int +main(void) +{ + char *const buf = tail_alloc(DEFAULT_STRLEN); + fill_memory_ex(buf, DEFAULT_STRLEN, 'a', 'z' - 'a' + 1); + + struct iovec *const io = tail_alloc(sizeof(*io) * DEFAULT_STRLEN); + for (unsigned int i = 0; i < DEFAULT_STRLEN; ++i) { + io[i].iov_base = buf + DEFAULT_STRLEN - i; + io[i].iov_len = i; + } + + tprintf("%s", ""); + + int rc = writev(-1, io, DEFAULT_STRLEN); + const char *errstr = sprintrc(rc); + + tprintf("writev(-1, ["); + for (unsigned int i = 0; i < DEFAULT_STRLEN; ++i) { + if (i) + tprintf(", "); + tprintf("{iov_base=\"%.*s\", iov_len=%u}", + (int) io[i].iov_len, + (char *) io[i].iov_base, + (unsigned int) io[i].iov_len); + } + tprintf("], %u) = %s\n", DEFAULT_STRLEN, errstr); + + tprintf("+++ exited with 0 +++\n"); + return 0; +} diff --git a/tests-m32/umovestr_cached.test b/tests-m32/umovestr_cached.test new file mode 100755 index 00000000..4b9c8326 --- /dev/null +++ b/tests-m32/umovestr_cached.test @@ -0,0 +1,41 @@ +#!/bin/sh +# +# Check effectiveness of umovestr memory caching. +# +# Copyright (c) 2017-2020 Dmitry V. Levin +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +expected_count="${1:-2}" + +check_prog grep +$STRACE -d -enone / > /dev/null 2> "$LOG" ||: +grep -x "[^:]*strace: PTRACE_GET_SYSCALL_INFO works" "$LOG" > /dev/null || { + # PTRACE_GET_SYSCALL_INFO does not work + case "$STRACE_ARCH:$MIPS_ABI" in + ia64:|mips:o32) + # ia64 invokes extra process_vm_readv syscalls to obtain syscall + # arguments, see linux/ia64/get_syscall_args.c for details. + # mips o32 obtains the first four syscalls arguments from registers + # and invokes extra process_vm_readv syscalls to obtain remaining + # syscall arguments, see linux/mips/get_syscall_args.c for details. + skip_ "the test is not supported on $STRACE_ARCH yet" + ;; + esac +} + +run_strace_match_diff -e trace=writev + +run_strace -qq -esignal=none -eprocess_vm_readv -z \ + -o '|grep -c ^process_vm_readv > count' \ + -- "$STRACE_EXE" -o "$LOG" $args > /dev/null + +count="$(cat count)" +case "$count" in + 0) skip_ "$STRACE $args made no process_vm_readv syscall invocations" ;; + $expected_count) ;; + *) fail_ "$STRACE $args made $count != $expected_count process_vm_readv syscall invocations" ;; +esac diff --git a/tests-m32/umovestr_cached_adjacent.c b/tests-m32/umovestr_cached_adjacent.c new file mode 100644 index 00000000..53a573b3 --- /dev/null +++ b/tests-m32/umovestr_cached_adjacent.c @@ -0,0 +1,48 @@ +/* + * Check effectiveness of umovestr memory caching. + * + * Copyright (c) 2019-2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#include +#include +#include +#include + +int +main(void) +{ + const size_t size = get_page_size() + (DEFAULT_STRLEN - 1); + char *const buf = tail_alloc(size); + fill_memory_ex(buf, DEFAULT_STRLEN * 2, 'a', 'z' - 'a' + 1); + + struct iovec *const io = tail_alloc(sizeof(*io) * DEFAULT_STRLEN); + for (unsigned int i = 0; i < DEFAULT_STRLEN; ++i) { + io[i].iov_base = buf + i; + io[i].iov_len = DEFAULT_STRLEN; + } + + tprintf("%s", ""); + + int rc = writev(-1, io, DEFAULT_STRLEN); + const char *errstr = sprintrc(rc); + + tprintf("writev(-1, ["); + for (unsigned int i = 0; i < DEFAULT_STRLEN; ++i) { + if (i) + tprintf(", "); + tprintf("{iov_base=\"%.*s\", iov_len=%u}", + (int) io[i].iov_len, + (char *) io[i].iov_base, + (unsigned int) io[i].iov_len); + } + tprintf("], %u) = %s\n", DEFAULT_STRLEN, errstr); + + tprintf("+++ exited with 0 +++\n"); + return 0; +} diff --git a/tests-m32/umovestr_cached_adjacent.gen.test b/tests-m32/umovestr_cached_adjacent.gen.test new file mode 100755 index 00000000..24b3fd7d --- /dev/null +++ b/tests-m32/umovestr_cached_adjacent.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (umovestr_cached_adjacent +umovestr_cached.test 3); do not edit. +set -- 3 +. "${srcdir=.}/umovestr_cached.test" diff --git a/tests-m32/uname.c b/tests-m32/uname.c index 386fd99b..3180cffd 100644 --- a/tests-m32/uname.c +++ b/tests-m32/uname.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_uname diff --git a/tests-m32/unix-pair-send-recv.c b/tests-m32/unix-pair-send-recv.c index 73ddd1e0..1439e1ff 100644 --- a/tests-m32/unix-pair-send-recv.c +++ b/tests-m32/unix-pair-send-recv.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,7 +13,7 @@ #include #include #include -#include +#include "scno.h" #ifndef __NR_send # define __NR_send -1 diff --git a/tests-m32/unlink.c b/tests-m32/unlink.c index 9c33b624..af9b3a06 100644 --- a/tests-m32/unlink.c +++ b/tests-m32/unlink.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_unlink diff --git a/tests-m32/unlinkat.c b/tests-m32/unlinkat.c index 0ae67964..6fcf1332 100644 --- a/tests-m32/unlinkat.c +++ b/tests-m32/unlinkat.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_unlinkat @@ -27,7 +27,7 @@ main(void) printf("unlinkat(%s, \"%s\", %s) = %ld %s (%m)\n", "AT_FDCWD", sample, "AT_SYMLINK_NOFOLLOW|AT_REMOVEDIR|AT_SYMLINK_FOLLOW" - "|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|0xffffe0ff", + "|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|AT_RECURSIVE|0xffff60ff", rc, errno2name()); puts("+++ exited with 0 +++"); diff --git a/tests-m32/unshare.c b/tests-m32/unshare.c index a49f9ef9..45e914e0 100644 --- a/tests-m32/unshare.c +++ b/tests-m32/unshare.c @@ -2,7 +2,7 @@ * Check decoding of unshare syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_unshare @@ -28,12 +28,12 @@ main(void) const char *str; } unshare_flags[] = { { ARG_STR(0) }, - { 0xdeadca75, - "CLONE_THREAD|CLONE_FS|CLONE_SIGHAND|CLONE_SYSVSEM|" - "CLONE_NEWUTS|CLONE_NEWIPC|CLONE_NEWNET|CLONE_NEWUSER|" - "CLONE_NEWCGROUP|0x80a8c075" }, + { 0xdeadcaf5, + "CLONE_NEWTIME|CLONE_FS|CLONE_SIGHAND|CLONE_THREAD" + "|CLONE_SYSVSEM|CLONE_NEWCGROUP|CLONE_NEWUTS" + "|CLONE_NEWIPC|CLONE_NEWUSER|CLONE_NEWNET|0x80a8c075" }, { 0x2000000, "CLONE_NEWCGROUP" }, - { ARG_STR(0x81f8f0ff) " /* CLONE_??? */" }, + { ARG_STR(0x81f8f07f) " /* CLONE_??? */" }, }; long rc; diff --git a/tests-m32/userfaultfd.c b/tests-m32/userfaultfd.c index 9e59c0fe..fa722577 100644 --- a/tests-m32/userfaultfd.c +++ b/tests-m32/userfaultfd.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -7,7 +8,6 @@ #include "tests.h" #include -#include #include "scno.h" #if defined __NR_userfaultfd && defined O_CLOEXEC diff --git a/tests-m32/ustat.c b/tests-m32/ustat.c index 0945a70d..7464b98a 100644 --- a/tests-m32/ustat.c +++ b/tests-m32/ustat.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_ustat diff --git a/tests-m32/utime.c b/tests-m32/utime.c index 151b31a9..b548c8f8 100644 --- a/tests-m32/utime.c +++ b/tests-m32/utime.c @@ -2,14 +2,14 @@ * Check decoding of utime syscall. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_utime diff --git a/tests-m32/utimensat.c b/tests-m32/utimensat.c index 170b2c89..4aa83c81 100644 --- a/tests-m32/utimensat.c +++ b/tests-m32/utimensat.c @@ -2,7 +2,7 @@ * Check decoding of utimensat syscall. * * Copyright (c) 2015-2017 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -15,7 +15,7 @@ #include #include #include -#include +#include "scno.h" #if defined __NR_utimensat && defined UTIME_NOW && defined UTIME_OMIT @@ -44,7 +44,7 @@ "0x600 /* AT_REMOVEDIR|AT_SYMLINK_FOLLOW */" # define str_flags2 \ "0xffffffff /* AT_SYMLINK_NOFOLLOW|AT_REMOVEDIR|AT_SYMLINK_FOLLOW" \ - "|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|0xffffe0ff */" + "|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|AT_RECURSIVE|0xffff60ff */" # define str_utime_now_omit \ "[{tv_sec=" big_tv_sec ", tv_nsec=1073741823} /* UTIME_NOW */, " \ "{tv_sec=" huge_tv_sec ", tv_nsec=1073741822} /* UTIME_OMIT */]" @@ -55,7 +55,7 @@ # define str_flags1 "AT_REMOVEDIR|AT_SYMLINK_FOLLOW" # define str_flags2 \ "AT_SYMLINK_NOFOLLOW|AT_REMOVEDIR|AT_SYMLINK_FOLLOW" \ - "|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|0xffffe0ff" + "|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|AT_RECURSIVE|0xffff60ff" # define str_utime_now_omit "[UTIME_NOW, UTIME_OMIT]" # endif diff --git a/tests-m32/utimes.c b/tests-m32/utimes.c index 1aee6db3..d78969fe 100644 --- a/tests-m32/utimes.c +++ b/tests-m32/utimes.c @@ -2,13 +2,14 @@ * Check decoding of utimes syscall. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_utimes diff --git a/tests-m32/vhangup.c b/tests-m32/vhangup.c index 1a786cc3..46359016 100644 --- a/tests-m32/vhangup.c +++ b/tests-m32/vhangup.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_vhangup diff --git a/tests-m32/vmsplice.c b/tests-m32/vmsplice.c index b986dafa..ac949ae8 100644 --- a/tests-m32/vmsplice.c +++ b/tests-m32/vmsplice.c @@ -2,14 +2,14 @@ * This file is part of vmsplice strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_vmsplice diff --git a/tests-m32/wait4.c b/tests-m32/wait4.c index 29b0cadd..048e6225 100644 --- a/tests-m32/wait4.c +++ b/tests-m32/wait4.c @@ -2,77 +2,98 @@ * Check decoding of wait4 syscall. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include -#include -#include -#include -#include +#include "scno.h" + +#ifdef __NR_wait4 + +# include +# include +# include +# include +# include +# include "kernel_rusage.h" static const char * -sprint_rusage(const struct rusage *const ru) +sprint_rusage(const kernel_rusage_t *const ru) { static char buf[1024]; snprintf(buf, sizeof(buf), - "{ru_utime={tv_sec=%lld, tv_usec=%llu}" - ", ru_stime={tv_sec=%lld, tv_usec=%llu}" -#if VERBOSE - ", ru_maxrss=%lu" - ", ru_ixrss=%lu" - ", ru_idrss=%lu" - ", ru_isrss=%lu" - ", ru_minflt=%lu" - ", ru_majflt=%lu" - ", ru_nswap=%lu" - ", ru_inblock=%lu" - ", ru_oublock=%lu" - ", ru_msgsnd=%lu" - ", ru_msgrcv=%lu" - ", ru_nsignals=%lu" - ", ru_nvcsw=%lu" - ", ru_nivcsw=%lu}" -#else + "{ru_utime={tv_sec=%llu, tv_usec=%llu}" + ", ru_stime={tv_sec=%llu, tv_usec=%llu}" +# if VERBOSE + ", ru_maxrss=%llu" + ", ru_ixrss=%llu" + ", ru_idrss=%llu" + ", ru_isrss=%llu" + ", ru_minflt=%llu" + ", ru_majflt=%llu" + ", ru_nswap=%llu" + ", ru_inblock=%llu" + ", ru_oublock=%llu" + ", ru_msgsnd=%llu" + ", ru_msgrcv=%llu" + ", ru_nsignals=%llu" + ", ru_nvcsw=%llu" + ", ru_nivcsw=%llu}" +# else ", ...}" -#endif - , (long long) ru->ru_utime.tv_sec +# endif + , zero_extend_signed_to_ull(ru->ru_utime.tv_sec) , zero_extend_signed_to_ull(ru->ru_utime.tv_usec) - , (long long) ru->ru_stime.tv_sec + , zero_extend_signed_to_ull(ru->ru_stime.tv_sec) , zero_extend_signed_to_ull(ru->ru_stime.tv_usec) -#if VERBOSE - , (long) ru->ru_maxrss - , (long) ru->ru_ixrss - , (long) ru->ru_idrss - , (long) ru->ru_isrss - , (long) ru->ru_minflt - , (long) ru->ru_majflt - , (long) ru->ru_nswap - , (long) ru->ru_inblock - , (long) ru->ru_oublock - , (long) ru->ru_msgsnd - , (long) ru->ru_msgrcv - , (long) ru->ru_nsignals - , (long) ru->ru_nvcsw - , (long) ru->ru_nivcsw -#endif +# if VERBOSE + , zero_extend_signed_to_ull(ru->ru_maxrss) + , zero_extend_signed_to_ull(ru->ru_ixrss) + , zero_extend_signed_to_ull(ru->ru_idrss) + , zero_extend_signed_to_ull(ru->ru_isrss) + , zero_extend_signed_to_ull(ru->ru_minflt) + , zero_extend_signed_to_ull(ru->ru_majflt) + , zero_extend_signed_to_ull(ru->ru_nswap) + , zero_extend_signed_to_ull(ru->ru_inblock) + , zero_extend_signed_to_ull(ru->ru_oublock) + , zero_extend_signed_to_ull(ru->ru_msgsnd) + , zero_extend_signed_to_ull(ru->ru_msgrcv) + , zero_extend_signed_to_ull(ru->ru_nsignals) + , zero_extend_signed_to_ull(ru->ru_nvcsw) + , zero_extend_signed_to_ull(ru->ru_nivcsw) +# endif ); return buf; } +static const char *errstr; + +static long +k_wait4(const unsigned int pid, void const *wstatus, + const unsigned int options, void const *ru) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | pid; + const kernel_ulong_t arg2 = (uintptr_t) wstatus; + const kernel_ulong_t arg3 = fill | options; + const kernel_ulong_t arg4 = (uintptr_t) ru; + const long rc = syscall(__NR_wait4, arg1, arg2, arg3, arg4, bad, bad); + errstr = sprintrc(rc); + return rc; +} + static pid_t -do_wait4(pid_t pid, int *wstatus, int options, struct rusage *ru) +do_wait4(pid_t pid, int *wstatus, int options, kernel_rusage_t *ru) { sigset_t mask = {}; sigaddset(&mask, SIGCHLD); assert(sigprocmask(SIG_BLOCK, &mask, NULL) == 0); - pid_t rc = wait4(pid, wstatus, options, ru); + pid_t rc = k_wait4(pid, wstatus, options, ru); assert(sigprocmask(SIG_UNBLOCK, &mask, NULL) == 0); return rc; } @@ -101,12 +122,12 @@ main(void) (void) close(0); TAIL_ALLOC_OBJECT_CONST_PTR(int, s); - if (wait4(pid, s, WNOHANG|__WALL, NULL)) + if (k_wait4(pid, s, WNOHANG|__WALL, NULL)) perror_msg_and_fail("wait4 #1"); tprintf("wait4(%d, %p, WNOHANG|__WALL, NULL) = 0\n", pid, s); - TAIL_ALLOC_OBJECT_CONST_PTR(struct rusage, rusage); - if (wait4(pid, s, WNOHANG|__WALL, rusage)) + TAIL_ALLOC_OBJECT_CONST_PTR(kernel_rusage_t, rusage); + if (k_wait4(pid, s, WNOHANG|__WALL, rusage)) perror_msg_and_fail("wait4 #2"); tprintf("wait4(%d, %p, WNOHANG|__WALL, %p) = 0\n", pid, s, rusage); @@ -156,12 +177,12 @@ main(void) if (kill(pid, SIGCONT)) perror_msg_and_fail("kill(SIGCONT)"); -#if defined WCONTINUED && defined WIFCONTINUED +# if defined WCONTINUED && defined WIFCONTINUED assert(do_wait4(pid, s, WCONTINUED, rusage) == pid); assert(WIFCONTINUED(*s)); tprintf("wait4(%d, [{WIFCONTINUED(s)}], WCONTINUED" ", %s) = %d\n", pid, sprint_rusage(rusage), pid); -#endif /* WCONTINUED && WIFCONTINUED */ +# endif /* WCONTINUED && WIFCONTINUED */ assert(write(1, "", 1) == 1); (void) close(1); @@ -171,10 +192,16 @@ main(void) tprintf("wait4(%d, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0" ", %s) = %d\n", pid, sprint_rusage(rusage), pid); - assert(wait4(-1, s, WNOHANG|WSTOPPED|__WALL, rusage) == -1); - tprintf("wait4(-1, %p, WNOHANG|WSTOPPED|__WALL, %p) = -1 %s (%m)\n", - s, rusage, errno2name()); + assert(k_wait4(-1, s, WNOHANG|WSTOPPED|__WALL, rusage) == -1); + tprintf("wait4(-1, %p, WNOHANG|WSTOPPED|__WALL, %p) = %s\n", + s, rusage, errstr); tprintf("%s\n", "+++ exited with 0 +++"); return 0; } + +#else + +SKIP_MAIN_UNDEFINED("__NR_wait4") + +#endif /* __NR_wait4 */ diff --git a/tests-m32/waitid.c b/tests-m32/waitid.c index f4e4a0a8..8716fa08 100644 --- a/tests-m32/waitid.c +++ b/tests-m32/waitid.c @@ -2,7 +2,7 @@ * Check decoding of waitid syscall. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -15,11 +15,11 @@ #include #include #include -#include -#include +#include "kernel_rusage.h" +#include "scno.h" static const char * -sprint_rusage(const struct rusage *const ru) +sprint_rusage(const kernel_rusage_t *const ru) { static char buf[1024]; snprintf(buf, sizeof(buf), @@ -103,8 +103,8 @@ sprint_siginfo(const siginfo_t *const si, const char *const status_text) snprintf(buf, sizeof(buf), "{si_signo=SIGCHLD" ", si_code=%s" - ", si_pid=%u" - ", si_uid=%u" + ", si_pid=%d" + ", si_uid=%d" ", si_status=%s" ", si_utime=%llu" ", si_stime=%llu}", @@ -128,7 +128,7 @@ do_waitid(const unsigned int idtype, const unsigned int id, const siginfo_t *const infop, const unsigned int options, - const struct rusage *const rusage) + const kernel_rusage_t *const rusage) { sigset_t mask = {}; sigaddset(&mask, SIGCHLD); @@ -169,7 +169,7 @@ main(void) TAIL_ALLOC_OBJECT_CONST_PTR(siginfo_t, sinfo); memset(sinfo, 0, sizeof(*sinfo)); - TAIL_ALLOC_OBJECT_CONST_PTR(struct rusage, rusage); + TAIL_ALLOC_OBJECT_CONST_PTR(kernel_rusage_t, rusage); if (do_waitid(P_PID, pid, sinfo, WNOHANG|WEXITED|WSTOPPED, rusage)) perror_msg_and_fail("waitid #2"); tprintf("waitid(P_PID, %d, {}, WNOHANG|WEXITED|WSTOPPED, %s) = 0\n", diff --git a/tests-m32/waitpid.c b/tests-m32/waitpid.c index 7069bec8..14f79402 100644 --- a/tests-m32/waitpid.c +++ b/tests-m32/waitpid.c @@ -2,13 +2,14 @@ * Check decoding of waitpid syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_waitpid diff --git a/tests-m32/xet_robust_list--pidns-translation.c b/tests-m32/xet_robust_list--pidns-translation.c new file mode 100644 index 00000000..e0477267 --- /dev/null +++ b/tests-m32/xet_robust_list--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "xet_robust_list.c" diff --git a/tests-m32/xet_robust_list--pidns-translation.gen.test b/tests-m32/xet_robust_list--pidns-translation.gen.test new file mode 100755 index 00000000..e660e10e --- /dev/null +++ b/tests-m32/xet_robust_list--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (xet_robust_list--pidns-translation test_pidns -a24 -e trace=get_robust_list,set_robust_list); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a24 -e trace=get_robust_list,set_robust_list diff --git a/tests-m32/xet_robust_list.c b/tests-m32/xet_robust_list.c index cf4f2234..04376bfb 100644 --- a/tests-m32/xet_robust_list.c +++ b/tests-m32/xet_robust_list.c @@ -1,13 +1,14 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #if defined __NR_get_robust_list && defined __NR_set_robust_list @@ -30,27 +31,36 @@ sprintaddr(void *addr) int main(void) { + PIDNS_TEST_INIT; + const pid_t pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); const long long_pid = (unsigned long) (0xdeadbeef00000000LL | pid); TAIL_ALLOC_OBJECT_CONST_PTR(void *, p_head); TAIL_ALLOC_OBJECT_CONST_PTR(size_t, p_len); if (syscall(__NR_get_robust_list, long_pid, p_head, p_len)) perror_msg_and_skip("get_robust_list"); - printf("get_robust_list(%d, [%s], [%lu]) = 0\n", - (int) pid, sprintaddr(*p_head), (unsigned long) *p_len); + pidns_print_leader(); + printf("get_robust_list(%d%s, [%s], [%lu]) = 0\n", + pid, pid_str, sprintaddr(*p_head), + (unsigned long) *p_len); void *head = tail_alloc(*p_len); if (syscall(__NR_set_robust_list, head, *p_len)) perror_msg_and_skip("set_robust_list"); + pidns_print_leader(); printf("set_robust_list(%p, %lu) = 0\n", head, (unsigned long) *p_len); if (syscall(__NR_get_robust_list, long_pid, p_head, p_len)) perror_msg_and_skip("get_robust_list"); - printf("get_robust_list(%d, [%s], [%lu]) = 0\n", - (int) pid, sprintaddr(*p_head), (unsigned long) *p_len); + pidns_print_leader(); + printf("get_robust_list(%d%s, [%s], [%lu]) = 0\n", + pid, pid_str, sprintaddr(*p_head), + (unsigned long) *p_len); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-m32/xet_thread_area_x86.c b/tests-m32/xet_thread_area_x86.c index a1efd319..bdc07883 100644 --- a/tests-m32/xet_thread_area_x86.c +++ b/tests-m32/xet_thread_area_x86.c @@ -2,7 +2,7 @@ * Check decoding of set_thread_area and get_thread_area syscalls on x86 * architecture. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined __NR_get_thread_area && defined __NR_set_thread_area \ && defined HAVE_STRUCT_USER_DESC diff --git a/tests-m32/xetitimer.c b/tests-m32/xetitimer.c index 8d758974..f3455e88 100644 --- a/tests-m32/xetitimer.c +++ b/tests-m32/xetitimer.c @@ -2,6 +2,7 @@ * Check decoding of setitimer and getitimer syscalls. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,12 +13,18 @@ #include #include #include -#include +#include "scno.h" +#include "kernel_timeval.h" + +typedef struct { + kernel_old_timeval_t it_interval; + kernel_old_timeval_t it_value; +} kernel_old_itimerval_t; int main(void) { - static const struct itimerval new = { + static const kernel_old_itimerval_t new = { .it_interval = { 0xc0de1, 0xc0de2 }, .it_value = { 0xc0de3, 0xc0de4 } }; @@ -26,12 +33,12 @@ main(void) static const kernel_ulong_t bogus_timer = (kernel_ulong_t) 0xfacefeeddeadbeefULL; - TAIL_ALLOC_OBJECT_CONST_PTR(struct itimerval, p_old); - struct itimerval *const p_new = tail_memdup(&new, sizeof(new)); + TAIL_ALLOC_OBJECT_CONST_PTR(kernel_old_itimerval_t, p_old); + kernel_old_itimerval_t *const p_new = tail_memdup(&new, sizeof(new)); void *const efault = tail_alloc(sizeof(new) - 8); long rc; - if (setitimer(ITIMER_REAL, p_new, NULL)) + if (syscall(__NR_setitimer, ITIMER_REAL, p_new, NULL)) perror_msg_and_skip("setitimer"); printf("setitimer(ITIMER_REAL" ", {it_interval={tv_sec=%lld, tv_usec=%llu}" @@ -43,7 +50,7 @@ main(void) zero_extend_signed_to_ull(new.it_value.tv_usec)); fill_memory(p_old, sizeof(*p_old)); - if (getitimer(ITIMER_REAL, p_old)) + if (syscall(__NR_getitimer, ITIMER_REAL, p_old)) perror_msg_and_skip("getitimer"); printf("getitimer(ITIMER_REAL" ", {it_interval={tv_sec=%lld, tv_usec=%llu}" @@ -54,7 +61,7 @@ main(void) zero_extend_signed_to_ull(p_old->it_value.tv_usec)); fill_memory(p_old, sizeof(*p_old)); - setitimer(ITIMER_REAL, p_new, p_old); + syscall(__NR_setitimer, ITIMER_REAL, p_new, p_old); printf("setitimer(ITIMER_REAL" ", {it_interval={tv_sec=%lld, tv_usec=%llu}" ", it_value={tv_sec=%lld, tv_usec=%llu}}" @@ -69,10 +76,10 @@ main(void) (long long) p_old->it_value.tv_sec, zero_extend_signed_to_ull(p_old->it_value.tv_usec)); - rc = getitimer(ITIMER_REAL, efault); + rc = syscall(__NR_getitimer, ITIMER_REAL, efault); printf("getitimer(ITIMER_REAL, %p) = %s\n", efault, sprintrc(rc)); - rc = setitimer(ITIMER_REAL, p_new, efault); + rc = syscall(__NR_setitimer, ITIMER_REAL, p_new, efault); printf("setitimer(ITIMER_REAL" ", {it_interval={tv_sec=%lld, tv_usec=%llu}" ", it_value={tv_sec=%lld, tv_usec=%llu}}, %p) = %s\n", @@ -82,7 +89,7 @@ main(void) zero_extend_signed_to_ull(new.it_value.tv_usec), efault, sprintrc(rc)); - rc = setitimer(ITIMER_REAL, efault, p_old); + rc = syscall(__NR_setitimer, ITIMER_REAL, efault, p_old); printf("setitimer(ITIMER_REAL, %p, %p) = %s\n", efault, p_old, sprintrc(rc)); @@ -146,10 +153,12 @@ main(void) p_new->it_interval.tv_sec = 0xdeadbeefU; p_new->it_interval.tv_usec = 0xfacefeedU; - p_new->it_value.tv_sec = (time_t) 0xcafef00ddeadbeefLL; - p_new->it_value.tv_usec = (suseconds_t) 0xbadc0dedfacefeedLL; + p_new->it_value.tv_sec = + (typeof(p_new->it_value.tv_sec)) 0xcafef00ddeadbeefLL; + p_new->it_value.tv_usec = + (typeof(p_new->it_value.tv_usec)) 0xbadc0dedfacefeedLL; - rc = setitimer(ITIMER_REAL, p_new, p_old); + rc = syscall(__NR_setitimer, ITIMER_REAL, p_new, p_old); printf("setitimer(ITIMER_REAL" ", {it_interval={tv_sec=%lld, tv_usec=%llu}" ", it_value={tv_sec=%lld, tv_usec=%llu}}, %p) = %s\n", diff --git a/tests-m32/xetpgid--pidns-translation.c b/tests-m32/xetpgid--pidns-translation.c new file mode 100644 index 00000000..b6469628 --- /dev/null +++ b/tests-m32/xetpgid--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "xetpgid.c" diff --git a/tests-m32/xetpgid--pidns-translation.gen.test b/tests-m32/xetpgid--pidns-translation.gen.test new file mode 100755 index 00000000..93c1ec3b --- /dev/null +++ b/tests-m32/xetpgid--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (xetpgid--pidns-translation test_pidns -a11 -e trace=getpgid,setpgid); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a11 -e trace=getpgid,setpgid diff --git a/tests-m32/xetpgid.c b/tests-m32/xetpgid.c index 46dd332d..94f9bc5e 100644 --- a/tests-m32/xetpgid.c +++ b/tests-m32/xetpgid.c @@ -2,14 +2,15 @@ * This file is part of xetpgid strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #if defined __NR_getpgid && defined __NR_setpgid @@ -19,13 +20,21 @@ int main(void) { - const int pid = getpid(); - long rc = syscall(__NR_getpgid, F8ILL_KULONG_MASK | pid); - printf("getpgid(%d) = %ld\n", pid, rc); - - rc = syscall(__NR_setpgid, F8ILL_KULONG_MASK, F8ILL_KULONG_MASK | pid); - printf("setpgid(0, %d) = %ld\n", pid, rc); + PIDNS_TEST_INIT; + const int pid = getpid(); + long pgid = syscall(__NR_getpgid, F8ILL_KULONG_MASK | pid); + pidns_print_leader(); + printf("getpgid(%d%s) = %ld%s\n", pid, pidns_pid2str(PT_TGID), + pgid, pidns_pid2str(PT_PGID)); + + long rc = syscall(__NR_setpgid, F8ILL_KULONG_MASK, + F8ILL_KULONG_MASK | pgid); + pidns_print_leader(); + printf("setpgid(0, %ld%s) = %s\n", pgid, pidns_pid2str(PT_PGID), + sprintrc(rc)); + + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-m32/xetpriority--pidns-translation.c b/tests-m32/xetpriority--pidns-translation.c new file mode 100644 index 00000000..c93669cb --- /dev/null +++ b/tests-m32/xetpriority--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "xetpriority.c" diff --git a/tests-m32/xetpriority--pidns-translation.gen.test b/tests-m32/xetpriority--pidns-translation.gen.test new file mode 100755 index 00000000..d221c7cb --- /dev/null +++ b/tests-m32/xetpriority--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (xetpriority--pidns-translation test_pidns -a27 -e trace=getpriority,setpriority); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a27 -e trace=getpriority,setpriority diff --git a/tests-m32/xetpriority.c b/tests-m32/xetpriority.c index 5cd97ea9..0832ea94 100644 --- a/tests-m32/xetpriority.c +++ b/tests-m32/xetpriority.c @@ -1,12 +1,13 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #if defined __NR_getpriority && defined __NR_setpriority @@ -17,15 +18,30 @@ int main(void) { + PIDNS_TEST_INIT; + const int pid = getpid(); + const int pgid = getpgid(0); + long rc = syscall(__NR_getpriority, PRIO_PROCESS, F8ILL_KULONG_MASK | pid); - printf("getpriority(PRIO_PROCESS, %d) = %ld\n", pid, rc); + pidns_print_leader(); + printf("getpriority(PRIO_PROCESS, %d%s) = %ld\n", + pid, pidns_pid2str(PT_TGID), rc); rc = syscall(__NR_setpriority, PRIO_PROCESS, F8ILL_KULONG_MASK | pid, F8ILL_KULONG_MASK); - printf("setpriority(PRIO_PROCESS, %d, 0) = %s\n", pid, sprintrc(rc)); + pidns_print_leader(); + printf("setpriority(PRIO_PROCESS, %d%s, 0) = %s\n", + pid, pidns_pid2str(PT_TGID), sprintrc(rc)); + + rc = syscall(__NR_getpriority, PRIO_PGRP, + F8ILL_KULONG_MASK | pgid); + pidns_print_leader(); + printf("getpriority(PRIO_PGRP, %d%s) = %ld\n", + pgid, pidns_pid2str(PT_PGID), rc); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-m32/xetpriority.gen.test b/tests-m32/xetpriority.gen.test index 4b955247..485c1071 100755 --- a/tests-m32/xetpriority.gen.test +++ b/tests-m32/xetpriority.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (xetpriority -a29 -e trace=getpriority,setpriority); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (xetpriority -a27 -e trace=getpriority,setpriority); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a29 -e trace=getpriority,setpriority +run_strace_match_diff -a27 -e trace=getpriority,setpriority diff --git a/tests-m32/xettimeofday.c b/tests-m32/xettimeofday.c index 9c811262..eca3959b 100644 --- a/tests-m32/xettimeofday.c +++ b/tests-m32/xettimeofday.c @@ -1,18 +1,22 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include -#include -#include -#include -#include +#include "scno.h" + +#ifdef __NR_gettimeofday + +# include +# include +# include +# include +# include +# include "scno.h" int main(void) @@ -64,3 +68,9 @@ main(void) puts("+++ exited with 0 +++"); return 0; } + +#else + +SKIP_MAIN_UNDEFINED("__NR_gettimeofday") + +#endif /* __NR_gettimeofday */ diff --git a/tests-m32/xgetdents.c b/tests-m32/xgetdents.c new file mode 100644 index 00000000..c550625e --- /dev/null +++ b/tests-m32/xgetdents.c @@ -0,0 +1,141 @@ +/* + * Check decoding of getdents and getdents64 syscalls. + * + * Copyright (c) 2015-2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include +#include +#include +#include +#include +#include "kernel_dirent.h" +#include "print_fields.h" + +#if VERBOSE +static const char * +str_d_type(const unsigned char d_type) +{ + switch (d_type) { + case DT_DIR: + return "DT_DIR"; + case DT_REG: + return "DT_REG"; + default: + return "DT_UNKNOWN"; + } +} + +static void +print_dirent(const kernel_dirent_type *d); +#endif + +static const char *errstr; + +static long +k_getdents(const unsigned int fd, + const void *dirp, + const unsigned int count) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | fd; + const kernel_ulong_t arg2 = (uintptr_t) dirp; + const kernel_ulong_t arg3 = fill | count; + const long rc = syscall(NR_getdents, arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +static void +ls(int fd, char *buf, unsigned int size) +{ + long rc; + while ((rc = k_getdents(fd, buf, size))) { + if (rc < 0) + perror_msg_and_skip(STR_getdents); + printf("%s(%d, ", STR_getdents, fd); +#if VERBOSE + printf("["); +#else + unsigned long entries = 0; +#endif + kernel_dirent_type *d; + for (long i = 0; i < rc; i += d->d_reclen) { + d = (kernel_dirent_type *) &buf[i]; +#if VERBOSE + if (i) + printf(", "); + print_dirent(d); +#else + ++entries; +#endif + } +#if VERBOSE + printf("]"); +#else + printf("%p /* %lu entries */", buf, entries); +#endif + printf(", %u) = %ld\n", size, rc); + } +#if VERBOSE + printf("%s(%d, [], %u) = 0\n", STR_getdents, fd, size); +#else + printf("%s(%d, %p /* 0 entries */, %u) = 0\n", + STR_getdents, fd, buf, size); +#endif +} + +int +main(void) +{ + static const char dot[] = "."; + static const char dot_dot[] = ".."; + static const char dname[] = STR_getdents +#if VERBOSE + "-v" +#endif + ".test.tmp.dir"; + static const char fname[] = + "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" + "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" + "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" + "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" + "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" + "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" + "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" + "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nZ"; + + if (mkdir(dname, 0700)) + perror_msg_and_fail("mkdir: %s", dname); + if (chdir(dname)) + perror_msg_and_fail("chdir: %s", dname); + int fd = creat(fname, 0600); + if (fd < 0) + perror_msg_and_fail("creat: %s", fname); + if (close(fd)) + perror_msg_and_fail("close: %s", fname); + fd = open(dot, O_RDONLY | O_DIRECTORY); + if (fd < 0) + perror_msg_and_fail("open: %s", dot); + + unsigned int count = 0xdeadbeefU; + k_getdents(-1U, NULL, count); + printf("%s(-1, NULL, %u) = %s\n", STR_getdents, count, errstr); + + static char buf[8192]; + ls(fd, buf, sizeof(buf)); + + if (unlink(fname)) + perror_msg_and_fail("unlink: %s", fname); + if (chdir(dot_dot)) + perror_msg_and_fail("chdir: %s", dot_dot); + if (rmdir(dname)) + perror_msg_and_fail("rmdir: %s", dname); + + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests-m32/xgetrlimit.c b/tests-m32/xgetrlimit.c index a1c89e9b..6a9c0538 100644 --- a/tests-m32/xgetrlimit.c +++ b/tests-m32/xgetrlimit.c @@ -77,9 +77,13 @@ int main(void) { kernel_ulong_t *const rlimit = tail_alloc(sizeof(*rlimit) * 2); - const struct xlat *xlat; + const struct xlat_data *xlat; + size_t i; + + for (xlat = resources->data, i = 0; i < resources->size; ++xlat, ++i) { + if (!xlat->str) + continue; - for (xlat = resources; xlat->str; ++xlat) { unsigned long res = 0xfacefeed00000000ULL | xlat->val; long rc = syscall(NR_GETRLIMIT, res, 0); if (rc && ENOSYS == errno) diff --git a/tests-m32/xmalloc_for_tests.c b/tests-m32/xmalloc_for_tests.c new file mode 100644 index 00000000..5c496adb --- /dev/null +++ b/tests-m32/xmalloc_for_tests.c @@ -0,0 +1,2 @@ +#define error_msg_and_die error_msg_and_fail +#include "xmalloc.c" diff --git a/tests-m32/xstatfsx.c b/tests-m32/xstatfsx.c index 1b91e844..8a86fdc3 100644 --- a/tests-m32/xstatfsx.c +++ b/tests-m32/xstatfsx.c @@ -34,10 +34,9 @@ static void print_statfs_type(const char *const prefix, const unsigned int magic) { fputs(prefix, stdout); - unsigned int i; - for (i = 0; i < ARRAY_SIZE(fsmagic); ++i) - if (magic == fsmagic[i].val) { - fputs(fsmagic[i].str, stdout); + for (unsigned int i = 0; i < fsmagic->size; ++i) + if (magic == fsmagic->data[i].val) { + fputs(fsmagic->data[i].str, stdout); return; } printf("%#x", magic); diff --git a/tests-m32/xstatx.c b/tests-m32/xstatx.c index 0d223bdc..aa9a0ae0 100644 --- a/tests-m32/xstatx.c +++ b/tests-m32/xstatx.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -46,6 +46,7 @@ typedef off_t libc_off_t; # define stat64 libc_stat64 # define statx libc_statx # define statx_timestamp libc_statx_timestamp +struct statx; # include # include # undef statx_timestamp @@ -460,19 +461,19 @@ main(void) SET_FLAGS_INVOKE(0xffffff, "AT_STATX_FORCE_SYNC|AT_STATX_DONT_SYNC|AT_SYMLINK_NOFOLLOW|" "AT_REMOVEDIR|AT_SYMLINK_FOLLOW|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|" - "0xff80ff"); + "AT_RECURSIVE|0xff00ff"); /* We're done playing with flags. */ TEST_SYSCALL_STATX_FLAGS = old_flags; TEST_SYSCALL_STATX_FLAGS_STR = old_flags_str; SET_MASK_INVOKE(0, "0"); - SET_MASK_INVOKE(0xfffff000U, "0xfffff000 /* STATX_??? */"); + SET_MASK_INVOKE(0xffffe000U, "0xffffe000 /* STATX_??? */"); SET_MASK_INVOKE(0xfffffffbU, "STATX_TYPE|STATX_MODE|STATX_UID|STATX_GID|STATX_ATIME|" "STATX_MTIME|STATX_CTIME|STATX_INO|STATX_SIZE|STATX_BLOCKS|" - "STATX_BTIME|0xfffff000"); + "STATX_BTIME|STATX_MNT_ID|0xffffe000"); SET_MASK_INVOKE(STATX_UID, "STATX_UID"); diff --git a/tests-m32/zeroargc.c b/tests-m32/zeroargc.c index 672959c4..3034e527 100644 --- a/tests-m32/zeroargc.c +++ b/tests-m32/zeroargc.c @@ -1,7 +1,8 @@ /* - * Execute an executable with zero argc and specified anvironment. + * Execute an executable with zero argc and specified environment. * * Copyright (c) 2017-2018 Dmitry V. Levin + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later diff --git a/tests-mx32/COPYING b/tests-mx32/COPYING index 6aba5919..059b0321 100644 --- a/tests-mx32/COPYING +++ b/tests-mx32/COPYING @@ -1,4 +1,4 @@ -Copyright (c) 2011-2019 The strace developers. +Copyright (c) 2011-2020 The strace developers. All rights reserved. strace test suite is free software; you can redistribute it and/or modify diff --git a/tests-mx32/Makefile.am b/tests-mx32/Makefile.am index 6ea036b5..ec6fd737 100644 --- a/tests-mx32/Makefile.am +++ b/tests-mx32/Makefile.am @@ -1,18 +1,19 @@ # Automake input for strace tests. # # Copyright (c) 2011-2016 Dmitry V. Levin -# Copyright (c) 2011-2019 The strace developers. +# Copyright (c) 2011-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later OS = linux +CC = @CC_FOR_MX32@ ARCH = @arch_mx32@ NATIVE_ARCH = @arch_native@ SIZEOF_KERNEL_LONG_T = @SIZEOF_KERNEL_LONG_T@ SIZEOF_LONG = 4 MPERS_NAME = mx32 -MPERS_CC_FLAGS = @cc_flags_mx32@ +MPERS_CC_FLAGS = @CFLAGS_FOR_MX32@ @cc_flags_mx32@ ARCH_MFLAGS = -DMPERS_IS_$(MPERS_NAME) $(MPERS_CC_FLAGS) AM_CFLAGS = $(WARN_CFLAGS) AM_CPPFLAGS = $(ARCH_MFLAGS) \ @@ -29,6 +30,7 @@ AM_LDFLAGS = $(ARCH_MFLAGS) libtests_a_SOURCES = \ create_nl_socket.c \ + create_tmpfile.c \ errno2name.c \ error_msg.c \ fill_memory.c \ @@ -40,15 +42,21 @@ libtests_a_SOURCES = \ inode_of_sockfd.c \ libmmsg.c \ libsocketcall.c \ + lock_file.c \ overflowuid.c \ + pidns.c \ + pidns.h \ pipe_maxfd.c \ print_quoted_string.c \ print_time.c \ printflags.c \ - printxval.c \ + printxval-Xabbrev.c \ + printxval-Xraw.c \ + printxval-Xverbose.c \ signal2name.c \ skip_unavailable.c \ sprintrc.c \ + status.c \ tail_alloc.c \ test_netlink.h \ test_nlattr.h \ @@ -58,6 +66,7 @@ libtests_a_SOURCES = \ test_ucopy.h \ tests.h \ tprintf.c \ + xmalloc_for_tests.c \ # end of libtests_a_SOURCES libtests_a_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 check_LIBRARIES = libtests.a @@ -73,49 +82,102 @@ check_PROGRAMS = $(PURE_EXECUTABLES) \ attach-p-cmd-cmd \ attach-p-cmd-p \ block_reset_raise_run \ + block_reset_run \ bpf-obj_get_info_by_fd \ bpf-obj_get_info_by_fd-prog \ bpf-obj_get_info_by_fd-prog-v \ bpf-obj_get_info_by_fd-v \ bpf-success \ + bpf-success-long-y \ bpf-success-v \ caps-abbrev \ check_sigblock \ check_sigign \ clone_parent \ + clone_parent--quiet-exit \ + clone_parent-q \ + clone_parent-qq \ clone_ptrace \ + clone_ptrace--quiet-attach \ + clone_ptrace--quiet-exit \ + clone_ptrace-q \ + clone_ptrace-qq \ + clone3-success \ + clone3-success-Xabbrev \ + clone3-success-Xraw \ + clone3-success-Xverbose \ count-f \ delay \ execve-v \ execveat-v \ + fcntl--pidns-translation \ + fcntl64--pidns-translation \ + filter_seccomp-flag \ + filter_seccomp-perf \ filter-unavailable \ fork-f \ + fork--pidns-translation \ fsync-y \ + get_process_reaper \ + getpgrp--pidns-translation \ getpid \ + getpid--pidns-translation \ getppid \ + getsid--pidns-translation \ gettid \ + gettid--pidns-translation \ inject-nf \ int_0x80 \ + ioctl_block--pidns-translation \ ioctl_dm-v \ ioctl_evdev-success \ + ioctl_evdev-success-Xabbrev \ + ioctl_evdev-success-Xraw \ + ioctl_evdev-success-Xverbose \ ioctl_evdev-success-v \ - ioctl_evdev-v \ + ioctl_evdev-success-v-Xabbrev \ + ioctl_evdev-success-v-Xraw \ + ioctl_evdev-success-v-Xverbose \ + ioctl_hdio-success \ + ioctl_hdio-success-Xabbrev \ + ioctl_hdio-success-Xraw \ + ioctl_hdio-success-Xverbose \ + ioctl_hdio-success-v \ + ioctl_hdio-success-v-Xabbrev \ + ioctl_hdio-success-v-Xraw \ + ioctl_hdio-success-v-Xverbose \ ioctl_loop-nv \ ioctl_loop-v \ ioctl_nsfs \ ioctl_perf-success \ ioctl_rtc-v \ + ioctl_v4l2-success \ + ioctl_v4l2-success-Xabbrev \ + ioctl_v4l2-success-Xraw \ + ioctl_v4l2-success-Xverbose \ + ioctl_v4l2-success-v \ + ioctl_v4l2-success-v-Xabbrev \ + ioctl_v4l2-success-v-Xraw \ + ioctl_v4l2-success-v-Xverbose \ + ioprio--pidns-translation \ is_linux_mips_n64 \ + kcmp-y--pidns-translation \ kill_child \ + kill--pidns-translation \ ksysent \ list_sigaction_signum \ localtime \ looping_threads \ + migrate_pages--pidns-translation \ mmsg-silent \ mmsg_name-v \ + move_pages--pidns-translation \ msg_control-v \ net-accept-connect \ + net-sockaddr--pidns-translation \ net-tpacket_stats-success \ + nlattr_ifla_xdp-y \ + netlink_audit--pidns-translation \ netlink_inet_diag \ netlink_netlink_diag \ netlink_unix_diag \ @@ -127,11 +189,20 @@ check_PROGRAMS = $(PURE_EXECUTABLES) \ pc \ perf_event_open_nonverbose \ perf_event_open_unabbrev \ + pidfd_open--pidns-translation \ + pidfd_send_signal--pidns-translation \ + pidns-cache \ + poll-P \ + ppoll-P \ ppoll-v \ + prlimit64--pidns-translation \ prctl-seccomp-filter-v \ prctl-seccomp-strict \ prctl-spec-inject \ print_maxfd \ + print_ppid_tracerpid \ + process_vm_readv--pidns-translation \ + process_vm_writev--pidns-translation \ qual_fault \ qual_inject-error-signal \ qual_inject-retval \ @@ -145,7 +216,13 @@ check_PROGRAMS = $(PURE_EXECUTABLES) \ quotactl-xfs-v \ redirect-fds \ restart_syscall \ + rt_sigqueueinfo--pidns-translation \ + rt_tgsigqueueinfo--pidns-translation \ run_expect_termsig \ + sched_xetaffinity--pidns-translation \ + sched_xetattr--pidns-translation \ + sched_xetparam--pidns-translation \ + sched_xetscheduler--pidns-translation \ scm_rights \ seccomp-filter-v \ seccomp-strict \ @@ -153,17 +230,35 @@ check_PROGRAMS = $(PURE_EXECUTABLES) \ set_ptracer_any \ set_sigblock \ set_sigign \ + setpgrp-exec \ signal_receive \ + signal_receive--pidns-translation \ sleep \ stack-fcall \ + stack-fcall-attach \ stack-fcall-mangled \ + status-none-threads \ + status-unfinished-threads \ + so_peercred--pidns-translation \ + syslog-success \ + tgkill--pidns-translation \ threads-execve \ + threads-execve--quiet-thread-execve \ + threads-execve-q \ + threads-execve-qq \ + threads-execve-qqq \ + tkill--pidns-translation \ + tracer_ppid_pgid_sid \ + trie_test \ unblock_reset_raise \ unix-pair-send-recv \ unix-pair-sendto-recvfrom \ vfork-f \ wait4-v \ waitid-v \ + xetpgid--pidns-translation \ + xetpriority--pidns-translation \ + xet_robust_list--pidns-translation \ zeroargc \ # end of check_PROGRAMS @@ -177,6 +272,8 @@ ftruncate64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 localtime_LDADD = $(clock_LIBS) $(LDADD) looping_threads_LDADD = -lpthread $(LDADD) lstat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 +maybe_switch_current_tcp_LDADD = -lpthread $(LDADD) +maybe_switch_current_tcp__quiet_thread_execve_LDADD = -lpthread $(LDADD) mmap64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 mmap64_Xabbrev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 mmap64_Xraw_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 @@ -190,7 +287,13 @@ preadv_pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 stat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 statfs_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 +status_none_threads_LDADD = -lpthread $(LDADD) +status_unfinished_threads_LDADD = -lpthread $(LDADD) threads_execve_LDADD = -lpthread $(clock_LIBS) $(LDADD) +threads_execve__quiet_thread_execve_LDADD = -lpthread $(clock_LIBS) $(LDADD) +threads_execve_q_LDADD = -lpthread $(clock_LIBS) $(LDADD) +threads_execve_qq_LDADD = -lpthread $(clock_LIBS) $(LDADD) +threads_execve_qqq_LDADD = -lpthread $(clock_LIBS) $(LDADD) times_LDADD = $(clock_LIBS) $(LDADD) truncate64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 uio_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 @@ -198,14 +301,22 @@ uio_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 stack_fcall_SOURCES = stack-fcall.c \ stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c +stack_fcall_attach_SOURCES = stack-fcall-attach.c \ + stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c + stack_fcall_mangled_SOURCES = stack-fcall-mangled.c \ stack-fcall-mangled-0.c stack-fcall-mangled-1.c \ stack-fcall-mangled-2.c stack-fcall-mangled-3.c +trie_test_SOURCES = trie_test.c trie_for_tests.c +trie_test_CPPFLAGS = $(AM_CPPFLAGS) $(CODE_COVERAGE_CPPFLAGS) +trie_test_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS) +trie_test_LDADD = $(LDADD) $(CODE_COVERAGE_LIBS) + include gen_tests.am if ENABLE_STACKTRACE -STACKTRACE_TESTS = strace-k.test +STACKTRACE_TESTS = strace-k.test strace-k-p.test if USE_DEMANGLE STACKTRACE_TESTS += strace-k-demangle.test endif @@ -214,6 +325,7 @@ STACKTRACE_TESTS = endif DECODER_TESTS = \ + bpf-success-long-y.test \ bpf-success-v.test \ bpf-success.test \ brk.test \ @@ -226,17 +338,21 @@ DECODER_TESTS = \ btrfs-wX.test \ caps-abbrev.test \ caps.test \ + clone-flags.test \ + clone3-success.test \ eventfd.test \ execve-v.test \ execve.test \ fadvise64.test \ + faccessat.test \ + faccessat2.test \ futex.test \ getuid.test \ int_0x80.test \ + inotify_init-y.test \ ioctl.test \ - ioctl_evdev-success-v.test \ + ioctl_block--pidns-translation.test \ ioctl_evdev-success.test \ - ioctl_perf-success.test \ ipc_msgbuf.test \ kern_features-fault.test \ llseek.test \ @@ -278,6 +394,7 @@ DECODER_TESTS = \ seccomp-strict.test \ sigaltstack.test \ sun_path.test \ + syslog-success.test \ uio.test \ umount.test \ umount2.test \ @@ -293,7 +410,6 @@ MISC_TESTS = \ attach-f-p.test \ attach-p-cmd.test \ bexecve.test \ - clone_parent.test \ clone_ptrace.test \ count-f.test \ count.test \ @@ -302,20 +418,24 @@ MISC_TESTS = \ detach-sleeping.test \ detach-stopped.test \ fflush.test \ + filter_seccomp-perf.test \ filter-unavailable.test \ filtering_fd-syntax.test \ filtering_syscall-syntax.test \ first_exec_failure.test \ + fork--pidns-translation.test \ get_regs.test \ + gettid--pidns-translation.test \ inject-nf.test \ interactive_block.test \ kill_child.test \ - ksysent.test \ localtime.test \ looping_threads.test \ + netlink_audit--pidns-translation.test \ opipe.test \ options-syntax.test \ pc.test \ + pidns-cache.test \ printpath-umovestr-legacy.test \ printstrn-umoven-legacy.test \ qual_fault-syntax.test \ @@ -335,8 +455,16 @@ MISC_TESTS = \ restart_syscall.test \ sigblock.test \ sigign.test \ + status-detached.test \ + status-none-threads.test \ + status-unfinished-threads.test \ strace-C.test \ + strace-D.test \ + strace-DD.test \ + strace-DDD.test \ strace-E.test \ + strace-E-override.test \ + strace-E-unset.test \ strace-S.test \ strace-T.test \ strace-V.test \ @@ -349,6 +477,7 @@ MISC_TESTS = \ strace-ttt.test \ termsig.test \ threads-execve.test \ + umovestr_cached.test \ # end of MISC_TESTS TESTS = $(GEN_TESTS) $(DECODER_TESTS) $(MISC_TESTS) $(STACKTRACE_TESTS) @@ -381,7 +510,10 @@ EXTRA_DIST = \ eventfd.expected \ fadvise.h \ fcntl-common.c \ + filter_seccomp.in \ + filter_seccomp.sh \ filter-unavailable.expected \ + fork--pidns-translation.awk \ fstatat.c \ fstatx.c \ gen_pure_executables.sh \ @@ -390,17 +522,20 @@ EXTRA_DIST = \ getresugid.c \ init.sh \ init_delete_module.h \ + ioctl-success.sh \ ioctl_kvm_run_common.c \ ipc.sh \ + kernel_old_timespec.h \ + kernel_old_timex.h \ ksysent.sed \ lstatx.c \ match.awk \ net.expected \ - netlink_sock_diag-v.sh \ nlattr_ifla.h \ pipe.expected \ print_user_desc.c \ printsignal.c \ + printxval.c \ process_vm_readv_writev.c \ pure_executables.list \ qual_fault-exit_group.expected \ @@ -414,6 +549,7 @@ EXTRA_DIST = \ run.sh \ sched.in \ scno_tampering.sh \ + semop-common.c \ setfsugid.c \ setresugid.c \ setreugid.c \ @@ -422,18 +558,37 @@ EXTRA_DIST = \ sockaddr_xlat.c \ sockname.c \ stack-fcall.h \ + status-detached.expected \ + strace--follow-forks-output-separately.expected \ + strace--relative-timestamps.expected \ + strace--relative-timestamps-s.expected \ + strace--relative-timestamps-ms.expected \ + strace--relative-timestamps-us.expected \ + strace--relative-timestamps-ns.expected \ + strace--syscall-times.expected \ + strace--syscall-times-s.expected \ + strace--syscall-times-ms.expected \ + strace--syscall-times-us.expected \ + strace--syscall-times-ns.expected \ strace-C.expected \ + strace-D.expected \ + strace-DDD.expected \ strace-E.expected \ + strace-E-unset.expected \ strace-T.expected \ strace-ff.expected \ strace-k-demangle.expected \ strace-k-demangle.test \ + strace-k-p.expected \ + strace-k-p.test \ strace-k.expected \ strace-k.test \ strace-r.expected \ strace.supp \ sun_path.expected \ syntax.sh \ + trace_clock.in \ + trace_creds.in \ trace_fstat.in \ trace_fstatfs.in \ trace_lstat.in \ @@ -454,6 +609,7 @@ EXTRA_DIST = \ unix-pair-send-recv.expected \ unix-pair-sendto-recvfrom.expected \ xchownx.c \ + xgetdents.c \ xgetrlimit.c \ xselect.c \ xstatfs.c \ diff --git a/tests-mx32/Makefile.in b/tests-mx32/Makefile.in index c2557caa..db089675 100644 --- a/tests-mx32/Makefile.in +++ b/tests-mx32/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. +# Makefile.in generated by automake 1.16.2 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2018 Free Software Foundation, Inc. +# Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -17,7 +17,7 @@ # Automake input for strace tests. # # Copyright (c) 2011-2016 Dmitry V. Levin -# Copyright (c) 2011-2019 The strace developers. +# Copyright (c) 2011-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -105,59 +105,173 @@ host_triplet = @host@ check_PROGRAMS = $(am__EXEEXT_1) _newselect-P$(EXEEXT) answer$(EXEEXT) \ attach-f-p$(EXEEXT) attach-f-p-cmd$(EXEEXT) \ attach-p-cmd-cmd$(EXEEXT) attach-p-cmd-p$(EXEEXT) \ - block_reset_raise_run$(EXEEXT) bpf-obj_get_info_by_fd$(EXEEXT) \ + block_reset_raise_run$(EXEEXT) block_reset_run$(EXEEXT) \ + bpf-obj_get_info_by_fd$(EXEEXT) \ bpf-obj_get_info_by_fd-prog$(EXEEXT) \ bpf-obj_get_info_by_fd-prog-v$(EXEEXT) \ bpf-obj_get_info_by_fd-v$(EXEEXT) bpf-success$(EXEEXT) \ - bpf-success-v$(EXEEXT) caps-abbrev$(EXEEXT) \ - check_sigblock$(EXEEXT) check_sigign$(EXEEXT) \ - clone_parent$(EXEEXT) clone_ptrace$(EXEEXT) count-f$(EXEEXT) \ + bpf-success-long-y$(EXEEXT) bpf-success-v$(EXEEXT) \ + caps-abbrev$(EXEEXT) check_sigblock$(EXEEXT) \ + check_sigign$(EXEEXT) clone_parent$(EXEEXT) \ + clone_parent--quiet-exit$(EXEEXT) clone_parent-q$(EXEEXT) \ + clone_parent-qq$(EXEEXT) clone_ptrace$(EXEEXT) \ + clone_ptrace--quiet-attach$(EXEEXT) \ + clone_ptrace--quiet-exit$(EXEEXT) clone_ptrace-q$(EXEEXT) \ + clone_ptrace-qq$(EXEEXT) clone3-success$(EXEEXT) \ + clone3-success-Xabbrev$(EXEEXT) clone3-success-Xraw$(EXEEXT) \ + clone3-success-Xverbose$(EXEEXT) count-f$(EXEEXT) \ delay$(EXEEXT) execve-v$(EXEEXT) execveat-v$(EXEEXT) \ - filter-unavailable$(EXEEXT) fork-f$(EXEEXT) fsync-y$(EXEEXT) \ - getpid$(EXEEXT) getppid$(EXEEXT) gettid$(EXEEXT) \ - inject-nf$(EXEEXT) int_0x80$(EXEEXT) ioctl_dm-v$(EXEEXT) \ - ioctl_evdev-success$(EXEEXT) ioctl_evdev-success-v$(EXEEXT) \ - ioctl_evdev-v$(EXEEXT) ioctl_loop-nv$(EXEEXT) \ + fcntl--pidns-translation$(EXEEXT) \ + fcntl64--pidns-translation$(EXEEXT) \ + filter_seccomp-flag$(EXEEXT) filter_seccomp-perf$(EXEEXT) \ + filter-unavailable$(EXEEXT) fork-f$(EXEEXT) \ + fork--pidns-translation$(EXEEXT) fsync-y$(EXEEXT) \ + get_process_reaper$(EXEEXT) \ + getpgrp--pidns-translation$(EXEEXT) getpid$(EXEEXT) \ + getpid--pidns-translation$(EXEEXT) getppid$(EXEEXT) \ + getsid--pidns-translation$(EXEEXT) gettid$(EXEEXT) \ + gettid--pidns-translation$(EXEEXT) inject-nf$(EXEEXT) \ + int_0x80$(EXEEXT) ioctl_block--pidns-translation$(EXEEXT) \ + ioctl_dm-v$(EXEEXT) ioctl_evdev-success$(EXEEXT) \ + ioctl_evdev-success-Xabbrev$(EXEEXT) \ + ioctl_evdev-success-Xraw$(EXEEXT) \ + ioctl_evdev-success-Xverbose$(EXEEXT) \ + ioctl_evdev-success-v$(EXEEXT) \ + ioctl_evdev-success-v-Xabbrev$(EXEEXT) \ + ioctl_evdev-success-v-Xraw$(EXEEXT) \ + ioctl_evdev-success-v-Xverbose$(EXEEXT) \ + ioctl_hdio-success$(EXEEXT) \ + ioctl_hdio-success-Xabbrev$(EXEEXT) \ + ioctl_hdio-success-Xraw$(EXEEXT) \ + ioctl_hdio-success-Xverbose$(EXEEXT) \ + ioctl_hdio-success-v$(EXEEXT) \ + ioctl_hdio-success-v-Xabbrev$(EXEEXT) \ + ioctl_hdio-success-v-Xraw$(EXEEXT) \ + ioctl_hdio-success-v-Xverbose$(EXEEXT) ioctl_loop-nv$(EXEEXT) \ ioctl_loop-v$(EXEEXT) ioctl_nsfs$(EXEEXT) \ ioctl_perf-success$(EXEEXT) ioctl_rtc-v$(EXEEXT) \ - is_linux_mips_n64$(EXEEXT) kill_child$(EXEEXT) \ - ksysent$(EXEEXT) list_sigaction_signum$(EXEEXT) \ - localtime$(EXEEXT) looping_threads$(EXEEXT) \ - mmsg-silent$(EXEEXT) mmsg_name-v$(EXEEXT) \ + ioctl_v4l2-success$(EXEEXT) \ + ioctl_v4l2-success-Xabbrev$(EXEEXT) \ + ioctl_v4l2-success-Xraw$(EXEEXT) \ + ioctl_v4l2-success-Xverbose$(EXEEXT) \ + ioctl_v4l2-success-v$(EXEEXT) \ + ioctl_v4l2-success-v-Xabbrev$(EXEEXT) \ + ioctl_v4l2-success-v-Xraw$(EXEEXT) \ + ioctl_v4l2-success-v-Xverbose$(EXEEXT) \ + ioprio--pidns-translation$(EXEEXT) is_linux_mips_n64$(EXEEXT) \ + kcmp-y--pidns-translation$(EXEEXT) kill_child$(EXEEXT) \ + kill--pidns-translation$(EXEEXT) ksysent$(EXEEXT) \ + list_sigaction_signum$(EXEEXT) localtime$(EXEEXT) \ + looping_threads$(EXEEXT) \ + migrate_pages--pidns-translation$(EXEEXT) mmsg-silent$(EXEEXT) \ + mmsg_name-v$(EXEEXT) move_pages--pidns-translation$(EXEEXT) \ msg_control-v$(EXEEXT) net-accept-connect$(EXEEXT) \ - net-tpacket_stats-success$(EXEEXT) netlink_inet_diag$(EXEEXT) \ - netlink_netlink_diag$(EXEEXT) netlink_unix_diag$(EXEEXT) \ - nsyscalls$(EXEEXT) nsyscalls-d$(EXEEXT) oldselect-P$(EXEEXT) \ + net-sockaddr--pidns-translation$(EXEEXT) \ + net-tpacket_stats-success$(EXEEXT) nlattr_ifla_xdp-y$(EXEEXT) \ + netlink_audit--pidns-translation$(EXEEXT) \ + netlink_inet_diag$(EXEEXT) netlink_netlink_diag$(EXEEXT) \ + netlink_unix_diag$(EXEEXT) nsyscalls$(EXEEXT) \ + nsyscalls-d$(EXEEXT) oldselect-P$(EXEEXT) \ oldselect-efault-P$(EXEEXT) orphaned_process_group$(EXEEXT) \ pc$(EXEEXT) perf_event_open_nonverbose$(EXEEXT) \ - perf_event_open_unabbrev$(EXEEXT) ppoll-v$(EXEEXT) \ + perf_event_open_unabbrev$(EXEEXT) \ + pidfd_open--pidns-translation$(EXEEXT) \ + pidfd_send_signal--pidns-translation$(EXEEXT) \ + pidns-cache$(EXEEXT) poll-P$(EXEEXT) ppoll-P$(EXEEXT) \ + ppoll-v$(EXEEXT) prlimit64--pidns-translation$(EXEEXT) \ prctl-seccomp-filter-v$(EXEEXT) prctl-seccomp-strict$(EXEEXT) \ prctl-spec-inject$(EXEEXT) print_maxfd$(EXEEXT) \ + print_ppid_tracerpid$(EXEEXT) \ + process_vm_readv--pidns-translation$(EXEEXT) \ + process_vm_writev--pidns-translation$(EXEEXT) \ qual_fault$(EXEEXT) qual_inject-error-signal$(EXEEXT) \ qual_inject-retval$(EXEEXT) qual_inject-signal$(EXEEXT) \ qual_signal$(EXEEXT) quotactl-success$(EXEEXT) \ quotactl-success-v$(EXEEXT) quotactl-v$(EXEEXT) \ quotactl-xfs-success$(EXEEXT) quotactl-xfs-success-v$(EXEEXT) \ quotactl-xfs-v$(EXEEXT) redirect-fds$(EXEEXT) \ - restart_syscall$(EXEEXT) run_expect_termsig$(EXEEXT) \ + restart_syscall$(EXEEXT) \ + rt_sigqueueinfo--pidns-translation$(EXEEXT) \ + rt_tgsigqueueinfo--pidns-translation$(EXEEXT) \ + run_expect_termsig$(EXEEXT) \ + sched_xetaffinity--pidns-translation$(EXEEXT) \ + sched_xetattr--pidns-translation$(EXEEXT) \ + sched_xetparam--pidns-translation$(EXEEXT) \ + sched_xetscheduler--pidns-translation$(EXEEXT) \ scm_rights$(EXEEXT) seccomp-filter-v$(EXEEXT) \ seccomp-strict$(EXEEXT) select-P$(EXEEXT) \ set_ptracer_any$(EXEEXT) set_sigblock$(EXEEXT) \ - set_sigign$(EXEEXT) signal_receive$(EXEEXT) sleep$(EXEEXT) \ - stack-fcall$(EXEEXT) stack-fcall-mangled$(EXEEXT) \ - threads-execve$(EXEEXT) unblock_reset_raise$(EXEEXT) \ - unix-pair-send-recv$(EXEEXT) \ + set_sigign$(EXEEXT) setpgrp-exec$(EXEEXT) \ + signal_receive$(EXEEXT) \ + signal_receive--pidns-translation$(EXEEXT) sleep$(EXEEXT) \ + stack-fcall$(EXEEXT) stack-fcall-attach$(EXEEXT) \ + stack-fcall-mangled$(EXEEXT) status-none-threads$(EXEEXT) \ + status-unfinished-threads$(EXEEXT) \ + so_peercred--pidns-translation$(EXEEXT) \ + syslog-success$(EXEEXT) tgkill--pidns-translation$(EXEEXT) \ + threads-execve$(EXEEXT) \ + threads-execve--quiet-thread-execve$(EXEEXT) \ + threads-execve-q$(EXEEXT) threads-execve-qq$(EXEEXT) \ + threads-execve-qqq$(EXEEXT) tkill--pidns-translation$(EXEEXT) \ + tracer_ppid_pgid_sid$(EXEEXT) trie_test$(EXEEXT) \ + unblock_reset_raise$(EXEEXT) unix-pair-send-recv$(EXEEXT) \ unix-pair-sendto-recvfrom$(EXEEXT) vfork-f$(EXEEXT) \ - wait4-v$(EXEEXT) waitid-v$(EXEEXT) zeroargc$(EXEEXT) + wait4-v$(EXEEXT) waitid-v$(EXEEXT) \ + xetpgid--pidns-translation$(EXEEXT) \ + xetpriority--pidns-translation$(EXEEXT) \ + xet_robust_list--pidns-translation$(EXEEXT) zeroargc$(EXEEXT) @ENABLE_STACKTRACE_TRUE@@USE_DEMANGLE_TRUE@am__append_1 = strace-k-demangle.test TESTS = $(GEN_TESTS) $(DECODER_TESTS) $(MISC_TESTS) $(am__EXEEXT_2) subdir = tests-mx32 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ax_code_coverage.m4 \ +am__aclocal_m4_deps = $(top_srcdir)/xlat/btrfs_compress_types.m4 \ + $(top_srcdir)/xlat/close_range_flags.m4 \ + $(top_srcdir)/xlat/loop_flags_options.m4 \ + $(top_srcdir)/xlat/rtnl_ifla_xdp_attached_mode.m4 \ + $(top_srcdir)/xlat/rtnl_ifla_xdp_attrs.m4 \ + $(top_srcdir)/xlat/rtnl_link_attrs.m4 \ + $(top_srcdir)/xlat/rtnl_tc_action_attrs.m4 \ + $(top_srcdir)/xlat/rtnl_tca_stab_attrs.m4 \ + $(top_srcdir)/xlat/rtnl_tca_stats_attrs.m4 \ + $(top_srcdir)/xlat/st_check_enums.m4 \ + $(top_srcdir)/xlat/sysctl_kern.m4 \ + $(top_srcdir)/xlat/sysctl_net.m4 \ + $(top_srcdir)/xlat/sysctl_net_core.m4 \ + $(top_srcdir)/xlat/sysctl_net_ipv4.m4 \ + $(top_srcdir)/xlat/sysctl_net_ipv4_conf.m4 \ + $(top_srcdir)/xlat/sysctl_net_ipv4_route.m4 \ + $(top_srcdir)/xlat/sysctl_net_ipv6.m4 \ + $(top_srcdir)/xlat/sysctl_net_ipv6_route.m4 \ + $(top_srcdir)/xlat/sysctl_net_unix.m4 \ + $(top_srcdir)/xlat/sysctl_root.m4 \ + $(top_srcdir)/xlat/sysctl_vm.m4 \ + $(top_srcdir)/xlat/v4l2_buf_types.m4 \ + $(top_srcdir)/xlat/v4l2_colorspaces.m4 \ + $(top_srcdir)/xlat/v4l2_control_types.m4 \ + $(top_srcdir)/xlat/v4l2_fields.m4 \ + $(top_srcdir)/xlat/v4l2_framesize_types.m4 \ + $(top_srcdir)/xlat/v4l2_memories.m4 \ + $(top_srcdir)/xlat/v4l2_tuner_types.m4 \ + $(top_srcdir)/xlat/waitid_types.m4 \ + $(top_srcdir)/types/check-btrfs.m4 \ + $(top_srcdir)/types/check-cryptouser.m4 \ + $(top_srcdir)/types/check-evdev.m4 \ + $(top_srcdir)/types/check-io_uring.m4 \ + $(top_srcdir)/types/check-loop.m4 \ + $(top_srcdir)/types/check-openat2.m4 \ + $(top_srcdir)/types/check-rtnl_link.m4 \ + $(top_srcdir)/types/check-rtnl_mdb.m4 \ + $(top_srcdir)/types/check-rtnl_neightbl.m4 \ + $(top_srcdir)/types/check-rtnl_route.m4 \ + $(top_srcdir)/types/check-tee.m4 \ + $(top_srcdir)/types/check-v4l2.m4 \ + $(top_srcdir)/types/st_check_types.m4 \ + $(top_srcdir)/m4/ax_code_coverage.m4 \ $(top_srcdir)/m4/ax_prog_cc_for_build.m4 \ $(top_srcdir)/m4/ax_valgrind_check.m4 \ $(top_srcdir)/m4/bpf_attr.m4 $(top_srcdir)/m4/mpers.m4 \ - $(top_srcdir)/m4/st_demangle.m4 $(top_srcdir)/m4/st_libdw.m4 \ + $(top_srcdir)/m4/st_demangle.m4 \ + $(top_srcdir)/m4/st_esyscmd_s.m4 $(top_srcdir)/m4/st_libdw.m4 \ $(top_srcdir)/m4/st_libunwind.m4 \ $(top_srcdir)/m4/st_save_restore_var.m4 \ $(top_srcdir)/m4/st_stacktrace.m4 \ @@ -173,19 +287,27 @@ CONFIG_CLEAN_VPATH_FILES = am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \ access$(EXEEXT) acct$(EXEEXT) add_key$(EXEEXT) \ adjtimex$(EXEEXT) aio$(EXEEXT) aio_pgetevents$(EXEEXT) \ - alarm$(EXEEXT) bpf$(EXEEXT) bpf-obj_get_info_by_fd$(EXEEXT) \ - bpf-obj_get_info_by_fd-prog$(EXEEXT) \ - bpf-obj_get_info_by_fd-prog-v$(EXEEXT) \ - bpf-obj_get_info_by_fd-v$(EXEEXT) bpf-v$(EXEEXT) brk$(EXEEXT) \ + alarm$(EXEEXT) bpf$(EXEEXT) bpf-v$(EXEEXT) brk$(EXEEXT) \ btrfs$(EXEEXT) caps$(EXEEXT) chmod$(EXEEXT) chown$(EXEEXT) \ chown32$(EXEEXT) chroot$(EXEEXT) clock_adjtime$(EXEEXT) \ clock_nanosleep$(EXEEXT) clock_xettime$(EXEEXT) \ + clone-flags$(EXEEXT) clone3$(EXEEXT) clone3-Xabbrev$(EXEEXT) \ + clone3-Xraw$(EXEEXT) clone3-Xverbose$(EXEEXT) \ + close_range$(EXEEXT) close_range-P$(EXEEXT) \ + close_range-y$(EXEEXT) close_range-yy$(EXEEXT) \ copy_file_range$(EXEEXT) creat$(EXEEXT) delete_module$(EXEEXT) \ - dev-yy$(EXEEXT) dup$(EXEEXT) dup2$(EXEEXT) dup3$(EXEEXT) \ + dev--decode-fds-dev$(EXEEXT) dev--decode-fds-path$(EXEEXT) \ + dev--decode-fds-socket$(EXEEXT) dev-yy$(EXEEXT) dup$(EXEEXT) \ + dup-P$(EXEEXT) dup-y$(EXEEXT) dup-yy$(EXEEXT) dup2$(EXEEXT) \ + dup2-P$(EXEEXT) dup2-y$(EXEEXT) dup2-yy$(EXEEXT) dup3$(EXEEXT) \ + dup3-P$(EXEEXT) dup3-y$(EXEEXT) dup3-yy$(EXEEXT) \ epoll_create$(EXEEXT) epoll_create1$(EXEEXT) \ epoll_ctl$(EXEEXT) epoll_pwait$(EXEEXT) epoll_wait$(EXEEXT) \ erestartsys$(EXEEXT) eventfd$(EXEEXT) execve$(EXEEXT) \ - execveat$(EXEEXT) faccessat$(EXEEXT) fadvise64$(EXEEXT) \ + execveat$(EXEEXT) faccessat$(EXEEXT) faccessat-P$(EXEEXT) \ + faccessat-y$(EXEEXT) faccessat-yy$(EXEEXT) faccessat2$(EXEEXT) \ + faccessat2-P$(EXEEXT) faccessat2-y$(EXEEXT) \ + faccessat2-yy$(EXEEXT) fadvise64$(EXEEXT) \ fadvise64_64$(EXEEXT) fallocate$(EXEEXT) \ fanotify_init$(EXEEXT) fanotify_mark$(EXEEXT) \ fanotify_mark-Xabbrev$(EXEEXT) fanotify_mark-Xraw$(EXEEXT) \ @@ -194,37 +316,54 @@ am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \ fchown32$(EXEEXT) fchownat$(EXEEXT) fcntl$(EXEEXT) \ fcntl64$(EXEEXT) fdatasync$(EXEEXT) fflush$(EXEEXT) \ file_handle$(EXEEXT) file_ioctl$(EXEEXT) finit_module$(EXEEXT) \ - flock$(EXEEXT) fstat$(EXEEXT) fstat-Xabbrev$(EXEEXT) \ + flock$(EXEEXT) fsconfig$(EXEEXT) fsconfig-P$(EXEEXT) \ + fsmount$(EXEEXT) fsopen$(EXEEXT) fspick$(EXEEXT) \ + fspick-P$(EXEEXT) fstat$(EXEEXT) fstat-Xabbrev$(EXEEXT) \ fstat-Xraw$(EXEEXT) fstat-Xverbose$(EXEEXT) fstat64$(EXEEXT) \ fstat64-Xabbrev$(EXEEXT) fstat64-Xraw$(EXEEXT) \ fstat64-Xverbose$(EXEEXT) fstatat64$(EXEEXT) fstatfs$(EXEEXT) \ fstatfs64$(EXEEXT) fsync$(EXEEXT) ftruncate$(EXEEXT) \ ftruncate64$(EXEEXT) futex$(EXEEXT) futimesat$(EXEEXT) \ get_mempolicy$(EXEEXT) getcpu$(EXEEXT) getcwd$(EXEEXT) \ - getdents$(EXEEXT) getdents64$(EXEEXT) getegid$(EXEEXT) \ - getegid32$(EXEEXT) geteuid$(EXEEXT) geteuid32$(EXEEXT) \ - getgid$(EXEEXT) getgid32$(EXEEXT) getgroups$(EXEEXT) \ - getgroups32$(EXEEXT) getpeername$(EXEEXT) getpgrp$(EXEEXT) \ - getpid$(EXEEXT) getppid$(EXEEXT) getrandom$(EXEEXT) \ - getresgid$(EXEEXT) getresgid32$(EXEEXT) getresuid$(EXEEXT) \ - getresuid32$(EXEEXT) getrlimit$(EXEEXT) getrusage$(EXEEXT) \ - getsid$(EXEEXT) getsockname$(EXEEXT) getuid$(EXEEXT) \ - getuid32$(EXEEXT) getxxid$(EXEEXT) group_req$(EXEEXT) \ - inet-cmsg$(EXEEXT) init_module$(EXEEXT) inotify$(EXEEXT) \ - inotify_init1$(EXEEXT) io_uring_enter$(EXEEXT) \ - io_uring_register$(EXEEXT) io_uring_setup$(EXEEXT) \ - ioctl$(EXEEXT) ioctl_block$(EXEEXT) ioctl_dm$(EXEEXT) \ - ioctl_evdev$(EXEEXT) ioctl_inotify$(EXEEXT) \ + getdents$(EXEEXT) getdents-v$(EXEEXT) getdents64$(EXEEXT) \ + getdents64-v$(EXEEXT) getegid$(EXEEXT) getegid32$(EXEEXT) \ + geteuid$(EXEEXT) geteuid32$(EXEEXT) getgid$(EXEEXT) \ + getgid32$(EXEEXT) getgroups$(EXEEXT) getgroups32$(EXEEXT) \ + getpeername$(EXEEXT) getpgrp$(EXEEXT) getpid$(EXEEXT) \ + getppid$(EXEEXT) getrandom$(EXEEXT) getresgid$(EXEEXT) \ + getresgid32$(EXEEXT) getresuid$(EXEEXT) getresuid32$(EXEEXT) \ + getrlimit$(EXEEXT) getrusage$(EXEEXT) getsid$(EXEEXT) \ + getsockname$(EXEEXT) getuid$(EXEEXT) getuid32$(EXEEXT) \ + getxgid$(EXEEXT) getxpid$(EXEEXT) getxuid$(EXEEXT) \ + group_req$(EXEEXT) inet-cmsg$(EXEEXT) init_module$(EXEEXT) \ + inotify$(EXEEXT) inotify_init$(EXEEXT) inotify_init-y$(EXEEXT) \ + inotify_init1$(EXEEXT) inotify_init1-y$(EXEEXT) \ + io_uring_enter$(EXEEXT) io_uring_register$(EXEEXT) \ + io_uring_setup$(EXEEXT) ioctl$(EXEEXT) ioctl_block$(EXEEXT) \ + ioctl_dm$(EXEEXT) ioctl_evdev$(EXEEXT) \ + ioctl_evdev-Xabbrev$(EXEEXT) ioctl_evdev-Xraw$(EXEEXT) \ + ioctl_evdev-Xverbose$(EXEEXT) ioctl_evdev-v$(EXEEXT) \ + ioctl_evdev-v-Xabbrev$(EXEEXT) ioctl_evdev-v-Xraw$(EXEEXT) \ + ioctl_evdev-v-Xverbose$(EXEEXT) ioctl_hdio$(EXEEXT) \ + ioctl_hdio-Xabbrev$(EXEEXT) ioctl_hdio-Xraw$(EXEEXT) \ + ioctl_hdio-Xverbose$(EXEEXT) ioctl_hdio-v$(EXEEXT) \ + ioctl_hdio-v-Xabbrev$(EXEEXT) ioctl_hdio-v-Xraw$(EXEEXT) \ + ioctl_hdio-v-Xverbose$(EXEEXT) ioctl_inotify$(EXEEXT) \ ioctl_kvm_run$(EXEEXT) ioctl_kvm_run-v$(EXEEXT) \ ioctl_kvm_run_auxstr_vcpu$(EXEEXT) ioctl_loop$(EXEEXT) \ ioctl_mtd$(EXEEXT) ioctl_nbd$(EXEEXT) ioctl_perf$(EXEEXT) \ ioctl_ptp$(EXEEXT) ioctl_random$(EXEEXT) ioctl_rtc$(EXEEXT) \ ioctl_scsi$(EXEEXT) ioctl_sg_io_v3$(EXEEXT) \ ioctl_sg_io_v4$(EXEEXT) ioctl_sock_gifconf$(EXEEXT) \ - ioctl_uffdio$(EXEEXT) ioctl_v4l2$(EXEEXT) ioperm$(EXEEXT) \ - iopl$(EXEEXT) ioprio$(EXEEXT) ioprio-Xabbrev$(EXEEXT) \ - ioprio-Xraw$(EXEEXT) ioprio-Xverbose$(EXEEXT) ip_mreq$(EXEEXT) \ - ipc$(EXEEXT) ipc_msg$(EXEEXT) ipc_msg-Xabbrev$(EXEEXT) \ + ioctl_tee$(EXEEXT) ioctl_uffdio$(EXEEXT) ioctl_v4l2$(EXEEXT) \ + ioctl_v4l2-Xabbrev$(EXEEXT) ioctl_v4l2-Xraw$(EXEEXT) \ + ioctl_v4l2-Xverbose$(EXEEXT) ioctl_v4l2-v$(EXEEXT) \ + ioctl_v4l2-v-Xabbrev$(EXEEXT) ioctl_v4l2-v-Xraw$(EXEEXT) \ + ioctl_v4l2-v-Xverbose$(EXEEXT) ioctl_watchdog$(EXEEXT) \ + ioperm$(EXEEXT) iopl$(EXEEXT) ioprio$(EXEEXT) \ + ioprio-Xabbrev$(EXEEXT) ioprio-Xraw$(EXEEXT) \ + ioprio-Xverbose$(EXEEXT) ip_mreq$(EXEEXT) ipc$(EXEEXT) \ + ipc_msg$(EXEEXT) ipc_msg-Xabbrev$(EXEEXT) \ ipc_msg-Xraw$(EXEEXT) ipc_msg-Xverbose$(EXEEXT) \ ipc_msgbuf$(EXEEXT) ipc_msgbuf-Xabbrev$(EXEEXT) \ ipc_msgbuf-Xraw$(EXEEXT) ipc_msgbuf-Xverbose$(EXEEXT) \ @@ -240,7 +379,10 @@ am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \ lchown$(EXEEXT) lchown32$(EXEEXT) link$(EXEEXT) \ linkat$(EXEEXT) llseek$(EXEEXT) lookup_dcookie$(EXEEXT) \ lseek$(EXEEXT) lstat$(EXEEXT) lstat64$(EXEEXT) \ - madvise$(EXEEXT) mbind$(EXEEXT) membarrier$(EXEEXT) \ + madvise$(EXEEXT) maybe_switch_current_tcp$(EXEEXT) \ + maybe_switch_current_tcp--quiet-thread-execve$(EXEEXT) \ + mbind$(EXEEXT) mbind-Xabbrev$(EXEEXT) mbind-Xraw$(EXEEXT) \ + mbind-Xverbose$(EXEEXT) membarrier$(EXEEXT) \ memfd_create$(EXEEXT) memfd_create-Xabbrev$(EXEEXT) \ memfd_create-Xraw$(EXEEXT) memfd_create-Xverbose$(EXEEXT) \ migrate_pages$(EXEEXT) mincore$(EXEEXT) mkdir$(EXEEXT) \ @@ -251,14 +393,18 @@ am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \ mmap64-Xraw$(EXEEXT) mmap64-Xverbose$(EXEEXT) mmsg$(EXEEXT) \ mmsg_name$(EXEEXT) modify_ldt$(EXEEXT) mount$(EXEEXT) \ mount-Xabbrev$(EXEEXT) mount-Xraw$(EXEEXT) \ - mount-Xverbose$(EXEEXT) move_pages$(EXEEXT) \ + mount-Xverbose$(EXEEXT) move_mount$(EXEEXT) \ + move_mount-P$(EXEEXT) move_pages$(EXEEXT) \ move_pages-Xabbrev$(EXEEXT) move_pages-Xraw$(EXEEXT) \ move_pages-Xverbose$(EXEEXT) mq$(EXEEXT) mq_sendrecv$(EXEEXT) \ mq_sendrecv-read$(EXEEXT) mq_sendrecv-write$(EXEEXT) \ msg_control$(EXEEXT) msg_name$(EXEEXT) munlockall$(EXEEXT) \ - nanosleep$(EXEEXT) net-icmp_filter$(EXEEXT) \ - net-packet_mreq$(EXEEXT) net-packet_mreq-Xabbrev$(EXEEXT) \ - net-packet_mreq-Xraw$(EXEEXT) \ + nanosleep$(EXEEXT) net--decode-fds-dev-netlink$(EXEEXT) \ + net--decode-fds-none-netlink$(EXEEXT) \ + net--decode-fds-path-netlink$(EXEEXT) \ + net--decode-fds-socket-netlink$(EXEEXT) \ + net-icmp_filter$(EXEEXT) net-packet_mreq$(EXEEXT) \ + net-packet_mreq-Xabbrev$(EXEEXT) net-packet_mreq-Xraw$(EXEEXT) \ net-packet_mreq-Xverbose$(EXEEXT) net-sockaddr$(EXEEXT) \ net-tpacket_req$(EXEEXT) net-tpacket_stats$(EXEEXT) \ net-y-unix$(EXEEXT) net-yy-inet$(EXEEXT) net-yy-inet6$(EXEEXT) \ @@ -296,18 +442,28 @@ am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \ old_mmap-Xraw$(EXEEXT) old_mmap-Xverbose$(EXEEXT) \ old_mmap-v-none$(EXEEXT) oldfstat$(EXEEXT) oldlstat$(EXEEXT) \ oldselect$(EXEEXT) oldselect-efault$(EXEEXT) oldstat$(EXEEXT) \ - open$(EXEEXT) openat$(EXEEXT) osf_utimes$(EXEEXT) \ - pause$(EXEEXT) perf_event_open$(EXEEXT) personality$(EXEEXT) \ - personality-Xabbrev$(EXEEXT) personality-Xraw$(EXEEXT) \ - personality-Xverbose$(EXEEXT) pidfd_send_signal$(EXEEXT) \ - pipe$(EXEEXT) pipe2$(EXEEXT) pkey_alloc$(EXEEXT) \ - pkey_free$(EXEEXT) pkey_mprotect$(EXEEXT) poll$(EXEEXT) \ - poll-P$(EXEEXT) ppoll$(EXEEXT) ppoll-P$(EXEEXT) \ - prctl-arg2-intptr$(EXEEXT) prctl-dumpable$(EXEEXT) \ - prctl-name$(EXEEXT) prctl-no-args$(EXEEXT) \ - prctl-pdeathsig$(EXEEXT) prctl-securebits$(EXEEXT) \ - prctl-tid_address$(EXEEXT) prctl-tsc$(EXEEXT) \ - pread64-pwrite64$(EXEEXT) preadv$(EXEEXT) \ + open$(EXEEXT) open_tree$(EXEEXT) open_tree-P$(EXEEXT) \ + openat$(EXEEXT) openat2$(EXEEXT) openat2-Xabbrev$(EXEEXT) \ + openat2-Xraw$(EXEEXT) openat2-Xverbose$(EXEEXT) \ + openat2-v$(EXEEXT) openat2-v-y$(EXEEXT) \ + openat2-v-y-Xabbrev$(EXEEXT) openat2-v-y-Xraw$(EXEEXT) \ + openat2-v-y-Xverbose$(EXEEXT) openat2-y$(EXEEXT) \ + osf_utimes$(EXEEXT) pause$(EXEEXT) perf_event_open$(EXEEXT) \ + personality$(EXEEXT) personality-Xabbrev$(EXEEXT) \ + personality-Xraw$(EXEEXT) personality-Xverbose$(EXEEXT) \ + pidfd_getfd$(EXEEXT) pidfd_getfd-y$(EXEEXT) \ + pidfd_getfd-yy$(EXEEXT) pidfd_open$(EXEEXT) \ + pidfd_open--decode-fd-path$(EXEEXT) \ + pidfd_open--decode-fd-pidfd$(EXEEXT) \ + pidfd_open--decode-fd-socket$(EXEEXT) pidfd_open-P$(EXEEXT) \ + pidfd_open-y$(EXEEXT) pidfd_open-yy$(EXEEXT) \ + pidfd_send_signal$(EXEEXT) pipe$(EXEEXT) pipe2$(EXEEXT) \ + pkey_alloc$(EXEEXT) pkey_free$(EXEEXT) pkey_mprotect$(EXEEXT) \ + poll$(EXEEXT) ppoll$(EXEEXT) prctl-arg2-intptr$(EXEEXT) \ + prctl-dumpable$(EXEEXT) prctl-name$(EXEEXT) \ + prctl-no-args$(EXEEXT) prctl-pdeathsig$(EXEEXT) \ + prctl-securebits$(EXEEXT) prctl-tid_address$(EXEEXT) \ + prctl-tsc$(EXEEXT) pread64-pwrite64$(EXEEXT) preadv$(EXEEXT) \ preadv-pwritev$(EXEEXT) preadv2-pwritev2$(EXEEXT) \ printpath-umovestr$(EXEEXT) \ printpath-umovestr-peekdata$(EXEEXT) \ @@ -322,7 +478,8 @@ am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \ quotactl-Xraw$(EXEEXT) quotactl-Xverbose$(EXEEXT) \ quotactl-xfs$(EXEEXT) read-write$(EXEEXT) readahead$(EXEEXT) \ readdir$(EXEEXT) readlink$(EXEEXT) readlinkat$(EXEEXT) \ - readv$(EXEEXT) reboot$(EXEEXT) recvfrom$(EXEEXT) \ + readv$(EXEEXT) reboot$(EXEEXT) recv-MSG_TRUNC$(EXEEXT) \ + recvfrom$(EXEEXT) recvfrom-MSG_TRUNC$(EXEEXT) \ recvmmsg-timeout$(EXEEXT) recvmsg$(EXEEXT) \ remap_file_pages$(EXEEXT) remap_file_pages-Xabbrev$(EXEEXT) \ remap_file_pages-Xraw$(EXEEXT) \ @@ -341,8 +498,10 @@ am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \ sched_xetparam$(EXEEXT) sched_xetscheduler$(EXEEXT) \ sched_yield$(EXEEXT) seccomp-filter$(EXEEXT) \ seccomp_get_action_avail$(EXEEXT) select$(EXEEXT) \ - semop$(EXEEXT) sendfile$(EXEEXT) sendfile64$(EXEEXT) \ - set_mempolicy$(EXEEXT) setdomainname$(EXEEXT) \ + semop$(EXEEXT) semop-indirect$(EXEEXT) semtimedop$(EXEEXT) \ + sendfile$(EXEEXT) sendfile64$(EXEEXT) set_mempolicy$(EXEEXT) \ + set_mempolicy-Xabbrev$(EXEEXT) set_mempolicy-Xraw$(EXEEXT) \ + set_mempolicy-Xverbose$(EXEEXT) setdomainname$(EXEEXT) \ setfsgid$(EXEEXT) setfsgid32$(EXEEXT) setfsuid$(EXEEXT) \ setfsuid32$(EXEEXT) setgid$(EXEEXT) setgid32$(EXEEXT) \ setgroups$(EXEEXT) setgroups32$(EXEEXT) sethostname$(EXEEXT) \ @@ -364,27 +523,36 @@ am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \ sockaddr_xlat-Xverbose$(EXEEXT) socketcall$(EXEEXT) \ sockopt-sol_netlink$(EXEEXT) sockopt-timestamp$(EXEEXT) \ splice$(EXEEXT) stat$(EXEEXT) stat64$(EXEEXT) statfs$(EXEEXT) \ - statfs64$(EXEEXT) statx$(EXEEXT) swap$(EXEEXT) \ + statfs64$(EXEEXT) status-all$(EXEEXT) status-failed$(EXEEXT) \ + status-failed-long$(EXEEXT) status-failed-status$(EXEEXT) \ + status-none$(EXEEXT) status-none-f$(EXEEXT) \ + status-successful$(EXEEXT) status-successful-long$(EXEEXT) \ + status-successful-status$(EXEEXT) status-unfinished$(EXEEXT) \ + statx$(EXEEXT) strace--strings-in-hex$(EXEEXT) \ + strace--strings-in-hex-all$(EXEEXT) \ + strace--strings-in-hex-non-ascii$(EXEEXT) strace-n$(EXEEXT) \ + strace-x$(EXEEXT) strace-xx$(EXEEXT) swap$(EXEEXT) \ sxetmask$(EXEEXT) symlink$(EXEEXT) symlinkat$(EXEEXT) \ sync$(EXEEXT) sync_file_range$(EXEEXT) \ sync_file_range2$(EXEEXT) sysinfo$(EXEEXT) syslog$(EXEEXT) \ - tee$(EXEEXT) time$(EXEEXT) timer_create$(EXEEXT) \ - timer_xettime$(EXEEXT) timerfd_xettime$(EXEEXT) times$(EXEEXT) \ - times-fail$(EXEEXT) truncate$(EXEEXT) truncate64$(EXEEXT) \ + tee$(EXEEXT) tgkill$(EXEEXT) time$(EXEEXT) \ + timer_create$(EXEEXT) timer_xettime$(EXEEXT) \ + timerfd_xettime$(EXEEXT) times$(EXEEXT) times-fail$(EXEEXT) \ + tkill$(EXEEXT) truncate$(EXEEXT) truncate64$(EXEEXT) \ ugetrlimit$(EXEEXT) uio$(EXEEXT) umask$(EXEEXT) \ umount$(EXEEXT) umount2$(EXEEXT) umoven-illptr$(EXEEXT) \ umovestr$(EXEEXT) umovestr-illptr$(EXEEXT) umovestr2$(EXEEXT) \ - umovestr3$(EXEEXT) uname$(EXEEXT) unlink$(EXEEXT) \ - unlinkat$(EXEEXT) unshare$(EXEEXT) userfaultfd$(EXEEXT) \ - ustat$(EXEEXT) utime$(EXEEXT) utimensat$(EXEEXT) \ - utimensat-Xabbrev$(EXEEXT) utimensat-Xraw$(EXEEXT) \ - utimensat-Xverbose$(EXEEXT) utimes$(EXEEXT) vhangup$(EXEEXT) \ - vmsplice$(EXEEXT) wait4$(EXEEXT) waitid$(EXEEXT) \ - waitpid$(EXEEXT) xattr$(EXEEXT) xattr-strings$(EXEEXT) \ - xet_robust_list$(EXEEXT) xet_thread_area_x86$(EXEEXT) \ - xetitimer$(EXEEXT) xetpgid$(EXEEXT) xetpriority$(EXEEXT) \ - xettimeofday$(EXEEXT) -AR = ar + umovestr3$(EXEEXT) umovestr_cached$(EXEEXT) \ + umovestr_cached_adjacent$(EXEEXT) uname$(EXEEXT) \ + unlink$(EXEEXT) unlinkat$(EXEEXT) unshare$(EXEEXT) \ + userfaultfd$(EXEEXT) ustat$(EXEEXT) utime$(EXEEXT) \ + utimensat$(EXEEXT) utimensat-Xabbrev$(EXEEXT) \ + utimensat-Xraw$(EXEEXT) utimensat-Xverbose$(EXEEXT) \ + utimes$(EXEEXT) vhangup$(EXEEXT) vmsplice$(EXEEXT) \ + wait4$(EXEEXT) waitid$(EXEEXT) waitpid$(EXEEXT) xattr$(EXEEXT) \ + xattr-strings$(EXEEXT) xet_robust_list$(EXEEXT) \ + xet_thread_area_x86$(EXEEXT) xetitimer$(EXEEXT) \ + xetpgid$(EXEEXT) xetpriority$(EXEEXT) xettimeofday$(EXEEXT) ARFLAGS = cru AM_V_AR = $(am__v_AR_@AM_V@) am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) @@ -393,6 +561,7 @@ am__v_AR_1 = libtests_a_AR = $(AR) $(ARFLAGS) libtests_a_LIBADD = am_libtests_a_OBJECTS = libtests_a-create_nl_socket.$(OBJEXT) \ + libtests_a-create_tmpfile.$(OBJEXT) \ libtests_a-errno2name.$(OBJEXT) libtests_a-error_msg.$(OBJEXT) \ libtests_a-fill_memory.$(OBJEXT) \ libtests_a-get_page_size.$(OBJEXT) \ @@ -403,17 +572,23 @@ am_libtests_a_OBJECTS = libtests_a-create_nl_socket.$(OBJEXT) \ libtests_a-inode_of_sockfd.$(OBJEXT) \ libtests_a-libmmsg.$(OBJEXT) \ libtests_a-libsocketcall.$(OBJEXT) \ - libtests_a-overflowuid.$(OBJEXT) \ + libtests_a-lock_file.$(OBJEXT) \ + libtests_a-overflowuid.$(OBJEXT) libtests_a-pidns.$(OBJEXT) \ libtests_a-pipe_maxfd.$(OBJEXT) \ libtests_a-print_quoted_string.$(OBJEXT) \ libtests_a-print_time.$(OBJEXT) \ - libtests_a-printflags.$(OBJEXT) libtests_a-printxval.$(OBJEXT) \ + libtests_a-printflags.$(OBJEXT) \ + libtests_a-printxval-Xabbrev.$(OBJEXT) \ + libtests_a-printxval-Xraw.$(OBJEXT) \ + libtests_a-printxval-Xverbose.$(OBJEXT) \ libtests_a-signal2name.$(OBJEXT) \ libtests_a-skip_unavailable.$(OBJEXT) \ - libtests_a-sprintrc.$(OBJEXT) libtests_a-tail_alloc.$(OBJEXT) \ + libtests_a-sprintrc.$(OBJEXT) libtests_a-status.$(OBJEXT) \ + libtests_a-tail_alloc.$(OBJEXT) \ libtests_a-test_printpath.$(OBJEXT) \ libtests_a-test_printstrn.$(OBJEXT) \ - libtests_a-test_ucopy.$(OBJEXT) libtests_a-tprintf.$(OBJEXT) + libtests_a-test_ucopy.$(OBJEXT) libtests_a-tprintf.$(OBJEXT) \ + libtests_a-xmalloc_for_tests.$(OBJEXT) libtests_a_OBJECTS = $(am_libtests_a_OBJECTS) _newselect_SOURCES = _newselect.c _newselect_OBJECTS = _newselect.$(OBJEXT) @@ -482,6 +657,10 @@ block_reset_raise_run_SOURCES = block_reset_raise_run.c block_reset_raise_run_OBJECTS = block_reset_raise_run.$(OBJEXT) block_reset_raise_run_LDADD = $(LDADD) block_reset_raise_run_DEPENDENCIES = libtests.a +block_reset_run_SOURCES = block_reset_run.c +block_reset_run_OBJECTS = block_reset_run.$(OBJEXT) +block_reset_run_LDADD = $(LDADD) +block_reset_run_DEPENDENCIES = libtests.a bpf_SOURCES = bpf.c bpf_OBJECTS = bpf.$(OBJEXT) bpf_LDADD = $(LDADD) @@ -509,6 +688,10 @@ bpf_success_SOURCES = bpf-success.c bpf_success_OBJECTS = bpf-success.$(OBJEXT) bpf_success_LDADD = $(LDADD) bpf_success_DEPENDENCIES = libtests.a +bpf_success_long_y_SOURCES = bpf-success-long-y.c +bpf_success_long_y_OBJECTS = bpf-success-long-y.$(OBJEXT) +bpf_success_long_y_LDADD = $(LDADD) +bpf_success_long_y_DEPENDENCIES = libtests.a bpf_success_v_SOURCES = bpf-success-v.c bpf_success_v_OBJECTS = bpf-success-v.$(OBJEXT) bpf_success_v_LDADD = $(LDADD) @@ -569,14 +752,95 @@ clock_xettime_SOURCES = clock_xettime.c clock_xettime_OBJECTS = clock_xettime.$(OBJEXT) clock_xettime_LDADD = $(LDADD) clock_xettime_DEPENDENCIES = libtests.a +clone_flags_SOURCES = clone-flags.c +clone_flags_OBJECTS = clone-flags.$(OBJEXT) +clone_flags_LDADD = $(LDADD) +clone_flags_DEPENDENCIES = libtests.a +clone3_SOURCES = clone3.c +clone3_OBJECTS = clone3.$(OBJEXT) +clone3_LDADD = $(LDADD) +clone3_DEPENDENCIES = libtests.a +clone3_Xabbrev_SOURCES = clone3-Xabbrev.c +clone3_Xabbrev_OBJECTS = clone3-Xabbrev.$(OBJEXT) +clone3_Xabbrev_LDADD = $(LDADD) +clone3_Xabbrev_DEPENDENCIES = libtests.a +clone3_Xraw_SOURCES = clone3-Xraw.c +clone3_Xraw_OBJECTS = clone3-Xraw.$(OBJEXT) +clone3_Xraw_LDADD = $(LDADD) +clone3_Xraw_DEPENDENCIES = libtests.a +clone3_Xverbose_SOURCES = clone3-Xverbose.c +clone3_Xverbose_OBJECTS = clone3-Xverbose.$(OBJEXT) +clone3_Xverbose_LDADD = $(LDADD) +clone3_Xverbose_DEPENDENCIES = libtests.a +clone3_success_SOURCES = clone3-success.c +clone3_success_OBJECTS = clone3-success.$(OBJEXT) +clone3_success_LDADD = $(LDADD) +clone3_success_DEPENDENCIES = libtests.a +clone3_success_Xabbrev_SOURCES = clone3-success-Xabbrev.c +clone3_success_Xabbrev_OBJECTS = clone3-success-Xabbrev.$(OBJEXT) +clone3_success_Xabbrev_LDADD = $(LDADD) +clone3_success_Xabbrev_DEPENDENCIES = libtests.a +clone3_success_Xraw_SOURCES = clone3-success-Xraw.c +clone3_success_Xraw_OBJECTS = clone3-success-Xraw.$(OBJEXT) +clone3_success_Xraw_LDADD = $(LDADD) +clone3_success_Xraw_DEPENDENCIES = libtests.a +clone3_success_Xverbose_SOURCES = clone3-success-Xverbose.c +clone3_success_Xverbose_OBJECTS = clone3-success-Xverbose.$(OBJEXT) +clone3_success_Xverbose_LDADD = $(LDADD) +clone3_success_Xverbose_DEPENDENCIES = libtests.a clone_parent_SOURCES = clone_parent.c clone_parent_OBJECTS = clone_parent.$(OBJEXT) clone_parent_LDADD = $(LDADD) clone_parent_DEPENDENCIES = libtests.a +clone_parent__quiet_exit_SOURCES = clone_parent--quiet-exit.c +clone_parent__quiet_exit_OBJECTS = clone_parent--quiet-exit.$(OBJEXT) +clone_parent__quiet_exit_LDADD = $(LDADD) +clone_parent__quiet_exit_DEPENDENCIES = libtests.a +clone_parent_q_SOURCES = clone_parent-q.c +clone_parent_q_OBJECTS = clone_parent-q.$(OBJEXT) +clone_parent_q_LDADD = $(LDADD) +clone_parent_q_DEPENDENCIES = libtests.a +clone_parent_qq_SOURCES = clone_parent-qq.c +clone_parent_qq_OBJECTS = clone_parent-qq.$(OBJEXT) +clone_parent_qq_LDADD = $(LDADD) +clone_parent_qq_DEPENDENCIES = libtests.a clone_ptrace_SOURCES = clone_ptrace.c clone_ptrace_OBJECTS = clone_ptrace.$(OBJEXT) clone_ptrace_LDADD = $(LDADD) clone_ptrace_DEPENDENCIES = libtests.a +clone_ptrace__quiet_attach_SOURCES = clone_ptrace--quiet-attach.c +clone_ptrace__quiet_attach_OBJECTS = \ + clone_ptrace--quiet-attach.$(OBJEXT) +clone_ptrace__quiet_attach_LDADD = $(LDADD) +clone_ptrace__quiet_attach_DEPENDENCIES = libtests.a +clone_ptrace__quiet_exit_SOURCES = clone_ptrace--quiet-exit.c +clone_ptrace__quiet_exit_OBJECTS = clone_ptrace--quiet-exit.$(OBJEXT) +clone_ptrace__quiet_exit_LDADD = $(LDADD) +clone_ptrace__quiet_exit_DEPENDENCIES = libtests.a +clone_ptrace_q_SOURCES = clone_ptrace-q.c +clone_ptrace_q_OBJECTS = clone_ptrace-q.$(OBJEXT) +clone_ptrace_q_LDADD = $(LDADD) +clone_ptrace_q_DEPENDENCIES = libtests.a +clone_ptrace_qq_SOURCES = clone_ptrace-qq.c +clone_ptrace_qq_OBJECTS = clone_ptrace-qq.$(OBJEXT) +clone_ptrace_qq_LDADD = $(LDADD) +clone_ptrace_qq_DEPENDENCIES = libtests.a +close_range_SOURCES = close_range.c +close_range_OBJECTS = close_range.$(OBJEXT) +close_range_LDADD = $(LDADD) +close_range_DEPENDENCIES = libtests.a +close_range_P_SOURCES = close_range-P.c +close_range_P_OBJECTS = close_range-P.$(OBJEXT) +close_range_P_LDADD = $(LDADD) +close_range_P_DEPENDENCIES = libtests.a +close_range_y_SOURCES = close_range-y.c +close_range_y_OBJECTS = close_range-y.$(OBJEXT) +close_range_y_LDADD = $(LDADD) +close_range_y_DEPENDENCIES = libtests.a +close_range_yy_SOURCES = close_range-yy.c +close_range_yy_OBJECTS = close_range-yy.$(OBJEXT) +close_range_yy_LDADD = $(LDADD) +close_range_yy_DEPENDENCIES = libtests.a copy_file_range_SOURCES = copy_file_range.c copy_file_range_OBJECTS = copy_file_range.$(OBJEXT) copy_file_range_LDADD = $(LDADD) @@ -596,6 +860,18 @@ delete_module_SOURCES = delete_module.c delete_module_OBJECTS = delete_module.$(OBJEXT) delete_module_LDADD = $(LDADD) delete_module_DEPENDENCIES = libtests.a +dev__decode_fds_dev_SOURCES = dev--decode-fds-dev.c +dev__decode_fds_dev_OBJECTS = dev--decode-fds-dev.$(OBJEXT) +dev__decode_fds_dev_LDADD = $(LDADD) +dev__decode_fds_dev_DEPENDENCIES = libtests.a +dev__decode_fds_path_SOURCES = dev--decode-fds-path.c +dev__decode_fds_path_OBJECTS = dev--decode-fds-path.$(OBJEXT) +dev__decode_fds_path_LDADD = $(LDADD) +dev__decode_fds_path_DEPENDENCIES = libtests.a +dev__decode_fds_socket_SOURCES = dev--decode-fds-socket.c +dev__decode_fds_socket_OBJECTS = dev--decode-fds-socket.$(OBJEXT) +dev__decode_fds_socket_LDADD = $(LDADD) +dev__decode_fds_socket_DEPENDENCIES = libtests.a dev_yy_SOURCES = dev-yy.c dev_yy_OBJECTS = dev-yy.$(OBJEXT) dev_yy_LDADD = $(LDADD) @@ -604,14 +880,50 @@ dup_SOURCES = dup.c dup_OBJECTS = dup.$(OBJEXT) dup_LDADD = $(LDADD) dup_DEPENDENCIES = libtests.a +dup_P_SOURCES = dup-P.c +dup_P_OBJECTS = dup-P.$(OBJEXT) +dup_P_LDADD = $(LDADD) +dup_P_DEPENDENCIES = libtests.a +dup_y_SOURCES = dup-y.c +dup_y_OBJECTS = dup-y.$(OBJEXT) +dup_y_LDADD = $(LDADD) +dup_y_DEPENDENCIES = libtests.a +dup_yy_SOURCES = dup-yy.c +dup_yy_OBJECTS = dup-yy.$(OBJEXT) +dup_yy_LDADD = $(LDADD) +dup_yy_DEPENDENCIES = libtests.a dup2_SOURCES = dup2.c dup2_OBJECTS = dup2.$(OBJEXT) dup2_LDADD = $(LDADD) dup2_DEPENDENCIES = libtests.a +dup2_P_SOURCES = dup2-P.c +dup2_P_OBJECTS = dup2-P.$(OBJEXT) +dup2_P_LDADD = $(LDADD) +dup2_P_DEPENDENCIES = libtests.a +dup2_y_SOURCES = dup2-y.c +dup2_y_OBJECTS = dup2-y.$(OBJEXT) +dup2_y_LDADD = $(LDADD) +dup2_y_DEPENDENCIES = libtests.a +dup2_yy_SOURCES = dup2-yy.c +dup2_yy_OBJECTS = dup2-yy.$(OBJEXT) +dup2_yy_LDADD = $(LDADD) +dup2_yy_DEPENDENCIES = libtests.a dup3_SOURCES = dup3.c dup3_OBJECTS = dup3.$(OBJEXT) dup3_LDADD = $(LDADD) dup3_DEPENDENCIES = libtests.a +dup3_P_SOURCES = dup3-P.c +dup3_P_OBJECTS = dup3-P.$(OBJEXT) +dup3_P_LDADD = $(LDADD) +dup3_P_DEPENDENCIES = libtests.a +dup3_y_SOURCES = dup3-y.c +dup3_y_OBJECTS = dup3-y.$(OBJEXT) +dup3_y_LDADD = $(LDADD) +dup3_y_DEPENDENCIES = libtests.a +dup3_yy_SOURCES = dup3-yy.c +dup3_yy_OBJECTS = dup3-yy.$(OBJEXT) +dup3_yy_LDADD = $(LDADD) +dup3_yy_DEPENDENCIES = libtests.a epoll_create_SOURCES = epoll_create.c epoll_create_OBJECTS = epoll_create.$(OBJEXT) epoll_create_LDADD = $(LDADD) @@ -660,6 +972,34 @@ faccessat_SOURCES = faccessat.c faccessat_OBJECTS = faccessat.$(OBJEXT) faccessat_LDADD = $(LDADD) faccessat_DEPENDENCIES = libtests.a +faccessat_P_SOURCES = faccessat-P.c +faccessat_P_OBJECTS = faccessat-P.$(OBJEXT) +faccessat_P_LDADD = $(LDADD) +faccessat_P_DEPENDENCIES = libtests.a +faccessat_y_SOURCES = faccessat-y.c +faccessat_y_OBJECTS = faccessat-y.$(OBJEXT) +faccessat_y_LDADD = $(LDADD) +faccessat_y_DEPENDENCIES = libtests.a +faccessat_yy_SOURCES = faccessat-yy.c +faccessat_yy_OBJECTS = faccessat-yy.$(OBJEXT) +faccessat_yy_LDADD = $(LDADD) +faccessat_yy_DEPENDENCIES = libtests.a +faccessat2_SOURCES = faccessat2.c +faccessat2_OBJECTS = faccessat2.$(OBJEXT) +faccessat2_LDADD = $(LDADD) +faccessat2_DEPENDENCIES = libtests.a +faccessat2_P_SOURCES = faccessat2-P.c +faccessat2_P_OBJECTS = faccessat2-P.$(OBJEXT) +faccessat2_P_LDADD = $(LDADD) +faccessat2_P_DEPENDENCIES = libtests.a +faccessat2_y_SOURCES = faccessat2-y.c +faccessat2_y_OBJECTS = faccessat2-y.$(OBJEXT) +faccessat2_y_LDADD = $(LDADD) +faccessat2_y_DEPENDENCIES = libtests.a +faccessat2_yy_SOURCES = faccessat2-yy.c +faccessat2_yy_OBJECTS = faccessat2-yy.$(OBJEXT) +faccessat2_yy_LDADD = $(LDADD) +faccessat2_yy_DEPENDENCIES = libtests.a fadvise64_SOURCES = fadvise64.c fadvise64_OBJECTS = fadvise64.$(OBJEXT) fadvise64_LDADD = $(LDADD) @@ -720,10 +1060,19 @@ fcntl_SOURCES = fcntl.c fcntl_OBJECTS = fcntl.$(OBJEXT) fcntl_LDADD = $(LDADD) fcntl_DEPENDENCIES = libtests.a +fcntl__pidns_translation_SOURCES = fcntl--pidns-translation.c +fcntl__pidns_translation_OBJECTS = fcntl--pidns-translation.$(OBJEXT) +fcntl__pidns_translation_LDADD = $(LDADD) +fcntl__pidns_translation_DEPENDENCIES = libtests.a fcntl64_SOURCES = fcntl64.c fcntl64_OBJECTS = fcntl64.$(OBJEXT) fcntl64_LDADD = $(LDADD) fcntl64_DEPENDENCIES = libtests.a +fcntl64__pidns_translation_SOURCES = fcntl64--pidns-translation.c +fcntl64__pidns_translation_OBJECTS = \ + fcntl64--pidns-translation.$(OBJEXT) +fcntl64__pidns_translation_LDADD = $(LDADD) +fcntl64__pidns_translation_DEPENDENCIES = libtests.a fdatasync_SOURCES = fdatasync.c fdatasync_OBJECTS = fdatasync.$(OBJEXT) fdatasync_LDADD = $(LDADD) @@ -743,6 +1092,14 @@ file_ioctl_DEPENDENCIES = libtests.a filter_unavailable_SOURCES = filter-unavailable.c filter_unavailable_OBJECTS = filter-unavailable.$(OBJEXT) filter_unavailable_DEPENDENCIES = $(LDADD) +filter_seccomp_flag_SOURCES = filter_seccomp-flag.c +filter_seccomp_flag_OBJECTS = filter_seccomp-flag.$(OBJEXT) +filter_seccomp_flag_LDADD = $(LDADD) +filter_seccomp_flag_DEPENDENCIES = libtests.a +filter_seccomp_perf_SOURCES = filter_seccomp-perf.c +filter_seccomp_perf_OBJECTS = filter_seccomp-perf.$(OBJEXT) +filter_seccomp_perf_LDADD = $(LDADD) +filter_seccomp_perf_DEPENDENCIES = libtests.a finit_module_SOURCES = finit_module.c finit_module_OBJECTS = finit_module.$(OBJEXT) finit_module_LDADD = $(LDADD) @@ -751,10 +1108,38 @@ flock_SOURCES = flock.c flock_OBJECTS = flock.$(OBJEXT) flock_LDADD = $(LDADD) flock_DEPENDENCIES = libtests.a +fork__pidns_translation_SOURCES = fork--pidns-translation.c +fork__pidns_translation_OBJECTS = fork--pidns-translation.$(OBJEXT) +fork__pidns_translation_LDADD = $(LDADD) +fork__pidns_translation_DEPENDENCIES = libtests.a fork_f_SOURCES = fork-f.c fork_f_OBJECTS = fork-f.$(OBJEXT) fork_f_LDADD = $(LDADD) fork_f_DEPENDENCIES = libtests.a +fsconfig_SOURCES = fsconfig.c +fsconfig_OBJECTS = fsconfig.$(OBJEXT) +fsconfig_LDADD = $(LDADD) +fsconfig_DEPENDENCIES = libtests.a +fsconfig_P_SOURCES = fsconfig-P.c +fsconfig_P_OBJECTS = fsconfig-P.$(OBJEXT) +fsconfig_P_LDADD = $(LDADD) +fsconfig_P_DEPENDENCIES = libtests.a +fsmount_SOURCES = fsmount.c +fsmount_OBJECTS = fsmount.$(OBJEXT) +fsmount_LDADD = $(LDADD) +fsmount_DEPENDENCIES = libtests.a +fsopen_SOURCES = fsopen.c +fsopen_OBJECTS = fsopen.$(OBJEXT) +fsopen_LDADD = $(LDADD) +fsopen_DEPENDENCIES = libtests.a +fspick_SOURCES = fspick.c +fspick_OBJECTS = fspick.$(OBJEXT) +fspick_LDADD = $(LDADD) +fspick_DEPENDENCIES = libtests.a +fspick_P_SOURCES = fspick-P.c +fspick_P_OBJECTS = fspick-P.$(OBJEXT) +fspick_P_LDADD = $(LDADD) +fspick_P_DEPENDENCIES = libtests.a fstat_SOURCES = fstat.c fstat_OBJECTS = fstat.$(OBJEXT) fstat_LDADD = $(LDADD) @@ -827,6 +1212,10 @@ get_mempolicy_SOURCES = get_mempolicy.c get_mempolicy_OBJECTS = get_mempolicy.$(OBJEXT) get_mempolicy_LDADD = $(LDADD) get_mempolicy_DEPENDENCIES = libtests.a +get_process_reaper_SOURCES = get_process_reaper.c +get_process_reaper_OBJECTS = get_process_reaper.$(OBJEXT) +get_process_reaper_LDADD = $(LDADD) +get_process_reaper_DEPENDENCIES = libtests.a getcpu_SOURCES = getcpu.c getcpu_OBJECTS = getcpu.$(OBJEXT) getcpu_LDADD = $(LDADD) @@ -839,10 +1228,18 @@ getdents_SOURCES = getdents.c getdents_OBJECTS = getdents.$(OBJEXT) getdents_LDADD = $(LDADD) getdents_DEPENDENCIES = libtests.a +getdents_v_SOURCES = getdents-v.c +getdents_v_OBJECTS = getdents-v.$(OBJEXT) +getdents_v_LDADD = $(LDADD) +getdents_v_DEPENDENCIES = libtests.a getdents64_SOURCES = getdents64.c getdents64_OBJECTS = getdents64.$(OBJEXT) getdents64_LDADD = $(LDADD) getdents64_DEPENDENCIES = libtests.a +getdents64_v_SOURCES = getdents64-v.c +getdents64_v_OBJECTS = getdents64-v.$(OBJEXT) +getdents64_v_LDADD = $(LDADD) +getdents64_v_DEPENDENCIES = libtests.a getegid_SOURCES = getegid.c getegid_OBJECTS = getegid.$(OBJEXT) getegid_LDADD = $(LDADD) @@ -883,10 +1280,20 @@ getpgrp_SOURCES = getpgrp.c getpgrp_OBJECTS = getpgrp.$(OBJEXT) getpgrp_LDADD = $(LDADD) getpgrp_DEPENDENCIES = libtests.a +getpgrp__pidns_translation_SOURCES = getpgrp--pidns-translation.c +getpgrp__pidns_translation_OBJECTS = \ + getpgrp--pidns-translation.$(OBJEXT) +getpgrp__pidns_translation_LDADD = $(LDADD) +getpgrp__pidns_translation_DEPENDENCIES = libtests.a getpid_SOURCES = getpid.c getpid_OBJECTS = getpid.$(OBJEXT) getpid_LDADD = $(LDADD) getpid_DEPENDENCIES = libtests.a +getpid__pidns_translation_SOURCES = getpid--pidns-translation.c +getpid__pidns_translation_OBJECTS = \ + getpid--pidns-translation.$(OBJEXT) +getpid__pidns_translation_LDADD = $(LDADD) +getpid__pidns_translation_DEPENDENCIES = libtests.a getppid_SOURCES = getppid.c getppid_OBJECTS = getppid.$(OBJEXT) getppid_LDADD = $(LDADD) @@ -923,6 +1330,11 @@ getsid_SOURCES = getsid.c getsid_OBJECTS = getsid.$(OBJEXT) getsid_LDADD = $(LDADD) getsid_DEPENDENCIES = libtests.a +getsid__pidns_translation_SOURCES = getsid--pidns-translation.c +getsid__pidns_translation_OBJECTS = \ + getsid--pidns-translation.$(OBJEXT) +getsid__pidns_translation_LDADD = $(LDADD) +getsid__pidns_translation_DEPENDENCIES = libtests.a getsockname_SOURCES = getsockname.c getsockname_OBJECTS = getsockname.$(OBJEXT) getsockname_LDADD = $(LDADD) @@ -931,6 +1343,11 @@ gettid_SOURCES = gettid.c gettid_OBJECTS = gettid.$(OBJEXT) gettid_LDADD = $(LDADD) gettid_DEPENDENCIES = libtests.a +gettid__pidns_translation_SOURCES = gettid--pidns-translation.c +gettid__pidns_translation_OBJECTS = \ + gettid--pidns-translation.$(OBJEXT) +gettid__pidns_translation_LDADD = $(LDADD) +gettid__pidns_translation_DEPENDENCIES = libtests.a getuid_SOURCES = getuid.c getuid_OBJECTS = getuid.$(OBJEXT) getuid_LDADD = $(LDADD) @@ -939,10 +1356,18 @@ getuid32_SOURCES = getuid32.c getuid32_OBJECTS = getuid32.$(OBJEXT) getuid32_LDADD = $(LDADD) getuid32_DEPENDENCIES = libtests.a -getxxid_SOURCES = getxxid.c -getxxid_OBJECTS = getxxid.$(OBJEXT) -getxxid_LDADD = $(LDADD) -getxxid_DEPENDENCIES = libtests.a +getxgid_SOURCES = getxgid.c +getxgid_OBJECTS = getxgid.$(OBJEXT) +getxgid_LDADD = $(LDADD) +getxgid_DEPENDENCIES = libtests.a +getxpid_SOURCES = getxpid.c +getxpid_OBJECTS = getxpid.$(OBJEXT) +getxpid_LDADD = $(LDADD) +getxpid_DEPENDENCIES = libtests.a +getxuid_SOURCES = getxuid.c +getxuid_OBJECTS = getxuid.$(OBJEXT) +getxuid_LDADD = $(LDADD) +getxuid_DEPENDENCIES = libtests.a group_req_SOURCES = group_req.c group_req_OBJECTS = group_req.$(OBJEXT) group_req_LDADD = $(LDADD) @@ -963,10 +1388,22 @@ inotify_SOURCES = inotify.c inotify_OBJECTS = inotify.$(OBJEXT) inotify_LDADD = $(LDADD) inotify_DEPENDENCIES = libtests.a +inotify_init_SOURCES = inotify_init.c +inotify_init_OBJECTS = inotify_init.$(OBJEXT) +inotify_init_LDADD = $(LDADD) +inotify_init_DEPENDENCIES = libtests.a +inotify_init_y_SOURCES = inotify_init-y.c +inotify_init_y_OBJECTS = inotify_init-y.$(OBJEXT) +inotify_init_y_LDADD = $(LDADD) +inotify_init_y_DEPENDENCIES = libtests.a inotify_init1_SOURCES = inotify_init1.c inotify_init1_OBJECTS = inotify_init1.$(OBJEXT) inotify_init1_LDADD = $(LDADD) inotify_init1_DEPENDENCIES = libtests.a +inotify_init1_y_SOURCES = inotify_init1-y.c +inotify_init1_y_OBJECTS = inotify_init1-y.$(OBJEXT) +inotify_init1_y_LDADD = $(LDADD) +inotify_init1_y_DEPENDENCIES = libtests.a int_0x80_SOURCES = int_0x80.c int_0x80_OBJECTS = int_0x80.$(OBJEXT) int_0x80_LDADD = $(LDADD) @@ -991,6 +1428,12 @@ ioctl_block_SOURCES = ioctl_block.c ioctl_block_OBJECTS = ioctl_block.$(OBJEXT) ioctl_block_LDADD = $(LDADD) ioctl_block_DEPENDENCIES = libtests.a +ioctl_block__pidns_translation_SOURCES = \ + ioctl_block--pidns-translation.c +ioctl_block__pidns_translation_OBJECTS = \ + ioctl_block--pidns-translation.$(OBJEXT) +ioctl_block__pidns_translation_LDADD = $(LDADD) +ioctl_block__pidns_translation_DEPENDENCIES = libtests.a ioctl_dm_SOURCES = ioctl_dm.c ioctl_dm_OBJECTS = ioctl_dm.$(OBJEXT) ioctl_dm_LDADD = $(LDADD) @@ -1003,18 +1446,143 @@ ioctl_evdev_SOURCES = ioctl_evdev.c ioctl_evdev_OBJECTS = ioctl_evdev.$(OBJEXT) ioctl_evdev_LDADD = $(LDADD) ioctl_evdev_DEPENDENCIES = libtests.a +ioctl_evdev_Xabbrev_SOURCES = ioctl_evdev-Xabbrev.c +ioctl_evdev_Xabbrev_OBJECTS = ioctl_evdev-Xabbrev.$(OBJEXT) +ioctl_evdev_Xabbrev_LDADD = $(LDADD) +ioctl_evdev_Xabbrev_DEPENDENCIES = libtests.a +ioctl_evdev_Xraw_SOURCES = ioctl_evdev-Xraw.c +ioctl_evdev_Xraw_OBJECTS = ioctl_evdev-Xraw.$(OBJEXT) +ioctl_evdev_Xraw_LDADD = $(LDADD) +ioctl_evdev_Xraw_DEPENDENCIES = libtests.a +ioctl_evdev_Xverbose_SOURCES = ioctl_evdev-Xverbose.c +ioctl_evdev_Xverbose_OBJECTS = ioctl_evdev-Xverbose.$(OBJEXT) +ioctl_evdev_Xverbose_LDADD = $(LDADD) +ioctl_evdev_Xverbose_DEPENDENCIES = libtests.a ioctl_evdev_success_SOURCES = ioctl_evdev-success.c ioctl_evdev_success_OBJECTS = ioctl_evdev-success.$(OBJEXT) ioctl_evdev_success_LDADD = $(LDADD) ioctl_evdev_success_DEPENDENCIES = libtests.a +ioctl_evdev_success_Xabbrev_SOURCES = ioctl_evdev-success-Xabbrev.c +ioctl_evdev_success_Xabbrev_OBJECTS = \ + ioctl_evdev-success-Xabbrev.$(OBJEXT) +ioctl_evdev_success_Xabbrev_LDADD = $(LDADD) +ioctl_evdev_success_Xabbrev_DEPENDENCIES = libtests.a +ioctl_evdev_success_Xraw_SOURCES = ioctl_evdev-success-Xraw.c +ioctl_evdev_success_Xraw_OBJECTS = ioctl_evdev-success-Xraw.$(OBJEXT) +ioctl_evdev_success_Xraw_LDADD = $(LDADD) +ioctl_evdev_success_Xraw_DEPENDENCIES = libtests.a +ioctl_evdev_success_Xverbose_SOURCES = ioctl_evdev-success-Xverbose.c +ioctl_evdev_success_Xverbose_OBJECTS = \ + ioctl_evdev-success-Xverbose.$(OBJEXT) +ioctl_evdev_success_Xverbose_LDADD = $(LDADD) +ioctl_evdev_success_Xverbose_DEPENDENCIES = libtests.a ioctl_evdev_success_v_SOURCES = ioctl_evdev-success-v.c ioctl_evdev_success_v_OBJECTS = ioctl_evdev-success-v.$(OBJEXT) ioctl_evdev_success_v_LDADD = $(LDADD) ioctl_evdev_success_v_DEPENDENCIES = libtests.a +ioctl_evdev_success_v_Xabbrev_SOURCES = \ + ioctl_evdev-success-v-Xabbrev.c +ioctl_evdev_success_v_Xabbrev_OBJECTS = \ + ioctl_evdev-success-v-Xabbrev.$(OBJEXT) +ioctl_evdev_success_v_Xabbrev_LDADD = $(LDADD) +ioctl_evdev_success_v_Xabbrev_DEPENDENCIES = libtests.a +ioctl_evdev_success_v_Xraw_SOURCES = ioctl_evdev-success-v-Xraw.c +ioctl_evdev_success_v_Xraw_OBJECTS = \ + ioctl_evdev-success-v-Xraw.$(OBJEXT) +ioctl_evdev_success_v_Xraw_LDADD = $(LDADD) +ioctl_evdev_success_v_Xraw_DEPENDENCIES = libtests.a +ioctl_evdev_success_v_Xverbose_SOURCES = \ + ioctl_evdev-success-v-Xverbose.c +ioctl_evdev_success_v_Xverbose_OBJECTS = \ + ioctl_evdev-success-v-Xverbose.$(OBJEXT) +ioctl_evdev_success_v_Xverbose_LDADD = $(LDADD) +ioctl_evdev_success_v_Xverbose_DEPENDENCIES = libtests.a ioctl_evdev_v_SOURCES = ioctl_evdev-v.c ioctl_evdev_v_OBJECTS = ioctl_evdev-v.$(OBJEXT) ioctl_evdev_v_LDADD = $(LDADD) ioctl_evdev_v_DEPENDENCIES = libtests.a +ioctl_evdev_v_Xabbrev_SOURCES = ioctl_evdev-v-Xabbrev.c +ioctl_evdev_v_Xabbrev_OBJECTS = ioctl_evdev-v-Xabbrev.$(OBJEXT) +ioctl_evdev_v_Xabbrev_LDADD = $(LDADD) +ioctl_evdev_v_Xabbrev_DEPENDENCIES = libtests.a +ioctl_evdev_v_Xraw_SOURCES = ioctl_evdev-v-Xraw.c +ioctl_evdev_v_Xraw_OBJECTS = ioctl_evdev-v-Xraw.$(OBJEXT) +ioctl_evdev_v_Xraw_LDADD = $(LDADD) +ioctl_evdev_v_Xraw_DEPENDENCIES = libtests.a +ioctl_evdev_v_Xverbose_SOURCES = ioctl_evdev-v-Xverbose.c +ioctl_evdev_v_Xverbose_OBJECTS = ioctl_evdev-v-Xverbose.$(OBJEXT) +ioctl_evdev_v_Xverbose_LDADD = $(LDADD) +ioctl_evdev_v_Xverbose_DEPENDENCIES = libtests.a +ioctl_hdio_SOURCES = ioctl_hdio.c +ioctl_hdio_OBJECTS = ioctl_hdio.$(OBJEXT) +ioctl_hdio_LDADD = $(LDADD) +ioctl_hdio_DEPENDENCIES = libtests.a +ioctl_hdio_Xabbrev_SOURCES = ioctl_hdio-Xabbrev.c +ioctl_hdio_Xabbrev_OBJECTS = ioctl_hdio-Xabbrev.$(OBJEXT) +ioctl_hdio_Xabbrev_LDADD = $(LDADD) +ioctl_hdio_Xabbrev_DEPENDENCIES = libtests.a +ioctl_hdio_Xraw_SOURCES = ioctl_hdio-Xraw.c +ioctl_hdio_Xraw_OBJECTS = ioctl_hdio-Xraw.$(OBJEXT) +ioctl_hdio_Xraw_LDADD = $(LDADD) +ioctl_hdio_Xraw_DEPENDENCIES = libtests.a +ioctl_hdio_Xverbose_SOURCES = ioctl_hdio-Xverbose.c +ioctl_hdio_Xverbose_OBJECTS = ioctl_hdio-Xverbose.$(OBJEXT) +ioctl_hdio_Xverbose_LDADD = $(LDADD) +ioctl_hdio_Xverbose_DEPENDENCIES = libtests.a +ioctl_hdio_success_SOURCES = ioctl_hdio-success.c +ioctl_hdio_success_OBJECTS = ioctl_hdio-success.$(OBJEXT) +ioctl_hdio_success_LDADD = $(LDADD) +ioctl_hdio_success_DEPENDENCIES = libtests.a +ioctl_hdio_success_Xabbrev_SOURCES = ioctl_hdio-success-Xabbrev.c +ioctl_hdio_success_Xabbrev_OBJECTS = \ + ioctl_hdio-success-Xabbrev.$(OBJEXT) +ioctl_hdio_success_Xabbrev_LDADD = $(LDADD) +ioctl_hdio_success_Xabbrev_DEPENDENCIES = libtests.a +ioctl_hdio_success_Xraw_SOURCES = ioctl_hdio-success-Xraw.c +ioctl_hdio_success_Xraw_OBJECTS = ioctl_hdio-success-Xraw.$(OBJEXT) +ioctl_hdio_success_Xraw_LDADD = $(LDADD) +ioctl_hdio_success_Xraw_DEPENDENCIES = libtests.a +ioctl_hdio_success_Xverbose_SOURCES = ioctl_hdio-success-Xverbose.c +ioctl_hdio_success_Xverbose_OBJECTS = \ + ioctl_hdio-success-Xverbose.$(OBJEXT) +ioctl_hdio_success_Xverbose_LDADD = $(LDADD) +ioctl_hdio_success_Xverbose_DEPENDENCIES = libtests.a +ioctl_hdio_success_v_SOURCES = ioctl_hdio-success-v.c +ioctl_hdio_success_v_OBJECTS = ioctl_hdio-success-v.$(OBJEXT) +ioctl_hdio_success_v_LDADD = $(LDADD) +ioctl_hdio_success_v_DEPENDENCIES = libtests.a +ioctl_hdio_success_v_Xabbrev_SOURCES = ioctl_hdio-success-v-Xabbrev.c +ioctl_hdio_success_v_Xabbrev_OBJECTS = \ + ioctl_hdio-success-v-Xabbrev.$(OBJEXT) +ioctl_hdio_success_v_Xabbrev_LDADD = $(LDADD) +ioctl_hdio_success_v_Xabbrev_DEPENDENCIES = libtests.a +ioctl_hdio_success_v_Xraw_SOURCES = ioctl_hdio-success-v-Xraw.c +ioctl_hdio_success_v_Xraw_OBJECTS = \ + ioctl_hdio-success-v-Xraw.$(OBJEXT) +ioctl_hdio_success_v_Xraw_LDADD = $(LDADD) +ioctl_hdio_success_v_Xraw_DEPENDENCIES = libtests.a +ioctl_hdio_success_v_Xverbose_SOURCES = \ + ioctl_hdio-success-v-Xverbose.c +ioctl_hdio_success_v_Xverbose_OBJECTS = \ + ioctl_hdio-success-v-Xverbose.$(OBJEXT) +ioctl_hdio_success_v_Xverbose_LDADD = $(LDADD) +ioctl_hdio_success_v_Xverbose_DEPENDENCIES = libtests.a +ioctl_hdio_v_SOURCES = ioctl_hdio-v.c +ioctl_hdio_v_OBJECTS = ioctl_hdio-v.$(OBJEXT) +ioctl_hdio_v_LDADD = $(LDADD) +ioctl_hdio_v_DEPENDENCIES = libtests.a +ioctl_hdio_v_Xabbrev_SOURCES = ioctl_hdio-v-Xabbrev.c +ioctl_hdio_v_Xabbrev_OBJECTS = ioctl_hdio-v-Xabbrev.$(OBJEXT) +ioctl_hdio_v_Xabbrev_LDADD = $(LDADD) +ioctl_hdio_v_Xabbrev_DEPENDENCIES = libtests.a +ioctl_hdio_v_Xraw_SOURCES = ioctl_hdio-v-Xraw.c +ioctl_hdio_v_Xraw_OBJECTS = ioctl_hdio-v-Xraw.$(OBJEXT) +ioctl_hdio_v_Xraw_LDADD = $(LDADD) +ioctl_hdio_v_Xraw_DEPENDENCIES = libtests.a +ioctl_hdio_v_Xverbose_SOURCES = ioctl_hdio-v-Xverbose.c +ioctl_hdio_v_Xverbose_OBJECTS = ioctl_hdio-v-Xverbose.$(OBJEXT) +ioctl_hdio_v_Xverbose_LDADD = $(LDADD) +ioctl_hdio_v_Xverbose_DEPENDENCIES = libtests.a ioctl_inotify_SOURCES = ioctl_inotify.c ioctl_inotify_OBJECTS = ioctl_inotify.$(OBJEXT) ioctl_inotify_LDADD = $(LDADD) @@ -1096,6 +1664,10 @@ ioctl_sock_gifconf_SOURCES = ioctl_sock_gifconf.c ioctl_sock_gifconf_OBJECTS = ioctl_sock_gifconf.$(OBJEXT) ioctl_sock_gifconf_LDADD = $(LDADD) ioctl_sock_gifconf_DEPENDENCIES = libtests.a +ioctl_tee_SOURCES = ioctl_tee.c +ioctl_tee_OBJECTS = ioctl_tee.$(OBJEXT) +ioctl_tee_LDADD = $(LDADD) +ioctl_tee_DEPENDENCIES = libtests.a ioctl_uffdio_SOURCES = ioctl_uffdio.c ioctl_uffdio_OBJECTS = ioctl_uffdio.$(OBJEXT) ioctl_uffdio_LDADD = $(LDADD) @@ -1104,6 +1676,76 @@ ioctl_v4l2_SOURCES = ioctl_v4l2.c ioctl_v4l2_OBJECTS = ioctl_v4l2.$(OBJEXT) ioctl_v4l2_LDADD = $(LDADD) ioctl_v4l2_DEPENDENCIES = libtests.a +ioctl_v4l2_Xabbrev_SOURCES = ioctl_v4l2-Xabbrev.c +ioctl_v4l2_Xabbrev_OBJECTS = ioctl_v4l2-Xabbrev.$(OBJEXT) +ioctl_v4l2_Xabbrev_LDADD = $(LDADD) +ioctl_v4l2_Xabbrev_DEPENDENCIES = libtests.a +ioctl_v4l2_Xraw_SOURCES = ioctl_v4l2-Xraw.c +ioctl_v4l2_Xraw_OBJECTS = ioctl_v4l2-Xraw.$(OBJEXT) +ioctl_v4l2_Xraw_LDADD = $(LDADD) +ioctl_v4l2_Xraw_DEPENDENCIES = libtests.a +ioctl_v4l2_Xverbose_SOURCES = ioctl_v4l2-Xverbose.c +ioctl_v4l2_Xverbose_OBJECTS = ioctl_v4l2-Xverbose.$(OBJEXT) +ioctl_v4l2_Xverbose_LDADD = $(LDADD) +ioctl_v4l2_Xverbose_DEPENDENCIES = libtests.a +ioctl_v4l2_success_SOURCES = ioctl_v4l2-success.c +ioctl_v4l2_success_OBJECTS = ioctl_v4l2-success.$(OBJEXT) +ioctl_v4l2_success_LDADD = $(LDADD) +ioctl_v4l2_success_DEPENDENCIES = libtests.a +ioctl_v4l2_success_Xabbrev_SOURCES = ioctl_v4l2-success-Xabbrev.c +ioctl_v4l2_success_Xabbrev_OBJECTS = \ + ioctl_v4l2-success-Xabbrev.$(OBJEXT) +ioctl_v4l2_success_Xabbrev_LDADD = $(LDADD) +ioctl_v4l2_success_Xabbrev_DEPENDENCIES = libtests.a +ioctl_v4l2_success_Xraw_SOURCES = ioctl_v4l2-success-Xraw.c +ioctl_v4l2_success_Xraw_OBJECTS = ioctl_v4l2-success-Xraw.$(OBJEXT) +ioctl_v4l2_success_Xraw_LDADD = $(LDADD) +ioctl_v4l2_success_Xraw_DEPENDENCIES = libtests.a +ioctl_v4l2_success_Xverbose_SOURCES = ioctl_v4l2-success-Xverbose.c +ioctl_v4l2_success_Xverbose_OBJECTS = \ + ioctl_v4l2-success-Xverbose.$(OBJEXT) +ioctl_v4l2_success_Xverbose_LDADD = $(LDADD) +ioctl_v4l2_success_Xverbose_DEPENDENCIES = libtests.a +ioctl_v4l2_success_v_SOURCES = ioctl_v4l2-success-v.c +ioctl_v4l2_success_v_OBJECTS = ioctl_v4l2-success-v.$(OBJEXT) +ioctl_v4l2_success_v_LDADD = $(LDADD) +ioctl_v4l2_success_v_DEPENDENCIES = libtests.a +ioctl_v4l2_success_v_Xabbrev_SOURCES = ioctl_v4l2-success-v-Xabbrev.c +ioctl_v4l2_success_v_Xabbrev_OBJECTS = \ + ioctl_v4l2-success-v-Xabbrev.$(OBJEXT) +ioctl_v4l2_success_v_Xabbrev_LDADD = $(LDADD) +ioctl_v4l2_success_v_Xabbrev_DEPENDENCIES = libtests.a +ioctl_v4l2_success_v_Xraw_SOURCES = ioctl_v4l2-success-v-Xraw.c +ioctl_v4l2_success_v_Xraw_OBJECTS = \ + ioctl_v4l2-success-v-Xraw.$(OBJEXT) +ioctl_v4l2_success_v_Xraw_LDADD = $(LDADD) +ioctl_v4l2_success_v_Xraw_DEPENDENCIES = libtests.a +ioctl_v4l2_success_v_Xverbose_SOURCES = \ + ioctl_v4l2-success-v-Xverbose.c +ioctl_v4l2_success_v_Xverbose_OBJECTS = \ + ioctl_v4l2-success-v-Xverbose.$(OBJEXT) +ioctl_v4l2_success_v_Xverbose_LDADD = $(LDADD) +ioctl_v4l2_success_v_Xverbose_DEPENDENCIES = libtests.a +ioctl_v4l2_v_SOURCES = ioctl_v4l2-v.c +ioctl_v4l2_v_OBJECTS = ioctl_v4l2-v.$(OBJEXT) +ioctl_v4l2_v_LDADD = $(LDADD) +ioctl_v4l2_v_DEPENDENCIES = libtests.a +ioctl_v4l2_v_Xabbrev_SOURCES = ioctl_v4l2-v-Xabbrev.c +ioctl_v4l2_v_Xabbrev_OBJECTS = ioctl_v4l2-v-Xabbrev.$(OBJEXT) +ioctl_v4l2_v_Xabbrev_LDADD = $(LDADD) +ioctl_v4l2_v_Xabbrev_DEPENDENCIES = libtests.a +ioctl_v4l2_v_Xraw_SOURCES = ioctl_v4l2-v-Xraw.c +ioctl_v4l2_v_Xraw_OBJECTS = ioctl_v4l2-v-Xraw.$(OBJEXT) +ioctl_v4l2_v_Xraw_LDADD = $(LDADD) +ioctl_v4l2_v_Xraw_DEPENDENCIES = libtests.a +ioctl_v4l2_v_Xverbose_SOURCES = ioctl_v4l2-v-Xverbose.c +ioctl_v4l2_v_Xverbose_OBJECTS = ioctl_v4l2-v-Xverbose.$(OBJEXT) +ioctl_v4l2_v_Xverbose_LDADD = $(LDADD) +ioctl_v4l2_v_Xverbose_DEPENDENCIES = libtests.a +ioctl_watchdog_SOURCES = ioctl_watchdog.c +ioctl_watchdog_OBJECTS = ioctl_watchdog.$(OBJEXT) +ioctl_watchdog_LDADD = $(LDADD) +ioctl_watchdog_DEPENDENCIES = libtests.a ioperm_SOURCES = ioperm.c ioperm_OBJECTS = ioperm.$(OBJEXT) ioperm_LDADD = $(LDADD) @@ -1116,6 +1758,11 @@ ioprio_SOURCES = ioprio.c ioprio_OBJECTS = ioprio.$(OBJEXT) ioprio_LDADD = $(LDADD) ioprio_DEPENDENCIES = libtests.a +ioprio__pidns_translation_SOURCES = ioprio--pidns-translation.c +ioprio__pidns_translation_OBJECTS = \ + ioprio--pidns-translation.$(OBJEXT) +ioprio__pidns_translation_LDADD = $(LDADD) +ioprio__pidns_translation_DEPENDENCIES = libtests.a ioprio_Xabbrev_SOURCES = ioprio-Xabbrev.c ioprio_Xabbrev_OBJECTS = ioprio-Xabbrev.$(OBJEXT) ioprio_Xabbrev_LDADD = $(LDADD) @@ -1212,6 +1859,11 @@ kcmp_y_SOURCES = kcmp-y.c kcmp_y_OBJECTS = kcmp-y.$(OBJEXT) kcmp_y_LDADD = $(LDADD) kcmp_y_DEPENDENCIES = libtests.a +kcmp_y__pidns_translation_SOURCES = kcmp-y--pidns-translation.c +kcmp_y__pidns_translation_OBJECTS = \ + kcmp-y--pidns-translation.$(OBJEXT) +kcmp_y__pidns_translation_LDADD = $(LDADD) +kcmp_y__pidns_translation_DEPENDENCIES = libtests.a kern_features_SOURCES = kern_features.c kern_features_OBJECTS = kern_features.$(OBJEXT) kern_features_LDADD = $(LDADD) @@ -1260,6 +1912,10 @@ kill_SOURCES = kill.c kill_OBJECTS = kill.$(OBJEXT) kill_LDADD = $(LDADD) kill_DEPENDENCIES = libtests.a +kill__pidns_translation_SOURCES = kill--pidns-translation.c +kill__pidns_translation_OBJECTS = kill--pidns-translation.$(OBJEXT) +kill__pidns_translation_LDADD = $(LDADD) +kill__pidns_translation_DEPENDENCIES = libtests.a kill_child_SOURCES = kill_child.c kill_child_OBJECTS = kill_child.$(OBJEXT) kill_child_LDADD = $(LDADD) @@ -1318,10 +1974,30 @@ madvise_SOURCES = madvise.c madvise_OBJECTS = madvise.$(OBJEXT) madvise_LDADD = $(LDADD) madvise_DEPENDENCIES = libtests.a +maybe_switch_current_tcp_SOURCES = maybe_switch_current_tcp.c +maybe_switch_current_tcp_OBJECTS = maybe_switch_current_tcp.$(OBJEXT) +maybe_switch_current_tcp_DEPENDENCIES = $(LDADD) +maybe_switch_current_tcp__quiet_thread_execve_SOURCES = \ + maybe_switch_current_tcp--quiet-thread-execve.c +maybe_switch_current_tcp__quiet_thread_execve_OBJECTS = \ + maybe_switch_current_tcp--quiet-thread-execve.$(OBJEXT) +maybe_switch_current_tcp__quiet_thread_execve_DEPENDENCIES = $(LDADD) mbind_SOURCES = mbind.c mbind_OBJECTS = mbind.$(OBJEXT) mbind_LDADD = $(LDADD) mbind_DEPENDENCIES = libtests.a +mbind_Xabbrev_SOURCES = mbind-Xabbrev.c +mbind_Xabbrev_OBJECTS = mbind-Xabbrev.$(OBJEXT) +mbind_Xabbrev_LDADD = $(LDADD) +mbind_Xabbrev_DEPENDENCIES = libtests.a +mbind_Xraw_SOURCES = mbind-Xraw.c +mbind_Xraw_OBJECTS = mbind-Xraw.$(OBJEXT) +mbind_Xraw_LDADD = $(LDADD) +mbind_Xraw_DEPENDENCIES = libtests.a +mbind_Xverbose_SOURCES = mbind-Xverbose.c +mbind_Xverbose_OBJECTS = mbind-Xverbose.$(OBJEXT) +mbind_Xverbose_LDADD = $(LDADD) +mbind_Xverbose_DEPENDENCIES = libtests.a membarrier_SOURCES = membarrier.c membarrier_OBJECTS = membarrier.$(OBJEXT) membarrier_LDADD = $(LDADD) @@ -1346,6 +2022,12 @@ migrate_pages_SOURCES = migrate_pages.c migrate_pages_OBJECTS = migrate_pages.$(OBJEXT) migrate_pages_LDADD = $(LDADD) migrate_pages_DEPENDENCIES = libtests.a +migrate_pages__pidns_translation_SOURCES = \ + migrate_pages--pidns-translation.c +migrate_pages__pidns_translation_OBJECTS = \ + migrate_pages--pidns-translation.$(OBJEXT) +migrate_pages__pidns_translation_LDADD = $(LDADD) +migrate_pages__pidns_translation_DEPENDENCIES = libtests.a mincore_SOURCES = mincore.c mincore_OBJECTS = mincore.$(OBJEXT) mincore_LDADD = $(LDADD) @@ -1446,10 +2128,24 @@ mount_Xverbose_SOURCES = mount-Xverbose.c mount_Xverbose_OBJECTS = mount-Xverbose.$(OBJEXT) mount_Xverbose_LDADD = $(LDADD) mount_Xverbose_DEPENDENCIES = libtests.a +move_mount_SOURCES = move_mount.c +move_mount_OBJECTS = move_mount.$(OBJEXT) +move_mount_LDADD = $(LDADD) +move_mount_DEPENDENCIES = libtests.a +move_mount_P_SOURCES = move_mount-P.c +move_mount_P_OBJECTS = move_mount-P.$(OBJEXT) +move_mount_P_LDADD = $(LDADD) +move_mount_P_DEPENDENCIES = libtests.a move_pages_SOURCES = move_pages.c move_pages_OBJECTS = move_pages.$(OBJEXT) move_pages_LDADD = $(LDADD) move_pages_DEPENDENCIES = libtests.a +move_pages__pidns_translation_SOURCES = \ + move_pages--pidns-translation.c +move_pages__pidns_translation_OBJECTS = \ + move_pages--pidns-translation.$(OBJEXT) +move_pages__pidns_translation_LDADD = $(LDADD) +move_pages__pidns_translation_DEPENDENCIES = libtests.a move_pages_Xabbrev_SOURCES = move_pages-Xabbrev.c move_pages_Xabbrev_OBJECTS = move_pages-Xabbrev.$(OBJEXT) move_pages_Xabbrev_LDADD = $(LDADD) @@ -1497,6 +2193,27 @@ nanosleep_SOURCES = nanosleep.c nanosleep_OBJECTS = nanosleep.$(OBJEXT) nanosleep_LDADD = $(LDADD) nanosleep_DEPENDENCIES = libtests.a +net__decode_fds_dev_netlink_SOURCES = net--decode-fds-dev-netlink.c +net__decode_fds_dev_netlink_OBJECTS = \ + net--decode-fds-dev-netlink.$(OBJEXT) +net__decode_fds_dev_netlink_LDADD = $(LDADD) +net__decode_fds_dev_netlink_DEPENDENCIES = libtests.a +net__decode_fds_none_netlink_SOURCES = net--decode-fds-none-netlink.c +net__decode_fds_none_netlink_OBJECTS = \ + net--decode-fds-none-netlink.$(OBJEXT) +net__decode_fds_none_netlink_LDADD = $(LDADD) +net__decode_fds_none_netlink_DEPENDENCIES = libtests.a +net__decode_fds_path_netlink_SOURCES = net--decode-fds-path-netlink.c +net__decode_fds_path_netlink_OBJECTS = \ + net--decode-fds-path-netlink.$(OBJEXT) +net__decode_fds_path_netlink_LDADD = $(LDADD) +net__decode_fds_path_netlink_DEPENDENCIES = libtests.a +net__decode_fds_socket_netlink_SOURCES = \ + net--decode-fds-socket-netlink.c +net__decode_fds_socket_netlink_OBJECTS = \ + net--decode-fds-socket-netlink.$(OBJEXT) +net__decode_fds_socket_netlink_LDADD = $(LDADD) +net__decode_fds_socket_netlink_DEPENDENCIES = libtests.a net_accept_connect_SOURCES = net-accept-connect.c net_accept_connect_OBJECTS = net-accept-connect.$(OBJEXT) net_accept_connect_LDADD = $(LDADD) @@ -1525,6 +2242,12 @@ net_sockaddr_SOURCES = net-sockaddr.c net_sockaddr_OBJECTS = net-sockaddr.$(OBJEXT) net_sockaddr_LDADD = $(LDADD) net_sockaddr_DEPENDENCIES = libtests.a +net_sockaddr__pidns_translation_SOURCES = \ + net-sockaddr--pidns-translation.c +net_sockaddr__pidns_translation_OBJECTS = \ + net-sockaddr--pidns-translation.$(OBJEXT) +net_sockaddr__pidns_translation_LDADD = $(LDADD) +net_sockaddr__pidns_translation_DEPENDENCIES = libtests.a net_tpacket_req_SOURCES = net-tpacket_req.c net_tpacket_req_OBJECTS = net-tpacket_req.$(OBJEXT) net_tpacket_req_LDADD = $(LDADD) @@ -1562,6 +2285,12 @@ netlink_audit_SOURCES = netlink_audit.c netlink_audit_OBJECTS = netlink_audit.$(OBJEXT) netlink_audit_LDADD = $(LDADD) netlink_audit_DEPENDENCIES = libtests.a +netlink_audit__pidns_translation_SOURCES = \ + netlink_audit--pidns-translation.c +netlink_audit__pidns_translation_OBJECTS = \ + netlink_audit--pidns-translation.$(OBJEXT) +netlink_audit__pidns_translation_LDADD = $(LDADD) +netlink_audit__pidns_translation_DEPENDENCIES = libtests.a netlink_crypto_SOURCES = netlink_crypto.c netlink_crypto_OBJECTS = netlink_crypto.$(OBJEXT) netlink_crypto_LDADD = $(LDADD) @@ -1710,6 +2439,10 @@ nlattr_ifla_xdp_SOURCES = nlattr_ifla_xdp.c nlattr_ifla_xdp_OBJECTS = nlattr_ifla_xdp.$(OBJEXT) nlattr_ifla_xdp_LDADD = $(LDADD) nlattr_ifla_xdp_DEPENDENCIES = libtests.a +nlattr_ifla_xdp_y_SOURCES = nlattr_ifla_xdp-y.c +nlattr_ifla_xdp_y_OBJECTS = nlattr_ifla_xdp-y.$(OBJEXT) +nlattr_ifla_xdp_y_LDADD = $(LDADD) +nlattr_ifla_xdp_y_DEPENDENCIES = libtests.a nlattr_inet_diag_msg_SOURCES = nlattr_inet_diag_msg.c nlattr_inet_diag_msg_OBJECTS = nlattr_inet_diag_msg.$(OBJEXT) nlattr_inet_diag_msg_LDADD = $(LDADD) @@ -1851,10 +2584,58 @@ open_SOURCES = open.c open_OBJECTS = open.$(OBJEXT) open_LDADD = $(LDADD) open_DEPENDENCIES = libtests.a +open_tree_SOURCES = open_tree.c +open_tree_OBJECTS = open_tree.$(OBJEXT) +open_tree_LDADD = $(LDADD) +open_tree_DEPENDENCIES = libtests.a +open_tree_P_SOURCES = open_tree-P.c +open_tree_P_OBJECTS = open_tree-P.$(OBJEXT) +open_tree_P_LDADD = $(LDADD) +open_tree_P_DEPENDENCIES = libtests.a openat_SOURCES = openat.c openat_OBJECTS = openat.$(OBJEXT) openat_LDADD = $(LDADD) openat_DEPENDENCIES = libtests.a +openat2_SOURCES = openat2.c +openat2_OBJECTS = openat2.$(OBJEXT) +openat2_LDADD = $(LDADD) +openat2_DEPENDENCIES = libtests.a +openat2_Xabbrev_SOURCES = openat2-Xabbrev.c +openat2_Xabbrev_OBJECTS = openat2-Xabbrev.$(OBJEXT) +openat2_Xabbrev_LDADD = $(LDADD) +openat2_Xabbrev_DEPENDENCIES = libtests.a +openat2_Xraw_SOURCES = openat2-Xraw.c +openat2_Xraw_OBJECTS = openat2-Xraw.$(OBJEXT) +openat2_Xraw_LDADD = $(LDADD) +openat2_Xraw_DEPENDENCIES = libtests.a +openat2_Xverbose_SOURCES = openat2-Xverbose.c +openat2_Xverbose_OBJECTS = openat2-Xverbose.$(OBJEXT) +openat2_Xverbose_LDADD = $(LDADD) +openat2_Xverbose_DEPENDENCIES = libtests.a +openat2_v_SOURCES = openat2-v.c +openat2_v_OBJECTS = openat2-v.$(OBJEXT) +openat2_v_LDADD = $(LDADD) +openat2_v_DEPENDENCIES = libtests.a +openat2_v_y_SOURCES = openat2-v-y.c +openat2_v_y_OBJECTS = openat2-v-y.$(OBJEXT) +openat2_v_y_LDADD = $(LDADD) +openat2_v_y_DEPENDENCIES = libtests.a +openat2_v_y_Xabbrev_SOURCES = openat2-v-y-Xabbrev.c +openat2_v_y_Xabbrev_OBJECTS = openat2-v-y-Xabbrev.$(OBJEXT) +openat2_v_y_Xabbrev_LDADD = $(LDADD) +openat2_v_y_Xabbrev_DEPENDENCIES = libtests.a +openat2_v_y_Xraw_SOURCES = openat2-v-y-Xraw.c +openat2_v_y_Xraw_OBJECTS = openat2-v-y-Xraw.$(OBJEXT) +openat2_v_y_Xraw_LDADD = $(LDADD) +openat2_v_y_Xraw_DEPENDENCIES = libtests.a +openat2_v_y_Xverbose_SOURCES = openat2-v-y-Xverbose.c +openat2_v_y_Xverbose_OBJECTS = openat2-v-y-Xverbose.$(OBJEXT) +openat2_v_y_Xverbose_LDADD = $(LDADD) +openat2_v_y_Xverbose_DEPENDENCIES = libtests.a +openat2_y_SOURCES = openat2-y.c +openat2_y_OBJECTS = openat2-y.$(OBJEXT) +openat2_y_LDADD = $(LDADD) +openat2_y_DEPENDENCIES = libtests.a orphaned_process_group_SOURCES = orphaned_process_group.c orphaned_process_group_OBJECTS = orphaned_process_group.$(OBJEXT) orphaned_process_group_LDADD = $(LDADD) @@ -1899,10 +2680,69 @@ personality_Xverbose_SOURCES = personality-Xverbose.c personality_Xverbose_OBJECTS = personality-Xverbose.$(OBJEXT) personality_Xverbose_LDADD = $(LDADD) personality_Xverbose_DEPENDENCIES = libtests.a +pidfd_getfd_SOURCES = pidfd_getfd.c +pidfd_getfd_OBJECTS = pidfd_getfd.$(OBJEXT) +pidfd_getfd_LDADD = $(LDADD) +pidfd_getfd_DEPENDENCIES = libtests.a +pidfd_getfd_y_SOURCES = pidfd_getfd-y.c +pidfd_getfd_y_OBJECTS = pidfd_getfd-y.$(OBJEXT) +pidfd_getfd_y_LDADD = $(LDADD) +pidfd_getfd_y_DEPENDENCIES = libtests.a +pidfd_getfd_yy_SOURCES = pidfd_getfd-yy.c +pidfd_getfd_yy_OBJECTS = pidfd_getfd-yy.$(OBJEXT) +pidfd_getfd_yy_LDADD = $(LDADD) +pidfd_getfd_yy_DEPENDENCIES = libtests.a +pidfd_open_SOURCES = pidfd_open.c +pidfd_open_OBJECTS = pidfd_open.$(OBJEXT) +pidfd_open_LDADD = $(LDADD) +pidfd_open_DEPENDENCIES = libtests.a +pidfd_open__decode_fd_path_SOURCES = pidfd_open--decode-fd-path.c +pidfd_open__decode_fd_path_OBJECTS = \ + pidfd_open--decode-fd-path.$(OBJEXT) +pidfd_open__decode_fd_path_LDADD = $(LDADD) +pidfd_open__decode_fd_path_DEPENDENCIES = libtests.a +pidfd_open__decode_fd_pidfd_SOURCES = pidfd_open--decode-fd-pidfd.c +pidfd_open__decode_fd_pidfd_OBJECTS = \ + pidfd_open--decode-fd-pidfd.$(OBJEXT) +pidfd_open__decode_fd_pidfd_LDADD = $(LDADD) +pidfd_open__decode_fd_pidfd_DEPENDENCIES = libtests.a +pidfd_open__decode_fd_socket_SOURCES = pidfd_open--decode-fd-socket.c +pidfd_open__decode_fd_socket_OBJECTS = \ + pidfd_open--decode-fd-socket.$(OBJEXT) +pidfd_open__decode_fd_socket_LDADD = $(LDADD) +pidfd_open__decode_fd_socket_DEPENDENCIES = libtests.a +pidfd_open__pidns_translation_SOURCES = \ + pidfd_open--pidns-translation.c +pidfd_open__pidns_translation_OBJECTS = \ + pidfd_open--pidns-translation.$(OBJEXT) +pidfd_open__pidns_translation_LDADD = $(LDADD) +pidfd_open__pidns_translation_DEPENDENCIES = libtests.a +pidfd_open_P_SOURCES = pidfd_open-P.c +pidfd_open_P_OBJECTS = pidfd_open-P.$(OBJEXT) +pidfd_open_P_LDADD = $(LDADD) +pidfd_open_P_DEPENDENCIES = libtests.a +pidfd_open_y_SOURCES = pidfd_open-y.c +pidfd_open_y_OBJECTS = pidfd_open-y.$(OBJEXT) +pidfd_open_y_LDADD = $(LDADD) +pidfd_open_y_DEPENDENCIES = libtests.a +pidfd_open_yy_SOURCES = pidfd_open-yy.c +pidfd_open_yy_OBJECTS = pidfd_open-yy.$(OBJEXT) +pidfd_open_yy_LDADD = $(LDADD) +pidfd_open_yy_DEPENDENCIES = libtests.a pidfd_send_signal_SOURCES = pidfd_send_signal.c pidfd_send_signal_OBJECTS = pidfd_send_signal.$(OBJEXT) pidfd_send_signal_LDADD = $(LDADD) pidfd_send_signal_DEPENDENCIES = libtests.a +pidfd_send_signal__pidns_translation_SOURCES = \ + pidfd_send_signal--pidns-translation.c +pidfd_send_signal__pidns_translation_OBJECTS = \ + pidfd_send_signal--pidns-translation.$(OBJEXT) +pidfd_send_signal__pidns_translation_LDADD = $(LDADD) +pidfd_send_signal__pidns_translation_DEPENDENCIES = libtests.a +pidns_cache_SOURCES = pidns-cache.c +pidns_cache_OBJECTS = pidns-cache.$(OBJEXT) +pidns_cache_LDADD = $(LDADD) +pidns_cache_DEPENDENCIES = libtests.a pipe_SOURCES = pipe.c pipe_OBJECTS = pipe.$(OBJEXT) pipe_LDADD = $(LDADD) @@ -2008,6 +2848,10 @@ print_maxfd_SOURCES = print_maxfd.c print_maxfd_OBJECTS = print_maxfd.$(OBJEXT) print_maxfd_LDADD = $(LDADD) print_maxfd_DEPENDENCIES = libtests.a +print_ppid_tracerpid_SOURCES = print_ppid_tracerpid.c +print_ppid_tracerpid_OBJECTS = print_ppid_tracerpid.$(OBJEXT) +print_ppid_tracerpid_LDADD = $(LDADD) +print_ppid_tracerpid_DEPENDENCIES = libtests.a printpath_umovestr_SOURCES = printpath-umovestr.c printpath_umovestr_OBJECTS = printpath-umovestr.$(OBJEXT) printpath_umovestr_LDADD = $(LDADD) @@ -2057,14 +2901,31 @@ prlimit64_SOURCES = prlimit64.c prlimit64_OBJECTS = prlimit64.$(OBJEXT) prlimit64_LDADD = $(LDADD) prlimit64_DEPENDENCIES = libtests.a +prlimit64__pidns_translation_SOURCES = prlimit64--pidns-translation.c +prlimit64__pidns_translation_OBJECTS = \ + prlimit64--pidns-translation.$(OBJEXT) +prlimit64__pidns_translation_LDADD = $(LDADD) +prlimit64__pidns_translation_DEPENDENCIES = libtests.a process_vm_readv_SOURCES = process_vm_readv.c process_vm_readv_OBJECTS = process_vm_readv.$(OBJEXT) process_vm_readv_LDADD = $(LDADD) process_vm_readv_DEPENDENCIES = libtests.a +process_vm_readv__pidns_translation_SOURCES = \ + process_vm_readv--pidns-translation.c +process_vm_readv__pidns_translation_OBJECTS = \ + process_vm_readv--pidns-translation.$(OBJEXT) +process_vm_readv__pidns_translation_LDADD = $(LDADD) +process_vm_readv__pidns_translation_DEPENDENCIES = libtests.a process_vm_writev_SOURCES = process_vm_writev.c process_vm_writev_OBJECTS = process_vm_writev.$(OBJEXT) process_vm_writev_LDADD = $(LDADD) process_vm_writev_DEPENDENCIES = libtests.a +process_vm_writev__pidns_translation_SOURCES = \ + process_vm_writev--pidns-translation.c +process_vm_writev__pidns_translation_OBJECTS = \ + process_vm_writev--pidns-translation.$(OBJEXT) +process_vm_writev__pidns_translation_LDADD = $(LDADD) +process_vm_writev__pidns_translation_DEPENDENCIES = libtests.a pselect6_SOURCES = pselect6.c pselect6_OBJECTS = pselect6.$(OBJEXT) pselect6_LDADD = $(LDADD) @@ -2173,10 +3034,18 @@ reboot_SOURCES = reboot.c reboot_OBJECTS = reboot.$(OBJEXT) reboot_LDADD = $(LDADD) reboot_DEPENDENCIES = libtests.a +recv_MSG_TRUNC_SOURCES = recv-MSG_TRUNC.c +recv_MSG_TRUNC_OBJECTS = recv-MSG_TRUNC.$(OBJEXT) +recv_MSG_TRUNC_LDADD = $(LDADD) +recv_MSG_TRUNC_DEPENDENCIES = libtests.a recvfrom_SOURCES = recvfrom.c recvfrom_OBJECTS = recvfrom.$(OBJEXT) recvfrom_LDADD = $(LDADD) recvfrom_DEPENDENCIES = libtests.a +recvfrom_MSG_TRUNC_SOURCES = recvfrom-MSG_TRUNC.c +recvfrom_MSG_TRUNC_OBJECTS = recvfrom-MSG_TRUNC.$(OBJEXT) +recvfrom_MSG_TRUNC_LDADD = $(LDADD) +recvfrom_MSG_TRUNC_DEPENDENCIES = libtests.a recvmmsg_timeout_SOURCES = recvmmsg-timeout.c recvmmsg_timeout_OBJECTS = recvmmsg-timeout.$(OBJEXT) recvmmsg_timeout_LDADD = $(LDADD) @@ -2250,6 +3119,12 @@ rt_sigqueueinfo_SOURCES = rt_sigqueueinfo.c rt_sigqueueinfo_OBJECTS = rt_sigqueueinfo.$(OBJEXT) rt_sigqueueinfo_LDADD = $(LDADD) rt_sigqueueinfo_DEPENDENCIES = libtests.a +rt_sigqueueinfo__pidns_translation_SOURCES = \ + rt_sigqueueinfo--pidns-translation.c +rt_sigqueueinfo__pidns_translation_OBJECTS = \ + rt_sigqueueinfo--pidns-translation.$(OBJEXT) +rt_sigqueueinfo__pidns_translation_LDADD = $(LDADD) +rt_sigqueueinfo__pidns_translation_DEPENDENCIES = libtests.a rt_sigreturn_SOURCES = rt_sigreturn.c rt_sigreturn_OBJECTS = rt_sigreturn.$(OBJEXT) rt_sigreturn_LDADD = $(LDADD) @@ -2266,6 +3141,12 @@ rt_tgsigqueueinfo_SOURCES = rt_tgsigqueueinfo.c rt_tgsigqueueinfo_OBJECTS = rt_tgsigqueueinfo.$(OBJEXT) rt_tgsigqueueinfo_LDADD = $(LDADD) rt_tgsigqueueinfo_DEPENDENCIES = libtests.a +rt_tgsigqueueinfo__pidns_translation_SOURCES = \ + rt_tgsigqueueinfo--pidns-translation.c +rt_tgsigqueueinfo__pidns_translation_OBJECTS = \ + rt_tgsigqueueinfo--pidns-translation.$(OBJEXT) +rt_tgsigqueueinfo__pidns_translation_LDADD = $(LDADD) +rt_tgsigqueueinfo__pidns_translation_DEPENDENCIES = libtests.a run_expect_termsig_SOURCES = run_expect_termsig.c run_expect_termsig_OBJECTS = run_expect_termsig.$(OBJEXT) run_expect_termsig_LDADD = $(LDADD) @@ -2306,18 +3187,42 @@ sched_xetaffinity_SOURCES = sched_xetaffinity.c sched_xetaffinity_OBJECTS = sched_xetaffinity.$(OBJEXT) sched_xetaffinity_LDADD = $(LDADD) sched_xetaffinity_DEPENDENCIES = libtests.a +sched_xetaffinity__pidns_translation_SOURCES = \ + sched_xetaffinity--pidns-translation.c +sched_xetaffinity__pidns_translation_OBJECTS = \ + sched_xetaffinity--pidns-translation.$(OBJEXT) +sched_xetaffinity__pidns_translation_LDADD = $(LDADD) +sched_xetaffinity__pidns_translation_DEPENDENCIES = libtests.a sched_xetattr_SOURCES = sched_xetattr.c sched_xetattr_OBJECTS = sched_xetattr.$(OBJEXT) sched_xetattr_LDADD = $(LDADD) sched_xetattr_DEPENDENCIES = libtests.a +sched_xetattr__pidns_translation_SOURCES = \ + sched_xetattr--pidns-translation.c +sched_xetattr__pidns_translation_OBJECTS = \ + sched_xetattr--pidns-translation.$(OBJEXT) +sched_xetattr__pidns_translation_LDADD = $(LDADD) +sched_xetattr__pidns_translation_DEPENDENCIES = libtests.a sched_xetparam_SOURCES = sched_xetparam.c sched_xetparam_OBJECTS = sched_xetparam.$(OBJEXT) sched_xetparam_LDADD = $(LDADD) sched_xetparam_DEPENDENCIES = libtests.a +sched_xetparam__pidns_translation_SOURCES = \ + sched_xetparam--pidns-translation.c +sched_xetparam__pidns_translation_OBJECTS = \ + sched_xetparam--pidns-translation.$(OBJEXT) +sched_xetparam__pidns_translation_LDADD = $(LDADD) +sched_xetparam__pidns_translation_DEPENDENCIES = libtests.a sched_xetscheduler_SOURCES = sched_xetscheduler.c sched_xetscheduler_OBJECTS = sched_xetscheduler.$(OBJEXT) sched_xetscheduler_LDADD = $(LDADD) sched_xetscheduler_DEPENDENCIES = libtests.a +sched_xetscheduler__pidns_translation_SOURCES = \ + sched_xetscheduler--pidns-translation.c +sched_xetscheduler__pidns_translation_OBJECTS = \ + sched_xetscheduler--pidns-translation.$(OBJEXT) +sched_xetscheduler__pidns_translation_LDADD = $(LDADD) +sched_xetscheduler__pidns_translation_DEPENDENCIES = libtests.a sched_yield_SOURCES = sched_yield.c sched_yield_OBJECTS = sched_yield.$(OBJEXT) sched_yield_LDADD = $(LDADD) @@ -2354,6 +3259,14 @@ semop_SOURCES = semop.c semop_OBJECTS = semop.$(OBJEXT) semop_LDADD = $(LDADD) semop_DEPENDENCIES = libtests.a +semop_indirect_SOURCES = semop-indirect.c +semop_indirect_OBJECTS = semop-indirect.$(OBJEXT) +semop_indirect_LDADD = $(LDADD) +semop_indirect_DEPENDENCIES = libtests.a +semtimedop_SOURCES = semtimedop.c +semtimedop_OBJECTS = semtimedop.$(OBJEXT) +semtimedop_LDADD = $(LDADD) +semtimedop_DEPENDENCIES = libtests.a sendfile_SOURCES = sendfile.c sendfile_OBJECTS = sendfile.$(OBJEXT) sendfile_LDADD = $(LDADD) @@ -2366,6 +3279,18 @@ set_mempolicy_SOURCES = set_mempolicy.c set_mempolicy_OBJECTS = set_mempolicy.$(OBJEXT) set_mempolicy_LDADD = $(LDADD) set_mempolicy_DEPENDENCIES = libtests.a +set_mempolicy_Xabbrev_SOURCES = set_mempolicy-Xabbrev.c +set_mempolicy_Xabbrev_OBJECTS = set_mempolicy-Xabbrev.$(OBJEXT) +set_mempolicy_Xabbrev_LDADD = $(LDADD) +set_mempolicy_Xabbrev_DEPENDENCIES = libtests.a +set_mempolicy_Xraw_SOURCES = set_mempolicy-Xraw.c +set_mempolicy_Xraw_OBJECTS = set_mempolicy-Xraw.$(OBJEXT) +set_mempolicy_Xraw_LDADD = $(LDADD) +set_mempolicy_Xraw_DEPENDENCIES = libtests.a +set_mempolicy_Xverbose_SOURCES = set_mempolicy-Xverbose.c +set_mempolicy_Xverbose_OBJECTS = set_mempolicy-Xverbose.$(OBJEXT) +set_mempolicy_Xverbose_LDADD = $(LDADD) +set_mempolicy_Xverbose_DEPENDENCIES = libtests.a set_ptracer_any_SOURCES = set_ptracer_any.c set_ptracer_any_OBJECTS = set_ptracer_any.$(OBJEXT) set_ptracer_any_LDADD = $(LDADD) @@ -2422,6 +3347,10 @@ setns_SOURCES = setns.c setns_OBJECTS = setns.$(OBJEXT) setns_LDADD = $(LDADD) setns_DEPENDENCIES = libtests.a +setpgrp_exec_SOURCES = setpgrp-exec.c +setpgrp_exec_OBJECTS = setpgrp-exec.$(OBJEXT) +setpgrp_exec_LDADD = $(LDADD) +setpgrp_exec_DEPENDENCIES = libtests.a setregid_SOURCES = setregid.c setregid_OBJECTS = setregid.$(OBJEXT) setregid_LDADD = $(LDADD) @@ -2506,6 +3435,12 @@ signal_receive_SOURCES = signal_receive.c signal_receive_OBJECTS = signal_receive.$(OBJEXT) signal_receive_LDADD = $(LDADD) signal_receive_DEPENDENCIES = libtests.a +signal_receive__pidns_translation_SOURCES = \ + signal_receive--pidns-translation.c +signal_receive__pidns_translation_OBJECTS = \ + signal_receive--pidns-translation.$(OBJEXT) +signal_receive__pidns_translation_LDADD = $(LDADD) +signal_receive__pidns_translation_DEPENDENCIES = libtests.a signalfd4_SOURCES = signalfd4.c signalfd4_OBJECTS = signalfd4.$(OBJEXT) signalfd4_LDADD = $(LDADD) @@ -2542,6 +3477,12 @@ so_peercred_SOURCES = so_peercred.c so_peercred_OBJECTS = so_peercred.$(OBJEXT) so_peercred_LDADD = $(LDADD) so_peercred_DEPENDENCIES = libtests.a +so_peercred__pidns_translation_SOURCES = \ + so_peercred--pidns-translation.c +so_peercred__pidns_translation_OBJECTS = \ + so_peercred--pidns-translation.$(OBJEXT) +so_peercred__pidns_translation_LDADD = $(LDADD) +so_peercred__pidns_translation_DEPENDENCIES = libtests.a so_peercred_Xabbrev_SOURCES = so_peercred-Xabbrev.c so_peercred_Xabbrev_OBJECTS = so_peercred-Xabbrev.$(OBJEXT) so_peercred_Xabbrev_LDADD = $(LDADD) @@ -2604,6 +3545,12 @@ am_stack_fcall_OBJECTS = stack-fcall.$(OBJEXT) stack-fcall-0.$(OBJEXT) \ stack_fcall_OBJECTS = $(am_stack_fcall_OBJECTS) stack_fcall_LDADD = $(LDADD) stack_fcall_DEPENDENCIES = libtests.a +am_stack_fcall_attach_OBJECTS = stack-fcall-attach.$(OBJEXT) \ + stack-fcall-0.$(OBJEXT) stack-fcall-1.$(OBJEXT) \ + stack-fcall-2.$(OBJEXT) stack-fcall-3.$(OBJEXT) +stack_fcall_attach_OBJECTS = $(am_stack_fcall_attach_OBJECTS) +stack_fcall_attach_LDADD = $(LDADD) +stack_fcall_attach_DEPENDENCIES = libtests.a am_stack_fcall_mangled_OBJECTS = stack-fcall-mangled.$(OBJEXT) \ stack-fcall-mangled-0.$(OBJEXT) \ stack-fcall-mangled-1.$(OBJEXT) \ @@ -2628,10 +3575,84 @@ statfs64_SOURCES = statfs64.c statfs64_OBJECTS = statfs64.$(OBJEXT) statfs64_LDADD = $(LDADD) statfs64_DEPENDENCIES = libtests.a +status_all_SOURCES = status-all.c +status_all_OBJECTS = status-all.$(OBJEXT) +status_all_LDADD = $(LDADD) +status_all_DEPENDENCIES = libtests.a +status_failed_SOURCES = status-failed.c +status_failed_OBJECTS = status-failed.$(OBJEXT) +status_failed_LDADD = $(LDADD) +status_failed_DEPENDENCIES = libtests.a +status_failed_long_SOURCES = status-failed-long.c +status_failed_long_OBJECTS = status-failed-long.$(OBJEXT) +status_failed_long_LDADD = $(LDADD) +status_failed_long_DEPENDENCIES = libtests.a +status_failed_status_SOURCES = status-failed-status.c +status_failed_status_OBJECTS = status-failed-status.$(OBJEXT) +status_failed_status_LDADD = $(LDADD) +status_failed_status_DEPENDENCIES = libtests.a +status_none_SOURCES = status-none.c +status_none_OBJECTS = status-none.$(OBJEXT) +status_none_LDADD = $(LDADD) +status_none_DEPENDENCIES = libtests.a +status_none_f_SOURCES = status-none-f.c +status_none_f_OBJECTS = status-none-f.$(OBJEXT) +status_none_f_LDADD = $(LDADD) +status_none_f_DEPENDENCIES = libtests.a +status_none_threads_SOURCES = status-none-threads.c +status_none_threads_OBJECTS = status-none-threads.$(OBJEXT) +status_none_threads_DEPENDENCIES = $(LDADD) +status_successful_SOURCES = status-successful.c +status_successful_OBJECTS = status-successful.$(OBJEXT) +status_successful_LDADD = $(LDADD) +status_successful_DEPENDENCIES = libtests.a +status_successful_long_SOURCES = status-successful-long.c +status_successful_long_OBJECTS = status-successful-long.$(OBJEXT) +status_successful_long_LDADD = $(LDADD) +status_successful_long_DEPENDENCIES = libtests.a +status_successful_status_SOURCES = status-successful-status.c +status_successful_status_OBJECTS = status-successful-status.$(OBJEXT) +status_successful_status_LDADD = $(LDADD) +status_successful_status_DEPENDENCIES = libtests.a +status_unfinished_SOURCES = status-unfinished.c +status_unfinished_OBJECTS = status-unfinished.$(OBJEXT) +status_unfinished_LDADD = $(LDADD) +status_unfinished_DEPENDENCIES = libtests.a +status_unfinished_threads_SOURCES = status-unfinished-threads.c +status_unfinished_threads_OBJECTS = \ + status-unfinished-threads.$(OBJEXT) +status_unfinished_threads_DEPENDENCIES = $(LDADD) statx_SOURCES = statx.c statx_OBJECTS = statx.$(OBJEXT) statx_LDADD = $(LDADD) statx_DEPENDENCIES = libtests.a +strace__strings_in_hex_SOURCES = strace--strings-in-hex.c +strace__strings_in_hex_OBJECTS = strace--strings-in-hex.$(OBJEXT) +strace__strings_in_hex_LDADD = $(LDADD) +strace__strings_in_hex_DEPENDENCIES = libtests.a +strace__strings_in_hex_all_SOURCES = strace--strings-in-hex-all.c +strace__strings_in_hex_all_OBJECTS = \ + strace--strings-in-hex-all.$(OBJEXT) +strace__strings_in_hex_all_LDADD = $(LDADD) +strace__strings_in_hex_all_DEPENDENCIES = libtests.a +strace__strings_in_hex_non_ascii_SOURCES = \ + strace--strings-in-hex-non-ascii.c +strace__strings_in_hex_non_ascii_OBJECTS = \ + strace--strings-in-hex-non-ascii.$(OBJEXT) +strace__strings_in_hex_non_ascii_LDADD = $(LDADD) +strace__strings_in_hex_non_ascii_DEPENDENCIES = libtests.a +strace_n_SOURCES = strace-n.c +strace_n_OBJECTS = strace-n.$(OBJEXT) +strace_n_LDADD = $(LDADD) +strace_n_DEPENDENCIES = libtests.a +strace_x_SOURCES = strace-x.c +strace_x_OBJECTS = strace-x.$(OBJEXT) +strace_x_LDADD = $(LDADD) +strace_x_DEPENDENCIES = libtests.a +strace_xx_SOURCES = strace-xx.c +strace_xx_OBJECTS = strace-xx.$(OBJEXT) +strace_xx_LDADD = $(LDADD) +strace_xx_DEPENDENCIES = libtests.a swap_SOURCES = swap.c swap_OBJECTS = swap.$(OBJEXT) swap_LDADD = $(LDADD) @@ -2668,13 +3689,41 @@ syslog_SOURCES = syslog.c syslog_OBJECTS = syslog.$(OBJEXT) syslog_LDADD = $(LDADD) syslog_DEPENDENCIES = libtests.a +syslog_success_SOURCES = syslog-success.c +syslog_success_OBJECTS = syslog-success.$(OBJEXT) +syslog_success_LDADD = $(LDADD) +syslog_success_DEPENDENCIES = libtests.a tee_SOURCES = tee.c tee_OBJECTS = tee.$(OBJEXT) tee_LDADD = $(LDADD) tee_DEPENDENCIES = libtests.a +tgkill_SOURCES = tgkill.c +tgkill_OBJECTS = tgkill.$(OBJEXT) +tgkill_LDADD = $(LDADD) +tgkill_DEPENDENCIES = libtests.a +tgkill__pidns_translation_SOURCES = tgkill--pidns-translation.c +tgkill__pidns_translation_OBJECTS = \ + tgkill--pidns-translation.$(OBJEXT) +tgkill__pidns_translation_LDADD = $(LDADD) +tgkill__pidns_translation_DEPENDENCIES = libtests.a threads_execve_SOURCES = threads-execve.c threads_execve_OBJECTS = threads-execve.$(OBJEXT) threads_execve_DEPENDENCIES = $(am__DEPENDENCIES_1) $(LDADD) +threads_execve__quiet_thread_execve_SOURCES = \ + threads-execve--quiet-thread-execve.c +threads_execve__quiet_thread_execve_OBJECTS = \ + threads-execve--quiet-thread-execve.$(OBJEXT) +threads_execve__quiet_thread_execve_DEPENDENCIES = \ + $(am__DEPENDENCIES_1) $(LDADD) +threads_execve_q_SOURCES = threads-execve-q.c +threads_execve_q_OBJECTS = threads-execve-q.$(OBJEXT) +threads_execve_q_DEPENDENCIES = $(am__DEPENDENCIES_1) $(LDADD) +threads_execve_qq_SOURCES = threads-execve-qq.c +threads_execve_qq_OBJECTS = threads-execve-qq.$(OBJEXT) +threads_execve_qq_DEPENDENCIES = $(am__DEPENDENCIES_1) $(LDADD) +threads_execve_qqq_SOURCES = threads-execve-qqq.c +threads_execve_qqq_OBJECTS = threads-execve-qqq.$(OBJEXT) +threads_execve_qqq_DEPENDENCIES = $(am__DEPENDENCIES_1) $(LDADD) time_SOURCES = time.c time_OBJECTS = time.$(OBJEXT) time_LDADD = $(LDADD) @@ -2698,6 +3747,24 @@ times_fail_SOURCES = times-fail.c times_fail_OBJECTS = times-fail.$(OBJEXT) times_fail_LDADD = $(LDADD) times_fail_DEPENDENCIES = libtests.a +tkill_SOURCES = tkill.c +tkill_OBJECTS = tkill.$(OBJEXT) +tkill_LDADD = $(LDADD) +tkill_DEPENDENCIES = libtests.a +tkill__pidns_translation_SOURCES = tkill--pidns-translation.c +tkill__pidns_translation_OBJECTS = tkill--pidns-translation.$(OBJEXT) +tkill__pidns_translation_LDADD = $(LDADD) +tkill__pidns_translation_DEPENDENCIES = libtests.a +tracer_ppid_pgid_sid_SOURCES = tracer_ppid_pgid_sid.c +tracer_ppid_pgid_sid_OBJECTS = tracer_ppid_pgid_sid.$(OBJEXT) +tracer_ppid_pgid_sid_LDADD = $(LDADD) +tracer_ppid_pgid_sid_DEPENDENCIES = libtests.a +am_trie_test_OBJECTS = trie_test-trie_test.$(OBJEXT) \ + trie_test-trie_for_tests.$(OBJEXT) +trie_test_OBJECTS = $(am_trie_test_OBJECTS) +trie_test_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_1) +trie_test_LINK = $(CCLD) $(trie_test_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ truncate_SOURCES = truncate.c truncate_OBJECTS = truncate.$(OBJEXT) truncate_LDADD = $(LDADD) @@ -2746,6 +3813,14 @@ umovestr3_SOURCES = umovestr3.c umovestr3_OBJECTS = umovestr3.$(OBJEXT) umovestr3_LDADD = $(LDADD) umovestr3_DEPENDENCIES = libtests.a +umovestr_cached_SOURCES = umovestr_cached.c +umovestr_cached_OBJECTS = umovestr_cached.$(OBJEXT) +umovestr_cached_LDADD = $(LDADD) +umovestr_cached_DEPENDENCIES = libtests.a +umovestr_cached_adjacent_SOURCES = umovestr_cached_adjacent.c +umovestr_cached_adjacent_OBJECTS = umovestr_cached_adjacent.$(OBJEXT) +umovestr_cached_adjacent_LDADD = $(LDADD) +umovestr_cached_adjacent_DEPENDENCIES = libtests.a uname_SOURCES = uname.c uname_OBJECTS = uname.$(OBJEXT) uname_LDADD = $(LDADD) @@ -2851,6 +3926,12 @@ xet_robust_list_SOURCES = xet_robust_list.c xet_robust_list_OBJECTS = xet_robust_list.$(OBJEXT) xet_robust_list_LDADD = $(LDADD) xet_robust_list_DEPENDENCIES = libtests.a +xet_robust_list__pidns_translation_SOURCES = \ + xet_robust_list--pidns-translation.c +xet_robust_list__pidns_translation_OBJECTS = \ + xet_robust_list--pidns-translation.$(OBJEXT) +xet_robust_list__pidns_translation_LDADD = $(LDADD) +xet_robust_list__pidns_translation_DEPENDENCIES = libtests.a xet_thread_area_x86_SOURCES = xet_thread_area_x86.c xet_thread_area_x86_OBJECTS = xet_thread_area_x86.$(OBJEXT) xet_thread_area_x86_LDADD = $(LDADD) @@ -2863,10 +3944,21 @@ xetpgid_SOURCES = xetpgid.c xetpgid_OBJECTS = xetpgid.$(OBJEXT) xetpgid_LDADD = $(LDADD) xetpgid_DEPENDENCIES = libtests.a +xetpgid__pidns_translation_SOURCES = xetpgid--pidns-translation.c +xetpgid__pidns_translation_OBJECTS = \ + xetpgid--pidns-translation.$(OBJEXT) +xetpgid__pidns_translation_LDADD = $(LDADD) +xetpgid__pidns_translation_DEPENDENCIES = libtests.a xetpriority_SOURCES = xetpriority.c xetpriority_OBJECTS = xetpriority.$(OBJEXT) xetpriority_LDADD = $(LDADD) xetpriority_DEPENDENCIES = libtests.a +xetpriority__pidns_translation_SOURCES = \ + xetpriority--pidns-translation.c +xetpriority__pidns_translation_OBJECTS = \ + xetpriority--pidns-translation.$(OBJEXT) +xetpriority__pidns_translation_LDADD = $(LDADD) +xetpriority__pidns_translation_DEPENDENCIES = libtests.a xettimeofday_SOURCES = xettimeofday.c xettimeofday_OBJECTS = xettimeofday.$(OBJEXT) xettimeofday_LDADD = $(LDADD) @@ -2900,29 +3992,55 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/attach-f-p.Po ./$(DEPDIR)/attach-p-cmd-cmd.Po \ ./$(DEPDIR)/attach-p-cmd-p.Po \ ./$(DEPDIR)/block_reset_raise_run.Po \ + ./$(DEPDIR)/block_reset_run.Po \ ./$(DEPDIR)/bpf-obj_get_info_by_fd-prog-v.Po \ ./$(DEPDIR)/bpf-obj_get_info_by_fd-prog.Po \ ./$(DEPDIR)/bpf-obj_get_info_by_fd-v.Po \ ./$(DEPDIR)/bpf-obj_get_info_by_fd.Po \ - ./$(DEPDIR)/bpf-success-v.Po ./$(DEPDIR)/bpf-success.Po \ - ./$(DEPDIR)/bpf-v.Po ./$(DEPDIR)/bpf.Po ./$(DEPDIR)/brk.Po \ - ./$(DEPDIR)/btrfs.Po ./$(DEPDIR)/caps-abbrev.Po \ - ./$(DEPDIR)/caps.Po ./$(DEPDIR)/check_sigblock.Po \ - ./$(DEPDIR)/check_sigign.Po ./$(DEPDIR)/chmod.Po \ - ./$(DEPDIR)/chown.Po ./$(DEPDIR)/chown32.Po \ - ./$(DEPDIR)/chroot.Po ./$(DEPDIR)/clock_adjtime.Po \ - ./$(DEPDIR)/clock_nanosleep.Po ./$(DEPDIR)/clock_xettime.Po \ - ./$(DEPDIR)/clone_parent.Po ./$(DEPDIR)/clone_ptrace.Po \ - ./$(DEPDIR)/copy_file_range.Po ./$(DEPDIR)/count-f.Po \ - ./$(DEPDIR)/creat.Po ./$(DEPDIR)/delay.Po \ - ./$(DEPDIR)/delete_module.Po ./$(DEPDIR)/dev-yy.Po \ - ./$(DEPDIR)/dup.Po ./$(DEPDIR)/dup2.Po ./$(DEPDIR)/dup3.Po \ - ./$(DEPDIR)/epoll_create.Po ./$(DEPDIR)/epoll_create1.Po \ - ./$(DEPDIR)/epoll_ctl.Po ./$(DEPDIR)/epoll_pwait.Po \ - ./$(DEPDIR)/epoll_wait.Po ./$(DEPDIR)/erestartsys.Po \ - ./$(DEPDIR)/eventfd.Po ./$(DEPDIR)/execve-v.Po \ - ./$(DEPDIR)/execve.Po ./$(DEPDIR)/execveat-v.Po \ - ./$(DEPDIR)/execveat.Po ./$(DEPDIR)/faccessat.Po \ + ./$(DEPDIR)/bpf-success-long-y.Po ./$(DEPDIR)/bpf-success-v.Po \ + ./$(DEPDIR)/bpf-success.Po ./$(DEPDIR)/bpf-v.Po \ + ./$(DEPDIR)/bpf.Po ./$(DEPDIR)/brk.Po ./$(DEPDIR)/btrfs.Po \ + ./$(DEPDIR)/caps-abbrev.Po ./$(DEPDIR)/caps.Po \ + ./$(DEPDIR)/check_sigblock.Po ./$(DEPDIR)/check_sigign.Po \ + ./$(DEPDIR)/chmod.Po ./$(DEPDIR)/chown.Po \ + ./$(DEPDIR)/chown32.Po ./$(DEPDIR)/chroot.Po \ + ./$(DEPDIR)/clock_adjtime.Po ./$(DEPDIR)/clock_nanosleep.Po \ + ./$(DEPDIR)/clock_xettime.Po ./$(DEPDIR)/clone-flags.Po \ + ./$(DEPDIR)/clone3-Xabbrev.Po ./$(DEPDIR)/clone3-Xraw.Po \ + ./$(DEPDIR)/clone3-Xverbose.Po \ + ./$(DEPDIR)/clone3-success-Xabbrev.Po \ + ./$(DEPDIR)/clone3-success-Xraw.Po \ + ./$(DEPDIR)/clone3-success-Xverbose.Po \ + ./$(DEPDIR)/clone3-success.Po ./$(DEPDIR)/clone3.Po \ + ./$(DEPDIR)/clone_parent--quiet-exit.Po \ + ./$(DEPDIR)/clone_parent-q.Po ./$(DEPDIR)/clone_parent-qq.Po \ + ./$(DEPDIR)/clone_parent.Po \ + ./$(DEPDIR)/clone_ptrace--quiet-attach.Po \ + ./$(DEPDIR)/clone_ptrace--quiet-exit.Po \ + ./$(DEPDIR)/clone_ptrace-q.Po ./$(DEPDIR)/clone_ptrace-qq.Po \ + ./$(DEPDIR)/clone_ptrace.Po ./$(DEPDIR)/close_range-P.Po \ + ./$(DEPDIR)/close_range-y.Po ./$(DEPDIR)/close_range-yy.Po \ + ./$(DEPDIR)/close_range.Po ./$(DEPDIR)/copy_file_range.Po \ + ./$(DEPDIR)/count-f.Po ./$(DEPDIR)/creat.Po \ + ./$(DEPDIR)/delay.Po ./$(DEPDIR)/delete_module.Po \ + ./$(DEPDIR)/dev--decode-fds-dev.Po \ + ./$(DEPDIR)/dev--decode-fds-path.Po \ + ./$(DEPDIR)/dev--decode-fds-socket.Po ./$(DEPDIR)/dev-yy.Po \ + ./$(DEPDIR)/dup-P.Po ./$(DEPDIR)/dup-y.Po \ + ./$(DEPDIR)/dup-yy.Po ./$(DEPDIR)/dup.Po ./$(DEPDIR)/dup2-P.Po \ + ./$(DEPDIR)/dup2-y.Po ./$(DEPDIR)/dup2-yy.Po \ + ./$(DEPDIR)/dup2.Po ./$(DEPDIR)/dup3-P.Po \ + ./$(DEPDIR)/dup3-y.Po ./$(DEPDIR)/dup3-yy.Po \ + ./$(DEPDIR)/dup3.Po ./$(DEPDIR)/epoll_create.Po \ + ./$(DEPDIR)/epoll_create1.Po ./$(DEPDIR)/epoll_ctl.Po \ + ./$(DEPDIR)/epoll_pwait.Po ./$(DEPDIR)/epoll_wait.Po \ + ./$(DEPDIR)/erestartsys.Po ./$(DEPDIR)/eventfd.Po \ + ./$(DEPDIR)/execve-v.Po ./$(DEPDIR)/execve.Po \ + ./$(DEPDIR)/execveat-v.Po ./$(DEPDIR)/execveat.Po \ + ./$(DEPDIR)/faccessat-P.Po ./$(DEPDIR)/faccessat-y.Po \ + ./$(DEPDIR)/faccessat-yy.Po ./$(DEPDIR)/faccessat.Po \ + ./$(DEPDIR)/faccessat2-P.Po ./$(DEPDIR)/faccessat2-y.Po \ + ./$(DEPDIR)/faccessat2-yy.Po ./$(DEPDIR)/faccessat2.Po \ ./$(DEPDIR)/fadvise64.Po ./$(DEPDIR)/fadvise64_64.Po \ ./$(DEPDIR)/fallocate.Po ./$(DEPDIR)/fanotify_init.Po \ ./$(DEPDIR)/fanotify_mark-Xabbrev.Po \ @@ -2931,12 +4049,19 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/fanotify_mark.Po ./$(DEPDIR)/fchdir.Po \ ./$(DEPDIR)/fchmod.Po ./$(DEPDIR)/fchmodat.Po \ ./$(DEPDIR)/fchown.Po ./$(DEPDIR)/fchown32.Po \ - ./$(DEPDIR)/fchownat.Po ./$(DEPDIR)/fcntl.Po \ + ./$(DEPDIR)/fchownat.Po \ + ./$(DEPDIR)/fcntl--pidns-translation.Po ./$(DEPDIR)/fcntl.Po \ + ./$(DEPDIR)/fcntl64--pidns-translation.Po \ ./$(DEPDIR)/fcntl64.Po ./$(DEPDIR)/fdatasync.Po \ ./$(DEPDIR)/fflush.Po ./$(DEPDIR)/file_handle.Po \ ./$(DEPDIR)/file_ioctl.Po ./$(DEPDIR)/filter-unavailable.Po \ - ./$(DEPDIR)/finit_module.Po ./$(DEPDIR)/flock.Po \ - ./$(DEPDIR)/fork-f.Po ./$(DEPDIR)/fstat-Xabbrev.Po \ + ./$(DEPDIR)/filter_seccomp-flag.Po \ + ./$(DEPDIR)/filter_seccomp-perf.Po ./$(DEPDIR)/finit_module.Po \ + ./$(DEPDIR)/flock.Po ./$(DEPDIR)/fork--pidns-translation.Po \ + ./$(DEPDIR)/fork-f.Po ./$(DEPDIR)/fsconfig-P.Po \ + ./$(DEPDIR)/fsconfig.Po ./$(DEPDIR)/fsmount.Po \ + ./$(DEPDIR)/fsopen.Po ./$(DEPDIR)/fspick-P.Po \ + ./$(DEPDIR)/fspick.Po ./$(DEPDIR)/fstat-Xabbrev.Po \ ./$(DEPDIR)/fstat-Xraw.Po ./$(DEPDIR)/fstat-Xverbose.Po \ ./$(DEPDIR)/fstat.Po ./$(DEPDIR)/fstat64-Xabbrev.Po \ ./$(DEPDIR)/fstat64-Xraw.Po ./$(DEPDIR)/fstat64-Xverbose.Po \ @@ -2946,30 +4071,66 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/fsync.Po ./$(DEPDIR)/ftruncate.Po \ ./$(DEPDIR)/ftruncate64-ftruncate64.Po ./$(DEPDIR)/futex.Po \ ./$(DEPDIR)/futimesat.Po ./$(DEPDIR)/get_mempolicy.Po \ - ./$(DEPDIR)/getcpu.Po ./$(DEPDIR)/getcwd.Po \ - ./$(DEPDIR)/getdents.Po ./$(DEPDIR)/getdents64.Po \ - ./$(DEPDIR)/getegid.Po ./$(DEPDIR)/getegid32.Po \ - ./$(DEPDIR)/geteuid.Po ./$(DEPDIR)/geteuid32.Po \ - ./$(DEPDIR)/getgid.Po ./$(DEPDIR)/getgid32.Po \ - ./$(DEPDIR)/getgroups.Po ./$(DEPDIR)/getgroups32.Po \ - ./$(DEPDIR)/getpeername.Po ./$(DEPDIR)/getpgrp.Po \ - ./$(DEPDIR)/getpid.Po ./$(DEPDIR)/getppid.Po \ - ./$(DEPDIR)/getrandom.Po ./$(DEPDIR)/getresgid.Po \ - ./$(DEPDIR)/getresgid32.Po ./$(DEPDIR)/getresuid.Po \ - ./$(DEPDIR)/getresuid32.Po ./$(DEPDIR)/getrlimit.Po \ - ./$(DEPDIR)/getrusage.Po ./$(DEPDIR)/getsid.Po \ - ./$(DEPDIR)/getsockname.Po ./$(DEPDIR)/gettid.Po \ + ./$(DEPDIR)/get_process_reaper.Po ./$(DEPDIR)/getcpu.Po \ + ./$(DEPDIR)/getcwd.Po ./$(DEPDIR)/getdents-v.Po \ + ./$(DEPDIR)/getdents.Po ./$(DEPDIR)/getdents64-v.Po \ + ./$(DEPDIR)/getdents64.Po ./$(DEPDIR)/getegid.Po \ + ./$(DEPDIR)/getegid32.Po ./$(DEPDIR)/geteuid.Po \ + ./$(DEPDIR)/geteuid32.Po ./$(DEPDIR)/getgid.Po \ + ./$(DEPDIR)/getgid32.Po ./$(DEPDIR)/getgroups.Po \ + ./$(DEPDIR)/getgroups32.Po ./$(DEPDIR)/getpeername.Po \ + ./$(DEPDIR)/getpgrp--pidns-translation.Po \ + ./$(DEPDIR)/getpgrp.Po \ + ./$(DEPDIR)/getpid--pidns-translation.Po ./$(DEPDIR)/getpid.Po \ + ./$(DEPDIR)/getppid.Po ./$(DEPDIR)/getrandom.Po \ + ./$(DEPDIR)/getresgid.Po ./$(DEPDIR)/getresgid32.Po \ + ./$(DEPDIR)/getresuid.Po ./$(DEPDIR)/getresuid32.Po \ + ./$(DEPDIR)/getrlimit.Po ./$(DEPDIR)/getrusage.Po \ + ./$(DEPDIR)/getsid--pidns-translation.Po ./$(DEPDIR)/getsid.Po \ + ./$(DEPDIR)/getsockname.Po \ + ./$(DEPDIR)/gettid--pidns-translation.Po ./$(DEPDIR)/gettid.Po \ ./$(DEPDIR)/getuid.Po ./$(DEPDIR)/getuid32.Po \ - ./$(DEPDIR)/getxxid.Po ./$(DEPDIR)/group_req.Po \ + ./$(DEPDIR)/getxgid.Po ./$(DEPDIR)/getxpid.Po \ + ./$(DEPDIR)/getxuid.Po ./$(DEPDIR)/group_req.Po \ ./$(DEPDIR)/inet-cmsg.Po ./$(DEPDIR)/init_module.Po \ ./$(DEPDIR)/inject-nf.Po ./$(DEPDIR)/inotify.Po \ - ./$(DEPDIR)/inotify_init1.Po ./$(DEPDIR)/int_0x80.Po \ - ./$(DEPDIR)/io_uring_enter.Po ./$(DEPDIR)/io_uring_register.Po \ - ./$(DEPDIR)/io_uring_setup.Po ./$(DEPDIR)/ioctl.Po \ + ./$(DEPDIR)/inotify_init-y.Po ./$(DEPDIR)/inotify_init.Po \ + ./$(DEPDIR)/inotify_init1-y.Po ./$(DEPDIR)/inotify_init1.Po \ + ./$(DEPDIR)/int_0x80.Po ./$(DEPDIR)/io_uring_enter.Po \ + ./$(DEPDIR)/io_uring_register.Po ./$(DEPDIR)/io_uring_setup.Po \ + ./$(DEPDIR)/ioctl.Po \ + ./$(DEPDIR)/ioctl_block--pidns-translation.Po \ ./$(DEPDIR)/ioctl_block.Po ./$(DEPDIR)/ioctl_dm-v.Po \ - ./$(DEPDIR)/ioctl_dm.Po ./$(DEPDIR)/ioctl_evdev-success-v.Po \ + ./$(DEPDIR)/ioctl_dm.Po ./$(DEPDIR)/ioctl_evdev-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_evdev-Xraw.Po \ + ./$(DEPDIR)/ioctl_evdev-Xverbose.Po \ + ./$(DEPDIR)/ioctl_evdev-success-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_evdev-success-Xraw.Po \ + ./$(DEPDIR)/ioctl_evdev-success-Xverbose.Po \ + ./$(DEPDIR)/ioctl_evdev-success-v-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_evdev-success-v-Xraw.Po \ + ./$(DEPDIR)/ioctl_evdev-success-v-Xverbose.Po \ + ./$(DEPDIR)/ioctl_evdev-success-v.Po \ ./$(DEPDIR)/ioctl_evdev-success.Po \ + ./$(DEPDIR)/ioctl_evdev-v-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_evdev-v-Xraw.Po \ + ./$(DEPDIR)/ioctl_evdev-v-Xverbose.Po \ ./$(DEPDIR)/ioctl_evdev-v.Po ./$(DEPDIR)/ioctl_evdev.Po \ + ./$(DEPDIR)/ioctl_hdio-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_hdio-Xraw.Po \ + ./$(DEPDIR)/ioctl_hdio-Xverbose.Po \ + ./$(DEPDIR)/ioctl_hdio-success-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_hdio-success-Xraw.Po \ + ./$(DEPDIR)/ioctl_hdio-success-Xverbose.Po \ + ./$(DEPDIR)/ioctl_hdio-success-v-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_hdio-success-v-Xraw.Po \ + ./$(DEPDIR)/ioctl_hdio-success-v-Xverbose.Po \ + ./$(DEPDIR)/ioctl_hdio-success-v.Po \ + ./$(DEPDIR)/ioctl_hdio-success.Po \ + ./$(DEPDIR)/ioctl_hdio-v-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_hdio-v-Xraw.Po \ + ./$(DEPDIR)/ioctl_hdio-v-Xverbose.Po \ + ./$(DEPDIR)/ioctl_hdio-v.Po ./$(DEPDIR)/ioctl_hdio.Po \ ./$(DEPDIR)/ioctl_inotify.Po ./$(DEPDIR)/ioctl_kvm_run-v.Po \ ./$(DEPDIR)/ioctl_kvm_run.Po \ ./$(DEPDIR)/ioctl_kvm_run_auxstr_vcpu.Po \ @@ -2981,21 +4142,38 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/ioctl_rtc-v.Po ./$(DEPDIR)/ioctl_rtc.Po \ ./$(DEPDIR)/ioctl_scsi.Po ./$(DEPDIR)/ioctl_sg_io_v3.Po \ ./$(DEPDIR)/ioctl_sg_io_v4.Po \ - ./$(DEPDIR)/ioctl_sock_gifconf.Po ./$(DEPDIR)/ioctl_uffdio.Po \ - ./$(DEPDIR)/ioctl_v4l2.Po ./$(DEPDIR)/ioperm.Po \ - ./$(DEPDIR)/iopl.Po ./$(DEPDIR)/ioprio-Xabbrev.Po \ - ./$(DEPDIR)/ioprio-Xraw.Po ./$(DEPDIR)/ioprio-Xverbose.Po \ - ./$(DEPDIR)/ioprio.Po ./$(DEPDIR)/ip_mreq.Po \ - ./$(DEPDIR)/ipc.Po ./$(DEPDIR)/ipc_msg-Xabbrev.Po \ - ./$(DEPDIR)/ipc_msg-Xraw.Po ./$(DEPDIR)/ipc_msg-Xverbose.Po \ - ./$(DEPDIR)/ipc_msg.Po ./$(DEPDIR)/ipc_msgbuf-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_sock_gifconf.Po ./$(DEPDIR)/ioctl_tee.Po \ + ./$(DEPDIR)/ioctl_uffdio.Po ./$(DEPDIR)/ioctl_v4l2-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_v4l2-Xraw.Po \ + ./$(DEPDIR)/ioctl_v4l2-Xverbose.Po \ + ./$(DEPDIR)/ioctl_v4l2-success-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_v4l2-success-Xraw.Po \ + ./$(DEPDIR)/ioctl_v4l2-success-Xverbose.Po \ + ./$(DEPDIR)/ioctl_v4l2-success-v-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_v4l2-success-v-Xraw.Po \ + ./$(DEPDIR)/ioctl_v4l2-success-v-Xverbose.Po \ + ./$(DEPDIR)/ioctl_v4l2-success-v.Po \ + ./$(DEPDIR)/ioctl_v4l2-success.Po \ + ./$(DEPDIR)/ioctl_v4l2-v-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_v4l2-v-Xraw.Po \ + ./$(DEPDIR)/ioctl_v4l2-v-Xverbose.Po \ + ./$(DEPDIR)/ioctl_v4l2-v.Po ./$(DEPDIR)/ioctl_v4l2.Po \ + ./$(DEPDIR)/ioctl_watchdog.Po ./$(DEPDIR)/ioperm.Po \ + ./$(DEPDIR)/iopl.Po ./$(DEPDIR)/ioprio--pidns-translation.Po \ + ./$(DEPDIR)/ioprio-Xabbrev.Po ./$(DEPDIR)/ioprio-Xraw.Po \ + ./$(DEPDIR)/ioprio-Xverbose.Po ./$(DEPDIR)/ioprio.Po \ + ./$(DEPDIR)/ip_mreq.Po ./$(DEPDIR)/ipc.Po \ + ./$(DEPDIR)/ipc_msg-Xabbrev.Po ./$(DEPDIR)/ipc_msg-Xraw.Po \ + ./$(DEPDIR)/ipc_msg-Xverbose.Po ./$(DEPDIR)/ipc_msg.Po \ + ./$(DEPDIR)/ipc_msgbuf-Xabbrev.Po \ ./$(DEPDIR)/ipc_msgbuf-Xraw.Po \ ./$(DEPDIR)/ipc_msgbuf-Xverbose.Po ./$(DEPDIR)/ipc_msgbuf.Po \ ./$(DEPDIR)/ipc_sem-Xabbrev.Po ./$(DEPDIR)/ipc_sem-Xraw.Po \ ./$(DEPDIR)/ipc_sem-Xverbose.Po ./$(DEPDIR)/ipc_sem.Po \ ./$(DEPDIR)/ipc_shm-Xabbrev.Po ./$(DEPDIR)/ipc_shm-Xraw.Po \ ./$(DEPDIR)/ipc_shm-Xverbose.Po ./$(DEPDIR)/ipc_shm.Po \ - ./$(DEPDIR)/is_linux_mips_n64.Po ./$(DEPDIR)/kcmp-y.Po \ + ./$(DEPDIR)/is_linux_mips_n64.Po \ + ./$(DEPDIR)/kcmp-y--pidns-translation.Po ./$(DEPDIR)/kcmp-y.Po \ ./$(DEPDIR)/kcmp.Po ./$(DEPDIR)/kern_features.Po \ ./$(DEPDIR)/kernel_version-Xabbrev.Po \ ./$(DEPDIR)/kernel_version-Xraw.Po \ @@ -3003,10 +4181,12 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/kernel_version.Po ./$(DEPDIR)/kexec_file_load.Po \ ./$(DEPDIR)/kexec_load.Po ./$(DEPDIR)/keyctl-Xabbrev.Po \ ./$(DEPDIR)/keyctl-Xraw.Po ./$(DEPDIR)/keyctl-Xverbose.Po \ - ./$(DEPDIR)/keyctl.Po ./$(DEPDIR)/kill.Po \ - ./$(DEPDIR)/kill_child.Po ./$(DEPDIR)/ksysent.Po \ - ./$(DEPDIR)/lchown.Po ./$(DEPDIR)/lchown32.Po \ + ./$(DEPDIR)/keyctl.Po ./$(DEPDIR)/kill--pidns-translation.Po \ + ./$(DEPDIR)/kill.Po ./$(DEPDIR)/kill_child.Po \ + ./$(DEPDIR)/ksysent.Po ./$(DEPDIR)/lchown.Po \ + ./$(DEPDIR)/lchown32.Po \ ./$(DEPDIR)/libtests_a-create_nl_socket.Po \ + ./$(DEPDIR)/libtests_a-create_tmpfile.Po \ ./$(DEPDIR)/libtests_a-errno2name.Po \ ./$(DEPDIR)/libtests_a-error_msg.Po \ ./$(DEPDIR)/libtests_a-fill_memory.Po \ @@ -3018,37 +4198,48 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/libtests_a-inode_of_sockfd.Po \ ./$(DEPDIR)/libtests_a-libmmsg.Po \ ./$(DEPDIR)/libtests_a-libsocketcall.Po \ + ./$(DEPDIR)/libtests_a-lock_file.Po \ ./$(DEPDIR)/libtests_a-overflowuid.Po \ + ./$(DEPDIR)/libtests_a-pidns.Po \ ./$(DEPDIR)/libtests_a-pipe_maxfd.Po \ ./$(DEPDIR)/libtests_a-print_quoted_string.Po \ ./$(DEPDIR)/libtests_a-print_time.Po \ ./$(DEPDIR)/libtests_a-printflags.Po \ - ./$(DEPDIR)/libtests_a-printxval.Po \ + ./$(DEPDIR)/libtests_a-printxval-Xabbrev.Po \ + ./$(DEPDIR)/libtests_a-printxval-Xraw.Po \ + ./$(DEPDIR)/libtests_a-printxval-Xverbose.Po \ ./$(DEPDIR)/libtests_a-signal2name.Po \ ./$(DEPDIR)/libtests_a-skip_unavailable.Po \ ./$(DEPDIR)/libtests_a-sprintrc.Po \ + ./$(DEPDIR)/libtests_a-status.Po \ ./$(DEPDIR)/libtests_a-tail_alloc.Po \ ./$(DEPDIR)/libtests_a-test_printpath.Po \ ./$(DEPDIR)/libtests_a-test_printstrn.Po \ ./$(DEPDIR)/libtests_a-test_ucopy.Po \ - ./$(DEPDIR)/libtests_a-tprintf.Po ./$(DEPDIR)/link.Po \ - ./$(DEPDIR)/linkat.Po ./$(DEPDIR)/list_sigaction_signum.Po \ - ./$(DEPDIR)/llseek.Po ./$(DEPDIR)/localtime.Po \ - ./$(DEPDIR)/lookup_dcookie.Po ./$(DEPDIR)/looping_threads.Po \ - ./$(DEPDIR)/lseek.Po ./$(DEPDIR)/lstat.Po \ - ./$(DEPDIR)/lstat64-lstat64.Po ./$(DEPDIR)/madvise.Po \ - ./$(DEPDIR)/mbind.Po ./$(DEPDIR)/membarrier.Po \ - ./$(DEPDIR)/memfd_create-Xabbrev.Po \ + ./$(DEPDIR)/libtests_a-tprintf.Po \ + ./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po \ + ./$(DEPDIR)/link.Po ./$(DEPDIR)/linkat.Po \ + ./$(DEPDIR)/list_sigaction_signum.Po ./$(DEPDIR)/llseek.Po \ + ./$(DEPDIR)/localtime.Po ./$(DEPDIR)/lookup_dcookie.Po \ + ./$(DEPDIR)/looping_threads.Po ./$(DEPDIR)/lseek.Po \ + ./$(DEPDIR)/lstat.Po ./$(DEPDIR)/lstat64-lstat64.Po \ + ./$(DEPDIR)/madvise.Po \ + ./$(DEPDIR)/maybe_switch_current_tcp--quiet-thread-execve.Po \ + ./$(DEPDIR)/maybe_switch_current_tcp.Po \ + ./$(DEPDIR)/mbind-Xabbrev.Po ./$(DEPDIR)/mbind-Xraw.Po \ + ./$(DEPDIR)/mbind-Xverbose.Po ./$(DEPDIR)/mbind.Po \ + ./$(DEPDIR)/membarrier.Po ./$(DEPDIR)/memfd_create-Xabbrev.Po \ ./$(DEPDIR)/memfd_create-Xraw.Po \ ./$(DEPDIR)/memfd_create-Xverbose.Po \ - ./$(DEPDIR)/memfd_create.Po ./$(DEPDIR)/migrate_pages.Po \ - ./$(DEPDIR)/mincore.Po ./$(DEPDIR)/mkdir.Po \ - ./$(DEPDIR)/mkdirat.Po ./$(DEPDIR)/mknod.Po \ - ./$(DEPDIR)/mknodat.Po ./$(DEPDIR)/mlock.Po \ - ./$(DEPDIR)/mlock2.Po ./$(DEPDIR)/mlockall.Po \ - ./$(DEPDIR)/mmap-Xabbrev.Po ./$(DEPDIR)/mmap-Xraw.Po \ - ./$(DEPDIR)/mmap-Xverbose.Po ./$(DEPDIR)/mmap.Po \ - ./$(DEPDIR)/mmap64-mmap64.Po \ + ./$(DEPDIR)/memfd_create.Po \ + ./$(DEPDIR)/migrate_pages--pidns-translation.Po \ + ./$(DEPDIR)/migrate_pages.Po ./$(DEPDIR)/mincore.Po \ + ./$(DEPDIR)/mkdir.Po ./$(DEPDIR)/mkdirat.Po \ + ./$(DEPDIR)/mknod.Po ./$(DEPDIR)/mknodat.Po \ + ./$(DEPDIR)/mlock.Po ./$(DEPDIR)/mlock2.Po \ + ./$(DEPDIR)/mlockall.Po ./$(DEPDIR)/mmap-Xabbrev.Po \ + ./$(DEPDIR)/mmap-Xraw.Po ./$(DEPDIR)/mmap-Xverbose.Po \ + ./$(DEPDIR)/mmap.Po ./$(DEPDIR)/mmap64-mmap64.Po \ ./$(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Po \ ./$(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Po \ ./$(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Po \ @@ -3056,24 +4247,34 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/mmsg_name-v.Po ./$(DEPDIR)/mmsg_name.Po \ ./$(DEPDIR)/modify_ldt.Po ./$(DEPDIR)/mount-Xabbrev.Po \ ./$(DEPDIR)/mount-Xraw.Po ./$(DEPDIR)/mount-Xverbose.Po \ - ./$(DEPDIR)/mount.Po ./$(DEPDIR)/move_pages-Xabbrev.Po \ + ./$(DEPDIR)/mount.Po ./$(DEPDIR)/move_mount-P.Po \ + ./$(DEPDIR)/move_mount.Po \ + ./$(DEPDIR)/move_pages--pidns-translation.Po \ + ./$(DEPDIR)/move_pages-Xabbrev.Po \ ./$(DEPDIR)/move_pages-Xraw.Po \ ./$(DEPDIR)/move_pages-Xverbose.Po ./$(DEPDIR)/move_pages.Po \ ./$(DEPDIR)/mq.Po ./$(DEPDIR)/mq_sendrecv-read.Po \ ./$(DEPDIR)/mq_sendrecv-write.Po ./$(DEPDIR)/mq_sendrecv.Po \ ./$(DEPDIR)/msg_control-v.Po ./$(DEPDIR)/msg_control.Po \ ./$(DEPDIR)/msg_name.Po ./$(DEPDIR)/munlockall.Po \ - ./$(DEPDIR)/nanosleep.Po ./$(DEPDIR)/net-accept-connect.Po \ + ./$(DEPDIR)/nanosleep.Po \ + ./$(DEPDIR)/net--decode-fds-dev-netlink.Po \ + ./$(DEPDIR)/net--decode-fds-none-netlink.Po \ + ./$(DEPDIR)/net--decode-fds-path-netlink.Po \ + ./$(DEPDIR)/net--decode-fds-socket-netlink.Po \ + ./$(DEPDIR)/net-accept-connect.Po \ ./$(DEPDIR)/net-icmp_filter.Po \ ./$(DEPDIR)/net-packet_mreq-Xabbrev.Po \ ./$(DEPDIR)/net-packet_mreq-Xraw.Po \ ./$(DEPDIR)/net-packet_mreq-Xverbose.Po \ - ./$(DEPDIR)/net-packet_mreq.Po ./$(DEPDIR)/net-sockaddr.Po \ - ./$(DEPDIR)/net-tpacket_req.Po \ + ./$(DEPDIR)/net-packet_mreq.Po \ + ./$(DEPDIR)/net-sockaddr--pidns-translation.Po \ + ./$(DEPDIR)/net-sockaddr.Po ./$(DEPDIR)/net-tpacket_req.Po \ ./$(DEPDIR)/net-tpacket_stats-success.Po \ ./$(DEPDIR)/net-tpacket_stats.Po ./$(DEPDIR)/net-y-unix.Po \ ./$(DEPDIR)/net-yy-inet.Po ./$(DEPDIR)/net-yy-inet6.Po \ ./$(DEPDIR)/net-yy-netlink.Po ./$(DEPDIR)/net-yy-unix.Po \ + ./$(DEPDIR)/netlink_audit--pidns-translation.Po \ ./$(DEPDIR)/netlink_audit.Po ./$(DEPDIR)/netlink_crypto.Po \ ./$(DEPDIR)/netlink_generic.Po \ ./$(DEPDIR)/netlink_inet_diag.Po \ @@ -3104,7 +4305,9 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/nlattr_ifla_af_spec.Po \ ./$(DEPDIR)/nlattr_ifla_brport.Po \ ./$(DEPDIR)/nlattr_ifla_linkinfo.Po \ - ./$(DEPDIR)/nlattr_ifla_port.Po ./$(DEPDIR)/nlattr_ifla_xdp.Po \ + ./$(DEPDIR)/nlattr_ifla_port.Po \ + ./$(DEPDIR)/nlattr_ifla_xdp-y.Po \ + ./$(DEPDIR)/nlattr_ifla_xdp.Po \ ./$(DEPDIR)/nlattr_inet_diag_msg.Po \ ./$(DEPDIR)/nlattr_inet_diag_req_compat.Po \ ./$(DEPDIR)/nlattr_inet_diag_req_v2.Po \ @@ -3128,7 +4331,14 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/oldselect-P.Po ./$(DEPDIR)/oldselect-efault-P.Po \ ./$(DEPDIR)/oldselect-efault.Po ./$(DEPDIR)/oldselect.Po \ ./$(DEPDIR)/oldstat.Po ./$(DEPDIR)/open.Po \ - ./$(DEPDIR)/openat.Po ./$(DEPDIR)/orphaned_process_group.Po \ + ./$(DEPDIR)/open_tree-P.Po ./$(DEPDIR)/open_tree.Po \ + ./$(DEPDIR)/openat.Po ./$(DEPDIR)/openat2-Xabbrev.Po \ + ./$(DEPDIR)/openat2-Xraw.Po ./$(DEPDIR)/openat2-Xverbose.Po \ + ./$(DEPDIR)/openat2-v-y-Xabbrev.Po \ + ./$(DEPDIR)/openat2-v-y-Xraw.Po \ + ./$(DEPDIR)/openat2-v-y-Xverbose.Po ./$(DEPDIR)/openat2-v-y.Po \ + ./$(DEPDIR)/openat2-v.Po ./$(DEPDIR)/openat2-y.Po \ + ./$(DEPDIR)/openat2.Po ./$(DEPDIR)/orphaned_process_group.Po \ ./$(DEPDIR)/osf_utimes.Po ./$(DEPDIR)/pause.Po \ ./$(DEPDIR)/pc.Po ./$(DEPDIR)/perf_event_open.Po \ ./$(DEPDIR)/perf_event_open_nonverbose.Po \ @@ -3136,14 +4346,24 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/personality-Xabbrev.Po \ ./$(DEPDIR)/personality-Xraw.Po \ ./$(DEPDIR)/personality-Xverbose.Po ./$(DEPDIR)/personality.Po \ - ./$(DEPDIR)/pidfd_send_signal.Po ./$(DEPDIR)/pipe.Po \ - ./$(DEPDIR)/pipe2.Po ./$(DEPDIR)/pkey_alloc.Po \ - ./$(DEPDIR)/pkey_free.Po ./$(DEPDIR)/pkey_mprotect.Po \ - ./$(DEPDIR)/poll-P.Po ./$(DEPDIR)/poll.Po \ - ./$(DEPDIR)/ppoll-P.Po ./$(DEPDIR)/ppoll-v.Po \ - ./$(DEPDIR)/ppoll.Po ./$(DEPDIR)/prctl-arg2-intptr.Po \ - ./$(DEPDIR)/prctl-dumpable.Po ./$(DEPDIR)/prctl-name.Po \ - ./$(DEPDIR)/prctl-no-args.Po ./$(DEPDIR)/prctl-pdeathsig.Po \ + ./$(DEPDIR)/pidfd_getfd-y.Po ./$(DEPDIR)/pidfd_getfd-yy.Po \ + ./$(DEPDIR)/pidfd_getfd.Po \ + ./$(DEPDIR)/pidfd_open--decode-fd-path.Po \ + ./$(DEPDIR)/pidfd_open--decode-fd-pidfd.Po \ + ./$(DEPDIR)/pidfd_open--decode-fd-socket.Po \ + ./$(DEPDIR)/pidfd_open--pidns-translation.Po \ + ./$(DEPDIR)/pidfd_open-P.Po ./$(DEPDIR)/pidfd_open-y.Po \ + ./$(DEPDIR)/pidfd_open-yy.Po ./$(DEPDIR)/pidfd_open.Po \ + ./$(DEPDIR)/pidfd_send_signal--pidns-translation.Po \ + ./$(DEPDIR)/pidfd_send_signal.Po ./$(DEPDIR)/pidns-cache.Po \ + ./$(DEPDIR)/pipe.Po ./$(DEPDIR)/pipe2.Po \ + ./$(DEPDIR)/pkey_alloc.Po ./$(DEPDIR)/pkey_free.Po \ + ./$(DEPDIR)/pkey_mprotect.Po ./$(DEPDIR)/poll-P.Po \ + ./$(DEPDIR)/poll.Po ./$(DEPDIR)/ppoll-P.Po \ + ./$(DEPDIR)/ppoll-v.Po ./$(DEPDIR)/ppoll.Po \ + ./$(DEPDIR)/prctl-arg2-intptr.Po ./$(DEPDIR)/prctl-dumpable.Po \ + ./$(DEPDIR)/prctl-name.Po ./$(DEPDIR)/prctl-no-args.Po \ + ./$(DEPDIR)/prctl-pdeathsig.Po \ ./$(DEPDIR)/prctl-seccomp-filter-v.Po \ ./$(DEPDIR)/prctl-seccomp-strict.Po \ ./$(DEPDIR)/prctl-securebits.Po \ @@ -3152,7 +4372,7 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Po \ ./$(DEPDIR)/preadv-preadv.Po ./$(DEPDIR)/preadv2-pwritev2.Po \ ./$(DEPDIR)/preadv_pwritev-preadv-pwritev.Po \ - ./$(DEPDIR)/print_maxfd.Po \ + ./$(DEPDIR)/print_maxfd.Po ./$(DEPDIR)/print_ppid_tracerpid.Po \ ./$(DEPDIR)/printpath-umovestr-peekdata.Po \ ./$(DEPDIR)/printpath-umovestr-undumpable.Po \ ./$(DEPDIR)/printpath-umovestr.Po \ @@ -3161,8 +4381,12 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/printsignal-Xverbose.Po ./$(DEPDIR)/printstr.Po \ ./$(DEPDIR)/printstrn-umoven-peekdata.Po \ ./$(DEPDIR)/printstrn-umoven-undumpable.Po \ - ./$(DEPDIR)/printstrn-umoven.Po ./$(DEPDIR)/prlimit64.Po \ + ./$(DEPDIR)/printstrn-umoven.Po \ + ./$(DEPDIR)/prlimit64--pidns-translation.Po \ + ./$(DEPDIR)/prlimit64.Po \ + ./$(DEPDIR)/process_vm_readv--pidns-translation.Po \ ./$(DEPDIR)/process_vm_readv.Po \ + ./$(DEPDIR)/process_vm_writev--pidns-translation.Po \ ./$(DEPDIR)/process_vm_writev.Po ./$(DEPDIR)/pselect6.Po \ ./$(DEPDIR)/ptrace.Po ./$(DEPDIR)/ptrace_syscall_info.Po \ ./$(DEPDIR)/pwritev-pwritev.Po ./$(DEPDIR)/qual_fault.Po \ @@ -3180,8 +4404,10 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/readahead.Po ./$(DEPDIR)/readdir.Po \ ./$(DEPDIR)/readlink.Po ./$(DEPDIR)/readlinkat.Po \ ./$(DEPDIR)/readv.Po ./$(DEPDIR)/reboot.Po \ - ./$(DEPDIR)/recvfrom.Po ./$(DEPDIR)/recvmmsg-timeout.Po \ - ./$(DEPDIR)/recvmsg.Po ./$(DEPDIR)/redirect-fds.Po \ + ./$(DEPDIR)/recv-MSG_TRUNC.Po \ + ./$(DEPDIR)/recvfrom-MSG_TRUNC.Po ./$(DEPDIR)/recvfrom.Po \ + ./$(DEPDIR)/recvmmsg-timeout.Po ./$(DEPDIR)/recvmsg.Po \ + ./$(DEPDIR)/redirect-fds.Po \ ./$(DEPDIR)/remap_file_pages-Xabbrev.Po \ ./$(DEPDIR)/remap_file_pages-Xraw.Po \ ./$(DEPDIR)/remap_file_pages-Xverbose.Po \ @@ -3190,9 +4416,11 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/request_key.Po ./$(DEPDIR)/restart_syscall.Po \ ./$(DEPDIR)/riscv_flush_icache.Po ./$(DEPDIR)/rmdir.Po \ ./$(DEPDIR)/rt_sigaction.Po ./$(DEPDIR)/rt_sigpending.Po \ - ./$(DEPDIR)/rt_sigprocmask.Po ./$(DEPDIR)/rt_sigqueueinfo.Po \ - ./$(DEPDIR)/rt_sigreturn.Po ./$(DEPDIR)/rt_sigsuspend.Po \ - ./$(DEPDIR)/rt_sigtimedwait.Po \ + ./$(DEPDIR)/rt_sigprocmask.Po \ + ./$(DEPDIR)/rt_sigqueueinfo--pidns-translation.Po \ + ./$(DEPDIR)/rt_sigqueueinfo.Po ./$(DEPDIR)/rt_sigreturn.Po \ + ./$(DEPDIR)/rt_sigsuspend.Po ./$(DEPDIR)/rt_sigtimedwait.Po \ + ./$(DEPDIR)/rt_tgsigqueueinfo--pidns-translation.Po \ ./$(DEPDIR)/rt_tgsigqueueinfo.Po \ ./$(DEPDIR)/run_expect_termsig.Po \ ./$(DEPDIR)/s390_guarded_storage-v.Po \ @@ -3202,22 +4430,31 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/s390_sthyi.Po \ ./$(DEPDIR)/sched_get_priority_mxx.Po \ ./$(DEPDIR)/sched_rr_get_interval.Po \ - ./$(DEPDIR)/sched_xetaffinity.Po ./$(DEPDIR)/sched_xetattr.Po \ + ./$(DEPDIR)/sched_xetaffinity--pidns-translation.Po \ + ./$(DEPDIR)/sched_xetaffinity.Po \ + ./$(DEPDIR)/sched_xetattr--pidns-translation.Po \ + ./$(DEPDIR)/sched_xetattr.Po \ + ./$(DEPDIR)/sched_xetparam--pidns-translation.Po \ ./$(DEPDIR)/sched_xetparam.Po \ + ./$(DEPDIR)/sched_xetscheduler--pidns-translation.Po \ ./$(DEPDIR)/sched_xetscheduler.Po ./$(DEPDIR)/sched_yield.Po \ ./$(DEPDIR)/scm_rights.Po ./$(DEPDIR)/seccomp-filter-v.Po \ ./$(DEPDIR)/seccomp-filter.Po ./$(DEPDIR)/seccomp-strict.Po \ ./$(DEPDIR)/seccomp_get_action_avail.Po \ ./$(DEPDIR)/select-P.Po ./$(DEPDIR)/select.Po \ - ./$(DEPDIR)/semop.Po ./$(DEPDIR)/sendfile.Po \ - ./$(DEPDIR)/sendfile64.Po ./$(DEPDIR)/set_mempolicy.Po \ - ./$(DEPDIR)/set_ptracer_any.Po ./$(DEPDIR)/set_sigblock.Po \ - ./$(DEPDIR)/set_sigign.Po ./$(DEPDIR)/setdomainname.Po \ - ./$(DEPDIR)/setfsgid.Po ./$(DEPDIR)/setfsgid32.Po \ - ./$(DEPDIR)/setfsuid.Po ./$(DEPDIR)/setfsuid32.Po \ - ./$(DEPDIR)/setgid.Po ./$(DEPDIR)/setgid32.Po \ - ./$(DEPDIR)/setgroups.Po ./$(DEPDIR)/setgroups32.Po \ - ./$(DEPDIR)/sethostname.Po ./$(DEPDIR)/setns.Po \ + ./$(DEPDIR)/semop-indirect.Po ./$(DEPDIR)/semop.Po \ + ./$(DEPDIR)/semtimedop.Po ./$(DEPDIR)/sendfile.Po \ + ./$(DEPDIR)/sendfile64.Po ./$(DEPDIR)/set_mempolicy-Xabbrev.Po \ + ./$(DEPDIR)/set_mempolicy-Xraw.Po \ + ./$(DEPDIR)/set_mempolicy-Xverbose.Po \ + ./$(DEPDIR)/set_mempolicy.Po ./$(DEPDIR)/set_ptracer_any.Po \ + ./$(DEPDIR)/set_sigblock.Po ./$(DEPDIR)/set_sigign.Po \ + ./$(DEPDIR)/setdomainname.Po ./$(DEPDIR)/setfsgid.Po \ + ./$(DEPDIR)/setfsgid32.Po ./$(DEPDIR)/setfsuid.Po \ + ./$(DEPDIR)/setfsuid32.Po ./$(DEPDIR)/setgid.Po \ + ./$(DEPDIR)/setgid32.Po ./$(DEPDIR)/setgroups.Po \ + ./$(DEPDIR)/setgroups32.Po ./$(DEPDIR)/sethostname.Po \ + ./$(DEPDIR)/setns.Po ./$(DEPDIR)/setpgrp-exec.Po \ ./$(DEPDIR)/setregid.Po ./$(DEPDIR)/setregid32.Po \ ./$(DEPDIR)/setresgid.Po ./$(DEPDIR)/setresgid32.Po \ ./$(DEPDIR)/setresuid.Po ./$(DEPDIR)/setresuid32.Po \ @@ -3228,11 +4465,14 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/shmxt.Po ./$(DEPDIR)/shutdown.Po \ ./$(DEPDIR)/sigaction.Po ./$(DEPDIR)/sigaltstack.Po \ ./$(DEPDIR)/siginfo.Po ./$(DEPDIR)/signal.Po \ + ./$(DEPDIR)/signal_receive--pidns-translation.Po \ ./$(DEPDIR)/signal_receive.Po ./$(DEPDIR)/signalfd4.Po \ ./$(DEPDIR)/sigpending.Po ./$(DEPDIR)/sigprocmask.Po \ ./$(DEPDIR)/sigreturn.Po ./$(DEPDIR)/sigsuspend.Po \ ./$(DEPDIR)/sleep.Po ./$(DEPDIR)/so_error.Po \ - ./$(DEPDIR)/so_linger.Po ./$(DEPDIR)/so_peercred-Xabbrev.Po \ + ./$(DEPDIR)/so_linger.Po \ + ./$(DEPDIR)/so_peercred--pidns-translation.Po \ + ./$(DEPDIR)/so_peercred-Xabbrev.Po \ ./$(DEPDIR)/so_peercred-Xraw.Po \ ./$(DEPDIR)/so_peercred-Xverbose.Po ./$(DEPDIR)/so_peercred.Po \ ./$(DEPDIR)/sock_filter-v-Xabbrev.Po \ @@ -3246,6 +4486,7 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/sockopt-timestamp.Po ./$(DEPDIR)/splice.Po \ ./$(DEPDIR)/stack-fcall-0.Po ./$(DEPDIR)/stack-fcall-1.Po \ ./$(DEPDIR)/stack-fcall-2.Po ./$(DEPDIR)/stack-fcall-3.Po \ + ./$(DEPDIR)/stack-fcall-attach.Po \ ./$(DEPDIR)/stack-fcall-mangled-0.Po \ ./$(DEPDIR)/stack-fcall-mangled-1.Po \ ./$(DEPDIR)/stack-fcall-mangled-2.Po \ @@ -3253,22 +4494,45 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/stack-fcall-mangled.Po ./$(DEPDIR)/stack-fcall.Po \ ./$(DEPDIR)/stat.Po ./$(DEPDIR)/stat64-stat64.Po \ ./$(DEPDIR)/statfs-statfs.Po ./$(DEPDIR)/statfs64.Po \ - ./$(DEPDIR)/statx.Po ./$(DEPDIR)/swap.Po \ - ./$(DEPDIR)/sxetmask.Po ./$(DEPDIR)/symlink.Po \ - ./$(DEPDIR)/symlinkat.Po ./$(DEPDIR)/sync.Po \ - ./$(DEPDIR)/sync_file_range.Po ./$(DEPDIR)/sync_file_range2.Po \ - ./$(DEPDIR)/sysinfo.Po ./$(DEPDIR)/syslog.Po \ - ./$(DEPDIR)/tee.Po ./$(DEPDIR)/threads-execve.Po \ - ./$(DEPDIR)/time.Po ./$(DEPDIR)/timer_create.Po \ - ./$(DEPDIR)/timer_xettime.Po ./$(DEPDIR)/timerfd_xettime.Po \ - ./$(DEPDIR)/times-fail.Po ./$(DEPDIR)/times.Po \ - ./$(DEPDIR)/truncate.Po ./$(DEPDIR)/truncate64-truncate64.Po \ - ./$(DEPDIR)/ugetrlimit.Po ./$(DEPDIR)/uio-uio.Po \ - ./$(DEPDIR)/umask.Po ./$(DEPDIR)/umount.Po \ - ./$(DEPDIR)/umount2.Po ./$(DEPDIR)/umoven-illptr.Po \ - ./$(DEPDIR)/umovestr-illptr.Po ./$(DEPDIR)/umovestr.Po \ - ./$(DEPDIR)/umovestr2.Po ./$(DEPDIR)/umovestr3.Po \ - ./$(DEPDIR)/uname.Po ./$(DEPDIR)/unblock_reset_raise.Po \ + ./$(DEPDIR)/status-all.Po ./$(DEPDIR)/status-failed-long.Po \ + ./$(DEPDIR)/status-failed-status.Po \ + ./$(DEPDIR)/status-failed.Po ./$(DEPDIR)/status-none-f.Po \ + ./$(DEPDIR)/status-none-threads.Po ./$(DEPDIR)/status-none.Po \ + ./$(DEPDIR)/status-successful-long.Po \ + ./$(DEPDIR)/status-successful-status.Po \ + ./$(DEPDIR)/status-successful.Po \ + ./$(DEPDIR)/status-unfinished-threads.Po \ + ./$(DEPDIR)/status-unfinished.Po ./$(DEPDIR)/statx.Po \ + ./$(DEPDIR)/strace--strings-in-hex-all.Po \ + ./$(DEPDIR)/strace--strings-in-hex-non-ascii.Po \ + ./$(DEPDIR)/strace--strings-in-hex.Po ./$(DEPDIR)/strace-n.Po \ + ./$(DEPDIR)/strace-x.Po ./$(DEPDIR)/strace-xx.Po \ + ./$(DEPDIR)/swap.Po ./$(DEPDIR)/sxetmask.Po \ + ./$(DEPDIR)/symlink.Po ./$(DEPDIR)/symlinkat.Po \ + ./$(DEPDIR)/sync.Po ./$(DEPDIR)/sync_file_range.Po \ + ./$(DEPDIR)/sync_file_range2.Po ./$(DEPDIR)/sysinfo.Po \ + ./$(DEPDIR)/syslog-success.Po ./$(DEPDIR)/syslog.Po \ + ./$(DEPDIR)/tee.Po ./$(DEPDIR)/tgkill--pidns-translation.Po \ + ./$(DEPDIR)/tgkill.Po \ + ./$(DEPDIR)/threads-execve--quiet-thread-execve.Po \ + ./$(DEPDIR)/threads-execve-q.Po \ + ./$(DEPDIR)/threads-execve-qq.Po \ + ./$(DEPDIR)/threads-execve-qqq.Po \ + ./$(DEPDIR)/threads-execve.Po ./$(DEPDIR)/time.Po \ + ./$(DEPDIR)/timer_create.Po ./$(DEPDIR)/timer_xettime.Po \ + ./$(DEPDIR)/timerfd_xettime.Po ./$(DEPDIR)/times-fail.Po \ + ./$(DEPDIR)/times.Po ./$(DEPDIR)/tkill--pidns-translation.Po \ + ./$(DEPDIR)/tkill.Po ./$(DEPDIR)/tracer_ppid_pgid_sid.Po \ + ./$(DEPDIR)/trie_test-trie_for_tests.Po \ + ./$(DEPDIR)/trie_test-trie_test.Po ./$(DEPDIR)/truncate.Po \ + ./$(DEPDIR)/truncate64-truncate64.Po ./$(DEPDIR)/ugetrlimit.Po \ + ./$(DEPDIR)/uio-uio.Po ./$(DEPDIR)/umask.Po \ + ./$(DEPDIR)/umount.Po ./$(DEPDIR)/umount2.Po \ + ./$(DEPDIR)/umoven-illptr.Po ./$(DEPDIR)/umovestr-illptr.Po \ + ./$(DEPDIR)/umovestr.Po ./$(DEPDIR)/umovestr2.Po \ + ./$(DEPDIR)/umovestr3.Po ./$(DEPDIR)/umovestr_cached.Po \ + ./$(DEPDIR)/umovestr_cached_adjacent.Po ./$(DEPDIR)/uname.Po \ + ./$(DEPDIR)/unblock_reset_raise.Po \ ./$(DEPDIR)/unix-pair-send-recv.Po \ ./$(DEPDIR)/unix-pair-sendto-recvfrom.Po ./$(DEPDIR)/unlink.Po \ ./$(DEPDIR)/unlinkat.Po ./$(DEPDIR)/unshare.Po \ @@ -3281,10 +4545,15 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/wait4-v.Po ./$(DEPDIR)/wait4.Po \ ./$(DEPDIR)/waitid-v.Po ./$(DEPDIR)/waitid.Po \ ./$(DEPDIR)/waitpid.Po ./$(DEPDIR)/xattr-strings.Po \ - ./$(DEPDIR)/xattr.Po ./$(DEPDIR)/xet_robust_list.Po \ + ./$(DEPDIR)/xattr.Po \ + ./$(DEPDIR)/xet_robust_list--pidns-translation.Po \ + ./$(DEPDIR)/xet_robust_list.Po \ ./$(DEPDIR)/xet_thread_area_x86.Po ./$(DEPDIR)/xetitimer.Po \ - ./$(DEPDIR)/xetpgid.Po ./$(DEPDIR)/xetpriority.Po \ - ./$(DEPDIR)/xettimeofday.Po ./$(DEPDIR)/zeroargc.Po + ./$(DEPDIR)/xetpgid--pidns-translation.Po \ + ./$(DEPDIR)/xetpgid.Po \ + ./$(DEPDIR)/xetpriority--pidns-translation.Po \ + ./$(DEPDIR)/xetpriority.Po ./$(DEPDIR)/xettimeofday.Po \ + ./$(DEPDIR)/zeroargc.Po am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -3306,79 +4575,128 @@ SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c accept.c \ accept4.c access.c acct.c add_key.c adjtimex.c aio.c \ aio_pgetevents.c alarm.c answer.c attach-f-p.c \ attach-f-p-cmd.c attach-p-cmd-cmd.c attach-p-cmd-p.c \ - block_reset_raise_run.c bpf.c bpf-obj_get_info_by_fd.c \ - bpf-obj_get_info_by_fd-prog.c bpf-obj_get_info_by_fd-prog-v.c \ - bpf-obj_get_info_by_fd-v.c bpf-success.c bpf-success-v.c \ - bpf-v.c brk.c btrfs.c caps.c caps-abbrev.c check_sigblock.c \ + block_reset_raise_run.c block_reset_run.c bpf.c \ + bpf-obj_get_info_by_fd.c bpf-obj_get_info_by_fd-prog.c \ + bpf-obj_get_info_by_fd-prog-v.c bpf-obj_get_info_by_fd-v.c \ + bpf-success.c bpf-success-long-y.c bpf-success-v.c bpf-v.c \ + brk.c btrfs.c caps.c caps-abbrev.c check_sigblock.c \ check_sigign.c chmod.c chown.c chown32.c chroot.c \ clock_adjtime.c clock_nanosleep.c clock_xettime.c \ - clone_parent.c clone_ptrace.c copy_file_range.c count-f.c \ - creat.c delay.c delete_module.c dev-yy.c dup.c dup2.c dup3.c \ - epoll_create.c epoll_create1.c epoll_ctl.c epoll_pwait.c \ - epoll_wait.c erestartsys.c eventfd.c execve.c execve-v.c \ - execveat.c execveat-v.c faccessat.c fadvise64.c fadvise64_64.c \ + clone-flags.c clone3.c clone3-Xabbrev.c clone3-Xraw.c \ + clone3-Xverbose.c clone3-success.c clone3-success-Xabbrev.c \ + clone3-success-Xraw.c clone3-success-Xverbose.c clone_parent.c \ + clone_parent--quiet-exit.c clone_parent-q.c clone_parent-qq.c \ + clone_ptrace.c clone_ptrace--quiet-attach.c \ + clone_ptrace--quiet-exit.c clone_ptrace-q.c clone_ptrace-qq.c \ + close_range.c close_range-P.c close_range-y.c close_range-yy.c \ + copy_file_range.c count-f.c creat.c delay.c delete_module.c \ + dev--decode-fds-dev.c dev--decode-fds-path.c \ + dev--decode-fds-socket.c dev-yy.c dup.c dup-P.c dup-y.c \ + dup-yy.c dup2.c dup2-P.c dup2-y.c dup2-yy.c dup3.c dup3-P.c \ + dup3-y.c dup3-yy.c epoll_create.c epoll_create1.c epoll_ctl.c \ + epoll_pwait.c epoll_wait.c erestartsys.c eventfd.c execve.c \ + execve-v.c execveat.c execveat-v.c faccessat.c faccessat-P.c \ + faccessat-y.c faccessat-yy.c faccessat2.c faccessat2-P.c \ + faccessat2-y.c faccessat2-yy.c fadvise64.c fadvise64_64.c \ fallocate.c fanotify_init.c fanotify_mark.c \ fanotify_mark-Xabbrev.c fanotify_mark-Xraw.c \ fanotify_mark-Xverbose.c fchdir.c fchmod.c fchmodat.c fchown.c \ - fchown32.c fchownat.c fcntl.c fcntl64.c fdatasync.c fflush.c \ - file_handle.c file_ioctl.c filter-unavailable.c finit_module.c \ - flock.c fork-f.c fstat.c fstat-Xabbrev.c fstat-Xraw.c \ - fstat-Xverbose.c fstat64.c fstat64-Xabbrev.c fstat64-Xraw.c \ - fstat64-Xverbose.c fstatat64.c fstatfs.c fstatfs64.c fsync.c \ - fsync-y.c ftruncate.c ftruncate64.c futex.c futimesat.c \ - get_mempolicy.c getcpu.c getcwd.c getdents.c getdents64.c \ - getegid.c getegid32.c geteuid.c geteuid32.c getgid.c \ - getgid32.c getgroups.c getgroups32.c getpeername.c getpgrp.c \ - getpid.c getppid.c getrandom.c getresgid.c getresgid32.c \ - getresuid.c getresuid32.c getrlimit.c getrusage.c getsid.c \ - getsockname.c gettid.c getuid.c getuid32.c getxxid.c \ - group_req.c inet-cmsg.c init_module.c inject-nf.c inotify.c \ - inotify_init1.c int_0x80.c io_uring_enter.c \ - io_uring_register.c io_uring_setup.c ioctl.c ioctl_block.c \ - ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-success.c \ - ioctl_evdev-success-v.c ioctl_evdev-v.c ioctl_inotify.c \ - ioctl_kvm_run.c ioctl_kvm_run-v.c ioctl_kvm_run_auxstr_vcpu.c \ - ioctl_loop.c ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c \ - ioctl_nbd.c ioctl_nsfs.c ioctl_perf.c ioctl_perf-success.c \ - ioctl_ptp.c ioctl_random.c ioctl_rtc.c ioctl_rtc-v.c \ - ioctl_scsi.c ioctl_sg_io_v3.c ioctl_sg_io_v4.c \ - ioctl_sock_gifconf.c ioctl_uffdio.c ioctl_v4l2.c ioperm.c \ - iopl.c ioprio.c ioprio-Xabbrev.c ioprio-Xraw.c \ - ioprio-Xverbose.c ip_mreq.c ipc.c ipc_msg.c ipc_msg-Xabbrev.c \ - ipc_msg-Xraw.c ipc_msg-Xverbose.c ipc_msgbuf.c \ - ipc_msgbuf-Xabbrev.c ipc_msgbuf-Xraw.c ipc_msgbuf-Xverbose.c \ - ipc_sem.c ipc_sem-Xabbrev.c ipc_sem-Xraw.c ipc_sem-Xverbose.c \ - ipc_shm.c ipc_shm-Xabbrev.c ipc_shm-Xraw.c ipc_shm-Xverbose.c \ - is_linux_mips_n64.c kcmp.c kcmp-y.c kern_features.c \ + fchown32.c fchownat.c fcntl.c fcntl--pidns-translation.c \ + fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \ + file_handle.c file_ioctl.c filter-unavailable.c \ + filter_seccomp-flag.c filter_seccomp-perf.c finit_module.c \ + flock.c fork--pidns-translation.c fork-f.c fsconfig.c \ + fsconfig-P.c fsmount.c fsopen.c fspick.c fspick-P.c fstat.c \ + fstat-Xabbrev.c fstat-Xraw.c fstat-Xverbose.c fstat64.c \ + fstat64-Xabbrev.c fstat64-Xraw.c fstat64-Xverbose.c \ + fstatat64.c fstatfs.c fstatfs64.c fsync.c fsync-y.c \ + ftruncate.c ftruncate64.c futex.c futimesat.c get_mempolicy.c \ + get_process_reaper.c getcpu.c getcwd.c getdents.c getdents-v.c \ + getdents64.c getdents64-v.c getegid.c getegid32.c geteuid.c \ + geteuid32.c getgid.c getgid32.c getgroups.c getgroups32.c \ + getpeername.c getpgrp.c getpgrp--pidns-translation.c getpid.c \ + getpid--pidns-translation.c getppid.c getrandom.c getresgid.c \ + getresgid32.c getresuid.c getresuid32.c getrlimit.c \ + getrusage.c getsid.c getsid--pidns-translation.c getsockname.c \ + gettid.c gettid--pidns-translation.c getuid.c getuid32.c \ + getxgid.c getxpid.c getxuid.c group_req.c inet-cmsg.c \ + init_module.c inject-nf.c inotify.c inotify_init.c \ + inotify_init-y.c inotify_init1.c inotify_init1-y.c int_0x80.c \ + io_uring_enter.c io_uring_register.c io_uring_setup.c ioctl.c \ + ioctl_block.c ioctl_block--pidns-translation.c ioctl_dm.c \ + ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-Xabbrev.c \ + ioctl_evdev-Xraw.c ioctl_evdev-Xverbose.c \ + ioctl_evdev-success.c ioctl_evdev-success-Xabbrev.c \ + ioctl_evdev-success-Xraw.c ioctl_evdev-success-Xverbose.c \ + ioctl_evdev-success-v.c ioctl_evdev-success-v-Xabbrev.c \ + ioctl_evdev-success-v-Xraw.c ioctl_evdev-success-v-Xverbose.c \ + ioctl_evdev-v.c ioctl_evdev-v-Xabbrev.c ioctl_evdev-v-Xraw.c \ + ioctl_evdev-v-Xverbose.c ioctl_hdio.c ioctl_hdio-Xabbrev.c \ + ioctl_hdio-Xraw.c ioctl_hdio-Xverbose.c ioctl_hdio-success.c \ + ioctl_hdio-success-Xabbrev.c ioctl_hdio-success-Xraw.c \ + ioctl_hdio-success-Xverbose.c ioctl_hdio-success-v.c \ + ioctl_hdio-success-v-Xabbrev.c ioctl_hdio-success-v-Xraw.c \ + ioctl_hdio-success-v-Xverbose.c ioctl_hdio-v.c \ + ioctl_hdio-v-Xabbrev.c ioctl_hdio-v-Xraw.c \ + ioctl_hdio-v-Xverbose.c ioctl_inotify.c ioctl_kvm_run.c \ + ioctl_kvm_run-v.c ioctl_kvm_run_auxstr_vcpu.c ioctl_loop.c \ + ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c ioctl_nbd.c \ + ioctl_nsfs.c ioctl_perf.c ioctl_perf-success.c ioctl_ptp.c \ + ioctl_random.c ioctl_rtc.c ioctl_rtc-v.c ioctl_scsi.c \ + ioctl_sg_io_v3.c ioctl_sg_io_v4.c ioctl_sock_gifconf.c \ + ioctl_tee.c ioctl_uffdio.c ioctl_v4l2.c ioctl_v4l2-Xabbrev.c \ + ioctl_v4l2-Xraw.c ioctl_v4l2-Xverbose.c ioctl_v4l2-success.c \ + ioctl_v4l2-success-Xabbrev.c ioctl_v4l2-success-Xraw.c \ + ioctl_v4l2-success-Xverbose.c ioctl_v4l2-success-v.c \ + ioctl_v4l2-success-v-Xabbrev.c ioctl_v4l2-success-v-Xraw.c \ + ioctl_v4l2-success-v-Xverbose.c ioctl_v4l2-v.c \ + ioctl_v4l2-v-Xabbrev.c ioctl_v4l2-v-Xraw.c \ + ioctl_v4l2-v-Xverbose.c ioctl_watchdog.c ioperm.c iopl.c \ + ioprio.c ioprio--pidns-translation.c ioprio-Xabbrev.c \ + ioprio-Xraw.c ioprio-Xverbose.c ip_mreq.c ipc.c ipc_msg.c \ + ipc_msg-Xabbrev.c ipc_msg-Xraw.c ipc_msg-Xverbose.c \ + ipc_msgbuf.c ipc_msgbuf-Xabbrev.c ipc_msgbuf-Xraw.c \ + ipc_msgbuf-Xverbose.c ipc_sem.c ipc_sem-Xabbrev.c \ + ipc_sem-Xraw.c ipc_sem-Xverbose.c ipc_shm.c ipc_shm-Xabbrev.c \ + ipc_shm-Xraw.c ipc_shm-Xverbose.c is_linux_mips_n64.c kcmp.c \ + kcmp-y.c kcmp-y--pidns-translation.c kern_features.c \ kernel_version.c kernel_version-Xabbrev.c \ kernel_version-Xraw.c kernel_version-Xverbose.c \ kexec_file_load.c kexec_load.c keyctl.c keyctl-Xabbrev.c \ - keyctl-Xraw.c keyctl-Xverbose.c kill.c kill_child.c ksysent.c \ - lchown.c lchown32.c link.c linkat.c list_sigaction_signum.c \ - llseek.c localtime.c lookup_dcookie.c looping_threads.c \ - lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \ + keyctl-Xraw.c keyctl-Xverbose.c kill.c \ + kill--pidns-translation.c kill_child.c ksysent.c lchown.c \ + lchown32.c link.c linkat.c list_sigaction_signum.c llseek.c \ + localtime.c lookup_dcookie.c looping_threads.c lseek.c lstat.c \ + lstat64.c madvise.c maybe_switch_current_tcp.c \ + maybe_switch_current_tcp--quiet-thread-execve.c mbind.c \ + mbind-Xabbrev.c mbind-Xraw.c mbind-Xverbose.c membarrier.c \ memfd_create.c memfd_create-Xabbrev.c memfd_create-Xraw.c \ - memfd_create-Xverbose.c migrate_pages.c mincore.c mkdir.c \ - mkdirat.c mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c \ + memfd_create-Xverbose.c migrate_pages.c \ + migrate_pages--pidns-translation.c mincore.c mkdir.c mkdirat.c \ + mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c \ mmap-Xabbrev.c mmap-Xraw.c mmap-Xverbose.c mmap64.c \ mmap64-Xabbrev.c mmap64-Xraw.c mmap64-Xverbose.c mmsg.c \ mmsg-silent.c mmsg_name.c mmsg_name-v.c modify_ldt.c mount.c \ - mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c move_pages.c \ + mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c move_mount.c \ + move_mount-P.c move_pages.c move_pages--pidns-translation.c \ move_pages-Xabbrev.c move_pages-Xraw.c move_pages-Xverbose.c \ mq.c mq_sendrecv.c mq_sendrecv-read.c mq_sendrecv-write.c \ msg_control.c msg_control-v.c msg_name.c munlockall.c \ - nanosleep.c net-accept-connect.c net-icmp_filter.c \ - net-packet_mreq.c net-packet_mreq-Xabbrev.c \ + nanosleep.c net--decode-fds-dev-netlink.c \ + net--decode-fds-none-netlink.c net--decode-fds-path-netlink.c \ + net--decode-fds-socket-netlink.c net-accept-connect.c \ + net-icmp_filter.c net-packet_mreq.c net-packet_mreq-Xabbrev.c \ net-packet_mreq-Xraw.c net-packet_mreq-Xverbose.c \ - net-sockaddr.c net-tpacket_req.c net-tpacket_stats.c \ + net-sockaddr.c net-sockaddr--pidns-translation.c \ + net-tpacket_req.c net-tpacket_stats.c \ net-tpacket_stats-success.c net-y-unix.c net-yy-inet.c \ net-yy-inet6.c net-yy-netlink.c net-yy-unix.c netlink_audit.c \ - netlink_crypto.c netlink_generic.c netlink_inet_diag.c \ - netlink_kobject_uevent.c netlink_netfilter.c \ - netlink_netlink_diag.c netlink_protocol.c netlink_route.c \ - netlink_selinux.c netlink_sock_diag.c netlink_unix_diag.c \ - netlink_xfrm.c newfstatat.c nfnetlink_acct.c \ - nfnetlink_cthelper.c nfnetlink_ctnetlink.c \ + netlink_audit--pidns-translation.c netlink_crypto.c \ + netlink_generic.c netlink_inet_diag.c netlink_kobject_uevent.c \ + netlink_netfilter.c netlink_netlink_diag.c netlink_protocol.c \ + netlink_route.c netlink_selinux.c netlink_sock_diag.c \ + netlink_unix_diag.c netlink_xfrm.c newfstatat.c \ + nfnetlink_acct.c nfnetlink_cthelper.c nfnetlink_ctnetlink.c \ nfnetlink_ctnetlink_exp.c nfnetlink_cttimeout.c \ nfnetlink_ipset.c nfnetlink_nft_compat.c nfnetlink_nftables.c \ nfnetlink_osf.c nfnetlink_queue.c nfnetlink_ulog.c nlattr.c \ @@ -3386,166 +4704,249 @@ SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c accept.c \ nlattr_fib_rule_hdr.c nlattr_ifaddrlblmsg.c nlattr_ifaddrmsg.c \ nlattr_ifinfomsg.c nlattr_ifla_af_spec.c nlattr_ifla_brport.c \ nlattr_ifla_linkinfo.c nlattr_ifla_port.c nlattr_ifla_xdp.c \ - nlattr_inet_diag_msg.c nlattr_inet_diag_req_compat.c \ - nlattr_inet_diag_req_v2.c nlattr_mdba_mdb_entry.c \ - nlattr_mdba_router_port.c nlattr_ndmsg.c nlattr_ndtmsg.c \ - nlattr_netconfmsg.c nlattr_netlink_diag_msg.c \ - nlattr_nlmsgerr.c nlattr_packet_diag_msg.c nlattr_rtgenmsg.c \ - nlattr_rtmsg.c nlattr_smc_diag_msg.c nlattr_tc_stats.c \ - nlattr_tca_stab.c nlattr_tcamsg.c nlattr_tcmsg.c \ - nlattr_unix_diag_msg.c nsyscalls.c nsyscalls-d.c old_mmap.c \ - old_mmap-P.c old_mmap-Xabbrev.c old_mmap-Xraw.c \ - old_mmap-Xverbose.c old_mmap-v-none.c oldfstat.c oldlstat.c \ - oldselect.c oldselect-P.c oldselect-efault.c \ - oldselect-efault-P.c oldstat.c open.c openat.c \ + nlattr_ifla_xdp-y.c nlattr_inet_diag_msg.c \ + nlattr_inet_diag_req_compat.c nlattr_inet_diag_req_v2.c \ + nlattr_mdba_mdb_entry.c nlattr_mdba_router_port.c \ + nlattr_ndmsg.c nlattr_ndtmsg.c nlattr_netconfmsg.c \ + nlattr_netlink_diag_msg.c nlattr_nlmsgerr.c \ + nlattr_packet_diag_msg.c nlattr_rtgenmsg.c nlattr_rtmsg.c \ + nlattr_smc_diag_msg.c nlattr_tc_stats.c nlattr_tca_stab.c \ + nlattr_tcamsg.c nlattr_tcmsg.c nlattr_unix_diag_msg.c \ + nsyscalls.c nsyscalls-d.c old_mmap.c old_mmap-P.c \ + old_mmap-Xabbrev.c old_mmap-Xraw.c old_mmap-Xverbose.c \ + old_mmap-v-none.c oldfstat.c oldlstat.c oldselect.c \ + oldselect-P.c oldselect-efault.c oldselect-efault-P.c \ + oldstat.c open.c open_tree.c open_tree-P.c openat.c openat2.c \ + openat2-Xabbrev.c openat2-Xraw.c openat2-Xverbose.c \ + openat2-v.c openat2-v-y.c openat2-v-y-Xabbrev.c \ + openat2-v-y-Xraw.c openat2-v-y-Xverbose.c openat2-y.c \ orphaned_process_group.c osf_utimes.c pause.c pc.c \ perf_event_open.c perf_event_open_nonverbose.c \ perf_event_open_unabbrev.c personality.c personality-Xabbrev.c \ - personality-Xraw.c personality-Xverbose.c pidfd_send_signal.c \ - pipe.c pipe2.c pkey_alloc.c pkey_free.c pkey_mprotect.c poll.c \ - poll-P.c ppoll.c ppoll-P.c ppoll-v.c prctl-arg2-intptr.c \ - prctl-dumpable.c prctl-name.c prctl-no-args.c \ - prctl-pdeathsig.c prctl-seccomp-filter-v.c \ + personality-Xraw.c personality-Xverbose.c pidfd_getfd.c \ + pidfd_getfd-y.c pidfd_getfd-yy.c pidfd_open.c \ + pidfd_open--decode-fd-path.c pidfd_open--decode-fd-pidfd.c \ + pidfd_open--decode-fd-socket.c pidfd_open--pidns-translation.c \ + pidfd_open-P.c pidfd_open-y.c pidfd_open-yy.c \ + pidfd_send_signal.c pidfd_send_signal--pidns-translation.c \ + pidns-cache.c pipe.c pipe2.c pkey_alloc.c pkey_free.c \ + pkey_mprotect.c poll.c poll-P.c ppoll.c ppoll-P.c ppoll-v.c \ + prctl-arg2-intptr.c prctl-dumpable.c prctl-name.c \ + prctl-no-args.c prctl-pdeathsig.c prctl-seccomp-filter-v.c \ prctl-seccomp-strict.c prctl-securebits.c prctl-spec-inject.c \ prctl-tid_address.c prctl-tsc.c pread64-pwrite64.c preadv.c \ preadv-pwritev.c preadv2-pwritev2.c print_maxfd.c \ - printpath-umovestr.c printpath-umovestr-peekdata.c \ - printpath-umovestr-undumpable.c printsignal-Xabbrev.c \ - printsignal-Xraw.c printsignal-Xverbose.c printstr.c \ - printstrn-umoven.c printstrn-umoven-peekdata.c \ - printstrn-umoven-undumpable.c prlimit64.c process_vm_readv.c \ - process_vm_writev.c pselect6.c ptrace.c ptrace_syscall_info.c \ - pwritev.c qual_fault.c qual_inject-error-signal.c \ - qual_inject-retval.c qual_inject-signal.c qual_signal.c \ - quotactl.c quotactl-Xabbrev.c quotactl-Xraw.c \ - quotactl-Xverbose.c quotactl-success.c quotactl-success-v.c \ - quotactl-v.c quotactl-xfs.c quotactl-xfs-success.c \ - quotactl-xfs-success-v.c quotactl-xfs-v.c read-write.c \ - readahead.c readdir.c readlink.c readlinkat.c readv.c reboot.c \ - recvfrom.c recvmmsg-timeout.c recvmsg.c redirect-fds.c \ - remap_file_pages.c remap_file_pages-Xabbrev.c \ + print_ppid_tracerpid.c printpath-umovestr.c \ + printpath-umovestr-peekdata.c printpath-umovestr-undumpable.c \ + printsignal-Xabbrev.c printsignal-Xraw.c \ + printsignal-Xverbose.c printstr.c printstrn-umoven.c \ + printstrn-umoven-peekdata.c printstrn-umoven-undumpable.c \ + prlimit64.c prlimit64--pidns-translation.c process_vm_readv.c \ + process_vm_readv--pidns-translation.c process_vm_writev.c \ + process_vm_writev--pidns-translation.c pselect6.c ptrace.c \ + ptrace_syscall_info.c pwritev.c qual_fault.c \ + qual_inject-error-signal.c qual_inject-retval.c \ + qual_inject-signal.c qual_signal.c quotactl.c \ + quotactl-Xabbrev.c quotactl-Xraw.c quotactl-Xverbose.c \ + quotactl-success.c quotactl-success-v.c quotactl-v.c \ + quotactl-xfs.c quotactl-xfs-success.c quotactl-xfs-success-v.c \ + quotactl-xfs-v.c read-write.c readahead.c readdir.c readlink.c \ + readlinkat.c readv.c reboot.c recv-MSG_TRUNC.c recvfrom.c \ + recvfrom-MSG_TRUNC.c recvmmsg-timeout.c recvmsg.c \ + redirect-fds.c remap_file_pages.c remap_file_pages-Xabbrev.c \ remap_file_pages-Xraw.c remap_file_pages-Xverbose.c rename.c \ renameat.c renameat2.c request_key.c restart_syscall.c \ riscv_flush_icache.c rmdir.c rt_sigaction.c rt_sigpending.c \ - rt_sigprocmask.c rt_sigqueueinfo.c rt_sigreturn.c \ + rt_sigprocmask.c rt_sigqueueinfo.c \ + rt_sigqueueinfo--pidns-translation.c rt_sigreturn.c \ rt_sigsuspend.c rt_sigtimedwait.c rt_tgsigqueueinfo.c \ - run_expect_termsig.c s390_guarded_storage.c \ - s390_guarded_storage-v.c s390_pci_mmio_read_write.c \ - s390_runtime_instr.c s390_sthyi.c s390_sthyi-v.c \ - sched_get_priority_mxx.c sched_rr_get_interval.c \ - sched_xetaffinity.c sched_xetattr.c sched_xetparam.c \ - sched_xetscheduler.c sched_yield.c scm_rights.c \ - seccomp-filter.c seccomp-filter-v.c seccomp-strict.c \ - seccomp_get_action_avail.c select.c select-P.c semop.c \ - sendfile.c sendfile64.c set_mempolicy.c set_ptracer_any.c \ - set_sigblock.c set_sigign.c setdomainname.c setfsgid.c \ - setfsgid32.c setfsuid.c setfsuid32.c setgid.c setgid32.c \ - setgroups.c setgroups32.c sethostname.c setns.c setregid.c \ - setregid32.c setresgid.c setresgid32.c setresuid.c \ - setresuid32.c setreuid.c setreuid32.c setrlimit.c \ - setrlimit-Xabbrev.c setrlimit-Xraw.c setrlimit-Xverbose.c \ - setuid.c setuid32.c shmxt.c shutdown.c sigaction.c \ - sigaltstack.c siginfo.c signal.c signal_receive.c signalfd4.c \ - sigpending.c sigprocmask.c sigreturn.c sigsuspend.c sleep.c \ - so_error.c so_linger.c so_peercred.c so_peercred-Xabbrev.c \ - so_peercred-Xraw.c so_peercred-Xverbose.c sock_filter-v.c \ - sock_filter-v-Xabbrev.c sock_filter-v-Xraw.c \ - sock_filter-v-Xverbose.c sockaddr_xlat-Xabbrev.c \ - sockaddr_xlat-Xraw.c sockaddr_xlat-Xverbose.c socketcall.c \ - sockopt-sol_netlink.c sockopt-timestamp.c splice.c \ - $(stack_fcall_SOURCES) $(stack_fcall_mangled_SOURCES) stat.c \ - stat64.c statfs.c statfs64.c statx.c swap.c sxetmask.c \ - symlink.c symlinkat.c sync.c sync_file_range.c \ - sync_file_range2.c sysinfo.c syslog.c tee.c threads-execve.c \ + rt_tgsigqueueinfo--pidns-translation.c run_expect_termsig.c \ + s390_guarded_storage.c s390_guarded_storage-v.c \ + s390_pci_mmio_read_write.c s390_runtime_instr.c s390_sthyi.c \ + s390_sthyi-v.c sched_get_priority_mxx.c \ + sched_rr_get_interval.c sched_xetaffinity.c \ + sched_xetaffinity--pidns-translation.c sched_xetattr.c \ + sched_xetattr--pidns-translation.c sched_xetparam.c \ + sched_xetparam--pidns-translation.c sched_xetscheduler.c \ + sched_xetscheduler--pidns-translation.c sched_yield.c \ + scm_rights.c seccomp-filter.c seccomp-filter-v.c \ + seccomp-strict.c seccomp_get_action_avail.c select.c \ + select-P.c semop.c semop-indirect.c semtimedop.c sendfile.c \ + sendfile64.c set_mempolicy.c set_mempolicy-Xabbrev.c \ + set_mempolicy-Xraw.c set_mempolicy-Xverbose.c \ + set_ptracer_any.c set_sigblock.c set_sigign.c setdomainname.c \ + setfsgid.c setfsgid32.c setfsuid.c setfsuid32.c setgid.c \ + setgid32.c setgroups.c setgroups32.c sethostname.c setns.c \ + setpgrp-exec.c setregid.c setregid32.c setresgid.c \ + setresgid32.c setresuid.c setresuid32.c setreuid.c \ + setreuid32.c setrlimit.c setrlimit-Xabbrev.c setrlimit-Xraw.c \ + setrlimit-Xverbose.c setuid.c setuid32.c shmxt.c shutdown.c \ + sigaction.c sigaltstack.c siginfo.c signal.c signal_receive.c \ + signal_receive--pidns-translation.c signalfd4.c sigpending.c \ + sigprocmask.c sigreturn.c sigsuspend.c sleep.c so_error.c \ + so_linger.c so_peercred.c so_peercred--pidns-translation.c \ + so_peercred-Xabbrev.c so_peercred-Xraw.c \ + so_peercred-Xverbose.c sock_filter-v.c sock_filter-v-Xabbrev.c \ + sock_filter-v-Xraw.c sock_filter-v-Xverbose.c \ + sockaddr_xlat-Xabbrev.c sockaddr_xlat-Xraw.c \ + sockaddr_xlat-Xverbose.c socketcall.c sockopt-sol_netlink.c \ + sockopt-timestamp.c splice.c $(stack_fcall_SOURCES) \ + $(stack_fcall_attach_SOURCES) $(stack_fcall_mangled_SOURCES) \ + stat.c stat64.c statfs.c statfs64.c status-all.c \ + status-failed.c status-failed-long.c status-failed-status.c \ + status-none.c status-none-f.c status-none-threads.c \ + status-successful.c status-successful-long.c \ + status-successful-status.c status-unfinished.c \ + status-unfinished-threads.c statx.c strace--strings-in-hex.c \ + strace--strings-in-hex-all.c \ + strace--strings-in-hex-non-ascii.c strace-n.c strace-x.c \ + strace-xx.c swap.c sxetmask.c symlink.c symlinkat.c sync.c \ + sync_file_range.c sync_file_range2.c sysinfo.c syslog.c \ + syslog-success.c tee.c tgkill.c tgkill--pidns-translation.c \ + threads-execve.c threads-execve--quiet-thread-execve.c \ + threads-execve-q.c threads-execve-qq.c threads-execve-qqq.c \ time.c timer_create.c timer_xettime.c timerfd_xettime.c \ - times.c times-fail.c truncate.c truncate64.c ugetrlimit.c \ - uio.c umask.c umount.c umount2.c umoven-illptr.c umovestr.c \ - umovestr-illptr.c umovestr2.c umovestr3.c uname.c \ - unblock_reset_raise.c unix-pair-send-recv.c \ + times.c times-fail.c tkill.c tkill--pidns-translation.c \ + tracer_ppid_pgid_sid.c $(trie_test_SOURCES) truncate.c \ + truncate64.c ugetrlimit.c uio.c umask.c umount.c umount2.c \ + umoven-illptr.c umovestr.c umovestr-illptr.c umovestr2.c \ + umovestr3.c umovestr_cached.c umovestr_cached_adjacent.c \ + uname.c unblock_reset_raise.c unix-pair-send-recv.c \ unix-pair-sendto-recvfrom.c unlink.c unlinkat.c unshare.c \ userfaultfd.c ustat.c utime.c utimensat.c utimensat-Xabbrev.c \ utimensat-Xraw.c utimensat-Xverbose.c utimes.c vfork-f.c \ vhangup.c vmsplice.c wait4.c wait4-v.c waitid.c waitid-v.c \ waitpid.c xattr.c xattr-strings.c xet_robust_list.c \ - xet_thread_area_x86.c xetitimer.c xetpgid.c xetpriority.c \ - xettimeofday.c zeroargc.c + xet_robust_list--pidns-translation.c xet_thread_area_x86.c \ + xetitimer.c xetpgid.c xetpgid--pidns-translation.c \ + xetpriority.c xetpriority--pidns-translation.c xettimeofday.c \ + zeroargc.c DIST_SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c \ accept.c accept4.c access.c acct.c add_key.c adjtimex.c aio.c \ aio_pgetevents.c alarm.c answer.c attach-f-p.c \ attach-f-p-cmd.c attach-p-cmd-cmd.c attach-p-cmd-p.c \ - block_reset_raise_run.c bpf.c bpf-obj_get_info_by_fd.c \ - bpf-obj_get_info_by_fd-prog.c bpf-obj_get_info_by_fd-prog-v.c \ - bpf-obj_get_info_by_fd-v.c bpf-success.c bpf-success-v.c \ - bpf-v.c brk.c btrfs.c caps.c caps-abbrev.c check_sigblock.c \ + block_reset_raise_run.c block_reset_run.c bpf.c \ + bpf-obj_get_info_by_fd.c bpf-obj_get_info_by_fd-prog.c \ + bpf-obj_get_info_by_fd-prog-v.c bpf-obj_get_info_by_fd-v.c \ + bpf-success.c bpf-success-long-y.c bpf-success-v.c bpf-v.c \ + brk.c btrfs.c caps.c caps-abbrev.c check_sigblock.c \ check_sigign.c chmod.c chown.c chown32.c chroot.c \ clock_adjtime.c clock_nanosleep.c clock_xettime.c \ - clone_parent.c clone_ptrace.c copy_file_range.c count-f.c \ - creat.c delay.c delete_module.c dev-yy.c dup.c dup2.c dup3.c \ - epoll_create.c epoll_create1.c epoll_ctl.c epoll_pwait.c \ - epoll_wait.c erestartsys.c eventfd.c execve.c execve-v.c \ - execveat.c execveat-v.c faccessat.c fadvise64.c fadvise64_64.c \ + clone-flags.c clone3.c clone3-Xabbrev.c clone3-Xraw.c \ + clone3-Xverbose.c clone3-success.c clone3-success-Xabbrev.c \ + clone3-success-Xraw.c clone3-success-Xverbose.c clone_parent.c \ + clone_parent--quiet-exit.c clone_parent-q.c clone_parent-qq.c \ + clone_ptrace.c clone_ptrace--quiet-attach.c \ + clone_ptrace--quiet-exit.c clone_ptrace-q.c clone_ptrace-qq.c \ + close_range.c close_range-P.c close_range-y.c close_range-yy.c \ + copy_file_range.c count-f.c creat.c delay.c delete_module.c \ + dev--decode-fds-dev.c dev--decode-fds-path.c \ + dev--decode-fds-socket.c dev-yy.c dup.c dup-P.c dup-y.c \ + dup-yy.c dup2.c dup2-P.c dup2-y.c dup2-yy.c dup3.c dup3-P.c \ + dup3-y.c dup3-yy.c epoll_create.c epoll_create1.c epoll_ctl.c \ + epoll_pwait.c epoll_wait.c erestartsys.c eventfd.c execve.c \ + execve-v.c execveat.c execveat-v.c faccessat.c faccessat-P.c \ + faccessat-y.c faccessat-yy.c faccessat2.c faccessat2-P.c \ + faccessat2-y.c faccessat2-yy.c fadvise64.c fadvise64_64.c \ fallocate.c fanotify_init.c fanotify_mark.c \ fanotify_mark-Xabbrev.c fanotify_mark-Xraw.c \ fanotify_mark-Xverbose.c fchdir.c fchmod.c fchmodat.c fchown.c \ - fchown32.c fchownat.c fcntl.c fcntl64.c fdatasync.c fflush.c \ - file_handle.c file_ioctl.c filter-unavailable.c finit_module.c \ - flock.c fork-f.c fstat.c fstat-Xabbrev.c fstat-Xraw.c \ - fstat-Xverbose.c fstat64.c fstat64-Xabbrev.c fstat64-Xraw.c \ - fstat64-Xverbose.c fstatat64.c fstatfs.c fstatfs64.c fsync.c \ - fsync-y.c ftruncate.c ftruncate64.c futex.c futimesat.c \ - get_mempolicy.c getcpu.c getcwd.c getdents.c getdents64.c \ - getegid.c getegid32.c geteuid.c geteuid32.c getgid.c \ - getgid32.c getgroups.c getgroups32.c getpeername.c getpgrp.c \ - getpid.c getppid.c getrandom.c getresgid.c getresgid32.c \ - getresuid.c getresuid32.c getrlimit.c getrusage.c getsid.c \ - getsockname.c gettid.c getuid.c getuid32.c getxxid.c \ - group_req.c inet-cmsg.c init_module.c inject-nf.c inotify.c \ - inotify_init1.c int_0x80.c io_uring_enter.c \ - io_uring_register.c io_uring_setup.c ioctl.c ioctl_block.c \ - ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-success.c \ - ioctl_evdev-success-v.c ioctl_evdev-v.c ioctl_inotify.c \ - ioctl_kvm_run.c ioctl_kvm_run-v.c ioctl_kvm_run_auxstr_vcpu.c \ - ioctl_loop.c ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c \ - ioctl_nbd.c ioctl_nsfs.c ioctl_perf.c ioctl_perf-success.c \ - ioctl_ptp.c ioctl_random.c ioctl_rtc.c ioctl_rtc-v.c \ - ioctl_scsi.c ioctl_sg_io_v3.c ioctl_sg_io_v4.c \ - ioctl_sock_gifconf.c ioctl_uffdio.c ioctl_v4l2.c ioperm.c \ - iopl.c ioprio.c ioprio-Xabbrev.c ioprio-Xraw.c \ - ioprio-Xverbose.c ip_mreq.c ipc.c ipc_msg.c ipc_msg-Xabbrev.c \ - ipc_msg-Xraw.c ipc_msg-Xverbose.c ipc_msgbuf.c \ - ipc_msgbuf-Xabbrev.c ipc_msgbuf-Xraw.c ipc_msgbuf-Xverbose.c \ - ipc_sem.c ipc_sem-Xabbrev.c ipc_sem-Xraw.c ipc_sem-Xverbose.c \ - ipc_shm.c ipc_shm-Xabbrev.c ipc_shm-Xraw.c ipc_shm-Xverbose.c \ - is_linux_mips_n64.c kcmp.c kcmp-y.c kern_features.c \ + fchown32.c fchownat.c fcntl.c fcntl--pidns-translation.c \ + fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \ + file_handle.c file_ioctl.c filter-unavailable.c \ + filter_seccomp-flag.c filter_seccomp-perf.c finit_module.c \ + flock.c fork--pidns-translation.c fork-f.c fsconfig.c \ + fsconfig-P.c fsmount.c fsopen.c fspick.c fspick-P.c fstat.c \ + fstat-Xabbrev.c fstat-Xraw.c fstat-Xverbose.c fstat64.c \ + fstat64-Xabbrev.c fstat64-Xraw.c fstat64-Xverbose.c \ + fstatat64.c fstatfs.c fstatfs64.c fsync.c fsync-y.c \ + ftruncate.c ftruncate64.c futex.c futimesat.c get_mempolicy.c \ + get_process_reaper.c getcpu.c getcwd.c getdents.c getdents-v.c \ + getdents64.c getdents64-v.c getegid.c getegid32.c geteuid.c \ + geteuid32.c getgid.c getgid32.c getgroups.c getgroups32.c \ + getpeername.c getpgrp.c getpgrp--pidns-translation.c getpid.c \ + getpid--pidns-translation.c getppid.c getrandom.c getresgid.c \ + getresgid32.c getresuid.c getresuid32.c getrlimit.c \ + getrusage.c getsid.c getsid--pidns-translation.c getsockname.c \ + gettid.c gettid--pidns-translation.c getuid.c getuid32.c \ + getxgid.c getxpid.c getxuid.c group_req.c inet-cmsg.c \ + init_module.c inject-nf.c inotify.c inotify_init.c \ + inotify_init-y.c inotify_init1.c inotify_init1-y.c int_0x80.c \ + io_uring_enter.c io_uring_register.c io_uring_setup.c ioctl.c \ + ioctl_block.c ioctl_block--pidns-translation.c ioctl_dm.c \ + ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-Xabbrev.c \ + ioctl_evdev-Xraw.c ioctl_evdev-Xverbose.c \ + ioctl_evdev-success.c ioctl_evdev-success-Xabbrev.c \ + ioctl_evdev-success-Xraw.c ioctl_evdev-success-Xverbose.c \ + ioctl_evdev-success-v.c ioctl_evdev-success-v-Xabbrev.c \ + ioctl_evdev-success-v-Xraw.c ioctl_evdev-success-v-Xverbose.c \ + ioctl_evdev-v.c ioctl_evdev-v-Xabbrev.c ioctl_evdev-v-Xraw.c \ + ioctl_evdev-v-Xverbose.c ioctl_hdio.c ioctl_hdio-Xabbrev.c \ + ioctl_hdio-Xraw.c ioctl_hdio-Xverbose.c ioctl_hdio-success.c \ + ioctl_hdio-success-Xabbrev.c ioctl_hdio-success-Xraw.c \ + ioctl_hdio-success-Xverbose.c ioctl_hdio-success-v.c \ + ioctl_hdio-success-v-Xabbrev.c ioctl_hdio-success-v-Xraw.c \ + ioctl_hdio-success-v-Xverbose.c ioctl_hdio-v.c \ + ioctl_hdio-v-Xabbrev.c ioctl_hdio-v-Xraw.c \ + ioctl_hdio-v-Xverbose.c ioctl_inotify.c ioctl_kvm_run.c \ + ioctl_kvm_run-v.c ioctl_kvm_run_auxstr_vcpu.c ioctl_loop.c \ + ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c ioctl_nbd.c \ + ioctl_nsfs.c ioctl_perf.c ioctl_perf-success.c ioctl_ptp.c \ + ioctl_random.c ioctl_rtc.c ioctl_rtc-v.c ioctl_scsi.c \ + ioctl_sg_io_v3.c ioctl_sg_io_v4.c ioctl_sock_gifconf.c \ + ioctl_tee.c ioctl_uffdio.c ioctl_v4l2.c ioctl_v4l2-Xabbrev.c \ + ioctl_v4l2-Xraw.c ioctl_v4l2-Xverbose.c ioctl_v4l2-success.c \ + ioctl_v4l2-success-Xabbrev.c ioctl_v4l2-success-Xraw.c \ + ioctl_v4l2-success-Xverbose.c ioctl_v4l2-success-v.c \ + ioctl_v4l2-success-v-Xabbrev.c ioctl_v4l2-success-v-Xraw.c \ + ioctl_v4l2-success-v-Xverbose.c ioctl_v4l2-v.c \ + ioctl_v4l2-v-Xabbrev.c ioctl_v4l2-v-Xraw.c \ + ioctl_v4l2-v-Xverbose.c ioctl_watchdog.c ioperm.c iopl.c \ + ioprio.c ioprio--pidns-translation.c ioprio-Xabbrev.c \ + ioprio-Xraw.c ioprio-Xverbose.c ip_mreq.c ipc.c ipc_msg.c \ + ipc_msg-Xabbrev.c ipc_msg-Xraw.c ipc_msg-Xverbose.c \ + ipc_msgbuf.c ipc_msgbuf-Xabbrev.c ipc_msgbuf-Xraw.c \ + ipc_msgbuf-Xverbose.c ipc_sem.c ipc_sem-Xabbrev.c \ + ipc_sem-Xraw.c ipc_sem-Xverbose.c ipc_shm.c ipc_shm-Xabbrev.c \ + ipc_shm-Xraw.c ipc_shm-Xverbose.c is_linux_mips_n64.c kcmp.c \ + kcmp-y.c kcmp-y--pidns-translation.c kern_features.c \ kernel_version.c kernel_version-Xabbrev.c \ kernel_version-Xraw.c kernel_version-Xverbose.c \ kexec_file_load.c kexec_load.c keyctl.c keyctl-Xabbrev.c \ - keyctl-Xraw.c keyctl-Xverbose.c kill.c kill_child.c ksysent.c \ - lchown.c lchown32.c link.c linkat.c list_sigaction_signum.c \ - llseek.c localtime.c lookup_dcookie.c looping_threads.c \ - lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \ + keyctl-Xraw.c keyctl-Xverbose.c kill.c \ + kill--pidns-translation.c kill_child.c ksysent.c lchown.c \ + lchown32.c link.c linkat.c list_sigaction_signum.c llseek.c \ + localtime.c lookup_dcookie.c looping_threads.c lseek.c lstat.c \ + lstat64.c madvise.c maybe_switch_current_tcp.c \ + maybe_switch_current_tcp--quiet-thread-execve.c mbind.c \ + mbind-Xabbrev.c mbind-Xraw.c mbind-Xverbose.c membarrier.c \ memfd_create.c memfd_create-Xabbrev.c memfd_create-Xraw.c \ - memfd_create-Xverbose.c migrate_pages.c mincore.c mkdir.c \ - mkdirat.c mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c \ + memfd_create-Xverbose.c migrate_pages.c \ + migrate_pages--pidns-translation.c mincore.c mkdir.c mkdirat.c \ + mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c \ mmap-Xabbrev.c mmap-Xraw.c mmap-Xverbose.c mmap64.c \ mmap64-Xabbrev.c mmap64-Xraw.c mmap64-Xverbose.c mmsg.c \ mmsg-silent.c mmsg_name.c mmsg_name-v.c modify_ldt.c mount.c \ - mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c move_pages.c \ + mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c move_mount.c \ + move_mount-P.c move_pages.c move_pages--pidns-translation.c \ move_pages-Xabbrev.c move_pages-Xraw.c move_pages-Xverbose.c \ mq.c mq_sendrecv.c mq_sendrecv-read.c mq_sendrecv-write.c \ msg_control.c msg_control-v.c msg_name.c munlockall.c \ - nanosleep.c net-accept-connect.c net-icmp_filter.c \ - net-packet_mreq.c net-packet_mreq-Xabbrev.c \ + nanosleep.c net--decode-fds-dev-netlink.c \ + net--decode-fds-none-netlink.c net--decode-fds-path-netlink.c \ + net--decode-fds-socket-netlink.c net-accept-connect.c \ + net-icmp_filter.c net-packet_mreq.c net-packet_mreq-Xabbrev.c \ net-packet_mreq-Xraw.c net-packet_mreq-Xverbose.c \ - net-sockaddr.c net-tpacket_req.c net-tpacket_stats.c \ + net-sockaddr.c net-sockaddr--pidns-translation.c \ + net-tpacket_req.c net-tpacket_stats.c \ net-tpacket_stats-success.c net-y-unix.c net-yy-inet.c \ net-yy-inet6.c net-yy-netlink.c net-yy-unix.c netlink_audit.c \ - netlink_crypto.c netlink_generic.c netlink_inet_diag.c \ - netlink_kobject_uevent.c netlink_netfilter.c \ - netlink_netlink_diag.c netlink_protocol.c netlink_route.c \ - netlink_selinux.c netlink_sock_diag.c netlink_unix_diag.c \ - netlink_xfrm.c newfstatat.c nfnetlink_acct.c \ - nfnetlink_cthelper.c nfnetlink_ctnetlink.c \ + netlink_audit--pidns-translation.c netlink_crypto.c \ + netlink_generic.c netlink_inet_diag.c netlink_kobject_uevent.c \ + netlink_netfilter.c netlink_netlink_diag.c netlink_protocol.c \ + netlink_route.c netlink_selinux.c netlink_sock_diag.c \ + netlink_unix_diag.c netlink_xfrm.c newfstatat.c \ + nfnetlink_acct.c nfnetlink_cthelper.c nfnetlink_ctnetlink.c \ nfnetlink_ctnetlink_exp.c nfnetlink_cttimeout.c \ nfnetlink_ipset.c nfnetlink_nft_compat.c nfnetlink_nftables.c \ nfnetlink_osf.c nfnetlink_queue.c nfnetlink_ulog.c nlattr.c \ @@ -3553,89 +4954,123 @@ DIST_SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c \ nlattr_fib_rule_hdr.c nlattr_ifaddrlblmsg.c nlattr_ifaddrmsg.c \ nlattr_ifinfomsg.c nlattr_ifla_af_spec.c nlattr_ifla_brport.c \ nlattr_ifla_linkinfo.c nlattr_ifla_port.c nlattr_ifla_xdp.c \ - nlattr_inet_diag_msg.c nlattr_inet_diag_req_compat.c \ - nlattr_inet_diag_req_v2.c nlattr_mdba_mdb_entry.c \ - nlattr_mdba_router_port.c nlattr_ndmsg.c nlattr_ndtmsg.c \ - nlattr_netconfmsg.c nlattr_netlink_diag_msg.c \ - nlattr_nlmsgerr.c nlattr_packet_diag_msg.c nlattr_rtgenmsg.c \ - nlattr_rtmsg.c nlattr_smc_diag_msg.c nlattr_tc_stats.c \ - nlattr_tca_stab.c nlattr_tcamsg.c nlattr_tcmsg.c \ - nlattr_unix_diag_msg.c nsyscalls.c nsyscalls-d.c old_mmap.c \ - old_mmap-P.c old_mmap-Xabbrev.c old_mmap-Xraw.c \ - old_mmap-Xverbose.c old_mmap-v-none.c oldfstat.c oldlstat.c \ - oldselect.c oldselect-P.c oldselect-efault.c \ - oldselect-efault-P.c oldstat.c open.c openat.c \ + nlattr_ifla_xdp-y.c nlattr_inet_diag_msg.c \ + nlattr_inet_diag_req_compat.c nlattr_inet_diag_req_v2.c \ + nlattr_mdba_mdb_entry.c nlattr_mdba_router_port.c \ + nlattr_ndmsg.c nlattr_ndtmsg.c nlattr_netconfmsg.c \ + nlattr_netlink_diag_msg.c nlattr_nlmsgerr.c \ + nlattr_packet_diag_msg.c nlattr_rtgenmsg.c nlattr_rtmsg.c \ + nlattr_smc_diag_msg.c nlattr_tc_stats.c nlattr_tca_stab.c \ + nlattr_tcamsg.c nlattr_tcmsg.c nlattr_unix_diag_msg.c \ + nsyscalls.c nsyscalls-d.c old_mmap.c old_mmap-P.c \ + old_mmap-Xabbrev.c old_mmap-Xraw.c old_mmap-Xverbose.c \ + old_mmap-v-none.c oldfstat.c oldlstat.c oldselect.c \ + oldselect-P.c oldselect-efault.c oldselect-efault-P.c \ + oldstat.c open.c open_tree.c open_tree-P.c openat.c openat2.c \ + openat2-Xabbrev.c openat2-Xraw.c openat2-Xverbose.c \ + openat2-v.c openat2-v-y.c openat2-v-y-Xabbrev.c \ + openat2-v-y-Xraw.c openat2-v-y-Xverbose.c openat2-y.c \ orphaned_process_group.c osf_utimes.c pause.c pc.c \ perf_event_open.c perf_event_open_nonverbose.c \ perf_event_open_unabbrev.c personality.c personality-Xabbrev.c \ - personality-Xraw.c personality-Xverbose.c pidfd_send_signal.c \ - pipe.c pipe2.c pkey_alloc.c pkey_free.c pkey_mprotect.c poll.c \ - poll-P.c ppoll.c ppoll-P.c ppoll-v.c prctl-arg2-intptr.c \ - prctl-dumpable.c prctl-name.c prctl-no-args.c \ - prctl-pdeathsig.c prctl-seccomp-filter-v.c \ + personality-Xraw.c personality-Xverbose.c pidfd_getfd.c \ + pidfd_getfd-y.c pidfd_getfd-yy.c pidfd_open.c \ + pidfd_open--decode-fd-path.c pidfd_open--decode-fd-pidfd.c \ + pidfd_open--decode-fd-socket.c pidfd_open--pidns-translation.c \ + pidfd_open-P.c pidfd_open-y.c pidfd_open-yy.c \ + pidfd_send_signal.c pidfd_send_signal--pidns-translation.c \ + pidns-cache.c pipe.c pipe2.c pkey_alloc.c pkey_free.c \ + pkey_mprotect.c poll.c poll-P.c ppoll.c ppoll-P.c ppoll-v.c \ + prctl-arg2-intptr.c prctl-dumpable.c prctl-name.c \ + prctl-no-args.c prctl-pdeathsig.c prctl-seccomp-filter-v.c \ prctl-seccomp-strict.c prctl-securebits.c prctl-spec-inject.c \ prctl-tid_address.c prctl-tsc.c pread64-pwrite64.c preadv.c \ preadv-pwritev.c preadv2-pwritev2.c print_maxfd.c \ - printpath-umovestr.c printpath-umovestr-peekdata.c \ - printpath-umovestr-undumpable.c printsignal-Xabbrev.c \ - printsignal-Xraw.c printsignal-Xverbose.c printstr.c \ - printstrn-umoven.c printstrn-umoven-peekdata.c \ - printstrn-umoven-undumpable.c prlimit64.c process_vm_readv.c \ - process_vm_writev.c pselect6.c ptrace.c ptrace_syscall_info.c \ - pwritev.c qual_fault.c qual_inject-error-signal.c \ - qual_inject-retval.c qual_inject-signal.c qual_signal.c \ - quotactl.c quotactl-Xabbrev.c quotactl-Xraw.c \ - quotactl-Xverbose.c quotactl-success.c quotactl-success-v.c \ - quotactl-v.c quotactl-xfs.c quotactl-xfs-success.c \ - quotactl-xfs-success-v.c quotactl-xfs-v.c read-write.c \ - readahead.c readdir.c readlink.c readlinkat.c readv.c reboot.c \ - recvfrom.c recvmmsg-timeout.c recvmsg.c redirect-fds.c \ - remap_file_pages.c remap_file_pages-Xabbrev.c \ + print_ppid_tracerpid.c printpath-umovestr.c \ + printpath-umovestr-peekdata.c printpath-umovestr-undumpable.c \ + printsignal-Xabbrev.c printsignal-Xraw.c \ + printsignal-Xverbose.c printstr.c printstrn-umoven.c \ + printstrn-umoven-peekdata.c printstrn-umoven-undumpable.c \ + prlimit64.c prlimit64--pidns-translation.c process_vm_readv.c \ + process_vm_readv--pidns-translation.c process_vm_writev.c \ + process_vm_writev--pidns-translation.c pselect6.c ptrace.c \ + ptrace_syscall_info.c pwritev.c qual_fault.c \ + qual_inject-error-signal.c qual_inject-retval.c \ + qual_inject-signal.c qual_signal.c quotactl.c \ + quotactl-Xabbrev.c quotactl-Xraw.c quotactl-Xverbose.c \ + quotactl-success.c quotactl-success-v.c quotactl-v.c \ + quotactl-xfs.c quotactl-xfs-success.c quotactl-xfs-success-v.c \ + quotactl-xfs-v.c read-write.c readahead.c readdir.c readlink.c \ + readlinkat.c readv.c reboot.c recv-MSG_TRUNC.c recvfrom.c \ + recvfrom-MSG_TRUNC.c recvmmsg-timeout.c recvmsg.c \ + redirect-fds.c remap_file_pages.c remap_file_pages-Xabbrev.c \ remap_file_pages-Xraw.c remap_file_pages-Xverbose.c rename.c \ renameat.c renameat2.c request_key.c restart_syscall.c \ riscv_flush_icache.c rmdir.c rt_sigaction.c rt_sigpending.c \ - rt_sigprocmask.c rt_sigqueueinfo.c rt_sigreturn.c \ + rt_sigprocmask.c rt_sigqueueinfo.c \ + rt_sigqueueinfo--pidns-translation.c rt_sigreturn.c \ rt_sigsuspend.c rt_sigtimedwait.c rt_tgsigqueueinfo.c \ - run_expect_termsig.c s390_guarded_storage.c \ - s390_guarded_storage-v.c s390_pci_mmio_read_write.c \ - s390_runtime_instr.c s390_sthyi.c s390_sthyi-v.c \ - sched_get_priority_mxx.c sched_rr_get_interval.c \ - sched_xetaffinity.c sched_xetattr.c sched_xetparam.c \ - sched_xetscheduler.c sched_yield.c scm_rights.c \ - seccomp-filter.c seccomp-filter-v.c seccomp-strict.c \ - seccomp_get_action_avail.c select.c select-P.c semop.c \ - sendfile.c sendfile64.c set_mempolicy.c set_ptracer_any.c \ - set_sigblock.c set_sigign.c setdomainname.c setfsgid.c \ - setfsgid32.c setfsuid.c setfsuid32.c setgid.c setgid32.c \ - setgroups.c setgroups32.c sethostname.c setns.c setregid.c \ - setregid32.c setresgid.c setresgid32.c setresuid.c \ - setresuid32.c setreuid.c setreuid32.c setrlimit.c \ - setrlimit-Xabbrev.c setrlimit-Xraw.c setrlimit-Xverbose.c \ - setuid.c setuid32.c shmxt.c shutdown.c sigaction.c \ - sigaltstack.c siginfo.c signal.c signal_receive.c signalfd4.c \ - sigpending.c sigprocmask.c sigreturn.c sigsuspend.c sleep.c \ - so_error.c so_linger.c so_peercred.c so_peercred-Xabbrev.c \ - so_peercred-Xraw.c so_peercred-Xverbose.c sock_filter-v.c \ - sock_filter-v-Xabbrev.c sock_filter-v-Xraw.c \ - sock_filter-v-Xverbose.c sockaddr_xlat-Xabbrev.c \ - sockaddr_xlat-Xraw.c sockaddr_xlat-Xverbose.c socketcall.c \ - sockopt-sol_netlink.c sockopt-timestamp.c splice.c \ - $(stack_fcall_SOURCES) $(stack_fcall_mangled_SOURCES) stat.c \ - stat64.c statfs.c statfs64.c statx.c swap.c sxetmask.c \ - symlink.c symlinkat.c sync.c sync_file_range.c \ - sync_file_range2.c sysinfo.c syslog.c tee.c threads-execve.c \ + rt_tgsigqueueinfo--pidns-translation.c run_expect_termsig.c \ + s390_guarded_storage.c s390_guarded_storage-v.c \ + s390_pci_mmio_read_write.c s390_runtime_instr.c s390_sthyi.c \ + s390_sthyi-v.c sched_get_priority_mxx.c \ + sched_rr_get_interval.c sched_xetaffinity.c \ + sched_xetaffinity--pidns-translation.c sched_xetattr.c \ + sched_xetattr--pidns-translation.c sched_xetparam.c \ + sched_xetparam--pidns-translation.c sched_xetscheduler.c \ + sched_xetscheduler--pidns-translation.c sched_yield.c \ + scm_rights.c seccomp-filter.c seccomp-filter-v.c \ + seccomp-strict.c seccomp_get_action_avail.c select.c \ + select-P.c semop.c semop-indirect.c semtimedop.c sendfile.c \ + sendfile64.c set_mempolicy.c set_mempolicy-Xabbrev.c \ + set_mempolicy-Xraw.c set_mempolicy-Xverbose.c \ + set_ptracer_any.c set_sigblock.c set_sigign.c setdomainname.c \ + setfsgid.c setfsgid32.c setfsuid.c setfsuid32.c setgid.c \ + setgid32.c setgroups.c setgroups32.c sethostname.c setns.c \ + setpgrp-exec.c setregid.c setregid32.c setresgid.c \ + setresgid32.c setresuid.c setresuid32.c setreuid.c \ + setreuid32.c setrlimit.c setrlimit-Xabbrev.c setrlimit-Xraw.c \ + setrlimit-Xverbose.c setuid.c setuid32.c shmxt.c shutdown.c \ + sigaction.c sigaltstack.c siginfo.c signal.c signal_receive.c \ + signal_receive--pidns-translation.c signalfd4.c sigpending.c \ + sigprocmask.c sigreturn.c sigsuspend.c sleep.c so_error.c \ + so_linger.c so_peercred.c so_peercred--pidns-translation.c \ + so_peercred-Xabbrev.c so_peercred-Xraw.c \ + so_peercred-Xverbose.c sock_filter-v.c sock_filter-v-Xabbrev.c \ + sock_filter-v-Xraw.c sock_filter-v-Xverbose.c \ + sockaddr_xlat-Xabbrev.c sockaddr_xlat-Xraw.c \ + sockaddr_xlat-Xverbose.c socketcall.c sockopt-sol_netlink.c \ + sockopt-timestamp.c splice.c $(stack_fcall_SOURCES) \ + $(stack_fcall_attach_SOURCES) $(stack_fcall_mangled_SOURCES) \ + stat.c stat64.c statfs.c statfs64.c status-all.c \ + status-failed.c status-failed-long.c status-failed-status.c \ + status-none.c status-none-f.c status-none-threads.c \ + status-successful.c status-successful-long.c \ + status-successful-status.c status-unfinished.c \ + status-unfinished-threads.c statx.c strace--strings-in-hex.c \ + strace--strings-in-hex-all.c \ + strace--strings-in-hex-non-ascii.c strace-n.c strace-x.c \ + strace-xx.c swap.c sxetmask.c symlink.c symlinkat.c sync.c \ + sync_file_range.c sync_file_range2.c sysinfo.c syslog.c \ + syslog-success.c tee.c tgkill.c tgkill--pidns-translation.c \ + threads-execve.c threads-execve--quiet-thread-execve.c \ + threads-execve-q.c threads-execve-qq.c threads-execve-qqq.c \ time.c timer_create.c timer_xettime.c timerfd_xettime.c \ - times.c times-fail.c truncate.c truncate64.c ugetrlimit.c \ - uio.c umask.c umount.c umount2.c umoven-illptr.c umovestr.c \ - umovestr-illptr.c umovestr2.c umovestr3.c uname.c \ - unblock_reset_raise.c unix-pair-send-recv.c \ + times.c times-fail.c tkill.c tkill--pidns-translation.c \ + tracer_ppid_pgid_sid.c $(trie_test_SOURCES) truncate.c \ + truncate64.c ugetrlimit.c uio.c umask.c umount.c umount2.c \ + umoven-illptr.c umovestr.c umovestr-illptr.c umovestr2.c \ + umovestr3.c umovestr_cached.c umovestr_cached_adjacent.c \ + uname.c unblock_reset_raise.c unix-pair-send-recv.c \ unix-pair-sendto-recvfrom.c unlink.c unlinkat.c unshare.c \ userfaultfd.c ustat.c utime.c utimensat.c utimensat-Xabbrev.c \ utimensat-Xraw.c utimensat-Xverbose.c utimes.c vfork-f.c \ vhangup.c vmsplice.c wait4.c wait4-v.c waitid.c waitid-v.c \ waitpid.c xattr.c xattr-strings.c xet_robust_list.c \ - xet_thread_area_x86.c xetitimer.c xetpgid.c xetpriority.c \ - xettimeofday.c zeroargc.c + xet_robust_list--pidns-translation.c xet_thread_area_x86.c \ + xetitimer.c xetpgid.c xetpgid--pidns-translation.c \ + xetpriority.c xetpriority--pidns-translation.c xettimeofday.c \ + zeroargc.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -3846,9 +5281,11 @@ am__set_TESTS_bases = \ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` +AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' RECHECK_LOGS = $(TEST_LOGS) AM_RECURSIVE_TARGETS = check recheck -@ENABLE_STACKTRACE_TRUE@am__EXEEXT_2 = strace-k.test $(am__append_1) +@ENABLE_STACKTRACE_TRUE@am__EXEEXT_2 = strace-k.test strace-k-p.test \ +@ENABLE_STACKTRACE_TRUE@ $(am__append_1) TEST_SUITE_LOG = test-suite.log TEST_EXTENSIONS = @EXEEXT@ .test am__test_logs1 = $(TESTS:=.log) @@ -3874,17 +5311,22 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_EXEEXT = @BUILD_EXEEXT@ BUILD_OBJEXT = @BUILD_OBJEXT@ -CC = @CC@ +CC = @CC_FOR_MX32@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ +CC_FOR_M32 = @CC_FOR_M32@ +CC_FOR_MX32 = @CC_FOR_MX32@ CFLAGS = @CFLAGS@ CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ +CFLAGS_FOR_M32 = @CFLAGS_FOR_M32@ +CFLAGS_FOR_MX32 = @CFLAGS_FOR_MX32@ CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@ CODE_COVERAGE_CPPFLAGS = @CODE_COVERAGE_CPPFLAGS@ CODE_COVERAGE_CXXFLAGS = @CODE_COVERAGE_CXXFLAGS@ @@ -3895,7 +5337,11 @@ COPYRIGHT_YEAR = @COPYRIGHT_YEAR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@ +CPPFLAGS_FOR_M32 = @CPPFLAGS_FOR_M32@ +CPPFLAGS_FOR_MX32 = @CPPFLAGS_FOR_MX32@ CPP_FOR_BUILD = @CPP_FOR_BUILD@ +CPP_FOR_M32 = @CPP_FOR_M32@ +CPP_FOR_MX32 = @CPP_FOR_MX32@ CYGPATH_W = @CYGPATH_W@ DEB_CHANGELOGTIME = @DEB_CHANGELOGTIME@ DEFS = @DEFS@ @@ -3937,7 +5383,6 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PERL = @PERL@ RANLIB = @RANLIB@ READELF = @READELF@ RPM_CHANGELOGTIME = @RPM_CHANGELOGTIME@ @@ -3956,6 +5401,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CC_FOR_BUILD = @ac_ct_CC_FOR_BUILD@ am__include = @am__include@ @@ -4029,7 +5475,7 @@ OS = linux ARCH = @arch_mx32@ NATIVE_ARCH = @arch_native@ MPERS_NAME = mx32 -MPERS_CC_FLAGS = @cc_flags_mx32@ +MPERS_CC_FLAGS = @CFLAGS_FOR_MX32@ @cc_flags_mx32@ ARCH_MFLAGS = -DMPERS_IS_$(MPERS_NAME) $(MPERS_CC_FLAGS) AM_CFLAGS = $(WARN_CFLAGS) AM_CPPFLAGS = $(ARCH_MFLAGS) \ @@ -4046,6 +5492,7 @@ AM_CPPFLAGS = $(ARCH_MFLAGS) \ AM_LDFLAGS = $(ARCH_MFLAGS) libtests_a_SOURCES = \ create_nl_socket.c \ + create_tmpfile.c \ errno2name.c \ error_msg.c \ fill_memory.c \ @@ -4057,15 +5504,21 @@ libtests_a_SOURCES = \ inode_of_sockfd.c \ libmmsg.c \ libsocketcall.c \ + lock_file.c \ overflowuid.c \ + pidns.c \ + pidns.h \ pipe_maxfd.c \ print_quoted_string.c \ print_time.c \ printflags.c \ - printxval.c \ + printxval-Xabbrev.c \ + printxval-Xraw.c \ + printxval-Xverbose.c \ signal2name.c \ skip_unavailable.c \ sprintrc.c \ + status.c \ tail_alloc.c \ test_netlink.h \ test_nlattr.h \ @@ -4075,6 +5528,7 @@ libtests_a_SOURCES = \ test_ucopy.h \ tests.h \ tprintf.c \ + xmalloc_for_tests.c \ # end of libtests_a_SOURCES libtests_a_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 @@ -4094,10 +5548,6 @@ PURE_EXECUTABLES = \ aio_pgetevents \ alarm \ bpf \ - bpf-obj_get_info_by_fd \ - bpf-obj_get_info_by_fd-prog \ - bpf-obj_get_info_by_fd-prog-v \ - bpf-obj_get_info_by_fd-v \ bpf-v \ brk \ btrfs \ @@ -4109,13 +5559,34 @@ PURE_EXECUTABLES = \ clock_adjtime \ clock_nanosleep \ clock_xettime \ + clone-flags \ + clone3 \ + clone3-Xabbrev \ + clone3-Xraw \ + clone3-Xverbose \ + close_range \ + close_range-P \ + close_range-y \ + close_range-yy \ copy_file_range \ creat \ delete_module \ + dev--decode-fds-dev \ + dev--decode-fds-path \ + dev--decode-fds-socket \ dev-yy \ dup \ + dup-P \ + dup-y \ + dup-yy \ dup2 \ + dup2-P \ + dup2-y \ + dup2-yy \ dup3 \ + dup3-P \ + dup3-y \ + dup3-yy \ epoll_create \ epoll_create1 \ epoll_ctl \ @@ -4126,6 +5597,13 @@ PURE_EXECUTABLES = \ execve \ execveat \ faccessat \ + faccessat-P \ + faccessat-y \ + faccessat-yy \ + faccessat2 \ + faccessat2-P \ + faccessat2-y \ + faccessat2-yy \ fadvise64 \ fadvise64_64 \ fallocate \ @@ -4148,6 +5626,12 @@ PURE_EXECUTABLES = \ file_ioctl \ finit_module \ flock \ + fsconfig \ + fsconfig-P \ + fsmount \ + fsopen \ + fspick \ + fspick-P \ fstat \ fstat-Xabbrev \ fstat-Xraw \ @@ -4168,7 +5652,9 @@ PURE_EXECUTABLES = \ getcpu \ getcwd \ getdents \ + getdents-v \ getdents64 \ + getdents64-v \ getegid \ getegid32 \ geteuid \ @@ -4192,12 +5678,17 @@ PURE_EXECUTABLES = \ getsockname \ getuid \ getuid32 \ - getxxid \ + getxgid \ + getxpid \ + getxuid \ group_req \ inet-cmsg \ init_module \ inotify \ + inotify_init \ + inotify_init-y \ inotify_init1 \ + inotify_init1-y \ io_uring_enter \ io_uring_register \ io_uring_setup \ @@ -4205,6 +5696,21 @@ PURE_EXECUTABLES = \ ioctl_block \ ioctl_dm \ ioctl_evdev \ + ioctl_evdev-Xabbrev \ + ioctl_evdev-Xraw \ + ioctl_evdev-Xverbose \ + ioctl_evdev-v \ + ioctl_evdev-v-Xabbrev \ + ioctl_evdev-v-Xraw \ + ioctl_evdev-v-Xverbose \ + ioctl_hdio \ + ioctl_hdio-Xabbrev \ + ioctl_hdio-Xraw \ + ioctl_hdio-Xverbose \ + ioctl_hdio-v \ + ioctl_hdio-v-Xabbrev \ + ioctl_hdio-v-Xraw \ + ioctl_hdio-v-Xverbose \ ioctl_inotify \ ioctl_kvm_run \ ioctl_kvm_run-v \ @@ -4220,8 +5726,17 @@ PURE_EXECUTABLES = \ ioctl_sg_io_v3 \ ioctl_sg_io_v4 \ ioctl_sock_gifconf \ + ioctl_tee \ ioctl_uffdio \ ioctl_v4l2 \ + ioctl_v4l2-Xabbrev \ + ioctl_v4l2-Xraw \ + ioctl_v4l2-Xverbose \ + ioctl_v4l2-v \ + ioctl_v4l2-v-Xabbrev \ + ioctl_v4l2-v-Xraw \ + ioctl_v4l2-v-Xverbose \ + ioctl_watchdog \ ioperm \ iopl \ ioprio \ @@ -4270,7 +5785,12 @@ PURE_EXECUTABLES = \ lstat \ lstat64 \ madvise \ + maybe_switch_current_tcp \ + maybe_switch_current_tcp--quiet-thread-execve \ mbind \ + mbind-Xabbrev \ + mbind-Xraw \ + mbind-Xverbose \ membarrier \ memfd_create \ memfd_create-Xabbrev \ @@ -4300,6 +5820,8 @@ PURE_EXECUTABLES = \ mount-Xabbrev \ mount-Xraw \ mount-Xverbose \ + move_mount \ + move_mount-P \ move_pages \ move_pages-Xabbrev \ move_pages-Xraw \ @@ -4312,6 +5834,10 @@ PURE_EXECUTABLES = \ msg_name \ munlockall \ nanosleep \ + net--decode-fds-dev-netlink \ + net--decode-fds-none-netlink \ + net--decode-fds-path-netlink \ + net--decode-fds-socket-netlink \ net-icmp_filter \ net-packet_mreq \ net-packet_mreq-Xabbrev \ @@ -4391,7 +5917,19 @@ PURE_EXECUTABLES = \ oldselect-efault \ oldstat \ open \ + open_tree \ + open_tree-P \ openat \ + openat2 \ + openat2-Xabbrev \ + openat2-Xraw \ + openat2-Xverbose \ + openat2-v \ + openat2-v-y \ + openat2-v-y-Xabbrev \ + openat2-v-y-Xraw \ + openat2-v-y-Xverbose \ + openat2-y \ osf_utimes \ pause \ perf_event_open \ @@ -4399,6 +5937,16 @@ PURE_EXECUTABLES = \ personality-Xabbrev \ personality-Xraw \ personality-Xverbose \ + pidfd_getfd \ + pidfd_getfd-y \ + pidfd_getfd-yy \ + pidfd_open \ + pidfd_open--decode-fd-path \ + pidfd_open--decode-fd-pidfd \ + pidfd_open--decode-fd-socket \ + pidfd_open-P \ + pidfd_open-y \ + pidfd_open-yy \ pidfd_send_signal \ pipe \ pipe2 \ @@ -4406,9 +5954,7 @@ PURE_EXECUTABLES = \ pkey_free \ pkey_mprotect \ poll \ - poll-P \ ppoll \ - ppoll-P \ prctl-arg2-intptr \ prctl-dumpable \ prctl-name \ @@ -4450,7 +5996,9 @@ PURE_EXECUTABLES = \ readlinkat \ readv \ reboot \ + recv-MSG_TRUNC \ recvfrom \ + recvfrom-MSG_TRUNC \ recvmmsg-timeout \ recvmsg \ remap_file_pages \ @@ -4488,9 +6036,14 @@ PURE_EXECUTABLES = \ seccomp_get_action_avail \ select \ semop \ + semop-indirect \ + semtimedop \ sendfile \ sendfile64 \ set_mempolicy \ + set_mempolicy-Xabbrev \ + set_mempolicy-Xraw \ + set_mempolicy-Xverbose \ setdomainname \ setfsgid \ setfsgid32 \ @@ -4548,7 +6101,23 @@ PURE_EXECUTABLES = \ stat64 \ statfs \ statfs64 \ + status-all \ + status-failed \ + status-failed-long \ + status-failed-status \ + status-none \ + status-none-f \ + status-successful \ + status-successful-long \ + status-successful-status \ + status-unfinished \ statx \ + strace--strings-in-hex \ + strace--strings-in-hex-all \ + strace--strings-in-hex-non-ascii \ + strace-n \ + strace-x \ + strace-xx \ swap \ sxetmask \ symlink \ @@ -4559,12 +6128,14 @@ PURE_EXECUTABLES = \ sysinfo \ syslog \ tee \ + tgkill \ time \ timer_create \ timer_xettime \ timerfd_xettime \ times \ times-fail \ + tkill \ truncate \ truncate64 \ ugetrlimit \ @@ -4577,6 +6148,8 @@ PURE_EXECUTABLES = \ umovestr-illptr \ umovestr2 \ umovestr3 \ + umovestr_cached \ + umovestr_cached_adjacent \ uname \ unlink \ unlinkat \ @@ -4614,6 +6187,8 @@ ftruncate64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 localtime_LDADD = $(clock_LIBS) $(LDADD) looping_threads_LDADD = -lpthread $(LDADD) lstat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 +maybe_switch_current_tcp_LDADD = -lpthread $(LDADD) +maybe_switch_current_tcp__quiet_thread_execve_LDADD = -lpthread $(LDADD) mmap64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 mmap64_Xabbrev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 mmap64_Xraw_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 @@ -4627,17 +6202,30 @@ preadv_pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 stat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 statfs_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 +status_none_threads_LDADD = -lpthread $(LDADD) +status_unfinished_threads_LDADD = -lpthread $(LDADD) threads_execve_LDADD = -lpthread $(clock_LIBS) $(LDADD) +threads_execve__quiet_thread_execve_LDADD = -lpthread $(clock_LIBS) $(LDADD) +threads_execve_q_LDADD = -lpthread $(clock_LIBS) $(LDADD) +threads_execve_qq_LDADD = -lpthread $(clock_LIBS) $(LDADD) +threads_execve_qqq_LDADD = -lpthread $(clock_LIBS) $(LDADD) times_LDADD = $(clock_LIBS) $(LDADD) truncate64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 uio_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 stack_fcall_SOURCES = stack-fcall.c \ stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c +stack_fcall_attach_SOURCES = stack-fcall-attach.c \ + stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c + stack_fcall_mangled_SOURCES = stack-fcall-mangled.c \ stack-fcall-mangled-0.c stack-fcall-mangled-1.c \ stack-fcall-mangled-2.c stack-fcall-mangled-3.c +trie_test_SOURCES = trie_test.c trie_for_tests.c +trie_test_CPPFLAGS = $(AM_CPPFLAGS) $(CODE_COVERAGE_CPPFLAGS) +trie_test_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS) +trie_test_LDADD = $(LDADD) $(CODE_COVERAGE_LIBS) # Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in; do not edit. GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test \ @@ -4651,50 +6239,114 @@ GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test \ btrfs.gen.test chmod.gen.test chown.gen.test chown32.gen.test \ chroot.gen.test clock.gen.test clock_adjtime.gen.test \ clock_nanosleep.gen.test clock_xettime.gen.test \ - copy_file_range.gen.test creat.gen.test delete_module.gen.test \ - dev-yy.gen.test dup.gen.test dup2.gen.test dup3.gen.test \ + clone3.gen.test clone3-Xabbrev.gen.test clone3-Xraw.gen.test \ + clone3-Xverbose.gen.test clone3-success-Xabbrev.gen.test \ + clone3-success-Xraw.gen.test clone3-success-Xverbose.gen.test \ + clone_parent.gen.test clone_parent--quiet-exit.gen.test \ + clone_parent-q.gen.test clone_parent-qq.gen.test \ + clone_ptrace--quiet-attach.gen.test \ + clone_ptrace--quiet-exit.gen.test clone_ptrace-q.gen.test \ + clone_ptrace-qq.gen.test close_range.gen.test \ + close_range-P.gen.test close_range-y.gen.test \ + close_range-yy.gen.test copy_file_range.gen.test \ + creat.gen.test delete_module.gen.test \ + dev--decode-fds-dev.gen.test dev--decode-fds-path.gen.test \ + dev--decode-fds-socket.gen.test dev-yy.gen.test dup.gen.test \ + dup-P.gen.test dup-y.gen.test dup-yy.gen.test dup2.gen.test \ + dup2-P.gen.test dup2-y.gen.test dup2-yy.gen.test dup3.gen.test \ + dup3-P.gen.test dup3-y.gen.test dup3-yy.gen.test \ epoll_create.gen.test epoll_create1.gen.test \ epoll_ctl.gen.test epoll_pwait.gen.test epoll_wait.gen.test \ erestartsys.gen.test execveat.gen.test execveat-v.gen.test \ - faccessat.gen.test fadvise64_64.gen.test fallocate.gen.test \ + faccessat-P.gen.test faccessat-y.gen.test \ + faccessat-yy.gen.test faccessat2-P.gen.test \ + faccessat2-y.gen.test faccessat2-yy.gen.test \ + fadvise64_64.gen.test fallocate.gen.test \ fanotify_init.gen.test fanotify_mark.gen.test \ fanotify_mark-Xabbrev.gen.test fanotify_mark-Xraw.gen.test \ fanotify_mark-Xverbose.gen.test fchdir.gen.test \ fchmod.gen.test fchmodat.gen.test fchown.gen.test \ fchown32.gen.test fchownat.gen.test fcntl.gen.test \ - fcntl64.gen.test fdatasync.gen.test file_handle.gen.test \ - file_ioctl.gen.test finit_module.gen.test flock.gen.test \ - fork-f.gen.test fstat.gen.test fstat-Xabbrev.gen.test \ - fstat-Xraw.gen.test fstat-Xverbose.gen.test fstat64.gen.test \ + fcntl--pidns-translation.gen.test fcntl64.gen.test \ + fcntl64--pidns-translation.gen.test fdatasync.gen.test \ + file_handle.gen.test file_ioctl.gen.test \ + filter_seccomp.gen.test filter_seccomp-flag.gen.test \ + finit_module.gen.test flock.gen.test fork-f.gen.test \ + fsconfig.gen.test fsconfig-P.gen.test fsmount.gen.test \ + fsopen.gen.test fspick.gen.test fspick-P.gen.test \ + fstat.gen.test fstat-Xabbrev.gen.test fstat-Xraw.gen.test \ + fstat-Xverbose.gen.test fstat64.gen.test \ fstat64-Xabbrev.gen.test fstat64-Xraw.gen.test \ fstat64-Xverbose.gen.test fstatat64.gen.test fstatfs.gen.test \ fstatfs64.gen.test fsync.gen.test fsync-y.gen.test \ ftruncate.gen.test ftruncate64.gen.test futimesat.gen.test \ get_mempolicy.gen.test getcpu.gen.test getcwd.gen.test \ - getdents.gen.test getdents64.gen.test getegid.gen.test \ - getegid32.gen.test geteuid.gen.test geteuid32.gen.test \ - getgid.gen.test getgid32.gen.test getgroups.gen.test \ + getdents.gen.test getdents-v.gen.test getdents64.gen.test \ + getdents64-v.gen.test getegid.gen.test getegid-creds.gen.test \ + getegid32.gen.test getegid32-creds.gen.test geteuid.gen.test \ + geteuid-creds.gen.test geteuid32.gen.test \ + geteuid32-creds.gen.test getgid.gen.test getgid-creds.gen.test \ + getgid32.gen.test getgid32-creds.gen.test getgroups.gen.test \ getgroups32.gen.test getpeername.gen.test getpgrp.gen.test \ - getpid.gen.test getppid.gen.test getrandom.gen.test \ - getresgid.gen.test getresgid32.gen.test getresuid.gen.test \ - getresuid32.gen.test getrlimit.gen.test getrusage.gen.test \ - getsid.gen.test getsockname.gen.test gettid.gen.test \ - getuid32.gen.test getxxid.gen.test group_req.gen.test \ - inet-cmsg.gen.test init_module.gen.test inotify.gen.test \ - inotify_init1.gen.test io_uring_enter.gen.test \ - io_uring_register.gen.test io_uring_setup.gen.test \ - ioctl_block.gen.test ioctl_dm.gen.test ioctl_dm-v.gen.test \ - ioctl_evdev.gen.test ioctl_evdev-v.gen.test \ - ioctl_inotify.gen.test ioctl_kvm_run.gen.test \ - ioctl_kvm_run-v.gen.test ioctl_kvm_run_auxstr_vcpu.gen.test \ - ioctl_loop.gen.test ioctl_loop-nv.gen.test \ - ioctl_loop-v.gen.test ioctl_mtd.gen.test ioctl_nbd.gen.test \ - ioctl_nsfs.gen.test ioctl_perf.gen.test ioctl_ptp.gen.test \ - ioctl_random.gen.test ioctl_rtc.gen.test ioctl_rtc-v.gen.test \ - ioctl_scsi.gen.test ioctl_sg_io_v3.gen.test \ - ioctl_sg_io_v4.gen.test ioctl_sock_gifconf.gen.test \ - ioctl_uffdio.gen.test ioctl_v4l2.gen.test ioperm.gen.test \ - iopl.gen.test ioprio.gen.test ioprio-Xabbrev.gen.test \ + getpgrp--pidns-translation.gen.test getpid.gen.test \ + getpid--pidns-translation.gen.test getppid.gen.test \ + getrandom.gen.test getresgid.gen.test getresgid32.gen.test \ + getresuid.gen.test getresuid32.gen.test getrlimit.gen.test \ + getrusage.gen.test getsid.gen.test \ + getsid--pidns-translation.gen.test getsockname.gen.test \ + gettid.gen.test getuid-creds.gen.test getuid32.gen.test \ + getuid32-creds.gen.test getxgid.gen.test getxpid.gen.test \ + getxuid.gen.test group_req.gen.test inet-cmsg.gen.test \ + init_module.gen.test inotify.gen.test inotify_init.gen.test \ + inotify_init1.gen.test inotify_init1-y.gen.test \ + io_uring_enter.gen.test io_uring_register.gen.test \ + io_uring_setup.gen.test ioctl_block.gen.test ioctl_dm.gen.test \ + ioctl_dm-v.gen.test ioctl_evdev.gen.test \ + ioctl_evdev-Xabbrev.gen.test ioctl_evdev-Xraw.gen.test \ + ioctl_evdev-Xverbose.gen.test ioctl_evdev-v.gen.test \ + ioctl_evdev-v-Xabbrev.gen.test ioctl_evdev-v-Xraw.gen.test \ + ioctl_evdev-v-Xverbose.gen.test \ + ioctl_evdev-success-Xabbrev.gen.test \ + ioctl_evdev-success-Xraw.gen.test \ + ioctl_evdev-success-Xverbose.gen.test \ + ioctl_evdev-success-v.gen.test \ + ioctl_evdev-success-v-Xabbrev.gen.test \ + ioctl_evdev-success-v-Xraw.gen.test \ + ioctl_evdev-success-v-Xverbose.gen.test ioctl_hdio.gen.test \ + ioctl_hdio-Xabbrev.gen.test ioctl_hdio-Xraw.gen.test \ + ioctl_hdio-Xverbose.gen.test ioctl_hdio-v.gen.test \ + ioctl_hdio-v-Xabbrev.gen.test ioctl_hdio-v-Xraw.gen.test \ + ioctl_hdio-v-Xverbose.gen.test ioctl_hdio-success.gen.test \ + ioctl_hdio-success-Xabbrev.gen.test \ + ioctl_hdio-success-Xraw.gen.test \ + ioctl_hdio-success-Xverbose.gen.test \ + ioctl_hdio-success-v.gen.test \ + ioctl_hdio-success-v-Xabbrev.gen.test \ + ioctl_hdio-success-v-Xraw.gen.test \ + ioctl_hdio-success-v-Xverbose.gen.test ioctl_inotify.gen.test \ + ioctl_kvm_run.gen.test ioctl_kvm_run-v.gen.test \ + ioctl_kvm_run_auxstr_vcpu.gen.test ioctl_loop.gen.test \ + ioctl_loop-nv.gen.test ioctl_loop-v.gen.test \ + ioctl_mtd.gen.test ioctl_nbd.gen.test ioctl_nsfs.gen.test \ + ioctl_perf.gen.test ioctl_perf-success.gen.test \ + ioctl_ptp.gen.test ioctl_random.gen.test ioctl_rtc.gen.test \ + ioctl_rtc-v.gen.test ioctl_scsi.gen.test \ + ioctl_sg_io_v3.gen.test ioctl_sg_io_v4.gen.test \ + ioctl_sock_gifconf.gen.test ioctl_tee.gen.test \ + ioctl_uffdio.gen.test ioctl_v4l2.gen.test \ + ioctl_v4l2-Xabbrev.gen.test ioctl_v4l2-Xraw.gen.test \ + ioctl_v4l2-Xverbose.gen.test ioctl_v4l2-v.gen.test \ + ioctl_v4l2-v-Xabbrev.gen.test ioctl_v4l2-v-Xraw.gen.test \ + ioctl_v4l2-v-Xverbose.gen.test ioctl_v4l2-success.gen.test \ + ioctl_v4l2-success-Xabbrev.gen.test \ + ioctl_v4l2-success-Xraw.gen.test \ + ioctl_v4l2-success-Xverbose.gen.test \ + ioctl_v4l2-success-v.gen.test \ + ioctl_v4l2-success-v-Xabbrev.gen.test \ + ioctl_v4l2-success-v-Xraw.gen.test \ + ioctl_v4l2-success-v-Xverbose.gen.test ioctl_watchdog.gen.test \ + ioperm.gen.test iopl.gen.test ioprio.gen.test \ + ioprio--pidns-translation.gen.test ioprio-Xabbrev.gen.test \ ioprio-Xraw.gen.test ioprio-Xverbose.gen.test ip_mreq.gen.test \ ipc.gen.test ipc_msg.gen.test ipc_msg-Xabbrev.gen.test \ ipc_msg-Xraw.gen.test ipc_msg-Xverbose.gen.test \ @@ -4704,34 +6356,47 @@ GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test \ ipc_sem-Xverbose.gen.test ipc_shm.gen.test \ ipc_shm-Xabbrev.gen.test ipc_shm-Xraw.gen.test \ ipc_shm-Xverbose.gen.test kcmp.gen.test kcmp-y.gen.test \ - kern_features.gen.test kernel_version.gen.test \ - kernel_version-Xabbrev.gen.test kernel_version-Xraw.gen.test \ - kernel_version-Xverbose.gen.test kexec_file_load.gen.test \ - kexec_load.gen.test keyctl.gen.test keyctl-Xabbrev.gen.test \ - keyctl-Xraw.gen.test keyctl-Xverbose.gen.test kill.gen.test \ + kcmp-y--pidns-translation.gen.test kern_features.gen.test \ + kernel_version.gen.test kernel_version-Xabbrev.gen.test \ + kernel_version-Xraw.gen.test kernel_version-Xverbose.gen.test \ + kexec_file_load.gen.test kexec_load.gen.test keyctl.gen.test \ + keyctl-Xabbrev.gen.test keyctl-Xraw.gen.test \ + keyctl-Xverbose.gen.test kill.gen.test \ + kill--pidns-translation.gen.test ksysent.gen.test \ lchown.gen.test lchown32.gen.test link.gen.test \ linkat.gen.test lookup_dcookie.gen.test lstat.gen.test \ - lstat64.gen.test madvise.gen.test mbind.gen.test \ - membarrier.gen.test memfd_create.gen.test \ - memfd_create-Xabbrev.gen.test memfd_create-Xraw.gen.test \ - memfd_create-Xverbose.gen.test migrate_pages.gen.test \ - mincore.gen.test mkdir.gen.test mkdirat.gen.test \ - mknod.gen.test mknodat.gen.test mlock.gen.test mlock2.gen.test \ + lstat64.gen.test madvise.gen.test \ + maybe_switch_current_tcp.gen.test \ + maybe_switch_current_tcp--quiet-thread-execve.gen.test \ + mbind.gen.test mbind-Xabbrev.gen.test mbind-Xraw.gen.test \ + mbind-Xverbose.gen.test membarrier.gen.test \ + memfd_create.gen.test memfd_create-Xabbrev.gen.test \ + memfd_create-Xraw.gen.test memfd_create-Xverbose.gen.test \ + migrate_pages.gen.test \ + migrate_pages--pidns-translation.gen.test mincore.gen.test \ + mkdir.gen.test mkdirat.gen.test mknod.gen.test \ + mknodat.gen.test mlock.gen.test mlock2.gen.test \ mlockall.gen.test mmap-Xabbrev.gen.test mmap-Xraw.gen.test \ mmap-Xverbose.gen.test mmap64.gen.test mmap64-Xabbrev.gen.test \ mmap64-Xraw.gen.test mmap64-Xverbose.gen.test mmsg.gen.test \ mmsg-silent.gen.test mmsg_name.gen.test mmsg_name-v.gen.test \ modify_ldt.gen.test mount.gen.test mount-Xabbrev.gen.test \ mount-Xraw.gen.test mount-Xverbose.gen.test \ - move_pages.gen.test move_pages-Xabbrev.gen.test \ - move_pages-Xraw.gen.test move_pages-Xverbose.gen.test \ - mq.gen.test mq_sendrecv.gen.test mq_sendrecv-read.gen.test \ + move_mount.gen.test move_mount-P.gen.test move_pages.gen.test \ + move_pages-Xabbrev.gen.test move_pages-Xraw.gen.test \ + move_pages-Xverbose.gen.test \ + move_pages--pidns-translation.gen.test mq.gen.test \ + mq_sendrecv.gen.test mq_sendrecv-read.gen.test \ mq_sendrecv-write.gen.test msg_control.gen.test \ msg_control-v.gen.test msg_name.gen.test munlockall.gen.test \ - nanosleep.gen.test net-icmp_filter.gen.test \ - net-packet_mreq.gen.test net-packet_mreq-Xabbrev.gen.test \ - net-packet_mreq-Xraw.gen.test \ + nanosleep.gen.test net--decode-fds-dev-netlink.gen.test \ + net--decode-fds-none-netlink.gen.test \ + net--decode-fds-path-netlink.gen.test \ + net--decode-fds-socket-netlink.gen.test \ + net-icmp_filter.gen.test net-packet_mreq.gen.test \ + net-packet_mreq-Xabbrev.gen.test net-packet_mreq-Xraw.gen.test \ net-packet_mreq-Xverbose.gen.test net-sockaddr.gen.test \ + net-sockaddr--pidns-translation.gen.test \ net-tpacket_req.gen.test net-tpacket_stats.gen.test \ net-yy-inet6.gen.test netlink_audit.gen.test \ netlink_crypto.gen.test netlink_generic.gen.test \ @@ -4750,7 +6415,8 @@ GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test \ nlattr_ifaddrmsg.gen.test nlattr_ifinfomsg.gen.test \ nlattr_ifla_af_spec.gen.test nlattr_ifla_brport.gen.test \ nlattr_ifla_linkinfo.gen.test nlattr_ifla_port.gen.test \ - nlattr_ifla_xdp.gen.test nlattr_inet_diag_msg.gen.test \ + nlattr_ifla_xdp.gen.test nlattr_ifla_xdp-y.gen.test \ + nlattr_inet_diag_msg.gen.test \ nlattr_inet_diag_req_compat.gen.test \ nlattr_inet_diag_req_v2.gen.test \ nlattr_mdba_mdb_entry.gen.test \ @@ -4767,31 +6433,50 @@ GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test \ old_mmap-v-none.gen.test oldfstat.gen.test oldlstat.gen.test \ oldselect.gen.test oldselect-P.gen.test \ oldselect-efault.gen.test oldselect-efault-P.gen.test \ - oldstat.gen.test open.gen.test openat.gen.test \ - orphaned_process_group.gen.test osf_utimes.gen.test \ - pause.gen.test perf_event_open.gen.test \ + oldstat.gen.test open.gen.test open_tree.gen.test \ + open_tree-P.gen.test openat.gen.test openat2.gen.test \ + openat2-Xabbrev.gen.test openat2-Xraw.gen.test \ + openat2-Xverbose.gen.test openat2-v.gen.test \ + openat2-v-y.gen.test openat2-v-y-Xabbrev.gen.test \ + openat2-v-y-Xraw.gen.test openat2-v-y-Xverbose.gen.test \ + openat2-y.gen.test orphaned_process_group.gen.test \ + osf_utimes.gen.test pause.gen.test perf_event_open.gen.test \ perf_event_open_nonverbose.gen.test \ perf_event_open_unabbrev.gen.test personality-Xabbrev.gen.test \ personality-Xraw.gen.test personality-Xverbose.gen.test \ - pidfd_send_signal.gen.test pipe2.gen.test pkey_alloc.gen.test \ - pkey_free.gen.test pkey_mprotect.gen.test ppoll.gen.test \ - ppoll-P.gen.test ppoll-v.gen.test pread64-pwrite64.gen.test \ - preadv.gen.test preadv-pwritev.gen.test \ - preadv2-pwritev2.gen.test printpath-umovestr.gen.test \ + pidfd_getfd.gen.test pidfd_getfd-y.gen.test \ + pidfd_getfd-yy.gen.test pidfd_open.gen.test \ + pidfd_open--decode-fd-path.gen.test \ + pidfd_open--decode-fd-pidfd.gen.test \ + pidfd_open--decode-fd-socket.gen.test pidfd_open-P.gen.test \ + pidfd_open-y.gen.test pidfd_open-yy.gen.test \ + pidfd_open--pidns-translation.gen.test \ + pidfd_send_signal.gen.test \ + pidfd_send_signal--pidns-translation.gen.test pipe2.gen.test \ + pkey_alloc.gen.test pkey_free.gen.test pkey_mprotect.gen.test \ + ppoll.gen.test ppoll-P.gen.test ppoll-v.gen.test \ + pread64-pwrite64.gen.test preadv.gen.test \ + preadv-pwritev.gen.test preadv2-pwritev2.gen.test \ + printpath-umovestr.gen.test \ printpath-umovestr-peekdata.gen.test \ printpath-umovestr-undumpable.gen.test \ printsignal-Xabbrev.gen.test printsignal-Xraw.gen.test \ printsignal-Xverbose.gen.test printstr.gen.test \ printstrn-umoven.gen.test printstrn-umoven-peekdata.gen.test \ printstrn-umoven-undumpable.gen.test prlimit64.gen.test \ - process_vm_readv.gen.test process_vm_writev.gen.test \ + prlimit64--pidns-translation.gen.test \ + process_vm_readv.gen.test \ + process_vm_readv--pidns-translation.gen.test \ + process_vm_writev.gen.test \ + process_vm_writev--pidns-translation.gen.test \ pselect6.gen.test ptrace.gen.test ptrace_syscall_info.gen.test \ pwritev.gen.test quotactl.gen.test quotactl-Xabbrev.gen.test \ quotactl-Xraw.gen.test quotactl-Xverbose.gen.test \ quotactl-v.gen.test quotactl-xfs.gen.test \ quotactl-xfs-v.gen.test read-write.gen.test readahead.gen.test \ readdir.gen.test readlink.gen.test readlinkat.gen.test \ - reboot.gen.test recvfrom.gen.test recvmmsg-timeout.gen.test \ + reboot.gen.test recv-MSG_TRUNC.gen.test recvfrom.gen.test \ + recvfrom-MSG_TRUNC.gen.test recvmmsg-timeout.gen.test \ recvmsg.gen.test regex.gen.test remap_file_pages.gen.test \ remap_file_pages-Xabbrev.gen.test \ remap_file_pages-Xraw.gen.test \ @@ -4799,72 +6484,133 @@ GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test \ renameat.gen.test renameat2.gen.test request_key.gen.test \ riscv_flush_icache.gen.test rmdir.gen.test \ rt_sigpending.gen.test rt_sigprocmask.gen.test \ - rt_sigqueueinfo.gen.test rt_sigreturn.gen.test \ - rt_sigsuspend.gen.test rt_sigtimedwait.gen.test \ - rt_tgsigqueueinfo.gen.test s390_guarded_storage.gen.test \ - s390_guarded_storage-v.gen.test \ + rt_sigqueueinfo.gen.test \ + rt_sigqueueinfo--pidns-translation.gen.test \ + rt_sigreturn.gen.test rt_sigsuspend.gen.test \ + rt_sigtimedwait.gen.test rt_tgsigqueueinfo.gen.test \ + rt_tgsigqueueinfo--pidns-translation.gen.test \ + s390_guarded_storage.gen.test s390_guarded_storage-v.gen.test \ s390_pci_mmio_read_write.gen.test s390_runtime_instr.gen.test \ s390_sthyi.gen.test s390_sthyi-v.gen.test sched.gen.test \ sched_get_priority_mxx.gen.test sched_rr_get_interval.gen.test \ - sched_xetaffinity.gen.test sched_xetattr.gen.test \ - sched_xetparam.gen.test sched_xetscheduler.gen.test \ + sched_xetaffinity.gen.test \ + sched_xetaffinity--pidns-translation.gen.test \ + sched_xetattr.gen.test \ + sched_xetattr--pidns-translation.gen.test \ + sched_xetparam.gen.test \ + sched_xetparam--pidns-translation.gen.test \ + sched_xetscheduler.gen.test \ + sched_xetscheduler--pidns-translation.gen.test \ sched_yield.gen.test seccomp-filter.gen.test \ seccomp-filter-v.gen.test seccomp_get_action_avail.gen.test \ select.gen.test select-P.gen.test semop.gen.test \ - sendfile.gen.test sendfile64.gen.test set_mempolicy.gen.test \ - setdomainname.gen.test setfsgid.gen.test setfsgid32.gen.test \ - setfsuid.gen.test setfsuid32.gen.test setgid.gen.test \ - setgid32.gen.test setgroups.gen.test setgroups32.gen.test \ - sethostname.gen.test setns.gen.test setregid.gen.test \ - setregid32.gen.test setresgid.gen.test setresgid32.gen.test \ - setresuid.gen.test setresuid32.gen.test setreuid.gen.test \ - setreuid32.gen.test setrlimit.gen.test \ - setrlimit-Xabbrev.gen.test setrlimit-Xraw.gen.test \ - setrlimit-Xverbose.gen.test setuid.gen.test setuid32.gen.test \ - shmxt.gen.test shutdown.gen.test sigaction.gen.test \ - siginfo.gen.test signal.gen.test signal_receive.gen.test \ - signalfd4.gen.test sigpending.gen.test sigprocmask.gen.test \ - sigreturn.gen.test sigsuspend.gen.test so_error.gen.test \ - so_linger.gen.test so_peercred.gen.test \ - so_peercred-Xabbrev.gen.test so_peercred-Xraw.gen.test \ - so_peercred-Xverbose.gen.test sock_filter-v.gen.test \ + semop-indirect.gen.test semtimedop.gen.test sendfile.gen.test \ + sendfile64.gen.test set_mempolicy.gen.test \ + set_mempolicy-Xabbrev.gen.test set_mempolicy-Xraw.gen.test \ + set_mempolicy-Xverbose.gen.test setdomainname.gen.test \ + setfsgid.gen.test setfsgid32.gen.test setfsuid.gen.test \ + setfsuid32.gen.test setgid.gen.test setgid32.gen.test \ + setgroups.gen.test setgroups32.gen.test sethostname.gen.test \ + setns.gen.test setregid.gen.test setregid32.gen.test \ + setresgid.gen.test setresgid32.gen.test setresuid.gen.test \ + setresuid32.gen.test setreuid.gen.test setreuid32.gen.test \ + setrlimit.gen.test setrlimit-Xabbrev.gen.test \ + setrlimit-Xraw.gen.test setrlimit-Xverbose.gen.test \ + setuid.gen.test setuid32.gen.test shmxt.gen.test \ + shutdown.gen.test sigaction.gen.test siginfo.gen.test \ + signal.gen.test signal_receive.gen.test \ + signal_receive--pidns-translation.gen.test signalfd4.gen.test \ + sigpending.gen.test sigprocmask.gen.test sigreturn.gen.test \ + sigsuspend.gen.test so_error.gen.test so_linger.gen.test \ + so_peercred.gen.test so_peercred-Xabbrev.gen.test \ + so_peercred-Xraw.gen.test so_peercred-Xverbose.gen.test \ + so_peercred--pidns-translation.gen.test sock_filter-v.gen.test \ sock_filter-v-Xabbrev.gen.test sock_filter-v-Xraw.gen.test \ sock_filter-v-Xverbose.gen.test sockaddr_xlat-Xabbrev.gen.test \ sockaddr_xlat-Xraw.gen.test sockaddr_xlat-Xverbose.gen.test \ socketcall.gen.test sockopt-sol_netlink.gen.test \ sockopt-timestamp.gen.test splice.gen.test stat.gen.test \ stat64.gen.test statfs.gen.test statfs64.gen.test \ - statx.gen.test swap.gen.test sxetmask.gen.test \ - symlink.gen.test symlinkat.gen.test sync.gen.test \ - sync_file_range.gen.test sync_file_range2.gen.test \ - sysinfo.gen.test syslog.gen.test tee.gen.test time.gen.test \ + status-all.gen.test status-failed.gen.test \ + status-failed-long.gen.test status-failed-status.gen.test \ + status-none.gen.test status-successful.gen.test \ + status-successful-long.gen.test \ + status-successful-status.gen.test status-unfinished.gen.test \ + statx.gen.test strace--absolute-timestamps.gen.test \ + strace--absolute-timestamps-format-time.gen.test \ + strace--absolute-timestamps-format-time-precision-s.gen.test \ + strace--absolute-timestamps-format-time-precision-ms.gen.test \ + strace--absolute-timestamps-format-time-precision-us.gen.test \ + strace--absolute-timestamps-format-time-precision-ns.gen.test \ + strace--absolute-timestamps-format-unix-precision-s.gen.test \ + strace--absolute-timestamps-format-unix-precision-ms.gen.test \ + strace--absolute-timestamps-format-unix-precision-us.gen.test \ + strace--absolute-timestamps-format-unix-precision-ns.gen.test \ + strace--follow-forks-output-separately.gen.test \ + strace--relative-timestamps.gen.test \ + strace--relative-timestamps-s.gen.test \ + strace--relative-timestamps-ms.gen.test \ + strace--relative-timestamps-us.gen.test \ + strace--relative-timestamps-ns.gen.test \ + strace--syscall-times.gen.test \ + strace--syscall-times-s.gen.test \ + strace--syscall-times-ms.gen.test \ + strace--syscall-times-us.gen.test \ + strace--syscall-times-ns.gen.test \ + strace--strings-in-hex.gen.test \ + strace--strings-in-hex-all.gen.test \ + strace--strings-in-hex-non-ascii.gen.test \ + strace--timestamps.gen.test strace--timestamps-time.gen.test \ + strace--timestamps-time-s.gen.test \ + strace--timestamps-time-ms.gen.test \ + strace--timestamps-time-us.gen.test \ + strace--timestamps-time-ns.gen.test \ + strace--timestamps-unix-s.gen.test \ + strace--timestamps-unix-ms.gen.test \ + strace--timestamps-unix-us.gen.test \ + strace--timestamps-unix-ns.gen.test strace-n.gen.test \ + strace-x.gen.test strace-xx.gen.test swap.gen.test \ + sxetmask.gen.test symlink.gen.test symlinkat.gen.test \ + sync.gen.test sync_file_range.gen.test \ + sync_file_range2.gen.test sysinfo.gen.test syslog.gen.test \ + tee.gen.test tgkill.gen.test \ + tgkill--pidns-translation.gen.test \ + threads-execve--quiet-thread-execve.gen.test \ + threads-execve-q.gen.test threads-execve-qq.gen.test \ + threads-execve-qqq.gen.test time.gen.test \ timer_create.gen.test timer_xettime.gen.test \ timerfd_xettime.gen.test times.gen.test times-fail.gen.test \ - trace_fstat.gen.test trace_fstatfs.gen.test \ - trace_lstat.gen.test trace_personality_32.gen.test \ - trace_personality_64.gen.test \ + tkill.gen.test tkill--pidns-translation.gen.test \ + trace_clock.gen.test trace_creds.gen.test trace_fstat.gen.test \ + trace_fstatfs.gen.test trace_lstat.gen.test \ + trace_personality_32.gen.test trace_personality_64.gen.test \ trace_personality_regex_32.gen.test \ trace_personality_regex_64.gen.test \ trace_personality_regex_x32.gen.test \ trace_personality_x32.gen.test trace_question.gen.test \ trace_stat.gen.test trace_stat_like.gen.test \ trace_statfs.gen.test trace_statfs_like.gen.test \ - truncate.gen.test truncate64.gen.test ugetrlimit.gen.test \ - umask.gen.test umoven-illptr.gen.test umovestr-illptr.gen.test \ - umovestr3.gen.test unlink.gen.test unlinkat.gen.test \ - unshare.gen.test userfaultfd.gen.test ustat.gen.test \ - utime.gen.test utimensat.gen.test utimensat-Xabbrev.gen.test \ - utimensat-Xraw.gen.test utimensat-Xverbose.gen.test \ - utimes.gen.test vfork-f.gen.test vhangup.gen.test \ - vmsplice.gen.test wait4.gen.test wait4-v.gen.test \ - waitid.gen.test waitid-v.gen.test waitpid.gen.test \ - xattr.gen.test xattr-strings.gen.test xet_robust_list.gen.test \ - xetitimer.gen.test xetpgid.gen.test xetpriority.gen.test \ + trie_test.gen.test truncate.gen.test truncate64.gen.test \ + ugetrlimit.gen.test umask.gen.test umoven-illptr.gen.test \ + umovestr-illptr.gen.test umovestr3.gen.test \ + umovestr_cached_adjacent.gen.test unlink.gen.test \ + unlinkat.gen.test unshare.gen.test userfaultfd.gen.test \ + ustat.gen.test utime.gen.test utimensat.gen.test \ + utimensat-Xabbrev.gen.test utimensat-Xraw.gen.test \ + utimensat-Xverbose.gen.test utimes.gen.test vfork-f.gen.test \ + vhangup.gen.test vmsplice.gen.test wait4.gen.test \ + wait4-v.gen.test waitid.gen.test waitid-v.gen.test \ + waitpid.gen.test xattr.gen.test xattr-strings.gen.test \ + xet_robust_list.gen.test \ + xet_robust_list--pidns-translation.gen.test xetitimer.gen.test \ + xetpgid.gen.test xetpgid--pidns-translation.gen.test \ + xetpriority.gen.test xetpriority--pidns-translation.gen.test \ xettimeofday.gen.test @ENABLE_STACKTRACE_FALSE@STACKTRACE_TESTS = @ENABLE_STACKTRACE_TRUE@STACKTRACE_TESTS = strace-k.test \ -@ENABLE_STACKTRACE_TRUE@ $(am__append_1) +@ENABLE_STACKTRACE_TRUE@ strace-k-p.test $(am__append_1) DECODER_TESTS = \ + bpf-success-long-y.test \ bpf-success-v.test \ bpf-success.test \ brk.test \ @@ -4877,17 +6623,21 @@ DECODER_TESTS = \ btrfs-wX.test \ caps-abbrev.test \ caps.test \ + clone-flags.test \ + clone3-success.test \ eventfd.test \ execve-v.test \ execve.test \ fadvise64.test \ + faccessat.test \ + faccessat2.test \ futex.test \ getuid.test \ int_0x80.test \ + inotify_init-y.test \ ioctl.test \ - ioctl_evdev-success-v.test \ + ioctl_block--pidns-translation.test \ ioctl_evdev-success.test \ - ioctl_perf-success.test \ ipc_msgbuf.test \ kern_features-fault.test \ llseek.test \ @@ -4929,6 +6679,7 @@ DECODER_TESTS = \ seccomp-strict.test \ sigaltstack.test \ sun_path.test \ + syslog-success.test \ uio.test \ umount.test \ umount2.test \ @@ -4944,7 +6695,6 @@ MISC_TESTS = \ attach-f-p.test \ attach-p-cmd.test \ bexecve.test \ - clone_parent.test \ clone_ptrace.test \ count-f.test \ count.test \ @@ -4953,20 +6703,24 @@ MISC_TESTS = \ detach-sleeping.test \ detach-stopped.test \ fflush.test \ + filter_seccomp-perf.test \ filter-unavailable.test \ filtering_fd-syntax.test \ filtering_syscall-syntax.test \ first_exec_failure.test \ + fork--pidns-translation.test \ get_regs.test \ + gettid--pidns-translation.test \ inject-nf.test \ interactive_block.test \ kill_child.test \ - ksysent.test \ localtime.test \ looping_threads.test \ + netlink_audit--pidns-translation.test \ opipe.test \ options-syntax.test \ pc.test \ + pidns-cache.test \ printpath-umovestr-legacy.test \ printstrn-umoven-legacy.test \ qual_fault-syntax.test \ @@ -4986,8 +6740,16 @@ MISC_TESTS = \ restart_syscall.test \ sigblock.test \ sigign.test \ + status-detached.test \ + status-none-threads.test \ + status-unfinished-threads.test \ strace-C.test \ + strace-D.test \ + strace-DD.test \ + strace-DDD.test \ strace-E.test \ + strace-E-override.test \ + strace-E-unset.test \ strace-S.test \ strace-T.test \ strace-V.test \ @@ -5000,6 +6762,7 @@ MISC_TESTS = \ strace-ttt.test \ termsig.test \ threads-execve.test \ + umovestr_cached.test \ # end of MISC_TESTS XFAIL_TESTS_ = @@ -5027,7 +6790,10 @@ EXTRA_DIST = \ eventfd.expected \ fadvise.h \ fcntl-common.c \ + filter_seccomp.in \ + filter_seccomp.sh \ filter-unavailable.expected \ + fork--pidns-translation.awk \ fstatat.c \ fstatx.c \ gen_pure_executables.sh \ @@ -5036,17 +6802,20 @@ EXTRA_DIST = \ getresugid.c \ init.sh \ init_delete_module.h \ + ioctl-success.sh \ ioctl_kvm_run_common.c \ ipc.sh \ + kernel_old_timespec.h \ + kernel_old_timex.h \ ksysent.sed \ lstatx.c \ match.awk \ net.expected \ - netlink_sock_diag-v.sh \ nlattr_ifla.h \ pipe.expected \ print_user_desc.c \ printsignal.c \ + printxval.c \ process_vm_readv_writev.c \ pure_executables.list \ qual_fault-exit_group.expected \ @@ -5060,6 +6829,7 @@ EXTRA_DIST = \ run.sh \ sched.in \ scno_tampering.sh \ + semop-common.c \ setfsugid.c \ setresugid.c \ setreugid.c \ @@ -5068,18 +6838,37 @@ EXTRA_DIST = \ sockaddr_xlat.c \ sockname.c \ stack-fcall.h \ + status-detached.expected \ + strace--follow-forks-output-separately.expected \ + strace--relative-timestamps.expected \ + strace--relative-timestamps-s.expected \ + strace--relative-timestamps-ms.expected \ + strace--relative-timestamps-us.expected \ + strace--relative-timestamps-ns.expected \ + strace--syscall-times.expected \ + strace--syscall-times-s.expected \ + strace--syscall-times-ms.expected \ + strace--syscall-times-us.expected \ + strace--syscall-times-ns.expected \ strace-C.expected \ + strace-D.expected \ + strace-DDD.expected \ strace-E.expected \ + strace-E-unset.expected \ strace-T.expected \ strace-ff.expected \ strace-k-demangle.expected \ strace-k-demangle.test \ + strace-k-p.expected \ + strace-k-p.test \ strace-k.expected \ strace-k.test \ strace-r.expected \ strace.supp \ sun_path.expected \ syntax.sh \ + trace_clock.in \ + trace_creds.in \ trace_fstat.in \ trace_fstatfs.in \ trace_lstat.in \ @@ -5100,6 +6889,7 @@ EXTRA_DIST = \ unix-pair-send-recv.expected \ unix-pair-sendto-recvfrom.expected \ xchownx.c \ + xgetdents.c \ xgetrlimit.c \ xselect.c \ xstatfs.c \ @@ -5233,6 +7023,10 @@ block_reset_raise_run$(EXEEXT): $(block_reset_raise_run_OBJECTS) $(block_reset_r @rm -f block_reset_raise_run$(EXEEXT) $(AM_V_CCLD)$(LINK) $(block_reset_raise_run_OBJECTS) $(block_reset_raise_run_LDADD) $(LIBS) +block_reset_run$(EXEEXT): $(block_reset_run_OBJECTS) $(block_reset_run_DEPENDENCIES) $(EXTRA_block_reset_run_DEPENDENCIES) + @rm -f block_reset_run$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(block_reset_run_OBJECTS) $(block_reset_run_LDADD) $(LIBS) + bpf$(EXEEXT): $(bpf_OBJECTS) $(bpf_DEPENDENCIES) $(EXTRA_bpf_DEPENDENCIES) @rm -f bpf$(EXEEXT) $(AM_V_CCLD)$(LINK) $(bpf_OBJECTS) $(bpf_LDADD) $(LIBS) @@ -5257,6 +7051,10 @@ bpf-success$(EXEEXT): $(bpf_success_OBJECTS) $(bpf_success_DEPENDENCIES) $(EXTRA @rm -f bpf-success$(EXEEXT) $(AM_V_CCLD)$(LINK) $(bpf_success_OBJECTS) $(bpf_success_LDADD) $(LIBS) +bpf-success-long-y$(EXEEXT): $(bpf_success_long_y_OBJECTS) $(bpf_success_long_y_DEPENDENCIES) $(EXTRA_bpf_success_long_y_DEPENDENCIES) + @rm -f bpf-success-long-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(bpf_success_long_y_OBJECTS) $(bpf_success_long_y_LDADD) $(LIBS) + bpf-success-v$(EXEEXT): $(bpf_success_v_OBJECTS) $(bpf_success_v_DEPENDENCIES) $(EXTRA_bpf_success_v_DEPENDENCIES) @rm -f bpf-success-v$(EXEEXT) $(AM_V_CCLD)$(LINK) $(bpf_success_v_OBJECTS) $(bpf_success_v_LDADD) $(LIBS) @@ -5317,14 +7115,94 @@ clock_xettime$(EXEEXT): $(clock_xettime_OBJECTS) $(clock_xettime_DEPENDENCIES) $ @rm -f clock_xettime$(EXEEXT) $(AM_V_CCLD)$(LINK) $(clock_xettime_OBJECTS) $(clock_xettime_LDADD) $(LIBS) +clone-flags$(EXEEXT): $(clone_flags_OBJECTS) $(clone_flags_DEPENDENCIES) $(EXTRA_clone_flags_DEPENDENCIES) + @rm -f clone-flags$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone_flags_OBJECTS) $(clone_flags_LDADD) $(LIBS) + +clone3$(EXEEXT): $(clone3_OBJECTS) $(clone3_DEPENDENCIES) $(EXTRA_clone3_DEPENDENCIES) + @rm -f clone3$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone3_OBJECTS) $(clone3_LDADD) $(LIBS) + +clone3-Xabbrev$(EXEEXT): $(clone3_Xabbrev_OBJECTS) $(clone3_Xabbrev_DEPENDENCIES) $(EXTRA_clone3_Xabbrev_DEPENDENCIES) + @rm -f clone3-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone3_Xabbrev_OBJECTS) $(clone3_Xabbrev_LDADD) $(LIBS) + +clone3-Xraw$(EXEEXT): $(clone3_Xraw_OBJECTS) $(clone3_Xraw_DEPENDENCIES) $(EXTRA_clone3_Xraw_DEPENDENCIES) + @rm -f clone3-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone3_Xraw_OBJECTS) $(clone3_Xraw_LDADD) $(LIBS) + +clone3-Xverbose$(EXEEXT): $(clone3_Xverbose_OBJECTS) $(clone3_Xverbose_DEPENDENCIES) $(EXTRA_clone3_Xverbose_DEPENDENCIES) + @rm -f clone3-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone3_Xverbose_OBJECTS) $(clone3_Xverbose_LDADD) $(LIBS) + +clone3-success$(EXEEXT): $(clone3_success_OBJECTS) $(clone3_success_DEPENDENCIES) $(EXTRA_clone3_success_DEPENDENCIES) + @rm -f clone3-success$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone3_success_OBJECTS) $(clone3_success_LDADD) $(LIBS) + +clone3-success-Xabbrev$(EXEEXT): $(clone3_success_Xabbrev_OBJECTS) $(clone3_success_Xabbrev_DEPENDENCIES) $(EXTRA_clone3_success_Xabbrev_DEPENDENCIES) + @rm -f clone3-success-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone3_success_Xabbrev_OBJECTS) $(clone3_success_Xabbrev_LDADD) $(LIBS) + +clone3-success-Xraw$(EXEEXT): $(clone3_success_Xraw_OBJECTS) $(clone3_success_Xraw_DEPENDENCIES) $(EXTRA_clone3_success_Xraw_DEPENDENCIES) + @rm -f clone3-success-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone3_success_Xraw_OBJECTS) $(clone3_success_Xraw_LDADD) $(LIBS) + +clone3-success-Xverbose$(EXEEXT): $(clone3_success_Xverbose_OBJECTS) $(clone3_success_Xverbose_DEPENDENCIES) $(EXTRA_clone3_success_Xverbose_DEPENDENCIES) + @rm -f clone3-success-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone3_success_Xverbose_OBJECTS) $(clone3_success_Xverbose_LDADD) $(LIBS) + clone_parent$(EXEEXT): $(clone_parent_OBJECTS) $(clone_parent_DEPENDENCIES) $(EXTRA_clone_parent_DEPENDENCIES) @rm -f clone_parent$(EXEEXT) $(AM_V_CCLD)$(LINK) $(clone_parent_OBJECTS) $(clone_parent_LDADD) $(LIBS) +clone_parent--quiet-exit$(EXEEXT): $(clone_parent__quiet_exit_OBJECTS) $(clone_parent__quiet_exit_DEPENDENCIES) $(EXTRA_clone_parent__quiet_exit_DEPENDENCIES) + @rm -f clone_parent--quiet-exit$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone_parent__quiet_exit_OBJECTS) $(clone_parent__quiet_exit_LDADD) $(LIBS) + +clone_parent-q$(EXEEXT): $(clone_parent_q_OBJECTS) $(clone_parent_q_DEPENDENCIES) $(EXTRA_clone_parent_q_DEPENDENCIES) + @rm -f clone_parent-q$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone_parent_q_OBJECTS) $(clone_parent_q_LDADD) $(LIBS) + +clone_parent-qq$(EXEEXT): $(clone_parent_qq_OBJECTS) $(clone_parent_qq_DEPENDENCIES) $(EXTRA_clone_parent_qq_DEPENDENCIES) + @rm -f clone_parent-qq$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone_parent_qq_OBJECTS) $(clone_parent_qq_LDADD) $(LIBS) + clone_ptrace$(EXEEXT): $(clone_ptrace_OBJECTS) $(clone_ptrace_DEPENDENCIES) $(EXTRA_clone_ptrace_DEPENDENCIES) @rm -f clone_ptrace$(EXEEXT) $(AM_V_CCLD)$(LINK) $(clone_ptrace_OBJECTS) $(clone_ptrace_LDADD) $(LIBS) +clone_ptrace--quiet-attach$(EXEEXT): $(clone_ptrace__quiet_attach_OBJECTS) $(clone_ptrace__quiet_attach_DEPENDENCIES) $(EXTRA_clone_ptrace__quiet_attach_DEPENDENCIES) + @rm -f clone_ptrace--quiet-attach$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone_ptrace__quiet_attach_OBJECTS) $(clone_ptrace__quiet_attach_LDADD) $(LIBS) + +clone_ptrace--quiet-exit$(EXEEXT): $(clone_ptrace__quiet_exit_OBJECTS) $(clone_ptrace__quiet_exit_DEPENDENCIES) $(EXTRA_clone_ptrace__quiet_exit_DEPENDENCIES) + @rm -f clone_ptrace--quiet-exit$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone_ptrace__quiet_exit_OBJECTS) $(clone_ptrace__quiet_exit_LDADD) $(LIBS) + +clone_ptrace-q$(EXEEXT): $(clone_ptrace_q_OBJECTS) $(clone_ptrace_q_DEPENDENCIES) $(EXTRA_clone_ptrace_q_DEPENDENCIES) + @rm -f clone_ptrace-q$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone_ptrace_q_OBJECTS) $(clone_ptrace_q_LDADD) $(LIBS) + +clone_ptrace-qq$(EXEEXT): $(clone_ptrace_qq_OBJECTS) $(clone_ptrace_qq_DEPENDENCIES) $(EXTRA_clone_ptrace_qq_DEPENDENCIES) + @rm -f clone_ptrace-qq$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone_ptrace_qq_OBJECTS) $(clone_ptrace_qq_LDADD) $(LIBS) + +close_range$(EXEEXT): $(close_range_OBJECTS) $(close_range_DEPENDENCIES) $(EXTRA_close_range_DEPENDENCIES) + @rm -f close_range$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(close_range_OBJECTS) $(close_range_LDADD) $(LIBS) + +close_range-P$(EXEEXT): $(close_range_P_OBJECTS) $(close_range_P_DEPENDENCIES) $(EXTRA_close_range_P_DEPENDENCIES) + @rm -f close_range-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(close_range_P_OBJECTS) $(close_range_P_LDADD) $(LIBS) + +close_range-y$(EXEEXT): $(close_range_y_OBJECTS) $(close_range_y_DEPENDENCIES) $(EXTRA_close_range_y_DEPENDENCIES) + @rm -f close_range-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(close_range_y_OBJECTS) $(close_range_y_LDADD) $(LIBS) + +close_range-yy$(EXEEXT): $(close_range_yy_OBJECTS) $(close_range_yy_DEPENDENCIES) $(EXTRA_close_range_yy_DEPENDENCIES) + @rm -f close_range-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(close_range_yy_OBJECTS) $(close_range_yy_LDADD) $(LIBS) + copy_file_range$(EXEEXT): $(copy_file_range_OBJECTS) $(copy_file_range_DEPENDENCIES) $(EXTRA_copy_file_range_DEPENDENCIES) @rm -f copy_file_range$(EXEEXT) $(AM_V_CCLD)$(LINK) $(copy_file_range_OBJECTS) $(copy_file_range_LDADD) $(LIBS) @@ -5345,6 +7223,18 @@ delete_module$(EXEEXT): $(delete_module_OBJECTS) $(delete_module_DEPENDENCIES) $ @rm -f delete_module$(EXEEXT) $(AM_V_CCLD)$(LINK) $(delete_module_OBJECTS) $(delete_module_LDADD) $(LIBS) +dev--decode-fds-dev$(EXEEXT): $(dev__decode_fds_dev_OBJECTS) $(dev__decode_fds_dev_DEPENDENCIES) $(EXTRA_dev__decode_fds_dev_DEPENDENCIES) + @rm -f dev--decode-fds-dev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dev__decode_fds_dev_OBJECTS) $(dev__decode_fds_dev_LDADD) $(LIBS) + +dev--decode-fds-path$(EXEEXT): $(dev__decode_fds_path_OBJECTS) $(dev__decode_fds_path_DEPENDENCIES) $(EXTRA_dev__decode_fds_path_DEPENDENCIES) + @rm -f dev--decode-fds-path$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dev__decode_fds_path_OBJECTS) $(dev__decode_fds_path_LDADD) $(LIBS) + +dev--decode-fds-socket$(EXEEXT): $(dev__decode_fds_socket_OBJECTS) $(dev__decode_fds_socket_DEPENDENCIES) $(EXTRA_dev__decode_fds_socket_DEPENDENCIES) + @rm -f dev--decode-fds-socket$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dev__decode_fds_socket_OBJECTS) $(dev__decode_fds_socket_LDADD) $(LIBS) + dev-yy$(EXEEXT): $(dev_yy_OBJECTS) $(dev_yy_DEPENDENCIES) $(EXTRA_dev_yy_DEPENDENCIES) @rm -f dev-yy$(EXEEXT) $(AM_V_CCLD)$(LINK) $(dev_yy_OBJECTS) $(dev_yy_LDADD) $(LIBS) @@ -5353,14 +7243,50 @@ dup$(EXEEXT): $(dup_OBJECTS) $(dup_DEPENDENCIES) $(EXTRA_dup_DEPENDENCIES) @rm -f dup$(EXEEXT) $(AM_V_CCLD)$(LINK) $(dup_OBJECTS) $(dup_LDADD) $(LIBS) +dup-P$(EXEEXT): $(dup_P_OBJECTS) $(dup_P_DEPENDENCIES) $(EXTRA_dup_P_DEPENDENCIES) + @rm -f dup-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dup_P_OBJECTS) $(dup_P_LDADD) $(LIBS) + +dup-y$(EXEEXT): $(dup_y_OBJECTS) $(dup_y_DEPENDENCIES) $(EXTRA_dup_y_DEPENDENCIES) + @rm -f dup-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dup_y_OBJECTS) $(dup_y_LDADD) $(LIBS) + +dup-yy$(EXEEXT): $(dup_yy_OBJECTS) $(dup_yy_DEPENDENCIES) $(EXTRA_dup_yy_DEPENDENCIES) + @rm -f dup-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dup_yy_OBJECTS) $(dup_yy_LDADD) $(LIBS) + dup2$(EXEEXT): $(dup2_OBJECTS) $(dup2_DEPENDENCIES) $(EXTRA_dup2_DEPENDENCIES) @rm -f dup2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(dup2_OBJECTS) $(dup2_LDADD) $(LIBS) +dup2-P$(EXEEXT): $(dup2_P_OBJECTS) $(dup2_P_DEPENDENCIES) $(EXTRA_dup2_P_DEPENDENCIES) + @rm -f dup2-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dup2_P_OBJECTS) $(dup2_P_LDADD) $(LIBS) + +dup2-y$(EXEEXT): $(dup2_y_OBJECTS) $(dup2_y_DEPENDENCIES) $(EXTRA_dup2_y_DEPENDENCIES) + @rm -f dup2-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dup2_y_OBJECTS) $(dup2_y_LDADD) $(LIBS) + +dup2-yy$(EXEEXT): $(dup2_yy_OBJECTS) $(dup2_yy_DEPENDENCIES) $(EXTRA_dup2_yy_DEPENDENCIES) + @rm -f dup2-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dup2_yy_OBJECTS) $(dup2_yy_LDADD) $(LIBS) + dup3$(EXEEXT): $(dup3_OBJECTS) $(dup3_DEPENDENCIES) $(EXTRA_dup3_DEPENDENCIES) @rm -f dup3$(EXEEXT) $(AM_V_CCLD)$(LINK) $(dup3_OBJECTS) $(dup3_LDADD) $(LIBS) +dup3-P$(EXEEXT): $(dup3_P_OBJECTS) $(dup3_P_DEPENDENCIES) $(EXTRA_dup3_P_DEPENDENCIES) + @rm -f dup3-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dup3_P_OBJECTS) $(dup3_P_LDADD) $(LIBS) + +dup3-y$(EXEEXT): $(dup3_y_OBJECTS) $(dup3_y_DEPENDENCIES) $(EXTRA_dup3_y_DEPENDENCIES) + @rm -f dup3-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dup3_y_OBJECTS) $(dup3_y_LDADD) $(LIBS) + +dup3-yy$(EXEEXT): $(dup3_yy_OBJECTS) $(dup3_yy_DEPENDENCIES) $(EXTRA_dup3_yy_DEPENDENCIES) + @rm -f dup3-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dup3_yy_OBJECTS) $(dup3_yy_LDADD) $(LIBS) + epoll_create$(EXEEXT): $(epoll_create_OBJECTS) $(epoll_create_DEPENDENCIES) $(EXTRA_epoll_create_DEPENDENCIES) @rm -f epoll_create$(EXEEXT) $(AM_V_CCLD)$(LINK) $(epoll_create_OBJECTS) $(epoll_create_LDADD) $(LIBS) @@ -5409,6 +7335,34 @@ faccessat$(EXEEXT): $(faccessat_OBJECTS) $(faccessat_DEPENDENCIES) $(EXTRA_facce @rm -f faccessat$(EXEEXT) $(AM_V_CCLD)$(LINK) $(faccessat_OBJECTS) $(faccessat_LDADD) $(LIBS) +faccessat-P$(EXEEXT): $(faccessat_P_OBJECTS) $(faccessat_P_DEPENDENCIES) $(EXTRA_faccessat_P_DEPENDENCIES) + @rm -f faccessat-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat_P_OBJECTS) $(faccessat_P_LDADD) $(LIBS) + +faccessat-y$(EXEEXT): $(faccessat_y_OBJECTS) $(faccessat_y_DEPENDENCIES) $(EXTRA_faccessat_y_DEPENDENCIES) + @rm -f faccessat-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat_y_OBJECTS) $(faccessat_y_LDADD) $(LIBS) + +faccessat-yy$(EXEEXT): $(faccessat_yy_OBJECTS) $(faccessat_yy_DEPENDENCIES) $(EXTRA_faccessat_yy_DEPENDENCIES) + @rm -f faccessat-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat_yy_OBJECTS) $(faccessat_yy_LDADD) $(LIBS) + +faccessat2$(EXEEXT): $(faccessat2_OBJECTS) $(faccessat2_DEPENDENCIES) $(EXTRA_faccessat2_DEPENDENCIES) + @rm -f faccessat2$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat2_OBJECTS) $(faccessat2_LDADD) $(LIBS) + +faccessat2-P$(EXEEXT): $(faccessat2_P_OBJECTS) $(faccessat2_P_DEPENDENCIES) $(EXTRA_faccessat2_P_DEPENDENCIES) + @rm -f faccessat2-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat2_P_OBJECTS) $(faccessat2_P_LDADD) $(LIBS) + +faccessat2-y$(EXEEXT): $(faccessat2_y_OBJECTS) $(faccessat2_y_DEPENDENCIES) $(EXTRA_faccessat2_y_DEPENDENCIES) + @rm -f faccessat2-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat2_y_OBJECTS) $(faccessat2_y_LDADD) $(LIBS) + +faccessat2-yy$(EXEEXT): $(faccessat2_yy_OBJECTS) $(faccessat2_yy_DEPENDENCIES) $(EXTRA_faccessat2_yy_DEPENDENCIES) + @rm -f faccessat2-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat2_yy_OBJECTS) $(faccessat2_yy_LDADD) $(LIBS) + fadvise64$(EXEEXT): $(fadvise64_OBJECTS) $(fadvise64_DEPENDENCIES) $(EXTRA_fadvise64_DEPENDENCIES) @rm -f fadvise64$(EXEEXT) $(AM_V_CCLD)$(LINK) $(fadvise64_OBJECTS) $(fadvise64_LDADD) $(LIBS) @@ -5469,10 +7423,18 @@ fcntl$(EXEEXT): $(fcntl_OBJECTS) $(fcntl_DEPENDENCIES) $(EXTRA_fcntl_DEPENDENCIE @rm -f fcntl$(EXEEXT) $(AM_V_CCLD)$(LINK) $(fcntl_OBJECTS) $(fcntl_LDADD) $(LIBS) +fcntl--pidns-translation$(EXEEXT): $(fcntl__pidns_translation_OBJECTS) $(fcntl__pidns_translation_DEPENDENCIES) $(EXTRA_fcntl__pidns_translation_DEPENDENCIES) + @rm -f fcntl--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fcntl__pidns_translation_OBJECTS) $(fcntl__pidns_translation_LDADD) $(LIBS) + fcntl64$(EXEEXT): $(fcntl64_OBJECTS) $(fcntl64_DEPENDENCIES) $(EXTRA_fcntl64_DEPENDENCIES) @rm -f fcntl64$(EXEEXT) $(AM_V_CCLD)$(LINK) $(fcntl64_OBJECTS) $(fcntl64_LDADD) $(LIBS) +fcntl64--pidns-translation$(EXEEXT): $(fcntl64__pidns_translation_OBJECTS) $(fcntl64__pidns_translation_DEPENDENCIES) $(EXTRA_fcntl64__pidns_translation_DEPENDENCIES) + @rm -f fcntl64--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fcntl64__pidns_translation_OBJECTS) $(fcntl64__pidns_translation_LDADD) $(LIBS) + fdatasync$(EXEEXT): $(fdatasync_OBJECTS) $(fdatasync_DEPENDENCIES) $(EXTRA_fdatasync_DEPENDENCIES) @rm -f fdatasync$(EXEEXT) $(AM_V_CCLD)$(LINK) $(fdatasync_OBJECTS) $(fdatasync_LDADD) $(LIBS) @@ -5493,6 +7455,14 @@ filter-unavailable$(EXEEXT): $(filter_unavailable_OBJECTS) $(filter_unavailable_ @rm -f filter-unavailable$(EXEEXT) $(AM_V_CCLD)$(LINK) $(filter_unavailable_OBJECTS) $(filter_unavailable_LDADD) $(LIBS) +filter_seccomp-flag$(EXEEXT): $(filter_seccomp_flag_OBJECTS) $(filter_seccomp_flag_DEPENDENCIES) $(EXTRA_filter_seccomp_flag_DEPENDENCIES) + @rm -f filter_seccomp-flag$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(filter_seccomp_flag_OBJECTS) $(filter_seccomp_flag_LDADD) $(LIBS) + +filter_seccomp-perf$(EXEEXT): $(filter_seccomp_perf_OBJECTS) $(filter_seccomp_perf_DEPENDENCIES) $(EXTRA_filter_seccomp_perf_DEPENDENCIES) + @rm -f filter_seccomp-perf$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(filter_seccomp_perf_OBJECTS) $(filter_seccomp_perf_LDADD) $(LIBS) + finit_module$(EXEEXT): $(finit_module_OBJECTS) $(finit_module_DEPENDENCIES) $(EXTRA_finit_module_DEPENDENCIES) @rm -f finit_module$(EXEEXT) $(AM_V_CCLD)$(LINK) $(finit_module_OBJECTS) $(finit_module_LDADD) $(LIBS) @@ -5501,10 +7471,38 @@ flock$(EXEEXT): $(flock_OBJECTS) $(flock_DEPENDENCIES) $(EXTRA_flock_DEPENDENCIE @rm -f flock$(EXEEXT) $(AM_V_CCLD)$(LINK) $(flock_OBJECTS) $(flock_LDADD) $(LIBS) +fork--pidns-translation$(EXEEXT): $(fork__pidns_translation_OBJECTS) $(fork__pidns_translation_DEPENDENCIES) $(EXTRA_fork__pidns_translation_DEPENDENCIES) + @rm -f fork--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fork__pidns_translation_OBJECTS) $(fork__pidns_translation_LDADD) $(LIBS) + fork-f$(EXEEXT): $(fork_f_OBJECTS) $(fork_f_DEPENDENCIES) $(EXTRA_fork_f_DEPENDENCIES) @rm -f fork-f$(EXEEXT) $(AM_V_CCLD)$(LINK) $(fork_f_OBJECTS) $(fork_f_LDADD) $(LIBS) +fsconfig$(EXEEXT): $(fsconfig_OBJECTS) $(fsconfig_DEPENDENCIES) $(EXTRA_fsconfig_DEPENDENCIES) + @rm -f fsconfig$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fsconfig_OBJECTS) $(fsconfig_LDADD) $(LIBS) + +fsconfig-P$(EXEEXT): $(fsconfig_P_OBJECTS) $(fsconfig_P_DEPENDENCIES) $(EXTRA_fsconfig_P_DEPENDENCIES) + @rm -f fsconfig-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fsconfig_P_OBJECTS) $(fsconfig_P_LDADD) $(LIBS) + +fsmount$(EXEEXT): $(fsmount_OBJECTS) $(fsmount_DEPENDENCIES) $(EXTRA_fsmount_DEPENDENCIES) + @rm -f fsmount$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fsmount_OBJECTS) $(fsmount_LDADD) $(LIBS) + +fsopen$(EXEEXT): $(fsopen_OBJECTS) $(fsopen_DEPENDENCIES) $(EXTRA_fsopen_DEPENDENCIES) + @rm -f fsopen$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fsopen_OBJECTS) $(fsopen_LDADD) $(LIBS) + +fspick$(EXEEXT): $(fspick_OBJECTS) $(fspick_DEPENDENCIES) $(EXTRA_fspick_DEPENDENCIES) + @rm -f fspick$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fspick_OBJECTS) $(fspick_LDADD) $(LIBS) + +fspick-P$(EXEEXT): $(fspick_P_OBJECTS) $(fspick_P_DEPENDENCIES) $(EXTRA_fspick_P_DEPENDENCIES) + @rm -f fspick-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fspick_P_OBJECTS) $(fspick_P_LDADD) $(LIBS) + fstat$(EXEEXT): $(fstat_OBJECTS) $(fstat_DEPENDENCIES) $(EXTRA_fstat_DEPENDENCIES) @rm -f fstat$(EXEEXT) $(AM_V_CCLD)$(LINK) $(fstat_OBJECTS) $(fstat_LDADD) $(LIBS) @@ -5577,6 +7575,10 @@ get_mempolicy$(EXEEXT): $(get_mempolicy_OBJECTS) $(get_mempolicy_DEPENDENCIES) $ @rm -f get_mempolicy$(EXEEXT) $(AM_V_CCLD)$(LINK) $(get_mempolicy_OBJECTS) $(get_mempolicy_LDADD) $(LIBS) +get_process_reaper$(EXEEXT): $(get_process_reaper_OBJECTS) $(get_process_reaper_DEPENDENCIES) $(EXTRA_get_process_reaper_DEPENDENCIES) + @rm -f get_process_reaper$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(get_process_reaper_OBJECTS) $(get_process_reaper_LDADD) $(LIBS) + getcpu$(EXEEXT): $(getcpu_OBJECTS) $(getcpu_DEPENDENCIES) $(EXTRA_getcpu_DEPENDENCIES) @rm -f getcpu$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getcpu_OBJECTS) $(getcpu_LDADD) $(LIBS) @@ -5589,10 +7591,18 @@ getdents$(EXEEXT): $(getdents_OBJECTS) $(getdents_DEPENDENCIES) $(EXTRA_getdents @rm -f getdents$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getdents_OBJECTS) $(getdents_LDADD) $(LIBS) +getdents-v$(EXEEXT): $(getdents_v_OBJECTS) $(getdents_v_DEPENDENCIES) $(EXTRA_getdents_v_DEPENDENCIES) + @rm -f getdents-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(getdents_v_OBJECTS) $(getdents_v_LDADD) $(LIBS) + getdents64$(EXEEXT): $(getdents64_OBJECTS) $(getdents64_DEPENDENCIES) $(EXTRA_getdents64_DEPENDENCIES) @rm -f getdents64$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getdents64_OBJECTS) $(getdents64_LDADD) $(LIBS) +getdents64-v$(EXEEXT): $(getdents64_v_OBJECTS) $(getdents64_v_DEPENDENCIES) $(EXTRA_getdents64_v_DEPENDENCIES) + @rm -f getdents64-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(getdents64_v_OBJECTS) $(getdents64_v_LDADD) $(LIBS) + getegid$(EXEEXT): $(getegid_OBJECTS) $(getegid_DEPENDENCIES) $(EXTRA_getegid_DEPENDENCIES) @rm -f getegid$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getegid_OBJECTS) $(getegid_LDADD) $(LIBS) @@ -5633,10 +7643,18 @@ getpgrp$(EXEEXT): $(getpgrp_OBJECTS) $(getpgrp_DEPENDENCIES) $(EXTRA_getpgrp_DEP @rm -f getpgrp$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getpgrp_OBJECTS) $(getpgrp_LDADD) $(LIBS) +getpgrp--pidns-translation$(EXEEXT): $(getpgrp__pidns_translation_OBJECTS) $(getpgrp__pidns_translation_DEPENDENCIES) $(EXTRA_getpgrp__pidns_translation_DEPENDENCIES) + @rm -f getpgrp--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(getpgrp__pidns_translation_OBJECTS) $(getpgrp__pidns_translation_LDADD) $(LIBS) + getpid$(EXEEXT): $(getpid_OBJECTS) $(getpid_DEPENDENCIES) $(EXTRA_getpid_DEPENDENCIES) @rm -f getpid$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getpid_OBJECTS) $(getpid_LDADD) $(LIBS) +getpid--pidns-translation$(EXEEXT): $(getpid__pidns_translation_OBJECTS) $(getpid__pidns_translation_DEPENDENCIES) $(EXTRA_getpid__pidns_translation_DEPENDENCIES) + @rm -f getpid--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(getpid__pidns_translation_OBJECTS) $(getpid__pidns_translation_LDADD) $(LIBS) + getppid$(EXEEXT): $(getppid_OBJECTS) $(getppid_DEPENDENCIES) $(EXTRA_getppid_DEPENDENCIES) @rm -f getppid$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getppid_OBJECTS) $(getppid_LDADD) $(LIBS) @@ -5673,6 +7691,10 @@ getsid$(EXEEXT): $(getsid_OBJECTS) $(getsid_DEPENDENCIES) $(EXTRA_getsid_DEPENDE @rm -f getsid$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getsid_OBJECTS) $(getsid_LDADD) $(LIBS) +getsid--pidns-translation$(EXEEXT): $(getsid__pidns_translation_OBJECTS) $(getsid__pidns_translation_DEPENDENCIES) $(EXTRA_getsid__pidns_translation_DEPENDENCIES) + @rm -f getsid--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(getsid__pidns_translation_OBJECTS) $(getsid__pidns_translation_LDADD) $(LIBS) + getsockname$(EXEEXT): $(getsockname_OBJECTS) $(getsockname_DEPENDENCIES) $(EXTRA_getsockname_DEPENDENCIES) @rm -f getsockname$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getsockname_OBJECTS) $(getsockname_LDADD) $(LIBS) @@ -5681,6 +7703,10 @@ gettid$(EXEEXT): $(gettid_OBJECTS) $(gettid_DEPENDENCIES) $(EXTRA_gettid_DEPENDE @rm -f gettid$(EXEEXT) $(AM_V_CCLD)$(LINK) $(gettid_OBJECTS) $(gettid_LDADD) $(LIBS) +gettid--pidns-translation$(EXEEXT): $(gettid__pidns_translation_OBJECTS) $(gettid__pidns_translation_DEPENDENCIES) $(EXTRA_gettid__pidns_translation_DEPENDENCIES) + @rm -f gettid--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(gettid__pidns_translation_OBJECTS) $(gettid__pidns_translation_LDADD) $(LIBS) + getuid$(EXEEXT): $(getuid_OBJECTS) $(getuid_DEPENDENCIES) $(EXTRA_getuid_DEPENDENCIES) @rm -f getuid$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getuid_OBJECTS) $(getuid_LDADD) $(LIBS) @@ -5689,9 +7715,17 @@ getuid32$(EXEEXT): $(getuid32_OBJECTS) $(getuid32_DEPENDENCIES) $(EXTRA_getuid32 @rm -f getuid32$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getuid32_OBJECTS) $(getuid32_LDADD) $(LIBS) -getxxid$(EXEEXT): $(getxxid_OBJECTS) $(getxxid_DEPENDENCIES) $(EXTRA_getxxid_DEPENDENCIES) - @rm -f getxxid$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(getxxid_OBJECTS) $(getxxid_LDADD) $(LIBS) +getxgid$(EXEEXT): $(getxgid_OBJECTS) $(getxgid_DEPENDENCIES) $(EXTRA_getxgid_DEPENDENCIES) + @rm -f getxgid$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(getxgid_OBJECTS) $(getxgid_LDADD) $(LIBS) + +getxpid$(EXEEXT): $(getxpid_OBJECTS) $(getxpid_DEPENDENCIES) $(EXTRA_getxpid_DEPENDENCIES) + @rm -f getxpid$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(getxpid_OBJECTS) $(getxpid_LDADD) $(LIBS) + +getxuid$(EXEEXT): $(getxuid_OBJECTS) $(getxuid_DEPENDENCIES) $(EXTRA_getxuid_DEPENDENCIES) + @rm -f getxuid$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(getxuid_OBJECTS) $(getxuid_LDADD) $(LIBS) group_req$(EXEEXT): $(group_req_OBJECTS) $(group_req_DEPENDENCIES) $(EXTRA_group_req_DEPENDENCIES) @rm -f group_req$(EXEEXT) @@ -5713,10 +7747,22 @@ inotify$(EXEEXT): $(inotify_OBJECTS) $(inotify_DEPENDENCIES) $(EXTRA_inotify_DEP @rm -f inotify$(EXEEXT) $(AM_V_CCLD)$(LINK) $(inotify_OBJECTS) $(inotify_LDADD) $(LIBS) +inotify_init$(EXEEXT): $(inotify_init_OBJECTS) $(inotify_init_DEPENDENCIES) $(EXTRA_inotify_init_DEPENDENCIES) + @rm -f inotify_init$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(inotify_init_OBJECTS) $(inotify_init_LDADD) $(LIBS) + +inotify_init-y$(EXEEXT): $(inotify_init_y_OBJECTS) $(inotify_init_y_DEPENDENCIES) $(EXTRA_inotify_init_y_DEPENDENCIES) + @rm -f inotify_init-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(inotify_init_y_OBJECTS) $(inotify_init_y_LDADD) $(LIBS) + inotify_init1$(EXEEXT): $(inotify_init1_OBJECTS) $(inotify_init1_DEPENDENCIES) $(EXTRA_inotify_init1_DEPENDENCIES) @rm -f inotify_init1$(EXEEXT) $(AM_V_CCLD)$(LINK) $(inotify_init1_OBJECTS) $(inotify_init1_LDADD) $(LIBS) +inotify_init1-y$(EXEEXT): $(inotify_init1_y_OBJECTS) $(inotify_init1_y_DEPENDENCIES) $(EXTRA_inotify_init1_y_DEPENDENCIES) + @rm -f inotify_init1-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(inotify_init1_y_OBJECTS) $(inotify_init1_y_LDADD) $(LIBS) + int_0x80$(EXEEXT): $(int_0x80_OBJECTS) $(int_0x80_DEPENDENCIES) $(EXTRA_int_0x80_DEPENDENCIES) @rm -f int_0x80$(EXEEXT) $(AM_V_CCLD)$(LINK) $(int_0x80_OBJECTS) $(int_0x80_LDADD) $(LIBS) @@ -5741,6 +7787,10 @@ ioctl_block$(EXEEXT): $(ioctl_block_OBJECTS) $(ioctl_block_DEPENDENCIES) $(EXTRA @rm -f ioctl_block$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_block_OBJECTS) $(ioctl_block_LDADD) $(LIBS) +ioctl_block--pidns-translation$(EXEEXT): $(ioctl_block__pidns_translation_OBJECTS) $(ioctl_block__pidns_translation_DEPENDENCIES) $(EXTRA_ioctl_block__pidns_translation_DEPENDENCIES) + @rm -f ioctl_block--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_block__pidns_translation_OBJECTS) $(ioctl_block__pidns_translation_LDADD) $(LIBS) + ioctl_dm$(EXEEXT): $(ioctl_dm_OBJECTS) $(ioctl_dm_DEPENDENCIES) $(EXTRA_ioctl_dm_DEPENDENCIES) @rm -f ioctl_dm$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_dm_OBJECTS) $(ioctl_dm_LDADD) $(LIBS) @@ -5753,18 +7803,130 @@ ioctl_evdev$(EXEEXT): $(ioctl_evdev_OBJECTS) $(ioctl_evdev_DEPENDENCIES) $(EXTRA @rm -f ioctl_evdev$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_evdev_OBJECTS) $(ioctl_evdev_LDADD) $(LIBS) +ioctl_evdev-Xabbrev$(EXEEXT): $(ioctl_evdev_Xabbrev_OBJECTS) $(ioctl_evdev_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_evdev_Xabbrev_DEPENDENCIES) + @rm -f ioctl_evdev-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_Xabbrev_OBJECTS) $(ioctl_evdev_Xabbrev_LDADD) $(LIBS) + +ioctl_evdev-Xraw$(EXEEXT): $(ioctl_evdev_Xraw_OBJECTS) $(ioctl_evdev_Xraw_DEPENDENCIES) $(EXTRA_ioctl_evdev_Xraw_DEPENDENCIES) + @rm -f ioctl_evdev-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_Xraw_OBJECTS) $(ioctl_evdev_Xraw_LDADD) $(LIBS) + +ioctl_evdev-Xverbose$(EXEEXT): $(ioctl_evdev_Xverbose_OBJECTS) $(ioctl_evdev_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_evdev_Xverbose_DEPENDENCIES) + @rm -f ioctl_evdev-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_Xverbose_OBJECTS) $(ioctl_evdev_Xverbose_LDADD) $(LIBS) + ioctl_evdev-success$(EXEEXT): $(ioctl_evdev_success_OBJECTS) $(ioctl_evdev_success_DEPENDENCIES) $(EXTRA_ioctl_evdev_success_DEPENDENCIES) @rm -f ioctl_evdev-success$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_evdev_success_OBJECTS) $(ioctl_evdev_success_LDADD) $(LIBS) +ioctl_evdev-success-Xabbrev$(EXEEXT): $(ioctl_evdev_success_Xabbrev_OBJECTS) $(ioctl_evdev_success_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_evdev_success_Xabbrev_DEPENDENCIES) + @rm -f ioctl_evdev-success-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_success_Xabbrev_OBJECTS) $(ioctl_evdev_success_Xabbrev_LDADD) $(LIBS) + +ioctl_evdev-success-Xraw$(EXEEXT): $(ioctl_evdev_success_Xraw_OBJECTS) $(ioctl_evdev_success_Xraw_DEPENDENCIES) $(EXTRA_ioctl_evdev_success_Xraw_DEPENDENCIES) + @rm -f ioctl_evdev-success-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_success_Xraw_OBJECTS) $(ioctl_evdev_success_Xraw_LDADD) $(LIBS) + +ioctl_evdev-success-Xverbose$(EXEEXT): $(ioctl_evdev_success_Xverbose_OBJECTS) $(ioctl_evdev_success_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_evdev_success_Xverbose_DEPENDENCIES) + @rm -f ioctl_evdev-success-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_success_Xverbose_OBJECTS) $(ioctl_evdev_success_Xverbose_LDADD) $(LIBS) + ioctl_evdev-success-v$(EXEEXT): $(ioctl_evdev_success_v_OBJECTS) $(ioctl_evdev_success_v_DEPENDENCIES) $(EXTRA_ioctl_evdev_success_v_DEPENDENCIES) @rm -f ioctl_evdev-success-v$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_evdev_success_v_OBJECTS) $(ioctl_evdev_success_v_LDADD) $(LIBS) +ioctl_evdev-success-v-Xabbrev$(EXEEXT): $(ioctl_evdev_success_v_Xabbrev_OBJECTS) $(ioctl_evdev_success_v_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_evdev_success_v_Xabbrev_DEPENDENCIES) + @rm -f ioctl_evdev-success-v-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_success_v_Xabbrev_OBJECTS) $(ioctl_evdev_success_v_Xabbrev_LDADD) $(LIBS) + +ioctl_evdev-success-v-Xraw$(EXEEXT): $(ioctl_evdev_success_v_Xraw_OBJECTS) $(ioctl_evdev_success_v_Xraw_DEPENDENCIES) $(EXTRA_ioctl_evdev_success_v_Xraw_DEPENDENCIES) + @rm -f ioctl_evdev-success-v-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_success_v_Xraw_OBJECTS) $(ioctl_evdev_success_v_Xraw_LDADD) $(LIBS) + +ioctl_evdev-success-v-Xverbose$(EXEEXT): $(ioctl_evdev_success_v_Xverbose_OBJECTS) $(ioctl_evdev_success_v_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_evdev_success_v_Xverbose_DEPENDENCIES) + @rm -f ioctl_evdev-success-v-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_success_v_Xverbose_OBJECTS) $(ioctl_evdev_success_v_Xverbose_LDADD) $(LIBS) + ioctl_evdev-v$(EXEEXT): $(ioctl_evdev_v_OBJECTS) $(ioctl_evdev_v_DEPENDENCIES) $(EXTRA_ioctl_evdev_v_DEPENDENCIES) @rm -f ioctl_evdev-v$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_evdev_v_OBJECTS) $(ioctl_evdev_v_LDADD) $(LIBS) +ioctl_evdev-v-Xabbrev$(EXEEXT): $(ioctl_evdev_v_Xabbrev_OBJECTS) $(ioctl_evdev_v_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_evdev_v_Xabbrev_DEPENDENCIES) + @rm -f ioctl_evdev-v-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_v_Xabbrev_OBJECTS) $(ioctl_evdev_v_Xabbrev_LDADD) $(LIBS) + +ioctl_evdev-v-Xraw$(EXEEXT): $(ioctl_evdev_v_Xraw_OBJECTS) $(ioctl_evdev_v_Xraw_DEPENDENCIES) $(EXTRA_ioctl_evdev_v_Xraw_DEPENDENCIES) + @rm -f ioctl_evdev-v-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_v_Xraw_OBJECTS) $(ioctl_evdev_v_Xraw_LDADD) $(LIBS) + +ioctl_evdev-v-Xverbose$(EXEEXT): $(ioctl_evdev_v_Xverbose_OBJECTS) $(ioctl_evdev_v_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_evdev_v_Xverbose_DEPENDENCIES) + @rm -f ioctl_evdev-v-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_v_Xverbose_OBJECTS) $(ioctl_evdev_v_Xverbose_LDADD) $(LIBS) + +ioctl_hdio$(EXEEXT): $(ioctl_hdio_OBJECTS) $(ioctl_hdio_DEPENDENCIES) $(EXTRA_ioctl_hdio_DEPENDENCIES) + @rm -f ioctl_hdio$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_OBJECTS) $(ioctl_hdio_LDADD) $(LIBS) + +ioctl_hdio-Xabbrev$(EXEEXT): $(ioctl_hdio_Xabbrev_OBJECTS) $(ioctl_hdio_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_hdio_Xabbrev_DEPENDENCIES) + @rm -f ioctl_hdio-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_Xabbrev_OBJECTS) $(ioctl_hdio_Xabbrev_LDADD) $(LIBS) + +ioctl_hdio-Xraw$(EXEEXT): $(ioctl_hdio_Xraw_OBJECTS) $(ioctl_hdio_Xraw_DEPENDENCIES) $(EXTRA_ioctl_hdio_Xraw_DEPENDENCIES) + @rm -f ioctl_hdio-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_Xraw_OBJECTS) $(ioctl_hdio_Xraw_LDADD) $(LIBS) + +ioctl_hdio-Xverbose$(EXEEXT): $(ioctl_hdio_Xverbose_OBJECTS) $(ioctl_hdio_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_hdio_Xverbose_DEPENDENCIES) + @rm -f ioctl_hdio-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_Xverbose_OBJECTS) $(ioctl_hdio_Xverbose_LDADD) $(LIBS) + +ioctl_hdio-success$(EXEEXT): $(ioctl_hdio_success_OBJECTS) $(ioctl_hdio_success_DEPENDENCIES) $(EXTRA_ioctl_hdio_success_DEPENDENCIES) + @rm -f ioctl_hdio-success$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_success_OBJECTS) $(ioctl_hdio_success_LDADD) $(LIBS) + +ioctl_hdio-success-Xabbrev$(EXEEXT): $(ioctl_hdio_success_Xabbrev_OBJECTS) $(ioctl_hdio_success_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_hdio_success_Xabbrev_DEPENDENCIES) + @rm -f ioctl_hdio-success-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_success_Xabbrev_OBJECTS) $(ioctl_hdio_success_Xabbrev_LDADD) $(LIBS) + +ioctl_hdio-success-Xraw$(EXEEXT): $(ioctl_hdio_success_Xraw_OBJECTS) $(ioctl_hdio_success_Xraw_DEPENDENCIES) $(EXTRA_ioctl_hdio_success_Xraw_DEPENDENCIES) + @rm -f ioctl_hdio-success-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_success_Xraw_OBJECTS) $(ioctl_hdio_success_Xraw_LDADD) $(LIBS) + +ioctl_hdio-success-Xverbose$(EXEEXT): $(ioctl_hdio_success_Xverbose_OBJECTS) $(ioctl_hdio_success_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_hdio_success_Xverbose_DEPENDENCIES) + @rm -f ioctl_hdio-success-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_success_Xverbose_OBJECTS) $(ioctl_hdio_success_Xverbose_LDADD) $(LIBS) + +ioctl_hdio-success-v$(EXEEXT): $(ioctl_hdio_success_v_OBJECTS) $(ioctl_hdio_success_v_DEPENDENCIES) $(EXTRA_ioctl_hdio_success_v_DEPENDENCIES) + @rm -f ioctl_hdio-success-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_success_v_OBJECTS) $(ioctl_hdio_success_v_LDADD) $(LIBS) + +ioctl_hdio-success-v-Xabbrev$(EXEEXT): $(ioctl_hdio_success_v_Xabbrev_OBJECTS) $(ioctl_hdio_success_v_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_hdio_success_v_Xabbrev_DEPENDENCIES) + @rm -f ioctl_hdio-success-v-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_success_v_Xabbrev_OBJECTS) $(ioctl_hdio_success_v_Xabbrev_LDADD) $(LIBS) + +ioctl_hdio-success-v-Xraw$(EXEEXT): $(ioctl_hdio_success_v_Xraw_OBJECTS) $(ioctl_hdio_success_v_Xraw_DEPENDENCIES) $(EXTRA_ioctl_hdio_success_v_Xraw_DEPENDENCIES) + @rm -f ioctl_hdio-success-v-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_success_v_Xraw_OBJECTS) $(ioctl_hdio_success_v_Xraw_LDADD) $(LIBS) + +ioctl_hdio-success-v-Xverbose$(EXEEXT): $(ioctl_hdio_success_v_Xverbose_OBJECTS) $(ioctl_hdio_success_v_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_hdio_success_v_Xverbose_DEPENDENCIES) + @rm -f ioctl_hdio-success-v-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_success_v_Xverbose_OBJECTS) $(ioctl_hdio_success_v_Xverbose_LDADD) $(LIBS) + +ioctl_hdio-v$(EXEEXT): $(ioctl_hdio_v_OBJECTS) $(ioctl_hdio_v_DEPENDENCIES) $(EXTRA_ioctl_hdio_v_DEPENDENCIES) + @rm -f ioctl_hdio-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_v_OBJECTS) $(ioctl_hdio_v_LDADD) $(LIBS) + +ioctl_hdio-v-Xabbrev$(EXEEXT): $(ioctl_hdio_v_Xabbrev_OBJECTS) $(ioctl_hdio_v_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_hdio_v_Xabbrev_DEPENDENCIES) + @rm -f ioctl_hdio-v-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_v_Xabbrev_OBJECTS) $(ioctl_hdio_v_Xabbrev_LDADD) $(LIBS) + +ioctl_hdio-v-Xraw$(EXEEXT): $(ioctl_hdio_v_Xraw_OBJECTS) $(ioctl_hdio_v_Xraw_DEPENDENCIES) $(EXTRA_ioctl_hdio_v_Xraw_DEPENDENCIES) + @rm -f ioctl_hdio-v-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_v_Xraw_OBJECTS) $(ioctl_hdio_v_Xraw_LDADD) $(LIBS) + +ioctl_hdio-v-Xverbose$(EXEEXT): $(ioctl_hdio_v_Xverbose_OBJECTS) $(ioctl_hdio_v_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_hdio_v_Xverbose_DEPENDENCIES) + @rm -f ioctl_hdio-v-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_v_Xverbose_OBJECTS) $(ioctl_hdio_v_Xverbose_LDADD) $(LIBS) + ioctl_inotify$(EXEEXT): $(ioctl_inotify_OBJECTS) $(ioctl_inotify_DEPENDENCIES) $(EXTRA_ioctl_inotify_DEPENDENCIES) @rm -f ioctl_inotify$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_inotify_OBJECTS) $(ioctl_inotify_LDADD) $(LIBS) @@ -5845,6 +8007,10 @@ ioctl_sock_gifconf$(EXEEXT): $(ioctl_sock_gifconf_OBJECTS) $(ioctl_sock_gifconf_ @rm -f ioctl_sock_gifconf$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_sock_gifconf_OBJECTS) $(ioctl_sock_gifconf_LDADD) $(LIBS) +ioctl_tee$(EXEEXT): $(ioctl_tee_OBJECTS) $(ioctl_tee_DEPENDENCIES) $(EXTRA_ioctl_tee_DEPENDENCIES) + @rm -f ioctl_tee$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_tee_OBJECTS) $(ioctl_tee_LDADD) $(LIBS) + ioctl_uffdio$(EXEEXT): $(ioctl_uffdio_OBJECTS) $(ioctl_uffdio_DEPENDENCIES) $(EXTRA_ioctl_uffdio_DEPENDENCIES) @rm -f ioctl_uffdio$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_uffdio_OBJECTS) $(ioctl_uffdio_LDADD) $(LIBS) @@ -5853,6 +8019,70 @@ ioctl_v4l2$(EXEEXT): $(ioctl_v4l2_OBJECTS) $(ioctl_v4l2_DEPENDENCIES) $(EXTRA_io @rm -f ioctl_v4l2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_OBJECTS) $(ioctl_v4l2_LDADD) $(LIBS) +ioctl_v4l2-Xabbrev$(EXEEXT): $(ioctl_v4l2_Xabbrev_OBJECTS) $(ioctl_v4l2_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_v4l2_Xabbrev_DEPENDENCIES) + @rm -f ioctl_v4l2-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_Xabbrev_OBJECTS) $(ioctl_v4l2_Xabbrev_LDADD) $(LIBS) + +ioctl_v4l2-Xraw$(EXEEXT): $(ioctl_v4l2_Xraw_OBJECTS) $(ioctl_v4l2_Xraw_DEPENDENCIES) $(EXTRA_ioctl_v4l2_Xraw_DEPENDENCIES) + @rm -f ioctl_v4l2-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_Xraw_OBJECTS) $(ioctl_v4l2_Xraw_LDADD) $(LIBS) + +ioctl_v4l2-Xverbose$(EXEEXT): $(ioctl_v4l2_Xverbose_OBJECTS) $(ioctl_v4l2_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_v4l2_Xverbose_DEPENDENCIES) + @rm -f ioctl_v4l2-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_Xverbose_OBJECTS) $(ioctl_v4l2_Xverbose_LDADD) $(LIBS) + +ioctl_v4l2-success$(EXEEXT): $(ioctl_v4l2_success_OBJECTS) $(ioctl_v4l2_success_DEPENDENCIES) $(EXTRA_ioctl_v4l2_success_DEPENDENCIES) + @rm -f ioctl_v4l2-success$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_success_OBJECTS) $(ioctl_v4l2_success_LDADD) $(LIBS) + +ioctl_v4l2-success-Xabbrev$(EXEEXT): $(ioctl_v4l2_success_Xabbrev_OBJECTS) $(ioctl_v4l2_success_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_v4l2_success_Xabbrev_DEPENDENCIES) + @rm -f ioctl_v4l2-success-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_success_Xabbrev_OBJECTS) $(ioctl_v4l2_success_Xabbrev_LDADD) $(LIBS) + +ioctl_v4l2-success-Xraw$(EXEEXT): $(ioctl_v4l2_success_Xraw_OBJECTS) $(ioctl_v4l2_success_Xraw_DEPENDENCIES) $(EXTRA_ioctl_v4l2_success_Xraw_DEPENDENCIES) + @rm -f ioctl_v4l2-success-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_success_Xraw_OBJECTS) $(ioctl_v4l2_success_Xraw_LDADD) $(LIBS) + +ioctl_v4l2-success-Xverbose$(EXEEXT): $(ioctl_v4l2_success_Xverbose_OBJECTS) $(ioctl_v4l2_success_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_v4l2_success_Xverbose_DEPENDENCIES) + @rm -f ioctl_v4l2-success-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_success_Xverbose_OBJECTS) $(ioctl_v4l2_success_Xverbose_LDADD) $(LIBS) + +ioctl_v4l2-success-v$(EXEEXT): $(ioctl_v4l2_success_v_OBJECTS) $(ioctl_v4l2_success_v_DEPENDENCIES) $(EXTRA_ioctl_v4l2_success_v_DEPENDENCIES) + @rm -f ioctl_v4l2-success-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_success_v_OBJECTS) $(ioctl_v4l2_success_v_LDADD) $(LIBS) + +ioctl_v4l2-success-v-Xabbrev$(EXEEXT): $(ioctl_v4l2_success_v_Xabbrev_OBJECTS) $(ioctl_v4l2_success_v_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_v4l2_success_v_Xabbrev_DEPENDENCIES) + @rm -f ioctl_v4l2-success-v-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_success_v_Xabbrev_OBJECTS) $(ioctl_v4l2_success_v_Xabbrev_LDADD) $(LIBS) + +ioctl_v4l2-success-v-Xraw$(EXEEXT): $(ioctl_v4l2_success_v_Xraw_OBJECTS) $(ioctl_v4l2_success_v_Xraw_DEPENDENCIES) $(EXTRA_ioctl_v4l2_success_v_Xraw_DEPENDENCIES) + @rm -f ioctl_v4l2-success-v-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_success_v_Xraw_OBJECTS) $(ioctl_v4l2_success_v_Xraw_LDADD) $(LIBS) + +ioctl_v4l2-success-v-Xverbose$(EXEEXT): $(ioctl_v4l2_success_v_Xverbose_OBJECTS) $(ioctl_v4l2_success_v_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_v4l2_success_v_Xverbose_DEPENDENCIES) + @rm -f ioctl_v4l2-success-v-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_success_v_Xverbose_OBJECTS) $(ioctl_v4l2_success_v_Xverbose_LDADD) $(LIBS) + +ioctl_v4l2-v$(EXEEXT): $(ioctl_v4l2_v_OBJECTS) $(ioctl_v4l2_v_DEPENDENCIES) $(EXTRA_ioctl_v4l2_v_DEPENDENCIES) + @rm -f ioctl_v4l2-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_v_OBJECTS) $(ioctl_v4l2_v_LDADD) $(LIBS) + +ioctl_v4l2-v-Xabbrev$(EXEEXT): $(ioctl_v4l2_v_Xabbrev_OBJECTS) $(ioctl_v4l2_v_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_v4l2_v_Xabbrev_DEPENDENCIES) + @rm -f ioctl_v4l2-v-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_v_Xabbrev_OBJECTS) $(ioctl_v4l2_v_Xabbrev_LDADD) $(LIBS) + +ioctl_v4l2-v-Xraw$(EXEEXT): $(ioctl_v4l2_v_Xraw_OBJECTS) $(ioctl_v4l2_v_Xraw_DEPENDENCIES) $(EXTRA_ioctl_v4l2_v_Xraw_DEPENDENCIES) + @rm -f ioctl_v4l2-v-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_v_Xraw_OBJECTS) $(ioctl_v4l2_v_Xraw_LDADD) $(LIBS) + +ioctl_v4l2-v-Xverbose$(EXEEXT): $(ioctl_v4l2_v_Xverbose_OBJECTS) $(ioctl_v4l2_v_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_v4l2_v_Xverbose_DEPENDENCIES) + @rm -f ioctl_v4l2-v-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_v_Xverbose_OBJECTS) $(ioctl_v4l2_v_Xverbose_LDADD) $(LIBS) + +ioctl_watchdog$(EXEEXT): $(ioctl_watchdog_OBJECTS) $(ioctl_watchdog_DEPENDENCIES) $(EXTRA_ioctl_watchdog_DEPENDENCIES) + @rm -f ioctl_watchdog$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_watchdog_OBJECTS) $(ioctl_watchdog_LDADD) $(LIBS) + ioperm$(EXEEXT): $(ioperm_OBJECTS) $(ioperm_DEPENDENCIES) $(EXTRA_ioperm_DEPENDENCIES) @rm -f ioperm$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioperm_OBJECTS) $(ioperm_LDADD) $(LIBS) @@ -5865,6 +8095,10 @@ ioprio$(EXEEXT): $(ioprio_OBJECTS) $(ioprio_DEPENDENCIES) $(EXTRA_ioprio_DEPENDE @rm -f ioprio$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioprio_OBJECTS) $(ioprio_LDADD) $(LIBS) +ioprio--pidns-translation$(EXEEXT): $(ioprio__pidns_translation_OBJECTS) $(ioprio__pidns_translation_DEPENDENCIES) $(EXTRA_ioprio__pidns_translation_DEPENDENCIES) + @rm -f ioprio--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioprio__pidns_translation_OBJECTS) $(ioprio__pidns_translation_LDADD) $(LIBS) + ioprio-Xabbrev$(EXEEXT): $(ioprio_Xabbrev_OBJECTS) $(ioprio_Xabbrev_DEPENDENCIES) $(EXTRA_ioprio_Xabbrev_DEPENDENCIES) @rm -f ioprio-Xabbrev$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioprio_Xabbrev_OBJECTS) $(ioprio_Xabbrev_LDADD) $(LIBS) @@ -5961,6 +8195,10 @@ kcmp-y$(EXEEXT): $(kcmp_y_OBJECTS) $(kcmp_y_DEPENDENCIES) $(EXTRA_kcmp_y_DEPENDE @rm -f kcmp-y$(EXEEXT) $(AM_V_CCLD)$(LINK) $(kcmp_y_OBJECTS) $(kcmp_y_LDADD) $(LIBS) +kcmp-y--pidns-translation$(EXEEXT): $(kcmp_y__pidns_translation_OBJECTS) $(kcmp_y__pidns_translation_DEPENDENCIES) $(EXTRA_kcmp_y__pidns_translation_DEPENDENCIES) + @rm -f kcmp-y--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(kcmp_y__pidns_translation_OBJECTS) $(kcmp_y__pidns_translation_LDADD) $(LIBS) + kern_features$(EXEEXT): $(kern_features_OBJECTS) $(kern_features_DEPENDENCIES) $(EXTRA_kern_features_DEPENDENCIES) @rm -f kern_features$(EXEEXT) $(AM_V_CCLD)$(LINK) $(kern_features_OBJECTS) $(kern_features_LDADD) $(LIBS) @@ -6009,6 +8247,10 @@ kill$(EXEEXT): $(kill_OBJECTS) $(kill_DEPENDENCIES) $(EXTRA_kill_DEPENDENCIES) @rm -f kill$(EXEEXT) $(AM_V_CCLD)$(LINK) $(kill_OBJECTS) $(kill_LDADD) $(LIBS) +kill--pidns-translation$(EXEEXT): $(kill__pidns_translation_OBJECTS) $(kill__pidns_translation_DEPENDENCIES) $(EXTRA_kill__pidns_translation_DEPENDENCIES) + @rm -f kill--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(kill__pidns_translation_OBJECTS) $(kill__pidns_translation_LDADD) $(LIBS) + kill_child$(EXEEXT): $(kill_child_OBJECTS) $(kill_child_DEPENDENCIES) $(EXTRA_kill_child_DEPENDENCIES) @rm -f kill_child$(EXEEXT) $(AM_V_CCLD)$(LINK) $(kill_child_OBJECTS) $(kill_child_LDADD) $(LIBS) @@ -6069,10 +8311,30 @@ madvise$(EXEEXT): $(madvise_OBJECTS) $(madvise_DEPENDENCIES) $(EXTRA_madvise_DEP @rm -f madvise$(EXEEXT) $(AM_V_CCLD)$(LINK) $(madvise_OBJECTS) $(madvise_LDADD) $(LIBS) +maybe_switch_current_tcp$(EXEEXT): $(maybe_switch_current_tcp_OBJECTS) $(maybe_switch_current_tcp_DEPENDENCIES) $(EXTRA_maybe_switch_current_tcp_DEPENDENCIES) + @rm -f maybe_switch_current_tcp$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(maybe_switch_current_tcp_OBJECTS) $(maybe_switch_current_tcp_LDADD) $(LIBS) + +maybe_switch_current_tcp--quiet-thread-execve$(EXEEXT): $(maybe_switch_current_tcp__quiet_thread_execve_OBJECTS) $(maybe_switch_current_tcp__quiet_thread_execve_DEPENDENCIES) $(EXTRA_maybe_switch_current_tcp__quiet_thread_execve_DEPENDENCIES) + @rm -f maybe_switch_current_tcp--quiet-thread-execve$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(maybe_switch_current_tcp__quiet_thread_execve_OBJECTS) $(maybe_switch_current_tcp__quiet_thread_execve_LDADD) $(LIBS) + mbind$(EXEEXT): $(mbind_OBJECTS) $(mbind_DEPENDENCIES) $(EXTRA_mbind_DEPENDENCIES) @rm -f mbind$(EXEEXT) $(AM_V_CCLD)$(LINK) $(mbind_OBJECTS) $(mbind_LDADD) $(LIBS) +mbind-Xabbrev$(EXEEXT): $(mbind_Xabbrev_OBJECTS) $(mbind_Xabbrev_DEPENDENCIES) $(EXTRA_mbind_Xabbrev_DEPENDENCIES) + @rm -f mbind-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(mbind_Xabbrev_OBJECTS) $(mbind_Xabbrev_LDADD) $(LIBS) + +mbind-Xraw$(EXEEXT): $(mbind_Xraw_OBJECTS) $(mbind_Xraw_DEPENDENCIES) $(EXTRA_mbind_Xraw_DEPENDENCIES) + @rm -f mbind-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(mbind_Xraw_OBJECTS) $(mbind_Xraw_LDADD) $(LIBS) + +mbind-Xverbose$(EXEEXT): $(mbind_Xverbose_OBJECTS) $(mbind_Xverbose_DEPENDENCIES) $(EXTRA_mbind_Xverbose_DEPENDENCIES) + @rm -f mbind-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(mbind_Xverbose_OBJECTS) $(mbind_Xverbose_LDADD) $(LIBS) + membarrier$(EXEEXT): $(membarrier_OBJECTS) $(membarrier_DEPENDENCIES) $(EXTRA_membarrier_DEPENDENCIES) @rm -f membarrier$(EXEEXT) $(AM_V_CCLD)$(LINK) $(membarrier_OBJECTS) $(membarrier_LDADD) $(LIBS) @@ -6097,6 +8359,10 @@ migrate_pages$(EXEEXT): $(migrate_pages_OBJECTS) $(migrate_pages_DEPENDENCIES) $ @rm -f migrate_pages$(EXEEXT) $(AM_V_CCLD)$(LINK) $(migrate_pages_OBJECTS) $(migrate_pages_LDADD) $(LIBS) +migrate_pages--pidns-translation$(EXEEXT): $(migrate_pages__pidns_translation_OBJECTS) $(migrate_pages__pidns_translation_DEPENDENCIES) $(EXTRA_migrate_pages__pidns_translation_DEPENDENCIES) + @rm -f migrate_pages--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(migrate_pages__pidns_translation_OBJECTS) $(migrate_pages__pidns_translation_LDADD) $(LIBS) + mincore$(EXEEXT): $(mincore_OBJECTS) $(mincore_DEPENDENCIES) $(EXTRA_mincore_DEPENDENCIES) @rm -f mincore$(EXEEXT) $(AM_V_CCLD)$(LINK) $(mincore_OBJECTS) $(mincore_LDADD) $(LIBS) @@ -6197,10 +8463,22 @@ mount-Xverbose$(EXEEXT): $(mount_Xverbose_OBJECTS) $(mount_Xverbose_DEPENDENCIES @rm -f mount-Xverbose$(EXEEXT) $(AM_V_CCLD)$(LINK) $(mount_Xverbose_OBJECTS) $(mount_Xverbose_LDADD) $(LIBS) +move_mount$(EXEEXT): $(move_mount_OBJECTS) $(move_mount_DEPENDENCIES) $(EXTRA_move_mount_DEPENDENCIES) + @rm -f move_mount$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(move_mount_OBJECTS) $(move_mount_LDADD) $(LIBS) + +move_mount-P$(EXEEXT): $(move_mount_P_OBJECTS) $(move_mount_P_DEPENDENCIES) $(EXTRA_move_mount_P_DEPENDENCIES) + @rm -f move_mount-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(move_mount_P_OBJECTS) $(move_mount_P_LDADD) $(LIBS) + move_pages$(EXEEXT): $(move_pages_OBJECTS) $(move_pages_DEPENDENCIES) $(EXTRA_move_pages_DEPENDENCIES) @rm -f move_pages$(EXEEXT) $(AM_V_CCLD)$(LINK) $(move_pages_OBJECTS) $(move_pages_LDADD) $(LIBS) +move_pages--pidns-translation$(EXEEXT): $(move_pages__pidns_translation_OBJECTS) $(move_pages__pidns_translation_DEPENDENCIES) $(EXTRA_move_pages__pidns_translation_DEPENDENCIES) + @rm -f move_pages--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(move_pages__pidns_translation_OBJECTS) $(move_pages__pidns_translation_LDADD) $(LIBS) + move_pages-Xabbrev$(EXEEXT): $(move_pages_Xabbrev_OBJECTS) $(move_pages_Xabbrev_DEPENDENCIES) $(EXTRA_move_pages_Xabbrev_DEPENDENCIES) @rm -f move_pages-Xabbrev$(EXEEXT) $(AM_V_CCLD)$(LINK) $(move_pages_Xabbrev_OBJECTS) $(move_pages_Xabbrev_LDADD) $(LIBS) @@ -6249,6 +8527,22 @@ nanosleep$(EXEEXT): $(nanosleep_OBJECTS) $(nanosleep_DEPENDENCIES) $(EXTRA_nanos @rm -f nanosleep$(EXEEXT) $(AM_V_CCLD)$(LINK) $(nanosleep_OBJECTS) $(nanosleep_LDADD) $(LIBS) +net--decode-fds-dev-netlink$(EXEEXT): $(net__decode_fds_dev_netlink_OBJECTS) $(net__decode_fds_dev_netlink_DEPENDENCIES) $(EXTRA_net__decode_fds_dev_netlink_DEPENDENCIES) + @rm -f net--decode-fds-dev-netlink$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(net__decode_fds_dev_netlink_OBJECTS) $(net__decode_fds_dev_netlink_LDADD) $(LIBS) + +net--decode-fds-none-netlink$(EXEEXT): $(net__decode_fds_none_netlink_OBJECTS) $(net__decode_fds_none_netlink_DEPENDENCIES) $(EXTRA_net__decode_fds_none_netlink_DEPENDENCIES) + @rm -f net--decode-fds-none-netlink$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(net__decode_fds_none_netlink_OBJECTS) $(net__decode_fds_none_netlink_LDADD) $(LIBS) + +net--decode-fds-path-netlink$(EXEEXT): $(net__decode_fds_path_netlink_OBJECTS) $(net__decode_fds_path_netlink_DEPENDENCIES) $(EXTRA_net__decode_fds_path_netlink_DEPENDENCIES) + @rm -f net--decode-fds-path-netlink$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(net__decode_fds_path_netlink_OBJECTS) $(net__decode_fds_path_netlink_LDADD) $(LIBS) + +net--decode-fds-socket-netlink$(EXEEXT): $(net__decode_fds_socket_netlink_OBJECTS) $(net__decode_fds_socket_netlink_DEPENDENCIES) $(EXTRA_net__decode_fds_socket_netlink_DEPENDENCIES) + @rm -f net--decode-fds-socket-netlink$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(net__decode_fds_socket_netlink_OBJECTS) $(net__decode_fds_socket_netlink_LDADD) $(LIBS) + net-accept-connect$(EXEEXT): $(net_accept_connect_OBJECTS) $(net_accept_connect_DEPENDENCIES) $(EXTRA_net_accept_connect_DEPENDENCIES) @rm -f net-accept-connect$(EXEEXT) $(AM_V_CCLD)$(LINK) $(net_accept_connect_OBJECTS) $(net_accept_connect_LDADD) $(LIBS) @@ -6277,6 +8571,10 @@ net-sockaddr$(EXEEXT): $(net_sockaddr_OBJECTS) $(net_sockaddr_DEPENDENCIES) $(EX @rm -f net-sockaddr$(EXEEXT) $(AM_V_CCLD)$(LINK) $(net_sockaddr_OBJECTS) $(net_sockaddr_LDADD) $(LIBS) +net-sockaddr--pidns-translation$(EXEEXT): $(net_sockaddr__pidns_translation_OBJECTS) $(net_sockaddr__pidns_translation_DEPENDENCIES) $(EXTRA_net_sockaddr__pidns_translation_DEPENDENCIES) + @rm -f net-sockaddr--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(net_sockaddr__pidns_translation_OBJECTS) $(net_sockaddr__pidns_translation_LDADD) $(LIBS) + net-tpacket_req$(EXEEXT): $(net_tpacket_req_OBJECTS) $(net_tpacket_req_DEPENDENCIES) $(EXTRA_net_tpacket_req_DEPENDENCIES) @rm -f net-tpacket_req$(EXEEXT) $(AM_V_CCLD)$(LINK) $(net_tpacket_req_OBJECTS) $(net_tpacket_req_LDADD) $(LIBS) @@ -6313,6 +8611,10 @@ netlink_audit$(EXEEXT): $(netlink_audit_OBJECTS) $(netlink_audit_DEPENDENCIES) $ @rm -f netlink_audit$(EXEEXT) $(AM_V_CCLD)$(LINK) $(netlink_audit_OBJECTS) $(netlink_audit_LDADD) $(LIBS) +netlink_audit--pidns-translation$(EXEEXT): $(netlink_audit__pidns_translation_OBJECTS) $(netlink_audit__pidns_translation_DEPENDENCIES) $(EXTRA_netlink_audit__pidns_translation_DEPENDENCIES) + @rm -f netlink_audit--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(netlink_audit__pidns_translation_OBJECTS) $(netlink_audit__pidns_translation_LDADD) $(LIBS) + netlink_crypto$(EXEEXT): $(netlink_crypto_OBJECTS) $(netlink_crypto_DEPENDENCIES) $(EXTRA_netlink_crypto_DEPENDENCIES) @rm -f netlink_crypto$(EXEEXT) $(AM_V_CCLD)$(LINK) $(netlink_crypto_OBJECTS) $(netlink_crypto_LDADD) $(LIBS) @@ -6461,6 +8763,10 @@ nlattr_ifla_xdp$(EXEEXT): $(nlattr_ifla_xdp_OBJECTS) $(nlattr_ifla_xdp_DEPENDENC @rm -f nlattr_ifla_xdp$(EXEEXT) $(AM_V_CCLD)$(LINK) $(nlattr_ifla_xdp_OBJECTS) $(nlattr_ifla_xdp_LDADD) $(LIBS) +nlattr_ifla_xdp-y$(EXEEXT): $(nlattr_ifla_xdp_y_OBJECTS) $(nlattr_ifla_xdp_y_DEPENDENCIES) $(EXTRA_nlattr_ifla_xdp_y_DEPENDENCIES) + @rm -f nlattr_ifla_xdp-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(nlattr_ifla_xdp_y_OBJECTS) $(nlattr_ifla_xdp_y_LDADD) $(LIBS) + nlattr_inet_diag_msg$(EXEEXT): $(nlattr_inet_diag_msg_OBJECTS) $(nlattr_inet_diag_msg_DEPENDENCIES) $(EXTRA_nlattr_inet_diag_msg_DEPENDENCIES) @rm -f nlattr_inet_diag_msg$(EXEEXT) $(AM_V_CCLD)$(LINK) $(nlattr_inet_diag_msg_OBJECTS) $(nlattr_inet_diag_msg_LDADD) $(LIBS) @@ -6601,10 +8907,58 @@ open$(EXEEXT): $(open_OBJECTS) $(open_DEPENDENCIES) $(EXTRA_open_DEPENDENCIES) @rm -f open$(EXEEXT) $(AM_V_CCLD)$(LINK) $(open_OBJECTS) $(open_LDADD) $(LIBS) +open_tree$(EXEEXT): $(open_tree_OBJECTS) $(open_tree_DEPENDENCIES) $(EXTRA_open_tree_DEPENDENCIES) + @rm -f open_tree$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(open_tree_OBJECTS) $(open_tree_LDADD) $(LIBS) + +open_tree-P$(EXEEXT): $(open_tree_P_OBJECTS) $(open_tree_P_DEPENDENCIES) $(EXTRA_open_tree_P_DEPENDENCIES) + @rm -f open_tree-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(open_tree_P_OBJECTS) $(open_tree_P_LDADD) $(LIBS) + openat$(EXEEXT): $(openat_OBJECTS) $(openat_DEPENDENCIES) $(EXTRA_openat_DEPENDENCIES) @rm -f openat$(EXEEXT) $(AM_V_CCLD)$(LINK) $(openat_OBJECTS) $(openat_LDADD) $(LIBS) +openat2$(EXEEXT): $(openat2_OBJECTS) $(openat2_DEPENDENCIES) $(EXTRA_openat2_DEPENDENCIES) + @rm -f openat2$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_OBJECTS) $(openat2_LDADD) $(LIBS) + +openat2-Xabbrev$(EXEEXT): $(openat2_Xabbrev_OBJECTS) $(openat2_Xabbrev_DEPENDENCIES) $(EXTRA_openat2_Xabbrev_DEPENDENCIES) + @rm -f openat2-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_Xabbrev_OBJECTS) $(openat2_Xabbrev_LDADD) $(LIBS) + +openat2-Xraw$(EXEEXT): $(openat2_Xraw_OBJECTS) $(openat2_Xraw_DEPENDENCIES) $(EXTRA_openat2_Xraw_DEPENDENCIES) + @rm -f openat2-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_Xraw_OBJECTS) $(openat2_Xraw_LDADD) $(LIBS) + +openat2-Xverbose$(EXEEXT): $(openat2_Xverbose_OBJECTS) $(openat2_Xverbose_DEPENDENCIES) $(EXTRA_openat2_Xverbose_DEPENDENCIES) + @rm -f openat2-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_Xverbose_OBJECTS) $(openat2_Xverbose_LDADD) $(LIBS) + +openat2-v$(EXEEXT): $(openat2_v_OBJECTS) $(openat2_v_DEPENDENCIES) $(EXTRA_openat2_v_DEPENDENCIES) + @rm -f openat2-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_v_OBJECTS) $(openat2_v_LDADD) $(LIBS) + +openat2-v-y$(EXEEXT): $(openat2_v_y_OBJECTS) $(openat2_v_y_DEPENDENCIES) $(EXTRA_openat2_v_y_DEPENDENCIES) + @rm -f openat2-v-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_v_y_OBJECTS) $(openat2_v_y_LDADD) $(LIBS) + +openat2-v-y-Xabbrev$(EXEEXT): $(openat2_v_y_Xabbrev_OBJECTS) $(openat2_v_y_Xabbrev_DEPENDENCIES) $(EXTRA_openat2_v_y_Xabbrev_DEPENDENCIES) + @rm -f openat2-v-y-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_v_y_Xabbrev_OBJECTS) $(openat2_v_y_Xabbrev_LDADD) $(LIBS) + +openat2-v-y-Xraw$(EXEEXT): $(openat2_v_y_Xraw_OBJECTS) $(openat2_v_y_Xraw_DEPENDENCIES) $(EXTRA_openat2_v_y_Xraw_DEPENDENCIES) + @rm -f openat2-v-y-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_v_y_Xraw_OBJECTS) $(openat2_v_y_Xraw_LDADD) $(LIBS) + +openat2-v-y-Xverbose$(EXEEXT): $(openat2_v_y_Xverbose_OBJECTS) $(openat2_v_y_Xverbose_DEPENDENCIES) $(EXTRA_openat2_v_y_Xverbose_DEPENDENCIES) + @rm -f openat2-v-y-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_v_y_Xverbose_OBJECTS) $(openat2_v_y_Xverbose_LDADD) $(LIBS) + +openat2-y$(EXEEXT): $(openat2_y_OBJECTS) $(openat2_y_DEPENDENCIES) $(EXTRA_openat2_y_DEPENDENCIES) + @rm -f openat2-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_y_OBJECTS) $(openat2_y_LDADD) $(LIBS) + orphaned_process_group$(EXEEXT): $(orphaned_process_group_OBJECTS) $(orphaned_process_group_DEPENDENCIES) $(EXTRA_orphaned_process_group_DEPENDENCIES) @rm -f orphaned_process_group$(EXEEXT) $(AM_V_CCLD)$(LINK) $(orphaned_process_group_OBJECTS) $(orphaned_process_group_LDADD) $(LIBS) @@ -6649,10 +9003,62 @@ personality-Xverbose$(EXEEXT): $(personality_Xverbose_OBJECTS) $(personality_Xve @rm -f personality-Xverbose$(EXEEXT) $(AM_V_CCLD)$(LINK) $(personality_Xverbose_OBJECTS) $(personality_Xverbose_LDADD) $(LIBS) +pidfd_getfd$(EXEEXT): $(pidfd_getfd_OBJECTS) $(pidfd_getfd_DEPENDENCIES) $(EXTRA_pidfd_getfd_DEPENDENCIES) + @rm -f pidfd_getfd$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_getfd_OBJECTS) $(pidfd_getfd_LDADD) $(LIBS) + +pidfd_getfd-y$(EXEEXT): $(pidfd_getfd_y_OBJECTS) $(pidfd_getfd_y_DEPENDENCIES) $(EXTRA_pidfd_getfd_y_DEPENDENCIES) + @rm -f pidfd_getfd-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_getfd_y_OBJECTS) $(pidfd_getfd_y_LDADD) $(LIBS) + +pidfd_getfd-yy$(EXEEXT): $(pidfd_getfd_yy_OBJECTS) $(pidfd_getfd_yy_DEPENDENCIES) $(EXTRA_pidfd_getfd_yy_DEPENDENCIES) + @rm -f pidfd_getfd-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_getfd_yy_OBJECTS) $(pidfd_getfd_yy_LDADD) $(LIBS) + +pidfd_open$(EXEEXT): $(pidfd_open_OBJECTS) $(pidfd_open_DEPENDENCIES) $(EXTRA_pidfd_open_DEPENDENCIES) + @rm -f pidfd_open$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_open_OBJECTS) $(pidfd_open_LDADD) $(LIBS) + +pidfd_open--decode-fd-path$(EXEEXT): $(pidfd_open__decode_fd_path_OBJECTS) $(pidfd_open__decode_fd_path_DEPENDENCIES) $(EXTRA_pidfd_open__decode_fd_path_DEPENDENCIES) + @rm -f pidfd_open--decode-fd-path$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_open__decode_fd_path_OBJECTS) $(pidfd_open__decode_fd_path_LDADD) $(LIBS) + +pidfd_open--decode-fd-pidfd$(EXEEXT): $(pidfd_open__decode_fd_pidfd_OBJECTS) $(pidfd_open__decode_fd_pidfd_DEPENDENCIES) $(EXTRA_pidfd_open__decode_fd_pidfd_DEPENDENCIES) + @rm -f pidfd_open--decode-fd-pidfd$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_open__decode_fd_pidfd_OBJECTS) $(pidfd_open__decode_fd_pidfd_LDADD) $(LIBS) + +pidfd_open--decode-fd-socket$(EXEEXT): $(pidfd_open__decode_fd_socket_OBJECTS) $(pidfd_open__decode_fd_socket_DEPENDENCIES) $(EXTRA_pidfd_open__decode_fd_socket_DEPENDENCIES) + @rm -f pidfd_open--decode-fd-socket$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_open__decode_fd_socket_OBJECTS) $(pidfd_open__decode_fd_socket_LDADD) $(LIBS) + +pidfd_open--pidns-translation$(EXEEXT): $(pidfd_open__pidns_translation_OBJECTS) $(pidfd_open__pidns_translation_DEPENDENCIES) $(EXTRA_pidfd_open__pidns_translation_DEPENDENCIES) + @rm -f pidfd_open--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_open__pidns_translation_OBJECTS) $(pidfd_open__pidns_translation_LDADD) $(LIBS) + +pidfd_open-P$(EXEEXT): $(pidfd_open_P_OBJECTS) $(pidfd_open_P_DEPENDENCIES) $(EXTRA_pidfd_open_P_DEPENDENCIES) + @rm -f pidfd_open-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_open_P_OBJECTS) $(pidfd_open_P_LDADD) $(LIBS) + +pidfd_open-y$(EXEEXT): $(pidfd_open_y_OBJECTS) $(pidfd_open_y_DEPENDENCIES) $(EXTRA_pidfd_open_y_DEPENDENCIES) + @rm -f pidfd_open-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_open_y_OBJECTS) $(pidfd_open_y_LDADD) $(LIBS) + +pidfd_open-yy$(EXEEXT): $(pidfd_open_yy_OBJECTS) $(pidfd_open_yy_DEPENDENCIES) $(EXTRA_pidfd_open_yy_DEPENDENCIES) + @rm -f pidfd_open-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_open_yy_OBJECTS) $(pidfd_open_yy_LDADD) $(LIBS) + pidfd_send_signal$(EXEEXT): $(pidfd_send_signal_OBJECTS) $(pidfd_send_signal_DEPENDENCIES) $(EXTRA_pidfd_send_signal_DEPENDENCIES) @rm -f pidfd_send_signal$(EXEEXT) $(AM_V_CCLD)$(LINK) $(pidfd_send_signal_OBJECTS) $(pidfd_send_signal_LDADD) $(LIBS) +pidfd_send_signal--pidns-translation$(EXEEXT): $(pidfd_send_signal__pidns_translation_OBJECTS) $(pidfd_send_signal__pidns_translation_DEPENDENCIES) $(EXTRA_pidfd_send_signal__pidns_translation_DEPENDENCIES) + @rm -f pidfd_send_signal--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_send_signal__pidns_translation_OBJECTS) $(pidfd_send_signal__pidns_translation_LDADD) $(LIBS) + +pidns-cache$(EXEEXT): $(pidns_cache_OBJECTS) $(pidns_cache_DEPENDENCIES) $(EXTRA_pidns_cache_DEPENDENCIES) + @rm -f pidns-cache$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidns_cache_OBJECTS) $(pidns_cache_LDADD) $(LIBS) + pipe$(EXEEXT): $(pipe_OBJECTS) $(pipe_DEPENDENCIES) $(EXTRA_pipe_DEPENDENCIES) @rm -f pipe$(EXEEXT) $(AM_V_CCLD)$(LINK) $(pipe_OBJECTS) $(pipe_LDADD) $(LIBS) @@ -6757,6 +9163,10 @@ print_maxfd$(EXEEXT): $(print_maxfd_OBJECTS) $(print_maxfd_DEPENDENCIES) $(EXTRA @rm -f print_maxfd$(EXEEXT) $(AM_V_CCLD)$(LINK) $(print_maxfd_OBJECTS) $(print_maxfd_LDADD) $(LIBS) +print_ppid_tracerpid$(EXEEXT): $(print_ppid_tracerpid_OBJECTS) $(print_ppid_tracerpid_DEPENDENCIES) $(EXTRA_print_ppid_tracerpid_DEPENDENCIES) + @rm -f print_ppid_tracerpid$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(print_ppid_tracerpid_OBJECTS) $(print_ppid_tracerpid_LDADD) $(LIBS) + printpath-umovestr$(EXEEXT): $(printpath_umovestr_OBJECTS) $(printpath_umovestr_DEPENDENCIES) $(EXTRA_printpath_umovestr_DEPENDENCIES) @rm -f printpath-umovestr$(EXEEXT) $(AM_V_CCLD)$(LINK) $(printpath_umovestr_OBJECTS) $(printpath_umovestr_LDADD) $(LIBS) @@ -6801,14 +9211,26 @@ prlimit64$(EXEEXT): $(prlimit64_OBJECTS) $(prlimit64_DEPENDENCIES) $(EXTRA_prlim @rm -f prlimit64$(EXEEXT) $(AM_V_CCLD)$(LINK) $(prlimit64_OBJECTS) $(prlimit64_LDADD) $(LIBS) +prlimit64--pidns-translation$(EXEEXT): $(prlimit64__pidns_translation_OBJECTS) $(prlimit64__pidns_translation_DEPENDENCIES) $(EXTRA_prlimit64__pidns_translation_DEPENDENCIES) + @rm -f prlimit64--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(prlimit64__pidns_translation_OBJECTS) $(prlimit64__pidns_translation_LDADD) $(LIBS) + process_vm_readv$(EXEEXT): $(process_vm_readv_OBJECTS) $(process_vm_readv_DEPENDENCIES) $(EXTRA_process_vm_readv_DEPENDENCIES) @rm -f process_vm_readv$(EXEEXT) $(AM_V_CCLD)$(LINK) $(process_vm_readv_OBJECTS) $(process_vm_readv_LDADD) $(LIBS) +process_vm_readv--pidns-translation$(EXEEXT): $(process_vm_readv__pidns_translation_OBJECTS) $(process_vm_readv__pidns_translation_DEPENDENCIES) $(EXTRA_process_vm_readv__pidns_translation_DEPENDENCIES) + @rm -f process_vm_readv--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(process_vm_readv__pidns_translation_OBJECTS) $(process_vm_readv__pidns_translation_LDADD) $(LIBS) + process_vm_writev$(EXEEXT): $(process_vm_writev_OBJECTS) $(process_vm_writev_DEPENDENCIES) $(EXTRA_process_vm_writev_DEPENDENCIES) @rm -f process_vm_writev$(EXEEXT) $(AM_V_CCLD)$(LINK) $(process_vm_writev_OBJECTS) $(process_vm_writev_LDADD) $(LIBS) +process_vm_writev--pidns-translation$(EXEEXT): $(process_vm_writev__pidns_translation_OBJECTS) $(process_vm_writev__pidns_translation_DEPENDENCIES) $(EXTRA_process_vm_writev__pidns_translation_DEPENDENCIES) + @rm -f process_vm_writev--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(process_vm_writev__pidns_translation_OBJECTS) $(process_vm_writev__pidns_translation_LDADD) $(LIBS) + pselect6$(EXEEXT): $(pselect6_OBJECTS) $(pselect6_DEPENDENCIES) $(EXTRA_pselect6_DEPENDENCIES) @rm -f pselect6$(EXEEXT) $(AM_V_CCLD)$(LINK) $(pselect6_OBJECTS) $(pselect6_LDADD) $(LIBS) @@ -6917,10 +9339,18 @@ reboot$(EXEEXT): $(reboot_OBJECTS) $(reboot_DEPENDENCIES) $(EXTRA_reboot_DEPENDE @rm -f reboot$(EXEEXT) $(AM_V_CCLD)$(LINK) $(reboot_OBJECTS) $(reboot_LDADD) $(LIBS) +recv-MSG_TRUNC$(EXEEXT): $(recv_MSG_TRUNC_OBJECTS) $(recv_MSG_TRUNC_DEPENDENCIES) $(EXTRA_recv_MSG_TRUNC_DEPENDENCIES) + @rm -f recv-MSG_TRUNC$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(recv_MSG_TRUNC_OBJECTS) $(recv_MSG_TRUNC_LDADD) $(LIBS) + recvfrom$(EXEEXT): $(recvfrom_OBJECTS) $(recvfrom_DEPENDENCIES) $(EXTRA_recvfrom_DEPENDENCIES) @rm -f recvfrom$(EXEEXT) $(AM_V_CCLD)$(LINK) $(recvfrom_OBJECTS) $(recvfrom_LDADD) $(LIBS) +recvfrom-MSG_TRUNC$(EXEEXT): $(recvfrom_MSG_TRUNC_OBJECTS) $(recvfrom_MSG_TRUNC_DEPENDENCIES) $(EXTRA_recvfrom_MSG_TRUNC_DEPENDENCIES) + @rm -f recvfrom-MSG_TRUNC$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(recvfrom_MSG_TRUNC_OBJECTS) $(recvfrom_MSG_TRUNC_LDADD) $(LIBS) + recvmmsg-timeout$(EXEEXT): $(recvmmsg_timeout_OBJECTS) $(recvmmsg_timeout_DEPENDENCIES) $(EXTRA_recvmmsg_timeout_DEPENDENCIES) @rm -f recvmmsg-timeout$(EXEEXT) $(AM_V_CCLD)$(LINK) $(recvmmsg_timeout_OBJECTS) $(recvmmsg_timeout_LDADD) $(LIBS) @@ -6993,6 +9423,10 @@ rt_sigqueueinfo$(EXEEXT): $(rt_sigqueueinfo_OBJECTS) $(rt_sigqueueinfo_DEPENDENC @rm -f rt_sigqueueinfo$(EXEEXT) $(AM_V_CCLD)$(LINK) $(rt_sigqueueinfo_OBJECTS) $(rt_sigqueueinfo_LDADD) $(LIBS) +rt_sigqueueinfo--pidns-translation$(EXEEXT): $(rt_sigqueueinfo__pidns_translation_OBJECTS) $(rt_sigqueueinfo__pidns_translation_DEPENDENCIES) $(EXTRA_rt_sigqueueinfo__pidns_translation_DEPENDENCIES) + @rm -f rt_sigqueueinfo--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(rt_sigqueueinfo__pidns_translation_OBJECTS) $(rt_sigqueueinfo__pidns_translation_LDADD) $(LIBS) + rt_sigreturn$(EXEEXT): $(rt_sigreturn_OBJECTS) $(rt_sigreturn_DEPENDENCIES) $(EXTRA_rt_sigreturn_DEPENDENCIES) @rm -f rt_sigreturn$(EXEEXT) $(AM_V_CCLD)$(LINK) $(rt_sigreturn_OBJECTS) $(rt_sigreturn_LDADD) $(LIBS) @@ -7009,6 +9443,10 @@ rt_tgsigqueueinfo$(EXEEXT): $(rt_tgsigqueueinfo_OBJECTS) $(rt_tgsigqueueinfo_DEP @rm -f rt_tgsigqueueinfo$(EXEEXT) $(AM_V_CCLD)$(LINK) $(rt_tgsigqueueinfo_OBJECTS) $(rt_tgsigqueueinfo_LDADD) $(LIBS) +rt_tgsigqueueinfo--pidns-translation$(EXEEXT): $(rt_tgsigqueueinfo__pidns_translation_OBJECTS) $(rt_tgsigqueueinfo__pidns_translation_DEPENDENCIES) $(EXTRA_rt_tgsigqueueinfo__pidns_translation_DEPENDENCIES) + @rm -f rt_tgsigqueueinfo--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(rt_tgsigqueueinfo__pidns_translation_OBJECTS) $(rt_tgsigqueueinfo__pidns_translation_LDADD) $(LIBS) + run_expect_termsig$(EXEEXT): $(run_expect_termsig_OBJECTS) $(run_expect_termsig_DEPENDENCIES) $(EXTRA_run_expect_termsig_DEPENDENCIES) @rm -f run_expect_termsig$(EXEEXT) $(AM_V_CCLD)$(LINK) $(run_expect_termsig_OBJECTS) $(run_expect_termsig_LDADD) $(LIBS) @@ -7049,18 +9487,34 @@ sched_xetaffinity$(EXEEXT): $(sched_xetaffinity_OBJECTS) $(sched_xetaffinity_DEP @rm -f sched_xetaffinity$(EXEEXT) $(AM_V_CCLD)$(LINK) $(sched_xetaffinity_OBJECTS) $(sched_xetaffinity_LDADD) $(LIBS) +sched_xetaffinity--pidns-translation$(EXEEXT): $(sched_xetaffinity__pidns_translation_OBJECTS) $(sched_xetaffinity__pidns_translation_DEPENDENCIES) $(EXTRA_sched_xetaffinity__pidns_translation_DEPENDENCIES) + @rm -f sched_xetaffinity--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(sched_xetaffinity__pidns_translation_OBJECTS) $(sched_xetaffinity__pidns_translation_LDADD) $(LIBS) + sched_xetattr$(EXEEXT): $(sched_xetattr_OBJECTS) $(sched_xetattr_DEPENDENCIES) $(EXTRA_sched_xetattr_DEPENDENCIES) @rm -f sched_xetattr$(EXEEXT) $(AM_V_CCLD)$(LINK) $(sched_xetattr_OBJECTS) $(sched_xetattr_LDADD) $(LIBS) +sched_xetattr--pidns-translation$(EXEEXT): $(sched_xetattr__pidns_translation_OBJECTS) $(sched_xetattr__pidns_translation_DEPENDENCIES) $(EXTRA_sched_xetattr__pidns_translation_DEPENDENCIES) + @rm -f sched_xetattr--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(sched_xetattr__pidns_translation_OBJECTS) $(sched_xetattr__pidns_translation_LDADD) $(LIBS) + sched_xetparam$(EXEEXT): $(sched_xetparam_OBJECTS) $(sched_xetparam_DEPENDENCIES) $(EXTRA_sched_xetparam_DEPENDENCIES) @rm -f sched_xetparam$(EXEEXT) $(AM_V_CCLD)$(LINK) $(sched_xetparam_OBJECTS) $(sched_xetparam_LDADD) $(LIBS) +sched_xetparam--pidns-translation$(EXEEXT): $(sched_xetparam__pidns_translation_OBJECTS) $(sched_xetparam__pidns_translation_DEPENDENCIES) $(EXTRA_sched_xetparam__pidns_translation_DEPENDENCIES) + @rm -f sched_xetparam--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(sched_xetparam__pidns_translation_OBJECTS) $(sched_xetparam__pidns_translation_LDADD) $(LIBS) + sched_xetscheduler$(EXEEXT): $(sched_xetscheduler_OBJECTS) $(sched_xetscheduler_DEPENDENCIES) $(EXTRA_sched_xetscheduler_DEPENDENCIES) @rm -f sched_xetscheduler$(EXEEXT) $(AM_V_CCLD)$(LINK) $(sched_xetscheduler_OBJECTS) $(sched_xetscheduler_LDADD) $(LIBS) +sched_xetscheduler--pidns-translation$(EXEEXT): $(sched_xetscheduler__pidns_translation_OBJECTS) $(sched_xetscheduler__pidns_translation_DEPENDENCIES) $(EXTRA_sched_xetscheduler__pidns_translation_DEPENDENCIES) + @rm -f sched_xetscheduler--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(sched_xetscheduler__pidns_translation_OBJECTS) $(sched_xetscheduler__pidns_translation_LDADD) $(LIBS) + sched_yield$(EXEEXT): $(sched_yield_OBJECTS) $(sched_yield_DEPENDENCIES) $(EXTRA_sched_yield_DEPENDENCIES) @rm -f sched_yield$(EXEEXT) $(AM_V_CCLD)$(LINK) $(sched_yield_OBJECTS) $(sched_yield_LDADD) $(LIBS) @@ -7097,6 +9551,14 @@ semop$(EXEEXT): $(semop_OBJECTS) $(semop_DEPENDENCIES) $(EXTRA_semop_DEPENDENCIE @rm -f semop$(EXEEXT) $(AM_V_CCLD)$(LINK) $(semop_OBJECTS) $(semop_LDADD) $(LIBS) +semop-indirect$(EXEEXT): $(semop_indirect_OBJECTS) $(semop_indirect_DEPENDENCIES) $(EXTRA_semop_indirect_DEPENDENCIES) + @rm -f semop-indirect$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(semop_indirect_OBJECTS) $(semop_indirect_LDADD) $(LIBS) + +semtimedop$(EXEEXT): $(semtimedop_OBJECTS) $(semtimedop_DEPENDENCIES) $(EXTRA_semtimedop_DEPENDENCIES) + @rm -f semtimedop$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(semtimedop_OBJECTS) $(semtimedop_LDADD) $(LIBS) + sendfile$(EXEEXT): $(sendfile_OBJECTS) $(sendfile_DEPENDENCIES) $(EXTRA_sendfile_DEPENDENCIES) @rm -f sendfile$(EXEEXT) $(AM_V_CCLD)$(LINK) $(sendfile_OBJECTS) $(sendfile_LDADD) $(LIBS) @@ -7109,6 +9571,18 @@ set_mempolicy$(EXEEXT): $(set_mempolicy_OBJECTS) $(set_mempolicy_DEPENDENCIES) $ @rm -f set_mempolicy$(EXEEXT) $(AM_V_CCLD)$(LINK) $(set_mempolicy_OBJECTS) $(set_mempolicy_LDADD) $(LIBS) +set_mempolicy-Xabbrev$(EXEEXT): $(set_mempolicy_Xabbrev_OBJECTS) $(set_mempolicy_Xabbrev_DEPENDENCIES) $(EXTRA_set_mempolicy_Xabbrev_DEPENDENCIES) + @rm -f set_mempolicy-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(set_mempolicy_Xabbrev_OBJECTS) $(set_mempolicy_Xabbrev_LDADD) $(LIBS) + +set_mempolicy-Xraw$(EXEEXT): $(set_mempolicy_Xraw_OBJECTS) $(set_mempolicy_Xraw_DEPENDENCIES) $(EXTRA_set_mempolicy_Xraw_DEPENDENCIES) + @rm -f set_mempolicy-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(set_mempolicy_Xraw_OBJECTS) $(set_mempolicy_Xraw_LDADD) $(LIBS) + +set_mempolicy-Xverbose$(EXEEXT): $(set_mempolicy_Xverbose_OBJECTS) $(set_mempolicy_Xverbose_DEPENDENCIES) $(EXTRA_set_mempolicy_Xverbose_DEPENDENCIES) + @rm -f set_mempolicy-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(set_mempolicy_Xverbose_OBJECTS) $(set_mempolicy_Xverbose_LDADD) $(LIBS) + set_ptracer_any$(EXEEXT): $(set_ptracer_any_OBJECTS) $(set_ptracer_any_DEPENDENCIES) $(EXTRA_set_ptracer_any_DEPENDENCIES) @rm -f set_ptracer_any$(EXEEXT) $(AM_V_CCLD)$(LINK) $(set_ptracer_any_OBJECTS) $(set_ptracer_any_LDADD) $(LIBS) @@ -7165,6 +9639,10 @@ setns$(EXEEXT): $(setns_OBJECTS) $(setns_DEPENDENCIES) $(EXTRA_setns_DEPENDENCIE @rm -f setns$(EXEEXT) $(AM_V_CCLD)$(LINK) $(setns_OBJECTS) $(setns_LDADD) $(LIBS) +setpgrp-exec$(EXEEXT): $(setpgrp_exec_OBJECTS) $(setpgrp_exec_DEPENDENCIES) $(EXTRA_setpgrp_exec_DEPENDENCIES) + @rm -f setpgrp-exec$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(setpgrp_exec_OBJECTS) $(setpgrp_exec_LDADD) $(LIBS) + setregid$(EXEEXT): $(setregid_OBJECTS) $(setregid_DEPENDENCIES) $(EXTRA_setregid_DEPENDENCIES) @rm -f setregid$(EXEEXT) $(AM_V_CCLD)$(LINK) $(setregid_OBJECTS) $(setregid_LDADD) $(LIBS) @@ -7249,6 +9727,10 @@ signal_receive$(EXEEXT): $(signal_receive_OBJECTS) $(signal_receive_DEPENDENCIES @rm -f signal_receive$(EXEEXT) $(AM_V_CCLD)$(LINK) $(signal_receive_OBJECTS) $(signal_receive_LDADD) $(LIBS) +signal_receive--pidns-translation$(EXEEXT): $(signal_receive__pidns_translation_OBJECTS) $(signal_receive__pidns_translation_DEPENDENCIES) $(EXTRA_signal_receive__pidns_translation_DEPENDENCIES) + @rm -f signal_receive--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(signal_receive__pidns_translation_OBJECTS) $(signal_receive__pidns_translation_LDADD) $(LIBS) + signalfd4$(EXEEXT): $(signalfd4_OBJECTS) $(signalfd4_DEPENDENCIES) $(EXTRA_signalfd4_DEPENDENCIES) @rm -f signalfd4$(EXEEXT) $(AM_V_CCLD)$(LINK) $(signalfd4_OBJECTS) $(signalfd4_LDADD) $(LIBS) @@ -7285,6 +9767,10 @@ so_peercred$(EXEEXT): $(so_peercred_OBJECTS) $(so_peercred_DEPENDENCIES) $(EXTRA @rm -f so_peercred$(EXEEXT) $(AM_V_CCLD)$(LINK) $(so_peercred_OBJECTS) $(so_peercred_LDADD) $(LIBS) +so_peercred--pidns-translation$(EXEEXT): $(so_peercred__pidns_translation_OBJECTS) $(so_peercred__pidns_translation_DEPENDENCIES) $(EXTRA_so_peercred__pidns_translation_DEPENDENCIES) + @rm -f so_peercred--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(so_peercred__pidns_translation_OBJECTS) $(so_peercred__pidns_translation_LDADD) $(LIBS) + so_peercred-Xabbrev$(EXEEXT): $(so_peercred_Xabbrev_OBJECTS) $(so_peercred_Xabbrev_DEPENDENCIES) $(EXTRA_so_peercred_Xabbrev_DEPENDENCIES) @rm -f so_peercred-Xabbrev$(EXEEXT) $(AM_V_CCLD)$(LINK) $(so_peercred_Xabbrev_OBJECTS) $(so_peercred_Xabbrev_LDADD) $(LIBS) @@ -7345,6 +9831,10 @@ stack-fcall$(EXEEXT): $(stack_fcall_OBJECTS) $(stack_fcall_DEPENDENCIES) $(EXTRA @rm -f stack-fcall$(EXEEXT) $(AM_V_CCLD)$(LINK) $(stack_fcall_OBJECTS) $(stack_fcall_LDADD) $(LIBS) +stack-fcall-attach$(EXEEXT): $(stack_fcall_attach_OBJECTS) $(stack_fcall_attach_DEPENDENCIES) $(EXTRA_stack_fcall_attach_DEPENDENCIES) + @rm -f stack-fcall-attach$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(stack_fcall_attach_OBJECTS) $(stack_fcall_attach_LDADD) $(LIBS) + stack-fcall-mangled$(EXEEXT): $(stack_fcall_mangled_OBJECTS) $(stack_fcall_mangled_DEPENDENCIES) $(EXTRA_stack_fcall_mangled_DEPENDENCIES) @rm -f stack-fcall-mangled$(EXEEXT) $(AM_V_CCLD)$(LINK) $(stack_fcall_mangled_OBJECTS) $(stack_fcall_mangled_LDADD) $(LIBS) @@ -7365,10 +9855,82 @@ statfs64$(EXEEXT): $(statfs64_OBJECTS) $(statfs64_DEPENDENCIES) $(EXTRA_statfs64 @rm -f statfs64$(EXEEXT) $(AM_V_CCLD)$(LINK) $(statfs64_OBJECTS) $(statfs64_LDADD) $(LIBS) +status-all$(EXEEXT): $(status_all_OBJECTS) $(status_all_DEPENDENCIES) $(EXTRA_status_all_DEPENDENCIES) + @rm -f status-all$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_all_OBJECTS) $(status_all_LDADD) $(LIBS) + +status-failed$(EXEEXT): $(status_failed_OBJECTS) $(status_failed_DEPENDENCIES) $(EXTRA_status_failed_DEPENDENCIES) + @rm -f status-failed$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_failed_OBJECTS) $(status_failed_LDADD) $(LIBS) + +status-failed-long$(EXEEXT): $(status_failed_long_OBJECTS) $(status_failed_long_DEPENDENCIES) $(EXTRA_status_failed_long_DEPENDENCIES) + @rm -f status-failed-long$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_failed_long_OBJECTS) $(status_failed_long_LDADD) $(LIBS) + +status-failed-status$(EXEEXT): $(status_failed_status_OBJECTS) $(status_failed_status_DEPENDENCIES) $(EXTRA_status_failed_status_DEPENDENCIES) + @rm -f status-failed-status$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_failed_status_OBJECTS) $(status_failed_status_LDADD) $(LIBS) + +status-none$(EXEEXT): $(status_none_OBJECTS) $(status_none_DEPENDENCIES) $(EXTRA_status_none_DEPENDENCIES) + @rm -f status-none$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_none_OBJECTS) $(status_none_LDADD) $(LIBS) + +status-none-f$(EXEEXT): $(status_none_f_OBJECTS) $(status_none_f_DEPENDENCIES) $(EXTRA_status_none_f_DEPENDENCIES) + @rm -f status-none-f$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_none_f_OBJECTS) $(status_none_f_LDADD) $(LIBS) + +status-none-threads$(EXEEXT): $(status_none_threads_OBJECTS) $(status_none_threads_DEPENDENCIES) $(EXTRA_status_none_threads_DEPENDENCIES) + @rm -f status-none-threads$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_none_threads_OBJECTS) $(status_none_threads_LDADD) $(LIBS) + +status-successful$(EXEEXT): $(status_successful_OBJECTS) $(status_successful_DEPENDENCIES) $(EXTRA_status_successful_DEPENDENCIES) + @rm -f status-successful$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_successful_OBJECTS) $(status_successful_LDADD) $(LIBS) + +status-successful-long$(EXEEXT): $(status_successful_long_OBJECTS) $(status_successful_long_DEPENDENCIES) $(EXTRA_status_successful_long_DEPENDENCIES) + @rm -f status-successful-long$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_successful_long_OBJECTS) $(status_successful_long_LDADD) $(LIBS) + +status-successful-status$(EXEEXT): $(status_successful_status_OBJECTS) $(status_successful_status_DEPENDENCIES) $(EXTRA_status_successful_status_DEPENDENCIES) + @rm -f status-successful-status$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_successful_status_OBJECTS) $(status_successful_status_LDADD) $(LIBS) + +status-unfinished$(EXEEXT): $(status_unfinished_OBJECTS) $(status_unfinished_DEPENDENCIES) $(EXTRA_status_unfinished_DEPENDENCIES) + @rm -f status-unfinished$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_unfinished_OBJECTS) $(status_unfinished_LDADD) $(LIBS) + +status-unfinished-threads$(EXEEXT): $(status_unfinished_threads_OBJECTS) $(status_unfinished_threads_DEPENDENCIES) $(EXTRA_status_unfinished_threads_DEPENDENCIES) + @rm -f status-unfinished-threads$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_unfinished_threads_OBJECTS) $(status_unfinished_threads_LDADD) $(LIBS) + statx$(EXEEXT): $(statx_OBJECTS) $(statx_DEPENDENCIES) $(EXTRA_statx_DEPENDENCIES) @rm -f statx$(EXEEXT) $(AM_V_CCLD)$(LINK) $(statx_OBJECTS) $(statx_LDADD) $(LIBS) +strace--strings-in-hex$(EXEEXT): $(strace__strings_in_hex_OBJECTS) $(strace__strings_in_hex_DEPENDENCIES) $(EXTRA_strace__strings_in_hex_DEPENDENCIES) + @rm -f strace--strings-in-hex$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(strace__strings_in_hex_OBJECTS) $(strace__strings_in_hex_LDADD) $(LIBS) + +strace--strings-in-hex-all$(EXEEXT): $(strace__strings_in_hex_all_OBJECTS) $(strace__strings_in_hex_all_DEPENDENCIES) $(EXTRA_strace__strings_in_hex_all_DEPENDENCIES) + @rm -f strace--strings-in-hex-all$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(strace__strings_in_hex_all_OBJECTS) $(strace__strings_in_hex_all_LDADD) $(LIBS) + +strace--strings-in-hex-non-ascii$(EXEEXT): $(strace__strings_in_hex_non_ascii_OBJECTS) $(strace__strings_in_hex_non_ascii_DEPENDENCIES) $(EXTRA_strace__strings_in_hex_non_ascii_DEPENDENCIES) + @rm -f strace--strings-in-hex-non-ascii$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(strace__strings_in_hex_non_ascii_OBJECTS) $(strace__strings_in_hex_non_ascii_LDADD) $(LIBS) + +strace-n$(EXEEXT): $(strace_n_OBJECTS) $(strace_n_DEPENDENCIES) $(EXTRA_strace_n_DEPENDENCIES) + @rm -f strace-n$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(strace_n_OBJECTS) $(strace_n_LDADD) $(LIBS) + +strace-x$(EXEEXT): $(strace_x_OBJECTS) $(strace_x_DEPENDENCIES) $(EXTRA_strace_x_DEPENDENCIES) + @rm -f strace-x$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(strace_x_OBJECTS) $(strace_x_LDADD) $(LIBS) + +strace-xx$(EXEEXT): $(strace_xx_OBJECTS) $(strace_xx_DEPENDENCIES) $(EXTRA_strace_xx_DEPENDENCIES) + @rm -f strace-xx$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(strace_xx_OBJECTS) $(strace_xx_LDADD) $(LIBS) + swap$(EXEEXT): $(swap_OBJECTS) $(swap_DEPENDENCIES) $(EXTRA_swap_DEPENDENCIES) @rm -f swap$(EXEEXT) $(AM_V_CCLD)$(LINK) $(swap_OBJECTS) $(swap_LDADD) $(LIBS) @@ -7405,14 +9967,42 @@ syslog$(EXEEXT): $(syslog_OBJECTS) $(syslog_DEPENDENCIES) $(EXTRA_syslog_DEPENDE @rm -f syslog$(EXEEXT) $(AM_V_CCLD)$(LINK) $(syslog_OBJECTS) $(syslog_LDADD) $(LIBS) +syslog-success$(EXEEXT): $(syslog_success_OBJECTS) $(syslog_success_DEPENDENCIES) $(EXTRA_syslog_success_DEPENDENCIES) + @rm -f syslog-success$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(syslog_success_OBJECTS) $(syslog_success_LDADD) $(LIBS) + tee$(EXEEXT): $(tee_OBJECTS) $(tee_DEPENDENCIES) $(EXTRA_tee_DEPENDENCIES) @rm -f tee$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tee_OBJECTS) $(tee_LDADD) $(LIBS) +tgkill$(EXEEXT): $(tgkill_OBJECTS) $(tgkill_DEPENDENCIES) $(EXTRA_tgkill_DEPENDENCIES) + @rm -f tgkill$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(tgkill_OBJECTS) $(tgkill_LDADD) $(LIBS) + +tgkill--pidns-translation$(EXEEXT): $(tgkill__pidns_translation_OBJECTS) $(tgkill__pidns_translation_DEPENDENCIES) $(EXTRA_tgkill__pidns_translation_DEPENDENCIES) + @rm -f tgkill--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(tgkill__pidns_translation_OBJECTS) $(tgkill__pidns_translation_LDADD) $(LIBS) + threads-execve$(EXEEXT): $(threads_execve_OBJECTS) $(threads_execve_DEPENDENCIES) $(EXTRA_threads_execve_DEPENDENCIES) @rm -f threads-execve$(EXEEXT) $(AM_V_CCLD)$(LINK) $(threads_execve_OBJECTS) $(threads_execve_LDADD) $(LIBS) +threads-execve--quiet-thread-execve$(EXEEXT): $(threads_execve__quiet_thread_execve_OBJECTS) $(threads_execve__quiet_thread_execve_DEPENDENCIES) $(EXTRA_threads_execve__quiet_thread_execve_DEPENDENCIES) + @rm -f threads-execve--quiet-thread-execve$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(threads_execve__quiet_thread_execve_OBJECTS) $(threads_execve__quiet_thread_execve_LDADD) $(LIBS) + +threads-execve-q$(EXEEXT): $(threads_execve_q_OBJECTS) $(threads_execve_q_DEPENDENCIES) $(EXTRA_threads_execve_q_DEPENDENCIES) + @rm -f threads-execve-q$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(threads_execve_q_OBJECTS) $(threads_execve_q_LDADD) $(LIBS) + +threads-execve-qq$(EXEEXT): $(threads_execve_qq_OBJECTS) $(threads_execve_qq_DEPENDENCIES) $(EXTRA_threads_execve_qq_DEPENDENCIES) + @rm -f threads-execve-qq$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(threads_execve_qq_OBJECTS) $(threads_execve_qq_LDADD) $(LIBS) + +threads-execve-qqq$(EXEEXT): $(threads_execve_qqq_OBJECTS) $(threads_execve_qqq_DEPENDENCIES) $(EXTRA_threads_execve_qqq_DEPENDENCIES) + @rm -f threads-execve-qqq$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(threads_execve_qqq_OBJECTS) $(threads_execve_qqq_LDADD) $(LIBS) + time$(EXEEXT): $(time_OBJECTS) $(time_DEPENDENCIES) $(EXTRA_time_DEPENDENCIES) @rm -f time$(EXEEXT) $(AM_V_CCLD)$(LINK) $(time_OBJECTS) $(time_LDADD) $(LIBS) @@ -7437,6 +10027,22 @@ times-fail$(EXEEXT): $(times_fail_OBJECTS) $(times_fail_DEPENDENCIES) $(EXTRA_ti @rm -f times-fail$(EXEEXT) $(AM_V_CCLD)$(LINK) $(times_fail_OBJECTS) $(times_fail_LDADD) $(LIBS) +tkill$(EXEEXT): $(tkill_OBJECTS) $(tkill_DEPENDENCIES) $(EXTRA_tkill_DEPENDENCIES) + @rm -f tkill$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(tkill_OBJECTS) $(tkill_LDADD) $(LIBS) + +tkill--pidns-translation$(EXEEXT): $(tkill__pidns_translation_OBJECTS) $(tkill__pidns_translation_DEPENDENCIES) $(EXTRA_tkill__pidns_translation_DEPENDENCIES) + @rm -f tkill--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(tkill__pidns_translation_OBJECTS) $(tkill__pidns_translation_LDADD) $(LIBS) + +tracer_ppid_pgid_sid$(EXEEXT): $(tracer_ppid_pgid_sid_OBJECTS) $(tracer_ppid_pgid_sid_DEPENDENCIES) $(EXTRA_tracer_ppid_pgid_sid_DEPENDENCIES) + @rm -f tracer_ppid_pgid_sid$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(tracer_ppid_pgid_sid_OBJECTS) $(tracer_ppid_pgid_sid_LDADD) $(LIBS) + +trie_test$(EXEEXT): $(trie_test_OBJECTS) $(trie_test_DEPENDENCIES) $(EXTRA_trie_test_DEPENDENCIES) + @rm -f trie_test$(EXEEXT) + $(AM_V_CCLD)$(trie_test_LINK) $(trie_test_OBJECTS) $(trie_test_LDADD) $(LIBS) + truncate$(EXEEXT): $(truncate_OBJECTS) $(truncate_DEPENDENCIES) $(EXTRA_truncate_DEPENDENCIES) @rm -f truncate$(EXEEXT) $(AM_V_CCLD)$(LINK) $(truncate_OBJECTS) $(truncate_LDADD) $(LIBS) @@ -7485,6 +10091,14 @@ umovestr3$(EXEEXT): $(umovestr3_OBJECTS) $(umovestr3_DEPENDENCIES) $(EXTRA_umove @rm -f umovestr3$(EXEEXT) $(AM_V_CCLD)$(LINK) $(umovestr3_OBJECTS) $(umovestr3_LDADD) $(LIBS) +umovestr_cached$(EXEEXT): $(umovestr_cached_OBJECTS) $(umovestr_cached_DEPENDENCIES) $(EXTRA_umovestr_cached_DEPENDENCIES) + @rm -f umovestr_cached$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(umovestr_cached_OBJECTS) $(umovestr_cached_LDADD) $(LIBS) + +umovestr_cached_adjacent$(EXEEXT): $(umovestr_cached_adjacent_OBJECTS) $(umovestr_cached_adjacent_DEPENDENCIES) $(EXTRA_umovestr_cached_adjacent_DEPENDENCIES) + @rm -f umovestr_cached_adjacent$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(umovestr_cached_adjacent_OBJECTS) $(umovestr_cached_adjacent_LDADD) $(LIBS) + uname$(EXEEXT): $(uname_OBJECTS) $(uname_DEPENDENCIES) $(EXTRA_uname_DEPENDENCIES) @rm -f uname$(EXEEXT) $(AM_V_CCLD)$(LINK) $(uname_OBJECTS) $(uname_LDADD) $(LIBS) @@ -7589,6 +10203,10 @@ xet_robust_list$(EXEEXT): $(xet_robust_list_OBJECTS) $(xet_robust_list_DEPENDENC @rm -f xet_robust_list$(EXEEXT) $(AM_V_CCLD)$(LINK) $(xet_robust_list_OBJECTS) $(xet_robust_list_LDADD) $(LIBS) +xet_robust_list--pidns-translation$(EXEEXT): $(xet_robust_list__pidns_translation_OBJECTS) $(xet_robust_list__pidns_translation_DEPENDENCIES) $(EXTRA_xet_robust_list__pidns_translation_DEPENDENCIES) + @rm -f xet_robust_list--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(xet_robust_list__pidns_translation_OBJECTS) $(xet_robust_list__pidns_translation_LDADD) $(LIBS) + xet_thread_area_x86$(EXEEXT): $(xet_thread_area_x86_OBJECTS) $(xet_thread_area_x86_DEPENDENCIES) $(EXTRA_xet_thread_area_x86_DEPENDENCIES) @rm -f xet_thread_area_x86$(EXEEXT) $(AM_V_CCLD)$(LINK) $(xet_thread_area_x86_OBJECTS) $(xet_thread_area_x86_LDADD) $(LIBS) @@ -7601,10 +10219,18 @@ xetpgid$(EXEEXT): $(xetpgid_OBJECTS) $(xetpgid_DEPENDENCIES) $(EXTRA_xetpgid_DEP @rm -f xetpgid$(EXEEXT) $(AM_V_CCLD)$(LINK) $(xetpgid_OBJECTS) $(xetpgid_LDADD) $(LIBS) +xetpgid--pidns-translation$(EXEEXT): $(xetpgid__pidns_translation_OBJECTS) $(xetpgid__pidns_translation_DEPENDENCIES) $(EXTRA_xetpgid__pidns_translation_DEPENDENCIES) + @rm -f xetpgid--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(xetpgid__pidns_translation_OBJECTS) $(xetpgid__pidns_translation_LDADD) $(LIBS) + xetpriority$(EXEEXT): $(xetpriority_OBJECTS) $(xetpriority_DEPENDENCIES) $(EXTRA_xetpriority_DEPENDENCIES) @rm -f xetpriority$(EXEEXT) $(AM_V_CCLD)$(LINK) $(xetpriority_OBJECTS) $(xetpriority_LDADD) $(LIBS) +xetpriority--pidns-translation$(EXEEXT): $(xetpriority__pidns_translation_OBJECTS) $(xetpriority__pidns_translation_DEPENDENCIES) $(EXTRA_xetpriority__pidns_translation_DEPENDENCIES) + @rm -f xetpriority--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(xetpriority__pidns_translation_OBJECTS) $(xetpriority__pidns_translation_LDADD) $(LIBS) + xettimeofday$(EXEEXT): $(xettimeofday_OBJECTS) $(xettimeofday_DEPENDENCIES) $(EXTRA_xettimeofday_DEPENDENCIES) @rm -f xettimeofday$(EXEEXT) $(AM_V_CCLD)$(LINK) $(xettimeofday_OBJECTS) $(xettimeofday_LDADD) $(LIBS) @@ -7636,10 +10262,12 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attach-p-cmd-cmd.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attach-p-cmd-p.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/block_reset_raise_run.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/block_reset_run.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-obj_get_info_by_fd-prog-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-obj_get_info_by_fd-prog.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-obj_get_info_by_fd-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-obj_get_info_by_fd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-success-long-y.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-success-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-success.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-v.Po@am__quote@ # am--include-marker @@ -7657,16 +10285,48 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clock_adjtime.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clock_nanosleep.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clock_xettime.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone-flags.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone3-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone3-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone3-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone3-success-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone3-success-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone3-success-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone3-success.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone3.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone_parent--quiet-exit.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone_parent-q.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone_parent-qq.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone_parent.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone_ptrace--quiet-attach.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone_ptrace--quiet-exit.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone_ptrace-q.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone_ptrace-qq.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone_ptrace.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close_range-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close_range-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close_range-yy.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close_range.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/copy_file_range.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/count-f.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/creat.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/delay.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/delete_module.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dev--decode-fds-dev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dev--decode-fds-path.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dev--decode-fds-socket.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dev-yy.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup-yy.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup2-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup2-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup2-yy.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup3-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup3-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup3-yy.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup3.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/epoll_create.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/epoll_create1.Po@am__quote@ # am--include-marker @@ -7679,7 +10339,14 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-yy.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat2-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat2-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat2-yy.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat2.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fadvise64.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fadvise64_64.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fallocate.Po@am__quote@ # am--include-marker @@ -7694,16 +10361,27 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown32.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl64--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl64.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fdatasync.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fflush.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_ioctl.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter-unavailable.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter_seccomp-flag.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter_seccomp-perf.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/finit_module.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flock.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fork--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fork-f.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsconfig-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsconfig.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsmount.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsopen.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fspick-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fspick.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstat-Xabbrev.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstat-Xraw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstat-Xverbose.Po@am__quote@ # am--include-marker @@ -7722,9 +10400,12 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/futex.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/futimesat.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get_mempolicy.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get_process_reaper.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getcpu.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getcwd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdents-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdents.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdents64-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdents64.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getegid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getegid32.Po@am__quote@ # am--include-marker @@ -7735,7 +10416,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getgroups.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getgroups32.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpeername.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpgrp--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpgrp.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpid--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getppid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getrandom.Po@am__quote@ # am--include-marker @@ -7745,30 +10428,66 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getresuid32.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getrlimit.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getrusage.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getsid--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getsid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getsockname.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettid--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getuid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getuid32.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getxxid.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getxgid.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getxpid.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getxuid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/group_req.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inet-cmsg.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/init_module.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inject-nf.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inotify.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inotify_init-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inotify_init.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inotify_init1-y.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inotify_init1.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/int_0x80.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/io_uring_enter.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/io_uring_register.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/io_uring_setup.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_block--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_block.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_dm-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_dm.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-success-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-success-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-success-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-success-v-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-success-v-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-success-v-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-success-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-success.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-v-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-v-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-v-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-success-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-success-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-success-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-success-v-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-success-v-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-success-v-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-success-v.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-success.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-v-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-v-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-v-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-v.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_inotify.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_kvm_run-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_kvm_run.Po@am__quote@ # am--include-marker @@ -7789,10 +10508,28 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_sg_io_v3.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_sg_io_v4.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_sock_gifconf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_tee.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_uffdio.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-success-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-success-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-success-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-success-v-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-success-v-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-success-v-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-success-v.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-success.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-v-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-v-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-v-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_watchdog.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioperm.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iopl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioprio--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioprio-Xabbrev.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioprio-Xraw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioprio-Xverbose.Po@am__quote@ # am--include-marker @@ -7816,6 +10553,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_shm-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_shm.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/is_linux_mips_n64.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kcmp-y--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kcmp-y.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kcmp.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kern_features.Po@am__quote@ # am--include-marker @@ -7829,12 +10567,14 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl-Xraw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kill--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kill.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kill_child.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ksysent.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lchown.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lchown32.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-create_nl_socket.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-create_tmpfile.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-errno2name.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-error_msg.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-fill_memory.Po@am__quote@ # am--include-marker @@ -7846,20 +10586,26 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-inode_of_sockfd.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-libmmsg.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-libsocketcall.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-lock_file.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-overflowuid.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-pidns.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-pipe_maxfd.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-print_quoted_string.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-print_time.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-printflags.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-printxval.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-printxval-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-printxval-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-printxval-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-signal2name.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-skip_unavailable.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-sprintrc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-status.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-tail_alloc.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-test_printpath.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-test_printstrn.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-test_ucopy.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-tprintf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list_sigaction_signum.Po@am__quote@ # am--include-marker @@ -7871,12 +10617,18 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lstat.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lstat64-lstat64.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/madvise.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/maybe_switch_current_tcp--quiet-thread-execve.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/maybe_switch_current_tcp.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbind-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbind-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbind-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbind.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/membarrier.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memfd_create-Xabbrev.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memfd_create-Xraw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memfd_create-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memfd_create.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/migrate_pages--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/migrate_pages.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mincore.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkdir.Po@am__quote@ # am--include-marker @@ -7903,6 +10655,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-Xraw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_mount-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_mount.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_pages--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_pages-Xabbrev.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_pages-Xraw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_pages-Xverbose.Po@am__quote@ # am--include-marker @@ -7916,12 +10671,17 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msg_name.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/munlockall.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nanosleep.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net--decode-fds-dev-netlink.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net--decode-fds-none-netlink.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net--decode-fds-path-netlink.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net--decode-fds-socket-netlink.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-accept-connect.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-icmp_filter.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-packet_mreq-Xabbrev.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-packet_mreq-Xraw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-packet_mreq-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-packet_mreq.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-sockaddr--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-sockaddr.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-tpacket_req.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-tpacket_stats-success.Po@am__quote@ # am--include-marker @@ -7931,6 +10691,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-yy-inet6.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-yy-netlink.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-yy-unix.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_audit--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_audit.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_crypto.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_generic.Po@am__quote@ # am--include-marker @@ -7968,6 +10729,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_brport.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_linkinfo.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_port.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_xdp-y.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_xdp.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_inet_diag_msg.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_inet_diag_req_compat.Po@am__quote@ # am--include-marker @@ -8004,7 +10766,19 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oldselect.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oldstat.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open_tree-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open_tree.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-v-y-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-v-y-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-v-y-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-v-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-v.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orphaned_process_group.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/osf_utimes.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pause.Po@am__quote@ # am--include-marker @@ -8016,7 +10790,20 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/personality-Xraw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/personality-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/personality.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_getfd-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_getfd-yy.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_getfd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open--decode-fd-path.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open--decode-fd-pidfd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open--decode-fd-socket.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open--pidns-translation.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open-yy.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_send_signal--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_send_signal.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidns-cache.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipe.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipe2.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pkey_alloc.Po@am__quote@ # am--include-marker @@ -8043,6 +10830,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/preadv2-pwritev2.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/preadv_pwritev-preadv-pwritev.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/print_maxfd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/print_ppid_tracerpid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printpath-umovestr-peekdata.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printpath-umovestr-undumpable.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printpath-umovestr.Po@am__quote@ # am--include-marker @@ -8053,8 +10841,11 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printstrn-umoven-peekdata.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printstrn-umoven-undumpable.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printstrn-umoven.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prlimit64--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prlimit64.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process_vm_readv--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process_vm_readv.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process_vm_writev--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process_vm_writev.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pselect6.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ptrace.Po@am__quote@ # am--include-marker @@ -8083,6 +10874,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readlinkat.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readv.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reboot.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/recv-MSG_TRUNC.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/recvfrom-MSG_TRUNC.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/recvfrom.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/recvmmsg-timeout.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/recvmsg.Po@am__quote@ # am--include-marker @@ -8101,10 +10894,12 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigaction.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigpending.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigprocmask.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigqueueinfo--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigqueueinfo.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigreturn.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigsuspend.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigtimedwait.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_tgsigqueueinfo--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_tgsigqueueinfo.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/run_expect_termsig.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/s390_guarded_storage-v.Po@am__quote@ # am--include-marker @@ -8115,9 +10910,13 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/s390_sthyi.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_get_priority_mxx.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_rr_get_interval.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetaffinity--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetaffinity.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetattr--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetattr.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetparam--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetparam.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetscheduler--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetscheduler.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_yield.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scm_rights.Po@am__quote@ # am--include-marker @@ -8127,9 +10926,14 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/seccomp_get_action_avail.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/select-P.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/select.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/semop-indirect.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/semop.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/semtimedop.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sendfile.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sendfile64.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/set_mempolicy-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/set_mempolicy-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/set_mempolicy-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/set_mempolicy.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/set_ptracer_any.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/set_sigblock.Po@am__quote@ # am--include-marker @@ -8145,6 +10949,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setgroups32.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sethostname.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setns.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setpgrp-exec.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setregid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setregid32.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setresgid.Po@am__quote@ # am--include-marker @@ -8165,6 +10970,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigaltstack.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/siginfo.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal_receive--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal_receive.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signalfd4.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigpending.Po@am__quote@ # am--include-marker @@ -8174,6 +10980,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sleep.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_error.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_linger.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred-Xabbrev.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred-Xraw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred-Xverbose.Po@am__quote@ # am--include-marker @@ -8193,6 +11000,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-1.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-2.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-3.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-attach.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-0.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-1.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-2.Po@am__quote@ # am--include-marker @@ -8203,7 +11011,25 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat64-stat64.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/statfs-statfs.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/statfs64.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-all.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-failed-long.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-failed-status.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-failed.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-none-f.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-none-threads.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-none.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-successful-long.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-successful-status.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-successful.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-unfinished-threads.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-unfinished.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/statx.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace--strings-in-hex-all.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace--strings-in-hex-non-ascii.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace--strings-in-hex.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-n.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-x.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-xx.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/swap.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sxetmask.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/symlink.Po@am__quote@ # am--include-marker @@ -8212,8 +11038,15 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sync_file_range.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sync_file_range2.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sysinfo.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/syslog-success.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/syslog.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tee.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tgkill--pidns-translation.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tgkill.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve--quiet-thread-execve.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve-q.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve-qq.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve-qqq.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/time.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timer_create.Po@am__quote@ # am--include-marker @@ -8221,6 +11054,11 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timerfd_xettime.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/times-fail.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/times.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tkill--pidns-translation.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tkill.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tracer_ppid_pgid_sid.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trie_test-trie_for_tests.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trie_test-trie_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/truncate.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/truncate64-truncate64.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ugetrlimit.Po@am__quote@ # am--include-marker @@ -8233,6 +11071,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umovestr.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umovestr2.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umovestr3.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umovestr_cached.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umovestr_cached_adjacent.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uname.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unblock_reset_raise.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unix-pair-send-recv.Po@am__quote@ # am--include-marker @@ -8258,10 +11098,13 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/waitpid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xattr-strings.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xattr.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xet_robust_list--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xet_robust_list.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xet_thread_area_x86.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetitimer.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpgid--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpgid.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpriority--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpriority.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xettimeofday.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zeroargc.Po@am__quote@ # am--include-marker @@ -8273,15 +11116,17 @@ $(am__depfiles_remade): am--depfiles: $(am__depfiles_remade) .c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` @@ -8300,6 +11145,20 @@ libtests_a-create_nl_socket.obj: create_nl_socket.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-create_nl_socket.obj `if test -f 'create_nl_socket.c'; then $(CYGPATH_W) 'create_nl_socket.c'; else $(CYGPATH_W) '$(srcdir)/create_nl_socket.c'; fi` +libtests_a-create_tmpfile.o: create_tmpfile.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-create_tmpfile.o -MD -MP -MF $(DEPDIR)/libtests_a-create_tmpfile.Tpo -c -o libtests_a-create_tmpfile.o `test -f 'create_tmpfile.c' || echo '$(srcdir)/'`create_tmpfile.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-create_tmpfile.Tpo $(DEPDIR)/libtests_a-create_tmpfile.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='create_tmpfile.c' object='libtests_a-create_tmpfile.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-create_tmpfile.o `test -f 'create_tmpfile.c' || echo '$(srcdir)/'`create_tmpfile.c + +libtests_a-create_tmpfile.obj: create_tmpfile.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-create_tmpfile.obj -MD -MP -MF $(DEPDIR)/libtests_a-create_tmpfile.Tpo -c -o libtests_a-create_tmpfile.obj `if test -f 'create_tmpfile.c'; then $(CYGPATH_W) 'create_tmpfile.c'; else $(CYGPATH_W) '$(srcdir)/create_tmpfile.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-create_tmpfile.Tpo $(DEPDIR)/libtests_a-create_tmpfile.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='create_tmpfile.c' object='libtests_a-create_tmpfile.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-create_tmpfile.obj `if test -f 'create_tmpfile.c'; then $(CYGPATH_W) 'create_tmpfile.c'; else $(CYGPATH_W) '$(srcdir)/create_tmpfile.c'; fi` + libtests_a-errno2name.o: errno2name.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-errno2name.o -MD -MP -MF $(DEPDIR)/libtests_a-errno2name.Tpo -c -o libtests_a-errno2name.o `test -f 'errno2name.c' || echo '$(srcdir)/'`errno2name.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-errno2name.Tpo $(DEPDIR)/libtests_a-errno2name.Po @@ -8454,6 +11313,20 @@ libtests_a-libsocketcall.obj: libsocketcall.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-libsocketcall.obj `if test -f 'libsocketcall.c'; then $(CYGPATH_W) 'libsocketcall.c'; else $(CYGPATH_W) '$(srcdir)/libsocketcall.c'; fi` +libtests_a-lock_file.o: lock_file.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-lock_file.o -MD -MP -MF $(DEPDIR)/libtests_a-lock_file.Tpo -c -o libtests_a-lock_file.o `test -f 'lock_file.c' || echo '$(srcdir)/'`lock_file.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-lock_file.Tpo $(DEPDIR)/libtests_a-lock_file.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lock_file.c' object='libtests_a-lock_file.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-lock_file.o `test -f 'lock_file.c' || echo '$(srcdir)/'`lock_file.c + +libtests_a-lock_file.obj: lock_file.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-lock_file.obj -MD -MP -MF $(DEPDIR)/libtests_a-lock_file.Tpo -c -o libtests_a-lock_file.obj `if test -f 'lock_file.c'; then $(CYGPATH_W) 'lock_file.c'; else $(CYGPATH_W) '$(srcdir)/lock_file.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-lock_file.Tpo $(DEPDIR)/libtests_a-lock_file.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lock_file.c' object='libtests_a-lock_file.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-lock_file.obj `if test -f 'lock_file.c'; then $(CYGPATH_W) 'lock_file.c'; else $(CYGPATH_W) '$(srcdir)/lock_file.c'; fi` + libtests_a-overflowuid.o: overflowuid.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-overflowuid.o -MD -MP -MF $(DEPDIR)/libtests_a-overflowuid.Tpo -c -o libtests_a-overflowuid.o `test -f 'overflowuid.c' || echo '$(srcdir)/'`overflowuid.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-overflowuid.Tpo $(DEPDIR)/libtests_a-overflowuid.Po @@ -8468,6 +11341,20 @@ libtests_a-overflowuid.obj: overflowuid.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-overflowuid.obj `if test -f 'overflowuid.c'; then $(CYGPATH_W) 'overflowuid.c'; else $(CYGPATH_W) '$(srcdir)/overflowuid.c'; fi` +libtests_a-pidns.o: pidns.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-pidns.o -MD -MP -MF $(DEPDIR)/libtests_a-pidns.Tpo -c -o libtests_a-pidns.o `test -f 'pidns.c' || echo '$(srcdir)/'`pidns.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-pidns.Tpo $(DEPDIR)/libtests_a-pidns.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pidns.c' object='libtests_a-pidns.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-pidns.o `test -f 'pidns.c' || echo '$(srcdir)/'`pidns.c + +libtests_a-pidns.obj: pidns.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-pidns.obj -MD -MP -MF $(DEPDIR)/libtests_a-pidns.Tpo -c -o libtests_a-pidns.obj `if test -f 'pidns.c'; then $(CYGPATH_W) 'pidns.c'; else $(CYGPATH_W) '$(srcdir)/pidns.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-pidns.Tpo $(DEPDIR)/libtests_a-pidns.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pidns.c' object='libtests_a-pidns.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-pidns.obj `if test -f 'pidns.c'; then $(CYGPATH_W) 'pidns.c'; else $(CYGPATH_W) '$(srcdir)/pidns.c'; fi` + libtests_a-pipe_maxfd.o: pipe_maxfd.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-pipe_maxfd.o -MD -MP -MF $(DEPDIR)/libtests_a-pipe_maxfd.Tpo -c -o libtests_a-pipe_maxfd.o `test -f 'pipe_maxfd.c' || echo '$(srcdir)/'`pipe_maxfd.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-pipe_maxfd.Tpo $(DEPDIR)/libtests_a-pipe_maxfd.Po @@ -8524,19 +11411,47 @@ libtests_a-printflags.obj: printflags.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printflags.obj `if test -f 'printflags.c'; then $(CYGPATH_W) 'printflags.c'; else $(CYGPATH_W) '$(srcdir)/printflags.c'; fi` -libtests_a-printxval.o: printxval.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval.o -MD -MP -MF $(DEPDIR)/libtests_a-printxval.Tpo -c -o libtests_a-printxval.o `test -f 'printxval.c' || echo '$(srcdir)/'`printxval.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval.Tpo $(DEPDIR)/libtests_a-printxval.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printxval.c' object='libtests_a-printxval.o' libtool=no @AMDEPBACKSLASH@ +libtests_a-printxval-Xabbrev.o: printxval-Xabbrev.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval-Xabbrev.o -MD -MP -MF $(DEPDIR)/libtests_a-printxval-Xabbrev.Tpo -c -o libtests_a-printxval-Xabbrev.o `test -f 'printxval-Xabbrev.c' || echo '$(srcdir)/'`printxval-Xabbrev.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval-Xabbrev.Tpo $(DEPDIR)/libtests_a-printxval-Xabbrev.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printxval-Xabbrev.c' object='libtests_a-printxval-Xabbrev.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval-Xabbrev.o `test -f 'printxval-Xabbrev.c' || echo '$(srcdir)/'`printxval-Xabbrev.c + +libtests_a-printxval-Xabbrev.obj: printxval-Xabbrev.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval-Xabbrev.obj -MD -MP -MF $(DEPDIR)/libtests_a-printxval-Xabbrev.Tpo -c -o libtests_a-printxval-Xabbrev.obj `if test -f 'printxval-Xabbrev.c'; then $(CYGPATH_W) 'printxval-Xabbrev.c'; else $(CYGPATH_W) '$(srcdir)/printxval-Xabbrev.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval-Xabbrev.Tpo $(DEPDIR)/libtests_a-printxval-Xabbrev.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printxval-Xabbrev.c' object='libtests_a-printxval-Xabbrev.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval-Xabbrev.obj `if test -f 'printxval-Xabbrev.c'; then $(CYGPATH_W) 'printxval-Xabbrev.c'; else $(CYGPATH_W) '$(srcdir)/printxval-Xabbrev.c'; fi` + +libtests_a-printxval-Xraw.o: printxval-Xraw.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval-Xraw.o -MD -MP -MF $(DEPDIR)/libtests_a-printxval-Xraw.Tpo -c -o libtests_a-printxval-Xraw.o `test -f 'printxval-Xraw.c' || echo '$(srcdir)/'`printxval-Xraw.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval-Xraw.Tpo $(DEPDIR)/libtests_a-printxval-Xraw.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printxval-Xraw.c' object='libtests_a-printxval-Xraw.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval-Xraw.o `test -f 'printxval-Xraw.c' || echo '$(srcdir)/'`printxval-Xraw.c + +libtests_a-printxval-Xraw.obj: printxval-Xraw.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval-Xraw.obj -MD -MP -MF $(DEPDIR)/libtests_a-printxval-Xraw.Tpo -c -o libtests_a-printxval-Xraw.obj `if test -f 'printxval-Xraw.c'; then $(CYGPATH_W) 'printxval-Xraw.c'; else $(CYGPATH_W) '$(srcdir)/printxval-Xraw.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval-Xraw.Tpo $(DEPDIR)/libtests_a-printxval-Xraw.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printxval-Xraw.c' object='libtests_a-printxval-Xraw.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval-Xraw.obj `if test -f 'printxval-Xraw.c'; then $(CYGPATH_W) 'printxval-Xraw.c'; else $(CYGPATH_W) '$(srcdir)/printxval-Xraw.c'; fi` + +libtests_a-printxval-Xverbose.o: printxval-Xverbose.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval-Xverbose.o -MD -MP -MF $(DEPDIR)/libtests_a-printxval-Xverbose.Tpo -c -o libtests_a-printxval-Xverbose.o `test -f 'printxval-Xverbose.c' || echo '$(srcdir)/'`printxval-Xverbose.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval-Xverbose.Tpo $(DEPDIR)/libtests_a-printxval-Xverbose.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printxval-Xverbose.c' object='libtests_a-printxval-Xverbose.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval.o `test -f 'printxval.c' || echo '$(srcdir)/'`printxval.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval-Xverbose.o `test -f 'printxval-Xverbose.c' || echo '$(srcdir)/'`printxval-Xverbose.c -libtests_a-printxval.obj: printxval.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval.obj -MD -MP -MF $(DEPDIR)/libtests_a-printxval.Tpo -c -o libtests_a-printxval.obj `if test -f 'printxval.c'; then $(CYGPATH_W) 'printxval.c'; else $(CYGPATH_W) '$(srcdir)/printxval.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval.Tpo $(DEPDIR)/libtests_a-printxval.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printxval.c' object='libtests_a-printxval.obj' libtool=no @AMDEPBACKSLASH@ +libtests_a-printxval-Xverbose.obj: printxval-Xverbose.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval-Xverbose.obj -MD -MP -MF $(DEPDIR)/libtests_a-printxval-Xverbose.Tpo -c -o libtests_a-printxval-Xverbose.obj `if test -f 'printxval-Xverbose.c'; then $(CYGPATH_W) 'printxval-Xverbose.c'; else $(CYGPATH_W) '$(srcdir)/printxval-Xverbose.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval-Xverbose.Tpo $(DEPDIR)/libtests_a-printxval-Xverbose.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printxval-Xverbose.c' object='libtests_a-printxval-Xverbose.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval.obj `if test -f 'printxval.c'; then $(CYGPATH_W) 'printxval.c'; else $(CYGPATH_W) '$(srcdir)/printxval.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval-Xverbose.obj `if test -f 'printxval-Xverbose.c'; then $(CYGPATH_W) 'printxval-Xverbose.c'; else $(CYGPATH_W) '$(srcdir)/printxval-Xverbose.c'; fi` libtests_a-signal2name.o: signal2name.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-signal2name.o -MD -MP -MF $(DEPDIR)/libtests_a-signal2name.Tpo -c -o libtests_a-signal2name.o `test -f 'signal2name.c' || echo '$(srcdir)/'`signal2name.c @@ -8580,6 +11495,20 @@ libtests_a-sprintrc.obj: sprintrc.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-sprintrc.obj `if test -f 'sprintrc.c'; then $(CYGPATH_W) 'sprintrc.c'; else $(CYGPATH_W) '$(srcdir)/sprintrc.c'; fi` +libtests_a-status.o: status.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-status.o -MD -MP -MF $(DEPDIR)/libtests_a-status.Tpo -c -o libtests_a-status.o `test -f 'status.c' || echo '$(srcdir)/'`status.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-status.Tpo $(DEPDIR)/libtests_a-status.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='status.c' object='libtests_a-status.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-status.o `test -f 'status.c' || echo '$(srcdir)/'`status.c + +libtests_a-status.obj: status.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-status.obj -MD -MP -MF $(DEPDIR)/libtests_a-status.Tpo -c -o libtests_a-status.obj `if test -f 'status.c'; then $(CYGPATH_W) 'status.c'; else $(CYGPATH_W) '$(srcdir)/status.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-status.Tpo $(DEPDIR)/libtests_a-status.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='status.c' object='libtests_a-status.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-status.obj `if test -f 'status.c'; then $(CYGPATH_W) 'status.c'; else $(CYGPATH_W) '$(srcdir)/status.c'; fi` + libtests_a-tail_alloc.o: tail_alloc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-tail_alloc.o -MD -MP -MF $(DEPDIR)/libtests_a-tail_alloc.Tpo -c -o libtests_a-tail_alloc.o `test -f 'tail_alloc.c' || echo '$(srcdir)/'`tail_alloc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-tail_alloc.Tpo $(DEPDIR)/libtests_a-tail_alloc.Po @@ -8650,6 +11579,20 @@ libtests_a-tprintf.obj: tprintf.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-tprintf.obj `if test -f 'tprintf.c'; then $(CYGPATH_W) 'tprintf.c'; else $(CYGPATH_W) '$(srcdir)/tprintf.c'; fi` +libtests_a-xmalloc_for_tests.o: xmalloc_for_tests.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-xmalloc_for_tests.o -MD -MP -MF $(DEPDIR)/libtests_a-xmalloc_for_tests.Tpo -c -o libtests_a-xmalloc_for_tests.o `test -f 'xmalloc_for_tests.c' || echo '$(srcdir)/'`xmalloc_for_tests.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-xmalloc_for_tests.Tpo $(DEPDIR)/libtests_a-xmalloc_for_tests.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xmalloc_for_tests.c' object='libtests_a-xmalloc_for_tests.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-xmalloc_for_tests.o `test -f 'xmalloc_for_tests.c' || echo '$(srcdir)/'`xmalloc_for_tests.c + +libtests_a-xmalloc_for_tests.obj: xmalloc_for_tests.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-xmalloc_for_tests.obj -MD -MP -MF $(DEPDIR)/libtests_a-xmalloc_for_tests.Tpo -c -o libtests_a-xmalloc_for_tests.obj `if test -f 'xmalloc_for_tests.c'; then $(CYGPATH_W) 'xmalloc_for_tests.c'; else $(CYGPATH_W) '$(srcdir)/xmalloc_for_tests.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-xmalloc_for_tests.Tpo $(DEPDIR)/libtests_a-xmalloc_for_tests.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xmalloc_for_tests.c' object='libtests_a-xmalloc_for_tests.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-xmalloc_for_tests.obj `if test -f 'xmalloc_for_tests.c'; then $(CYGPATH_W) 'xmalloc_for_tests.c'; else $(CYGPATH_W) '$(srcdir)/xmalloc_for_tests.c'; fi` + fstat64-fstat64.o: fstat64.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fstat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fstat64-fstat64.o -MD -MP -MF $(DEPDIR)/fstat64-fstat64.Tpo -c -o fstat64-fstat64.o `test -f 'fstat64.c' || echo '$(srcdir)/'`fstat64.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/fstat64-fstat64.Tpo $(DEPDIR)/fstat64-fstat64.Po @@ -8860,6 +11803,34 @@ statfs-statfs.obj: statfs.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(statfs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o statfs-statfs.obj `if test -f 'statfs.c'; then $(CYGPATH_W) 'statfs.c'; else $(CYGPATH_W) '$(srcdir)/statfs.c'; fi` +trie_test-trie_test.o: trie_test.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -MT trie_test-trie_test.o -MD -MP -MF $(DEPDIR)/trie_test-trie_test.Tpo -c -o trie_test-trie_test.o `test -f 'trie_test.c' || echo '$(srcdir)/'`trie_test.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/trie_test-trie_test.Tpo $(DEPDIR)/trie_test-trie_test.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='trie_test.c' object='trie_test-trie_test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -c -o trie_test-trie_test.o `test -f 'trie_test.c' || echo '$(srcdir)/'`trie_test.c + +trie_test-trie_test.obj: trie_test.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -MT trie_test-trie_test.obj -MD -MP -MF $(DEPDIR)/trie_test-trie_test.Tpo -c -o trie_test-trie_test.obj `if test -f 'trie_test.c'; then $(CYGPATH_W) 'trie_test.c'; else $(CYGPATH_W) '$(srcdir)/trie_test.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/trie_test-trie_test.Tpo $(DEPDIR)/trie_test-trie_test.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='trie_test.c' object='trie_test-trie_test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -c -o trie_test-trie_test.obj `if test -f 'trie_test.c'; then $(CYGPATH_W) 'trie_test.c'; else $(CYGPATH_W) '$(srcdir)/trie_test.c'; fi` + +trie_test-trie_for_tests.o: trie_for_tests.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -MT trie_test-trie_for_tests.o -MD -MP -MF $(DEPDIR)/trie_test-trie_for_tests.Tpo -c -o trie_test-trie_for_tests.o `test -f 'trie_for_tests.c' || echo '$(srcdir)/'`trie_for_tests.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/trie_test-trie_for_tests.Tpo $(DEPDIR)/trie_test-trie_for_tests.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='trie_for_tests.c' object='trie_test-trie_for_tests.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -c -o trie_test-trie_for_tests.o `test -f 'trie_for_tests.c' || echo '$(srcdir)/'`trie_for_tests.c + +trie_test-trie_for_tests.obj: trie_for_tests.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -MT trie_test-trie_for_tests.obj -MD -MP -MF $(DEPDIR)/trie_test-trie_for_tests.Tpo -c -o trie_test-trie_for_tests.obj `if test -f 'trie_for_tests.c'; then $(CYGPATH_W) 'trie_for_tests.c'; else $(CYGPATH_W) '$(srcdir)/trie_for_tests.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/trie_test-trie_for_tests.Tpo $(DEPDIR)/trie_test-trie_for_tests.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='trie_for_tests.c' object='trie_test-trie_for_tests.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -c -o trie_test-trie_for_tests.obj `if test -f 'trie_for_tests.c'; then $(CYGPATH_W) 'trie_for_tests.c'; else $(CYGPATH_W) '$(srcdir)/trie_for_tests.c'; fi` + truncate64-truncate64.o: truncate64.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(truncate64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT truncate64-truncate64.o -MD -MP -MF $(DEPDIR)/truncate64-truncate64.Tpo -c -o truncate64-truncate64.o `test -f 'truncate64.c' || echo '$(srcdir)/'`truncate64.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/truncate64-truncate64.Tpo $(DEPDIR)/truncate64-truncate64.Po @@ -9052,7 +12023,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS) test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ @@ -9220,10 +12191,12 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/attach-p-cmd-cmd.Po -rm -f ./$(DEPDIR)/attach-p-cmd-p.Po -rm -f ./$(DEPDIR)/block_reset_raise_run.Po + -rm -f ./$(DEPDIR)/block_reset_run.Po -rm -f ./$(DEPDIR)/bpf-obj_get_info_by_fd-prog-v.Po -rm -f ./$(DEPDIR)/bpf-obj_get_info_by_fd-prog.Po -rm -f ./$(DEPDIR)/bpf-obj_get_info_by_fd-v.Po -rm -f ./$(DEPDIR)/bpf-obj_get_info_by_fd.Po + -rm -f ./$(DEPDIR)/bpf-success-long-y.Po -rm -f ./$(DEPDIR)/bpf-success-v.Po -rm -f ./$(DEPDIR)/bpf-success.Po -rm -f ./$(DEPDIR)/bpf-v.Po @@ -9241,16 +12214,48 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/clock_adjtime.Po -rm -f ./$(DEPDIR)/clock_nanosleep.Po -rm -f ./$(DEPDIR)/clock_xettime.Po + -rm -f ./$(DEPDIR)/clone-flags.Po + -rm -f ./$(DEPDIR)/clone3-Xabbrev.Po + -rm -f ./$(DEPDIR)/clone3-Xraw.Po + -rm -f ./$(DEPDIR)/clone3-Xverbose.Po + -rm -f ./$(DEPDIR)/clone3-success-Xabbrev.Po + -rm -f ./$(DEPDIR)/clone3-success-Xraw.Po + -rm -f ./$(DEPDIR)/clone3-success-Xverbose.Po + -rm -f ./$(DEPDIR)/clone3-success.Po + -rm -f ./$(DEPDIR)/clone3.Po + -rm -f ./$(DEPDIR)/clone_parent--quiet-exit.Po + -rm -f ./$(DEPDIR)/clone_parent-q.Po + -rm -f ./$(DEPDIR)/clone_parent-qq.Po -rm -f ./$(DEPDIR)/clone_parent.Po + -rm -f ./$(DEPDIR)/clone_ptrace--quiet-attach.Po + -rm -f ./$(DEPDIR)/clone_ptrace--quiet-exit.Po + -rm -f ./$(DEPDIR)/clone_ptrace-q.Po + -rm -f ./$(DEPDIR)/clone_ptrace-qq.Po -rm -f ./$(DEPDIR)/clone_ptrace.Po + -rm -f ./$(DEPDIR)/close_range-P.Po + -rm -f ./$(DEPDIR)/close_range-y.Po + -rm -f ./$(DEPDIR)/close_range-yy.Po + -rm -f ./$(DEPDIR)/close_range.Po -rm -f ./$(DEPDIR)/copy_file_range.Po -rm -f ./$(DEPDIR)/count-f.Po -rm -f ./$(DEPDIR)/creat.Po -rm -f ./$(DEPDIR)/delay.Po -rm -f ./$(DEPDIR)/delete_module.Po + -rm -f ./$(DEPDIR)/dev--decode-fds-dev.Po + -rm -f ./$(DEPDIR)/dev--decode-fds-path.Po + -rm -f ./$(DEPDIR)/dev--decode-fds-socket.Po -rm -f ./$(DEPDIR)/dev-yy.Po + -rm -f ./$(DEPDIR)/dup-P.Po + -rm -f ./$(DEPDIR)/dup-y.Po + -rm -f ./$(DEPDIR)/dup-yy.Po -rm -f ./$(DEPDIR)/dup.Po + -rm -f ./$(DEPDIR)/dup2-P.Po + -rm -f ./$(DEPDIR)/dup2-y.Po + -rm -f ./$(DEPDIR)/dup2-yy.Po -rm -f ./$(DEPDIR)/dup2.Po + -rm -f ./$(DEPDIR)/dup3-P.Po + -rm -f ./$(DEPDIR)/dup3-y.Po + -rm -f ./$(DEPDIR)/dup3-yy.Po -rm -f ./$(DEPDIR)/dup3.Po -rm -f ./$(DEPDIR)/epoll_create.Po -rm -f ./$(DEPDIR)/epoll_create1.Po @@ -9263,7 +12268,14 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/execve.Po -rm -f ./$(DEPDIR)/execveat-v.Po -rm -f ./$(DEPDIR)/execveat.Po + -rm -f ./$(DEPDIR)/faccessat-P.Po + -rm -f ./$(DEPDIR)/faccessat-y.Po + -rm -f ./$(DEPDIR)/faccessat-yy.Po -rm -f ./$(DEPDIR)/faccessat.Po + -rm -f ./$(DEPDIR)/faccessat2-P.Po + -rm -f ./$(DEPDIR)/faccessat2-y.Po + -rm -f ./$(DEPDIR)/faccessat2-yy.Po + -rm -f ./$(DEPDIR)/faccessat2.Po -rm -f ./$(DEPDIR)/fadvise64.Po -rm -f ./$(DEPDIR)/fadvise64_64.Po -rm -f ./$(DEPDIR)/fallocate.Po @@ -9278,16 +12290,27 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/fchown.Po -rm -f ./$(DEPDIR)/fchown32.Po -rm -f ./$(DEPDIR)/fchownat.Po + -rm -f ./$(DEPDIR)/fcntl--pidns-translation.Po -rm -f ./$(DEPDIR)/fcntl.Po + -rm -f ./$(DEPDIR)/fcntl64--pidns-translation.Po -rm -f ./$(DEPDIR)/fcntl64.Po -rm -f ./$(DEPDIR)/fdatasync.Po -rm -f ./$(DEPDIR)/fflush.Po -rm -f ./$(DEPDIR)/file_handle.Po -rm -f ./$(DEPDIR)/file_ioctl.Po -rm -f ./$(DEPDIR)/filter-unavailable.Po + -rm -f ./$(DEPDIR)/filter_seccomp-flag.Po + -rm -f ./$(DEPDIR)/filter_seccomp-perf.Po -rm -f ./$(DEPDIR)/finit_module.Po -rm -f ./$(DEPDIR)/flock.Po + -rm -f ./$(DEPDIR)/fork--pidns-translation.Po -rm -f ./$(DEPDIR)/fork-f.Po + -rm -f ./$(DEPDIR)/fsconfig-P.Po + -rm -f ./$(DEPDIR)/fsconfig.Po + -rm -f ./$(DEPDIR)/fsmount.Po + -rm -f ./$(DEPDIR)/fsopen.Po + -rm -f ./$(DEPDIR)/fspick-P.Po + -rm -f ./$(DEPDIR)/fspick.Po -rm -f ./$(DEPDIR)/fstat-Xabbrev.Po -rm -f ./$(DEPDIR)/fstat-Xraw.Po -rm -f ./$(DEPDIR)/fstat-Xverbose.Po @@ -9306,9 +12329,12 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/futex.Po -rm -f ./$(DEPDIR)/futimesat.Po -rm -f ./$(DEPDIR)/get_mempolicy.Po + -rm -f ./$(DEPDIR)/get_process_reaper.Po -rm -f ./$(DEPDIR)/getcpu.Po -rm -f ./$(DEPDIR)/getcwd.Po + -rm -f ./$(DEPDIR)/getdents-v.Po -rm -f ./$(DEPDIR)/getdents.Po + -rm -f ./$(DEPDIR)/getdents64-v.Po -rm -f ./$(DEPDIR)/getdents64.Po -rm -f ./$(DEPDIR)/getegid.Po -rm -f ./$(DEPDIR)/getegid32.Po @@ -9319,7 +12345,9 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/getgroups.Po -rm -f ./$(DEPDIR)/getgroups32.Po -rm -f ./$(DEPDIR)/getpeername.Po + -rm -f ./$(DEPDIR)/getpgrp--pidns-translation.Po -rm -f ./$(DEPDIR)/getpgrp.Po + -rm -f ./$(DEPDIR)/getpid--pidns-translation.Po -rm -f ./$(DEPDIR)/getpid.Po -rm -f ./$(DEPDIR)/getppid.Po -rm -f ./$(DEPDIR)/getrandom.Po @@ -9329,30 +12357,66 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/getresuid32.Po -rm -f ./$(DEPDIR)/getrlimit.Po -rm -f ./$(DEPDIR)/getrusage.Po + -rm -f ./$(DEPDIR)/getsid--pidns-translation.Po -rm -f ./$(DEPDIR)/getsid.Po -rm -f ./$(DEPDIR)/getsockname.Po + -rm -f ./$(DEPDIR)/gettid--pidns-translation.Po -rm -f ./$(DEPDIR)/gettid.Po -rm -f ./$(DEPDIR)/getuid.Po -rm -f ./$(DEPDIR)/getuid32.Po - -rm -f ./$(DEPDIR)/getxxid.Po + -rm -f ./$(DEPDIR)/getxgid.Po + -rm -f ./$(DEPDIR)/getxpid.Po + -rm -f ./$(DEPDIR)/getxuid.Po -rm -f ./$(DEPDIR)/group_req.Po -rm -f ./$(DEPDIR)/inet-cmsg.Po -rm -f ./$(DEPDIR)/init_module.Po -rm -f ./$(DEPDIR)/inject-nf.Po -rm -f ./$(DEPDIR)/inotify.Po + -rm -f ./$(DEPDIR)/inotify_init-y.Po + -rm -f ./$(DEPDIR)/inotify_init.Po + -rm -f ./$(DEPDIR)/inotify_init1-y.Po -rm -f ./$(DEPDIR)/inotify_init1.Po -rm -f ./$(DEPDIR)/int_0x80.Po -rm -f ./$(DEPDIR)/io_uring_enter.Po -rm -f ./$(DEPDIR)/io_uring_register.Po -rm -f ./$(DEPDIR)/io_uring_setup.Po -rm -f ./$(DEPDIR)/ioctl.Po + -rm -f ./$(DEPDIR)/ioctl_block--pidns-translation.Po -rm -f ./$(DEPDIR)/ioctl_block.Po -rm -f ./$(DEPDIR)/ioctl_dm-v.Po -rm -f ./$(DEPDIR)/ioctl_dm.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-v-Xverbose.Po -rm -f ./$(DEPDIR)/ioctl_evdev-success-v.Po -rm -f ./$(DEPDIR)/ioctl_evdev-success.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-v-Xverbose.Po -rm -f ./$(DEPDIR)/ioctl_evdev-v.Po -rm -f ./$(DEPDIR)/ioctl_evdev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-v-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-v.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-v-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-v.Po + -rm -f ./$(DEPDIR)/ioctl_hdio.Po -rm -f ./$(DEPDIR)/ioctl_inotify.Po -rm -f ./$(DEPDIR)/ioctl_kvm_run-v.Po -rm -f ./$(DEPDIR)/ioctl_kvm_run.Po @@ -9373,10 +12437,28 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/ioctl_sg_io_v3.Po -rm -f ./$(DEPDIR)/ioctl_sg_io_v4.Po -rm -f ./$(DEPDIR)/ioctl_sock_gifconf.Po + -rm -f ./$(DEPDIR)/ioctl_tee.Po -rm -f ./$(DEPDIR)/ioctl_uffdio.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-v-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-v.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-v-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-v.Po -rm -f ./$(DEPDIR)/ioctl_v4l2.Po + -rm -f ./$(DEPDIR)/ioctl_watchdog.Po -rm -f ./$(DEPDIR)/ioperm.Po -rm -f ./$(DEPDIR)/iopl.Po + -rm -f ./$(DEPDIR)/ioprio--pidns-translation.Po -rm -f ./$(DEPDIR)/ioprio-Xabbrev.Po -rm -f ./$(DEPDIR)/ioprio-Xraw.Po -rm -f ./$(DEPDIR)/ioprio-Xverbose.Po @@ -9400,6 +12482,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/ipc_shm-Xverbose.Po -rm -f ./$(DEPDIR)/ipc_shm.Po -rm -f ./$(DEPDIR)/is_linux_mips_n64.Po + -rm -f ./$(DEPDIR)/kcmp-y--pidns-translation.Po -rm -f ./$(DEPDIR)/kcmp-y.Po -rm -f ./$(DEPDIR)/kcmp.Po -rm -f ./$(DEPDIR)/kern_features.Po @@ -9413,12 +12496,14 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/keyctl-Xraw.Po -rm -f ./$(DEPDIR)/keyctl-Xverbose.Po -rm -f ./$(DEPDIR)/keyctl.Po + -rm -f ./$(DEPDIR)/kill--pidns-translation.Po -rm -f ./$(DEPDIR)/kill.Po -rm -f ./$(DEPDIR)/kill_child.Po -rm -f ./$(DEPDIR)/ksysent.Po -rm -f ./$(DEPDIR)/lchown.Po -rm -f ./$(DEPDIR)/lchown32.Po -rm -f ./$(DEPDIR)/libtests_a-create_nl_socket.Po + -rm -f ./$(DEPDIR)/libtests_a-create_tmpfile.Po -rm -f ./$(DEPDIR)/libtests_a-errno2name.Po -rm -f ./$(DEPDIR)/libtests_a-error_msg.Po -rm -f ./$(DEPDIR)/libtests_a-fill_memory.Po @@ -9430,20 +12515,26 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/libtests_a-inode_of_sockfd.Po -rm -f ./$(DEPDIR)/libtests_a-libmmsg.Po -rm -f ./$(DEPDIR)/libtests_a-libsocketcall.Po + -rm -f ./$(DEPDIR)/libtests_a-lock_file.Po -rm -f ./$(DEPDIR)/libtests_a-overflowuid.Po + -rm -f ./$(DEPDIR)/libtests_a-pidns.Po -rm -f ./$(DEPDIR)/libtests_a-pipe_maxfd.Po -rm -f ./$(DEPDIR)/libtests_a-print_quoted_string.Po -rm -f ./$(DEPDIR)/libtests_a-print_time.Po -rm -f ./$(DEPDIR)/libtests_a-printflags.Po - -rm -f ./$(DEPDIR)/libtests_a-printxval.Po + -rm -f ./$(DEPDIR)/libtests_a-printxval-Xabbrev.Po + -rm -f ./$(DEPDIR)/libtests_a-printxval-Xraw.Po + -rm -f ./$(DEPDIR)/libtests_a-printxval-Xverbose.Po -rm -f ./$(DEPDIR)/libtests_a-signal2name.Po -rm -f ./$(DEPDIR)/libtests_a-skip_unavailable.Po -rm -f ./$(DEPDIR)/libtests_a-sprintrc.Po + -rm -f ./$(DEPDIR)/libtests_a-status.Po -rm -f ./$(DEPDIR)/libtests_a-tail_alloc.Po -rm -f ./$(DEPDIR)/libtests_a-test_printpath.Po -rm -f ./$(DEPDIR)/libtests_a-test_printstrn.Po -rm -f ./$(DEPDIR)/libtests_a-test_ucopy.Po -rm -f ./$(DEPDIR)/libtests_a-tprintf.Po + -rm -f ./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po -rm -f ./$(DEPDIR)/link.Po -rm -f ./$(DEPDIR)/linkat.Po -rm -f ./$(DEPDIR)/list_sigaction_signum.Po @@ -9455,12 +12546,18 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/lstat.Po -rm -f ./$(DEPDIR)/lstat64-lstat64.Po -rm -f ./$(DEPDIR)/madvise.Po + -rm -f ./$(DEPDIR)/maybe_switch_current_tcp--quiet-thread-execve.Po + -rm -f ./$(DEPDIR)/maybe_switch_current_tcp.Po + -rm -f ./$(DEPDIR)/mbind-Xabbrev.Po + -rm -f ./$(DEPDIR)/mbind-Xraw.Po + -rm -f ./$(DEPDIR)/mbind-Xverbose.Po -rm -f ./$(DEPDIR)/mbind.Po -rm -f ./$(DEPDIR)/membarrier.Po -rm -f ./$(DEPDIR)/memfd_create-Xabbrev.Po -rm -f ./$(DEPDIR)/memfd_create-Xraw.Po -rm -f ./$(DEPDIR)/memfd_create-Xverbose.Po -rm -f ./$(DEPDIR)/memfd_create.Po + -rm -f ./$(DEPDIR)/migrate_pages--pidns-translation.Po -rm -f ./$(DEPDIR)/migrate_pages.Po -rm -f ./$(DEPDIR)/mincore.Po -rm -f ./$(DEPDIR)/mkdir.Po @@ -9487,6 +12584,9 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/mount-Xraw.Po -rm -f ./$(DEPDIR)/mount-Xverbose.Po -rm -f ./$(DEPDIR)/mount.Po + -rm -f ./$(DEPDIR)/move_mount-P.Po + -rm -f ./$(DEPDIR)/move_mount.Po + -rm -f ./$(DEPDIR)/move_pages--pidns-translation.Po -rm -f ./$(DEPDIR)/move_pages-Xabbrev.Po -rm -f ./$(DEPDIR)/move_pages-Xraw.Po -rm -f ./$(DEPDIR)/move_pages-Xverbose.Po @@ -9500,12 +12600,17 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/msg_name.Po -rm -f ./$(DEPDIR)/munlockall.Po -rm -f ./$(DEPDIR)/nanosleep.Po + -rm -f ./$(DEPDIR)/net--decode-fds-dev-netlink.Po + -rm -f ./$(DEPDIR)/net--decode-fds-none-netlink.Po + -rm -f ./$(DEPDIR)/net--decode-fds-path-netlink.Po + -rm -f ./$(DEPDIR)/net--decode-fds-socket-netlink.Po -rm -f ./$(DEPDIR)/net-accept-connect.Po -rm -f ./$(DEPDIR)/net-icmp_filter.Po -rm -f ./$(DEPDIR)/net-packet_mreq-Xabbrev.Po -rm -f ./$(DEPDIR)/net-packet_mreq-Xraw.Po -rm -f ./$(DEPDIR)/net-packet_mreq-Xverbose.Po -rm -f ./$(DEPDIR)/net-packet_mreq.Po + -rm -f ./$(DEPDIR)/net-sockaddr--pidns-translation.Po -rm -f ./$(DEPDIR)/net-sockaddr.Po -rm -f ./$(DEPDIR)/net-tpacket_req.Po -rm -f ./$(DEPDIR)/net-tpacket_stats-success.Po @@ -9515,6 +12620,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/net-yy-inet6.Po -rm -f ./$(DEPDIR)/net-yy-netlink.Po -rm -f ./$(DEPDIR)/net-yy-unix.Po + -rm -f ./$(DEPDIR)/netlink_audit--pidns-translation.Po -rm -f ./$(DEPDIR)/netlink_audit.Po -rm -f ./$(DEPDIR)/netlink_crypto.Po -rm -f ./$(DEPDIR)/netlink_generic.Po @@ -9552,6 +12658,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/nlattr_ifla_brport.Po -rm -f ./$(DEPDIR)/nlattr_ifla_linkinfo.Po -rm -f ./$(DEPDIR)/nlattr_ifla_port.Po + -rm -f ./$(DEPDIR)/nlattr_ifla_xdp-y.Po -rm -f ./$(DEPDIR)/nlattr_ifla_xdp.Po -rm -f ./$(DEPDIR)/nlattr_inet_diag_msg.Po -rm -f ./$(DEPDIR)/nlattr_inet_diag_req_compat.Po @@ -9588,7 +12695,19 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/oldselect.Po -rm -f ./$(DEPDIR)/oldstat.Po -rm -f ./$(DEPDIR)/open.Po + -rm -f ./$(DEPDIR)/open_tree-P.Po + -rm -f ./$(DEPDIR)/open_tree.Po -rm -f ./$(DEPDIR)/openat.Po + -rm -f ./$(DEPDIR)/openat2-Xabbrev.Po + -rm -f ./$(DEPDIR)/openat2-Xraw.Po + -rm -f ./$(DEPDIR)/openat2-Xverbose.Po + -rm -f ./$(DEPDIR)/openat2-v-y-Xabbrev.Po + -rm -f ./$(DEPDIR)/openat2-v-y-Xraw.Po + -rm -f ./$(DEPDIR)/openat2-v-y-Xverbose.Po + -rm -f ./$(DEPDIR)/openat2-v-y.Po + -rm -f ./$(DEPDIR)/openat2-v.Po + -rm -f ./$(DEPDIR)/openat2-y.Po + -rm -f ./$(DEPDIR)/openat2.Po -rm -f ./$(DEPDIR)/orphaned_process_group.Po -rm -f ./$(DEPDIR)/osf_utimes.Po -rm -f ./$(DEPDIR)/pause.Po @@ -9600,7 +12719,20 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/personality-Xraw.Po -rm -f ./$(DEPDIR)/personality-Xverbose.Po -rm -f ./$(DEPDIR)/personality.Po + -rm -f ./$(DEPDIR)/pidfd_getfd-y.Po + -rm -f ./$(DEPDIR)/pidfd_getfd-yy.Po + -rm -f ./$(DEPDIR)/pidfd_getfd.Po + -rm -f ./$(DEPDIR)/pidfd_open--decode-fd-path.Po + -rm -f ./$(DEPDIR)/pidfd_open--decode-fd-pidfd.Po + -rm -f ./$(DEPDIR)/pidfd_open--decode-fd-socket.Po + -rm -f ./$(DEPDIR)/pidfd_open--pidns-translation.Po + -rm -f ./$(DEPDIR)/pidfd_open-P.Po + -rm -f ./$(DEPDIR)/pidfd_open-y.Po + -rm -f ./$(DEPDIR)/pidfd_open-yy.Po + -rm -f ./$(DEPDIR)/pidfd_open.Po + -rm -f ./$(DEPDIR)/pidfd_send_signal--pidns-translation.Po -rm -f ./$(DEPDIR)/pidfd_send_signal.Po + -rm -f ./$(DEPDIR)/pidns-cache.Po -rm -f ./$(DEPDIR)/pipe.Po -rm -f ./$(DEPDIR)/pipe2.Po -rm -f ./$(DEPDIR)/pkey_alloc.Po @@ -9627,6 +12759,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/preadv2-pwritev2.Po -rm -f ./$(DEPDIR)/preadv_pwritev-preadv-pwritev.Po -rm -f ./$(DEPDIR)/print_maxfd.Po + -rm -f ./$(DEPDIR)/print_ppid_tracerpid.Po -rm -f ./$(DEPDIR)/printpath-umovestr-peekdata.Po -rm -f ./$(DEPDIR)/printpath-umovestr-undumpable.Po -rm -f ./$(DEPDIR)/printpath-umovestr.Po @@ -9637,8 +12770,11 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/printstrn-umoven-peekdata.Po -rm -f ./$(DEPDIR)/printstrn-umoven-undumpable.Po -rm -f ./$(DEPDIR)/printstrn-umoven.Po + -rm -f ./$(DEPDIR)/prlimit64--pidns-translation.Po -rm -f ./$(DEPDIR)/prlimit64.Po + -rm -f ./$(DEPDIR)/process_vm_readv--pidns-translation.Po -rm -f ./$(DEPDIR)/process_vm_readv.Po + -rm -f ./$(DEPDIR)/process_vm_writev--pidns-translation.Po -rm -f ./$(DEPDIR)/process_vm_writev.Po -rm -f ./$(DEPDIR)/pselect6.Po -rm -f ./$(DEPDIR)/ptrace.Po @@ -9667,6 +12803,8 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/readlinkat.Po -rm -f ./$(DEPDIR)/readv.Po -rm -f ./$(DEPDIR)/reboot.Po + -rm -f ./$(DEPDIR)/recv-MSG_TRUNC.Po + -rm -f ./$(DEPDIR)/recvfrom-MSG_TRUNC.Po -rm -f ./$(DEPDIR)/recvfrom.Po -rm -f ./$(DEPDIR)/recvmmsg-timeout.Po -rm -f ./$(DEPDIR)/recvmsg.Po @@ -9685,10 +12823,12 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/rt_sigaction.Po -rm -f ./$(DEPDIR)/rt_sigpending.Po -rm -f ./$(DEPDIR)/rt_sigprocmask.Po + -rm -f ./$(DEPDIR)/rt_sigqueueinfo--pidns-translation.Po -rm -f ./$(DEPDIR)/rt_sigqueueinfo.Po -rm -f ./$(DEPDIR)/rt_sigreturn.Po -rm -f ./$(DEPDIR)/rt_sigsuspend.Po -rm -f ./$(DEPDIR)/rt_sigtimedwait.Po + -rm -f ./$(DEPDIR)/rt_tgsigqueueinfo--pidns-translation.Po -rm -f ./$(DEPDIR)/rt_tgsigqueueinfo.Po -rm -f ./$(DEPDIR)/run_expect_termsig.Po -rm -f ./$(DEPDIR)/s390_guarded_storage-v.Po @@ -9699,9 +12839,13 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/s390_sthyi.Po -rm -f ./$(DEPDIR)/sched_get_priority_mxx.Po -rm -f ./$(DEPDIR)/sched_rr_get_interval.Po + -rm -f ./$(DEPDIR)/sched_xetaffinity--pidns-translation.Po -rm -f ./$(DEPDIR)/sched_xetaffinity.Po + -rm -f ./$(DEPDIR)/sched_xetattr--pidns-translation.Po -rm -f ./$(DEPDIR)/sched_xetattr.Po + -rm -f ./$(DEPDIR)/sched_xetparam--pidns-translation.Po -rm -f ./$(DEPDIR)/sched_xetparam.Po + -rm -f ./$(DEPDIR)/sched_xetscheduler--pidns-translation.Po -rm -f ./$(DEPDIR)/sched_xetscheduler.Po -rm -f ./$(DEPDIR)/sched_yield.Po -rm -f ./$(DEPDIR)/scm_rights.Po @@ -9711,9 +12855,14 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/seccomp_get_action_avail.Po -rm -f ./$(DEPDIR)/select-P.Po -rm -f ./$(DEPDIR)/select.Po + -rm -f ./$(DEPDIR)/semop-indirect.Po -rm -f ./$(DEPDIR)/semop.Po + -rm -f ./$(DEPDIR)/semtimedop.Po -rm -f ./$(DEPDIR)/sendfile.Po -rm -f ./$(DEPDIR)/sendfile64.Po + -rm -f ./$(DEPDIR)/set_mempolicy-Xabbrev.Po + -rm -f ./$(DEPDIR)/set_mempolicy-Xraw.Po + -rm -f ./$(DEPDIR)/set_mempolicy-Xverbose.Po -rm -f ./$(DEPDIR)/set_mempolicy.Po -rm -f ./$(DEPDIR)/set_ptracer_any.Po -rm -f ./$(DEPDIR)/set_sigblock.Po @@ -9729,6 +12878,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/setgroups32.Po -rm -f ./$(DEPDIR)/sethostname.Po -rm -f ./$(DEPDIR)/setns.Po + -rm -f ./$(DEPDIR)/setpgrp-exec.Po -rm -f ./$(DEPDIR)/setregid.Po -rm -f ./$(DEPDIR)/setregid32.Po -rm -f ./$(DEPDIR)/setresgid.Po @@ -9749,6 +12899,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/sigaltstack.Po -rm -f ./$(DEPDIR)/siginfo.Po -rm -f ./$(DEPDIR)/signal.Po + -rm -f ./$(DEPDIR)/signal_receive--pidns-translation.Po -rm -f ./$(DEPDIR)/signal_receive.Po -rm -f ./$(DEPDIR)/signalfd4.Po -rm -f ./$(DEPDIR)/sigpending.Po @@ -9758,6 +12909,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/sleep.Po -rm -f ./$(DEPDIR)/so_error.Po -rm -f ./$(DEPDIR)/so_linger.Po + -rm -f ./$(DEPDIR)/so_peercred--pidns-translation.Po -rm -f ./$(DEPDIR)/so_peercred-Xabbrev.Po -rm -f ./$(DEPDIR)/so_peercred-Xraw.Po -rm -f ./$(DEPDIR)/so_peercred-Xverbose.Po @@ -9777,6 +12929,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/stack-fcall-1.Po -rm -f ./$(DEPDIR)/stack-fcall-2.Po -rm -f ./$(DEPDIR)/stack-fcall-3.Po + -rm -f ./$(DEPDIR)/stack-fcall-attach.Po -rm -f ./$(DEPDIR)/stack-fcall-mangled-0.Po -rm -f ./$(DEPDIR)/stack-fcall-mangled-1.Po -rm -f ./$(DEPDIR)/stack-fcall-mangled-2.Po @@ -9787,7 +12940,25 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/stat64-stat64.Po -rm -f ./$(DEPDIR)/statfs-statfs.Po -rm -f ./$(DEPDIR)/statfs64.Po + -rm -f ./$(DEPDIR)/status-all.Po + -rm -f ./$(DEPDIR)/status-failed-long.Po + -rm -f ./$(DEPDIR)/status-failed-status.Po + -rm -f ./$(DEPDIR)/status-failed.Po + -rm -f ./$(DEPDIR)/status-none-f.Po + -rm -f ./$(DEPDIR)/status-none-threads.Po + -rm -f ./$(DEPDIR)/status-none.Po + -rm -f ./$(DEPDIR)/status-successful-long.Po + -rm -f ./$(DEPDIR)/status-successful-status.Po + -rm -f ./$(DEPDIR)/status-successful.Po + -rm -f ./$(DEPDIR)/status-unfinished-threads.Po + -rm -f ./$(DEPDIR)/status-unfinished.Po -rm -f ./$(DEPDIR)/statx.Po + -rm -f ./$(DEPDIR)/strace--strings-in-hex-all.Po + -rm -f ./$(DEPDIR)/strace--strings-in-hex-non-ascii.Po + -rm -f ./$(DEPDIR)/strace--strings-in-hex.Po + -rm -f ./$(DEPDIR)/strace-n.Po + -rm -f ./$(DEPDIR)/strace-x.Po + -rm -f ./$(DEPDIR)/strace-xx.Po -rm -f ./$(DEPDIR)/swap.Po -rm -f ./$(DEPDIR)/sxetmask.Po -rm -f ./$(DEPDIR)/symlink.Po @@ -9796,8 +12967,15 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/sync_file_range.Po -rm -f ./$(DEPDIR)/sync_file_range2.Po -rm -f ./$(DEPDIR)/sysinfo.Po + -rm -f ./$(DEPDIR)/syslog-success.Po -rm -f ./$(DEPDIR)/syslog.Po -rm -f ./$(DEPDIR)/tee.Po + -rm -f ./$(DEPDIR)/tgkill--pidns-translation.Po + -rm -f ./$(DEPDIR)/tgkill.Po + -rm -f ./$(DEPDIR)/threads-execve--quiet-thread-execve.Po + -rm -f ./$(DEPDIR)/threads-execve-q.Po + -rm -f ./$(DEPDIR)/threads-execve-qq.Po + -rm -f ./$(DEPDIR)/threads-execve-qqq.Po -rm -f ./$(DEPDIR)/threads-execve.Po -rm -f ./$(DEPDIR)/time.Po -rm -f ./$(DEPDIR)/timer_create.Po @@ -9805,6 +12983,11 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/timerfd_xettime.Po -rm -f ./$(DEPDIR)/times-fail.Po -rm -f ./$(DEPDIR)/times.Po + -rm -f ./$(DEPDIR)/tkill--pidns-translation.Po + -rm -f ./$(DEPDIR)/tkill.Po + -rm -f ./$(DEPDIR)/tracer_ppid_pgid_sid.Po + -rm -f ./$(DEPDIR)/trie_test-trie_for_tests.Po + -rm -f ./$(DEPDIR)/trie_test-trie_test.Po -rm -f ./$(DEPDIR)/truncate.Po -rm -f ./$(DEPDIR)/truncate64-truncate64.Po -rm -f ./$(DEPDIR)/ugetrlimit.Po @@ -9817,6 +13000,8 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/umovestr.Po -rm -f ./$(DEPDIR)/umovestr2.Po -rm -f ./$(DEPDIR)/umovestr3.Po + -rm -f ./$(DEPDIR)/umovestr_cached.Po + -rm -f ./$(DEPDIR)/umovestr_cached_adjacent.Po -rm -f ./$(DEPDIR)/uname.Po -rm -f ./$(DEPDIR)/unblock_reset_raise.Po -rm -f ./$(DEPDIR)/unix-pair-send-recv.Po @@ -9842,10 +13027,13 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/waitpid.Po -rm -f ./$(DEPDIR)/xattr-strings.Po -rm -f ./$(DEPDIR)/xattr.Po + -rm -f ./$(DEPDIR)/xet_robust_list--pidns-translation.Po -rm -f ./$(DEPDIR)/xet_robust_list.Po -rm -f ./$(DEPDIR)/xet_thread_area_x86.Po -rm -f ./$(DEPDIR)/xetitimer.Po + -rm -f ./$(DEPDIR)/xetpgid--pidns-translation.Po -rm -f ./$(DEPDIR)/xetpgid.Po + -rm -f ./$(DEPDIR)/xetpriority--pidns-translation.Po -rm -f ./$(DEPDIR)/xetpriority.Po -rm -f ./$(DEPDIR)/xettimeofday.Po -rm -f ./$(DEPDIR)/zeroargc.Po @@ -9911,10 +13099,12 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/attach-p-cmd-cmd.Po -rm -f ./$(DEPDIR)/attach-p-cmd-p.Po -rm -f ./$(DEPDIR)/block_reset_raise_run.Po + -rm -f ./$(DEPDIR)/block_reset_run.Po -rm -f ./$(DEPDIR)/bpf-obj_get_info_by_fd-prog-v.Po -rm -f ./$(DEPDIR)/bpf-obj_get_info_by_fd-prog.Po -rm -f ./$(DEPDIR)/bpf-obj_get_info_by_fd-v.Po -rm -f ./$(DEPDIR)/bpf-obj_get_info_by_fd.Po + -rm -f ./$(DEPDIR)/bpf-success-long-y.Po -rm -f ./$(DEPDIR)/bpf-success-v.Po -rm -f ./$(DEPDIR)/bpf-success.Po -rm -f ./$(DEPDIR)/bpf-v.Po @@ -9932,16 +13122,48 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/clock_adjtime.Po -rm -f ./$(DEPDIR)/clock_nanosleep.Po -rm -f ./$(DEPDIR)/clock_xettime.Po + -rm -f ./$(DEPDIR)/clone-flags.Po + -rm -f ./$(DEPDIR)/clone3-Xabbrev.Po + -rm -f ./$(DEPDIR)/clone3-Xraw.Po + -rm -f ./$(DEPDIR)/clone3-Xverbose.Po + -rm -f ./$(DEPDIR)/clone3-success-Xabbrev.Po + -rm -f ./$(DEPDIR)/clone3-success-Xraw.Po + -rm -f ./$(DEPDIR)/clone3-success-Xverbose.Po + -rm -f ./$(DEPDIR)/clone3-success.Po + -rm -f ./$(DEPDIR)/clone3.Po + -rm -f ./$(DEPDIR)/clone_parent--quiet-exit.Po + -rm -f ./$(DEPDIR)/clone_parent-q.Po + -rm -f ./$(DEPDIR)/clone_parent-qq.Po -rm -f ./$(DEPDIR)/clone_parent.Po + -rm -f ./$(DEPDIR)/clone_ptrace--quiet-attach.Po + -rm -f ./$(DEPDIR)/clone_ptrace--quiet-exit.Po + -rm -f ./$(DEPDIR)/clone_ptrace-q.Po + -rm -f ./$(DEPDIR)/clone_ptrace-qq.Po -rm -f ./$(DEPDIR)/clone_ptrace.Po + -rm -f ./$(DEPDIR)/close_range-P.Po + -rm -f ./$(DEPDIR)/close_range-y.Po + -rm -f ./$(DEPDIR)/close_range-yy.Po + -rm -f ./$(DEPDIR)/close_range.Po -rm -f ./$(DEPDIR)/copy_file_range.Po -rm -f ./$(DEPDIR)/count-f.Po -rm -f ./$(DEPDIR)/creat.Po -rm -f ./$(DEPDIR)/delay.Po -rm -f ./$(DEPDIR)/delete_module.Po + -rm -f ./$(DEPDIR)/dev--decode-fds-dev.Po + -rm -f ./$(DEPDIR)/dev--decode-fds-path.Po + -rm -f ./$(DEPDIR)/dev--decode-fds-socket.Po -rm -f ./$(DEPDIR)/dev-yy.Po + -rm -f ./$(DEPDIR)/dup-P.Po + -rm -f ./$(DEPDIR)/dup-y.Po + -rm -f ./$(DEPDIR)/dup-yy.Po -rm -f ./$(DEPDIR)/dup.Po + -rm -f ./$(DEPDIR)/dup2-P.Po + -rm -f ./$(DEPDIR)/dup2-y.Po + -rm -f ./$(DEPDIR)/dup2-yy.Po -rm -f ./$(DEPDIR)/dup2.Po + -rm -f ./$(DEPDIR)/dup3-P.Po + -rm -f ./$(DEPDIR)/dup3-y.Po + -rm -f ./$(DEPDIR)/dup3-yy.Po -rm -f ./$(DEPDIR)/dup3.Po -rm -f ./$(DEPDIR)/epoll_create.Po -rm -f ./$(DEPDIR)/epoll_create1.Po @@ -9954,7 +13176,14 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/execve.Po -rm -f ./$(DEPDIR)/execveat-v.Po -rm -f ./$(DEPDIR)/execveat.Po + -rm -f ./$(DEPDIR)/faccessat-P.Po + -rm -f ./$(DEPDIR)/faccessat-y.Po + -rm -f ./$(DEPDIR)/faccessat-yy.Po -rm -f ./$(DEPDIR)/faccessat.Po + -rm -f ./$(DEPDIR)/faccessat2-P.Po + -rm -f ./$(DEPDIR)/faccessat2-y.Po + -rm -f ./$(DEPDIR)/faccessat2-yy.Po + -rm -f ./$(DEPDIR)/faccessat2.Po -rm -f ./$(DEPDIR)/fadvise64.Po -rm -f ./$(DEPDIR)/fadvise64_64.Po -rm -f ./$(DEPDIR)/fallocate.Po @@ -9969,16 +13198,27 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/fchown.Po -rm -f ./$(DEPDIR)/fchown32.Po -rm -f ./$(DEPDIR)/fchownat.Po + -rm -f ./$(DEPDIR)/fcntl--pidns-translation.Po -rm -f ./$(DEPDIR)/fcntl.Po + -rm -f ./$(DEPDIR)/fcntl64--pidns-translation.Po -rm -f ./$(DEPDIR)/fcntl64.Po -rm -f ./$(DEPDIR)/fdatasync.Po -rm -f ./$(DEPDIR)/fflush.Po -rm -f ./$(DEPDIR)/file_handle.Po -rm -f ./$(DEPDIR)/file_ioctl.Po -rm -f ./$(DEPDIR)/filter-unavailable.Po + -rm -f ./$(DEPDIR)/filter_seccomp-flag.Po + -rm -f ./$(DEPDIR)/filter_seccomp-perf.Po -rm -f ./$(DEPDIR)/finit_module.Po -rm -f ./$(DEPDIR)/flock.Po + -rm -f ./$(DEPDIR)/fork--pidns-translation.Po -rm -f ./$(DEPDIR)/fork-f.Po + -rm -f ./$(DEPDIR)/fsconfig-P.Po + -rm -f ./$(DEPDIR)/fsconfig.Po + -rm -f ./$(DEPDIR)/fsmount.Po + -rm -f ./$(DEPDIR)/fsopen.Po + -rm -f ./$(DEPDIR)/fspick-P.Po + -rm -f ./$(DEPDIR)/fspick.Po -rm -f ./$(DEPDIR)/fstat-Xabbrev.Po -rm -f ./$(DEPDIR)/fstat-Xraw.Po -rm -f ./$(DEPDIR)/fstat-Xverbose.Po @@ -9997,9 +13237,12 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/futex.Po -rm -f ./$(DEPDIR)/futimesat.Po -rm -f ./$(DEPDIR)/get_mempolicy.Po + -rm -f ./$(DEPDIR)/get_process_reaper.Po -rm -f ./$(DEPDIR)/getcpu.Po -rm -f ./$(DEPDIR)/getcwd.Po + -rm -f ./$(DEPDIR)/getdents-v.Po -rm -f ./$(DEPDIR)/getdents.Po + -rm -f ./$(DEPDIR)/getdents64-v.Po -rm -f ./$(DEPDIR)/getdents64.Po -rm -f ./$(DEPDIR)/getegid.Po -rm -f ./$(DEPDIR)/getegid32.Po @@ -10010,7 +13253,9 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/getgroups.Po -rm -f ./$(DEPDIR)/getgroups32.Po -rm -f ./$(DEPDIR)/getpeername.Po + -rm -f ./$(DEPDIR)/getpgrp--pidns-translation.Po -rm -f ./$(DEPDIR)/getpgrp.Po + -rm -f ./$(DEPDIR)/getpid--pidns-translation.Po -rm -f ./$(DEPDIR)/getpid.Po -rm -f ./$(DEPDIR)/getppid.Po -rm -f ./$(DEPDIR)/getrandom.Po @@ -10020,30 +13265,66 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/getresuid32.Po -rm -f ./$(DEPDIR)/getrlimit.Po -rm -f ./$(DEPDIR)/getrusage.Po + -rm -f ./$(DEPDIR)/getsid--pidns-translation.Po -rm -f ./$(DEPDIR)/getsid.Po -rm -f ./$(DEPDIR)/getsockname.Po + -rm -f ./$(DEPDIR)/gettid--pidns-translation.Po -rm -f ./$(DEPDIR)/gettid.Po -rm -f ./$(DEPDIR)/getuid.Po -rm -f ./$(DEPDIR)/getuid32.Po - -rm -f ./$(DEPDIR)/getxxid.Po + -rm -f ./$(DEPDIR)/getxgid.Po + -rm -f ./$(DEPDIR)/getxpid.Po + -rm -f ./$(DEPDIR)/getxuid.Po -rm -f ./$(DEPDIR)/group_req.Po -rm -f ./$(DEPDIR)/inet-cmsg.Po -rm -f ./$(DEPDIR)/init_module.Po -rm -f ./$(DEPDIR)/inject-nf.Po -rm -f ./$(DEPDIR)/inotify.Po + -rm -f ./$(DEPDIR)/inotify_init-y.Po + -rm -f ./$(DEPDIR)/inotify_init.Po + -rm -f ./$(DEPDIR)/inotify_init1-y.Po -rm -f ./$(DEPDIR)/inotify_init1.Po -rm -f ./$(DEPDIR)/int_0x80.Po -rm -f ./$(DEPDIR)/io_uring_enter.Po -rm -f ./$(DEPDIR)/io_uring_register.Po -rm -f ./$(DEPDIR)/io_uring_setup.Po -rm -f ./$(DEPDIR)/ioctl.Po + -rm -f ./$(DEPDIR)/ioctl_block--pidns-translation.Po -rm -f ./$(DEPDIR)/ioctl_block.Po -rm -f ./$(DEPDIR)/ioctl_dm-v.Po -rm -f ./$(DEPDIR)/ioctl_dm.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-v-Xverbose.Po -rm -f ./$(DEPDIR)/ioctl_evdev-success-v.Po -rm -f ./$(DEPDIR)/ioctl_evdev-success.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-v-Xverbose.Po -rm -f ./$(DEPDIR)/ioctl_evdev-v.Po -rm -f ./$(DEPDIR)/ioctl_evdev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-v-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-v.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-v-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-v.Po + -rm -f ./$(DEPDIR)/ioctl_hdio.Po -rm -f ./$(DEPDIR)/ioctl_inotify.Po -rm -f ./$(DEPDIR)/ioctl_kvm_run-v.Po -rm -f ./$(DEPDIR)/ioctl_kvm_run.Po @@ -10064,10 +13345,28 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/ioctl_sg_io_v3.Po -rm -f ./$(DEPDIR)/ioctl_sg_io_v4.Po -rm -f ./$(DEPDIR)/ioctl_sock_gifconf.Po + -rm -f ./$(DEPDIR)/ioctl_tee.Po -rm -f ./$(DEPDIR)/ioctl_uffdio.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-v-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-v.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-v-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-v.Po -rm -f ./$(DEPDIR)/ioctl_v4l2.Po + -rm -f ./$(DEPDIR)/ioctl_watchdog.Po -rm -f ./$(DEPDIR)/ioperm.Po -rm -f ./$(DEPDIR)/iopl.Po + -rm -f ./$(DEPDIR)/ioprio--pidns-translation.Po -rm -f ./$(DEPDIR)/ioprio-Xabbrev.Po -rm -f ./$(DEPDIR)/ioprio-Xraw.Po -rm -f ./$(DEPDIR)/ioprio-Xverbose.Po @@ -10091,6 +13390,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/ipc_shm-Xverbose.Po -rm -f ./$(DEPDIR)/ipc_shm.Po -rm -f ./$(DEPDIR)/is_linux_mips_n64.Po + -rm -f ./$(DEPDIR)/kcmp-y--pidns-translation.Po -rm -f ./$(DEPDIR)/kcmp-y.Po -rm -f ./$(DEPDIR)/kcmp.Po -rm -f ./$(DEPDIR)/kern_features.Po @@ -10104,12 +13404,14 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/keyctl-Xraw.Po -rm -f ./$(DEPDIR)/keyctl-Xverbose.Po -rm -f ./$(DEPDIR)/keyctl.Po + -rm -f ./$(DEPDIR)/kill--pidns-translation.Po -rm -f ./$(DEPDIR)/kill.Po -rm -f ./$(DEPDIR)/kill_child.Po -rm -f ./$(DEPDIR)/ksysent.Po -rm -f ./$(DEPDIR)/lchown.Po -rm -f ./$(DEPDIR)/lchown32.Po -rm -f ./$(DEPDIR)/libtests_a-create_nl_socket.Po + -rm -f ./$(DEPDIR)/libtests_a-create_tmpfile.Po -rm -f ./$(DEPDIR)/libtests_a-errno2name.Po -rm -f ./$(DEPDIR)/libtests_a-error_msg.Po -rm -f ./$(DEPDIR)/libtests_a-fill_memory.Po @@ -10121,20 +13423,26 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/libtests_a-inode_of_sockfd.Po -rm -f ./$(DEPDIR)/libtests_a-libmmsg.Po -rm -f ./$(DEPDIR)/libtests_a-libsocketcall.Po + -rm -f ./$(DEPDIR)/libtests_a-lock_file.Po -rm -f ./$(DEPDIR)/libtests_a-overflowuid.Po + -rm -f ./$(DEPDIR)/libtests_a-pidns.Po -rm -f ./$(DEPDIR)/libtests_a-pipe_maxfd.Po -rm -f ./$(DEPDIR)/libtests_a-print_quoted_string.Po -rm -f ./$(DEPDIR)/libtests_a-print_time.Po -rm -f ./$(DEPDIR)/libtests_a-printflags.Po - -rm -f ./$(DEPDIR)/libtests_a-printxval.Po + -rm -f ./$(DEPDIR)/libtests_a-printxval-Xabbrev.Po + -rm -f ./$(DEPDIR)/libtests_a-printxval-Xraw.Po + -rm -f ./$(DEPDIR)/libtests_a-printxval-Xverbose.Po -rm -f ./$(DEPDIR)/libtests_a-signal2name.Po -rm -f ./$(DEPDIR)/libtests_a-skip_unavailable.Po -rm -f ./$(DEPDIR)/libtests_a-sprintrc.Po + -rm -f ./$(DEPDIR)/libtests_a-status.Po -rm -f ./$(DEPDIR)/libtests_a-tail_alloc.Po -rm -f ./$(DEPDIR)/libtests_a-test_printpath.Po -rm -f ./$(DEPDIR)/libtests_a-test_printstrn.Po -rm -f ./$(DEPDIR)/libtests_a-test_ucopy.Po -rm -f ./$(DEPDIR)/libtests_a-tprintf.Po + -rm -f ./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po -rm -f ./$(DEPDIR)/link.Po -rm -f ./$(DEPDIR)/linkat.Po -rm -f ./$(DEPDIR)/list_sigaction_signum.Po @@ -10146,12 +13454,18 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/lstat.Po -rm -f ./$(DEPDIR)/lstat64-lstat64.Po -rm -f ./$(DEPDIR)/madvise.Po + -rm -f ./$(DEPDIR)/maybe_switch_current_tcp--quiet-thread-execve.Po + -rm -f ./$(DEPDIR)/maybe_switch_current_tcp.Po + -rm -f ./$(DEPDIR)/mbind-Xabbrev.Po + -rm -f ./$(DEPDIR)/mbind-Xraw.Po + -rm -f ./$(DEPDIR)/mbind-Xverbose.Po -rm -f ./$(DEPDIR)/mbind.Po -rm -f ./$(DEPDIR)/membarrier.Po -rm -f ./$(DEPDIR)/memfd_create-Xabbrev.Po -rm -f ./$(DEPDIR)/memfd_create-Xraw.Po -rm -f ./$(DEPDIR)/memfd_create-Xverbose.Po -rm -f ./$(DEPDIR)/memfd_create.Po + -rm -f ./$(DEPDIR)/migrate_pages--pidns-translation.Po -rm -f ./$(DEPDIR)/migrate_pages.Po -rm -f ./$(DEPDIR)/mincore.Po -rm -f ./$(DEPDIR)/mkdir.Po @@ -10178,6 +13492,9 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/mount-Xraw.Po -rm -f ./$(DEPDIR)/mount-Xverbose.Po -rm -f ./$(DEPDIR)/mount.Po + -rm -f ./$(DEPDIR)/move_mount-P.Po + -rm -f ./$(DEPDIR)/move_mount.Po + -rm -f ./$(DEPDIR)/move_pages--pidns-translation.Po -rm -f ./$(DEPDIR)/move_pages-Xabbrev.Po -rm -f ./$(DEPDIR)/move_pages-Xraw.Po -rm -f ./$(DEPDIR)/move_pages-Xverbose.Po @@ -10191,12 +13508,17 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/msg_name.Po -rm -f ./$(DEPDIR)/munlockall.Po -rm -f ./$(DEPDIR)/nanosleep.Po + -rm -f ./$(DEPDIR)/net--decode-fds-dev-netlink.Po + -rm -f ./$(DEPDIR)/net--decode-fds-none-netlink.Po + -rm -f ./$(DEPDIR)/net--decode-fds-path-netlink.Po + -rm -f ./$(DEPDIR)/net--decode-fds-socket-netlink.Po -rm -f ./$(DEPDIR)/net-accept-connect.Po -rm -f ./$(DEPDIR)/net-icmp_filter.Po -rm -f ./$(DEPDIR)/net-packet_mreq-Xabbrev.Po -rm -f ./$(DEPDIR)/net-packet_mreq-Xraw.Po -rm -f ./$(DEPDIR)/net-packet_mreq-Xverbose.Po -rm -f ./$(DEPDIR)/net-packet_mreq.Po + -rm -f ./$(DEPDIR)/net-sockaddr--pidns-translation.Po -rm -f ./$(DEPDIR)/net-sockaddr.Po -rm -f ./$(DEPDIR)/net-tpacket_req.Po -rm -f ./$(DEPDIR)/net-tpacket_stats-success.Po @@ -10206,6 +13528,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/net-yy-inet6.Po -rm -f ./$(DEPDIR)/net-yy-netlink.Po -rm -f ./$(DEPDIR)/net-yy-unix.Po + -rm -f ./$(DEPDIR)/netlink_audit--pidns-translation.Po -rm -f ./$(DEPDIR)/netlink_audit.Po -rm -f ./$(DEPDIR)/netlink_crypto.Po -rm -f ./$(DEPDIR)/netlink_generic.Po @@ -10243,6 +13566,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/nlattr_ifla_brport.Po -rm -f ./$(DEPDIR)/nlattr_ifla_linkinfo.Po -rm -f ./$(DEPDIR)/nlattr_ifla_port.Po + -rm -f ./$(DEPDIR)/nlattr_ifla_xdp-y.Po -rm -f ./$(DEPDIR)/nlattr_ifla_xdp.Po -rm -f ./$(DEPDIR)/nlattr_inet_diag_msg.Po -rm -f ./$(DEPDIR)/nlattr_inet_diag_req_compat.Po @@ -10279,7 +13603,19 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/oldselect.Po -rm -f ./$(DEPDIR)/oldstat.Po -rm -f ./$(DEPDIR)/open.Po + -rm -f ./$(DEPDIR)/open_tree-P.Po + -rm -f ./$(DEPDIR)/open_tree.Po -rm -f ./$(DEPDIR)/openat.Po + -rm -f ./$(DEPDIR)/openat2-Xabbrev.Po + -rm -f ./$(DEPDIR)/openat2-Xraw.Po + -rm -f ./$(DEPDIR)/openat2-Xverbose.Po + -rm -f ./$(DEPDIR)/openat2-v-y-Xabbrev.Po + -rm -f ./$(DEPDIR)/openat2-v-y-Xraw.Po + -rm -f ./$(DEPDIR)/openat2-v-y-Xverbose.Po + -rm -f ./$(DEPDIR)/openat2-v-y.Po + -rm -f ./$(DEPDIR)/openat2-v.Po + -rm -f ./$(DEPDIR)/openat2-y.Po + -rm -f ./$(DEPDIR)/openat2.Po -rm -f ./$(DEPDIR)/orphaned_process_group.Po -rm -f ./$(DEPDIR)/osf_utimes.Po -rm -f ./$(DEPDIR)/pause.Po @@ -10291,7 +13627,20 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/personality-Xraw.Po -rm -f ./$(DEPDIR)/personality-Xverbose.Po -rm -f ./$(DEPDIR)/personality.Po + -rm -f ./$(DEPDIR)/pidfd_getfd-y.Po + -rm -f ./$(DEPDIR)/pidfd_getfd-yy.Po + -rm -f ./$(DEPDIR)/pidfd_getfd.Po + -rm -f ./$(DEPDIR)/pidfd_open--decode-fd-path.Po + -rm -f ./$(DEPDIR)/pidfd_open--decode-fd-pidfd.Po + -rm -f ./$(DEPDIR)/pidfd_open--decode-fd-socket.Po + -rm -f ./$(DEPDIR)/pidfd_open--pidns-translation.Po + -rm -f ./$(DEPDIR)/pidfd_open-P.Po + -rm -f ./$(DEPDIR)/pidfd_open-y.Po + -rm -f ./$(DEPDIR)/pidfd_open-yy.Po + -rm -f ./$(DEPDIR)/pidfd_open.Po + -rm -f ./$(DEPDIR)/pidfd_send_signal--pidns-translation.Po -rm -f ./$(DEPDIR)/pidfd_send_signal.Po + -rm -f ./$(DEPDIR)/pidns-cache.Po -rm -f ./$(DEPDIR)/pipe.Po -rm -f ./$(DEPDIR)/pipe2.Po -rm -f ./$(DEPDIR)/pkey_alloc.Po @@ -10318,6 +13667,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/preadv2-pwritev2.Po -rm -f ./$(DEPDIR)/preadv_pwritev-preadv-pwritev.Po -rm -f ./$(DEPDIR)/print_maxfd.Po + -rm -f ./$(DEPDIR)/print_ppid_tracerpid.Po -rm -f ./$(DEPDIR)/printpath-umovestr-peekdata.Po -rm -f ./$(DEPDIR)/printpath-umovestr-undumpable.Po -rm -f ./$(DEPDIR)/printpath-umovestr.Po @@ -10328,8 +13678,11 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/printstrn-umoven-peekdata.Po -rm -f ./$(DEPDIR)/printstrn-umoven-undumpable.Po -rm -f ./$(DEPDIR)/printstrn-umoven.Po + -rm -f ./$(DEPDIR)/prlimit64--pidns-translation.Po -rm -f ./$(DEPDIR)/prlimit64.Po + -rm -f ./$(DEPDIR)/process_vm_readv--pidns-translation.Po -rm -f ./$(DEPDIR)/process_vm_readv.Po + -rm -f ./$(DEPDIR)/process_vm_writev--pidns-translation.Po -rm -f ./$(DEPDIR)/process_vm_writev.Po -rm -f ./$(DEPDIR)/pselect6.Po -rm -f ./$(DEPDIR)/ptrace.Po @@ -10358,6 +13711,8 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/readlinkat.Po -rm -f ./$(DEPDIR)/readv.Po -rm -f ./$(DEPDIR)/reboot.Po + -rm -f ./$(DEPDIR)/recv-MSG_TRUNC.Po + -rm -f ./$(DEPDIR)/recvfrom-MSG_TRUNC.Po -rm -f ./$(DEPDIR)/recvfrom.Po -rm -f ./$(DEPDIR)/recvmmsg-timeout.Po -rm -f ./$(DEPDIR)/recvmsg.Po @@ -10376,10 +13731,12 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/rt_sigaction.Po -rm -f ./$(DEPDIR)/rt_sigpending.Po -rm -f ./$(DEPDIR)/rt_sigprocmask.Po + -rm -f ./$(DEPDIR)/rt_sigqueueinfo--pidns-translation.Po -rm -f ./$(DEPDIR)/rt_sigqueueinfo.Po -rm -f ./$(DEPDIR)/rt_sigreturn.Po -rm -f ./$(DEPDIR)/rt_sigsuspend.Po -rm -f ./$(DEPDIR)/rt_sigtimedwait.Po + -rm -f ./$(DEPDIR)/rt_tgsigqueueinfo--pidns-translation.Po -rm -f ./$(DEPDIR)/rt_tgsigqueueinfo.Po -rm -f ./$(DEPDIR)/run_expect_termsig.Po -rm -f ./$(DEPDIR)/s390_guarded_storage-v.Po @@ -10390,9 +13747,13 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/s390_sthyi.Po -rm -f ./$(DEPDIR)/sched_get_priority_mxx.Po -rm -f ./$(DEPDIR)/sched_rr_get_interval.Po + -rm -f ./$(DEPDIR)/sched_xetaffinity--pidns-translation.Po -rm -f ./$(DEPDIR)/sched_xetaffinity.Po + -rm -f ./$(DEPDIR)/sched_xetattr--pidns-translation.Po -rm -f ./$(DEPDIR)/sched_xetattr.Po + -rm -f ./$(DEPDIR)/sched_xetparam--pidns-translation.Po -rm -f ./$(DEPDIR)/sched_xetparam.Po + -rm -f ./$(DEPDIR)/sched_xetscheduler--pidns-translation.Po -rm -f ./$(DEPDIR)/sched_xetscheduler.Po -rm -f ./$(DEPDIR)/sched_yield.Po -rm -f ./$(DEPDIR)/scm_rights.Po @@ -10402,9 +13763,14 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/seccomp_get_action_avail.Po -rm -f ./$(DEPDIR)/select-P.Po -rm -f ./$(DEPDIR)/select.Po + -rm -f ./$(DEPDIR)/semop-indirect.Po -rm -f ./$(DEPDIR)/semop.Po + -rm -f ./$(DEPDIR)/semtimedop.Po -rm -f ./$(DEPDIR)/sendfile.Po -rm -f ./$(DEPDIR)/sendfile64.Po + -rm -f ./$(DEPDIR)/set_mempolicy-Xabbrev.Po + -rm -f ./$(DEPDIR)/set_mempolicy-Xraw.Po + -rm -f ./$(DEPDIR)/set_mempolicy-Xverbose.Po -rm -f ./$(DEPDIR)/set_mempolicy.Po -rm -f ./$(DEPDIR)/set_ptracer_any.Po -rm -f ./$(DEPDIR)/set_sigblock.Po @@ -10420,6 +13786,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/setgroups32.Po -rm -f ./$(DEPDIR)/sethostname.Po -rm -f ./$(DEPDIR)/setns.Po + -rm -f ./$(DEPDIR)/setpgrp-exec.Po -rm -f ./$(DEPDIR)/setregid.Po -rm -f ./$(DEPDIR)/setregid32.Po -rm -f ./$(DEPDIR)/setresgid.Po @@ -10440,6 +13807,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/sigaltstack.Po -rm -f ./$(DEPDIR)/siginfo.Po -rm -f ./$(DEPDIR)/signal.Po + -rm -f ./$(DEPDIR)/signal_receive--pidns-translation.Po -rm -f ./$(DEPDIR)/signal_receive.Po -rm -f ./$(DEPDIR)/signalfd4.Po -rm -f ./$(DEPDIR)/sigpending.Po @@ -10449,6 +13817,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/sleep.Po -rm -f ./$(DEPDIR)/so_error.Po -rm -f ./$(DEPDIR)/so_linger.Po + -rm -f ./$(DEPDIR)/so_peercred--pidns-translation.Po -rm -f ./$(DEPDIR)/so_peercred-Xabbrev.Po -rm -f ./$(DEPDIR)/so_peercred-Xraw.Po -rm -f ./$(DEPDIR)/so_peercred-Xverbose.Po @@ -10468,6 +13837,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/stack-fcall-1.Po -rm -f ./$(DEPDIR)/stack-fcall-2.Po -rm -f ./$(DEPDIR)/stack-fcall-3.Po + -rm -f ./$(DEPDIR)/stack-fcall-attach.Po -rm -f ./$(DEPDIR)/stack-fcall-mangled-0.Po -rm -f ./$(DEPDIR)/stack-fcall-mangled-1.Po -rm -f ./$(DEPDIR)/stack-fcall-mangled-2.Po @@ -10478,7 +13848,25 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/stat64-stat64.Po -rm -f ./$(DEPDIR)/statfs-statfs.Po -rm -f ./$(DEPDIR)/statfs64.Po + -rm -f ./$(DEPDIR)/status-all.Po + -rm -f ./$(DEPDIR)/status-failed-long.Po + -rm -f ./$(DEPDIR)/status-failed-status.Po + -rm -f ./$(DEPDIR)/status-failed.Po + -rm -f ./$(DEPDIR)/status-none-f.Po + -rm -f ./$(DEPDIR)/status-none-threads.Po + -rm -f ./$(DEPDIR)/status-none.Po + -rm -f ./$(DEPDIR)/status-successful-long.Po + -rm -f ./$(DEPDIR)/status-successful-status.Po + -rm -f ./$(DEPDIR)/status-successful.Po + -rm -f ./$(DEPDIR)/status-unfinished-threads.Po + -rm -f ./$(DEPDIR)/status-unfinished.Po -rm -f ./$(DEPDIR)/statx.Po + -rm -f ./$(DEPDIR)/strace--strings-in-hex-all.Po + -rm -f ./$(DEPDIR)/strace--strings-in-hex-non-ascii.Po + -rm -f ./$(DEPDIR)/strace--strings-in-hex.Po + -rm -f ./$(DEPDIR)/strace-n.Po + -rm -f ./$(DEPDIR)/strace-x.Po + -rm -f ./$(DEPDIR)/strace-xx.Po -rm -f ./$(DEPDIR)/swap.Po -rm -f ./$(DEPDIR)/sxetmask.Po -rm -f ./$(DEPDIR)/symlink.Po @@ -10487,8 +13875,15 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/sync_file_range.Po -rm -f ./$(DEPDIR)/sync_file_range2.Po -rm -f ./$(DEPDIR)/sysinfo.Po + -rm -f ./$(DEPDIR)/syslog-success.Po -rm -f ./$(DEPDIR)/syslog.Po -rm -f ./$(DEPDIR)/tee.Po + -rm -f ./$(DEPDIR)/tgkill--pidns-translation.Po + -rm -f ./$(DEPDIR)/tgkill.Po + -rm -f ./$(DEPDIR)/threads-execve--quiet-thread-execve.Po + -rm -f ./$(DEPDIR)/threads-execve-q.Po + -rm -f ./$(DEPDIR)/threads-execve-qq.Po + -rm -f ./$(DEPDIR)/threads-execve-qqq.Po -rm -f ./$(DEPDIR)/threads-execve.Po -rm -f ./$(DEPDIR)/time.Po -rm -f ./$(DEPDIR)/timer_create.Po @@ -10496,6 +13891,11 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/timerfd_xettime.Po -rm -f ./$(DEPDIR)/times-fail.Po -rm -f ./$(DEPDIR)/times.Po + -rm -f ./$(DEPDIR)/tkill--pidns-translation.Po + -rm -f ./$(DEPDIR)/tkill.Po + -rm -f ./$(DEPDIR)/tracer_ppid_pgid_sid.Po + -rm -f ./$(DEPDIR)/trie_test-trie_for_tests.Po + -rm -f ./$(DEPDIR)/trie_test-trie_test.Po -rm -f ./$(DEPDIR)/truncate.Po -rm -f ./$(DEPDIR)/truncate64-truncate64.Po -rm -f ./$(DEPDIR)/ugetrlimit.Po @@ -10508,6 +13908,8 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/umovestr.Po -rm -f ./$(DEPDIR)/umovestr2.Po -rm -f ./$(DEPDIR)/umovestr3.Po + -rm -f ./$(DEPDIR)/umovestr_cached.Po + -rm -f ./$(DEPDIR)/umovestr_cached_adjacent.Po -rm -f ./$(DEPDIR)/uname.Po -rm -f ./$(DEPDIR)/unblock_reset_raise.Po -rm -f ./$(DEPDIR)/unix-pair-send-recv.Po @@ -10533,10 +13935,13 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/waitpid.Po -rm -f ./$(DEPDIR)/xattr-strings.Po -rm -f ./$(DEPDIR)/xattr.Po + -rm -f ./$(DEPDIR)/xet_robust_list--pidns-translation.Po -rm -f ./$(DEPDIR)/xet_robust_list.Po -rm -f ./$(DEPDIR)/xet_thread_area_x86.Po -rm -f ./$(DEPDIR)/xetitimer.Po + -rm -f ./$(DEPDIR)/xetpgid--pidns-translation.Po -rm -f ./$(DEPDIR)/xetpgid.Po + -rm -f ./$(DEPDIR)/xetpriority--pidns-translation.Po -rm -f ./$(DEPDIR)/xetpriority.Po -rm -f ./$(DEPDIR)/xettimeofday.Po -rm -f ./$(DEPDIR)/zeroargc.Po @@ -10659,13 +14064,79 @@ $(srcdir)/clock_nanosleep.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/clock_xettime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ -$(srcdir)/copy_file_range.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in +$(srcdir)/clone3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ -$(srcdir)/creat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in +$(srcdir)/clone3-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ -$(srcdir)/delete_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in +$(srcdir)/clone3-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-success-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-success-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-success-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_parent.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_parent--quiet-exit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_parent-q.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_parent-qq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_ptrace--quiet-attach.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_ptrace--quiet-exit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_ptrace-q.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_ptrace-qq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/close_range.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/close_range-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/close_range-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/close_range-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/copy_file_range.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/creat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/delete_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dev--decode-fds-dev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dev--decode-fds-path.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dev--decode-fds-socket.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/dev-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in @@ -10674,12 +14145,39 @@ $(srcdir)/dev-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/dup.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/dup-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/dup2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/dup2-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup2-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup2-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/dup3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/dup3-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup3-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup3-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/epoll_create.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -10704,7 +14202,22 @@ $(srcdir)/execveat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/execveat-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ -$(srcdir)/faccessat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in +$(srcdir)/faccessat-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat2-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat2-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat2-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/fadvise64_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in @@ -10749,9 +14262,15 @@ $(srcdir)/fchownat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/fcntl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/fcntl--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/fcntl64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/fcntl64--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/fdatasync.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -10761,6 +14280,12 @@ $(srcdir)/file_handle.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.i $(srcdir)/file_ioctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/filter_seccomp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/filter_seccomp-flag.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/finit_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -10770,6 +14295,24 @@ $(srcdir)/flock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/fork-f.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/fsconfig.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fsconfig-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fsmount.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fsopen.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fspick.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fspick-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/fstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -10830,27 +14373,51 @@ $(srcdir)/getcwd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/getdents.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getdents-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getdents64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getdents64-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getegid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getegid-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getegid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getegid32-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/geteuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/geteuid-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/geteuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/geteuid32-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getgid-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getgid32-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getgroups.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -10863,9 +14430,15 @@ $(srcdir)/getpeername.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.i $(srcdir)/getpgrp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getpgrp--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getpid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getpid--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getppid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -10893,16 +14466,31 @@ $(srcdir)/getrusage.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/getsid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getsid--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getsockname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/gettid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getuid-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ -$(srcdir)/getxxid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in +$(srcdir)/getuid32-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/getxgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/getxpid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/getxuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/group_req.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in @@ -10917,9 +14505,15 @@ $(srcdir)/init_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.i $(srcdir)/inotify.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/inotify_init.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/inotify_init1.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/inotify_init1-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/io_uring_enter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -10941,9 +14535,96 @@ $(srcdir)/ioctl_dm-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/ioctl_evdev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_evdev-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioctl_evdev-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_evdev-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioctl_inotify.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -10977,6 +14658,9 @@ $(srcdir)/ioctl_nsfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/ioctl_perf.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_perf-success.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioctl_ptp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11001,12 +14685,63 @@ $(srcdir)/ioctl_sg_io_v4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_test $(srcdir)/ioctl_sock_gifconf.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_tee.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioctl_uffdio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/ioctl_v4l2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_v4l2-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_watchdog.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioperm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11016,6 +14751,9 @@ $(srcdir)/iopl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/ioprio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioprio--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioprio-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11082,6 +14820,9 @@ $(srcdir)/kcmp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/kcmp-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/kcmp-y--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/kern_features.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11118,6 +14859,12 @@ $(srcdir)/keyctl-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/kill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/kill--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ksysent.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/lchown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11142,9 +14889,24 @@ $(srcdir)/lstat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/madvise.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/maybe_switch_current_tcp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/maybe_switch_current_tcp--quiet-thread-execve.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/mbind.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/mbind-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/mbind-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/mbind-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/membarrier.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11163,6 +14925,9 @@ $(srcdir)/memfd_create-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/g $(srcdir)/migrate_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/migrate_pages--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/mincore.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11235,6 +15000,12 @@ $(srcdir)/mount-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/mount-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/move_mount.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/move_mount-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/move_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11247,6 +15018,9 @@ $(srcdir)/move_pages-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/move_pages-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/move_pages--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/mq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11274,6 +15048,18 @@ $(srcdir)/munlockall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/nanosleep.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/net--decode-fds-dev-netlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/net--decode-fds-none-netlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/net--decode-fds-path-netlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/net--decode-fds-socket-netlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/net-icmp_filter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11292,6 +15078,9 @@ $(srcdir)/net-packet_mreq-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir $(srcdir)/net-sockaddr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/net-sockaddr--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/net-tpacket_req.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11403,6 +15192,9 @@ $(srcdir)/nlattr_ifla_port.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_te $(srcdir)/nlattr_ifla_xdp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/nlattr_ifla_xdp-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/nlattr_inet_diag_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11502,9 +15294,45 @@ $(srcdir)/oldstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/open.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/open_tree.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/open_tree-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/openat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/openat2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v-y-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v-y-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v-y-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/orphaned_process_group.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11532,9 +15360,45 @@ $(srcdir)/personality-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_te $(srcdir)/personality-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/pidfd_getfd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_getfd-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_getfd-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open--decode-fd-path.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open--decode-fd-pidfd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open--decode-fd-socket.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/pidfd_send_signal.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/pidfd_send_signal--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/pipe2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11601,12 +15465,21 @@ $(srcdir)/printstrn-umoven-undumpable.gen.test: $(abs_srcdir)/gen_tests.sh $(src $(srcdir)/prlimit64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/prlimit64--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/process_vm_readv.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/process_vm_readv--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/process_vm_writev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/process_vm_writev--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/pselect6.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11658,9 +15531,15 @@ $(srcdir)/readlinkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/reboot.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/recv-MSG_TRUNC.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/recvfrom.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/recvfrom-MSG_TRUNC.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/recvmmsg-timeout.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11709,6 +15588,9 @@ $(srcdir)/rt_sigprocmask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_test $(srcdir)/rt_sigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/rt_sigqueueinfo--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/rt_sigreturn.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11721,6 +15603,9 @@ $(srcdir)/rt_sigtimedwait.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/rt_tgsigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/rt_tgsigqueueinfo--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/s390_guarded_storage.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11751,15 +15636,27 @@ $(srcdir)/sched_rr_get_interval.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/g $(srcdir)/sched_xetaffinity.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/sched_xetaffinity--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sched_xetattr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/sched_xetattr--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sched_xetparam.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/sched_xetparam--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sched_xetscheduler.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/sched_xetscheduler--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sched_yield.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11781,6 +15678,12 @@ $(srcdir)/select-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/semop.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/semop-indirect.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/semtimedop.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sendfile.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11790,6 +15693,15 @@ $(srcdir)/sendfile64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/set_mempolicy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/set_mempolicy-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/set_mempolicy-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/set_mempolicy-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/setdomainname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11883,6 +15795,9 @@ $(srcdir)/signal.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/signal_receive.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/signal_receive--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/signalfd4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11916,6 +15831,9 @@ $(srcdir)/so_peercred-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_te $(srcdir)/so_peercred-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/so_peercred--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sock_filter-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11961,9 +15879,147 @@ $(srcdir)/statfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/statfs64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/status-all.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-failed.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-failed-long.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-failed-status.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-none.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-successful.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-successful-long.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-successful-status.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-unfinished.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/statx.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/strace--absolute-timestamps.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time-precision-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time-precision-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time-precision-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time-precision-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-unix-precision-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-unix-precision-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-unix-precision-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-unix-precision-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--follow-forks-output-separately.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--strings-in-hex.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--strings-in-hex-all.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--strings-in-hex-non-ascii.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-unix-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-unix-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-unix-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-unix-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace-n.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace-x.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace-xx.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/swap.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11994,6 +16050,24 @@ $(srcdir)/syslog.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/tee.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/tgkill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/tgkill--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/threads-execve--quiet-thread-execve.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/threads-execve-q.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/threads-execve-qq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/threads-execve-qqq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/time.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -12012,6 +16086,18 @@ $(srcdir)/times.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/times-fail.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/tkill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/tkill--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/trace_clock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/trace_creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/trace_fstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -12054,6 +16140,9 @@ $(srcdir)/trace_statfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests. $(srcdir)/trace_statfs_like.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/trie_test.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/truncate.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -12075,6 +16164,9 @@ $(srcdir)/umovestr-illptr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/umovestr3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/umovestr_cached_adjacent.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/unlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -12141,15 +16233,24 @@ $(srcdir)/xattr-strings.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests $(srcdir)/xet_robust_list.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/xet_robust_list--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/xetitimer.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/xetpgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/xetpgid--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/xetpriority.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/xetpriority--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/xettimeofday.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ diff --git a/tests-mx32/_newselect.c b/tests-mx32/_newselect.c index bfba2edb..d4553341 100644 --- a/tests-mx32/_newselect.c +++ b/tests-mx32/_newselect.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR__newselect diff --git a/tests-mx32/accept.c b/tests-mx32/accept.c index df5dee80..6ba19a45 100644 --- a/tests-mx32/accept.c +++ b/tests-mx32/accept.c @@ -2,7 +2,7 @@ * Check decoding of accept syscall. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,7 +12,7 @@ #include -#include +#include "scno.h" #if defined __NR_accept diff --git a/tests-mx32/accept_compat.h b/tests-mx32/accept_compat.h index 0fbdc690..fb010a19 100644 --- a/tests-mx32/accept_compat.h +++ b/tests-mx32/accept_compat.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ # include # include -# include +# include "scno.h" # if defined __NR_socketcall && defined __sparc__ /* diff --git a/tests-mx32/access.c b/tests-mx32/access.c index cbdde6a2..8bdbb626 100644 --- a/tests-mx32/access.c +++ b/tests-mx32/access.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_access diff --git a/tests-mx32/access.gen.test b/tests-mx32/access.gen.test index 7d80e6f8..adcf5ca5 100755 --- a/tests-mx32/access.gen.test +++ b/tests-mx32/access.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (access -a30 -P access_sample); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (access -a30 --trace-path=access_sample); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a30 -P access_sample +run_strace_match_diff -a30 --trace-path=access_sample diff --git a/tests-mx32/acct.c b/tests-mx32/acct.c index 2127df60..16b67cbc 100644 --- a/tests-mx32/acct.c +++ b/tests-mx32/acct.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_acct diff --git a/tests-mx32/add_key.c b/tests-mx32/add_key.c index c1014927..20163274 100644 --- a/tests-mx32/add_key.c +++ b/tests-mx32/add_key.c @@ -2,14 +2,13 @@ * Check decoding of add_key syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_add_key diff --git a/tests-mx32/adjtimex.c b/tests-mx32/adjtimex.c index 87d3acdc..3b88d04e 100644 --- a/tests-mx32/adjtimex.c +++ b/tests-mx32/adjtimex.c @@ -8,26 +8,45 @@ */ #include "tests.h" -#include -#include -#include -#include -#include +#include "scno.h" -#include "xlat.h" -#include "xlat/adjtimex_state.h" -#include "xlat/adjtimex_status.h" +#ifdef __NR_adjtimex + +# include +# include +# include +# include +# include +# include + +# include "kernel_old_timex.h" + +# include "xlat.h" +# include "xlat/adjtimex_state.h" +# include "xlat/adjtimex_status.h" + +static const char *errstr; + +static long +k_adjtimex(void *const buf) +{ + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = (uintptr_t) buf; + const long rc = syscall(__NR_adjtimex, arg1, bad, bad, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} int main(void) { - int state = adjtimex(NULL); - printf("adjtimex(NULL) = %s\n", sprintrc(state)); + int state = k_adjtimex(NULL); + printf("adjtimex(NULL) = %s\n", errstr); - TAIL_ALLOC_OBJECT_CONST_PTR(struct timex, tx); + TAIL_ALLOC_OBJECT_CONST_PTR(kernel_old_timex_t, tx); memset(tx, 0, sizeof(*tx)); - state = adjtimex(tx); + state = k_adjtimex(tx); if (state < 0) perror_msg_and_skip("adjtimex"); @@ -60,11 +79,7 @@ main(void) (intmax_t) tx->calcnt, (intmax_t) tx->errcnt, (intmax_t) tx->stbcnt, -#ifdef HAVE_STRUCT_TIMEX_TAI tx->tai, -#else - *(const int *)((const void *) tx + offsetofend(struct timex, stbcnt)), -#endif state); printxval(adjtimex_state, (unsigned int) state, NULL); puts(")"); @@ -72,3 +87,9 @@ main(void) puts("+++ exited with 0 +++"); return 0; } + +#else + +SKIP_MAIN_UNDEFINED("__NR_adjtimex") + +#endif diff --git a/tests-mx32/aio.c b/tests-mx32/aio.c index 13821998..f8c2f861 100644 --- a/tests-mx32/aio.c +++ b/tests-mx32/aio.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,7 +12,7 @@ #include #include #include -#include +#include "scno.h" #if defined __NR_io_setup \ && defined __NR_io_submit \ @@ -117,7 +117,7 @@ main(void) /* In order to make record valid */ .aio_nbytes = (size_t) 0x1020304050607080ULL, .aio_offset = 0xdeadda7abadc0dedULL, -# ifdef IOCB_FLAG_RESFD +# ifdef HAVE_STRUCT_IOCB_AIO_FLAGS .aio_flags = 0xfacef157, .aio_resfd = 0xded1ca7e, # endif @@ -298,30 +298,31 @@ main(void) printf("io_submit(%#lx, %ld, [" "{aio_data=%#" PRI__x64 ", aio_key=%u" ", aio_lio_opcode=%hu /* IOCB_CMD_??? */, aio_fildes=%d}" - ", {aio_key=%u, aio_lio_opcode=IOCB_CMD_PWRITE, aio_reqprio=%hd" - ", aio_fildes=%d, aio_buf=NULL" + ", {aio_data=0, aio_key=%u, aio_lio_opcode=IOCB_CMD_PWRITE" + ", aio_reqprio=IOPRIO_PRIO_VALUE(0x5 /* IOPRIO_CLASS_??? */" + ", 7919), aio_fildes=%d, aio_buf=NULL" ", aio_nbytes=%" PRI__u64 ", aio_offset=%" PRI__d64 -# ifdef IOCB_FLAG_RESFD - ", aio_resfd=%d, aio_flags=%#x" +# ifdef HAVE_STRUCT_IOCB_AIO_FLAGS + ", aio_flags=IOCB_FLAG_RESFD|IOCB_FLAG_IOPRIO|%#x, aio_resfd=%d" # endif - "}, {aio_key=%u, aio_lio_opcode=IOCB_CMD_PWRITE" + "}, {aio_data=0, aio_key=%u, aio_lio_opcode=IOCB_CMD_PWRITE" ", aio_reqprio=%hd, aio_fildes=%d, aio_buf=%#" PRI__x64 ", aio_nbytes=%" PRI__u64 ", aio_offset=%" PRI__d64 - "}, {aio_key=%u, aio_lio_opcode=IOCB_CMD_PWRITE" + "}, {aio_data=0, aio_key=%u, aio_lio_opcode=IOCB_CMD_PWRITE" ", aio_reqprio=%hd, aio_fildes=%d" ", aio_buf=\"\\0\\1\\2\\3%.28s\"..." ", aio_nbytes=%" PRI__u64 ", aio_offset=%" PRI__d64 - "}, {aio_key=%u, aio_lio_opcode=IOCB_CMD_PWRITEV" + "}, {aio_data=0, aio_key=%u, aio_lio_opcode=IOCB_CMD_PWRITEV" ", aio_reqprio=%hd, aio_fildes=%d, aio_buf=%#" PRI__x64 ", aio_nbytes=%" PRI__u64 ", aio_offset=%" PRI__d64 "}, NULL, %#lx, ... /* %p */]) = ", *ctx, 1057L, cbv2[0].aio_data, cbv2[0].aio_key, cbv2[0].aio_lio_opcode, cbv2[0].aio_fildes, - cbv2[1].aio_key, cbv2[1].aio_reqprio, cbv2[1].aio_fildes, + cbv2[1].aio_key, cbv2[1].aio_fildes, cbv2[1].aio_nbytes, cbv2[1].aio_offset, -# ifdef IOCB_FLAG_RESFD - cbv2[1].aio_resfd, cbv2[1].aio_flags, +# ifdef HAVE_STRUCT_IOCB_AIO_FLAGS + cbv2[1].aio_flags & ~3, cbv2[1].aio_resfd, # endif cbv2[2].aio_key, cbv2[2].aio_reqprio, cbv2[2].aio_fildes, cbv2[2].aio_buf, cbv2[2].aio_nbytes, cbv2[2].aio_offset, diff --git a/tests-mx32/aio_pgetevents.c b/tests-mx32/aio_pgetevents.c index 8bea0b7b..f82f690a 100644 --- a/tests-mx32/aio_pgetevents.c +++ b/tests-mx32/aio_pgetevents.c @@ -2,7 +2,7 @@ * Check decoding of io_pgetevents syscall. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,6 @@ #include "tests.h" #include -#include #include "scno.h" #if defined __NR_io_setup && defined __NR_io_pgetevents diff --git a/tests-mx32/alarm.c b/tests-mx32/alarm.c index 35404535..4411e114 100644 --- a/tests-mx32/alarm.c +++ b/tests-mx32/alarm.c @@ -2,13 +2,14 @@ * This file is part of alarm strace test. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_alarm @@ -18,8 +19,8 @@ int main(void) { - int rc = syscall(__NR_alarm, (unsigned long) 0xffffffff0000002aULL); - printf("alarm(%u) = %d\n", 42, rc); + const unsigned long arg = (unsigned long) 0xffffffff0000002aULL; + printf("alarm(%u) = %s\n", 42, sprintrc(syscall(__NR_alarm, arg))); puts("+++ exited with 0 +++"); return 0; diff --git a/tests-mx32/answer.c b/tests-mx32/answer.c index a69adc39..dcea6f1d 100644 --- a/tests-mx32/answer.c +++ b/tests-mx32/answer.c @@ -2,6 +2,7 @@ * Check decoding of fault injected exit_group syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,7 +10,7 @@ #include "tests.h" #include -#include +#include "scno.h" int main(void) diff --git a/tests-mx32/attach-f-p.c b/tests-mx32/attach-f-p.c index 3b7aed85..4ee6714e 100644 --- a/tests-mx32/attach-f-p.c +++ b/tests-mx32/attach-f-p.c @@ -2,6 +2,7 @@ * This file is part of attach-f-p strace test. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -14,7 +15,7 @@ #include #include #include -#include +#include "scno.h" #include #define N 3 diff --git a/tests-mx32/bexecve.test b/tests-mx32/bexecve.test index 7a135871..c25235cd 100755 --- a/tests-mx32/bexecve.test +++ b/tests-mx32/bexecve.test @@ -3,7 +3,7 @@ # Check -bexecve behavior. # # Copyright (c) 2015 Dmitry V. Levin -# Copyright (c) 2015-2018 The strace developers. +# Copyright (c) 2015-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -16,23 +16,36 @@ run_strace_redir() $STRACE "$@" 2> "$LOG" } -run_strace_redir -enone ../set_ptracer_any true || +run_strace_redir --quiet=personality -enone ../set_ptracer_any true || dump_log_and_fail_with "$STRACE $args: unexpected exit status" -run_strace_redir -enone ../set_ptracer_any false +run_strace_redir --quiet=personality -enone ../set_ptracer_any false [ $? -eq 1 ] || dump_log_and_fail_with "$STRACE $args: unexpected exit status" -run_strace_redir -bexecve -enone ../set_ptracer_any false || +run_strace_redir --quiet=personality -bexecve -enone ../set_ptracer_any false || dump_log_and_fail_with "$STRACE $args: unexpected exit status" pattern_detached='[^:]*strace: Process [1-9][0-9]* detached' -pattern_personality='[^:]*strace: \[ Process PID=[1-9][0-9]* runs in .* mode. \]' LC_ALL=C grep -x "$pattern_detached" "$LOG" > /dev/null || dump_log_and_fail_with "$STRACE $args: output mismatch" -if LC_ALL=C grep -E -v -x "($pattern_detached|$pattern_personality)" "$LOG" > /dev/null; then +if LC_ALL=C grep -E -v -x "$pattern_detached" "$LOG" > /dev/null; then + dump_log_and_fail_with "$STRACE $args: unexpected output" +fi + +run_strace_redir --quiet=personality --seccomp-bpf -bexecve -enone ../set_ptracer_any false || + dump_log_and_fail_with "$STRACE $args: unexpected exit status" + +pattern_seccomp='[^:]*strace: --seccomp-bpf is not enabled because it is not compatible with -b' + +LC_ALL=C grep -x "$pattern_detached" "$LOG" > /dev/null && +LC_ALL=C grep -x "$pattern_seccomp" "$LOG" > /dev/null || + dump_log_and_fail_with "$STRACE $args: output mismatch" + +pattern_all="$pattern_detached|$pattern_seccomp" +if LC_ALL=C grep -E -v -x "$pattern_all" "$LOG" > /dev/null; then dump_log_and_fail_with "$STRACE $args: unexpected output" fi diff --git a/tests-mx32/block_reset_run.c b/tests-mx32/block_reset_run.c new file mode 100644 index 00000000..cba77bf3 --- /dev/null +++ b/tests-mx32/block_reset_run.c @@ -0,0 +1,33 @@ +/* + * Execute the specified command with a blocked default signal handler. + * + * Copyright (c) 2017-2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include +#include + +int +main(int ac, char **av) +{ + if (ac < 3) + error_msg_and_fail("usage: block_reset_run signo path..."); + + sigset_t mask; + sigemptyset(&mask); + const int signo = atoi(av[1]); + if (sigaddset(&mask, signo)) + perror_msg_and_fail("sigaddset: %s", av[1]); + if (sigprocmask(SIG_BLOCK, &mask, NULL)) + perror_msg_and_fail("sigprocmask"); + if (signal(signo, SIG_DFL) == SIG_ERR) + perror_msg_and_fail("signal: %s", av[1]); + + execvp(av[2], av + 2); + perror_msg_and_fail("execvp: %s", av[2]); +} diff --git a/tests-mx32/bpf-obj_get_info_by_fd.c b/tests-mx32/bpf-obj_get_info_by_fd.c index 3e18591d..9428692e 100644 --- a/tests-mx32/bpf-obj_get_info_by_fd.c +++ b/tests-mx32/bpf-obj_get_info_by_fd.c @@ -1,7 +1,7 @@ /* * Check bpf(BPF_OBJ_GET_INFO_BY_FD) decoding. * - * Copyright (c) 2018-2019 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -21,7 +21,6 @@ #include #include #include -#include #include "print_fields.h" #include "scno.h" @@ -88,6 +87,10 @@ print_map_create(void *attr_void, size_t size, long rc) printf(", btf_fd=0" ", btf_key_type_id=0, btf_value_type_id=0"); } + if (size > offsetof(struct BPF_MAP_CREATE_struct, + btf_vmlinux_value_type_id)) { + printf(", btf_vmlinux_value_type_id=0"); + } printf("}, %zu) = ", size); if (rc >= 0) printf("%ld\n", rc); @@ -206,6 +209,10 @@ print_prog_load(void *attr_void, size_t size, long rc) printf(", line_info=NULL"); if (size > offsetof(struct BPF_PROG_LOAD_struct, line_info_cnt)) printf(", line_info_cnt=0"); + if (size > offsetof(struct BPF_PROG_LOAD_struct, attach_btf_id)) + printf(", attach_btf_id=0"); + if (size > offsetof(struct BPF_PROG_LOAD_struct, attach_prog_fd)) + printf(", attach_prog_fd=0"); printf("}, %zu) = ", size); if (rc >= 0) printf("%ld\n", rc); @@ -232,8 +239,26 @@ try_bpf(kernel_ulong_t cmd, void (*printer)(void *attr, size_t size, long rc), } int -main(void) +main(int ac, char **av) { + /* + * There is a delay when the locked memory is being reclaimed + * after a BPF program or map is removed. + * + * Privileged tools like iproute2 and bpftool workaround this + * by raising RLIMIT_MEMLOCK to infinity prior to creating + * BPF objects. + * + * This test is expected to be invoked without extra privileges + * and therefore does not have this option. + * + * The approach taken by this test is serialize all invocations + * and insert a delay long enough to let the locked memory be + * reclaimed. + */ + lock_file_by_dirname(av[0], "bpf-obj_get_info_by_fd"); + sleep(1); + struct BPF_MAP_CREATE_struct bpf_map_create_attr = { .map_type = BPF_MAP_TYPE_ARRAY, .key_size = 4, @@ -260,7 +285,7 @@ main(void) .prog_name = "test_prog", }; size_t bpf_prog_load_attr_sizes[] = { - sizeof(bpf_prog_load_attr), + BPF_PROG_LOAD_struct_size, offsetofend(struct BPF_PROG_LOAD_struct, prog_name), offsetofend(struct BPF_PROG_LOAD_struct, prog_flags), offsetofend(struct BPF_PROG_LOAD_struct, kern_version), @@ -331,6 +356,10 @@ main(void) if (bpf_map_get_info_attr.info_len > offsetof(struct bpf_map_info_struct, ifindex)) printf(", ifindex=%u", map_info->ifindex); + if (bpf_map_get_info_attr.info_len > + offsetof(struct bpf_map_info_struct, btf_vmlinux_value_type_id)) + printf(", btf_vmlinux_value_type_id=%u", + map_info->btf_vmlinux_value_type_id); if (bpf_map_get_info_attr.info_len > offsetof(struct bpf_map_info_struct, netns_dev)) printf(", netns_dev=makedev(%#x, %#x)", diff --git a/tests-mx32/bpf-success-long-y.c b/tests-mx32/bpf-success-long-y.c new file mode 100644 index 00000000..d0e9b2a9 --- /dev/null +++ b/tests-mx32/bpf-success-long-y.c @@ -0,0 +1,3 @@ +#define INJECT_RETVAL ((long) 0xbadc0de1e55beefULL) +#define FD0_PATH "" +#include "bpf.c" diff --git a/tests-mx32/bpf-success-long-y.test b/tests-mx32/bpf-success-long-y.test new file mode 100755 index 00000000..5ed7e854 --- /dev/null +++ b/tests-mx32/bpf-success-long-y.test @@ -0,0 +1,16 @@ +:#!/bin/sh -efu +# +# Copyright (c) 2018-2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/scno_tampering.sh" + +case "$SIZEOF_LONG" in + 4) rval=508935919;; + 8) rval=841540765612359407;; +esac + +run_strace -a20 -y -e trace=bpf -e inject=bpf:retval="${rval}" ../bpf-success-long-y < /dev/full > "$EXP" +match_diff "$LOG" "$EXP" diff --git a/tests-mx32/bpf.c b/tests-mx32/bpf.c index fd29ab44..4f58ca29 100644 --- a/tests-mx32/bpf.c +++ b/tests-mx32/bpf.c @@ -2,7 +2,7 @@ * Check bpf syscall decoding. * * Copyright (c) 2015-2017 Dmitry V. Levin - * Copyright (c) 2015-2019 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -16,7 +16,6 @@ #include #include -#include #include "scno.h" #ifdef HAVE_LINUX_BPF_H @@ -28,6 +27,8 @@ #include "xlat.h" #include "xlat/bpf_commands.h" +#include "xlat/bpf_map_types.h" +#include "xlat/bpf_prog_types.h" #if defined MPERS_IS_m32 || SIZEOF_KERNEL_LONG_T > 4 # define BIG_ADDR(addr64_, addr32_) addr64_ @@ -42,6 +43,10 @@ # define BIG_ADDR_MAYBE(addr_) #endif +#ifndef FD0_PATH +# define FD0_PATH "" +#endif + #ifndef HAVE_STRUCT_BPF_INSN struct bpf_insn { uint8_t code; @@ -74,6 +79,12 @@ union bpf_attr_data { BPF_ATTR_DATA_FIELD(BPF_BTF_LOAD); BPF_ATTR_DATA_FIELD(BPF_BTF_GET_FD_BY_ID); BPF_ATTR_DATA_FIELD(BPF_TASK_FD_QUERY); + BPF_ATTR_DATA_FIELD(BPF_MAP_FREEZE); + BPF_ATTR_DATA_FIELD(BPF_MAP_LOOKUP_BATCH); + BPF_ATTR_DATA_FIELD(BPF_MAP_UPDATE_BATCH); + BPF_ATTR_DATA_FIELD(BPF_MAP_DELETE_BATCH); + BPF_ATTR_DATA_FIELD(BPF_LINK_CREATE); + BPF_ATTR_DATA_FIELD(BPF_LINK_UPDATE); char char_data[256]; }; @@ -108,8 +119,8 @@ sys_bpf(kernel_ulong_t cmd, kernel_ulong_t attr, kernel_ulong_t size) #ifdef INJECT_RETVAL if (rc != INJECT_RETVAL) - error_msg_and_fail("Got a return value of %ld != %d", - rc, INJECT_RETVAL); + error_msg_and_fail("Got a return value of %ld != %ld", + rc, (long) INJECT_RETVAL); static char inj_errstr[4096]; @@ -250,6 +261,8 @@ init_BPF_MAP_CREATE_attr7(struct bpf_attr_check *check) attr->map_ifindex = ifindex_lo(); } +static_assert(ARRAY_SIZE(bpf_map_types_xdata) == 28, + "The map_type for tests 1 and 2 below needs to be updated"); static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { { .data = { .BPF_MAP_CREATE_data = { .map_type = 2 } }, @@ -259,7 +272,7 @@ static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { }, { /* 1 */ .data = { .BPF_MAP_CREATE_data = { - .map_type = 20, + .map_type = 27, .key_size = 4, .value_size = 8, .max_entries = 256, @@ -269,7 +282,7 @@ static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { .map_name = "0123456789abcde", } }, .size = offsetof(struct BPF_MAP_CREATE_struct, map_name) + 8, - .str = "map_type=BPF_MAP_TYPE_REUSEPORT_SOCKARRAY, key_size=4" + .str = "map_type=BPF_MAP_TYPE_RINGBUF, key_size=4" ", value_size=8, max_entries=256" ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NO_COMMON_LRU" "|BPF_F_NUMA_NODE|BPF_F_RDONLY|BPF_F_WRONLY" @@ -281,21 +294,21 @@ static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { }, { /* 2 */ .data = { .BPF_MAP_CREATE_data = { - .map_type = 24, + .map_type = 28, .key_size = 0xface1e55, .value_size = 0xbadc0ded, .max_entries = 0xbeefcafe, - .map_flags = 0xffffff80, + .map_flags = 0xfffff800, .inner_map_fd = 2718281828, .numa_node = -1, .map_name = "", .map_ifindex = 3141592653, } }, .size = offsetofend(struct BPF_MAP_CREATE_struct, map_ifindex), - .str = "map_type=0x18 /* BPF_MAP_TYPE_??? */" + .str = "map_type=0x1c /* BPF_MAP_TYPE_??? */" ", key_size=4207812181, value_size=3134983661" ", max_entries=3203386110" - ", map_flags=0xffffff80 /* BPF_F_??? */" + ", map_flags=0xfffff800 /* BPF_F_??? */" ", inner_map_fd=-1576685468" ", map_name=\"\", map_ifindex=3141592653", @@ -316,7 +329,8 @@ static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { ", max_entries=3203386110" ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE" "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID" - "|0xc0dede80", + "|BPF_F_RDONLY_PROG|BPF_F_CLONE" + "|BPF_F_MMAPABLE|0xc0ded800", }, { /* 4 */ .data = { .BPF_MAP_CREATE_data = { @@ -334,7 +348,8 @@ static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { ", max_entries=3203386110" ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE" "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID" - "|0xc0dede80" + "|BPF_F_RDONLY_PROG|BPF_F_CLONE" + "|BPF_F_MMAPABLE|0xc0ded800" ", inner_map_fd=-1576685468", }, { /* 5 */ @@ -353,7 +368,8 @@ static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { ", max_entries=3203386110" ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE" "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID" - "|0xc0dede80" + "|BPF_F_RDONLY_PROG|BPF_F_CLONE" + "|BPF_F_MMAPABLE|0xc0ded800" ", inner_map_fd=-1576685468" ", numa_node=4294967295 /* NUMA_NO_NODE */", }, @@ -374,7 +390,8 @@ static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { ", max_entries=3203386110" ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE" "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID" - "|0xc0dede80" + "|BPF_F_RDONLY_PROG|BPF_F_CLONE" + "|BPF_F_MMAPABLE|0xc0ded800" ", inner_map_fd=-1576685468" ", numa_node=4294967295 /* NUMA_NO_NODE */" ", map_name=\"fedcba987654321\"...", @@ -396,7 +413,8 @@ static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { ", max_entries=3203386110" ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE" "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID" - "|0xc0dede80" + "|BPF_F_RDONLY_PROG|BPF_F_CLONE" + "|BPF_F_MMAPABLE|0xc0ded800" ", inner_map_fd=-1576685468" ", numa_node=4294967295 /* NUMA_NO_NODE */" ", map_name=\"0123456789abcde\"" @@ -416,12 +434,34 @@ static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { ", value_size=0" ", max_entries=0" ", map_flags=0" - ", inner_map_fd=0" + ", inner_map_fd=0" FD0_PATH + ", map_name=\"\"" + ", map_ifindex=0" + ", btf_fd=-1159983635" + ", btf_key_type_id=4207869677" + ", btf_value_type_id=3405705229" + }, + { /* 9 */ + .data = { .BPF_MAP_CREATE_data = { + .btf_fd = 0xbadc0ded, + .btf_key_type_id = 0xfacefeed, + .btf_value_type_id = 0xcafef00d, + .btf_vmlinux_value_type_id = 0xdeadc0de, + } }, + .size = offsetofend(struct BPF_MAP_CREATE_struct, + btf_vmlinux_value_type_id), + .str = "map_type=BPF_MAP_TYPE_UNSPEC" + ", key_size=0" + ", value_size=0" + ", max_entries=0" + ", map_flags=0" + ", inner_map_fd=0" FD0_PATH ", map_name=\"\"" ", map_ifindex=0" ", btf_fd=-1159983635" ", btf_key_type_id=4207869677" ", btf_value_type_id=3405705229" + ", btf_vmlinux_value_type_id=3735929054" }, }; @@ -435,10 +475,12 @@ static const struct bpf_attr_check BPF_MAP_LOOKUP_ELEM_checks[] = { .data = { .BPF_MAP_LOOKUP_ELEM_data = { .map_fd = -1, .key = 0xdeadbeef, - .value = 0xbadc0ded + .value = 0xbadc0ded, + .flags = 4 } }, - .size = offsetofend(struct BPF_MAP_LOOKUP_ELEM_struct, value), + .size = offsetofend(struct BPF_MAP_LOOKUP_ELEM_struct, flags), .str = "map_fd=-1, key=0xdeadbeef, value=0xbadc0ded" + ", flags=BPF_F_LOCK" } }; @@ -496,6 +538,14 @@ static const struct bpf_attr_check BPF_MAP_GET_NEXT_KEY_checks[] = { } }; +static const struct bpf_attr_check BPF_MAP_FREEZE_checks[] = { + { + .data = { .BPF_MAP_FREEZE_data = { .map_fd = -1 } }, + .size = offsetofend(struct BPF_MAP_FREEZE_struct, map_fd), + .str = "map_fd=-1" + } +}; + static const struct bpf_insn insns[] = { { .code = 0x95, @@ -556,7 +606,7 @@ print_BPF_PROG_LOAD_attr3(const struct bpf_attr_check *check, unsigned long addr ", insns=" INSNS_FMT ", license=\"%s\", log_level=2718281828" ", log_size=%u, log_buf=%p" ", kern_version=KERNEL_VERSION(51966, 240, 13)" - ", prog_flags=0x4 /* BPF_F_??? */" + ", prog_flags=0x10 /* BPF_F_??? */" ", prog_name=\"0123456789abcde\"..., prog_ifindex=3203399405", (unsigned int) ARRAY_SIZE(insns), INSNS_ARG, license, log_buf_size, get_log_buf_tail()); @@ -582,13 +632,16 @@ print_BPF_PROG_LOAD_attr4(const struct bpf_attr_check *check, unsigned long addr ", license=\"%s\", log_level=2718281828, log_size=4" ", log_buf=\"log \"..." ", kern_version=KERNEL_VERSION(51966, 240, 13)" - ", prog_flags=BPF_F_STRICT_ALIGNMENT|BPF_F_ANY_ALIGNMENT|0x4" + ", prog_flags=BPF_F_STRICT_ALIGNMENT|BPF_F_ANY_ALIGNMENT" + "|BPF_F_TEST_RND_HI32|BPF_F_TEST_STATE_FREQ|0x10" ", prog_name=\"0123456789abcde\"..., prog_ifindex=%s" ", expected_attach_type=BPF_CGROUP_INET6_BIND", (unsigned int) ARRAY_SIZE(insns), INSNS_ARG, license, IFINDEX_LO_STR); } +static_assert(ARRAY_SIZE(bpf_prog_types_xdata) == 31, + "The prog_type for test 5 below needs to be updated"); static struct bpf_attr_check BPF_PROG_LOAD_checks[] = { { .data = { .BPF_PROG_LOAD_data = { .prog_type = 1 } }, @@ -598,7 +651,7 @@ static struct bpf_attr_check BPF_PROG_LOAD_checks[] = { }, { /* 1 */ .data = { .BPF_PROG_LOAD_data = { - .prog_type = 22, + .prog_type = 31, .insn_cnt = 0xbadc0ded, .insns = 0, .license = 0, @@ -609,7 +662,7 @@ static struct bpf_attr_check BPF_PROG_LOAD_checks[] = { .prog_flags = 0, } }, .size = offsetofend(struct BPF_PROG_LOAD_struct, prog_flags), - .str = "prog_type=0x16 /* BPF_PROG_TYPE_??? */" + .str = "prog_type=0x1f /* BPF_PROG_TYPE_??? */" ", insn_cnt=3134983661, insns=NULL, license=NULL" ", log_level=42, log_size=3141592653, log_buf=NULL" ", kern_version=KERNEL_VERSION(51966, 240, 13)" @@ -629,7 +682,7 @@ static struct bpf_attr_check BPF_PROG_LOAD_checks[] = { .prog_name = "fedcba987654321", } }, .size = offsetofend(struct BPF_PROG_LOAD_struct, prog_name), - .str = "prog_type=BPF_PROG_TYPE_SK_REUSEPORT" + .str = "prog_type=BPF_PROG_TYPE_LIRC_MODE2" ", insn_cnt=3134983661" ", insns=" BIG_ADDR("0xffffffff00000000", "NULL") ", license=" BIG_ADDR("0xffffffff00000000", "NULL") @@ -646,7 +699,7 @@ static struct bpf_attr_check BPF_PROG_LOAD_checks[] = { .log_level = 2718281828U, .log_size = log_buf_size, .kern_version = 0xcafef00d, - .prog_flags = 4, + .prog_flags = 16, .prog_name = "0123456789abcdef", .prog_ifindex = 0xbeeffeed, } }, @@ -661,7 +714,7 @@ static struct bpf_attr_check BPF_PROG_LOAD_checks[] = { .log_level = 2718281828U, .log_size = 4, .kern_version = 0xcafef00d, - .prog_flags = 7, + .prog_flags = 0x1f, .prog_name = "0123456789abcdef", .expected_attach_type = 9, } }, @@ -671,6 +724,30 @@ static struct bpf_attr_check BPF_PROG_LOAD_checks[] = { .print_fn = print_BPF_PROG_LOAD_attr4 }, { /* 5 */ + .data = { .BPF_PROG_LOAD_data = { + .prog_type = 30, + .insn_cnt = 0xbadc0ded, + .insns = 0xffffffff00000000, + .license = 0xffffffff00000000, + .log_level = 2718281828U, + .log_size = log_buf_size, + .log_buf = 0xffffffff00000000, + .kern_version = 0xcafef00d, + .prog_flags = 1, + .prog_name = "fedcba987654321", + } }, + .size = offsetofend(struct BPF_PROG_LOAD_struct, prog_name), + .str = "prog_type=BPF_PROG_TYPE_SK_LOOKUP" + ", insn_cnt=3134983661" + ", insns=" BIG_ADDR("0xffffffff00000000", "NULL") + ", license=" BIG_ADDR("0xffffffff00000000", "NULL") + ", log_level=2718281828, log_size=4096" + ", log_buf=" BIG_ADDR("0xffffffff00000000", "NULL") + ", kern_version=KERNEL_VERSION(51966, 240, 13)" + ", prog_flags=BPF_F_STRICT_ALIGNMENT" + ", prog_name=\"fedcba987654321\"", + }, + { /* 6 */ .data = { .BPF_PROG_LOAD_data = { .prog_flags = 2, .expected_attach_type = 17, @@ -680,10 +757,12 @@ static struct bpf_attr_check BPF_PROG_LOAD_checks[] = { .func_info_cnt = 0xdad3bef4, .line_info_rec_size = 0xdad5bef6, .line_info = 0xfac5fed5fac7fed8, - .line_info_cnt = 0xdad7bef8 + .line_info_cnt = 0xdad7bef8, + .attach_btf_id = 0xdad7befa, + .attach_prog_fd = 0xbadc0def, } }, .size = offsetofend(struct BPF_PROG_LOAD_struct, - line_info_cnt), + attach_prog_fd), .str = "prog_type=BPF_PROG_TYPE_UNSPEC" ", insn_cnt=0" ", insns=NULL" @@ -703,6 +782,8 @@ static struct bpf_attr_check BPF_PROG_LOAD_checks[] = { ", line_info_rec_size=3671441142" ", line_info=0xfac5fed5fac7fed8" ", line_info_cnt=3671572216" + ", attach_btf_id=3671572218" + ", attach_prog_fd=-1159983633" }, }; @@ -717,7 +798,7 @@ static struct bpf_attr_check BPF_OBJ_PIN_checks[] = { { .data = { .BPF_OBJ_PIN_data = { .pathname = 0 } }, .size = offsetofend(struct BPF_OBJ_PIN_struct, pathname), - .str = "pathname=NULL, bpf_fd=0" + .str = "pathname=NULL, bpf_fd=0" FD0_PATH }, { .data = { .BPF_OBJ_PIN_data = { @@ -725,7 +806,7 @@ static struct bpf_attr_check BPF_OBJ_PIN_checks[] = { } }, .size = offsetofend(struct BPF_OBJ_PIN_struct, pathname), .str = "pathname=" BIG_ADDR("0xffffffffffffffff", "0xffffffff") - ", bpf_fd=0", + ", bpf_fd=0" FD0_PATH, }, { .data = { .BPF_OBJ_PIN_data = { .bpf_fd = -1 } }, @@ -751,7 +832,7 @@ static const struct bpf_attr_check BPF_PROG_ATTACH_checks[] = { { .data = { .BPF_PROG_ATTACH_data = { .target_fd = -1 } }, .size = offsetofend(struct BPF_PROG_ATTACH_struct, target_fd), - .str = "target_fd=-1, attach_bpf_fd=0" + .str = "target_fd=-1, attach_bpf_fd=0" FD0_PATH ", attach_type=BPF_CGROUP_INET_INGRESS, attach_flags=0" }, { @@ -759,13 +840,28 @@ static const struct bpf_attr_check BPF_PROG_ATTACH_checks[] = { .target_fd = -1, .attach_bpf_fd = -2, .attach_type = 2, - .attach_flags = 1 + .attach_flags = 7 } }, .size = offsetofend(struct BPF_PROG_ATTACH_struct, attach_flags), .str = "target_fd=-1, attach_bpf_fd=-2" ", attach_type=BPF_CGROUP_INET_SOCK_CREATE" - ", attach_flags=BPF_F_ALLOW_OVERRIDE" - } + ", attach_flags=BPF_F_ALLOW_OVERRIDE|BPF_F_ALLOW_MULTI" + "|BPF_F_REPLACE" + }, + { + .data = { .BPF_PROG_ATTACH_data = { + .target_fd = -1, + .attach_bpf_fd = -2, + .attach_type = 2, + .attach_flags = 0xf8, + .replace_bpf_fd = -3, + } }, + .size = offsetofend(struct BPF_PROG_ATTACH_struct, replace_bpf_fd), + .str = "target_fd=-1, attach_bpf_fd=-2" + ", attach_type=BPF_CGROUP_INET_SOCK_CREATE" + ", attach_flags=0xf8 /* BPF_F_??? */" + ", replace_bpf_fd=-3" + }, }; @@ -810,6 +906,33 @@ static const struct bpf_attr_check BPF_PROG_TEST_RUN_checks[] = { ", data_in=0xfacef11dbadc2ded" ", data_out=0xfacef33dbadc4ded" ", repeat=4207410904, duration=4207541978}" + }, + { + .data = { .BPF_PROG_TEST_RUN_data = { + .prog_fd = -1, + .retval = 0xfac1fed2, + .data_size_in = 0xfac3fed4, + .data_size_out = 0xfac5fed6, + .data_in = (uint64_t) 0xfacef11dbadc2dedULL, + .data_out = (uint64_t) 0xfacef33dbadc4dedULL, + .repeat = 0xfac7fed8, + .duration = 0xfac9feda, + .ctx_size_in = 0xfacbfedc, + .ctx_size_out = 0xfacdfede, + .ctx_in = (uint64_t) 0xfacef55dbadc6dedULL, + .ctx_out = (uint64_t) 0xfacef77dbadc8dedULL + } }, + .size = offsetofend(struct BPF_PROG_TEST_RUN_struct, ctx_out), + .str = "test={prog_fd=-1, retval=4207017682" + ", data_size_in=4207148756, data_size_out=4207279830" + ", data_in=0xfacef11dbadc2ded" + ", data_out=0xfacef33dbadc4ded" + ", repeat=4207410904" + ", duration=4207541978" + ", ctx_size_in=4207673052" + ", ctx_size_out=4207804126" + ", ctx_in=0xfacef55dbadc6ded" + ", ctx_out=0xfacef77dbadc8ded}" } }; @@ -855,6 +978,7 @@ static const struct bpf_attr_check BPF_PROG_GET_NEXT_ID_checks[] = { }; #define BPF_MAP_GET_NEXT_ID_checks BPF_PROG_GET_NEXT_ID_checks +#define BPF_BTF_GET_NEXT_ID_checks BPF_PROG_GET_NEXT_ID_checks static const struct bpf_attr_check BPF_PROG_GET_FD_BY_ID_checks[] = { { @@ -953,8 +1077,8 @@ print_BPF_PROG_QUERY_attr4(const struct bpf_attr_check *check, unsigned long add printf("query={target_fd=-1153374643" ", attach_type=0xfeedface /* BPF_??? */" ", query_flags=BPF_F_QUERY_EFFECTIVE|0xdeadf00c" - ", attach_flags=BPF_F_ALLOW_MULTI|0xbeefcafc" -#if defined(INJECT_RETVAL) && INJECT_RETVAL > 0 + ", attach_flags=BPF_F_ALLOW_MULTI|BPF_F_REPLACE|0xbeefcaf8" +#if defined(INJECT_RETVAL) ", prog_ids=[0, 1, 4294967295, 2718281828], prog_cnt=4}" #else ", prog_ids=%p, prog_cnt=4}", prog_load_ids_ptr @@ -981,8 +1105,8 @@ print_BPF_PROG_QUERY_attr5(const struct bpf_attr_check *check, unsigned long add printf("query={target_fd=-1153374643" ", attach_type=0xfeedface /* BPF_??? */" ", query_flags=BPF_F_QUERY_EFFECTIVE|0xdeadf00c" - ", attach_flags=BPF_F_ALLOW_MULTI|0xbeefcafc" -#if defined(INJECT_RETVAL) && INJECT_RETVAL > 0 + ", attach_flags=BPF_F_ALLOW_MULTI|BPF_F_REPLACE|0xbeefcaf8" +#if defined(INJECT_RETVAL) ", prog_ids=[0, 1, 4294967295, 2718281828, ... /* %p */]" ", prog_cnt=5}", prog_load_ids_ptr + ARRAY_SIZE(prog_load_ids) @@ -1003,13 +1127,13 @@ static struct bpf_attr_check BPF_PROG_QUERY_checks[] = { { /* 1 */ .data = { .BPF_PROG_QUERY_data = { .target_fd = 3141592653U, - .attach_type = 16, + .attach_type = 37, .query_flags = 1, .attach_flags = 3, } }, .size = offsetofend(struct BPF_PROG_QUERY_struct, attach_flags), .str = "query={target_fd=-1153374643" - ", attach_type=BPF_LIRC_MODE2" + ", attach_type=BPF_XDP" ", query_flags=BPF_F_QUERY_EFFECTIVE" ", attach_flags=BPF_F_ALLOW_OVERRIDE|BPF_F_ALLOW_MULTI" ", prog_ids=NULL, prog_cnt=0}", @@ -1017,17 +1141,17 @@ static struct bpf_attr_check BPF_PROG_QUERY_checks[] = { { /* 2 */ .data = { .BPF_PROG_QUERY_data = { .target_fd = 3141592653U, - .attach_type = 18, + .attach_type = 38, .query_flags = 0xfffffffe, - .attach_flags = 0xfffffffc, + .attach_flags = 0xfffffff8, .prog_ids = 0xffffffffffffffffULL, .prog_cnt = 2718281828, } }, .size = offsetofend(struct BPF_PROG_QUERY_struct, prog_cnt), .str = "query={target_fd=-1153374643" - ", attach_type=0x12 /* BPF_??? */" + ", attach_type=0x26 /* BPF_??? */" ", query_flags=0xfffffffe /* BPF_F_QUERY_??? */" - ", attach_flags=0xfffffffc /* BPF_F_??? */" + ", attach_flags=0xfffffff8 /* BPF_F_??? */" ", prog_ids=" BIG_ADDR("0xffffffffffffffff", "0xffffffff") ", prog_cnt=2718281828}", @@ -1045,7 +1169,7 @@ static struct bpf_attr_check BPF_PROG_QUERY_checks[] = { .str = "query={target_fd=-1153374643" ", attach_type=0xfeedface /* BPF_??? */" ", query_flags=BPF_F_QUERY_EFFECTIVE|0xdeadf00c" - ", attach_flags=BPF_F_ALLOW_MULTI|0xbeefcafc" + ", attach_flags=BPF_F_ALLOW_MULTI|BPF_F_REPLACE|0xbeefcaf8" ", prog_ids=" BIG_ADDR_MAYBE("0xffffffffffffffff") "[]" ", prog_cnt=0}", }, @@ -1091,7 +1215,7 @@ static struct bpf_attr_check BPF_RAW_TRACEPOINT_OPEN_checks[] = { .data = { .BPF_RAW_TRACEPOINT_OPEN_data = { .name = 0 } }, .size = offsetofend(struct BPF_RAW_TRACEPOINT_OPEN_struct, name), - .str = "raw_tracepoint={name=NULL, prog_fd=0}", + .str = "raw_tracepoint={name=NULL, prog_fd=0" FD0_PATH "}", }, { /* 1 */ .data = { .BPF_RAW_TRACEPOINT_OPEN_data = { @@ -1165,16 +1289,16 @@ static const struct bpf_attr_check BPF_BTF_GET_FD_BY_ID_checks[] = { static const struct bpf_attr_check BPF_TASK_FD_QUERY_checks[] = { { - .data = { .BPF_TASK_FD_QUERY_data = { .pid = 0xdeadbeef } }, + .data = { .BPF_TASK_FD_QUERY_data = { .pid = 1735928559 } }, .size = offsetofend(struct BPF_TASK_FD_QUERY_struct, pid), - .str = "task_fd_query={pid=3735928559, fd=0, flags=0" - ", buf_len=0, buf=NULL, prog_id=0" + .str = "task_fd_query={pid=1735928559, fd=0" FD0_PATH + ", flags=0, buf_len=0, buf=NULL, prog_id=0" ", fd_type=BPF_FD_TYPE_RAW_TRACEPOINT" ", probe_offset=0, probe_addr=0}" }, { /* 1 */ .data = { .BPF_TASK_FD_QUERY_data = { - .pid = 0xcafef00d, + .pid = 1405705229, .fd = 0xdeadbeef, .flags = 0xfacefeed, .buf_len = 0xdefaced, @@ -1185,7 +1309,7 @@ static const struct bpf_attr_check BPF_TASK_FD_QUERY_checks[] = { .probe_addr = 0xfac5fed5fac7fed8 } }, .size = offsetofend(struct BPF_TASK_FD_QUERY_struct, probe_addr), - .str = "task_fd_query={pid=3405705229" + .str = "task_fd_query={pid=1405705229" ", fd=-559038737" ", flags=4207869677" ", buf_len=233811181" @@ -1197,6 +1321,117 @@ static const struct bpf_attr_check BPF_TASK_FD_QUERY_checks[] = { } }; +static const struct bpf_attr_check BPF_MAP_LOOKUP_BATCH_checks[] = { + { + .data = { .BPF_MAP_LOOKUP_BATCH_data = { .map_fd = -1 } }, + .size = offsetofend(struct BPF_MAP_LOOKUP_BATCH_struct, map_fd ), + .str = "batch={in_batch=NULL, out_batch=NULL, keys=NULL" + ", values=NULL, count=0, map_fd=-1, elem_flags=BPF_ANY" + ", flags=0}" + }, + { + .data = { .BPF_MAP_LOOKUP_BATCH_data = { + .in_batch = 0xfacefeed, + .out_batch = 0xbadc0ded, + .keys = 0xdeadf00d, + .values = 0xfffffffe, + .count = 3, + .map_fd = -1, + .elem_flags = 4, + .flags = 4 + } }, + .size = offsetofend(struct BPF_MAP_LOOKUP_BATCH_struct, flags), + .str = "batch={in_batch=0xfacefeed, out_batch=0xbadc0ded" + ", keys=0xdeadf00d, values=0xfffffffe, count=3" + ", map_fd=-1, elem_flags=BPF_F_LOCK, flags=0x4}" + } +}; + +static const struct bpf_attr_check BPF_MAP_UPDATE_BATCH_checks[] = { + { + .data = { .BPF_MAP_UPDATE_BATCH_data = { .map_fd = -1 } }, + .size = offsetofend(struct BPF_MAP_UPDATE_BATCH_struct, map_fd ), + .str = "batch={keys=NULL, values=NULL, count=0, map_fd=-1" + ", elem_flags=BPF_ANY, flags=0}" + }, + { + .data = { .BPF_MAP_UPDATE_BATCH_data = { + .keys = 0xdeadf00d, + .values = 0xfffffffe, + .count = 3, + .map_fd = -1, + .elem_flags = 4, + .flags = 4 + } }, + .size = offsetofend(struct BPF_MAP_UPDATE_BATCH_struct, flags), + .str = "batch={keys=0xdeadf00d, values=0xfffffffe, count=3" + ", map_fd=-1, elem_flags=BPF_F_LOCK, flags=0x4}" + } +}; + +static const struct bpf_attr_check BPF_MAP_DELETE_BATCH_checks[] = { + { + .data = { .BPF_MAP_DELETE_BATCH_data = { .map_fd = -1 } }, + .size = offsetofend(struct BPF_MAP_DELETE_BATCH_struct, map_fd ), + .str = "batch={keys=NULL, count=0, map_fd=-1" + ", elem_flags=BPF_ANY, flags=0}" + }, + { + .data = { .BPF_MAP_DELETE_BATCH_data = { + .keys = 0xdeadf00d, + .count = 3, + .map_fd = -1, + .elem_flags = 4, + .flags = 4 + } }, + .size = offsetofend(struct BPF_MAP_DELETE_BATCH_struct, flags), + .str = "batch={keys=0xdeadf00d, count=3, map_fd=-1" + ", elem_flags=BPF_F_LOCK, flags=0x4}" + } +}; + +static const struct bpf_attr_check BPF_LINK_CREATE_checks[] = { + { + .data = { .BPF_LINK_CREATE_data = { .prog_fd = -1, .target_fd = -2 } }, + .size = offsetofend(struct BPF_LINK_CREATE_struct, flags), + .str = "link_create={prog_fd=-1, target_fd=-2" + ", attach_type=BPF_CGROUP_INET_INGRESS, flags=0}" + }, + { + .data = { .BPF_LINK_CREATE_data = { + .prog_fd = -1, + .target_fd = 0xdeadbeef, + .attach_type = 5, + .flags = 4 + } }, + .size = offsetofend(struct BPF_LINK_CREATE_struct, flags), + .str = "link_create={prog_fd=-1, target_fd=-559038737" + ", attach_type=BPF_SK_SKB_STREAM_VERDICT, flags=0x4}" + } +}; + +static const struct bpf_attr_check BPF_LINK_UPDATE_checks[] = { + { + .data = { .BPF_LINK_UPDATE_data = { + .link_fd = -1, + .new_prog_fd = -2 + } }, + .size = offsetofend(struct BPF_LINK_UPDATE_struct, old_prog_fd), + .str = "link_update={link_fd=-1, new_prog_fd=-2, flags=0}" + }, + { + .data = { .BPF_LINK_UPDATE_data = { + .link_fd = -1, + .new_prog_fd = 0xdeadbeef, + .flags = 4, + .old_prog_fd = 0xdeadf00d + } }, + .size = offsetofend(struct BPF_LINK_UPDATE_struct, old_prog_fd), + .str = "link_update={link_fd=-1, new_prog_fd=-559038737" + ", flags=BPF_F_REPLACE, old_prog_fd=-559026163}" + } +}; + #define CHK(cmd_) \ { \ @@ -1231,6 +1466,13 @@ main(void) CHK(BPF_BTF_GET_FD_BY_ID), CHK(BPF_TASK_FD_QUERY), CHK(BPF_MAP_LOOKUP_AND_DELETE_ELEM), + CHK(BPF_MAP_FREEZE), + CHK(BPF_BTF_GET_NEXT_ID), + CHK(BPF_MAP_LOOKUP_BATCH), + CHK(BPF_MAP_UPDATE_BATCH), + CHK(BPF_MAP_DELETE_BATCH), + CHK(BPF_LINK_CREATE), + CHK(BPF_LINK_UPDATE), }; page_size = get_page_size(); diff --git a/tests-mx32/brk.c b/tests-mx32/brk.c index caf40e13..90f990e1 100644 --- a/tests-mx32/brk.c +++ b/tests-mx32/brk.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_brk diff --git a/tests-mx32/btrfs.c b/tests-mx32/btrfs.c index f1a26bf3..2a474dc4 100644 --- a/tests-mx32/btrfs.c +++ b/tests-mx32/btrfs.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -815,7 +815,7 @@ btrfs_test_clone_ioctls(void) args.dest_offset); } -# define BTRFS_COMPRESS_TYPES 2 +# define BTRFS_COMPRESS_TYPES 3 # define BTRFS_INVALID_COMPRESS (BTRFS_COMPRESS_TYPES + 1) static void @@ -886,9 +886,9 @@ btrfs_test_defrag_ioctls(void) static const char * xlookup(const struct xlat *xlat, const uint64_t val) { - for (; xlat->str != NULL; xlat++) - if (xlat->val == val) - return xlat->str; + for (size_t i = 0; i < xlat->size; i++) + if (xlat->data[i].val == val) + return xlat->data[i].str; return NULL; } @@ -2068,7 +2068,7 @@ btrfs_test_features_ioctls(void) static void btrfs_test_read_ioctls(void) { - static const struct xlat btrfs_read_cmd[] = { + static const struct xlat_data btrfs_read_cmd[] = { XLAT(BTRFS_IOC_BALANCE_PROGRESS), XLAT(BTRFS_IOC_FS_INFO), XLAT(BTRFS_IOC_GET_FEATURES), diff --git a/tests-mx32/caps-abbrev.awk b/tests-mx32/caps-abbrev.awk index c00023b4..1ec02e34 100644 --- a/tests-mx32/caps-abbrev.awk +++ b/tests-mx32/caps-abbrev.awk @@ -3,12 +3,13 @@ # This file is part of caps strace test. # # Copyright (c) 2014-2018 Dmitry V. Levin +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later BEGIN { - cap = "(0|1< +# Copyright (c) 2014-2020 Dmitry V. Levin # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later BEGIN { - cap = "(0|1< * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_chmod diff --git a/tests-mx32/chown.c b/tests-mx32/chown.c index 05fe9af1..4b6daea0 100644 --- a/tests-mx32/chown.c +++ b/tests-mx32/chown.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_chown diff --git a/tests-mx32/chown32.c b/tests-mx32/chown32.c index f2726203..5a0601cb 100644 --- a/tests-mx32/chown32.c +++ b/tests-mx32/chown32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_chown32 diff --git a/tests-mx32/chroot.c b/tests-mx32/chroot.c index 3fc441e3..1cef5f9b 100644 --- a/tests-mx32/chroot.c +++ b/tests-mx32/chroot.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_chroot diff --git a/tests-mx32/clock_adjtime.c b/tests-mx32/clock_adjtime.c index 8e5a12fb..610c75e3 100644 --- a/tests-mx32/clock_adjtime.c +++ b/tests-mx32/clock_adjtime.c @@ -2,13 +2,14 @@ * This file is part of clock_adjtime strace test. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_clock_adjtime diff --git a/tests-mx32/clock_nanosleep.c b/tests-mx32/clock_nanosleep.c index 258c3ac1..854fdb3f 100644 --- a/tests-mx32/clock_nanosleep.c +++ b/tests-mx32/clock_nanosleep.c @@ -2,21 +2,24 @@ * Check decoding of clock_nanosleep and clock_gettime syscalls. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include -#include -#include -#include -#include -#include -#include +#include "scno.h" + +#ifdef __NR_clock_nanosleep + +# include +# include +# include +# include +# include +# include +# include static void handler(int signo) @@ -127,3 +130,9 @@ main(void) puts("+++ exited with 0 +++"); return 0; } + +#else + +SKIP_MAIN_UNDEFINED("__NR_clock_nanosleep") + +#endif diff --git a/tests-mx32/clock_xettime.c b/tests-mx32/clock_xettime.c index c25240da..345c3a42 100644 --- a/tests-mx32/clock_xettime.c +++ b/tests-mx32/clock_xettime.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +11,7 @@ #include #include #include -#include +#include "scno.h" #if defined __NR_clock_getres \ && defined __NR_clock_gettime \ diff --git a/tests-mx32/clone-flags.c b/tests-mx32/clone-flags.c new file mode 100644 index 00000000..04bb2c76 --- /dev/null +++ b/tests-mx32/clone-flags.c @@ -0,0 +1,151 @@ +/* + * Check decoding of clone flags. + * + * Copyright (c) 2017-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#define XLAT_MACROS_ONLY +#include "xlat/clone_flags.h" +#undef XLAT_MACROS_ONLY + +static const int child_exit_status = 42; +static pid_t pid; + +static pid_t +wait_cloned(pid_t pid, int sig, const char *text) +{ + if (pid < 0) + perror_msg_and_fail("clone %s", text); + int status; + pid_t rc = wait(&status); + if (sig) { + if (rc != pid) + perror_msg_and_fail("unexpected wait rc %d from %s", + rc, text); + if (!WIFEXITED(status) || + WEXITSTATUS(status) != child_exit_status) + error_msg_and_fail("unexpected wait status %#x from %s", + status, text); + } else { + if (rc >= 0) + error_msg_and_fail("unexpected wait rc %d from %s", + rc, text); + } + return pid; +} + +#ifdef IA64 +extern int __clone2(int (*)(void *), void *, size_t, int, void *, ...); +# define do_clone(fn_, stack_, size_, flags_, arg_, ...) \ + wait_cloned(__clone2((fn_), (stack_), (size_), (flags_), (arg_), \ + ## __VA_ARGS__), (flags_) & 0xff, #flags_) +# define SYSCALL_NAME "clone2" +# define STACK_SIZE_FMT ", stack_size=%#lx" +# define STACK_SIZE_ARG child_stack_size, +#else +# define do_clone(fn_, stack_, size_, flags_, arg_, ...) \ + wait_cloned(clone((fn_), (stack_), (flags_), (arg_), \ + ## __VA_ARGS__), (flags_) & 0xff, #flags_) +# define SYSCALL_NAME "clone" +# define STACK_SIZE_FMT "" +# define STACK_SIZE_ARG +#endif + +static int +child(void *const arg) +{ + return child_exit_status; +} + +int +main(void) +{ + const unsigned long child_stack_size = get_page_size(); + void *const child_stack = + tail_alloc(child_stack_size * 2) + child_stack_size; + + const char *child_stack_expected_str = getenv("CHILD_STACK_EXPECTED"); + const char *child_stack_reported_str = getenv("CHILD_STACK_REPORTED"); + + if (!child_stack_expected_str || !child_stack_reported_str) { + const unsigned long child_stack_base = + (unsigned long) child_stack / 0x1000; + pid = do_clone(child, child_stack, child_stack_size, + SIGCHLD, 0); + printf("%s\\(child_stack=(%#lx|%#lx)[[:xdigit:]]{3}" + STACK_SIZE_FMT ", flags=%s\\) = %d\n", + SYSCALL_NAME, child_stack_base, child_stack_base - 1, + STACK_SIZE_ARG "SIGCHLD", pid); + return 0; + } + const unsigned long child_stack_expected = + strtoul(child_stack_expected_str, 0, 16); + const unsigned long child_stack_reported = + strtoul(child_stack_reported_str, 0, 16); + const unsigned long child_stack_printed = + (unsigned long) child_stack + + (child_stack_reported - child_stack_expected); + + pid = do_clone(child, child_stack, child_stack_size, 0, 0); + printf("%s(child_stack=%#lx" STACK_SIZE_FMT ", flags=%s) = %d\n", + SYSCALL_NAME, child_stack_printed, STACK_SIZE_ARG + "0", pid); + + pid = do_clone(child, child_stack, child_stack_size, CLONE_FS, 0); + printf("%s(child_stack=%#lx" STACK_SIZE_FMT ", flags=%s) = %d\n", + SYSCALL_NAME, child_stack_printed, STACK_SIZE_ARG + "CLONE_FS", pid); + + pid = do_clone(child, child_stack, child_stack_size, SIGCHLD, 0); + printf("%s(child_stack=%#lx" STACK_SIZE_FMT ", flags=%s) = %d\n", + SYSCALL_NAME, child_stack_printed, STACK_SIZE_ARG + "SIGCHLD", pid); + + pid = do_clone(child, child_stack, child_stack_size, + CLONE_FS|SIGCHLD, 0); + printf("%s(child_stack=%#lx" STACK_SIZE_FMT ", flags=%s) = %d\n", + SYSCALL_NAME, child_stack_printed, STACK_SIZE_ARG + "CLONE_FS|SIGCHLD", pid); + + TAIL_ALLOC_OBJECT_CONST_PTR(pid_t, ptid); + pid = do_clone(child, child_stack, child_stack_size, + CLONE_PARENT_SETTID|SIGCHLD, 0, ptid); + printf("%s(child_stack=%#lx" STACK_SIZE_FMT ", flags=%s" + ", parent_tid=[%u]) = %d\n", + SYSCALL_NAME, child_stack_printed, STACK_SIZE_ARG + "CLONE_PARENT_SETTID|SIGCHLD", *ptid, pid); + + char buf[PATH_MAX]; + if (readlink("/proc/self/fd/0", buf, sizeof(buf) - 1) > 0) { + *ptid = 0; + pid = do_clone(child, child_stack, child_stack_size, + CLONE_PIDFD|SIGCHLD, 0, ptid); + char *fname = 0; + if (asprintf(&fname, "/proc/self/fd/%d", *ptid) < 0) + perror_msg_and_fail("asprintf"); + int rc = readlink(fname, buf, sizeof(buf) - 1); + if ((unsigned int) rc >= sizeof(buf)) + perror_msg_and_fail("readlink"); + buf[rc] = '\0'; + printf("%s(child_stack=%#lx" STACK_SIZE_FMT ", flags=%s" + ", parent_tid=[%u<%s>]) = %d\n", + SYSCALL_NAME, child_stack_printed, STACK_SIZE_ARG + "CLONE_PIDFD|SIGCHLD", *ptid, buf, pid); + } + + return 0; +} diff --git a/tests-mx32/clone-flags.test b/tests-mx32/clone-flags.test new file mode 100755 index 00000000..9485afa5 --- /dev/null +++ b/tests-mx32/clone-flags.test @@ -0,0 +1,24 @@ +#!/bin/sh -efu +# +# Check decoding of clone flags. +# +# Copyright (c) 2019-2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +case "$STRACE_ARCH" in + ia64) syscall=clone2 ;; + *) syscall=clone ;; +esac + +# Find out the expected and reported child stack addresses. +run_strace_match_grep --silence=exits -e signal=none -e trace=$syscall +CHILD_STACK_EXPECTED="$(sed -n 's/^clone[^(]*(child_stack=(\(0x[[:xdigit:]]\+\)|.*/\1/p' "$EXP")000" +CHILD_STACK_REPORTED="$(sed -n 's/^clone[^(]*(child_stack=\(0x[[:xdigit:]]\+\),.*/\1/p' "$LOG")" +export CHILD_STACK_EXPECTED CHILD_STACK_REPORTED + +# Use child stack addresses to check decoding. +run_strace_match_diff -a35 --silence=exits,personality -y -e signal=none -e trace=$syscall diff --git a/tests-mx32/clone3-Xabbrev.c b/tests-mx32/clone3-Xabbrev.c new file mode 100644 index 00000000..2b7e4175 --- /dev/null +++ b/tests-mx32/clone3-Xabbrev.c @@ -0,0 +1 @@ +#include "clone3.c" diff --git a/tests-mx32/clone3-Xabbrev.gen.test b/tests-mx32/clone3-Xabbrev.gen.test new file mode 100755 index 00000000..39eea6b5 --- /dev/null +++ b/tests-mx32/clone3-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone3-Xabbrev -a16 -Xabbrev -e trace=clone3); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a16 -Xabbrev -e trace=clone3 diff --git a/tests-mx32/clone3-Xraw.c b/tests-mx32/clone3-Xraw.c new file mode 100644 index 00000000..1e1facb4 --- /dev/null +++ b/tests-mx32/clone3-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "clone3.c" diff --git a/tests-mx32/clone3-Xraw.gen.test b/tests-mx32/clone3-Xraw.gen.test new file mode 100755 index 00000000..727ea5ad --- /dev/null +++ b/tests-mx32/clone3-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone3-Xraw -a16 -Xraw -e trace=clone3); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a16 -Xraw -e trace=clone3 diff --git a/tests-mx32/clone3-Xverbose.c b/tests-mx32/clone3-Xverbose.c new file mode 100644 index 00000000..23c45a0b --- /dev/null +++ b/tests-mx32/clone3-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "clone3.c" diff --git a/tests-mx32/clone3-Xverbose.gen.test b/tests-mx32/clone3-Xverbose.gen.test new file mode 100755 index 00000000..9955d021 --- /dev/null +++ b/tests-mx32/clone3-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone3-Xverbose -a16 -Xverbose -e trace=clone3); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a16 -Xverbose -e trace=clone3 diff --git a/tests-mx32/clone3-success-Xabbrev.c b/tests-mx32/clone3-success-Xabbrev.c new file mode 100644 index 00000000..8df14f94 --- /dev/null +++ b/tests-mx32/clone3-success-Xabbrev.c @@ -0,0 +1,2 @@ +#define RETVAL_INJECTED 1 +#include "clone3.c" diff --git a/tests-mx32/clone3-success-Xabbrev.gen.test b/tests-mx32/clone3-success-Xabbrev.gen.test new file mode 100755 index 00000000..a9c16f43 --- /dev/null +++ b/tests-mx32/clone3-success-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone3-success-Xabbrev +clone3-success.test -a16 -Xabbrev); do not edit. +set -- -a16 -Xabbrev +. "${srcdir=.}/clone3-success.test" diff --git a/tests-mx32/clone3-success-Xraw.c b/tests-mx32/clone3-success-Xraw.c new file mode 100644 index 00000000..9a81c752 --- /dev/null +++ b/tests-mx32/clone3-success-Xraw.c @@ -0,0 +1,3 @@ +#define RETVAL_INJECTED 1 +#define XLAT_RAW 1 +#include "clone3.c" diff --git a/tests-mx32/clone3-success-Xraw.gen.test b/tests-mx32/clone3-success-Xraw.gen.test new file mode 100755 index 00000000..d1ed0b0b --- /dev/null +++ b/tests-mx32/clone3-success-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone3-success-Xraw +clone3-success.test -a16 -Xraw); do not edit. +set -- -a16 -Xraw +. "${srcdir=.}/clone3-success.test" diff --git a/tests-mx32/clone3-success-Xverbose.c b/tests-mx32/clone3-success-Xverbose.c new file mode 100644 index 00000000..2b2a3bd1 --- /dev/null +++ b/tests-mx32/clone3-success-Xverbose.c @@ -0,0 +1,3 @@ +#define RETVAL_INJECTED 1 +#define XLAT_VERBOSE 1 +#include "clone3.c" diff --git a/tests-mx32/clone3-success-Xverbose.gen.test b/tests-mx32/clone3-success-Xverbose.gen.test new file mode 100755 index 00000000..3b7a3f83 --- /dev/null +++ b/tests-mx32/clone3-success-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone3-success-Xverbose +clone3-success.test -a16 -Xverbose); do not edit. +set -- -a16 -Xverbose +. "${srcdir=.}/clone3-success.test" diff --git a/tests-mx32/clone3-success.c b/tests-mx32/clone3-success.c new file mode 100644 index 00000000..8df14f94 --- /dev/null +++ b/tests-mx32/clone3-success.c @@ -0,0 +1,2 @@ +#define RETVAL_INJECTED 1 +#include "clone3.c" diff --git a/tests-mx32/clone3-success.test b/tests-mx32/clone3-success.test new file mode 100755 index 00000000..4db29f41 --- /dev/null +++ b/tests-mx32/clone3-success.test @@ -0,0 +1,12 @@ +#!/bin/sh -efu +# +# Copyright (c) 2019 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/scno_tampering.sh" + +run_strace -a10 "$@" -e trace=clone3 -e inject=clone3:retval=42 \ + "../$NAME" > "$EXP" +match_diff "$LOG" "$EXP" diff --git a/tests-mx32/clone3.c b/tests-mx32/clone3.c new file mode 100644 index 00000000..c15cb1d3 --- /dev/null +++ b/tests-mx32/clone3.c @@ -0,0 +1,629 @@ +/* + * Check decoding of clone3 syscall. + * + * Copyright (c) 2019-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#include +#include +#include +#include +#include +#include +#include + +#ifdef HAVE_LINUX_SCHED_H +# include +#endif + +#ifdef HAVE_STRUCT_USER_DESC +# include +#endif + +#define XLAT_MACROS_ONLY +# include "xlat/clone_flags.h" +# include "xlat/clone3_flags.h" +#undef XLAT_MACROS_ONLY + +#include "scno.h" + +#ifndef VERBOSE +# define VERBOSE 0 +#endif +#ifndef RETVAL_INJECTED +# define RETVAL_INJECTED 0 +#endif + +struct test_clone_args { + uint64_t flags; + uint64_t pidfd; + uint64_t child_tid; + uint64_t parent_tid; + uint64_t exit_signal; + uint64_t stack; + uint64_t stack_size; + uint64_t tls; + uint64_t set_tid; + uint64_t set_tid_size; + uint64_t cgroup; +}; + +#ifdef HAVE_STRUCT_CLONE_ARGS_CGROUP +typedef struct clone_args struct_clone_args; +#else +typedef struct test_clone_args struct_clone_args; +#endif + +enum validity_flag_bits { + STRUCT_VALID_BIT, + PIDFD_VALID_BIT, + CHILD_TID_VALID_BIT, + PARENT_TID_VALID_BIT, + TLS_VALID_BIT, +}; + +enum validity_flags { + FLAG(STRUCT_VALID), + FLAG(PIDFD_VALID), + FLAG(CHILD_TID_VALID), + FLAG(PARENT_TID_VALID), + FLAG(TLS_VALID), +}; + +#define MAX_SET_TID_SIZE 32 + +static const int child_exit_status = 42; + +#if RETVAL_INJECTED +static const long injected_retval = 42; + +# define INJ_STR " (INJECTED)\n" +#else /* !RETVAL_INJECTED */ +# define INJ_STR "\n" +#endif /* RETVAL_INJECTED */ + +#define ERR(b_) ((1ULL << (b_)) + FAIL_BUILD_ON_ZERO((b_) < 64)) + + +#if !RETVAL_INJECTED +static void +wait_cloned(int pid) +{ + int status; + + errno = 0; + while (waitpid(pid, &status, WEXITED | __WCLONE) != pid) { + if (errno != EINTR) + perror_msg_and_fail("waitpid(%d)", pid); + } +} +#endif + +static long +do_clone3_(void *args, kernel_ulong_t size, uint64_t possible_errors, int line) +{ + long rc = syscall(__NR_clone3, args, size); + +#if RETVAL_INJECTED + if (rc != injected_retval) + perror_msg_and_fail("%d: Unexpected injected return value " + "of a clone3() call (%ld instead of %ld)", + line, rc, injected_retval); +#else + + static int unimplemented_error = -1; + + if (!(possible_errors & ERR(0))) { + if (rc >= 0) + error_msg_and_fail("%d: Unexpected success" + " of a clone3() call", line); + if (unimplemented_error < 0) + unimplemented_error = + (errno == EINVAL) ? ENOSYS : errno; + } + + /* + * This code works as long as all the errors we care about (EFAULT + * and EINVAL so far) fit inside 64 bits, otherwise it should + * be rewritten. + */ + if (rc < 0 && errno != unimplemented_error + && (errno >= 64 || errno < 0 || !(ERR(errno) & possible_errors))) { + perror_msg_and_fail("%d: Unexpected failure of a clone3() call" + " (got errno %d, expected errno bitmask" + " %#" PRIx64 ")", + line, errno, possible_errors); + } + + if (!rc) + _exit(child_exit_status); + + if (rc > 0 && ((struct_clone_args *) args)->exit_signal) + wait_cloned(rc); +#endif + + return rc; +} + +#define do_clone3(args_, size_, errors_) \ + do_clone3_((args_), (size_), (errors_), __LINE__) + +static inline void +print_addr64(const char *pfx, uint64_t addr) +{ + if (addr) + printf("%s%#" PRIx64, pfx, addr); + else + printf("%sNULL", pfx); +} + +static void +print_tls(const char *pfx, uint64_t arg_ptr, enum validity_flags vf) +{ +#if defined HAVE_STRUCT_USER_DESC && defined __i386__ + if (!(vf & TLS_VALID)) { + print_addr64(pfx, arg_ptr); + return; + } + + struct user_desc *arg = (struct user_desc *) (uintptr_t) arg_ptr; + + printf("%s{entry_number=%d" + ", base_addr=%#08x" + ", limit=%#08x" + ", seg_32bit=%u" + ", contents=%u" + ", read_exec_only=%u" + ", limit_in_pages=%u" + ", seg_not_present=%u" + ", useable=%u}", + pfx, + arg->entry_number, + arg->base_addr, + arg->limit, + arg->seg_32bit, + arg->contents, + arg->read_exec_only, + arg->limit_in_pages, + arg->seg_not_present, + arg->useable); +#else + print_addr64(pfx, arg_ptr); +#endif +} + +static void +print_set_tid(uint64_t set_tid, uint64_t set_tid_size) +{ + if (!set_tid || set_tid != (uintptr_t) set_tid || + !set_tid_size || set_tid_size > MAX_SET_TID_SIZE) { + print_addr64(", set_tid=", set_tid); + } else { + printf(", set_tid="); + int *tids = (int *) (uintptr_t) set_tid; + for (unsigned int i = 0; i < set_tid_size; ++i) + printf("%s%d", i ? ", " : "[", tids[i]); + printf("]"); + } + + printf(", set_tid_size=%" PRIu64, set_tid_size); +} + +static inline void +print_clone3(struct_clone_args *const arg, long rc, kernel_ulong_t sz, + enum validity_flags valid, + const char *flags_str, const char *es_str) +{ + int saved_errno = errno; + + printf("clone3("); + if (!(valid & STRUCT_VALID)) { + printf("%p", arg); + goto out; + } + +#if XLAT_RAW + printf("{flags=%#" PRIx64, (uint64_t) arg->flags); +#elif XLAT_VERBOSE + if (flags_str[0] == '0') + printf("{flags=%#" PRIx64, (uint64_t) arg->flags); + else + printf("{flags=%#" PRIx64 " /* %s */", + (uint64_t) arg->flags, flags_str); +#else + printf("{flags=%s", flags_str); +#endif + + if (arg->flags & CLONE_PIDFD) + print_addr64(", pidfd=", arg->pidfd); + + if (arg->flags & (CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID)) { + if (valid & CHILD_TID_VALID) + printf(", child_tid=[%d]", + *(int *) (uintptr_t) arg->child_tid); + else + print_addr64(", child_tid=", arg->child_tid); + } + + if (arg->flags & CLONE_PARENT_SETTID) + print_addr64(", parent_tid=", arg->parent_tid); + + printf(", exit_signal=%s", es_str); + print_addr64(", stack=", arg->stack); + printf(", stack_size=%" PRIx64, (uint64_t) arg->stack_size); + + if (arg->flags & CLONE_SETTLS) + print_tls("tls=", arg->tls, valid); + + if (sz >= offsetofend(struct_clone_args, set_tid_size) && + (arg->set_tid || arg->set_tid_size)) + print_set_tid(arg->set_tid, arg->set_tid_size); + + if (sz > offsetof(struct_clone_args, cgroup) && + (arg->cgroup || arg->flags & CLONE_INTO_CGROUP)) + printf(", cgroup=%" PRIu64, (uint64_t) arg->cgroup); + + printf("}"); + + if (rc < 0) + goto out; + + bool comma = false; + + if (arg->flags & CLONE_PIDFD) { + if (valid & PIDFD_VALID) + printf(" => {pidfd=[%d]", + *(int *) (uintptr_t) arg->pidfd); + else + print_addr64(" => {pidfd=", arg->pidfd); + + comma = true; + } + + if (arg->flags & CLONE_PARENT_SETTID) { + printf(comma ? ", " : " => {"); + + if (valid & PARENT_TID_VALID) + printf("parent_tid=[%d]", + *(int *) (uintptr_t) arg->parent_tid); + else + print_addr64("parent_tid=", arg->parent_tid); + + comma = true; + } + + if (comma) + printf("}"); + +out: + errno = saved_errno; +} + +int +main(int argc, char *argv[]) +{ + static const struct { + struct_clone_args args; + uint64_t possible_errors; + enum validity_flags vf; + const char *flags_str; + const char *es_str; + } arg_vals[] = { + { { .flags = 0 }, + ERR(0), 0, "0", "0" }, + { { .flags = CLONE_PARENT_SETTID }, + ERR(0), 0, "CLONE_PARENT_SETTID", "0" }, + + /* check clone3_flags/clone_flags interoperation */ + { { .flags = CLONE_CLEAR_SIGHAND }, + ERR(EINVAL) | ERR(0), 0, "CLONE_CLEAR_SIGHAND", "0" }, + { { .flags = CLONE_PARENT_SETTID | CLONE_CLEAR_SIGHAND }, + ERR(EINVAL) | ERR(0), 0, + "CLONE_PARENT_SETTID|CLONE_CLEAR_SIGHAND", "0" }, + + { { .set_tid = 0xfacefeedcafebabe }, + ERR(E2BIG) | ERR(EINVAL), 0, "0", "0" }, + { { .set_tid_size = 0xfacecafefeedbabe }, + ERR(E2BIG) | ERR(EINVAL), 0, "0", "0" }, + { { .set_tid = 0xfacefeedcafebabe, + .set_tid_size = MAX_SET_TID_SIZE + 1 }, + ERR(E2BIG) | ERR(EINVAL), 0, "0", "0" }, + }; + TAIL_ALLOC_OBJECT_CONST_PTR(struct_clone_args, arg); + const size_t arg1_size = offsetofend(struct_clone_args, tls); + struct_clone_args *const arg1 = tail_alloc(arg1_size); + const size_t arg2_size = sizeof(*arg) + 8; + struct_clone_args *const arg2 = tail_alloc(arg2_size); + TAIL_ALLOC_OBJECT_CONST_PTR(int, pidfd); + TAIL_ALLOC_OBJECT_CONST_PTR(int, child_tid); + TAIL_ALLOC_OBJECT_CONST_PTR(int, parent_tid); + int *const tids = tail_alloc(sizeof(*tids) * MAX_SET_TID_SIZE); + long rc; + +#if defined HAVE_STRUCT_USER_DESC + TAIL_ALLOC_OBJECT_CONST_PTR(struct user_desc, tls); + + fill_memory(tls, sizeof(*tls)); +#else + TAIL_ALLOC_OBJECT_CONST_PTR(int, tls); +#endif + + *pidfd = 0xbadc0ded; + *child_tid = 0xdeadface; + *parent_tid = 0xfeedbeef; + fill_memory(tids, sizeof(*tids) * MAX_SET_TID_SIZE); + + rc = do_clone3(NULL, 0, ERR(EINVAL)); + printf("clone3(NULL, 0) = %s" INJ_STR, sprintrc(rc)); + + rc = do_clone3(arg + 1, sizeof(*arg), ERR(EFAULT)); + printf("clone3(%p, %zu) = %s" INJ_STR, + arg + 1, sizeof(*arg), sprintrc(rc)); + + size_t short_size = arg1_size - sizeof(uint64_t); + char *short_start = (char *) arg1 + sizeof(uint64_t); + rc = do_clone3(short_start, short_size, ERR(EINVAL)); + printf("clone3(%p, %zu) = %s" INJ_STR, + short_start, short_size, sprintrc(rc)); + + + memset(arg, 0, sizeof(*arg)); + memset(arg1, 0, arg1_size); + memset(arg2, 0, arg2_size); + + rc = do_clone3(arg, 64, ERR(0)); + printf("clone3({flags=0, exit_signal=0, stack=NULL, stack_size=0}, 64)" + " = %s" INJ_STR, + sprintrc(rc)); + + rc = do_clone3(arg, sizeof(*arg) + 8, ERR(EFAULT)); + printf("clone3({flags=0, exit_signal=0, stack=NULL, stack_size=0, ???}" +#if RETVAL_INJECTED + " => {???}" +#endif + ", %zu) = %s" INJ_STR, + sizeof(*arg) + 8, sprintrc(rc)); + + rc = do_clone3(arg1, arg1_size, ERR(0)); + printf("clone3({flags=0, exit_signal=0, stack=NULL, stack_size=0}" + ", %zu) = %s" INJ_STR, + arg1_size, sprintrc(rc)); + + rc = do_clone3(arg2, arg2_size, ERR(0)); + printf("clone3({flags=0, exit_signal=0, stack=NULL, stack_size=0}" + ", %zu) = %s" INJ_STR, + arg2_size, sprintrc(rc)); + + arg->set_tid = (uintptr_t) tids; + arg->set_tid_size = MAX_SET_TID_SIZE; + rc = do_clone3(arg, sizeof(*arg), ERR(E2BIG) | ERR(EINVAL)); + print_clone3(arg, rc, sizeof(*arg), STRUCT_VALID, "0", "0"); + printf(", %zu) = %s" INJ_STR, sizeof(*arg), sprintrc(rc)); + memset(arg, 0, sizeof(*arg)); + + arg->cgroup = 0xfacefeedbadc0ded; + rc = do_clone3(arg, sizeof(*arg), ERR(0) | ERR(E2BIG)); + print_clone3(arg, rc, sizeof(*arg), STRUCT_VALID, "0", "0"); + printf(", %zu) = %s" INJ_STR, sizeof(*arg), sprintrc(rc)); + memset(arg, 0, sizeof(*arg)); + + arg->flags = CLONE_INTO_CGROUP; + rc = do_clone3(arg, sizeof(*arg), ERR(0) | ERR(EINVAL) | ERR(EBADF)); + print_clone3(arg, rc, sizeof(*arg), STRUCT_VALID, + "CLONE_INTO_CGROUP", "0"); + printf(", %zu) = %s" INJ_STR, sizeof(*arg), sprintrc(rc)); + memset(arg, 0, sizeof(*arg)); + + /* + * NB: the following check is purposefully fragile (it will break + * when system's struct clone_args has additional fields, + * so it signalises that the decoder needs to be updated. + */ + arg2[1].flags = 0xfacefeeddeadc0de; + arg2->exit_signal = 0xdeadface00000000ULL | SIGCHLD; + rc = do_clone3(arg2, sizeof(*arg2) + 8, ERR(E2BIG)); + printf("clone3({flags=0, exit_signal=%llu, stack=NULL, stack_size=0" + ", /* bytes %zu..%zu */ " +#if WORDS_BIGENDIAN + "\"\\xfa\\xce\\xfe\\xed\\xde\\xad\\xc0\\xde\"" +#else + "\"\\xde\\xc0\\xad\\xde\\xed\\xfe\\xce\\xfa\"" +#endif +#if RETVAL_INJECTED + "} => {/* bytes %zu..%zu */ " +# if WORDS_BIGENDIAN + "\"\\xfa\\xce\\xfe\\xed\\xde\\xad\\xc0\\xde\"" +# else + "\"\\xde\\xc0\\xad\\xde\\xed\\xfe\\xce\\xfa\"" +# endif +#endif /* RETVAL_INJECTED */ + "}, %zu) = %s" INJ_STR, + 0xdeadface00000000ULL | SIGCHLD, + sizeof(*arg2), sizeof(*arg2) + 7, +#if RETVAL_INJECTED + sizeof(*arg2), sizeof(*arg2) + 7, +#endif + sizeof(*arg2) + 8, sprintrc(rc)); + + arg2->exit_signal = 0xdeadc0de; + rc = do_clone3(arg2, sizeof(*arg) + 16, ERR(E2BIG)); + printf("clone3({flags=0, exit_signal=3735929054, stack=NULL" + ", stack_size=0, ???}" +#if RETVAL_INJECTED + " => {???}" +#endif + ", %zu) = %s" INJ_STR, + sizeof(*arg) + 16, sprintrc(rc)); + + arg->flags = 0xface3eefbeefc0de; + arg->exit_signal = 0x1e55c0de; + rc = do_clone3(arg, 64, ERR(EINVAL)); + printf("clone3({flags=%s, child_tid=NULL, exit_signal=508936414" + ", stack=NULL, stack_size=0, tls=NULL}, 64) = %s" INJ_STR, + XLAT_KNOWN(0xface3eefbeefc0de, "CLONE_VFORK|CLONE_PARENT" + "|CLONE_THREAD|CLONE_NEWNS|CLONE_SYSVSEM|CLONE_SETTLS" + "|CLONE_CHILD_CLEARTID|CLONE_UNTRACED|CLONE_NEWCGROUP" + "|CLONE_NEWUTS|CLONE_NEWIPC|CLONE_NEWUSER|CLONE_NEWPID|CLONE_IO" + "|CLONE_NEWTIME|CLONE_CLEAR_SIGHAND|CLONE_INTO_CGROUP" + "|0xface3eec0040005e"), + sprintrc(rc)); + + arg->flags = 0xdec0deac0040007fULL; + arg->exit_signal = 250; + arg->stack = 0xface1e55beeff00dULL; + arg->stack_size = 0xcaffeedefacedca7ULL; + rc = do_clone3(arg, 64, ERR(EINVAL)); + printf("clone3({flags=%s, exit_signal=250" + ", stack=0xface1e55beeff00d, stack_size=0xcaffeedefacedca7}, 64)" + " = %s" INJ_STR, + XLAT_UNKNOWN(0xdec0deac0040007f, "CLONE_???"), + sprintrc(rc)); + + arg->exit_signal = SIGCHLD; + + struct { + uint64_t flag; + const char *flag_str; + uint64_t *field; + const char *field_name; + int *ptr; + bool deref_exiting; + } pid_fields[] = { + { ARG_STR(CLONE_PIDFD), + (uint64_t *) &arg->pidfd, + "pidfd", pidfd, true }, + { ARG_STR(CLONE_CHILD_SETTID), + (uint64_t *) &arg->child_tid, + "child_tid", child_tid }, + { ARG_STR(CLONE_CHILD_CLEARTID), + (uint64_t *) &arg->child_tid, + "child_tid", child_tid }, + { ARG_STR(CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID), + (uint64_t *) &arg->child_tid, + "child_tid", child_tid }, + { ARG_STR(CLONE_PARENT_SETTID), + (uint64_t *) &arg->parent_tid, + "parent_tid", parent_tid, true }, + }; + + for (size_t i = 0; i < ARRAY_SIZE(pid_fields); i++) { + char flag_str[128]; + const char *rc_str; + + arg->flags = 0xbad0000000000001ULL | pid_fields[i].flag; + +#if XLAT_RAW + snprintf(flag_str, sizeof(flag_str), "%#" PRIx64, + (uint64_t) arg->flags); +#elif XLAT_VERBOSE + snprintf(flag_str, sizeof(flag_str), + "%#" PRIx64 " /* %s|0xbad0000000000001 */", + (uint64_t) arg->flags, pid_fields[i].flag_str); +#else + snprintf(flag_str, sizeof(flag_str), "%s|0xbad0000000000001", + pid_fields[i].flag_str); +#endif + + pid_fields[i].field[0] = 0; + rc = do_clone3(arg, 64, ERR(EINVAL)); + rc_str = sprintrc(rc); + printf("clone3({flags=%s, %s=NULL" + ", exit_signal=" XLAT_KNOWN(SIGCHLD, "SIGCHLD") + ", stack=0xface1e55beeff00d" + ", stack_size=0xcaffeedefacedca7}", + flag_str, pid_fields[i].field_name); +#if RETVAL_INJECTED + if (pid_fields[i].deref_exiting) + printf(" => {%s=NULL}", pid_fields[i].field_name); +#endif /* RETVAL_INJECTED */ + printf(", 64) = %s" INJ_STR, rc_str); + + pid_fields[i].field[0] = (uintptr_t) (pid_fields[i].ptr + 1); + rc = do_clone3(arg, 64, ERR(EINVAL)); + rc_str = sprintrc(rc); + printf("clone3({flags=%s, %s=%p" + ", exit_signal=" XLAT_KNOWN(SIGCHLD, "SIGCHLD") + ", stack=0xface1e55beeff00d" + ", stack_size=0xcaffeedefacedca7}", + flag_str, pid_fields[i].field_name, + pid_fields[i].ptr + 1); +#if RETVAL_INJECTED + if (pid_fields[i].deref_exiting) + printf(" => {%s=%p}", + pid_fields[i].field_name, pid_fields[i].ptr + 1); +#endif /* RETVAL_INJECTED */ + printf(", 64) = %s" INJ_STR, rc_str); + + pid_fields[i].field[0] = (uintptr_t) pid_fields[i].ptr; + rc = do_clone3(arg, 64, ERR(EINVAL)); + rc_str = sprintrc(rc); + printf("clone3({flags=%s, %s=%p" + ", exit_signal=" XLAT_KNOWN(SIGCHLD, "SIGCHLD") + ", stack=0xface1e55beeff00d" + ", stack_size=0xcaffeedefacedca7}", + flag_str, pid_fields[i].field_name, + pid_fields[i].ptr); +#if RETVAL_INJECTED + if (pid_fields[i].deref_exiting) + printf(" => {%s=[%d]}", + pid_fields[i].field_name, *pid_fields[i].ptr); +#endif /* RETVAL_INJECTED */ + printf(", 64) = %s" INJ_STR, rc_str); + } + + arg->flags = 0xbad0000000000001ULL | CLONE_SETTLS; + rc = do_clone3(arg, 64, ERR(EINVAL)); + printf("clone3({flags=" + XLAT_KNOWN(0xbad0000000080001, "CLONE_SETTLS|0xbad0000000000001") + ", exit_signal=" XLAT_KNOWN(SIGCHLD, "SIGCHLD") + ", stack=0xface1e55beeff00d" + ", stack_size=0xcaffeedefacedca7, tls=NULL}, 64) = %s" INJ_STR, + sprintrc(rc)); + + arg->tls = (uintptr_t) (tls + 1); + rc = do_clone3(arg, 64, ERR(EINVAL)); + printf("clone3({flags=" + XLAT_KNOWN(0xbad0000000080001, "CLONE_SETTLS|0xbad0000000000001") + ", exit_signal=" XLAT_KNOWN(SIGCHLD, "SIGCHLD") + ", stack=0xface1e55beeff00d" + ", stack_size=0xcaffeedefacedca7, tls=%p}, 64) = %s" INJ_STR, + tls + 1, sprintrc(rc)); + + arg->tls = (uintptr_t) tls; + rc = do_clone3(arg, 64, ERR(EINVAL)); + printf("clone3({flags=" + XLAT_KNOWN(0xbad0000000080001, "CLONE_SETTLS|0xbad0000000000001") + ", exit_signal=" XLAT_KNOWN(SIGCHLD, "SIGCHLD") + ", stack=0xface1e55beeff00d, stack_size=0xcaffeedefacedca7, tls=" +#if defined HAVE_STRUCT_USER_DESC && defined __i386__ + "{entry_number=2206368128, base_addr=0x87868584" + ", limit=0x8b8a8988, seg_32bit=0, contents=2, read_exec_only=1" + ", limit_in_pages=0, seg_not_present=0, useable=0}" +#else + "%p" +#endif + "}, 64) = %s" INJ_STR, +#if !defined HAVE_STRUCT_USER_DESC || !defined __i386__ + tls, +#endif + sprintrc(rc)); + + for (size_t i = 0; i < ARRAY_SIZE(arg_vals); i++) { + memcpy(arg, &arg_vals[i].args, sizeof(*arg)); + + rc = do_clone3(arg, sizeof(*arg), arg_vals[i].possible_errors); + print_clone3(arg, rc, sizeof(*arg), + arg_vals[i].vf | STRUCT_VALID, + arg_vals[i].flags_str, arg_vals[i].es_str); + printf(", %zu) = %s" INJ_STR, sizeof(*arg), sprintrc(rc)); + } + + puts("+++ exited with 0 +++"); + + return 0; +} diff --git a/tests-mx32/clone3.gen.test b/tests-mx32/clone3.gen.test new file mode 100755 index 00000000..e5d5ca40 --- /dev/null +++ b/tests-mx32/clone3.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone3 -a16 ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a16 diff --git a/tests-mx32/clone_parent--quiet-exit.c b/tests-mx32/clone_parent--quiet-exit.c new file mode 100644 index 00000000..fc80d805 --- /dev/null +++ b/tests-mx32/clone_parent--quiet-exit.c @@ -0,0 +1,2 @@ +#define QUIET_MSG 1 +#include "clone_parent.c" diff --git a/tests-mx32/clone_parent--quiet-exit.gen.test b/tests-mx32/clone_parent--quiet-exit.gen.test new file mode 100755 index 00000000..298abc0b --- /dev/null +++ b/tests-mx32/clone_parent--quiet-exit.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone_parent--quiet-exit +clone_ptrace.test --quiet=exit,personality); do not edit. +set -- --quiet=exit,personality +. "${srcdir=.}/clone_ptrace.test" diff --git a/tests-mx32/clone_parent-q.c b/tests-mx32/clone_parent-q.c new file mode 100644 index 00000000..503b8e8f --- /dev/null +++ b/tests-mx32/clone_parent-q.c @@ -0,0 +1,2 @@ +#define QUIET_MSG 0 +#include "clone_parent.c" diff --git a/tests-mx32/clone_parent-q.gen.test b/tests-mx32/clone_parent-q.gen.test new file mode 100755 index 00000000..0d0ecb66 --- /dev/null +++ b/tests-mx32/clone_parent-q.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone_parent-q +clone_ptrace.test -q); do not edit. +set -- -q +. "${srcdir=.}/clone_ptrace.test" diff --git a/tests-mx32/clone_parent-qq.c b/tests-mx32/clone_parent-qq.c new file mode 100644 index 00000000..fc80d805 --- /dev/null +++ b/tests-mx32/clone_parent-qq.c @@ -0,0 +1,2 @@ +#define QUIET_MSG 1 +#include "clone_parent.c" diff --git a/tests-mx32/clone_parent-qq.gen.test b/tests-mx32/clone_parent-qq.gen.test new file mode 100755 index 00000000..e472bd4c --- /dev/null +++ b/tests-mx32/clone_parent-qq.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone_parent-qq +clone_ptrace.test -qq); do not edit. +set -- -qq +. "${srcdir=.}/clone_ptrace.test" diff --git a/tests-mx32/clone_parent.c b/tests-mx32/clone_parent.c index 111f98d1..d0e9cdac 100644 --- a/tests-mx32/clone_parent.c +++ b/tests-mx32/clone_parent.c @@ -1,7 +1,7 @@ /* * Check handling of CLONE_PARENT'ed processes. * - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -17,25 +17,34 @@ #include #include +#ifndef QUIET_MSG +# define QUIET_MSG 0 +#endif + static int child(void *const arg) { return 42; } -#define child_stack_size (get_page_size() / 2) - #ifdef IA64 extern int __clone2(int (*)(void *), void *, size_t, int, void *, ...); -# define clone(fn, child_stack, flags, arg) \ - __clone2(fn, child_stack, child_stack_size, flags, arg) +# define do_clone(fn_, stack_, size_, flags_, arg_, ...) \ + __clone2((fn_), (stack_), (size_), (flags_), (arg_), ## __VA_ARGS__) +#else +# define do_clone(fn_, stack_, size_, flags_, arg_, ...) \ + clone((fn_), (stack_), (flags_), (arg_), ## __VA_ARGS__) #endif int main(void) { - const pid_t pid = clone(child, tail_alloc(child_stack_size), - CLONE_PARENT | SIGCHLD, 0); + const unsigned long child_stack_size = get_page_size(); + void *const child_stack = + tail_alloc(child_stack_size * 2) + child_stack_size; + + const pid_t pid = do_clone(child, child_stack, child_stack_size, + CLONE_PARENT | SIGCHLD, 0); if (pid < 0) perror_msg_and_fail("clone"); @@ -51,10 +60,14 @@ main(void) FILE *const fp = fdopen(3, "a"); if (!fp) perror_msg_and_fail("fdopen"); +#if !QUIET_MSG if (fprintf(fp, "%s: Exit of unknown pid %d ignored\n", getenv("STRACE_EXE") ?: "strace", pid) < 0) perror_msg_and_fail("fprintf"); +#endif +#if !QUIET_MSG puts("+++ exited with 0 +++"); +#endif return 0; } diff --git a/tests-mx32/clone_parent.gen.test b/tests-mx32/clone_parent.gen.test new file mode 100755 index 00000000..4303eb02 --- /dev/null +++ b/tests-mx32/clone_parent.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone_parent +clone_ptrace.test ); do not edit. +set -- +. "${srcdir=.}/clone_ptrace.test" diff --git a/tests-mx32/clone_parent.test b/tests-mx32/clone_parent.test deleted file mode 100755 index a5b077f3..00000000 --- a/tests-mx32/clone_parent.test +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -efu -# -# Check handling of CLONE_PARENT'ed processes. -# -# Copyright (c) 2017-2018 The strace developers. -# All rights reserved. -# -# SPDX-License-Identifier: GPL-2.0-or-later - -. "${srcdir=.}/clone_ptrace.test" diff --git a/tests-mx32/clone_ptrace--quiet-attach.c b/tests-mx32/clone_ptrace--quiet-attach.c new file mode 100644 index 00000000..2fb8d855 --- /dev/null +++ b/tests-mx32/clone_ptrace--quiet-attach.c @@ -0,0 +1,2 @@ +#define QUIET_ATTACH 1 +#include "clone_ptrace.c" diff --git a/tests-mx32/clone_ptrace--quiet-attach.gen.test b/tests-mx32/clone_ptrace--quiet-attach.gen.test new file mode 100755 index 00000000..d5c3e73a --- /dev/null +++ b/tests-mx32/clone_ptrace--quiet-attach.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone_ptrace--quiet-attach +clone_ptrace.test --quiet=attach,personality); do not edit. +set -- --quiet=attach,personality +. "${srcdir=.}/clone_ptrace.test" diff --git a/tests-mx32/clone_ptrace--quiet-exit.c b/tests-mx32/clone_ptrace--quiet-exit.c new file mode 100644 index 00000000..3503cfbe --- /dev/null +++ b/tests-mx32/clone_ptrace--quiet-exit.c @@ -0,0 +1,2 @@ +#define QUIET_EXIT 1 +#include "clone_ptrace.c" diff --git a/tests-mx32/clone_ptrace--quiet-exit.gen.test b/tests-mx32/clone_ptrace--quiet-exit.gen.test new file mode 100755 index 00000000..6342598d --- /dev/null +++ b/tests-mx32/clone_ptrace--quiet-exit.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone_ptrace--quiet-exit +clone_ptrace.test --quiet=exit,personality); do not edit. +set -- --quiet=exit,personality +. "${srcdir=.}/clone_ptrace.test" diff --git a/tests-mx32/clone_ptrace-q.c b/tests-mx32/clone_ptrace-q.c new file mode 100644 index 00000000..2fb8d855 --- /dev/null +++ b/tests-mx32/clone_ptrace-q.c @@ -0,0 +1,2 @@ +#define QUIET_ATTACH 1 +#include "clone_ptrace.c" diff --git a/tests-mx32/clone_ptrace-q.gen.test b/tests-mx32/clone_ptrace-q.gen.test new file mode 100755 index 00000000..155e3a5d --- /dev/null +++ b/tests-mx32/clone_ptrace-q.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone_ptrace-q +clone_ptrace.test -q); do not edit. +set -- -q +. "${srcdir=.}/clone_ptrace.test" diff --git a/tests-mx32/clone_ptrace-qq.c b/tests-mx32/clone_ptrace-qq.c new file mode 100644 index 00000000..037fbca3 --- /dev/null +++ b/tests-mx32/clone_ptrace-qq.c @@ -0,0 +1,3 @@ +#define QUIET_ATTACH 1 +#define QUIET_EXIT 1 +#include "clone_ptrace.c" diff --git a/tests-mx32/clone_ptrace-qq.gen.test b/tests-mx32/clone_ptrace-qq.gen.test new file mode 100755 index 00000000..caa8ab41 --- /dev/null +++ b/tests-mx32/clone_ptrace-qq.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone_ptrace-qq +clone_ptrace.test -qq); do not edit. +set -- -qq +. "${srcdir=.}/clone_ptrace.test" diff --git a/tests-mx32/clone_ptrace.c b/tests-mx32/clone_ptrace.c index ee366ab9..4598400d 100644 --- a/tests-mx32/clone_ptrace.c +++ b/tests-mx32/clone_ptrace.c @@ -1,7 +1,7 @@ /* * Check handling of CLONE_PTRACE'ed processes. * - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -20,6 +20,13 @@ static siginfo_t sinfo; +#ifndef QUIET_ATTACH +# define QUIET_ATTACH 0 +#endif +#ifndef QUIET_EXIT +# define QUIET_EXIT 0 +#endif + static void handler(const int no, siginfo_t *const si, void *const uc) { @@ -34,12 +41,13 @@ child(void *const arg) return 0; } -#define child_stack_size (get_page_size() / 2) - #ifdef IA64 extern int __clone2(int (*)(void *), void *, size_t, int, void *, ...); -# define clone(fn, child_stack, flags, arg) \ - __clone2(fn, child_stack, child_stack_size, flags, arg) +# define do_clone(fn_, stack_, size_, flags_, arg_, ...) \ + __clone2((fn_), (stack_), (size_), (flags_), (arg_), ## __VA_ARGS__) +#else +# define do_clone(fn_, stack_, size_, flags_, arg_, ...) \ + clone((fn_), (stack_), (flags_), (arg_), ## __VA_ARGS__) #endif int @@ -52,8 +60,12 @@ main(void) if (sigprocmask(SIG_UNBLOCK, &mask, NULL)) perror_msg_and_fail("sigprocmask"); - const pid_t pid = clone(child, tail_alloc(child_stack_size), - CLONE_PTRACE | SIGCHLD, 0); + const unsigned long child_stack_size = get_page_size(); + void *const child_stack = + tail_alloc(child_stack_size * 2) + child_stack_size; + + const pid_t pid = do_clone(child, child_stack, child_stack_size, + CLONE_PTRACE | SIGCHLD, 0); if (pid < 0) perror_msg_and_fail("clone"); @@ -69,9 +81,11 @@ main(void) FILE *const fp = fdopen(3, "a"); if (!fp) perror_msg_and_fail("fdopen"); +#if !QUIET_ATTACH if (fprintf(fp, "%s: Detached unknown pid %d\n", getenv("STRACE_EXE") ?: "strace", pid) < 0) perror_msg_and_fail("fprintf"); +#endif int status; while (wait(&status) != pid) { @@ -82,8 +96,11 @@ main(void) error_msg_and_fail("unexpected child exit status %d", status); printf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_KILLED, si_pid=%d" - ", si_uid=%u, si_status=%s, si_utime=%u, si_stime=%u} ---\n" - "+++ exited with 0 +++\n", pid, geteuid(), "SIGUSR1", + ", si_uid=%d, si_status=%s, si_utime=%u, si_stime=%u} ---\n" +#if !QUIET_EXIT + "+++ exited with 0 +++\n" +#endif + , pid, geteuid(), "SIGUSR1", (unsigned int) sinfo.si_utime, (unsigned int) sinfo.si_stime); return 0; diff --git a/tests-mx32/clone_ptrace.test b/tests-mx32/clone_ptrace.test index 24c4298a..6f77ed8b 100755 --- a/tests-mx32/clone_ptrace.test +++ b/tests-mx32/clone_ptrace.test @@ -2,7 +2,7 @@ # # Check handling of CLONE_PTRACE'ed processes. # -# Copyright (c) 2017-2018 The strace developers. +# Copyright (c) 2017-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ . "${srcdir=.}/init.sh" run_prog > /dev/null 3>&1 -args="-e trace=none $args" +args="-e trace=none ${1:---quiet=personality} $args" > "$LOG" || fail_ "failed to write $LOG" $STRACE -o "$LOG" $args > "$EXP" 2> "$OUT"-err 3> "$EXP"-err || { diff --git a/tests-mx32/close_range-P.c b/tests-mx32/close_range-P.c new file mode 100644 index 00000000..2c757b07 --- /dev/null +++ b/tests-mx32/close_range-P.c @@ -0,0 +1,4 @@ +#define PATH_TRACING +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "close_range.c" diff --git a/tests-mx32/close_range-P.gen.test b/tests-mx32/close_range-P.gen.test new file mode 100755 index 00000000..85fb6a81 --- /dev/null +++ b/tests-mx32/close_range-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (close_range-P -a21 --trace=close_range -P /dev/full 7>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a21 --trace=close_range -P /dev/full 7>>/dev/full diff --git a/tests-mx32/close_range-y.c b/tests-mx32/close_range-y.c new file mode 100644 index 00000000..61b481b4 --- /dev/null +++ b/tests-mx32/close_range-y.c @@ -0,0 +1,5 @@ +#define FD0_PATH "" +#define FD7_PATH "" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "close_range.c" diff --git a/tests-mx32/close_range-y.gen.test b/tests-mx32/close_range-y.gen.test new file mode 100755 index 00000000..da08dc05 --- /dev/null +++ b/tests-mx32/close_range-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (close_range-y -a33 --trace=close_range -y 7>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a33 --trace=close_range -y 7>>/dev/full diff --git a/tests-mx32/close_range-yy.c b/tests-mx32/close_range-yy.c new file mode 100644 index 00000000..64997fc8 --- /dev/null +++ b/tests-mx32/close_range-yy.c @@ -0,0 +1,5 @@ +#define FD0_PATH ">" +#define FD7_PATH ">" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "close_range.c" diff --git a/tests-mx32/close_range-yy.gen.test b/tests-mx32/close_range-yy.gen.test new file mode 100755 index 00000000..3f3b9cba --- /dev/null +++ b/tests-mx32/close_range-yy.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (close_range-yy -a33 --trace=close_range -yy 7>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a33 --trace=close_range -yy 7>>/dev/full diff --git a/tests-mx32/close_range.c b/tests-mx32/close_range.c new file mode 100644 index 00000000..b3a3ab7d --- /dev/null +++ b/tests-mx32/close_range.c @@ -0,0 +1,147 @@ +/* + * Check decoding of close_range syscall. + * + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_close_range + +# include +# include +# include + +# ifdef HAVE_LINUX_CLOSE_RANGE_H +# include +# else +# define CLOSE_RANGE_UNSHARE (1U << 1) +# endif + +# ifndef FD0_PATH +# define FD0_PATH "" +# endif +# ifndef FD7_PATH +# define FD7_PATH "" +# endif +# ifndef SKIP_IF_PROC_IS_UNAVAILABLE +# define SKIP_IF_PROC_IS_UNAVAILABLE +# endif + +static const char *errstr; + +static long +k_close_range(const unsigned int fd1, const unsigned int fd2, const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | fd1; + const kernel_ulong_t arg2 = fill | fd2; + const kernel_ulong_t arg3 = fill | flags; + const long rc = syscall(__NR_close_range, arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +static void +xdup2(int fd1, int fd2) +{ + if (dup2(fd1, fd2) != fd2) + perror_msg_and_fail("dup2(%d, %d)", fd1, fd2); +} + +int +main(void) +{ + SKIP_IF_PROC_IS_UNAVAILABLE; + + const int fd0 = dup(0); + const int fd7 = dup(7); + const int fd7_min = MIN(7, fd7); + const int fd7_max = MAX(7, fd7); + + k_close_range(-2, -1, 1); +# ifndef PATH_TRACING + printf("close_range(-2, -1, 0x1 /* CLOSE_RANGE_??? */) = %s\n", errstr); +# endif + + k_close_range(-1, -2, 2); +# ifndef PATH_TRACING + printf("close_range(-1, -2, CLOSE_RANGE_UNSHARE) = %s\n", errstr); +# endif + + k_close_range(-3, 0, 4); +# ifndef PATH_TRACING + printf("close_range(-3, 0" FD0_PATH ", 0x4 /* CLOSE_RANGE_??? */)" + " = %s\n", errstr); +# endif + + k_close_range(0, -4, -1); +# ifndef PATH_TRACING + printf("close_range(0" FD0_PATH ", -4, CLOSE_RANGE_UNSHARE|%#x) = %s\n", + (-1U & ~CLOSE_RANGE_UNSHARE), errstr); +# endif + + k_close_range(-5, 7, 0); + printf("close_range(-5, 7" FD7_PATH ", 0) = %s\n", errstr); + + k_close_range(7, -6, 1); + printf("close_range(7" FD7_PATH ", -6, 0x1 /* CLOSE_RANGE_??? */)" + " = %s\n", errstr); + + k_close_range(7, 7, 4); + printf("close_range(7" FD7_PATH ", 7" FD7_PATH + ", 0x4 /* CLOSE_RANGE_??? */) = %s\n", errstr); + + k_close_range(-7, -7, 7); +# ifndef PATH_TRACING + printf("close_range(-7, -7, CLOSE_RANGE_UNSHARE|0x5) = %s\n", errstr); +# endif + + k_close_range(7, 0, 0); + printf("close_range(7" FD7_PATH ", 0" FD0_PATH ", 0) = %s\n", errstr); + + k_close_range(fd7, fd0, 0); + printf("close_range(%d" FD7_PATH ", %d" FD0_PATH ", 0) = %s\n", + fd7, fd0, errstr); + + if (k_close_range(0, 0, 0) == 0) + xdup2(fd0, 0); +# ifndef PATH_TRACING + printf("close_range(0" FD0_PATH ", 0" FD0_PATH ", 0) = %s\n", errstr); +# endif + + if (k_close_range(fd0, fd0, 0) == 0) + xdup2(0, fd0); +# ifndef PATH_TRACING + printf("close_range(%d" FD0_PATH ", %d" FD0_PATH ", 0) = %s\n", + fd0, fd0, errstr); +# endif + + if (k_close_range(7, 7, 0) == 0) + xdup2(fd7, 7); + printf("close_range(7" FD7_PATH ", 7" FD7_PATH ", 0) = %s\n", errstr); + + if (k_close_range(fd7, fd7, 0) == 0) + xdup2(7, fd7); + printf("close_range(%d" FD7_PATH ", %d" FD7_PATH ", 0) = %s\n", + fd7, fd7, errstr); + + if (k_close_range(fd7_max, -1, 0) == 0) + xdup2(fd7_min, fd7_max); + printf("close_range(%d" FD7_PATH ", -1, 0) = %s\n", + fd7_max, errstr); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_close_range") + +#endif diff --git a/tests-mx32/close_range.gen.test b/tests-mx32/close_range.gen.test new file mode 100755 index 00000000..19e6f4b9 --- /dev/null +++ b/tests-mx32/close_range.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (close_range -a21 7>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a21 7>>/dev/full diff --git a/tests-mx32/copy_file_range.c b/tests-mx32/copy_file_range.c index c1f142c6..f39f8afc 100644 --- a/tests-mx32/copy_file_range.c +++ b/tests-mx32/copy_file_range.c @@ -2,14 +2,13 @@ * This file is part of copy_file_range strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #if defined __NR_copy_file_range diff --git a/tests-mx32/count-f.test b/tests-mx32/count-f.test index 4f3d45f8..001008a3 100755 --- a/tests-mx32/count-f.test +++ b/tests-mx32/count-f.test @@ -2,7 +2,7 @@ # # Check whether -c counts through forks and clones properly. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ . "${srcdir=.}/init.sh" run_prog -run_strace -q -f -c $args +run_strace -e silent=attach -f -c $args match_grep exit 0 diff --git a/tests-mx32/count.test b/tests-mx32/count.test index 6abb1772..c1ba3720 100755 --- a/tests-mx32/count.test +++ b/tests-mx32/count.test @@ -3,7 +3,7 @@ # Check whether -c and -w options work. # # Copyright (c) 2014-2016 Dmitry V. Levin -# Copyright (c) 2014-2018 The strace developers. +# Copyright (c) 2014-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -29,13 +29,25 @@ grep_log() } } -grep_log ' *[^ ]+ +0\.0[^n]*nanosleep' -c -grep_log ' *[^ ]+ +0\.0[^n]*nanosleep' -c -O1 -grep_log ' *[^ ]+ +0\.0[^n]*nanosleep' -c -enanosleep -grep_log ' *[^ ]+ +0\.0[^n]*nanosleep' -c -O1 -enanosleep -grep_log ' *[^ ]+ +(1\.[01]|0\.99)[^n]*nanosleep' -cw -grep_log ' *[^ ]+ +(1\.[01]|0\.99)[^n]*nanosleep' -cw -O1 -grep_log '100\.00 +(1\.[01]|0\.99)[^n]*nanosleep' -cw -enanosleep -grep_log '100\.00 +(1\.[01]|0\.99)[^n]*nanosleep' -cw -O1 -enanosleep +GENERIC=' *[^ ]+ +0\.0[^n]*nanosleep *' +WALLCLOCK=' *[^ ]+ +(1\.[01]|0\.99)[^n]*nanosleep *' +WALLCLOCK1='100\.00 +(1\.[01]|0\.99)[^n]*nanosleep' +HALFCLOCK=' *[^ ]+ +0\.[567][^n]*nanosleep *' + +grep_log "$GENERIC" -c +grep_log "$GENERIC" -c -O1 +grep_log "$GENERIC" -c --summary-syscall-overhead=1 +grep_log "$GENERIC" -c -enanosleep +grep_log "$GENERIC" -c -O1 -enanosleep +grep_log "$WALLCLOCK" -cw +grep_log "$WALLCLOCK" -cw -O1 +grep_log "$WALLCLOCK1" -cw -enanosleep +grep_log "$WALLCLOCK1" -cw -O1 -enanosleep +grep_log "$HALFCLOCK" -cw -O4.5e2ms -enanosleep +grep_log "$HALFCLOCK" -cw --summary-syscall-overhead=4.5e2ms -enanosleep +grep_log "$HALFCLOCK" -cw -O4.5e-1s -enanosleep +grep_log "$HALFCLOCK" -cw --summary-syscall-overhead=4.5e-1s -enanosleep +grep_log "$HALFCLOCK" -cw -O456789012ns -enanosleep +grep_log "$HALFCLOCK" -cw --summary-syscall-overhead=456789012ns -enanosleep exit 0 diff --git a/tests-mx32/creat.c b/tests-mx32/creat.c index 71819d5b..6a5c08e5 100644 --- a/tests-mx32/creat.c +++ b/tests-mx32/creat.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_creat diff --git a/tests-mx32/create_tmpfile.c b/tests-mx32/create_tmpfile.c new file mode 100644 index 00000000..56f4e60c --- /dev/null +++ b/tests-mx32/create_tmpfile.c @@ -0,0 +1,46 @@ +/* + * Create a temporary file in the current directory. + * + * Copyright (c) 2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include + +#ifndef O_TMPFILE +# if defined __hppa__ +# define O_TMPFILE 040000000 +# elif defined __alpha__ +# define O_TMPFILE 0100000000 +# elif defined __sparc__ +# define O_TMPFILE 0200000000 +# else +# define O_TMPFILE 020000000 +# endif +#endif + +int +create_tmpfile(unsigned int flags) +{ + int fd = open(".", O_TMPFILE | O_DIRECTORY | O_EXCL | flags, 0600); + + if (fd < 0) { + /* + * Since every test is executed in a separate directory, + * there is no need to protect from race conditions. + */ + static const char fname[] = "create_tmpfile"; + + fd = open(fname, O_CREAT | O_EXCL | flags, 0600); + if (fd < 0) + perror_msg_and_fail("open: %s", fname); + if (unlink(fname)) + perror_msg_and_fail("unlink: %s", fname); + } + + return fd; +} diff --git a/tests-mx32/delay.c b/tests-mx32/delay.c index fb19b157..1b54c443 100644 --- a/tests-mx32/delay.c +++ b/tests-mx32/delay.c @@ -1,13 +1,14 @@ /* * Check delay injection. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include #include #include #include @@ -16,7 +17,7 @@ #include #include #include -#include +#include "scno.h" static int64_t usecs_from_tv(const struct timeval *const tv) @@ -30,6 +31,22 @@ usecs_from_ts(const struct timespec *const ts) return (int64_t) ts->tv_sec * 1000000 + ts->tv_nsec / 1000; } +static void +check_(const int64_t got, const bool ge, const int64_t orig, const int nproc, + const int exitcode) +{ + const int64_t thresh = (orig * (ge ? nproc - 1 : nproc + 1)) / nproc; + + if (ge ? got >= thresh : got <= thresh) + return; + + fprintf(stderr, "Got delay of %" PRId64 ", %s than threshold value of " + "%" PRId64 " (expected nominal delay value is %" PRId64 + ")\n", got, ge ? "less" : "more", thresh, orig); + + _exit(exitcode); +} + static void check_delay(const struct timeval *const tv0, const struct timespec *const ts, @@ -42,17 +59,10 @@ check_delay(const struct timeval *const tv0, const int64_t us = usecs_from_ts(ts); const int64_t us1 = usecs_from_tv(tv1); - if (us - us0 < delay_exit * (nproc - 1) / nproc) - _exit(1); - - if (us - us0 > delay_exit * (nproc + 1) / nproc) - _exit(2); - - if (us1 - us < delay_enter * (nproc - 1) / nproc) - _exit(3); - - if (us1 - us > delay_enter * (nproc + 1) / nproc) - _exit(4); + check_(us - us0, true, delay_exit, nproc, 1); + check_(us - us0, false, delay_exit, nproc, 2); + check_(us1 - us, true, delay_enter, nproc, 3); + check_(us1 - us, false, delay_enter, nproc, 4); } static void diff --git a/tests-mx32/delay.test b/tests-mx32/delay.test index df8552c7..f74e27f1 100755 --- a/tests-mx32/delay.test +++ b/tests-mx32/delay.test @@ -2,15 +2,22 @@ # # Check delay injection. # -# Copyright (c) 2018 The strace developers. +# Copyright (c) 2018-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" -delay_enter=800000 -delay_exit=1600000 -run_strace -f -r -egettimeofday \ - -einject=gettimeofday:delay_enter=$delay_enter:delay_exit=$delay_exit \ - ../delay 4 $delay_enter $delay_exit +while read -r denter dexit denter_us dexit_us; do + [ -n "$denter" ] || continue + + run_strace --follow-forks -r -egettimeofday \ + -einject=gettimeofday:delay_enter=$denter:delay_exit=$dexit \ + ../delay 4 $denter_us $dexit_us +done <<-EOF + 800000 1600000 800000 1600000 + 8e5 1.6s 800000 1600000 + 800ms 1.6e+6us 800000 1600000 + +8e8ns .16E7 800000 1600000 +EOF diff --git a/tests-mx32/delete_module.c b/tests-mx32/delete_module.c index 3b2614c1..ad2bca67 100644 --- a/tests-mx32/delete_module.c +++ b/tests-mx32/delete_module.c @@ -2,7 +2,7 @@ * Check decoding of delete_module syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_delete_module) diff --git a/tests-mx32/dev--decode-fds-dev.c b/tests-mx32/dev--decode-fds-dev.c new file mode 100644 index 00000000..eb8eb5e8 --- /dev/null +++ b/tests-mx32/dev--decode-fds-dev.c @@ -0,0 +1,2 @@ +#define PRINT_DEVNUM 1 +#include "dev-yy.c" diff --git a/tests-mx32/dev--decode-fds-dev.gen.test b/tests-mx32/dev--decode-fds-dev.gen.test new file mode 100755 index 00000000..92983d0e --- /dev/null +++ b/tests-mx32/dev--decode-fds-dev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dev--decode-fds-dev -a30 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" -e decode-fds=dev); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a30 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" -e decode-fds=dev diff --git a/tests-mx32/dev--decode-fds-path.c b/tests-mx32/dev--decode-fds-path.c new file mode 100644 index 00000000..2a5fa129 --- /dev/null +++ b/tests-mx32/dev--decode-fds-path.c @@ -0,0 +1,2 @@ +#define PRINT_DEVNUM 0 +#include "dev-yy.c" diff --git a/tests-mx32/dev--decode-fds-path.gen.test b/tests-mx32/dev--decode-fds-path.gen.test new file mode 100755 index 00000000..0be131ed --- /dev/null +++ b/tests-mx32/dev--decode-fds-path.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dev--decode-fds-path -a19 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" -e decode-fds=path); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a19 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" -e decode-fds=path diff --git a/tests-mx32/dev--decode-fds-socket.c b/tests-mx32/dev--decode-fds-socket.c new file mode 100644 index 00000000..2a5fa129 --- /dev/null +++ b/tests-mx32/dev--decode-fds-socket.c @@ -0,0 +1,2 @@ +#define PRINT_DEVNUM 0 +#include "dev-yy.c" diff --git a/tests-mx32/dev--decode-fds-socket.gen.test b/tests-mx32/dev--decode-fds-socket.gen.test new file mode 100755 index 00000000..56085642 --- /dev/null +++ b/tests-mx32/dev--decode-fds-socket.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dev--decode-fds-socket -a19 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" --decode-fds=socket); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a19 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" --decode-fds=socket diff --git a/tests-mx32/dev-yy.c b/tests-mx32/dev-yy.c index b9f55fa4..0ffb0c4c 100644 --- a/tests-mx32/dev-yy.c +++ b/tests-mx32/dev-yy.c @@ -1,7 +1,7 @@ /* * Check printing of character/block device numbers in -yy mode. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,12 +12,22 @@ #include #include -#include +#include "scno.h" #include #include +#ifndef PRINT_DEVNUM +# define PRINT_DEVNUM 1 +#endif + +#if PRINT_DEVNUM +# define DEV_FMT "<%s<%s %u:%u>>" +#else +# define DEV_FMT "<%s>" +#endif + #if defined __NR_openat && defined O_PATH int @@ -47,10 +57,13 @@ main(void) printf("openat(AT_FDCWD, \"%s\", O_RDONLY|O_PATH) = %s", checks[i].path, sprintrc(fd)); if (fd >= 0) - printf("<%s<%s %u:%u>>", - checks[i].path, - checks[i].blk ? "block" : "char", - checks[i].major, checks[i].minor); + printf(DEV_FMT, + checks[i].path +# if PRINT_DEVNUM + , checks[i].blk ? "block" : "char", + checks[i].major, checks[i].minor +# endif + ); puts(""); if (fd < 0) { @@ -63,9 +76,13 @@ main(void) int rc = fsync(fd); - printf("fsync(%ld<%s<%s %u:%u>>) = %s\n", - fd, checks[i].path, checks[i].blk ? "block" : "char", - checks[i].major, checks[i].minor, sprintrc(rc)); + printf("fsync(%ld" DEV_FMT ") = %s\n", + fd, checks[i].path, +# if PRINT_DEVNUM + checks[i].blk ? "block" : "char", + checks[i].major, checks[i].minor, +# endif + sprintrc(rc)); close(fd); } diff --git a/tests-mx32/dup-P.c b/tests-mx32/dup-P.c new file mode 100644 index 00000000..c65def8f --- /dev/null +++ b/tests-mx32/dup-P.c @@ -0,0 +1,4 @@ +#define PATH_TRACING +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "dup.c" diff --git a/tests-mx32/dup-P.gen.test b/tests-mx32/dup-P.gen.test new file mode 100755 index 00000000..5d170a39 --- /dev/null +++ b/tests-mx32/dup-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup-P -a7 --trace=dup -P /dev/full 9>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a7 --trace=dup -P /dev/full 9>>/dev/full diff --git a/tests-mx32/dup-y.c b/tests-mx32/dup-y.c new file mode 100644 index 00000000..285f20af --- /dev/null +++ b/tests-mx32/dup-y.c @@ -0,0 +1,5 @@ +#define FD0_PATH "" +#define FD9_PATH "" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "dup.c" diff --git a/tests-mx32/dup-y.gen.test b/tests-mx32/dup-y.gen.test new file mode 100755 index 00000000..b29c05fe --- /dev/null +++ b/tests-mx32/dup-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup-y -a8 --trace=dup -y 9>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a8 --trace=dup -y 9>>/dev/full diff --git a/tests-mx32/dup-yy.c b/tests-mx32/dup-yy.c new file mode 100644 index 00000000..2e8175d0 --- /dev/null +++ b/tests-mx32/dup-yy.c @@ -0,0 +1,5 @@ +#define FD0_PATH ">" +#define FD9_PATH ">" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "dup.c" diff --git a/tests-mx32/dup-yy.gen.test b/tests-mx32/dup-yy.gen.test new file mode 100755 index 00000000..6f73d83a --- /dev/null +++ b/tests-mx32/dup-yy.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup-yy -a8 --trace=dup -yy 9>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a8 --trace=dup -yy 9>>/dev/full diff --git a/tests-mx32/dup.c b/tests-mx32/dup.c index 5cf5df7c..d668e95e 100644 --- a/tests-mx32/dup.c +++ b/tests-mx32/dup.c @@ -1,20 +1,72 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Check decoding of dup syscall. + * + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include +#include "scno.h" + +#ifdef __NR_dup + +# include +# include + +# ifndef FD0_PATH +# define FD0_PATH "" +# endif +# ifndef FD9_PATH +# define FD9_PATH "" +# endif +# ifndef SKIP_IF_PROC_IS_UNAVAILABLE +# define SKIP_IF_PROC_IS_UNAVAILABLE +# endif + +static const char *errstr; + +static long +k_dup(const unsigned int fd) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | fd; + const long rc = syscall(__NR_dup, arg1, bad, bad, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} int main(void) { - int rc = dup(-1); - printf("dup(-1) = %d %s (%m)\n", rc, errno2name()); + SKIP_IF_PROC_IS_UNAVAILABLE; + + k_dup(-1); +# ifndef PATH_TRACING + printf("dup(-1) = %s\n", errstr); +# endif + + int d1 = k_dup(0); +# ifndef PATH_TRACING + printf("dup(0" FD0_PATH ") = %d" FD0_PATH "\n", d1); +# endif + + int d2 = k_dup(d1); +# ifndef PATH_TRACING + printf("dup(%d" FD0_PATH ") = %d" FD0_PATH "\n", d1, d2); +# endif + + d2 = k_dup(9); + printf("dup(9" FD9_PATH ") = %d" FD9_PATH "\n", d2); puts("+++ exited with 0 +++"); return 0; } + +#else + +SKIP_MAIN_UNDEFINED("__NR_dup") + +#endif diff --git a/tests-mx32/dup.gen.test b/tests-mx32/dup.gen.test index e559cdbc..6e9a4f79 100755 --- a/tests-mx32/dup.gen.test +++ b/tests-mx32/dup.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup -a8 ); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup -a7 9>>/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a8 +run_strace_match_diff -a7 9>>/dev/full diff --git a/tests-mx32/dup2-P.c b/tests-mx32/dup2-P.c new file mode 100644 index 00000000..f9603eab --- /dev/null +++ b/tests-mx32/dup2-P.c @@ -0,0 +1,4 @@ +#define PATH_TRACING +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "dup2.c" diff --git a/tests-mx32/dup2-P.gen.test b/tests-mx32/dup2-P.gen.test new file mode 100755 index 00000000..98df93e6 --- /dev/null +++ b/tests-mx32/dup2-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup2-P -a11 --trace=dup2 -P /dev/full 9>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a11 --trace=dup2 -P /dev/full 9>>/dev/full diff --git a/tests-mx32/dup2-y.c b/tests-mx32/dup2-y.c new file mode 100644 index 00000000..6b64663c --- /dev/null +++ b/tests-mx32/dup2-y.c @@ -0,0 +1,5 @@ +#define FD0_PATH "" +#define FD9_PATH "" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "dup2.c" diff --git a/tests-mx32/dup2-y.gen.test b/tests-mx32/dup2-y.gen.test new file mode 100755 index 00000000..79d89c53 --- /dev/null +++ b/tests-mx32/dup2-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup2-y -a13 --trace=dup2 -y 9>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a13 --trace=dup2 -y 9>>/dev/full diff --git a/tests-mx32/dup2-yy.c b/tests-mx32/dup2-yy.c new file mode 100644 index 00000000..6040579c --- /dev/null +++ b/tests-mx32/dup2-yy.c @@ -0,0 +1,5 @@ +#define FD0_PATH ">" +#define FD9_PATH ">" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "dup2.c" diff --git a/tests-mx32/dup2-yy.gen.test b/tests-mx32/dup2-yy.gen.test new file mode 100755 index 00000000..1c7ff8ea --- /dev/null +++ b/tests-mx32/dup2-yy.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup2-yy -a13 --trace=dup2 -yy 9>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a13 --trace=dup2 -yy 9>>/dev/full diff --git a/tests-mx32/dup2.c b/tests-mx32/dup2.c index fba8fca5..ec735e92 100644 --- a/tests-mx32/dup2.c +++ b/tests-mx32/dup2.c @@ -1,27 +1,117 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Check decoding of dup2 syscall. + * + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_dup2 # include # include +# ifndef FD0_PATH +# define FD0_PATH "" +# endif +# ifndef FD9_PATH +# define FD9_PATH "" +# endif +# ifndef SKIP_IF_PROC_IS_UNAVAILABLE +# define SKIP_IF_PROC_IS_UNAVAILABLE +# endif + +static const char *errstr; + +static long +k_dup2(const unsigned int fd1, const unsigned int fd2) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | fd1; + const kernel_ulong_t arg2 = fill | fd2; + const long rc = syscall(__NR_dup2, arg1, arg2, bad, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + int main(void) { - const long int fd_old = (long int) 0xdeadbeefffffffffULL; - const long int fd_new = (long int) 0xdeadbeeffffffffeULL; + SKIP_IF_PROC_IS_UNAVAILABLE; + + int fd0 = dup(0); + int fd9 = dup(9); + + if (k_dup2(0, 0)) + perror_msg_and_skip("dup2"); +# ifndef PATH_TRACING + printf("dup2(0" FD0_PATH ", 0" FD0_PATH ") = 0" FD0_PATH "\n"); +# endif + + k_dup2(-1, -2); +# ifndef PATH_TRACING + printf("dup2(-1, -2) = %s\n", errstr); +# endif + + k_dup2(-2, -1); +# ifndef PATH_TRACING + printf("dup2(-2, -1) = %s\n", errstr); +# endif + + k_dup2(-3, 0); +# ifndef PATH_TRACING + printf("dup2(-3, 0" FD0_PATH ") = %s\n", errstr); +# endif + + k_dup2(0, -4); +# ifndef PATH_TRACING + printf("dup2(0" FD0_PATH ", -4) = %s\n", errstr); +# endif + + k_dup2(-5, 9); + printf("dup2(-5, 9" FD9_PATH ") = %s\n", errstr); + + k_dup2(9, -6); + printf("dup2(9" FD9_PATH ", -6) = %s\n", errstr); + + k_dup2(9, 9); + printf("dup2(9" FD9_PATH ", 9" FD9_PATH ") = 9" FD9_PATH "\n"); + + k_dup2(0, fd0); +# ifndef PATH_TRACING + printf("dup2(0" FD0_PATH ", %d" FD0_PATH ") = %d" FD0_PATH "\n", + fd0, fd0); +# endif + + k_dup2(9, fd9); + printf("dup2(9" FD9_PATH ", %d" FD9_PATH ") = %d" FD9_PATH "\n", + fd9, fd9); + + k_dup2(0, fd9); + printf("dup2(0" FD0_PATH ", %d" FD9_PATH ") = %d" FD0_PATH "\n", + fd9, fd9); + + k_dup2(9, fd0); + printf("dup2(9" FD9_PATH ", %d" FD0_PATH ") = %d" FD9_PATH "\n", + fd0, fd0); + + close(fd0); + close(fd9); + + k_dup2(0, fd0); +# ifndef PATH_TRACING + printf("dup2(0" FD0_PATH ", %d) = %d" FD0_PATH "\n", + fd0, fd0); +# endif - long rc = syscall(__NR_dup2, fd_old, fd_new); - printf("dup2(%d, %d) = %ld %s (%m)\n", - (int) fd_old, (int) fd_new, rc, errno2name()); + k_dup2(9, fd9); + printf("dup2(9" FD9_PATH ", %d) = %d" FD9_PATH "\n", + fd9, fd9); puts("+++ exited with 0 +++"); return 0; diff --git a/tests-mx32/dup2.gen.test b/tests-mx32/dup2.gen.test index 6a6d2f58..6d2c0688 100755 --- a/tests-mx32/dup2.gen.test +++ b/tests-mx32/dup2.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup2 -a13 ); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup2 -a11 9>>/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a13 +run_strace_match_diff -a11 9>>/dev/full diff --git a/tests-mx32/dup3-P.c b/tests-mx32/dup3-P.c new file mode 100644 index 00000000..09ddb93e --- /dev/null +++ b/tests-mx32/dup3-P.c @@ -0,0 +1,4 @@ +#define PATH_TRACING +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "dup3.c" diff --git a/tests-mx32/dup3-P.gen.test b/tests-mx32/dup3-P.gen.test new file mode 100755 index 00000000..ad77199c --- /dev/null +++ b/tests-mx32/dup3-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup3-P -a13 --trace=dup3 -P /dev/full 7>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a13 --trace=dup3 -P /dev/full 7>>/dev/full diff --git a/tests-mx32/dup3-y.c b/tests-mx32/dup3-y.c new file mode 100644 index 00000000..730a9200 --- /dev/null +++ b/tests-mx32/dup3-y.c @@ -0,0 +1,5 @@ +#define FD0_PATH "" +#define FD7_PATH "" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "dup3.c" diff --git a/tests-mx32/dup3-y.gen.test b/tests-mx32/dup3-y.gen.test new file mode 100755 index 00000000..0c74ee0c --- /dev/null +++ b/tests-mx32/dup3-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup3-y -a15 --trace=dup3 -y 7>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a15 --trace=dup3 -y 7>>/dev/full diff --git a/tests-mx32/dup3-yy.c b/tests-mx32/dup3-yy.c new file mode 100644 index 00000000..24d7988b --- /dev/null +++ b/tests-mx32/dup3-yy.c @@ -0,0 +1,5 @@ +#define FD0_PATH ">" +#define FD7_PATH ">" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "dup3.c" diff --git a/tests-mx32/dup3-yy.gen.test b/tests-mx32/dup3-yy.gen.test new file mode 100755 index 00000000..6581ef5c --- /dev/null +++ b/tests-mx32/dup3-yy.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup3-yy -a15 --trace=dup3 -yy 7>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a15 --trace=dup3 -yy 7>>/dev/full diff --git a/tests-mx32/dup3.c b/tests-mx32/dup3.c index 741e06f8..93025724 100644 --- a/tests-mx32/dup3.c +++ b/tests-mx32/dup3.c @@ -1,28 +1,140 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Check decoding of dup3 syscall. + * + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include +#include "scno.h" -#if defined __NR_dup3 && defined O_CLOEXEC +#ifdef __NR_dup3 +# include # include # include +# ifndef O_CLOEXEC +# if defined __alpha__ || defined __hppa__ +# define O_CLOEXEC 010000000 +# elif defined __sparc__ +# define O_CLOEXEC 020000000 +# else +# define O_CLOEXEC 02000000 +# endif +# endif /* !O_CLOEXEC */ + +# ifndef FD0_PATH +# define FD0_PATH "" +# endif +# ifndef FD7_PATH +# define FD7_PATH "" +# endif +# ifndef SKIP_IF_PROC_IS_UNAVAILABLE +# define SKIP_IF_PROC_IS_UNAVAILABLE +# endif + +static const char *errstr; + +static long +k_dup3(const unsigned int fd1, const unsigned int fd2, const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | fd1; + const kernel_ulong_t arg2 = fill | fd2; + const kernel_ulong_t arg3 = fill | flags; + const long rc = syscall(__NR_dup3, arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + int main(void) { - const long int fd_old = (long int) 0xdeadbeefffffffffULL; - const long int fd_new = (long int) 0xdeadbeeffffffffeULL; + SKIP_IF_PROC_IS_UNAVAILABLE; + + int fd0 = dup(0); + int fd7 = dup(7); + + k_dup3(0, 0, 0); +# ifndef PATH_TRACING + printf("dup3(0" FD0_PATH ", 0" FD0_PATH ", 0) = %s\n", errstr); +# endif + + k_dup3(-1, -2, O_CLOEXEC); +# ifndef PATH_TRACING + printf("dup3(-1, -2, O_CLOEXEC) = %s\n", errstr); +# endif + + k_dup3(-2, -1, O_TRUNC); +# ifndef PATH_TRACING + printf("dup3(-2, -1, O_TRUNC) = %s\n", errstr); +# endif + + k_dup3(-3, 0, O_TRUNC | O_CLOEXEC); +# ifndef PATH_TRACING + printf("dup3(-3, 0" FD0_PATH ", O_TRUNC|O_CLOEXEC) = %s\n", errstr); +# endif + + k_dup3(0, -4, O_RDONLY); +# ifndef PATH_TRACING + printf("dup3(0" FD0_PATH ", -4, 0) = %s\n", errstr); +# endif + + k_dup3(-5, 7, O_WRONLY); + printf("dup3(-5, 7" FD7_PATH ", 0x1 /* O_??? */) = %s\n", errstr); + + k_dup3(7, -6, O_RDWR); + printf("dup3(7" FD7_PATH ", -6, 0x2 /* O_??? */) = %s\n", errstr); + + k_dup3(7, 7, O_CLOEXEC); + printf("dup3(7" FD7_PATH ", 7" FD7_PATH ", O_CLOEXEC) = %s\n", errstr); + + k_dup3(-7, -7, 7); +# ifndef PATH_TRACING + printf("dup3(-7, -7, %s) = %s\n", +# ifdef __sparc__ + "O_NDELAY|0x3" +# else + "0x7 /* O_??? */" +# endif + , errstr); +# endif + + if (k_dup3(0, fd0, O_CLOEXEC) != fd0) + perror_msg_and_skip("dup3"); +# ifndef PATH_TRACING + printf("dup3(0" FD0_PATH ", %d" FD0_PATH ", O_CLOEXEC) = %d" FD0_PATH + "\n", fd0, fd0); +# endif + + k_dup3(7, fd7, 0); + printf("dup3(7" FD7_PATH ", %d" FD7_PATH ", 0) = %d" FD7_PATH + "\n", fd7, fd7); + + k_dup3(0, fd7, O_CLOEXEC); + printf("dup3(0" FD0_PATH ", %d" FD7_PATH ", O_CLOEXEC) = %d" FD0_PATH + "\n", fd7, fd7); + + k_dup3(7, fd0, 0); + printf("dup3(7" FD7_PATH ", %d" FD0_PATH ", 0) = %d" FD7_PATH + "\n", fd0, fd0); + + close(fd0); + close(fd7); + + k_dup3(0, fd0, O_CLOEXEC); +# ifndef PATH_TRACING + printf("dup3(0" FD0_PATH ", %d, O_CLOEXEC) = %d" FD0_PATH "\n", + fd0, fd0); +# endif - long rc = syscall(__NR_dup3, fd_old, fd_new, O_CLOEXEC); - printf("dup3(%d, %d, O_CLOEXEC) = %ld %s (%m)\n", - (int) fd_old, (int) fd_new, rc, errno2name()); + k_dup3(7, fd7, 0); + printf("dup3(7" FD7_PATH ", %d, 0) = %d" FD7_PATH "\n", + fd7, fd7); puts("+++ exited with 0 +++"); return 0; @@ -30,6 +142,6 @@ main(void) #else -SKIP_MAIN_UNDEFINED("__NR_dup3 && O_CLOEXEC") +SKIP_MAIN_UNDEFINED("__NR_dup3") #endif diff --git a/tests-mx32/dup3.gen.test b/tests-mx32/dup3.gen.test index 776b9a79..f5aeb036 100755 --- a/tests-mx32/dup3.gen.test +++ b/tests-mx32/dup3.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup3 -a24 ); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup3 -a13 7>>/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a24 +run_strace_match_diff -a13 7>>/dev/full diff --git a/tests-mx32/epoll_create.c b/tests-mx32/epoll_create.c index 42cc8d04..9b808cce 100644 --- a/tests-mx32/epoll_create.c +++ b/tests-mx32/epoll_create.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_epoll_create diff --git a/tests-mx32/epoll_create1.c b/tests-mx32/epoll_create1.c index 81b33825..f01867cc 100644 --- a/tests-mx32/epoll_create1.c +++ b/tests-mx32/epoll_create1.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -7,7 +8,7 @@ #include "tests.h" #include -#include +#include "scno.h" #if defined __NR_epoll_create1 && defined O_CLOEXEC diff --git a/tests-mx32/epoll_ctl.c b/tests-mx32/epoll_ctl.c index 85a288cd..b1e7a063 100644 --- a/tests-mx32/epoll_ctl.c +++ b/tests-mx32/epoll_ctl.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_epoll_ctl diff --git a/tests-mx32/epoll_pwait.c b/tests-mx32/epoll_pwait.c index ce95e6dc..1e283463 100644 --- a/tests-mx32/epoll_pwait.c +++ b/tests-mx32/epoll_pwait.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_epoll_pwait diff --git a/tests-mx32/epoll_wait.c b/tests-mx32/epoll_wait.c index 3981905d..21c48511 100644 --- a/tests-mx32/epoll_wait.c +++ b/tests-mx32/epoll_wait.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_epoll_wait diff --git a/tests-mx32/eventfd.c b/tests-mx32/eventfd.c index 75d33dd7..4c78dced 100644 --- a/tests-mx32/eventfd.c +++ b/tests-mx32/eventfd.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -8,7 +9,7 @@ #include "tests.h" #include #include -#include +#include "scno.h" #if defined __NR_eventfd2 && defined O_CLOEXEC diff --git a/tests-mx32/execveat.c b/tests-mx32/execveat.c index 629a69ab..c8b1f4cd 100644 --- a/tests-mx32/execveat.c +++ b/tests-mx32/execveat.c @@ -2,14 +2,13 @@ * This file is part of execveat strace test. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_execveat diff --git a/tests-mx32/faccessat-P.c b/tests-mx32/faccessat-P.c new file mode 100644 index 00000000..0024d554 --- /dev/null +++ b/tests-mx32/faccessat-P.c @@ -0,0 +1,4 @@ +#define PATH_TRACING +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "faccessat.c" diff --git a/tests-mx32/faccessat-P.gen.test b/tests-mx32/faccessat-P.gen.test new file mode 100755 index 00000000..9210a5fc --- /dev/null +++ b/tests-mx32/faccessat-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (faccessat-P -a23 --trace=faccessat -P /dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a23 --trace=faccessat -P /dev/full diff --git a/tests-mx32/faccessat-y.c b/tests-mx32/faccessat-y.c new file mode 100644 index 00000000..61f67d73 --- /dev/null +++ b/tests-mx32/faccessat-y.c @@ -0,0 +1,4 @@ +#define FD_PATH "" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "faccessat.c" diff --git a/tests-mx32/faccessat-y.gen.test b/tests-mx32/faccessat-y.gen.test new file mode 100755 index 00000000..bc0db7f7 --- /dev/null +++ b/tests-mx32/faccessat-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (faccessat-y +faccessat.test -a24 -y); do not edit. +set -- -a24 -y +. "${srcdir=.}/faccessat.test" diff --git a/tests-mx32/faccessat-yy.c b/tests-mx32/faccessat-yy.c new file mode 100644 index 00000000..b516240a --- /dev/null +++ b/tests-mx32/faccessat-yy.c @@ -0,0 +1,4 @@ +#define FD_PATH ">" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "faccessat.c" diff --git a/tests-mx32/faccessat-yy.gen.test b/tests-mx32/faccessat-yy.gen.test new file mode 100755 index 00000000..e4a82246 --- /dev/null +++ b/tests-mx32/faccessat-yy.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (faccessat-yy +faccessat.test -a24 -yy); do not edit. +set -- -a24 -yy +. "${srcdir=.}/faccessat.test" diff --git a/tests-mx32/faccessat.c b/tests-mx32/faccessat.c index 6d95555a..b5498bc7 100644 --- a/tests-mx32/faccessat.c +++ b/tests-mx32/faccessat.c @@ -1,27 +1,144 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Check decoding of faccessat syscall. + * + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_faccessat +# include # include # include +# ifndef FD_PATH +# define FD_PATH "" +# endif +# ifndef SKIP_IF_PROC_IS_UNAVAILABLE +# define SKIP_IF_PROC_IS_UNAVAILABLE +# endif + +static const char *errstr; + +static long +k_faccessat(const unsigned int dirfd, + const void *const pathname, + const unsigned int mode) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + + const kernel_ulong_t arg1 = fill | dirfd; + const kernel_ulong_t arg2 = (uintptr_t) pathname; + const kernel_ulong_t arg3 = fill | mode; + const long rc = syscall(__NR_faccessat, + arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + int main(void) { - static const char sample[] = "faccessat.sample"; - const long int fd = (long int) 0xdeadbeefffffffffULL; + SKIP_IF_PROC_IS_UNAVAILABLE; + + TAIL_ALLOC_OBJECT_CONST_PTR(const char, unterminated); + char *unterminated_str; + if (asprintf(&unterminated_str, "%p", unterminated) < 0) + perror_msg_and_fail("asprintf"); + const void *const efault = unterminated + 1; + char *efault_str; + if (asprintf(&efault_str, "%p", efault) < 0) + perror_msg_and_fail("asprintf"); + + typedef struct { + char sym; + char null; + } sym_null; + + TAIL_ALLOC_OBJECT_CONST_PTR(sym_null, dot); + dot->sym = '.'; + dot->null = '\0'; + const char *const null = &dot->null; + + TAIL_ALLOC_OBJECT_CONST_PTR(sym_null, slash); + slash->sym = '/'; + slash->null = '\0'; + + static const char path[] = "/dev/full"; + const char *const fd_path = tail_memdup(path, sizeof(path)); + int fd = open(path, O_WRONLY); + if (fd < 0) + perror_msg_and_fail("open: %s", path); + char *fd_str; + if (asprintf(&fd_str, "%d%s", fd, FD_PATH) < 0) + perror_msg_and_fail("asprintf"); + char *path_quoted; + if (asprintf(&path_quoted, "\"%s\"", path) < 0) + perror_msg_and_fail("asprintf"); + + struct { + int val; + const char *str; + } dirfds[] = { + { ARG_STR(-1) }, + { -100, "AT_FDCWD" }, + { fd, fd_str }, + }, modes[] = { + { ARG_STR(F_OK) }, + { ARG_STR(R_OK) }, + { ARG_STR(W_OK) }, + { ARG_STR(X_OK) }, + { ARG_STR(R_OK|W_OK) }, + { ARG_STR(R_OK|X_OK) }, + { ARG_STR(W_OK|X_OK) }, + { ARG_STR(R_OK|W_OK|X_OK) }, + { 8, "0x8 /* ?_OK */" }, + { -1, "R_OK|W_OK|X_OK|0xfffffff8" }, + }; + + struct { + const void *val; + const char *str; + } paths[] = { + { 0, "NULL" }, + { efault, efault_str }, + { unterminated, unterminated_str }, + { null, "\"\"" }, + { &dot->sym, "\".\"" }, + { &slash->sym, "\"/\"" }, + { fd_path, path_quoted }, + }; - long rc = syscall(__NR_faccessat, fd, sample, F_OK); - printf("faccessat(%d, \"%s\", F_OK) = %ld %s (%m)\n", - (int) fd, sample, rc, errno2name()); + for (unsigned int dirfd_i = 0; + dirfd_i < ARRAY_SIZE(dirfds); + ++dirfd_i) { + for (unsigned int path_i = 0; + path_i < ARRAY_SIZE(paths); + ++path_i) { + for (unsigned int mode_i = 0; + mode_i < ARRAY_SIZE(modes); + ++mode_i) { + k_faccessat(dirfds[dirfd_i].val, + paths[path_i].val, + modes[mode_i].val); +# ifdef PATH_TRACING + if (dirfds[dirfd_i].val == fd || + paths[path_i].val == fd_path) +# endif + printf("faccessat(%s, %s, %s) = %s\n", + dirfds[dirfd_i].str, + paths[path_i].str, + modes[mode_i].str, + errstr); + } + } + } puts("+++ exited with 0 +++"); return 0; diff --git a/tests-mx32/faccessat.gen.test b/tests-mx32/faccessat.gen.test deleted file mode 100755 index 4ccec2aa..00000000 --- a/tests-mx32/faccessat.gen.test +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (faccessat -P $NAME.sample); do not edit. -. "${srcdir=.}/init.sh" -run_strace_match_diff -P $NAME.sample diff --git a/tests-mx32/faccessat.test b/tests-mx32/faccessat.test new file mode 100755 index 00000000..7b368493 --- /dev/null +++ b/tests-mx32/faccessat.test @@ -0,0 +1,19 @@ +#!/bin/sh +# +# Check decoding of faccessat syscall. +# +# Copyright (c) 2020 Dmitry V. Levin +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +check_prog sed + +run_prog > /dev/null +run_strace -a23 --trace=faccessat "$@" $args > "$EXP" + +# Filter out faccessat() calls made by ld.so and libc. +sed -n '/^faccessat(-1, NULL,/,$p' < "$LOG" > "$OUT" +match_diff "$OUT" "$EXP" diff --git a/tests-mx32/faccessat2-P.c b/tests-mx32/faccessat2-P.c new file mode 100644 index 00000000..0e6af948 --- /dev/null +++ b/tests-mx32/faccessat2-P.c @@ -0,0 +1,4 @@ +#define PATH_TRACING +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "faccessat2.c" diff --git a/tests-mx32/faccessat2-P.gen.test b/tests-mx32/faccessat2-P.gen.test new file mode 100755 index 00000000..341f4a58 --- /dev/null +++ b/tests-mx32/faccessat2-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (faccessat2-P -a27 --trace=faccessat2 -P /dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a27 --trace=faccessat2 -P /dev/full diff --git a/tests-mx32/faccessat2-y.c b/tests-mx32/faccessat2-y.c new file mode 100644 index 00000000..9337cb5d --- /dev/null +++ b/tests-mx32/faccessat2-y.c @@ -0,0 +1,4 @@ +#define FD_PATH "" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "faccessat2.c" diff --git a/tests-mx32/faccessat2-y.gen.test b/tests-mx32/faccessat2-y.gen.test new file mode 100755 index 00000000..caeeb72a --- /dev/null +++ b/tests-mx32/faccessat2-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (faccessat2-y +faccessat2.test -a28 -y); do not edit. +set -- -a28 -y +. "${srcdir=.}/faccessat2.test" diff --git a/tests-mx32/faccessat2-yy.c b/tests-mx32/faccessat2-yy.c new file mode 100644 index 00000000..a23f3d41 --- /dev/null +++ b/tests-mx32/faccessat2-yy.c @@ -0,0 +1,4 @@ +#define FD_PATH ">" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "faccessat2.c" diff --git a/tests-mx32/faccessat2-yy.gen.test b/tests-mx32/faccessat2-yy.gen.test new file mode 100755 index 00000000..ecaeef2d --- /dev/null +++ b/tests-mx32/faccessat2-yy.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (faccessat2-yy +faccessat2.test -a28 -yy); do not edit. +set -- -a28 -yy +. "${srcdir=.}/faccessat2.test" diff --git a/tests-mx32/faccessat2.c b/tests-mx32/faccessat2.c new file mode 100644 index 00000000..74d17cd5 --- /dev/null +++ b/tests-mx32/faccessat2.c @@ -0,0 +1,174 @@ +/* + * Check decoding of faccessat2 syscall. + * + * Copyright (c) 2016-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_faccessat2 + +# include +# include +# include + +# define XLAT_MACROS_ONLY +# include "xlat/faccessat_flags.h" +# undef XLAT_MACROS_ONLY + +# ifndef FD_PATH +# define FD_PATH "" +# endif +# ifndef SKIP_IF_PROC_IS_UNAVAILABLE +# define SKIP_IF_PROC_IS_UNAVAILABLE +# endif + +static const char *errstr; + +static long +k_faccessat2(const unsigned int dirfd, + const void *const pathname, + const unsigned int mode, + const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + + const kernel_ulong_t arg1 = fill | dirfd; + const kernel_ulong_t arg2 = (uintptr_t) pathname; + const kernel_ulong_t arg3 = fill | mode; + const kernel_ulong_t arg4 = fill | flags; + const long rc = syscall(__NR_faccessat2, + arg1, arg2, arg3, arg4, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + SKIP_IF_PROC_IS_UNAVAILABLE; + + TAIL_ALLOC_OBJECT_CONST_PTR(const char, unterminated); + char *unterminated_str; + if (asprintf(&unterminated_str, "%p", unterminated) < 0) + perror_msg_and_fail("asprintf"); + const void *const efault = unterminated + 1; + char *efault_str; + if (asprintf(&efault_str, "%p", efault) < 0) + perror_msg_and_fail("asprintf"); + + typedef struct { + char sym; + char null; + } sym_null; + + TAIL_ALLOC_OBJECT_CONST_PTR(sym_null, dot); + dot->sym = '.'; + dot->null = '\0'; + const char *const null = &dot->null; + + TAIL_ALLOC_OBJECT_CONST_PTR(sym_null, slash); + slash->sym = '/'; + slash->null = '\0'; + + static const char path[] = "/dev/full"; + const char *const fd_path = tail_memdup(path, sizeof(path)); + int fd = open(path, O_WRONLY); + if (fd < 0) + perror_msg_and_fail("open: %s", path); + char *fd_str; + if (asprintf(&fd_str, "%d%s", fd, FD_PATH) < 0) + perror_msg_and_fail("asprintf"); + char *path_quoted; + if (asprintf(&path_quoted, "\"%s\"", path) < 0) + perror_msg_and_fail("asprintf"); + + struct { + int val; + const char *str; + } dirfds[] = { + { ARG_STR(-1) }, + { -100, "AT_FDCWD" }, + { fd, fd_str }, + }, modes[] = { + { ARG_STR(F_OK) }, + { ARG_STR(R_OK) }, + { ARG_STR(W_OK) }, + { ARG_STR(X_OK) }, + { ARG_STR(R_OK|W_OK) }, + { ARG_STR(R_OK|X_OK) }, + { ARG_STR(W_OK|X_OK) }, + { ARG_STR(R_OK|W_OK|X_OK) }, + { 8, "0x8 /* ?_OK */" }, + { -1, "R_OK|W_OK|X_OK|0xfffffff8" }, + }, flags[] = { + { ARG_STR(0) }, + { ARG_STR(AT_SYMLINK_NOFOLLOW) }, + { ARG_STR(AT_EACCESS) }, + { ARG_STR(AT_EMPTY_PATH) }, + { ARG_STR(AT_SYMLINK_NOFOLLOW|AT_EACCESS) }, + { ARG_STR(AT_SYMLINK_NOFOLLOW|AT_EMPTY_PATH) }, + { ARG_STR(AT_EACCESS|AT_EMPTY_PATH) }, + { ARG_STR(AT_SYMLINK_NOFOLLOW|AT_EACCESS|AT_EMPTY_PATH) }, + { 1, "0x1 /* AT_??? */" }, + { -1, "AT_SYMLINK_NOFOLLOW|AT_EACCESS|AT_EMPTY_PATH|0xffffecff" }, + }; + + struct { + const void *val; + const char *str; + } paths[] = { + { 0, "NULL" }, + { efault, efault_str }, + { unterminated, unterminated_str }, + { null, "\"\"" }, + { &dot->sym, "\".\"" }, + { &slash->sym, "\"/\"" }, + { fd_path, path_quoted }, + }; + + for (unsigned int dirfd_i = 0; + dirfd_i < ARRAY_SIZE(dirfds); + ++dirfd_i) { + for (unsigned int path_i = 0; + path_i < ARRAY_SIZE(paths); + ++path_i) { + for (unsigned int mode_i = 0; + mode_i < ARRAY_SIZE(modes); + ++mode_i) { + for (unsigned int flag_i = 0; + flag_i < ARRAY_SIZE(flags); + ++flag_i) { + k_faccessat2(dirfds[dirfd_i].val, + paths[path_i].val, + modes[mode_i].val, + flags[flag_i].val); +# ifdef PATH_TRACING + if (dirfds[dirfd_i].val == fd || + paths[path_i].val == fd_path) +# endif + printf("faccessat2(%s, %s, %s, %s) = %s\n", + dirfds[dirfd_i].str, + paths[path_i].str, + modes[mode_i].str, + flags[flag_i].str, + errstr); + } + } + } + } + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_faccessat2") + +#endif diff --git a/tests-mx32/faccessat2.test b/tests-mx32/faccessat2.test new file mode 100755 index 00000000..eea9ea9f --- /dev/null +++ b/tests-mx32/faccessat2.test @@ -0,0 +1,19 @@ +#!/bin/sh +# +# Check decoding of faccessat2 syscall. +# +# Copyright (c) 2020 Dmitry V. Levin +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +check_prog sed + +run_prog > /dev/null +run_strace -a27 --trace=faccessat2 "$@" $args > "$EXP" + +# Filter out faccessat2() calls made by ld.so and libc. +sed -n '/^faccessat2(-1, NULL,/,$p' < "$LOG" > "$OUT" +match_diff "$OUT" "$EXP" diff --git a/tests-mx32/fadvise64.c b/tests-mx32/fadvise64.c index 1d7b6681..7cbd3ad4 100644 --- a/tests-mx32/fadvise64.c +++ b/tests-mx32/fadvise64.c @@ -3,7 +3,7 @@ * * Copyright (c) 2016 Eugene Syromyatnikov * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +11,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fadvise64 diff --git a/tests-mx32/fadvise64_64.c b/tests-mx32/fadvise64_64.c index 1520b7e4..292b8338 100644 --- a/tests-mx32/fadvise64_64.c +++ b/tests-mx32/fadvise64_64.c @@ -3,7 +3,7 @@ * * Copyright (c) 2016 Eugene Syromyatnikov * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +11,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __arm__ # ifdef __NR_arm_fadvise64_64 diff --git a/tests-mx32/fallocate.c b/tests-mx32/fallocate.c index 0e2284de..b48cd157 100644 --- a/tests-mx32/fallocate.c +++ b/tests-mx32/fallocate.c @@ -2,7 +2,7 @@ * Check decoding of fallocate syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_fallocate) && defined(HAVE_FALLOCATE) && HAVE_FALLOCATE diff --git a/tests-mx32/fanotify_init.c b/tests-mx32/fanotify_init.c index a3eeff53..f9fc9161 100644 --- a/tests-mx32/fanotify_init.c +++ b/tests-mx32/fanotify_init.c @@ -2,7 +2,7 @@ * Check decoding of fanotify_init syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined __NR_fanotify_init @@ -44,13 +44,14 @@ main(void) { F8ILL_KULONG_MASK, "FAN_CLASS_NOTIF" }, { (kernel_ulong_t) 0xffffffff0000000cULL, "0xc /* FAN_CLASS_??? */" }, - { (kernel_ulong_t) 0xdec0deddefacec04ULL, - "FAN_CLASS_CONTENT|0xefacec00 /* FAN_??? */" }, + { (kernel_ulong_t) 0xdec0deddeface004ULL, + "FAN_CLASS_CONTENT|0xeface000 /* FAN_??? */" }, { (kernel_ulong_t) 0xffffffffffffffffULL, "0xc /* FAN_CLASS_??? */|FAN_CLOEXEC|FAN_NONBLOCK|" "FAN_UNLIMITED_QUEUE|FAN_UNLIMITED_MARKS|" "FAN_ENABLE_AUDIT|FAN_REPORT_TID|FAN_REPORT_FID|" - "0xfffffc80" }, + "FAN_REPORT_DIR_FID|FAN_REPORT_NAME|" + "0xfffff080" }, }; static const struct strval event_f_flags[] = { { F8ILL_KULONG_MASK, "O_RDONLY" }, diff --git a/tests-mx32/fanotify_mark.c b/tests-mx32/fanotify_mark.c index 33d18253..f4bda84a 100644 --- a/tests-mx32/fanotify_mark.c +++ b/tests-mx32/fanotify_mark.c @@ -3,7 +3,7 @@ * * Copyright (c) 2015-2016 Dmitry V. Levin * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2015-2019 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +11,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined HAVE_SYS_FANOTIFY_H && defined HAVE_FANOTIFY_MARK && \ defined __NR_fanotify_mark @@ -68,11 +68,6 @@ struct strval { const char *str; }; -struct strval64 { - uint64_t val; - const char *str; -}; - # define STR16 "0123456789abcdef" # define STR64 STR16 STR16 STR16 STR16 @@ -150,15 +145,16 @@ main(void) "FAN_OPEN_PERM|" "FAN_ACCESS_PERM|" "FAN_OPEN_EXEC_PERM|" + "FAN_DIR_MODIFY|" "FAN_ONDIR|" "FAN_EVENT_ON_CHILD|" - "0xdeadfeedb7f8a000" + "0xdeadfeedb7f0a000" # endif # if XLAT_VERBOSE " */" # endif }, - { ARG_ULL_STR(0xffffffffb7f8a000) + { ARG_ULL_STR(0xffffffffb7f0a000) # if !XLAT_RAW " /* FAN_??? */" # endif diff --git a/tests-mx32/fchdir.c b/tests-mx32/fchdir.c index 118e5fea..ff0c64b5 100644 --- a/tests-mx32/fchdir.c +++ b/tests-mx32/fchdir.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fchdir diff --git a/tests-mx32/fchmod.c b/tests-mx32/fchmod.c index 4fa06727..3bf2da60 100644 --- a/tests-mx32/fchmod.c +++ b/tests-mx32/fchmod.c @@ -3,14 +3,14 @@ * * Copyright (c) 2016 Fabien Siron * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fchmod @@ -22,14 +22,7 @@ int main(void) { - static const char fname[] = "fchmod_test_file"; - - int fd = open(fname, O_CREAT|O_RDONLY, 0400); - if (fd < 0) - perror_msg_and_fail("open"); - - if (unlink(fname)) - perror_msg_and_fail("unlink"); + int fd = create_tmpfile(O_RDWR); long rc = syscall(__NR_fchmod, fd, 0600); printf("fchmod(%d, 0600) = %s\n", fd, sprintrc(rc)); diff --git a/tests-mx32/fchmodat.c b/tests-mx32/fchmodat.c index f2fa5dd0..3fdb5ef4 100644 --- a/tests-mx32/fchmodat.c +++ b/tests-mx32/fchmodat.c @@ -2,13 +2,14 @@ * Check decoding of fchmodat syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fchmodat diff --git a/tests-mx32/fchown.c b/tests-mx32/fchown.c index 98bfd9de..bc5ca24c 100644 --- a/tests-mx32/fchown.c +++ b/tests-mx32/fchown.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fchown diff --git a/tests-mx32/fchown32.c b/tests-mx32/fchown32.c index 9d52f9a8..9604aa0a 100644 --- a/tests-mx32/fchown32.c +++ b/tests-mx32/fchown32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fchown32 diff --git a/tests-mx32/fchownat.c b/tests-mx32/fchownat.c index 32167bc7..d790bd98 100644 --- a/tests-mx32/fchownat.c +++ b/tests-mx32/fchownat.c @@ -2,13 +2,14 @@ * Check decoding of fchownat syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #include #if defined __NR_fchownat && defined AT_FDCWD && defined AT_SYMLINK_NOFOLLOW diff --git a/tests-mx32/fcntl--pidns-translation.c b/tests-mx32/fcntl--pidns-translation.c new file mode 100644 index 00000000..e249424a --- /dev/null +++ b/tests-mx32/fcntl--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "fcntl.c" diff --git a/tests-mx32/fcntl--pidns-translation.gen.test b/tests-mx32/fcntl--pidns-translation.gen.test new file mode 100755 index 00000000..7a93d8a6 --- /dev/null +++ b/tests-mx32/fcntl--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fcntl--pidns-translation test_pidns -a8 -e trace=fcntl); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a8 -e trace=fcntl diff --git a/tests-mx32/fcntl-common.c b/tests-mx32/fcntl-common.c index b2125171..ec18aa79 100644 --- a/tests-mx32/fcntl-common.c +++ b/tests-mx32/fcntl-common.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -13,6 +13,8 @@ #include #include #include "flock.h" +#include "pidns.h" +#include "scno.h" #define FILE_LEN 4096 @@ -48,12 +50,14 @@ test_flock_einval(const int cmd, const char *name) fl->l_len = (TYPEOF_FLOCK_OFF_T) 0xdefaced2cafef00dULL; invoke_test_syscall(0, cmd, fl); + pidns_print_leader(); printf("%s(0, %s, {l_type=F_RDLCK, l_whence=SEEK_SET" ", l_start=%jd, l_len=%jd}) = %s\n", TEST_SYSCALL_STR, name, (intmax_t) fl->l_start, (intmax_t) fl->l_len, errstr); void *const bad_addr = (void *) fl + 1; invoke_test_syscall(0, cmd, bad_addr); + pidns_print_leader(); printf("%s(0, %s, %p) = %s\n", TEST_SYSCALL_STR, name, bad_addr, errstr); } @@ -72,12 +76,14 @@ test_flock64_einval(const int cmd, const char *name) fl->l_len = (TYPEOF_FLOCK_OFF_T) 0xdefaced2cafef00dULL; invoke_test_syscall(0, cmd, fl); + pidns_print_leader(); printf("%s(0, %s, {l_type=F_RDLCK, l_whence=SEEK_SET" ", l_start=%jd, l_len=%jd}) = %s\n", TEST_SYSCALL_STR, name, (intmax_t) fl->l_start, (intmax_t) fl->l_len, errstr); void *const bad_addr = (void *) fl + 1; invoke_test_syscall(0, cmd, bad_addr); + pidns_print_leader(); printf("%s(0, %s, %p) = %s\n", TEST_SYSCALL_STR, name, bad_addr, errstr); } @@ -94,6 +100,7 @@ test_flock(void) fl->l_len = FILE_LEN; long rc = invoke_test_syscall(0, F_SETLK, fl); + pidns_print_leader(); printf("%s(0, F_SETLK, {l_type=F_RDLCK, l_whence=SEEK_SET" ", l_start=0, l_len=%d}) = %s\n", TEST_SYSCALL_STR, FILE_LEN, errstr); @@ -101,11 +108,13 @@ test_flock(void) return; invoke_test_syscall(0, F_GETLK, fl); + pidns_print_leader(); printf("%s(0, F_GETLK, {l_type=F_UNLCK, l_whence=SEEK_SET" ", l_start=0, l_len=%d, l_pid=0}) = 0\n", TEST_SYSCALL_STR, FILE_LEN); invoke_test_syscall(0, F_SETLKW, fl); + pidns_print_leader(); printf("%s(0, F_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET" ", l_start=0, l_len=%d}) = 0\n", TEST_SYSCALL_STR, FILE_LEN); @@ -124,6 +133,7 @@ test_flock64_ofd(void) fl->l_len = FILE_LEN; long rc = invoke_test_syscall(0, F_OFD_SETLK, fl); + pidns_print_leader(); printf("%s(0, F_OFD_SETLK, {l_type=F_RDLCK, l_whence=SEEK_SET" ", l_start=0, l_len=%d}) = %s\n", TEST_SYSCALL_STR, FILE_LEN, errstr); @@ -131,11 +141,13 @@ test_flock64_ofd(void) return; invoke_test_syscall(0, F_OFD_GETLK, fl); + pidns_print_leader(); printf("%s(0, F_OFD_GETLK, {l_type=F_UNLCK, l_whence=SEEK_SET" ", l_start=0, l_len=%d, l_pid=0}) = 0\n", TEST_SYSCALL_STR, FILE_LEN); invoke_test_syscall(0, F_OFD_SETLKW, fl); + pidns_print_leader(); printf("%s(0, F_OFD_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET" ", l_start=0, l_len=%d}) = 0\n", TEST_SYSCALL_STR, FILE_LEN); @@ -167,18 +179,21 @@ test_flock64(void) static long test_f_owner_ex_type_pid(const int cmd, const char *const cmd_name, const int type, const char *const type_name, - pid_t pid) + enum pid_type pid_type, pid_t pid) { TAIL_ALLOC_OBJECT_CONST_PTR(struct_kernel_f_owner_ex, fo); fo->type = type; fo->pid = pid; long rc = invoke_test_syscall(0, cmd, fo); - printf("%s(0, %s, {type=%s, pid=%d}) = %s\n", - TEST_SYSCALL_STR, cmd_name, type_name, fo->pid, errstr); + pidns_print_leader(); + printf("%s(0, %s, {type=%s, pid=%d%s}) = %s\n", + TEST_SYSCALL_STR, cmd_name, type_name, + fo->pid, pidns_pid2str(pid_type), errstr); void *bad_addr = (void *) fo + 1; invoke_test_syscall(0, cmd, bad_addr); + pidns_print_leader(); printf("%s(0, %s, %p) = %s\n", TEST_SYSCALL_STR, cmd_name, bad_addr, errstr); @@ -187,35 +202,35 @@ test_f_owner_ex_type_pid(const int cmd, const char *const cmd_name, static void test_f_owner_ex_umove_or_printaddr(const int type, const char *const type_name, - pid_t pid) + enum pid_type pid_type, pid_t pid) { long rc = test_f_owner_ex_type_pid(ARG_STR(F_SETOWN_EX), - type, type_name, pid); + type, type_name, pid_type, pid); if (!rc) test_f_owner_ex_type_pid(ARG_STR(F_GETOWN_EX), - type, type_name, pid); + type, type_name, pid_type, pid); } static void test_f_owner_ex(void) { - static const struct { + struct { int type; const char *type_name; - pid_t pid[2]; + enum pid_type pid_type; + pid_t pid; } a[] = { - { ARG_STR(F_OWNER_TID), { 1234567890, 20 } }, - { ARG_STR(F_OWNER_PID), { 1298126790, 30 } }, - { ARG_STR(F_OWNER_PGRP), { 1294567890, 40 } } + { ARG_STR(F_OWNER_TID), PT_NONE, 1234567890 }, + { ARG_STR(F_OWNER_PID), PT_NONE, 1234567890 }, + { ARG_STR(F_OWNER_PGRP), PT_NONE, 1234567890 }, + { ARG_STR(F_OWNER_TID), PT_TID, syscall(__NR_gettid) }, + { ARG_STR(F_OWNER_PID), PT_TGID, getpid() }, + { ARG_STR(F_OWNER_PGRP), PT_PGID, getpgid(0) }, }; - for (unsigned int i = 0; i < ARRAY_SIZE(a); i++) { - for (unsigned int j = 0; j < ARRAY_SIZE(a[0].pid); j++) { - test_f_owner_ex_umove_or_printaddr(a[i].type, - a[i].type_name, - a[i].pid[j]); - } - } + for (unsigned int i = 0; i < ARRAY_SIZE(a); i++) + test_f_owner_ex_umove_or_printaddr(a[i].type, a[i].type_name, + a[i].pid_type, a[i].pid); } #endif /* TEST_F_OWNER_EX */ @@ -228,6 +243,23 @@ struct fcntl_cmd_check { void (*print_flags)(long rc); }; +static void +test_xetown(void) +{ + const int pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); + + invoke_test_syscall(0, F_SETOWN, (void *) (intptr_t) pid); + pidns_print_leader(); + printf("%s(0, F_SETOWN, %d%s) = %s\n", + TEST_SYSCALL_STR, pid, pid_str, errstr); + + invoke_test_syscall(0, F_GETOWN, NULL); + pidns_print_leader(); + printf("%s(0, F_GETOWN) = %d%s\n", + TEST_SYSCALL_STR, pid, pid_str); +} + static void print_retval_flags(const struct fcntl_cmd_check *check, long rc) { @@ -243,12 +275,14 @@ static void test_other_set_cmd(const struct fcntl_cmd_check *check) { invoke_test_syscall(check->fd, check->cmd, (void *) check->arg); + pidns_print_leader(); printf("%s(%d, %s, %s) = %s\n", TEST_SYSCALL_STR, check->fd, check->cmd_str, check->arg_str, errstr); /* bad file fd */ invoke_test_syscall(-1, check->cmd, (void *) check->arg); + pidns_print_leader(); printf("%s(-1, %s, %s) = %s\n", TEST_SYSCALL_STR, check->cmd_str, check->arg_str, errstr); @@ -258,12 +292,14 @@ static void test_other_get_cmd(const struct fcntl_cmd_check *check) { long rc = invoke_test_syscall(check->fd, check->cmd, NULL); + pidns_print_leader(); printf("%s(%d, %s) = ", TEST_SYSCALL_STR, check->fd, check->cmd_str); print_retval_flags(check, rc); /* bad file fd */ invoke_test_syscall(-1, check->cmd, NULL); + pidns_print_leader(); printf("%s(-1, %s) = %s\n", TEST_SYSCALL_STR, check->cmd_str, errstr); } @@ -315,7 +351,6 @@ test_fcntl_others(void) { static const struct fcntl_cmd_check set_checks[] = { { 0, ARG_STR(F_SETFD), ARG_STR(FD_CLOEXEC) }, - { 0, ARG_STR(F_SETOWN), ARG_STR(20) }, #ifdef F_SETPIPE_SZ { 0, ARG_STR(F_SETPIPE_SZ), ARG_STR(4097) }, #endif @@ -336,7 +371,6 @@ test_fcntl_others(void) static const struct fcntl_cmd_check get_checks[] = { { 0, ARG_STR(F_GETFD), .print_flags = print_flags_getfd }, { 1, ARG_STR(F_GETFD), .print_flags = print_flags_getfd }, - { 0, ARG_STR(F_GETOWN) }, #ifdef F_GETPIPE_SZ { 0, ARG_STR(F_GETPIPE_SZ) }, #endif @@ -352,20 +386,16 @@ test_fcntl_others(void) static void create_sample(void) { - char fname[] = TEST_SYSCALL_STR "_XXXXXX"; - (void) close(0); - if (mkstemp(fname)) - perror_msg_and_fail("mkstemp: %s", fname); - if (unlink(fname)) - perror_msg_and_fail("unlink: %s", fname); - if (ftruncate(0, FILE_LEN)) + if (ftruncate(create_tmpfile(O_RDWR), FILE_LEN)) perror_msg_and_fail("ftruncate"); } int main(void) { + PIDNS_TEST_INIT; + create_sample(); test_flock(); test_flock64(); @@ -373,7 +403,9 @@ main(void) test_f_owner_ex(); #endif test_fcntl_others(); + test_xetown(); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-mx32/fcntl.c b/tests-mx32/fcntl.c index bd9ffbdd..ca9c737b 100644 --- a/tests-mx32/fcntl.c +++ b/tests-mx32/fcntl.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fcntl @@ -24,6 +24,7 @@ test_flock64_undecoded(const int cmd, const char *name) .l_len = 0xdefaced2cafef00dULL }; invoke_test_syscall(0, cmd, &fl); + pidns_print_leader(); printf("%s(0, %s, %p) = %s\n", TEST_SYSCALL_STR, name, &fl, errstr); } diff --git a/tests-mx32/fcntl64--pidns-translation.c b/tests-mx32/fcntl64--pidns-translation.c new file mode 100644 index 00000000..c6fdadd1 --- /dev/null +++ b/tests-mx32/fcntl64--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "fcntl64.c" diff --git a/tests-mx32/fcntl64--pidns-translation.gen.test b/tests-mx32/fcntl64--pidns-translation.gen.test new file mode 100755 index 00000000..3c464516 --- /dev/null +++ b/tests-mx32/fcntl64--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fcntl64--pidns-translation test_pidns -a8 -e trace=fcntl64); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a8 -e trace=fcntl64 diff --git a/tests-mx32/fcntl64.c b/tests-mx32/fcntl64.c index 97277b2f..07df7224 100644 --- a/tests-mx32/fcntl64.c +++ b/tests-mx32/fcntl64.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fcntl64 @@ -27,6 +27,7 @@ test_flock64_lk64(void) fl->l_len = FILE_LEN; long rc = invoke_test_syscall(0, F_SETLK64, fl); + pidns_print_leader(); printf("%s(0, F_SETLK64, {l_type=F_RDLCK, l_whence=SEEK_SET" ", l_start=0, l_len=%d}) = %s\n", TEST_SYSCALL_STR, FILE_LEN, errstr); @@ -35,11 +36,13 @@ test_flock64_lk64(void) return; invoke_test_syscall(0, F_GETLK64, fl); + pidns_print_leader(); printf("%s(0, F_GETLK64, {l_type=F_UNLCK, l_whence=SEEK_SET" ", l_start=0, l_len=%d, l_pid=0}) = 0\n", TEST_SYSCALL_STR, FILE_LEN); invoke_test_syscall(0, F_SETLKW64, fl); + pidns_print_leader(); printf("%s(0, F_SETLKW64, {l_type=F_UNLCK, l_whence=SEEK_SET" ", l_start=0, l_len=%d}) = 0\n", TEST_SYSCALL_STR, FILE_LEN); diff --git a/tests-mx32/fdatasync.c b/tests-mx32/fdatasync.c index f4c8d55f..a1f2ba29 100644 --- a/tests-mx32/fdatasync.c +++ b/tests-mx32/fdatasync.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fdatasync diff --git a/tests-mx32/file_handle.c b/tests-mx32/file_handle.c index 38cd5af8..edabde61 100644 --- a/tests-mx32/file_handle.c +++ b/tests-mx32/file_handle.c @@ -3,14 +3,14 @@ * * Copyright (c) 2015-2016 Dmitry V. Levin * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_name_to_handle_at && defined __NR_open_by_handle_at diff --git a/tests-mx32/file_ioctl.c b/tests-mx32/file_ioctl.c index 7a2a905c..d0efb210 100644 --- a/tests-mx32/file_ioctl.c +++ b/tests-mx32/file_ioctl.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,6 +11,7 @@ # include # include +# include # include # include # include "xlat.h" diff --git a/tests-mx32/fill_memory.c b/tests-mx32/fill_memory.c index 3e09d597..f82314c2 100644 --- a/tests-mx32/fill_memory.c +++ b/tests-mx32/fill_memory.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -24,3 +24,39 @@ fill_memory(void *ptr, size_t size) { fill_memory_ex(ptr, size, 0x80, 0x80); } + +void +fill_memory16_ex(void *ptr, size_t size, uint16_t start, + unsigned int period) +{ + uint16_t *p = ptr; + size_t i; + + for (i = 0; i < size / sizeof(uint16_t); i++) { + p[i] = start + i % period; + } +} + +void +fill_memory16(void *ptr, size_t size) +{ + fill_memory16_ex(ptr, size, 0x80c0, 0x8000); +} + +void +fill_memory32_ex(void *ptr, size_t size, uint32_t start, + unsigned int period) +{ + uint32_t *p = ptr; + size_t i; + + for (i = 0; i < size / sizeof(uint32_t); i++) { + p[i] = start + i % period; + } +} + +void +fill_memory32(void *ptr, size_t size) +{ + fill_memory32_ex(ptr, size, 0x80a0c0e0, 0x80000000); +} diff --git a/tests-mx32/filter_seccomp-flag.c b/tests-mx32/filter_seccomp-flag.c new file mode 100644 index 00000000..480db894 --- /dev/null +++ b/tests-mx32/filter_seccomp-flag.c @@ -0,0 +1,85 @@ +/* + * Check that syscall numbers do not conflict with seccomp filter flags. + * + * Copyright (c) 2019 Paul Chaignon + * Copyright (c) 2018-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "arch_defs.h" +#include "sysent.h" +#include "scno.h" + +/* PERSONALITY*_AUDIT_ARCH definitions depend on AUDIT_ARCH_* constants. */ +#ifdef PERSONALITY0_AUDIT_ARCH +# include +# define XLAT_MACROS_ONLY +# include "xlat/elf_em.h" +# include "xlat/audit_arch.h" +# undef XLAT_MACROS_ONLY +#endif + +/* Define these shorthand notations to simplify the syscallent files. */ +#include "sysent_shorthand_defs.h" + +const struct_sysent sysent0[] = { +#include "syscallent.h" +}; + +#if SUPPORTED_PERSONALITIES > 1 +const struct_sysent sysent1[] = { +# include "syscallent1.h" +}; +#endif + +#if SUPPORTED_PERSONALITIES > 2 +const struct_sysent sysent2[] = { +# include "syscallent2.h" +}; +#endif + +const unsigned int nsyscall_vec[SUPPORTED_PERSONALITIES] = { + ARRAY_SIZE(sysent0), +#if SUPPORTED_PERSONALITIES > 1 + ARRAY_SIZE(sysent1), +#endif +#if SUPPORTED_PERSONALITIES > 2 + ARRAY_SIZE(sysent2), +#endif +}; + +struct audit_arch_t { + unsigned int arch; + unsigned int flag; +}; + +static const struct audit_arch_t audit_arch_vec[SUPPORTED_PERSONALITIES] = { +#if SUPPORTED_PERSONALITIES > 1 + PERSONALITY0_AUDIT_ARCH, + PERSONALITY1_AUDIT_ARCH, +# if SUPPORTED_PERSONALITIES > 2 + PERSONALITY2_AUDIT_ARCH, +# endif +#endif +}; + +int +main(void) +{ + for (unsigned int p = 0; p < SUPPORTED_PERSONALITIES; ++p) { + if (!audit_arch_vec[p].flag) + continue; + for (unsigned int nr = 1; nr < nsyscall_vec[p]; ++nr) { + if (!(audit_arch_vec[p].flag & nr)) + continue; + error_msg_and_fail("system call number %u of" + " personality %u conflicts with" + " seccomp filter flag %#x", + nr, p, audit_arch_vec[p].flag); + } + } + return 0; +} diff --git a/tests-mx32/filter_seccomp-flag.gen.test b/tests-mx32/filter_seccomp-flag.gen.test new file mode 100755 index 00000000..b1185bec --- /dev/null +++ b/tests-mx32/filter_seccomp-flag.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (filter_seccomp-flag ../$NAME ); do not edit. +. "${srcdir=.}/init.sh" +../$NAME diff --git a/tests-mx32/filter_seccomp-perf.c b/tests-mx32/filter_seccomp-perf.c new file mode 100644 index 00000000..742e1ebb --- /dev/null +++ b/tests-mx32/filter_seccomp-perf.c @@ -0,0 +1,39 @@ +/* + * Check seccomp filter performance. + * + * Copyright (c) 2019 Paul Chaignon + * Copyright (c) 2018-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include +#include +#include + +static volatile bool stop = false; + +static void +handler(int signo) +{ + stop = true; +} + +int +main(void) +{ + unsigned int i; + int rc = 0; + + signal(SIGALRM, handler); + alarm(1); + + for (i = 0; !stop; i++) { + rc |= chdir("."); + } + printf("%d\n", i); + return rc; +} diff --git a/tests-mx32/filter_seccomp-perf.test b/tests-mx32/filter_seccomp-perf.test new file mode 100755 index 00000000..149d7044 --- /dev/null +++ b/tests-mx32/filter_seccomp-perf.test @@ -0,0 +1,27 @@ +#!/bin/sh +# +# Check seccomp filter performance. +# +# Copyright (c) 2019 Paul Chaignon +# Copyright (c) 2018-2019 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" +. "${srcdir=.}/filter_seccomp.sh" + +args="-f -qq -e signal=none -e trace=fchdir ../$NAME" +num_regular="$(run_strace $args)" +mv "$LOG" "$LOG.regular" +num_seccomp="$(run_strace --seccomp-bpf $args)" +mv "$LOG" "$LOG.seccomp" +match_diff "$LOG.regular" "$LOG.seccomp" + +min_ratio=6 +# With seccomp filter enabled, we should be able to complete +# at least $min_ratio times more chdir system calls. +ratio="$((num_seccomp / num_regular))" +if [ "$ratio" -lt "$min_ratio" ]; then + fail_ "Only $ratio times more syscalls performed with seccomp filter enabled, expected at least $min_ratio times speedup" +fi diff --git a/tests-mx32/filter_seccomp.gen.test b/tests-mx32/filter_seccomp.gen.test new file mode 100755 index 00000000..d41da057 --- /dev/null +++ b/tests-mx32/filter_seccomp.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (filter_seccomp . "${srcdir=.}/filter_seccomp.sh"; test_prog_set --seccomp-bpf -f); do not edit. +. "${srcdir=.}/init.sh" +. "${srcdir=.}/filter_seccomp.sh"; test_prog_set --seccomp-bpf -f diff --git a/tests-mx32/filter_seccomp.in b/tests-mx32/filter_seccomp.in new file mode 100644 index 00000000..76e4d7e6 --- /dev/null +++ b/tests-mx32/filter_seccomp.in @@ -0,0 +1,4 @@ +fork-f -a26 -qq -e signal=none -e trace=chdir +vfork-f -a26 -qq -e signal=none -e trace=chdir +fork-f -a26 -qq -e signal=none -e trace=chdir,%memory,%ipc,%pure,%signal,%network -e status=failed +status-none-f -e trace=!ptrace -e status=none diff --git a/tests-mx32/filter_seccomp.sh b/tests-mx32/filter_seccomp.sh new file mode 100755 index 00000000..cf5dee57 --- /dev/null +++ b/tests-mx32/filter_seccomp.sh @@ -0,0 +1,14 @@ +#!/bin/sh +# +# Skip the test if seccomp filter is not available. +# +# Copyright (c) 2018-2019 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +$STRACE --seccomp-bpf -f -e trace=fchdir / > /dev/null 2> "$LOG" ||: +if grep -x "[^:]*strace: seccomp filter is requested but unavailable" \ + "$LOG" > /dev/null; then + skip_ 'seccomp filter is unavailable' +fi diff --git a/tests-mx32/filtering_fd-syntax.test b/tests-mx32/filtering_fd-syntax.test index 53bf1b1c..00d9f47a 100755 --- a/tests-mx32/filtering_fd-syntax.test +++ b/tests-mx32/filtering_fd-syntax.test @@ -3,7 +3,7 @@ # Check descriptor set parsing syntax. # # Copyright (c) 2016 Dmitry V. Levin -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -14,8 +14,10 @@ check_fd_qualify() { check_e "invalid descriptor '$1'" -e"read=$2" check_e "invalid descriptor '$1'" -e "read=$2" + check_e "invalid descriptor '$1'" "--read=$2" check_e "invalid descriptor '$1'" -e"write=$2" check_e "invalid descriptor '$1'" -e "write=$2" + check_e "invalid descriptor '$1'" "--write=$2" } for arg in '' , ,, ,,, ; do diff --git a/tests-mx32/filtering_syscall-syntax.test b/tests-mx32/filtering_syscall-syntax.test index fe42edbe..8dd83cde 100755 --- a/tests-mx32/filtering_syscall-syntax.test +++ b/tests-mx32/filtering_syscall-syntax.test @@ -4,6 +4,7 @@ # # Copyright (c) 2016-2018 Dmitry V. Levin # Copyright (c) 2017 Nikolay Marchuk +# Copyright (c) 2018-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -16,37 +17,51 @@ check_syscall() check_e "invalid system call '$1'" -e "$2" check_e "invalid system call '$1'" -etrace="$2" + check_e "invalid system call '$1'" --trace="$2" check_e "invalid system call '$1'" -e trace="$2" check_e "invalid system call '$1'" -eabbrev="$2" + check_e "invalid system call '$1'" --abbrev="$2" check_e "invalid system call '$1'" -e abbrev="$2" check_e "invalid system call '$1'" -everbose="$2" + check_e "invalid system call '$1'" --verbose="$2" check_e "invalid system call '$1'" -e verbose="$2" check_e "invalid system call '$1'" -eraw="$2" + check_e "invalid system call '$1'" --raw="$2" check_e "invalid system call '$1'" -e raw="$2" check_e "invalid system call '$1'" -einject="$2" + check_e "invalid system call '$1'" --inject="$2" check_e "invalid system call '$1'" -e inject="$2" check_e "invalid system call '$1'" -einject="$2:" check_e "invalid system call '$1'" -einject="$2::" check_e "invalid system call '$1'" -einject="$2:::" + check_e "invalid system call '$1'" --inject="$2:" + check_e "invalid system call '$1'" --inject="$2::" + check_e "invalid system call '$1'" --inject="$2:::" check_e "invalid system call '$1'" -e inject="$2:" check_e "invalid system call '$1'" -e inject="$2::" check_e "invalid system call '$1'" -e inject="$2:::" check_e "invalid system call '$1'" -einject="$2:when=3" + check_e "invalid system call '$1'" --inject="$2:when=3" check_e "invalid system call '$1'" -e inject="$2:when=3" check_e "invalid system call '$1'" -efault="$2" + check_e "invalid system call '$1'" --fault="$2" check_e "invalid system call '$1'" -e fault="$2" check_e "invalid system call '$1'" -efault="$2:" check_e "invalid system call '$1'" -efault="$2::" check_e "invalid system call '$1'" -efault="$2:::" + check_e "invalid system call '$1'" --fault="$2:" + check_e "invalid system call '$1'" --fault="$2::" + check_e "invalid system call '$1'" --fault="$2:::" check_e "invalid system call '$1'" -e fault="$2:" check_e "invalid system call '$1'" -e fault="$2::" check_e "invalid system call '$1'" -e fault="$2:::" check_e "invalid system call '$1'" -efault="$2:when=4" + check_e "invalid system call '$1'" --fault="$2:when=4" check_e "invalid system call '$1'" -e fault="$2:when=4" } diff --git a/tests-mx32/finit_module.c b/tests-mx32/finit_module.c index 64e6df02..7c775658 100644 --- a/tests-mx32/finit_module.c +++ b/tests-mx32/finit_module.c @@ -2,7 +2,7 @@ * Check decoding of finit_module syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,6 @@ #include "tests.h" -#include #include "scno.h" #if defined(__NR_finit_module) diff --git a/tests-mx32/flock.c b/tests-mx32/flock.c index 4f044409..1253616f 100644 --- a/tests-mx32/flock.c +++ b/tests-mx32/flock.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_flock diff --git a/tests-mx32/fork--pidns-translation.awk b/tests-mx32/fork--pidns-translation.awk new file mode 100644 index 00000000..ef6858f4 --- /dev/null +++ b/tests-mx32/fork--pidns-translation.awk @@ -0,0 +1,15 @@ +/fork/ { + match($0, "([0-9]+) in strace\x27s PID NS", a); + if (a[1]) + fork_pid = a[1] +} + +/exited with 0/ { + if (!exit_pid) + exit_pid = $1 +} + +END { + if (!fork_pid || !exit_pid || fork_pid != exit_pid) + exit 1 +} diff --git a/tests-mx32/fork--pidns-translation.c b/tests-mx32/fork--pidns-translation.c new file mode 100644 index 00000000..1d490ce4 --- /dev/null +++ b/tests-mx32/fork--pidns-translation.c @@ -0,0 +1,78 @@ +/* + * Test PID namespace translation + * + * Copyright (c) 2020 Ákos Uzonyi + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#include "tests.h" +#include "scno.h" +#include "pidns.h" + +#ifdef __NR_fork + +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include "nsfs.h" + +# ifndef CLONE_NEWUSER +# define CLONE_NEWUSER 0x10000000 +# endif + +# ifndef CLONE_NEWPID +# define CLONE_NEWPID 0x20000000 +# endif + +static int +fork_chain(int depth) +{ + if (!depth) + return 0; + + int pid = syscall(__NR_fork); + if (pid < 0) + return errno; + + if (!pid) + _exit(fork_chain(depth - 1)); + + int status; + if (wait(&status) < 0) + return errno; + + if (!WIFEXITED(status)) + return -1; + + return WEXITSTATUS(status); +} + +int main(void) +{ + check_ns_ioctl(); + + if (unshare(CLONE_NEWPID | CLONE_NEWUSER) < 0) { + if (errno == EPERM) + perror_msg_and_skip("unshare"); + + perror_msg_and_fail("unshare"); + } + + errno = fork_chain(2); + if (errno) + perror("fork_chain"); +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_fork") + +#endif diff --git a/tests-mx32/fork--pidns-translation.test b/tests-mx32/fork--pidns-translation.test new file mode 100755 index 00000000..24cc5930 --- /dev/null +++ b/tests-mx32/fork--pidns-translation.test @@ -0,0 +1,14 @@ +#!/bin/sh +# +# Check pidns translation of fork's return value. +# +# Copyright (c) 2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: LGPL-2.1-or-later + +. "${srcdir=.}/init.sh" + +run_prog +run_strace -a6 --pidns-translation -f -e trace=fork $args +match_awk diff --git a/tests-mx32/fsconfig-P.c b/tests-mx32/fsconfig-P.c new file mode 100644 index 00000000..b763332c --- /dev/null +++ b/tests-mx32/fsconfig-P.c @@ -0,0 +1,2 @@ +#define PATH_TRACING +#include "fsconfig.c" diff --git a/tests-mx32/fsconfig-P.gen.test b/tests-mx32/fsconfig-P.gen.test new file mode 100755 index 00000000..36001fa8 --- /dev/null +++ b/tests-mx32/fsconfig-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fsconfig-P -s300 -y -P /dev/full -e trace=fsconfig); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -s300 -y -P /dev/full -e trace=fsconfig diff --git a/tests-mx32/fsconfig.c b/tests-mx32/fsconfig.c new file mode 100644 index 00000000..2399a6a1 --- /dev/null +++ b/tests-mx32/fsconfig.c @@ -0,0 +1,298 @@ +/* + * Check decoding of fsconfig syscall. + * + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_fsconfig + +# include +# include +# include +# include +# include + +# define XLAT_MACROS_ONLY +# include "xlat/fsconfig_cmds.h" +# undef XLAT_MACROS_ONLY + +static const char *errstr; + +static long +k_fsconfig(const unsigned int fs_fd, + const unsigned int cmd, + const void *key, + const void *value, + const unsigned int aux) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | fs_fd; + const kernel_ulong_t arg2 = fill | cmd; + const kernel_ulong_t arg3 = (uintptr_t) key; + const kernel_ulong_t arg4 = (uintptr_t) value; + const kernel_ulong_t arg5 = fill | aux; + const long rc = syscall(__NR_fsconfig, + arg1, arg2, arg3, arg4, arg5, bad); + errstr = sprintrc(rc); + return rc; +} + +static const char path_full[] = "/dev/full"; +static const int max_string_size = 256; +static const int max_blob_size = 300; +static const int huge_blob_size = 1024 * 1024 + 1; +static const char *fd_path; +static const void *efault; +static const char *empty; +static char *fname; +static char *key1; +static char *key; +static char *val1; +static char *val; +static char *blob1; +static char *blob; +static int fd; + +static void +test_fsconfig_unknown(void) +{ + k_fsconfig(fd, 8, empty, val, -100); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, 0x8 /* FSCONFIG_??? */, %p, %p, -100) = %s\n", + fd, fd_path, empty, val, errstr); +# endif + + k_fsconfig(-100, -1, empty, fd_path, fd); +# ifndef PATH_TRACING + printf("fsconfig(-100, 0xffffffff /* FSCONFIG_??? */, %p, %p, %d)" + " = %s\n", + empty, fd_path, fd, errstr); +# endif +} + +static void +test_fsconfig_cmd(const unsigned int cmd, const char *cmd_str) +{ + k_fsconfig(fd, cmd, empty, val, -100); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, %p, %p, -100) = %s\n", + fd, fd_path, cmd_str, empty, val, errstr); +# endif + + k_fsconfig(-100, cmd, empty, fd_path, fd); +# ifndef PATH_TRACING + printf("fsconfig(-100, %s, %p, %p, %d) = %s\n", + cmd_str, empty, fd_path, fd, errstr); +# endif +} + +static void +test_fsconfig_set_flag(const unsigned int cmd, const char *cmd_str) +{ + k_fsconfig(fd, cmd, key, val, -100); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%s\", %p, -100) = %s\n", + fd, fd_path, cmd_str, key, val, errstr); +# endif + + k_fsconfig(fd, cmd, key1, val, -100); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%.*s\"..., %p, -100) = %s\n", + fd, fd_path, cmd_str, max_string_size, key1, val, errstr); +# endif + + k_fsconfig(-100, cmd, key, fd_path, fd); +# ifndef PATH_TRACING + printf("fsconfig(-100, %s, \"%s\", %p, %d) = %s\n", + cmd_str, key, fd_path, fd, errstr); +# endif +} + +static void +test_fsconfig_set_string(const unsigned int cmd, const char *cmd_str) +{ + k_fsconfig(fd, cmd, key, val, -100); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%s\", \"%s\", -100) = %s\n", + fd, fd_path, cmd_str, key, val, errstr); +# endif + + k_fsconfig(fd, cmd, key1, val1, -100); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%.*s\"..., \"%.*s\"..., -100) = %s\n", + fd, fd_path, cmd_str, max_string_size, key1, max_string_size, val1, + errstr); +# endif + + k_fsconfig(-100, cmd, key, fd_path, fd); +# ifndef PATH_TRACING + printf("fsconfig(-100, %s, \"%s\", \"%s\", %d) = %s\n", + cmd_str, key, fd_path, fd, errstr); +# endif +} + +static void +test_fsconfig_set_binary(const unsigned int cmd, const char *cmd_str) +{ + k_fsconfig(fd, cmd, key, blob, max_blob_size); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%s\", ", fd, fd_path, cmd_str, key); + print_quoted_hex(blob, max_blob_size); + printf(", %d) = %s\n", max_blob_size, errstr); +# endif + + k_fsconfig(fd, cmd, key1, blob1, max_blob_size + 1); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%.*s\"..., ", + fd, fd_path, cmd_str, max_string_size, key1); + print_quoted_hex(blob1, max_blob_size); + printf("..., %d) = %s\n", max_blob_size + 1, errstr); +# endif + + k_fsconfig(fd, cmd, key, empty, 0); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%s\", \"\", 0) = %s\n", + fd, fd_path, cmd_str, key, errstr); +# endif + + k_fsconfig(fd, cmd, key, fname, -100); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%s\", %p, -100) = %s\n", + fd, fd_path, cmd_str, key, fname, errstr); +# endif + + k_fsconfig(fd, cmd, key, fname, huge_blob_size); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%s\", %p, %d) = %s\n", + fd, fd_path, cmd_str, key, fname, huge_blob_size, errstr); +# endif + + k_fsconfig(-100, cmd, key, fd_path, sizeof(path_full)); +# ifndef PATH_TRACING + printf("fsconfig(-100, %s, \"%s\", ", cmd_str, key); + print_quoted_hex(fd_path, sizeof(path_full)); + printf(", %d) = %s\n", (int) sizeof(path_full), errstr); +# endif + + k_fsconfig(-100, cmd, key, fname, fd); +# ifndef PATH_TRACING + printf("fsconfig(-100, %s, \"%s\", ", cmd_str, key); + print_quoted_hex(fname, fd); + printf(", %d) = %s\n", fd, errstr); +# endif +} + +static void +test_fsconfig_set_path(const unsigned int cmd, const char *cmd_str) +{ + fill_memory_ex(fname, PATH_MAX, '0', 10); + k_fsconfig(fd, cmd, key, fname, -100); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%s\", \"%.*s\"..., AT_FDCWD) = %s\n", + fd, fd_path, cmd_str, key, (int) PATH_MAX - 1, fname, errstr); +# endif + + fname[PATH_MAX - 1] = '\0'; + k_fsconfig(fd, cmd, key, fname, -1); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%s\", \"%s\", -1) = %s\n", + fd, fd_path, cmd_str, key, fname, errstr); +# endif + + k_fsconfig(-100, cmd, key, empty, fd); + printf("fsconfig(-100, %s, \"%s\", \"\", %d<%s>) = %s\n", + cmd_str, key, fd, fd_path, errstr); + + k_fsconfig(-1, cmd, 0, fd_path, -100); + printf("fsconfig(-1, %s, NULL, \"%s\", AT_FDCWD) = %s\n", + cmd_str, fd_path, errstr); + + k_fsconfig(-1, cmd, efault, efault + 1, fd); + printf("fsconfig(-1, %s, %p, %p, %d<%s>) = %s\n", + cmd_str, efault, efault + 1, fd, fd_path, errstr); + + k_fsconfig(-100, cmd, key, fname, -1); +# ifndef PATH_TRACING + printf("fsconfig(-100, %s, \"%s\", \"%s\", -1) = %s\n", + cmd_str, key, fname, errstr); +# endif +} + +static void +test_fsconfig_set_fd(const unsigned int cmd, const char *cmd_str) +{ + k_fsconfig(fd, cmd, key, val, -100); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%s\", %p, -100) = %s\n", + fd, fd_path, cmd_str, key, val, errstr); +# endif + + k_fsconfig(-100, cmd, key1, 0, fd); + printf("fsconfig(-100, %s, \"%.*s\"..., NULL, %d<%s>) = %s\n", + cmd_str, max_string_size, key1, fd, fd_path, errstr); + + k_fsconfig(-1, cmd, efault, efault + 1, fd); + printf("fsconfig(-1, %s, %p, %p, %d<%s>) = %s\n", + cmd_str, efault, efault + 1, fd, fd_path, errstr); + + k_fsconfig(-100, cmd, key, fd_path, -1); +# ifndef PATH_TRACING + printf("fsconfig(-100, %s, \"%s\", %p, -1) = %s\n", + cmd_str, key, fd_path, errstr); +# endif +} + +int +main(void) +{ + skip_if_unavailable("/proc/self/fd/"); + + fd_path = tail_memdup(path_full, sizeof(path_full)); + efault = fd_path + sizeof(path_full); + empty = efault - 1; + fname = tail_alloc(PATH_MAX); + key1 = tail_alloc(max_string_size + 1); + key = key1 + 1; + val1 = tail_alloc(max_string_size + 1); + val = val1 + 1; + blob1 = tail_alloc(max_blob_size + 1); + blob = blob1 + 1; + + fill_memory_ex(fname, PATH_MAX, '0', 10); + fill_memory_ex(key1, max_string_size, 'a', 'z' - 'a' + 1); + key1[max_string_size] = '\0'; + fill_memory_ex(val1, max_string_size, 'A', 'Z' - 'A' + 1); + val1[max_string_size] = '\0'; + fill_memory_ex(blob, max_blob_size, '0', 10); + blob[0] = 0; + blob1[0] = 0; + fd = open(fd_path, O_WRONLY); + if (fd < 0) + perror_msg_and_fail("open: %s", fd_path); + + test_fsconfig_unknown(); + test_fsconfig_set_flag(ARG_STR(FSCONFIG_SET_FLAG)); + test_fsconfig_set_string(ARG_STR(FSCONFIG_SET_STRING)); + test_fsconfig_set_binary(ARG_STR(FSCONFIG_SET_BINARY)); + test_fsconfig_set_path(ARG_STR(FSCONFIG_SET_PATH)); + test_fsconfig_set_path(ARG_STR(FSCONFIG_SET_PATH_EMPTY)); + test_fsconfig_set_fd(ARG_STR(FSCONFIG_SET_FD)); + test_fsconfig_cmd(ARG_STR(FSCONFIG_CMD_CREATE)); + test_fsconfig_cmd(ARG_STR(FSCONFIG_CMD_RECONFIGURE)); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_fsconfig") + +#endif diff --git a/tests-mx32/fsconfig.gen.test b/tests-mx32/fsconfig.gen.test new file mode 100755 index 00000000..f482be10 --- /dev/null +++ b/tests-mx32/fsconfig.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fsconfig -s300 -y); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -s300 -y diff --git a/tests-mx32/fsmount.c b/tests-mx32/fsmount.c new file mode 100644 index 00000000..28b14a40 --- /dev/null +++ b/tests-mx32/fsmount.c @@ -0,0 +1,97 @@ +/* + * Check decoding of fsmount syscall. + * + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_fsmount + +# include +# include +# include +# include + +static const char *errstr; + +static long +k_fsmount(const unsigned int fs_fd, + const unsigned int flags, + const unsigned int attr_flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | fs_fd; + const kernel_ulong_t arg2 = fill | flags; + const kernel_ulong_t arg3 = fill | attr_flags; + const long rc = syscall(__NR_fsmount, + arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + skip_if_unavailable("/proc/self/fd/"); + + static const char path[] = "/dev/full"; + int fd = open(path, O_WRONLY); + if (fd < 0) + perror_msg_and_fail("open: %s", path); + + struct { + unsigned int val; + const char *str; + } flags[] = { + { ARG_STR(0) }, + { 1, "FSMOUNT_CLOEXEC" }, + { 2, "0x2 /* FSMOUNT_??? */" }, + { 0xfffffffe, "0xfffffffe /* FSMOUNT_??? */" }, + { -1, "FSMOUNT_CLOEXEC|0xfffffffe" } + }, + attrs[] = { + { ARG_STR(0) }, + { 1, "MOUNT_ATTR_RDONLY" }, + { 0x10, "MOUNT_ATTR_NOATIME" }, + { 0xbf, "MOUNT_ATTR_RDONLY|MOUNT_ATTR_NOSUID|MOUNT_ATTR_NODEV" + "|MOUNT_ATTR_NOEXEC|MOUNT_ATTR_NOATIME" + "|MOUNT_ATTR_STRICTATIME|MOUNT_ATTR_NODIRATIME" }, + { 0x40, "0x40 /* MOUNT_ATTR_??? */" }, + { 0xffffff40, "0xffffff40 /* MOUNT_ATTR_??? */" }, + { -1, "MOUNT_ATTR_RDONLY|MOUNT_ATTR_NOSUID|MOUNT_ATTR_NODEV" + "|MOUNT_ATTR_NOEXEC|MOUNT_ATTR_NOATIME" + "|MOUNT_ATTR_STRICTATIME|MOUNT_ATTR_NODIRATIME" + "|0xffffff40" } + }; + + for (unsigned int i = 0; i < ARRAY_SIZE(flags); ++i) { + for (unsigned int j = 0; j < ARRAY_SIZE(attrs); ++j) { + k_fsmount(-1, flags[i].val, attrs[j].val); + printf("fsmount(-1, %s, %s) = %s\n", + flags[i].str, attrs[j].str, errstr); + + k_fsmount(-100, flags[i].val, attrs[j].val); + printf("fsmount(-100, %s, %s) = %s\n", + flags[i].str, attrs[j].str, errstr); + + k_fsmount(fd, flags[i].val, attrs[j].val); + printf("fsmount(%d<%s>, %s, %s) = %s\n", + fd, path, flags[i].str, attrs[j].str, errstr); + } + } + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_fsmount") + +#endif diff --git a/tests-mx32/fsmount.gen.test b/tests-mx32/fsmount.gen.test new file mode 100755 index 00000000..aff762bb --- /dev/null +++ b/tests-mx32/fsmount.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fsmount -a18 -y); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a18 -y diff --git a/tests-mx32/fsopen.c b/tests-mx32/fsopen.c new file mode 100644 index 00000000..1d8af8bb --- /dev/null +++ b/tests-mx32/fsopen.c @@ -0,0 +1,67 @@ +/* + * Check decoding of fsopen syscall. + * + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_fsopen + +# include +# include +# include + +static const char *errstr; + +static long +k_fsopen(const void *name, const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = (uintptr_t) name; + const kernel_ulong_t arg2 = fill | flags; + const long rc = syscall(__NR_fsopen, arg1, arg2, bad, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + char *const name1 = tail_alloc(DEFAULT_STRLEN + 2); + char *const name = name1 + 1; + const void *const efault = name + DEFAULT_STRLEN + 1; + const char *const empty = efault - 1; + fill_memory_ex(name1, DEFAULT_STRLEN + 1, '0', 10); + name1[DEFAULT_STRLEN + 1] = '\0'; + + k_fsopen(name, 0); + printf("fsopen(\"%s\", 0) = %s\n", name, errstr); + + k_fsopen(name1, 1); + printf("fsopen(\"%.*s\"..., FSOPEN_CLOEXEC) = %s\n", + DEFAULT_STRLEN, name1, errstr); + + k_fsopen(0, 2); + printf("fsopen(NULL, 0x2 /* FSOPEN_??? */) = %s\n", errstr); + + k_fsopen(efault, 0xfffffffe); + printf("fsopen(%p, 0xfffffffe /* FSOPEN_??? */) = %s\n", efault, errstr); + + k_fsopen(empty, -1); + printf("fsopen(\"\", FSOPEN_CLOEXEC|0xfffffffe) = %s\n", errstr); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_fsopen") + +#endif diff --git a/tests-mx32/fsopen.gen.test b/tests-mx32/fsopen.gen.test new file mode 100755 index 00000000..b4130f07 --- /dev/null +++ b/tests-mx32/fsopen.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fsopen -a35 ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a35 diff --git a/tests-mx32/fspick-P.c b/tests-mx32/fspick-P.c new file mode 100644 index 00000000..f3d41eb3 --- /dev/null +++ b/tests-mx32/fspick-P.c @@ -0,0 +1,2 @@ +#define PATH_TRACING +#include "fspick.c" diff --git a/tests-mx32/fspick-P.gen.test b/tests-mx32/fspick-P.gen.test new file mode 100755 index 00000000..98c0021b --- /dev/null +++ b/tests-mx32/fspick-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fspick-P -a27 -y -P /dev/full -e trace=fspick); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a27 -y -P /dev/full -e trace=fspick diff --git a/tests-mx32/fspick.c b/tests-mx32/fspick.c new file mode 100644 index 00000000..3f7f9d70 --- /dev/null +++ b/tests-mx32/fspick.c @@ -0,0 +1,109 @@ +/* + * Check decoding of fspick syscall. + * + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_fspick + +# include +# include +# include +# include +# include + +static const char *errstr; + +static long +k_fspick(const unsigned int dfd, + const void *fname, + const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | dfd; + const kernel_ulong_t arg2 = (uintptr_t) fname; + const kernel_ulong_t arg3 = fill | flags; + const long rc = syscall(__NR_fspick, arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + skip_if_unavailable("/proc/self/fd/"); + + static const char path_full[] = "/dev/full"; + const char *const path = tail_memdup(path_full, sizeof(path_full)); + char *const fname = tail_alloc(PATH_MAX); + const void *const efault = fname + PATH_MAX; + const char *const empty = efault - 1; + fill_memory_ex(fname, PATH_MAX, '0', 10); + + int dfd = open(path, O_WRONLY); + if (dfd < 0) + perror_msg_and_fail("open: %s", path); + + k_fspick(-1, 0, 1); +# ifndef PATH_TRACING + printf("fspick(-1, NULL, %s) = %s\n", "FSPICK_CLOEXEC", errstr); +# endif + + k_fspick(-100, fname, 0); +# ifndef PATH_TRACING + printf("fspick(%s, \"%.*s\"..., 0) = %s\n", + "AT_FDCWD", (int) PATH_MAX - 1, fname, errstr); +# endif + + fname[PATH_MAX - 1] = '\0'; + k_fspick(dfd, fname, 0xfffffff0); + printf("fspick(%d<%s>, \"%s\", %s) = %s\n", + dfd, path, fname, "0xfffffff0 /* FSPICK_??? */", errstr); + + k_fspick(-1, efault, 0xf); +# ifndef PATH_TRACING + printf("fspick(-1, %p, %s) = %s\n", + efault, + "FSPICK_CLOEXEC|FSPICK_SYMLINK_NOFOLLOW" + "|FSPICK_NO_AUTOMOUNT|FSPICK_EMPTY_PATH", + errstr); +# endif + + k_fspick(-1, empty, -1); +# ifndef PATH_TRACING + printf("fspick(-1, \"\", %s|0xfffffff0) = %s\n", + "FSPICK_CLOEXEC|FSPICK_SYMLINK_NOFOLLOW" + "|FSPICK_NO_AUTOMOUNT|FSPICK_EMPTY_PATH", + errstr); +# endif + + if (k_fspick(-1, path, 0) < 0) + printf("fspick(-1, \"%s\", 0) = %s\n", + path, errstr); + else + printf("fspick(-1, \"%s\", 0) = %s<%s>\n", + path, errstr, path); + + if (k_fspick(dfd, empty, 8) < 0) + printf("fspick(%d<%s>, \"\", %s) = %s\n", + dfd, path, "FSPICK_EMPTY_PATH", errstr); + else + printf("fspick(%d<%s>, \"\", %s) = %s<%s>\n", + dfd, path, "FSPICK_EMPTY_PATH", errstr, path); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_fspick") + +#endif diff --git a/tests-mx32/fspick.gen.test b/tests-mx32/fspick.gen.test new file mode 100755 index 00000000..a1261985 --- /dev/null +++ b/tests-mx32/fspick.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fspick -a27 -y); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a27 -y diff --git a/tests-mx32/fstat.c b/tests-mx32/fstat.c index 7a52e0cc..d0b5454d 100644 --- a/tests-mx32/fstat.c +++ b/tests-mx32/fstat.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fstat diff --git a/tests-mx32/fstat64.c b/tests-mx32/fstat64.c index 5d30ca41..2ce73a98 100644 --- a/tests-mx32/fstat64.c +++ b/tests-mx32/fstat64.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fstat64 diff --git a/tests-mx32/fstatat64.c b/tests-mx32/fstatat64.c index 949463c9..965958ef 100644 --- a/tests-mx32/fstatat64.c +++ b/tests-mx32/fstatat64.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fstatat64 diff --git a/tests-mx32/fstatat64.gen.test b/tests-mx32/fstatat64.gen.test index 8da5c7f2..a453ff22 100755 --- a/tests-mx32/fstatat64.gen.test +++ b/tests-mx32/fstatat64.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fstatat64 -a32 -v -P stat.sample -P /dev/full); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fstatat64 -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a32 -v -P stat.sample -P /dev/full +run_strace_match_diff -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full diff --git a/tests-mx32/fstatfs.c b/tests-mx32/fstatfs.c index f1609405..e3a38aa7 100644 --- a/tests-mx32/fstatfs.c +++ b/tests-mx32/fstatfs.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fstatfs diff --git a/tests-mx32/fstatfs64.c b/tests-mx32/fstatfs64.c index 14da042a..95171ca2 100644 --- a/tests-mx32/fstatfs64.c +++ b/tests-mx32/fstatfs64.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fstatfs64 diff --git a/tests-mx32/fsync.c b/tests-mx32/fsync.c index 5624096b..2efc3395 100644 --- a/tests-mx32/fsync.c +++ b/tests-mx32/fsync.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fsync diff --git a/tests-mx32/ftruncate.c b/tests-mx32/ftruncate.c index 6c77d4b1..70f813f8 100644 --- a/tests-mx32/ftruncate.c +++ b/tests-mx32/ftruncate.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_ftruncate diff --git a/tests-mx32/ftruncate64.c b/tests-mx32/ftruncate64.c index b7e350b4..ad7fc471 100644 --- a/tests-mx32/ftruncate64.c +++ b/tests-mx32/ftruncate64.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_ftruncate64 diff --git a/tests-mx32/futex.c b/tests-mx32/futex.c index 47191f27..f246e22a 100644 --- a/tests-mx32/futex.c +++ b/tests-mx32/futex.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -8,7 +8,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_futex @@ -495,7 +495,7 @@ main(int argc, char *argv[]) * wake val2 processes waiting for uaddr2 in case * operation encoded in val3 (change of value at uaddr2 * and comparison of previous value against provided - * constant) succeedes with value at uaddr2. Operation + * constant) succeeds with value at uaddr2. Operation * result is written to value of uaddr2 (in any case). * 1. uaddr - futex address * 2. op - FUTEX_WAKE_OP diff --git a/tests-mx32/futimesat.c b/tests-mx32/futimesat.c index 8024f87b..5782f1f6 100644 --- a/tests-mx32/futimesat.c +++ b/tests-mx32/futimesat.c @@ -2,13 +2,14 @@ * Check decoding of futimesat syscall. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_futimesat diff --git a/tests-mx32/gen_tests.am b/tests-mx32/gen_tests.am index e6d1fc7b..e0a2952d 100644 --- a/tests-mx32/gen_tests.am +++ b/tests-mx32/gen_tests.am @@ -1,5 +1,5 @@ # Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in; do not edit. -GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test accept4.gen.test access.gen.test acct.gen.test add_key.gen.test adjtimex.gen.test aio.gen.test aio_pgetevents.gen.test alarm.gen.test bpf.gen.test bpf-obj_get_info_by_fd.gen.test bpf-obj_get_info_by_fd-prog.gen.test bpf-obj_get_info_by_fd-prog-v.gen.test bpf-obj_get_info_by_fd-v.gen.test bpf-v.gen.test btrfs.gen.test chmod.gen.test chown.gen.test chown32.gen.test chroot.gen.test clock.gen.test clock_adjtime.gen.test clock_nanosleep.gen.test clock_xettime.gen.test copy_file_range.gen.test creat.gen.test delete_module.gen.test dev-yy.gen.test dup.gen.test dup2.gen.test dup3.gen.test epoll_create.gen.test epoll_create1.gen.test epoll_ctl.gen.test epoll_pwait.gen.test epoll_wait.gen.test erestartsys.gen.test execveat.gen.test execveat-v.gen.test faccessat.gen.test fadvise64_64.gen.test fallocate.gen.test fanotify_init.gen.test fanotify_mark.gen.test fanotify_mark-Xabbrev.gen.test fanotify_mark-Xraw.gen.test fanotify_mark-Xverbose.gen.test fchdir.gen.test fchmod.gen.test fchmodat.gen.test fchown.gen.test fchown32.gen.test fchownat.gen.test fcntl.gen.test fcntl64.gen.test fdatasync.gen.test file_handle.gen.test file_ioctl.gen.test finit_module.gen.test flock.gen.test fork-f.gen.test fstat.gen.test fstat-Xabbrev.gen.test fstat-Xraw.gen.test fstat-Xverbose.gen.test fstat64.gen.test fstat64-Xabbrev.gen.test fstat64-Xraw.gen.test fstat64-Xverbose.gen.test fstatat64.gen.test fstatfs.gen.test fstatfs64.gen.test fsync.gen.test fsync-y.gen.test ftruncate.gen.test ftruncate64.gen.test futimesat.gen.test get_mempolicy.gen.test getcpu.gen.test getcwd.gen.test getdents.gen.test getdents64.gen.test getegid.gen.test getegid32.gen.test geteuid.gen.test geteuid32.gen.test getgid.gen.test getgid32.gen.test getgroups.gen.test getgroups32.gen.test getpeername.gen.test getpgrp.gen.test getpid.gen.test getppid.gen.test getrandom.gen.test getresgid.gen.test getresgid32.gen.test getresuid.gen.test getresuid32.gen.test getrlimit.gen.test getrusage.gen.test getsid.gen.test getsockname.gen.test gettid.gen.test getuid32.gen.test getxxid.gen.test group_req.gen.test inet-cmsg.gen.test init_module.gen.test inotify.gen.test inotify_init1.gen.test io_uring_enter.gen.test io_uring_register.gen.test io_uring_setup.gen.test ioctl_block.gen.test ioctl_dm.gen.test ioctl_dm-v.gen.test ioctl_evdev.gen.test ioctl_evdev-v.gen.test ioctl_inotify.gen.test ioctl_kvm_run.gen.test ioctl_kvm_run-v.gen.test ioctl_kvm_run_auxstr_vcpu.gen.test ioctl_loop.gen.test ioctl_loop-nv.gen.test ioctl_loop-v.gen.test ioctl_mtd.gen.test ioctl_nbd.gen.test ioctl_nsfs.gen.test ioctl_perf.gen.test ioctl_ptp.gen.test ioctl_random.gen.test ioctl_rtc.gen.test ioctl_rtc-v.gen.test ioctl_scsi.gen.test ioctl_sg_io_v3.gen.test ioctl_sg_io_v4.gen.test ioctl_sock_gifconf.gen.test ioctl_uffdio.gen.test ioctl_v4l2.gen.test ioperm.gen.test iopl.gen.test ioprio.gen.test ioprio-Xabbrev.gen.test ioprio-Xraw.gen.test ioprio-Xverbose.gen.test ip_mreq.gen.test ipc.gen.test ipc_msg.gen.test ipc_msg-Xabbrev.gen.test ipc_msg-Xraw.gen.test ipc_msg-Xverbose.gen.test ipc_msgbuf-Xabbrev.gen.test ipc_msgbuf-Xraw.gen.test ipc_msgbuf-Xverbose.gen.test ipc_sem.gen.test ipc_sem-Xabbrev.gen.test ipc_sem-Xraw.gen.test ipc_sem-Xverbose.gen.test ipc_shm.gen.test ipc_shm-Xabbrev.gen.test ipc_shm-Xraw.gen.test ipc_shm-Xverbose.gen.test kcmp.gen.test kcmp-y.gen.test kern_features.gen.test kernel_version.gen.test kernel_version-Xabbrev.gen.test kernel_version-Xraw.gen.test kernel_version-Xverbose.gen.test kexec_file_load.gen.test kexec_load.gen.test keyctl.gen.test keyctl-Xabbrev.gen.test keyctl-Xraw.gen.test keyctl-Xverbose.gen.test kill.gen.test lchown.gen.test lchown32.gen.test link.gen.test linkat.gen.test lookup_dcookie.gen.test lstat.gen.test lstat64.gen.test madvise.gen.test mbind.gen.test membarrier.gen.test memfd_create.gen.test memfd_create-Xabbrev.gen.test memfd_create-Xraw.gen.test memfd_create-Xverbose.gen.test migrate_pages.gen.test mincore.gen.test mkdir.gen.test mkdirat.gen.test mknod.gen.test mknodat.gen.test mlock.gen.test mlock2.gen.test mlockall.gen.test mmap-Xabbrev.gen.test mmap-Xraw.gen.test mmap-Xverbose.gen.test mmap64.gen.test mmap64-Xabbrev.gen.test mmap64-Xraw.gen.test mmap64-Xverbose.gen.test mmsg.gen.test mmsg-silent.gen.test mmsg_name.gen.test mmsg_name-v.gen.test modify_ldt.gen.test mount.gen.test mount-Xabbrev.gen.test mount-Xraw.gen.test mount-Xverbose.gen.test move_pages.gen.test move_pages-Xabbrev.gen.test move_pages-Xraw.gen.test move_pages-Xverbose.gen.test mq.gen.test mq_sendrecv.gen.test mq_sendrecv-read.gen.test mq_sendrecv-write.gen.test msg_control.gen.test msg_control-v.gen.test msg_name.gen.test munlockall.gen.test nanosleep.gen.test net-icmp_filter.gen.test net-packet_mreq.gen.test net-packet_mreq-Xabbrev.gen.test net-packet_mreq-Xraw.gen.test net-packet_mreq-Xverbose.gen.test net-sockaddr.gen.test net-tpacket_req.gen.test net-tpacket_stats.gen.test net-yy-inet6.gen.test netlink_audit.gen.test netlink_crypto.gen.test netlink_generic.gen.test netlink_kobject_uevent.gen.test netlink_netfilter.gen.test netlink_protocol.gen.test netlink_route.gen.test netlink_selinux.gen.test netlink_xfrm.gen.test newfstatat.gen.test nfnetlink_acct.gen.test nfnetlink_cthelper.gen.test nfnetlink_ctnetlink.gen.test nfnetlink_ctnetlink_exp.gen.test nfnetlink_cttimeout.gen.test nfnetlink_ipset.gen.test nfnetlink_nft_compat.gen.test nfnetlink_nftables.gen.test nfnetlink_osf.gen.test nfnetlink_queue.gen.test nfnetlink_ulog.gen.test nlattr.gen.test nlattr_br_port_msg.gen.test nlattr_crypto_user_alg.gen.test nlattr_dcbmsg.gen.test nlattr_fib_rule_hdr.gen.test nlattr_ifaddrlblmsg.gen.test nlattr_ifaddrmsg.gen.test nlattr_ifinfomsg.gen.test nlattr_ifla_af_spec.gen.test nlattr_ifla_brport.gen.test nlattr_ifla_linkinfo.gen.test nlattr_ifla_port.gen.test nlattr_ifla_xdp.gen.test nlattr_inet_diag_msg.gen.test nlattr_inet_diag_req_compat.gen.test nlattr_inet_diag_req_v2.gen.test nlattr_mdba_mdb_entry.gen.test nlattr_mdba_router_port.gen.test nlattr_ndmsg.gen.test nlattr_ndtmsg.gen.test nlattr_netconfmsg.gen.test nlattr_netlink_diag_msg.gen.test nlattr_nlmsgerr.gen.test nlattr_packet_diag_msg.gen.test nlattr_rtgenmsg.gen.test nlattr_rtmsg.gen.test nlattr_smc_diag_msg.gen.test nlattr_tc_stats.gen.test nlattr_tca_stab.gen.test nlattr_tcamsg.gen.test nlattr_tcmsg.gen.test nlattr_unix_diag_msg.gen.test old_mmap.gen.test old_mmap-P.gen.test old_mmap-Xabbrev.gen.test old_mmap-Xraw.gen.test old_mmap-Xverbose.gen.test old_mmap-v-none.gen.test oldfstat.gen.test oldlstat.gen.test oldselect.gen.test oldselect-P.gen.test oldselect-efault.gen.test oldselect-efault-P.gen.test oldstat.gen.test open.gen.test openat.gen.test orphaned_process_group.gen.test osf_utimes.gen.test pause.gen.test perf_event_open.gen.test perf_event_open_nonverbose.gen.test perf_event_open_unabbrev.gen.test personality-Xabbrev.gen.test personality-Xraw.gen.test personality-Xverbose.gen.test pidfd_send_signal.gen.test pipe2.gen.test pkey_alloc.gen.test pkey_free.gen.test pkey_mprotect.gen.test ppoll.gen.test ppoll-P.gen.test ppoll-v.gen.test pread64-pwrite64.gen.test preadv.gen.test preadv-pwritev.gen.test preadv2-pwritev2.gen.test printpath-umovestr.gen.test printpath-umovestr-peekdata.gen.test printpath-umovestr-undumpable.gen.test printsignal-Xabbrev.gen.test printsignal-Xraw.gen.test printsignal-Xverbose.gen.test printstr.gen.test printstrn-umoven.gen.test printstrn-umoven-peekdata.gen.test printstrn-umoven-undumpable.gen.test prlimit64.gen.test process_vm_readv.gen.test process_vm_writev.gen.test pselect6.gen.test ptrace.gen.test ptrace_syscall_info.gen.test pwritev.gen.test quotactl.gen.test quotactl-Xabbrev.gen.test quotactl-Xraw.gen.test quotactl-Xverbose.gen.test quotactl-v.gen.test quotactl-xfs.gen.test quotactl-xfs-v.gen.test read-write.gen.test readahead.gen.test readdir.gen.test readlink.gen.test readlinkat.gen.test reboot.gen.test recvfrom.gen.test recvmmsg-timeout.gen.test recvmsg.gen.test regex.gen.test remap_file_pages.gen.test remap_file_pages-Xabbrev.gen.test remap_file_pages-Xraw.gen.test remap_file_pages-Xverbose.gen.test rename.gen.test renameat.gen.test renameat2.gen.test request_key.gen.test riscv_flush_icache.gen.test rmdir.gen.test rt_sigpending.gen.test rt_sigprocmask.gen.test rt_sigqueueinfo.gen.test rt_sigreturn.gen.test rt_sigsuspend.gen.test rt_sigtimedwait.gen.test rt_tgsigqueueinfo.gen.test s390_guarded_storage.gen.test s390_guarded_storage-v.gen.test s390_pci_mmio_read_write.gen.test s390_runtime_instr.gen.test s390_sthyi.gen.test s390_sthyi-v.gen.test sched.gen.test sched_get_priority_mxx.gen.test sched_rr_get_interval.gen.test sched_xetaffinity.gen.test sched_xetattr.gen.test sched_xetparam.gen.test sched_xetscheduler.gen.test sched_yield.gen.test seccomp-filter.gen.test seccomp-filter-v.gen.test seccomp_get_action_avail.gen.test select.gen.test select-P.gen.test semop.gen.test sendfile.gen.test sendfile64.gen.test set_mempolicy.gen.test setdomainname.gen.test setfsgid.gen.test setfsgid32.gen.test setfsuid.gen.test setfsuid32.gen.test setgid.gen.test setgid32.gen.test setgroups.gen.test setgroups32.gen.test sethostname.gen.test setns.gen.test setregid.gen.test setregid32.gen.test setresgid.gen.test setresgid32.gen.test setresuid.gen.test setresuid32.gen.test setreuid.gen.test setreuid32.gen.test setrlimit.gen.test setrlimit-Xabbrev.gen.test setrlimit-Xraw.gen.test setrlimit-Xverbose.gen.test setuid.gen.test setuid32.gen.test shmxt.gen.test shutdown.gen.test sigaction.gen.test siginfo.gen.test signal.gen.test signal_receive.gen.test signalfd4.gen.test sigpending.gen.test sigprocmask.gen.test sigreturn.gen.test sigsuspend.gen.test so_error.gen.test so_linger.gen.test so_peercred.gen.test so_peercred-Xabbrev.gen.test so_peercred-Xraw.gen.test so_peercred-Xverbose.gen.test sock_filter-v.gen.test sock_filter-v-Xabbrev.gen.test sock_filter-v-Xraw.gen.test sock_filter-v-Xverbose.gen.test sockaddr_xlat-Xabbrev.gen.test sockaddr_xlat-Xraw.gen.test sockaddr_xlat-Xverbose.gen.test socketcall.gen.test sockopt-sol_netlink.gen.test sockopt-timestamp.gen.test splice.gen.test stat.gen.test stat64.gen.test statfs.gen.test statfs64.gen.test statx.gen.test swap.gen.test sxetmask.gen.test symlink.gen.test symlinkat.gen.test sync.gen.test sync_file_range.gen.test sync_file_range2.gen.test sysinfo.gen.test syslog.gen.test tee.gen.test time.gen.test timer_create.gen.test timer_xettime.gen.test timerfd_xettime.gen.test times.gen.test times-fail.gen.test trace_fstat.gen.test trace_fstatfs.gen.test trace_lstat.gen.test trace_personality_32.gen.test trace_personality_64.gen.test trace_personality_regex_32.gen.test trace_personality_regex_64.gen.test trace_personality_regex_x32.gen.test trace_personality_x32.gen.test trace_question.gen.test trace_stat.gen.test trace_stat_like.gen.test trace_statfs.gen.test trace_statfs_like.gen.test truncate.gen.test truncate64.gen.test ugetrlimit.gen.test umask.gen.test umoven-illptr.gen.test umovestr-illptr.gen.test umovestr3.gen.test unlink.gen.test unlinkat.gen.test unshare.gen.test userfaultfd.gen.test ustat.gen.test utime.gen.test utimensat.gen.test utimensat-Xabbrev.gen.test utimensat-Xraw.gen.test utimensat-Xverbose.gen.test utimes.gen.test vfork-f.gen.test vhangup.gen.test vmsplice.gen.test wait4.gen.test wait4-v.gen.test waitid.gen.test waitid-v.gen.test waitpid.gen.test xattr.gen.test xattr-strings.gen.test xet_robust_list.gen.test xetitimer.gen.test xetpgid.gen.test xetpriority.gen.test xettimeofday.gen.test +GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test accept4.gen.test access.gen.test acct.gen.test add_key.gen.test adjtimex.gen.test aio.gen.test aio_pgetevents.gen.test alarm.gen.test bpf.gen.test bpf-obj_get_info_by_fd.gen.test bpf-obj_get_info_by_fd-prog.gen.test bpf-obj_get_info_by_fd-prog-v.gen.test bpf-obj_get_info_by_fd-v.gen.test bpf-v.gen.test btrfs.gen.test chmod.gen.test chown.gen.test chown32.gen.test chroot.gen.test clock.gen.test clock_adjtime.gen.test clock_nanosleep.gen.test clock_xettime.gen.test clone3.gen.test clone3-Xabbrev.gen.test clone3-Xraw.gen.test clone3-Xverbose.gen.test clone3-success-Xabbrev.gen.test clone3-success-Xraw.gen.test clone3-success-Xverbose.gen.test clone_parent.gen.test clone_parent--quiet-exit.gen.test clone_parent-q.gen.test clone_parent-qq.gen.test clone_ptrace--quiet-attach.gen.test clone_ptrace--quiet-exit.gen.test clone_ptrace-q.gen.test clone_ptrace-qq.gen.test close_range.gen.test close_range-P.gen.test close_range-y.gen.test close_range-yy.gen.test copy_file_range.gen.test creat.gen.test delete_module.gen.test dev--decode-fds-dev.gen.test dev--decode-fds-path.gen.test dev--decode-fds-socket.gen.test dev-yy.gen.test dup.gen.test dup-P.gen.test dup-y.gen.test dup-yy.gen.test dup2.gen.test dup2-P.gen.test dup2-y.gen.test dup2-yy.gen.test dup3.gen.test dup3-P.gen.test dup3-y.gen.test dup3-yy.gen.test epoll_create.gen.test epoll_create1.gen.test epoll_ctl.gen.test epoll_pwait.gen.test epoll_wait.gen.test erestartsys.gen.test execveat.gen.test execveat-v.gen.test faccessat-P.gen.test faccessat-y.gen.test faccessat-yy.gen.test faccessat2-P.gen.test faccessat2-y.gen.test faccessat2-yy.gen.test fadvise64_64.gen.test fallocate.gen.test fanotify_init.gen.test fanotify_mark.gen.test fanotify_mark-Xabbrev.gen.test fanotify_mark-Xraw.gen.test fanotify_mark-Xverbose.gen.test fchdir.gen.test fchmod.gen.test fchmodat.gen.test fchown.gen.test fchown32.gen.test fchownat.gen.test fcntl.gen.test fcntl--pidns-translation.gen.test fcntl64.gen.test fcntl64--pidns-translation.gen.test fdatasync.gen.test file_handle.gen.test file_ioctl.gen.test filter_seccomp.gen.test filter_seccomp-flag.gen.test finit_module.gen.test flock.gen.test fork-f.gen.test fsconfig.gen.test fsconfig-P.gen.test fsmount.gen.test fsopen.gen.test fspick.gen.test fspick-P.gen.test fstat.gen.test fstat-Xabbrev.gen.test fstat-Xraw.gen.test fstat-Xverbose.gen.test fstat64.gen.test fstat64-Xabbrev.gen.test fstat64-Xraw.gen.test fstat64-Xverbose.gen.test fstatat64.gen.test fstatfs.gen.test fstatfs64.gen.test fsync.gen.test fsync-y.gen.test ftruncate.gen.test ftruncate64.gen.test futimesat.gen.test get_mempolicy.gen.test getcpu.gen.test getcwd.gen.test getdents.gen.test getdents-v.gen.test getdents64.gen.test getdents64-v.gen.test getegid.gen.test getegid-creds.gen.test getegid32.gen.test getegid32-creds.gen.test geteuid.gen.test geteuid-creds.gen.test geteuid32.gen.test geteuid32-creds.gen.test getgid.gen.test getgid-creds.gen.test getgid32.gen.test getgid32-creds.gen.test getgroups.gen.test getgroups32.gen.test getpeername.gen.test getpgrp.gen.test getpgrp--pidns-translation.gen.test getpid.gen.test getpid--pidns-translation.gen.test getppid.gen.test getrandom.gen.test getresgid.gen.test getresgid32.gen.test getresuid.gen.test getresuid32.gen.test getrlimit.gen.test getrusage.gen.test getsid.gen.test getsid--pidns-translation.gen.test getsockname.gen.test gettid.gen.test getuid-creds.gen.test getuid32.gen.test getuid32-creds.gen.test getxgid.gen.test getxpid.gen.test getxuid.gen.test group_req.gen.test inet-cmsg.gen.test init_module.gen.test inotify.gen.test inotify_init.gen.test inotify_init1.gen.test inotify_init1-y.gen.test io_uring_enter.gen.test io_uring_register.gen.test io_uring_setup.gen.test ioctl_block.gen.test ioctl_dm.gen.test ioctl_dm-v.gen.test ioctl_evdev.gen.test ioctl_evdev-Xabbrev.gen.test ioctl_evdev-Xraw.gen.test ioctl_evdev-Xverbose.gen.test ioctl_evdev-v.gen.test ioctl_evdev-v-Xabbrev.gen.test ioctl_evdev-v-Xraw.gen.test ioctl_evdev-v-Xverbose.gen.test ioctl_evdev-success-Xabbrev.gen.test ioctl_evdev-success-Xraw.gen.test ioctl_evdev-success-Xverbose.gen.test ioctl_evdev-success-v.gen.test ioctl_evdev-success-v-Xabbrev.gen.test ioctl_evdev-success-v-Xraw.gen.test ioctl_evdev-success-v-Xverbose.gen.test ioctl_hdio.gen.test ioctl_hdio-Xabbrev.gen.test ioctl_hdio-Xraw.gen.test ioctl_hdio-Xverbose.gen.test ioctl_hdio-v.gen.test ioctl_hdio-v-Xabbrev.gen.test ioctl_hdio-v-Xraw.gen.test ioctl_hdio-v-Xverbose.gen.test ioctl_hdio-success.gen.test ioctl_hdio-success-Xabbrev.gen.test ioctl_hdio-success-Xraw.gen.test ioctl_hdio-success-Xverbose.gen.test ioctl_hdio-success-v.gen.test ioctl_hdio-success-v-Xabbrev.gen.test ioctl_hdio-success-v-Xraw.gen.test ioctl_hdio-success-v-Xverbose.gen.test ioctl_inotify.gen.test ioctl_kvm_run.gen.test ioctl_kvm_run-v.gen.test ioctl_kvm_run_auxstr_vcpu.gen.test ioctl_loop.gen.test ioctl_loop-nv.gen.test ioctl_loop-v.gen.test ioctl_mtd.gen.test ioctl_nbd.gen.test ioctl_nsfs.gen.test ioctl_perf.gen.test ioctl_perf-success.gen.test ioctl_ptp.gen.test ioctl_random.gen.test ioctl_rtc.gen.test ioctl_rtc-v.gen.test ioctl_scsi.gen.test ioctl_sg_io_v3.gen.test ioctl_sg_io_v4.gen.test ioctl_sock_gifconf.gen.test ioctl_tee.gen.test ioctl_uffdio.gen.test ioctl_v4l2.gen.test ioctl_v4l2-Xabbrev.gen.test ioctl_v4l2-Xraw.gen.test ioctl_v4l2-Xverbose.gen.test ioctl_v4l2-v.gen.test ioctl_v4l2-v-Xabbrev.gen.test ioctl_v4l2-v-Xraw.gen.test ioctl_v4l2-v-Xverbose.gen.test ioctl_v4l2-success.gen.test ioctl_v4l2-success-Xabbrev.gen.test ioctl_v4l2-success-Xraw.gen.test ioctl_v4l2-success-Xverbose.gen.test ioctl_v4l2-success-v.gen.test ioctl_v4l2-success-v-Xabbrev.gen.test ioctl_v4l2-success-v-Xraw.gen.test ioctl_v4l2-success-v-Xverbose.gen.test ioctl_watchdog.gen.test ioperm.gen.test iopl.gen.test ioprio.gen.test ioprio--pidns-translation.gen.test ioprio-Xabbrev.gen.test ioprio-Xraw.gen.test ioprio-Xverbose.gen.test ip_mreq.gen.test ipc.gen.test ipc_msg.gen.test ipc_msg-Xabbrev.gen.test ipc_msg-Xraw.gen.test ipc_msg-Xverbose.gen.test ipc_msgbuf-Xabbrev.gen.test ipc_msgbuf-Xraw.gen.test ipc_msgbuf-Xverbose.gen.test ipc_sem.gen.test ipc_sem-Xabbrev.gen.test ipc_sem-Xraw.gen.test ipc_sem-Xverbose.gen.test ipc_shm.gen.test ipc_shm-Xabbrev.gen.test ipc_shm-Xraw.gen.test ipc_shm-Xverbose.gen.test kcmp.gen.test kcmp-y.gen.test kcmp-y--pidns-translation.gen.test kern_features.gen.test kernel_version.gen.test kernel_version-Xabbrev.gen.test kernel_version-Xraw.gen.test kernel_version-Xverbose.gen.test kexec_file_load.gen.test kexec_load.gen.test keyctl.gen.test keyctl-Xabbrev.gen.test keyctl-Xraw.gen.test keyctl-Xverbose.gen.test kill.gen.test kill--pidns-translation.gen.test ksysent.gen.test lchown.gen.test lchown32.gen.test link.gen.test linkat.gen.test lookup_dcookie.gen.test lstat.gen.test lstat64.gen.test madvise.gen.test maybe_switch_current_tcp.gen.test maybe_switch_current_tcp--quiet-thread-execve.gen.test mbind.gen.test mbind-Xabbrev.gen.test mbind-Xraw.gen.test mbind-Xverbose.gen.test membarrier.gen.test memfd_create.gen.test memfd_create-Xabbrev.gen.test memfd_create-Xraw.gen.test memfd_create-Xverbose.gen.test migrate_pages.gen.test migrate_pages--pidns-translation.gen.test mincore.gen.test mkdir.gen.test mkdirat.gen.test mknod.gen.test mknodat.gen.test mlock.gen.test mlock2.gen.test mlockall.gen.test mmap-Xabbrev.gen.test mmap-Xraw.gen.test mmap-Xverbose.gen.test mmap64.gen.test mmap64-Xabbrev.gen.test mmap64-Xraw.gen.test mmap64-Xverbose.gen.test mmsg.gen.test mmsg-silent.gen.test mmsg_name.gen.test mmsg_name-v.gen.test modify_ldt.gen.test mount.gen.test mount-Xabbrev.gen.test mount-Xraw.gen.test mount-Xverbose.gen.test move_mount.gen.test move_mount-P.gen.test move_pages.gen.test move_pages-Xabbrev.gen.test move_pages-Xraw.gen.test move_pages-Xverbose.gen.test move_pages--pidns-translation.gen.test mq.gen.test mq_sendrecv.gen.test mq_sendrecv-read.gen.test mq_sendrecv-write.gen.test msg_control.gen.test msg_control-v.gen.test msg_name.gen.test munlockall.gen.test nanosleep.gen.test net--decode-fds-dev-netlink.gen.test net--decode-fds-none-netlink.gen.test net--decode-fds-path-netlink.gen.test net--decode-fds-socket-netlink.gen.test net-icmp_filter.gen.test net-packet_mreq.gen.test net-packet_mreq-Xabbrev.gen.test net-packet_mreq-Xraw.gen.test net-packet_mreq-Xverbose.gen.test net-sockaddr.gen.test net-sockaddr--pidns-translation.gen.test net-tpacket_req.gen.test net-tpacket_stats.gen.test net-yy-inet6.gen.test netlink_audit.gen.test netlink_crypto.gen.test netlink_generic.gen.test netlink_kobject_uevent.gen.test netlink_netfilter.gen.test netlink_protocol.gen.test netlink_route.gen.test netlink_selinux.gen.test netlink_xfrm.gen.test newfstatat.gen.test nfnetlink_acct.gen.test nfnetlink_cthelper.gen.test nfnetlink_ctnetlink.gen.test nfnetlink_ctnetlink_exp.gen.test nfnetlink_cttimeout.gen.test nfnetlink_ipset.gen.test nfnetlink_nft_compat.gen.test nfnetlink_nftables.gen.test nfnetlink_osf.gen.test nfnetlink_queue.gen.test nfnetlink_ulog.gen.test nlattr.gen.test nlattr_br_port_msg.gen.test nlattr_crypto_user_alg.gen.test nlattr_dcbmsg.gen.test nlattr_fib_rule_hdr.gen.test nlattr_ifaddrlblmsg.gen.test nlattr_ifaddrmsg.gen.test nlattr_ifinfomsg.gen.test nlattr_ifla_af_spec.gen.test nlattr_ifla_brport.gen.test nlattr_ifla_linkinfo.gen.test nlattr_ifla_port.gen.test nlattr_ifla_xdp.gen.test nlattr_ifla_xdp-y.gen.test nlattr_inet_diag_msg.gen.test nlattr_inet_diag_req_compat.gen.test nlattr_inet_diag_req_v2.gen.test nlattr_mdba_mdb_entry.gen.test nlattr_mdba_router_port.gen.test nlattr_ndmsg.gen.test nlattr_ndtmsg.gen.test nlattr_netconfmsg.gen.test nlattr_netlink_diag_msg.gen.test nlattr_nlmsgerr.gen.test nlattr_packet_diag_msg.gen.test nlattr_rtgenmsg.gen.test nlattr_rtmsg.gen.test nlattr_smc_diag_msg.gen.test nlattr_tc_stats.gen.test nlattr_tca_stab.gen.test nlattr_tcamsg.gen.test nlattr_tcmsg.gen.test nlattr_unix_diag_msg.gen.test old_mmap.gen.test old_mmap-P.gen.test old_mmap-Xabbrev.gen.test old_mmap-Xraw.gen.test old_mmap-Xverbose.gen.test old_mmap-v-none.gen.test oldfstat.gen.test oldlstat.gen.test oldselect.gen.test oldselect-P.gen.test oldselect-efault.gen.test oldselect-efault-P.gen.test oldstat.gen.test open.gen.test open_tree.gen.test open_tree-P.gen.test openat.gen.test openat2.gen.test openat2-Xabbrev.gen.test openat2-Xraw.gen.test openat2-Xverbose.gen.test openat2-v.gen.test openat2-v-y.gen.test openat2-v-y-Xabbrev.gen.test openat2-v-y-Xraw.gen.test openat2-v-y-Xverbose.gen.test openat2-y.gen.test orphaned_process_group.gen.test osf_utimes.gen.test pause.gen.test perf_event_open.gen.test perf_event_open_nonverbose.gen.test perf_event_open_unabbrev.gen.test personality-Xabbrev.gen.test personality-Xraw.gen.test personality-Xverbose.gen.test pidfd_getfd.gen.test pidfd_getfd-y.gen.test pidfd_getfd-yy.gen.test pidfd_open.gen.test pidfd_open--decode-fd-path.gen.test pidfd_open--decode-fd-pidfd.gen.test pidfd_open--decode-fd-socket.gen.test pidfd_open-P.gen.test pidfd_open-y.gen.test pidfd_open-yy.gen.test pidfd_open--pidns-translation.gen.test pidfd_send_signal.gen.test pidfd_send_signal--pidns-translation.gen.test pipe2.gen.test pkey_alloc.gen.test pkey_free.gen.test pkey_mprotect.gen.test ppoll.gen.test ppoll-P.gen.test ppoll-v.gen.test pread64-pwrite64.gen.test preadv.gen.test preadv-pwritev.gen.test preadv2-pwritev2.gen.test printpath-umovestr.gen.test printpath-umovestr-peekdata.gen.test printpath-umovestr-undumpable.gen.test printsignal-Xabbrev.gen.test printsignal-Xraw.gen.test printsignal-Xverbose.gen.test printstr.gen.test printstrn-umoven.gen.test printstrn-umoven-peekdata.gen.test printstrn-umoven-undumpable.gen.test prlimit64.gen.test prlimit64--pidns-translation.gen.test process_vm_readv.gen.test process_vm_readv--pidns-translation.gen.test process_vm_writev.gen.test process_vm_writev--pidns-translation.gen.test pselect6.gen.test ptrace.gen.test ptrace_syscall_info.gen.test pwritev.gen.test quotactl.gen.test quotactl-Xabbrev.gen.test quotactl-Xraw.gen.test quotactl-Xverbose.gen.test quotactl-v.gen.test quotactl-xfs.gen.test quotactl-xfs-v.gen.test read-write.gen.test readahead.gen.test readdir.gen.test readlink.gen.test readlinkat.gen.test reboot.gen.test recv-MSG_TRUNC.gen.test recvfrom.gen.test recvfrom-MSG_TRUNC.gen.test recvmmsg-timeout.gen.test recvmsg.gen.test regex.gen.test remap_file_pages.gen.test remap_file_pages-Xabbrev.gen.test remap_file_pages-Xraw.gen.test remap_file_pages-Xverbose.gen.test rename.gen.test renameat.gen.test renameat2.gen.test request_key.gen.test riscv_flush_icache.gen.test rmdir.gen.test rt_sigpending.gen.test rt_sigprocmask.gen.test rt_sigqueueinfo.gen.test rt_sigqueueinfo--pidns-translation.gen.test rt_sigreturn.gen.test rt_sigsuspend.gen.test rt_sigtimedwait.gen.test rt_tgsigqueueinfo.gen.test rt_tgsigqueueinfo--pidns-translation.gen.test s390_guarded_storage.gen.test s390_guarded_storage-v.gen.test s390_pci_mmio_read_write.gen.test s390_runtime_instr.gen.test s390_sthyi.gen.test s390_sthyi-v.gen.test sched.gen.test sched_get_priority_mxx.gen.test sched_rr_get_interval.gen.test sched_xetaffinity.gen.test sched_xetaffinity--pidns-translation.gen.test sched_xetattr.gen.test sched_xetattr--pidns-translation.gen.test sched_xetparam.gen.test sched_xetparam--pidns-translation.gen.test sched_xetscheduler.gen.test sched_xetscheduler--pidns-translation.gen.test sched_yield.gen.test seccomp-filter.gen.test seccomp-filter-v.gen.test seccomp_get_action_avail.gen.test select.gen.test select-P.gen.test semop.gen.test semop-indirect.gen.test semtimedop.gen.test sendfile.gen.test sendfile64.gen.test set_mempolicy.gen.test set_mempolicy-Xabbrev.gen.test set_mempolicy-Xraw.gen.test set_mempolicy-Xverbose.gen.test setdomainname.gen.test setfsgid.gen.test setfsgid32.gen.test setfsuid.gen.test setfsuid32.gen.test setgid.gen.test setgid32.gen.test setgroups.gen.test setgroups32.gen.test sethostname.gen.test setns.gen.test setregid.gen.test setregid32.gen.test setresgid.gen.test setresgid32.gen.test setresuid.gen.test setresuid32.gen.test setreuid.gen.test setreuid32.gen.test setrlimit.gen.test setrlimit-Xabbrev.gen.test setrlimit-Xraw.gen.test setrlimit-Xverbose.gen.test setuid.gen.test setuid32.gen.test shmxt.gen.test shutdown.gen.test sigaction.gen.test siginfo.gen.test signal.gen.test signal_receive.gen.test signal_receive--pidns-translation.gen.test signalfd4.gen.test sigpending.gen.test sigprocmask.gen.test sigreturn.gen.test sigsuspend.gen.test so_error.gen.test so_linger.gen.test so_peercred.gen.test so_peercred-Xabbrev.gen.test so_peercred-Xraw.gen.test so_peercred-Xverbose.gen.test so_peercred--pidns-translation.gen.test sock_filter-v.gen.test sock_filter-v-Xabbrev.gen.test sock_filter-v-Xraw.gen.test sock_filter-v-Xverbose.gen.test sockaddr_xlat-Xabbrev.gen.test sockaddr_xlat-Xraw.gen.test sockaddr_xlat-Xverbose.gen.test socketcall.gen.test sockopt-sol_netlink.gen.test sockopt-timestamp.gen.test splice.gen.test stat.gen.test stat64.gen.test statfs.gen.test statfs64.gen.test status-all.gen.test status-failed.gen.test status-failed-long.gen.test status-failed-status.gen.test status-none.gen.test status-successful.gen.test status-successful-long.gen.test status-successful-status.gen.test status-unfinished.gen.test statx.gen.test strace--absolute-timestamps.gen.test strace--absolute-timestamps-format-time.gen.test strace--absolute-timestamps-format-time-precision-s.gen.test strace--absolute-timestamps-format-time-precision-ms.gen.test strace--absolute-timestamps-format-time-precision-us.gen.test strace--absolute-timestamps-format-time-precision-ns.gen.test strace--absolute-timestamps-format-unix-precision-s.gen.test strace--absolute-timestamps-format-unix-precision-ms.gen.test strace--absolute-timestamps-format-unix-precision-us.gen.test strace--absolute-timestamps-format-unix-precision-ns.gen.test strace--follow-forks-output-separately.gen.test strace--relative-timestamps.gen.test strace--relative-timestamps-s.gen.test strace--relative-timestamps-ms.gen.test strace--relative-timestamps-us.gen.test strace--relative-timestamps-ns.gen.test strace--syscall-times.gen.test strace--syscall-times-s.gen.test strace--syscall-times-ms.gen.test strace--syscall-times-us.gen.test strace--syscall-times-ns.gen.test strace--strings-in-hex.gen.test strace--strings-in-hex-all.gen.test strace--strings-in-hex-non-ascii.gen.test strace--timestamps.gen.test strace--timestamps-time.gen.test strace--timestamps-time-s.gen.test strace--timestamps-time-ms.gen.test strace--timestamps-time-us.gen.test strace--timestamps-time-ns.gen.test strace--timestamps-unix-s.gen.test strace--timestamps-unix-ms.gen.test strace--timestamps-unix-us.gen.test strace--timestamps-unix-ns.gen.test strace-n.gen.test strace-x.gen.test strace-xx.gen.test swap.gen.test sxetmask.gen.test symlink.gen.test symlinkat.gen.test sync.gen.test sync_file_range.gen.test sync_file_range2.gen.test sysinfo.gen.test syslog.gen.test tee.gen.test tgkill.gen.test tgkill--pidns-translation.gen.test threads-execve--quiet-thread-execve.gen.test threads-execve-q.gen.test threads-execve-qq.gen.test threads-execve-qqq.gen.test time.gen.test timer_create.gen.test timer_xettime.gen.test timerfd_xettime.gen.test times.gen.test times-fail.gen.test tkill.gen.test tkill--pidns-translation.gen.test trace_clock.gen.test trace_creds.gen.test trace_fstat.gen.test trace_fstatfs.gen.test trace_lstat.gen.test trace_personality_32.gen.test trace_personality_64.gen.test trace_personality_regex_32.gen.test trace_personality_regex_64.gen.test trace_personality_regex_x32.gen.test trace_personality_x32.gen.test trace_question.gen.test trace_stat.gen.test trace_stat_like.gen.test trace_statfs.gen.test trace_statfs_like.gen.test trie_test.gen.test truncate.gen.test truncate64.gen.test ugetrlimit.gen.test umask.gen.test umoven-illptr.gen.test umovestr-illptr.gen.test umovestr3.gen.test umovestr_cached_adjacent.gen.test unlink.gen.test unlinkat.gen.test unshare.gen.test userfaultfd.gen.test ustat.gen.test utime.gen.test utimensat.gen.test utimensat-Xabbrev.gen.test utimensat-Xraw.gen.test utimensat-Xverbose.gen.test utimes.gen.test vfork-f.gen.test vhangup.gen.test vmsplice.gen.test wait4.gen.test wait4-v.gen.test waitid.gen.test waitid-v.gen.test waitpid.gen.test xattr.gen.test xattr-strings.gen.test xet_robust_list.gen.test xet_robust_list--pidns-translation.gen.test xetitimer.gen.test xetpgid.gen.test xetpgid--pidns-translation.gen.test xetpriority.gen.test xetpriority--pidns-translation.gen.test xettimeofday.gen.test $(srcdir)/_newselect.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -79,6 +79,63 @@ $(srcdir)/clock_nanosleep.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/clock_xettime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/clone3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-success-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-success-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-success-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_parent.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_parent--quiet-exit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_parent-q.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_parent-qq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_ptrace--quiet-attach.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_ptrace--quiet-exit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_ptrace-q.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_ptrace-qq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/close_range.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/close_range-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/close_range-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/close_range-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/copy_file_range.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -88,18 +145,54 @@ $(srcdir)/creat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/delete_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/dev--decode-fds-dev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dev--decode-fds-path.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dev--decode-fds-socket.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/dev-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/dup.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/dup-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/dup2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/dup2-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup2-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup2-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/dup3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/dup3-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup3-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup3-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/epoll_create.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -124,7 +217,22 @@ $(srcdir)/execveat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/execveat-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ -$(srcdir)/faccessat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in +$(srcdir)/faccessat-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat2-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat2-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat2-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/fadvise64_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in @@ -169,9 +277,15 @@ $(srcdir)/fchownat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/fcntl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/fcntl--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/fcntl64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/fcntl64--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/fdatasync.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -181,6 +295,12 @@ $(srcdir)/file_handle.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.i $(srcdir)/file_ioctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/filter_seccomp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/filter_seccomp-flag.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/finit_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -190,6 +310,24 @@ $(srcdir)/flock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/fork-f.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/fsconfig.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fsconfig-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fsmount.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fsopen.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fspick.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fspick-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/fstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -250,27 +388,51 @@ $(srcdir)/getcwd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/getdents.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getdents-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getdents64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getdents64-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getegid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getegid-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getegid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getegid32-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/geteuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/geteuid-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/geteuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/geteuid32-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getgid-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getgid32-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getgroups.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -283,9 +445,15 @@ $(srcdir)/getpeername.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.i $(srcdir)/getpgrp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getpgrp--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getpid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getpid--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getppid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -313,16 +481,31 @@ $(srcdir)/getrusage.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/getsid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getsid--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getsockname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/gettid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getuid-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ -$(srcdir)/getxxid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in +$(srcdir)/getuid32-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/getxgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/getxpid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/getxuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/group_req.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in @@ -337,9 +520,15 @@ $(srcdir)/init_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.i $(srcdir)/inotify.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/inotify_init.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/inotify_init1.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/inotify_init1-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/io_uring_enter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -361,9 +550,96 @@ $(srcdir)/ioctl_dm-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/ioctl_evdev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_evdev-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioctl_evdev-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_evdev-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioctl_inotify.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -397,6 +673,9 @@ $(srcdir)/ioctl_nsfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/ioctl_perf.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_perf-success.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioctl_ptp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -421,12 +700,63 @@ $(srcdir)/ioctl_sg_io_v4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_test $(srcdir)/ioctl_sock_gifconf.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_tee.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioctl_uffdio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/ioctl_v4l2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_v4l2-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_watchdog.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioperm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -436,6 +766,9 @@ $(srcdir)/iopl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/ioprio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioprio--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioprio-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -502,6 +835,9 @@ $(srcdir)/kcmp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/kcmp-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/kcmp-y--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/kern_features.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -538,6 +874,12 @@ $(srcdir)/keyctl-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/kill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/kill--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ksysent.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/lchown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -562,9 +904,24 @@ $(srcdir)/lstat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/madvise.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/maybe_switch_current_tcp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/maybe_switch_current_tcp--quiet-thread-execve.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/mbind.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/mbind-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/mbind-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/mbind-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/membarrier.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -583,6 +940,9 @@ $(srcdir)/memfd_create-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/g $(srcdir)/migrate_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/migrate_pages--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/mincore.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -655,6 +1015,12 @@ $(srcdir)/mount-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/mount-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/move_mount.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/move_mount-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/move_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -667,6 +1033,9 @@ $(srcdir)/move_pages-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/move_pages-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/move_pages--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/mq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -694,6 +1063,18 @@ $(srcdir)/munlockall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/nanosleep.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/net--decode-fds-dev-netlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/net--decode-fds-none-netlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/net--decode-fds-path-netlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/net--decode-fds-socket-netlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/net-icmp_filter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -712,6 +1093,9 @@ $(srcdir)/net-packet_mreq-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir $(srcdir)/net-sockaddr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/net-sockaddr--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/net-tpacket_req.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -823,6 +1207,9 @@ $(srcdir)/nlattr_ifla_port.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_te $(srcdir)/nlattr_ifla_xdp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/nlattr_ifla_xdp-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/nlattr_inet_diag_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -922,9 +1309,45 @@ $(srcdir)/oldstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/open.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/open_tree.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/open_tree-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/openat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/openat2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v-y-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v-y-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v-y-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/orphaned_process_group.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -952,9 +1375,45 @@ $(srcdir)/personality-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_te $(srcdir)/personality-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/pidfd_getfd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_getfd-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_getfd-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open--decode-fd-path.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open--decode-fd-pidfd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open--decode-fd-socket.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/pidfd_send_signal.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/pidfd_send_signal--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/pipe2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1021,12 +1480,21 @@ $(srcdir)/printstrn-umoven-undumpable.gen.test: $(abs_srcdir)/gen_tests.sh $(src $(srcdir)/prlimit64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/prlimit64--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/process_vm_readv.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/process_vm_readv--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/process_vm_writev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/process_vm_writev--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/pselect6.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1078,9 +1546,15 @@ $(srcdir)/readlinkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/reboot.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/recv-MSG_TRUNC.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/recvfrom.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/recvfrom-MSG_TRUNC.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/recvmmsg-timeout.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1129,6 +1603,9 @@ $(srcdir)/rt_sigprocmask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_test $(srcdir)/rt_sigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/rt_sigqueueinfo--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/rt_sigreturn.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1141,6 +1618,9 @@ $(srcdir)/rt_sigtimedwait.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/rt_tgsigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/rt_tgsigqueueinfo--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/s390_guarded_storage.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1171,15 +1651,27 @@ $(srcdir)/sched_rr_get_interval.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/g $(srcdir)/sched_xetaffinity.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/sched_xetaffinity--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sched_xetattr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/sched_xetattr--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sched_xetparam.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/sched_xetparam--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sched_xetscheduler.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/sched_xetscheduler--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sched_yield.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1201,6 +1693,12 @@ $(srcdir)/select-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/semop.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/semop-indirect.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/semtimedop.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sendfile.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1210,6 +1708,15 @@ $(srcdir)/sendfile64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/set_mempolicy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/set_mempolicy-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/set_mempolicy-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/set_mempolicy-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/setdomainname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1303,6 +1810,9 @@ $(srcdir)/signal.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/signal_receive.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/signal_receive--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/signalfd4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1336,6 +1846,9 @@ $(srcdir)/so_peercred-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_te $(srcdir)/so_peercred-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/so_peercred--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sock_filter-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1381,9 +1894,147 @@ $(srcdir)/statfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/statfs64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/status-all.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-failed.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-failed-long.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-failed-status.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-none.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-successful.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-successful-long.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-successful-status.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-unfinished.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/statx.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/strace--absolute-timestamps.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time-precision-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time-precision-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time-precision-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time-precision-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-unix-precision-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-unix-precision-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-unix-precision-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-unix-precision-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--follow-forks-output-separately.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--strings-in-hex.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--strings-in-hex-all.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--strings-in-hex-non-ascii.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-unix-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-unix-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-unix-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-unix-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace-n.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace-x.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace-xx.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/swap.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1414,6 +2065,24 @@ $(srcdir)/syslog.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/tee.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/tgkill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/tgkill--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/threads-execve--quiet-thread-execve.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/threads-execve-q.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/threads-execve-qq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/threads-execve-qqq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/time.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1432,6 +2101,18 @@ $(srcdir)/times.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/times-fail.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/tkill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/tkill--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/trace_clock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/trace_creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/trace_fstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1474,6 +2155,9 @@ $(srcdir)/trace_statfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests. $(srcdir)/trace_statfs_like.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/trie_test.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/truncate.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1495,6 +2179,9 @@ $(srcdir)/umovestr-illptr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/umovestr3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/umovestr_cached_adjacent.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/unlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1561,14 +2248,23 @@ $(srcdir)/xattr-strings.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests $(srcdir)/xet_robust_list.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/xet_robust_list--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/xetitimer.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/xetpgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/xetpgid--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/xetpriority.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/xetpriority--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/xettimeofday.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ diff --git a/tests-mx32/gen_tests.in b/tests-mx32/gen_tests.in index 487b9608..359462a1 100644 --- a/tests-mx32/gen_tests.in +++ b/tests-mx32/gen_tests.in @@ -1,6 +1,6 @@ # Input for gen_tests.sh # -# Copyright (c) 2017-2019 The strace developers. +# Copyright (c) 2017-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -9,7 +9,7 @@ _newselect _newselect-P -e trace=_newselect -P /dev/full 9>>/dev/full accept -a22 accept4 -a37 -access -a30 -P access_sample +access -a30 --trace-path=access_sample acct -a20 add_key -a30 -s12 adjtimex -a15 @@ -31,13 +31,44 @@ clock test_trace_expr 'times|fcntl.*' -e/clock clock_adjtime -a37 clock_nanosleep -e trace=clock_nanosleep,clock_gettime clock_xettime -a36 -e trace=clock_getres,clock_gettime,clock_settime +clone3 -a16 +clone3-Xabbrev -a16 -Xabbrev -e trace=clone3 +clone3-Xraw -a16 -Xraw -e trace=clone3 +clone3-Xverbose -a16 -Xverbose -e trace=clone3 +clone3-success-Xabbrev +clone3-success.test -a16 -Xabbrev +clone3-success-Xraw +clone3-success.test -a16 -Xraw +clone3-success-Xverbose +clone3-success.test -a16 -Xverbose +clone_parent +clone_ptrace.test +clone_parent--quiet-exit +clone_ptrace.test --quiet=exit,personality +clone_parent-q +clone_ptrace.test -q +clone_parent-qq +clone_ptrace.test -qq +clone_ptrace--quiet-attach +clone_ptrace.test --quiet=attach,personality +clone_ptrace--quiet-exit +clone_ptrace.test --quiet=exit,personality +clone_ptrace-q +clone_ptrace.test -q +clone_ptrace-qq +clone_ptrace.test -qq +close_range -a21 7>>/dev/full +close_range-P -a21 --trace=close_range -P /dev/full 7>>/dev/full +close_range-y -a33 --trace=close_range -y 7>>/dev/full +close_range-yy -a33 --trace=close_range -yy 7>>/dev/full copy_file_range creat -a20 delete_module -a23 +dev--decode-fds-dev -a30 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" -e decode-fds=dev +dev--decode-fds-path -a19 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" -e decode-fds=path +dev--decode-fds-socket -a19 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" --decode-fds=socket dev-yy -a30 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" -yy -dup -a8 -dup2 -a13 -dup3 -a24 +dup -a7 9>>/dev/full +dup-P -a7 --trace=dup -P /dev/full 9>>/dev/full +dup-y -a8 --trace=dup -y 9>>/dev/full +dup-yy -a8 --trace=dup -yy 9>>/dev/full +dup2 -a11 9>>/dev/full +dup2-P -a11 --trace=dup2 -P /dev/full 9>>/dev/full +dup2-y -a13 --trace=dup2 -y 9>>/dev/full +dup2-yy -a13 --trace=dup2 -yy 9>>/dev/full +dup3 -a13 7>>/dev/full +dup3-P -a13 --trace=dup3 -P /dev/full 7>>/dev/full +dup3-y -a15 --trace=dup3 -y 7>>/dev/full +dup3-yy -a15 --trace=dup3 -yy 7>>/dev/full epoll_create -a17 epoll_create1 -a28 epoll_ctl @@ -46,7 +77,12 @@ epoll_wait -a26 erestartsys -a34 -e signal=none -e trace=recvfrom execveat execveat-v -v -e trace=execveat -faccessat -P $NAME.sample +faccessat-P -a23 --trace=faccessat -P /dev/full +faccessat-y +faccessat.test -a24 -y +faccessat-yy +faccessat.test -a24 -yy +faccessat2-P -a27 --trace=faccessat2 -P /dev/full +faccessat2-y +faccessat2.test -a28 -y +faccessat2-yy +faccessat2.test -a28 -yy fadvise64_64 +fadvise64.test fallocate -a18 fanotify_init @@ -61,13 +97,23 @@ fchown -a16 fchown32 -a18 fchownat fcntl -a8 +fcntl--pidns-translation test_pidns -a8 -e trace=fcntl fcntl64 -a8 +fcntl64--pidns-translation test_pidns -a8 -e trace=fcntl64 fdatasync -a14 file_handle -e trace=name_to_handle_at,open_by_handle_at file_ioctl +ioctl.test +filter_seccomp . "${srcdir=.}/filter_seccomp.sh"; test_prog_set --seccomp-bpf -f +filter_seccomp-flag ../$NAME finit_module -a25 flock -a19 fork-f -a26 -qq -f -e signal=none -e trace=chdir +fsconfig -s300 -y +fsconfig-P -s300 -y -P /dev/full -e trace=fsconfig +fsmount -a18 -y +fsopen -a35 +fspick -a27 -y +fspick-P -a27 -y -P /dev/full -e trace=fspick fstat -a15 -v -P stat.sample fstat-Xabbrev -a15 -v -Xabbrev -P stat.sample -e trace=fstat fstat-Xraw -a15 -v -Xraw -P stat.sample -e trace=fstat @@ -76,7 +122,7 @@ fstat64 -a17 -v -P stat.sample fstat64-Xabbrev -a17 -Xabbrev -v -P stat.sample -e trace=fstat64 fstat64-Xraw -a17 -Xraw -v -P stat.sample -e trace=fstat64 fstat64-Xverbose -a17 -Xverbose -v -P stat.sample -e trace=fstat64 -fstatat64 -a32 -v -P stat.sample -P /dev/full +fstatat64 -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full fstatfs -a18 fstatfs64 -a24 fsync -a10 @@ -87,19 +133,29 @@ futimesat -a28 get_mempolicy -s3 -a38 getcpu -a25 getcwd -a18 -getdents -a22 -v -getdents64 -a24 -v +getdents -a31 +getdents-v -a22 -v --trace=getdents +getdents64 -a33 +getdents64-v -a24 -v --trace=getdents64 getegid +getuid.test +getegid-creds +getuid.test getegid32 +getuid.test +getegid32-creds +getuid.test geteuid +getuid.test +geteuid-creds +getuid.test geteuid32 +getuid.test +geteuid32-creds +getuid.test getgid +getuid.test +getgid-creds +getuid.test getgid32 +getuid.test +getgid32-creds +getuid.test getgroups -a17 getgroups32 -a19 getpeername -a27 getpgrp -a10 +getpgrp--pidns-translation test_pidns -e trace=getpgrp -a10 getpid -a9 +getpid--pidns-translation test_pidns -e trace=getpid -a9 getppid -a10 getrandom -a32 -s3 getresgid -a25 @@ -109,23 +165,59 @@ getresuid32 -a27 getrlimit -a27 getrusage -v getsid -a10 +getsid--pidns-translation test_pidns -e trace=getsid -a10 getsockname -a27 gettid -a9 +getuid-creds +getuid.test getuid32 +getuid.test -getxxid -a10 -e trace=getxpid,getxuid,getxgid +getuid32-creds +getuid.test +getxgid -a10 +getxpid -a10 +getxuid -a10 group_req -e trace=setsockopt inet-cmsg -e trace=recvmsg init_module -a27 inotify -a23 -e trace=inotify_add_watch,inotify_rm_watch +inotify_init -a15 inotify_init1 -a27 +inotify_init1-y -a27 -y -e trace=inotify_init1 io_uring_enter -y io_uring_register -y io_uring_setup -a26 -y ioctl_block +ioctl.test ioctl_dm +ioctl.test -s9 ioctl_dm-v +ioctl.test -v -s9 -ioctl_evdev +ioctl.test -ioctl_evdev-v +ioctl.test -v +ioctl_evdev +ioctl.test -a26 +ioctl_evdev-Xabbrev +ioctl.test -a26 -Xabbrev +ioctl_evdev-Xraw +ioctl.test -a28 -Xraw +ioctl_evdev-Xverbose +ioctl.test -a41 -Xverbose +ioctl_evdev-v +ioctl.test -a26 -v +ioctl_evdev-v-Xabbrev +ioctl.test -a26 -v -Xabbrev +ioctl_evdev-v-Xraw +ioctl.test -a28 -v -Xraw +ioctl_evdev-v-Xverbose +ioctl.test -a41 -v -Xverbose +ioctl_evdev-success-Xabbrev +ioctl_evdev-success.test -Xabbrev +ioctl_evdev-success-Xraw +ioctl_evdev-success.test -a27 -Xraw +ioctl_evdev-success-Xverbose +ioctl_evdev-success.test -a43 -Xverbose +ioctl_evdev-success-v +ioctl_evdev-success.test -a26 -v +ioctl_evdev-success-v-Xabbrev +ioctl_evdev-success.test -v -Xabbrev +ioctl_evdev-success-v-Xraw +ioctl_evdev-success.test -a27 -v -Xraw +ioctl_evdev-success-v-Xverbose +ioctl_evdev-success.test -a43 -v -Xverbose +ioctl_hdio +ioctl.test -a27 +ioctl_hdio-Xabbrev +ioctl.test -a27 -Xabbrev +ioctl_hdio-Xraw +ioctl.test -a20 -Xraw +ioctl_hdio-Xverbose +ioctl.test -a39 -Xverbose +ioctl_hdio-v +ioctl.test -a27 -v +ioctl_hdio-v-Xabbrev +ioctl.test -a27 -v -Xabbrev +ioctl_hdio-v-Xraw +ioctl.test -a20 -v -Xraw +ioctl_hdio-v-Xverbose +ioctl.test -a39 -v -Xverbose +ioctl_hdio-success +ioctl-success.sh -a27 +ioctl_hdio-success-Xabbrev +ioctl-success.sh -a27 -Xabbrev +ioctl_hdio-success-Xraw +ioctl-success.sh -a20 -Xraw +ioctl_hdio-success-Xverbose +ioctl-success.sh -a39 -Xverbose +ioctl_hdio-success-v +ioctl-success.sh -a27 -v +ioctl_hdio-success-v-Xabbrev +ioctl-success.sh -a27 -v -Xabbrev +ioctl_hdio-success-v-Xraw +ioctl-success.sh -a20 -v -Xraw +ioctl_hdio-success-v-Xverbose +ioctl-success.sh -a39 -v -Xverbose ioctl_inotify +ioctl.test ioctl_kvm_run +ioctl.test -a36 -y ioctl_kvm_run-v +ioctl.test -v -a36 -y @@ -137,6 +229,7 @@ ioctl_mtd +ioctl.test ioctl_nbd +ioctl.test -y ioctl_nsfs +ioctl.test -esignal=none ioctl_perf +ioctl.test +ioctl_perf-success +ioctl-success.sh -a35 ioctl_ptp +ioctl.test ioctl_random +ioctl.test ioctl_rtc +ioctl.test @@ -145,11 +238,29 @@ ioctl_scsi +ioctl.test ioctl_sg_io_v3 +ioctl.test ioctl_sg_io_v4 +ioctl.test ioctl_sock_gifconf +ioctl.test -a28 -s1 +ioctl_tee +ioctl.test ioctl_uffdio +ioctl.test ioctl_v4l2 +ioctl.test +ioctl_v4l2-Xabbrev +ioctl.test -Xabbrev +ioctl_v4l2-Xraw +ioctl.test -Xraw +ioctl_v4l2-Xverbose +ioctl.test -Xverbose +ioctl_v4l2-v +ioctl.test -v +ioctl_v4l2-v-Xabbrev +ioctl.test -v -Xabbrev +ioctl_v4l2-v-Xraw +ioctl.test -v -Xraw +ioctl_v4l2-v-Xverbose +ioctl.test -v -Xverbose +ioctl_v4l2-success +ioctl-success.sh -a29 +ioctl_v4l2-success-Xabbrev +ioctl-success.sh -a29 -Xabbrev +ioctl_v4l2-success-Xraw +ioctl-success.sh -a27 -Xraw +ioctl_v4l2-success-Xverbose +ioctl-success.sh -a30 -Xverbose +ioctl_v4l2-success-v +ioctl-success.sh -a29 -v +ioctl_v4l2-success-v-Xabbrev +ioctl-success.sh -a29 -v -Xabbrev +ioctl_v4l2-success-v-Xraw +ioctl-success.sh -a27 -v -Xraw +ioctl_v4l2-success-v-Xverbose +ioctl-success.sh -a29 -v -Xverbose +ioctl_watchdog +ioctl.test ioperm -a27 iopl -a8 ioprio -a18 -e trace=ioprio_get,ioprio_set +ioprio--pidns-translation test_pidns -a18 -e trace=ioprio_get,ioprio_set ioprio-Xabbrev -a18 -e trace=ioprio_get,ioprio_set -Xabbrev ioprio-Xraw -a18 -e trace=ioprio_get,ioprio_set -Xraw ioprio-Xverbose -a18 -e trace=ioprio_get,ioprio_set -Xverbose @@ -160,18 +271,19 @@ ipc_msg-Xabbrev +ipc.sh -Xabbrev -a26 ipc_msg-Xraw +ipc.sh -Xraw -a16 ipc_msg-Xverbose +ipc.sh -Xverbose -a34 ipc_msgbuf-Xabbrev +ipc_msgbuf.test -Xabbrev -ipc_msgbuf-Xraw +ipc_msgbuf.test -Xraw -a22 +ipc_msgbuf-Xraw +ipc_msgbuf.test -Xraw -a19 ipc_msgbuf-Xverbose +ipc_msgbuf.test -Xverbose ipc_sem +ipc.sh -a29 ipc_sem-Xabbrev +ipc.sh -Xabbrev -a29 ipc_sem-Xraw +ipc.sh -Xraw -a19 ipc_sem-Xverbose +ipc.sh -Xverbose -a36 -ipc_shm +ipc.sh -a29 -ipc_shm-Xabbrev +ipc.sh -Xabbrev -a29 +ipc_shm +ipc.sh -a26 +ipc_shm-Xabbrev +ipc.sh -Xabbrev -a26 ipc_shm-Xraw +ipc.sh -Xraw -a19 -ipc_shm-Xverbose +ipc.sh -Xverbose -a36 +ipc_shm-Xverbose +ipc.sh -Xverbose -a34 kcmp -a22 kcmp-y -a22 -y -e trace=kcmp +kcmp-y--pidns-translation test_pidns -a22 -y -e trace=kcmp kern_features -a16 kernel_version -a16 -v -e trace=bpf kernel_version-Xabbrev -a16 -Xabbrev -v -e trace=bpf @@ -184,21 +296,29 @@ keyctl-Xabbrev -a31 -s10 -e trace=keyctl -Xabbrev keyctl-Xraw -a13 -s10 -e trace=keyctl -Xraw keyctl-Xverbose -a41 -s10 -e trace=keyctl -Xverbose kill -a12 -esignal=none +kill--pidns-translation test_pidns -a12 -e trace=kill -esignal=none +ksysent ../$NAME lchown -a30 lchown32 -a32 link linkat lookup_dcookie -a27 -lstat -a32 -v -P stat.sample -P /dev/full -lstat64 -a32 -v -P stat.sample -P /dev/full +lstat -a31 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full +lstat64 -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full madvise -a33 +maybe_switch_current_tcp -a30 -f -e trace=execveat +maybe_switch_current_tcp--quiet-thread-execve -a30 -s48 -f -e trace=execveat --quiet=personality,thread-execve mbind +mbind-Xabbrev -Xabbrev -e trace=mbind +mbind-Xraw -a33 -Xraw -e trace=mbind +mbind-Xverbose -Xverbose -e trace=mbind membarrier -a36 memfd_create memfd_create-Xabbrev -Xabbrev -e trace=memfd_create memfd_create-Xraw -a30 -Xraw -e trace=memfd_create memfd_create-Xverbose -Xverbose -e trace=memfd_create migrate_pages -a33 +migrate_pages--pidns-translation test_pidns -a33 -e trace=migrate_pages mincore -a22 mkdir -a20 mkdirat -a28 @@ -223,10 +343,13 @@ mount -a33 mount-Xabbrev -a33 -e trace=mount -Xabbrev mount-Xraw -a33 -e trace=mount -Xraw mount-Xverbose -a33 -e trace=mount -Xverbose +move_mount -y +move_mount-P -y -P /dev/full -e trace=move_mount move_pages -s3 move_pages-Xabbrev -s3 -e trace=move_pages -Xabbrev move_pages-Xraw -s3 -a36 -e trace=move_pages -Xraw move_pages-Xverbose -s3 -e trace=move_pages -Xverbose +move_pages--pidns-translation test_pidns -s3 -e trace=move_pages mq -a32 -e trace=mq_getsetattr,mq_open,mq_unlink mq_sendrecv -a14 -e trace=mq_open,mq_notify,mq_timedsend,mq_timedreceive,mq_unlink mq_sendrecv-read -eread=0 -a14 -e trace=mq_open,mq_notify,mq_timedsend,mq_timedreceive,mq_unlink @@ -236,12 +359,17 @@ msg_control-v -v -a21 -e trace=sendmsg msg_name -a20 -e trace=recvmsg munlockall -a13 nanosleep -a20 +net--decode-fds-dev-netlink +net-yy-netlink.test --decode-fds=dev +net--decode-fds-none-netlink +net-yy-netlink.test --decode-fds=none -a9 +net--decode-fds-path-netlink +net-yy-netlink.test --decode-fds=path +net--decode-fds-socket-netlink +net-yy-netlink.test --decode-fds=socket net-icmp_filter -e trace=getsockopt,setsockopt net-packet_mreq -e trace=setsockopt net-packet_mreq-Xabbrev -e trace=setsockopt -Xabbrev net-packet_mreq-Xraw -e trace=setsockopt -Xraw net-packet_mreq-Xverbose -e trace=setsockopt -Xverbose net-sockaddr -a24 -e trace=connect +net-sockaddr--pidns-translation test_pidns -a24 -e trace=connect net-tpacket_req -e trace=setsockopt net-tpacket_stats -e trace=getsockopt net-yy-inet6 +net-yy-inet.test @@ -254,7 +382,7 @@ netlink_protocol -e trace=sendto netlink_route +netlink_sock_diag.test netlink_selinux +netlink_sock_diag.test netlink_xfrm +netlink_sock_diag.test -newfstatat -a32 -v -P stat.sample -P /dev/full +newfstatat -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full nfnetlink_acct +netlink_sock_diag.test nfnetlink_cthelper +netlink_sock_diag.test nfnetlink_ctnetlink +netlink_sock_diag.test @@ -279,6 +407,7 @@ nlattr_ifla_brport +netlink_sock_diag.test nlattr_ifla_linkinfo +netlink_sock_diag.test nlattr_ifla_port +netlink_sock_diag.test nlattr_ifla_xdp +netlink_sock_diag.test +nlattr_ifla_xdp-y +netlink_sock_diag.test -y; exec 9>/dev/full oldstat -a32 -v -P stat.sample -P /dev/full open -a30 -P $NAME.sample +open_tree -a30 -y +open_tree-P -a30 --decode-fds -P /dev/full -e trace=open_tree openat -a36 -P $NAME.sample +openat2 -a35 +openat2-Xabbrev --trace=openat2 -a35 -Xabbrev +openat2-Xraw --trace=openat2 -a32 -Xraw +openat2-Xverbose --trace=openat2 -a35 -Xverbose +openat2-v --trace=openat2 -a35 -v +openat2-v-y --trace=openat2 -a36 -v -y >/dev/full -semop -a32 -e trace=semop,semtimedop +semop -a32 +semop-indirect -a32 -e trace=semop +semtimedop sendfile -a27 sendfile64 -a29 -set_mempolicy -s3 -a35 +set_mempolicy -a34 -s3 +set_mempolicy-Xabbrev -a34 -s3 -Xabbrev -e trace=set_mempolicy +set_mempolicy-Xraw -a24 -s3 -Xraw -e trace=set_mempolicy +set_mempolicy-Xverbose -s3 -Xverbose -e trace=set_mempolicy setdomainname -a24 setfsgid -a12 setfsgid32 -a14 @@ -439,6 +608,7 @@ sigaction -a31 siginfo -e trace=none signal -a25 -e signal=none -e trace='/^signal$' signal_receive -a16 -e trace=kill +signal_receive--pidns-translation test_pidns -a16 -e trace=kill signalfd4 sigpending -a15 sigprocmask -a34 @@ -450,6 +620,7 @@ so_peercred -e trace=getsockopt so_peercred-Xabbrev -e trace=getsockopt -Xabbrev so_peercred-Xraw -e trace=getsockopt -Xraw -a39 so_peercred-Xverbose -e trace=getsockopt -Xverbose +so_peercred--pidns-translation test_pidns -e trace=getsockopt sock_filter-v -v -e trace=getsockopt,setsockopt sock_filter-v-Xabbrev -v -e trace=getsockopt,setsockopt -X abbrev sock_filter-v-Xraw -a 37 -v -e trace=getsockopt,setsockopt -X raw @@ -461,11 +632,57 @@ socketcall -a20 sockopt-sol_netlink -e trace=getsockopt,setsockopt sockopt-timestamp -e trace=recvmsg splice -stat -a32 -v -P stat.sample -P /dev/full -stat64 -a32 -v -P stat.sample -P /dev/full +stat -a30 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full +stat64 -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full statfs -a17 statfs64 -a23 -statx -a32 -v -P stat.sample -P /dev/full +status-all -a10 -e trace=chdir --status=detached,failed,successful,unavailable,unfinished +status-failed -a10 -e trace=chdir -Z +status-failed-long -a10 -e trace=chdir --failed-only +status-failed-status -a10 -e trace=chdir -e status=failed +status-none -e trace=all --status=none +status-successful -a10 -e trace=chdir -z +status-successful-long -a10 -e trace=chdir --successful-only +status-successful-status -a10 -e trace=chdir --status=successful +status-unfinished -a10 -e trace=all --status=unfinished +statx -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full +strace--absolute-timestamps +strace-t.test --absolute-timestamps +strace--absolute-timestamps-format-time +strace-t.test --absolute-timestamps=format:time +strace--absolute-timestamps-format-time-precision-s +strace-t.test --absolute-timestamps=format:time --absolute-timestamps=precision:s +strace--absolute-timestamps-format-time-precision-ms +strace-tt.test 3 --absolute-timestamps=format:time --absolute-timestamps=precision:ms +strace--absolute-timestamps-format-time-precision-us +strace-tt.test 6 --absolute-timestamps=format:time --absolute-timestamps=precision:us +strace--absolute-timestamps-format-time-precision-ns +strace-tt.test 9 --absolute-timestamps=format:time --absolute-timestamps=precision:ns +strace--absolute-timestamps-format-unix-precision-s +strace-ttt.test 0 --absolute-timestamps=format:unix --absolute-timestamps=precision:s +strace--absolute-timestamps-format-unix-precision-ms +strace-ttt.test 3 --absolute-timestamps=precision:ms --absolute-timestamps=format:unix +strace--absolute-timestamps-format-unix-precision-us +strace-ttt.test 6 --absolute-timestamps=precision:us --absolute-timestamps=format:unix +strace--absolute-timestamps-format-unix-precision-ns +strace-ttt.test 9 --absolute-timestamps=format:unix --absolute-timestamps=precision:ns +strace--follow-forks-output-separately +strace-ff.test --follow-forks --output-separately +strace--relative-timestamps +strace-r.test --relative-timestamps +strace--relative-timestamps-s +strace-r.test --relative-timestamps=s +strace--relative-timestamps-ms +strace-r.test --relative-timestamps=ms +strace--relative-timestamps-us +strace-r.test --relative-timestamps=us +strace--relative-timestamps-ns +strace-r.test --relative-timestamps=ns +strace--syscall-times +strace-T.test --syscall-times +strace--syscall-times-s +strace-T.test --syscall-times=s +strace--syscall-times-ms +strace-T.test --syscall-times=ms +strace--syscall-times-us +strace-T.test --syscall-times=us +strace--syscall-times-ns +strace-T.test --syscall-times=ns +strace--strings-in-hex --trace=chdir --strings-in-hex --columns=18 +strace--strings-in-hex-all --trace=chdir --strings-in-hex=all --columns=18 +strace--strings-in-hex-non-ascii --trace=chdir --strings-in-hex=non-ascii --columns=12 +strace--timestamps +strace-t.test --timestamps +strace--timestamps-time +strace-t.test --timestamps=time +strace--timestamps-time-s +strace-t.test --timestamps=time,s +strace--timestamps-time-ms +strace-tt.test 3 --timestamps=time,ms +strace--timestamps-time-us +strace-tt.test 6 --timestamps=time,us +strace--timestamps-time-ns +strace-tt.test 9 --timestamps=time,ns +strace--timestamps-unix-s +strace-ttt.test 0 --timestamps=unix,s +strace--timestamps-unix-ms +strace-ttt.test 3 --timestamps=unix,ms +strace--timestamps-unix-us +strace-ttt.test 6 --timestamps=unix,us +strace--timestamps-unix-ns +strace-ttt.test 9 --timestamps=unix,ns +strace-n -e trace=listen -n -qq -a 12 +strace-x -e trace=chdir -x -a 12 +strace-xx -e trace=chdir -xx -a 18 swap -a23 -e trace=swapon,swapoff sxetmask -a11 -e trace=sgetmask,ssetmask symlink -a34 @@ -474,14 +691,24 @@ sync -a7 sync_file_range sync_file_range2 sysinfo -a14 -syslog -a36 +syslog -a35 tee +tgkill -a15 --signal='!cont' +tgkill--pidns-translation test_pidns -a15 --signal='!cont' -e trace=tgkill +threads-execve--quiet-thread-execve +threads-execve.test -s40 --quiet=personality,thread-execve +threads-execve-q +threads-execve.test -q +threads-execve-qq +threads-execve.test -qq +threads-execve-qqq +threads-execve.test -qqq time -a10 timer_create timer_xettime -e trace=timer_create,timer_settime,timer_gettime timerfd_xettime -e trace=timerfd_create,timerfd_settime,timerfd_gettime times -esignal=none times-fail -a12 -e trace=times +tkill -a12 --signal='!cont' +tkill--pidns-translation test_pidns --signal='!cont' -a12 -e trace=tkill +trace_clock test_trace_expr 'clock_nanosleep|times' -e%clock +trace_creds test_trace_expr '([gs]et[^p]*([gu]id|groups)|caps|prctl|[fl]?chown|print(path-umovestr|strn-umoven)-undumpable|ptrace|quotactl|rt_sigtimedwait|rt_(tg)?sigqueueinfo).*' -e%creds trace_fstat test_trace_expr '' -e%fstat -v -P stat.sample -P /dev/full trace_fstatfs test_trace_expr '' -e%fstatfs trace_lstat test_trace_expr '' -e%lstat -v -P stat.sample -P /dev/full @@ -496,6 +723,7 @@ trace_stat test_trace_expr '' -e%stat -v -P stat.sample -P /dev/full trace_stat_like test_trace_expr '' -e%%stat -v -P stat.sample -P /dev/full trace_statfs test_trace_expr '' -e%statfs trace_statfs_like test_trace_expr '' -e%%statfs +trie_test run_prog truncate truncate64 ugetrlimit -a28 @@ -503,6 +731,7 @@ umask -a11 umoven-illptr -a36 -e trace=nanosleep umovestr-illptr -a11 -e trace=chdir umovestr3 -a14 -e trace=chdir +umovestr_cached_adjacent +umovestr_cached.test 3 unlink -a24 unlinkat -a35 unshare -a11 @@ -525,7 +754,10 @@ waitpid -a28 xattr -a22 -e trace=getxattr,fgetxattr,lgetxattr,setxattr,fsetxattr,lsetxattr,listxattr,flistxattr,llistxattr,removexattr,fremovexattr,lremovexattr xattr-strings -a22 -s 4 -e trace=fsetxattr xet_robust_list -a24 -e trace=get_robust_list,set_robust_list +xet_robust_list--pidns-translation test_pidns -a24 -e trace=get_robust_list,set_robust_list xetitimer -a29 -e trace=setitimer,getitimer xetpgid -a11 -e trace=getpgid,setpgid -xetpriority -a29 -e trace=getpriority,setpriority +xetpgid--pidns-translation test_pidns -a11 -e trace=getpgid,setpgid +xetpriority -a27 -e trace=getpriority,setpriority +xetpriority--pidns-translation test_pidns -a27 -e trace=getpriority,setpriority xettimeofday -a20 -e trace=gettimeofday,settimeofday diff --git a/tests-mx32/get_mempolicy.c b/tests-mx32/get_mempolicy.c index 7667bdb0..c2e9fa69 100644 --- a/tests-mx32/get_mempolicy.c +++ b/tests-mx32/get_mempolicy.c @@ -1,14 +1,14 @@ /* * Check decoding of get_mempolicy syscall. * - * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 Dmitry V. Levin * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_get_mempolicy @@ -16,7 +16,7 @@ # include # include "xlat.h" -# include "xlat/policies.h" +# include "xlat/mpol_modes.h" # define MAX_STRLEN 3 # define NLONGS(n) ((n + 8 * sizeof(long) - 2) \ @@ -68,20 +68,20 @@ main(void) rc = syscall(__NR_get_mempolicy, mode, nodemask, maxnode, addr, flags); printf("get_mempolicy(%p, %p, %lu, %#lx, %s|%#lx) = %ld %s (%m)\n", mode, nodemask, maxnode, addr, - "MPOL_F_NODE|MPOL_F_ADDR", - flags & ~3, rc, errno2name()); + "MPOL_F_NODE|MPOL_F_ADDR|MPOL_F_MEMS_ALLOWED", + flags & ~7, rc, errno2name()); mode = tail_alloc(sizeof(*mode)); rc = syscall(__NR_get_mempolicy, mode, 0, 0, 0, 0); printf("get_mempolicy(["); - printxval(policies, (unsigned) *mode, "MPOL_???"); + printxval(mpol_modes, (unsigned) *mode, "MPOL_???"); printf("], NULL, 0, NULL, 0) = %ld\n", rc); *mode = -1; rc = syscall(__NR_get_mempolicy, mode, 0, 0, mode - 1, 2); printf("get_mempolicy(["); - printxval(policies, (unsigned) *mode, "MPOL_???"); + printxval(mpol_modes, (unsigned) *mode, "MPOL_???"); printf("], NULL, 0, %p, MPOL_F_ADDR) = %ld\n", mode - 1, rc); maxnode = get_page_size() * 8; diff --git a/tests-mx32/get_process_reaper.c b/tests-mx32/get_process_reaper.c new file mode 100644 index 00000000..2cc69060 --- /dev/null +++ b/tests-mx32/get_process_reaper.c @@ -0,0 +1,108 @@ +/* + * Print the process reaper id. + * + * Copyright (c) 2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include +#include + +/* PARENT - CHILD - GRANDCHILD */ + +static int +grandchild(int read_fd, int write_fd) +{ + /* wait for notification from PARENT about CHILD completion */ + pid_t pid; + if (read(read_fd, &pid, sizeof(pid)) != 0) + perror_msg_and_fail("read"); + + /* write ppid to PARENT */ + pid = getppid(); + if (write(write_fd, &pid, sizeof(pid)) != sizeof(pid)) + perror_msg_and_fail("write"); + + _exit(0); +} + +static int +child(int read_fd, int write_fd) +{ + pid_t pid = fork(); + if (pid < 0) + perror_msg_and_fail("fork"); + + if (!pid) + return grandchild(read_fd, write_fd); + else + _exit(0); +} + +static int +parent(pid_t pid, int read_fd, int write_fd) +{ + /* wait for CHILD completion */ + int status; + if (waitpid(pid, &status, 0) != pid) + perror_msg_and_fail("waitpid"); + if (status != 0) + error_msg_and_fail("status %x", status); + + /* notify GRANDCHILD about CHILD completion */ + close(write_fd), + write_fd = -1; + + /* read ppid of GRANDCHILD */ + if (read(read_fd, &pid, sizeof(pid)) != sizeof(pid)) + perror_msg_and_fail("read"); + + printf("%d\n", pid); + return 0; +} + +int +main(void) +{ + int parent_grandchild_fds[2]; +#define parent_read_fd parent_grandchild_fds[0] +#define grandchild_write_fd parent_grandchild_fds[1] + + int grandchild_parent_fds[2]; +#define grandchild_read_fd grandchild_parent_fds[0] +#define parent_write_fd grandchild_parent_fds[1] + + if (pipe(parent_grandchild_fds) || + pipe(grandchild_parent_fds)) + perror_msg_and_fail("pipe"); + + pid_t pid = fork(); + if (pid < 0) + perror_msg_and_fail("fork"); + + if (!pid) { + /* CHILD */ + close(parent_read_fd), + parent_read_fd = -1; + + close(parent_write_fd), + parent_write_fd = -1; + + return child(grandchild_read_fd, + grandchild_write_fd); + } else { + /* PARENT */ + close(grandchild_read_fd), + grandchild_read_fd = -1; + + close(grandchild_write_fd), + grandchild_write_fd = -1; + + return parent(pid, parent_read_fd, + parent_write_fd); + } +} diff --git a/tests-mx32/get_sigset_size.c b/tests-mx32/get_sigset_size.c index f58d1f51..7921bb1e 100644 --- a/tests-mx32/get_sigset_size.c +++ b/tests-mx32/get_sigset_size.c @@ -2,6 +2,7 @@ * Find out the size of kernel's sigset_t. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +11,7 @@ #include "tests.h" #include #include -#include +#include "scno.h" /* * If the sigset size specified to rt_sigprocmask is not equal to the size diff --git a/tests-mx32/getcpu.c b/tests-mx32/getcpu.c index ecbaf0dc..85edf407 100644 --- a/tests-mx32/getcpu.c +++ b/tests-mx32/getcpu.c @@ -2,7 +2,7 @@ * Check decoding of getcpu syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getcpu diff --git a/tests-mx32/getcwd.c b/tests-mx32/getcwd.c index 5f9a7293..ff563ff4 100644 --- a/tests-mx32/getcwd.c +++ b/tests-mx32/getcwd.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -7,7 +7,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getcwd diff --git a/tests-mx32/getdents-v.c b/tests-mx32/getdents-v.c new file mode 100644 index 00000000..c9bd7ae3 --- /dev/null +++ b/tests-mx32/getdents-v.c @@ -0,0 +1,3 @@ +/* Check --no-abbrev decoding of getdents syscall. */ +#define VERBOSE 1 +#include "getdents.c" diff --git a/tests-mx32/getdents-v.gen.test b/tests-mx32/getdents-v.gen.test new file mode 100755 index 00000000..fc1466ac --- /dev/null +++ b/tests-mx32/getdents-v.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getdents-v -a22 -v --trace=getdents); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a22 -v --trace=getdents diff --git a/tests-mx32/getdents.c b/tests-mx32/getdents.c index 998e667f..2eb012a4 100644 --- a/tests-mx32/getdents.c +++ b/tests-mx32/getdents.c @@ -1,119 +1,42 @@ /* + * Check decoding of getdents syscall. + * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getdents -# include -# include -# include -# include -# include -# include -# include - -static const char fname[] = - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nZ"; -static const char qname[] = - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nZ"; +# define kernel_dirent_type kernel_dirent_t +# define NR_getdents __NR_getdents +# define STR_getdents "getdents" -static char buf[8192]; +# include "xgetdents.c" -static const char * -str_d_type(const unsigned char d_type) -{ - switch (d_type) { - case DT_DIR: - return "DT_DIR"; - case DT_REG: - return "DT_REG"; - default: - return "DT_UNKNOWN"; - } -} +# if VERBOSE static void -print_dirent(const kernel_dirent *d) +print_dirent(const kernel_dirent_type *d) { - const unsigned int d_name_offset = offsetof(kernel_dirent, d_name); - int d_name_len = d->d_reclen - d_name_offset - 1; - assert(d_name_len > 0); - - printf("{d_ino=%llu, d_off=%llu, d_reclen=%u, d_name=", - (unsigned long long) d->d_ino, - (unsigned long long) d->d_off, d->d_reclen); - - if (d->d_name[0] == '.') - printf("\"%.*s\"", d_name_len, d->d_name); - else - printf("\"%s\"", qname); - + const unsigned int d_name_offset = offsetof(kernel_dirent_type, d_name); + int d_name_len = (int) d->d_reclen - d_name_offset - 1; + if (d_name_len <= 0) + error_msg_and_fail("d_name_len = %d", d_name_len); + + PRINT_FIELD_U("{", *d, d_ino); + PRINT_FIELD_U(", ", *d, d_off); + PRINT_FIELD_U(", ", *d, d_reclen); + printf(", d_name="); + print_quoted_cstring(d->d_name, d_name_len); printf(", d_type=%s}", str_d_type(*((const char *) d + d->d_reclen - 1))); } - -int -main(void) -{ - static const char dname[] = "getdents.test.tmp.dir"; - - assert(!mkdir(dname, 0700)); - assert(!chdir(dname)); - (void) close(0); - assert(!creat(fname, 0600)); - assert(!close(0)); - assert(!open(".", O_RDONLY | O_DIRECTORY)); - - unsigned long count = (unsigned long) 0xfacefeeddeadbeefULL; - long rc = syscall(__NR_getdents, (long) 0xdefacedffffffffULL, NULL, - count); - printf("getdents(-1, NULL, %u) = %ld %s (%m)\n", - (unsigned) count, rc, errno2name()); - - count = (unsigned long) 0xfacefeed00000000ULL | sizeof(buf); - while ((rc = syscall(__NR_getdents, 0, buf, count))) { - kernel_dirent *d; - long i; - - if (rc < 0) - perror_msg_and_skip("getdents"); - printf("getdents(0, ["); - for (i = 0; i < rc; i += d->d_reclen) { - d = (kernel_dirent *) &buf[i]; - if (i) - printf(", "); - print_dirent(d); - } - printf("], %u) = %ld\n", (unsigned) count, rc); - } - printf("getdents(0, [], %u) = 0\n", (unsigned) count); - puts("+++ exited with 0 +++"); - assert(!unlink(fname)); - assert(!chdir("..")); - assert(!rmdir(dname)); - - return 0; -} +# endif #else diff --git a/tests-mx32/getdents.gen.test b/tests-mx32/getdents.gen.test index 0db5f20a..adcbb9c3 100755 --- a/tests-mx32/getdents.gen.test +++ b/tests-mx32/getdents.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getdents -a22 -v); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getdents -a31 ); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a22 -v +run_strace_match_diff -a31 diff --git a/tests-mx32/getdents64-v.c b/tests-mx32/getdents64-v.c new file mode 100644 index 00000000..cf782482 --- /dev/null +++ b/tests-mx32/getdents64-v.c @@ -0,0 +1,3 @@ +/* Check --no-abbrev decoding of getdents64 syscall. */ +#define VERBOSE 1 +#include "getdents64.c" diff --git a/tests-mx32/getdents64-v.gen.test b/tests-mx32/getdents64-v.gen.test new file mode 100755 index 00000000..9b49ce91 --- /dev/null +++ b/tests-mx32/getdents64-v.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getdents64-v -a24 -v --trace=getdents64); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a24 -v --trace=getdents64 diff --git a/tests-mx32/getdents64.c b/tests-mx32/getdents64.c index e0575cf4..0e46a221 100644 --- a/tests-mx32/getdents64.c +++ b/tests-mx32/getdents64.c @@ -1,125 +1,41 @@ /* + * Check decoding of getdents64 syscall. + * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getdents64 -# include -# include -# include -# include -# include -# include -# include -# include - -static const char fname[] = - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nZ"; -static const char qname[] = - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nZ"; +# define kernel_dirent_type kernel_dirent64_t +# define NR_getdents __NR_getdents64 +# define STR_getdents "getdents64" -typedef struct { - uint64_t d_ino; - uint64_t d_off; - unsigned short d_reclen; - unsigned char d_type; - char d_name[256]; -} kernel_dirent64; +# include "xgetdents.c" -static char buf[8192]; - -static const char * -str_d_type(const unsigned char d_type) -{ - switch (d_type) { - case DT_DIR: - return "DT_DIR"; - case DT_REG: - return "DT_REG"; - default: - return "DT_UNKNOWN"; - } -} +# if VERBOSE static void -print_dirent(const kernel_dirent64 *d) +print_dirent(const kernel_dirent_type *d) { - const unsigned int d_name_offset = offsetof(kernel_dirent64, d_name); - int d_name_len = d->d_reclen - d_name_offset; - assert(d_name_len > 0); - - printf("{d_ino=%" PRIu64 ", d_off=%" PRId64 - ", d_reclen=%u, d_type=%s, d_name=", - d->d_ino, d->d_off, d->d_reclen, str_d_type(d->d_type)); - - if (d->d_name[0] == '.') - printf("\"%.*s\"}", d_name_len, d->d_name); - else - printf("\"%s\"}", qname); -} - -int -main(void) -{ - static const char dname[] = "getdents64.test.tmp.dir"; - - assert(!mkdir(dname, 0700)); - assert(!chdir(dname)); - (void) close(0); - assert(!creat(fname, 0600)); - assert(!close(0)); - assert(!open(".", O_RDONLY | O_DIRECTORY)); - - unsigned long count = (unsigned long) 0xfacefeeddeadbeefULL; - long rc = syscall(__NR_getdents64, (long) 0xdefacedffffffffULL, NULL, - count); - printf("getdents64(-1, NULL, %u) = %ld %s (%m)\n", - (unsigned) count, rc, errno2name()); - - count = (unsigned long) 0xfacefeed00000000ULL | sizeof(buf); - while ((rc = syscall(__NR_getdents64, 0, buf, count))) { - kernel_dirent64 *d; - long i; - - if (rc < 0) - perror_msg_and_skip("getdents64"); - printf("getdents64(0, ["); - for (i = 0; i < rc; i += d->d_reclen) { - d = (kernel_dirent64 *) &buf[i]; - if (i) - printf(", "); - print_dirent(d); - } - printf("], %u) = %ld\n", (unsigned) count, rc); - } - printf("getdents64(0, [], %u) = 0\n", (unsigned) count); - puts("+++ exited with 0 +++"); - assert(!unlink(fname)); - assert(!chdir("..")); - assert(!rmdir(dname)); - - return 0; + const unsigned int d_name_offset = offsetof(kernel_dirent_type, d_name); + int d_name_len = (int) d->d_reclen - d_name_offset; + if (d_name_len <= 0) + error_msg_and_fail("d_name_len = %d", d_name_len); + + PRINT_FIELD_U("{", *d, d_ino); + PRINT_FIELD_U(", ", *d, d_off); + PRINT_FIELD_U(", ", *d, d_reclen); + printf(", d_type=%s, d_name=", str_d_type(d->d_type)); + print_quoted_cstring(d->d_name, d_name_len); + printf("}"); } +# endif #else diff --git a/tests-mx32/getdents64.gen.test b/tests-mx32/getdents64.gen.test index 6e24d400..de87954b 100755 --- a/tests-mx32/getdents64.gen.test +++ b/tests-mx32/getdents64.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getdents64 -a24 -v); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getdents64 -a33 ); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a24 -v +run_strace_match_diff -a33 diff --git a/tests-mx32/getegid-creds.gen.test b/tests-mx32/getegid-creds.gen.test new file mode 100755 index 00000000..7ac87f13 --- /dev/null +++ b/tests-mx32/getegid-creds.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getegid-creds +getuid.test ); do not edit. +set -- +. "${srcdir=.}/getuid.test" diff --git a/tests-mx32/getegid.c b/tests-mx32/getegid.c index 2e0754b7..d5927fea 100644 --- a/tests-mx32/getegid.c +++ b/tests-mx32/getegid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getegid @@ -16,7 +16,7 @@ int main(void) { - printf("getegid() = %ld\n", syscall(__NR_getegid)); + printf("getegid() = %s\n", sprintrc(syscall(__NR_getegid))); return 0; } diff --git a/tests-mx32/getegid32-creds.gen.test b/tests-mx32/getegid32-creds.gen.test new file mode 100755 index 00000000..c080ac0b --- /dev/null +++ b/tests-mx32/getegid32-creds.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getegid32-creds +getuid.test ); do not edit. +set -- +. "${srcdir=.}/getuid.test" diff --git a/tests-mx32/getegid32.c b/tests-mx32/getegid32.c index b7f5cb08..bbfcf94e 100644 --- a/tests-mx32/getegid32.c +++ b/tests-mx32/getegid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getegid32 diff --git a/tests-mx32/geteuid-creds.gen.test b/tests-mx32/geteuid-creds.gen.test new file mode 100755 index 00000000..8210f679 --- /dev/null +++ b/tests-mx32/geteuid-creds.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (geteuid-creds +getuid.test ); do not edit. +set -- +. "${srcdir=.}/getuid.test" diff --git a/tests-mx32/geteuid.c b/tests-mx32/geteuid.c index 430df1c6..a1defc8c 100644 --- a/tests-mx32/geteuid.c +++ b/tests-mx32/geteuid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_geteuid @@ -16,7 +16,7 @@ int main(void) { - printf("geteuid() = %ld\n", syscall(__NR_geteuid)); + printf("geteuid() = %s\n", sprintrc(syscall(__NR_geteuid))); return 0; } diff --git a/tests-mx32/geteuid32-creds.gen.test b/tests-mx32/geteuid32-creds.gen.test new file mode 100755 index 00000000..e0ced55a --- /dev/null +++ b/tests-mx32/geteuid32-creds.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (geteuid32-creds +getuid.test ); do not edit. +set -- +. "${srcdir=.}/getuid.test" diff --git a/tests-mx32/geteuid32.c b/tests-mx32/geteuid32.c index 94174f32..e6bd57d1 100644 --- a/tests-mx32/geteuid32.c +++ b/tests-mx32/geteuid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_geteuid32 diff --git a/tests-mx32/getgid-creds.gen.test b/tests-mx32/getgid-creds.gen.test new file mode 100755 index 00000000..e82e11dd --- /dev/null +++ b/tests-mx32/getgid-creds.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getgid-creds +getuid.test ); do not edit. +set -- +. "${srcdir=.}/getuid.test" diff --git a/tests-mx32/getgid.c b/tests-mx32/getgid.c index 1bd70502..c9c9f722 100644 --- a/tests-mx32/getgid.c +++ b/tests-mx32/getgid.c @@ -1,14 +1,14 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" -#ifdef __NR_getgid +#if defined __NR_getgid && (!defined __NR_getxgid || __NR_getxgid != __NR_getgid) # include # include diff --git a/tests-mx32/getgid32-creds.gen.test b/tests-mx32/getgid32-creds.gen.test new file mode 100755 index 00000000..7d379935 --- /dev/null +++ b/tests-mx32/getgid32-creds.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getgid32-creds +getuid.test ); do not edit. +set -- +. "${srcdir=.}/getuid.test" diff --git a/tests-mx32/getgid32.c b/tests-mx32/getgid32.c index c6859cf4..922c6f5f 100644 --- a/tests-mx32/getgid32.c +++ b/tests-mx32/getgid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getgid32 diff --git a/tests-mx32/getgroups.c b/tests-mx32/getgroups.c index 36c095df..c87d9874 100644 --- a/tests-mx32/getgroups.c +++ b/tests-mx32/getgroups.c @@ -2,7 +2,7 @@ * Check decoding of getgroups/getgroups32 syscalls. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -17,7 +17,7 @@ #else # include "tests.h" -# include +# include "scno.h" # ifdef __NR_getgroups diff --git a/tests-mx32/getgroups32.c b/tests-mx32/getgroups32.c index d005792d..a626d35f 100644 --- a/tests-mx32/getgroups32.c +++ b/tests-mx32/getgroups32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getgroups32 diff --git a/tests-mx32/getpgrp--pidns-translation.c b/tests-mx32/getpgrp--pidns-translation.c new file mode 100644 index 00000000..de8ceb33 --- /dev/null +++ b/tests-mx32/getpgrp--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "getpgrp.c" diff --git a/tests-mx32/getpgrp--pidns-translation.gen.test b/tests-mx32/getpgrp--pidns-translation.gen.test new file mode 100755 index 00000000..93636118 --- /dev/null +++ b/tests-mx32/getpgrp--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getpgrp--pidns-translation test_pidns -e trace=getpgrp -a10); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -e trace=getpgrp -a10 diff --git a/tests-mx32/getpgrp.c b/tests-mx32/getpgrp.c index 3d45f718..c981d79b 100644 --- a/tests-mx32/getpgrp.c +++ b/tests-mx32/getpgrp.c @@ -1,12 +1,13 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #ifdef __NR_getpgrp @@ -16,8 +17,13 @@ int main(void) { - printf("getpgrp() = %ld\n", syscall(__NR_getpgrp)); + PIDNS_TEST_INIT; + pidns_print_leader(); + printf("getpgrp() = %d%s\n", (int) syscall(__NR_getpgrp), + pidns_pid2str(PT_PGID)); + + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-mx32/getpid--pidns-translation.c b/tests-mx32/getpid--pidns-translation.c new file mode 100644 index 00000000..94b12a1a --- /dev/null +++ b/tests-mx32/getpid--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "getpid.c" diff --git a/tests-mx32/getpid--pidns-translation.gen.test b/tests-mx32/getpid--pidns-translation.gen.test new file mode 100755 index 00000000..abe2cf45 --- /dev/null +++ b/tests-mx32/getpid--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getpid--pidns-translation test_pidns -e trace=getpid -a9); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -e trace=getpid -a9 diff --git a/tests-mx32/getpid.c b/tests-mx32/getpid.c index 5e88e052..4291400d 100644 --- a/tests-mx32/getpid.c +++ b/tests-mx32/getpid.c @@ -1,14 +1,15 @@ /* - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" -#ifdef __NR_getpid +#if defined __NR_getpid && (!defined __NR_getxpid || __NR_getxpid != __NR_getpid) # include # include @@ -16,7 +17,12 @@ int main(void) { - printf("getpid() = %ld\n", syscall(__NR_getpid)); + PIDNS_TEST_INIT; + + pidns_print_leader(); + printf("getpid() = %d%s\n", (int) syscall(__NR_getpid), + pidns_pid2str(PT_TGID)); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-mx32/getppid.c b/tests-mx32/getppid.c index 718d0691..fd279763 100644 --- a/tests-mx32/getppid.c +++ b/tests-mx32/getppid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getppid @@ -16,7 +16,7 @@ int main(void) { - printf("getppid() = %ld\n", syscall(__NR_getppid)); + printf("getppid() = %s\n", sprintrc(syscall(__NR_getppid))); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-mx32/getrandom.c b/tests-mx32/getrandom.c index eb6cdb1b..ebb8c839 100644 --- a/tests-mx32/getrandom.c +++ b/tests-mx32/getrandom.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getrandom diff --git a/tests-mx32/getresgid.c b/tests-mx32/getresgid.c index 3ad2c190..ebf35212 100644 --- a/tests-mx32/getresgid.c +++ b/tests-mx32/getresgid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getresgid diff --git a/tests-mx32/getresgid32.c b/tests-mx32/getresgid32.c index b78afaed..bd8ce212 100644 --- a/tests-mx32/getresgid32.c +++ b/tests-mx32/getresgid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getresgid32 diff --git a/tests-mx32/getresuid.c b/tests-mx32/getresuid.c index 5bb2e301..8a29c172 100644 --- a/tests-mx32/getresuid.c +++ b/tests-mx32/getresuid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getresuid diff --git a/tests-mx32/getresuid32.c b/tests-mx32/getresuid32.c index 13acc695..306b9d59 100644 --- a/tests-mx32/getresuid32.c +++ b/tests-mx32/getresuid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getresuid32 diff --git a/tests-mx32/getrlimit.c b/tests-mx32/getrlimit.c index 6d3b4cd5..8a323091 100644 --- a/tests-mx32/getrlimit.c +++ b/tests-mx32/getrlimit.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getrlimit diff --git a/tests-mx32/getrusage.c b/tests-mx32/getrusage.c index 412d8a00..13defc9f 100644 --- a/tests-mx32/getrusage.c +++ b/tests-mx32/getrusage.c @@ -1,14 +1,14 @@ /* * Copyright (c) 2016 Fei Jie * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getrusage @@ -18,30 +18,41 @@ # include # include +# include "kernel_rusage.h" # include "xlat.h" # include "xlat/usagewho.h" int -invoke_print(int who, const char *who_str, struct rusage *usage) +invoke_print(int who, const char *who_str, kernel_rusage_t *usage) { int rc = syscall(__NR_getrusage, who, usage); int saved_errno = errno; printf("getrusage(%s, {ru_utime={tv_sec=%lld, tv_usec=%llu}" - ", ru_stime={tv_sec=%lld, tv_usec=%llu}, ru_maxrss=%lu" - ", ru_ixrss=%lu, ru_idrss=%lu, ru_isrss=%lu, ru_minflt=%lu" - ", ru_majflt=%lu, ru_nswap=%lu, ru_inblock=%lu" - ", ru_oublock=%lu, ru_msgsnd=%lu, ru_msgrcv=%lu" - ", ru_nsignals=%lu, ru_nvcsw=%lu, ru_nivcsw=%lu}) = %s\n", + ", ru_stime={tv_sec=%lld, tv_usec=%llu}, ru_maxrss=%llu" + ", ru_ixrss=%llu, ru_idrss=%llu, ru_isrss=%llu, ru_minflt=%llu" + ", ru_majflt=%llu, ru_nswap=%llu, ru_inblock=%llu" + ", ru_oublock=%llu, ru_msgsnd=%llu, ru_msgrcv=%llu" + ", ru_nsignals=%llu, ru_nvcsw=%llu, ru_nivcsw=%llu}) = %s\n", who_str, (long long) usage->ru_utime.tv_sec, zero_extend_signed_to_ull(usage->ru_utime.tv_usec), (long long) usage->ru_stime.tv_sec, zero_extend_signed_to_ull(usage->ru_stime.tv_usec), - usage->ru_maxrss, usage->ru_ixrss, usage->ru_idrss, - usage->ru_isrss, usage->ru_minflt, usage->ru_majflt, - usage->ru_nswap, usage->ru_inblock, usage->ru_oublock, - usage->ru_msgsnd, usage->ru_msgrcv, usage->ru_nsignals, - usage->ru_nvcsw, usage->ru_nivcsw, sprintrc(rc)); + zero_extend_signed_to_ull(usage->ru_maxrss), + zero_extend_signed_to_ull(usage->ru_ixrss), + zero_extend_signed_to_ull(usage->ru_idrss), + zero_extend_signed_to_ull(usage->ru_isrss), + zero_extend_signed_to_ull(usage->ru_minflt), + zero_extend_signed_to_ull(usage->ru_majflt), + zero_extend_signed_to_ull(usage->ru_nswap), + zero_extend_signed_to_ull(usage->ru_inblock), + zero_extend_signed_to_ull(usage->ru_oublock), + zero_extend_signed_to_ull(usage->ru_msgsnd), + zero_extend_signed_to_ull(usage->ru_msgrcv), + zero_extend_signed_to_ull(usage->ru_nsignals), + zero_extend_signed_to_ull(usage->ru_nvcsw), + zero_extend_signed_to_ull(usage->ru_nivcsw), + sprintrc(rc)); errno = saved_errno; return rc; } @@ -49,7 +60,7 @@ invoke_print(int who, const char *who_str, struct rusage *usage) int main(void) { - TAIL_ALLOC_OBJECT_CONST_PTR(struct rusage, usage); + TAIL_ALLOC_OBJECT_CONST_PTR(kernel_rusage_t, usage); if (invoke_print(ARG_STR(RUSAGE_SELF), usage)) { perror_msg_and_fail("RUSAGE_SELF"); } diff --git a/tests-mx32/getsid--pidns-translation.c b/tests-mx32/getsid--pidns-translation.c new file mode 100644 index 00000000..7f983e87 --- /dev/null +++ b/tests-mx32/getsid--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "getsid.c" diff --git a/tests-mx32/getsid--pidns-translation.gen.test b/tests-mx32/getsid--pidns-translation.gen.test new file mode 100755 index 00000000..c07ae33c --- /dev/null +++ b/tests-mx32/getsid--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getsid--pidns-translation test_pidns -e trace=getsid -a10); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -e trace=getsid -a10 diff --git a/tests-mx32/getsid.c b/tests-mx32/getsid.c index 588ea4ab..71355bb6 100644 --- a/tests-mx32/getsid.c +++ b/tests-mx32/getsid.c @@ -1,20 +1,27 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include "pidns.h" + #include #include int main(void) { + PIDNS_TEST_INIT; + pid_t pid = getpid(); - printf("getsid(%d) = %d\n", pid, getsid(pid)); + pidns_print_leader(); + printf("getsid(%d%s) = %d%s\n", pid, pidns_pid2str(PT_TGID), + getsid(pid), pidns_pid2str(PT_SID)); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-mx32/gettid--pidns-translation.c b/tests-mx32/gettid--pidns-translation.c new file mode 100644 index 00000000..500c3213 --- /dev/null +++ b/tests-mx32/gettid--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "gettid.c" diff --git a/tests-mx32/gettid--pidns-translation.test b/tests-mx32/gettid--pidns-translation.test new file mode 100755 index 00000000..9624129e --- /dev/null +++ b/tests-mx32/gettid--pidns-translation.test @@ -0,0 +1,18 @@ +#!/bin/sh +# +# Check pidns translation of gettid's return value. +# +# Copyright (c) 2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: LGPL-2.1-or-later + +. "${srcdir=.}/init.sh" + +run_prog > /dev/null +run_strace -a9 --pidns-translation -f -e trace=gettid $args > "$EXP" +parent_pid="$(tail -n 2 $LOG | head -n 1 | cut -d' ' -f1)" +init_pid="$(tail -n 1 $LOG | cut -d' ' -f1)" +# uniq: filter out extra gettid calls made by musl libc +grep -E -v "^($parent_pid|$init_pid) |unfinished|resumed" "$LOG" | uniq > "$OUT" +match_diff "$OUT" "$EXP" diff --git a/tests-mx32/gettid.c b/tests-mx32/gettid.c index 24947e89..8df4f8d5 100644 --- a/tests-mx32/gettid.c +++ b/tests-mx32/gettid.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -8,12 +8,18 @@ #include "tests.h" #include #include -#include +#include "scno.h" +#include "pidns.h" int main(void) { - printf("gettid() = %ld\n", syscall(__NR_gettid)); + PIDNS_TEST_INIT; + + pidns_print_leader(); + printf("gettid() = %d%s\n", (int) syscall(__NR_gettid), + pidns_pid2str(PT_TID)); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-mx32/getuid-creds.gen.test b/tests-mx32/getuid-creds.gen.test new file mode 100755 index 00000000..5cd14c58 --- /dev/null +++ b/tests-mx32/getuid-creds.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getuid-creds +getuid.test ); do not edit. +set -- +. "${srcdir=.}/getuid.test" diff --git a/tests-mx32/getuid.c b/tests-mx32/getuid.c index 56f6c902..f3ff9af1 100644 --- a/tests-mx32/getuid.c +++ b/tests-mx32/getuid.c @@ -1,14 +1,14 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" -#ifdef __NR_getuid +#if defined __NR_getuid && (!defined __NR_getxuid || __NR_getxuid != __NR_getuid) # include # include diff --git a/tests-mx32/getuid.test b/tests-mx32/getuid.test index a0bbb3ed..e8351a22 100755 --- a/tests-mx32/getuid.test +++ b/tests-mx32/getuid.test @@ -1,16 +1,33 @@ #!/bin/sh # -# Check getuid syscall decoding. +# Check get(e)?[gu]id(32)? syscalls decoding. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" +check_prog grep check_prog uniq + +if [ "${NAME%-creds}" = "$NAME" ]; then + syscall="$NAME" +else + NAME="${NAME%-creds}" + syscall='%creds' +fi + run_prog > /dev/null -run_strace -qq -a9 -e$NAME $args > "$EXP" -uniq < "$LOG" > "$OUT" +run_strace -qq -a9 -e"$syscall" $args > "$EXP" + +case "$STRACE_ARCH:$syscall" in + mips:%creds) + grep -Fxv 'prctl(PR_GET_FP_MODE) = 0' < "$LOG" | uniq > "$OUT" + ;; + *) uniq < "$LOG" > "$OUT" + ;; +esac + match_diff "$OUT" "$EXP" diff --git a/tests-mx32/getuid32-creds.gen.test b/tests-mx32/getuid32-creds.gen.test new file mode 100755 index 00000000..d6311ca0 --- /dev/null +++ b/tests-mx32/getuid32-creds.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getuid32-creds +getuid.test ); do not edit. +set -- +. "${srcdir=.}/getuid.test" diff --git a/tests-mx32/getuid32.c b/tests-mx32/getuid32.c index 1222dbcb..0c0441f7 100644 --- a/tests-mx32/getuid32.c +++ b/tests-mx32/getuid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getuid32 diff --git a/tests-mx32/getxgid.c b/tests-mx32/getxgid.c new file mode 100644 index 00000000..2fa6edd8 --- /dev/null +++ b/tests-mx32/getxgid.c @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_getxgid + +# include +# include + +int +main(void) +{ + long id = syscall(__NR_getxgid); + printf("getxgid() = %ld (egid %ld)\n", id, id); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_getxgid") + +#endif diff --git a/tests-mx32/getxgid.gen.test b/tests-mx32/getxgid.gen.test new file mode 100755 index 00000000..e9068a37 --- /dev/null +++ b/tests-mx32/getxgid.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getxgid -a10 ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 diff --git a/tests-mx32/getxpid.c b/tests-mx32/getxpid.c new file mode 100644 index 00000000..f8218db8 --- /dev/null +++ b/tests-mx32/getxpid.c @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_getxpid + +# include +# include + +int +main(void) +{ + long id = syscall(__NR_getxpid); + pid_t ppid = getppid(); + + printf("getxpid() = %ld (ppid %ld)\n", id, (long) ppid); + printf("getxpid() = %ld (ppid %ld)\n", id, (long) ppid); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_getxpid") + +#endif diff --git a/tests-mx32/getxpid.gen.test b/tests-mx32/getxpid.gen.test new file mode 100755 index 00000000..0473cced --- /dev/null +++ b/tests-mx32/getxpid.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getxpid -a10 ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 diff --git a/tests-mx32/getxuid.c b/tests-mx32/getxuid.c new file mode 100644 index 00000000..6263550d --- /dev/null +++ b/tests-mx32/getxuid.c @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_getxuid + +# include +# include + +int +main(void) +{ + long id = syscall(__NR_getxuid); + printf("getxuid() = %ld (euid %ld)\n", id, id); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_getxuid") + +#endif diff --git a/tests-mx32/getxuid.gen.test b/tests-mx32/getxuid.gen.test new file mode 100755 index 00000000..37db2ddf --- /dev/null +++ b/tests-mx32/getxuid.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getxuid -a10 ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 diff --git a/tests-mx32/getxxid.c b/tests-mx32/getxxid.c deleted file mode 100644 index 864cea5b..00000000 --- a/tests-mx32/getxxid.c +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2016-2018 Dmitry V. Levin - * All rights reserved. - * - * SPDX-License-Identifier: GPL-2.0-or-later - */ - -#include "tests.h" -#include - -#if defined __NR_getxpid && defined __NR_getxuid && defined __NR_getxgid - -# include -# include - -int -main(void) -{ - long id; - pid_t ppid; - - id = syscall(__NR_getxpid); - ppid = getppid(); - printf("getxpid() = %ld (ppid %ld)\n", id, (long) ppid); - printf("getxpid() = %ld (ppid %ld)\n", id, (long) ppid); - - id = syscall(__NR_getxuid); - printf("getxuid() = %ld (euid %ld)\n", id, id); - - id = syscall(__NR_getxgid); - printf("getxgid() = %ld (egid %ld)\n", id, id); - - puts("+++ exited with 0 +++"); - return 0; -} - -#else - -SKIP_MAIN_UNDEFINED("__NR_getxpid && __NR_getxuid && __NR_getxgid") - -#endif diff --git a/tests-mx32/getxxid.gen.test b/tests-mx32/getxxid.gen.test deleted file mode 100755 index 5aa89f65..00000000 --- a/tests-mx32/getxxid.gen.test +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getxxid -a10 -e trace=getxpid,getxuid,getxgid); do not edit. -. "${srcdir=.}/init.sh" -run_strace_match_diff -a10 -e trace=getxpid,getxuid,getxgid diff --git a/tests-mx32/init.sh b/tests-mx32/init.sh index 40e62188..52417051 100644 --- a/tests-mx32/init.sh +++ b/tests-mx32/init.sh @@ -1,7 +1,7 @@ #!/bin/sh # # Copyright (c) 2011-2016 Dmitry V. Levin -# Copyright (c) 2011-2018 The strace developers. +# Copyright (c) 2011-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -11,6 +11,7 @@ ME_="${0##*/}" LOG="log" OUT="out" EXP="exp" +CONFIG_H="../../config.h" warn_() { printf >&2 '%s\n' "$*"; } fail_() { warn_ "$ME_: failed test: $*"; exit 1; } @@ -18,6 +19,33 @@ skip_() { warn_ "$ME_: skipped test: $*"; exit 77; } framework_failure_() { warn_ "$ME_: framework failure: $*"; exit 99; } framework_skip_() { warn_ "$ME_: framework skip: $*"; exit 77; } +# get_config_str OPTION +# +# Returns the value of OPTION from config.h (path to which set +# in the CONFIG_H variable). +get_config_str() +{ + sed -r -n 's/#define[[:space:]]*'"$1"'[[:space:]]*"([^"]*)".*/\1/p' \ + "$CONFIG_H" +} + +# get_config_option OPTION YES_STRING [NO_STRING] +# +# Returns YES_STRING in case OPTION is enabled (present in config.h and has +# a non-zero numeric value). Otherwise, NO_STRING (or empty string, if not +# specified) is returned. +get_config_option() +{ + local opt + opt=$(sed -r -n 's/#define[[:space:]]*'"$1"'[[:space:]]*([0-9]+)$/\1/p' \ + "$CONFIG_H") + if [ -n "$opt" -a "$opt" -ne 0 ]; then + printf "%s" "$2" + else + printf "%s" "${3-}" + fi +} + check_prog() { type "$@" > /dev/null 2>&1 || @@ -161,7 +189,7 @@ match_diff() # dump both files and fail with ERROR_MESSAGE. match_grep() { - local output patterns error pattern cnt failed= + local output patterns error pattern cnt failed= rc negated if [ $# -eq 0 ]; then output="$LOG" else @@ -183,7 +211,15 @@ match_grep() cnt=1 while read -r pattern; do - LC_ALL=C grep -E -x -e "$pattern" < "$output" > /dev/null || { + negated=0 + [ "x${pattern#!}" = "x${pattern}" ] || + negated=1 + + rc="$negated" + LC_ALL=C grep -E -x -e "${pattern#!}" < "$output" > /dev/null || + rc="$((!negated))" + + [ 0 = "$rc" ] || { test -n "$failed" || { echo 'Failed patterns of expected output:' failed=1 @@ -191,7 +227,8 @@ match_grep() printf '#%d: %s\n' "$cnt" "$pattern" } cnt=$(($cnt + 1)) - done < "$patterns" + done < "$patterns" || + fail_ "Error reading patterns from \"$patterns\"" test -z "$failed" || { echo 'Actual output:' cat < "$output" @@ -203,7 +240,7 @@ match_grep() run_strace_match_diff() { args="$*" - [ -n "$args" -a -z "${args##*-e trace=*}" ] || + [ -n "$args" -a \( -z "${args##*-e trace=*}" -o -z "${args##*--trace=*}" \) ] || set -- -e trace="$NAME" "$@" run_prog > /dev/null run_strace "$@" $args > "$EXP" @@ -214,7 +251,7 @@ run_strace_match_diff() run_strace_match_grep() { args="$*" - [ -n "$args" -a -z "${args##*-e trace=*}" ] || + [ -n "$args" -a \( -z "${args##*-e trace=*}" -o -z "${args##*--trace=*}" \) ] || set -- -e trace="$NAME" "$@" run_prog > /dev/null run_strace "$@" $args > "$EXP" @@ -247,6 +284,20 @@ require_min_kernel_version_or_skip() skip_ "the kernel release $uname_r is not $1 or newer" } +# Usage: require_min_nproc 2 +require_min_nproc() +{ + local min_nproc + min_nproc="$1"; shift + + check_prog nproc + local nproc + nproc="$(nproc)" + + [ "$nproc" -ge "$min_nproc" ] || + framework_skip_ "nproc = $nproc is less than $min_nproc" +} + # Usage: grep_pid_status $pid GREP-OPTIONS... grep_pid_status() { @@ -297,6 +348,13 @@ test_pure_prog_set() try_run_prog "../$t" || continue run_strace $prog_args "$@" "../$t" > "$expfile" + + case "$STRACE_ARCH:$MIPS_ABI:$NAME" in + mips:o32:*creds) + sed -i '/^prctl(PR_GET_FP_MODE) *= 0$/d' "$LOG" + ;; + esac + match_diff "$LOG" "$expfile" } < /dev/null; done } @@ -324,6 +382,41 @@ test_trace_expr() < negative.list } +test_prog_set() +{ + test_pure_prog_set "$@" < "$srcdir/$NAME.in" +} + +test_pidns_run_strace() +{ + local parent_pid init_pid + + check_prog tail + check_prog cut + check_prog grep + + run_prog > /dev/null + run_strace --pidns-translation -f $@ $args > "$EXP" + + # filter out logs made by the parent or init process of the pidns test + parent_pid="$(tail -n 2 $LOG | head -n 1 | cut -d' ' -f1)" + init_pid="$(tail -n 1 $LOG | cut -d' ' -f1)" + grep -E -v "^($parent_pid|$init_pid) " "$LOG" > "$OUT" + match_diff "$OUT" "$EXP" +} + +test_pidns() +{ + check_prog unshare + unshare -Urpf true || framework_skip_ "unshare -Urpf true failed" + + test_pidns_run_strace "$@" + + # test PID translation when /proc is mounted from an other namespace + STRACE="unshare -Urpf $STRACE" + test_pidns_run_strace "$@" +} + check_prog cat check_prog rm @@ -365,7 +458,7 @@ fi : "${STRACE_EXE:=$STRACE}" export STRACE_EXE -: "${TIMEOUT_DURATION:=600}" +: "${TIMEOUT_DURATION:=1500}" : "${SLEEP_A_BIT:=sleep 1}" [ -z "${VERBOSE-}" ] || diff --git a/tests-mx32/init_module.c b/tests-mx32/init_module.c index 601f7f92..a8884720 100644 --- a/tests-mx32/init_module.c +++ b/tests-mx32/init_module.c @@ -2,7 +2,7 @@ * Check decoding of init_module syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_init_module) diff --git a/tests-mx32/inject-nf.c b/tests-mx32/inject-nf.c index b419984f..22f34571 100644 --- a/tests-mx32/inject-nf.c +++ b/tests-mx32/inject-nf.c @@ -1,7 +1,7 @@ /* * Check decoding of return values injected into a syscall that "never fails". * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,32 +12,30 @@ #include #include #include -#include +#include "scno.h" #include "raw_syscall.h" -#ifdef __alpha__ -/* alpha has no getpid */ -# define SC_NR __NR_getpgrp -# define SC_NAME "getpgrp" -# define getpid getpgrp +#ifdef __NR_geteuid32 +# define SC_NR __NR_geteuid32 +# define SC_NAME "geteuid32" #else -# define SC_NR __NR_getpid -# define SC_NAME "getpid" +# define SC_NR __NR_geteuid +# define SC_NAME "geteuid" #endif #ifdef raw_syscall_0 # define INVOKE_SC(err) raw_syscall_0(SC_NR, &err) #else -/* No raw_syscall_0, let's use getpid() and hope for the best. */ -# define INVOKE_SC(err) getpid() +/* No raw_syscall_0, let's use geteuid() and hope for the best. */ +# define INVOKE_SC(err) geteuid() #endif /* * This prototype is intentionally different * from the prototype provided by . */ -extern kernel_ulong_t getpid(void); +extern kernel_ulong_t geteuid(void); int main(int ac, char **av) @@ -45,7 +43,7 @@ main(int ac, char **av) assert(ac == 1 || ac == 2); kernel_ulong_t expected = - (ac == 1) ? getpid() : strtoull(av[1], NULL, 0); + (ac == 1) ? geteuid() : strtoull(av[1], NULL, 0); kernel_ulong_t err = 0; kernel_ulong_t rc = INVOKE_SC(err); diff --git a/tests-mx32/inject-nf.test b/tests-mx32/inject-nf.test index cadb5adb..7b0c3fda 100755 --- a/tests-mx32/inject-nf.test +++ b/tests-mx32/inject-nf.test @@ -2,21 +2,14 @@ # # Check decoding of return values injected into a syscall that "never fails". # -# Copyright (c) 2018 The strace developers. +# Copyright (c) 2018-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/scno_tampering.sh" -case "$STRACE_ARCH" in -alpha) - SYSCALL=getpgrp - ;; -*) - SYSCALL=getpid - ;; -esac +SYSCALL='/^geteuid(32)?$' run_prog prog="$args" diff --git a/tests-mx32/inotify.c b/tests-mx32/inotify.c index db751d4e..f5167509 100644 --- a/tests-mx32/inotify.c +++ b/tests-mx32/inotify.c @@ -2,7 +2,7 @@ * Check decoding of inotify_add_watch and inotify_rm_watch syscalls. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_inotify_add_watch) && defined(__NR_inotify_rm_watch) diff --git a/tests-mx32/inotify_init-y.c b/tests-mx32/inotify_init-y.c new file mode 100644 index 00000000..cbe094ba --- /dev/null +++ b/tests-mx32/inotify_init-y.c @@ -0,0 +1,2 @@ +#define PRINT_PATHS +#include "inotify_init.c" diff --git a/tests-mx32/inotify_init-y.test b/tests-mx32/inotify_init-y.test new file mode 100755 index 00000000..36f24776 --- /dev/null +++ b/tests-mx32/inotify_init-y.test @@ -0,0 +1,17 @@ +#!/bin/sh +# +# Check decoding of inotify_init with path decoding enabled. +# +# Copyright (c) 2018-2019 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +# Test expects "anon_inode:inotify" link path format for a inotify fd, which +# is in place since v2.6.33-rc1~34^2~7. Check for older link path formats +# is implemented in inotify_init1 test. +require_min_kernel_version_or_skip 2.6.33 + +run_strace_match_diff -a15 -y -e trace=inotify_init diff --git a/tests-mx32/inotify_init.c b/tests-mx32/inotify_init.c new file mode 100644 index 00000000..9537a7d5 --- /dev/null +++ b/tests-mx32/inotify_init.c @@ -0,0 +1,48 @@ +/* + * Check decoding of inotify_init syscall. + * + * Copyright (c) 2018-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_inotify_init + +# include +# include + +int +main(void) +{ +# ifdef PRINT_PATHS + skip_if_unavailable("/proc/self/fd/"); +# endif + + long rc = syscall(__NR_inotify_init, 42); + +# ifdef PRINT_PATHS + if (rc < 0) + perror_msg_and_skip("inotify_init"); +# endif + + printf("inotify_init() = " +# ifdef PRINT_PATHS + "%ld\n", rc +# else + "%s\n", sprintrc(rc) +# endif + ); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_inotify_init"); + +#endif diff --git a/tests-mx32/inotify_init.gen.test b/tests-mx32/inotify_init.gen.test new file mode 100755 index 00000000..47e6f602 --- /dev/null +++ b/tests-mx32/inotify_init.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (inotify_init -a15 ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a15 diff --git a/tests-mx32/inotify_init1-y.c b/tests-mx32/inotify_init1-y.c new file mode 100644 index 00000000..53c65e66 --- /dev/null +++ b/tests-mx32/inotify_init1-y.c @@ -0,0 +1,2 @@ +#define PRINT_PATHS +#include "inotify_init1.c" diff --git a/tests-mx32/inotify_init1-y.gen.test b/tests-mx32/inotify_init1-y.gen.test new file mode 100755 index 00000000..160d4d3e --- /dev/null +++ b/tests-mx32/inotify_init1-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (inotify_init1-y -a27 -y -e trace=inotify_init1); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a27 -y -e trace=inotify_init1 diff --git a/tests-mx32/inotify_init1.c b/tests-mx32/inotify_init1.c index 4f352b70..efff52ec 100644 --- a/tests-mx32/inotify_init1.c +++ b/tests-mx32/inotify_init1.c @@ -2,7 +2,7 @@ * Check decoding of inotify_init1 syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_inotify_init1) @@ -25,9 +25,19 @@ # endif # define all_flags (O_NONBLOCK | cloexec_flag) +# ifdef PRINT_PATHS +# define RC_FMT "%ld<%s>" +# else +# define RC_FMT "%s" +# endif + int main(void) { +# ifdef PRINT_PATHS + skip_if_unavailable("/proc/self/fd/"); +# endif + static const kernel_ulong_t bogus_flags1 = (kernel_ulong_t) 0xfacefeeddeadbeefULL | O_NONBLOCK; static const kernel_ulong_t bogus_flags2 = @@ -46,8 +56,51 @@ main(void) (unsigned int) bogus_flags2, sprintrc(rc)); rc = syscall(__NR_inotify_init1, all_flags); - printf("inotify_init1(IN_NONBLOCK%s) = %s\n", - all_flags & cloexec_flag ? "|IN_CLOEXEC" : "", sprintrc(rc)); + +# ifdef PRINT_PATHS + if (rc < 0) + perror_msg_and_skip("inotify_init(%#x)", all_flags); + + /* + * Kernels that do not have v2.6.33-rc1~34^2~7 do not have + * "anon_inode:" prefix. Let's assume that it can be either "inotify" + * or "anon_inode:inotify" for now, as any change there may be + * of interest. + */ + char path[sizeof("/proc/self/fd/") + sizeof(rc) * 3]; + char buf[2] = ""; + const char *inotify_path; + ssize_t ret; + + ret = snprintf(path, sizeof(path), "/proc/self/fd/%ld", rc); + if ((ret < 0) || ((size_t) ret >= sizeof(path))) + perror_msg_and_fail("snprintf(path)"); + + ret = readlink(path, buf, sizeof(buf)); + if (ret < 0) + perror_msg_and_fail("readlink"); + + switch (buf[0]) { + case 'a': + inotify_path = "anon_inode:inotify"; + break; + case 'i': + inotify_path = "inotify"; + break; + default: + error_msg_and_fail("Unexpected first char '%c' of inotify fd " + "link path", buf[0]); + } +# endif + + printf("inotify_init1(IN_NONBLOCK%s) = " RC_FMT "\n", + all_flags & cloexec_flag ? "|IN_CLOEXEC" : "", +# ifdef PRINT_PATHS + rc, inotify_path +# else + sprintrc(rc) +# endif + ); puts("+++ exited with 0 +++"); diff --git a/tests-mx32/io_uring_enter.c b/tests-mx32/io_uring_enter.c index 3284ebac..bc741cd4 100644 --- a/tests-mx32/io_uring_enter.c +++ b/tests-mx32/io_uring_enter.c @@ -9,7 +9,6 @@ #include "tests.h" #include -#include #include "scno.h" #ifdef __NR_io_uring_enter diff --git a/tests-mx32/io_uring_register.c b/tests-mx32/io_uring_register.c index a0327ed8..b0c5b9ee 100644 --- a/tests-mx32/io_uring_register.c +++ b/tests-mx32/io_uring_register.c @@ -2,6 +2,7 @@ * Check decoding of io_uring_register syscall. * * Copyright (c) 2019 Dmitry V. Levin + * Copyright (c) 2019-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,16 +10,37 @@ #include "tests.h" #include -#include #include "scno.h" #ifdef __NR_io_uring_register # include +# include # include # include # include +# ifdef HAVE_LINUX_IO_URING_H +# include +# endif + +/* From tests/bpf.c */ +# if defined MPERS_IS_m32 || SIZEOF_KERNEL_LONG_T > 4 +# define BIG_ADDR_MAYBE(addr_) +# elif defined __arm__ || defined __i386__ || defined __mips__ \ + || defined __powerpc__ || defined __riscv__ || defined __s390__ \ + || defined __sparc__ || defined __tile__ +# define BIG_ADDR_MAYBE(addr_) addr_ " or " +# else +# define BIG_ADDR_MAYBE(addr_) +# endif + +# if WORDS_BIGENDIAN +# define BE_LE(be_, le_) be_ +# else +# define BE_LE(be_, le_) le_ +# endif + static const char *errstr; static long @@ -64,15 +86,40 @@ main(void) int fd_full = open(path_full, O_RDONLY); if (fd_full < 0) - perror_msg_and_fail("open: %s", path_null); + perror_msg_and_fail("open: %s", path_full); int fds[] = { fd_full, fd_null }; const int *arg_fds = tail_memdup(fds, sizeof(fds)); - sys_io_uring_register(fd_null, 0xbadc0ded, path_null, 0xdeadbeef); - printf("io_uring_register(%u<%s>, %#x /* IORING_REGISTER_??? */" - ", %p, %u) = %s\n", - fd_null, path_null, 0xbadc0ded, path_null, 0xdeadbeef, errstr); + static const unsigned int invalid_ops[] = { 0xbadc0dedU, 11 }; + + for (size_t i = 0; i < ARRAY_SIZE(invalid_ops); i++) { + sys_io_uring_register(fd_null, invalid_ops[i], path_null, + 0xdeadbeef); + printf("io_uring_register(%u<%s>, %#x /* IORING_REGISTER_??? */" + ", %p, %u) = %s\n", + fd_null, path_null, invalid_ops[i], path_null, + 0xdeadbeef, errstr); + } + + static const struct { + unsigned int op; + const char *str; + } no_arg_ops[] = { + { 1, "IORING_UNREGISTER_BUFFERS" }, + { 3, "IORING_UNREGISTER_FILES" }, + { 5, "IORING_UNREGISTER_EVENTFD" }, + { 9, "IORING_REGISTER_PERSONALITY" }, + { 10, "IORING_UNREGISTER_PERSONALITY" }, + }; + + for (size_t i = 0; i < ARRAY_SIZE(no_arg_ops); i++) { + sys_io_uring_register(fd_null, no_arg_ops[i].op, path_null, + 0xdeadbeef); + printf("io_uring_register(%u<%s>, %s, %p, %u) = %s\n", + fd_null, path_null, no_arg_ops[i].str, path_null, + 0xdeadbeef, errstr); + } sys_io_uring_register(fd_null, 0, arg_iov, ARRAY_SIZE(iov)); printf("io_uring_register(%u<%s>, IORING_REGISTER_BUFFERS" @@ -83,11 +130,157 @@ main(void) iov[1].iov_base, (unsigned long) iov[1].iov_len, (unsigned int) ARRAY_SIZE(iov), errstr); - sys_io_uring_register(fd_null, 2, arg_fds, ARRAY_SIZE(fds)); - printf("io_uring_register(%u<%s>, IORING_REGISTER_FILES" - ", [%u<%s>, %u<%s>], %u) = %s\n", + static const struct { + unsigned int op; + const char *str; + } fd_arr_ops[] = { + { 2, "IORING_REGISTER_FILES" }, + { 4, "IORING_REGISTER_EVENTFD" }, + { 7, "IORING_REGISTER_EVENTFD_ASYNC" }, + }; + + for (size_t i = 0; i < ARRAY_SIZE(fd_arr_ops); i++) { + sys_io_uring_register(fd_null, fd_arr_ops[i].op, arg_fds, + ARRAY_SIZE(fds)); + printf("io_uring_register(%u<%s>, %s, [%u<%s>, %u<%s>], %u)" + " = %s\n", + fd_null, path_null, fd_arr_ops[i].str, + fd_full, path_full, fd_null, path_null, + (unsigned int) ARRAY_SIZE(fds), errstr); + } + +# ifdef HAVE_STRUCT_IO_URING_FILES_UPDATE + struct io_uring_files_update bogus_iufu; + struct io_uring_files_update iufu; + + sys_io_uring_register(fd_null, 6, NULL, 0xfacefeed); + printf("io_uring_register(%u<%s>, IORING_REGISTER_FILES_UPDATE" + ", NULL, 4207869677) = %s\n", + fd_null, path_null, errstr); + + fill_memory(&bogus_iufu, sizeof(bogus_iufu)); + sys_io_uring_register(fd_null, 6, &bogus_iufu, 0); + printf("io_uring_register(%u<%s>, IORING_REGISTER_FILES_UPDATE" + ", {offset=%" PRIu32 ", resv=%#" PRIx32 ", fds=" + BIG_ADDR_MAYBE(BE_LE("0x88898a8b8c8d8e8f", "0x8f8e8d8c8b8a8988")) + "[]}, 0) = %s\n", + fd_null, path_null, + ((uint32_t *) &bogus_iufu)[0], ((uint32_t *) &bogus_iufu)[1], + errstr); + + memset(&iufu, 0, sizeof(iufu)); + iufu.offset = 0xdeadc0deU; + iufu.fds = (uintptr_t) fds; + sys_io_uring_register(fd_null, 6, &iufu, ARRAY_SIZE(fds)); + printf("io_uring_register(%u<%s>, IORING_REGISTER_FILES_UPDATE" + ", {offset=3735929054, fds=[%u<%s>, %u<%s>]}, %u) = %s\n", fd_null, path_null, fd_full, path_full, fd_null, path_null, (unsigned int) ARRAY_SIZE(fds), errstr); +# endif + +# ifdef HAVE_STRUCT_IO_URING_PROBE + struct io_uring_probe *probe = tail_alloc(sizeof(*probe) + + (DEFAULT_STRLEN + 1) * sizeof(struct io_uring_probe_op)); + + sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, NULL, 0xfacefeed); + printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE" + ", NULL, 4207869677) = %s\n", + fd_null, path_null, errstr); + + sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, probe, + 0xfacefeed); + printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE" + ", %p, 4207869677) = %s\n", + fd_null, path_null, probe, errstr); + + sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, + (char *) probe + 1, DEFAULT_STRLEN + 1); + printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE" + ", %p, %d) = %s\n", + fd_null, path_null, (char *) probe + 1, DEFAULT_STRLEN + 1, + errstr); + + sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, probe, 0); + printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE" + ", {last_op=%u /* IORING_OP_??? */, ops_len=%hhu, resv=%#hx" + ", resv2=[%#x, %#x, %#x], ops=[]}, 0) = %s\n", + fd_null, path_null, probe->last_op, probe->ops_len, probe->resv, + probe->resv2[0], probe->resv2[1], probe->resv2[2], errstr); + + probe->last_op = IORING_OP_READV; + probe->resv = 0; + sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, probe, 0); + printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE" + ", {last_op=IORING_OP_READV, ops_len=%hhu" + ", resv2=[%#x, %#x, %#x], ops=[]}, 0) = %s\n", + fd_null, path_null, probe->ops_len, + probe->resv2[0], probe->resv2[1], probe->resv2[2], errstr); + + probe->last_op = IORING_OP_EPOLL_CTL; + probe->resv2[0] = 0; + probe->resv2[2] = 0; + + probe->ops[0].op = IORING_OP_NOP; + probe->ops[0].resv = 0xde; + probe->ops[0].flags = 0; + probe->ops[0].resv2 = 0xbeefface; + + probe->ops[1].op = 33; + probe->ops[1].resv = 0; + probe->ops[1].flags = IO_URING_OP_SUPPORTED; + probe->ops[1].resv2 = 0xdeadc0de; + + probe->ops[2].op = 34; + probe->ops[2].resv = 0xaf; + probe->ops[2].flags = 0xbeef; + probe->ops[2].resv2 = 0; + + probe->ops[3].op = 0xfe; + probe->ops[3].resv = 0; + probe->ops[3].flags = 0xc0de; + probe->ops[3].resv2 = 0; + + sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, probe, 4); + printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE" + ", {last_op=IORING_OP_EPOLL_CTL, ops_len=%hhu" + ", resv2=[0, %#x, 0], ops=[" + "{op=IORING_OP_NOP, resv=0xde, flags=0, resv2=0xbeefface}, " + "{op=IORING_OP_TEE, flags=IO_URING_OP_SUPPORTED" + ", resv2=0xdeadc0de}, " + "{op=34 /* IORING_OP_??? */, resv=0xaf" + ", flags=IO_URING_OP_SUPPORTED|0xbeee}, " + "{op=254 /* IORING_OP_??? */" + ", flags=0xc0de /* IO_URING_OP_??? */}]}, 4) = %s\n", + fd_null, path_null, probe->ops_len, probe->resv2[1], errstr); + + probe->last_op = 34; + probe->resv2[1] = 0; + fill_memory_ex(probe->ops, sizeof(probe->ops[0]) * (DEFAULT_STRLEN + 1), + 0x40, 0x80); + sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, probe, + DEFAULT_STRLEN + 1); + printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE" + ", {last_op=34 /* IORING_OP_??? */, ops_len=%hhu, ops=[", + fd_null, path_null, probe->ops_len); + for (size_t i = 0; i < DEFAULT_STRLEN; i++) { + printf("%s{op=%u /* IORING_OP_??? */, resv=%#hhx" + ", flags=%s%#hx%s, resv2=%#x}", + i ? ", " : "", + probe->ops[i].op, probe->ops[i].resv, + probe->ops[i].flags & 1 ? "IO_URING_OP_SUPPORTED|" : "", + (typeof(probe->ops[i].flags)) (probe->ops[i].flags & ~1), + probe->ops[i].flags & 1 ? "" : " /* IO_URING_OP_??? */", + probe->ops[i].resv2); + } + printf(", ...]}, %d) = %s\n", DEFAULT_STRLEN + 1, errstr); + + probe->last_op = 0; + probe->ops_len = 0; + memset(probe->ops, 0, sizeof(probe->ops[0]) * (DEFAULT_STRLEN + 1)); + sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, probe, 8); + printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE, %p, 8) = %s\n", + fd_null, path_null, probe, errstr); +# endif puts("+++ exited with 0 +++"); return 0; diff --git a/tests-mx32/io_uring_setup.c b/tests-mx32/io_uring_setup.c index f48095bb..d54f8c9b 100644 --- a/tests-mx32/io_uring_setup.c +++ b/tests-mx32/io_uring_setup.c @@ -2,6 +2,7 @@ * Check decoding of io_uring_setup syscall. * * Copyright (c) 2019 Dmitry V. Levin + * Copyright (c) 2019-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,17 +10,34 @@ #include "tests.h" #include -#include #include "scno.h" #if defined HAVE_LINUX_IO_URING_H && defined __NR_io_uring_setup +# include # include # include # include # include +# include +# include + # include "print_fields.h" +# include "xlat.h" + +# include "xlat/uring_setup_features.h" +# include "xlat/uring_cqring_flags.h" + +# ifdef HAVE_STRUCT_IO_URING_PARAMS_FEATURES +# ifdef HAVE_STRUCT_IO_URING_PARAMS_WQ_FD +# define RESV_START 0 +# else +# define RESV_START 1 +# endif +# else /* !HAVE_STRUCT_IO_URING_PARAMS_FEATURES */ +# define RESV_START 2 +# endif /* HAVE_STRUCT_IO_URING_PARAMS_FEATURES */ static const char *errstr; @@ -39,12 +57,18 @@ sys_io_uring_setup(uint32_t nentries, const void *params) int main(void) { + static const char path_full[] = "/dev/full"; + long rc; TAIL_ALLOC_OBJECT_CONST_PTR(struct io_uring_params, params); const void *efault = (const void *) params + 1; skip_if_unavailable("/proc/self/fd/"); + int fd_full = open(path_full, O_RDONLY); + if (fd_full < 0) + perror_msg_and_fail("open: %s", path_full); + sys_io_uring_setup(-1U, NULL); printf("io_uring_setup(%u, NULL) = %s\n", -1U, errstr); @@ -55,42 +79,110 @@ main(void) params->flags = -1; sys_io_uring_setup(1, params); printf("io_uring_setup(%u, {flags=IORING_SETUP_IOPOLL" - "|IORING_SETUP_SQPOLL|IORING_SETUP_SQ_AFF|%#x" - ", sq_thread_cpu=%#x, sq_thread_idle=%u, resv={", - 1, -1U - 7, params->sq_thread_cpu, params->sq_thread_idle); - for (unsigned int i = 0; i < ARRAY_SIZE(params->resv); ++i) - printf("%s%#x", i ? ", " : "", params->resv[i]); - printf("}}) = %s\n", errstr); - - memset(params, 0, sizeof(*params)); - rc = sys_io_uring_setup(2, params); - printf("io_uring_setup(%u, {flags=0, sq_thread_cpu=0" - ", sq_thread_idle=0", 2); - if (rc < 0) - printf("}) = %s\n", errstr); - else - printf(", sq_entries=%u, cq_entries=%u" - ", sq_off={head=%u, tail=%u, ring_mask=%u" - ", ring_entries=%u, flags=%u, dropped=%u, array=%u}" - ", cq_off={head=%u, tail=%u, ring_mask=%u" - ", ring_entries=%u, overflow=%u, cqes=%u}" - "}) = %ld\n", - params->sq_entries, - params->cq_entries, - params->sq_off.head, - params->sq_off.tail, - params->sq_off.ring_mask, - params->sq_off.ring_entries, - params->sq_off.flags, - params->sq_off.dropped, - params->sq_off.array, - params->cq_off.head, - params->cq_off.tail, - params->cq_off.ring_mask, - params->cq_off.ring_entries, - params->cq_off.overflow, - params->cq_off.cqes, - rc); + "|IORING_SETUP_SQPOLL|IORING_SETUP_SQ_AFF|IORING_SETUP_CQSIZE" + "|IORING_SETUP_CLAMP|IORING_SETUP_ATTACH_WQ|%#x" + ", sq_thread_cpu=%#x, sq_thread_idle=%u, wq_fd=%d, resv=[", + 1, -1U - 63, params->sq_thread_cpu, params->sq_thread_idle, +# if defined HAVE_STRUCT_IO_URING_PARAMS_WQ_FD + params->wq_fd +# elif defined HAVE_STRUCT_IO_URING_PARAMS_FEATURES + params->resv[0] +# else + params->resv[1] +# endif + ); + for (unsigned int i = RESV_START; i < ARRAY_SIZE(params->resv); ++i) + printf("%s%#x", i != RESV_START ? ", " : "", params->resv[i]); + printf("]}) = %s\n", errstr); + + for (size_t i = 0; i < 2; i++) { + memset(params, 0, sizeof(*params)); + +# if defined HAVE_STRUCT_IO_URING_PARAMS_WQ_FD + params->wq_fd +# elif defined HAVE_STRUCT_IO_URING_PARAMS_FEATURES + params->resv[0] +# else + params->resv[1] +# endif + = i == 1 ? fd_full : -1; + params->flags = i == 1 ? 32 : 0; + + rc = sys_io_uring_setup(2, params); + printf("io_uring_setup(%u, {flags=%s, sq_thread_cpu=0" + ", sq_thread_idle=0", + 2, i == 1 ? "IORING_SETUP_ATTACH_WQ" : "0"); + if (i == 1) + printf(", wq_fd=%d<%s>", fd_full, path_full); + if (rc < 0) { + printf("}) = %s\n", errstr); + } else { + printf(", sq_entries=%u, cq_entries=%u, features=", + params->sq_entries, + params->cq_entries); + printflags(uring_setup_features, +# ifdef HAVE_STRUCT_IO_URING_PARAMS_FEATURES + params->features, +# else + params->resv[0], +# endif + "IORING_FEAT_???"); + printf(", sq_off={head=%u, tail=%u, ring_mask=%u" + ", ring_entries=%u, flags=%u, dropped=%u" + ", array=%u", + params->sq_off.head, + params->sq_off.tail, + params->sq_off.ring_mask, + params->sq_off.ring_entries, + params->sq_off.flags, + params->sq_off.dropped, + params->sq_off.array); + if (params->sq_off.resv1) + printf(", resv1=%#x", params->sq_off.resv1); + if (params->sq_off.resv2) + printf(", resv1=%#llx", + (unsigned long long) + params->sq_off.resv2); + + printf("}, cq_off={head=%u, tail=%u, ring_mask=%u" + ", ring_entries=%u, overflow=%u, cqes=%u, flags=", + params->cq_off.head, + params->cq_off.tail, + params->cq_off.ring_mask, + params->cq_off.ring_entries, + params->cq_off.overflow, + params->cq_off.cqes); +# ifdef HAVE_STRUCT_IO_CQRING_OFFSETS_FLAGS + printflags(uring_cqring_flags, + params->cq_off.flags, + "IORING_CQ_???"); + if (params->cq_off.resv1) + printf(", resv1=%#x", params->cq_off.resv1); + if (params->cq_off.resv2) + printf(", resv2=%#llx", + (unsigned long long) + params->cq_off.resv2); +# else + union { + struct { + uint32_t flags; + uint32_t resv1; + } s; + uint64_t v; + } u = { .v = params->cq_off.resv[0] }; + printflags(uring_cqring_flags, u.s.flags, + "IORING_CQ_???"); + if (u.s.resv1) + printf(", resv1=%#x", u.s.resv1); + if (params->cq_off.resv[1]) + printf(", resv2=%#llx", + (unsigned long long) + params->cq_off.resv[1]); +# endif + + printf("}}) = %ld\n", rc); + } + } puts("+++ exited with 0 +++"); return 0; diff --git a/tests-mx32/ioctl-success.sh b/tests-mx32/ioctl-success.sh new file mode 100755 index 00000000..9dd8aee8 --- /dev/null +++ b/tests-mx32/ioctl-success.sh @@ -0,0 +1,21 @@ +#!/bin/sh -efu +# +# Check decoding of ioctls using syscall injection. +# +# Expects a binary that accepts IOCTL_INJECT_START as the first argument. +# +# Copyright (c) 2018-2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/scno_tampering.sh" + +: ${IOCTL_INJECT_START=256} +: ${IOCTL_INJECT_RETVAL=42} + +run_strace -a50 "$@" -e trace=ioctl \ + -e inject=ioctl:retval="${IOCTL_INJECT_RETVAL}":when="${IOCTL_INJECT_START}+" \ + "../$NAME" "${IOCTL_INJECT_START}" "${IOCTL_INJECT_RETVAL}" > "$EXP" +grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT" +match_diff "$OUT" "$EXP" diff --git a/tests-mx32/ioctl.c b/tests-mx32/ioctl.c index ec4e3670..4f8e2e9f 100644 --- a/tests-mx32/ioctl.c +++ b/tests-mx32/ioctl.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -14,6 +14,8 @@ #include #include +#include + #ifdef HAVE_LINUX_MMTIMER_H # include #endif diff --git a/tests-mx32/ioctl_block--pidns-translation.c b/tests-mx32/ioctl_block--pidns-translation.c new file mode 100644 index 00000000..5eed6076 --- /dev/null +++ b/tests-mx32/ioctl_block--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "ioctl_block.c" diff --git a/tests-mx32/ioctl_block--pidns-translation.test b/tests-mx32/ioctl_block--pidns-translation.test new file mode 100755 index 00000000..d06855f9 --- /dev/null +++ b/tests-mx32/ioctl_block--pidns-translation.test @@ -0,0 +1,22 @@ +#!/bin/sh +# +# Check pidns translation of ioctl(BLK*) syscall decoding. +# +# Copyright (c) 2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: LGPL-2.1-or-later + +. "${srcdir=.}/init.sh" + +check_prog head +check_prog tail +check_prog cut +check_prog grep + +run_prog > /dev/null +run_strace --pidns-translation -f -a16 -e trace=ioctl $@ $args > "$EXP" +parent_pid="$(tail -n 2 $LOG | head -n 1 | cut -d' ' -f1)" +init_pid="$(tail -n 1 $LOG | cut -d' ' -f1)" +grep -E -v "^($parent_pid|$init_pid) |ioctl\([0123][,<]" "$LOG" > "$OUT" +match_diff "$OUT" "$EXP" diff --git a/tests-mx32/ioctl_block.c b/tests-mx32/ioctl_block.c index 65f434c8..8a345f4e 100644 --- a/tests-mx32/ioctl_block.c +++ b/tests-mx32/ioctl_block.c @@ -2,14 +2,16 @@ * This file is part of ioctl_block strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include "pidns.h" #include +#include #include #include #include @@ -24,7 +26,7 @@ static const unsigned int magic = 0xdeadbeef; static const unsigned long lmagic = (unsigned long) 0xdeadbeefbadc0dedULL; -static struct xlat block_argless[] = { +static struct xlat_data block_argless[] = { XLAT(BLKRRPART), XLAT(BLKFLSBUF), #ifdef BLKTRACESTART @@ -41,12 +43,15 @@ static struct xlat block_argless[] = { #define TEST_NULL_ARG(cmd) \ do { \ ioctl(-1, cmd, 0); \ + pidns_print_leader(); \ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", #cmd); \ } while (0) int main(void) { + PIDNS_TEST_INIT; + TEST_NULL_ARG(BLKBSZGET); TEST_NULL_ARG(BLKBSZSET); TEST_NULL_ARG(BLKFRAGET); @@ -91,18 +96,22 @@ main(void) #endif ioctl(-1, BLKRASET, lmagic); + pidns_print_leader(); printf("ioctl(-1, BLKRASET, %lu) = -1 EBADF (%m)\n", lmagic); ioctl(-1, BLKFRASET, lmagic); + pidns_print_leader(); printf("ioctl(-1, BLKFRASET, %lu) = -1 EBADF (%m)\n", lmagic); TAIL_ALLOC_OBJECT_CONST_PTR(int, val_int); *val_int = magic; ioctl(-1, BLKROSET, val_int); + pidns_print_leader(); printf("ioctl(-1, BLKROSET, [%d]) = -1 EBADF (%m)\n", *val_int); ioctl(-1, BLKBSZSET, val_int); + pidns_print_leader(); printf("ioctl(-1, BLKBSZSET, [%d]) = -1 EBADF (%m)\n", *val_int); uint64_t *pair_int64 = tail_alloc(sizeof(*pair_int64) * 2); @@ -111,18 +120,21 @@ main(void) #ifdef BLKDISCARD ioctl(-1, BLKDISCARD, pair_int64); + pidns_print_leader(); printf("ioctl(-1, BLKDISCARD, [%" PRIu64 ", %" PRIu64 "])" " = -1 EBADF (%m)\n", pair_int64[0], pair_int64[1]); #endif #ifdef BLKSECDISCARD ioctl(-1, BLKSECDISCARD, pair_int64); + pidns_print_leader(); printf("ioctl(-1, BLKSECDISCARD, [%" PRIu64 ", %" PRIu64 "])" " = -1 EBADF (%m)\n", pair_int64[0], pair_int64[1]); #endif #ifdef BLKZEROOUT ioctl(-1, BLKZEROOUT, pair_int64); + pidns_print_leader(); printf("ioctl(-1, BLKZEROOUT, [%" PRIu64 ", %" PRIu64 "])" " = -1 EBADF (%m)\n", pair_int64[0], pair_int64[1]); #endif @@ -134,6 +146,7 @@ main(void) blkpg->data = (void *) (unsigned long) 0xcafef00dfffffeedULL; ioctl(-1, BLKPG, blkpg); + pidns_print_leader(); printf("ioctl(-1, BLKPG, {op=%s, flags=%d, datalen=%d" ", data=%#lx}) = -1 EBADF (%m)\n", "BLKPG_RESIZE_PARTITION", blkpg->flags, blkpg->datalen, @@ -149,6 +162,7 @@ main(void) blkpg->data = bp; ioctl(-1, BLKPG, blkpg); + pidns_print_leader(); printf("ioctl(-1, BLKPG, {op=%s, flags=%d, datalen=%d" ", data={start=%lld, length=%lld, pno=%d" ", devname=\"%.*s\"..., volname=\"%.*s\"...}})" @@ -162,25 +176,31 @@ main(void) #if defined BLKTRACESETUP && defined HAVE_STRUCT_BLK_USER_TRACE_SETUP TAIL_ALLOC_OBJECT_CONST_PTR(struct blk_user_trace_setup, buts); fill_memory(buts, sizeof(*buts)); + buts->pid = getpid(); ioctl(-1, BLKTRACESETUP, buts); + pidns_print_leader(); printf("ioctl(-1, BLKTRACESETUP, {act_mask=%hu, buf_size=%u, buf_nr=%u" - ", start_lba=%" PRI__u64 ", end_lba=%" PRI__u64 ", pid=%u})" + ", start_lba=%" PRI__u64 ", end_lba=%" PRI__u64 ", pid=%d%s})" " = -1 EBADF (%m)\n", buts->act_mask, buts->buf_size, buts->buf_nr, - buts->start_lba, buts->end_lba, buts->pid); + buts->start_lba, buts->end_lba, buts->pid, + pidns_pid2str(PT_TGID)); #endif unsigned int i; for (i = 0; i < ARRAY_SIZE(block_argless); ++i) { ioctl(-1, (unsigned long) block_argless[i].val, lmagic); + pidns_print_leader(); printf("ioctl(-1, %s) = -1 EBADF (%m)\n", block_argless[i].str); } ioctl(-1, _IOC(_IOC_READ, 0x12, 0xfe, 0xff), lmagic); + pidns_print_leader(); printf("ioctl(-1, %s, %#lx) = -1 EBADF (%m)\n", "_IOC(_IOC_READ, 0x12, 0xfe, 0xff)", lmagic); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-mx32/ioctl_evdev-Xabbrev.c b/tests-mx32/ioctl_evdev-Xabbrev.c new file mode 100644 index 00000000..ac474bf6 --- /dev/null +++ b/tests-mx32/ioctl_evdev-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_evdev.c" diff --git a/tests-mx32/ioctl_evdev-Xabbrev.gen.test b/tests-mx32/ioctl_evdev-Xabbrev.gen.test new file mode 100755 index 00000000..5f724444 --- /dev/null +++ b/tests-mx32/ioctl_evdev-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-Xabbrev +ioctl.test -a26 -Xabbrev); do not edit. +set -- -a26 -Xabbrev +. "${srcdir=.}/ioctl.test" diff --git a/tests-mx32/ioctl_evdev-Xraw.c b/tests-mx32/ioctl_evdev-Xraw.c new file mode 100644 index 00000000..15f586f9 --- /dev/null +++ b/tests-mx32/ioctl_evdev-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_evdev.c" diff --git a/tests-mx32/ioctl_evdev-Xraw.gen.test b/tests-mx32/ioctl_evdev-Xraw.gen.test new file mode 100755 index 00000000..f292f4cb --- /dev/null +++ b/tests-mx32/ioctl_evdev-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-Xraw +ioctl.test -a28 -Xraw); do not edit. +set -- -a28 -Xraw +. "${srcdir=.}/ioctl.test" diff --git a/tests-mx32/ioctl_evdev-Xverbose.c b/tests-mx32/ioctl_evdev-Xverbose.c new file mode 100644 index 00000000..603c2f01 --- /dev/null +++ b/tests-mx32/ioctl_evdev-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_evdev.c" diff --git a/tests-mx32/ioctl_evdev-Xverbose.gen.test b/tests-mx32/ioctl_evdev-Xverbose.gen.test new file mode 100755 index 00000000..0b1b4fca --- /dev/null +++ b/tests-mx32/ioctl_evdev-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-Xverbose +ioctl.test -a41 -Xverbose); do not edit. +set -- -a41 -Xverbose +. "${srcdir=.}/ioctl.test" diff --git a/tests-mx32/ioctl_evdev-success-Xabbrev.c b/tests-mx32/ioctl_evdev-success-Xabbrev.c new file mode 100644 index 00000000..9f2416bf --- /dev/null +++ b/tests-mx32/ioctl_evdev-success-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_evdev-success.c" diff --git a/tests-mx32/ioctl_evdev-success-Xabbrev.gen.test b/tests-mx32/ioctl_evdev-success-Xabbrev.gen.test new file mode 100755 index 00000000..64323225 --- /dev/null +++ b/tests-mx32/ioctl_evdev-success-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-success-Xabbrev +ioctl_evdev-success.test -Xabbrev); do not edit. +set -- -Xabbrev +. "${srcdir=.}/ioctl_evdev-success.test" diff --git a/tests-mx32/ioctl_evdev-success-Xraw.c b/tests-mx32/ioctl_evdev-success-Xraw.c new file mode 100644 index 00000000..097672a7 --- /dev/null +++ b/tests-mx32/ioctl_evdev-success-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_evdev-success.c" diff --git a/tests-mx32/ioctl_evdev-success-Xraw.gen.test b/tests-mx32/ioctl_evdev-success-Xraw.gen.test new file mode 100755 index 00000000..c4f8c43b --- /dev/null +++ b/tests-mx32/ioctl_evdev-success-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-success-Xraw +ioctl_evdev-success.test -a27 -Xraw); do not edit. +set -- -a27 -Xraw +. "${srcdir=.}/ioctl_evdev-success.test" diff --git a/tests-mx32/ioctl_evdev-success-Xverbose.c b/tests-mx32/ioctl_evdev-success-Xverbose.c new file mode 100644 index 00000000..9ee67a08 --- /dev/null +++ b/tests-mx32/ioctl_evdev-success-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_evdev-success.c" diff --git a/tests-mx32/ioctl_evdev-success-Xverbose.gen.test b/tests-mx32/ioctl_evdev-success-Xverbose.gen.test new file mode 100755 index 00000000..a1781fc2 --- /dev/null +++ b/tests-mx32/ioctl_evdev-success-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-success-Xverbose +ioctl_evdev-success.test -a43 -Xverbose); do not edit. +set -- -a43 -Xverbose +. "${srcdir=.}/ioctl_evdev-success.test" diff --git a/tests-mx32/ioctl_evdev-success-v-Xabbrev.c b/tests-mx32/ioctl_evdev-success-v-Xabbrev.c new file mode 100644 index 00000000..566ad3ea --- /dev/null +++ b/tests-mx32/ioctl_evdev-success-v-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_evdev-success-v.c" diff --git a/tests-mx32/ioctl_evdev-success-v-Xabbrev.gen.test b/tests-mx32/ioctl_evdev-success-v-Xabbrev.gen.test new file mode 100755 index 00000000..cdb9e795 --- /dev/null +++ b/tests-mx32/ioctl_evdev-success-v-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-success-v-Xabbrev +ioctl_evdev-success.test -v -Xabbrev); do not edit. +set -- -v -Xabbrev +. "${srcdir=.}/ioctl_evdev-success.test" diff --git a/tests-mx32/ioctl_evdev-success-v-Xraw.c b/tests-mx32/ioctl_evdev-success-v-Xraw.c new file mode 100644 index 00000000..461bcd76 --- /dev/null +++ b/tests-mx32/ioctl_evdev-success-v-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_evdev-success-v.c" diff --git a/tests-mx32/ioctl_evdev-success-v-Xraw.gen.test b/tests-mx32/ioctl_evdev-success-v-Xraw.gen.test new file mode 100755 index 00000000..4c29234c --- /dev/null +++ b/tests-mx32/ioctl_evdev-success-v-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-success-v-Xraw +ioctl_evdev-success.test -a27 -v -Xraw); do not edit. +set -- -a27 -v -Xraw +. "${srcdir=.}/ioctl_evdev-success.test" diff --git a/tests-mx32/ioctl_evdev-success-v-Xverbose.c b/tests-mx32/ioctl_evdev-success-v-Xverbose.c new file mode 100644 index 00000000..17543205 --- /dev/null +++ b/tests-mx32/ioctl_evdev-success-v-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_evdev-success-v.c" diff --git a/tests-mx32/ioctl_evdev-success-v-Xverbose.gen.test b/tests-mx32/ioctl_evdev-success-v-Xverbose.gen.test new file mode 100755 index 00000000..d1d1cde5 --- /dev/null +++ b/tests-mx32/ioctl_evdev-success-v-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-success-v-Xverbose +ioctl_evdev-success.test -a43 -v -Xverbose); do not edit. +set -- -a43 -v -Xverbose +. "${srcdir=.}/ioctl_evdev-success.test" diff --git a/tests-mx32/ioctl_evdev-success-v.gen.test b/tests-mx32/ioctl_evdev-success-v.gen.test new file mode 100755 index 00000000..aa72de10 --- /dev/null +++ b/tests-mx32/ioctl_evdev-success-v.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-success-v +ioctl_evdev-success.test -a26 -v); do not edit. +set -- -a26 -v +. "${srcdir=.}/ioctl_evdev-success.test" diff --git a/tests-mx32/ioctl_evdev-success-v.test b/tests-mx32/ioctl_evdev-success-v.test deleted file mode 100755 index faedee30..00000000 --- a/tests-mx32/ioctl_evdev-success-v.test +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -efu -# -# Copyright (c) 2018 The strace developers. -# All rights reserved. -# -# SPDX-License-Identifier: GPL-2.0-or-later - -. "${srcdir=.}/scno_tampering.sh" - -: ${IOCTL_INJECT_START=256} -: ${IOCTL_INJECT_RETVAL=8} - -run_prog -run_strace -a16 -v -e trace=ioctl \ - -e inject=ioctl:retval="${IOCTL_INJECT_RETVAL}":when="${IOCTL_INJECT_START}+" \ - ../ioctl_evdev-success-v "${IOCTL_INJECT_START}" "${IOCTL_INJECT_RETVAL}"> "$EXP" -grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT" -match_diff "$OUT" "$EXP" diff --git a/tests-mx32/ioctl_evdev-success.c b/tests-mx32/ioctl_evdev-success.c index 7887d417..d6809be5 100644 --- a/tests-mx32/ioctl_evdev-success.c +++ b/tests-mx32/ioctl_evdev-success.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,6 +9,7 @@ #ifdef HAVE_LINUX_INPUT_H +# include # include # include # include @@ -16,17 +17,19 @@ # include # include "print_fields.h" +# define NUM_WORDS 4 + static const char *errstr; struct evdev_check { unsigned long cmd; const char *cmd_str; - void *arg_ptr; - void (*print_arg)(long rc, void *ptr, void *arg); + const void *arg_ptr; + void (*print_arg)(long rc, const void *ptr, const void *arg); }; static long -invoke_test_syscall(unsigned long cmd, void *p) +invoke_test_syscall(unsigned long cmd, const void *p) { long rc = ioctl(-1, cmd, p); errstr = sprintrc(rc); @@ -38,10 +41,10 @@ invoke_test_syscall(unsigned long cmd, void *p) } static void -test_evdev(struct evdev_check *check, void *arg) +test_evdev(struct evdev_check *check, const void *arg) { long rc = invoke_test_syscall(check->cmd, check->arg_ptr); - printf("ioctl(-1, %s, ", check->cmd_str); + printf("ioctl(-1, %s, ", sprintxlat(check->cmd_str, check->cmd, NULL)); if (check->print_arg) check->print_arg(rc, check->arg_ptr, arg); else @@ -50,9 +53,12 @@ test_evdev(struct evdev_check *check, void *arg) } static void -print_input_absinfo(long rc, void *ptr, void *arg) +print_input_absinfo(long rc, const void *ptr, const void *arg) { - struct input_absinfo *absinfo = ptr; + const struct input_absinfo *absinfo = ptr; +# if VERBOSE + const uintptr_t sz = (uintptr_t) arg; +# endif if (rc < 0) { printf("%p", absinfo); @@ -64,9 +70,20 @@ print_input_absinfo(long rc, void *ptr, void *arg) PRINT_FIELD_U(", ", *absinfo, maximum); PRINT_FIELD_U(", ", *absinfo, fuzz); PRINT_FIELD_U(", ", *absinfo, flat); + if (sz > offsetofend(struct input_absinfo, flat)) { + if (sz >= 24) { # ifdef HAVE_STRUCT_INPUT_ABSINFO_RESOLUTION - PRINT_FIELD_U(", ", *absinfo, resolution); + PRINT_FIELD_U(", ", *absinfo, resolution); +# else + printf(", resolution=%u", *((int *) ptr + 5)); # endif + + if (sz > 24) + printf(", ..."); + } else { + printf(", ..."); + } + } # else printf(", ..."); # endif @@ -74,66 +91,90 @@ print_input_absinfo(long rc, void *ptr, void *arg) } static void -print_input_id(long rc, void *ptr, void *arg) +print_input_id(long rc, const void *ptr, const void *arg) { - struct input_id *id = ptr; + const struct input_id *id = ptr; if (rc < 0) { printf("%p", id); return; } - printf("{ID_BUS=%" PRIu16 - ", ID_VENDOR=%" PRIu16 - ", ID_PRODUCT=%" PRIu16 - ", ID_VERSION=%" PRIu16 "}", + printf("{bustype=%" PRIu16 + ", vendor=%" PRIu16 + ", product=%" PRIu16 + ", version=%" PRIu16 "}", id->bustype, id->vendor, id->product, id->version); } # ifdef EVIOCGMTSLOTS static void -print_mtslots(long rc, void *ptr, void *arg) +print_mtslots(long rc, const void *ptr, const void *arg) { - int *buffer = ptr; - const char **str = arg; - int num = atoi(*(str + 1)); + const unsigned int *buffer = ptr; + const char * const * str = arg; if (rc < 0) { printf("%p", buffer); return; } - printf("{code=%s", *str); + printf("{code=%s", sprintxlat(*str, *buffer, NULL)); printf(", values=["); - for (unsigned int i = 1; i <= (unsigned) num; i++) - printf("%s%s", i > 1 ? ", " : "", *(str + i + 1)); + for (unsigned int i = 1; str[i]; i++) + printf("%s%s", i > 1 ? ", " : "", str[i]); printf("]}"); } # endif static void -print_getbit(long rc, void *ptr, void *arg) +print_getbit(long rc, const void *ptr, const void *arg) { - const char **str = arg; - int num = atoi(*str); + const char * const *str = arg + sizeof(char *); +# if XLAT_RAW || XLAT_VERBOSE + const unsigned long *buf = ptr; + const unsigned long buf_size = (uintptr_t) (str[-1]); +# endif - if (rc < 0) { + + + if (rc <= 0) { printf("%p", ptr); return; } +# if !XLAT_RAW printf("["); - printf("%s", *(str + 1)); - for (unsigned int i = 2; i <= (unsigned) num; i++) { -# if ! VERBOSE - if (i > 4) { + for (unsigned long i = 0; str[i]; i++) { +# if ! VERBOSE + if (i >= 4) { printf(", ..."); break; } -# endif - printf(", "); - printf("%s", *(str + i)); +# endif + if (i) + printf(", "); + printf("%s", str[i]); } printf("]"); +# endif /* !XLAT_RAW */ + +# if XLAT_VERBOSE + printf(" /* "); +# endif + +# if XLAT_RAW || XLAT_VERBOSE + printf("["); + const unsigned long cnt = + (MIN((unsigned long) rc, buf_size) + sizeof(long) - 1) + / sizeof(long); + for (unsigned long i = 0; i < cnt; i++) + printf("%s%#lx", i ? ", " : "", buf[i]); + printf("]"); +# endif + +# if XLAT_VERBOSE + printf(" */"); +# endif } int @@ -158,8 +199,8 @@ main(int argc, char **argv) for (unsigned int i = 0; i < num_skip; i++) { long rc = ioctl(-1, EVIOCGID, NULL); - printf("ioctl(-1, EVIOCGID, NULL) = %s%s\n", - sprintrc(rc), + printf("ioctl(-1, %s, NULL) = %s%s\n", + XLAT_STR(EVIOCGID), sprintrc(rc), rc == inject_retval ? " (INJECTED)" : ""); if (rc != inject_retval) @@ -174,52 +215,132 @@ main(int argc, char **argv) ", EVIOCGID, NULL) returning %lu", inject_retval); + static const void *absinfo_sz = + (const void *) (uintptr_t) sizeof(struct input_absinfo); + TAIL_ALLOC_OBJECT_CONST_PTR(struct input_id, id); TAIL_ALLOC_OBJECT_CONST_PTR(struct input_absinfo, absinfo); TAIL_ALLOC_OBJECT_CONST_PTR(int, bad_addr_slot); + + struct input_absinfo *absinfo_24 = tail_alloc(MAX(sizeof(*absinfo_24), + 24)); + struct input_absinfo *absinfo_32 = tail_alloc(MAX(sizeof(*absinfo_32), + 32)); + + fill_memory(absinfo, sizeof(struct input_absinfo)); + fill_memory(absinfo_24, 24); + fill_memory(absinfo_32, 32); + # ifdef EVIOCGMTSLOTS - int mtslots[] = { ABS_MT_SLOT, 1, 3 }; - /* we use the second element to indicate the number of values */ - /* mtslots_str[1] is "2" so the number of values is 2 */ - const char *mtslots_str[] = { "ABS_MT_SLOT", "2", "1", "3" }; + static const unsigned int mtslots[] = { ABS_MT_SLOT, 1, 3 }; + static const char * const mtslots_str[] = { + "ABS_MT_SLOT", "1", "3", NULL }; /* invalid flag */ - int invalid_mtslot[] = { -1, 1 }; - char invalid_str[4096]; - snprintf(invalid_str, sizeof(invalid_str), "%#x /* ABS_MT_??? */", invalid_mtslot[0]); - const char *invalid_mtslot_str[] = { invalid_str, "1", "1" }; + static const unsigned int invalid_mtslot[] = { -1, 1 }; + static const char * const invalid_mtslot_str[] = { + "" +# if !XLAT_RAW && !XLAT_VERBOSE + "0xffffffff" +# endif +# if !XLAT_VERBOSE + " /* " +# endif + "ABS_MT_???" +# if !XLAT_VERBOSE + " */" +# endif + , "1", NULL }; # endif + enum { ULONG_BIT = sizeof(unsigned long) * 8 }; + /* set more than 4 bits */ - unsigned long ev_more[] = { 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED | 1 << EV_SND | 1 << EV_PWR }; - /* we use the first element to indicate the number of set bits */ - /* ev_more_str[0] is "5" so the number of set bits is 5 */ - const char *ev_more_str[] = { "5", "EV_ABS", "EV_MSC", "EV_LED", "EV_SND", "EV_PWR" }; + static const unsigned long ev_more[NUM_WORDS] = { + 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED | 1 << EV_SND + | 1 << EV_PWR }; + static const char * const ev_more_str_2[] = { + (char *) (uintptr_t) 4, + XLAT_KNOWN(0x3, "EV_ABS"), XLAT_KNOWN(0x4, "EV_MSC"), NULL }; + static const char * const ev_more_str_3[] = { + (char *) (uintptr_t) 4, + XLAT_KNOWN(0x3, "EV_ABS"), XLAT_KNOWN(0x4, "EV_MSC"), + XLAT_KNOWN(0x11, "EV_LED"), XLAT_KNOWN(0x12, "EV_SND"), + XLAT_KNOWN(0x16, "EV_PWR"), NULL }; /* set less than 4 bits */ - unsigned long ev_less[] = { 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED }; - const char *ev_less_str[] = { "3", "EV_ABS", "EV_MSC", "EV_LED" }; + static const unsigned long ev_less[NUM_WORDS] = { + 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED }; + static const char * const ev_less_str_2[] = { + (char *) (uintptr_t) 4, + XLAT_KNOWN(0x3, "EV_ABS"), XLAT_KNOWN(0x4, "EV_MSC"), NULL }; + static const char * const ev_less_str_3[] = { + (char *) (uintptr_t) 4, + XLAT_KNOWN(0x3, "EV_ABS"), XLAT_KNOWN(0x4, "EV_MSC"), + XLAT_KNOWN(0x11, "EV_LED"), NULL }; /* set zero bit */ - unsigned long ev_zero[] = { 0x0 }; - const char *ev_zero_str[] = { "0", " 0 " }; + static const unsigned long ev_zero[NUM_WORDS] = { 0x0 }; + static const char * const ev_zero_str[] = { + (char *) (uintptr_t) 1, + " 0 ", NULL }; /* KEY_MAX is 0x2ff which is greater than retval * 8 */ - unsigned long key[] = { 1 << KEY_1 | 1 << KEY_2, 0 }; - const char *key_str[] = { "2", "KEY_1", "KEY_2" }; + static const unsigned long key[NUM_WORDS] = { + 1 << KEY_1 | 1 << KEY_2, + [ KEY_F12 / ULONG_BIT ] = 1 << (KEY_F12 % ULONG_BIT) }; + + static const char * const key_str_8[] = { + (char *) (uintptr_t) (NUM_WORDS * sizeof(long)), + XLAT_KNOWN(0x2, "KEY_1"), XLAT_KNOWN(0x3, "KEY_2"), NULL }; + static const char * const key_str_16[] = { + (char *) (uintptr_t) (NUM_WORDS * sizeof(long)), + XLAT_KNOWN(0x2, "KEY_1"), XLAT_KNOWN(0x3, "KEY_2"), + XLAT_KNOWN(0x58, "KEY_F12"), NULL }; + + assert(sizeof(ev_more) >= (unsigned long) inject_retval); + assert(sizeof(ev_less) >= (unsigned long) inject_retval); + assert(sizeof(ev_zero) >= (unsigned long) inject_retval); + assert(sizeof(key) >= (unsigned long) inject_retval); struct { struct evdev_check check; - void *ptr; + const void *ptr; } a[] = { { { ARG_STR(EVIOCGID), id, print_input_id }, NULL }, - { { ARG_STR(EVIOCGABS(ABS_X)), absinfo, print_input_absinfo }, NULL }, - { { ARG_STR(EVIOCGABS(ABS_Y)), absinfo, print_input_absinfo }, NULL }, - { { ARG_STR(EVIOCGABS(ABS_Y)), absinfo, print_input_absinfo }, NULL }, - { { ARG_STR(EVIOCGBIT(0, 0)), ev_more, print_getbit }, &ev_more_str }, - { { ARG_STR(EVIOCGBIT(0, 0)), ev_less, print_getbit }, &ev_less_str }, + { { _IOC(_IOC_READ, 'E', 0x40 + ABS_Y, 19), "EVIOCGABS(ABS_Y)", + absinfo, NULL }, NULL }, + { { _IOC(_IOC_READ, 'E', 0x40 + ABS_Y, 20), + "EVIOCGABS(ABS_Y)", absinfo, print_input_absinfo }, + (const void *) (uintptr_t) 20 }, + { { _IOC(_IOC_READ, 'E', 0x40 + ABS_Y, 21), + "EVIOCGABS(ABS_Y)", absinfo_24, print_input_absinfo }, + (const void *) (uintptr_t) 21 }, + { { _IOC(_IOC_READ, 'E', 0x40 + ABS_Y, 24), + "EVIOCGABS(ABS_Y)", absinfo_24, print_input_absinfo }, + (const void *) (uintptr_t) 24 }, + { { _IOC(_IOC_READ, 'E', 0x40 + ABS_Y, 32), + "EVIOCGABS(ABS_Y)", absinfo_32, print_input_absinfo }, + (const void *) (uintptr_t) 32 }, + { { ARG_STR(EVIOCGABS(ABS_X)), absinfo, print_input_absinfo }, + absinfo_sz}, + { { ARG_STR(EVIOCGABS(ABS_Y)), absinfo, print_input_absinfo }, + absinfo_sz }, + { { ARG_STR(EVIOCGABS(ABS_Y)), absinfo, print_input_absinfo }, + absinfo_sz }, + { { ARG_STR(EVIOCGBIT(0, 0)), ev_more, print_getbit }, + inject_retval * 8 <= EV_LED + ? (const void *) &ev_more_str_2 + : (const void *) &ev_more_str_3 }, + { { ARG_STR(EVIOCGBIT(0, 0)), ev_less, print_getbit }, + inject_retval * 8 <= EV_LED + ? (const void *) &ev_less_str_2 + : (const void *) &ev_less_str_3 }, { { ARG_STR(EVIOCGBIT(0, 0)), ev_zero, print_getbit }, &ev_zero_str }, - { { ARG_STR(EVIOCGBIT(EV_KEY, 0)), key, print_getbit }, &key_str}, + { { ARG_STR(EVIOCGBIT(EV_KEY, 0)), key, print_getbit }, + inject_retval * 8 <= KEY_F12 + ? (const void *) &key_str_8 + : (const void *) &key_str_16 }, # ifdef EVIOCGMTSLOTS { { ARG_STR(EVIOCGMTSLOTS(12)), mtslots, print_mtslots }, &mtslots_str }, { { ARG_STR(EVIOCGMTSLOTS(8)), invalid_mtslot, print_mtslots }, &invalid_mtslot_str } diff --git a/tests-mx32/ioctl_evdev-success.test b/tests-mx32/ioctl_evdev-success.test index 54b0a20a..0a7489d3 100755 --- a/tests-mx32/ioctl_evdev-success.test +++ b/tests-mx32/ioctl_evdev-success.test @@ -1,6 +1,6 @@ #!/bin/sh -efu # -# Copyright (c) 2018 The strace developers. +# Copyright (c) 2018-2019 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -8,11 +8,15 @@ . "${srcdir=.}/scno_tampering.sh" : ${IOCTL_INJECT_START=256} -: ${IOCTL_INJECT_RETVAL=8} run_prog -run_strace -a16 -e trace=ioctl \ - -e inject=ioctl:retval="${IOCTL_INJECT_RETVAL}":when="${IOCTL_INJECT_START}+" \ - ../ioctl_evdev-success "${IOCTL_INJECT_START}" "${IOCTL_INJECT_RETVAL}"> "$EXP" -grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT" -match_diff "$OUT" "$EXP" +prog="$args" + +for ret in 0 2 8 15 16; do + run_strace -a26 "$@" -e trace=ioctl \ + -e inject=ioctl:retval="${ret}":when="${IOCTL_INJECT_START}+" \ + "$prog" \ + "${IOCTL_INJECT_START}" "${ret}"> "$EXP.${ret}" + grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT.$ret" + match_diff "$OUT.$ret" "$EXP.$ret" +done diff --git a/tests-mx32/ioctl_evdev-v-Xabbrev.c b/tests-mx32/ioctl_evdev-v-Xabbrev.c new file mode 100644 index 00000000..b2ed15cb --- /dev/null +++ b/tests-mx32/ioctl_evdev-v-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_evdev-v.c" diff --git a/tests-mx32/ioctl_evdev-v-Xabbrev.gen.test b/tests-mx32/ioctl_evdev-v-Xabbrev.gen.test new file mode 100755 index 00000000..f6efb73b --- /dev/null +++ b/tests-mx32/ioctl_evdev-v-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-v-Xabbrev +ioctl.test -a26 -v -Xabbrev); do not edit. +set -- -a26 -v -Xabbrev +. "${srcdir=.}/ioctl.test" diff --git a/tests-mx32/ioctl_evdev-v-Xraw.c b/tests-mx32/ioctl_evdev-v-Xraw.c new file mode 100644 index 00000000..c6f4e535 --- /dev/null +++ b/tests-mx32/ioctl_evdev-v-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_evdev-v.c" diff --git a/tests-mx32/ioctl_evdev-v-Xraw.gen.test b/tests-mx32/ioctl_evdev-v-Xraw.gen.test new file mode 100755 index 00000000..d4460685 --- /dev/null +++ b/tests-mx32/ioctl_evdev-v-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-v-Xraw +ioctl.test -a28 -v -Xraw); do not edit. +set -- -a28 -v -Xraw +. "${srcdir=.}/ioctl.test" diff --git a/tests-mx32/ioctl_evdev-v-Xverbose.c b/tests-mx32/ioctl_evdev-v-Xverbose.c new file mode 100644 index 00000000..f9112774 --- /dev/null +++ b/tests-mx32/ioctl_evdev-v-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_evdev-v.c" diff --git a/tests-mx32/ioctl_evdev-v-Xverbose.gen.test b/tests-mx32/ioctl_evdev-v-Xverbose.gen.test new file mode 100755 index 00000000..7f9c2984 --- /dev/null +++ b/tests-mx32/ioctl_evdev-v-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-v-Xverbose +ioctl.test -a41 -v -Xverbose); do not edit. +set -- -a41 -v -Xverbose +. "${srcdir=.}/ioctl.test" diff --git a/tests-mx32/ioctl_evdev-v.gen.test b/tests-mx32/ioctl_evdev-v.gen.test index bf74ef4c..3b012fb9 100755 --- a/tests-mx32/ioctl_evdev-v.gen.test +++ b/tests-mx32/ioctl_evdev-v.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-v +ioctl.test -v); do not edit. -set -- -v +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-v +ioctl.test -a26 -v); do not edit. +set -- -a26 -v . "${srcdir=.}/ioctl.test" diff --git a/tests-mx32/ioctl_evdev.c b/tests-mx32/ioctl_evdev.c index 02be472c..e97b5498 100644 --- a/tests-mx32/ioctl_evdev.c +++ b/tests-mx32/ioctl_evdev.c @@ -2,7 +2,7 @@ * This file is part of ioctl_evdev strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -26,6 +26,12 @@ # define ABS_MT_TOOL_Y 0x3d # endif +# if XLAT_VERBOSE +# define UNK_CMD(val_, str_) val_ +# else +# define UNK_CMD(val_, str_) val_ " /* " str_ " */" +# endif + static const unsigned int magic = 0xdeadbeef; static const unsigned long lmagic = (unsigned long) 0xdeadbeefbadc0dedULL; @@ -43,9 +49,11 @@ print_envelope(const struct ff_envelope *const e) static void print_ffe_common(const struct ff_effect *const ffe, const char *const type_str) { - printf("ioctl(-1, EVIOCSFF, {type=%s, id=%" PRIu16 + printf("ioctl(-1, %s", XLAT_STR(EVIOCSFF)); + printf(", {type=%s, id=%" PRId16 ", direction=%" PRIu16 ", ", - type_str, ffe->id, ffe->direction); + sprintxlat(type_str, ffe->type, NULL), + ffe->id, ffe->direction); # if VERBOSE printf("trigger={button=%hu, interval=%hu}" ", replay={length=%hu, delay=%hu}", @@ -54,10 +62,11 @@ print_ffe_common(const struct ff_effect *const ffe, const char *const type_str) # endif /* VERBOSE */ } -# define TEST_NULL_ARG_EX(cmd, str) \ +# define TEST_NULL_ARG_EX(cmd, str) \ do { \ ioctl(-1, cmd, 0); \ - printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", str); \ + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", \ + sprintxlat(str, cmd, NULL)); \ } while (0) # define TEST_NULL_ARG(cmd) TEST_NULL_ARG_EX(cmd, #cmd) @@ -107,17 +116,23 @@ main(void) TEST_NULL_ARG(EVIOCGABS(ABS_X)); TEST_NULL_ARG(EVIOCSABS(ABS_X)); - TEST_NULL_ARG_EX(EVIOCGABS(0xe), "EVIOCGABS(0xe /* ABS_??? */)"); - TEST_NULL_ARG_EX(EVIOCSABS(0xe), "EVIOCSABS(0xe /* ABS_??? */)"); + TEST_NULL_ARG_EX(EVIOCGABS(0xe), + "EVIOCGABS(" UNK_CMD("0xe", "ABS_???") ")"); + TEST_NULL_ARG_EX(EVIOCSABS(0xe), + "EVIOCSABS(" UNK_CMD("0xe", "ABS_???") ")"); TEST_NULL_ARG(EVIOCGABS(ABS_MT_TOOL_Y)); TEST_NULL_ARG(EVIOCSABS(ABS_MT_TOOL_Y)); - TEST_NULL_ARG_EX(EVIOCGABS(0x3e), "EVIOCGABS(0x3e /* ABS_??? */)"); - TEST_NULL_ARG_EX(EVIOCSABS(0x3e), "EVIOCSABS(0x3e /* ABS_??? */)"); + TEST_NULL_ARG_EX(EVIOCGABS(0x3e), + "EVIOCGABS(" UNK_CMD("0x3e", "ABS_???") ")"); + TEST_NULL_ARG_EX(EVIOCSABS(0x3e), + "EVIOCSABS(" UNK_CMD("0x3e", "ABS_???") ")"); - TEST_NULL_ARG_EX(EVIOCGABS(0x3f), "EVIOCGABS(0x3f /* ABS_??? */)"); - TEST_NULL_ARG_EX(EVIOCSABS(0x3f), "EVIOCSABS(0x3f /* ABS_??? */)"); + TEST_NULL_ARG_EX(EVIOCGABS(0x3f), + "EVIOCGABS(" UNK_CMD("0x3f", "ABS_???") ")"); + TEST_NULL_ARG_EX(EVIOCSABS(0x3f), + "EVIOCSABS(" UNK_CMD("0x3f", "ABS_???") ")"); TEST_NULL_ARG(EVIOCGBIT(0, 0)); TEST_NULL_ARG(EVIOCGBIT(EV_KEY, 1)); @@ -132,25 +147,36 @@ main(void) TEST_NULL_ARG(EVIOCGBIT(EV_PWR, 10)); TEST_NULL_ARG(EVIOCGBIT(EV_FF_STATUS, 11)); - TEST_NULL_ARG_EX(EVIOCGBIT(0x6, 12), "EVIOCGBIT(0x6 /* EV_??? */, 12)"); + TEST_NULL_ARG_EX(EVIOCGBIT(0x6, 12), + "EVIOCGBIT(" UNK_CMD("0x6", "EV_???") ", 12)"); TEST_NULL_ARG_EX(EVIOCGBIT(0x18, 13), - "EVIOCGBIT(0x18 /* EV_??? */, 13)"); + "EVIOCGBIT(" UNK_CMD("0x18", "EV_???") ", 13)"); TEST_NULL_ARG_EX(EVIOCGBIT(0x1f, 14), - "EVIOCGBIT(0x1f /* EV_??? */, 14)"); + "EVIOCGBIT(" UNK_CMD("0x1f", "EV_???") ", 14)"); ioctl(-1, EVIOCGBIT(EV_MAX, 42), 0); - printf("ioctl(-1, EVIOCGBIT(%#x /* EV_??? */, 42), NULL)" - " = -1 EBADF (%m)\n", EV_MAX); + printf("ioctl(-1, "); +# if XLAT_RAW + printf("%#x", EVIOCGBIT(EV_MAX, 42)); +# elif XLAT_VERBOSE + printf("%#x /* EVIOCGBIT(%#x, 42) */", EVIOCGBIT(EV_MAX, 42), EV_MAX); +# else + printf("EVIOCGBIT(%#x /* EV_??? */, 42)", EV_MAX); +# endif + printf(", NULL) = -1 EBADF (%m)\n"); ioctl(-1, EVIOCRMFF, lmagic); - printf("ioctl(-1, EVIOCRMFF, %d) = -1 EBADF (%m)\n", (int) lmagic); + printf("ioctl(-1, %s, %d) = -1 EBADF (%m)\n", + XLAT_STR(EVIOCRMFF), (int) lmagic); ioctl(-1, EVIOCGRAB, lmagic); - printf("ioctl(-1, EVIOCGRAB, %lu) = -1 EBADF (%m)\n", lmagic); + printf("ioctl(-1, %s, %lu) = -1 EBADF (%m)\n", + XLAT_STR(EVIOCGRAB), lmagic); # ifdef EVIOCREVOKE ioctl(-1, EVIOCREVOKE, lmagic); - printf("ioctl(-1, EVIOCREVOKE, %lu) = -1 EBADF (%m)\n", lmagic); + printf("ioctl(-1, %s, %lu) = -1 EBADF (%m)\n", + XLAT_STR(EVIOCREVOKE), lmagic); # endif const unsigned int size = get_page_size(); @@ -162,7 +188,8 @@ main(void) # ifdef EVIOCSCLOCKID ioctl(-1, EVIOCSCLOCKID, val_int); - printf("ioctl(-1, EVIOCSCLOCKID, [%u]) = -1 EBADF (%m)\n", *val_int); + printf("ioctl(-1, %s, [%u]) = -1 EBADF (%m)\n", + XLAT_STR(EVIOCSCLOCKID), *val_int); # endif int *pair_int = tail_alloc(sizeof(*pair_int) * 2); @@ -171,14 +198,15 @@ main(void) # ifdef EVIOSGREP ioctl(-1, EVIOCSREP, pair_int); - printf("ioctl(-1, EVIOCSREP, [%u, %u]) = -1 EBADF (%m)\n", - pair_int[0], pair_int[1]); + printf("ioctl(-1, %s, [%u, %u]) = -1 EBADF (%m)\n", + XLAT_STR(EVIOCSREP), pair_int[0], pair_int[1]); # endif pair_int[1] = 1; ioctl(-1, EVIOCSKEYCODE, pair_int); - printf("ioctl(-1, EVIOCSKEYCODE, [%u, %s]) = -1 EBADF (%m)\n", - pair_int[0], "KEY_ESC"); + printf("ioctl(-1, %s, [%u, %s]) = -1 EBADF (%m)\n", + XLAT_STR(EVIOCSKEYCODE), pair_int[0], + XLAT_KNOWN(0x1, "KEY_ESC")); # ifdef EVIOCSKEYCODE_V2 TAIL_ALLOC_OBJECT_CONST_PTR(struct input_keymap_entry, ike); @@ -186,16 +214,16 @@ main(void) ike->keycode = 2; ioctl(-1, EVIOCSKEYCODE_V2, ike); - printf("ioctl(-1, EVIOCSKEYCODE_V2, {flags=%" PRIu8 - ", len=%" PRIu8 ", ", ike->flags, ike->len); + printf("ioctl(-1, %s, {flags=%" PRIu8 ", len=%" PRIu8 ", ", + XLAT_STR(EVIOCSKEYCODE_V2), ike->flags, ike->len); # if VERBOSE printf("index=%" PRIu16 ", keycode=%s, scancode=[", - ike->index, "KEY_1"); + ike->index, XLAT_STR(KEY_1)); unsigned int i; for (i = 0; i < ARRAY_SIZE(ike->scancode); ++i) { if (i > 0) printf(", "); - printf("%" PRIx8, ike->scancode[i]); + printf("%#" PRIx8, ike->scancode[i]); } printf("]"); # else @@ -256,26 +284,37 @@ main(void) ffe->type = 0xff; ioctl(-1, EVIOCSFF, ffe); - print_ffe_common(ffe, "0xff /* FF_??? */"); + print_ffe_common(ffe, +# if !XLAT_RAW && !XLAT_VERBOSE + "0xff" +# endif +# if !XLAT_VERBOSE + " /* " +# endif + "FF_???" +# if !XLAT_VERBOSE + " */" +# endif + ); errno = EBADF; printf("}) = -1 EBADF (%m)\n"); # endif ioctl(-1, _IOC(_IOC_READ, 0x45, 0x1, 0xff), lmagic); printf("ioctl(-1, %s, %#lx) = -1 EBADF (%m)\n", - "_IOC(_IOC_READ, 0x45, 0x1, 0xff)", lmagic); + XLAT_STR(_IOC(_IOC_READ, 0x45, 0x1, 0xff)), lmagic); ioctl(-1, _IOC(_IOC_WRITE, 0x45, 0x1, 0xff), lmagic); printf("ioctl(-1, %s, %#lx) = -1 EBADF (%m)\n", - "_IOC(_IOC_WRITE, 0x45, 0x1, 0xff)", lmagic); + XLAT_STR(_IOC(_IOC_WRITE, 0x45, 0x1, 0xff)), lmagic); ioctl(-1, _IOC(_IOC_READ|_IOC_WRITE, 0x45, 0xfe, 0xff), lmagic); printf("ioctl(-1, %s, %#lx) = -1 EBADF (%m)\n", - "_IOC(_IOC_READ|_IOC_WRITE, 0x45, 0xfe, 0xff)", lmagic); + XLAT_STR(_IOC(_IOC_READ|_IOC_WRITE, 0x45, 0xfe, 0xff)), lmagic); ioctl(-1, _IOC(_IOC_READ|_IOC_WRITE, 0x45, 0, 0), lmagic); printf("ioctl(-1, %s, %#lx) = -1 EBADF (%m)\n", - "_IOC(_IOC_READ|_IOC_WRITE, 0x45, 0, 0)", lmagic); + XLAT_STR(_IOC(_IOC_READ|_IOC_WRITE, 0x45, 0, 0)), lmagic); puts("+++ exited with 0 +++"); return 0; diff --git a/tests-mx32/ioctl_evdev.gen.test b/tests-mx32/ioctl_evdev.gen.test index 68a43f7c..4b9ba413 100755 --- a/tests-mx32/ioctl_evdev.gen.test +++ b/tests-mx32/ioctl_evdev.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev +ioctl.test ); do not edit. -set -- +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev +ioctl.test -a26); do not edit. +set -- -a26 . "${srcdir=.}/ioctl.test" diff --git a/tests-mx32/ioctl_hdio-Xabbrev.c b/tests-mx32/ioctl_hdio-Xabbrev.c new file mode 100644 index 00000000..aa0af2ac --- /dev/null +++ b/tests-mx32/ioctl_hdio-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_hdio.c" diff --git a/tests-mx32/ioctl_hdio-Xabbrev.gen.test b/tests-mx32/ioctl_hdio-Xabbrev.gen.test new file mode 100755 index 00000000..1ab876b9 --- /dev/null +++ b/tests-mx32/ioctl_hdio-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-Xabbrev +ioctl.test -a27 -Xabbrev); do not edit. +set -- -a27 -Xabbrev +. "${srcdir=.}/ioctl.test" diff --git a/tests-mx32/ioctl_hdio-Xraw.c b/tests-mx32/ioctl_hdio-Xraw.c new file mode 100644 index 00000000..9e169a85 --- /dev/null +++ b/tests-mx32/ioctl_hdio-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_hdio.c" diff --git a/tests-mx32/ioctl_hdio-Xraw.gen.test b/tests-mx32/ioctl_hdio-Xraw.gen.test new file mode 100755 index 00000000..fa03656b --- /dev/null +++ b/tests-mx32/ioctl_hdio-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-Xraw +ioctl.test -a20 -Xraw); do not edit. +set -- -a20 -Xraw +. "${srcdir=.}/ioctl.test" diff --git a/tests-mx32/ioctl_hdio-Xverbose.c b/tests-mx32/ioctl_hdio-Xverbose.c new file mode 100644 index 00000000..29e45e8e --- /dev/null +++ b/tests-mx32/ioctl_hdio-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_hdio.c" diff --git a/tests-mx32/ioctl_hdio-Xverbose.gen.test b/tests-mx32/ioctl_hdio-Xverbose.gen.test new file mode 100755 index 00000000..1dde165f --- /dev/null +++ b/tests-mx32/ioctl_hdio-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-Xverbose +ioctl.test -a39 -Xverbose); do not edit. +set -- -a39 -Xverbose +. "${srcdir=.}/ioctl.test" diff --git a/tests-mx32/ioctl_hdio-success-Xabbrev.c b/tests-mx32/ioctl_hdio-success-Xabbrev.c new file mode 100644 index 00000000..410f1969 --- /dev/null +++ b/tests-mx32/ioctl_hdio-success-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_hdio-success.c" diff --git a/tests-mx32/ioctl_hdio-success-Xabbrev.gen.test b/tests-mx32/ioctl_hdio-success-Xabbrev.gen.test new file mode 100755 index 00000000..fa74b9e7 --- /dev/null +++ b/tests-mx32/ioctl_hdio-success-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-success-Xabbrev +ioctl-success.sh -a27 -Xabbrev); do not edit. +set -- -a27 -Xabbrev +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-mx32/ioctl_hdio-success-Xraw.c b/tests-mx32/ioctl_hdio-success-Xraw.c new file mode 100644 index 00000000..ee63bb8b --- /dev/null +++ b/tests-mx32/ioctl_hdio-success-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_hdio-success.c" diff --git a/tests-mx32/ioctl_hdio-success-Xraw.gen.test b/tests-mx32/ioctl_hdio-success-Xraw.gen.test new file mode 100755 index 00000000..2ac7c9cd --- /dev/null +++ b/tests-mx32/ioctl_hdio-success-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-success-Xraw +ioctl-success.sh -a20 -Xraw); do not edit. +set -- -a20 -Xraw +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-mx32/ioctl_hdio-success-Xverbose.c b/tests-mx32/ioctl_hdio-success-Xverbose.c new file mode 100644 index 00000000..bef62b06 --- /dev/null +++ b/tests-mx32/ioctl_hdio-success-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_hdio-success.c" diff --git a/tests-mx32/ioctl_hdio-success-Xverbose.gen.test b/tests-mx32/ioctl_hdio-success-Xverbose.gen.test new file mode 100755 index 00000000..acbded54 --- /dev/null +++ b/tests-mx32/ioctl_hdio-success-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-success-Xverbose +ioctl-success.sh -a39 -Xverbose); do not edit. +set -- -a39 -Xverbose +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-mx32/ioctl_hdio-success-v-Xabbrev.c b/tests-mx32/ioctl_hdio-success-v-Xabbrev.c new file mode 100644 index 00000000..13745378 --- /dev/null +++ b/tests-mx32/ioctl_hdio-success-v-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_hdio-success-v.c" diff --git a/tests-mx32/ioctl_hdio-success-v-Xabbrev.gen.test b/tests-mx32/ioctl_hdio-success-v-Xabbrev.gen.test new file mode 100755 index 00000000..d6a3ab28 --- /dev/null +++ b/tests-mx32/ioctl_hdio-success-v-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-success-v-Xabbrev +ioctl-success.sh -a27 -v -Xabbrev); do not edit. +set -- -a27 -v -Xabbrev +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-mx32/ioctl_hdio-success-v-Xraw.c b/tests-mx32/ioctl_hdio-success-v-Xraw.c new file mode 100644 index 00000000..c34ad585 --- /dev/null +++ b/tests-mx32/ioctl_hdio-success-v-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_hdio-success-v.c" diff --git a/tests-mx32/ioctl_hdio-success-v-Xraw.gen.test b/tests-mx32/ioctl_hdio-success-v-Xraw.gen.test new file mode 100755 index 00000000..b0d664bd --- /dev/null +++ b/tests-mx32/ioctl_hdio-success-v-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-success-v-Xraw +ioctl-success.sh -a20 -v -Xraw); do not edit. +set -- -a20 -v -Xraw +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-mx32/ioctl_hdio-success-v-Xverbose.c b/tests-mx32/ioctl_hdio-success-v-Xverbose.c new file mode 100644 index 00000000..4f44b496 --- /dev/null +++ b/tests-mx32/ioctl_hdio-success-v-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_hdio-success-v.c" diff --git a/tests-mx32/ioctl_hdio-success-v-Xverbose.gen.test b/tests-mx32/ioctl_hdio-success-v-Xverbose.gen.test new file mode 100755 index 00000000..72e9f62d --- /dev/null +++ b/tests-mx32/ioctl_hdio-success-v-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-success-v-Xverbose +ioctl-success.sh -a39 -v -Xverbose); do not edit. +set -- -a39 -v -Xverbose +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-mx32/ioctl_hdio-success-v.c b/tests-mx32/ioctl_hdio-success-v.c new file mode 100644 index 00000000..f48ca935 --- /dev/null +++ b/tests-mx32/ioctl_hdio-success-v.c @@ -0,0 +1,2 @@ +#define VERBOSE 1 +#include "ioctl_hdio-success.c" diff --git a/tests-mx32/ioctl_hdio-success-v.gen.test b/tests-mx32/ioctl_hdio-success-v.gen.test new file mode 100755 index 00000000..a4b6c0fe --- /dev/null +++ b/tests-mx32/ioctl_hdio-success-v.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-success-v +ioctl-success.sh -a27 -v); do not edit. +set -- -a27 -v +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-mx32/ioctl_hdio-success.c b/tests-mx32/ioctl_hdio-success.c new file mode 100644 index 00000000..680d7033 --- /dev/null +++ b/tests-mx32/ioctl_hdio-success.c @@ -0,0 +1,2 @@ +#define INJECT_RETVAL 42 +#include "ioctl_hdio.c" diff --git a/tests-mx32/ioctl_hdio-success.gen.test b/tests-mx32/ioctl_hdio-success.gen.test new file mode 100755 index 00000000..ec9318ad --- /dev/null +++ b/tests-mx32/ioctl_hdio-success.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-success +ioctl-success.sh -a27); do not edit. +set -- -a27 +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-mx32/ioctl_hdio-v-Xabbrev.c b/tests-mx32/ioctl_hdio-v-Xabbrev.c new file mode 100644 index 00000000..86aca7d6 --- /dev/null +++ b/tests-mx32/ioctl_hdio-v-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_hdio-v.c" diff --git a/tests-mx32/ioctl_hdio-v-Xabbrev.gen.test b/tests-mx32/ioctl_hdio-v-Xabbrev.gen.test new file mode 100755 index 00000000..92df94d8 --- /dev/null +++ b/tests-mx32/ioctl_hdio-v-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-v-Xabbrev +ioctl.test -a27 -v -Xabbrev); do not edit. +set -- -a27 -v -Xabbrev +. "${srcdir=.}/ioctl.test" diff --git a/tests-mx32/ioctl_hdio-v-Xraw.c b/tests-mx32/ioctl_hdio-v-Xraw.c new file mode 100644 index 00000000..e55841aa --- /dev/null +++ b/tests-mx32/ioctl_hdio-v-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_hdio-v.c" diff --git a/tests-mx32/ioctl_hdio-v-Xraw.gen.test b/tests-mx32/ioctl_hdio-v-Xraw.gen.test new file mode 100755 index 00000000..a7e81ca1 --- /dev/null +++ b/tests-mx32/ioctl_hdio-v-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-v-Xraw +ioctl.test -a20 -v -Xraw); do not edit. +set -- -a20 -v -Xraw +. "${srcdir=.}/ioctl.test" diff --git a/tests-mx32/ioctl_hdio-v-Xverbose.c b/tests-mx32/ioctl_hdio-v-Xverbose.c new file mode 100644 index 00000000..00b524eb --- /dev/null +++ b/tests-mx32/ioctl_hdio-v-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_hdio-v.c" diff --git a/tests-mx32/ioctl_hdio-v-Xverbose.gen.test b/tests-mx32/ioctl_hdio-v-Xverbose.gen.test new file mode 100755 index 00000000..eba5488c --- /dev/null +++ b/tests-mx32/ioctl_hdio-v-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-v-Xverbose +ioctl.test -a39 -v -Xverbose); do not edit. +set -- -a39 -v -Xverbose +. "${srcdir=.}/ioctl.test" diff --git a/tests-mx32/ioctl_hdio-v.c b/tests-mx32/ioctl_hdio-v.c new file mode 100644 index 00000000..fcff6702 --- /dev/null +++ b/tests-mx32/ioctl_hdio-v.c @@ -0,0 +1,2 @@ +#define VERBOSE 1 +#include "ioctl_hdio.c" diff --git a/tests-mx32/ioctl_hdio-v.gen.test b/tests-mx32/ioctl_hdio-v.gen.test new file mode 100755 index 00000000..7d1adc3d --- /dev/null +++ b/tests-mx32/ioctl_hdio-v.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-v +ioctl.test -a27 -v); do not edit. +set -- -a27 -v +. "${srcdir=.}/ioctl.test" diff --git a/tests-mx32/ioctl_hdio.c b/tests-mx32/ioctl_hdio.c new file mode 100644 index 00000000..d340782c --- /dev/null +++ b/tests-mx32/ioctl_hdio.c @@ -0,0 +1,227 @@ +/* + * Check HDIO_* ioctl decoding. + * + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#include +#include +#include +#include +#include + +static const char *errstr; + +static long +do_ioctl(kernel_ulong_t cmd, kernel_ulong_t arg) +{ + long rc = ioctl(-1, cmd, arg); + + errstr = sprintrc(rc); + +#ifdef INJECT_RETVAL + if (rc != INJECT_RETVAL) + error_msg_and_fail("Got a return value of %ld != %ld", + rc, (long) INJECT_RETVAL); + + static char inj_errstr[4096]; + + snprintf(inj_errstr, sizeof(inj_errstr), "%s (INJECTED)", errstr); + errstr = inj_errstr; +#endif + + return rc; +} + +static inline long +do_ioctl_ptr(kernel_ulong_t cmd, const void *arg) +{ + return do_ioctl(cmd, (uintptr_t) arg); +} + +int +main(int argc, char *argv[]) +{ +#ifdef INJECT_RETVAL + unsigned long num_skip; + bool locked = false; + + if (argc < 2) + error_msg_and_fail("Usage: %s NUM_SKIP", argv[0]); + + num_skip = strtoul(argv[1], NULL, 0); + + for (size_t i = 0; i < num_skip; i++) { + long ret = ioctl(-1, HDIO_GET_UNMASKINTR, 0); + + printf("ioctl(-1, %s, 0) = %s%s\n", + XLAT_STR(HDIO_GET_UNMASKINTR), sprintrc(ret), + ret == INJECT_RETVAL ? " (INJECTED)" : ""); + + if (ret != INJECT_RETVAL) + continue; + + locked = true; + break; + } + + if (!locked) + error_msg_and_fail("Hasn't locked on ioctl(-1" + ", HDIO_GET_UNMASKINTR, 0) returning %d", + INJECT_RETVAL); +#endif + + long rc; + + /* Decoding is not supported */ + static const struct { + uint32_t cmd; + const char *str; + } unsupp_cmds[] = { + { ARG_STR(HDIO_GET_UNMASKINTR) }, + { ARG_STR(HDIO_GET_MULTCOUNT) }, + { ARG_STR(HDIO_GET_QDMA) }, + { ARG_STR(HDIO_SET_XFER) }, + { ARG_STR(HDIO_OBSOLETE_IDENTITY) }, + { ARG_STR(HDIO_GET_KEEPSETTINGS) }, + { ARG_STR(HDIO_GET_32BIT) }, + { ARG_STR(HDIO_GET_NOWERR) }, + { ARG_STR(HDIO_GET_DMA) }, + { ARG_STR(HDIO_GET_NICE) }, + { ARG_STR(HDIO_GET_IDENTITY) }, + { ARG_STR(HDIO_GET_WCACHE) }, + { ARG_STR(HDIO_GET_ACOUSTIC) }, + { ARG_STR(HDIO_GET_ADDRESS) }, + { ARG_STR(HDIO_GET_BUSSTATE) }, + { ARG_STR(HDIO_TRISTATE_HWIF) }, + { ARG_STR(HDIO_DRIVE_RESET) }, + { ARG_STR(HDIO_DRIVE_TASKFILE) }, + { ARG_STR(HDIO_DRIVE_TASK) }, + { ARG_STR(HDIO_SET_MULTCOUNT) }, + { ARG_STR(HDIO_SET_UNMASKINTR) }, + { ARG_STR(HDIO_SET_KEEPSETTINGS) }, + { ARG_STR(HDIO_SET_32BIT) }, + { ARG_STR(HDIO_SET_NOWERR) }, + { ARG_STR(HDIO_SET_DMA) }, + { ARG_STR(HDIO_SET_PIO_MODE) }, + { ARG_STR(HDIO_SCAN_HWIF) }, + { ARG_STR(HDIO_UNREGISTER_HWIF) }, + { ARG_STR(HDIO_SET_NICE) }, + { ARG_STR(HDIO_SET_WCACHE) }, + { ARG_STR(HDIO_SET_ACOUSTIC) }, + { ARG_STR(HDIO_SET_BUSSTATE) }, + { ARG_STR(HDIO_SET_QDMA) }, + { ARG_STR(HDIO_SET_ADDRESS) }, + }; + + for (size_t i = 0; i < ARRAY_SIZE(unsupp_cmds); i++) { + do_ioctl(unsupp_cmds[i].cmd, 0); + printf("ioctl(-1, " XLAT_FMT ", 0) = %s\n", + XLAT_SEL(unsupp_cmds[i].cmd, unsupp_cmds[i].str), + errstr); + + do_ioctl(unsupp_cmds[i].cmd, + (unsigned long) 0xbadc0deddeadc0deULL); + printf("ioctl(-1, " XLAT_FMT ", %#lx) = %s\n", + XLAT_SEL(unsupp_cmds[i].cmd, unsupp_cmds[i].str), + (unsigned long) 0xbadc0deddeadc0deULL, errstr); + } + + + /* HDIO_GETGEO */ + do_ioctl(HDIO_GETGEO, 0); + printf("ioctl(-1, %s, NULL) = %s\n", + XLAT_STR(HDIO_GETGEO), errstr); + + TAIL_ALLOC_OBJECT_CONST_PTR(struct hd_geometry, p_hd_geom); + + p_hd_geom->heads = 0xca; + p_hd_geom->sectors = 0xfe; + p_hd_geom->cylinders = 0xbabe; + p_hd_geom->start = (unsigned long) 0xbadc0deddeadfaceULL; + + do_ioctl_ptr(HDIO_GETGEO, (char *) p_hd_geom + 1); + printf("ioctl(-1, %s, %p) = %s\n", + XLAT_STR(HDIO_GETGEO), (char *) p_hd_geom + 1, errstr); + + rc = do_ioctl_ptr(HDIO_GETGEO, p_hd_geom); + printf("ioctl(-1, %s, ", XLAT_STR(HDIO_GETGEO)); + if (rc >= 0) { + printf("{heads=202, sectors=254, cylinders=47806, start=%lu}", + (unsigned long) 0xbadc0deddeadfaceULL); + } else { + printf("%p", p_hd_geom); + } + printf(") = %s\n", errstr); + + /* HDIO_DRIVE_CMD */ + do_ioctl(HDIO_DRIVE_CMD, 0); + printf("ioctl(-1, %s, NULL) = %s\n", + XLAT_STR(HDIO_DRIVE_CMD), errstr); + + TAIL_ALLOC_OBJECT_CONST_PTR(struct hd_drive_cmd_hdr, p_hd_drive_cmd); + struct hd_drive_cmd_hdr *p_hd_drive_cmd2 = + tail_alloc(sizeof(*p_hd_drive_cmd2) + 16); + struct hd_drive_cmd_hdr *p_hd_drive_cmd3 = + tail_alloc(sizeof(*p_hd_drive_cmd3) + DEFAULT_STRLEN + 1); + + fill_memory(p_hd_drive_cmd2, sizeof(*p_hd_drive_cmd2) + 16); + fill_memory(p_hd_drive_cmd3, + sizeof(*p_hd_drive_cmd3) + DEFAULT_STRLEN + 1); + + p_hd_drive_cmd->command = 0xca; + p_hd_drive_cmd->sector_number = 0xff; + p_hd_drive_cmd->feature = 0xee; + p_hd_drive_cmd->sector_count = 0; + + do_ioctl_ptr(HDIO_DRIVE_CMD, (char *) p_hd_drive_cmd + 1); + printf("ioctl(-1, %s, %p) = %s\n", + XLAT_STR(HDIO_DRIVE_CMD), (char *) p_hd_drive_cmd + 1, errstr); + + for (size_t i = 0; i < 2; i++) { + p_hd_drive_cmd->sector_count = i; + + rc = do_ioctl_ptr(HDIO_DRIVE_CMD, p_hd_drive_cmd); + printf("ioctl(-1, %s, {command=" XLAT_FMT ", sector_number=255" + ", feature=238, sector_count=%zu", + XLAT_STR(HDIO_DRIVE_CMD), + XLAT_SEL(0xca, "ATA_CMD_WRITE"), i); + if (rc >= 0) { + printf("} => {/* status */ 0xca, /* error */ 255" + ", /* nsector */ 238"); + if (i) + printf(", %p", p_hd_drive_cmd + 1); + } + printf("}) = %s\n", errstr); + } + + rc = do_ioctl_ptr(HDIO_DRIVE_CMD, p_hd_drive_cmd2); + printf("ioctl(-1, %s, {command=0x80" NRAW(" /* ATA_CMD_??? */") + ", sector_number=129, feature=130, sector_count=131", + XLAT_STR(HDIO_DRIVE_CMD)); + if (rc >= 0) { + printf("} => {/* status */ 0x80, /* error */ 129" + ", /* nsector */ 130, %p", p_hd_drive_cmd2 + 1); + } + printf("}) = %s\n", errstr); + + rc = do_ioctl_ptr(HDIO_DRIVE_CMD, p_hd_drive_cmd3); + printf("ioctl(-1, %s, {command=0x80" NRAW(" /* ATA_CMD_??? */") + ", sector_number=129, feature=130, sector_count=131", + XLAT_STR(HDIO_DRIVE_CMD)); + if (rc >= 0) { + printf("} => {/* status */ 0x80, /* error */ 129" + ", /* nsector */ 130, "); + print_quoted_hex(p_hd_drive_cmd3 + 1, DEFAULT_STRLEN); + printf("..."); + } + printf("}) = %s\n", errstr); + + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests-mx32/ioctl_hdio.gen.test b/tests-mx32/ioctl_hdio.gen.test new file mode 100755 index 00000000..478c717d --- /dev/null +++ b/tests-mx32/ioctl_hdio.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio +ioctl.test -a27); do not edit. +set -- -a27 +. "${srcdir=.}/ioctl.test" diff --git a/tests-mx32/ioctl_inotify.c b/tests-mx32/ioctl_inotify.c index 6be0c0ee..6ca006ae 100644 --- a/tests-mx32/ioctl_inotify.c +++ b/tests-mx32/ioctl_inotify.c @@ -1,7 +1,7 @@ /* * This file is part of ioctl_inotify strace test. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -13,7 +13,7 @@ #include #include #include -#include +#include "scno.h" #include #ifndef INOTIFY_IOC_SETNEXTWD diff --git a/tests-mx32/ioctl_kvm_run_common.c b/tests-mx32/ioctl_kvm_run_common.c index 26e72cec..9107c30c 100644 --- a/tests-mx32/ioctl_kvm_run_common.c +++ b/tests-mx32/ioctl_kvm_run_common.c @@ -4,7 +4,7 @@ * * kvmtest.c author: Josh Triplett * Copyright (c) 2015 Intel Corporation - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to @@ -238,6 +238,10 @@ run_kvm(const int vcpu_fd, struct kvm_run *const run, const size_t mmap_size, run->mmio.data[4], run->mmio.data[5], run->mmio.data[6], run->mmio.data[7], run->mmio.len, run->mmio.is_write); + case KVM_EXIT_FAIL_ENTRY: + error_msg_and_fail("Got an unexpected FAIL_ENTRY exit:" + " hardware_entry_failure_reason %" PRI__x64, + run->fail_entry.hardware_entry_failure_reason); default: error_msg_and_fail("exit_reason = %#x", diff --git a/tests-mx32/ioctl_loop.c b/tests-mx32/ioctl_loop.c index 53665603..69c2f191 100644 --- a/tests-mx32/ioctl_loop.c +++ b/tests-mx32/ioctl_loop.c @@ -3,7 +3,7 @@ * * Copyright (c) 2016 JingPiao Chen * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -17,11 +17,17 @@ #include #include #include -#include +#include "scno.h" #include #include #include "print_fields.h" +#ifdef HAVE_STRUCT_LOOP_CONFIG +typedef struct loop_config struct_loop_config; +#else +# include "types/loop.h" +#endif + #define XLAT_MACROS_ONLY #include "xlat/loop_cmds.h" #undef XLAT_MACROS_ONLY @@ -155,6 +161,27 @@ print_loop_info64(struct loop_info64 * const info64, bool print_encrypt, #endif /* !ABBREV */ } +static void +print_loop_config(struct_loop_config *config, bool print_reserved) +{ +#if ABBREV + printf("%p", config); +#else + printf("{fd=%d, block_size=%u, info=", + (int) config->fd, config->block_size); + print_loop_info64(&config->info, false, "LO_CRYPT_NONE", NULL, + "LO_FLAGS_READ_ONLY"); + if (print_reserved) { + printf(", __reserved="); + for (size_t i = 0; i < ARRAY_SIZE(config->__reserved); ++i) + printf("%s%#llx", (i ? ", " : "["), + (unsigned long long) config->__reserved[i]); + printf("]"); + } + printf("}"); +#endif /* !ABBREV */ +} + int main(void) { @@ -167,6 +194,7 @@ main(void) TAIL_ALLOC_OBJECT_CONST_PTR(struct loop_info, info); TAIL_ALLOC_OBJECT_CONST_PTR(struct loop_info64, info64); + TAIL_ALLOC_OBJECT_CONST_PTR(struct_loop_config, config); /* Unknown loop commands */ sys_ioctl(-1, unknown_loop_cmd, magic); @@ -178,12 +206,12 @@ main(void) _IOC_SIZE((unsigned int) unknown_loop_cmd), (unsigned long) magic); - sys_ioctl(-1, LOOP_SET_BLOCK_SIZE + 1, magic); + sys_ioctl(-1, LOOP_CONFIGURE + 1, magic); printf("ioctl(-1, _IOC(%s, 0x4c, %#x, %#x), %#lx) = " "-1 EBADF (%m)\n", _IOC_NONE ? "0" : "_IOC_NONE", - _IOC_NR(LOOP_SET_BLOCK_SIZE + 1), - _IOC_SIZE(LOOP_SET_BLOCK_SIZE + 1), + _IOC_NR(LOOP_CONFIGURE + 1), + _IOC_SIZE(LOOP_CONFIGURE + 1), (unsigned long) magic); sys_ioctl(-1, LOOP_CTL_GET_FREE + 1, magic); @@ -281,6 +309,32 @@ main(void) ioctl(-1, LOOP_GET_STATUS64, (unsigned long) info64 | kernel_mask); printf("ioctl(-1, LOOP_GET_STATUS64, %p) = -1 EBADF (%m)\n", info64); + /* LOOP_CONFIGURE */ + ioctl(-1, LOOP_CONFIGURE, NULL); + printf("ioctl(-1, LOOP_CONFIGURE, NULL) = -1 EBADF (%m)\n"); + + fill_memory(config, sizeof(*config)); + config->info.lo_flags = LO_FLAGS_READ_ONLY; + config->info.lo_encrypt_type = LO_CRYPT_NONE; + memset(config->info.lo_file_name, 'C', sizeof(config->info.lo_file_name)); + memset(config->info.lo_crypt_name, 'D', sizeof(config->info.lo_crypt_name)); + memset(config->info.lo_encrypt_key, 'E', sizeof(config->info.lo_encrypt_key)); + + ioctl(-1, LOOP_CONFIGURE, (void *) config + ALIGNOF(config)); + printf("ioctl(-1, LOOP_CONFIGURE, %p) = -1 EBADF (%m)\n", + (void *) config + ALIGNOF(config)); + + printf("ioctl(-1, LOOP_CONFIGURE, "); + print_loop_config(config, true); + ioctl(-1, LOOP_CONFIGURE, config); + printf(") = -1 EBADF (%m)\n"); + + memset(config->__reserved, 0, sizeof(config->__reserved)); + printf("ioctl(-1, LOOP_CONFIGURE, "); + print_loop_config(config, false); + ioctl(-1, LOOP_CONFIGURE, config); + printf(") = -1 EBADF (%m)\n"); + /* LOOP_CHANGE_FD */ sys_ioctl(-1, LOOP_CHANGE_FD, magic); printf("ioctl(-1, LOOP_CHANGE_FD, %d) = -1 EBADF (%m)\n", diff --git a/tests-mx32/ioctl_nsfs.c b/tests-mx32/ioctl_nsfs.c index 74dbe6e9..0af05aaf 100644 --- a/tests-mx32/ioctl_nsfs.c +++ b/tests-mx32/ioctl_nsfs.c @@ -2,7 +2,7 @@ * Check decoding of NS_* commands of ioctl syscall. * * Copyright (c) 2017 Nikolay Marchuk - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -86,22 +86,27 @@ child(void *arg) #ifdef IA64 extern int __clone2(int (*)(void *), void *, size_t, int, void *, ...); -# define clone(fn, child_stack, flags, arg) \ - __clone2(fn, child_stack, get_page_size() / 2, flags, arg) +# define do_clone(fn_, stack_, size_, flags_, arg_, ...) \ + __clone2((fn_), (stack_), (size_), (flags_), (arg_), ## __VA_ARGS__) +#else +# define do_clone(fn_, stack_, size_, flags_, arg_, ...) \ + clone((fn_), (stack_), (flags_), (arg_), ## __VA_ARGS__) #endif static void test_user_namespace(void) { - pid_t pid; int pipefd[2]; - int status; - if (pipe(pipefd)) perror_msg_and_fail("pipe"); - pid = clone(child, tail_alloc(get_page_size() / 2), - CLONE_NEWUSER | CLONE_UNTRACED | SIGCHLD, pipefd); + const unsigned long child_stack_size = get_page_size(); + void *const child_stack = + tail_alloc(child_stack_size * 2) + child_stack_size; + + const pid_t pid = do_clone(child, child_stack, child_stack_size, + CLONE_NEWUSER | CLONE_UNTRACED | SIGCHLD, + pipefd); if (pid == -1) { perror("clone"); return; @@ -109,6 +114,8 @@ test_user_namespace(void) close(pipefd[0]); test_clone(pid); close(pipefd[1]); + + int status; if (wait(&status) != pid) { perror_msg_and_fail("wait"); } else if (status != 0) { diff --git a/tests-mx32/ioctl_perf-success.c b/tests-mx32/ioctl_perf-success.c index eaf572ac..51419b10 100644 --- a/tests-mx32/ioctl_perf-success.c +++ b/tests-mx32/ioctl_perf-success.c @@ -1,7 +1,7 @@ /* * Check decoding of successful PERF_EVENT_IOC_{ID,QUERY_BPF} ioctls. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,29 +9,31 @@ #include "tests.h" -#ifdef HAVE_LINUX_PERF_EVENT_H -# include -# include -# include -# include -# include -# include +#include +#include +#include +#include +#include +#include + +#ifdef HAVE_LINUX_PERF_EVENT_H # include +#endif -# ifndef PERF_EVENT_IOC_ID -# define PERF_EVENT_IOC_ID _IOR('$', 7, void *) -# endif +#ifndef PERF_EVENT_IOC_ID +# define PERF_EVENT_IOC_ID _IOR('$', 7, void *) +#endif -# ifndef PERF_EVENT_IOC_QUERY_BPF -# define PERF_EVENT_IOC_QUERY_BPF _IOWR('$', 10, void *) +#ifndef PERF_EVENT_IOC_QUERY_BPF +# define PERF_EVENT_IOC_QUERY_BPF _IOWR('$', 10, void *) struct perf_event_query_bpf { uint32_t ids_len; uint32_t prog_cnt; uint32_t ids[0]; }; -# endif +#endif int main(int argc, char **argv) @@ -137,9 +139,3 @@ main(int argc, char **argv) puts("+++ exited with 0 +++"); return 0; } - -#else - -SKIP_MAIN_UNDEFINED("HAVE_LINUX_PERF_EVENT_H"); - -#endif diff --git a/tests-mx32/ioctl_perf-success.gen.test b/tests-mx32/ioctl_perf-success.gen.test new file mode 100755 index 00000000..3ff72055 --- /dev/null +++ b/tests-mx32/ioctl_perf-success.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_perf-success +ioctl-success.sh -a35); do not edit. +set -- -a35 +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-mx32/ioctl_perf-success.test b/tests-mx32/ioctl_perf-success.test deleted file mode 100755 index 2edd1d34..00000000 --- a/tests-mx32/ioctl_perf-success.test +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh -efu -# -# Check decoding of successful PERF_EVENT_IOC_{ID,QUERY_BPF} ioctls. -# -# Copyright (c) 2018 The strace developers. -# All rights reserved. -# -# SPDX-License-Identifier: GPL-2.0-or-later - -. "${srcdir=.}/scno_tampering.sh" - -: ${IOCTL_INJECT_START=256} -: ${IOCTL_INJECT_RETVAL=42} - -run_prog -run_strace -a35 -e trace=ioctl \ - -e inject=ioctl:retval="${IOCTL_INJECT_RETVAL}":when="${IOCTL_INJECT_START}+" \ - ../ioctl_perf-success "${IOCTL_INJECT_START}" "${IOCTL_INJECT_RETVAL}" > "$EXP" -grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT" -match_diff "$OUT" "$EXP" diff --git a/tests-mx32/ioctl_perf.c b/tests-mx32/ioctl_perf.c index 30cb35f6..af4f443e 100644 --- a/tests-mx32/ioctl_perf.c +++ b/tests-mx32/ioctl_perf.c @@ -1,7 +1,7 @@ /* * Check decoding of PERF_EVENT_IOC_* commands of ioctl syscall. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -16,7 +16,7 @@ # include # include # include -# include +# include "scno.h" # include /* diff --git a/tests-mx32/ioctl_ptp.c b/tests-mx32/ioctl_ptp.c index 52d9698a..ef2bca77 100644 --- a/tests-mx32/ioctl_ptp.c +++ b/tests-mx32/ioctl_ptp.c @@ -2,7 +2,7 @@ * Check decoding of PTP_* commands of ioctl syscall. * * Copyright (c) 2018 Harsha Sharma - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,7 +12,6 @@ #ifdef HAVE_STRUCT_PTP_SYS_OFFSET -# include # include # include # include @@ -21,12 +20,31 @@ # include # include +# ifndef PTP_CLOCK_GETCAPS2 +# define PTP_CLOCK_GETCAPS2 _IOR(PTP_CLK_MAGIC, 10, struct ptp_clock_caps) +# endif +# ifndef PTP_EXTTS_REQUEST2 +# define PTP_EXTTS_REQUEST2 _IOW(PTP_CLK_MAGIC, 11, struct ptp_extts_request) +# endif +# ifndef PTP_PEROUT_REQUEST2 +# define PTP_PEROUT_REQUEST2 _IOW(PTP_CLK_MAGIC, 12, struct ptp_perout_request) +# endif +# ifndef PTP_ENABLE_PPS2 +# define PTP_ENABLE_PPS2 _IOW(PTP_CLK_MAGIC, 13, int) +# endif +# ifndef PTP_SYS_OFFSET2 +# define PTP_SYS_OFFSET2 _IOW(PTP_CLK_MAGIC, 14, struct ptp_sys_offset) +# endif + # include "xlat.h" -# include "xlat/ptp_flags_options.h" +# include "xlat/ptp_extts_flags.h" +# include "xlat/ptp_perout_flags.h" static void test_no_device(void) { + const char *errstr; + TAIL_ALLOC_OBJECT_CONST_PTR(struct ptp_clock_caps, caps); fill_memory(caps, sizeof(*caps)); @@ -39,60 +57,93 @@ test_no_device(void) TAIL_ALLOC_OBJECT_CONST_PTR(struct ptp_perout_request, perout); fill_memory(perout, sizeof(*perout)); - int saved_errno; - /* PTP_CLOCK_GETCAPS */ - ioctl(-1, PTP_CLOCK_GETCAPS, NULL); - printf("ioctl(-1, PTP_CLOCK_GETCAPS, NULL) = -1 EBADF (%m)\n"); - ioctl(-1, PTP_CLOCK_GETCAPS, caps); - printf("ioctl(-1, PTP_CLOCK_GETCAPS, %p) = -1 EBADF (%m)\n", caps); + errstr = sprintrc(ioctl(-1, PTP_CLOCK_GETCAPS, NULL)); + printf("ioctl(-1, PTP_CLOCK_GETCAPS, NULL) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_CLOCK_GETCAPS, caps)); + printf("ioctl(-1, PTP_CLOCK_GETCAPS, %p) = %s\n", caps, errstr); /* PTP_SYS_OFFSET */ - ioctl(-1, PTP_SYS_OFFSET, NULL); - printf("ioctl(-1, PTP_SYS_OFFSET, NULL) = -1 EBADF (%m)\n"); - ioctl(-1, PTP_SYS_OFFSET, sysoff); - printf("ioctl(-1, PTP_SYS_OFFSET, {n_samples=%u}) = -1 EBADF (%m)\n", - sysoff->n_samples); + errstr = sprintrc(ioctl(-1, PTP_SYS_OFFSET, NULL)); + printf("ioctl(-1, PTP_SYS_OFFSET, NULL) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_SYS_OFFSET, sysoff)); + printf("ioctl(-1, PTP_SYS_OFFSET, {n_samples=%u}) = %s\n", + sysoff->n_samples, errstr); /* PTP_ENABLE_PPS */ - ioctl(-1, PTP_ENABLE_PPS, 0); - printf("ioctl(-1, PTP_ENABLE_PPS, 0) = -1 EBADF (%m)\n"); - ioctl(-1, PTP_ENABLE_PPS, 1); - printf("ioctl(-1, PTP_ENABLE_PPS, 1) = -1 EBADF (%m)\n"); + errstr = sprintrc(ioctl(-1, PTP_ENABLE_PPS, 0)); + printf("ioctl(-1, PTP_ENABLE_PPS, 0) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_ENABLE_PPS, 1)); + printf("ioctl(-1, PTP_ENABLE_PPS, 1) = %s\n", errstr); /* PTP_EXTTS_REQUEST */ - ioctl(-1, PTP_EXTTS_REQUEST, NULL); - printf("ioctl(-1, PTP_EXTTS_REQUEST, NULL) = -1 EBADF (%m)\n"); - ioctl(-1, PTP_EXTTS_REQUEST, extts); - saved_errno = errno; + errstr = sprintrc(ioctl(-1, PTP_EXTTS_REQUEST, NULL)); + printf("ioctl(-1, PTP_EXTTS_REQUEST, NULL) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_EXTTS_REQUEST, extts)); printf("ioctl(-1, PTP_EXTTS_REQUEST, {index=%d, flags=", extts->index); - printflags(ptp_flags_options, extts->flags, "PTP_???"); - errno = saved_errno; - printf("}) = -1 EBADF (%m)\n"); + printflags(ptp_extts_flags, extts->flags, "PTP_???"); + printf("}) = %s\n", errstr); /* PTP_PEROUT_REQUEST */ - ioctl(-1, PTP_PEROUT_REQUEST, NULL); - printf("ioctl(-1, PTP_PEROUT_REQUEST, NULL) = -1 EBADF (%m)\n"); - ioctl(-1, PTP_PEROUT_REQUEST, perout); - saved_errno = errno; + errstr = sprintrc(ioctl(-1, PTP_PEROUT_REQUEST, NULL)); + printf("ioctl(-1, PTP_PEROUT_REQUEST, NULL) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_PEROUT_REQUEST, perout)); printf("ioctl(-1, PTP_PEROUT_REQUEST, {start={sec=%" PRId64 ", nsec=%" PRIu32 "}, period={sec=%" PRId64 ", nsec=%" PRIu32 "}" ", index=%d, flags=", (int64_t) perout->start.sec, perout->start.nsec, (int64_t)perout->period.sec, perout->period.nsec, perout->index); - printflags(ptp_flags_options, perout->flags, "PTP_???"); - errno = saved_errno; - printf("}) = -1 EBADF (%m)\n"); + printflags(ptp_perout_flags, perout->flags, "PTP_???"); + printf("}) = %s\n", errstr); + + /* PTP_CLOCK_GETCAPS2 */ + errstr = sprintrc(ioctl(-1, PTP_CLOCK_GETCAPS2, NULL)); + printf("ioctl(-1, PTP_CLOCK_GETCAPS2, NULL) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_CLOCK_GETCAPS2, caps)); + printf("ioctl(-1, PTP_CLOCK_GETCAPS2, %p) = %s\n", caps, errstr); + + /* PTP_SYS_OFFSET2 */ + errstr = sprintrc(ioctl(-1, PTP_SYS_OFFSET2, NULL)); + printf("ioctl(-1, PTP_SYS_OFFSET2, NULL) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_SYS_OFFSET2, sysoff)); + printf("ioctl(-1, PTP_SYS_OFFSET2, {n_samples=%u}) = %s\n", + sysoff->n_samples, errstr); + + /* PTP_ENABLE_PPS2 */ + errstr = sprintrc(ioctl(-1, PTP_ENABLE_PPS2, 0)); + printf("ioctl(-1, PTP_ENABLE_PPS2, 0) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_ENABLE_PPS2, 1)); + printf("ioctl(-1, PTP_ENABLE_PPS2, 1) = %s\n", errstr); + + /* PTP_EXTTS_REQUEST2 */ + errstr = sprintrc(ioctl(-1, PTP_EXTTS_REQUEST2, NULL)); + printf("ioctl(-1, PTP_EXTTS_REQUEST2, NULL) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_EXTTS_REQUEST2, extts)); + printf("ioctl(-1, PTP_EXTTS_REQUEST2, {index=%d, flags=", extts->index); + printflags(ptp_extts_flags, extts->flags, "PTP_???"); + printf("}) = %s\n", errstr); + + /* PTP_PEROUT_REQUEST2 */ + errstr = sprintrc(ioctl(-1, PTP_PEROUT_REQUEST2, NULL)); + printf("ioctl(-1, PTP_PEROUT_REQUEST2, NULL) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_PEROUT_REQUEST2, perout)); + printf("ioctl(-1, PTP_PEROUT_REQUEST2, {start={sec=%" PRId64 + ", nsec=%" PRIu32 "}, period={sec=%" PRId64 ", nsec=%" PRIu32 "}" + ", index=%d, flags=", + (int64_t) perout->start.sec, perout->start.nsec, + (int64_t)perout->period.sec, perout->period.nsec, perout->index); + printflags(ptp_perout_flags, perout->flags, "PTP_???"); + printf("}) = %s\n", errstr); /* unrecognized */ ioctl(-1, _IOC(_IOC_READ, PTP_CLK_MAGIC, 0xff, 0xfe), 0); - printf("ioctl(-1, _IOC(_IOC_READ, %#x, 0xff, 0xfe), 0)" - " = -1 EBADF (%m)\n", PTP_CLK_MAGIC); + printf("ioctl(-1, _IOC(_IOC_READ, %#x, 0xff, 0xfe), 0) = %s\n", + PTP_CLK_MAGIC, errstr); const unsigned long arg = (unsigned long) 0xfacefeeddeadbeefULL; ioctl(-1, _IOC(_IOC_WRITE, PTP_CLK_MAGIC, 0xfd, 0xfc), arg); printf("ioctl(-1, _IOC(_IOC_WRITE, %#x, 0xfd, 0xfc), %#lx)" - " = -1 EBADF (%m)\n", PTP_CLK_MAGIC, arg); + " = %s\n", PTP_CLK_MAGIC, arg, errstr); } int diff --git a/tests-mx32/ioctl_rtc.c b/tests-mx32/ioctl_rtc.c index d192e378..19d54f6b 100644 --- a/tests-mx32/ioctl_rtc.c +++ b/tests-mx32/ioctl_rtc.c @@ -34,7 +34,7 @@ print_rtc_time(const struct rtc_time *rt) #endif } -static struct xlat rtc_argless[] = { +static struct xlat_data rtc_argless[] = { XLAT(RTC_AIE_OFF), XLAT(RTC_PIE_ON), XLAT(RTC_PIE_OFF), diff --git a/tests-mx32/ioctl_scsi.c b/tests-mx32/ioctl_scsi.c index b6347b62..15eb56a9 100644 --- a/tests-mx32/ioctl_scsi.c +++ b/tests-mx32/ioctl_scsi.c @@ -2,7 +2,7 @@ * Check decoding of SCSI ioctl commands. * * Copyright (c) 2017 Dmitry V. Levin - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -15,7 +15,9 @@ # include # include # include -# include "xlat/scsi_sg_commands.h" +# define XLAT_MACROS_ONLY +# include "xlat/scsi_sg_commands.h" +# undef XLAT_MACROS_ONLY # define TEST_NO_ARG(cmd) \ do { \ diff --git a/tests-mx32/ioctl_sg_io_v4.c b/tests-mx32/ioctl_sg_io_v4.c index 59438285..087ae788 100644 --- a/tests-mx32/ioctl_sg_io_v4.c +++ b/tests-mx32/ioctl_sg_io_v4.c @@ -2,6 +2,7 @@ * Check decoding of ioctl SG_IO v4 commands. * * Copyright (c) 2017-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -16,8 +17,9 @@ # include # include # include - -# include "xlat/scsi_sg_commands.h" +# define XLAT_MACROS_ONLY +# include "xlat/scsi_sg_commands.h" +# undef XLAT_MACROS_ONLY int main(void) diff --git a/tests-mx32/ioctl_tee.c b/tests-mx32/ioctl_tee.c new file mode 100644 index 00000000..f6c2b3ae --- /dev/null +++ b/tests-mx32/ioctl_tee.c @@ -0,0 +1,437 @@ +/* + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#ifdef HAVE_LINUX_TEE_H + +# include +# include +# include + +# include + +# include +# include +# include + +# include "xlat.h" + +# define NUM_PARAMS 8 +# define RVAL_EBADF " = -1 EBADF (%m)\n" + +# define UUID_SIZE 16 + +# ifndef TEE_IOCTL_PARAM_ATTR_META +# define TEE_IOCTL_PARAM_ATTR_META 0x100 +# endif + +# ifndef HAVE_STRUCT_TEE_IOCTL_SHM_REGISTER_FD_DATA +struct tee_ioctl_shm_register_fd_data { + __s64 fd; + __u64 size; + __u32 flags; + __u8 _pad1[4]; + __u32 id; + __u8 _pad2[4]; +} ATTRIBUTE_ALIGNED(8); +# endif + +# ifndef HAVE_STRUCT_TEE_IOCTL_SHM_REGISTER_DATA +struct tee_ioctl_shm_register_data { + __u64 addr; + __u64 length; + __u32 flags; + __s32 id; +}; +# endif + +# ifndef TEE_IOC_SHM_REGISTER_FD +# define TEE_IOC_SHM_REGISTER_FD _IOWR(TEE_IOC_MAGIC, TEE_IOC_BASE + 8, \ + struct tee_ioctl_shm_register_fd_data) +# endif + +# ifndef TEE_IOC_SHM_REGISTER +# define TEE_IOC_SHM_REGISTER _IOWR(TEE_IOC_MAGIC, TEE_IOC_BASE + 9, \ + struct tee_ioctl_shm_register_data) +# endif + + +typedef struct { + uint8_t b[UUID_SIZE]; +} uuid_t; + +# define UUID_INIT(a_, b_, c_, d0, d1, d2, d3, d4, d5, d6, d7) \ +{ .b = {((a_) >> 24) & 0xff, ((a_) >> 16) & 0xff, \ + ((a_) >> 8) & 0xff, (a_) & 0xff, \ + ((b_) >> 8) & 0xff, (b_) & 0xff, \ + ((c_) >> 8) & 0xff, (c_) & 0xff, \ + (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7)} } + +# define CHK_NULL(ioctl_) \ + do { \ + ioctl(-1, ioctl_, NULL); \ + printf("ioctl(-1, " #ioctl_ ", NULL)" RVAL_EBADF); \ + } while (0) + +# define CHK_BUF(ioctl_) \ + do { \ + ioctl(-1, ioctl_, &buf_data); \ + printf("ioctl(-1, " #ioctl_ \ + ", {buf_len=%llu, buf_ptr=%#llx})" RVAL_EBADF, \ + (unsigned long long) buf_data.buf_len, \ + (unsigned long long) buf_data.buf_ptr); \ + } while (0) + +# define DEFINE_BUF_W_PARAMS(type_, shorthand_) \ + const size_t shorthand_ ## _size = sizeof(type_) + \ + NUM_PARAMS * sizeof(struct tee_ioctl_param); \ + union { \ + type_ shorthand_; \ + uint8_t data[shorthand_ ## _size]; \ + } shorthand_ ## _buf + +static const unsigned long one_beef = (unsigned long) 0xcafef00ddeadbeefULL; +static const unsigned long two_beef = (unsigned long) 0xbadc0dedbadc0dedULL; +static const unsigned long red_beef = (unsigned long) 0xdefacedbeef0beefULL; +static const unsigned long blu_beef = (unsigned long) 0xfacefeedcafef00dULL; + +static const uuid_t uuid_beef = UUID_INIT(0xdeadbeef, 0xcafe, 0xc0de, + 0xba, 0xdc, 0x0d, 0xed, + 0xfa, 0xce, 0xfe, 0xed); + +static void +fill_params(struct tee_ioctl_param *params) +{ + for (unsigned i = 0; i < NUM_PARAMS; i++) { + params[i].a = two_beef; + params[i].b = red_beef; + params[i].c = blu_beef; + } + params[0].attr = TEE_IOCTL_PARAM_ATTR_TYPE_NONE; + params[1].attr = TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_INPUT; + params[2].attr = TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_OUTPUT; + params[3].attr = TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_INOUT; + params[4].attr = TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INPUT; + params[5].attr = TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_OUTPUT; + params[6].attr = TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INOUT; + params[7].attr = TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_INPUT | + TEE_IOCTL_PARAM_ATTR_META; +} + +static void +print_params(struct tee_ioctl_param *params) +{ + printf("{attr=TEE_IOCTL_PARAM_ATTR_TYPE_NONE}, " + "{attr=TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_INPUT, a=%#llx, b=%#llx, c=%#llx}, " + "{attr=TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_OUTPUT, a=%#llx, b=%#llx, c=%#llx}, " + "{attr=TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_INOUT, a=%#llx, b=%#llx, c=%#llx}, " + "{attr=TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INPUT, shm_offs=%#llx, size=%#llx, shm_id=%llu}, " + "{attr=TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_OUTPUT, shm_offs=%#llx, size=%#llx, shm_id=%llu}, " + "{attr=TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INOUT, shm_offs=%#llx, size=%#llx, shm_id=%llu}, " + "{attr=TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_INPUT|TEE_IOCTL_PARAM_ATTR_META, a=%#llx, b=%#llx, c=%#llx}", + (unsigned long long) two_beef, (unsigned long long) red_beef, + (unsigned long long) blu_beef, (unsigned long long) two_beef, + (unsigned long long) red_beef, (unsigned long long) blu_beef, + (unsigned long long) two_beef, (unsigned long long) red_beef, + (unsigned long long) blu_beef, (unsigned long long) two_beef, + (unsigned long long) red_beef, (unsigned long long) blu_beef, + (unsigned long long) two_beef, (unsigned long long) red_beef, + (unsigned long long) blu_beef, (unsigned long long) two_beef, + (unsigned long long) red_beef, (unsigned long long) blu_beef, + (unsigned long long) two_beef, (unsigned long long) red_beef, + (unsigned long long) blu_beef + ); +} + +int +main(void) +{ + gid_t gid; + + struct tee_ioctl_cancel_arg cancel; + struct tee_ioctl_shm_alloc_data shm_alloc; + struct tee_ioctl_shm_register_data shm_register; + struct tee_ioctl_close_session_arg close_session; + struct tee_ioctl_shm_register_fd_data shm_register_fd; + + struct tee_ioctl_buf_data buf_data; + struct tee_ioctl_param *params = NULL; + + DEFINE_BUF_W_PARAMS(struct tee_ioctl_invoke_arg, invoke); + DEFINE_BUF_W_PARAMS(struct tee_iocl_supp_recv_arg, supp_recv); + DEFINE_BUF_W_PARAMS(struct tee_iocl_supp_send_arg, supp_send); + DEFINE_BUF_W_PARAMS(struct tee_ioctl_open_session_arg, open_session); + + static const char null_path[] = "/dev/null"; + int fd = open(null_path, O_RDONLY); + + /* NULL as arg */ + CHK_NULL(TEE_IOC_CANCEL); + CHK_NULL(TEE_IOC_INVOKE); + CHK_NULL(TEE_IOC_VERSION); + CHK_NULL(TEE_IOC_SHM_ALLOC); + CHK_NULL(TEE_IOC_SUPPL_RECV); + CHK_NULL(TEE_IOC_SUPPL_SEND); + CHK_NULL(TEE_IOC_OPEN_SESSION); + CHK_NULL(TEE_IOC_SHM_REGISTER); + CHK_NULL(TEE_IOC_CLOSE_SESSION); + + /* Valid parameterless calls */ + ioctl(-1, TEE_IOC_SHM_REGISTER_FD, NULL); + printf("ioctl(-1, _IOC(_IOC_READ|_IOC_WRITE, 0xa4, 0x8, 0x20), NULL)" + RVAL_EBADF); + ioctl(-1, _IOC(_IOC_NONE, 0xa4, 0xa, 0), NULL); + printf("ioctl(-1, _IOC(_IOC_NONE, 0xa4, 0xa, 0), 0)" RVAL_EBADF); + + cancel.cancel_id = (uint32_t) one_beef; + cancel.session = (uint32_t) two_beef; + ioctl(-1, TEE_IOC_CANCEL, &cancel); + printf("ioctl(-1, TEE_IOC_CANCEL, {cancel_id=%u, session=%#x})" RVAL_EBADF, + (uint32_t) one_beef, (uint32_t) two_beef); + + close_session.session = (uint32_t) red_beef; + ioctl(-1, TEE_IOC_CLOSE_SESSION, &close_session); + printf("ioctl(-1, TEE_IOC_CLOSE_SESSION, {session=%#x})" RVAL_EBADF, + (uint32_t) red_beef); + + shm_alloc.size = one_beef; + shm_alloc.flags = TEE_IOCTL_SHM_MAPPED | TEE_IOCTL_SHM_DMA_BUF | 0x80; + ioctl(-1, TEE_IOC_SHM_ALLOC, &shm_alloc); + printf("ioctl(-1, TEE_IOC_SHM_ALLOC, {size=%#llx, " + "flags=TEE_IOCTL_SHM_MAPPED|TEE_IOCTL_SHM_DMA_BUF|0x80})" RVAL_EBADF, + (unsigned long long) one_beef); + + shm_register.addr = red_beef; + shm_register.length = blu_beef; + shm_register.flags = TEE_IOCTL_SHM_MAPPED | 0x80; + ioctl(-1, TEE_IOC_SHM_REGISTER, &shm_register); + printf("ioctl(-1, TEE_IOC_SHM_REGISTER, {addr=%#llx, length=%#llx, " + "flags=TEE_IOCTL_SHM_MAPPED|0x80})" RVAL_EBADF, + (unsigned long long) red_beef, + (unsigned long long) blu_beef); + + if (fd >= 0) { + shm_register_fd.fd = fd; + shm_register_fd.flags = TEE_IOCTL_SHM_DMA_BUF; + ioctl(-1, TEE_IOC_SHM_REGISTER_FD, &shm_register_fd); + printf("ioctl(-1, _IOC(_IOC_READ|_IOC_WRITE, 0xa4, 0x8, 0x20), " + "{fd=%d, flags=TEE_IOCTL_SHM_DMA_BUF})" RVAL_EBADF, fd); + } + + /* Beef in buf_data */ + buf_data.buf_ptr = one_beef; + buf_data.buf_len = two_beef; + CHK_BUF(TEE_IOC_INVOKE); + CHK_BUF(TEE_IOC_OPEN_SESSION); + CHK_BUF(TEE_IOC_SUPPL_RECV); + CHK_BUF(TEE_IOC_SUPPL_SEND); + + /* Valid calls with parameters */ + invoke_buf.invoke.func = (uint32_t) one_beef; + invoke_buf.invoke.session = (uint32_t) two_beef; + invoke_buf.invoke.cancel_id = (uint32_t) red_beef; + invoke_buf.invoke.num_params = NUM_PARAMS; + params = (struct tee_ioctl_param *)(&invoke_buf.invoke + 1); + fill_params(params); + buf_data.buf_ptr = (uintptr_t) &invoke_buf; + buf_data.buf_len = invoke_size; + ioctl(-1, TEE_IOC_INVOKE, &buf_data); + printf("ioctl(-1, TEE_IOC_INVOKE, {buf_len=%llu, " + "buf_ptr={func=%u, session=%#x, cancel_id=%u, " + "num_params=%u, params=[", + (unsigned long long) buf_data.buf_len, + (uint32_t) one_beef, (uint32_t) two_beef, + (uint32_t) red_beef, NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + open_session_buf.open_session.clnt_login = TEE_IOCTL_LOGIN_PUBLIC; + gid = (gid_t) blu_beef; + memcpy(&open_session_buf.open_session.clnt_uuid, &gid, sizeof(gid_t)); + memcpy(&open_session_buf.open_session.uuid, &uuid_beef, UUID_SIZE); + open_session_buf.open_session.cancel_id = (uint32_t) red_beef; + open_session_buf.open_session.num_params = NUM_PARAMS; + params = (struct tee_ioctl_param *)(&open_session_buf.open_session + 1); + fill_params(params); + buf_data.buf_ptr = (uintptr_t) &open_session_buf; + buf_data.buf_len = open_session_size; + ioctl(-1, TEE_IOC_OPEN_SESSION, &buf_data); + printf("ioctl(-1, TEE_IOC_OPEN_SESSION, {buf_len=%llu, " + "buf_ptr={uuid=deadbeef-cafe-c0de-badc-0dedfacefeed, " + "clnt_login=TEE_IOCTL_LOGIN_PUBLIC, " + "cancel_id=%u, " + "num_params=%u, params=[", + (unsigned long long) buf_data.buf_len, + (uint32_t) red_beef, NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + /* All the login types */ + open_session_buf.open_session.clnt_login = TEE_IOCTL_LOGIN_USER; + ioctl(-1, TEE_IOC_OPEN_SESSION, &buf_data); + printf("ioctl(-1, TEE_IOC_OPEN_SESSION, {buf_len=%llu, " + "buf_ptr={uuid=deadbeef-cafe-c0de-badc-0dedfacefeed, " + "clnt_login=TEE_IOCTL_LOGIN_USER, " + "cancel_id=%u, " + "num_params=%u, params=[", + (unsigned long long) buf_data.buf_len, + (uint32_t) red_beef, NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + open_session_buf.open_session.clnt_login = TEE_IOCTL_LOGIN_GROUP; + ioctl(-1, TEE_IOC_OPEN_SESSION, &buf_data); + printf("ioctl(-1, TEE_IOC_OPEN_SESSION, {buf_len=%llu, " + "buf_ptr={uuid=deadbeef-cafe-c0de-badc-0dedfacefeed, " + "clnt_login=TEE_IOCTL_LOGIN_GROUP, " + "clnt_uuid=%u, cancel_id=%u, " + "num_params=%u, params=[", + (unsigned long long) buf_data.buf_len, + gid, (uint32_t) red_beef, NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + open_session_buf.open_session.clnt_login = TEE_IOCTL_LOGIN_APPLICATION; + ioctl(-1, TEE_IOC_OPEN_SESSION, &buf_data); + printf("ioctl(-1, TEE_IOC_OPEN_SESSION, {buf_len=%llu, " + "buf_ptr={uuid=deadbeef-cafe-c0de-badc-0dedfacefeed, " + "clnt_login=TEE_IOCTL_LOGIN_APPLICATION, " + "cancel_id=%u, " + "num_params=%u, params=[", + (unsigned long long) buf_data.buf_len, + (uint32_t) red_beef, NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + open_session_buf.open_session.clnt_login = TEE_IOCTL_LOGIN_USER_APPLICATION; + ioctl(-1, TEE_IOC_OPEN_SESSION, &buf_data); + printf("ioctl(-1, TEE_IOC_OPEN_SESSION, {buf_len=%llu, " + "buf_ptr={uuid=deadbeef-cafe-c0de-badc-0dedfacefeed, " + "clnt_login=TEE_IOCTL_LOGIN_USER_APPLICATION, " + "cancel_id=%u, " + "num_params=%u, params=[", + (unsigned long long) buf_data.buf_len, + (uint32_t) red_beef, NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + open_session_buf.open_session.clnt_login = TEE_IOCTL_LOGIN_GROUP_APPLICATION; + ioctl(-1, TEE_IOC_OPEN_SESSION, &buf_data); + printf("ioctl(-1, TEE_IOC_OPEN_SESSION, {buf_len=%llu, " + "buf_ptr={uuid=deadbeef-cafe-c0de-badc-0dedfacefeed, " + "clnt_login=TEE_IOCTL_LOGIN_GROUP_APPLICATION, " + "clnt_uuid=%u, cancel_id=%u, " + "num_params=%u, params=[", + (unsigned long long) buf_data.buf_len, + gid, (uint32_t) red_beef, NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + open_session_buf.open_session.clnt_login = 0xff; + ioctl(-1, TEE_IOC_OPEN_SESSION, &buf_data); + printf("ioctl(-1, TEE_IOC_OPEN_SESSION, {buf_len=%llu, " + "buf_ptr={uuid=deadbeef-cafe-c0de-badc-0dedfacefeed, " + "clnt_login=%#x /* TEE_IOCTL_LOGIN_??? */, " + "clnt_uuid=[", (unsigned long long) buf_data.buf_len, + open_session_buf.open_session.clnt_login); + for (unsigned i = 0; i < UUID_SIZE; i++) { + if (i > 0) + printf(", "); + printf("%#x", open_session_buf.open_session.clnt_uuid[i]); + } + printf("], cancel_id=%u, " + "num_params=%u, params=[", + (uint32_t) red_beef, NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + supp_recv_buf.supp_recv.func = (uint32_t) blu_beef; + supp_recv_buf.supp_recv.num_params = NUM_PARAMS; + params = (struct tee_ioctl_param *)(&supp_recv_buf.supp_recv + 1); + fill_params(params); + buf_data.buf_ptr = (uintptr_t) &supp_recv_buf; + buf_data.buf_len = supp_recv_size; + ioctl(-1, TEE_IOC_SUPPL_RECV, &buf_data); + printf("ioctl(-1, TEE_IOC_SUPPL_RECV, {buf_len=%llu, " + "buf_ptr={func=%u, " + "num_params=%u, params=[", + (unsigned long long) buf_data.buf_len, + (uint32_t) blu_beef, NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + supp_send_buf.supp_send.num_params = NUM_PARAMS; + params = (struct tee_ioctl_param *)(&supp_send_buf.supp_send + 1); + fill_params(params); + buf_data.buf_ptr = (uintptr_t) &supp_send_buf; + buf_data.buf_len = supp_send_size; + ioctl(-1, TEE_IOC_SUPPL_SEND, &buf_data); + printf("ioctl(-1, TEE_IOC_SUPPL_SEND, {buf_len=%llu, " + "buf_ptr={num_params=%u, params=[", + (unsigned long long) buf_data.buf_len, + NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + /* Valid buf, but unmatching num_params */ + invoke_buf.invoke.num_params = 0; + supp_recv_buf.supp_recv.num_params = 0; + supp_send_buf.supp_send.num_params = 0; + open_session_buf.open_session.num_params = 0; + + buf_data.buf_ptr = (uintptr_t) &invoke_buf; + buf_data.buf_len = invoke_size; + CHK_BUF(TEE_IOC_INVOKE); + buf_data.buf_ptr = (uintptr_t) &open_session_buf; + buf_data.buf_len = open_session_size; + CHK_BUF(TEE_IOC_OPEN_SESSION); + buf_data.buf_ptr = (uintptr_t) &supp_recv_buf; + buf_data.buf_len = supp_recv_size; + CHK_BUF(TEE_IOC_SUPPL_RECV); + buf_data.buf_ptr = (uintptr_t) &supp_send_buf; + buf_data.buf_len = supp_send_size; + CHK_BUF(TEE_IOC_SUPPL_SEND); + + invoke_buf.invoke.num_params = NUM_PARAMS; + supp_recv_buf.supp_recv.num_params = NUM_PARAMS; + supp_send_buf.supp_send.num_params = NUM_PARAMS; + open_session_buf.open_session.num_params = NUM_PARAMS; + + /* Invalid buf_len */ + buf_data.buf_len = 0; + CHK_BUF(TEE_IOC_INVOKE); + CHK_BUF(TEE_IOC_OPEN_SESSION); + CHK_BUF(TEE_IOC_SUPPL_RECV); + CHK_BUF(TEE_IOC_SUPPL_SEND); + + buf_data.buf_len = (unsigned long long) -1; + CHK_BUF(TEE_IOC_INVOKE); + CHK_BUF(TEE_IOC_OPEN_SESSION); + CHK_BUF(TEE_IOC_SUPPL_RECV); + CHK_BUF(TEE_IOC_SUPPL_SEND); + + /* Valid buf_len, invalid buf_ptr */ + buf_data.buf_ptr = one_beef; + buf_data.buf_len = invoke_size; + CHK_BUF(TEE_IOC_INVOKE); + buf_data.buf_len = open_session_size; + CHK_BUF(TEE_IOC_OPEN_SESSION); + buf_data.buf_len = supp_recv_size; + CHK_BUF(TEE_IOC_SUPPL_RECV); + buf_data.buf_len = supp_send_size; + CHK_BUF(TEE_IOC_SUPPL_SEND); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else /* !HAVE_LINUX_TEE_H */ + +SKIP_MAIN_UNDEFINED("HAVE_LINUX_TEE_H") + +#endif /* HAVE_LINUX_TEE_H */ diff --git a/tests-mx32/ioctl_tee.gen.test b/tests-mx32/ioctl_tee.gen.test new file mode 100755 index 00000000..f220bca2 --- /dev/null +++ b/tests-mx32/ioctl_tee.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_tee +ioctl.test ); do not edit. +set -- +. "${srcdir=.}/ioctl.test" diff --git a/tests-mx32/ioctl_uffdio.c b/tests-mx32/ioctl_uffdio.c index 19104442..971440d0 100644 --- a/tests-mx32/ioctl_uffdio.c +++ b/tests-mx32/ioctl_uffdio.c @@ -1,14 +1,14 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin * Copyright (c) 2016 Red Hat, Inc. - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_userfaultfd && defined HAVE_LINUX_USERFAULTFD_H @@ -135,6 +135,13 @@ main(void) " mode=UFFDIO_COPY_MODE_DONTWAKE, copy=%#zx}) = %d\n", fd, area2, area1, pagesize, pagesize, rc); + copy_struct->mode = 0xdeadbeef;; + rc = ioctl(fd, UFFDIO_COPY, copy_struct); + printf("ioctl(%d, UFFDIO_COPY, {dst=%p, src=%p, len=%#zx," + " mode=UFFDIO_COPY_MODE_DONTWAKE|UFFDIO_COPY_MODE_WP|0xdeadbeec" + "}) = %s\n", + fd, area2, area1, pagesize, sprintrc(rc)); + /* ---- ZEROPAGE ---- */ TAIL_ALLOC_OBJECT_CONST_PTR(struct uffdio_zeropage, zero_struct); madvise(area2, pagesize, MADV_DONTNEED); diff --git a/tests-mx32/ioctl_v4l2-Xabbrev.c b/tests-mx32/ioctl_v4l2-Xabbrev.c new file mode 100644 index 00000000..54046bff --- /dev/null +++ b/tests-mx32/ioctl_v4l2-Xabbrev.c @@ -0,0 +1 @@ +#include "ioctl_v4l2.c" diff --git a/tests-mx32/ioctl_v4l2-Xabbrev.gen.test b/tests-mx32/ioctl_v4l2-Xabbrev.gen.test new file mode 100755 index 00000000..f90c41dc --- /dev/null +++ b/tests-mx32/ioctl_v4l2-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-Xabbrev +ioctl.test -Xabbrev); do not edit. +set -- -Xabbrev +. "${srcdir=.}/ioctl.test" diff --git a/tests-mx32/ioctl_v4l2-Xraw.c b/tests-mx32/ioctl_v4l2-Xraw.c new file mode 100644 index 00000000..da45f6da --- /dev/null +++ b/tests-mx32/ioctl_v4l2-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_v4l2.c" diff --git a/tests-mx32/ioctl_v4l2-Xraw.gen.test b/tests-mx32/ioctl_v4l2-Xraw.gen.test new file mode 100755 index 00000000..9ebd2835 --- /dev/null +++ b/tests-mx32/ioctl_v4l2-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-Xraw +ioctl.test -Xraw); do not edit. +set -- -Xraw +. "${srcdir=.}/ioctl.test" diff --git a/tests-mx32/ioctl_v4l2-Xverbose.c b/tests-mx32/ioctl_v4l2-Xverbose.c new file mode 100644 index 00000000..52173f77 --- /dev/null +++ b/tests-mx32/ioctl_v4l2-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_v4l2.c" diff --git a/tests-mx32/ioctl_v4l2-Xverbose.gen.test b/tests-mx32/ioctl_v4l2-Xverbose.gen.test new file mode 100755 index 00000000..0d0ccd0d --- /dev/null +++ b/tests-mx32/ioctl_v4l2-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-Xverbose +ioctl.test -Xverbose); do not edit. +set -- -Xverbose +. "${srcdir=.}/ioctl.test" diff --git a/tests-mx32/ioctl_v4l2-success-Xabbrev.c b/tests-mx32/ioctl_v4l2-success-Xabbrev.c new file mode 100644 index 00000000..c328ee1e --- /dev/null +++ b/tests-mx32/ioctl_v4l2-success-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_v4l2-success.c" diff --git a/tests-mx32/ioctl_v4l2-success-Xabbrev.gen.test b/tests-mx32/ioctl_v4l2-success-Xabbrev.gen.test new file mode 100755 index 00000000..60e33ad9 --- /dev/null +++ b/tests-mx32/ioctl_v4l2-success-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-success-Xabbrev +ioctl-success.sh -a29 -Xabbrev); do not edit. +set -- -a29 -Xabbrev +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-mx32/ioctl_v4l2-success-Xraw.c b/tests-mx32/ioctl_v4l2-success-Xraw.c new file mode 100644 index 00000000..2ceb2d3d --- /dev/null +++ b/tests-mx32/ioctl_v4l2-success-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_v4l2-success.c" diff --git a/tests-mx32/ioctl_v4l2-success-Xraw.gen.test b/tests-mx32/ioctl_v4l2-success-Xraw.gen.test new file mode 100755 index 00000000..f1ee3f2f --- /dev/null +++ b/tests-mx32/ioctl_v4l2-success-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-success-Xraw +ioctl-success.sh -a27 -Xraw); do not edit. +set -- -a27 -Xraw +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-mx32/ioctl_v4l2-success-Xverbose.c b/tests-mx32/ioctl_v4l2-success-Xverbose.c new file mode 100644 index 00000000..c09ee349 --- /dev/null +++ b/tests-mx32/ioctl_v4l2-success-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_v4l2-success.c" diff --git a/tests-mx32/ioctl_v4l2-success-Xverbose.gen.test b/tests-mx32/ioctl_v4l2-success-Xverbose.gen.test new file mode 100755 index 00000000..a1b69a4a --- /dev/null +++ b/tests-mx32/ioctl_v4l2-success-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-success-Xverbose +ioctl-success.sh -a30 -Xverbose); do not edit. +set -- -a30 -Xverbose +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-mx32/ioctl_v4l2-success-v-Xabbrev.c b/tests-mx32/ioctl_v4l2-success-v-Xabbrev.c new file mode 100644 index 00000000..f06ca45d --- /dev/null +++ b/tests-mx32/ioctl_v4l2-success-v-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_v4l2-success-v.c" diff --git a/tests-mx32/ioctl_v4l2-success-v-Xabbrev.gen.test b/tests-mx32/ioctl_v4l2-success-v-Xabbrev.gen.test new file mode 100755 index 00000000..49dfc26a --- /dev/null +++ b/tests-mx32/ioctl_v4l2-success-v-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-success-v-Xabbrev +ioctl-success.sh -a29 -v -Xabbrev); do not edit. +set -- -a29 -v -Xabbrev +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-mx32/ioctl_v4l2-success-v-Xraw.c b/tests-mx32/ioctl_v4l2-success-v-Xraw.c new file mode 100644 index 00000000..a95c12fa --- /dev/null +++ b/tests-mx32/ioctl_v4l2-success-v-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_v4l2-success-v.c" diff --git a/tests-mx32/ioctl_v4l2-success-v-Xraw.gen.test b/tests-mx32/ioctl_v4l2-success-v-Xraw.gen.test new file mode 100755 index 00000000..55e9799c --- /dev/null +++ b/tests-mx32/ioctl_v4l2-success-v-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-success-v-Xraw +ioctl-success.sh -a27 -v -Xraw); do not edit. +set -- -a27 -v -Xraw +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-mx32/ioctl_v4l2-success-v-Xverbose.c b/tests-mx32/ioctl_v4l2-success-v-Xverbose.c new file mode 100644 index 00000000..ac659b31 --- /dev/null +++ b/tests-mx32/ioctl_v4l2-success-v-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_v4l2-success-v.c" diff --git a/tests-mx32/ioctl_v4l2-success-v-Xverbose.gen.test b/tests-mx32/ioctl_v4l2-success-v-Xverbose.gen.test new file mode 100755 index 00000000..ed9278f1 --- /dev/null +++ b/tests-mx32/ioctl_v4l2-success-v-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-success-v-Xverbose +ioctl-success.sh -a29 -v -Xverbose); do not edit. +set -- -a29 -v -Xverbose +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-mx32/ioctl_v4l2-success-v.c b/tests-mx32/ioctl_v4l2-success-v.c new file mode 100644 index 00000000..fadad4ef --- /dev/null +++ b/tests-mx32/ioctl_v4l2-success-v.c @@ -0,0 +1,2 @@ +#define VERBOSE 1 +#include "ioctl_v4l2-success.c" diff --git a/tests-mx32/ioctl_v4l2-success-v.gen.test b/tests-mx32/ioctl_v4l2-success-v.gen.test new file mode 100755 index 00000000..6eca4cdd --- /dev/null +++ b/tests-mx32/ioctl_v4l2-success-v.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-success-v +ioctl-success.sh -a29 -v); do not edit. +set -- -a29 -v +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-mx32/ioctl_v4l2-success.c b/tests-mx32/ioctl_v4l2-success.c new file mode 100644 index 00000000..f1b834ee --- /dev/null +++ b/tests-mx32/ioctl_v4l2-success.c @@ -0,0 +1,1473 @@ +/* + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#include +#include +#include +#include +#include +#include "kernel_v4l2_types.h" + +#define XLAT_MACROS_ONLY +# include "xlat/v4l2_ioctl_cmds.h" +#undef XLAT_MACROS_ONLY + +static bool +fill_fmt(struct v4l2_format *f) +{ + static struct v4l2_clip *clips; + + switch (f->type) { + case V4L2_BUF_TYPE_VIDEO_CAPTURE: + case V4L2_BUF_TYPE_VIDEO_OUTPUT: + f->fmt.pix.width = 0xdeadc0de; + f->fmt.pix.height = 0xfeedbeef; + f->fmt.pix.pixelformat = 0xb5315258; /* forurcc_be("XR15") */ + f->fmt.pix.field = f->type == V4L2_BUF_TYPE_VIDEO_CAPTURE + ? V4L2_FIELD_ALTERNATE : 0xdec0ded1; + f->fmt.pix.bytesperline = 0xbadc0ded; + f->fmt.pix.sizeimage = 0xface1e55; + f->fmt.pix.colorspace = V4L2_COLORSPACE_REC709; + break; + + case V4L2_BUF_TYPE_VIDEO_OVERLAY: +#if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY + case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY: +#endif + f->fmt.win.w.left = 0xa0a1a2a3; + f->fmt.win.w.top = 0xb0b1b2b3; + f->fmt.win.w.width = 0xc0c1c2c3; + f->fmt.win.w.height = 0xd0d1d2d3; + f->fmt.win.field = f->type == V4L2_BUF_TYPE_VIDEO_OVERLAY + ? V4L2_FIELD_ANY : 10; + f->fmt.win.chromakey = 0xbeefface; + + if (!clips) + clips = tail_alloc(sizeof(*clips) * 3); + f->fmt.win.clips = clips; + + f->fmt.win.clips[0].c.left = 0xa4a5a6a7; + f->fmt.win.clips[0].c.top = 0xb4b5b6b7; + f->fmt.win.clips[0].c.width = 0xc4c5c6c7; + f->fmt.win.clips[0].c.height = 0xd4d5d6d7; + f->fmt.win.clips[0].next = clips; + + f->fmt.win.clips[1].c.left = 0xa8a9aaab; + f->fmt.win.clips[1].c.top = 0xb8b9babb; + f->fmt.win.clips[1].c.width = 0xc8c9cacb; + f->fmt.win.clips[1].c.height = 0xd8d9dadb; + + f->fmt.win.clips[2].c.left = 0xacadaeaf; + f->fmt.win.clips[2].c.top = 0xbcbdbebf; + f->fmt.win.clips[2].c.width = 0xcccdcecf; + f->fmt.win.clips[2].c.height = 0xdcdddedf; + f->fmt.win.clips[2].next = clips + 1; + + f->fmt.win.clipcount = f->type == V4L2_BUF_TYPE_VIDEO_OVERLAY + ? 4 : 0; + f->fmt.win.bitmap = f->type == V4L2_BUF_TYPE_VIDEO_OVERLAY + ? NULL : clips; + break; + + case V4L2_BUF_TYPE_VBI_CAPTURE: + case V4L2_BUF_TYPE_VBI_OUTPUT: + f->fmt.vbi.sampling_rate = 0xdecaffed; + f->fmt.vbi.offset = 0xcafefeed; + f->fmt.vbi.samples_per_line = 0xbeefaced; + f->fmt.vbi.sample_format = V4L2_PIX_FMT_RGB555X; + + f->fmt.vbi.start[0] = 0xdec0ded0; + f->fmt.vbi.start[1] = 0xdec0ded1; + f->fmt.vbi.count[0] = 0xacceded2; + f->fmt.vbi.count[1] = 0xacceded3; + + f->fmt.vbi.flags = f->type == V4L2_BUF_TYPE_VBI_CAPTURE + ? 0x3 : 0x1ce50d1c; + break; + +#if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE + case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: + case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE: + f->fmt.pix_mp.width = 0xdeaffade; + f->fmt.pix_mp.height = 0xfadeb1a5; + f->fmt.pix_mp.pixelformat = 0x36314454; + f->fmt.pix_mp.field = V4L2_FIELD_NONE; + f->fmt.pix_mp.colorspace = 13; + + for (size_t i = 0; i < VIDEO_MAX_PLANES; i++) { + f->fmt.pix_mp.plane_fmt[i].sizeimage = 0xd0decad0 ^ i; + if (sizeof(f->fmt.pix_mp.plane_fmt[i].bytesperline) == + sizeof(uint32_t)) { + f->fmt.pix_mp.plane_fmt[i].bytesperline + = 0xd0decad1 ^ i; + } else { +# if WORDS_BIGENDIAN + f->fmt.pix_mp.plane_fmt[i].bytesperline + = 0xd0de; + f->fmt.pix_mp.plane_fmt[i].reserved[0] + = 0xcad1 ^ i; +# else + f->fmt.pix_mp.plane_fmt[i].bytesperline + = 0xcad1 ^ i; + f->fmt.pix_mp.plane_fmt[i].reserved[0] + = 0xd0de; +# endif + } + } + + f->fmt.pix_mp.num_planes = f->type == + V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE ? 0xd5 : 0; + break; +#endif +#if HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE + case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: + case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: + f->fmt.sliced.service_set = 0xfeed; + for (size_t i = 0; i < 2; i++) { + for (size_t j = 0; j < 24; j++) { + f->fmt.sliced.service_lines[i][j] = + 0xdead ^ (i << 8) ^ j; + } + } + f->fmt.sliced.io_size = 0xdefaceed; + break; +#endif +#if HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE + case V4L2_BUF_TYPE_SDR_CAPTURE: +# if HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT + case V4L2_BUF_TYPE_SDR_OUTPUT: +# endif + f->fmt.sdr.pixelformat = V4L2_SDR_FMT_CU8; +# ifdef HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE + if (sizeof(f->fmt.sdr.buffersize == sizeof(uint32_t))) + f->fmt.sdr.buffersize = 0xbadc0ded; + else + ((uint32_t *) &f->fmt.sdr)[1] = 0xbadc0ded; +# else + ((uint32_t *) &f->fmt.sdr)[1] = 0xbadc0ded; +# endif + break; +#endif + default: + return false; + } + + return true; +} + +static void +print_fmt(const char *pfx, struct v4l2_format *f) +{ + switch (f->type) { + case V4L2_BUF_TYPE_VIDEO_CAPTURE: + case V4L2_BUF_TYPE_VIDEO_OUTPUT: + printf("%sfmt.pix={width=3735929054, height=4276993775" + ", pixelformat=" RAW("0xb5315258") + NRAW("v4l2_fourcc('X', 'R', '1', '\\xb5')" + " /* V4L2_PIX_FMT_XRGB555X */") + ", field=%s, bytesperline=3134983661" + ", sizeimage=4207812181, colorspace=" + XLAT_KNOWN(0x3, "V4L2_COLORSPACE_REC709") "}", + pfx, f->type == V4L2_BUF_TYPE_VIDEO_CAPTURE + ? XLAT_STR(V4L2_FIELD_ALTERNATE) + : XLAT_UNKNOWN(0xdec0ded1, "V4L2_FIELD_???")); + break; + + case V4L2_BUF_TYPE_VIDEO_OVERLAY: +#if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY + case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY: +#endif + printf("%sfmt.win={left=-1600019805, top=-1330531661" + ", width=3233923779, height=3503411923, field=%s" + ", chromakey=0xbeefface, clips=[", + pfx, f->type == V4L2_BUF_TYPE_VIDEO_OVERLAY + ? XLAT_STR(V4L2_FIELD_ANY) + : XLAT_UNKNOWN(0xa, "V4L2_FIELD_???")); + if (f->type == V4L2_BUF_TYPE_VIDEO_OVERLAY) { + printf("{left=-1532647769, top=-1263159625" + ", width=3301295815, height=3570783959}, " + "{left=-1465275733, top=-1195787589" + ", width=3368667851, height=3638155995}, " + "{left=-1397903697, top=-1128415553" + ", width=3436039887, height=3705528031}, " + "... /* %p */", f->fmt.win.clips + 3); + } + printf("], clipcount=%d, bitmap=", + f->type == V4L2_BUF_TYPE_VIDEO_OVERLAY ? 4 : 0); + + if (f->type == V4L2_BUF_TYPE_VIDEO_OVERLAY) + printf("NULL"); + else + printf("%p", f->fmt.win.bitmap); + +#ifdef HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA + printf(", global_alpha=%#hhx}", f->fmt.win.global_alpha); +#else + struct win_ga { + struct v4l2_rect w; + uint32_t field; + uint32_t chromakey; + struct v4l2_clip *clips; + uint32_t clipcount; + void *bitmap; + uint8_t global_alpha; + }; + printf(", global_alpha=%#hhx}", + ((struct win_ga *) &f->fmt.win)->global_alpha); +#endif + break; + + case V4L2_BUF_TYPE_VBI_CAPTURE: + case V4L2_BUF_TYPE_VBI_OUTPUT: + printf("%sfmt.vbi={sampling_rate=3737845741, offset=3405709037" + ", samples_per_line=3203378413, sample_format=" + RAW("0x51424752") NRAW("v4l2_fourcc('R', 'G', 'B', 'Q')" + " /* V4L2_PIX_FMT_RGB555X */") + ", start=[-557785392, -557785391]" + ", count=[2899238610, 2899238611], flags=%s}", + pfx, f->type == V4L2_BUF_TYPE_VBI_CAPTURE + ? XLAT_KNOWN(0x3, "V4L2_VBI_UNSYNC|V4L2_VBI_INTERLACED") + : XLAT_UNKNOWN(0x1ce50d1c, "V4L2_VBI_???")); + break; + +#if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE + case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: + case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE: + printf("%sfmt.pix_mp={width=3736074974, height=4208898469" + ", pixelformat=" RAW("0x36314454") + NRAW("v4l2_fourcc('T', 'D', '1', '6')") + ", field=%s, colorspace=0xd" + NRAW(" /* V4L2_COLORSPACE_??? */") ", plane_fmt=[", + pfx, XLAT_STR(V4L2_FIELD_NONE)); + if (f->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) { + printf("{sizeimage=3504261840, bytesperline=3504261841}" + ", " + "{sizeimage=3504261841, bytesperline=3504261840}" + ", " + "{sizeimage=3504261842, bytesperline=3504261843}" + ", " + "{sizeimage=3504261843, bytesperline=3504261842}" + ", " + "{sizeimage=3504261844, bytesperline=3504261845}" + ", " + "{sizeimage=3504261845, bytesperline=3504261844}" + ", " + "{sizeimage=3504261846, bytesperline=3504261847}" + ", " + "{sizeimage=3504261847, bytesperline=3504261846}" + "], num_planes=213}"); + } else { + printf("], num_planes=0}"); + } + break; +#endif +#if HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE + case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: + case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: + printf("%sfmt.sliced={service_set=" + XLAT_UNKNOWN(0xfeed, "V4L2_SLICED_???") + ", io_size=3740978925, service_lines=[[0xdead, 0xdeac" + ", 0xdeaf, 0xdeae, 0xdea9, 0xdea8, 0xdeab, 0xdeaa" + ", 0xdea5, 0xdea4, 0xdea7, 0xdea6, 0xdea1, 0xdea0" + ", 0xdea3, 0xdea2, 0xdebd, 0xdebc, 0xdebf, 0xdebe" + ", 0xdeb9, 0xdeb8, 0xdebb, 0xdeba], [0xdfad, 0xdfac" + ", 0xdfaf, 0xdfae, 0xdfa9, 0xdfa8, 0xdfab, 0xdfaa" + ", 0xdfa5, 0xdfa4, 0xdfa7, 0xdfa6, 0xdfa1, 0xdfa0" + ", 0xdfa3, 0xdfa2, 0xdfbd, 0xdfbc, 0xdfbf, 0xdfbe" + ", 0xdfb9, 0xdfb8, 0xdfbb, 0xdfba]]}", + pfx); + break; +#endif +#if HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE + case V4L2_BUF_TYPE_SDR_CAPTURE: +# if HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT + case V4L2_BUF_TYPE_SDR_OUTPUT: +# endif + printf("%sfmt.sdr={pixelformat=" RAW("0x38305543") + NRAW("v4l2_fourcc('C', 'U', '0', '8')" + " /* V4L2_SDR_FMT_CU8 */") + ", buffersize=3134983661}", + pfx); + break; +#endif + } +} + +int +main(int argc, char **argv) +{ + unsigned long num_skip; + long inject_retval; + bool locked = false; + + if (argc == 1) + return 0; + + if (argc < 3) + error_msg_and_fail("Usage: %s NUM_SKIP INJECT_RETVAL", argv[0]); + + num_skip = strtoul(argv[1], NULL, 0); + inject_retval = strtol(argv[2], NULL, 0); + + if (inject_retval < 0) + error_msg_and_fail("Expected non-negative INJECT_RETVAL, " + "but got %ld", inject_retval); + + for (unsigned int i = 0; i < num_skip; i++) { + long rc = ioctl(-1, VIDIOC_QUERYCAP, NULL); + printf("ioctl(-1, %s, NULL) = %s%s\n", + XLAT_STR(VIDIOC_QUERYCAP), sprintrc(rc), + rc == inject_retval ? " (INJECTED)" : ""); + + if (rc != inject_retval) + continue; + + locked = true; + break; + } + + if (!locked) + error_msg_and_fail("Hasn't locked on ioctl(-1" + ", VIDIOC_QUERYCAP, NULL) returning %lu", + inject_retval); + + + /* VIDIOC_QUERYCAP */ + struct v4l2_capability *caps = tail_alloc(sizeof(*caps)); + + fill_memory(caps, sizeof(*caps)); + caps->capabilities = 0xdeadbeef; +#ifdef HAVE_STRUCT_V4L2_CAPABILITY_DEVICE_CAPS + caps->device_caps = 0xfacefeed; +#else + caps->reserved[0] = 0xfacefeed; +#endif + + ioctl(-1, VIDIOC_QUERYCAP, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_QUERYCAP), inject_retval); + + ioctl(-1, VIDIOC_QUERYCAP, (char *) caps + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_QUERYCAP), (char *) caps + 1, inject_retval); + + ioctl(-1, VIDIOC_QUERYCAP, caps); + printf("ioctl(-1, %s, {driver=", XLAT_STR(VIDIOC_QUERYCAP)); + print_quoted_cstring((char *) caps->driver, sizeof(caps->driver)); + printf(", card="); + print_quoted_cstring((char *) caps->card, sizeof(caps->card)); + printf(", bus_info="); + print_quoted_cstring((char *) caps->bus_info, sizeof(caps->bus_info)); + printf(", version=" +#ifdef WORDS_BIGENDIAN + XLAT_KNOWN(0xd0d1d2d3, "KERNEL_VERSION(53457, 210, 211)") +#else + XLAT_KNOWN(0xd3d2d1d0, "KERNEL_VERSION(54226, 209, 208)") +#endif + ", capabilities=" XLAT_KNOWN(0xdeadbeef, + "V4L2_CAP_VIDEO_CAPTURE|V4L2_CAP_VIDEO_OUTPUT" + "|V4L2_CAP_VIDEO_OVERLAY|V4L2_CAP_VBI_OUTPUT" + "|V4L2_CAP_SLICED_VBI_CAPTURE|V4L2_CAP_SLICED_VBI_OUTPUT" + "|V4L2_CAP_VIDEO_OUTPUT_OVERLAY|V4L2_CAP_HW_FREQ_SEEK" + "|V4L2_CAP_RDS_OUTPUT|V4L2_CAP_VIDEO_CAPTURE_MPLANE" + "|V4L2_CAP_VIDEO_OUTPUT_MPLANE|V4L2_CAP_VIDEO_M2M" + "|V4L2_CAP_TUNER|V4L2_CAP_RADIO|V4L2_CAP_MODULATOR" + "|V4L2_CAP_EXT_PIX_FORMAT|V4L2_CAP_META_CAPTURE|V4L2_CAP_ASYNCIO" + "|V4L2_CAP_STREAMING|V4L2_CAP_META_OUTPUT|V4L2_CAP_TOUCH" + "|V4L2_CAP_DEVICE_CAPS|0x40000008")); + printf(", device_caps=" XLAT_KNOWN(0xfacefeed, + "V4L2_CAP_VIDEO_CAPTURE|V4L2_CAP_VIDEO_OVERLAY" + "|V4L2_CAP_VBI_OUTPUT|V4L2_CAP_SLICED_VBI_CAPTURE" + "|V4L2_CAP_SLICED_VBI_OUTPUT|V4L2_CAP_VIDEO_OUTPUT_OVERLAY" + "|V4L2_CAP_HW_FREQ_SEEK|V4L2_CAP_RDS_OUTPUT" + "|V4L2_CAP_VIDEO_CAPTURE_MPLANE|V4L2_CAP_VIDEO_OUTPUT_MPLANE" + "|V4L2_CAP_VIDEO_M2M_MPLANE|V4L2_CAP_VIDEO_M2M|V4L2_CAP_AUDIO" + "|V4L2_CAP_RADIO|V4L2_CAP_MODULATOR|V4L2_CAP_SDR_OUTPUT" + "|V4L2_CAP_META_CAPTURE|V4L2_CAP_ASYNCIO|V4L2_CAP_META_OUTPUT" + "|V4L2_CAP_TOUCH|V4L2_CAP_DEVICE_CAPS|0x60000008")); + printf("}) = %ld (INJECTED)\n", inject_retval); + + + /* VIDIOC_ENUM_FMT */ + static const struct strval32 buf_types[] = { + { ARG_XLAT_UNKNOWN(0, "V4L2_BUF_TYPE_???") }, + { ARG_XLAT_KNOWN(0x1, "V4L2_BUF_TYPE_VIDEO_CAPTURE") }, + { ARG_XLAT_KNOWN(0x2, "V4L2_BUF_TYPE_VIDEO_OUTPUT") }, + { ARG_XLAT_KNOWN(0x3, "V4L2_BUF_TYPE_VIDEO_OVERLAY") }, + { ARG_XLAT_KNOWN(0x4, "V4L2_BUF_TYPE_VBI_CAPTURE") }, + { ARG_XLAT_KNOWN(0x5, "V4L2_BUF_TYPE_VBI_OUTPUT") }, + { ARG_XLAT_KNOWN(0x6, "V4L2_BUF_TYPE_SLICED_VBI_CAPTURE") }, + { ARG_XLAT_KNOWN(0x7, "V4L2_BUF_TYPE_SLICED_VBI_OUTPUT") }, + { ARG_XLAT_KNOWN(0x8, "V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY") }, + { ARG_XLAT_KNOWN(0x9, "V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE") }, + { ARG_XLAT_KNOWN(0xa, "V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE") }, + { ARG_XLAT_KNOWN(0xb, "V4L2_BUF_TYPE_SDR_CAPTURE") }, + { ARG_XLAT_KNOWN(0xc, "V4L2_BUF_TYPE_SDR_OUTPUT") }, + { ARG_XLAT_KNOWN(0xd, "V4L2_BUF_TYPE_META_CAPTURE") }, + { ARG_XLAT_KNOWN(0xe, "V4L2_BUF_TYPE_META_OUTPUT") }, + { ARG_XLAT_UNKNOWN(0xf, "V4L2_BUF_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0x80, "V4L2_BUF_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0xbadc0ded, "V4L2_BUF_TYPE_???") }, + }; + static const struct strval32 fmtdesc_flags[] = { + { ARG_STR(0) }, + { ARG_XLAT_KNOWN(0x1, "V4L2_FMT_FLAG_COMPRESSED") }, + { ARG_XLAT_KNOWN(0x3e, "V4L2_FMT_FLAG_EMULATED" + "|V4L2_FMT_FLAG_CONTINUOUS_BYTESTREAM" + "|V4L2_FMT_FLAG_DYN_RESOLUTION" + "|V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL" + "|0x20") }, + { ARG_XLAT_UNKNOWN(0xdead0000, "V4L2_FMT_FLAG_???") }, + }; + static const struct strval32 fmtdesc_fmts[] = { + { 0x4c47504a, RAW("0x4c47504a") + NRAW("v4l2_fourcc('J', 'P', 'G', 'L')" + " /* V4L2_PIX_FMT_JPGL */") }, + { 0xbadc0ded, RAW("0xbadc0ded") + NRAW("v4l2_fourcc('\\xed', '\\x0d', '\\xdc'," + " '\\xba')") }, + }; + struct v4l2_fmtdesc *fmtdesc = tail_alloc(sizeof(*fmtdesc)); + + fill_memory(fmtdesc, sizeof(*fmtdesc)); + fmtdesc->index = 0xdeac0de; + + ioctl(-1, VIDIOC_ENUM_FMT, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FMT), inject_retval); + + ioctl(-1, VIDIOC_ENUM_FMT, (char *) fmtdesc + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FMT), (char *) fmtdesc + 1, inject_retval); + + for (size_t i = 0; i < ARRAY_SIZE(buf_types); i++) { + for (size_t j = 0; j < ARRAY_SIZE(fmtdesc_flags); j++) { + for (size_t k = 0; k < ARRAY_SIZE(fmtdesc_fmts); k++) { + fmtdesc->type = buf_types[i].val; + fmtdesc->flags = fmtdesc_flags[j].val; + fmtdesc->pixelformat = fmtdesc_fmts[k].val; + + ioctl(-1, VIDIOC_ENUM_FMT, fmtdesc); + printf("ioctl(-1, %s, {index=233488606, type=%s" + ", flags=%s, description=", + XLAT_STR(VIDIOC_ENUM_FMT), + buf_types[i].str, + fmtdesc_flags[j].str); + print_quoted_cstring((char *) fmtdesc->description, + sizeof(fmtdesc->description)); + printf(", pixelformat=%s}) = %ld (INJECTED)\n", + fmtdesc_fmts[k].str, inject_retval); + + fill_memory_ex(fmtdesc->description, + sizeof(fmtdesc->description), + (i * 9 + j) * 7 + k, + (k * 3 + j) * 11 + i + 5); + } + } + } + + + /* VIDIOC_REQBUFS */ + static const struct strval32 reqb_mems[] = { + { ARG_XLAT_UNKNOWN(0, "V4L2_MEMORY_???") }, + { ARG_XLAT_KNOWN(0x1, "V4L2_MEMORY_MMAP") }, + { ARG_XLAT_KNOWN(0x4, "V4L2_MEMORY_DMABUF") }, + { ARG_XLAT_UNKNOWN(0x5, "V4L2_MEMORY_???") }, + { ARG_XLAT_UNKNOWN(0xbadc0ded, "V4L2_MEMORY_???") }, + }; + struct v4l2_requestbuffers *reqb = tail_alloc(sizeof(*reqb)); + + fill_memory(reqb, sizeof(*reqb)); + reqb->count = 0xfeedface; + + ioctl(-1, VIDIOC_REQBUFS, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_REQBUFS), inject_retval); + + ioctl(-1, VIDIOC_REQBUFS, (char *) reqb + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_REQBUFS), (char *) reqb + 1, inject_retval); + + for (size_t i = 0; i < MAX(ARRAY_SIZE(buf_types), + ARRAY_SIZE(reqb_mems)); i++) { + reqb->type = buf_types[i % ARRAY_SIZE(buf_types)].val; + reqb->memory = reqb_mems[i % ARRAY_SIZE(reqb_mems)].val; + + ioctl(-1, VIDIOC_REQBUFS, reqb); + printf("ioctl(-1, %s, {type=%s, memory=%s" + ", count=4277009102 => 4277009102}) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_REQBUFS), + buf_types[i % ARRAY_SIZE(buf_types)].str, + reqb_mems[i % ARRAY_SIZE(reqb_mems)].str, + inject_retval); + } + + + /* VIDIOC_G_FMT, VIDIOC_S_FMT, VIDIOC_TRY_FMT */ + static const struct strval32 fmt_cmds[] = { + { ARG_STR(VIDIOC_G_FMT) }, + { ARG_STR(VIDIOC_S_FMT) }, + { ARG_STR(VIDIOC_TRY_FMT) }, + }; + + struct v4l2_format *fmt = tail_alloc(sizeof(*fmt)); + + for (size_t i = 0; i < ARRAY_SIZE(fmt_cmds); i++) { + ioctl(-1, fmt_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(fmt_cmds[i].str, fmt_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, fmt_cmds[i].val, (char *) fmt + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(fmt_cmds[i].str, fmt_cmds[i].val, NULL), + (char *) fmt + 1, inject_retval); + + for (size_t j = 0; j < ARRAY_SIZE(buf_types); j++) { + fill_memory(fmt, sizeof(*fmt)); + + fmt->type = buf_types[j].val; + if (!fill_fmt(fmt)) + continue; + + ioctl(-1, fmt_cmds[i].val, fmt); + printf("ioctl(-1, %s, {type=%s", + sprintxlat(fmt_cmds[i].str, fmt_cmds[i].val, + NULL), + buf_types[j].str); + print_fmt(", ", fmt); + if (fmt_cmds[i].val != VIDIOC_G_FMT && + buf_types[j].val != V4L2_BUF_TYPE_VIDEO_OVERLAY && + buf_types[j].val != 8) + print_fmt("} => {", fmt); + printf("}) = %ld (INJECTED)\n", inject_retval); + } + } + + + /* VIDIOC_QUERYBUF, VIDIOC_QBUF, VIDIOC_DQBUF */ + static const struct strval32 buf_cmds[] = { + { ARG_STR(VIDIOC_QUERYBUF) }, + { ARG_STR(VIDIOC_QBUF) }, + { ARG_STR(VIDIOC_DQBUF) }, + }; + + kernel_v4l2_buffer_t *buf = tail_alloc(sizeof(*buf)); + + for (size_t i = 0; i < ARRAY_SIZE(buf_cmds); i++) { + ioctl(-1, buf_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(buf_cmds[i].str, buf_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, buf_cmds[i].val, (char *) buf + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(buf_cmds[i].str, buf_cmds[i].val, NULL), + (char *) buf + 1, inject_retval); + + fill_memory(buf, sizeof(*buf)); + buf->index = 0xdeadc0de; + buf->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + buf->bytesused = 0xdecaffee; + buf->flags = 0x1ff; /* TODO: update */ + buf->field = V4L2_FIELD_TOP; + + buf->timestamp.tv_sec = 0x1e55c0de; + buf->timestamp.tv_usec = 999999; + + buf->timecode.type = V4L2_TC_TYPE_24FPS; + buf->timecode.flags = 0xbeefdeaf; + + buf->memory = V4L2_MEMORY_MMAP; + buf->m.offset = 0xfacefeed; + buf->length = 0xcafebed5; + buf->reserved = 0xdeefaced; + + ioctl(-1, buf_cmds[i].val, buf); + printf("ioctl(-1, %s, {type=" + XLAT_KNOWN(0x1, "V4L2_BUF_TYPE_VIDEO_CAPTURE") + ", index=3735929054, memory=" + XLAT_KNOWN(0x1, "V4L2_MEMORY_MMAP") + ", m.offset=0xfacefeed, length=3405692629" + ", bytesused=3737845742, flags=" RAW("0x1ff") +#if !XLAT_RAW + XLAT_KNOWN(0x1ff, "V4L2_BUF_FLAG_MAPPED" + "|V4L2_BUF_FLAG_QUEUED|V4L2_BUF_FLAG_DONE" + "|V4L2_BUF_FLAG_KEYFRAME|V4L2_BUF_FLAG_PFRAME" + "|V4L2_BUF_FLAG_BFRAME|V4L2_BUF_FLAG_ERROR" + "|V4L2_BUF_FLAG_IN_REQUEST|V4L2_BUF_FLAG_TIMECODE") "|" + XLAT_KNOWN(0, "V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN") "|" + XLAT_KNOWN(0, "V4L2_BUF_FLAG_TSTAMP_SRC_EOF") +#endif + "%s, ...}) = %ld (INJECTED)\n", + sprintxlat(buf_cmds[i].str, buf_cmds[i].val, NULL), + buf_cmds[i].val == VIDIOC_DQBUF + ? ", timestamp={tv_sec=508936414, tv_usec=999999}" : "", + inject_retval); + + buf->type = V4L2_BUF_TYPE_VBI_CAPTURE; + buf->flags = 0x268040; + buf->field = 0xb; + buf->memory = V4L2_MEMORY_USERPTR; + buf->m.userptr = (long) 0xdefaced0dec0ded1LL; + + ioctl(-1, buf_cmds[i].val, buf); + printf("ioctl(-1, %s, {type=" + XLAT_KNOWN(0x4, "V4L2_BUF_TYPE_VBI_CAPTURE") + ", index=3735929054, memory=" + XLAT_KNOWN(0x2, "V4L2_MEMORY_USERPTR") + ", m.userptr=%p, length=3405692629" + ", bytesused=3737845742, flags=" RAW("0x268040") +#if !XLAT_RAW + XLAT_KNOWN(0x200040, "V4L2_BUF_FLAG_ERROR|0x200000") "|" + XLAT_UNKNOWN(0x8000, "V4L2_BUF_FLAG_TIMESTAMP_???") "|" + XLAT_UNKNOWN(0x60000, "V4L2_BUF_FLAG_TSTAMP_SRC_???") +#endif + "%s, ...}) = %ld (INJECTED)\n", + sprintxlat(buf_cmds[i].str, buf_cmds[i].val, NULL), + (void *) (intptr_t) 0xdefaced0dec0ded1LL, + buf_cmds[i].val == VIDIOC_DQBUF + ? ", timestamp={tv_sec=508936414, tv_usec=999999}" : "", + inject_retval); + + buf->type = 0x9; + buf->flags = 0; + + ioctl(-1, buf_cmds[i].val, buf); + printf("ioctl(-1, %s, {type=" + XLAT_KNOWN(0x9, "V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE") + ", index=3735929054, memory=" + XLAT_KNOWN(0x2, "V4L2_MEMORY_USERPTR") + ", m.userptr=%p, length=3405692629" + ", bytesused=3737845742, flags=" RAW("0") +#if !XLAT_RAW + XLAT_KNOWN(0, "V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN") "|" + XLAT_KNOWN(0, "V4L2_BUF_FLAG_TSTAMP_SRC_EOF") +#endif + "%s, ...}) = %ld (INJECTED)\n", + sprintxlat(buf_cmds[i].str, buf_cmds[i].val, NULL), + (void *) (intptr_t) 0xdefaced0dec0ded1LL, + buf_cmds[i].val == VIDIOC_DQBUF + ? ", timestamp={tv_sec=508936414, tv_usec=999999}" : "", + inject_retval); + + buf->type = 0xa; + buf->memory = V4L2_MEMORY_OVERLAY; + buf->flags = 0x2000; + + ioctl(-1, buf_cmds[i].val, buf); + printf("ioctl(-1, %s, {type=" + XLAT_KNOWN(0xa, "V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE") + ", index=3735929054, memory=" + XLAT_KNOWN(0x3, "V4L2_MEMORY_OVERLAY") + ", length=3405692629, bytesused=3737845742" + ", flags=" RAW("0x2000") +#if !XLAT_RAW + XLAT_KNOWN(0x2000, "V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC") + "|" XLAT_KNOWN(0, "V4L2_BUF_FLAG_TSTAMP_SRC_EOF") +#endif + "%s, ...}) = %ld (INJECTED)\n", + sprintxlat(buf_cmds[i].str, buf_cmds[i].val, NULL), + buf_cmds[i].val == VIDIOC_DQBUF + ? ", timestamp={tv_sec=508936414, tv_usec=999999}" : "", + inject_retval); + } + + + /* VIDIOC_G_FBUF, VIDIOC_S_FBUF */ + static const struct strval32 fbuf_cmds[] = { + { ARG_STR(VIDIOC_G_FBUF) }, + { ARG_STR(VIDIOC_S_FBUF) }, + }; + + struct v4l2_framebuffer *fbuf = tail_alloc(sizeof(*fbuf)); + + for (size_t i = 0; i < ARRAY_SIZE(fbuf_cmds); i++) { + ioctl(-1, fbuf_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(fbuf_cmds[i].str, fbuf_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, fbuf_cmds[i].val, (char *) fbuf + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(fbuf_cmds[i].str, fbuf_cmds[i].val, NULL), + (char *) fbuf + 1, inject_retval); + + fill_memory32(fbuf, sizeof(*fbuf)); + fbuf->base = NULL; + + ioctl(-1, fbuf_cmds[i].val, fbuf); + printf("ioctl(-1, %s, {capability=0x80a0c0e0, flags=0x80a0c0e1" + ", base=NULL}) = %ld (INJECTED)\n", + sprintxlat(fbuf_cmds[i].str, fbuf_cmds[i].val, NULL), + inject_retval); + } + + + /* VIDIOC_G_PARM, VIDIOC_S_PARM */ + static const struct strval32 sparm_cmds[] = { + { ARG_STR(VIDIOC_G_PARM) }, + { ARG_STR(VIDIOC_S_PARM) }, + }; + + struct v4l2_streamparm *sparm = tail_alloc(sizeof(*sparm)); + + for (size_t i = 0; i < ARRAY_SIZE(sparm_cmds); i++) { + ioctl(-1, sparm_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(sparm_cmds[i].str, sparm_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, sparm_cmds[i].val, (char *) sparm + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(sparm_cmds[i].str, sparm_cmds[i].val, NULL), + (char *) sparm + 1, inject_retval); + + fill_memory32(sparm, sizeof(*sparm)); + + ioctl(-1, sparm_cmds[i].val, sparm); + printf("ioctl(-1, %s, {type=" + XLAT_UNKNOWN(0x80a0c0e0, "V4L2_BUF_TYPE_???") + "}) = %ld (INJECTED)\n", + sprintxlat(sparm_cmds[i].str, sparm_cmds[i].val, NULL), + inject_retval); + + sparm->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + + static const char *parm_str1 = "parm.capture={capability=" + XLAT_UNKNOWN(0x80a0c0e1, "V4L2_CAP_???") + ", capturemode=" + XLAT_UNKNOWN(0x80a0c0e2, "V4L2_MODE_???") + ", timeperframe=2158018787/2158018788" + ", extendedmode=0x80a0c0e5, readbuffers=2158018790}"; + + ioctl(-1, sparm_cmds[i].val, sparm); + printf("ioctl(-1, %s, {type=" + XLAT_KNOWN(0x1, "V4L2_BUF_TYPE_VIDEO_CAPTURE") + ", %s}%s%s%s) = %ld (INJECTED)\n", + sprintxlat(sparm_cmds[i].str, sparm_cmds[i].val, NULL), + parm_str1, + sparm_cmds[i].val == VIDIOC_S_PARM ? " => {" : "", + sparm_cmds[i].val == VIDIOC_S_PARM ? parm_str1 : "", + sparm_cmds[i].val == VIDIOC_S_PARM ? "}" : "", + inject_retval); + + sparm->parm.capture.capability = 0x1000; + sparm->parm.capture.capturemode = 0x1; + + static const char *parm_str2 = "parm.capture={capability=" + XLAT_KNOWN(0x1000, "V4L2_CAP_TIMEPERFRAME") + ", capturemode=" + XLAT_KNOWN(0x1, "V4L2_MODE_HIGHQUALITY") + ", timeperframe=2158018787/2158018788" + ", extendedmode=0x80a0c0e5, readbuffers=2158018790}"; + + ioctl(-1, sparm_cmds[i].val, sparm); + printf("ioctl(-1, %s, {type=" + XLAT_KNOWN(0x1, "V4L2_BUF_TYPE_VIDEO_CAPTURE") + ", %s}%s%s%s) = %ld (INJECTED)\n", + sprintxlat(sparm_cmds[i].str, sparm_cmds[i].val, NULL), + parm_str2, + sparm_cmds[i].val == VIDIOC_S_PARM ? " => {" : "", + sparm_cmds[i].val == VIDIOC_S_PARM ? parm_str2 : "", + sparm_cmds[i].val == VIDIOC_S_PARM ? "}" : "", + inject_retval); + + sparm->type = 0x9; + sparm->parm.capture.capability = 0xdeadbeef; + sparm->parm.capture.capturemode = 0xadec0ded; + + ioctl(-1, sparm_cmds[i].val, sparm); + printf("ioctl(-1, %s, {type=" + XLAT_KNOWN(0x9, "V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE") + "}) = %ld (INJECTED)\n", + sprintxlat(sparm_cmds[i].str, sparm_cmds[i].val, NULL), + inject_retval); + + fill_memory32(sparm, sizeof(*sparm)); + sparm->type = V4L2_BUF_TYPE_VIDEO_OUTPUT; + + static const char *parm_str3 = "parm.output={capability=" + XLAT_UNKNOWN(0x80a0c0e1, "V4L2_CAP_???") + ", outputmode=" + XLAT_UNKNOWN(0x80a0c0e2, "V4L2_MODE_???") + ", timeperframe=2158018787/2158018788" + ", extendedmode=0x80a0c0e5, writebuffers=2158018790}"; + + ioctl(-1, sparm_cmds[i].val, sparm); + printf("ioctl(-1, %s, {type=" + XLAT_KNOWN(0x2, "V4L2_BUF_TYPE_VIDEO_OUTPUT") + ", %s}%s%s%s) = %ld (INJECTED)\n", + sprintxlat(sparm_cmds[i].str, sparm_cmds[i].val, NULL), + parm_str3, + sparm_cmds[i].val == VIDIOC_S_PARM ? " => {" : "", + sparm_cmds[i].val == VIDIOC_S_PARM ? parm_str3 : "", + sparm_cmds[i].val == VIDIOC_S_PARM ? "}" : "", + inject_retval); + + } + + + /* VIDIOC_G_STD, VIDIOC_S_STD */ + static const struct strval32 stdid_cmds[] = { + { ARG_STR(VIDIOC_G_STD) }, + { ARG_STR(VIDIOC_S_STD) }, + }; + static const struct strval64 stdids[] = { + { ARG_STR(0) }, + { ARG_STR(0x1) }, + { ARG_STR(0xb000) }, + { ARG_STR(0x3ffffff) }, + { ARG_STR(0xffffffff) }, + { ARG_ULL_STR(0xbadc0deddeadface) }, + }; + + v4l2_std_id *stdid = tail_alloc(sizeof(*stdid)); + + for (size_t i = 0; i < ARRAY_SIZE(stdid_cmds); i++) { + ioctl(-1, stdid_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(stdid_cmds[i].str, stdid_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, stdid_cmds[i].val, (char *) stdid + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(stdid_cmds[i].str, stdid_cmds[i].val, NULL), + (char *) stdid + 1, inject_retval); + + for (size_t j = 0; j < ARRAY_SIZE(stdids); j++) { + *stdid = stdids[j].val; + + ioctl(-1, stdid_cmds[i].val, stdid); + printf("ioctl(-1, %s, [%s]) = %ld (INJECTED)\n", + sprintxlat(stdid_cmds[i].str, stdid_cmds[i].val, NULL), + stdids[j].str, inject_retval); + + } + } + + + /* VIDIOC_ENUMSTD */ + struct v4l2_standard *std = tail_alloc(sizeof(*std)); + + ioctl(-1, VIDIOC_ENUMSTD, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUMSTD), inject_retval); + + ioctl(-1, VIDIOC_ENUMSTD, (char *) std + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUMSTD), (char *) std + 1, inject_retval); + + for (size_t i = 0; i < ARRAY_SIZE(stdids); i++) { + fill_memory32(&std->frameperiod, sizeof(*std) - + offsetof(struct v4l2_standard, frameperiod)); + fill_memory_ex(std->name, sizeof(std->name), i * 47 + 1, 255); + std->index = 0xdeadface; + std->id = stdids[i].val; + + ioctl(-1, VIDIOC_ENUMSTD, std); + printf("ioctl(-1, %s, {index=3735943886, name=", + XLAT_STR(VIDIOC_ENUMSTD)); + print_quoted_cstring((char *) std->name, sizeof(std->name)); + printf(", frameperiod=2158018784/2158018785" + ", framelines=2158018786}) = %ld (INJECTED)\n", + inject_retval); + } + + + /* VIDIOC_ENUMINPUT */ + static const struct strval32 input_types[] = { + { ARG_XLAT_UNKNOWN(0, "V4L2_INPUT_TYPE_???") }, + { V4L2_INPUT_TYPE_TUNER, + XLAT_KNOWN(0x1, "V4L2_INPUT_TYPE_TUNER") }, + { V4L2_INPUT_TYPE_CAMERA, + XLAT_KNOWN(0x2, "V4L2_INPUT_TYPE_CAMERA") }, + { ARG_XLAT_UNKNOWN(0x4, "V4L2_INPUT_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0xdeadc0de, "V4L2_INPUT_TYPE_???") }, + }; + + struct v4l2_input *input = tail_alloc(sizeof(*input)); + + ioctl(-1, VIDIOC_ENUMINPUT, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUMINPUT), inject_retval); + + ioctl(-1, VIDIOC_ENUMINPUT, (char *) input + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUMINPUT), (char *) input + 1, inject_retval); + + for (size_t i = 0; i < ARRAY_SIZE(stdids); i++) { + for (size_t j = 0; j < ARRAY_SIZE(input_types); j++) { + fill_memory32(input, sizeof(*input)); + fill_memory_ex(input->name, sizeof(input->name), + i * 47 + 13, 255); + input->type = input_types[j].val; + input->std = stdids[i].val; + + ioctl(-1, VIDIOC_ENUMINPUT, input); + printf("ioctl(-1, %s, {index=2158018784, name=", + XLAT_STR(VIDIOC_ENUMINPUT)); + print_quoted_cstring((char *) input->name, + sizeof(input->name)); + printf(", type=%s}) = %ld (INJECTED)\n", + input_types[j].str, inject_retval); + } + } + + + /* VIDIOC_G_CTRL, VIDIOC_S_CTRL */ + static const struct strval32 ctrl_cmds[] = { + { ARG_STR(VIDIOC_G_CTRL) }, + { ARG_STR(VIDIOC_S_CTRL) }, + }; + + struct v4l2_control *ctrl = tail_alloc(sizeof(*ctrl)); + + for (size_t i = 0; i < ARRAY_SIZE(ctrl_cmds); i++) { + ioctl(-1, ctrl_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(ctrl_cmds[i].str, ctrl_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, ctrl_cmds[i].val, (char *) ctrl + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(ctrl_cmds[i].str, ctrl_cmds[i].val, NULL), + (char *) ctrl + 1, inject_retval); + + /* NB: cid printing is mostly tested in ioctl_v4l2.c */ + fill_memory32(ctrl, sizeof(*ctrl)); + ioctl(-1, ctrl_cmds[i].val, ctrl); + printf("ioctl(-1, %s, {id=0x80a0c0e0" + NRAW(" /* V4L2_CID_??? */") + ", value=-2136948511%s}) = %ld (INJECTED)\n", + sprintxlat(ctrl_cmds[i].str, ctrl_cmds[i].val, NULL), + ctrl_cmds[i].val == VIDIOC_S_CTRL + ? " => -2136948511" : "", + inject_retval); + } + + + /* VIDIOC_G_TUNER, VIDIOC_S_TUNER */ + static const struct strval32 tuner_cmds[] = { + { ARG_STR(VIDIOC_G_TUNER) }, + { ARG_STR(VIDIOC_S_TUNER) }, + }; + static const struct strval32 tuner_types[] = { + { ARG_XLAT_UNKNOWN(0, "V4L2_TUNER_???") }, + { ARG_XLAT_KNOWN(0x1, "V4L2_TUNER_RADIO") }, + { ARG_XLAT_KNOWN(0x5, "V4L2_TUNER_RF") }, + { ARG_XLAT_UNKNOWN(0x6, "V4L2_TUNER_???") }, + { ARG_XLAT_UNKNOWN(0xdeadc0de, "V4L2_TUNER_???") }, + }; + static const struct strval32 tuner_caps[] = { + { ARG_STR(0) }, + { ARG_XLAT_KNOWN(0x1fff, "V4L2_TUNER_CAP_LOW" + "|V4L2_TUNER_CAP_NORM" + "|V4L2_TUNER_CAP_HWSEEK_BOUNDED" + "|V4L2_TUNER_CAP_HWSEEK_WRAP" + "|V4L2_TUNER_CAP_STEREO|V4L2_TUNER_CAP_LANG2" + "|V4L2_TUNER_CAP_LANG1|V4L2_TUNER_CAP_RDS" + "|V4L2_TUNER_CAP_RDS_BLOCK_IO" + "|V4L2_TUNER_CAP_RDS_CONTROLS" + "|V4L2_TUNER_CAP_FREQ_BANDS" + "|V4L2_TUNER_CAP_HWSEEK_PROG_LIM" + "|V4L2_TUNER_CAP_1HZ") }, + { ARG_XLAT_KNOWN(0xdeadc0de, "V4L2_TUNER_CAP_NORM" + "|V4L2_TUNER_CAP_HWSEEK_BOUNDED" + "|V4L2_TUNER_CAP_HWSEEK_WRAP" + "|V4L2_TUNER_CAP_STEREO|V4L2_TUNER_CAP_LANG1" + "|V4L2_TUNER_CAP_RDS|0xdeadc000") }, + { ARG_XLAT_UNKNOWN(0xffffe000, "V4L2_TUNER_CAP_???") }, + }; + static const struct strval32 tuner_rxsc[] = { + { ARG_STR(0) }, + { ARG_XLAT_KNOWN(0x1f, "V4L2_TUNER_SUB_MONO" + "|V4L2_TUNER_SUB_STEREO|V4L2_TUNER_SUB_LANG2" + "|V4L2_TUNER_SUB_LANG1|V4L2_TUNER_SUB_RDS") }, + { ARG_XLAT_KNOWN(0xbeefface, "V4L2_TUNER_SUB_STEREO" + "|V4L2_TUNER_SUB_LANG2|V4L2_TUNER_SUB_LANG1" + "|0xbeeffac0") }, + { ARG_XLAT_UNKNOWN(0xffffffe0, "V4L2_TUNER_SUB_???") }, + + }; + static const struct strval32 tuner_amodes[] = { + { ARG_XLAT_KNOWN(0, "V4L2_TUNER_MODE_MONO") }, + { ARG_XLAT_KNOWN(0x2, "V4L2_TUNER_MODE_LANG2") }, + { ARG_XLAT_KNOWN(0x4, "V4L2_TUNER_MODE_LANG1_LANG2") }, + { ARG_XLAT_UNKNOWN(0x5, "V4L2_TUNER_MODE_???") }, + { ARG_XLAT_UNKNOWN(0xcaffeeed, "V4L2_TUNER_MODE_???") }, + }; + static const size_t tuner_iters = MAX(MAX(MAX(ARRAY_SIZE(tuner_types), + ARRAY_SIZE(tuner_caps)), + ARRAY_SIZE(tuner_rxsc)), + ARRAY_SIZE(tuner_amodes)); + + struct v4l2_tuner *tuner = tail_alloc(sizeof(*tuner)); + + for (size_t i = 0; i < ARRAY_SIZE(tuner_cmds); i++) { + ioctl(-1, tuner_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(tuner_cmds[i].str, tuner_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, tuner_cmds[i].val, (char *) tuner + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(tuner_cmds[i].str, tuner_cmds[i].val, NULL), + (char *) tuner + 1, inject_retval); + + for (size_t j = 0; j < tuner_iters; j++) { + fill_memory32(tuner, sizeof(*tuner)); + fill_memory_ex(tuner->name, sizeof(tuner->name), + j * 47 + 7, 255); + tuner->type = + tuner_types[j % ARRAY_SIZE(tuner_types)].val; + tuner->capability = + tuner_caps[j % ARRAY_SIZE(tuner_caps)].val; + tuner->rxsubchans = + tuner_rxsc[j % ARRAY_SIZE(tuner_rxsc)].val; + tuner->audmode = + tuner_amodes[j % ARRAY_SIZE(tuner_amodes)].val; + + ioctl(-1, tuner_cmds[i].val, tuner); + printf("ioctl(-1, %s, {index=2158018784", + sprintxlat(tuner_cmds[i].str, + tuner_cmds[i].val, NULL)); + for (size_t k = 0; + k < (tuner_cmds[i].val == VIDIOC_S_TUNER ? 2 : 1); + k++) { + printf("%sname=", k ? "} => {" : ", "); + print_quoted_cstring((char *) tuner->name, + sizeof(tuner->name)); + printf(", type=%s, capability=%s" + ", rangelow=2158018795" + ", rangehigh=2158018796, rxsubchans=%s" + ", audmode=%s, signal=-2136948497" + ", afc=-2136948496", + tuner_types[j % + ARRAY_SIZE(tuner_types)].str, + tuner_caps[j % + ARRAY_SIZE(tuner_caps)].str, + tuner_rxsc[j % + ARRAY_SIZE(tuner_rxsc)].str, + tuner_amodes[j % + ARRAY_SIZE(tuner_amodes)].str); + } + printf("}) = %ld (INJECTED)\n", inject_retval); + } + } + + + /* VIDIOC_QUERYCTRL */ + static const struct strval32 cids[] = { + { ARG_XLAT_UNKNOWN(0, "V4L2_CID_???") }, + { ARG_XLAT_UNKNOWN(0x97abcd, "V4L2_CID_???") }, + { ARG_XLAT_KNOWN(0x980000, "V4L2_CTRL_CLASS_USER+0") }, + { ARG_XLAT_KNOWN(0x990a64, + "V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE") }, + { ARG_XLAT_KNOWN(0xa31234, "V4L2_CTRL_CLASS_DETECT+0x1234") }, + { ARG_XLAT_UNKNOWN(0xa40000, "V4L2_CID_???") }, + { 0xdeadc0de, +#if XLAT_RAW + "0xdeadc0de" +#else + XLAT_KNOWN(0xc0000000, "V4L2_CTRL_FLAG_NEXT_CTRL" + "|V4L2_CTRL_FLAG_NEXT_COMPOUND") + "|0x1eadc0de /* V4L2_CID_??? */" +#endif + }, + }; + static const struct strval32 ctrl_types[] = { + { ARG_XLAT_UNKNOWN(0, "V4L2_CTRL_TYPE_???") }, + { ARG_XLAT_KNOWN(0x1, "V4L2_CTRL_TYPE_INTEGER") }, + { ARG_XLAT_KNOWN(0x2, "V4L2_CTRL_TYPE_BOOLEAN") }, + { ARG_XLAT_KNOWN(0x3, "V4L2_CTRL_TYPE_MENU") }, + { ARG_XLAT_KNOWN(0x4, "V4L2_CTRL_TYPE_BUTTON") }, + { ARG_XLAT_KNOWN(0x5, "V4L2_CTRL_TYPE_INTEGER64") }, + { ARG_XLAT_KNOWN(0x6, "V4L2_CTRL_TYPE_CTRL_CLASS") }, + { ARG_XLAT_KNOWN(0x7, "V4L2_CTRL_TYPE_STRING") }, + { ARG_XLAT_KNOWN(0x8, "V4L2_CTRL_TYPE_BITMASK") }, + { ARG_XLAT_KNOWN(0x9, "V4L2_CTRL_TYPE_INTEGER_MENU") }, + { ARG_XLAT_UNKNOWN(0xa, "V4L2_CTRL_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0xff, "V4L2_CTRL_TYPE_???") }, + { ARG_XLAT_KNOWN(0x100, "V4L2_CTRL_TYPE_U8") }, + { ARG_XLAT_KNOWN(0x101, "V4L2_CTRL_TYPE_U16") }, + { ARG_XLAT_KNOWN(0x102, "V4L2_CTRL_TYPE_U32") }, + { ARG_XLAT_UNKNOWN(0x103, "V4L2_CTRL_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0x104, "V4L2_CTRL_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0x105, "V4L2_CTRL_TYPE_???") }, + { ARG_XLAT_KNOWN(0x106, "V4L2_CTRL_TYPE_AREA") }, + { ARG_XLAT_UNKNOWN(0x107, "V4L2_CTRL_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0xdeadc0de, "V4L2_CTRL_TYPE_???") }, + }; + static const struct strval32 ctrl_flags[] = { + { ARG_STR(0) }, + { ARG_XLAT_KNOWN(0x7ff, "V4L2_CTRL_FLAG_DISABLED" + "|V4L2_CTRL_FLAG_GRABBED" + "|V4L2_CTRL_FLAG_READ_ONLY" + "|V4L2_CTRL_FLAG_UPDATE" + "|V4L2_CTRL_FLAG_INACTIVE" + "|V4L2_CTRL_FLAG_SLIDER" + "|V4L2_CTRL_FLAG_WRITE_ONLY" + "|V4L2_CTRL_FLAG_VOLATILE" + "|V4L2_CTRL_FLAG_HAS_PAYLOAD" + "|V4L2_CTRL_FLAG_EXECUTE_ON_WRITE" + "|V4L2_CTRL_FLAG_MODIFY_LAYOUT") }, + { ARG_XLAT_KNOWN(0xbeefface, "V4L2_CTRL_FLAG_GRABBED" + "|V4L2_CTRL_FLAG_READ_ONLY" + "|V4L2_CTRL_FLAG_UPDATE" + "|V4L2_CTRL_FLAG_WRITE_ONLY" + "|V4L2_CTRL_FLAG_VOLATILE" + "|V4L2_CTRL_FLAG_EXECUTE_ON_WRITE" + "|0xbeeff800") }, + { ARG_XLAT_UNKNOWN(0xfffff800, "V4L2_CTRL_FLAG_???") }, + }; + static const size_t qctrl_iters = MAX(MAX(ARRAY_SIZE(cids), + ARRAY_SIZE(ctrl_types)), + ARRAY_SIZE(ctrl_flags)); + + struct v4l2_queryctrl *qctrl = tail_alloc(sizeof(*qctrl)); + + ioctl(-1, VIDIOC_QUERYCTRL, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_QUERYCTRL), inject_retval); + + ioctl(-1, VIDIOC_QUERYCTRL, (char *) qctrl + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_QUERYCTRL), (char *) qctrl + 1, inject_retval); + + for (size_t i = 0; i < qctrl_iters; i++) { + fill_memory32(qctrl, sizeof(*qctrl)); + fill_memory_ex(qctrl->name, sizeof(qctrl->name), + i * 47 + 5, 255); + qctrl->id = cids[i % ARRAY_SIZE(cids)].val; + qctrl->type = ctrl_types[i % ARRAY_SIZE(ctrl_types)].val; + qctrl->flags = ctrl_flags[i % ARRAY_SIZE(ctrl_flags)].val; + + if (i % 2) + memset(qctrl->reserved, 0, sizeof(qctrl->reserved)); + + ioctl(-1, VIDIOC_QUERYCTRL, qctrl); + printf("ioctl(-1, %s, {id=%s, type=%s, name=", + XLAT_STR(VIDIOC_QUERYCTRL), + cids[i % ARRAY_SIZE(cids)].str, + ctrl_types[i % ARRAY_SIZE(ctrl_types)].str); + print_quoted_cstring((char *) qctrl->name, sizeof(qctrl->name)); +#if VERBOSE + printf(", minimum=-2136948502, maximum=-2136948501" + ", step=-2136948500, default_value=-2136948499" + ", flags=%s%s", + ctrl_flags[i % ARRAY_SIZE(ctrl_flags)].str, + i % 2 ? "" : ", reserved=[0x80a0c0ef, 0x80a0c0f0]"); +#else + printf(", ..."); +#endif + printf("}) = %ld (INJECTED)\n", inject_retval); + } + + + /* VIDIOC_G_INPUT, VIDIOC_S_INPUT */ + static const struct strval32 input_cmds[] = { + { ARG_STR(VIDIOC_G_INPUT) }, + { ARG_STR(VIDIOC_S_INPUT) }, + }; + static const struct strval32 inputids[] = { + { ARG_STR(0) }, + { ARG_STR(1) }, + { ARG_STR(1578221295) }, + { ARG_STR(31415926) }, + { ARG_STR(4294967295) }, + }; + + int *inputid = tail_alloc(sizeof(*inputid)); + + for (size_t i = 0; i < ARRAY_SIZE(input_cmds); i++) { + ioctl(-1, input_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(input_cmds[i].str, input_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, input_cmds[i].val, (char *) inputid + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(input_cmds[i].str, input_cmds[i].val, NULL), + (char *) inputid + 1, inject_retval); + + for (size_t j = 0; j < ARRAY_SIZE(inputids); j++) { + *inputid = inputids[j].val; + + ioctl(-1, input_cmds[i].val, inputid); + printf("ioctl(-1, %s, [%s]) = %ld (INJECTED)\n", + sprintxlat(input_cmds[i].str, input_cmds[i].val, + NULL), + inputids[j].str, inject_retval); + + } + } + + + /* VIDIOC_CROPCAP */ + struct v4l2_cropcap *ccap = tail_alloc(sizeof(*ccap)); + + fill_memory32(ccap, sizeof(*ccap)); + + ioctl(-1, VIDIOC_CROPCAP, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_CROPCAP), inject_retval); + + ioctl(-1, VIDIOC_CROPCAP, (char *) ccap + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_CROPCAP), (char *) ccap + 1, inject_retval); + + for (size_t i = 0; i < ARRAY_SIZE(buf_types); i++) { + ccap->type = buf_types[i].val; + + ioctl(-1, VIDIOC_CROPCAP, ccap); + printf("ioctl(-1, %s, {type=%s" + ", bounds={left=-2136948511, top=-2136948510" + ", width=2158018787, height=2158018788}" + ", defrect={left=-2136948507, top=-2136948506" + ", width=2158018791, height=2158018792}" + ", pixelaspect=2158018793/2158018794})" + " = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_CROPCAP), + buf_types[i].str, inject_retval); + } + + + /* VIDIOC_G_CROP, VIDIOC_S_CROP */ + static const struct strval32 crop_cmds[] = { + { ARG_STR(VIDIOC_G_CROP) }, + { ARG_STR(VIDIOC_S_CROP) }, + }; + struct v4l2_crop *crop = tail_alloc(sizeof(*crop)); + + for (size_t i = 0; i < ARRAY_SIZE(crop_cmds); i++) { + fill_memory32(crop, sizeof(*crop)); + + ioctl(-1, crop_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(crop_cmds[i].str, crop_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, crop_cmds[i].val, (char *) crop + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(crop_cmds[i].str, crop_cmds[i].val, NULL), + (char *) crop + 1, inject_retval); + + for (size_t j = 0; j < ARRAY_SIZE(buf_types); j++) { + crop->type = buf_types[j].val; + + ioctl(-1, crop_cmds[i].val, crop); + printf("ioctl(-1, %s, {type=%s, c={left=-2136948511" + ", top=-2136948510, width=2158018787" + ", height=2158018788}}) = %ld (INJECTED)\n", + sprintxlat(crop_cmds[i].str, crop_cmds[i].val, + NULL), + buf_types[j].str, inject_retval); + } + } + + +#ifdef VIDIOC_S_EXT_CTRLS + /* VIDIOC_S_EXT_CTRLS, VIDIOC_TRY_EXT_CTRLS, VIDIOC_G_EXT_CTRLS */ + static const struct strval32 ectrl_cmds[] = { + { ARG_STR(VIDIOC_S_EXT_CTRLS) }, + { ARG_STR(VIDIOC_TRY_EXT_CTRLS) }, + { ARG_STR(VIDIOC_G_EXT_CTRLS) }, + }; + /* static const struct strval32 ectrl_which = { + }; */ + + struct v4l2_ext_controls *ectrls = tail_alloc(sizeof(*ectrls)); + /* struct v4l2_ext_control *ectrl = tail_alloc(sizeof(*ectrl) * 2); */ + + for (size_t i = 0; i < ARRAY_SIZE(ectrl_cmds); i++) { + fill_memory32(ectrls, sizeof(*ectrls)); + + ioctl(-1, ectrl_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(ectrl_cmds[i].str, ectrl_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, ectrl_cmds[i].val, (char *) ectrls + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(ectrl_cmds[i].str, ectrl_cmds[i].val, NULL), + (char *) ectrls + 1, inject_retval); + } + +#endif /* VIDIOC_S_EXT_CTRLS */ + + +#ifdef HAVE_STRUCT_V4L2_FRMSIZEENUM + /* VIDIOC_ENUM_FRAMESIZES */ + static const struct strval32 frmsz_simple_types[] = { + { ARG_XLAT_UNKNOWN(0, "V4L2_FRMSIZE_TYPE_???") }, + { ARG_XLAT_KNOWN(0x2, "V4L2_FRMSIZE_TYPE_CONTINUOUS") }, + { ARG_XLAT_UNKNOWN(0x4, "V4L2_FRMSIZE_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0xdeadf157, "V4L2_FRMSIZE_TYPE_???") }, + }; + + struct v4l2_frmsizeenum *fse = tail_alloc(sizeof(*fse)); + + ioctl(-1, VIDIOC_ENUM_FRAMESIZES, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMESIZES), inject_retval); + + ioctl(-1, VIDIOC_ENUM_FRAMESIZES, (char *) fse + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMESIZES), (char *) fse + 1, + inject_retval); + + fill_memory32(fse, sizeof(*fse)); + fse->type = V4L2_FRMSIZE_TYPE_DISCRETE; + + ioctl(-1, VIDIOC_ENUM_FRAMESIZES, fse); + printf("ioctl(-1, %s, {index=2158018784, pixel_format=" + RAW("0x80a0c0e1") + NRAW("v4l2_fourcc('\\xe1', '\\xc0', '\\xa0', '\\x80')") + ", type=" XLAT_KNOWN(0x1, "V4L2_FRMSIZE_TYPE_DISCRETE") + ", discrete={width=2158018787, height=2158018788}" + "}) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMESIZES), inject_retval); + + fse->pixel_format = 0x5c22270d; + fse->type = V4L2_FRMSIZE_TYPE_STEPWISE; + + ioctl(-1, VIDIOC_ENUM_FRAMESIZES, fse); + printf("ioctl(-1, %s, {index=2158018784, pixel_format=" + RAW("0x5c22270d") + NRAW("v4l2_fourcc('\\x0d', '\\\'', '\"', '\\\\')") + ", type=" XLAT_KNOWN(0x3, "V4L2_FRMSIZE_TYPE_STEPWISE") + ", stepwise={min_width=2158018787, max_width=2158018788" + ", step_width=2158018789, min_height=2158018790" + ", max_height=2158018791, step_height=2158018792}" + "}) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMESIZES), inject_retval); + + for (size_t i = 0; i < ARRAY_SIZE(frmsz_simple_types); i++) { + fill_memory32(fse, sizeof(*fse)); + fse->type = frmsz_simple_types[i].val; + + ioctl(-1, VIDIOC_ENUM_FRAMESIZES, fse); + printf("ioctl(-1, %s, {index=2158018784, pixel_format=" + RAW("0x80a0c0e1") + NRAW("v4l2_fourcc('\\xe1', '\\xc0', '\\xa0', '\\x80')") + ", type=%s}) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMESIZES), + frmsz_simple_types[i].str, inject_retval); + + } +#endif /* HAVE_STRUCT_V4L2_FRMSIZEENUM */ + + +#ifdef HAVE_STRUCT_V4L2_FRMIVALENUM + /* VIDIOC_ENUM_FRAMEINTERVALS */ + static const struct strval32 frmival_simple_types[] = { + { ARG_XLAT_UNKNOWN(0, "V4L2_FRMIVAL_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0x4, "V4L2_FRMIVAL_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0xdeadf157, "V4L2_FRMIVAL_TYPE_???") }, + }; + static const struct strval32 frmival_step_types[] = { + { ARG_XLAT_KNOWN(0x2, "V4L2_FRMIVAL_TYPE_CONTINUOUS") }, + { ARG_XLAT_KNOWN(0x3, "V4L2_FRMIVAL_TYPE_STEPWISE") }, + }; + + struct v4l2_frmivalenum *fie = tail_alloc(sizeof(*fie)); + + ioctl(-1, VIDIOC_ENUM_FRAMEINTERVALS, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMEINTERVALS), inject_retval); + + ioctl(-1, VIDIOC_ENUM_FRAMEINTERVALS, (char *) fie + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMEINTERVALS), (char *) fie + 1, + inject_retval); + + fill_memory32(fie, sizeof(*fie)); + fie->type = V4L2_FRMIVAL_TYPE_DISCRETE; + + ioctl(-1, VIDIOC_ENUM_FRAMEINTERVALS, fie); + printf("ioctl(-1, %s, {index=2158018784, pixel_format=" + RAW("0x80a0c0e1") + NRAW("v4l2_fourcc('\\xe1', '\\xc0', '\\xa0', '\\x80')") + ", width=2158018786, height=2158018787" + ", type=" XLAT_KNOWN(0x1, "V4L2_FRMIVAL_TYPE_DISCRETE") + ", discrete=2158018789/2158018790}) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMEINTERVALS), inject_retval); + + fie->pixel_format = 0x5c22270d; + + for (size_t i = 0; i < ARRAY_SIZE(frmival_step_types); i++) { + fie->type = frmival_step_types[i].val; + + ioctl(-1, VIDIOC_ENUM_FRAMEINTERVALS, fie); + printf("ioctl(-1, %s, {index=2158018784, pixel_format=" + RAW("0x5c22270d") + NRAW("v4l2_fourcc('\\x0d', '\\\'', '\"', '\\\\')") + ", width=2158018786, height=2158018787, type=%s" + ", stepwise={min=2158018789/2158018790" + ", max=2158018791/2158018792" + ", step=2158018793/2158018794}}) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMEINTERVALS), + frmival_step_types[i].str, inject_retval); + } + + for (size_t i = 0; i < ARRAY_SIZE(frmival_simple_types); i++) { + fill_memory32(fie, sizeof(*fie)); + fie->type = frmival_simple_types[i].val; + + ioctl(-1, VIDIOC_ENUM_FRAMEINTERVALS, fie); + printf("ioctl(-1, %s, {index=2158018784, pixel_format=" + RAW("0x80a0c0e1") + NRAW("v4l2_fourcc('\\xe1', '\\xc0', '\\xa0', '\\x80')") + ", width=2158018786, height=2158018787, type=%s})" + " = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMEINTERVALS), + frmival_simple_types[i].str, inject_retval); + + } +#endif /* HAVE_STRUCT_V4L2_FRMIVALENUM */ + + +#ifdef HAVE_STRUCT_V4L2_CREATE_BUFFERS + /* VIDIOC_CREATE_BUFS */ + struct v4l2_create_buffers *cbuf = tail_alloc(sizeof(*cbuf)); + + fill_memory32(cbuf, sizeof(*cbuf)); + + ioctl(-1, VIDIOC_CREATE_BUFS, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_CREATE_BUFS), inject_retval); + + ioctl(-1, VIDIOC_CREATE_BUFS, (char *) cbuf + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_CREATE_BUFS), (char *) cbuf + 1, inject_retval); + + for (size_t i = 0; i < MAX(ARRAY_SIZE(buf_types), + ARRAY_SIZE(reqb_mems)); i++) { + cbuf->memory = reqb_mems[i % ARRAY_SIZE(reqb_mems)].val; + cbuf->format.type = buf_types[i % ARRAY_SIZE(buf_types)].val; + if (!fill_fmt(&cbuf->format)) + continue; + + ioctl(-1, VIDIOC_CREATE_BUFS, cbuf); + printf("ioctl(-1, %s, {count=2158018785, memory=%s" + ", format={type=%s", + XLAT_STR(VIDIOC_CREATE_BUFS), + reqb_mems[i % ARRAY_SIZE(reqb_mems)].str, + buf_types[i % ARRAY_SIZE(buf_types)].str); + print_fmt(", ", &cbuf->format); + printf("}}) = %ld ({index=2158018784, count=2158018785})" + " (INJECTED)\n", inject_retval); + } +#endif /* HAVE_STRUCT_V4L2_CREATE_BUFFERS */ + + puts("+++ exited with 0 +++"); + + return 0; +} diff --git a/tests-mx32/ioctl_v4l2-success.gen.test b/tests-mx32/ioctl_v4l2-success.gen.test new file mode 100755 index 00000000..90376491 --- /dev/null +++ b/tests-mx32/ioctl_v4l2-success.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-success +ioctl-success.sh -a29); do not edit. +set -- -a29 +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests-mx32/ioctl_v4l2-v-Xabbrev.c b/tests-mx32/ioctl_v4l2-v-Xabbrev.c new file mode 100644 index 00000000..3e40ce38 --- /dev/null +++ b/tests-mx32/ioctl_v4l2-v-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_v4l2-v.c" diff --git a/tests-mx32/ioctl_v4l2-v-Xabbrev.gen.test b/tests-mx32/ioctl_v4l2-v-Xabbrev.gen.test new file mode 100755 index 00000000..64f2eacb --- /dev/null +++ b/tests-mx32/ioctl_v4l2-v-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-v-Xabbrev +ioctl.test -v -Xabbrev); do not edit. +set -- -v -Xabbrev +. "${srcdir=.}/ioctl.test" diff --git a/tests-mx32/ioctl_v4l2-v-Xraw.c b/tests-mx32/ioctl_v4l2-v-Xraw.c new file mode 100644 index 00000000..42d6610a --- /dev/null +++ b/tests-mx32/ioctl_v4l2-v-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_v4l2-v.c" diff --git a/tests-mx32/ioctl_v4l2-v-Xraw.gen.test b/tests-mx32/ioctl_v4l2-v-Xraw.gen.test new file mode 100755 index 00000000..8fb58831 --- /dev/null +++ b/tests-mx32/ioctl_v4l2-v-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-v-Xraw +ioctl.test -v -Xraw); do not edit. +set -- -v -Xraw +. "${srcdir=.}/ioctl.test" diff --git a/tests-mx32/ioctl_v4l2-v-Xverbose.c b/tests-mx32/ioctl_v4l2-v-Xverbose.c new file mode 100644 index 00000000..6230f9a1 --- /dev/null +++ b/tests-mx32/ioctl_v4l2-v-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_v4l2-v.c" diff --git a/tests-mx32/ioctl_v4l2-v-Xverbose.gen.test b/tests-mx32/ioctl_v4l2-v-Xverbose.gen.test new file mode 100755 index 00000000..72dcde68 --- /dev/null +++ b/tests-mx32/ioctl_v4l2-v-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-v-Xverbose +ioctl.test -v -Xverbose); do not edit. +set -- -v -Xverbose +. "${srcdir=.}/ioctl.test" diff --git a/tests-mx32/ioctl_v4l2-v.c b/tests-mx32/ioctl_v4l2-v.c new file mode 100644 index 00000000..dcb6c24d --- /dev/null +++ b/tests-mx32/ioctl_v4l2-v.c @@ -0,0 +1,3 @@ +/* This file is part of ioctl_v4l2-v strace test. */ +#define VERBOSE 1 +#include "ioctl_v4l2.c" diff --git a/tests-mx32/ioctl_v4l2-v.gen.test b/tests-mx32/ioctl_v4l2-v.gen.test new file mode 100755 index 00000000..c5fe341d --- /dev/null +++ b/tests-mx32/ioctl_v4l2-v.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-v +ioctl.test -v); do not edit. +set -- -v +. "${srcdir=.}/ioctl.test" diff --git a/tests-mx32/ioctl_v4l2.c b/tests-mx32/ioctl_v4l2.c index 54e9ee7c..c52798a4 100644 --- a/tests-mx32/ioctl_v4l2.c +++ b/tests-mx32/ioctl_v4l2.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -8,11 +8,23 @@ #include "tests.h" #include +#include #include #include #include -#include -#include +#include "kernel_v4l2_types.h" + +#define XLAT_MACROS_ONLY +# include "xlat/v4l2_ioctl_cmds.h" +#undef XLAT_MACROS_ONLY + +#ifndef V4L2_CTRL_FLAG_NEXT_CTRL +# define V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000 +#endif + +#ifndef V4L2_CTRL_CLASS_DETECT +# define V4L2_CTRL_CLASS_DETECT 0x00a30000 +#endif #define cc0(arg) ((unsigned int) (unsigned char) (arg)) #define cc1(arg) ((unsigned int) (unsigned char) ((unsigned int) (arg) >> 8)) @@ -70,8 +82,21 @@ init_v4l2_format(struct v4l2_format *const f, i < ARRAY_SIZE(f->fmt.pix_mp.plane_fmt); i++) { cur_pix[i].sizeimage = 0x1e3c531c | i; - cur_pix[i].bytesperline = 0xa983d721 | i; + if (sizeof(cur_pix[i].bytesperline) == + sizeof(uint32_t)) { + cur_pix[i].bytesperline = 0xa983d721 | i; + } else { +# if WORDS_BIGENDIAN + cur_pix[i].bytesperline = 0xa983; + cur_pix[i].reserved[0] = 0xd721 | i; +# else + cur_pix[i].bytesperline = 0xd721 | i; + cur_pix[i].reserved[0] = 0xa983; +# endif + } } + if (buf_type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) + f->fmt.pix_mp.num_planes = 1; break; } #endif @@ -85,10 +110,10 @@ init_v4l2_format(struct v4l2_format *const f, f->fmt.win.w.height = 0xbbd886c8; f->fmt.win.field = V4L2_FIELD_ANY; f->fmt.win.chromakey = 0xdb1f991f; - f->fmt.win.clipcount = 2; + f->fmt.win.clipcount = + buf_type == V4L2_BUF_TYPE_VIDEO_OVERLAY ? 3 : 2; f->fmt.win.clips = - tail_alloc(sizeof(*f->fmt.win.clips) * - f->fmt.win.clipcount); + tail_alloc(sizeof(*f->fmt.win.clips) * 2); f->fmt.win.clips[0].c.left = 0x3313d36e; f->fmt.win.clips[0].c.top = 0xcdffe510; f->fmt.win.clips[0].c.width = 0x2064f3a8; @@ -101,6 +126,9 @@ init_v4l2_format(struct v4l2_format *const f, f->fmt.win.bitmap = (void *) -2UL; #ifdef HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA f->fmt.win.global_alpha = 0xce; +#else + ((uint8_t *) &f->fmt.win)[offsetofend(struct v4l2_window, + bitmap)] = 0xce; #endif break; case V4L2_BUF_TYPE_VBI_CAPTURE: @@ -138,7 +166,12 @@ init_v4l2_format(struct v4l2_format *const f, case V4L2_BUF_TYPE_SDR_OUTPUT: f->fmt.sdr.pixelformat = sf_magic; # ifdef HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE - f->fmt.sdr.buffersize = 0x25afabfb; + if (sizeof(f->fmt.sdr.buffersize == sizeof(uint32_t))) + f->fmt.sdr.buffersize = 0x25afabfb; + else + ((uint32_t *) &f->fmt.sdr)[1] = 0x25afabfb; +# else + ((uint32_t *) &f->fmt.sdr)[1] = 0x25afabfb; # endif break; #endif @@ -155,8 +188,8 @@ init_v4l2_format(struct v4l2_format *const f, static void dprint_ioctl_v4l2(struct v4l2_format *const f, - const char *request, const unsigned int buf_type, - const char *buf_type_string) + XLAT_SEL(unsigned reqval, const char *reqstr), + const unsigned int buf_type, const char *buf_type_string) { int saved_errno; @@ -164,12 +197,16 @@ dprint_ioctl_v4l2(struct v4l2_format *const f, case V4L2_BUF_TYPE_VIDEO_CAPTURE: case V4L2_BUF_TYPE_VIDEO_OUTPUT: saved_errno = errno; - printf("ioctl(-1, %s, {type=%s" + printf("ioctl(-1, " XLAT_FMT ", {type=" XLAT_FMT ", fmt.pix={width=%u, height=%u, pixelformat=", - request, - buf_type_string, + XLAT_SEL(reqval, reqstr), + XLAT_SEL(buf_type, buf_type_string), f->fmt.pix.width, f->fmt.pix.height); +#if XLAT_RAW + printf("%#x", buf_type == V4L2_BUF_TYPE_VIDEO_CAPTURE + ? magic : pf_magic); +#else /* !XLAT_RAW */ if (buf_type == V4L2_BUF_TYPE_VIDEO_CAPTURE) printf("v4l2_fourcc('\\x%x', '\\x%x', '\\x%x', '\\x%x')", cc0(magic), cc1(magic), cc2(magic), cc3(magic)); @@ -178,12 +215,15 @@ dprint_ioctl_v4l2(struct v4l2_format *const f, "/* V4L2_PIX_FMT_SPCA508 */", cc0(pf_magic), cc1(pf_magic), cc2(pf_magic), cc3(pf_magic)); +#endif /* XLAT_RAW */ errno = saved_errno; - printf(", field=V4L2_FIELD_NONE, bytesperline=%u, sizeimage=%u" - ", colorspace=V4L2_COLORSPACE_JPEG}}) = -1 EBADF (%m)\n", + printf(", field=" XLAT_FMT ", bytesperline=%u, sizeimage=%u" + ", colorspace=" XLAT_FMT "}}) = -1 EBADF (%m)\n", + XLAT_ARGS(V4L2_FIELD_NONE), f->fmt.pix.bytesperline, - f->fmt.pix.sizeimage); + f->fmt.pix.sizeimage, + XLAT_ARGS(V4L2_COLORSPACE_JPEG)); break; #if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: @@ -191,13 +231,17 @@ dprint_ioctl_v4l2(struct v4l2_format *const f, unsigned int i; saved_errno = errno; - printf("ioctl(-1, %s" - ", {type=%s" + printf("ioctl(-1, " XLAT_FMT + ", {type=" XLAT_FMT ", fmt.pix_mp={width=%u, height=%u, pixelformat=", - request, - buf_type_string, + XLAT_SEL(reqval, reqstr), + XLAT_SEL(buf_type, buf_type_string), f->fmt.pix_mp.width, f->fmt.pix_mp.height); +# if XLAT_RAW + printf("%#x", buf_type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE + ? magic : pf_magic); +# else /* !XLAT_RAW */ if (buf_type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) printf("v4l2_fourcc('\\x%x', '\\x%x', '\\x%x', '\\x%x')", cc0(magic), cc1(magic), cc2(magic), cc3(magic)); @@ -206,21 +250,35 @@ dprint_ioctl_v4l2(struct v4l2_format *const f, "/* V4L2_PIX_FMT_SPCA508 */", cc0(pf_magic), cc1(pf_magic), cc2(pf_magic), cc3(pf_magic)); +# endif /* XLAT_RAW */ - printf(", field=V4L2_FIELD_NONE, colorspace=" - "V4L2_COLORSPACE_JPEG, plane_fmt=["); + printf(", field=" XLAT_FMT ", colorspace=" XLAT_FMT + ", plane_fmt=[", + XLAT_ARGS(V4L2_FIELD_NONE), + XLAT_ARGS(V4L2_COLORSPACE_JPEG)); for (i = 0; - i < ARRAY_SIZE(f->fmt.pix_mp.plane_fmt); + i < (buf_type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE + ? 1 : ARRAY_SIZE(f->fmt.pix_mp.plane_fmt)); ++i) { if (i) printf(", "); printf("{sizeimage=%u, bytesperline=%u}", f->fmt.pix_mp.plane_fmt[i].sizeimage, - f->fmt.pix_mp.plane_fmt[i].bytesperline); + sizeof(f->fmt.pix_mp.plane_fmt[i].bytesperline) == + sizeof(uint32_t) + ? f->fmt.pix_mp.plane_fmt[i].bytesperline : +# if WORDS_BIGENDIAN + (f->fmt.pix_mp.plane_fmt[i].bytesperline << 16) | + f->fmt.pix_mp.plane_fmt[i].reserved[0] +# else + f->fmt.pix_mp.plane_fmt[i].bytesperline | + (f->fmt.pix_mp.plane_fmt[i].reserved[0] << 16) +# endif + ); } errno = saved_errno; printf("], num_planes=%u}}) = -1 EBADF (%m)\n", - f->fmt.pix_mp.num_planes); + f->fmt.pix_mp.num_planes); break; } #endif @@ -228,20 +286,17 @@ dprint_ioctl_v4l2(struct v4l2_format *const f, case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY: #endif case V4L2_BUF_TYPE_VIDEO_OVERLAY: - printf("ioctl(-1, %s, {type=%s" + saved_errno = errno; + printf("ioctl(-1, " XLAT_FMT ", {type=" XLAT_FMT ", fmt.win={left=%d, top=%d, width=%u, height=%u" - ", field=V4L2_FIELD_ANY, chromakey=%#x, clips=" + ", field=" XLAT_FMT ", chromakey=%#x, clips=" "[{left=%d, top=%d, width=%u, height=%u}, " - "{left=%d, top=%d, width=%u, height=%u}]" - ", clipcount=%u, bitmap=%p" -#ifdef HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA - ", global_alpha=%#x" -#endif - "}}) = -1 EBADF (%m)\n", - request, - buf_type_string, + "{left=%d, top=%d, width=%u, height=%u}", + XLAT_SEL(reqval, reqstr), + XLAT_SEL(buf_type, buf_type_string), f->fmt.win.w.left, f->fmt.win.w.top, f->fmt.win.w.width, f->fmt.win.w.height, + XLAT_ARGS(V4L2_FIELD_ANY), f->fmt.win.chromakey, f->fmt.win.clips[0].c.left, f->fmt.win.clips[0].c.top, @@ -250,24 +305,37 @@ dprint_ioctl_v4l2(struct v4l2_format *const f, f->fmt.win.clips[1].c.left, f->fmt.win.clips[1].c.top, f->fmt.win.clips[1].c.width, - f->fmt.win.clips[1].c.height, - f->fmt.win.clipcount, f->fmt.win.bitmap + f->fmt.win.clips[1].c.height); + if (f->fmt.win.clipcount > 2) + printf(", ... /* %p */", f->fmt.win.clips + 2); + errno = saved_errno; + printf("], clipcount=%u, bitmap=%p" + ", global_alpha=%#x" + "}}) = -1 EBADF (%m)\n", + f->fmt.win.clipcount, f->fmt.win.bitmap, #ifdef HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA - , f->fmt.win.global_alpha + f->fmt.win.global_alpha +#else + ((uint8_t *) &f->fmt.win)[offsetofend(struct v4l2_window, + bitmap)] #endif ); break; case V4L2_BUF_TYPE_VBI_CAPTURE: case V4L2_BUF_TYPE_VBI_OUTPUT: saved_errno = errno; - printf("ioctl(-1, %s, {type=%s" + printf("ioctl(-1, " XLAT_FMT ", {type=" XLAT_FMT ", fmt.vbi={sampling_rate=%u, offset=%u" ", samples_per_line=%u, sample_format=", - request, - buf_type_string, + XLAT_SEL(reqval, reqstr), + XLAT_SEL(buf_type, buf_type_string), f->fmt.vbi.sampling_rate, f->fmt.vbi.offset, f->fmt.vbi.samples_per_line); +#if XLAT_RAW + printf("%#x", buf_type == V4L2_BUF_TYPE_VBI_CAPTURE + ? magic : pf_magic); +#else /* !XLAT_RAW */ if (buf_type == V4L2_BUF_TYPE_VBI_CAPTURE) printf("v4l2_fourcc('\\x%x', '\\x%x', '\\x%x', '\\x%x')", cc0(magic), cc1(magic), cc2(magic), cc3(magic)); @@ -276,24 +344,27 @@ dprint_ioctl_v4l2(struct v4l2_format *const f, "/* V4L2_PIX_FMT_SPCA508 */", cc0(pf_magic), cc1(pf_magic), cc2(pf_magic), cc3(pf_magic)); +#endif /* XLAT_RAW */ errno = saved_errno; - printf(", start=[%u, %u], count=[%u, %u]" - ", flags=V4L2_VBI_INTERLACED}})" + printf(", start=[%d, %d], count=[%u, %u]" + ", flags=" XLAT_FMT "}})" " = -1 EBADF (%m)\n", f->fmt.vbi.start[0], f->fmt.vbi.start[1], - f->fmt.vbi.count[0], f->fmt.vbi.count[1]); + f->fmt.vbi.count[0], f->fmt.vbi.count[1], + XLAT_ARGS(V4L2_VBI_INTERLACED)); break; #if HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: { unsigned int i, j; - printf("ioctl(-1, %s, {type=%s" - ", fmt.sliced={service_set=V4L2_SLICED_VPS" + printf("ioctl(-1, " XLAT_FMT ", {type=" XLAT_FMT + ", fmt.sliced={service_set=" XLAT_FMT ", io_size=%u, service_lines=[", - request, - buf_type_string, + XLAT_SEL(reqval, reqstr), + XLAT_SEL(buf_type, buf_type_string), + XLAT_ARGS(V4L2_SLICED_VPS), f->fmt.sliced.io_size); for (i = 0; i < ARRAY_SIZE(f->fmt.sliced.service_lines); @@ -321,30 +392,38 @@ dprint_ioctl_v4l2(struct v4l2_format *const f, #if HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE case V4L2_BUF_TYPE_SDR_CAPTURE: saved_errno = errno; - printf("ioctl(-1, %s, {type=%s" + printf("ioctl(-1, " XLAT_FMT ", {type=" XLAT_FMT ", fmt.sdr={pixelformat=", - request, - buf_type_string); + XLAT_SEL(reqval, reqstr), + XLAT_SEL(buf_type, buf_type_string)); +# if XLAT_RAW + if (buf_type == V4L2_BUF_TYPE_SDR_CAPTURE) + printf("%#x", magic); +# if HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT + else + printf("%#x", sf_magic); +# endif +# else /* !XLAT_RAW */ if (buf_type == V4L2_BUF_TYPE_SDR_CAPTURE) printf("v4l2_fourcc('\\x%x', '\\x%x', '\\x%x', '\\x%x')", cc0(magic), cc1(magic), cc2(magic), cc3(magic)); -# if HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT +# if HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT else printf("v4l2_fourcc('%c', '%c', '%c', '%c') " "/* V4L2_SDR_FMT_RU12LE */", cc0(sf_magic), cc1(sf_magic), cc2(sf_magic), cc3(sf_magic)); -# endif +# endif +# endif /* XLAT_RAW */ errno = saved_errno; - printf( -# ifdef HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE - ", buffersize=%u" -# endif - "}}) = -1 EBADF (%m)\n" + printf(", buffersize=%u}}) = -1 EBADF (%m)\n" # ifdef HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE - , f->fmt.sdr.buffersize + , sizeof(f->fmt.sdr.buffersize == sizeof(uint32_t)) + ? f->fmt.sdr.buffersize : ((uint32_t *) &f->fmt.sdr)[1] +# else + , ((uint32_t *) &f->fmt.sdr)[1] # endif ); break; @@ -352,7 +431,8 @@ dprint_ioctl_v4l2(struct v4l2_format *const f, } } #define print_ioctl_v4l2(v4l2_format, request, buf_type) \ - dprint_ioctl_v4l2((v4l2_format), (request), (buf_type), #buf_type) + dprint_ioctl_v4l2((v4l2_format), XLAT_SEL(request, #request), \ + (buf_type), #buf_type) int main(void) @@ -364,267 +444,559 @@ main(void) unsigned char cc[sizeof(int)] = { 'A', '\'', '\\', '\xfa' }; + /* Unknown */ + static const struct { + uint32_t flags; + const char *str; + } cmd_flags[] = { + { ARG_STR(_IOC_NONE) }, + { ARG_STR(_IOC_READ) }, + { ARG_STR(_IOC_WRITE) }, + { ARG_STR(_IOC_READ|_IOC_WRITE) }, + }; + static const uint8_t unknown_cmds[] = { + 1, 3, 6 /* VIDIOC_G_MPEGCOMP */, 7 /* VIDIOC_S_MPEGCOMP */, + 12, 13, 20, 31, 32, 35, 42, 43, 44, 45, 51, 52, 53, + 81 /* VIDIOC_G_CHIP_IDENT_OLD */, + 83 /* VIDIOC_ENUM_DV_PRESETS */, 84 /* VIDIOC_S_DV_PRESET */, + 85 /* VIDIOC_G_DV_PRESET */, 86 /* VIDIOC_QUERY_DV_PRESET */, + 104 /* 103 is the last existing */, 255 + }; + + for (size_t i = 0; i < ARRAY_SIZE(unknown_cmds); i++) { + /* Trying to hit common argument sizes */ + for (size_t j = 0; j < 256; j += 4) { + for (size_t k = 0; k < ARRAY_SIZE(cmd_flags); k++) { + uint32_t ioc = _IOC(cmd_flags[k].flags, 'V', + unknown_cmds[i], j); + /* + * Conflicts with VT* and VBG* ioctls + * that happen to also use 'V' command type. + */ + switch (ioc) { + /* VT_GETMODE */ + case _IOC(_IOC_NONE, 'V', 1, 0): + /* VT_GETSTATE */ + case _IOC(_IOC_NONE, 'V', 3, 0): + /* VBG_IOCTL_VMMDEV_REQUEST_BIG */ + case _IOC(_IOC_READ|_IOC_WRITE, 'V', 3, 0): + /* VT_ACTIVATE */ + case _IOC(_IOC_NONE, 'V', 6, 0): + /* VT_WAITACTIVE */ + case _IOC(_IOC_NONE, 'V', 7, 0): + /* VT_UNLOCKSWITCH */ + case _IOC(_IOC_NONE, 'V', 12, 0): + /* VBG_IOCTL_CHANGE_FILTER_MASK */ + case _IOC(_IOC_READ|_IOC_WRITE, 'V', 12, 32): + /* VT_GETHIFONTMASK */ + case _IOC(_IOC_NONE, 'V', 13, 0): + continue; + /* VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES */ + case _IOC(_IOC_READ|_IOC_WRITE, 'V', 13, 36): + continue; + } + + ioctl(-1, ioc, 0); + printf("ioctl(-1, " NABBR("%#x") VERB(" /* ") + NRAW("_IOC(%s, 0x56, %#x, %#zx)") + VERB(" */") ", 0) = -1 EBADF (%m)\n" +#if XLAT_RAW || XLAT_VERBOSE + , ioc +#endif +#if !XLAT_RAW + , cmd_flags[k].str, unknown_cmds[i], j +#endif + ); + + ioctl(-1, ioc, + (unsigned long) 0xbadc0deddeadc0deULL); + printf("ioctl(-1, " NABBR("%#x") VERB(" /* ") + NRAW("_IOC(%s, 0x56, %#x, %#zx)") + VERB(" */") ", %#lx) = -1 EBADF (%m)\n", +#if XLAT_RAW || XLAT_VERBOSE + ioc, +#endif +#if !XLAT_RAW + cmd_flags[k].str, unknown_cmds[i], j, +#endif + (unsigned long) 0xbadc0deddeadc0deULL); + } + } + } + + /* Decoding is not supported */ + static const struct { + uint32_t cmd; + const char *str; + } unsupp_cmds[] = { + { ARG_STR(VIDIOC_OVERLAY) }, +#ifdef VIDIOC_EXPBUF + { ARG_STR(VIDIOC_EXPBUF) }, +#endif + { ARG_STR(VIDIOC_G_AUDIO) }, + { ARG_STR(VIDIOC_S_AUDIO) }, + { ARG_STR(VIDIOC_QUERYMENU) }, +#ifdef VIDIOC_G_EDID + { ARG_STR(VIDIOC_G_EDID) }, +#endif +#ifdef VIDIOC_S_EDID + { ARG_STR(VIDIOC_S_EDID) }, +#endif + { ARG_STR(VIDIOC_G_OUTPUT) }, + { ARG_STR(VIDIOC_S_OUTPUT) }, + { ARG_STR(VIDIOC_ENUMOUTPUT) }, + { ARG_STR(VIDIOC_G_AUDOUT) }, + { ARG_STR(VIDIOC_S_AUDOUT) }, + { ARG_STR(VIDIOC_G_MODULATOR) }, + { ARG_STR(VIDIOC_S_MODULATOR) }, + { ARG_STR(VIDIOC_G_FREQUENCY) }, + { ARG_STR(VIDIOC_S_FREQUENCY) }, + { ARG_STR(VIDIOC_G_JPEGCOMP) }, + { ARG_STR(VIDIOC_S_JPEGCOMP) }, + { ARG_STR(VIDIOC_QUERYSTD) }, + { ARG_STR(VIDIOC_ENUMAUDIO) }, + { ARG_STR(VIDIOC_ENUMAUDOUT) }, + { ARG_STR(VIDIOC_G_PRIORITY) }, + { ARG_STR(VIDIOC_S_PRIORITY) }, + { ARG_STR(VIDIOC_G_SLICED_VBI_CAP) }, + { ARG_STR(VIDIOC_LOG_STATUS) }, +#ifdef VIDIOC_G_ENC_INDEX + { ARG_STR(VIDIOC_G_ENC_INDEX) }, +#endif +#ifdef VIDIOC_ENCODER_CMD + { ARG_STR(VIDIOC_ENCODER_CMD) }, +#endif +#ifdef VIDIOC_TRY_ENCODER_CMD + { ARG_STR(VIDIOC_TRY_ENCODER_CMD) }, +#endif +#ifdef VIDIOC_DBG_S_REGISTER + { ARG_STR(VIDIOC_DBG_S_REGISTER) }, +#endif +#ifdef VIDIOC_DBG_G_REGISTER + { ARG_STR(VIDIOC_DBG_G_REGISTER) }, +#endif +#ifdef VIDIOC_G_CHIP_IDENT_OLD + { ARG_STR(VIDIOC_G_CHIP_IDENT_OLD) }, +#endif +#ifdef VIDIOC_DBG_G_CHIP_IDENT + /* Broken on RHEL 6/7 */ + /* { ARG_STR(VIDIOC_DBG_G_CHIP_IDENT) }, */ +#endif +#ifdef VIDIOC_S_HW_FREQ_SEEK + { ARG_STR(VIDIOC_S_HW_FREQ_SEEK) }, +#endif +#ifdef VIDIOC_ENUM_DV_PRESETS + /* Next 4 are broken on RHEL 6 */ + /* { ARG_STR(VIDIOC_ENUM_DV_PRESETS) }, */ +#endif +#ifdef VIDIOC_S_DV_PRESET + /* { ARG_STR(VIDIOC_S_DV_PRESET) }, */ +#endif +#ifdef VIDIOC_G_DV_PRESET + /* { ARG_STR(VIDIOC_G_DV_PRESET) }, */ +#endif +#ifdef VIDIOC_QUERY_DV_PRESET + /* { ARG_STR(VIDIOC_QUERY_DV_PRESET) }, */ +#endif +#ifdef VIDIOC_S_DV_TIMINGS + { ARG_STR(VIDIOC_S_DV_TIMINGS) }, +#endif +#ifdef VIDIOC_G_DV_TIMINGS + { ARG_STR(VIDIOC_G_DV_TIMINGS) }, +#endif +#ifdef VIDIOC_DQEVENT + { ARG_STR(VIDIOC_DQEVENT) }, +#endif +#ifdef VIDIOC_SUBSCRIBE_EVENT + { ARG_STR(VIDIOC_SUBSCRIBE_EVENT) }, +#endif +#ifdef VIDIOC_UNSUBSCRIBE_EVENT + { ARG_STR(VIDIOC_UNSUBSCRIBE_EVENT) }, +#endif +#ifdef VIDIOC_PREPARE_BUF + { ARG_STR(VIDIOC_PREPARE_BUF) }, +#endif +#ifdef VIDIOC_G_SELECTION + { ARG_STR(VIDIOC_G_SELECTION) }, +#endif +#ifdef VIDIOC_S_SELECTION + { ARG_STR(VIDIOC_S_SELECTION) }, +#endif +#ifdef VIDIOC_DECODER_CMD + { ARG_STR(VIDIOC_DECODER_CMD) }, +#endif +#ifdef VIDIOC_TRY_DECODER_CMD + { ARG_STR(VIDIOC_TRY_DECODER_CMD) }, +#endif +#ifdef VIDIOC_ENUM_DV_TIMINGS + { ARG_STR(VIDIOC_ENUM_DV_TIMINGS) }, +#endif +#ifdef VIDIOC_QUERY_DV_TIMINGS + { ARG_STR(VIDIOC_QUERY_DV_TIMINGS) }, +#endif +#ifdef VIDIOC_DV_TIMINGS_CAP + { ARG_STR(VIDIOC_DV_TIMINGS_CAP) }, +#endif +#ifdef VIDIOC_ENUM_FREQ_BANDS + { ARG_STR(VIDIOC_ENUM_FREQ_BANDS) }, +#endif +#ifdef VIDIOC_DBG_G_CHIP_INFO + { ARG_STR(VIDIOC_DBG_G_CHIP_INFO) }, +#endif +#ifdef VIDIOC_QUERY_EXT_CTRL + { ARG_STR(VIDIOC_QUERY_EXT_CTRL) }, +#endif +#ifdef VIDIOC_SUBDEV_ENUM_MBUS_CODE + { ARG_STR(VIDIOC_SUBDEV_ENUM_MBUS_CODE) }, +#endif +#ifdef VIDIOC_SUBDEV_G_FMT + { ARG_STR(VIDIOC_SUBDEV_G_FMT) }, +#endif +#ifdef VIDIOC_SUBDEV_S_FMT + { ARG_STR(VIDIOC_SUBDEV_S_FMT) }, +#endif +#ifdef VIDIOC_SUBDEV_G_FRAME_INTERVAL + { ARG_STR(VIDIOC_SUBDEV_G_FRAME_INTERVAL) }, +#endif +#ifdef VIDIOC_SUBDEV_S_FRAME_INTERVAL + { ARG_STR(VIDIOC_SUBDEV_S_FRAME_INTERVAL) }, +#endif +#ifdef VIDIOC_SUBDEV_G_CROP + { ARG_STR(VIDIOC_SUBDEV_G_CROP) }, +#endif +#ifdef VIDIOC_SUBDEV_S_CROP + { ARG_STR(VIDIOC_SUBDEV_S_CROP) }, +#endif +#ifdef VIDIOC_SUBDEV_G_SELECTION + { ARG_STR(VIDIOC_SUBDEV_G_SELECTION) }, +#endif +#ifdef VIDIOC_SUBDEV_S_SELECTION + { ARG_STR(VIDIOC_SUBDEV_S_SELECTION) }, +#endif +#ifdef VIDIOC_SUBDEV_ENUM_FRAME_SIZE + { ARG_STR(VIDIOC_SUBDEV_ENUM_FRAME_SIZE) }, +#endif +#ifdef VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL + { ARG_STR(VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL) }, +#endif + }; + + for (size_t i = 0; i < ARRAY_SIZE(unsupp_cmds); i++) { + switch (unsupp_cmds[i].cmd) { + /* + * VIDIOC_G_SLICED_VBI_CAP macro has been changed from + * IOR to IOWR in Linux v2.6.19-rc1~643^2~37, skip it. + */ + case _IOR('V', 69, struct v4l2_sliced_vbi_cap): + continue; + } + + ioctl(-1, unsupp_cmds[i].cmd, 0); + printf("ioctl(-1, " XLAT_FMT ", 0) = -1 EBADF (%m)\n", + XLAT_SEL(unsupp_cmds[i].cmd, unsupp_cmds[i].str)); + + ioctl(-1, unsupp_cmds[i].cmd, + (unsigned long) 0xbadc0deddeadc0deULL); + printf("ioctl(-1, " XLAT_FMT ", %#lx) = -1 EBADF (%m)\n", + XLAT_SEL(unsupp_cmds[i].cmd, unsupp_cmds[i].str), + (unsigned long) 0xbadc0deddeadc0deULL); + } + /* VIDIOC_QUERYCAP */ ioctl(-1, VIDIOC_QUERYCAP, 0); - printf("ioctl(-1, VIDIOC_QUERYCAP, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_QUERYCAP)); ioctl(-1, VIDIOC_QUERYCAP, page); - printf("ioctl(-1, VIDIOC_QUERYCAP, %p) = -1 EBADF (%m)\n", page); + printf("ioctl(-1, %s, %p) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_QUERYCAP), page); /* VIDIOC_ENUM_FMT */ ioctl(-1, VIDIOC_ENUM_FMT, 0); - printf("ioctl(-1, VIDIOC_ENUM_FMT, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_ENUM_FMT)); TAIL_ALLOC_OBJECT_CONST_PTR(struct v4l2_fmtdesc, p_fmtdesc); p_fmtdesc->index = magic; p_fmtdesc->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; ioctl(-1, VIDIOC_ENUM_FMT, p_fmtdesc); - printf("ioctl(-1, VIDIOC_ENUM_FMT, {index=%u" - ", type=V4L2_BUF_TYPE_VIDEO_CAPTURE}) = -1 EBADF (%m)\n", - p_fmtdesc->index); + printf("ioctl(-1, %s, {index=%u, type=" XLAT_FMT + "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_ENUM_FMT), p_fmtdesc->index, + XLAT_ARGS(V4L2_BUF_TYPE_VIDEO_CAPTURE)); /* VIDIOC_G_FMT */ ioctl(-1, VIDIOC_G_FMT, 0); - printf("ioctl(-1, VIDIOC_G_FMT, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FMT)); TAIL_ALLOC_OBJECT_CONST_PTR(struct v4l2_format, p_format); p_format->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; ioctl(-1, VIDIOC_G_FMT, p_format); - printf("ioctl(-1, VIDIOC_G_FMT" - ", {type=V4L2_BUF_TYPE_VIDEO_CAPTURE}) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, {type=" XLAT_FMT "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FMT), + XLAT_ARGS(V4L2_BUF_TYPE_VIDEO_CAPTURE)); #if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE p_format->type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE; ioctl(-1, VIDIOC_G_FMT, p_format); - printf("ioctl(-1, VIDIOC_G_FMT" - ", {type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE}) =" - " -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, {type=" XLAT_FMT "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FMT), + XLAT_ARGS(V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE)); #endif #if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY p_format->type = V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY; ioctl(-1, VIDIOC_G_FMT, p_format); - printf("ioctl(-1, VIDIOC_G_FMT" - ", {type=V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY}) =" - " -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, {type=" XLAT_FMT "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FMT), + XLAT_ARGS(V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY)); #endif p_format->type = V4L2_BUF_TYPE_VIDEO_OVERLAY; ioctl(-1, VIDIOC_G_FMT, p_format); - printf("ioctl(-1, VIDIOC_G_FMT" - ", {type=V4L2_BUF_TYPE_VIDEO_OVERLAY}) =" - " -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, {type=" XLAT_FMT "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FMT), + XLAT_ARGS(V4L2_BUF_TYPE_VIDEO_OVERLAY)); p_format->type = V4L2_BUF_TYPE_VBI_CAPTURE; ioctl(-1, VIDIOC_G_FMT, p_format); - printf("ioctl(-1, VIDIOC_G_FMT" - ", {type=V4L2_BUF_TYPE_VBI_CAPTURE}) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, {type=" XLAT_FMT "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FMT), + XLAT_ARGS(V4L2_BUF_TYPE_VBI_CAPTURE)); #if HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE p_format->type = V4L2_BUF_TYPE_SLICED_VBI_CAPTURE; ioctl(-1, VIDIOC_G_FMT, p_format); - printf("ioctl(-1, VIDIOC_G_FMT" - ", {type=V4L2_BUF_TYPE_SLICED_VBI_CAPTURE}) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, {type=" XLAT_FMT "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FMT), + XLAT_ARGS(V4L2_BUF_TYPE_SLICED_VBI_CAPTURE)); #endif #if HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE p_format->type = V4L2_BUF_TYPE_SDR_CAPTURE; ioctl(-1, VIDIOC_G_FMT, p_format); - printf("ioctl(-1, VIDIOC_G_FMT" - ", {type=V4L2_BUF_TYPE_SDR_CAPTURE}) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, {type=" XLAT_FMT "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FMT), + XLAT_ARGS(V4L2_BUF_TYPE_SDR_CAPTURE)); #endif #if HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT p_format->type = V4L2_BUF_TYPE_SDR_OUTPUT; ioctl(-1, VIDIOC_G_FMT, p_format); - printf("ioctl(-1, VIDIOC_G_FMT" - ", {type=V4L2_BUF_TYPE_SDR_OUTPUT}) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, {type=" XLAT_FMT "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FMT), + XLAT_ARGS(V4L2_BUF_TYPE_SDR_OUTPUT)); #endif /* VIDIOC_S_FMT */ ioctl(-1, VIDIOC_S_FMT, 0); - printf("ioctl(-1, VIDIOC_S_FMT, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_FMT)); init_v4l2_format(p_format, V4L2_BUF_TYPE_VIDEO_OUTPUT); ioctl(-1, VIDIOC_S_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_S_FMT", V4L2_BUF_TYPE_VIDEO_OUTPUT); + print_ioctl_v4l2(p_format, VIDIOC_S_FMT, + V4L2_BUF_TYPE_VIDEO_OUTPUT); #if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE init_v4l2_format(p_format, V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE); ioctl(-1, VIDIOC_S_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_S_FMT", + print_ioctl_v4l2(p_format, VIDIOC_S_FMT, V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE); #endif #if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY init_v4l2_format(p_format, V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY); ioctl(-1, VIDIOC_S_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_S_FMT", + print_ioctl_v4l2(p_format, VIDIOC_S_FMT, V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY); #endif init_v4l2_format(p_format, V4L2_BUF_TYPE_VIDEO_OVERLAY); ioctl(-1, VIDIOC_S_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_S_FMT", + print_ioctl_v4l2(p_format, VIDIOC_S_FMT, V4L2_BUF_TYPE_VIDEO_OVERLAY); init_v4l2_format(p_format, V4L2_BUF_TYPE_VBI_CAPTURE); ioctl(-1, VIDIOC_S_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_S_FMT", V4L2_BUF_TYPE_VBI_CAPTURE); + print_ioctl_v4l2(p_format, VIDIOC_S_FMT, V4L2_BUF_TYPE_VBI_CAPTURE); #if HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE init_v4l2_format(p_format, V4L2_BUF_TYPE_SLICED_VBI_CAPTURE); ioctl(-1, VIDIOC_S_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_S_FMT", + print_ioctl_v4l2(p_format, VIDIOC_S_FMT, V4L2_BUF_TYPE_SLICED_VBI_CAPTURE); #endif #if HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE init_v4l2_format(p_format, V4L2_BUF_TYPE_SDR_CAPTURE); ioctl(-1, VIDIOC_S_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_S_FMT", V4L2_BUF_TYPE_SDR_CAPTURE); + print_ioctl_v4l2(p_format, VIDIOC_S_FMT, V4L2_BUF_TYPE_SDR_CAPTURE); #endif #if HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT init_v4l2_format(p_format, V4L2_BUF_TYPE_SDR_OUTPUT); ioctl(-1, VIDIOC_S_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_S_FMT", V4L2_BUF_TYPE_SDR_OUTPUT); + print_ioctl_v4l2(p_format, VIDIOC_S_FMT, V4L2_BUF_TYPE_SDR_OUTPUT); #endif /* VIDIOC_TRY_FMT */ ioctl(-1, VIDIOC_TRY_FMT, 0); - printf("ioctl(-1, VIDIOC_TRY_FMT, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_TRY_FMT)); init_v4l2_format(p_format, V4L2_BUF_TYPE_VIDEO_OUTPUT); ioctl(-1, VIDIOC_TRY_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_TRY_FMT", + print_ioctl_v4l2(p_format, VIDIOC_TRY_FMT, V4L2_BUF_TYPE_VIDEO_OUTPUT); #if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE init_v4l2_format(p_format, V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE); ioctl(-1, VIDIOC_TRY_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_TRY_FMT", + print_ioctl_v4l2(p_format, VIDIOC_TRY_FMT, V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE); #endif #if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY init_v4l2_format(p_format, V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY); ioctl(-1, VIDIOC_TRY_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_TRY_FMT", + print_ioctl_v4l2(p_format, VIDIOC_TRY_FMT, V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY); #endif init_v4l2_format(p_format, V4L2_BUF_TYPE_VIDEO_OVERLAY); ioctl(-1, VIDIOC_TRY_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_TRY_FMT", + print_ioctl_v4l2(p_format, VIDIOC_TRY_FMT, V4L2_BUF_TYPE_VIDEO_OVERLAY); init_v4l2_format(p_format, V4L2_BUF_TYPE_VBI_CAPTURE); ioctl(-1, VIDIOC_TRY_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_TRY_FMT", V4L2_BUF_TYPE_VBI_CAPTURE); + print_ioctl_v4l2(p_format, VIDIOC_TRY_FMT, V4L2_BUF_TYPE_VBI_CAPTURE); #if HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE init_v4l2_format(p_format, V4L2_BUF_TYPE_SLICED_VBI_CAPTURE); ioctl(-1, VIDIOC_TRY_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_TRY_FMT", + print_ioctl_v4l2(p_format, VIDIOC_TRY_FMT, V4L2_BUF_TYPE_SLICED_VBI_CAPTURE); #endif #if HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE init_v4l2_format(p_format, V4L2_BUF_TYPE_SDR_CAPTURE); ioctl(-1, VIDIOC_TRY_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_TRY_FMT", V4L2_BUF_TYPE_SDR_CAPTURE); + print_ioctl_v4l2(p_format, VIDIOC_TRY_FMT, V4L2_BUF_TYPE_SDR_CAPTURE); #endif #if HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT init_v4l2_format(p_format, V4L2_BUF_TYPE_SDR_OUTPUT); ioctl(-1, VIDIOC_TRY_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_TRY_FMT", V4L2_BUF_TYPE_SDR_OUTPUT); + print_ioctl_v4l2(p_format, VIDIOC_TRY_FMT, V4L2_BUF_TYPE_SDR_OUTPUT); #endif struct v4l2_format *const p_v4l2_format = page_end - sizeof(*p_v4l2_format); ioctl(-1, VIDIOC_TRY_FMT, p_v4l2_format); - printf("ioctl(-1, VIDIOC_TRY_FMT, {type=%#x /* V4L2_BUF_TYPE_??? */})" - " = -1 EBADF (%m)\n", p_v4l2_format->type); + printf("ioctl(-1, %s, {type=%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") "})" + " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_TRY_FMT), p_v4l2_format->type); /* VIDIOC_REQBUFS */ ioctl(-1, VIDIOC_REQBUFS, 0); - printf("ioctl(-1, VIDIOC_REQBUFS, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_REQBUFS)); struct v4l2_requestbuffers *const p_v4l2_requestbuffers = page_end - sizeof(*p_v4l2_requestbuffers); ioctl(-1, VIDIOC_REQBUFS, p_v4l2_requestbuffers); - printf("ioctl(-1, VIDIOC_REQBUFS, {type=%#x /* V4L2_BUF_TYPE_??? */, " - "memory=%#x /* V4L2_MEMORY_??? */, count=%u})" + printf("ioctl(-1, %s, {type=%#x" + NRAW(" /* V4L2_BUF_TYPE_??? */") + ", memory=%#x" NRAW(" /* V4L2_MEMORY_??? */") ", count=%u})" " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_REQBUFS), p_v4l2_requestbuffers->type, p_v4l2_requestbuffers->memory, p_v4l2_requestbuffers->count); /* VIDIOC_QUERYBUF */ ioctl(-1, VIDIOC_QUERYBUF, 0); - printf("ioctl(-1, VIDIOC_QUERYBUF, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_QUERYBUF)); - struct v4l2_buffer *const p_v4l2_buffer = + kernel_v4l2_buffer_t *const p_v4l2_buffer = page_end - sizeof(*p_v4l2_buffer); ioctl(-1, VIDIOC_QUERYBUF, p_v4l2_buffer); - printf("ioctl(-1, VIDIOC_QUERYBUF, {type=%#x /* V4L2_BUF_TYPE_??? */" + printf("ioctl(-1, %s, {type=%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") ", index=%u}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_QUERYBUF), p_v4l2_buffer->type, p_v4l2_buffer->index); /* VIDIOC_QBUF */ ioctl(-1, VIDIOC_QBUF, 0); - printf("ioctl(-1, VIDIOC_QBUF, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_QBUF)); ioctl(-1, VIDIOC_QBUF, p_v4l2_buffer); - printf("ioctl(-1, VIDIOC_QBUF, {type=%#x /* V4L2_BUF_TYPE_??? */" + printf("ioctl(-1, %s, {type=%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") ", index=%u}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_QBUF), p_v4l2_buffer->type, p_v4l2_buffer->index); /* VIDIOC_DQBUF */ ioctl(-1, VIDIOC_DQBUF, 0); - printf("ioctl(-1, VIDIOC_DQBUF, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_DQBUF)); ioctl(-1, VIDIOC_DQBUF, p_v4l2_buffer); - printf("ioctl(-1, VIDIOC_DQBUF, {type=%#x" - " /* V4L2_BUF_TYPE_??? */}) = -1 EBADF (%m)\n", - p_v4l2_buffer->type); + printf("ioctl(-1, %s, {type=%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") + "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_DQBUF), p_v4l2_buffer->type); /* VIDIOC_G_FBUF */ ioctl(-1, VIDIOC_G_FBUF, 0); - printf("ioctl(-1, VIDIOC_G_FBUF, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FBUF)); ioctl(-1, VIDIOC_G_FBUF, page); - printf("ioctl(-1, VIDIOC_G_FBUF, %p) = -1 EBADF (%m)\n", page); + printf("ioctl(-1, %s, %p) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FBUF), page); /* VIDIOC_S_FBUF */ ioctl(-1, VIDIOC_S_FBUF, 0); - printf("ioctl(-1, VIDIOC_S_FBUF, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_FBUF)); struct v4l2_framebuffer *const p_v4l2_framebuffer = page_end - sizeof(*p_v4l2_framebuffer); ioctl(-1, VIDIOC_S_FBUF, p_v4l2_framebuffer); - printf("ioctl(-1, VIDIOC_S_FBUF, {capability=%#x" + printf("ioctl(-1, %s, {capability=%#x" ", flags=%#x, base=%p}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_FBUF), p_v4l2_framebuffer->capability, p_v4l2_framebuffer->flags, p_v4l2_framebuffer->base); /* VIDIOC_STREAMON */ ioctl(-1, VIDIOC_STREAMON, 0); - printf("ioctl(-1, VIDIOC_STREAMON, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_STREAMON)); int *const p_int = page_end - sizeof(int); ioctl(-1, VIDIOC_STREAMON, p_int); - printf("ioctl(-1, VIDIOC_STREAMON, [%#x /* V4L2_BUF_TYPE_??? */])" - " = -1 EBADF (%m)\n", *p_int); + printf("ioctl(-1, %s, [%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") "])" + " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_STREAMON), *p_int); /* VIDIOC_STREAMOFF */ ioctl(-1, VIDIOC_STREAMOFF, 0); - printf("ioctl(-1, VIDIOC_STREAMOFF, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_STREAMOFF)); ioctl(-1, VIDIOC_STREAMOFF, p_int); - printf("ioctl(-1, VIDIOC_STREAMOFF, [%#x /* V4L2_BUF_TYPE_??? */])" - " = -1 EBADF (%m)\n", *p_int); + printf("ioctl(-1, %s, [%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") "])" + " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_STREAMOFF), *p_int); /* VIDIOC_G_PARM */ ioctl(-1, VIDIOC_G_PARM, 0); - printf("ioctl(-1, VIDIOC_G_PARM, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_PARM)); struct v4l2_streamparm *const p_v4l2_streamparm = page_end - sizeof(*p_v4l2_streamparm); ioctl(-1, VIDIOC_G_PARM, p_v4l2_streamparm); - printf("ioctl(-1, VIDIOC_G_PARM, {type=%#x /* V4L2_BUF_TYPE_??? */})" - " = -1 EBADF (%m)\n", p_v4l2_streamparm->type); + printf("ioctl(-1, %s, {type=%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") "})" + " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_PARM), p_v4l2_streamparm->type); /* VIDIOC_S_PARM */ ioctl(-1, VIDIOC_S_PARM, 0); - printf("ioctl(-1, VIDIOC_S_PARM, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_PARM)); ioctl(-1, VIDIOC_S_PARM, p_v4l2_streamparm); - printf("ioctl(-1, VIDIOC_S_PARM, {type=%#x /* V4L2_BUF_TYPE_??? */})" - " = -1 EBADF (%m)\n", p_v4l2_streamparm->type); + printf("ioctl(-1, %s, {type=%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") "})" + " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_PARM), p_v4l2_streamparm->type); TAIL_ALLOC_OBJECT_CONST_PTR(struct v4l2_streamparm, p_streamparm); p_streamparm->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; @@ -633,91 +1005,135 @@ main(void) p_streamparm->parm.capture.timeperframe.numerator = 0xdeadbeef; p_streamparm->parm.capture.timeperframe.denominator = 0xbadc0ded; ioctl(-1, VIDIOC_S_PARM, p_streamparm); - printf("ioctl(-1, VIDIOC_S_PARM, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE" - ", parm.capture={capability=V4L2_CAP_TIMEPERFRAME" - ", capturemode=V4L2_MODE_HIGHQUALITY, timeperframe=%u/%u" - ", extendedmode=%u, readbuffers=%u}}) = -1 EBADF (%m)\n", + printf("ioctl(-1, %s, {type=" XLAT_FMT + ", parm.capture={capability=" XLAT_FMT + ", capturemode=" XLAT_FMT ", timeperframe=%u/%u" + ", extendedmode=%#x, readbuffers=%u}}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_PARM), XLAT_ARGS(V4L2_BUF_TYPE_VIDEO_CAPTURE), + XLAT_ARGS(V4L2_CAP_TIMEPERFRAME), XLAT_ARGS(V4L2_MODE_HIGHQUALITY), p_streamparm->parm.capture.timeperframe.numerator, p_streamparm->parm.capture.timeperframe.denominator, -1U, -1U); p_streamparm->type = V4L2_BUF_TYPE_VIDEO_OUTPUT; p_streamparm->parm.output.outputmode = 0; ioctl(-1, VIDIOC_S_PARM, p_streamparm); - printf("ioctl(-1, VIDIOC_S_PARM, {type=V4L2_BUF_TYPE_VIDEO_OUTPUT" - ", parm.output={capability=V4L2_CAP_TIMEPERFRAME" + printf("ioctl(-1, %s, {type=" XLAT_FMT + ", parm.output={capability=" XLAT_FMT ", outputmode=0, timeperframe=%u/%u" - ", extendedmode=%u, writebuffers=%u}}) = -1 EBADF (%m)\n", + ", extendedmode=%#x, writebuffers=%u}}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_PARM), XLAT_ARGS(V4L2_BUF_TYPE_VIDEO_OUTPUT), + XLAT_ARGS(V4L2_CAP_TIMEPERFRAME), p_streamparm->parm.output.timeperframe.numerator, p_streamparm->parm.output.timeperframe.denominator, -1U, -1U); /* VIDIOC_G_STD */ ioctl(-1, VIDIOC_G_STD, 0); - printf("ioctl(-1, VIDIOC_G_STD, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_STD)); ioctl(-1, VIDIOC_G_STD, page); - printf("ioctl(-1, VIDIOC_G_STD, %p) = -1 EBADF (%m)\n", page); + printf("ioctl(-1, %s, %p) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_STD), page); /* VIDIOC_S_STD */ ioctl(-1, VIDIOC_S_STD, 0); - printf("ioctl(-1, VIDIOC_S_STD, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_STD)); long long *const p_longlong = page_end - sizeof(*p_longlong); ioctl(-1, VIDIOC_S_STD, p_longlong); - printf("ioctl(-1, VIDIOC_S_STD, [%#llx]) = -1 EBADF (%m)\n", - *p_longlong); + printf("ioctl(-1, %s, [%#llx]) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_STD), *p_longlong); /* VIDIOC_ENUMSTD */ ioctl(-1, VIDIOC_ENUMSTD, 0); - printf("ioctl(-1, VIDIOC_ENUMSTD, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_ENUMSTD)); struct v4l2_standard *const p_v4l2_standard = page_end - sizeof(*p_v4l2_standard); ioctl(-1, VIDIOC_ENUMSTD, p_v4l2_standard); - printf("ioctl(-1, VIDIOC_ENUMSTD, {index=%u}) = -1 EBADF (%m)\n", - p_v4l2_standard->index); + printf("ioctl(-1, %s, {index=%u}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_ENUMSTD), p_v4l2_standard->index); /* VIDIOC_ENUMINPUT */ ioctl(-1, VIDIOC_ENUMINPUT, 0); - printf("ioctl(-1, VIDIOC_ENUMINPUT, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_ENUMINPUT)); struct v4l2_input *const p_v4l2_input = page_end - sizeof(*p_v4l2_input); ioctl(-1, VIDIOC_ENUMINPUT, p_v4l2_input); - printf("ioctl(-1, VIDIOC_ENUMINPUT, {index=%u}) = -1 EBADF (%m)\n", - p_v4l2_input->index); + printf("ioctl(-1, %s, {index=%u}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_ENUMINPUT), p_v4l2_input->index); /* VIDIOC_G_CTRL */ ioctl(-1, VIDIOC_G_CTRL, 0); - printf("ioctl(-1, VIDIOC_G_CTRL, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_CTRL)); + + static const struct v4l2_control v4l2_control_vals[] = { + { .id = 0, .value = 3141592653U }, + { .id = 0x97abcd, .value = 1234567890U }, + { .id = V4L2_CTRL_CLASS_USER, .value = 0 }, + { .id = 0x990a64, .value = 42 }, + { .id = 0xa31234, .value = 1 }, + { .id = 0xa40000, .value = -1 }, + }; + static const char *id_strs[] = { + "0" NRAW(" /* V4L2_CID_??? */"), + "0x97abcd" NRAW(" /* V4L2_CID_??? */"), + XLAT_KNOWN(0x980000, "V4L2_CTRL_CLASS_USER+0"), + XLAT_KNOWN(0x990a64, "V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE"), + XLAT_KNOWN(0xa31234, "V4L2_CTRL_CLASS_DETECT+0x1234"), + "0xa40000" NRAW(" /* V4L2_CID_??? */"), + }; struct v4l2_control *const p_v4l2_control = page_end - sizeof(*p_v4l2_control); ioctl(-1, VIDIOC_G_CTRL, p_v4l2_control); - printf("ioctl(-1, VIDIOC_G_CTRL, {id=%#x /* V4L2_CID_??? */})" - " = -1 EBADF (%m)\n", p_v4l2_control->id); + printf("ioctl(-1, %s, {id=%#x" NRAW(" /* V4L2_CID_??? */") + "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_CTRL), p_v4l2_control->id); /* VIDIOC_S_CTRL */ ioctl(-1, VIDIOC_S_CTRL, 0); - printf("ioctl(-1, VIDIOC_S_CTRL, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_CTRL)); ioctl(-1, VIDIOC_S_CTRL, p_v4l2_control); - printf("ioctl(-1, VIDIOC_S_CTRL, {id=%#x /* V4L2_CID_??? */" + printf("ioctl(-1, %s, {id=%#x" NRAW(" /* V4L2_CID_??? */") ", value=%d}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_CTRL), p_v4l2_control->id, p_v4l2_control->value); + for (size_t i = 0; i < ARRAY_SIZE(id_strs); i++) { + struct v4l2_control v4l2_c = v4l2_control_vals[i]; + + ioctl(-1, VIDIOC_G_CTRL, &v4l2_c); + printf("ioctl(-1, %s, {id=%s}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_CTRL), id_strs[i]); + + ioctl(-1, VIDIOC_S_CTRL, &v4l2_c); + printf("ioctl(-1, %s, {id=%s, value=%d}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_CTRL), id_strs[i], v4l2_c.value); + } + /* VIDIOC_G_TUNER */ ioctl(-1, VIDIOC_G_TUNER, 0); - printf("ioctl(-1, VIDIOC_G_TUNER, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_TUNER)); struct v4l2_tuner *const p_v4l2_tuner = page_end - sizeof(*p_v4l2_tuner); ioctl(-1, VIDIOC_G_TUNER, p_v4l2_tuner); - printf("ioctl(-1, VIDIOC_G_TUNER, {index=%u})" - " = -1 EBADF (%m)\n", p_v4l2_tuner->index); + printf("ioctl(-1, %s, {index=%u}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_TUNER), p_v4l2_tuner->index); /* VIDIOC_S_TUNER */ ioctl(-1, VIDIOC_S_TUNER, 0); - printf("ioctl(-1, VIDIOC_S_TUNER, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_TUNER)); TAIL_ALLOC_OBJECT_CONST_PTR(struct v4l2_tuner, p_tuner); p_tuner->index = 0x4fb6df39; @@ -731,79 +1147,98 @@ main(void) p_tuner->signal = 0x10bf92c8; p_tuner->afc = 0x3bf7e18b; ioctl(-1, VIDIOC_S_TUNER, p_tuner); - printf("ioctl(-1, VIDIOC_S_TUNER, {index=%u" - ", name=\"cum tacent clamant\"" - ", type=V4L2_TUNER_RADIO, capability=V4L2_TUNER_CAP_LOW" + printf("ioctl(-1, %s, {index=%u, name=\"cum tacent clamant\"" + ", type=" XLAT_FMT ", capability=" XLAT_FMT ", rangelow=%u, rangehigh=%u" - ", rxsubchans=V4L2_TUNER_SUB_MONO" - ", audmode=V4L2_TUNER_MODE_MONO, signal=%d, afc=%d" - "}) = -1 EBADF (%m)\n", - p_tuner->index, p_tuner->rangelow, - p_tuner->rangehigh, p_tuner->signal, p_tuner->afc); + ", rxsubchans=" XLAT_FMT ", audmode=" XLAT_FMT + ", signal=%d, afc=%d}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_TUNER), p_tuner->index, + XLAT_ARGS(V4L2_TUNER_RADIO), XLAT_ARGS(V4L2_TUNER_CAP_LOW), + p_tuner->rangelow, p_tuner->rangehigh, + XLAT_ARGS(V4L2_TUNER_SUB_MONO), XLAT_ARGS(V4L2_TUNER_MODE_MONO), + p_tuner->signal, p_tuner->afc); /* VIDIOC_QUERYCTRL */ ioctl(-1, VIDIOC_QUERYCTRL, 0); - printf("ioctl(-1, VIDIOC_QUERYCTRL, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_QUERYCTRL)); struct v4l2_queryctrl *const p_v4l2_queryctrl = page_end - sizeof(*p_v4l2_queryctrl); ioctl(-1, VIDIOC_QUERYCTRL, p_v4l2_queryctrl); -#ifdef V4L2_CTRL_FLAG_NEXT_CTRL - printf("ioctl(-1, VIDIOC_QUERYCTRL, {id=V4L2_CTRL_FLAG_NEXT_CTRL" - "|%#x /* V4L2_CID_??? */}) = -1 EBADF (%m)\n", - p_v4l2_queryctrl->id & ~V4L2_CTRL_FLAG_NEXT_CTRL); + printf("ioctl(-1, %s, {id=" +#if XLAT_RAW + "%#x" +#else + XLAT_FMT "|%#x /* V4L2_CID_??? */" +#endif + "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_QUERYCTRL), +#if XLAT_RAW + p_v4l2_queryctrl->id #else - printf("ioctl(-1, VIDIOC_QUERYCTRL, {id=%#x /* V4L2_CID_??? */})" - " = -1 EBADF (%m)\n", p_v4l2_queryctrl->id); + XLAT_ARGS(V4L2_CTRL_FLAG_NEXT_CTRL), + p_v4l2_queryctrl->id & ~V4L2_CTRL_FLAG_NEXT_CTRL #endif + ); TAIL_ALLOC_OBJECT_CONST_PTR(struct v4l2_queryctrl, p_queryctrl); p_queryctrl->id = V4L2_CID_SATURATION; ioctl(-1, VIDIOC_QUERYCTRL, p_queryctrl); - printf("ioctl(-1, VIDIOC_QUERYCTRL, {id=V4L2_CID_SATURATION})" - " = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, {id=" XLAT_FMT "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_QUERYCTRL), XLAT_ARGS(V4L2_CID_SATURATION)); /* VIDIOC_G_INPUT */ ioctl(-1, VIDIOC_G_INPUT, 0); - printf("ioctl(-1, VIDIOC_G_INPUT, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_INPUT)); ioctl(-1, VIDIOC_G_INPUT, page); - printf("ioctl(-1, VIDIOC_G_INPUT, %p) = -1 EBADF (%m)\n", page); + printf("ioctl(-1, %s, %p) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_INPUT), page); /* VIDIOC_S_INPUT */ ioctl(-1, VIDIOC_S_INPUT, 0); - printf("ioctl(-1, VIDIOC_S_INPUT, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_INPUT)); ioctl(-1, VIDIOC_S_INPUT, p_int); - printf("ioctl(-1, VIDIOC_S_INPUT, [%u]) = -1 EBADF (%m)\n", *p_int); + printf("ioctl(-1, %s, [%u]) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_INPUT), *p_int); /* VIDIOC_CROPCAP */ ioctl(-1, VIDIOC_CROPCAP, 0); - printf("ioctl(-1, VIDIOC_CROPCAP, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_CROPCAP)); struct v4l2_cropcap *const p_v4l2_cropcap = page_end - sizeof(*p_v4l2_cropcap); ioctl(-1, VIDIOC_CROPCAP, p_v4l2_cropcap); - printf("ioctl(-1, VIDIOC_CROPCAP, {type=%#x /* V4L2_BUF_TYPE_??? */})" - " = -1 EBADF (%m)\n", p_v4l2_cropcap->type); + printf("ioctl(-1, %s, {type=%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") "})" + " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_CROPCAP), p_v4l2_cropcap->type); /* VIDIOC_G_CROP */ ioctl(-1, VIDIOC_G_CROP, 0); - printf("ioctl(-1, VIDIOC_G_CROP, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_CROP)); struct v4l2_crop *const p_v4l2_crop = page_end - sizeof(*p_v4l2_crop); ioctl(-1, VIDIOC_G_CROP, p_v4l2_crop); - printf("ioctl(-1, VIDIOC_G_CROP, {type=%#x /* V4L2_BUF_TYPE_??? */})" - " = -1 EBADF (%m)\n", p_v4l2_crop->type); + printf("ioctl(-1, %s, {type=%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") "})" + " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_CROP), p_v4l2_crop->type); /* VIDIOC_S_CROP */ ioctl(-1, VIDIOC_S_CROP, 0); - printf("ioctl(-1, VIDIOC_S_CROP, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_CROP)); ioctl(-1, VIDIOC_S_CROP, p_v4l2_crop); - printf("ioctl(-1, VIDIOC_S_CROP, {type=%#x /* V4L2_BUF_TYPE_??? */" + printf("ioctl(-1, %s, {type=%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") ", c={left=%d, top=%d, width=%u, height=%u}}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_CROP), p_v4l2_crop->type, p_v4l2_crop->c.left, p_v4l2_crop->c.top, @@ -813,36 +1248,42 @@ main(void) #ifdef VIDIOC_S_EXT_CTRLS /* VIDIOC_S_EXT_CTRLS */ ioctl(-1, VIDIOC_S_EXT_CTRLS, 0); - printf("ioctl(-1, VIDIOC_S_EXT_CTRLS, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_EXT_CTRLS)); TAIL_ALLOC_OBJECT_CONST_PTR(struct v4l2_ext_controls, p_ext_controls); p_ext_controls->ctrl_class = V4L2_CTRL_CLASS_USER; p_ext_controls->count = 0; p_ext_controls->controls = (void *) -2UL; ioctl(-1, VIDIOC_S_EXT_CTRLS, p_ext_controls); - printf("ioctl(-1, VIDIOC_S_EXT_CTRLS, {ctrl_class=V4L2_CTRL_CLASS_USER" - ", count=%u}) = -1 EBADF (%m)\n", p_ext_controls->count); + printf("ioctl(-1, %s, {ctrl_class=" XLAT_FMT ", count=%u})" + " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_EXT_CTRLS), XLAT_ARGS(V4L2_CTRL_CLASS_USER), + p_ext_controls->count); p_ext_controls->ctrl_class = 0x00a30000; p_ext_controls->count = magic; ioctl(-1, VIDIOC_S_EXT_CTRLS, p_ext_controls); - printf("ioctl(-1, VIDIOC_S_EXT_CTRLS, {ctrl_class=V4L2_CTRL_CLASS_DETECT" + printf("ioctl(-1, %s, {ctrl_class=" XLAT_FMT ", count=%u, controls=%p}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_EXT_CTRLS), XLAT_ARGS(V4L2_CTRL_CLASS_DETECT), p_ext_controls->count, p_ext_controls->controls); p_ext_controls->ctrl_class = 0x00a40000; p_ext_controls->count = magic; ioctl(-1, VIDIOC_S_EXT_CTRLS, p_ext_controls); - printf("ioctl(-1, VIDIOC_S_EXT_CTRLS" - ", {ctrl_class=0xa40000 /* V4L2_CTRL_CLASS_??? */" + printf("ioctl(-1, %s" + ", {ctrl_class=0xa40000" NRAW(" /* V4L2_CTRL_CLASS_??? */") ", count=%u, controls=%p}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_EXT_CTRLS), p_ext_controls->count, p_ext_controls->controls); p_ext_controls->ctrl_class = V4L2_CTRL_CLASS_MPEG; p_ext_controls->count = magic; ioctl(-1, VIDIOC_S_EXT_CTRLS, p_ext_controls); - printf("ioctl(-1, VIDIOC_S_EXT_CTRLS, {ctrl_class=V4L2_CTRL_CLASS_MPEG" + printf("ioctl(-1, %s, {ctrl_class=" XLAT_FMT ", count=%u, controls=%p}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_EXT_CTRLS), XLAT_ARGS(V4L2_CTRL_CLASS_MPEG), p_ext_controls->count, p_ext_controls->controls); # if HAVE_DECL_V4L2_CTRL_TYPE_STRING @@ -858,107 +1299,132 @@ main(void) tail_alloc(p_ext_controls->controls[1].size); ioctl(-1, VIDIOC_S_EXT_CTRLS, p_ext_controls); - printf("ioctl(-1, VIDIOC_S_EXT_CTRLS" - ", {ctrl_class=V4L2_CTRL_CLASS_MPEG, count=%u, controls=" - "[{id=V4L2_CID_BRIGHTNESS, size=0, value=%d, value64=%lld}" - ", {id=V4L2_CID_CONTRAST, size=2, string=\"\\377\\377\"}" - "] => controls=" - "[{id=V4L2_CID_BRIGHTNESS, size=0, value=%d, value64=%lld}" - ", {id=V4L2_CID_CONTRAST, size=2, string=\"\\377\\377\"}" + printf("ioctl(-1, %s, {ctrl_class=" XLAT_FMT ", count=%u, controls=" + "[{id=" XLAT_FMT ", size=0, value=%d, value64=%lld}" + ", {id=" XLAT_FMT ", size=2, string=\"\\377\\377\"}" + "]} => {controls=" + "[{id=" XLAT_FMT ", size=0, value=%d, value64=%lld}" + ", {id=" XLAT_FMT ", size=2, string=\"\\377\\377\"}" "], error_idx=%u}) = -1 EBADF (%m)\n", - p_ext_controls->count, + XLAT_STR(VIDIOC_S_EXT_CTRLS), XLAT_ARGS(V4L2_CTRL_CLASS_MPEG), + p_ext_controls->count, XLAT_ARGS(V4L2_CID_BRIGHTNESS), p_ext_controls->controls[0].value, (long long) p_ext_controls->controls[0].value64, + XLAT_ARGS(V4L2_CID_CONTRAST), XLAT_ARGS(V4L2_CID_BRIGHTNESS), p_ext_controls->controls[0].value, (long long) p_ext_controls->controls[0].value64, - p_ext_controls->error_idx); + XLAT_ARGS(V4L2_CID_CONTRAST), p_ext_controls->error_idx); ++p_ext_controls->count; ioctl(-1, VIDIOC_S_EXT_CTRLS, p_ext_controls); - printf("ioctl(-1, VIDIOC_S_EXT_CTRLS" - ", {ctrl_class=V4L2_CTRL_CLASS_MPEG, count=%u, controls=" - "[{id=V4L2_CID_BRIGHTNESS, size=0, value=%d, value64=%lld}" - ", {id=V4L2_CID_CONTRAST, size=2, string=\"\\377\\377\"}" + printf("ioctl(-1, %s, {ctrl_class=" XLAT_FMT ", count=%u, controls=" + "[{id=" XLAT_FMT ", size=0, value=%d, value64=%lld}" + ", {id=" XLAT_FMT ", size=2, string=\"\\377\\377\"}" ", ... /* %p */]}) = -1 EBADF (%m)\n", - p_ext_controls->count, + XLAT_STR(VIDIOC_S_EXT_CTRLS), XLAT_ARGS(V4L2_CTRL_CLASS_MPEG), + p_ext_controls->count, XLAT_ARGS(V4L2_CID_BRIGHTNESS), p_ext_controls->controls[0].value, (long long) p_ext_controls->controls[0].value64, - p_ext_controls->controls + 2); + XLAT_ARGS(V4L2_CID_CONTRAST), p_ext_controls->controls + 2); # endif /* HAVE_DECL_V4L2_CTRL_TYPE_STRING */ /* VIDIOC_TRY_EXT_CTRLS */ ioctl(-1, VIDIOC_TRY_EXT_CTRLS, 0); - printf("ioctl(-1, VIDIOC_TRY_EXT_CTRLS, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_TRY_EXT_CTRLS)); p_ext_controls->ctrl_class = V4L2_CTRL_CLASS_USER; p_ext_controls->count = magic; p_ext_controls->controls = (void *) -2UL; ioctl(-1, VIDIOC_TRY_EXT_CTRLS, p_ext_controls); - printf("ioctl(-1, VIDIOC_TRY_EXT_CTRLS" - ", {ctrl_class=V4L2_CTRL_CLASS_USER, count=%u, controls=%p})" + printf("ioctl(-1, %s, {ctrl_class=" XLAT_FMT ", count=%u, controls=%p})" " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_TRY_EXT_CTRLS), XLAT_ARGS(V4L2_CTRL_CLASS_USER), p_ext_controls->count, p_ext_controls->controls); /* VIDIOC_G_EXT_CTRLS */ ioctl(-1, VIDIOC_G_EXT_CTRLS, 0); - printf("ioctl(-1, VIDIOC_G_EXT_CTRLS, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_EXT_CTRLS)); ioctl(-1, VIDIOC_G_EXT_CTRLS, p_ext_controls); - printf("ioctl(-1, VIDIOC_G_EXT_CTRLS" - ", {ctrl_class=V4L2_CTRL_CLASS_USER, count=%u, controls=%p" + printf("ioctl(-1, %s, {ctrl_class=" XLAT_FMT ", count=%u, controls=%p" ", error_idx=%u}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_EXT_CTRLS), XLAT_ARGS(V4L2_CTRL_CLASS_USER), p_ext_controls->count, p_ext_controls->controls, p_ext_controls->error_idx); #endif /* VIDIOC_S_EXT_CTRLS */ -#ifdef VIDIOC_ENUM_FRAMESIZES +#ifdef HAVE_STRUCT_V4L2_FRMSIZEENUM ioctl(-1, VIDIOC_ENUM_FRAMESIZES, 0); - printf("ioctl(-1, VIDIOC_ENUM_FRAMESIZES, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_ENUM_FRAMESIZES)); TAIL_ALLOC_OBJECT_CONST_PTR(struct v4l2_frmsizeenum, p_frmsizeenum); p_frmsizeenum->index = magic; p_frmsizeenum->pixel_format = fourcc(cc[0], cc[1], cc[2], cc[3]); ioctl(-1, VIDIOC_ENUM_FRAMESIZES, p_frmsizeenum); - printf("ioctl(-1, VIDIOC_ENUM_FRAMESIZES, {index=%u" - ", pixel_format=v4l2_fourcc('%c', '\\%c', '\\%c', '\\x%x')})" - " = -1 EBADF (%m)\n", p_frmsizeenum->index, - cc[0], cc[1], cc[2], cc[3]); -#endif /* VIDIOC_ENUM_FRAMESIZES */ - -#ifdef VIDIOC_ENUM_FRAMEINTERVALS + printf("ioctl(-1, %s, {index=%u, pixel_format=" +# if XLAT_RAW + "0x%hhx%hhx%hhx%hhx" +# else /* !XLAT_RAW */ + "v4l2_fourcc('%c', '\\%c', '\\%c', '\\x%x')" +# endif /* XLAT_RAW */ + "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_ENUM_FRAMESIZES), p_frmsizeenum->index, +# if XLAT_RAW + cc[3], cc[2], cc[1], cc[0] +# else /* !XLAT_RAW */ + cc[0], cc[1], cc[2], cc[3] +# endif /* XLAT_RAW */ + ); +#endif /* HAVE_STRUCT_V4L2_FRMSIZEENUM */ + +#ifdef HAVE_STRUCT_V4L2_FRMIVALENUM ioctl(-1, VIDIOC_ENUM_FRAMEINTERVALS, 0); - printf("ioctl(-1, VIDIOC_ENUM_FRAMEINTERVALS, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_ENUM_FRAMEINTERVALS)); struct v4l2_frmivalenum *const p_v4l2_frmivalenum = page_end - sizeof(*p_v4l2_frmivalenum); ioctl(-1, VIDIOC_ENUM_FRAMEINTERVALS, p_v4l2_frmivalenum); - printf("ioctl(-1, VIDIOC_ENUM_FRAMEINTERVALS, {index=%u" - ", pixel_format=v4l2_fourcc('\\x%x', '\\x%x', '\\x%x', '\\x%x')" + printf("ioctl(-1, %s, {index=%u, pixel_format=" +# if XLAT_RAW + "%#x" +# else /* !XLAT_RAW */ + "v4l2_fourcc('\\x%x', '\\x%x', '\\x%x', '\\x%x')" +# endif /* XLAT_RAW */ ", width=%u, height=%u}) = -1 EBADF (%m)\n", - p_v4l2_frmivalenum->index, + XLAT_STR(VIDIOC_ENUM_FRAMEINTERVALS), p_v4l2_frmivalenum->index, +# if XLAT_RAW + p_v4l2_frmivalenum->pixel_format, +# else /* !XLAT_RAW */ cc0(p_v4l2_frmivalenum->pixel_format), cc1(p_v4l2_frmivalenum->pixel_format), cc2(p_v4l2_frmivalenum->pixel_format), cc3(p_v4l2_frmivalenum->pixel_format), +# endif /* XLAT_RAW */ p_v4l2_frmivalenum->width, p_v4l2_frmivalenum->height); -#endif /* VIDIOC_ENUM_FRAMEINTERVALS */ +#endif /* HAVE_STRUCT_V4L2_FRMIVALENUM */ -#ifdef VIDIOC_CREATE_BUFS +#ifdef HAVE_STRUCT_V4L2_CREATE_BUFFERS ioctl(-1, VIDIOC_CREATE_BUFS, 0); - printf("ioctl(-1, VIDIOC_CREATE_BUFS, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_CREATE_BUFS)); struct v4l2_create_buffers *const p_v4l2_create_buffers = page_end - sizeof(*p_v4l2_create_buffers); ioctl(-1, VIDIOC_CREATE_BUFS, p_v4l2_create_buffers); - printf("ioctl(-1, VIDIOC_CREATE_BUFS, {count=%u, memory=%#x" - " /* V4L2_MEMORY_??? */, format={type=%#x" - " /* V4L2_BUF_TYPE_??? */}}) = -1 EBADF (%m)\n", + printf("ioctl(-1, %s, {count=%u, memory=%#x" + NRAW(" /* V4L2_MEMORY_??? */") ", format={type=%#x" + NRAW(" /* V4L2_BUF_TYPE_??? */") "}}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_CREATE_BUFS), p_v4l2_create_buffers->count, p_v4l2_create_buffers->memory, p_v4l2_create_buffers->format.type); -#endif /* VIDIOC_CREATE_BUFS */ +#endif /* HAVE_STRUCT_V4L2_CREATE_BUFFERS */ puts("+++ exited with 0 +++"); return 0; diff --git a/tests-mx32/ioctl_watchdog.c b/tests-mx32/ioctl_watchdog.c new file mode 100644 index 00000000..d1af8365 --- /dev/null +++ b/tests-mx32/ioctl_watchdog.c @@ -0,0 +1,61 @@ +/* + * Check decoding of WDIOC* commands of ioctl syscall. + * + * Copyright (c) 2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#include +#include +#include +#include + +#define XLAT_MACROS_ONLY +#include "xlat/watchdog_ioctl_cmds.h" +#undef XLAT_MACROS_ONLY + +#define RVAL_EBADF " = -1 EBADF (%m)\n" + +int +main(void) +{ + int val = 123; + + ioctl(-1, WDIOC_GETSTATUS, &val); + printf("ioctl(-1, WDIOC_GETSTATUS, %p)" RVAL_EBADF, &val); + + ioctl(-1, WDIOC_GETBOOTSTATUS, &val); + printf("ioctl(-1, WDIOC_GETBOOTSTATUS, %p)" RVAL_EBADF, &val); + + ioctl(-1, WDIOC_GETTEMP, &val); + printf("ioctl(-1, WDIOC_GETTEMP, %p)" RVAL_EBADF, &val); + + ioctl(-1, WDIOC_GETTIMEOUT, &val); + printf("ioctl(-1, WDIOC_GETTIMEOUT, %p)" RVAL_EBADF, &val); + + ioctl(-1, WDIOC_GETPRETIMEOUT, &val); + printf("ioctl(-1, WDIOC_GETPRETIMEOUT, %p)" RVAL_EBADF, &val); + + ioctl(-1, WDIOC_GETTIMELEFT, &val); + printf("ioctl(-1, WDIOC_GETTIMELEFT, %p)" RVAL_EBADF, &val); + + ioctl(-1, WDIOC_SETTIMEOUT, &val); + printf("ioctl(-1, WDIOC_SETTIMEOUT, [123])" RVAL_EBADF); + + ioctl(-1, WDIOC_SETPRETIMEOUT, &val); + printf("ioctl(-1, WDIOC_SETPRETIMEOUT, [123])" RVAL_EBADF); + + ioctl(-1, WDIOC_KEEPALIVE); + printf("ioctl(-1, WDIOC_KEEPALIVE)" RVAL_EBADF); + + ioctl(-1, _IOC(_IOC_NONE, 'W', 0xff, 0), &val); + printf("ioctl(-1, _IOC(_IOC_NONE, %#x, 0xff, 0), %p)" RVAL_EBADF, + 'W', &val); + + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests-mx32/ioctl_watchdog.gen.test b/tests-mx32/ioctl_watchdog.gen.test new file mode 100755 index 00000000..ed1c71f4 --- /dev/null +++ b/tests-mx32/ioctl_watchdog.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_watchdog +ioctl.test ); do not edit. +set -- +. "${srcdir=.}/ioctl.test" diff --git a/tests-mx32/ioperm.c b/tests-mx32/ioperm.c index 3f99b2db..cba8e7be 100644 --- a/tests-mx32/ioperm.c +++ b/tests-mx32/ioperm.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_ioperm diff --git a/tests-mx32/iopl.c b/tests-mx32/iopl.c index f8904030..f8c772b6 100644 --- a/tests-mx32/iopl.c +++ b/tests-mx32/iopl.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_iopl diff --git a/tests-mx32/ioprio--pidns-translation.c b/tests-mx32/ioprio--pidns-translation.c new file mode 100644 index 00000000..bcb49a8b --- /dev/null +++ b/tests-mx32/ioprio--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "ioprio.c" diff --git a/tests-mx32/ioprio--pidns-translation.gen.test b/tests-mx32/ioprio--pidns-translation.gen.test new file mode 100755 index 00000000..f6a9c726 --- /dev/null +++ b/tests-mx32/ioprio--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioprio--pidns-translation test_pidns -a18 -e trace=ioprio_get,ioprio_set); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a18 -e trace=ioprio_get,ioprio_set diff --git a/tests-mx32/ioprio.c b/tests-mx32/ioprio.c index 65775963..5d998a22 100644 --- a/tests-mx32/ioprio.c +++ b/tests-mx32/ioprio.c @@ -2,15 +2,15 @@ * Check decoding of ioprio_get and ioprio_set syscalls. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" - -#include +#include "scno.h" +#include "pidns.h" #if defined(__NR_ioprio_get) && defined(__NR_ioprio_set) @@ -30,12 +30,18 @@ enum { int main(void) { + PIDNS_TEST_INIT; + static const kernel_ulong_t bogus_which = (kernel_ulong_t) 0xdeadfacefa57beefULL; static const kernel_ulong_t bogus_who = (kernel_ulong_t) 0xbadc0dedda7a1057ULL; static const kernel_ulong_t bogus_ioprio = (kernel_ulong_t) 0xdec0ded1facefeedULL; + + const int pid = getpid(); + const int pgid = getpgid(0); + # if !XLAT_RAW static const char * const bogus_ioprio_str = "IOPRIO_PRIO_VALUE(0x7d677 /* IOPRIO_CLASS_??? */, 7917)"; @@ -46,6 +52,7 @@ main(void) rc = syscall(__NR_ioprio_get, bogus_which, bogus_who); errstr = sprintrc(rc); + pidns_print_leader(); # if XLAT_RAW printf("ioprio_get(%#x, %d) = %s\n", (int) bogus_which, (int) bogus_who, errstr); @@ -54,47 +61,52 @@ main(void) (int) bogus_which, (int) bogus_who, errstr); # endif - rc = syscall(__NR_ioprio_get, 1, 0); + rc = syscall(__NR_ioprio_get, 1, pid); errstr = sprintrc(rc); + pidns_print_leader(); + printf("ioprio_get("); # if XLAT_RAW - printf("ioprio_get(0x1, 0) = %s\n", errstr); + printf("0x1, "); # elif XLAT_VERBOSE - printf("ioprio_get(0x1 /* IOPRIO_WHO_PROCESS */, 0) = %s", errstr); - if (rc >= 0) { - printf(" (IOPRIO_PRIO_VALUE(%u /* ", (unsigned int) rc >> 13); - printxval(ioprio_class, (unsigned int) rc >> 13, - "IOPRIO_CLASS_???"); - printf(" */, %u))", (unsigned int) rc & 0x1fff); - } - puts(""); + printf("0x1 /* IOPRIO_WHO_PROCESS */, "); # else /* XLAT_ABBREV */ - printf("ioprio_get(IOPRIO_WHO_PROCESS, 0) = %s", errstr); + printf("IOPRIO_WHO_PROCESS, "); +# endif + printf("%d%s) = %s", pid, pidns_pid2str(PT_TGID), errstr); +# if !XLAT_RAW if (rc >= 0) { printf(" (IOPRIO_PRIO_VALUE("); printxval(ioprio_class, (unsigned int) rc >> 13, "IOPRIO_CLASS_???"); printf(", %u))", (unsigned int) rc & 0x1fff); } - puts(""); # endif + puts(""); - rc = syscall(__NR_ioprio_set, 2, 0, 8191); + rc = syscall(__NR_ioprio_set, 2, pgid, 8191); errstr = sprintrc(rc); + pidns_print_leader(); + printf("ioprio_set("); # if XLAT_RAW - printf("ioprio_set(%#x, 0, 8191) = %s\n", 2, errstr); + printf("%#x", 2); # elif XLAT_VERBOSE - printf("ioprio_set(%#x /* IOPRIO_WHO_PGRP */, 0, 8191" - " /* IOPRIO_PRIO_VALUE(0 /* IOPRIO_CLASS_NONE */, 8191) */)" - " = %s\n", - 2, errstr); + printf("%#x /* IOPRIO_WHO_PGRP */", 2); # else /* XLAT_ABBREV */ - printf("ioprio_set(IOPRIO_WHO_PGRP, 0" - ", IOPRIO_PRIO_VALUE(IOPRIO_CLASS_NONE, 8191)) = %s\n", - errstr); + printf("IOPRIO_WHO_PGRP"); +# endif + printf(", %d%s", pgid, pidns_pid2str(PT_PGID)); +# if XLAT_RAW + printf(", 8191)"); +# elif XLAT_VERBOSE + printf(", 8191 /* IOPRIO_PRIO_VALUE(0 /* IOPRIO_CLASS_NONE */, 8191) */)"); +# else /* XLAT_ABBREV */ + printf(", IOPRIO_PRIO_VALUE(IOPRIO_CLASS_NONE, 8191))"); # endif + printf(" = %s\n", errstr); rc = syscall(__NR_ioprio_set, bogus_which, bogus_who, bogus_ioprio); errstr = sprintrc(rc); + pidns_print_leader(); # if XLAT_RAW printf("ioprio_set(%#x, %d, %d) = %s\n", (int) bogus_which, (int) bogus_who, (int) bogus_ioprio, @@ -109,6 +121,7 @@ main(void) errstr); # endif + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; diff --git a/tests-mx32/ipc.c b/tests-mx32/ipc.c index 5c86f207..5cd0b603 100644 --- a/tests-mx32/ipc.c +++ b/tests-mx32/ipc.c @@ -2,13 +2,14 @@ * Check decoding of ipc syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_ipc && defined HAVE_LINUX_IPC_H diff --git a/tests-mx32/ipc_msg.c b/tests-mx32/ipc_msg.c index b12f4af3..55dc287f 100644 --- a/tests-mx32/ipc_msg.c +++ b/tests-mx32/ipc_msg.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2015 Elvira Khabirova * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -20,18 +20,24 @@ # define MSG_STAT_ANY 13 #endif +#undef TEST_MSGCTL_BOGUS_ADDR + +/* + * Starting with commit glibc-2.32~83, on every 32-bit architecture + * where 32-bit time_t support is enabled, glibc tries to retrieve + * the data provided in the third argument of msgctl call. + */ +#if GLIBC_PREREQ_GE(2, 32) && defined __TIMESIZE && __TIMESIZE != 64 +# define TEST_MSGCTL_BOGUS_ADDR 0 +#endif /* * Before glibc-2.22-122-gbe48165, ppc64 code tried to retrieve data * provided in third argument of msgctl call (in case of IPC_SET cmd) * which led to segmentation fault. */ -#undef TEST_MSGCTL_BOGUS_ADDR -#if defined __GLIBC__ && defined POWERPC64 -# if !(defined __GLIBC_MINOR__) \ - || ((__GLIBC__ << 16) + __GLIBC_MINOR__ < (2 << 16) + 23) -# define TEST_MSGCTL_BOGUS_ADDR 0 -# endif -#endif /* __GLIBC__ && POWERPC64 */ +#if GLIBC_PREREQ_LT(2, 23) && (defined POWERPC64 || defined POWERPC64LE) +# define TEST_MSGCTL_BOGUS_ADDR 0 +#endif #ifndef TEST_MSGCTL_BOGUS_ADDR # define TEST_MSGCTL_BOGUS_ADDR 1 @@ -43,6 +49,7 @@ # define str_ipc_rmid "0" # define str_ipc_set "0x1" # define str_ipc_stat "0x2" +# define str_ipc_info "0x3" # define str_msg_stat "0xb" # define str_msg_info "0xc" # define str_msg_stat_any "0xd" @@ -55,6 +62,7 @@ # define str_ipc_rmid "0 /\\* IPC_RMID \\*/" # define str_ipc_set "0x1 /\\* IPC_SET \\*/" # define str_ipc_stat "0x2 /\\* IPC_STAT \\*/" +# define str_ipc_info "0x3 /\\* IPC_INFO \\*/" # define str_msg_stat "0xb /\\* MSG_STAT \\*/" # define str_msg_info "0xc /\\* MSG_INFO \\*/" # define str_msg_stat_any "0xd /\\* MSG_STAT_ANY \\*/" @@ -66,6 +74,7 @@ # define str_ipc_rmid "IPC_RMID" # define str_ipc_set "IPC_SET" # define str_ipc_stat "IPC_STAT" +# define str_ipc_info "IPC_INFO" # define str_msg_stat "MSG_STAT" # define str_msg_info "MSG_INFO" # define str_msg_stat_any "MSG_STAT_ANY" @@ -84,6 +93,68 @@ cleanup(void) id = -1; } +static void +print_msginfo(const char *const str_ipc_cmd, + const struct msginfo *const info, + const int rc) +{ + if (rc < 0) { + printf("msgctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", + id, str_ipc_64, str_ipc_cmd, info, sprintrc_grep(rc)); + return; + } + + printf("msgctl\\(%d, (%s\\|)?%s, \\{msgpool=%d, msgmap=%d, msgmax=%d" + ", msgmnb=%d, msgmni=%d, msgssz=%d, msgtql=%d, msgseg=%u\\}\\)" + " = %d\n", + id, + str_ipc_64, + str_ipc_cmd, + info->msgpool, + info->msgmap, + info->msgmax, + info->msgmnb, + info->msgmni, + info->msgssz, + info->msgtql, + (unsigned) info->msgseg, + rc); +} + +static void +print_msqid_ds(const char *const str_ipc_cmd, + const struct msqid_ds *const ds, + const int rc) +{ + if (rc < 0) { + printf("msgctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", + id, str_ipc_64, str_ipc_cmd, ds, sprintrc_grep(rc)); + return; + } + + printf("msgctl\\(%d, (%s\\|)?%s, \\{msg_perm=\\{uid=%u" + ", gid=%u, mode=%#o, key=%u, cuid=%u, cgid=%u\\}" + ", msg_stime=%u, msg_rtime=%u, msg_ctime=%u, msg_qnum=%u" + ", msg_qbytes=%u, msg_lspid=%d, msg_lrpid=%d\\}\\) = %d\n", + id, + str_ipc_64, + str_ipc_cmd, + (unsigned) ds->msg_perm.uid, + (unsigned) ds->msg_perm.gid, + (unsigned) ds->msg_perm.mode, + (unsigned) ds->msg_perm.__key, + (unsigned) ds->msg_perm.cuid, + (unsigned) ds->msg_perm.cgid, + (unsigned) ds->msg_stime, + (unsigned) ds->msg_rtime, + (unsigned) ds->msg_ctime, + (unsigned) ds->msg_qnum, + (unsigned) ds->msg_qbytes, + (int) ds->msg_lspid, + (int) ds->msg_lrpid, + rc); +} + int main(void) { @@ -98,7 +169,10 @@ main(void) static const int bogus_flags = 0xface1e55 & ~IPC_CREAT; int rc; - struct msqid_ds ds; + union { + struct msqid_ds ds; + struct msginfo info; + } buf; rc = msgget(bogus_key, bogus_flags); printf("msgget\\(%#llx, %s\\|%#04o\\) = %s\n", @@ -123,39 +197,32 @@ main(void) sprintrc_grep(rc)); #endif - if (msgctl(id, IPC_STAT, &ds)) + rc = msgctl(id, IPC_STAT, &buf.ds); + if (rc < 0) perror_msg_and_skip("msgctl IPC_STAT"); - printf("msgctl\\(%d, (%s\\|)?%s, \\{msg_perm=\\{uid=%u" - ", gid=%u, mode=%#o, key=%u, cuid=%u, cgid=%u\\}, msg_stime=%u" - ", msg_rtime=%u, msg_ctime=%u, msg_qnum=%u, msg_qbytes=%u" - ", msg_lspid=%u, msg_lrpid=%u\\}\\) = 0\n", - id, str_ipc_64, str_ipc_stat, - (unsigned) ds.msg_perm.uid, (unsigned) ds.msg_perm.gid, - (unsigned) ds.msg_perm.mode, (unsigned) ds.msg_perm.__key, - (unsigned) ds.msg_perm.cuid, (unsigned) ds.msg_perm.cgid, - (unsigned) ds.msg_stime, (unsigned) ds.msg_rtime, - (unsigned) ds.msg_ctime, (unsigned) ds.msg_qnum, - (unsigned) ds.msg_qbytes, (unsigned) ds.msg_lspid, - (unsigned) ds.msg_lrpid); - - if (msgctl(id, IPC_SET, &ds)) + print_msqid_ds(str_ipc_stat, &buf.ds, rc); + + if (msgctl(id, IPC_SET, &buf.ds)) perror_msg_and_skip("msgctl IPC_SET"); printf("msgctl\\(%d, (%s\\|)?%s, \\{msg_perm=\\{uid=%u" - ", gid=%u, mode=%#o\\}, ...\\}\\) = 0\n", - id, str_ipc_64, str_ipc_set, (unsigned) ds.msg_perm.uid, - (unsigned) ds.msg_perm.gid, (unsigned) ds.msg_perm.mode); + ", gid=%u, mode=%#o\\}, msg_qbytes=%u\\}\\) = 0\n", + id, str_ipc_64, str_ipc_set, + (unsigned) buf.ds.msg_perm.uid, + (unsigned) buf.ds.msg_perm.gid, + (unsigned) buf.ds.msg_perm.mode, + (unsigned) buf.ds.msg_qbytes); - rc = msgctl(0, MSG_INFO, &ds); - printf("msgctl\\(0, (%s\\|)?%s, %p\\) = %s\n", - str_ipc_64, str_msg_info, &ds, sprintrc_grep(rc)); + rc = msgctl(id, IPC_INFO, &buf.ds); + print_msginfo(str_ipc_info, &buf.info, rc); - rc = msgctl(id, MSG_STAT, &ds); - printf("msgctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", - id, str_ipc_64, str_msg_stat, &ds, sprintrc_grep(rc)); + rc = msgctl(id, MSG_INFO, &buf.ds); + print_msginfo(str_msg_info, &buf.info, rc); - rc = msgctl(id, MSG_STAT_ANY, &ds); - printf("msgctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", - id, str_ipc_64, str_msg_stat_any, &ds, sprintrc_grep(rc)); + rc = msgctl(id, MSG_STAT, &buf.ds); + print_msqid_ds(str_msg_stat, &buf.ds, rc); + + rc = msgctl(id, MSG_STAT_ANY, &buf.ds); + print_msqid_ds(str_msg_stat_any, &buf.ds, rc); return 0; } diff --git a/tests-mx32/ipc_msgbuf-Xraw.gen.test b/tests-mx32/ipc_msgbuf-Xraw.gen.test index c1112cb6..be350755 100755 --- a/tests-mx32/ipc_msgbuf-Xraw.gen.test +++ b/tests-mx32/ipc_msgbuf-Xraw.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_msgbuf-Xraw +ipc_msgbuf.test -Xraw -a22); do not edit. -set -- -Xraw -a22 +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_msgbuf-Xraw +ipc_msgbuf.test -Xraw -a19); do not edit. +set -- -Xraw -a19 . "${srcdir=.}/ipc_msgbuf.test" diff --git a/tests-mx32/ipc_msgbuf.c b/tests-mx32/ipc_msgbuf.c index 92525f94..ffad6913 100644 --- a/tests-mx32/ipc_msgbuf.c +++ b/tests-mx32/ipc_msgbuf.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2015 Elvira Khabirova * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +11,7 @@ #include #include #include -#include +#include "scno.h" #include #include #include diff --git a/tests-mx32/ipc_sem.c b/tests-mx32/ipc_sem.c index 7341f728..365ed177 100644 --- a/tests-mx32/ipc_sem.c +++ b/tests-mx32/ipc_sem.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2015 Andreas Schwab * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,6 +11,7 @@ #include #include #include +#include #include #include "xlat.h" @@ -24,7 +25,9 @@ # define str_ipc_flags "0xface1e00" # define str_ipc_private "0" # define str_ipc_rmid "0" +# define str_ipc_set "0x1" # define str_ipc_stat "0x2" +# define str_ipc_info "0x3" # define str_sem_stat "0x12" # define str_sem_info "0x13" # define str_sem_stat_any "0x14" @@ -35,7 +38,9 @@ "0xface1e00 /\\* IPC_CREAT\\|IPC_EXCL\\|IPC_NOWAIT\\|0xface1000 \\*/" # define str_ipc_private "0 /\\* IPC_PRIVATE \\*/" # define str_ipc_rmid "0 /\\* IPC_RMID \\*/" +# define str_ipc_set "0x1 /\\* IPC_SET \\*/" # define str_ipc_stat "0x2 /\\* IPC_STAT \\*/" +# define str_ipc_info "0x3 /\\* IPC_INFO \\*/" # define str_sem_stat "0x12 /\\* SEM_STAT \\*/" # define str_sem_info "0x13 /\\* SEM_INFO \\*/" # define str_sem_stat_any "0x14 /\\* SEM_STAT_ANY \\*/" @@ -45,7 +50,9 @@ # define str_ipc_flags "IPC_CREAT\\|IPC_EXCL\\|IPC_NOWAIT\\|0xface1000" # define str_ipc_private "IPC_PRIVATE" # define str_ipc_rmid "IPC_RMID" +# define str_ipc_set "IPC_SET" # define str_ipc_stat "IPC_STAT" +# define str_ipc_info "IPC_INFO" # define str_sem_stat "SEM_STAT" # define str_sem_info "SEM_INFO" # define str_sem_stat_any "SEM_STAT_ANY" @@ -72,6 +79,66 @@ cleanup(void) id = -1; } +static void +print_semid_ds(const char *const str_ipc_cmd, + const struct semid_ds *const ds, + const int rc) +{ + if (rc < 0) { + printf("semctl\\(%d, 0, (%s\\|)?%s, (%p|\\[%p\\])\\) = %s\n", + id, str_ipc_64, str_ipc_cmd, &ds, &ds, + sprintrc_grep(rc)); + return; + } + printf("semctl\\(%d, 0, (%s\\|)?%s, \\{sem_perm=\\{uid=%u, gid=%u" + ", mode=%#o, key=%u, cuid=%u, cgid=%u\\}, sem_otime=%llu" + ", sem_ctime=%llu, sem_nsems=%llu\\}\\) = %d\n", + id, + str_ipc_64, + str_ipc_cmd, + (unsigned) ds->sem_perm.uid, + (unsigned) ds->sem_perm.gid, + (unsigned) ds->sem_perm.mode, + (unsigned) ds->sem_perm.__key, + (unsigned) ds->sem_perm.cuid, + (unsigned) ds->sem_perm.cgid, + (unsigned long long) ds->sem_otime, + (unsigned long long) ds->sem_ctime, + (unsigned long long) ds->sem_nsems, + rc); +} + +static void +print_sem_info(const char *const str_ipc_cmd, + const struct seminfo *const info, + const int rc) +{ + if (rc < 0) { + printf("semctl\\(%d, 0, (%s\\|)?%s, (%p|\\[%p\\])\\) = %s\n", + id, str_ipc_64, str_ipc_cmd, &info, &info, + sprintrc_grep(rc)); + return; + } + + printf("semctl\\(%d, 0, (%s\\|)?%s, \\{semmap=%d, semmni=%d" + ", semmns=%d, semmnu=%d, semmsl=%d, semopm=%d, semume=%d" + ", semusz=%d, semvmx=%d, semaem=%d\\}\\) = %d\n", + id, + str_ipc_64, + str_ipc_cmd, + info->semmap, + info->semmni, + info->semmns, + info->semmnu, + info->semmsl, + info->semopm, + info->semume, + info->semusz, + info->semvmx, + info->semaem, + rc); +} + int main(void) { @@ -91,6 +158,8 @@ main(void) struct semid_ds ds; struct seminfo info; + memset(&ds, 0, sizeof(ds)); + rc = semget(bogus_key, bogus_size, bogus_flags); printf("semget\\(%#llx, %d, %s\\|%#04o\\) = %s\n", zero_extend_signed_to_ull(bogus_key), bogus_size, @@ -108,25 +177,41 @@ main(void) bogus_semid, bogus_semnum, str_ipc_64, str_bogus_cmd, bogus_arg, bogus_arg, sprintrc_grep(rc)); + un.__buf = &info; + rc = semctl(id, 0, IPC_INFO, un); + print_sem_info(str_ipc_info, &info, rc); + + rc = semctl(id, 0, SEM_INFO, un); + print_sem_info(str_sem_info, &info, rc); + un.buf = &ds; - if (semctl(id, 0, IPC_STAT, un)) + rc = semctl(id, 0, IPC_STAT, un); + if (rc < 0) perror_msg_and_skip("semctl IPC_STAT"); - printf("semctl\\(%d, 0, (%s\\|)?%s, \\[?%p\\]?\\) = 0\n", - id, str_ipc_64, str_ipc_stat, &ds); + print_semid_ds(str_ipc_stat, &ds, rc); - un.__buf = &info; - rc = semctl(0, 0, SEM_INFO, un); - printf("semctl\\(0, 0, (%s\\|)?%s, \\[?%p\\]?\\) = %s\n", - str_ipc_64, str_sem_info, &info, sprintrc_grep(rc)); + if (semctl(id, 0, IPC_SET, un)) + perror_msg_and_skip("semctl IPC_SET"); + printf("semctl\\(%d, 0, (%s\\|)?%s, \\{sem_perm=\\{uid=%u, gid=%u" + ", mode=%#o\\}\\}\\) = 0\n", + id, str_ipc_64, str_ipc_set, + (unsigned) ds.sem_perm.uid, + (unsigned) ds.sem_perm.gid, + (unsigned) ds.sem_perm.mode); - un.buf = &ds; rc = semctl(id, 0, SEM_STAT, un); - printf("semctl\\(%d, 0, (%s\\|)?%s, \\[?%p\\]?\\) = %s\n", - id, str_ipc_64, str_sem_stat, &ds, sprintrc_grep(rc)); + print_semid_ds(str_sem_stat, &ds, rc); +/* + * glibc fails to pass the buffer for SEM_STAT_ANY command, + * so the kernel receives garbage instead of un.buf address: + * https://sourceware.org/bugzilla/show_bug.cgi?id=26637 + * musl doesn't pass the buffer either. + */ +#if 0 rc = semctl(id, 0, SEM_STAT_ANY, un); - printf("semctl\\(%d, 0, (%s\\|)?%s, (%p|\\[(%p|NULL)\\]|NULL)\\) = %s\n", - id, str_ipc_64, str_sem_stat_any, &ds, &ds, sprintrc_grep(rc)); + print_semid_ds(str_sem_stat_any, &ds, rc); +#endif return 0; } diff --git a/tests-mx32/ipc_shm-Xabbrev.gen.test b/tests-mx32/ipc_shm-Xabbrev.gen.test index d68c2462..19821620 100755 --- a/tests-mx32/ipc_shm-Xabbrev.gen.test +++ b/tests-mx32/ipc_shm-Xabbrev.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_shm-Xabbrev +ipc.sh -Xabbrev -a29); do not edit. -set -- -Xabbrev -a29 +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_shm-Xabbrev +ipc.sh -Xabbrev -a26); do not edit. +set -- -Xabbrev -a26 . "${srcdir=.}/ipc.sh" diff --git a/tests-mx32/ipc_shm-Xverbose.gen.test b/tests-mx32/ipc_shm-Xverbose.gen.test index 170adeee..457ad666 100755 --- a/tests-mx32/ipc_shm-Xverbose.gen.test +++ b/tests-mx32/ipc_shm-Xverbose.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_shm-Xverbose +ipc.sh -Xverbose -a36); do not edit. -set -- -Xverbose -a36 +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_shm-Xverbose +ipc.sh -Xverbose -a34); do not edit. +set -- -Xverbose -a34 . "${srcdir=.}/ipc.sh" diff --git a/tests-mx32/ipc_shm.c b/tests-mx32/ipc_shm.c index 76c19d8d..18de6bf1 100644 --- a/tests-mx32/ipc_shm.c +++ b/tests-mx32/ipc_shm.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2015 Elvira Khabirova * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -25,6 +25,10 @@ # define SHM_STAT_ANY 15 #endif +#ifndef SHM_NORESERVE +# define SHM_NORESERVE 010000 +#endif + #include "xlat.h" #include "xlat/shm_resource_flags.h" @@ -35,6 +39,7 @@ # define str_ipc_rmid "0" # define str_ipc_set "0x1" # define str_ipc_stat "0x2" +# define str_ipc_info "0x3" # define str_shm_stat "0xd" # define str_shm_info "0xe" # define str_shm_stat_any "0xf" @@ -49,6 +54,7 @@ # define str_ipc_rmid "0 /\\* IPC_RMID \\*/" # define str_ipc_set "0x1 /\\* IPC_SET \\*/" # define str_ipc_stat "0x2 /\\* IPC_STAT \\*/" +# define str_ipc_info "0x3 /\\* IPC_INFO \\*/" # define str_shm_stat "0xd /\\* SHM_STAT \\*/" # define str_shm_info "0xe /\\* SHM_INFO \\*/" # define str_shm_stat_any "0xf /\\* SHM_STAT_ANY \\*/" @@ -62,6 +68,7 @@ # define str_ipc_rmid "IPC_RMID" # define str_ipc_set "IPC_SET" # define str_ipc_stat "IPC_STAT" +# define str_ipc_info "IPC_INFO" # define str_shm_stat "SHM_STAT" # define str_shm_info "SHM_INFO" # define str_shm_stat_any "SHM_STAT_ANY" @@ -69,6 +76,21 @@ # define str_bogus_cmd "0xdefaced2 /\\* SHM_\\?\\?\\? \\*/" #endif +#undef TEST_SHMCTL_BOGUS_ADDR + +/* + * Starting with commit glibc-2.32~80, on every 32-bit architecture + * where 32-bit time_t support is enabled, glibc tries to retrieve + * the data provided in the third argument of shmctl call. + */ +#if GLIBC_PREREQ_GE(2, 32) && defined __TIMESIZE && __TIMESIZE != 64 +# define TEST_SHMCTL_BOGUS_ADDR 0 +#endif + +#ifndef TEST_SHMCTL_BOGUS_ADDR +# define TEST_SHMCTL_BOGUS_ADDR 1 +#endif + static int id = -1; static void @@ -80,6 +102,89 @@ cleanup(void) id = -1; } +static void +print_shmid_ds(const char *const str_ipc_cmd, + const struct shmid_ds *const ds, + const int rc) +{ + if (rc < 0) { + printf("shmctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", + id, str_ipc_64, str_ipc_cmd, ds, sprintrc_grep(rc)); + return; + } + printf("shmctl\\(%d, (%s\\|)?%s, \\{shm_perm=\\{uid=%u, gid=%u" + ", mode=%#o, key=%u, cuid=%u, cgid=%u\\}, shm_segsz=%u" + ", shm_cpid=%d, shm_lpid=%d, shm_nattch=%u, shm_atime=%u" + ", shm_dtime=%u, shm_ctime=%u\\}\\) = %d\n", + id, + str_ipc_64, + str_ipc_cmd, + (unsigned) ds->shm_perm.uid, + (unsigned) ds->shm_perm.gid, + (unsigned) ds->shm_perm.mode, + (unsigned) ds->shm_perm.__key, + (unsigned) ds->shm_perm.cuid, + (unsigned) ds->shm_perm.cgid, + (unsigned) ds->shm_segsz, + (int) ds->shm_cpid, + (int) ds->shm_lpid, + (unsigned) ds->shm_nattch, + (unsigned) ds->shm_atime, + (unsigned) ds->shm_dtime, + (unsigned) ds->shm_ctime, + rc); +} + +static void +print_ipc_info(const char *const str_ipc_cmd, + const struct shminfo *const info, + const int rc) +{ + if (rc < 0) { + printf("shmctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", + id, str_ipc_64, str_ipc_cmd, info, sprintrc_grep(rc)); + return; + } + + printf("shmctl\\(%d, (%s\\|)?%s, \\{shmmax=%llu, shmmin=%llu" + ", shmmni=%llu, shmseg=%llu, shmall=%llu\\}\\) = %d\n", + id, + str_ipc_64, + str_ipc_cmd, + (unsigned long long) info->shmmax, + (unsigned long long) info->shmmin, + (unsigned long long) info->shmmni, + (unsigned long long) info->shmseg, + (unsigned long long) info->shmall, + rc); +} + +static void +print_shm_info(const char *const str_ipc_cmd, + const struct shm_info *const info, + const int rc) +{ + if (rc < 0) { + printf("shmctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", + id, str_ipc_64, str_ipc_cmd, info, sprintrc_grep(rc)); + return; + } + + printf("shmctl\\(%d, (%s\\|)?%s, \\{used_ids=%d, shm_tot=%llu" + ", shm_rss=%llu, shm_swp=%llu, swap_attempts=%llu" + ", swap_successes=%llu\\}\\) = %d\n", + id, + str_ipc_64, + str_ipc_cmd, + info->used_ids, + (unsigned long long) info->shm_tot, + (unsigned long long) info->shm_rss, + (unsigned long long) info->shm_swp, + (unsigned long long) info->swap_attempts, + (unsigned long long) info->swap_successes, + rc); +} + int main(void) { @@ -88,7 +193,9 @@ main(void) static const key_t bogus_key = (key_t) 0xeca86420fdb97531ULL; static const int bogus_id = 0xdefaced1; static const int bogus_cmd = 0xdefaced2; +#if TEST_SHMCTL_BOGUS_ADDR static void * const bogus_addr = (void *) -1L; +#endif static const size_t bogus_size = /* * musl sets size to SIZE_MAX if size argument is greater than @@ -105,7 +212,11 @@ main(void) static const unsigned int huge_flags = 21 << SHM_HUGE_SHIFT; int bogus_flags; int rc; - struct shmid_ds ds; + union { + struct shmid_ds ds; + struct shminfo ipc_info; + struct shm_info shm_info; + } buf; rc = shmget(bogus_key, bogus_size, 0); printf("shmget\\(%#llx, %zu, 000\\) = %s\n", @@ -156,45 +267,38 @@ main(void) printf("shmctl\\(%d, (%s\\|)?%s, NULL\\) = %s\n", bogus_id, str_ipc_64, str_bogus_cmd, sprintrc_grep(rc)); +#if TEST_SHMCTL_BOGUS_ADDR rc = shmctl(bogus_id, IPC_STAT, bogus_addr); printf("shmctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", bogus_id, str_ipc_64, str_ipc_stat, bogus_addr, sprintrc_grep(rc)); +#endif - if (shmctl(id, IPC_STAT, &ds)) + rc = shmctl(id, IPC_STAT, &buf.ds); + if (rc < 0) perror_msg_and_skip("shmctl IPC_STAT"); - printf("shmctl\\(%d, (%s\\|)?%s, \\{shm_perm=\\{uid=%u, gid=%u, " - "mode=%#o, key=%u, cuid=%u, cgid=%u\\}, shm_segsz=%u, shm_cpid=%u, " - "shm_lpid=%u, shm_nattch=%u, shm_atime=%u, shm_dtime=%u, " - "shm_ctime=%u\\}\\) = 0\n", - id, str_ipc_64, str_ipc_stat, - (unsigned) ds.shm_perm.uid, (unsigned) ds.shm_perm.gid, - (unsigned) ds.shm_perm.mode, (unsigned) ds.shm_perm.__key, - (unsigned) ds.shm_perm.cuid, (unsigned) ds.shm_perm.cgid, - (unsigned) ds.shm_segsz, (unsigned) ds.shm_cpid, - (unsigned) ds.shm_lpid, (unsigned) ds.shm_nattch, - (unsigned) ds.shm_atime, (unsigned) ds.shm_dtime, - (unsigned) ds. shm_ctime); - - if (shmctl(id, IPC_SET, &ds)) + print_shmid_ds(str_ipc_stat, &buf.ds, rc); + + if (shmctl(id, IPC_SET, &buf.ds)) perror_msg_and_skip("shmctl IPC_SET"); printf("shmctl\\(%d, (%s\\|)?%s, \\{shm_perm=\\{uid=%u, gid=%u" - ", mode=%#o\\}, ...\\}\\) = 0\n", + ", mode=%#o\\}\\}\\) = 0\n", id, str_ipc_64, str_ipc_set, - (unsigned) ds.shm_perm.uid, (unsigned) ds.shm_perm.gid, - (unsigned) ds.shm_perm.mode); + (unsigned) buf.ds.shm_perm.uid, + (unsigned) buf.ds.shm_perm.gid, + (unsigned) buf.ds.shm_perm.mode); - rc = shmctl(0, SHM_INFO, &ds); - printf("shmctl\\(0, (%s\\|)?%s, %p\\) = %s\n", - str_ipc_64, str_shm_info, &ds, sprintrc_grep(rc)); + rc = shmctl(id, IPC_INFO, &buf.ds); + print_ipc_info(str_ipc_info, &buf.ipc_info, rc); - rc = shmctl(id, SHM_STAT, &ds); - printf("shmctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", - id, str_ipc_64, str_shm_stat, &ds, sprintrc_grep(rc)); + rc = shmctl(id, SHM_INFO, &buf.ds); + print_shm_info(str_shm_info, &buf.shm_info, rc); - rc = shmctl(id, SHM_STAT_ANY, &ds); - printf("shmctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", - id, str_ipc_64, str_shm_stat_any, &ds, sprintrc_grep(rc)); + rc = shmctl(id, SHM_STAT, &buf.ds); + print_shmid_ds(str_shm_stat, &buf.ds, rc); + + rc = shmctl(id, SHM_STAT_ANY, &buf.ds); + print_shmid_ds(str_shm_stat_any, &buf.ds, rc); return 0; } diff --git a/tests-mx32/ipc_shm.gen.test b/tests-mx32/ipc_shm.gen.test index 2e697d3f..72f1571f 100755 --- a/tests-mx32/ipc_shm.gen.test +++ b/tests-mx32/ipc_shm.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_shm +ipc.sh -a29); do not edit. -set -- -a29 +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_shm +ipc.sh -a26); do not edit. +set -- -a26 . "${srcdir=.}/ipc.sh" diff --git a/tests-mx32/kcmp-y--pidns-translation.c b/tests-mx32/kcmp-y--pidns-translation.c new file mode 100644 index 00000000..f54d94cc --- /dev/null +++ b/tests-mx32/kcmp-y--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "kcmp-y.c" diff --git a/tests-mx32/kcmp-y--pidns-translation.gen.test b/tests-mx32/kcmp-y--pidns-translation.gen.test new file mode 100755 index 00000000..61c3ac9c --- /dev/null +++ b/tests-mx32/kcmp-y--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (kcmp-y--pidns-translation test_pidns -a22 -y -e trace=kcmp); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a22 -y -e trace=kcmp diff --git a/tests-mx32/kcmp.c b/tests-mx32/kcmp.c index 4e3433ee..07a446ee 100644 --- a/tests-mx32/kcmp.c +++ b/tests-mx32/kcmp.c @@ -2,16 +2,15 @@ * Check decoding of kcmp syscall. * * Copyright (c) 2016-2017 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" - -#include #include "scno.h" +#include "pidns.h" #ifdef __NR_kcmp @@ -65,7 +64,26 @@ static const char zero_path[] = "/dev/zero"; static void printpidfd(const char *prefix, pid_t pid, unsigned fd) { - printf("%s%d", prefix, fd); + const char *path = NULL; + +# if VERBOSE_FD + if (pid == getpid()) { + switch (fd) + { + case NULL_FD: + path = null_path; + break; + case ZERO_FD: + path = zero_path; + break; + } + } +# endif + + if (path) + printf("%s%d<%s>", prefix, fd, path); + else + printf("%s%d", prefix, fd); } /* @@ -83,7 +101,11 @@ do_kcmp(kernel_ulong_t pid1, kernel_ulong_t pid2, kernel_ulong_t type, rc = syscall(__NR_kcmp, pid1, pid2, type, idx1, idx2); errstr = sprintrc(rc); - printf("kcmp(%d, %d, ", (int) pid1, (int) pid2); + const char *pid_str = pidns_pid2str(PT_TGID); + pidns_print_leader(); + printf("kcmp(%d%s, %d%s, ", + (int) pid1, (int) pid1 == getpid() ? pid_str : "", + (int) pid2, (int) pid2 == getpid() ? pid_str : ""); if (type_str) printf("%s", type_str); @@ -128,6 +150,8 @@ do_kcmp(kernel_ulong_t pid1, kernel_ulong_t pid2, kernel_ulong_t type, int main(void) { + PIDNS_TEST_INIT; + static const kernel_ulong_t bogus_pid1 = (kernel_ulong_t) 0xdeadca75face1057ULL; static const kernel_ulong_t bogus_pid2 = @@ -180,7 +204,7 @@ main(void) /* KCMP_FILE is the only type which has additional args */ do_kcmp(3141592653U, 2718281828U, ARG_STR(KCMP_FILE), bogus_idx1, bogus_idx2); - do_kcmp(-1, -1, ARG_STR(KCMP_FILE), NULL_FD, ZERO_FD); + do_kcmp(getpid(), getpid(), ARG_STR(KCMP_FILE), NULL_FD, ZERO_FD); /* Types without additional args */ do_kcmp(-1, -1, ARG_STR(KCMP_VM), bogus_idx1, bogus_idx2); @@ -199,10 +223,11 @@ main(void) for (i = 0; i < ARRAY_SIZE(slot_data); i++) { memcpy(slot, slot_data + i, sizeof(*slot)); - do_kcmp(getpid(), getppid(), ARG_STR(KCMP_EPOLL_TFD), NULL_FD, + do_kcmp(getpid(), -1, ARG_STR(KCMP_EPOLL_TFD), NULL_FD, (uintptr_t) slot, 1); } + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; diff --git a/tests-mx32/kern_features.c b/tests-mx32/kern_features.c index 4814414d..d4b79a6d 100644 --- a/tests-mx32/kern_features.c +++ b/tests-mx32/kern_features.c @@ -1,7 +1,7 @@ /* * Check decoding of SPARC-specific kern_features syscall. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,7 +9,6 @@ #include "tests.h" -#include #include "raw_syscall.h" #include "scno.h" diff --git a/tests-mx32/kernel_old_timespec.h b/tests-mx32/kernel_old_timespec.h new file mode 100644 index 00000000..fac6d7e5 --- /dev/null +++ b/tests-mx32/kernel_old_timespec.h @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef STRACE_KERNEL_OLD_TIMESPEC_H +# define STRACE_KERNEL_OLD_TIMESPEC_H + +typedef struct { +# if SIZEOF_KERNEL_LONG_T == 4 || defined LINUX_MIPSN32 + int +# else + long long +# endif + tv_sec, tv_nsec; +} kernel_old_timespec_t; + +#endif /* !STRACE_KERNEL_OLD_TIMESPEC_H */ diff --git a/tests-mx32/kernel_old_timex.h b/tests-mx32/kernel_old_timex.h new file mode 100644 index 00000000..2591a1ad --- /dev/null +++ b/tests-mx32/kernel_old_timex.h @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef STRACE_KERNEL_OLD_TIMEX_H +# define STRACE_KERNEL_OLD_TIMEX_H + +# define HAVE_ARCH_TIME32_SYSCALLS 1 +# include "kernel_timex.h" +# undef HAVE_ARCH_TIME32_SYSCALLS + +typedef +# if SIZEOF_KERNEL_LONG_T == 4 || defined LINUX_MIPSN32 +kernel_timex32_t +# elif defined __sparc__ +kernel_sparc64_timex_t +# else +kernel_timex64_t +# endif +kernel_old_timex_t; + +#endif /* !STRACE_KERNEL_OLD_TIMEX_H */ diff --git a/tests-mx32/kernel_version.c b/tests-mx32/kernel_version.c index 6e1c0eac..692f94a1 100644 --- a/tests-mx32/kernel_version.c +++ b/tests-mx32/kernel_version.c @@ -1,7 +1,7 @@ /* * Check kernel version decoding. * - * Copyright (c) 2015-2019 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -15,7 +15,6 @@ #include #include -#include #include "scno.h" #ifdef HAVE_LINUX_BPF_H @@ -35,9 +34,9 @@ static void print_bpf_attr(void) { #if XLAT_RAW - printf("{prog_type=0x16" + printf("{prog_type=0x1f" #else - printf("{prog_type=0x16 /* BPF_PROG_TYPE_??? */" + printf("{prog_type=0x1f /* BPF_PROG_TYPE_??? */" #endif ", insn_cnt=3134983661" ", insns=NULL" @@ -70,7 +69,9 @@ print_bpf_attr(void) ", func_info_cnt=0" ", line_info_rec_size=0" ", line_info=NULL" - ", line_info_cnt=0}"); + ", line_info_cnt=0" + ", attach_btf_id=0" + ", attach_prog_fd=0}"); } int @@ -78,7 +79,7 @@ main(void) { long ret; struct BPF_PROG_LOAD_struct prog = { - .prog_type = 22, + .prog_type = 31, .insn_cnt = 0xbadc0ded, .insns = 0, .license = 0, diff --git a/tests-mx32/kexec_file_load.c b/tests-mx32/kexec_file_load.c index 5e5d91ed..3ab52587 100644 --- a/tests-mx32/kexec_file_load.c +++ b/tests-mx32/kexec_file_load.c @@ -2,14 +2,13 @@ * Check decoding of kexec_file_load syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_kexec_file_load diff --git a/tests-mx32/kexec_load.c b/tests-mx32/kexec_load.c index ae7a72c0..db515143 100644 --- a/tests-mx32/kexec_load.c +++ b/tests-mx32/kexec_load.c @@ -2,7 +2,7 @@ * Check decoding of kexec_load syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_kexec_load diff --git a/tests-mx32/keyctl.c b/tests-mx32/keyctl.c index ccfd3b44..6dc30fb9 100644 --- a/tests-mx32/keyctl.c +++ b/tests-mx32/keyctl.c @@ -2,7 +2,7 @@ * Check decoding of keyctl syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_keyctl @@ -45,7 +45,33 @@ struct keyctl_kdf_params { }; # endif +# ifndef HAVE_STRUCT_KEYCTL_PKEY_QUERY +struct keyctl_pkey_query { + uint32_t supported_ops; + uint32_t key_size; + uint16_t max_data_size; + uint16_t max_sig_size; + uint16_t max_enc_size; + uint16_t max_dec_size; + uint32_t __spare[10]; +}; +# endif + +# ifndef HAVE_STRUCT_KEYCTL_PKEY_PARAMS +struct keyctl_pkey_params { + int32_t key_id; + uint32_t in_len; + union { + uint32_t out_len; + uint32_t in2_len; + }; + uint32_t __spare[7]; +}; +# endif + # include "xlat.h" +# include "xlat/keyctl_caps0.h" +# include "xlat/keyctl_caps1.h" # include "xlat/keyctl_commands.h" # ifndef KEY_SPEC_REQKEY_AUTH_KEY @@ -71,10 +97,13 @@ bool buf_in_arg; # if XLAT_RAW # define XARG_STR(v_) (v_), STRINGIFY(v_) +# define XSTR(v_, s_) STRINGIFY(v_) # elif XLAT_VERBOSE # define XARG_STR(v_) (v_), STRINGIFY(v_) " /* " #v_ " */" +# define XSTR(v_, s_) STRINGIFY(v_) " /* " s_ " */" # else # define XARG_STR ARG_STR +# define XSTR(v_, s_) s_ # endif /* @@ -125,6 +154,21 @@ print_arg(kernel_ulong_t arg, const char *str, const char *fmt, size_t size, } } +void +print_flags(const struct xlat *xlat, unsigned long long flags, + const char *const dflt) +{ +# if XLAT_RAW + printf("%#llx", flags); +# elif XLAT_VERBOSE + printf("%#llx /* ", flags); + printflags(xlat, flags, dflt); + printf(" */"); +# else + printflags(xlat, flags, dflt); +# endif +} + /* * Arguments are passed as sz, val, str, fmt. Arguments are read until 4 * arguments are retrieved or size of 0 is occurred. @@ -268,6 +312,51 @@ kckdfp_to_str(struct keyctl_kdf_params *kdf, bool deref_hash, bool deref_oi, return buf; } +const char * +kcpp_to_str(struct keyctl_pkey_params *params, bool out, const char *key_str, + bool print_spare) +{ + static char buf[4096]; + + size_t left = sizeof(buf); + char *pos = buf; + + append_str(&pos, &left, "{key_id="); + +# if XLAT_RAW + append_str(&pos, &left, "%d", params->key_id); +# elif XLAT_VERBOSE + if (key_str) + append_str(&pos, &left, "%d /* %s */", params->key_id, key_str); + else + append_str(&pos, &left, "%d", params->key_id); +# else + if (key_str) + append_str(&pos, &left, "%s", key_str); + else + append_str(&pos, &left, "%d", params->key_id); +# endif + + append_str(&pos, &left, ", in_len=%u, %s=%u", + params->in_len, + out ? "out_len" : "in2_len", params->out_len); + + if (print_spare) { + append_str(&pos, &left, ", __spare=["); + + for (size_t i = 0; i < ARRAY_SIZE(params->__spare); i++) { + append_str(&pos, &left, "%s%#x", + i ? ", " : "", params->__spare[i]); + } + + append_str(&pos, &left, "]"); + } + + append_str(&pos, &left, "}"); + + return buf; +} + int main(void) { @@ -358,8 +447,10 @@ main(void) char *bogus_buf2 = tail_alloc(256); char *key_iov_str1; char *key_iov_str2 = tail_alloc(4096); + const char *errstr; ssize_t ret; ssize_t kis_size = 0; + long rc; size_t i; key_iov[0].iov_base = short_type; @@ -1092,6 +1183,222 @@ main(void) nul_terminated_buf = true; + /* KEYCTL_PKEY_QUERY */ + do_keyctl(ARG_STR(KEYCTL_PKEY_QUERY), + sizeof(int32_t), bogus_key2, NULL, "%d", + sizeof(kernel_ulong_t), + (kernel_ulong_t) 0xfeedf157badc0dedLLU, NULL, + kulong_fmt, + sizeof(char *), bogus_str, NULL, ptr_fmt, + sizeof(char *), ARG_STR(NULL), ptr_fmt); + + struct keyctl_pkey_query query; + do_keyctl(ARG_STR(KEYCTL_PKEY_QUERY), + sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), "%d", + sizeof(kernel_ulong_t), (kernel_ulong_t) 0, NULL, kulong_fmt, + sizeof(char *), "x\377\0\1", "\"x\\377\"", NULL, + sizeof(&query), &query, NULL, ptr_fmt); + + /* + * KEYCTL_PKEY_ENCRYPT, KEYCTL_PKEY_DECRYPT, KEYCTL_PKEY_SIGN, + * KEYCTL_PKEY_VERIFY + */ + static const struct { + int op; + const char *str; + bool out; + } pkey_ops[] = { + { ARG_STR(KEYCTL_PKEY_ENCRYPT), true }, + { ARG_STR(KEYCTL_PKEY_DECRYPT), true }, + { ARG_STR(KEYCTL_PKEY_SIGN), true }, + { ARG_STR(KEYCTL_PKEY_VERIFY), false }, + }; + static const char pkey_str1[] = STR32 "xxx"; + static const char pkey_str2[] = "\1\2HAI\255\0\1"; + static struct { + struct keyctl_pkey_params params; + const char * key_str; + bool print_spare; + const char *str1; + const char *str2; + } pkey_vecs[] = { + { { KEY_SPEC_PROCESS_KEYRING, 0, { .out_len = 0 } }, + "KEY_SPEC_PROCESS_KEYRING", false, "\"\"", "\"\"" }, + { { 0, 0, { .out_len = 0 }, .__spare = { 1 } }, + NULL, true, "\"\"", "\"\"" }, + { { 0xdeadc0deU, 10, { .out_len = 10 }, + .__spare = { 0, 0xfacefeed } }, + NULL, true, "\"AbCdEfGhIj\"", NULL }, + { { 0xdeadc0deU, sizeof(pkey_str1), + { .out_len = sizeof(pkey_str2) - 1 }, + .__spare = { [6] = 0xdec0ded } }, + NULL, true, + "\"AbCdEfGhIj\"...", "\"\\1\\2HAI\\255\\0\\1\"" }, + }; + + char *pkey1 = tail_memdup(pkey_str1, sizeof(pkey_str1) - 1); + char *pkey2 = tail_memdup(pkey_str2, sizeof(pkey_str2) - 1); + struct keyctl_pkey_params *pkey_params = + tail_alloc(sizeof(*pkey_params)); + + for (i = 0; i < ARRAY_SIZE(pkey_ops); i++) { + do_keyctl(pkey_ops[i].op, pkey_ops[i].str, + sizeof(char *), ARG_STR(NULL), ptr_fmt, + sizeof(char *), ARG_STR(NULL), ptr_fmt, + sizeof(char *), ARG_STR(NULL), ptr_fmt, + sizeof(char *), ARG_STR(NULL), ptr_fmt); + + do_keyctl(pkey_ops[i].op, pkey_ops[i].str, + sizeof(char *), (uint32_t *) pkey_params + 1, NULL, + ptr_fmt, + sizeof(char *), "x\377\0\1", "\"x\\377\"", ptr_fmt, + sizeof(char *), pkey1, NULL, ptr_fmt, + sizeof(char *), pkey2, NULL, ptr_fmt); + + for (size_t j = 0; j < ARRAY_SIZE(pkey_vecs); j++) { + memcpy(pkey_params, &pkey_vecs[j].params, + sizeof(*pkey_params)); + do_keyctl(pkey_ops[i].op, pkey_ops[i].str, + sizeof(char *), pkey_params, + kcpp_to_str(pkey_params, + pkey_ops[i].out, + pkey_vecs[j].key_str, + pkey_vecs[j].print_spare), + ptr_fmt, + sizeof(char *), "", "\"\"", ptr_fmt, + sizeof(char *), pkey1, pkey_vecs[j].str1, + ptr_fmt, + sizeof(char *), pkey2, + pkey_ops[i].out ? NULL + : pkey_vecs[j].str2, + ptr_fmt); + } + } + + /* KEYCTL_MOVE */ + static const struct { + kernel_ulong_t key; + const char *str; + } move_keys[] = { + { 0xbadc0ded, "-1159983635" }, + { XARG_STR(KEY_SPEC_THREAD_KEYRING) }, + }; + static const struct { + kernel_ulong_t val; + const char *str; + } move_flags[] = { + { (kernel_ulong_t) 0xbadc0ded00000000ULL, "0" }, + { 1, XSTR(0x1, "KEYCTL_MOVE_EXCL") }, + { (kernel_ulong_t) 0xbadc0ded00000001ULL, + XSTR(0x1, "KEYCTL_MOVE_EXCL") }, + { (kernel_ulong_t) 0xfffffffffffffffeULL, +# if !XLAT_RAW + "0xfffffffe /* KEYCTL_MOVE_??? */" +# else + "0xfffffffe" +# endif + }, + { (kernel_ulong_t) 0xffffffffffffffffULL, + XSTR(0xffffffff, "KEYCTL_MOVE_EXCL|0xfffffffe") }, + }; + + for (i = 0; i < ARRAY_SIZE(move_keys) * ARRAY_SIZE(move_flags); i++) { + do_keyctl(ARG_STR(KEYCTL_MOVE), + sizeof(kernel_ulong_t), + move_keys[i % ARRAY_SIZE(move_keys)].key, + move_keys[i % ARRAY_SIZE(move_keys)].str, + kulong_fmt, + sizeof(kernel_ulong_t), + move_keys[(i + 1) % ARRAY_SIZE(move_keys)].key, + move_keys[(i + 1) % ARRAY_SIZE(move_keys)].str, + kulong_fmt, + sizeof(kernel_ulong_t), + move_keys[(i + 2) % ARRAY_SIZE(move_keys)].key, + move_keys[(i + 2) % ARRAY_SIZE(move_keys)].str, + kulong_fmt, + sizeof(kernel_ulong_t), + move_flags[i % ARRAY_SIZE(move_flags)].val, + move_flags[i % ARRAY_SIZE(move_flags)].str, + kulong_fmt); + } + + /* KEYCTL_CAPABILITIES */ + unsigned char *caps1 = tail_alloc(1); + unsigned char *caps2 = tail_alloc(2); + unsigned char *caps4 = tail_alloc(4); + + do_keyctl(ARG_STR(KEYCTL_CAPABILITIES), + sizeof(unsigned char *), ARG_STR(NULL), ptr_fmt, + sizeof(kernel_ulong_t), + (kernel_ulong_t) 0xfeedf157badc0dedLLU, NULL, + ksize_fmt, + 0); + + const kernel_ulong_t bad_len = (kernel_ulong_t) 0xbadc0ded00000001LLU; + rc = syscall(__NR_keyctl, KEYCTL_CAPABILITIES, caps1, bad_len); + errstr = sprintrc(rc); + printf("keyctl(" XSTR(0x1f, "KEYCTL_CAPABILITIES") ", "); + if (rc >= 0) { + printf("["); + if (rc >= 1) + print_flags(keyctl_caps0, caps1[0], "KEYCTL_CAPS0_???"); + printf("]"); + } else { + printf("%p", caps1); + } + printf(", %llu) = %s\n", (unsigned long long) bad_len, errstr); + + rc = syscall(__NR_keyctl, KEYCTL_CAPABILITIES, caps1, 2); + errstr = sprintrc(rc); + printf("keyctl(" XSTR(0x1f, "KEYCTL_CAPABILITIES") ", "); + if (rc >= 0) { + printf("["); + if (rc == 1) + print_flags(keyctl_caps0, caps1[0], "KEYCTL_CAPS0_???"); + printf("]"); + } else { + printf("%p", caps1); + } + printf(", 2) = %s\n", errstr); + + rc = syscall(__NR_keyctl, KEYCTL_CAPABILITIES, caps2, 2); + errstr = sprintrc(rc); + printf("keyctl(" XSTR(0x1f, "KEYCTL_CAPABILITIES") ", "); + if (rc >= 0) { + printf("["); + if (rc >= 1) + print_flags(keyctl_caps0, caps2[0], "KEYCTL_CAPS0_???"); + if (rc >= 2) { + printf(", "); + print_flags(keyctl_caps1, caps2[1], "KEYCTL_CAPS1_???"); + } + printf("]"); + } else { + printf("%p", caps2); + } + printf(", 2) = %s\n", errstr); + + rc = syscall(__NR_keyctl, KEYCTL_CAPABILITIES, caps4, 4); + errstr = sprintrc(rc); + printf("keyctl(" XSTR(0x1f, "KEYCTL_CAPABILITIES") ", "); + if (rc >= 0) { + printf("["); + if (rc >= 1) + print_flags(keyctl_caps0, caps4[0], "KEYCTL_CAPS0_???"); + if (rc >= 2) { + printf(", "); + print_flags(keyctl_caps1, caps4[1], "KEYCTL_CAPS1_???"); + } + if (rc >= 3) + printf(", %hhx", caps4[2]); + if (rc >= 4) + printf(", %hhx", caps4[3]); + printf("]"); + } else { + printf("%p", caps4); + } + printf(", 4) = %s\n", errstr); + puts("+++ exited with 0 +++"); return 0; diff --git a/tests-mx32/kill--pidns-translation.c b/tests-mx32/kill--pidns-translation.c new file mode 100644 index 00000000..4736ca14 --- /dev/null +++ b/tests-mx32/kill--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "kill.c" diff --git a/tests-mx32/kill--pidns-translation.gen.test b/tests-mx32/kill--pidns-translation.gen.test new file mode 100755 index 00000000..4e909e99 --- /dev/null +++ b/tests-mx32/kill--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (kill--pidns-translation test_pidns -a12 -e trace=kill -esignal=none); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a12 -e trace=kill -esignal=none diff --git a/tests-mx32/kill.c b/tests-mx32/kill.c index 4ef9b628..653e945c 100644 --- a/tests-mx32/kill.c +++ b/tests-mx32/kill.c @@ -3,14 +3,15 @@ * * Copyright (c) 2015-2016 Dmitry V. Levin * Copyright (c) 2016 Fei Jie - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #ifdef __NR_kill @@ -26,6 +27,8 @@ handler(int sig) int main(void) { + PIDNS_TEST_INIT; + const struct sigaction act = { .sa_handler = handler }; if (sigaction(SIGALRM, &act, NULL)) perror_msg_and_fail("sigaction"); @@ -37,18 +40,23 @@ main(void) perror_msg_and_fail("sigprocmask"); const int pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); long rc = syscall(__NR_kill, pid, (long) 0xdefaced00000000ULL | SIGALRM); - printf("kill(%d, SIGALRM) = %ld\n", pid, rc); + pidns_print_leader(); + printf("kill(%d%s, SIGALRM) = %ld\n", pid, pid_str, rc); const long big_pid = (long) 0xfacefeedbadc0dedULL; const long big_sig = (long) 0xdeadbeefcafef00dULL; rc = syscall(__NR_kill, big_pid, big_sig); + pidns_print_leader(); printf("kill(%d, %d) = %ld %s (%m)\n", (int) big_pid, (int) big_sig, rc, errno2name()); rc = syscall(__NR_kill, (long) 0xdefaced00000000ULL | pid, 0); - printf("kill(%d, 0) = %ld\n", pid, rc); + pidns_print_leader(); + printf("kill(%d%s, 0) = %ld\n", pid, pid_str, rc); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-mx32/ksysent.c b/tests-mx32/ksysent.c index 4319bdb2..0716db70 100644 --- a/tests-mx32/ksysent.c +++ b/tests-mx32/ksysent.c @@ -2,7 +2,7 @@ * Validate syscallent.h file. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,7 +12,7 @@ #include "sysent.h" #include #include -#include +#include "scno.h" #include "sysent_shorthand_defs.h" diff --git a/tests-mx32/ksysent.gen.test b/tests-mx32/ksysent.gen.test new file mode 100755 index 00000000..c63ea44b --- /dev/null +++ b/tests-mx32/ksysent.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ksysent ../$NAME ); do not edit. +. "${srcdir=.}/init.sh" +../$NAME diff --git a/tests-mx32/ksysent.sed b/tests-mx32/ksysent.sed index c35ba22f..92069e75 100644 --- a/tests-mx32/ksysent.sed +++ b/tests-mx32/ksysent.sed @@ -1,6 +1,6 @@ #!/bin/sed -rnf # -# Copyright (c) 2015-2018 The strace developers. +# Copyright (c) 2015-2019 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -8,6 +8,9 @@ # should not have been exported at all /#define[[:space:]]+__NR_(sys_epoll_|arch_specific_syscall|arm_sync_file_range|syscalls|syscall_count|syscall_max|available|reserved|unused)/d +# remove new aliases to traditional names on alpha +/#define[[:space:]]+__NR_get[gup]id[[:space:]]+__NR_getx[gup]id$/d + # should not have been named this way s/__NR_(arm|xtensa)_fadvise64_64/__NR_fadvise64_64/ @@ -17,4 +20,12 @@ s/__NR_madvise1/__NR_madvise/ s/__NR_paccept/__NR_accept4/ # generate + +# prioritize __NR_umount over __NR_umount2 +s/#define[[:space:]]+__NR_(umount)2([[:space:]].*)?$/#if defined __NR_\12 \&\& (!defined __NR_\1 || __NR_\1 != __NR_\12)\n[__NR_\12 \& 0xffff] = "\12",\n#endif/p + +# prioritize __NR_osf_shmat over __NR_shmat +s/#define[[:space:]]+__NR_(shmat)([[:space:]].*)?$/#if defined __NR_\1 \&\& (!defined __NR_osf_\1 || __NR_osf_\1 != __NR_\1)\n[__NR_\1 \& 0xffff] = "\1",\n#endif/p + +# generic s/#define[[:space:]]+__NR_([a-z_][^[:space:]]+)([[:space:]].*)?$/#ifdef __NR_\1\n[__NR_\1 \& 0xffff] = "\1",\n#endif/p diff --git a/tests-mx32/ksysent.test b/tests-mx32/ksysent.test deleted file mode 100755 index 347ed675..00000000 --- a/tests-mx32/ksysent.test +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -# -# Copyright (c) 2015-2018 The strace developers. -# All rights reserved. -# -# SPDX-License-Identifier: GPL-2.0-or-later - -# Validate syscallent.h - -./ksysent diff --git a/tests-mx32/lchown.c b/tests-mx32/lchown.c index c9008219..b8d40945 100644 --- a/tests-mx32/lchown.c +++ b/tests-mx32/lchown.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_lchown diff --git a/tests-mx32/lchown32.c b/tests-mx32/lchown32.c index 1a505e1f..c2542a82 100644 --- a/tests-mx32/lchown32.c +++ b/tests-mx32/lchown32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_lchown32 diff --git a/tests-mx32/libmmsg.c b/tests-mx32/libmmsg.c index 0f23597d..4dbe4edf 100644 --- a/tests-mx32/libmmsg.c +++ b/tests-mx32/libmmsg.c @@ -2,6 +2,7 @@ * Wrappers for recvmmsg and sendmmsg syscalls. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,7 +10,7 @@ #include "tests.h" #include -#include +#include "scno.h" #ifndef __NR_recvmmsg # define __NR_recvmmsg -1 diff --git a/tests-mx32/libsocketcall.c b/tests-mx32/libsocketcall.c index 34f65478..6692d4b0 100644 --- a/tests-mx32/libsocketcall.c +++ b/tests-mx32/libsocketcall.c @@ -2,6 +2,7 @@ * Invoke a socket syscall, either directly or via __NR_socketcall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +11,7 @@ #include "tests.h" #include #include -#include +#include "scno.h" /* * Invoke a socket syscall, either directly or via __NR_socketcall. diff --git a/tests-mx32/link.c b/tests-mx32/link.c index 357eb0be..468086fe 100644 --- a/tests-mx32/link.c +++ b/tests-mx32/link.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_link diff --git a/tests-mx32/linkat.c b/tests-mx32/linkat.c index 748ddf18..7e348f12 100644 --- a/tests-mx32/linkat.c +++ b/tests-mx32/linkat.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_linkat @@ -30,7 +30,7 @@ main(void) printf("linkat(%s, \"%s\", %s, \"%s\", %s) = %ld %s (%m)\n", "AT_FDCWD", sample_1, "AT_FDCWD", sample_2, "AT_SYMLINK_NOFOLLOW|AT_REMOVEDIR|AT_SYMLINK_FOLLOW" - "|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|0xffffe0ff", + "|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|AT_RECURSIVE|0xffff60ff", rc, errno2name()); puts("+++ exited with 0 +++"); diff --git a/tests-mx32/llseek.c b/tests-mx32/llseek.c index 169fa913..55e63363 100644 --- a/tests-mx32/llseek.c +++ b/tests-mx32/llseek.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR__llseek diff --git a/tests-mx32/localtime.c b/tests-mx32/localtime.c index 652d3e6a..42e39c55 100644 --- a/tests-mx32/localtime.c +++ b/tests-mx32/localtime.c @@ -1,7 +1,7 @@ /* * Check handling of localtime() returning NULL in printleader(). * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -14,7 +14,7 @@ #include #include -#include +#include "scno.h" int main(void) diff --git a/tests-mx32/lock_file.c b/tests-mx32/lock_file.c new file mode 100644 index 00000000..56cf112d --- /dev/null +++ b/tests-mx32/lock_file.c @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#include +#include +#include +#include +#include +#include + +/* Obtain an exclusive lock on dirname(path_name)/lock_name file. */ +int +lock_file_by_dirname(const char *path_name, const char *lock_name) +{ + const char *slash = path_name ? strrchr(path_name, '/') : NULL; + const int plen = slash ? (int) (slash - path_name) + 1 : 0; + + char *lock_file = NULL; + if (asprintf(&lock_file, "%.*s%s", plen, path_name, lock_name) < 0) + perror_msg_and_fail("asprintf"); + + int lock_fd = open(lock_file, O_RDONLY); + if (lock_fd < 0) + perror_msg_and_fail("open: %s", lock_file); + + if (flock(lock_fd, LOCK_EX)) + perror_msg_and_fail("flock: %s", lock_file); + + free(lock_file); + + return lock_fd; +} diff --git a/tests-mx32/lookup_dcookie.c b/tests-mx32/lookup_dcookie.c index 430ae135..9617a4ca 100644 --- a/tests-mx32/lookup_dcookie.c +++ b/tests-mx32/lookup_dcookie.c @@ -2,7 +2,7 @@ * Check decoding of lookup_dcookie syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_lookup_dcookie diff --git a/tests-mx32/looping_threads.test b/tests-mx32/looping_threads.test index e8b0bbb5..3e5d3ba9 100755 --- a/tests-mx32/looping_threads.test +++ b/tests-mx32/looping_threads.test @@ -2,7 +2,7 @@ # # Check tracing of looping threads. # -# Copyright (c) 2009-2019 The strace developers. +# Copyright (c) 2009-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -20,16 +20,16 @@ inc="$(nproc)" [ "$inc" -ge 1 ] || inc=1 timeout_2="$(($TIMEOUT_DURATION/2))" -timeout_8="$(($TIMEOUT_DURATION/8))" +timeout_16="$(($TIMEOUT_DURATION/16))" nproc=1 -run_prog "../$NAME" "$timeout_8" "$nproc" +run_prog "../$NAME" "$timeout_16" "$nproc" while :; do - run_strace -f -qq -enone -esignal=none "../$NAME" "$timeout_2" "$nproc" + run_strace --follow-forks -qq -enone -esignal=none "../$NAME" "$timeout_2" "$nproc" s1="$(date +%s)" - [ "$(($s1-$s0))" -lt "$timeout_8" ] || + [ "$(($s1-$s0))" -lt "$timeout_16" ] || break nproc="$(($nproc+$inc))" diff --git a/tests-mx32/lseek.c b/tests-mx32/lseek.c index 0e12bf9c..f0d842d1 100644 --- a/tests-mx32/lseek.c +++ b/tests-mx32/lseek.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_lseek diff --git a/tests-mx32/lstat.c b/tests-mx32/lstat.c index 1a200fe7..61c5cb53 100644 --- a/tests-mx32/lstat.c +++ b/tests-mx32/lstat.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_lstat diff --git a/tests-mx32/lstat.gen.test b/tests-mx32/lstat.gen.test index 7231c491..71155b69 100755 --- a/tests-mx32/lstat.gen.test +++ b/tests-mx32/lstat.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (lstat -a32 -v -P stat.sample -P /dev/full); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (lstat -a31 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a32 -v -P stat.sample -P /dev/full +run_strace_match_diff -a31 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full diff --git a/tests-mx32/lstat64.c b/tests-mx32/lstat64.c index 0c0cf879..de5a2651 100644 --- a/tests-mx32/lstat64.c +++ b/tests-mx32/lstat64.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_lstat64 diff --git a/tests-mx32/lstat64.gen.test b/tests-mx32/lstat64.gen.test index 124cce4b..4584f9d8 100755 --- a/tests-mx32/lstat64.gen.test +++ b/tests-mx32/lstat64.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (lstat64 -a32 -v -P stat.sample -P /dev/full); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (lstat64 -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a32 -v -P stat.sample -P /dev/full +run_strace_match_diff -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full diff --git a/tests-mx32/madvise.c b/tests-mx32/madvise.c index 33a7abbe..51118c6a 100644 --- a/tests-mx32/madvise.c +++ b/tests-mx32/madvise.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include #include #include -#include +#include "scno.h" static const char *errstr; diff --git a/tests-mx32/maybe_switch_current_tcp--quiet-thread-execve.c b/tests-mx32/maybe_switch_current_tcp--quiet-thread-execve.c new file mode 100644 index 00000000..b5c0a503 --- /dev/null +++ b/tests-mx32/maybe_switch_current_tcp--quiet-thread-execve.c @@ -0,0 +1,2 @@ +#define QUIET_MSG 1 +#include "maybe_switch_current_tcp.c" diff --git a/tests-mx32/maybe_switch_current_tcp--quiet-thread-execve.gen.test b/tests-mx32/maybe_switch_current_tcp--quiet-thread-execve.gen.test new file mode 100755 index 00000000..43327dbb --- /dev/null +++ b/tests-mx32/maybe_switch_current_tcp--quiet-thread-execve.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (maybe_switch_current_tcp--quiet-thread-execve -a30 -s48 -f -e trace=execveat --quiet=personality,thread-execve); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a30 -s48 -f -e trace=execveat --quiet=personality,thread-execve diff --git a/tests-mx32/maybe_switch_current_tcp.c b/tests-mx32/maybe_switch_current_tcp.c new file mode 100644 index 00000000..7ba1b9b9 --- /dev/null +++ b/tests-mx32/maybe_switch_current_tcp.c @@ -0,0 +1,83 @@ +/* + * Check for PTRACE_EVENT_EXEC diagnostics. + * + * Copyright (c) 2019 Dmitry V. Levin + * Copyright (c) 2019-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include +#include +#include +#include "scno.h" + +#ifndef QUIET_MSG +# define QUIET_MSG 0 +#endif + +static pid_t leader; +static volatile unsigned int trigger; + +static void * +thread(void *arg) +{ + const char *argv[] = {((char **) arg)[0], "1", "2", NULL}; + int tid = syscall(__NR_gettid); + + printf("%-5d execveat(AT_FDCWD, \"%s\", [\"%s\", \"%s\", \"%s\"]" + ", NULL, 0 \n" +#if !QUIET_MSG + "%-5d +++ superseded by execve in pid %d +++\n" +#endif + , tid, argv[0], argv[0], argv[1], argv[2], leader +#if !QUIET_MSG + , leader, tid +#endif + ); + + while (!trigger) { + /* Wait for the parent to enter the busy loop. */ + } + + syscall(__NR_execveat, -100, argv[0], argv, NULL, 0); + perror_msg_and_fail("execveat"); +} + +int +main(int ac, char **av) +{ + setvbuf(stdout, NULL, _IONBF, 0); + leader = getpid(); + + if (ac <= 1) { + char *argv[] = {av[0], (char *) "1", NULL}; + printf("%-5d execveat(AT_FDCWD, \"%s\"" + ", [\"%s\", \"%s\"], NULL, 0) = 0\n", + leader, argv[0], argv[0], argv[1]); + syscall(__NR_execveat, -100, argv[0], argv, NULL, 0); + perror_msg_and_skip("execveat"); + } + + /* + * Since execveat is supported by the kernel, + * PTRACE_EVENT_EXEC support in the kernel is good enough. + */ + if (ac <= 2) { + pthread_t t; + errno = pthread_create(&t, NULL, thread, av); + if (errno) + perror_msg_and_fail("pthread_create"); + + for (;;) + ++trigger; + } + + printf("%-5d <... execveat resumed>) = 0\n" + "%-5d +++ exited with 0 +++\n", + leader, leader); + return 0; +} diff --git a/tests-mx32/maybe_switch_current_tcp.gen.test b/tests-mx32/maybe_switch_current_tcp.gen.test new file mode 100755 index 00000000..ebd50ec2 --- /dev/null +++ b/tests-mx32/maybe_switch_current_tcp.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (maybe_switch_current_tcp -a30 -f -e trace=execveat); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a30 -f -e trace=execveat diff --git a/tests-mx32/mbind-Xabbrev.c b/tests-mx32/mbind-Xabbrev.c new file mode 100644 index 00000000..a318b5d2 --- /dev/null +++ b/tests-mx32/mbind-Xabbrev.c @@ -0,0 +1 @@ +#include "mbind.c" diff --git a/tests-mx32/mbind-Xabbrev.gen.test b/tests-mx32/mbind-Xabbrev.gen.test new file mode 100755 index 00000000..3ecf1831 --- /dev/null +++ b/tests-mx32/mbind-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mbind-Xabbrev -Xabbrev -e trace=mbind); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -Xabbrev -e trace=mbind diff --git a/tests-mx32/mbind-Xraw.c b/tests-mx32/mbind-Xraw.c new file mode 100644 index 00000000..86f9608b --- /dev/null +++ b/tests-mx32/mbind-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "mbind.c" diff --git a/tests-mx32/mbind-Xraw.gen.test b/tests-mx32/mbind-Xraw.gen.test new file mode 100755 index 00000000..b66b4812 --- /dev/null +++ b/tests-mx32/mbind-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mbind-Xraw -a33 -Xraw -e trace=mbind); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a33 -Xraw -e trace=mbind diff --git a/tests-mx32/mbind-Xverbose.c b/tests-mx32/mbind-Xverbose.c new file mode 100644 index 00000000..29285cc0 --- /dev/null +++ b/tests-mx32/mbind-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "mbind.c" diff --git a/tests-mx32/mbind-Xverbose.gen.test b/tests-mx32/mbind-Xverbose.gen.test new file mode 100755 index 00000000..20ebed6d --- /dev/null +++ b/tests-mx32/mbind-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mbind-Xverbose -Xverbose -e trace=mbind); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -Xverbose -e trace=mbind diff --git a/tests-mx32/mbind.c b/tests-mx32/mbind.c index 8e478a6f..321defb9 100644 --- a/tests-mx32/mbind.c +++ b/tests-mx32/mbind.c @@ -1,34 +1,139 @@ /* * Check decoding of mbind syscall. * - * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 Dmitry V. Levin * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_mbind # include # include +static const char *errstr; + +static long +k_mbind(const unsigned long start, + const unsigned long len, + const unsigned long mode, + const unsigned long nmask, + const unsigned long maxnode, + const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t arg1 = start; + const kernel_ulong_t arg2 = len; + const kernel_ulong_t arg3 = mode; + const kernel_ulong_t arg4 = nmask; + const kernel_ulong_t arg5 = maxnode; + const kernel_ulong_t arg6 = fill | flags; + const long rc = syscall(__NR_mbind, arg1, arg2, arg3, arg4, arg5, arg6); + errstr = sprintrc(rc); + return rc; +} + +# if XLAT_RAW +# define out_str raw +# define flags_str "0xffffffff" +# elif XLAT_VERBOSE +# define out_str verbose +# define flags_str "0xffffffff /* MPOL_MF_STRICT|MPOL_MF_MOVE" \ + "|MPOL_MF_MOVE_ALL|0xfffffff8 */" +# else +# define out_str abbrev +# define flags_str "MPOL_MF_STRICT|MPOL_MF_MOVE|MPOL_MF_MOVE_ALL|0xfffffff8" +# endif + +static struct { + unsigned long val; + const char *raw; + const char *verbose; + const char *abbrev; +} mpol_modes[] = { + { ARG_STR(0), + "0 /* MPOL_DEFAULT */", + "MPOL_DEFAULT" }, + { ARG_STR(0x1), + "0x1 /* MPOL_PREFERRED */", + "MPOL_PREFERRED" }, + { ARG_STR(0x2), + "0x2 /* MPOL_BIND */", + "MPOL_BIND" }, + { ARG_STR(0x3), + "0x3 /* MPOL_INTERLEAVE */", + "MPOL_INTERLEAVE" }, + { ARG_STR(0x4), + "0x4 /* MPOL_LOCAL */", + "MPOL_LOCAL" }, + { ARG_STR(0x8000), + "0x8000 /* MPOL_DEFAULT|MPOL_F_STATIC_NODES */", + "MPOL_DEFAULT|MPOL_F_STATIC_NODES" }, + { ARG_STR(0x4001), + "0x4001 /* MPOL_PREFERRED|MPOL_F_RELATIVE_NODES */", + "MPOL_PREFERRED|MPOL_F_RELATIVE_NODES" }, + { ARG_STR(0xc002), + "0xc002 /* MPOL_BIND|MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES */", + "MPOL_BIND|MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES" }, + { ARG_STR(0x5), + "0x5 /* MPOL_??? */", + "0x5 /* MPOL_??? */" }, + { ARG_STR(0xffff3fff), + "0xffff3fff /* MPOL_??? */", + "0xffff3fff /* MPOL_??? */" }, + { ARG_STR(0xffffffff), + "0xffffffff /* MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES|0xffff3fff */", + "MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES|0xffff3fff" }, +# if SIZEOF_LONG > 4 + { 0xffffffff00000000UL, + "0xffffffff00000000", + "0xffffffff00000000 /* MPOL_??? */", + "0xffffffff00000000 /* MPOL_??? */" }, + { 0xffffffffffff3fffUL, + "0xffffffffffff3fff", + "0xffffffffffff3fff /* MPOL_??? */", + "0xffffffffffff3fff /* MPOL_??? */" }, + { -1UL, + "0xffffffffffffffff", + "0xffffffffffffffff /* MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES" + "|0xffffffffffff3fff */", + "MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES|0xffffffffffff3fff" }, +# endif +}; + int main(void) { - const unsigned long len = (unsigned long) 0xcafef00dbadc0dedULL; - const unsigned long mode = 3; - const unsigned long nodemask = (unsigned long) 0xfacefeedfffffff1ULL; - const unsigned long maxnode = (unsigned long) 0xdeadbeeffffffff2ULL; - const unsigned long flags = -1UL; - - long rc = syscall(__NR_mbind, 0, len, mode, nodemask, maxnode, flags); - printf("mbind(NULL, %lu, %s, %#lx, %lu, %s|%#x) = %ld %s (%m)\n", - len, "MPOL_INTERLEAVE", nodemask, maxnode, - "MPOL_MF_STRICT|MPOL_MF_MOVE|MPOL_MF_MOVE_ALL", - (unsigned) flags & ~7, rc, errno2name()); + const unsigned long size = get_page_size(); + unsigned long *const addr = tail_alloc(size); + const unsigned long start = (unsigned long) 0xfffffff1fffffff2ULL; + const unsigned long len = (unsigned long) 0xfffffff4fffffff4ULL; + const unsigned long nodemask = (unsigned long) 0xfffffff5fffffff6ULL; + const unsigned long maxnode = (unsigned long) 0xfffffff7fffffff8ULL; + + if (k_mbind((unsigned long) addr, size, mpol_modes[0].val, 0, 0, 0)) + perror_msg_and_skip("mbind"); + printf("mbind(%p, %lu, %s, NULL, 0, 0) = 0\n", + addr, size, mpol_modes[0].out_str); + + for (unsigned int i = 0; i < ARRAY_SIZE(mpol_modes); ++i) { + if (i) { + k_mbind((unsigned long) addr, size, mpol_modes[i].val, + 0, 0, 0); + printf("mbind(%p, %lu, %s, NULL, 0, 0) = %s\n", + addr, size, mpol_modes[i].out_str, errstr); + } + + k_mbind(start, len, mpol_modes[i].val, + nodemask, maxnode, -1U); + printf("mbind(%#lx, %lu, %s, %#lx, %lu, %s) = %s\n", + start, len, mpol_modes[i].out_str, + nodemask, maxnode, flags_str, errstr); + } puts("+++ exited with 0 +++"); return 0; diff --git a/tests-mx32/membarrier.c b/tests-mx32/membarrier.c index 0e55497b..bdacf7f3 100644 --- a/tests-mx32/membarrier.c +++ b/tests-mx32/membarrier.c @@ -1,13 +1,12 @@ /* * Copyright (c) 2015-2017 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_membarrier diff --git a/tests-mx32/memfd_create.c b/tests-mx32/memfd_create.c index 2658a1ba..06e017ef 100644 --- a/tests-mx32/memfd_create.c +++ b/tests-mx32/memfd_create.c @@ -2,13 +2,13 @@ * Check decoding of memfd_create syscall. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_memfd_create diff --git a/tests-mx32/migrate_pages--pidns-translation.c b/tests-mx32/migrate_pages--pidns-translation.c new file mode 100644 index 00000000..ec34938d --- /dev/null +++ b/tests-mx32/migrate_pages--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "migrate_pages.c" diff --git a/tests-mx32/migrate_pages--pidns-translation.gen.test b/tests-mx32/migrate_pages--pidns-translation.gen.test new file mode 100755 index 00000000..c6b5b3a0 --- /dev/null +++ b/tests-mx32/migrate_pages--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (migrate_pages--pidns-translation test_pidns -a33 -e trace=migrate_pages); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a33 -e trace=migrate_pages diff --git a/tests-mx32/migrate_pages.c b/tests-mx32/migrate_pages.c index e8e66ece..34da2808 100644 --- a/tests-mx32/migrate_pages.c +++ b/tests-mx32/migrate_pages.c @@ -2,13 +2,15 @@ * Check decoding of migrate_pages syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #ifdef __NR_migrate_pages @@ -18,11 +20,21 @@ int main(void) { - const long pid = (long) 0xfacefeedffffffffULL; + PIDNS_TEST_INIT; + + const long pid = (long) 0xfacefeed00000000ULL | getpid(); long rc = syscall(__NR_migrate_pages, pid, 0, 0, 0); - printf("migrate_pages(%d, 0, NULL, NULL) = %ld %s (%m)\n", - (int) pid, rc, errno2name()); + pidns_print_leader(); + printf("migrate_pages(%d%s, 0, NULL, NULL) = %ld", + (int) pid, pidns_pid2str(PT_TGID), rc); + + if (rc < 0) + printf(" %s (%m)\n", errno2name()); + else + printf("\n"); + + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-mx32/mkdir.c b/tests-mx32/mkdir.c index e6e62ef6..9faee7eb 100644 --- a/tests-mx32/mkdir.c +++ b/tests-mx32/mkdir.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_mkdir diff --git a/tests-mx32/mkdirat.c b/tests-mx32/mkdirat.c index 91bf06be..1b5a68f7 100644 --- a/tests-mx32/mkdirat.c +++ b/tests-mx32/mkdirat.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_mkdirat diff --git a/tests-mx32/mknod.c b/tests-mx32/mknod.c index 94d80284..e4d0e5fc 100644 --- a/tests-mx32/mknod.c +++ b/tests-mx32/mknod.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_mknod @@ -31,44 +31,44 @@ main(int ac, char **av) sample = av[0]; long rc = call_mknod(0, dev); - printf("mknod(\"%s\", 000) = %ld %s (%m)\n", - sample, rc, errno2name()); + printf("mknod(\"%s\", 000) = %s\n", + sample, sprintrc(rc)); rc = call_mknod(0xffff, dev); - printf("mknod(\"%s\", %#03ho) = %ld %s (%m)\n", - sample, (unsigned short) -1, rc, errno2name()); + printf("mknod(\"%s\", %#03ho) = %s\n", + sample, (unsigned short) -1, sprintrc(rc)); rc = call_mknod(S_IFREG, 0); - printf("mknod(\"%s\", S_IFREG|000) = %ld %s (%m)\n", - sample, rc, errno2name()); + printf("mknod(\"%s\", S_IFREG|000) = %s\n", + sample, sprintrc(rc)); rc = call_mknod(S_IFDIR | 06, 0); - printf("mknod(\"%s\", S_IFDIR|006) = %ld %s (%m)\n", - sample, rc, errno2name()); + printf("mknod(\"%s\", S_IFDIR|006) = %s\n", + sample, sprintrc(rc)); rc = call_mknod(S_IFLNK | 060, 0); - printf("mknod(\"%s\", S_IFLNK|060) = %ld %s (%m)\n", - sample, rc, errno2name()); + printf("mknod(\"%s\", S_IFLNK|060) = %s\n", + sample, sprintrc(rc)); rc = call_mknod(S_IFIFO | 0600, 0); - printf("mknod(\"%s\", S_IFIFO|0600) = %ld %s (%m)\n", - sample, rc, errno2name()); + printf("mknod(\"%s\", S_IFIFO|0600) = %s\n", + sample, sprintrc(rc)); dev = (unsigned long) 0xdeadbeef00000000ULL | makedev(1, 7); rc = call_mknod(S_IFCHR | 024, dev); - printf("mknod(\"%s\", S_IFCHR|024, makedev(0x1, 0x7)) = %ld %s (%m)\n", - sample, rc, errno2name()); + printf("mknod(\"%s\", S_IFCHR|024, makedev(0x1, 0x7)) = %s\n", + sample, sprintrc(rc)); const unsigned short mode = (0xffff & ~S_IFMT) | S_IFBLK; dev = (unsigned long) 0xdeadbeefbadc0dedULL; rc = call_mknod(mode, dev); printf("mknod(\"%s\", S_IFBLK|S_ISUID|S_ISGID|S_ISVTX|%#03ho" - ", makedev(%#x, %#x)) = %ld %s (%m)\n", + ", makedev(%#x, %#x)) = %s\n", sample, (short) (mode & ~(S_IFMT|S_ISUID|S_ISGID|S_ISVTX)), major((unsigned) dev), minor((unsigned) dev), - rc, errno2name()); + sprintrc(rc)); puts("+++ exited with 0 +++"); return 0; diff --git a/tests-mx32/mknodat.c b/tests-mx32/mknodat.c index 34b34d80..ffc56210 100644 --- a/tests-mx32/mknodat.c +++ b/tests-mx32/mknodat.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_mknodat diff --git a/tests-mx32/mlock.c b/tests-mx32/mlock.c index 0f31d20c..c2550ba9 100644 --- a/tests-mx32/mlock.c +++ b/tests-mx32/mlock.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_mlock && defined __NR_munlock diff --git a/tests-mx32/mlock2.c b/tests-mx32/mlock2.c index 23f1cd9a..0489afe3 100644 --- a/tests-mx32/mlock2.c +++ b/tests-mx32/mlock2.c @@ -1,12 +1,12 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_mlock2 diff --git a/tests-mx32/modify_ldt.c b/tests-mx32/modify_ldt.c index 78e370e4..b642bbe2 100644 --- a/tests-mx32/modify_ldt.c +++ b/tests-mx32/modify_ldt.c @@ -1,7 +1,7 @@ /* * Check decoding of modify_ldt syscall. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,7 +9,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined __NR_modify_ldt && defined HAVE_STRUCT_USER_DESC @@ -23,18 +23,26 @@ void printrc(long rc) { # ifdef __x86_64__ - int err = -rc; + /* + * Hopefully, we don't expect EPERM to be returned, + * otherwise we can't distinguish it on x32. + */ + if (rc != -1) { + int err = -rc; - /* Thanks, long return type of syscall(2) */ - printf("%lld", zero_extend_signed_to_ull(rc)); + /* Thanks, long return type of syscall(2) */ + printf("%lld", zero_extend_signed_to_ull(rc)); - if (err > 0 && err < 0x1000) { - errno = err; - printf(" %s (%m)", errno2name()); + if (err > 0 && err < 0x1000) { + errno = err; + printf(" %s (%m)", errno2name()); + } } -# else - printf("%s", sprintrc(rc)); + else # endif + { + printf("%s", sprintrc(rc)); + } puts(""); } diff --git a/tests-mx32/move_mount-P.c b/tests-mx32/move_mount-P.c new file mode 100644 index 00000000..1e1cd5c8 --- /dev/null +++ b/tests-mx32/move_mount-P.c @@ -0,0 +1,2 @@ +#define PATH_TRACING +#include "move_mount.c" diff --git a/tests-mx32/move_mount-P.gen.test b/tests-mx32/move_mount-P.gen.test new file mode 100755 index 00000000..780d8c9c --- /dev/null +++ b/tests-mx32/move_mount-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (move_mount-P -y -P /dev/full -e trace=move_mount); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -y -P /dev/full -e trace=move_mount diff --git a/tests-mx32/move_mount.c b/tests-mx32/move_mount.c new file mode 100644 index 00000000..b6ebfdac --- /dev/null +++ b/tests-mx32/move_mount.c @@ -0,0 +1,102 @@ +/* + * Check decoding of move_mount syscall. + * + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_move_mount + +# include +# include +# include +# include +# include + +static const char *errstr; + +static long +k_move_mount(const unsigned int from_dfd, const void *from_fname, + const unsigned int to_dfd, const void *to_fname, + const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | from_dfd; + const kernel_ulong_t arg2 = (uintptr_t) from_fname; + const kernel_ulong_t arg3 = fill | to_dfd; + const kernel_ulong_t arg4 = (uintptr_t) to_fname; + const kernel_ulong_t arg5 = fill | flags; + const long rc = syscall(__NR_move_mount, + arg1, arg2, arg3, arg4, arg5, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + skip_if_unavailable("/proc/self/fd/"); + + static const char path_full[] = "/dev/full"; + const char *const path = tail_memdup(path_full, sizeof(path_full)); + const void *const efault = path + sizeof(path_full); + const char *const empty = efault - 1; + char *const fname = tail_alloc(PATH_MAX); + fill_memory_ex(fname, PATH_MAX, '0', 10); + + int dfd = open(path, O_WRONLY); + if (dfd < 0) + perror_msg_and_fail("open: %s", path); + + k_move_mount(-1, 0, -100, efault, 0); +# ifndef PATH_TRACING + printf("move_mount(-1, NULL, AT_FDCWD, %p, 0) = %s\n", efault, errstr); +# endif + + k_move_mount(-100, efault, -1, 0, 0); +# ifndef PATH_TRACING + printf("move_mount(AT_FDCWD, %p, -1, NULL, 0) = %s\n", efault, errstr); +# endif + + k_move_mount(dfd, fname, -100, empty, 1); + printf("move_mount(%d<%s>, \"%.*s\"..., AT_FDCWD, \"\", %s) = %s\n", + dfd, path, (int) PATH_MAX - 1, fname, "MOVE_MOUNT_F_SYMLINKS", errstr); + + k_move_mount(-100, empty, dfd, fname, 0x10); + printf("move_mount(AT_FDCWD, \"\", %d<%s>, \"%.*s\"..., %s) = %s\n", + dfd, path, (int) PATH_MAX - 1, fname, "MOVE_MOUNT_T_SYMLINKS", errstr); + +# define f_flags_str "MOVE_MOUNT_F_SYMLINKS|MOVE_MOUNT_F_AUTOMOUNTS|MOVE_MOUNT_F_EMPTY_PATH" + fname[PATH_MAX - 1] = '\0'; + k_move_mount(dfd, fname, -100, empty, 7); + printf("move_mount(%d<%s>, \"%s\", AT_FDCWD, \"\", %s) = %s\n", + dfd, path, fname, f_flags_str, errstr); + +# define t_flags_str "MOVE_MOUNT_T_SYMLINKS|MOVE_MOUNT_T_AUTOMOUNTS|MOVE_MOUNT_T_EMPTY_PATH" + k_move_mount(-100, empty, dfd, fname, 0x70); + printf("move_mount(AT_FDCWD, \"\", %d<%s>, \"%s\", %s) = %s\n", + dfd, path, fname, t_flags_str, errstr); + + k_move_mount(-1, path, -100, empty, 0x77); + printf("move_mount(-1, \"%s\", AT_FDCWD, \"\", %s) = %s\n", + path, f_flags_str "|" t_flags_str, errstr); + + k_move_mount(-100, empty, -1, path, -1); + printf("move_mount(AT_FDCWD, \"\", -1, \"%s\", %s) = %s\n", + path, f_flags_str "|" t_flags_str "|0xffffff88", errstr); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_move_mount") + +#endif diff --git a/tests-mx32/move_mount.gen.test b/tests-mx32/move_mount.gen.test new file mode 100755 index 00000000..465810ff --- /dev/null +++ b/tests-mx32/move_mount.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (move_mount -y ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -y diff --git a/tests-mx32/move_pages--pidns-translation.c b/tests-mx32/move_pages--pidns-translation.c new file mode 100644 index 00000000..8498e399 --- /dev/null +++ b/tests-mx32/move_pages--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "move_pages.c" diff --git a/tests-mx32/move_pages--pidns-translation.gen.test b/tests-mx32/move_pages--pidns-translation.gen.test new file mode 100755 index 00000000..acd97c62 --- /dev/null +++ b/tests-mx32/move_pages--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (move_pages--pidns-translation test_pidns -s3 -e trace=move_pages); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -s3 -e trace=move_pages diff --git a/tests-mx32/move_pages.c b/tests-mx32/move_pages.c index 895c7c6f..e648f00a 100644 --- a/tests-mx32/move_pages.c +++ b/tests-mx32/move_pages.c @@ -2,14 +2,15 @@ * Check decoding of move_pages syscall. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #ifdef __NR_move_pages @@ -122,15 +123,20 @@ print_status_array(const int *const status, const unsigned long count) } static void -print_stat_pages(const unsigned long pid, const unsigned long count, - const void **const pages, int *const status) +print_stat_pages(const unsigned long pid, + const char *pid_str, + const unsigned long count, + const void **const pages, + int *const status) { const unsigned long flags = (unsigned long) 0xfacefeed00000002ULL; long rc = syscall(__NR_move_pages, pid, count, pages, NULL, status, flags); const char *errstr = sprintrc(rc); - printf("move_pages(%d, %lu, ", (int) pid, count); + pidns_print_leader(); + printf("move_pages(%d%s, %lu, ", (int) pid, pid_str, + count); print_page_array(pages, count, 0); printf(", NULL, "); if (rc) { @@ -152,6 +158,7 @@ print_stat_pages(const unsigned long pid, const unsigned long count, static void print_move_pages(const unsigned long pid, + const char *pid_str, unsigned long count, const unsigned int offset, const void **const pages, @@ -164,7 +171,9 @@ print_move_pages(const unsigned long pid, long rc = syscall(__NR_move_pages, pid, count, pages, nodes, status, flags); const char *errstr = sprintrc(rc); - printf("move_pages(%d, %lu, ", (int) pid, count); + pidns_print_leader(); + printf("move_pages(%d%s, %lu, ", (int) pid, pid_str, + count); print_page_array(pages, count, offset); printf(", "); print_node_array(nodes, count, offset); @@ -185,8 +194,11 @@ print_move_pages(const unsigned long pid, int main(void) { + PIDNS_TEST_INIT; + const unsigned long pid = (unsigned long) 0xfacefeed00000000ULL | getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); unsigned long count = 1; const unsigned page_size = get_page_size(); const void *const page = tail_alloc(page_size); @@ -195,40 +207,41 @@ main(void) TAIL_ALLOC_OBJECT_VAR_PTR(int, nodes); TAIL_ALLOC_OBJECT_VAR_PTR(int, status); - print_stat_pages(pid, 0, pages, status); - print_move_pages(pid, 0, 0, pages, nodes, status); - print_move_pages(pid, 0, 1, pages + 1, nodes + 1, status + 1); + print_stat_pages(pid, pid_str, 0, pages, status); + print_move_pages(pid, pid_str, 0, 0, pages, nodes, status); + print_move_pages(pid, pid_str, 0, 1, pages + 1, nodes + 1, status + 1); *pages = page; - print_stat_pages(pid, count, pages, status); + print_stat_pages(pid, pid_str, count, pages, status); *nodes = 0xdeadbee1; - print_move_pages(pid, count, 0, pages, nodes, status); - print_move_pages(pid, count, 1, pages, nodes, status); + print_move_pages(pid, pid_str, count, 0, pages, nodes, status); + print_move_pages(pid, pid_str, count, 1, pages, nodes, status); ++count; --status; *(--pages) = efault; - print_stat_pages(pid, count, pages, status); + print_stat_pages(pid, pid_str, count, pages, status); *(--nodes) = 0xdeadbee2; - print_move_pages(pid, count, 0, pages, nodes, status); - print_move_pages(pid, count, 1, pages, nodes, status); + print_move_pages(pid, pid_str, count, 0, pages, nodes, status); + print_move_pages(pid, pid_str, count, 1, pages, nodes, status); ++count; --status; *(--pages) = nodes; - print_stat_pages(pid, count, pages, status); + print_stat_pages(pid, pid_str, count, pages, status); *(--nodes) = 0xdeadbee3; - print_move_pages(pid, count, 0, pages, nodes, status); - print_move_pages(pid, count, 1, pages, nodes, status); + print_move_pages(pid, pid_str, count, 0, pages, nodes, status); + print_move_pages(pid, pid_str, count, 1, pages, nodes, status); ++count; --status; *(--pages) = status; - print_stat_pages(pid, count, pages, status); + print_stat_pages(pid, pid_str, count, pages, status); *(--nodes) = 0xdeadbee4; - print_move_pages(pid, count, 0, pages, nodes, status); - print_move_pages(pid, count, 1, pages, nodes, status); + print_move_pages(pid, pid_str, count, 0, pages, nodes, status); + print_move_pages(pid, pid_str, count, 1, pages, nodes, status); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-mx32/mq_sendrecv.c b/tests-mx32/mq_sendrecv.c index 7af0f36e..45ddf5ee 100644 --- a/tests-mx32/mq_sendrecv.c +++ b/tests-mx32/mq_sendrecv.c @@ -3,7 +3,7 @@ * mq_unlink syscalls. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +11,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined __NR_mq_open && __NR_mq_timedsend && __NR_mq_timedreceive && \ __NR_mq_notify && __NR_mq_unlink diff --git a/tests-mx32/msg_control.c b/tests-mx32/msg_control.c index a4a32a88..2fd6c95d 100644 --- a/tests-mx32/msg_control.c +++ b/tests-mx32/msg_control.c @@ -2,7 +2,7 @@ * Check decoding of struct msghdr ancillary data. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -25,6 +25,9 @@ # include #endif +#include "kernel_timeval.h" +#include "kernel_old_timespec.h" + #include "xlat.h" #define XLAT_MACROS_ONLY #include "xlat/sock_options.h" @@ -38,9 +41,6 @@ # define SOL_TCP 6 #endif -#define MIN_SIZE_OF(type, member) \ - (offsetof(type, member) + sizeof(((type *) 0)->member)) - static struct cmsghdr * get_cmsghdr(void *const page, const size_t len) { @@ -87,11 +87,11 @@ test_scm_rights1(struct msghdr *const mh, struct cmsghdr *cmsg = get_cmsghdr(page, msg_controllen); - if (msg_controllen >= MIN_SIZE_OF(struct cmsghdr, cmsg_len)) + if (msg_controllen >= offsetofend(struct cmsghdr, cmsg_len)) cmsg->cmsg_len = cmsg_len; - if (msg_controllen >= MIN_SIZE_OF(struct cmsghdr, cmsg_level)) + if (msg_controllen >= offsetofend(struct cmsghdr, cmsg_level)) cmsg->cmsg_level = SOL_SOCKET; - if (msg_controllen >= MIN_SIZE_OF(struct cmsghdr, cmsg_type)) + if (msg_controllen >= offsetofend(struct cmsghdr, cmsg_type)) cmsg->cmsg_type = SCM_RIGHTS; size_t src_len = @@ -152,11 +152,11 @@ test_scm_rights2(struct msghdr *const mh, memcpy(CMSG_DATA(cmsg[0]), src[0], cmsg_len[0] - CMSG_LEN(0)); const size_t msg_controllen1 = msg_controllen - aligned_cms_len[0]; - if (msg_controllen1 >= MIN_SIZE_OF(struct cmsghdr, cmsg_len)) + if (msg_controllen1 >= offsetofend(struct cmsghdr, cmsg_len)) cmsg[1]->cmsg_len = cmsg_len[1]; - if (msg_controllen >= MIN_SIZE_OF(struct cmsghdr, cmsg_level)) + if (msg_controllen >= offsetofend(struct cmsghdr, cmsg_level)) cmsg[1]->cmsg_level = SOL_SOCKET; - if (msg_controllen >= MIN_SIZE_OF(struct cmsghdr, cmsg_type)) + if (msg_controllen >= offsetofend(struct cmsghdr, cmsg_type)) cmsg[1]->cmsg_type = SCM_RIGHTS; size_t src1_len = cmsg_len[1] < msg_controllen1 ? cmsg_len[1] : msg_controllen1; @@ -217,15 +217,17 @@ test_scm_rights3(struct msghdr *const mh, void *const page, const size_t nfds) static void test_scm_timestamp_old(struct msghdr *const mh, void *const page) { - size_t len = CMSG_SPACE(sizeof(struct timeval)); + static const kernel_old_timeval_t tv = { + .tv_sec = 123456789, + .tv_usec = 987654 + }; + size_t len = CMSG_SPACE(sizeof(tv)); struct cmsghdr *cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = CMSG_LEN(sizeof(struct timeval)); + cmsg->cmsg_len = CMSG_LEN(sizeof(tv)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMP_OLD; - struct timeval *tv = (struct timeval *) CMSG_DATA(cmsg); - tv->tv_sec = 123456789; - tv->tv_usec = 987654; + memcpy(CMSG_DATA(cmsg), &tv, sizeof(tv)); mh->msg_control = cmsg; mh->msg_controllen = len; @@ -237,13 +239,13 @@ test_scm_timestamp_old(struct msghdr *const mh, void *const page) ", cmsg_data={tv_sec=%lld, tv_usec=%llu}}]" ", msg_controllen=%lu, msg_flags=0}, 0) = %d %s (%m)\n", (unsigned) cmsg->cmsg_len, - (long long) tv->tv_sec, zero_extend_signed_to_ull(tv->tv_usec), + (long long) tv.tv_sec, zero_extend_signed_to_ull(tv.tv_usec), (unsigned long) len, rc, errno2name()); - len = CMSG_SPACE(sizeof(struct timeval) - sizeof(long)); + len = CMSG_SPACE(sizeof(tv) - sizeof(long)); cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = CMSG_LEN(sizeof(struct timeval) - sizeof(long)); + cmsg->cmsg_len = CMSG_LEN(sizeof(tv) - sizeof(long)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMP_OLD; @@ -262,15 +264,17 @@ test_scm_timestamp_old(struct msghdr *const mh, void *const page) static void test_scm_timestampns_old(struct msghdr *const mh, void *const page) { - size_t len = CMSG_SPACE(sizeof(struct timespec)); + static const kernel_old_timespec_t ts = { + .tv_sec = 123456789, + .tv_nsec = 987654321 + }; + size_t len = CMSG_SPACE(sizeof(ts)); struct cmsghdr *cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = CMSG_LEN(sizeof(struct timespec)); + cmsg->cmsg_len = CMSG_LEN(sizeof(ts)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMPNS_OLD; - struct timespec *ts = (struct timespec *) CMSG_DATA(cmsg); - ts->tv_sec = 123456789; - ts->tv_nsec = 987654321; + memcpy(CMSG_DATA(cmsg), &ts, sizeof(ts)); mh->msg_control = cmsg; mh->msg_controllen = len; @@ -282,13 +286,13 @@ test_scm_timestampns_old(struct msghdr *const mh, void *const page) ", cmsg_data={tv_sec=%lld, tv_nsec=%llu}}]" ", msg_controllen=%lu, msg_flags=0}, 0) = %d %s (%m)\n", (unsigned) cmsg->cmsg_len, - (long long) ts->tv_sec, zero_extend_signed_to_ull(ts->tv_nsec), + (long long) ts.tv_sec, zero_extend_signed_to_ull(ts.tv_nsec), (unsigned long) len, rc, errno2name()); - len = CMSG_SPACE(sizeof(struct timespec) - sizeof(long)); + len = CMSG_SPACE(sizeof(ts) - sizeof(long)); cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = CMSG_LEN(sizeof(struct timespec) - sizeof(long)); + cmsg->cmsg_len = CMSG_LEN(sizeof(ts) - sizeof(long)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMPNS_OLD; @@ -308,19 +312,18 @@ test_scm_timestampns_old(struct msghdr *const mh, void *const page) static void test_scm_timestamping_old(struct msghdr *const mh, void *const page) { - size_t len = CMSG_SPACE(3 * sizeof(struct timespec)); + static const kernel_old_timespec_t ts[] = { + { .tv_sec = 123456789, .tv_nsec = 987654321 }, + { .tv_sec = 123456790, .tv_nsec = 987654320 }, + { .tv_sec = 123456791, .tv_nsec = 987654319 } + }; + size_t len = CMSG_SPACE(sizeof(ts)); struct cmsghdr *cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = CMSG_LEN(3 * sizeof(struct timespec)); + cmsg->cmsg_len = CMSG_LEN(sizeof(ts)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMPING_OLD; - struct timespec *ts = (struct timespec *) CMSG_DATA(cmsg); - ts[0].tv_sec = 123456789; - ts[0].tv_nsec = 987654321; - ts[1].tv_sec = 123456790; - ts[1].tv_nsec = 987654320; - ts[2].tv_sec = 123456791; - ts[2].tv_nsec = 987654319; + memcpy(CMSG_DATA(cmsg), ts, sizeof(ts)); mh->msg_control = cmsg; mh->msg_controllen = len; @@ -340,10 +343,10 @@ test_scm_timestamping_old(struct msghdr *const mh, void *const page) zero_extend_signed_to_ull(ts[2].tv_nsec), (unsigned long) len, rc, errno2name()); - len = CMSG_SPACE(3 * sizeof(struct timespec) - sizeof(long)); + len = CMSG_SPACE(sizeof(ts) - sizeof(long)); cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = CMSG_LEN(3 * sizeof(struct timespec) - sizeof(long)); + cmsg->cmsg_len = CMSG_LEN(sizeof(ts) - sizeof(long)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMPING_OLD; @@ -364,16 +367,17 @@ test_scm_timestamping_old(struct msghdr *const mh, void *const page) static void test_scm_timestamp_new(struct msghdr *const mh, void *const page) { - size_t len = CMSG_SPACE(sizeof(struct __kernel_sock_timeval)); + static const struct __kernel_sock_timeval tv = { + .tv_sec = 0xdefaceddeadbeef, + .tv_usec = 0xdec0dedcafef00d + }; + size_t len = CMSG_SPACE(sizeof(tv)); struct cmsghdr *cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = CMSG_LEN(sizeof(struct __kernel_sock_timeval)); + cmsg->cmsg_len = CMSG_LEN(sizeof(tv)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMP_NEW; - struct __kernel_sock_timeval *tv = - (struct __kernel_sock_timeval *) CMSG_DATA(cmsg); - tv->tv_sec = 0xdefaceddeadbeef; - tv->tv_usec = 0xdec0dedcafef00d; + memcpy(CMSG_DATA(cmsg), &tv, sizeof(tv)); mh->msg_control = cmsg; mh->msg_controllen = len; @@ -385,14 +389,13 @@ test_scm_timestamp_new(struct msghdr *const mh, void *const page) ", cmsg_data={tv_sec=%lld, tv_usec=%llu}}]" ", msg_controllen=%lu, msg_flags=0}, 0) = %s\n", (unsigned) cmsg->cmsg_len, - (long long) tv->tv_sec, zero_extend_signed_to_ull(tv->tv_usec), + (long long) tv.tv_sec, zero_extend_signed_to_ull(tv.tv_usec), (unsigned long) len, sprintrc(rc)); - len = CMSG_SPACE(sizeof(struct __kernel_sock_timeval) - sizeof(long)); + len = CMSG_SPACE(sizeof(tv) - sizeof(long)); cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = - CMSG_LEN(sizeof(struct __kernel_sock_timeval) - sizeof(long)); + cmsg->cmsg_len = CMSG_LEN(sizeof(tv) - sizeof(long)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMP_NEW; @@ -413,16 +416,17 @@ test_scm_timestamp_new(struct msghdr *const mh, void *const page) static void test_scm_timestampns_new(struct msghdr *const mh, void *const page) { - size_t len = CMSG_SPACE(sizeof(struct __kernel_timespec)); + static const struct __kernel_timespec ts = { + .tv_sec = 0xdefaceddeadbeef, + .tv_nsec = 0xdec0dedcafef00d + }; + size_t len = CMSG_SPACE(sizeof(ts)); struct cmsghdr *cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = CMSG_LEN(sizeof(struct __kernel_timespec)); + cmsg->cmsg_len = CMSG_LEN(sizeof(ts)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMPNS_NEW; - struct __kernel_timespec *ts = - (struct __kernel_timespec *) CMSG_DATA(cmsg); - ts->tv_sec = 0xdefaceddeadbeef; - ts->tv_nsec = 0xdec0dedcafef00d; + memcpy(CMSG_DATA(cmsg), &ts, sizeof(ts)); mh->msg_control = cmsg; mh->msg_controllen = len; @@ -434,14 +438,13 @@ test_scm_timestampns_new(struct msghdr *const mh, void *const page) ", cmsg_data={tv_sec=%lld, tv_nsec=%llu}}]" ", msg_controllen=%lu, msg_flags=0}, 0) = %s\n", (unsigned) cmsg->cmsg_len, - (long long) ts->tv_sec, zero_extend_signed_to_ull(ts->tv_nsec), + (long long) ts.tv_sec, zero_extend_signed_to_ull(ts.tv_nsec), (unsigned long) len, sprintrc(rc)); - len = CMSG_SPACE(sizeof(struct __kernel_timespec) - sizeof(long)); + len = CMSG_SPACE(sizeof(ts) - sizeof(long)); cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = - CMSG_LEN(sizeof(struct __kernel_timespec) - sizeof(long)); + cmsg->cmsg_len = CMSG_LEN(sizeof(ts) - sizeof(long)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMPNS_NEW; @@ -461,20 +464,18 @@ test_scm_timestampns_new(struct msghdr *const mh, void *const page) static void test_scm_timestamping_new(struct msghdr *const mh, void *const page) { - size_t len = CMSG_SPACE(3 * sizeof(struct __kernel_timespec)); + static const struct __kernel_timespec ts[] = { + { .tv_sec = 0xdeface0deadbef1, .tv_nsec = 0xdec0de2cafef0d3 }, + { .tv_sec = 0xdeface4deadbef5, .tv_nsec = 0xdec0de6cafef0d7 }, + { .tv_sec = 0xdeface8deadbef9, .tv_nsec = 0xdec0dedcafef00d } + }; + size_t len = CMSG_SPACE(sizeof(ts)); struct cmsghdr *cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = CMSG_LEN(3 * sizeof(struct __kernel_timespec)); + cmsg->cmsg_len = CMSG_LEN(sizeof(ts)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMPING_NEW; - struct __kernel_timespec *ts = - (struct __kernel_timespec *) CMSG_DATA(cmsg); - ts[0].tv_sec = 0xdeface0deadbef1; - ts[0].tv_nsec = 0xdec0de2cafef0d3; - ts[1].tv_sec = 0xdeface4deadbef5; - ts[1].tv_nsec = 0xdec0de6cafef0d7; - ts[2].tv_sec = 0xdeface8deadbef9; - ts[2].tv_nsec = 0xdec0dedcafef00d; + memcpy(CMSG_DATA(cmsg), ts, sizeof(ts)); mh->msg_control = cmsg; mh->msg_controllen = len; @@ -494,11 +495,10 @@ test_scm_timestamping_new(struct msghdr *const mh, void *const page) zero_extend_signed_to_ull(ts[2].tv_nsec), (unsigned long) len, sprintrc(rc)); - len = CMSG_SPACE(3 * sizeof(struct __kernel_timespec) - sizeof(long)); + len = CMSG_SPACE(sizeof(ts) - sizeof(long)); cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = - CMSG_LEN(3 * sizeof(struct __kernel_timespec) - sizeof(long)); + cmsg->cmsg_len = CMSG_LEN(sizeof(ts) - sizeof(long)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMPING_NEW; @@ -987,7 +987,7 @@ int main(int ac, const char **av) printf("sendmsg(-1, %p, 0) = %d %s (%m)\n", mh + 1, rc, errno2name()); - void *page = tail_alloc(1) + 1; + void *page = tail_alloc(1024) + 1024; mh->msg_control = page; mh->msg_controllen = CMSG_LEN(0); rc = sendmsg(-1, mh, 0); diff --git a/tests-mx32/nanosleep.c b/tests-mx32/nanosleep.c index c7ebf496..d55b395c 100644 --- a/tests-mx32/nanosleep.c +++ b/tests-mx32/nanosleep.c @@ -2,19 +2,38 @@ * Check decoding of nanosleep syscall. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include -#include -#include -#include -#include +#include "scno.h" + +#ifdef __NR_nanosleep + +# include +# include +# include +# include +# include +# include + +# include "kernel_old_timespec.h" + +static const char *errstr; + +static long +k_nanosleep(const void *const req, void *const rem) +{ + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = (uintptr_t) req; + const kernel_ulong_t arg2 = (uintptr_t) rem; + const long rc = syscall(__NR_nanosleep, arg1, arg2, bad, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} static void handler(int signo) @@ -25,7 +44,7 @@ int main(void) { struct { - struct timespec ts; + kernel_old_timespec_t ts; uint32_t pad[2]; } req = { .ts.tv_nsec = 0xc0de1, @@ -38,47 +57,51 @@ main(void) const struct sigaction act = { .sa_handler = handler }; const struct itimerval itv = { .it_value.tv_usec = 111111 }; - if (nanosleep(&req.ts, NULL)) + if (k_nanosleep(&req.ts, NULL)) perror_msg_and_fail("nanosleep"); printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, NULL) = 0\n", (long long) req.ts.tv_sec, zero_extend_signed_to_ull(req.ts.tv_nsec)); - assert(nanosleep(NULL, &rem.ts) == -1); - printf("nanosleep(NULL, %p) = -1 EFAULT (%m)\n", &rem.ts); + assert(k_nanosleep(NULL, &rem.ts) == -1); + printf("nanosleep(NULL, %p) = %s\n", &rem.ts, errstr); - if (nanosleep(&req.ts, &rem.ts)) + if (k_nanosleep(&req.ts, &rem.ts)) perror_msg_and_fail("nanosleep"); printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, %p) = 0\n", (long long) req.ts.tv_sec, zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts); req.ts.tv_nsec = 1000000000; - assert(nanosleep(&req.ts, &rem.ts) == -1); - printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, %p) = -1 EINVAL (%m)\n", + assert(k_nanosleep(&req.ts, &rem.ts) == -1); + printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, %p) = %s\n", (long long) req.ts.tv_sec, - zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts); + zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts, + errstr); req.ts.tv_sec = 0xdeadbeefU; req.ts.tv_nsec = 0xfacefeedU; - assert(nanosleep(&req.ts, &rem.ts) == -1); - printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, %p) = -1 EINVAL (%m)\n", + assert(k_nanosleep(&req.ts, &rem.ts) == -1); + printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, %p) = %s\n", (long long) req.ts.tv_sec, - zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts); + zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts, + errstr); req.ts.tv_sec = (time_t) 0xcafef00ddeadbeefLL; req.ts.tv_nsec = (long) 0xbadc0dedfacefeedLL; - assert(nanosleep(&req.ts, &rem.ts) == -1); - printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, %p) = -1 EINVAL (%m)\n", + assert(k_nanosleep(&req.ts, &rem.ts) == -1); + printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, %p) = %s\n", (long long) req.ts.tv_sec, - zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts); + zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts, + errstr); req.ts.tv_sec = -1; req.ts.tv_nsec = -1; - assert(nanosleep(&req.ts, &rem.ts) == -1); - printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, %p) = -1 EINVAL (%m)\n", + assert(k_nanosleep(&req.ts, &rem.ts) == -1); + printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, %p) = %s\n", (long long) req.ts.tv_sec, - zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts); + zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts, + errstr); assert(sigaction(SIGALRM, &act, NULL) == 0); assert(sigprocmask(SIG_SETMASK, &set, NULL) == 0); @@ -88,7 +111,7 @@ main(void) req.ts.tv_sec = 0; req.ts.tv_nsec = 999999999; - assert(nanosleep(&req.ts, &rem.ts) == -1); + assert(k_nanosleep(&req.ts, &rem.ts) == -1); printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}" ", {tv_sec=%lld, tv_nsec=%llu})" " = ? ERESTART_RESTARTBLOCK (Interrupted by signal)\n", @@ -101,3 +124,9 @@ main(void) puts("+++ exited with 0 +++"); return 0; } + +#else + +SKIP_MAIN_UNDEFINED("__NR_nanosleep") + +#endif diff --git a/tests-mx32/net--decode-fds-dev-netlink.c b/tests-mx32/net--decode-fds-dev-netlink.c new file mode 100644 index 00000000..a84f91b5 --- /dev/null +++ b/tests-mx32/net--decode-fds-dev-netlink.c @@ -0,0 +1,2 @@ +#define PRINT_SOCK 1 +#include "net-yy-netlink.c" diff --git a/tests-mx32/net--decode-fds-dev-netlink.gen.test b/tests-mx32/net--decode-fds-dev-netlink.gen.test new file mode 100755 index 00000000..92663b86 --- /dev/null +++ b/tests-mx32/net--decode-fds-dev-netlink.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (net--decode-fds-dev-netlink +net-yy-netlink.test --decode-fds=dev); do not edit. +set -- --decode-fds=dev +. "${srcdir=.}/net-yy-netlink.test" diff --git a/tests-mx32/net--decode-fds-none-netlink.c b/tests-mx32/net--decode-fds-none-netlink.c new file mode 100644 index 00000000..2c8daace --- /dev/null +++ b/tests-mx32/net--decode-fds-none-netlink.c @@ -0,0 +1,2 @@ +#define PRINT_SOCK 0 +#include "net-yy-netlink.c" diff --git a/tests-mx32/net--decode-fds-none-netlink.gen.test b/tests-mx32/net--decode-fds-none-netlink.gen.test new file mode 100755 index 00000000..ea3f2250 --- /dev/null +++ b/tests-mx32/net--decode-fds-none-netlink.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (net--decode-fds-none-netlink +net-yy-netlink.test --decode-fds=none -a9); do not edit. +set -- --decode-fds=none -a9 +. "${srcdir=.}/net-yy-netlink.test" diff --git a/tests-mx32/net--decode-fds-path-netlink.c b/tests-mx32/net--decode-fds-path-netlink.c new file mode 100644 index 00000000..a84f91b5 --- /dev/null +++ b/tests-mx32/net--decode-fds-path-netlink.c @@ -0,0 +1,2 @@ +#define PRINT_SOCK 1 +#include "net-yy-netlink.c" diff --git a/tests-mx32/net--decode-fds-path-netlink.gen.test b/tests-mx32/net--decode-fds-path-netlink.gen.test new file mode 100755 index 00000000..6943b682 --- /dev/null +++ b/tests-mx32/net--decode-fds-path-netlink.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (net--decode-fds-path-netlink +net-yy-netlink.test --decode-fds=path); do not edit. +set -- --decode-fds=path +. "${srcdir=.}/net-yy-netlink.test" diff --git a/tests-mx32/net--decode-fds-socket-netlink.c b/tests-mx32/net--decode-fds-socket-netlink.c new file mode 100644 index 00000000..7416ccd9 --- /dev/null +++ b/tests-mx32/net--decode-fds-socket-netlink.c @@ -0,0 +1,2 @@ +#define PRINT_SOCK 2 +#include "net-yy-netlink.c" diff --git a/tests-mx32/net--decode-fds-socket-netlink.gen.test b/tests-mx32/net--decode-fds-socket-netlink.gen.test new file mode 100755 index 00000000..012d876f --- /dev/null +++ b/tests-mx32/net--decode-fds-socket-netlink.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (net--decode-fds-socket-netlink +net-yy-netlink.test --decode-fds=socket); do not edit. +set -- --decode-fds=socket +. "${srcdir=.}/net-yy-netlink.test" diff --git a/tests-mx32/net-sockaddr--pidns-translation.c b/tests-mx32/net-sockaddr--pidns-translation.c new file mode 100644 index 00000000..ff432bf4 --- /dev/null +++ b/tests-mx32/net-sockaddr--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "net-sockaddr.c" diff --git a/tests-mx32/net-sockaddr--pidns-translation.gen.test b/tests-mx32/net-sockaddr--pidns-translation.gen.test new file mode 100755 index 00000000..ce8db05e --- /dev/null +++ b/tests-mx32/net-sockaddr--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (net-sockaddr--pidns-translation test_pidns -a24 -e trace=connect); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a24 -e trace=connect diff --git a/tests-mx32/net-sockaddr.c b/tests-mx32/net-sockaddr.c index cd973922..c7e9bde7 100644 --- a/tests-mx32/net-sockaddr.c +++ b/tests-mx32/net-sockaddr.c @@ -2,13 +2,14 @@ * Check decoding of sockaddr structures * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include "pidns.h" #include #include #include @@ -40,18 +41,21 @@ check_un(void) memset(un->sun_path, '0', sizeof(un->sun_path)); unsigned int len = sizeof(*un); int ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%.*u\"}" ", %u) = %d EBADF (%m)\n", (int) sizeof(un->sun_path), 0, len, ret); un->sun_path[1] = 0; ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%u\"}, %u)" " = %d EBADF (%m)\n", 0, len, ret); un->sun_path[0] = 0; un->sun_path[2] = 1; ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNIX, sun_path=@\"\\0\\001%.*u\"}" ", %u) = %d EBADF (%m)\n", (int) sizeof(un->sun_path) - 3, 0, len, ret); @@ -61,12 +65,14 @@ check_un(void) memset(un->sun_path, '0', sizeof(un->sun_path)); len = sizeof(*un) + 2; ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%.*u\"}" ", %u) = %d EBADF (%m)\n", (int) sizeof(un->sun_path), 0, len, ret); un->sun_path[0] = 0; ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNIX, sun_path=@\"%.*u\"}" ", %u) = %d EBADF (%m)\n", (int) sizeof(un->sun_path) - 1, 0, len, ret); @@ -75,18 +81,21 @@ check_un(void) un->sun_family = AF_UNIX; len = sizeof(*un) - 2; ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%.*u\"}" ", %u) = %d EBADF (%m)\n", (int) sizeof(un->sun_path) - 2, 0, len, ret); un->sun_path[0] = 0; ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNIX, sun_path=@\"%.*u\"}" ", %u) = %d EBADF (%m)\n", (int) sizeof(un->sun_path) - 3, 0, len, ret); len = sizeof(*un); ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, %p, %u) = %d EBADF (%m)\n", un, len, ret); un = tail_alloc(sizeof(struct sockaddr_storage)); @@ -94,12 +103,14 @@ check_un(void) memset(un->sun_path, '0', sizeof(un->sun_path)); len = sizeof(struct sockaddr_storage) + 1; ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%.*u\"}" ", %u) = %d EBADF (%m)\n", (int) sizeof(un->sun_path), 0, len, ret); un->sun_path[0] = 0; ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNIX, sun_path=@\"%.*u\"}" ", %u) = %d EBADF (%m)\n", (int) sizeof(un->sun_path) - 1, 0, len, ret); @@ -117,6 +128,7 @@ check_in(void) in->sin_addr.s_addr = inet_addr(h_addr); unsigned int len = sizeof(*in); int ret = connect(-1, (void *) in, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_INET, sin_port=htons(%hu)" ", sin_addr=inet_addr(\"%s\")}, %u) = %d EBADF (%m)\n", h_port, h_addr, len, ret); @@ -127,6 +139,7 @@ check_in(void) in->sin_addr.s_addr = inet_addr(h_addr); len = sizeof(*in) + 4; ret = connect(-1, (void *) in, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_INET, sin_port=htons(%hu)" ", sin_addr=inet_addr(\"%s\")}, %u) = %d EBADF (%m)\n", h_port, h_addr, len, ret); @@ -137,6 +150,7 @@ check_in(void) in->sin_addr.s_addr = 0; len = sizeof(*in) - 4; ret = connect(-1, (void *) in, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_INET, sa_data=\"%s\"}, %u)" " = %d EBADF (%m)\n", "\\0\\0\\0\\0\\0\\0\\377\\377\\377\\377", @@ -144,6 +158,7 @@ check_in(void) len = sizeof(*in); ret = connect(-1, (void *) in, len); + pidns_print_leader(); printf("connect(-1, %p, %u) = %d EBADF (%m)\n", in, len, ret); } @@ -155,6 +170,7 @@ check_in6_linklocal(struct sockaddr_in6 *const in6, const char *const h_addr) in6->sin6_scope_id = 0xfacefeed; unsigned int len = sizeof(*in6); int ret = connect(-1, (void *) in6, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)" ", sin6_flowinfo=htonl(%u)" ", inet_pton(AF_INET6, \"%s\", &sin6_addr)" @@ -166,7 +182,8 @@ check_in6_linklocal(struct sockaddr_in6 *const in6, const char *const h_addr) in6->sin6_scope_id = ifindex_lo(); if (in6->sin6_scope_id) { ret = connect(-1, (void *) in6, len); - printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)" + pidns_print_leader(); + printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)" ", sin6_flowinfo=htonl(%u)" ", inet_pton(AF_INET6, \"%s\", &sin6_addr)" ", sin6_scope_id=%s}, %u)" @@ -191,6 +208,7 @@ check_in6(void) in6->sin6_scope_id = 0xfacefeed; unsigned int len = sizeof(*in6); int ret = connect(-1, (void *) in6, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)" ", sin6_flowinfo=htonl(%u)" ", inet_pton(AF_INET6, \"%s\", &sin6_addr)" @@ -209,6 +227,7 @@ check_in6(void) in6->sin6_scope_id = 0xfacefeed; len = sizeof(*in6) + 4; ret = connect(-1, (void *) in6, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)" ", sin6_flowinfo=htonl(%u)" ", inet_pton(AF_INET6, \"%s\", &sin6_addr)" @@ -223,6 +242,7 @@ check_in6(void) inet_pton(AF_INET6, h_addr, &in6->sin6_addr); len = sizeof(*in6) - sizeof(in6->sin6_scope_id); ret = connect(-1, (void *) in6, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)" ", sin6_flowinfo=htonl(%u)" ", inet_pton(AF_INET6, \"%s\", &sin6_addr)}, %u)" @@ -236,6 +256,7 @@ check_in6(void) memset(&in6->sin6_addr, '0', sizeof(in6->sin6_addr) - 4); len = sizeof(*in6) - sizeof(in6->sin6_scope_id) - 4; ret = connect(-1, (void *) in6, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_INET6" ", sa_data=\"\\0\\0\\0\\0\\0\\000%.*u\"}, %u)" " = %d EBADF (%m)\n", @@ -244,6 +265,7 @@ check_in6(void) len = sizeof(*in6) - sizeof(in6->sin6_scope_id); ret = connect(-1, (void *) in6, len); + pidns_print_leader(); printf("connect(-1, %p, %u) = %d EBADF (%m)\n", in6, len, ret); } @@ -262,6 +284,7 @@ check_ipx(void) void *ipx = tail_memdup(&c_ipx, sizeof(c_ipx)); unsigned int len = sizeof(c_ipx); int ret = connect(-1, ipx, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_IPX, sipx_port=htons(%u)" ", sipx_network=htonl(%#x)" ", sipx_node=[%#02x, %#02x, %#02x, %#02x, %#02x, %#02x]" @@ -316,18 +339,21 @@ check_ax25(void) fill_memory(sax, size); sax->fsa_ax25.sax25_family = AF_AX25; rc = connect(-1, sax_void, sizeof(struct sockaddr_ax25) - 1); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_AX25, sa_data=\"\\202\\203\\204\\205" "\\206\\207\\210\\211\\212\\213\\214\\215\\216\"}, %zu) = %s\n", sizeof(struct sockaddr_ax25) - 1, sprintrc(rc)); memcpy(sax, &ax25, sizeof(ax25)); rc = connect(-1, sax_void, sizeof(struct sockaddr_ax25)); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_AX25, fsa_ax25={sax25_call=VALID-13" ", sax25_ndigis=8}, fsa_digipeater=[/* ??? */]}, %zu) = %s\n", sizeof(struct sockaddr_ax25), sprintrc(rc)); sax->fsa_ax25.sax25_ndigis = 0; rc = connect(-1, sax_void, sizeof(struct sockaddr_ax25)); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_AX25, sax25_call=VALID-13" ", sax25_ndigis=0}, %zu) = %s\n", sizeof(struct sockaddr_ax25), sprintrc(rc)); @@ -335,6 +361,7 @@ check_ax25(void) sax->fsa_ax25.sax25_ndigis = 8; size = sizeof(struct sockaddr_ax25) + sizeof(ax25_address) * 3 + 1; rc = connect(-1, sax_void, size); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_AX25, fsa_ax25={sax25_call=VALID-13" ", sax25_ndigis=8}, fsa_digipeater" "=[{ax25_call=\"\\xa6\\xa0\\x82\\x40\\x86\\x8a\\x00\"" @@ -348,6 +375,7 @@ check_ax25(void) sax->fsa_digipeater[2].ax25_call[6] = 0x4; size = sizeof(struct sockaddr_ax25) + sizeof(ax25_address) * 4; rc = connect(-1, sax_void, size); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_AX25, fsa_ax25={sax25_call=VALID-13" ", sax25_ndigis=8}, fsa_digipeater" "=[{ax25_call=\"\\xa6\\xa0\\x82\\x40\\x86\\x8a\\x00\"" @@ -365,6 +393,7 @@ check_ax25(void) for (size_t i = 0; i < 3; i++) { size = sizeof(ax25) + sizeof(ax25_address) * (i / 2); rc = connect(-1, sax_void, size); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_AX25" ", fsa_ax25={sax25_call=VALID-13, sax25_ndigis=%d}" ", fsa_digipeater=[VALID2-7, OK-15, %s /* FINE-2 */" @@ -423,25 +452,28 @@ check_x25(void) .sx25_family = AF_X25, .sx25_addr = { "0123456789abcdef" }, }; - void *x25_void = tail_memdup(&c_x25, sizeof(c_x25) + 1); - struct sockaddr_x25 *x25 = x25_void; + void *const x25_void = tail_memdup(&c_x25, sizeof(c_x25) + 1); long rc; - rc = connect(-1, x25, sizeof(c_x25) - 1); + rc = connect(-1, x25_void, sizeof(c_x25) - 1); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_X25" ", sa_data=\"0123456789abcde\"}, %zu) = %s\n", sizeof(c_x25) - 1, sprintrc(rc)); for (size_t i = 0; i < 2; i++) { - rc = connect(-1, x25, sizeof(c_x25) + i); + rc = connect(-1, x25_void, sizeof(c_x25) + i); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_X25" ", sx25_addr={x25_addr=\"0123456789abcde\"...}" "}, %zu) = %s\n", sizeof(c_x25) + i, sprintrc(rc)); } + struct sockaddr_x25 *const x25 = x25_void; x25->sx25_addr.x25_addr[10] = '\0'; - rc = connect(-1, x25, sizeof(c_x25)); + rc = connect(-1, x25_void, sizeof(c_x25)); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_X25" ", sx25_addr={x25_addr=\"0123456789\"}" "}, %zu) = %s\n", @@ -457,19 +489,21 @@ check_nl(void) nl->nl_groups = 0xfacefeed; unsigned int len = sizeof(*nl); int ret = connect(-1, (void *) nl, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_NETLINK, nl_pid=%d" ", nl_groups=%#08x}, %u) = %d EBADF (%m)\n", nl->nl_pid, nl->nl_groups, len, ret); nl = ((void *) nl) - 4; nl->nl_family = AF_NETLINK; - nl->nl_pid = 1234567890; + nl->nl_pid = getpid(); nl->nl_groups = 0xfacefeed; len = sizeof(*nl) + 4; ret = connect(-1, (void *) nl, len); - printf("connect(-1, {sa_family=AF_NETLINK, nl_pid=%d" + pidns_print_leader(); + printf("connect(-1, {sa_family=AF_NETLINK, nl_pid=%d%s" ", nl_groups=%#08x}, %u) = %d EBADF (%m)\n", - nl->nl_pid, nl->nl_groups, len, ret); + nl->nl_pid, pidns_pid2str(PT_TGID), nl->nl_groups, len, ret); } static void @@ -487,6 +521,7 @@ check_ll(void) void *ll = tail_memdup(&c_ll, sizeof(c_ll)); unsigned int len = sizeof(c_ll); int ret = connect(-1, ll, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_PACKET" ", sll_protocol=htons(ETH_P_ALL)" ", sll_ifindex=%u, sll_hatype=ARPHRD_ETHER" @@ -502,6 +537,7 @@ check_ll(void) ((struct sockaddr_ll *) ll)->sll_halen++; ret = connect(-1, ll, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_PACKET" ", sll_protocol=htons(ETH_P_ALL)" ", sll_ifindex=%u, sll_hatype=ARPHRD_ETHER" @@ -517,6 +553,7 @@ check_ll(void) ((struct sockaddr_ll *) ll)->sll_halen = 0; ret = connect(-1, ll, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_PACKET" ", sll_protocol=htons(ETH_P_ALL)" ", sll_ifindex=%u, sll_hatype=ARPHRD_ETHER" @@ -526,6 +563,7 @@ check_ll(void) ((struct sockaddr_ll *) ll)->sll_ifindex = ifindex_lo(); if (((struct sockaddr_ll *) ll)->sll_ifindex) { ret = connect(-1, ll, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_PACKET" ", sll_protocol=htons(ETH_P_ALL)" ", sll_ifindex=%s" @@ -543,11 +581,24 @@ check_hci(void) TAIL_ALLOC_OBJECT_VAR_PTR(struct sockaddr_hci, hci); hci->hci_family = AF_BLUETOOTH; hci->hci_dev = htobs(h_port); +# ifdef HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL hci->hci_channel = HCI_CHANNEL_RAW; +# endif unsigned int len = sizeof(*hci); - int ret = connect(-1, (void *) hci, len); + + int ret = connect(-1, (void *) hci, 4); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_BLUETOOTH, hci_dev=htobs(%hu)" - ", hci_channel=HCI_CHANNEL_RAW}, %u) = %d EBADF (%m)\n", + "}, 4) = %d EBADF (%m)\n", + h_port, ret); + + ret = connect(-1, (void *) hci, len); + pidns_print_leader(); + printf("connect(-1, {sa_family=AF_BLUETOOTH, hci_dev=htobs(%hu)" +# ifdef HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL + ", hci_channel=HCI_CHANNEL_RAW" +# endif + "}, %u) = %d EBADF (%m)\n", h_port, len, ret); } @@ -561,6 +612,7 @@ check_sco(void) void *sco = tail_memdup(&c_sco, sizeof(c_sco)); unsigned int len = sizeof(c_sco); int ret = connect(-1, sco, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_BLUETOOTH" ", sco_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x" "}, %u) = %d EBADF (%m)\n", @@ -581,6 +633,7 @@ check_rc(void) void *rc = tail_memdup(&c_rc, sizeof(c_rc)); unsigned int len = sizeof(c_rc); int ret = connect(-1, rc, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_BLUETOOTH" ", rc_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x" ", rc_channel=%u}, %u) = %d EBADF (%m)\n", @@ -608,6 +661,7 @@ check_l2(void) unsigned int len = sizeof(c_l2); int ret = connect(-1, l2, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_BLUETOOTH" ", l2_psm=htobs(L2CAP_PSM_DYN_START + %hu)" ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x" @@ -629,6 +683,7 @@ check_l2(void) # endif memcpy(l2, &c_l2, sizeof(c_l2)); ret = connect(-1, l2, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_BLUETOOTH" ", l2_psm=htobs(L2CAP_PSM_SDP)" ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x" @@ -649,6 +704,7 @@ check_l2(void) # endif memcpy(l2, &c_l2, sizeof(c_l2)); ret = connect(-1, l2, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_BLUETOOTH" ", l2_psm=htobs(0xbad /* L2CAP_PSM_??? */)" ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x" @@ -666,6 +722,7 @@ check_l2(void) c_l2.l2_cid = htobs(0xffff); memcpy(l2, &c_l2, 12); ret = connect(-1, l2, 12); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_BLUETOOTH" ", l2_psm=htobs(L2CAP_PSM_AUTO_END)" ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x" @@ -689,6 +746,7 @@ check_raw(void) u.sa->sa_family = 0xff; unsigned int len = sizeof(*u.st) + 8; int ret = connect(-1, (void *) u.st, len); + pidns_print_leader(); printf("connect(-1, {sa_family=%#x /* AF_??? */, sa_data=\"%.*u\"}" ", %u) = %d EBADF (%m)\n", u.sa->sa_family, (int) (sizeof(*u.st) - sizeof(u.sa->sa_family)), 0, len, ret); @@ -696,19 +754,22 @@ check_raw(void) u.sa->sa_family = 0; len = sizeof(u.sa->sa_family) + 1; ret = connect(-1, (void *) u.st, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNSPEC, sa_data=\"0\"}, %u)" " = %d EBADF (%m)\n", len, ret); u.sa->sa_family = AF_BLUETOOTH; - ++len; ret = connect(-1, (void *) u.st, len); - printf("connect(-1, {sa_family=AF_BLUETOOTH, sa_data=\"00\"}, %u)" + pidns_print_leader(); + printf("connect(-1, {sa_family=AF_BLUETOOTH, sa_data=\"0\"}, %u)" " = %d EBADF (%m)\n", len, ret); } int main(void) { + PIDNS_TEST_INIT; + check_un(); check_in(); check_in6(); @@ -725,6 +786,7 @@ main(void) #endif check_raw(); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-mx32/net-yy-netlink.c b/tests-mx32/net-yy-netlink.c index 38b1a0d4..e2c95586 100644 --- a/tests-mx32/net-yy-netlink.c +++ b/tests-mx32/net-yy-netlink.c @@ -3,7 +3,7 @@ * * Copyright (c) 2013-2017 Dmitry V. Levin * Copyright (c) 2016 Fabien Siron - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -21,6 +21,27 @@ #include #include +#ifndef PRINT_SOCK +# define PRINT_SOCK 2 +#endif + +#if PRINT_SOCK == 2 +# define FMT_UNBOUND "" +# define FMT_BOUND "" +# define ARG_UNBOUND inode +# define ARG_BOUND addr.nl_pid +#elif PRINT_SOCK == 1 +# define FMT_UNBOUND "" +# define FMT_BOUND "" +# define ARG_UNBOUND inode +# define ARG_BOUND inode +#else +# define FMT_UNBOUND "%s" +# define FMT_BOUND "%s" +# define ARG_UNBOUND "" +# define ARG_BOUND "" +#endif + int main(void) { @@ -37,25 +58,27 @@ main(void) const int fd = socket(AF_NETLINK, SOCK_RAW, NETLINK_SOCK_DIAG); if (fd < 0) perror_msg_and_skip("socket"); +#if PRINT_SOCK const unsigned long inode = inode_of_sockfd(fd); +#endif printf("socket(AF_NETLINK, SOCK_RAW, NETLINK_SOCK_DIAG) = " - "%d\n", fd, inode); + "%d" FMT_UNBOUND "\n", fd, ARG_UNBOUND); if (bind(fd, sa, *len)) perror_msg_and_skip("bind"); - printf("bind(%d, {sa_family=AF_NETLINK" - ", nl_pid=%u, nl_groups=00000000}, %u) = 0\n", - fd, inode, addr.nl_pid, (unsigned) *len); + printf("bind(%d" FMT_UNBOUND ", {sa_family=AF_NETLINK" + ", nl_pid=%d, nl_groups=00000000}, %u) = 0\n", + fd, ARG_UNBOUND, addr.nl_pid, (unsigned) *len); if (getsockname(fd, sa, len)) perror_msg_and_fail("getsockname"); - printf("getsockname(%d, {sa_family=AF_NETLINK" - ", nl_pid=%u, nl_groups=00000000}, [%u]) = 0\n", - fd, addr.nl_pid, addr.nl_pid, (unsigned) *len); + printf("getsockname(%d" FMT_BOUND ", {sa_family=AF_NETLINK" + ", nl_pid=%d, nl_groups=00000000}, [%u]) = 0\n", + fd, ARG_BOUND, addr.nl_pid, (unsigned) *len); if (close(fd)) perror_msg_and_fail("close"); - printf("close(%d) = 0\n", fd, addr.nl_pid); + printf("close(%d" FMT_BOUND ") = 0\n", fd, ARG_BOUND); puts("+++ exited with 0 +++"); return 0; diff --git a/tests-mx32/net-yy-netlink.test b/tests-mx32/net-yy-netlink.test index 892c9799..729c59a7 100755 --- a/tests-mx32/net-yy-netlink.test +++ b/tests-mx32/net-yy-netlink.test @@ -6,7 +6,7 @@ # Copyright (c) 2014 Masatake YAMATO # Copyright (c) 2014-2016 Dmitry V. Levin # Copyright (c) 2016 Fabien Siron -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -15,9 +15,11 @@ check_prog sed +opts="${*:--yy}" + run_prog ../netlink_netlink_diag run_prog > /dev/null -run_strace -a22 -yy -eclose,network $args > "$EXP" +run_strace -a22 ${opts} -eclose,network $args > "$EXP" # Filter out close() calls made by ld.so and libc. sed -n '/socket/,$p' < "$LOG" > "$OUT" diff --git a/tests-mx32/netlink_audit--pidns-translation.c b/tests-mx32/netlink_audit--pidns-translation.c new file mode 100644 index 00000000..e08f9168 --- /dev/null +++ b/tests-mx32/netlink_audit--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "netlink_audit.c" diff --git a/tests-mx32/netlink_audit--pidns-translation.test b/tests-mx32/netlink_audit--pidns-translation.test new file mode 100755 index 00000000..1a39eadd --- /dev/null +++ b/tests-mx32/netlink_audit--pidns-translation.test @@ -0,0 +1,13 @@ +#!/bin/sh +# +# Check pidns translation of NETLINK_SOCK_DIAG protocol decoding +# +# Copyright (c) 2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: LGPL-2.1-or-later + +. "${srcdir=.}/init.sh" + +run_prog ../netlink_netlink_diag +test_pidns -e trace=sendto "$@" diff --git a/tests-mx32/netlink_audit.c b/tests-mx32/netlink_audit.c index eba609a1..559c2f71 100644 --- a/tests-mx32/netlink_audit.c +++ b/tests-mx32/netlink_audit.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include "pidns.h" #include #include #include @@ -17,18 +18,23 @@ static void test_nlmsg_type(const int fd) { + PIDNS_TEST_INIT; + long rc; struct nlmsghdr nlh = { .nlmsg_len = sizeof(nlh), .nlmsg_type = AUDIT_GET, .nlmsg_flags = NLM_F_REQUEST, + .nlmsg_pid = getpid(), }; rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0); + pidns_print_leader(); printf("sendto(%d, {len=%u, type=AUDIT_GET" - ", flags=NLM_F_REQUEST, seq=0, pid=0}" + ", flags=NLM_F_REQUEST, seq=0, pid=%d%s}" ", %u, MSG_DONTWAIT, NULL, 0) = %s\n", - fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc)); + fd, nlh.nlmsg_len, nlh.nlmsg_pid, pidns_pid2str(PT_TGID), + (unsigned) sizeof(nlh), sprintrc(rc)); } int main(void) @@ -39,6 +45,7 @@ int main(void) test_nlmsg_type(fd); + pidns_print_leader(); printf("+++ exited with 0 +++\n"); return 0; diff --git a/tests-mx32/netlink_protocol.c b/tests-mx32/netlink_protocol.c index fd901d88..99d9eb5d 100644 --- a/tests-mx32/netlink_protocol.c +++ b/tests-mx32/netlink_protocol.c @@ -3,7 +3,7 @@ * * Copyright (c) 2014-2017 Dmitry V. Levin * Copyright (c) 2016 Fabien Siron - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -264,7 +264,7 @@ test_nlmsgerr(const int fd) printf("sendto(%d, {{len=%u, type=NLMSG_ERROR, flags=NLM_F_REQUEST" ", seq=0, pid=0}, {error=-EACCES" ", msg={len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x" - ", seq=%u, pid=%u}}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n", + ", seq=%u, pid=%d}}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n", fd, nlh->nlmsg_len, err->msg.nlmsg_len, NLM_F_DUMP, err->msg.nlmsg_seq, err->msg.nlmsg_pid, nlh->nlmsg_len, sprintrc(rc)); @@ -289,7 +289,7 @@ test_nlmsgerr(const int fd) printf("sendto(%d, {{len=%u, type=NLMSG_ERROR, flags=NLM_F_REQUEST" ", seq=0, pid=0}, {error=-EACCES" ", msg={{len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x" - ", seq=%u, pid=%u}, \"\\x61\\x62\\x63\\x64\"}}}" + ", seq=%u, pid=%d}, \"\\x61\\x62\\x63\\x64\"}}}" ", %u, MSG_DONTWAIT, NULL, 0) = %s\n", fd, nlh->nlmsg_len, err->msg.nlmsg_len, NLM_F_DUMP, err->msg.nlmsg_seq, err->msg.nlmsg_pid, diff --git a/tests-mx32/netlink_sock_diag-v.sh b/tests-mx32/netlink_sock_diag-v.sh deleted file mode 100755 index 0fb467db..00000000 --- a/tests-mx32/netlink_sock_diag-v.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -# -# Check verbose decoding of NETLINK_SOCK_DIAG protocol -# -# Copyright (c) 2017-2018 The strace developers. -# All rights reserved. -# -# SPDX-License-Identifier: GPL-2.0-or-later - -. "${srcdir=.}/init.sh" - -run_prog ../netlink_netlink_diag -run_strace_match_diff -v -e trace=sendto diff --git a/tests-mx32/netlink_sock_diag.test b/tests-mx32/netlink_sock_diag.test index d5fb977b..f3f17ec0 100755 --- a/tests-mx32/netlink_sock_diag.test +++ b/tests-mx32/netlink_sock_diag.test @@ -2,7 +2,7 @@ # # Check decoding of NETLINK_SOCK_DIAG protocol # -# Copyright (c) 2017-2018 The strace developers. +# Copyright (c) 2017-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -10,4 +10,4 @@ . "${srcdir=.}/init.sh" run_prog ../netlink_netlink_diag -run_strace_match_diff -e trace=sendto +run_strace_match_diff -e trace=sendto "$@" diff --git a/tests-mx32/newfstatat.c b/tests-mx32/newfstatat.c index 955dce6d..805248af 100644 --- a/tests-mx32/newfstatat.c +++ b/tests-mx32/newfstatat.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_newfstatat diff --git a/tests-mx32/newfstatat.gen.test b/tests-mx32/newfstatat.gen.test index 40ec797c..9bea27f2 100755 --- a/tests-mx32/newfstatat.gen.test +++ b/tests-mx32/newfstatat.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (newfstatat -a32 -v -P stat.sample -P /dev/full); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (newfstatat -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a32 -v -P stat.sample -P /dev/full +run_strace_match_diff -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full diff --git a/tests-mx32/nlattr.c b/tests-mx32/nlattr.c index 2c5927b2..1331386f 100644 --- a/tests-mx32/nlattr.c +++ b/tests-mx32/nlattr.c @@ -2,7 +2,7 @@ * Check decoding of netlink attribute. * * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -105,7 +105,7 @@ test_nlattr(const int fd) nla = NLMSG_ATTR(msg, sizeof(msg->udm)); *nla = (struct nlattr) { .nla_len = NLA_HDRLEN + 4, - .nla_type = UNIX_DIAG_SHUTDOWN + 1 + .nla_type = UNIX_DIAG_FIRST_UNUSED }; memcpy(RTA_DATA(nla), "1234", 4); rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0); @@ -116,7 +116,7 @@ test_nlattr(const int fd) ", nla_type=%#x /* UNIX_DIAG_??? */}" ", \"\\x31\\x32\\x33\\x34\"}}" ", %u, MSG_DONTWAIT, NULL, 0) = %s\n", - fd, msg_len, nla->nla_len, UNIX_DIAG_SHUTDOWN + 1, + fd, msg_len, nla->nla_len, UNIX_DIAG_FIRST_UNUSED, msg_len, sprintrc(rc)); /* print one struct nlattr and fetch fail second struct nlattr */ @@ -201,7 +201,7 @@ test_nlattr(const int fd) for (i = 0; i < ABBREV_LEN; ++i) { nla[i * 2] = (struct nlattr) { .nla_len = NLA_HDRLEN * 2 - 1, - .nla_type = UNIX_DIAG_SHUTDOWN + 1 + i + .nla_type = UNIX_DIAG_FIRST_UNUSED + i }; fill_memory_ex(&nla[i * 2 + 1], NLA_HDRLEN, '0' + i, '~' - '0' - i); @@ -218,7 +218,7 @@ test_nlattr(const int fd) if (i) printf(", "); printf("{{nla_len=%u, nla_type=%#x /* UNIX_DIAG_??? */}, ", - nla->nla_len, UNIX_DIAG_SHUTDOWN + 1 + i); + nla->nla_len, UNIX_DIAG_FIRST_UNUSED + i); print_quoted_hex(&nla[i * 2 + 1], NLA_HDRLEN - 1); printf("}"); } @@ -286,7 +286,7 @@ test_nla_type(const int fd) ", %u, MSG_DONTWAIT, NULL, 0) = %s\n", fd, msg_len, nla->nla_len, msg_len, sprintrc(rc)); - nla->nla_type = NLA_F_NESTED | (UNIX_DIAG_SHUTDOWN + 1); + nla->nla_type = NLA_F_NESTED | (UNIX_DIAG_FIRST_UNUSED); rc = sendto(fd, msg, msg->nlh.nlmsg_len, MSG_DONTWAIT, NULL, 0); printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY" ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX" @@ -294,7 +294,7 @@ test_nla_type(const int fd) ", udiag_ino=0, udiag_cookie=[0, 0]}, {nla_len=%u" ", nla_type=NLA_F_NESTED|%#x /* UNIX_DIAG_??? */}}" ", %u, MSG_DONTWAIT, NULL, 0) = %s\n", - fd, msg->nlh.nlmsg_len, nla->nla_len, UNIX_DIAG_SHUTDOWN + 1, + fd, msg->nlh.nlmsg_len, nla->nla_len, UNIX_DIAG_FIRST_UNUSED, msg->nlh.nlmsg_len, sprintrc(rc)); } diff --git a/tests-mx32/nlattr_crypto_user_alg.c b/tests-mx32/nlattr_crypto_user_alg.c index f90c6208..2cb2b549 100644 --- a/tests-mx32/nlattr_crypto_user_alg.c +++ b/tests-mx32/nlattr_crypto_user_alg.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -85,7 +85,8 @@ main(void) TEST_NLATTR_OBJECT_EX(fd, nlh0, hdrlen, init_crypto_user_alg, print_crypto_user_alg, CRYPTOCFGA_REPORT_HASH, - pattern, rhash, print_quoted_memory, + pattern, rhash, sizeof(rhash), + print_quoted_memory, printf("{type=\"efgh\""); PRINT_FIELD_U(", ", rhash, blocksize); PRINT_FIELD_U(", ", rhash, digestsize); @@ -104,7 +105,8 @@ main(void) TEST_NLATTR_OBJECT_EX(fd, nlh0, hdrlen, init_crypto_user_alg, print_crypto_user_alg, CRYPTOCFGA_REPORT_BLKCIPHER, - pattern, rblkcipher, print_quoted_memory, + pattern, rblkcipher, sizeof(rblkcipher), + print_quoted_memory, printf("{type=\"abcd\", geniv=\"efgh\""); PRINT_FIELD_U(", ", rblkcipher, blocksize); PRINT_FIELD_U(", ", rblkcipher, min_keysize); @@ -124,7 +126,8 @@ main(void) TEST_NLATTR_OBJECT_EX(fd, nlh0, hdrlen, init_crypto_user_alg, print_crypto_user_alg, CRYPTOCFGA_REPORT_AEAD, - pattern, raead, print_quoted_memory, + pattern, raead, sizeof(raead), + print_quoted_memory, printf("{type=\"abcd\", geniv=\"efgh\""); PRINT_FIELD_U(", ", raead, blocksize); PRINT_FIELD_U(", ", raead, maxauthsize); @@ -140,7 +143,7 @@ main(void) TEST_NLATTR_OBJECT_EX(fd, nlh0, hdrlen, init_crypto_user_alg, print_crypto_user_alg, CRYPTOCFGA_REPORT_RNG, - pattern, rrng, print_quoted_memory, + pattern, rrng, sizeof(rrng), print_quoted_memory, printf("{type=\"abcd\""); PRINT_FIELD_U(", ", rrng, seedsize); printf("}")); @@ -156,7 +159,8 @@ main(void) TEST_NLATTR_OBJECT_EX(fd, nlh0, hdrlen, init_crypto_user_alg, print_crypto_user_alg, CRYPTOCFGA_REPORT_CIPHER, - pattern, rcipher, print_quoted_memory, + pattern, rcipher, sizeof(rcipher), + print_quoted_memory, printf("{type=\"abcd\""); PRINT_FIELD_U(", ", rcipher, blocksize); PRINT_FIELD_U(", ", rcipher, min_keysize); diff --git a/tests-mx32/nlattr_ifinfomsg.c b/tests-mx32/nlattr_ifinfomsg.c index a8660196..4e6df29d 100644 --- a/tests-mx32/nlattr_ifinfomsg.c +++ b/tests-mx32/nlattr_ifinfomsg.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -27,6 +27,8 @@ #endif #define IFLA_LINK_NETNSID 37 #define IFLA_EVENT 44 +#define IFLA_PROP_LIST 52 +#define IFLA_ALT_IFNAME 53 #ifndef IFLA_INFO_KIND # define IFLA_INFO_KIND 1 @@ -36,6 +38,8 @@ # define IFLA_VF_PORT 1 #endif +static const unsigned int hdrlen = sizeof(struct ifinfomsg); + static void init_ifinfomsg(struct nlmsghdr *const nlh, const unsigned int msg_len) { @@ -65,6 +69,27 @@ print_ifinfomsg(const unsigned int msg_len) msg_len); } +static void +init_prop_list_msg(struct nlmsghdr *const nlh, + const unsigned int msg_len) +{ + init_ifinfomsg(nlh, msg_len); + + struct nlattr *nla = NLMSG_ATTR(nlh, hdrlen); + SET_STRUCT(struct nlattr, nla, + .nla_len = msg_len - NLMSG_SPACE(hdrlen), + .nla_type = IFLA_PROP_LIST, + ); +} + +static void +print_prop_list_msg(const unsigned int msg_len) +{ + print_ifinfomsg(msg_len); + printf(", {{nla_len=%u, nla_type=IFLA_PROP_LIST}", + msg_len - NLMSG_SPACE(hdrlen)); +} + int main(void) { @@ -96,9 +121,8 @@ main(void) .tx_compressed = 0xefdadfab }; const int fd = create_nl_socket(NETLINK_ROUTE); - const unsigned int hdrlen = sizeof(struct ifinfomsg); void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), - NLA_HDRLEN + sizeof(st)); + 2 * NLA_HDRLEN + MAX(sizeof(st), 20)); static char pattern[4096]; fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1); @@ -118,40 +142,39 @@ main(void) IFLA_LINK_NETNSID, pattern, netnsid, printf("%d", netnsid)); - TEST_NLATTR_OBJECT(fd, nlh0, hdrlen, - init_ifinfomsg, print_ifinfomsg, - IFLA_STATS, pattern, st, - PRINT_FIELD_U("{", st, rx_packets); - PRINT_FIELD_U(", ", st, tx_packets); - PRINT_FIELD_U(", ", st, rx_bytes); - PRINT_FIELD_U(", ", st, tx_bytes); - PRINT_FIELD_U(", ", st, rx_errors); - PRINT_FIELD_U(", ", st, tx_errors); - PRINT_FIELD_U(", ", st, rx_dropped); - PRINT_FIELD_U(", ", st, tx_dropped); - PRINT_FIELD_U(", ", st, multicast); - PRINT_FIELD_U(", ", st, collisions); - PRINT_FIELD_U(", ", st, rx_length_errors); - PRINT_FIELD_U(", ", st, rx_over_errors); - PRINT_FIELD_U(", ", st, rx_crc_errors); - PRINT_FIELD_U(", ", st, rx_frame_errors); - PRINT_FIELD_U(", ", st, rx_fifo_errors); - PRINT_FIELD_U(", ", st, rx_missed_errors); - PRINT_FIELD_U(", ", st, tx_aborted_errors); - PRINT_FIELD_U(", ", st, tx_carrier_errors); - PRINT_FIELD_U(", ", st, tx_fifo_errors); - PRINT_FIELD_U(", ", st, tx_heartbeat_errors); - PRINT_FIELD_U(", ", st, tx_window_errors); - PRINT_FIELD_U(", ", st, rx_compressed); - PRINT_FIELD_U(", ", st, tx_compressed); + const unsigned int sizeof_stats = + offsetofend(struct rtnl_link_stats, tx_compressed); + TEST_NLATTR_OBJECT_MINSZ(fd, nlh0, hdrlen, + init_ifinfomsg, print_ifinfomsg, + IFLA_STATS, pattern, st, sizeof_stats, + PRINT_FIELD_U("{", st, rx_packets); + PRINT_FIELD_U(", ", st, tx_packets); + PRINT_FIELD_U(", ", st, rx_bytes); + PRINT_FIELD_U(", ", st, tx_bytes); + PRINT_FIELD_U(", ", st, rx_errors); + PRINT_FIELD_U(", ", st, tx_errors); + PRINT_FIELD_U(", ", st, rx_dropped); + PRINT_FIELD_U(", ", st, tx_dropped); + PRINT_FIELD_U(", ", st, multicast); + PRINT_FIELD_U(", ", st, collisions); + PRINT_FIELD_U(", ", st, rx_length_errors); + PRINT_FIELD_U(", ", st, rx_over_errors); + PRINT_FIELD_U(", ", st, rx_crc_errors); + PRINT_FIELD_U(", ", st, rx_frame_errors); + PRINT_FIELD_U(", ", st, rx_fifo_errors); + PRINT_FIELD_U(", ", st, rx_missed_errors); + PRINT_FIELD_U(", ", st, tx_aborted_errors); + PRINT_FIELD_U(", ", st, tx_carrier_errors); + PRINT_FIELD_U(", ", st, tx_fifo_errors); + PRINT_FIELD_U(", ", st, tx_heartbeat_errors); + PRINT_FIELD_U(", ", st, tx_window_errors); + PRINT_FIELD_U(", ", st, rx_compressed); + PRINT_FIELD_U(", ", st, tx_compressed); #ifdef HAVE_STRUCT_RTNL_LINK_STATS_RX_NOHANDLER - PRINT_FIELD_U(", ", st, rx_nohandler); + PRINT_FIELD_U(", ", st, rx_nohandler); #endif printf("}")); -#ifdef HAVE_STRUCT_RTNL_LINK_STATS_RX_NOHANDLER - const unsigned int sizeof_stats = - offsetofend(struct rtnl_link_stats, tx_compressed); TEST_NLATTR(fd, nlh0, hdrlen, init_ifinfomsg, print_ifinfomsg, IFLA_STATS, sizeof_stats, &st, sizeof_stats, @@ -179,7 +202,6 @@ main(void) PRINT_FIELD_U(", ", st, rx_compressed); PRINT_FIELD_U(", ", st, tx_compressed); printf("}")); -#endif /* HAVE_STRUCT_RTNL_LINK_STATS_RX_NOHANDLER */ static const struct rtnl_link_ifmap map = { .mem_start = 0xadcbefedefbcdedb, @@ -341,6 +363,33 @@ main(void) printf("%s", ifla_events[i].str)); } + /* IFLA_PROP_LIST */ + struct { + char p1[20]; + } buf; + fill_memory(&buf, sizeof(buf)); + TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen, + init_prop_list_msg, print_prop_list_msg, + IFLA_ALT_IFNAME, "IFLA_ALT_IFNAME", + pattern, buf, print_quoted_stringn, 1, + print_quoted_memory(&buf, sizeof(buf)); + printf("...")); + + /* IFLA_ALT_IFNAME */ + static const char alt_ifname[] = "OH HAI THAR\r\n\t\377\0\v\x7e"; + TEST_NLATTR(fd, nlh0, hdrlen, + init_ifinfomsg, print_ifinfomsg, + IFLA_ALT_IFNAME, + sizeof(alt_ifname), alt_ifname, sizeof(alt_ifname), + print_quoted_memory(alt_ifname, sizeof(alt_ifname) - 1)); + + TEST_NLATTR(fd, nlh0, hdrlen, + init_ifinfomsg, print_ifinfomsg, + IFLA_ALT_IFNAME, + sizeof(alt_ifname) - 1, alt_ifname, sizeof(alt_ifname) - 1, + print_quoted_memory(alt_ifname, sizeof(alt_ifname) - 1); + printf("...")); + puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-mx32/nlattr_ifla_linkinfo.c b/tests-mx32/nlattr_ifla_linkinfo.c index 080e7371..9c648d05 100644 --- a/tests-mx32/nlattr_ifla_linkinfo.c +++ b/tests-mx32/nlattr_ifla_linkinfo.c @@ -1,7 +1,7 @@ /* * IFLA_LINKINFO netlink attribute decoding check. * - * Copyright (c) 2018-2019 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -347,7 +347,6 @@ main(void) /* bridge attrs */ static const struct val_name und_br_attrs[] = { { 0, "IFLA_BR_UNSPEC" }, - { 20, "IFLA_BR_GROUP_ADDR" }, { 21, "IFLA_BR_FDB_FLUSH" }, { 40, "IFLA_BR_PAD" }, { 47, "0x2f /* IFLA_BR_??? */" }, @@ -367,6 +366,21 @@ main(void) "\\x63\\x64\\x65\\x66\"" }); } + static const struct val_name hwa_br_attrs[] = { + { 20, "IFLA_BR_GROUP_ADDR" }, + }; + + for (size_t k = 0; k < ARRAY_SIZE(hwa_br_attrs); k++) { + TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "bridge", + hwa_br_attrs[k].val, hwa_br_attrs[k].name, + unknown_msg, pattern, + { 2, "ab:ac" }, + { 4, "ab:ac:db:cd" }, + { 6, "ab:ac:db:cd:61:62" }, + { 8, "ab:ac:db:cd:61:62:63:64" }, + { 10, "ab:ac:db:cd:61:62:63:64:65:66" }); + } + static const struct val_name u64_br_attrs[] = { { 16, "IFLA_BR_HELLO_TIMER" }, { 17, "IFLA_BR_TCN_TIMER" }, diff --git a/tests-mx32/nlattr_ifla_port.c b/tests-mx32/nlattr_ifla_port.c index df2a2ef6..49003614 100644 --- a/tests-mx32/nlattr_ifla_port.c +++ b/tests-mx32/nlattr_ifla_port.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -57,6 +57,21 @@ main(void) printf(", vsi_type_id=\"\\x61\\x62\\x63\""); PRINT_FIELD_U(", ", vsi, vsi_type_version); printf("}")); + + static const struct ifla_port_vsi vsi2 = { + .vsi_mgr_id = 0xab, + .vsi_type_id = { 10, 0, 255 }, + .vsi_type_version = 0xef, + .pad = { 0, 1, 2 }, + }; + TEST_NESTED_NLATTR_OBJECT(fd, nlh0, hdrlen, + init_ifinfomsg, print_ifinfomsg, + IFLA_PORT_VSI_TYPE, pattern, vsi2, + PRINT_FIELD_U("{", vsi2, vsi_mgr_id); + printf(", vsi_type_id=\"\\x0a\\x00\\xff\""); + PRINT_FIELD_U(", ", vsi2, vsi_type_version); + printf(", pad=\"\\x00\\x01\\x02\""); + printf("}")); #endif puts("+++ exited with 0 +++"); diff --git a/tests-mx32/nlattr_ifla_xdp-y.c b/tests-mx32/nlattr_ifla_xdp-y.c new file mode 100644 index 00000000..791c2be9 --- /dev/null +++ b/tests-mx32/nlattr_ifla_xdp-y.c @@ -0,0 +1,3 @@ +#define PRINT_SOCK 1 +#define FD9_PATH "" +#include "nlattr_ifla_xdp.c" diff --git a/tests-mx32/nlattr_ifla_xdp-y.gen.test b/tests-mx32/nlattr_ifla_xdp-y.gen.test new file mode 100755 index 00000000..5826766f --- /dev/null +++ b/tests-mx32/nlattr_ifla_xdp-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (nlattr_ifla_xdp-y +netlink_sock_diag.test -y; exec 9 - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -17,44 +17,28 @@ #endif #include +#define XLAT_MACROS_ONLY +# include "xlat/rtnl_ifla_xdp_attrs.h" +#undef XLAT_MACROS_ONLY + #if !HAVE_DECL_IFLA_XDP enum { IFLA_XDP = 43 }; #endif -#ifndef IFLA_XDP_FD -# define IFLA_XDP_FD 1 -#endif - -#ifndef IFLA_XDP_ATTACHED -# define IFLA_XDP_ATTACHED 2 -#endif - -#ifndef IFLA_XDP_PROG_ID -# define IFLA_XDP_PROG_ID 4 -#endif - -#ifndef IFLA_XDP_DRV_PROG_ID -# define IFLA_XDP_DRV_PROG_ID 5 -#endif -#ifndef IFLA_XDP_SKB_PROG_ID -# define IFLA_XDP_SKB_PROG_ID 6 +#if !HAVE_DECL_XDP_ATTACHED_NONE +enum { XDP_ATTACHED_NONE = 0 }; #endif - -#ifndef IFLA_XDP_HW_PROG_ID -# define IFLA_XDP_HW_PROG_ID 7 -#endif - -#ifndef XDP_ATTACHED_NONE -# define XDP_ATTACHED_NONE 0 -#endif - -#ifndef XDP_ATTACHED_MULTI -# define XDP_ATTACHED_MULTI 4 +#if !HAVE_DECL_XDP_ATTACHED_MULTI +enum { XDP_ATTACHED_MULTI = 4 }; #endif #define IFLA_ATTR IFLA_XDP #include "nlattr_ifla.h" +#ifndef FD9_PATH +# define FD9_PATH "" +#endif + int main(void) { @@ -118,6 +102,18 @@ main(void) printf("%u", num)); } + /* IFLA_XDP_EXPECTED_FD */ + TEST_NESTED_NLATTR_OBJECT_EX(fd, nlh0, hdrlen, + init_ifinfomsg, print_ifinfomsg, + IFLA_XDP_EXPECTED_FD, pattern, num, 1, + printf("%d", num)); + + int exp_fd = 9; + TEST_NESTED_NLATTR_OBJECT_EX(fd, nlh0, hdrlen, + init_ifinfomsg, print_ifinfomsg, + IFLA_XDP_EXPECTED_FD, pattern, exp_fd, 1, + printf("9" FD9_PATH)); + puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-mx32/nlattr_inet_diag_req_compat.c b/tests-mx32/nlattr_inet_diag_req_compat.c index 8cce46cd..9956b961 100644 --- a/tests-mx32/nlattr_inet_diag_req_compat.c +++ b/tests-mx32/nlattr_inet_diag_req_compat.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -73,10 +73,10 @@ main(void) char nla_type_str[256]; sprintf(nla_type_str, "%#x /* INET_DIAG_REQ_??? */", - INET_DIAG_REQ_BYTECODE + 1); + INET_DIAG_REQ_PROTOCOL + 1); TEST_NLATTR_(fd, nlh0, hdrlen, init_inet_diag_req, print_inet_diag_req, - INET_DIAG_REQ_BYTECODE + 1, nla_type_str, + INET_DIAG_REQ_PROTOCOL + 1, nla_type_str, 4, pattern, 4, print_quoted_hex(pattern, 4)); diff --git a/tests-mx32/nlattr_mdba_mdb_entry.c b/tests-mx32/nlattr_mdba_mdb_entry.c index 7ac89ff0..e7b0c498 100644 --- a/tests-mx32/nlattr_mdba_mdb_entry.c +++ b/tests-mx32/nlattr_mdba_mdb_entry.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -122,9 +122,13 @@ main(void) printf(", state=MDB_TEMPORARY"); # ifdef HAVE_STRUCT_BR_MDB_ENTRY_FLAGS printf(", flags=MDB_FLAGS_OFFLOAD"); +# else + printf(", flags=0"); # endif # ifdef HAVE_STRUCT_BR_MDB_ENTRY_VID PRINT_FIELD_U(", ", entry, vid); +# else + printf(", vid=0"); # endif printf(", addr={u="); print_quoted_hex(&entry.addr.u, @@ -145,9 +149,13 @@ main(void) printf(", state=MDB_TEMPORARY"); # ifdef HAVE_STRUCT_BR_MDB_ENTRY_FLAGS printf(", flags=MDB_FLAGS_OFFLOAD"); +# else + printf(", flags=0"); # endif # ifdef HAVE_STRUCT_BR_MDB_ENTRY_VID PRINT_FIELD_U(", ", entry, vid); +# else + printf(", vid=0"); # endif printf(", addr={u="); print_quoted_hex(&entry.addr.u, sizeof(entry.addr.u)); diff --git a/tests-mx32/nlattr_mdba_router_port.c b/tests-mx32/nlattr_mdba_router_port.c index 7ec9992a..f954ce41 100644 --- a/tests-mx32/nlattr_mdba_router_port.c +++ b/tests-mx32/nlattr_mdba_router_port.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,6 +12,8 @@ # include # include "test_nlattr.h" +/* struct br_mdb_entry needs a definition of struct in6_addr. */ +# include # include # include diff --git a/tests-mx32/nlattr_ndmsg.c b/tests-mx32/nlattr_ndmsg.c index 2dd82ce4..8404c7a0 100644 --- a/tests-mx32/nlattr_ndmsg.c +++ b/tests-mx32/nlattr_ndmsg.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -99,6 +99,17 @@ main(void) NDA_PORT, pattern, port, printf("htons(%u)", ntohs(port))); + static const uint8_t mac[6] = "\xf8\xc2\x49\x13\x57\xbd"; + TEST_NLATTR(fd, nlh0, hdrlen, init_ndmsg, print_ndmsg, + NDA_LLADDR, sizeof(mac) - 1, mac, sizeof(mac) - 1, + for (unsigned int i = 0; i < sizeof(mac) - 1; ++i) + printf("%s%02x", i ? ":" : "", mac[i])); + + TEST_NLATTR(fd, nlh0, hdrlen, init_ndmsg, print_ndmsg, + NDA_LLADDR, sizeof(mac), mac, sizeof(mac), + for (unsigned int i = 0; i < sizeof(mac); ++i) + printf("%s%02x", i ? ":" : "", mac[i])); + puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-mx32/nlattr_packet_diag_msg.gen.test b/tests-mx32/nlattr_packet_diag_msg.gen.test index 7177ea2a..f069775f 100755 --- a/tests-mx32/nlattr_packet_diag_msg.gen.test +++ b/tests-mx32/nlattr_packet_diag_msg.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (nlattr_packet_diag_msg +netlink_sock_diag-v.sh ); do not edit. -set -- -. "${srcdir=.}/netlink_sock_diag-v.sh" +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (nlattr_packet_diag_msg +netlink_sock_diag.test -v); do not edit. +set -- -v +. "${srcdir=.}/netlink_sock_diag.test" diff --git a/tests-mx32/nlattr_tc_stats.c b/tests-mx32/nlattr_tc_stats.c index c0ebaf89..3fb4b743 100644 --- a/tests-mx32/nlattr_tc_stats.c +++ b/tests-mx32/nlattr_tc_stats.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -16,6 +16,10 @@ # include # include +# if !HAVE_DECL_TCA_STATS_PKT64 +enum { TCA_STATS_PKT64 = 8 }; +# endif + const unsigned int hdrlen = sizeof(struct tcmsg); static void @@ -120,6 +124,12 @@ main(void) printf("}")); # endif + static const uint64_t pkt64 = 0xdeadc0defacefeedULL; + TEST_NESTED_NLATTR_OBJECT(fd, nlh0, hdrlen, + init_tcmsg, print_tcmsg, + TCA_STATS_PKT64, pattern, pkt64, + printf("16045693111314087661")); + puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-mx32/nlattr_tcamsg.c b/tests-mx32/nlattr_tcamsg.c index b8bd7e35..e25e32a6 100644 --- a/tests-mx32/nlattr_tcamsg.c +++ b/tests-mx32/nlattr_tcamsg.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,8 +10,26 @@ #include #include "test_nlattr.h" +#include #include +#if !HAVE_DECL_TCA_ACT_PAD +enum { TCA_ACT_PAD = 5 }; +#endif +#if !HAVE_DECL_TCA_ACT_COOKIE +enum { TCA_ACT_COOKIE = 6 }; +#endif +#if !HAVE_DECL_TCA_ACT_FLAGS +enum { TCA_ACT_FLAGS = 7 }; +#endif +#if !HAVE_DECL_TCA_ACT_HW_STATS +enum { TCA_ACT_HW_STATS = 8 }; +#endif +#if !HAVE_DECL_TCA_ACT_USED_HW_STATS +enum { TCA_ACT_USED_HW_STATS = 9 }; +#endif + + static void init_tcamsg(struct nlmsghdr *const nlh, const unsigned int msg_len) { @@ -47,14 +65,72 @@ main(void) static char pattern[4096]; fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1); - const unsigned int nla_type = 0xffff & NLA_TYPE_MASK; - char nla_type_str[256]; - sprintf(nla_type_str, "%#x /* TCA_ACT_??? */", nla_type); - TEST_NLATTR_(fd, nlh0, hdrlen, - init_tcamsg, print_tcamsg, - nla_type, nla_type_str, - 4, pattern, 4, - print_quoted_hex(pattern, 4)); + /* Invalid */ + static const unsigned int nla_invalid[] = { 10, 0xffff & NLA_TYPE_MASK }; + for (size_t i = 0; i < ARRAY_SIZE(nla_invalid); i++) { + char nla_type_str[256]; + sprintf(nla_type_str, "%#x /* TCA_ACT_??? */", nla_invalid[i]); + TEST_NLATTR_(fd, nlh0, hdrlen, + init_tcamsg, print_tcamsg, + nla_invalid[i], nla_type_str, + 21, pattern, 21, + print_quoted_hex(pattern, 21)); + } + + /* Default decoder */ + static const struct { + unsigned int val; + const char *str; + } nla_default[] = { + { ARG_STR(TCA_ACT_UNSPEC) }, + { ARG_STR(TCA_ACT_OPTIONS) }, + { ARG_STR(TCA_ACT_PAD) }, + { ARG_STR(TCA_ACT_COOKIE) }, + }; + for (size_t i = 0; i < ARRAY_SIZE(nla_default); i++) { + TEST_NLATTR_(fd, nlh0, hdrlen, + init_tcamsg, print_tcamsg, + nla_default[i].val, nla_default[i].str, + 17, pattern, 17, + print_quoted_hex(pattern, 17)); + } + + /* TCA_ACT_KIND */ + TEST_NLATTR(fd, nlh0, hdrlen, init_tcamsg, print_tcamsg, + TCA_ACT_KIND, 21, pattern, 21, + print_quoted_cstring(pattern, 22)); + + static const char kind[] = "Hello\tthere"; + TEST_NLATTR(fd, nlh0, hdrlen, init_tcamsg, print_tcamsg, + TCA_ACT_KIND, sizeof(kind), kind, sizeof(kind), + print_quoted_string(kind)); + + /* TCA_ACT_INDEX */ + static uint32_t idx = 0xdeadc0de; + TEST_NLATTR(fd, nlh0, hdrlen, init_tcamsg, print_tcamsg, + TCA_ACT_INDEX, sizeof(idx), &idx, sizeof(idx), + printf("%u", idx)); + + /* TCA_ACT_FLAGS */ + static uint32_t flags = 0xfacebeef; + TEST_NLATTR(fd, nlh0, hdrlen, init_tcamsg, print_tcamsg, + TCA_ACT_FLAGS, sizeof(flags), &flags, sizeof(flags), + printf("TCA_ACT_FLAGS_NO_PERCPU_STATS|0xfacebeee")); + + /* TCA_ACT_HW_STATS, TCA_ACT_USED_HW_STATS */ + static const struct strval32 nla_hw_st[] = { + { ARG_STR(TCA_ACT_HW_STATS) }, + { ARG_STR(TCA_ACT_USED_HW_STATS) }, + }; + + static uint32_t hw_st = 0xfacebeef; + for (size_t i = 0; i < ARRAY_SIZE(nla_hw_st); i++) { + TEST_NLATTR_(fd, nlh0, hdrlen, init_tcamsg, print_tcamsg, + nla_hw_st[i].val, nla_hw_st[i].str, + sizeof(hw_st), &hw_st, sizeof(hw_st), + printf("TCA_ACT_HW_STATS_IMMEDIATE|" + "TCA_ACT_HW_STATS_DELAYED|0xfacebeec")); + } puts("+++ exited with 0 +++"); return 0; diff --git a/tests-mx32/nsyscalls-d.test b/tests-mx32/nsyscalls-d.test index a6495b6b..8892de87 100755 --- a/tests-mx32/nsyscalls-d.test +++ b/tests-mx32/nsyscalls-d.test @@ -1,8 +1,8 @@ #!/bin/sh # -# Check decoding of out-of-range syscalls along with debug ouput +# Check decoding of out-of-range syscalls along with debug output # -# Copyright (c) 2017-2018 The strace developers. +# Copyright (c) 2017-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later diff --git a/tests-mx32/nsyscalls.c b/tests-mx32/nsyscalls.c index 529f50ee..1eb90071 100644 --- a/tests-mx32/nsyscalls.c +++ b/tests-mx32/nsyscalls.c @@ -2,7 +2,7 @@ * Check decoding of out-of-range syscalls. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -14,7 +14,7 @@ #include #include #include -#include +#include "scno.h" #include "sysent_shorthand_defs.h" @@ -28,13 +28,6 @@ static const struct_sysent syscallent[] = { # define DEBUG_PRINT 0 #endif -#if defined __X32_SYSCALL_BIT && defined __NR_read \ - && (__X32_SYSCALL_BIT & __NR_read) != 0 -# define SYSCALL_BIT __X32_SYSCALL_BIT -#else -# define SYSCALL_BIT 0 -#endif - #if DEBUG_PRINT static const char *strace_name; static FILE *debug_out; diff --git a/tests-mx32/old_mmap.c b/tests-mx32/old_mmap.c index 92ab3efb..f095bc43 100644 --- a/tests-mx32/old_mmap.c +++ b/tests-mx32/old_mmap.c @@ -2,14 +2,14 @@ * Check decoding of "old mmap" edition of mmap syscall. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" /* * On s390x and m68k, this is the mmap syscall used by glibc, so, @@ -22,6 +22,7 @@ || defined __s390__ || defined __s390x__) \ && (defined PATH_TRACING || !(defined __s390x__ || defined __m68k__)) +# include # include # include # include @@ -35,8 +36,9 @@ int main(void) { long rc = syscall(__NR_mmap, 0); + const bool implemented = rc != -1 || errno != ENOSYS; # ifndef PATH_TRACING - printf("mmap(NULL) = %ld %s (%m)\n", rc, errno2name()); + printf("mmap(NULL) = %s\n", sprintrc(rc)); # endif const unsigned long args1_c[6] = { @@ -60,42 +62,51 @@ main(void) rc = syscall(__NR_mmap, args); # if XLAT_RAW - printf("mmap(%#lx, %lu, %#x, %#x, %d, %#lx) = %ld %s (%m)\n", + printf("mmap(%#lx, %lu, %#x, %#x, %d, %#lx) = %s\n", args1_c[0], args1_c[1], PROT_READ|PROT_EXEC, MAP_FILE | MAP_FIXED, - (int) args1_c[4], args1_c[5], rc, errno2name()); + (int) args1_c[4], args1_c[5], sprintrc(rc)); # elif XLAT_VERBOSE printf("mmap(%#lx, %lu, %#x /* PROT_READ|PROT_EXEC */" - ", %#x /* MAP_FILE|MAP_FIXED */, %d, %#lx) = %ld %s (%m)\n", + ", %#x /* MAP_FILE|MAP_FIXED */, %d, %#lx) = %s\n", args1_c[0], args1_c[1], PROT_READ|PROT_EXEC, MAP_FILE | MAP_FIXED, - (int) args1_c[4], args1_c[5], rc, errno2name()); + (int) args1_c[4], args1_c[5], sprintrc(rc)); # else printf("mmap(%#lx, %lu, PROT_READ|PROT_EXEC, MAP_FILE|MAP_FIXED" - ", %d, %#lx) = %ld %s (%m)\n", + ", %d, %#lx) = %s\n", args1_c[0], args1_c[1], (int) args1_c[4], args1_c[5], - rc, errno2name()); + sprintrc(rc)); # endif memcpy(args, args2_c, sizeof(args2_c)); rc = syscall(__NR_mmap, args); # ifndef PATH_TRACING + const char *errstr; + if (implemented) { + char *str; + if (asprintf(&str, "%#lx", rc) < 0) + perror_msg_and_fail("asprintf"); + errstr = str; + } else { + errstr = sprintrc(rc); + } # if XLAT_RAW - printf("mmap(NULL, %lu, %#x, %#x, %d, %#lx) = %#lx\n", + printf("mmap(NULL, %lu, %#x, %#x, %d, %#lx) = %s\n", args2_c[1], PROT_READ|PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, - (int) args2_c[4], args2_c[5], rc); + (int) args2_c[4], args2_c[5], errstr); # elif XLAT_VERBOSE printf("mmap(NULL, %lu, %#x /* PROT_READ|PROT_WRITE */" - ", %#x /* MAP_PRIVATE|MAP_ANONYMOUS */, %d, %#lx) = %#lx\n", + ", %#x /* MAP_PRIVATE|MAP_ANONYMOUS */, %d, %#lx) = %s\n", args2_c[1], PROT_READ|PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, - (int) args2_c[4], args2_c[5], rc); + (int) args2_c[4], args2_c[5], errstr); # else printf("mmap(NULL, %lu, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS" - ", %d, %#lx) = %#lx\n", - args2_c[1], (int) args2_c[4], args2_c[5], rc); + ", %d, %#lx) = %s\n", + args2_c[1], (int) args2_c[4], args2_c[5], errstr); # endif # endif void *addr = (void *) rc; - if (mprotect(addr, page_size, PROT_NONE)) + if (implemented && mprotect(addr, page_size, PROT_NONE)) perror_msg_and_fail("mprotect(%p, %lu, PROT_NONE)", addr, page_size); diff --git a/tests-mx32/oldfstat.c b/tests-mx32/oldfstat.c index c2624777..12f0645b 100644 --- a/tests-mx32/oldfstat.c +++ b/tests-mx32/oldfstat.c @@ -3,14 +3,14 @@ * * Copyright (c) 2015-2016 Dmitry V. Levin * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_oldfstat && HAVE_STRUCT___OLD_KERNEL_STAT diff --git a/tests-mx32/oldlstat.c b/tests-mx32/oldlstat.c index 0444b17f..d6e8f4e3 100644 --- a/tests-mx32/oldlstat.c +++ b/tests-mx32/oldlstat.c @@ -3,14 +3,14 @@ * * Copyright (c) 2015-2016 Dmitry V. Levin * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_oldlstat && HAVE_STRUCT___OLD_KERNEL_STAT diff --git a/tests-mx32/oldselect-efault.c b/tests-mx32/oldselect-efault.c index 4e927521..5c555382 100644 --- a/tests-mx32/oldselect-efault.c +++ b/tests-mx32/oldselect-efault.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_select && defined __NR__newselect \ && __NR_select != __NR__newselect \ diff --git a/tests-mx32/oldselect.c b/tests-mx32/oldselect.c index 0af35541..b6f83081 100644 --- a/tests-mx32/oldselect.c +++ b/tests-mx32/oldselect.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_select && defined __NR__newselect \ && __NR_select != __NR__newselect \ diff --git a/tests-mx32/oldstat.c b/tests-mx32/oldstat.c index 03b40335..022dd33c 100644 --- a/tests-mx32/oldstat.c +++ b/tests-mx32/oldstat.c @@ -3,14 +3,14 @@ * * Copyright (c) 2015-2016 Dmitry V. Levin * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_oldstat && HAVE_STRUCT___OLD_KERNEL_STAT diff --git a/tests-mx32/open.c b/tests-mx32/open.c index 43a3ae68..05e1fb0f 100644 --- a/tests-mx32/open.c +++ b/tests-mx32/open.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_open diff --git a/tests-mx32/open_tree-P.c b/tests-mx32/open_tree-P.c new file mode 100644 index 00000000..0097d763 --- /dev/null +++ b/tests-mx32/open_tree-P.c @@ -0,0 +1,2 @@ +#define PATH_TRACING +#include "open_tree.c" diff --git a/tests-mx32/open_tree-P.gen.test b/tests-mx32/open_tree-P.gen.test new file mode 100755 index 00000000..73d5cdb2 --- /dev/null +++ b/tests-mx32/open_tree-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (open_tree-P -a30 --decode-fds -P /dev/full -e trace=open_tree); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a30 --decode-fds -P /dev/full -e trace=open_tree diff --git a/tests-mx32/open_tree.c b/tests-mx32/open_tree.c new file mode 100644 index 00000000..bdce09ea --- /dev/null +++ b/tests-mx32/open_tree.c @@ -0,0 +1,110 @@ +/* + * Check decoding of open_tree syscall. + * + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_open_tree + +# include +# include +# include +# include +# include + +static const char *errstr; + +static long +k_open_tree(const unsigned int dfd, + const void *fname, + const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | dfd; + const kernel_ulong_t arg2 = (uintptr_t) fname; + const kernel_ulong_t arg3 = fill | flags; + const long rc = syscall(__NR_open_tree, arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + skip_if_unavailable("/proc/self/fd/"); + + static const char path_full[] = "/dev/full"; + const char *const path = tail_memdup(path_full, sizeof(path_full)); + char *const fname = tail_alloc(PATH_MAX); + const void *const efault = fname + PATH_MAX; + const char *const empty = efault - 1; + fill_memory_ex(fname, PATH_MAX, '0', 10); + + int dfd = open(path, O_WRONLY); + if (dfd < 0) + perror_msg_and_fail("open: %s", path); + + k_open_tree(-1, 0, 1); +# ifndef PATH_TRACING + printf("open_tree(-1, NULL, %s) = %s\n", "OPEN_TREE_CLONE", errstr); +# endif + + k_open_tree(-100, fname, 0); +# ifndef PATH_TRACING + printf("open_tree(%s, \"%.*s\"..., 0) = %s\n", + "AT_FDCWD", (int) PATH_MAX - 1, fname, errstr); +# endif + + fname[PATH_MAX - 1] = '\0'; + k_open_tree(dfd, fname, 0x8000); + printf("open_tree(%d<%s>, \"%s\", %s) = %s\n", + dfd, path, fname, "AT_RECURSIVE", errstr); + +# ifdef O_CLOEXEC + k_open_tree(-1, efault, O_CLOEXEC | 1); +# ifndef PATH_TRACING + printf("open_tree(-1, %p, %s) = %s\n", + efault, "OPEN_TREE_CLONE|OPEN_TREE_CLOEXEC", errstr); +# endif + + k_open_tree(-1, empty, -1); +# ifndef PATH_TRACING + printf("open_tree(-1, \"\", %s|%#x) = %s\n", + "OPEN_TREE_CLONE|OPEN_TREE_CLOEXEC" + "|AT_SYMLINK_NOFOLLOW|AT_REMOVEDIR|AT_SYMLINK_FOLLOW" + "|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|AT_RECURSIVE", + -1U & ~0x9f01 & ~O_CLOEXEC, + errstr); +# endif +# endif /* O_CLOEXEC */ + + if (k_open_tree(-1, path, 0) < 0) + printf("open_tree(-1, \"%s\", 0) = %s\n", + path, errstr); + else + printf("open_tree(-1, \"%s\", 0) = %s<%s>\n", + path, errstr, path); + + if (k_open_tree(dfd, empty, 0x1000) < 0) + printf("open_tree(%d<%s>, \"\", %s) = %s\n", + dfd, path, "AT_EMPTY_PATH", errstr); + else + printf("open_tree(%d<%s>, \"\", %s) = %s<%s>\n", + dfd, path, "AT_EMPTY_PATH", errstr, path); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_open_tree") + +#endif diff --git a/tests-mx32/open_tree.gen.test b/tests-mx32/open_tree.gen.test new file mode 100755 index 00000000..535010bb --- /dev/null +++ b/tests-mx32/open_tree.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (open_tree -a30 -y); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a30 -y diff --git a/tests-mx32/openat.c b/tests-mx32/openat.c index d4a74178..8d1bca0b 100644 --- a/tests-mx32/openat.c +++ b/tests-mx32/openat.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2016 Katerina Koukiou - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_openat diff --git a/tests-mx32/openat2-Xabbrev.c b/tests-mx32/openat2-Xabbrev.c new file mode 100644 index 00000000..ba18bde0 --- /dev/null +++ b/tests-mx32/openat2-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "openat2.c" diff --git a/tests-mx32/openat2-Xabbrev.gen.test b/tests-mx32/openat2-Xabbrev.gen.test new file mode 100755 index 00000000..371daa37 --- /dev/null +++ b/tests-mx32/openat2-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (openat2-Xabbrev --trace=openat2 -a35 -Xabbrev); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff --trace=openat2 -a35 -Xabbrev diff --git a/tests-mx32/openat2-Xraw.c b/tests-mx32/openat2-Xraw.c new file mode 100644 index 00000000..7a50005a --- /dev/null +++ b/tests-mx32/openat2-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "openat2.c" diff --git a/tests-mx32/openat2-Xraw.gen.test b/tests-mx32/openat2-Xraw.gen.test new file mode 100755 index 00000000..bf5084e4 --- /dev/null +++ b/tests-mx32/openat2-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (openat2-Xraw --trace=openat2 -a32 -Xraw); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff --trace=openat2 -a32 -Xraw diff --git a/tests-mx32/openat2-Xverbose.c b/tests-mx32/openat2-Xverbose.c new file mode 100644 index 00000000..a69ad161 --- /dev/null +++ b/tests-mx32/openat2-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "openat2.c" diff --git a/tests-mx32/openat2-Xverbose.gen.test b/tests-mx32/openat2-Xverbose.gen.test new file mode 100755 index 00000000..946996b1 --- /dev/null +++ b/tests-mx32/openat2-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (openat2-Xverbose --trace=openat2 -a35 -Xverbose); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff --trace=openat2 -a35 -Xverbose diff --git a/tests-mx32/openat2-v-y-Xabbrev.c b/tests-mx32/openat2-v-y-Xabbrev.c new file mode 100644 index 00000000..daceedd8 --- /dev/null +++ b/tests-mx32/openat2-v-y-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "openat2-v-y.c" diff --git a/tests-mx32/openat2-v-y-Xabbrev.gen.test b/tests-mx32/openat2-v-y-Xabbrev.gen.test new file mode 100755 index 00000000..665be81e --- /dev/null +++ b/tests-mx32/openat2-v-y-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (openat2-v-y-Xabbrev --trace=openat2 -a35 -v -y -Xabbrev " +#include "openat2-v.c" diff --git a/tests-mx32/openat2-v-y.gen.test b/tests-mx32/openat2-v-y.gen.test new file mode 100755 index 00000000..9e4a3940 --- /dev/null +++ b/tests-mx32/openat2-v-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (openat2-v-y --trace=openat2 -a36 -v -y " +#include "openat2.c" diff --git a/tests-mx32/openat2-y.gen.test b/tests-mx32/openat2-y.gen.test new file mode 100755 index 00000000..5dad223c --- /dev/null +++ b/tests-mx32/openat2-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (openat2-y --trace=openat2 -a36 -y +# include +# include +# include +# include +# include +# include + +# ifdef HAVE_LINUX_OPENAT2 +# include +# endif + +# ifndef HAVE_LINUX_OPENAT2 +struct open_how { + uint64_t flags; + uint64_t mode; + uint64_t resolve; +}; +# endif + +# ifndef AT_FDCWD +# define AT_FDCWD -100 +# endif +# ifndef RESOLVE_NO_XDEV +# define RESOLVE_NO_XDEV 0x01 +# endif +# ifndef RESOLVE_IN_ROOT +# define RESOLVE_IN_ROOT 0x10 +# endif + +# ifndef O_TMPFILE +# if defined __hppa__ +# define __O_TMPFILE 040000000 +# elif defined __alpha__ +# define __O_TMPFILE 0100000000 +# elif defined __sparc__ +# define __O_TMPFILE 0200000000 +# else +# define __O_TMPFILE 020000000 +# endif +# endif + +# ifndef VERBOSE +# define VERBOSE 0 +# endif +# ifndef FD0_PATH +# define FD0_PATH "" +# endif + +static const char sample[] = "openat2.sample"; + +int +main(void) +{ + long rc; + const char *rcstr; + struct open_how *how = tail_alloc(sizeof(*how)); + struct open_how *how_big = tail_alloc(sizeof(*how_big) + 8); + + rc = syscall(__NR_openat2, 0, NULL, NULL, + (kernel_ulong_t) 0xdeadc0debadc0dedULL); + printf("openat2(0" FD0_PATH ", NULL, NULL, %llu) = %s\n", + (unsigned long long) (kernel_ulong_t) 0xdeadc0debadc0dedULL, + sprintrc(rc)); + + rc = syscall(__NR_openat2, -100, "", how + 1, sizeof(*how)); + printf("openat2(%s, \"\", %p, %zu) = %s\n", + XLAT_KNOWN(-100, "AT_FDCWD"), how + 1, sizeof(*how), + sprintrc(rc)); + + rc = syscall(__NR_openat2, -1, sample, how, 11); + printf("openat2(-1, \"%s\", %p, 11) = %s\n", sample, how, sprintrc(rc)); + + static struct strval64 flags[] = { + { ARG_STR(O_RDONLY|O_EXCL) }, + { ARG_STR(O_WRONLY|O_CREAT) }, + { ARG_STR(O_RDWR|O_LARGEFILE) }, +# ifdef O_TMPFILE + { ARG_STR(O_ACCMODE|O_TMPFILE) }, +# else + { ARG_STR(O_ACCMODE|__O_TMPFILE) }, +# endif + { ARG_ULL_STR(O_RDONLY|0xdeadface80000000) }, + }; + static uint64_t modes[] = { 0, 0777, 0xbadc0dedfacebeefULL }; + static struct strval64 resolve[] = { + { 0, NULL }, + { ARG_STR(RESOLVE_NO_XDEV) }, + { ARG_ULL_STR(RESOLVE_NO_XDEV|RESOLVE_IN_ROOT|0xfeedfacedcaffee0) }, + { 0xdec0dedbeefface0, NULL }, + }; + const size_t iters = MAX(MAX(ARRAY_SIZE(flags), ARRAY_SIZE(modes)), + ARRAY_SIZE(resolve)); + + + for (size_t i = 0; i < iters * 4; i++) { + how->flags = flags[i % ARRAY_SIZE(flags)].val; + how->mode = modes[i % ARRAY_SIZE(modes)]; + how->resolve = resolve[i % ARRAY_SIZE(resolve)].val; + + fill_memory(how_big + 1, 8); + memcpy(how_big, how, sizeof(*how)); + + for (size_t j = 0; j < 4; j++) { + rc = syscall(__NR_openat2, -1, sample, + j > 1 ? how_big : how, + j ? sizeof(*how) + 8 : sizeof(*how)); + rcstr = sprintrc(rc); + printf("openat2(-1, \"%s\", {flags=%s", + sample, + sprintxlat(flags[i % ARRAY_SIZE(flags)].str, + flags[i % ARRAY_SIZE(flags)].val, + NULL)); + + if (how->mode || (i % ARRAY_SIZE(flags) == 1) + || (i % ARRAY_SIZE(flags) == 3)) { + printf(", mode=%#03" PRIo64, + modes[i % ARRAY_SIZE(modes)]); + } + + printf(", resolve=%s", + sprintxlat(resolve[i % ARRAY_SIZE(resolve)].str, + resolve[i % ARRAY_SIZE(resolve)].val, + resolve[i % ARRAY_SIZE(resolve)].val + ? "RESOLVE_???" : NULL)); + if (j == 1) + printf(", ???"); + if (j == 2) { + printf(", /* bytes %zu..%zu */ \"\\x80\\x81" + "\\x82\\x83\\x84\\x85\\x86\\x87\"", + sizeof(*how), sizeof(*how) + 7); + } + printf("}, %zu) = %s\n", + j ? sizeof(*how) + 8 : sizeof(*how), rcstr); + + if (j == 2) + memset(how_big + 1, 0, 8); + } + } + + how->flags = O_RDONLY | O_NOCTTY; + how->mode = 0; + how->resolve = 0; + rc = syscall(__NR_openat2, -100, "/dev/full", how, sizeof(*how)); + printf("openat2(%s, \"/dev/full\", {flags=%s, resolve=0}, %zu)" + " = %s%s\n", + XLAT_KNOWN(-100, "AT_FDCWD"), XLAT_STR(O_RDONLY|O_NOCTTY), + sizeof(*how), sprintrc(rc), rc >= 0 ? FD0_PATH : ""); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_openat2"); + +#endif diff --git a/tests-mx32/openat2.gen.test b/tests-mx32/openat2.gen.test new file mode 100755 index 00000000..5add9e5b --- /dev/null +++ b/tests-mx32/openat2.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (openat2 -a35 ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a35 diff --git a/tests-mx32/options-syntax.test b/tests-mx32/options-syntax.test index 5e43b3ab..e9aaf30e 100755 --- a/tests-mx32/options-syntax.test +++ b/tests-mx32/options-syntax.test @@ -3,7 +3,7 @@ # Check strace options syntax. # # Copyright (c) 2016 Dmitry V. Levin -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -11,42 +11,212 @@ . "${srcdir=.}/syntax.sh" check_e "Invalid process id: '0'" -p 0 +check_e "Invalid process id: '0'" --attach=0 check_e "Invalid process id: '-42'" -p -42 +check_e "Invalid process id: '-42'" --attach=-42 check_e "Invalid process id: '$$.'" -p $$. +check_e "Invalid process id: '$$.'" --attach=$$. check_e "Invalid process id: 'a'" -p 1,a +check_e "Invalid process id: 'a'" --attach=1,a check_e "Syscall 'chdir' for -b isn't supported" -b chdir +check_e "Syscall 'chdir' for -b isn't supported" --detach-on=chdir check_e "Syscall 'chdir' for -b isn't supported" -b execve -b chdir +check_e "Syscall 'chdir' for -b isn't supported" --detach-on=execve --detach-on=chdir check_e_using_grep 'exec: File *name too long' "$(printf '%4096s' ' ')" ff_name="$(printf '%4084s' ' ')" check_e_using_grep "$ff_name: File *name too long" -ff -o "$ff_name" true +check_e_using_grep "$ff_name: File *name too long" -ff --output="$ff_name" true check_h 'must have PROG [ARGS] or -p PID' -check_h 'PROG [ARGS] must be specified with -D' -D -p $$ -check_h '-c and -C are mutually exclusive' -c -C true -check_h '-c and -C are mutually exclusive' -C -c true -check_h '(-c or -C) and -ff are mutually exclusive' -c -ff true -check_h '(-c or -C) and -ff are mutually exclusive' -C -ff true -check_h '-w must be given with (-c or -C)' -w true -check_h 'piping the output and -ff are mutually exclusive' -o '|' -ff true -check_h 'piping the output and -ff are mutually exclusive' -o '!' -ff true +check_h "must have PROG [ARGS] or -p PID" --absolute-timestamps +check_h "must have PROG [ARGS] or -p PID" --absolute-timestamps= +check_h "must have PROG [ARGS] or -p PID" --absolute-timestamps=, +check_h "must have PROG [ARGS] or -p PID" --absolute-timestamps=,s +check_h "must have PROG [ARGS] or -p PID" --absolute-timestamps=s, +check_h "must have PROG [ARGS] or -p PID" --absolute-timestamps=,, +check_h "must have PROG [ARGS] or -p PID" --absolute-timestamps=s,,none +check_h "must have PROG [ARGS] or -p PID" --timestamps --absolute-timestamps=ns --timestamps=none --absolute-timestamps=format:time,precision:s --timestamps=ns,format:unix --absolute-timestamps=us,precision:ms,unix,precision:ns --timestamps=format:none,time,precision:us +check_h "invalid --absolute-timestamps argument: 'ss'" --absolute-timestamps=ss +check_h "invalid --timestamps argument: 'format:s'" --timestamps=format:s +check_h "invalid --timestamps argument: 's,non'" --timestamps=s,non +check_h "invalid --timestamps argument: 'precision:none'" --timestamps=precision:none +check_e '-t and --absolute-timestamps cannot be provided simultaneously' -t --timestamps -p $$ +check_e '-t and --absolute-timestamps cannot be provided simultaneously' --absolute-timestamps -ttt -p $$ +check_e '-t and --absolute-timestamps cannot be provided simultaneously' -t --timestamps=ns -t -p $$ +check_e '-t and --absolute-timestamps cannot be provided simultaneously' --timestamps=ns -t --absolute-timestamps=unix -p $$ +check_h 'PROG [ARGS] must be specified with -D/--daemonize' -D -p $$ +check_h 'PROG [ARGS] must be specified with -D/--daemonize' -DD -p $$ +check_h 'PROG [ARGS] must be specified with -D/--daemonize' -DDD -p $$ +check_h 'PROG [ARGS] must be specified with -D/--daemonize' -DDDD -p $$ +check_h 'PROG [ARGS] must be specified with -D/--daemonize' --daemonize -p $$ +check_h 'PROG [ARGS] must be specified with -D/--daemonize' --daemonize=grandchild -p $$ +check_h 'PROG [ARGS] must be specified with -D/--daemonize' --daemonize=pgroup -p $$ +check_h 'PROG [ARGS] must be specified with -D/--daemonize' --daemonize=Pgrp -p $$ +check_h 'PROG [ARGS] must be specified with -D/--daemonize' --daemonize=SESSION -p $$ +check_h 'Too many -D'\''s (4), maximum supported -D count is 3' -DDDD /bin/true +check_e '-D and --daemonize cannot be provided simultaneously' -D --daemonize -p $$ +check_e '-D and --daemonize cannot be provided simultaneously' --daemonize -D -p $$ +check_e '-D and --daemonize cannot be provided simultaneously' --daemonize -v -D /bit/true +check_h "invalid --daemonize argument: 'pgr'" --daemonize=pgr +check_h '-c/--summary-only and -C/--summary are mutually exclusive' -c -C true +check_h '-c/--summary-only and -C/--summary are mutually exclusive' --summary-only --summary true +check_h '-c/--summary-only and -C/--summary are mutually exclusive' -C -c true +check_h '-c/--summary-only and -C/--summary are mutually exclusive' --summary --summary-only true +check_h '(-c/--summary-only or -C/--summary) and -ff/--output-separately are mutually exclusive' -c -ff true +check_h '(-c/--summary-only or -C/--summary) and -ff/--output-separately are mutually exclusive' --summary-only -ff true +check_h '(-c/--summary-only or -C/--summary) and -ff/--output-separately are mutually exclusive' -C -ff true +check_h '(-c/--summary-only or -C/--summary) and -ff/--output-separately are mutually exclusive' --summary -ff true +check_h '-w/--summary-wall-clock must be given with (-c/--summary-only or -C/--summary)' -w true +check_h '-w/--summary-wall-clock must be given with (-c/--summary-only or -C/--summary)' --summary-wall-clock true +check_h '-U/--summary-columns must be given with (-c/--summary-only or -C/--summary)' -U name,time,count,errors true +check_h '-U/--summary-columns must be given with (-c/--summary-only or -C/--summary)' --summary-columns=name,time,count,errors true +check_h 'piping the output and -ff/--output-separately are mutually exclusive' -o '|' -ff true +check_h 'piping the output and -ff/--output-separately are mutually exclusive' --output='|' -ff true +check_h 'piping the output and -ff/--output-separately are mutually exclusive' -o '!' -ff true +check_h 'piping the output and -ff/--output-separately are mutually exclusive' --output='!' -ff true check_h "invalid -a argument: '-42'" -a -42 check_h "invalid -O argument: '-42'" -O -42 check_h "invalid -s argument: '-42'" -s -42 +check_h "invalid --string-limit argument: '-42'" --string-limit=-42 check_h "invalid -s argument: '1073741824'" -s 1073741824 +check_h "invalid --string-limit argument: '1073741824'" --string-limit=1073741824 +check_h "must have PROG [ARGS] or -p PID" --follow-forks +check_h "must have PROG [ARGS] or -p PID" --follow-forks --output-separately +check_h "must have PROG [ARGS] or -p PID" -f --output-separately +check_h "must have PROG [ARGS] or -p PID" --output-separately +check_e '-f and --follow-forks cannot be provided simultaneously' -f --follow-forks -p $$ +check_e '-ff and --output-separately cannot be provided simultaneously' --output-separately -ff -p $$ +check_h "invalid -I argument: '0x1'" -I 0x1 +check_h "invalid -I argument: '0'" -I 0 +check_h "must have PROG [ARGS] or -p PID" -I1 +check_h "must have PROG [ARGS] or -p PID" -I 2 +check_h "must have PROG [ARGS] or -p PID" -I3 +check_h "must have PROG [ARGS] or -p PID" -I 4 check_h "invalid -I argument: '5'" -I 5 +check_h "must have PROG [ARGS] or -p PID" -I always +check_h "must have PROG [ARGS] or -p PID" -I anywhere +check_h "must have PROG [ARGS] or -p PID" -Iwaiting +check_h "must have PROG [ARGS] or -p PID" -I never +check_h "must have PROG [ARGS] or -p PID" -Inever_tstp +check_h "invalid -I argument: '=never'" -I=never +check_h "invalid -I argument: 'nevertheless'" -Inevertheless +check_h "invalid -I argument: 'nev'" -Inev +check_h "invalid --interruptible argument: '0x1'" --interruptible=0x1 +check_h "invalid --interruptible argument: '0'" --interruptible=0 +check_h "must have PROG [ARGS] or -p PID" --interruptible 1 +check_h "must have PROG [ARGS] or -p PID" --interruptible=2 +check_h "invalid --interruptible argument: '5'" --interruptible=5 +check_h "must have PROG [ARGS] or -p PID" --interruptible=anywhere +check_h "must have PROG [ARGS] or -p PID" --interruptible=waiting +check_h "must have PROG [ARGS] or -p PID" --interruptible=never +check_h "must have PROG [ARGS] or -p PID" --interruptible=never_tstp +check_h "invalid --interruptible argument: 'nevertheless'" --interruptible=nevertheless +check_h "invalid --interruptible argument: 'nev'" --interruptible=nev +check_h "must have PROG [ARGS] or -p PID" --relative-timestamps +check_h "must have PROG [ARGS] or -p PID" --relative-timestamps=s +check_h "must have PROG [ARGS] or -p PID" --relative-timestamps=ms +check_h "must have PROG [ARGS] or -p PID" --relative-timestamps=us +check_h "must have PROG [ARGS] or -p PID" --relative-timestamps=ns +check_h "invalid --relative-timestamps argument: 'n'" --relative-timestamps=n +check_h "invalid --relative-timestamps argument: 'ss'" --relative-timestamps=ss +check_h "must have PROG [ARGS] or -p PID" --syscall-times +check_h "must have PROG [ARGS] or -p PID" --syscall-times=s +check_h "must have PROG [ARGS] or -p PID" --syscall-times=ms +check_h "must have PROG [ARGS] or -p PID" --syscall-times=us +check_h "must have PROG [ARGS] or -p PID" --syscall-times=ns +check_h "invalid --syscall-times argument: 'n'" --syscall-times=n +check_h "invalid --syscall-times argument: 'ss'" --syscall-times=ss +check_h "must have PROG [ARGS] or -p PID" --strings-in-hex +check_h "must have PROG [ARGS] or -p PID" --strings-in-hex=all +check_h "must have PROG [ARGS] or -p PID" --strings-in-hex=non-ascii +check_h "invalid --strings-in-hex argument: 'al'" --strings-in-hex=al +check_h "invalid --strings-in-hex argument: 'alll'" --strings-in-hex=alll +check_h "invalid --strings-in-hex argument: 'ascii'" --strings-in-hex=ascii +check_h "must have PROG [ARGS] or -p PID" --quiet=all +check_h "must have PROG [ARGS] or -p PID" --quiet=none +check_h "must have PROG [ARGS] or -p PID" --quiet=\!attach +check_h "must have PROG [ARGS] or -p PID" --quiet=exit,exits,personality +check_e "invalid quiet 'detach'" --quiet=detach -p $$ +check_e "invalid quiet 'fds'" -q --quiet=fds -p $$ +check_e "invalid quiet 'detach'" --quiet=detach -p $$ +check_e '-q and -e quiet/--quiet cannot be provided simultaneously' -q --quiet -p $$ +check_e '-q and -e quiet/--quiet cannot be provided simultaneously' -q -e q=none -p $$ +check_e '-q and -e quiet/--quiet cannot be provided simultaneously' -q -e silent=attach,personality -p $$ + +check_h 'must have PROG [ARGS] or -p PID' -P . +check_h 'must have PROG [ARGS] or -p PID' -P . -P.. +check_h 'must have PROG [ARGS] or -p PID' --trace-path=. +check_h 'must have PROG [ARGS] or -p PID' --trace-path=. --trace-path .. +check_e "Requested path \"///\" resolved into \"/\" +$STRACE_EXE: Requested path \"/.\" resolved into \"/\" +$STRACE_EXE: -q and -e quiet/--quiet cannot be provided simultaneously" -q --quiet -P /// -P/. . + +for i in time time_percent time-percent time_total time-total total_time total-time min_time min-time time_min time-min shortest max_time max-time time_max time-max longest avg_time avg-time time_avg time-avg calls count error errors name syscall syscall_name syscall-name none nothing; do + check_h "must have PROG [ARGS] or -p PID" -S "$i" + check_h "must have PROG [ARGS] or -p PID" --summary-sort-by="$i" + if [ "x$i" != xnone -a "x$i" != xnothing ]; then + check_h "must have PROG [ARGS] or -p PID" -c -U "$i" + check_h "must have PROG [ARGS] or -p PID" --summary-only --summary-columns="$i" + fi +done +for i in time,time_total,avg_time,calls,errors,name time_percent,total_time,time_avg,count,error,syscall_name; do + check_h "must have PROG [ARGS] or -p PID" -c -U "$i" + check_h "must have PROG [ARGS] or -p PID" --summary-only --summary-columns="$i" +done +for i in non syscall_names; do + check_h "invalid sortby: '$i'" -S "$i" + check_h "invalid sortby: '$i'" --summary-sort-by="$i" + check_h "unknown column name: '$i'" -U "$i" + check_h "unknown column name: '$i'" --summary-columns="$i" +done +check_h "unknown column name: ''" -U time,,name +check_h "call summary column has been provided more than once: 'time_percent' (-U option residual: 'time_percent,time_total')" -U time,time_percent,time_total + +check_e '-x and --strings-in-hex cannot be provided simultaneously' -x --strings-in-hex -p $$ +check_e '-x and --strings-in-hex cannot be provided simultaneously' --strings-in-hex -p $$ -xx check_h "invalid -X argument: 'test'" -Xtest +check_h "invalid --const-print-style argument: 'test'" --const-print-style=test check_h "invalid -X argument: 'a'" -Xa +check_h "invalid --const-print-style argument: 'a'" --const-print-style=a check_h "invalid -X argument: 'abbreviated'" -X abbreviated +check_h "invalid --const-print-style argument: 'abbreviated'" --const-print-style=abbreviated +check_h "must have PROG [ARGS] or -p PID" --decode-fds +check_h "must have PROG [ARGS] or -p PID" --decode-fds=all +check_h "must have PROG [ARGS] or -p PID" --decode-fds=none +check_h "must have PROG [ARGS] or -p PID" --decode-fds=path +check_h "must have PROG [ARGS] or -p PID" --decode-fds=socket,dev +check_h "must have PROG [ARGS] or -p PID" --decode-fds=\!path +check_h "must have PROG [ARGS] or -p PID" --decode-fds=socket,path,dev +check_e "invalid decode-fds 'p'" --decode-fds=p -p $$ +check_e "invalid decode-fds 'device'" -y --decode-fds=device -p $$ +check_e "invalid decode-fds 'name'" --decode-fds=path,name -p $$ +check_e "invalid decode-fds 'sock'" -e decode-fd=sock -y -p $$ +check_e '-y and --decode-fds cannot be provided simultaneously' -y --decode-fds -p $$ +check_e '-y and --decode-fds cannot be provided simultaneously' -e decode-fd=all -yy -p $$ +check_e '-y and --decode-fds cannot be provided simultaneously' --decode-fds=none -y -p $$ check_h "incorrect personality designator '' in qualification 'getcwd@'" -e trace=getcwd@ check_h "incorrect personality designator '42' in qualification 'getcwd@42'" -e trace=getcwd@42 check_h "incorrect personality designator '42' in qualification 'getcwd@42'" -e trace=gettid,getcwd@42 check_h "incorrect personality designator '42' in qualification '23@42'" -e trace=23@42,123 +check_h '--seccomp-bpf cannot be used without -f/--follow-forks, disabling +-w/--summary-wall-clock must be given with (-c/--summary-only or -C/--summary)' --seccomp-bpf -w / +check_h '--seccomp-bpf is not enabled for processes attached with -p +-w/--summary-wall-clock must be given with (-c/--summary-only or -C/--summary)' --seccomp-bpf -f -p 1 -w + +check_h 'option -F is deprecated, please use -f/--follow-forks instead +-w/--summary-wall-clock must be given with (-c/--summary-only or -C/--summary)' -F -w / +check_h 'option -F is deprecated, please use -f/--follow-forks instead +-w/--summary-wall-clock must be given with (-c/--summary-only or -C/--summary)' -FF -w / +check_h 'deprecated option -F ignored +-w/--summary-wall-clock must be given with (-c/--summary-only or -C/--summary)' -fF -w / + check_e "invalid system call '/getcwd@ohmy'" -e trace=/getcwd@ohmy check_e "invalid -e kvm= argument: 'chdir'" -e kvm=chdir +check_e "invalid -e kvm= argument: 'chdir'" --kvm=chdir case "$STRACE_NATIVE_ARCH" in x86_64) @@ -59,7 +229,7 @@ x32) check_h "must have PROG [ARGS] or -p PID" -e trace=getcwd@32 check_h "must have PROG [ARGS] or -p PID" -e trace=getcwd@x32 ;; -aarch64|powerpc64|riscv|s390x|sparc64|tile) +aarch64|powerpc64|s390x|sparc64|tile) check_h "must have PROG [ARGS] or -p PID" -e trace=getcwd@64 check_h "must have PROG [ARGS] or -p PID" -e trace=getcwd@32 check_h "incorrect personality designator 'x32' in qualification 'getcwd@x32'" -e trace=getcwd@x32 @@ -93,21 +263,60 @@ if [ "$uid" -ge 0 ]; then if [ "$uid" -eq 0 ]; then umsg="Cannot find user ':nosuchuser:'" else - umsg='You must be root to use the -u option' + umsg='You must be root to use the -u/--username option' fi check_e "$umsg" -u :nosuchuser: true - for c in i r t T y; do - check_e "-$c has no effect with -c -$STRACE_EXE: $umsg" -u :nosuchuser: -c -$c true + for c in i/--instruction-pointer n/--syscall-number r/--relative-timestamps t/--absolute-timestamps T/--syscall-times y/--decode-fds; do + check_e "-$c has no effect with -c/--summary-only +$STRACE_EXE: $umsg" -u :nosuchuser: -c -${c%%/*} true done - check_e "-i has no effect with -c -$STRACE_EXE: -r has no effect with -c -$STRACE_EXE: -t has no effect with -c -$STRACE_EXE: -T has no effect with -c -$STRACE_EXE: -y has no effect with -c -$STRACE_EXE: $umsg" -u :nosuchuser: -cirtTy true + + check_e "-i/--instruction-pointer has no effect with -c/--summary-only +$STRACE_EXE: -n/--syscall-number has no effect with -c/--summary-only +$STRACE_EXE: -r/--relative-timestamps has no effect with -c/--summary-only +$STRACE_EXE: -t/--absolute-timestamps has no effect with -c/--summary-only +$STRACE_EXE: -T/--syscall-times has no effect with -c/--summary-only +$STRACE_EXE: -y/--decode-fds has no effect with -c/--summary-only +$STRACE_EXE: Only the last of -z/--successful-only/-Z/--failed-only options will take effect. See status qualifier for more complex filters. +$STRACE_EXE: $umsg" -u :nosuchuser: -cinrtTyzZ true + + for c in --output-separately -A/--output-append-mode; do + check_e "$c has no effect without -o/--output +$STRACE_EXE: $umsg" -u :nosuchuser: ${c%%/*} true + done + + check_e "-S/--summary-sort-by has no effect without (-c/--summary-only or -C/--summary) +$STRACE_EXE: $umsg" -u :nosuchuser: --summary-sort-by errors true + + check_e "--output-separately has no effect without -o/--output +$STRACE_EXE: -A/--output-append-mode has no effect without -o/--output +$STRACE_EXE: $umsg" -u :nosuchuser: --output-separately --output-append-mode true + + check_e "$umsg" -u :nosuchuser: -ff true + check_e "$umsg" -u :nosuchuser: --output-separately --follow-forks true + + check_e "Only the last of -z/--successful-only/-Z/--failed-only options will take effect. See status qualifier for more complex filters. +$STRACE_EXE: $umsg" -u :nosuchuser: -z --successful-only true + check_e "Only the last of -z/--successful-only/-Z/--failed-only options will take effect. See status qualifier for more complex filters. +$STRACE_EXE: $umsg" -u :nosuchuser: --successful-only -Z true + check_e "Only the last of -z/--successful-only/-Z/--failed-only options will take effect. See status qualifier for more complex filters. +$STRACE_EXE: $umsg" -u :nosuchuser: --successful-only --failed-only true + + check_e "-n/--syscall-number has no effect with -c/--summary-only +$STRACE_EXE: $umsg" --user=:nosuchuser: --syscall-number --summary-only true + + check_e "-i/--instruction-pointer has no effect with -c/--summary-only +$STRACE_EXE: $umsg" --user=:nosuchuser: --instruction-pointer --summary-only true +fi + +check_e_using_grep 'ptrace_setoptions = 0x[[:xdigit:]]+' -d / +check_e_using_grep 'ptrace_setoptions = 0x[[:xdigit:]]+' --debug / + +if [ -z "$(get_config_option ENABLE_STACKTRACE 1)" ]; then + check_e "Stack traces (-k/--stack-traces option) are not supported by this build of strace" -k + check_e "Stack traces (-k/--stack-traces option) are not supported by this build of strace" --stack-traces fi args='-p 2147483647' diff --git a/tests-mx32/orphaned_process_group.c b/tests-mx32/orphaned_process_group.c index 83ab6e39..13aacf36 100644 --- a/tests-mx32/orphaned_process_group.c +++ b/tests-mx32/orphaned_process_group.c @@ -1,7 +1,7 @@ /* * Check tracing of orphaned process group. * - * Copyright (c) 2019 The strace developers. + * Copyright (c) 2019-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -139,7 +139,7 @@ main(void) */ leader = getpid(); printf("%-5d --- %s {si_signo=%s, si_code=SI_TKILL" - ", si_pid=%d, si_uid=%u} ---\n", + ", si_pid=%d, si_uid=%d} ---\n", stopped, "SIGSTOP", "SIGSTOP", stopped, geteuid()); printf("%-5d --- stopped by SIGSTOP ---\n", stopped); printf("%-5d +++ exited with 0 +++\n", leader); diff --git a/tests-mx32/osf_utimes.c b/tests-mx32/osf_utimes.c index d721e394..3d864740 100644 --- a/tests-mx32/osf_utimes.c +++ b/tests-mx32/osf_utimes.c @@ -2,13 +2,14 @@ * Check decoding of osf_utimes syscall. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_osf_utimes diff --git a/tests-mx32/pause.c b/tests-mx32/pause.c index 0260a6bc..c03123b1 100644 --- a/tests-mx32/pause.c +++ b/tests-mx32/pause.c @@ -3,14 +3,14 @@ * * Copyright (c) 2015-2016 Dmitry V. Levin * Copyright (c) 2016 Fei Jie - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_pause diff --git a/tests-mx32/pc.c b/tests-mx32/pc.c index 0bc28d18..2ee0543a 100644 --- a/tests-mx32/pc.c +++ b/tests-mx32/pc.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2020 Dmitry V. Levin * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -27,7 +27,7 @@ int main(void) #endif /* write instruction pointer length to the log */ - assert(write(-1, NULL, 2 * sizeof(void *)) < 0); + assert(write(-1, (void *) 8UL, 2 * sizeof(void *)) < 0); /* just a noticeable line in the log */ assert(munmap(&main, 0) < 0); diff --git a/tests-mx32/pc.test b/tests-mx32/pc.test index 40221e57..c039d5d3 100755 --- a/tests-mx32/pc.test +++ b/tests-mx32/pc.test @@ -3,7 +3,7 @@ # Check -i option. # # Copyright (c) 2015 Dmitry V. Levin -# Copyright (c) 2015-2018 The strace developers. +# Copyright (c) 2015-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -14,11 +14,11 @@ check_prog sed run_prog > /dev/null -args="-if $args" +args="--quiet=attach,personality -if $args" $STRACE $args 2> "$LOG" || dump_log_and_fail_with "$STRACE $args failed" -len="$(sed -r -n 's/^\[[[:xdigit:]]+\] write\(-1, NULL, ([[:digit:]]{1,2})\)[[:space:]]+= -1 .*/\1/p' "$LOG")" && +len="$(sed -r -n 's/^\[[[:xdigit:]]+\] write\(-1, 0x8, ([[:digit:]]{1,2})\)[[:space:]]+= -1 .*/\1/p' "$LOG")" && [ -n "$len" ] && pid="$(sed -r -n 's/^\[[[:xdigit:]]{'"$len"'}\] --- SIGCHLD \{si_signo=SIGCHLD, si_code=CLD_(KILLED|DUMPED), si_pid=([[:digit:]]+), .*/\2/p' "$LOG")" && [ -n "$pid" ] && diff --git a/tests-mx32/perf_event_open.c b/tests-mx32/perf_event_open.c index ae38b6de..d2f5b869 100644 --- a/tests-mx32/perf_event_open.c +++ b/tests-mx32/perf_event_open.c @@ -2,14 +2,14 @@ * Check verbose decoding of perf_event_open syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_perf_event_open) && defined(HAVE_LINUX_PERF_EVENT_H) @@ -137,7 +137,7 @@ print_event_attr(struct perf_event_attr *attr_ptr, size_t size, STRACE_PEA_ABBREV_SIZE = offsetof(struct perf_event_attr, config) + sizeof(attr_ptr->config), - STRACE_PEA_SIZE = 112, + STRACE_PEA_SIZE = 120, }; uint32_t read_size; @@ -476,6 +476,28 @@ print_event_attr(struct perf_event_attr *attr_ptr, size_t size, goto end; } + val = ((uint16_t *) attr)[110 / sizeof(uint16_t)]; + if (val) + printf(" /* bytes 110..111: %#" PRIx16 " */", (uint16_t) val); + + if (size <= 112) { + cutoff = 112; + goto end; + } + + val = +# ifdef HAVE_STRUCT_PERF_EVENT_ATTR_AUX_SAMPLE_SIZE + attr->aux_sample_size; +# else + ((uint32_t *) attr)[112 / sizeof(uint32_t)]; +# endif + printf(", aux_sample_size=%" PRIu32, (uint32_t) val); + + if (size <= 116) { + cutoff = 116; + goto end; + } + cutoff = STRACE_PEA_SIZE; end: @@ -489,7 +511,7 @@ end: } /* These require aligned access, so no byte-grain checks possible */ -# if defined SPARC || defined SPARC64 || defined POWERPC || defined POWERPC64 +# if defined SPARC || defined SPARC64 || defined POWERPC || defined POWERPC64 || defined ARM # define ATTR_REC(sz) { tail_alloc((sz + 7) & ~7), sz } # else # define ATTR_REC(sz) { tail_alloc(sz), sz } @@ -512,7 +534,8 @@ end: "PERF_SAMPLE_BRANCH_CALL|" \ "PERF_SAMPLE_BRANCH_NO_FLAGS|" \ "PERF_SAMPLE_BRANCH_NO_CYCLES|" \ - "PERF_SAMPLE_BRANCH_TYPE_SAVE" + "PERF_SAMPLE_BRANCH_TYPE_SAVE|" \ + "PERF_SAMPLE_BRANCH_HW_INDEX" int main(void) @@ -529,7 +552,11 @@ main(void) static const size_t attr_v4_625_size = PERF_ATTR_SIZE_VER4 + 5; static const size_t attr_v4_875_size = PERF_ATTR_SIZE_VER4 + 7; static const size_t attr_v5_size = PERF_ATTR_SIZE_VER5; - static const size_t attr_big_size = PERF_ATTR_SIZE_VER5 + 32; + static const size_t attr_v5_25_size = PERF_ATTR_SIZE_VER5 + 2; + static const size_t attr_v5_5_size = PERF_ATTR_SIZE_VER5 + 4; + static const size_t attr_v5_75_size = PERF_ATTR_SIZE_VER5 + 6; + static const size_t attr_v6_size = PERF_ATTR_SIZE_VER6; + static const size_t attr_big_size = PERF_ATTR_SIZE_VER6 + 32; static const struct u64_val_str attr_types[] = { { ARG_STR(PERF_TYPE_HARDWARE) }, @@ -597,7 +624,7 @@ main(void) static const struct u64_val_str sample_types[] = { { ARG_STR(0) }, { 0x800, "PERF_SAMPLE_BRANCH_STACK" }, - { ARG_ULL_STR(0xdeadc0deda700000) " /* PERF_SAMPLE_??? */" }, + { ARG_ULL_STR(0xdeadc0deda600000) " /* PERF_SAMPLE_??? */" }, { 0xffffffffffffffffULL, "PERF_SAMPLE_IP|PERF_SAMPLE_TID|PERF_SAMPLE_TIME|" "PERF_SAMPLE_ADDR|PERF_SAMPLE_READ|" @@ -608,7 +635,8 @@ main(void) "PERF_SAMPLE_WEIGHT|PERF_SAMPLE_DATA_SRC|" "PERF_SAMPLE_IDENTIFIER|PERF_SAMPLE_TRANSACTION|" "PERF_SAMPLE_REGS_INTR|PERF_SAMPLE_PHYS_ADDR|" - "0xfffffffffff00000" }, + "PERF_SAMPLE_AUX|" + "0xffffffffffe00000" }, }; static const struct u64_val_str read_formats[] = { { ARG_STR(0) }, @@ -640,11 +668,11 @@ main(void) static const struct u64_val_str branch_sample_types[] = { { ARG_STR(0) }, { 0x80, "PERF_SAMPLE_BRANCH_ABORT_TX" }, - { 0x1ffff, BRANCH_TYPE_ALL }, + { 0x3ffff, BRANCH_TYPE_ALL }, { ARG_ULL_STR(0xdeadcaffeeec0000) " /* PERF_SAMPLE_BRANCH_??? */" }, { 0xffffffffffffffffULL, - BRANCH_TYPE_ALL "|0xfffffffffffe0000" } + BRANCH_TYPE_ALL "|0xfffffffffffc0000" } }; static const struct s32_val_str clockids[] = { { 11, "CLOCK_TAI" }, @@ -669,6 +697,10 @@ main(void) ATTR_REC(attr_v4_625_size), ATTR_REC(attr_v4_875_size), ATTR_REC(attr_v5_size), + ATTR_REC(attr_v5_25_size), + ATTR_REC(attr_v5_5_size), + ATTR_REC(attr_v5_75_size), + ATTR_REC(attr_v6_size), ATTR_REC(attr_big_size), }; @@ -776,6 +808,10 @@ main(void) ip_desc_str = precise_ip_descs[flags_data.flags.precise_ip]; # endif + if (((i % 17) == 3) && (size >= 112)) + ((uint16_t *) attr)[110 / sizeof(uint16_t)] = 0; + + if (i == 0) attr->size = size + 8; diff --git a/tests-mx32/perf_event_open_nonverbose.c b/tests-mx32/perf_event_open_nonverbose.c index b87cb2c6..d5a21a06 100644 --- a/tests-mx32/perf_event_open_nonverbose.c +++ b/tests-mx32/perf_event_open_nonverbose.c @@ -2,14 +2,14 @@ * Check decoding of perf_event_open syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_perf_event_open) && defined(HAVE_LINUX_PERF_EVENT_H) diff --git a/tests-mx32/pidfd_getfd-y.c b/tests-mx32/pidfd_getfd-y.c new file mode 100644 index 00000000..7e786555 --- /dev/null +++ b/tests-mx32/pidfd_getfd-y.c @@ -0,0 +1,3 @@ +#define PIDFD_PATH "" +#define FD0_PATH "" +#include "pidfd_getfd.c" diff --git a/tests-mx32/pidfd_getfd-y.gen.test b/tests-mx32/pidfd_getfd-y.gen.test new file mode 100755 index 00000000..9aa306ed --- /dev/null +++ b/tests-mx32/pidfd_getfd-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (pidfd_getfd-y --trace=pidfd_getfd -a18 -e signal=none -y >" +#include "pidfd_getfd.c" diff --git a/tests-mx32/pidfd_getfd-yy.gen.test b/tests-mx32/pidfd_getfd-yy.gen.test new file mode 100755 index 00000000..7c1ca019 --- /dev/null +++ b/tests-mx32/pidfd_getfd-yy.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (pidfd_getfd-yy --trace=pidfd_getfd -a18 -e signal=none -yy + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_pidfd_getfd + +# include +# include +# include +# include +# include +# include + +# ifndef PIDFD_PATH +# define PIDFD_PATH "" +# endif +# ifndef FD0_PATH +# define FD0_PATH "" +# endif +# ifndef PRINT_PIDFD +# define PRINT_PIDFD 0 +# endif + +static const char *errstr; + +static long +k_pidfd_getfd(const unsigned int pidfd, const unsigned int fd, + const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | pidfd; + const kernel_ulong_t arg2 = fill | fd; + const kernel_ulong_t arg3 = fill | flags; + const long rc = syscall(__NR_pidfd_getfd, + arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + long rc; + + rc = k_pidfd_getfd(-1U, -1U, 0); + printf("pidfd_getfd(-1, -1, 0) = %s\n", errstr); + + rc = k_pidfd_getfd(0, 0, 0xbadc0ded); + printf("pidfd_getfd(0" FD0_PATH ", 0, 0xbadc0ded) = %s\n", errstr); + + int child_wait_fds[2]; + if (pipe(child_wait_fds)) + perror_msg_and_fail("pipe"); + + int dupfd = dup(0); + int pid = fork(); + if (pid == 0) { + close(0); + close(child_wait_fds[1]); + if (read(child_wait_fds[0], &child_wait_fds[1], sizeof(int))) + _exit(2); + _exit(0); + } + close(dupfd); + + int pidfd = syscall(__NR_pidfd_open, pid, 0); +# if PRINT_PIDFD + char pidfd_str[sizeof("") + 3 * sizeof(int)]; + snprintf(pidfd_str, sizeof(pidfd_str), "", pid); +# else + const char *pidfd_str = PIDFD_PATH; +# endif + rc = k_pidfd_getfd(pidfd, dupfd, 0); + printf("pidfd_getfd(%d%s, %d%s, 0) = %s%s\n", + pidfd, pidfd >= 0 ? pidfd_str : "", + dupfd, pidfd >= 0 ? FD0_PATH : "", + errstr, rc >= 0 ? FD0_PATH : ""); + + puts("+++ exited with 0 +++"); + + close(child_wait_fds[1]); + int status; + assert(wait(&status) == pid); + assert(status == 0); + + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_pidfd_getfd"); + +#endif diff --git a/tests-mx32/pidfd_getfd.gen.test b/tests-mx32/pidfd_getfd.gen.test new file mode 100755 index 00000000..13a08d6c --- /dev/null +++ b/tests-mx32/pidfd_getfd.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (pidfd_getfd -a18 -Xverbose -e signal=none + * Copyright (c) 2019-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" +#include "pidns.h" + +#ifdef __NR_pidfd_open + +# include +# include +# ifdef PATH_TRACING +# include +# endif + +static const char *errstr; + +static long +k_pidfd_open(const unsigned int pid, const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | pid; + const kernel_ulong_t arg2 = fill | flags; + const long rc = syscall(__NR_pidfd_open, + arg1, arg2, bad, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + PIDNS_TEST_INIT; + +# if defined PATH_TRACING || defined PRINT_PATHS + skip_if_unavailable("/proc/self/fd/"); +# endif + +# ifdef PATH_TRACING + static const char path_full[] = "/dev/full"; + (void) close(0); + if (open(path_full, O_WRONLY)) + perror_msg_and_skip(path_full); +# endif + + k_pidfd_open(0, 0); +# ifndef PATH_TRACING + pidns_print_leader(); + printf("pidfd_open(0, 0) = %s\n", errstr); +# endif + + k_pidfd_open(-1U, 0); +# ifndef PATH_TRACING + pidns_print_leader(); + printf("pidfd_open(-1, 0) = %s\n", errstr); +# endif + + k_pidfd_open(0, -1U); +# ifndef PATH_TRACING + pidns_print_leader(); + printf("pidfd_open(0, %#x) = %s\n", -1U, errstr); +# endif + + const unsigned int flags = 0xfacefeed; + const int pid = getpid(); + + k_pidfd_open(pid, flags); +# ifndef PATH_TRACING + const char *pid_str = pidns_pid2str(PT_TGID); + pidns_print_leader(); + printf("pidfd_open(%d%s, %#x) = %s\n", + pid, pid_str, flags, errstr); +# endif + +# ifdef PRINT_PATHS + long rc = k_pidfd_open(pid, 0); + if (rc < 0) + perror_msg_and_skip("pidfd_open"); +# else + k_pidfd_open(pid, 0); +# endif + +# ifndef PATH_TRACING + pidns_print_leader(); + printf("pidfd_open(%d%s, 0) = " +# if defined PRINT_PIDFD + "%ld\n", pid, pid_str, rc, pid +# elif defined PRINT_PATHS + "%ld\n", pid, pid_str, rc +# else + "%s\n", pid, pid_str, errstr +# endif + ); +# endif + + pidns_print_leader(); + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_pidfd_open"); + +#endif diff --git a/tests-mx32/pidfd_open.gen.test b/tests-mx32/pidfd_open.gen.test new file mode 100755 index 00000000..4c240f38 --- /dev/null +++ b/tests-mx32/pidfd_open.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (pidfd_open -a17 ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a17 diff --git a/tests-mx32/pidfd_send_signal--pidns-translation.c b/tests-mx32/pidfd_send_signal--pidns-translation.c new file mode 100644 index 00000000..b04f10f5 --- /dev/null +++ b/tests-mx32/pidfd_send_signal--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "pidfd_send_signal.c" diff --git a/tests-mx32/pidfd_send_signal--pidns-translation.gen.test b/tests-mx32/pidfd_send_signal--pidns-translation.gen.test new file mode 100755 index 00000000..21191b00 --- /dev/null +++ b/tests-mx32/pidfd_send_signal--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (pidfd_send_signal--pidns-translation test_pidns -e trace=pidfd_send_signal); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -e trace=pidfd_send_signal diff --git a/tests-mx32/pidfd_send_signal.c b/tests-mx32/pidfd_send_signal.c index 014e43de..a6b2d28c 100644 --- a/tests-mx32/pidfd_send_signal.c +++ b/tests-mx32/pidfd_send_signal.c @@ -1,7 +1,7 @@ /* * Check decoding of pidfd_send_signal syscall. * - * Copyright (c) 2015-2019 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,8 +9,8 @@ #include "tests.h" #include -#include #include "scno.h" +#include "pidns.h" #ifdef __NR_pidfd_send_signal @@ -37,6 +37,8 @@ sys_pidfd_send_signal(int pidfd, int sig, const void *info, int flags) int main(void) { + PIDNS_TEST_INIT; + static const char null_path[] = "/dev/null"; int fd = open(null_path, O_RDONLY); @@ -47,19 +49,23 @@ main(void) const void *esi = (const void *) si + 1; sys_pidfd_send_signal(fd, SIGUSR1, esi, 0); + pidns_print_leader(); printf("pidfd_send_signal(%d, SIGUSR1, %p, 0) = %s\n", fd, esi, errstr); si->si_signo = SIGUSR1; si->si_code = SI_QUEUE; + si->si_pid = getpid(); sys_pidfd_send_signal(fd, SIGUSR2, si, -1); + pidns_print_leader(); printf("pidfd_send_signal(%d, SIGUSR2, {si_signo=SIGUSR1" - ", si_code=SI_QUEUE, si_errno=%d, si_pid=%u, si_uid=%u" + ", si_code=SI_QUEUE, si_errno=%u, si_pid=%d%s, si_uid=%d" ", si_value={int=%d, ptr=%p}}, %#x) = %s\n", - fd, si->si_errno, si->si_pid, si->si_uid, si->si_int, si->si_ptr, - -1U, errstr); + fd, si->si_errno, si->si_pid, pidns_pid2str(PT_TGID), si->si_uid, + si->si_int, si->si_ptr, -1U, errstr); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-mx32/pidns-cache.c b/tests-mx32/pidns-cache.c new file mode 100644 index 00000000..6319a7fd --- /dev/null +++ b/tests-mx32/pidns-cache.c @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" +#include "pidns.h" + +#if defined __NR_getpid && (!defined __NR_getxpid || __NR_getxpid != __NR_getpid) + +# include +# include +# include + +# define SYSCALL_COUNT 1000 + +/** + * Max ratio of the execution time with and without pidns translation. + */ +# define MAX_TIME_RATIO 20 + +static long +execute_syscalls(void) +{ + /* Load our PID in the cache */ + syscall(__NR_getpid); + + struct timeval stop, start; + gettimeofday(&start, NULL); + + for (int i = 0; i < SYSCALL_COUNT; i++) + syscall(__NR_getpid); + + gettimeofday(&stop, NULL); + + return (stop.tv_usec - start.tv_usec) + + (stop.tv_sec - start.tv_sec) * 1000000; +} + +int +main(void) +{ + long max_us = execute_syscalls() * MAX_TIME_RATIO; + + pidns_test_init(); + + long us = execute_syscalls(); + if (us > max_us) + error_msg_and_fail("pidns translation took too long: %ld us " + "(max: %ld us)", us, max_us); + + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_getpid") + +#endif diff --git a/tests-mx32/pidns-cache.test b/tests-mx32/pidns-cache.test new file mode 100755 index 00000000..e4df0821 --- /dev/null +++ b/tests-mx32/pidns-cache.test @@ -0,0 +1,15 @@ +#!/bin/sh +# +# Test pidns translation cache. +# +# Copyright (c) 2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +check_prog timeout + +run_prog > /dev/null +run_strace --pidns-translation -f -e trace=getpid $args diff --git a/tests-mx32/pidns.c b/tests-mx32/pidns.c new file mode 100644 index 00000000..4fe5b223 --- /dev/null +++ b/tests-mx32/pidns.c @@ -0,0 +1,237 @@ +/* + * Testing framework for PID namespace translation + * + * Copyright (c) 2020 Ákos Uzonyi + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ +#include "tests.h" +#include "pidns.h" +#include "nsfs.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifndef CLONE_NEWUSER +# define CLONE_NEWUSER 0x10000000 +#endif + +#ifndef CLONE_NEWPID +# define CLONE_NEWPID 0x20000000 +#endif + +static bool pidns_translation = false; +static bool pidns_unshared = false; + +/* Our PIDs in strace's namespace */ +static pid_t pidns_strace_ids[PT_COUNT]; + +void +pidns_print_leader(void) +{ + if (pidns_translation) + printf("%-5d ", pidns_strace_ids[PT_TID]); +} + +const char * +pidns_pid2str(enum pid_type type) +{ + static const char format[] = " /* %d in strace's PID NS */"; + static char buf[PT_COUNT][sizeof(format) + sizeof(int) * 3]; + + if (type < 0 || type >= PT_COUNT) + return ""; + + if (!pidns_unshared || !pidns_strace_ids[type]) + return ""; + + snprintf(buf[type], sizeof(buf[type]), format, pidns_strace_ids[type]); + return buf[type]; +} + +/** + * This function is like fork, but does a few more things. It sets up the + * child's PGID and SID according to the parameters. Also it fills the + * pidns_strace_ids array in the child's memory with the PIDs of the child in + * parent's PID namespace. In the parent it waits for the child to terminate + * (but leaves the zombie to use it later as a process group). If the child + * terminates with nonzero exit status, the test is failed. + * + * @param pgid The process group the child should be moved to. It's expected + * to be a PID of a zombie process (will be reaped). If + * negative, leave the child in the process group of the parent. + * If 0, move the process to its own process group. + * @param new_sid Wheather child should be moved to a new session. + */ +static pid_t +pidns_fork(pid_t pgid, bool new_sid) +{ + int strace_ids_pipe[2]; + if (pipe(strace_ids_pipe) < 0) + perror_msg_and_fail("pipe"); + + fflush(stdout); + pid_t pid = fork(); + if (pid < 0) + perror_msg_and_fail("fork"); + + if (!pid) { + close(strace_ids_pipe[1]); + + ssize_t len = read(strace_ids_pipe[0], pidns_strace_ids, + sizeof(pidns_strace_ids)); + if (len < 0) + perror_msg_and_fail("read"); + if (len != sizeof(pidns_strace_ids)) + error_msg_and_fail("read returned < sizeof(pidns_strace_ids)"); + + close(strace_ids_pipe[0]); + + if (pidns_strace_ids[PT_SID]) + setsid(); + + return 0; + } + + pidns_strace_ids[PT_TID] = pid; + pidns_strace_ids[PT_TGID] = pid; + pidns_strace_ids[PT_PGID] = 0; + pidns_strace_ids[PT_SID] = 0; + + if (!pgid) + pgid = pid; + + if (pgid > 0) { + if (setpgid(pid, pgid) < 0) + perror_msg_and_fail("setpgid"); + + pidns_strace_ids[PT_PGID] = pgid; + } + + /* Reap group leader to test PGID decoding */ + if (pgid > 0 && pgid != pid) { + int ret = waitpid(pgid, NULL, WNOHANG); + if (ret < 0) + perror_msg_and_fail("wait"); + if (!ret) + error_msg_and_fail("could not reap group leader"); + } + + if (new_sid) { + pidns_strace_ids[PT_SID] = pid; + pidns_strace_ids[PT_PGID] = pid; + } + + ssize_t len = write(strace_ids_pipe[1], pidns_strace_ids, + sizeof(pidns_strace_ids)); + if (len < 0) + perror_msg_and_fail("write"); + if (len != sizeof(pidns_strace_ids)) + error_msg_and_fail("write returned < sizeof(pidns_strace_ids)"); + + close(strace_ids_pipe[0]); + close(strace_ids_pipe[1]); + + /* WNOWAIT: leave the zombie, to be able to use it as a process group */ + siginfo_t siginfo; + if (waitid(P_PID, pid, &siginfo, WEXITED | WNOWAIT) < 0) + perror_msg_and_fail("wait"); + if (siginfo.si_code != CLD_EXITED || siginfo.si_status) + error_msg_and_fail("child terminated with nonzero exit status"); + + return pid; +} + +static void +create_init_process(void) +{ + int child_pipe[2]; + if (pipe(child_pipe) < 0) + perror_msg_and_fail("pipe"); + + pid_t pid = fork(); + if (pid < 0) + perror_msg_and_fail("fork"); + + if (!pid) { + close(child_pipe[1]); + if (read(child_pipe[0], &child_pipe[1], sizeof(int)) != 0) + _exit(1); + _exit(0); + } + + close(child_pipe[0]); +} + +void +check_ns_ioctl(void) +{ + int fd = open("/proc/self/ns/pid", O_RDONLY); + if (fd < 0) { + if (errno == ENOENT) + perror_msg_and_skip("opening /proc/self/ns/pid"); + else + perror_msg_and_fail("opening /proc/self/ns/pid"); + } + + int userns_fd = ioctl(fd, NS_GET_USERNS); + if (userns_fd < 0) { + if (errno == ENOTTY) + error_msg_and_skip("NS_* ioctl commands are not " + "supported by the kernel"); + else + perror_msg_and_fail("ioctl(NS_GET_USERNS)"); + } + + close(userns_fd); + close(fd); +} + +void +pidns_test_init(void) +{ + pidns_translation = true; + + check_ns_ioctl(); + + if (!pidns_fork(-1, false)) + return; + + /* Unshare user namespace too, so we do not need to be root */ + if (unshare(CLONE_NEWUSER | CLONE_NEWPID) < 0) { + if (errno == EPERM) + perror_msg_and_skip("unshare"); + + perror_msg_and_fail("unshare"); + } + + pidns_unshared = true; + + create_init_process(); + + if (!pidns_fork(-1, false)) + return; + + if (!pidns_fork(-1, true)) + return; + + pid_t pgid; + if (!(pgid = pidns_fork(0, false))) + return; + + if (!pidns_fork(pgid, false)) + return; + + exit(0); +} diff --git a/tests-mx32/pidns.h b/tests-mx32/pidns.h new file mode 100644 index 00000000..bafc0d77 --- /dev/null +++ b/tests-mx32/pidns.h @@ -0,0 +1,56 @@ +/* + * Test PID namespace translation + * + * Copyright (c) 2020 Ákos Uzonyi + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ +#ifndef STRACE_PIDNS_H +# define STRACE_PIDNS_H + +# ifdef PIDNS_TRANSLATION +# define PIDNS_TEST_INIT pidns_test_init() +# else +# define PIDNS_TEST_INIT +# endif + +# include + +enum pid_type { + PT_TID, + PT_TGID, + PT_PGID, + PT_SID, + + PT_COUNT, + PT_NONE = -1 +}; + +/* Prints leader (process tid) if pidns_test_init was called */ +void pidns_print_leader(void); + +/* + * Returns a static buffer containing the translation string of our PID. + */ +const char *pidns_pid2str(enum pid_type type); + +/** + * Skips the test if NS_* ioctl commands are not supported by the kernel. + */ +void check_ns_ioctl(void); + +/** + * Init pidns testing. + * + * Should be called at the beginning of the test's main function + * + * This function calls fork a couple of times, and returns in the child + * processes. These child processes are in a new PID namespace with different + * PID configurations (group leader, session leader, ...). If any child + * terminates with nonzero exit status the test is failed. Otherwise the test is + * succesful, and the parent process exits with 0. + */ +void pidns_test_init(void); + +#endif \ No newline at end of file diff --git a/tests-mx32/pipe.c b/tests-mx32/pipe.c index bdfc7565..2f357114 100644 --- a/tests-mx32/pipe.c +++ b/tests-mx32/pipe.c @@ -2,14 +2,14 @@ * Check decoding of pipe syscall. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_pipe diff --git a/tests-mx32/pipe2.c b/tests-mx32/pipe2.c index d948a1c6..83a3d4c2 100644 --- a/tests-mx32/pipe2.c +++ b/tests-mx32/pipe2.c @@ -2,13 +2,14 @@ * Check decoding of pipe2 syscall. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_pipe2 diff --git a/tests-mx32/pkey_alloc.c b/tests-mx32/pkey_alloc.c index 6a92be40..a76266ca 100644 --- a/tests-mx32/pkey_alloc.c +++ b/tests-mx32/pkey_alloc.c @@ -2,14 +2,13 @@ * Check decoding of pkey_alloc syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_pkey_alloc diff --git a/tests-mx32/pkey_free.c b/tests-mx32/pkey_free.c index 7bcb3f9a..b1759e23 100644 --- a/tests-mx32/pkey_free.c +++ b/tests-mx32/pkey_free.c @@ -2,14 +2,13 @@ * Check decoding of pkey_free syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_pkey_free diff --git a/tests-mx32/pkey_mprotect.c b/tests-mx32/pkey_mprotect.c index c9c96daa..9a711a0f 100644 --- a/tests-mx32/pkey_mprotect.c +++ b/tests-mx32/pkey_mprotect.c @@ -2,14 +2,13 @@ * Check decoding of pkey_mprotect syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_pkey_mprotect diff --git a/tests-mx32/poll-P.test b/tests-mx32/poll-P.test index 8ba2d303..68121614 100755 --- a/tests-mx32/poll-P.test +++ b/tests-mx32/poll-P.test @@ -2,20 +2,20 @@ # # Check path tracing of poll syscall. # -# Copyright (c) 2018 The strace developers. +# Copyright (c) 2018-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" -run_prog > /dev/null +run_prog > /dev/null 9>>/dev/full run_strace -a16 -vepoll -P /dev/full 9>>/dev/full \ $args > "$EXP" match_diff "$LOG" "$EXP" for abbrev in 0 1 2 3 4 5; do - run_prog "../$NAME" $abbrev > /dev/null + run_prog "../$NAME" $abbrev > /dev/null 9>>/dev/full run_strace -a16 -epoll -s$abbrev -P /dev/full 9>>/dev/full \ $args > "$EXP" match_diff "$LOG" "$EXP" diff --git a/tests-mx32/poll.c b/tests-mx32/poll.c index c08bee8e..846af5a7 100644 --- a/tests-mx32/poll.c +++ b/tests-mx32/poll.c @@ -2,13 +2,14 @@ * Check decoding of poll syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_poll diff --git a/tests-mx32/ppoll.c b/tests-mx32/ppoll.c index e7a4474f..9ada526d 100644 --- a/tests-mx32/ppoll.c +++ b/tests-mx32/ppoll.c @@ -2,13 +2,14 @@ * Check decoding of ppoll syscall. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_ppoll diff --git a/tests-mx32/prctl-arg2-intptr.c b/tests-mx32/prctl-arg2-intptr.c index be894270..3a5d9113 100644 --- a/tests-mx32/prctl-arg2-intptr.c +++ b/tests-mx32/prctl-arg2-intptr.c @@ -4,14 +4,14 @@ * * Copyright (c) 2016 Eugene Syromyatnikov * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_prctl diff --git a/tests-mx32/prctl-dumpable.c b/tests-mx32/prctl-dumpable.c index 7740d52a..5c196025 100644 --- a/tests-mx32/prctl-dumpable.c +++ b/tests-mx32/prctl-dumpable.c @@ -3,14 +3,14 @@ * * Copyright (c) 2016 Eugene Syromyatnikov * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #include #if defined __NR_prctl && defined PR_GET_DUMPABLE && defined PR_SET_DUMPABLE \ diff --git a/tests-mx32/prctl-name.c b/tests-mx32/prctl-name.c index 16d85911..70cdc3e1 100644 --- a/tests-mx32/prctl-name.c +++ b/tests-mx32/prctl-name.c @@ -3,19 +3,16 @@ * * Copyright (c) 2016 Eugene Syromyatnikov * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include -#ifdef HAVE_PRCTL -# include -#endif - -#if defined HAVE_PRCTL && defined PR_GET_NAME && defined PR_SET_NAME +#if defined PR_GET_NAME && defined PR_SET_NAME # include # include @@ -79,6 +76,6 @@ main(void) #else -SKIP_MAIN_UNDEFINED("HAVE_PRCTL && PR_GET_NAME && PR_SET_NAME") +SKIP_MAIN_UNDEFINED("PR_GET_NAME && PR_SET_NAME") #endif diff --git a/tests-mx32/prctl-no-args.c b/tests-mx32/prctl-no-args.c index 8ce13d80..8f50ca2f 100644 --- a/tests-mx32/prctl-no-args.c +++ b/tests-mx32/prctl-no-args.c @@ -1,17 +1,18 @@ /* * Check decoding of prctl operations without arguments and return code parsing: * PR_GET_KEEPCAPS, PR_GET_SECCOMP, PR_GET_TIMERSLACK, PR_GET_TIMING, - * PR_TASK_PERF_EVENTS_DISABLE, and PR_TASK_PERF_EVENTS_ENABLE. + * PR_TASK_PERF_EVENTS_DISABLE, PR_TASK_PERF_EVENTS_ENABLE, and + * PR_GET_TAGGED_ADDR_CTRL. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_prctl @@ -36,6 +37,7 @@ main(void) { 30, "PR_GET_TIMERSLACK" }, { 31, "PR_TASK_PERF_EVENTS_DISABLE" }, { 32, "PR_TASK_PERF_EVENTS_ENABLE" }, + { 56, "PR_GET_TAGGED_ADDR_CTRL" }, }; TAIL_ALLOC_OBJECT_CONST_PTR(unsigned int, ptr); diff --git a/tests-mx32/prctl-pdeathsig.c b/tests-mx32/prctl-pdeathsig.c index 6ffbbad7..da79fdf0 100644 --- a/tests-mx32/prctl-pdeathsig.c +++ b/tests-mx32/prctl-pdeathsig.c @@ -3,21 +3,21 @@ * * Copyright (c) 2016 JingPiao Chen * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #include #if defined __NR_prctl && defined PR_GET_PDEATHSIG && defined PR_SET_PDEATHSIG # include # include -# include +# include int main(void) diff --git a/tests-mx32/prctl-seccomp-filter-v.c b/tests-mx32/prctl-seccomp-filter-v.c index f29cfad6..56bee2fc 100644 --- a/tests-mx32/prctl-seccomp-filter-v.c +++ b/tests-mx32/prctl-seccomp-filter-v.c @@ -2,7 +2,7 @@ * Check verbose decoding of prctl PR_SET_SECCOMP SECCOMP_MODE_FILTER. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -13,18 +13,14 @@ #include #include #include -#include - -#ifdef HAVE_PRCTL -# include -#endif +#include #ifdef HAVE_LINUX_SECCOMP_H # include #endif #include +#include "scno.h" -#if defined HAVE_PRCTL \ - && defined PR_SET_NO_NEW_PRIVS \ +#if defined PR_SET_NO_NEW_PRIVS \ && defined PR_SET_SECCOMP \ && defined SECCOMP_MODE_FILTER \ && defined SECCOMP_RET_ERRNO \ @@ -43,14 +39,14 @@ BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_KILL) # define PRINT_ALLOW_SYSCALL(nr) \ - printf("BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, %#x, 0, 0x1), " \ + printf("BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, %#lx, 0, 0x1), " \ "BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_ALLOW), ", \ - __NR_ ## nr) + (long) __NR_ ## nr) # define PRINT_DENY_SYSCALL(nr, err) \ - printf("BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, %#x, 0, 0x1), " \ + printf("BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, %#lx, 0, 0x1), " \ "BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_ERRNO|%#x), ", \ - __NR_ ## nr, err) + (long) __NR_ ## nr, err) static const struct sock_filter filter[] = { /* load syscall number */ @@ -117,7 +113,7 @@ main(void) #else -SKIP_MAIN_UNDEFINED("HAVE_PRCTL && PR_SET_NO_NEW_PRIVS && PR_SET_SECCOMP" +SKIP_MAIN_UNDEFINED("PR_SET_NO_NEW_PRIVS && PR_SET_SECCOMP" " && SECCOMP_MODE_FILTER && SECCOMP_RET_ERRNO" " && BPF_JUMP && BPF_STMT") diff --git a/tests-mx32/prctl-seccomp-strict.c b/tests-mx32/prctl-seccomp-strict.c index 0573126e..353b07ee 100644 --- a/tests-mx32/prctl-seccomp-strict.c +++ b/tests-mx32/prctl-seccomp-strict.c @@ -1,17 +1,16 @@ /* * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#ifdef HAVE_PRCTL -# include -#endif +#include +#include "scno.h" -#if defined HAVE_PRCTL && defined PR_SET_SECCOMP && defined __NR_exit +#if defined PR_SET_SECCOMP && defined __NR_exit # include # include @@ -36,7 +35,7 @@ main(void) rc = 0; } else { /* - * If kernel implementaton of SECCOMP_MODE_STRICT is buggy, + * If kernel implementation of SECCOMP_MODE_STRICT is buggy, * the following syscall will result to SIGKILL. */ rc = write(1, text1, LENGTH_OF(text1)) != LENGTH_OF(text1); @@ -48,6 +47,6 @@ main(void) #else -SKIP_MAIN_UNDEFINED("HAVE_PRCTL && PR_SET_SECCOMP && __NR_exit") +SKIP_MAIN_UNDEFINED("PR_SET_SECCOMP && __NR_exit") #endif diff --git a/tests-mx32/prctl-securebits.c b/tests-mx32/prctl-securebits.c index 5b32f5b5..8a9f1365 100644 --- a/tests-mx32/prctl-securebits.c +++ b/tests-mx32/prctl-securebits.c @@ -3,14 +3,14 @@ * * Copyright (c) 2016 Eugene Syromyatnikov * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #include #if defined __NR_prctl && defined PR_GET_SECUREBITS && defined PR_SET_SECUREBITS diff --git a/tests-mx32/prctl-spec-inject.c b/tests-mx32/prctl-spec-inject.c index 3fa2df2d..c37c4e71 100644 --- a/tests-mx32/prctl-spec-inject.c +++ b/tests-mx32/prctl-spec-inject.c @@ -9,7 +9,7 @@ */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_prctl diff --git a/tests-mx32/prctl-tid_address.c b/tests-mx32/prctl-tid_address.c index 9652f00d..14e5d395 100644 --- a/tests-mx32/prctl-tid_address.c +++ b/tests-mx32/prctl-tid_address.c @@ -2,14 +2,14 @@ * Check decoding of prctl PR_GET_TID_ADDRESS operation. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #include #if defined __NR_prctl && defined __NR_set_tid_address && \ diff --git a/tests-mx32/prctl-tsc.c b/tests-mx32/prctl-tsc.c index 0ac27ecd..20f9accd 100644 --- a/tests-mx32/prctl-tsc.c +++ b/tests-mx32/prctl-tsc.c @@ -3,14 +3,14 @@ * * Copyright (c) 2016 JingPiao Chen * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #include #if defined __NR_prctl && defined PR_GET_TSC && defined PR_SET_TSC diff --git a/tests-mx32/preadv.c b/tests-mx32/preadv.c index 3d1b504e..fcdac2e5 100644 --- a/tests-mx32/preadv.c +++ b/tests-mx32/preadv.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2014-2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -74,12 +74,7 @@ main(void) perror_msg_and_fail("preadv"); printf("preadv(0, [], 0, -3) = -1 EINVAL (%m)\n"); - static const char tmp[] = "preadv-tmpfile"; - int fd = open(tmp, O_RDWR | O_CREAT | O_TRUNC, 0600); - if (fd < 0) - perror_msg_and_fail("open"); - if (unlink(tmp)) - perror_msg_and_fail("unlink"); + int fd = create_tmpfile(O_RDWR); static const char w[] = "0123456789abcde"; if (write(fd, w, LENGTH_OF(w)) != LENGTH_OF(w)) diff --git a/tests-mx32/preadv2-pwritev2.c b/tests-mx32/preadv2-pwritev2.c index 1266562e..d6be10a8 100644 --- a/tests-mx32/preadv2-pwritev2.c +++ b/tests-mx32/preadv2-pwritev2.c @@ -9,7 +9,6 @@ */ #include "tests.h" -#include #include "scno.h" #if defined __NR_preadv2 && defined __NR_pwritev2 diff --git a/tests-mx32/print_ppid_tracerpid.c b/tests-mx32/print_ppid_tracerpid.c new file mode 100644 index 00000000..ae55371e --- /dev/null +++ b/tests-mx32/print_ppid_tracerpid.c @@ -0,0 +1,42 @@ +/* + * Helper program for strace-D.test + * + * Copyright (c) 2019-2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include +#include +#include + +int +main(void) +{ + static const char status[] = "/proc/self/status"; + FILE *fp = fopen(status, "r"); + if (!fp) + perror_msg_and_fail("fopen: %s", status); + + static const char prefix1[] = "PPid:"; + static const char prefix2[] = "TracerPid:"; + char *line = NULL; + size_t n = 0; + + while (getline(&line, &n, fp) > 0) { + if (strncmp(line, prefix1, sizeof(prefix1) - 1) == 0 || + strncmp(line, prefix2, sizeof(prefix2) - 1) == 0) + fputs(line, stdout); + } + + if (!line) + perror_msg_and_fail("getline"); + + free(line); + fclose(fp); + + return 0; +} diff --git a/tests-mx32/printflags.c b/tests-mx32/printflags.c index e9d66471..8793dfe0 100644 --- a/tests-mx32/printflags.c +++ b/tests-mx32/printflags.c @@ -17,21 +17,26 @@ int printflags(const struct xlat *xlat, unsigned long long flags, const char *const dflt) { - if (flags == 0 && xlat->val == 0 && xlat->str) { - fputs(xlat->str, stdout); + if (flags == 0 && xlat->data->val == 0 && xlat->data->str) { + fputs(xlat->data->str, stdout); return 1; } int n; + size_t i = 0; char sep = 0; - for (n = 0; xlat->str; xlat++) { - if (xlat->val && (flags & xlat->val) == xlat->val) { + const struct xlat_data *xd = xlat->data; + for (n = 0; i < xlat->size; xd++, i++) { + if (!xd->str) + continue; + + if (xd->val && (flags & xd->val) == xd->val) { if (sep) putc(sep, stdout); else sep = '|'; - fputs(xlat->str, stdout); - flags &= ~xlat->val; + fputs(xd->str, stdout); + flags &= ~xd->val; n++; } } diff --git a/tests-mx32/printpath-umovestr-undumpable.c b/tests-mx32/printpath-umovestr-undumpable.c index 216b6cac..6dd36230 100644 --- a/tests-mx32/printpath-umovestr-undumpable.c +++ b/tests-mx32/printpath-umovestr-undumpable.c @@ -1,19 +1,16 @@ /* * Force legacy printpath/umovestr using PR_SET_DUMPABLE. * - * Copyright (c) 2017-2018 Dmitry V. Levin + * Copyright (c) 2017-2020 Dmitry V. Levin * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include -#ifdef HAVE_PRCTL -# include -#endif - -#if defined HAVE_PRCTL && defined PR_SET_DUMPABLE +#ifdef PR_SET_DUMPABLE # include # include @@ -46,6 +43,6 @@ main(void) #else -SKIP_MAIN_UNDEFINED("HAVE_PRCTL && PR_SET_DUMPABLE") +SKIP_MAIN_UNDEFINED("PR_SET_DUMPABLE") #endif diff --git a/tests-mx32/printstrn-umoven-undumpable.c b/tests-mx32/printstrn-umoven-undumpable.c index be3f8d4b..d0600a2e 100644 --- a/tests-mx32/printstrn-umoven-undumpable.c +++ b/tests-mx32/printstrn-umoven-undumpable.c @@ -1,19 +1,16 @@ /* * Force legacy printpath/umovestr using PR_SET_DUMPABLE. * - * Copyright (c) 2017-2018 Dmitry V. Levin + * Copyright (c) 2017-2020 Dmitry V. Levin * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include -#ifdef HAVE_PRCTL -# include -#endif - -#if defined HAVE_PRCTL && defined PR_SET_DUMPABLE +#ifdef PR_SET_DUMPABLE # include # include @@ -46,6 +43,6 @@ main(void) #else -SKIP_MAIN_UNDEFINED("HAVE_PRCTL && PR_SET_DUMPABLE") +SKIP_MAIN_UNDEFINED("PR_SET_DUMPABLE") #endif diff --git a/tests-mx32/printxval-Xabbrev.c b/tests-mx32/printxval-Xabbrev.c new file mode 100644 index 00000000..902a386e --- /dev/null +++ b/tests-mx32/printxval-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_NAME(s_) s_##_abbrev +#include "printxval.c" diff --git a/tests-mx32/printxval-Xraw.c b/tests-mx32/printxval-Xraw.c new file mode 100644 index 00000000..eb92a713 --- /dev/null +++ b/tests-mx32/printxval-Xraw.c @@ -0,0 +1,3 @@ +#define XLAT_RAW 1 +#define XLAT_NAME(s_) s_##_raw +#include "printxval.c" diff --git a/tests-mx32/printxval-Xverbose.c b/tests-mx32/printxval-Xverbose.c new file mode 100644 index 00000000..f97529ed --- /dev/null +++ b/tests-mx32/printxval-Xverbose.c @@ -0,0 +1,3 @@ +#define XLAT_VERBOSE 1 +#define XLAT_NAME(s_) s_##_verbose +#include "printxval.c" diff --git a/tests-mx32/printxval.c b/tests-mx32/printxval.c index 0cd629e4..19714570 100644 --- a/tests-mx32/printxval.c +++ b/tests-mx32/printxval.c @@ -4,6 +4,7 @@ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey * Copyright (c) 1996-1999 Wichert Akkerman * Copyright (c) 2005-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -13,19 +14,87 @@ #include "xlat.h" #include -int -printxval(const struct xlat *xlat, unsigned long long val, - const char *const dflt) +#if !XLAT_RAW +static const char * +lookup_xlat(const struct xlat *xlat, unsigned long long val) { - for (; xlat->str; xlat++) { - if (xlat->val == val) { - fputs(xlat->str, stdout); - return 1; + const struct xlat_data *xd = xlat->data; + + for (size_t i = 0; i < xlat->size; i++, xd++) { + if (!xd->str) + continue; + + if (xd->val == val) { + return xd->str; } } + return NULL; +} +#endif + +int +XLAT_NAME(printxval)(const struct xlat *xlat, unsigned long long val, + const char *const dflt) +{ +#if XLAT_RAW printf("%#llx", val); + + return 1; +#else + const char *str = lookup_xlat(xlat, val); + +# if XLAT_VERBOSE + printf("%#llx", val); + if (str || dflt) + printf(" /* %s */", str ?: dflt); +# else + if (str) { + fputs(str, stdout); + } else { + printf("%#llx", val); + if (dflt) + printf(" /* %s */", dflt); + } +# endif /* XLAT_VERBOSE */ + + return !!str; +#endif /* XLAT_RAW */ +} + +const char * +XLAT_NAME(sprintxlat)(const char *str, unsigned long long val, + const char *const dflt) +{ + static char buf[256]; + +#if XLAT_RAW + snprintf(buf, sizeof(buf), "%#llx", val); +#elif XLAT_VERBOSE + if (str || dflt) + snprintf(buf, sizeof(buf), "%#llx /* %s */", val, str ?: dflt); + else + snprintf(buf, sizeof(buf), "%#llx", val); +#else + if (str) + return str; + if (dflt) - printf(" /* %s */", dflt); - return 0; + snprintf(buf, sizeof(buf), "%#llx /* %s */", val, dflt); + else + snprintf(buf, sizeof(buf), "%#llx", val); +#endif + + return buf; +} + +const char * +XLAT_NAME(sprintxval)(const struct xlat *xlat, unsigned long long val, + const char *const dflt) +{ +#if XLAT_RAW + return sprintxlat(NULL, val, dflt); +#else + return sprintxlat(lookup_xlat(xlat, val), val, dflt); +#endif } diff --git a/tests-mx32/prlimit64--pidns-translation.c b/tests-mx32/prlimit64--pidns-translation.c new file mode 100644 index 00000000..3972de66 --- /dev/null +++ b/tests-mx32/prlimit64--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "prlimit64.c" diff --git a/tests-mx32/prlimit64--pidns-translation.gen.test b/tests-mx32/prlimit64--pidns-translation.gen.test new file mode 100755 index 00000000..221f3c01 --- /dev/null +++ b/tests-mx32/prlimit64--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (prlimit64--pidns-translation test_pidns -e trace=prlimit64); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -e trace=prlimit64 diff --git a/tests-mx32/prlimit64.c b/tests-mx32/prlimit64.c index 688ca75f..eb2e9631 100644 --- a/tests-mx32/prlimit64.c +++ b/tests-mx32/prlimit64.c @@ -2,13 +2,14 @@ * Check decoding of prlimit64 syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_prlimit64 @@ -18,6 +19,7 @@ # include # include +# include "pidns.h" # include "xlat.h" # include "xlat/resources.h" @@ -41,26 +43,38 @@ sprint_rlim(uint64_t lim) int main(void) { + PIDNS_TEST_INIT; + unsigned long pid = (unsigned long) 0xdefaced00000000ULL | (unsigned) getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); uint64_t *const rlimit = tail_alloc(sizeof(*rlimit) * 2); - const struct xlat *xlat; + const struct xlat_data *xlat; + size_t i = 0; + + for (xlat = resources->data; i < resources->size; ++xlat, ++i) { + if (!xlat->str) + continue; - for (xlat = resources; xlat->str; ++xlat) { unsigned long res = 0xfacefeed00000000ULL | xlat->val; long rc = syscall(__NR_prlimit64, pid, res, 0, rlimit); + pidns_print_leader(); if (rc) - printf("prlimit64(%d, %s, NULL, %p) = %ld %s (%m)\n", - (unsigned) pid, xlat->str, rlimit, + printf("prlimit64(%d%s, %s, NULL, %p) =" + " %ld %s (%m)\n", + (unsigned) pid, pid_str, + xlat->str, rlimit, rc, errno2name()); else - printf("prlimit64(%d, %s, NULL" + printf("prlimit64(%d%s, %s, NULL" ", {rlim_cur=%s, rlim_max=%s}) = 0\n", - (unsigned) pid, xlat->str, + (unsigned) pid, pid_str, + xlat->str, sprint_rlim(rlimit[0]), sprint_rlim(rlimit[1])); } + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-mx32/process_vm_readv--pidns-translation.c b/tests-mx32/process_vm_readv--pidns-translation.c new file mode 100644 index 00000000..0db29ca2 --- /dev/null +++ b/tests-mx32/process_vm_readv--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "process_vm_readv.c" diff --git a/tests-mx32/process_vm_readv--pidns-translation.gen.test b/tests-mx32/process_vm_readv--pidns-translation.gen.test new file mode 100755 index 00000000..f8fc9441 --- /dev/null +++ b/tests-mx32/process_vm_readv--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (process_vm_readv--pidns-translation test_pidns -s5 -a37 -e trace=process_vm_readv); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -s5 -a37 -e trace=process_vm_readv diff --git a/tests-mx32/process_vm_readv.c b/tests-mx32/process_vm_readv.c index 422000b8..b69551d0 100644 --- a/tests-mx32/process_vm_readv.c +++ b/tests-mx32/process_vm_readv.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -7,7 +7,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_process_vm_readv diff --git a/tests-mx32/process_vm_readv_writev.c b/tests-mx32/process_vm_readv_writev.c index 9309135a..343bd362 100644 --- a/tests-mx32/process_vm_readv_writev.c +++ b/tests-mx32/process_vm_readv_writev.c @@ -2,7 +2,7 @@ * Check decoding of process_vm_readv/process_vm_writev syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,6 +12,7 @@ #include #include #include +#include "pidns.h" #if OP_WR # define in_iovec rmt_iovec @@ -121,7 +122,7 @@ print_iov(const struct iovec *iov, const void *arg_ptr, long rc) } static void -do_call(kernel_ulong_t pid, +do_call(kernel_ulong_t pid, enum pid_type pid_type, kernel_ulong_t local_iov, const char *local_arg, kernel_ulong_t liovcnt, kernel_ulong_t remote_iov, const char *remote_arg, @@ -135,7 +136,8 @@ do_call(kernel_ulong_t pid, flags); errstr = sprintrc(rc); - printf("%s(%d, ", OP_STR, (int) pid); + pidns_print_leader(); + printf("%s(%d%s, ", OP_STR, (int) pid, pidns_pid2str(pid_type)); if (pr_iov) pr_iov((const struct iovec *) (uintptr_t) local_iov, local_arg, @@ -164,6 +166,8 @@ ptr_cast(void *ptr) int main(void) { + PIDNS_TEST_INIT; + enum { SIZE_11 = 2, SIZE_12 = 3, @@ -243,18 +247,18 @@ main(void) fill_memory_ex(data2_out, SIZE_2, SEGM2_BASE, SIZE_2); - do_call(bogus_pid, (kernel_ulong_t) (uintptr_t) ARG_STR(NULL), + do_call(bogus_pid, PT_NONE, (kernel_ulong_t) (uintptr_t) ARG_STR(NULL), bogus_iovcnt1, (kernel_ulong_t) (uintptr_t) ARG_STR(NULL), bogus_iovcnt2, bogus_flags, NULL); - do_call(my_pid, ptr_cast(bogus_iov + ARRAY_SIZE(bogus_iovec)), + do_call(my_pid, PT_TGID, ptr_cast(bogus_iov + ARRAY_SIZE(bogus_iovec)), "[]", 0, ptr_cast(in_iov + ARRAY_SIZE(in_iovec)), "[]", 0, 0, NULL); - do_call(my_pid, ptr_cast(bogus_iov + ARRAY_SIZE(bogus_iovec)), NULL, - bogus_iovcnt1, ptr_cast(in_iov + ARRAY_SIZE(in_iovec)), NULL, - bogus_iovcnt2, 0, print_iov); + do_call(my_pid, PT_TGID, ptr_cast(bogus_iov + ARRAY_SIZE(bogus_iovec)), + NULL, bogus_iovcnt1, ptr_cast(in_iov + ARRAY_SIZE(in_iovec)), + NULL, bogus_iovcnt2, 0, print_iov); - do_call(my_pid, ptr_cast(bogus_iov), (char *) &bogus_arg, + do_call(my_pid, PT_TGID, ptr_cast(bogus_iov), (char *) &bogus_arg, ARRAY_SIZE(bogus_iovec), ptr_cast(rmt_iov + 2), (char *) &rmt_arg_cut, ARRAY_SIZE(rmt_iovec) - 2, 0, print_iov); @@ -263,7 +267,7 @@ main(void) lcl_arg_cut.check_rc = 1; #endif - do_call(my_pid, ptr_cast(lcl_iov + 2), (char *) &lcl_arg_cut, + do_call(my_pid, PT_TGID, ptr_cast(lcl_iov + 2), (char *) &lcl_arg_cut, ARRAY_SIZE(lcl_iovec) - 1, ptr_cast(bogus_iov + 2), (char *) &bogus_arg_cut, ARRAY_SIZE(bogus_iovec) - 1, 0, print_iov); @@ -273,15 +277,16 @@ main(void) rmt_arg_cut.addr_term = 1; rmt_arg_cut.count = 5; - do_call(my_pid, ptr_cast(lcl_iov + 2), (char *) &lcl_arg_cut, + do_call(my_pid, PT_TGID, ptr_cast(lcl_iov + 2), (char *) &lcl_arg_cut, ARRAY_SIZE(lcl_iovec) - 2, ptr_cast(rmt_iov + 1), (char *) &rmt_arg_cut, ARRAY_SIZE(rmt_iovec), 0, print_iov); /* Correct call */ - do_call(my_pid, ptr_cast(lcl_iov), (char *) &lcl_arg, + do_call(my_pid, PT_TGID, ptr_cast(lcl_iov), (char *) &lcl_arg, ARRAY_SIZE(lcl_iovec), ptr_cast(rmt_iov), (char *) &rmt_arg, ARRAY_SIZE(rmt_iovec), 0, print_iov); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; diff --git a/tests-mx32/process_vm_writev--pidns-translation.c b/tests-mx32/process_vm_writev--pidns-translation.c new file mode 100644 index 00000000..9ba6a39b --- /dev/null +++ b/tests-mx32/process_vm_writev--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "process_vm_writev.c" diff --git a/tests-mx32/process_vm_writev--pidns-translation.gen.test b/tests-mx32/process_vm_writev--pidns-translation.gen.test new file mode 100755 index 00000000..79d705c2 --- /dev/null +++ b/tests-mx32/process_vm_writev--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (process_vm_writev--pidns-translation test_pidns -s5 -a38 -e trace=process_vm_writev); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -s5 -a38 -e trace=process_vm_writev diff --git a/tests-mx32/process_vm_writev.c b/tests-mx32/process_vm_writev.c index 848a9e91..e7476b79 100644 --- a/tests-mx32/process_vm_writev.c +++ b/tests-mx32/process_vm_writev.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -7,7 +7,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_process_vm_writev diff --git a/tests-mx32/pselect6.c b/tests-mx32/pselect6.c index c8122e27..5660df2b 100644 --- a/tests-mx32/pselect6.c +++ b/tests-mx32/pselect6.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -16,7 +16,7 @@ #include #include #include -#include +#include "scno.h" #include #ifdef __NR_pselect6 diff --git a/tests-mx32/ptrace.c b/tests-mx32/ptrace.c index 63435a76..38e7037a 100644 --- a/tests-mx32/ptrace.c +++ b/tests-mx32/ptrace.c @@ -2,14 +2,14 @@ * Check decoding of ptrace syscall. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #include #include "ptrace.h" @@ -127,16 +127,16 @@ test_peeksiginfo(unsigned long pid, const unsigned long bad_request) printf("ptrace(PTRACE_PEEKSIGINFO, %u" ", {off=%llu, flags=0, nr=%u}" ", [{si_signo=SIGUSR1, si_code=SI_TKILL" - ", si_pid=%u, si_uid=%u}" + ", si_pid=%d, si_uid=%d}" ", {si_signo=SIGUSR2, si_code=SI_TKILL" - ", si_pid=%u, si_uid=%u}" + ", si_pid=%d, si_uid=%d}" ", {si_signo=SIGALRM, si_code=SI_TKILL" - ", si_pid=%u, si_uid=%u}" + ", si_pid=%d, si_uid=%d}" "]) = %s\n", (unsigned) pid, psi->off, psi->nr, - (unsigned) pid, (unsigned) uid, - (unsigned) pid, (unsigned) uid, - (unsigned) pid, (unsigned) uid, + (int) pid, (int) uid, + (int) pid, (int) uid, + (int) pid, (int) uid, errstr); } @@ -307,7 +307,7 @@ main(void) do_ptrace(PTRACE_SETSIGINFO, pid, bad_request, (unsigned long) sip); printf("ptrace(PTRACE_SETSIGINFO, %u, %#lx, {si_signo=SIGBUS" - ", si_code=BUS_ADRALN, si_errno=%d, si_addr=%p}) = %s\n", + ", si_code=BUS_ADRALN, si_errno=%u, si_addr=%p}) = %s\n", (unsigned) pid, bad_request, sip->si_errno, sip->si_addr, errstr); @@ -321,7 +321,7 @@ main(void) do_ptrace(PTRACE_SETSIGINFO, pid, bad_request, (unsigned long) sip); printf("ptrace(PTRACE_SETSIGINFO, %u, %#lx, {si_signo=SIGPROF" - ", si_code=%#x, si_errno=%d, si_pid=0, si_uid=3}) = %s\n", + ", si_code=%#x, si_errno=%u, si_pid=0, si_uid=3}) = %s\n", (unsigned) pid, bad_request, sip->si_code, sip->si_errno, errstr); @@ -349,7 +349,7 @@ main(void) do_ptrace(PTRACE_SETSIGINFO, pid, bad_request, (unsigned long) sip); printf("ptrace(PTRACE_SETSIGINFO, %u, %#lx, {si_signo=SIGSYS" - ", si_code=SYS_SECCOMP, si_errno=%d, si_call_addr=NULL" + ", si_code=SYS_SECCOMP, si_errno=%u, si_call_addr=NULL" ", si_syscall=__NR_read, si_arch=%#x /* AUDIT_ARCH_??? */})" " = %s\n", (unsigned) pid, bad_request, sip->si_errno, sip->si_arch, diff --git a/tests-mx32/ptrace_syscall_info.c b/tests-mx32/ptrace_syscall_info.c index ea29d22e..cb630adb 100644 --- a/tests-mx32/ptrace_syscall_info.c +++ b/tests-mx32/ptrace_syscall_info.c @@ -2,6 +2,7 @@ * Check decoding of ptrace PTRACE_GET_SYSCALL_INFO request. * * Copyright (c) 2018 Dmitry V. Levin + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +11,6 @@ #include "tests.h" #include "ptrace.h" -#include #include "scno.h" #include @@ -23,6 +23,10 @@ #include #include "xlat.h" +#define XLAT_MACROS_ONLY +/* For xlat/audit_arch.h */ +# include "xlat/elf_em.h" +#undef XLAT_MACROS_ONLY #include "xlat/audit_arch.h" static const char *errstr; @@ -94,11 +98,11 @@ static const unsigned long args[][7] = { }; static const unsigned int expected_none_size = - offsetof(struct ptrace_syscall_info, entry); + offsetof(struct_ptrace_syscall_info, entry); static const unsigned int expected_entry_size = - offsetofend(struct ptrace_syscall_info, entry.args); + offsetofend(struct_ptrace_syscall_info, entry.args); static const unsigned int expected_exit_size = - offsetofend(struct ptrace_syscall_info, exit.is_error); + offsetofend(struct_ptrace_syscall_info, exit.is_error); static unsigned long end_of_page; static unsigned int ptrace_stop; @@ -115,7 +119,7 @@ test_none(void) pid, end_of_page, errstr); for (unsigned int size = 0; - size <= sizeof(struct ptrace_syscall_info); ++size) { + size <= sizeof(struct_ptrace_syscall_info); ++size) { unsigned long buf = end_of_page - size; memset((void *) buf, -1, size); @@ -137,21 +141,21 @@ test_none(void) } /* copy to a local structure to avoid unaligned access */ - struct ptrace_syscall_info info; + struct_ptrace_syscall_info info; memcpy(&info, (void *) buf, MIN(size, expected_none_size)); if (info.op != PTRACE_SYSCALL_INFO_NONE) FAIL("signal stop mismatch"); printf("{op=PTRACE_SYSCALL_INFO_NONE"); - if (size < offsetofend(struct ptrace_syscall_info, arch)) + if (size < offsetofend(struct_ptrace_syscall_info, arch)) goto printed_none; if (!info.arch) FAIL("signal stop mismatch"); printf(", arch="); printxval(audit_arch, info.arch, "AUDIT_ARCH_???"); - if (size < offsetofend(struct ptrace_syscall_info, + if (size < offsetofend(struct_ptrace_syscall_info, instruction_pointer)) goto printed_none; if (!info.instruction_pointer) @@ -159,7 +163,7 @@ test_none(void) printf(", instruction_pointer=%#llx", (unsigned long long) info.instruction_pointer); - if (size < offsetofend(struct ptrace_syscall_info, + if (size < offsetofend(struct_ptrace_syscall_info, stack_pointer)) goto printed_none; if (!info.stack_pointer) @@ -178,7 +182,7 @@ static void test_entry(void) { for (unsigned int size = 0; - size <= sizeof(struct ptrace_syscall_info); ++size) { + size <= sizeof(struct_ptrace_syscall_info); ++size) { unsigned long buf = end_of_page - size; memset((void *) buf, -1, size); @@ -197,21 +201,21 @@ test_entry(void) } /* copy to a local structure to avoid unaligned access */ - struct ptrace_syscall_info info; + struct_ptrace_syscall_info info; memcpy(&info, (void *) buf, MIN(size, expected_entry_size)); if (info.op != PTRACE_SYSCALL_INFO_ENTRY) FAIL("#%d: entry stop mismatch", ptrace_stop); printf("{op=PTRACE_SYSCALL_INFO_ENTRY"); - if (size < offsetofend(struct ptrace_syscall_info, arch)) + if (size < offsetofend(struct_ptrace_syscall_info, arch)) goto printed_entry_common; if (!info.arch) FAIL("#%d: entry stop mismatch", ptrace_stop); printf(", arch="); printxval(audit_arch, info.arch, "AUDIT_ARCH_???"); - if (size < offsetofend(struct ptrace_syscall_info, + if (size < offsetofend(struct_ptrace_syscall_info, instruction_pointer)) goto printed_entry_common; if (!info.instruction_pointer) @@ -219,7 +223,7 @@ test_entry(void) printf(", instruction_pointer=%#llx", (unsigned long long) info.instruction_pointer); - if (size < offsetofend(struct ptrace_syscall_info, + if (size < offsetofend(struct_ptrace_syscall_info, stack_pointer)) goto printed_entry_common; if (!info.stack_pointer) @@ -227,7 +231,7 @@ test_entry(void) printf(", stack_pointer=%#llx", (unsigned long long) info.stack_pointer); - if (size < offsetofend(struct ptrace_syscall_info, entry.nr)) + if (size < offsetofend(struct_ptrace_syscall_info, entry.nr)) goto printed_entry_common; const unsigned long *exp_args = args[ptrace_stop / 2]; if (info.entry.nr != exp_args[0]) @@ -236,14 +240,19 @@ test_entry(void) for (unsigned int i = 0; i < ARRAY_SIZE(info.entry.args); ++i) { const unsigned int i_size = - offsetofend(struct ptrace_syscall_info, + offsetofend(struct_ptrace_syscall_info, entry.args[i]); if (size < i_size) { if (i) break; goto printed_entry_nr; } - if (info.entry.args[i] != exp_args[i + 1]) +#if SIZEOF_KERNEL_LONG_T > SIZEOF_LONG +# define CAST (unsigned long) +#else +# define CAST +#endif + if (CAST info.entry.args[i] != exp_args[i + 1]) FAIL("#%d: entry stop mismatch", ptrace_stop); printf("%s%#llx", (i ? ", " : ", arg=["), (unsigned long long) info.entry.args[i]); @@ -262,7 +271,7 @@ static void test_exit(void) { for (unsigned int size = 0; - size <= sizeof(struct ptrace_syscall_info); ++size) { + size <= sizeof(struct_ptrace_syscall_info); ++size) { unsigned long buf = end_of_page - size; memset((void *) buf, -1, size); @@ -281,21 +290,21 @@ test_exit(void) } /* copy to a local structure to avoid unaligned access */ - struct ptrace_syscall_info info; + struct_ptrace_syscall_info info; memcpy(&info, (void *) buf, MIN(size, expected_exit_size)); if (info.op != PTRACE_SYSCALL_INFO_EXIT) FAIL("#%d: exit stop mismatch", ptrace_stop); printf("{op=PTRACE_SYSCALL_INFO_EXIT"); - if (size < offsetofend(struct ptrace_syscall_info, arch)) + if (size < offsetofend(struct_ptrace_syscall_info, arch)) goto printed_exit_common; if (!info.arch) FAIL("#%d: exit stop mismatch", ptrace_stop); printf(", arch="); printxval(audit_arch, info.arch, "AUDIT_ARCH_???"); - if (size < offsetofend(struct ptrace_syscall_info, + if (size < offsetofend(struct_ptrace_syscall_info, instruction_pointer)) goto printed_exit_common; if (!info.instruction_pointer) @@ -303,7 +312,7 @@ test_exit(void) printf(", instruction_pointer=%#llx", (unsigned long long) info.instruction_pointer); - if (size < offsetofend(struct ptrace_syscall_info, + if (size < offsetofend(struct_ptrace_syscall_info, stack_pointer)) goto printed_exit_common; if (!info.stack_pointer) @@ -320,7 +329,7 @@ test_exit(void) { 0, pid, NULL } /* gettid */ }, *exp_param = &exit_param[ptrace_stop / 2 - 1]; - if (size < offsetofend(struct ptrace_syscall_info, exit.rval)) + if (size < offsetofend(struct_ptrace_syscall_info, exit.rval)) goto printed_exit_common; if (info.exit.rval != exp_param->rval) FAIL("#%d: exit stop mismatch", ptrace_stop); diff --git a/tests-mx32/pure_executables.am b/tests-mx32/pure_executables.am index cc844502..e2773a5c 100644 --- a/tests-mx32/pure_executables.am +++ b/tests-mx32/pure_executables.am @@ -11,10 +11,6 @@ PURE_EXECUTABLES = \ aio_pgetevents \ alarm \ bpf \ - bpf-obj_get_info_by_fd \ - bpf-obj_get_info_by_fd-prog \ - bpf-obj_get_info_by_fd-prog-v \ - bpf-obj_get_info_by_fd-v \ bpf-v \ brk \ btrfs \ @@ -26,13 +22,34 @@ PURE_EXECUTABLES = \ clock_adjtime \ clock_nanosleep \ clock_xettime \ + clone-flags \ + clone3 \ + clone3-Xabbrev \ + clone3-Xraw \ + clone3-Xverbose \ + close_range \ + close_range-P \ + close_range-y \ + close_range-yy \ copy_file_range \ creat \ delete_module \ + dev--decode-fds-dev \ + dev--decode-fds-path \ + dev--decode-fds-socket \ dev-yy \ dup \ + dup-P \ + dup-y \ + dup-yy \ dup2 \ + dup2-P \ + dup2-y \ + dup2-yy \ dup3 \ + dup3-P \ + dup3-y \ + dup3-yy \ epoll_create \ epoll_create1 \ epoll_ctl \ @@ -43,6 +60,13 @@ PURE_EXECUTABLES = \ execve \ execveat \ faccessat \ + faccessat-P \ + faccessat-y \ + faccessat-yy \ + faccessat2 \ + faccessat2-P \ + faccessat2-y \ + faccessat2-yy \ fadvise64 \ fadvise64_64 \ fallocate \ @@ -65,6 +89,12 @@ PURE_EXECUTABLES = \ file_ioctl \ finit_module \ flock \ + fsconfig \ + fsconfig-P \ + fsmount \ + fsopen \ + fspick \ + fspick-P \ fstat \ fstat-Xabbrev \ fstat-Xraw \ @@ -85,7 +115,9 @@ PURE_EXECUTABLES = \ getcpu \ getcwd \ getdents \ + getdents-v \ getdents64 \ + getdents64-v \ getegid \ getegid32 \ geteuid \ @@ -109,12 +141,17 @@ PURE_EXECUTABLES = \ getsockname \ getuid \ getuid32 \ - getxxid \ + getxgid \ + getxpid \ + getxuid \ group_req \ inet-cmsg \ init_module \ inotify \ + inotify_init \ + inotify_init-y \ inotify_init1 \ + inotify_init1-y \ io_uring_enter \ io_uring_register \ io_uring_setup \ @@ -122,6 +159,21 @@ PURE_EXECUTABLES = \ ioctl_block \ ioctl_dm \ ioctl_evdev \ + ioctl_evdev-Xabbrev \ + ioctl_evdev-Xraw \ + ioctl_evdev-Xverbose \ + ioctl_evdev-v \ + ioctl_evdev-v-Xabbrev \ + ioctl_evdev-v-Xraw \ + ioctl_evdev-v-Xverbose \ + ioctl_hdio \ + ioctl_hdio-Xabbrev \ + ioctl_hdio-Xraw \ + ioctl_hdio-Xverbose \ + ioctl_hdio-v \ + ioctl_hdio-v-Xabbrev \ + ioctl_hdio-v-Xraw \ + ioctl_hdio-v-Xverbose \ ioctl_inotify \ ioctl_kvm_run \ ioctl_kvm_run-v \ @@ -137,8 +189,17 @@ PURE_EXECUTABLES = \ ioctl_sg_io_v3 \ ioctl_sg_io_v4 \ ioctl_sock_gifconf \ + ioctl_tee \ ioctl_uffdio \ ioctl_v4l2 \ + ioctl_v4l2-Xabbrev \ + ioctl_v4l2-Xraw \ + ioctl_v4l2-Xverbose \ + ioctl_v4l2-v \ + ioctl_v4l2-v-Xabbrev \ + ioctl_v4l2-v-Xraw \ + ioctl_v4l2-v-Xverbose \ + ioctl_watchdog \ ioperm \ iopl \ ioprio \ @@ -187,7 +248,12 @@ PURE_EXECUTABLES = \ lstat \ lstat64 \ madvise \ + maybe_switch_current_tcp \ + maybe_switch_current_tcp--quiet-thread-execve \ mbind \ + mbind-Xabbrev \ + mbind-Xraw \ + mbind-Xverbose \ membarrier \ memfd_create \ memfd_create-Xabbrev \ @@ -217,6 +283,8 @@ PURE_EXECUTABLES = \ mount-Xabbrev \ mount-Xraw \ mount-Xverbose \ + move_mount \ + move_mount-P \ move_pages \ move_pages-Xabbrev \ move_pages-Xraw \ @@ -229,6 +297,10 @@ PURE_EXECUTABLES = \ msg_name \ munlockall \ nanosleep \ + net--decode-fds-dev-netlink \ + net--decode-fds-none-netlink \ + net--decode-fds-path-netlink \ + net--decode-fds-socket-netlink \ net-icmp_filter \ net-packet_mreq \ net-packet_mreq-Xabbrev \ @@ -308,7 +380,19 @@ PURE_EXECUTABLES = \ oldselect-efault \ oldstat \ open \ + open_tree \ + open_tree-P \ openat \ + openat2 \ + openat2-Xabbrev \ + openat2-Xraw \ + openat2-Xverbose \ + openat2-v \ + openat2-v-y \ + openat2-v-y-Xabbrev \ + openat2-v-y-Xraw \ + openat2-v-y-Xverbose \ + openat2-y \ osf_utimes \ pause \ perf_event_open \ @@ -316,6 +400,16 @@ PURE_EXECUTABLES = \ personality-Xabbrev \ personality-Xraw \ personality-Xverbose \ + pidfd_getfd \ + pidfd_getfd-y \ + pidfd_getfd-yy \ + pidfd_open \ + pidfd_open--decode-fd-path \ + pidfd_open--decode-fd-pidfd \ + pidfd_open--decode-fd-socket \ + pidfd_open-P \ + pidfd_open-y \ + pidfd_open-yy \ pidfd_send_signal \ pipe \ pipe2 \ @@ -323,9 +417,7 @@ PURE_EXECUTABLES = \ pkey_free \ pkey_mprotect \ poll \ - poll-P \ ppoll \ - ppoll-P \ prctl-arg2-intptr \ prctl-dumpable \ prctl-name \ @@ -367,7 +459,9 @@ PURE_EXECUTABLES = \ readlinkat \ readv \ reboot \ + recv-MSG_TRUNC \ recvfrom \ + recvfrom-MSG_TRUNC \ recvmmsg-timeout \ recvmsg \ remap_file_pages \ @@ -405,9 +499,14 @@ PURE_EXECUTABLES = \ seccomp_get_action_avail \ select \ semop \ + semop-indirect \ + semtimedop \ sendfile \ sendfile64 \ set_mempolicy \ + set_mempolicy-Xabbrev \ + set_mempolicy-Xraw \ + set_mempolicy-Xverbose \ setdomainname \ setfsgid \ setfsgid32 \ @@ -465,7 +564,23 @@ PURE_EXECUTABLES = \ stat64 \ statfs \ statfs64 \ + status-all \ + status-failed \ + status-failed-long \ + status-failed-status \ + status-none \ + status-none-f \ + status-successful \ + status-successful-long \ + status-successful-status \ + status-unfinished \ statx \ + strace--strings-in-hex \ + strace--strings-in-hex-all \ + strace--strings-in-hex-non-ascii \ + strace-n \ + strace-x \ + strace-xx \ swap \ sxetmask \ symlink \ @@ -476,12 +591,14 @@ PURE_EXECUTABLES = \ sysinfo \ syslog \ tee \ + tgkill \ time \ timer_create \ timer_xettime \ timerfd_xettime \ times \ times-fail \ + tkill \ truncate \ truncate64 \ ugetrlimit \ @@ -494,6 +611,8 @@ PURE_EXECUTABLES = \ umovestr-illptr \ umovestr2 \ umovestr3 \ + umovestr_cached \ + umovestr_cached_adjacent \ uname \ unlink \ unlinkat \ diff --git a/tests-mx32/pure_executables.list b/tests-mx32/pure_executables.list index 37225209..7d0f8495 100755 --- a/tests-mx32/pure_executables.list +++ b/tests-mx32/pure_executables.list @@ -1,6 +1,6 @@ # Executables without side effects. # -# Copyright (c) 2017-2019 The strace developers. +# Copyright (c) 2017-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -16,10 +16,6 @@ aio aio_pgetevents alarm bpf -bpf-obj_get_info_by_fd -bpf-obj_get_info_by_fd-prog -bpf-obj_get_info_by_fd-prog-v -bpf-obj_get_info_by_fd-v bpf-v brk btrfs @@ -31,13 +27,34 @@ chroot clock_adjtime clock_nanosleep clock_xettime +clone-flags +clone3 +clone3-Xabbrev +clone3-Xraw +clone3-Xverbose +close_range +close_range-P +close_range-y +close_range-yy copy_file_range creat delete_module +dev--decode-fds-dev +dev--decode-fds-path +dev--decode-fds-socket dev-yy dup +dup-P +dup-y +dup-yy dup2 +dup2-P +dup2-y +dup2-yy dup3 +dup3-P +dup3-y +dup3-yy epoll_create epoll_create1 epoll_ctl @@ -48,6 +65,13 @@ eventfd execve execveat faccessat +faccessat-P +faccessat-y +faccessat-yy +faccessat2 +faccessat2-P +faccessat2-y +faccessat2-yy fadvise64 fadvise64_64 fallocate @@ -70,6 +94,12 @@ file_handle file_ioctl finit_module flock +fsconfig +fsconfig-P +fsmount +fsopen +fspick +fspick-P fstat fstat-Xabbrev fstat-Xraw @@ -90,7 +120,9 @@ get_mempolicy getcpu getcwd getdents +getdents-v getdents64 +getdents64-v getegid getegid32 geteuid @@ -114,12 +146,17 @@ getsid getsockname getuid getuid32 -getxxid +getxgid +getxpid +getxuid group_req inet-cmsg init_module inotify +inotify_init +inotify_init-y inotify_init1 +inotify_init1-y io_uring_enter io_uring_register io_uring_setup @@ -127,6 +164,21 @@ ioctl ioctl_block ioctl_dm ioctl_evdev +ioctl_evdev-Xabbrev +ioctl_evdev-Xraw +ioctl_evdev-Xverbose +ioctl_evdev-v +ioctl_evdev-v-Xabbrev +ioctl_evdev-v-Xraw +ioctl_evdev-v-Xverbose +ioctl_hdio +ioctl_hdio-Xabbrev +ioctl_hdio-Xraw +ioctl_hdio-Xverbose +ioctl_hdio-v +ioctl_hdio-v-Xabbrev +ioctl_hdio-v-Xraw +ioctl_hdio-v-Xverbose ioctl_inotify ioctl_kvm_run ioctl_kvm_run-v @@ -142,8 +194,17 @@ ioctl_scsi ioctl_sg_io_v3 ioctl_sg_io_v4 ioctl_sock_gifconf +ioctl_tee ioctl_uffdio ioctl_v4l2 +ioctl_v4l2-Xabbrev +ioctl_v4l2-Xraw +ioctl_v4l2-Xverbose +ioctl_v4l2-v +ioctl_v4l2-v-Xabbrev +ioctl_v4l2-v-Xraw +ioctl_v4l2-v-Xverbose +ioctl_watchdog ioperm iopl ioprio @@ -192,7 +253,12 @@ lseek lstat lstat64 madvise +maybe_switch_current_tcp +maybe_switch_current_tcp--quiet-thread-execve mbind +mbind-Xabbrev +mbind-Xraw +mbind-Xverbose membarrier memfd_create memfd_create-Xabbrev @@ -222,6 +288,8 @@ mount mount-Xabbrev mount-Xraw mount-Xverbose +move_mount +move_mount-P move_pages move_pages-Xabbrev move_pages-Xraw @@ -234,6 +302,10 @@ msg_control msg_name munlockall nanosleep +net--decode-fds-dev-netlink +net--decode-fds-none-netlink +net--decode-fds-path-netlink +net--decode-fds-socket-netlink net-icmp_filter net-packet_mreq net-packet_mreq-Xabbrev @@ -313,7 +385,19 @@ oldselect oldselect-efault oldstat open +open_tree +open_tree-P openat +openat2 +openat2-Xabbrev +openat2-Xraw +openat2-Xverbose +openat2-v +openat2-v-y +openat2-v-y-Xabbrev +openat2-v-y-Xraw +openat2-v-y-Xverbose +openat2-y osf_utimes pause perf_event_open @@ -321,6 +405,16 @@ personality personality-Xabbrev personality-Xraw personality-Xverbose +pidfd_getfd +pidfd_getfd-y +pidfd_getfd-yy +pidfd_open +pidfd_open--decode-fd-path +pidfd_open--decode-fd-pidfd +pidfd_open--decode-fd-socket +pidfd_open-P +pidfd_open-y +pidfd_open-yy pidfd_send_signal pipe pipe2 @@ -328,9 +422,7 @@ pkey_alloc pkey_free pkey_mprotect poll -poll-P ppoll -ppoll-P prctl-arg2-intptr prctl-dumpable prctl-name @@ -372,7 +464,9 @@ readlink readlinkat readv reboot +recv-MSG_TRUNC recvfrom +recvfrom-MSG_TRUNC recvmmsg-timeout recvmsg remap_file_pages @@ -410,9 +504,14 @@ seccomp-filter seccomp_get_action_avail select semop +semop-indirect +semtimedop sendfile sendfile64 set_mempolicy +set_mempolicy-Xabbrev +set_mempolicy-Xraw +set_mempolicy-Xverbose setdomainname setfsgid setfsgid32 @@ -470,7 +569,23 @@ stat stat64 statfs statfs64 +status-all +status-failed +status-failed-long +status-failed-status +status-none +status-none-f +status-successful +status-successful-long +status-successful-status +status-unfinished statx +strace--strings-in-hex +strace--strings-in-hex-all +strace--strings-in-hex-non-ascii +strace-n +strace-x +strace-xx swap sxetmask symlink @@ -481,12 +596,14 @@ sync_file_range2 sysinfo syslog tee +tgkill time timer_create timer_xettime timerfd_xettime times times-fail +tkill truncate truncate64 ugetrlimit @@ -499,6 +616,8 @@ umovestr umovestr-illptr umovestr2 umovestr3 +umovestr_cached +umovestr_cached_adjacent uname unlink unlinkat diff --git a/tests-mx32/qual_fault-syntax.test b/tests-mx32/qual_fault-syntax.test index c4fd27bf..fe5eca5b 100755 --- a/tests-mx32/qual_fault-syntax.test +++ b/tests-mx32/qual_fault-syntax.test @@ -3,6 +3,7 @@ # Check -e fault= syntax. # # Copyright (c) 2016-2018 Dmitry V. Levin +# Copyright (c) 2017-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -72,6 +73,27 @@ for arg in chdir:42 \!chdir:42 \ chdir:syscall=-42 \ chdir:syscall=42 \ chdir:syscall=gettid:syscall=gettid \ + chdir:when=. \ + chdir:when=.+ \ + chdir:when=..+ \ + chdir:when=+ \ + chdir:when=++ \ + chdir:when=10. \ + chdir:when=11.12 \ + chdir:when=13.14+ \ + chdir:when=15.. \ + chdir:when=16... \ + chdir:when=17...18 \ + chdir:when=.19 \ + chdir:when=..20 \ + chdir:when=..21+ \ + chdir:when=..22+3 \ + chdir:when=24..23 \ + chdir:when=25..26+0 \ + chdir:when=27..65535 \ + chdir:when=28..65535+ \ + chdir:when=65535..65535 \ + chdir:when=65535..65535+ \ ; do $STRACE -e fault="$arg" true 2> "$LOG" && fail_with "$arg" diff --git a/tests-mx32/qual_fault.c b/tests-mx32/qual_fault.c index 63bbade0..580d2913 100644 --- a/tests-mx32/qual_fault.c +++ b/tests-mx32/qual_fault.c @@ -2,7 +2,7 @@ * Check that fault injection works properly. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -29,7 +29,7 @@ static int out_fd; #define DEFAULT_ERRNO ENOSYS static const char *errstr; -static int is_raw, err, first, step, iter, try; +static int is_raw, err, first, last, step, iter, try; static void invoke(int fail) @@ -99,7 +99,7 @@ open_file(const char *prefix, int proc) int main(int argc, char *argv[]) { - assert(argc == 11); + assert(argc == 12); is_raw = !strcmp("raw", argv[1]); @@ -120,13 +120,14 @@ main(int argc, char *argv[]) errstr = errno2name(); first = atoi(argv[3]); - step = atoi(argv[4]); - iter = atoi(argv[5]); - int num_procs = atoi(argv[6]); - char *exp_prefix = argv[7]; - char *got_prefix = argv[8]; - char *out_prefix = argv[9]; - char *pid_prefix = argv[10]; + last = atoi(argv[4]); + step = atoi(argv[5]); + iter = atoi(argv[6]); + int num_procs = atoi(argv[7]); + char *exp_prefix = argv[8]; + char *got_prefix = argv[9]; + char *out_prefix = argv[10]; + char *pid_prefix = argv[11]; assert(first > 0); assert(step >= 0); @@ -164,8 +165,10 @@ main(int argc, char *argv[]) int i; for (i = 1; i <= iter; ++i) { int fail = 0; - if (first > 0) { + if (last != 0) { --first; + if (last != -1) + --last; if (first == 0) { fail = 1; first = step; diff --git a/tests-mx32/qual_fault.test b/tests-mx32/qual_fault.test index 497e35ea..f054ed49 100755 --- a/tests-mx32/qual_fault.test +++ b/tests-mx32/qual_fault.test @@ -3,7 +3,7 @@ # Check that fault injection works properly. # # Copyright (c) 2016 Dmitry V. Levin -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -22,24 +22,32 @@ N=100 check_fault_injection() { - local trace fault err first step procs extra + local trace fault err first last step procs extra trace=$1; shift fault=$1; shift err=$1; shift first=$1; shift + last=$1; shift step=$1; shift procs=$1; shift extra="$*" local when= - if [ -z "$first$step" ]; then + if [ -z "$first$last$step" ]; then first=1 + last=-1 step=1 + elif [ -z "$last" ]; then + case "$step" in + '') when=":when=$first"; step=1; last=$first ;; + +) when=":when=$first+"; step=1; last=-1 ;; + *) when=":when=$first+$step"; last=-1; ;; + esac else case "$step" in - '') when=":when=$first"; step=0 ;; - +) when=":when=$first+"; step=1 ;; - *) when=":when=$first+$step" ;; + '') when=":when=${first}..${last}"; step=1 ;; + +) when=":when=${first}..${last}+"; step=1 ;; + *) when=":when=${first}..${last}+${step}" ;; esac fi @@ -63,7 +71,7 @@ check_fault_injection() run_strace -a11 -ff -e trace=$trace \ "$@" -e fault=$fault$when$error$suffix $extra \ - ../$NAME $raw "$err" "$first" "$step" $N \ + ../$NAME $raw "$err" "$first" "$last" "$step" $N \ "$procs" "$outexp" "$outgot" "$outout" "$outpid" for i in $(seq 0 $((procs - 1)) ) @@ -78,19 +86,37 @@ check_fault_injection() for err in '' ENOSYS 22 einval; do for fault in writev desc,51; do check_fault_injection \ - writev $fault "$err" '' '' 1 -efault=chdir + writev $fault "$err" '' '' '' 1 -efault=chdir check_fault_injection \ - writev $fault "$err" '' '' 1 -efault=chdir -efault=none + writev $fault "$err" '' '' '' 1 -efault=chdir -efault=none for F in 1 2 3 5 7 11; do check_fault_injection \ - writev $fault "$err" $F '' 1 + writev $fault "$err" $F '' '' 1 check_fault_injection \ - writev $fault "$err" $F + 1 + writev $fault "$err" $F '' + 1 + + for L in 1 2 3 5 7 11; do + [ "$L" -ge "$F" ] || + continue + check_fault_injection \ + writev $fault "$err" $F $L '' 1 + check_fault_injection \ + writev $fault "$err" $F $L + 1 + done + for S in 1 2 3 5 7 11; do check_fault_injection \ - writev $fault "$err" $F $S 1 + writev $fault "$err" $F '' $S 1 check_fault_injection \ - writev $fault "$err" $F $S 4 + writev $fault "$err" $F '' $S 4 + for L in 1 2 3 5 7 11; do + [ "$L" -ge "$F" ] || + continue + check_fault_injection \ + writev $fault "$err" $F $L $S 1 + check_fault_injection \ + writev $fault "$err" $F $L $S 4 + done done done done diff --git a/tests-mx32/qual_inject-error-signal.c b/tests-mx32/qual_inject-error-signal.c index 4c89d78a..a9a8afc8 100644 --- a/tests-mx32/qual_inject-error-signal.c +++ b/tests-mx32/qual_inject-error-signal.c @@ -2,6 +2,7 @@ * Check fault injection along with signal injection. * * Copyright (c) 2017-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +12,7 @@ #include #include #include -#include +#include "scno.h" static struct stat before, after; diff --git a/tests-mx32/qual_inject-retval.c b/tests-mx32/qual_inject-retval.c index 16419a49..1e657a73 100644 --- a/tests-mx32/qual_inject-retval.c +++ b/tests-mx32/qual_inject-retval.c @@ -2,14 +2,14 @@ * Check success injection. * * Copyright (c) 2017 Elvira Khabirova - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_chdir diff --git a/tests-mx32/qual_inject-signal.c b/tests-mx32/qual_inject-signal.c index c09b8322..03bc0331 100644 --- a/tests-mx32/qual_inject-signal.c +++ b/tests-mx32/qual_inject-signal.c @@ -2,6 +2,7 @@ * Check that signal injection works properly. * * Copyright (c) 2017-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +11,7 @@ #include "tests.h" #include #include -#include +#include "scno.h" static void handler(int sig) diff --git a/tests-mx32/qual_inject-syntax.test b/tests-mx32/qual_inject-syntax.test index 53245345..c513fe12 100755 --- a/tests-mx32/qual_inject-syntax.test +++ b/tests-mx32/qual_inject-syntax.test @@ -3,6 +3,7 @@ # Check -e inject= syntax. # # Copyright (c) 2016-2018 Dmitry V. Levin +# Copyright (c) 2017-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -88,6 +89,27 @@ for arg in 42 chdir \ chdir:syscall=-42 \ chdir:syscall=42 \ chdir:syscall=gettid:syscall=gettid \ + chdir:when=. \ + chdir:when=.+ \ + chdir:when=..+ \ + chdir:when=+ \ + chdir:when=++ \ + chdir:when=10. \ + chdir:when=11.12 \ + chdir:when=13.14+ \ + chdir:when=15.. \ + chdir:when=16... \ + chdir:when=17...18 \ + chdir:when=.19 \ + chdir:when=..20 \ + chdir:when=..21+ \ + chdir:when=..22+3 \ + chdir:when=24..23 \ + chdir:when=25..26+0 \ + chdir:when=27..65535 \ + chdir:when=28..65535+ \ + chdir:when=65535..65535 \ + chdir:when=65535..65535+ \ ; do $STRACE -e inject="$arg" true 2> "$LOG" && fail_with "$arg" diff --git a/tests-mx32/qual_signal.test b/tests-mx32/qual_signal.test index 8fd2b69d..aab6a906 100755 --- a/tests-mx32/qual_signal.test +++ b/tests-mx32/qual_signal.test @@ -3,7 +3,7 @@ # Check how strace -e signal=set works. # # Copyright (c) 2016 Dmitry V. Levin -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -16,8 +16,12 @@ test_one_sig() sigs="$1"; shift run_prog "../$NAME" "$@" > /dev/null + run_strace -e trace=none -e signal="$sigs" "../$NAME" "$@" > "$EXP" match_diff "$LOG" "$EXP" + + run_strace --trace=none --signal="$sigs" "../$NAME" "$@" > "$EXP" + match_diff "$LOG" "$EXP" } test_sigs() @@ -86,6 +90,11 @@ for arg in ' ' invalid_signal_name SIG -1 256 1-1 \ fail_with "$arg" LC_ALL=C grep -F 'invalid signal' < "$LOG" > /dev/null || fail_with "$arg" + + $STRACE --signal="$arg" true 2> "$LOG" && + fail_with "$arg" + LC_ALL=C grep -F 'invalid signal' < "$LOG" > /dev/null || + fail_with "$arg" done exit 0 diff --git a/tests-mx32/qual_syscall.test b/tests-mx32/qual_syscall.test index 945fc8c7..a2882ba4 100755 --- a/tests-mx32/qual_syscall.test +++ b/tests-mx32/qual_syscall.test @@ -3,7 +3,7 @@ # Check how strace -e abbrev=set, -e raw=set, -e trace=set, # and -e verbose=set work. # -# Copyright (c) 2014-2018 The strace developers. +# Copyright (c) 2014-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -28,6 +28,16 @@ check_output_mismatch() } } +check_execve_output_mismatch() +{ + local what how + what="$1"; shift + how="$1"; shift + + check_output_mismatch "$@" -e "$what=$how" -e execve + check_output_mismatch "$@" "--$what=$how" --trace=execve +} + check_output_mismatch "$pattern_abbrev_verbose" -e execve LC_ALL=C grep -v -x "$pattern_abbrev_verbose" "$LOG" | LC_ALL=C grep '^[[:alnum:]_]*(' > /dev/null && @@ -47,22 +57,16 @@ LC_ALL=C grep '^[[:alnum:]_]*(' "$LOG" > /dev/null && for a in execve \!chdir /. all \!none \ file process \!desc \!ipc \!memory \!network \!signal; do - check_output_mismatch \ - "$pattern_abbrev_verbose" -e abbrev="$a" -e execve - check_output_mismatch \ - "$pattern_raw" -a22 -e raw="$a" -e execve - check_output_mismatch \ - "$pattern_abbrev_verbose" -e verbose="$a" -e execve + check_execve_output_mismatch abbrev "$a" "$pattern_abbrev_verbose" + check_execve_output_mismatch raw "$a" "$pattern_raw" + check_execve_output_mismatch verbose "$a" "$pattern_abbrev_verbose" done for a in \!execve chdir 42 \!all none \ \!file \!process desc ipc memory network signal; do - check_output_mismatch \ - "$pattern_nonabbrev_verbose" -e abbrev="$a" -e execve - check_output_mismatch \ - "$pattern_abbrev_verbose" -e raw="$a" -e execve - check_output_mismatch \ - "$pattern_nonverbose" -a31 -e verbose="$a" -e execve + check_execve_output_mismatch abbrev "$a" "$pattern_nonabbrev_verbose" + check_execve_output_mismatch raw "$a" "$pattern_abbrev_verbose" + check_execve_output_mismatch verbose "$a" "$pattern_nonverbose" --columns=31 done exit 0 diff --git a/tests-mx32/qualify_personality.sh b/tests-mx32/qualify_personality.sh index d57314fc..e2677f58 100644 --- a/tests-mx32/qualify_personality.sh +++ b/tests-mx32/qualify_personality.sh @@ -2,7 +2,7 @@ # # Common code for per-personality qualification tests # -# Copyright (c) 2018 The strace developers. +# Copyright (c) 2018-2019 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -25,7 +25,7 @@ x86_64) x32) supported_pers='x32 32' ;; -aarch64|powerpc64|riscv|s390x|sparc64|tile) +aarch64|powerpc64|s390x|sparc64|tile) supported_pers='64 32' ;; *) diff --git a/tests-mx32/quotactl-xfs.c b/tests-mx32/quotactl-xfs.c index 1fae566d..0708e2a3 100644 --- a/tests-mx32/quotactl-xfs.c +++ b/tests-mx32/quotactl-xfs.c @@ -3,7 +3,7 @@ * * Copyright (c) 2016 Eugene Syromyatnikov * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +11,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_quotactl) && \ (defined(HAVE_LINUX_QUOTA_H) || defined(HAVE_SYS_QUOTA_H)) && \ diff --git a/tests-mx32/quotactl.c b/tests-mx32/quotactl.c index 3a995276..fd455579 100644 --- a/tests-mx32/quotactl.c +++ b/tests-mx32/quotactl.c @@ -3,7 +3,7 @@ * * Copyright (c) 2016 Eugene Syromyatnikov * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +11,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_quotactl) && \ (defined(HAVE_LINUX_QUOTA_H) || defined(HAVE_SYS_QUOTA_H)) diff --git a/tests-mx32/read-write.c b/tests-mx32/read-write.c index 0217670b..27df009d 100644 --- a/tests-mx32/read-write.c +++ b/tests-mx32/read-write.c @@ -2,7 +2,7 @@ * Check decoding and dumping of read and write syscalls. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -14,7 +14,7 @@ #include #include #include -#include +#include "scno.h" static void dump_str_ex(const char *str, const unsigned int len, const int idx_w) @@ -153,9 +153,17 @@ main(void) skip_if_unavailable("/proc/self/fd/"); static const char tmp[] = "read-write-tmpfile"; - if (open(tmp, O_CREAT|O_RDONLY|O_TRUNC, 0600) != 0) + bool need_cleanup = true; + long rc; + + rc = open(tmp, O_RDONLY, 0600); + if (rc < 0) { + rc = open(tmp, O_CREAT|O_EXCL|O_RDONLY, 0600); + need_cleanup = false; + } + if (rc != 0) perror_msg_and_fail("creat: %s", tmp); - if (open(tmp, O_WRONLY) != 1) + if (open(tmp, O_TRUNC|O_WRONLY) != 1) perror_msg_and_fail("open: %s", tmp); static const char w_c[] = "0123456789abcde"; @@ -175,8 +183,6 @@ main(void) void *efault = r1 - get_page_size(); - long rc; - rc = k_write(1, w, 0); if (rc) perror_msg_and_fail("write: expected 0, returned %ld", rc); @@ -270,9 +276,11 @@ main(void) if (open("/dev/null", O_WRONLY) != 1) perror_msg_and_fail("open"); + (void) close(4); if (open("/dev/zero", O_RDONLY) != 4) perror_msg_and_fail("open"); + (void) close(5); if (open("/dev/null", O_WRONLY) != 5) perror_msg_and_fail("open"); @@ -282,6 +290,9 @@ main(void) test_dump(256, true); + if (need_cleanup && unlink(tmp)) + perror_msg_and_fail("unlink: %s", tmp); + tprintf("+++ exited with 0 +++\n"); return 0; } diff --git a/tests-mx32/readahead.c b/tests-mx32/readahead.c index 1b21fe59..bcd33e0c 100644 --- a/tests-mx32/readahead.c +++ b/tests-mx32/readahead.c @@ -1,34 +1,30 @@ /* * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef HAVE_READAHEAD /* Check for glibc readahead argument passing bugs. */ -# ifdef __GLIBC__ /* * glibc < 2.8 had an incorrect order of higher and lower parts of offset, * see https://sourceware.org/bugzilla/show_bug.cgi?id=5208 */ -# if !(defined __GLIBC_MINOR__ && \ - (__GLIBC__ << 16) + __GLIBC_MINOR__ >= (2 << 16) + 8) -# undef HAVE_READAHEAD -# endif /* glibc < 2.8 */ +# if GLIBC_PREREQ_LT(2, 8) +# undef HAVE_READAHEAD +# endif /* glibc < 2.8 */ /* * glibc < 2.25 had an incorrect implementation on mips n64, * see https://sourceware.org/bugzilla/show_bug.cgi?id=21026 */ -# if defined LINUX_MIPSN64 && !(defined __GLIBC_MINOR__ && \ - (__GLIBC__ << 16) + __GLIBC_MINOR__ >= (2 << 16) + 25) -# undef HAVE_READAHEAD -# endif /* LINUX_MIPSN64 && glibc < 2.25 */ -# endif /* __GLIBC__ */ +# if GLIBC_PREREQ_LT(2, 25) && defined LINUX_MIPSN64 +# undef HAVE_READAHEAD +# endif /* LINUX_MIPSN64 && glibc < 2.25 */ #endif /* HAVE_READAHEAD */ #ifdef HAVE_READAHEAD diff --git a/tests-mx32/readdir.c b/tests-mx32/readdir.c index 284c221e..709b4f31 100644 --- a/tests-mx32/readdir.c +++ b/tests-mx32/readdir.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_readdir diff --git a/tests-mx32/readlink.c b/tests-mx32/readlink.c index c2a9b22c..a140794a 100644 --- a/tests-mx32/readlink.c +++ b/tests-mx32/readlink.c @@ -1,13 +1,14 @@ /* * Copyright (c) 2015 Gleb Fotengauer-Malinovskiy * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_readlink diff --git a/tests-mx32/readlinkat.c b/tests-mx32/readlinkat.c index 6909ac0b..50534570 100644 --- a/tests-mx32/readlinkat.c +++ b/tests-mx32/readlinkat.c @@ -1,13 +1,14 @@ /* * Copyright (c) 2015 Gleb Fotengauer-Malinovskiy * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_readlinkat diff --git a/tests-mx32/reboot.c b/tests-mx32/reboot.c index 8bc9c6b0..0b22ee9f 100644 --- a/tests-mx32/reboot.c +++ b/tests-mx32/reboot.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_reboot diff --git a/tests-mx32/recv-MSG_TRUNC.c b/tests-mx32/recv-MSG_TRUNC.c new file mode 100644 index 00000000..ee9ea632 --- /dev/null +++ b/tests-mx32/recv-MSG_TRUNC.c @@ -0,0 +1,59 @@ +/* + * Check decoding of recv MSG_TRUNC. + * + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include +#include +#include "scno.h" + +#ifndef __NR_recv +# define __NR_recv -1 +#endif +#define SC_recv 10 + +static int +sys_recv(int sockfd, const void *buf, unsigned int len, int flags) +{ + int rc = socketcall(__NR_recv, SC_recv, + sockfd, (long) buf, len, flags, 0); + if (rc < 0 && ENOSYS == errno) + perror_msg_and_skip("recv"); + return rc; +} + +int +main(void) +{ + static const char sbuf[2] = "AB"; + int sv[2]; + TAIL_ALLOC_OBJECT_CONST_PTR(char, rbuf); + + if (socketpair(AF_UNIX, SOCK_DGRAM, 0, sv)) + perror_msg_and_skip("socketpair"); + + if (send(sv[1], sbuf + 1, 1, 0) != 1) + perror_msg_and_skip("send"); + if (sys_recv(sv[0], rbuf - 1, 2, MSG_PEEK) != 1) + perror_msg_and_fail("recv"); + printf("recv(%d, \"B\", 2, MSG_PEEK) = 1\n", sv[0]); + + if (sys_recv(sv[0], rbuf, 1, MSG_TRUNC) != 1) + perror_msg_and_skip("recv"); + printf("recv(%d, \"B\", 1, MSG_TRUNC) = 1\n", sv[0]); + + if (send(sv[1], sbuf, 2, 0) != 2) + perror_msg_and_skip("send"); + if (sys_recv(sv[0], rbuf, 1, MSG_TRUNC) != 2) + perror_msg_and_skip("recv"); + printf("recv(%d, \"A\", 1, MSG_TRUNC) = 2\n", sv[0]); + + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests-mx32/recv-MSG_TRUNC.gen.test b/tests-mx32/recv-MSG_TRUNC.gen.test new file mode 100755 index 00000000..07f112b0 --- /dev/null +++ b/tests-mx32/recv-MSG_TRUNC.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (recv-MSG_TRUNC -a26 -e trace=recv); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a26 -e trace=recv diff --git a/tests-mx32/recvfrom-MSG_TRUNC.c b/tests-mx32/recvfrom-MSG_TRUNC.c new file mode 100644 index 00000000..b8ef3786 --- /dev/null +++ b/tests-mx32/recvfrom-MSG_TRUNC.c @@ -0,0 +1,42 @@ +/* + * Check decoding of recvfrom MSG_TRUNC. + * + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include + +int +main(void) +{ + static const char sbuf[2] = "AB"; + int sv[2]; + TAIL_ALLOC_OBJECT_CONST_PTR(char, rbuf); + + if (socketpair(AF_UNIX, SOCK_DGRAM, 0, sv)) + perror_msg_and_skip("socketpair"); + + if (send(sv[1], sbuf + 1, 1, 0) != 1) + perror_msg_and_skip("send"); + if (recvfrom(sv[0], rbuf - 1, 2, MSG_PEEK, NULL, NULL) != 1) + perror_msg_and_fail("recvfrom"); + printf("recvfrom(%d, \"B\", 2, MSG_PEEK, NULL, NULL) = 1\n", sv[0]); + + if (recvfrom(sv[0], rbuf, 1, MSG_TRUNC, NULL, NULL) != 1) + perror_msg_and_skip("recvfrom"); + printf("recvfrom(%d, \"B\", 1, MSG_TRUNC, NULL, NULL) = 1\n", sv[0]); + + if (send(sv[1], sbuf, 2, 0) != 2) + perror_msg_and_skip("send"); + if (recvfrom(sv[0], rbuf, 1, MSG_TRUNC, NULL, NULL) != 2) + perror_msg_and_skip("recvfrom"); + printf("recvfrom(%d, \"A\", 1, MSG_TRUNC, NULL, NULL) = 2\n", sv[0]); + + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests-mx32/recvfrom-MSG_TRUNC.gen.test b/tests-mx32/recvfrom-MSG_TRUNC.gen.test new file mode 100755 index 00000000..e27f52d0 --- /dev/null +++ b/tests-mx32/recvfrom-MSG_TRUNC.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (recvfrom-MSG_TRUNC -e trace=recvfrom); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -e trace=recvfrom diff --git a/tests-mx32/redirect.test b/tests-mx32/redirect.test index ebf91bec..c98052c8 100755 --- a/tests-mx32/redirect.test +++ b/tests-mx32/redirect.test @@ -3,7 +3,7 @@ # Ensure that strace does not retain stdin and stdout descriptors. # # Copyright (c) 2016 Dmitry V. Levin -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -16,42 +16,34 @@ run_prog_skip_if_failed \ check_prog sleep check_prog yes +SLEEP_3_BITS="$SLEEP_A_BIT; $SLEEP_A_BIT; $SLEEP_A_BIT" > "$OUT" -> "$LOG" + +> lock1 +> lock2 ( - while [ -f "$LOG" ]; do - : + while [ -f lock1 ]; do + $SLEEP_A_BIT done - $SLEEP_A_BIT & yes - if kill -0 $! 2> /dev/null; then - wait - else - echo TIMEOUT >> "$OUT" - fi + [ -f lock2 ] || + printf ' input' >> "$OUT" ) | $STRACE -qq -enone -esignal=none \ - sh -c "exec <&- >&-; rm -f -- $LOG; $SLEEP_A_BIT; $SLEEP_A_BIT" - -if [ -s "$OUT" ]; then - fail_ "$STRACE failed to redirect standard input" -fi + sh -c "exec <&- >&-; rm -f lock1; $SLEEP_3_BITS; rm -f lock2" -> "$LOG" +> lock1 +> lock2 $STRACE -qq -enone -esignal=none \ - sh -c "exec <&- >&-; rm -f -- $LOG; $SLEEP_A_BIT; $SLEEP_A_BIT" | + sh -c "exec <&- >&-; rm -f lock1; $SLEEP_3_BITS; rm -f lock2" | ( - while [ -f "$LOG" ]; do - : + while [ -f lock1 ]; do + $SLEEP_A_BIT done - $SLEEP_A_BIT & cat > /dev/null - if kill -0 $! 2> /dev/null; then - wait - else - echo TIMEOUT >> "$OUT" - fi + [ -f lock2 ] || + printf ' output' >> "$OUT" ) if [ -s "$OUT" ]; then - fail_ "$STRACE failed to redirect standard output" + fail_ "$STRACE failed to redirect standard descriptors:$(cat "$OUT")" fi diff --git a/tests-mx32/remap_file_pages.c b/tests-mx32/remap_file_pages.c index 2a2bfc6e..7e43926e 100644 --- a/tests-mx32/remap_file_pages.c +++ b/tests-mx32/remap_file_pages.c @@ -2,14 +2,13 @@ * Check decoding of remap_file_pages syscall. * * Copyright (c) 2016-2017 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_remap_file_pages @@ -77,11 +76,17 @@ main(void) k_remap_file_pages(addr, size, prot, pgoff, flags); /* - * HP PA-RISC is the only architecture that has MAP_TYPE defined to 0x3, which - * is also used for MAP_SHARED_VALIDATE since Linux commit v4.15-rc1~71^2^2~23. + * HP PA-RISC is the only architecture that has MAP_TYPE defined to something + * different. For example, before commit v4.17-rc1~146^2~9 it was defined to + * 0x3 which is also used for MAP_SHARED_VALIDATE since Linux commit + * v4.15-rc1~71^2^2~23. */ # ifdef __hppa__ -# define MAP_TYPE_str "MAP_SHARED_VALIDATE" +# if MAP_TYPE == 0x03 +# define MAP_TYPE_str "MAP_SHARED_VALIDATE" +# else +# define MAP_TYPE_str "0x2b /* MAP_??? */" +# endif # else # define MAP_TYPE_str "0xf /* MAP_??? */" # endif diff --git a/tests-mx32/rename.c b/tests-mx32/rename.c index 3d77573c..ccd65b41 100644 --- a/tests-mx32/rename.c +++ b/tests-mx32/rename.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_rename diff --git a/tests-mx32/renameat.c b/tests-mx32/renameat.c index 7f11893f..8c648cd3 100644 --- a/tests-mx32/renameat.c +++ b/tests-mx32/renameat.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_renameat diff --git a/tests-mx32/renameat2.c b/tests-mx32/renameat2.c index 663c0638..548490cd 100644 --- a/tests-mx32/renameat2.c +++ b/tests-mx32/renameat2.c @@ -2,13 +2,13 @@ * Check decoding of renameat2 syscall. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_renameat2 diff --git a/tests-mx32/request_key.c b/tests-mx32/request_key.c index 20ae12f6..2ea9a7bd 100644 --- a/tests-mx32/request_key.c +++ b/tests-mx32/request_key.c @@ -2,7 +2,7 @@ * Check decoding of request_key syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_request_key diff --git a/tests-mx32/restart_syscall.c b/tests-mx32/restart_syscall.c index 9a8f7e3a..a42d3b9b 100644 --- a/tests-mx32/restart_syscall.c +++ b/tests-mx32/restart_syscall.c @@ -1,19 +1,21 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include #include #include #include #include +#define NANOSLEEP_NAME_RE "(nanosleep|clock_nanosleep(_time64)?)" +#define NANOSLEEP_CALL_RE "(nanosleep\\(|clock_nanosleep(_time64)?\\(CLOCK_REALTIME, 0, )" + int main(void) { @@ -27,20 +29,22 @@ main(void) const sigset_t set = {}; const struct sigaction act = { .sa_handler = SIG_IGN }; const struct itimerval itv = { .it_value.tv_usec = 111111 }; - struct timespec req = { .tv_nsec = 222222222 }, rem; + const struct timespec req = { .tv_nsec = 222222222 }; + struct timespec rem = { 0xdefaced, 0xdefaced }; - assert(sigaction(SIGALRM, &act, NULL) == 0); - assert(sigprocmask(SIG_SETMASK, &set, NULL) == 0); + if (sigaction(SIGALRM, &act, NULL)) + perror_msg_and_fail("sigaction"); + if (sigprocmask(SIG_SETMASK, &set, NULL)) + perror_msg_and_fail("sigprocmask"); if (setitimer(ITIMER_REAL, &itv, NULL)) perror_msg_and_skip("setitimer"); if (nanosleep(&req, &rem)) perror_msg_and_fail("nanosleep"); - printf("nanosleep\\(\\{tv_sec=%lld, tv_nsec=%llu\\}" - ", \\{tv_sec=%lld, tv_nsec=%llu\\}\\)" + printf("%s\\{tv_sec=0, tv_nsec=[0-9]+\\}" + ", \\{tv_sec=[0-9]+, tv_nsec=[0-9]+\\}\\)" " = \\? ERESTART_RESTARTBLOCK \\(Interrupted by signal\\)\n", - (long long) req.tv_sec, zero_extend_signed_to_ull(req.tv_nsec), - (long long) rem.tv_sec, zero_extend_signed_to_ull(rem.tv_nsec)); + NANOSLEEP_CALL_RE); puts("--- SIGALRM \\{si_signo=SIGALRM, si_code=SI_KERNEL\\} ---"); # ifdef __arm__ /* old kernels used to overwrite ARM_r0 with -EINTR */ @@ -48,12 +52,12 @@ main(void) # else # define ALTERNATIVE_NANOSLEEP_REQ "" # endif - printf("(nanosleep\\((%s\\{tv_sec=%lld, tv_nsec=%llu\\})" - ", %p|restart_syscall\\(<\\.\\.\\." - " resuming interrupted nanosleep \\.\\.\\.>)\\) = 0\n", + printf("(%s(%s\\{tv_sec=0, tv_nsec=[0-9]+\\})" + ", 0x[[:xdigit:]]+|restart_syscall\\(<\\.\\.\\." + " resuming interrupted %s \\.\\.\\.>)\\) = 0\n", + NANOSLEEP_CALL_RE, ALTERNATIVE_NANOSLEEP_REQ, - (long long) req.tv_sec, zero_extend_signed_to_ull(req.tv_nsec), - &rem); + NANOSLEEP_NAME_RE); puts("\\+\\+\\+ exited with 0 \\+\\+\\+"); return 0; diff --git a/tests-mx32/restart_syscall.test b/tests-mx32/restart_syscall.test index 8dde6684..5c433fda 100755 --- a/tests-mx32/restart_syscall.test +++ b/tests-mx32/restart_syscall.test @@ -2,7 +2,7 @@ # # Check how "resuming interrupted nanosleep" works. # -# Copyright (c) 2015-2018 The strace developers. +# Copyright (c) 2015-2019 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -10,6 +10,6 @@ . "${srcdir=.}/init.sh" run_prog > /dev/null -syscalls=nanosleep,restart_syscall +syscalls=restart_syscall,/nanosleep run_strace -a20 -e trace=$syscalls $args > "$EXP" match_grep "$LOG" "$EXP" diff --git a/tests-mx32/riscv_flush_icache.c b/tests-mx32/riscv_flush_icache.c index 27abf75b..645644c8 100644 --- a/tests-mx32/riscv_flush_icache.c +++ b/tests-mx32/riscv_flush_icache.c @@ -1,7 +1,7 @@ /* * Check decoding of riscv_flush_icache syscall. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,7 +9,6 @@ #include "tests.h" -#include #include "scno.h" diff --git a/tests-mx32/rmdir.c b/tests-mx32/rmdir.c index 505303ad..670f741d 100644 --- a/tests-mx32/rmdir.c +++ b/tests-mx32/rmdir.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_rmdir diff --git a/tests-mx32/rt_sigpending.c b/tests-mx32/rt_sigpending.c index 06b15db2..29954bad 100644 --- a/tests-mx32/rt_sigpending.c +++ b/tests-mx32/rt_sigpending.c @@ -2,14 +2,14 @@ * This file is part of rt_sigpending strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_rt_sigpending diff --git a/tests-mx32/rt_sigprocmask.c b/tests-mx32/rt_sigprocmask.c index e6f513da..599f2831 100644 --- a/tests-mx32/rt_sigprocmask.c +++ b/tests-mx32/rt_sigprocmask.c @@ -2,14 +2,14 @@ * This file is part of rt_sigprocmask strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_rt_sigprocmask diff --git a/tests-mx32/rt_sigqueueinfo--pidns-translation.c b/tests-mx32/rt_sigqueueinfo--pidns-translation.c new file mode 100644 index 00000000..74bfb464 --- /dev/null +++ b/tests-mx32/rt_sigqueueinfo--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "rt_sigqueueinfo.c" diff --git a/tests-mx32/rt_sigqueueinfo--pidns-translation.gen.test b/tests-mx32/rt_sigqueueinfo--pidns-translation.gen.test new file mode 100755 index 00000000..ef490b55 --- /dev/null +++ b/tests-mx32/rt_sigqueueinfo--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (rt_sigqueueinfo--pidns-translation test_pidns -esignal=none -e trace=rt_sigqueueinfo); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -esignal=none -e trace=rt_sigqueueinfo diff --git a/tests-mx32/rt_sigqueueinfo.c b/tests-mx32/rt_sigqueueinfo.c index 0455dd40..e22e4640 100644 --- a/tests-mx32/rt_sigqueueinfo.c +++ b/tests-mx32/rt_sigqueueinfo.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015 Elvira Khabirova - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include "pidns.h" #include #include #include @@ -15,6 +16,8 @@ int main(void) { + PIDNS_TEST_INIT; + struct sigaction sa = { .sa_handler = SIG_IGN }; @@ -22,15 +25,19 @@ main(void) .sival_ptr = (void *) (unsigned long) 0xdeadbeefbadc0dedULL }; pid_t pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); assert(sigaction(SIGUSR1, &sa, NULL) == 0); if (sigqueue(pid, SIGUSR1, value)) perror_msg_and_skip("sigqueue"); - printf("rt_sigqueueinfo(%u, SIGUSR1, {si_signo=SIGUSR1, " - "si_code=SI_QUEUE, si_pid=%u, si_uid=%u, " + pidns_print_leader(); + printf("rt_sigqueueinfo(%d%s, SIGUSR1, {si_signo=SIGUSR1, " + "si_code=SI_QUEUE, si_pid=%d%s, si_uid=%u, " "si_value={int=%d, ptr=%p}}) = 0\n", - pid, pid, getuid(), value.sival_int, value.sival_ptr); - printf("+++ exited with 0 +++\n"); + pid, pid_str, pid, pid_str, + getuid(), value.sival_int, value.sival_ptr); + pidns_print_leader(); + puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-mx32/rt_sigsuspend.c b/tests-mx32/rt_sigsuspend.c index 55ae6239..720e1782 100644 --- a/tests-mx32/rt_sigsuspend.c +++ b/tests-mx32/rt_sigsuspend.c @@ -2,14 +2,14 @@ * This file is part of rt_sigsuspend strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_rt_sigsuspend diff --git a/tests-mx32/rt_sigtimedwait.c b/tests-mx32/rt_sigtimedwait.c index 56144f52..5ecd9b13 100644 --- a/tests-mx32/rt_sigtimedwait.c +++ b/tests-mx32/rt_sigtimedwait.c @@ -2,14 +2,14 @@ * This file is part of rt_sigtimedwait strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_rt_sigtimedwait diff --git a/tests-mx32/rt_tgsigqueueinfo--pidns-translation.c b/tests-mx32/rt_tgsigqueueinfo--pidns-translation.c new file mode 100644 index 00000000..94396f00 --- /dev/null +++ b/tests-mx32/rt_tgsigqueueinfo--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "rt_tgsigqueueinfo.c" diff --git a/tests-mx32/rt_tgsigqueueinfo--pidns-translation.gen.test b/tests-mx32/rt_tgsigqueueinfo--pidns-translation.gen.test new file mode 100755 index 00000000..399b2477 --- /dev/null +++ b/tests-mx32/rt_tgsigqueueinfo--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (rt_tgsigqueueinfo--pidns-translation test_pidns -esignal=none -e trace=rt_tgsigqueueinfo); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -esignal=none -e trace=rt_tgsigqueueinfo diff --git a/tests-mx32/rt_tgsigqueueinfo.c b/tests-mx32/rt_tgsigqueueinfo.c index e3ad0e22..21d01cbb 100644 --- a/tests-mx32/rt_tgsigqueueinfo.c +++ b/tests-mx32/rt_tgsigqueueinfo.c @@ -2,16 +2,17 @@ * This file is part of rt_tgsigqueueinfo strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" -#ifdef __NR_rt_tgsigqueueinfo +#if defined __NR_rt_tgsigqueueinfo && defined __NR_gettid # include # include @@ -20,11 +21,11 @@ # include static long -k_tgsigqueueinfo(const pid_t pid, const int sig, const void *const info) +k_tgsigqueueinfo(const pid_t tgid, const int tid, const int sig, const void *const info) { return syscall(__NR_rt_tgsigqueueinfo, - F8ILL_KULONG_MASK | pid, - F8ILL_KULONG_MASK | pid, + F8ILL_KULONG_MASK | tgid, + F8ILL_KULONG_MASK | tid, F8ILL_KULONG_MASK | sig, info); } @@ -32,6 +33,8 @@ k_tgsigqueueinfo(const pid_t pid, const int sig, const void *const info) int main(void) { + PIDNS_TEST_INIT; + const struct sigaction sa = { .sa_handler = SIG_IGN }; @@ -48,17 +51,22 @@ main(void) info->si_value.sival_ptr = (void *) (unsigned long) 0xdeadbeeffacefeedULL; - if (k_tgsigqueueinfo(info->si_pid, SIGUSR1, info)) + if (k_tgsigqueueinfo(getpid(), syscall(__NR_gettid), SIGUSR1, info)) (errno == ENOSYS ? perror_msg_and_skip : perror_msg_and_fail)( "rt_tgsigqueueinfo"); - printf("rt_tgsigqueueinfo(%u, %u, %s, {si_signo=%s" - ", si_code=SI_QUEUE, si_errno=ENOENT, si_pid=%u" - ", si_uid=%u, si_value={int=%d, ptr=%p}}) = 0\n", - info->si_pid, info->si_pid, "SIGUSR1", "SIGUSR1", - info->si_pid, info->si_uid, info->si_value.sival_int, + pidns_print_leader(); + printf("rt_tgsigqueueinfo(%d%s, %d%s, %s, {si_signo=%s" + ", si_code=SI_QUEUE, si_errno=ENOENT, si_pid=%d%s" + ", si_uid=%d, si_value={int=%d, ptr=%p}}) = 0\n", + info->si_pid, pidns_pid2str(PT_TGID), + info->si_pid, pidns_pid2str(PT_TID), + "SIGUSR1", "SIGUSR1", + info->si_pid, pidns_pid2str(PT_TGID), + info->si_uid, info->si_value.sival_int, info->si_value.sival_ptr); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-mx32/s390_guarded_storage.c b/tests-mx32/s390_guarded_storage.c index a84c1413..2a17b02a 100644 --- a/tests-mx32/s390_guarded_storage.c +++ b/tests-mx32/s390_guarded_storage.c @@ -1,14 +1,14 @@ /* * Check decoding of s390_guarded_storage syscall. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_s390_guarded_storage && defined HAVE_ASM_GUARDED_STORAGE_H diff --git a/tests-mx32/s390_pci_mmio_read_write.c b/tests-mx32/s390_pci_mmio_read_write.c index 0cd160c6..1286b134 100644 --- a/tests-mx32/s390_pci_mmio_read_write.c +++ b/tests-mx32/s390_pci_mmio_read_write.c @@ -1,14 +1,14 @@ /* * Check decoding of s390_pci_mmio_read and s390_pci_mmio_write syscalls. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_s390_pci_mmio_read && defined __NR_s390_pci_mmio_write diff --git a/tests-mx32/s390_runtime_instr.c b/tests-mx32/s390_runtime_instr.c index db31719b..a336f94b 100644 --- a/tests-mx32/s390_runtime_instr.c +++ b/tests-mx32/s390_runtime_instr.c @@ -1,14 +1,14 @@ /* * Check decoding of s390_runtime_instr syscall. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_s390_runtime_instr diff --git a/tests-mx32/s390_sthyi.c b/tests-mx32/s390_sthyi.c index 5186fdc9..48c3dda7 100644 --- a/tests-mx32/s390_sthyi.c +++ b/tests-mx32/s390_sthyi.c @@ -1,14 +1,14 @@ /* * Check decoding of s390_sthyi syscall. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined HAVE_ICONV_H && defined HAVE_ICONV_OPEN && defined __NR_s390_sthyi @@ -113,7 +113,7 @@ ebcdic2ascii(unsigned char *ebcdic, size_t size) size, sizeof(ascii_buf)); if (cd == (iconv_t) -1) perror_msg_and_fail("ebcdic2ascii: unable to allocate a " - "conversion descriptior for converting " + "conversion descriptor for converting " "EBCDIC to ASCII"); while ((ret = iconv(cd, &ebcdic_pos, &ebcdic_left, @@ -185,6 +185,44 @@ print_ebcdic(const char *prefix, unsigned char *addr, unsigned int offs, return true; } +static inline void +print_funcs(unsigned char *addr, unsigned int offs) +{ + bool cont; + const uint8_t *funcs = addr + offs; + + if (!funcs[0]) + return; + + printf(" /* "); + + if (funcs[0] & 0x80) { + printf("0: Obtain CPU Capacity Info"); + cont = true; + } + + if (funcs[0] & 0x40) + printf("%s1: Hypervisor Environment Info", + cont ? ", " : (cont = true, "")); + if (funcs[0] & 0x20) + printf("%s2: Guest List", + cont ? ", " : (cont = true, "")); + if (funcs[0] & 0x10) + printf("%s3: Designated Guest Info", + cont ? ", " : (cont = true, "")); + if (funcs[0] & 0x08) + printf("%s4: Resource Pool List", + cont ? ", " : (cont = true, "")); + if (funcs[0] & 0x04) + printf("%s5: Designated Resource Pool Information", + cont ? ", " : (cont = true, "")); + if (funcs[0] & 0x02) + printf("%s6: Resource Pool Member List", + cont ? ", " : (cont = true, "")); + + printf(" */"); +} + static void print_hypervisor_header(unsigned char *buf, int level, unsigned int offs_pos, unsigned int len_pos, bool mt) @@ -220,10 +258,16 @@ print_hypervisor_header(unsigned char *buf, int level, unsigned int offs_pos, "for capping"); printed = true; } - if (cur[0] & 0x3F) { + if (cur[0] & 0x20) { if (printed) printf(", "); - printf("%#hhx - ???", cur[0] & 0x3F); + printf("0x20 - hypervisor is MT-enabled"); + printed = true; + } + if (cur[0] & 0x1F) { + if (printed) + printf(", "); + printf("%#hhx - ???", cur[0] & 0x1F); } printf(" */"); } @@ -254,7 +298,20 @@ print_hypervisor_header(unsigned char *buf, int level, unsigned int offs_pos, print_u16(", infydifl", cur, 30, VERBOSE); # if VERBOSE - if (hdr_size > 32 && !is_empty(cur + 32, hdr_size - 32)) { + if (hdr_size >= 48) { + printf(", infyinsf="); + print_quoted_hex((char *) (cur + 32), 8); + print_funcs(cur, 32); + + printf(", infyautf="); + print_quoted_hex((char *) (cur + 40), 8); + print_funcs(cur, 40); + + if (hdr_size > 48 && !is_empty(cur + 48, hdr_size - 48)) { + printf(", "); + print_quoted_hex((char *) (cur + 48), hdr_size - 48); + } + } else if (hdr_size > 32 && !is_empty(cur + 32, hdr_size - 32)) { printf(", "); print_quoted_hex((char *) (cur + 32), hdr_size - 32); } @@ -452,7 +509,7 @@ print_sthyi(unsigned char *buf) hdr_size = *(uint16_t *) (buf + 10); if (hdr_size < 44) error_msg_and_fail("sthyi: header section is too small " - "(got %hu, 44 expected)", hdr_size); + "(got %hu, >=44 expected)", hdr_size); /* INFHFLG1 */ print_0x8("{/* header */ {infhflg1", buf, 0, true); @@ -541,7 +598,7 @@ print_sthyi(unsigned char *buf) hdr_size = *(uint16_t *) (buf + 14); if (hdr_size < 60) error_msg_and_fail("sthyi: machine section is too small " - "(got %hu, 60 expected)", hdr_size); + "(got %hu, >=60 expected)", hdr_size); cur = buf + offs; @@ -584,7 +641,19 @@ print_sthyi(unsigned char *buf) print_ebcdic(", infmseq", cur, 40, 16, id_valid, false); print_ebcdic(", infmpman", cur, 56, 4, id_valid, false); - if (hdr_size > 60 && !is_empty(cur + 60, hdr_size - 60)) { + if (hdr_size >= 72) { + if (cur[60] || cur[61] || cur[62] || cur[63]) + printf(", reserved_1__=" + "\"\\x%#02hhx\\x%#02hhx\\x%#02hhx\\x%#02hhx\"", + cur[60], cur[61], cur[62], cur[63]); + + print_ebcdic(", infmplnm", cur, 64, 8, false, false); + + if (hdr_size > 72 && !is_empty(cur + 72, hdr_size - 72)) { + printf(", "); + print_quoted_hex((char *) (cur + 72), hdr_size - 72); + } + } else if (hdr_size > 60 && !is_empty(cur + 60, hdr_size - 60)) { printf(", "); print_quoted_hex((char *) (cur + 60), hdr_size - 60); } @@ -601,9 +670,9 @@ partition_hdr: goto hv_hdr; hdr_size = *(uint16_t *) (buf + 18); - if (hdr_size < 56) + if (hdr_size < 40) error_msg_and_fail("sthyi: partition section is too small " - "(got %hu, 56 expected)", hdr_size); + "(got %hu, >=40 expected)", hdr_size); cur = buf + offs; @@ -672,21 +741,28 @@ partition_hdr: print_weight(", infpwbif", cur, 32, pwcap_valid); print_weight(", infpabif", cur, 36, pacap_valid); - if (print_ebcdic(", infplgnm", cur, 40, 8, false, false)) { - - print_weight(", infplgcp", cur, 48, false); - print_weight(", infplgif", cur, 52, false); - } else { - if (lpar_valid) { - printf(", infplgnm="); - print_quoted_hex((char *) (cur + 40), 8); + if (hdr_size >= 56) { + if (print_ebcdic(", infplgnm", cur, 40, 8, false, false)) { + print_weight(", infplgcp", cur, 48, false); + print_weight(", infplgif", cur, 52, false); + } else { + if (lpar_valid) { + printf(", infplgnm="); + print_quoted_hex((char *) (cur + 40), 8); + } + print_x32(", infplgcp", cur, 48, false); + print_x32(", infplgif", cur, 52, false); } - - print_x32(", infplgcp", cur, 48, false); - print_x32(", infplgif", cur, 52, false); } - if (hdr_size > 56 && !is_empty(cur + 56, hdr_size - 56)) { + if (hdr_size >= 64) { + print_ebcdic(", infpplnm", cur, 56, 8, false, false); + + if (hdr_size > 64 && !is_empty(cur + 64, hdr_size - 64)) { + printf(", "); + print_quoted_hex((char *) (cur + 64), hdr_size - 64); + } + } else if (hdr_size > 56 && !is_empty(cur + 56, hdr_size - 56)) { printf(", "); print_quoted_hex((char *) (cur + 56), hdr_size - 56); } diff --git a/tests-mx32/sched_get_priority_mxx.c b/tests-mx32/sched_get_priority_mxx.c index 7715d286..56bbef57 100644 --- a/tests-mx32/sched_get_priority_mxx.c +++ b/tests-mx32/sched_get_priority_mxx.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_sched_get_priority_min) \ && defined(__NR_sched_get_priority_max) diff --git a/tests-mx32/sched_rr_get_interval.c b/tests-mx32/sched_rr_get_interval.c index b1117f3b..3af6f851 100644 --- a/tests-mx32/sched_rr_get_interval.c +++ b/tests-mx32/sched_rr_get_interval.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sched_rr_get_interval diff --git a/tests-mx32/sched_xetaffinity--pidns-translation.c b/tests-mx32/sched_xetaffinity--pidns-translation.c new file mode 100644 index 00000000..814e3989 --- /dev/null +++ b/tests-mx32/sched_xetaffinity--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "sched_xetaffinity.c" diff --git a/tests-mx32/sched_xetaffinity--pidns-translation.gen.test b/tests-mx32/sched_xetaffinity--pidns-translation.gen.test new file mode 100755 index 00000000..767fa1a7 --- /dev/null +++ b/tests-mx32/sched_xetaffinity--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sched_xetaffinity--pidns-translation test_pidns -a28 -e trace=sched_getaffinity,sched_setaffinity); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a28 -e trace=sched_getaffinity,sched_setaffinity diff --git a/tests-mx32/sched_xetaffinity.c b/tests-mx32/sched_xetaffinity.c index 4e6fbe20..105b3354 100644 --- a/tests-mx32/sched_xetaffinity.c +++ b/tests-mx32/sched_xetaffinity.c @@ -2,13 +2,15 @@ * This file is part of sched_xetaffinity strace test. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #include #if defined __NR_sched_getaffinity && defined __NR_sched_setaffinity \ @@ -40,8 +42,11 @@ setaffinity(unsigned long pid, unsigned long size, void *set) int main(void) { + PIDNS_TEST_INIT; + unsigned int cpuset_size = 1; const pid_t pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); while (cpuset_size) { assert(getaffinity(pid, cpuset_size, NULL) == -1); @@ -49,18 +54,21 @@ main(void) break; if (EINVAL != errno) perror_msg_and_skip("sched_getaffinity"); - printf("sched_getaffinity(%d, %u, NULL) = %s\n", - pid, cpuset_size, errstr); + pidns_print_leader(); + printf("sched_getaffinity(%d%s, %u, NULL) = %s\n", + pid, pid_str, cpuset_size, errstr); cpuset_size <<= 1; } assert(cpuset_size); - printf("sched_getaffinity(%d, %u, NULL) = %s\n", - pid, cpuset_size, errstr); + pidns_print_leader(); + printf("sched_getaffinity(%d%s, %u, NULL) = %s\n", + pid, pid_str, cpuset_size, errstr); cpu_set_t *cpuset = tail_alloc(cpuset_size); getaffinity(pid, cpuset_size, cpuset + 1); - printf("sched_getaffinity(%d, %u, %p) = %s\n", - pid, cpuset_size, cpuset + 1, errstr); + pidns_print_leader(); + printf("sched_getaffinity(%d%s, %u, %p) = %s\n", + pid, pid_str, cpuset_size, cpuset + 1, errstr); int ret_size = getaffinity(pid, cpuset_size, cpuset); if (ret_size < 0) @@ -68,7 +76,8 @@ main(void) pid, (unsigned) cpuset_size, cpuset, errstr); assert(ret_size <= (int) cpuset_size); - printf("sched_getaffinity(%d, %u, [", pid, cpuset_size); + pidns_print_leader(); + printf("sched_getaffinity(%d%s, %u, [", pid, pid_str, cpuset_size); const char *sep; unsigned int i, cpu; for (i = 0, cpu = 0, sep = ""; i < (unsigned) ret_size * 8; ++i) { @@ -84,8 +93,9 @@ main(void) CPU_SET_S(cpu, cpuset_size, cpuset); if (setaffinity(pid, cpuset_size, cpuset)) perror_msg_and_skip("sched_setaffinity"); - printf("sched_setaffinity(%d, %u, [%u]) = 0\n", - pid, cpuset_size, cpu); + pidns_print_leader(); + printf("sched_setaffinity(%d%s, %u, [%u]) = 0\n", + pid, pid_str, cpuset_size, cpu); const unsigned int big_size = cpuset_size < 128 ? 128 : cpuset_size * 2; cpuset = tail_alloc(big_size); @@ -94,7 +104,8 @@ main(void) perror_msg_and_fail("sched_getaffinity(%d, %u, %p) = %s\n", pid, big_size, cpuset, errstr); assert(ret_size <= (int) big_size); - printf("sched_getaffinity(%d, %u, [", pid, big_size); + pidns_print_leader(); + printf("sched_getaffinity(%d%s, %u, [", pid, pid_str, big_size); for (i = 0, sep = ""; i < (unsigned) ret_size * 8; ++i) { if (CPU_ISSET_S(i, (unsigned) ret_size, cpuset)) { printf("%s%u", sep, i); @@ -103,6 +114,7 @@ main(void) } printf("]) = %s\n", errstr); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-mx32/sched_xetattr--pidns-translation.c b/tests-mx32/sched_xetattr--pidns-translation.c new file mode 100644 index 00000000..c152023d --- /dev/null +++ b/tests-mx32/sched_xetattr--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "sched_xetattr.c" diff --git a/tests-mx32/sched_xetattr--pidns-translation.gen.test b/tests-mx32/sched_xetattr--pidns-translation.gen.test new file mode 100755 index 00000000..52692a85 --- /dev/null +++ b/tests-mx32/sched_xetattr--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sched_xetattr--pidns-translation test_pidns -a29 -e trace=sched_getattr,sched_setattr); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a29 -e trace=sched_getattr,sched_setattr diff --git a/tests-mx32/sched_xetattr.c b/tests-mx32/sched_xetattr.c index 3440876b..4a76b2d6 100644 --- a/tests-mx32/sched_xetattr.c +++ b/tests-mx32/sched_xetattr.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2017 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_sched_getattr && defined __NR_sched_setattr @@ -15,6 +15,7 @@ # include # include # include +# include "pidns.h" # include "sched_attr.h" # include "xlat.h" # include "xlat/schedulers.h" @@ -41,6 +42,8 @@ sys_sched_setattr(kernel_ulong_t pid, kernel_ulong_t attr, kernel_ulong_t flags) int main(void) { + PIDNS_TEST_INIT; + static const kernel_ulong_t bogus_pid = (kernel_ulong_t) 0xdefacedfacefeedULL; static const kernel_ulong_t bogus_size = @@ -48,20 +51,28 @@ main(void) static const kernel_ulong_t bogus_flags = (kernel_ulong_t) 0xdefaceddeadc0deULL; + const int pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); + TAIL_ALLOC_OBJECT_CONST_PTR(struct sched_attr, attr); TAIL_ALLOC_OBJECT_CONST_PTR(unsigned int, psize); void *const efault = attr + 1; - sys_sched_getattr(0, 0, 0, 0); - printf("sched_getattr(0, NULL, 0, 0) = %s\n", errstr); + sys_sched_getattr(pid, 0, 0, 0); + pidns_print_leader(); + printf("sched_getattr(%d%s, NULL, 0, 0) = %s\n", + pid, pid_str, errstr); sys_sched_getattr(0, (unsigned long) attr, 0, 0); + pidns_print_leader(); printf("sched_getattr(0, %p, 0, 0) = %s\n", attr, errstr); sys_sched_getattr(bogus_pid, 0, 0, 0); + pidns_print_leader(); printf("sched_getattr(%d, NULL, 0, 0) = %s\n", (int) bogus_pid, errstr); sys_sched_getattr(-1U, (unsigned long) attr, bogus_size, bogus_flags); + pidns_print_leader(); printf("sched_getattr(-1, %p, %s%u, %u) = %s\n", attr, # if defined __arm64__ || defined __aarch64__ @@ -71,24 +82,52 @@ main(void) # endif (unsigned) bogus_size, (unsigned) bogus_flags, errstr); + sys_sched_getattr(0, (unsigned long) efault, SCHED_ATTR_MIN_SIZE, 0); + pidns_print_leader(); + printf("sched_getattr(0, %p, %u, 0) = %s\n", + efault, (unsigned) SCHED_ATTR_MIN_SIZE, errstr); + + if (sys_sched_getattr(0, (unsigned long) attr, SCHED_ATTR_MIN_SIZE, 0)) + perror_msg_and_skip("sched_getattr"); + pidns_print_leader(); + printf("sched_getattr(0, {size=%u, sched_policy=", attr->size); + printxval(schedulers, attr->sched_policy, NULL); + printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u" + ", sched_runtime=%" PRIu64 ", sched_deadline=%" PRIu64 + ", sched_period=%" PRIu64 "}, %u, 0) = 0\n", + attr->sched_flags ? "SCHED_FLAG_RESET_ON_FORK" : "0", + attr->sched_nice, + attr->sched_priority, + attr->sched_runtime, + attr->sched_deadline, + attr->sched_period, + (unsigned) SCHED_ATTR_MIN_SIZE); + sys_sched_getattr(0, (unsigned long) efault, sizeof(*attr), 0); + pidns_print_leader(); printf("sched_getattr(0, %p, %u, 0) = %s\n", efault, (unsigned) sizeof(*attr), errstr); if (sys_sched_getattr(0, (unsigned long) attr, sizeof(*attr), 0)) perror_msg_and_skip("sched_getattr"); + pidns_print_leader(); printf("sched_getattr(0, {size=%u, sched_policy=", attr->size); printxval(schedulers, attr->sched_policy, NULL); printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u" ", sched_runtime=%" PRIu64 ", sched_deadline=%" PRIu64 - ", sched_period=%" PRIu64 "}, %u, 0) = 0\n", + ", sched_period=%" PRIu64, attr->sched_flags ? "SCHED_FLAG_RESET_ON_FORK" : "0", attr->sched_nice, attr->sched_priority, attr->sched_runtime, attr->sched_deadline, - attr->sched_period, - (unsigned) sizeof(*attr)); + attr->sched_period); + if (attr->size >= SCHED_ATTR_SIZE_VER1) { + printf(", sched_util_min=%u, sched_util_max=%u", + attr->sched_util_min, + attr->sched_util_max); + } + printf("}, %u, 0) = 0\n", (unsigned) sizeof(*attr)); # if defined __arm64__ || defined __aarch64__ long rc = @@ -97,66 +136,91 @@ main(void) F8ILL_KULONG_MASK | sizeof(*attr), F8ILL_KULONG_MASK); # if defined __arm64__ || defined __aarch64__ if (rc) { + pidns_print_leader(); printf("sched_getattr(0, %p, 0xffffffff<<32|%u, 0) = %s\n", attr, (unsigned) sizeof(*attr), errstr); } else # endif { + pidns_print_leader(); printf("sched_getattr(0, {size=%u, sched_policy=", attr->size); printxval(schedulers, attr->sched_policy, NULL); printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u" ", sched_runtime=%" PRIu64 ", sched_deadline=%" PRIu64 - ", sched_period=%" PRIu64 "}, %u, 0) = 0\n", + ", sched_period=%" PRIu64, attr->sched_flags ? "SCHED_FLAG_RESET_ON_FORK" : "0", attr->sched_nice, attr->sched_priority, attr->sched_runtime, attr->sched_deadline, - attr->sched_period, - (unsigned) sizeof(*attr)); + attr->sched_period); + if (attr->size >= SCHED_ATTR_SIZE_VER1) { + printf(", sched_util_min=%u, sched_util_max=%u", + attr->sched_util_min, + attr->sched_util_max); + } + printf("}, %u, 0) = 0\n", (unsigned) sizeof(*attr)); } sys_sched_setattr(bogus_pid, 0, 0); + pidns_print_leader(); printf("sched_setattr(%d, NULL, 0) = %s\n", (int) bogus_pid, errstr); attr->sched_flags |= 1; - if (sys_sched_setattr(0, (unsigned long) attr, 0)) + if (sys_sched_setattr(pid, (unsigned long) attr, 0)) perror_msg_and_skip("sched_setattr"); - printf("sched_setattr(0, {size=%u, sched_policy=", attr->size); + pidns_print_leader(); + printf("sched_setattr(%d%s, {size=%u, sched_policy=", + pid, pid_str, attr->size); printxval(schedulers, attr->sched_policy, NULL); printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u" ", sched_runtime=%" PRIu64 ", sched_deadline=%" PRIu64 - ", sched_period=%" PRIu64 "}, 0) = 0\n", + ", sched_period=%" PRIu64, "SCHED_FLAG_RESET_ON_FORK", attr->sched_nice, attr->sched_priority, attr->sched_runtime, attr->sched_deadline, attr->sched_period); + if (attr->size >= SCHED_ATTR_SIZE_VER1) { + printf(", sched_util_min=%u, sched_util_max=%u", + attr->sched_util_min, + attr->sched_util_max); + } + printf("}, 0) = 0\n"); sys_sched_setattr(F8ILL_KULONG_MASK, (unsigned long) attr, F8ILL_KULONG_MASK); + pidns_print_leader(); printf("sched_setattr(0, {size=%u, sched_policy=", attr->size); printxval(schedulers, attr->sched_policy, NULL); printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u" ", sched_runtime=%" PRIu64 ", sched_deadline=%" PRIu64 - ", sched_period=%" PRIu64 "}, 0) = 0\n", + ", sched_period=%" PRIu64, "SCHED_FLAG_RESET_ON_FORK", attr->sched_nice, attr->sched_priority, attr->sched_runtime, attr->sched_deadline, attr->sched_period); + if (attr->size >= SCHED_ATTR_SIZE_VER1) { + printf(", sched_util_min=%u, sched_util_max=%u", + attr->sched_util_min, + attr->sched_util_max); + } + printf("}, 0) = 0\n"); *psize = attr->size; sys_sched_setattr(0, (unsigned long) psize, 0); + pidns_print_leader(); printf("sched_setattr(0, %p, 0) = %s\n", psize, errstr); attr->size = 0; sys_sched_setattr(0, (unsigned long) attr, 0); + pidns_print_leader(); printf("sched_setattr(0, {size=%u, sched_policy=", attr->size); printxval(schedulers, attr->sched_policy, NULL); printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u" @@ -172,18 +236,20 @@ main(void) attr->size = 1; sys_sched_setattr(0, (unsigned long) attr, 0); + pidns_print_leader(); printf("sched_setattr(0, {size=%u} => {size=%u}, 0) = %s\n", 1, attr->size, errstr); attr->size = SCHED_ATTR_MIN_SIZE - 1; sys_sched_setattr(0, (unsigned long) attr, 0); + pidns_print_leader(); printf("sched_setattr(0, {size=%u} => {size=%u}, 0) = %s\n", SCHED_ATTR_MIN_SIZE - 1, attr->size, errstr); attr->size = 0x90807060; attr->sched_policy = 0xca7faced; - attr->sched_flags = 0xbadc0ded1057da78ULL; + attr->sched_flags = 0xbadc0ded1057da80ULL; attr->sched_nice = 0xafbfcfdf; attr->sched_priority = 0xb8c8d8e8; attr->sched_runtime = 0xbadcaffedeadf157ULL; @@ -191,11 +257,12 @@ main(void) attr->sched_period = 0xded1ca7edda7aca7ULL; sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags); + pidns_print_leader(); printf("sched_setattr(%d, {size=%u, sched_policy=%#x /* SCHED_??? */, " "sched_flags=%#" PRIx64 " /* SCHED_FLAG_??? */, " "sched_nice=%d, sched_priority=%u, sched_runtime=%" PRIu64 ", " - "sched_deadline=%" PRIu64 ", sched_period=%" PRIu64 ", ...}, %u)" - " = %s\n", + "sched_deadline=%" PRIu64 ", sched_period=%" PRIu64 ", " + "sched_util_min=%u, sched_util_max=%u, ...}, %u) = %s\n", (int) bogus_pid, attr->size, attr->sched_policy, @@ -205,6 +272,8 @@ main(void) attr->sched_runtime, attr->sched_deadline, attr->sched_period, + attr->sched_util_min, + attr->sched_util_max, (unsigned) bogus_flags, errstr); if (F8ILL_KULONG_SUPPORTED) { @@ -223,7 +292,7 @@ main(void) attr->size = 0x90807060; attr->sched_policy = 0xca7faced; - attr->sched_flags = 0xfULL; + attr->sched_flags = 0x87ULL; attr->sched_nice = 0xafbfcfdf; attr->sched_priority = 0xb8c8d8e8; attr->sched_runtime = 0xbadcaffedeadf157ULL; @@ -231,35 +300,143 @@ main(void) attr->sched_period = 0xded1ca7edda7aca7ULL; sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags); + pidns_print_leader(); printf("sched_setattr(%d, {size=%u, sched_policy=%#x /* SCHED_??? */, " "sched_flags=SCHED_FLAG_RESET_ON_FORK|SCHED_FLAG_RECLAIM|" - "SCHED_FLAG_DL_OVERRUN|0x8, " + "SCHED_FLAG_DL_OVERRUN|0x80, " + "sched_nice=%d, sched_priority=%u, sched_runtime=%" PRIu64 ", " + "sched_deadline=%" PRIu64 ", sched_period=%" PRIu64 ", " + "sched_util_min=%u, sched_util_max=%u, ...}, %u) = %s\n", + (int) bogus_pid, + attr->size, + attr->sched_policy, + attr->sched_nice, + attr->sched_priority, + attr->sched_runtime, + attr->sched_deadline, + attr->sched_period, + attr->sched_util_min, + attr->sched_util_max, + (unsigned) bogus_flags, errstr); + + if (F8ILL_KULONG_SUPPORTED) { + const kernel_ulong_t ill = f8ill_ptr_to_kulong(attr); + + sys_sched_getattr(0, ill, sizeof(*attr), 0); + pidns_print_leader(); + printf("sched_getattr(0, %#llx, %u, 0) = %s\n", + (unsigned long long) ill, (unsigned) sizeof(*attr), + errstr); + + sys_sched_setattr(0, ill, 0); + pidns_print_leader(); + printf("sched_setattr(0, %#llx, 0) = %s\n", + (unsigned long long) ill, errstr); + } + + attr->size = SCHED_ATTR_MIN_SIZE; + attr->sched_policy = 0xdefaced; + attr->sched_flags = 0x8fULL; + + sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags); + pidns_print_leader(); + printf("sched_setattr(%d, {size=%u, " + "sched_flags=SCHED_FLAG_RESET_ON_FORK|SCHED_FLAG_RECLAIM|" + "SCHED_FLAG_DL_OVERRUN|SCHED_FLAG_KEEP_POLICY|0x80, " "sched_nice=%d, sched_priority=%u, sched_runtime=%" PRIu64 ", " - "sched_deadline=%" PRIu64 ", sched_period=%" PRIu64 ", ...}, %u)" + "sched_deadline=%" PRIu64 ", sched_period=%" PRIu64 "}, %u)" " = %s\n", (int) bogus_pid, attr->size, + attr->sched_nice, + attr->sched_priority, + attr->sched_runtime, + attr->sched_deadline, + attr->sched_period, + (unsigned) bogus_flags, errstr); + + if (F8ILL_KULONG_SUPPORTED) { + const kernel_ulong_t ill = f8ill_ptr_to_kulong(attr); + + sys_sched_getattr(0, ill, sizeof(*attr), 0); + pidns_print_leader(); + printf("sched_getattr(0, %#llx, %u, 0) = %s\n", + (unsigned long long) ill, (unsigned) sizeof(*attr), + errstr); + + sys_sched_setattr(0, ill, 0); + pidns_print_leader(); + printf("sched_setattr(0, %#llx, 0) = %s\n", + (unsigned long long) ill, errstr); + } + + attr->size = SCHED_ATTR_SIZE_VER1; + attr->sched_flags = 0xe7ULL; + + sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags); + pidns_print_leader(); + printf("sched_setattr(%d, {size=%u, sched_policy=%#x /* SCHED_??? */, " + "sched_flags=SCHED_FLAG_RESET_ON_FORK|SCHED_FLAG_RECLAIM|" + "SCHED_FLAG_DL_OVERRUN|SCHED_FLAG_UTIL_CLAMP_MIN" + "|SCHED_FLAG_UTIL_CLAMP_MAX|0x80, " + "sched_nice=%d, sched_priority=%u, sched_runtime=%" PRIu64 ", " + "sched_deadline=%" PRIu64 ", sched_period=%" PRIu64 ", " + "sched_util_min=%u, sched_util_max=%u}, %u) = %s\n", + (int) bogus_pid, + attr->size, attr->sched_policy, attr->sched_nice, attr->sched_priority, attr->sched_runtime, attr->sched_deadline, attr->sched_period, + attr->sched_util_min, + attr->sched_util_max, + (unsigned) bogus_flags, errstr); + + if (F8ILL_KULONG_SUPPORTED) { + const kernel_ulong_t ill = f8ill_ptr_to_kulong(attr); + + sys_sched_getattr(0, ill, sizeof(*attr), 0); + pidns_print_leader(); + printf("sched_getattr(0, %#llx, %u, 0) = %s\n", + (unsigned long long) ill, (unsigned) sizeof(*attr), + errstr); + + sys_sched_setattr(0, ill, 0); + pidns_print_leader(); + printf("sched_setattr(0, %#llx, 0) = %s\n", + (unsigned long long) ill, errstr); + } + + attr->sched_flags = 0xcaffee90LL; + + sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags); + pidns_print_leader(); + printf("sched_setattr(%d, {size=%u, sched_flags=SCHED_FLAG_KEEP_PARAMS" + "|0xcaffee80, sched_util_min=%u, sched_util_max=%u}, %u) = %s\n", + (int) bogus_pid, + attr->size, + attr->sched_util_min, + attr->sched_util_max, (unsigned) bogus_flags, errstr); if (F8ILL_KULONG_SUPPORTED) { const kernel_ulong_t ill = f8ill_ptr_to_kulong(attr); sys_sched_getattr(0, ill, sizeof(*attr), 0); + pidns_print_leader(); printf("sched_getattr(0, %#llx, %u, 0) = %s\n", (unsigned long long) ill, (unsigned) sizeof(*attr), errstr); sys_sched_setattr(0, ill, 0); + pidns_print_leader(); printf("sched_setattr(0, %#llx, 0) = %s\n", (unsigned long long) ill, errstr); } + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-mx32/sched_xetparam--pidns-translation.c b/tests-mx32/sched_xetparam--pidns-translation.c new file mode 100644 index 00000000..9fb3e579 --- /dev/null +++ b/tests-mx32/sched_xetparam--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "sched_xetparam.c" diff --git a/tests-mx32/sched_xetparam--pidns-translation.gen.test b/tests-mx32/sched_xetparam--pidns-translation.gen.test new file mode 100755 index 00000000..309cabbe --- /dev/null +++ b/tests-mx32/sched_xetparam--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sched_xetparam--pidns-translation test_pidns -a23 -e trace=sched_getparam,sched_setparam); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a23 -e trace=sched_getparam,sched_setparam diff --git a/tests-mx32/sched_xetparam.c b/tests-mx32/sched_xetparam.c index e1325a6f..f48ba6d7 100644 --- a/tests-mx32/sched_xetparam.c +++ b/tests-mx32/sched_xetparam.c @@ -1,12 +1,13 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #if defined __NR_sched_getparam && defined __NR_sched_setparam @@ -17,18 +18,27 @@ int main(void) { + PIDNS_TEST_INIT; + struct sched_param *const param = tail_alloc(sizeof(struct sched_param)); - long rc = syscall(__NR_sched_getparam, 0, param); - printf("sched_getparam(0, [%d]) = %ld\n", - param->sched_priority, rc); + const int pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); + + long rc = syscall(__NR_sched_getparam, pid, param); + pidns_print_leader(); + printf("sched_getparam(%d%s, [%d]) = %ld\n", + pid, pid_str, param->sched_priority, rc); param->sched_priority = -1; - rc = syscall(__NR_sched_setparam, 0, param); - printf("sched_setparam(0, [%d]) = %ld %s (%m)\n", + rc = syscall(__NR_sched_setparam, pid, param); + pidns_print_leader(); + printf("sched_setparam(%d%s, [%d]) = %ld %s (%m)\n", + pid, pid_str, param->sched_priority, rc, errno2name()); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-mx32/sched_xetscheduler--pidns-translation.c b/tests-mx32/sched_xetscheduler--pidns-translation.c new file mode 100644 index 00000000..78b794b2 --- /dev/null +++ b/tests-mx32/sched_xetscheduler--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "sched_xetscheduler.c" diff --git a/tests-mx32/sched_xetscheduler--pidns-translation.gen.test b/tests-mx32/sched_xetscheduler--pidns-translation.gen.test new file mode 100755 index 00000000..12581e44 --- /dev/null +++ b/tests-mx32/sched_xetscheduler--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sched_xetscheduler--pidns-translation test_pidns -a22 -e trace=sched_getscheduler,sched_setscheduler); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a22 -e trace=sched_getscheduler,sched_setscheduler diff --git a/tests-mx32/sched_xetscheduler.c b/tests-mx32/sched_xetscheduler.c index bc48085a..d93db385 100644 --- a/tests-mx32/sched_xetscheduler.c +++ b/tests-mx32/sched_xetscheduler.c @@ -1,12 +1,13 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #if defined __NR_sched_getscheduler && defined __NR_sched_setscheduler @@ -17,8 +18,13 @@ int main(void) { + PIDNS_TEST_INIT; + TAIL_ALLOC_OBJECT_CONST_PTR(struct sched_param, param); - long rc = syscall(__NR_sched_getscheduler, 0); + const int pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); + + long rc = syscall(__NR_sched_getscheduler, pid); const char *scheduler; switch (rc) { case SCHED_FIFO: @@ -50,33 +56,43 @@ main(void) default: scheduler = "SCHED_OTHER"; } - printf("sched_getscheduler(0) = %ld (%s)\n", - rc, scheduler); + pidns_print_leader(); + printf("sched_getscheduler(%d%s) = %ld (%s)\n", + pid, pid_str, rc, scheduler); rc = syscall(__NR_sched_getscheduler, -1); + pidns_print_leader(); printf("sched_getscheduler(-1) = %s\n", sprintrc(rc)); param->sched_priority = -1; - rc = syscall(__NR_sched_setscheduler, 0, SCHED_FIFO, NULL); - printf("sched_setscheduler(0, SCHED_FIFO, NULL) = %s\n", sprintrc(rc)); + rc = syscall(__NR_sched_setscheduler, pid, SCHED_FIFO, NULL); + pidns_print_leader(); + printf("sched_setscheduler(%d%s, SCHED_FIFO, NULL) = %s\n", + pid, pid_str, sprintrc(rc)); - rc = syscall(__NR_sched_setscheduler, 0, SCHED_FIFO, param + 1); - printf("sched_setscheduler(0, SCHED_FIFO, %p) = %s\n", param + 1, - sprintrc(rc)); + rc = syscall(__NR_sched_setscheduler, pid, SCHED_FIFO, param + 1); + pidns_print_leader(); + printf("sched_setscheduler(%d%s, SCHED_FIFO, %p) = %s\n", + pid, pid_str, param + 1, sprintrc(rc)); - rc = syscall(__NR_sched_setscheduler, 0, 0xfaceda7a, param); - printf("sched_setscheduler(0, %#x /* SCHED_??? */, [%d]) = %s\n", - 0xfaceda7a, param->sched_priority, sprintrc(rc)); + rc = syscall(__NR_sched_setscheduler, pid, 0xfaceda7a, param); + pidns_print_leader(); + printf("sched_setscheduler(%d%s, %#x /* SCHED_??? */, [%d]) = %s\n", + pid, pid_str, 0xfaceda7a, + param->sched_priority, sprintrc(rc)); rc = syscall(__NR_sched_setscheduler, -1, SCHED_FIFO, param); + pidns_print_leader(); printf("sched_setscheduler(-1, SCHED_FIFO, [%d]) = %s\n", param->sched_priority, sprintrc(rc)); - rc = syscall(__NR_sched_setscheduler, 0, SCHED_FIFO, param); - printf("sched_setscheduler(0, SCHED_FIFO, [%d]) = %s\n", - param->sched_priority, sprintrc(rc)); + rc = syscall(__NR_sched_setscheduler, pid, SCHED_FIFO, param); + pidns_print_leader(); + printf("sched_setscheduler(%d%s, SCHED_FIFO, [%d]) = %s\n", + pid, pid_str, param->sched_priority, sprintrc(rc)); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-mx32/sched_yield.c b/tests-mx32/sched_yield.c index 40b55617..8a3d689f 100644 --- a/tests-mx32/sched_yield.c +++ b/tests-mx32/sched_yield.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sched_yield diff --git a/tests-mx32/seccomp-filter-v.c b/tests-mx32/seccomp-filter-v.c index 98eaeee5..b5f38ca5 100644 --- a/tests-mx32/seccomp-filter-v.c +++ b/tests-mx32/seccomp-filter-v.c @@ -2,7 +2,7 @@ * Check verbose decoding of seccomp SECCOMP_SET_MODE_FILTER. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -13,16 +13,13 @@ #include #include #include -#include #include - -#ifdef HAVE_PRCTL -# include -#endif +#include #ifdef HAVE_LINUX_SECCOMP_H # include #endif #include +#include "scno.h" #if defined __NR_seccomp \ && defined PR_SET_NO_NEW_PRIVS \ @@ -43,14 +40,14 @@ BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_KILL) # define PRINT_ALLOW_SYSCALL(nr) \ - tprintf("BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, %#x, 0, 0x1), " \ - "BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_ALLOW), ", \ - __NR_ ## nr) + tprintf("BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, %#lx, 0, 0x1), " \ + "BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_ALLOW), ", \ + (long) __NR_ ## nr) # define PRINT_DENY_SYSCALL(nr, err) \ - tprintf("BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, %#x, 0, 0x1), " \ - "BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_ERRNO|%#x), ", \ - __NR_ ## nr, err) + tprintf("BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, %#lx, 0, 0x1), " \ + "BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_ERRNO|%#x), ", \ + (long) __NR_ ## nr, err) static const struct sock_filter filter_c[] = { /* load syscall number */ @@ -118,7 +115,8 @@ main(void) tprintf("seccomp(SECCOMP_SET_MODE_FILTER, %s, {len=%u, filter=[", "SECCOMP_FILTER_FLAG_TSYNC|SECCOMP_FILTER_FLAG_LOG|" "SECCOMP_FILTER_FLAG_SPEC_ALLOW|" - "SECCOMP_FILTER_FLAG_NEW_LISTENER|0xfffffff0", + "SECCOMP_FILTER_FLAG_NEW_LISTENER|" + "SECCOMP_FILTER_FLAG_TSYNC_ESRCH|0xffffffe0", prog->len); for (i = 0; i < BPF_MAXINSNS; ++i) { if (i) diff --git a/tests-mx32/seccomp-filter.c b/tests-mx32/seccomp-filter.c index 5e28ffca..ef485dd8 100644 --- a/tests-mx32/seccomp-filter.c +++ b/tests-mx32/seccomp-filter.c @@ -2,7 +2,7 @@ * Check decoding of seccomp SECCOMP_SET_MODE_FILTER. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +11,7 @@ #include "tests.h" #include -#include +#include "scno.h" #include #ifdef HAVE_LINUX_SECCOMP_H @@ -38,12 +38,13 @@ main(void) " = %ld %s (%m)\n", "SECCOMP_FILTER_FLAG_TSYNC|SECCOMP_FILTER_FLAG_LOG|" "SECCOMP_FILTER_FLAG_SPEC_ALLOW|" - "SECCOMP_FILTER_FLAG_NEW_LISTENER|0xfffffff0", + "SECCOMP_FILTER_FLAG_NEW_LISTENER|" + "SECCOMP_FILTER_FLAG_TSYNC_ESRCH|0xffffffe0", prog->len, prog->filter, rc, errno2name()); - rc = syscall(__NR_seccomp, SECCOMP_SET_MODE_FILTER, -16L, efault); + rc = syscall(__NR_seccomp, SECCOMP_SET_MODE_FILTER, -32L, efault); printf("seccomp(SECCOMP_SET_MODE_FILTER, %s, %p) = %ld %s (%m)\n", - "0xfffffff0 /* SECCOMP_FILTER_FLAG_??? */", + "0xffffffe0 /* SECCOMP_FILTER_FLAG_??? */", efault, rc, errno2name()); puts("+++ exited with 0 +++"); diff --git a/tests-mx32/seccomp-strict.c b/tests-mx32/seccomp-strict.c index 1d088109..fcf30e54 100644 --- a/tests-mx32/seccomp-strict.c +++ b/tests-mx32/seccomp-strict.c @@ -2,13 +2,14 @@ * Check how seccomp SECCOMP_SET_MODE_STRICT is decoded. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_seccomp && defined __NR_exit @@ -37,7 +38,7 @@ main(void) rc = 0; } else { /* - * If kernel implementaton of SECCOMP_MODE_STRICT is buggy, + * If kernel implementation of SECCOMP_MODE_STRICT is buggy, * the following syscall will result to SIGKILL. */ rc = write(1, text1, LENGTH_OF(text1)) != LENGTH_OF(text1); diff --git a/tests-mx32/seccomp_get_action_avail.c b/tests-mx32/seccomp_get_action_avail.c index e61678f4..6ae23b96 100644 --- a/tests-mx32/seccomp_get_action_avail.c +++ b/tests-mx32/seccomp_get_action_avail.c @@ -8,7 +8,7 @@ */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_seccomp diff --git a/tests-mx32/select.c b/tests-mx32/select.c index 7935032b..d65d1364 100644 --- a/tests-mx32/select.c +++ b/tests-mx32/select.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_select && !defined __NR__newselect diff --git a/tests-mx32/semop-common.c b/tests-mx32/semop-common.c new file mode 100644 index 00000000..646a1169 --- /dev/null +++ b/tests-mx32/semop-common.c @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2016-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include +#include +#include +#include +#include +#include + +#define XLAT_MACROS_ONLY +#include "xlat/semop_flags.h" +#undef XLAT_MACROS_ONLY + +static const char *errstr; + +static long +k_semop(const unsigned int semid, + const kernel_ulong_t sops, + const unsigned int nsops); + +union semun { + int val; + struct semid_ds *buf; + unsigned short *array; + struct seminfo *__buf; +}; + +static int id = -1; + +static void +cleanup(void) +{ + semctl(id, 0, IPC_RMID, 0); + id = -1; +} + +int +main(void) +{ + static const int bogus_semid = 0xfdb97531; + static kernel_ulong_t bogus_sops = (kernel_ulong_t) -1ULL; + static const unsigned int bogus_nsops = 0xdeadbeefU; + + id = semget(IPC_PRIVATE, 1, 0600); + if (id < 0) + perror_msg_and_skip("semget"); + atexit(cleanup); + + union semun sem_union = { .val = 0 }; + if (semctl(id, 0, SETVAL, sem_union) == -1) + perror_msg_and_skip("semctl"); + + k_semop(bogus_semid, 0, bogus_nsops); + printf("semop(%d, NULL, %u) = %s\n", + bogus_semid, bogus_nsops, errstr); + + k_semop(bogus_semid, bogus_sops, 1); + printf("semop(%d, %#llx, %u) = %s\n", + bogus_semid, (unsigned long long) bogus_sops, 1, errstr); + + TAIL_ALLOC_OBJECT_CONST_PTR(struct sembuf, sem_b2); + sem_b2->sem_num = 0xface; + sem_b2->sem_op = 0xf00d; + sem_b2->sem_flg = 0xbeef; + + k_semop(bogus_semid, (uintptr_t) sem_b2, 2); + printf("semop(%d, [{%hu, %hd, %s%s%#hx}, ... /* %p */], %u) = %s\n", + bogus_semid, sem_b2->sem_num, sem_b2->sem_op, + sem_b2->sem_flg & SEM_UNDO ? "SEM_UNDO|" : "", + sem_b2->sem_flg & IPC_NOWAIT ? "IPC_NOWAIT|" : "", + (short) (sem_b2->sem_flg & ~(SEM_UNDO | IPC_NOWAIT)), + sem_b2 + 1, 2, errstr); + + TAIL_ALLOC_OBJECT_CONST_PTR(struct sembuf, sem_b); + sem_b->sem_num = 0; + sem_b->sem_op = 1; + sem_b->sem_flg = SEM_UNDO; + + k_semop(id, (uintptr_t) sem_b, 1); + printf("semop(%d, [{0, 1, SEM_UNDO}], 1) = %s\n", id, errstr); + + sem_b->sem_op = -1; + k_semop(id, (uintptr_t) sem_b, 1); + printf("semop(%d, [{0, -1, SEM_UNDO}], 1) = %s\n", id, errstr); + + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests-mx32/semop-indirect.c b/tests-mx32/semop-indirect.c new file mode 100644 index 00000000..452f7baf --- /dev/null +++ b/tests-mx32/semop-indirect.c @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2016-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#if defined __NR_ipc && !defined __ARM_EABI__ + +# include "semop-common.c" + +# define XLAT_MACROS_ONLY +# include "xlat/ipccalls.h" +# undef XLAT_MACROS_ONLY + +static long +k_semop(const unsigned int semid, + const kernel_ulong_t sops, + const unsigned int nsops) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | SEMOP; + const kernel_ulong_t arg2 = fill | semid; + const kernel_ulong_t arg3 = fill | nsops; + const kernel_ulong_t arg5 = sops; + const long rc = syscall(__NR_ipc, arg1, arg2, arg3, bad, arg5, bad); + errstr = sprintrc(rc); + return rc; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_ipc && !__ARM_EABI__") + +#endif diff --git a/tests-mx32/semop-indirect.gen.test b/tests-mx32/semop-indirect.gen.test new file mode 100755 index 00000000..b70a697c --- /dev/null +++ b/tests-mx32/semop-indirect.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (semop-indirect -a32 -e trace=semop); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a32 -e trace=semop diff --git a/tests-mx32/semop.c b/tests-mx32/semop.c index f7f04701..7725cd46 100644 --- a/tests-mx32/semop.c +++ b/tests-mx32/semop.c @@ -1,143 +1,34 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include -#include -#include -#include -#include +#include "scno.h" -#include "xlat.h" -#include "xlat/semop_flags.h" +#ifdef __NR_semop -union semun { - int val; - struct semid_ds *buf; - unsigned short *array; - struct seminfo *__buf; -}; +# include "semop-common.c" -static int id = -1; - -static void -cleanup(void) +static long +k_semop(const unsigned int semid, + const kernel_ulong_t sops, + const unsigned int nsops) { - semctl(id, 0, IPC_RMID, 0); - id = -1; + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | semid; + const kernel_ulong_t arg2 = sops; + const kernel_ulong_t arg3 = fill | nsops; + const long rc = syscall(__NR_semop, arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; } -int -main(void) -{ - static const int bogus_semid = 0xfdb97531; - static void * const bogus_sops = (void *) -1L; - static const size_t bogus_nsops = (size_t) 0xdefaceddeadbeefULL; - - TAIL_ALLOC_OBJECT_CONST_PTR(struct timespec, ts); - int rc; - - id = semget(IPC_PRIVATE, 1, 0600); - if (id < 0) - perror_msg_and_skip("semget"); - atexit(cleanup); - - union semun sem_union = { .val = 0 }; - if (semctl(id, 0, SETVAL, sem_union) == -1) - perror_msg_and_skip("semctl"); - - TAIL_ALLOC_OBJECT_CONST_PTR(struct sembuf, sem_b); - TAIL_ALLOC_OBJECT_CONST_PTR(struct sembuf, sem_b2); - - rc = semop(bogus_semid, NULL, bogus_nsops); - printf("semop(%d, NULL, %u) = %s\n", - bogus_semid, (unsigned) bogus_nsops, sprintrc(rc)); - - rc = semop(bogus_semid, bogus_sops, 1); - printf("semop(%d, %p, %u) = %s\n", - bogus_semid, bogus_sops, 1, sprintrc(rc)); - - sem_b->sem_num = 0; - sem_b->sem_op = 1; - sem_b->sem_flg = SEM_UNDO; - - sem_b2->sem_num = 0xface; - sem_b2->sem_op = 0xf00d; - sem_b2->sem_flg = 0xbeef; +#else - rc = semop(bogus_semid, sem_b2, 2); - printf("semop(%d, [{%hu, %hd, %s%s%#hx}, ... /* %p */], %u) = %s\n", - bogus_semid, sem_b2->sem_num, sem_b2->sem_op, - sem_b2->sem_flg & SEM_UNDO ? "SEM_UNDO|" : "", - sem_b2->sem_flg & IPC_NOWAIT ? "IPC_NOWAIT|" : "", - (short) (sem_b2->sem_flg & ~(SEM_UNDO | IPC_NOWAIT)), - sem_b2 + 1, 2, sprintrc(rc)); +SKIP_MAIN_UNDEFINED("__NR_semop") - if (semop(id, sem_b, 1)) - perror_msg_and_skip("semop, 1"); - printf("semop(%d, [{0, 1, SEM_UNDO}], 1) = 0\n", id); - - sem_b->sem_op = -1; - if (semop(id, sem_b, 1)) - perror_msg_and_skip("semop, -1"); - printf("semop(%d, [{0, -1, SEM_UNDO}], 1) = 0\n", id); - - rc = semtimedop(bogus_semid, NULL, bogus_nsops, NULL); - printf("semtimedop(%d, NULL, %u, NULL) = %s\n", - bogus_semid, (unsigned) bogus_nsops, sprintrc(rc)); - - rc = semtimedop(id, sem_b + 1, 1, ts + 1); - printf("semtimedop(%d, %p, 1, %p) = %s\n", - id, sem_b + 1, ts + 1, sprintrc(rc)); - - ts->tv_sec = 1; - ts->tv_nsec = 123456789; - rc = semtimedop(bogus_semid, sem_b2, 2, ts); - printf("semtimedop(%d, [{%hu, %hd, %s%s%#hx}, ... /* %p */], %u" - ", {tv_sec=%lld, tv_nsec=%llu}) = %s\n", - bogus_semid, sem_b2->sem_num, sem_b2->sem_op, - sem_b2->sem_flg & SEM_UNDO ? "SEM_UNDO|" : "", - sem_b2->sem_flg & IPC_NOWAIT ? "IPC_NOWAIT|" : "", - (short) (sem_b2->sem_flg & ~(SEM_UNDO | IPC_NOWAIT)), - sem_b2 + 1, 2, - (long long) ts->tv_sec, zero_extend_signed_to_ull(ts->tv_nsec), - sprintrc(rc)); - - sem_b->sem_op = 1; - if (semtimedop(id, sem_b, 1, NULL)) - perror_msg_and_skip("semtimedop, 1"); - printf("semtimedop(%d, [{0, 1, SEM_UNDO}], 1, NULL) = 0\n", id); - - sem_b->sem_op = -1; - if (semtimedop(id, sem_b, 1, ts)) - perror_msg_and_skip("semtimedop, -1"); - printf("semtimedop(%d, [{0, -1, SEM_UNDO}], 1" - ", {tv_sec=%lld, tv_nsec=%llu}) = 0\n", id, - (long long) ts->tv_sec, zero_extend_signed_to_ull(ts->tv_nsec)); - - sem_b->sem_op = 1; - ts->tv_sec = 0xdeadbeefU; - ts->tv_nsec = 0xfacefeedU; - rc = semtimedop(id, sem_b, 1, ts); - printf("semtimedop(%d, [{0, 1, SEM_UNDO}], 1" - ", {tv_sec=%lld, tv_nsec=%llu}) = %s\n", - id, (long long) ts->tv_sec, - zero_extend_signed_to_ull(ts->tv_nsec), sprintrc(rc)); - - sem_b->sem_op = -1; - ts->tv_sec = (time_t) 0xcafef00ddeadbeefLL; - ts->tv_nsec = (long) 0xbadc0dedfacefeedLL; - rc = semtimedop(id, sem_b, 1, ts); - printf("semtimedop(%d, [{0, -1, SEM_UNDO}], 1" - ", {tv_sec=%lld, tv_nsec=%llu}) = %s\n", - id, (long long) ts->tv_sec, - zero_extend_signed_to_ull(ts->tv_nsec), sprintrc(rc)); - - puts("+++ exited with 0 +++"); - return 0; -} +#endif diff --git a/tests-mx32/semop.gen.test b/tests-mx32/semop.gen.test index 21b67ead..4199975a 100755 --- a/tests-mx32/semop.gen.test +++ b/tests-mx32/semop.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (semop -a32 -e trace=semop,semtimedop); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (semop -a32 ); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a32 -e trace=semop,semtimedop +run_strace_match_diff -a32 diff --git a/tests-mx32/semtimedop.c b/tests-mx32/semtimedop.c new file mode 100644 index 00000000..e3cea328 --- /dev/null +++ b/tests-mx32/semtimedop.c @@ -0,0 +1,155 @@ +/* + * Copyright (c) 2016-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#if defined __NR_semtimedop || defined __NR_socketcall + +# include +# include +# include +# include +# include +# include + +# define XLAT_MACROS_ONLY +# include "xlat/semop_flags.h" +# undef XLAT_MACROS_ONLY + +union semun { + int val; + struct semid_ds *buf; + unsigned short *array; + struct seminfo *__buf; +}; + +static int id = -1; + +static void +cleanup(void) +{ + semctl(id, 0, IPC_RMID, 0); + id = -1; +} + +int +main(void) +{ + static const int bogus_semid = 0xfdb97531; + static void * const bogus_sops = (void *) -1L; + static const size_t bogus_nsops = (size_t) 0xdefaceddeadbeefULL; + + TAIL_ALLOC_OBJECT_CONST_PTR(struct timespec, ts); + int rc; + + id = semget(IPC_PRIVATE, 1, 0600); + if (id < 0) + perror_msg_and_skip("semget"); + atexit(cleanup); + + union semun sem_union = { .val = 0 }; + if (semctl(id, 0, SETVAL, sem_union) == -1) + perror_msg_and_skip("semctl"); + + TAIL_ALLOC_OBJECT_CONST_PTR(struct sembuf, sem_b); + TAIL_ALLOC_OBJECT_CONST_PTR(struct sembuf, sem_b2); + + rc = semtimedop(bogus_semid, NULL, bogus_nsops, NULL); + printf("semtimedop(%d, NULL, %u, NULL) = %s\n", + bogus_semid, (unsigned) bogus_nsops, sprintrc(rc)); + + rc = semtimedop(bogus_semid, bogus_sops, 1, NULL); + printf("semtimedop(%d, %p, %u, NULL) = %s\n", + bogus_semid, bogus_sops, 1, sprintrc(rc)); + + sem_b->sem_num = 0; + sem_b->sem_op = 1; + sem_b->sem_flg = SEM_UNDO; + + sem_b2->sem_num = 0xface; + sem_b2->sem_op = 0xf00d; + sem_b2->sem_flg = 0xbeef; + + rc = semtimedop(bogus_semid, sem_b2, 2, NULL); + printf("semtimedop(%d, [{%hu, %hd, %s%s%#hx}, ... /* %p */], %u" + ", NULL) = %s\n", + bogus_semid, sem_b2->sem_num, sem_b2->sem_op, + sem_b2->sem_flg & SEM_UNDO ? "SEM_UNDO|" : "", + sem_b2->sem_flg & IPC_NOWAIT ? "IPC_NOWAIT|" : "", + (short) (sem_b2->sem_flg & ~(SEM_UNDO | IPC_NOWAIT)), + sem_b2 + 1, 2, sprintrc(rc)); + + if (semtimedop(id, sem_b, 1, NULL)) + perror_msg_and_skip("semtimedop, 1"); + printf("semtimedop(%d, [{0, 1, SEM_UNDO}], 1, NULL) = 0\n", id); + + sem_b->sem_op = -1; + if (semtimedop(id, sem_b, 1, NULL)) + perror_msg_and_skip("semtimedop, -1"); + printf("semtimedop(%d, [{0, -1, SEM_UNDO}], 1, NULL) = 0\n", id); + + rc = semtimedop(bogus_semid, NULL, bogus_nsops, NULL); + printf("semtimedop(%d, NULL, %u, NULL) = %s\n", + bogus_semid, (unsigned) bogus_nsops, sprintrc(rc)); + + rc = semtimedop(id, sem_b + 1, 1, ts + 1); + printf("semtimedop(%d, %p, 1, %p) = %s\n", + id, sem_b + 1, ts + 1, sprintrc(rc)); + + ts->tv_sec = 1; + ts->tv_nsec = 123456789; + rc = semtimedop(bogus_semid, sem_b2, 2, ts); + printf("semtimedop(%d, [{%hu, %hd, %s%s%#hx}, ... /* %p */], %u" + ", {tv_sec=%lld, tv_nsec=%llu}) = %s\n", + bogus_semid, sem_b2->sem_num, sem_b2->sem_op, + sem_b2->sem_flg & SEM_UNDO ? "SEM_UNDO|" : "", + sem_b2->sem_flg & IPC_NOWAIT ? "IPC_NOWAIT|" : "", + (short) (sem_b2->sem_flg & ~(SEM_UNDO | IPC_NOWAIT)), + sem_b2 + 1, 2, + (long long) ts->tv_sec, zero_extend_signed_to_ull(ts->tv_nsec), + sprintrc(rc)); + + sem_b->sem_op = 1; + if (semtimedop(id, sem_b, 1, NULL)) + perror_msg_and_skip("semtimedop, 1"); + printf("semtimedop(%d, [{0, 1, SEM_UNDO}], 1, NULL) = 0\n", id); + + sem_b->sem_op = -1; + if (semtimedop(id, sem_b, 1, ts)) + perror_msg_and_skip("semtimedop, -1"); + printf("semtimedop(%d, [{0, -1, SEM_UNDO}], 1" + ", {tv_sec=%lld, tv_nsec=%llu}) = 0\n", id, + (long long) ts->tv_sec, zero_extend_signed_to_ull(ts->tv_nsec)); + + sem_b->sem_op = 1; + ts->tv_sec = 0xdeadbeefU; + ts->tv_nsec = 0xfacefeedU; + rc = semtimedop(id, sem_b, 1, ts); + printf("semtimedop(%d, [{0, 1, SEM_UNDO}], 1" + ", {tv_sec=%lld, tv_nsec=%llu}) = %s\n", + id, (long long) ts->tv_sec, + zero_extend_signed_to_ull(ts->tv_nsec), sprintrc(rc)); + + sem_b->sem_op = -1; + ts->tv_sec = (time_t) 0xcafef00ddeadbeefLL; + ts->tv_nsec = (long) 0xbadc0dedfacefeedLL; + rc = semtimedop(id, sem_b, 1, ts); + printf("semtimedop(%d, [{0, -1, SEM_UNDO}], 1" + ", {tv_sec=%lld, tv_nsec=%llu}) = %s\n", + id, (long long) ts->tv_sec, + zero_extend_signed_to_ull(ts->tv_nsec), sprintrc(rc)); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_semtimedop || __NR_socketcall") + +#endif diff --git a/tests-mx32/semtimedop.gen.test b/tests-mx32/semtimedop.gen.test new file mode 100755 index 00000000..1c767ff4 --- /dev/null +++ b/tests-mx32/semtimedop.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (semtimedop ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff diff --git a/tests-mx32/sendfile.c b/tests-mx32/sendfile.c index 6ef3232e..cb6dd388 100644 --- a/tests-mx32/sendfile.c +++ b/tests-mx32/sendfile.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sendfile @@ -50,14 +50,9 @@ main(void) const unsigned int blen = file_size / 3; const unsigned int alen = file_size - blen; - static const char fname[] = "sendfile-tmpfile"; - int reg_in = open(fname, O_RDWR | O_CREAT | O_TRUNC, 0600); - if (reg_in < 0) - perror_msg_and_fail("open: %s", fname); - if (unlink(fname)) - perror_msg_and_fail("unlink: %s", fname); + int reg_in = create_tmpfile(O_RDWR); if (ftruncate(reg_in, file_size)) - perror_msg_and_fail("ftruncate: %s", fname); + perror_msg_and_fail("ftruncate(%d, %u)", reg_in, file_size); TAIL_ALLOC_OBJECT_VAR_PTR(uint32_t, p_off); void *p = p_off + 1; diff --git a/tests-mx32/sendfile64.c b/tests-mx32/sendfile64.c index c318ace8..9bcf1fc7 100644 --- a/tests-mx32/sendfile64.c +++ b/tests-mx32/sendfile64.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sendfile64 @@ -50,14 +50,9 @@ main(void) const unsigned int blen = file_size / 3; const unsigned int alen = file_size - blen; - static const char fname[] = "sendfile64-tmpfile"; - int reg_in = open(fname, O_RDWR | O_CREAT | O_TRUNC, 0600); - if (reg_in < 0) - perror_msg_and_fail("open: %s", fname); - if (unlink(fname)) - perror_msg_and_fail("unlink: %s", fname); + int reg_in = create_tmpfile(O_RDWR); if (ftruncate(reg_in, file_size)) - perror_msg_and_fail("ftruncate: %s", fname); + perror_msg_and_fail("ftruncate(%d, %u)", reg_in, file_size); TAIL_ALLOC_OBJECT_CONST_PTR(uint64_t, p_off); void *p = p_off + 1; diff --git a/tests-mx32/set_mempolicy-Xabbrev.c b/tests-mx32/set_mempolicy-Xabbrev.c new file mode 100644 index 00000000..2dbc4871 --- /dev/null +++ b/tests-mx32/set_mempolicy-Xabbrev.c @@ -0,0 +1 @@ +#include "set_mempolicy.c" diff --git a/tests-mx32/set_mempolicy-Xabbrev.gen.test b/tests-mx32/set_mempolicy-Xabbrev.gen.test new file mode 100755 index 00000000..f27e985b --- /dev/null +++ b/tests-mx32/set_mempolicy-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (set_mempolicy-Xabbrev -a34 -s3 -Xabbrev -e trace=set_mempolicy); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a34 -s3 -Xabbrev -e trace=set_mempolicy diff --git a/tests-mx32/set_mempolicy-Xraw.c b/tests-mx32/set_mempolicy-Xraw.c new file mode 100644 index 00000000..47436b51 --- /dev/null +++ b/tests-mx32/set_mempolicy-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "set_mempolicy.c" diff --git a/tests-mx32/set_mempolicy-Xraw.gen.test b/tests-mx32/set_mempolicy-Xraw.gen.test new file mode 100755 index 00000000..3b5a6a4d --- /dev/null +++ b/tests-mx32/set_mempolicy-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (set_mempolicy-Xraw -a24 -s3 -Xraw -e trace=set_mempolicy); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a24 -s3 -Xraw -e trace=set_mempolicy diff --git a/tests-mx32/set_mempolicy-Xverbose.c b/tests-mx32/set_mempolicy-Xverbose.c new file mode 100644 index 00000000..0396cb42 --- /dev/null +++ b/tests-mx32/set_mempolicy-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "set_mempolicy.c" diff --git a/tests-mx32/set_mempolicy-Xverbose.gen.test b/tests-mx32/set_mempolicy-Xverbose.gen.test new file mode 100755 index 00000000..741229ed --- /dev/null +++ b/tests-mx32/set_mempolicy-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (set_mempolicy-Xverbose -s3 -Xverbose -e trace=set_mempolicy); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -s3 -Xverbose -e trace=set_mempolicy diff --git a/tests-mx32/set_mempolicy.c b/tests-mx32/set_mempolicy.c index 46703713..ee65c4c9 100644 --- a/tests-mx32/set_mempolicy.c +++ b/tests-mx32/set_mempolicy.c @@ -2,29 +2,92 @@ * Check decoding of set_mempolicy syscall. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_set_mempolicy -# include # include # include # include -# include "xlat.h" -# include "xlat/policies.h" - # define MAX_STRLEN 3 # define NLONGS(n) ((n + 8 * sizeof(long) - 2) \ / (8 * sizeof(long))) +static const char *errstr; + +static long +k_set_mempolicy(const unsigned int mode, + const void *const nmask, + const unsigned long maxnode) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | mode; + const kernel_ulong_t arg2 = (unsigned long) nmask; + const kernel_ulong_t arg3 = maxnode; + const long rc = syscall(__NR_set_mempolicy, + arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +# if XLAT_RAW +# define out_str raw +# elif XLAT_VERBOSE +# define out_str verbose +# else +# define out_str abbrev +# endif + +static struct { + unsigned int val; + const char *raw; + const char *verbose; + const char *abbrev; +} mpol_modes[] = { + { ARG_STR(0), + "0 /* MPOL_DEFAULT */", + "MPOL_DEFAULT" }, + { ARG_STR(0x1), + "0x1 /* MPOL_PREFERRED */", + "MPOL_PREFERRED" }, + { ARG_STR(0x2), + "0x2 /* MPOL_BIND */", + "MPOL_BIND" }, + { ARG_STR(0x3), + "0x3 /* MPOL_INTERLEAVE */", + "MPOL_INTERLEAVE" }, + { ARG_STR(0x4), + "0x4 /* MPOL_LOCAL */", + "MPOL_LOCAL" }, + { ARG_STR(0x8000), + "0x8000 /* MPOL_DEFAULT|MPOL_F_STATIC_NODES */", + "MPOL_DEFAULT|MPOL_F_STATIC_NODES" }, + { ARG_STR(0x4001), + "0x4001 /* MPOL_PREFERRED|MPOL_F_RELATIVE_NODES */", + "MPOL_PREFERRED|MPOL_F_RELATIVE_NODES" }, + { ARG_STR(0xc002), + "0xc002 /* MPOL_BIND|MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES */", + "MPOL_BIND|MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES" }, + { ARG_STR(0x5), + "0x5 /* MPOL_??? */", + "0x5 /* MPOL_??? */" }, + { ARG_STR(0xffff3fff), + "0xffff3fff /* MPOL_??? */", + "0xffff3fff /* MPOL_??? */" }, + { ARG_STR(0xffffffff), + "0xffffffff /* MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES|0xffff3fff */", + "MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES|0xffff3fff" } +}; + static void print_nodes(const unsigned long maxnode, unsigned int offset) { @@ -38,10 +101,9 @@ print_nodes(const unsigned long maxnode, unsigned int offset) tail_alloc(size ? size : (offset ? 1 : 0)); memset(nodemask, 0, size); - long rc = syscall(__NR_set_mempolicy, 0, nodemask, maxnode); - const char *errstr = sprintrc(rc); + k_set_mempolicy(mpol_modes[0].val, nodemask, maxnode); - fputs("set_mempolicy(MPOL_DEFAULT, ", stdout); + printf("set_mempolicy(%s, ", mpol_modes[0].out_str); if (nlongs) { putc('[', stdout); @@ -103,15 +165,24 @@ test_offset(const unsigned int offset) int main(void) { - if (syscall(__NR_set_mempolicy, 0, 0, 0)) + if (k_set_mempolicy(mpol_modes[0].val, 0, 0)) perror_msg_and_skip("set_mempolicy"); - puts("set_mempolicy(MPOL_DEFAULT, NULL, 0) = 0"); + printf("set_mempolicy(%s, NULL, 0) = 0\n", mpol_modes[0].out_str); const unsigned long *nodemask = (void *) 0xfacefeedfffffffeULL; - const unsigned long maxnode = (unsigned long) 0xcafef00dbadc0dedULL; - long rc = syscall(__NR_set_mempolicy, 1, nodemask, maxnode); - printf("set_mempolicy(MPOL_PREFERRED, %p, %lu) = %s\n", - nodemask, maxnode, sprintrc(rc)); + const unsigned long maxnode = (unsigned long) 0xcafef00ddeadbeefULL; + + for (unsigned int i = 0; i < ARRAY_SIZE(mpol_modes); ++i) { + if (i) { + k_set_mempolicy(mpol_modes[i].val, 0, 0); + printf("set_mempolicy(%s, NULL, 0) = %s\n", + mpol_modes[i].out_str, errstr); + } + + k_set_mempolicy(mpol_modes[i].val, nodemask, maxnode); + printf("set_mempolicy(%s, %p, %lu) = %s\n", + mpol_modes[i].out_str, nodemask, maxnode, errstr); + } test_offset(0); test_offset(1); diff --git a/tests-mx32/set_mempolicy.gen.test b/tests-mx32/set_mempolicy.gen.test index f8c81c75..a527e6af 100755 --- a/tests-mx32/set_mempolicy.gen.test +++ b/tests-mx32/set_mempolicy.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (set_mempolicy -s3 -a35); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (set_mempolicy -a34 -s3); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -s3 -a35 +run_strace_match_diff -a34 -s3 diff --git a/tests-mx32/set_ptracer_any.c b/tests-mx32/set_ptracer_any.c index 747359c2..9fa56c14 100644 --- a/tests-mx32/set_ptracer_any.c +++ b/tests-mx32/set_ptracer_any.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2013-2015 Dmitry V. Levin - * Copyright (c) 2013-2018 The strace developers. + * Copyright (c) 2013-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,25 +9,21 @@ #include "tests.h" #include #include -#ifdef HAVE_PRCTL -# include -#endif +#include int main(int argc, char **argv) { if (argc < 2) return 99; -#ifdef HAVE_PRCTL /* Turn off restrictions on tracing if applicable. If the command * aren't available on this system, that's OK too. */ -# ifndef PR_SET_PTRACER -# define PR_SET_PTRACER 0x59616d61 -# endif -# ifndef PR_SET_PTRACER_ANY -# define PR_SET_PTRACER_ANY -1UL -# endif - (void) prctl(PR_SET_PTRACER, PR_SET_PTRACER_ANY, 0, 0, 0); +#ifndef PR_SET_PTRACER +# define PR_SET_PTRACER 0x59616d61 #endif +#ifndef PR_SET_PTRACER_ANY +# define PR_SET_PTRACER_ANY -1UL +#endif + (void) prctl(PR_SET_PTRACER, PR_SET_PTRACER_ANY, 0, 0, 0); if (write(1, "\n", 1) != 1) { perror("write"); return 99; diff --git a/tests-mx32/setdomainname.c b/tests-mx32/setdomainname.c index 177c0fd7..c2ff8eaa 100644 --- a/tests-mx32/setdomainname.c +++ b/tests-mx32/setdomainname.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setdomainname diff --git a/tests-mx32/setfsgid.c b/tests-mx32/setfsgid.c index 496b2679..74d642c4 100644 --- a/tests-mx32/setfsgid.c +++ b/tests-mx32/setfsgid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setfsgid diff --git a/tests-mx32/setfsgid32.c b/tests-mx32/setfsgid32.c index a931602c..29b41a9b 100644 --- a/tests-mx32/setfsgid32.c +++ b/tests-mx32/setfsgid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setfsgid32 diff --git a/tests-mx32/setfsuid.c b/tests-mx32/setfsuid.c index 269d38f2..78d4eb52 100644 --- a/tests-mx32/setfsuid.c +++ b/tests-mx32/setfsuid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setfsuid diff --git a/tests-mx32/setfsuid32.c b/tests-mx32/setfsuid32.c index cfcc0f83..2d4fa835 100644 --- a/tests-mx32/setfsuid32.c +++ b/tests-mx32/setfsuid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setfsuid32 diff --git a/tests-mx32/setgid.c b/tests-mx32/setgid.c index 3374924a..aba372b8 100644 --- a/tests-mx32/setgid.c +++ b/tests-mx32/setgid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setgid diff --git a/tests-mx32/setgid32.c b/tests-mx32/setgid32.c index 427c77b0..ac695e18 100644 --- a/tests-mx32/setgid32.c +++ b/tests-mx32/setgid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setgid32 diff --git a/tests-mx32/setgroups.c b/tests-mx32/setgroups.c index a47f1024..a18fdc17 100644 --- a/tests-mx32/setgroups.c +++ b/tests-mx32/setgroups.c @@ -2,7 +2,7 @@ * Check decoding of setgroups/setgroups32 syscalls. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -17,7 +17,7 @@ #else # include "tests.h" -# include +# include "scno.h" # ifdef __NR_setgroups diff --git a/tests-mx32/setgroups32.c b/tests-mx32/setgroups32.c index 935b73a9..eb111f04 100644 --- a/tests-mx32/setgroups32.c +++ b/tests-mx32/setgroups32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setgroups32 diff --git a/tests-mx32/sethostname.c b/tests-mx32/sethostname.c index c9b89c12..844fb6b8 100644 --- a/tests-mx32/sethostname.c +++ b/tests-mx32/sethostname.c @@ -3,14 +3,14 @@ * * Copyright (c) 2016 Fei Jie * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sethostname diff --git a/tests-mx32/setns.c b/tests-mx32/setns.c index 8ef7a19b..21a8dc6a 100644 --- a/tests-mx32/setns.c +++ b/tests-mx32/setns.c @@ -2,7 +2,7 @@ * Check decoding of setns syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setns diff --git a/tests-mx32/setpgrp-exec.c b/tests-mx32/setpgrp-exec.c new file mode 100644 index 00000000..8a84d436 --- /dev/null +++ b/tests-mx32/setpgrp-exec.c @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include + +int main(int argc, char **argv) +{ + if (argc < 2) + error_msg_and_fail("argc < 2"); + + if (setpgid(0, 0)) + perror_msg_and_fail("setpgid"); + + (void) execvp(argv[1], argv + 1); + + perror_msg_and_fail("execvp: %s", argv[1]); +} diff --git a/tests-mx32/setregid.c b/tests-mx32/setregid.c index 68639e6a..232a140a 100644 --- a/tests-mx32/setregid.c +++ b/tests-mx32/setregid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setregid diff --git a/tests-mx32/setregid32.c b/tests-mx32/setregid32.c index 6291bc58..fca985ed 100644 --- a/tests-mx32/setregid32.c +++ b/tests-mx32/setregid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setregid32 diff --git a/tests-mx32/setresgid.c b/tests-mx32/setresgid.c index f3a160e3..6f64d0b0 100644 --- a/tests-mx32/setresgid.c +++ b/tests-mx32/setresgid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setresgid diff --git a/tests-mx32/setresgid32.c b/tests-mx32/setresgid32.c index e05ae8f8..45d252e6 100644 --- a/tests-mx32/setresgid32.c +++ b/tests-mx32/setresgid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setresgid32 diff --git a/tests-mx32/setresuid.c b/tests-mx32/setresuid.c index 855a9bf7..d0821c39 100644 --- a/tests-mx32/setresuid.c +++ b/tests-mx32/setresuid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setresuid diff --git a/tests-mx32/setresuid32.c b/tests-mx32/setresuid32.c index ccfc2a51..a8201810 100644 --- a/tests-mx32/setresuid32.c +++ b/tests-mx32/setresuid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setresuid32 diff --git a/tests-mx32/setreuid.c b/tests-mx32/setreuid.c index 1e34dd18..c1279c9c 100644 --- a/tests-mx32/setreuid.c +++ b/tests-mx32/setreuid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setreuid diff --git a/tests-mx32/setreuid32.c b/tests-mx32/setreuid32.c index c0345db7..903a2203 100644 --- a/tests-mx32/setreuid32.c +++ b/tests-mx32/setreuid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setreuid32 diff --git a/tests-mx32/setrlimit.c b/tests-mx32/setrlimit.c index 099e2402..886cf65a 100644 --- a/tests-mx32/setrlimit.c +++ b/tests-mx32/setrlimit.c @@ -9,7 +9,7 @@ */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setrlimit @@ -19,9 +19,13 @@ int main(void) { kernel_ulong_t *const rlimit = tail_alloc(sizeof(*rlimit) * 2); - const struct xlat *xlat; + const struct xlat_data *xlat; + size_t i = 0; + + for (xlat = resources->data, i = 0; i < resources->size; ++xlat, ++i) { + if (!xlat->str) + continue; - for (xlat = resources; xlat->str; ++xlat) { unsigned long res = 0xfacefeed00000000ULL | xlat->val; long rc = syscall(__NR_setrlimit, res, 0); # if XLAT_RAW diff --git a/tests-mx32/setuid.c b/tests-mx32/setuid.c index 4a8243e8..dcbe8ae0 100644 --- a/tests-mx32/setuid.c +++ b/tests-mx32/setuid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setuid diff --git a/tests-mx32/setuid32.c b/tests-mx32/setuid32.c index ba1b2e2d..8de08a72 100644 --- a/tests-mx32/setuid32.c +++ b/tests-mx32/setuid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setuid32 diff --git a/tests-mx32/sigaction.c b/tests-mx32/sigaction.c index fe6280ce..182fdae8 100644 --- a/tests-mx32/sigaction.c +++ b/tests-mx32/sigaction.c @@ -2,13 +2,14 @@ * Check decoding of sigaction syscall. * * Copyright (c) 2014-2018 Dmitry V. Levin + * Copyright (c) 2014-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sigaction @@ -156,7 +157,7 @@ main(void) sigdelset(mask.libc, SIGHUP); memcpy(new_act->mask, mask.old, sizeof(mask.old)); -# ifdef SA_RESTORER +# if defined SA_RESTORER && !(defined ALPHA || defined MIPS) new_act->flags = SA_RESTORER; new_act->restorer = (unsigned long) 0xdeadfacecafef00dULL; # define SA_RESTORER_FMT ", sa_flags=SA_RESTORER, sa_restorer=%#lx" diff --git a/tests-mx32/sigblock.test b/tests-mx32/sigblock.test index ab1eaeb7..cfcc75cb 100755 --- a/tests-mx32/sigblock.test +++ b/tests-mx32/sigblock.test @@ -4,7 +4,7 @@ # Starting with commit v4.17-5-gf83b49b strace is expected # to forward the signal mask to tracees unchanged. # -# Copyright (c) 2017-2018 The strace developers. +# Copyright (c) 2017-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -20,7 +20,7 @@ for sig in $(../list_sigaction_signum); do check_cmd="../check_sigblock $block $sig" run_prog $set_cmd $check_cmd STRACE="$set_cmd $saved_STRACE" - for i in '' -I1 -I2 -I3 -I4; do + for i in '' -I1 -Iwaiting --interruptible=3 --interruptible=never_tstp; do run_strace $i -enone $check_cmd done done diff --git a/tests-mx32/sigign.test b/tests-mx32/sigign.test index 07a8180c..e5555d61 100755 --- a/tests-mx32/sigign.test +++ b/tests-mx32/sigign.test @@ -4,7 +4,7 @@ # Starting with commit v4.17-8-ge97a66f strace is expected # to forward the signal disposition to tracees unchanged. # -# Copyright (c) 2017-2018 The strace developers. +# Copyright (c) 2017-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -20,7 +20,7 @@ for sig in $(../list_sigaction_signum); do check_cmd="../check_sigign $ign $sig" run_prog $set_cmd $check_cmd STRACE="$set_cmd $saved_STRACE" - for i in '' -I1 -I2 -I3 -I4; do + for i in '' --interruptible=always --interruptible=2 -Inever -I4; do run_strace $i -enone $check_cmd done done diff --git a/tests-mx32/siginfo.c b/tests-mx32/siginfo.c index 7789ff27..c7e57ec6 100644 --- a/tests-mx32/siginfo.c +++ b/tests-mx32/siginfo.c @@ -2,6 +2,7 @@ * Check SIGCHLD siginfo_t decoding. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -63,7 +64,7 @@ main(void) sigsuspend(&unblock_mask); tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED" - ", si_pid=%d, si_uid=%u, si_status=%d" + ", si_pid=%d, si_uid=%d, si_status=%d" ", si_utime=%llu, si_stime=%llu} ---\n", sinfo.si_pid, sinfo.si_uid, sinfo.si_status, zero_extend_signed_to_ull(sinfo.si_utime), @@ -94,7 +95,7 @@ main(void) sigsuspend(&unblock_mask); tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_KILLED" - ", si_pid=%d, si_uid=%u, si_status=SIGUSR1" + ", si_pid=%d, si_uid=%d, si_status=SIGUSR1" ", si_utime=%llu, si_stime=%llu} ---\n", sinfo.si_pid, sinfo.si_uid, zero_extend_signed_to_ull(sinfo.si_utime), @@ -121,7 +122,7 @@ main(void) sigsuspend(&unblock_mask); tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_STOPPED" - ", si_pid=%d, si_uid=%u, si_status=SIGSTOP" + ", si_pid=%d, si_uid=%d, si_status=SIGSTOP" ", si_utime=%llu, si_stime=%llu} ---\n", sinfo.si_pid, sinfo.si_uid, zero_extend_signed_to_ull(sinfo.si_utime), @@ -131,7 +132,7 @@ main(void) sigsuspend(&unblock_mask); tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_CONTINUED" - ", si_pid=%d, si_uid=%u, si_status=SIGCONT" + ", si_pid=%d, si_uid=%d, si_status=SIGCONT" ", si_utime=%llu, si_stime=%llu} ---\n", sinfo.si_pid, sinfo.si_uid, zero_extend_signed_to_ull(sinfo.si_utime), @@ -142,7 +143,7 @@ main(void) sigsuspend(&unblock_mask); tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED" - ", si_pid=%d, si_uid=%u, si_status=0" + ", si_pid=%d, si_uid=%d, si_status=0" ", si_utime=%llu, si_stime=%llu} ---\n", sinfo.si_pid, sinfo.si_uid, zero_extend_signed_to_ull(sinfo.si_utime), diff --git a/tests-mx32/signal.c b/tests-mx32/signal.c index 40cd77f5..db5a19a9 100644 --- a/tests-mx32/signal.c +++ b/tests-mx32/signal.c @@ -2,13 +2,14 @@ * Check decoding of signal syscall. * * Copyright (c) 2017-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_signal diff --git a/tests-mx32/signal_receive--pidns-translation.c b/tests-mx32/signal_receive--pidns-translation.c new file mode 100644 index 00000000..b4e3b2f8 --- /dev/null +++ b/tests-mx32/signal_receive--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "signal_receive.c" diff --git a/tests-mx32/signal_receive--pidns-translation.gen.test b/tests-mx32/signal_receive--pidns-translation.gen.test new file mode 100755 index 00000000..63069001 --- /dev/null +++ b/tests-mx32/signal_receive--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (signal_receive--pidns-translation test_pidns -a16 -e trace=kill); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a16 -e trace=kill diff --git a/tests-mx32/signal_receive.c b/tests-mx32/signal_receive.c index ad3b4ebd..46cac571 100644 --- a/tests-mx32/signal_receive.c +++ b/tests-mx32/signal_receive.c @@ -1,13 +1,14 @@ /* * Check decoding of signal delivery. * - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include "pidns.h" #include #include #include @@ -26,10 +27,13 @@ handler(int sig, siginfo_t *info, void *ucontext) int main(void) { + PIDNS_TEST_INIT; + static const char prefix[] = "KERNEL BUG"; int printed = 0; const int pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); const int uid = geteuid(); for (int sig = 1; sig <= 31; ++sig) { @@ -73,10 +77,13 @@ main(void) const int e_pid = s_pid; const int e_uid = s_uid; #endif - printf("kill(%d, %s) = 0\n", pid, signal2name(sig)); - printf("--- %s {si_signo=%s, si_code=SI_USER, si_pid=%d" + pidns_print_leader(); + printf("kill(%d%s, %s) = 0\n", pid, pid_str, signal2name(sig)); + pidns_print_leader(); + printf("--- %s {si_signo=%s, si_code=SI_USER, si_pid=%d%s" ", si_uid=%d} ---\n", - signal2name(sig), signal2name(e_sig), e_pid, e_uid); + signal2name(sig), signal2name(e_sig), + e_pid, pid_str, e_uid); if (s_code || sig != s_sig || pid != s_pid || uid != s_uid) { /* @@ -91,11 +98,11 @@ main(void) } fprintf(stderr, "%s: expected: si_signo=%d, si_code=%d" - ", si_pid=%d, si_uid=%d\n" + ", si_pid=%d%s, si_uid=%d\n" "%s: received: si_signo=%d, si_code=%d" - ", si_pid=%d, si_uid=%d\n", - prefix, sig, SI_USER, pid, uid, - prefix, sig, s_code, s_pid, s_uid); + ", si_pid=%d%s, si_uid=%d\n", + prefix, sig, SI_USER, pid, pid_str, uid, + prefix, sig, s_code, s_pid, pid_str, s_uid); } } @@ -104,6 +111,7 @@ main(void) "*** PLEASE FIX THE KERNEL ***\n", prefix); } + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-mx32/signalfd4.c b/tests-mx32/signalfd4.c index 71df2dcc..0ab6d21d 100644 --- a/tests-mx32/signalfd4.c +++ b/tests-mx32/signalfd4.c @@ -2,7 +2,7 @@ * Check decoding of signalfd4 syscall. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" #include -#include +#include "scno.h" #if defined HAVE_SYS_SIGNALFD_H \ && defined HAVE_SIGNALFD \ diff --git a/tests-mx32/sigpending.c b/tests-mx32/sigpending.c index f065c873..f39b3a48 100644 --- a/tests-mx32/sigpending.c +++ b/tests-mx32/sigpending.c @@ -2,13 +2,14 @@ * Check decoding of sigpending syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sigpending diff --git a/tests-mx32/sigprocmask.c b/tests-mx32/sigprocmask.c index 566b8346..4ab36d00 100644 --- a/tests-mx32/sigprocmask.c +++ b/tests-mx32/sigprocmask.c @@ -2,13 +2,14 @@ * Check decoding of sigprocmask syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sigprocmask diff --git a/tests-mx32/sigreturn.c b/tests-mx32/sigreturn.c index 5dece0a4..4b7516a6 100644 --- a/tests-mx32/sigreturn.c +++ b/tests-mx32/sigreturn.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __powerpc64__ \ || (defined __sparc__ && defined __arch64__) diff --git a/tests-mx32/sigsuspend.c b/tests-mx32/sigsuspend.c index 11ffae83..165c68fa 100644 --- a/tests-mx32/sigsuspend.c +++ b/tests-mx32/sigsuspend.c @@ -2,13 +2,14 @@ * Check decoding of sigsuspend syscall. * * Copyright (c) 2017-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sigsuspend diff --git a/tests-mx32/sleep.c b/tests-mx32/sleep.c index 0cdfcebc..f8fca446 100644 --- a/tests-mx32/sleep.c +++ b/tests-mx32/sleep.c @@ -2,14 +2,21 @@ * A simple nanosleep based sleep(1) replacement. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include +#include "scno.h" + +#ifdef __NR_nanosleep + +# include +# include + +# include "kernel_old_timespec.h" int main(int ac, char **av) @@ -20,10 +27,16 @@ main(int ac, char **av) if (ac > 2) error_msg_and_fail("extra operand"); - struct timespec ts = { atoi(av[1]), 0 }; + kernel_old_timespec_t ts = { atoi(av[1]), 0 }; - if (nanosleep(&ts, NULL)) + if (syscall(__NR_nanosleep, (unsigned long) &ts, 0)) perror_msg_and_fail("nanosleep"); return 0; } + +#else + +SKIP_MAIN_UNDEFINED("__NR_nanosleep") + +#endif diff --git a/tests-mx32/so_error.c b/tests-mx32/so_error.c index 2592a3c1..03211ab9 100644 --- a/tests-mx32/so_error.c +++ b/tests-mx32/so_error.c @@ -2,6 +2,7 @@ * Check decoding of SO_ERROR socket option. * * Copyright (c) 2018 Masatake YAMATO + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -37,7 +38,7 @@ reserve_ephemeral_port(void) for (in_port_t port = 49152; port < 61000; port++) { /* Just bind here. No listen. */ addr.sin_port = htons(port); - if (bind(sd, &addr, sizeof(addr)) == 0) + if (bind(sd, (void *) &addr, sizeof(addr)) == 0) return port; } error_msg_and_skip("no ephemeral port available for test purposes"); @@ -69,7 +70,7 @@ main(void) .sin_addr.s_addr = htonl(INADDR_LOOPBACK), .sin_port = htons(port), }; - if (connect(fd, &addr, sizeof(addr)) == 0) + if (connect(fd, (void *) &addr, sizeof(addr)) == 0) error_msg_and_skip("connect unexpectedly succeeded"); if (errno != EINPROGRESS) perror_msg_and_skip("connect failed for unexpected reason"); diff --git a/tests-mx32/so_peercred--pidns-translation.c b/tests-mx32/so_peercred--pidns-translation.c new file mode 100644 index 00000000..402bbcfe --- /dev/null +++ b/tests-mx32/so_peercred--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "so_peercred.c" diff --git a/tests-mx32/so_peercred--pidns-translation.gen.test b/tests-mx32/so_peercred--pidns-translation.gen.test new file mode 100755 index 00000000..956f8f3b --- /dev/null +++ b/tests-mx32/so_peercred--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (so_peercred--pidns-translation test_pidns -e trace=getsockopt); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -e trace=getsockopt diff --git a/tests-mx32/so_peercred.c b/tests-mx32/so_peercred.c index 151bb175..e34d6ee1 100644 --- a/tests-mx32/so_peercred.c +++ b/tests-mx32/so_peercred.c @@ -2,13 +2,14 @@ * Check decoding of SO_PEERCRED socket option. * * Copyright (c) 2017 Dmitry V. Levin - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include "pidns.h" #include #include @@ -53,6 +54,8 @@ so_str(void) int main(void) { + PIDNS_TEST_INIT; + TAIL_ALLOC_OBJECT_CONST_PTR(struct ucred, peercred); TAIL_ALLOC_OBJECT_CONST_PTR(socklen_t, len); @@ -75,6 +78,8 @@ main(void) struct ucred *const gid_truncated = tail_alloc(sizeof_gid_truncated); + const char *pid_str = pidns_pid2str(PT_TGID); + int sv[2]; if (socketpair(AF_UNIX, SOCK_STREAM, 0, sv)) perror_msg_and_skip("socketpair AF_UNIX SOCK_STREAM"); @@ -82,8 +87,10 @@ main(void) /* classic getsockopt */ *len = sizeof(*peercred); get_peercred(sv[0], peercred, len); + pidns_print_leader(); printf("getsockopt(%d, %s", sv[0], so_str()); PRINT_FIELD_D(", {", *peercred, pid); + printf("%s", pid_str); PRINT_FIELD_UID(", ", *peercred, uid); PRINT_FIELD_UID(", ", *peercred, gid); printf("}, [%d]) = %s\n", *len, errstr); @@ -91,14 +98,17 @@ main(void) /* getsockopt with zero optlen */ *len = 0; get_peercred(sv[0], peercred, len); + pidns_print_leader(); printf("getsockopt(%d, %s, %p, [0]) = %s\n", sv[0], so_str(), peercred, errstr); /* getsockopt with optlen larger than necessary - shortened */ *len = sizeof(*peercred) + 1; get_peercred(sv[0], peercred, len); + pidns_print_leader(); printf("getsockopt(%d, %s", sv[0], so_str()); PRINT_FIELD_D(", {", *peercred, pid); + printf("%s", pid_str); PRINT_FIELD_UID(", ", *peercred, uid); PRINT_FIELD_UID(", ", *peercred, gid); printf("}, [%u->%d]) = %s\n", @@ -110,6 +120,7 @@ main(void) */ *len = sizeof_pid_truncated; get_peercred(sv[0], pid_truncated, len); + pidns_print_leader(); printf("getsockopt(%d, %s, {pid=", sv[0], so_str()); print_quoted_hex(pid_truncated, *len); printf("}, [%d]) = %s\n", *len, errstr); @@ -120,8 +131,10 @@ main(void) */ *len = sizeof_pid; get_peercred(sv[0], pid, len); + pidns_print_leader(); printf("getsockopt(%d, %s", sv[0], so_str()); PRINT_FIELD_D(", {", *pid, pid); + printf("%s", pid_str); printf("}, [%d]) = %s\n", *len, errstr); /* @@ -136,8 +149,10 @@ main(void) * to struct ucred.pid field. */ memcpy(uid, uid_truncated, sizeof_uid_truncated); + pidns_print_leader(); printf("getsockopt(%d, %s", sv[0], so_str()); PRINT_FIELD_D(", {", *uid, pid); + printf("%s", pid_str); printf(", uid="); print_quoted_hex(&uid->uid, sizeof_uid_truncated - offsetof(struct ucred, uid)); @@ -149,8 +164,10 @@ main(void) */ *len = sizeof_uid; get_peercred(sv[0], uid, len); + pidns_print_leader(); printf("getsockopt(%d, %s", sv[0], so_str()); PRINT_FIELD_D(", {", *uid, pid); + printf("%s", pid_str); PRINT_FIELD_UID(", ", *uid, uid); printf("}, [%d]) = %s\n", *len, errstr); @@ -166,8 +183,10 @@ main(void) * to struct ucred.pid and struct ucred.uid fields. */ memcpy(peercred, gid_truncated, sizeof_gid_truncated); + pidns_print_leader(); printf("getsockopt(%d, %s", sv[0], so_str()); PRINT_FIELD_D(", {", *peercred, pid); + printf("%s", pid_str); PRINT_FIELD_UID(", ", *peercred, uid); printf(", gid="); print_quoted_hex(&peercred->gid, sizeof_gid_truncated - @@ -177,14 +196,17 @@ main(void) /* getsockopt optval EFAULT */ *len = sizeof(*peercred); get_peercred(sv[0], &peercred->uid, len); + pidns_print_leader(); printf("getsockopt(%d, %s, %p, [%d]) = %s\n", sv[0], so_str(), &peercred->uid, *len, errstr); /* getsockopt optlen EFAULT */ get_peercred(sv[0], peercred, len + 1); + pidns_print_leader(); printf("getsockopt(%d, %s, %p, %p) = %s\n", sv[0], so_str(), peercred, len + 1, errstr); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-mx32/sock_filter-v.c b/tests-mx32/sock_filter-v.c index ac483646..5b6c5d84 100644 --- a/tests-mx32/sock_filter-v.c +++ b/tests-mx32/sock_filter-v.c @@ -2,7 +2,7 @@ * Check decoding of socket filters. * * Copyright (c) 2017 Dmitry V. Levin - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -23,17 +23,6 @@ #define HEX_FMT "%#x" -#if XLAT_RAW -# define XLAT_FMT HEX_FMT -# define XLAT_ARGS(a_) (a_) -#elif XLAT_VERBOSE -# define XLAT_FMT HEX_FMT " /* %s */" -# define XLAT_ARGS(a_) (a_), #a_ -#else -# define XLAT_FMT "%s" -# define XLAT_ARGS(a_) #a_ -#endif - #define PRINT_STMT(pfx, code_fmt, k_fmt, ...) \ printf("%sBPF_STMT(" code_fmt ", " k_fmt ")", pfx, __VA_ARGS__) diff --git a/tests-mx32/socketcall.c b/tests-mx32/socketcall.c index aa68a7eb..664a7693 100644 --- a/tests-mx32/socketcall.c +++ b/tests-mx32/socketcall.c @@ -2,15 +2,16 @@ * Check decoding of socketcall syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" -#ifdef __NR_socketcall +#if defined __NR_socketcall && !defined __ARM_EABI__ # include # include @@ -22,9 +23,9 @@ static const char * xlookup_uint(const struct xlat *xlat, const unsigned int val) { - for (; xlat->str != NULL; xlat++) - if (xlat->val == val) - return xlat->str; + for (size_t i = 0; i < xlat->size; i++) + if (xlat->data[i].val == val) + return xlat->data[i].str; return NULL; } @@ -52,8 +53,8 @@ test_socketcall(const int i, const void *const addr) int main(void) { - assert((unsigned) sc_min == socketcalls[0].val); - assert((unsigned) sc_max == socketcalls[ARRAY_SIZE(socketcalls) - 2].val); + assert(0 == socketcalls->data[0].val); + assert((unsigned) sc_max == socketcalls->data[socketcalls->size - 1].val); const unsigned long *const args = tail_alloc(sizeof(*args) * 6); efault = tail_alloc(1) + 1; @@ -70,6 +71,6 @@ main(void) #else -SKIP_MAIN_UNDEFINED("__NR_socketcall") +SKIP_MAIN_UNDEFINED("__NR_socketcall && !__ARM_EABI__") #endif diff --git a/tests-mx32/sockopt-timestamp.c b/tests-mx32/sockopt-timestamp.c index c2659925..9dd1f961 100644 --- a/tests-mx32/sockopt-timestamp.c +++ b/tests-mx32/sockopt-timestamp.c @@ -2,6 +2,7 @@ * Check decoding of timestamp control messages. * * Copyright (c) 2019 Dmitry V. Levin + * Copyright (c) 2019-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,6 +10,7 @@ #include "tests.h" #include +#include #include #include @@ -17,6 +19,9 @@ # include #endif +#include "kernel_timeval.h" +#include "kernel_old_timespec.h" + #define XLAT_MACROS_ONLY #include "xlat/sock_options.h" #undef XLAT_MACROS_ONLY @@ -26,16 +31,18 @@ print_timestamp_old(const struct cmsghdr *c) { const void *cmsg_header = c; const void *cmsg_data = CMSG_DATA(c); - const struct timeval *tv = cmsg_data; - const unsigned int expected_len = sizeof(*tv); + kernel_old_timeval_t tv; + const unsigned int expected_len = sizeof(tv); const unsigned int data_len = c->cmsg_len - (cmsg_data - cmsg_header); if (expected_len != data_len) perror_msg_and_fail("sizeof(struct timeval) = %u" ", data_len = %u\n", expected_len, data_len); + + memcpy(&tv, cmsg_data, sizeof(tv)); printf("{tv_sec=%lld, tv_usec=%lld}", - (long long) tv->tv_sec, (long long) tv->tv_usec); + (long long) tv.tv_sec, (long long) tv.tv_usec); } static void @@ -43,16 +50,18 @@ print_timestampns_old(const struct cmsghdr *c) { const void *cmsg_header = c; const void *cmsg_data = CMSG_DATA(c); - const struct timespec *ts = cmsg_data; - const unsigned int expected_len = sizeof(*ts); + kernel_old_timespec_t ts; + const unsigned int expected_len = sizeof(ts); const unsigned int data_len = c->cmsg_len - (cmsg_data - cmsg_header); if (expected_len != data_len) perror_msg_and_fail("sizeof(struct timespec) = %u" ", data_len = %u\n", expected_len, data_len); + + memcpy(&ts, cmsg_data, sizeof(ts)); printf("{tv_sec=%lld, tv_nsec=%lld}", - (long long) ts->tv_sec, (long long) ts->tv_nsec); + (long long) ts.tv_sec, (long long) ts.tv_nsec); } #ifdef HAVE_STRUCT___KERNEL_SOCK_TIMEVAL @@ -61,16 +70,18 @@ print_timestamp_new(const struct cmsghdr *c) { const void *cmsg_header = c; const void *cmsg_data = CMSG_DATA(c); - const struct __kernel_sock_timeval *tv = cmsg_data; - const unsigned int expected_len = sizeof(*tv); + struct __kernel_sock_timeval tv; + const unsigned int expected_len = sizeof(tv); const unsigned int data_len = c->cmsg_len - (cmsg_data - cmsg_header); if (expected_len != data_len) perror_msg_and_fail("sizeof(struct __kernel_sock_timeval) = %u" ", data_len = %u\n", expected_len, data_len); + + memcpy(&tv, cmsg_data, sizeof(tv)); printf("{tv_sec=%lld, tv_usec=%lld}", - (long long) tv->tv_sec, (long long) tv->tv_usec); + (long long) tv.tv_sec, (long long) tv.tv_usec); } #endif /* HAVE_STRUCT___KERNEL_SOCK_TIMEVAL */ @@ -80,16 +91,18 @@ print_timestampns_new(const struct cmsghdr *c) { const void *cmsg_header = c; const void *cmsg_data = CMSG_DATA(c); - const struct __kernel_timespec *ts = cmsg_data; - const unsigned int expected_len = sizeof(*ts); + struct __kernel_timespec ts; + const unsigned int expected_len = sizeof(ts); const unsigned int data_len = c->cmsg_len - (cmsg_data - cmsg_header); if (expected_len != data_len) perror_msg_and_fail("sizeof(struct __kernel_timespec) = %u" ", data_len = %u\n", expected_len, data_len); + + memcpy(&ts, cmsg_data, sizeof(ts)); printf("{tv_sec=%lld, tv_nsec=%lld}", - (long long) ts->tv_sec, (long long) ts->tv_nsec); + (long long) ts.tv_sec, (long long) ts.tv_nsec); } #endif /* HAVE_STRUCT___KERNEL_TIMESPEC */ diff --git a/tests-mx32/splice.c b/tests-mx32/splice.c index 2acdde7f..f62d5ba2 100644 --- a/tests-mx32/splice.c +++ b/tests-mx32/splice.c @@ -2,14 +2,14 @@ * This file is part of splice strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_splice diff --git a/tests-mx32/stack-fcall-0.c b/tests-mx32/stack-fcall-0.c index 8a26a79c..be987a94 100644 --- a/tests-mx32/stack-fcall-0.c +++ b/tests-mx32/stack-fcall-0.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -7,7 +7,10 @@ #include "stack-fcall.h" -int f0(int i) +int +f0(int i, unsigned long f) { - return f1(i) - i; + f ^= (unsigned long) (void *) f0; + COMPLEX_BODY(i, f); + return f1(i, f) - i; } diff --git a/tests-mx32/stack-fcall-1.c b/tests-mx32/stack-fcall-1.c index b5cd89b3..88f33b9b 100644 --- a/tests-mx32/stack-fcall-1.c +++ b/tests-mx32/stack-fcall-1.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -7,7 +7,10 @@ #include "stack-fcall.h" -int f1(int i) +int +f1(int i, unsigned long f) { - return f2(i) + i; + f ^= (unsigned long) (void *) f1; + COMPLEX_BODY(i, f); + return f2(i, f) + i; } diff --git a/tests-mx32/stack-fcall-2.c b/tests-mx32/stack-fcall-2.c index 16beee58..00235903 100644 --- a/tests-mx32/stack-fcall-2.c +++ b/tests-mx32/stack-fcall-2.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -7,7 +7,10 @@ #include "stack-fcall.h" -int f2(int i) +int +f2(int i, unsigned long f) { - return f3(i) - i; + f ^= (unsigned long) (void *) f2; + COMPLEX_BODY(i, f); + return f3(i, f) - i; } diff --git a/tests-mx32/stack-fcall-3.c b/tests-mx32/stack-fcall-3.c index 538b6565..ea7d5fed 100644 --- a/tests-mx32/stack-fcall-3.c +++ b/tests-mx32/stack-fcall-3.c @@ -1,23 +1,28 @@ /* - * Copyright (c) 2014-2019 The strace developers. + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include -#include - #include "stack-fcall.h" -int f3(int i) +int +f3(int i, unsigned long f) { + f ^= (unsigned long) (void *) f3; + COMPLEX_BODY(i, f); switch (i) { case 1: - return kill(getpid(), SIGURG); - + i -= chdir(""); + break; + case 2: + i -= kill(getpid(), SIGURG) - 1; + break; default: - return chdir("") + i; + i -= syscall(__NR_exit, i - 3); + break; } - + return i; } diff --git a/tests-mx32/stack-fcall-attach.c b/tests-mx32/stack-fcall-attach.c new file mode 100644 index 00000000..f2db2b7e --- /dev/null +++ b/tests-mx32/stack-fcall-attach.c @@ -0,0 +1,2 @@ +#define ATTACH_MODE 1 +#include "stack-fcall.c" diff --git a/tests-mx32/stack-fcall.c b/tests-mx32/stack-fcall.c index cf4000e5..d0c62143 100644 --- a/tests-mx32/stack-fcall.c +++ b/tests-mx32/stack-fcall.c @@ -1,15 +1,26 @@ /* - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ +#include "tests.h" +#include #include "stack-fcall.h" -int main(void) +#ifndef ATTACH_MODE +# define ATTACH_MODE 0 +#endif + +int +main(int ac, char **av) { - f0(0); - f0(1); - return 0; +#if ATTACH_MODE + /* sleep a bit to let the tracer time to catch up */ + sleep(1); +#endif + + for (;;) + ac += f0(ac, (unsigned long) (void *) main); } diff --git a/tests-mx32/stack-fcall.h b/tests-mx32/stack-fcall.h index cca0f94f..3afa8a26 100644 --- a/tests-mx32/stack-fcall.h +++ b/tests-mx32/stack-fcall.h @@ -1,10 +1,13 @@ /* - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ +#include +#include "scno.h" + #ifdef MANGLE # define f0 _ZN2ns2f0Ei @@ -14,7 +17,28 @@ #endif -int f0(int i); -int f1(int i); -int f2(int i); -int f3(int i); +int f0(int i, unsigned long); +int f1(int i, unsigned long); +int f2(int i, unsigned long); +int f3(int i, unsigned long); + +#define COMPLEX_BODY(i, f) \ + do { \ + int tid = syscall(__NR_gettid, f); \ + if (i == tid) \ + return 0; \ + switch ((unsigned int) tid & 3) { \ + case 0: \ + i += f0(tid, f); \ + break; \ + case 1: \ + i += f1(tid, f); \ + break; \ + case 2: \ + i += f2(tid, f); \ + break; \ + case 3: \ + i += f3(tid, f); \ + break; \ + } \ + } while (0) diff --git a/tests-mx32/stat.c b/tests-mx32/stat.c index 8c8daad1..f161b4f1 100644 --- a/tests-mx32/stat.c +++ b/tests-mx32/stat.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_stat diff --git a/tests-mx32/stat.gen.test b/tests-mx32/stat.gen.test index 13ccd0b8..83037995 100755 --- a/tests-mx32/stat.gen.test +++ b/tests-mx32/stat.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (stat -a32 -v -P stat.sample -P /dev/full); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (stat -a30 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a32 -v -P stat.sample -P /dev/full +run_strace_match_diff -a30 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full diff --git a/tests-mx32/stat64.c b/tests-mx32/stat64.c index 12ded432..5c6b56b8 100644 --- a/tests-mx32/stat64.c +++ b/tests-mx32/stat64.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_stat64 diff --git a/tests-mx32/stat64.gen.test b/tests-mx32/stat64.gen.test index f49df37a..fe86da1d 100755 --- a/tests-mx32/stat64.gen.test +++ b/tests-mx32/stat64.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (stat64 -a32 -v -P stat.sample -P /dev/full); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (stat64 -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a32 -v -P stat.sample -P /dev/full +run_strace_match_diff -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full diff --git a/tests-mx32/statfs.c b/tests-mx32/statfs.c index 5672a7fc..13b98fa5 100644 --- a/tests-mx32/statfs.c +++ b/tests-mx32/statfs.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2014-2018 Dmitry V. Levin + * Copyright (c) 2014-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_statfs diff --git a/tests-mx32/statfs64.c b/tests-mx32/statfs64.c index 1e0a4b24..5cd92529 100644 --- a/tests-mx32/statfs64.c +++ b/tests-mx32/statfs64.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_statfs64 diff --git a/tests-mx32/status-all.c b/tests-mx32/status-all.c new file mode 100644 index 00000000..db9510af --- /dev/null +++ b/tests-mx32/status-all.c @@ -0,0 +1,24 @@ +/* + * Check status=all filtering for failed and successful syscalls. + * + * Copyright (c) 2019 Intel Corporation + * Copyright (c) 2019 Paul Chaignon + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include + +int +main(void) +{ + static const char sample_valid[] = "."; + static const char sample_invalid[] = ""; + + test_status_chdir(sample_valid, 1, 1); + test_status_chdir(sample_invalid, 1, 1); + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests-mx32/status-all.gen.test b/tests-mx32/status-all.gen.test new file mode 100755 index 00000000..0a10ba42 --- /dev/null +++ b/tests-mx32/status-all.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (status-all -a10 -e trace=chdir --status=detached,failed,successful,unavailable,unfinished); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 -e trace=chdir --status=detached,failed,successful,unavailable,unfinished diff --git a/tests-mx32/status-detached.expected b/tests-mx32/status-detached.expected new file mode 100644 index 00000000..0a6325f5 --- /dev/null +++ b/tests-mx32/status-detached.expected @@ -0,0 +1 @@ +nanosleep\({tv_sec=2, tv_nsec=0}, diff --git a/tests-mx32/status-detached.test b/tests-mx32/status-detached.test new file mode 100755 index 00000000..35692726 --- /dev/null +++ b/tests-mx32/status-detached.test @@ -0,0 +1,20 @@ +#!/bin/sh +# +# Check -e status=detached option. +# +# Copyright (c) 2019 Paul Chaignon +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +run_prog ../sleep 0 + +# -I2 avoids blocking all fatal signals, the default when using -o. +$STRACE -o "$LOG" -I2 -e status=detached ../sleep 2 & +pid=$! +../sleep 1 +kill $pid +wait +match_grep diff --git a/tests-mx32/status-failed-long.c b/tests-mx32/status-failed-long.c new file mode 100644 index 00000000..ac61c515 --- /dev/null +++ b/tests-mx32/status-failed-long.c @@ -0,0 +1 @@ +#include "status-failed.c" diff --git a/tests-mx32/status-failed-long.gen.test b/tests-mx32/status-failed-long.gen.test new file mode 100755 index 00000000..db2abc84 --- /dev/null +++ b/tests-mx32/status-failed-long.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (status-failed-long -a10 -e trace=chdir --failed-only); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 -e trace=chdir --failed-only diff --git a/tests-mx32/status-failed-status.c b/tests-mx32/status-failed-status.c new file mode 100644 index 00000000..ac61c515 --- /dev/null +++ b/tests-mx32/status-failed-status.c @@ -0,0 +1 @@ +#include "status-failed.c" diff --git a/tests-mx32/status-failed-status.gen.test b/tests-mx32/status-failed-status.gen.test new file mode 100755 index 00000000..f51b19f1 --- /dev/null +++ b/tests-mx32/status-failed-status.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (status-failed-status -a10 -e trace=chdir -e status=failed); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 -e trace=chdir -e status=failed diff --git a/tests-mx32/status-failed.c b/tests-mx32/status-failed.c new file mode 100644 index 00000000..81d2885a --- /dev/null +++ b/tests-mx32/status-failed.c @@ -0,0 +1,24 @@ +/* + * Check status=failed filtering for failed and successful syscalls. + * + * Copyright (c) 2019 Intel Corporation + * Copyright (c) 2019 Paul Chaignon + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include + +int +main(void) +{ + static const char sample_valid[] = "."; + static const char sample_invalid[] = ""; + + test_status_chdir(sample_valid, 0, 1); + test_status_chdir(sample_invalid, 0, 1); + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests-mx32/status-failed.gen.test b/tests-mx32/status-failed.gen.test new file mode 100755 index 00000000..fcc77903 --- /dev/null +++ b/tests-mx32/status-failed.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (status-failed -a10 -e trace=chdir -Z); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 -e trace=chdir -Z diff --git a/tests-mx32/status-none-f.c b/tests-mx32/status-none-f.c new file mode 100644 index 00000000..b41a5666 --- /dev/null +++ b/tests-mx32/status-none-f.c @@ -0,0 +1,19 @@ +/* + * Check basic seccomp filtering with large number of traced syscalls. + * + * Copyright (c) 2018-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include + +int +main(void) +{ + printf("%-5d +++ exited with 0 +++\n", getpid()); + return 0; +} diff --git a/tests-mx32/status-none-threads.c b/tests-mx32/status-none-threads.c new file mode 100644 index 00000000..ae939601 --- /dev/null +++ b/tests-mx32/status-none-threads.c @@ -0,0 +1,53 @@ +/* + * Check status=none filtering when a non-leader thread invokes execve. + * + * Copyright (c) 2019 Paul Chaignon + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include +#include +#include +#include "scno.h" + +static pid_t leader; + +static void * +thread(void *arg) +{ + struct timespec ts = { .tv_nsec = 100000000 }; + (void) nanosleep(&ts, NULL); + + printf("%-5d +++ superseded by execve in pid %u +++\n", + leader, (int) syscall(__NR_gettid)); + + char *argv[] = {((char **) arg)[0], (char *) "0", NULL}; + execve(argv[0], argv, NULL); + perror_msg_and_fail("execve"); +} + +int +main(int ac, char **av) +{ + setvbuf(stdout, NULL, _IONBF, 0); + leader = getpid(); + + if (ac > 1) { + printf("%-5d +++ exited with 0 +++\n", leader); + return 0; + } + + pthread_t t; + errno = pthread_create(&t, NULL, thread, av); + if (errno) + perror_msg_and_fail("pthread_create"); + + struct timespec ts = { .tv_sec = 123 }; + (void) nanosleep(&ts, 0); + + return 1; +} diff --git a/tests-mx32/status-none-threads.test b/tests-mx32/status-none-threads.test new file mode 100755 index 00000000..630424e8 --- /dev/null +++ b/tests-mx32/status-none-threads.test @@ -0,0 +1,47 @@ +#!/bin/sh +# +# Check status=none filtering when a non-leader thread invokes execve. +# +# Copyright (c) 2019 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +# Check that PTRACE_EVENT_EXEC support in kernel is good enough. +# The kernel before commit v3.1-rc1~308^2~7 reported 0 instead of old pid. +require_min_kernel_version_or_skip 3.1 + +# This test requires some concurrency between threads. +require_min_nproc 2 + +check_prog diff +run_prog_skip_if_failed date +%s > /dev/null +s0="$(date +%s)" + +run_prog > /dev/null + +set -- -a14 -f -e status=${status_filter:-none} $args + +# Due to probabilistic nature of the test, try it several times. +while :; do + > "$LOG" || fail_ "failed to write $LOG" + rc=0 + $STRACE -o "$LOG" "$@" > "$EXP" || { + rc=$? + cat < "$LOG" >&2 + } + + if [ "$rc" = 0 ] && diff -u -- "$EXP" "$LOG"; then + exit 0 + fi + + s1="$(date +%s)" + [ "$(($s1-$s0))" -gt "$(($TIMEOUT_DURATION/2))" ] || + continue + + [ "$rc" = 0 ] && + fail_ "$STRACE $* output mismatch" || + fail_ "$STRACE $* failed with code $rc" +done diff --git a/tests-mx32/status-none.c b/tests-mx32/status-none.c new file mode 100644 index 00000000..0144a60c --- /dev/null +++ b/tests-mx32/status-none.c @@ -0,0 +1,18 @@ +/* + * Check basic -e status=none syscall filtering. + * + * Copyright (c) 2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include + +int +main(void) +{ + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests-mx32/status-none.gen.test b/tests-mx32/status-none.gen.test new file mode 100755 index 00000000..2b141f2f --- /dev/null +++ b/tests-mx32/status-none.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (status-none -e trace=all --status=none); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -e trace=all --status=none diff --git a/tests-mx32/status-successful-long.c b/tests-mx32/status-successful-long.c new file mode 100644 index 00000000..45be5b19 --- /dev/null +++ b/tests-mx32/status-successful-long.c @@ -0,0 +1 @@ +#include "status-successful.c" diff --git a/tests-mx32/status-successful-long.gen.test b/tests-mx32/status-successful-long.gen.test new file mode 100755 index 00000000..1618f32c --- /dev/null +++ b/tests-mx32/status-successful-long.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (status-successful-long -a10 -e trace=chdir --successful-only); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 -e trace=chdir --successful-only diff --git a/tests-mx32/status-successful-status.c b/tests-mx32/status-successful-status.c new file mode 100644 index 00000000..45be5b19 --- /dev/null +++ b/tests-mx32/status-successful-status.c @@ -0,0 +1 @@ +#include "status-successful.c" diff --git a/tests-mx32/status-successful-status.gen.test b/tests-mx32/status-successful-status.gen.test new file mode 100755 index 00000000..34ce3db8 --- /dev/null +++ b/tests-mx32/status-successful-status.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (status-successful-status -a10 -e trace=chdir --status=successful); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 -e trace=chdir --status=successful diff --git a/tests-mx32/status-successful.c b/tests-mx32/status-successful.c new file mode 100644 index 00000000..b37854af --- /dev/null +++ b/tests-mx32/status-successful.c @@ -0,0 +1,24 @@ +/* + * Check status=successful filtering for failed and successful syscalls. + * + * Copyright (c) 2019 Intel Corporation + * Copyright (c) 2019 Paul Chaignon + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include + +int +main(void) +{ + static const char sample_valid[] = "."; + static const char sample_invalid[] = ""; + + test_status_chdir(sample_valid, 1, 0); + test_status_chdir(sample_invalid, 1, 0); + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests-mx32/status-successful.gen.test b/tests-mx32/status-successful.gen.test new file mode 100755 index 00000000..395b85eb --- /dev/null +++ b/tests-mx32/status-successful.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (status-successful -a10 -e trace=chdir -z); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 -e trace=chdir -z diff --git a/tests-mx32/status-unfinished-threads.c b/tests-mx32/status-unfinished-threads.c new file mode 100644 index 00000000..77c88173 --- /dev/null +++ b/tests-mx32/status-unfinished-threads.c @@ -0,0 +1,66 @@ +/* + * Check status=unfinished filtering when a non-leader thread invokes execve. + * + * Copyright (c) 2019 Paul Chaignon + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_nanosleep + +# include +# include +# include +# include + +# include "kernel_old_timespec.h" + +static pid_t leader; + +static void * +thread(void *arg) +{ + kernel_old_timespec_t ts = { .tv_nsec = 100000000 }; + (void) syscall(__NR_nanosleep, (unsigned long) &ts, 0UL); + + printf("%-5d nanosleep({tv_sec=123, tv_nsec=0}, ) = ?\n" + "%-5d +++ superseded by execve in pid %u +++\n", + leader, leader, (int) syscall(__NR_gettid)); + + char *argv[] = {((char **) arg)[0], (char *) "0", NULL}; + execve(argv[0], argv, NULL); + perror_msg_and_fail("execve"); +} + +int +main(int ac, char **av) +{ + setvbuf(stdout, NULL, _IONBF, 0); + leader = getpid(); + + if (ac > 1) { + printf("%-5d exit_group(0) = ?\n" + "%-5d +++ exited with 0 +++\n", leader, leader); + return 0; + } + + pthread_t t; + errno = pthread_create(&t, NULL, thread, av); + if (errno) + perror_msg_and_fail("pthread_create"); + + kernel_old_timespec_t ts = { .tv_sec = 123 }; + (void) syscall(__NR_nanosleep, (unsigned long) &ts, 0UL); + + return 1; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_nanosleep") + +#endif diff --git a/tests-mx32/status-unfinished-threads.test b/tests-mx32/status-unfinished-threads.test new file mode 100755 index 00000000..f54a323f --- /dev/null +++ b/tests-mx32/status-unfinished-threads.test @@ -0,0 +1,12 @@ +#!/bin/sh +# +# Check status=unfinished filtering when a non-leader thread invokes execve. +# +# Copyright (c) 2019 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +status_filter=unfinished + +. "${srcdir=.}"/status-none-threads.test diff --git a/tests-mx32/status-unfinished.c b/tests-mx32/status-unfinished.c new file mode 100644 index 00000000..de78eee4 --- /dev/null +++ b/tests-mx32/status-unfinished.c @@ -0,0 +1,19 @@ +/* + * Check basic -e status=unfinished syscall filtering. + * + * Copyright (c) 2019 Paul Chaignon + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include + +int +main(void) +{ + puts("exit_group(0) = ?\n" + "+++ exited with 0 +++"); + return 0; +} diff --git a/tests-mx32/status-unfinished.gen.test b/tests-mx32/status-unfinished.gen.test new file mode 100755 index 00000000..c02817b0 --- /dev/null +++ b/tests-mx32/status-unfinished.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (status-unfinished -a10 -e trace=all --status=unfinished); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 -e trace=all --status=unfinished diff --git a/tests-mx32/status.c b/tests-mx32/status.c new file mode 100644 index 00000000..82fd8b18 --- /dev/null +++ b/tests-mx32/status.c @@ -0,0 +1,21 @@ +/* + * Helper function to check -e status option. + * + * Copyright (c) 2019 Intel Corporation + * Copyright (c) 2019 Paul Chaignon + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include + +void +test_status_chdir(const char *dir, bool print_success, bool print_fail) +{ + long rc = chdir(dir); + if ((rc == -1 && print_fail) || (rc != -1 && print_success)) + printf("chdir(\"%s\") = %s\n", dir, sprintrc(rc)); +} diff --git a/tests-mx32/statx.c b/tests-mx32/statx.c index c5e86ad2..c5537204 100644 --- a/tests-mx32/statx.c +++ b/tests-mx32/statx.c @@ -1,14 +1,14 @@ /* - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" -#ifdef __NR_statx +#if defined __NR_statx && defined HAVE_STRUCT_STATX # include # include "xlat.h" @@ -45,6 +45,6 @@ static const char *TEST_SYSCALL_STATX_MASK_STR = "STATX_ALL"; #else -SKIP_MAIN_UNDEFINED("__NR_statx") +SKIP_MAIN_UNDEFINED("__NR_statx && HAVE_STRUCT_STATX") #endif diff --git a/tests-mx32/statx.gen.test b/tests-mx32/statx.gen.test index bff3e3f2..564a5918 100755 --- a/tests-mx32/statx.gen.test +++ b/tests-mx32/statx.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (statx -a32 -v -P stat.sample -P /dev/full); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (statx -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a32 -v -P stat.sample -P /dev/full +run_strace_match_diff -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full diff --git a/tests-mx32/strace--absolute-timestamps-format-time-precision-ms.gen.test b/tests-mx32/strace--absolute-timestamps-format-time-precision-ms.gen.test new file mode 100755 index 00000000..061321c1 --- /dev/null +++ b/tests-mx32/strace--absolute-timestamps-format-time-precision-ms.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps-format-time-precision-ms +strace-tt.test 3 --absolute-timestamps=format:time --absolute-timestamps=precision:ms); do not edit. +set -- 3 --absolute-timestamps=format:time --absolute-timestamps=precision:ms +. "${srcdir=.}/strace-tt.test" diff --git a/tests-mx32/strace--absolute-timestamps-format-time-precision-ns.gen.test b/tests-mx32/strace--absolute-timestamps-format-time-precision-ns.gen.test new file mode 100755 index 00000000..c1c94db9 --- /dev/null +++ b/tests-mx32/strace--absolute-timestamps-format-time-precision-ns.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps-format-time-precision-ns +strace-tt.test 9 --absolute-timestamps=format:time --absolute-timestamps=precision:ns); do not edit. +set -- 9 --absolute-timestamps=format:time --absolute-timestamps=precision:ns +. "${srcdir=.}/strace-tt.test" diff --git a/tests-mx32/strace--absolute-timestamps-format-time-precision-s.gen.test b/tests-mx32/strace--absolute-timestamps-format-time-precision-s.gen.test new file mode 100755 index 00000000..52bfe1cc --- /dev/null +++ b/tests-mx32/strace--absolute-timestamps-format-time-precision-s.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps-format-time-precision-s +strace-t.test --absolute-timestamps=format:time --absolute-timestamps=precision:s); do not edit. +set -- --absolute-timestamps=format:time --absolute-timestamps=precision:s +. "${srcdir=.}/strace-t.test" diff --git a/tests-mx32/strace--absolute-timestamps-format-time-precision-us.gen.test b/tests-mx32/strace--absolute-timestamps-format-time-precision-us.gen.test new file mode 100755 index 00000000..6c55961c --- /dev/null +++ b/tests-mx32/strace--absolute-timestamps-format-time-precision-us.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps-format-time-precision-us +strace-tt.test 6 --absolute-timestamps=format:time --absolute-timestamps=precision:us); do not edit. +set -- 6 --absolute-timestamps=format:time --absolute-timestamps=precision:us +. "${srcdir=.}/strace-tt.test" diff --git a/tests-mx32/strace--absolute-timestamps-format-time.gen.test b/tests-mx32/strace--absolute-timestamps-format-time.gen.test new file mode 100755 index 00000000..1c55649b --- /dev/null +++ b/tests-mx32/strace--absolute-timestamps-format-time.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps-format-time +strace-t.test --absolute-timestamps=format:time); do not edit. +set -- --absolute-timestamps=format:time +. "${srcdir=.}/strace-t.test" diff --git a/tests-mx32/strace--absolute-timestamps-format-unix-precision-ms.gen.test b/tests-mx32/strace--absolute-timestamps-format-unix-precision-ms.gen.test new file mode 100755 index 00000000..fe4d221e --- /dev/null +++ b/tests-mx32/strace--absolute-timestamps-format-unix-precision-ms.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps-format-unix-precision-ms +strace-ttt.test 3 --absolute-timestamps=precision:ms --absolute-timestamps=format:unix); do not edit. +set -- 3 --absolute-timestamps=precision:ms --absolute-timestamps=format:unix +. "${srcdir=.}/strace-ttt.test" diff --git a/tests-mx32/strace--absolute-timestamps-format-unix-precision-ns.gen.test b/tests-mx32/strace--absolute-timestamps-format-unix-precision-ns.gen.test new file mode 100755 index 00000000..9ea30ba4 --- /dev/null +++ b/tests-mx32/strace--absolute-timestamps-format-unix-precision-ns.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps-format-unix-precision-ns +strace-ttt.test 9 --absolute-timestamps=format:unix --absolute-timestamps=precision:ns); do not edit. +set -- 9 --absolute-timestamps=format:unix --absolute-timestamps=precision:ns +. "${srcdir=.}/strace-ttt.test" diff --git a/tests-mx32/strace--absolute-timestamps-format-unix-precision-s.gen.test b/tests-mx32/strace--absolute-timestamps-format-unix-precision-s.gen.test new file mode 100755 index 00000000..93b7221f --- /dev/null +++ b/tests-mx32/strace--absolute-timestamps-format-unix-precision-s.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps-format-unix-precision-s +strace-ttt.test 0 --absolute-timestamps=format:unix --absolute-timestamps=precision:s); do not edit. +set -- 0 --absolute-timestamps=format:unix --absolute-timestamps=precision:s +. "${srcdir=.}/strace-ttt.test" diff --git a/tests-mx32/strace--absolute-timestamps-format-unix-precision-us.gen.test b/tests-mx32/strace--absolute-timestamps-format-unix-precision-us.gen.test new file mode 100755 index 00000000..f5136585 --- /dev/null +++ b/tests-mx32/strace--absolute-timestamps-format-unix-precision-us.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps-format-unix-precision-us +strace-ttt.test 6 --absolute-timestamps=precision:us --absolute-timestamps=format:unix); do not edit. +set -- 6 --absolute-timestamps=precision:us --absolute-timestamps=format:unix +. "${srcdir=.}/strace-ttt.test" diff --git a/tests-mx32/strace--absolute-timestamps.gen.test b/tests-mx32/strace--absolute-timestamps.gen.test new file mode 100755 index 00000000..f5c79952 --- /dev/null +++ b/tests-mx32/strace--absolute-timestamps.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps +strace-t.test --absolute-timestamps); do not edit. +set -- --absolute-timestamps +. "${srcdir=.}/strace-t.test" diff --git a/tests-mx32/strace--follow-forks-output-separately.expected b/tests-mx32/strace--follow-forks-output-separately.expected new file mode 100644 index 00000000..627a1b4c --- /dev/null +++ b/tests-mx32/strace--follow-forks-output-separately.expected @@ -0,0 +1,2 @@ +exit_group(0) = ? ++++ exited with 0 +++ diff --git a/tests-mx32/strace--follow-forks-output-separately.gen.test b/tests-mx32/strace--follow-forks-output-separately.gen.test new file mode 100755 index 00000000..96c225ec --- /dev/null +++ b/tests-mx32/strace--follow-forks-output-separately.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--follow-forks-output-separately +strace-ff.test --follow-forks --output-separately); do not edit. +set -- --follow-forks --output-separately +. "${srcdir=.}/strace-ff.test" diff --git a/tests-mx32/strace--relative-timestamps-ms.expected b/tests-mx32/strace--relative-timestamps-ms.expected new file mode 100644 index 00000000..9fff2962 --- /dev/null +++ b/tests-mx32/strace--relative-timestamps-ms.expected @@ -0,0 +1,2 @@ +[ ]{5}0\.0{3} execve\("\.\./sleep", \["\.\./sleep", "1"\], 0x[[:xdigit:]]* /\* [[:digit:]]* vars \*/\) = 0 +[ ]{5}(1\.[01]|0\.9)[[:digit:]]{2} \+\+\+ exited with 0 \+\+\+ diff --git a/tests-mx32/strace--relative-timestamps-ms.gen.test b/tests-mx32/strace--relative-timestamps-ms.gen.test new file mode 100755 index 00000000..60a5865d --- /dev/null +++ b/tests-mx32/strace--relative-timestamps-ms.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--relative-timestamps-ms +strace-r.test --relative-timestamps=ms); do not edit. +set -- --relative-timestamps=ms +. "${srcdir=.}/strace-r.test" diff --git a/tests-mx32/strace--relative-timestamps-ns.expected b/tests-mx32/strace--relative-timestamps-ns.expected new file mode 100644 index 00000000..d72c4779 --- /dev/null +++ b/tests-mx32/strace--relative-timestamps-ns.expected @@ -0,0 +1,2 @@ +[ ]{5}0\.0{9} execve\("\.\./sleep", \["\.\./sleep", "1"\], 0x[[:xdigit:]]* /\* [[:digit:]]* vars \*/\) = 0 +[ ]{5}(1\.[01]|0\.9)[[:digit:]]{8} \+\+\+ exited with 0 \+\+\+ diff --git a/tests-mx32/strace--relative-timestamps-ns.gen.test b/tests-mx32/strace--relative-timestamps-ns.gen.test new file mode 100755 index 00000000..3aec8087 --- /dev/null +++ b/tests-mx32/strace--relative-timestamps-ns.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--relative-timestamps-ns +strace-r.test --relative-timestamps=ns); do not edit. +set -- --relative-timestamps=ns +. "${srcdir=.}/strace-r.test" diff --git a/tests-mx32/strace--relative-timestamps-s.expected b/tests-mx32/strace--relative-timestamps-s.expected new file mode 100644 index 00000000..b3c5ff05 --- /dev/null +++ b/tests-mx32/strace--relative-timestamps-s.expected @@ -0,0 +1,2 @@ +[ ]{5}0 execve\("\.\./sleep", \["\.\./sleep", "1"\], 0x[[:xdigit:]]* /\* [[:digit:]]* vars \*/\) = 0 +[ ]{5}[01] \+\+\+ exited with 0 \+\+\+ diff --git a/tests-mx32/strace--relative-timestamps-s.gen.test b/tests-mx32/strace--relative-timestamps-s.gen.test new file mode 100755 index 00000000..2d2ba8db --- /dev/null +++ b/tests-mx32/strace--relative-timestamps-s.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--relative-timestamps-s +strace-r.test --relative-timestamps=s); do not edit. +set -- --relative-timestamps=s +. "${srcdir=.}/strace-r.test" diff --git a/tests-mx32/strace--relative-timestamps-us.expected b/tests-mx32/strace--relative-timestamps-us.expected new file mode 100644 index 00000000..2a5b9773 --- /dev/null +++ b/tests-mx32/strace--relative-timestamps-us.expected @@ -0,0 +1,2 @@ +[ ]{5}0\.0{6} execve\("\.\./sleep", \["\.\./sleep", "1"\], 0x[[:xdigit:]]* /\* [[:digit:]]* vars \*/\) = 0 +[ ]{5}(1\.[01]|0\.9)[[:digit:]]{5} \+\+\+ exited with 0 \+\+\+ diff --git a/tests-mx32/strace--relative-timestamps-us.gen.test b/tests-mx32/strace--relative-timestamps-us.gen.test new file mode 100755 index 00000000..660c0f29 --- /dev/null +++ b/tests-mx32/strace--relative-timestamps-us.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--relative-timestamps-us +strace-r.test --relative-timestamps=us); do not edit. +set -- --relative-timestamps=us +. "${srcdir=.}/strace-r.test" diff --git a/tests-mx32/strace--relative-timestamps.expected b/tests-mx32/strace--relative-timestamps.expected new file mode 100644 index 00000000..2a5b9773 --- /dev/null +++ b/tests-mx32/strace--relative-timestamps.expected @@ -0,0 +1,2 @@ +[ ]{5}0\.0{6} execve\("\.\./sleep", \["\.\./sleep", "1"\], 0x[[:xdigit:]]* /\* [[:digit:]]* vars \*/\) = 0 +[ ]{5}(1\.[01]|0\.9)[[:digit:]]{5} \+\+\+ exited with 0 \+\+\+ diff --git a/tests-mx32/strace--relative-timestamps.gen.test b/tests-mx32/strace--relative-timestamps.gen.test new file mode 100755 index 00000000..c0e8abe4 --- /dev/null +++ b/tests-mx32/strace--relative-timestamps.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--relative-timestamps +strace-r.test --relative-timestamps); do not edit. +set -- --relative-timestamps +. "${srcdir=.}/strace-r.test" diff --git a/tests-mx32/strace--strings-in-hex-all.c b/tests-mx32/strace--strings-in-hex-all.c new file mode 100644 index 00000000..af37c30c --- /dev/null +++ b/tests-mx32/strace--strings-in-hex-all.c @@ -0,0 +1,2 @@ +#define STRACE_XX 1 +#include "strace-x.c" diff --git a/tests-mx32/strace--strings-in-hex-all.gen.test b/tests-mx32/strace--strings-in-hex-all.gen.test new file mode 100755 index 00000000..78d61edd --- /dev/null +++ b/tests-mx32/strace--strings-in-hex-all.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--strings-in-hex-all --trace=chdir --strings-in-hex=all --columns=18); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff --trace=chdir --strings-in-hex=all --columns=18 diff --git a/tests-mx32/strace--strings-in-hex-non-ascii.c b/tests-mx32/strace--strings-in-hex-non-ascii.c new file mode 100644 index 00000000..e07ded29 --- /dev/null +++ b/tests-mx32/strace--strings-in-hex-non-ascii.c @@ -0,0 +1,2 @@ +#define STRACE_XX 0 +#include "strace-x.c" diff --git a/tests-mx32/strace--strings-in-hex-non-ascii.gen.test b/tests-mx32/strace--strings-in-hex-non-ascii.gen.test new file mode 100755 index 00000000..037af673 --- /dev/null +++ b/tests-mx32/strace--strings-in-hex-non-ascii.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--strings-in-hex-non-ascii --trace=chdir --strings-in-hex=non-ascii --columns=12); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff --trace=chdir --strings-in-hex=non-ascii --columns=12 diff --git a/tests-mx32/strace--strings-in-hex.c b/tests-mx32/strace--strings-in-hex.c new file mode 100644 index 00000000..af37c30c --- /dev/null +++ b/tests-mx32/strace--strings-in-hex.c @@ -0,0 +1,2 @@ +#define STRACE_XX 1 +#include "strace-x.c" diff --git a/tests-mx32/strace--strings-in-hex.gen.test b/tests-mx32/strace--strings-in-hex.gen.test new file mode 100755 index 00000000..c16db4b9 --- /dev/null +++ b/tests-mx32/strace--strings-in-hex.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--strings-in-hex --trace=chdir --strings-in-hex --columns=18); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff --trace=chdir --strings-in-hex --columns=18 diff --git a/tests-mx32/strace--syscall-times-ms.expected b/tests-mx32/strace--syscall-times-ms.expected new file mode 100644 index 00000000..62c652ad --- /dev/null +++ b/tests-mx32/strace--syscall-times-ms.expected @@ -0,0 +1 @@ +nanosleep\(\{tv_sec=1, tv_nsec=0\}, NULL\) = 0 <(1\.[01]|0\.9)[[:digit:]]{2}> diff --git a/tests-mx32/strace--syscall-times-ms.gen.test b/tests-mx32/strace--syscall-times-ms.gen.test new file mode 100755 index 00000000..d6b43d4a --- /dev/null +++ b/tests-mx32/strace--syscall-times-ms.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--syscall-times-ms +strace-T.test --syscall-times=ms); do not edit. +set -- --syscall-times=ms +. "${srcdir=.}/strace-T.test" diff --git a/tests-mx32/strace--syscall-times-ns.expected b/tests-mx32/strace--syscall-times-ns.expected new file mode 100644 index 00000000..0110af4c --- /dev/null +++ b/tests-mx32/strace--syscall-times-ns.expected @@ -0,0 +1 @@ +nanosleep\(\{tv_sec=1, tv_nsec=0\}, NULL\) = 0 <(1\.[01]|0\.9)[[:digit:]]{8}> diff --git a/tests-mx32/strace--syscall-times-ns.gen.test b/tests-mx32/strace--syscall-times-ns.gen.test new file mode 100755 index 00000000..1b719f0f --- /dev/null +++ b/tests-mx32/strace--syscall-times-ns.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--syscall-times-ns +strace-T.test --syscall-times=ns); do not edit. +set -- --syscall-times=ns +. "${srcdir=.}/strace-T.test" diff --git a/tests-mx32/strace--syscall-times-s.expected b/tests-mx32/strace--syscall-times-s.expected new file mode 100644 index 00000000..fd4d3401 --- /dev/null +++ b/tests-mx32/strace--syscall-times-s.expected @@ -0,0 +1 @@ +nanosleep\(\{tv_sec=1, tv_nsec=0\}, NULL\) = 0 <[01]> diff --git a/tests-mx32/strace--syscall-times-s.gen.test b/tests-mx32/strace--syscall-times-s.gen.test new file mode 100755 index 00000000..095e49bd --- /dev/null +++ b/tests-mx32/strace--syscall-times-s.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--syscall-times-s +strace-T.test --syscall-times=s); do not edit. +set -- --syscall-times=s +. "${srcdir=.}/strace-T.test" diff --git a/tests-mx32/strace--syscall-times-us.expected b/tests-mx32/strace--syscall-times-us.expected new file mode 100644 index 00000000..1ea02046 --- /dev/null +++ b/tests-mx32/strace--syscall-times-us.expected @@ -0,0 +1 @@ +nanosleep\(\{tv_sec=1, tv_nsec=0\}, NULL\) = 0 <(1\.[01]|0\.9)[[:digit:]]{5}> diff --git a/tests-mx32/strace--syscall-times-us.gen.test b/tests-mx32/strace--syscall-times-us.gen.test new file mode 100755 index 00000000..65ac920e --- /dev/null +++ b/tests-mx32/strace--syscall-times-us.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--syscall-times-us +strace-T.test --syscall-times=us); do not edit. +set -- --syscall-times=us +. "${srcdir=.}/strace-T.test" diff --git a/tests-mx32/strace--syscall-times.expected b/tests-mx32/strace--syscall-times.expected new file mode 100644 index 00000000..1ea02046 --- /dev/null +++ b/tests-mx32/strace--syscall-times.expected @@ -0,0 +1 @@ +nanosleep\(\{tv_sec=1, tv_nsec=0\}, NULL\) = 0 <(1\.[01]|0\.9)[[:digit:]]{5}> diff --git a/tests-mx32/strace--syscall-times.gen.test b/tests-mx32/strace--syscall-times.gen.test new file mode 100755 index 00000000..a86a8f15 --- /dev/null +++ b/tests-mx32/strace--syscall-times.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--syscall-times +strace-T.test --syscall-times); do not edit. +set -- --syscall-times +. "${srcdir=.}/strace-T.test" diff --git a/tests-mx32/strace--timestamps-time-ms.gen.test b/tests-mx32/strace--timestamps-time-ms.gen.test new file mode 100755 index 00000000..bc468d24 --- /dev/null +++ b/tests-mx32/strace--timestamps-time-ms.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps-time-ms +strace-tt.test 3 --timestamps=time,ms); do not edit. +set -- 3 --timestamps=time,ms +. "${srcdir=.}/strace-tt.test" diff --git a/tests-mx32/strace--timestamps-time-ns.gen.test b/tests-mx32/strace--timestamps-time-ns.gen.test new file mode 100755 index 00000000..69a2a015 --- /dev/null +++ b/tests-mx32/strace--timestamps-time-ns.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps-time-ns +strace-tt.test 9 --timestamps=time,ns); do not edit. +set -- 9 --timestamps=time,ns +. "${srcdir=.}/strace-tt.test" diff --git a/tests-mx32/strace--timestamps-time-s.gen.test b/tests-mx32/strace--timestamps-time-s.gen.test new file mode 100755 index 00000000..30a40df1 --- /dev/null +++ b/tests-mx32/strace--timestamps-time-s.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps-time-s +strace-t.test --timestamps=time,s); do not edit. +set -- --timestamps=time,s +. "${srcdir=.}/strace-t.test" diff --git a/tests-mx32/strace--timestamps-time-us.gen.test b/tests-mx32/strace--timestamps-time-us.gen.test new file mode 100755 index 00000000..e4c7a78a --- /dev/null +++ b/tests-mx32/strace--timestamps-time-us.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps-time-us +strace-tt.test 6 --timestamps=time,us); do not edit. +set -- 6 --timestamps=time,us +. "${srcdir=.}/strace-tt.test" diff --git a/tests-mx32/strace--timestamps-time.gen.test b/tests-mx32/strace--timestamps-time.gen.test new file mode 100755 index 00000000..94ad3453 --- /dev/null +++ b/tests-mx32/strace--timestamps-time.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps-time +strace-t.test --timestamps=time); do not edit. +set -- --timestamps=time +. "${srcdir=.}/strace-t.test" diff --git a/tests-mx32/strace--timestamps-unix-ms.gen.test b/tests-mx32/strace--timestamps-unix-ms.gen.test new file mode 100755 index 00000000..51db21ad --- /dev/null +++ b/tests-mx32/strace--timestamps-unix-ms.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps-unix-ms +strace-ttt.test 3 --timestamps=unix,ms); do not edit. +set -- 3 --timestamps=unix,ms +. "${srcdir=.}/strace-ttt.test" diff --git a/tests-mx32/strace--timestamps-unix-ns.gen.test b/tests-mx32/strace--timestamps-unix-ns.gen.test new file mode 100755 index 00000000..adfbdfc4 --- /dev/null +++ b/tests-mx32/strace--timestamps-unix-ns.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps-unix-ns +strace-ttt.test 9 --timestamps=unix,ns); do not edit. +set -- 9 --timestamps=unix,ns +. "${srcdir=.}/strace-ttt.test" diff --git a/tests-mx32/strace--timestamps-unix-s.gen.test b/tests-mx32/strace--timestamps-unix-s.gen.test new file mode 100755 index 00000000..0177f07f --- /dev/null +++ b/tests-mx32/strace--timestamps-unix-s.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps-unix-s +strace-ttt.test 0 --timestamps=unix,s); do not edit. +set -- 0 --timestamps=unix,s +. "${srcdir=.}/strace-ttt.test" diff --git a/tests-mx32/strace--timestamps-unix-us.gen.test b/tests-mx32/strace--timestamps-unix-us.gen.test new file mode 100755 index 00000000..42fdf060 --- /dev/null +++ b/tests-mx32/strace--timestamps-unix-us.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps-unix-us +strace-ttt.test 6 --timestamps=unix,us); do not edit. +set -- 6 --timestamps=unix,us +. "${srcdir=.}/strace-ttt.test" diff --git a/tests-mx32/strace--timestamps.gen.test b/tests-mx32/strace--timestamps.gen.test new file mode 100755 index 00000000..c08f0e5b --- /dev/null +++ b/tests-mx32/strace--timestamps.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps +strace-t.test --timestamps); do not edit. +set -- --timestamps +. "${srcdir=.}/strace-t.test" diff --git a/tests-mx32/strace-D.expected b/tests-mx32/strace-D.expected new file mode 100644 index 00000000..78c9d2dc --- /dev/null +++ b/tests-mx32/strace-D.expected @@ -0,0 +1 @@ ++++ exited with 0 +++ diff --git a/tests-mx32/strace-D.test b/tests-mx32/strace-D.test new file mode 100755 index 00000000..6c6ff2c9 --- /dev/null +++ b/tests-mx32/strace-D.test @@ -0,0 +1,72 @@ +#!/bin/sh -efu +# +# Check -D option. +# +# Copyright (c) 2019 Dmitry V. Levin +# Copyright (c) 2019-2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +check_prog sed +run_prog_skip_if_failed \ + kill -0 $$ + +get_parent_pid() +{ + sed '/^PPid:[[:space:]]*/!d;s///' +} + +get_tracer_pid() +{ + sed '/^TracerPid:[[:space:]]*/!d;s///' +} + +set -- ../print_ppid_tracerpid +"$@" > "$LOG" || + framework_skip_ "$* does not work" + +# not traced: PPid > 0, TracerPid == 0 +[ "$(get_parent_pid < "$LOG")" -gt 0 ] && +[ "$(get_tracer_pid < "$LOG")" -eq 0 ] || + dump_log_and_fail_with "$*: unexpected output" + +# !-D: PPid > 0, TracerPid > 0, PPid == TracerPid +run_strace -e q=attach,personality -enone "$@" > "$OUT" +[ "$(get_parent_pid < "$OUT")" -gt 0 ] && +[ "$(get_tracer_pid < "$OUT")" -gt 0 ] && +[ "$(get_parent_pid < "$OUT")" = "$(get_tracer_pid < "$OUT")" ] || { + cat < "$OUT" > "$LOG" + dump_log_and_fail_with "$STRACE $args: unexpected output" +} +match_diff + +test_parent_tracer_pid() +{ + local d parent_pid tracer_pid + d="$1"; shift + + # -D/-DD/-DDD: PPid > 0, TracerPid > 0, PPid != TracerPid + run_strace $d -q -enone "$@" > "$OUT" + + parent_pid="$(get_parent_pid < "$OUT")" && + [ "$parent_pid" -gt 0 ] && + tracer_pid="$(get_tracer_pid < "$OUT")" && + [ "$tracer_pid" -gt 0 ] && + [ "$parent_pid" != "$tracer_pid" ] || { + cat < "$OUT" > "$LOG" + dump_log_and_fail_with "$STRACE $args: unexpected output" + } + + while kill -0 "$tracer_pid" 2> /dev/null; do + $SLEEP_A_BIT + done + + match_diff +} + +test_parent_tracer_pid -D "$@" +test_parent_tracer_pid -DD "$@" +test_parent_tracer_pid -DDD "$@" diff --git a/tests-mx32/strace-DD.test b/tests-mx32/strace-DD.test new file mode 100755 index 00000000..95164bba --- /dev/null +++ b/tests-mx32/strace-DD.test @@ -0,0 +1,73 @@ +#!/bin/sh -efu +# +# Check -DD option. +# +# Copyright (c) 2019-2020 Dmitry V. Levin +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +[ "$STRACE" = "$STRACE_EXE" ] || + skip_ 'Not applicable: $STRACE != $STRACE_EXE' + +run_prog_skip_if_failed \ + kill -0 $$ + +status_file=/proc/self/status +get_tracer_pid() +{ + sed '/^TracerPid:[[:space:]]*/!d;s///' "$@" +} +[ "$(get_tracer_pid "$status_file")" -ge 0 ] || + framework_skip_ "$status_file is not available" + +run_prog ../sleep 0 + +sleep_duration="$(($TIMEOUT_DURATION/2))" + +test_D() +{ + local tracee_pid tracer_pid rc sig=15 + + set -- $STRACE --output="$LOG" --columns=39 \ + --interruptible=anywhere --trace=nanosleep "$@" -- \ + ../sleep "$sleep_duration" + > "$LOG" + + ../setpgrp-exec "$@" & + tracee_pid=$! + + while tracer_pid="$(get_tracer_pid "/proc/$tracee_pid/status")"; do + [ "$tracer_pid" = 0 ] || + break + $SLEEP_A_BIT + done + + $SLEEP_A_BIT + kill -$sig -$tracee_pid + + wait $tracee_pid && rc=0 || rc=$? + [ "$rc" -eq $((128 + $sig)) ] || + dump_log_and_fail_with \ + "$* failed with unexpected exit status $rc" + + while kill -0 "$tracer_pid" 2> /dev/null; do + $SLEEP_A_BIT + done + match_diff "$LOG" "$EXP" +} + +printf 'nanosleep({tv_sec=%s, tv_nsec=0}, ' "$sleep_duration" > "$EXP" +test_D -D + +uid="${UID:-`id -u`}" +cat > "$EXP" <<__EOF__ +nanosleep({tv_sec=$sleep_duration, tv_nsec=0}, NULL) = ? ERESTART_RESTARTBLOCK (Interrupted by signal) +--- SIGTERM {si_signo=SIGTERM, si_code=SI_USER, si_pid=$$, si_uid=$uid} --- ++++ killed by SIGTERM +++ +__EOF__ + +test_D -DD +test_D -DDD diff --git a/tests-mx32/strace-DDD.expected b/tests-mx32/strace-DDD.expected new file mode 100644 index 00000000..78c9d2dc --- /dev/null +++ b/tests-mx32/strace-DDD.expected @@ -0,0 +1 @@ ++++ exited with 0 +++ diff --git a/tests-mx32/strace-DDD.test b/tests-mx32/strace-DDD.test new file mode 100755 index 00000000..aad40009 --- /dev/null +++ b/tests-mx32/strace-DDD.test @@ -0,0 +1,93 @@ +#!/bin/sh -efu +# +# Check -DDD option. +# +# Copyright (c) 2019-2020 Dmitry V. Levin +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +check_prog sed +run_prog_skip_if_failed \ + kill -0 $$ + +status_file=/proc/self/status +[ -f "$status_file" ] || + framework_skip_ "$status_file is not available" + +stat_file=/proc/self/stat +[ -f "$stat_file" ] || + framework_skip_ "$stat_file is not available" + +reapid="$(../get_process_reaper)" && [ "$reapid" -ge 1 ] || + fail_ 'get_process_reaper failed' + +set -- -enone -esignal=none ../tracer_ppid_pgid_sid +run_strace "$@" > "$OUT" +read -r tracer_pid ppid pgid sid < "$OUT" && +[ "$tracer_pid" -gt 1 ] && +[ "$tracer_pid" -ne "$reapid" ] && +[ "$ppid" -gt 1 ] && +[ "$ppid" -ne "$reapid" ] && +[ "$pgid" -ge 0 ] && +[ "$sid" -ge 0 ] || { + cat < "$OUT" > "$LOG" + dump_log_and_fail_with "$STRACE $args: unexpected output" +} +match_diff + +pgid0="$pgid" +sid0="$sid" + +run_strace -D "$@" > "$OUT" +read -r tracer_pid ppid pgid sid < "$OUT" && +[ "$tracer_pid" -gt 1 ] && +[ "$tracer_pid" -ne "$reapid" ] && +[ "$ppid" -eq "$reapid" ] && +[ "$pgid" = "$pgid0" ] && +[ "$sid" = "$sid0" ] || { + cat < "$OUT" > "$LOG" + dump_log_and_fail_with "$STRACE $args: unexpected output" +} +while kill -0 "$tracer_pid" 2> /dev/null; do + $SLEEP_A_BIT +done +match_diff + +run_strace -DD "$@" > "$OUT" +read -r tracer_pid ppid pgid sid < "$OUT" && +[ "$tracer_pid" -gt 1 ] && +[ "$tracer_pid" -ne "$reapid" ] && +[ "$ppid" -eq "$reapid" ] && +[ "$pgid" -gt 1 ] && +[ "$pgid" -ne "$reapid" ] && +[ "$pgid" != "$pgid0" ] && +[ "$pgid" != "$sid" ] && +[ "$sid" = "$sid0" ] || { + cat < "$OUT" > "$LOG" + dump_log_and_fail_with "$STRACE $args: unexpected output" +} +while kill -0 "$tracer_pid" 2> /dev/null; do + $SLEEP_A_BIT +done +match_diff + +run_strace -DDD "$@" > "$OUT" +read -r tracer_pid ppid pgid sid < "$OUT" && +[ "$tracer_pid" -gt 1 ] && +[ "$tracer_pid" -ne "$reapid" ] && +[ "$ppid" -eq "$reapid" ] && +[ "$pgid" -gt 1 ] && +[ "$pgid" -ne "$reapid" ] && +[ "$pgid" != "$pgid0" ] && +[ "$sid" = "$pgid" ] && +[ "$sid" != "$sid0" ] || { + cat < "$OUT" > "$LOG" + dump_log_and_fail_with "$STRACE $args: unexpected output" +} +while kill -0 "$tracer_pid" 2> /dev/null; do + $SLEEP_A_BIT +done +match_diff diff --git a/tests-mx32/strace-E-override.test b/tests-mx32/strace-E-override.test new file mode 100755 index 00000000..15596177 --- /dev/null +++ b/tests-mx32/strace-E-override.test @@ -0,0 +1,14 @@ +#!/bin/sh +# +# Check that --env option does not affect strace's own environment. +# +# Copyright (c) 2019-2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +check_prog true +run_prog true +run_strace --quiet=all --trace=none --signal=none --env=PATH=/ $args diff --git a/tests-mx32/strace-E-unset.expected b/tests-mx32/strace-E-unset.expected new file mode 100644 index 00000000..6ce3620f --- /dev/null +++ b/tests-mx32/strace-E-unset.expected @@ -0,0 +1,5 @@ +execve\("\.\./sleep", \["\.\./sleep", "0"\], \[.*"option_E_var=OPTION_E_VAL".*\]\) = 0 +execve\("\.\./sleep", \["\.\./sleep", "0"\], \[.*"option_E_unsets=OPTION_E_UNSETS".*\]\) = 0 +execve\("\.\./sleep", \["\.\./sleep", "0"\], \[.*"option_E_mod=OPTION_E_NEW".*\]\) = 0 +execve\("\.\./sleep", \["\.\./sleep", "0"\], \[.*"option_E_mods=OPTION_E_MODS".*\]\) = 0 +!execve\("\.\./sleep", \["\.\./sleep", "0"\], \[.*"option_E_unset=.*\]\) = 0 diff --git a/tests-mx32/strace-E-unset.test b/tests-mx32/strace-E-unset.test new file mode 100755 index 00000000..c7583c1f --- /dev/null +++ b/tests-mx32/strace-E-unset.test @@ -0,0 +1,32 @@ +#!/bin/sh +# +# Check modify/unset behaviour of -E/--env option. +# +# Copyright (c) 2016-2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +export option_E_var=OPTION_E_VAL +export option_E_mod=OPTION_E_MOD +export option_E_mods=OPTION_E_MODS +export option_E_unset=OPTION_E_UNSET +export option_E_unsets=OPTION_E_UNSETS + +run_prog ../sleep 0 +run_strace -qqq -e signal=none -e trace=execve -v \ + -E option_E_mod=OPTION_E_NEW \ + -E option_E_unset \ + -E option_E_missing \ + $args +match_grep + +run_prog ../sleep 0 +run_strace --quiet=all --signal=none --trace=execve --no-abbrev \ + --env=option_E_mod=OPTION_E_NEW \ + --env=option_E_unset \ + --env=option_E_missing \ + $args +match_grep diff --git a/tests-mx32/strace-E.test b/tests-mx32/strace-E.test index 82b95df5..b0bebe1e 100755 --- a/tests-mx32/strace-E.test +++ b/tests-mx32/strace-E.test @@ -2,7 +2,7 @@ # # Check -E option. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -12,3 +12,7 @@ run_prog ../sleep 0 > /dev/null run_strace -E option_E_var=OPTION_E_VAL -v $args match_grep + +run_prog ../sleep 0 > /dev/null +run_strace --env=option_E_var=OPTION_E_VAL --no-abbrev $args +match_grep diff --git a/tests-mx32/strace-S.test b/tests-mx32/strace-S.test index 4b5be6d9..fcea4185 100755 --- a/tests-mx32/strace-S.test +++ b/tests-mx32/strace-S.test @@ -2,7 +2,7 @@ # # Check -S option. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -18,7 +18,7 @@ test_c() sortopts="$1"; shift sedexpr="$1"; shift - run_strace -c -w -S "$sortby" ../readv > /dev/null + run_strace -c -w $sortby ../readv > /dev/null sed -r -n -e "$sedexpr" < "$LOG" > "$OUT" [ -s "$OUT" ] || @@ -31,5 +31,31 @@ test_c() } c='[[:space:]]+([^[:space:]]+)' -test_c calls '-n -r' '/^[[:space:]]+[0-9]/ s/^'"$c$c$c$c"'[[:space:]].*/\4/p' -test_c name '' '/^[[:space:]]+[0-9]/ s/^'"$c$c$c$c"'([[:space:]]+[0-9]+)?'"$c"'$/\6/p' +for s in '' '-S time' --summary-sort-by=time_total '-S total_time'; do + test_c "$s" '-n -r' \ + 's/^[[:space:]]+([0-9]+)[.,]([0-9]+)[[:space:]].*/\1\t\2/p' +done +for s in '-S avg_time' --summary-sort-by=time_avg; do + test_c "$s" '-n -r' \ + '/^[[:space:]]+[0-9]/ s/^'"$c$c$c$c"'[[:space:]].*/\3/p' +done +for s in '-S calls' --summary-sort-by=count; do + test_c "$s" '-n -r' \ + '/^[[:space:]]+[0-9]/ s/^'"$c$c$c$c"'[[:space:]].*/\4/p' +done +for s in '-S name' --summary-sort-by=syscall '-S syscall_name'; do + test_c "$s" '' \ + '/^[[:space:]]+[0-9]/ s/^'"$c$c$c$c"'([[:space:]]+[0-9]+)?'"$c"'$/\6/p' +done +for s in '-S error' --summary-sort-by=errors; do + test_c "$s" '-n -r' \ + '/^[[:space:]]+[0-9]/ s/^'"$c$c$c$c"'([[:space:]]+([0-9]+))?'"$c"'$/\6/p' +done +for s in '--summary-columns=time,time-max,name -S max_time' '-U time-percent,max_time,syscall_name --summary-sort-by=longest'; do + test_c "$s" '-n -r' \ + '/^[[:space:]]+[0-9]/ s/^'"$c$c"'[[:space:]].*/\2/p' +done +for s in '--summary-columns=time,time_min,name -S min-time' '-U time_percent,min_time,syscall-name --summary-sort-by=shortest'; do + test_c "$s" '-n -r' \ + '/^[[:space:]]+[0-9]/ s/^'"$c$c"'[[:space:]].*/\2/p' +done diff --git a/tests-mx32/strace-T.test b/tests-mx32/strace-T.test index 7c3136b7..adca3e87 100755 --- a/tests-mx32/strace-T.test +++ b/tests-mx32/strace-T.test @@ -2,13 +2,15 @@ # # Check -T option. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" +T_opt="${1:--T}" + run_prog ../sleep 0 -run_strace -a24 -T -enanosleep ../sleep 1 +run_strace -a24 "${T_opt}" -enanosleep ../sleep 1 match_grep diff --git a/tests-mx32/strace-V.test b/tests-mx32/strace-V.test index a0274c28..30f10808 100755 --- a/tests-mx32/strace-V.test +++ b/tests-mx32/strace-V.test @@ -6,51 +6,30 @@ run_prog_skip_if_failed date +%Y > /dev/null year="$(date +%Y)" -run_strace -V > "$LOG" +run_strace -V > "$OUT" +run_strace --version > "$LOG" +match_diff "$LOG" "$OUT" '-V and --version output mismatch' -getstr() -{ - sed -r -n 's/#define[[:space:]]*'"$1"'[[:space:]]*"([^"]*)".*/\1/p' \ - ../../config.h -} - -# getoption OPTION YES_STRING [NO_STRING] -# -# Returns YES_STRING in case OPTION is enabled (present in config.h and has -# a non-zero numeric value). Otherwise, NO_STRING (or empty string, if not -# specified) is returned. -getoption() -{ - local opt - opt=$(sed -r -n 's/#define[[:space:]]*'"$1"'[[:space:]]*([0-9]+)$/\1/p' \ - ../../config.h) - if [ -n "$opt" -a "$opt" -ne 0 ]; then - printf "%s" "$2" - else - printf "%s" "${3-}" - fi -} - -config_year=$(getstr COPYRIGHT_YEAR) +config_year=$(get_config_str COPYRIGHT_YEAR) [ "$year" -ge "$config_year" ] && [ "$config_year" -ge 2017 ] || { echo >&2 "The year derived from config.h (${config_year}) does not pass sanity checks." exit 1 } -option_unwind=$(getoption ENABLE_STACKTRACE \ - " stack-trace=$(getstr USE_UNWINDER)") -option_demangle=$(getoption USE_DEMANGLE " stack-demangle") +option_unwind=$(get_config_option ENABLE_STACKTRACE \ + " stack-trace=$(get_config_str USE_UNWINDER)") +option_demangle=$(get_config_option USE_DEMANGLE " stack-demangle") option_m32= option_mx32= case "$STRACE_NATIVE_ARCH" in x86_64) - option_m32=$(getoption HAVE_M32_MPERS ' m32-mpers' ' no-m32-mpers') - option_mx32=$(getoption HAVE_MX32_MPERS ' mx32-mpers' ' no-mx32-mpers') + option_m32=$(get_config_option HAVE_M32_MPERS ' m32-mpers' ' no-m32-mpers') + option_mx32=$(get_config_option HAVE_MX32_MPERS ' mx32-mpers' ' no-mx32-mpers') ;; -aarch64|powerpc64|riscv|s390x|sparc64|tile|x32) - option_m32=$(getoption HAVE_M32_MPERS ' m32-mpers' ' no-m32-mpers') +aarch64|powerpc64|s390x|sparc64|tile|x32) + option_m32=$(get_config_option HAVE_M32_MPERS ' m32-mpers' ' no-m32-mpers') ;; esac @@ -58,12 +37,12 @@ features="${option_unwind}${option_demangle}${option_m32}${option_mx32}" [ -n "$features" ] || features=" (none)" cat > "$EXP" << __EOF__ -$(getstr PACKAGE_NAME) -- version $(getstr PACKAGE_VERSION) -Copyright (c) 1991-${config_year} The strace developers <$(getstr PACKAGE_URL)>. +$(get_config_str PACKAGE_NAME) -- version $(get_config_str PACKAGE_VERSION) +Copyright (c) 1991-${config_year} The strace developers <$(get_config_str PACKAGE_URL)>. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Optional features enabled:${features} __EOF__ -match_diff "$LOG" "$EXP" +match_diff "$OUT" "$EXP" diff --git a/tests-mx32/strace-ff.test b/tests-mx32/strace-ff.test index 429549f2..9011bdd8 100755 --- a/tests-mx32/strace-ff.test +++ b/tests-mx32/strace-ff.test @@ -1,17 +1,21 @@ -#!/bin/sh +#!/bin/sh -efu # # Check -ff option. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" +ff_opt="${*:--ff}" + run_prog_skip_if_failed \ kill -0 $$ +run_prog ../sleep 0 + ../set_ptracer_any ../sleep 3 > "$OUT" & tracee_pid=$! @@ -20,12 +24,13 @@ while ! [ -s "$OUT" ]; do fail_ 'set_ptracer_any sleep failed' done -run_strace -a14 -eexit_group -ff -p $tracee_pid +run_strace --quiet=personality -a14 -eexit_group ${ff_opt} -p $tracee_pid # check that output matches match_diff "$LOG.$tracee_pid" # check that no other output files have been created +set +f set -- "$LOG".* [ "$LOG.$tracee_pid" = "$*" ] || fail_ "too many output files: $*" diff --git a/tests-mx32/strace-k-p.expected b/tests-mx32/strace-k-p.expected new file mode 100644 index 00000000..e40c339e --- /dev/null +++ b/tests-mx32/strace-k-p.expected @@ -0,0 +1,2 @@ +^chdir .*(__kernel_vsyscaln )?(__)?chdir f3 f2 f1 f0 main +^SIGURG .*(__kernel_vsyscaln )?(__)?kill f3 f2 f1 f0 main diff --git a/tests-mx32/strace-k-p.test b/tests-mx32/strace-k-p.test new file mode 100755 index 00000000..fac484f3 --- /dev/null +++ b/tests-mx32/strace-k-p.test @@ -0,0 +1,13 @@ +#!/bin/sh +# +# Check strace -k for attached tracees. +# +# Copyright (c) 2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +ATTACH_MODE=1 +test_prog=../stack-fcall-attach + +. "${srcdir=.}"/strace-k.test diff --git a/tests-mx32/strace-k.test b/tests-mx32/strace-k.test index 7a323431..51e8cb2a 100755 --- a/tests-mx32/strace-k.test +++ b/tests-mx32/strace-k.test @@ -4,23 +4,49 @@ # # Copyright (c) 2014 Masatake YAMATO # Copyright (c) 2014-2016 Dmitry V. Levin -# Copyright (c) 2014-2019 The strace developers. +# Copyright (c) 2014-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" +: "${ATTACH_MODE=0}" + # strace -k is implemented using /proc/$pid/maps [ -f /proc/self/maps ] || framework_skip_ '/proc/self/maps is not available' check_prog grep +check_prog readlink check_prog sed check_prog tr +path_to_sed="$(command -v sed)" +if [ -x "$path_to_sed" ] && + path_to_sed="$(readlink -ev -- "$path_to_sed")"; then + "$path_to_sed" -n 's/^[^/]\+[[:space:]]\(\/.*\)$/\1/p' /proc/self/maps | + grep -F -x -e "$path_to_sed" > /dev/null || { + cat >&2 /proc/self/maps + framework_skip_ '/proc/self/maps is invalid' + } +fi + run_prog "${test_prog=../stack-fcall}" -run_strace -e chdir -k $args + +if [ "x${ATTACH_MODE}" = "x1" ]; then + ../set_ptracer_any "${test_prog}" >> "$EXP" & + tracee_pid=$! + + while ! [ -s "$EXP" ]; do + kill -0 "$tracee_pid" 2> /dev/null || + fail_ 'set_ptracer_any failed' + done + + run_strace --trace=chdir --stack-trace --attach="$tracee_pid" +else + run_strace -e chdir -k $args +fi expected="$srcdir/$NAME.expected" awk ' diff --git a/tests-mx32/strace-n.c b/tests-mx32/strace-n.c new file mode 100644 index 00000000..452bd4ca --- /dev/null +++ b/tests-mx32/strace-n.c @@ -0,0 +1,40 @@ +/* + * Test strace's -n option. + * + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#include +#include +#include + +#define SC_listen 4 + +int +main(void) +{ + int rc; + +#if defined __NR_socketcall + if (syscall(__NR_socketcall, 0L, 0L, 0L, 0L, 0L) < 0 + && EINVAL == errno) + { + const long args[] = { 0, 0 }; + rc = syscall(__NR_socketcall, SC_listen, args); + printf("[%4u] listen(0, 0) = %s\n", __NR_socketcall, sprintrc(rc)); + } +#endif + +#if defined __NR_listen + rc = syscall(__NR_listen, 0, 0); + printf("[%4u] listen(0, 0) = %s\n", __NR_listen, sprintrc(rc)); +#endif + + return 0; +} diff --git a/tests-mx32/strace-n.gen.test b/tests-mx32/strace-n.gen.test new file mode 100755 index 00000000..023380f3 --- /dev/null +++ b/tests-mx32/strace-n.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace-n -e trace=listen -n -qq -a 12); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -e trace=listen -n -qq -a 12 diff --git a/tests-mx32/strace-r.test b/tests-mx32/strace-r.test index 936f4a15..82997375 100755 --- a/tests-mx32/strace-r.test +++ b/tests-mx32/strace-r.test @@ -2,13 +2,15 @@ # # Check -r option. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" +r_opt="${1:--r}" + run_prog ../sleep 0 -run_strace -r -eexecve ../sleep 1 +run_strace "${r_opt}" -eexecve ../sleep 1 match_grep diff --git a/tests-mx32/strace-t.test b/tests-mx32/strace-t.test index a06408db..4d79a2d9 100755 --- a/tests-mx32/strace-t.test +++ b/tests-mx32/strace-t.test @@ -2,19 +2,21 @@ # # Check -t option. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" +opts="${*:--t}" + run_prog_skip_if_failed date +%s > "$LOG" run_prog_skip_if_failed date +%T --date "@$(cat "$LOG")" > /dev/null run_prog ../sleep 0 s0="$(date +%s)" -run_strace -t -eexecve $args +run_strace $opts -eexecve $args s1="$(date +%s)" s="$s0" diff --git a/tests-mx32/strace-tt.test b/tests-mx32/strace-tt.test index 4d1331b1..17d87d67 100755 --- a/tests-mx32/strace-tt.test +++ b/tests-mx32/strace-tt.test @@ -2,19 +2,23 @@ # # Check -tt option. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" +precision="${1:-6}" +[ x0 = "x$#" ] || shift +opts="${*:--tt}" + run_prog_skip_if_failed date +%s > "$LOG" run_prog_skip_if_failed date +%T --date "@$(cat "$LOG")" > /dev/null run_prog ../sleep 0 s0="$(date +%s)" -run_strace -tt -eexecve $args +run_strace $opts -eexecve $args s1="$(date +%s)" s="$s0" @@ -26,7 +30,7 @@ while [ "$s" -le "$s1" ]; do done cat > "$EXP" << __EOF__ -($t_reg)\\.[[:digit:]]{6} execve\\("\\.\\./sleep", \\["\\.\\./sleep", "0"\\], 0x[[:xdigit:]]* /\\* [[:digit:]]* vars \\*/\\) = 0 +($t_reg)\\.[[:digit:]]{${precision}} execve\\("\\.\\./sleep", \\["\\.\\./sleep", "0"\\], 0x[[:xdigit:]]* /\\* [[:digit:]]* vars \\*/\\) = 0 __EOF__ match_grep "$LOG" "$EXP" diff --git a/tests-mx32/strace-ttt.test b/tests-mx32/strace-ttt.test index 089ff064..2578d874 100755 --- a/tests-mx32/strace-ttt.test +++ b/tests-mx32/strace-ttt.test @@ -2,18 +2,22 @@ # # Check -ttt option. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" +precision="${1:-6}" +[ x0 = "x$#" ] || shift +opts="${*:--ttt}" + run_prog_skip_if_failed date +%s > /dev/null run_prog ../sleep 0 s0="$(date +%s)" -run_strace -ttt -eexecve $args +run_strace $opts -eexecve $args s1="$(date +%s)" s="$s0" @@ -23,8 +27,14 @@ while [ "$s" -le "$s1" ]; do s=$(($s + 1)) done +if [ x0 = "x${precision}" ]; then + subsec_re="" +else + subsec_re="\\.[[:digit:]]{${precision}}" +fi + cat > "$EXP" << __EOF__ -($t_reg)\\.[[:digit:]]{6} execve\\("\\.\\./sleep", \\["\\.\\./sleep", "0"\\], 0x[[:xdigit:]]* /\\* [[:digit:]]+ vars \\*/\\) = 0 +($t_reg)${subsec_re} execve\\("\\.\\./sleep", \\["\\.\\./sleep", "0"\\], 0x[[:xdigit:]]* /\\* [[:digit:]]+ vars \\*/\\) = 0 __EOF__ match_grep "$LOG" "$EXP" diff --git a/tests-mx32/strace-x.c b/tests-mx32/strace-x.c new file mode 100644 index 00000000..5d537e97 --- /dev/null +++ b/tests-mx32/strace-x.c @@ -0,0 +1,82 @@ +/* + * Test strace's -x option. + * + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#include +#include + +#ifndef STRACE_XX +# define STRACE_XX 0 +#endif + +#if STRACE_XX +# define XOUT(x_, xx_) xx_ +#else +# define XOUT(x_, xx_) x_ +#endif + +int +main(void) +{ + static const struct { + const char *path; + const char *out; + } test_vecs[] = { + { "test", XOUT("test", "\\x74\\x65\\x73\\x74") }, + { "\t\n\v\f\r hi~", XOUT("\\t\\n\\v\\f\\r hi~", + "\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\x68\\x69\\x7e") }, + { "\t\n\v\f\r\16 hi~", XOUT( + "\\x09\\x0a\\x0b\\x0c\\x0d\\x0e\\x20\\x68\\x69\\x7e", + "\\x09\\x0a\\x0b\\x0c\\x0d\\x0e\\x20\\x68\\x69\\x7e") }, + { "\10\t\n\v\f\r hi~", XOUT( + "\\x08\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\x68\\x69\\x7e", + "\\x08\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\x68\\x69\\x7e") }, + { "\t\n\v\f\r\37 hi~", XOUT( + "\\x09\\x0a\\x0b\\x0c\\x0d\\x1f\\x20\\x68\\x69\\x7e", + "\\x09\\x0a\\x0b\\x0c\\x0d\\x1f\\x20\\x68\\x69\\x7e") }, + { "\t\n\v\f\r hi~\177", XOUT( + "\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\x68\\x69\\x7e\\x7f", + "\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\x68\\x69\\x7e\\x7f") }, + { "\t\n\v\f\r hi~\222", XOUT( + "\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\x68\\x69\\x7e\\x92", + "\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\x68\\x69\\x7e\\x92") }, + { "\t\n\v\f\r hi~\377", XOUT( + "\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\x68\\x69\\x7e\\xff", + "\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\x68\\x69\\x7e\\xff") }, + }; + static char path[] = " "; + + const char *rc_str; + + for (size_t i = 0; i < ARRAY_SIZE(test_vecs); i++) { + rc_str = sprintrc(chdir(test_vecs[i].path)); + printf("chdir(\"%s\") = %s\n", test_vecs[i].out, rc_str); + } + + for (unsigned char c = 1; c < 255; c++) { + path[1] = c; + rc_str = sprintrc(chdir(path)); + + printf("chdir("); +#if STRACE_XX + print_quoted_hex(path, sizeof(path) - 1); +#else + if (((c < ' ') || (c >= 0x7f)) && (c != '\t') && (c != '\n') && + (c != '\v') && (c != '\f') && (c != '\r')) + print_quoted_hex(path, sizeof(path) - 1); + else + print_quoted_string(path); +#endif + printf(") = %s\n", rc_str); + } + + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests-mx32/strace-x.gen.test b/tests-mx32/strace-x.gen.test new file mode 100755 index 00000000..231f34c6 --- /dev/null +++ b/tests-mx32/strace-x.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace-x -e trace=chdir -x -a 12); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -e trace=chdir -x -a 12 diff --git a/tests-mx32/strace-xx.c b/tests-mx32/strace-xx.c new file mode 100644 index 00000000..af37c30c --- /dev/null +++ b/tests-mx32/strace-xx.c @@ -0,0 +1,2 @@ +#define STRACE_XX 1 +#include "strace-x.c" diff --git a/tests-mx32/strace-xx.gen.test b/tests-mx32/strace-xx.gen.test new file mode 100755 index 00000000..3deb88cb --- /dev/null +++ b/tests-mx32/strace-xx.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace-xx -e trace=chdir -xx -a 18); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -e trace=chdir -xx -a 18 diff --git a/tests-mx32/swap.c b/tests-mx32/swap.c index a854182e..4b032207 100644 --- a/tests-mx32/swap.c +++ b/tests-mx32/swap.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_swapon && defined __NR_swapoff diff --git a/tests-mx32/sxetmask.c b/tests-mx32/sxetmask.c index 3ad2368e..3b66f5a6 100644 --- a/tests-mx32/sxetmask.c +++ b/tests-mx32/sxetmask.c @@ -2,13 +2,14 @@ * Check decoding of sgetmask and ssetmask syscalls. * * Copyright (c) 2017-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_sgetmask && defined __NR_ssetmask diff --git a/tests-mx32/symlink.c b/tests-mx32/symlink.c index 8283a8e2..c47ad842 100644 --- a/tests-mx32/symlink.c +++ b/tests-mx32/symlink.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_symlink diff --git a/tests-mx32/symlinkat.c b/tests-mx32/symlinkat.c index be36b941..d2d1729b 100644 --- a/tests-mx32/symlinkat.c +++ b/tests-mx32/symlinkat.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_symlinkat diff --git a/tests-mx32/sync.c b/tests-mx32/sync.c index e0b654d0..db7924be 100644 --- a/tests-mx32/sync.c +++ b/tests-mx32/sync.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sync diff --git a/tests-mx32/sync_file_range.c b/tests-mx32/sync_file_range.c index 9eba7815..0f6d1e3f 100644 --- a/tests-mx32/sync_file_range.c +++ b/tests-mx32/sync_file_range.c @@ -2,6 +2,7 @@ * Check decoding of sync_file_range syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,7 +10,7 @@ #include "tests.h" #include -#include +#include "scno.h" #if defined HAVE_SYNC_FILE_RANGE && defined __NR_sync_file_range diff --git a/tests-mx32/sync_file_range2.c b/tests-mx32/sync_file_range2.c index 03af1005..d914b289 100644 --- a/tests-mx32/sync_file_range2.c +++ b/tests-mx32/sync_file_range2.c @@ -2,6 +2,7 @@ * Check decoding of sync_file_range2 syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,7 +10,7 @@ #include "tests.h" #include -#include +#include "scno.h" #if defined HAVE_SYNC_FILE_RANGE && defined __NR_sync_file_range2 diff --git a/tests-mx32/syntax.sh b/tests-mx32/syntax.sh index 2e30e6a1..da43d656 100644 --- a/tests-mx32/syntax.sh +++ b/tests-mx32/syntax.sh @@ -3,57 +3,76 @@ # Define syntax testing primitives. # # Copyright (c) 2016 Dmitry V. Levin -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" +log_sfx() +{ + printf "%.128s" "$*" | tr -c '0-9A-Za-z-=,' '_' +} + check_exit_status_and_stderr() { - $STRACE "$@" 2> "$LOG" && - dump_log_and_fail_with \ - "strace $* failed to handle the error properly" - match_diff "$LOG" "$EXP" || - dump_log_and_fail_with \ - "strace $* failed to print expected diagnostics" + local sfx + sfx="$1"; shift + $STRACE "$@" 2> "$LOG.$sfx" && { + cat "$LOG.$sfx" >&2 + fail_ "strace $* failed to handle the error properly" + } + match_diff "$LOG.$sfx" "$EXP.$sfx" \ + "strace $* failed to print expected diagnostics" } check_exit_status_and_stderr_using_grep() { - $STRACE "$@" 2> "$LOG" && - dump_log_and_fail_with \ - "strace $* failed to handle the error properly" - match_grep "$LOG" "$EXP" || - dump_log_and_fail_with \ - "strace $* failed to print expected diagnostics" + local sfx + sfx="$1"; shift + $STRACE "$@" 2> "$LOG.$sfx" && { + cat "$LOG.$sfx" >&2 + fail_ "strace $* failed to handle the error properly" + } + match_grep "$LOG.$sfx" "$EXP.$sfx" \ + "strace $* failed to print expected diagnostics" } check_e() { - local pattern="$1"; shift - cat > "$EXP" << __EOF__ + local pattern sfx + pattern="$1"; shift + sfx="$(log_sfx "$*")" + cat > "$EXP.$sfx" << __EOF__ $STRACE_EXE: $pattern __EOF__ - check_exit_status_and_stderr "$@" + check_exit_status_and_stderr "$sfx" "$@" } check_e_using_grep() { - local pattern="$1"; shift - cat > "$EXP" << __EOF__ + local pattern sfx + pattern="$1"; shift + sfx="$(log_sfx "$*")" + cat > "$EXP.$sfx" << __EOF__ $STRACE_EXE: $pattern __EOF__ - check_exit_status_and_stderr_using_grep "$@" + check_exit_status_and_stderr_using_grep "$sfx" "$@" } check_h() { - local pattern="$1"; shift - cat > "$EXP" << __EOF__ -$STRACE_EXE: $pattern -Try '$STRACE_EXE -h' for more information. -__EOF__ - check_exit_status_and_stderr "$@" + local patterns sfx + patterns="$1"; shift + sfx="$(log_sfx "$*")" + { + local pattern + printf '%s\n' "$patterns" | + while read -r pattern; do + printf '%s: %s\n' "$STRACE_EXE" "$pattern" + done + printf "Try '%s -h' for more information.\\n" "$STRACE_EXE" + } > "$EXP.$sfx" + check_exit_status_and_stderr "$sfx" "$@" } diff --git a/tests-mx32/syslog-success.c b/tests-mx32/syslog-success.c new file mode 100644 index 00000000..4374de6f --- /dev/null +++ b/tests-mx32/syslog-success.c @@ -0,0 +1,2 @@ +#define RETVAL_INJECTED 1 +#include "syslog.c" diff --git a/tests-mx32/syslog-success.test b/tests-mx32/syslog-success.test new file mode 100755 index 00000000..adc916e4 --- /dev/null +++ b/tests-mx32/syslog-success.test @@ -0,0 +1,11 @@ +#!/bin/sh -efu + +. "${srcdir=.}/scno_tampering.sh" + +run_prog ../syslog-success 0 +for i in 0 23 42; do + run_strace -a35 -e trace=syslog -e inject=syslog:retval="${i}" \ + ../syslog-success "${i}" > "$EXP.$i" + mv "$LOG" "$LOG.$i" + match_diff "$LOG.$i" "$EXP.$i" +done diff --git a/tests-mx32/syslog.c b/tests-mx32/syslog.c index 363fdf96..a9c3c813 100644 --- a/tests-mx32/syslog.c +++ b/tests-mx32/syslog.c @@ -1,27 +1,139 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_syslog # include # include -# define SYSLOG_ACTION_READ 2 +# ifdef RETVAL_INJECTED +# define RET_SFX " (INJECTED)" +# else +# define RET_SFX "" +# endif + +bool +valid_cmd(int cmd) +{ + return cmd >= 0 && cmd <= 10; +} + +void +printstr(const char *s, int cmd, long size) +{ + if (size < 0 || !valid_cmd(cmd)) + printf("%p", s); + else if (size == 0) + printf("\"\""); + else if (size <= DEFAULT_STRLEN) + print_quoted_memory(s, size); + else { + print_quoted_memory(s, DEFAULT_STRLEN); + printf("..."); + } +} int main(void) { - const long addr = (long) 0xfacefeeddeadbeefULL; - int rc = syscall(__NR_syslog, SYSLOG_ACTION_READ, addr, -1); - printf("syslog(SYSLOG_ACTION_READ, %#lx, -1) = %d %s (%m)\n", - addr, rc, errno2name()); + static const struct cmd_str { + unsigned int cmd; + const char *str; + } no_args[] = { + { 0, "0 /* SYSLOG_ACTION_CLOSE */" }, + { 1, "1 /* SYSLOG_ACTION_OPEN */" }, + { 5, "5 /* SYSLOG_ACTION_CLEAR */" }, + { 6, "6 /* SYSLOG_ACTION_CONSOLE_OFF */" }, + { 7, "7 /* SYSLOG_ACTION_CONSOLE_ON */" }, + { 9, "9 /* SYSLOG_ACTION_SIZE_UNREAD */" }, + { 10, "10 /* SYSLOG_ACTION_SIZE_BUFFER */" }, + }; + static const struct cmd_str two_args[] = { + { 0xfeedbeef, "-17973521 /* SYSLOG_ACTION_??? */" }, + { -1U, "-1 /* SYSLOG_ACTION_??? */" }, + { 2, "2 /* SYSLOG_ACTION_READ */" }, + { 3, "3 /* SYSLOG_ACTION_READ_ALL */" }, + { 4, "4 /* SYSLOG_ACTION_READ_CLEAR */" }, + { 11, "11 /* SYSLOG_ACTION_??? */" }, + { (1U << 31) - 1, "2147483647 /* SYSLOG_ACTION_??? */" }, + }; + static const struct cmd_str levels[] = { + { 0xfeedbeef, "-17973521 /* LOGLEVEL_??? */" }, + { -1U, "-1 /* LOGLEVEL_??? */" }, + { 0, "0 /* LOGLEVEL_EMERG */" }, + { 7, "7 /* LOGLEVEL_DEBUG */" }, + { 8, "8 /* LOGLEVEL_DEBUG+1 */" }, + { 9, "9 /* LOGLEVEL_??? */" }, + { (1U << 31) - 1, "2147483647 /* LOGLEVEL_??? */" }, + }; + static const kernel_ulong_t high = + (kernel_ulong_t) 0xbadc0ded00000000ULL; + static const size_t buf_size = 64; + + const kernel_ulong_t addr = (kernel_ulong_t) 0xfacefeeddeadbeefULL; + int rc; + char *buf = tail_alloc(buf_size); + + fill_memory(buf, buf_size); + + for (size_t i = 0; i < ARRAY_SIZE(no_args); i++) { + rc = syscall(__NR_syslog, high | no_args[i].cmd, addr, -1); + printf("syslog(%s) = %s" RET_SFX "\n", + no_args[i].str, sprintrc(rc)); + } + + for (size_t i = 0; i < ARRAY_SIZE(two_args); i++) { + rc = syscall(__NR_syslog, high | two_args[i].cmd, NULL, -1); + printf("syslog(%s, NULL, -1) = %s" RET_SFX "\n", + two_args[i].str, sprintrc(rc)); + +# ifdef RETVAL_INJECTED + /* Avoid valid commands with a bogus address */ + if (!valid_cmd(two_args[i].cmd)) +# endif + { + rc = syscall(__NR_syslog, high | two_args[i].cmd, addr, + -1); + printf("syslog(%s, %#llx, -1) = %s" RET_SFX "\n", + two_args[i].str, (unsigned long long) addr, + sprintrc(rc)); + + rc = syscall(__NR_syslog, two_args[i].cmd, addr, 0); + + printf("syslog(%s, %s, 0) = %s" RET_SFX "\n", + two_args[i].str, + !rc && valid_cmd(two_args[i].cmd) + && (sizeof(kernel_ulong_t) == sizeof(void *)) + ? "\"\"" + : (sizeof(addr) == 8) + ? "0xfacefeeddeadbeef" : "0xdeadbeef", + sprintrc(rc)); + } + + rc = syscall(__NR_syslog, two_args[i].cmd, buf, buf_size); + const char *errstr = sprintrc(rc); + + printf("syslog(%s, ", two_args[i].str); + if (rc >= 0 && valid_cmd(two_args[i].cmd)) + printstr(buf, two_args[i].cmd, rc); + else + printf("%p", buf); + printf(", %zu) = %s" RET_SFX "\n", buf_size, errstr); + } + + for (size_t i = 0; i < ARRAY_SIZE(levels); i++) { + rc = syscall(__NR_syslog, high | 8, addr, levels[i].cmd); + printf("syslog(8 /* SYSLOG_ACTION_CONSOLE_LEVEL */, %#llx, %s)" + " = %s" RET_SFX "\n", + (unsigned long long) addr, levels[i].str, sprintrc(rc)); + } puts("+++ exited with 0 +++"); return 0; diff --git a/tests-mx32/syslog.gen.test b/tests-mx32/syslog.gen.test index 5707a3e2..673b0180 100755 --- a/tests-mx32/syslog.gen.test +++ b/tests-mx32/syslog.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (syslog -a36 ); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (syslog -a35 ); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a36 +run_strace_match_diff -a35 diff --git a/tests-mx32/tee.c b/tests-mx32/tee.c index 2137c351..d620bb8f 100644 --- a/tests-mx32/tee.c +++ b/tests-mx32/tee.c @@ -2,13 +2,14 @@ * This file is part of tee strace test. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_tee diff --git a/tests-mx32/termsig.test b/tests-mx32/termsig.test index d41ddf0a..2bda35fc 100755 --- a/tests-mx32/termsig.test +++ b/tests-mx32/termsig.test @@ -2,7 +2,7 @@ # # Check termination signal forwarding. # -# Copyright (c) 2017-2018 The strace developers. +# Copyright (c) 2017-2019 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -11,10 +11,18 @@ run_expect_termsig="../run_expect_termsig 15" unblock_reset_raise="../unblock_reset_raise 15" +block_reset_run="../block_reset_run 15" +orig_STRACE="$STRACE" +run_prog $run_expect_termsig $block_reset_run $unblock_reset_raise run_prog $run_expect_termsig $unblock_reset_raise -STRACE="$run_expect_termsig $STRACE" +STRACE="$run_expect_termsig $orig_STRACE" +for i in 1 2 3 4; do + run_strace -I$i -enone -esignal=none $unblock_reset_raise +done + +STRACE="$run_expect_termsig $block_reset_run $orig_STRACE" for i in 1 2 3 4; do run_strace -I$i -enone -esignal=none $unblock_reset_raise done diff --git a/tests-mx32/test_nlattr.h b/tests-mx32/test_nlattr.h index 8b8c66b8..5a97382f 100644 --- a/tests-mx32/test_nlattr.h +++ b/tests-mx32/test_nlattr.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -15,6 +15,10 @@ #include "netlink.h" #include +#ifndef PRINT_SOCK +# define PRINT_SOCK 0 +#endif + static void init_nlattr(struct nlattr *const nla, const uint16_t nla_len, @@ -37,6 +41,29 @@ print_nlattr(const unsigned int nla_len, const char *const nla_type, bool add_da add_data ? "[" : "", nla_len, nla_type); } +static void +print_sockfd(int sockfd, const char *pfx, const char *sfx) +{ +#if PRINT_SOCK + static int fd = -1; + static unsigned long inode; + + if (sockfd < 0) { + printf("%s%d%s", pfx, sockfd, sfx); + return; + } + + if (sockfd != fd) { + fd = sockfd; + inode = inode_of_sockfd(fd); + } + + printf("%s%d%s", pfx, sockfd, inode, sfx); +#else + printf("%s%d%s", pfx, sockfd, sfx); +#endif +} + #define TEST_NLATTR_EX_(fd_, nlh0_, hdrlen_, \ init_msg_, print_msg_, \ nla_type_, nla_type_str_, \ @@ -60,7 +87,7 @@ print_nlattr(const unsigned int nla_len, const char *const nla_type, bool add_da sprintrc(sendto((fd_), nlh, msg_len, \ MSG_DONTWAIT, NULL, 0)); \ \ - printf("sendto(%d, {", (fd_)); \ + print_sockfd((fd_), "sendto(", ", {"); \ (print_msg_)(msg_len); \ print_nlattr(nla_len, (nla_type_str_), \ (nla_total_len_) > (nla_data_len_)); \ @@ -96,11 +123,9 @@ print_nlattr(const unsigned int nla_len, const char *const nla_type, bool add_da #define TEST_NLATTR_OBJECT_EX_(fd_, nlh0_, hdrlen_, \ init_msg_, print_msg_, \ nla_type_, nla_type_str_, \ - pattern_, obj_, fallback_func, ...) \ + pattern_, obj_, minsz_, fallback_func, ...) \ do { \ - const unsigned int plen = \ - sizeof(obj_) - 1 > DEFAULT_STRLEN \ - ? DEFAULT_STRLEN : (int) sizeof(obj_) - 1; \ + const unsigned int plen = MIN((minsz_) - 1, DEFAULT_STRLEN); \ /* len < sizeof(obj_) */ \ if (plen > 0) \ TEST_NLATTR_((fd_), (nlh0_), (hdrlen_), \ @@ -113,7 +138,7 @@ print_nlattr(const unsigned int nla_len, const char *const nla_type, bool add_da (init_msg_), (print_msg_), \ (nla_type_), (nla_type_str_), \ sizeof(obj_), \ - (pattern_), sizeof(obj_) - 1, \ + (pattern_), (minsz_) - 1, \ printf("%p", \ RTA_DATA(NLMSG_ATTR(nlh, (hdrlen_))))); \ /* sizeof(obj_) */ \ @@ -128,12 +153,12 @@ print_nlattr(const unsigned int nla_len, const char *const nla_type, bool add_da #define TEST_NLATTR_OBJECT_EX(fd_, nlh0_, hdrlen_, \ init_msg_, print_msg_, \ nla_type_, \ - pattern_, obj_, fallback_func, ...) \ + pattern_, obj_, minsz_, fallback_func, ...) \ TEST_NLATTR_OBJECT_EX_((fd_), (nlh0_), (hdrlen_), \ (init_msg_), (print_msg_), \ (nla_type_), #nla_type_, \ - (pattern_), (obj_), (fallback_func), \ - __VA_ARGS__) + (pattern_), (obj_), (minsz_), \ + (fallback_func), __VA_ARGS__) #define TEST_NLATTR_OBJECT(fd_, nlh0_, hdrlen_, \ init_msg_, print_msg_, \ @@ -141,8 +166,17 @@ print_nlattr(const unsigned int nla_len, const char *const nla_type, bool add_da TEST_NLATTR_OBJECT_EX_((fd_), (nlh0_), (hdrlen_), \ (init_msg_), (print_msg_), \ (nla_type_), #nla_type_, \ - (pattern_), (obj_), print_quoted_hex, \ - __VA_ARGS__) + (pattern_), (obj_), sizeof(obj_), \ + print_quoted_hex, __VA_ARGS__) + +#define TEST_NLATTR_OBJECT_MINSZ(fd_, nlh0_, hdrlen_, \ + init_msg_, print_msg_, \ + nla_type_, pattern_, obj_, minsz_, ...) \ + TEST_NLATTR_OBJECT_EX_((fd_), (nlh0_), (hdrlen_), \ + (init_msg_), (print_msg_), \ + (nla_type_), #nla_type_, \ + (pattern_), (obj_), (minsz_), \ + print_quoted_hex, __VA_ARGS__) #define TEST_NLATTR_ARRAY(fd_, nlh0_, hdrlen_, \ init_msg_, print_msg_, \ diff --git a/tests-mx32/test_printstrn.c b/tests-mx32/test_printstrn.c index 09c438d1..9e9a543c 100644 --- a/tests-mx32/test_printstrn.c +++ b/tests-mx32/test_printstrn.c @@ -2,7 +2,7 @@ * Test printstrn/umoven. * * Copyright (c) 2015-2017 Dmitry V. Levin - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -13,7 +13,6 @@ #include #include #include -#include #include "scno.h" #include "test_ucopy.h" diff --git a/tests-mx32/test_ucopy.c b/tests-mx32/test_ucopy.c index 78d393b2..0574c73c 100644 --- a/tests-mx32/test_ucopy.c +++ b/tests-mx32/test_ucopy.c @@ -2,7 +2,7 @@ * Test whether process_vm_readv and PTRACE_PEEKDATA work. * * Copyright (c) 2016-2017 Dmitry V. Levin - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -22,7 +22,6 @@ #ifndef HAVE_PROCESS_VM_READV -# include # include "scno.h" static ssize_t strace_process_vm_readv(pid_t pid, diff --git a/tests-mx32/tests.h b/tests-mx32/tests.h index 1a1b02c3..66c7f0e6 100644 --- a/tests-mx32/tests.h +++ b/tests-mx32/tests.h @@ -1,6 +1,6 @@ /* * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -24,6 +24,7 @@ # endif # include +# include # include # include "kernel_types.h" # include "gcc_compat.h" @@ -50,11 +51,72 @@ # define XLAT_VERBOSE 0 # endif + + +# if XLAT_RAW +# define XLAT_KNOWN(val_, str_) STRINGIFY_VAL(val_) +# define XLAT_UNKNOWN(val_, dflt_) STRINGIFY_VAL(val_) + +# define XLAT_FMT "%#x" +# define XLAT_ARGS(a_) (a_) +# define XLAT_SEL(v_, s_) v_ + +# define ABBR(s_) "" +# define RAW(s_) s_ +# define VERB(s_) "" +# define NABBR(s_) s_ +# define NRAW(s_) "" +# define NVERB(s_) s_ +# elif XLAT_VERBOSE +# define XLAT_KNOWN(val_, str_) STRINGIFY_VAL(val_) " /* " str_ " */" +# define XLAT_UNKNOWN(val_, dflt_) STRINGIFY_VAL(val_) " /* " dflt_ " */" + +# define XLAT_FMT "%#x /* %s */" +# define XLAT_ARGS(a_) a_, #a_ +# define XLAT_SEL(v_, s_) v_, s_ + +# define ABBR(s_) "" +# define RAW(s_) "" +# define VERB(s_) s_ +# define NABBR(s_) s_ +# define NRAW(s_) s_ +# define NVERB(s_) "" +# else /* !XLAT_RAW && !XLAT_VERBOSE */ +# define XLAT_KNOWN(val_, str_) str_ +# define XLAT_UNKNOWN(val_, dflt_) STRINGIFY_VAL(val_) " /* " dflt_ " */" + +# define XLAT_FMT "%s" +# define XLAT_ARGS(a_) #a_ +# define XLAT_SEL(v_, s_) s_ + +# define ABBR(s_) s_ +# define RAW(s_) "" +# define VERB(s_) "" +# define NABBR(s_) "" +# define NRAW(s_) s_ +# define NVERB(s_) s_ +# endif /* XLAT_RAW, XLAT_VERBOSE */ + +# define XLAT_STR(v_) sprintxlat(#v_, v_, NULL) + +# define ARG_XLAT_KNOWN(val_, str_) val_, XLAT_KNOWN(val_, str_) +# define ARG_XLAT_UNKNOWN(val_, str_) val_, XLAT_UNKNOWN(val_, str_) + # ifndef DEFAULT_STRLEN /* Default maximum # of bytes printed in printstr et al. */ # define DEFAULT_STRLEN 32 # endif +struct strval32 { + uint32_t val; + const char *str; +}; + +struct strval64 { + uint64_t val; + const char *str; +}; + /* Cached sysconf(_SC_PAGESIZE). */ size_t get_page_size(void); @@ -86,6 +148,12 @@ void perror_msg_and_skip(const char *, ...) /* Stat the specified file and skip the test if the stat call failed. */ void skip_if_unavailable(const char *); +/* + * Obtain an exclusive lock on dirname(path_name)/lock_name file + * using open and flock. + */ +int lock_file_by_dirname(const char *path_name, const char *lock_name); + /* * Allocate memory that ends on the page boundary. * Pages allocated by this call are preceded by an unmapped page @@ -116,15 +184,26 @@ void *tail_memdup(const void *, const size_t) # define TAIL_ALLOC_OBJECT_VAR_PTR(type_name, type_ptr) \ type_name *type_ptr = tail_alloc(sizeof(*type_ptr)) -/* +/** * Fill memory (pointed by ptr, having size bytes) with different bytes (with * values starting with start and resetting every period) in order to catch * sign, byte order and/or alignment errors. */ void fill_memory_ex(void *ptr, size_t size, unsigned char start, unsigned int period); -/* Shortcut for fill_memory_ex(ptr, size, 0x80, 0x80) */ +/** Shortcut for fill_memory_ex(ptr, size, 0x80, 0x80) */ void fill_memory(void *ptr, size_t size); +/** Variant of fill_memory_ex for arrays of 16-bit (2-byte) values. */ +void fill_memory16_ex(void *ptr, size_t size, uint16_t start, + unsigned int period); +/** Shortcut for fill_memory16_ex(ptr, size, 0x80c0, 0x8000) */ +void fill_memory16(void *ptr, size_t size); +/** Variant of fill_memory_ex for arrays of 32-bit (4-byte) values. */ +void fill_memory32_ex(void *ptr, size_t size, uint32_t start, + unsigned int period); +/** Shortcut for fill_memory32_ex(ptr, size, 0x80a0c0e0, 0x80000000) */ +void fill_memory32(void *ptr, size_t size); + /* Close stdin, move stdout to a non-standard descriptor, and print. */ void tprintf(const char *, ...) @@ -202,12 +281,49 @@ struct xlat; int printflags(const struct xlat *, const unsigned long long, const char *); /* Print constant in symbolic form according to xlat table. */ -int printxval(const struct xlat *, const unsigned long long, const char *); +int printxval_abbrev(const struct xlat *, const unsigned long long, + const char *); +int printxval_raw(const struct xlat *, const unsigned long long, const char *); +int printxval_verbose(const struct xlat *, const unsigned long long, + const char *); + +/* Print constant in symbolic form according to xlat table. */ +const char *sprintxlat_abbrev(const char *, const unsigned long long, + const char *); +const char *sprintxlat_raw(const char *, const unsigned long long, + const char *); +const char *sprintxlat_verbose(const char *, const unsigned long long, + const char *); + +/* Print constant in symbolic form according to xlat table. */ +const char *sprintxval_abbrev(const struct xlat *, const unsigned long long, + const char *); +const char *sprintxval_raw(const struct xlat *, const unsigned long long, + const char *); +const char *sprintxval_verbose(const struct xlat *, const unsigned long long, + const char *); + +# if XLAT_RAW +# define printxval printxval_raw +# define sprintxlat sprintxlat_raw +# define sprintxval sprintxval_raw +# elif XLAT_VERBOSE +# define printxval printxval_verbose +# define sprintxlat sprintxlat_verbose +# define sprintxval sprintxval_verbose +# else +# define printxval printxval_abbrev +# define sprintxlat sprintxlat_abbrev +# define sprintxval sprintxval_abbrev +# endif /* Invoke a socket syscall, either directly or via __NR_socketcall. */ int socketcall(const int nr, const int call, long a1, long a2, long a3, long a4, long a5); +/* Call chdir and print strace output depending on flags. */ +void test_status_chdir(const char *dir, bool print_success, bool print_fail); + /* Wrappers for recvmmsg and sendmmsg syscalls. */ struct mmsghdr; struct timespec; @@ -218,6 +334,9 @@ int send_mmsg(int, struct mmsghdr *, unsigned int, unsigned int); int create_nl_socket_ext(int proto, const char *name); # define create_nl_socket(proto) create_nl_socket_ext((proto), #proto) +/* Create a temporary file in the current directory. */ +int create_tmpfile(unsigned int flags); + /* Create a pipe with maximized descriptor numbers. */ void pipe_maxfd(int pipefd[2]); @@ -236,7 +355,7 @@ unsigned int ifindex_lo(void); /* * For 64-bit kernel_ulong_t and 32-bit pointer, * return a kernel_ulong_t value by filling higher bits. - * For other architertures, return the original pointer. + * For other architectures, return the original pointer. */ static inline kernel_ulong_t f8ill_ptr_to_kulong(const void *const ptr) diff --git a/tests-mx32/tgkill--pidns-translation.c b/tests-mx32/tgkill--pidns-translation.c new file mode 100644 index 00000000..c3ac2d0a --- /dev/null +++ b/tests-mx32/tgkill--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "tgkill.c" diff --git a/tests-mx32/tgkill--pidns-translation.gen.test b/tests-mx32/tgkill--pidns-translation.gen.test new file mode 100755 index 00000000..8f729251 --- /dev/null +++ b/tests-mx32/tgkill--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (tgkill--pidns-translation test_pidns -a15 --signal='!cont' -e trace=tgkill); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a15 --signal='!cont' -e trace=tgkill diff --git a/tests-mx32/tgkill.c b/tests-mx32/tgkill.c new file mode 100644 index 00000000..10816a61 --- /dev/null +++ b/tests-mx32/tgkill.c @@ -0,0 +1,88 @@ +/* + * Check decoding of tgkill syscall. + * + * Copyright (c) 2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" +#include "pidns.h" + +#ifdef __NR_tgkill + +# include +# include +# include + +static const char *errstr; + +static long +k_tgkill(const unsigned int tgid, + const unsigned int tid, + const unsigned int sig) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | tgid; + const kernel_ulong_t arg2 = fill | tid; + const kernel_ulong_t arg3 = fill | sig; + const long rc = syscall(__NR_tgkill, arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + PIDNS_TEST_INIT; + + const int pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); + const int tid = syscall(__NR_gettid); + const char *tid_str = pidns_pid2str(PT_TID); + const int bad_pid = -1; + const int bad_sig = 0xface; + + k_tgkill(pid, tid, 0); + pidns_print_leader(); + printf("tgkill(%d%s, %d%s, 0) = %s\n", + pid, pid_str, tid, tid_str, errstr); + + k_tgkill(pid, bad_pid, 0); + pidns_print_leader(); + printf("tgkill(%d%s, %d, 0) = %s\n", + pid, pid_str, bad_pid, errstr); + + k_tgkill(bad_pid, tid, 0); + pidns_print_leader(); + printf("tgkill(%d, %d%s, 0) = %s\n", + bad_pid, tid, tid_str, errstr); + + k_tgkill(pid, tid, SIGCONT); + pidns_print_leader(); + printf("tgkill(%d%s, %d%s, SIGCONT) = %s\n", + pid, pid_str, tid, tid_str, errstr); + + k_tgkill(pid, tid, bad_sig); + pidns_print_leader(); + printf("tgkill(%d%s, %d%s, %d) = %s\n", + pid, pid_str, tid, tid_str, bad_sig, errstr); + + k_tgkill(pid, tid, -bad_sig); + pidns_print_leader(); + printf("tgkill(%d%s, %d%s, %d) = %s\n", + pid, pid_str, tid, tid_str, -bad_sig, errstr); + + pidns_print_leader(); + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_tgkill") + +#endif diff --git a/tests-mx32/tgkill.gen.test b/tests-mx32/tgkill.gen.test new file mode 100755 index 00000000..6ad0e480 --- /dev/null +++ b/tests-mx32/tgkill.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (tgkill -a15 --signal='!cont'); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a15 --signal='!cont' diff --git a/tests-mx32/threads-execve--quiet-thread-execve.c b/tests-mx32/threads-execve--quiet-thread-execve.c new file mode 100644 index 00000000..9811b7be --- /dev/null +++ b/tests-mx32/threads-execve--quiet-thread-execve.c @@ -0,0 +1,2 @@ +#define PRINT_SUPERSEDED 0 +#include "threads-execve.c" diff --git a/tests-mx32/threads-execve--quiet-thread-execve.gen.test b/tests-mx32/threads-execve--quiet-thread-execve.gen.test new file mode 100755 index 00000000..24ed8ae1 --- /dev/null +++ b/tests-mx32/threads-execve--quiet-thread-execve.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (threads-execve--quiet-thread-execve +threads-execve.test -s40 --quiet=personality,thread-execve); do not edit. +set -- -s40 --quiet=personality,thread-execve +. "${srcdir=.}/threads-execve.test" diff --git a/tests-mx32/threads-execve-q.c b/tests-mx32/threads-execve-q.c new file mode 100644 index 00000000..a6627b7d --- /dev/null +++ b/tests-mx32/threads-execve-q.c @@ -0,0 +1 @@ +#include "threads-execve.c" diff --git a/tests-mx32/threads-execve-q.gen.test b/tests-mx32/threads-execve-q.gen.test new file mode 100755 index 00000000..9865efef --- /dev/null +++ b/tests-mx32/threads-execve-q.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (threads-execve-q +threads-execve.test -q); do not edit. +set -- -q +. "${srcdir=.}/threads-execve.test" diff --git a/tests-mx32/threads-execve-qq.c b/tests-mx32/threads-execve-qq.c new file mode 100644 index 00000000..2dc806d3 --- /dev/null +++ b/tests-mx32/threads-execve-qq.c @@ -0,0 +1,2 @@ +#define PRINT_EXITED 0 +#include "threads-execve.c" diff --git a/tests-mx32/threads-execve-qq.gen.test b/tests-mx32/threads-execve-qq.gen.test new file mode 100755 index 00000000..515ac448 --- /dev/null +++ b/tests-mx32/threads-execve-qq.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (threads-execve-qq +threads-execve.test -qq); do not edit. +set -- -qq +. "${srcdir=.}/threads-execve.test" diff --git a/tests-mx32/threads-execve-qqq.c b/tests-mx32/threads-execve-qqq.c new file mode 100644 index 00000000..c8e32918 --- /dev/null +++ b/tests-mx32/threads-execve-qqq.c @@ -0,0 +1,3 @@ +#define PRINT_SUPERSEDED 0 +#define PRINT_EXITED 0 +#include "threads-execve.c" diff --git a/tests-mx32/threads-execve-qqq.gen.test b/tests-mx32/threads-execve-qqq.gen.test new file mode 100755 index 00000000..4a6641fc --- /dev/null +++ b/tests-mx32/threads-execve-qqq.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (threads-execve-qqq +threads-execve.test -qqq); do not edit. +set -- -qqq +. "${srcdir=.}/threads-execve.test" diff --git a/tests-mx32/threads-execve.c b/tests-mx32/threads-execve.c index 56fab529..3c13e29a 100644 --- a/tests-mx32/threads-execve.c +++ b/tests-mx32/threads-execve.c @@ -2,21 +2,33 @@ * Check decoding of threads when a non-leader thread invokes execve. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include -#include -#include -#include -#include -#include -#include +#include "scno.h" + +#ifdef __NR_nanosleep + +# include +# include +# include +# include +# include +# include +# include + +# include "kernel_old_timespec.h" + +# ifndef PRINT_EXITED +# define PRINT_EXITED 1 +# endif +# ifndef PRINT_SUPERSEDED +# define PRINT_SUPERSEDED 1 +# endif static pid_t leader; static pid_t tid; @@ -110,9 +122,9 @@ thread(void *arg) struct timespec ts = { .tv_nsec = 100000000 }; (void) clock_nanosleep(CLOCK_REALTIME, 0, &ts, NULL); - ts.tv_nsec = 12345; + kernel_old_timespec_t ots = { .tv_nsec = 12345 }; printf("%-5d nanosleep({tv_sec=0, tv_nsec=%u}, NULL) = 0\n", - tid, (unsigned int) ts.tv_nsec); + tid, (unsigned int) ots.tv_nsec); switch (action % NUMBER_OF_ACTIONS) { case ACTION_exit: @@ -140,12 +152,12 @@ thread(void *arg) break; } - printf("%-5d +++ superseded by execve in pid %u +++\n" - "%-5d <... execve resumed>) = 0\n", - leader, tid, - leader); +# if PRINT_SUPERSEDED + printf("%-5d +++ superseded by execve in pid %u +++\n", leader, tid); +# endif + printf("%-5d <... execve resumed>) = 0\n", leader); - (void) nanosleep(&ts, NULL); + (void) syscall(__NR_nanosleep, (unsigned long) &ots, 0UL); execve(argv[0], argv, environ); perror_msg_and_fail("execve"); } @@ -178,7 +190,9 @@ main(int ac, char **av) action = atoi(av[2]); if (action >= NUMBER_OF_ACTIONS * NUMBER_OF_ITERATIONS) { +# if PRINT_EXITED printf("%-5d +++ exited with 0 +++\n", leader); +# endif return 0; } @@ -190,7 +204,7 @@ main(int ac, char **av) if (errno) perror_msg_and_fail("pthread_create"); - struct timespec ts = { .tv_sec = 123 }; + kernel_old_timespec_t ots = { .tv_sec = 123 }; sigset_t mask; sigemptyset(&mask); @@ -214,11 +228,18 @@ main(int ac, char **av) case ACTION_nanosleep: printf("%s nanosleep({tv_sec=%u, tv_nsec=0}" ", \n", - leader_str, (unsigned int) ts.tv_sec); + leader_str, (unsigned int) ots.tv_sec); close(fds[1]); - (void) nanosleep(&ts, 0); + (void) syscall(__NR_nanosleep, + (unsigned long) &ots, 0UL); break; } return 1; } + +#else + +SKIP_MAIN_UNDEFINED("__NR_nanosleep") + +#endif diff --git a/tests-mx32/threads-execve.test b/tests-mx32/threads-execve.test index 04ce15df..de659103 100755 --- a/tests-mx32/threads-execve.test +++ b/tests-mx32/threads-execve.test @@ -3,7 +3,7 @@ # Check decoding of threads when a non-leader thread invokes execve. # # Copyright (c) 2016 Dmitry V. Levin -# Copyright (c) 2016-2019 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -14,13 +14,18 @@ # The kernel before commit v3.1-rc1~308^2~7 reported 0 instead of old pid. require_min_kernel_version_or_skip 3.1 +# This test requires some concurrency between threads. +require_min_nproc 2 + +opts="${*:-}" + check_prog diff run_prog_skip_if_failed date +%s > /dev/null s0="$(date +%s)" run_prog > /dev/null -set -- -a21 -f -esignal=none -e trace=execve,exit,nanosleep,rt_sigsuspend $args +set -- -a21 -f -esignal=none -e trace=execve,exit,nanosleep,rt_sigsuspend $opts $args # Due to probabilistic nature of the test, try it several times. while :; do diff --git a/tests-mx32/time.c b/tests-mx32/time.c index 330c8846..f41d7fdb 100644 --- a/tests-mx32/time.c +++ b/tests-mx32/time.c @@ -2,14 +2,14 @@ * This file is part of time strace test. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_time diff --git a/tests-mx32/timer_create.c b/tests-mx32/timer_create.c index c9c64813..2c4dae19 100644 --- a/tests-mx32/timer_create.c +++ b/tests-mx32/timer_create.c @@ -2,13 +2,14 @@ * This file is part of timer_create strace test. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_timer_create diff --git a/tests-mx32/timer_xettime.c b/tests-mx32/timer_xettime.c index 17390c2d..04d037b2 100644 --- a/tests-mx32/timer_xettime.c +++ b/tests-mx32/timer_xettime.c @@ -2,14 +2,14 @@ * This file is part of timer_xettime strace test. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_timer_create \ && defined __NR_timer_gettime \ diff --git a/tests-mx32/timerfd_xettime.c b/tests-mx32/timerfd_xettime.c index 73616677..96d4c682 100644 --- a/tests-mx32/timerfd_xettime.c +++ b/tests-mx32/timerfd_xettime.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -8,7 +8,7 @@ #include "tests.h" #include -#include +#include "scno.h" #if defined __NR_timerfd_create \ && defined __NR_timerfd_gettime \ diff --git a/tests-mx32/times-fail.c b/tests-mx32/times-fail.c index 551803df..940966d5 100644 --- a/tests-mx32/times-fail.c +++ b/tests-mx32/times-fail.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,7 +9,7 @@ #include #include #include -#include +#include "scno.h" int main(void) diff --git a/tests-mx32/times.c b/tests-mx32/times.c index a390dde4..06a0f257 100644 --- a/tests-mx32/times.c +++ b/tests-mx32/times.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2015 Eugene Syromyatnikov * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -19,12 +19,13 @@ #include #include -#include +#include "scno.h" #include #include enum { - NUM_USER_ITERS = 1000000, + NUM_USER_ITERS_SQRT = 1000, + NUM_USER_ITERS = NUM_USER_ITERS_SQRT * NUM_USER_ITERS_SQRT, PARENT_CPUTIME_LIMIT_NSEC = 200000000, CHILD_CPUTIME_LIMIT_NSEC = 300000000 }; @@ -48,7 +49,7 @@ main(void) if (ts.tv_sec || ts.tv_nsec >= cputime_limit) break; - if (i && !(ts.tv_sec || ts.tv_nsec)) + if ((i > NUM_USER_ITERS_SQRT) && !(ts.tv_sec || ts.tv_nsec)) error_msg_and_skip("clock_gettime(CLOCK_PROCESS_CPUTIME_ID, {0, 0})"); for (i = 0; i < NUM_USER_ITERS; ++i) diff --git a/tests-mx32/tkill--pidns-translation.c b/tests-mx32/tkill--pidns-translation.c new file mode 100644 index 00000000..70a64f57 --- /dev/null +++ b/tests-mx32/tkill--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "tkill.c" diff --git a/tests-mx32/tkill--pidns-translation.gen.test b/tests-mx32/tkill--pidns-translation.gen.test new file mode 100755 index 00000000..14c2fb31 --- /dev/null +++ b/tests-mx32/tkill--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (tkill--pidns-translation test_pidns --signal='!cont' -a12 -e trace=tkill); do not edit. +. "${srcdir=.}/init.sh" +test_pidns --signal='!cont' -a12 -e trace=tkill diff --git a/tests-mx32/tkill.c b/tests-mx32/tkill.c new file mode 100644 index 00000000..89466e1a --- /dev/null +++ b/tests-mx32/tkill.c @@ -0,0 +1,69 @@ +/* + * Check decoding of tkill syscall. + * + * Copyright (c) 2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" +#include "pidns.h" + +#ifdef __NR_tkill + +# include +# include +# include + +static const char *errstr; + +static long +k_tkill(const unsigned int tid, const unsigned int sig) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | tid; + const kernel_ulong_t arg2 = fill | sig; + const long rc = syscall(__NR_tkill, arg1, arg2, bad, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + PIDNS_TEST_INIT; + + const int tid = syscall(__NR_gettid); + const char *tid_str = pidns_pid2str(PT_TID); + const int bad_pid = -1; + const int bad_sig = 0xface; + + k_tkill(tid, 0); + pidns_print_leader(); + printf("tkill(%d%s, 0) = %s\n", tid, tid_str, errstr); + + k_tkill(tid, SIGCONT); + pidns_print_leader(); + printf("tkill(%d%s, SIGCONT) = %s\n", tid, tid_str, errstr); + + k_tkill(bad_pid, bad_sig); + pidns_print_leader(); + printf("tkill(%d, %d) = %s\n", bad_pid, bad_sig, errstr); + + k_tkill(bad_pid, -bad_sig); + pidns_print_leader(); + printf("tkill(%d, %d) = %s\n", bad_pid, -bad_sig, errstr); + + pidns_print_leader(); + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_tkill") + +#endif diff --git a/tests-mx32/tkill.gen.test b/tests-mx32/tkill.gen.test new file mode 100755 index 00000000..65e9d96e --- /dev/null +++ b/tests-mx32/tkill.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (tkill -a12 --signal='!cont'); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a12 --signal='!cont' diff --git a/tests-mx32/trace_clock.gen.test b/tests-mx32/trace_clock.gen.test new file mode 100755 index 00000000..e9eea786 --- /dev/null +++ b/tests-mx32/trace_clock.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (trace_clock test_trace_expr 'clock_nanosleep|times' -e%clock); do not edit. +. "${srcdir=.}/init.sh" +test_trace_expr 'clock_nanosleep|times' -e%clock diff --git a/tests-mx32/trace_clock.in b/tests-mx32/trace_clock.in new file mode 100644 index 00000000..511ec8ea --- /dev/null +++ b/tests-mx32/trace_clock.in @@ -0,0 +1,5 @@ +adjtimex -a13 +clock_adjtime -a21 +clock_xettime -a21 +xettimeofday -a20 +time -a9 diff --git a/tests-mx32/trace_creds.gen.test b/tests-mx32/trace_creds.gen.test new file mode 100755 index 00000000..d8cd5892 --- /dev/null +++ b/tests-mx32/trace_creds.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (trace_creds test_trace_expr '([gs]et[^p]*([gu]id|groups)|caps|prctl|[fl]?chown|print(path-umovestr|strn-umoven)-undumpable|ptrace|quotactl|rt_sigtimedwait|rt_(tg)?sigqueueinfo).*' -e%creds); do not edit. +. "${srcdir=.}/init.sh" +test_trace_expr '([gs]et[^p]*([gu]id|groups)|caps|prctl|[fl]?chown|print(path-umovestr|strn-umoven)-undumpable|ptrace|quotactl|rt_sigtimedwait|rt_(tg)?sigqueueinfo).*' -e%creds diff --git a/tests-mx32/trace_creds.in b/tests-mx32/trace_creds.in new file mode 100644 index 00000000..ce78253a --- /dev/null +++ b/tests-mx32/trace_creds.in @@ -0,0 +1,8 @@ +getgroups -a17 +getgroups32 -a19 +getresgid -a25 +getresgid32 -a27 +getresuid -a25 +getresuid32 -a27 +setgroups -s2 -a17 +setgroups32 -s2 -a19 diff --git a/tests-mx32/trace_fstat.in b/tests-mx32/trace_fstat.in index 3fde131d..9d7b51bb 100644 --- a/tests-mx32/trace_fstat.in +++ b/tests-mx32/trace_fstat.in @@ -9,3 +9,4 @@ fstat64-Xverbose -a17 -Xverbose fstatat64 -a32 newfstatat -a32 oldfstat -a21 +statx -a32 diff --git a/tests-mx32/trace_lstat.in b/tests-mx32/trace_lstat.in index abbabc49..ca9f1318 100644 --- a/tests-mx32/trace_lstat.in +++ b/tests-mx32/trace_lstat.in @@ -1,3 +1,3 @@ -lstat -a32 +lstat -a31 lstat64 -a32 oldlstat -a32 diff --git a/tests-mx32/trace_stat.in b/tests-mx32/trace_stat.in index f105d784..75633050 100644 --- a/tests-mx32/trace_stat.in +++ b/tests-mx32/trace_stat.in @@ -1,3 +1,3 @@ oldstat -a32 -stat -a32 +stat -a30 stat64 -a32 diff --git a/tests-mx32/tracer_ppid_pgid_sid.c b/tests-mx32/tracer_ppid_pgid_sid.c new file mode 100644 index 00000000..69687fa2 --- /dev/null +++ b/tests-mx32/tracer_ppid_pgid_sid.c @@ -0,0 +1,92 @@ +/* + * Helper program for strace-DDD.test + * + * Copyright (c) 2019-2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include +#include +#include +#include + +static int +fetch_tracer_pid(const char *str) +{ + for (; isspace(*str); ++str) + ; + return atoi(str); +} + +static int +get_tracer_pid(void) +{ + static const char status[] = "/proc/self/status"; + FILE *fp = fopen(status, "r"); + if (!fp) + perror_msg_and_fail("fopen: %s", status); + + static const char prefix[] = "TracerPid:"; + const size_t prefix_len = sizeof(prefix) - 1; + const char *str = NULL; + char *line = NULL; + size_t n = 0; + + while (getline(&line, &n, fp) > 0) { + if (strncmp(line, prefix, prefix_len) == 0) { + str = line + prefix_len; + break; + } + } + if (!str && !line) + perror_msg_and_fail("getline"); + + int pid = str ? fetch_tracer_pid(str) : 0; + free(line); + fclose(fp); + + return pid; +} + +static void +get_ppid_pgid_sid(int pid, int *ppid, int *pgid, int *sid) +{ + char *stat; + if (asprintf(&stat, "/proc/%d/stat", pid) < 0) + perror_msg_and_fail("asprintf"); + + FILE *fp = fopen(stat, "r"); + if (!fp) + perror_msg_and_fail("fopen: %s", stat); + char buf[4096]; + if (!fgets(buf, sizeof(buf), fp)) + perror_msg_and_fail("fgets: %s", stat); + + fclose(fp); + + const char *p = strrchr(buf, ')'); + if (!p) + error_msg_and_fail("%s: parenthesis not found", stat); + ++p; + + if (sscanf(p, " %*c %d %d %d", ppid, pgid, sid) != 3) + error_msg_and_fail("%s: sscanf failed", stat); +} + +int +main(void) +{ + int tracer_pid = get_tracer_pid(); + if (tracer_pid < 0) + error_msg_and_fail("tracer_pid = %d", tracer_pid); + + int ppid = 0, pgid = 0, sid = 0; + get_ppid_pgid_sid(tracer_pid, &ppid, &pgid, &sid); + printf("%d %d %d %d\n", tracer_pid, ppid, pgid, sid); + + return 0; +} diff --git a/tests-mx32/trie_for_tests.c b/tests-mx32/trie_for_tests.c new file mode 100644 index 00000000..13e564c4 --- /dev/null +++ b/tests-mx32/trie_for_tests.c @@ -0,0 +1 @@ +#include "trie.c" diff --git a/tests-mx32/trie_test.c b/tests-mx32/trie_test.c new file mode 100644 index 00000000..44a35ce3 --- /dev/null +++ b/tests-mx32/trie_test.c @@ -0,0 +1,121 @@ +/* + * Copyright (c) 2017-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "trie.h" + +#include +#include + +static void +assert_equals(const char *msg, uint64_t expected, uint64_t actual) { + if (actual != expected) + error_msg_and_fail("%s: expected: %" PRIu64 + ", actual: %" PRIu64, msg, expected, actual); +} + +static void +iterate_fn(void *data, uint64_t key, uint64_t value) +{ + uint64_t expected = key < 256 && key % 10 == 0 ? key + 42 : -1ULL; + assert_equals("iterate_fn", expected, value); + + int *count = (int *) data; + if (value != -1ULL) + (*count)++; +} + +static void +test_trie_iterate_fn(void) +{ + struct trie *t = trie_create(8, 6, 3, 3, -1); + for (int i = 0; i < 26; i++) + trie_set(t, i * 10, i * 10 + 42); + + static const struct { + uint64_t start; + uint64_t end; + int expected_count; + } iterate_params[] = { + {0, 256, 26}, + {0, UINT64_MAX, 26}, + {20, 90, 8}, + {99, 999, 16}, + {10000, 100000, 0}, + {200, 100, 0}, + }; + + for (size_t i = 0; i < ARRAY_SIZE(iterate_params); i++) { + int count = 0; + trie_iterate_keys(t, iterate_params[i].start, iterate_params[i].end, iterate_fn, &count); + assert_equals("iteration count", iterate_params[i].expected_count, count); + } +} + +struct key_value_pair { + uint64_t key, value; +}; + +static void +test_trie_get(void) +{ + static const struct { + uint8_t key_size; + uint8_t item_size_lg; + uint8_t node_key_bits; + uint8_t data_block_key_bits; + uint64_t empty_value; + + struct key_value_pair set_values[3], get_values[3]; + } params[] = { + {64, 6, 10, 10, 0, + {{300, 1}, {0xfacefeed, 0xabcdef123456}, {-1ULL, -1ULL}}, + {{301, 0}, {0xfacefeed, 0xabcdef123456}, {-1ULL, -1ULL}}}, + {8, 2, 4, 4, 10, + {{0xab, 0xcd}, {0xface, 2}, {0, 3}}, + {{0xab, 0xd}, {0xface, 10}, {0, 3}}}, + {30, 0, 6, 3, -1, + {{0xaaaa, 127}, {0xface, 0}, {0, 0}}, + {{0xaaaa, 1}, {0xface, 0}, {1, 1}}}, + {16, 4, 5, 11, 0xffffff, + {{0xabcdef, 42}, {0xabcd, 42}, {0xffff, 0}}, + {{0xabcdef, 0xffff}, {0xabcd, 42}, {0xffff, 0}}}, + {41, 5, 1, 1, -1, + {{0xabcdef01, 0x22222222}, {-1, 0x33333333}, {10, 10}}, + {{0xabcdef01, 0x22222222}, {-1, 0xffffffff}, {10, 10}}}, + }; + + for (size_t i = 0; i < ARRAY_SIZE(params); i++) { + struct trie *t = trie_create(params[i].key_size, + params[i].item_size_lg, + params[i].node_key_bits, + params[i].data_block_key_bits, + params[i].empty_value); + + if (!t) + error_msg_and_fail("trie creation failed"); + + for (size_t j = 0; j < ARRAY_SIZE(params[i].set_values); j++) { + struct key_value_pair kv = params[i].set_values[j]; + trie_set(t, kv.key, kv.value); + } + for (size_t j = 0; j < ARRAY_SIZE(params[i].get_values); j++) { + struct key_value_pair kv = params[i].get_values[j]; + assert_equals("trie_get", kv.value, trie_get(t, kv.key)); + } + + trie_free(t); + } +} + +int +main(void) +{ + test_trie_get(); + test_trie_iterate_fn(); + return 0; +} diff --git a/tests-mx32/trie_test.gen.test b/tests-mx32/trie_test.gen.test new file mode 100755 index 00000000..c097ae50 --- /dev/null +++ b/tests-mx32/trie_test.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (trie_test run_prog ); do not edit. +. "${srcdir=.}/init.sh" +run_prog diff --git a/tests-mx32/truncate.c b/tests-mx32/truncate.c index bfb6299b..5204ec04 100644 --- a/tests-mx32/truncate.c +++ b/tests-mx32/truncate.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_truncate diff --git a/tests-mx32/truncate64.c b/tests-mx32/truncate64.c index 1dceb414..6b071715 100644 --- a/tests-mx32/truncate64.c +++ b/tests-mx32/truncate64.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_truncate64 diff --git a/tests-mx32/ugetrlimit.c b/tests-mx32/ugetrlimit.c index 49627c1f..951ab974 100644 --- a/tests-mx32/ugetrlimit.c +++ b/tests-mx32/ugetrlimit.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_ugetrlimit diff --git a/tests-mx32/umount.c b/tests-mx32/umount.c index cd89aa0b..74450bc1 100644 --- a/tests-mx32/umount.c +++ b/tests-mx32/umount.c @@ -9,7 +9,7 @@ #include #include #include -#include +#include "scno.h" #include #ifdef __NR_oldumount diff --git a/tests-mx32/umount2.c b/tests-mx32/umount2.c index d313d597..cf1fc129 100644 --- a/tests-mx32/umount2.c +++ b/tests-mx32/umount2.c @@ -10,12 +10,13 @@ #include #include #include -#include +#include "scno.h" #if defined __NR_umount2 && (!defined __NR_umount || __NR_umount2 != __NR_umount) +# define TEST_SYSCALL_NR __NR_umount2 # define TEST_SYSCALL_STR "umount2" #else -# define __NR_umount2 __NR_umount +# define TEST_SYSCALL_NR __NR_umount # define TEST_SYSCALL_STR "umount" #endif @@ -25,9 +26,9 @@ main(void) static const char sample[] = "umount2.sample"; if (mkdir(sample, 0700)) perror_msg_and_fail("mkdir: %s", sample); - (void) syscall(__NR_umount2, sample, 31); + long ret = syscall(TEST_SYSCALL_NR, sample, 31); printf("%s(\"%s\", MNT_FORCE|MNT_DETACH|MNT_EXPIRE|UMOUNT_NOFOLLOW|0x10)" - " = -1 EINVAL (%m)\n", TEST_SYSCALL_STR, sample); + " = %s\n", TEST_SYSCALL_STR, sample, sprintrc(ret)); if (rmdir(sample)) perror_msg_and_fail("rmdir: %s", sample); puts("+++ exited with 0 +++"); diff --git a/tests-mx32/umoven-illptr.c b/tests-mx32/umoven-illptr.c index 25839f77..6a86fdcf 100644 --- a/tests-mx32/umoven-illptr.c +++ b/tests-mx32/umoven-illptr.c @@ -2,36 +2,56 @@ * Check decoding of invalid pointer by umoven. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include -#include -#include +#include "scno.h" + +#ifdef __NR_nanosleep + +# include +# include + +# include "kernel_old_timespec.h" + +static const char *errstr; + +static long +k_nanosleep(const kernel_ulong_t arg1, const kernel_ulong_t arg2) +{ + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const long rc = syscall(__NR_nanosleep, arg1, arg2, bad, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} int main(void) { - if (F8ILL_KULONG_SUPPORTED) { - struct timespec ts = { 0, 0 }; - const void *const p = tail_memdup(&ts, sizeof(ts)); - - long rc = syscall(__NR_nanosleep, p, NULL); - printf("nanosleep({tv_sec=0, tv_nsec=0}, NULL) = %s\n", - sprintrc(rc)); - - const kernel_ulong_t ill = f8ill_ptr_to_kulong(p); - rc = syscall(__NR_nanosleep, ill, NULL); - printf("nanosleep(%#llx, NULL) = %s\n", - (unsigned long long) ill, sprintrc(rc)); - - puts("+++ exited with 0 +++"); - return 0; - } else { + if (!F8ILL_KULONG_SUPPORTED) return 77; - } + + kernel_old_timespec_t ts = { 0, 0 }; + const void *const p = tail_memdup(&ts, sizeof(ts)); + + k_nanosleep((unsigned long) p, 0); + printf("nanosleep({tv_sec=0, tv_nsec=0}, NULL) = %s\n", errstr); + + const kernel_ulong_t ill = f8ill_ptr_to_kulong(p); + k_nanosleep(ill, 0); + printf("nanosleep(%#llx, NULL) = %s\n", + (unsigned long long) ill, errstr); + + puts("+++ exited with 0 +++"); + return 0; } + +#else + +SKIP_MAIN_UNDEFINED("__NR_nanosleep") + +#endif diff --git a/tests-mx32/umovestr-illptr.c b/tests-mx32/umovestr-illptr.c index 5a24357a..6cfcfb86 100644 --- a/tests-mx32/umovestr-illptr.c +++ b/tests-mx32/umovestr-illptr.c @@ -2,6 +2,7 @@ * Check decoding of invalid pointer by umovestr. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +11,7 @@ #include "tests.h" #include #include -#include +#include "scno.h" int main(void) diff --git a/tests-mx32/umovestr_cached.c b/tests-mx32/umovestr_cached.c new file mode 100644 index 00000000..3d7bed3b --- /dev/null +++ b/tests-mx32/umovestr_cached.c @@ -0,0 +1,47 @@ +/* + * Check effectiveness of umovestr memory caching. + * + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#include +#include +#include +#include + +int +main(void) +{ + char *const buf = tail_alloc(DEFAULT_STRLEN); + fill_memory_ex(buf, DEFAULT_STRLEN, 'a', 'z' - 'a' + 1); + + struct iovec *const io = tail_alloc(sizeof(*io) * DEFAULT_STRLEN); + for (unsigned int i = 0; i < DEFAULT_STRLEN; ++i) { + io[i].iov_base = buf + DEFAULT_STRLEN - i; + io[i].iov_len = i; + } + + tprintf("%s", ""); + + int rc = writev(-1, io, DEFAULT_STRLEN); + const char *errstr = sprintrc(rc); + + tprintf("writev(-1, ["); + for (unsigned int i = 0; i < DEFAULT_STRLEN; ++i) { + if (i) + tprintf(", "); + tprintf("{iov_base=\"%.*s\", iov_len=%u}", + (int) io[i].iov_len, + (char *) io[i].iov_base, + (unsigned int) io[i].iov_len); + } + tprintf("], %u) = %s\n", DEFAULT_STRLEN, errstr); + + tprintf("+++ exited with 0 +++\n"); + return 0; +} diff --git a/tests-mx32/umovestr_cached.test b/tests-mx32/umovestr_cached.test new file mode 100755 index 00000000..4b9c8326 --- /dev/null +++ b/tests-mx32/umovestr_cached.test @@ -0,0 +1,41 @@ +#!/bin/sh +# +# Check effectiveness of umovestr memory caching. +# +# Copyright (c) 2017-2020 Dmitry V. Levin +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +expected_count="${1:-2}" + +check_prog grep +$STRACE -d -enone / > /dev/null 2> "$LOG" ||: +grep -x "[^:]*strace: PTRACE_GET_SYSCALL_INFO works" "$LOG" > /dev/null || { + # PTRACE_GET_SYSCALL_INFO does not work + case "$STRACE_ARCH:$MIPS_ABI" in + ia64:|mips:o32) + # ia64 invokes extra process_vm_readv syscalls to obtain syscall + # arguments, see linux/ia64/get_syscall_args.c for details. + # mips o32 obtains the first four syscalls arguments from registers + # and invokes extra process_vm_readv syscalls to obtain remaining + # syscall arguments, see linux/mips/get_syscall_args.c for details. + skip_ "the test is not supported on $STRACE_ARCH yet" + ;; + esac +} + +run_strace_match_diff -e trace=writev + +run_strace -qq -esignal=none -eprocess_vm_readv -z \ + -o '|grep -c ^process_vm_readv > count' \ + -- "$STRACE_EXE" -o "$LOG" $args > /dev/null + +count="$(cat count)" +case "$count" in + 0) skip_ "$STRACE $args made no process_vm_readv syscall invocations" ;; + $expected_count) ;; + *) fail_ "$STRACE $args made $count != $expected_count process_vm_readv syscall invocations" ;; +esac diff --git a/tests-mx32/umovestr_cached_adjacent.c b/tests-mx32/umovestr_cached_adjacent.c new file mode 100644 index 00000000..53a573b3 --- /dev/null +++ b/tests-mx32/umovestr_cached_adjacent.c @@ -0,0 +1,48 @@ +/* + * Check effectiveness of umovestr memory caching. + * + * Copyright (c) 2019-2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#include +#include +#include +#include + +int +main(void) +{ + const size_t size = get_page_size() + (DEFAULT_STRLEN - 1); + char *const buf = tail_alloc(size); + fill_memory_ex(buf, DEFAULT_STRLEN * 2, 'a', 'z' - 'a' + 1); + + struct iovec *const io = tail_alloc(sizeof(*io) * DEFAULT_STRLEN); + for (unsigned int i = 0; i < DEFAULT_STRLEN; ++i) { + io[i].iov_base = buf + i; + io[i].iov_len = DEFAULT_STRLEN; + } + + tprintf("%s", ""); + + int rc = writev(-1, io, DEFAULT_STRLEN); + const char *errstr = sprintrc(rc); + + tprintf("writev(-1, ["); + for (unsigned int i = 0; i < DEFAULT_STRLEN; ++i) { + if (i) + tprintf(", "); + tprintf("{iov_base=\"%.*s\", iov_len=%u}", + (int) io[i].iov_len, + (char *) io[i].iov_base, + (unsigned int) io[i].iov_len); + } + tprintf("], %u) = %s\n", DEFAULT_STRLEN, errstr); + + tprintf("+++ exited with 0 +++\n"); + return 0; +} diff --git a/tests-mx32/umovestr_cached_adjacent.gen.test b/tests-mx32/umovestr_cached_adjacent.gen.test new file mode 100755 index 00000000..24b3fd7d --- /dev/null +++ b/tests-mx32/umovestr_cached_adjacent.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (umovestr_cached_adjacent +umovestr_cached.test 3); do not edit. +set -- 3 +. "${srcdir=.}/umovestr_cached.test" diff --git a/tests-mx32/uname.c b/tests-mx32/uname.c index 386fd99b..3180cffd 100644 --- a/tests-mx32/uname.c +++ b/tests-mx32/uname.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_uname diff --git a/tests-mx32/unix-pair-send-recv.c b/tests-mx32/unix-pair-send-recv.c index 73ddd1e0..1439e1ff 100644 --- a/tests-mx32/unix-pair-send-recv.c +++ b/tests-mx32/unix-pair-send-recv.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,7 +13,7 @@ #include #include #include -#include +#include "scno.h" #ifndef __NR_send # define __NR_send -1 diff --git a/tests-mx32/unlink.c b/tests-mx32/unlink.c index 9c33b624..af9b3a06 100644 --- a/tests-mx32/unlink.c +++ b/tests-mx32/unlink.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_unlink diff --git a/tests-mx32/unlinkat.c b/tests-mx32/unlinkat.c index 0ae67964..6fcf1332 100644 --- a/tests-mx32/unlinkat.c +++ b/tests-mx32/unlinkat.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_unlinkat @@ -27,7 +27,7 @@ main(void) printf("unlinkat(%s, \"%s\", %s) = %ld %s (%m)\n", "AT_FDCWD", sample, "AT_SYMLINK_NOFOLLOW|AT_REMOVEDIR|AT_SYMLINK_FOLLOW" - "|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|0xffffe0ff", + "|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|AT_RECURSIVE|0xffff60ff", rc, errno2name()); puts("+++ exited with 0 +++"); diff --git a/tests-mx32/unshare.c b/tests-mx32/unshare.c index a49f9ef9..45e914e0 100644 --- a/tests-mx32/unshare.c +++ b/tests-mx32/unshare.c @@ -2,7 +2,7 @@ * Check decoding of unshare syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_unshare @@ -28,12 +28,12 @@ main(void) const char *str; } unshare_flags[] = { { ARG_STR(0) }, - { 0xdeadca75, - "CLONE_THREAD|CLONE_FS|CLONE_SIGHAND|CLONE_SYSVSEM|" - "CLONE_NEWUTS|CLONE_NEWIPC|CLONE_NEWNET|CLONE_NEWUSER|" - "CLONE_NEWCGROUP|0x80a8c075" }, + { 0xdeadcaf5, + "CLONE_NEWTIME|CLONE_FS|CLONE_SIGHAND|CLONE_THREAD" + "|CLONE_SYSVSEM|CLONE_NEWCGROUP|CLONE_NEWUTS" + "|CLONE_NEWIPC|CLONE_NEWUSER|CLONE_NEWNET|0x80a8c075" }, { 0x2000000, "CLONE_NEWCGROUP" }, - { ARG_STR(0x81f8f0ff) " /* CLONE_??? */" }, + { ARG_STR(0x81f8f07f) " /* CLONE_??? */" }, }; long rc; diff --git a/tests-mx32/userfaultfd.c b/tests-mx32/userfaultfd.c index 9e59c0fe..fa722577 100644 --- a/tests-mx32/userfaultfd.c +++ b/tests-mx32/userfaultfd.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -7,7 +8,6 @@ #include "tests.h" #include -#include #include "scno.h" #if defined __NR_userfaultfd && defined O_CLOEXEC diff --git a/tests-mx32/ustat.c b/tests-mx32/ustat.c index 0945a70d..7464b98a 100644 --- a/tests-mx32/ustat.c +++ b/tests-mx32/ustat.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_ustat diff --git a/tests-mx32/utime.c b/tests-mx32/utime.c index 151b31a9..b548c8f8 100644 --- a/tests-mx32/utime.c +++ b/tests-mx32/utime.c @@ -2,14 +2,14 @@ * Check decoding of utime syscall. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_utime diff --git a/tests-mx32/utimensat.c b/tests-mx32/utimensat.c index 170b2c89..4aa83c81 100644 --- a/tests-mx32/utimensat.c +++ b/tests-mx32/utimensat.c @@ -2,7 +2,7 @@ * Check decoding of utimensat syscall. * * Copyright (c) 2015-2017 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -15,7 +15,7 @@ #include #include #include -#include +#include "scno.h" #if defined __NR_utimensat && defined UTIME_NOW && defined UTIME_OMIT @@ -44,7 +44,7 @@ "0x600 /* AT_REMOVEDIR|AT_SYMLINK_FOLLOW */" # define str_flags2 \ "0xffffffff /* AT_SYMLINK_NOFOLLOW|AT_REMOVEDIR|AT_SYMLINK_FOLLOW" \ - "|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|0xffffe0ff */" + "|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|AT_RECURSIVE|0xffff60ff */" # define str_utime_now_omit \ "[{tv_sec=" big_tv_sec ", tv_nsec=1073741823} /* UTIME_NOW */, " \ "{tv_sec=" huge_tv_sec ", tv_nsec=1073741822} /* UTIME_OMIT */]" @@ -55,7 +55,7 @@ # define str_flags1 "AT_REMOVEDIR|AT_SYMLINK_FOLLOW" # define str_flags2 \ "AT_SYMLINK_NOFOLLOW|AT_REMOVEDIR|AT_SYMLINK_FOLLOW" \ - "|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|0xffffe0ff" + "|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|AT_RECURSIVE|0xffff60ff" # define str_utime_now_omit "[UTIME_NOW, UTIME_OMIT]" # endif diff --git a/tests-mx32/utimes.c b/tests-mx32/utimes.c index 1aee6db3..d78969fe 100644 --- a/tests-mx32/utimes.c +++ b/tests-mx32/utimes.c @@ -2,13 +2,14 @@ * Check decoding of utimes syscall. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_utimes diff --git a/tests-mx32/vhangup.c b/tests-mx32/vhangup.c index 1a786cc3..46359016 100644 --- a/tests-mx32/vhangup.c +++ b/tests-mx32/vhangup.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_vhangup diff --git a/tests-mx32/vmsplice.c b/tests-mx32/vmsplice.c index b986dafa..ac949ae8 100644 --- a/tests-mx32/vmsplice.c +++ b/tests-mx32/vmsplice.c @@ -2,14 +2,14 @@ * This file is part of vmsplice strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_vmsplice diff --git a/tests-mx32/wait4.c b/tests-mx32/wait4.c index 29b0cadd..048e6225 100644 --- a/tests-mx32/wait4.c +++ b/tests-mx32/wait4.c @@ -2,77 +2,98 @@ * Check decoding of wait4 syscall. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include -#include -#include -#include -#include +#include "scno.h" + +#ifdef __NR_wait4 + +# include +# include +# include +# include +# include +# include "kernel_rusage.h" static const char * -sprint_rusage(const struct rusage *const ru) +sprint_rusage(const kernel_rusage_t *const ru) { static char buf[1024]; snprintf(buf, sizeof(buf), - "{ru_utime={tv_sec=%lld, tv_usec=%llu}" - ", ru_stime={tv_sec=%lld, tv_usec=%llu}" -#if VERBOSE - ", ru_maxrss=%lu" - ", ru_ixrss=%lu" - ", ru_idrss=%lu" - ", ru_isrss=%lu" - ", ru_minflt=%lu" - ", ru_majflt=%lu" - ", ru_nswap=%lu" - ", ru_inblock=%lu" - ", ru_oublock=%lu" - ", ru_msgsnd=%lu" - ", ru_msgrcv=%lu" - ", ru_nsignals=%lu" - ", ru_nvcsw=%lu" - ", ru_nivcsw=%lu}" -#else + "{ru_utime={tv_sec=%llu, tv_usec=%llu}" + ", ru_stime={tv_sec=%llu, tv_usec=%llu}" +# if VERBOSE + ", ru_maxrss=%llu" + ", ru_ixrss=%llu" + ", ru_idrss=%llu" + ", ru_isrss=%llu" + ", ru_minflt=%llu" + ", ru_majflt=%llu" + ", ru_nswap=%llu" + ", ru_inblock=%llu" + ", ru_oublock=%llu" + ", ru_msgsnd=%llu" + ", ru_msgrcv=%llu" + ", ru_nsignals=%llu" + ", ru_nvcsw=%llu" + ", ru_nivcsw=%llu}" +# else ", ...}" -#endif - , (long long) ru->ru_utime.tv_sec +# endif + , zero_extend_signed_to_ull(ru->ru_utime.tv_sec) , zero_extend_signed_to_ull(ru->ru_utime.tv_usec) - , (long long) ru->ru_stime.tv_sec + , zero_extend_signed_to_ull(ru->ru_stime.tv_sec) , zero_extend_signed_to_ull(ru->ru_stime.tv_usec) -#if VERBOSE - , (long) ru->ru_maxrss - , (long) ru->ru_ixrss - , (long) ru->ru_idrss - , (long) ru->ru_isrss - , (long) ru->ru_minflt - , (long) ru->ru_majflt - , (long) ru->ru_nswap - , (long) ru->ru_inblock - , (long) ru->ru_oublock - , (long) ru->ru_msgsnd - , (long) ru->ru_msgrcv - , (long) ru->ru_nsignals - , (long) ru->ru_nvcsw - , (long) ru->ru_nivcsw -#endif +# if VERBOSE + , zero_extend_signed_to_ull(ru->ru_maxrss) + , zero_extend_signed_to_ull(ru->ru_ixrss) + , zero_extend_signed_to_ull(ru->ru_idrss) + , zero_extend_signed_to_ull(ru->ru_isrss) + , zero_extend_signed_to_ull(ru->ru_minflt) + , zero_extend_signed_to_ull(ru->ru_majflt) + , zero_extend_signed_to_ull(ru->ru_nswap) + , zero_extend_signed_to_ull(ru->ru_inblock) + , zero_extend_signed_to_ull(ru->ru_oublock) + , zero_extend_signed_to_ull(ru->ru_msgsnd) + , zero_extend_signed_to_ull(ru->ru_msgrcv) + , zero_extend_signed_to_ull(ru->ru_nsignals) + , zero_extend_signed_to_ull(ru->ru_nvcsw) + , zero_extend_signed_to_ull(ru->ru_nivcsw) +# endif ); return buf; } +static const char *errstr; + +static long +k_wait4(const unsigned int pid, void const *wstatus, + const unsigned int options, void const *ru) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | pid; + const kernel_ulong_t arg2 = (uintptr_t) wstatus; + const kernel_ulong_t arg3 = fill | options; + const kernel_ulong_t arg4 = (uintptr_t) ru; + const long rc = syscall(__NR_wait4, arg1, arg2, arg3, arg4, bad, bad); + errstr = sprintrc(rc); + return rc; +} + static pid_t -do_wait4(pid_t pid, int *wstatus, int options, struct rusage *ru) +do_wait4(pid_t pid, int *wstatus, int options, kernel_rusage_t *ru) { sigset_t mask = {}; sigaddset(&mask, SIGCHLD); assert(sigprocmask(SIG_BLOCK, &mask, NULL) == 0); - pid_t rc = wait4(pid, wstatus, options, ru); + pid_t rc = k_wait4(pid, wstatus, options, ru); assert(sigprocmask(SIG_UNBLOCK, &mask, NULL) == 0); return rc; } @@ -101,12 +122,12 @@ main(void) (void) close(0); TAIL_ALLOC_OBJECT_CONST_PTR(int, s); - if (wait4(pid, s, WNOHANG|__WALL, NULL)) + if (k_wait4(pid, s, WNOHANG|__WALL, NULL)) perror_msg_and_fail("wait4 #1"); tprintf("wait4(%d, %p, WNOHANG|__WALL, NULL) = 0\n", pid, s); - TAIL_ALLOC_OBJECT_CONST_PTR(struct rusage, rusage); - if (wait4(pid, s, WNOHANG|__WALL, rusage)) + TAIL_ALLOC_OBJECT_CONST_PTR(kernel_rusage_t, rusage); + if (k_wait4(pid, s, WNOHANG|__WALL, rusage)) perror_msg_and_fail("wait4 #2"); tprintf("wait4(%d, %p, WNOHANG|__WALL, %p) = 0\n", pid, s, rusage); @@ -156,12 +177,12 @@ main(void) if (kill(pid, SIGCONT)) perror_msg_and_fail("kill(SIGCONT)"); -#if defined WCONTINUED && defined WIFCONTINUED +# if defined WCONTINUED && defined WIFCONTINUED assert(do_wait4(pid, s, WCONTINUED, rusage) == pid); assert(WIFCONTINUED(*s)); tprintf("wait4(%d, [{WIFCONTINUED(s)}], WCONTINUED" ", %s) = %d\n", pid, sprint_rusage(rusage), pid); -#endif /* WCONTINUED && WIFCONTINUED */ +# endif /* WCONTINUED && WIFCONTINUED */ assert(write(1, "", 1) == 1); (void) close(1); @@ -171,10 +192,16 @@ main(void) tprintf("wait4(%d, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0" ", %s) = %d\n", pid, sprint_rusage(rusage), pid); - assert(wait4(-1, s, WNOHANG|WSTOPPED|__WALL, rusage) == -1); - tprintf("wait4(-1, %p, WNOHANG|WSTOPPED|__WALL, %p) = -1 %s (%m)\n", - s, rusage, errno2name()); + assert(k_wait4(-1, s, WNOHANG|WSTOPPED|__WALL, rusage) == -1); + tprintf("wait4(-1, %p, WNOHANG|WSTOPPED|__WALL, %p) = %s\n", + s, rusage, errstr); tprintf("%s\n", "+++ exited with 0 +++"); return 0; } + +#else + +SKIP_MAIN_UNDEFINED("__NR_wait4") + +#endif /* __NR_wait4 */ diff --git a/tests-mx32/waitid.c b/tests-mx32/waitid.c index f4e4a0a8..8716fa08 100644 --- a/tests-mx32/waitid.c +++ b/tests-mx32/waitid.c @@ -2,7 +2,7 @@ * Check decoding of waitid syscall. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -15,11 +15,11 @@ #include #include #include -#include -#include +#include "kernel_rusage.h" +#include "scno.h" static const char * -sprint_rusage(const struct rusage *const ru) +sprint_rusage(const kernel_rusage_t *const ru) { static char buf[1024]; snprintf(buf, sizeof(buf), @@ -103,8 +103,8 @@ sprint_siginfo(const siginfo_t *const si, const char *const status_text) snprintf(buf, sizeof(buf), "{si_signo=SIGCHLD" ", si_code=%s" - ", si_pid=%u" - ", si_uid=%u" + ", si_pid=%d" + ", si_uid=%d" ", si_status=%s" ", si_utime=%llu" ", si_stime=%llu}", @@ -128,7 +128,7 @@ do_waitid(const unsigned int idtype, const unsigned int id, const siginfo_t *const infop, const unsigned int options, - const struct rusage *const rusage) + const kernel_rusage_t *const rusage) { sigset_t mask = {}; sigaddset(&mask, SIGCHLD); @@ -169,7 +169,7 @@ main(void) TAIL_ALLOC_OBJECT_CONST_PTR(siginfo_t, sinfo); memset(sinfo, 0, sizeof(*sinfo)); - TAIL_ALLOC_OBJECT_CONST_PTR(struct rusage, rusage); + TAIL_ALLOC_OBJECT_CONST_PTR(kernel_rusage_t, rusage); if (do_waitid(P_PID, pid, sinfo, WNOHANG|WEXITED|WSTOPPED, rusage)) perror_msg_and_fail("waitid #2"); tprintf("waitid(P_PID, %d, {}, WNOHANG|WEXITED|WSTOPPED, %s) = 0\n", diff --git a/tests-mx32/waitpid.c b/tests-mx32/waitpid.c index 7069bec8..14f79402 100644 --- a/tests-mx32/waitpid.c +++ b/tests-mx32/waitpid.c @@ -2,13 +2,14 @@ * Check decoding of waitpid syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_waitpid diff --git a/tests-mx32/xet_robust_list--pidns-translation.c b/tests-mx32/xet_robust_list--pidns-translation.c new file mode 100644 index 00000000..e0477267 --- /dev/null +++ b/tests-mx32/xet_robust_list--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "xet_robust_list.c" diff --git a/tests-mx32/xet_robust_list--pidns-translation.gen.test b/tests-mx32/xet_robust_list--pidns-translation.gen.test new file mode 100755 index 00000000..e660e10e --- /dev/null +++ b/tests-mx32/xet_robust_list--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (xet_robust_list--pidns-translation test_pidns -a24 -e trace=get_robust_list,set_robust_list); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a24 -e trace=get_robust_list,set_robust_list diff --git a/tests-mx32/xet_robust_list.c b/tests-mx32/xet_robust_list.c index cf4f2234..04376bfb 100644 --- a/tests-mx32/xet_robust_list.c +++ b/tests-mx32/xet_robust_list.c @@ -1,13 +1,14 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #if defined __NR_get_robust_list && defined __NR_set_robust_list @@ -30,27 +31,36 @@ sprintaddr(void *addr) int main(void) { + PIDNS_TEST_INIT; + const pid_t pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); const long long_pid = (unsigned long) (0xdeadbeef00000000LL | pid); TAIL_ALLOC_OBJECT_CONST_PTR(void *, p_head); TAIL_ALLOC_OBJECT_CONST_PTR(size_t, p_len); if (syscall(__NR_get_robust_list, long_pid, p_head, p_len)) perror_msg_and_skip("get_robust_list"); - printf("get_robust_list(%d, [%s], [%lu]) = 0\n", - (int) pid, sprintaddr(*p_head), (unsigned long) *p_len); + pidns_print_leader(); + printf("get_robust_list(%d%s, [%s], [%lu]) = 0\n", + pid, pid_str, sprintaddr(*p_head), + (unsigned long) *p_len); void *head = tail_alloc(*p_len); if (syscall(__NR_set_robust_list, head, *p_len)) perror_msg_and_skip("set_robust_list"); + pidns_print_leader(); printf("set_robust_list(%p, %lu) = 0\n", head, (unsigned long) *p_len); if (syscall(__NR_get_robust_list, long_pid, p_head, p_len)) perror_msg_and_skip("get_robust_list"); - printf("get_robust_list(%d, [%s], [%lu]) = 0\n", - (int) pid, sprintaddr(*p_head), (unsigned long) *p_len); + pidns_print_leader(); + printf("get_robust_list(%d%s, [%s], [%lu]) = 0\n", + pid, pid_str, sprintaddr(*p_head), + (unsigned long) *p_len); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-mx32/xet_thread_area_x86.c b/tests-mx32/xet_thread_area_x86.c index a1efd319..bdc07883 100644 --- a/tests-mx32/xet_thread_area_x86.c +++ b/tests-mx32/xet_thread_area_x86.c @@ -2,7 +2,7 @@ * Check decoding of set_thread_area and get_thread_area syscalls on x86 * architecture. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined __NR_get_thread_area && defined __NR_set_thread_area \ && defined HAVE_STRUCT_USER_DESC diff --git a/tests-mx32/xetitimer.c b/tests-mx32/xetitimer.c index 8d758974..f3455e88 100644 --- a/tests-mx32/xetitimer.c +++ b/tests-mx32/xetitimer.c @@ -2,6 +2,7 @@ * Check decoding of setitimer and getitimer syscalls. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,12 +13,18 @@ #include #include #include -#include +#include "scno.h" +#include "kernel_timeval.h" + +typedef struct { + kernel_old_timeval_t it_interval; + kernel_old_timeval_t it_value; +} kernel_old_itimerval_t; int main(void) { - static const struct itimerval new = { + static const kernel_old_itimerval_t new = { .it_interval = { 0xc0de1, 0xc0de2 }, .it_value = { 0xc0de3, 0xc0de4 } }; @@ -26,12 +33,12 @@ main(void) static const kernel_ulong_t bogus_timer = (kernel_ulong_t) 0xfacefeeddeadbeefULL; - TAIL_ALLOC_OBJECT_CONST_PTR(struct itimerval, p_old); - struct itimerval *const p_new = tail_memdup(&new, sizeof(new)); + TAIL_ALLOC_OBJECT_CONST_PTR(kernel_old_itimerval_t, p_old); + kernel_old_itimerval_t *const p_new = tail_memdup(&new, sizeof(new)); void *const efault = tail_alloc(sizeof(new) - 8); long rc; - if (setitimer(ITIMER_REAL, p_new, NULL)) + if (syscall(__NR_setitimer, ITIMER_REAL, p_new, NULL)) perror_msg_and_skip("setitimer"); printf("setitimer(ITIMER_REAL" ", {it_interval={tv_sec=%lld, tv_usec=%llu}" @@ -43,7 +50,7 @@ main(void) zero_extend_signed_to_ull(new.it_value.tv_usec)); fill_memory(p_old, sizeof(*p_old)); - if (getitimer(ITIMER_REAL, p_old)) + if (syscall(__NR_getitimer, ITIMER_REAL, p_old)) perror_msg_and_skip("getitimer"); printf("getitimer(ITIMER_REAL" ", {it_interval={tv_sec=%lld, tv_usec=%llu}" @@ -54,7 +61,7 @@ main(void) zero_extend_signed_to_ull(p_old->it_value.tv_usec)); fill_memory(p_old, sizeof(*p_old)); - setitimer(ITIMER_REAL, p_new, p_old); + syscall(__NR_setitimer, ITIMER_REAL, p_new, p_old); printf("setitimer(ITIMER_REAL" ", {it_interval={tv_sec=%lld, tv_usec=%llu}" ", it_value={tv_sec=%lld, tv_usec=%llu}}" @@ -69,10 +76,10 @@ main(void) (long long) p_old->it_value.tv_sec, zero_extend_signed_to_ull(p_old->it_value.tv_usec)); - rc = getitimer(ITIMER_REAL, efault); + rc = syscall(__NR_getitimer, ITIMER_REAL, efault); printf("getitimer(ITIMER_REAL, %p) = %s\n", efault, sprintrc(rc)); - rc = setitimer(ITIMER_REAL, p_new, efault); + rc = syscall(__NR_setitimer, ITIMER_REAL, p_new, efault); printf("setitimer(ITIMER_REAL" ", {it_interval={tv_sec=%lld, tv_usec=%llu}" ", it_value={tv_sec=%lld, tv_usec=%llu}}, %p) = %s\n", @@ -82,7 +89,7 @@ main(void) zero_extend_signed_to_ull(new.it_value.tv_usec), efault, sprintrc(rc)); - rc = setitimer(ITIMER_REAL, efault, p_old); + rc = syscall(__NR_setitimer, ITIMER_REAL, efault, p_old); printf("setitimer(ITIMER_REAL, %p, %p) = %s\n", efault, p_old, sprintrc(rc)); @@ -146,10 +153,12 @@ main(void) p_new->it_interval.tv_sec = 0xdeadbeefU; p_new->it_interval.tv_usec = 0xfacefeedU; - p_new->it_value.tv_sec = (time_t) 0xcafef00ddeadbeefLL; - p_new->it_value.tv_usec = (suseconds_t) 0xbadc0dedfacefeedLL; + p_new->it_value.tv_sec = + (typeof(p_new->it_value.tv_sec)) 0xcafef00ddeadbeefLL; + p_new->it_value.tv_usec = + (typeof(p_new->it_value.tv_usec)) 0xbadc0dedfacefeedLL; - rc = setitimer(ITIMER_REAL, p_new, p_old); + rc = syscall(__NR_setitimer, ITIMER_REAL, p_new, p_old); printf("setitimer(ITIMER_REAL" ", {it_interval={tv_sec=%lld, tv_usec=%llu}" ", it_value={tv_sec=%lld, tv_usec=%llu}}, %p) = %s\n", diff --git a/tests-mx32/xetpgid--pidns-translation.c b/tests-mx32/xetpgid--pidns-translation.c new file mode 100644 index 00000000..b6469628 --- /dev/null +++ b/tests-mx32/xetpgid--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "xetpgid.c" diff --git a/tests-mx32/xetpgid--pidns-translation.gen.test b/tests-mx32/xetpgid--pidns-translation.gen.test new file mode 100755 index 00000000..93c1ec3b --- /dev/null +++ b/tests-mx32/xetpgid--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (xetpgid--pidns-translation test_pidns -a11 -e trace=getpgid,setpgid); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a11 -e trace=getpgid,setpgid diff --git a/tests-mx32/xetpgid.c b/tests-mx32/xetpgid.c index 46dd332d..94f9bc5e 100644 --- a/tests-mx32/xetpgid.c +++ b/tests-mx32/xetpgid.c @@ -2,14 +2,15 @@ * This file is part of xetpgid strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #if defined __NR_getpgid && defined __NR_setpgid @@ -19,13 +20,21 @@ int main(void) { - const int pid = getpid(); - long rc = syscall(__NR_getpgid, F8ILL_KULONG_MASK | pid); - printf("getpgid(%d) = %ld\n", pid, rc); - - rc = syscall(__NR_setpgid, F8ILL_KULONG_MASK, F8ILL_KULONG_MASK | pid); - printf("setpgid(0, %d) = %ld\n", pid, rc); + PIDNS_TEST_INIT; + const int pid = getpid(); + long pgid = syscall(__NR_getpgid, F8ILL_KULONG_MASK | pid); + pidns_print_leader(); + printf("getpgid(%d%s) = %ld%s\n", pid, pidns_pid2str(PT_TGID), + pgid, pidns_pid2str(PT_PGID)); + + long rc = syscall(__NR_setpgid, F8ILL_KULONG_MASK, + F8ILL_KULONG_MASK | pgid); + pidns_print_leader(); + printf("setpgid(0, %ld%s) = %s\n", pgid, pidns_pid2str(PT_PGID), + sprintrc(rc)); + + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-mx32/xetpriority--pidns-translation.c b/tests-mx32/xetpriority--pidns-translation.c new file mode 100644 index 00000000..c93669cb --- /dev/null +++ b/tests-mx32/xetpriority--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "xetpriority.c" diff --git a/tests-mx32/xetpriority--pidns-translation.gen.test b/tests-mx32/xetpriority--pidns-translation.gen.test new file mode 100755 index 00000000..d221c7cb --- /dev/null +++ b/tests-mx32/xetpriority--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (xetpriority--pidns-translation test_pidns -a27 -e trace=getpriority,setpriority); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a27 -e trace=getpriority,setpriority diff --git a/tests-mx32/xetpriority.c b/tests-mx32/xetpriority.c index 5cd97ea9..0832ea94 100644 --- a/tests-mx32/xetpriority.c +++ b/tests-mx32/xetpriority.c @@ -1,12 +1,13 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #if defined __NR_getpriority && defined __NR_setpriority @@ -17,15 +18,30 @@ int main(void) { + PIDNS_TEST_INIT; + const int pid = getpid(); + const int pgid = getpgid(0); + long rc = syscall(__NR_getpriority, PRIO_PROCESS, F8ILL_KULONG_MASK | pid); - printf("getpriority(PRIO_PROCESS, %d) = %ld\n", pid, rc); + pidns_print_leader(); + printf("getpriority(PRIO_PROCESS, %d%s) = %ld\n", + pid, pidns_pid2str(PT_TGID), rc); rc = syscall(__NR_setpriority, PRIO_PROCESS, F8ILL_KULONG_MASK | pid, F8ILL_KULONG_MASK); - printf("setpriority(PRIO_PROCESS, %d, 0) = %s\n", pid, sprintrc(rc)); + pidns_print_leader(); + printf("setpriority(PRIO_PROCESS, %d%s, 0) = %s\n", + pid, pidns_pid2str(PT_TGID), sprintrc(rc)); + + rc = syscall(__NR_getpriority, PRIO_PGRP, + F8ILL_KULONG_MASK | pgid); + pidns_print_leader(); + printf("getpriority(PRIO_PGRP, %d%s) = %ld\n", + pgid, pidns_pid2str(PT_PGID), rc); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests-mx32/xetpriority.gen.test b/tests-mx32/xetpriority.gen.test index 4b955247..485c1071 100755 --- a/tests-mx32/xetpriority.gen.test +++ b/tests-mx32/xetpriority.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (xetpriority -a29 -e trace=getpriority,setpriority); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (xetpriority -a27 -e trace=getpriority,setpriority); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a29 -e trace=getpriority,setpriority +run_strace_match_diff -a27 -e trace=getpriority,setpriority diff --git a/tests-mx32/xettimeofday.c b/tests-mx32/xettimeofday.c index 9c811262..eca3959b 100644 --- a/tests-mx32/xettimeofday.c +++ b/tests-mx32/xettimeofday.c @@ -1,18 +1,22 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include -#include -#include -#include -#include +#include "scno.h" + +#ifdef __NR_gettimeofday + +# include +# include +# include +# include +# include +# include "scno.h" int main(void) @@ -64,3 +68,9 @@ main(void) puts("+++ exited with 0 +++"); return 0; } + +#else + +SKIP_MAIN_UNDEFINED("__NR_gettimeofday") + +#endif /* __NR_gettimeofday */ diff --git a/tests-mx32/xgetdents.c b/tests-mx32/xgetdents.c new file mode 100644 index 00000000..c550625e --- /dev/null +++ b/tests-mx32/xgetdents.c @@ -0,0 +1,141 @@ +/* + * Check decoding of getdents and getdents64 syscalls. + * + * Copyright (c) 2015-2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include +#include +#include +#include +#include +#include "kernel_dirent.h" +#include "print_fields.h" + +#if VERBOSE +static const char * +str_d_type(const unsigned char d_type) +{ + switch (d_type) { + case DT_DIR: + return "DT_DIR"; + case DT_REG: + return "DT_REG"; + default: + return "DT_UNKNOWN"; + } +} + +static void +print_dirent(const kernel_dirent_type *d); +#endif + +static const char *errstr; + +static long +k_getdents(const unsigned int fd, + const void *dirp, + const unsigned int count) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | fd; + const kernel_ulong_t arg2 = (uintptr_t) dirp; + const kernel_ulong_t arg3 = fill | count; + const long rc = syscall(NR_getdents, arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +static void +ls(int fd, char *buf, unsigned int size) +{ + long rc; + while ((rc = k_getdents(fd, buf, size))) { + if (rc < 0) + perror_msg_and_skip(STR_getdents); + printf("%s(%d, ", STR_getdents, fd); +#if VERBOSE + printf("["); +#else + unsigned long entries = 0; +#endif + kernel_dirent_type *d; + for (long i = 0; i < rc; i += d->d_reclen) { + d = (kernel_dirent_type *) &buf[i]; +#if VERBOSE + if (i) + printf(", "); + print_dirent(d); +#else + ++entries; +#endif + } +#if VERBOSE + printf("]"); +#else + printf("%p /* %lu entries */", buf, entries); +#endif + printf(", %u) = %ld\n", size, rc); + } +#if VERBOSE + printf("%s(%d, [], %u) = 0\n", STR_getdents, fd, size); +#else + printf("%s(%d, %p /* 0 entries */, %u) = 0\n", + STR_getdents, fd, buf, size); +#endif +} + +int +main(void) +{ + static const char dot[] = "."; + static const char dot_dot[] = ".."; + static const char dname[] = STR_getdents +#if VERBOSE + "-v" +#endif + ".test.tmp.dir"; + static const char fname[] = + "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" + "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" + "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" + "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" + "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" + "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" + "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" + "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nZ"; + + if (mkdir(dname, 0700)) + perror_msg_and_fail("mkdir: %s", dname); + if (chdir(dname)) + perror_msg_and_fail("chdir: %s", dname); + int fd = creat(fname, 0600); + if (fd < 0) + perror_msg_and_fail("creat: %s", fname); + if (close(fd)) + perror_msg_and_fail("close: %s", fname); + fd = open(dot, O_RDONLY | O_DIRECTORY); + if (fd < 0) + perror_msg_and_fail("open: %s", dot); + + unsigned int count = 0xdeadbeefU; + k_getdents(-1U, NULL, count); + printf("%s(-1, NULL, %u) = %s\n", STR_getdents, count, errstr); + + static char buf[8192]; + ls(fd, buf, sizeof(buf)); + + if (unlink(fname)) + perror_msg_and_fail("unlink: %s", fname); + if (chdir(dot_dot)) + perror_msg_and_fail("chdir: %s", dot_dot); + if (rmdir(dname)) + perror_msg_and_fail("rmdir: %s", dname); + + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests-mx32/xgetrlimit.c b/tests-mx32/xgetrlimit.c index a1c89e9b..6a9c0538 100644 --- a/tests-mx32/xgetrlimit.c +++ b/tests-mx32/xgetrlimit.c @@ -77,9 +77,13 @@ int main(void) { kernel_ulong_t *const rlimit = tail_alloc(sizeof(*rlimit) * 2); - const struct xlat *xlat; + const struct xlat_data *xlat; + size_t i; + + for (xlat = resources->data, i = 0; i < resources->size; ++xlat, ++i) { + if (!xlat->str) + continue; - for (xlat = resources; xlat->str; ++xlat) { unsigned long res = 0xfacefeed00000000ULL | xlat->val; long rc = syscall(NR_GETRLIMIT, res, 0); if (rc && ENOSYS == errno) diff --git a/tests-mx32/xmalloc_for_tests.c b/tests-mx32/xmalloc_for_tests.c new file mode 100644 index 00000000..5c496adb --- /dev/null +++ b/tests-mx32/xmalloc_for_tests.c @@ -0,0 +1,2 @@ +#define error_msg_and_die error_msg_and_fail +#include "xmalloc.c" diff --git a/tests-mx32/xstatfsx.c b/tests-mx32/xstatfsx.c index 1b91e844..8a86fdc3 100644 --- a/tests-mx32/xstatfsx.c +++ b/tests-mx32/xstatfsx.c @@ -34,10 +34,9 @@ static void print_statfs_type(const char *const prefix, const unsigned int magic) { fputs(prefix, stdout); - unsigned int i; - for (i = 0; i < ARRAY_SIZE(fsmagic); ++i) - if (magic == fsmagic[i].val) { - fputs(fsmagic[i].str, stdout); + for (unsigned int i = 0; i < fsmagic->size; ++i) + if (magic == fsmagic->data[i].val) { + fputs(fsmagic->data[i].str, stdout); return; } printf("%#x", magic); diff --git a/tests-mx32/xstatx.c b/tests-mx32/xstatx.c index 0d223bdc..aa9a0ae0 100644 --- a/tests-mx32/xstatx.c +++ b/tests-mx32/xstatx.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -46,6 +46,7 @@ typedef off_t libc_off_t; # define stat64 libc_stat64 # define statx libc_statx # define statx_timestamp libc_statx_timestamp +struct statx; # include # include # undef statx_timestamp @@ -460,19 +461,19 @@ main(void) SET_FLAGS_INVOKE(0xffffff, "AT_STATX_FORCE_SYNC|AT_STATX_DONT_SYNC|AT_SYMLINK_NOFOLLOW|" "AT_REMOVEDIR|AT_SYMLINK_FOLLOW|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|" - "0xff80ff"); + "AT_RECURSIVE|0xff00ff"); /* We're done playing with flags. */ TEST_SYSCALL_STATX_FLAGS = old_flags; TEST_SYSCALL_STATX_FLAGS_STR = old_flags_str; SET_MASK_INVOKE(0, "0"); - SET_MASK_INVOKE(0xfffff000U, "0xfffff000 /* STATX_??? */"); + SET_MASK_INVOKE(0xffffe000U, "0xffffe000 /* STATX_??? */"); SET_MASK_INVOKE(0xfffffffbU, "STATX_TYPE|STATX_MODE|STATX_UID|STATX_GID|STATX_ATIME|" "STATX_MTIME|STATX_CTIME|STATX_INO|STATX_SIZE|STATX_BLOCKS|" - "STATX_BTIME|0xfffff000"); + "STATX_BTIME|STATX_MNT_ID|0xffffe000"); SET_MASK_INVOKE(STATX_UID, "STATX_UID"); diff --git a/tests-mx32/zeroargc.c b/tests-mx32/zeroargc.c index 672959c4..3034e527 100644 --- a/tests-mx32/zeroargc.c +++ b/tests-mx32/zeroargc.c @@ -1,7 +1,8 @@ /* - * Execute an executable with zero argc and specified anvironment. + * Execute an executable with zero argc and specified environment. * * Copyright (c) 2017-2018 Dmitry V. Levin + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later diff --git a/tests/COPYING b/tests/COPYING index 6aba5919..059b0321 100644 --- a/tests/COPYING +++ b/tests/COPYING @@ -1,4 +1,4 @@ -Copyright (c) 2011-2019 The strace developers. +Copyright (c) 2011-2020 The strace developers. All rights reserved. strace test suite is free software; you can redistribute it and/or modify diff --git a/tests/Makefile.am b/tests/Makefile.am index 9e99aff2..17f4b424 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,12 +1,13 @@ # Automake input for strace tests. # # Copyright (c) 2011-2016 Dmitry V. Levin -# Copyright (c) 2011-2019 The strace developers. +# Copyright (c) 2011-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later OS = linux +CC = @CC@ ARCH = @arch@ NATIVE_ARCH = @arch_native@ SIZEOF_KERNEL_LONG_T = @SIZEOF_KERNEL_LONG_T@ @@ -29,6 +30,7 @@ AM_LDFLAGS = $(ARCH_MFLAGS) libtests_a_SOURCES = \ create_nl_socket.c \ + create_tmpfile.c \ errno2name.c \ error_msg.c \ fill_memory.c \ @@ -40,15 +42,21 @@ libtests_a_SOURCES = \ inode_of_sockfd.c \ libmmsg.c \ libsocketcall.c \ + lock_file.c \ overflowuid.c \ + pidns.c \ + pidns.h \ pipe_maxfd.c \ print_quoted_string.c \ print_time.c \ printflags.c \ - printxval.c \ + printxval-Xabbrev.c \ + printxval-Xraw.c \ + printxval-Xverbose.c \ signal2name.c \ skip_unavailable.c \ sprintrc.c \ + status.c \ tail_alloc.c \ test_netlink.h \ test_nlattr.h \ @@ -58,6 +66,7 @@ libtests_a_SOURCES = \ test_ucopy.h \ tests.h \ tprintf.c \ + xmalloc_for_tests.c \ # end of libtests_a_SOURCES libtests_a_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 check_LIBRARIES = libtests.a @@ -73,49 +82,102 @@ check_PROGRAMS = $(PURE_EXECUTABLES) \ attach-p-cmd-cmd \ attach-p-cmd-p \ block_reset_raise_run \ + block_reset_run \ bpf-obj_get_info_by_fd \ bpf-obj_get_info_by_fd-prog \ bpf-obj_get_info_by_fd-prog-v \ bpf-obj_get_info_by_fd-v \ bpf-success \ + bpf-success-long-y \ bpf-success-v \ caps-abbrev \ check_sigblock \ check_sigign \ clone_parent \ + clone_parent--quiet-exit \ + clone_parent-q \ + clone_parent-qq \ clone_ptrace \ + clone_ptrace--quiet-attach \ + clone_ptrace--quiet-exit \ + clone_ptrace-q \ + clone_ptrace-qq \ + clone3-success \ + clone3-success-Xabbrev \ + clone3-success-Xraw \ + clone3-success-Xverbose \ count-f \ delay \ execve-v \ execveat-v \ + fcntl--pidns-translation \ + fcntl64--pidns-translation \ + filter_seccomp-flag \ + filter_seccomp-perf \ filter-unavailable \ fork-f \ + fork--pidns-translation \ fsync-y \ + get_process_reaper \ + getpgrp--pidns-translation \ getpid \ + getpid--pidns-translation \ getppid \ + getsid--pidns-translation \ gettid \ + gettid--pidns-translation \ inject-nf \ int_0x80 \ + ioctl_block--pidns-translation \ ioctl_dm-v \ ioctl_evdev-success \ + ioctl_evdev-success-Xabbrev \ + ioctl_evdev-success-Xraw \ + ioctl_evdev-success-Xverbose \ ioctl_evdev-success-v \ - ioctl_evdev-v \ + ioctl_evdev-success-v-Xabbrev \ + ioctl_evdev-success-v-Xraw \ + ioctl_evdev-success-v-Xverbose \ + ioctl_hdio-success \ + ioctl_hdio-success-Xabbrev \ + ioctl_hdio-success-Xraw \ + ioctl_hdio-success-Xverbose \ + ioctl_hdio-success-v \ + ioctl_hdio-success-v-Xabbrev \ + ioctl_hdio-success-v-Xraw \ + ioctl_hdio-success-v-Xverbose \ ioctl_loop-nv \ ioctl_loop-v \ ioctl_nsfs \ ioctl_perf-success \ ioctl_rtc-v \ + ioctl_v4l2-success \ + ioctl_v4l2-success-Xabbrev \ + ioctl_v4l2-success-Xraw \ + ioctl_v4l2-success-Xverbose \ + ioctl_v4l2-success-v \ + ioctl_v4l2-success-v-Xabbrev \ + ioctl_v4l2-success-v-Xraw \ + ioctl_v4l2-success-v-Xverbose \ + ioprio--pidns-translation \ is_linux_mips_n64 \ + kcmp-y--pidns-translation \ kill_child \ + kill--pidns-translation \ ksysent \ list_sigaction_signum \ localtime \ looping_threads \ + migrate_pages--pidns-translation \ mmsg-silent \ mmsg_name-v \ + move_pages--pidns-translation \ msg_control-v \ net-accept-connect \ + net-sockaddr--pidns-translation \ net-tpacket_stats-success \ + nlattr_ifla_xdp-y \ + netlink_audit--pidns-translation \ netlink_inet_diag \ netlink_netlink_diag \ netlink_unix_diag \ @@ -127,11 +189,20 @@ check_PROGRAMS = $(PURE_EXECUTABLES) \ pc \ perf_event_open_nonverbose \ perf_event_open_unabbrev \ + pidfd_open--pidns-translation \ + pidfd_send_signal--pidns-translation \ + pidns-cache \ + poll-P \ + ppoll-P \ ppoll-v \ + prlimit64--pidns-translation \ prctl-seccomp-filter-v \ prctl-seccomp-strict \ prctl-spec-inject \ print_maxfd \ + print_ppid_tracerpid \ + process_vm_readv--pidns-translation \ + process_vm_writev--pidns-translation \ qual_fault \ qual_inject-error-signal \ qual_inject-retval \ @@ -145,7 +216,13 @@ check_PROGRAMS = $(PURE_EXECUTABLES) \ quotactl-xfs-v \ redirect-fds \ restart_syscall \ + rt_sigqueueinfo--pidns-translation \ + rt_tgsigqueueinfo--pidns-translation \ run_expect_termsig \ + sched_xetaffinity--pidns-translation \ + sched_xetattr--pidns-translation \ + sched_xetparam--pidns-translation \ + sched_xetscheduler--pidns-translation \ scm_rights \ seccomp-filter-v \ seccomp-strict \ @@ -153,17 +230,35 @@ check_PROGRAMS = $(PURE_EXECUTABLES) \ set_ptracer_any \ set_sigblock \ set_sigign \ + setpgrp-exec \ signal_receive \ + signal_receive--pidns-translation \ sleep \ stack-fcall \ + stack-fcall-attach \ stack-fcall-mangled \ + status-none-threads \ + status-unfinished-threads \ + so_peercred--pidns-translation \ + syslog-success \ + tgkill--pidns-translation \ threads-execve \ + threads-execve--quiet-thread-execve \ + threads-execve-q \ + threads-execve-qq \ + threads-execve-qqq \ + tkill--pidns-translation \ + tracer_ppid_pgid_sid \ + trie_test \ unblock_reset_raise \ unix-pair-send-recv \ unix-pair-sendto-recvfrom \ vfork-f \ wait4-v \ waitid-v \ + xetpgid--pidns-translation \ + xetpriority--pidns-translation \ + xet_robust_list--pidns-translation \ zeroargc \ # end of check_PROGRAMS @@ -177,6 +272,8 @@ ftruncate64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 localtime_LDADD = $(clock_LIBS) $(LDADD) looping_threads_LDADD = -lpthread $(LDADD) lstat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 +maybe_switch_current_tcp_LDADD = -lpthread $(LDADD) +maybe_switch_current_tcp__quiet_thread_execve_LDADD = -lpthread $(LDADD) mmap64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 mmap64_Xabbrev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 mmap64_Xraw_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 @@ -190,7 +287,13 @@ preadv_pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 stat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 statfs_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 +status_none_threads_LDADD = -lpthread $(LDADD) +status_unfinished_threads_LDADD = -lpthread $(LDADD) threads_execve_LDADD = -lpthread $(clock_LIBS) $(LDADD) +threads_execve__quiet_thread_execve_LDADD = -lpthread $(clock_LIBS) $(LDADD) +threads_execve_q_LDADD = -lpthread $(clock_LIBS) $(LDADD) +threads_execve_qq_LDADD = -lpthread $(clock_LIBS) $(LDADD) +threads_execve_qqq_LDADD = -lpthread $(clock_LIBS) $(LDADD) times_LDADD = $(clock_LIBS) $(LDADD) truncate64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 uio_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 @@ -198,14 +301,22 @@ uio_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 stack_fcall_SOURCES = stack-fcall.c \ stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c +stack_fcall_attach_SOURCES = stack-fcall-attach.c \ + stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c + stack_fcall_mangled_SOURCES = stack-fcall-mangled.c \ stack-fcall-mangled-0.c stack-fcall-mangled-1.c \ stack-fcall-mangled-2.c stack-fcall-mangled-3.c +trie_test_SOURCES = trie_test.c trie_for_tests.c +trie_test_CPPFLAGS = $(AM_CPPFLAGS) $(CODE_COVERAGE_CPPFLAGS) +trie_test_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS) +trie_test_LDADD = $(LDADD) $(CODE_COVERAGE_LIBS) + include gen_tests.am if ENABLE_STACKTRACE -STACKTRACE_TESTS = strace-k.test +STACKTRACE_TESTS = strace-k.test strace-k-p.test if USE_DEMANGLE STACKTRACE_TESTS += strace-k-demangle.test endif @@ -214,6 +325,7 @@ STACKTRACE_TESTS = endif DECODER_TESTS = \ + bpf-success-long-y.test \ bpf-success-v.test \ bpf-success.test \ brk.test \ @@ -226,17 +338,21 @@ DECODER_TESTS = \ btrfs-wX.test \ caps-abbrev.test \ caps.test \ + clone-flags.test \ + clone3-success.test \ eventfd.test \ execve-v.test \ execve.test \ fadvise64.test \ + faccessat.test \ + faccessat2.test \ futex.test \ getuid.test \ int_0x80.test \ + inotify_init-y.test \ ioctl.test \ - ioctl_evdev-success-v.test \ + ioctl_block--pidns-translation.test \ ioctl_evdev-success.test \ - ioctl_perf-success.test \ ipc_msgbuf.test \ kern_features-fault.test \ llseek.test \ @@ -278,6 +394,7 @@ DECODER_TESTS = \ seccomp-strict.test \ sigaltstack.test \ sun_path.test \ + syslog-success.test \ uio.test \ umount.test \ umount2.test \ @@ -293,7 +410,6 @@ MISC_TESTS = \ attach-f-p.test \ attach-p-cmd.test \ bexecve.test \ - clone_parent.test \ clone_ptrace.test \ count-f.test \ count.test \ @@ -302,20 +418,24 @@ MISC_TESTS = \ detach-sleeping.test \ detach-stopped.test \ fflush.test \ + filter_seccomp-perf.test \ filter-unavailable.test \ filtering_fd-syntax.test \ filtering_syscall-syntax.test \ first_exec_failure.test \ + fork--pidns-translation.test \ get_regs.test \ + gettid--pidns-translation.test \ inject-nf.test \ interactive_block.test \ kill_child.test \ - ksysent.test \ localtime.test \ looping_threads.test \ + netlink_audit--pidns-translation.test \ opipe.test \ options-syntax.test \ pc.test \ + pidns-cache.test \ printpath-umovestr-legacy.test \ printstrn-umoven-legacy.test \ qual_fault-syntax.test \ @@ -335,8 +455,16 @@ MISC_TESTS = \ restart_syscall.test \ sigblock.test \ sigign.test \ + status-detached.test \ + status-none-threads.test \ + status-unfinished-threads.test \ strace-C.test \ + strace-D.test \ + strace-DD.test \ + strace-DDD.test \ strace-E.test \ + strace-E-override.test \ + strace-E-unset.test \ strace-S.test \ strace-T.test \ strace-V.test \ @@ -349,6 +477,7 @@ MISC_TESTS = \ strace-ttt.test \ termsig.test \ threads-execve.test \ + umovestr_cached.test \ # end of MISC_TESTS TESTS = $(GEN_TESTS) $(DECODER_TESTS) $(MISC_TESTS) $(STACKTRACE_TESTS) @@ -381,7 +510,10 @@ EXTRA_DIST = \ eventfd.expected \ fadvise.h \ fcntl-common.c \ + filter_seccomp.in \ + filter_seccomp.sh \ filter-unavailable.expected \ + fork--pidns-translation.awk \ fstatat.c \ fstatx.c \ gen_pure_executables.sh \ @@ -390,17 +522,20 @@ EXTRA_DIST = \ getresugid.c \ init.sh \ init_delete_module.h \ + ioctl-success.sh \ ioctl_kvm_run_common.c \ ipc.sh \ + kernel_old_timespec.h \ + kernel_old_timex.h \ ksysent.sed \ lstatx.c \ match.awk \ net.expected \ - netlink_sock_diag-v.sh \ nlattr_ifla.h \ pipe.expected \ print_user_desc.c \ printsignal.c \ + printxval.c \ process_vm_readv_writev.c \ pure_executables.list \ qual_fault-exit_group.expected \ @@ -414,6 +549,7 @@ EXTRA_DIST = \ run.sh \ sched.in \ scno_tampering.sh \ + semop-common.c \ setfsugid.c \ setresugid.c \ setreugid.c \ @@ -422,18 +558,37 @@ EXTRA_DIST = \ sockaddr_xlat.c \ sockname.c \ stack-fcall.h \ + status-detached.expected \ + strace--follow-forks-output-separately.expected \ + strace--relative-timestamps.expected \ + strace--relative-timestamps-s.expected \ + strace--relative-timestamps-ms.expected \ + strace--relative-timestamps-us.expected \ + strace--relative-timestamps-ns.expected \ + strace--syscall-times.expected \ + strace--syscall-times-s.expected \ + strace--syscall-times-ms.expected \ + strace--syscall-times-us.expected \ + strace--syscall-times-ns.expected \ strace-C.expected \ + strace-D.expected \ + strace-DDD.expected \ strace-E.expected \ + strace-E-unset.expected \ strace-T.expected \ strace-ff.expected \ strace-k-demangle.expected \ strace-k-demangle.test \ + strace-k-p.expected \ + strace-k-p.test \ strace-k.expected \ strace-k.test \ strace-r.expected \ strace.supp \ sun_path.expected \ syntax.sh \ + trace_clock.in \ + trace_creds.in \ trace_fstat.in \ trace_fstatfs.in \ trace_lstat.in \ @@ -454,6 +609,7 @@ EXTRA_DIST = \ unix-pair-send-recv.expected \ unix-pair-sendto-recvfrom.expected \ xchownx.c \ + xgetdents.c \ xgetrlimit.c \ xselect.c \ xstatfs.c \ diff --git a/tests/Makefile.in b/tests/Makefile.in index 33859f47..d97c8c35 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. +# Makefile.in generated by automake 1.16.2 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2018 Free Software Foundation, Inc. +# Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -17,7 +17,7 @@ # Automake input for strace tests. # # Copyright (c) 2011-2016 Dmitry V. Levin -# Copyright (c) 2011-2019 The strace developers. +# Copyright (c) 2011-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -105,59 +105,173 @@ host_triplet = @host@ check_PROGRAMS = $(am__EXEEXT_1) _newselect-P$(EXEEXT) answer$(EXEEXT) \ attach-f-p$(EXEEXT) attach-f-p-cmd$(EXEEXT) \ attach-p-cmd-cmd$(EXEEXT) attach-p-cmd-p$(EXEEXT) \ - block_reset_raise_run$(EXEEXT) bpf-obj_get_info_by_fd$(EXEEXT) \ + block_reset_raise_run$(EXEEXT) block_reset_run$(EXEEXT) \ + bpf-obj_get_info_by_fd$(EXEEXT) \ bpf-obj_get_info_by_fd-prog$(EXEEXT) \ bpf-obj_get_info_by_fd-prog-v$(EXEEXT) \ bpf-obj_get_info_by_fd-v$(EXEEXT) bpf-success$(EXEEXT) \ - bpf-success-v$(EXEEXT) caps-abbrev$(EXEEXT) \ - check_sigblock$(EXEEXT) check_sigign$(EXEEXT) \ - clone_parent$(EXEEXT) clone_ptrace$(EXEEXT) count-f$(EXEEXT) \ + bpf-success-long-y$(EXEEXT) bpf-success-v$(EXEEXT) \ + caps-abbrev$(EXEEXT) check_sigblock$(EXEEXT) \ + check_sigign$(EXEEXT) clone_parent$(EXEEXT) \ + clone_parent--quiet-exit$(EXEEXT) clone_parent-q$(EXEEXT) \ + clone_parent-qq$(EXEEXT) clone_ptrace$(EXEEXT) \ + clone_ptrace--quiet-attach$(EXEEXT) \ + clone_ptrace--quiet-exit$(EXEEXT) clone_ptrace-q$(EXEEXT) \ + clone_ptrace-qq$(EXEEXT) clone3-success$(EXEEXT) \ + clone3-success-Xabbrev$(EXEEXT) clone3-success-Xraw$(EXEEXT) \ + clone3-success-Xverbose$(EXEEXT) count-f$(EXEEXT) \ delay$(EXEEXT) execve-v$(EXEEXT) execveat-v$(EXEEXT) \ - filter-unavailable$(EXEEXT) fork-f$(EXEEXT) fsync-y$(EXEEXT) \ - getpid$(EXEEXT) getppid$(EXEEXT) gettid$(EXEEXT) \ - inject-nf$(EXEEXT) int_0x80$(EXEEXT) ioctl_dm-v$(EXEEXT) \ - ioctl_evdev-success$(EXEEXT) ioctl_evdev-success-v$(EXEEXT) \ - ioctl_evdev-v$(EXEEXT) ioctl_loop-nv$(EXEEXT) \ + fcntl--pidns-translation$(EXEEXT) \ + fcntl64--pidns-translation$(EXEEXT) \ + filter_seccomp-flag$(EXEEXT) filter_seccomp-perf$(EXEEXT) \ + filter-unavailable$(EXEEXT) fork-f$(EXEEXT) \ + fork--pidns-translation$(EXEEXT) fsync-y$(EXEEXT) \ + get_process_reaper$(EXEEXT) \ + getpgrp--pidns-translation$(EXEEXT) getpid$(EXEEXT) \ + getpid--pidns-translation$(EXEEXT) getppid$(EXEEXT) \ + getsid--pidns-translation$(EXEEXT) gettid$(EXEEXT) \ + gettid--pidns-translation$(EXEEXT) inject-nf$(EXEEXT) \ + int_0x80$(EXEEXT) ioctl_block--pidns-translation$(EXEEXT) \ + ioctl_dm-v$(EXEEXT) ioctl_evdev-success$(EXEEXT) \ + ioctl_evdev-success-Xabbrev$(EXEEXT) \ + ioctl_evdev-success-Xraw$(EXEEXT) \ + ioctl_evdev-success-Xverbose$(EXEEXT) \ + ioctl_evdev-success-v$(EXEEXT) \ + ioctl_evdev-success-v-Xabbrev$(EXEEXT) \ + ioctl_evdev-success-v-Xraw$(EXEEXT) \ + ioctl_evdev-success-v-Xverbose$(EXEEXT) \ + ioctl_hdio-success$(EXEEXT) \ + ioctl_hdio-success-Xabbrev$(EXEEXT) \ + ioctl_hdio-success-Xraw$(EXEEXT) \ + ioctl_hdio-success-Xverbose$(EXEEXT) \ + ioctl_hdio-success-v$(EXEEXT) \ + ioctl_hdio-success-v-Xabbrev$(EXEEXT) \ + ioctl_hdio-success-v-Xraw$(EXEEXT) \ + ioctl_hdio-success-v-Xverbose$(EXEEXT) ioctl_loop-nv$(EXEEXT) \ ioctl_loop-v$(EXEEXT) ioctl_nsfs$(EXEEXT) \ ioctl_perf-success$(EXEEXT) ioctl_rtc-v$(EXEEXT) \ - is_linux_mips_n64$(EXEEXT) kill_child$(EXEEXT) \ - ksysent$(EXEEXT) list_sigaction_signum$(EXEEXT) \ - localtime$(EXEEXT) looping_threads$(EXEEXT) \ - mmsg-silent$(EXEEXT) mmsg_name-v$(EXEEXT) \ + ioctl_v4l2-success$(EXEEXT) \ + ioctl_v4l2-success-Xabbrev$(EXEEXT) \ + ioctl_v4l2-success-Xraw$(EXEEXT) \ + ioctl_v4l2-success-Xverbose$(EXEEXT) \ + ioctl_v4l2-success-v$(EXEEXT) \ + ioctl_v4l2-success-v-Xabbrev$(EXEEXT) \ + ioctl_v4l2-success-v-Xraw$(EXEEXT) \ + ioctl_v4l2-success-v-Xverbose$(EXEEXT) \ + ioprio--pidns-translation$(EXEEXT) is_linux_mips_n64$(EXEEXT) \ + kcmp-y--pidns-translation$(EXEEXT) kill_child$(EXEEXT) \ + kill--pidns-translation$(EXEEXT) ksysent$(EXEEXT) \ + list_sigaction_signum$(EXEEXT) localtime$(EXEEXT) \ + looping_threads$(EXEEXT) \ + migrate_pages--pidns-translation$(EXEEXT) mmsg-silent$(EXEEXT) \ + mmsg_name-v$(EXEEXT) move_pages--pidns-translation$(EXEEXT) \ msg_control-v$(EXEEXT) net-accept-connect$(EXEEXT) \ - net-tpacket_stats-success$(EXEEXT) netlink_inet_diag$(EXEEXT) \ - netlink_netlink_diag$(EXEEXT) netlink_unix_diag$(EXEEXT) \ - nsyscalls$(EXEEXT) nsyscalls-d$(EXEEXT) oldselect-P$(EXEEXT) \ + net-sockaddr--pidns-translation$(EXEEXT) \ + net-tpacket_stats-success$(EXEEXT) nlattr_ifla_xdp-y$(EXEEXT) \ + netlink_audit--pidns-translation$(EXEEXT) \ + netlink_inet_diag$(EXEEXT) netlink_netlink_diag$(EXEEXT) \ + netlink_unix_diag$(EXEEXT) nsyscalls$(EXEEXT) \ + nsyscalls-d$(EXEEXT) oldselect-P$(EXEEXT) \ oldselect-efault-P$(EXEEXT) orphaned_process_group$(EXEEXT) \ pc$(EXEEXT) perf_event_open_nonverbose$(EXEEXT) \ - perf_event_open_unabbrev$(EXEEXT) ppoll-v$(EXEEXT) \ + perf_event_open_unabbrev$(EXEEXT) \ + pidfd_open--pidns-translation$(EXEEXT) \ + pidfd_send_signal--pidns-translation$(EXEEXT) \ + pidns-cache$(EXEEXT) poll-P$(EXEEXT) ppoll-P$(EXEEXT) \ + ppoll-v$(EXEEXT) prlimit64--pidns-translation$(EXEEXT) \ prctl-seccomp-filter-v$(EXEEXT) prctl-seccomp-strict$(EXEEXT) \ prctl-spec-inject$(EXEEXT) print_maxfd$(EXEEXT) \ + print_ppid_tracerpid$(EXEEXT) \ + process_vm_readv--pidns-translation$(EXEEXT) \ + process_vm_writev--pidns-translation$(EXEEXT) \ qual_fault$(EXEEXT) qual_inject-error-signal$(EXEEXT) \ qual_inject-retval$(EXEEXT) qual_inject-signal$(EXEEXT) \ qual_signal$(EXEEXT) quotactl-success$(EXEEXT) \ quotactl-success-v$(EXEEXT) quotactl-v$(EXEEXT) \ quotactl-xfs-success$(EXEEXT) quotactl-xfs-success-v$(EXEEXT) \ quotactl-xfs-v$(EXEEXT) redirect-fds$(EXEEXT) \ - restart_syscall$(EXEEXT) run_expect_termsig$(EXEEXT) \ + restart_syscall$(EXEEXT) \ + rt_sigqueueinfo--pidns-translation$(EXEEXT) \ + rt_tgsigqueueinfo--pidns-translation$(EXEEXT) \ + run_expect_termsig$(EXEEXT) \ + sched_xetaffinity--pidns-translation$(EXEEXT) \ + sched_xetattr--pidns-translation$(EXEEXT) \ + sched_xetparam--pidns-translation$(EXEEXT) \ + sched_xetscheduler--pidns-translation$(EXEEXT) \ scm_rights$(EXEEXT) seccomp-filter-v$(EXEEXT) \ seccomp-strict$(EXEEXT) select-P$(EXEEXT) \ set_ptracer_any$(EXEEXT) set_sigblock$(EXEEXT) \ - set_sigign$(EXEEXT) signal_receive$(EXEEXT) sleep$(EXEEXT) \ - stack-fcall$(EXEEXT) stack-fcall-mangled$(EXEEXT) \ - threads-execve$(EXEEXT) unblock_reset_raise$(EXEEXT) \ - unix-pair-send-recv$(EXEEXT) \ + set_sigign$(EXEEXT) setpgrp-exec$(EXEEXT) \ + signal_receive$(EXEEXT) \ + signal_receive--pidns-translation$(EXEEXT) sleep$(EXEEXT) \ + stack-fcall$(EXEEXT) stack-fcall-attach$(EXEEXT) \ + stack-fcall-mangled$(EXEEXT) status-none-threads$(EXEEXT) \ + status-unfinished-threads$(EXEEXT) \ + so_peercred--pidns-translation$(EXEEXT) \ + syslog-success$(EXEEXT) tgkill--pidns-translation$(EXEEXT) \ + threads-execve$(EXEEXT) \ + threads-execve--quiet-thread-execve$(EXEEXT) \ + threads-execve-q$(EXEEXT) threads-execve-qq$(EXEEXT) \ + threads-execve-qqq$(EXEEXT) tkill--pidns-translation$(EXEEXT) \ + tracer_ppid_pgid_sid$(EXEEXT) trie_test$(EXEEXT) \ + unblock_reset_raise$(EXEEXT) unix-pair-send-recv$(EXEEXT) \ unix-pair-sendto-recvfrom$(EXEEXT) vfork-f$(EXEEXT) \ - wait4-v$(EXEEXT) waitid-v$(EXEEXT) zeroargc$(EXEEXT) + wait4-v$(EXEEXT) waitid-v$(EXEEXT) \ + xetpgid--pidns-translation$(EXEEXT) \ + xetpriority--pidns-translation$(EXEEXT) \ + xet_robust_list--pidns-translation$(EXEEXT) zeroargc$(EXEEXT) @ENABLE_STACKTRACE_TRUE@@USE_DEMANGLE_TRUE@am__append_1 = strace-k-demangle.test TESTS = $(GEN_TESTS) $(DECODER_TESTS) $(MISC_TESTS) $(am__EXEEXT_2) subdir = tests ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ax_code_coverage.m4 \ +am__aclocal_m4_deps = $(top_srcdir)/xlat/btrfs_compress_types.m4 \ + $(top_srcdir)/xlat/close_range_flags.m4 \ + $(top_srcdir)/xlat/loop_flags_options.m4 \ + $(top_srcdir)/xlat/rtnl_ifla_xdp_attached_mode.m4 \ + $(top_srcdir)/xlat/rtnl_ifla_xdp_attrs.m4 \ + $(top_srcdir)/xlat/rtnl_link_attrs.m4 \ + $(top_srcdir)/xlat/rtnl_tc_action_attrs.m4 \ + $(top_srcdir)/xlat/rtnl_tca_stab_attrs.m4 \ + $(top_srcdir)/xlat/rtnl_tca_stats_attrs.m4 \ + $(top_srcdir)/xlat/st_check_enums.m4 \ + $(top_srcdir)/xlat/sysctl_kern.m4 \ + $(top_srcdir)/xlat/sysctl_net.m4 \ + $(top_srcdir)/xlat/sysctl_net_core.m4 \ + $(top_srcdir)/xlat/sysctl_net_ipv4.m4 \ + $(top_srcdir)/xlat/sysctl_net_ipv4_conf.m4 \ + $(top_srcdir)/xlat/sysctl_net_ipv4_route.m4 \ + $(top_srcdir)/xlat/sysctl_net_ipv6.m4 \ + $(top_srcdir)/xlat/sysctl_net_ipv6_route.m4 \ + $(top_srcdir)/xlat/sysctl_net_unix.m4 \ + $(top_srcdir)/xlat/sysctl_root.m4 \ + $(top_srcdir)/xlat/sysctl_vm.m4 \ + $(top_srcdir)/xlat/v4l2_buf_types.m4 \ + $(top_srcdir)/xlat/v4l2_colorspaces.m4 \ + $(top_srcdir)/xlat/v4l2_control_types.m4 \ + $(top_srcdir)/xlat/v4l2_fields.m4 \ + $(top_srcdir)/xlat/v4l2_framesize_types.m4 \ + $(top_srcdir)/xlat/v4l2_memories.m4 \ + $(top_srcdir)/xlat/v4l2_tuner_types.m4 \ + $(top_srcdir)/xlat/waitid_types.m4 \ + $(top_srcdir)/types/check-btrfs.m4 \ + $(top_srcdir)/types/check-cryptouser.m4 \ + $(top_srcdir)/types/check-evdev.m4 \ + $(top_srcdir)/types/check-io_uring.m4 \ + $(top_srcdir)/types/check-loop.m4 \ + $(top_srcdir)/types/check-openat2.m4 \ + $(top_srcdir)/types/check-rtnl_link.m4 \ + $(top_srcdir)/types/check-rtnl_mdb.m4 \ + $(top_srcdir)/types/check-rtnl_neightbl.m4 \ + $(top_srcdir)/types/check-rtnl_route.m4 \ + $(top_srcdir)/types/check-tee.m4 \ + $(top_srcdir)/types/check-v4l2.m4 \ + $(top_srcdir)/types/st_check_types.m4 \ + $(top_srcdir)/m4/ax_code_coverage.m4 \ $(top_srcdir)/m4/ax_prog_cc_for_build.m4 \ $(top_srcdir)/m4/ax_valgrind_check.m4 \ $(top_srcdir)/m4/bpf_attr.m4 $(top_srcdir)/m4/mpers.m4 \ - $(top_srcdir)/m4/st_demangle.m4 $(top_srcdir)/m4/st_libdw.m4 \ + $(top_srcdir)/m4/st_demangle.m4 \ + $(top_srcdir)/m4/st_esyscmd_s.m4 $(top_srcdir)/m4/st_libdw.m4 \ $(top_srcdir)/m4/st_libunwind.m4 \ $(top_srcdir)/m4/st_save_restore_var.m4 \ $(top_srcdir)/m4/st_stacktrace.m4 \ @@ -173,19 +287,27 @@ CONFIG_CLEAN_VPATH_FILES = am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \ access$(EXEEXT) acct$(EXEEXT) add_key$(EXEEXT) \ adjtimex$(EXEEXT) aio$(EXEEXT) aio_pgetevents$(EXEEXT) \ - alarm$(EXEEXT) bpf$(EXEEXT) bpf-obj_get_info_by_fd$(EXEEXT) \ - bpf-obj_get_info_by_fd-prog$(EXEEXT) \ - bpf-obj_get_info_by_fd-prog-v$(EXEEXT) \ - bpf-obj_get_info_by_fd-v$(EXEEXT) bpf-v$(EXEEXT) brk$(EXEEXT) \ + alarm$(EXEEXT) bpf$(EXEEXT) bpf-v$(EXEEXT) brk$(EXEEXT) \ btrfs$(EXEEXT) caps$(EXEEXT) chmod$(EXEEXT) chown$(EXEEXT) \ chown32$(EXEEXT) chroot$(EXEEXT) clock_adjtime$(EXEEXT) \ clock_nanosleep$(EXEEXT) clock_xettime$(EXEEXT) \ + clone-flags$(EXEEXT) clone3$(EXEEXT) clone3-Xabbrev$(EXEEXT) \ + clone3-Xraw$(EXEEXT) clone3-Xverbose$(EXEEXT) \ + close_range$(EXEEXT) close_range-P$(EXEEXT) \ + close_range-y$(EXEEXT) close_range-yy$(EXEEXT) \ copy_file_range$(EXEEXT) creat$(EXEEXT) delete_module$(EXEEXT) \ - dev-yy$(EXEEXT) dup$(EXEEXT) dup2$(EXEEXT) dup3$(EXEEXT) \ + dev--decode-fds-dev$(EXEEXT) dev--decode-fds-path$(EXEEXT) \ + dev--decode-fds-socket$(EXEEXT) dev-yy$(EXEEXT) dup$(EXEEXT) \ + dup-P$(EXEEXT) dup-y$(EXEEXT) dup-yy$(EXEEXT) dup2$(EXEEXT) \ + dup2-P$(EXEEXT) dup2-y$(EXEEXT) dup2-yy$(EXEEXT) dup3$(EXEEXT) \ + dup3-P$(EXEEXT) dup3-y$(EXEEXT) dup3-yy$(EXEEXT) \ epoll_create$(EXEEXT) epoll_create1$(EXEEXT) \ epoll_ctl$(EXEEXT) epoll_pwait$(EXEEXT) epoll_wait$(EXEEXT) \ erestartsys$(EXEEXT) eventfd$(EXEEXT) execve$(EXEEXT) \ - execveat$(EXEEXT) faccessat$(EXEEXT) fadvise64$(EXEEXT) \ + execveat$(EXEEXT) faccessat$(EXEEXT) faccessat-P$(EXEEXT) \ + faccessat-y$(EXEEXT) faccessat-yy$(EXEEXT) faccessat2$(EXEEXT) \ + faccessat2-P$(EXEEXT) faccessat2-y$(EXEEXT) \ + faccessat2-yy$(EXEEXT) fadvise64$(EXEEXT) \ fadvise64_64$(EXEEXT) fallocate$(EXEEXT) \ fanotify_init$(EXEEXT) fanotify_mark$(EXEEXT) \ fanotify_mark-Xabbrev$(EXEEXT) fanotify_mark-Xraw$(EXEEXT) \ @@ -194,37 +316,54 @@ am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \ fchown32$(EXEEXT) fchownat$(EXEEXT) fcntl$(EXEEXT) \ fcntl64$(EXEEXT) fdatasync$(EXEEXT) fflush$(EXEEXT) \ file_handle$(EXEEXT) file_ioctl$(EXEEXT) finit_module$(EXEEXT) \ - flock$(EXEEXT) fstat$(EXEEXT) fstat-Xabbrev$(EXEEXT) \ + flock$(EXEEXT) fsconfig$(EXEEXT) fsconfig-P$(EXEEXT) \ + fsmount$(EXEEXT) fsopen$(EXEEXT) fspick$(EXEEXT) \ + fspick-P$(EXEEXT) fstat$(EXEEXT) fstat-Xabbrev$(EXEEXT) \ fstat-Xraw$(EXEEXT) fstat-Xverbose$(EXEEXT) fstat64$(EXEEXT) \ fstat64-Xabbrev$(EXEEXT) fstat64-Xraw$(EXEEXT) \ fstat64-Xverbose$(EXEEXT) fstatat64$(EXEEXT) fstatfs$(EXEEXT) \ fstatfs64$(EXEEXT) fsync$(EXEEXT) ftruncate$(EXEEXT) \ ftruncate64$(EXEEXT) futex$(EXEEXT) futimesat$(EXEEXT) \ get_mempolicy$(EXEEXT) getcpu$(EXEEXT) getcwd$(EXEEXT) \ - getdents$(EXEEXT) getdents64$(EXEEXT) getegid$(EXEEXT) \ - getegid32$(EXEEXT) geteuid$(EXEEXT) geteuid32$(EXEEXT) \ - getgid$(EXEEXT) getgid32$(EXEEXT) getgroups$(EXEEXT) \ - getgroups32$(EXEEXT) getpeername$(EXEEXT) getpgrp$(EXEEXT) \ - getpid$(EXEEXT) getppid$(EXEEXT) getrandom$(EXEEXT) \ - getresgid$(EXEEXT) getresgid32$(EXEEXT) getresuid$(EXEEXT) \ - getresuid32$(EXEEXT) getrlimit$(EXEEXT) getrusage$(EXEEXT) \ - getsid$(EXEEXT) getsockname$(EXEEXT) getuid$(EXEEXT) \ - getuid32$(EXEEXT) getxxid$(EXEEXT) group_req$(EXEEXT) \ - inet-cmsg$(EXEEXT) init_module$(EXEEXT) inotify$(EXEEXT) \ - inotify_init1$(EXEEXT) io_uring_enter$(EXEEXT) \ - io_uring_register$(EXEEXT) io_uring_setup$(EXEEXT) \ - ioctl$(EXEEXT) ioctl_block$(EXEEXT) ioctl_dm$(EXEEXT) \ - ioctl_evdev$(EXEEXT) ioctl_inotify$(EXEEXT) \ + getdents$(EXEEXT) getdents-v$(EXEEXT) getdents64$(EXEEXT) \ + getdents64-v$(EXEEXT) getegid$(EXEEXT) getegid32$(EXEEXT) \ + geteuid$(EXEEXT) geteuid32$(EXEEXT) getgid$(EXEEXT) \ + getgid32$(EXEEXT) getgroups$(EXEEXT) getgroups32$(EXEEXT) \ + getpeername$(EXEEXT) getpgrp$(EXEEXT) getpid$(EXEEXT) \ + getppid$(EXEEXT) getrandom$(EXEEXT) getresgid$(EXEEXT) \ + getresgid32$(EXEEXT) getresuid$(EXEEXT) getresuid32$(EXEEXT) \ + getrlimit$(EXEEXT) getrusage$(EXEEXT) getsid$(EXEEXT) \ + getsockname$(EXEEXT) getuid$(EXEEXT) getuid32$(EXEEXT) \ + getxgid$(EXEEXT) getxpid$(EXEEXT) getxuid$(EXEEXT) \ + group_req$(EXEEXT) inet-cmsg$(EXEEXT) init_module$(EXEEXT) \ + inotify$(EXEEXT) inotify_init$(EXEEXT) inotify_init-y$(EXEEXT) \ + inotify_init1$(EXEEXT) inotify_init1-y$(EXEEXT) \ + io_uring_enter$(EXEEXT) io_uring_register$(EXEEXT) \ + io_uring_setup$(EXEEXT) ioctl$(EXEEXT) ioctl_block$(EXEEXT) \ + ioctl_dm$(EXEEXT) ioctl_evdev$(EXEEXT) \ + ioctl_evdev-Xabbrev$(EXEEXT) ioctl_evdev-Xraw$(EXEEXT) \ + ioctl_evdev-Xverbose$(EXEEXT) ioctl_evdev-v$(EXEEXT) \ + ioctl_evdev-v-Xabbrev$(EXEEXT) ioctl_evdev-v-Xraw$(EXEEXT) \ + ioctl_evdev-v-Xverbose$(EXEEXT) ioctl_hdio$(EXEEXT) \ + ioctl_hdio-Xabbrev$(EXEEXT) ioctl_hdio-Xraw$(EXEEXT) \ + ioctl_hdio-Xverbose$(EXEEXT) ioctl_hdio-v$(EXEEXT) \ + ioctl_hdio-v-Xabbrev$(EXEEXT) ioctl_hdio-v-Xraw$(EXEEXT) \ + ioctl_hdio-v-Xverbose$(EXEEXT) ioctl_inotify$(EXEEXT) \ ioctl_kvm_run$(EXEEXT) ioctl_kvm_run-v$(EXEEXT) \ ioctl_kvm_run_auxstr_vcpu$(EXEEXT) ioctl_loop$(EXEEXT) \ ioctl_mtd$(EXEEXT) ioctl_nbd$(EXEEXT) ioctl_perf$(EXEEXT) \ ioctl_ptp$(EXEEXT) ioctl_random$(EXEEXT) ioctl_rtc$(EXEEXT) \ ioctl_scsi$(EXEEXT) ioctl_sg_io_v3$(EXEEXT) \ ioctl_sg_io_v4$(EXEEXT) ioctl_sock_gifconf$(EXEEXT) \ - ioctl_uffdio$(EXEEXT) ioctl_v4l2$(EXEEXT) ioperm$(EXEEXT) \ - iopl$(EXEEXT) ioprio$(EXEEXT) ioprio-Xabbrev$(EXEEXT) \ - ioprio-Xraw$(EXEEXT) ioprio-Xverbose$(EXEEXT) ip_mreq$(EXEEXT) \ - ipc$(EXEEXT) ipc_msg$(EXEEXT) ipc_msg-Xabbrev$(EXEEXT) \ + ioctl_tee$(EXEEXT) ioctl_uffdio$(EXEEXT) ioctl_v4l2$(EXEEXT) \ + ioctl_v4l2-Xabbrev$(EXEEXT) ioctl_v4l2-Xraw$(EXEEXT) \ + ioctl_v4l2-Xverbose$(EXEEXT) ioctl_v4l2-v$(EXEEXT) \ + ioctl_v4l2-v-Xabbrev$(EXEEXT) ioctl_v4l2-v-Xraw$(EXEEXT) \ + ioctl_v4l2-v-Xverbose$(EXEEXT) ioctl_watchdog$(EXEEXT) \ + ioperm$(EXEEXT) iopl$(EXEEXT) ioprio$(EXEEXT) \ + ioprio-Xabbrev$(EXEEXT) ioprio-Xraw$(EXEEXT) \ + ioprio-Xverbose$(EXEEXT) ip_mreq$(EXEEXT) ipc$(EXEEXT) \ + ipc_msg$(EXEEXT) ipc_msg-Xabbrev$(EXEEXT) \ ipc_msg-Xraw$(EXEEXT) ipc_msg-Xverbose$(EXEEXT) \ ipc_msgbuf$(EXEEXT) ipc_msgbuf-Xabbrev$(EXEEXT) \ ipc_msgbuf-Xraw$(EXEEXT) ipc_msgbuf-Xverbose$(EXEEXT) \ @@ -240,7 +379,10 @@ am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \ lchown$(EXEEXT) lchown32$(EXEEXT) link$(EXEEXT) \ linkat$(EXEEXT) llseek$(EXEEXT) lookup_dcookie$(EXEEXT) \ lseek$(EXEEXT) lstat$(EXEEXT) lstat64$(EXEEXT) \ - madvise$(EXEEXT) mbind$(EXEEXT) membarrier$(EXEEXT) \ + madvise$(EXEEXT) maybe_switch_current_tcp$(EXEEXT) \ + maybe_switch_current_tcp--quiet-thread-execve$(EXEEXT) \ + mbind$(EXEEXT) mbind-Xabbrev$(EXEEXT) mbind-Xraw$(EXEEXT) \ + mbind-Xverbose$(EXEEXT) membarrier$(EXEEXT) \ memfd_create$(EXEEXT) memfd_create-Xabbrev$(EXEEXT) \ memfd_create-Xraw$(EXEEXT) memfd_create-Xverbose$(EXEEXT) \ migrate_pages$(EXEEXT) mincore$(EXEEXT) mkdir$(EXEEXT) \ @@ -251,14 +393,18 @@ am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \ mmap64-Xraw$(EXEEXT) mmap64-Xverbose$(EXEEXT) mmsg$(EXEEXT) \ mmsg_name$(EXEEXT) modify_ldt$(EXEEXT) mount$(EXEEXT) \ mount-Xabbrev$(EXEEXT) mount-Xraw$(EXEEXT) \ - mount-Xverbose$(EXEEXT) move_pages$(EXEEXT) \ + mount-Xverbose$(EXEEXT) move_mount$(EXEEXT) \ + move_mount-P$(EXEEXT) move_pages$(EXEEXT) \ move_pages-Xabbrev$(EXEEXT) move_pages-Xraw$(EXEEXT) \ move_pages-Xverbose$(EXEEXT) mq$(EXEEXT) mq_sendrecv$(EXEEXT) \ mq_sendrecv-read$(EXEEXT) mq_sendrecv-write$(EXEEXT) \ msg_control$(EXEEXT) msg_name$(EXEEXT) munlockall$(EXEEXT) \ - nanosleep$(EXEEXT) net-icmp_filter$(EXEEXT) \ - net-packet_mreq$(EXEEXT) net-packet_mreq-Xabbrev$(EXEEXT) \ - net-packet_mreq-Xraw$(EXEEXT) \ + nanosleep$(EXEEXT) net--decode-fds-dev-netlink$(EXEEXT) \ + net--decode-fds-none-netlink$(EXEEXT) \ + net--decode-fds-path-netlink$(EXEEXT) \ + net--decode-fds-socket-netlink$(EXEEXT) \ + net-icmp_filter$(EXEEXT) net-packet_mreq$(EXEEXT) \ + net-packet_mreq-Xabbrev$(EXEEXT) net-packet_mreq-Xraw$(EXEEXT) \ net-packet_mreq-Xverbose$(EXEEXT) net-sockaddr$(EXEEXT) \ net-tpacket_req$(EXEEXT) net-tpacket_stats$(EXEEXT) \ net-y-unix$(EXEEXT) net-yy-inet$(EXEEXT) net-yy-inet6$(EXEEXT) \ @@ -296,18 +442,28 @@ am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \ old_mmap-Xraw$(EXEEXT) old_mmap-Xverbose$(EXEEXT) \ old_mmap-v-none$(EXEEXT) oldfstat$(EXEEXT) oldlstat$(EXEEXT) \ oldselect$(EXEEXT) oldselect-efault$(EXEEXT) oldstat$(EXEEXT) \ - open$(EXEEXT) openat$(EXEEXT) osf_utimes$(EXEEXT) \ - pause$(EXEEXT) perf_event_open$(EXEEXT) personality$(EXEEXT) \ - personality-Xabbrev$(EXEEXT) personality-Xraw$(EXEEXT) \ - personality-Xverbose$(EXEEXT) pidfd_send_signal$(EXEEXT) \ - pipe$(EXEEXT) pipe2$(EXEEXT) pkey_alloc$(EXEEXT) \ - pkey_free$(EXEEXT) pkey_mprotect$(EXEEXT) poll$(EXEEXT) \ - poll-P$(EXEEXT) ppoll$(EXEEXT) ppoll-P$(EXEEXT) \ - prctl-arg2-intptr$(EXEEXT) prctl-dumpable$(EXEEXT) \ - prctl-name$(EXEEXT) prctl-no-args$(EXEEXT) \ - prctl-pdeathsig$(EXEEXT) prctl-securebits$(EXEEXT) \ - prctl-tid_address$(EXEEXT) prctl-tsc$(EXEEXT) \ - pread64-pwrite64$(EXEEXT) preadv$(EXEEXT) \ + open$(EXEEXT) open_tree$(EXEEXT) open_tree-P$(EXEEXT) \ + openat$(EXEEXT) openat2$(EXEEXT) openat2-Xabbrev$(EXEEXT) \ + openat2-Xraw$(EXEEXT) openat2-Xverbose$(EXEEXT) \ + openat2-v$(EXEEXT) openat2-v-y$(EXEEXT) \ + openat2-v-y-Xabbrev$(EXEEXT) openat2-v-y-Xraw$(EXEEXT) \ + openat2-v-y-Xverbose$(EXEEXT) openat2-y$(EXEEXT) \ + osf_utimes$(EXEEXT) pause$(EXEEXT) perf_event_open$(EXEEXT) \ + personality$(EXEEXT) personality-Xabbrev$(EXEEXT) \ + personality-Xraw$(EXEEXT) personality-Xverbose$(EXEEXT) \ + pidfd_getfd$(EXEEXT) pidfd_getfd-y$(EXEEXT) \ + pidfd_getfd-yy$(EXEEXT) pidfd_open$(EXEEXT) \ + pidfd_open--decode-fd-path$(EXEEXT) \ + pidfd_open--decode-fd-pidfd$(EXEEXT) \ + pidfd_open--decode-fd-socket$(EXEEXT) pidfd_open-P$(EXEEXT) \ + pidfd_open-y$(EXEEXT) pidfd_open-yy$(EXEEXT) \ + pidfd_send_signal$(EXEEXT) pipe$(EXEEXT) pipe2$(EXEEXT) \ + pkey_alloc$(EXEEXT) pkey_free$(EXEEXT) pkey_mprotect$(EXEEXT) \ + poll$(EXEEXT) ppoll$(EXEEXT) prctl-arg2-intptr$(EXEEXT) \ + prctl-dumpable$(EXEEXT) prctl-name$(EXEEXT) \ + prctl-no-args$(EXEEXT) prctl-pdeathsig$(EXEEXT) \ + prctl-securebits$(EXEEXT) prctl-tid_address$(EXEEXT) \ + prctl-tsc$(EXEEXT) pread64-pwrite64$(EXEEXT) preadv$(EXEEXT) \ preadv-pwritev$(EXEEXT) preadv2-pwritev2$(EXEEXT) \ printpath-umovestr$(EXEEXT) \ printpath-umovestr-peekdata$(EXEEXT) \ @@ -322,7 +478,8 @@ am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \ quotactl-Xraw$(EXEEXT) quotactl-Xverbose$(EXEEXT) \ quotactl-xfs$(EXEEXT) read-write$(EXEEXT) readahead$(EXEEXT) \ readdir$(EXEEXT) readlink$(EXEEXT) readlinkat$(EXEEXT) \ - readv$(EXEEXT) reboot$(EXEEXT) recvfrom$(EXEEXT) \ + readv$(EXEEXT) reboot$(EXEEXT) recv-MSG_TRUNC$(EXEEXT) \ + recvfrom$(EXEEXT) recvfrom-MSG_TRUNC$(EXEEXT) \ recvmmsg-timeout$(EXEEXT) recvmsg$(EXEEXT) \ remap_file_pages$(EXEEXT) remap_file_pages-Xabbrev$(EXEEXT) \ remap_file_pages-Xraw$(EXEEXT) \ @@ -341,8 +498,10 @@ am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \ sched_xetparam$(EXEEXT) sched_xetscheduler$(EXEEXT) \ sched_yield$(EXEEXT) seccomp-filter$(EXEEXT) \ seccomp_get_action_avail$(EXEEXT) select$(EXEEXT) \ - semop$(EXEEXT) sendfile$(EXEEXT) sendfile64$(EXEEXT) \ - set_mempolicy$(EXEEXT) setdomainname$(EXEEXT) \ + semop$(EXEEXT) semop-indirect$(EXEEXT) semtimedop$(EXEEXT) \ + sendfile$(EXEEXT) sendfile64$(EXEEXT) set_mempolicy$(EXEEXT) \ + set_mempolicy-Xabbrev$(EXEEXT) set_mempolicy-Xraw$(EXEEXT) \ + set_mempolicy-Xverbose$(EXEEXT) setdomainname$(EXEEXT) \ setfsgid$(EXEEXT) setfsgid32$(EXEEXT) setfsuid$(EXEEXT) \ setfsuid32$(EXEEXT) setgid$(EXEEXT) setgid32$(EXEEXT) \ setgroups$(EXEEXT) setgroups32$(EXEEXT) sethostname$(EXEEXT) \ @@ -364,27 +523,36 @@ am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \ sockaddr_xlat-Xverbose$(EXEEXT) socketcall$(EXEEXT) \ sockopt-sol_netlink$(EXEEXT) sockopt-timestamp$(EXEEXT) \ splice$(EXEEXT) stat$(EXEEXT) stat64$(EXEEXT) statfs$(EXEEXT) \ - statfs64$(EXEEXT) statx$(EXEEXT) swap$(EXEEXT) \ + statfs64$(EXEEXT) status-all$(EXEEXT) status-failed$(EXEEXT) \ + status-failed-long$(EXEEXT) status-failed-status$(EXEEXT) \ + status-none$(EXEEXT) status-none-f$(EXEEXT) \ + status-successful$(EXEEXT) status-successful-long$(EXEEXT) \ + status-successful-status$(EXEEXT) status-unfinished$(EXEEXT) \ + statx$(EXEEXT) strace--strings-in-hex$(EXEEXT) \ + strace--strings-in-hex-all$(EXEEXT) \ + strace--strings-in-hex-non-ascii$(EXEEXT) strace-n$(EXEEXT) \ + strace-x$(EXEEXT) strace-xx$(EXEEXT) swap$(EXEEXT) \ sxetmask$(EXEEXT) symlink$(EXEEXT) symlinkat$(EXEEXT) \ sync$(EXEEXT) sync_file_range$(EXEEXT) \ sync_file_range2$(EXEEXT) sysinfo$(EXEEXT) syslog$(EXEEXT) \ - tee$(EXEEXT) time$(EXEEXT) timer_create$(EXEEXT) \ - timer_xettime$(EXEEXT) timerfd_xettime$(EXEEXT) times$(EXEEXT) \ - times-fail$(EXEEXT) truncate$(EXEEXT) truncate64$(EXEEXT) \ + tee$(EXEEXT) tgkill$(EXEEXT) time$(EXEEXT) \ + timer_create$(EXEEXT) timer_xettime$(EXEEXT) \ + timerfd_xettime$(EXEEXT) times$(EXEEXT) times-fail$(EXEEXT) \ + tkill$(EXEEXT) truncate$(EXEEXT) truncate64$(EXEEXT) \ ugetrlimit$(EXEEXT) uio$(EXEEXT) umask$(EXEEXT) \ umount$(EXEEXT) umount2$(EXEEXT) umoven-illptr$(EXEEXT) \ umovestr$(EXEEXT) umovestr-illptr$(EXEEXT) umovestr2$(EXEEXT) \ - umovestr3$(EXEEXT) uname$(EXEEXT) unlink$(EXEEXT) \ - unlinkat$(EXEEXT) unshare$(EXEEXT) userfaultfd$(EXEEXT) \ - ustat$(EXEEXT) utime$(EXEEXT) utimensat$(EXEEXT) \ - utimensat-Xabbrev$(EXEEXT) utimensat-Xraw$(EXEEXT) \ - utimensat-Xverbose$(EXEEXT) utimes$(EXEEXT) vhangup$(EXEEXT) \ - vmsplice$(EXEEXT) wait4$(EXEEXT) waitid$(EXEEXT) \ - waitpid$(EXEEXT) xattr$(EXEEXT) xattr-strings$(EXEEXT) \ - xet_robust_list$(EXEEXT) xet_thread_area_x86$(EXEEXT) \ - xetitimer$(EXEEXT) xetpgid$(EXEEXT) xetpriority$(EXEEXT) \ - xettimeofday$(EXEEXT) -AR = ar + umovestr3$(EXEEXT) umovestr_cached$(EXEEXT) \ + umovestr_cached_adjacent$(EXEEXT) uname$(EXEEXT) \ + unlink$(EXEEXT) unlinkat$(EXEEXT) unshare$(EXEEXT) \ + userfaultfd$(EXEEXT) ustat$(EXEEXT) utime$(EXEEXT) \ + utimensat$(EXEEXT) utimensat-Xabbrev$(EXEEXT) \ + utimensat-Xraw$(EXEEXT) utimensat-Xverbose$(EXEEXT) \ + utimes$(EXEEXT) vhangup$(EXEEXT) vmsplice$(EXEEXT) \ + wait4$(EXEEXT) waitid$(EXEEXT) waitpid$(EXEEXT) xattr$(EXEEXT) \ + xattr-strings$(EXEEXT) xet_robust_list$(EXEEXT) \ + xet_thread_area_x86$(EXEEXT) xetitimer$(EXEEXT) \ + xetpgid$(EXEEXT) xetpriority$(EXEEXT) xettimeofday$(EXEEXT) ARFLAGS = cru AM_V_AR = $(am__v_AR_@AM_V@) am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) @@ -393,6 +561,7 @@ am__v_AR_1 = libtests_a_AR = $(AR) $(ARFLAGS) libtests_a_LIBADD = am_libtests_a_OBJECTS = libtests_a-create_nl_socket.$(OBJEXT) \ + libtests_a-create_tmpfile.$(OBJEXT) \ libtests_a-errno2name.$(OBJEXT) libtests_a-error_msg.$(OBJEXT) \ libtests_a-fill_memory.$(OBJEXT) \ libtests_a-get_page_size.$(OBJEXT) \ @@ -403,17 +572,23 @@ am_libtests_a_OBJECTS = libtests_a-create_nl_socket.$(OBJEXT) \ libtests_a-inode_of_sockfd.$(OBJEXT) \ libtests_a-libmmsg.$(OBJEXT) \ libtests_a-libsocketcall.$(OBJEXT) \ - libtests_a-overflowuid.$(OBJEXT) \ + libtests_a-lock_file.$(OBJEXT) \ + libtests_a-overflowuid.$(OBJEXT) libtests_a-pidns.$(OBJEXT) \ libtests_a-pipe_maxfd.$(OBJEXT) \ libtests_a-print_quoted_string.$(OBJEXT) \ libtests_a-print_time.$(OBJEXT) \ - libtests_a-printflags.$(OBJEXT) libtests_a-printxval.$(OBJEXT) \ + libtests_a-printflags.$(OBJEXT) \ + libtests_a-printxval-Xabbrev.$(OBJEXT) \ + libtests_a-printxval-Xraw.$(OBJEXT) \ + libtests_a-printxval-Xverbose.$(OBJEXT) \ libtests_a-signal2name.$(OBJEXT) \ libtests_a-skip_unavailable.$(OBJEXT) \ - libtests_a-sprintrc.$(OBJEXT) libtests_a-tail_alloc.$(OBJEXT) \ + libtests_a-sprintrc.$(OBJEXT) libtests_a-status.$(OBJEXT) \ + libtests_a-tail_alloc.$(OBJEXT) \ libtests_a-test_printpath.$(OBJEXT) \ libtests_a-test_printstrn.$(OBJEXT) \ - libtests_a-test_ucopy.$(OBJEXT) libtests_a-tprintf.$(OBJEXT) + libtests_a-test_ucopy.$(OBJEXT) libtests_a-tprintf.$(OBJEXT) \ + libtests_a-xmalloc_for_tests.$(OBJEXT) libtests_a_OBJECTS = $(am_libtests_a_OBJECTS) _newselect_SOURCES = _newselect.c _newselect_OBJECTS = _newselect.$(OBJEXT) @@ -482,6 +657,10 @@ block_reset_raise_run_SOURCES = block_reset_raise_run.c block_reset_raise_run_OBJECTS = block_reset_raise_run.$(OBJEXT) block_reset_raise_run_LDADD = $(LDADD) block_reset_raise_run_DEPENDENCIES = libtests.a +block_reset_run_SOURCES = block_reset_run.c +block_reset_run_OBJECTS = block_reset_run.$(OBJEXT) +block_reset_run_LDADD = $(LDADD) +block_reset_run_DEPENDENCIES = libtests.a bpf_SOURCES = bpf.c bpf_OBJECTS = bpf.$(OBJEXT) bpf_LDADD = $(LDADD) @@ -509,6 +688,10 @@ bpf_success_SOURCES = bpf-success.c bpf_success_OBJECTS = bpf-success.$(OBJEXT) bpf_success_LDADD = $(LDADD) bpf_success_DEPENDENCIES = libtests.a +bpf_success_long_y_SOURCES = bpf-success-long-y.c +bpf_success_long_y_OBJECTS = bpf-success-long-y.$(OBJEXT) +bpf_success_long_y_LDADD = $(LDADD) +bpf_success_long_y_DEPENDENCIES = libtests.a bpf_success_v_SOURCES = bpf-success-v.c bpf_success_v_OBJECTS = bpf-success-v.$(OBJEXT) bpf_success_v_LDADD = $(LDADD) @@ -569,14 +752,95 @@ clock_xettime_SOURCES = clock_xettime.c clock_xettime_OBJECTS = clock_xettime.$(OBJEXT) clock_xettime_LDADD = $(LDADD) clock_xettime_DEPENDENCIES = libtests.a +clone_flags_SOURCES = clone-flags.c +clone_flags_OBJECTS = clone-flags.$(OBJEXT) +clone_flags_LDADD = $(LDADD) +clone_flags_DEPENDENCIES = libtests.a +clone3_SOURCES = clone3.c +clone3_OBJECTS = clone3.$(OBJEXT) +clone3_LDADD = $(LDADD) +clone3_DEPENDENCIES = libtests.a +clone3_Xabbrev_SOURCES = clone3-Xabbrev.c +clone3_Xabbrev_OBJECTS = clone3-Xabbrev.$(OBJEXT) +clone3_Xabbrev_LDADD = $(LDADD) +clone3_Xabbrev_DEPENDENCIES = libtests.a +clone3_Xraw_SOURCES = clone3-Xraw.c +clone3_Xraw_OBJECTS = clone3-Xraw.$(OBJEXT) +clone3_Xraw_LDADD = $(LDADD) +clone3_Xraw_DEPENDENCIES = libtests.a +clone3_Xverbose_SOURCES = clone3-Xverbose.c +clone3_Xverbose_OBJECTS = clone3-Xverbose.$(OBJEXT) +clone3_Xverbose_LDADD = $(LDADD) +clone3_Xverbose_DEPENDENCIES = libtests.a +clone3_success_SOURCES = clone3-success.c +clone3_success_OBJECTS = clone3-success.$(OBJEXT) +clone3_success_LDADD = $(LDADD) +clone3_success_DEPENDENCIES = libtests.a +clone3_success_Xabbrev_SOURCES = clone3-success-Xabbrev.c +clone3_success_Xabbrev_OBJECTS = clone3-success-Xabbrev.$(OBJEXT) +clone3_success_Xabbrev_LDADD = $(LDADD) +clone3_success_Xabbrev_DEPENDENCIES = libtests.a +clone3_success_Xraw_SOURCES = clone3-success-Xraw.c +clone3_success_Xraw_OBJECTS = clone3-success-Xraw.$(OBJEXT) +clone3_success_Xraw_LDADD = $(LDADD) +clone3_success_Xraw_DEPENDENCIES = libtests.a +clone3_success_Xverbose_SOURCES = clone3-success-Xverbose.c +clone3_success_Xverbose_OBJECTS = clone3-success-Xverbose.$(OBJEXT) +clone3_success_Xverbose_LDADD = $(LDADD) +clone3_success_Xverbose_DEPENDENCIES = libtests.a clone_parent_SOURCES = clone_parent.c clone_parent_OBJECTS = clone_parent.$(OBJEXT) clone_parent_LDADD = $(LDADD) clone_parent_DEPENDENCIES = libtests.a +clone_parent__quiet_exit_SOURCES = clone_parent--quiet-exit.c +clone_parent__quiet_exit_OBJECTS = clone_parent--quiet-exit.$(OBJEXT) +clone_parent__quiet_exit_LDADD = $(LDADD) +clone_parent__quiet_exit_DEPENDENCIES = libtests.a +clone_parent_q_SOURCES = clone_parent-q.c +clone_parent_q_OBJECTS = clone_parent-q.$(OBJEXT) +clone_parent_q_LDADD = $(LDADD) +clone_parent_q_DEPENDENCIES = libtests.a +clone_parent_qq_SOURCES = clone_parent-qq.c +clone_parent_qq_OBJECTS = clone_parent-qq.$(OBJEXT) +clone_parent_qq_LDADD = $(LDADD) +clone_parent_qq_DEPENDENCIES = libtests.a clone_ptrace_SOURCES = clone_ptrace.c clone_ptrace_OBJECTS = clone_ptrace.$(OBJEXT) clone_ptrace_LDADD = $(LDADD) clone_ptrace_DEPENDENCIES = libtests.a +clone_ptrace__quiet_attach_SOURCES = clone_ptrace--quiet-attach.c +clone_ptrace__quiet_attach_OBJECTS = \ + clone_ptrace--quiet-attach.$(OBJEXT) +clone_ptrace__quiet_attach_LDADD = $(LDADD) +clone_ptrace__quiet_attach_DEPENDENCIES = libtests.a +clone_ptrace__quiet_exit_SOURCES = clone_ptrace--quiet-exit.c +clone_ptrace__quiet_exit_OBJECTS = clone_ptrace--quiet-exit.$(OBJEXT) +clone_ptrace__quiet_exit_LDADD = $(LDADD) +clone_ptrace__quiet_exit_DEPENDENCIES = libtests.a +clone_ptrace_q_SOURCES = clone_ptrace-q.c +clone_ptrace_q_OBJECTS = clone_ptrace-q.$(OBJEXT) +clone_ptrace_q_LDADD = $(LDADD) +clone_ptrace_q_DEPENDENCIES = libtests.a +clone_ptrace_qq_SOURCES = clone_ptrace-qq.c +clone_ptrace_qq_OBJECTS = clone_ptrace-qq.$(OBJEXT) +clone_ptrace_qq_LDADD = $(LDADD) +clone_ptrace_qq_DEPENDENCIES = libtests.a +close_range_SOURCES = close_range.c +close_range_OBJECTS = close_range.$(OBJEXT) +close_range_LDADD = $(LDADD) +close_range_DEPENDENCIES = libtests.a +close_range_P_SOURCES = close_range-P.c +close_range_P_OBJECTS = close_range-P.$(OBJEXT) +close_range_P_LDADD = $(LDADD) +close_range_P_DEPENDENCIES = libtests.a +close_range_y_SOURCES = close_range-y.c +close_range_y_OBJECTS = close_range-y.$(OBJEXT) +close_range_y_LDADD = $(LDADD) +close_range_y_DEPENDENCIES = libtests.a +close_range_yy_SOURCES = close_range-yy.c +close_range_yy_OBJECTS = close_range-yy.$(OBJEXT) +close_range_yy_LDADD = $(LDADD) +close_range_yy_DEPENDENCIES = libtests.a copy_file_range_SOURCES = copy_file_range.c copy_file_range_OBJECTS = copy_file_range.$(OBJEXT) copy_file_range_LDADD = $(LDADD) @@ -596,6 +860,18 @@ delete_module_SOURCES = delete_module.c delete_module_OBJECTS = delete_module.$(OBJEXT) delete_module_LDADD = $(LDADD) delete_module_DEPENDENCIES = libtests.a +dev__decode_fds_dev_SOURCES = dev--decode-fds-dev.c +dev__decode_fds_dev_OBJECTS = dev--decode-fds-dev.$(OBJEXT) +dev__decode_fds_dev_LDADD = $(LDADD) +dev__decode_fds_dev_DEPENDENCIES = libtests.a +dev__decode_fds_path_SOURCES = dev--decode-fds-path.c +dev__decode_fds_path_OBJECTS = dev--decode-fds-path.$(OBJEXT) +dev__decode_fds_path_LDADD = $(LDADD) +dev__decode_fds_path_DEPENDENCIES = libtests.a +dev__decode_fds_socket_SOURCES = dev--decode-fds-socket.c +dev__decode_fds_socket_OBJECTS = dev--decode-fds-socket.$(OBJEXT) +dev__decode_fds_socket_LDADD = $(LDADD) +dev__decode_fds_socket_DEPENDENCIES = libtests.a dev_yy_SOURCES = dev-yy.c dev_yy_OBJECTS = dev-yy.$(OBJEXT) dev_yy_LDADD = $(LDADD) @@ -604,14 +880,50 @@ dup_SOURCES = dup.c dup_OBJECTS = dup.$(OBJEXT) dup_LDADD = $(LDADD) dup_DEPENDENCIES = libtests.a +dup_P_SOURCES = dup-P.c +dup_P_OBJECTS = dup-P.$(OBJEXT) +dup_P_LDADD = $(LDADD) +dup_P_DEPENDENCIES = libtests.a +dup_y_SOURCES = dup-y.c +dup_y_OBJECTS = dup-y.$(OBJEXT) +dup_y_LDADD = $(LDADD) +dup_y_DEPENDENCIES = libtests.a +dup_yy_SOURCES = dup-yy.c +dup_yy_OBJECTS = dup-yy.$(OBJEXT) +dup_yy_LDADD = $(LDADD) +dup_yy_DEPENDENCIES = libtests.a dup2_SOURCES = dup2.c dup2_OBJECTS = dup2.$(OBJEXT) dup2_LDADD = $(LDADD) dup2_DEPENDENCIES = libtests.a +dup2_P_SOURCES = dup2-P.c +dup2_P_OBJECTS = dup2-P.$(OBJEXT) +dup2_P_LDADD = $(LDADD) +dup2_P_DEPENDENCIES = libtests.a +dup2_y_SOURCES = dup2-y.c +dup2_y_OBJECTS = dup2-y.$(OBJEXT) +dup2_y_LDADD = $(LDADD) +dup2_y_DEPENDENCIES = libtests.a +dup2_yy_SOURCES = dup2-yy.c +dup2_yy_OBJECTS = dup2-yy.$(OBJEXT) +dup2_yy_LDADD = $(LDADD) +dup2_yy_DEPENDENCIES = libtests.a dup3_SOURCES = dup3.c dup3_OBJECTS = dup3.$(OBJEXT) dup3_LDADD = $(LDADD) dup3_DEPENDENCIES = libtests.a +dup3_P_SOURCES = dup3-P.c +dup3_P_OBJECTS = dup3-P.$(OBJEXT) +dup3_P_LDADD = $(LDADD) +dup3_P_DEPENDENCIES = libtests.a +dup3_y_SOURCES = dup3-y.c +dup3_y_OBJECTS = dup3-y.$(OBJEXT) +dup3_y_LDADD = $(LDADD) +dup3_y_DEPENDENCIES = libtests.a +dup3_yy_SOURCES = dup3-yy.c +dup3_yy_OBJECTS = dup3-yy.$(OBJEXT) +dup3_yy_LDADD = $(LDADD) +dup3_yy_DEPENDENCIES = libtests.a epoll_create_SOURCES = epoll_create.c epoll_create_OBJECTS = epoll_create.$(OBJEXT) epoll_create_LDADD = $(LDADD) @@ -660,6 +972,34 @@ faccessat_SOURCES = faccessat.c faccessat_OBJECTS = faccessat.$(OBJEXT) faccessat_LDADD = $(LDADD) faccessat_DEPENDENCIES = libtests.a +faccessat_P_SOURCES = faccessat-P.c +faccessat_P_OBJECTS = faccessat-P.$(OBJEXT) +faccessat_P_LDADD = $(LDADD) +faccessat_P_DEPENDENCIES = libtests.a +faccessat_y_SOURCES = faccessat-y.c +faccessat_y_OBJECTS = faccessat-y.$(OBJEXT) +faccessat_y_LDADD = $(LDADD) +faccessat_y_DEPENDENCIES = libtests.a +faccessat_yy_SOURCES = faccessat-yy.c +faccessat_yy_OBJECTS = faccessat-yy.$(OBJEXT) +faccessat_yy_LDADD = $(LDADD) +faccessat_yy_DEPENDENCIES = libtests.a +faccessat2_SOURCES = faccessat2.c +faccessat2_OBJECTS = faccessat2.$(OBJEXT) +faccessat2_LDADD = $(LDADD) +faccessat2_DEPENDENCIES = libtests.a +faccessat2_P_SOURCES = faccessat2-P.c +faccessat2_P_OBJECTS = faccessat2-P.$(OBJEXT) +faccessat2_P_LDADD = $(LDADD) +faccessat2_P_DEPENDENCIES = libtests.a +faccessat2_y_SOURCES = faccessat2-y.c +faccessat2_y_OBJECTS = faccessat2-y.$(OBJEXT) +faccessat2_y_LDADD = $(LDADD) +faccessat2_y_DEPENDENCIES = libtests.a +faccessat2_yy_SOURCES = faccessat2-yy.c +faccessat2_yy_OBJECTS = faccessat2-yy.$(OBJEXT) +faccessat2_yy_LDADD = $(LDADD) +faccessat2_yy_DEPENDENCIES = libtests.a fadvise64_SOURCES = fadvise64.c fadvise64_OBJECTS = fadvise64.$(OBJEXT) fadvise64_LDADD = $(LDADD) @@ -720,10 +1060,19 @@ fcntl_SOURCES = fcntl.c fcntl_OBJECTS = fcntl.$(OBJEXT) fcntl_LDADD = $(LDADD) fcntl_DEPENDENCIES = libtests.a +fcntl__pidns_translation_SOURCES = fcntl--pidns-translation.c +fcntl__pidns_translation_OBJECTS = fcntl--pidns-translation.$(OBJEXT) +fcntl__pidns_translation_LDADD = $(LDADD) +fcntl__pidns_translation_DEPENDENCIES = libtests.a fcntl64_SOURCES = fcntl64.c fcntl64_OBJECTS = fcntl64.$(OBJEXT) fcntl64_LDADD = $(LDADD) fcntl64_DEPENDENCIES = libtests.a +fcntl64__pidns_translation_SOURCES = fcntl64--pidns-translation.c +fcntl64__pidns_translation_OBJECTS = \ + fcntl64--pidns-translation.$(OBJEXT) +fcntl64__pidns_translation_LDADD = $(LDADD) +fcntl64__pidns_translation_DEPENDENCIES = libtests.a fdatasync_SOURCES = fdatasync.c fdatasync_OBJECTS = fdatasync.$(OBJEXT) fdatasync_LDADD = $(LDADD) @@ -743,6 +1092,14 @@ file_ioctl_DEPENDENCIES = libtests.a filter_unavailable_SOURCES = filter-unavailable.c filter_unavailable_OBJECTS = filter-unavailable.$(OBJEXT) filter_unavailable_DEPENDENCIES = $(LDADD) +filter_seccomp_flag_SOURCES = filter_seccomp-flag.c +filter_seccomp_flag_OBJECTS = filter_seccomp-flag.$(OBJEXT) +filter_seccomp_flag_LDADD = $(LDADD) +filter_seccomp_flag_DEPENDENCIES = libtests.a +filter_seccomp_perf_SOURCES = filter_seccomp-perf.c +filter_seccomp_perf_OBJECTS = filter_seccomp-perf.$(OBJEXT) +filter_seccomp_perf_LDADD = $(LDADD) +filter_seccomp_perf_DEPENDENCIES = libtests.a finit_module_SOURCES = finit_module.c finit_module_OBJECTS = finit_module.$(OBJEXT) finit_module_LDADD = $(LDADD) @@ -751,10 +1108,38 @@ flock_SOURCES = flock.c flock_OBJECTS = flock.$(OBJEXT) flock_LDADD = $(LDADD) flock_DEPENDENCIES = libtests.a +fork__pidns_translation_SOURCES = fork--pidns-translation.c +fork__pidns_translation_OBJECTS = fork--pidns-translation.$(OBJEXT) +fork__pidns_translation_LDADD = $(LDADD) +fork__pidns_translation_DEPENDENCIES = libtests.a fork_f_SOURCES = fork-f.c fork_f_OBJECTS = fork-f.$(OBJEXT) fork_f_LDADD = $(LDADD) fork_f_DEPENDENCIES = libtests.a +fsconfig_SOURCES = fsconfig.c +fsconfig_OBJECTS = fsconfig.$(OBJEXT) +fsconfig_LDADD = $(LDADD) +fsconfig_DEPENDENCIES = libtests.a +fsconfig_P_SOURCES = fsconfig-P.c +fsconfig_P_OBJECTS = fsconfig-P.$(OBJEXT) +fsconfig_P_LDADD = $(LDADD) +fsconfig_P_DEPENDENCIES = libtests.a +fsmount_SOURCES = fsmount.c +fsmount_OBJECTS = fsmount.$(OBJEXT) +fsmount_LDADD = $(LDADD) +fsmount_DEPENDENCIES = libtests.a +fsopen_SOURCES = fsopen.c +fsopen_OBJECTS = fsopen.$(OBJEXT) +fsopen_LDADD = $(LDADD) +fsopen_DEPENDENCIES = libtests.a +fspick_SOURCES = fspick.c +fspick_OBJECTS = fspick.$(OBJEXT) +fspick_LDADD = $(LDADD) +fspick_DEPENDENCIES = libtests.a +fspick_P_SOURCES = fspick-P.c +fspick_P_OBJECTS = fspick-P.$(OBJEXT) +fspick_P_LDADD = $(LDADD) +fspick_P_DEPENDENCIES = libtests.a fstat_SOURCES = fstat.c fstat_OBJECTS = fstat.$(OBJEXT) fstat_LDADD = $(LDADD) @@ -827,6 +1212,10 @@ get_mempolicy_SOURCES = get_mempolicy.c get_mempolicy_OBJECTS = get_mempolicy.$(OBJEXT) get_mempolicy_LDADD = $(LDADD) get_mempolicy_DEPENDENCIES = libtests.a +get_process_reaper_SOURCES = get_process_reaper.c +get_process_reaper_OBJECTS = get_process_reaper.$(OBJEXT) +get_process_reaper_LDADD = $(LDADD) +get_process_reaper_DEPENDENCIES = libtests.a getcpu_SOURCES = getcpu.c getcpu_OBJECTS = getcpu.$(OBJEXT) getcpu_LDADD = $(LDADD) @@ -839,10 +1228,18 @@ getdents_SOURCES = getdents.c getdents_OBJECTS = getdents.$(OBJEXT) getdents_LDADD = $(LDADD) getdents_DEPENDENCIES = libtests.a +getdents_v_SOURCES = getdents-v.c +getdents_v_OBJECTS = getdents-v.$(OBJEXT) +getdents_v_LDADD = $(LDADD) +getdents_v_DEPENDENCIES = libtests.a getdents64_SOURCES = getdents64.c getdents64_OBJECTS = getdents64.$(OBJEXT) getdents64_LDADD = $(LDADD) getdents64_DEPENDENCIES = libtests.a +getdents64_v_SOURCES = getdents64-v.c +getdents64_v_OBJECTS = getdents64-v.$(OBJEXT) +getdents64_v_LDADD = $(LDADD) +getdents64_v_DEPENDENCIES = libtests.a getegid_SOURCES = getegid.c getegid_OBJECTS = getegid.$(OBJEXT) getegid_LDADD = $(LDADD) @@ -883,10 +1280,20 @@ getpgrp_SOURCES = getpgrp.c getpgrp_OBJECTS = getpgrp.$(OBJEXT) getpgrp_LDADD = $(LDADD) getpgrp_DEPENDENCIES = libtests.a +getpgrp__pidns_translation_SOURCES = getpgrp--pidns-translation.c +getpgrp__pidns_translation_OBJECTS = \ + getpgrp--pidns-translation.$(OBJEXT) +getpgrp__pidns_translation_LDADD = $(LDADD) +getpgrp__pidns_translation_DEPENDENCIES = libtests.a getpid_SOURCES = getpid.c getpid_OBJECTS = getpid.$(OBJEXT) getpid_LDADD = $(LDADD) getpid_DEPENDENCIES = libtests.a +getpid__pidns_translation_SOURCES = getpid--pidns-translation.c +getpid__pidns_translation_OBJECTS = \ + getpid--pidns-translation.$(OBJEXT) +getpid__pidns_translation_LDADD = $(LDADD) +getpid__pidns_translation_DEPENDENCIES = libtests.a getppid_SOURCES = getppid.c getppid_OBJECTS = getppid.$(OBJEXT) getppid_LDADD = $(LDADD) @@ -923,6 +1330,11 @@ getsid_SOURCES = getsid.c getsid_OBJECTS = getsid.$(OBJEXT) getsid_LDADD = $(LDADD) getsid_DEPENDENCIES = libtests.a +getsid__pidns_translation_SOURCES = getsid--pidns-translation.c +getsid__pidns_translation_OBJECTS = \ + getsid--pidns-translation.$(OBJEXT) +getsid__pidns_translation_LDADD = $(LDADD) +getsid__pidns_translation_DEPENDENCIES = libtests.a getsockname_SOURCES = getsockname.c getsockname_OBJECTS = getsockname.$(OBJEXT) getsockname_LDADD = $(LDADD) @@ -931,6 +1343,11 @@ gettid_SOURCES = gettid.c gettid_OBJECTS = gettid.$(OBJEXT) gettid_LDADD = $(LDADD) gettid_DEPENDENCIES = libtests.a +gettid__pidns_translation_SOURCES = gettid--pidns-translation.c +gettid__pidns_translation_OBJECTS = \ + gettid--pidns-translation.$(OBJEXT) +gettid__pidns_translation_LDADD = $(LDADD) +gettid__pidns_translation_DEPENDENCIES = libtests.a getuid_SOURCES = getuid.c getuid_OBJECTS = getuid.$(OBJEXT) getuid_LDADD = $(LDADD) @@ -939,10 +1356,18 @@ getuid32_SOURCES = getuid32.c getuid32_OBJECTS = getuid32.$(OBJEXT) getuid32_LDADD = $(LDADD) getuid32_DEPENDENCIES = libtests.a -getxxid_SOURCES = getxxid.c -getxxid_OBJECTS = getxxid.$(OBJEXT) -getxxid_LDADD = $(LDADD) -getxxid_DEPENDENCIES = libtests.a +getxgid_SOURCES = getxgid.c +getxgid_OBJECTS = getxgid.$(OBJEXT) +getxgid_LDADD = $(LDADD) +getxgid_DEPENDENCIES = libtests.a +getxpid_SOURCES = getxpid.c +getxpid_OBJECTS = getxpid.$(OBJEXT) +getxpid_LDADD = $(LDADD) +getxpid_DEPENDENCIES = libtests.a +getxuid_SOURCES = getxuid.c +getxuid_OBJECTS = getxuid.$(OBJEXT) +getxuid_LDADD = $(LDADD) +getxuid_DEPENDENCIES = libtests.a group_req_SOURCES = group_req.c group_req_OBJECTS = group_req.$(OBJEXT) group_req_LDADD = $(LDADD) @@ -963,10 +1388,22 @@ inotify_SOURCES = inotify.c inotify_OBJECTS = inotify.$(OBJEXT) inotify_LDADD = $(LDADD) inotify_DEPENDENCIES = libtests.a +inotify_init_SOURCES = inotify_init.c +inotify_init_OBJECTS = inotify_init.$(OBJEXT) +inotify_init_LDADD = $(LDADD) +inotify_init_DEPENDENCIES = libtests.a +inotify_init_y_SOURCES = inotify_init-y.c +inotify_init_y_OBJECTS = inotify_init-y.$(OBJEXT) +inotify_init_y_LDADD = $(LDADD) +inotify_init_y_DEPENDENCIES = libtests.a inotify_init1_SOURCES = inotify_init1.c inotify_init1_OBJECTS = inotify_init1.$(OBJEXT) inotify_init1_LDADD = $(LDADD) inotify_init1_DEPENDENCIES = libtests.a +inotify_init1_y_SOURCES = inotify_init1-y.c +inotify_init1_y_OBJECTS = inotify_init1-y.$(OBJEXT) +inotify_init1_y_LDADD = $(LDADD) +inotify_init1_y_DEPENDENCIES = libtests.a int_0x80_SOURCES = int_0x80.c int_0x80_OBJECTS = int_0x80.$(OBJEXT) int_0x80_LDADD = $(LDADD) @@ -991,6 +1428,12 @@ ioctl_block_SOURCES = ioctl_block.c ioctl_block_OBJECTS = ioctl_block.$(OBJEXT) ioctl_block_LDADD = $(LDADD) ioctl_block_DEPENDENCIES = libtests.a +ioctl_block__pidns_translation_SOURCES = \ + ioctl_block--pidns-translation.c +ioctl_block__pidns_translation_OBJECTS = \ + ioctl_block--pidns-translation.$(OBJEXT) +ioctl_block__pidns_translation_LDADD = $(LDADD) +ioctl_block__pidns_translation_DEPENDENCIES = libtests.a ioctl_dm_SOURCES = ioctl_dm.c ioctl_dm_OBJECTS = ioctl_dm.$(OBJEXT) ioctl_dm_LDADD = $(LDADD) @@ -1003,18 +1446,143 @@ ioctl_evdev_SOURCES = ioctl_evdev.c ioctl_evdev_OBJECTS = ioctl_evdev.$(OBJEXT) ioctl_evdev_LDADD = $(LDADD) ioctl_evdev_DEPENDENCIES = libtests.a +ioctl_evdev_Xabbrev_SOURCES = ioctl_evdev-Xabbrev.c +ioctl_evdev_Xabbrev_OBJECTS = ioctl_evdev-Xabbrev.$(OBJEXT) +ioctl_evdev_Xabbrev_LDADD = $(LDADD) +ioctl_evdev_Xabbrev_DEPENDENCIES = libtests.a +ioctl_evdev_Xraw_SOURCES = ioctl_evdev-Xraw.c +ioctl_evdev_Xraw_OBJECTS = ioctl_evdev-Xraw.$(OBJEXT) +ioctl_evdev_Xraw_LDADD = $(LDADD) +ioctl_evdev_Xraw_DEPENDENCIES = libtests.a +ioctl_evdev_Xverbose_SOURCES = ioctl_evdev-Xverbose.c +ioctl_evdev_Xverbose_OBJECTS = ioctl_evdev-Xverbose.$(OBJEXT) +ioctl_evdev_Xverbose_LDADD = $(LDADD) +ioctl_evdev_Xverbose_DEPENDENCIES = libtests.a ioctl_evdev_success_SOURCES = ioctl_evdev-success.c ioctl_evdev_success_OBJECTS = ioctl_evdev-success.$(OBJEXT) ioctl_evdev_success_LDADD = $(LDADD) ioctl_evdev_success_DEPENDENCIES = libtests.a +ioctl_evdev_success_Xabbrev_SOURCES = ioctl_evdev-success-Xabbrev.c +ioctl_evdev_success_Xabbrev_OBJECTS = \ + ioctl_evdev-success-Xabbrev.$(OBJEXT) +ioctl_evdev_success_Xabbrev_LDADD = $(LDADD) +ioctl_evdev_success_Xabbrev_DEPENDENCIES = libtests.a +ioctl_evdev_success_Xraw_SOURCES = ioctl_evdev-success-Xraw.c +ioctl_evdev_success_Xraw_OBJECTS = ioctl_evdev-success-Xraw.$(OBJEXT) +ioctl_evdev_success_Xraw_LDADD = $(LDADD) +ioctl_evdev_success_Xraw_DEPENDENCIES = libtests.a +ioctl_evdev_success_Xverbose_SOURCES = ioctl_evdev-success-Xverbose.c +ioctl_evdev_success_Xverbose_OBJECTS = \ + ioctl_evdev-success-Xverbose.$(OBJEXT) +ioctl_evdev_success_Xverbose_LDADD = $(LDADD) +ioctl_evdev_success_Xverbose_DEPENDENCIES = libtests.a ioctl_evdev_success_v_SOURCES = ioctl_evdev-success-v.c ioctl_evdev_success_v_OBJECTS = ioctl_evdev-success-v.$(OBJEXT) ioctl_evdev_success_v_LDADD = $(LDADD) ioctl_evdev_success_v_DEPENDENCIES = libtests.a +ioctl_evdev_success_v_Xabbrev_SOURCES = \ + ioctl_evdev-success-v-Xabbrev.c +ioctl_evdev_success_v_Xabbrev_OBJECTS = \ + ioctl_evdev-success-v-Xabbrev.$(OBJEXT) +ioctl_evdev_success_v_Xabbrev_LDADD = $(LDADD) +ioctl_evdev_success_v_Xabbrev_DEPENDENCIES = libtests.a +ioctl_evdev_success_v_Xraw_SOURCES = ioctl_evdev-success-v-Xraw.c +ioctl_evdev_success_v_Xraw_OBJECTS = \ + ioctl_evdev-success-v-Xraw.$(OBJEXT) +ioctl_evdev_success_v_Xraw_LDADD = $(LDADD) +ioctl_evdev_success_v_Xraw_DEPENDENCIES = libtests.a +ioctl_evdev_success_v_Xverbose_SOURCES = \ + ioctl_evdev-success-v-Xverbose.c +ioctl_evdev_success_v_Xverbose_OBJECTS = \ + ioctl_evdev-success-v-Xverbose.$(OBJEXT) +ioctl_evdev_success_v_Xverbose_LDADD = $(LDADD) +ioctl_evdev_success_v_Xverbose_DEPENDENCIES = libtests.a ioctl_evdev_v_SOURCES = ioctl_evdev-v.c ioctl_evdev_v_OBJECTS = ioctl_evdev-v.$(OBJEXT) ioctl_evdev_v_LDADD = $(LDADD) ioctl_evdev_v_DEPENDENCIES = libtests.a +ioctl_evdev_v_Xabbrev_SOURCES = ioctl_evdev-v-Xabbrev.c +ioctl_evdev_v_Xabbrev_OBJECTS = ioctl_evdev-v-Xabbrev.$(OBJEXT) +ioctl_evdev_v_Xabbrev_LDADD = $(LDADD) +ioctl_evdev_v_Xabbrev_DEPENDENCIES = libtests.a +ioctl_evdev_v_Xraw_SOURCES = ioctl_evdev-v-Xraw.c +ioctl_evdev_v_Xraw_OBJECTS = ioctl_evdev-v-Xraw.$(OBJEXT) +ioctl_evdev_v_Xraw_LDADD = $(LDADD) +ioctl_evdev_v_Xraw_DEPENDENCIES = libtests.a +ioctl_evdev_v_Xverbose_SOURCES = ioctl_evdev-v-Xverbose.c +ioctl_evdev_v_Xverbose_OBJECTS = ioctl_evdev-v-Xverbose.$(OBJEXT) +ioctl_evdev_v_Xverbose_LDADD = $(LDADD) +ioctl_evdev_v_Xverbose_DEPENDENCIES = libtests.a +ioctl_hdio_SOURCES = ioctl_hdio.c +ioctl_hdio_OBJECTS = ioctl_hdio.$(OBJEXT) +ioctl_hdio_LDADD = $(LDADD) +ioctl_hdio_DEPENDENCIES = libtests.a +ioctl_hdio_Xabbrev_SOURCES = ioctl_hdio-Xabbrev.c +ioctl_hdio_Xabbrev_OBJECTS = ioctl_hdio-Xabbrev.$(OBJEXT) +ioctl_hdio_Xabbrev_LDADD = $(LDADD) +ioctl_hdio_Xabbrev_DEPENDENCIES = libtests.a +ioctl_hdio_Xraw_SOURCES = ioctl_hdio-Xraw.c +ioctl_hdio_Xraw_OBJECTS = ioctl_hdio-Xraw.$(OBJEXT) +ioctl_hdio_Xraw_LDADD = $(LDADD) +ioctl_hdio_Xraw_DEPENDENCIES = libtests.a +ioctl_hdio_Xverbose_SOURCES = ioctl_hdio-Xverbose.c +ioctl_hdio_Xverbose_OBJECTS = ioctl_hdio-Xverbose.$(OBJEXT) +ioctl_hdio_Xverbose_LDADD = $(LDADD) +ioctl_hdio_Xverbose_DEPENDENCIES = libtests.a +ioctl_hdio_success_SOURCES = ioctl_hdio-success.c +ioctl_hdio_success_OBJECTS = ioctl_hdio-success.$(OBJEXT) +ioctl_hdio_success_LDADD = $(LDADD) +ioctl_hdio_success_DEPENDENCIES = libtests.a +ioctl_hdio_success_Xabbrev_SOURCES = ioctl_hdio-success-Xabbrev.c +ioctl_hdio_success_Xabbrev_OBJECTS = \ + ioctl_hdio-success-Xabbrev.$(OBJEXT) +ioctl_hdio_success_Xabbrev_LDADD = $(LDADD) +ioctl_hdio_success_Xabbrev_DEPENDENCIES = libtests.a +ioctl_hdio_success_Xraw_SOURCES = ioctl_hdio-success-Xraw.c +ioctl_hdio_success_Xraw_OBJECTS = ioctl_hdio-success-Xraw.$(OBJEXT) +ioctl_hdio_success_Xraw_LDADD = $(LDADD) +ioctl_hdio_success_Xraw_DEPENDENCIES = libtests.a +ioctl_hdio_success_Xverbose_SOURCES = ioctl_hdio-success-Xverbose.c +ioctl_hdio_success_Xverbose_OBJECTS = \ + ioctl_hdio-success-Xverbose.$(OBJEXT) +ioctl_hdio_success_Xverbose_LDADD = $(LDADD) +ioctl_hdio_success_Xverbose_DEPENDENCIES = libtests.a +ioctl_hdio_success_v_SOURCES = ioctl_hdio-success-v.c +ioctl_hdio_success_v_OBJECTS = ioctl_hdio-success-v.$(OBJEXT) +ioctl_hdio_success_v_LDADD = $(LDADD) +ioctl_hdio_success_v_DEPENDENCIES = libtests.a +ioctl_hdio_success_v_Xabbrev_SOURCES = ioctl_hdio-success-v-Xabbrev.c +ioctl_hdio_success_v_Xabbrev_OBJECTS = \ + ioctl_hdio-success-v-Xabbrev.$(OBJEXT) +ioctl_hdio_success_v_Xabbrev_LDADD = $(LDADD) +ioctl_hdio_success_v_Xabbrev_DEPENDENCIES = libtests.a +ioctl_hdio_success_v_Xraw_SOURCES = ioctl_hdio-success-v-Xraw.c +ioctl_hdio_success_v_Xraw_OBJECTS = \ + ioctl_hdio-success-v-Xraw.$(OBJEXT) +ioctl_hdio_success_v_Xraw_LDADD = $(LDADD) +ioctl_hdio_success_v_Xraw_DEPENDENCIES = libtests.a +ioctl_hdio_success_v_Xverbose_SOURCES = \ + ioctl_hdio-success-v-Xverbose.c +ioctl_hdio_success_v_Xverbose_OBJECTS = \ + ioctl_hdio-success-v-Xverbose.$(OBJEXT) +ioctl_hdio_success_v_Xverbose_LDADD = $(LDADD) +ioctl_hdio_success_v_Xverbose_DEPENDENCIES = libtests.a +ioctl_hdio_v_SOURCES = ioctl_hdio-v.c +ioctl_hdio_v_OBJECTS = ioctl_hdio-v.$(OBJEXT) +ioctl_hdio_v_LDADD = $(LDADD) +ioctl_hdio_v_DEPENDENCIES = libtests.a +ioctl_hdio_v_Xabbrev_SOURCES = ioctl_hdio-v-Xabbrev.c +ioctl_hdio_v_Xabbrev_OBJECTS = ioctl_hdio-v-Xabbrev.$(OBJEXT) +ioctl_hdio_v_Xabbrev_LDADD = $(LDADD) +ioctl_hdio_v_Xabbrev_DEPENDENCIES = libtests.a +ioctl_hdio_v_Xraw_SOURCES = ioctl_hdio-v-Xraw.c +ioctl_hdio_v_Xraw_OBJECTS = ioctl_hdio-v-Xraw.$(OBJEXT) +ioctl_hdio_v_Xraw_LDADD = $(LDADD) +ioctl_hdio_v_Xraw_DEPENDENCIES = libtests.a +ioctl_hdio_v_Xverbose_SOURCES = ioctl_hdio-v-Xverbose.c +ioctl_hdio_v_Xverbose_OBJECTS = ioctl_hdio-v-Xverbose.$(OBJEXT) +ioctl_hdio_v_Xverbose_LDADD = $(LDADD) +ioctl_hdio_v_Xverbose_DEPENDENCIES = libtests.a ioctl_inotify_SOURCES = ioctl_inotify.c ioctl_inotify_OBJECTS = ioctl_inotify.$(OBJEXT) ioctl_inotify_LDADD = $(LDADD) @@ -1096,6 +1664,10 @@ ioctl_sock_gifconf_SOURCES = ioctl_sock_gifconf.c ioctl_sock_gifconf_OBJECTS = ioctl_sock_gifconf.$(OBJEXT) ioctl_sock_gifconf_LDADD = $(LDADD) ioctl_sock_gifconf_DEPENDENCIES = libtests.a +ioctl_tee_SOURCES = ioctl_tee.c +ioctl_tee_OBJECTS = ioctl_tee.$(OBJEXT) +ioctl_tee_LDADD = $(LDADD) +ioctl_tee_DEPENDENCIES = libtests.a ioctl_uffdio_SOURCES = ioctl_uffdio.c ioctl_uffdio_OBJECTS = ioctl_uffdio.$(OBJEXT) ioctl_uffdio_LDADD = $(LDADD) @@ -1104,6 +1676,76 @@ ioctl_v4l2_SOURCES = ioctl_v4l2.c ioctl_v4l2_OBJECTS = ioctl_v4l2.$(OBJEXT) ioctl_v4l2_LDADD = $(LDADD) ioctl_v4l2_DEPENDENCIES = libtests.a +ioctl_v4l2_Xabbrev_SOURCES = ioctl_v4l2-Xabbrev.c +ioctl_v4l2_Xabbrev_OBJECTS = ioctl_v4l2-Xabbrev.$(OBJEXT) +ioctl_v4l2_Xabbrev_LDADD = $(LDADD) +ioctl_v4l2_Xabbrev_DEPENDENCIES = libtests.a +ioctl_v4l2_Xraw_SOURCES = ioctl_v4l2-Xraw.c +ioctl_v4l2_Xraw_OBJECTS = ioctl_v4l2-Xraw.$(OBJEXT) +ioctl_v4l2_Xraw_LDADD = $(LDADD) +ioctl_v4l2_Xraw_DEPENDENCIES = libtests.a +ioctl_v4l2_Xverbose_SOURCES = ioctl_v4l2-Xverbose.c +ioctl_v4l2_Xverbose_OBJECTS = ioctl_v4l2-Xverbose.$(OBJEXT) +ioctl_v4l2_Xverbose_LDADD = $(LDADD) +ioctl_v4l2_Xverbose_DEPENDENCIES = libtests.a +ioctl_v4l2_success_SOURCES = ioctl_v4l2-success.c +ioctl_v4l2_success_OBJECTS = ioctl_v4l2-success.$(OBJEXT) +ioctl_v4l2_success_LDADD = $(LDADD) +ioctl_v4l2_success_DEPENDENCIES = libtests.a +ioctl_v4l2_success_Xabbrev_SOURCES = ioctl_v4l2-success-Xabbrev.c +ioctl_v4l2_success_Xabbrev_OBJECTS = \ + ioctl_v4l2-success-Xabbrev.$(OBJEXT) +ioctl_v4l2_success_Xabbrev_LDADD = $(LDADD) +ioctl_v4l2_success_Xabbrev_DEPENDENCIES = libtests.a +ioctl_v4l2_success_Xraw_SOURCES = ioctl_v4l2-success-Xraw.c +ioctl_v4l2_success_Xraw_OBJECTS = ioctl_v4l2-success-Xraw.$(OBJEXT) +ioctl_v4l2_success_Xraw_LDADD = $(LDADD) +ioctl_v4l2_success_Xraw_DEPENDENCIES = libtests.a +ioctl_v4l2_success_Xverbose_SOURCES = ioctl_v4l2-success-Xverbose.c +ioctl_v4l2_success_Xverbose_OBJECTS = \ + ioctl_v4l2-success-Xverbose.$(OBJEXT) +ioctl_v4l2_success_Xverbose_LDADD = $(LDADD) +ioctl_v4l2_success_Xverbose_DEPENDENCIES = libtests.a +ioctl_v4l2_success_v_SOURCES = ioctl_v4l2-success-v.c +ioctl_v4l2_success_v_OBJECTS = ioctl_v4l2-success-v.$(OBJEXT) +ioctl_v4l2_success_v_LDADD = $(LDADD) +ioctl_v4l2_success_v_DEPENDENCIES = libtests.a +ioctl_v4l2_success_v_Xabbrev_SOURCES = ioctl_v4l2-success-v-Xabbrev.c +ioctl_v4l2_success_v_Xabbrev_OBJECTS = \ + ioctl_v4l2-success-v-Xabbrev.$(OBJEXT) +ioctl_v4l2_success_v_Xabbrev_LDADD = $(LDADD) +ioctl_v4l2_success_v_Xabbrev_DEPENDENCIES = libtests.a +ioctl_v4l2_success_v_Xraw_SOURCES = ioctl_v4l2-success-v-Xraw.c +ioctl_v4l2_success_v_Xraw_OBJECTS = \ + ioctl_v4l2-success-v-Xraw.$(OBJEXT) +ioctl_v4l2_success_v_Xraw_LDADD = $(LDADD) +ioctl_v4l2_success_v_Xraw_DEPENDENCIES = libtests.a +ioctl_v4l2_success_v_Xverbose_SOURCES = \ + ioctl_v4l2-success-v-Xverbose.c +ioctl_v4l2_success_v_Xverbose_OBJECTS = \ + ioctl_v4l2-success-v-Xverbose.$(OBJEXT) +ioctl_v4l2_success_v_Xverbose_LDADD = $(LDADD) +ioctl_v4l2_success_v_Xverbose_DEPENDENCIES = libtests.a +ioctl_v4l2_v_SOURCES = ioctl_v4l2-v.c +ioctl_v4l2_v_OBJECTS = ioctl_v4l2-v.$(OBJEXT) +ioctl_v4l2_v_LDADD = $(LDADD) +ioctl_v4l2_v_DEPENDENCIES = libtests.a +ioctl_v4l2_v_Xabbrev_SOURCES = ioctl_v4l2-v-Xabbrev.c +ioctl_v4l2_v_Xabbrev_OBJECTS = ioctl_v4l2-v-Xabbrev.$(OBJEXT) +ioctl_v4l2_v_Xabbrev_LDADD = $(LDADD) +ioctl_v4l2_v_Xabbrev_DEPENDENCIES = libtests.a +ioctl_v4l2_v_Xraw_SOURCES = ioctl_v4l2-v-Xraw.c +ioctl_v4l2_v_Xraw_OBJECTS = ioctl_v4l2-v-Xraw.$(OBJEXT) +ioctl_v4l2_v_Xraw_LDADD = $(LDADD) +ioctl_v4l2_v_Xraw_DEPENDENCIES = libtests.a +ioctl_v4l2_v_Xverbose_SOURCES = ioctl_v4l2-v-Xverbose.c +ioctl_v4l2_v_Xverbose_OBJECTS = ioctl_v4l2-v-Xverbose.$(OBJEXT) +ioctl_v4l2_v_Xverbose_LDADD = $(LDADD) +ioctl_v4l2_v_Xverbose_DEPENDENCIES = libtests.a +ioctl_watchdog_SOURCES = ioctl_watchdog.c +ioctl_watchdog_OBJECTS = ioctl_watchdog.$(OBJEXT) +ioctl_watchdog_LDADD = $(LDADD) +ioctl_watchdog_DEPENDENCIES = libtests.a ioperm_SOURCES = ioperm.c ioperm_OBJECTS = ioperm.$(OBJEXT) ioperm_LDADD = $(LDADD) @@ -1116,6 +1758,11 @@ ioprio_SOURCES = ioprio.c ioprio_OBJECTS = ioprio.$(OBJEXT) ioprio_LDADD = $(LDADD) ioprio_DEPENDENCIES = libtests.a +ioprio__pidns_translation_SOURCES = ioprio--pidns-translation.c +ioprio__pidns_translation_OBJECTS = \ + ioprio--pidns-translation.$(OBJEXT) +ioprio__pidns_translation_LDADD = $(LDADD) +ioprio__pidns_translation_DEPENDENCIES = libtests.a ioprio_Xabbrev_SOURCES = ioprio-Xabbrev.c ioprio_Xabbrev_OBJECTS = ioprio-Xabbrev.$(OBJEXT) ioprio_Xabbrev_LDADD = $(LDADD) @@ -1212,6 +1859,11 @@ kcmp_y_SOURCES = kcmp-y.c kcmp_y_OBJECTS = kcmp-y.$(OBJEXT) kcmp_y_LDADD = $(LDADD) kcmp_y_DEPENDENCIES = libtests.a +kcmp_y__pidns_translation_SOURCES = kcmp-y--pidns-translation.c +kcmp_y__pidns_translation_OBJECTS = \ + kcmp-y--pidns-translation.$(OBJEXT) +kcmp_y__pidns_translation_LDADD = $(LDADD) +kcmp_y__pidns_translation_DEPENDENCIES = libtests.a kern_features_SOURCES = kern_features.c kern_features_OBJECTS = kern_features.$(OBJEXT) kern_features_LDADD = $(LDADD) @@ -1260,6 +1912,10 @@ kill_SOURCES = kill.c kill_OBJECTS = kill.$(OBJEXT) kill_LDADD = $(LDADD) kill_DEPENDENCIES = libtests.a +kill__pidns_translation_SOURCES = kill--pidns-translation.c +kill__pidns_translation_OBJECTS = kill--pidns-translation.$(OBJEXT) +kill__pidns_translation_LDADD = $(LDADD) +kill__pidns_translation_DEPENDENCIES = libtests.a kill_child_SOURCES = kill_child.c kill_child_OBJECTS = kill_child.$(OBJEXT) kill_child_LDADD = $(LDADD) @@ -1318,10 +1974,30 @@ madvise_SOURCES = madvise.c madvise_OBJECTS = madvise.$(OBJEXT) madvise_LDADD = $(LDADD) madvise_DEPENDENCIES = libtests.a +maybe_switch_current_tcp_SOURCES = maybe_switch_current_tcp.c +maybe_switch_current_tcp_OBJECTS = maybe_switch_current_tcp.$(OBJEXT) +maybe_switch_current_tcp_DEPENDENCIES = $(LDADD) +maybe_switch_current_tcp__quiet_thread_execve_SOURCES = \ + maybe_switch_current_tcp--quiet-thread-execve.c +maybe_switch_current_tcp__quiet_thread_execve_OBJECTS = \ + maybe_switch_current_tcp--quiet-thread-execve.$(OBJEXT) +maybe_switch_current_tcp__quiet_thread_execve_DEPENDENCIES = $(LDADD) mbind_SOURCES = mbind.c mbind_OBJECTS = mbind.$(OBJEXT) mbind_LDADD = $(LDADD) mbind_DEPENDENCIES = libtests.a +mbind_Xabbrev_SOURCES = mbind-Xabbrev.c +mbind_Xabbrev_OBJECTS = mbind-Xabbrev.$(OBJEXT) +mbind_Xabbrev_LDADD = $(LDADD) +mbind_Xabbrev_DEPENDENCIES = libtests.a +mbind_Xraw_SOURCES = mbind-Xraw.c +mbind_Xraw_OBJECTS = mbind-Xraw.$(OBJEXT) +mbind_Xraw_LDADD = $(LDADD) +mbind_Xraw_DEPENDENCIES = libtests.a +mbind_Xverbose_SOURCES = mbind-Xverbose.c +mbind_Xverbose_OBJECTS = mbind-Xverbose.$(OBJEXT) +mbind_Xverbose_LDADD = $(LDADD) +mbind_Xverbose_DEPENDENCIES = libtests.a membarrier_SOURCES = membarrier.c membarrier_OBJECTS = membarrier.$(OBJEXT) membarrier_LDADD = $(LDADD) @@ -1346,6 +2022,12 @@ migrate_pages_SOURCES = migrate_pages.c migrate_pages_OBJECTS = migrate_pages.$(OBJEXT) migrate_pages_LDADD = $(LDADD) migrate_pages_DEPENDENCIES = libtests.a +migrate_pages__pidns_translation_SOURCES = \ + migrate_pages--pidns-translation.c +migrate_pages__pidns_translation_OBJECTS = \ + migrate_pages--pidns-translation.$(OBJEXT) +migrate_pages__pidns_translation_LDADD = $(LDADD) +migrate_pages__pidns_translation_DEPENDENCIES = libtests.a mincore_SOURCES = mincore.c mincore_OBJECTS = mincore.$(OBJEXT) mincore_LDADD = $(LDADD) @@ -1446,10 +2128,24 @@ mount_Xverbose_SOURCES = mount-Xverbose.c mount_Xverbose_OBJECTS = mount-Xverbose.$(OBJEXT) mount_Xverbose_LDADD = $(LDADD) mount_Xverbose_DEPENDENCIES = libtests.a +move_mount_SOURCES = move_mount.c +move_mount_OBJECTS = move_mount.$(OBJEXT) +move_mount_LDADD = $(LDADD) +move_mount_DEPENDENCIES = libtests.a +move_mount_P_SOURCES = move_mount-P.c +move_mount_P_OBJECTS = move_mount-P.$(OBJEXT) +move_mount_P_LDADD = $(LDADD) +move_mount_P_DEPENDENCIES = libtests.a move_pages_SOURCES = move_pages.c move_pages_OBJECTS = move_pages.$(OBJEXT) move_pages_LDADD = $(LDADD) move_pages_DEPENDENCIES = libtests.a +move_pages__pidns_translation_SOURCES = \ + move_pages--pidns-translation.c +move_pages__pidns_translation_OBJECTS = \ + move_pages--pidns-translation.$(OBJEXT) +move_pages__pidns_translation_LDADD = $(LDADD) +move_pages__pidns_translation_DEPENDENCIES = libtests.a move_pages_Xabbrev_SOURCES = move_pages-Xabbrev.c move_pages_Xabbrev_OBJECTS = move_pages-Xabbrev.$(OBJEXT) move_pages_Xabbrev_LDADD = $(LDADD) @@ -1497,6 +2193,27 @@ nanosleep_SOURCES = nanosleep.c nanosleep_OBJECTS = nanosleep.$(OBJEXT) nanosleep_LDADD = $(LDADD) nanosleep_DEPENDENCIES = libtests.a +net__decode_fds_dev_netlink_SOURCES = net--decode-fds-dev-netlink.c +net__decode_fds_dev_netlink_OBJECTS = \ + net--decode-fds-dev-netlink.$(OBJEXT) +net__decode_fds_dev_netlink_LDADD = $(LDADD) +net__decode_fds_dev_netlink_DEPENDENCIES = libtests.a +net__decode_fds_none_netlink_SOURCES = net--decode-fds-none-netlink.c +net__decode_fds_none_netlink_OBJECTS = \ + net--decode-fds-none-netlink.$(OBJEXT) +net__decode_fds_none_netlink_LDADD = $(LDADD) +net__decode_fds_none_netlink_DEPENDENCIES = libtests.a +net__decode_fds_path_netlink_SOURCES = net--decode-fds-path-netlink.c +net__decode_fds_path_netlink_OBJECTS = \ + net--decode-fds-path-netlink.$(OBJEXT) +net__decode_fds_path_netlink_LDADD = $(LDADD) +net__decode_fds_path_netlink_DEPENDENCIES = libtests.a +net__decode_fds_socket_netlink_SOURCES = \ + net--decode-fds-socket-netlink.c +net__decode_fds_socket_netlink_OBJECTS = \ + net--decode-fds-socket-netlink.$(OBJEXT) +net__decode_fds_socket_netlink_LDADD = $(LDADD) +net__decode_fds_socket_netlink_DEPENDENCIES = libtests.a net_accept_connect_SOURCES = net-accept-connect.c net_accept_connect_OBJECTS = net-accept-connect.$(OBJEXT) net_accept_connect_LDADD = $(LDADD) @@ -1525,6 +2242,12 @@ net_sockaddr_SOURCES = net-sockaddr.c net_sockaddr_OBJECTS = net-sockaddr.$(OBJEXT) net_sockaddr_LDADD = $(LDADD) net_sockaddr_DEPENDENCIES = libtests.a +net_sockaddr__pidns_translation_SOURCES = \ + net-sockaddr--pidns-translation.c +net_sockaddr__pidns_translation_OBJECTS = \ + net-sockaddr--pidns-translation.$(OBJEXT) +net_sockaddr__pidns_translation_LDADD = $(LDADD) +net_sockaddr__pidns_translation_DEPENDENCIES = libtests.a net_tpacket_req_SOURCES = net-tpacket_req.c net_tpacket_req_OBJECTS = net-tpacket_req.$(OBJEXT) net_tpacket_req_LDADD = $(LDADD) @@ -1562,6 +2285,12 @@ netlink_audit_SOURCES = netlink_audit.c netlink_audit_OBJECTS = netlink_audit.$(OBJEXT) netlink_audit_LDADD = $(LDADD) netlink_audit_DEPENDENCIES = libtests.a +netlink_audit__pidns_translation_SOURCES = \ + netlink_audit--pidns-translation.c +netlink_audit__pidns_translation_OBJECTS = \ + netlink_audit--pidns-translation.$(OBJEXT) +netlink_audit__pidns_translation_LDADD = $(LDADD) +netlink_audit__pidns_translation_DEPENDENCIES = libtests.a netlink_crypto_SOURCES = netlink_crypto.c netlink_crypto_OBJECTS = netlink_crypto.$(OBJEXT) netlink_crypto_LDADD = $(LDADD) @@ -1710,6 +2439,10 @@ nlattr_ifla_xdp_SOURCES = nlattr_ifla_xdp.c nlattr_ifla_xdp_OBJECTS = nlattr_ifla_xdp.$(OBJEXT) nlattr_ifla_xdp_LDADD = $(LDADD) nlattr_ifla_xdp_DEPENDENCIES = libtests.a +nlattr_ifla_xdp_y_SOURCES = nlattr_ifla_xdp-y.c +nlattr_ifla_xdp_y_OBJECTS = nlattr_ifla_xdp-y.$(OBJEXT) +nlattr_ifla_xdp_y_LDADD = $(LDADD) +nlattr_ifla_xdp_y_DEPENDENCIES = libtests.a nlattr_inet_diag_msg_SOURCES = nlattr_inet_diag_msg.c nlattr_inet_diag_msg_OBJECTS = nlattr_inet_diag_msg.$(OBJEXT) nlattr_inet_diag_msg_LDADD = $(LDADD) @@ -1851,10 +2584,58 @@ open_SOURCES = open.c open_OBJECTS = open.$(OBJEXT) open_LDADD = $(LDADD) open_DEPENDENCIES = libtests.a +open_tree_SOURCES = open_tree.c +open_tree_OBJECTS = open_tree.$(OBJEXT) +open_tree_LDADD = $(LDADD) +open_tree_DEPENDENCIES = libtests.a +open_tree_P_SOURCES = open_tree-P.c +open_tree_P_OBJECTS = open_tree-P.$(OBJEXT) +open_tree_P_LDADD = $(LDADD) +open_tree_P_DEPENDENCIES = libtests.a openat_SOURCES = openat.c openat_OBJECTS = openat.$(OBJEXT) openat_LDADD = $(LDADD) openat_DEPENDENCIES = libtests.a +openat2_SOURCES = openat2.c +openat2_OBJECTS = openat2.$(OBJEXT) +openat2_LDADD = $(LDADD) +openat2_DEPENDENCIES = libtests.a +openat2_Xabbrev_SOURCES = openat2-Xabbrev.c +openat2_Xabbrev_OBJECTS = openat2-Xabbrev.$(OBJEXT) +openat2_Xabbrev_LDADD = $(LDADD) +openat2_Xabbrev_DEPENDENCIES = libtests.a +openat2_Xraw_SOURCES = openat2-Xraw.c +openat2_Xraw_OBJECTS = openat2-Xraw.$(OBJEXT) +openat2_Xraw_LDADD = $(LDADD) +openat2_Xraw_DEPENDENCIES = libtests.a +openat2_Xverbose_SOURCES = openat2-Xverbose.c +openat2_Xverbose_OBJECTS = openat2-Xverbose.$(OBJEXT) +openat2_Xverbose_LDADD = $(LDADD) +openat2_Xverbose_DEPENDENCIES = libtests.a +openat2_v_SOURCES = openat2-v.c +openat2_v_OBJECTS = openat2-v.$(OBJEXT) +openat2_v_LDADD = $(LDADD) +openat2_v_DEPENDENCIES = libtests.a +openat2_v_y_SOURCES = openat2-v-y.c +openat2_v_y_OBJECTS = openat2-v-y.$(OBJEXT) +openat2_v_y_LDADD = $(LDADD) +openat2_v_y_DEPENDENCIES = libtests.a +openat2_v_y_Xabbrev_SOURCES = openat2-v-y-Xabbrev.c +openat2_v_y_Xabbrev_OBJECTS = openat2-v-y-Xabbrev.$(OBJEXT) +openat2_v_y_Xabbrev_LDADD = $(LDADD) +openat2_v_y_Xabbrev_DEPENDENCIES = libtests.a +openat2_v_y_Xraw_SOURCES = openat2-v-y-Xraw.c +openat2_v_y_Xraw_OBJECTS = openat2-v-y-Xraw.$(OBJEXT) +openat2_v_y_Xraw_LDADD = $(LDADD) +openat2_v_y_Xraw_DEPENDENCIES = libtests.a +openat2_v_y_Xverbose_SOURCES = openat2-v-y-Xverbose.c +openat2_v_y_Xverbose_OBJECTS = openat2-v-y-Xverbose.$(OBJEXT) +openat2_v_y_Xverbose_LDADD = $(LDADD) +openat2_v_y_Xverbose_DEPENDENCIES = libtests.a +openat2_y_SOURCES = openat2-y.c +openat2_y_OBJECTS = openat2-y.$(OBJEXT) +openat2_y_LDADD = $(LDADD) +openat2_y_DEPENDENCIES = libtests.a orphaned_process_group_SOURCES = orphaned_process_group.c orphaned_process_group_OBJECTS = orphaned_process_group.$(OBJEXT) orphaned_process_group_LDADD = $(LDADD) @@ -1899,10 +2680,69 @@ personality_Xverbose_SOURCES = personality-Xverbose.c personality_Xverbose_OBJECTS = personality-Xverbose.$(OBJEXT) personality_Xverbose_LDADD = $(LDADD) personality_Xverbose_DEPENDENCIES = libtests.a +pidfd_getfd_SOURCES = pidfd_getfd.c +pidfd_getfd_OBJECTS = pidfd_getfd.$(OBJEXT) +pidfd_getfd_LDADD = $(LDADD) +pidfd_getfd_DEPENDENCIES = libtests.a +pidfd_getfd_y_SOURCES = pidfd_getfd-y.c +pidfd_getfd_y_OBJECTS = pidfd_getfd-y.$(OBJEXT) +pidfd_getfd_y_LDADD = $(LDADD) +pidfd_getfd_y_DEPENDENCIES = libtests.a +pidfd_getfd_yy_SOURCES = pidfd_getfd-yy.c +pidfd_getfd_yy_OBJECTS = pidfd_getfd-yy.$(OBJEXT) +pidfd_getfd_yy_LDADD = $(LDADD) +pidfd_getfd_yy_DEPENDENCIES = libtests.a +pidfd_open_SOURCES = pidfd_open.c +pidfd_open_OBJECTS = pidfd_open.$(OBJEXT) +pidfd_open_LDADD = $(LDADD) +pidfd_open_DEPENDENCIES = libtests.a +pidfd_open__decode_fd_path_SOURCES = pidfd_open--decode-fd-path.c +pidfd_open__decode_fd_path_OBJECTS = \ + pidfd_open--decode-fd-path.$(OBJEXT) +pidfd_open__decode_fd_path_LDADD = $(LDADD) +pidfd_open__decode_fd_path_DEPENDENCIES = libtests.a +pidfd_open__decode_fd_pidfd_SOURCES = pidfd_open--decode-fd-pidfd.c +pidfd_open__decode_fd_pidfd_OBJECTS = \ + pidfd_open--decode-fd-pidfd.$(OBJEXT) +pidfd_open__decode_fd_pidfd_LDADD = $(LDADD) +pidfd_open__decode_fd_pidfd_DEPENDENCIES = libtests.a +pidfd_open__decode_fd_socket_SOURCES = pidfd_open--decode-fd-socket.c +pidfd_open__decode_fd_socket_OBJECTS = \ + pidfd_open--decode-fd-socket.$(OBJEXT) +pidfd_open__decode_fd_socket_LDADD = $(LDADD) +pidfd_open__decode_fd_socket_DEPENDENCIES = libtests.a +pidfd_open__pidns_translation_SOURCES = \ + pidfd_open--pidns-translation.c +pidfd_open__pidns_translation_OBJECTS = \ + pidfd_open--pidns-translation.$(OBJEXT) +pidfd_open__pidns_translation_LDADD = $(LDADD) +pidfd_open__pidns_translation_DEPENDENCIES = libtests.a +pidfd_open_P_SOURCES = pidfd_open-P.c +pidfd_open_P_OBJECTS = pidfd_open-P.$(OBJEXT) +pidfd_open_P_LDADD = $(LDADD) +pidfd_open_P_DEPENDENCIES = libtests.a +pidfd_open_y_SOURCES = pidfd_open-y.c +pidfd_open_y_OBJECTS = pidfd_open-y.$(OBJEXT) +pidfd_open_y_LDADD = $(LDADD) +pidfd_open_y_DEPENDENCIES = libtests.a +pidfd_open_yy_SOURCES = pidfd_open-yy.c +pidfd_open_yy_OBJECTS = pidfd_open-yy.$(OBJEXT) +pidfd_open_yy_LDADD = $(LDADD) +pidfd_open_yy_DEPENDENCIES = libtests.a pidfd_send_signal_SOURCES = pidfd_send_signal.c pidfd_send_signal_OBJECTS = pidfd_send_signal.$(OBJEXT) pidfd_send_signal_LDADD = $(LDADD) pidfd_send_signal_DEPENDENCIES = libtests.a +pidfd_send_signal__pidns_translation_SOURCES = \ + pidfd_send_signal--pidns-translation.c +pidfd_send_signal__pidns_translation_OBJECTS = \ + pidfd_send_signal--pidns-translation.$(OBJEXT) +pidfd_send_signal__pidns_translation_LDADD = $(LDADD) +pidfd_send_signal__pidns_translation_DEPENDENCIES = libtests.a +pidns_cache_SOURCES = pidns-cache.c +pidns_cache_OBJECTS = pidns-cache.$(OBJEXT) +pidns_cache_LDADD = $(LDADD) +pidns_cache_DEPENDENCIES = libtests.a pipe_SOURCES = pipe.c pipe_OBJECTS = pipe.$(OBJEXT) pipe_LDADD = $(LDADD) @@ -2008,6 +2848,10 @@ print_maxfd_SOURCES = print_maxfd.c print_maxfd_OBJECTS = print_maxfd.$(OBJEXT) print_maxfd_LDADD = $(LDADD) print_maxfd_DEPENDENCIES = libtests.a +print_ppid_tracerpid_SOURCES = print_ppid_tracerpid.c +print_ppid_tracerpid_OBJECTS = print_ppid_tracerpid.$(OBJEXT) +print_ppid_tracerpid_LDADD = $(LDADD) +print_ppid_tracerpid_DEPENDENCIES = libtests.a printpath_umovestr_SOURCES = printpath-umovestr.c printpath_umovestr_OBJECTS = printpath-umovestr.$(OBJEXT) printpath_umovestr_LDADD = $(LDADD) @@ -2057,14 +2901,31 @@ prlimit64_SOURCES = prlimit64.c prlimit64_OBJECTS = prlimit64.$(OBJEXT) prlimit64_LDADD = $(LDADD) prlimit64_DEPENDENCIES = libtests.a +prlimit64__pidns_translation_SOURCES = prlimit64--pidns-translation.c +prlimit64__pidns_translation_OBJECTS = \ + prlimit64--pidns-translation.$(OBJEXT) +prlimit64__pidns_translation_LDADD = $(LDADD) +prlimit64__pidns_translation_DEPENDENCIES = libtests.a process_vm_readv_SOURCES = process_vm_readv.c process_vm_readv_OBJECTS = process_vm_readv.$(OBJEXT) process_vm_readv_LDADD = $(LDADD) process_vm_readv_DEPENDENCIES = libtests.a +process_vm_readv__pidns_translation_SOURCES = \ + process_vm_readv--pidns-translation.c +process_vm_readv__pidns_translation_OBJECTS = \ + process_vm_readv--pidns-translation.$(OBJEXT) +process_vm_readv__pidns_translation_LDADD = $(LDADD) +process_vm_readv__pidns_translation_DEPENDENCIES = libtests.a process_vm_writev_SOURCES = process_vm_writev.c process_vm_writev_OBJECTS = process_vm_writev.$(OBJEXT) process_vm_writev_LDADD = $(LDADD) process_vm_writev_DEPENDENCIES = libtests.a +process_vm_writev__pidns_translation_SOURCES = \ + process_vm_writev--pidns-translation.c +process_vm_writev__pidns_translation_OBJECTS = \ + process_vm_writev--pidns-translation.$(OBJEXT) +process_vm_writev__pidns_translation_LDADD = $(LDADD) +process_vm_writev__pidns_translation_DEPENDENCIES = libtests.a pselect6_SOURCES = pselect6.c pselect6_OBJECTS = pselect6.$(OBJEXT) pselect6_LDADD = $(LDADD) @@ -2173,10 +3034,18 @@ reboot_SOURCES = reboot.c reboot_OBJECTS = reboot.$(OBJEXT) reboot_LDADD = $(LDADD) reboot_DEPENDENCIES = libtests.a +recv_MSG_TRUNC_SOURCES = recv-MSG_TRUNC.c +recv_MSG_TRUNC_OBJECTS = recv-MSG_TRUNC.$(OBJEXT) +recv_MSG_TRUNC_LDADD = $(LDADD) +recv_MSG_TRUNC_DEPENDENCIES = libtests.a recvfrom_SOURCES = recvfrom.c recvfrom_OBJECTS = recvfrom.$(OBJEXT) recvfrom_LDADD = $(LDADD) recvfrom_DEPENDENCIES = libtests.a +recvfrom_MSG_TRUNC_SOURCES = recvfrom-MSG_TRUNC.c +recvfrom_MSG_TRUNC_OBJECTS = recvfrom-MSG_TRUNC.$(OBJEXT) +recvfrom_MSG_TRUNC_LDADD = $(LDADD) +recvfrom_MSG_TRUNC_DEPENDENCIES = libtests.a recvmmsg_timeout_SOURCES = recvmmsg-timeout.c recvmmsg_timeout_OBJECTS = recvmmsg-timeout.$(OBJEXT) recvmmsg_timeout_LDADD = $(LDADD) @@ -2250,6 +3119,12 @@ rt_sigqueueinfo_SOURCES = rt_sigqueueinfo.c rt_sigqueueinfo_OBJECTS = rt_sigqueueinfo.$(OBJEXT) rt_sigqueueinfo_LDADD = $(LDADD) rt_sigqueueinfo_DEPENDENCIES = libtests.a +rt_sigqueueinfo__pidns_translation_SOURCES = \ + rt_sigqueueinfo--pidns-translation.c +rt_sigqueueinfo__pidns_translation_OBJECTS = \ + rt_sigqueueinfo--pidns-translation.$(OBJEXT) +rt_sigqueueinfo__pidns_translation_LDADD = $(LDADD) +rt_sigqueueinfo__pidns_translation_DEPENDENCIES = libtests.a rt_sigreturn_SOURCES = rt_sigreturn.c rt_sigreturn_OBJECTS = rt_sigreturn.$(OBJEXT) rt_sigreturn_LDADD = $(LDADD) @@ -2266,6 +3141,12 @@ rt_tgsigqueueinfo_SOURCES = rt_tgsigqueueinfo.c rt_tgsigqueueinfo_OBJECTS = rt_tgsigqueueinfo.$(OBJEXT) rt_tgsigqueueinfo_LDADD = $(LDADD) rt_tgsigqueueinfo_DEPENDENCIES = libtests.a +rt_tgsigqueueinfo__pidns_translation_SOURCES = \ + rt_tgsigqueueinfo--pidns-translation.c +rt_tgsigqueueinfo__pidns_translation_OBJECTS = \ + rt_tgsigqueueinfo--pidns-translation.$(OBJEXT) +rt_tgsigqueueinfo__pidns_translation_LDADD = $(LDADD) +rt_tgsigqueueinfo__pidns_translation_DEPENDENCIES = libtests.a run_expect_termsig_SOURCES = run_expect_termsig.c run_expect_termsig_OBJECTS = run_expect_termsig.$(OBJEXT) run_expect_termsig_LDADD = $(LDADD) @@ -2306,18 +3187,42 @@ sched_xetaffinity_SOURCES = sched_xetaffinity.c sched_xetaffinity_OBJECTS = sched_xetaffinity.$(OBJEXT) sched_xetaffinity_LDADD = $(LDADD) sched_xetaffinity_DEPENDENCIES = libtests.a +sched_xetaffinity__pidns_translation_SOURCES = \ + sched_xetaffinity--pidns-translation.c +sched_xetaffinity__pidns_translation_OBJECTS = \ + sched_xetaffinity--pidns-translation.$(OBJEXT) +sched_xetaffinity__pidns_translation_LDADD = $(LDADD) +sched_xetaffinity__pidns_translation_DEPENDENCIES = libtests.a sched_xetattr_SOURCES = sched_xetattr.c sched_xetattr_OBJECTS = sched_xetattr.$(OBJEXT) sched_xetattr_LDADD = $(LDADD) sched_xetattr_DEPENDENCIES = libtests.a +sched_xetattr__pidns_translation_SOURCES = \ + sched_xetattr--pidns-translation.c +sched_xetattr__pidns_translation_OBJECTS = \ + sched_xetattr--pidns-translation.$(OBJEXT) +sched_xetattr__pidns_translation_LDADD = $(LDADD) +sched_xetattr__pidns_translation_DEPENDENCIES = libtests.a sched_xetparam_SOURCES = sched_xetparam.c sched_xetparam_OBJECTS = sched_xetparam.$(OBJEXT) sched_xetparam_LDADD = $(LDADD) sched_xetparam_DEPENDENCIES = libtests.a +sched_xetparam__pidns_translation_SOURCES = \ + sched_xetparam--pidns-translation.c +sched_xetparam__pidns_translation_OBJECTS = \ + sched_xetparam--pidns-translation.$(OBJEXT) +sched_xetparam__pidns_translation_LDADD = $(LDADD) +sched_xetparam__pidns_translation_DEPENDENCIES = libtests.a sched_xetscheduler_SOURCES = sched_xetscheduler.c sched_xetscheduler_OBJECTS = sched_xetscheduler.$(OBJEXT) sched_xetscheduler_LDADD = $(LDADD) sched_xetscheduler_DEPENDENCIES = libtests.a +sched_xetscheduler__pidns_translation_SOURCES = \ + sched_xetscheduler--pidns-translation.c +sched_xetscheduler__pidns_translation_OBJECTS = \ + sched_xetscheduler--pidns-translation.$(OBJEXT) +sched_xetscheduler__pidns_translation_LDADD = $(LDADD) +sched_xetscheduler__pidns_translation_DEPENDENCIES = libtests.a sched_yield_SOURCES = sched_yield.c sched_yield_OBJECTS = sched_yield.$(OBJEXT) sched_yield_LDADD = $(LDADD) @@ -2354,6 +3259,14 @@ semop_SOURCES = semop.c semop_OBJECTS = semop.$(OBJEXT) semop_LDADD = $(LDADD) semop_DEPENDENCIES = libtests.a +semop_indirect_SOURCES = semop-indirect.c +semop_indirect_OBJECTS = semop-indirect.$(OBJEXT) +semop_indirect_LDADD = $(LDADD) +semop_indirect_DEPENDENCIES = libtests.a +semtimedop_SOURCES = semtimedop.c +semtimedop_OBJECTS = semtimedop.$(OBJEXT) +semtimedop_LDADD = $(LDADD) +semtimedop_DEPENDENCIES = libtests.a sendfile_SOURCES = sendfile.c sendfile_OBJECTS = sendfile.$(OBJEXT) sendfile_LDADD = $(LDADD) @@ -2366,6 +3279,18 @@ set_mempolicy_SOURCES = set_mempolicy.c set_mempolicy_OBJECTS = set_mempolicy.$(OBJEXT) set_mempolicy_LDADD = $(LDADD) set_mempolicy_DEPENDENCIES = libtests.a +set_mempolicy_Xabbrev_SOURCES = set_mempolicy-Xabbrev.c +set_mempolicy_Xabbrev_OBJECTS = set_mempolicy-Xabbrev.$(OBJEXT) +set_mempolicy_Xabbrev_LDADD = $(LDADD) +set_mempolicy_Xabbrev_DEPENDENCIES = libtests.a +set_mempolicy_Xraw_SOURCES = set_mempolicy-Xraw.c +set_mempolicy_Xraw_OBJECTS = set_mempolicy-Xraw.$(OBJEXT) +set_mempolicy_Xraw_LDADD = $(LDADD) +set_mempolicy_Xraw_DEPENDENCIES = libtests.a +set_mempolicy_Xverbose_SOURCES = set_mempolicy-Xverbose.c +set_mempolicy_Xverbose_OBJECTS = set_mempolicy-Xverbose.$(OBJEXT) +set_mempolicy_Xverbose_LDADD = $(LDADD) +set_mempolicy_Xverbose_DEPENDENCIES = libtests.a set_ptracer_any_SOURCES = set_ptracer_any.c set_ptracer_any_OBJECTS = set_ptracer_any.$(OBJEXT) set_ptracer_any_LDADD = $(LDADD) @@ -2422,6 +3347,10 @@ setns_SOURCES = setns.c setns_OBJECTS = setns.$(OBJEXT) setns_LDADD = $(LDADD) setns_DEPENDENCIES = libtests.a +setpgrp_exec_SOURCES = setpgrp-exec.c +setpgrp_exec_OBJECTS = setpgrp-exec.$(OBJEXT) +setpgrp_exec_LDADD = $(LDADD) +setpgrp_exec_DEPENDENCIES = libtests.a setregid_SOURCES = setregid.c setregid_OBJECTS = setregid.$(OBJEXT) setregid_LDADD = $(LDADD) @@ -2506,6 +3435,12 @@ signal_receive_SOURCES = signal_receive.c signal_receive_OBJECTS = signal_receive.$(OBJEXT) signal_receive_LDADD = $(LDADD) signal_receive_DEPENDENCIES = libtests.a +signal_receive__pidns_translation_SOURCES = \ + signal_receive--pidns-translation.c +signal_receive__pidns_translation_OBJECTS = \ + signal_receive--pidns-translation.$(OBJEXT) +signal_receive__pidns_translation_LDADD = $(LDADD) +signal_receive__pidns_translation_DEPENDENCIES = libtests.a signalfd4_SOURCES = signalfd4.c signalfd4_OBJECTS = signalfd4.$(OBJEXT) signalfd4_LDADD = $(LDADD) @@ -2542,6 +3477,12 @@ so_peercred_SOURCES = so_peercred.c so_peercred_OBJECTS = so_peercred.$(OBJEXT) so_peercred_LDADD = $(LDADD) so_peercred_DEPENDENCIES = libtests.a +so_peercred__pidns_translation_SOURCES = \ + so_peercred--pidns-translation.c +so_peercred__pidns_translation_OBJECTS = \ + so_peercred--pidns-translation.$(OBJEXT) +so_peercred__pidns_translation_LDADD = $(LDADD) +so_peercred__pidns_translation_DEPENDENCIES = libtests.a so_peercred_Xabbrev_SOURCES = so_peercred-Xabbrev.c so_peercred_Xabbrev_OBJECTS = so_peercred-Xabbrev.$(OBJEXT) so_peercred_Xabbrev_LDADD = $(LDADD) @@ -2604,6 +3545,12 @@ am_stack_fcall_OBJECTS = stack-fcall.$(OBJEXT) stack-fcall-0.$(OBJEXT) \ stack_fcall_OBJECTS = $(am_stack_fcall_OBJECTS) stack_fcall_LDADD = $(LDADD) stack_fcall_DEPENDENCIES = libtests.a +am_stack_fcall_attach_OBJECTS = stack-fcall-attach.$(OBJEXT) \ + stack-fcall-0.$(OBJEXT) stack-fcall-1.$(OBJEXT) \ + stack-fcall-2.$(OBJEXT) stack-fcall-3.$(OBJEXT) +stack_fcall_attach_OBJECTS = $(am_stack_fcall_attach_OBJECTS) +stack_fcall_attach_LDADD = $(LDADD) +stack_fcall_attach_DEPENDENCIES = libtests.a am_stack_fcall_mangled_OBJECTS = stack-fcall-mangled.$(OBJEXT) \ stack-fcall-mangled-0.$(OBJEXT) \ stack-fcall-mangled-1.$(OBJEXT) \ @@ -2628,10 +3575,84 @@ statfs64_SOURCES = statfs64.c statfs64_OBJECTS = statfs64.$(OBJEXT) statfs64_LDADD = $(LDADD) statfs64_DEPENDENCIES = libtests.a +status_all_SOURCES = status-all.c +status_all_OBJECTS = status-all.$(OBJEXT) +status_all_LDADD = $(LDADD) +status_all_DEPENDENCIES = libtests.a +status_failed_SOURCES = status-failed.c +status_failed_OBJECTS = status-failed.$(OBJEXT) +status_failed_LDADD = $(LDADD) +status_failed_DEPENDENCIES = libtests.a +status_failed_long_SOURCES = status-failed-long.c +status_failed_long_OBJECTS = status-failed-long.$(OBJEXT) +status_failed_long_LDADD = $(LDADD) +status_failed_long_DEPENDENCIES = libtests.a +status_failed_status_SOURCES = status-failed-status.c +status_failed_status_OBJECTS = status-failed-status.$(OBJEXT) +status_failed_status_LDADD = $(LDADD) +status_failed_status_DEPENDENCIES = libtests.a +status_none_SOURCES = status-none.c +status_none_OBJECTS = status-none.$(OBJEXT) +status_none_LDADD = $(LDADD) +status_none_DEPENDENCIES = libtests.a +status_none_f_SOURCES = status-none-f.c +status_none_f_OBJECTS = status-none-f.$(OBJEXT) +status_none_f_LDADD = $(LDADD) +status_none_f_DEPENDENCIES = libtests.a +status_none_threads_SOURCES = status-none-threads.c +status_none_threads_OBJECTS = status-none-threads.$(OBJEXT) +status_none_threads_DEPENDENCIES = $(LDADD) +status_successful_SOURCES = status-successful.c +status_successful_OBJECTS = status-successful.$(OBJEXT) +status_successful_LDADD = $(LDADD) +status_successful_DEPENDENCIES = libtests.a +status_successful_long_SOURCES = status-successful-long.c +status_successful_long_OBJECTS = status-successful-long.$(OBJEXT) +status_successful_long_LDADD = $(LDADD) +status_successful_long_DEPENDENCIES = libtests.a +status_successful_status_SOURCES = status-successful-status.c +status_successful_status_OBJECTS = status-successful-status.$(OBJEXT) +status_successful_status_LDADD = $(LDADD) +status_successful_status_DEPENDENCIES = libtests.a +status_unfinished_SOURCES = status-unfinished.c +status_unfinished_OBJECTS = status-unfinished.$(OBJEXT) +status_unfinished_LDADD = $(LDADD) +status_unfinished_DEPENDENCIES = libtests.a +status_unfinished_threads_SOURCES = status-unfinished-threads.c +status_unfinished_threads_OBJECTS = \ + status-unfinished-threads.$(OBJEXT) +status_unfinished_threads_DEPENDENCIES = $(LDADD) statx_SOURCES = statx.c statx_OBJECTS = statx.$(OBJEXT) statx_LDADD = $(LDADD) statx_DEPENDENCIES = libtests.a +strace__strings_in_hex_SOURCES = strace--strings-in-hex.c +strace__strings_in_hex_OBJECTS = strace--strings-in-hex.$(OBJEXT) +strace__strings_in_hex_LDADD = $(LDADD) +strace__strings_in_hex_DEPENDENCIES = libtests.a +strace__strings_in_hex_all_SOURCES = strace--strings-in-hex-all.c +strace__strings_in_hex_all_OBJECTS = \ + strace--strings-in-hex-all.$(OBJEXT) +strace__strings_in_hex_all_LDADD = $(LDADD) +strace__strings_in_hex_all_DEPENDENCIES = libtests.a +strace__strings_in_hex_non_ascii_SOURCES = \ + strace--strings-in-hex-non-ascii.c +strace__strings_in_hex_non_ascii_OBJECTS = \ + strace--strings-in-hex-non-ascii.$(OBJEXT) +strace__strings_in_hex_non_ascii_LDADD = $(LDADD) +strace__strings_in_hex_non_ascii_DEPENDENCIES = libtests.a +strace_n_SOURCES = strace-n.c +strace_n_OBJECTS = strace-n.$(OBJEXT) +strace_n_LDADD = $(LDADD) +strace_n_DEPENDENCIES = libtests.a +strace_x_SOURCES = strace-x.c +strace_x_OBJECTS = strace-x.$(OBJEXT) +strace_x_LDADD = $(LDADD) +strace_x_DEPENDENCIES = libtests.a +strace_xx_SOURCES = strace-xx.c +strace_xx_OBJECTS = strace-xx.$(OBJEXT) +strace_xx_LDADD = $(LDADD) +strace_xx_DEPENDENCIES = libtests.a swap_SOURCES = swap.c swap_OBJECTS = swap.$(OBJEXT) swap_LDADD = $(LDADD) @@ -2668,13 +3689,41 @@ syslog_SOURCES = syslog.c syslog_OBJECTS = syslog.$(OBJEXT) syslog_LDADD = $(LDADD) syslog_DEPENDENCIES = libtests.a +syslog_success_SOURCES = syslog-success.c +syslog_success_OBJECTS = syslog-success.$(OBJEXT) +syslog_success_LDADD = $(LDADD) +syslog_success_DEPENDENCIES = libtests.a tee_SOURCES = tee.c tee_OBJECTS = tee.$(OBJEXT) tee_LDADD = $(LDADD) tee_DEPENDENCIES = libtests.a +tgkill_SOURCES = tgkill.c +tgkill_OBJECTS = tgkill.$(OBJEXT) +tgkill_LDADD = $(LDADD) +tgkill_DEPENDENCIES = libtests.a +tgkill__pidns_translation_SOURCES = tgkill--pidns-translation.c +tgkill__pidns_translation_OBJECTS = \ + tgkill--pidns-translation.$(OBJEXT) +tgkill__pidns_translation_LDADD = $(LDADD) +tgkill__pidns_translation_DEPENDENCIES = libtests.a threads_execve_SOURCES = threads-execve.c threads_execve_OBJECTS = threads-execve.$(OBJEXT) threads_execve_DEPENDENCIES = $(am__DEPENDENCIES_1) $(LDADD) +threads_execve__quiet_thread_execve_SOURCES = \ + threads-execve--quiet-thread-execve.c +threads_execve__quiet_thread_execve_OBJECTS = \ + threads-execve--quiet-thread-execve.$(OBJEXT) +threads_execve__quiet_thread_execve_DEPENDENCIES = \ + $(am__DEPENDENCIES_1) $(LDADD) +threads_execve_q_SOURCES = threads-execve-q.c +threads_execve_q_OBJECTS = threads-execve-q.$(OBJEXT) +threads_execve_q_DEPENDENCIES = $(am__DEPENDENCIES_1) $(LDADD) +threads_execve_qq_SOURCES = threads-execve-qq.c +threads_execve_qq_OBJECTS = threads-execve-qq.$(OBJEXT) +threads_execve_qq_DEPENDENCIES = $(am__DEPENDENCIES_1) $(LDADD) +threads_execve_qqq_SOURCES = threads-execve-qqq.c +threads_execve_qqq_OBJECTS = threads-execve-qqq.$(OBJEXT) +threads_execve_qqq_DEPENDENCIES = $(am__DEPENDENCIES_1) $(LDADD) time_SOURCES = time.c time_OBJECTS = time.$(OBJEXT) time_LDADD = $(LDADD) @@ -2698,6 +3747,24 @@ times_fail_SOURCES = times-fail.c times_fail_OBJECTS = times-fail.$(OBJEXT) times_fail_LDADD = $(LDADD) times_fail_DEPENDENCIES = libtests.a +tkill_SOURCES = tkill.c +tkill_OBJECTS = tkill.$(OBJEXT) +tkill_LDADD = $(LDADD) +tkill_DEPENDENCIES = libtests.a +tkill__pidns_translation_SOURCES = tkill--pidns-translation.c +tkill__pidns_translation_OBJECTS = tkill--pidns-translation.$(OBJEXT) +tkill__pidns_translation_LDADD = $(LDADD) +tkill__pidns_translation_DEPENDENCIES = libtests.a +tracer_ppid_pgid_sid_SOURCES = tracer_ppid_pgid_sid.c +tracer_ppid_pgid_sid_OBJECTS = tracer_ppid_pgid_sid.$(OBJEXT) +tracer_ppid_pgid_sid_LDADD = $(LDADD) +tracer_ppid_pgid_sid_DEPENDENCIES = libtests.a +am_trie_test_OBJECTS = trie_test-trie_test.$(OBJEXT) \ + trie_test-trie_for_tests.$(OBJEXT) +trie_test_OBJECTS = $(am_trie_test_OBJECTS) +trie_test_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_1) +trie_test_LINK = $(CCLD) $(trie_test_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ truncate_SOURCES = truncate.c truncate_OBJECTS = truncate.$(OBJEXT) truncate_LDADD = $(LDADD) @@ -2746,6 +3813,14 @@ umovestr3_SOURCES = umovestr3.c umovestr3_OBJECTS = umovestr3.$(OBJEXT) umovestr3_LDADD = $(LDADD) umovestr3_DEPENDENCIES = libtests.a +umovestr_cached_SOURCES = umovestr_cached.c +umovestr_cached_OBJECTS = umovestr_cached.$(OBJEXT) +umovestr_cached_LDADD = $(LDADD) +umovestr_cached_DEPENDENCIES = libtests.a +umovestr_cached_adjacent_SOURCES = umovestr_cached_adjacent.c +umovestr_cached_adjacent_OBJECTS = umovestr_cached_adjacent.$(OBJEXT) +umovestr_cached_adjacent_LDADD = $(LDADD) +umovestr_cached_adjacent_DEPENDENCIES = libtests.a uname_SOURCES = uname.c uname_OBJECTS = uname.$(OBJEXT) uname_LDADD = $(LDADD) @@ -2851,6 +3926,12 @@ xet_robust_list_SOURCES = xet_robust_list.c xet_robust_list_OBJECTS = xet_robust_list.$(OBJEXT) xet_robust_list_LDADD = $(LDADD) xet_robust_list_DEPENDENCIES = libtests.a +xet_robust_list__pidns_translation_SOURCES = \ + xet_robust_list--pidns-translation.c +xet_robust_list__pidns_translation_OBJECTS = \ + xet_robust_list--pidns-translation.$(OBJEXT) +xet_robust_list__pidns_translation_LDADD = $(LDADD) +xet_robust_list__pidns_translation_DEPENDENCIES = libtests.a xet_thread_area_x86_SOURCES = xet_thread_area_x86.c xet_thread_area_x86_OBJECTS = xet_thread_area_x86.$(OBJEXT) xet_thread_area_x86_LDADD = $(LDADD) @@ -2863,10 +3944,21 @@ xetpgid_SOURCES = xetpgid.c xetpgid_OBJECTS = xetpgid.$(OBJEXT) xetpgid_LDADD = $(LDADD) xetpgid_DEPENDENCIES = libtests.a +xetpgid__pidns_translation_SOURCES = xetpgid--pidns-translation.c +xetpgid__pidns_translation_OBJECTS = \ + xetpgid--pidns-translation.$(OBJEXT) +xetpgid__pidns_translation_LDADD = $(LDADD) +xetpgid__pidns_translation_DEPENDENCIES = libtests.a xetpriority_SOURCES = xetpriority.c xetpriority_OBJECTS = xetpriority.$(OBJEXT) xetpriority_LDADD = $(LDADD) xetpriority_DEPENDENCIES = libtests.a +xetpriority__pidns_translation_SOURCES = \ + xetpriority--pidns-translation.c +xetpriority__pidns_translation_OBJECTS = \ + xetpriority--pidns-translation.$(OBJEXT) +xetpriority__pidns_translation_LDADD = $(LDADD) +xetpriority__pidns_translation_DEPENDENCIES = libtests.a xettimeofday_SOURCES = xettimeofday.c xettimeofday_OBJECTS = xettimeofday.$(OBJEXT) xettimeofday_LDADD = $(LDADD) @@ -2900,29 +3992,55 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/attach-f-p.Po ./$(DEPDIR)/attach-p-cmd-cmd.Po \ ./$(DEPDIR)/attach-p-cmd-p.Po \ ./$(DEPDIR)/block_reset_raise_run.Po \ + ./$(DEPDIR)/block_reset_run.Po \ ./$(DEPDIR)/bpf-obj_get_info_by_fd-prog-v.Po \ ./$(DEPDIR)/bpf-obj_get_info_by_fd-prog.Po \ ./$(DEPDIR)/bpf-obj_get_info_by_fd-v.Po \ ./$(DEPDIR)/bpf-obj_get_info_by_fd.Po \ - ./$(DEPDIR)/bpf-success-v.Po ./$(DEPDIR)/bpf-success.Po \ - ./$(DEPDIR)/bpf-v.Po ./$(DEPDIR)/bpf.Po ./$(DEPDIR)/brk.Po \ - ./$(DEPDIR)/btrfs.Po ./$(DEPDIR)/caps-abbrev.Po \ - ./$(DEPDIR)/caps.Po ./$(DEPDIR)/check_sigblock.Po \ - ./$(DEPDIR)/check_sigign.Po ./$(DEPDIR)/chmod.Po \ - ./$(DEPDIR)/chown.Po ./$(DEPDIR)/chown32.Po \ - ./$(DEPDIR)/chroot.Po ./$(DEPDIR)/clock_adjtime.Po \ - ./$(DEPDIR)/clock_nanosleep.Po ./$(DEPDIR)/clock_xettime.Po \ - ./$(DEPDIR)/clone_parent.Po ./$(DEPDIR)/clone_ptrace.Po \ - ./$(DEPDIR)/copy_file_range.Po ./$(DEPDIR)/count-f.Po \ - ./$(DEPDIR)/creat.Po ./$(DEPDIR)/delay.Po \ - ./$(DEPDIR)/delete_module.Po ./$(DEPDIR)/dev-yy.Po \ - ./$(DEPDIR)/dup.Po ./$(DEPDIR)/dup2.Po ./$(DEPDIR)/dup3.Po \ - ./$(DEPDIR)/epoll_create.Po ./$(DEPDIR)/epoll_create1.Po \ - ./$(DEPDIR)/epoll_ctl.Po ./$(DEPDIR)/epoll_pwait.Po \ - ./$(DEPDIR)/epoll_wait.Po ./$(DEPDIR)/erestartsys.Po \ - ./$(DEPDIR)/eventfd.Po ./$(DEPDIR)/execve-v.Po \ - ./$(DEPDIR)/execve.Po ./$(DEPDIR)/execveat-v.Po \ - ./$(DEPDIR)/execveat.Po ./$(DEPDIR)/faccessat.Po \ + ./$(DEPDIR)/bpf-success-long-y.Po ./$(DEPDIR)/bpf-success-v.Po \ + ./$(DEPDIR)/bpf-success.Po ./$(DEPDIR)/bpf-v.Po \ + ./$(DEPDIR)/bpf.Po ./$(DEPDIR)/brk.Po ./$(DEPDIR)/btrfs.Po \ + ./$(DEPDIR)/caps-abbrev.Po ./$(DEPDIR)/caps.Po \ + ./$(DEPDIR)/check_sigblock.Po ./$(DEPDIR)/check_sigign.Po \ + ./$(DEPDIR)/chmod.Po ./$(DEPDIR)/chown.Po \ + ./$(DEPDIR)/chown32.Po ./$(DEPDIR)/chroot.Po \ + ./$(DEPDIR)/clock_adjtime.Po ./$(DEPDIR)/clock_nanosleep.Po \ + ./$(DEPDIR)/clock_xettime.Po ./$(DEPDIR)/clone-flags.Po \ + ./$(DEPDIR)/clone3-Xabbrev.Po ./$(DEPDIR)/clone3-Xraw.Po \ + ./$(DEPDIR)/clone3-Xverbose.Po \ + ./$(DEPDIR)/clone3-success-Xabbrev.Po \ + ./$(DEPDIR)/clone3-success-Xraw.Po \ + ./$(DEPDIR)/clone3-success-Xverbose.Po \ + ./$(DEPDIR)/clone3-success.Po ./$(DEPDIR)/clone3.Po \ + ./$(DEPDIR)/clone_parent--quiet-exit.Po \ + ./$(DEPDIR)/clone_parent-q.Po ./$(DEPDIR)/clone_parent-qq.Po \ + ./$(DEPDIR)/clone_parent.Po \ + ./$(DEPDIR)/clone_ptrace--quiet-attach.Po \ + ./$(DEPDIR)/clone_ptrace--quiet-exit.Po \ + ./$(DEPDIR)/clone_ptrace-q.Po ./$(DEPDIR)/clone_ptrace-qq.Po \ + ./$(DEPDIR)/clone_ptrace.Po ./$(DEPDIR)/close_range-P.Po \ + ./$(DEPDIR)/close_range-y.Po ./$(DEPDIR)/close_range-yy.Po \ + ./$(DEPDIR)/close_range.Po ./$(DEPDIR)/copy_file_range.Po \ + ./$(DEPDIR)/count-f.Po ./$(DEPDIR)/creat.Po \ + ./$(DEPDIR)/delay.Po ./$(DEPDIR)/delete_module.Po \ + ./$(DEPDIR)/dev--decode-fds-dev.Po \ + ./$(DEPDIR)/dev--decode-fds-path.Po \ + ./$(DEPDIR)/dev--decode-fds-socket.Po ./$(DEPDIR)/dev-yy.Po \ + ./$(DEPDIR)/dup-P.Po ./$(DEPDIR)/dup-y.Po \ + ./$(DEPDIR)/dup-yy.Po ./$(DEPDIR)/dup.Po ./$(DEPDIR)/dup2-P.Po \ + ./$(DEPDIR)/dup2-y.Po ./$(DEPDIR)/dup2-yy.Po \ + ./$(DEPDIR)/dup2.Po ./$(DEPDIR)/dup3-P.Po \ + ./$(DEPDIR)/dup3-y.Po ./$(DEPDIR)/dup3-yy.Po \ + ./$(DEPDIR)/dup3.Po ./$(DEPDIR)/epoll_create.Po \ + ./$(DEPDIR)/epoll_create1.Po ./$(DEPDIR)/epoll_ctl.Po \ + ./$(DEPDIR)/epoll_pwait.Po ./$(DEPDIR)/epoll_wait.Po \ + ./$(DEPDIR)/erestartsys.Po ./$(DEPDIR)/eventfd.Po \ + ./$(DEPDIR)/execve-v.Po ./$(DEPDIR)/execve.Po \ + ./$(DEPDIR)/execveat-v.Po ./$(DEPDIR)/execveat.Po \ + ./$(DEPDIR)/faccessat-P.Po ./$(DEPDIR)/faccessat-y.Po \ + ./$(DEPDIR)/faccessat-yy.Po ./$(DEPDIR)/faccessat.Po \ + ./$(DEPDIR)/faccessat2-P.Po ./$(DEPDIR)/faccessat2-y.Po \ + ./$(DEPDIR)/faccessat2-yy.Po ./$(DEPDIR)/faccessat2.Po \ ./$(DEPDIR)/fadvise64.Po ./$(DEPDIR)/fadvise64_64.Po \ ./$(DEPDIR)/fallocate.Po ./$(DEPDIR)/fanotify_init.Po \ ./$(DEPDIR)/fanotify_mark-Xabbrev.Po \ @@ -2931,12 +4049,19 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/fanotify_mark.Po ./$(DEPDIR)/fchdir.Po \ ./$(DEPDIR)/fchmod.Po ./$(DEPDIR)/fchmodat.Po \ ./$(DEPDIR)/fchown.Po ./$(DEPDIR)/fchown32.Po \ - ./$(DEPDIR)/fchownat.Po ./$(DEPDIR)/fcntl.Po \ + ./$(DEPDIR)/fchownat.Po \ + ./$(DEPDIR)/fcntl--pidns-translation.Po ./$(DEPDIR)/fcntl.Po \ + ./$(DEPDIR)/fcntl64--pidns-translation.Po \ ./$(DEPDIR)/fcntl64.Po ./$(DEPDIR)/fdatasync.Po \ ./$(DEPDIR)/fflush.Po ./$(DEPDIR)/file_handle.Po \ ./$(DEPDIR)/file_ioctl.Po ./$(DEPDIR)/filter-unavailable.Po \ - ./$(DEPDIR)/finit_module.Po ./$(DEPDIR)/flock.Po \ - ./$(DEPDIR)/fork-f.Po ./$(DEPDIR)/fstat-Xabbrev.Po \ + ./$(DEPDIR)/filter_seccomp-flag.Po \ + ./$(DEPDIR)/filter_seccomp-perf.Po ./$(DEPDIR)/finit_module.Po \ + ./$(DEPDIR)/flock.Po ./$(DEPDIR)/fork--pidns-translation.Po \ + ./$(DEPDIR)/fork-f.Po ./$(DEPDIR)/fsconfig-P.Po \ + ./$(DEPDIR)/fsconfig.Po ./$(DEPDIR)/fsmount.Po \ + ./$(DEPDIR)/fsopen.Po ./$(DEPDIR)/fspick-P.Po \ + ./$(DEPDIR)/fspick.Po ./$(DEPDIR)/fstat-Xabbrev.Po \ ./$(DEPDIR)/fstat-Xraw.Po ./$(DEPDIR)/fstat-Xverbose.Po \ ./$(DEPDIR)/fstat.Po ./$(DEPDIR)/fstat64-Xabbrev.Po \ ./$(DEPDIR)/fstat64-Xraw.Po ./$(DEPDIR)/fstat64-Xverbose.Po \ @@ -2946,30 +4071,66 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/fsync.Po ./$(DEPDIR)/ftruncate.Po \ ./$(DEPDIR)/ftruncate64-ftruncate64.Po ./$(DEPDIR)/futex.Po \ ./$(DEPDIR)/futimesat.Po ./$(DEPDIR)/get_mempolicy.Po \ - ./$(DEPDIR)/getcpu.Po ./$(DEPDIR)/getcwd.Po \ - ./$(DEPDIR)/getdents.Po ./$(DEPDIR)/getdents64.Po \ - ./$(DEPDIR)/getegid.Po ./$(DEPDIR)/getegid32.Po \ - ./$(DEPDIR)/geteuid.Po ./$(DEPDIR)/geteuid32.Po \ - ./$(DEPDIR)/getgid.Po ./$(DEPDIR)/getgid32.Po \ - ./$(DEPDIR)/getgroups.Po ./$(DEPDIR)/getgroups32.Po \ - ./$(DEPDIR)/getpeername.Po ./$(DEPDIR)/getpgrp.Po \ - ./$(DEPDIR)/getpid.Po ./$(DEPDIR)/getppid.Po \ - ./$(DEPDIR)/getrandom.Po ./$(DEPDIR)/getresgid.Po \ - ./$(DEPDIR)/getresgid32.Po ./$(DEPDIR)/getresuid.Po \ - ./$(DEPDIR)/getresuid32.Po ./$(DEPDIR)/getrlimit.Po \ - ./$(DEPDIR)/getrusage.Po ./$(DEPDIR)/getsid.Po \ - ./$(DEPDIR)/getsockname.Po ./$(DEPDIR)/gettid.Po \ + ./$(DEPDIR)/get_process_reaper.Po ./$(DEPDIR)/getcpu.Po \ + ./$(DEPDIR)/getcwd.Po ./$(DEPDIR)/getdents-v.Po \ + ./$(DEPDIR)/getdents.Po ./$(DEPDIR)/getdents64-v.Po \ + ./$(DEPDIR)/getdents64.Po ./$(DEPDIR)/getegid.Po \ + ./$(DEPDIR)/getegid32.Po ./$(DEPDIR)/geteuid.Po \ + ./$(DEPDIR)/geteuid32.Po ./$(DEPDIR)/getgid.Po \ + ./$(DEPDIR)/getgid32.Po ./$(DEPDIR)/getgroups.Po \ + ./$(DEPDIR)/getgroups32.Po ./$(DEPDIR)/getpeername.Po \ + ./$(DEPDIR)/getpgrp--pidns-translation.Po \ + ./$(DEPDIR)/getpgrp.Po \ + ./$(DEPDIR)/getpid--pidns-translation.Po ./$(DEPDIR)/getpid.Po \ + ./$(DEPDIR)/getppid.Po ./$(DEPDIR)/getrandom.Po \ + ./$(DEPDIR)/getresgid.Po ./$(DEPDIR)/getresgid32.Po \ + ./$(DEPDIR)/getresuid.Po ./$(DEPDIR)/getresuid32.Po \ + ./$(DEPDIR)/getrlimit.Po ./$(DEPDIR)/getrusage.Po \ + ./$(DEPDIR)/getsid--pidns-translation.Po ./$(DEPDIR)/getsid.Po \ + ./$(DEPDIR)/getsockname.Po \ + ./$(DEPDIR)/gettid--pidns-translation.Po ./$(DEPDIR)/gettid.Po \ ./$(DEPDIR)/getuid.Po ./$(DEPDIR)/getuid32.Po \ - ./$(DEPDIR)/getxxid.Po ./$(DEPDIR)/group_req.Po \ + ./$(DEPDIR)/getxgid.Po ./$(DEPDIR)/getxpid.Po \ + ./$(DEPDIR)/getxuid.Po ./$(DEPDIR)/group_req.Po \ ./$(DEPDIR)/inet-cmsg.Po ./$(DEPDIR)/init_module.Po \ ./$(DEPDIR)/inject-nf.Po ./$(DEPDIR)/inotify.Po \ - ./$(DEPDIR)/inotify_init1.Po ./$(DEPDIR)/int_0x80.Po \ - ./$(DEPDIR)/io_uring_enter.Po ./$(DEPDIR)/io_uring_register.Po \ - ./$(DEPDIR)/io_uring_setup.Po ./$(DEPDIR)/ioctl.Po \ + ./$(DEPDIR)/inotify_init-y.Po ./$(DEPDIR)/inotify_init.Po \ + ./$(DEPDIR)/inotify_init1-y.Po ./$(DEPDIR)/inotify_init1.Po \ + ./$(DEPDIR)/int_0x80.Po ./$(DEPDIR)/io_uring_enter.Po \ + ./$(DEPDIR)/io_uring_register.Po ./$(DEPDIR)/io_uring_setup.Po \ + ./$(DEPDIR)/ioctl.Po \ + ./$(DEPDIR)/ioctl_block--pidns-translation.Po \ ./$(DEPDIR)/ioctl_block.Po ./$(DEPDIR)/ioctl_dm-v.Po \ - ./$(DEPDIR)/ioctl_dm.Po ./$(DEPDIR)/ioctl_evdev-success-v.Po \ + ./$(DEPDIR)/ioctl_dm.Po ./$(DEPDIR)/ioctl_evdev-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_evdev-Xraw.Po \ + ./$(DEPDIR)/ioctl_evdev-Xverbose.Po \ + ./$(DEPDIR)/ioctl_evdev-success-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_evdev-success-Xraw.Po \ + ./$(DEPDIR)/ioctl_evdev-success-Xverbose.Po \ + ./$(DEPDIR)/ioctl_evdev-success-v-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_evdev-success-v-Xraw.Po \ + ./$(DEPDIR)/ioctl_evdev-success-v-Xverbose.Po \ + ./$(DEPDIR)/ioctl_evdev-success-v.Po \ ./$(DEPDIR)/ioctl_evdev-success.Po \ + ./$(DEPDIR)/ioctl_evdev-v-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_evdev-v-Xraw.Po \ + ./$(DEPDIR)/ioctl_evdev-v-Xverbose.Po \ ./$(DEPDIR)/ioctl_evdev-v.Po ./$(DEPDIR)/ioctl_evdev.Po \ + ./$(DEPDIR)/ioctl_hdio-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_hdio-Xraw.Po \ + ./$(DEPDIR)/ioctl_hdio-Xverbose.Po \ + ./$(DEPDIR)/ioctl_hdio-success-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_hdio-success-Xraw.Po \ + ./$(DEPDIR)/ioctl_hdio-success-Xverbose.Po \ + ./$(DEPDIR)/ioctl_hdio-success-v-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_hdio-success-v-Xraw.Po \ + ./$(DEPDIR)/ioctl_hdio-success-v-Xverbose.Po \ + ./$(DEPDIR)/ioctl_hdio-success-v.Po \ + ./$(DEPDIR)/ioctl_hdio-success.Po \ + ./$(DEPDIR)/ioctl_hdio-v-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_hdio-v-Xraw.Po \ + ./$(DEPDIR)/ioctl_hdio-v-Xverbose.Po \ + ./$(DEPDIR)/ioctl_hdio-v.Po ./$(DEPDIR)/ioctl_hdio.Po \ ./$(DEPDIR)/ioctl_inotify.Po ./$(DEPDIR)/ioctl_kvm_run-v.Po \ ./$(DEPDIR)/ioctl_kvm_run.Po \ ./$(DEPDIR)/ioctl_kvm_run_auxstr_vcpu.Po \ @@ -2981,21 +4142,38 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/ioctl_rtc-v.Po ./$(DEPDIR)/ioctl_rtc.Po \ ./$(DEPDIR)/ioctl_scsi.Po ./$(DEPDIR)/ioctl_sg_io_v3.Po \ ./$(DEPDIR)/ioctl_sg_io_v4.Po \ - ./$(DEPDIR)/ioctl_sock_gifconf.Po ./$(DEPDIR)/ioctl_uffdio.Po \ - ./$(DEPDIR)/ioctl_v4l2.Po ./$(DEPDIR)/ioperm.Po \ - ./$(DEPDIR)/iopl.Po ./$(DEPDIR)/ioprio-Xabbrev.Po \ - ./$(DEPDIR)/ioprio-Xraw.Po ./$(DEPDIR)/ioprio-Xverbose.Po \ - ./$(DEPDIR)/ioprio.Po ./$(DEPDIR)/ip_mreq.Po \ - ./$(DEPDIR)/ipc.Po ./$(DEPDIR)/ipc_msg-Xabbrev.Po \ - ./$(DEPDIR)/ipc_msg-Xraw.Po ./$(DEPDIR)/ipc_msg-Xverbose.Po \ - ./$(DEPDIR)/ipc_msg.Po ./$(DEPDIR)/ipc_msgbuf-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_sock_gifconf.Po ./$(DEPDIR)/ioctl_tee.Po \ + ./$(DEPDIR)/ioctl_uffdio.Po ./$(DEPDIR)/ioctl_v4l2-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_v4l2-Xraw.Po \ + ./$(DEPDIR)/ioctl_v4l2-Xverbose.Po \ + ./$(DEPDIR)/ioctl_v4l2-success-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_v4l2-success-Xraw.Po \ + ./$(DEPDIR)/ioctl_v4l2-success-Xverbose.Po \ + ./$(DEPDIR)/ioctl_v4l2-success-v-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_v4l2-success-v-Xraw.Po \ + ./$(DEPDIR)/ioctl_v4l2-success-v-Xverbose.Po \ + ./$(DEPDIR)/ioctl_v4l2-success-v.Po \ + ./$(DEPDIR)/ioctl_v4l2-success.Po \ + ./$(DEPDIR)/ioctl_v4l2-v-Xabbrev.Po \ + ./$(DEPDIR)/ioctl_v4l2-v-Xraw.Po \ + ./$(DEPDIR)/ioctl_v4l2-v-Xverbose.Po \ + ./$(DEPDIR)/ioctl_v4l2-v.Po ./$(DEPDIR)/ioctl_v4l2.Po \ + ./$(DEPDIR)/ioctl_watchdog.Po ./$(DEPDIR)/ioperm.Po \ + ./$(DEPDIR)/iopl.Po ./$(DEPDIR)/ioprio--pidns-translation.Po \ + ./$(DEPDIR)/ioprio-Xabbrev.Po ./$(DEPDIR)/ioprio-Xraw.Po \ + ./$(DEPDIR)/ioprio-Xverbose.Po ./$(DEPDIR)/ioprio.Po \ + ./$(DEPDIR)/ip_mreq.Po ./$(DEPDIR)/ipc.Po \ + ./$(DEPDIR)/ipc_msg-Xabbrev.Po ./$(DEPDIR)/ipc_msg-Xraw.Po \ + ./$(DEPDIR)/ipc_msg-Xverbose.Po ./$(DEPDIR)/ipc_msg.Po \ + ./$(DEPDIR)/ipc_msgbuf-Xabbrev.Po \ ./$(DEPDIR)/ipc_msgbuf-Xraw.Po \ ./$(DEPDIR)/ipc_msgbuf-Xverbose.Po ./$(DEPDIR)/ipc_msgbuf.Po \ ./$(DEPDIR)/ipc_sem-Xabbrev.Po ./$(DEPDIR)/ipc_sem-Xraw.Po \ ./$(DEPDIR)/ipc_sem-Xverbose.Po ./$(DEPDIR)/ipc_sem.Po \ ./$(DEPDIR)/ipc_shm-Xabbrev.Po ./$(DEPDIR)/ipc_shm-Xraw.Po \ ./$(DEPDIR)/ipc_shm-Xverbose.Po ./$(DEPDIR)/ipc_shm.Po \ - ./$(DEPDIR)/is_linux_mips_n64.Po ./$(DEPDIR)/kcmp-y.Po \ + ./$(DEPDIR)/is_linux_mips_n64.Po \ + ./$(DEPDIR)/kcmp-y--pidns-translation.Po ./$(DEPDIR)/kcmp-y.Po \ ./$(DEPDIR)/kcmp.Po ./$(DEPDIR)/kern_features.Po \ ./$(DEPDIR)/kernel_version-Xabbrev.Po \ ./$(DEPDIR)/kernel_version-Xraw.Po \ @@ -3003,10 +4181,12 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/kernel_version.Po ./$(DEPDIR)/kexec_file_load.Po \ ./$(DEPDIR)/kexec_load.Po ./$(DEPDIR)/keyctl-Xabbrev.Po \ ./$(DEPDIR)/keyctl-Xraw.Po ./$(DEPDIR)/keyctl-Xverbose.Po \ - ./$(DEPDIR)/keyctl.Po ./$(DEPDIR)/kill.Po \ - ./$(DEPDIR)/kill_child.Po ./$(DEPDIR)/ksysent.Po \ - ./$(DEPDIR)/lchown.Po ./$(DEPDIR)/lchown32.Po \ + ./$(DEPDIR)/keyctl.Po ./$(DEPDIR)/kill--pidns-translation.Po \ + ./$(DEPDIR)/kill.Po ./$(DEPDIR)/kill_child.Po \ + ./$(DEPDIR)/ksysent.Po ./$(DEPDIR)/lchown.Po \ + ./$(DEPDIR)/lchown32.Po \ ./$(DEPDIR)/libtests_a-create_nl_socket.Po \ + ./$(DEPDIR)/libtests_a-create_tmpfile.Po \ ./$(DEPDIR)/libtests_a-errno2name.Po \ ./$(DEPDIR)/libtests_a-error_msg.Po \ ./$(DEPDIR)/libtests_a-fill_memory.Po \ @@ -3018,37 +4198,48 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/libtests_a-inode_of_sockfd.Po \ ./$(DEPDIR)/libtests_a-libmmsg.Po \ ./$(DEPDIR)/libtests_a-libsocketcall.Po \ + ./$(DEPDIR)/libtests_a-lock_file.Po \ ./$(DEPDIR)/libtests_a-overflowuid.Po \ + ./$(DEPDIR)/libtests_a-pidns.Po \ ./$(DEPDIR)/libtests_a-pipe_maxfd.Po \ ./$(DEPDIR)/libtests_a-print_quoted_string.Po \ ./$(DEPDIR)/libtests_a-print_time.Po \ ./$(DEPDIR)/libtests_a-printflags.Po \ - ./$(DEPDIR)/libtests_a-printxval.Po \ + ./$(DEPDIR)/libtests_a-printxval-Xabbrev.Po \ + ./$(DEPDIR)/libtests_a-printxval-Xraw.Po \ + ./$(DEPDIR)/libtests_a-printxval-Xverbose.Po \ ./$(DEPDIR)/libtests_a-signal2name.Po \ ./$(DEPDIR)/libtests_a-skip_unavailable.Po \ ./$(DEPDIR)/libtests_a-sprintrc.Po \ + ./$(DEPDIR)/libtests_a-status.Po \ ./$(DEPDIR)/libtests_a-tail_alloc.Po \ ./$(DEPDIR)/libtests_a-test_printpath.Po \ ./$(DEPDIR)/libtests_a-test_printstrn.Po \ ./$(DEPDIR)/libtests_a-test_ucopy.Po \ - ./$(DEPDIR)/libtests_a-tprintf.Po ./$(DEPDIR)/link.Po \ - ./$(DEPDIR)/linkat.Po ./$(DEPDIR)/list_sigaction_signum.Po \ - ./$(DEPDIR)/llseek.Po ./$(DEPDIR)/localtime.Po \ - ./$(DEPDIR)/lookup_dcookie.Po ./$(DEPDIR)/looping_threads.Po \ - ./$(DEPDIR)/lseek.Po ./$(DEPDIR)/lstat.Po \ - ./$(DEPDIR)/lstat64-lstat64.Po ./$(DEPDIR)/madvise.Po \ - ./$(DEPDIR)/mbind.Po ./$(DEPDIR)/membarrier.Po \ - ./$(DEPDIR)/memfd_create-Xabbrev.Po \ + ./$(DEPDIR)/libtests_a-tprintf.Po \ + ./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po \ + ./$(DEPDIR)/link.Po ./$(DEPDIR)/linkat.Po \ + ./$(DEPDIR)/list_sigaction_signum.Po ./$(DEPDIR)/llseek.Po \ + ./$(DEPDIR)/localtime.Po ./$(DEPDIR)/lookup_dcookie.Po \ + ./$(DEPDIR)/looping_threads.Po ./$(DEPDIR)/lseek.Po \ + ./$(DEPDIR)/lstat.Po ./$(DEPDIR)/lstat64-lstat64.Po \ + ./$(DEPDIR)/madvise.Po \ + ./$(DEPDIR)/maybe_switch_current_tcp--quiet-thread-execve.Po \ + ./$(DEPDIR)/maybe_switch_current_tcp.Po \ + ./$(DEPDIR)/mbind-Xabbrev.Po ./$(DEPDIR)/mbind-Xraw.Po \ + ./$(DEPDIR)/mbind-Xverbose.Po ./$(DEPDIR)/mbind.Po \ + ./$(DEPDIR)/membarrier.Po ./$(DEPDIR)/memfd_create-Xabbrev.Po \ ./$(DEPDIR)/memfd_create-Xraw.Po \ ./$(DEPDIR)/memfd_create-Xverbose.Po \ - ./$(DEPDIR)/memfd_create.Po ./$(DEPDIR)/migrate_pages.Po \ - ./$(DEPDIR)/mincore.Po ./$(DEPDIR)/mkdir.Po \ - ./$(DEPDIR)/mkdirat.Po ./$(DEPDIR)/mknod.Po \ - ./$(DEPDIR)/mknodat.Po ./$(DEPDIR)/mlock.Po \ - ./$(DEPDIR)/mlock2.Po ./$(DEPDIR)/mlockall.Po \ - ./$(DEPDIR)/mmap-Xabbrev.Po ./$(DEPDIR)/mmap-Xraw.Po \ - ./$(DEPDIR)/mmap-Xverbose.Po ./$(DEPDIR)/mmap.Po \ - ./$(DEPDIR)/mmap64-mmap64.Po \ + ./$(DEPDIR)/memfd_create.Po \ + ./$(DEPDIR)/migrate_pages--pidns-translation.Po \ + ./$(DEPDIR)/migrate_pages.Po ./$(DEPDIR)/mincore.Po \ + ./$(DEPDIR)/mkdir.Po ./$(DEPDIR)/mkdirat.Po \ + ./$(DEPDIR)/mknod.Po ./$(DEPDIR)/mknodat.Po \ + ./$(DEPDIR)/mlock.Po ./$(DEPDIR)/mlock2.Po \ + ./$(DEPDIR)/mlockall.Po ./$(DEPDIR)/mmap-Xabbrev.Po \ + ./$(DEPDIR)/mmap-Xraw.Po ./$(DEPDIR)/mmap-Xverbose.Po \ + ./$(DEPDIR)/mmap.Po ./$(DEPDIR)/mmap64-mmap64.Po \ ./$(DEPDIR)/mmap64_Xabbrev-mmap64-Xabbrev.Po \ ./$(DEPDIR)/mmap64_Xraw-mmap64-Xraw.Po \ ./$(DEPDIR)/mmap64_Xverbose-mmap64-Xverbose.Po \ @@ -3056,24 +4247,34 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/mmsg_name-v.Po ./$(DEPDIR)/mmsg_name.Po \ ./$(DEPDIR)/modify_ldt.Po ./$(DEPDIR)/mount-Xabbrev.Po \ ./$(DEPDIR)/mount-Xraw.Po ./$(DEPDIR)/mount-Xverbose.Po \ - ./$(DEPDIR)/mount.Po ./$(DEPDIR)/move_pages-Xabbrev.Po \ + ./$(DEPDIR)/mount.Po ./$(DEPDIR)/move_mount-P.Po \ + ./$(DEPDIR)/move_mount.Po \ + ./$(DEPDIR)/move_pages--pidns-translation.Po \ + ./$(DEPDIR)/move_pages-Xabbrev.Po \ ./$(DEPDIR)/move_pages-Xraw.Po \ ./$(DEPDIR)/move_pages-Xverbose.Po ./$(DEPDIR)/move_pages.Po \ ./$(DEPDIR)/mq.Po ./$(DEPDIR)/mq_sendrecv-read.Po \ ./$(DEPDIR)/mq_sendrecv-write.Po ./$(DEPDIR)/mq_sendrecv.Po \ ./$(DEPDIR)/msg_control-v.Po ./$(DEPDIR)/msg_control.Po \ ./$(DEPDIR)/msg_name.Po ./$(DEPDIR)/munlockall.Po \ - ./$(DEPDIR)/nanosleep.Po ./$(DEPDIR)/net-accept-connect.Po \ + ./$(DEPDIR)/nanosleep.Po \ + ./$(DEPDIR)/net--decode-fds-dev-netlink.Po \ + ./$(DEPDIR)/net--decode-fds-none-netlink.Po \ + ./$(DEPDIR)/net--decode-fds-path-netlink.Po \ + ./$(DEPDIR)/net--decode-fds-socket-netlink.Po \ + ./$(DEPDIR)/net-accept-connect.Po \ ./$(DEPDIR)/net-icmp_filter.Po \ ./$(DEPDIR)/net-packet_mreq-Xabbrev.Po \ ./$(DEPDIR)/net-packet_mreq-Xraw.Po \ ./$(DEPDIR)/net-packet_mreq-Xverbose.Po \ - ./$(DEPDIR)/net-packet_mreq.Po ./$(DEPDIR)/net-sockaddr.Po \ - ./$(DEPDIR)/net-tpacket_req.Po \ + ./$(DEPDIR)/net-packet_mreq.Po \ + ./$(DEPDIR)/net-sockaddr--pidns-translation.Po \ + ./$(DEPDIR)/net-sockaddr.Po ./$(DEPDIR)/net-tpacket_req.Po \ ./$(DEPDIR)/net-tpacket_stats-success.Po \ ./$(DEPDIR)/net-tpacket_stats.Po ./$(DEPDIR)/net-y-unix.Po \ ./$(DEPDIR)/net-yy-inet.Po ./$(DEPDIR)/net-yy-inet6.Po \ ./$(DEPDIR)/net-yy-netlink.Po ./$(DEPDIR)/net-yy-unix.Po \ + ./$(DEPDIR)/netlink_audit--pidns-translation.Po \ ./$(DEPDIR)/netlink_audit.Po ./$(DEPDIR)/netlink_crypto.Po \ ./$(DEPDIR)/netlink_generic.Po \ ./$(DEPDIR)/netlink_inet_diag.Po \ @@ -3104,7 +4305,9 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/nlattr_ifla_af_spec.Po \ ./$(DEPDIR)/nlattr_ifla_brport.Po \ ./$(DEPDIR)/nlattr_ifla_linkinfo.Po \ - ./$(DEPDIR)/nlattr_ifla_port.Po ./$(DEPDIR)/nlattr_ifla_xdp.Po \ + ./$(DEPDIR)/nlattr_ifla_port.Po \ + ./$(DEPDIR)/nlattr_ifla_xdp-y.Po \ + ./$(DEPDIR)/nlattr_ifla_xdp.Po \ ./$(DEPDIR)/nlattr_inet_diag_msg.Po \ ./$(DEPDIR)/nlattr_inet_diag_req_compat.Po \ ./$(DEPDIR)/nlattr_inet_diag_req_v2.Po \ @@ -3128,7 +4331,14 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/oldselect-P.Po ./$(DEPDIR)/oldselect-efault-P.Po \ ./$(DEPDIR)/oldselect-efault.Po ./$(DEPDIR)/oldselect.Po \ ./$(DEPDIR)/oldstat.Po ./$(DEPDIR)/open.Po \ - ./$(DEPDIR)/openat.Po ./$(DEPDIR)/orphaned_process_group.Po \ + ./$(DEPDIR)/open_tree-P.Po ./$(DEPDIR)/open_tree.Po \ + ./$(DEPDIR)/openat.Po ./$(DEPDIR)/openat2-Xabbrev.Po \ + ./$(DEPDIR)/openat2-Xraw.Po ./$(DEPDIR)/openat2-Xverbose.Po \ + ./$(DEPDIR)/openat2-v-y-Xabbrev.Po \ + ./$(DEPDIR)/openat2-v-y-Xraw.Po \ + ./$(DEPDIR)/openat2-v-y-Xverbose.Po ./$(DEPDIR)/openat2-v-y.Po \ + ./$(DEPDIR)/openat2-v.Po ./$(DEPDIR)/openat2-y.Po \ + ./$(DEPDIR)/openat2.Po ./$(DEPDIR)/orphaned_process_group.Po \ ./$(DEPDIR)/osf_utimes.Po ./$(DEPDIR)/pause.Po \ ./$(DEPDIR)/pc.Po ./$(DEPDIR)/perf_event_open.Po \ ./$(DEPDIR)/perf_event_open_nonverbose.Po \ @@ -3136,14 +4346,24 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/personality-Xabbrev.Po \ ./$(DEPDIR)/personality-Xraw.Po \ ./$(DEPDIR)/personality-Xverbose.Po ./$(DEPDIR)/personality.Po \ - ./$(DEPDIR)/pidfd_send_signal.Po ./$(DEPDIR)/pipe.Po \ - ./$(DEPDIR)/pipe2.Po ./$(DEPDIR)/pkey_alloc.Po \ - ./$(DEPDIR)/pkey_free.Po ./$(DEPDIR)/pkey_mprotect.Po \ - ./$(DEPDIR)/poll-P.Po ./$(DEPDIR)/poll.Po \ - ./$(DEPDIR)/ppoll-P.Po ./$(DEPDIR)/ppoll-v.Po \ - ./$(DEPDIR)/ppoll.Po ./$(DEPDIR)/prctl-arg2-intptr.Po \ - ./$(DEPDIR)/prctl-dumpable.Po ./$(DEPDIR)/prctl-name.Po \ - ./$(DEPDIR)/prctl-no-args.Po ./$(DEPDIR)/prctl-pdeathsig.Po \ + ./$(DEPDIR)/pidfd_getfd-y.Po ./$(DEPDIR)/pidfd_getfd-yy.Po \ + ./$(DEPDIR)/pidfd_getfd.Po \ + ./$(DEPDIR)/pidfd_open--decode-fd-path.Po \ + ./$(DEPDIR)/pidfd_open--decode-fd-pidfd.Po \ + ./$(DEPDIR)/pidfd_open--decode-fd-socket.Po \ + ./$(DEPDIR)/pidfd_open--pidns-translation.Po \ + ./$(DEPDIR)/pidfd_open-P.Po ./$(DEPDIR)/pidfd_open-y.Po \ + ./$(DEPDIR)/pidfd_open-yy.Po ./$(DEPDIR)/pidfd_open.Po \ + ./$(DEPDIR)/pidfd_send_signal--pidns-translation.Po \ + ./$(DEPDIR)/pidfd_send_signal.Po ./$(DEPDIR)/pidns-cache.Po \ + ./$(DEPDIR)/pipe.Po ./$(DEPDIR)/pipe2.Po \ + ./$(DEPDIR)/pkey_alloc.Po ./$(DEPDIR)/pkey_free.Po \ + ./$(DEPDIR)/pkey_mprotect.Po ./$(DEPDIR)/poll-P.Po \ + ./$(DEPDIR)/poll.Po ./$(DEPDIR)/ppoll-P.Po \ + ./$(DEPDIR)/ppoll-v.Po ./$(DEPDIR)/ppoll.Po \ + ./$(DEPDIR)/prctl-arg2-intptr.Po ./$(DEPDIR)/prctl-dumpable.Po \ + ./$(DEPDIR)/prctl-name.Po ./$(DEPDIR)/prctl-no-args.Po \ + ./$(DEPDIR)/prctl-pdeathsig.Po \ ./$(DEPDIR)/prctl-seccomp-filter-v.Po \ ./$(DEPDIR)/prctl-seccomp-strict.Po \ ./$(DEPDIR)/prctl-securebits.Po \ @@ -3152,7 +4372,7 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Po \ ./$(DEPDIR)/preadv-preadv.Po ./$(DEPDIR)/preadv2-pwritev2.Po \ ./$(DEPDIR)/preadv_pwritev-preadv-pwritev.Po \ - ./$(DEPDIR)/print_maxfd.Po \ + ./$(DEPDIR)/print_maxfd.Po ./$(DEPDIR)/print_ppid_tracerpid.Po \ ./$(DEPDIR)/printpath-umovestr-peekdata.Po \ ./$(DEPDIR)/printpath-umovestr-undumpable.Po \ ./$(DEPDIR)/printpath-umovestr.Po \ @@ -3161,8 +4381,12 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/printsignal-Xverbose.Po ./$(DEPDIR)/printstr.Po \ ./$(DEPDIR)/printstrn-umoven-peekdata.Po \ ./$(DEPDIR)/printstrn-umoven-undumpable.Po \ - ./$(DEPDIR)/printstrn-umoven.Po ./$(DEPDIR)/prlimit64.Po \ + ./$(DEPDIR)/printstrn-umoven.Po \ + ./$(DEPDIR)/prlimit64--pidns-translation.Po \ + ./$(DEPDIR)/prlimit64.Po \ + ./$(DEPDIR)/process_vm_readv--pidns-translation.Po \ ./$(DEPDIR)/process_vm_readv.Po \ + ./$(DEPDIR)/process_vm_writev--pidns-translation.Po \ ./$(DEPDIR)/process_vm_writev.Po ./$(DEPDIR)/pselect6.Po \ ./$(DEPDIR)/ptrace.Po ./$(DEPDIR)/ptrace_syscall_info.Po \ ./$(DEPDIR)/pwritev-pwritev.Po ./$(DEPDIR)/qual_fault.Po \ @@ -3180,8 +4404,10 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/readahead.Po ./$(DEPDIR)/readdir.Po \ ./$(DEPDIR)/readlink.Po ./$(DEPDIR)/readlinkat.Po \ ./$(DEPDIR)/readv.Po ./$(DEPDIR)/reboot.Po \ - ./$(DEPDIR)/recvfrom.Po ./$(DEPDIR)/recvmmsg-timeout.Po \ - ./$(DEPDIR)/recvmsg.Po ./$(DEPDIR)/redirect-fds.Po \ + ./$(DEPDIR)/recv-MSG_TRUNC.Po \ + ./$(DEPDIR)/recvfrom-MSG_TRUNC.Po ./$(DEPDIR)/recvfrom.Po \ + ./$(DEPDIR)/recvmmsg-timeout.Po ./$(DEPDIR)/recvmsg.Po \ + ./$(DEPDIR)/redirect-fds.Po \ ./$(DEPDIR)/remap_file_pages-Xabbrev.Po \ ./$(DEPDIR)/remap_file_pages-Xraw.Po \ ./$(DEPDIR)/remap_file_pages-Xverbose.Po \ @@ -3190,9 +4416,11 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/request_key.Po ./$(DEPDIR)/restart_syscall.Po \ ./$(DEPDIR)/riscv_flush_icache.Po ./$(DEPDIR)/rmdir.Po \ ./$(DEPDIR)/rt_sigaction.Po ./$(DEPDIR)/rt_sigpending.Po \ - ./$(DEPDIR)/rt_sigprocmask.Po ./$(DEPDIR)/rt_sigqueueinfo.Po \ - ./$(DEPDIR)/rt_sigreturn.Po ./$(DEPDIR)/rt_sigsuspend.Po \ - ./$(DEPDIR)/rt_sigtimedwait.Po \ + ./$(DEPDIR)/rt_sigprocmask.Po \ + ./$(DEPDIR)/rt_sigqueueinfo--pidns-translation.Po \ + ./$(DEPDIR)/rt_sigqueueinfo.Po ./$(DEPDIR)/rt_sigreturn.Po \ + ./$(DEPDIR)/rt_sigsuspend.Po ./$(DEPDIR)/rt_sigtimedwait.Po \ + ./$(DEPDIR)/rt_tgsigqueueinfo--pidns-translation.Po \ ./$(DEPDIR)/rt_tgsigqueueinfo.Po \ ./$(DEPDIR)/run_expect_termsig.Po \ ./$(DEPDIR)/s390_guarded_storage-v.Po \ @@ -3202,22 +4430,31 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/s390_sthyi.Po \ ./$(DEPDIR)/sched_get_priority_mxx.Po \ ./$(DEPDIR)/sched_rr_get_interval.Po \ - ./$(DEPDIR)/sched_xetaffinity.Po ./$(DEPDIR)/sched_xetattr.Po \ + ./$(DEPDIR)/sched_xetaffinity--pidns-translation.Po \ + ./$(DEPDIR)/sched_xetaffinity.Po \ + ./$(DEPDIR)/sched_xetattr--pidns-translation.Po \ + ./$(DEPDIR)/sched_xetattr.Po \ + ./$(DEPDIR)/sched_xetparam--pidns-translation.Po \ ./$(DEPDIR)/sched_xetparam.Po \ + ./$(DEPDIR)/sched_xetscheduler--pidns-translation.Po \ ./$(DEPDIR)/sched_xetscheduler.Po ./$(DEPDIR)/sched_yield.Po \ ./$(DEPDIR)/scm_rights.Po ./$(DEPDIR)/seccomp-filter-v.Po \ ./$(DEPDIR)/seccomp-filter.Po ./$(DEPDIR)/seccomp-strict.Po \ ./$(DEPDIR)/seccomp_get_action_avail.Po \ ./$(DEPDIR)/select-P.Po ./$(DEPDIR)/select.Po \ - ./$(DEPDIR)/semop.Po ./$(DEPDIR)/sendfile.Po \ - ./$(DEPDIR)/sendfile64.Po ./$(DEPDIR)/set_mempolicy.Po \ - ./$(DEPDIR)/set_ptracer_any.Po ./$(DEPDIR)/set_sigblock.Po \ - ./$(DEPDIR)/set_sigign.Po ./$(DEPDIR)/setdomainname.Po \ - ./$(DEPDIR)/setfsgid.Po ./$(DEPDIR)/setfsgid32.Po \ - ./$(DEPDIR)/setfsuid.Po ./$(DEPDIR)/setfsuid32.Po \ - ./$(DEPDIR)/setgid.Po ./$(DEPDIR)/setgid32.Po \ - ./$(DEPDIR)/setgroups.Po ./$(DEPDIR)/setgroups32.Po \ - ./$(DEPDIR)/sethostname.Po ./$(DEPDIR)/setns.Po \ + ./$(DEPDIR)/semop-indirect.Po ./$(DEPDIR)/semop.Po \ + ./$(DEPDIR)/semtimedop.Po ./$(DEPDIR)/sendfile.Po \ + ./$(DEPDIR)/sendfile64.Po ./$(DEPDIR)/set_mempolicy-Xabbrev.Po \ + ./$(DEPDIR)/set_mempolicy-Xraw.Po \ + ./$(DEPDIR)/set_mempolicy-Xverbose.Po \ + ./$(DEPDIR)/set_mempolicy.Po ./$(DEPDIR)/set_ptracer_any.Po \ + ./$(DEPDIR)/set_sigblock.Po ./$(DEPDIR)/set_sigign.Po \ + ./$(DEPDIR)/setdomainname.Po ./$(DEPDIR)/setfsgid.Po \ + ./$(DEPDIR)/setfsgid32.Po ./$(DEPDIR)/setfsuid.Po \ + ./$(DEPDIR)/setfsuid32.Po ./$(DEPDIR)/setgid.Po \ + ./$(DEPDIR)/setgid32.Po ./$(DEPDIR)/setgroups.Po \ + ./$(DEPDIR)/setgroups32.Po ./$(DEPDIR)/sethostname.Po \ + ./$(DEPDIR)/setns.Po ./$(DEPDIR)/setpgrp-exec.Po \ ./$(DEPDIR)/setregid.Po ./$(DEPDIR)/setregid32.Po \ ./$(DEPDIR)/setresgid.Po ./$(DEPDIR)/setresgid32.Po \ ./$(DEPDIR)/setresuid.Po ./$(DEPDIR)/setresuid32.Po \ @@ -3228,11 +4465,14 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/shmxt.Po ./$(DEPDIR)/shutdown.Po \ ./$(DEPDIR)/sigaction.Po ./$(DEPDIR)/sigaltstack.Po \ ./$(DEPDIR)/siginfo.Po ./$(DEPDIR)/signal.Po \ + ./$(DEPDIR)/signal_receive--pidns-translation.Po \ ./$(DEPDIR)/signal_receive.Po ./$(DEPDIR)/signalfd4.Po \ ./$(DEPDIR)/sigpending.Po ./$(DEPDIR)/sigprocmask.Po \ ./$(DEPDIR)/sigreturn.Po ./$(DEPDIR)/sigsuspend.Po \ ./$(DEPDIR)/sleep.Po ./$(DEPDIR)/so_error.Po \ - ./$(DEPDIR)/so_linger.Po ./$(DEPDIR)/so_peercred-Xabbrev.Po \ + ./$(DEPDIR)/so_linger.Po \ + ./$(DEPDIR)/so_peercred--pidns-translation.Po \ + ./$(DEPDIR)/so_peercred-Xabbrev.Po \ ./$(DEPDIR)/so_peercred-Xraw.Po \ ./$(DEPDIR)/so_peercred-Xverbose.Po ./$(DEPDIR)/so_peercred.Po \ ./$(DEPDIR)/sock_filter-v-Xabbrev.Po \ @@ -3246,6 +4486,7 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/sockopt-timestamp.Po ./$(DEPDIR)/splice.Po \ ./$(DEPDIR)/stack-fcall-0.Po ./$(DEPDIR)/stack-fcall-1.Po \ ./$(DEPDIR)/stack-fcall-2.Po ./$(DEPDIR)/stack-fcall-3.Po \ + ./$(DEPDIR)/stack-fcall-attach.Po \ ./$(DEPDIR)/stack-fcall-mangled-0.Po \ ./$(DEPDIR)/stack-fcall-mangled-1.Po \ ./$(DEPDIR)/stack-fcall-mangled-2.Po \ @@ -3253,22 +4494,45 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/stack-fcall-mangled.Po ./$(DEPDIR)/stack-fcall.Po \ ./$(DEPDIR)/stat.Po ./$(DEPDIR)/stat64-stat64.Po \ ./$(DEPDIR)/statfs-statfs.Po ./$(DEPDIR)/statfs64.Po \ - ./$(DEPDIR)/statx.Po ./$(DEPDIR)/swap.Po \ - ./$(DEPDIR)/sxetmask.Po ./$(DEPDIR)/symlink.Po \ - ./$(DEPDIR)/symlinkat.Po ./$(DEPDIR)/sync.Po \ - ./$(DEPDIR)/sync_file_range.Po ./$(DEPDIR)/sync_file_range2.Po \ - ./$(DEPDIR)/sysinfo.Po ./$(DEPDIR)/syslog.Po \ - ./$(DEPDIR)/tee.Po ./$(DEPDIR)/threads-execve.Po \ - ./$(DEPDIR)/time.Po ./$(DEPDIR)/timer_create.Po \ - ./$(DEPDIR)/timer_xettime.Po ./$(DEPDIR)/timerfd_xettime.Po \ - ./$(DEPDIR)/times-fail.Po ./$(DEPDIR)/times.Po \ - ./$(DEPDIR)/truncate.Po ./$(DEPDIR)/truncate64-truncate64.Po \ - ./$(DEPDIR)/ugetrlimit.Po ./$(DEPDIR)/uio-uio.Po \ - ./$(DEPDIR)/umask.Po ./$(DEPDIR)/umount.Po \ - ./$(DEPDIR)/umount2.Po ./$(DEPDIR)/umoven-illptr.Po \ - ./$(DEPDIR)/umovestr-illptr.Po ./$(DEPDIR)/umovestr.Po \ - ./$(DEPDIR)/umovestr2.Po ./$(DEPDIR)/umovestr3.Po \ - ./$(DEPDIR)/uname.Po ./$(DEPDIR)/unblock_reset_raise.Po \ + ./$(DEPDIR)/status-all.Po ./$(DEPDIR)/status-failed-long.Po \ + ./$(DEPDIR)/status-failed-status.Po \ + ./$(DEPDIR)/status-failed.Po ./$(DEPDIR)/status-none-f.Po \ + ./$(DEPDIR)/status-none-threads.Po ./$(DEPDIR)/status-none.Po \ + ./$(DEPDIR)/status-successful-long.Po \ + ./$(DEPDIR)/status-successful-status.Po \ + ./$(DEPDIR)/status-successful.Po \ + ./$(DEPDIR)/status-unfinished-threads.Po \ + ./$(DEPDIR)/status-unfinished.Po ./$(DEPDIR)/statx.Po \ + ./$(DEPDIR)/strace--strings-in-hex-all.Po \ + ./$(DEPDIR)/strace--strings-in-hex-non-ascii.Po \ + ./$(DEPDIR)/strace--strings-in-hex.Po ./$(DEPDIR)/strace-n.Po \ + ./$(DEPDIR)/strace-x.Po ./$(DEPDIR)/strace-xx.Po \ + ./$(DEPDIR)/swap.Po ./$(DEPDIR)/sxetmask.Po \ + ./$(DEPDIR)/symlink.Po ./$(DEPDIR)/symlinkat.Po \ + ./$(DEPDIR)/sync.Po ./$(DEPDIR)/sync_file_range.Po \ + ./$(DEPDIR)/sync_file_range2.Po ./$(DEPDIR)/sysinfo.Po \ + ./$(DEPDIR)/syslog-success.Po ./$(DEPDIR)/syslog.Po \ + ./$(DEPDIR)/tee.Po ./$(DEPDIR)/tgkill--pidns-translation.Po \ + ./$(DEPDIR)/tgkill.Po \ + ./$(DEPDIR)/threads-execve--quiet-thread-execve.Po \ + ./$(DEPDIR)/threads-execve-q.Po \ + ./$(DEPDIR)/threads-execve-qq.Po \ + ./$(DEPDIR)/threads-execve-qqq.Po \ + ./$(DEPDIR)/threads-execve.Po ./$(DEPDIR)/time.Po \ + ./$(DEPDIR)/timer_create.Po ./$(DEPDIR)/timer_xettime.Po \ + ./$(DEPDIR)/timerfd_xettime.Po ./$(DEPDIR)/times-fail.Po \ + ./$(DEPDIR)/times.Po ./$(DEPDIR)/tkill--pidns-translation.Po \ + ./$(DEPDIR)/tkill.Po ./$(DEPDIR)/tracer_ppid_pgid_sid.Po \ + ./$(DEPDIR)/trie_test-trie_for_tests.Po \ + ./$(DEPDIR)/trie_test-trie_test.Po ./$(DEPDIR)/truncate.Po \ + ./$(DEPDIR)/truncate64-truncate64.Po ./$(DEPDIR)/ugetrlimit.Po \ + ./$(DEPDIR)/uio-uio.Po ./$(DEPDIR)/umask.Po \ + ./$(DEPDIR)/umount.Po ./$(DEPDIR)/umount2.Po \ + ./$(DEPDIR)/umoven-illptr.Po ./$(DEPDIR)/umovestr-illptr.Po \ + ./$(DEPDIR)/umovestr.Po ./$(DEPDIR)/umovestr2.Po \ + ./$(DEPDIR)/umovestr3.Po ./$(DEPDIR)/umovestr_cached.Po \ + ./$(DEPDIR)/umovestr_cached_adjacent.Po ./$(DEPDIR)/uname.Po \ + ./$(DEPDIR)/unblock_reset_raise.Po \ ./$(DEPDIR)/unix-pair-send-recv.Po \ ./$(DEPDIR)/unix-pair-sendto-recvfrom.Po ./$(DEPDIR)/unlink.Po \ ./$(DEPDIR)/unlinkat.Po ./$(DEPDIR)/unshare.Po \ @@ -3281,10 +4545,15 @@ am__depfiles_remade = ./$(DEPDIR)/_newselect-P.Po \ ./$(DEPDIR)/wait4-v.Po ./$(DEPDIR)/wait4.Po \ ./$(DEPDIR)/waitid-v.Po ./$(DEPDIR)/waitid.Po \ ./$(DEPDIR)/waitpid.Po ./$(DEPDIR)/xattr-strings.Po \ - ./$(DEPDIR)/xattr.Po ./$(DEPDIR)/xet_robust_list.Po \ + ./$(DEPDIR)/xattr.Po \ + ./$(DEPDIR)/xet_robust_list--pidns-translation.Po \ + ./$(DEPDIR)/xet_robust_list.Po \ ./$(DEPDIR)/xet_thread_area_x86.Po ./$(DEPDIR)/xetitimer.Po \ - ./$(DEPDIR)/xetpgid.Po ./$(DEPDIR)/xetpriority.Po \ - ./$(DEPDIR)/xettimeofday.Po ./$(DEPDIR)/zeroargc.Po + ./$(DEPDIR)/xetpgid--pidns-translation.Po \ + ./$(DEPDIR)/xetpgid.Po \ + ./$(DEPDIR)/xetpriority--pidns-translation.Po \ + ./$(DEPDIR)/xetpriority.Po ./$(DEPDIR)/xettimeofday.Po \ + ./$(DEPDIR)/zeroargc.Po am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -3306,79 +4575,128 @@ SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c accept.c \ accept4.c access.c acct.c add_key.c adjtimex.c aio.c \ aio_pgetevents.c alarm.c answer.c attach-f-p.c \ attach-f-p-cmd.c attach-p-cmd-cmd.c attach-p-cmd-p.c \ - block_reset_raise_run.c bpf.c bpf-obj_get_info_by_fd.c \ - bpf-obj_get_info_by_fd-prog.c bpf-obj_get_info_by_fd-prog-v.c \ - bpf-obj_get_info_by_fd-v.c bpf-success.c bpf-success-v.c \ - bpf-v.c brk.c btrfs.c caps.c caps-abbrev.c check_sigblock.c \ + block_reset_raise_run.c block_reset_run.c bpf.c \ + bpf-obj_get_info_by_fd.c bpf-obj_get_info_by_fd-prog.c \ + bpf-obj_get_info_by_fd-prog-v.c bpf-obj_get_info_by_fd-v.c \ + bpf-success.c bpf-success-long-y.c bpf-success-v.c bpf-v.c \ + brk.c btrfs.c caps.c caps-abbrev.c check_sigblock.c \ check_sigign.c chmod.c chown.c chown32.c chroot.c \ clock_adjtime.c clock_nanosleep.c clock_xettime.c \ - clone_parent.c clone_ptrace.c copy_file_range.c count-f.c \ - creat.c delay.c delete_module.c dev-yy.c dup.c dup2.c dup3.c \ - epoll_create.c epoll_create1.c epoll_ctl.c epoll_pwait.c \ - epoll_wait.c erestartsys.c eventfd.c execve.c execve-v.c \ - execveat.c execveat-v.c faccessat.c fadvise64.c fadvise64_64.c \ + clone-flags.c clone3.c clone3-Xabbrev.c clone3-Xraw.c \ + clone3-Xverbose.c clone3-success.c clone3-success-Xabbrev.c \ + clone3-success-Xraw.c clone3-success-Xverbose.c clone_parent.c \ + clone_parent--quiet-exit.c clone_parent-q.c clone_parent-qq.c \ + clone_ptrace.c clone_ptrace--quiet-attach.c \ + clone_ptrace--quiet-exit.c clone_ptrace-q.c clone_ptrace-qq.c \ + close_range.c close_range-P.c close_range-y.c close_range-yy.c \ + copy_file_range.c count-f.c creat.c delay.c delete_module.c \ + dev--decode-fds-dev.c dev--decode-fds-path.c \ + dev--decode-fds-socket.c dev-yy.c dup.c dup-P.c dup-y.c \ + dup-yy.c dup2.c dup2-P.c dup2-y.c dup2-yy.c dup3.c dup3-P.c \ + dup3-y.c dup3-yy.c epoll_create.c epoll_create1.c epoll_ctl.c \ + epoll_pwait.c epoll_wait.c erestartsys.c eventfd.c execve.c \ + execve-v.c execveat.c execveat-v.c faccessat.c faccessat-P.c \ + faccessat-y.c faccessat-yy.c faccessat2.c faccessat2-P.c \ + faccessat2-y.c faccessat2-yy.c fadvise64.c fadvise64_64.c \ fallocate.c fanotify_init.c fanotify_mark.c \ fanotify_mark-Xabbrev.c fanotify_mark-Xraw.c \ fanotify_mark-Xverbose.c fchdir.c fchmod.c fchmodat.c fchown.c \ - fchown32.c fchownat.c fcntl.c fcntl64.c fdatasync.c fflush.c \ - file_handle.c file_ioctl.c filter-unavailable.c finit_module.c \ - flock.c fork-f.c fstat.c fstat-Xabbrev.c fstat-Xraw.c \ - fstat-Xverbose.c fstat64.c fstat64-Xabbrev.c fstat64-Xraw.c \ - fstat64-Xverbose.c fstatat64.c fstatfs.c fstatfs64.c fsync.c \ - fsync-y.c ftruncate.c ftruncate64.c futex.c futimesat.c \ - get_mempolicy.c getcpu.c getcwd.c getdents.c getdents64.c \ - getegid.c getegid32.c geteuid.c geteuid32.c getgid.c \ - getgid32.c getgroups.c getgroups32.c getpeername.c getpgrp.c \ - getpid.c getppid.c getrandom.c getresgid.c getresgid32.c \ - getresuid.c getresuid32.c getrlimit.c getrusage.c getsid.c \ - getsockname.c gettid.c getuid.c getuid32.c getxxid.c \ - group_req.c inet-cmsg.c init_module.c inject-nf.c inotify.c \ - inotify_init1.c int_0x80.c io_uring_enter.c \ - io_uring_register.c io_uring_setup.c ioctl.c ioctl_block.c \ - ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-success.c \ - ioctl_evdev-success-v.c ioctl_evdev-v.c ioctl_inotify.c \ - ioctl_kvm_run.c ioctl_kvm_run-v.c ioctl_kvm_run_auxstr_vcpu.c \ - ioctl_loop.c ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c \ - ioctl_nbd.c ioctl_nsfs.c ioctl_perf.c ioctl_perf-success.c \ - ioctl_ptp.c ioctl_random.c ioctl_rtc.c ioctl_rtc-v.c \ - ioctl_scsi.c ioctl_sg_io_v3.c ioctl_sg_io_v4.c \ - ioctl_sock_gifconf.c ioctl_uffdio.c ioctl_v4l2.c ioperm.c \ - iopl.c ioprio.c ioprio-Xabbrev.c ioprio-Xraw.c \ - ioprio-Xverbose.c ip_mreq.c ipc.c ipc_msg.c ipc_msg-Xabbrev.c \ - ipc_msg-Xraw.c ipc_msg-Xverbose.c ipc_msgbuf.c \ - ipc_msgbuf-Xabbrev.c ipc_msgbuf-Xraw.c ipc_msgbuf-Xverbose.c \ - ipc_sem.c ipc_sem-Xabbrev.c ipc_sem-Xraw.c ipc_sem-Xverbose.c \ - ipc_shm.c ipc_shm-Xabbrev.c ipc_shm-Xraw.c ipc_shm-Xverbose.c \ - is_linux_mips_n64.c kcmp.c kcmp-y.c kern_features.c \ + fchown32.c fchownat.c fcntl.c fcntl--pidns-translation.c \ + fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \ + file_handle.c file_ioctl.c filter-unavailable.c \ + filter_seccomp-flag.c filter_seccomp-perf.c finit_module.c \ + flock.c fork--pidns-translation.c fork-f.c fsconfig.c \ + fsconfig-P.c fsmount.c fsopen.c fspick.c fspick-P.c fstat.c \ + fstat-Xabbrev.c fstat-Xraw.c fstat-Xverbose.c fstat64.c \ + fstat64-Xabbrev.c fstat64-Xraw.c fstat64-Xverbose.c \ + fstatat64.c fstatfs.c fstatfs64.c fsync.c fsync-y.c \ + ftruncate.c ftruncate64.c futex.c futimesat.c get_mempolicy.c \ + get_process_reaper.c getcpu.c getcwd.c getdents.c getdents-v.c \ + getdents64.c getdents64-v.c getegid.c getegid32.c geteuid.c \ + geteuid32.c getgid.c getgid32.c getgroups.c getgroups32.c \ + getpeername.c getpgrp.c getpgrp--pidns-translation.c getpid.c \ + getpid--pidns-translation.c getppid.c getrandom.c getresgid.c \ + getresgid32.c getresuid.c getresuid32.c getrlimit.c \ + getrusage.c getsid.c getsid--pidns-translation.c getsockname.c \ + gettid.c gettid--pidns-translation.c getuid.c getuid32.c \ + getxgid.c getxpid.c getxuid.c group_req.c inet-cmsg.c \ + init_module.c inject-nf.c inotify.c inotify_init.c \ + inotify_init-y.c inotify_init1.c inotify_init1-y.c int_0x80.c \ + io_uring_enter.c io_uring_register.c io_uring_setup.c ioctl.c \ + ioctl_block.c ioctl_block--pidns-translation.c ioctl_dm.c \ + ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-Xabbrev.c \ + ioctl_evdev-Xraw.c ioctl_evdev-Xverbose.c \ + ioctl_evdev-success.c ioctl_evdev-success-Xabbrev.c \ + ioctl_evdev-success-Xraw.c ioctl_evdev-success-Xverbose.c \ + ioctl_evdev-success-v.c ioctl_evdev-success-v-Xabbrev.c \ + ioctl_evdev-success-v-Xraw.c ioctl_evdev-success-v-Xverbose.c \ + ioctl_evdev-v.c ioctl_evdev-v-Xabbrev.c ioctl_evdev-v-Xraw.c \ + ioctl_evdev-v-Xverbose.c ioctl_hdio.c ioctl_hdio-Xabbrev.c \ + ioctl_hdio-Xraw.c ioctl_hdio-Xverbose.c ioctl_hdio-success.c \ + ioctl_hdio-success-Xabbrev.c ioctl_hdio-success-Xraw.c \ + ioctl_hdio-success-Xverbose.c ioctl_hdio-success-v.c \ + ioctl_hdio-success-v-Xabbrev.c ioctl_hdio-success-v-Xraw.c \ + ioctl_hdio-success-v-Xverbose.c ioctl_hdio-v.c \ + ioctl_hdio-v-Xabbrev.c ioctl_hdio-v-Xraw.c \ + ioctl_hdio-v-Xverbose.c ioctl_inotify.c ioctl_kvm_run.c \ + ioctl_kvm_run-v.c ioctl_kvm_run_auxstr_vcpu.c ioctl_loop.c \ + ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c ioctl_nbd.c \ + ioctl_nsfs.c ioctl_perf.c ioctl_perf-success.c ioctl_ptp.c \ + ioctl_random.c ioctl_rtc.c ioctl_rtc-v.c ioctl_scsi.c \ + ioctl_sg_io_v3.c ioctl_sg_io_v4.c ioctl_sock_gifconf.c \ + ioctl_tee.c ioctl_uffdio.c ioctl_v4l2.c ioctl_v4l2-Xabbrev.c \ + ioctl_v4l2-Xraw.c ioctl_v4l2-Xverbose.c ioctl_v4l2-success.c \ + ioctl_v4l2-success-Xabbrev.c ioctl_v4l2-success-Xraw.c \ + ioctl_v4l2-success-Xverbose.c ioctl_v4l2-success-v.c \ + ioctl_v4l2-success-v-Xabbrev.c ioctl_v4l2-success-v-Xraw.c \ + ioctl_v4l2-success-v-Xverbose.c ioctl_v4l2-v.c \ + ioctl_v4l2-v-Xabbrev.c ioctl_v4l2-v-Xraw.c \ + ioctl_v4l2-v-Xverbose.c ioctl_watchdog.c ioperm.c iopl.c \ + ioprio.c ioprio--pidns-translation.c ioprio-Xabbrev.c \ + ioprio-Xraw.c ioprio-Xverbose.c ip_mreq.c ipc.c ipc_msg.c \ + ipc_msg-Xabbrev.c ipc_msg-Xraw.c ipc_msg-Xverbose.c \ + ipc_msgbuf.c ipc_msgbuf-Xabbrev.c ipc_msgbuf-Xraw.c \ + ipc_msgbuf-Xverbose.c ipc_sem.c ipc_sem-Xabbrev.c \ + ipc_sem-Xraw.c ipc_sem-Xverbose.c ipc_shm.c ipc_shm-Xabbrev.c \ + ipc_shm-Xraw.c ipc_shm-Xverbose.c is_linux_mips_n64.c kcmp.c \ + kcmp-y.c kcmp-y--pidns-translation.c kern_features.c \ kernel_version.c kernel_version-Xabbrev.c \ kernel_version-Xraw.c kernel_version-Xverbose.c \ kexec_file_load.c kexec_load.c keyctl.c keyctl-Xabbrev.c \ - keyctl-Xraw.c keyctl-Xverbose.c kill.c kill_child.c ksysent.c \ - lchown.c lchown32.c link.c linkat.c list_sigaction_signum.c \ - llseek.c localtime.c lookup_dcookie.c looping_threads.c \ - lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \ + keyctl-Xraw.c keyctl-Xverbose.c kill.c \ + kill--pidns-translation.c kill_child.c ksysent.c lchown.c \ + lchown32.c link.c linkat.c list_sigaction_signum.c llseek.c \ + localtime.c lookup_dcookie.c looping_threads.c lseek.c lstat.c \ + lstat64.c madvise.c maybe_switch_current_tcp.c \ + maybe_switch_current_tcp--quiet-thread-execve.c mbind.c \ + mbind-Xabbrev.c mbind-Xraw.c mbind-Xverbose.c membarrier.c \ memfd_create.c memfd_create-Xabbrev.c memfd_create-Xraw.c \ - memfd_create-Xverbose.c migrate_pages.c mincore.c mkdir.c \ - mkdirat.c mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c \ + memfd_create-Xverbose.c migrate_pages.c \ + migrate_pages--pidns-translation.c mincore.c mkdir.c mkdirat.c \ + mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c \ mmap-Xabbrev.c mmap-Xraw.c mmap-Xverbose.c mmap64.c \ mmap64-Xabbrev.c mmap64-Xraw.c mmap64-Xverbose.c mmsg.c \ mmsg-silent.c mmsg_name.c mmsg_name-v.c modify_ldt.c mount.c \ - mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c move_pages.c \ + mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c move_mount.c \ + move_mount-P.c move_pages.c move_pages--pidns-translation.c \ move_pages-Xabbrev.c move_pages-Xraw.c move_pages-Xverbose.c \ mq.c mq_sendrecv.c mq_sendrecv-read.c mq_sendrecv-write.c \ msg_control.c msg_control-v.c msg_name.c munlockall.c \ - nanosleep.c net-accept-connect.c net-icmp_filter.c \ - net-packet_mreq.c net-packet_mreq-Xabbrev.c \ + nanosleep.c net--decode-fds-dev-netlink.c \ + net--decode-fds-none-netlink.c net--decode-fds-path-netlink.c \ + net--decode-fds-socket-netlink.c net-accept-connect.c \ + net-icmp_filter.c net-packet_mreq.c net-packet_mreq-Xabbrev.c \ net-packet_mreq-Xraw.c net-packet_mreq-Xverbose.c \ - net-sockaddr.c net-tpacket_req.c net-tpacket_stats.c \ + net-sockaddr.c net-sockaddr--pidns-translation.c \ + net-tpacket_req.c net-tpacket_stats.c \ net-tpacket_stats-success.c net-y-unix.c net-yy-inet.c \ net-yy-inet6.c net-yy-netlink.c net-yy-unix.c netlink_audit.c \ - netlink_crypto.c netlink_generic.c netlink_inet_diag.c \ - netlink_kobject_uevent.c netlink_netfilter.c \ - netlink_netlink_diag.c netlink_protocol.c netlink_route.c \ - netlink_selinux.c netlink_sock_diag.c netlink_unix_diag.c \ - netlink_xfrm.c newfstatat.c nfnetlink_acct.c \ - nfnetlink_cthelper.c nfnetlink_ctnetlink.c \ + netlink_audit--pidns-translation.c netlink_crypto.c \ + netlink_generic.c netlink_inet_diag.c netlink_kobject_uevent.c \ + netlink_netfilter.c netlink_netlink_diag.c netlink_protocol.c \ + netlink_route.c netlink_selinux.c netlink_sock_diag.c \ + netlink_unix_diag.c netlink_xfrm.c newfstatat.c \ + nfnetlink_acct.c nfnetlink_cthelper.c nfnetlink_ctnetlink.c \ nfnetlink_ctnetlink_exp.c nfnetlink_cttimeout.c \ nfnetlink_ipset.c nfnetlink_nft_compat.c nfnetlink_nftables.c \ nfnetlink_osf.c nfnetlink_queue.c nfnetlink_ulog.c nlattr.c \ @@ -3386,166 +4704,249 @@ SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c accept.c \ nlattr_fib_rule_hdr.c nlattr_ifaddrlblmsg.c nlattr_ifaddrmsg.c \ nlattr_ifinfomsg.c nlattr_ifla_af_spec.c nlattr_ifla_brport.c \ nlattr_ifla_linkinfo.c nlattr_ifla_port.c nlattr_ifla_xdp.c \ - nlattr_inet_diag_msg.c nlattr_inet_diag_req_compat.c \ - nlattr_inet_diag_req_v2.c nlattr_mdba_mdb_entry.c \ - nlattr_mdba_router_port.c nlattr_ndmsg.c nlattr_ndtmsg.c \ - nlattr_netconfmsg.c nlattr_netlink_diag_msg.c \ - nlattr_nlmsgerr.c nlattr_packet_diag_msg.c nlattr_rtgenmsg.c \ - nlattr_rtmsg.c nlattr_smc_diag_msg.c nlattr_tc_stats.c \ - nlattr_tca_stab.c nlattr_tcamsg.c nlattr_tcmsg.c \ - nlattr_unix_diag_msg.c nsyscalls.c nsyscalls-d.c old_mmap.c \ - old_mmap-P.c old_mmap-Xabbrev.c old_mmap-Xraw.c \ - old_mmap-Xverbose.c old_mmap-v-none.c oldfstat.c oldlstat.c \ - oldselect.c oldselect-P.c oldselect-efault.c \ - oldselect-efault-P.c oldstat.c open.c openat.c \ + nlattr_ifla_xdp-y.c nlattr_inet_diag_msg.c \ + nlattr_inet_diag_req_compat.c nlattr_inet_diag_req_v2.c \ + nlattr_mdba_mdb_entry.c nlattr_mdba_router_port.c \ + nlattr_ndmsg.c nlattr_ndtmsg.c nlattr_netconfmsg.c \ + nlattr_netlink_diag_msg.c nlattr_nlmsgerr.c \ + nlattr_packet_diag_msg.c nlattr_rtgenmsg.c nlattr_rtmsg.c \ + nlattr_smc_diag_msg.c nlattr_tc_stats.c nlattr_tca_stab.c \ + nlattr_tcamsg.c nlattr_tcmsg.c nlattr_unix_diag_msg.c \ + nsyscalls.c nsyscalls-d.c old_mmap.c old_mmap-P.c \ + old_mmap-Xabbrev.c old_mmap-Xraw.c old_mmap-Xverbose.c \ + old_mmap-v-none.c oldfstat.c oldlstat.c oldselect.c \ + oldselect-P.c oldselect-efault.c oldselect-efault-P.c \ + oldstat.c open.c open_tree.c open_tree-P.c openat.c openat2.c \ + openat2-Xabbrev.c openat2-Xraw.c openat2-Xverbose.c \ + openat2-v.c openat2-v-y.c openat2-v-y-Xabbrev.c \ + openat2-v-y-Xraw.c openat2-v-y-Xverbose.c openat2-y.c \ orphaned_process_group.c osf_utimes.c pause.c pc.c \ perf_event_open.c perf_event_open_nonverbose.c \ perf_event_open_unabbrev.c personality.c personality-Xabbrev.c \ - personality-Xraw.c personality-Xverbose.c pidfd_send_signal.c \ - pipe.c pipe2.c pkey_alloc.c pkey_free.c pkey_mprotect.c poll.c \ - poll-P.c ppoll.c ppoll-P.c ppoll-v.c prctl-arg2-intptr.c \ - prctl-dumpable.c prctl-name.c prctl-no-args.c \ - prctl-pdeathsig.c prctl-seccomp-filter-v.c \ + personality-Xraw.c personality-Xverbose.c pidfd_getfd.c \ + pidfd_getfd-y.c pidfd_getfd-yy.c pidfd_open.c \ + pidfd_open--decode-fd-path.c pidfd_open--decode-fd-pidfd.c \ + pidfd_open--decode-fd-socket.c pidfd_open--pidns-translation.c \ + pidfd_open-P.c pidfd_open-y.c pidfd_open-yy.c \ + pidfd_send_signal.c pidfd_send_signal--pidns-translation.c \ + pidns-cache.c pipe.c pipe2.c pkey_alloc.c pkey_free.c \ + pkey_mprotect.c poll.c poll-P.c ppoll.c ppoll-P.c ppoll-v.c \ + prctl-arg2-intptr.c prctl-dumpable.c prctl-name.c \ + prctl-no-args.c prctl-pdeathsig.c prctl-seccomp-filter-v.c \ prctl-seccomp-strict.c prctl-securebits.c prctl-spec-inject.c \ prctl-tid_address.c prctl-tsc.c pread64-pwrite64.c preadv.c \ preadv-pwritev.c preadv2-pwritev2.c print_maxfd.c \ - printpath-umovestr.c printpath-umovestr-peekdata.c \ - printpath-umovestr-undumpable.c printsignal-Xabbrev.c \ - printsignal-Xraw.c printsignal-Xverbose.c printstr.c \ - printstrn-umoven.c printstrn-umoven-peekdata.c \ - printstrn-umoven-undumpable.c prlimit64.c process_vm_readv.c \ - process_vm_writev.c pselect6.c ptrace.c ptrace_syscall_info.c \ - pwritev.c qual_fault.c qual_inject-error-signal.c \ - qual_inject-retval.c qual_inject-signal.c qual_signal.c \ - quotactl.c quotactl-Xabbrev.c quotactl-Xraw.c \ - quotactl-Xverbose.c quotactl-success.c quotactl-success-v.c \ - quotactl-v.c quotactl-xfs.c quotactl-xfs-success.c \ - quotactl-xfs-success-v.c quotactl-xfs-v.c read-write.c \ - readahead.c readdir.c readlink.c readlinkat.c readv.c reboot.c \ - recvfrom.c recvmmsg-timeout.c recvmsg.c redirect-fds.c \ - remap_file_pages.c remap_file_pages-Xabbrev.c \ + print_ppid_tracerpid.c printpath-umovestr.c \ + printpath-umovestr-peekdata.c printpath-umovestr-undumpable.c \ + printsignal-Xabbrev.c printsignal-Xraw.c \ + printsignal-Xverbose.c printstr.c printstrn-umoven.c \ + printstrn-umoven-peekdata.c printstrn-umoven-undumpable.c \ + prlimit64.c prlimit64--pidns-translation.c process_vm_readv.c \ + process_vm_readv--pidns-translation.c process_vm_writev.c \ + process_vm_writev--pidns-translation.c pselect6.c ptrace.c \ + ptrace_syscall_info.c pwritev.c qual_fault.c \ + qual_inject-error-signal.c qual_inject-retval.c \ + qual_inject-signal.c qual_signal.c quotactl.c \ + quotactl-Xabbrev.c quotactl-Xraw.c quotactl-Xverbose.c \ + quotactl-success.c quotactl-success-v.c quotactl-v.c \ + quotactl-xfs.c quotactl-xfs-success.c quotactl-xfs-success-v.c \ + quotactl-xfs-v.c read-write.c readahead.c readdir.c readlink.c \ + readlinkat.c readv.c reboot.c recv-MSG_TRUNC.c recvfrom.c \ + recvfrom-MSG_TRUNC.c recvmmsg-timeout.c recvmsg.c \ + redirect-fds.c remap_file_pages.c remap_file_pages-Xabbrev.c \ remap_file_pages-Xraw.c remap_file_pages-Xverbose.c rename.c \ renameat.c renameat2.c request_key.c restart_syscall.c \ riscv_flush_icache.c rmdir.c rt_sigaction.c rt_sigpending.c \ - rt_sigprocmask.c rt_sigqueueinfo.c rt_sigreturn.c \ + rt_sigprocmask.c rt_sigqueueinfo.c \ + rt_sigqueueinfo--pidns-translation.c rt_sigreturn.c \ rt_sigsuspend.c rt_sigtimedwait.c rt_tgsigqueueinfo.c \ - run_expect_termsig.c s390_guarded_storage.c \ - s390_guarded_storage-v.c s390_pci_mmio_read_write.c \ - s390_runtime_instr.c s390_sthyi.c s390_sthyi-v.c \ - sched_get_priority_mxx.c sched_rr_get_interval.c \ - sched_xetaffinity.c sched_xetattr.c sched_xetparam.c \ - sched_xetscheduler.c sched_yield.c scm_rights.c \ - seccomp-filter.c seccomp-filter-v.c seccomp-strict.c \ - seccomp_get_action_avail.c select.c select-P.c semop.c \ - sendfile.c sendfile64.c set_mempolicy.c set_ptracer_any.c \ - set_sigblock.c set_sigign.c setdomainname.c setfsgid.c \ - setfsgid32.c setfsuid.c setfsuid32.c setgid.c setgid32.c \ - setgroups.c setgroups32.c sethostname.c setns.c setregid.c \ - setregid32.c setresgid.c setresgid32.c setresuid.c \ - setresuid32.c setreuid.c setreuid32.c setrlimit.c \ - setrlimit-Xabbrev.c setrlimit-Xraw.c setrlimit-Xverbose.c \ - setuid.c setuid32.c shmxt.c shutdown.c sigaction.c \ - sigaltstack.c siginfo.c signal.c signal_receive.c signalfd4.c \ - sigpending.c sigprocmask.c sigreturn.c sigsuspend.c sleep.c \ - so_error.c so_linger.c so_peercred.c so_peercred-Xabbrev.c \ - so_peercred-Xraw.c so_peercred-Xverbose.c sock_filter-v.c \ - sock_filter-v-Xabbrev.c sock_filter-v-Xraw.c \ - sock_filter-v-Xverbose.c sockaddr_xlat-Xabbrev.c \ - sockaddr_xlat-Xraw.c sockaddr_xlat-Xverbose.c socketcall.c \ - sockopt-sol_netlink.c sockopt-timestamp.c splice.c \ - $(stack_fcall_SOURCES) $(stack_fcall_mangled_SOURCES) stat.c \ - stat64.c statfs.c statfs64.c statx.c swap.c sxetmask.c \ - symlink.c symlinkat.c sync.c sync_file_range.c \ - sync_file_range2.c sysinfo.c syslog.c tee.c threads-execve.c \ + rt_tgsigqueueinfo--pidns-translation.c run_expect_termsig.c \ + s390_guarded_storage.c s390_guarded_storage-v.c \ + s390_pci_mmio_read_write.c s390_runtime_instr.c s390_sthyi.c \ + s390_sthyi-v.c sched_get_priority_mxx.c \ + sched_rr_get_interval.c sched_xetaffinity.c \ + sched_xetaffinity--pidns-translation.c sched_xetattr.c \ + sched_xetattr--pidns-translation.c sched_xetparam.c \ + sched_xetparam--pidns-translation.c sched_xetscheduler.c \ + sched_xetscheduler--pidns-translation.c sched_yield.c \ + scm_rights.c seccomp-filter.c seccomp-filter-v.c \ + seccomp-strict.c seccomp_get_action_avail.c select.c \ + select-P.c semop.c semop-indirect.c semtimedop.c sendfile.c \ + sendfile64.c set_mempolicy.c set_mempolicy-Xabbrev.c \ + set_mempolicy-Xraw.c set_mempolicy-Xverbose.c \ + set_ptracer_any.c set_sigblock.c set_sigign.c setdomainname.c \ + setfsgid.c setfsgid32.c setfsuid.c setfsuid32.c setgid.c \ + setgid32.c setgroups.c setgroups32.c sethostname.c setns.c \ + setpgrp-exec.c setregid.c setregid32.c setresgid.c \ + setresgid32.c setresuid.c setresuid32.c setreuid.c \ + setreuid32.c setrlimit.c setrlimit-Xabbrev.c setrlimit-Xraw.c \ + setrlimit-Xverbose.c setuid.c setuid32.c shmxt.c shutdown.c \ + sigaction.c sigaltstack.c siginfo.c signal.c signal_receive.c \ + signal_receive--pidns-translation.c signalfd4.c sigpending.c \ + sigprocmask.c sigreturn.c sigsuspend.c sleep.c so_error.c \ + so_linger.c so_peercred.c so_peercred--pidns-translation.c \ + so_peercred-Xabbrev.c so_peercred-Xraw.c \ + so_peercred-Xverbose.c sock_filter-v.c sock_filter-v-Xabbrev.c \ + sock_filter-v-Xraw.c sock_filter-v-Xverbose.c \ + sockaddr_xlat-Xabbrev.c sockaddr_xlat-Xraw.c \ + sockaddr_xlat-Xverbose.c socketcall.c sockopt-sol_netlink.c \ + sockopt-timestamp.c splice.c $(stack_fcall_SOURCES) \ + $(stack_fcall_attach_SOURCES) $(stack_fcall_mangled_SOURCES) \ + stat.c stat64.c statfs.c statfs64.c status-all.c \ + status-failed.c status-failed-long.c status-failed-status.c \ + status-none.c status-none-f.c status-none-threads.c \ + status-successful.c status-successful-long.c \ + status-successful-status.c status-unfinished.c \ + status-unfinished-threads.c statx.c strace--strings-in-hex.c \ + strace--strings-in-hex-all.c \ + strace--strings-in-hex-non-ascii.c strace-n.c strace-x.c \ + strace-xx.c swap.c sxetmask.c symlink.c symlinkat.c sync.c \ + sync_file_range.c sync_file_range2.c sysinfo.c syslog.c \ + syslog-success.c tee.c tgkill.c tgkill--pidns-translation.c \ + threads-execve.c threads-execve--quiet-thread-execve.c \ + threads-execve-q.c threads-execve-qq.c threads-execve-qqq.c \ time.c timer_create.c timer_xettime.c timerfd_xettime.c \ - times.c times-fail.c truncate.c truncate64.c ugetrlimit.c \ - uio.c umask.c umount.c umount2.c umoven-illptr.c umovestr.c \ - umovestr-illptr.c umovestr2.c umovestr3.c uname.c \ - unblock_reset_raise.c unix-pair-send-recv.c \ + times.c times-fail.c tkill.c tkill--pidns-translation.c \ + tracer_ppid_pgid_sid.c $(trie_test_SOURCES) truncate.c \ + truncate64.c ugetrlimit.c uio.c umask.c umount.c umount2.c \ + umoven-illptr.c umovestr.c umovestr-illptr.c umovestr2.c \ + umovestr3.c umovestr_cached.c umovestr_cached_adjacent.c \ + uname.c unblock_reset_raise.c unix-pair-send-recv.c \ unix-pair-sendto-recvfrom.c unlink.c unlinkat.c unshare.c \ userfaultfd.c ustat.c utime.c utimensat.c utimensat-Xabbrev.c \ utimensat-Xraw.c utimensat-Xverbose.c utimes.c vfork-f.c \ vhangup.c vmsplice.c wait4.c wait4-v.c waitid.c waitid-v.c \ waitpid.c xattr.c xattr-strings.c xet_robust_list.c \ - xet_thread_area_x86.c xetitimer.c xetpgid.c xetpriority.c \ - xettimeofday.c zeroargc.c + xet_robust_list--pidns-translation.c xet_thread_area_x86.c \ + xetitimer.c xetpgid.c xetpgid--pidns-translation.c \ + xetpriority.c xetpriority--pidns-translation.c xettimeofday.c \ + zeroargc.c DIST_SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c \ accept.c accept4.c access.c acct.c add_key.c adjtimex.c aio.c \ aio_pgetevents.c alarm.c answer.c attach-f-p.c \ attach-f-p-cmd.c attach-p-cmd-cmd.c attach-p-cmd-p.c \ - block_reset_raise_run.c bpf.c bpf-obj_get_info_by_fd.c \ - bpf-obj_get_info_by_fd-prog.c bpf-obj_get_info_by_fd-prog-v.c \ - bpf-obj_get_info_by_fd-v.c bpf-success.c bpf-success-v.c \ - bpf-v.c brk.c btrfs.c caps.c caps-abbrev.c check_sigblock.c \ + block_reset_raise_run.c block_reset_run.c bpf.c \ + bpf-obj_get_info_by_fd.c bpf-obj_get_info_by_fd-prog.c \ + bpf-obj_get_info_by_fd-prog-v.c bpf-obj_get_info_by_fd-v.c \ + bpf-success.c bpf-success-long-y.c bpf-success-v.c bpf-v.c \ + brk.c btrfs.c caps.c caps-abbrev.c check_sigblock.c \ check_sigign.c chmod.c chown.c chown32.c chroot.c \ clock_adjtime.c clock_nanosleep.c clock_xettime.c \ - clone_parent.c clone_ptrace.c copy_file_range.c count-f.c \ - creat.c delay.c delete_module.c dev-yy.c dup.c dup2.c dup3.c \ - epoll_create.c epoll_create1.c epoll_ctl.c epoll_pwait.c \ - epoll_wait.c erestartsys.c eventfd.c execve.c execve-v.c \ - execveat.c execveat-v.c faccessat.c fadvise64.c fadvise64_64.c \ + clone-flags.c clone3.c clone3-Xabbrev.c clone3-Xraw.c \ + clone3-Xverbose.c clone3-success.c clone3-success-Xabbrev.c \ + clone3-success-Xraw.c clone3-success-Xverbose.c clone_parent.c \ + clone_parent--quiet-exit.c clone_parent-q.c clone_parent-qq.c \ + clone_ptrace.c clone_ptrace--quiet-attach.c \ + clone_ptrace--quiet-exit.c clone_ptrace-q.c clone_ptrace-qq.c \ + close_range.c close_range-P.c close_range-y.c close_range-yy.c \ + copy_file_range.c count-f.c creat.c delay.c delete_module.c \ + dev--decode-fds-dev.c dev--decode-fds-path.c \ + dev--decode-fds-socket.c dev-yy.c dup.c dup-P.c dup-y.c \ + dup-yy.c dup2.c dup2-P.c dup2-y.c dup2-yy.c dup3.c dup3-P.c \ + dup3-y.c dup3-yy.c epoll_create.c epoll_create1.c epoll_ctl.c \ + epoll_pwait.c epoll_wait.c erestartsys.c eventfd.c execve.c \ + execve-v.c execveat.c execveat-v.c faccessat.c faccessat-P.c \ + faccessat-y.c faccessat-yy.c faccessat2.c faccessat2-P.c \ + faccessat2-y.c faccessat2-yy.c fadvise64.c fadvise64_64.c \ fallocate.c fanotify_init.c fanotify_mark.c \ fanotify_mark-Xabbrev.c fanotify_mark-Xraw.c \ fanotify_mark-Xverbose.c fchdir.c fchmod.c fchmodat.c fchown.c \ - fchown32.c fchownat.c fcntl.c fcntl64.c fdatasync.c fflush.c \ - file_handle.c file_ioctl.c filter-unavailable.c finit_module.c \ - flock.c fork-f.c fstat.c fstat-Xabbrev.c fstat-Xraw.c \ - fstat-Xverbose.c fstat64.c fstat64-Xabbrev.c fstat64-Xraw.c \ - fstat64-Xverbose.c fstatat64.c fstatfs.c fstatfs64.c fsync.c \ - fsync-y.c ftruncate.c ftruncate64.c futex.c futimesat.c \ - get_mempolicy.c getcpu.c getcwd.c getdents.c getdents64.c \ - getegid.c getegid32.c geteuid.c geteuid32.c getgid.c \ - getgid32.c getgroups.c getgroups32.c getpeername.c getpgrp.c \ - getpid.c getppid.c getrandom.c getresgid.c getresgid32.c \ - getresuid.c getresuid32.c getrlimit.c getrusage.c getsid.c \ - getsockname.c gettid.c getuid.c getuid32.c getxxid.c \ - group_req.c inet-cmsg.c init_module.c inject-nf.c inotify.c \ - inotify_init1.c int_0x80.c io_uring_enter.c \ - io_uring_register.c io_uring_setup.c ioctl.c ioctl_block.c \ - ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-success.c \ - ioctl_evdev-success-v.c ioctl_evdev-v.c ioctl_inotify.c \ - ioctl_kvm_run.c ioctl_kvm_run-v.c ioctl_kvm_run_auxstr_vcpu.c \ - ioctl_loop.c ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c \ - ioctl_nbd.c ioctl_nsfs.c ioctl_perf.c ioctl_perf-success.c \ - ioctl_ptp.c ioctl_random.c ioctl_rtc.c ioctl_rtc-v.c \ - ioctl_scsi.c ioctl_sg_io_v3.c ioctl_sg_io_v4.c \ - ioctl_sock_gifconf.c ioctl_uffdio.c ioctl_v4l2.c ioperm.c \ - iopl.c ioprio.c ioprio-Xabbrev.c ioprio-Xraw.c \ - ioprio-Xverbose.c ip_mreq.c ipc.c ipc_msg.c ipc_msg-Xabbrev.c \ - ipc_msg-Xraw.c ipc_msg-Xverbose.c ipc_msgbuf.c \ - ipc_msgbuf-Xabbrev.c ipc_msgbuf-Xraw.c ipc_msgbuf-Xverbose.c \ - ipc_sem.c ipc_sem-Xabbrev.c ipc_sem-Xraw.c ipc_sem-Xverbose.c \ - ipc_shm.c ipc_shm-Xabbrev.c ipc_shm-Xraw.c ipc_shm-Xverbose.c \ - is_linux_mips_n64.c kcmp.c kcmp-y.c kern_features.c \ + fchown32.c fchownat.c fcntl.c fcntl--pidns-translation.c \ + fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \ + file_handle.c file_ioctl.c filter-unavailable.c \ + filter_seccomp-flag.c filter_seccomp-perf.c finit_module.c \ + flock.c fork--pidns-translation.c fork-f.c fsconfig.c \ + fsconfig-P.c fsmount.c fsopen.c fspick.c fspick-P.c fstat.c \ + fstat-Xabbrev.c fstat-Xraw.c fstat-Xverbose.c fstat64.c \ + fstat64-Xabbrev.c fstat64-Xraw.c fstat64-Xverbose.c \ + fstatat64.c fstatfs.c fstatfs64.c fsync.c fsync-y.c \ + ftruncate.c ftruncate64.c futex.c futimesat.c get_mempolicy.c \ + get_process_reaper.c getcpu.c getcwd.c getdents.c getdents-v.c \ + getdents64.c getdents64-v.c getegid.c getegid32.c geteuid.c \ + geteuid32.c getgid.c getgid32.c getgroups.c getgroups32.c \ + getpeername.c getpgrp.c getpgrp--pidns-translation.c getpid.c \ + getpid--pidns-translation.c getppid.c getrandom.c getresgid.c \ + getresgid32.c getresuid.c getresuid32.c getrlimit.c \ + getrusage.c getsid.c getsid--pidns-translation.c getsockname.c \ + gettid.c gettid--pidns-translation.c getuid.c getuid32.c \ + getxgid.c getxpid.c getxuid.c group_req.c inet-cmsg.c \ + init_module.c inject-nf.c inotify.c inotify_init.c \ + inotify_init-y.c inotify_init1.c inotify_init1-y.c int_0x80.c \ + io_uring_enter.c io_uring_register.c io_uring_setup.c ioctl.c \ + ioctl_block.c ioctl_block--pidns-translation.c ioctl_dm.c \ + ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-Xabbrev.c \ + ioctl_evdev-Xraw.c ioctl_evdev-Xverbose.c \ + ioctl_evdev-success.c ioctl_evdev-success-Xabbrev.c \ + ioctl_evdev-success-Xraw.c ioctl_evdev-success-Xverbose.c \ + ioctl_evdev-success-v.c ioctl_evdev-success-v-Xabbrev.c \ + ioctl_evdev-success-v-Xraw.c ioctl_evdev-success-v-Xverbose.c \ + ioctl_evdev-v.c ioctl_evdev-v-Xabbrev.c ioctl_evdev-v-Xraw.c \ + ioctl_evdev-v-Xverbose.c ioctl_hdio.c ioctl_hdio-Xabbrev.c \ + ioctl_hdio-Xraw.c ioctl_hdio-Xverbose.c ioctl_hdio-success.c \ + ioctl_hdio-success-Xabbrev.c ioctl_hdio-success-Xraw.c \ + ioctl_hdio-success-Xverbose.c ioctl_hdio-success-v.c \ + ioctl_hdio-success-v-Xabbrev.c ioctl_hdio-success-v-Xraw.c \ + ioctl_hdio-success-v-Xverbose.c ioctl_hdio-v.c \ + ioctl_hdio-v-Xabbrev.c ioctl_hdio-v-Xraw.c \ + ioctl_hdio-v-Xverbose.c ioctl_inotify.c ioctl_kvm_run.c \ + ioctl_kvm_run-v.c ioctl_kvm_run_auxstr_vcpu.c ioctl_loop.c \ + ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c ioctl_nbd.c \ + ioctl_nsfs.c ioctl_perf.c ioctl_perf-success.c ioctl_ptp.c \ + ioctl_random.c ioctl_rtc.c ioctl_rtc-v.c ioctl_scsi.c \ + ioctl_sg_io_v3.c ioctl_sg_io_v4.c ioctl_sock_gifconf.c \ + ioctl_tee.c ioctl_uffdio.c ioctl_v4l2.c ioctl_v4l2-Xabbrev.c \ + ioctl_v4l2-Xraw.c ioctl_v4l2-Xverbose.c ioctl_v4l2-success.c \ + ioctl_v4l2-success-Xabbrev.c ioctl_v4l2-success-Xraw.c \ + ioctl_v4l2-success-Xverbose.c ioctl_v4l2-success-v.c \ + ioctl_v4l2-success-v-Xabbrev.c ioctl_v4l2-success-v-Xraw.c \ + ioctl_v4l2-success-v-Xverbose.c ioctl_v4l2-v.c \ + ioctl_v4l2-v-Xabbrev.c ioctl_v4l2-v-Xraw.c \ + ioctl_v4l2-v-Xverbose.c ioctl_watchdog.c ioperm.c iopl.c \ + ioprio.c ioprio--pidns-translation.c ioprio-Xabbrev.c \ + ioprio-Xraw.c ioprio-Xverbose.c ip_mreq.c ipc.c ipc_msg.c \ + ipc_msg-Xabbrev.c ipc_msg-Xraw.c ipc_msg-Xverbose.c \ + ipc_msgbuf.c ipc_msgbuf-Xabbrev.c ipc_msgbuf-Xraw.c \ + ipc_msgbuf-Xverbose.c ipc_sem.c ipc_sem-Xabbrev.c \ + ipc_sem-Xraw.c ipc_sem-Xverbose.c ipc_shm.c ipc_shm-Xabbrev.c \ + ipc_shm-Xraw.c ipc_shm-Xverbose.c is_linux_mips_n64.c kcmp.c \ + kcmp-y.c kcmp-y--pidns-translation.c kern_features.c \ kernel_version.c kernel_version-Xabbrev.c \ kernel_version-Xraw.c kernel_version-Xverbose.c \ kexec_file_load.c kexec_load.c keyctl.c keyctl-Xabbrev.c \ - keyctl-Xraw.c keyctl-Xverbose.c kill.c kill_child.c ksysent.c \ - lchown.c lchown32.c link.c linkat.c list_sigaction_signum.c \ - llseek.c localtime.c lookup_dcookie.c looping_threads.c \ - lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \ + keyctl-Xraw.c keyctl-Xverbose.c kill.c \ + kill--pidns-translation.c kill_child.c ksysent.c lchown.c \ + lchown32.c link.c linkat.c list_sigaction_signum.c llseek.c \ + localtime.c lookup_dcookie.c looping_threads.c lseek.c lstat.c \ + lstat64.c madvise.c maybe_switch_current_tcp.c \ + maybe_switch_current_tcp--quiet-thread-execve.c mbind.c \ + mbind-Xabbrev.c mbind-Xraw.c mbind-Xverbose.c membarrier.c \ memfd_create.c memfd_create-Xabbrev.c memfd_create-Xraw.c \ - memfd_create-Xverbose.c migrate_pages.c mincore.c mkdir.c \ - mkdirat.c mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c \ + memfd_create-Xverbose.c migrate_pages.c \ + migrate_pages--pidns-translation.c mincore.c mkdir.c mkdirat.c \ + mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c \ mmap-Xabbrev.c mmap-Xraw.c mmap-Xverbose.c mmap64.c \ mmap64-Xabbrev.c mmap64-Xraw.c mmap64-Xverbose.c mmsg.c \ mmsg-silent.c mmsg_name.c mmsg_name-v.c modify_ldt.c mount.c \ - mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c move_pages.c \ + mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c move_mount.c \ + move_mount-P.c move_pages.c move_pages--pidns-translation.c \ move_pages-Xabbrev.c move_pages-Xraw.c move_pages-Xverbose.c \ mq.c mq_sendrecv.c mq_sendrecv-read.c mq_sendrecv-write.c \ msg_control.c msg_control-v.c msg_name.c munlockall.c \ - nanosleep.c net-accept-connect.c net-icmp_filter.c \ - net-packet_mreq.c net-packet_mreq-Xabbrev.c \ + nanosleep.c net--decode-fds-dev-netlink.c \ + net--decode-fds-none-netlink.c net--decode-fds-path-netlink.c \ + net--decode-fds-socket-netlink.c net-accept-connect.c \ + net-icmp_filter.c net-packet_mreq.c net-packet_mreq-Xabbrev.c \ net-packet_mreq-Xraw.c net-packet_mreq-Xverbose.c \ - net-sockaddr.c net-tpacket_req.c net-tpacket_stats.c \ + net-sockaddr.c net-sockaddr--pidns-translation.c \ + net-tpacket_req.c net-tpacket_stats.c \ net-tpacket_stats-success.c net-y-unix.c net-yy-inet.c \ net-yy-inet6.c net-yy-netlink.c net-yy-unix.c netlink_audit.c \ - netlink_crypto.c netlink_generic.c netlink_inet_diag.c \ - netlink_kobject_uevent.c netlink_netfilter.c \ - netlink_netlink_diag.c netlink_protocol.c netlink_route.c \ - netlink_selinux.c netlink_sock_diag.c netlink_unix_diag.c \ - netlink_xfrm.c newfstatat.c nfnetlink_acct.c \ - nfnetlink_cthelper.c nfnetlink_ctnetlink.c \ + netlink_audit--pidns-translation.c netlink_crypto.c \ + netlink_generic.c netlink_inet_diag.c netlink_kobject_uevent.c \ + netlink_netfilter.c netlink_netlink_diag.c netlink_protocol.c \ + netlink_route.c netlink_selinux.c netlink_sock_diag.c \ + netlink_unix_diag.c netlink_xfrm.c newfstatat.c \ + nfnetlink_acct.c nfnetlink_cthelper.c nfnetlink_ctnetlink.c \ nfnetlink_ctnetlink_exp.c nfnetlink_cttimeout.c \ nfnetlink_ipset.c nfnetlink_nft_compat.c nfnetlink_nftables.c \ nfnetlink_osf.c nfnetlink_queue.c nfnetlink_ulog.c nlattr.c \ @@ -3553,89 +4954,123 @@ DIST_SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c \ nlattr_fib_rule_hdr.c nlattr_ifaddrlblmsg.c nlattr_ifaddrmsg.c \ nlattr_ifinfomsg.c nlattr_ifla_af_spec.c nlattr_ifla_brport.c \ nlattr_ifla_linkinfo.c nlattr_ifla_port.c nlattr_ifla_xdp.c \ - nlattr_inet_diag_msg.c nlattr_inet_diag_req_compat.c \ - nlattr_inet_diag_req_v2.c nlattr_mdba_mdb_entry.c \ - nlattr_mdba_router_port.c nlattr_ndmsg.c nlattr_ndtmsg.c \ - nlattr_netconfmsg.c nlattr_netlink_diag_msg.c \ - nlattr_nlmsgerr.c nlattr_packet_diag_msg.c nlattr_rtgenmsg.c \ - nlattr_rtmsg.c nlattr_smc_diag_msg.c nlattr_tc_stats.c \ - nlattr_tca_stab.c nlattr_tcamsg.c nlattr_tcmsg.c \ - nlattr_unix_diag_msg.c nsyscalls.c nsyscalls-d.c old_mmap.c \ - old_mmap-P.c old_mmap-Xabbrev.c old_mmap-Xraw.c \ - old_mmap-Xverbose.c old_mmap-v-none.c oldfstat.c oldlstat.c \ - oldselect.c oldselect-P.c oldselect-efault.c \ - oldselect-efault-P.c oldstat.c open.c openat.c \ + nlattr_ifla_xdp-y.c nlattr_inet_diag_msg.c \ + nlattr_inet_diag_req_compat.c nlattr_inet_diag_req_v2.c \ + nlattr_mdba_mdb_entry.c nlattr_mdba_router_port.c \ + nlattr_ndmsg.c nlattr_ndtmsg.c nlattr_netconfmsg.c \ + nlattr_netlink_diag_msg.c nlattr_nlmsgerr.c \ + nlattr_packet_diag_msg.c nlattr_rtgenmsg.c nlattr_rtmsg.c \ + nlattr_smc_diag_msg.c nlattr_tc_stats.c nlattr_tca_stab.c \ + nlattr_tcamsg.c nlattr_tcmsg.c nlattr_unix_diag_msg.c \ + nsyscalls.c nsyscalls-d.c old_mmap.c old_mmap-P.c \ + old_mmap-Xabbrev.c old_mmap-Xraw.c old_mmap-Xverbose.c \ + old_mmap-v-none.c oldfstat.c oldlstat.c oldselect.c \ + oldselect-P.c oldselect-efault.c oldselect-efault-P.c \ + oldstat.c open.c open_tree.c open_tree-P.c openat.c openat2.c \ + openat2-Xabbrev.c openat2-Xraw.c openat2-Xverbose.c \ + openat2-v.c openat2-v-y.c openat2-v-y-Xabbrev.c \ + openat2-v-y-Xraw.c openat2-v-y-Xverbose.c openat2-y.c \ orphaned_process_group.c osf_utimes.c pause.c pc.c \ perf_event_open.c perf_event_open_nonverbose.c \ perf_event_open_unabbrev.c personality.c personality-Xabbrev.c \ - personality-Xraw.c personality-Xverbose.c pidfd_send_signal.c \ - pipe.c pipe2.c pkey_alloc.c pkey_free.c pkey_mprotect.c poll.c \ - poll-P.c ppoll.c ppoll-P.c ppoll-v.c prctl-arg2-intptr.c \ - prctl-dumpable.c prctl-name.c prctl-no-args.c \ - prctl-pdeathsig.c prctl-seccomp-filter-v.c \ + personality-Xraw.c personality-Xverbose.c pidfd_getfd.c \ + pidfd_getfd-y.c pidfd_getfd-yy.c pidfd_open.c \ + pidfd_open--decode-fd-path.c pidfd_open--decode-fd-pidfd.c \ + pidfd_open--decode-fd-socket.c pidfd_open--pidns-translation.c \ + pidfd_open-P.c pidfd_open-y.c pidfd_open-yy.c \ + pidfd_send_signal.c pidfd_send_signal--pidns-translation.c \ + pidns-cache.c pipe.c pipe2.c pkey_alloc.c pkey_free.c \ + pkey_mprotect.c poll.c poll-P.c ppoll.c ppoll-P.c ppoll-v.c \ + prctl-arg2-intptr.c prctl-dumpable.c prctl-name.c \ + prctl-no-args.c prctl-pdeathsig.c prctl-seccomp-filter-v.c \ prctl-seccomp-strict.c prctl-securebits.c prctl-spec-inject.c \ prctl-tid_address.c prctl-tsc.c pread64-pwrite64.c preadv.c \ preadv-pwritev.c preadv2-pwritev2.c print_maxfd.c \ - printpath-umovestr.c printpath-umovestr-peekdata.c \ - printpath-umovestr-undumpable.c printsignal-Xabbrev.c \ - printsignal-Xraw.c printsignal-Xverbose.c printstr.c \ - printstrn-umoven.c printstrn-umoven-peekdata.c \ - printstrn-umoven-undumpable.c prlimit64.c process_vm_readv.c \ - process_vm_writev.c pselect6.c ptrace.c ptrace_syscall_info.c \ - pwritev.c qual_fault.c qual_inject-error-signal.c \ - qual_inject-retval.c qual_inject-signal.c qual_signal.c \ - quotactl.c quotactl-Xabbrev.c quotactl-Xraw.c \ - quotactl-Xverbose.c quotactl-success.c quotactl-success-v.c \ - quotactl-v.c quotactl-xfs.c quotactl-xfs-success.c \ - quotactl-xfs-success-v.c quotactl-xfs-v.c read-write.c \ - readahead.c readdir.c readlink.c readlinkat.c readv.c reboot.c \ - recvfrom.c recvmmsg-timeout.c recvmsg.c redirect-fds.c \ - remap_file_pages.c remap_file_pages-Xabbrev.c \ + print_ppid_tracerpid.c printpath-umovestr.c \ + printpath-umovestr-peekdata.c printpath-umovestr-undumpable.c \ + printsignal-Xabbrev.c printsignal-Xraw.c \ + printsignal-Xverbose.c printstr.c printstrn-umoven.c \ + printstrn-umoven-peekdata.c printstrn-umoven-undumpable.c \ + prlimit64.c prlimit64--pidns-translation.c process_vm_readv.c \ + process_vm_readv--pidns-translation.c process_vm_writev.c \ + process_vm_writev--pidns-translation.c pselect6.c ptrace.c \ + ptrace_syscall_info.c pwritev.c qual_fault.c \ + qual_inject-error-signal.c qual_inject-retval.c \ + qual_inject-signal.c qual_signal.c quotactl.c \ + quotactl-Xabbrev.c quotactl-Xraw.c quotactl-Xverbose.c \ + quotactl-success.c quotactl-success-v.c quotactl-v.c \ + quotactl-xfs.c quotactl-xfs-success.c quotactl-xfs-success-v.c \ + quotactl-xfs-v.c read-write.c readahead.c readdir.c readlink.c \ + readlinkat.c readv.c reboot.c recv-MSG_TRUNC.c recvfrom.c \ + recvfrom-MSG_TRUNC.c recvmmsg-timeout.c recvmsg.c \ + redirect-fds.c remap_file_pages.c remap_file_pages-Xabbrev.c \ remap_file_pages-Xraw.c remap_file_pages-Xverbose.c rename.c \ renameat.c renameat2.c request_key.c restart_syscall.c \ riscv_flush_icache.c rmdir.c rt_sigaction.c rt_sigpending.c \ - rt_sigprocmask.c rt_sigqueueinfo.c rt_sigreturn.c \ + rt_sigprocmask.c rt_sigqueueinfo.c \ + rt_sigqueueinfo--pidns-translation.c rt_sigreturn.c \ rt_sigsuspend.c rt_sigtimedwait.c rt_tgsigqueueinfo.c \ - run_expect_termsig.c s390_guarded_storage.c \ - s390_guarded_storage-v.c s390_pci_mmio_read_write.c \ - s390_runtime_instr.c s390_sthyi.c s390_sthyi-v.c \ - sched_get_priority_mxx.c sched_rr_get_interval.c \ - sched_xetaffinity.c sched_xetattr.c sched_xetparam.c \ - sched_xetscheduler.c sched_yield.c scm_rights.c \ - seccomp-filter.c seccomp-filter-v.c seccomp-strict.c \ - seccomp_get_action_avail.c select.c select-P.c semop.c \ - sendfile.c sendfile64.c set_mempolicy.c set_ptracer_any.c \ - set_sigblock.c set_sigign.c setdomainname.c setfsgid.c \ - setfsgid32.c setfsuid.c setfsuid32.c setgid.c setgid32.c \ - setgroups.c setgroups32.c sethostname.c setns.c setregid.c \ - setregid32.c setresgid.c setresgid32.c setresuid.c \ - setresuid32.c setreuid.c setreuid32.c setrlimit.c \ - setrlimit-Xabbrev.c setrlimit-Xraw.c setrlimit-Xverbose.c \ - setuid.c setuid32.c shmxt.c shutdown.c sigaction.c \ - sigaltstack.c siginfo.c signal.c signal_receive.c signalfd4.c \ - sigpending.c sigprocmask.c sigreturn.c sigsuspend.c sleep.c \ - so_error.c so_linger.c so_peercred.c so_peercred-Xabbrev.c \ - so_peercred-Xraw.c so_peercred-Xverbose.c sock_filter-v.c \ - sock_filter-v-Xabbrev.c sock_filter-v-Xraw.c \ - sock_filter-v-Xverbose.c sockaddr_xlat-Xabbrev.c \ - sockaddr_xlat-Xraw.c sockaddr_xlat-Xverbose.c socketcall.c \ - sockopt-sol_netlink.c sockopt-timestamp.c splice.c \ - $(stack_fcall_SOURCES) $(stack_fcall_mangled_SOURCES) stat.c \ - stat64.c statfs.c statfs64.c statx.c swap.c sxetmask.c \ - symlink.c symlinkat.c sync.c sync_file_range.c \ - sync_file_range2.c sysinfo.c syslog.c tee.c threads-execve.c \ + rt_tgsigqueueinfo--pidns-translation.c run_expect_termsig.c \ + s390_guarded_storage.c s390_guarded_storage-v.c \ + s390_pci_mmio_read_write.c s390_runtime_instr.c s390_sthyi.c \ + s390_sthyi-v.c sched_get_priority_mxx.c \ + sched_rr_get_interval.c sched_xetaffinity.c \ + sched_xetaffinity--pidns-translation.c sched_xetattr.c \ + sched_xetattr--pidns-translation.c sched_xetparam.c \ + sched_xetparam--pidns-translation.c sched_xetscheduler.c \ + sched_xetscheduler--pidns-translation.c sched_yield.c \ + scm_rights.c seccomp-filter.c seccomp-filter-v.c \ + seccomp-strict.c seccomp_get_action_avail.c select.c \ + select-P.c semop.c semop-indirect.c semtimedop.c sendfile.c \ + sendfile64.c set_mempolicy.c set_mempolicy-Xabbrev.c \ + set_mempolicy-Xraw.c set_mempolicy-Xverbose.c \ + set_ptracer_any.c set_sigblock.c set_sigign.c setdomainname.c \ + setfsgid.c setfsgid32.c setfsuid.c setfsuid32.c setgid.c \ + setgid32.c setgroups.c setgroups32.c sethostname.c setns.c \ + setpgrp-exec.c setregid.c setregid32.c setresgid.c \ + setresgid32.c setresuid.c setresuid32.c setreuid.c \ + setreuid32.c setrlimit.c setrlimit-Xabbrev.c setrlimit-Xraw.c \ + setrlimit-Xverbose.c setuid.c setuid32.c shmxt.c shutdown.c \ + sigaction.c sigaltstack.c siginfo.c signal.c signal_receive.c \ + signal_receive--pidns-translation.c signalfd4.c sigpending.c \ + sigprocmask.c sigreturn.c sigsuspend.c sleep.c so_error.c \ + so_linger.c so_peercred.c so_peercred--pidns-translation.c \ + so_peercred-Xabbrev.c so_peercred-Xraw.c \ + so_peercred-Xverbose.c sock_filter-v.c sock_filter-v-Xabbrev.c \ + sock_filter-v-Xraw.c sock_filter-v-Xverbose.c \ + sockaddr_xlat-Xabbrev.c sockaddr_xlat-Xraw.c \ + sockaddr_xlat-Xverbose.c socketcall.c sockopt-sol_netlink.c \ + sockopt-timestamp.c splice.c $(stack_fcall_SOURCES) \ + $(stack_fcall_attach_SOURCES) $(stack_fcall_mangled_SOURCES) \ + stat.c stat64.c statfs.c statfs64.c status-all.c \ + status-failed.c status-failed-long.c status-failed-status.c \ + status-none.c status-none-f.c status-none-threads.c \ + status-successful.c status-successful-long.c \ + status-successful-status.c status-unfinished.c \ + status-unfinished-threads.c statx.c strace--strings-in-hex.c \ + strace--strings-in-hex-all.c \ + strace--strings-in-hex-non-ascii.c strace-n.c strace-x.c \ + strace-xx.c swap.c sxetmask.c symlink.c symlinkat.c sync.c \ + sync_file_range.c sync_file_range2.c sysinfo.c syslog.c \ + syslog-success.c tee.c tgkill.c tgkill--pidns-translation.c \ + threads-execve.c threads-execve--quiet-thread-execve.c \ + threads-execve-q.c threads-execve-qq.c threads-execve-qqq.c \ time.c timer_create.c timer_xettime.c timerfd_xettime.c \ - times.c times-fail.c truncate.c truncate64.c ugetrlimit.c \ - uio.c umask.c umount.c umount2.c umoven-illptr.c umovestr.c \ - umovestr-illptr.c umovestr2.c umovestr3.c uname.c \ - unblock_reset_raise.c unix-pair-send-recv.c \ + times.c times-fail.c tkill.c tkill--pidns-translation.c \ + tracer_ppid_pgid_sid.c $(trie_test_SOURCES) truncate.c \ + truncate64.c ugetrlimit.c uio.c umask.c umount.c umount2.c \ + umoven-illptr.c umovestr.c umovestr-illptr.c umovestr2.c \ + umovestr3.c umovestr_cached.c umovestr_cached_adjacent.c \ + uname.c unblock_reset_raise.c unix-pair-send-recv.c \ unix-pair-sendto-recvfrom.c unlink.c unlinkat.c unshare.c \ userfaultfd.c ustat.c utime.c utimensat.c utimensat-Xabbrev.c \ utimensat-Xraw.c utimensat-Xverbose.c utimes.c vfork-f.c \ vhangup.c vmsplice.c wait4.c wait4-v.c waitid.c waitid-v.c \ waitpid.c xattr.c xattr-strings.c xet_robust_list.c \ - xet_thread_area_x86.c xetitimer.c xetpgid.c xetpriority.c \ - xettimeofday.c zeroargc.c + xet_robust_list--pidns-translation.c xet_thread_area_x86.c \ + xetitimer.c xetpgid.c xetpgid--pidns-translation.c \ + xetpriority.c xetpriority--pidns-translation.c xettimeofday.c \ + zeroargc.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -3846,9 +5281,11 @@ am__set_TESTS_bases = \ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` +AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' RECHECK_LOGS = $(TEST_LOGS) AM_RECURSIVE_TARGETS = check recheck -@ENABLE_STACKTRACE_TRUE@am__EXEEXT_2 = strace-k.test $(am__append_1) +@ENABLE_STACKTRACE_TRUE@am__EXEEXT_2 = strace-k.test strace-k-p.test \ +@ENABLE_STACKTRACE_TRUE@ $(am__append_1) TEST_SUITE_LOG = test-suite.log TEST_EXTENSIONS = @EXEEXT@ .test am__test_logs1 = $(TESTS:=.log) @@ -3874,6 +5311,7 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -3883,8 +5321,12 @@ BUILD_OBJEXT = @BUILD_OBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ +CC_FOR_M32 = @CC_FOR_M32@ +CC_FOR_MX32 = @CC_FOR_MX32@ CFLAGS = @CFLAGS@ CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ +CFLAGS_FOR_M32 = @CFLAGS_FOR_M32@ +CFLAGS_FOR_MX32 = @CFLAGS_FOR_MX32@ CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@ CODE_COVERAGE_CPPFLAGS = @CODE_COVERAGE_CPPFLAGS@ CODE_COVERAGE_CXXFLAGS = @CODE_COVERAGE_CXXFLAGS@ @@ -3895,7 +5337,11 @@ COPYRIGHT_YEAR = @COPYRIGHT_YEAR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@ +CPPFLAGS_FOR_M32 = @CPPFLAGS_FOR_M32@ +CPPFLAGS_FOR_MX32 = @CPPFLAGS_FOR_MX32@ CPP_FOR_BUILD = @CPP_FOR_BUILD@ +CPP_FOR_M32 = @CPP_FOR_M32@ +CPP_FOR_MX32 = @CPP_FOR_MX32@ CYGPATH_W = @CYGPATH_W@ DEB_CHANGELOGTIME = @DEB_CHANGELOGTIME@ DEFS = @DEFS@ @@ -3937,7 +5383,6 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PERL = @PERL@ RANLIB = @RANLIB@ READELF = @READELF@ RPM_CHANGELOGTIME = @RPM_CHANGELOGTIME@ @@ -3956,6 +5401,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CC_FOR_BUILD = @ac_ct_CC_FOR_BUILD@ am__include = @am__include@ @@ -4046,6 +5492,7 @@ AM_CPPFLAGS = $(ARCH_MFLAGS) \ AM_LDFLAGS = $(ARCH_MFLAGS) libtests_a_SOURCES = \ create_nl_socket.c \ + create_tmpfile.c \ errno2name.c \ error_msg.c \ fill_memory.c \ @@ -4057,15 +5504,21 @@ libtests_a_SOURCES = \ inode_of_sockfd.c \ libmmsg.c \ libsocketcall.c \ + lock_file.c \ overflowuid.c \ + pidns.c \ + pidns.h \ pipe_maxfd.c \ print_quoted_string.c \ print_time.c \ printflags.c \ - printxval.c \ + printxval-Xabbrev.c \ + printxval-Xraw.c \ + printxval-Xverbose.c \ signal2name.c \ skip_unavailable.c \ sprintrc.c \ + status.c \ tail_alloc.c \ test_netlink.h \ test_nlattr.h \ @@ -4075,6 +5528,7 @@ libtests_a_SOURCES = \ test_ucopy.h \ tests.h \ tprintf.c \ + xmalloc_for_tests.c \ # end of libtests_a_SOURCES libtests_a_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 @@ -4094,10 +5548,6 @@ PURE_EXECUTABLES = \ aio_pgetevents \ alarm \ bpf \ - bpf-obj_get_info_by_fd \ - bpf-obj_get_info_by_fd-prog \ - bpf-obj_get_info_by_fd-prog-v \ - bpf-obj_get_info_by_fd-v \ bpf-v \ brk \ btrfs \ @@ -4109,13 +5559,34 @@ PURE_EXECUTABLES = \ clock_adjtime \ clock_nanosleep \ clock_xettime \ + clone-flags \ + clone3 \ + clone3-Xabbrev \ + clone3-Xraw \ + clone3-Xverbose \ + close_range \ + close_range-P \ + close_range-y \ + close_range-yy \ copy_file_range \ creat \ delete_module \ + dev--decode-fds-dev \ + dev--decode-fds-path \ + dev--decode-fds-socket \ dev-yy \ dup \ + dup-P \ + dup-y \ + dup-yy \ dup2 \ + dup2-P \ + dup2-y \ + dup2-yy \ dup3 \ + dup3-P \ + dup3-y \ + dup3-yy \ epoll_create \ epoll_create1 \ epoll_ctl \ @@ -4126,6 +5597,13 @@ PURE_EXECUTABLES = \ execve \ execveat \ faccessat \ + faccessat-P \ + faccessat-y \ + faccessat-yy \ + faccessat2 \ + faccessat2-P \ + faccessat2-y \ + faccessat2-yy \ fadvise64 \ fadvise64_64 \ fallocate \ @@ -4148,6 +5626,12 @@ PURE_EXECUTABLES = \ file_ioctl \ finit_module \ flock \ + fsconfig \ + fsconfig-P \ + fsmount \ + fsopen \ + fspick \ + fspick-P \ fstat \ fstat-Xabbrev \ fstat-Xraw \ @@ -4168,7 +5652,9 @@ PURE_EXECUTABLES = \ getcpu \ getcwd \ getdents \ + getdents-v \ getdents64 \ + getdents64-v \ getegid \ getegid32 \ geteuid \ @@ -4192,12 +5678,17 @@ PURE_EXECUTABLES = \ getsockname \ getuid \ getuid32 \ - getxxid \ + getxgid \ + getxpid \ + getxuid \ group_req \ inet-cmsg \ init_module \ inotify \ + inotify_init \ + inotify_init-y \ inotify_init1 \ + inotify_init1-y \ io_uring_enter \ io_uring_register \ io_uring_setup \ @@ -4205,6 +5696,21 @@ PURE_EXECUTABLES = \ ioctl_block \ ioctl_dm \ ioctl_evdev \ + ioctl_evdev-Xabbrev \ + ioctl_evdev-Xraw \ + ioctl_evdev-Xverbose \ + ioctl_evdev-v \ + ioctl_evdev-v-Xabbrev \ + ioctl_evdev-v-Xraw \ + ioctl_evdev-v-Xverbose \ + ioctl_hdio \ + ioctl_hdio-Xabbrev \ + ioctl_hdio-Xraw \ + ioctl_hdio-Xverbose \ + ioctl_hdio-v \ + ioctl_hdio-v-Xabbrev \ + ioctl_hdio-v-Xraw \ + ioctl_hdio-v-Xverbose \ ioctl_inotify \ ioctl_kvm_run \ ioctl_kvm_run-v \ @@ -4220,8 +5726,17 @@ PURE_EXECUTABLES = \ ioctl_sg_io_v3 \ ioctl_sg_io_v4 \ ioctl_sock_gifconf \ + ioctl_tee \ ioctl_uffdio \ ioctl_v4l2 \ + ioctl_v4l2-Xabbrev \ + ioctl_v4l2-Xraw \ + ioctl_v4l2-Xverbose \ + ioctl_v4l2-v \ + ioctl_v4l2-v-Xabbrev \ + ioctl_v4l2-v-Xraw \ + ioctl_v4l2-v-Xverbose \ + ioctl_watchdog \ ioperm \ iopl \ ioprio \ @@ -4270,7 +5785,12 @@ PURE_EXECUTABLES = \ lstat \ lstat64 \ madvise \ + maybe_switch_current_tcp \ + maybe_switch_current_tcp--quiet-thread-execve \ mbind \ + mbind-Xabbrev \ + mbind-Xraw \ + mbind-Xverbose \ membarrier \ memfd_create \ memfd_create-Xabbrev \ @@ -4300,6 +5820,8 @@ PURE_EXECUTABLES = \ mount-Xabbrev \ mount-Xraw \ mount-Xverbose \ + move_mount \ + move_mount-P \ move_pages \ move_pages-Xabbrev \ move_pages-Xraw \ @@ -4312,6 +5834,10 @@ PURE_EXECUTABLES = \ msg_name \ munlockall \ nanosleep \ + net--decode-fds-dev-netlink \ + net--decode-fds-none-netlink \ + net--decode-fds-path-netlink \ + net--decode-fds-socket-netlink \ net-icmp_filter \ net-packet_mreq \ net-packet_mreq-Xabbrev \ @@ -4391,7 +5917,19 @@ PURE_EXECUTABLES = \ oldselect-efault \ oldstat \ open \ + open_tree \ + open_tree-P \ openat \ + openat2 \ + openat2-Xabbrev \ + openat2-Xraw \ + openat2-Xverbose \ + openat2-v \ + openat2-v-y \ + openat2-v-y-Xabbrev \ + openat2-v-y-Xraw \ + openat2-v-y-Xverbose \ + openat2-y \ osf_utimes \ pause \ perf_event_open \ @@ -4399,6 +5937,16 @@ PURE_EXECUTABLES = \ personality-Xabbrev \ personality-Xraw \ personality-Xverbose \ + pidfd_getfd \ + pidfd_getfd-y \ + pidfd_getfd-yy \ + pidfd_open \ + pidfd_open--decode-fd-path \ + pidfd_open--decode-fd-pidfd \ + pidfd_open--decode-fd-socket \ + pidfd_open-P \ + pidfd_open-y \ + pidfd_open-yy \ pidfd_send_signal \ pipe \ pipe2 \ @@ -4406,9 +5954,7 @@ PURE_EXECUTABLES = \ pkey_free \ pkey_mprotect \ poll \ - poll-P \ ppoll \ - ppoll-P \ prctl-arg2-intptr \ prctl-dumpable \ prctl-name \ @@ -4450,7 +5996,9 @@ PURE_EXECUTABLES = \ readlinkat \ readv \ reboot \ + recv-MSG_TRUNC \ recvfrom \ + recvfrom-MSG_TRUNC \ recvmmsg-timeout \ recvmsg \ remap_file_pages \ @@ -4488,9 +6036,14 @@ PURE_EXECUTABLES = \ seccomp_get_action_avail \ select \ semop \ + semop-indirect \ + semtimedop \ sendfile \ sendfile64 \ set_mempolicy \ + set_mempolicy-Xabbrev \ + set_mempolicy-Xraw \ + set_mempolicy-Xverbose \ setdomainname \ setfsgid \ setfsgid32 \ @@ -4548,7 +6101,23 @@ PURE_EXECUTABLES = \ stat64 \ statfs \ statfs64 \ + status-all \ + status-failed \ + status-failed-long \ + status-failed-status \ + status-none \ + status-none-f \ + status-successful \ + status-successful-long \ + status-successful-status \ + status-unfinished \ statx \ + strace--strings-in-hex \ + strace--strings-in-hex-all \ + strace--strings-in-hex-non-ascii \ + strace-n \ + strace-x \ + strace-xx \ swap \ sxetmask \ symlink \ @@ -4559,12 +6128,14 @@ PURE_EXECUTABLES = \ sysinfo \ syslog \ tee \ + tgkill \ time \ timer_create \ timer_xettime \ timerfd_xettime \ times \ times-fail \ + tkill \ truncate \ truncate64 \ ugetrlimit \ @@ -4577,6 +6148,8 @@ PURE_EXECUTABLES = \ umovestr-illptr \ umovestr2 \ umovestr3 \ + umovestr_cached \ + umovestr_cached_adjacent \ uname \ unlink \ unlinkat \ @@ -4614,6 +6187,8 @@ ftruncate64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 localtime_LDADD = $(clock_LIBS) $(LDADD) looping_threads_LDADD = -lpthread $(LDADD) lstat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 +maybe_switch_current_tcp_LDADD = -lpthread $(LDADD) +maybe_switch_current_tcp__quiet_thread_execve_LDADD = -lpthread $(LDADD) mmap64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 mmap64_Xabbrev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 mmap64_Xraw_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 @@ -4627,17 +6202,30 @@ preadv_pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 stat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 statfs_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 +status_none_threads_LDADD = -lpthread $(LDADD) +status_unfinished_threads_LDADD = -lpthread $(LDADD) threads_execve_LDADD = -lpthread $(clock_LIBS) $(LDADD) +threads_execve__quiet_thread_execve_LDADD = -lpthread $(clock_LIBS) $(LDADD) +threads_execve_q_LDADD = -lpthread $(clock_LIBS) $(LDADD) +threads_execve_qq_LDADD = -lpthread $(clock_LIBS) $(LDADD) +threads_execve_qqq_LDADD = -lpthread $(clock_LIBS) $(LDADD) times_LDADD = $(clock_LIBS) $(LDADD) truncate64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 uio_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64 stack_fcall_SOURCES = stack-fcall.c \ stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c +stack_fcall_attach_SOURCES = stack-fcall-attach.c \ + stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c + stack_fcall_mangled_SOURCES = stack-fcall-mangled.c \ stack-fcall-mangled-0.c stack-fcall-mangled-1.c \ stack-fcall-mangled-2.c stack-fcall-mangled-3.c +trie_test_SOURCES = trie_test.c trie_for_tests.c +trie_test_CPPFLAGS = $(AM_CPPFLAGS) $(CODE_COVERAGE_CPPFLAGS) +trie_test_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS) +trie_test_LDADD = $(LDADD) $(CODE_COVERAGE_LIBS) # Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in; do not edit. GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test \ @@ -4651,50 +6239,114 @@ GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test \ btrfs.gen.test chmod.gen.test chown.gen.test chown32.gen.test \ chroot.gen.test clock.gen.test clock_adjtime.gen.test \ clock_nanosleep.gen.test clock_xettime.gen.test \ - copy_file_range.gen.test creat.gen.test delete_module.gen.test \ - dev-yy.gen.test dup.gen.test dup2.gen.test dup3.gen.test \ + clone3.gen.test clone3-Xabbrev.gen.test clone3-Xraw.gen.test \ + clone3-Xverbose.gen.test clone3-success-Xabbrev.gen.test \ + clone3-success-Xraw.gen.test clone3-success-Xverbose.gen.test \ + clone_parent.gen.test clone_parent--quiet-exit.gen.test \ + clone_parent-q.gen.test clone_parent-qq.gen.test \ + clone_ptrace--quiet-attach.gen.test \ + clone_ptrace--quiet-exit.gen.test clone_ptrace-q.gen.test \ + clone_ptrace-qq.gen.test close_range.gen.test \ + close_range-P.gen.test close_range-y.gen.test \ + close_range-yy.gen.test copy_file_range.gen.test \ + creat.gen.test delete_module.gen.test \ + dev--decode-fds-dev.gen.test dev--decode-fds-path.gen.test \ + dev--decode-fds-socket.gen.test dev-yy.gen.test dup.gen.test \ + dup-P.gen.test dup-y.gen.test dup-yy.gen.test dup2.gen.test \ + dup2-P.gen.test dup2-y.gen.test dup2-yy.gen.test dup3.gen.test \ + dup3-P.gen.test dup3-y.gen.test dup3-yy.gen.test \ epoll_create.gen.test epoll_create1.gen.test \ epoll_ctl.gen.test epoll_pwait.gen.test epoll_wait.gen.test \ erestartsys.gen.test execveat.gen.test execveat-v.gen.test \ - faccessat.gen.test fadvise64_64.gen.test fallocate.gen.test \ + faccessat-P.gen.test faccessat-y.gen.test \ + faccessat-yy.gen.test faccessat2-P.gen.test \ + faccessat2-y.gen.test faccessat2-yy.gen.test \ + fadvise64_64.gen.test fallocate.gen.test \ fanotify_init.gen.test fanotify_mark.gen.test \ fanotify_mark-Xabbrev.gen.test fanotify_mark-Xraw.gen.test \ fanotify_mark-Xverbose.gen.test fchdir.gen.test \ fchmod.gen.test fchmodat.gen.test fchown.gen.test \ fchown32.gen.test fchownat.gen.test fcntl.gen.test \ - fcntl64.gen.test fdatasync.gen.test file_handle.gen.test \ - file_ioctl.gen.test finit_module.gen.test flock.gen.test \ - fork-f.gen.test fstat.gen.test fstat-Xabbrev.gen.test \ - fstat-Xraw.gen.test fstat-Xverbose.gen.test fstat64.gen.test \ + fcntl--pidns-translation.gen.test fcntl64.gen.test \ + fcntl64--pidns-translation.gen.test fdatasync.gen.test \ + file_handle.gen.test file_ioctl.gen.test \ + filter_seccomp.gen.test filter_seccomp-flag.gen.test \ + finit_module.gen.test flock.gen.test fork-f.gen.test \ + fsconfig.gen.test fsconfig-P.gen.test fsmount.gen.test \ + fsopen.gen.test fspick.gen.test fspick-P.gen.test \ + fstat.gen.test fstat-Xabbrev.gen.test fstat-Xraw.gen.test \ + fstat-Xverbose.gen.test fstat64.gen.test \ fstat64-Xabbrev.gen.test fstat64-Xraw.gen.test \ fstat64-Xverbose.gen.test fstatat64.gen.test fstatfs.gen.test \ fstatfs64.gen.test fsync.gen.test fsync-y.gen.test \ ftruncate.gen.test ftruncate64.gen.test futimesat.gen.test \ get_mempolicy.gen.test getcpu.gen.test getcwd.gen.test \ - getdents.gen.test getdents64.gen.test getegid.gen.test \ - getegid32.gen.test geteuid.gen.test geteuid32.gen.test \ - getgid.gen.test getgid32.gen.test getgroups.gen.test \ + getdents.gen.test getdents-v.gen.test getdents64.gen.test \ + getdents64-v.gen.test getegid.gen.test getegid-creds.gen.test \ + getegid32.gen.test getegid32-creds.gen.test geteuid.gen.test \ + geteuid-creds.gen.test geteuid32.gen.test \ + geteuid32-creds.gen.test getgid.gen.test getgid-creds.gen.test \ + getgid32.gen.test getgid32-creds.gen.test getgroups.gen.test \ getgroups32.gen.test getpeername.gen.test getpgrp.gen.test \ - getpid.gen.test getppid.gen.test getrandom.gen.test \ - getresgid.gen.test getresgid32.gen.test getresuid.gen.test \ - getresuid32.gen.test getrlimit.gen.test getrusage.gen.test \ - getsid.gen.test getsockname.gen.test gettid.gen.test \ - getuid32.gen.test getxxid.gen.test group_req.gen.test \ - inet-cmsg.gen.test init_module.gen.test inotify.gen.test \ - inotify_init1.gen.test io_uring_enter.gen.test \ - io_uring_register.gen.test io_uring_setup.gen.test \ - ioctl_block.gen.test ioctl_dm.gen.test ioctl_dm-v.gen.test \ - ioctl_evdev.gen.test ioctl_evdev-v.gen.test \ - ioctl_inotify.gen.test ioctl_kvm_run.gen.test \ - ioctl_kvm_run-v.gen.test ioctl_kvm_run_auxstr_vcpu.gen.test \ - ioctl_loop.gen.test ioctl_loop-nv.gen.test \ - ioctl_loop-v.gen.test ioctl_mtd.gen.test ioctl_nbd.gen.test \ - ioctl_nsfs.gen.test ioctl_perf.gen.test ioctl_ptp.gen.test \ - ioctl_random.gen.test ioctl_rtc.gen.test ioctl_rtc-v.gen.test \ - ioctl_scsi.gen.test ioctl_sg_io_v3.gen.test \ - ioctl_sg_io_v4.gen.test ioctl_sock_gifconf.gen.test \ - ioctl_uffdio.gen.test ioctl_v4l2.gen.test ioperm.gen.test \ - iopl.gen.test ioprio.gen.test ioprio-Xabbrev.gen.test \ + getpgrp--pidns-translation.gen.test getpid.gen.test \ + getpid--pidns-translation.gen.test getppid.gen.test \ + getrandom.gen.test getresgid.gen.test getresgid32.gen.test \ + getresuid.gen.test getresuid32.gen.test getrlimit.gen.test \ + getrusage.gen.test getsid.gen.test \ + getsid--pidns-translation.gen.test getsockname.gen.test \ + gettid.gen.test getuid-creds.gen.test getuid32.gen.test \ + getuid32-creds.gen.test getxgid.gen.test getxpid.gen.test \ + getxuid.gen.test group_req.gen.test inet-cmsg.gen.test \ + init_module.gen.test inotify.gen.test inotify_init.gen.test \ + inotify_init1.gen.test inotify_init1-y.gen.test \ + io_uring_enter.gen.test io_uring_register.gen.test \ + io_uring_setup.gen.test ioctl_block.gen.test ioctl_dm.gen.test \ + ioctl_dm-v.gen.test ioctl_evdev.gen.test \ + ioctl_evdev-Xabbrev.gen.test ioctl_evdev-Xraw.gen.test \ + ioctl_evdev-Xverbose.gen.test ioctl_evdev-v.gen.test \ + ioctl_evdev-v-Xabbrev.gen.test ioctl_evdev-v-Xraw.gen.test \ + ioctl_evdev-v-Xverbose.gen.test \ + ioctl_evdev-success-Xabbrev.gen.test \ + ioctl_evdev-success-Xraw.gen.test \ + ioctl_evdev-success-Xverbose.gen.test \ + ioctl_evdev-success-v.gen.test \ + ioctl_evdev-success-v-Xabbrev.gen.test \ + ioctl_evdev-success-v-Xraw.gen.test \ + ioctl_evdev-success-v-Xverbose.gen.test ioctl_hdio.gen.test \ + ioctl_hdio-Xabbrev.gen.test ioctl_hdio-Xraw.gen.test \ + ioctl_hdio-Xverbose.gen.test ioctl_hdio-v.gen.test \ + ioctl_hdio-v-Xabbrev.gen.test ioctl_hdio-v-Xraw.gen.test \ + ioctl_hdio-v-Xverbose.gen.test ioctl_hdio-success.gen.test \ + ioctl_hdio-success-Xabbrev.gen.test \ + ioctl_hdio-success-Xraw.gen.test \ + ioctl_hdio-success-Xverbose.gen.test \ + ioctl_hdio-success-v.gen.test \ + ioctl_hdio-success-v-Xabbrev.gen.test \ + ioctl_hdio-success-v-Xraw.gen.test \ + ioctl_hdio-success-v-Xverbose.gen.test ioctl_inotify.gen.test \ + ioctl_kvm_run.gen.test ioctl_kvm_run-v.gen.test \ + ioctl_kvm_run_auxstr_vcpu.gen.test ioctl_loop.gen.test \ + ioctl_loop-nv.gen.test ioctl_loop-v.gen.test \ + ioctl_mtd.gen.test ioctl_nbd.gen.test ioctl_nsfs.gen.test \ + ioctl_perf.gen.test ioctl_perf-success.gen.test \ + ioctl_ptp.gen.test ioctl_random.gen.test ioctl_rtc.gen.test \ + ioctl_rtc-v.gen.test ioctl_scsi.gen.test \ + ioctl_sg_io_v3.gen.test ioctl_sg_io_v4.gen.test \ + ioctl_sock_gifconf.gen.test ioctl_tee.gen.test \ + ioctl_uffdio.gen.test ioctl_v4l2.gen.test \ + ioctl_v4l2-Xabbrev.gen.test ioctl_v4l2-Xraw.gen.test \ + ioctl_v4l2-Xverbose.gen.test ioctl_v4l2-v.gen.test \ + ioctl_v4l2-v-Xabbrev.gen.test ioctl_v4l2-v-Xraw.gen.test \ + ioctl_v4l2-v-Xverbose.gen.test ioctl_v4l2-success.gen.test \ + ioctl_v4l2-success-Xabbrev.gen.test \ + ioctl_v4l2-success-Xraw.gen.test \ + ioctl_v4l2-success-Xverbose.gen.test \ + ioctl_v4l2-success-v.gen.test \ + ioctl_v4l2-success-v-Xabbrev.gen.test \ + ioctl_v4l2-success-v-Xraw.gen.test \ + ioctl_v4l2-success-v-Xverbose.gen.test ioctl_watchdog.gen.test \ + ioperm.gen.test iopl.gen.test ioprio.gen.test \ + ioprio--pidns-translation.gen.test ioprio-Xabbrev.gen.test \ ioprio-Xraw.gen.test ioprio-Xverbose.gen.test ip_mreq.gen.test \ ipc.gen.test ipc_msg.gen.test ipc_msg-Xabbrev.gen.test \ ipc_msg-Xraw.gen.test ipc_msg-Xverbose.gen.test \ @@ -4704,34 +6356,47 @@ GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test \ ipc_sem-Xverbose.gen.test ipc_shm.gen.test \ ipc_shm-Xabbrev.gen.test ipc_shm-Xraw.gen.test \ ipc_shm-Xverbose.gen.test kcmp.gen.test kcmp-y.gen.test \ - kern_features.gen.test kernel_version.gen.test \ - kernel_version-Xabbrev.gen.test kernel_version-Xraw.gen.test \ - kernel_version-Xverbose.gen.test kexec_file_load.gen.test \ - kexec_load.gen.test keyctl.gen.test keyctl-Xabbrev.gen.test \ - keyctl-Xraw.gen.test keyctl-Xverbose.gen.test kill.gen.test \ + kcmp-y--pidns-translation.gen.test kern_features.gen.test \ + kernel_version.gen.test kernel_version-Xabbrev.gen.test \ + kernel_version-Xraw.gen.test kernel_version-Xverbose.gen.test \ + kexec_file_load.gen.test kexec_load.gen.test keyctl.gen.test \ + keyctl-Xabbrev.gen.test keyctl-Xraw.gen.test \ + keyctl-Xverbose.gen.test kill.gen.test \ + kill--pidns-translation.gen.test ksysent.gen.test \ lchown.gen.test lchown32.gen.test link.gen.test \ linkat.gen.test lookup_dcookie.gen.test lstat.gen.test \ - lstat64.gen.test madvise.gen.test mbind.gen.test \ - membarrier.gen.test memfd_create.gen.test \ - memfd_create-Xabbrev.gen.test memfd_create-Xraw.gen.test \ - memfd_create-Xverbose.gen.test migrate_pages.gen.test \ - mincore.gen.test mkdir.gen.test mkdirat.gen.test \ - mknod.gen.test mknodat.gen.test mlock.gen.test mlock2.gen.test \ + lstat64.gen.test madvise.gen.test \ + maybe_switch_current_tcp.gen.test \ + maybe_switch_current_tcp--quiet-thread-execve.gen.test \ + mbind.gen.test mbind-Xabbrev.gen.test mbind-Xraw.gen.test \ + mbind-Xverbose.gen.test membarrier.gen.test \ + memfd_create.gen.test memfd_create-Xabbrev.gen.test \ + memfd_create-Xraw.gen.test memfd_create-Xverbose.gen.test \ + migrate_pages.gen.test \ + migrate_pages--pidns-translation.gen.test mincore.gen.test \ + mkdir.gen.test mkdirat.gen.test mknod.gen.test \ + mknodat.gen.test mlock.gen.test mlock2.gen.test \ mlockall.gen.test mmap-Xabbrev.gen.test mmap-Xraw.gen.test \ mmap-Xverbose.gen.test mmap64.gen.test mmap64-Xabbrev.gen.test \ mmap64-Xraw.gen.test mmap64-Xverbose.gen.test mmsg.gen.test \ mmsg-silent.gen.test mmsg_name.gen.test mmsg_name-v.gen.test \ modify_ldt.gen.test mount.gen.test mount-Xabbrev.gen.test \ mount-Xraw.gen.test mount-Xverbose.gen.test \ - move_pages.gen.test move_pages-Xabbrev.gen.test \ - move_pages-Xraw.gen.test move_pages-Xverbose.gen.test \ - mq.gen.test mq_sendrecv.gen.test mq_sendrecv-read.gen.test \ + move_mount.gen.test move_mount-P.gen.test move_pages.gen.test \ + move_pages-Xabbrev.gen.test move_pages-Xraw.gen.test \ + move_pages-Xverbose.gen.test \ + move_pages--pidns-translation.gen.test mq.gen.test \ + mq_sendrecv.gen.test mq_sendrecv-read.gen.test \ mq_sendrecv-write.gen.test msg_control.gen.test \ msg_control-v.gen.test msg_name.gen.test munlockall.gen.test \ - nanosleep.gen.test net-icmp_filter.gen.test \ - net-packet_mreq.gen.test net-packet_mreq-Xabbrev.gen.test \ - net-packet_mreq-Xraw.gen.test \ + nanosleep.gen.test net--decode-fds-dev-netlink.gen.test \ + net--decode-fds-none-netlink.gen.test \ + net--decode-fds-path-netlink.gen.test \ + net--decode-fds-socket-netlink.gen.test \ + net-icmp_filter.gen.test net-packet_mreq.gen.test \ + net-packet_mreq-Xabbrev.gen.test net-packet_mreq-Xraw.gen.test \ net-packet_mreq-Xverbose.gen.test net-sockaddr.gen.test \ + net-sockaddr--pidns-translation.gen.test \ net-tpacket_req.gen.test net-tpacket_stats.gen.test \ net-yy-inet6.gen.test netlink_audit.gen.test \ netlink_crypto.gen.test netlink_generic.gen.test \ @@ -4750,7 +6415,8 @@ GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test \ nlattr_ifaddrmsg.gen.test nlattr_ifinfomsg.gen.test \ nlattr_ifla_af_spec.gen.test nlattr_ifla_brport.gen.test \ nlattr_ifla_linkinfo.gen.test nlattr_ifla_port.gen.test \ - nlattr_ifla_xdp.gen.test nlattr_inet_diag_msg.gen.test \ + nlattr_ifla_xdp.gen.test nlattr_ifla_xdp-y.gen.test \ + nlattr_inet_diag_msg.gen.test \ nlattr_inet_diag_req_compat.gen.test \ nlattr_inet_diag_req_v2.gen.test \ nlattr_mdba_mdb_entry.gen.test \ @@ -4767,31 +6433,50 @@ GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test \ old_mmap-v-none.gen.test oldfstat.gen.test oldlstat.gen.test \ oldselect.gen.test oldselect-P.gen.test \ oldselect-efault.gen.test oldselect-efault-P.gen.test \ - oldstat.gen.test open.gen.test openat.gen.test \ - orphaned_process_group.gen.test osf_utimes.gen.test \ - pause.gen.test perf_event_open.gen.test \ + oldstat.gen.test open.gen.test open_tree.gen.test \ + open_tree-P.gen.test openat.gen.test openat2.gen.test \ + openat2-Xabbrev.gen.test openat2-Xraw.gen.test \ + openat2-Xverbose.gen.test openat2-v.gen.test \ + openat2-v-y.gen.test openat2-v-y-Xabbrev.gen.test \ + openat2-v-y-Xraw.gen.test openat2-v-y-Xverbose.gen.test \ + openat2-y.gen.test orphaned_process_group.gen.test \ + osf_utimes.gen.test pause.gen.test perf_event_open.gen.test \ perf_event_open_nonverbose.gen.test \ perf_event_open_unabbrev.gen.test personality-Xabbrev.gen.test \ personality-Xraw.gen.test personality-Xverbose.gen.test \ - pidfd_send_signal.gen.test pipe2.gen.test pkey_alloc.gen.test \ - pkey_free.gen.test pkey_mprotect.gen.test ppoll.gen.test \ - ppoll-P.gen.test ppoll-v.gen.test pread64-pwrite64.gen.test \ - preadv.gen.test preadv-pwritev.gen.test \ - preadv2-pwritev2.gen.test printpath-umovestr.gen.test \ + pidfd_getfd.gen.test pidfd_getfd-y.gen.test \ + pidfd_getfd-yy.gen.test pidfd_open.gen.test \ + pidfd_open--decode-fd-path.gen.test \ + pidfd_open--decode-fd-pidfd.gen.test \ + pidfd_open--decode-fd-socket.gen.test pidfd_open-P.gen.test \ + pidfd_open-y.gen.test pidfd_open-yy.gen.test \ + pidfd_open--pidns-translation.gen.test \ + pidfd_send_signal.gen.test \ + pidfd_send_signal--pidns-translation.gen.test pipe2.gen.test \ + pkey_alloc.gen.test pkey_free.gen.test pkey_mprotect.gen.test \ + ppoll.gen.test ppoll-P.gen.test ppoll-v.gen.test \ + pread64-pwrite64.gen.test preadv.gen.test \ + preadv-pwritev.gen.test preadv2-pwritev2.gen.test \ + printpath-umovestr.gen.test \ printpath-umovestr-peekdata.gen.test \ printpath-umovestr-undumpable.gen.test \ printsignal-Xabbrev.gen.test printsignal-Xraw.gen.test \ printsignal-Xverbose.gen.test printstr.gen.test \ printstrn-umoven.gen.test printstrn-umoven-peekdata.gen.test \ printstrn-umoven-undumpable.gen.test prlimit64.gen.test \ - process_vm_readv.gen.test process_vm_writev.gen.test \ + prlimit64--pidns-translation.gen.test \ + process_vm_readv.gen.test \ + process_vm_readv--pidns-translation.gen.test \ + process_vm_writev.gen.test \ + process_vm_writev--pidns-translation.gen.test \ pselect6.gen.test ptrace.gen.test ptrace_syscall_info.gen.test \ pwritev.gen.test quotactl.gen.test quotactl-Xabbrev.gen.test \ quotactl-Xraw.gen.test quotactl-Xverbose.gen.test \ quotactl-v.gen.test quotactl-xfs.gen.test \ quotactl-xfs-v.gen.test read-write.gen.test readahead.gen.test \ readdir.gen.test readlink.gen.test readlinkat.gen.test \ - reboot.gen.test recvfrom.gen.test recvmmsg-timeout.gen.test \ + reboot.gen.test recv-MSG_TRUNC.gen.test recvfrom.gen.test \ + recvfrom-MSG_TRUNC.gen.test recvmmsg-timeout.gen.test \ recvmsg.gen.test regex.gen.test remap_file_pages.gen.test \ remap_file_pages-Xabbrev.gen.test \ remap_file_pages-Xraw.gen.test \ @@ -4799,72 +6484,133 @@ GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test \ renameat.gen.test renameat2.gen.test request_key.gen.test \ riscv_flush_icache.gen.test rmdir.gen.test \ rt_sigpending.gen.test rt_sigprocmask.gen.test \ - rt_sigqueueinfo.gen.test rt_sigreturn.gen.test \ - rt_sigsuspend.gen.test rt_sigtimedwait.gen.test \ - rt_tgsigqueueinfo.gen.test s390_guarded_storage.gen.test \ - s390_guarded_storage-v.gen.test \ + rt_sigqueueinfo.gen.test \ + rt_sigqueueinfo--pidns-translation.gen.test \ + rt_sigreturn.gen.test rt_sigsuspend.gen.test \ + rt_sigtimedwait.gen.test rt_tgsigqueueinfo.gen.test \ + rt_tgsigqueueinfo--pidns-translation.gen.test \ + s390_guarded_storage.gen.test s390_guarded_storage-v.gen.test \ s390_pci_mmio_read_write.gen.test s390_runtime_instr.gen.test \ s390_sthyi.gen.test s390_sthyi-v.gen.test sched.gen.test \ sched_get_priority_mxx.gen.test sched_rr_get_interval.gen.test \ - sched_xetaffinity.gen.test sched_xetattr.gen.test \ - sched_xetparam.gen.test sched_xetscheduler.gen.test \ + sched_xetaffinity.gen.test \ + sched_xetaffinity--pidns-translation.gen.test \ + sched_xetattr.gen.test \ + sched_xetattr--pidns-translation.gen.test \ + sched_xetparam.gen.test \ + sched_xetparam--pidns-translation.gen.test \ + sched_xetscheduler.gen.test \ + sched_xetscheduler--pidns-translation.gen.test \ sched_yield.gen.test seccomp-filter.gen.test \ seccomp-filter-v.gen.test seccomp_get_action_avail.gen.test \ select.gen.test select-P.gen.test semop.gen.test \ - sendfile.gen.test sendfile64.gen.test set_mempolicy.gen.test \ - setdomainname.gen.test setfsgid.gen.test setfsgid32.gen.test \ - setfsuid.gen.test setfsuid32.gen.test setgid.gen.test \ - setgid32.gen.test setgroups.gen.test setgroups32.gen.test \ - sethostname.gen.test setns.gen.test setregid.gen.test \ - setregid32.gen.test setresgid.gen.test setresgid32.gen.test \ - setresuid.gen.test setresuid32.gen.test setreuid.gen.test \ - setreuid32.gen.test setrlimit.gen.test \ - setrlimit-Xabbrev.gen.test setrlimit-Xraw.gen.test \ - setrlimit-Xverbose.gen.test setuid.gen.test setuid32.gen.test \ - shmxt.gen.test shutdown.gen.test sigaction.gen.test \ - siginfo.gen.test signal.gen.test signal_receive.gen.test \ - signalfd4.gen.test sigpending.gen.test sigprocmask.gen.test \ - sigreturn.gen.test sigsuspend.gen.test so_error.gen.test \ - so_linger.gen.test so_peercred.gen.test \ - so_peercred-Xabbrev.gen.test so_peercred-Xraw.gen.test \ - so_peercred-Xverbose.gen.test sock_filter-v.gen.test \ + semop-indirect.gen.test semtimedop.gen.test sendfile.gen.test \ + sendfile64.gen.test set_mempolicy.gen.test \ + set_mempolicy-Xabbrev.gen.test set_mempolicy-Xraw.gen.test \ + set_mempolicy-Xverbose.gen.test setdomainname.gen.test \ + setfsgid.gen.test setfsgid32.gen.test setfsuid.gen.test \ + setfsuid32.gen.test setgid.gen.test setgid32.gen.test \ + setgroups.gen.test setgroups32.gen.test sethostname.gen.test \ + setns.gen.test setregid.gen.test setregid32.gen.test \ + setresgid.gen.test setresgid32.gen.test setresuid.gen.test \ + setresuid32.gen.test setreuid.gen.test setreuid32.gen.test \ + setrlimit.gen.test setrlimit-Xabbrev.gen.test \ + setrlimit-Xraw.gen.test setrlimit-Xverbose.gen.test \ + setuid.gen.test setuid32.gen.test shmxt.gen.test \ + shutdown.gen.test sigaction.gen.test siginfo.gen.test \ + signal.gen.test signal_receive.gen.test \ + signal_receive--pidns-translation.gen.test signalfd4.gen.test \ + sigpending.gen.test sigprocmask.gen.test sigreturn.gen.test \ + sigsuspend.gen.test so_error.gen.test so_linger.gen.test \ + so_peercred.gen.test so_peercred-Xabbrev.gen.test \ + so_peercred-Xraw.gen.test so_peercred-Xverbose.gen.test \ + so_peercred--pidns-translation.gen.test sock_filter-v.gen.test \ sock_filter-v-Xabbrev.gen.test sock_filter-v-Xraw.gen.test \ sock_filter-v-Xverbose.gen.test sockaddr_xlat-Xabbrev.gen.test \ sockaddr_xlat-Xraw.gen.test sockaddr_xlat-Xverbose.gen.test \ socketcall.gen.test sockopt-sol_netlink.gen.test \ sockopt-timestamp.gen.test splice.gen.test stat.gen.test \ stat64.gen.test statfs.gen.test statfs64.gen.test \ - statx.gen.test swap.gen.test sxetmask.gen.test \ - symlink.gen.test symlinkat.gen.test sync.gen.test \ - sync_file_range.gen.test sync_file_range2.gen.test \ - sysinfo.gen.test syslog.gen.test tee.gen.test time.gen.test \ + status-all.gen.test status-failed.gen.test \ + status-failed-long.gen.test status-failed-status.gen.test \ + status-none.gen.test status-successful.gen.test \ + status-successful-long.gen.test \ + status-successful-status.gen.test status-unfinished.gen.test \ + statx.gen.test strace--absolute-timestamps.gen.test \ + strace--absolute-timestamps-format-time.gen.test \ + strace--absolute-timestamps-format-time-precision-s.gen.test \ + strace--absolute-timestamps-format-time-precision-ms.gen.test \ + strace--absolute-timestamps-format-time-precision-us.gen.test \ + strace--absolute-timestamps-format-time-precision-ns.gen.test \ + strace--absolute-timestamps-format-unix-precision-s.gen.test \ + strace--absolute-timestamps-format-unix-precision-ms.gen.test \ + strace--absolute-timestamps-format-unix-precision-us.gen.test \ + strace--absolute-timestamps-format-unix-precision-ns.gen.test \ + strace--follow-forks-output-separately.gen.test \ + strace--relative-timestamps.gen.test \ + strace--relative-timestamps-s.gen.test \ + strace--relative-timestamps-ms.gen.test \ + strace--relative-timestamps-us.gen.test \ + strace--relative-timestamps-ns.gen.test \ + strace--syscall-times.gen.test \ + strace--syscall-times-s.gen.test \ + strace--syscall-times-ms.gen.test \ + strace--syscall-times-us.gen.test \ + strace--syscall-times-ns.gen.test \ + strace--strings-in-hex.gen.test \ + strace--strings-in-hex-all.gen.test \ + strace--strings-in-hex-non-ascii.gen.test \ + strace--timestamps.gen.test strace--timestamps-time.gen.test \ + strace--timestamps-time-s.gen.test \ + strace--timestamps-time-ms.gen.test \ + strace--timestamps-time-us.gen.test \ + strace--timestamps-time-ns.gen.test \ + strace--timestamps-unix-s.gen.test \ + strace--timestamps-unix-ms.gen.test \ + strace--timestamps-unix-us.gen.test \ + strace--timestamps-unix-ns.gen.test strace-n.gen.test \ + strace-x.gen.test strace-xx.gen.test swap.gen.test \ + sxetmask.gen.test symlink.gen.test symlinkat.gen.test \ + sync.gen.test sync_file_range.gen.test \ + sync_file_range2.gen.test sysinfo.gen.test syslog.gen.test \ + tee.gen.test tgkill.gen.test \ + tgkill--pidns-translation.gen.test \ + threads-execve--quiet-thread-execve.gen.test \ + threads-execve-q.gen.test threads-execve-qq.gen.test \ + threads-execve-qqq.gen.test time.gen.test \ timer_create.gen.test timer_xettime.gen.test \ timerfd_xettime.gen.test times.gen.test times-fail.gen.test \ - trace_fstat.gen.test trace_fstatfs.gen.test \ - trace_lstat.gen.test trace_personality_32.gen.test \ - trace_personality_64.gen.test \ + tkill.gen.test tkill--pidns-translation.gen.test \ + trace_clock.gen.test trace_creds.gen.test trace_fstat.gen.test \ + trace_fstatfs.gen.test trace_lstat.gen.test \ + trace_personality_32.gen.test trace_personality_64.gen.test \ trace_personality_regex_32.gen.test \ trace_personality_regex_64.gen.test \ trace_personality_regex_x32.gen.test \ trace_personality_x32.gen.test trace_question.gen.test \ trace_stat.gen.test trace_stat_like.gen.test \ trace_statfs.gen.test trace_statfs_like.gen.test \ - truncate.gen.test truncate64.gen.test ugetrlimit.gen.test \ - umask.gen.test umoven-illptr.gen.test umovestr-illptr.gen.test \ - umovestr3.gen.test unlink.gen.test unlinkat.gen.test \ - unshare.gen.test userfaultfd.gen.test ustat.gen.test \ - utime.gen.test utimensat.gen.test utimensat-Xabbrev.gen.test \ - utimensat-Xraw.gen.test utimensat-Xverbose.gen.test \ - utimes.gen.test vfork-f.gen.test vhangup.gen.test \ - vmsplice.gen.test wait4.gen.test wait4-v.gen.test \ - waitid.gen.test waitid-v.gen.test waitpid.gen.test \ - xattr.gen.test xattr-strings.gen.test xet_robust_list.gen.test \ - xetitimer.gen.test xetpgid.gen.test xetpriority.gen.test \ + trie_test.gen.test truncate.gen.test truncate64.gen.test \ + ugetrlimit.gen.test umask.gen.test umoven-illptr.gen.test \ + umovestr-illptr.gen.test umovestr3.gen.test \ + umovestr_cached_adjacent.gen.test unlink.gen.test \ + unlinkat.gen.test unshare.gen.test userfaultfd.gen.test \ + ustat.gen.test utime.gen.test utimensat.gen.test \ + utimensat-Xabbrev.gen.test utimensat-Xraw.gen.test \ + utimensat-Xverbose.gen.test utimes.gen.test vfork-f.gen.test \ + vhangup.gen.test vmsplice.gen.test wait4.gen.test \ + wait4-v.gen.test waitid.gen.test waitid-v.gen.test \ + waitpid.gen.test xattr.gen.test xattr-strings.gen.test \ + xet_robust_list.gen.test \ + xet_robust_list--pidns-translation.gen.test xetitimer.gen.test \ + xetpgid.gen.test xetpgid--pidns-translation.gen.test \ + xetpriority.gen.test xetpriority--pidns-translation.gen.test \ xettimeofday.gen.test @ENABLE_STACKTRACE_FALSE@STACKTRACE_TESTS = @ENABLE_STACKTRACE_TRUE@STACKTRACE_TESTS = strace-k.test \ -@ENABLE_STACKTRACE_TRUE@ $(am__append_1) +@ENABLE_STACKTRACE_TRUE@ strace-k-p.test $(am__append_1) DECODER_TESTS = \ + bpf-success-long-y.test \ bpf-success-v.test \ bpf-success.test \ brk.test \ @@ -4877,17 +6623,21 @@ DECODER_TESTS = \ btrfs-wX.test \ caps-abbrev.test \ caps.test \ + clone-flags.test \ + clone3-success.test \ eventfd.test \ execve-v.test \ execve.test \ fadvise64.test \ + faccessat.test \ + faccessat2.test \ futex.test \ getuid.test \ int_0x80.test \ + inotify_init-y.test \ ioctl.test \ - ioctl_evdev-success-v.test \ + ioctl_block--pidns-translation.test \ ioctl_evdev-success.test \ - ioctl_perf-success.test \ ipc_msgbuf.test \ kern_features-fault.test \ llseek.test \ @@ -4929,6 +6679,7 @@ DECODER_TESTS = \ seccomp-strict.test \ sigaltstack.test \ sun_path.test \ + syslog-success.test \ uio.test \ umount.test \ umount2.test \ @@ -4944,7 +6695,6 @@ MISC_TESTS = \ attach-f-p.test \ attach-p-cmd.test \ bexecve.test \ - clone_parent.test \ clone_ptrace.test \ count-f.test \ count.test \ @@ -4953,20 +6703,24 @@ MISC_TESTS = \ detach-sleeping.test \ detach-stopped.test \ fflush.test \ + filter_seccomp-perf.test \ filter-unavailable.test \ filtering_fd-syntax.test \ filtering_syscall-syntax.test \ first_exec_failure.test \ + fork--pidns-translation.test \ get_regs.test \ + gettid--pidns-translation.test \ inject-nf.test \ interactive_block.test \ kill_child.test \ - ksysent.test \ localtime.test \ looping_threads.test \ + netlink_audit--pidns-translation.test \ opipe.test \ options-syntax.test \ pc.test \ + pidns-cache.test \ printpath-umovestr-legacy.test \ printstrn-umoven-legacy.test \ qual_fault-syntax.test \ @@ -4986,8 +6740,16 @@ MISC_TESTS = \ restart_syscall.test \ sigblock.test \ sigign.test \ + status-detached.test \ + status-none-threads.test \ + status-unfinished-threads.test \ strace-C.test \ + strace-D.test \ + strace-DD.test \ + strace-DDD.test \ strace-E.test \ + strace-E-override.test \ + strace-E-unset.test \ strace-S.test \ strace-T.test \ strace-V.test \ @@ -5000,6 +6762,7 @@ MISC_TESTS = \ strace-ttt.test \ termsig.test \ threads-execve.test \ + umovestr_cached.test \ # end of MISC_TESTS XFAIL_TESTS_ = @@ -5027,7 +6790,10 @@ EXTRA_DIST = \ eventfd.expected \ fadvise.h \ fcntl-common.c \ + filter_seccomp.in \ + filter_seccomp.sh \ filter-unavailable.expected \ + fork--pidns-translation.awk \ fstatat.c \ fstatx.c \ gen_pure_executables.sh \ @@ -5036,17 +6802,20 @@ EXTRA_DIST = \ getresugid.c \ init.sh \ init_delete_module.h \ + ioctl-success.sh \ ioctl_kvm_run_common.c \ ipc.sh \ + kernel_old_timespec.h \ + kernel_old_timex.h \ ksysent.sed \ lstatx.c \ match.awk \ net.expected \ - netlink_sock_diag-v.sh \ nlattr_ifla.h \ pipe.expected \ print_user_desc.c \ printsignal.c \ + printxval.c \ process_vm_readv_writev.c \ pure_executables.list \ qual_fault-exit_group.expected \ @@ -5060,6 +6829,7 @@ EXTRA_DIST = \ run.sh \ sched.in \ scno_tampering.sh \ + semop-common.c \ setfsugid.c \ setresugid.c \ setreugid.c \ @@ -5068,18 +6838,37 @@ EXTRA_DIST = \ sockaddr_xlat.c \ sockname.c \ stack-fcall.h \ + status-detached.expected \ + strace--follow-forks-output-separately.expected \ + strace--relative-timestamps.expected \ + strace--relative-timestamps-s.expected \ + strace--relative-timestamps-ms.expected \ + strace--relative-timestamps-us.expected \ + strace--relative-timestamps-ns.expected \ + strace--syscall-times.expected \ + strace--syscall-times-s.expected \ + strace--syscall-times-ms.expected \ + strace--syscall-times-us.expected \ + strace--syscall-times-ns.expected \ strace-C.expected \ + strace-D.expected \ + strace-DDD.expected \ strace-E.expected \ + strace-E-unset.expected \ strace-T.expected \ strace-ff.expected \ strace-k-demangle.expected \ strace-k-demangle.test \ + strace-k-p.expected \ + strace-k-p.test \ strace-k.expected \ strace-k.test \ strace-r.expected \ strace.supp \ sun_path.expected \ syntax.sh \ + trace_clock.in \ + trace_creds.in \ trace_fstat.in \ trace_fstatfs.in \ trace_lstat.in \ @@ -5100,6 +6889,7 @@ EXTRA_DIST = \ unix-pair-send-recv.expected \ unix-pair-sendto-recvfrom.expected \ xchownx.c \ + xgetdents.c \ xgetrlimit.c \ xselect.c \ xstatfs.c \ @@ -5233,6 +7023,10 @@ block_reset_raise_run$(EXEEXT): $(block_reset_raise_run_OBJECTS) $(block_reset_r @rm -f block_reset_raise_run$(EXEEXT) $(AM_V_CCLD)$(LINK) $(block_reset_raise_run_OBJECTS) $(block_reset_raise_run_LDADD) $(LIBS) +block_reset_run$(EXEEXT): $(block_reset_run_OBJECTS) $(block_reset_run_DEPENDENCIES) $(EXTRA_block_reset_run_DEPENDENCIES) + @rm -f block_reset_run$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(block_reset_run_OBJECTS) $(block_reset_run_LDADD) $(LIBS) + bpf$(EXEEXT): $(bpf_OBJECTS) $(bpf_DEPENDENCIES) $(EXTRA_bpf_DEPENDENCIES) @rm -f bpf$(EXEEXT) $(AM_V_CCLD)$(LINK) $(bpf_OBJECTS) $(bpf_LDADD) $(LIBS) @@ -5257,6 +7051,10 @@ bpf-success$(EXEEXT): $(bpf_success_OBJECTS) $(bpf_success_DEPENDENCIES) $(EXTRA @rm -f bpf-success$(EXEEXT) $(AM_V_CCLD)$(LINK) $(bpf_success_OBJECTS) $(bpf_success_LDADD) $(LIBS) +bpf-success-long-y$(EXEEXT): $(bpf_success_long_y_OBJECTS) $(bpf_success_long_y_DEPENDENCIES) $(EXTRA_bpf_success_long_y_DEPENDENCIES) + @rm -f bpf-success-long-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(bpf_success_long_y_OBJECTS) $(bpf_success_long_y_LDADD) $(LIBS) + bpf-success-v$(EXEEXT): $(bpf_success_v_OBJECTS) $(bpf_success_v_DEPENDENCIES) $(EXTRA_bpf_success_v_DEPENDENCIES) @rm -f bpf-success-v$(EXEEXT) $(AM_V_CCLD)$(LINK) $(bpf_success_v_OBJECTS) $(bpf_success_v_LDADD) $(LIBS) @@ -5317,14 +7115,94 @@ clock_xettime$(EXEEXT): $(clock_xettime_OBJECTS) $(clock_xettime_DEPENDENCIES) $ @rm -f clock_xettime$(EXEEXT) $(AM_V_CCLD)$(LINK) $(clock_xettime_OBJECTS) $(clock_xettime_LDADD) $(LIBS) +clone-flags$(EXEEXT): $(clone_flags_OBJECTS) $(clone_flags_DEPENDENCIES) $(EXTRA_clone_flags_DEPENDENCIES) + @rm -f clone-flags$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone_flags_OBJECTS) $(clone_flags_LDADD) $(LIBS) + +clone3$(EXEEXT): $(clone3_OBJECTS) $(clone3_DEPENDENCIES) $(EXTRA_clone3_DEPENDENCIES) + @rm -f clone3$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone3_OBJECTS) $(clone3_LDADD) $(LIBS) + +clone3-Xabbrev$(EXEEXT): $(clone3_Xabbrev_OBJECTS) $(clone3_Xabbrev_DEPENDENCIES) $(EXTRA_clone3_Xabbrev_DEPENDENCIES) + @rm -f clone3-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone3_Xabbrev_OBJECTS) $(clone3_Xabbrev_LDADD) $(LIBS) + +clone3-Xraw$(EXEEXT): $(clone3_Xraw_OBJECTS) $(clone3_Xraw_DEPENDENCIES) $(EXTRA_clone3_Xraw_DEPENDENCIES) + @rm -f clone3-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone3_Xraw_OBJECTS) $(clone3_Xraw_LDADD) $(LIBS) + +clone3-Xverbose$(EXEEXT): $(clone3_Xverbose_OBJECTS) $(clone3_Xverbose_DEPENDENCIES) $(EXTRA_clone3_Xverbose_DEPENDENCIES) + @rm -f clone3-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone3_Xverbose_OBJECTS) $(clone3_Xverbose_LDADD) $(LIBS) + +clone3-success$(EXEEXT): $(clone3_success_OBJECTS) $(clone3_success_DEPENDENCIES) $(EXTRA_clone3_success_DEPENDENCIES) + @rm -f clone3-success$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone3_success_OBJECTS) $(clone3_success_LDADD) $(LIBS) + +clone3-success-Xabbrev$(EXEEXT): $(clone3_success_Xabbrev_OBJECTS) $(clone3_success_Xabbrev_DEPENDENCIES) $(EXTRA_clone3_success_Xabbrev_DEPENDENCIES) + @rm -f clone3-success-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone3_success_Xabbrev_OBJECTS) $(clone3_success_Xabbrev_LDADD) $(LIBS) + +clone3-success-Xraw$(EXEEXT): $(clone3_success_Xraw_OBJECTS) $(clone3_success_Xraw_DEPENDENCIES) $(EXTRA_clone3_success_Xraw_DEPENDENCIES) + @rm -f clone3-success-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone3_success_Xraw_OBJECTS) $(clone3_success_Xraw_LDADD) $(LIBS) + +clone3-success-Xverbose$(EXEEXT): $(clone3_success_Xverbose_OBJECTS) $(clone3_success_Xverbose_DEPENDENCIES) $(EXTRA_clone3_success_Xverbose_DEPENDENCIES) + @rm -f clone3-success-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone3_success_Xverbose_OBJECTS) $(clone3_success_Xverbose_LDADD) $(LIBS) + clone_parent$(EXEEXT): $(clone_parent_OBJECTS) $(clone_parent_DEPENDENCIES) $(EXTRA_clone_parent_DEPENDENCIES) @rm -f clone_parent$(EXEEXT) $(AM_V_CCLD)$(LINK) $(clone_parent_OBJECTS) $(clone_parent_LDADD) $(LIBS) +clone_parent--quiet-exit$(EXEEXT): $(clone_parent__quiet_exit_OBJECTS) $(clone_parent__quiet_exit_DEPENDENCIES) $(EXTRA_clone_parent__quiet_exit_DEPENDENCIES) + @rm -f clone_parent--quiet-exit$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone_parent__quiet_exit_OBJECTS) $(clone_parent__quiet_exit_LDADD) $(LIBS) + +clone_parent-q$(EXEEXT): $(clone_parent_q_OBJECTS) $(clone_parent_q_DEPENDENCIES) $(EXTRA_clone_parent_q_DEPENDENCIES) + @rm -f clone_parent-q$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone_parent_q_OBJECTS) $(clone_parent_q_LDADD) $(LIBS) + +clone_parent-qq$(EXEEXT): $(clone_parent_qq_OBJECTS) $(clone_parent_qq_DEPENDENCIES) $(EXTRA_clone_parent_qq_DEPENDENCIES) + @rm -f clone_parent-qq$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone_parent_qq_OBJECTS) $(clone_parent_qq_LDADD) $(LIBS) + clone_ptrace$(EXEEXT): $(clone_ptrace_OBJECTS) $(clone_ptrace_DEPENDENCIES) $(EXTRA_clone_ptrace_DEPENDENCIES) @rm -f clone_ptrace$(EXEEXT) $(AM_V_CCLD)$(LINK) $(clone_ptrace_OBJECTS) $(clone_ptrace_LDADD) $(LIBS) +clone_ptrace--quiet-attach$(EXEEXT): $(clone_ptrace__quiet_attach_OBJECTS) $(clone_ptrace__quiet_attach_DEPENDENCIES) $(EXTRA_clone_ptrace__quiet_attach_DEPENDENCIES) + @rm -f clone_ptrace--quiet-attach$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone_ptrace__quiet_attach_OBJECTS) $(clone_ptrace__quiet_attach_LDADD) $(LIBS) + +clone_ptrace--quiet-exit$(EXEEXT): $(clone_ptrace__quiet_exit_OBJECTS) $(clone_ptrace__quiet_exit_DEPENDENCIES) $(EXTRA_clone_ptrace__quiet_exit_DEPENDENCIES) + @rm -f clone_ptrace--quiet-exit$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone_ptrace__quiet_exit_OBJECTS) $(clone_ptrace__quiet_exit_LDADD) $(LIBS) + +clone_ptrace-q$(EXEEXT): $(clone_ptrace_q_OBJECTS) $(clone_ptrace_q_DEPENDENCIES) $(EXTRA_clone_ptrace_q_DEPENDENCIES) + @rm -f clone_ptrace-q$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone_ptrace_q_OBJECTS) $(clone_ptrace_q_LDADD) $(LIBS) + +clone_ptrace-qq$(EXEEXT): $(clone_ptrace_qq_OBJECTS) $(clone_ptrace_qq_DEPENDENCIES) $(EXTRA_clone_ptrace_qq_DEPENDENCIES) + @rm -f clone_ptrace-qq$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(clone_ptrace_qq_OBJECTS) $(clone_ptrace_qq_LDADD) $(LIBS) + +close_range$(EXEEXT): $(close_range_OBJECTS) $(close_range_DEPENDENCIES) $(EXTRA_close_range_DEPENDENCIES) + @rm -f close_range$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(close_range_OBJECTS) $(close_range_LDADD) $(LIBS) + +close_range-P$(EXEEXT): $(close_range_P_OBJECTS) $(close_range_P_DEPENDENCIES) $(EXTRA_close_range_P_DEPENDENCIES) + @rm -f close_range-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(close_range_P_OBJECTS) $(close_range_P_LDADD) $(LIBS) + +close_range-y$(EXEEXT): $(close_range_y_OBJECTS) $(close_range_y_DEPENDENCIES) $(EXTRA_close_range_y_DEPENDENCIES) + @rm -f close_range-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(close_range_y_OBJECTS) $(close_range_y_LDADD) $(LIBS) + +close_range-yy$(EXEEXT): $(close_range_yy_OBJECTS) $(close_range_yy_DEPENDENCIES) $(EXTRA_close_range_yy_DEPENDENCIES) + @rm -f close_range-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(close_range_yy_OBJECTS) $(close_range_yy_LDADD) $(LIBS) + copy_file_range$(EXEEXT): $(copy_file_range_OBJECTS) $(copy_file_range_DEPENDENCIES) $(EXTRA_copy_file_range_DEPENDENCIES) @rm -f copy_file_range$(EXEEXT) $(AM_V_CCLD)$(LINK) $(copy_file_range_OBJECTS) $(copy_file_range_LDADD) $(LIBS) @@ -5345,6 +7223,18 @@ delete_module$(EXEEXT): $(delete_module_OBJECTS) $(delete_module_DEPENDENCIES) $ @rm -f delete_module$(EXEEXT) $(AM_V_CCLD)$(LINK) $(delete_module_OBJECTS) $(delete_module_LDADD) $(LIBS) +dev--decode-fds-dev$(EXEEXT): $(dev__decode_fds_dev_OBJECTS) $(dev__decode_fds_dev_DEPENDENCIES) $(EXTRA_dev__decode_fds_dev_DEPENDENCIES) + @rm -f dev--decode-fds-dev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dev__decode_fds_dev_OBJECTS) $(dev__decode_fds_dev_LDADD) $(LIBS) + +dev--decode-fds-path$(EXEEXT): $(dev__decode_fds_path_OBJECTS) $(dev__decode_fds_path_DEPENDENCIES) $(EXTRA_dev__decode_fds_path_DEPENDENCIES) + @rm -f dev--decode-fds-path$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dev__decode_fds_path_OBJECTS) $(dev__decode_fds_path_LDADD) $(LIBS) + +dev--decode-fds-socket$(EXEEXT): $(dev__decode_fds_socket_OBJECTS) $(dev__decode_fds_socket_DEPENDENCIES) $(EXTRA_dev__decode_fds_socket_DEPENDENCIES) + @rm -f dev--decode-fds-socket$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dev__decode_fds_socket_OBJECTS) $(dev__decode_fds_socket_LDADD) $(LIBS) + dev-yy$(EXEEXT): $(dev_yy_OBJECTS) $(dev_yy_DEPENDENCIES) $(EXTRA_dev_yy_DEPENDENCIES) @rm -f dev-yy$(EXEEXT) $(AM_V_CCLD)$(LINK) $(dev_yy_OBJECTS) $(dev_yy_LDADD) $(LIBS) @@ -5353,14 +7243,50 @@ dup$(EXEEXT): $(dup_OBJECTS) $(dup_DEPENDENCIES) $(EXTRA_dup_DEPENDENCIES) @rm -f dup$(EXEEXT) $(AM_V_CCLD)$(LINK) $(dup_OBJECTS) $(dup_LDADD) $(LIBS) +dup-P$(EXEEXT): $(dup_P_OBJECTS) $(dup_P_DEPENDENCIES) $(EXTRA_dup_P_DEPENDENCIES) + @rm -f dup-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dup_P_OBJECTS) $(dup_P_LDADD) $(LIBS) + +dup-y$(EXEEXT): $(dup_y_OBJECTS) $(dup_y_DEPENDENCIES) $(EXTRA_dup_y_DEPENDENCIES) + @rm -f dup-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dup_y_OBJECTS) $(dup_y_LDADD) $(LIBS) + +dup-yy$(EXEEXT): $(dup_yy_OBJECTS) $(dup_yy_DEPENDENCIES) $(EXTRA_dup_yy_DEPENDENCIES) + @rm -f dup-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dup_yy_OBJECTS) $(dup_yy_LDADD) $(LIBS) + dup2$(EXEEXT): $(dup2_OBJECTS) $(dup2_DEPENDENCIES) $(EXTRA_dup2_DEPENDENCIES) @rm -f dup2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(dup2_OBJECTS) $(dup2_LDADD) $(LIBS) +dup2-P$(EXEEXT): $(dup2_P_OBJECTS) $(dup2_P_DEPENDENCIES) $(EXTRA_dup2_P_DEPENDENCIES) + @rm -f dup2-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dup2_P_OBJECTS) $(dup2_P_LDADD) $(LIBS) + +dup2-y$(EXEEXT): $(dup2_y_OBJECTS) $(dup2_y_DEPENDENCIES) $(EXTRA_dup2_y_DEPENDENCIES) + @rm -f dup2-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dup2_y_OBJECTS) $(dup2_y_LDADD) $(LIBS) + +dup2-yy$(EXEEXT): $(dup2_yy_OBJECTS) $(dup2_yy_DEPENDENCIES) $(EXTRA_dup2_yy_DEPENDENCIES) + @rm -f dup2-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dup2_yy_OBJECTS) $(dup2_yy_LDADD) $(LIBS) + dup3$(EXEEXT): $(dup3_OBJECTS) $(dup3_DEPENDENCIES) $(EXTRA_dup3_DEPENDENCIES) @rm -f dup3$(EXEEXT) $(AM_V_CCLD)$(LINK) $(dup3_OBJECTS) $(dup3_LDADD) $(LIBS) +dup3-P$(EXEEXT): $(dup3_P_OBJECTS) $(dup3_P_DEPENDENCIES) $(EXTRA_dup3_P_DEPENDENCIES) + @rm -f dup3-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dup3_P_OBJECTS) $(dup3_P_LDADD) $(LIBS) + +dup3-y$(EXEEXT): $(dup3_y_OBJECTS) $(dup3_y_DEPENDENCIES) $(EXTRA_dup3_y_DEPENDENCIES) + @rm -f dup3-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dup3_y_OBJECTS) $(dup3_y_LDADD) $(LIBS) + +dup3-yy$(EXEEXT): $(dup3_yy_OBJECTS) $(dup3_yy_DEPENDENCIES) $(EXTRA_dup3_yy_DEPENDENCIES) + @rm -f dup3-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(dup3_yy_OBJECTS) $(dup3_yy_LDADD) $(LIBS) + epoll_create$(EXEEXT): $(epoll_create_OBJECTS) $(epoll_create_DEPENDENCIES) $(EXTRA_epoll_create_DEPENDENCIES) @rm -f epoll_create$(EXEEXT) $(AM_V_CCLD)$(LINK) $(epoll_create_OBJECTS) $(epoll_create_LDADD) $(LIBS) @@ -5409,6 +7335,34 @@ faccessat$(EXEEXT): $(faccessat_OBJECTS) $(faccessat_DEPENDENCIES) $(EXTRA_facce @rm -f faccessat$(EXEEXT) $(AM_V_CCLD)$(LINK) $(faccessat_OBJECTS) $(faccessat_LDADD) $(LIBS) +faccessat-P$(EXEEXT): $(faccessat_P_OBJECTS) $(faccessat_P_DEPENDENCIES) $(EXTRA_faccessat_P_DEPENDENCIES) + @rm -f faccessat-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat_P_OBJECTS) $(faccessat_P_LDADD) $(LIBS) + +faccessat-y$(EXEEXT): $(faccessat_y_OBJECTS) $(faccessat_y_DEPENDENCIES) $(EXTRA_faccessat_y_DEPENDENCIES) + @rm -f faccessat-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat_y_OBJECTS) $(faccessat_y_LDADD) $(LIBS) + +faccessat-yy$(EXEEXT): $(faccessat_yy_OBJECTS) $(faccessat_yy_DEPENDENCIES) $(EXTRA_faccessat_yy_DEPENDENCIES) + @rm -f faccessat-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat_yy_OBJECTS) $(faccessat_yy_LDADD) $(LIBS) + +faccessat2$(EXEEXT): $(faccessat2_OBJECTS) $(faccessat2_DEPENDENCIES) $(EXTRA_faccessat2_DEPENDENCIES) + @rm -f faccessat2$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat2_OBJECTS) $(faccessat2_LDADD) $(LIBS) + +faccessat2-P$(EXEEXT): $(faccessat2_P_OBJECTS) $(faccessat2_P_DEPENDENCIES) $(EXTRA_faccessat2_P_DEPENDENCIES) + @rm -f faccessat2-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat2_P_OBJECTS) $(faccessat2_P_LDADD) $(LIBS) + +faccessat2-y$(EXEEXT): $(faccessat2_y_OBJECTS) $(faccessat2_y_DEPENDENCIES) $(EXTRA_faccessat2_y_DEPENDENCIES) + @rm -f faccessat2-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat2_y_OBJECTS) $(faccessat2_y_LDADD) $(LIBS) + +faccessat2-yy$(EXEEXT): $(faccessat2_yy_OBJECTS) $(faccessat2_yy_DEPENDENCIES) $(EXTRA_faccessat2_yy_DEPENDENCIES) + @rm -f faccessat2-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(faccessat2_yy_OBJECTS) $(faccessat2_yy_LDADD) $(LIBS) + fadvise64$(EXEEXT): $(fadvise64_OBJECTS) $(fadvise64_DEPENDENCIES) $(EXTRA_fadvise64_DEPENDENCIES) @rm -f fadvise64$(EXEEXT) $(AM_V_CCLD)$(LINK) $(fadvise64_OBJECTS) $(fadvise64_LDADD) $(LIBS) @@ -5469,10 +7423,18 @@ fcntl$(EXEEXT): $(fcntl_OBJECTS) $(fcntl_DEPENDENCIES) $(EXTRA_fcntl_DEPENDENCIE @rm -f fcntl$(EXEEXT) $(AM_V_CCLD)$(LINK) $(fcntl_OBJECTS) $(fcntl_LDADD) $(LIBS) +fcntl--pidns-translation$(EXEEXT): $(fcntl__pidns_translation_OBJECTS) $(fcntl__pidns_translation_DEPENDENCIES) $(EXTRA_fcntl__pidns_translation_DEPENDENCIES) + @rm -f fcntl--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fcntl__pidns_translation_OBJECTS) $(fcntl__pidns_translation_LDADD) $(LIBS) + fcntl64$(EXEEXT): $(fcntl64_OBJECTS) $(fcntl64_DEPENDENCIES) $(EXTRA_fcntl64_DEPENDENCIES) @rm -f fcntl64$(EXEEXT) $(AM_V_CCLD)$(LINK) $(fcntl64_OBJECTS) $(fcntl64_LDADD) $(LIBS) +fcntl64--pidns-translation$(EXEEXT): $(fcntl64__pidns_translation_OBJECTS) $(fcntl64__pidns_translation_DEPENDENCIES) $(EXTRA_fcntl64__pidns_translation_DEPENDENCIES) + @rm -f fcntl64--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fcntl64__pidns_translation_OBJECTS) $(fcntl64__pidns_translation_LDADD) $(LIBS) + fdatasync$(EXEEXT): $(fdatasync_OBJECTS) $(fdatasync_DEPENDENCIES) $(EXTRA_fdatasync_DEPENDENCIES) @rm -f fdatasync$(EXEEXT) $(AM_V_CCLD)$(LINK) $(fdatasync_OBJECTS) $(fdatasync_LDADD) $(LIBS) @@ -5493,6 +7455,14 @@ filter-unavailable$(EXEEXT): $(filter_unavailable_OBJECTS) $(filter_unavailable_ @rm -f filter-unavailable$(EXEEXT) $(AM_V_CCLD)$(LINK) $(filter_unavailable_OBJECTS) $(filter_unavailable_LDADD) $(LIBS) +filter_seccomp-flag$(EXEEXT): $(filter_seccomp_flag_OBJECTS) $(filter_seccomp_flag_DEPENDENCIES) $(EXTRA_filter_seccomp_flag_DEPENDENCIES) + @rm -f filter_seccomp-flag$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(filter_seccomp_flag_OBJECTS) $(filter_seccomp_flag_LDADD) $(LIBS) + +filter_seccomp-perf$(EXEEXT): $(filter_seccomp_perf_OBJECTS) $(filter_seccomp_perf_DEPENDENCIES) $(EXTRA_filter_seccomp_perf_DEPENDENCIES) + @rm -f filter_seccomp-perf$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(filter_seccomp_perf_OBJECTS) $(filter_seccomp_perf_LDADD) $(LIBS) + finit_module$(EXEEXT): $(finit_module_OBJECTS) $(finit_module_DEPENDENCIES) $(EXTRA_finit_module_DEPENDENCIES) @rm -f finit_module$(EXEEXT) $(AM_V_CCLD)$(LINK) $(finit_module_OBJECTS) $(finit_module_LDADD) $(LIBS) @@ -5501,10 +7471,38 @@ flock$(EXEEXT): $(flock_OBJECTS) $(flock_DEPENDENCIES) $(EXTRA_flock_DEPENDENCIE @rm -f flock$(EXEEXT) $(AM_V_CCLD)$(LINK) $(flock_OBJECTS) $(flock_LDADD) $(LIBS) +fork--pidns-translation$(EXEEXT): $(fork__pidns_translation_OBJECTS) $(fork__pidns_translation_DEPENDENCIES) $(EXTRA_fork__pidns_translation_DEPENDENCIES) + @rm -f fork--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fork__pidns_translation_OBJECTS) $(fork__pidns_translation_LDADD) $(LIBS) + fork-f$(EXEEXT): $(fork_f_OBJECTS) $(fork_f_DEPENDENCIES) $(EXTRA_fork_f_DEPENDENCIES) @rm -f fork-f$(EXEEXT) $(AM_V_CCLD)$(LINK) $(fork_f_OBJECTS) $(fork_f_LDADD) $(LIBS) +fsconfig$(EXEEXT): $(fsconfig_OBJECTS) $(fsconfig_DEPENDENCIES) $(EXTRA_fsconfig_DEPENDENCIES) + @rm -f fsconfig$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fsconfig_OBJECTS) $(fsconfig_LDADD) $(LIBS) + +fsconfig-P$(EXEEXT): $(fsconfig_P_OBJECTS) $(fsconfig_P_DEPENDENCIES) $(EXTRA_fsconfig_P_DEPENDENCIES) + @rm -f fsconfig-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fsconfig_P_OBJECTS) $(fsconfig_P_LDADD) $(LIBS) + +fsmount$(EXEEXT): $(fsmount_OBJECTS) $(fsmount_DEPENDENCIES) $(EXTRA_fsmount_DEPENDENCIES) + @rm -f fsmount$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fsmount_OBJECTS) $(fsmount_LDADD) $(LIBS) + +fsopen$(EXEEXT): $(fsopen_OBJECTS) $(fsopen_DEPENDENCIES) $(EXTRA_fsopen_DEPENDENCIES) + @rm -f fsopen$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fsopen_OBJECTS) $(fsopen_LDADD) $(LIBS) + +fspick$(EXEEXT): $(fspick_OBJECTS) $(fspick_DEPENDENCIES) $(EXTRA_fspick_DEPENDENCIES) + @rm -f fspick$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fspick_OBJECTS) $(fspick_LDADD) $(LIBS) + +fspick-P$(EXEEXT): $(fspick_P_OBJECTS) $(fspick_P_DEPENDENCIES) $(EXTRA_fspick_P_DEPENDENCIES) + @rm -f fspick-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(fspick_P_OBJECTS) $(fspick_P_LDADD) $(LIBS) + fstat$(EXEEXT): $(fstat_OBJECTS) $(fstat_DEPENDENCIES) $(EXTRA_fstat_DEPENDENCIES) @rm -f fstat$(EXEEXT) $(AM_V_CCLD)$(LINK) $(fstat_OBJECTS) $(fstat_LDADD) $(LIBS) @@ -5577,6 +7575,10 @@ get_mempolicy$(EXEEXT): $(get_mempolicy_OBJECTS) $(get_mempolicy_DEPENDENCIES) $ @rm -f get_mempolicy$(EXEEXT) $(AM_V_CCLD)$(LINK) $(get_mempolicy_OBJECTS) $(get_mempolicy_LDADD) $(LIBS) +get_process_reaper$(EXEEXT): $(get_process_reaper_OBJECTS) $(get_process_reaper_DEPENDENCIES) $(EXTRA_get_process_reaper_DEPENDENCIES) + @rm -f get_process_reaper$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(get_process_reaper_OBJECTS) $(get_process_reaper_LDADD) $(LIBS) + getcpu$(EXEEXT): $(getcpu_OBJECTS) $(getcpu_DEPENDENCIES) $(EXTRA_getcpu_DEPENDENCIES) @rm -f getcpu$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getcpu_OBJECTS) $(getcpu_LDADD) $(LIBS) @@ -5589,10 +7591,18 @@ getdents$(EXEEXT): $(getdents_OBJECTS) $(getdents_DEPENDENCIES) $(EXTRA_getdents @rm -f getdents$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getdents_OBJECTS) $(getdents_LDADD) $(LIBS) +getdents-v$(EXEEXT): $(getdents_v_OBJECTS) $(getdents_v_DEPENDENCIES) $(EXTRA_getdents_v_DEPENDENCIES) + @rm -f getdents-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(getdents_v_OBJECTS) $(getdents_v_LDADD) $(LIBS) + getdents64$(EXEEXT): $(getdents64_OBJECTS) $(getdents64_DEPENDENCIES) $(EXTRA_getdents64_DEPENDENCIES) @rm -f getdents64$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getdents64_OBJECTS) $(getdents64_LDADD) $(LIBS) +getdents64-v$(EXEEXT): $(getdents64_v_OBJECTS) $(getdents64_v_DEPENDENCIES) $(EXTRA_getdents64_v_DEPENDENCIES) + @rm -f getdents64-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(getdents64_v_OBJECTS) $(getdents64_v_LDADD) $(LIBS) + getegid$(EXEEXT): $(getegid_OBJECTS) $(getegid_DEPENDENCIES) $(EXTRA_getegid_DEPENDENCIES) @rm -f getegid$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getegid_OBJECTS) $(getegid_LDADD) $(LIBS) @@ -5633,10 +7643,18 @@ getpgrp$(EXEEXT): $(getpgrp_OBJECTS) $(getpgrp_DEPENDENCIES) $(EXTRA_getpgrp_DEP @rm -f getpgrp$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getpgrp_OBJECTS) $(getpgrp_LDADD) $(LIBS) +getpgrp--pidns-translation$(EXEEXT): $(getpgrp__pidns_translation_OBJECTS) $(getpgrp__pidns_translation_DEPENDENCIES) $(EXTRA_getpgrp__pidns_translation_DEPENDENCIES) + @rm -f getpgrp--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(getpgrp__pidns_translation_OBJECTS) $(getpgrp__pidns_translation_LDADD) $(LIBS) + getpid$(EXEEXT): $(getpid_OBJECTS) $(getpid_DEPENDENCIES) $(EXTRA_getpid_DEPENDENCIES) @rm -f getpid$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getpid_OBJECTS) $(getpid_LDADD) $(LIBS) +getpid--pidns-translation$(EXEEXT): $(getpid__pidns_translation_OBJECTS) $(getpid__pidns_translation_DEPENDENCIES) $(EXTRA_getpid__pidns_translation_DEPENDENCIES) + @rm -f getpid--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(getpid__pidns_translation_OBJECTS) $(getpid__pidns_translation_LDADD) $(LIBS) + getppid$(EXEEXT): $(getppid_OBJECTS) $(getppid_DEPENDENCIES) $(EXTRA_getppid_DEPENDENCIES) @rm -f getppid$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getppid_OBJECTS) $(getppid_LDADD) $(LIBS) @@ -5673,6 +7691,10 @@ getsid$(EXEEXT): $(getsid_OBJECTS) $(getsid_DEPENDENCIES) $(EXTRA_getsid_DEPENDE @rm -f getsid$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getsid_OBJECTS) $(getsid_LDADD) $(LIBS) +getsid--pidns-translation$(EXEEXT): $(getsid__pidns_translation_OBJECTS) $(getsid__pidns_translation_DEPENDENCIES) $(EXTRA_getsid__pidns_translation_DEPENDENCIES) + @rm -f getsid--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(getsid__pidns_translation_OBJECTS) $(getsid__pidns_translation_LDADD) $(LIBS) + getsockname$(EXEEXT): $(getsockname_OBJECTS) $(getsockname_DEPENDENCIES) $(EXTRA_getsockname_DEPENDENCIES) @rm -f getsockname$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getsockname_OBJECTS) $(getsockname_LDADD) $(LIBS) @@ -5681,6 +7703,10 @@ gettid$(EXEEXT): $(gettid_OBJECTS) $(gettid_DEPENDENCIES) $(EXTRA_gettid_DEPENDE @rm -f gettid$(EXEEXT) $(AM_V_CCLD)$(LINK) $(gettid_OBJECTS) $(gettid_LDADD) $(LIBS) +gettid--pidns-translation$(EXEEXT): $(gettid__pidns_translation_OBJECTS) $(gettid__pidns_translation_DEPENDENCIES) $(EXTRA_gettid__pidns_translation_DEPENDENCIES) + @rm -f gettid--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(gettid__pidns_translation_OBJECTS) $(gettid__pidns_translation_LDADD) $(LIBS) + getuid$(EXEEXT): $(getuid_OBJECTS) $(getuid_DEPENDENCIES) $(EXTRA_getuid_DEPENDENCIES) @rm -f getuid$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getuid_OBJECTS) $(getuid_LDADD) $(LIBS) @@ -5689,9 +7715,17 @@ getuid32$(EXEEXT): $(getuid32_OBJECTS) $(getuid32_DEPENDENCIES) $(EXTRA_getuid32 @rm -f getuid32$(EXEEXT) $(AM_V_CCLD)$(LINK) $(getuid32_OBJECTS) $(getuid32_LDADD) $(LIBS) -getxxid$(EXEEXT): $(getxxid_OBJECTS) $(getxxid_DEPENDENCIES) $(EXTRA_getxxid_DEPENDENCIES) - @rm -f getxxid$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(getxxid_OBJECTS) $(getxxid_LDADD) $(LIBS) +getxgid$(EXEEXT): $(getxgid_OBJECTS) $(getxgid_DEPENDENCIES) $(EXTRA_getxgid_DEPENDENCIES) + @rm -f getxgid$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(getxgid_OBJECTS) $(getxgid_LDADD) $(LIBS) + +getxpid$(EXEEXT): $(getxpid_OBJECTS) $(getxpid_DEPENDENCIES) $(EXTRA_getxpid_DEPENDENCIES) + @rm -f getxpid$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(getxpid_OBJECTS) $(getxpid_LDADD) $(LIBS) + +getxuid$(EXEEXT): $(getxuid_OBJECTS) $(getxuid_DEPENDENCIES) $(EXTRA_getxuid_DEPENDENCIES) + @rm -f getxuid$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(getxuid_OBJECTS) $(getxuid_LDADD) $(LIBS) group_req$(EXEEXT): $(group_req_OBJECTS) $(group_req_DEPENDENCIES) $(EXTRA_group_req_DEPENDENCIES) @rm -f group_req$(EXEEXT) @@ -5713,10 +7747,22 @@ inotify$(EXEEXT): $(inotify_OBJECTS) $(inotify_DEPENDENCIES) $(EXTRA_inotify_DEP @rm -f inotify$(EXEEXT) $(AM_V_CCLD)$(LINK) $(inotify_OBJECTS) $(inotify_LDADD) $(LIBS) +inotify_init$(EXEEXT): $(inotify_init_OBJECTS) $(inotify_init_DEPENDENCIES) $(EXTRA_inotify_init_DEPENDENCIES) + @rm -f inotify_init$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(inotify_init_OBJECTS) $(inotify_init_LDADD) $(LIBS) + +inotify_init-y$(EXEEXT): $(inotify_init_y_OBJECTS) $(inotify_init_y_DEPENDENCIES) $(EXTRA_inotify_init_y_DEPENDENCIES) + @rm -f inotify_init-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(inotify_init_y_OBJECTS) $(inotify_init_y_LDADD) $(LIBS) + inotify_init1$(EXEEXT): $(inotify_init1_OBJECTS) $(inotify_init1_DEPENDENCIES) $(EXTRA_inotify_init1_DEPENDENCIES) @rm -f inotify_init1$(EXEEXT) $(AM_V_CCLD)$(LINK) $(inotify_init1_OBJECTS) $(inotify_init1_LDADD) $(LIBS) +inotify_init1-y$(EXEEXT): $(inotify_init1_y_OBJECTS) $(inotify_init1_y_DEPENDENCIES) $(EXTRA_inotify_init1_y_DEPENDENCIES) + @rm -f inotify_init1-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(inotify_init1_y_OBJECTS) $(inotify_init1_y_LDADD) $(LIBS) + int_0x80$(EXEEXT): $(int_0x80_OBJECTS) $(int_0x80_DEPENDENCIES) $(EXTRA_int_0x80_DEPENDENCIES) @rm -f int_0x80$(EXEEXT) $(AM_V_CCLD)$(LINK) $(int_0x80_OBJECTS) $(int_0x80_LDADD) $(LIBS) @@ -5741,6 +7787,10 @@ ioctl_block$(EXEEXT): $(ioctl_block_OBJECTS) $(ioctl_block_DEPENDENCIES) $(EXTRA @rm -f ioctl_block$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_block_OBJECTS) $(ioctl_block_LDADD) $(LIBS) +ioctl_block--pidns-translation$(EXEEXT): $(ioctl_block__pidns_translation_OBJECTS) $(ioctl_block__pidns_translation_DEPENDENCIES) $(EXTRA_ioctl_block__pidns_translation_DEPENDENCIES) + @rm -f ioctl_block--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_block__pidns_translation_OBJECTS) $(ioctl_block__pidns_translation_LDADD) $(LIBS) + ioctl_dm$(EXEEXT): $(ioctl_dm_OBJECTS) $(ioctl_dm_DEPENDENCIES) $(EXTRA_ioctl_dm_DEPENDENCIES) @rm -f ioctl_dm$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_dm_OBJECTS) $(ioctl_dm_LDADD) $(LIBS) @@ -5753,18 +7803,130 @@ ioctl_evdev$(EXEEXT): $(ioctl_evdev_OBJECTS) $(ioctl_evdev_DEPENDENCIES) $(EXTRA @rm -f ioctl_evdev$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_evdev_OBJECTS) $(ioctl_evdev_LDADD) $(LIBS) +ioctl_evdev-Xabbrev$(EXEEXT): $(ioctl_evdev_Xabbrev_OBJECTS) $(ioctl_evdev_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_evdev_Xabbrev_DEPENDENCIES) + @rm -f ioctl_evdev-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_Xabbrev_OBJECTS) $(ioctl_evdev_Xabbrev_LDADD) $(LIBS) + +ioctl_evdev-Xraw$(EXEEXT): $(ioctl_evdev_Xraw_OBJECTS) $(ioctl_evdev_Xraw_DEPENDENCIES) $(EXTRA_ioctl_evdev_Xraw_DEPENDENCIES) + @rm -f ioctl_evdev-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_Xraw_OBJECTS) $(ioctl_evdev_Xraw_LDADD) $(LIBS) + +ioctl_evdev-Xverbose$(EXEEXT): $(ioctl_evdev_Xverbose_OBJECTS) $(ioctl_evdev_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_evdev_Xverbose_DEPENDENCIES) + @rm -f ioctl_evdev-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_Xverbose_OBJECTS) $(ioctl_evdev_Xverbose_LDADD) $(LIBS) + ioctl_evdev-success$(EXEEXT): $(ioctl_evdev_success_OBJECTS) $(ioctl_evdev_success_DEPENDENCIES) $(EXTRA_ioctl_evdev_success_DEPENDENCIES) @rm -f ioctl_evdev-success$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_evdev_success_OBJECTS) $(ioctl_evdev_success_LDADD) $(LIBS) +ioctl_evdev-success-Xabbrev$(EXEEXT): $(ioctl_evdev_success_Xabbrev_OBJECTS) $(ioctl_evdev_success_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_evdev_success_Xabbrev_DEPENDENCIES) + @rm -f ioctl_evdev-success-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_success_Xabbrev_OBJECTS) $(ioctl_evdev_success_Xabbrev_LDADD) $(LIBS) + +ioctl_evdev-success-Xraw$(EXEEXT): $(ioctl_evdev_success_Xraw_OBJECTS) $(ioctl_evdev_success_Xraw_DEPENDENCIES) $(EXTRA_ioctl_evdev_success_Xraw_DEPENDENCIES) + @rm -f ioctl_evdev-success-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_success_Xraw_OBJECTS) $(ioctl_evdev_success_Xraw_LDADD) $(LIBS) + +ioctl_evdev-success-Xverbose$(EXEEXT): $(ioctl_evdev_success_Xverbose_OBJECTS) $(ioctl_evdev_success_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_evdev_success_Xverbose_DEPENDENCIES) + @rm -f ioctl_evdev-success-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_success_Xverbose_OBJECTS) $(ioctl_evdev_success_Xverbose_LDADD) $(LIBS) + ioctl_evdev-success-v$(EXEEXT): $(ioctl_evdev_success_v_OBJECTS) $(ioctl_evdev_success_v_DEPENDENCIES) $(EXTRA_ioctl_evdev_success_v_DEPENDENCIES) @rm -f ioctl_evdev-success-v$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_evdev_success_v_OBJECTS) $(ioctl_evdev_success_v_LDADD) $(LIBS) +ioctl_evdev-success-v-Xabbrev$(EXEEXT): $(ioctl_evdev_success_v_Xabbrev_OBJECTS) $(ioctl_evdev_success_v_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_evdev_success_v_Xabbrev_DEPENDENCIES) + @rm -f ioctl_evdev-success-v-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_success_v_Xabbrev_OBJECTS) $(ioctl_evdev_success_v_Xabbrev_LDADD) $(LIBS) + +ioctl_evdev-success-v-Xraw$(EXEEXT): $(ioctl_evdev_success_v_Xraw_OBJECTS) $(ioctl_evdev_success_v_Xraw_DEPENDENCIES) $(EXTRA_ioctl_evdev_success_v_Xraw_DEPENDENCIES) + @rm -f ioctl_evdev-success-v-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_success_v_Xraw_OBJECTS) $(ioctl_evdev_success_v_Xraw_LDADD) $(LIBS) + +ioctl_evdev-success-v-Xverbose$(EXEEXT): $(ioctl_evdev_success_v_Xverbose_OBJECTS) $(ioctl_evdev_success_v_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_evdev_success_v_Xverbose_DEPENDENCIES) + @rm -f ioctl_evdev-success-v-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_success_v_Xverbose_OBJECTS) $(ioctl_evdev_success_v_Xverbose_LDADD) $(LIBS) + ioctl_evdev-v$(EXEEXT): $(ioctl_evdev_v_OBJECTS) $(ioctl_evdev_v_DEPENDENCIES) $(EXTRA_ioctl_evdev_v_DEPENDENCIES) @rm -f ioctl_evdev-v$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_evdev_v_OBJECTS) $(ioctl_evdev_v_LDADD) $(LIBS) +ioctl_evdev-v-Xabbrev$(EXEEXT): $(ioctl_evdev_v_Xabbrev_OBJECTS) $(ioctl_evdev_v_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_evdev_v_Xabbrev_DEPENDENCIES) + @rm -f ioctl_evdev-v-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_v_Xabbrev_OBJECTS) $(ioctl_evdev_v_Xabbrev_LDADD) $(LIBS) + +ioctl_evdev-v-Xraw$(EXEEXT): $(ioctl_evdev_v_Xraw_OBJECTS) $(ioctl_evdev_v_Xraw_DEPENDENCIES) $(EXTRA_ioctl_evdev_v_Xraw_DEPENDENCIES) + @rm -f ioctl_evdev-v-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_v_Xraw_OBJECTS) $(ioctl_evdev_v_Xraw_LDADD) $(LIBS) + +ioctl_evdev-v-Xverbose$(EXEEXT): $(ioctl_evdev_v_Xverbose_OBJECTS) $(ioctl_evdev_v_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_evdev_v_Xverbose_DEPENDENCIES) + @rm -f ioctl_evdev-v-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_evdev_v_Xverbose_OBJECTS) $(ioctl_evdev_v_Xverbose_LDADD) $(LIBS) + +ioctl_hdio$(EXEEXT): $(ioctl_hdio_OBJECTS) $(ioctl_hdio_DEPENDENCIES) $(EXTRA_ioctl_hdio_DEPENDENCIES) + @rm -f ioctl_hdio$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_OBJECTS) $(ioctl_hdio_LDADD) $(LIBS) + +ioctl_hdio-Xabbrev$(EXEEXT): $(ioctl_hdio_Xabbrev_OBJECTS) $(ioctl_hdio_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_hdio_Xabbrev_DEPENDENCIES) + @rm -f ioctl_hdio-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_Xabbrev_OBJECTS) $(ioctl_hdio_Xabbrev_LDADD) $(LIBS) + +ioctl_hdio-Xraw$(EXEEXT): $(ioctl_hdio_Xraw_OBJECTS) $(ioctl_hdio_Xraw_DEPENDENCIES) $(EXTRA_ioctl_hdio_Xraw_DEPENDENCIES) + @rm -f ioctl_hdio-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_Xraw_OBJECTS) $(ioctl_hdio_Xraw_LDADD) $(LIBS) + +ioctl_hdio-Xverbose$(EXEEXT): $(ioctl_hdio_Xverbose_OBJECTS) $(ioctl_hdio_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_hdio_Xverbose_DEPENDENCIES) + @rm -f ioctl_hdio-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_Xverbose_OBJECTS) $(ioctl_hdio_Xverbose_LDADD) $(LIBS) + +ioctl_hdio-success$(EXEEXT): $(ioctl_hdio_success_OBJECTS) $(ioctl_hdio_success_DEPENDENCIES) $(EXTRA_ioctl_hdio_success_DEPENDENCIES) + @rm -f ioctl_hdio-success$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_success_OBJECTS) $(ioctl_hdio_success_LDADD) $(LIBS) + +ioctl_hdio-success-Xabbrev$(EXEEXT): $(ioctl_hdio_success_Xabbrev_OBJECTS) $(ioctl_hdio_success_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_hdio_success_Xabbrev_DEPENDENCIES) + @rm -f ioctl_hdio-success-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_success_Xabbrev_OBJECTS) $(ioctl_hdio_success_Xabbrev_LDADD) $(LIBS) + +ioctl_hdio-success-Xraw$(EXEEXT): $(ioctl_hdio_success_Xraw_OBJECTS) $(ioctl_hdio_success_Xraw_DEPENDENCIES) $(EXTRA_ioctl_hdio_success_Xraw_DEPENDENCIES) + @rm -f ioctl_hdio-success-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_success_Xraw_OBJECTS) $(ioctl_hdio_success_Xraw_LDADD) $(LIBS) + +ioctl_hdio-success-Xverbose$(EXEEXT): $(ioctl_hdio_success_Xverbose_OBJECTS) $(ioctl_hdio_success_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_hdio_success_Xverbose_DEPENDENCIES) + @rm -f ioctl_hdio-success-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_success_Xverbose_OBJECTS) $(ioctl_hdio_success_Xverbose_LDADD) $(LIBS) + +ioctl_hdio-success-v$(EXEEXT): $(ioctl_hdio_success_v_OBJECTS) $(ioctl_hdio_success_v_DEPENDENCIES) $(EXTRA_ioctl_hdio_success_v_DEPENDENCIES) + @rm -f ioctl_hdio-success-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_success_v_OBJECTS) $(ioctl_hdio_success_v_LDADD) $(LIBS) + +ioctl_hdio-success-v-Xabbrev$(EXEEXT): $(ioctl_hdio_success_v_Xabbrev_OBJECTS) $(ioctl_hdio_success_v_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_hdio_success_v_Xabbrev_DEPENDENCIES) + @rm -f ioctl_hdio-success-v-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_success_v_Xabbrev_OBJECTS) $(ioctl_hdio_success_v_Xabbrev_LDADD) $(LIBS) + +ioctl_hdio-success-v-Xraw$(EXEEXT): $(ioctl_hdio_success_v_Xraw_OBJECTS) $(ioctl_hdio_success_v_Xraw_DEPENDENCIES) $(EXTRA_ioctl_hdio_success_v_Xraw_DEPENDENCIES) + @rm -f ioctl_hdio-success-v-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_success_v_Xraw_OBJECTS) $(ioctl_hdio_success_v_Xraw_LDADD) $(LIBS) + +ioctl_hdio-success-v-Xverbose$(EXEEXT): $(ioctl_hdio_success_v_Xverbose_OBJECTS) $(ioctl_hdio_success_v_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_hdio_success_v_Xverbose_DEPENDENCIES) + @rm -f ioctl_hdio-success-v-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_success_v_Xverbose_OBJECTS) $(ioctl_hdio_success_v_Xverbose_LDADD) $(LIBS) + +ioctl_hdio-v$(EXEEXT): $(ioctl_hdio_v_OBJECTS) $(ioctl_hdio_v_DEPENDENCIES) $(EXTRA_ioctl_hdio_v_DEPENDENCIES) + @rm -f ioctl_hdio-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_v_OBJECTS) $(ioctl_hdio_v_LDADD) $(LIBS) + +ioctl_hdio-v-Xabbrev$(EXEEXT): $(ioctl_hdio_v_Xabbrev_OBJECTS) $(ioctl_hdio_v_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_hdio_v_Xabbrev_DEPENDENCIES) + @rm -f ioctl_hdio-v-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_v_Xabbrev_OBJECTS) $(ioctl_hdio_v_Xabbrev_LDADD) $(LIBS) + +ioctl_hdio-v-Xraw$(EXEEXT): $(ioctl_hdio_v_Xraw_OBJECTS) $(ioctl_hdio_v_Xraw_DEPENDENCIES) $(EXTRA_ioctl_hdio_v_Xraw_DEPENDENCIES) + @rm -f ioctl_hdio-v-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_v_Xraw_OBJECTS) $(ioctl_hdio_v_Xraw_LDADD) $(LIBS) + +ioctl_hdio-v-Xverbose$(EXEEXT): $(ioctl_hdio_v_Xverbose_OBJECTS) $(ioctl_hdio_v_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_hdio_v_Xverbose_DEPENDENCIES) + @rm -f ioctl_hdio-v-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_hdio_v_Xverbose_OBJECTS) $(ioctl_hdio_v_Xverbose_LDADD) $(LIBS) + ioctl_inotify$(EXEEXT): $(ioctl_inotify_OBJECTS) $(ioctl_inotify_DEPENDENCIES) $(EXTRA_ioctl_inotify_DEPENDENCIES) @rm -f ioctl_inotify$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_inotify_OBJECTS) $(ioctl_inotify_LDADD) $(LIBS) @@ -5845,6 +8007,10 @@ ioctl_sock_gifconf$(EXEEXT): $(ioctl_sock_gifconf_OBJECTS) $(ioctl_sock_gifconf_ @rm -f ioctl_sock_gifconf$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_sock_gifconf_OBJECTS) $(ioctl_sock_gifconf_LDADD) $(LIBS) +ioctl_tee$(EXEEXT): $(ioctl_tee_OBJECTS) $(ioctl_tee_DEPENDENCIES) $(EXTRA_ioctl_tee_DEPENDENCIES) + @rm -f ioctl_tee$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_tee_OBJECTS) $(ioctl_tee_LDADD) $(LIBS) + ioctl_uffdio$(EXEEXT): $(ioctl_uffdio_OBJECTS) $(ioctl_uffdio_DEPENDENCIES) $(EXTRA_ioctl_uffdio_DEPENDENCIES) @rm -f ioctl_uffdio$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_uffdio_OBJECTS) $(ioctl_uffdio_LDADD) $(LIBS) @@ -5853,6 +8019,70 @@ ioctl_v4l2$(EXEEXT): $(ioctl_v4l2_OBJECTS) $(ioctl_v4l2_DEPENDENCIES) $(EXTRA_io @rm -f ioctl_v4l2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_OBJECTS) $(ioctl_v4l2_LDADD) $(LIBS) +ioctl_v4l2-Xabbrev$(EXEEXT): $(ioctl_v4l2_Xabbrev_OBJECTS) $(ioctl_v4l2_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_v4l2_Xabbrev_DEPENDENCIES) + @rm -f ioctl_v4l2-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_Xabbrev_OBJECTS) $(ioctl_v4l2_Xabbrev_LDADD) $(LIBS) + +ioctl_v4l2-Xraw$(EXEEXT): $(ioctl_v4l2_Xraw_OBJECTS) $(ioctl_v4l2_Xraw_DEPENDENCIES) $(EXTRA_ioctl_v4l2_Xraw_DEPENDENCIES) + @rm -f ioctl_v4l2-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_Xraw_OBJECTS) $(ioctl_v4l2_Xraw_LDADD) $(LIBS) + +ioctl_v4l2-Xverbose$(EXEEXT): $(ioctl_v4l2_Xverbose_OBJECTS) $(ioctl_v4l2_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_v4l2_Xverbose_DEPENDENCIES) + @rm -f ioctl_v4l2-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_Xverbose_OBJECTS) $(ioctl_v4l2_Xverbose_LDADD) $(LIBS) + +ioctl_v4l2-success$(EXEEXT): $(ioctl_v4l2_success_OBJECTS) $(ioctl_v4l2_success_DEPENDENCIES) $(EXTRA_ioctl_v4l2_success_DEPENDENCIES) + @rm -f ioctl_v4l2-success$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_success_OBJECTS) $(ioctl_v4l2_success_LDADD) $(LIBS) + +ioctl_v4l2-success-Xabbrev$(EXEEXT): $(ioctl_v4l2_success_Xabbrev_OBJECTS) $(ioctl_v4l2_success_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_v4l2_success_Xabbrev_DEPENDENCIES) + @rm -f ioctl_v4l2-success-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_success_Xabbrev_OBJECTS) $(ioctl_v4l2_success_Xabbrev_LDADD) $(LIBS) + +ioctl_v4l2-success-Xraw$(EXEEXT): $(ioctl_v4l2_success_Xraw_OBJECTS) $(ioctl_v4l2_success_Xraw_DEPENDENCIES) $(EXTRA_ioctl_v4l2_success_Xraw_DEPENDENCIES) + @rm -f ioctl_v4l2-success-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_success_Xraw_OBJECTS) $(ioctl_v4l2_success_Xraw_LDADD) $(LIBS) + +ioctl_v4l2-success-Xverbose$(EXEEXT): $(ioctl_v4l2_success_Xverbose_OBJECTS) $(ioctl_v4l2_success_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_v4l2_success_Xverbose_DEPENDENCIES) + @rm -f ioctl_v4l2-success-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_success_Xverbose_OBJECTS) $(ioctl_v4l2_success_Xverbose_LDADD) $(LIBS) + +ioctl_v4l2-success-v$(EXEEXT): $(ioctl_v4l2_success_v_OBJECTS) $(ioctl_v4l2_success_v_DEPENDENCIES) $(EXTRA_ioctl_v4l2_success_v_DEPENDENCIES) + @rm -f ioctl_v4l2-success-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_success_v_OBJECTS) $(ioctl_v4l2_success_v_LDADD) $(LIBS) + +ioctl_v4l2-success-v-Xabbrev$(EXEEXT): $(ioctl_v4l2_success_v_Xabbrev_OBJECTS) $(ioctl_v4l2_success_v_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_v4l2_success_v_Xabbrev_DEPENDENCIES) + @rm -f ioctl_v4l2-success-v-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_success_v_Xabbrev_OBJECTS) $(ioctl_v4l2_success_v_Xabbrev_LDADD) $(LIBS) + +ioctl_v4l2-success-v-Xraw$(EXEEXT): $(ioctl_v4l2_success_v_Xraw_OBJECTS) $(ioctl_v4l2_success_v_Xraw_DEPENDENCIES) $(EXTRA_ioctl_v4l2_success_v_Xraw_DEPENDENCIES) + @rm -f ioctl_v4l2-success-v-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_success_v_Xraw_OBJECTS) $(ioctl_v4l2_success_v_Xraw_LDADD) $(LIBS) + +ioctl_v4l2-success-v-Xverbose$(EXEEXT): $(ioctl_v4l2_success_v_Xverbose_OBJECTS) $(ioctl_v4l2_success_v_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_v4l2_success_v_Xverbose_DEPENDENCIES) + @rm -f ioctl_v4l2-success-v-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_success_v_Xverbose_OBJECTS) $(ioctl_v4l2_success_v_Xverbose_LDADD) $(LIBS) + +ioctl_v4l2-v$(EXEEXT): $(ioctl_v4l2_v_OBJECTS) $(ioctl_v4l2_v_DEPENDENCIES) $(EXTRA_ioctl_v4l2_v_DEPENDENCIES) + @rm -f ioctl_v4l2-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_v_OBJECTS) $(ioctl_v4l2_v_LDADD) $(LIBS) + +ioctl_v4l2-v-Xabbrev$(EXEEXT): $(ioctl_v4l2_v_Xabbrev_OBJECTS) $(ioctl_v4l2_v_Xabbrev_DEPENDENCIES) $(EXTRA_ioctl_v4l2_v_Xabbrev_DEPENDENCIES) + @rm -f ioctl_v4l2-v-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_v_Xabbrev_OBJECTS) $(ioctl_v4l2_v_Xabbrev_LDADD) $(LIBS) + +ioctl_v4l2-v-Xraw$(EXEEXT): $(ioctl_v4l2_v_Xraw_OBJECTS) $(ioctl_v4l2_v_Xraw_DEPENDENCIES) $(EXTRA_ioctl_v4l2_v_Xraw_DEPENDENCIES) + @rm -f ioctl_v4l2-v-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_v_Xraw_OBJECTS) $(ioctl_v4l2_v_Xraw_LDADD) $(LIBS) + +ioctl_v4l2-v-Xverbose$(EXEEXT): $(ioctl_v4l2_v_Xverbose_OBJECTS) $(ioctl_v4l2_v_Xverbose_DEPENDENCIES) $(EXTRA_ioctl_v4l2_v_Xverbose_DEPENDENCIES) + @rm -f ioctl_v4l2-v-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_v4l2_v_Xverbose_OBJECTS) $(ioctl_v4l2_v_Xverbose_LDADD) $(LIBS) + +ioctl_watchdog$(EXEEXT): $(ioctl_watchdog_OBJECTS) $(ioctl_watchdog_DEPENDENCIES) $(EXTRA_ioctl_watchdog_DEPENDENCIES) + @rm -f ioctl_watchdog$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioctl_watchdog_OBJECTS) $(ioctl_watchdog_LDADD) $(LIBS) + ioperm$(EXEEXT): $(ioperm_OBJECTS) $(ioperm_DEPENDENCIES) $(EXTRA_ioperm_DEPENDENCIES) @rm -f ioperm$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioperm_OBJECTS) $(ioperm_LDADD) $(LIBS) @@ -5865,6 +8095,10 @@ ioprio$(EXEEXT): $(ioprio_OBJECTS) $(ioprio_DEPENDENCIES) $(EXTRA_ioprio_DEPENDE @rm -f ioprio$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioprio_OBJECTS) $(ioprio_LDADD) $(LIBS) +ioprio--pidns-translation$(EXEEXT): $(ioprio__pidns_translation_OBJECTS) $(ioprio__pidns_translation_DEPENDENCIES) $(EXTRA_ioprio__pidns_translation_DEPENDENCIES) + @rm -f ioprio--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(ioprio__pidns_translation_OBJECTS) $(ioprio__pidns_translation_LDADD) $(LIBS) + ioprio-Xabbrev$(EXEEXT): $(ioprio_Xabbrev_OBJECTS) $(ioprio_Xabbrev_DEPENDENCIES) $(EXTRA_ioprio_Xabbrev_DEPENDENCIES) @rm -f ioprio-Xabbrev$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ioprio_Xabbrev_OBJECTS) $(ioprio_Xabbrev_LDADD) $(LIBS) @@ -5961,6 +8195,10 @@ kcmp-y$(EXEEXT): $(kcmp_y_OBJECTS) $(kcmp_y_DEPENDENCIES) $(EXTRA_kcmp_y_DEPENDE @rm -f kcmp-y$(EXEEXT) $(AM_V_CCLD)$(LINK) $(kcmp_y_OBJECTS) $(kcmp_y_LDADD) $(LIBS) +kcmp-y--pidns-translation$(EXEEXT): $(kcmp_y__pidns_translation_OBJECTS) $(kcmp_y__pidns_translation_DEPENDENCIES) $(EXTRA_kcmp_y__pidns_translation_DEPENDENCIES) + @rm -f kcmp-y--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(kcmp_y__pidns_translation_OBJECTS) $(kcmp_y__pidns_translation_LDADD) $(LIBS) + kern_features$(EXEEXT): $(kern_features_OBJECTS) $(kern_features_DEPENDENCIES) $(EXTRA_kern_features_DEPENDENCIES) @rm -f kern_features$(EXEEXT) $(AM_V_CCLD)$(LINK) $(kern_features_OBJECTS) $(kern_features_LDADD) $(LIBS) @@ -6009,6 +8247,10 @@ kill$(EXEEXT): $(kill_OBJECTS) $(kill_DEPENDENCIES) $(EXTRA_kill_DEPENDENCIES) @rm -f kill$(EXEEXT) $(AM_V_CCLD)$(LINK) $(kill_OBJECTS) $(kill_LDADD) $(LIBS) +kill--pidns-translation$(EXEEXT): $(kill__pidns_translation_OBJECTS) $(kill__pidns_translation_DEPENDENCIES) $(EXTRA_kill__pidns_translation_DEPENDENCIES) + @rm -f kill--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(kill__pidns_translation_OBJECTS) $(kill__pidns_translation_LDADD) $(LIBS) + kill_child$(EXEEXT): $(kill_child_OBJECTS) $(kill_child_DEPENDENCIES) $(EXTRA_kill_child_DEPENDENCIES) @rm -f kill_child$(EXEEXT) $(AM_V_CCLD)$(LINK) $(kill_child_OBJECTS) $(kill_child_LDADD) $(LIBS) @@ -6069,10 +8311,30 @@ madvise$(EXEEXT): $(madvise_OBJECTS) $(madvise_DEPENDENCIES) $(EXTRA_madvise_DEP @rm -f madvise$(EXEEXT) $(AM_V_CCLD)$(LINK) $(madvise_OBJECTS) $(madvise_LDADD) $(LIBS) +maybe_switch_current_tcp$(EXEEXT): $(maybe_switch_current_tcp_OBJECTS) $(maybe_switch_current_tcp_DEPENDENCIES) $(EXTRA_maybe_switch_current_tcp_DEPENDENCIES) + @rm -f maybe_switch_current_tcp$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(maybe_switch_current_tcp_OBJECTS) $(maybe_switch_current_tcp_LDADD) $(LIBS) + +maybe_switch_current_tcp--quiet-thread-execve$(EXEEXT): $(maybe_switch_current_tcp__quiet_thread_execve_OBJECTS) $(maybe_switch_current_tcp__quiet_thread_execve_DEPENDENCIES) $(EXTRA_maybe_switch_current_tcp__quiet_thread_execve_DEPENDENCIES) + @rm -f maybe_switch_current_tcp--quiet-thread-execve$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(maybe_switch_current_tcp__quiet_thread_execve_OBJECTS) $(maybe_switch_current_tcp__quiet_thread_execve_LDADD) $(LIBS) + mbind$(EXEEXT): $(mbind_OBJECTS) $(mbind_DEPENDENCIES) $(EXTRA_mbind_DEPENDENCIES) @rm -f mbind$(EXEEXT) $(AM_V_CCLD)$(LINK) $(mbind_OBJECTS) $(mbind_LDADD) $(LIBS) +mbind-Xabbrev$(EXEEXT): $(mbind_Xabbrev_OBJECTS) $(mbind_Xabbrev_DEPENDENCIES) $(EXTRA_mbind_Xabbrev_DEPENDENCIES) + @rm -f mbind-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(mbind_Xabbrev_OBJECTS) $(mbind_Xabbrev_LDADD) $(LIBS) + +mbind-Xraw$(EXEEXT): $(mbind_Xraw_OBJECTS) $(mbind_Xraw_DEPENDENCIES) $(EXTRA_mbind_Xraw_DEPENDENCIES) + @rm -f mbind-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(mbind_Xraw_OBJECTS) $(mbind_Xraw_LDADD) $(LIBS) + +mbind-Xverbose$(EXEEXT): $(mbind_Xverbose_OBJECTS) $(mbind_Xverbose_DEPENDENCIES) $(EXTRA_mbind_Xverbose_DEPENDENCIES) + @rm -f mbind-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(mbind_Xverbose_OBJECTS) $(mbind_Xverbose_LDADD) $(LIBS) + membarrier$(EXEEXT): $(membarrier_OBJECTS) $(membarrier_DEPENDENCIES) $(EXTRA_membarrier_DEPENDENCIES) @rm -f membarrier$(EXEEXT) $(AM_V_CCLD)$(LINK) $(membarrier_OBJECTS) $(membarrier_LDADD) $(LIBS) @@ -6097,6 +8359,10 @@ migrate_pages$(EXEEXT): $(migrate_pages_OBJECTS) $(migrate_pages_DEPENDENCIES) $ @rm -f migrate_pages$(EXEEXT) $(AM_V_CCLD)$(LINK) $(migrate_pages_OBJECTS) $(migrate_pages_LDADD) $(LIBS) +migrate_pages--pidns-translation$(EXEEXT): $(migrate_pages__pidns_translation_OBJECTS) $(migrate_pages__pidns_translation_DEPENDENCIES) $(EXTRA_migrate_pages__pidns_translation_DEPENDENCIES) + @rm -f migrate_pages--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(migrate_pages__pidns_translation_OBJECTS) $(migrate_pages__pidns_translation_LDADD) $(LIBS) + mincore$(EXEEXT): $(mincore_OBJECTS) $(mincore_DEPENDENCIES) $(EXTRA_mincore_DEPENDENCIES) @rm -f mincore$(EXEEXT) $(AM_V_CCLD)$(LINK) $(mincore_OBJECTS) $(mincore_LDADD) $(LIBS) @@ -6197,10 +8463,22 @@ mount-Xverbose$(EXEEXT): $(mount_Xverbose_OBJECTS) $(mount_Xverbose_DEPENDENCIES @rm -f mount-Xverbose$(EXEEXT) $(AM_V_CCLD)$(LINK) $(mount_Xverbose_OBJECTS) $(mount_Xverbose_LDADD) $(LIBS) +move_mount$(EXEEXT): $(move_mount_OBJECTS) $(move_mount_DEPENDENCIES) $(EXTRA_move_mount_DEPENDENCIES) + @rm -f move_mount$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(move_mount_OBJECTS) $(move_mount_LDADD) $(LIBS) + +move_mount-P$(EXEEXT): $(move_mount_P_OBJECTS) $(move_mount_P_DEPENDENCIES) $(EXTRA_move_mount_P_DEPENDENCIES) + @rm -f move_mount-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(move_mount_P_OBJECTS) $(move_mount_P_LDADD) $(LIBS) + move_pages$(EXEEXT): $(move_pages_OBJECTS) $(move_pages_DEPENDENCIES) $(EXTRA_move_pages_DEPENDENCIES) @rm -f move_pages$(EXEEXT) $(AM_V_CCLD)$(LINK) $(move_pages_OBJECTS) $(move_pages_LDADD) $(LIBS) +move_pages--pidns-translation$(EXEEXT): $(move_pages__pidns_translation_OBJECTS) $(move_pages__pidns_translation_DEPENDENCIES) $(EXTRA_move_pages__pidns_translation_DEPENDENCIES) + @rm -f move_pages--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(move_pages__pidns_translation_OBJECTS) $(move_pages__pidns_translation_LDADD) $(LIBS) + move_pages-Xabbrev$(EXEEXT): $(move_pages_Xabbrev_OBJECTS) $(move_pages_Xabbrev_DEPENDENCIES) $(EXTRA_move_pages_Xabbrev_DEPENDENCIES) @rm -f move_pages-Xabbrev$(EXEEXT) $(AM_V_CCLD)$(LINK) $(move_pages_Xabbrev_OBJECTS) $(move_pages_Xabbrev_LDADD) $(LIBS) @@ -6249,6 +8527,22 @@ nanosleep$(EXEEXT): $(nanosleep_OBJECTS) $(nanosleep_DEPENDENCIES) $(EXTRA_nanos @rm -f nanosleep$(EXEEXT) $(AM_V_CCLD)$(LINK) $(nanosleep_OBJECTS) $(nanosleep_LDADD) $(LIBS) +net--decode-fds-dev-netlink$(EXEEXT): $(net__decode_fds_dev_netlink_OBJECTS) $(net__decode_fds_dev_netlink_DEPENDENCIES) $(EXTRA_net__decode_fds_dev_netlink_DEPENDENCIES) + @rm -f net--decode-fds-dev-netlink$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(net__decode_fds_dev_netlink_OBJECTS) $(net__decode_fds_dev_netlink_LDADD) $(LIBS) + +net--decode-fds-none-netlink$(EXEEXT): $(net__decode_fds_none_netlink_OBJECTS) $(net__decode_fds_none_netlink_DEPENDENCIES) $(EXTRA_net__decode_fds_none_netlink_DEPENDENCIES) + @rm -f net--decode-fds-none-netlink$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(net__decode_fds_none_netlink_OBJECTS) $(net__decode_fds_none_netlink_LDADD) $(LIBS) + +net--decode-fds-path-netlink$(EXEEXT): $(net__decode_fds_path_netlink_OBJECTS) $(net__decode_fds_path_netlink_DEPENDENCIES) $(EXTRA_net__decode_fds_path_netlink_DEPENDENCIES) + @rm -f net--decode-fds-path-netlink$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(net__decode_fds_path_netlink_OBJECTS) $(net__decode_fds_path_netlink_LDADD) $(LIBS) + +net--decode-fds-socket-netlink$(EXEEXT): $(net__decode_fds_socket_netlink_OBJECTS) $(net__decode_fds_socket_netlink_DEPENDENCIES) $(EXTRA_net__decode_fds_socket_netlink_DEPENDENCIES) + @rm -f net--decode-fds-socket-netlink$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(net__decode_fds_socket_netlink_OBJECTS) $(net__decode_fds_socket_netlink_LDADD) $(LIBS) + net-accept-connect$(EXEEXT): $(net_accept_connect_OBJECTS) $(net_accept_connect_DEPENDENCIES) $(EXTRA_net_accept_connect_DEPENDENCIES) @rm -f net-accept-connect$(EXEEXT) $(AM_V_CCLD)$(LINK) $(net_accept_connect_OBJECTS) $(net_accept_connect_LDADD) $(LIBS) @@ -6277,6 +8571,10 @@ net-sockaddr$(EXEEXT): $(net_sockaddr_OBJECTS) $(net_sockaddr_DEPENDENCIES) $(EX @rm -f net-sockaddr$(EXEEXT) $(AM_V_CCLD)$(LINK) $(net_sockaddr_OBJECTS) $(net_sockaddr_LDADD) $(LIBS) +net-sockaddr--pidns-translation$(EXEEXT): $(net_sockaddr__pidns_translation_OBJECTS) $(net_sockaddr__pidns_translation_DEPENDENCIES) $(EXTRA_net_sockaddr__pidns_translation_DEPENDENCIES) + @rm -f net-sockaddr--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(net_sockaddr__pidns_translation_OBJECTS) $(net_sockaddr__pidns_translation_LDADD) $(LIBS) + net-tpacket_req$(EXEEXT): $(net_tpacket_req_OBJECTS) $(net_tpacket_req_DEPENDENCIES) $(EXTRA_net_tpacket_req_DEPENDENCIES) @rm -f net-tpacket_req$(EXEEXT) $(AM_V_CCLD)$(LINK) $(net_tpacket_req_OBJECTS) $(net_tpacket_req_LDADD) $(LIBS) @@ -6313,6 +8611,10 @@ netlink_audit$(EXEEXT): $(netlink_audit_OBJECTS) $(netlink_audit_DEPENDENCIES) $ @rm -f netlink_audit$(EXEEXT) $(AM_V_CCLD)$(LINK) $(netlink_audit_OBJECTS) $(netlink_audit_LDADD) $(LIBS) +netlink_audit--pidns-translation$(EXEEXT): $(netlink_audit__pidns_translation_OBJECTS) $(netlink_audit__pidns_translation_DEPENDENCIES) $(EXTRA_netlink_audit__pidns_translation_DEPENDENCIES) + @rm -f netlink_audit--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(netlink_audit__pidns_translation_OBJECTS) $(netlink_audit__pidns_translation_LDADD) $(LIBS) + netlink_crypto$(EXEEXT): $(netlink_crypto_OBJECTS) $(netlink_crypto_DEPENDENCIES) $(EXTRA_netlink_crypto_DEPENDENCIES) @rm -f netlink_crypto$(EXEEXT) $(AM_V_CCLD)$(LINK) $(netlink_crypto_OBJECTS) $(netlink_crypto_LDADD) $(LIBS) @@ -6461,6 +8763,10 @@ nlattr_ifla_xdp$(EXEEXT): $(nlattr_ifla_xdp_OBJECTS) $(nlattr_ifla_xdp_DEPENDENC @rm -f nlattr_ifla_xdp$(EXEEXT) $(AM_V_CCLD)$(LINK) $(nlattr_ifla_xdp_OBJECTS) $(nlattr_ifla_xdp_LDADD) $(LIBS) +nlattr_ifla_xdp-y$(EXEEXT): $(nlattr_ifla_xdp_y_OBJECTS) $(nlattr_ifla_xdp_y_DEPENDENCIES) $(EXTRA_nlattr_ifla_xdp_y_DEPENDENCIES) + @rm -f nlattr_ifla_xdp-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(nlattr_ifla_xdp_y_OBJECTS) $(nlattr_ifla_xdp_y_LDADD) $(LIBS) + nlattr_inet_diag_msg$(EXEEXT): $(nlattr_inet_diag_msg_OBJECTS) $(nlattr_inet_diag_msg_DEPENDENCIES) $(EXTRA_nlattr_inet_diag_msg_DEPENDENCIES) @rm -f nlattr_inet_diag_msg$(EXEEXT) $(AM_V_CCLD)$(LINK) $(nlattr_inet_diag_msg_OBJECTS) $(nlattr_inet_diag_msg_LDADD) $(LIBS) @@ -6601,10 +8907,58 @@ open$(EXEEXT): $(open_OBJECTS) $(open_DEPENDENCIES) $(EXTRA_open_DEPENDENCIES) @rm -f open$(EXEEXT) $(AM_V_CCLD)$(LINK) $(open_OBJECTS) $(open_LDADD) $(LIBS) +open_tree$(EXEEXT): $(open_tree_OBJECTS) $(open_tree_DEPENDENCIES) $(EXTRA_open_tree_DEPENDENCIES) + @rm -f open_tree$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(open_tree_OBJECTS) $(open_tree_LDADD) $(LIBS) + +open_tree-P$(EXEEXT): $(open_tree_P_OBJECTS) $(open_tree_P_DEPENDENCIES) $(EXTRA_open_tree_P_DEPENDENCIES) + @rm -f open_tree-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(open_tree_P_OBJECTS) $(open_tree_P_LDADD) $(LIBS) + openat$(EXEEXT): $(openat_OBJECTS) $(openat_DEPENDENCIES) $(EXTRA_openat_DEPENDENCIES) @rm -f openat$(EXEEXT) $(AM_V_CCLD)$(LINK) $(openat_OBJECTS) $(openat_LDADD) $(LIBS) +openat2$(EXEEXT): $(openat2_OBJECTS) $(openat2_DEPENDENCIES) $(EXTRA_openat2_DEPENDENCIES) + @rm -f openat2$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_OBJECTS) $(openat2_LDADD) $(LIBS) + +openat2-Xabbrev$(EXEEXT): $(openat2_Xabbrev_OBJECTS) $(openat2_Xabbrev_DEPENDENCIES) $(EXTRA_openat2_Xabbrev_DEPENDENCIES) + @rm -f openat2-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_Xabbrev_OBJECTS) $(openat2_Xabbrev_LDADD) $(LIBS) + +openat2-Xraw$(EXEEXT): $(openat2_Xraw_OBJECTS) $(openat2_Xraw_DEPENDENCIES) $(EXTRA_openat2_Xraw_DEPENDENCIES) + @rm -f openat2-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_Xraw_OBJECTS) $(openat2_Xraw_LDADD) $(LIBS) + +openat2-Xverbose$(EXEEXT): $(openat2_Xverbose_OBJECTS) $(openat2_Xverbose_DEPENDENCIES) $(EXTRA_openat2_Xverbose_DEPENDENCIES) + @rm -f openat2-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_Xverbose_OBJECTS) $(openat2_Xverbose_LDADD) $(LIBS) + +openat2-v$(EXEEXT): $(openat2_v_OBJECTS) $(openat2_v_DEPENDENCIES) $(EXTRA_openat2_v_DEPENDENCIES) + @rm -f openat2-v$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_v_OBJECTS) $(openat2_v_LDADD) $(LIBS) + +openat2-v-y$(EXEEXT): $(openat2_v_y_OBJECTS) $(openat2_v_y_DEPENDENCIES) $(EXTRA_openat2_v_y_DEPENDENCIES) + @rm -f openat2-v-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_v_y_OBJECTS) $(openat2_v_y_LDADD) $(LIBS) + +openat2-v-y-Xabbrev$(EXEEXT): $(openat2_v_y_Xabbrev_OBJECTS) $(openat2_v_y_Xabbrev_DEPENDENCIES) $(EXTRA_openat2_v_y_Xabbrev_DEPENDENCIES) + @rm -f openat2-v-y-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_v_y_Xabbrev_OBJECTS) $(openat2_v_y_Xabbrev_LDADD) $(LIBS) + +openat2-v-y-Xraw$(EXEEXT): $(openat2_v_y_Xraw_OBJECTS) $(openat2_v_y_Xraw_DEPENDENCIES) $(EXTRA_openat2_v_y_Xraw_DEPENDENCIES) + @rm -f openat2-v-y-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_v_y_Xraw_OBJECTS) $(openat2_v_y_Xraw_LDADD) $(LIBS) + +openat2-v-y-Xverbose$(EXEEXT): $(openat2_v_y_Xverbose_OBJECTS) $(openat2_v_y_Xverbose_DEPENDENCIES) $(EXTRA_openat2_v_y_Xverbose_DEPENDENCIES) + @rm -f openat2-v-y-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_v_y_Xverbose_OBJECTS) $(openat2_v_y_Xverbose_LDADD) $(LIBS) + +openat2-y$(EXEEXT): $(openat2_y_OBJECTS) $(openat2_y_DEPENDENCIES) $(EXTRA_openat2_y_DEPENDENCIES) + @rm -f openat2-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(openat2_y_OBJECTS) $(openat2_y_LDADD) $(LIBS) + orphaned_process_group$(EXEEXT): $(orphaned_process_group_OBJECTS) $(orphaned_process_group_DEPENDENCIES) $(EXTRA_orphaned_process_group_DEPENDENCIES) @rm -f orphaned_process_group$(EXEEXT) $(AM_V_CCLD)$(LINK) $(orphaned_process_group_OBJECTS) $(orphaned_process_group_LDADD) $(LIBS) @@ -6649,10 +9003,62 @@ personality-Xverbose$(EXEEXT): $(personality_Xverbose_OBJECTS) $(personality_Xve @rm -f personality-Xverbose$(EXEEXT) $(AM_V_CCLD)$(LINK) $(personality_Xverbose_OBJECTS) $(personality_Xverbose_LDADD) $(LIBS) +pidfd_getfd$(EXEEXT): $(pidfd_getfd_OBJECTS) $(pidfd_getfd_DEPENDENCIES) $(EXTRA_pidfd_getfd_DEPENDENCIES) + @rm -f pidfd_getfd$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_getfd_OBJECTS) $(pidfd_getfd_LDADD) $(LIBS) + +pidfd_getfd-y$(EXEEXT): $(pidfd_getfd_y_OBJECTS) $(pidfd_getfd_y_DEPENDENCIES) $(EXTRA_pidfd_getfd_y_DEPENDENCIES) + @rm -f pidfd_getfd-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_getfd_y_OBJECTS) $(pidfd_getfd_y_LDADD) $(LIBS) + +pidfd_getfd-yy$(EXEEXT): $(pidfd_getfd_yy_OBJECTS) $(pidfd_getfd_yy_DEPENDENCIES) $(EXTRA_pidfd_getfd_yy_DEPENDENCIES) + @rm -f pidfd_getfd-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_getfd_yy_OBJECTS) $(pidfd_getfd_yy_LDADD) $(LIBS) + +pidfd_open$(EXEEXT): $(pidfd_open_OBJECTS) $(pidfd_open_DEPENDENCIES) $(EXTRA_pidfd_open_DEPENDENCIES) + @rm -f pidfd_open$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_open_OBJECTS) $(pidfd_open_LDADD) $(LIBS) + +pidfd_open--decode-fd-path$(EXEEXT): $(pidfd_open__decode_fd_path_OBJECTS) $(pidfd_open__decode_fd_path_DEPENDENCIES) $(EXTRA_pidfd_open__decode_fd_path_DEPENDENCIES) + @rm -f pidfd_open--decode-fd-path$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_open__decode_fd_path_OBJECTS) $(pidfd_open__decode_fd_path_LDADD) $(LIBS) + +pidfd_open--decode-fd-pidfd$(EXEEXT): $(pidfd_open__decode_fd_pidfd_OBJECTS) $(pidfd_open__decode_fd_pidfd_DEPENDENCIES) $(EXTRA_pidfd_open__decode_fd_pidfd_DEPENDENCIES) + @rm -f pidfd_open--decode-fd-pidfd$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_open__decode_fd_pidfd_OBJECTS) $(pidfd_open__decode_fd_pidfd_LDADD) $(LIBS) + +pidfd_open--decode-fd-socket$(EXEEXT): $(pidfd_open__decode_fd_socket_OBJECTS) $(pidfd_open__decode_fd_socket_DEPENDENCIES) $(EXTRA_pidfd_open__decode_fd_socket_DEPENDENCIES) + @rm -f pidfd_open--decode-fd-socket$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_open__decode_fd_socket_OBJECTS) $(pidfd_open__decode_fd_socket_LDADD) $(LIBS) + +pidfd_open--pidns-translation$(EXEEXT): $(pidfd_open__pidns_translation_OBJECTS) $(pidfd_open__pidns_translation_DEPENDENCIES) $(EXTRA_pidfd_open__pidns_translation_DEPENDENCIES) + @rm -f pidfd_open--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_open__pidns_translation_OBJECTS) $(pidfd_open__pidns_translation_LDADD) $(LIBS) + +pidfd_open-P$(EXEEXT): $(pidfd_open_P_OBJECTS) $(pidfd_open_P_DEPENDENCIES) $(EXTRA_pidfd_open_P_DEPENDENCIES) + @rm -f pidfd_open-P$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_open_P_OBJECTS) $(pidfd_open_P_LDADD) $(LIBS) + +pidfd_open-y$(EXEEXT): $(pidfd_open_y_OBJECTS) $(pidfd_open_y_DEPENDENCIES) $(EXTRA_pidfd_open_y_DEPENDENCIES) + @rm -f pidfd_open-y$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_open_y_OBJECTS) $(pidfd_open_y_LDADD) $(LIBS) + +pidfd_open-yy$(EXEEXT): $(pidfd_open_yy_OBJECTS) $(pidfd_open_yy_DEPENDENCIES) $(EXTRA_pidfd_open_yy_DEPENDENCIES) + @rm -f pidfd_open-yy$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_open_yy_OBJECTS) $(pidfd_open_yy_LDADD) $(LIBS) + pidfd_send_signal$(EXEEXT): $(pidfd_send_signal_OBJECTS) $(pidfd_send_signal_DEPENDENCIES) $(EXTRA_pidfd_send_signal_DEPENDENCIES) @rm -f pidfd_send_signal$(EXEEXT) $(AM_V_CCLD)$(LINK) $(pidfd_send_signal_OBJECTS) $(pidfd_send_signal_LDADD) $(LIBS) +pidfd_send_signal--pidns-translation$(EXEEXT): $(pidfd_send_signal__pidns_translation_OBJECTS) $(pidfd_send_signal__pidns_translation_DEPENDENCIES) $(EXTRA_pidfd_send_signal__pidns_translation_DEPENDENCIES) + @rm -f pidfd_send_signal--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidfd_send_signal__pidns_translation_OBJECTS) $(pidfd_send_signal__pidns_translation_LDADD) $(LIBS) + +pidns-cache$(EXEEXT): $(pidns_cache_OBJECTS) $(pidns_cache_DEPENDENCIES) $(EXTRA_pidns_cache_DEPENDENCIES) + @rm -f pidns-cache$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pidns_cache_OBJECTS) $(pidns_cache_LDADD) $(LIBS) + pipe$(EXEEXT): $(pipe_OBJECTS) $(pipe_DEPENDENCIES) $(EXTRA_pipe_DEPENDENCIES) @rm -f pipe$(EXEEXT) $(AM_V_CCLD)$(LINK) $(pipe_OBJECTS) $(pipe_LDADD) $(LIBS) @@ -6757,6 +9163,10 @@ print_maxfd$(EXEEXT): $(print_maxfd_OBJECTS) $(print_maxfd_DEPENDENCIES) $(EXTRA @rm -f print_maxfd$(EXEEXT) $(AM_V_CCLD)$(LINK) $(print_maxfd_OBJECTS) $(print_maxfd_LDADD) $(LIBS) +print_ppid_tracerpid$(EXEEXT): $(print_ppid_tracerpid_OBJECTS) $(print_ppid_tracerpid_DEPENDENCIES) $(EXTRA_print_ppid_tracerpid_DEPENDENCIES) + @rm -f print_ppid_tracerpid$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(print_ppid_tracerpid_OBJECTS) $(print_ppid_tracerpid_LDADD) $(LIBS) + printpath-umovestr$(EXEEXT): $(printpath_umovestr_OBJECTS) $(printpath_umovestr_DEPENDENCIES) $(EXTRA_printpath_umovestr_DEPENDENCIES) @rm -f printpath-umovestr$(EXEEXT) $(AM_V_CCLD)$(LINK) $(printpath_umovestr_OBJECTS) $(printpath_umovestr_LDADD) $(LIBS) @@ -6801,14 +9211,26 @@ prlimit64$(EXEEXT): $(prlimit64_OBJECTS) $(prlimit64_DEPENDENCIES) $(EXTRA_prlim @rm -f prlimit64$(EXEEXT) $(AM_V_CCLD)$(LINK) $(prlimit64_OBJECTS) $(prlimit64_LDADD) $(LIBS) +prlimit64--pidns-translation$(EXEEXT): $(prlimit64__pidns_translation_OBJECTS) $(prlimit64__pidns_translation_DEPENDENCIES) $(EXTRA_prlimit64__pidns_translation_DEPENDENCIES) + @rm -f prlimit64--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(prlimit64__pidns_translation_OBJECTS) $(prlimit64__pidns_translation_LDADD) $(LIBS) + process_vm_readv$(EXEEXT): $(process_vm_readv_OBJECTS) $(process_vm_readv_DEPENDENCIES) $(EXTRA_process_vm_readv_DEPENDENCIES) @rm -f process_vm_readv$(EXEEXT) $(AM_V_CCLD)$(LINK) $(process_vm_readv_OBJECTS) $(process_vm_readv_LDADD) $(LIBS) +process_vm_readv--pidns-translation$(EXEEXT): $(process_vm_readv__pidns_translation_OBJECTS) $(process_vm_readv__pidns_translation_DEPENDENCIES) $(EXTRA_process_vm_readv__pidns_translation_DEPENDENCIES) + @rm -f process_vm_readv--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(process_vm_readv__pidns_translation_OBJECTS) $(process_vm_readv__pidns_translation_LDADD) $(LIBS) + process_vm_writev$(EXEEXT): $(process_vm_writev_OBJECTS) $(process_vm_writev_DEPENDENCIES) $(EXTRA_process_vm_writev_DEPENDENCIES) @rm -f process_vm_writev$(EXEEXT) $(AM_V_CCLD)$(LINK) $(process_vm_writev_OBJECTS) $(process_vm_writev_LDADD) $(LIBS) +process_vm_writev--pidns-translation$(EXEEXT): $(process_vm_writev__pidns_translation_OBJECTS) $(process_vm_writev__pidns_translation_DEPENDENCIES) $(EXTRA_process_vm_writev__pidns_translation_DEPENDENCIES) + @rm -f process_vm_writev--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(process_vm_writev__pidns_translation_OBJECTS) $(process_vm_writev__pidns_translation_LDADD) $(LIBS) + pselect6$(EXEEXT): $(pselect6_OBJECTS) $(pselect6_DEPENDENCIES) $(EXTRA_pselect6_DEPENDENCIES) @rm -f pselect6$(EXEEXT) $(AM_V_CCLD)$(LINK) $(pselect6_OBJECTS) $(pselect6_LDADD) $(LIBS) @@ -6917,10 +9339,18 @@ reboot$(EXEEXT): $(reboot_OBJECTS) $(reboot_DEPENDENCIES) $(EXTRA_reboot_DEPENDE @rm -f reboot$(EXEEXT) $(AM_V_CCLD)$(LINK) $(reboot_OBJECTS) $(reboot_LDADD) $(LIBS) +recv-MSG_TRUNC$(EXEEXT): $(recv_MSG_TRUNC_OBJECTS) $(recv_MSG_TRUNC_DEPENDENCIES) $(EXTRA_recv_MSG_TRUNC_DEPENDENCIES) + @rm -f recv-MSG_TRUNC$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(recv_MSG_TRUNC_OBJECTS) $(recv_MSG_TRUNC_LDADD) $(LIBS) + recvfrom$(EXEEXT): $(recvfrom_OBJECTS) $(recvfrom_DEPENDENCIES) $(EXTRA_recvfrom_DEPENDENCIES) @rm -f recvfrom$(EXEEXT) $(AM_V_CCLD)$(LINK) $(recvfrom_OBJECTS) $(recvfrom_LDADD) $(LIBS) +recvfrom-MSG_TRUNC$(EXEEXT): $(recvfrom_MSG_TRUNC_OBJECTS) $(recvfrom_MSG_TRUNC_DEPENDENCIES) $(EXTRA_recvfrom_MSG_TRUNC_DEPENDENCIES) + @rm -f recvfrom-MSG_TRUNC$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(recvfrom_MSG_TRUNC_OBJECTS) $(recvfrom_MSG_TRUNC_LDADD) $(LIBS) + recvmmsg-timeout$(EXEEXT): $(recvmmsg_timeout_OBJECTS) $(recvmmsg_timeout_DEPENDENCIES) $(EXTRA_recvmmsg_timeout_DEPENDENCIES) @rm -f recvmmsg-timeout$(EXEEXT) $(AM_V_CCLD)$(LINK) $(recvmmsg_timeout_OBJECTS) $(recvmmsg_timeout_LDADD) $(LIBS) @@ -6993,6 +9423,10 @@ rt_sigqueueinfo$(EXEEXT): $(rt_sigqueueinfo_OBJECTS) $(rt_sigqueueinfo_DEPENDENC @rm -f rt_sigqueueinfo$(EXEEXT) $(AM_V_CCLD)$(LINK) $(rt_sigqueueinfo_OBJECTS) $(rt_sigqueueinfo_LDADD) $(LIBS) +rt_sigqueueinfo--pidns-translation$(EXEEXT): $(rt_sigqueueinfo__pidns_translation_OBJECTS) $(rt_sigqueueinfo__pidns_translation_DEPENDENCIES) $(EXTRA_rt_sigqueueinfo__pidns_translation_DEPENDENCIES) + @rm -f rt_sigqueueinfo--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(rt_sigqueueinfo__pidns_translation_OBJECTS) $(rt_sigqueueinfo__pidns_translation_LDADD) $(LIBS) + rt_sigreturn$(EXEEXT): $(rt_sigreturn_OBJECTS) $(rt_sigreturn_DEPENDENCIES) $(EXTRA_rt_sigreturn_DEPENDENCIES) @rm -f rt_sigreturn$(EXEEXT) $(AM_V_CCLD)$(LINK) $(rt_sigreturn_OBJECTS) $(rt_sigreturn_LDADD) $(LIBS) @@ -7009,6 +9443,10 @@ rt_tgsigqueueinfo$(EXEEXT): $(rt_tgsigqueueinfo_OBJECTS) $(rt_tgsigqueueinfo_DEP @rm -f rt_tgsigqueueinfo$(EXEEXT) $(AM_V_CCLD)$(LINK) $(rt_tgsigqueueinfo_OBJECTS) $(rt_tgsigqueueinfo_LDADD) $(LIBS) +rt_tgsigqueueinfo--pidns-translation$(EXEEXT): $(rt_tgsigqueueinfo__pidns_translation_OBJECTS) $(rt_tgsigqueueinfo__pidns_translation_DEPENDENCIES) $(EXTRA_rt_tgsigqueueinfo__pidns_translation_DEPENDENCIES) + @rm -f rt_tgsigqueueinfo--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(rt_tgsigqueueinfo__pidns_translation_OBJECTS) $(rt_tgsigqueueinfo__pidns_translation_LDADD) $(LIBS) + run_expect_termsig$(EXEEXT): $(run_expect_termsig_OBJECTS) $(run_expect_termsig_DEPENDENCIES) $(EXTRA_run_expect_termsig_DEPENDENCIES) @rm -f run_expect_termsig$(EXEEXT) $(AM_V_CCLD)$(LINK) $(run_expect_termsig_OBJECTS) $(run_expect_termsig_LDADD) $(LIBS) @@ -7049,18 +9487,34 @@ sched_xetaffinity$(EXEEXT): $(sched_xetaffinity_OBJECTS) $(sched_xetaffinity_DEP @rm -f sched_xetaffinity$(EXEEXT) $(AM_V_CCLD)$(LINK) $(sched_xetaffinity_OBJECTS) $(sched_xetaffinity_LDADD) $(LIBS) +sched_xetaffinity--pidns-translation$(EXEEXT): $(sched_xetaffinity__pidns_translation_OBJECTS) $(sched_xetaffinity__pidns_translation_DEPENDENCIES) $(EXTRA_sched_xetaffinity__pidns_translation_DEPENDENCIES) + @rm -f sched_xetaffinity--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(sched_xetaffinity__pidns_translation_OBJECTS) $(sched_xetaffinity__pidns_translation_LDADD) $(LIBS) + sched_xetattr$(EXEEXT): $(sched_xetattr_OBJECTS) $(sched_xetattr_DEPENDENCIES) $(EXTRA_sched_xetattr_DEPENDENCIES) @rm -f sched_xetattr$(EXEEXT) $(AM_V_CCLD)$(LINK) $(sched_xetattr_OBJECTS) $(sched_xetattr_LDADD) $(LIBS) +sched_xetattr--pidns-translation$(EXEEXT): $(sched_xetattr__pidns_translation_OBJECTS) $(sched_xetattr__pidns_translation_DEPENDENCIES) $(EXTRA_sched_xetattr__pidns_translation_DEPENDENCIES) + @rm -f sched_xetattr--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(sched_xetattr__pidns_translation_OBJECTS) $(sched_xetattr__pidns_translation_LDADD) $(LIBS) + sched_xetparam$(EXEEXT): $(sched_xetparam_OBJECTS) $(sched_xetparam_DEPENDENCIES) $(EXTRA_sched_xetparam_DEPENDENCIES) @rm -f sched_xetparam$(EXEEXT) $(AM_V_CCLD)$(LINK) $(sched_xetparam_OBJECTS) $(sched_xetparam_LDADD) $(LIBS) +sched_xetparam--pidns-translation$(EXEEXT): $(sched_xetparam__pidns_translation_OBJECTS) $(sched_xetparam__pidns_translation_DEPENDENCIES) $(EXTRA_sched_xetparam__pidns_translation_DEPENDENCIES) + @rm -f sched_xetparam--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(sched_xetparam__pidns_translation_OBJECTS) $(sched_xetparam__pidns_translation_LDADD) $(LIBS) + sched_xetscheduler$(EXEEXT): $(sched_xetscheduler_OBJECTS) $(sched_xetscheduler_DEPENDENCIES) $(EXTRA_sched_xetscheduler_DEPENDENCIES) @rm -f sched_xetscheduler$(EXEEXT) $(AM_V_CCLD)$(LINK) $(sched_xetscheduler_OBJECTS) $(sched_xetscheduler_LDADD) $(LIBS) +sched_xetscheduler--pidns-translation$(EXEEXT): $(sched_xetscheduler__pidns_translation_OBJECTS) $(sched_xetscheduler__pidns_translation_DEPENDENCIES) $(EXTRA_sched_xetscheduler__pidns_translation_DEPENDENCIES) + @rm -f sched_xetscheduler--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(sched_xetscheduler__pidns_translation_OBJECTS) $(sched_xetscheduler__pidns_translation_LDADD) $(LIBS) + sched_yield$(EXEEXT): $(sched_yield_OBJECTS) $(sched_yield_DEPENDENCIES) $(EXTRA_sched_yield_DEPENDENCIES) @rm -f sched_yield$(EXEEXT) $(AM_V_CCLD)$(LINK) $(sched_yield_OBJECTS) $(sched_yield_LDADD) $(LIBS) @@ -7097,6 +9551,14 @@ semop$(EXEEXT): $(semop_OBJECTS) $(semop_DEPENDENCIES) $(EXTRA_semop_DEPENDENCIE @rm -f semop$(EXEEXT) $(AM_V_CCLD)$(LINK) $(semop_OBJECTS) $(semop_LDADD) $(LIBS) +semop-indirect$(EXEEXT): $(semop_indirect_OBJECTS) $(semop_indirect_DEPENDENCIES) $(EXTRA_semop_indirect_DEPENDENCIES) + @rm -f semop-indirect$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(semop_indirect_OBJECTS) $(semop_indirect_LDADD) $(LIBS) + +semtimedop$(EXEEXT): $(semtimedop_OBJECTS) $(semtimedop_DEPENDENCIES) $(EXTRA_semtimedop_DEPENDENCIES) + @rm -f semtimedop$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(semtimedop_OBJECTS) $(semtimedop_LDADD) $(LIBS) + sendfile$(EXEEXT): $(sendfile_OBJECTS) $(sendfile_DEPENDENCIES) $(EXTRA_sendfile_DEPENDENCIES) @rm -f sendfile$(EXEEXT) $(AM_V_CCLD)$(LINK) $(sendfile_OBJECTS) $(sendfile_LDADD) $(LIBS) @@ -7109,6 +9571,18 @@ set_mempolicy$(EXEEXT): $(set_mempolicy_OBJECTS) $(set_mempolicy_DEPENDENCIES) $ @rm -f set_mempolicy$(EXEEXT) $(AM_V_CCLD)$(LINK) $(set_mempolicy_OBJECTS) $(set_mempolicy_LDADD) $(LIBS) +set_mempolicy-Xabbrev$(EXEEXT): $(set_mempolicy_Xabbrev_OBJECTS) $(set_mempolicy_Xabbrev_DEPENDENCIES) $(EXTRA_set_mempolicy_Xabbrev_DEPENDENCIES) + @rm -f set_mempolicy-Xabbrev$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(set_mempolicy_Xabbrev_OBJECTS) $(set_mempolicy_Xabbrev_LDADD) $(LIBS) + +set_mempolicy-Xraw$(EXEEXT): $(set_mempolicy_Xraw_OBJECTS) $(set_mempolicy_Xraw_DEPENDENCIES) $(EXTRA_set_mempolicy_Xraw_DEPENDENCIES) + @rm -f set_mempolicy-Xraw$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(set_mempolicy_Xraw_OBJECTS) $(set_mempolicy_Xraw_LDADD) $(LIBS) + +set_mempolicy-Xverbose$(EXEEXT): $(set_mempolicy_Xverbose_OBJECTS) $(set_mempolicy_Xverbose_DEPENDENCIES) $(EXTRA_set_mempolicy_Xverbose_DEPENDENCIES) + @rm -f set_mempolicy-Xverbose$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(set_mempolicy_Xverbose_OBJECTS) $(set_mempolicy_Xverbose_LDADD) $(LIBS) + set_ptracer_any$(EXEEXT): $(set_ptracer_any_OBJECTS) $(set_ptracer_any_DEPENDENCIES) $(EXTRA_set_ptracer_any_DEPENDENCIES) @rm -f set_ptracer_any$(EXEEXT) $(AM_V_CCLD)$(LINK) $(set_ptracer_any_OBJECTS) $(set_ptracer_any_LDADD) $(LIBS) @@ -7165,6 +9639,10 @@ setns$(EXEEXT): $(setns_OBJECTS) $(setns_DEPENDENCIES) $(EXTRA_setns_DEPENDENCIE @rm -f setns$(EXEEXT) $(AM_V_CCLD)$(LINK) $(setns_OBJECTS) $(setns_LDADD) $(LIBS) +setpgrp-exec$(EXEEXT): $(setpgrp_exec_OBJECTS) $(setpgrp_exec_DEPENDENCIES) $(EXTRA_setpgrp_exec_DEPENDENCIES) + @rm -f setpgrp-exec$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(setpgrp_exec_OBJECTS) $(setpgrp_exec_LDADD) $(LIBS) + setregid$(EXEEXT): $(setregid_OBJECTS) $(setregid_DEPENDENCIES) $(EXTRA_setregid_DEPENDENCIES) @rm -f setregid$(EXEEXT) $(AM_V_CCLD)$(LINK) $(setregid_OBJECTS) $(setregid_LDADD) $(LIBS) @@ -7249,6 +9727,10 @@ signal_receive$(EXEEXT): $(signal_receive_OBJECTS) $(signal_receive_DEPENDENCIES @rm -f signal_receive$(EXEEXT) $(AM_V_CCLD)$(LINK) $(signal_receive_OBJECTS) $(signal_receive_LDADD) $(LIBS) +signal_receive--pidns-translation$(EXEEXT): $(signal_receive__pidns_translation_OBJECTS) $(signal_receive__pidns_translation_DEPENDENCIES) $(EXTRA_signal_receive__pidns_translation_DEPENDENCIES) + @rm -f signal_receive--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(signal_receive__pidns_translation_OBJECTS) $(signal_receive__pidns_translation_LDADD) $(LIBS) + signalfd4$(EXEEXT): $(signalfd4_OBJECTS) $(signalfd4_DEPENDENCIES) $(EXTRA_signalfd4_DEPENDENCIES) @rm -f signalfd4$(EXEEXT) $(AM_V_CCLD)$(LINK) $(signalfd4_OBJECTS) $(signalfd4_LDADD) $(LIBS) @@ -7285,6 +9767,10 @@ so_peercred$(EXEEXT): $(so_peercred_OBJECTS) $(so_peercred_DEPENDENCIES) $(EXTRA @rm -f so_peercred$(EXEEXT) $(AM_V_CCLD)$(LINK) $(so_peercred_OBJECTS) $(so_peercred_LDADD) $(LIBS) +so_peercred--pidns-translation$(EXEEXT): $(so_peercred__pidns_translation_OBJECTS) $(so_peercred__pidns_translation_DEPENDENCIES) $(EXTRA_so_peercred__pidns_translation_DEPENDENCIES) + @rm -f so_peercred--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(so_peercred__pidns_translation_OBJECTS) $(so_peercred__pidns_translation_LDADD) $(LIBS) + so_peercred-Xabbrev$(EXEEXT): $(so_peercred_Xabbrev_OBJECTS) $(so_peercred_Xabbrev_DEPENDENCIES) $(EXTRA_so_peercred_Xabbrev_DEPENDENCIES) @rm -f so_peercred-Xabbrev$(EXEEXT) $(AM_V_CCLD)$(LINK) $(so_peercred_Xabbrev_OBJECTS) $(so_peercred_Xabbrev_LDADD) $(LIBS) @@ -7345,6 +9831,10 @@ stack-fcall$(EXEEXT): $(stack_fcall_OBJECTS) $(stack_fcall_DEPENDENCIES) $(EXTRA @rm -f stack-fcall$(EXEEXT) $(AM_V_CCLD)$(LINK) $(stack_fcall_OBJECTS) $(stack_fcall_LDADD) $(LIBS) +stack-fcall-attach$(EXEEXT): $(stack_fcall_attach_OBJECTS) $(stack_fcall_attach_DEPENDENCIES) $(EXTRA_stack_fcall_attach_DEPENDENCIES) + @rm -f stack-fcall-attach$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(stack_fcall_attach_OBJECTS) $(stack_fcall_attach_LDADD) $(LIBS) + stack-fcall-mangled$(EXEEXT): $(stack_fcall_mangled_OBJECTS) $(stack_fcall_mangled_DEPENDENCIES) $(EXTRA_stack_fcall_mangled_DEPENDENCIES) @rm -f stack-fcall-mangled$(EXEEXT) $(AM_V_CCLD)$(LINK) $(stack_fcall_mangled_OBJECTS) $(stack_fcall_mangled_LDADD) $(LIBS) @@ -7365,10 +9855,82 @@ statfs64$(EXEEXT): $(statfs64_OBJECTS) $(statfs64_DEPENDENCIES) $(EXTRA_statfs64 @rm -f statfs64$(EXEEXT) $(AM_V_CCLD)$(LINK) $(statfs64_OBJECTS) $(statfs64_LDADD) $(LIBS) +status-all$(EXEEXT): $(status_all_OBJECTS) $(status_all_DEPENDENCIES) $(EXTRA_status_all_DEPENDENCIES) + @rm -f status-all$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_all_OBJECTS) $(status_all_LDADD) $(LIBS) + +status-failed$(EXEEXT): $(status_failed_OBJECTS) $(status_failed_DEPENDENCIES) $(EXTRA_status_failed_DEPENDENCIES) + @rm -f status-failed$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_failed_OBJECTS) $(status_failed_LDADD) $(LIBS) + +status-failed-long$(EXEEXT): $(status_failed_long_OBJECTS) $(status_failed_long_DEPENDENCIES) $(EXTRA_status_failed_long_DEPENDENCIES) + @rm -f status-failed-long$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_failed_long_OBJECTS) $(status_failed_long_LDADD) $(LIBS) + +status-failed-status$(EXEEXT): $(status_failed_status_OBJECTS) $(status_failed_status_DEPENDENCIES) $(EXTRA_status_failed_status_DEPENDENCIES) + @rm -f status-failed-status$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_failed_status_OBJECTS) $(status_failed_status_LDADD) $(LIBS) + +status-none$(EXEEXT): $(status_none_OBJECTS) $(status_none_DEPENDENCIES) $(EXTRA_status_none_DEPENDENCIES) + @rm -f status-none$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_none_OBJECTS) $(status_none_LDADD) $(LIBS) + +status-none-f$(EXEEXT): $(status_none_f_OBJECTS) $(status_none_f_DEPENDENCIES) $(EXTRA_status_none_f_DEPENDENCIES) + @rm -f status-none-f$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_none_f_OBJECTS) $(status_none_f_LDADD) $(LIBS) + +status-none-threads$(EXEEXT): $(status_none_threads_OBJECTS) $(status_none_threads_DEPENDENCIES) $(EXTRA_status_none_threads_DEPENDENCIES) + @rm -f status-none-threads$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_none_threads_OBJECTS) $(status_none_threads_LDADD) $(LIBS) + +status-successful$(EXEEXT): $(status_successful_OBJECTS) $(status_successful_DEPENDENCIES) $(EXTRA_status_successful_DEPENDENCIES) + @rm -f status-successful$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_successful_OBJECTS) $(status_successful_LDADD) $(LIBS) + +status-successful-long$(EXEEXT): $(status_successful_long_OBJECTS) $(status_successful_long_DEPENDENCIES) $(EXTRA_status_successful_long_DEPENDENCIES) + @rm -f status-successful-long$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_successful_long_OBJECTS) $(status_successful_long_LDADD) $(LIBS) + +status-successful-status$(EXEEXT): $(status_successful_status_OBJECTS) $(status_successful_status_DEPENDENCIES) $(EXTRA_status_successful_status_DEPENDENCIES) + @rm -f status-successful-status$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_successful_status_OBJECTS) $(status_successful_status_LDADD) $(LIBS) + +status-unfinished$(EXEEXT): $(status_unfinished_OBJECTS) $(status_unfinished_DEPENDENCIES) $(EXTRA_status_unfinished_DEPENDENCIES) + @rm -f status-unfinished$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_unfinished_OBJECTS) $(status_unfinished_LDADD) $(LIBS) + +status-unfinished-threads$(EXEEXT): $(status_unfinished_threads_OBJECTS) $(status_unfinished_threads_DEPENDENCIES) $(EXTRA_status_unfinished_threads_DEPENDENCIES) + @rm -f status-unfinished-threads$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(status_unfinished_threads_OBJECTS) $(status_unfinished_threads_LDADD) $(LIBS) + statx$(EXEEXT): $(statx_OBJECTS) $(statx_DEPENDENCIES) $(EXTRA_statx_DEPENDENCIES) @rm -f statx$(EXEEXT) $(AM_V_CCLD)$(LINK) $(statx_OBJECTS) $(statx_LDADD) $(LIBS) +strace--strings-in-hex$(EXEEXT): $(strace__strings_in_hex_OBJECTS) $(strace__strings_in_hex_DEPENDENCIES) $(EXTRA_strace__strings_in_hex_DEPENDENCIES) + @rm -f strace--strings-in-hex$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(strace__strings_in_hex_OBJECTS) $(strace__strings_in_hex_LDADD) $(LIBS) + +strace--strings-in-hex-all$(EXEEXT): $(strace__strings_in_hex_all_OBJECTS) $(strace__strings_in_hex_all_DEPENDENCIES) $(EXTRA_strace__strings_in_hex_all_DEPENDENCIES) + @rm -f strace--strings-in-hex-all$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(strace__strings_in_hex_all_OBJECTS) $(strace__strings_in_hex_all_LDADD) $(LIBS) + +strace--strings-in-hex-non-ascii$(EXEEXT): $(strace__strings_in_hex_non_ascii_OBJECTS) $(strace__strings_in_hex_non_ascii_DEPENDENCIES) $(EXTRA_strace__strings_in_hex_non_ascii_DEPENDENCIES) + @rm -f strace--strings-in-hex-non-ascii$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(strace__strings_in_hex_non_ascii_OBJECTS) $(strace__strings_in_hex_non_ascii_LDADD) $(LIBS) + +strace-n$(EXEEXT): $(strace_n_OBJECTS) $(strace_n_DEPENDENCIES) $(EXTRA_strace_n_DEPENDENCIES) + @rm -f strace-n$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(strace_n_OBJECTS) $(strace_n_LDADD) $(LIBS) + +strace-x$(EXEEXT): $(strace_x_OBJECTS) $(strace_x_DEPENDENCIES) $(EXTRA_strace_x_DEPENDENCIES) + @rm -f strace-x$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(strace_x_OBJECTS) $(strace_x_LDADD) $(LIBS) + +strace-xx$(EXEEXT): $(strace_xx_OBJECTS) $(strace_xx_DEPENDENCIES) $(EXTRA_strace_xx_DEPENDENCIES) + @rm -f strace-xx$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(strace_xx_OBJECTS) $(strace_xx_LDADD) $(LIBS) + swap$(EXEEXT): $(swap_OBJECTS) $(swap_DEPENDENCIES) $(EXTRA_swap_DEPENDENCIES) @rm -f swap$(EXEEXT) $(AM_V_CCLD)$(LINK) $(swap_OBJECTS) $(swap_LDADD) $(LIBS) @@ -7405,14 +9967,42 @@ syslog$(EXEEXT): $(syslog_OBJECTS) $(syslog_DEPENDENCIES) $(EXTRA_syslog_DEPENDE @rm -f syslog$(EXEEXT) $(AM_V_CCLD)$(LINK) $(syslog_OBJECTS) $(syslog_LDADD) $(LIBS) +syslog-success$(EXEEXT): $(syslog_success_OBJECTS) $(syslog_success_DEPENDENCIES) $(EXTRA_syslog_success_DEPENDENCIES) + @rm -f syslog-success$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(syslog_success_OBJECTS) $(syslog_success_LDADD) $(LIBS) + tee$(EXEEXT): $(tee_OBJECTS) $(tee_DEPENDENCIES) $(EXTRA_tee_DEPENDENCIES) @rm -f tee$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tee_OBJECTS) $(tee_LDADD) $(LIBS) +tgkill$(EXEEXT): $(tgkill_OBJECTS) $(tgkill_DEPENDENCIES) $(EXTRA_tgkill_DEPENDENCIES) + @rm -f tgkill$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(tgkill_OBJECTS) $(tgkill_LDADD) $(LIBS) + +tgkill--pidns-translation$(EXEEXT): $(tgkill__pidns_translation_OBJECTS) $(tgkill__pidns_translation_DEPENDENCIES) $(EXTRA_tgkill__pidns_translation_DEPENDENCIES) + @rm -f tgkill--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(tgkill__pidns_translation_OBJECTS) $(tgkill__pidns_translation_LDADD) $(LIBS) + threads-execve$(EXEEXT): $(threads_execve_OBJECTS) $(threads_execve_DEPENDENCIES) $(EXTRA_threads_execve_DEPENDENCIES) @rm -f threads-execve$(EXEEXT) $(AM_V_CCLD)$(LINK) $(threads_execve_OBJECTS) $(threads_execve_LDADD) $(LIBS) +threads-execve--quiet-thread-execve$(EXEEXT): $(threads_execve__quiet_thread_execve_OBJECTS) $(threads_execve__quiet_thread_execve_DEPENDENCIES) $(EXTRA_threads_execve__quiet_thread_execve_DEPENDENCIES) + @rm -f threads-execve--quiet-thread-execve$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(threads_execve__quiet_thread_execve_OBJECTS) $(threads_execve__quiet_thread_execve_LDADD) $(LIBS) + +threads-execve-q$(EXEEXT): $(threads_execve_q_OBJECTS) $(threads_execve_q_DEPENDENCIES) $(EXTRA_threads_execve_q_DEPENDENCIES) + @rm -f threads-execve-q$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(threads_execve_q_OBJECTS) $(threads_execve_q_LDADD) $(LIBS) + +threads-execve-qq$(EXEEXT): $(threads_execve_qq_OBJECTS) $(threads_execve_qq_DEPENDENCIES) $(EXTRA_threads_execve_qq_DEPENDENCIES) + @rm -f threads-execve-qq$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(threads_execve_qq_OBJECTS) $(threads_execve_qq_LDADD) $(LIBS) + +threads-execve-qqq$(EXEEXT): $(threads_execve_qqq_OBJECTS) $(threads_execve_qqq_DEPENDENCIES) $(EXTRA_threads_execve_qqq_DEPENDENCIES) + @rm -f threads-execve-qqq$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(threads_execve_qqq_OBJECTS) $(threads_execve_qqq_LDADD) $(LIBS) + time$(EXEEXT): $(time_OBJECTS) $(time_DEPENDENCIES) $(EXTRA_time_DEPENDENCIES) @rm -f time$(EXEEXT) $(AM_V_CCLD)$(LINK) $(time_OBJECTS) $(time_LDADD) $(LIBS) @@ -7437,6 +10027,22 @@ times-fail$(EXEEXT): $(times_fail_OBJECTS) $(times_fail_DEPENDENCIES) $(EXTRA_ti @rm -f times-fail$(EXEEXT) $(AM_V_CCLD)$(LINK) $(times_fail_OBJECTS) $(times_fail_LDADD) $(LIBS) +tkill$(EXEEXT): $(tkill_OBJECTS) $(tkill_DEPENDENCIES) $(EXTRA_tkill_DEPENDENCIES) + @rm -f tkill$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(tkill_OBJECTS) $(tkill_LDADD) $(LIBS) + +tkill--pidns-translation$(EXEEXT): $(tkill__pidns_translation_OBJECTS) $(tkill__pidns_translation_DEPENDENCIES) $(EXTRA_tkill__pidns_translation_DEPENDENCIES) + @rm -f tkill--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(tkill__pidns_translation_OBJECTS) $(tkill__pidns_translation_LDADD) $(LIBS) + +tracer_ppid_pgid_sid$(EXEEXT): $(tracer_ppid_pgid_sid_OBJECTS) $(tracer_ppid_pgid_sid_DEPENDENCIES) $(EXTRA_tracer_ppid_pgid_sid_DEPENDENCIES) + @rm -f tracer_ppid_pgid_sid$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(tracer_ppid_pgid_sid_OBJECTS) $(tracer_ppid_pgid_sid_LDADD) $(LIBS) + +trie_test$(EXEEXT): $(trie_test_OBJECTS) $(trie_test_DEPENDENCIES) $(EXTRA_trie_test_DEPENDENCIES) + @rm -f trie_test$(EXEEXT) + $(AM_V_CCLD)$(trie_test_LINK) $(trie_test_OBJECTS) $(trie_test_LDADD) $(LIBS) + truncate$(EXEEXT): $(truncate_OBJECTS) $(truncate_DEPENDENCIES) $(EXTRA_truncate_DEPENDENCIES) @rm -f truncate$(EXEEXT) $(AM_V_CCLD)$(LINK) $(truncate_OBJECTS) $(truncate_LDADD) $(LIBS) @@ -7485,6 +10091,14 @@ umovestr3$(EXEEXT): $(umovestr3_OBJECTS) $(umovestr3_DEPENDENCIES) $(EXTRA_umove @rm -f umovestr3$(EXEEXT) $(AM_V_CCLD)$(LINK) $(umovestr3_OBJECTS) $(umovestr3_LDADD) $(LIBS) +umovestr_cached$(EXEEXT): $(umovestr_cached_OBJECTS) $(umovestr_cached_DEPENDENCIES) $(EXTRA_umovestr_cached_DEPENDENCIES) + @rm -f umovestr_cached$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(umovestr_cached_OBJECTS) $(umovestr_cached_LDADD) $(LIBS) + +umovestr_cached_adjacent$(EXEEXT): $(umovestr_cached_adjacent_OBJECTS) $(umovestr_cached_adjacent_DEPENDENCIES) $(EXTRA_umovestr_cached_adjacent_DEPENDENCIES) + @rm -f umovestr_cached_adjacent$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(umovestr_cached_adjacent_OBJECTS) $(umovestr_cached_adjacent_LDADD) $(LIBS) + uname$(EXEEXT): $(uname_OBJECTS) $(uname_DEPENDENCIES) $(EXTRA_uname_DEPENDENCIES) @rm -f uname$(EXEEXT) $(AM_V_CCLD)$(LINK) $(uname_OBJECTS) $(uname_LDADD) $(LIBS) @@ -7589,6 +10203,10 @@ xet_robust_list$(EXEEXT): $(xet_robust_list_OBJECTS) $(xet_robust_list_DEPENDENC @rm -f xet_robust_list$(EXEEXT) $(AM_V_CCLD)$(LINK) $(xet_robust_list_OBJECTS) $(xet_robust_list_LDADD) $(LIBS) +xet_robust_list--pidns-translation$(EXEEXT): $(xet_robust_list__pidns_translation_OBJECTS) $(xet_robust_list__pidns_translation_DEPENDENCIES) $(EXTRA_xet_robust_list__pidns_translation_DEPENDENCIES) + @rm -f xet_robust_list--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(xet_robust_list__pidns_translation_OBJECTS) $(xet_robust_list__pidns_translation_LDADD) $(LIBS) + xet_thread_area_x86$(EXEEXT): $(xet_thread_area_x86_OBJECTS) $(xet_thread_area_x86_DEPENDENCIES) $(EXTRA_xet_thread_area_x86_DEPENDENCIES) @rm -f xet_thread_area_x86$(EXEEXT) $(AM_V_CCLD)$(LINK) $(xet_thread_area_x86_OBJECTS) $(xet_thread_area_x86_LDADD) $(LIBS) @@ -7601,10 +10219,18 @@ xetpgid$(EXEEXT): $(xetpgid_OBJECTS) $(xetpgid_DEPENDENCIES) $(EXTRA_xetpgid_DEP @rm -f xetpgid$(EXEEXT) $(AM_V_CCLD)$(LINK) $(xetpgid_OBJECTS) $(xetpgid_LDADD) $(LIBS) +xetpgid--pidns-translation$(EXEEXT): $(xetpgid__pidns_translation_OBJECTS) $(xetpgid__pidns_translation_DEPENDENCIES) $(EXTRA_xetpgid__pidns_translation_DEPENDENCIES) + @rm -f xetpgid--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(xetpgid__pidns_translation_OBJECTS) $(xetpgid__pidns_translation_LDADD) $(LIBS) + xetpriority$(EXEEXT): $(xetpriority_OBJECTS) $(xetpriority_DEPENDENCIES) $(EXTRA_xetpriority_DEPENDENCIES) @rm -f xetpriority$(EXEEXT) $(AM_V_CCLD)$(LINK) $(xetpriority_OBJECTS) $(xetpriority_LDADD) $(LIBS) +xetpriority--pidns-translation$(EXEEXT): $(xetpriority__pidns_translation_OBJECTS) $(xetpriority__pidns_translation_DEPENDENCIES) $(EXTRA_xetpriority__pidns_translation_DEPENDENCIES) + @rm -f xetpriority--pidns-translation$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(xetpriority__pidns_translation_OBJECTS) $(xetpriority__pidns_translation_LDADD) $(LIBS) + xettimeofday$(EXEEXT): $(xettimeofday_OBJECTS) $(xettimeofday_DEPENDENCIES) $(EXTRA_xettimeofday_DEPENDENCIES) @rm -f xettimeofday$(EXEEXT) $(AM_V_CCLD)$(LINK) $(xettimeofday_OBJECTS) $(xettimeofday_LDADD) $(LIBS) @@ -7636,10 +10262,12 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attach-p-cmd-cmd.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attach-p-cmd-p.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/block_reset_raise_run.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/block_reset_run.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-obj_get_info_by_fd-prog-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-obj_get_info_by_fd-prog.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-obj_get_info_by_fd-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-obj_get_info_by_fd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-success-long-y.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-success-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-success.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf-v.Po@am__quote@ # am--include-marker @@ -7657,16 +10285,48 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clock_adjtime.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clock_nanosleep.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clock_xettime.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone-flags.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone3-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone3-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone3-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone3-success-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone3-success-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone3-success-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone3-success.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone3.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone_parent--quiet-exit.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone_parent-q.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone_parent-qq.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone_parent.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone_ptrace--quiet-attach.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone_ptrace--quiet-exit.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone_ptrace-q.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone_ptrace-qq.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clone_ptrace.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close_range-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close_range-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close_range-yy.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close_range.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/copy_file_range.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/count-f.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/creat.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/delay.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/delete_module.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dev--decode-fds-dev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dev--decode-fds-path.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dev--decode-fds-socket.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dev-yy.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup-yy.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup2-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup2-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup2-yy.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup3-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup3-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup3-yy.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup3.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/epoll_create.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/epoll_create1.Po@am__quote@ # am--include-marker @@ -7679,7 +10339,14 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-yy.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat2-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat2-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat2-yy.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat2.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fadvise64.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fadvise64_64.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fallocate.Po@am__quote@ # am--include-marker @@ -7694,16 +10361,27 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown32.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl64--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl64.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fdatasync.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fflush.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_ioctl.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter-unavailable.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter_seccomp-flag.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter_seccomp-perf.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/finit_module.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flock.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fork--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fork-f.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsconfig-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsconfig.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsmount.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsopen.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fspick-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fspick.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstat-Xabbrev.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstat-Xraw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstat-Xverbose.Po@am__quote@ # am--include-marker @@ -7722,9 +10400,12 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/futex.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/futimesat.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get_mempolicy.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get_process_reaper.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getcpu.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getcwd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdents-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdents.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdents64-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdents64.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getegid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getegid32.Po@am__quote@ # am--include-marker @@ -7735,7 +10416,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getgroups.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getgroups32.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpeername.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpgrp--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpgrp.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpid--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getppid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getrandom.Po@am__quote@ # am--include-marker @@ -7745,30 +10428,66 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getresuid32.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getrlimit.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getrusage.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getsid--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getsid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getsockname.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettid--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getuid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getuid32.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getxxid.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getxgid.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getxpid.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getxuid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/group_req.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inet-cmsg.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/init_module.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inject-nf.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inotify.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inotify_init-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inotify_init.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inotify_init1-y.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inotify_init1.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/int_0x80.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/io_uring_enter.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/io_uring_register.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/io_uring_setup.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_block--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_block.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_dm-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_dm.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-success-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-success-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-success-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-success-v-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-success-v-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-success-v-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-success-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-success.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-v-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-v-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-v-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_evdev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-success-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-success-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-success-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-success-v-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-success-v-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-success-v-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-success-v.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-success.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-v-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-v-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-v-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio-v.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_hdio.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_inotify.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_kvm_run-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_kvm_run.Po@am__quote@ # am--include-marker @@ -7789,10 +10508,28 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_sg_io_v3.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_sg_io_v4.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_sock_gifconf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_tee.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_uffdio.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-success-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-success-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-success-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-success-v-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-success-v-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-success-v-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-success-v.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-success.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-v-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-v-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-v-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2-v.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_v4l2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_watchdog.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioperm.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iopl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioprio--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioprio-Xabbrev.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioprio-Xraw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioprio-Xverbose.Po@am__quote@ # am--include-marker @@ -7816,6 +10553,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_shm-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_shm.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/is_linux_mips_n64.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kcmp-y--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kcmp-y.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kcmp.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kern_features.Po@am__quote@ # am--include-marker @@ -7829,12 +10567,14 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl-Xraw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kill--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kill.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kill_child.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ksysent.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lchown.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lchown32.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-create_nl_socket.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-create_tmpfile.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-errno2name.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-error_msg.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-fill_memory.Po@am__quote@ # am--include-marker @@ -7846,20 +10586,26 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-inode_of_sockfd.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-libmmsg.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-libsocketcall.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-lock_file.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-overflowuid.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-pidns.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-pipe_maxfd.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-print_quoted_string.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-print_time.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-printflags.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-printxval.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-printxval-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-printxval-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-printxval-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-signal2name.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-skip_unavailable.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-sprintrc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-status.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-tail_alloc.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-test_printpath.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-test_printstrn.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-test_ucopy.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-tprintf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list_sigaction_signum.Po@am__quote@ # am--include-marker @@ -7871,12 +10617,18 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lstat.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lstat64-lstat64.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/madvise.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/maybe_switch_current_tcp--quiet-thread-execve.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/maybe_switch_current_tcp.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbind-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbind-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbind-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbind.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/membarrier.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memfd_create-Xabbrev.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memfd_create-Xraw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memfd_create-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memfd_create.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/migrate_pages--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/migrate_pages.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mincore.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkdir.Po@am__quote@ # am--include-marker @@ -7903,6 +10655,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-Xraw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_mount-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_mount.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_pages--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_pages-Xabbrev.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_pages-Xraw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_pages-Xverbose.Po@am__quote@ # am--include-marker @@ -7916,12 +10671,17 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msg_name.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/munlockall.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nanosleep.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net--decode-fds-dev-netlink.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net--decode-fds-none-netlink.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net--decode-fds-path-netlink.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net--decode-fds-socket-netlink.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-accept-connect.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-icmp_filter.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-packet_mreq-Xabbrev.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-packet_mreq-Xraw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-packet_mreq-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-packet_mreq.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-sockaddr--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-sockaddr.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-tpacket_req.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-tpacket_stats-success.Po@am__quote@ # am--include-marker @@ -7931,6 +10691,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-yy-inet6.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-yy-netlink.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-yy-unix.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_audit--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_audit.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_crypto.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_generic.Po@am__quote@ # am--include-marker @@ -7968,6 +10729,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_brport.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_linkinfo.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_port.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_xdp-y.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_ifla_xdp.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_inet_diag_msg.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_inet_diag_req_compat.Po@am__quote@ # am--include-marker @@ -8004,7 +10766,19 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oldselect.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oldstat.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open_tree-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open_tree.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-v-y-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-v-y-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-v-y-Xverbose.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-v-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-v.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orphaned_process_group.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/osf_utimes.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pause.Po@am__quote@ # am--include-marker @@ -8016,7 +10790,20 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/personality-Xraw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/personality-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/personality.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_getfd-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_getfd-yy.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_getfd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open--decode-fd-path.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open--decode-fd-pidfd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open--decode-fd-socket.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open--pidns-translation.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open-P.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open-y.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open-yy.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_send_signal--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_send_signal.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidns-cache.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipe.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipe2.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pkey_alloc.Po@am__quote@ # am--include-marker @@ -8043,6 +10830,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/preadv2-pwritev2.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/preadv_pwritev-preadv-pwritev.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/print_maxfd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/print_ppid_tracerpid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printpath-umovestr-peekdata.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printpath-umovestr-undumpable.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printpath-umovestr.Po@am__quote@ # am--include-marker @@ -8053,8 +10841,11 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printstrn-umoven-peekdata.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printstrn-umoven-undumpable.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printstrn-umoven.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prlimit64--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prlimit64.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process_vm_readv--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process_vm_readv.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process_vm_writev--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process_vm_writev.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pselect6.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ptrace.Po@am__quote@ # am--include-marker @@ -8083,6 +10874,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readlinkat.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readv.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reboot.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/recv-MSG_TRUNC.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/recvfrom-MSG_TRUNC.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/recvfrom.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/recvmmsg-timeout.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/recvmsg.Po@am__quote@ # am--include-marker @@ -8101,10 +10894,12 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigaction.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigpending.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigprocmask.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigqueueinfo--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigqueueinfo.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigreturn.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigsuspend.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigtimedwait.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_tgsigqueueinfo--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_tgsigqueueinfo.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/run_expect_termsig.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/s390_guarded_storage-v.Po@am__quote@ # am--include-marker @@ -8115,9 +10910,13 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/s390_sthyi.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_get_priority_mxx.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_rr_get_interval.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetaffinity--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetaffinity.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetattr--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetattr.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetparam--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetparam.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetscheduler--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetscheduler.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_yield.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scm_rights.Po@am__quote@ # am--include-marker @@ -8127,9 +10926,14 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/seccomp_get_action_avail.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/select-P.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/select.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/semop-indirect.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/semop.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/semtimedop.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sendfile.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sendfile64.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/set_mempolicy-Xabbrev.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/set_mempolicy-Xraw.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/set_mempolicy-Xverbose.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/set_mempolicy.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/set_ptracer_any.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/set_sigblock.Po@am__quote@ # am--include-marker @@ -8145,6 +10949,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setgroups32.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sethostname.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setns.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setpgrp-exec.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setregid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setregid32.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setresgid.Po@am__quote@ # am--include-marker @@ -8165,6 +10970,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigaltstack.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/siginfo.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal_receive--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal_receive.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signalfd4.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigpending.Po@am__quote@ # am--include-marker @@ -8174,6 +10980,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sleep.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_error.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_linger.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred-Xabbrev.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred-Xraw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred-Xverbose.Po@am__quote@ # am--include-marker @@ -8193,6 +11000,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-1.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-2.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-3.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-attach.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-0.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-1.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-2.Po@am__quote@ # am--include-marker @@ -8203,7 +11011,25 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat64-stat64.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/statfs-statfs.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/statfs64.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-all.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-failed-long.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-failed-status.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-failed.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-none-f.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-none-threads.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-none.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-successful-long.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-successful-status.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-successful.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-unfinished-threads.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-unfinished.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/statx.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace--strings-in-hex-all.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace--strings-in-hex-non-ascii.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace--strings-in-hex.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-n.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-x.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-xx.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/swap.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sxetmask.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/symlink.Po@am__quote@ # am--include-marker @@ -8212,8 +11038,15 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sync_file_range.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sync_file_range2.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sysinfo.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/syslog-success.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/syslog.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tee.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tgkill--pidns-translation.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tgkill.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve--quiet-thread-execve.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve-q.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve-qq.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve-qqq.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/time.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timer_create.Po@am__quote@ # am--include-marker @@ -8221,6 +11054,11 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timerfd_xettime.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/times-fail.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/times.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tkill--pidns-translation.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tkill.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tracer_ppid_pgid_sid.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trie_test-trie_for_tests.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trie_test-trie_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/truncate.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/truncate64-truncate64.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ugetrlimit.Po@am__quote@ # am--include-marker @@ -8233,6 +11071,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umovestr.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umovestr2.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umovestr3.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umovestr_cached.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umovestr_cached_adjacent.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uname.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unblock_reset_raise.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unix-pair-send-recv.Po@am__quote@ # am--include-marker @@ -8258,10 +11098,13 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/waitpid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xattr-strings.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xattr.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xet_robust_list--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xet_robust_list.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xet_thread_area_x86.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetitimer.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpgid--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpgid.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpriority--pidns-translation.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpriority.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xettimeofday.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zeroargc.Po@am__quote@ # am--include-marker @@ -8273,15 +11116,17 @@ $(am__depfiles_remade): am--depfiles: $(am__depfiles_remade) .c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` @@ -8300,6 +11145,20 @@ libtests_a-create_nl_socket.obj: create_nl_socket.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-create_nl_socket.obj `if test -f 'create_nl_socket.c'; then $(CYGPATH_W) 'create_nl_socket.c'; else $(CYGPATH_W) '$(srcdir)/create_nl_socket.c'; fi` +libtests_a-create_tmpfile.o: create_tmpfile.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-create_tmpfile.o -MD -MP -MF $(DEPDIR)/libtests_a-create_tmpfile.Tpo -c -o libtests_a-create_tmpfile.o `test -f 'create_tmpfile.c' || echo '$(srcdir)/'`create_tmpfile.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-create_tmpfile.Tpo $(DEPDIR)/libtests_a-create_tmpfile.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='create_tmpfile.c' object='libtests_a-create_tmpfile.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-create_tmpfile.o `test -f 'create_tmpfile.c' || echo '$(srcdir)/'`create_tmpfile.c + +libtests_a-create_tmpfile.obj: create_tmpfile.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-create_tmpfile.obj -MD -MP -MF $(DEPDIR)/libtests_a-create_tmpfile.Tpo -c -o libtests_a-create_tmpfile.obj `if test -f 'create_tmpfile.c'; then $(CYGPATH_W) 'create_tmpfile.c'; else $(CYGPATH_W) '$(srcdir)/create_tmpfile.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-create_tmpfile.Tpo $(DEPDIR)/libtests_a-create_tmpfile.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='create_tmpfile.c' object='libtests_a-create_tmpfile.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-create_tmpfile.obj `if test -f 'create_tmpfile.c'; then $(CYGPATH_W) 'create_tmpfile.c'; else $(CYGPATH_W) '$(srcdir)/create_tmpfile.c'; fi` + libtests_a-errno2name.o: errno2name.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-errno2name.o -MD -MP -MF $(DEPDIR)/libtests_a-errno2name.Tpo -c -o libtests_a-errno2name.o `test -f 'errno2name.c' || echo '$(srcdir)/'`errno2name.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-errno2name.Tpo $(DEPDIR)/libtests_a-errno2name.Po @@ -8454,6 +11313,20 @@ libtests_a-libsocketcall.obj: libsocketcall.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-libsocketcall.obj `if test -f 'libsocketcall.c'; then $(CYGPATH_W) 'libsocketcall.c'; else $(CYGPATH_W) '$(srcdir)/libsocketcall.c'; fi` +libtests_a-lock_file.o: lock_file.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-lock_file.o -MD -MP -MF $(DEPDIR)/libtests_a-lock_file.Tpo -c -o libtests_a-lock_file.o `test -f 'lock_file.c' || echo '$(srcdir)/'`lock_file.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-lock_file.Tpo $(DEPDIR)/libtests_a-lock_file.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lock_file.c' object='libtests_a-lock_file.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-lock_file.o `test -f 'lock_file.c' || echo '$(srcdir)/'`lock_file.c + +libtests_a-lock_file.obj: lock_file.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-lock_file.obj -MD -MP -MF $(DEPDIR)/libtests_a-lock_file.Tpo -c -o libtests_a-lock_file.obj `if test -f 'lock_file.c'; then $(CYGPATH_W) 'lock_file.c'; else $(CYGPATH_W) '$(srcdir)/lock_file.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-lock_file.Tpo $(DEPDIR)/libtests_a-lock_file.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lock_file.c' object='libtests_a-lock_file.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-lock_file.obj `if test -f 'lock_file.c'; then $(CYGPATH_W) 'lock_file.c'; else $(CYGPATH_W) '$(srcdir)/lock_file.c'; fi` + libtests_a-overflowuid.o: overflowuid.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-overflowuid.o -MD -MP -MF $(DEPDIR)/libtests_a-overflowuid.Tpo -c -o libtests_a-overflowuid.o `test -f 'overflowuid.c' || echo '$(srcdir)/'`overflowuid.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-overflowuid.Tpo $(DEPDIR)/libtests_a-overflowuid.Po @@ -8468,6 +11341,20 @@ libtests_a-overflowuid.obj: overflowuid.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-overflowuid.obj `if test -f 'overflowuid.c'; then $(CYGPATH_W) 'overflowuid.c'; else $(CYGPATH_W) '$(srcdir)/overflowuid.c'; fi` +libtests_a-pidns.o: pidns.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-pidns.o -MD -MP -MF $(DEPDIR)/libtests_a-pidns.Tpo -c -o libtests_a-pidns.o `test -f 'pidns.c' || echo '$(srcdir)/'`pidns.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-pidns.Tpo $(DEPDIR)/libtests_a-pidns.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pidns.c' object='libtests_a-pidns.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-pidns.o `test -f 'pidns.c' || echo '$(srcdir)/'`pidns.c + +libtests_a-pidns.obj: pidns.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-pidns.obj -MD -MP -MF $(DEPDIR)/libtests_a-pidns.Tpo -c -o libtests_a-pidns.obj `if test -f 'pidns.c'; then $(CYGPATH_W) 'pidns.c'; else $(CYGPATH_W) '$(srcdir)/pidns.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-pidns.Tpo $(DEPDIR)/libtests_a-pidns.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pidns.c' object='libtests_a-pidns.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-pidns.obj `if test -f 'pidns.c'; then $(CYGPATH_W) 'pidns.c'; else $(CYGPATH_W) '$(srcdir)/pidns.c'; fi` + libtests_a-pipe_maxfd.o: pipe_maxfd.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-pipe_maxfd.o -MD -MP -MF $(DEPDIR)/libtests_a-pipe_maxfd.Tpo -c -o libtests_a-pipe_maxfd.o `test -f 'pipe_maxfd.c' || echo '$(srcdir)/'`pipe_maxfd.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-pipe_maxfd.Tpo $(DEPDIR)/libtests_a-pipe_maxfd.Po @@ -8524,19 +11411,47 @@ libtests_a-printflags.obj: printflags.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printflags.obj `if test -f 'printflags.c'; then $(CYGPATH_W) 'printflags.c'; else $(CYGPATH_W) '$(srcdir)/printflags.c'; fi` -libtests_a-printxval.o: printxval.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval.o -MD -MP -MF $(DEPDIR)/libtests_a-printxval.Tpo -c -o libtests_a-printxval.o `test -f 'printxval.c' || echo '$(srcdir)/'`printxval.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval.Tpo $(DEPDIR)/libtests_a-printxval.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printxval.c' object='libtests_a-printxval.o' libtool=no @AMDEPBACKSLASH@ +libtests_a-printxval-Xabbrev.o: printxval-Xabbrev.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval-Xabbrev.o -MD -MP -MF $(DEPDIR)/libtests_a-printxval-Xabbrev.Tpo -c -o libtests_a-printxval-Xabbrev.o `test -f 'printxval-Xabbrev.c' || echo '$(srcdir)/'`printxval-Xabbrev.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval-Xabbrev.Tpo $(DEPDIR)/libtests_a-printxval-Xabbrev.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printxval-Xabbrev.c' object='libtests_a-printxval-Xabbrev.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval-Xabbrev.o `test -f 'printxval-Xabbrev.c' || echo '$(srcdir)/'`printxval-Xabbrev.c + +libtests_a-printxval-Xabbrev.obj: printxval-Xabbrev.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval-Xabbrev.obj -MD -MP -MF $(DEPDIR)/libtests_a-printxval-Xabbrev.Tpo -c -o libtests_a-printxval-Xabbrev.obj `if test -f 'printxval-Xabbrev.c'; then $(CYGPATH_W) 'printxval-Xabbrev.c'; else $(CYGPATH_W) '$(srcdir)/printxval-Xabbrev.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval-Xabbrev.Tpo $(DEPDIR)/libtests_a-printxval-Xabbrev.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printxval-Xabbrev.c' object='libtests_a-printxval-Xabbrev.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval-Xabbrev.obj `if test -f 'printxval-Xabbrev.c'; then $(CYGPATH_W) 'printxval-Xabbrev.c'; else $(CYGPATH_W) '$(srcdir)/printxval-Xabbrev.c'; fi` + +libtests_a-printxval-Xraw.o: printxval-Xraw.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval-Xraw.o -MD -MP -MF $(DEPDIR)/libtests_a-printxval-Xraw.Tpo -c -o libtests_a-printxval-Xraw.o `test -f 'printxval-Xraw.c' || echo '$(srcdir)/'`printxval-Xraw.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval-Xraw.Tpo $(DEPDIR)/libtests_a-printxval-Xraw.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printxval-Xraw.c' object='libtests_a-printxval-Xraw.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval-Xraw.o `test -f 'printxval-Xraw.c' || echo '$(srcdir)/'`printxval-Xraw.c + +libtests_a-printxval-Xraw.obj: printxval-Xraw.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval-Xraw.obj -MD -MP -MF $(DEPDIR)/libtests_a-printxval-Xraw.Tpo -c -o libtests_a-printxval-Xraw.obj `if test -f 'printxval-Xraw.c'; then $(CYGPATH_W) 'printxval-Xraw.c'; else $(CYGPATH_W) '$(srcdir)/printxval-Xraw.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval-Xraw.Tpo $(DEPDIR)/libtests_a-printxval-Xraw.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printxval-Xraw.c' object='libtests_a-printxval-Xraw.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval-Xraw.obj `if test -f 'printxval-Xraw.c'; then $(CYGPATH_W) 'printxval-Xraw.c'; else $(CYGPATH_W) '$(srcdir)/printxval-Xraw.c'; fi` + +libtests_a-printxval-Xverbose.o: printxval-Xverbose.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval-Xverbose.o -MD -MP -MF $(DEPDIR)/libtests_a-printxval-Xverbose.Tpo -c -o libtests_a-printxval-Xverbose.o `test -f 'printxval-Xverbose.c' || echo '$(srcdir)/'`printxval-Xverbose.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval-Xverbose.Tpo $(DEPDIR)/libtests_a-printxval-Xverbose.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printxval-Xverbose.c' object='libtests_a-printxval-Xverbose.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval.o `test -f 'printxval.c' || echo '$(srcdir)/'`printxval.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval-Xverbose.o `test -f 'printxval-Xverbose.c' || echo '$(srcdir)/'`printxval-Xverbose.c -libtests_a-printxval.obj: printxval.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval.obj -MD -MP -MF $(DEPDIR)/libtests_a-printxval.Tpo -c -o libtests_a-printxval.obj `if test -f 'printxval.c'; then $(CYGPATH_W) 'printxval.c'; else $(CYGPATH_W) '$(srcdir)/printxval.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval.Tpo $(DEPDIR)/libtests_a-printxval.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printxval.c' object='libtests_a-printxval.obj' libtool=no @AMDEPBACKSLASH@ +libtests_a-printxval-Xverbose.obj: printxval-Xverbose.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval-Xverbose.obj -MD -MP -MF $(DEPDIR)/libtests_a-printxval-Xverbose.Tpo -c -o libtests_a-printxval-Xverbose.obj `if test -f 'printxval-Xverbose.c'; then $(CYGPATH_W) 'printxval-Xverbose.c'; else $(CYGPATH_W) '$(srcdir)/printxval-Xverbose.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval-Xverbose.Tpo $(DEPDIR)/libtests_a-printxval-Xverbose.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='printxval-Xverbose.c' object='libtests_a-printxval-Xverbose.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval.obj `if test -f 'printxval.c'; then $(CYGPATH_W) 'printxval.c'; else $(CYGPATH_W) '$(srcdir)/printxval.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval-Xverbose.obj `if test -f 'printxval-Xverbose.c'; then $(CYGPATH_W) 'printxval-Xverbose.c'; else $(CYGPATH_W) '$(srcdir)/printxval-Xverbose.c'; fi` libtests_a-signal2name.o: signal2name.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-signal2name.o -MD -MP -MF $(DEPDIR)/libtests_a-signal2name.Tpo -c -o libtests_a-signal2name.o `test -f 'signal2name.c' || echo '$(srcdir)/'`signal2name.c @@ -8580,6 +11495,20 @@ libtests_a-sprintrc.obj: sprintrc.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-sprintrc.obj `if test -f 'sprintrc.c'; then $(CYGPATH_W) 'sprintrc.c'; else $(CYGPATH_W) '$(srcdir)/sprintrc.c'; fi` +libtests_a-status.o: status.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-status.o -MD -MP -MF $(DEPDIR)/libtests_a-status.Tpo -c -o libtests_a-status.o `test -f 'status.c' || echo '$(srcdir)/'`status.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-status.Tpo $(DEPDIR)/libtests_a-status.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='status.c' object='libtests_a-status.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-status.o `test -f 'status.c' || echo '$(srcdir)/'`status.c + +libtests_a-status.obj: status.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-status.obj -MD -MP -MF $(DEPDIR)/libtests_a-status.Tpo -c -o libtests_a-status.obj `if test -f 'status.c'; then $(CYGPATH_W) 'status.c'; else $(CYGPATH_W) '$(srcdir)/status.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-status.Tpo $(DEPDIR)/libtests_a-status.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='status.c' object='libtests_a-status.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-status.obj `if test -f 'status.c'; then $(CYGPATH_W) 'status.c'; else $(CYGPATH_W) '$(srcdir)/status.c'; fi` + libtests_a-tail_alloc.o: tail_alloc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-tail_alloc.o -MD -MP -MF $(DEPDIR)/libtests_a-tail_alloc.Tpo -c -o libtests_a-tail_alloc.o `test -f 'tail_alloc.c' || echo '$(srcdir)/'`tail_alloc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-tail_alloc.Tpo $(DEPDIR)/libtests_a-tail_alloc.Po @@ -8650,6 +11579,20 @@ libtests_a-tprintf.obj: tprintf.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-tprintf.obj `if test -f 'tprintf.c'; then $(CYGPATH_W) 'tprintf.c'; else $(CYGPATH_W) '$(srcdir)/tprintf.c'; fi` +libtests_a-xmalloc_for_tests.o: xmalloc_for_tests.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-xmalloc_for_tests.o -MD -MP -MF $(DEPDIR)/libtests_a-xmalloc_for_tests.Tpo -c -o libtests_a-xmalloc_for_tests.o `test -f 'xmalloc_for_tests.c' || echo '$(srcdir)/'`xmalloc_for_tests.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-xmalloc_for_tests.Tpo $(DEPDIR)/libtests_a-xmalloc_for_tests.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xmalloc_for_tests.c' object='libtests_a-xmalloc_for_tests.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-xmalloc_for_tests.o `test -f 'xmalloc_for_tests.c' || echo '$(srcdir)/'`xmalloc_for_tests.c + +libtests_a-xmalloc_for_tests.obj: xmalloc_for_tests.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-xmalloc_for_tests.obj -MD -MP -MF $(DEPDIR)/libtests_a-xmalloc_for_tests.Tpo -c -o libtests_a-xmalloc_for_tests.obj `if test -f 'xmalloc_for_tests.c'; then $(CYGPATH_W) 'xmalloc_for_tests.c'; else $(CYGPATH_W) '$(srcdir)/xmalloc_for_tests.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-xmalloc_for_tests.Tpo $(DEPDIR)/libtests_a-xmalloc_for_tests.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xmalloc_for_tests.c' object='libtests_a-xmalloc_for_tests.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-xmalloc_for_tests.obj `if test -f 'xmalloc_for_tests.c'; then $(CYGPATH_W) 'xmalloc_for_tests.c'; else $(CYGPATH_W) '$(srcdir)/xmalloc_for_tests.c'; fi` + fstat64-fstat64.o: fstat64.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fstat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fstat64-fstat64.o -MD -MP -MF $(DEPDIR)/fstat64-fstat64.Tpo -c -o fstat64-fstat64.o `test -f 'fstat64.c' || echo '$(srcdir)/'`fstat64.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/fstat64-fstat64.Tpo $(DEPDIR)/fstat64-fstat64.Po @@ -8860,6 +11803,34 @@ statfs-statfs.obj: statfs.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(statfs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o statfs-statfs.obj `if test -f 'statfs.c'; then $(CYGPATH_W) 'statfs.c'; else $(CYGPATH_W) '$(srcdir)/statfs.c'; fi` +trie_test-trie_test.o: trie_test.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -MT trie_test-trie_test.o -MD -MP -MF $(DEPDIR)/trie_test-trie_test.Tpo -c -o trie_test-trie_test.o `test -f 'trie_test.c' || echo '$(srcdir)/'`trie_test.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/trie_test-trie_test.Tpo $(DEPDIR)/trie_test-trie_test.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='trie_test.c' object='trie_test-trie_test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -c -o trie_test-trie_test.o `test -f 'trie_test.c' || echo '$(srcdir)/'`trie_test.c + +trie_test-trie_test.obj: trie_test.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -MT trie_test-trie_test.obj -MD -MP -MF $(DEPDIR)/trie_test-trie_test.Tpo -c -o trie_test-trie_test.obj `if test -f 'trie_test.c'; then $(CYGPATH_W) 'trie_test.c'; else $(CYGPATH_W) '$(srcdir)/trie_test.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/trie_test-trie_test.Tpo $(DEPDIR)/trie_test-trie_test.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='trie_test.c' object='trie_test-trie_test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -c -o trie_test-trie_test.obj `if test -f 'trie_test.c'; then $(CYGPATH_W) 'trie_test.c'; else $(CYGPATH_W) '$(srcdir)/trie_test.c'; fi` + +trie_test-trie_for_tests.o: trie_for_tests.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -MT trie_test-trie_for_tests.o -MD -MP -MF $(DEPDIR)/trie_test-trie_for_tests.Tpo -c -o trie_test-trie_for_tests.o `test -f 'trie_for_tests.c' || echo '$(srcdir)/'`trie_for_tests.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/trie_test-trie_for_tests.Tpo $(DEPDIR)/trie_test-trie_for_tests.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='trie_for_tests.c' object='trie_test-trie_for_tests.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -c -o trie_test-trie_for_tests.o `test -f 'trie_for_tests.c' || echo '$(srcdir)/'`trie_for_tests.c + +trie_test-trie_for_tests.obj: trie_for_tests.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -MT trie_test-trie_for_tests.obj -MD -MP -MF $(DEPDIR)/trie_test-trie_for_tests.Tpo -c -o trie_test-trie_for_tests.obj `if test -f 'trie_for_tests.c'; then $(CYGPATH_W) 'trie_for_tests.c'; else $(CYGPATH_W) '$(srcdir)/trie_for_tests.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/trie_test-trie_for_tests.Tpo $(DEPDIR)/trie_test-trie_for_tests.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='trie_for_tests.c' object='trie_test-trie_for_tests.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -c -o trie_test-trie_for_tests.obj `if test -f 'trie_for_tests.c'; then $(CYGPATH_W) 'trie_for_tests.c'; else $(CYGPATH_W) '$(srcdir)/trie_for_tests.c'; fi` + truncate64-truncate64.o: truncate64.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(truncate64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT truncate64-truncate64.o -MD -MP -MF $(DEPDIR)/truncate64-truncate64.Tpo -c -o truncate64-truncate64.o `test -f 'truncate64.c' || echo '$(srcdir)/'`truncate64.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/truncate64-truncate64.Tpo $(DEPDIR)/truncate64-truncate64.Po @@ -9052,7 +12023,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS) test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ @@ -9220,10 +12191,12 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/attach-p-cmd-cmd.Po -rm -f ./$(DEPDIR)/attach-p-cmd-p.Po -rm -f ./$(DEPDIR)/block_reset_raise_run.Po + -rm -f ./$(DEPDIR)/block_reset_run.Po -rm -f ./$(DEPDIR)/bpf-obj_get_info_by_fd-prog-v.Po -rm -f ./$(DEPDIR)/bpf-obj_get_info_by_fd-prog.Po -rm -f ./$(DEPDIR)/bpf-obj_get_info_by_fd-v.Po -rm -f ./$(DEPDIR)/bpf-obj_get_info_by_fd.Po + -rm -f ./$(DEPDIR)/bpf-success-long-y.Po -rm -f ./$(DEPDIR)/bpf-success-v.Po -rm -f ./$(DEPDIR)/bpf-success.Po -rm -f ./$(DEPDIR)/bpf-v.Po @@ -9241,16 +12214,48 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/clock_adjtime.Po -rm -f ./$(DEPDIR)/clock_nanosleep.Po -rm -f ./$(DEPDIR)/clock_xettime.Po + -rm -f ./$(DEPDIR)/clone-flags.Po + -rm -f ./$(DEPDIR)/clone3-Xabbrev.Po + -rm -f ./$(DEPDIR)/clone3-Xraw.Po + -rm -f ./$(DEPDIR)/clone3-Xverbose.Po + -rm -f ./$(DEPDIR)/clone3-success-Xabbrev.Po + -rm -f ./$(DEPDIR)/clone3-success-Xraw.Po + -rm -f ./$(DEPDIR)/clone3-success-Xverbose.Po + -rm -f ./$(DEPDIR)/clone3-success.Po + -rm -f ./$(DEPDIR)/clone3.Po + -rm -f ./$(DEPDIR)/clone_parent--quiet-exit.Po + -rm -f ./$(DEPDIR)/clone_parent-q.Po + -rm -f ./$(DEPDIR)/clone_parent-qq.Po -rm -f ./$(DEPDIR)/clone_parent.Po + -rm -f ./$(DEPDIR)/clone_ptrace--quiet-attach.Po + -rm -f ./$(DEPDIR)/clone_ptrace--quiet-exit.Po + -rm -f ./$(DEPDIR)/clone_ptrace-q.Po + -rm -f ./$(DEPDIR)/clone_ptrace-qq.Po -rm -f ./$(DEPDIR)/clone_ptrace.Po + -rm -f ./$(DEPDIR)/close_range-P.Po + -rm -f ./$(DEPDIR)/close_range-y.Po + -rm -f ./$(DEPDIR)/close_range-yy.Po + -rm -f ./$(DEPDIR)/close_range.Po -rm -f ./$(DEPDIR)/copy_file_range.Po -rm -f ./$(DEPDIR)/count-f.Po -rm -f ./$(DEPDIR)/creat.Po -rm -f ./$(DEPDIR)/delay.Po -rm -f ./$(DEPDIR)/delete_module.Po + -rm -f ./$(DEPDIR)/dev--decode-fds-dev.Po + -rm -f ./$(DEPDIR)/dev--decode-fds-path.Po + -rm -f ./$(DEPDIR)/dev--decode-fds-socket.Po -rm -f ./$(DEPDIR)/dev-yy.Po + -rm -f ./$(DEPDIR)/dup-P.Po + -rm -f ./$(DEPDIR)/dup-y.Po + -rm -f ./$(DEPDIR)/dup-yy.Po -rm -f ./$(DEPDIR)/dup.Po + -rm -f ./$(DEPDIR)/dup2-P.Po + -rm -f ./$(DEPDIR)/dup2-y.Po + -rm -f ./$(DEPDIR)/dup2-yy.Po -rm -f ./$(DEPDIR)/dup2.Po + -rm -f ./$(DEPDIR)/dup3-P.Po + -rm -f ./$(DEPDIR)/dup3-y.Po + -rm -f ./$(DEPDIR)/dup3-yy.Po -rm -f ./$(DEPDIR)/dup3.Po -rm -f ./$(DEPDIR)/epoll_create.Po -rm -f ./$(DEPDIR)/epoll_create1.Po @@ -9263,7 +12268,14 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/execve.Po -rm -f ./$(DEPDIR)/execveat-v.Po -rm -f ./$(DEPDIR)/execveat.Po + -rm -f ./$(DEPDIR)/faccessat-P.Po + -rm -f ./$(DEPDIR)/faccessat-y.Po + -rm -f ./$(DEPDIR)/faccessat-yy.Po -rm -f ./$(DEPDIR)/faccessat.Po + -rm -f ./$(DEPDIR)/faccessat2-P.Po + -rm -f ./$(DEPDIR)/faccessat2-y.Po + -rm -f ./$(DEPDIR)/faccessat2-yy.Po + -rm -f ./$(DEPDIR)/faccessat2.Po -rm -f ./$(DEPDIR)/fadvise64.Po -rm -f ./$(DEPDIR)/fadvise64_64.Po -rm -f ./$(DEPDIR)/fallocate.Po @@ -9278,16 +12290,27 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/fchown.Po -rm -f ./$(DEPDIR)/fchown32.Po -rm -f ./$(DEPDIR)/fchownat.Po + -rm -f ./$(DEPDIR)/fcntl--pidns-translation.Po -rm -f ./$(DEPDIR)/fcntl.Po + -rm -f ./$(DEPDIR)/fcntl64--pidns-translation.Po -rm -f ./$(DEPDIR)/fcntl64.Po -rm -f ./$(DEPDIR)/fdatasync.Po -rm -f ./$(DEPDIR)/fflush.Po -rm -f ./$(DEPDIR)/file_handle.Po -rm -f ./$(DEPDIR)/file_ioctl.Po -rm -f ./$(DEPDIR)/filter-unavailable.Po + -rm -f ./$(DEPDIR)/filter_seccomp-flag.Po + -rm -f ./$(DEPDIR)/filter_seccomp-perf.Po -rm -f ./$(DEPDIR)/finit_module.Po -rm -f ./$(DEPDIR)/flock.Po + -rm -f ./$(DEPDIR)/fork--pidns-translation.Po -rm -f ./$(DEPDIR)/fork-f.Po + -rm -f ./$(DEPDIR)/fsconfig-P.Po + -rm -f ./$(DEPDIR)/fsconfig.Po + -rm -f ./$(DEPDIR)/fsmount.Po + -rm -f ./$(DEPDIR)/fsopen.Po + -rm -f ./$(DEPDIR)/fspick-P.Po + -rm -f ./$(DEPDIR)/fspick.Po -rm -f ./$(DEPDIR)/fstat-Xabbrev.Po -rm -f ./$(DEPDIR)/fstat-Xraw.Po -rm -f ./$(DEPDIR)/fstat-Xverbose.Po @@ -9306,9 +12329,12 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/futex.Po -rm -f ./$(DEPDIR)/futimesat.Po -rm -f ./$(DEPDIR)/get_mempolicy.Po + -rm -f ./$(DEPDIR)/get_process_reaper.Po -rm -f ./$(DEPDIR)/getcpu.Po -rm -f ./$(DEPDIR)/getcwd.Po + -rm -f ./$(DEPDIR)/getdents-v.Po -rm -f ./$(DEPDIR)/getdents.Po + -rm -f ./$(DEPDIR)/getdents64-v.Po -rm -f ./$(DEPDIR)/getdents64.Po -rm -f ./$(DEPDIR)/getegid.Po -rm -f ./$(DEPDIR)/getegid32.Po @@ -9319,7 +12345,9 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/getgroups.Po -rm -f ./$(DEPDIR)/getgroups32.Po -rm -f ./$(DEPDIR)/getpeername.Po + -rm -f ./$(DEPDIR)/getpgrp--pidns-translation.Po -rm -f ./$(DEPDIR)/getpgrp.Po + -rm -f ./$(DEPDIR)/getpid--pidns-translation.Po -rm -f ./$(DEPDIR)/getpid.Po -rm -f ./$(DEPDIR)/getppid.Po -rm -f ./$(DEPDIR)/getrandom.Po @@ -9329,30 +12357,66 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/getresuid32.Po -rm -f ./$(DEPDIR)/getrlimit.Po -rm -f ./$(DEPDIR)/getrusage.Po + -rm -f ./$(DEPDIR)/getsid--pidns-translation.Po -rm -f ./$(DEPDIR)/getsid.Po -rm -f ./$(DEPDIR)/getsockname.Po + -rm -f ./$(DEPDIR)/gettid--pidns-translation.Po -rm -f ./$(DEPDIR)/gettid.Po -rm -f ./$(DEPDIR)/getuid.Po -rm -f ./$(DEPDIR)/getuid32.Po - -rm -f ./$(DEPDIR)/getxxid.Po + -rm -f ./$(DEPDIR)/getxgid.Po + -rm -f ./$(DEPDIR)/getxpid.Po + -rm -f ./$(DEPDIR)/getxuid.Po -rm -f ./$(DEPDIR)/group_req.Po -rm -f ./$(DEPDIR)/inet-cmsg.Po -rm -f ./$(DEPDIR)/init_module.Po -rm -f ./$(DEPDIR)/inject-nf.Po -rm -f ./$(DEPDIR)/inotify.Po + -rm -f ./$(DEPDIR)/inotify_init-y.Po + -rm -f ./$(DEPDIR)/inotify_init.Po + -rm -f ./$(DEPDIR)/inotify_init1-y.Po -rm -f ./$(DEPDIR)/inotify_init1.Po -rm -f ./$(DEPDIR)/int_0x80.Po -rm -f ./$(DEPDIR)/io_uring_enter.Po -rm -f ./$(DEPDIR)/io_uring_register.Po -rm -f ./$(DEPDIR)/io_uring_setup.Po -rm -f ./$(DEPDIR)/ioctl.Po + -rm -f ./$(DEPDIR)/ioctl_block--pidns-translation.Po -rm -f ./$(DEPDIR)/ioctl_block.Po -rm -f ./$(DEPDIR)/ioctl_dm-v.Po -rm -f ./$(DEPDIR)/ioctl_dm.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-v-Xverbose.Po -rm -f ./$(DEPDIR)/ioctl_evdev-success-v.Po -rm -f ./$(DEPDIR)/ioctl_evdev-success.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-v-Xverbose.Po -rm -f ./$(DEPDIR)/ioctl_evdev-v.Po -rm -f ./$(DEPDIR)/ioctl_evdev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-v-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-v.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-v-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-v.Po + -rm -f ./$(DEPDIR)/ioctl_hdio.Po -rm -f ./$(DEPDIR)/ioctl_inotify.Po -rm -f ./$(DEPDIR)/ioctl_kvm_run-v.Po -rm -f ./$(DEPDIR)/ioctl_kvm_run.Po @@ -9373,10 +12437,28 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/ioctl_sg_io_v3.Po -rm -f ./$(DEPDIR)/ioctl_sg_io_v4.Po -rm -f ./$(DEPDIR)/ioctl_sock_gifconf.Po + -rm -f ./$(DEPDIR)/ioctl_tee.Po -rm -f ./$(DEPDIR)/ioctl_uffdio.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-v-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-v.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-v-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-v.Po -rm -f ./$(DEPDIR)/ioctl_v4l2.Po + -rm -f ./$(DEPDIR)/ioctl_watchdog.Po -rm -f ./$(DEPDIR)/ioperm.Po -rm -f ./$(DEPDIR)/iopl.Po + -rm -f ./$(DEPDIR)/ioprio--pidns-translation.Po -rm -f ./$(DEPDIR)/ioprio-Xabbrev.Po -rm -f ./$(DEPDIR)/ioprio-Xraw.Po -rm -f ./$(DEPDIR)/ioprio-Xverbose.Po @@ -9400,6 +12482,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/ipc_shm-Xverbose.Po -rm -f ./$(DEPDIR)/ipc_shm.Po -rm -f ./$(DEPDIR)/is_linux_mips_n64.Po + -rm -f ./$(DEPDIR)/kcmp-y--pidns-translation.Po -rm -f ./$(DEPDIR)/kcmp-y.Po -rm -f ./$(DEPDIR)/kcmp.Po -rm -f ./$(DEPDIR)/kern_features.Po @@ -9413,12 +12496,14 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/keyctl-Xraw.Po -rm -f ./$(DEPDIR)/keyctl-Xverbose.Po -rm -f ./$(DEPDIR)/keyctl.Po + -rm -f ./$(DEPDIR)/kill--pidns-translation.Po -rm -f ./$(DEPDIR)/kill.Po -rm -f ./$(DEPDIR)/kill_child.Po -rm -f ./$(DEPDIR)/ksysent.Po -rm -f ./$(DEPDIR)/lchown.Po -rm -f ./$(DEPDIR)/lchown32.Po -rm -f ./$(DEPDIR)/libtests_a-create_nl_socket.Po + -rm -f ./$(DEPDIR)/libtests_a-create_tmpfile.Po -rm -f ./$(DEPDIR)/libtests_a-errno2name.Po -rm -f ./$(DEPDIR)/libtests_a-error_msg.Po -rm -f ./$(DEPDIR)/libtests_a-fill_memory.Po @@ -9430,20 +12515,26 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/libtests_a-inode_of_sockfd.Po -rm -f ./$(DEPDIR)/libtests_a-libmmsg.Po -rm -f ./$(DEPDIR)/libtests_a-libsocketcall.Po + -rm -f ./$(DEPDIR)/libtests_a-lock_file.Po -rm -f ./$(DEPDIR)/libtests_a-overflowuid.Po + -rm -f ./$(DEPDIR)/libtests_a-pidns.Po -rm -f ./$(DEPDIR)/libtests_a-pipe_maxfd.Po -rm -f ./$(DEPDIR)/libtests_a-print_quoted_string.Po -rm -f ./$(DEPDIR)/libtests_a-print_time.Po -rm -f ./$(DEPDIR)/libtests_a-printflags.Po - -rm -f ./$(DEPDIR)/libtests_a-printxval.Po + -rm -f ./$(DEPDIR)/libtests_a-printxval-Xabbrev.Po + -rm -f ./$(DEPDIR)/libtests_a-printxval-Xraw.Po + -rm -f ./$(DEPDIR)/libtests_a-printxval-Xverbose.Po -rm -f ./$(DEPDIR)/libtests_a-signal2name.Po -rm -f ./$(DEPDIR)/libtests_a-skip_unavailable.Po -rm -f ./$(DEPDIR)/libtests_a-sprintrc.Po + -rm -f ./$(DEPDIR)/libtests_a-status.Po -rm -f ./$(DEPDIR)/libtests_a-tail_alloc.Po -rm -f ./$(DEPDIR)/libtests_a-test_printpath.Po -rm -f ./$(DEPDIR)/libtests_a-test_printstrn.Po -rm -f ./$(DEPDIR)/libtests_a-test_ucopy.Po -rm -f ./$(DEPDIR)/libtests_a-tprintf.Po + -rm -f ./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po -rm -f ./$(DEPDIR)/link.Po -rm -f ./$(DEPDIR)/linkat.Po -rm -f ./$(DEPDIR)/list_sigaction_signum.Po @@ -9455,12 +12546,18 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/lstat.Po -rm -f ./$(DEPDIR)/lstat64-lstat64.Po -rm -f ./$(DEPDIR)/madvise.Po + -rm -f ./$(DEPDIR)/maybe_switch_current_tcp--quiet-thread-execve.Po + -rm -f ./$(DEPDIR)/maybe_switch_current_tcp.Po + -rm -f ./$(DEPDIR)/mbind-Xabbrev.Po + -rm -f ./$(DEPDIR)/mbind-Xraw.Po + -rm -f ./$(DEPDIR)/mbind-Xverbose.Po -rm -f ./$(DEPDIR)/mbind.Po -rm -f ./$(DEPDIR)/membarrier.Po -rm -f ./$(DEPDIR)/memfd_create-Xabbrev.Po -rm -f ./$(DEPDIR)/memfd_create-Xraw.Po -rm -f ./$(DEPDIR)/memfd_create-Xverbose.Po -rm -f ./$(DEPDIR)/memfd_create.Po + -rm -f ./$(DEPDIR)/migrate_pages--pidns-translation.Po -rm -f ./$(DEPDIR)/migrate_pages.Po -rm -f ./$(DEPDIR)/mincore.Po -rm -f ./$(DEPDIR)/mkdir.Po @@ -9487,6 +12584,9 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/mount-Xraw.Po -rm -f ./$(DEPDIR)/mount-Xverbose.Po -rm -f ./$(DEPDIR)/mount.Po + -rm -f ./$(DEPDIR)/move_mount-P.Po + -rm -f ./$(DEPDIR)/move_mount.Po + -rm -f ./$(DEPDIR)/move_pages--pidns-translation.Po -rm -f ./$(DEPDIR)/move_pages-Xabbrev.Po -rm -f ./$(DEPDIR)/move_pages-Xraw.Po -rm -f ./$(DEPDIR)/move_pages-Xverbose.Po @@ -9500,12 +12600,17 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/msg_name.Po -rm -f ./$(DEPDIR)/munlockall.Po -rm -f ./$(DEPDIR)/nanosleep.Po + -rm -f ./$(DEPDIR)/net--decode-fds-dev-netlink.Po + -rm -f ./$(DEPDIR)/net--decode-fds-none-netlink.Po + -rm -f ./$(DEPDIR)/net--decode-fds-path-netlink.Po + -rm -f ./$(DEPDIR)/net--decode-fds-socket-netlink.Po -rm -f ./$(DEPDIR)/net-accept-connect.Po -rm -f ./$(DEPDIR)/net-icmp_filter.Po -rm -f ./$(DEPDIR)/net-packet_mreq-Xabbrev.Po -rm -f ./$(DEPDIR)/net-packet_mreq-Xraw.Po -rm -f ./$(DEPDIR)/net-packet_mreq-Xverbose.Po -rm -f ./$(DEPDIR)/net-packet_mreq.Po + -rm -f ./$(DEPDIR)/net-sockaddr--pidns-translation.Po -rm -f ./$(DEPDIR)/net-sockaddr.Po -rm -f ./$(DEPDIR)/net-tpacket_req.Po -rm -f ./$(DEPDIR)/net-tpacket_stats-success.Po @@ -9515,6 +12620,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/net-yy-inet6.Po -rm -f ./$(DEPDIR)/net-yy-netlink.Po -rm -f ./$(DEPDIR)/net-yy-unix.Po + -rm -f ./$(DEPDIR)/netlink_audit--pidns-translation.Po -rm -f ./$(DEPDIR)/netlink_audit.Po -rm -f ./$(DEPDIR)/netlink_crypto.Po -rm -f ./$(DEPDIR)/netlink_generic.Po @@ -9552,6 +12658,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/nlattr_ifla_brport.Po -rm -f ./$(DEPDIR)/nlattr_ifla_linkinfo.Po -rm -f ./$(DEPDIR)/nlattr_ifla_port.Po + -rm -f ./$(DEPDIR)/nlattr_ifla_xdp-y.Po -rm -f ./$(DEPDIR)/nlattr_ifla_xdp.Po -rm -f ./$(DEPDIR)/nlattr_inet_diag_msg.Po -rm -f ./$(DEPDIR)/nlattr_inet_diag_req_compat.Po @@ -9588,7 +12695,19 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/oldselect.Po -rm -f ./$(DEPDIR)/oldstat.Po -rm -f ./$(DEPDIR)/open.Po + -rm -f ./$(DEPDIR)/open_tree-P.Po + -rm -f ./$(DEPDIR)/open_tree.Po -rm -f ./$(DEPDIR)/openat.Po + -rm -f ./$(DEPDIR)/openat2-Xabbrev.Po + -rm -f ./$(DEPDIR)/openat2-Xraw.Po + -rm -f ./$(DEPDIR)/openat2-Xverbose.Po + -rm -f ./$(DEPDIR)/openat2-v-y-Xabbrev.Po + -rm -f ./$(DEPDIR)/openat2-v-y-Xraw.Po + -rm -f ./$(DEPDIR)/openat2-v-y-Xverbose.Po + -rm -f ./$(DEPDIR)/openat2-v-y.Po + -rm -f ./$(DEPDIR)/openat2-v.Po + -rm -f ./$(DEPDIR)/openat2-y.Po + -rm -f ./$(DEPDIR)/openat2.Po -rm -f ./$(DEPDIR)/orphaned_process_group.Po -rm -f ./$(DEPDIR)/osf_utimes.Po -rm -f ./$(DEPDIR)/pause.Po @@ -9600,7 +12719,20 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/personality-Xraw.Po -rm -f ./$(DEPDIR)/personality-Xverbose.Po -rm -f ./$(DEPDIR)/personality.Po + -rm -f ./$(DEPDIR)/pidfd_getfd-y.Po + -rm -f ./$(DEPDIR)/pidfd_getfd-yy.Po + -rm -f ./$(DEPDIR)/pidfd_getfd.Po + -rm -f ./$(DEPDIR)/pidfd_open--decode-fd-path.Po + -rm -f ./$(DEPDIR)/pidfd_open--decode-fd-pidfd.Po + -rm -f ./$(DEPDIR)/pidfd_open--decode-fd-socket.Po + -rm -f ./$(DEPDIR)/pidfd_open--pidns-translation.Po + -rm -f ./$(DEPDIR)/pidfd_open-P.Po + -rm -f ./$(DEPDIR)/pidfd_open-y.Po + -rm -f ./$(DEPDIR)/pidfd_open-yy.Po + -rm -f ./$(DEPDIR)/pidfd_open.Po + -rm -f ./$(DEPDIR)/pidfd_send_signal--pidns-translation.Po -rm -f ./$(DEPDIR)/pidfd_send_signal.Po + -rm -f ./$(DEPDIR)/pidns-cache.Po -rm -f ./$(DEPDIR)/pipe.Po -rm -f ./$(DEPDIR)/pipe2.Po -rm -f ./$(DEPDIR)/pkey_alloc.Po @@ -9627,6 +12759,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/preadv2-pwritev2.Po -rm -f ./$(DEPDIR)/preadv_pwritev-preadv-pwritev.Po -rm -f ./$(DEPDIR)/print_maxfd.Po + -rm -f ./$(DEPDIR)/print_ppid_tracerpid.Po -rm -f ./$(DEPDIR)/printpath-umovestr-peekdata.Po -rm -f ./$(DEPDIR)/printpath-umovestr-undumpable.Po -rm -f ./$(DEPDIR)/printpath-umovestr.Po @@ -9637,8 +12770,11 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/printstrn-umoven-peekdata.Po -rm -f ./$(DEPDIR)/printstrn-umoven-undumpable.Po -rm -f ./$(DEPDIR)/printstrn-umoven.Po + -rm -f ./$(DEPDIR)/prlimit64--pidns-translation.Po -rm -f ./$(DEPDIR)/prlimit64.Po + -rm -f ./$(DEPDIR)/process_vm_readv--pidns-translation.Po -rm -f ./$(DEPDIR)/process_vm_readv.Po + -rm -f ./$(DEPDIR)/process_vm_writev--pidns-translation.Po -rm -f ./$(DEPDIR)/process_vm_writev.Po -rm -f ./$(DEPDIR)/pselect6.Po -rm -f ./$(DEPDIR)/ptrace.Po @@ -9667,6 +12803,8 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/readlinkat.Po -rm -f ./$(DEPDIR)/readv.Po -rm -f ./$(DEPDIR)/reboot.Po + -rm -f ./$(DEPDIR)/recv-MSG_TRUNC.Po + -rm -f ./$(DEPDIR)/recvfrom-MSG_TRUNC.Po -rm -f ./$(DEPDIR)/recvfrom.Po -rm -f ./$(DEPDIR)/recvmmsg-timeout.Po -rm -f ./$(DEPDIR)/recvmsg.Po @@ -9685,10 +12823,12 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/rt_sigaction.Po -rm -f ./$(DEPDIR)/rt_sigpending.Po -rm -f ./$(DEPDIR)/rt_sigprocmask.Po + -rm -f ./$(DEPDIR)/rt_sigqueueinfo--pidns-translation.Po -rm -f ./$(DEPDIR)/rt_sigqueueinfo.Po -rm -f ./$(DEPDIR)/rt_sigreturn.Po -rm -f ./$(DEPDIR)/rt_sigsuspend.Po -rm -f ./$(DEPDIR)/rt_sigtimedwait.Po + -rm -f ./$(DEPDIR)/rt_tgsigqueueinfo--pidns-translation.Po -rm -f ./$(DEPDIR)/rt_tgsigqueueinfo.Po -rm -f ./$(DEPDIR)/run_expect_termsig.Po -rm -f ./$(DEPDIR)/s390_guarded_storage-v.Po @@ -9699,9 +12839,13 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/s390_sthyi.Po -rm -f ./$(DEPDIR)/sched_get_priority_mxx.Po -rm -f ./$(DEPDIR)/sched_rr_get_interval.Po + -rm -f ./$(DEPDIR)/sched_xetaffinity--pidns-translation.Po -rm -f ./$(DEPDIR)/sched_xetaffinity.Po + -rm -f ./$(DEPDIR)/sched_xetattr--pidns-translation.Po -rm -f ./$(DEPDIR)/sched_xetattr.Po + -rm -f ./$(DEPDIR)/sched_xetparam--pidns-translation.Po -rm -f ./$(DEPDIR)/sched_xetparam.Po + -rm -f ./$(DEPDIR)/sched_xetscheduler--pidns-translation.Po -rm -f ./$(DEPDIR)/sched_xetscheduler.Po -rm -f ./$(DEPDIR)/sched_yield.Po -rm -f ./$(DEPDIR)/scm_rights.Po @@ -9711,9 +12855,14 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/seccomp_get_action_avail.Po -rm -f ./$(DEPDIR)/select-P.Po -rm -f ./$(DEPDIR)/select.Po + -rm -f ./$(DEPDIR)/semop-indirect.Po -rm -f ./$(DEPDIR)/semop.Po + -rm -f ./$(DEPDIR)/semtimedop.Po -rm -f ./$(DEPDIR)/sendfile.Po -rm -f ./$(DEPDIR)/sendfile64.Po + -rm -f ./$(DEPDIR)/set_mempolicy-Xabbrev.Po + -rm -f ./$(DEPDIR)/set_mempolicy-Xraw.Po + -rm -f ./$(DEPDIR)/set_mempolicy-Xverbose.Po -rm -f ./$(DEPDIR)/set_mempolicy.Po -rm -f ./$(DEPDIR)/set_ptracer_any.Po -rm -f ./$(DEPDIR)/set_sigblock.Po @@ -9729,6 +12878,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/setgroups32.Po -rm -f ./$(DEPDIR)/sethostname.Po -rm -f ./$(DEPDIR)/setns.Po + -rm -f ./$(DEPDIR)/setpgrp-exec.Po -rm -f ./$(DEPDIR)/setregid.Po -rm -f ./$(DEPDIR)/setregid32.Po -rm -f ./$(DEPDIR)/setresgid.Po @@ -9749,6 +12899,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/sigaltstack.Po -rm -f ./$(DEPDIR)/siginfo.Po -rm -f ./$(DEPDIR)/signal.Po + -rm -f ./$(DEPDIR)/signal_receive--pidns-translation.Po -rm -f ./$(DEPDIR)/signal_receive.Po -rm -f ./$(DEPDIR)/signalfd4.Po -rm -f ./$(DEPDIR)/sigpending.Po @@ -9758,6 +12909,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/sleep.Po -rm -f ./$(DEPDIR)/so_error.Po -rm -f ./$(DEPDIR)/so_linger.Po + -rm -f ./$(DEPDIR)/so_peercred--pidns-translation.Po -rm -f ./$(DEPDIR)/so_peercred-Xabbrev.Po -rm -f ./$(DEPDIR)/so_peercred-Xraw.Po -rm -f ./$(DEPDIR)/so_peercred-Xverbose.Po @@ -9777,6 +12929,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/stack-fcall-1.Po -rm -f ./$(DEPDIR)/stack-fcall-2.Po -rm -f ./$(DEPDIR)/stack-fcall-3.Po + -rm -f ./$(DEPDIR)/stack-fcall-attach.Po -rm -f ./$(DEPDIR)/stack-fcall-mangled-0.Po -rm -f ./$(DEPDIR)/stack-fcall-mangled-1.Po -rm -f ./$(DEPDIR)/stack-fcall-mangled-2.Po @@ -9787,7 +12940,25 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/stat64-stat64.Po -rm -f ./$(DEPDIR)/statfs-statfs.Po -rm -f ./$(DEPDIR)/statfs64.Po + -rm -f ./$(DEPDIR)/status-all.Po + -rm -f ./$(DEPDIR)/status-failed-long.Po + -rm -f ./$(DEPDIR)/status-failed-status.Po + -rm -f ./$(DEPDIR)/status-failed.Po + -rm -f ./$(DEPDIR)/status-none-f.Po + -rm -f ./$(DEPDIR)/status-none-threads.Po + -rm -f ./$(DEPDIR)/status-none.Po + -rm -f ./$(DEPDIR)/status-successful-long.Po + -rm -f ./$(DEPDIR)/status-successful-status.Po + -rm -f ./$(DEPDIR)/status-successful.Po + -rm -f ./$(DEPDIR)/status-unfinished-threads.Po + -rm -f ./$(DEPDIR)/status-unfinished.Po -rm -f ./$(DEPDIR)/statx.Po + -rm -f ./$(DEPDIR)/strace--strings-in-hex-all.Po + -rm -f ./$(DEPDIR)/strace--strings-in-hex-non-ascii.Po + -rm -f ./$(DEPDIR)/strace--strings-in-hex.Po + -rm -f ./$(DEPDIR)/strace-n.Po + -rm -f ./$(DEPDIR)/strace-x.Po + -rm -f ./$(DEPDIR)/strace-xx.Po -rm -f ./$(DEPDIR)/swap.Po -rm -f ./$(DEPDIR)/sxetmask.Po -rm -f ./$(DEPDIR)/symlink.Po @@ -9796,8 +12967,15 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/sync_file_range.Po -rm -f ./$(DEPDIR)/sync_file_range2.Po -rm -f ./$(DEPDIR)/sysinfo.Po + -rm -f ./$(DEPDIR)/syslog-success.Po -rm -f ./$(DEPDIR)/syslog.Po -rm -f ./$(DEPDIR)/tee.Po + -rm -f ./$(DEPDIR)/tgkill--pidns-translation.Po + -rm -f ./$(DEPDIR)/tgkill.Po + -rm -f ./$(DEPDIR)/threads-execve--quiet-thread-execve.Po + -rm -f ./$(DEPDIR)/threads-execve-q.Po + -rm -f ./$(DEPDIR)/threads-execve-qq.Po + -rm -f ./$(DEPDIR)/threads-execve-qqq.Po -rm -f ./$(DEPDIR)/threads-execve.Po -rm -f ./$(DEPDIR)/time.Po -rm -f ./$(DEPDIR)/timer_create.Po @@ -9805,6 +12983,11 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/timerfd_xettime.Po -rm -f ./$(DEPDIR)/times-fail.Po -rm -f ./$(DEPDIR)/times.Po + -rm -f ./$(DEPDIR)/tkill--pidns-translation.Po + -rm -f ./$(DEPDIR)/tkill.Po + -rm -f ./$(DEPDIR)/tracer_ppid_pgid_sid.Po + -rm -f ./$(DEPDIR)/trie_test-trie_for_tests.Po + -rm -f ./$(DEPDIR)/trie_test-trie_test.Po -rm -f ./$(DEPDIR)/truncate.Po -rm -f ./$(DEPDIR)/truncate64-truncate64.Po -rm -f ./$(DEPDIR)/ugetrlimit.Po @@ -9817,6 +13000,8 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/umovestr.Po -rm -f ./$(DEPDIR)/umovestr2.Po -rm -f ./$(DEPDIR)/umovestr3.Po + -rm -f ./$(DEPDIR)/umovestr_cached.Po + -rm -f ./$(DEPDIR)/umovestr_cached_adjacent.Po -rm -f ./$(DEPDIR)/uname.Po -rm -f ./$(DEPDIR)/unblock_reset_raise.Po -rm -f ./$(DEPDIR)/unix-pair-send-recv.Po @@ -9842,10 +13027,13 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/waitpid.Po -rm -f ./$(DEPDIR)/xattr-strings.Po -rm -f ./$(DEPDIR)/xattr.Po + -rm -f ./$(DEPDIR)/xet_robust_list--pidns-translation.Po -rm -f ./$(DEPDIR)/xet_robust_list.Po -rm -f ./$(DEPDIR)/xet_thread_area_x86.Po -rm -f ./$(DEPDIR)/xetitimer.Po + -rm -f ./$(DEPDIR)/xetpgid--pidns-translation.Po -rm -f ./$(DEPDIR)/xetpgid.Po + -rm -f ./$(DEPDIR)/xetpriority--pidns-translation.Po -rm -f ./$(DEPDIR)/xetpriority.Po -rm -f ./$(DEPDIR)/xettimeofday.Po -rm -f ./$(DEPDIR)/zeroargc.Po @@ -9911,10 +13099,12 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/attach-p-cmd-cmd.Po -rm -f ./$(DEPDIR)/attach-p-cmd-p.Po -rm -f ./$(DEPDIR)/block_reset_raise_run.Po + -rm -f ./$(DEPDIR)/block_reset_run.Po -rm -f ./$(DEPDIR)/bpf-obj_get_info_by_fd-prog-v.Po -rm -f ./$(DEPDIR)/bpf-obj_get_info_by_fd-prog.Po -rm -f ./$(DEPDIR)/bpf-obj_get_info_by_fd-v.Po -rm -f ./$(DEPDIR)/bpf-obj_get_info_by_fd.Po + -rm -f ./$(DEPDIR)/bpf-success-long-y.Po -rm -f ./$(DEPDIR)/bpf-success-v.Po -rm -f ./$(DEPDIR)/bpf-success.Po -rm -f ./$(DEPDIR)/bpf-v.Po @@ -9932,16 +13122,48 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/clock_adjtime.Po -rm -f ./$(DEPDIR)/clock_nanosleep.Po -rm -f ./$(DEPDIR)/clock_xettime.Po + -rm -f ./$(DEPDIR)/clone-flags.Po + -rm -f ./$(DEPDIR)/clone3-Xabbrev.Po + -rm -f ./$(DEPDIR)/clone3-Xraw.Po + -rm -f ./$(DEPDIR)/clone3-Xverbose.Po + -rm -f ./$(DEPDIR)/clone3-success-Xabbrev.Po + -rm -f ./$(DEPDIR)/clone3-success-Xraw.Po + -rm -f ./$(DEPDIR)/clone3-success-Xverbose.Po + -rm -f ./$(DEPDIR)/clone3-success.Po + -rm -f ./$(DEPDIR)/clone3.Po + -rm -f ./$(DEPDIR)/clone_parent--quiet-exit.Po + -rm -f ./$(DEPDIR)/clone_parent-q.Po + -rm -f ./$(DEPDIR)/clone_parent-qq.Po -rm -f ./$(DEPDIR)/clone_parent.Po + -rm -f ./$(DEPDIR)/clone_ptrace--quiet-attach.Po + -rm -f ./$(DEPDIR)/clone_ptrace--quiet-exit.Po + -rm -f ./$(DEPDIR)/clone_ptrace-q.Po + -rm -f ./$(DEPDIR)/clone_ptrace-qq.Po -rm -f ./$(DEPDIR)/clone_ptrace.Po + -rm -f ./$(DEPDIR)/close_range-P.Po + -rm -f ./$(DEPDIR)/close_range-y.Po + -rm -f ./$(DEPDIR)/close_range-yy.Po + -rm -f ./$(DEPDIR)/close_range.Po -rm -f ./$(DEPDIR)/copy_file_range.Po -rm -f ./$(DEPDIR)/count-f.Po -rm -f ./$(DEPDIR)/creat.Po -rm -f ./$(DEPDIR)/delay.Po -rm -f ./$(DEPDIR)/delete_module.Po + -rm -f ./$(DEPDIR)/dev--decode-fds-dev.Po + -rm -f ./$(DEPDIR)/dev--decode-fds-path.Po + -rm -f ./$(DEPDIR)/dev--decode-fds-socket.Po -rm -f ./$(DEPDIR)/dev-yy.Po + -rm -f ./$(DEPDIR)/dup-P.Po + -rm -f ./$(DEPDIR)/dup-y.Po + -rm -f ./$(DEPDIR)/dup-yy.Po -rm -f ./$(DEPDIR)/dup.Po + -rm -f ./$(DEPDIR)/dup2-P.Po + -rm -f ./$(DEPDIR)/dup2-y.Po + -rm -f ./$(DEPDIR)/dup2-yy.Po -rm -f ./$(DEPDIR)/dup2.Po + -rm -f ./$(DEPDIR)/dup3-P.Po + -rm -f ./$(DEPDIR)/dup3-y.Po + -rm -f ./$(DEPDIR)/dup3-yy.Po -rm -f ./$(DEPDIR)/dup3.Po -rm -f ./$(DEPDIR)/epoll_create.Po -rm -f ./$(DEPDIR)/epoll_create1.Po @@ -9954,7 +13176,14 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/execve.Po -rm -f ./$(DEPDIR)/execveat-v.Po -rm -f ./$(DEPDIR)/execveat.Po + -rm -f ./$(DEPDIR)/faccessat-P.Po + -rm -f ./$(DEPDIR)/faccessat-y.Po + -rm -f ./$(DEPDIR)/faccessat-yy.Po -rm -f ./$(DEPDIR)/faccessat.Po + -rm -f ./$(DEPDIR)/faccessat2-P.Po + -rm -f ./$(DEPDIR)/faccessat2-y.Po + -rm -f ./$(DEPDIR)/faccessat2-yy.Po + -rm -f ./$(DEPDIR)/faccessat2.Po -rm -f ./$(DEPDIR)/fadvise64.Po -rm -f ./$(DEPDIR)/fadvise64_64.Po -rm -f ./$(DEPDIR)/fallocate.Po @@ -9969,16 +13198,27 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/fchown.Po -rm -f ./$(DEPDIR)/fchown32.Po -rm -f ./$(DEPDIR)/fchownat.Po + -rm -f ./$(DEPDIR)/fcntl--pidns-translation.Po -rm -f ./$(DEPDIR)/fcntl.Po + -rm -f ./$(DEPDIR)/fcntl64--pidns-translation.Po -rm -f ./$(DEPDIR)/fcntl64.Po -rm -f ./$(DEPDIR)/fdatasync.Po -rm -f ./$(DEPDIR)/fflush.Po -rm -f ./$(DEPDIR)/file_handle.Po -rm -f ./$(DEPDIR)/file_ioctl.Po -rm -f ./$(DEPDIR)/filter-unavailable.Po + -rm -f ./$(DEPDIR)/filter_seccomp-flag.Po + -rm -f ./$(DEPDIR)/filter_seccomp-perf.Po -rm -f ./$(DEPDIR)/finit_module.Po -rm -f ./$(DEPDIR)/flock.Po + -rm -f ./$(DEPDIR)/fork--pidns-translation.Po -rm -f ./$(DEPDIR)/fork-f.Po + -rm -f ./$(DEPDIR)/fsconfig-P.Po + -rm -f ./$(DEPDIR)/fsconfig.Po + -rm -f ./$(DEPDIR)/fsmount.Po + -rm -f ./$(DEPDIR)/fsopen.Po + -rm -f ./$(DEPDIR)/fspick-P.Po + -rm -f ./$(DEPDIR)/fspick.Po -rm -f ./$(DEPDIR)/fstat-Xabbrev.Po -rm -f ./$(DEPDIR)/fstat-Xraw.Po -rm -f ./$(DEPDIR)/fstat-Xverbose.Po @@ -9997,9 +13237,12 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/futex.Po -rm -f ./$(DEPDIR)/futimesat.Po -rm -f ./$(DEPDIR)/get_mempolicy.Po + -rm -f ./$(DEPDIR)/get_process_reaper.Po -rm -f ./$(DEPDIR)/getcpu.Po -rm -f ./$(DEPDIR)/getcwd.Po + -rm -f ./$(DEPDIR)/getdents-v.Po -rm -f ./$(DEPDIR)/getdents.Po + -rm -f ./$(DEPDIR)/getdents64-v.Po -rm -f ./$(DEPDIR)/getdents64.Po -rm -f ./$(DEPDIR)/getegid.Po -rm -f ./$(DEPDIR)/getegid32.Po @@ -10010,7 +13253,9 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/getgroups.Po -rm -f ./$(DEPDIR)/getgroups32.Po -rm -f ./$(DEPDIR)/getpeername.Po + -rm -f ./$(DEPDIR)/getpgrp--pidns-translation.Po -rm -f ./$(DEPDIR)/getpgrp.Po + -rm -f ./$(DEPDIR)/getpid--pidns-translation.Po -rm -f ./$(DEPDIR)/getpid.Po -rm -f ./$(DEPDIR)/getppid.Po -rm -f ./$(DEPDIR)/getrandom.Po @@ -10020,30 +13265,66 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/getresuid32.Po -rm -f ./$(DEPDIR)/getrlimit.Po -rm -f ./$(DEPDIR)/getrusage.Po + -rm -f ./$(DEPDIR)/getsid--pidns-translation.Po -rm -f ./$(DEPDIR)/getsid.Po -rm -f ./$(DEPDIR)/getsockname.Po + -rm -f ./$(DEPDIR)/gettid--pidns-translation.Po -rm -f ./$(DEPDIR)/gettid.Po -rm -f ./$(DEPDIR)/getuid.Po -rm -f ./$(DEPDIR)/getuid32.Po - -rm -f ./$(DEPDIR)/getxxid.Po + -rm -f ./$(DEPDIR)/getxgid.Po + -rm -f ./$(DEPDIR)/getxpid.Po + -rm -f ./$(DEPDIR)/getxuid.Po -rm -f ./$(DEPDIR)/group_req.Po -rm -f ./$(DEPDIR)/inet-cmsg.Po -rm -f ./$(DEPDIR)/init_module.Po -rm -f ./$(DEPDIR)/inject-nf.Po -rm -f ./$(DEPDIR)/inotify.Po + -rm -f ./$(DEPDIR)/inotify_init-y.Po + -rm -f ./$(DEPDIR)/inotify_init.Po + -rm -f ./$(DEPDIR)/inotify_init1-y.Po -rm -f ./$(DEPDIR)/inotify_init1.Po -rm -f ./$(DEPDIR)/int_0x80.Po -rm -f ./$(DEPDIR)/io_uring_enter.Po -rm -f ./$(DEPDIR)/io_uring_register.Po -rm -f ./$(DEPDIR)/io_uring_setup.Po -rm -f ./$(DEPDIR)/ioctl.Po + -rm -f ./$(DEPDIR)/ioctl_block--pidns-translation.Po -rm -f ./$(DEPDIR)/ioctl_block.Po -rm -f ./$(DEPDIR)/ioctl_dm-v.Po -rm -f ./$(DEPDIR)/ioctl_dm.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-success-v-Xverbose.Po -rm -f ./$(DEPDIR)/ioctl_evdev-success-v.Po -rm -f ./$(DEPDIR)/ioctl_evdev-success.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_evdev-v-Xverbose.Po -rm -f ./$(DEPDIR)/ioctl_evdev-v.Po -rm -f ./$(DEPDIR)/ioctl_evdev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-v-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success-v.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-success.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-v-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_hdio-v.Po + -rm -f ./$(DEPDIR)/ioctl_hdio.Po -rm -f ./$(DEPDIR)/ioctl_inotify.Po -rm -f ./$(DEPDIR)/ioctl_kvm_run-v.Po -rm -f ./$(DEPDIR)/ioctl_kvm_run.Po @@ -10064,10 +13345,28 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/ioctl_sg_io_v3.Po -rm -f ./$(DEPDIR)/ioctl_sg_io_v4.Po -rm -f ./$(DEPDIR)/ioctl_sock_gifconf.Po + -rm -f ./$(DEPDIR)/ioctl_tee.Po -rm -f ./$(DEPDIR)/ioctl_uffdio.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-v-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success-v.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-success.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-v-Xabbrev.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-v-Xraw.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-v-Xverbose.Po + -rm -f ./$(DEPDIR)/ioctl_v4l2-v.Po -rm -f ./$(DEPDIR)/ioctl_v4l2.Po + -rm -f ./$(DEPDIR)/ioctl_watchdog.Po -rm -f ./$(DEPDIR)/ioperm.Po -rm -f ./$(DEPDIR)/iopl.Po + -rm -f ./$(DEPDIR)/ioprio--pidns-translation.Po -rm -f ./$(DEPDIR)/ioprio-Xabbrev.Po -rm -f ./$(DEPDIR)/ioprio-Xraw.Po -rm -f ./$(DEPDIR)/ioprio-Xverbose.Po @@ -10091,6 +13390,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/ipc_shm-Xverbose.Po -rm -f ./$(DEPDIR)/ipc_shm.Po -rm -f ./$(DEPDIR)/is_linux_mips_n64.Po + -rm -f ./$(DEPDIR)/kcmp-y--pidns-translation.Po -rm -f ./$(DEPDIR)/kcmp-y.Po -rm -f ./$(DEPDIR)/kcmp.Po -rm -f ./$(DEPDIR)/kern_features.Po @@ -10104,12 +13404,14 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/keyctl-Xraw.Po -rm -f ./$(DEPDIR)/keyctl-Xverbose.Po -rm -f ./$(DEPDIR)/keyctl.Po + -rm -f ./$(DEPDIR)/kill--pidns-translation.Po -rm -f ./$(DEPDIR)/kill.Po -rm -f ./$(DEPDIR)/kill_child.Po -rm -f ./$(DEPDIR)/ksysent.Po -rm -f ./$(DEPDIR)/lchown.Po -rm -f ./$(DEPDIR)/lchown32.Po -rm -f ./$(DEPDIR)/libtests_a-create_nl_socket.Po + -rm -f ./$(DEPDIR)/libtests_a-create_tmpfile.Po -rm -f ./$(DEPDIR)/libtests_a-errno2name.Po -rm -f ./$(DEPDIR)/libtests_a-error_msg.Po -rm -f ./$(DEPDIR)/libtests_a-fill_memory.Po @@ -10121,20 +13423,26 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/libtests_a-inode_of_sockfd.Po -rm -f ./$(DEPDIR)/libtests_a-libmmsg.Po -rm -f ./$(DEPDIR)/libtests_a-libsocketcall.Po + -rm -f ./$(DEPDIR)/libtests_a-lock_file.Po -rm -f ./$(DEPDIR)/libtests_a-overflowuid.Po + -rm -f ./$(DEPDIR)/libtests_a-pidns.Po -rm -f ./$(DEPDIR)/libtests_a-pipe_maxfd.Po -rm -f ./$(DEPDIR)/libtests_a-print_quoted_string.Po -rm -f ./$(DEPDIR)/libtests_a-print_time.Po -rm -f ./$(DEPDIR)/libtests_a-printflags.Po - -rm -f ./$(DEPDIR)/libtests_a-printxval.Po + -rm -f ./$(DEPDIR)/libtests_a-printxval-Xabbrev.Po + -rm -f ./$(DEPDIR)/libtests_a-printxval-Xraw.Po + -rm -f ./$(DEPDIR)/libtests_a-printxval-Xverbose.Po -rm -f ./$(DEPDIR)/libtests_a-signal2name.Po -rm -f ./$(DEPDIR)/libtests_a-skip_unavailable.Po -rm -f ./$(DEPDIR)/libtests_a-sprintrc.Po + -rm -f ./$(DEPDIR)/libtests_a-status.Po -rm -f ./$(DEPDIR)/libtests_a-tail_alloc.Po -rm -f ./$(DEPDIR)/libtests_a-test_printpath.Po -rm -f ./$(DEPDIR)/libtests_a-test_printstrn.Po -rm -f ./$(DEPDIR)/libtests_a-test_ucopy.Po -rm -f ./$(DEPDIR)/libtests_a-tprintf.Po + -rm -f ./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po -rm -f ./$(DEPDIR)/link.Po -rm -f ./$(DEPDIR)/linkat.Po -rm -f ./$(DEPDIR)/list_sigaction_signum.Po @@ -10146,12 +13454,18 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/lstat.Po -rm -f ./$(DEPDIR)/lstat64-lstat64.Po -rm -f ./$(DEPDIR)/madvise.Po + -rm -f ./$(DEPDIR)/maybe_switch_current_tcp--quiet-thread-execve.Po + -rm -f ./$(DEPDIR)/maybe_switch_current_tcp.Po + -rm -f ./$(DEPDIR)/mbind-Xabbrev.Po + -rm -f ./$(DEPDIR)/mbind-Xraw.Po + -rm -f ./$(DEPDIR)/mbind-Xverbose.Po -rm -f ./$(DEPDIR)/mbind.Po -rm -f ./$(DEPDIR)/membarrier.Po -rm -f ./$(DEPDIR)/memfd_create-Xabbrev.Po -rm -f ./$(DEPDIR)/memfd_create-Xraw.Po -rm -f ./$(DEPDIR)/memfd_create-Xverbose.Po -rm -f ./$(DEPDIR)/memfd_create.Po + -rm -f ./$(DEPDIR)/migrate_pages--pidns-translation.Po -rm -f ./$(DEPDIR)/migrate_pages.Po -rm -f ./$(DEPDIR)/mincore.Po -rm -f ./$(DEPDIR)/mkdir.Po @@ -10178,6 +13492,9 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/mount-Xraw.Po -rm -f ./$(DEPDIR)/mount-Xverbose.Po -rm -f ./$(DEPDIR)/mount.Po + -rm -f ./$(DEPDIR)/move_mount-P.Po + -rm -f ./$(DEPDIR)/move_mount.Po + -rm -f ./$(DEPDIR)/move_pages--pidns-translation.Po -rm -f ./$(DEPDIR)/move_pages-Xabbrev.Po -rm -f ./$(DEPDIR)/move_pages-Xraw.Po -rm -f ./$(DEPDIR)/move_pages-Xverbose.Po @@ -10191,12 +13508,17 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/msg_name.Po -rm -f ./$(DEPDIR)/munlockall.Po -rm -f ./$(DEPDIR)/nanosleep.Po + -rm -f ./$(DEPDIR)/net--decode-fds-dev-netlink.Po + -rm -f ./$(DEPDIR)/net--decode-fds-none-netlink.Po + -rm -f ./$(DEPDIR)/net--decode-fds-path-netlink.Po + -rm -f ./$(DEPDIR)/net--decode-fds-socket-netlink.Po -rm -f ./$(DEPDIR)/net-accept-connect.Po -rm -f ./$(DEPDIR)/net-icmp_filter.Po -rm -f ./$(DEPDIR)/net-packet_mreq-Xabbrev.Po -rm -f ./$(DEPDIR)/net-packet_mreq-Xraw.Po -rm -f ./$(DEPDIR)/net-packet_mreq-Xverbose.Po -rm -f ./$(DEPDIR)/net-packet_mreq.Po + -rm -f ./$(DEPDIR)/net-sockaddr--pidns-translation.Po -rm -f ./$(DEPDIR)/net-sockaddr.Po -rm -f ./$(DEPDIR)/net-tpacket_req.Po -rm -f ./$(DEPDIR)/net-tpacket_stats-success.Po @@ -10206,6 +13528,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/net-yy-inet6.Po -rm -f ./$(DEPDIR)/net-yy-netlink.Po -rm -f ./$(DEPDIR)/net-yy-unix.Po + -rm -f ./$(DEPDIR)/netlink_audit--pidns-translation.Po -rm -f ./$(DEPDIR)/netlink_audit.Po -rm -f ./$(DEPDIR)/netlink_crypto.Po -rm -f ./$(DEPDIR)/netlink_generic.Po @@ -10243,6 +13566,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/nlattr_ifla_brport.Po -rm -f ./$(DEPDIR)/nlattr_ifla_linkinfo.Po -rm -f ./$(DEPDIR)/nlattr_ifla_port.Po + -rm -f ./$(DEPDIR)/nlattr_ifla_xdp-y.Po -rm -f ./$(DEPDIR)/nlattr_ifla_xdp.Po -rm -f ./$(DEPDIR)/nlattr_inet_diag_msg.Po -rm -f ./$(DEPDIR)/nlattr_inet_diag_req_compat.Po @@ -10279,7 +13603,19 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/oldselect.Po -rm -f ./$(DEPDIR)/oldstat.Po -rm -f ./$(DEPDIR)/open.Po + -rm -f ./$(DEPDIR)/open_tree-P.Po + -rm -f ./$(DEPDIR)/open_tree.Po -rm -f ./$(DEPDIR)/openat.Po + -rm -f ./$(DEPDIR)/openat2-Xabbrev.Po + -rm -f ./$(DEPDIR)/openat2-Xraw.Po + -rm -f ./$(DEPDIR)/openat2-Xverbose.Po + -rm -f ./$(DEPDIR)/openat2-v-y-Xabbrev.Po + -rm -f ./$(DEPDIR)/openat2-v-y-Xraw.Po + -rm -f ./$(DEPDIR)/openat2-v-y-Xverbose.Po + -rm -f ./$(DEPDIR)/openat2-v-y.Po + -rm -f ./$(DEPDIR)/openat2-v.Po + -rm -f ./$(DEPDIR)/openat2-y.Po + -rm -f ./$(DEPDIR)/openat2.Po -rm -f ./$(DEPDIR)/orphaned_process_group.Po -rm -f ./$(DEPDIR)/osf_utimes.Po -rm -f ./$(DEPDIR)/pause.Po @@ -10291,7 +13627,20 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/personality-Xraw.Po -rm -f ./$(DEPDIR)/personality-Xverbose.Po -rm -f ./$(DEPDIR)/personality.Po + -rm -f ./$(DEPDIR)/pidfd_getfd-y.Po + -rm -f ./$(DEPDIR)/pidfd_getfd-yy.Po + -rm -f ./$(DEPDIR)/pidfd_getfd.Po + -rm -f ./$(DEPDIR)/pidfd_open--decode-fd-path.Po + -rm -f ./$(DEPDIR)/pidfd_open--decode-fd-pidfd.Po + -rm -f ./$(DEPDIR)/pidfd_open--decode-fd-socket.Po + -rm -f ./$(DEPDIR)/pidfd_open--pidns-translation.Po + -rm -f ./$(DEPDIR)/pidfd_open-P.Po + -rm -f ./$(DEPDIR)/pidfd_open-y.Po + -rm -f ./$(DEPDIR)/pidfd_open-yy.Po + -rm -f ./$(DEPDIR)/pidfd_open.Po + -rm -f ./$(DEPDIR)/pidfd_send_signal--pidns-translation.Po -rm -f ./$(DEPDIR)/pidfd_send_signal.Po + -rm -f ./$(DEPDIR)/pidns-cache.Po -rm -f ./$(DEPDIR)/pipe.Po -rm -f ./$(DEPDIR)/pipe2.Po -rm -f ./$(DEPDIR)/pkey_alloc.Po @@ -10318,6 +13667,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/preadv2-pwritev2.Po -rm -f ./$(DEPDIR)/preadv_pwritev-preadv-pwritev.Po -rm -f ./$(DEPDIR)/print_maxfd.Po + -rm -f ./$(DEPDIR)/print_ppid_tracerpid.Po -rm -f ./$(DEPDIR)/printpath-umovestr-peekdata.Po -rm -f ./$(DEPDIR)/printpath-umovestr-undumpable.Po -rm -f ./$(DEPDIR)/printpath-umovestr.Po @@ -10328,8 +13678,11 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/printstrn-umoven-peekdata.Po -rm -f ./$(DEPDIR)/printstrn-umoven-undumpable.Po -rm -f ./$(DEPDIR)/printstrn-umoven.Po + -rm -f ./$(DEPDIR)/prlimit64--pidns-translation.Po -rm -f ./$(DEPDIR)/prlimit64.Po + -rm -f ./$(DEPDIR)/process_vm_readv--pidns-translation.Po -rm -f ./$(DEPDIR)/process_vm_readv.Po + -rm -f ./$(DEPDIR)/process_vm_writev--pidns-translation.Po -rm -f ./$(DEPDIR)/process_vm_writev.Po -rm -f ./$(DEPDIR)/pselect6.Po -rm -f ./$(DEPDIR)/ptrace.Po @@ -10358,6 +13711,8 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/readlinkat.Po -rm -f ./$(DEPDIR)/readv.Po -rm -f ./$(DEPDIR)/reboot.Po + -rm -f ./$(DEPDIR)/recv-MSG_TRUNC.Po + -rm -f ./$(DEPDIR)/recvfrom-MSG_TRUNC.Po -rm -f ./$(DEPDIR)/recvfrom.Po -rm -f ./$(DEPDIR)/recvmmsg-timeout.Po -rm -f ./$(DEPDIR)/recvmsg.Po @@ -10376,10 +13731,12 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/rt_sigaction.Po -rm -f ./$(DEPDIR)/rt_sigpending.Po -rm -f ./$(DEPDIR)/rt_sigprocmask.Po + -rm -f ./$(DEPDIR)/rt_sigqueueinfo--pidns-translation.Po -rm -f ./$(DEPDIR)/rt_sigqueueinfo.Po -rm -f ./$(DEPDIR)/rt_sigreturn.Po -rm -f ./$(DEPDIR)/rt_sigsuspend.Po -rm -f ./$(DEPDIR)/rt_sigtimedwait.Po + -rm -f ./$(DEPDIR)/rt_tgsigqueueinfo--pidns-translation.Po -rm -f ./$(DEPDIR)/rt_tgsigqueueinfo.Po -rm -f ./$(DEPDIR)/run_expect_termsig.Po -rm -f ./$(DEPDIR)/s390_guarded_storage-v.Po @@ -10390,9 +13747,13 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/s390_sthyi.Po -rm -f ./$(DEPDIR)/sched_get_priority_mxx.Po -rm -f ./$(DEPDIR)/sched_rr_get_interval.Po + -rm -f ./$(DEPDIR)/sched_xetaffinity--pidns-translation.Po -rm -f ./$(DEPDIR)/sched_xetaffinity.Po + -rm -f ./$(DEPDIR)/sched_xetattr--pidns-translation.Po -rm -f ./$(DEPDIR)/sched_xetattr.Po + -rm -f ./$(DEPDIR)/sched_xetparam--pidns-translation.Po -rm -f ./$(DEPDIR)/sched_xetparam.Po + -rm -f ./$(DEPDIR)/sched_xetscheduler--pidns-translation.Po -rm -f ./$(DEPDIR)/sched_xetscheduler.Po -rm -f ./$(DEPDIR)/sched_yield.Po -rm -f ./$(DEPDIR)/scm_rights.Po @@ -10402,9 +13763,14 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/seccomp_get_action_avail.Po -rm -f ./$(DEPDIR)/select-P.Po -rm -f ./$(DEPDIR)/select.Po + -rm -f ./$(DEPDIR)/semop-indirect.Po -rm -f ./$(DEPDIR)/semop.Po + -rm -f ./$(DEPDIR)/semtimedop.Po -rm -f ./$(DEPDIR)/sendfile.Po -rm -f ./$(DEPDIR)/sendfile64.Po + -rm -f ./$(DEPDIR)/set_mempolicy-Xabbrev.Po + -rm -f ./$(DEPDIR)/set_mempolicy-Xraw.Po + -rm -f ./$(DEPDIR)/set_mempolicy-Xverbose.Po -rm -f ./$(DEPDIR)/set_mempolicy.Po -rm -f ./$(DEPDIR)/set_ptracer_any.Po -rm -f ./$(DEPDIR)/set_sigblock.Po @@ -10420,6 +13786,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/setgroups32.Po -rm -f ./$(DEPDIR)/sethostname.Po -rm -f ./$(DEPDIR)/setns.Po + -rm -f ./$(DEPDIR)/setpgrp-exec.Po -rm -f ./$(DEPDIR)/setregid.Po -rm -f ./$(DEPDIR)/setregid32.Po -rm -f ./$(DEPDIR)/setresgid.Po @@ -10440,6 +13807,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/sigaltstack.Po -rm -f ./$(DEPDIR)/siginfo.Po -rm -f ./$(DEPDIR)/signal.Po + -rm -f ./$(DEPDIR)/signal_receive--pidns-translation.Po -rm -f ./$(DEPDIR)/signal_receive.Po -rm -f ./$(DEPDIR)/signalfd4.Po -rm -f ./$(DEPDIR)/sigpending.Po @@ -10449,6 +13817,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/sleep.Po -rm -f ./$(DEPDIR)/so_error.Po -rm -f ./$(DEPDIR)/so_linger.Po + -rm -f ./$(DEPDIR)/so_peercred--pidns-translation.Po -rm -f ./$(DEPDIR)/so_peercred-Xabbrev.Po -rm -f ./$(DEPDIR)/so_peercred-Xraw.Po -rm -f ./$(DEPDIR)/so_peercred-Xverbose.Po @@ -10468,6 +13837,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/stack-fcall-1.Po -rm -f ./$(DEPDIR)/stack-fcall-2.Po -rm -f ./$(DEPDIR)/stack-fcall-3.Po + -rm -f ./$(DEPDIR)/stack-fcall-attach.Po -rm -f ./$(DEPDIR)/stack-fcall-mangled-0.Po -rm -f ./$(DEPDIR)/stack-fcall-mangled-1.Po -rm -f ./$(DEPDIR)/stack-fcall-mangled-2.Po @@ -10478,7 +13848,25 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/stat64-stat64.Po -rm -f ./$(DEPDIR)/statfs-statfs.Po -rm -f ./$(DEPDIR)/statfs64.Po + -rm -f ./$(DEPDIR)/status-all.Po + -rm -f ./$(DEPDIR)/status-failed-long.Po + -rm -f ./$(DEPDIR)/status-failed-status.Po + -rm -f ./$(DEPDIR)/status-failed.Po + -rm -f ./$(DEPDIR)/status-none-f.Po + -rm -f ./$(DEPDIR)/status-none-threads.Po + -rm -f ./$(DEPDIR)/status-none.Po + -rm -f ./$(DEPDIR)/status-successful-long.Po + -rm -f ./$(DEPDIR)/status-successful-status.Po + -rm -f ./$(DEPDIR)/status-successful.Po + -rm -f ./$(DEPDIR)/status-unfinished-threads.Po + -rm -f ./$(DEPDIR)/status-unfinished.Po -rm -f ./$(DEPDIR)/statx.Po + -rm -f ./$(DEPDIR)/strace--strings-in-hex-all.Po + -rm -f ./$(DEPDIR)/strace--strings-in-hex-non-ascii.Po + -rm -f ./$(DEPDIR)/strace--strings-in-hex.Po + -rm -f ./$(DEPDIR)/strace-n.Po + -rm -f ./$(DEPDIR)/strace-x.Po + -rm -f ./$(DEPDIR)/strace-xx.Po -rm -f ./$(DEPDIR)/swap.Po -rm -f ./$(DEPDIR)/sxetmask.Po -rm -f ./$(DEPDIR)/symlink.Po @@ -10487,8 +13875,15 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/sync_file_range.Po -rm -f ./$(DEPDIR)/sync_file_range2.Po -rm -f ./$(DEPDIR)/sysinfo.Po + -rm -f ./$(DEPDIR)/syslog-success.Po -rm -f ./$(DEPDIR)/syslog.Po -rm -f ./$(DEPDIR)/tee.Po + -rm -f ./$(DEPDIR)/tgkill--pidns-translation.Po + -rm -f ./$(DEPDIR)/tgkill.Po + -rm -f ./$(DEPDIR)/threads-execve--quiet-thread-execve.Po + -rm -f ./$(DEPDIR)/threads-execve-q.Po + -rm -f ./$(DEPDIR)/threads-execve-qq.Po + -rm -f ./$(DEPDIR)/threads-execve-qqq.Po -rm -f ./$(DEPDIR)/threads-execve.Po -rm -f ./$(DEPDIR)/time.Po -rm -f ./$(DEPDIR)/timer_create.Po @@ -10496,6 +13891,11 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/timerfd_xettime.Po -rm -f ./$(DEPDIR)/times-fail.Po -rm -f ./$(DEPDIR)/times.Po + -rm -f ./$(DEPDIR)/tkill--pidns-translation.Po + -rm -f ./$(DEPDIR)/tkill.Po + -rm -f ./$(DEPDIR)/tracer_ppid_pgid_sid.Po + -rm -f ./$(DEPDIR)/trie_test-trie_for_tests.Po + -rm -f ./$(DEPDIR)/trie_test-trie_test.Po -rm -f ./$(DEPDIR)/truncate.Po -rm -f ./$(DEPDIR)/truncate64-truncate64.Po -rm -f ./$(DEPDIR)/ugetrlimit.Po @@ -10508,6 +13908,8 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/umovestr.Po -rm -f ./$(DEPDIR)/umovestr2.Po -rm -f ./$(DEPDIR)/umovestr3.Po + -rm -f ./$(DEPDIR)/umovestr_cached.Po + -rm -f ./$(DEPDIR)/umovestr_cached_adjacent.Po -rm -f ./$(DEPDIR)/uname.Po -rm -f ./$(DEPDIR)/unblock_reset_raise.Po -rm -f ./$(DEPDIR)/unix-pair-send-recv.Po @@ -10533,10 +13935,13 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/waitpid.Po -rm -f ./$(DEPDIR)/xattr-strings.Po -rm -f ./$(DEPDIR)/xattr.Po + -rm -f ./$(DEPDIR)/xet_robust_list--pidns-translation.Po -rm -f ./$(DEPDIR)/xet_robust_list.Po -rm -f ./$(DEPDIR)/xet_thread_area_x86.Po -rm -f ./$(DEPDIR)/xetitimer.Po + -rm -f ./$(DEPDIR)/xetpgid--pidns-translation.Po -rm -f ./$(DEPDIR)/xetpgid.Po + -rm -f ./$(DEPDIR)/xetpriority--pidns-translation.Po -rm -f ./$(DEPDIR)/xetpriority.Po -rm -f ./$(DEPDIR)/xettimeofday.Po -rm -f ./$(DEPDIR)/zeroargc.Po @@ -10659,13 +14064,79 @@ $(srcdir)/clock_nanosleep.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/clock_xettime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ -$(srcdir)/copy_file_range.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in +$(srcdir)/clone3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ -$(srcdir)/creat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in +$(srcdir)/clone3-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ -$(srcdir)/delete_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in +$(srcdir)/clone3-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-success-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-success-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-success-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_parent.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_parent--quiet-exit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_parent-q.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_parent-qq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_ptrace--quiet-attach.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_ptrace--quiet-exit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_ptrace-q.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_ptrace-qq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/close_range.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/close_range-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/close_range-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/close_range-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/copy_file_range.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/creat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/delete_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dev--decode-fds-dev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dev--decode-fds-path.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dev--decode-fds-socket.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/dev-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in @@ -10674,12 +14145,39 @@ $(srcdir)/dev-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/dup.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/dup-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/dup2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/dup2-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup2-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup2-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/dup3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/dup3-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup3-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup3-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/epoll_create.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -10704,7 +14202,22 @@ $(srcdir)/execveat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/execveat-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ -$(srcdir)/faccessat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in +$(srcdir)/faccessat-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat2-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat2-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat2-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/fadvise64_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in @@ -10749,9 +14262,15 @@ $(srcdir)/fchownat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/fcntl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/fcntl--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/fcntl64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/fcntl64--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/fdatasync.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -10761,6 +14280,12 @@ $(srcdir)/file_handle.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.i $(srcdir)/file_ioctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/filter_seccomp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/filter_seccomp-flag.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/finit_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -10770,6 +14295,24 @@ $(srcdir)/flock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/fork-f.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/fsconfig.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fsconfig-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fsmount.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fsopen.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fspick.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fspick-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/fstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -10830,27 +14373,51 @@ $(srcdir)/getcwd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/getdents.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getdents-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getdents64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getdents64-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getegid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getegid-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getegid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getegid32-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/geteuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/geteuid-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/geteuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/geteuid32-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getgid-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getgid32-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getgroups.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -10863,9 +14430,15 @@ $(srcdir)/getpeername.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.i $(srcdir)/getpgrp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getpgrp--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getpid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getpid--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getppid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -10893,16 +14466,31 @@ $(srcdir)/getrusage.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/getsid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getsid--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getsockname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/gettid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getuid-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ -$(srcdir)/getxxid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in +$(srcdir)/getuid32-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/getxgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/getxpid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/getxuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/group_req.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in @@ -10917,9 +14505,15 @@ $(srcdir)/init_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.i $(srcdir)/inotify.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/inotify_init.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/inotify_init1.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/inotify_init1-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/io_uring_enter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -10941,9 +14535,96 @@ $(srcdir)/ioctl_dm-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/ioctl_evdev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_evdev-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioctl_evdev-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_evdev-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioctl_inotify.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -10977,6 +14658,9 @@ $(srcdir)/ioctl_nsfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/ioctl_perf.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_perf-success.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioctl_ptp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11001,12 +14685,63 @@ $(srcdir)/ioctl_sg_io_v4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_test $(srcdir)/ioctl_sock_gifconf.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_tee.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioctl_uffdio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/ioctl_v4l2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_v4l2-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_watchdog.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioperm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11016,6 +14751,9 @@ $(srcdir)/iopl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/ioprio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioprio--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioprio-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11082,6 +14820,9 @@ $(srcdir)/kcmp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/kcmp-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/kcmp-y--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/kern_features.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11118,6 +14859,12 @@ $(srcdir)/keyctl-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/kill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/kill--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ksysent.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/lchown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11142,9 +14889,24 @@ $(srcdir)/lstat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/madvise.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/maybe_switch_current_tcp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/maybe_switch_current_tcp--quiet-thread-execve.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/mbind.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/mbind-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/mbind-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/mbind-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/membarrier.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11163,6 +14925,9 @@ $(srcdir)/memfd_create-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/g $(srcdir)/migrate_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/migrate_pages--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/mincore.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11235,6 +15000,12 @@ $(srcdir)/mount-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/mount-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/move_mount.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/move_mount-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/move_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11247,6 +15018,9 @@ $(srcdir)/move_pages-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/move_pages-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/move_pages--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/mq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11274,6 +15048,18 @@ $(srcdir)/munlockall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/nanosleep.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/net--decode-fds-dev-netlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/net--decode-fds-none-netlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/net--decode-fds-path-netlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/net--decode-fds-socket-netlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/net-icmp_filter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11292,6 +15078,9 @@ $(srcdir)/net-packet_mreq-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir $(srcdir)/net-sockaddr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/net-sockaddr--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/net-tpacket_req.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11403,6 +15192,9 @@ $(srcdir)/nlattr_ifla_port.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_te $(srcdir)/nlattr_ifla_xdp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/nlattr_ifla_xdp-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/nlattr_inet_diag_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11502,9 +15294,45 @@ $(srcdir)/oldstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/open.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/open_tree.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/open_tree-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/openat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/openat2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v-y-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v-y-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v-y-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/orphaned_process_group.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11532,9 +15360,45 @@ $(srcdir)/personality-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_te $(srcdir)/personality-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/pidfd_getfd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_getfd-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_getfd-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open--decode-fd-path.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open--decode-fd-pidfd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open--decode-fd-socket.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/pidfd_send_signal.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/pidfd_send_signal--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/pipe2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11601,12 +15465,21 @@ $(srcdir)/printstrn-umoven-undumpable.gen.test: $(abs_srcdir)/gen_tests.sh $(src $(srcdir)/prlimit64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/prlimit64--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/process_vm_readv.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/process_vm_readv--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/process_vm_writev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/process_vm_writev--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/pselect6.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11658,9 +15531,15 @@ $(srcdir)/readlinkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/reboot.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/recv-MSG_TRUNC.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/recvfrom.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/recvfrom-MSG_TRUNC.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/recvmmsg-timeout.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11709,6 +15588,9 @@ $(srcdir)/rt_sigprocmask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_test $(srcdir)/rt_sigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/rt_sigqueueinfo--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/rt_sigreturn.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11721,6 +15603,9 @@ $(srcdir)/rt_sigtimedwait.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/rt_tgsigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/rt_tgsigqueueinfo--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/s390_guarded_storage.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11751,15 +15636,27 @@ $(srcdir)/sched_rr_get_interval.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/g $(srcdir)/sched_xetaffinity.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/sched_xetaffinity--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sched_xetattr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/sched_xetattr--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sched_xetparam.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/sched_xetparam--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sched_xetscheduler.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/sched_xetscheduler--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sched_yield.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11781,6 +15678,12 @@ $(srcdir)/select-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/semop.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/semop-indirect.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/semtimedop.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sendfile.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11790,6 +15693,15 @@ $(srcdir)/sendfile64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/set_mempolicy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/set_mempolicy-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/set_mempolicy-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/set_mempolicy-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/setdomainname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11883,6 +15795,9 @@ $(srcdir)/signal.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/signal_receive.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/signal_receive--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/signalfd4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11916,6 +15831,9 @@ $(srcdir)/so_peercred-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_te $(srcdir)/so_peercred-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/so_peercred--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sock_filter-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11961,9 +15879,147 @@ $(srcdir)/statfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/statfs64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/status-all.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-failed.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-failed-long.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-failed-status.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-none.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-successful.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-successful-long.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-successful-status.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-unfinished.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/statx.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/strace--absolute-timestamps.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time-precision-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time-precision-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time-precision-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time-precision-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-unix-precision-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-unix-precision-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-unix-precision-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-unix-precision-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--follow-forks-output-separately.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--strings-in-hex.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--strings-in-hex-all.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--strings-in-hex-non-ascii.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-unix-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-unix-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-unix-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-unix-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace-n.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace-x.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace-xx.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/swap.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -11994,6 +16050,24 @@ $(srcdir)/syslog.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/tee.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/tgkill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/tgkill--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/threads-execve--quiet-thread-execve.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/threads-execve-q.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/threads-execve-qq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/threads-execve-qqq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/time.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -12012,6 +16086,18 @@ $(srcdir)/times.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/times-fail.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/tkill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/tkill--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/trace_clock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/trace_creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/trace_fstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -12054,6 +16140,9 @@ $(srcdir)/trace_statfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests. $(srcdir)/trace_statfs_like.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/trie_test.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/truncate.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -12075,6 +16164,9 @@ $(srcdir)/umovestr-illptr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/umovestr3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/umovestr_cached_adjacent.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/unlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -12141,15 +16233,24 @@ $(srcdir)/xattr-strings.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests $(srcdir)/xet_robust_list.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/xet_robust_list--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/xetitimer.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/xetpgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/xetpgid--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/xetpriority.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/xetpriority--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/xettimeofday.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ diff --git a/tests/_newselect.c b/tests/_newselect.c index bfba2edb..d4553341 100644 --- a/tests/_newselect.c +++ b/tests/_newselect.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR__newselect diff --git a/tests/accept.c b/tests/accept.c index df5dee80..6ba19a45 100644 --- a/tests/accept.c +++ b/tests/accept.c @@ -2,7 +2,7 @@ * Check decoding of accept syscall. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,7 +12,7 @@ #include -#include +#include "scno.h" #if defined __NR_accept diff --git a/tests/accept_compat.h b/tests/accept_compat.h index 0fbdc690..fb010a19 100644 --- a/tests/accept_compat.h +++ b/tests/accept_compat.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ # include # include -# include +# include "scno.h" # if defined __NR_socketcall && defined __sparc__ /* diff --git a/tests/access.c b/tests/access.c index cbdde6a2..8bdbb626 100644 --- a/tests/access.c +++ b/tests/access.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_access diff --git a/tests/access.gen.test b/tests/access.gen.test index 7d80e6f8..adcf5ca5 100755 --- a/tests/access.gen.test +++ b/tests/access.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (access -a30 -P access_sample); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (access -a30 --trace-path=access_sample); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a30 -P access_sample +run_strace_match_diff -a30 --trace-path=access_sample diff --git a/tests/acct.c b/tests/acct.c index 2127df60..16b67cbc 100644 --- a/tests/acct.c +++ b/tests/acct.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_acct diff --git a/tests/add_key.c b/tests/add_key.c index c1014927..20163274 100644 --- a/tests/add_key.c +++ b/tests/add_key.c @@ -2,14 +2,13 @@ * Check decoding of add_key syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_add_key diff --git a/tests/adjtimex.c b/tests/adjtimex.c index 87d3acdc..3b88d04e 100644 --- a/tests/adjtimex.c +++ b/tests/adjtimex.c @@ -8,26 +8,45 @@ */ #include "tests.h" -#include -#include -#include -#include -#include +#include "scno.h" -#include "xlat.h" -#include "xlat/adjtimex_state.h" -#include "xlat/adjtimex_status.h" +#ifdef __NR_adjtimex + +# include +# include +# include +# include +# include +# include + +# include "kernel_old_timex.h" + +# include "xlat.h" +# include "xlat/adjtimex_state.h" +# include "xlat/adjtimex_status.h" + +static const char *errstr; + +static long +k_adjtimex(void *const buf) +{ + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = (uintptr_t) buf; + const long rc = syscall(__NR_adjtimex, arg1, bad, bad, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} int main(void) { - int state = adjtimex(NULL); - printf("adjtimex(NULL) = %s\n", sprintrc(state)); + int state = k_adjtimex(NULL); + printf("adjtimex(NULL) = %s\n", errstr); - TAIL_ALLOC_OBJECT_CONST_PTR(struct timex, tx); + TAIL_ALLOC_OBJECT_CONST_PTR(kernel_old_timex_t, tx); memset(tx, 0, sizeof(*tx)); - state = adjtimex(tx); + state = k_adjtimex(tx); if (state < 0) perror_msg_and_skip("adjtimex"); @@ -60,11 +79,7 @@ main(void) (intmax_t) tx->calcnt, (intmax_t) tx->errcnt, (intmax_t) tx->stbcnt, -#ifdef HAVE_STRUCT_TIMEX_TAI tx->tai, -#else - *(const int *)((const void *) tx + offsetofend(struct timex, stbcnt)), -#endif state); printxval(adjtimex_state, (unsigned int) state, NULL); puts(")"); @@ -72,3 +87,9 @@ main(void) puts("+++ exited with 0 +++"); return 0; } + +#else + +SKIP_MAIN_UNDEFINED("__NR_adjtimex") + +#endif diff --git a/tests/aio.c b/tests/aio.c index 13821998..f8c2f861 100644 --- a/tests/aio.c +++ b/tests/aio.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,7 +12,7 @@ #include #include #include -#include +#include "scno.h" #if defined __NR_io_setup \ && defined __NR_io_submit \ @@ -117,7 +117,7 @@ main(void) /* In order to make record valid */ .aio_nbytes = (size_t) 0x1020304050607080ULL, .aio_offset = 0xdeadda7abadc0dedULL, -# ifdef IOCB_FLAG_RESFD +# ifdef HAVE_STRUCT_IOCB_AIO_FLAGS .aio_flags = 0xfacef157, .aio_resfd = 0xded1ca7e, # endif @@ -298,30 +298,31 @@ main(void) printf("io_submit(%#lx, %ld, [" "{aio_data=%#" PRI__x64 ", aio_key=%u" ", aio_lio_opcode=%hu /* IOCB_CMD_??? */, aio_fildes=%d}" - ", {aio_key=%u, aio_lio_opcode=IOCB_CMD_PWRITE, aio_reqprio=%hd" - ", aio_fildes=%d, aio_buf=NULL" + ", {aio_data=0, aio_key=%u, aio_lio_opcode=IOCB_CMD_PWRITE" + ", aio_reqprio=IOPRIO_PRIO_VALUE(0x5 /* IOPRIO_CLASS_??? */" + ", 7919), aio_fildes=%d, aio_buf=NULL" ", aio_nbytes=%" PRI__u64 ", aio_offset=%" PRI__d64 -# ifdef IOCB_FLAG_RESFD - ", aio_resfd=%d, aio_flags=%#x" +# ifdef HAVE_STRUCT_IOCB_AIO_FLAGS + ", aio_flags=IOCB_FLAG_RESFD|IOCB_FLAG_IOPRIO|%#x, aio_resfd=%d" # endif - "}, {aio_key=%u, aio_lio_opcode=IOCB_CMD_PWRITE" + "}, {aio_data=0, aio_key=%u, aio_lio_opcode=IOCB_CMD_PWRITE" ", aio_reqprio=%hd, aio_fildes=%d, aio_buf=%#" PRI__x64 ", aio_nbytes=%" PRI__u64 ", aio_offset=%" PRI__d64 - "}, {aio_key=%u, aio_lio_opcode=IOCB_CMD_PWRITE" + "}, {aio_data=0, aio_key=%u, aio_lio_opcode=IOCB_CMD_PWRITE" ", aio_reqprio=%hd, aio_fildes=%d" ", aio_buf=\"\\0\\1\\2\\3%.28s\"..." ", aio_nbytes=%" PRI__u64 ", aio_offset=%" PRI__d64 - "}, {aio_key=%u, aio_lio_opcode=IOCB_CMD_PWRITEV" + "}, {aio_data=0, aio_key=%u, aio_lio_opcode=IOCB_CMD_PWRITEV" ", aio_reqprio=%hd, aio_fildes=%d, aio_buf=%#" PRI__x64 ", aio_nbytes=%" PRI__u64 ", aio_offset=%" PRI__d64 "}, NULL, %#lx, ... /* %p */]) = ", *ctx, 1057L, cbv2[0].aio_data, cbv2[0].aio_key, cbv2[0].aio_lio_opcode, cbv2[0].aio_fildes, - cbv2[1].aio_key, cbv2[1].aio_reqprio, cbv2[1].aio_fildes, + cbv2[1].aio_key, cbv2[1].aio_fildes, cbv2[1].aio_nbytes, cbv2[1].aio_offset, -# ifdef IOCB_FLAG_RESFD - cbv2[1].aio_resfd, cbv2[1].aio_flags, +# ifdef HAVE_STRUCT_IOCB_AIO_FLAGS + cbv2[1].aio_flags & ~3, cbv2[1].aio_resfd, # endif cbv2[2].aio_key, cbv2[2].aio_reqprio, cbv2[2].aio_fildes, cbv2[2].aio_buf, cbv2[2].aio_nbytes, cbv2[2].aio_offset, diff --git a/tests/aio_pgetevents.c b/tests/aio_pgetevents.c index 8bea0b7b..f82f690a 100644 --- a/tests/aio_pgetevents.c +++ b/tests/aio_pgetevents.c @@ -2,7 +2,7 @@ * Check decoding of io_pgetevents syscall. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,6 @@ #include "tests.h" #include -#include #include "scno.h" #if defined __NR_io_setup && defined __NR_io_pgetevents diff --git a/tests/alarm.c b/tests/alarm.c index 35404535..4411e114 100644 --- a/tests/alarm.c +++ b/tests/alarm.c @@ -2,13 +2,14 @@ * This file is part of alarm strace test. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_alarm @@ -18,8 +19,8 @@ int main(void) { - int rc = syscall(__NR_alarm, (unsigned long) 0xffffffff0000002aULL); - printf("alarm(%u) = %d\n", 42, rc); + const unsigned long arg = (unsigned long) 0xffffffff0000002aULL; + printf("alarm(%u) = %s\n", 42, sprintrc(syscall(__NR_alarm, arg))); puts("+++ exited with 0 +++"); return 0; diff --git a/tests/answer.c b/tests/answer.c index a69adc39..dcea6f1d 100644 --- a/tests/answer.c +++ b/tests/answer.c @@ -2,6 +2,7 @@ * Check decoding of fault injected exit_group syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,7 +10,7 @@ #include "tests.h" #include -#include +#include "scno.h" int main(void) diff --git a/tests/attach-f-p.c b/tests/attach-f-p.c index 3b7aed85..4ee6714e 100644 --- a/tests/attach-f-p.c +++ b/tests/attach-f-p.c @@ -2,6 +2,7 @@ * This file is part of attach-f-p strace test. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -14,7 +15,7 @@ #include #include #include -#include +#include "scno.h" #include #define N 3 diff --git a/tests/bexecve.test b/tests/bexecve.test index 7a135871..c25235cd 100755 --- a/tests/bexecve.test +++ b/tests/bexecve.test @@ -3,7 +3,7 @@ # Check -bexecve behavior. # # Copyright (c) 2015 Dmitry V. Levin -# Copyright (c) 2015-2018 The strace developers. +# Copyright (c) 2015-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -16,23 +16,36 @@ run_strace_redir() $STRACE "$@" 2> "$LOG" } -run_strace_redir -enone ../set_ptracer_any true || +run_strace_redir --quiet=personality -enone ../set_ptracer_any true || dump_log_and_fail_with "$STRACE $args: unexpected exit status" -run_strace_redir -enone ../set_ptracer_any false +run_strace_redir --quiet=personality -enone ../set_ptracer_any false [ $? -eq 1 ] || dump_log_and_fail_with "$STRACE $args: unexpected exit status" -run_strace_redir -bexecve -enone ../set_ptracer_any false || +run_strace_redir --quiet=personality -bexecve -enone ../set_ptracer_any false || dump_log_and_fail_with "$STRACE $args: unexpected exit status" pattern_detached='[^:]*strace: Process [1-9][0-9]* detached' -pattern_personality='[^:]*strace: \[ Process PID=[1-9][0-9]* runs in .* mode. \]' LC_ALL=C grep -x "$pattern_detached" "$LOG" > /dev/null || dump_log_and_fail_with "$STRACE $args: output mismatch" -if LC_ALL=C grep -E -v -x "($pattern_detached|$pattern_personality)" "$LOG" > /dev/null; then +if LC_ALL=C grep -E -v -x "$pattern_detached" "$LOG" > /dev/null; then + dump_log_and_fail_with "$STRACE $args: unexpected output" +fi + +run_strace_redir --quiet=personality --seccomp-bpf -bexecve -enone ../set_ptracer_any false || + dump_log_and_fail_with "$STRACE $args: unexpected exit status" + +pattern_seccomp='[^:]*strace: --seccomp-bpf is not enabled because it is not compatible with -b' + +LC_ALL=C grep -x "$pattern_detached" "$LOG" > /dev/null && +LC_ALL=C grep -x "$pattern_seccomp" "$LOG" > /dev/null || + dump_log_and_fail_with "$STRACE $args: output mismatch" + +pattern_all="$pattern_detached|$pattern_seccomp" +if LC_ALL=C grep -E -v -x "$pattern_all" "$LOG" > /dev/null; then dump_log_and_fail_with "$STRACE $args: unexpected output" fi diff --git a/tests/block_reset_run.c b/tests/block_reset_run.c new file mode 100644 index 00000000..cba77bf3 --- /dev/null +++ b/tests/block_reset_run.c @@ -0,0 +1,33 @@ +/* + * Execute the specified command with a blocked default signal handler. + * + * Copyright (c) 2017-2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include +#include + +int +main(int ac, char **av) +{ + if (ac < 3) + error_msg_and_fail("usage: block_reset_run signo path..."); + + sigset_t mask; + sigemptyset(&mask); + const int signo = atoi(av[1]); + if (sigaddset(&mask, signo)) + perror_msg_and_fail("sigaddset: %s", av[1]); + if (sigprocmask(SIG_BLOCK, &mask, NULL)) + perror_msg_and_fail("sigprocmask"); + if (signal(signo, SIG_DFL) == SIG_ERR) + perror_msg_and_fail("signal: %s", av[1]); + + execvp(av[2], av + 2); + perror_msg_and_fail("execvp: %s", av[2]); +} diff --git a/tests/bpf-obj_get_info_by_fd.c b/tests/bpf-obj_get_info_by_fd.c index 3e18591d..9428692e 100644 --- a/tests/bpf-obj_get_info_by_fd.c +++ b/tests/bpf-obj_get_info_by_fd.c @@ -1,7 +1,7 @@ /* * Check bpf(BPF_OBJ_GET_INFO_BY_FD) decoding. * - * Copyright (c) 2018-2019 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -21,7 +21,6 @@ #include #include #include -#include #include "print_fields.h" #include "scno.h" @@ -88,6 +87,10 @@ print_map_create(void *attr_void, size_t size, long rc) printf(", btf_fd=0" ", btf_key_type_id=0, btf_value_type_id=0"); } + if (size > offsetof(struct BPF_MAP_CREATE_struct, + btf_vmlinux_value_type_id)) { + printf(", btf_vmlinux_value_type_id=0"); + } printf("}, %zu) = ", size); if (rc >= 0) printf("%ld\n", rc); @@ -206,6 +209,10 @@ print_prog_load(void *attr_void, size_t size, long rc) printf(", line_info=NULL"); if (size > offsetof(struct BPF_PROG_LOAD_struct, line_info_cnt)) printf(", line_info_cnt=0"); + if (size > offsetof(struct BPF_PROG_LOAD_struct, attach_btf_id)) + printf(", attach_btf_id=0"); + if (size > offsetof(struct BPF_PROG_LOAD_struct, attach_prog_fd)) + printf(", attach_prog_fd=0"); printf("}, %zu) = ", size); if (rc >= 0) printf("%ld\n", rc); @@ -232,8 +239,26 @@ try_bpf(kernel_ulong_t cmd, void (*printer)(void *attr, size_t size, long rc), } int -main(void) +main(int ac, char **av) { + /* + * There is a delay when the locked memory is being reclaimed + * after a BPF program or map is removed. + * + * Privileged tools like iproute2 and bpftool workaround this + * by raising RLIMIT_MEMLOCK to infinity prior to creating + * BPF objects. + * + * This test is expected to be invoked without extra privileges + * and therefore does not have this option. + * + * The approach taken by this test is serialize all invocations + * and insert a delay long enough to let the locked memory be + * reclaimed. + */ + lock_file_by_dirname(av[0], "bpf-obj_get_info_by_fd"); + sleep(1); + struct BPF_MAP_CREATE_struct bpf_map_create_attr = { .map_type = BPF_MAP_TYPE_ARRAY, .key_size = 4, @@ -260,7 +285,7 @@ main(void) .prog_name = "test_prog", }; size_t bpf_prog_load_attr_sizes[] = { - sizeof(bpf_prog_load_attr), + BPF_PROG_LOAD_struct_size, offsetofend(struct BPF_PROG_LOAD_struct, prog_name), offsetofend(struct BPF_PROG_LOAD_struct, prog_flags), offsetofend(struct BPF_PROG_LOAD_struct, kern_version), @@ -331,6 +356,10 @@ main(void) if (bpf_map_get_info_attr.info_len > offsetof(struct bpf_map_info_struct, ifindex)) printf(", ifindex=%u", map_info->ifindex); + if (bpf_map_get_info_attr.info_len > + offsetof(struct bpf_map_info_struct, btf_vmlinux_value_type_id)) + printf(", btf_vmlinux_value_type_id=%u", + map_info->btf_vmlinux_value_type_id); if (bpf_map_get_info_attr.info_len > offsetof(struct bpf_map_info_struct, netns_dev)) printf(", netns_dev=makedev(%#x, %#x)", diff --git a/tests/bpf-success-long-y.c b/tests/bpf-success-long-y.c new file mode 100644 index 00000000..d0e9b2a9 --- /dev/null +++ b/tests/bpf-success-long-y.c @@ -0,0 +1,3 @@ +#define INJECT_RETVAL ((long) 0xbadc0de1e55beefULL) +#define FD0_PATH "" +#include "bpf.c" diff --git a/tests/bpf-success-long-y.test b/tests/bpf-success-long-y.test new file mode 100755 index 00000000..5ed7e854 --- /dev/null +++ b/tests/bpf-success-long-y.test @@ -0,0 +1,16 @@ +:#!/bin/sh -efu +# +# Copyright (c) 2018-2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/scno_tampering.sh" + +case "$SIZEOF_LONG" in + 4) rval=508935919;; + 8) rval=841540765612359407;; +esac + +run_strace -a20 -y -e trace=bpf -e inject=bpf:retval="${rval}" ../bpf-success-long-y < /dev/full > "$EXP" +match_diff "$LOG" "$EXP" diff --git a/tests/bpf.c b/tests/bpf.c index fd29ab44..4f58ca29 100644 --- a/tests/bpf.c +++ b/tests/bpf.c @@ -2,7 +2,7 @@ * Check bpf syscall decoding. * * Copyright (c) 2015-2017 Dmitry V. Levin - * Copyright (c) 2015-2019 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -16,7 +16,6 @@ #include #include -#include #include "scno.h" #ifdef HAVE_LINUX_BPF_H @@ -28,6 +27,8 @@ #include "xlat.h" #include "xlat/bpf_commands.h" +#include "xlat/bpf_map_types.h" +#include "xlat/bpf_prog_types.h" #if defined MPERS_IS_m32 || SIZEOF_KERNEL_LONG_T > 4 # define BIG_ADDR(addr64_, addr32_) addr64_ @@ -42,6 +43,10 @@ # define BIG_ADDR_MAYBE(addr_) #endif +#ifndef FD0_PATH +# define FD0_PATH "" +#endif + #ifndef HAVE_STRUCT_BPF_INSN struct bpf_insn { uint8_t code; @@ -74,6 +79,12 @@ union bpf_attr_data { BPF_ATTR_DATA_FIELD(BPF_BTF_LOAD); BPF_ATTR_DATA_FIELD(BPF_BTF_GET_FD_BY_ID); BPF_ATTR_DATA_FIELD(BPF_TASK_FD_QUERY); + BPF_ATTR_DATA_FIELD(BPF_MAP_FREEZE); + BPF_ATTR_DATA_FIELD(BPF_MAP_LOOKUP_BATCH); + BPF_ATTR_DATA_FIELD(BPF_MAP_UPDATE_BATCH); + BPF_ATTR_DATA_FIELD(BPF_MAP_DELETE_BATCH); + BPF_ATTR_DATA_FIELD(BPF_LINK_CREATE); + BPF_ATTR_DATA_FIELD(BPF_LINK_UPDATE); char char_data[256]; }; @@ -108,8 +119,8 @@ sys_bpf(kernel_ulong_t cmd, kernel_ulong_t attr, kernel_ulong_t size) #ifdef INJECT_RETVAL if (rc != INJECT_RETVAL) - error_msg_and_fail("Got a return value of %ld != %d", - rc, INJECT_RETVAL); + error_msg_and_fail("Got a return value of %ld != %ld", + rc, (long) INJECT_RETVAL); static char inj_errstr[4096]; @@ -250,6 +261,8 @@ init_BPF_MAP_CREATE_attr7(struct bpf_attr_check *check) attr->map_ifindex = ifindex_lo(); } +static_assert(ARRAY_SIZE(bpf_map_types_xdata) == 28, + "The map_type for tests 1 and 2 below needs to be updated"); static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { { .data = { .BPF_MAP_CREATE_data = { .map_type = 2 } }, @@ -259,7 +272,7 @@ static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { }, { /* 1 */ .data = { .BPF_MAP_CREATE_data = { - .map_type = 20, + .map_type = 27, .key_size = 4, .value_size = 8, .max_entries = 256, @@ -269,7 +282,7 @@ static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { .map_name = "0123456789abcde", } }, .size = offsetof(struct BPF_MAP_CREATE_struct, map_name) + 8, - .str = "map_type=BPF_MAP_TYPE_REUSEPORT_SOCKARRAY, key_size=4" + .str = "map_type=BPF_MAP_TYPE_RINGBUF, key_size=4" ", value_size=8, max_entries=256" ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NO_COMMON_LRU" "|BPF_F_NUMA_NODE|BPF_F_RDONLY|BPF_F_WRONLY" @@ -281,21 +294,21 @@ static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { }, { /* 2 */ .data = { .BPF_MAP_CREATE_data = { - .map_type = 24, + .map_type = 28, .key_size = 0xface1e55, .value_size = 0xbadc0ded, .max_entries = 0xbeefcafe, - .map_flags = 0xffffff80, + .map_flags = 0xfffff800, .inner_map_fd = 2718281828, .numa_node = -1, .map_name = "", .map_ifindex = 3141592653, } }, .size = offsetofend(struct BPF_MAP_CREATE_struct, map_ifindex), - .str = "map_type=0x18 /* BPF_MAP_TYPE_??? */" + .str = "map_type=0x1c /* BPF_MAP_TYPE_??? */" ", key_size=4207812181, value_size=3134983661" ", max_entries=3203386110" - ", map_flags=0xffffff80 /* BPF_F_??? */" + ", map_flags=0xfffff800 /* BPF_F_??? */" ", inner_map_fd=-1576685468" ", map_name=\"\", map_ifindex=3141592653", @@ -316,7 +329,8 @@ static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { ", max_entries=3203386110" ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE" "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID" - "|0xc0dede80", + "|BPF_F_RDONLY_PROG|BPF_F_CLONE" + "|BPF_F_MMAPABLE|0xc0ded800", }, { /* 4 */ .data = { .BPF_MAP_CREATE_data = { @@ -334,7 +348,8 @@ static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { ", max_entries=3203386110" ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE" "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID" - "|0xc0dede80" + "|BPF_F_RDONLY_PROG|BPF_F_CLONE" + "|BPF_F_MMAPABLE|0xc0ded800" ", inner_map_fd=-1576685468", }, { /* 5 */ @@ -353,7 +368,8 @@ static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { ", max_entries=3203386110" ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE" "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID" - "|0xc0dede80" + "|BPF_F_RDONLY_PROG|BPF_F_CLONE" + "|BPF_F_MMAPABLE|0xc0ded800" ", inner_map_fd=-1576685468" ", numa_node=4294967295 /* NUMA_NO_NODE */", }, @@ -374,7 +390,8 @@ static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { ", max_entries=3203386110" ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE" "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID" - "|0xc0dede80" + "|BPF_F_RDONLY_PROG|BPF_F_CLONE" + "|BPF_F_MMAPABLE|0xc0ded800" ", inner_map_fd=-1576685468" ", numa_node=4294967295 /* NUMA_NO_NODE */" ", map_name=\"fedcba987654321\"...", @@ -396,7 +413,8 @@ static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { ", max_entries=3203386110" ", map_flags=BPF_F_NO_PREALLOC|BPF_F_NUMA_NODE" "|BPF_F_RDONLY|BPF_F_STACK_BUILD_ID" - "|0xc0dede80" + "|BPF_F_RDONLY_PROG|BPF_F_CLONE" + "|BPF_F_MMAPABLE|0xc0ded800" ", inner_map_fd=-1576685468" ", numa_node=4294967295 /* NUMA_NO_NODE */" ", map_name=\"0123456789abcde\"" @@ -416,12 +434,34 @@ static struct bpf_attr_check BPF_MAP_CREATE_checks[] = { ", value_size=0" ", max_entries=0" ", map_flags=0" - ", inner_map_fd=0" + ", inner_map_fd=0" FD0_PATH + ", map_name=\"\"" + ", map_ifindex=0" + ", btf_fd=-1159983635" + ", btf_key_type_id=4207869677" + ", btf_value_type_id=3405705229" + }, + { /* 9 */ + .data = { .BPF_MAP_CREATE_data = { + .btf_fd = 0xbadc0ded, + .btf_key_type_id = 0xfacefeed, + .btf_value_type_id = 0xcafef00d, + .btf_vmlinux_value_type_id = 0xdeadc0de, + } }, + .size = offsetofend(struct BPF_MAP_CREATE_struct, + btf_vmlinux_value_type_id), + .str = "map_type=BPF_MAP_TYPE_UNSPEC" + ", key_size=0" + ", value_size=0" + ", max_entries=0" + ", map_flags=0" + ", inner_map_fd=0" FD0_PATH ", map_name=\"\"" ", map_ifindex=0" ", btf_fd=-1159983635" ", btf_key_type_id=4207869677" ", btf_value_type_id=3405705229" + ", btf_vmlinux_value_type_id=3735929054" }, }; @@ -435,10 +475,12 @@ static const struct bpf_attr_check BPF_MAP_LOOKUP_ELEM_checks[] = { .data = { .BPF_MAP_LOOKUP_ELEM_data = { .map_fd = -1, .key = 0xdeadbeef, - .value = 0xbadc0ded + .value = 0xbadc0ded, + .flags = 4 } }, - .size = offsetofend(struct BPF_MAP_LOOKUP_ELEM_struct, value), + .size = offsetofend(struct BPF_MAP_LOOKUP_ELEM_struct, flags), .str = "map_fd=-1, key=0xdeadbeef, value=0xbadc0ded" + ", flags=BPF_F_LOCK" } }; @@ -496,6 +538,14 @@ static const struct bpf_attr_check BPF_MAP_GET_NEXT_KEY_checks[] = { } }; +static const struct bpf_attr_check BPF_MAP_FREEZE_checks[] = { + { + .data = { .BPF_MAP_FREEZE_data = { .map_fd = -1 } }, + .size = offsetofend(struct BPF_MAP_FREEZE_struct, map_fd), + .str = "map_fd=-1" + } +}; + static const struct bpf_insn insns[] = { { .code = 0x95, @@ -556,7 +606,7 @@ print_BPF_PROG_LOAD_attr3(const struct bpf_attr_check *check, unsigned long addr ", insns=" INSNS_FMT ", license=\"%s\", log_level=2718281828" ", log_size=%u, log_buf=%p" ", kern_version=KERNEL_VERSION(51966, 240, 13)" - ", prog_flags=0x4 /* BPF_F_??? */" + ", prog_flags=0x10 /* BPF_F_??? */" ", prog_name=\"0123456789abcde\"..., prog_ifindex=3203399405", (unsigned int) ARRAY_SIZE(insns), INSNS_ARG, license, log_buf_size, get_log_buf_tail()); @@ -582,13 +632,16 @@ print_BPF_PROG_LOAD_attr4(const struct bpf_attr_check *check, unsigned long addr ", license=\"%s\", log_level=2718281828, log_size=4" ", log_buf=\"log \"..." ", kern_version=KERNEL_VERSION(51966, 240, 13)" - ", prog_flags=BPF_F_STRICT_ALIGNMENT|BPF_F_ANY_ALIGNMENT|0x4" + ", prog_flags=BPF_F_STRICT_ALIGNMENT|BPF_F_ANY_ALIGNMENT" + "|BPF_F_TEST_RND_HI32|BPF_F_TEST_STATE_FREQ|0x10" ", prog_name=\"0123456789abcde\"..., prog_ifindex=%s" ", expected_attach_type=BPF_CGROUP_INET6_BIND", (unsigned int) ARRAY_SIZE(insns), INSNS_ARG, license, IFINDEX_LO_STR); } +static_assert(ARRAY_SIZE(bpf_prog_types_xdata) == 31, + "The prog_type for test 5 below needs to be updated"); static struct bpf_attr_check BPF_PROG_LOAD_checks[] = { { .data = { .BPF_PROG_LOAD_data = { .prog_type = 1 } }, @@ -598,7 +651,7 @@ static struct bpf_attr_check BPF_PROG_LOAD_checks[] = { }, { /* 1 */ .data = { .BPF_PROG_LOAD_data = { - .prog_type = 22, + .prog_type = 31, .insn_cnt = 0xbadc0ded, .insns = 0, .license = 0, @@ -609,7 +662,7 @@ static struct bpf_attr_check BPF_PROG_LOAD_checks[] = { .prog_flags = 0, } }, .size = offsetofend(struct BPF_PROG_LOAD_struct, prog_flags), - .str = "prog_type=0x16 /* BPF_PROG_TYPE_??? */" + .str = "prog_type=0x1f /* BPF_PROG_TYPE_??? */" ", insn_cnt=3134983661, insns=NULL, license=NULL" ", log_level=42, log_size=3141592653, log_buf=NULL" ", kern_version=KERNEL_VERSION(51966, 240, 13)" @@ -629,7 +682,7 @@ static struct bpf_attr_check BPF_PROG_LOAD_checks[] = { .prog_name = "fedcba987654321", } }, .size = offsetofend(struct BPF_PROG_LOAD_struct, prog_name), - .str = "prog_type=BPF_PROG_TYPE_SK_REUSEPORT" + .str = "prog_type=BPF_PROG_TYPE_LIRC_MODE2" ", insn_cnt=3134983661" ", insns=" BIG_ADDR("0xffffffff00000000", "NULL") ", license=" BIG_ADDR("0xffffffff00000000", "NULL") @@ -646,7 +699,7 @@ static struct bpf_attr_check BPF_PROG_LOAD_checks[] = { .log_level = 2718281828U, .log_size = log_buf_size, .kern_version = 0xcafef00d, - .prog_flags = 4, + .prog_flags = 16, .prog_name = "0123456789abcdef", .prog_ifindex = 0xbeeffeed, } }, @@ -661,7 +714,7 @@ static struct bpf_attr_check BPF_PROG_LOAD_checks[] = { .log_level = 2718281828U, .log_size = 4, .kern_version = 0xcafef00d, - .prog_flags = 7, + .prog_flags = 0x1f, .prog_name = "0123456789abcdef", .expected_attach_type = 9, } }, @@ -671,6 +724,30 @@ static struct bpf_attr_check BPF_PROG_LOAD_checks[] = { .print_fn = print_BPF_PROG_LOAD_attr4 }, { /* 5 */ + .data = { .BPF_PROG_LOAD_data = { + .prog_type = 30, + .insn_cnt = 0xbadc0ded, + .insns = 0xffffffff00000000, + .license = 0xffffffff00000000, + .log_level = 2718281828U, + .log_size = log_buf_size, + .log_buf = 0xffffffff00000000, + .kern_version = 0xcafef00d, + .prog_flags = 1, + .prog_name = "fedcba987654321", + } }, + .size = offsetofend(struct BPF_PROG_LOAD_struct, prog_name), + .str = "prog_type=BPF_PROG_TYPE_SK_LOOKUP" + ", insn_cnt=3134983661" + ", insns=" BIG_ADDR("0xffffffff00000000", "NULL") + ", license=" BIG_ADDR("0xffffffff00000000", "NULL") + ", log_level=2718281828, log_size=4096" + ", log_buf=" BIG_ADDR("0xffffffff00000000", "NULL") + ", kern_version=KERNEL_VERSION(51966, 240, 13)" + ", prog_flags=BPF_F_STRICT_ALIGNMENT" + ", prog_name=\"fedcba987654321\"", + }, + { /* 6 */ .data = { .BPF_PROG_LOAD_data = { .prog_flags = 2, .expected_attach_type = 17, @@ -680,10 +757,12 @@ static struct bpf_attr_check BPF_PROG_LOAD_checks[] = { .func_info_cnt = 0xdad3bef4, .line_info_rec_size = 0xdad5bef6, .line_info = 0xfac5fed5fac7fed8, - .line_info_cnt = 0xdad7bef8 + .line_info_cnt = 0xdad7bef8, + .attach_btf_id = 0xdad7befa, + .attach_prog_fd = 0xbadc0def, } }, .size = offsetofend(struct BPF_PROG_LOAD_struct, - line_info_cnt), + attach_prog_fd), .str = "prog_type=BPF_PROG_TYPE_UNSPEC" ", insn_cnt=0" ", insns=NULL" @@ -703,6 +782,8 @@ static struct bpf_attr_check BPF_PROG_LOAD_checks[] = { ", line_info_rec_size=3671441142" ", line_info=0xfac5fed5fac7fed8" ", line_info_cnt=3671572216" + ", attach_btf_id=3671572218" + ", attach_prog_fd=-1159983633" }, }; @@ -717,7 +798,7 @@ static struct bpf_attr_check BPF_OBJ_PIN_checks[] = { { .data = { .BPF_OBJ_PIN_data = { .pathname = 0 } }, .size = offsetofend(struct BPF_OBJ_PIN_struct, pathname), - .str = "pathname=NULL, bpf_fd=0" + .str = "pathname=NULL, bpf_fd=0" FD0_PATH }, { .data = { .BPF_OBJ_PIN_data = { @@ -725,7 +806,7 @@ static struct bpf_attr_check BPF_OBJ_PIN_checks[] = { } }, .size = offsetofend(struct BPF_OBJ_PIN_struct, pathname), .str = "pathname=" BIG_ADDR("0xffffffffffffffff", "0xffffffff") - ", bpf_fd=0", + ", bpf_fd=0" FD0_PATH, }, { .data = { .BPF_OBJ_PIN_data = { .bpf_fd = -1 } }, @@ -751,7 +832,7 @@ static const struct bpf_attr_check BPF_PROG_ATTACH_checks[] = { { .data = { .BPF_PROG_ATTACH_data = { .target_fd = -1 } }, .size = offsetofend(struct BPF_PROG_ATTACH_struct, target_fd), - .str = "target_fd=-1, attach_bpf_fd=0" + .str = "target_fd=-1, attach_bpf_fd=0" FD0_PATH ", attach_type=BPF_CGROUP_INET_INGRESS, attach_flags=0" }, { @@ -759,13 +840,28 @@ static const struct bpf_attr_check BPF_PROG_ATTACH_checks[] = { .target_fd = -1, .attach_bpf_fd = -2, .attach_type = 2, - .attach_flags = 1 + .attach_flags = 7 } }, .size = offsetofend(struct BPF_PROG_ATTACH_struct, attach_flags), .str = "target_fd=-1, attach_bpf_fd=-2" ", attach_type=BPF_CGROUP_INET_SOCK_CREATE" - ", attach_flags=BPF_F_ALLOW_OVERRIDE" - } + ", attach_flags=BPF_F_ALLOW_OVERRIDE|BPF_F_ALLOW_MULTI" + "|BPF_F_REPLACE" + }, + { + .data = { .BPF_PROG_ATTACH_data = { + .target_fd = -1, + .attach_bpf_fd = -2, + .attach_type = 2, + .attach_flags = 0xf8, + .replace_bpf_fd = -3, + } }, + .size = offsetofend(struct BPF_PROG_ATTACH_struct, replace_bpf_fd), + .str = "target_fd=-1, attach_bpf_fd=-2" + ", attach_type=BPF_CGROUP_INET_SOCK_CREATE" + ", attach_flags=0xf8 /* BPF_F_??? */" + ", replace_bpf_fd=-3" + }, }; @@ -810,6 +906,33 @@ static const struct bpf_attr_check BPF_PROG_TEST_RUN_checks[] = { ", data_in=0xfacef11dbadc2ded" ", data_out=0xfacef33dbadc4ded" ", repeat=4207410904, duration=4207541978}" + }, + { + .data = { .BPF_PROG_TEST_RUN_data = { + .prog_fd = -1, + .retval = 0xfac1fed2, + .data_size_in = 0xfac3fed4, + .data_size_out = 0xfac5fed6, + .data_in = (uint64_t) 0xfacef11dbadc2dedULL, + .data_out = (uint64_t) 0xfacef33dbadc4dedULL, + .repeat = 0xfac7fed8, + .duration = 0xfac9feda, + .ctx_size_in = 0xfacbfedc, + .ctx_size_out = 0xfacdfede, + .ctx_in = (uint64_t) 0xfacef55dbadc6dedULL, + .ctx_out = (uint64_t) 0xfacef77dbadc8dedULL + } }, + .size = offsetofend(struct BPF_PROG_TEST_RUN_struct, ctx_out), + .str = "test={prog_fd=-1, retval=4207017682" + ", data_size_in=4207148756, data_size_out=4207279830" + ", data_in=0xfacef11dbadc2ded" + ", data_out=0xfacef33dbadc4ded" + ", repeat=4207410904" + ", duration=4207541978" + ", ctx_size_in=4207673052" + ", ctx_size_out=4207804126" + ", ctx_in=0xfacef55dbadc6ded" + ", ctx_out=0xfacef77dbadc8ded}" } }; @@ -855,6 +978,7 @@ static const struct bpf_attr_check BPF_PROG_GET_NEXT_ID_checks[] = { }; #define BPF_MAP_GET_NEXT_ID_checks BPF_PROG_GET_NEXT_ID_checks +#define BPF_BTF_GET_NEXT_ID_checks BPF_PROG_GET_NEXT_ID_checks static const struct bpf_attr_check BPF_PROG_GET_FD_BY_ID_checks[] = { { @@ -953,8 +1077,8 @@ print_BPF_PROG_QUERY_attr4(const struct bpf_attr_check *check, unsigned long add printf("query={target_fd=-1153374643" ", attach_type=0xfeedface /* BPF_??? */" ", query_flags=BPF_F_QUERY_EFFECTIVE|0xdeadf00c" - ", attach_flags=BPF_F_ALLOW_MULTI|0xbeefcafc" -#if defined(INJECT_RETVAL) && INJECT_RETVAL > 0 + ", attach_flags=BPF_F_ALLOW_MULTI|BPF_F_REPLACE|0xbeefcaf8" +#if defined(INJECT_RETVAL) ", prog_ids=[0, 1, 4294967295, 2718281828], prog_cnt=4}" #else ", prog_ids=%p, prog_cnt=4}", prog_load_ids_ptr @@ -981,8 +1105,8 @@ print_BPF_PROG_QUERY_attr5(const struct bpf_attr_check *check, unsigned long add printf("query={target_fd=-1153374643" ", attach_type=0xfeedface /* BPF_??? */" ", query_flags=BPF_F_QUERY_EFFECTIVE|0xdeadf00c" - ", attach_flags=BPF_F_ALLOW_MULTI|0xbeefcafc" -#if defined(INJECT_RETVAL) && INJECT_RETVAL > 0 + ", attach_flags=BPF_F_ALLOW_MULTI|BPF_F_REPLACE|0xbeefcaf8" +#if defined(INJECT_RETVAL) ", prog_ids=[0, 1, 4294967295, 2718281828, ... /* %p */]" ", prog_cnt=5}", prog_load_ids_ptr + ARRAY_SIZE(prog_load_ids) @@ -1003,13 +1127,13 @@ static struct bpf_attr_check BPF_PROG_QUERY_checks[] = { { /* 1 */ .data = { .BPF_PROG_QUERY_data = { .target_fd = 3141592653U, - .attach_type = 16, + .attach_type = 37, .query_flags = 1, .attach_flags = 3, } }, .size = offsetofend(struct BPF_PROG_QUERY_struct, attach_flags), .str = "query={target_fd=-1153374643" - ", attach_type=BPF_LIRC_MODE2" + ", attach_type=BPF_XDP" ", query_flags=BPF_F_QUERY_EFFECTIVE" ", attach_flags=BPF_F_ALLOW_OVERRIDE|BPF_F_ALLOW_MULTI" ", prog_ids=NULL, prog_cnt=0}", @@ -1017,17 +1141,17 @@ static struct bpf_attr_check BPF_PROG_QUERY_checks[] = { { /* 2 */ .data = { .BPF_PROG_QUERY_data = { .target_fd = 3141592653U, - .attach_type = 18, + .attach_type = 38, .query_flags = 0xfffffffe, - .attach_flags = 0xfffffffc, + .attach_flags = 0xfffffff8, .prog_ids = 0xffffffffffffffffULL, .prog_cnt = 2718281828, } }, .size = offsetofend(struct BPF_PROG_QUERY_struct, prog_cnt), .str = "query={target_fd=-1153374643" - ", attach_type=0x12 /* BPF_??? */" + ", attach_type=0x26 /* BPF_??? */" ", query_flags=0xfffffffe /* BPF_F_QUERY_??? */" - ", attach_flags=0xfffffffc /* BPF_F_??? */" + ", attach_flags=0xfffffff8 /* BPF_F_??? */" ", prog_ids=" BIG_ADDR("0xffffffffffffffff", "0xffffffff") ", prog_cnt=2718281828}", @@ -1045,7 +1169,7 @@ static struct bpf_attr_check BPF_PROG_QUERY_checks[] = { .str = "query={target_fd=-1153374643" ", attach_type=0xfeedface /* BPF_??? */" ", query_flags=BPF_F_QUERY_EFFECTIVE|0xdeadf00c" - ", attach_flags=BPF_F_ALLOW_MULTI|0xbeefcafc" + ", attach_flags=BPF_F_ALLOW_MULTI|BPF_F_REPLACE|0xbeefcaf8" ", prog_ids=" BIG_ADDR_MAYBE("0xffffffffffffffff") "[]" ", prog_cnt=0}", }, @@ -1091,7 +1215,7 @@ static struct bpf_attr_check BPF_RAW_TRACEPOINT_OPEN_checks[] = { .data = { .BPF_RAW_TRACEPOINT_OPEN_data = { .name = 0 } }, .size = offsetofend(struct BPF_RAW_TRACEPOINT_OPEN_struct, name), - .str = "raw_tracepoint={name=NULL, prog_fd=0}", + .str = "raw_tracepoint={name=NULL, prog_fd=0" FD0_PATH "}", }, { /* 1 */ .data = { .BPF_RAW_TRACEPOINT_OPEN_data = { @@ -1165,16 +1289,16 @@ static const struct bpf_attr_check BPF_BTF_GET_FD_BY_ID_checks[] = { static const struct bpf_attr_check BPF_TASK_FD_QUERY_checks[] = { { - .data = { .BPF_TASK_FD_QUERY_data = { .pid = 0xdeadbeef } }, + .data = { .BPF_TASK_FD_QUERY_data = { .pid = 1735928559 } }, .size = offsetofend(struct BPF_TASK_FD_QUERY_struct, pid), - .str = "task_fd_query={pid=3735928559, fd=0, flags=0" - ", buf_len=0, buf=NULL, prog_id=0" + .str = "task_fd_query={pid=1735928559, fd=0" FD0_PATH + ", flags=0, buf_len=0, buf=NULL, prog_id=0" ", fd_type=BPF_FD_TYPE_RAW_TRACEPOINT" ", probe_offset=0, probe_addr=0}" }, { /* 1 */ .data = { .BPF_TASK_FD_QUERY_data = { - .pid = 0xcafef00d, + .pid = 1405705229, .fd = 0xdeadbeef, .flags = 0xfacefeed, .buf_len = 0xdefaced, @@ -1185,7 +1309,7 @@ static const struct bpf_attr_check BPF_TASK_FD_QUERY_checks[] = { .probe_addr = 0xfac5fed5fac7fed8 } }, .size = offsetofend(struct BPF_TASK_FD_QUERY_struct, probe_addr), - .str = "task_fd_query={pid=3405705229" + .str = "task_fd_query={pid=1405705229" ", fd=-559038737" ", flags=4207869677" ", buf_len=233811181" @@ -1197,6 +1321,117 @@ static const struct bpf_attr_check BPF_TASK_FD_QUERY_checks[] = { } }; +static const struct bpf_attr_check BPF_MAP_LOOKUP_BATCH_checks[] = { + { + .data = { .BPF_MAP_LOOKUP_BATCH_data = { .map_fd = -1 } }, + .size = offsetofend(struct BPF_MAP_LOOKUP_BATCH_struct, map_fd ), + .str = "batch={in_batch=NULL, out_batch=NULL, keys=NULL" + ", values=NULL, count=0, map_fd=-1, elem_flags=BPF_ANY" + ", flags=0}" + }, + { + .data = { .BPF_MAP_LOOKUP_BATCH_data = { + .in_batch = 0xfacefeed, + .out_batch = 0xbadc0ded, + .keys = 0xdeadf00d, + .values = 0xfffffffe, + .count = 3, + .map_fd = -1, + .elem_flags = 4, + .flags = 4 + } }, + .size = offsetofend(struct BPF_MAP_LOOKUP_BATCH_struct, flags), + .str = "batch={in_batch=0xfacefeed, out_batch=0xbadc0ded" + ", keys=0xdeadf00d, values=0xfffffffe, count=3" + ", map_fd=-1, elem_flags=BPF_F_LOCK, flags=0x4}" + } +}; + +static const struct bpf_attr_check BPF_MAP_UPDATE_BATCH_checks[] = { + { + .data = { .BPF_MAP_UPDATE_BATCH_data = { .map_fd = -1 } }, + .size = offsetofend(struct BPF_MAP_UPDATE_BATCH_struct, map_fd ), + .str = "batch={keys=NULL, values=NULL, count=0, map_fd=-1" + ", elem_flags=BPF_ANY, flags=0}" + }, + { + .data = { .BPF_MAP_UPDATE_BATCH_data = { + .keys = 0xdeadf00d, + .values = 0xfffffffe, + .count = 3, + .map_fd = -1, + .elem_flags = 4, + .flags = 4 + } }, + .size = offsetofend(struct BPF_MAP_UPDATE_BATCH_struct, flags), + .str = "batch={keys=0xdeadf00d, values=0xfffffffe, count=3" + ", map_fd=-1, elem_flags=BPF_F_LOCK, flags=0x4}" + } +}; + +static const struct bpf_attr_check BPF_MAP_DELETE_BATCH_checks[] = { + { + .data = { .BPF_MAP_DELETE_BATCH_data = { .map_fd = -1 } }, + .size = offsetofend(struct BPF_MAP_DELETE_BATCH_struct, map_fd ), + .str = "batch={keys=NULL, count=0, map_fd=-1" + ", elem_flags=BPF_ANY, flags=0}" + }, + { + .data = { .BPF_MAP_DELETE_BATCH_data = { + .keys = 0xdeadf00d, + .count = 3, + .map_fd = -1, + .elem_flags = 4, + .flags = 4 + } }, + .size = offsetofend(struct BPF_MAP_DELETE_BATCH_struct, flags), + .str = "batch={keys=0xdeadf00d, count=3, map_fd=-1" + ", elem_flags=BPF_F_LOCK, flags=0x4}" + } +}; + +static const struct bpf_attr_check BPF_LINK_CREATE_checks[] = { + { + .data = { .BPF_LINK_CREATE_data = { .prog_fd = -1, .target_fd = -2 } }, + .size = offsetofend(struct BPF_LINK_CREATE_struct, flags), + .str = "link_create={prog_fd=-1, target_fd=-2" + ", attach_type=BPF_CGROUP_INET_INGRESS, flags=0}" + }, + { + .data = { .BPF_LINK_CREATE_data = { + .prog_fd = -1, + .target_fd = 0xdeadbeef, + .attach_type = 5, + .flags = 4 + } }, + .size = offsetofend(struct BPF_LINK_CREATE_struct, flags), + .str = "link_create={prog_fd=-1, target_fd=-559038737" + ", attach_type=BPF_SK_SKB_STREAM_VERDICT, flags=0x4}" + } +}; + +static const struct bpf_attr_check BPF_LINK_UPDATE_checks[] = { + { + .data = { .BPF_LINK_UPDATE_data = { + .link_fd = -1, + .new_prog_fd = -2 + } }, + .size = offsetofend(struct BPF_LINK_UPDATE_struct, old_prog_fd), + .str = "link_update={link_fd=-1, new_prog_fd=-2, flags=0}" + }, + { + .data = { .BPF_LINK_UPDATE_data = { + .link_fd = -1, + .new_prog_fd = 0xdeadbeef, + .flags = 4, + .old_prog_fd = 0xdeadf00d + } }, + .size = offsetofend(struct BPF_LINK_UPDATE_struct, old_prog_fd), + .str = "link_update={link_fd=-1, new_prog_fd=-559038737" + ", flags=BPF_F_REPLACE, old_prog_fd=-559026163}" + } +}; + #define CHK(cmd_) \ { \ @@ -1231,6 +1466,13 @@ main(void) CHK(BPF_BTF_GET_FD_BY_ID), CHK(BPF_TASK_FD_QUERY), CHK(BPF_MAP_LOOKUP_AND_DELETE_ELEM), + CHK(BPF_MAP_FREEZE), + CHK(BPF_BTF_GET_NEXT_ID), + CHK(BPF_MAP_LOOKUP_BATCH), + CHK(BPF_MAP_UPDATE_BATCH), + CHK(BPF_MAP_DELETE_BATCH), + CHK(BPF_LINK_CREATE), + CHK(BPF_LINK_UPDATE), }; page_size = get_page_size(); diff --git a/tests/brk.c b/tests/brk.c index caf40e13..90f990e1 100644 --- a/tests/brk.c +++ b/tests/brk.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_brk diff --git a/tests/btrfs.c b/tests/btrfs.c index f1a26bf3..2a474dc4 100644 --- a/tests/btrfs.c +++ b/tests/btrfs.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -815,7 +815,7 @@ btrfs_test_clone_ioctls(void) args.dest_offset); } -# define BTRFS_COMPRESS_TYPES 2 +# define BTRFS_COMPRESS_TYPES 3 # define BTRFS_INVALID_COMPRESS (BTRFS_COMPRESS_TYPES + 1) static void @@ -886,9 +886,9 @@ btrfs_test_defrag_ioctls(void) static const char * xlookup(const struct xlat *xlat, const uint64_t val) { - for (; xlat->str != NULL; xlat++) - if (xlat->val == val) - return xlat->str; + for (size_t i = 0; i < xlat->size; i++) + if (xlat->data[i].val == val) + return xlat->data[i].str; return NULL; } @@ -2068,7 +2068,7 @@ btrfs_test_features_ioctls(void) static void btrfs_test_read_ioctls(void) { - static const struct xlat btrfs_read_cmd[] = { + static const struct xlat_data btrfs_read_cmd[] = { XLAT(BTRFS_IOC_BALANCE_PROGRESS), XLAT(BTRFS_IOC_FS_INFO), XLAT(BTRFS_IOC_GET_FEATURES), diff --git a/tests/caps-abbrev.awk b/tests/caps-abbrev.awk index c00023b4..1ec02e34 100644 --- a/tests/caps-abbrev.awk +++ b/tests/caps-abbrev.awk @@ -3,12 +3,13 @@ # This file is part of caps strace test. # # Copyright (c) 2014-2018 Dmitry V. Levin +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later BEGIN { - cap = "(0|1< +# Copyright (c) 2014-2020 Dmitry V. Levin # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later BEGIN { - cap = "(0|1< * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_chmod diff --git a/tests/chown.c b/tests/chown.c index 05fe9af1..4b6daea0 100644 --- a/tests/chown.c +++ b/tests/chown.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_chown diff --git a/tests/chown32.c b/tests/chown32.c index f2726203..5a0601cb 100644 --- a/tests/chown32.c +++ b/tests/chown32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_chown32 diff --git a/tests/chroot.c b/tests/chroot.c index 3fc441e3..1cef5f9b 100644 --- a/tests/chroot.c +++ b/tests/chroot.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_chroot diff --git a/tests/clock_adjtime.c b/tests/clock_adjtime.c index 8e5a12fb..610c75e3 100644 --- a/tests/clock_adjtime.c +++ b/tests/clock_adjtime.c @@ -2,13 +2,14 @@ * This file is part of clock_adjtime strace test. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_clock_adjtime diff --git a/tests/clock_nanosleep.c b/tests/clock_nanosleep.c index 258c3ac1..854fdb3f 100644 --- a/tests/clock_nanosleep.c +++ b/tests/clock_nanosleep.c @@ -2,21 +2,24 @@ * Check decoding of clock_nanosleep and clock_gettime syscalls. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include -#include -#include -#include -#include -#include -#include +#include "scno.h" + +#ifdef __NR_clock_nanosleep + +# include +# include +# include +# include +# include +# include +# include static void handler(int signo) @@ -127,3 +130,9 @@ main(void) puts("+++ exited with 0 +++"); return 0; } + +#else + +SKIP_MAIN_UNDEFINED("__NR_clock_nanosleep") + +#endif diff --git a/tests/clock_xettime.c b/tests/clock_xettime.c index c25240da..345c3a42 100644 --- a/tests/clock_xettime.c +++ b/tests/clock_xettime.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +11,7 @@ #include #include #include -#include +#include "scno.h" #if defined __NR_clock_getres \ && defined __NR_clock_gettime \ diff --git a/tests/clone-flags.c b/tests/clone-flags.c new file mode 100644 index 00000000..04bb2c76 --- /dev/null +++ b/tests/clone-flags.c @@ -0,0 +1,151 @@ +/* + * Check decoding of clone flags. + * + * Copyright (c) 2017-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#define XLAT_MACROS_ONLY +#include "xlat/clone_flags.h" +#undef XLAT_MACROS_ONLY + +static const int child_exit_status = 42; +static pid_t pid; + +static pid_t +wait_cloned(pid_t pid, int sig, const char *text) +{ + if (pid < 0) + perror_msg_and_fail("clone %s", text); + int status; + pid_t rc = wait(&status); + if (sig) { + if (rc != pid) + perror_msg_and_fail("unexpected wait rc %d from %s", + rc, text); + if (!WIFEXITED(status) || + WEXITSTATUS(status) != child_exit_status) + error_msg_and_fail("unexpected wait status %#x from %s", + status, text); + } else { + if (rc >= 0) + error_msg_and_fail("unexpected wait rc %d from %s", + rc, text); + } + return pid; +} + +#ifdef IA64 +extern int __clone2(int (*)(void *), void *, size_t, int, void *, ...); +# define do_clone(fn_, stack_, size_, flags_, arg_, ...) \ + wait_cloned(__clone2((fn_), (stack_), (size_), (flags_), (arg_), \ + ## __VA_ARGS__), (flags_) & 0xff, #flags_) +# define SYSCALL_NAME "clone2" +# define STACK_SIZE_FMT ", stack_size=%#lx" +# define STACK_SIZE_ARG child_stack_size, +#else +# define do_clone(fn_, stack_, size_, flags_, arg_, ...) \ + wait_cloned(clone((fn_), (stack_), (flags_), (arg_), \ + ## __VA_ARGS__), (flags_) & 0xff, #flags_) +# define SYSCALL_NAME "clone" +# define STACK_SIZE_FMT "" +# define STACK_SIZE_ARG +#endif + +static int +child(void *const arg) +{ + return child_exit_status; +} + +int +main(void) +{ + const unsigned long child_stack_size = get_page_size(); + void *const child_stack = + tail_alloc(child_stack_size * 2) + child_stack_size; + + const char *child_stack_expected_str = getenv("CHILD_STACK_EXPECTED"); + const char *child_stack_reported_str = getenv("CHILD_STACK_REPORTED"); + + if (!child_stack_expected_str || !child_stack_reported_str) { + const unsigned long child_stack_base = + (unsigned long) child_stack / 0x1000; + pid = do_clone(child, child_stack, child_stack_size, + SIGCHLD, 0); + printf("%s\\(child_stack=(%#lx|%#lx)[[:xdigit:]]{3}" + STACK_SIZE_FMT ", flags=%s\\) = %d\n", + SYSCALL_NAME, child_stack_base, child_stack_base - 1, + STACK_SIZE_ARG "SIGCHLD", pid); + return 0; + } + const unsigned long child_stack_expected = + strtoul(child_stack_expected_str, 0, 16); + const unsigned long child_stack_reported = + strtoul(child_stack_reported_str, 0, 16); + const unsigned long child_stack_printed = + (unsigned long) child_stack + + (child_stack_reported - child_stack_expected); + + pid = do_clone(child, child_stack, child_stack_size, 0, 0); + printf("%s(child_stack=%#lx" STACK_SIZE_FMT ", flags=%s) = %d\n", + SYSCALL_NAME, child_stack_printed, STACK_SIZE_ARG + "0", pid); + + pid = do_clone(child, child_stack, child_stack_size, CLONE_FS, 0); + printf("%s(child_stack=%#lx" STACK_SIZE_FMT ", flags=%s) = %d\n", + SYSCALL_NAME, child_stack_printed, STACK_SIZE_ARG + "CLONE_FS", pid); + + pid = do_clone(child, child_stack, child_stack_size, SIGCHLD, 0); + printf("%s(child_stack=%#lx" STACK_SIZE_FMT ", flags=%s) = %d\n", + SYSCALL_NAME, child_stack_printed, STACK_SIZE_ARG + "SIGCHLD", pid); + + pid = do_clone(child, child_stack, child_stack_size, + CLONE_FS|SIGCHLD, 0); + printf("%s(child_stack=%#lx" STACK_SIZE_FMT ", flags=%s) = %d\n", + SYSCALL_NAME, child_stack_printed, STACK_SIZE_ARG + "CLONE_FS|SIGCHLD", pid); + + TAIL_ALLOC_OBJECT_CONST_PTR(pid_t, ptid); + pid = do_clone(child, child_stack, child_stack_size, + CLONE_PARENT_SETTID|SIGCHLD, 0, ptid); + printf("%s(child_stack=%#lx" STACK_SIZE_FMT ", flags=%s" + ", parent_tid=[%u]) = %d\n", + SYSCALL_NAME, child_stack_printed, STACK_SIZE_ARG + "CLONE_PARENT_SETTID|SIGCHLD", *ptid, pid); + + char buf[PATH_MAX]; + if (readlink("/proc/self/fd/0", buf, sizeof(buf) - 1) > 0) { + *ptid = 0; + pid = do_clone(child, child_stack, child_stack_size, + CLONE_PIDFD|SIGCHLD, 0, ptid); + char *fname = 0; + if (asprintf(&fname, "/proc/self/fd/%d", *ptid) < 0) + perror_msg_and_fail("asprintf"); + int rc = readlink(fname, buf, sizeof(buf) - 1); + if ((unsigned int) rc >= sizeof(buf)) + perror_msg_and_fail("readlink"); + buf[rc] = '\0'; + printf("%s(child_stack=%#lx" STACK_SIZE_FMT ", flags=%s" + ", parent_tid=[%u<%s>]) = %d\n", + SYSCALL_NAME, child_stack_printed, STACK_SIZE_ARG + "CLONE_PIDFD|SIGCHLD", *ptid, buf, pid); + } + + return 0; +} diff --git a/tests/clone-flags.test b/tests/clone-flags.test new file mode 100755 index 00000000..9485afa5 --- /dev/null +++ b/tests/clone-flags.test @@ -0,0 +1,24 @@ +#!/bin/sh -efu +# +# Check decoding of clone flags. +# +# Copyright (c) 2019-2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +case "$STRACE_ARCH" in + ia64) syscall=clone2 ;; + *) syscall=clone ;; +esac + +# Find out the expected and reported child stack addresses. +run_strace_match_grep --silence=exits -e signal=none -e trace=$syscall +CHILD_STACK_EXPECTED="$(sed -n 's/^clone[^(]*(child_stack=(\(0x[[:xdigit:]]\+\)|.*/\1/p' "$EXP")000" +CHILD_STACK_REPORTED="$(sed -n 's/^clone[^(]*(child_stack=\(0x[[:xdigit:]]\+\),.*/\1/p' "$LOG")" +export CHILD_STACK_EXPECTED CHILD_STACK_REPORTED + +# Use child stack addresses to check decoding. +run_strace_match_diff -a35 --silence=exits,personality -y -e signal=none -e trace=$syscall diff --git a/tests/clone3-Xabbrev.c b/tests/clone3-Xabbrev.c new file mode 100644 index 00000000..2b7e4175 --- /dev/null +++ b/tests/clone3-Xabbrev.c @@ -0,0 +1 @@ +#include "clone3.c" diff --git a/tests/clone3-Xabbrev.gen.test b/tests/clone3-Xabbrev.gen.test new file mode 100755 index 00000000..39eea6b5 --- /dev/null +++ b/tests/clone3-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone3-Xabbrev -a16 -Xabbrev -e trace=clone3); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a16 -Xabbrev -e trace=clone3 diff --git a/tests/clone3-Xraw.c b/tests/clone3-Xraw.c new file mode 100644 index 00000000..1e1facb4 --- /dev/null +++ b/tests/clone3-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "clone3.c" diff --git a/tests/clone3-Xraw.gen.test b/tests/clone3-Xraw.gen.test new file mode 100755 index 00000000..727ea5ad --- /dev/null +++ b/tests/clone3-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone3-Xraw -a16 -Xraw -e trace=clone3); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a16 -Xraw -e trace=clone3 diff --git a/tests/clone3-Xverbose.c b/tests/clone3-Xverbose.c new file mode 100644 index 00000000..23c45a0b --- /dev/null +++ b/tests/clone3-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "clone3.c" diff --git a/tests/clone3-Xverbose.gen.test b/tests/clone3-Xverbose.gen.test new file mode 100755 index 00000000..9955d021 --- /dev/null +++ b/tests/clone3-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone3-Xverbose -a16 -Xverbose -e trace=clone3); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a16 -Xverbose -e trace=clone3 diff --git a/tests/clone3-success-Xabbrev.c b/tests/clone3-success-Xabbrev.c new file mode 100644 index 00000000..8df14f94 --- /dev/null +++ b/tests/clone3-success-Xabbrev.c @@ -0,0 +1,2 @@ +#define RETVAL_INJECTED 1 +#include "clone3.c" diff --git a/tests/clone3-success-Xabbrev.gen.test b/tests/clone3-success-Xabbrev.gen.test new file mode 100755 index 00000000..a9c16f43 --- /dev/null +++ b/tests/clone3-success-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone3-success-Xabbrev +clone3-success.test -a16 -Xabbrev); do not edit. +set -- -a16 -Xabbrev +. "${srcdir=.}/clone3-success.test" diff --git a/tests/clone3-success-Xraw.c b/tests/clone3-success-Xraw.c new file mode 100644 index 00000000..9a81c752 --- /dev/null +++ b/tests/clone3-success-Xraw.c @@ -0,0 +1,3 @@ +#define RETVAL_INJECTED 1 +#define XLAT_RAW 1 +#include "clone3.c" diff --git a/tests/clone3-success-Xraw.gen.test b/tests/clone3-success-Xraw.gen.test new file mode 100755 index 00000000..d1ed0b0b --- /dev/null +++ b/tests/clone3-success-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone3-success-Xraw +clone3-success.test -a16 -Xraw); do not edit. +set -- -a16 -Xraw +. "${srcdir=.}/clone3-success.test" diff --git a/tests/clone3-success-Xverbose.c b/tests/clone3-success-Xverbose.c new file mode 100644 index 00000000..2b2a3bd1 --- /dev/null +++ b/tests/clone3-success-Xverbose.c @@ -0,0 +1,3 @@ +#define RETVAL_INJECTED 1 +#define XLAT_VERBOSE 1 +#include "clone3.c" diff --git a/tests/clone3-success-Xverbose.gen.test b/tests/clone3-success-Xverbose.gen.test new file mode 100755 index 00000000..3b7a3f83 --- /dev/null +++ b/tests/clone3-success-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone3-success-Xverbose +clone3-success.test -a16 -Xverbose); do not edit. +set -- -a16 -Xverbose +. "${srcdir=.}/clone3-success.test" diff --git a/tests/clone3-success.c b/tests/clone3-success.c new file mode 100644 index 00000000..8df14f94 --- /dev/null +++ b/tests/clone3-success.c @@ -0,0 +1,2 @@ +#define RETVAL_INJECTED 1 +#include "clone3.c" diff --git a/tests/clone3-success.test b/tests/clone3-success.test new file mode 100755 index 00000000..4db29f41 --- /dev/null +++ b/tests/clone3-success.test @@ -0,0 +1,12 @@ +#!/bin/sh -efu +# +# Copyright (c) 2019 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/scno_tampering.sh" + +run_strace -a10 "$@" -e trace=clone3 -e inject=clone3:retval=42 \ + "../$NAME" > "$EXP" +match_diff "$LOG" "$EXP" diff --git a/tests/clone3.c b/tests/clone3.c new file mode 100644 index 00000000..c15cb1d3 --- /dev/null +++ b/tests/clone3.c @@ -0,0 +1,629 @@ +/* + * Check decoding of clone3 syscall. + * + * Copyright (c) 2019-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#include +#include +#include +#include +#include +#include +#include + +#ifdef HAVE_LINUX_SCHED_H +# include +#endif + +#ifdef HAVE_STRUCT_USER_DESC +# include +#endif + +#define XLAT_MACROS_ONLY +# include "xlat/clone_flags.h" +# include "xlat/clone3_flags.h" +#undef XLAT_MACROS_ONLY + +#include "scno.h" + +#ifndef VERBOSE +# define VERBOSE 0 +#endif +#ifndef RETVAL_INJECTED +# define RETVAL_INJECTED 0 +#endif + +struct test_clone_args { + uint64_t flags; + uint64_t pidfd; + uint64_t child_tid; + uint64_t parent_tid; + uint64_t exit_signal; + uint64_t stack; + uint64_t stack_size; + uint64_t tls; + uint64_t set_tid; + uint64_t set_tid_size; + uint64_t cgroup; +}; + +#ifdef HAVE_STRUCT_CLONE_ARGS_CGROUP +typedef struct clone_args struct_clone_args; +#else +typedef struct test_clone_args struct_clone_args; +#endif + +enum validity_flag_bits { + STRUCT_VALID_BIT, + PIDFD_VALID_BIT, + CHILD_TID_VALID_BIT, + PARENT_TID_VALID_BIT, + TLS_VALID_BIT, +}; + +enum validity_flags { + FLAG(STRUCT_VALID), + FLAG(PIDFD_VALID), + FLAG(CHILD_TID_VALID), + FLAG(PARENT_TID_VALID), + FLAG(TLS_VALID), +}; + +#define MAX_SET_TID_SIZE 32 + +static const int child_exit_status = 42; + +#if RETVAL_INJECTED +static const long injected_retval = 42; + +# define INJ_STR " (INJECTED)\n" +#else /* !RETVAL_INJECTED */ +# define INJ_STR "\n" +#endif /* RETVAL_INJECTED */ + +#define ERR(b_) ((1ULL << (b_)) + FAIL_BUILD_ON_ZERO((b_) < 64)) + + +#if !RETVAL_INJECTED +static void +wait_cloned(int pid) +{ + int status; + + errno = 0; + while (waitpid(pid, &status, WEXITED | __WCLONE) != pid) { + if (errno != EINTR) + perror_msg_and_fail("waitpid(%d)", pid); + } +} +#endif + +static long +do_clone3_(void *args, kernel_ulong_t size, uint64_t possible_errors, int line) +{ + long rc = syscall(__NR_clone3, args, size); + +#if RETVAL_INJECTED + if (rc != injected_retval) + perror_msg_and_fail("%d: Unexpected injected return value " + "of a clone3() call (%ld instead of %ld)", + line, rc, injected_retval); +#else + + static int unimplemented_error = -1; + + if (!(possible_errors & ERR(0))) { + if (rc >= 0) + error_msg_and_fail("%d: Unexpected success" + " of a clone3() call", line); + if (unimplemented_error < 0) + unimplemented_error = + (errno == EINVAL) ? ENOSYS : errno; + } + + /* + * This code works as long as all the errors we care about (EFAULT + * and EINVAL so far) fit inside 64 bits, otherwise it should + * be rewritten. + */ + if (rc < 0 && errno != unimplemented_error + && (errno >= 64 || errno < 0 || !(ERR(errno) & possible_errors))) { + perror_msg_and_fail("%d: Unexpected failure of a clone3() call" + " (got errno %d, expected errno bitmask" + " %#" PRIx64 ")", + line, errno, possible_errors); + } + + if (!rc) + _exit(child_exit_status); + + if (rc > 0 && ((struct_clone_args *) args)->exit_signal) + wait_cloned(rc); +#endif + + return rc; +} + +#define do_clone3(args_, size_, errors_) \ + do_clone3_((args_), (size_), (errors_), __LINE__) + +static inline void +print_addr64(const char *pfx, uint64_t addr) +{ + if (addr) + printf("%s%#" PRIx64, pfx, addr); + else + printf("%sNULL", pfx); +} + +static void +print_tls(const char *pfx, uint64_t arg_ptr, enum validity_flags vf) +{ +#if defined HAVE_STRUCT_USER_DESC && defined __i386__ + if (!(vf & TLS_VALID)) { + print_addr64(pfx, arg_ptr); + return; + } + + struct user_desc *arg = (struct user_desc *) (uintptr_t) arg_ptr; + + printf("%s{entry_number=%d" + ", base_addr=%#08x" + ", limit=%#08x" + ", seg_32bit=%u" + ", contents=%u" + ", read_exec_only=%u" + ", limit_in_pages=%u" + ", seg_not_present=%u" + ", useable=%u}", + pfx, + arg->entry_number, + arg->base_addr, + arg->limit, + arg->seg_32bit, + arg->contents, + arg->read_exec_only, + arg->limit_in_pages, + arg->seg_not_present, + arg->useable); +#else + print_addr64(pfx, arg_ptr); +#endif +} + +static void +print_set_tid(uint64_t set_tid, uint64_t set_tid_size) +{ + if (!set_tid || set_tid != (uintptr_t) set_tid || + !set_tid_size || set_tid_size > MAX_SET_TID_SIZE) { + print_addr64(", set_tid=", set_tid); + } else { + printf(", set_tid="); + int *tids = (int *) (uintptr_t) set_tid; + for (unsigned int i = 0; i < set_tid_size; ++i) + printf("%s%d", i ? ", " : "[", tids[i]); + printf("]"); + } + + printf(", set_tid_size=%" PRIu64, set_tid_size); +} + +static inline void +print_clone3(struct_clone_args *const arg, long rc, kernel_ulong_t sz, + enum validity_flags valid, + const char *flags_str, const char *es_str) +{ + int saved_errno = errno; + + printf("clone3("); + if (!(valid & STRUCT_VALID)) { + printf("%p", arg); + goto out; + } + +#if XLAT_RAW + printf("{flags=%#" PRIx64, (uint64_t) arg->flags); +#elif XLAT_VERBOSE + if (flags_str[0] == '0') + printf("{flags=%#" PRIx64, (uint64_t) arg->flags); + else + printf("{flags=%#" PRIx64 " /* %s */", + (uint64_t) arg->flags, flags_str); +#else + printf("{flags=%s", flags_str); +#endif + + if (arg->flags & CLONE_PIDFD) + print_addr64(", pidfd=", arg->pidfd); + + if (arg->flags & (CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID)) { + if (valid & CHILD_TID_VALID) + printf(", child_tid=[%d]", + *(int *) (uintptr_t) arg->child_tid); + else + print_addr64(", child_tid=", arg->child_tid); + } + + if (arg->flags & CLONE_PARENT_SETTID) + print_addr64(", parent_tid=", arg->parent_tid); + + printf(", exit_signal=%s", es_str); + print_addr64(", stack=", arg->stack); + printf(", stack_size=%" PRIx64, (uint64_t) arg->stack_size); + + if (arg->flags & CLONE_SETTLS) + print_tls("tls=", arg->tls, valid); + + if (sz >= offsetofend(struct_clone_args, set_tid_size) && + (arg->set_tid || arg->set_tid_size)) + print_set_tid(arg->set_tid, arg->set_tid_size); + + if (sz > offsetof(struct_clone_args, cgroup) && + (arg->cgroup || arg->flags & CLONE_INTO_CGROUP)) + printf(", cgroup=%" PRIu64, (uint64_t) arg->cgroup); + + printf("}"); + + if (rc < 0) + goto out; + + bool comma = false; + + if (arg->flags & CLONE_PIDFD) { + if (valid & PIDFD_VALID) + printf(" => {pidfd=[%d]", + *(int *) (uintptr_t) arg->pidfd); + else + print_addr64(" => {pidfd=", arg->pidfd); + + comma = true; + } + + if (arg->flags & CLONE_PARENT_SETTID) { + printf(comma ? ", " : " => {"); + + if (valid & PARENT_TID_VALID) + printf("parent_tid=[%d]", + *(int *) (uintptr_t) arg->parent_tid); + else + print_addr64("parent_tid=", arg->parent_tid); + + comma = true; + } + + if (comma) + printf("}"); + +out: + errno = saved_errno; +} + +int +main(int argc, char *argv[]) +{ + static const struct { + struct_clone_args args; + uint64_t possible_errors; + enum validity_flags vf; + const char *flags_str; + const char *es_str; + } arg_vals[] = { + { { .flags = 0 }, + ERR(0), 0, "0", "0" }, + { { .flags = CLONE_PARENT_SETTID }, + ERR(0), 0, "CLONE_PARENT_SETTID", "0" }, + + /* check clone3_flags/clone_flags interoperation */ + { { .flags = CLONE_CLEAR_SIGHAND }, + ERR(EINVAL) | ERR(0), 0, "CLONE_CLEAR_SIGHAND", "0" }, + { { .flags = CLONE_PARENT_SETTID | CLONE_CLEAR_SIGHAND }, + ERR(EINVAL) | ERR(0), 0, + "CLONE_PARENT_SETTID|CLONE_CLEAR_SIGHAND", "0" }, + + { { .set_tid = 0xfacefeedcafebabe }, + ERR(E2BIG) | ERR(EINVAL), 0, "0", "0" }, + { { .set_tid_size = 0xfacecafefeedbabe }, + ERR(E2BIG) | ERR(EINVAL), 0, "0", "0" }, + { { .set_tid = 0xfacefeedcafebabe, + .set_tid_size = MAX_SET_TID_SIZE + 1 }, + ERR(E2BIG) | ERR(EINVAL), 0, "0", "0" }, + }; + TAIL_ALLOC_OBJECT_CONST_PTR(struct_clone_args, arg); + const size_t arg1_size = offsetofend(struct_clone_args, tls); + struct_clone_args *const arg1 = tail_alloc(arg1_size); + const size_t arg2_size = sizeof(*arg) + 8; + struct_clone_args *const arg2 = tail_alloc(arg2_size); + TAIL_ALLOC_OBJECT_CONST_PTR(int, pidfd); + TAIL_ALLOC_OBJECT_CONST_PTR(int, child_tid); + TAIL_ALLOC_OBJECT_CONST_PTR(int, parent_tid); + int *const tids = tail_alloc(sizeof(*tids) * MAX_SET_TID_SIZE); + long rc; + +#if defined HAVE_STRUCT_USER_DESC + TAIL_ALLOC_OBJECT_CONST_PTR(struct user_desc, tls); + + fill_memory(tls, sizeof(*tls)); +#else + TAIL_ALLOC_OBJECT_CONST_PTR(int, tls); +#endif + + *pidfd = 0xbadc0ded; + *child_tid = 0xdeadface; + *parent_tid = 0xfeedbeef; + fill_memory(tids, sizeof(*tids) * MAX_SET_TID_SIZE); + + rc = do_clone3(NULL, 0, ERR(EINVAL)); + printf("clone3(NULL, 0) = %s" INJ_STR, sprintrc(rc)); + + rc = do_clone3(arg + 1, sizeof(*arg), ERR(EFAULT)); + printf("clone3(%p, %zu) = %s" INJ_STR, + arg + 1, sizeof(*arg), sprintrc(rc)); + + size_t short_size = arg1_size - sizeof(uint64_t); + char *short_start = (char *) arg1 + sizeof(uint64_t); + rc = do_clone3(short_start, short_size, ERR(EINVAL)); + printf("clone3(%p, %zu) = %s" INJ_STR, + short_start, short_size, sprintrc(rc)); + + + memset(arg, 0, sizeof(*arg)); + memset(arg1, 0, arg1_size); + memset(arg2, 0, arg2_size); + + rc = do_clone3(arg, 64, ERR(0)); + printf("clone3({flags=0, exit_signal=0, stack=NULL, stack_size=0}, 64)" + " = %s" INJ_STR, + sprintrc(rc)); + + rc = do_clone3(arg, sizeof(*arg) + 8, ERR(EFAULT)); + printf("clone3({flags=0, exit_signal=0, stack=NULL, stack_size=0, ???}" +#if RETVAL_INJECTED + " => {???}" +#endif + ", %zu) = %s" INJ_STR, + sizeof(*arg) + 8, sprintrc(rc)); + + rc = do_clone3(arg1, arg1_size, ERR(0)); + printf("clone3({flags=0, exit_signal=0, stack=NULL, stack_size=0}" + ", %zu) = %s" INJ_STR, + arg1_size, sprintrc(rc)); + + rc = do_clone3(arg2, arg2_size, ERR(0)); + printf("clone3({flags=0, exit_signal=0, stack=NULL, stack_size=0}" + ", %zu) = %s" INJ_STR, + arg2_size, sprintrc(rc)); + + arg->set_tid = (uintptr_t) tids; + arg->set_tid_size = MAX_SET_TID_SIZE; + rc = do_clone3(arg, sizeof(*arg), ERR(E2BIG) | ERR(EINVAL)); + print_clone3(arg, rc, sizeof(*arg), STRUCT_VALID, "0", "0"); + printf(", %zu) = %s" INJ_STR, sizeof(*arg), sprintrc(rc)); + memset(arg, 0, sizeof(*arg)); + + arg->cgroup = 0xfacefeedbadc0ded; + rc = do_clone3(arg, sizeof(*arg), ERR(0) | ERR(E2BIG)); + print_clone3(arg, rc, sizeof(*arg), STRUCT_VALID, "0", "0"); + printf(", %zu) = %s" INJ_STR, sizeof(*arg), sprintrc(rc)); + memset(arg, 0, sizeof(*arg)); + + arg->flags = CLONE_INTO_CGROUP; + rc = do_clone3(arg, sizeof(*arg), ERR(0) | ERR(EINVAL) | ERR(EBADF)); + print_clone3(arg, rc, sizeof(*arg), STRUCT_VALID, + "CLONE_INTO_CGROUP", "0"); + printf(", %zu) = %s" INJ_STR, sizeof(*arg), sprintrc(rc)); + memset(arg, 0, sizeof(*arg)); + + /* + * NB: the following check is purposefully fragile (it will break + * when system's struct clone_args has additional fields, + * so it signalises that the decoder needs to be updated. + */ + arg2[1].flags = 0xfacefeeddeadc0de; + arg2->exit_signal = 0xdeadface00000000ULL | SIGCHLD; + rc = do_clone3(arg2, sizeof(*arg2) + 8, ERR(E2BIG)); + printf("clone3({flags=0, exit_signal=%llu, stack=NULL, stack_size=0" + ", /* bytes %zu..%zu */ " +#if WORDS_BIGENDIAN + "\"\\xfa\\xce\\xfe\\xed\\xde\\xad\\xc0\\xde\"" +#else + "\"\\xde\\xc0\\xad\\xde\\xed\\xfe\\xce\\xfa\"" +#endif +#if RETVAL_INJECTED + "} => {/* bytes %zu..%zu */ " +# if WORDS_BIGENDIAN + "\"\\xfa\\xce\\xfe\\xed\\xde\\xad\\xc0\\xde\"" +# else + "\"\\xde\\xc0\\xad\\xde\\xed\\xfe\\xce\\xfa\"" +# endif +#endif /* RETVAL_INJECTED */ + "}, %zu) = %s" INJ_STR, + 0xdeadface00000000ULL | SIGCHLD, + sizeof(*arg2), sizeof(*arg2) + 7, +#if RETVAL_INJECTED + sizeof(*arg2), sizeof(*arg2) + 7, +#endif + sizeof(*arg2) + 8, sprintrc(rc)); + + arg2->exit_signal = 0xdeadc0de; + rc = do_clone3(arg2, sizeof(*arg) + 16, ERR(E2BIG)); + printf("clone3({flags=0, exit_signal=3735929054, stack=NULL" + ", stack_size=0, ???}" +#if RETVAL_INJECTED + " => {???}" +#endif + ", %zu) = %s" INJ_STR, + sizeof(*arg) + 16, sprintrc(rc)); + + arg->flags = 0xface3eefbeefc0de; + arg->exit_signal = 0x1e55c0de; + rc = do_clone3(arg, 64, ERR(EINVAL)); + printf("clone3({flags=%s, child_tid=NULL, exit_signal=508936414" + ", stack=NULL, stack_size=0, tls=NULL}, 64) = %s" INJ_STR, + XLAT_KNOWN(0xface3eefbeefc0de, "CLONE_VFORK|CLONE_PARENT" + "|CLONE_THREAD|CLONE_NEWNS|CLONE_SYSVSEM|CLONE_SETTLS" + "|CLONE_CHILD_CLEARTID|CLONE_UNTRACED|CLONE_NEWCGROUP" + "|CLONE_NEWUTS|CLONE_NEWIPC|CLONE_NEWUSER|CLONE_NEWPID|CLONE_IO" + "|CLONE_NEWTIME|CLONE_CLEAR_SIGHAND|CLONE_INTO_CGROUP" + "|0xface3eec0040005e"), + sprintrc(rc)); + + arg->flags = 0xdec0deac0040007fULL; + arg->exit_signal = 250; + arg->stack = 0xface1e55beeff00dULL; + arg->stack_size = 0xcaffeedefacedca7ULL; + rc = do_clone3(arg, 64, ERR(EINVAL)); + printf("clone3({flags=%s, exit_signal=250" + ", stack=0xface1e55beeff00d, stack_size=0xcaffeedefacedca7}, 64)" + " = %s" INJ_STR, + XLAT_UNKNOWN(0xdec0deac0040007f, "CLONE_???"), + sprintrc(rc)); + + arg->exit_signal = SIGCHLD; + + struct { + uint64_t flag; + const char *flag_str; + uint64_t *field; + const char *field_name; + int *ptr; + bool deref_exiting; + } pid_fields[] = { + { ARG_STR(CLONE_PIDFD), + (uint64_t *) &arg->pidfd, + "pidfd", pidfd, true }, + { ARG_STR(CLONE_CHILD_SETTID), + (uint64_t *) &arg->child_tid, + "child_tid", child_tid }, + { ARG_STR(CLONE_CHILD_CLEARTID), + (uint64_t *) &arg->child_tid, + "child_tid", child_tid }, + { ARG_STR(CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID), + (uint64_t *) &arg->child_tid, + "child_tid", child_tid }, + { ARG_STR(CLONE_PARENT_SETTID), + (uint64_t *) &arg->parent_tid, + "parent_tid", parent_tid, true }, + }; + + for (size_t i = 0; i < ARRAY_SIZE(pid_fields); i++) { + char flag_str[128]; + const char *rc_str; + + arg->flags = 0xbad0000000000001ULL | pid_fields[i].flag; + +#if XLAT_RAW + snprintf(flag_str, sizeof(flag_str), "%#" PRIx64, + (uint64_t) arg->flags); +#elif XLAT_VERBOSE + snprintf(flag_str, sizeof(flag_str), + "%#" PRIx64 " /* %s|0xbad0000000000001 */", + (uint64_t) arg->flags, pid_fields[i].flag_str); +#else + snprintf(flag_str, sizeof(flag_str), "%s|0xbad0000000000001", + pid_fields[i].flag_str); +#endif + + pid_fields[i].field[0] = 0; + rc = do_clone3(arg, 64, ERR(EINVAL)); + rc_str = sprintrc(rc); + printf("clone3({flags=%s, %s=NULL" + ", exit_signal=" XLAT_KNOWN(SIGCHLD, "SIGCHLD") + ", stack=0xface1e55beeff00d" + ", stack_size=0xcaffeedefacedca7}", + flag_str, pid_fields[i].field_name); +#if RETVAL_INJECTED + if (pid_fields[i].deref_exiting) + printf(" => {%s=NULL}", pid_fields[i].field_name); +#endif /* RETVAL_INJECTED */ + printf(", 64) = %s" INJ_STR, rc_str); + + pid_fields[i].field[0] = (uintptr_t) (pid_fields[i].ptr + 1); + rc = do_clone3(arg, 64, ERR(EINVAL)); + rc_str = sprintrc(rc); + printf("clone3({flags=%s, %s=%p" + ", exit_signal=" XLAT_KNOWN(SIGCHLD, "SIGCHLD") + ", stack=0xface1e55beeff00d" + ", stack_size=0xcaffeedefacedca7}", + flag_str, pid_fields[i].field_name, + pid_fields[i].ptr + 1); +#if RETVAL_INJECTED + if (pid_fields[i].deref_exiting) + printf(" => {%s=%p}", + pid_fields[i].field_name, pid_fields[i].ptr + 1); +#endif /* RETVAL_INJECTED */ + printf(", 64) = %s" INJ_STR, rc_str); + + pid_fields[i].field[0] = (uintptr_t) pid_fields[i].ptr; + rc = do_clone3(arg, 64, ERR(EINVAL)); + rc_str = sprintrc(rc); + printf("clone3({flags=%s, %s=%p" + ", exit_signal=" XLAT_KNOWN(SIGCHLD, "SIGCHLD") + ", stack=0xface1e55beeff00d" + ", stack_size=0xcaffeedefacedca7}", + flag_str, pid_fields[i].field_name, + pid_fields[i].ptr); +#if RETVAL_INJECTED + if (pid_fields[i].deref_exiting) + printf(" => {%s=[%d]}", + pid_fields[i].field_name, *pid_fields[i].ptr); +#endif /* RETVAL_INJECTED */ + printf(", 64) = %s" INJ_STR, rc_str); + } + + arg->flags = 0xbad0000000000001ULL | CLONE_SETTLS; + rc = do_clone3(arg, 64, ERR(EINVAL)); + printf("clone3({flags=" + XLAT_KNOWN(0xbad0000000080001, "CLONE_SETTLS|0xbad0000000000001") + ", exit_signal=" XLAT_KNOWN(SIGCHLD, "SIGCHLD") + ", stack=0xface1e55beeff00d" + ", stack_size=0xcaffeedefacedca7, tls=NULL}, 64) = %s" INJ_STR, + sprintrc(rc)); + + arg->tls = (uintptr_t) (tls + 1); + rc = do_clone3(arg, 64, ERR(EINVAL)); + printf("clone3({flags=" + XLAT_KNOWN(0xbad0000000080001, "CLONE_SETTLS|0xbad0000000000001") + ", exit_signal=" XLAT_KNOWN(SIGCHLD, "SIGCHLD") + ", stack=0xface1e55beeff00d" + ", stack_size=0xcaffeedefacedca7, tls=%p}, 64) = %s" INJ_STR, + tls + 1, sprintrc(rc)); + + arg->tls = (uintptr_t) tls; + rc = do_clone3(arg, 64, ERR(EINVAL)); + printf("clone3({flags=" + XLAT_KNOWN(0xbad0000000080001, "CLONE_SETTLS|0xbad0000000000001") + ", exit_signal=" XLAT_KNOWN(SIGCHLD, "SIGCHLD") + ", stack=0xface1e55beeff00d, stack_size=0xcaffeedefacedca7, tls=" +#if defined HAVE_STRUCT_USER_DESC && defined __i386__ + "{entry_number=2206368128, base_addr=0x87868584" + ", limit=0x8b8a8988, seg_32bit=0, contents=2, read_exec_only=1" + ", limit_in_pages=0, seg_not_present=0, useable=0}" +#else + "%p" +#endif + "}, 64) = %s" INJ_STR, +#if !defined HAVE_STRUCT_USER_DESC || !defined __i386__ + tls, +#endif + sprintrc(rc)); + + for (size_t i = 0; i < ARRAY_SIZE(arg_vals); i++) { + memcpy(arg, &arg_vals[i].args, sizeof(*arg)); + + rc = do_clone3(arg, sizeof(*arg), arg_vals[i].possible_errors); + print_clone3(arg, rc, sizeof(*arg), + arg_vals[i].vf | STRUCT_VALID, + arg_vals[i].flags_str, arg_vals[i].es_str); + printf(", %zu) = %s" INJ_STR, sizeof(*arg), sprintrc(rc)); + } + + puts("+++ exited with 0 +++"); + + return 0; +} diff --git a/tests/clone3.gen.test b/tests/clone3.gen.test new file mode 100755 index 00000000..e5d5ca40 --- /dev/null +++ b/tests/clone3.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone3 -a16 ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a16 diff --git a/tests/clone_parent--quiet-exit.c b/tests/clone_parent--quiet-exit.c new file mode 100644 index 00000000..fc80d805 --- /dev/null +++ b/tests/clone_parent--quiet-exit.c @@ -0,0 +1,2 @@ +#define QUIET_MSG 1 +#include "clone_parent.c" diff --git a/tests/clone_parent--quiet-exit.gen.test b/tests/clone_parent--quiet-exit.gen.test new file mode 100755 index 00000000..298abc0b --- /dev/null +++ b/tests/clone_parent--quiet-exit.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone_parent--quiet-exit +clone_ptrace.test --quiet=exit,personality); do not edit. +set -- --quiet=exit,personality +. "${srcdir=.}/clone_ptrace.test" diff --git a/tests/clone_parent-q.c b/tests/clone_parent-q.c new file mode 100644 index 00000000..503b8e8f --- /dev/null +++ b/tests/clone_parent-q.c @@ -0,0 +1,2 @@ +#define QUIET_MSG 0 +#include "clone_parent.c" diff --git a/tests/clone_parent-q.gen.test b/tests/clone_parent-q.gen.test new file mode 100755 index 00000000..0d0ecb66 --- /dev/null +++ b/tests/clone_parent-q.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone_parent-q +clone_ptrace.test -q); do not edit. +set -- -q +. "${srcdir=.}/clone_ptrace.test" diff --git a/tests/clone_parent-qq.c b/tests/clone_parent-qq.c new file mode 100644 index 00000000..fc80d805 --- /dev/null +++ b/tests/clone_parent-qq.c @@ -0,0 +1,2 @@ +#define QUIET_MSG 1 +#include "clone_parent.c" diff --git a/tests/clone_parent-qq.gen.test b/tests/clone_parent-qq.gen.test new file mode 100755 index 00000000..e472bd4c --- /dev/null +++ b/tests/clone_parent-qq.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone_parent-qq +clone_ptrace.test -qq); do not edit. +set -- -qq +. "${srcdir=.}/clone_ptrace.test" diff --git a/tests/clone_parent.c b/tests/clone_parent.c index 111f98d1..d0e9cdac 100644 --- a/tests/clone_parent.c +++ b/tests/clone_parent.c @@ -1,7 +1,7 @@ /* * Check handling of CLONE_PARENT'ed processes. * - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -17,25 +17,34 @@ #include #include +#ifndef QUIET_MSG +# define QUIET_MSG 0 +#endif + static int child(void *const arg) { return 42; } -#define child_stack_size (get_page_size() / 2) - #ifdef IA64 extern int __clone2(int (*)(void *), void *, size_t, int, void *, ...); -# define clone(fn, child_stack, flags, arg) \ - __clone2(fn, child_stack, child_stack_size, flags, arg) +# define do_clone(fn_, stack_, size_, flags_, arg_, ...) \ + __clone2((fn_), (stack_), (size_), (flags_), (arg_), ## __VA_ARGS__) +#else +# define do_clone(fn_, stack_, size_, flags_, arg_, ...) \ + clone((fn_), (stack_), (flags_), (arg_), ## __VA_ARGS__) #endif int main(void) { - const pid_t pid = clone(child, tail_alloc(child_stack_size), - CLONE_PARENT | SIGCHLD, 0); + const unsigned long child_stack_size = get_page_size(); + void *const child_stack = + tail_alloc(child_stack_size * 2) + child_stack_size; + + const pid_t pid = do_clone(child, child_stack, child_stack_size, + CLONE_PARENT | SIGCHLD, 0); if (pid < 0) perror_msg_and_fail("clone"); @@ -51,10 +60,14 @@ main(void) FILE *const fp = fdopen(3, "a"); if (!fp) perror_msg_and_fail("fdopen"); +#if !QUIET_MSG if (fprintf(fp, "%s: Exit of unknown pid %d ignored\n", getenv("STRACE_EXE") ?: "strace", pid) < 0) perror_msg_and_fail("fprintf"); +#endif +#if !QUIET_MSG puts("+++ exited with 0 +++"); +#endif return 0; } diff --git a/tests/clone_parent.gen.test b/tests/clone_parent.gen.test new file mode 100755 index 00000000..4303eb02 --- /dev/null +++ b/tests/clone_parent.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone_parent +clone_ptrace.test ); do not edit. +set -- +. "${srcdir=.}/clone_ptrace.test" diff --git a/tests/clone_parent.test b/tests/clone_parent.test deleted file mode 100755 index a5b077f3..00000000 --- a/tests/clone_parent.test +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -efu -# -# Check handling of CLONE_PARENT'ed processes. -# -# Copyright (c) 2017-2018 The strace developers. -# All rights reserved. -# -# SPDX-License-Identifier: GPL-2.0-or-later - -. "${srcdir=.}/clone_ptrace.test" diff --git a/tests/clone_ptrace--quiet-attach.c b/tests/clone_ptrace--quiet-attach.c new file mode 100644 index 00000000..2fb8d855 --- /dev/null +++ b/tests/clone_ptrace--quiet-attach.c @@ -0,0 +1,2 @@ +#define QUIET_ATTACH 1 +#include "clone_ptrace.c" diff --git a/tests/clone_ptrace--quiet-attach.gen.test b/tests/clone_ptrace--quiet-attach.gen.test new file mode 100755 index 00000000..d5c3e73a --- /dev/null +++ b/tests/clone_ptrace--quiet-attach.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone_ptrace--quiet-attach +clone_ptrace.test --quiet=attach,personality); do not edit. +set -- --quiet=attach,personality +. "${srcdir=.}/clone_ptrace.test" diff --git a/tests/clone_ptrace--quiet-exit.c b/tests/clone_ptrace--quiet-exit.c new file mode 100644 index 00000000..3503cfbe --- /dev/null +++ b/tests/clone_ptrace--quiet-exit.c @@ -0,0 +1,2 @@ +#define QUIET_EXIT 1 +#include "clone_ptrace.c" diff --git a/tests/clone_ptrace--quiet-exit.gen.test b/tests/clone_ptrace--quiet-exit.gen.test new file mode 100755 index 00000000..6342598d --- /dev/null +++ b/tests/clone_ptrace--quiet-exit.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone_ptrace--quiet-exit +clone_ptrace.test --quiet=exit,personality); do not edit. +set -- --quiet=exit,personality +. "${srcdir=.}/clone_ptrace.test" diff --git a/tests/clone_ptrace-q.c b/tests/clone_ptrace-q.c new file mode 100644 index 00000000..2fb8d855 --- /dev/null +++ b/tests/clone_ptrace-q.c @@ -0,0 +1,2 @@ +#define QUIET_ATTACH 1 +#include "clone_ptrace.c" diff --git a/tests/clone_ptrace-q.gen.test b/tests/clone_ptrace-q.gen.test new file mode 100755 index 00000000..155e3a5d --- /dev/null +++ b/tests/clone_ptrace-q.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone_ptrace-q +clone_ptrace.test -q); do not edit. +set -- -q +. "${srcdir=.}/clone_ptrace.test" diff --git a/tests/clone_ptrace-qq.c b/tests/clone_ptrace-qq.c new file mode 100644 index 00000000..037fbca3 --- /dev/null +++ b/tests/clone_ptrace-qq.c @@ -0,0 +1,3 @@ +#define QUIET_ATTACH 1 +#define QUIET_EXIT 1 +#include "clone_ptrace.c" diff --git a/tests/clone_ptrace-qq.gen.test b/tests/clone_ptrace-qq.gen.test new file mode 100755 index 00000000..caa8ab41 --- /dev/null +++ b/tests/clone_ptrace-qq.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (clone_ptrace-qq +clone_ptrace.test -qq); do not edit. +set -- -qq +. "${srcdir=.}/clone_ptrace.test" diff --git a/tests/clone_ptrace.c b/tests/clone_ptrace.c index ee366ab9..4598400d 100644 --- a/tests/clone_ptrace.c +++ b/tests/clone_ptrace.c @@ -1,7 +1,7 @@ /* * Check handling of CLONE_PTRACE'ed processes. * - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -20,6 +20,13 @@ static siginfo_t sinfo; +#ifndef QUIET_ATTACH +# define QUIET_ATTACH 0 +#endif +#ifndef QUIET_EXIT +# define QUIET_EXIT 0 +#endif + static void handler(const int no, siginfo_t *const si, void *const uc) { @@ -34,12 +41,13 @@ child(void *const arg) return 0; } -#define child_stack_size (get_page_size() / 2) - #ifdef IA64 extern int __clone2(int (*)(void *), void *, size_t, int, void *, ...); -# define clone(fn, child_stack, flags, arg) \ - __clone2(fn, child_stack, child_stack_size, flags, arg) +# define do_clone(fn_, stack_, size_, flags_, arg_, ...) \ + __clone2((fn_), (stack_), (size_), (flags_), (arg_), ## __VA_ARGS__) +#else +# define do_clone(fn_, stack_, size_, flags_, arg_, ...) \ + clone((fn_), (stack_), (flags_), (arg_), ## __VA_ARGS__) #endif int @@ -52,8 +60,12 @@ main(void) if (sigprocmask(SIG_UNBLOCK, &mask, NULL)) perror_msg_and_fail("sigprocmask"); - const pid_t pid = clone(child, tail_alloc(child_stack_size), - CLONE_PTRACE | SIGCHLD, 0); + const unsigned long child_stack_size = get_page_size(); + void *const child_stack = + tail_alloc(child_stack_size * 2) + child_stack_size; + + const pid_t pid = do_clone(child, child_stack, child_stack_size, + CLONE_PTRACE | SIGCHLD, 0); if (pid < 0) perror_msg_and_fail("clone"); @@ -69,9 +81,11 @@ main(void) FILE *const fp = fdopen(3, "a"); if (!fp) perror_msg_and_fail("fdopen"); +#if !QUIET_ATTACH if (fprintf(fp, "%s: Detached unknown pid %d\n", getenv("STRACE_EXE") ?: "strace", pid) < 0) perror_msg_and_fail("fprintf"); +#endif int status; while (wait(&status) != pid) { @@ -82,8 +96,11 @@ main(void) error_msg_and_fail("unexpected child exit status %d", status); printf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_KILLED, si_pid=%d" - ", si_uid=%u, si_status=%s, si_utime=%u, si_stime=%u} ---\n" - "+++ exited with 0 +++\n", pid, geteuid(), "SIGUSR1", + ", si_uid=%d, si_status=%s, si_utime=%u, si_stime=%u} ---\n" +#if !QUIET_EXIT + "+++ exited with 0 +++\n" +#endif + , pid, geteuid(), "SIGUSR1", (unsigned int) sinfo.si_utime, (unsigned int) sinfo.si_stime); return 0; diff --git a/tests/clone_ptrace.test b/tests/clone_ptrace.test index 24c4298a..6f77ed8b 100755 --- a/tests/clone_ptrace.test +++ b/tests/clone_ptrace.test @@ -2,7 +2,7 @@ # # Check handling of CLONE_PTRACE'ed processes. # -# Copyright (c) 2017-2018 The strace developers. +# Copyright (c) 2017-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ . "${srcdir=.}/init.sh" run_prog > /dev/null 3>&1 -args="-e trace=none $args" +args="-e trace=none ${1:---quiet=personality} $args" > "$LOG" || fail_ "failed to write $LOG" $STRACE -o "$LOG" $args > "$EXP" 2> "$OUT"-err 3> "$EXP"-err || { diff --git a/tests/close_range-P.c b/tests/close_range-P.c new file mode 100644 index 00000000..2c757b07 --- /dev/null +++ b/tests/close_range-P.c @@ -0,0 +1,4 @@ +#define PATH_TRACING +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "close_range.c" diff --git a/tests/close_range-P.gen.test b/tests/close_range-P.gen.test new file mode 100755 index 00000000..85fb6a81 --- /dev/null +++ b/tests/close_range-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (close_range-P -a21 --trace=close_range -P /dev/full 7>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a21 --trace=close_range -P /dev/full 7>>/dev/full diff --git a/tests/close_range-y.c b/tests/close_range-y.c new file mode 100644 index 00000000..61b481b4 --- /dev/null +++ b/tests/close_range-y.c @@ -0,0 +1,5 @@ +#define FD0_PATH "" +#define FD7_PATH "" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "close_range.c" diff --git a/tests/close_range-y.gen.test b/tests/close_range-y.gen.test new file mode 100755 index 00000000..da08dc05 --- /dev/null +++ b/tests/close_range-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (close_range-y -a33 --trace=close_range -y 7>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a33 --trace=close_range -y 7>>/dev/full diff --git a/tests/close_range-yy.c b/tests/close_range-yy.c new file mode 100644 index 00000000..64997fc8 --- /dev/null +++ b/tests/close_range-yy.c @@ -0,0 +1,5 @@ +#define FD0_PATH ">" +#define FD7_PATH ">" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "close_range.c" diff --git a/tests/close_range-yy.gen.test b/tests/close_range-yy.gen.test new file mode 100755 index 00000000..3f3b9cba --- /dev/null +++ b/tests/close_range-yy.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (close_range-yy -a33 --trace=close_range -yy 7>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a33 --trace=close_range -yy 7>>/dev/full diff --git a/tests/close_range.c b/tests/close_range.c new file mode 100644 index 00000000..b3a3ab7d --- /dev/null +++ b/tests/close_range.c @@ -0,0 +1,147 @@ +/* + * Check decoding of close_range syscall. + * + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_close_range + +# include +# include +# include + +# ifdef HAVE_LINUX_CLOSE_RANGE_H +# include +# else +# define CLOSE_RANGE_UNSHARE (1U << 1) +# endif + +# ifndef FD0_PATH +# define FD0_PATH "" +# endif +# ifndef FD7_PATH +# define FD7_PATH "" +# endif +# ifndef SKIP_IF_PROC_IS_UNAVAILABLE +# define SKIP_IF_PROC_IS_UNAVAILABLE +# endif + +static const char *errstr; + +static long +k_close_range(const unsigned int fd1, const unsigned int fd2, const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | fd1; + const kernel_ulong_t arg2 = fill | fd2; + const kernel_ulong_t arg3 = fill | flags; + const long rc = syscall(__NR_close_range, arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +static void +xdup2(int fd1, int fd2) +{ + if (dup2(fd1, fd2) != fd2) + perror_msg_and_fail("dup2(%d, %d)", fd1, fd2); +} + +int +main(void) +{ + SKIP_IF_PROC_IS_UNAVAILABLE; + + const int fd0 = dup(0); + const int fd7 = dup(7); + const int fd7_min = MIN(7, fd7); + const int fd7_max = MAX(7, fd7); + + k_close_range(-2, -1, 1); +# ifndef PATH_TRACING + printf("close_range(-2, -1, 0x1 /* CLOSE_RANGE_??? */) = %s\n", errstr); +# endif + + k_close_range(-1, -2, 2); +# ifndef PATH_TRACING + printf("close_range(-1, -2, CLOSE_RANGE_UNSHARE) = %s\n", errstr); +# endif + + k_close_range(-3, 0, 4); +# ifndef PATH_TRACING + printf("close_range(-3, 0" FD0_PATH ", 0x4 /* CLOSE_RANGE_??? */)" + " = %s\n", errstr); +# endif + + k_close_range(0, -4, -1); +# ifndef PATH_TRACING + printf("close_range(0" FD0_PATH ", -4, CLOSE_RANGE_UNSHARE|%#x) = %s\n", + (-1U & ~CLOSE_RANGE_UNSHARE), errstr); +# endif + + k_close_range(-5, 7, 0); + printf("close_range(-5, 7" FD7_PATH ", 0) = %s\n", errstr); + + k_close_range(7, -6, 1); + printf("close_range(7" FD7_PATH ", -6, 0x1 /* CLOSE_RANGE_??? */)" + " = %s\n", errstr); + + k_close_range(7, 7, 4); + printf("close_range(7" FD7_PATH ", 7" FD7_PATH + ", 0x4 /* CLOSE_RANGE_??? */) = %s\n", errstr); + + k_close_range(-7, -7, 7); +# ifndef PATH_TRACING + printf("close_range(-7, -7, CLOSE_RANGE_UNSHARE|0x5) = %s\n", errstr); +# endif + + k_close_range(7, 0, 0); + printf("close_range(7" FD7_PATH ", 0" FD0_PATH ", 0) = %s\n", errstr); + + k_close_range(fd7, fd0, 0); + printf("close_range(%d" FD7_PATH ", %d" FD0_PATH ", 0) = %s\n", + fd7, fd0, errstr); + + if (k_close_range(0, 0, 0) == 0) + xdup2(fd0, 0); +# ifndef PATH_TRACING + printf("close_range(0" FD0_PATH ", 0" FD0_PATH ", 0) = %s\n", errstr); +# endif + + if (k_close_range(fd0, fd0, 0) == 0) + xdup2(0, fd0); +# ifndef PATH_TRACING + printf("close_range(%d" FD0_PATH ", %d" FD0_PATH ", 0) = %s\n", + fd0, fd0, errstr); +# endif + + if (k_close_range(7, 7, 0) == 0) + xdup2(fd7, 7); + printf("close_range(7" FD7_PATH ", 7" FD7_PATH ", 0) = %s\n", errstr); + + if (k_close_range(fd7, fd7, 0) == 0) + xdup2(7, fd7); + printf("close_range(%d" FD7_PATH ", %d" FD7_PATH ", 0) = %s\n", + fd7, fd7, errstr); + + if (k_close_range(fd7_max, -1, 0) == 0) + xdup2(fd7_min, fd7_max); + printf("close_range(%d" FD7_PATH ", -1, 0) = %s\n", + fd7_max, errstr); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_close_range") + +#endif diff --git a/tests/close_range.gen.test b/tests/close_range.gen.test new file mode 100755 index 00000000..19e6f4b9 --- /dev/null +++ b/tests/close_range.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (close_range -a21 7>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a21 7>>/dev/full diff --git a/tests/copy_file_range.c b/tests/copy_file_range.c index c1f142c6..f39f8afc 100644 --- a/tests/copy_file_range.c +++ b/tests/copy_file_range.c @@ -2,14 +2,13 @@ * This file is part of copy_file_range strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #if defined __NR_copy_file_range diff --git a/tests/count-f.test b/tests/count-f.test index 4f3d45f8..001008a3 100755 --- a/tests/count-f.test +++ b/tests/count-f.test @@ -2,7 +2,7 @@ # # Check whether -c counts through forks and clones properly. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ . "${srcdir=.}/init.sh" run_prog -run_strace -q -f -c $args +run_strace -e silent=attach -f -c $args match_grep exit 0 diff --git a/tests/count.test b/tests/count.test index 6abb1772..c1ba3720 100755 --- a/tests/count.test +++ b/tests/count.test @@ -3,7 +3,7 @@ # Check whether -c and -w options work. # # Copyright (c) 2014-2016 Dmitry V. Levin -# Copyright (c) 2014-2018 The strace developers. +# Copyright (c) 2014-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -29,13 +29,25 @@ grep_log() } } -grep_log ' *[^ ]+ +0\.0[^n]*nanosleep' -c -grep_log ' *[^ ]+ +0\.0[^n]*nanosleep' -c -O1 -grep_log ' *[^ ]+ +0\.0[^n]*nanosleep' -c -enanosleep -grep_log ' *[^ ]+ +0\.0[^n]*nanosleep' -c -O1 -enanosleep -grep_log ' *[^ ]+ +(1\.[01]|0\.99)[^n]*nanosleep' -cw -grep_log ' *[^ ]+ +(1\.[01]|0\.99)[^n]*nanosleep' -cw -O1 -grep_log '100\.00 +(1\.[01]|0\.99)[^n]*nanosleep' -cw -enanosleep -grep_log '100\.00 +(1\.[01]|0\.99)[^n]*nanosleep' -cw -O1 -enanosleep +GENERIC=' *[^ ]+ +0\.0[^n]*nanosleep *' +WALLCLOCK=' *[^ ]+ +(1\.[01]|0\.99)[^n]*nanosleep *' +WALLCLOCK1='100\.00 +(1\.[01]|0\.99)[^n]*nanosleep' +HALFCLOCK=' *[^ ]+ +0\.[567][^n]*nanosleep *' + +grep_log "$GENERIC" -c +grep_log "$GENERIC" -c -O1 +grep_log "$GENERIC" -c --summary-syscall-overhead=1 +grep_log "$GENERIC" -c -enanosleep +grep_log "$GENERIC" -c -O1 -enanosleep +grep_log "$WALLCLOCK" -cw +grep_log "$WALLCLOCK" -cw -O1 +grep_log "$WALLCLOCK1" -cw -enanosleep +grep_log "$WALLCLOCK1" -cw -O1 -enanosleep +grep_log "$HALFCLOCK" -cw -O4.5e2ms -enanosleep +grep_log "$HALFCLOCK" -cw --summary-syscall-overhead=4.5e2ms -enanosleep +grep_log "$HALFCLOCK" -cw -O4.5e-1s -enanosleep +grep_log "$HALFCLOCK" -cw --summary-syscall-overhead=4.5e-1s -enanosleep +grep_log "$HALFCLOCK" -cw -O456789012ns -enanosleep +grep_log "$HALFCLOCK" -cw --summary-syscall-overhead=456789012ns -enanosleep exit 0 diff --git a/tests/creat.c b/tests/creat.c index 71819d5b..6a5c08e5 100644 --- a/tests/creat.c +++ b/tests/creat.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_creat diff --git a/tests/create_tmpfile.c b/tests/create_tmpfile.c new file mode 100644 index 00000000..56f4e60c --- /dev/null +++ b/tests/create_tmpfile.c @@ -0,0 +1,46 @@ +/* + * Create a temporary file in the current directory. + * + * Copyright (c) 2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include + +#ifndef O_TMPFILE +# if defined __hppa__ +# define O_TMPFILE 040000000 +# elif defined __alpha__ +# define O_TMPFILE 0100000000 +# elif defined __sparc__ +# define O_TMPFILE 0200000000 +# else +# define O_TMPFILE 020000000 +# endif +#endif + +int +create_tmpfile(unsigned int flags) +{ + int fd = open(".", O_TMPFILE | O_DIRECTORY | O_EXCL | flags, 0600); + + if (fd < 0) { + /* + * Since every test is executed in a separate directory, + * there is no need to protect from race conditions. + */ + static const char fname[] = "create_tmpfile"; + + fd = open(fname, O_CREAT | O_EXCL | flags, 0600); + if (fd < 0) + perror_msg_and_fail("open: %s", fname); + if (unlink(fname)) + perror_msg_and_fail("unlink: %s", fname); + } + + return fd; +} diff --git a/tests/delay.c b/tests/delay.c index fb19b157..1b54c443 100644 --- a/tests/delay.c +++ b/tests/delay.c @@ -1,13 +1,14 @@ /* * Check delay injection. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include #include #include #include @@ -16,7 +17,7 @@ #include #include #include -#include +#include "scno.h" static int64_t usecs_from_tv(const struct timeval *const tv) @@ -30,6 +31,22 @@ usecs_from_ts(const struct timespec *const ts) return (int64_t) ts->tv_sec * 1000000 + ts->tv_nsec / 1000; } +static void +check_(const int64_t got, const bool ge, const int64_t orig, const int nproc, + const int exitcode) +{ + const int64_t thresh = (orig * (ge ? nproc - 1 : nproc + 1)) / nproc; + + if (ge ? got >= thresh : got <= thresh) + return; + + fprintf(stderr, "Got delay of %" PRId64 ", %s than threshold value of " + "%" PRId64 " (expected nominal delay value is %" PRId64 + ")\n", got, ge ? "less" : "more", thresh, orig); + + _exit(exitcode); +} + static void check_delay(const struct timeval *const tv0, const struct timespec *const ts, @@ -42,17 +59,10 @@ check_delay(const struct timeval *const tv0, const int64_t us = usecs_from_ts(ts); const int64_t us1 = usecs_from_tv(tv1); - if (us - us0 < delay_exit * (nproc - 1) / nproc) - _exit(1); - - if (us - us0 > delay_exit * (nproc + 1) / nproc) - _exit(2); - - if (us1 - us < delay_enter * (nproc - 1) / nproc) - _exit(3); - - if (us1 - us > delay_enter * (nproc + 1) / nproc) - _exit(4); + check_(us - us0, true, delay_exit, nproc, 1); + check_(us - us0, false, delay_exit, nproc, 2); + check_(us1 - us, true, delay_enter, nproc, 3); + check_(us1 - us, false, delay_enter, nproc, 4); } static void diff --git a/tests/delay.test b/tests/delay.test index df8552c7..f74e27f1 100755 --- a/tests/delay.test +++ b/tests/delay.test @@ -2,15 +2,22 @@ # # Check delay injection. # -# Copyright (c) 2018 The strace developers. +# Copyright (c) 2018-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" -delay_enter=800000 -delay_exit=1600000 -run_strace -f -r -egettimeofday \ - -einject=gettimeofday:delay_enter=$delay_enter:delay_exit=$delay_exit \ - ../delay 4 $delay_enter $delay_exit +while read -r denter dexit denter_us dexit_us; do + [ -n "$denter" ] || continue + + run_strace --follow-forks -r -egettimeofday \ + -einject=gettimeofday:delay_enter=$denter:delay_exit=$dexit \ + ../delay 4 $denter_us $dexit_us +done <<-EOF + 800000 1600000 800000 1600000 + 8e5 1.6s 800000 1600000 + 800ms 1.6e+6us 800000 1600000 + +8e8ns .16E7 800000 1600000 +EOF diff --git a/tests/delete_module.c b/tests/delete_module.c index 3b2614c1..ad2bca67 100644 --- a/tests/delete_module.c +++ b/tests/delete_module.c @@ -2,7 +2,7 @@ * Check decoding of delete_module syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_delete_module) diff --git a/tests/dev--decode-fds-dev.c b/tests/dev--decode-fds-dev.c new file mode 100644 index 00000000..eb8eb5e8 --- /dev/null +++ b/tests/dev--decode-fds-dev.c @@ -0,0 +1,2 @@ +#define PRINT_DEVNUM 1 +#include "dev-yy.c" diff --git a/tests/dev--decode-fds-dev.gen.test b/tests/dev--decode-fds-dev.gen.test new file mode 100755 index 00000000..92983d0e --- /dev/null +++ b/tests/dev--decode-fds-dev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dev--decode-fds-dev -a30 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" -e decode-fds=dev); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a30 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" -e decode-fds=dev diff --git a/tests/dev--decode-fds-path.c b/tests/dev--decode-fds-path.c new file mode 100644 index 00000000..2a5fa129 --- /dev/null +++ b/tests/dev--decode-fds-path.c @@ -0,0 +1,2 @@ +#define PRINT_DEVNUM 0 +#include "dev-yy.c" diff --git a/tests/dev--decode-fds-path.gen.test b/tests/dev--decode-fds-path.gen.test new file mode 100755 index 00000000..0be131ed --- /dev/null +++ b/tests/dev--decode-fds-path.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dev--decode-fds-path -a19 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" -e decode-fds=path); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a19 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" -e decode-fds=path diff --git a/tests/dev--decode-fds-socket.c b/tests/dev--decode-fds-socket.c new file mode 100644 index 00000000..2a5fa129 --- /dev/null +++ b/tests/dev--decode-fds-socket.c @@ -0,0 +1,2 @@ +#define PRINT_DEVNUM 0 +#include "dev-yy.c" diff --git a/tests/dev--decode-fds-socket.gen.test b/tests/dev--decode-fds-socket.gen.test new file mode 100755 index 00000000..56085642 --- /dev/null +++ b/tests/dev--decode-fds-socket.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dev--decode-fds-socket -a19 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" --decode-fds=socket); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a19 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" --decode-fds=socket diff --git a/tests/dev-yy.c b/tests/dev-yy.c index b9f55fa4..0ffb0c4c 100644 --- a/tests/dev-yy.c +++ b/tests/dev-yy.c @@ -1,7 +1,7 @@ /* * Check printing of character/block device numbers in -yy mode. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,12 +12,22 @@ #include #include -#include +#include "scno.h" #include #include +#ifndef PRINT_DEVNUM +# define PRINT_DEVNUM 1 +#endif + +#if PRINT_DEVNUM +# define DEV_FMT "<%s<%s %u:%u>>" +#else +# define DEV_FMT "<%s>" +#endif + #if defined __NR_openat && defined O_PATH int @@ -47,10 +57,13 @@ main(void) printf("openat(AT_FDCWD, \"%s\", O_RDONLY|O_PATH) = %s", checks[i].path, sprintrc(fd)); if (fd >= 0) - printf("<%s<%s %u:%u>>", - checks[i].path, - checks[i].blk ? "block" : "char", - checks[i].major, checks[i].minor); + printf(DEV_FMT, + checks[i].path +# if PRINT_DEVNUM + , checks[i].blk ? "block" : "char", + checks[i].major, checks[i].minor +# endif + ); puts(""); if (fd < 0) { @@ -63,9 +76,13 @@ main(void) int rc = fsync(fd); - printf("fsync(%ld<%s<%s %u:%u>>) = %s\n", - fd, checks[i].path, checks[i].blk ? "block" : "char", - checks[i].major, checks[i].minor, sprintrc(rc)); + printf("fsync(%ld" DEV_FMT ") = %s\n", + fd, checks[i].path, +# if PRINT_DEVNUM + checks[i].blk ? "block" : "char", + checks[i].major, checks[i].minor, +# endif + sprintrc(rc)); close(fd); } diff --git a/tests/dup-P.c b/tests/dup-P.c new file mode 100644 index 00000000..c65def8f --- /dev/null +++ b/tests/dup-P.c @@ -0,0 +1,4 @@ +#define PATH_TRACING +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "dup.c" diff --git a/tests/dup-P.gen.test b/tests/dup-P.gen.test new file mode 100755 index 00000000..5d170a39 --- /dev/null +++ b/tests/dup-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup-P -a7 --trace=dup -P /dev/full 9>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a7 --trace=dup -P /dev/full 9>>/dev/full diff --git a/tests/dup-y.c b/tests/dup-y.c new file mode 100644 index 00000000..285f20af --- /dev/null +++ b/tests/dup-y.c @@ -0,0 +1,5 @@ +#define FD0_PATH "" +#define FD9_PATH "" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "dup.c" diff --git a/tests/dup-y.gen.test b/tests/dup-y.gen.test new file mode 100755 index 00000000..b29c05fe --- /dev/null +++ b/tests/dup-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup-y -a8 --trace=dup -y 9>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a8 --trace=dup -y 9>>/dev/full diff --git a/tests/dup-yy.c b/tests/dup-yy.c new file mode 100644 index 00000000..2e8175d0 --- /dev/null +++ b/tests/dup-yy.c @@ -0,0 +1,5 @@ +#define FD0_PATH ">" +#define FD9_PATH ">" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "dup.c" diff --git a/tests/dup-yy.gen.test b/tests/dup-yy.gen.test new file mode 100755 index 00000000..6f73d83a --- /dev/null +++ b/tests/dup-yy.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup-yy -a8 --trace=dup -yy 9>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a8 --trace=dup -yy 9>>/dev/full diff --git a/tests/dup.c b/tests/dup.c index 5cf5df7c..d668e95e 100644 --- a/tests/dup.c +++ b/tests/dup.c @@ -1,20 +1,72 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Check decoding of dup syscall. + * + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include +#include "scno.h" + +#ifdef __NR_dup + +# include +# include + +# ifndef FD0_PATH +# define FD0_PATH "" +# endif +# ifndef FD9_PATH +# define FD9_PATH "" +# endif +# ifndef SKIP_IF_PROC_IS_UNAVAILABLE +# define SKIP_IF_PROC_IS_UNAVAILABLE +# endif + +static const char *errstr; + +static long +k_dup(const unsigned int fd) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | fd; + const long rc = syscall(__NR_dup, arg1, bad, bad, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} int main(void) { - int rc = dup(-1); - printf("dup(-1) = %d %s (%m)\n", rc, errno2name()); + SKIP_IF_PROC_IS_UNAVAILABLE; + + k_dup(-1); +# ifndef PATH_TRACING + printf("dup(-1) = %s\n", errstr); +# endif + + int d1 = k_dup(0); +# ifndef PATH_TRACING + printf("dup(0" FD0_PATH ") = %d" FD0_PATH "\n", d1); +# endif + + int d2 = k_dup(d1); +# ifndef PATH_TRACING + printf("dup(%d" FD0_PATH ") = %d" FD0_PATH "\n", d1, d2); +# endif + + d2 = k_dup(9); + printf("dup(9" FD9_PATH ") = %d" FD9_PATH "\n", d2); puts("+++ exited with 0 +++"); return 0; } + +#else + +SKIP_MAIN_UNDEFINED("__NR_dup") + +#endif diff --git a/tests/dup.gen.test b/tests/dup.gen.test index e559cdbc..6e9a4f79 100755 --- a/tests/dup.gen.test +++ b/tests/dup.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup -a8 ); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup -a7 9>>/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a8 +run_strace_match_diff -a7 9>>/dev/full diff --git a/tests/dup2-P.c b/tests/dup2-P.c new file mode 100644 index 00000000..f9603eab --- /dev/null +++ b/tests/dup2-P.c @@ -0,0 +1,4 @@ +#define PATH_TRACING +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "dup2.c" diff --git a/tests/dup2-P.gen.test b/tests/dup2-P.gen.test new file mode 100755 index 00000000..98df93e6 --- /dev/null +++ b/tests/dup2-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup2-P -a11 --trace=dup2 -P /dev/full 9>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a11 --trace=dup2 -P /dev/full 9>>/dev/full diff --git a/tests/dup2-y.c b/tests/dup2-y.c new file mode 100644 index 00000000..6b64663c --- /dev/null +++ b/tests/dup2-y.c @@ -0,0 +1,5 @@ +#define FD0_PATH "" +#define FD9_PATH "" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "dup2.c" diff --git a/tests/dup2-y.gen.test b/tests/dup2-y.gen.test new file mode 100755 index 00000000..79d89c53 --- /dev/null +++ b/tests/dup2-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup2-y -a13 --trace=dup2 -y 9>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a13 --trace=dup2 -y 9>>/dev/full diff --git a/tests/dup2-yy.c b/tests/dup2-yy.c new file mode 100644 index 00000000..6040579c --- /dev/null +++ b/tests/dup2-yy.c @@ -0,0 +1,5 @@ +#define FD0_PATH ">" +#define FD9_PATH ">" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "dup2.c" diff --git a/tests/dup2-yy.gen.test b/tests/dup2-yy.gen.test new file mode 100755 index 00000000..1c7ff8ea --- /dev/null +++ b/tests/dup2-yy.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup2-yy -a13 --trace=dup2 -yy 9>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a13 --trace=dup2 -yy 9>>/dev/full diff --git a/tests/dup2.c b/tests/dup2.c index fba8fca5..ec735e92 100644 --- a/tests/dup2.c +++ b/tests/dup2.c @@ -1,27 +1,117 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Check decoding of dup2 syscall. + * + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_dup2 # include # include +# ifndef FD0_PATH +# define FD0_PATH "" +# endif +# ifndef FD9_PATH +# define FD9_PATH "" +# endif +# ifndef SKIP_IF_PROC_IS_UNAVAILABLE +# define SKIP_IF_PROC_IS_UNAVAILABLE +# endif + +static const char *errstr; + +static long +k_dup2(const unsigned int fd1, const unsigned int fd2) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | fd1; + const kernel_ulong_t arg2 = fill | fd2; + const long rc = syscall(__NR_dup2, arg1, arg2, bad, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + int main(void) { - const long int fd_old = (long int) 0xdeadbeefffffffffULL; - const long int fd_new = (long int) 0xdeadbeeffffffffeULL; + SKIP_IF_PROC_IS_UNAVAILABLE; + + int fd0 = dup(0); + int fd9 = dup(9); + + if (k_dup2(0, 0)) + perror_msg_and_skip("dup2"); +# ifndef PATH_TRACING + printf("dup2(0" FD0_PATH ", 0" FD0_PATH ") = 0" FD0_PATH "\n"); +# endif + + k_dup2(-1, -2); +# ifndef PATH_TRACING + printf("dup2(-1, -2) = %s\n", errstr); +# endif + + k_dup2(-2, -1); +# ifndef PATH_TRACING + printf("dup2(-2, -1) = %s\n", errstr); +# endif + + k_dup2(-3, 0); +# ifndef PATH_TRACING + printf("dup2(-3, 0" FD0_PATH ") = %s\n", errstr); +# endif + + k_dup2(0, -4); +# ifndef PATH_TRACING + printf("dup2(0" FD0_PATH ", -4) = %s\n", errstr); +# endif + + k_dup2(-5, 9); + printf("dup2(-5, 9" FD9_PATH ") = %s\n", errstr); + + k_dup2(9, -6); + printf("dup2(9" FD9_PATH ", -6) = %s\n", errstr); + + k_dup2(9, 9); + printf("dup2(9" FD9_PATH ", 9" FD9_PATH ") = 9" FD9_PATH "\n"); + + k_dup2(0, fd0); +# ifndef PATH_TRACING + printf("dup2(0" FD0_PATH ", %d" FD0_PATH ") = %d" FD0_PATH "\n", + fd0, fd0); +# endif + + k_dup2(9, fd9); + printf("dup2(9" FD9_PATH ", %d" FD9_PATH ") = %d" FD9_PATH "\n", + fd9, fd9); + + k_dup2(0, fd9); + printf("dup2(0" FD0_PATH ", %d" FD9_PATH ") = %d" FD0_PATH "\n", + fd9, fd9); + + k_dup2(9, fd0); + printf("dup2(9" FD9_PATH ", %d" FD0_PATH ") = %d" FD9_PATH "\n", + fd0, fd0); + + close(fd0); + close(fd9); + + k_dup2(0, fd0); +# ifndef PATH_TRACING + printf("dup2(0" FD0_PATH ", %d) = %d" FD0_PATH "\n", + fd0, fd0); +# endif - long rc = syscall(__NR_dup2, fd_old, fd_new); - printf("dup2(%d, %d) = %ld %s (%m)\n", - (int) fd_old, (int) fd_new, rc, errno2name()); + k_dup2(9, fd9); + printf("dup2(9" FD9_PATH ", %d) = %d" FD9_PATH "\n", + fd9, fd9); puts("+++ exited with 0 +++"); return 0; diff --git a/tests/dup2.gen.test b/tests/dup2.gen.test index 6a6d2f58..6d2c0688 100755 --- a/tests/dup2.gen.test +++ b/tests/dup2.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup2 -a13 ); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup2 -a11 9>>/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a13 +run_strace_match_diff -a11 9>>/dev/full diff --git a/tests/dup3-P.c b/tests/dup3-P.c new file mode 100644 index 00000000..09ddb93e --- /dev/null +++ b/tests/dup3-P.c @@ -0,0 +1,4 @@ +#define PATH_TRACING +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "dup3.c" diff --git a/tests/dup3-P.gen.test b/tests/dup3-P.gen.test new file mode 100755 index 00000000..ad77199c --- /dev/null +++ b/tests/dup3-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup3-P -a13 --trace=dup3 -P /dev/full 7>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a13 --trace=dup3 -P /dev/full 7>>/dev/full diff --git a/tests/dup3-y.c b/tests/dup3-y.c new file mode 100644 index 00000000..730a9200 --- /dev/null +++ b/tests/dup3-y.c @@ -0,0 +1,5 @@ +#define FD0_PATH "" +#define FD7_PATH "" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "dup3.c" diff --git a/tests/dup3-y.gen.test b/tests/dup3-y.gen.test new file mode 100755 index 00000000..0c74ee0c --- /dev/null +++ b/tests/dup3-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup3-y -a15 --trace=dup3 -y 7>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a15 --trace=dup3 -y 7>>/dev/full diff --git a/tests/dup3-yy.c b/tests/dup3-yy.c new file mode 100644 index 00000000..24d7988b --- /dev/null +++ b/tests/dup3-yy.c @@ -0,0 +1,5 @@ +#define FD0_PATH ">" +#define FD7_PATH ">" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "dup3.c" diff --git a/tests/dup3-yy.gen.test b/tests/dup3-yy.gen.test new file mode 100755 index 00000000..6581ef5c --- /dev/null +++ b/tests/dup3-yy.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup3-yy -a15 --trace=dup3 -yy 7>>/dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a15 --trace=dup3 -yy 7>>/dev/full diff --git a/tests/dup3.c b/tests/dup3.c index 741e06f8..93025724 100644 --- a/tests/dup3.c +++ b/tests/dup3.c @@ -1,28 +1,140 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Check decoding of dup3 syscall. + * + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include +#include "scno.h" -#if defined __NR_dup3 && defined O_CLOEXEC +#ifdef __NR_dup3 +# include # include # include +# ifndef O_CLOEXEC +# if defined __alpha__ || defined __hppa__ +# define O_CLOEXEC 010000000 +# elif defined __sparc__ +# define O_CLOEXEC 020000000 +# else +# define O_CLOEXEC 02000000 +# endif +# endif /* !O_CLOEXEC */ + +# ifndef FD0_PATH +# define FD0_PATH "" +# endif +# ifndef FD7_PATH +# define FD7_PATH "" +# endif +# ifndef SKIP_IF_PROC_IS_UNAVAILABLE +# define SKIP_IF_PROC_IS_UNAVAILABLE +# endif + +static const char *errstr; + +static long +k_dup3(const unsigned int fd1, const unsigned int fd2, const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | fd1; + const kernel_ulong_t arg2 = fill | fd2; + const kernel_ulong_t arg3 = fill | flags; + const long rc = syscall(__NR_dup3, arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + int main(void) { - const long int fd_old = (long int) 0xdeadbeefffffffffULL; - const long int fd_new = (long int) 0xdeadbeeffffffffeULL; + SKIP_IF_PROC_IS_UNAVAILABLE; + + int fd0 = dup(0); + int fd7 = dup(7); + + k_dup3(0, 0, 0); +# ifndef PATH_TRACING + printf("dup3(0" FD0_PATH ", 0" FD0_PATH ", 0) = %s\n", errstr); +# endif + + k_dup3(-1, -2, O_CLOEXEC); +# ifndef PATH_TRACING + printf("dup3(-1, -2, O_CLOEXEC) = %s\n", errstr); +# endif + + k_dup3(-2, -1, O_TRUNC); +# ifndef PATH_TRACING + printf("dup3(-2, -1, O_TRUNC) = %s\n", errstr); +# endif + + k_dup3(-3, 0, O_TRUNC | O_CLOEXEC); +# ifndef PATH_TRACING + printf("dup3(-3, 0" FD0_PATH ", O_TRUNC|O_CLOEXEC) = %s\n", errstr); +# endif + + k_dup3(0, -4, O_RDONLY); +# ifndef PATH_TRACING + printf("dup3(0" FD0_PATH ", -4, 0) = %s\n", errstr); +# endif + + k_dup3(-5, 7, O_WRONLY); + printf("dup3(-5, 7" FD7_PATH ", 0x1 /* O_??? */) = %s\n", errstr); + + k_dup3(7, -6, O_RDWR); + printf("dup3(7" FD7_PATH ", -6, 0x2 /* O_??? */) = %s\n", errstr); + + k_dup3(7, 7, O_CLOEXEC); + printf("dup3(7" FD7_PATH ", 7" FD7_PATH ", O_CLOEXEC) = %s\n", errstr); + + k_dup3(-7, -7, 7); +# ifndef PATH_TRACING + printf("dup3(-7, -7, %s) = %s\n", +# ifdef __sparc__ + "O_NDELAY|0x3" +# else + "0x7 /* O_??? */" +# endif + , errstr); +# endif + + if (k_dup3(0, fd0, O_CLOEXEC) != fd0) + perror_msg_and_skip("dup3"); +# ifndef PATH_TRACING + printf("dup3(0" FD0_PATH ", %d" FD0_PATH ", O_CLOEXEC) = %d" FD0_PATH + "\n", fd0, fd0); +# endif + + k_dup3(7, fd7, 0); + printf("dup3(7" FD7_PATH ", %d" FD7_PATH ", 0) = %d" FD7_PATH + "\n", fd7, fd7); + + k_dup3(0, fd7, O_CLOEXEC); + printf("dup3(0" FD0_PATH ", %d" FD7_PATH ", O_CLOEXEC) = %d" FD0_PATH + "\n", fd7, fd7); + + k_dup3(7, fd0, 0); + printf("dup3(7" FD7_PATH ", %d" FD0_PATH ", 0) = %d" FD7_PATH + "\n", fd0, fd0); + + close(fd0); + close(fd7); + + k_dup3(0, fd0, O_CLOEXEC); +# ifndef PATH_TRACING + printf("dup3(0" FD0_PATH ", %d, O_CLOEXEC) = %d" FD0_PATH "\n", + fd0, fd0); +# endif - long rc = syscall(__NR_dup3, fd_old, fd_new, O_CLOEXEC); - printf("dup3(%d, %d, O_CLOEXEC) = %ld %s (%m)\n", - (int) fd_old, (int) fd_new, rc, errno2name()); + k_dup3(7, fd7, 0); + printf("dup3(7" FD7_PATH ", %d, 0) = %d" FD7_PATH "\n", + fd7, fd7); puts("+++ exited with 0 +++"); return 0; @@ -30,6 +142,6 @@ main(void) #else -SKIP_MAIN_UNDEFINED("__NR_dup3 && O_CLOEXEC") +SKIP_MAIN_UNDEFINED("__NR_dup3") #endif diff --git a/tests/dup3.gen.test b/tests/dup3.gen.test index 776b9a79..f5aeb036 100755 --- a/tests/dup3.gen.test +++ b/tests/dup3.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup3 -a24 ); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (dup3 -a13 7>>/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a24 +run_strace_match_diff -a13 7>>/dev/full diff --git a/tests/epoll_create.c b/tests/epoll_create.c index 42cc8d04..9b808cce 100644 --- a/tests/epoll_create.c +++ b/tests/epoll_create.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_epoll_create diff --git a/tests/epoll_create1.c b/tests/epoll_create1.c index 81b33825..f01867cc 100644 --- a/tests/epoll_create1.c +++ b/tests/epoll_create1.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -7,7 +8,7 @@ #include "tests.h" #include -#include +#include "scno.h" #if defined __NR_epoll_create1 && defined O_CLOEXEC diff --git a/tests/epoll_ctl.c b/tests/epoll_ctl.c index 85a288cd..b1e7a063 100644 --- a/tests/epoll_ctl.c +++ b/tests/epoll_ctl.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_epoll_ctl diff --git a/tests/epoll_pwait.c b/tests/epoll_pwait.c index ce95e6dc..1e283463 100644 --- a/tests/epoll_pwait.c +++ b/tests/epoll_pwait.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_epoll_pwait diff --git a/tests/epoll_wait.c b/tests/epoll_wait.c index 3981905d..21c48511 100644 --- a/tests/epoll_wait.c +++ b/tests/epoll_wait.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_epoll_wait diff --git a/tests/eventfd.c b/tests/eventfd.c index 75d33dd7..4c78dced 100644 --- a/tests/eventfd.c +++ b/tests/eventfd.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -8,7 +9,7 @@ #include "tests.h" #include #include -#include +#include "scno.h" #if defined __NR_eventfd2 && defined O_CLOEXEC diff --git a/tests/execveat.c b/tests/execveat.c index 629a69ab..c8b1f4cd 100644 --- a/tests/execveat.c +++ b/tests/execveat.c @@ -2,14 +2,13 @@ * This file is part of execveat strace test. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_execveat diff --git a/tests/faccessat-P.c b/tests/faccessat-P.c new file mode 100644 index 00000000..0024d554 --- /dev/null +++ b/tests/faccessat-P.c @@ -0,0 +1,4 @@ +#define PATH_TRACING +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "faccessat.c" diff --git a/tests/faccessat-P.gen.test b/tests/faccessat-P.gen.test new file mode 100755 index 00000000..9210a5fc --- /dev/null +++ b/tests/faccessat-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (faccessat-P -a23 --trace=faccessat -P /dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a23 --trace=faccessat -P /dev/full diff --git a/tests/faccessat-y.c b/tests/faccessat-y.c new file mode 100644 index 00000000..61f67d73 --- /dev/null +++ b/tests/faccessat-y.c @@ -0,0 +1,4 @@ +#define FD_PATH "" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "faccessat.c" diff --git a/tests/faccessat-y.gen.test b/tests/faccessat-y.gen.test new file mode 100755 index 00000000..bc0db7f7 --- /dev/null +++ b/tests/faccessat-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (faccessat-y +faccessat.test -a24 -y); do not edit. +set -- -a24 -y +. "${srcdir=.}/faccessat.test" diff --git a/tests/faccessat-yy.c b/tests/faccessat-yy.c new file mode 100644 index 00000000..b516240a --- /dev/null +++ b/tests/faccessat-yy.c @@ -0,0 +1,4 @@ +#define FD_PATH ">" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "faccessat.c" diff --git a/tests/faccessat-yy.gen.test b/tests/faccessat-yy.gen.test new file mode 100755 index 00000000..e4a82246 --- /dev/null +++ b/tests/faccessat-yy.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (faccessat-yy +faccessat.test -a24 -yy); do not edit. +set -- -a24 -yy +. "${srcdir=.}/faccessat.test" diff --git a/tests/faccessat.c b/tests/faccessat.c index 6d95555a..b5498bc7 100644 --- a/tests/faccessat.c +++ b/tests/faccessat.c @@ -1,27 +1,144 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Check decoding of faccessat syscall. + * + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_faccessat +# include # include # include +# ifndef FD_PATH +# define FD_PATH "" +# endif +# ifndef SKIP_IF_PROC_IS_UNAVAILABLE +# define SKIP_IF_PROC_IS_UNAVAILABLE +# endif + +static const char *errstr; + +static long +k_faccessat(const unsigned int dirfd, + const void *const pathname, + const unsigned int mode) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + + const kernel_ulong_t arg1 = fill | dirfd; + const kernel_ulong_t arg2 = (uintptr_t) pathname; + const kernel_ulong_t arg3 = fill | mode; + const long rc = syscall(__NR_faccessat, + arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + int main(void) { - static const char sample[] = "faccessat.sample"; - const long int fd = (long int) 0xdeadbeefffffffffULL; + SKIP_IF_PROC_IS_UNAVAILABLE; + + TAIL_ALLOC_OBJECT_CONST_PTR(const char, unterminated); + char *unterminated_str; + if (asprintf(&unterminated_str, "%p", unterminated) < 0) + perror_msg_and_fail("asprintf"); + const void *const efault = unterminated + 1; + char *efault_str; + if (asprintf(&efault_str, "%p", efault) < 0) + perror_msg_and_fail("asprintf"); + + typedef struct { + char sym; + char null; + } sym_null; + + TAIL_ALLOC_OBJECT_CONST_PTR(sym_null, dot); + dot->sym = '.'; + dot->null = '\0'; + const char *const null = &dot->null; + + TAIL_ALLOC_OBJECT_CONST_PTR(sym_null, slash); + slash->sym = '/'; + slash->null = '\0'; + + static const char path[] = "/dev/full"; + const char *const fd_path = tail_memdup(path, sizeof(path)); + int fd = open(path, O_WRONLY); + if (fd < 0) + perror_msg_and_fail("open: %s", path); + char *fd_str; + if (asprintf(&fd_str, "%d%s", fd, FD_PATH) < 0) + perror_msg_and_fail("asprintf"); + char *path_quoted; + if (asprintf(&path_quoted, "\"%s\"", path) < 0) + perror_msg_and_fail("asprintf"); + + struct { + int val; + const char *str; + } dirfds[] = { + { ARG_STR(-1) }, + { -100, "AT_FDCWD" }, + { fd, fd_str }, + }, modes[] = { + { ARG_STR(F_OK) }, + { ARG_STR(R_OK) }, + { ARG_STR(W_OK) }, + { ARG_STR(X_OK) }, + { ARG_STR(R_OK|W_OK) }, + { ARG_STR(R_OK|X_OK) }, + { ARG_STR(W_OK|X_OK) }, + { ARG_STR(R_OK|W_OK|X_OK) }, + { 8, "0x8 /* ?_OK */" }, + { -1, "R_OK|W_OK|X_OK|0xfffffff8" }, + }; + + struct { + const void *val; + const char *str; + } paths[] = { + { 0, "NULL" }, + { efault, efault_str }, + { unterminated, unterminated_str }, + { null, "\"\"" }, + { &dot->sym, "\".\"" }, + { &slash->sym, "\"/\"" }, + { fd_path, path_quoted }, + }; - long rc = syscall(__NR_faccessat, fd, sample, F_OK); - printf("faccessat(%d, \"%s\", F_OK) = %ld %s (%m)\n", - (int) fd, sample, rc, errno2name()); + for (unsigned int dirfd_i = 0; + dirfd_i < ARRAY_SIZE(dirfds); + ++dirfd_i) { + for (unsigned int path_i = 0; + path_i < ARRAY_SIZE(paths); + ++path_i) { + for (unsigned int mode_i = 0; + mode_i < ARRAY_SIZE(modes); + ++mode_i) { + k_faccessat(dirfds[dirfd_i].val, + paths[path_i].val, + modes[mode_i].val); +# ifdef PATH_TRACING + if (dirfds[dirfd_i].val == fd || + paths[path_i].val == fd_path) +# endif + printf("faccessat(%s, %s, %s) = %s\n", + dirfds[dirfd_i].str, + paths[path_i].str, + modes[mode_i].str, + errstr); + } + } + } puts("+++ exited with 0 +++"); return 0; diff --git a/tests/faccessat.gen.test b/tests/faccessat.gen.test deleted file mode 100755 index 4ccec2aa..00000000 --- a/tests/faccessat.gen.test +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (faccessat -P $NAME.sample); do not edit. -. "${srcdir=.}/init.sh" -run_strace_match_diff -P $NAME.sample diff --git a/tests/faccessat.test b/tests/faccessat.test new file mode 100755 index 00000000..7b368493 --- /dev/null +++ b/tests/faccessat.test @@ -0,0 +1,19 @@ +#!/bin/sh +# +# Check decoding of faccessat syscall. +# +# Copyright (c) 2020 Dmitry V. Levin +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +check_prog sed + +run_prog > /dev/null +run_strace -a23 --trace=faccessat "$@" $args > "$EXP" + +# Filter out faccessat() calls made by ld.so and libc. +sed -n '/^faccessat(-1, NULL,/,$p' < "$LOG" > "$OUT" +match_diff "$OUT" "$EXP" diff --git a/tests/faccessat2-P.c b/tests/faccessat2-P.c new file mode 100644 index 00000000..0e6af948 --- /dev/null +++ b/tests/faccessat2-P.c @@ -0,0 +1,4 @@ +#define PATH_TRACING +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "faccessat2.c" diff --git a/tests/faccessat2-P.gen.test b/tests/faccessat2-P.gen.test new file mode 100755 index 00000000..341f4a58 --- /dev/null +++ b/tests/faccessat2-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (faccessat2-P -a27 --trace=faccessat2 -P /dev/full); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a27 --trace=faccessat2 -P /dev/full diff --git a/tests/faccessat2-y.c b/tests/faccessat2-y.c new file mode 100644 index 00000000..9337cb5d --- /dev/null +++ b/tests/faccessat2-y.c @@ -0,0 +1,4 @@ +#define FD_PATH "" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "faccessat2.c" diff --git a/tests/faccessat2-y.gen.test b/tests/faccessat2-y.gen.test new file mode 100755 index 00000000..caeeb72a --- /dev/null +++ b/tests/faccessat2-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (faccessat2-y +faccessat2.test -a28 -y); do not edit. +set -- -a28 -y +. "${srcdir=.}/faccessat2.test" diff --git a/tests/faccessat2-yy.c b/tests/faccessat2-yy.c new file mode 100644 index 00000000..a23f3d41 --- /dev/null +++ b/tests/faccessat2-yy.c @@ -0,0 +1,4 @@ +#define FD_PATH ">" +#define SKIP_IF_PROC_IS_UNAVAILABLE skip_if_unavailable("/proc/self/fd/") + +#include "faccessat2.c" diff --git a/tests/faccessat2-yy.gen.test b/tests/faccessat2-yy.gen.test new file mode 100755 index 00000000..ecaeef2d --- /dev/null +++ b/tests/faccessat2-yy.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (faccessat2-yy +faccessat2.test -a28 -yy); do not edit. +set -- -a28 -yy +. "${srcdir=.}/faccessat2.test" diff --git a/tests/faccessat2.c b/tests/faccessat2.c new file mode 100644 index 00000000..74d17cd5 --- /dev/null +++ b/tests/faccessat2.c @@ -0,0 +1,174 @@ +/* + * Check decoding of faccessat2 syscall. + * + * Copyright (c) 2016-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_faccessat2 + +# include +# include +# include + +# define XLAT_MACROS_ONLY +# include "xlat/faccessat_flags.h" +# undef XLAT_MACROS_ONLY + +# ifndef FD_PATH +# define FD_PATH "" +# endif +# ifndef SKIP_IF_PROC_IS_UNAVAILABLE +# define SKIP_IF_PROC_IS_UNAVAILABLE +# endif + +static const char *errstr; + +static long +k_faccessat2(const unsigned int dirfd, + const void *const pathname, + const unsigned int mode, + const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + + const kernel_ulong_t arg1 = fill | dirfd; + const kernel_ulong_t arg2 = (uintptr_t) pathname; + const kernel_ulong_t arg3 = fill | mode; + const kernel_ulong_t arg4 = fill | flags; + const long rc = syscall(__NR_faccessat2, + arg1, arg2, arg3, arg4, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + SKIP_IF_PROC_IS_UNAVAILABLE; + + TAIL_ALLOC_OBJECT_CONST_PTR(const char, unterminated); + char *unterminated_str; + if (asprintf(&unterminated_str, "%p", unterminated) < 0) + perror_msg_and_fail("asprintf"); + const void *const efault = unterminated + 1; + char *efault_str; + if (asprintf(&efault_str, "%p", efault) < 0) + perror_msg_and_fail("asprintf"); + + typedef struct { + char sym; + char null; + } sym_null; + + TAIL_ALLOC_OBJECT_CONST_PTR(sym_null, dot); + dot->sym = '.'; + dot->null = '\0'; + const char *const null = &dot->null; + + TAIL_ALLOC_OBJECT_CONST_PTR(sym_null, slash); + slash->sym = '/'; + slash->null = '\0'; + + static const char path[] = "/dev/full"; + const char *const fd_path = tail_memdup(path, sizeof(path)); + int fd = open(path, O_WRONLY); + if (fd < 0) + perror_msg_and_fail("open: %s", path); + char *fd_str; + if (asprintf(&fd_str, "%d%s", fd, FD_PATH) < 0) + perror_msg_and_fail("asprintf"); + char *path_quoted; + if (asprintf(&path_quoted, "\"%s\"", path) < 0) + perror_msg_and_fail("asprintf"); + + struct { + int val; + const char *str; + } dirfds[] = { + { ARG_STR(-1) }, + { -100, "AT_FDCWD" }, + { fd, fd_str }, + }, modes[] = { + { ARG_STR(F_OK) }, + { ARG_STR(R_OK) }, + { ARG_STR(W_OK) }, + { ARG_STR(X_OK) }, + { ARG_STR(R_OK|W_OK) }, + { ARG_STR(R_OK|X_OK) }, + { ARG_STR(W_OK|X_OK) }, + { ARG_STR(R_OK|W_OK|X_OK) }, + { 8, "0x8 /* ?_OK */" }, + { -1, "R_OK|W_OK|X_OK|0xfffffff8" }, + }, flags[] = { + { ARG_STR(0) }, + { ARG_STR(AT_SYMLINK_NOFOLLOW) }, + { ARG_STR(AT_EACCESS) }, + { ARG_STR(AT_EMPTY_PATH) }, + { ARG_STR(AT_SYMLINK_NOFOLLOW|AT_EACCESS) }, + { ARG_STR(AT_SYMLINK_NOFOLLOW|AT_EMPTY_PATH) }, + { ARG_STR(AT_EACCESS|AT_EMPTY_PATH) }, + { ARG_STR(AT_SYMLINK_NOFOLLOW|AT_EACCESS|AT_EMPTY_PATH) }, + { 1, "0x1 /* AT_??? */" }, + { -1, "AT_SYMLINK_NOFOLLOW|AT_EACCESS|AT_EMPTY_PATH|0xffffecff" }, + }; + + struct { + const void *val; + const char *str; + } paths[] = { + { 0, "NULL" }, + { efault, efault_str }, + { unterminated, unterminated_str }, + { null, "\"\"" }, + { &dot->sym, "\".\"" }, + { &slash->sym, "\"/\"" }, + { fd_path, path_quoted }, + }; + + for (unsigned int dirfd_i = 0; + dirfd_i < ARRAY_SIZE(dirfds); + ++dirfd_i) { + for (unsigned int path_i = 0; + path_i < ARRAY_SIZE(paths); + ++path_i) { + for (unsigned int mode_i = 0; + mode_i < ARRAY_SIZE(modes); + ++mode_i) { + for (unsigned int flag_i = 0; + flag_i < ARRAY_SIZE(flags); + ++flag_i) { + k_faccessat2(dirfds[dirfd_i].val, + paths[path_i].val, + modes[mode_i].val, + flags[flag_i].val); +# ifdef PATH_TRACING + if (dirfds[dirfd_i].val == fd || + paths[path_i].val == fd_path) +# endif + printf("faccessat2(%s, %s, %s, %s) = %s\n", + dirfds[dirfd_i].str, + paths[path_i].str, + modes[mode_i].str, + flags[flag_i].str, + errstr); + } + } + } + } + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_faccessat2") + +#endif diff --git a/tests/faccessat2.test b/tests/faccessat2.test new file mode 100755 index 00000000..eea9ea9f --- /dev/null +++ b/tests/faccessat2.test @@ -0,0 +1,19 @@ +#!/bin/sh +# +# Check decoding of faccessat2 syscall. +# +# Copyright (c) 2020 Dmitry V. Levin +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +check_prog sed + +run_prog > /dev/null +run_strace -a27 --trace=faccessat2 "$@" $args > "$EXP" + +# Filter out faccessat2() calls made by ld.so and libc. +sed -n '/^faccessat2(-1, NULL,/,$p' < "$LOG" > "$OUT" +match_diff "$OUT" "$EXP" diff --git a/tests/fadvise64.c b/tests/fadvise64.c index 1d7b6681..7cbd3ad4 100644 --- a/tests/fadvise64.c +++ b/tests/fadvise64.c @@ -3,7 +3,7 @@ * * Copyright (c) 2016 Eugene Syromyatnikov * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +11,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fadvise64 diff --git a/tests/fadvise64_64.c b/tests/fadvise64_64.c index 1520b7e4..292b8338 100644 --- a/tests/fadvise64_64.c +++ b/tests/fadvise64_64.c @@ -3,7 +3,7 @@ * * Copyright (c) 2016 Eugene Syromyatnikov * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +11,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __arm__ # ifdef __NR_arm_fadvise64_64 diff --git a/tests/fallocate.c b/tests/fallocate.c index 0e2284de..b48cd157 100644 --- a/tests/fallocate.c +++ b/tests/fallocate.c @@ -2,7 +2,7 @@ * Check decoding of fallocate syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_fallocate) && defined(HAVE_FALLOCATE) && HAVE_FALLOCATE diff --git a/tests/fanotify_init.c b/tests/fanotify_init.c index a3eeff53..f9fc9161 100644 --- a/tests/fanotify_init.c +++ b/tests/fanotify_init.c @@ -2,7 +2,7 @@ * Check decoding of fanotify_init syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined __NR_fanotify_init @@ -44,13 +44,14 @@ main(void) { F8ILL_KULONG_MASK, "FAN_CLASS_NOTIF" }, { (kernel_ulong_t) 0xffffffff0000000cULL, "0xc /* FAN_CLASS_??? */" }, - { (kernel_ulong_t) 0xdec0deddefacec04ULL, - "FAN_CLASS_CONTENT|0xefacec00 /* FAN_??? */" }, + { (kernel_ulong_t) 0xdec0deddeface004ULL, + "FAN_CLASS_CONTENT|0xeface000 /* FAN_??? */" }, { (kernel_ulong_t) 0xffffffffffffffffULL, "0xc /* FAN_CLASS_??? */|FAN_CLOEXEC|FAN_NONBLOCK|" "FAN_UNLIMITED_QUEUE|FAN_UNLIMITED_MARKS|" "FAN_ENABLE_AUDIT|FAN_REPORT_TID|FAN_REPORT_FID|" - "0xfffffc80" }, + "FAN_REPORT_DIR_FID|FAN_REPORT_NAME|" + "0xfffff080" }, }; static const struct strval event_f_flags[] = { { F8ILL_KULONG_MASK, "O_RDONLY" }, diff --git a/tests/fanotify_mark.c b/tests/fanotify_mark.c index 33d18253..f4bda84a 100644 --- a/tests/fanotify_mark.c +++ b/tests/fanotify_mark.c @@ -3,7 +3,7 @@ * * Copyright (c) 2015-2016 Dmitry V. Levin * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2015-2019 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +11,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined HAVE_SYS_FANOTIFY_H && defined HAVE_FANOTIFY_MARK && \ defined __NR_fanotify_mark @@ -68,11 +68,6 @@ struct strval { const char *str; }; -struct strval64 { - uint64_t val; - const char *str; -}; - # define STR16 "0123456789abcdef" # define STR64 STR16 STR16 STR16 STR16 @@ -150,15 +145,16 @@ main(void) "FAN_OPEN_PERM|" "FAN_ACCESS_PERM|" "FAN_OPEN_EXEC_PERM|" + "FAN_DIR_MODIFY|" "FAN_ONDIR|" "FAN_EVENT_ON_CHILD|" - "0xdeadfeedb7f8a000" + "0xdeadfeedb7f0a000" # endif # if XLAT_VERBOSE " */" # endif }, - { ARG_ULL_STR(0xffffffffb7f8a000) + { ARG_ULL_STR(0xffffffffb7f0a000) # if !XLAT_RAW " /* FAN_??? */" # endif diff --git a/tests/fchdir.c b/tests/fchdir.c index 118e5fea..ff0c64b5 100644 --- a/tests/fchdir.c +++ b/tests/fchdir.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fchdir diff --git a/tests/fchmod.c b/tests/fchmod.c index 4fa06727..3bf2da60 100644 --- a/tests/fchmod.c +++ b/tests/fchmod.c @@ -3,14 +3,14 @@ * * Copyright (c) 2016 Fabien Siron * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fchmod @@ -22,14 +22,7 @@ int main(void) { - static const char fname[] = "fchmod_test_file"; - - int fd = open(fname, O_CREAT|O_RDONLY, 0400); - if (fd < 0) - perror_msg_and_fail("open"); - - if (unlink(fname)) - perror_msg_and_fail("unlink"); + int fd = create_tmpfile(O_RDWR); long rc = syscall(__NR_fchmod, fd, 0600); printf("fchmod(%d, 0600) = %s\n", fd, sprintrc(rc)); diff --git a/tests/fchmodat.c b/tests/fchmodat.c index f2fa5dd0..3fdb5ef4 100644 --- a/tests/fchmodat.c +++ b/tests/fchmodat.c @@ -2,13 +2,14 @@ * Check decoding of fchmodat syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fchmodat diff --git a/tests/fchown.c b/tests/fchown.c index 98bfd9de..bc5ca24c 100644 --- a/tests/fchown.c +++ b/tests/fchown.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fchown diff --git a/tests/fchown32.c b/tests/fchown32.c index 9d52f9a8..9604aa0a 100644 --- a/tests/fchown32.c +++ b/tests/fchown32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fchown32 diff --git a/tests/fchownat.c b/tests/fchownat.c index 32167bc7..d790bd98 100644 --- a/tests/fchownat.c +++ b/tests/fchownat.c @@ -2,13 +2,14 @@ * Check decoding of fchownat syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #include #if defined __NR_fchownat && defined AT_FDCWD && defined AT_SYMLINK_NOFOLLOW diff --git a/tests/fcntl--pidns-translation.c b/tests/fcntl--pidns-translation.c new file mode 100644 index 00000000..e249424a --- /dev/null +++ b/tests/fcntl--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "fcntl.c" diff --git a/tests/fcntl--pidns-translation.gen.test b/tests/fcntl--pidns-translation.gen.test new file mode 100755 index 00000000..7a93d8a6 --- /dev/null +++ b/tests/fcntl--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fcntl--pidns-translation test_pidns -a8 -e trace=fcntl); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a8 -e trace=fcntl diff --git a/tests/fcntl-common.c b/tests/fcntl-common.c index b2125171..ec18aa79 100644 --- a/tests/fcntl-common.c +++ b/tests/fcntl-common.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -13,6 +13,8 @@ #include #include #include "flock.h" +#include "pidns.h" +#include "scno.h" #define FILE_LEN 4096 @@ -48,12 +50,14 @@ test_flock_einval(const int cmd, const char *name) fl->l_len = (TYPEOF_FLOCK_OFF_T) 0xdefaced2cafef00dULL; invoke_test_syscall(0, cmd, fl); + pidns_print_leader(); printf("%s(0, %s, {l_type=F_RDLCK, l_whence=SEEK_SET" ", l_start=%jd, l_len=%jd}) = %s\n", TEST_SYSCALL_STR, name, (intmax_t) fl->l_start, (intmax_t) fl->l_len, errstr); void *const bad_addr = (void *) fl + 1; invoke_test_syscall(0, cmd, bad_addr); + pidns_print_leader(); printf("%s(0, %s, %p) = %s\n", TEST_SYSCALL_STR, name, bad_addr, errstr); } @@ -72,12 +76,14 @@ test_flock64_einval(const int cmd, const char *name) fl->l_len = (TYPEOF_FLOCK_OFF_T) 0xdefaced2cafef00dULL; invoke_test_syscall(0, cmd, fl); + pidns_print_leader(); printf("%s(0, %s, {l_type=F_RDLCK, l_whence=SEEK_SET" ", l_start=%jd, l_len=%jd}) = %s\n", TEST_SYSCALL_STR, name, (intmax_t) fl->l_start, (intmax_t) fl->l_len, errstr); void *const bad_addr = (void *) fl + 1; invoke_test_syscall(0, cmd, bad_addr); + pidns_print_leader(); printf("%s(0, %s, %p) = %s\n", TEST_SYSCALL_STR, name, bad_addr, errstr); } @@ -94,6 +100,7 @@ test_flock(void) fl->l_len = FILE_LEN; long rc = invoke_test_syscall(0, F_SETLK, fl); + pidns_print_leader(); printf("%s(0, F_SETLK, {l_type=F_RDLCK, l_whence=SEEK_SET" ", l_start=0, l_len=%d}) = %s\n", TEST_SYSCALL_STR, FILE_LEN, errstr); @@ -101,11 +108,13 @@ test_flock(void) return; invoke_test_syscall(0, F_GETLK, fl); + pidns_print_leader(); printf("%s(0, F_GETLK, {l_type=F_UNLCK, l_whence=SEEK_SET" ", l_start=0, l_len=%d, l_pid=0}) = 0\n", TEST_SYSCALL_STR, FILE_LEN); invoke_test_syscall(0, F_SETLKW, fl); + pidns_print_leader(); printf("%s(0, F_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET" ", l_start=0, l_len=%d}) = 0\n", TEST_SYSCALL_STR, FILE_LEN); @@ -124,6 +133,7 @@ test_flock64_ofd(void) fl->l_len = FILE_LEN; long rc = invoke_test_syscall(0, F_OFD_SETLK, fl); + pidns_print_leader(); printf("%s(0, F_OFD_SETLK, {l_type=F_RDLCK, l_whence=SEEK_SET" ", l_start=0, l_len=%d}) = %s\n", TEST_SYSCALL_STR, FILE_LEN, errstr); @@ -131,11 +141,13 @@ test_flock64_ofd(void) return; invoke_test_syscall(0, F_OFD_GETLK, fl); + pidns_print_leader(); printf("%s(0, F_OFD_GETLK, {l_type=F_UNLCK, l_whence=SEEK_SET" ", l_start=0, l_len=%d, l_pid=0}) = 0\n", TEST_SYSCALL_STR, FILE_LEN); invoke_test_syscall(0, F_OFD_SETLKW, fl); + pidns_print_leader(); printf("%s(0, F_OFD_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET" ", l_start=0, l_len=%d}) = 0\n", TEST_SYSCALL_STR, FILE_LEN); @@ -167,18 +179,21 @@ test_flock64(void) static long test_f_owner_ex_type_pid(const int cmd, const char *const cmd_name, const int type, const char *const type_name, - pid_t pid) + enum pid_type pid_type, pid_t pid) { TAIL_ALLOC_OBJECT_CONST_PTR(struct_kernel_f_owner_ex, fo); fo->type = type; fo->pid = pid; long rc = invoke_test_syscall(0, cmd, fo); - printf("%s(0, %s, {type=%s, pid=%d}) = %s\n", - TEST_SYSCALL_STR, cmd_name, type_name, fo->pid, errstr); + pidns_print_leader(); + printf("%s(0, %s, {type=%s, pid=%d%s}) = %s\n", + TEST_SYSCALL_STR, cmd_name, type_name, + fo->pid, pidns_pid2str(pid_type), errstr); void *bad_addr = (void *) fo + 1; invoke_test_syscall(0, cmd, bad_addr); + pidns_print_leader(); printf("%s(0, %s, %p) = %s\n", TEST_SYSCALL_STR, cmd_name, bad_addr, errstr); @@ -187,35 +202,35 @@ test_f_owner_ex_type_pid(const int cmd, const char *const cmd_name, static void test_f_owner_ex_umove_or_printaddr(const int type, const char *const type_name, - pid_t pid) + enum pid_type pid_type, pid_t pid) { long rc = test_f_owner_ex_type_pid(ARG_STR(F_SETOWN_EX), - type, type_name, pid); + type, type_name, pid_type, pid); if (!rc) test_f_owner_ex_type_pid(ARG_STR(F_GETOWN_EX), - type, type_name, pid); + type, type_name, pid_type, pid); } static void test_f_owner_ex(void) { - static const struct { + struct { int type; const char *type_name; - pid_t pid[2]; + enum pid_type pid_type; + pid_t pid; } a[] = { - { ARG_STR(F_OWNER_TID), { 1234567890, 20 } }, - { ARG_STR(F_OWNER_PID), { 1298126790, 30 } }, - { ARG_STR(F_OWNER_PGRP), { 1294567890, 40 } } + { ARG_STR(F_OWNER_TID), PT_NONE, 1234567890 }, + { ARG_STR(F_OWNER_PID), PT_NONE, 1234567890 }, + { ARG_STR(F_OWNER_PGRP), PT_NONE, 1234567890 }, + { ARG_STR(F_OWNER_TID), PT_TID, syscall(__NR_gettid) }, + { ARG_STR(F_OWNER_PID), PT_TGID, getpid() }, + { ARG_STR(F_OWNER_PGRP), PT_PGID, getpgid(0) }, }; - for (unsigned int i = 0; i < ARRAY_SIZE(a); i++) { - for (unsigned int j = 0; j < ARRAY_SIZE(a[0].pid); j++) { - test_f_owner_ex_umove_or_printaddr(a[i].type, - a[i].type_name, - a[i].pid[j]); - } - } + for (unsigned int i = 0; i < ARRAY_SIZE(a); i++) + test_f_owner_ex_umove_or_printaddr(a[i].type, a[i].type_name, + a[i].pid_type, a[i].pid); } #endif /* TEST_F_OWNER_EX */ @@ -228,6 +243,23 @@ struct fcntl_cmd_check { void (*print_flags)(long rc); }; +static void +test_xetown(void) +{ + const int pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); + + invoke_test_syscall(0, F_SETOWN, (void *) (intptr_t) pid); + pidns_print_leader(); + printf("%s(0, F_SETOWN, %d%s) = %s\n", + TEST_SYSCALL_STR, pid, pid_str, errstr); + + invoke_test_syscall(0, F_GETOWN, NULL); + pidns_print_leader(); + printf("%s(0, F_GETOWN) = %d%s\n", + TEST_SYSCALL_STR, pid, pid_str); +} + static void print_retval_flags(const struct fcntl_cmd_check *check, long rc) { @@ -243,12 +275,14 @@ static void test_other_set_cmd(const struct fcntl_cmd_check *check) { invoke_test_syscall(check->fd, check->cmd, (void *) check->arg); + pidns_print_leader(); printf("%s(%d, %s, %s) = %s\n", TEST_SYSCALL_STR, check->fd, check->cmd_str, check->arg_str, errstr); /* bad file fd */ invoke_test_syscall(-1, check->cmd, (void *) check->arg); + pidns_print_leader(); printf("%s(-1, %s, %s) = %s\n", TEST_SYSCALL_STR, check->cmd_str, check->arg_str, errstr); @@ -258,12 +292,14 @@ static void test_other_get_cmd(const struct fcntl_cmd_check *check) { long rc = invoke_test_syscall(check->fd, check->cmd, NULL); + pidns_print_leader(); printf("%s(%d, %s) = ", TEST_SYSCALL_STR, check->fd, check->cmd_str); print_retval_flags(check, rc); /* bad file fd */ invoke_test_syscall(-1, check->cmd, NULL); + pidns_print_leader(); printf("%s(-1, %s) = %s\n", TEST_SYSCALL_STR, check->cmd_str, errstr); } @@ -315,7 +351,6 @@ test_fcntl_others(void) { static const struct fcntl_cmd_check set_checks[] = { { 0, ARG_STR(F_SETFD), ARG_STR(FD_CLOEXEC) }, - { 0, ARG_STR(F_SETOWN), ARG_STR(20) }, #ifdef F_SETPIPE_SZ { 0, ARG_STR(F_SETPIPE_SZ), ARG_STR(4097) }, #endif @@ -336,7 +371,6 @@ test_fcntl_others(void) static const struct fcntl_cmd_check get_checks[] = { { 0, ARG_STR(F_GETFD), .print_flags = print_flags_getfd }, { 1, ARG_STR(F_GETFD), .print_flags = print_flags_getfd }, - { 0, ARG_STR(F_GETOWN) }, #ifdef F_GETPIPE_SZ { 0, ARG_STR(F_GETPIPE_SZ) }, #endif @@ -352,20 +386,16 @@ test_fcntl_others(void) static void create_sample(void) { - char fname[] = TEST_SYSCALL_STR "_XXXXXX"; - (void) close(0); - if (mkstemp(fname)) - perror_msg_and_fail("mkstemp: %s", fname); - if (unlink(fname)) - perror_msg_and_fail("unlink: %s", fname); - if (ftruncate(0, FILE_LEN)) + if (ftruncate(create_tmpfile(O_RDWR), FILE_LEN)) perror_msg_and_fail("ftruncate"); } int main(void) { + PIDNS_TEST_INIT; + create_sample(); test_flock(); test_flock64(); @@ -373,7 +403,9 @@ main(void) test_f_owner_ex(); #endif test_fcntl_others(); + test_xetown(); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests/fcntl.c b/tests/fcntl.c index bd9ffbdd..ca9c737b 100644 --- a/tests/fcntl.c +++ b/tests/fcntl.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fcntl @@ -24,6 +24,7 @@ test_flock64_undecoded(const int cmd, const char *name) .l_len = 0xdefaced2cafef00dULL }; invoke_test_syscall(0, cmd, &fl); + pidns_print_leader(); printf("%s(0, %s, %p) = %s\n", TEST_SYSCALL_STR, name, &fl, errstr); } diff --git a/tests/fcntl64--pidns-translation.c b/tests/fcntl64--pidns-translation.c new file mode 100644 index 00000000..c6fdadd1 --- /dev/null +++ b/tests/fcntl64--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "fcntl64.c" diff --git a/tests/fcntl64--pidns-translation.gen.test b/tests/fcntl64--pidns-translation.gen.test new file mode 100755 index 00000000..3c464516 --- /dev/null +++ b/tests/fcntl64--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fcntl64--pidns-translation test_pidns -a8 -e trace=fcntl64); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a8 -e trace=fcntl64 diff --git a/tests/fcntl64.c b/tests/fcntl64.c index 97277b2f..07df7224 100644 --- a/tests/fcntl64.c +++ b/tests/fcntl64.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fcntl64 @@ -27,6 +27,7 @@ test_flock64_lk64(void) fl->l_len = FILE_LEN; long rc = invoke_test_syscall(0, F_SETLK64, fl); + pidns_print_leader(); printf("%s(0, F_SETLK64, {l_type=F_RDLCK, l_whence=SEEK_SET" ", l_start=0, l_len=%d}) = %s\n", TEST_SYSCALL_STR, FILE_LEN, errstr); @@ -35,11 +36,13 @@ test_flock64_lk64(void) return; invoke_test_syscall(0, F_GETLK64, fl); + pidns_print_leader(); printf("%s(0, F_GETLK64, {l_type=F_UNLCK, l_whence=SEEK_SET" ", l_start=0, l_len=%d, l_pid=0}) = 0\n", TEST_SYSCALL_STR, FILE_LEN); invoke_test_syscall(0, F_SETLKW64, fl); + pidns_print_leader(); printf("%s(0, F_SETLKW64, {l_type=F_UNLCK, l_whence=SEEK_SET" ", l_start=0, l_len=%d}) = 0\n", TEST_SYSCALL_STR, FILE_LEN); diff --git a/tests/fdatasync.c b/tests/fdatasync.c index f4c8d55f..a1f2ba29 100644 --- a/tests/fdatasync.c +++ b/tests/fdatasync.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fdatasync diff --git a/tests/file_handle.c b/tests/file_handle.c index 38cd5af8..edabde61 100644 --- a/tests/file_handle.c +++ b/tests/file_handle.c @@ -3,14 +3,14 @@ * * Copyright (c) 2015-2016 Dmitry V. Levin * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_name_to_handle_at && defined __NR_open_by_handle_at diff --git a/tests/file_ioctl.c b/tests/file_ioctl.c index 7a2a905c..d0efb210 100644 --- a/tests/file_ioctl.c +++ b/tests/file_ioctl.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,6 +11,7 @@ # include # include +# include # include # include # include "xlat.h" diff --git a/tests/fill_memory.c b/tests/fill_memory.c index 3e09d597..f82314c2 100644 --- a/tests/fill_memory.c +++ b/tests/fill_memory.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -24,3 +24,39 @@ fill_memory(void *ptr, size_t size) { fill_memory_ex(ptr, size, 0x80, 0x80); } + +void +fill_memory16_ex(void *ptr, size_t size, uint16_t start, + unsigned int period) +{ + uint16_t *p = ptr; + size_t i; + + for (i = 0; i < size / sizeof(uint16_t); i++) { + p[i] = start + i % period; + } +} + +void +fill_memory16(void *ptr, size_t size) +{ + fill_memory16_ex(ptr, size, 0x80c0, 0x8000); +} + +void +fill_memory32_ex(void *ptr, size_t size, uint32_t start, + unsigned int period) +{ + uint32_t *p = ptr; + size_t i; + + for (i = 0; i < size / sizeof(uint32_t); i++) { + p[i] = start + i % period; + } +} + +void +fill_memory32(void *ptr, size_t size) +{ + fill_memory32_ex(ptr, size, 0x80a0c0e0, 0x80000000); +} diff --git a/tests/filter_seccomp-flag.c b/tests/filter_seccomp-flag.c new file mode 100644 index 00000000..480db894 --- /dev/null +++ b/tests/filter_seccomp-flag.c @@ -0,0 +1,85 @@ +/* + * Check that syscall numbers do not conflict with seccomp filter flags. + * + * Copyright (c) 2019 Paul Chaignon + * Copyright (c) 2018-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "arch_defs.h" +#include "sysent.h" +#include "scno.h" + +/* PERSONALITY*_AUDIT_ARCH definitions depend on AUDIT_ARCH_* constants. */ +#ifdef PERSONALITY0_AUDIT_ARCH +# include +# define XLAT_MACROS_ONLY +# include "xlat/elf_em.h" +# include "xlat/audit_arch.h" +# undef XLAT_MACROS_ONLY +#endif + +/* Define these shorthand notations to simplify the syscallent files. */ +#include "sysent_shorthand_defs.h" + +const struct_sysent sysent0[] = { +#include "syscallent.h" +}; + +#if SUPPORTED_PERSONALITIES > 1 +const struct_sysent sysent1[] = { +# include "syscallent1.h" +}; +#endif + +#if SUPPORTED_PERSONALITIES > 2 +const struct_sysent sysent2[] = { +# include "syscallent2.h" +}; +#endif + +const unsigned int nsyscall_vec[SUPPORTED_PERSONALITIES] = { + ARRAY_SIZE(sysent0), +#if SUPPORTED_PERSONALITIES > 1 + ARRAY_SIZE(sysent1), +#endif +#if SUPPORTED_PERSONALITIES > 2 + ARRAY_SIZE(sysent2), +#endif +}; + +struct audit_arch_t { + unsigned int arch; + unsigned int flag; +}; + +static const struct audit_arch_t audit_arch_vec[SUPPORTED_PERSONALITIES] = { +#if SUPPORTED_PERSONALITIES > 1 + PERSONALITY0_AUDIT_ARCH, + PERSONALITY1_AUDIT_ARCH, +# if SUPPORTED_PERSONALITIES > 2 + PERSONALITY2_AUDIT_ARCH, +# endif +#endif +}; + +int +main(void) +{ + for (unsigned int p = 0; p < SUPPORTED_PERSONALITIES; ++p) { + if (!audit_arch_vec[p].flag) + continue; + for (unsigned int nr = 1; nr < nsyscall_vec[p]; ++nr) { + if (!(audit_arch_vec[p].flag & nr)) + continue; + error_msg_and_fail("system call number %u of" + " personality %u conflicts with" + " seccomp filter flag %#x", + nr, p, audit_arch_vec[p].flag); + } + } + return 0; +} diff --git a/tests/filter_seccomp-flag.gen.test b/tests/filter_seccomp-flag.gen.test new file mode 100755 index 00000000..b1185bec --- /dev/null +++ b/tests/filter_seccomp-flag.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (filter_seccomp-flag ../$NAME ); do not edit. +. "${srcdir=.}/init.sh" +../$NAME diff --git a/tests/filter_seccomp-perf.c b/tests/filter_seccomp-perf.c new file mode 100644 index 00000000..742e1ebb --- /dev/null +++ b/tests/filter_seccomp-perf.c @@ -0,0 +1,39 @@ +/* + * Check seccomp filter performance. + * + * Copyright (c) 2019 Paul Chaignon + * Copyright (c) 2018-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include +#include +#include + +static volatile bool stop = false; + +static void +handler(int signo) +{ + stop = true; +} + +int +main(void) +{ + unsigned int i; + int rc = 0; + + signal(SIGALRM, handler); + alarm(1); + + for (i = 0; !stop; i++) { + rc |= chdir("."); + } + printf("%d\n", i); + return rc; +} diff --git a/tests/filter_seccomp-perf.test b/tests/filter_seccomp-perf.test new file mode 100755 index 00000000..149d7044 --- /dev/null +++ b/tests/filter_seccomp-perf.test @@ -0,0 +1,27 @@ +#!/bin/sh +# +# Check seccomp filter performance. +# +# Copyright (c) 2019 Paul Chaignon +# Copyright (c) 2018-2019 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" +. "${srcdir=.}/filter_seccomp.sh" + +args="-f -qq -e signal=none -e trace=fchdir ../$NAME" +num_regular="$(run_strace $args)" +mv "$LOG" "$LOG.regular" +num_seccomp="$(run_strace --seccomp-bpf $args)" +mv "$LOG" "$LOG.seccomp" +match_diff "$LOG.regular" "$LOG.seccomp" + +min_ratio=6 +# With seccomp filter enabled, we should be able to complete +# at least $min_ratio times more chdir system calls. +ratio="$((num_seccomp / num_regular))" +if [ "$ratio" -lt "$min_ratio" ]; then + fail_ "Only $ratio times more syscalls performed with seccomp filter enabled, expected at least $min_ratio times speedup" +fi diff --git a/tests/filter_seccomp.gen.test b/tests/filter_seccomp.gen.test new file mode 100755 index 00000000..d41da057 --- /dev/null +++ b/tests/filter_seccomp.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (filter_seccomp . "${srcdir=.}/filter_seccomp.sh"; test_prog_set --seccomp-bpf -f); do not edit. +. "${srcdir=.}/init.sh" +. "${srcdir=.}/filter_seccomp.sh"; test_prog_set --seccomp-bpf -f diff --git a/tests/filter_seccomp.in b/tests/filter_seccomp.in new file mode 100644 index 00000000..76e4d7e6 --- /dev/null +++ b/tests/filter_seccomp.in @@ -0,0 +1,4 @@ +fork-f -a26 -qq -e signal=none -e trace=chdir +vfork-f -a26 -qq -e signal=none -e trace=chdir +fork-f -a26 -qq -e signal=none -e trace=chdir,%memory,%ipc,%pure,%signal,%network -e status=failed +status-none-f -e trace=!ptrace -e status=none diff --git a/tests/filter_seccomp.sh b/tests/filter_seccomp.sh new file mode 100755 index 00000000..cf5dee57 --- /dev/null +++ b/tests/filter_seccomp.sh @@ -0,0 +1,14 @@ +#!/bin/sh +# +# Skip the test if seccomp filter is not available. +# +# Copyright (c) 2018-2019 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +$STRACE --seccomp-bpf -f -e trace=fchdir / > /dev/null 2> "$LOG" ||: +if grep -x "[^:]*strace: seccomp filter is requested but unavailable" \ + "$LOG" > /dev/null; then + skip_ 'seccomp filter is unavailable' +fi diff --git a/tests/filtering_fd-syntax.test b/tests/filtering_fd-syntax.test index 53bf1b1c..00d9f47a 100755 --- a/tests/filtering_fd-syntax.test +++ b/tests/filtering_fd-syntax.test @@ -3,7 +3,7 @@ # Check descriptor set parsing syntax. # # Copyright (c) 2016 Dmitry V. Levin -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -14,8 +14,10 @@ check_fd_qualify() { check_e "invalid descriptor '$1'" -e"read=$2" check_e "invalid descriptor '$1'" -e "read=$2" + check_e "invalid descriptor '$1'" "--read=$2" check_e "invalid descriptor '$1'" -e"write=$2" check_e "invalid descriptor '$1'" -e "write=$2" + check_e "invalid descriptor '$1'" "--write=$2" } for arg in '' , ,, ,,, ; do diff --git a/tests/filtering_syscall-syntax.test b/tests/filtering_syscall-syntax.test index fe42edbe..8dd83cde 100755 --- a/tests/filtering_syscall-syntax.test +++ b/tests/filtering_syscall-syntax.test @@ -4,6 +4,7 @@ # # Copyright (c) 2016-2018 Dmitry V. Levin # Copyright (c) 2017 Nikolay Marchuk +# Copyright (c) 2018-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -16,37 +17,51 @@ check_syscall() check_e "invalid system call '$1'" -e "$2" check_e "invalid system call '$1'" -etrace="$2" + check_e "invalid system call '$1'" --trace="$2" check_e "invalid system call '$1'" -e trace="$2" check_e "invalid system call '$1'" -eabbrev="$2" + check_e "invalid system call '$1'" --abbrev="$2" check_e "invalid system call '$1'" -e abbrev="$2" check_e "invalid system call '$1'" -everbose="$2" + check_e "invalid system call '$1'" --verbose="$2" check_e "invalid system call '$1'" -e verbose="$2" check_e "invalid system call '$1'" -eraw="$2" + check_e "invalid system call '$1'" --raw="$2" check_e "invalid system call '$1'" -e raw="$2" check_e "invalid system call '$1'" -einject="$2" + check_e "invalid system call '$1'" --inject="$2" check_e "invalid system call '$1'" -e inject="$2" check_e "invalid system call '$1'" -einject="$2:" check_e "invalid system call '$1'" -einject="$2::" check_e "invalid system call '$1'" -einject="$2:::" + check_e "invalid system call '$1'" --inject="$2:" + check_e "invalid system call '$1'" --inject="$2::" + check_e "invalid system call '$1'" --inject="$2:::" check_e "invalid system call '$1'" -e inject="$2:" check_e "invalid system call '$1'" -e inject="$2::" check_e "invalid system call '$1'" -e inject="$2:::" check_e "invalid system call '$1'" -einject="$2:when=3" + check_e "invalid system call '$1'" --inject="$2:when=3" check_e "invalid system call '$1'" -e inject="$2:when=3" check_e "invalid system call '$1'" -efault="$2" + check_e "invalid system call '$1'" --fault="$2" check_e "invalid system call '$1'" -e fault="$2" check_e "invalid system call '$1'" -efault="$2:" check_e "invalid system call '$1'" -efault="$2::" check_e "invalid system call '$1'" -efault="$2:::" + check_e "invalid system call '$1'" --fault="$2:" + check_e "invalid system call '$1'" --fault="$2::" + check_e "invalid system call '$1'" --fault="$2:::" check_e "invalid system call '$1'" -e fault="$2:" check_e "invalid system call '$1'" -e fault="$2::" check_e "invalid system call '$1'" -e fault="$2:::" check_e "invalid system call '$1'" -efault="$2:when=4" + check_e "invalid system call '$1'" --fault="$2:when=4" check_e "invalid system call '$1'" -e fault="$2:when=4" } diff --git a/tests/finit_module.c b/tests/finit_module.c index 64e6df02..7c775658 100644 --- a/tests/finit_module.c +++ b/tests/finit_module.c @@ -2,7 +2,7 @@ * Check decoding of finit_module syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,6 @@ #include "tests.h" -#include #include "scno.h" #if defined(__NR_finit_module) diff --git a/tests/flock.c b/tests/flock.c index 4f044409..1253616f 100644 --- a/tests/flock.c +++ b/tests/flock.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_flock diff --git a/tests/fork--pidns-translation.awk b/tests/fork--pidns-translation.awk new file mode 100644 index 00000000..ef6858f4 --- /dev/null +++ b/tests/fork--pidns-translation.awk @@ -0,0 +1,15 @@ +/fork/ { + match($0, "([0-9]+) in strace\x27s PID NS", a); + if (a[1]) + fork_pid = a[1] +} + +/exited with 0/ { + if (!exit_pid) + exit_pid = $1 +} + +END { + if (!fork_pid || !exit_pid || fork_pid != exit_pid) + exit 1 +} diff --git a/tests/fork--pidns-translation.c b/tests/fork--pidns-translation.c new file mode 100644 index 00000000..1d490ce4 --- /dev/null +++ b/tests/fork--pidns-translation.c @@ -0,0 +1,78 @@ +/* + * Test PID namespace translation + * + * Copyright (c) 2020 Ákos Uzonyi + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#include "tests.h" +#include "scno.h" +#include "pidns.h" + +#ifdef __NR_fork + +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include "nsfs.h" + +# ifndef CLONE_NEWUSER +# define CLONE_NEWUSER 0x10000000 +# endif + +# ifndef CLONE_NEWPID +# define CLONE_NEWPID 0x20000000 +# endif + +static int +fork_chain(int depth) +{ + if (!depth) + return 0; + + int pid = syscall(__NR_fork); + if (pid < 0) + return errno; + + if (!pid) + _exit(fork_chain(depth - 1)); + + int status; + if (wait(&status) < 0) + return errno; + + if (!WIFEXITED(status)) + return -1; + + return WEXITSTATUS(status); +} + +int main(void) +{ + check_ns_ioctl(); + + if (unshare(CLONE_NEWPID | CLONE_NEWUSER) < 0) { + if (errno == EPERM) + perror_msg_and_skip("unshare"); + + perror_msg_and_fail("unshare"); + } + + errno = fork_chain(2); + if (errno) + perror("fork_chain"); +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_fork") + +#endif diff --git a/tests/fork--pidns-translation.test b/tests/fork--pidns-translation.test new file mode 100755 index 00000000..24cc5930 --- /dev/null +++ b/tests/fork--pidns-translation.test @@ -0,0 +1,14 @@ +#!/bin/sh +# +# Check pidns translation of fork's return value. +# +# Copyright (c) 2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: LGPL-2.1-or-later + +. "${srcdir=.}/init.sh" + +run_prog +run_strace -a6 --pidns-translation -f -e trace=fork $args +match_awk diff --git a/tests/fsconfig-P.c b/tests/fsconfig-P.c new file mode 100644 index 00000000..b763332c --- /dev/null +++ b/tests/fsconfig-P.c @@ -0,0 +1,2 @@ +#define PATH_TRACING +#include "fsconfig.c" diff --git a/tests/fsconfig-P.gen.test b/tests/fsconfig-P.gen.test new file mode 100755 index 00000000..36001fa8 --- /dev/null +++ b/tests/fsconfig-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fsconfig-P -s300 -y -P /dev/full -e trace=fsconfig); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -s300 -y -P /dev/full -e trace=fsconfig diff --git a/tests/fsconfig.c b/tests/fsconfig.c new file mode 100644 index 00000000..2399a6a1 --- /dev/null +++ b/tests/fsconfig.c @@ -0,0 +1,298 @@ +/* + * Check decoding of fsconfig syscall. + * + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_fsconfig + +# include +# include +# include +# include +# include + +# define XLAT_MACROS_ONLY +# include "xlat/fsconfig_cmds.h" +# undef XLAT_MACROS_ONLY + +static const char *errstr; + +static long +k_fsconfig(const unsigned int fs_fd, + const unsigned int cmd, + const void *key, + const void *value, + const unsigned int aux) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | fs_fd; + const kernel_ulong_t arg2 = fill | cmd; + const kernel_ulong_t arg3 = (uintptr_t) key; + const kernel_ulong_t arg4 = (uintptr_t) value; + const kernel_ulong_t arg5 = fill | aux; + const long rc = syscall(__NR_fsconfig, + arg1, arg2, arg3, arg4, arg5, bad); + errstr = sprintrc(rc); + return rc; +} + +static const char path_full[] = "/dev/full"; +static const int max_string_size = 256; +static const int max_blob_size = 300; +static const int huge_blob_size = 1024 * 1024 + 1; +static const char *fd_path; +static const void *efault; +static const char *empty; +static char *fname; +static char *key1; +static char *key; +static char *val1; +static char *val; +static char *blob1; +static char *blob; +static int fd; + +static void +test_fsconfig_unknown(void) +{ + k_fsconfig(fd, 8, empty, val, -100); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, 0x8 /* FSCONFIG_??? */, %p, %p, -100) = %s\n", + fd, fd_path, empty, val, errstr); +# endif + + k_fsconfig(-100, -1, empty, fd_path, fd); +# ifndef PATH_TRACING + printf("fsconfig(-100, 0xffffffff /* FSCONFIG_??? */, %p, %p, %d)" + " = %s\n", + empty, fd_path, fd, errstr); +# endif +} + +static void +test_fsconfig_cmd(const unsigned int cmd, const char *cmd_str) +{ + k_fsconfig(fd, cmd, empty, val, -100); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, %p, %p, -100) = %s\n", + fd, fd_path, cmd_str, empty, val, errstr); +# endif + + k_fsconfig(-100, cmd, empty, fd_path, fd); +# ifndef PATH_TRACING + printf("fsconfig(-100, %s, %p, %p, %d) = %s\n", + cmd_str, empty, fd_path, fd, errstr); +# endif +} + +static void +test_fsconfig_set_flag(const unsigned int cmd, const char *cmd_str) +{ + k_fsconfig(fd, cmd, key, val, -100); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%s\", %p, -100) = %s\n", + fd, fd_path, cmd_str, key, val, errstr); +# endif + + k_fsconfig(fd, cmd, key1, val, -100); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%.*s\"..., %p, -100) = %s\n", + fd, fd_path, cmd_str, max_string_size, key1, val, errstr); +# endif + + k_fsconfig(-100, cmd, key, fd_path, fd); +# ifndef PATH_TRACING + printf("fsconfig(-100, %s, \"%s\", %p, %d) = %s\n", + cmd_str, key, fd_path, fd, errstr); +# endif +} + +static void +test_fsconfig_set_string(const unsigned int cmd, const char *cmd_str) +{ + k_fsconfig(fd, cmd, key, val, -100); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%s\", \"%s\", -100) = %s\n", + fd, fd_path, cmd_str, key, val, errstr); +# endif + + k_fsconfig(fd, cmd, key1, val1, -100); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%.*s\"..., \"%.*s\"..., -100) = %s\n", + fd, fd_path, cmd_str, max_string_size, key1, max_string_size, val1, + errstr); +# endif + + k_fsconfig(-100, cmd, key, fd_path, fd); +# ifndef PATH_TRACING + printf("fsconfig(-100, %s, \"%s\", \"%s\", %d) = %s\n", + cmd_str, key, fd_path, fd, errstr); +# endif +} + +static void +test_fsconfig_set_binary(const unsigned int cmd, const char *cmd_str) +{ + k_fsconfig(fd, cmd, key, blob, max_blob_size); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%s\", ", fd, fd_path, cmd_str, key); + print_quoted_hex(blob, max_blob_size); + printf(", %d) = %s\n", max_blob_size, errstr); +# endif + + k_fsconfig(fd, cmd, key1, blob1, max_blob_size + 1); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%.*s\"..., ", + fd, fd_path, cmd_str, max_string_size, key1); + print_quoted_hex(blob1, max_blob_size); + printf("..., %d) = %s\n", max_blob_size + 1, errstr); +# endif + + k_fsconfig(fd, cmd, key, empty, 0); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%s\", \"\", 0) = %s\n", + fd, fd_path, cmd_str, key, errstr); +# endif + + k_fsconfig(fd, cmd, key, fname, -100); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%s\", %p, -100) = %s\n", + fd, fd_path, cmd_str, key, fname, errstr); +# endif + + k_fsconfig(fd, cmd, key, fname, huge_blob_size); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%s\", %p, %d) = %s\n", + fd, fd_path, cmd_str, key, fname, huge_blob_size, errstr); +# endif + + k_fsconfig(-100, cmd, key, fd_path, sizeof(path_full)); +# ifndef PATH_TRACING + printf("fsconfig(-100, %s, \"%s\", ", cmd_str, key); + print_quoted_hex(fd_path, sizeof(path_full)); + printf(", %d) = %s\n", (int) sizeof(path_full), errstr); +# endif + + k_fsconfig(-100, cmd, key, fname, fd); +# ifndef PATH_TRACING + printf("fsconfig(-100, %s, \"%s\", ", cmd_str, key); + print_quoted_hex(fname, fd); + printf(", %d) = %s\n", fd, errstr); +# endif +} + +static void +test_fsconfig_set_path(const unsigned int cmd, const char *cmd_str) +{ + fill_memory_ex(fname, PATH_MAX, '0', 10); + k_fsconfig(fd, cmd, key, fname, -100); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%s\", \"%.*s\"..., AT_FDCWD) = %s\n", + fd, fd_path, cmd_str, key, (int) PATH_MAX - 1, fname, errstr); +# endif + + fname[PATH_MAX - 1] = '\0'; + k_fsconfig(fd, cmd, key, fname, -1); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%s\", \"%s\", -1) = %s\n", + fd, fd_path, cmd_str, key, fname, errstr); +# endif + + k_fsconfig(-100, cmd, key, empty, fd); + printf("fsconfig(-100, %s, \"%s\", \"\", %d<%s>) = %s\n", + cmd_str, key, fd, fd_path, errstr); + + k_fsconfig(-1, cmd, 0, fd_path, -100); + printf("fsconfig(-1, %s, NULL, \"%s\", AT_FDCWD) = %s\n", + cmd_str, fd_path, errstr); + + k_fsconfig(-1, cmd, efault, efault + 1, fd); + printf("fsconfig(-1, %s, %p, %p, %d<%s>) = %s\n", + cmd_str, efault, efault + 1, fd, fd_path, errstr); + + k_fsconfig(-100, cmd, key, fname, -1); +# ifndef PATH_TRACING + printf("fsconfig(-100, %s, \"%s\", \"%s\", -1) = %s\n", + cmd_str, key, fname, errstr); +# endif +} + +static void +test_fsconfig_set_fd(const unsigned int cmd, const char *cmd_str) +{ + k_fsconfig(fd, cmd, key, val, -100); +# ifndef PATH_TRACING + printf("fsconfig(%d<%s>, %s, \"%s\", %p, -100) = %s\n", + fd, fd_path, cmd_str, key, val, errstr); +# endif + + k_fsconfig(-100, cmd, key1, 0, fd); + printf("fsconfig(-100, %s, \"%.*s\"..., NULL, %d<%s>) = %s\n", + cmd_str, max_string_size, key1, fd, fd_path, errstr); + + k_fsconfig(-1, cmd, efault, efault + 1, fd); + printf("fsconfig(-1, %s, %p, %p, %d<%s>) = %s\n", + cmd_str, efault, efault + 1, fd, fd_path, errstr); + + k_fsconfig(-100, cmd, key, fd_path, -1); +# ifndef PATH_TRACING + printf("fsconfig(-100, %s, \"%s\", %p, -1) = %s\n", + cmd_str, key, fd_path, errstr); +# endif +} + +int +main(void) +{ + skip_if_unavailable("/proc/self/fd/"); + + fd_path = tail_memdup(path_full, sizeof(path_full)); + efault = fd_path + sizeof(path_full); + empty = efault - 1; + fname = tail_alloc(PATH_MAX); + key1 = tail_alloc(max_string_size + 1); + key = key1 + 1; + val1 = tail_alloc(max_string_size + 1); + val = val1 + 1; + blob1 = tail_alloc(max_blob_size + 1); + blob = blob1 + 1; + + fill_memory_ex(fname, PATH_MAX, '0', 10); + fill_memory_ex(key1, max_string_size, 'a', 'z' - 'a' + 1); + key1[max_string_size] = '\0'; + fill_memory_ex(val1, max_string_size, 'A', 'Z' - 'A' + 1); + val1[max_string_size] = '\0'; + fill_memory_ex(blob, max_blob_size, '0', 10); + blob[0] = 0; + blob1[0] = 0; + fd = open(fd_path, O_WRONLY); + if (fd < 0) + perror_msg_and_fail("open: %s", fd_path); + + test_fsconfig_unknown(); + test_fsconfig_set_flag(ARG_STR(FSCONFIG_SET_FLAG)); + test_fsconfig_set_string(ARG_STR(FSCONFIG_SET_STRING)); + test_fsconfig_set_binary(ARG_STR(FSCONFIG_SET_BINARY)); + test_fsconfig_set_path(ARG_STR(FSCONFIG_SET_PATH)); + test_fsconfig_set_path(ARG_STR(FSCONFIG_SET_PATH_EMPTY)); + test_fsconfig_set_fd(ARG_STR(FSCONFIG_SET_FD)); + test_fsconfig_cmd(ARG_STR(FSCONFIG_CMD_CREATE)); + test_fsconfig_cmd(ARG_STR(FSCONFIG_CMD_RECONFIGURE)); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_fsconfig") + +#endif diff --git a/tests/fsconfig.gen.test b/tests/fsconfig.gen.test new file mode 100755 index 00000000..f482be10 --- /dev/null +++ b/tests/fsconfig.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fsconfig -s300 -y); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -s300 -y diff --git a/tests/fsmount.c b/tests/fsmount.c new file mode 100644 index 00000000..28b14a40 --- /dev/null +++ b/tests/fsmount.c @@ -0,0 +1,97 @@ +/* + * Check decoding of fsmount syscall. + * + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_fsmount + +# include +# include +# include +# include + +static const char *errstr; + +static long +k_fsmount(const unsigned int fs_fd, + const unsigned int flags, + const unsigned int attr_flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | fs_fd; + const kernel_ulong_t arg2 = fill | flags; + const kernel_ulong_t arg3 = fill | attr_flags; + const long rc = syscall(__NR_fsmount, + arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + skip_if_unavailable("/proc/self/fd/"); + + static const char path[] = "/dev/full"; + int fd = open(path, O_WRONLY); + if (fd < 0) + perror_msg_and_fail("open: %s", path); + + struct { + unsigned int val; + const char *str; + } flags[] = { + { ARG_STR(0) }, + { 1, "FSMOUNT_CLOEXEC" }, + { 2, "0x2 /* FSMOUNT_??? */" }, + { 0xfffffffe, "0xfffffffe /* FSMOUNT_??? */" }, + { -1, "FSMOUNT_CLOEXEC|0xfffffffe" } + }, + attrs[] = { + { ARG_STR(0) }, + { 1, "MOUNT_ATTR_RDONLY" }, + { 0x10, "MOUNT_ATTR_NOATIME" }, + { 0xbf, "MOUNT_ATTR_RDONLY|MOUNT_ATTR_NOSUID|MOUNT_ATTR_NODEV" + "|MOUNT_ATTR_NOEXEC|MOUNT_ATTR_NOATIME" + "|MOUNT_ATTR_STRICTATIME|MOUNT_ATTR_NODIRATIME" }, + { 0x40, "0x40 /* MOUNT_ATTR_??? */" }, + { 0xffffff40, "0xffffff40 /* MOUNT_ATTR_??? */" }, + { -1, "MOUNT_ATTR_RDONLY|MOUNT_ATTR_NOSUID|MOUNT_ATTR_NODEV" + "|MOUNT_ATTR_NOEXEC|MOUNT_ATTR_NOATIME" + "|MOUNT_ATTR_STRICTATIME|MOUNT_ATTR_NODIRATIME" + "|0xffffff40" } + }; + + for (unsigned int i = 0; i < ARRAY_SIZE(flags); ++i) { + for (unsigned int j = 0; j < ARRAY_SIZE(attrs); ++j) { + k_fsmount(-1, flags[i].val, attrs[j].val); + printf("fsmount(-1, %s, %s) = %s\n", + flags[i].str, attrs[j].str, errstr); + + k_fsmount(-100, flags[i].val, attrs[j].val); + printf("fsmount(-100, %s, %s) = %s\n", + flags[i].str, attrs[j].str, errstr); + + k_fsmount(fd, flags[i].val, attrs[j].val); + printf("fsmount(%d<%s>, %s, %s) = %s\n", + fd, path, flags[i].str, attrs[j].str, errstr); + } + } + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_fsmount") + +#endif diff --git a/tests/fsmount.gen.test b/tests/fsmount.gen.test new file mode 100755 index 00000000..aff762bb --- /dev/null +++ b/tests/fsmount.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fsmount -a18 -y); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a18 -y diff --git a/tests/fsopen.c b/tests/fsopen.c new file mode 100644 index 00000000..1d8af8bb --- /dev/null +++ b/tests/fsopen.c @@ -0,0 +1,67 @@ +/* + * Check decoding of fsopen syscall. + * + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_fsopen + +# include +# include +# include + +static const char *errstr; + +static long +k_fsopen(const void *name, const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = (uintptr_t) name; + const kernel_ulong_t arg2 = fill | flags; + const long rc = syscall(__NR_fsopen, arg1, arg2, bad, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + char *const name1 = tail_alloc(DEFAULT_STRLEN + 2); + char *const name = name1 + 1; + const void *const efault = name + DEFAULT_STRLEN + 1; + const char *const empty = efault - 1; + fill_memory_ex(name1, DEFAULT_STRLEN + 1, '0', 10); + name1[DEFAULT_STRLEN + 1] = '\0'; + + k_fsopen(name, 0); + printf("fsopen(\"%s\", 0) = %s\n", name, errstr); + + k_fsopen(name1, 1); + printf("fsopen(\"%.*s\"..., FSOPEN_CLOEXEC) = %s\n", + DEFAULT_STRLEN, name1, errstr); + + k_fsopen(0, 2); + printf("fsopen(NULL, 0x2 /* FSOPEN_??? */) = %s\n", errstr); + + k_fsopen(efault, 0xfffffffe); + printf("fsopen(%p, 0xfffffffe /* FSOPEN_??? */) = %s\n", efault, errstr); + + k_fsopen(empty, -1); + printf("fsopen(\"\", FSOPEN_CLOEXEC|0xfffffffe) = %s\n", errstr); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_fsopen") + +#endif diff --git a/tests/fsopen.gen.test b/tests/fsopen.gen.test new file mode 100755 index 00000000..b4130f07 --- /dev/null +++ b/tests/fsopen.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fsopen -a35 ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a35 diff --git a/tests/fspick-P.c b/tests/fspick-P.c new file mode 100644 index 00000000..f3d41eb3 --- /dev/null +++ b/tests/fspick-P.c @@ -0,0 +1,2 @@ +#define PATH_TRACING +#include "fspick.c" diff --git a/tests/fspick-P.gen.test b/tests/fspick-P.gen.test new file mode 100755 index 00000000..98c0021b --- /dev/null +++ b/tests/fspick-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fspick-P -a27 -y -P /dev/full -e trace=fspick); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a27 -y -P /dev/full -e trace=fspick diff --git a/tests/fspick.c b/tests/fspick.c new file mode 100644 index 00000000..3f7f9d70 --- /dev/null +++ b/tests/fspick.c @@ -0,0 +1,109 @@ +/* + * Check decoding of fspick syscall. + * + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_fspick + +# include +# include +# include +# include +# include + +static const char *errstr; + +static long +k_fspick(const unsigned int dfd, + const void *fname, + const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | dfd; + const kernel_ulong_t arg2 = (uintptr_t) fname; + const kernel_ulong_t arg3 = fill | flags; + const long rc = syscall(__NR_fspick, arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + skip_if_unavailable("/proc/self/fd/"); + + static const char path_full[] = "/dev/full"; + const char *const path = tail_memdup(path_full, sizeof(path_full)); + char *const fname = tail_alloc(PATH_MAX); + const void *const efault = fname + PATH_MAX; + const char *const empty = efault - 1; + fill_memory_ex(fname, PATH_MAX, '0', 10); + + int dfd = open(path, O_WRONLY); + if (dfd < 0) + perror_msg_and_fail("open: %s", path); + + k_fspick(-1, 0, 1); +# ifndef PATH_TRACING + printf("fspick(-1, NULL, %s) = %s\n", "FSPICK_CLOEXEC", errstr); +# endif + + k_fspick(-100, fname, 0); +# ifndef PATH_TRACING + printf("fspick(%s, \"%.*s\"..., 0) = %s\n", + "AT_FDCWD", (int) PATH_MAX - 1, fname, errstr); +# endif + + fname[PATH_MAX - 1] = '\0'; + k_fspick(dfd, fname, 0xfffffff0); + printf("fspick(%d<%s>, \"%s\", %s) = %s\n", + dfd, path, fname, "0xfffffff0 /* FSPICK_??? */", errstr); + + k_fspick(-1, efault, 0xf); +# ifndef PATH_TRACING + printf("fspick(-1, %p, %s) = %s\n", + efault, + "FSPICK_CLOEXEC|FSPICK_SYMLINK_NOFOLLOW" + "|FSPICK_NO_AUTOMOUNT|FSPICK_EMPTY_PATH", + errstr); +# endif + + k_fspick(-1, empty, -1); +# ifndef PATH_TRACING + printf("fspick(-1, \"\", %s|0xfffffff0) = %s\n", + "FSPICK_CLOEXEC|FSPICK_SYMLINK_NOFOLLOW" + "|FSPICK_NO_AUTOMOUNT|FSPICK_EMPTY_PATH", + errstr); +# endif + + if (k_fspick(-1, path, 0) < 0) + printf("fspick(-1, \"%s\", 0) = %s\n", + path, errstr); + else + printf("fspick(-1, \"%s\", 0) = %s<%s>\n", + path, errstr, path); + + if (k_fspick(dfd, empty, 8) < 0) + printf("fspick(%d<%s>, \"\", %s) = %s\n", + dfd, path, "FSPICK_EMPTY_PATH", errstr); + else + printf("fspick(%d<%s>, \"\", %s) = %s<%s>\n", + dfd, path, "FSPICK_EMPTY_PATH", errstr, path); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_fspick") + +#endif diff --git a/tests/fspick.gen.test b/tests/fspick.gen.test new file mode 100755 index 00000000..a1261985 --- /dev/null +++ b/tests/fspick.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fspick -a27 -y); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a27 -y diff --git a/tests/fstat.c b/tests/fstat.c index 7a52e0cc..d0b5454d 100644 --- a/tests/fstat.c +++ b/tests/fstat.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fstat diff --git a/tests/fstat64.c b/tests/fstat64.c index 5d30ca41..2ce73a98 100644 --- a/tests/fstat64.c +++ b/tests/fstat64.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fstat64 diff --git a/tests/fstatat64.c b/tests/fstatat64.c index 949463c9..965958ef 100644 --- a/tests/fstatat64.c +++ b/tests/fstatat64.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fstatat64 diff --git a/tests/fstatat64.gen.test b/tests/fstatat64.gen.test index 8da5c7f2..a453ff22 100755 --- a/tests/fstatat64.gen.test +++ b/tests/fstatat64.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fstatat64 -a32 -v -P stat.sample -P /dev/full); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (fstatat64 -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a32 -v -P stat.sample -P /dev/full +run_strace_match_diff -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full diff --git a/tests/fstatfs.c b/tests/fstatfs.c index f1609405..e3a38aa7 100644 --- a/tests/fstatfs.c +++ b/tests/fstatfs.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fstatfs diff --git a/tests/fstatfs64.c b/tests/fstatfs64.c index 14da042a..95171ca2 100644 --- a/tests/fstatfs64.c +++ b/tests/fstatfs64.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fstatfs64 diff --git a/tests/fsync.c b/tests/fsync.c index 5624096b..2efc3395 100644 --- a/tests/fsync.c +++ b/tests/fsync.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_fsync diff --git a/tests/ftruncate.c b/tests/ftruncate.c index 6c77d4b1..70f813f8 100644 --- a/tests/ftruncate.c +++ b/tests/ftruncate.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_ftruncate diff --git a/tests/ftruncate64.c b/tests/ftruncate64.c index b7e350b4..ad7fc471 100644 --- a/tests/ftruncate64.c +++ b/tests/ftruncate64.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_ftruncate64 diff --git a/tests/futex.c b/tests/futex.c index 47191f27..f246e22a 100644 --- a/tests/futex.c +++ b/tests/futex.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -8,7 +8,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_futex @@ -495,7 +495,7 @@ main(int argc, char *argv[]) * wake val2 processes waiting for uaddr2 in case * operation encoded in val3 (change of value at uaddr2 * and comparison of previous value against provided - * constant) succeedes with value at uaddr2. Operation + * constant) succeeds with value at uaddr2. Operation * result is written to value of uaddr2 (in any case). * 1. uaddr - futex address * 2. op - FUTEX_WAKE_OP diff --git a/tests/futimesat.c b/tests/futimesat.c index 8024f87b..5782f1f6 100644 --- a/tests/futimesat.c +++ b/tests/futimesat.c @@ -2,13 +2,14 @@ * Check decoding of futimesat syscall. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_futimesat diff --git a/tests/gen_tests.am b/tests/gen_tests.am index e6d1fc7b..e0a2952d 100644 --- a/tests/gen_tests.am +++ b/tests/gen_tests.am @@ -1,5 +1,5 @@ # Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in; do not edit. -GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test accept4.gen.test access.gen.test acct.gen.test add_key.gen.test adjtimex.gen.test aio.gen.test aio_pgetevents.gen.test alarm.gen.test bpf.gen.test bpf-obj_get_info_by_fd.gen.test bpf-obj_get_info_by_fd-prog.gen.test bpf-obj_get_info_by_fd-prog-v.gen.test bpf-obj_get_info_by_fd-v.gen.test bpf-v.gen.test btrfs.gen.test chmod.gen.test chown.gen.test chown32.gen.test chroot.gen.test clock.gen.test clock_adjtime.gen.test clock_nanosleep.gen.test clock_xettime.gen.test copy_file_range.gen.test creat.gen.test delete_module.gen.test dev-yy.gen.test dup.gen.test dup2.gen.test dup3.gen.test epoll_create.gen.test epoll_create1.gen.test epoll_ctl.gen.test epoll_pwait.gen.test epoll_wait.gen.test erestartsys.gen.test execveat.gen.test execveat-v.gen.test faccessat.gen.test fadvise64_64.gen.test fallocate.gen.test fanotify_init.gen.test fanotify_mark.gen.test fanotify_mark-Xabbrev.gen.test fanotify_mark-Xraw.gen.test fanotify_mark-Xverbose.gen.test fchdir.gen.test fchmod.gen.test fchmodat.gen.test fchown.gen.test fchown32.gen.test fchownat.gen.test fcntl.gen.test fcntl64.gen.test fdatasync.gen.test file_handle.gen.test file_ioctl.gen.test finit_module.gen.test flock.gen.test fork-f.gen.test fstat.gen.test fstat-Xabbrev.gen.test fstat-Xraw.gen.test fstat-Xverbose.gen.test fstat64.gen.test fstat64-Xabbrev.gen.test fstat64-Xraw.gen.test fstat64-Xverbose.gen.test fstatat64.gen.test fstatfs.gen.test fstatfs64.gen.test fsync.gen.test fsync-y.gen.test ftruncate.gen.test ftruncate64.gen.test futimesat.gen.test get_mempolicy.gen.test getcpu.gen.test getcwd.gen.test getdents.gen.test getdents64.gen.test getegid.gen.test getegid32.gen.test geteuid.gen.test geteuid32.gen.test getgid.gen.test getgid32.gen.test getgroups.gen.test getgroups32.gen.test getpeername.gen.test getpgrp.gen.test getpid.gen.test getppid.gen.test getrandom.gen.test getresgid.gen.test getresgid32.gen.test getresuid.gen.test getresuid32.gen.test getrlimit.gen.test getrusage.gen.test getsid.gen.test getsockname.gen.test gettid.gen.test getuid32.gen.test getxxid.gen.test group_req.gen.test inet-cmsg.gen.test init_module.gen.test inotify.gen.test inotify_init1.gen.test io_uring_enter.gen.test io_uring_register.gen.test io_uring_setup.gen.test ioctl_block.gen.test ioctl_dm.gen.test ioctl_dm-v.gen.test ioctl_evdev.gen.test ioctl_evdev-v.gen.test ioctl_inotify.gen.test ioctl_kvm_run.gen.test ioctl_kvm_run-v.gen.test ioctl_kvm_run_auxstr_vcpu.gen.test ioctl_loop.gen.test ioctl_loop-nv.gen.test ioctl_loop-v.gen.test ioctl_mtd.gen.test ioctl_nbd.gen.test ioctl_nsfs.gen.test ioctl_perf.gen.test ioctl_ptp.gen.test ioctl_random.gen.test ioctl_rtc.gen.test ioctl_rtc-v.gen.test ioctl_scsi.gen.test ioctl_sg_io_v3.gen.test ioctl_sg_io_v4.gen.test ioctl_sock_gifconf.gen.test ioctl_uffdio.gen.test ioctl_v4l2.gen.test ioperm.gen.test iopl.gen.test ioprio.gen.test ioprio-Xabbrev.gen.test ioprio-Xraw.gen.test ioprio-Xverbose.gen.test ip_mreq.gen.test ipc.gen.test ipc_msg.gen.test ipc_msg-Xabbrev.gen.test ipc_msg-Xraw.gen.test ipc_msg-Xverbose.gen.test ipc_msgbuf-Xabbrev.gen.test ipc_msgbuf-Xraw.gen.test ipc_msgbuf-Xverbose.gen.test ipc_sem.gen.test ipc_sem-Xabbrev.gen.test ipc_sem-Xraw.gen.test ipc_sem-Xverbose.gen.test ipc_shm.gen.test ipc_shm-Xabbrev.gen.test ipc_shm-Xraw.gen.test ipc_shm-Xverbose.gen.test kcmp.gen.test kcmp-y.gen.test kern_features.gen.test kernel_version.gen.test kernel_version-Xabbrev.gen.test kernel_version-Xraw.gen.test kernel_version-Xverbose.gen.test kexec_file_load.gen.test kexec_load.gen.test keyctl.gen.test keyctl-Xabbrev.gen.test keyctl-Xraw.gen.test keyctl-Xverbose.gen.test kill.gen.test lchown.gen.test lchown32.gen.test link.gen.test linkat.gen.test lookup_dcookie.gen.test lstat.gen.test lstat64.gen.test madvise.gen.test mbind.gen.test membarrier.gen.test memfd_create.gen.test memfd_create-Xabbrev.gen.test memfd_create-Xraw.gen.test memfd_create-Xverbose.gen.test migrate_pages.gen.test mincore.gen.test mkdir.gen.test mkdirat.gen.test mknod.gen.test mknodat.gen.test mlock.gen.test mlock2.gen.test mlockall.gen.test mmap-Xabbrev.gen.test mmap-Xraw.gen.test mmap-Xverbose.gen.test mmap64.gen.test mmap64-Xabbrev.gen.test mmap64-Xraw.gen.test mmap64-Xverbose.gen.test mmsg.gen.test mmsg-silent.gen.test mmsg_name.gen.test mmsg_name-v.gen.test modify_ldt.gen.test mount.gen.test mount-Xabbrev.gen.test mount-Xraw.gen.test mount-Xverbose.gen.test move_pages.gen.test move_pages-Xabbrev.gen.test move_pages-Xraw.gen.test move_pages-Xverbose.gen.test mq.gen.test mq_sendrecv.gen.test mq_sendrecv-read.gen.test mq_sendrecv-write.gen.test msg_control.gen.test msg_control-v.gen.test msg_name.gen.test munlockall.gen.test nanosleep.gen.test net-icmp_filter.gen.test net-packet_mreq.gen.test net-packet_mreq-Xabbrev.gen.test net-packet_mreq-Xraw.gen.test net-packet_mreq-Xverbose.gen.test net-sockaddr.gen.test net-tpacket_req.gen.test net-tpacket_stats.gen.test net-yy-inet6.gen.test netlink_audit.gen.test netlink_crypto.gen.test netlink_generic.gen.test netlink_kobject_uevent.gen.test netlink_netfilter.gen.test netlink_protocol.gen.test netlink_route.gen.test netlink_selinux.gen.test netlink_xfrm.gen.test newfstatat.gen.test nfnetlink_acct.gen.test nfnetlink_cthelper.gen.test nfnetlink_ctnetlink.gen.test nfnetlink_ctnetlink_exp.gen.test nfnetlink_cttimeout.gen.test nfnetlink_ipset.gen.test nfnetlink_nft_compat.gen.test nfnetlink_nftables.gen.test nfnetlink_osf.gen.test nfnetlink_queue.gen.test nfnetlink_ulog.gen.test nlattr.gen.test nlattr_br_port_msg.gen.test nlattr_crypto_user_alg.gen.test nlattr_dcbmsg.gen.test nlattr_fib_rule_hdr.gen.test nlattr_ifaddrlblmsg.gen.test nlattr_ifaddrmsg.gen.test nlattr_ifinfomsg.gen.test nlattr_ifla_af_spec.gen.test nlattr_ifla_brport.gen.test nlattr_ifla_linkinfo.gen.test nlattr_ifla_port.gen.test nlattr_ifla_xdp.gen.test nlattr_inet_diag_msg.gen.test nlattr_inet_diag_req_compat.gen.test nlattr_inet_diag_req_v2.gen.test nlattr_mdba_mdb_entry.gen.test nlattr_mdba_router_port.gen.test nlattr_ndmsg.gen.test nlattr_ndtmsg.gen.test nlattr_netconfmsg.gen.test nlattr_netlink_diag_msg.gen.test nlattr_nlmsgerr.gen.test nlattr_packet_diag_msg.gen.test nlattr_rtgenmsg.gen.test nlattr_rtmsg.gen.test nlattr_smc_diag_msg.gen.test nlattr_tc_stats.gen.test nlattr_tca_stab.gen.test nlattr_tcamsg.gen.test nlattr_tcmsg.gen.test nlattr_unix_diag_msg.gen.test old_mmap.gen.test old_mmap-P.gen.test old_mmap-Xabbrev.gen.test old_mmap-Xraw.gen.test old_mmap-Xverbose.gen.test old_mmap-v-none.gen.test oldfstat.gen.test oldlstat.gen.test oldselect.gen.test oldselect-P.gen.test oldselect-efault.gen.test oldselect-efault-P.gen.test oldstat.gen.test open.gen.test openat.gen.test orphaned_process_group.gen.test osf_utimes.gen.test pause.gen.test perf_event_open.gen.test perf_event_open_nonverbose.gen.test perf_event_open_unabbrev.gen.test personality-Xabbrev.gen.test personality-Xraw.gen.test personality-Xverbose.gen.test pidfd_send_signal.gen.test pipe2.gen.test pkey_alloc.gen.test pkey_free.gen.test pkey_mprotect.gen.test ppoll.gen.test ppoll-P.gen.test ppoll-v.gen.test pread64-pwrite64.gen.test preadv.gen.test preadv-pwritev.gen.test preadv2-pwritev2.gen.test printpath-umovestr.gen.test printpath-umovestr-peekdata.gen.test printpath-umovestr-undumpable.gen.test printsignal-Xabbrev.gen.test printsignal-Xraw.gen.test printsignal-Xverbose.gen.test printstr.gen.test printstrn-umoven.gen.test printstrn-umoven-peekdata.gen.test printstrn-umoven-undumpable.gen.test prlimit64.gen.test process_vm_readv.gen.test process_vm_writev.gen.test pselect6.gen.test ptrace.gen.test ptrace_syscall_info.gen.test pwritev.gen.test quotactl.gen.test quotactl-Xabbrev.gen.test quotactl-Xraw.gen.test quotactl-Xverbose.gen.test quotactl-v.gen.test quotactl-xfs.gen.test quotactl-xfs-v.gen.test read-write.gen.test readahead.gen.test readdir.gen.test readlink.gen.test readlinkat.gen.test reboot.gen.test recvfrom.gen.test recvmmsg-timeout.gen.test recvmsg.gen.test regex.gen.test remap_file_pages.gen.test remap_file_pages-Xabbrev.gen.test remap_file_pages-Xraw.gen.test remap_file_pages-Xverbose.gen.test rename.gen.test renameat.gen.test renameat2.gen.test request_key.gen.test riscv_flush_icache.gen.test rmdir.gen.test rt_sigpending.gen.test rt_sigprocmask.gen.test rt_sigqueueinfo.gen.test rt_sigreturn.gen.test rt_sigsuspend.gen.test rt_sigtimedwait.gen.test rt_tgsigqueueinfo.gen.test s390_guarded_storage.gen.test s390_guarded_storage-v.gen.test s390_pci_mmio_read_write.gen.test s390_runtime_instr.gen.test s390_sthyi.gen.test s390_sthyi-v.gen.test sched.gen.test sched_get_priority_mxx.gen.test sched_rr_get_interval.gen.test sched_xetaffinity.gen.test sched_xetattr.gen.test sched_xetparam.gen.test sched_xetscheduler.gen.test sched_yield.gen.test seccomp-filter.gen.test seccomp-filter-v.gen.test seccomp_get_action_avail.gen.test select.gen.test select-P.gen.test semop.gen.test sendfile.gen.test sendfile64.gen.test set_mempolicy.gen.test setdomainname.gen.test setfsgid.gen.test setfsgid32.gen.test setfsuid.gen.test setfsuid32.gen.test setgid.gen.test setgid32.gen.test setgroups.gen.test setgroups32.gen.test sethostname.gen.test setns.gen.test setregid.gen.test setregid32.gen.test setresgid.gen.test setresgid32.gen.test setresuid.gen.test setresuid32.gen.test setreuid.gen.test setreuid32.gen.test setrlimit.gen.test setrlimit-Xabbrev.gen.test setrlimit-Xraw.gen.test setrlimit-Xverbose.gen.test setuid.gen.test setuid32.gen.test shmxt.gen.test shutdown.gen.test sigaction.gen.test siginfo.gen.test signal.gen.test signal_receive.gen.test signalfd4.gen.test sigpending.gen.test sigprocmask.gen.test sigreturn.gen.test sigsuspend.gen.test so_error.gen.test so_linger.gen.test so_peercred.gen.test so_peercred-Xabbrev.gen.test so_peercred-Xraw.gen.test so_peercred-Xverbose.gen.test sock_filter-v.gen.test sock_filter-v-Xabbrev.gen.test sock_filter-v-Xraw.gen.test sock_filter-v-Xverbose.gen.test sockaddr_xlat-Xabbrev.gen.test sockaddr_xlat-Xraw.gen.test sockaddr_xlat-Xverbose.gen.test socketcall.gen.test sockopt-sol_netlink.gen.test sockopt-timestamp.gen.test splice.gen.test stat.gen.test stat64.gen.test statfs.gen.test statfs64.gen.test statx.gen.test swap.gen.test sxetmask.gen.test symlink.gen.test symlinkat.gen.test sync.gen.test sync_file_range.gen.test sync_file_range2.gen.test sysinfo.gen.test syslog.gen.test tee.gen.test time.gen.test timer_create.gen.test timer_xettime.gen.test timerfd_xettime.gen.test times.gen.test times-fail.gen.test trace_fstat.gen.test trace_fstatfs.gen.test trace_lstat.gen.test trace_personality_32.gen.test trace_personality_64.gen.test trace_personality_regex_32.gen.test trace_personality_regex_64.gen.test trace_personality_regex_x32.gen.test trace_personality_x32.gen.test trace_question.gen.test trace_stat.gen.test trace_stat_like.gen.test trace_statfs.gen.test trace_statfs_like.gen.test truncate.gen.test truncate64.gen.test ugetrlimit.gen.test umask.gen.test umoven-illptr.gen.test umovestr-illptr.gen.test umovestr3.gen.test unlink.gen.test unlinkat.gen.test unshare.gen.test userfaultfd.gen.test ustat.gen.test utime.gen.test utimensat.gen.test utimensat-Xabbrev.gen.test utimensat-Xraw.gen.test utimensat-Xverbose.gen.test utimes.gen.test vfork-f.gen.test vhangup.gen.test vmsplice.gen.test wait4.gen.test wait4-v.gen.test waitid.gen.test waitid-v.gen.test waitpid.gen.test xattr.gen.test xattr-strings.gen.test xet_robust_list.gen.test xetitimer.gen.test xetpgid.gen.test xetpriority.gen.test xettimeofday.gen.test +GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test accept4.gen.test access.gen.test acct.gen.test add_key.gen.test adjtimex.gen.test aio.gen.test aio_pgetevents.gen.test alarm.gen.test bpf.gen.test bpf-obj_get_info_by_fd.gen.test bpf-obj_get_info_by_fd-prog.gen.test bpf-obj_get_info_by_fd-prog-v.gen.test bpf-obj_get_info_by_fd-v.gen.test bpf-v.gen.test btrfs.gen.test chmod.gen.test chown.gen.test chown32.gen.test chroot.gen.test clock.gen.test clock_adjtime.gen.test clock_nanosleep.gen.test clock_xettime.gen.test clone3.gen.test clone3-Xabbrev.gen.test clone3-Xraw.gen.test clone3-Xverbose.gen.test clone3-success-Xabbrev.gen.test clone3-success-Xraw.gen.test clone3-success-Xverbose.gen.test clone_parent.gen.test clone_parent--quiet-exit.gen.test clone_parent-q.gen.test clone_parent-qq.gen.test clone_ptrace--quiet-attach.gen.test clone_ptrace--quiet-exit.gen.test clone_ptrace-q.gen.test clone_ptrace-qq.gen.test close_range.gen.test close_range-P.gen.test close_range-y.gen.test close_range-yy.gen.test copy_file_range.gen.test creat.gen.test delete_module.gen.test dev--decode-fds-dev.gen.test dev--decode-fds-path.gen.test dev--decode-fds-socket.gen.test dev-yy.gen.test dup.gen.test dup-P.gen.test dup-y.gen.test dup-yy.gen.test dup2.gen.test dup2-P.gen.test dup2-y.gen.test dup2-yy.gen.test dup3.gen.test dup3-P.gen.test dup3-y.gen.test dup3-yy.gen.test epoll_create.gen.test epoll_create1.gen.test epoll_ctl.gen.test epoll_pwait.gen.test epoll_wait.gen.test erestartsys.gen.test execveat.gen.test execveat-v.gen.test faccessat-P.gen.test faccessat-y.gen.test faccessat-yy.gen.test faccessat2-P.gen.test faccessat2-y.gen.test faccessat2-yy.gen.test fadvise64_64.gen.test fallocate.gen.test fanotify_init.gen.test fanotify_mark.gen.test fanotify_mark-Xabbrev.gen.test fanotify_mark-Xraw.gen.test fanotify_mark-Xverbose.gen.test fchdir.gen.test fchmod.gen.test fchmodat.gen.test fchown.gen.test fchown32.gen.test fchownat.gen.test fcntl.gen.test fcntl--pidns-translation.gen.test fcntl64.gen.test fcntl64--pidns-translation.gen.test fdatasync.gen.test file_handle.gen.test file_ioctl.gen.test filter_seccomp.gen.test filter_seccomp-flag.gen.test finit_module.gen.test flock.gen.test fork-f.gen.test fsconfig.gen.test fsconfig-P.gen.test fsmount.gen.test fsopen.gen.test fspick.gen.test fspick-P.gen.test fstat.gen.test fstat-Xabbrev.gen.test fstat-Xraw.gen.test fstat-Xverbose.gen.test fstat64.gen.test fstat64-Xabbrev.gen.test fstat64-Xraw.gen.test fstat64-Xverbose.gen.test fstatat64.gen.test fstatfs.gen.test fstatfs64.gen.test fsync.gen.test fsync-y.gen.test ftruncate.gen.test ftruncate64.gen.test futimesat.gen.test get_mempolicy.gen.test getcpu.gen.test getcwd.gen.test getdents.gen.test getdents-v.gen.test getdents64.gen.test getdents64-v.gen.test getegid.gen.test getegid-creds.gen.test getegid32.gen.test getegid32-creds.gen.test geteuid.gen.test geteuid-creds.gen.test geteuid32.gen.test geteuid32-creds.gen.test getgid.gen.test getgid-creds.gen.test getgid32.gen.test getgid32-creds.gen.test getgroups.gen.test getgroups32.gen.test getpeername.gen.test getpgrp.gen.test getpgrp--pidns-translation.gen.test getpid.gen.test getpid--pidns-translation.gen.test getppid.gen.test getrandom.gen.test getresgid.gen.test getresgid32.gen.test getresuid.gen.test getresuid32.gen.test getrlimit.gen.test getrusage.gen.test getsid.gen.test getsid--pidns-translation.gen.test getsockname.gen.test gettid.gen.test getuid-creds.gen.test getuid32.gen.test getuid32-creds.gen.test getxgid.gen.test getxpid.gen.test getxuid.gen.test group_req.gen.test inet-cmsg.gen.test init_module.gen.test inotify.gen.test inotify_init.gen.test inotify_init1.gen.test inotify_init1-y.gen.test io_uring_enter.gen.test io_uring_register.gen.test io_uring_setup.gen.test ioctl_block.gen.test ioctl_dm.gen.test ioctl_dm-v.gen.test ioctl_evdev.gen.test ioctl_evdev-Xabbrev.gen.test ioctl_evdev-Xraw.gen.test ioctl_evdev-Xverbose.gen.test ioctl_evdev-v.gen.test ioctl_evdev-v-Xabbrev.gen.test ioctl_evdev-v-Xraw.gen.test ioctl_evdev-v-Xverbose.gen.test ioctl_evdev-success-Xabbrev.gen.test ioctl_evdev-success-Xraw.gen.test ioctl_evdev-success-Xverbose.gen.test ioctl_evdev-success-v.gen.test ioctl_evdev-success-v-Xabbrev.gen.test ioctl_evdev-success-v-Xraw.gen.test ioctl_evdev-success-v-Xverbose.gen.test ioctl_hdio.gen.test ioctl_hdio-Xabbrev.gen.test ioctl_hdio-Xraw.gen.test ioctl_hdio-Xverbose.gen.test ioctl_hdio-v.gen.test ioctl_hdio-v-Xabbrev.gen.test ioctl_hdio-v-Xraw.gen.test ioctl_hdio-v-Xverbose.gen.test ioctl_hdio-success.gen.test ioctl_hdio-success-Xabbrev.gen.test ioctl_hdio-success-Xraw.gen.test ioctl_hdio-success-Xverbose.gen.test ioctl_hdio-success-v.gen.test ioctl_hdio-success-v-Xabbrev.gen.test ioctl_hdio-success-v-Xraw.gen.test ioctl_hdio-success-v-Xverbose.gen.test ioctl_inotify.gen.test ioctl_kvm_run.gen.test ioctl_kvm_run-v.gen.test ioctl_kvm_run_auxstr_vcpu.gen.test ioctl_loop.gen.test ioctl_loop-nv.gen.test ioctl_loop-v.gen.test ioctl_mtd.gen.test ioctl_nbd.gen.test ioctl_nsfs.gen.test ioctl_perf.gen.test ioctl_perf-success.gen.test ioctl_ptp.gen.test ioctl_random.gen.test ioctl_rtc.gen.test ioctl_rtc-v.gen.test ioctl_scsi.gen.test ioctl_sg_io_v3.gen.test ioctl_sg_io_v4.gen.test ioctl_sock_gifconf.gen.test ioctl_tee.gen.test ioctl_uffdio.gen.test ioctl_v4l2.gen.test ioctl_v4l2-Xabbrev.gen.test ioctl_v4l2-Xraw.gen.test ioctl_v4l2-Xverbose.gen.test ioctl_v4l2-v.gen.test ioctl_v4l2-v-Xabbrev.gen.test ioctl_v4l2-v-Xraw.gen.test ioctl_v4l2-v-Xverbose.gen.test ioctl_v4l2-success.gen.test ioctl_v4l2-success-Xabbrev.gen.test ioctl_v4l2-success-Xraw.gen.test ioctl_v4l2-success-Xverbose.gen.test ioctl_v4l2-success-v.gen.test ioctl_v4l2-success-v-Xabbrev.gen.test ioctl_v4l2-success-v-Xraw.gen.test ioctl_v4l2-success-v-Xverbose.gen.test ioctl_watchdog.gen.test ioperm.gen.test iopl.gen.test ioprio.gen.test ioprio--pidns-translation.gen.test ioprio-Xabbrev.gen.test ioprio-Xraw.gen.test ioprio-Xverbose.gen.test ip_mreq.gen.test ipc.gen.test ipc_msg.gen.test ipc_msg-Xabbrev.gen.test ipc_msg-Xraw.gen.test ipc_msg-Xverbose.gen.test ipc_msgbuf-Xabbrev.gen.test ipc_msgbuf-Xraw.gen.test ipc_msgbuf-Xverbose.gen.test ipc_sem.gen.test ipc_sem-Xabbrev.gen.test ipc_sem-Xraw.gen.test ipc_sem-Xverbose.gen.test ipc_shm.gen.test ipc_shm-Xabbrev.gen.test ipc_shm-Xraw.gen.test ipc_shm-Xverbose.gen.test kcmp.gen.test kcmp-y.gen.test kcmp-y--pidns-translation.gen.test kern_features.gen.test kernel_version.gen.test kernel_version-Xabbrev.gen.test kernel_version-Xraw.gen.test kernel_version-Xverbose.gen.test kexec_file_load.gen.test kexec_load.gen.test keyctl.gen.test keyctl-Xabbrev.gen.test keyctl-Xraw.gen.test keyctl-Xverbose.gen.test kill.gen.test kill--pidns-translation.gen.test ksysent.gen.test lchown.gen.test lchown32.gen.test link.gen.test linkat.gen.test lookup_dcookie.gen.test lstat.gen.test lstat64.gen.test madvise.gen.test maybe_switch_current_tcp.gen.test maybe_switch_current_tcp--quiet-thread-execve.gen.test mbind.gen.test mbind-Xabbrev.gen.test mbind-Xraw.gen.test mbind-Xverbose.gen.test membarrier.gen.test memfd_create.gen.test memfd_create-Xabbrev.gen.test memfd_create-Xraw.gen.test memfd_create-Xverbose.gen.test migrate_pages.gen.test migrate_pages--pidns-translation.gen.test mincore.gen.test mkdir.gen.test mkdirat.gen.test mknod.gen.test mknodat.gen.test mlock.gen.test mlock2.gen.test mlockall.gen.test mmap-Xabbrev.gen.test mmap-Xraw.gen.test mmap-Xverbose.gen.test mmap64.gen.test mmap64-Xabbrev.gen.test mmap64-Xraw.gen.test mmap64-Xverbose.gen.test mmsg.gen.test mmsg-silent.gen.test mmsg_name.gen.test mmsg_name-v.gen.test modify_ldt.gen.test mount.gen.test mount-Xabbrev.gen.test mount-Xraw.gen.test mount-Xverbose.gen.test move_mount.gen.test move_mount-P.gen.test move_pages.gen.test move_pages-Xabbrev.gen.test move_pages-Xraw.gen.test move_pages-Xverbose.gen.test move_pages--pidns-translation.gen.test mq.gen.test mq_sendrecv.gen.test mq_sendrecv-read.gen.test mq_sendrecv-write.gen.test msg_control.gen.test msg_control-v.gen.test msg_name.gen.test munlockall.gen.test nanosleep.gen.test net--decode-fds-dev-netlink.gen.test net--decode-fds-none-netlink.gen.test net--decode-fds-path-netlink.gen.test net--decode-fds-socket-netlink.gen.test net-icmp_filter.gen.test net-packet_mreq.gen.test net-packet_mreq-Xabbrev.gen.test net-packet_mreq-Xraw.gen.test net-packet_mreq-Xverbose.gen.test net-sockaddr.gen.test net-sockaddr--pidns-translation.gen.test net-tpacket_req.gen.test net-tpacket_stats.gen.test net-yy-inet6.gen.test netlink_audit.gen.test netlink_crypto.gen.test netlink_generic.gen.test netlink_kobject_uevent.gen.test netlink_netfilter.gen.test netlink_protocol.gen.test netlink_route.gen.test netlink_selinux.gen.test netlink_xfrm.gen.test newfstatat.gen.test nfnetlink_acct.gen.test nfnetlink_cthelper.gen.test nfnetlink_ctnetlink.gen.test nfnetlink_ctnetlink_exp.gen.test nfnetlink_cttimeout.gen.test nfnetlink_ipset.gen.test nfnetlink_nft_compat.gen.test nfnetlink_nftables.gen.test nfnetlink_osf.gen.test nfnetlink_queue.gen.test nfnetlink_ulog.gen.test nlattr.gen.test nlattr_br_port_msg.gen.test nlattr_crypto_user_alg.gen.test nlattr_dcbmsg.gen.test nlattr_fib_rule_hdr.gen.test nlattr_ifaddrlblmsg.gen.test nlattr_ifaddrmsg.gen.test nlattr_ifinfomsg.gen.test nlattr_ifla_af_spec.gen.test nlattr_ifla_brport.gen.test nlattr_ifla_linkinfo.gen.test nlattr_ifla_port.gen.test nlattr_ifla_xdp.gen.test nlattr_ifla_xdp-y.gen.test nlattr_inet_diag_msg.gen.test nlattr_inet_diag_req_compat.gen.test nlattr_inet_diag_req_v2.gen.test nlattr_mdba_mdb_entry.gen.test nlattr_mdba_router_port.gen.test nlattr_ndmsg.gen.test nlattr_ndtmsg.gen.test nlattr_netconfmsg.gen.test nlattr_netlink_diag_msg.gen.test nlattr_nlmsgerr.gen.test nlattr_packet_diag_msg.gen.test nlattr_rtgenmsg.gen.test nlattr_rtmsg.gen.test nlattr_smc_diag_msg.gen.test nlattr_tc_stats.gen.test nlattr_tca_stab.gen.test nlattr_tcamsg.gen.test nlattr_tcmsg.gen.test nlattr_unix_diag_msg.gen.test old_mmap.gen.test old_mmap-P.gen.test old_mmap-Xabbrev.gen.test old_mmap-Xraw.gen.test old_mmap-Xverbose.gen.test old_mmap-v-none.gen.test oldfstat.gen.test oldlstat.gen.test oldselect.gen.test oldselect-P.gen.test oldselect-efault.gen.test oldselect-efault-P.gen.test oldstat.gen.test open.gen.test open_tree.gen.test open_tree-P.gen.test openat.gen.test openat2.gen.test openat2-Xabbrev.gen.test openat2-Xraw.gen.test openat2-Xverbose.gen.test openat2-v.gen.test openat2-v-y.gen.test openat2-v-y-Xabbrev.gen.test openat2-v-y-Xraw.gen.test openat2-v-y-Xverbose.gen.test openat2-y.gen.test orphaned_process_group.gen.test osf_utimes.gen.test pause.gen.test perf_event_open.gen.test perf_event_open_nonverbose.gen.test perf_event_open_unabbrev.gen.test personality-Xabbrev.gen.test personality-Xraw.gen.test personality-Xverbose.gen.test pidfd_getfd.gen.test pidfd_getfd-y.gen.test pidfd_getfd-yy.gen.test pidfd_open.gen.test pidfd_open--decode-fd-path.gen.test pidfd_open--decode-fd-pidfd.gen.test pidfd_open--decode-fd-socket.gen.test pidfd_open-P.gen.test pidfd_open-y.gen.test pidfd_open-yy.gen.test pidfd_open--pidns-translation.gen.test pidfd_send_signal.gen.test pidfd_send_signal--pidns-translation.gen.test pipe2.gen.test pkey_alloc.gen.test pkey_free.gen.test pkey_mprotect.gen.test ppoll.gen.test ppoll-P.gen.test ppoll-v.gen.test pread64-pwrite64.gen.test preadv.gen.test preadv-pwritev.gen.test preadv2-pwritev2.gen.test printpath-umovestr.gen.test printpath-umovestr-peekdata.gen.test printpath-umovestr-undumpable.gen.test printsignal-Xabbrev.gen.test printsignal-Xraw.gen.test printsignal-Xverbose.gen.test printstr.gen.test printstrn-umoven.gen.test printstrn-umoven-peekdata.gen.test printstrn-umoven-undumpable.gen.test prlimit64.gen.test prlimit64--pidns-translation.gen.test process_vm_readv.gen.test process_vm_readv--pidns-translation.gen.test process_vm_writev.gen.test process_vm_writev--pidns-translation.gen.test pselect6.gen.test ptrace.gen.test ptrace_syscall_info.gen.test pwritev.gen.test quotactl.gen.test quotactl-Xabbrev.gen.test quotactl-Xraw.gen.test quotactl-Xverbose.gen.test quotactl-v.gen.test quotactl-xfs.gen.test quotactl-xfs-v.gen.test read-write.gen.test readahead.gen.test readdir.gen.test readlink.gen.test readlinkat.gen.test reboot.gen.test recv-MSG_TRUNC.gen.test recvfrom.gen.test recvfrom-MSG_TRUNC.gen.test recvmmsg-timeout.gen.test recvmsg.gen.test regex.gen.test remap_file_pages.gen.test remap_file_pages-Xabbrev.gen.test remap_file_pages-Xraw.gen.test remap_file_pages-Xverbose.gen.test rename.gen.test renameat.gen.test renameat2.gen.test request_key.gen.test riscv_flush_icache.gen.test rmdir.gen.test rt_sigpending.gen.test rt_sigprocmask.gen.test rt_sigqueueinfo.gen.test rt_sigqueueinfo--pidns-translation.gen.test rt_sigreturn.gen.test rt_sigsuspend.gen.test rt_sigtimedwait.gen.test rt_tgsigqueueinfo.gen.test rt_tgsigqueueinfo--pidns-translation.gen.test s390_guarded_storage.gen.test s390_guarded_storage-v.gen.test s390_pci_mmio_read_write.gen.test s390_runtime_instr.gen.test s390_sthyi.gen.test s390_sthyi-v.gen.test sched.gen.test sched_get_priority_mxx.gen.test sched_rr_get_interval.gen.test sched_xetaffinity.gen.test sched_xetaffinity--pidns-translation.gen.test sched_xetattr.gen.test sched_xetattr--pidns-translation.gen.test sched_xetparam.gen.test sched_xetparam--pidns-translation.gen.test sched_xetscheduler.gen.test sched_xetscheduler--pidns-translation.gen.test sched_yield.gen.test seccomp-filter.gen.test seccomp-filter-v.gen.test seccomp_get_action_avail.gen.test select.gen.test select-P.gen.test semop.gen.test semop-indirect.gen.test semtimedop.gen.test sendfile.gen.test sendfile64.gen.test set_mempolicy.gen.test set_mempolicy-Xabbrev.gen.test set_mempolicy-Xraw.gen.test set_mempolicy-Xverbose.gen.test setdomainname.gen.test setfsgid.gen.test setfsgid32.gen.test setfsuid.gen.test setfsuid32.gen.test setgid.gen.test setgid32.gen.test setgroups.gen.test setgroups32.gen.test sethostname.gen.test setns.gen.test setregid.gen.test setregid32.gen.test setresgid.gen.test setresgid32.gen.test setresuid.gen.test setresuid32.gen.test setreuid.gen.test setreuid32.gen.test setrlimit.gen.test setrlimit-Xabbrev.gen.test setrlimit-Xraw.gen.test setrlimit-Xverbose.gen.test setuid.gen.test setuid32.gen.test shmxt.gen.test shutdown.gen.test sigaction.gen.test siginfo.gen.test signal.gen.test signal_receive.gen.test signal_receive--pidns-translation.gen.test signalfd4.gen.test sigpending.gen.test sigprocmask.gen.test sigreturn.gen.test sigsuspend.gen.test so_error.gen.test so_linger.gen.test so_peercred.gen.test so_peercred-Xabbrev.gen.test so_peercred-Xraw.gen.test so_peercred-Xverbose.gen.test so_peercred--pidns-translation.gen.test sock_filter-v.gen.test sock_filter-v-Xabbrev.gen.test sock_filter-v-Xraw.gen.test sock_filter-v-Xverbose.gen.test sockaddr_xlat-Xabbrev.gen.test sockaddr_xlat-Xraw.gen.test sockaddr_xlat-Xverbose.gen.test socketcall.gen.test sockopt-sol_netlink.gen.test sockopt-timestamp.gen.test splice.gen.test stat.gen.test stat64.gen.test statfs.gen.test statfs64.gen.test status-all.gen.test status-failed.gen.test status-failed-long.gen.test status-failed-status.gen.test status-none.gen.test status-successful.gen.test status-successful-long.gen.test status-successful-status.gen.test status-unfinished.gen.test statx.gen.test strace--absolute-timestamps.gen.test strace--absolute-timestamps-format-time.gen.test strace--absolute-timestamps-format-time-precision-s.gen.test strace--absolute-timestamps-format-time-precision-ms.gen.test strace--absolute-timestamps-format-time-precision-us.gen.test strace--absolute-timestamps-format-time-precision-ns.gen.test strace--absolute-timestamps-format-unix-precision-s.gen.test strace--absolute-timestamps-format-unix-precision-ms.gen.test strace--absolute-timestamps-format-unix-precision-us.gen.test strace--absolute-timestamps-format-unix-precision-ns.gen.test strace--follow-forks-output-separately.gen.test strace--relative-timestamps.gen.test strace--relative-timestamps-s.gen.test strace--relative-timestamps-ms.gen.test strace--relative-timestamps-us.gen.test strace--relative-timestamps-ns.gen.test strace--syscall-times.gen.test strace--syscall-times-s.gen.test strace--syscall-times-ms.gen.test strace--syscall-times-us.gen.test strace--syscall-times-ns.gen.test strace--strings-in-hex.gen.test strace--strings-in-hex-all.gen.test strace--strings-in-hex-non-ascii.gen.test strace--timestamps.gen.test strace--timestamps-time.gen.test strace--timestamps-time-s.gen.test strace--timestamps-time-ms.gen.test strace--timestamps-time-us.gen.test strace--timestamps-time-ns.gen.test strace--timestamps-unix-s.gen.test strace--timestamps-unix-ms.gen.test strace--timestamps-unix-us.gen.test strace--timestamps-unix-ns.gen.test strace-n.gen.test strace-x.gen.test strace-xx.gen.test swap.gen.test sxetmask.gen.test symlink.gen.test symlinkat.gen.test sync.gen.test sync_file_range.gen.test sync_file_range2.gen.test sysinfo.gen.test syslog.gen.test tee.gen.test tgkill.gen.test tgkill--pidns-translation.gen.test threads-execve--quiet-thread-execve.gen.test threads-execve-q.gen.test threads-execve-qq.gen.test threads-execve-qqq.gen.test time.gen.test timer_create.gen.test timer_xettime.gen.test timerfd_xettime.gen.test times.gen.test times-fail.gen.test tkill.gen.test tkill--pidns-translation.gen.test trace_clock.gen.test trace_creds.gen.test trace_fstat.gen.test trace_fstatfs.gen.test trace_lstat.gen.test trace_personality_32.gen.test trace_personality_64.gen.test trace_personality_regex_32.gen.test trace_personality_regex_64.gen.test trace_personality_regex_x32.gen.test trace_personality_x32.gen.test trace_question.gen.test trace_stat.gen.test trace_stat_like.gen.test trace_statfs.gen.test trace_statfs_like.gen.test trie_test.gen.test truncate.gen.test truncate64.gen.test ugetrlimit.gen.test umask.gen.test umoven-illptr.gen.test umovestr-illptr.gen.test umovestr3.gen.test umovestr_cached_adjacent.gen.test unlink.gen.test unlinkat.gen.test unshare.gen.test userfaultfd.gen.test ustat.gen.test utime.gen.test utimensat.gen.test utimensat-Xabbrev.gen.test utimensat-Xraw.gen.test utimensat-Xverbose.gen.test utimes.gen.test vfork-f.gen.test vhangup.gen.test vmsplice.gen.test wait4.gen.test wait4-v.gen.test waitid.gen.test waitid-v.gen.test waitpid.gen.test xattr.gen.test xattr-strings.gen.test xet_robust_list.gen.test xet_robust_list--pidns-translation.gen.test xetitimer.gen.test xetpgid.gen.test xetpgid--pidns-translation.gen.test xetpriority.gen.test xetpriority--pidns-translation.gen.test xettimeofday.gen.test $(srcdir)/_newselect.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -79,6 +79,63 @@ $(srcdir)/clock_nanosleep.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/clock_xettime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/clone3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-success-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-success-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone3-success-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_parent.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_parent--quiet-exit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_parent-q.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_parent-qq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_ptrace--quiet-attach.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_ptrace--quiet-exit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_ptrace-q.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/clone_ptrace-qq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/close_range.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/close_range-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/close_range-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/close_range-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/copy_file_range.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -88,18 +145,54 @@ $(srcdir)/creat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/delete_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/dev--decode-fds-dev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dev--decode-fds-path.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dev--decode-fds-socket.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/dev-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/dup.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/dup-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/dup2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/dup2-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup2-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup2-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/dup3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/dup3-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup3-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/dup3-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/epoll_create.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -124,7 +217,22 @@ $(srcdir)/execveat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/execveat-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ -$(srcdir)/faccessat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in +$(srcdir)/faccessat-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat2-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat2-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/faccessat2-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/fadvise64_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in @@ -169,9 +277,15 @@ $(srcdir)/fchownat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/fcntl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/fcntl--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/fcntl64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/fcntl64--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/fdatasync.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -181,6 +295,12 @@ $(srcdir)/file_handle.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.i $(srcdir)/file_ioctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/filter_seccomp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/filter_seccomp-flag.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/finit_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -190,6 +310,24 @@ $(srcdir)/flock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/fork-f.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/fsconfig.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fsconfig-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fsmount.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fsopen.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fspick.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/fspick-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/fstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -250,27 +388,51 @@ $(srcdir)/getcwd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/getdents.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getdents-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getdents64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getdents64-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getegid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getegid-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getegid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getegid32-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/geteuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/geteuid-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/geteuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/geteuid32-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getgid-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getgid32-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getgroups.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -283,9 +445,15 @@ $(srcdir)/getpeername.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.i $(srcdir)/getpgrp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getpgrp--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getpid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getpid--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getppid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -313,16 +481,31 @@ $(srcdir)/getrusage.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/getsid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getsid--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getsockname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/gettid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/getuid-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/getuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ -$(srcdir)/getxxid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in +$(srcdir)/getuid32-creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/getxgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/getxpid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/getxuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/group_req.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in @@ -337,9 +520,15 @@ $(srcdir)/init_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.i $(srcdir)/inotify.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/inotify_init.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/inotify_init1.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/inotify_init1-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/io_uring_enter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -361,9 +550,96 @@ $(srcdir)/ioctl_dm-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/ioctl_evdev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_evdev-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioctl_evdev-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_evdev-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_evdev-success-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_hdio-success-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioctl_inotify.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -397,6 +673,9 @@ $(srcdir)/ioctl_nsfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/ioctl_perf.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_perf-success.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioctl_ptp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -421,12 +700,63 @@ $(srcdir)/ioctl_sg_io_v4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_test $(srcdir)/ioctl_sock_gifconf.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_tee.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioctl_uffdio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/ioctl_v4l2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioctl_v4l2-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-v-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-v-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_v4l2-success-v-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ioctl_watchdog.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioperm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -436,6 +766,9 @@ $(srcdir)/iopl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/ioprio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/ioprio--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/ioprio-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -502,6 +835,9 @@ $(srcdir)/kcmp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/kcmp-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/kcmp-y--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/kern_features.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -538,6 +874,12 @@ $(srcdir)/keyctl-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/kill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/kill--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/ksysent.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/lchown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -562,9 +904,24 @@ $(srcdir)/lstat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/madvise.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/maybe_switch_current_tcp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/maybe_switch_current_tcp--quiet-thread-execve.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/mbind.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/mbind-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/mbind-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/mbind-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/membarrier.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -583,6 +940,9 @@ $(srcdir)/memfd_create-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/g $(srcdir)/migrate_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/migrate_pages--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/mincore.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -655,6 +1015,12 @@ $(srcdir)/mount-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/mount-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/move_mount.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/move_mount-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/move_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -667,6 +1033,9 @@ $(srcdir)/move_pages-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/move_pages-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/move_pages--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/mq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -694,6 +1063,18 @@ $(srcdir)/munlockall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/nanosleep.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/net--decode-fds-dev-netlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/net--decode-fds-none-netlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/net--decode-fds-path-netlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/net--decode-fds-socket-netlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/net-icmp_filter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -712,6 +1093,9 @@ $(srcdir)/net-packet_mreq-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir $(srcdir)/net-sockaddr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/net-sockaddr--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/net-tpacket_req.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -823,6 +1207,9 @@ $(srcdir)/nlattr_ifla_port.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_te $(srcdir)/nlattr_ifla_xdp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/nlattr_ifla_xdp-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/nlattr_inet_diag_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -922,9 +1309,45 @@ $(srcdir)/oldstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/open.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/open_tree.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/open_tree-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/openat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/openat2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v-y-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v-y-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-v-y-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/openat2-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/orphaned_process_group.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -952,9 +1375,45 @@ $(srcdir)/personality-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_te $(srcdir)/personality-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/pidfd_getfd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_getfd-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_getfd-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open--decode-fd-path.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open--decode-fd-pidfd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open--decode-fd-socket.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/pidfd_open--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/pidfd_send_signal.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/pidfd_send_signal--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/pipe2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1021,12 +1480,21 @@ $(srcdir)/printstrn-umoven-undumpable.gen.test: $(abs_srcdir)/gen_tests.sh $(src $(srcdir)/prlimit64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/prlimit64--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/process_vm_readv.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/process_vm_readv--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/process_vm_writev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/process_vm_writev--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/pselect6.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1078,9 +1546,15 @@ $(srcdir)/readlinkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/reboot.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/recv-MSG_TRUNC.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/recvfrom.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/recvfrom-MSG_TRUNC.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/recvmmsg-timeout.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1129,6 +1603,9 @@ $(srcdir)/rt_sigprocmask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_test $(srcdir)/rt_sigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/rt_sigqueueinfo--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/rt_sigreturn.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1141,6 +1618,9 @@ $(srcdir)/rt_sigtimedwait.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/rt_tgsigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/rt_tgsigqueueinfo--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/s390_guarded_storage.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1171,15 +1651,27 @@ $(srcdir)/sched_rr_get_interval.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/g $(srcdir)/sched_xetaffinity.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/sched_xetaffinity--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sched_xetattr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/sched_xetattr--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sched_xetparam.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/sched_xetparam--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sched_xetscheduler.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/sched_xetscheduler--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sched_yield.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1201,6 +1693,12 @@ $(srcdir)/select-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/semop.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/semop-indirect.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/semtimedop.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sendfile.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1210,6 +1708,15 @@ $(srcdir)/sendfile64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/set_mempolicy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/set_mempolicy-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/set_mempolicy-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/set_mempolicy-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/setdomainname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1303,6 +1810,9 @@ $(srcdir)/signal.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/signal_receive.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/signal_receive--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/signalfd4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1336,6 +1846,9 @@ $(srcdir)/so_peercred-Xraw.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_te $(srcdir)/so_peercred-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/so_peercred--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/sock_filter-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1381,9 +1894,147 @@ $(srcdir)/statfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/statfs64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/status-all.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-failed.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-failed-long.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-failed-status.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-none.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-successful.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-successful-long.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-successful-status.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/status-unfinished.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/statx.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/strace--absolute-timestamps.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time-precision-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time-precision-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time-precision-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-time-precision-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-unix-precision-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-unix-precision-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-unix-precision-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--absolute-timestamps-format-unix-precision-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--follow-forks-output-separately.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--relative-timestamps-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--syscall-times-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--strings-in-hex.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--strings-in-hex-all.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--strings-in-hex-non-ascii.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-time-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-unix-s.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-unix-ms.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-unix-us.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace--timestamps-unix-ns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace-n.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace-x.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/strace-xx.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/swap.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1414,6 +2065,24 @@ $(srcdir)/syslog.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/tee.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/tgkill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/tgkill--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/threads-execve--quiet-thread-execve.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/threads-execve-q.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/threads-execve-qq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/threads-execve-qqq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/time.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1432,6 +2101,18 @@ $(srcdir)/times.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(srcdir)/times-fail.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/tkill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/tkill--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/trace_clock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + +$(srcdir)/trace_creds.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/trace_fstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1474,6 +2155,9 @@ $(srcdir)/trace_statfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests. $(srcdir)/trace_statfs_like.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/trie_test.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/truncate.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1495,6 +2179,9 @@ $(srcdir)/umovestr-illptr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tes $(srcdir)/umovestr3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/umovestr_cached_adjacent.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/unlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ @@ -1561,14 +2248,23 @@ $(srcdir)/xattr-strings.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests $(srcdir)/xet_robust_list.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/xet_robust_list--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/xetitimer.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ $(srcdir)/xetpgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/xetpgid--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/xetpriority.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ +$(srcdir)/xetpriority--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in + $(AM_V_GEN) $^ $@ + $(srcdir)/xettimeofday.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in $(AM_V_GEN) $^ $@ diff --git a/tests/gen_tests.in b/tests/gen_tests.in index 487b9608..359462a1 100644 --- a/tests/gen_tests.in +++ b/tests/gen_tests.in @@ -1,6 +1,6 @@ # Input for gen_tests.sh # -# Copyright (c) 2017-2019 The strace developers. +# Copyright (c) 2017-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -9,7 +9,7 @@ _newselect _newselect-P -e trace=_newselect -P /dev/full 9>>/dev/full accept -a22 accept4 -a37 -access -a30 -P access_sample +access -a30 --trace-path=access_sample acct -a20 add_key -a30 -s12 adjtimex -a15 @@ -31,13 +31,44 @@ clock test_trace_expr 'times|fcntl.*' -e/clock clock_adjtime -a37 clock_nanosleep -e trace=clock_nanosleep,clock_gettime clock_xettime -a36 -e trace=clock_getres,clock_gettime,clock_settime +clone3 -a16 +clone3-Xabbrev -a16 -Xabbrev -e trace=clone3 +clone3-Xraw -a16 -Xraw -e trace=clone3 +clone3-Xverbose -a16 -Xverbose -e trace=clone3 +clone3-success-Xabbrev +clone3-success.test -a16 -Xabbrev +clone3-success-Xraw +clone3-success.test -a16 -Xraw +clone3-success-Xverbose +clone3-success.test -a16 -Xverbose +clone_parent +clone_ptrace.test +clone_parent--quiet-exit +clone_ptrace.test --quiet=exit,personality +clone_parent-q +clone_ptrace.test -q +clone_parent-qq +clone_ptrace.test -qq +clone_ptrace--quiet-attach +clone_ptrace.test --quiet=attach,personality +clone_ptrace--quiet-exit +clone_ptrace.test --quiet=exit,personality +clone_ptrace-q +clone_ptrace.test -q +clone_ptrace-qq +clone_ptrace.test -qq +close_range -a21 7>>/dev/full +close_range-P -a21 --trace=close_range -P /dev/full 7>>/dev/full +close_range-y -a33 --trace=close_range -y 7>>/dev/full +close_range-yy -a33 --trace=close_range -yy 7>>/dev/full copy_file_range creat -a20 delete_module -a23 +dev--decode-fds-dev -a30 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" -e decode-fds=dev +dev--decode-fds-path -a19 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" -e decode-fds=path +dev--decode-fds-socket -a19 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" --decode-fds=socket dev-yy -a30 -e trace=openat,fsync -P "/dev/full" -P "/dev/zero" -P "/dev/sda" -yy -dup -a8 -dup2 -a13 -dup3 -a24 +dup -a7 9>>/dev/full +dup-P -a7 --trace=dup -P /dev/full 9>>/dev/full +dup-y -a8 --trace=dup -y 9>>/dev/full +dup-yy -a8 --trace=dup -yy 9>>/dev/full +dup2 -a11 9>>/dev/full +dup2-P -a11 --trace=dup2 -P /dev/full 9>>/dev/full +dup2-y -a13 --trace=dup2 -y 9>>/dev/full +dup2-yy -a13 --trace=dup2 -yy 9>>/dev/full +dup3 -a13 7>>/dev/full +dup3-P -a13 --trace=dup3 -P /dev/full 7>>/dev/full +dup3-y -a15 --trace=dup3 -y 7>>/dev/full +dup3-yy -a15 --trace=dup3 -yy 7>>/dev/full epoll_create -a17 epoll_create1 -a28 epoll_ctl @@ -46,7 +77,12 @@ epoll_wait -a26 erestartsys -a34 -e signal=none -e trace=recvfrom execveat execveat-v -v -e trace=execveat -faccessat -P $NAME.sample +faccessat-P -a23 --trace=faccessat -P /dev/full +faccessat-y +faccessat.test -a24 -y +faccessat-yy +faccessat.test -a24 -yy +faccessat2-P -a27 --trace=faccessat2 -P /dev/full +faccessat2-y +faccessat2.test -a28 -y +faccessat2-yy +faccessat2.test -a28 -yy fadvise64_64 +fadvise64.test fallocate -a18 fanotify_init @@ -61,13 +97,23 @@ fchown -a16 fchown32 -a18 fchownat fcntl -a8 +fcntl--pidns-translation test_pidns -a8 -e trace=fcntl fcntl64 -a8 +fcntl64--pidns-translation test_pidns -a8 -e trace=fcntl64 fdatasync -a14 file_handle -e trace=name_to_handle_at,open_by_handle_at file_ioctl +ioctl.test +filter_seccomp . "${srcdir=.}/filter_seccomp.sh"; test_prog_set --seccomp-bpf -f +filter_seccomp-flag ../$NAME finit_module -a25 flock -a19 fork-f -a26 -qq -f -e signal=none -e trace=chdir +fsconfig -s300 -y +fsconfig-P -s300 -y -P /dev/full -e trace=fsconfig +fsmount -a18 -y +fsopen -a35 +fspick -a27 -y +fspick-P -a27 -y -P /dev/full -e trace=fspick fstat -a15 -v -P stat.sample fstat-Xabbrev -a15 -v -Xabbrev -P stat.sample -e trace=fstat fstat-Xraw -a15 -v -Xraw -P stat.sample -e trace=fstat @@ -76,7 +122,7 @@ fstat64 -a17 -v -P stat.sample fstat64-Xabbrev -a17 -Xabbrev -v -P stat.sample -e trace=fstat64 fstat64-Xraw -a17 -Xraw -v -P stat.sample -e trace=fstat64 fstat64-Xverbose -a17 -Xverbose -v -P stat.sample -e trace=fstat64 -fstatat64 -a32 -v -P stat.sample -P /dev/full +fstatat64 -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full fstatfs -a18 fstatfs64 -a24 fsync -a10 @@ -87,19 +133,29 @@ futimesat -a28 get_mempolicy -s3 -a38 getcpu -a25 getcwd -a18 -getdents -a22 -v -getdents64 -a24 -v +getdents -a31 +getdents-v -a22 -v --trace=getdents +getdents64 -a33 +getdents64-v -a24 -v --trace=getdents64 getegid +getuid.test +getegid-creds +getuid.test getegid32 +getuid.test +getegid32-creds +getuid.test geteuid +getuid.test +geteuid-creds +getuid.test geteuid32 +getuid.test +geteuid32-creds +getuid.test getgid +getuid.test +getgid-creds +getuid.test getgid32 +getuid.test +getgid32-creds +getuid.test getgroups -a17 getgroups32 -a19 getpeername -a27 getpgrp -a10 +getpgrp--pidns-translation test_pidns -e trace=getpgrp -a10 getpid -a9 +getpid--pidns-translation test_pidns -e trace=getpid -a9 getppid -a10 getrandom -a32 -s3 getresgid -a25 @@ -109,23 +165,59 @@ getresuid32 -a27 getrlimit -a27 getrusage -v getsid -a10 +getsid--pidns-translation test_pidns -e trace=getsid -a10 getsockname -a27 gettid -a9 +getuid-creds +getuid.test getuid32 +getuid.test -getxxid -a10 -e trace=getxpid,getxuid,getxgid +getuid32-creds +getuid.test +getxgid -a10 +getxpid -a10 +getxuid -a10 group_req -e trace=setsockopt inet-cmsg -e trace=recvmsg init_module -a27 inotify -a23 -e trace=inotify_add_watch,inotify_rm_watch +inotify_init -a15 inotify_init1 -a27 +inotify_init1-y -a27 -y -e trace=inotify_init1 io_uring_enter -y io_uring_register -y io_uring_setup -a26 -y ioctl_block +ioctl.test ioctl_dm +ioctl.test -s9 ioctl_dm-v +ioctl.test -v -s9 -ioctl_evdev +ioctl.test -ioctl_evdev-v +ioctl.test -v +ioctl_evdev +ioctl.test -a26 +ioctl_evdev-Xabbrev +ioctl.test -a26 -Xabbrev +ioctl_evdev-Xraw +ioctl.test -a28 -Xraw +ioctl_evdev-Xverbose +ioctl.test -a41 -Xverbose +ioctl_evdev-v +ioctl.test -a26 -v +ioctl_evdev-v-Xabbrev +ioctl.test -a26 -v -Xabbrev +ioctl_evdev-v-Xraw +ioctl.test -a28 -v -Xraw +ioctl_evdev-v-Xverbose +ioctl.test -a41 -v -Xverbose +ioctl_evdev-success-Xabbrev +ioctl_evdev-success.test -Xabbrev +ioctl_evdev-success-Xraw +ioctl_evdev-success.test -a27 -Xraw +ioctl_evdev-success-Xverbose +ioctl_evdev-success.test -a43 -Xverbose +ioctl_evdev-success-v +ioctl_evdev-success.test -a26 -v +ioctl_evdev-success-v-Xabbrev +ioctl_evdev-success.test -v -Xabbrev +ioctl_evdev-success-v-Xraw +ioctl_evdev-success.test -a27 -v -Xraw +ioctl_evdev-success-v-Xverbose +ioctl_evdev-success.test -a43 -v -Xverbose +ioctl_hdio +ioctl.test -a27 +ioctl_hdio-Xabbrev +ioctl.test -a27 -Xabbrev +ioctl_hdio-Xraw +ioctl.test -a20 -Xraw +ioctl_hdio-Xverbose +ioctl.test -a39 -Xverbose +ioctl_hdio-v +ioctl.test -a27 -v +ioctl_hdio-v-Xabbrev +ioctl.test -a27 -v -Xabbrev +ioctl_hdio-v-Xraw +ioctl.test -a20 -v -Xraw +ioctl_hdio-v-Xverbose +ioctl.test -a39 -v -Xverbose +ioctl_hdio-success +ioctl-success.sh -a27 +ioctl_hdio-success-Xabbrev +ioctl-success.sh -a27 -Xabbrev +ioctl_hdio-success-Xraw +ioctl-success.sh -a20 -Xraw +ioctl_hdio-success-Xverbose +ioctl-success.sh -a39 -Xverbose +ioctl_hdio-success-v +ioctl-success.sh -a27 -v +ioctl_hdio-success-v-Xabbrev +ioctl-success.sh -a27 -v -Xabbrev +ioctl_hdio-success-v-Xraw +ioctl-success.sh -a20 -v -Xraw +ioctl_hdio-success-v-Xverbose +ioctl-success.sh -a39 -v -Xverbose ioctl_inotify +ioctl.test ioctl_kvm_run +ioctl.test -a36 -y ioctl_kvm_run-v +ioctl.test -v -a36 -y @@ -137,6 +229,7 @@ ioctl_mtd +ioctl.test ioctl_nbd +ioctl.test -y ioctl_nsfs +ioctl.test -esignal=none ioctl_perf +ioctl.test +ioctl_perf-success +ioctl-success.sh -a35 ioctl_ptp +ioctl.test ioctl_random +ioctl.test ioctl_rtc +ioctl.test @@ -145,11 +238,29 @@ ioctl_scsi +ioctl.test ioctl_sg_io_v3 +ioctl.test ioctl_sg_io_v4 +ioctl.test ioctl_sock_gifconf +ioctl.test -a28 -s1 +ioctl_tee +ioctl.test ioctl_uffdio +ioctl.test ioctl_v4l2 +ioctl.test +ioctl_v4l2-Xabbrev +ioctl.test -Xabbrev +ioctl_v4l2-Xraw +ioctl.test -Xraw +ioctl_v4l2-Xverbose +ioctl.test -Xverbose +ioctl_v4l2-v +ioctl.test -v +ioctl_v4l2-v-Xabbrev +ioctl.test -v -Xabbrev +ioctl_v4l2-v-Xraw +ioctl.test -v -Xraw +ioctl_v4l2-v-Xverbose +ioctl.test -v -Xverbose +ioctl_v4l2-success +ioctl-success.sh -a29 +ioctl_v4l2-success-Xabbrev +ioctl-success.sh -a29 -Xabbrev +ioctl_v4l2-success-Xraw +ioctl-success.sh -a27 -Xraw +ioctl_v4l2-success-Xverbose +ioctl-success.sh -a30 -Xverbose +ioctl_v4l2-success-v +ioctl-success.sh -a29 -v +ioctl_v4l2-success-v-Xabbrev +ioctl-success.sh -a29 -v -Xabbrev +ioctl_v4l2-success-v-Xraw +ioctl-success.sh -a27 -v -Xraw +ioctl_v4l2-success-v-Xverbose +ioctl-success.sh -a29 -v -Xverbose +ioctl_watchdog +ioctl.test ioperm -a27 iopl -a8 ioprio -a18 -e trace=ioprio_get,ioprio_set +ioprio--pidns-translation test_pidns -a18 -e trace=ioprio_get,ioprio_set ioprio-Xabbrev -a18 -e trace=ioprio_get,ioprio_set -Xabbrev ioprio-Xraw -a18 -e trace=ioprio_get,ioprio_set -Xraw ioprio-Xverbose -a18 -e trace=ioprio_get,ioprio_set -Xverbose @@ -160,18 +271,19 @@ ipc_msg-Xabbrev +ipc.sh -Xabbrev -a26 ipc_msg-Xraw +ipc.sh -Xraw -a16 ipc_msg-Xverbose +ipc.sh -Xverbose -a34 ipc_msgbuf-Xabbrev +ipc_msgbuf.test -Xabbrev -ipc_msgbuf-Xraw +ipc_msgbuf.test -Xraw -a22 +ipc_msgbuf-Xraw +ipc_msgbuf.test -Xraw -a19 ipc_msgbuf-Xverbose +ipc_msgbuf.test -Xverbose ipc_sem +ipc.sh -a29 ipc_sem-Xabbrev +ipc.sh -Xabbrev -a29 ipc_sem-Xraw +ipc.sh -Xraw -a19 ipc_sem-Xverbose +ipc.sh -Xverbose -a36 -ipc_shm +ipc.sh -a29 -ipc_shm-Xabbrev +ipc.sh -Xabbrev -a29 +ipc_shm +ipc.sh -a26 +ipc_shm-Xabbrev +ipc.sh -Xabbrev -a26 ipc_shm-Xraw +ipc.sh -Xraw -a19 -ipc_shm-Xverbose +ipc.sh -Xverbose -a36 +ipc_shm-Xverbose +ipc.sh -Xverbose -a34 kcmp -a22 kcmp-y -a22 -y -e trace=kcmp +kcmp-y--pidns-translation test_pidns -a22 -y -e trace=kcmp kern_features -a16 kernel_version -a16 -v -e trace=bpf kernel_version-Xabbrev -a16 -Xabbrev -v -e trace=bpf @@ -184,21 +296,29 @@ keyctl-Xabbrev -a31 -s10 -e trace=keyctl -Xabbrev keyctl-Xraw -a13 -s10 -e trace=keyctl -Xraw keyctl-Xverbose -a41 -s10 -e trace=keyctl -Xverbose kill -a12 -esignal=none +kill--pidns-translation test_pidns -a12 -e trace=kill -esignal=none +ksysent ../$NAME lchown -a30 lchown32 -a32 link linkat lookup_dcookie -a27 -lstat -a32 -v -P stat.sample -P /dev/full -lstat64 -a32 -v -P stat.sample -P /dev/full +lstat -a31 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full +lstat64 -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full madvise -a33 +maybe_switch_current_tcp -a30 -f -e trace=execveat +maybe_switch_current_tcp--quiet-thread-execve -a30 -s48 -f -e trace=execveat --quiet=personality,thread-execve mbind +mbind-Xabbrev -Xabbrev -e trace=mbind +mbind-Xraw -a33 -Xraw -e trace=mbind +mbind-Xverbose -Xverbose -e trace=mbind membarrier -a36 memfd_create memfd_create-Xabbrev -Xabbrev -e trace=memfd_create memfd_create-Xraw -a30 -Xraw -e trace=memfd_create memfd_create-Xverbose -Xverbose -e trace=memfd_create migrate_pages -a33 +migrate_pages--pidns-translation test_pidns -a33 -e trace=migrate_pages mincore -a22 mkdir -a20 mkdirat -a28 @@ -223,10 +343,13 @@ mount -a33 mount-Xabbrev -a33 -e trace=mount -Xabbrev mount-Xraw -a33 -e trace=mount -Xraw mount-Xverbose -a33 -e trace=mount -Xverbose +move_mount -y +move_mount-P -y -P /dev/full -e trace=move_mount move_pages -s3 move_pages-Xabbrev -s3 -e trace=move_pages -Xabbrev move_pages-Xraw -s3 -a36 -e trace=move_pages -Xraw move_pages-Xverbose -s3 -e trace=move_pages -Xverbose +move_pages--pidns-translation test_pidns -s3 -e trace=move_pages mq -a32 -e trace=mq_getsetattr,mq_open,mq_unlink mq_sendrecv -a14 -e trace=mq_open,mq_notify,mq_timedsend,mq_timedreceive,mq_unlink mq_sendrecv-read -eread=0 -a14 -e trace=mq_open,mq_notify,mq_timedsend,mq_timedreceive,mq_unlink @@ -236,12 +359,17 @@ msg_control-v -v -a21 -e trace=sendmsg msg_name -a20 -e trace=recvmsg munlockall -a13 nanosleep -a20 +net--decode-fds-dev-netlink +net-yy-netlink.test --decode-fds=dev +net--decode-fds-none-netlink +net-yy-netlink.test --decode-fds=none -a9 +net--decode-fds-path-netlink +net-yy-netlink.test --decode-fds=path +net--decode-fds-socket-netlink +net-yy-netlink.test --decode-fds=socket net-icmp_filter -e trace=getsockopt,setsockopt net-packet_mreq -e trace=setsockopt net-packet_mreq-Xabbrev -e trace=setsockopt -Xabbrev net-packet_mreq-Xraw -e trace=setsockopt -Xraw net-packet_mreq-Xverbose -e trace=setsockopt -Xverbose net-sockaddr -a24 -e trace=connect +net-sockaddr--pidns-translation test_pidns -a24 -e trace=connect net-tpacket_req -e trace=setsockopt net-tpacket_stats -e trace=getsockopt net-yy-inet6 +net-yy-inet.test @@ -254,7 +382,7 @@ netlink_protocol -e trace=sendto netlink_route +netlink_sock_diag.test netlink_selinux +netlink_sock_diag.test netlink_xfrm +netlink_sock_diag.test -newfstatat -a32 -v -P stat.sample -P /dev/full +newfstatat -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full nfnetlink_acct +netlink_sock_diag.test nfnetlink_cthelper +netlink_sock_diag.test nfnetlink_ctnetlink +netlink_sock_diag.test @@ -279,6 +407,7 @@ nlattr_ifla_brport +netlink_sock_diag.test nlattr_ifla_linkinfo +netlink_sock_diag.test nlattr_ifla_port +netlink_sock_diag.test nlattr_ifla_xdp +netlink_sock_diag.test +nlattr_ifla_xdp-y +netlink_sock_diag.test -y; exec 9>/dev/full oldstat -a32 -v -P stat.sample -P /dev/full open -a30 -P $NAME.sample +open_tree -a30 -y +open_tree-P -a30 --decode-fds -P /dev/full -e trace=open_tree openat -a36 -P $NAME.sample +openat2 -a35 +openat2-Xabbrev --trace=openat2 -a35 -Xabbrev +openat2-Xraw --trace=openat2 -a32 -Xraw +openat2-Xverbose --trace=openat2 -a35 -Xverbose +openat2-v --trace=openat2 -a35 -v +openat2-v-y --trace=openat2 -a36 -v -y >/dev/full -semop -a32 -e trace=semop,semtimedop +semop -a32 +semop-indirect -a32 -e trace=semop +semtimedop sendfile -a27 sendfile64 -a29 -set_mempolicy -s3 -a35 +set_mempolicy -a34 -s3 +set_mempolicy-Xabbrev -a34 -s3 -Xabbrev -e trace=set_mempolicy +set_mempolicy-Xraw -a24 -s3 -Xraw -e trace=set_mempolicy +set_mempolicy-Xverbose -s3 -Xverbose -e trace=set_mempolicy setdomainname -a24 setfsgid -a12 setfsgid32 -a14 @@ -439,6 +608,7 @@ sigaction -a31 siginfo -e trace=none signal -a25 -e signal=none -e trace='/^signal$' signal_receive -a16 -e trace=kill +signal_receive--pidns-translation test_pidns -a16 -e trace=kill signalfd4 sigpending -a15 sigprocmask -a34 @@ -450,6 +620,7 @@ so_peercred -e trace=getsockopt so_peercred-Xabbrev -e trace=getsockopt -Xabbrev so_peercred-Xraw -e trace=getsockopt -Xraw -a39 so_peercred-Xverbose -e trace=getsockopt -Xverbose +so_peercred--pidns-translation test_pidns -e trace=getsockopt sock_filter-v -v -e trace=getsockopt,setsockopt sock_filter-v-Xabbrev -v -e trace=getsockopt,setsockopt -X abbrev sock_filter-v-Xraw -a 37 -v -e trace=getsockopt,setsockopt -X raw @@ -461,11 +632,57 @@ socketcall -a20 sockopt-sol_netlink -e trace=getsockopt,setsockopt sockopt-timestamp -e trace=recvmsg splice -stat -a32 -v -P stat.sample -P /dev/full -stat64 -a32 -v -P stat.sample -P /dev/full +stat -a30 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full +stat64 -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full statfs -a17 statfs64 -a23 -statx -a32 -v -P stat.sample -P /dev/full +status-all -a10 -e trace=chdir --status=detached,failed,successful,unavailable,unfinished +status-failed -a10 -e trace=chdir -Z +status-failed-long -a10 -e trace=chdir --failed-only +status-failed-status -a10 -e trace=chdir -e status=failed +status-none -e trace=all --status=none +status-successful -a10 -e trace=chdir -z +status-successful-long -a10 -e trace=chdir --successful-only +status-successful-status -a10 -e trace=chdir --status=successful +status-unfinished -a10 -e trace=all --status=unfinished +statx -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full +strace--absolute-timestamps +strace-t.test --absolute-timestamps +strace--absolute-timestamps-format-time +strace-t.test --absolute-timestamps=format:time +strace--absolute-timestamps-format-time-precision-s +strace-t.test --absolute-timestamps=format:time --absolute-timestamps=precision:s +strace--absolute-timestamps-format-time-precision-ms +strace-tt.test 3 --absolute-timestamps=format:time --absolute-timestamps=precision:ms +strace--absolute-timestamps-format-time-precision-us +strace-tt.test 6 --absolute-timestamps=format:time --absolute-timestamps=precision:us +strace--absolute-timestamps-format-time-precision-ns +strace-tt.test 9 --absolute-timestamps=format:time --absolute-timestamps=precision:ns +strace--absolute-timestamps-format-unix-precision-s +strace-ttt.test 0 --absolute-timestamps=format:unix --absolute-timestamps=precision:s +strace--absolute-timestamps-format-unix-precision-ms +strace-ttt.test 3 --absolute-timestamps=precision:ms --absolute-timestamps=format:unix +strace--absolute-timestamps-format-unix-precision-us +strace-ttt.test 6 --absolute-timestamps=precision:us --absolute-timestamps=format:unix +strace--absolute-timestamps-format-unix-precision-ns +strace-ttt.test 9 --absolute-timestamps=format:unix --absolute-timestamps=precision:ns +strace--follow-forks-output-separately +strace-ff.test --follow-forks --output-separately +strace--relative-timestamps +strace-r.test --relative-timestamps +strace--relative-timestamps-s +strace-r.test --relative-timestamps=s +strace--relative-timestamps-ms +strace-r.test --relative-timestamps=ms +strace--relative-timestamps-us +strace-r.test --relative-timestamps=us +strace--relative-timestamps-ns +strace-r.test --relative-timestamps=ns +strace--syscall-times +strace-T.test --syscall-times +strace--syscall-times-s +strace-T.test --syscall-times=s +strace--syscall-times-ms +strace-T.test --syscall-times=ms +strace--syscall-times-us +strace-T.test --syscall-times=us +strace--syscall-times-ns +strace-T.test --syscall-times=ns +strace--strings-in-hex --trace=chdir --strings-in-hex --columns=18 +strace--strings-in-hex-all --trace=chdir --strings-in-hex=all --columns=18 +strace--strings-in-hex-non-ascii --trace=chdir --strings-in-hex=non-ascii --columns=12 +strace--timestamps +strace-t.test --timestamps +strace--timestamps-time +strace-t.test --timestamps=time +strace--timestamps-time-s +strace-t.test --timestamps=time,s +strace--timestamps-time-ms +strace-tt.test 3 --timestamps=time,ms +strace--timestamps-time-us +strace-tt.test 6 --timestamps=time,us +strace--timestamps-time-ns +strace-tt.test 9 --timestamps=time,ns +strace--timestamps-unix-s +strace-ttt.test 0 --timestamps=unix,s +strace--timestamps-unix-ms +strace-ttt.test 3 --timestamps=unix,ms +strace--timestamps-unix-us +strace-ttt.test 6 --timestamps=unix,us +strace--timestamps-unix-ns +strace-ttt.test 9 --timestamps=unix,ns +strace-n -e trace=listen -n -qq -a 12 +strace-x -e trace=chdir -x -a 12 +strace-xx -e trace=chdir -xx -a 18 swap -a23 -e trace=swapon,swapoff sxetmask -a11 -e trace=sgetmask,ssetmask symlink -a34 @@ -474,14 +691,24 @@ sync -a7 sync_file_range sync_file_range2 sysinfo -a14 -syslog -a36 +syslog -a35 tee +tgkill -a15 --signal='!cont' +tgkill--pidns-translation test_pidns -a15 --signal='!cont' -e trace=tgkill +threads-execve--quiet-thread-execve +threads-execve.test -s40 --quiet=personality,thread-execve +threads-execve-q +threads-execve.test -q +threads-execve-qq +threads-execve.test -qq +threads-execve-qqq +threads-execve.test -qqq time -a10 timer_create timer_xettime -e trace=timer_create,timer_settime,timer_gettime timerfd_xettime -e trace=timerfd_create,timerfd_settime,timerfd_gettime times -esignal=none times-fail -a12 -e trace=times +tkill -a12 --signal='!cont' +tkill--pidns-translation test_pidns --signal='!cont' -a12 -e trace=tkill +trace_clock test_trace_expr 'clock_nanosleep|times' -e%clock +trace_creds test_trace_expr '([gs]et[^p]*([gu]id|groups)|caps|prctl|[fl]?chown|print(path-umovestr|strn-umoven)-undumpable|ptrace|quotactl|rt_sigtimedwait|rt_(tg)?sigqueueinfo).*' -e%creds trace_fstat test_trace_expr '' -e%fstat -v -P stat.sample -P /dev/full trace_fstatfs test_trace_expr '' -e%fstatfs trace_lstat test_trace_expr '' -e%lstat -v -P stat.sample -P /dev/full @@ -496,6 +723,7 @@ trace_stat test_trace_expr '' -e%stat -v -P stat.sample -P /dev/full trace_stat_like test_trace_expr '' -e%%stat -v -P stat.sample -P /dev/full trace_statfs test_trace_expr '' -e%statfs trace_statfs_like test_trace_expr '' -e%%statfs +trie_test run_prog truncate truncate64 ugetrlimit -a28 @@ -503,6 +731,7 @@ umask -a11 umoven-illptr -a36 -e trace=nanosleep umovestr-illptr -a11 -e trace=chdir umovestr3 -a14 -e trace=chdir +umovestr_cached_adjacent +umovestr_cached.test 3 unlink -a24 unlinkat -a35 unshare -a11 @@ -525,7 +754,10 @@ waitpid -a28 xattr -a22 -e trace=getxattr,fgetxattr,lgetxattr,setxattr,fsetxattr,lsetxattr,listxattr,flistxattr,llistxattr,removexattr,fremovexattr,lremovexattr xattr-strings -a22 -s 4 -e trace=fsetxattr xet_robust_list -a24 -e trace=get_robust_list,set_robust_list +xet_robust_list--pidns-translation test_pidns -a24 -e trace=get_robust_list,set_robust_list xetitimer -a29 -e trace=setitimer,getitimer xetpgid -a11 -e trace=getpgid,setpgid -xetpriority -a29 -e trace=getpriority,setpriority +xetpgid--pidns-translation test_pidns -a11 -e trace=getpgid,setpgid +xetpriority -a27 -e trace=getpriority,setpriority +xetpriority--pidns-translation test_pidns -a27 -e trace=getpriority,setpriority xettimeofday -a20 -e trace=gettimeofday,settimeofday diff --git a/tests/get_mempolicy.c b/tests/get_mempolicy.c index 7667bdb0..c2e9fa69 100644 --- a/tests/get_mempolicy.c +++ b/tests/get_mempolicy.c @@ -1,14 +1,14 @@ /* * Check decoding of get_mempolicy syscall. * - * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 Dmitry V. Levin * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_get_mempolicy @@ -16,7 +16,7 @@ # include # include "xlat.h" -# include "xlat/policies.h" +# include "xlat/mpol_modes.h" # define MAX_STRLEN 3 # define NLONGS(n) ((n + 8 * sizeof(long) - 2) \ @@ -68,20 +68,20 @@ main(void) rc = syscall(__NR_get_mempolicy, mode, nodemask, maxnode, addr, flags); printf("get_mempolicy(%p, %p, %lu, %#lx, %s|%#lx) = %ld %s (%m)\n", mode, nodemask, maxnode, addr, - "MPOL_F_NODE|MPOL_F_ADDR", - flags & ~3, rc, errno2name()); + "MPOL_F_NODE|MPOL_F_ADDR|MPOL_F_MEMS_ALLOWED", + flags & ~7, rc, errno2name()); mode = tail_alloc(sizeof(*mode)); rc = syscall(__NR_get_mempolicy, mode, 0, 0, 0, 0); printf("get_mempolicy(["); - printxval(policies, (unsigned) *mode, "MPOL_???"); + printxval(mpol_modes, (unsigned) *mode, "MPOL_???"); printf("], NULL, 0, NULL, 0) = %ld\n", rc); *mode = -1; rc = syscall(__NR_get_mempolicy, mode, 0, 0, mode - 1, 2); printf("get_mempolicy(["); - printxval(policies, (unsigned) *mode, "MPOL_???"); + printxval(mpol_modes, (unsigned) *mode, "MPOL_???"); printf("], NULL, 0, %p, MPOL_F_ADDR) = %ld\n", mode - 1, rc); maxnode = get_page_size() * 8; diff --git a/tests/get_process_reaper.c b/tests/get_process_reaper.c new file mode 100644 index 00000000..2cc69060 --- /dev/null +++ b/tests/get_process_reaper.c @@ -0,0 +1,108 @@ +/* + * Print the process reaper id. + * + * Copyright (c) 2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include +#include + +/* PARENT - CHILD - GRANDCHILD */ + +static int +grandchild(int read_fd, int write_fd) +{ + /* wait for notification from PARENT about CHILD completion */ + pid_t pid; + if (read(read_fd, &pid, sizeof(pid)) != 0) + perror_msg_and_fail("read"); + + /* write ppid to PARENT */ + pid = getppid(); + if (write(write_fd, &pid, sizeof(pid)) != sizeof(pid)) + perror_msg_and_fail("write"); + + _exit(0); +} + +static int +child(int read_fd, int write_fd) +{ + pid_t pid = fork(); + if (pid < 0) + perror_msg_and_fail("fork"); + + if (!pid) + return grandchild(read_fd, write_fd); + else + _exit(0); +} + +static int +parent(pid_t pid, int read_fd, int write_fd) +{ + /* wait for CHILD completion */ + int status; + if (waitpid(pid, &status, 0) != pid) + perror_msg_and_fail("waitpid"); + if (status != 0) + error_msg_and_fail("status %x", status); + + /* notify GRANDCHILD about CHILD completion */ + close(write_fd), + write_fd = -1; + + /* read ppid of GRANDCHILD */ + if (read(read_fd, &pid, sizeof(pid)) != sizeof(pid)) + perror_msg_and_fail("read"); + + printf("%d\n", pid); + return 0; +} + +int +main(void) +{ + int parent_grandchild_fds[2]; +#define parent_read_fd parent_grandchild_fds[0] +#define grandchild_write_fd parent_grandchild_fds[1] + + int grandchild_parent_fds[2]; +#define grandchild_read_fd grandchild_parent_fds[0] +#define parent_write_fd grandchild_parent_fds[1] + + if (pipe(parent_grandchild_fds) || + pipe(grandchild_parent_fds)) + perror_msg_and_fail("pipe"); + + pid_t pid = fork(); + if (pid < 0) + perror_msg_and_fail("fork"); + + if (!pid) { + /* CHILD */ + close(parent_read_fd), + parent_read_fd = -1; + + close(parent_write_fd), + parent_write_fd = -1; + + return child(grandchild_read_fd, + grandchild_write_fd); + } else { + /* PARENT */ + close(grandchild_read_fd), + grandchild_read_fd = -1; + + close(grandchild_write_fd), + grandchild_write_fd = -1; + + return parent(pid, parent_read_fd, + parent_write_fd); + } +} diff --git a/tests/get_sigset_size.c b/tests/get_sigset_size.c index f58d1f51..7921bb1e 100644 --- a/tests/get_sigset_size.c +++ b/tests/get_sigset_size.c @@ -2,6 +2,7 @@ * Find out the size of kernel's sigset_t. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +11,7 @@ #include "tests.h" #include #include -#include +#include "scno.h" /* * If the sigset size specified to rt_sigprocmask is not equal to the size diff --git a/tests/getcpu.c b/tests/getcpu.c index ecbaf0dc..85edf407 100644 --- a/tests/getcpu.c +++ b/tests/getcpu.c @@ -2,7 +2,7 @@ * Check decoding of getcpu syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getcpu diff --git a/tests/getcwd.c b/tests/getcwd.c index 5f9a7293..ff563ff4 100644 --- a/tests/getcwd.c +++ b/tests/getcwd.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -7,7 +7,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getcwd diff --git a/tests/getdents-v.c b/tests/getdents-v.c new file mode 100644 index 00000000..c9bd7ae3 --- /dev/null +++ b/tests/getdents-v.c @@ -0,0 +1,3 @@ +/* Check --no-abbrev decoding of getdents syscall. */ +#define VERBOSE 1 +#include "getdents.c" diff --git a/tests/getdents-v.gen.test b/tests/getdents-v.gen.test new file mode 100755 index 00000000..fc1466ac --- /dev/null +++ b/tests/getdents-v.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getdents-v -a22 -v --trace=getdents); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a22 -v --trace=getdents diff --git a/tests/getdents.c b/tests/getdents.c index 998e667f..2eb012a4 100644 --- a/tests/getdents.c +++ b/tests/getdents.c @@ -1,119 +1,42 @@ /* + * Check decoding of getdents syscall. + * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getdents -# include -# include -# include -# include -# include -# include -# include - -static const char fname[] = - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nZ"; -static const char qname[] = - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nZ"; +# define kernel_dirent_type kernel_dirent_t +# define NR_getdents __NR_getdents +# define STR_getdents "getdents" -static char buf[8192]; +# include "xgetdents.c" -static const char * -str_d_type(const unsigned char d_type) -{ - switch (d_type) { - case DT_DIR: - return "DT_DIR"; - case DT_REG: - return "DT_REG"; - default: - return "DT_UNKNOWN"; - } -} +# if VERBOSE static void -print_dirent(const kernel_dirent *d) +print_dirent(const kernel_dirent_type *d) { - const unsigned int d_name_offset = offsetof(kernel_dirent, d_name); - int d_name_len = d->d_reclen - d_name_offset - 1; - assert(d_name_len > 0); - - printf("{d_ino=%llu, d_off=%llu, d_reclen=%u, d_name=", - (unsigned long long) d->d_ino, - (unsigned long long) d->d_off, d->d_reclen); - - if (d->d_name[0] == '.') - printf("\"%.*s\"", d_name_len, d->d_name); - else - printf("\"%s\"", qname); - + const unsigned int d_name_offset = offsetof(kernel_dirent_type, d_name); + int d_name_len = (int) d->d_reclen - d_name_offset - 1; + if (d_name_len <= 0) + error_msg_and_fail("d_name_len = %d", d_name_len); + + PRINT_FIELD_U("{", *d, d_ino); + PRINT_FIELD_U(", ", *d, d_off); + PRINT_FIELD_U(", ", *d, d_reclen); + printf(", d_name="); + print_quoted_cstring(d->d_name, d_name_len); printf(", d_type=%s}", str_d_type(*((const char *) d + d->d_reclen - 1))); } - -int -main(void) -{ - static const char dname[] = "getdents.test.tmp.dir"; - - assert(!mkdir(dname, 0700)); - assert(!chdir(dname)); - (void) close(0); - assert(!creat(fname, 0600)); - assert(!close(0)); - assert(!open(".", O_RDONLY | O_DIRECTORY)); - - unsigned long count = (unsigned long) 0xfacefeeddeadbeefULL; - long rc = syscall(__NR_getdents, (long) 0xdefacedffffffffULL, NULL, - count); - printf("getdents(-1, NULL, %u) = %ld %s (%m)\n", - (unsigned) count, rc, errno2name()); - - count = (unsigned long) 0xfacefeed00000000ULL | sizeof(buf); - while ((rc = syscall(__NR_getdents, 0, buf, count))) { - kernel_dirent *d; - long i; - - if (rc < 0) - perror_msg_and_skip("getdents"); - printf("getdents(0, ["); - for (i = 0; i < rc; i += d->d_reclen) { - d = (kernel_dirent *) &buf[i]; - if (i) - printf(", "); - print_dirent(d); - } - printf("], %u) = %ld\n", (unsigned) count, rc); - } - printf("getdents(0, [], %u) = 0\n", (unsigned) count); - puts("+++ exited with 0 +++"); - assert(!unlink(fname)); - assert(!chdir("..")); - assert(!rmdir(dname)); - - return 0; -} +# endif #else diff --git a/tests/getdents.gen.test b/tests/getdents.gen.test index 0db5f20a..adcbb9c3 100755 --- a/tests/getdents.gen.test +++ b/tests/getdents.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getdents -a22 -v); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getdents -a31 ); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a22 -v +run_strace_match_diff -a31 diff --git a/tests/getdents64-v.c b/tests/getdents64-v.c new file mode 100644 index 00000000..cf782482 --- /dev/null +++ b/tests/getdents64-v.c @@ -0,0 +1,3 @@ +/* Check --no-abbrev decoding of getdents64 syscall. */ +#define VERBOSE 1 +#include "getdents64.c" diff --git a/tests/getdents64-v.gen.test b/tests/getdents64-v.gen.test new file mode 100755 index 00000000..9b49ce91 --- /dev/null +++ b/tests/getdents64-v.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getdents64-v -a24 -v --trace=getdents64); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a24 -v --trace=getdents64 diff --git a/tests/getdents64.c b/tests/getdents64.c index e0575cf4..0e46a221 100644 --- a/tests/getdents64.c +++ b/tests/getdents64.c @@ -1,125 +1,41 @@ /* + * Check decoding of getdents64 syscall. + * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getdents64 -# include -# include -# include -# include -# include -# include -# include -# include - -static const char fname[] = - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" - "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nZ"; -static const char qname[] = - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\n" - "A\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nA\\nZ"; +# define kernel_dirent_type kernel_dirent64_t +# define NR_getdents __NR_getdents64 +# define STR_getdents "getdents64" -typedef struct { - uint64_t d_ino; - uint64_t d_off; - unsigned short d_reclen; - unsigned char d_type; - char d_name[256]; -} kernel_dirent64; +# include "xgetdents.c" -static char buf[8192]; - -static const char * -str_d_type(const unsigned char d_type) -{ - switch (d_type) { - case DT_DIR: - return "DT_DIR"; - case DT_REG: - return "DT_REG"; - default: - return "DT_UNKNOWN"; - } -} +# if VERBOSE static void -print_dirent(const kernel_dirent64 *d) +print_dirent(const kernel_dirent_type *d) { - const unsigned int d_name_offset = offsetof(kernel_dirent64, d_name); - int d_name_len = d->d_reclen - d_name_offset; - assert(d_name_len > 0); - - printf("{d_ino=%" PRIu64 ", d_off=%" PRId64 - ", d_reclen=%u, d_type=%s, d_name=", - d->d_ino, d->d_off, d->d_reclen, str_d_type(d->d_type)); - - if (d->d_name[0] == '.') - printf("\"%.*s\"}", d_name_len, d->d_name); - else - printf("\"%s\"}", qname); -} - -int -main(void) -{ - static const char dname[] = "getdents64.test.tmp.dir"; - - assert(!mkdir(dname, 0700)); - assert(!chdir(dname)); - (void) close(0); - assert(!creat(fname, 0600)); - assert(!close(0)); - assert(!open(".", O_RDONLY | O_DIRECTORY)); - - unsigned long count = (unsigned long) 0xfacefeeddeadbeefULL; - long rc = syscall(__NR_getdents64, (long) 0xdefacedffffffffULL, NULL, - count); - printf("getdents64(-1, NULL, %u) = %ld %s (%m)\n", - (unsigned) count, rc, errno2name()); - - count = (unsigned long) 0xfacefeed00000000ULL | sizeof(buf); - while ((rc = syscall(__NR_getdents64, 0, buf, count))) { - kernel_dirent64 *d; - long i; - - if (rc < 0) - perror_msg_and_skip("getdents64"); - printf("getdents64(0, ["); - for (i = 0; i < rc; i += d->d_reclen) { - d = (kernel_dirent64 *) &buf[i]; - if (i) - printf(", "); - print_dirent(d); - } - printf("], %u) = %ld\n", (unsigned) count, rc); - } - printf("getdents64(0, [], %u) = 0\n", (unsigned) count); - puts("+++ exited with 0 +++"); - assert(!unlink(fname)); - assert(!chdir("..")); - assert(!rmdir(dname)); - - return 0; + const unsigned int d_name_offset = offsetof(kernel_dirent_type, d_name); + int d_name_len = (int) d->d_reclen - d_name_offset; + if (d_name_len <= 0) + error_msg_and_fail("d_name_len = %d", d_name_len); + + PRINT_FIELD_U("{", *d, d_ino); + PRINT_FIELD_U(", ", *d, d_off); + PRINT_FIELD_U(", ", *d, d_reclen); + printf(", d_type=%s, d_name=", str_d_type(d->d_type)); + print_quoted_cstring(d->d_name, d_name_len); + printf("}"); } +# endif #else diff --git a/tests/getdents64.gen.test b/tests/getdents64.gen.test index 6e24d400..de87954b 100755 --- a/tests/getdents64.gen.test +++ b/tests/getdents64.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getdents64 -a24 -v); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getdents64 -a33 ); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a24 -v +run_strace_match_diff -a33 diff --git a/tests/getegid-creds.gen.test b/tests/getegid-creds.gen.test new file mode 100755 index 00000000..7ac87f13 --- /dev/null +++ b/tests/getegid-creds.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getegid-creds +getuid.test ); do not edit. +set -- +. "${srcdir=.}/getuid.test" diff --git a/tests/getegid.c b/tests/getegid.c index 2e0754b7..d5927fea 100644 --- a/tests/getegid.c +++ b/tests/getegid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getegid @@ -16,7 +16,7 @@ int main(void) { - printf("getegid() = %ld\n", syscall(__NR_getegid)); + printf("getegid() = %s\n", sprintrc(syscall(__NR_getegid))); return 0; } diff --git a/tests/getegid32-creds.gen.test b/tests/getegid32-creds.gen.test new file mode 100755 index 00000000..c080ac0b --- /dev/null +++ b/tests/getegid32-creds.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getegid32-creds +getuid.test ); do not edit. +set -- +. "${srcdir=.}/getuid.test" diff --git a/tests/getegid32.c b/tests/getegid32.c index b7f5cb08..bbfcf94e 100644 --- a/tests/getegid32.c +++ b/tests/getegid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getegid32 diff --git a/tests/geteuid-creds.gen.test b/tests/geteuid-creds.gen.test new file mode 100755 index 00000000..8210f679 --- /dev/null +++ b/tests/geteuid-creds.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (geteuid-creds +getuid.test ); do not edit. +set -- +. "${srcdir=.}/getuid.test" diff --git a/tests/geteuid.c b/tests/geteuid.c index 430df1c6..a1defc8c 100644 --- a/tests/geteuid.c +++ b/tests/geteuid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_geteuid @@ -16,7 +16,7 @@ int main(void) { - printf("geteuid() = %ld\n", syscall(__NR_geteuid)); + printf("geteuid() = %s\n", sprintrc(syscall(__NR_geteuid))); return 0; } diff --git a/tests/geteuid32-creds.gen.test b/tests/geteuid32-creds.gen.test new file mode 100755 index 00000000..e0ced55a --- /dev/null +++ b/tests/geteuid32-creds.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (geteuid32-creds +getuid.test ); do not edit. +set -- +. "${srcdir=.}/getuid.test" diff --git a/tests/geteuid32.c b/tests/geteuid32.c index 94174f32..e6bd57d1 100644 --- a/tests/geteuid32.c +++ b/tests/geteuid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_geteuid32 diff --git a/tests/getgid-creds.gen.test b/tests/getgid-creds.gen.test new file mode 100755 index 00000000..e82e11dd --- /dev/null +++ b/tests/getgid-creds.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getgid-creds +getuid.test ); do not edit. +set -- +. "${srcdir=.}/getuid.test" diff --git a/tests/getgid.c b/tests/getgid.c index 1bd70502..c9c9f722 100644 --- a/tests/getgid.c +++ b/tests/getgid.c @@ -1,14 +1,14 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" -#ifdef __NR_getgid +#if defined __NR_getgid && (!defined __NR_getxgid || __NR_getxgid != __NR_getgid) # include # include diff --git a/tests/getgid32-creds.gen.test b/tests/getgid32-creds.gen.test new file mode 100755 index 00000000..7d379935 --- /dev/null +++ b/tests/getgid32-creds.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getgid32-creds +getuid.test ); do not edit. +set -- +. "${srcdir=.}/getuid.test" diff --git a/tests/getgid32.c b/tests/getgid32.c index c6859cf4..922c6f5f 100644 --- a/tests/getgid32.c +++ b/tests/getgid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getgid32 diff --git a/tests/getgroups.c b/tests/getgroups.c index 36c095df..c87d9874 100644 --- a/tests/getgroups.c +++ b/tests/getgroups.c @@ -2,7 +2,7 @@ * Check decoding of getgroups/getgroups32 syscalls. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -17,7 +17,7 @@ #else # include "tests.h" -# include +# include "scno.h" # ifdef __NR_getgroups diff --git a/tests/getgroups32.c b/tests/getgroups32.c index d005792d..a626d35f 100644 --- a/tests/getgroups32.c +++ b/tests/getgroups32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getgroups32 diff --git a/tests/getpgrp--pidns-translation.c b/tests/getpgrp--pidns-translation.c new file mode 100644 index 00000000..de8ceb33 --- /dev/null +++ b/tests/getpgrp--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "getpgrp.c" diff --git a/tests/getpgrp--pidns-translation.gen.test b/tests/getpgrp--pidns-translation.gen.test new file mode 100755 index 00000000..93636118 --- /dev/null +++ b/tests/getpgrp--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getpgrp--pidns-translation test_pidns -e trace=getpgrp -a10); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -e trace=getpgrp -a10 diff --git a/tests/getpgrp.c b/tests/getpgrp.c index 3d45f718..c981d79b 100644 --- a/tests/getpgrp.c +++ b/tests/getpgrp.c @@ -1,12 +1,13 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #ifdef __NR_getpgrp @@ -16,8 +17,13 @@ int main(void) { - printf("getpgrp() = %ld\n", syscall(__NR_getpgrp)); + PIDNS_TEST_INIT; + pidns_print_leader(); + printf("getpgrp() = %d%s\n", (int) syscall(__NR_getpgrp), + pidns_pid2str(PT_PGID)); + + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests/getpid--pidns-translation.c b/tests/getpid--pidns-translation.c new file mode 100644 index 00000000..94b12a1a --- /dev/null +++ b/tests/getpid--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "getpid.c" diff --git a/tests/getpid--pidns-translation.gen.test b/tests/getpid--pidns-translation.gen.test new file mode 100755 index 00000000..abe2cf45 --- /dev/null +++ b/tests/getpid--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getpid--pidns-translation test_pidns -e trace=getpid -a9); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -e trace=getpid -a9 diff --git a/tests/getpid.c b/tests/getpid.c index 5e88e052..4291400d 100644 --- a/tests/getpid.c +++ b/tests/getpid.c @@ -1,14 +1,15 @@ /* - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" -#ifdef __NR_getpid +#if defined __NR_getpid && (!defined __NR_getxpid || __NR_getxpid != __NR_getpid) # include # include @@ -16,7 +17,12 @@ int main(void) { - printf("getpid() = %ld\n", syscall(__NR_getpid)); + PIDNS_TEST_INIT; + + pidns_print_leader(); + printf("getpid() = %d%s\n", (int) syscall(__NR_getpid), + pidns_pid2str(PT_TGID)); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests/getppid.c b/tests/getppid.c index 718d0691..fd279763 100644 --- a/tests/getppid.c +++ b/tests/getppid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getppid @@ -16,7 +16,7 @@ int main(void) { - printf("getppid() = %ld\n", syscall(__NR_getppid)); + printf("getppid() = %s\n", sprintrc(syscall(__NR_getppid))); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests/getrandom.c b/tests/getrandom.c index eb6cdb1b..ebb8c839 100644 --- a/tests/getrandom.c +++ b/tests/getrandom.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getrandom diff --git a/tests/getresgid.c b/tests/getresgid.c index 3ad2c190..ebf35212 100644 --- a/tests/getresgid.c +++ b/tests/getresgid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getresgid diff --git a/tests/getresgid32.c b/tests/getresgid32.c index b78afaed..bd8ce212 100644 --- a/tests/getresgid32.c +++ b/tests/getresgid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getresgid32 diff --git a/tests/getresuid.c b/tests/getresuid.c index 5bb2e301..8a29c172 100644 --- a/tests/getresuid.c +++ b/tests/getresuid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getresuid diff --git a/tests/getresuid32.c b/tests/getresuid32.c index 13acc695..306b9d59 100644 --- a/tests/getresuid32.c +++ b/tests/getresuid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getresuid32 diff --git a/tests/getrlimit.c b/tests/getrlimit.c index 6d3b4cd5..8a323091 100644 --- a/tests/getrlimit.c +++ b/tests/getrlimit.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getrlimit diff --git a/tests/getrusage.c b/tests/getrusage.c index 412d8a00..13defc9f 100644 --- a/tests/getrusage.c +++ b/tests/getrusage.c @@ -1,14 +1,14 @@ /* * Copyright (c) 2016 Fei Jie * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getrusage @@ -18,30 +18,41 @@ # include # include +# include "kernel_rusage.h" # include "xlat.h" # include "xlat/usagewho.h" int -invoke_print(int who, const char *who_str, struct rusage *usage) +invoke_print(int who, const char *who_str, kernel_rusage_t *usage) { int rc = syscall(__NR_getrusage, who, usage); int saved_errno = errno; printf("getrusage(%s, {ru_utime={tv_sec=%lld, tv_usec=%llu}" - ", ru_stime={tv_sec=%lld, tv_usec=%llu}, ru_maxrss=%lu" - ", ru_ixrss=%lu, ru_idrss=%lu, ru_isrss=%lu, ru_minflt=%lu" - ", ru_majflt=%lu, ru_nswap=%lu, ru_inblock=%lu" - ", ru_oublock=%lu, ru_msgsnd=%lu, ru_msgrcv=%lu" - ", ru_nsignals=%lu, ru_nvcsw=%lu, ru_nivcsw=%lu}) = %s\n", + ", ru_stime={tv_sec=%lld, tv_usec=%llu}, ru_maxrss=%llu" + ", ru_ixrss=%llu, ru_idrss=%llu, ru_isrss=%llu, ru_minflt=%llu" + ", ru_majflt=%llu, ru_nswap=%llu, ru_inblock=%llu" + ", ru_oublock=%llu, ru_msgsnd=%llu, ru_msgrcv=%llu" + ", ru_nsignals=%llu, ru_nvcsw=%llu, ru_nivcsw=%llu}) = %s\n", who_str, (long long) usage->ru_utime.tv_sec, zero_extend_signed_to_ull(usage->ru_utime.tv_usec), (long long) usage->ru_stime.tv_sec, zero_extend_signed_to_ull(usage->ru_stime.tv_usec), - usage->ru_maxrss, usage->ru_ixrss, usage->ru_idrss, - usage->ru_isrss, usage->ru_minflt, usage->ru_majflt, - usage->ru_nswap, usage->ru_inblock, usage->ru_oublock, - usage->ru_msgsnd, usage->ru_msgrcv, usage->ru_nsignals, - usage->ru_nvcsw, usage->ru_nivcsw, sprintrc(rc)); + zero_extend_signed_to_ull(usage->ru_maxrss), + zero_extend_signed_to_ull(usage->ru_ixrss), + zero_extend_signed_to_ull(usage->ru_idrss), + zero_extend_signed_to_ull(usage->ru_isrss), + zero_extend_signed_to_ull(usage->ru_minflt), + zero_extend_signed_to_ull(usage->ru_majflt), + zero_extend_signed_to_ull(usage->ru_nswap), + zero_extend_signed_to_ull(usage->ru_inblock), + zero_extend_signed_to_ull(usage->ru_oublock), + zero_extend_signed_to_ull(usage->ru_msgsnd), + zero_extend_signed_to_ull(usage->ru_msgrcv), + zero_extend_signed_to_ull(usage->ru_nsignals), + zero_extend_signed_to_ull(usage->ru_nvcsw), + zero_extend_signed_to_ull(usage->ru_nivcsw), + sprintrc(rc)); errno = saved_errno; return rc; } @@ -49,7 +60,7 @@ invoke_print(int who, const char *who_str, struct rusage *usage) int main(void) { - TAIL_ALLOC_OBJECT_CONST_PTR(struct rusage, usage); + TAIL_ALLOC_OBJECT_CONST_PTR(kernel_rusage_t, usage); if (invoke_print(ARG_STR(RUSAGE_SELF), usage)) { perror_msg_and_fail("RUSAGE_SELF"); } diff --git a/tests/getsid--pidns-translation.c b/tests/getsid--pidns-translation.c new file mode 100644 index 00000000..7f983e87 --- /dev/null +++ b/tests/getsid--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "getsid.c" diff --git a/tests/getsid--pidns-translation.gen.test b/tests/getsid--pidns-translation.gen.test new file mode 100755 index 00000000..c07ae33c --- /dev/null +++ b/tests/getsid--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getsid--pidns-translation test_pidns -e trace=getsid -a10); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -e trace=getsid -a10 diff --git a/tests/getsid.c b/tests/getsid.c index 588ea4ab..71355bb6 100644 --- a/tests/getsid.c +++ b/tests/getsid.c @@ -1,20 +1,27 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include "pidns.h" + #include #include int main(void) { + PIDNS_TEST_INIT; + pid_t pid = getpid(); - printf("getsid(%d) = %d\n", pid, getsid(pid)); + pidns_print_leader(); + printf("getsid(%d%s) = %d%s\n", pid, pidns_pid2str(PT_TGID), + getsid(pid), pidns_pid2str(PT_SID)); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests/gettid--pidns-translation.c b/tests/gettid--pidns-translation.c new file mode 100644 index 00000000..500c3213 --- /dev/null +++ b/tests/gettid--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "gettid.c" diff --git a/tests/gettid--pidns-translation.test b/tests/gettid--pidns-translation.test new file mode 100755 index 00000000..9624129e --- /dev/null +++ b/tests/gettid--pidns-translation.test @@ -0,0 +1,18 @@ +#!/bin/sh +# +# Check pidns translation of gettid's return value. +# +# Copyright (c) 2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: LGPL-2.1-or-later + +. "${srcdir=.}/init.sh" + +run_prog > /dev/null +run_strace -a9 --pidns-translation -f -e trace=gettid $args > "$EXP" +parent_pid="$(tail -n 2 $LOG | head -n 1 | cut -d' ' -f1)" +init_pid="$(tail -n 1 $LOG | cut -d' ' -f1)" +# uniq: filter out extra gettid calls made by musl libc +grep -E -v "^($parent_pid|$init_pid) |unfinished|resumed" "$LOG" | uniq > "$OUT" +match_diff "$OUT" "$EXP" diff --git a/tests/gettid.c b/tests/gettid.c index 24947e89..8df4f8d5 100644 --- a/tests/gettid.c +++ b/tests/gettid.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -8,12 +8,18 @@ #include "tests.h" #include #include -#include +#include "scno.h" +#include "pidns.h" int main(void) { - printf("gettid() = %ld\n", syscall(__NR_gettid)); + PIDNS_TEST_INIT; + + pidns_print_leader(); + printf("gettid() = %d%s\n", (int) syscall(__NR_gettid), + pidns_pid2str(PT_TID)); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests/getuid-creds.gen.test b/tests/getuid-creds.gen.test new file mode 100755 index 00000000..5cd14c58 --- /dev/null +++ b/tests/getuid-creds.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getuid-creds +getuid.test ); do not edit. +set -- +. "${srcdir=.}/getuid.test" diff --git a/tests/getuid.c b/tests/getuid.c index 56f6c902..f3ff9af1 100644 --- a/tests/getuid.c +++ b/tests/getuid.c @@ -1,14 +1,14 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" -#ifdef __NR_getuid +#if defined __NR_getuid && (!defined __NR_getxuid || __NR_getxuid != __NR_getuid) # include # include diff --git a/tests/getuid.test b/tests/getuid.test index a0bbb3ed..e8351a22 100755 --- a/tests/getuid.test +++ b/tests/getuid.test @@ -1,16 +1,33 @@ #!/bin/sh # -# Check getuid syscall decoding. +# Check get(e)?[gu]id(32)? syscalls decoding. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" +check_prog grep check_prog uniq + +if [ "${NAME%-creds}" = "$NAME" ]; then + syscall="$NAME" +else + NAME="${NAME%-creds}" + syscall='%creds' +fi + run_prog > /dev/null -run_strace -qq -a9 -e$NAME $args > "$EXP" -uniq < "$LOG" > "$OUT" +run_strace -qq -a9 -e"$syscall" $args > "$EXP" + +case "$STRACE_ARCH:$syscall" in + mips:%creds) + grep -Fxv 'prctl(PR_GET_FP_MODE) = 0' < "$LOG" | uniq > "$OUT" + ;; + *) uniq < "$LOG" > "$OUT" + ;; +esac + match_diff "$OUT" "$EXP" diff --git a/tests/getuid32-creds.gen.test b/tests/getuid32-creds.gen.test new file mode 100755 index 00000000..d6311ca0 --- /dev/null +++ b/tests/getuid32-creds.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getuid32-creds +getuid.test ); do not edit. +set -- +. "${srcdir=.}/getuid.test" diff --git a/tests/getuid32.c b/tests/getuid32.c index 1222dbcb..0c0441f7 100644 --- a/tests/getuid32.c +++ b/tests/getuid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_getuid32 diff --git a/tests/getxgid.c b/tests/getxgid.c new file mode 100644 index 00000000..2fa6edd8 --- /dev/null +++ b/tests/getxgid.c @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_getxgid + +# include +# include + +int +main(void) +{ + long id = syscall(__NR_getxgid); + printf("getxgid() = %ld (egid %ld)\n", id, id); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_getxgid") + +#endif diff --git a/tests/getxgid.gen.test b/tests/getxgid.gen.test new file mode 100755 index 00000000..e9068a37 --- /dev/null +++ b/tests/getxgid.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getxgid -a10 ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 diff --git a/tests/getxpid.c b/tests/getxpid.c new file mode 100644 index 00000000..f8218db8 --- /dev/null +++ b/tests/getxpid.c @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_getxpid + +# include +# include + +int +main(void) +{ + long id = syscall(__NR_getxpid); + pid_t ppid = getppid(); + + printf("getxpid() = %ld (ppid %ld)\n", id, (long) ppid); + printf("getxpid() = %ld (ppid %ld)\n", id, (long) ppid); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_getxpid") + +#endif diff --git a/tests/getxpid.gen.test b/tests/getxpid.gen.test new file mode 100755 index 00000000..0473cced --- /dev/null +++ b/tests/getxpid.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getxpid -a10 ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 diff --git a/tests/getxuid.c b/tests/getxuid.c new file mode 100644 index 00000000..6263550d --- /dev/null +++ b/tests/getxuid.c @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_getxuid + +# include +# include + +int +main(void) +{ + long id = syscall(__NR_getxuid); + printf("getxuid() = %ld (euid %ld)\n", id, id); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_getxuid") + +#endif diff --git a/tests/getxuid.gen.test b/tests/getxuid.gen.test new file mode 100755 index 00000000..37db2ddf --- /dev/null +++ b/tests/getxuid.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getxuid -a10 ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 diff --git a/tests/getxxid.c b/tests/getxxid.c deleted file mode 100644 index 864cea5b..00000000 --- a/tests/getxxid.c +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2016-2018 Dmitry V. Levin - * All rights reserved. - * - * SPDX-License-Identifier: GPL-2.0-or-later - */ - -#include "tests.h" -#include - -#if defined __NR_getxpid && defined __NR_getxuid && defined __NR_getxgid - -# include -# include - -int -main(void) -{ - long id; - pid_t ppid; - - id = syscall(__NR_getxpid); - ppid = getppid(); - printf("getxpid() = %ld (ppid %ld)\n", id, (long) ppid); - printf("getxpid() = %ld (ppid %ld)\n", id, (long) ppid); - - id = syscall(__NR_getxuid); - printf("getxuid() = %ld (euid %ld)\n", id, id); - - id = syscall(__NR_getxgid); - printf("getxgid() = %ld (egid %ld)\n", id, id); - - puts("+++ exited with 0 +++"); - return 0; -} - -#else - -SKIP_MAIN_UNDEFINED("__NR_getxpid && __NR_getxuid && __NR_getxgid") - -#endif diff --git a/tests/getxxid.gen.test b/tests/getxxid.gen.test deleted file mode 100755 index 5aa89f65..00000000 --- a/tests/getxxid.gen.test +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (getxxid -a10 -e trace=getxpid,getxuid,getxgid); do not edit. -. "${srcdir=.}/init.sh" -run_strace_match_diff -a10 -e trace=getxpid,getxuid,getxgid diff --git a/tests/init.sh b/tests/init.sh index 40e62188..52417051 100644 --- a/tests/init.sh +++ b/tests/init.sh @@ -1,7 +1,7 @@ #!/bin/sh # # Copyright (c) 2011-2016 Dmitry V. Levin -# Copyright (c) 2011-2018 The strace developers. +# Copyright (c) 2011-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -11,6 +11,7 @@ ME_="${0##*/}" LOG="log" OUT="out" EXP="exp" +CONFIG_H="../../config.h" warn_() { printf >&2 '%s\n' "$*"; } fail_() { warn_ "$ME_: failed test: $*"; exit 1; } @@ -18,6 +19,33 @@ skip_() { warn_ "$ME_: skipped test: $*"; exit 77; } framework_failure_() { warn_ "$ME_: framework failure: $*"; exit 99; } framework_skip_() { warn_ "$ME_: framework skip: $*"; exit 77; } +# get_config_str OPTION +# +# Returns the value of OPTION from config.h (path to which set +# in the CONFIG_H variable). +get_config_str() +{ + sed -r -n 's/#define[[:space:]]*'"$1"'[[:space:]]*"([^"]*)".*/\1/p' \ + "$CONFIG_H" +} + +# get_config_option OPTION YES_STRING [NO_STRING] +# +# Returns YES_STRING in case OPTION is enabled (present in config.h and has +# a non-zero numeric value). Otherwise, NO_STRING (or empty string, if not +# specified) is returned. +get_config_option() +{ + local opt + opt=$(sed -r -n 's/#define[[:space:]]*'"$1"'[[:space:]]*([0-9]+)$/\1/p' \ + "$CONFIG_H") + if [ -n "$opt" -a "$opt" -ne 0 ]; then + printf "%s" "$2" + else + printf "%s" "${3-}" + fi +} + check_prog() { type "$@" > /dev/null 2>&1 || @@ -161,7 +189,7 @@ match_diff() # dump both files and fail with ERROR_MESSAGE. match_grep() { - local output patterns error pattern cnt failed= + local output patterns error pattern cnt failed= rc negated if [ $# -eq 0 ]; then output="$LOG" else @@ -183,7 +211,15 @@ match_grep() cnt=1 while read -r pattern; do - LC_ALL=C grep -E -x -e "$pattern" < "$output" > /dev/null || { + negated=0 + [ "x${pattern#!}" = "x${pattern}" ] || + negated=1 + + rc="$negated" + LC_ALL=C grep -E -x -e "${pattern#!}" < "$output" > /dev/null || + rc="$((!negated))" + + [ 0 = "$rc" ] || { test -n "$failed" || { echo 'Failed patterns of expected output:' failed=1 @@ -191,7 +227,8 @@ match_grep() printf '#%d: %s\n' "$cnt" "$pattern" } cnt=$(($cnt + 1)) - done < "$patterns" + done < "$patterns" || + fail_ "Error reading patterns from \"$patterns\"" test -z "$failed" || { echo 'Actual output:' cat < "$output" @@ -203,7 +240,7 @@ match_grep() run_strace_match_diff() { args="$*" - [ -n "$args" -a -z "${args##*-e trace=*}" ] || + [ -n "$args" -a \( -z "${args##*-e trace=*}" -o -z "${args##*--trace=*}" \) ] || set -- -e trace="$NAME" "$@" run_prog > /dev/null run_strace "$@" $args > "$EXP" @@ -214,7 +251,7 @@ run_strace_match_diff() run_strace_match_grep() { args="$*" - [ -n "$args" -a -z "${args##*-e trace=*}" ] || + [ -n "$args" -a \( -z "${args##*-e trace=*}" -o -z "${args##*--trace=*}" \) ] || set -- -e trace="$NAME" "$@" run_prog > /dev/null run_strace "$@" $args > "$EXP" @@ -247,6 +284,20 @@ require_min_kernel_version_or_skip() skip_ "the kernel release $uname_r is not $1 or newer" } +# Usage: require_min_nproc 2 +require_min_nproc() +{ + local min_nproc + min_nproc="$1"; shift + + check_prog nproc + local nproc + nproc="$(nproc)" + + [ "$nproc" -ge "$min_nproc" ] || + framework_skip_ "nproc = $nproc is less than $min_nproc" +} + # Usage: grep_pid_status $pid GREP-OPTIONS... grep_pid_status() { @@ -297,6 +348,13 @@ test_pure_prog_set() try_run_prog "../$t" || continue run_strace $prog_args "$@" "../$t" > "$expfile" + + case "$STRACE_ARCH:$MIPS_ABI:$NAME" in + mips:o32:*creds) + sed -i '/^prctl(PR_GET_FP_MODE) *= 0$/d' "$LOG" + ;; + esac + match_diff "$LOG" "$expfile" } < /dev/null; done } @@ -324,6 +382,41 @@ test_trace_expr() < negative.list } +test_prog_set() +{ + test_pure_prog_set "$@" < "$srcdir/$NAME.in" +} + +test_pidns_run_strace() +{ + local parent_pid init_pid + + check_prog tail + check_prog cut + check_prog grep + + run_prog > /dev/null + run_strace --pidns-translation -f $@ $args > "$EXP" + + # filter out logs made by the parent or init process of the pidns test + parent_pid="$(tail -n 2 $LOG | head -n 1 | cut -d' ' -f1)" + init_pid="$(tail -n 1 $LOG | cut -d' ' -f1)" + grep -E -v "^($parent_pid|$init_pid) " "$LOG" > "$OUT" + match_diff "$OUT" "$EXP" +} + +test_pidns() +{ + check_prog unshare + unshare -Urpf true || framework_skip_ "unshare -Urpf true failed" + + test_pidns_run_strace "$@" + + # test PID translation when /proc is mounted from an other namespace + STRACE="unshare -Urpf $STRACE" + test_pidns_run_strace "$@" +} + check_prog cat check_prog rm @@ -365,7 +458,7 @@ fi : "${STRACE_EXE:=$STRACE}" export STRACE_EXE -: "${TIMEOUT_DURATION:=600}" +: "${TIMEOUT_DURATION:=1500}" : "${SLEEP_A_BIT:=sleep 1}" [ -z "${VERBOSE-}" ] || diff --git a/tests/init_module.c b/tests/init_module.c index 601f7f92..a8884720 100644 --- a/tests/init_module.c +++ b/tests/init_module.c @@ -2,7 +2,7 @@ * Check decoding of init_module syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_init_module) diff --git a/tests/inject-nf.c b/tests/inject-nf.c index b419984f..22f34571 100644 --- a/tests/inject-nf.c +++ b/tests/inject-nf.c @@ -1,7 +1,7 @@ /* * Check decoding of return values injected into a syscall that "never fails". * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,32 +12,30 @@ #include #include #include -#include +#include "scno.h" #include "raw_syscall.h" -#ifdef __alpha__ -/* alpha has no getpid */ -# define SC_NR __NR_getpgrp -# define SC_NAME "getpgrp" -# define getpid getpgrp +#ifdef __NR_geteuid32 +# define SC_NR __NR_geteuid32 +# define SC_NAME "geteuid32" #else -# define SC_NR __NR_getpid -# define SC_NAME "getpid" +# define SC_NR __NR_geteuid +# define SC_NAME "geteuid" #endif #ifdef raw_syscall_0 # define INVOKE_SC(err) raw_syscall_0(SC_NR, &err) #else -/* No raw_syscall_0, let's use getpid() and hope for the best. */ -# define INVOKE_SC(err) getpid() +/* No raw_syscall_0, let's use geteuid() and hope for the best. */ +# define INVOKE_SC(err) geteuid() #endif /* * This prototype is intentionally different * from the prototype provided by . */ -extern kernel_ulong_t getpid(void); +extern kernel_ulong_t geteuid(void); int main(int ac, char **av) @@ -45,7 +43,7 @@ main(int ac, char **av) assert(ac == 1 || ac == 2); kernel_ulong_t expected = - (ac == 1) ? getpid() : strtoull(av[1], NULL, 0); + (ac == 1) ? geteuid() : strtoull(av[1], NULL, 0); kernel_ulong_t err = 0; kernel_ulong_t rc = INVOKE_SC(err); diff --git a/tests/inject-nf.test b/tests/inject-nf.test index cadb5adb..7b0c3fda 100755 --- a/tests/inject-nf.test +++ b/tests/inject-nf.test @@ -2,21 +2,14 @@ # # Check decoding of return values injected into a syscall that "never fails". # -# Copyright (c) 2018 The strace developers. +# Copyright (c) 2018-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/scno_tampering.sh" -case "$STRACE_ARCH" in -alpha) - SYSCALL=getpgrp - ;; -*) - SYSCALL=getpid - ;; -esac +SYSCALL='/^geteuid(32)?$' run_prog prog="$args" diff --git a/tests/inotify.c b/tests/inotify.c index db751d4e..f5167509 100644 --- a/tests/inotify.c +++ b/tests/inotify.c @@ -2,7 +2,7 @@ * Check decoding of inotify_add_watch and inotify_rm_watch syscalls. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_inotify_add_watch) && defined(__NR_inotify_rm_watch) diff --git a/tests/inotify_init-y.c b/tests/inotify_init-y.c new file mode 100644 index 00000000..cbe094ba --- /dev/null +++ b/tests/inotify_init-y.c @@ -0,0 +1,2 @@ +#define PRINT_PATHS +#include "inotify_init.c" diff --git a/tests/inotify_init-y.test b/tests/inotify_init-y.test new file mode 100755 index 00000000..36f24776 --- /dev/null +++ b/tests/inotify_init-y.test @@ -0,0 +1,17 @@ +#!/bin/sh +# +# Check decoding of inotify_init with path decoding enabled. +# +# Copyright (c) 2018-2019 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +# Test expects "anon_inode:inotify" link path format for a inotify fd, which +# is in place since v2.6.33-rc1~34^2~7. Check for older link path formats +# is implemented in inotify_init1 test. +require_min_kernel_version_or_skip 2.6.33 + +run_strace_match_diff -a15 -y -e trace=inotify_init diff --git a/tests/inotify_init.c b/tests/inotify_init.c new file mode 100644 index 00000000..9537a7d5 --- /dev/null +++ b/tests/inotify_init.c @@ -0,0 +1,48 @@ +/* + * Check decoding of inotify_init syscall. + * + * Copyright (c) 2018-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_inotify_init + +# include +# include + +int +main(void) +{ +# ifdef PRINT_PATHS + skip_if_unavailable("/proc/self/fd/"); +# endif + + long rc = syscall(__NR_inotify_init, 42); + +# ifdef PRINT_PATHS + if (rc < 0) + perror_msg_and_skip("inotify_init"); +# endif + + printf("inotify_init() = " +# ifdef PRINT_PATHS + "%ld\n", rc +# else + "%s\n", sprintrc(rc) +# endif + ); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_inotify_init"); + +#endif diff --git a/tests/inotify_init.gen.test b/tests/inotify_init.gen.test new file mode 100755 index 00000000..47e6f602 --- /dev/null +++ b/tests/inotify_init.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (inotify_init -a15 ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a15 diff --git a/tests/inotify_init1-y.c b/tests/inotify_init1-y.c new file mode 100644 index 00000000..53c65e66 --- /dev/null +++ b/tests/inotify_init1-y.c @@ -0,0 +1,2 @@ +#define PRINT_PATHS +#include "inotify_init1.c" diff --git a/tests/inotify_init1-y.gen.test b/tests/inotify_init1-y.gen.test new file mode 100755 index 00000000..160d4d3e --- /dev/null +++ b/tests/inotify_init1-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (inotify_init1-y -a27 -y -e trace=inotify_init1); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a27 -y -e trace=inotify_init1 diff --git a/tests/inotify_init1.c b/tests/inotify_init1.c index 4f352b70..efff52ec 100644 --- a/tests/inotify_init1.c +++ b/tests/inotify_init1.c @@ -2,7 +2,7 @@ * Check decoding of inotify_init1 syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_inotify_init1) @@ -25,9 +25,19 @@ # endif # define all_flags (O_NONBLOCK | cloexec_flag) +# ifdef PRINT_PATHS +# define RC_FMT "%ld<%s>" +# else +# define RC_FMT "%s" +# endif + int main(void) { +# ifdef PRINT_PATHS + skip_if_unavailable("/proc/self/fd/"); +# endif + static const kernel_ulong_t bogus_flags1 = (kernel_ulong_t) 0xfacefeeddeadbeefULL | O_NONBLOCK; static const kernel_ulong_t bogus_flags2 = @@ -46,8 +56,51 @@ main(void) (unsigned int) bogus_flags2, sprintrc(rc)); rc = syscall(__NR_inotify_init1, all_flags); - printf("inotify_init1(IN_NONBLOCK%s) = %s\n", - all_flags & cloexec_flag ? "|IN_CLOEXEC" : "", sprintrc(rc)); + +# ifdef PRINT_PATHS + if (rc < 0) + perror_msg_and_skip("inotify_init(%#x)", all_flags); + + /* + * Kernels that do not have v2.6.33-rc1~34^2~7 do not have + * "anon_inode:" prefix. Let's assume that it can be either "inotify" + * or "anon_inode:inotify" for now, as any change there may be + * of interest. + */ + char path[sizeof("/proc/self/fd/") + sizeof(rc) * 3]; + char buf[2] = ""; + const char *inotify_path; + ssize_t ret; + + ret = snprintf(path, sizeof(path), "/proc/self/fd/%ld", rc); + if ((ret < 0) || ((size_t) ret >= sizeof(path))) + perror_msg_and_fail("snprintf(path)"); + + ret = readlink(path, buf, sizeof(buf)); + if (ret < 0) + perror_msg_and_fail("readlink"); + + switch (buf[0]) { + case 'a': + inotify_path = "anon_inode:inotify"; + break; + case 'i': + inotify_path = "inotify"; + break; + default: + error_msg_and_fail("Unexpected first char '%c' of inotify fd " + "link path", buf[0]); + } +# endif + + printf("inotify_init1(IN_NONBLOCK%s) = " RC_FMT "\n", + all_flags & cloexec_flag ? "|IN_CLOEXEC" : "", +# ifdef PRINT_PATHS + rc, inotify_path +# else + sprintrc(rc) +# endif + ); puts("+++ exited with 0 +++"); diff --git a/tests/io_uring_enter.c b/tests/io_uring_enter.c index 3284ebac..bc741cd4 100644 --- a/tests/io_uring_enter.c +++ b/tests/io_uring_enter.c @@ -9,7 +9,6 @@ #include "tests.h" #include -#include #include "scno.h" #ifdef __NR_io_uring_enter diff --git a/tests/io_uring_register.c b/tests/io_uring_register.c index a0327ed8..b0c5b9ee 100644 --- a/tests/io_uring_register.c +++ b/tests/io_uring_register.c @@ -2,6 +2,7 @@ * Check decoding of io_uring_register syscall. * * Copyright (c) 2019 Dmitry V. Levin + * Copyright (c) 2019-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,16 +10,37 @@ #include "tests.h" #include -#include #include "scno.h" #ifdef __NR_io_uring_register # include +# include # include # include # include +# ifdef HAVE_LINUX_IO_URING_H +# include +# endif + +/* From tests/bpf.c */ +# if defined MPERS_IS_m32 || SIZEOF_KERNEL_LONG_T > 4 +# define BIG_ADDR_MAYBE(addr_) +# elif defined __arm__ || defined __i386__ || defined __mips__ \ + || defined __powerpc__ || defined __riscv__ || defined __s390__ \ + || defined __sparc__ || defined __tile__ +# define BIG_ADDR_MAYBE(addr_) addr_ " or " +# else +# define BIG_ADDR_MAYBE(addr_) +# endif + +# if WORDS_BIGENDIAN +# define BE_LE(be_, le_) be_ +# else +# define BE_LE(be_, le_) le_ +# endif + static const char *errstr; static long @@ -64,15 +86,40 @@ main(void) int fd_full = open(path_full, O_RDONLY); if (fd_full < 0) - perror_msg_and_fail("open: %s", path_null); + perror_msg_and_fail("open: %s", path_full); int fds[] = { fd_full, fd_null }; const int *arg_fds = tail_memdup(fds, sizeof(fds)); - sys_io_uring_register(fd_null, 0xbadc0ded, path_null, 0xdeadbeef); - printf("io_uring_register(%u<%s>, %#x /* IORING_REGISTER_??? */" - ", %p, %u) = %s\n", - fd_null, path_null, 0xbadc0ded, path_null, 0xdeadbeef, errstr); + static const unsigned int invalid_ops[] = { 0xbadc0dedU, 11 }; + + for (size_t i = 0; i < ARRAY_SIZE(invalid_ops); i++) { + sys_io_uring_register(fd_null, invalid_ops[i], path_null, + 0xdeadbeef); + printf("io_uring_register(%u<%s>, %#x /* IORING_REGISTER_??? */" + ", %p, %u) = %s\n", + fd_null, path_null, invalid_ops[i], path_null, + 0xdeadbeef, errstr); + } + + static const struct { + unsigned int op; + const char *str; + } no_arg_ops[] = { + { 1, "IORING_UNREGISTER_BUFFERS" }, + { 3, "IORING_UNREGISTER_FILES" }, + { 5, "IORING_UNREGISTER_EVENTFD" }, + { 9, "IORING_REGISTER_PERSONALITY" }, + { 10, "IORING_UNREGISTER_PERSONALITY" }, + }; + + for (size_t i = 0; i < ARRAY_SIZE(no_arg_ops); i++) { + sys_io_uring_register(fd_null, no_arg_ops[i].op, path_null, + 0xdeadbeef); + printf("io_uring_register(%u<%s>, %s, %p, %u) = %s\n", + fd_null, path_null, no_arg_ops[i].str, path_null, + 0xdeadbeef, errstr); + } sys_io_uring_register(fd_null, 0, arg_iov, ARRAY_SIZE(iov)); printf("io_uring_register(%u<%s>, IORING_REGISTER_BUFFERS" @@ -83,11 +130,157 @@ main(void) iov[1].iov_base, (unsigned long) iov[1].iov_len, (unsigned int) ARRAY_SIZE(iov), errstr); - sys_io_uring_register(fd_null, 2, arg_fds, ARRAY_SIZE(fds)); - printf("io_uring_register(%u<%s>, IORING_REGISTER_FILES" - ", [%u<%s>, %u<%s>], %u) = %s\n", + static const struct { + unsigned int op; + const char *str; + } fd_arr_ops[] = { + { 2, "IORING_REGISTER_FILES" }, + { 4, "IORING_REGISTER_EVENTFD" }, + { 7, "IORING_REGISTER_EVENTFD_ASYNC" }, + }; + + for (size_t i = 0; i < ARRAY_SIZE(fd_arr_ops); i++) { + sys_io_uring_register(fd_null, fd_arr_ops[i].op, arg_fds, + ARRAY_SIZE(fds)); + printf("io_uring_register(%u<%s>, %s, [%u<%s>, %u<%s>], %u)" + " = %s\n", + fd_null, path_null, fd_arr_ops[i].str, + fd_full, path_full, fd_null, path_null, + (unsigned int) ARRAY_SIZE(fds), errstr); + } + +# ifdef HAVE_STRUCT_IO_URING_FILES_UPDATE + struct io_uring_files_update bogus_iufu; + struct io_uring_files_update iufu; + + sys_io_uring_register(fd_null, 6, NULL, 0xfacefeed); + printf("io_uring_register(%u<%s>, IORING_REGISTER_FILES_UPDATE" + ", NULL, 4207869677) = %s\n", + fd_null, path_null, errstr); + + fill_memory(&bogus_iufu, sizeof(bogus_iufu)); + sys_io_uring_register(fd_null, 6, &bogus_iufu, 0); + printf("io_uring_register(%u<%s>, IORING_REGISTER_FILES_UPDATE" + ", {offset=%" PRIu32 ", resv=%#" PRIx32 ", fds=" + BIG_ADDR_MAYBE(BE_LE("0x88898a8b8c8d8e8f", "0x8f8e8d8c8b8a8988")) + "[]}, 0) = %s\n", + fd_null, path_null, + ((uint32_t *) &bogus_iufu)[0], ((uint32_t *) &bogus_iufu)[1], + errstr); + + memset(&iufu, 0, sizeof(iufu)); + iufu.offset = 0xdeadc0deU; + iufu.fds = (uintptr_t) fds; + sys_io_uring_register(fd_null, 6, &iufu, ARRAY_SIZE(fds)); + printf("io_uring_register(%u<%s>, IORING_REGISTER_FILES_UPDATE" + ", {offset=3735929054, fds=[%u<%s>, %u<%s>]}, %u) = %s\n", fd_null, path_null, fd_full, path_full, fd_null, path_null, (unsigned int) ARRAY_SIZE(fds), errstr); +# endif + +# ifdef HAVE_STRUCT_IO_URING_PROBE + struct io_uring_probe *probe = tail_alloc(sizeof(*probe) + + (DEFAULT_STRLEN + 1) * sizeof(struct io_uring_probe_op)); + + sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, NULL, 0xfacefeed); + printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE" + ", NULL, 4207869677) = %s\n", + fd_null, path_null, errstr); + + sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, probe, + 0xfacefeed); + printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE" + ", %p, 4207869677) = %s\n", + fd_null, path_null, probe, errstr); + + sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, + (char *) probe + 1, DEFAULT_STRLEN + 1); + printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE" + ", %p, %d) = %s\n", + fd_null, path_null, (char *) probe + 1, DEFAULT_STRLEN + 1, + errstr); + + sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, probe, 0); + printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE" + ", {last_op=%u /* IORING_OP_??? */, ops_len=%hhu, resv=%#hx" + ", resv2=[%#x, %#x, %#x], ops=[]}, 0) = %s\n", + fd_null, path_null, probe->last_op, probe->ops_len, probe->resv, + probe->resv2[0], probe->resv2[1], probe->resv2[2], errstr); + + probe->last_op = IORING_OP_READV; + probe->resv = 0; + sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, probe, 0); + printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE" + ", {last_op=IORING_OP_READV, ops_len=%hhu" + ", resv2=[%#x, %#x, %#x], ops=[]}, 0) = %s\n", + fd_null, path_null, probe->ops_len, + probe->resv2[0], probe->resv2[1], probe->resv2[2], errstr); + + probe->last_op = IORING_OP_EPOLL_CTL; + probe->resv2[0] = 0; + probe->resv2[2] = 0; + + probe->ops[0].op = IORING_OP_NOP; + probe->ops[0].resv = 0xde; + probe->ops[0].flags = 0; + probe->ops[0].resv2 = 0xbeefface; + + probe->ops[1].op = 33; + probe->ops[1].resv = 0; + probe->ops[1].flags = IO_URING_OP_SUPPORTED; + probe->ops[1].resv2 = 0xdeadc0de; + + probe->ops[2].op = 34; + probe->ops[2].resv = 0xaf; + probe->ops[2].flags = 0xbeef; + probe->ops[2].resv2 = 0; + + probe->ops[3].op = 0xfe; + probe->ops[3].resv = 0; + probe->ops[3].flags = 0xc0de; + probe->ops[3].resv2 = 0; + + sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, probe, 4); + printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE" + ", {last_op=IORING_OP_EPOLL_CTL, ops_len=%hhu" + ", resv2=[0, %#x, 0], ops=[" + "{op=IORING_OP_NOP, resv=0xde, flags=0, resv2=0xbeefface}, " + "{op=IORING_OP_TEE, flags=IO_URING_OP_SUPPORTED" + ", resv2=0xdeadc0de}, " + "{op=34 /* IORING_OP_??? */, resv=0xaf" + ", flags=IO_URING_OP_SUPPORTED|0xbeee}, " + "{op=254 /* IORING_OP_??? */" + ", flags=0xc0de /* IO_URING_OP_??? */}]}, 4) = %s\n", + fd_null, path_null, probe->ops_len, probe->resv2[1], errstr); + + probe->last_op = 34; + probe->resv2[1] = 0; + fill_memory_ex(probe->ops, sizeof(probe->ops[0]) * (DEFAULT_STRLEN + 1), + 0x40, 0x80); + sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, probe, + DEFAULT_STRLEN + 1); + printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE" + ", {last_op=34 /* IORING_OP_??? */, ops_len=%hhu, ops=[", + fd_null, path_null, probe->ops_len); + for (size_t i = 0; i < DEFAULT_STRLEN; i++) { + printf("%s{op=%u /* IORING_OP_??? */, resv=%#hhx" + ", flags=%s%#hx%s, resv2=%#x}", + i ? ", " : "", + probe->ops[i].op, probe->ops[i].resv, + probe->ops[i].flags & 1 ? "IO_URING_OP_SUPPORTED|" : "", + (typeof(probe->ops[i].flags)) (probe->ops[i].flags & ~1), + probe->ops[i].flags & 1 ? "" : " /* IO_URING_OP_??? */", + probe->ops[i].resv2); + } + printf(", ...]}, %d) = %s\n", DEFAULT_STRLEN + 1, errstr); + + probe->last_op = 0; + probe->ops_len = 0; + memset(probe->ops, 0, sizeof(probe->ops[0]) * (DEFAULT_STRLEN + 1)); + sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, probe, 8); + printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE, %p, 8) = %s\n", + fd_null, path_null, probe, errstr); +# endif puts("+++ exited with 0 +++"); return 0; diff --git a/tests/io_uring_setup.c b/tests/io_uring_setup.c index f48095bb..d54f8c9b 100644 --- a/tests/io_uring_setup.c +++ b/tests/io_uring_setup.c @@ -2,6 +2,7 @@ * Check decoding of io_uring_setup syscall. * * Copyright (c) 2019 Dmitry V. Levin + * Copyright (c) 2019-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,17 +10,34 @@ #include "tests.h" #include -#include #include "scno.h" #if defined HAVE_LINUX_IO_URING_H && defined __NR_io_uring_setup +# include # include # include # include # include +# include +# include + # include "print_fields.h" +# include "xlat.h" + +# include "xlat/uring_setup_features.h" +# include "xlat/uring_cqring_flags.h" + +# ifdef HAVE_STRUCT_IO_URING_PARAMS_FEATURES +# ifdef HAVE_STRUCT_IO_URING_PARAMS_WQ_FD +# define RESV_START 0 +# else +# define RESV_START 1 +# endif +# else /* !HAVE_STRUCT_IO_URING_PARAMS_FEATURES */ +# define RESV_START 2 +# endif /* HAVE_STRUCT_IO_URING_PARAMS_FEATURES */ static const char *errstr; @@ -39,12 +57,18 @@ sys_io_uring_setup(uint32_t nentries, const void *params) int main(void) { + static const char path_full[] = "/dev/full"; + long rc; TAIL_ALLOC_OBJECT_CONST_PTR(struct io_uring_params, params); const void *efault = (const void *) params + 1; skip_if_unavailable("/proc/self/fd/"); + int fd_full = open(path_full, O_RDONLY); + if (fd_full < 0) + perror_msg_and_fail("open: %s", path_full); + sys_io_uring_setup(-1U, NULL); printf("io_uring_setup(%u, NULL) = %s\n", -1U, errstr); @@ -55,42 +79,110 @@ main(void) params->flags = -1; sys_io_uring_setup(1, params); printf("io_uring_setup(%u, {flags=IORING_SETUP_IOPOLL" - "|IORING_SETUP_SQPOLL|IORING_SETUP_SQ_AFF|%#x" - ", sq_thread_cpu=%#x, sq_thread_idle=%u, resv={", - 1, -1U - 7, params->sq_thread_cpu, params->sq_thread_idle); - for (unsigned int i = 0; i < ARRAY_SIZE(params->resv); ++i) - printf("%s%#x", i ? ", " : "", params->resv[i]); - printf("}}) = %s\n", errstr); - - memset(params, 0, sizeof(*params)); - rc = sys_io_uring_setup(2, params); - printf("io_uring_setup(%u, {flags=0, sq_thread_cpu=0" - ", sq_thread_idle=0", 2); - if (rc < 0) - printf("}) = %s\n", errstr); - else - printf(", sq_entries=%u, cq_entries=%u" - ", sq_off={head=%u, tail=%u, ring_mask=%u" - ", ring_entries=%u, flags=%u, dropped=%u, array=%u}" - ", cq_off={head=%u, tail=%u, ring_mask=%u" - ", ring_entries=%u, overflow=%u, cqes=%u}" - "}) = %ld\n", - params->sq_entries, - params->cq_entries, - params->sq_off.head, - params->sq_off.tail, - params->sq_off.ring_mask, - params->sq_off.ring_entries, - params->sq_off.flags, - params->sq_off.dropped, - params->sq_off.array, - params->cq_off.head, - params->cq_off.tail, - params->cq_off.ring_mask, - params->cq_off.ring_entries, - params->cq_off.overflow, - params->cq_off.cqes, - rc); + "|IORING_SETUP_SQPOLL|IORING_SETUP_SQ_AFF|IORING_SETUP_CQSIZE" + "|IORING_SETUP_CLAMP|IORING_SETUP_ATTACH_WQ|%#x" + ", sq_thread_cpu=%#x, sq_thread_idle=%u, wq_fd=%d, resv=[", + 1, -1U - 63, params->sq_thread_cpu, params->sq_thread_idle, +# if defined HAVE_STRUCT_IO_URING_PARAMS_WQ_FD + params->wq_fd +# elif defined HAVE_STRUCT_IO_URING_PARAMS_FEATURES + params->resv[0] +# else + params->resv[1] +# endif + ); + for (unsigned int i = RESV_START; i < ARRAY_SIZE(params->resv); ++i) + printf("%s%#x", i != RESV_START ? ", " : "", params->resv[i]); + printf("]}) = %s\n", errstr); + + for (size_t i = 0; i < 2; i++) { + memset(params, 0, sizeof(*params)); + +# if defined HAVE_STRUCT_IO_URING_PARAMS_WQ_FD + params->wq_fd +# elif defined HAVE_STRUCT_IO_URING_PARAMS_FEATURES + params->resv[0] +# else + params->resv[1] +# endif + = i == 1 ? fd_full : -1; + params->flags = i == 1 ? 32 : 0; + + rc = sys_io_uring_setup(2, params); + printf("io_uring_setup(%u, {flags=%s, sq_thread_cpu=0" + ", sq_thread_idle=0", + 2, i == 1 ? "IORING_SETUP_ATTACH_WQ" : "0"); + if (i == 1) + printf(", wq_fd=%d<%s>", fd_full, path_full); + if (rc < 0) { + printf("}) = %s\n", errstr); + } else { + printf(", sq_entries=%u, cq_entries=%u, features=", + params->sq_entries, + params->cq_entries); + printflags(uring_setup_features, +# ifdef HAVE_STRUCT_IO_URING_PARAMS_FEATURES + params->features, +# else + params->resv[0], +# endif + "IORING_FEAT_???"); + printf(", sq_off={head=%u, tail=%u, ring_mask=%u" + ", ring_entries=%u, flags=%u, dropped=%u" + ", array=%u", + params->sq_off.head, + params->sq_off.tail, + params->sq_off.ring_mask, + params->sq_off.ring_entries, + params->sq_off.flags, + params->sq_off.dropped, + params->sq_off.array); + if (params->sq_off.resv1) + printf(", resv1=%#x", params->sq_off.resv1); + if (params->sq_off.resv2) + printf(", resv1=%#llx", + (unsigned long long) + params->sq_off.resv2); + + printf("}, cq_off={head=%u, tail=%u, ring_mask=%u" + ", ring_entries=%u, overflow=%u, cqes=%u, flags=", + params->cq_off.head, + params->cq_off.tail, + params->cq_off.ring_mask, + params->cq_off.ring_entries, + params->cq_off.overflow, + params->cq_off.cqes); +# ifdef HAVE_STRUCT_IO_CQRING_OFFSETS_FLAGS + printflags(uring_cqring_flags, + params->cq_off.flags, + "IORING_CQ_???"); + if (params->cq_off.resv1) + printf(", resv1=%#x", params->cq_off.resv1); + if (params->cq_off.resv2) + printf(", resv2=%#llx", + (unsigned long long) + params->cq_off.resv2); +# else + union { + struct { + uint32_t flags; + uint32_t resv1; + } s; + uint64_t v; + } u = { .v = params->cq_off.resv[0] }; + printflags(uring_cqring_flags, u.s.flags, + "IORING_CQ_???"); + if (u.s.resv1) + printf(", resv1=%#x", u.s.resv1); + if (params->cq_off.resv[1]) + printf(", resv2=%#llx", + (unsigned long long) + params->cq_off.resv[1]); +# endif + + printf("}}) = %ld\n", rc); + } + } puts("+++ exited with 0 +++"); return 0; diff --git a/tests/ioctl-success.sh b/tests/ioctl-success.sh new file mode 100755 index 00000000..9dd8aee8 --- /dev/null +++ b/tests/ioctl-success.sh @@ -0,0 +1,21 @@ +#!/bin/sh -efu +# +# Check decoding of ioctls using syscall injection. +# +# Expects a binary that accepts IOCTL_INJECT_START as the first argument. +# +# Copyright (c) 2018-2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/scno_tampering.sh" + +: ${IOCTL_INJECT_START=256} +: ${IOCTL_INJECT_RETVAL=42} + +run_strace -a50 "$@" -e trace=ioctl \ + -e inject=ioctl:retval="${IOCTL_INJECT_RETVAL}":when="${IOCTL_INJECT_START}+" \ + "../$NAME" "${IOCTL_INJECT_START}" "${IOCTL_INJECT_RETVAL}" > "$EXP" +grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT" +match_diff "$OUT" "$EXP" diff --git a/tests/ioctl.c b/tests/ioctl.c index ec4e3670..4f8e2e9f 100644 --- a/tests/ioctl.c +++ b/tests/ioctl.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -14,6 +14,8 @@ #include #include +#include + #ifdef HAVE_LINUX_MMTIMER_H # include #endif diff --git a/tests/ioctl_block--pidns-translation.c b/tests/ioctl_block--pidns-translation.c new file mode 100644 index 00000000..5eed6076 --- /dev/null +++ b/tests/ioctl_block--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "ioctl_block.c" diff --git a/tests/ioctl_block--pidns-translation.test b/tests/ioctl_block--pidns-translation.test new file mode 100755 index 00000000..d06855f9 --- /dev/null +++ b/tests/ioctl_block--pidns-translation.test @@ -0,0 +1,22 @@ +#!/bin/sh +# +# Check pidns translation of ioctl(BLK*) syscall decoding. +# +# Copyright (c) 2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: LGPL-2.1-or-later + +. "${srcdir=.}/init.sh" + +check_prog head +check_prog tail +check_prog cut +check_prog grep + +run_prog > /dev/null +run_strace --pidns-translation -f -a16 -e trace=ioctl $@ $args > "$EXP" +parent_pid="$(tail -n 2 $LOG | head -n 1 | cut -d' ' -f1)" +init_pid="$(tail -n 1 $LOG | cut -d' ' -f1)" +grep -E -v "^($parent_pid|$init_pid) |ioctl\([0123][,<]" "$LOG" > "$OUT" +match_diff "$OUT" "$EXP" diff --git a/tests/ioctl_block.c b/tests/ioctl_block.c index 65f434c8..8a345f4e 100644 --- a/tests/ioctl_block.c +++ b/tests/ioctl_block.c @@ -2,14 +2,16 @@ * This file is part of ioctl_block strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include "pidns.h" #include +#include #include #include #include @@ -24,7 +26,7 @@ static const unsigned int magic = 0xdeadbeef; static const unsigned long lmagic = (unsigned long) 0xdeadbeefbadc0dedULL; -static struct xlat block_argless[] = { +static struct xlat_data block_argless[] = { XLAT(BLKRRPART), XLAT(BLKFLSBUF), #ifdef BLKTRACESTART @@ -41,12 +43,15 @@ static struct xlat block_argless[] = { #define TEST_NULL_ARG(cmd) \ do { \ ioctl(-1, cmd, 0); \ + pidns_print_leader(); \ printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", #cmd); \ } while (0) int main(void) { + PIDNS_TEST_INIT; + TEST_NULL_ARG(BLKBSZGET); TEST_NULL_ARG(BLKBSZSET); TEST_NULL_ARG(BLKFRAGET); @@ -91,18 +96,22 @@ main(void) #endif ioctl(-1, BLKRASET, lmagic); + pidns_print_leader(); printf("ioctl(-1, BLKRASET, %lu) = -1 EBADF (%m)\n", lmagic); ioctl(-1, BLKFRASET, lmagic); + pidns_print_leader(); printf("ioctl(-1, BLKFRASET, %lu) = -1 EBADF (%m)\n", lmagic); TAIL_ALLOC_OBJECT_CONST_PTR(int, val_int); *val_int = magic; ioctl(-1, BLKROSET, val_int); + pidns_print_leader(); printf("ioctl(-1, BLKROSET, [%d]) = -1 EBADF (%m)\n", *val_int); ioctl(-1, BLKBSZSET, val_int); + pidns_print_leader(); printf("ioctl(-1, BLKBSZSET, [%d]) = -1 EBADF (%m)\n", *val_int); uint64_t *pair_int64 = tail_alloc(sizeof(*pair_int64) * 2); @@ -111,18 +120,21 @@ main(void) #ifdef BLKDISCARD ioctl(-1, BLKDISCARD, pair_int64); + pidns_print_leader(); printf("ioctl(-1, BLKDISCARD, [%" PRIu64 ", %" PRIu64 "])" " = -1 EBADF (%m)\n", pair_int64[0], pair_int64[1]); #endif #ifdef BLKSECDISCARD ioctl(-1, BLKSECDISCARD, pair_int64); + pidns_print_leader(); printf("ioctl(-1, BLKSECDISCARD, [%" PRIu64 ", %" PRIu64 "])" " = -1 EBADF (%m)\n", pair_int64[0], pair_int64[1]); #endif #ifdef BLKZEROOUT ioctl(-1, BLKZEROOUT, pair_int64); + pidns_print_leader(); printf("ioctl(-1, BLKZEROOUT, [%" PRIu64 ", %" PRIu64 "])" " = -1 EBADF (%m)\n", pair_int64[0], pair_int64[1]); #endif @@ -134,6 +146,7 @@ main(void) blkpg->data = (void *) (unsigned long) 0xcafef00dfffffeedULL; ioctl(-1, BLKPG, blkpg); + pidns_print_leader(); printf("ioctl(-1, BLKPG, {op=%s, flags=%d, datalen=%d" ", data=%#lx}) = -1 EBADF (%m)\n", "BLKPG_RESIZE_PARTITION", blkpg->flags, blkpg->datalen, @@ -149,6 +162,7 @@ main(void) blkpg->data = bp; ioctl(-1, BLKPG, blkpg); + pidns_print_leader(); printf("ioctl(-1, BLKPG, {op=%s, flags=%d, datalen=%d" ", data={start=%lld, length=%lld, pno=%d" ", devname=\"%.*s\"..., volname=\"%.*s\"...}})" @@ -162,25 +176,31 @@ main(void) #if defined BLKTRACESETUP && defined HAVE_STRUCT_BLK_USER_TRACE_SETUP TAIL_ALLOC_OBJECT_CONST_PTR(struct blk_user_trace_setup, buts); fill_memory(buts, sizeof(*buts)); + buts->pid = getpid(); ioctl(-1, BLKTRACESETUP, buts); + pidns_print_leader(); printf("ioctl(-1, BLKTRACESETUP, {act_mask=%hu, buf_size=%u, buf_nr=%u" - ", start_lba=%" PRI__u64 ", end_lba=%" PRI__u64 ", pid=%u})" + ", start_lba=%" PRI__u64 ", end_lba=%" PRI__u64 ", pid=%d%s})" " = -1 EBADF (%m)\n", buts->act_mask, buts->buf_size, buts->buf_nr, - buts->start_lba, buts->end_lba, buts->pid); + buts->start_lba, buts->end_lba, buts->pid, + pidns_pid2str(PT_TGID)); #endif unsigned int i; for (i = 0; i < ARRAY_SIZE(block_argless); ++i) { ioctl(-1, (unsigned long) block_argless[i].val, lmagic); + pidns_print_leader(); printf("ioctl(-1, %s) = -1 EBADF (%m)\n", block_argless[i].str); } ioctl(-1, _IOC(_IOC_READ, 0x12, 0xfe, 0xff), lmagic); + pidns_print_leader(); printf("ioctl(-1, %s, %#lx) = -1 EBADF (%m)\n", "_IOC(_IOC_READ, 0x12, 0xfe, 0xff)", lmagic); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests/ioctl_evdev-Xabbrev.c b/tests/ioctl_evdev-Xabbrev.c new file mode 100644 index 00000000..ac474bf6 --- /dev/null +++ b/tests/ioctl_evdev-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_evdev.c" diff --git a/tests/ioctl_evdev-Xabbrev.gen.test b/tests/ioctl_evdev-Xabbrev.gen.test new file mode 100755 index 00000000..5f724444 --- /dev/null +++ b/tests/ioctl_evdev-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-Xabbrev +ioctl.test -a26 -Xabbrev); do not edit. +set -- -a26 -Xabbrev +. "${srcdir=.}/ioctl.test" diff --git a/tests/ioctl_evdev-Xraw.c b/tests/ioctl_evdev-Xraw.c new file mode 100644 index 00000000..15f586f9 --- /dev/null +++ b/tests/ioctl_evdev-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_evdev.c" diff --git a/tests/ioctl_evdev-Xraw.gen.test b/tests/ioctl_evdev-Xraw.gen.test new file mode 100755 index 00000000..f292f4cb --- /dev/null +++ b/tests/ioctl_evdev-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-Xraw +ioctl.test -a28 -Xraw); do not edit. +set -- -a28 -Xraw +. "${srcdir=.}/ioctl.test" diff --git a/tests/ioctl_evdev-Xverbose.c b/tests/ioctl_evdev-Xverbose.c new file mode 100644 index 00000000..603c2f01 --- /dev/null +++ b/tests/ioctl_evdev-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_evdev.c" diff --git a/tests/ioctl_evdev-Xverbose.gen.test b/tests/ioctl_evdev-Xverbose.gen.test new file mode 100755 index 00000000..0b1b4fca --- /dev/null +++ b/tests/ioctl_evdev-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-Xverbose +ioctl.test -a41 -Xverbose); do not edit. +set -- -a41 -Xverbose +. "${srcdir=.}/ioctl.test" diff --git a/tests/ioctl_evdev-success-Xabbrev.c b/tests/ioctl_evdev-success-Xabbrev.c new file mode 100644 index 00000000..9f2416bf --- /dev/null +++ b/tests/ioctl_evdev-success-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_evdev-success.c" diff --git a/tests/ioctl_evdev-success-Xabbrev.gen.test b/tests/ioctl_evdev-success-Xabbrev.gen.test new file mode 100755 index 00000000..64323225 --- /dev/null +++ b/tests/ioctl_evdev-success-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-success-Xabbrev +ioctl_evdev-success.test -Xabbrev); do not edit. +set -- -Xabbrev +. "${srcdir=.}/ioctl_evdev-success.test" diff --git a/tests/ioctl_evdev-success-Xraw.c b/tests/ioctl_evdev-success-Xraw.c new file mode 100644 index 00000000..097672a7 --- /dev/null +++ b/tests/ioctl_evdev-success-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_evdev-success.c" diff --git a/tests/ioctl_evdev-success-Xraw.gen.test b/tests/ioctl_evdev-success-Xraw.gen.test new file mode 100755 index 00000000..c4f8c43b --- /dev/null +++ b/tests/ioctl_evdev-success-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-success-Xraw +ioctl_evdev-success.test -a27 -Xraw); do not edit. +set -- -a27 -Xraw +. "${srcdir=.}/ioctl_evdev-success.test" diff --git a/tests/ioctl_evdev-success-Xverbose.c b/tests/ioctl_evdev-success-Xverbose.c new file mode 100644 index 00000000..9ee67a08 --- /dev/null +++ b/tests/ioctl_evdev-success-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_evdev-success.c" diff --git a/tests/ioctl_evdev-success-Xverbose.gen.test b/tests/ioctl_evdev-success-Xverbose.gen.test new file mode 100755 index 00000000..a1781fc2 --- /dev/null +++ b/tests/ioctl_evdev-success-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-success-Xverbose +ioctl_evdev-success.test -a43 -Xverbose); do not edit. +set -- -a43 -Xverbose +. "${srcdir=.}/ioctl_evdev-success.test" diff --git a/tests/ioctl_evdev-success-v-Xabbrev.c b/tests/ioctl_evdev-success-v-Xabbrev.c new file mode 100644 index 00000000..566ad3ea --- /dev/null +++ b/tests/ioctl_evdev-success-v-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_evdev-success-v.c" diff --git a/tests/ioctl_evdev-success-v-Xabbrev.gen.test b/tests/ioctl_evdev-success-v-Xabbrev.gen.test new file mode 100755 index 00000000..cdb9e795 --- /dev/null +++ b/tests/ioctl_evdev-success-v-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-success-v-Xabbrev +ioctl_evdev-success.test -v -Xabbrev); do not edit. +set -- -v -Xabbrev +. "${srcdir=.}/ioctl_evdev-success.test" diff --git a/tests/ioctl_evdev-success-v-Xraw.c b/tests/ioctl_evdev-success-v-Xraw.c new file mode 100644 index 00000000..461bcd76 --- /dev/null +++ b/tests/ioctl_evdev-success-v-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_evdev-success-v.c" diff --git a/tests/ioctl_evdev-success-v-Xraw.gen.test b/tests/ioctl_evdev-success-v-Xraw.gen.test new file mode 100755 index 00000000..4c29234c --- /dev/null +++ b/tests/ioctl_evdev-success-v-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-success-v-Xraw +ioctl_evdev-success.test -a27 -v -Xraw); do not edit. +set -- -a27 -v -Xraw +. "${srcdir=.}/ioctl_evdev-success.test" diff --git a/tests/ioctl_evdev-success-v-Xverbose.c b/tests/ioctl_evdev-success-v-Xverbose.c new file mode 100644 index 00000000..17543205 --- /dev/null +++ b/tests/ioctl_evdev-success-v-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_evdev-success-v.c" diff --git a/tests/ioctl_evdev-success-v-Xverbose.gen.test b/tests/ioctl_evdev-success-v-Xverbose.gen.test new file mode 100755 index 00000000..d1d1cde5 --- /dev/null +++ b/tests/ioctl_evdev-success-v-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-success-v-Xverbose +ioctl_evdev-success.test -a43 -v -Xverbose); do not edit. +set -- -a43 -v -Xverbose +. "${srcdir=.}/ioctl_evdev-success.test" diff --git a/tests/ioctl_evdev-success-v.gen.test b/tests/ioctl_evdev-success-v.gen.test new file mode 100755 index 00000000..aa72de10 --- /dev/null +++ b/tests/ioctl_evdev-success-v.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-success-v +ioctl_evdev-success.test -a26 -v); do not edit. +set -- -a26 -v +. "${srcdir=.}/ioctl_evdev-success.test" diff --git a/tests/ioctl_evdev-success-v.test b/tests/ioctl_evdev-success-v.test deleted file mode 100755 index faedee30..00000000 --- a/tests/ioctl_evdev-success-v.test +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -efu -# -# Copyright (c) 2018 The strace developers. -# All rights reserved. -# -# SPDX-License-Identifier: GPL-2.0-or-later - -. "${srcdir=.}/scno_tampering.sh" - -: ${IOCTL_INJECT_START=256} -: ${IOCTL_INJECT_RETVAL=8} - -run_prog -run_strace -a16 -v -e trace=ioctl \ - -e inject=ioctl:retval="${IOCTL_INJECT_RETVAL}":when="${IOCTL_INJECT_START}+" \ - ../ioctl_evdev-success-v "${IOCTL_INJECT_START}" "${IOCTL_INJECT_RETVAL}"> "$EXP" -grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT" -match_diff "$OUT" "$EXP" diff --git a/tests/ioctl_evdev-success.c b/tests/ioctl_evdev-success.c index 7887d417..d6809be5 100644 --- a/tests/ioctl_evdev-success.c +++ b/tests/ioctl_evdev-success.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,6 +9,7 @@ #ifdef HAVE_LINUX_INPUT_H +# include # include # include # include @@ -16,17 +17,19 @@ # include # include "print_fields.h" +# define NUM_WORDS 4 + static const char *errstr; struct evdev_check { unsigned long cmd; const char *cmd_str; - void *arg_ptr; - void (*print_arg)(long rc, void *ptr, void *arg); + const void *arg_ptr; + void (*print_arg)(long rc, const void *ptr, const void *arg); }; static long -invoke_test_syscall(unsigned long cmd, void *p) +invoke_test_syscall(unsigned long cmd, const void *p) { long rc = ioctl(-1, cmd, p); errstr = sprintrc(rc); @@ -38,10 +41,10 @@ invoke_test_syscall(unsigned long cmd, void *p) } static void -test_evdev(struct evdev_check *check, void *arg) +test_evdev(struct evdev_check *check, const void *arg) { long rc = invoke_test_syscall(check->cmd, check->arg_ptr); - printf("ioctl(-1, %s, ", check->cmd_str); + printf("ioctl(-1, %s, ", sprintxlat(check->cmd_str, check->cmd, NULL)); if (check->print_arg) check->print_arg(rc, check->arg_ptr, arg); else @@ -50,9 +53,12 @@ test_evdev(struct evdev_check *check, void *arg) } static void -print_input_absinfo(long rc, void *ptr, void *arg) +print_input_absinfo(long rc, const void *ptr, const void *arg) { - struct input_absinfo *absinfo = ptr; + const struct input_absinfo *absinfo = ptr; +# if VERBOSE + const uintptr_t sz = (uintptr_t) arg; +# endif if (rc < 0) { printf("%p", absinfo); @@ -64,9 +70,20 @@ print_input_absinfo(long rc, void *ptr, void *arg) PRINT_FIELD_U(", ", *absinfo, maximum); PRINT_FIELD_U(", ", *absinfo, fuzz); PRINT_FIELD_U(", ", *absinfo, flat); + if (sz > offsetofend(struct input_absinfo, flat)) { + if (sz >= 24) { # ifdef HAVE_STRUCT_INPUT_ABSINFO_RESOLUTION - PRINT_FIELD_U(", ", *absinfo, resolution); + PRINT_FIELD_U(", ", *absinfo, resolution); +# else + printf(", resolution=%u", *((int *) ptr + 5)); # endif + + if (sz > 24) + printf(", ..."); + } else { + printf(", ..."); + } + } # else printf(", ..."); # endif @@ -74,66 +91,90 @@ print_input_absinfo(long rc, void *ptr, void *arg) } static void -print_input_id(long rc, void *ptr, void *arg) +print_input_id(long rc, const void *ptr, const void *arg) { - struct input_id *id = ptr; + const struct input_id *id = ptr; if (rc < 0) { printf("%p", id); return; } - printf("{ID_BUS=%" PRIu16 - ", ID_VENDOR=%" PRIu16 - ", ID_PRODUCT=%" PRIu16 - ", ID_VERSION=%" PRIu16 "}", + printf("{bustype=%" PRIu16 + ", vendor=%" PRIu16 + ", product=%" PRIu16 + ", version=%" PRIu16 "}", id->bustype, id->vendor, id->product, id->version); } # ifdef EVIOCGMTSLOTS static void -print_mtslots(long rc, void *ptr, void *arg) +print_mtslots(long rc, const void *ptr, const void *arg) { - int *buffer = ptr; - const char **str = arg; - int num = atoi(*(str + 1)); + const unsigned int *buffer = ptr; + const char * const * str = arg; if (rc < 0) { printf("%p", buffer); return; } - printf("{code=%s", *str); + printf("{code=%s", sprintxlat(*str, *buffer, NULL)); printf(", values=["); - for (unsigned int i = 1; i <= (unsigned) num; i++) - printf("%s%s", i > 1 ? ", " : "", *(str + i + 1)); + for (unsigned int i = 1; str[i]; i++) + printf("%s%s", i > 1 ? ", " : "", str[i]); printf("]}"); } # endif static void -print_getbit(long rc, void *ptr, void *arg) +print_getbit(long rc, const void *ptr, const void *arg) { - const char **str = arg; - int num = atoi(*str); + const char * const *str = arg + sizeof(char *); +# if XLAT_RAW || XLAT_VERBOSE + const unsigned long *buf = ptr; + const unsigned long buf_size = (uintptr_t) (str[-1]); +# endif - if (rc < 0) { + + + if (rc <= 0) { printf("%p", ptr); return; } +# if !XLAT_RAW printf("["); - printf("%s", *(str + 1)); - for (unsigned int i = 2; i <= (unsigned) num; i++) { -# if ! VERBOSE - if (i > 4) { + for (unsigned long i = 0; str[i]; i++) { +# if ! VERBOSE + if (i >= 4) { printf(", ..."); break; } -# endif - printf(", "); - printf("%s", *(str + i)); +# endif + if (i) + printf(", "); + printf("%s", str[i]); } printf("]"); +# endif /* !XLAT_RAW */ + +# if XLAT_VERBOSE + printf(" /* "); +# endif + +# if XLAT_RAW || XLAT_VERBOSE + printf("["); + const unsigned long cnt = + (MIN((unsigned long) rc, buf_size) + sizeof(long) - 1) + / sizeof(long); + for (unsigned long i = 0; i < cnt; i++) + printf("%s%#lx", i ? ", " : "", buf[i]); + printf("]"); +# endif + +# if XLAT_VERBOSE + printf(" */"); +# endif } int @@ -158,8 +199,8 @@ main(int argc, char **argv) for (unsigned int i = 0; i < num_skip; i++) { long rc = ioctl(-1, EVIOCGID, NULL); - printf("ioctl(-1, EVIOCGID, NULL) = %s%s\n", - sprintrc(rc), + printf("ioctl(-1, %s, NULL) = %s%s\n", + XLAT_STR(EVIOCGID), sprintrc(rc), rc == inject_retval ? " (INJECTED)" : ""); if (rc != inject_retval) @@ -174,52 +215,132 @@ main(int argc, char **argv) ", EVIOCGID, NULL) returning %lu", inject_retval); + static const void *absinfo_sz = + (const void *) (uintptr_t) sizeof(struct input_absinfo); + TAIL_ALLOC_OBJECT_CONST_PTR(struct input_id, id); TAIL_ALLOC_OBJECT_CONST_PTR(struct input_absinfo, absinfo); TAIL_ALLOC_OBJECT_CONST_PTR(int, bad_addr_slot); + + struct input_absinfo *absinfo_24 = tail_alloc(MAX(sizeof(*absinfo_24), + 24)); + struct input_absinfo *absinfo_32 = tail_alloc(MAX(sizeof(*absinfo_32), + 32)); + + fill_memory(absinfo, sizeof(struct input_absinfo)); + fill_memory(absinfo_24, 24); + fill_memory(absinfo_32, 32); + # ifdef EVIOCGMTSLOTS - int mtslots[] = { ABS_MT_SLOT, 1, 3 }; - /* we use the second element to indicate the number of values */ - /* mtslots_str[1] is "2" so the number of values is 2 */ - const char *mtslots_str[] = { "ABS_MT_SLOT", "2", "1", "3" }; + static const unsigned int mtslots[] = { ABS_MT_SLOT, 1, 3 }; + static const char * const mtslots_str[] = { + "ABS_MT_SLOT", "1", "3", NULL }; /* invalid flag */ - int invalid_mtslot[] = { -1, 1 }; - char invalid_str[4096]; - snprintf(invalid_str, sizeof(invalid_str), "%#x /* ABS_MT_??? */", invalid_mtslot[0]); - const char *invalid_mtslot_str[] = { invalid_str, "1", "1" }; + static const unsigned int invalid_mtslot[] = { -1, 1 }; + static const char * const invalid_mtslot_str[] = { + "" +# if !XLAT_RAW && !XLAT_VERBOSE + "0xffffffff" +# endif +# if !XLAT_VERBOSE + " /* " +# endif + "ABS_MT_???" +# if !XLAT_VERBOSE + " */" +# endif + , "1", NULL }; # endif + enum { ULONG_BIT = sizeof(unsigned long) * 8 }; + /* set more than 4 bits */ - unsigned long ev_more[] = { 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED | 1 << EV_SND | 1 << EV_PWR }; - /* we use the first element to indicate the number of set bits */ - /* ev_more_str[0] is "5" so the number of set bits is 5 */ - const char *ev_more_str[] = { "5", "EV_ABS", "EV_MSC", "EV_LED", "EV_SND", "EV_PWR" }; + static const unsigned long ev_more[NUM_WORDS] = { + 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED | 1 << EV_SND + | 1 << EV_PWR }; + static const char * const ev_more_str_2[] = { + (char *) (uintptr_t) 4, + XLAT_KNOWN(0x3, "EV_ABS"), XLAT_KNOWN(0x4, "EV_MSC"), NULL }; + static const char * const ev_more_str_3[] = { + (char *) (uintptr_t) 4, + XLAT_KNOWN(0x3, "EV_ABS"), XLAT_KNOWN(0x4, "EV_MSC"), + XLAT_KNOWN(0x11, "EV_LED"), XLAT_KNOWN(0x12, "EV_SND"), + XLAT_KNOWN(0x16, "EV_PWR"), NULL }; /* set less than 4 bits */ - unsigned long ev_less[] = { 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED }; - const char *ev_less_str[] = { "3", "EV_ABS", "EV_MSC", "EV_LED" }; + static const unsigned long ev_less[NUM_WORDS] = { + 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED }; + static const char * const ev_less_str_2[] = { + (char *) (uintptr_t) 4, + XLAT_KNOWN(0x3, "EV_ABS"), XLAT_KNOWN(0x4, "EV_MSC"), NULL }; + static const char * const ev_less_str_3[] = { + (char *) (uintptr_t) 4, + XLAT_KNOWN(0x3, "EV_ABS"), XLAT_KNOWN(0x4, "EV_MSC"), + XLAT_KNOWN(0x11, "EV_LED"), NULL }; /* set zero bit */ - unsigned long ev_zero[] = { 0x0 }; - const char *ev_zero_str[] = { "0", " 0 " }; + static const unsigned long ev_zero[NUM_WORDS] = { 0x0 }; + static const char * const ev_zero_str[] = { + (char *) (uintptr_t) 1, + " 0 ", NULL }; /* KEY_MAX is 0x2ff which is greater than retval * 8 */ - unsigned long key[] = { 1 << KEY_1 | 1 << KEY_2, 0 }; - const char *key_str[] = { "2", "KEY_1", "KEY_2" }; + static const unsigned long key[NUM_WORDS] = { + 1 << KEY_1 | 1 << KEY_2, + [ KEY_F12 / ULONG_BIT ] = 1 << (KEY_F12 % ULONG_BIT) }; + + static const char * const key_str_8[] = { + (char *) (uintptr_t) (NUM_WORDS * sizeof(long)), + XLAT_KNOWN(0x2, "KEY_1"), XLAT_KNOWN(0x3, "KEY_2"), NULL }; + static const char * const key_str_16[] = { + (char *) (uintptr_t) (NUM_WORDS * sizeof(long)), + XLAT_KNOWN(0x2, "KEY_1"), XLAT_KNOWN(0x3, "KEY_2"), + XLAT_KNOWN(0x58, "KEY_F12"), NULL }; + + assert(sizeof(ev_more) >= (unsigned long) inject_retval); + assert(sizeof(ev_less) >= (unsigned long) inject_retval); + assert(sizeof(ev_zero) >= (unsigned long) inject_retval); + assert(sizeof(key) >= (unsigned long) inject_retval); struct { struct evdev_check check; - void *ptr; + const void *ptr; } a[] = { { { ARG_STR(EVIOCGID), id, print_input_id }, NULL }, - { { ARG_STR(EVIOCGABS(ABS_X)), absinfo, print_input_absinfo }, NULL }, - { { ARG_STR(EVIOCGABS(ABS_Y)), absinfo, print_input_absinfo }, NULL }, - { { ARG_STR(EVIOCGABS(ABS_Y)), absinfo, print_input_absinfo }, NULL }, - { { ARG_STR(EVIOCGBIT(0, 0)), ev_more, print_getbit }, &ev_more_str }, - { { ARG_STR(EVIOCGBIT(0, 0)), ev_less, print_getbit }, &ev_less_str }, + { { _IOC(_IOC_READ, 'E', 0x40 + ABS_Y, 19), "EVIOCGABS(ABS_Y)", + absinfo, NULL }, NULL }, + { { _IOC(_IOC_READ, 'E', 0x40 + ABS_Y, 20), + "EVIOCGABS(ABS_Y)", absinfo, print_input_absinfo }, + (const void *) (uintptr_t) 20 }, + { { _IOC(_IOC_READ, 'E', 0x40 + ABS_Y, 21), + "EVIOCGABS(ABS_Y)", absinfo_24, print_input_absinfo }, + (const void *) (uintptr_t) 21 }, + { { _IOC(_IOC_READ, 'E', 0x40 + ABS_Y, 24), + "EVIOCGABS(ABS_Y)", absinfo_24, print_input_absinfo }, + (const void *) (uintptr_t) 24 }, + { { _IOC(_IOC_READ, 'E', 0x40 + ABS_Y, 32), + "EVIOCGABS(ABS_Y)", absinfo_32, print_input_absinfo }, + (const void *) (uintptr_t) 32 }, + { { ARG_STR(EVIOCGABS(ABS_X)), absinfo, print_input_absinfo }, + absinfo_sz}, + { { ARG_STR(EVIOCGABS(ABS_Y)), absinfo, print_input_absinfo }, + absinfo_sz }, + { { ARG_STR(EVIOCGABS(ABS_Y)), absinfo, print_input_absinfo }, + absinfo_sz }, + { { ARG_STR(EVIOCGBIT(0, 0)), ev_more, print_getbit }, + inject_retval * 8 <= EV_LED + ? (const void *) &ev_more_str_2 + : (const void *) &ev_more_str_3 }, + { { ARG_STR(EVIOCGBIT(0, 0)), ev_less, print_getbit }, + inject_retval * 8 <= EV_LED + ? (const void *) &ev_less_str_2 + : (const void *) &ev_less_str_3 }, { { ARG_STR(EVIOCGBIT(0, 0)), ev_zero, print_getbit }, &ev_zero_str }, - { { ARG_STR(EVIOCGBIT(EV_KEY, 0)), key, print_getbit }, &key_str}, + { { ARG_STR(EVIOCGBIT(EV_KEY, 0)), key, print_getbit }, + inject_retval * 8 <= KEY_F12 + ? (const void *) &key_str_8 + : (const void *) &key_str_16 }, # ifdef EVIOCGMTSLOTS { { ARG_STR(EVIOCGMTSLOTS(12)), mtslots, print_mtslots }, &mtslots_str }, { { ARG_STR(EVIOCGMTSLOTS(8)), invalid_mtslot, print_mtslots }, &invalid_mtslot_str } diff --git a/tests/ioctl_evdev-success.test b/tests/ioctl_evdev-success.test index 54b0a20a..0a7489d3 100755 --- a/tests/ioctl_evdev-success.test +++ b/tests/ioctl_evdev-success.test @@ -1,6 +1,6 @@ #!/bin/sh -efu # -# Copyright (c) 2018 The strace developers. +# Copyright (c) 2018-2019 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -8,11 +8,15 @@ . "${srcdir=.}/scno_tampering.sh" : ${IOCTL_INJECT_START=256} -: ${IOCTL_INJECT_RETVAL=8} run_prog -run_strace -a16 -e trace=ioctl \ - -e inject=ioctl:retval="${IOCTL_INJECT_RETVAL}":when="${IOCTL_INJECT_START}+" \ - ../ioctl_evdev-success "${IOCTL_INJECT_START}" "${IOCTL_INJECT_RETVAL}"> "$EXP" -grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT" -match_diff "$OUT" "$EXP" +prog="$args" + +for ret in 0 2 8 15 16; do + run_strace -a26 "$@" -e trace=ioctl \ + -e inject=ioctl:retval="${ret}":when="${IOCTL_INJECT_START}+" \ + "$prog" \ + "${IOCTL_INJECT_START}" "${ret}"> "$EXP.${ret}" + grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT.$ret" + match_diff "$OUT.$ret" "$EXP.$ret" +done diff --git a/tests/ioctl_evdev-v-Xabbrev.c b/tests/ioctl_evdev-v-Xabbrev.c new file mode 100644 index 00000000..b2ed15cb --- /dev/null +++ b/tests/ioctl_evdev-v-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_evdev-v.c" diff --git a/tests/ioctl_evdev-v-Xabbrev.gen.test b/tests/ioctl_evdev-v-Xabbrev.gen.test new file mode 100755 index 00000000..f6efb73b --- /dev/null +++ b/tests/ioctl_evdev-v-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-v-Xabbrev +ioctl.test -a26 -v -Xabbrev); do not edit. +set -- -a26 -v -Xabbrev +. "${srcdir=.}/ioctl.test" diff --git a/tests/ioctl_evdev-v-Xraw.c b/tests/ioctl_evdev-v-Xraw.c new file mode 100644 index 00000000..c6f4e535 --- /dev/null +++ b/tests/ioctl_evdev-v-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_evdev-v.c" diff --git a/tests/ioctl_evdev-v-Xraw.gen.test b/tests/ioctl_evdev-v-Xraw.gen.test new file mode 100755 index 00000000..d4460685 --- /dev/null +++ b/tests/ioctl_evdev-v-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-v-Xraw +ioctl.test -a28 -v -Xraw); do not edit. +set -- -a28 -v -Xraw +. "${srcdir=.}/ioctl.test" diff --git a/tests/ioctl_evdev-v-Xverbose.c b/tests/ioctl_evdev-v-Xverbose.c new file mode 100644 index 00000000..f9112774 --- /dev/null +++ b/tests/ioctl_evdev-v-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_evdev-v.c" diff --git a/tests/ioctl_evdev-v-Xverbose.gen.test b/tests/ioctl_evdev-v-Xverbose.gen.test new file mode 100755 index 00000000..7f9c2984 --- /dev/null +++ b/tests/ioctl_evdev-v-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-v-Xverbose +ioctl.test -a41 -v -Xverbose); do not edit. +set -- -a41 -v -Xverbose +. "${srcdir=.}/ioctl.test" diff --git a/tests/ioctl_evdev-v.gen.test b/tests/ioctl_evdev-v.gen.test index bf74ef4c..3b012fb9 100755 --- a/tests/ioctl_evdev-v.gen.test +++ b/tests/ioctl_evdev-v.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-v +ioctl.test -v); do not edit. -set -- -v +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev-v +ioctl.test -a26 -v); do not edit. +set -- -a26 -v . "${srcdir=.}/ioctl.test" diff --git a/tests/ioctl_evdev.c b/tests/ioctl_evdev.c index 02be472c..e97b5498 100644 --- a/tests/ioctl_evdev.c +++ b/tests/ioctl_evdev.c @@ -2,7 +2,7 @@ * This file is part of ioctl_evdev strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -26,6 +26,12 @@ # define ABS_MT_TOOL_Y 0x3d # endif +# if XLAT_VERBOSE +# define UNK_CMD(val_, str_) val_ +# else +# define UNK_CMD(val_, str_) val_ " /* " str_ " */" +# endif + static const unsigned int magic = 0xdeadbeef; static const unsigned long lmagic = (unsigned long) 0xdeadbeefbadc0dedULL; @@ -43,9 +49,11 @@ print_envelope(const struct ff_envelope *const e) static void print_ffe_common(const struct ff_effect *const ffe, const char *const type_str) { - printf("ioctl(-1, EVIOCSFF, {type=%s, id=%" PRIu16 + printf("ioctl(-1, %s", XLAT_STR(EVIOCSFF)); + printf(", {type=%s, id=%" PRId16 ", direction=%" PRIu16 ", ", - type_str, ffe->id, ffe->direction); + sprintxlat(type_str, ffe->type, NULL), + ffe->id, ffe->direction); # if VERBOSE printf("trigger={button=%hu, interval=%hu}" ", replay={length=%hu, delay=%hu}", @@ -54,10 +62,11 @@ print_ffe_common(const struct ff_effect *const ffe, const char *const type_str) # endif /* VERBOSE */ } -# define TEST_NULL_ARG_EX(cmd, str) \ +# define TEST_NULL_ARG_EX(cmd, str) \ do { \ ioctl(-1, cmd, 0); \ - printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", str); \ + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", \ + sprintxlat(str, cmd, NULL)); \ } while (0) # define TEST_NULL_ARG(cmd) TEST_NULL_ARG_EX(cmd, #cmd) @@ -107,17 +116,23 @@ main(void) TEST_NULL_ARG(EVIOCGABS(ABS_X)); TEST_NULL_ARG(EVIOCSABS(ABS_X)); - TEST_NULL_ARG_EX(EVIOCGABS(0xe), "EVIOCGABS(0xe /* ABS_??? */)"); - TEST_NULL_ARG_EX(EVIOCSABS(0xe), "EVIOCSABS(0xe /* ABS_??? */)"); + TEST_NULL_ARG_EX(EVIOCGABS(0xe), + "EVIOCGABS(" UNK_CMD("0xe", "ABS_???") ")"); + TEST_NULL_ARG_EX(EVIOCSABS(0xe), + "EVIOCSABS(" UNK_CMD("0xe", "ABS_???") ")"); TEST_NULL_ARG(EVIOCGABS(ABS_MT_TOOL_Y)); TEST_NULL_ARG(EVIOCSABS(ABS_MT_TOOL_Y)); - TEST_NULL_ARG_EX(EVIOCGABS(0x3e), "EVIOCGABS(0x3e /* ABS_??? */)"); - TEST_NULL_ARG_EX(EVIOCSABS(0x3e), "EVIOCSABS(0x3e /* ABS_??? */)"); + TEST_NULL_ARG_EX(EVIOCGABS(0x3e), + "EVIOCGABS(" UNK_CMD("0x3e", "ABS_???") ")"); + TEST_NULL_ARG_EX(EVIOCSABS(0x3e), + "EVIOCSABS(" UNK_CMD("0x3e", "ABS_???") ")"); - TEST_NULL_ARG_EX(EVIOCGABS(0x3f), "EVIOCGABS(0x3f /* ABS_??? */)"); - TEST_NULL_ARG_EX(EVIOCSABS(0x3f), "EVIOCSABS(0x3f /* ABS_??? */)"); + TEST_NULL_ARG_EX(EVIOCGABS(0x3f), + "EVIOCGABS(" UNK_CMD("0x3f", "ABS_???") ")"); + TEST_NULL_ARG_EX(EVIOCSABS(0x3f), + "EVIOCSABS(" UNK_CMD("0x3f", "ABS_???") ")"); TEST_NULL_ARG(EVIOCGBIT(0, 0)); TEST_NULL_ARG(EVIOCGBIT(EV_KEY, 1)); @@ -132,25 +147,36 @@ main(void) TEST_NULL_ARG(EVIOCGBIT(EV_PWR, 10)); TEST_NULL_ARG(EVIOCGBIT(EV_FF_STATUS, 11)); - TEST_NULL_ARG_EX(EVIOCGBIT(0x6, 12), "EVIOCGBIT(0x6 /* EV_??? */, 12)"); + TEST_NULL_ARG_EX(EVIOCGBIT(0x6, 12), + "EVIOCGBIT(" UNK_CMD("0x6", "EV_???") ", 12)"); TEST_NULL_ARG_EX(EVIOCGBIT(0x18, 13), - "EVIOCGBIT(0x18 /* EV_??? */, 13)"); + "EVIOCGBIT(" UNK_CMD("0x18", "EV_???") ", 13)"); TEST_NULL_ARG_EX(EVIOCGBIT(0x1f, 14), - "EVIOCGBIT(0x1f /* EV_??? */, 14)"); + "EVIOCGBIT(" UNK_CMD("0x1f", "EV_???") ", 14)"); ioctl(-1, EVIOCGBIT(EV_MAX, 42), 0); - printf("ioctl(-1, EVIOCGBIT(%#x /* EV_??? */, 42), NULL)" - " = -1 EBADF (%m)\n", EV_MAX); + printf("ioctl(-1, "); +# if XLAT_RAW + printf("%#x", EVIOCGBIT(EV_MAX, 42)); +# elif XLAT_VERBOSE + printf("%#x /* EVIOCGBIT(%#x, 42) */", EVIOCGBIT(EV_MAX, 42), EV_MAX); +# else + printf("EVIOCGBIT(%#x /* EV_??? */, 42)", EV_MAX); +# endif + printf(", NULL) = -1 EBADF (%m)\n"); ioctl(-1, EVIOCRMFF, lmagic); - printf("ioctl(-1, EVIOCRMFF, %d) = -1 EBADF (%m)\n", (int) lmagic); + printf("ioctl(-1, %s, %d) = -1 EBADF (%m)\n", + XLAT_STR(EVIOCRMFF), (int) lmagic); ioctl(-1, EVIOCGRAB, lmagic); - printf("ioctl(-1, EVIOCGRAB, %lu) = -1 EBADF (%m)\n", lmagic); + printf("ioctl(-1, %s, %lu) = -1 EBADF (%m)\n", + XLAT_STR(EVIOCGRAB), lmagic); # ifdef EVIOCREVOKE ioctl(-1, EVIOCREVOKE, lmagic); - printf("ioctl(-1, EVIOCREVOKE, %lu) = -1 EBADF (%m)\n", lmagic); + printf("ioctl(-1, %s, %lu) = -1 EBADF (%m)\n", + XLAT_STR(EVIOCREVOKE), lmagic); # endif const unsigned int size = get_page_size(); @@ -162,7 +188,8 @@ main(void) # ifdef EVIOCSCLOCKID ioctl(-1, EVIOCSCLOCKID, val_int); - printf("ioctl(-1, EVIOCSCLOCKID, [%u]) = -1 EBADF (%m)\n", *val_int); + printf("ioctl(-1, %s, [%u]) = -1 EBADF (%m)\n", + XLAT_STR(EVIOCSCLOCKID), *val_int); # endif int *pair_int = tail_alloc(sizeof(*pair_int) * 2); @@ -171,14 +198,15 @@ main(void) # ifdef EVIOSGREP ioctl(-1, EVIOCSREP, pair_int); - printf("ioctl(-1, EVIOCSREP, [%u, %u]) = -1 EBADF (%m)\n", - pair_int[0], pair_int[1]); + printf("ioctl(-1, %s, [%u, %u]) = -1 EBADF (%m)\n", + XLAT_STR(EVIOCSREP), pair_int[0], pair_int[1]); # endif pair_int[1] = 1; ioctl(-1, EVIOCSKEYCODE, pair_int); - printf("ioctl(-1, EVIOCSKEYCODE, [%u, %s]) = -1 EBADF (%m)\n", - pair_int[0], "KEY_ESC"); + printf("ioctl(-1, %s, [%u, %s]) = -1 EBADF (%m)\n", + XLAT_STR(EVIOCSKEYCODE), pair_int[0], + XLAT_KNOWN(0x1, "KEY_ESC")); # ifdef EVIOCSKEYCODE_V2 TAIL_ALLOC_OBJECT_CONST_PTR(struct input_keymap_entry, ike); @@ -186,16 +214,16 @@ main(void) ike->keycode = 2; ioctl(-1, EVIOCSKEYCODE_V2, ike); - printf("ioctl(-1, EVIOCSKEYCODE_V2, {flags=%" PRIu8 - ", len=%" PRIu8 ", ", ike->flags, ike->len); + printf("ioctl(-1, %s, {flags=%" PRIu8 ", len=%" PRIu8 ", ", + XLAT_STR(EVIOCSKEYCODE_V2), ike->flags, ike->len); # if VERBOSE printf("index=%" PRIu16 ", keycode=%s, scancode=[", - ike->index, "KEY_1"); + ike->index, XLAT_STR(KEY_1)); unsigned int i; for (i = 0; i < ARRAY_SIZE(ike->scancode); ++i) { if (i > 0) printf(", "); - printf("%" PRIx8, ike->scancode[i]); + printf("%#" PRIx8, ike->scancode[i]); } printf("]"); # else @@ -256,26 +284,37 @@ main(void) ffe->type = 0xff; ioctl(-1, EVIOCSFF, ffe); - print_ffe_common(ffe, "0xff /* FF_??? */"); + print_ffe_common(ffe, +# if !XLAT_RAW && !XLAT_VERBOSE + "0xff" +# endif +# if !XLAT_VERBOSE + " /* " +# endif + "FF_???" +# if !XLAT_VERBOSE + " */" +# endif + ); errno = EBADF; printf("}) = -1 EBADF (%m)\n"); # endif ioctl(-1, _IOC(_IOC_READ, 0x45, 0x1, 0xff), lmagic); printf("ioctl(-1, %s, %#lx) = -1 EBADF (%m)\n", - "_IOC(_IOC_READ, 0x45, 0x1, 0xff)", lmagic); + XLAT_STR(_IOC(_IOC_READ, 0x45, 0x1, 0xff)), lmagic); ioctl(-1, _IOC(_IOC_WRITE, 0x45, 0x1, 0xff), lmagic); printf("ioctl(-1, %s, %#lx) = -1 EBADF (%m)\n", - "_IOC(_IOC_WRITE, 0x45, 0x1, 0xff)", lmagic); + XLAT_STR(_IOC(_IOC_WRITE, 0x45, 0x1, 0xff)), lmagic); ioctl(-1, _IOC(_IOC_READ|_IOC_WRITE, 0x45, 0xfe, 0xff), lmagic); printf("ioctl(-1, %s, %#lx) = -1 EBADF (%m)\n", - "_IOC(_IOC_READ|_IOC_WRITE, 0x45, 0xfe, 0xff)", lmagic); + XLAT_STR(_IOC(_IOC_READ|_IOC_WRITE, 0x45, 0xfe, 0xff)), lmagic); ioctl(-1, _IOC(_IOC_READ|_IOC_WRITE, 0x45, 0, 0), lmagic); printf("ioctl(-1, %s, %#lx) = -1 EBADF (%m)\n", - "_IOC(_IOC_READ|_IOC_WRITE, 0x45, 0, 0)", lmagic); + XLAT_STR(_IOC(_IOC_READ|_IOC_WRITE, 0x45, 0, 0)), lmagic); puts("+++ exited with 0 +++"); return 0; diff --git a/tests/ioctl_evdev.gen.test b/tests/ioctl_evdev.gen.test index 68a43f7c..4b9ba413 100755 --- a/tests/ioctl_evdev.gen.test +++ b/tests/ioctl_evdev.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev +ioctl.test ); do not edit. -set -- +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_evdev +ioctl.test -a26); do not edit. +set -- -a26 . "${srcdir=.}/ioctl.test" diff --git a/tests/ioctl_hdio-Xabbrev.c b/tests/ioctl_hdio-Xabbrev.c new file mode 100644 index 00000000..aa0af2ac --- /dev/null +++ b/tests/ioctl_hdio-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_hdio.c" diff --git a/tests/ioctl_hdio-Xabbrev.gen.test b/tests/ioctl_hdio-Xabbrev.gen.test new file mode 100755 index 00000000..1ab876b9 --- /dev/null +++ b/tests/ioctl_hdio-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-Xabbrev +ioctl.test -a27 -Xabbrev); do not edit. +set -- -a27 -Xabbrev +. "${srcdir=.}/ioctl.test" diff --git a/tests/ioctl_hdio-Xraw.c b/tests/ioctl_hdio-Xraw.c new file mode 100644 index 00000000..9e169a85 --- /dev/null +++ b/tests/ioctl_hdio-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_hdio.c" diff --git a/tests/ioctl_hdio-Xraw.gen.test b/tests/ioctl_hdio-Xraw.gen.test new file mode 100755 index 00000000..fa03656b --- /dev/null +++ b/tests/ioctl_hdio-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-Xraw +ioctl.test -a20 -Xraw); do not edit. +set -- -a20 -Xraw +. "${srcdir=.}/ioctl.test" diff --git a/tests/ioctl_hdio-Xverbose.c b/tests/ioctl_hdio-Xverbose.c new file mode 100644 index 00000000..29e45e8e --- /dev/null +++ b/tests/ioctl_hdio-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_hdio.c" diff --git a/tests/ioctl_hdio-Xverbose.gen.test b/tests/ioctl_hdio-Xverbose.gen.test new file mode 100755 index 00000000..1dde165f --- /dev/null +++ b/tests/ioctl_hdio-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-Xverbose +ioctl.test -a39 -Xverbose); do not edit. +set -- -a39 -Xverbose +. "${srcdir=.}/ioctl.test" diff --git a/tests/ioctl_hdio-success-Xabbrev.c b/tests/ioctl_hdio-success-Xabbrev.c new file mode 100644 index 00000000..410f1969 --- /dev/null +++ b/tests/ioctl_hdio-success-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_hdio-success.c" diff --git a/tests/ioctl_hdio-success-Xabbrev.gen.test b/tests/ioctl_hdio-success-Xabbrev.gen.test new file mode 100755 index 00000000..fa74b9e7 --- /dev/null +++ b/tests/ioctl_hdio-success-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-success-Xabbrev +ioctl-success.sh -a27 -Xabbrev); do not edit. +set -- -a27 -Xabbrev +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests/ioctl_hdio-success-Xraw.c b/tests/ioctl_hdio-success-Xraw.c new file mode 100644 index 00000000..ee63bb8b --- /dev/null +++ b/tests/ioctl_hdio-success-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_hdio-success.c" diff --git a/tests/ioctl_hdio-success-Xraw.gen.test b/tests/ioctl_hdio-success-Xraw.gen.test new file mode 100755 index 00000000..2ac7c9cd --- /dev/null +++ b/tests/ioctl_hdio-success-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-success-Xraw +ioctl-success.sh -a20 -Xraw); do not edit. +set -- -a20 -Xraw +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests/ioctl_hdio-success-Xverbose.c b/tests/ioctl_hdio-success-Xverbose.c new file mode 100644 index 00000000..bef62b06 --- /dev/null +++ b/tests/ioctl_hdio-success-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_hdio-success.c" diff --git a/tests/ioctl_hdio-success-Xverbose.gen.test b/tests/ioctl_hdio-success-Xverbose.gen.test new file mode 100755 index 00000000..acbded54 --- /dev/null +++ b/tests/ioctl_hdio-success-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-success-Xverbose +ioctl-success.sh -a39 -Xverbose); do not edit. +set -- -a39 -Xverbose +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests/ioctl_hdio-success-v-Xabbrev.c b/tests/ioctl_hdio-success-v-Xabbrev.c new file mode 100644 index 00000000..13745378 --- /dev/null +++ b/tests/ioctl_hdio-success-v-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_hdio-success-v.c" diff --git a/tests/ioctl_hdio-success-v-Xabbrev.gen.test b/tests/ioctl_hdio-success-v-Xabbrev.gen.test new file mode 100755 index 00000000..d6a3ab28 --- /dev/null +++ b/tests/ioctl_hdio-success-v-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-success-v-Xabbrev +ioctl-success.sh -a27 -v -Xabbrev); do not edit. +set -- -a27 -v -Xabbrev +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests/ioctl_hdio-success-v-Xraw.c b/tests/ioctl_hdio-success-v-Xraw.c new file mode 100644 index 00000000..c34ad585 --- /dev/null +++ b/tests/ioctl_hdio-success-v-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_hdio-success-v.c" diff --git a/tests/ioctl_hdio-success-v-Xraw.gen.test b/tests/ioctl_hdio-success-v-Xraw.gen.test new file mode 100755 index 00000000..b0d664bd --- /dev/null +++ b/tests/ioctl_hdio-success-v-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-success-v-Xraw +ioctl-success.sh -a20 -v -Xraw); do not edit. +set -- -a20 -v -Xraw +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests/ioctl_hdio-success-v-Xverbose.c b/tests/ioctl_hdio-success-v-Xverbose.c new file mode 100644 index 00000000..4f44b496 --- /dev/null +++ b/tests/ioctl_hdio-success-v-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_hdio-success-v.c" diff --git a/tests/ioctl_hdio-success-v-Xverbose.gen.test b/tests/ioctl_hdio-success-v-Xverbose.gen.test new file mode 100755 index 00000000..72e9f62d --- /dev/null +++ b/tests/ioctl_hdio-success-v-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-success-v-Xverbose +ioctl-success.sh -a39 -v -Xverbose); do not edit. +set -- -a39 -v -Xverbose +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests/ioctl_hdio-success-v.c b/tests/ioctl_hdio-success-v.c new file mode 100644 index 00000000..f48ca935 --- /dev/null +++ b/tests/ioctl_hdio-success-v.c @@ -0,0 +1,2 @@ +#define VERBOSE 1 +#include "ioctl_hdio-success.c" diff --git a/tests/ioctl_hdio-success-v.gen.test b/tests/ioctl_hdio-success-v.gen.test new file mode 100755 index 00000000..a4b6c0fe --- /dev/null +++ b/tests/ioctl_hdio-success-v.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-success-v +ioctl-success.sh -a27 -v); do not edit. +set -- -a27 -v +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests/ioctl_hdio-success.c b/tests/ioctl_hdio-success.c new file mode 100644 index 00000000..680d7033 --- /dev/null +++ b/tests/ioctl_hdio-success.c @@ -0,0 +1,2 @@ +#define INJECT_RETVAL 42 +#include "ioctl_hdio.c" diff --git a/tests/ioctl_hdio-success.gen.test b/tests/ioctl_hdio-success.gen.test new file mode 100755 index 00000000..ec9318ad --- /dev/null +++ b/tests/ioctl_hdio-success.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-success +ioctl-success.sh -a27); do not edit. +set -- -a27 +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests/ioctl_hdio-v-Xabbrev.c b/tests/ioctl_hdio-v-Xabbrev.c new file mode 100644 index 00000000..86aca7d6 --- /dev/null +++ b/tests/ioctl_hdio-v-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_hdio-v.c" diff --git a/tests/ioctl_hdio-v-Xabbrev.gen.test b/tests/ioctl_hdio-v-Xabbrev.gen.test new file mode 100755 index 00000000..92df94d8 --- /dev/null +++ b/tests/ioctl_hdio-v-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-v-Xabbrev +ioctl.test -a27 -v -Xabbrev); do not edit. +set -- -a27 -v -Xabbrev +. "${srcdir=.}/ioctl.test" diff --git a/tests/ioctl_hdio-v-Xraw.c b/tests/ioctl_hdio-v-Xraw.c new file mode 100644 index 00000000..e55841aa --- /dev/null +++ b/tests/ioctl_hdio-v-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_hdio-v.c" diff --git a/tests/ioctl_hdio-v-Xraw.gen.test b/tests/ioctl_hdio-v-Xraw.gen.test new file mode 100755 index 00000000..a7e81ca1 --- /dev/null +++ b/tests/ioctl_hdio-v-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-v-Xraw +ioctl.test -a20 -v -Xraw); do not edit. +set -- -a20 -v -Xraw +. "${srcdir=.}/ioctl.test" diff --git a/tests/ioctl_hdio-v-Xverbose.c b/tests/ioctl_hdio-v-Xverbose.c new file mode 100644 index 00000000..00b524eb --- /dev/null +++ b/tests/ioctl_hdio-v-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_hdio-v.c" diff --git a/tests/ioctl_hdio-v-Xverbose.gen.test b/tests/ioctl_hdio-v-Xverbose.gen.test new file mode 100755 index 00000000..eba5488c --- /dev/null +++ b/tests/ioctl_hdio-v-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-v-Xverbose +ioctl.test -a39 -v -Xverbose); do not edit. +set -- -a39 -v -Xverbose +. "${srcdir=.}/ioctl.test" diff --git a/tests/ioctl_hdio-v.c b/tests/ioctl_hdio-v.c new file mode 100644 index 00000000..fcff6702 --- /dev/null +++ b/tests/ioctl_hdio-v.c @@ -0,0 +1,2 @@ +#define VERBOSE 1 +#include "ioctl_hdio.c" diff --git a/tests/ioctl_hdio-v.gen.test b/tests/ioctl_hdio-v.gen.test new file mode 100755 index 00000000..7d1adc3d --- /dev/null +++ b/tests/ioctl_hdio-v.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio-v +ioctl.test -a27 -v); do not edit. +set -- -a27 -v +. "${srcdir=.}/ioctl.test" diff --git a/tests/ioctl_hdio.c b/tests/ioctl_hdio.c new file mode 100644 index 00000000..d340782c --- /dev/null +++ b/tests/ioctl_hdio.c @@ -0,0 +1,227 @@ +/* + * Check HDIO_* ioctl decoding. + * + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#include +#include +#include +#include +#include + +static const char *errstr; + +static long +do_ioctl(kernel_ulong_t cmd, kernel_ulong_t arg) +{ + long rc = ioctl(-1, cmd, arg); + + errstr = sprintrc(rc); + +#ifdef INJECT_RETVAL + if (rc != INJECT_RETVAL) + error_msg_and_fail("Got a return value of %ld != %ld", + rc, (long) INJECT_RETVAL); + + static char inj_errstr[4096]; + + snprintf(inj_errstr, sizeof(inj_errstr), "%s (INJECTED)", errstr); + errstr = inj_errstr; +#endif + + return rc; +} + +static inline long +do_ioctl_ptr(kernel_ulong_t cmd, const void *arg) +{ + return do_ioctl(cmd, (uintptr_t) arg); +} + +int +main(int argc, char *argv[]) +{ +#ifdef INJECT_RETVAL + unsigned long num_skip; + bool locked = false; + + if (argc < 2) + error_msg_and_fail("Usage: %s NUM_SKIP", argv[0]); + + num_skip = strtoul(argv[1], NULL, 0); + + for (size_t i = 0; i < num_skip; i++) { + long ret = ioctl(-1, HDIO_GET_UNMASKINTR, 0); + + printf("ioctl(-1, %s, 0) = %s%s\n", + XLAT_STR(HDIO_GET_UNMASKINTR), sprintrc(ret), + ret == INJECT_RETVAL ? " (INJECTED)" : ""); + + if (ret != INJECT_RETVAL) + continue; + + locked = true; + break; + } + + if (!locked) + error_msg_and_fail("Hasn't locked on ioctl(-1" + ", HDIO_GET_UNMASKINTR, 0) returning %d", + INJECT_RETVAL); +#endif + + long rc; + + /* Decoding is not supported */ + static const struct { + uint32_t cmd; + const char *str; + } unsupp_cmds[] = { + { ARG_STR(HDIO_GET_UNMASKINTR) }, + { ARG_STR(HDIO_GET_MULTCOUNT) }, + { ARG_STR(HDIO_GET_QDMA) }, + { ARG_STR(HDIO_SET_XFER) }, + { ARG_STR(HDIO_OBSOLETE_IDENTITY) }, + { ARG_STR(HDIO_GET_KEEPSETTINGS) }, + { ARG_STR(HDIO_GET_32BIT) }, + { ARG_STR(HDIO_GET_NOWERR) }, + { ARG_STR(HDIO_GET_DMA) }, + { ARG_STR(HDIO_GET_NICE) }, + { ARG_STR(HDIO_GET_IDENTITY) }, + { ARG_STR(HDIO_GET_WCACHE) }, + { ARG_STR(HDIO_GET_ACOUSTIC) }, + { ARG_STR(HDIO_GET_ADDRESS) }, + { ARG_STR(HDIO_GET_BUSSTATE) }, + { ARG_STR(HDIO_TRISTATE_HWIF) }, + { ARG_STR(HDIO_DRIVE_RESET) }, + { ARG_STR(HDIO_DRIVE_TASKFILE) }, + { ARG_STR(HDIO_DRIVE_TASK) }, + { ARG_STR(HDIO_SET_MULTCOUNT) }, + { ARG_STR(HDIO_SET_UNMASKINTR) }, + { ARG_STR(HDIO_SET_KEEPSETTINGS) }, + { ARG_STR(HDIO_SET_32BIT) }, + { ARG_STR(HDIO_SET_NOWERR) }, + { ARG_STR(HDIO_SET_DMA) }, + { ARG_STR(HDIO_SET_PIO_MODE) }, + { ARG_STR(HDIO_SCAN_HWIF) }, + { ARG_STR(HDIO_UNREGISTER_HWIF) }, + { ARG_STR(HDIO_SET_NICE) }, + { ARG_STR(HDIO_SET_WCACHE) }, + { ARG_STR(HDIO_SET_ACOUSTIC) }, + { ARG_STR(HDIO_SET_BUSSTATE) }, + { ARG_STR(HDIO_SET_QDMA) }, + { ARG_STR(HDIO_SET_ADDRESS) }, + }; + + for (size_t i = 0; i < ARRAY_SIZE(unsupp_cmds); i++) { + do_ioctl(unsupp_cmds[i].cmd, 0); + printf("ioctl(-1, " XLAT_FMT ", 0) = %s\n", + XLAT_SEL(unsupp_cmds[i].cmd, unsupp_cmds[i].str), + errstr); + + do_ioctl(unsupp_cmds[i].cmd, + (unsigned long) 0xbadc0deddeadc0deULL); + printf("ioctl(-1, " XLAT_FMT ", %#lx) = %s\n", + XLAT_SEL(unsupp_cmds[i].cmd, unsupp_cmds[i].str), + (unsigned long) 0xbadc0deddeadc0deULL, errstr); + } + + + /* HDIO_GETGEO */ + do_ioctl(HDIO_GETGEO, 0); + printf("ioctl(-1, %s, NULL) = %s\n", + XLAT_STR(HDIO_GETGEO), errstr); + + TAIL_ALLOC_OBJECT_CONST_PTR(struct hd_geometry, p_hd_geom); + + p_hd_geom->heads = 0xca; + p_hd_geom->sectors = 0xfe; + p_hd_geom->cylinders = 0xbabe; + p_hd_geom->start = (unsigned long) 0xbadc0deddeadfaceULL; + + do_ioctl_ptr(HDIO_GETGEO, (char *) p_hd_geom + 1); + printf("ioctl(-1, %s, %p) = %s\n", + XLAT_STR(HDIO_GETGEO), (char *) p_hd_geom + 1, errstr); + + rc = do_ioctl_ptr(HDIO_GETGEO, p_hd_geom); + printf("ioctl(-1, %s, ", XLAT_STR(HDIO_GETGEO)); + if (rc >= 0) { + printf("{heads=202, sectors=254, cylinders=47806, start=%lu}", + (unsigned long) 0xbadc0deddeadfaceULL); + } else { + printf("%p", p_hd_geom); + } + printf(") = %s\n", errstr); + + /* HDIO_DRIVE_CMD */ + do_ioctl(HDIO_DRIVE_CMD, 0); + printf("ioctl(-1, %s, NULL) = %s\n", + XLAT_STR(HDIO_DRIVE_CMD), errstr); + + TAIL_ALLOC_OBJECT_CONST_PTR(struct hd_drive_cmd_hdr, p_hd_drive_cmd); + struct hd_drive_cmd_hdr *p_hd_drive_cmd2 = + tail_alloc(sizeof(*p_hd_drive_cmd2) + 16); + struct hd_drive_cmd_hdr *p_hd_drive_cmd3 = + tail_alloc(sizeof(*p_hd_drive_cmd3) + DEFAULT_STRLEN + 1); + + fill_memory(p_hd_drive_cmd2, sizeof(*p_hd_drive_cmd2) + 16); + fill_memory(p_hd_drive_cmd3, + sizeof(*p_hd_drive_cmd3) + DEFAULT_STRLEN + 1); + + p_hd_drive_cmd->command = 0xca; + p_hd_drive_cmd->sector_number = 0xff; + p_hd_drive_cmd->feature = 0xee; + p_hd_drive_cmd->sector_count = 0; + + do_ioctl_ptr(HDIO_DRIVE_CMD, (char *) p_hd_drive_cmd + 1); + printf("ioctl(-1, %s, %p) = %s\n", + XLAT_STR(HDIO_DRIVE_CMD), (char *) p_hd_drive_cmd + 1, errstr); + + for (size_t i = 0; i < 2; i++) { + p_hd_drive_cmd->sector_count = i; + + rc = do_ioctl_ptr(HDIO_DRIVE_CMD, p_hd_drive_cmd); + printf("ioctl(-1, %s, {command=" XLAT_FMT ", sector_number=255" + ", feature=238, sector_count=%zu", + XLAT_STR(HDIO_DRIVE_CMD), + XLAT_SEL(0xca, "ATA_CMD_WRITE"), i); + if (rc >= 0) { + printf("} => {/* status */ 0xca, /* error */ 255" + ", /* nsector */ 238"); + if (i) + printf(", %p", p_hd_drive_cmd + 1); + } + printf("}) = %s\n", errstr); + } + + rc = do_ioctl_ptr(HDIO_DRIVE_CMD, p_hd_drive_cmd2); + printf("ioctl(-1, %s, {command=0x80" NRAW(" /* ATA_CMD_??? */") + ", sector_number=129, feature=130, sector_count=131", + XLAT_STR(HDIO_DRIVE_CMD)); + if (rc >= 0) { + printf("} => {/* status */ 0x80, /* error */ 129" + ", /* nsector */ 130, %p", p_hd_drive_cmd2 + 1); + } + printf("}) = %s\n", errstr); + + rc = do_ioctl_ptr(HDIO_DRIVE_CMD, p_hd_drive_cmd3); + printf("ioctl(-1, %s, {command=0x80" NRAW(" /* ATA_CMD_??? */") + ", sector_number=129, feature=130, sector_count=131", + XLAT_STR(HDIO_DRIVE_CMD)); + if (rc >= 0) { + printf("} => {/* status */ 0x80, /* error */ 129" + ", /* nsector */ 130, "); + print_quoted_hex(p_hd_drive_cmd3 + 1, DEFAULT_STRLEN); + printf("..."); + } + printf("}) = %s\n", errstr); + + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests/ioctl_hdio.gen.test b/tests/ioctl_hdio.gen.test new file mode 100755 index 00000000..478c717d --- /dev/null +++ b/tests/ioctl_hdio.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_hdio +ioctl.test -a27); do not edit. +set -- -a27 +. "${srcdir=.}/ioctl.test" diff --git a/tests/ioctl_inotify.c b/tests/ioctl_inotify.c index 6be0c0ee..6ca006ae 100644 --- a/tests/ioctl_inotify.c +++ b/tests/ioctl_inotify.c @@ -1,7 +1,7 @@ /* * This file is part of ioctl_inotify strace test. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -13,7 +13,7 @@ #include #include #include -#include +#include "scno.h" #include #ifndef INOTIFY_IOC_SETNEXTWD diff --git a/tests/ioctl_kvm_run_common.c b/tests/ioctl_kvm_run_common.c index 26e72cec..9107c30c 100644 --- a/tests/ioctl_kvm_run_common.c +++ b/tests/ioctl_kvm_run_common.c @@ -4,7 +4,7 @@ * * kvmtest.c author: Josh Triplett * Copyright (c) 2015 Intel Corporation - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to @@ -238,6 +238,10 @@ run_kvm(const int vcpu_fd, struct kvm_run *const run, const size_t mmap_size, run->mmio.data[4], run->mmio.data[5], run->mmio.data[6], run->mmio.data[7], run->mmio.len, run->mmio.is_write); + case KVM_EXIT_FAIL_ENTRY: + error_msg_and_fail("Got an unexpected FAIL_ENTRY exit:" + " hardware_entry_failure_reason %" PRI__x64, + run->fail_entry.hardware_entry_failure_reason); default: error_msg_and_fail("exit_reason = %#x", diff --git a/tests/ioctl_loop.c b/tests/ioctl_loop.c index 53665603..69c2f191 100644 --- a/tests/ioctl_loop.c +++ b/tests/ioctl_loop.c @@ -3,7 +3,7 @@ * * Copyright (c) 2016 JingPiao Chen * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -17,11 +17,17 @@ #include #include #include -#include +#include "scno.h" #include #include #include "print_fields.h" +#ifdef HAVE_STRUCT_LOOP_CONFIG +typedef struct loop_config struct_loop_config; +#else +# include "types/loop.h" +#endif + #define XLAT_MACROS_ONLY #include "xlat/loop_cmds.h" #undef XLAT_MACROS_ONLY @@ -155,6 +161,27 @@ print_loop_info64(struct loop_info64 * const info64, bool print_encrypt, #endif /* !ABBREV */ } +static void +print_loop_config(struct_loop_config *config, bool print_reserved) +{ +#if ABBREV + printf("%p", config); +#else + printf("{fd=%d, block_size=%u, info=", + (int) config->fd, config->block_size); + print_loop_info64(&config->info, false, "LO_CRYPT_NONE", NULL, + "LO_FLAGS_READ_ONLY"); + if (print_reserved) { + printf(", __reserved="); + for (size_t i = 0; i < ARRAY_SIZE(config->__reserved); ++i) + printf("%s%#llx", (i ? ", " : "["), + (unsigned long long) config->__reserved[i]); + printf("]"); + } + printf("}"); +#endif /* !ABBREV */ +} + int main(void) { @@ -167,6 +194,7 @@ main(void) TAIL_ALLOC_OBJECT_CONST_PTR(struct loop_info, info); TAIL_ALLOC_OBJECT_CONST_PTR(struct loop_info64, info64); + TAIL_ALLOC_OBJECT_CONST_PTR(struct_loop_config, config); /* Unknown loop commands */ sys_ioctl(-1, unknown_loop_cmd, magic); @@ -178,12 +206,12 @@ main(void) _IOC_SIZE((unsigned int) unknown_loop_cmd), (unsigned long) magic); - sys_ioctl(-1, LOOP_SET_BLOCK_SIZE + 1, magic); + sys_ioctl(-1, LOOP_CONFIGURE + 1, magic); printf("ioctl(-1, _IOC(%s, 0x4c, %#x, %#x), %#lx) = " "-1 EBADF (%m)\n", _IOC_NONE ? "0" : "_IOC_NONE", - _IOC_NR(LOOP_SET_BLOCK_SIZE + 1), - _IOC_SIZE(LOOP_SET_BLOCK_SIZE + 1), + _IOC_NR(LOOP_CONFIGURE + 1), + _IOC_SIZE(LOOP_CONFIGURE + 1), (unsigned long) magic); sys_ioctl(-1, LOOP_CTL_GET_FREE + 1, magic); @@ -281,6 +309,32 @@ main(void) ioctl(-1, LOOP_GET_STATUS64, (unsigned long) info64 | kernel_mask); printf("ioctl(-1, LOOP_GET_STATUS64, %p) = -1 EBADF (%m)\n", info64); + /* LOOP_CONFIGURE */ + ioctl(-1, LOOP_CONFIGURE, NULL); + printf("ioctl(-1, LOOP_CONFIGURE, NULL) = -1 EBADF (%m)\n"); + + fill_memory(config, sizeof(*config)); + config->info.lo_flags = LO_FLAGS_READ_ONLY; + config->info.lo_encrypt_type = LO_CRYPT_NONE; + memset(config->info.lo_file_name, 'C', sizeof(config->info.lo_file_name)); + memset(config->info.lo_crypt_name, 'D', sizeof(config->info.lo_crypt_name)); + memset(config->info.lo_encrypt_key, 'E', sizeof(config->info.lo_encrypt_key)); + + ioctl(-1, LOOP_CONFIGURE, (void *) config + ALIGNOF(config)); + printf("ioctl(-1, LOOP_CONFIGURE, %p) = -1 EBADF (%m)\n", + (void *) config + ALIGNOF(config)); + + printf("ioctl(-1, LOOP_CONFIGURE, "); + print_loop_config(config, true); + ioctl(-1, LOOP_CONFIGURE, config); + printf(") = -1 EBADF (%m)\n"); + + memset(config->__reserved, 0, sizeof(config->__reserved)); + printf("ioctl(-1, LOOP_CONFIGURE, "); + print_loop_config(config, false); + ioctl(-1, LOOP_CONFIGURE, config); + printf(") = -1 EBADF (%m)\n"); + /* LOOP_CHANGE_FD */ sys_ioctl(-1, LOOP_CHANGE_FD, magic); printf("ioctl(-1, LOOP_CHANGE_FD, %d) = -1 EBADF (%m)\n", diff --git a/tests/ioctl_nsfs.c b/tests/ioctl_nsfs.c index 74dbe6e9..0af05aaf 100644 --- a/tests/ioctl_nsfs.c +++ b/tests/ioctl_nsfs.c @@ -2,7 +2,7 @@ * Check decoding of NS_* commands of ioctl syscall. * * Copyright (c) 2017 Nikolay Marchuk - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -86,22 +86,27 @@ child(void *arg) #ifdef IA64 extern int __clone2(int (*)(void *), void *, size_t, int, void *, ...); -# define clone(fn, child_stack, flags, arg) \ - __clone2(fn, child_stack, get_page_size() / 2, flags, arg) +# define do_clone(fn_, stack_, size_, flags_, arg_, ...) \ + __clone2((fn_), (stack_), (size_), (flags_), (arg_), ## __VA_ARGS__) +#else +# define do_clone(fn_, stack_, size_, flags_, arg_, ...) \ + clone((fn_), (stack_), (flags_), (arg_), ## __VA_ARGS__) #endif static void test_user_namespace(void) { - pid_t pid; int pipefd[2]; - int status; - if (pipe(pipefd)) perror_msg_and_fail("pipe"); - pid = clone(child, tail_alloc(get_page_size() / 2), - CLONE_NEWUSER | CLONE_UNTRACED | SIGCHLD, pipefd); + const unsigned long child_stack_size = get_page_size(); + void *const child_stack = + tail_alloc(child_stack_size * 2) + child_stack_size; + + const pid_t pid = do_clone(child, child_stack, child_stack_size, + CLONE_NEWUSER | CLONE_UNTRACED | SIGCHLD, + pipefd); if (pid == -1) { perror("clone"); return; @@ -109,6 +114,8 @@ test_user_namespace(void) close(pipefd[0]); test_clone(pid); close(pipefd[1]); + + int status; if (wait(&status) != pid) { perror_msg_and_fail("wait"); } else if (status != 0) { diff --git a/tests/ioctl_perf-success.c b/tests/ioctl_perf-success.c index eaf572ac..51419b10 100644 --- a/tests/ioctl_perf-success.c +++ b/tests/ioctl_perf-success.c @@ -1,7 +1,7 @@ /* * Check decoding of successful PERF_EVENT_IOC_{ID,QUERY_BPF} ioctls. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,29 +9,31 @@ #include "tests.h" -#ifdef HAVE_LINUX_PERF_EVENT_H -# include -# include -# include -# include -# include -# include +#include +#include +#include +#include +#include +#include + +#ifdef HAVE_LINUX_PERF_EVENT_H # include +#endif -# ifndef PERF_EVENT_IOC_ID -# define PERF_EVENT_IOC_ID _IOR('$', 7, void *) -# endif +#ifndef PERF_EVENT_IOC_ID +# define PERF_EVENT_IOC_ID _IOR('$', 7, void *) +#endif -# ifndef PERF_EVENT_IOC_QUERY_BPF -# define PERF_EVENT_IOC_QUERY_BPF _IOWR('$', 10, void *) +#ifndef PERF_EVENT_IOC_QUERY_BPF +# define PERF_EVENT_IOC_QUERY_BPF _IOWR('$', 10, void *) struct perf_event_query_bpf { uint32_t ids_len; uint32_t prog_cnt; uint32_t ids[0]; }; -# endif +#endif int main(int argc, char **argv) @@ -137,9 +139,3 @@ main(int argc, char **argv) puts("+++ exited with 0 +++"); return 0; } - -#else - -SKIP_MAIN_UNDEFINED("HAVE_LINUX_PERF_EVENT_H"); - -#endif diff --git a/tests/ioctl_perf-success.gen.test b/tests/ioctl_perf-success.gen.test new file mode 100755 index 00000000..3ff72055 --- /dev/null +++ b/tests/ioctl_perf-success.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_perf-success +ioctl-success.sh -a35); do not edit. +set -- -a35 +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests/ioctl_perf-success.test b/tests/ioctl_perf-success.test deleted file mode 100755 index 2edd1d34..00000000 --- a/tests/ioctl_perf-success.test +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh -efu -# -# Check decoding of successful PERF_EVENT_IOC_{ID,QUERY_BPF} ioctls. -# -# Copyright (c) 2018 The strace developers. -# All rights reserved. -# -# SPDX-License-Identifier: GPL-2.0-or-later - -. "${srcdir=.}/scno_tampering.sh" - -: ${IOCTL_INJECT_START=256} -: ${IOCTL_INJECT_RETVAL=42} - -run_prog -run_strace -a35 -e trace=ioctl \ - -e inject=ioctl:retval="${IOCTL_INJECT_RETVAL}":when="${IOCTL_INJECT_START}+" \ - ../ioctl_perf-success "${IOCTL_INJECT_START}" "${IOCTL_INJECT_RETVAL}" > "$EXP" -grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT" -match_diff "$OUT" "$EXP" diff --git a/tests/ioctl_perf.c b/tests/ioctl_perf.c index 30cb35f6..af4f443e 100644 --- a/tests/ioctl_perf.c +++ b/tests/ioctl_perf.c @@ -1,7 +1,7 @@ /* * Check decoding of PERF_EVENT_IOC_* commands of ioctl syscall. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -16,7 +16,7 @@ # include # include # include -# include +# include "scno.h" # include /* diff --git a/tests/ioctl_ptp.c b/tests/ioctl_ptp.c index 52d9698a..ef2bca77 100644 --- a/tests/ioctl_ptp.c +++ b/tests/ioctl_ptp.c @@ -2,7 +2,7 @@ * Check decoding of PTP_* commands of ioctl syscall. * * Copyright (c) 2018 Harsha Sharma - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,7 +12,6 @@ #ifdef HAVE_STRUCT_PTP_SYS_OFFSET -# include # include # include # include @@ -21,12 +20,31 @@ # include # include +# ifndef PTP_CLOCK_GETCAPS2 +# define PTP_CLOCK_GETCAPS2 _IOR(PTP_CLK_MAGIC, 10, struct ptp_clock_caps) +# endif +# ifndef PTP_EXTTS_REQUEST2 +# define PTP_EXTTS_REQUEST2 _IOW(PTP_CLK_MAGIC, 11, struct ptp_extts_request) +# endif +# ifndef PTP_PEROUT_REQUEST2 +# define PTP_PEROUT_REQUEST2 _IOW(PTP_CLK_MAGIC, 12, struct ptp_perout_request) +# endif +# ifndef PTP_ENABLE_PPS2 +# define PTP_ENABLE_PPS2 _IOW(PTP_CLK_MAGIC, 13, int) +# endif +# ifndef PTP_SYS_OFFSET2 +# define PTP_SYS_OFFSET2 _IOW(PTP_CLK_MAGIC, 14, struct ptp_sys_offset) +# endif + # include "xlat.h" -# include "xlat/ptp_flags_options.h" +# include "xlat/ptp_extts_flags.h" +# include "xlat/ptp_perout_flags.h" static void test_no_device(void) { + const char *errstr; + TAIL_ALLOC_OBJECT_CONST_PTR(struct ptp_clock_caps, caps); fill_memory(caps, sizeof(*caps)); @@ -39,60 +57,93 @@ test_no_device(void) TAIL_ALLOC_OBJECT_CONST_PTR(struct ptp_perout_request, perout); fill_memory(perout, sizeof(*perout)); - int saved_errno; - /* PTP_CLOCK_GETCAPS */ - ioctl(-1, PTP_CLOCK_GETCAPS, NULL); - printf("ioctl(-1, PTP_CLOCK_GETCAPS, NULL) = -1 EBADF (%m)\n"); - ioctl(-1, PTP_CLOCK_GETCAPS, caps); - printf("ioctl(-1, PTP_CLOCK_GETCAPS, %p) = -1 EBADF (%m)\n", caps); + errstr = sprintrc(ioctl(-1, PTP_CLOCK_GETCAPS, NULL)); + printf("ioctl(-1, PTP_CLOCK_GETCAPS, NULL) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_CLOCK_GETCAPS, caps)); + printf("ioctl(-1, PTP_CLOCK_GETCAPS, %p) = %s\n", caps, errstr); /* PTP_SYS_OFFSET */ - ioctl(-1, PTP_SYS_OFFSET, NULL); - printf("ioctl(-1, PTP_SYS_OFFSET, NULL) = -1 EBADF (%m)\n"); - ioctl(-1, PTP_SYS_OFFSET, sysoff); - printf("ioctl(-1, PTP_SYS_OFFSET, {n_samples=%u}) = -1 EBADF (%m)\n", - sysoff->n_samples); + errstr = sprintrc(ioctl(-1, PTP_SYS_OFFSET, NULL)); + printf("ioctl(-1, PTP_SYS_OFFSET, NULL) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_SYS_OFFSET, sysoff)); + printf("ioctl(-1, PTP_SYS_OFFSET, {n_samples=%u}) = %s\n", + sysoff->n_samples, errstr); /* PTP_ENABLE_PPS */ - ioctl(-1, PTP_ENABLE_PPS, 0); - printf("ioctl(-1, PTP_ENABLE_PPS, 0) = -1 EBADF (%m)\n"); - ioctl(-1, PTP_ENABLE_PPS, 1); - printf("ioctl(-1, PTP_ENABLE_PPS, 1) = -1 EBADF (%m)\n"); + errstr = sprintrc(ioctl(-1, PTP_ENABLE_PPS, 0)); + printf("ioctl(-1, PTP_ENABLE_PPS, 0) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_ENABLE_PPS, 1)); + printf("ioctl(-1, PTP_ENABLE_PPS, 1) = %s\n", errstr); /* PTP_EXTTS_REQUEST */ - ioctl(-1, PTP_EXTTS_REQUEST, NULL); - printf("ioctl(-1, PTP_EXTTS_REQUEST, NULL) = -1 EBADF (%m)\n"); - ioctl(-1, PTP_EXTTS_REQUEST, extts); - saved_errno = errno; + errstr = sprintrc(ioctl(-1, PTP_EXTTS_REQUEST, NULL)); + printf("ioctl(-1, PTP_EXTTS_REQUEST, NULL) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_EXTTS_REQUEST, extts)); printf("ioctl(-1, PTP_EXTTS_REQUEST, {index=%d, flags=", extts->index); - printflags(ptp_flags_options, extts->flags, "PTP_???"); - errno = saved_errno; - printf("}) = -1 EBADF (%m)\n"); + printflags(ptp_extts_flags, extts->flags, "PTP_???"); + printf("}) = %s\n", errstr); /* PTP_PEROUT_REQUEST */ - ioctl(-1, PTP_PEROUT_REQUEST, NULL); - printf("ioctl(-1, PTP_PEROUT_REQUEST, NULL) = -1 EBADF (%m)\n"); - ioctl(-1, PTP_PEROUT_REQUEST, perout); - saved_errno = errno; + errstr = sprintrc(ioctl(-1, PTP_PEROUT_REQUEST, NULL)); + printf("ioctl(-1, PTP_PEROUT_REQUEST, NULL) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_PEROUT_REQUEST, perout)); printf("ioctl(-1, PTP_PEROUT_REQUEST, {start={sec=%" PRId64 ", nsec=%" PRIu32 "}, period={sec=%" PRId64 ", nsec=%" PRIu32 "}" ", index=%d, flags=", (int64_t) perout->start.sec, perout->start.nsec, (int64_t)perout->period.sec, perout->period.nsec, perout->index); - printflags(ptp_flags_options, perout->flags, "PTP_???"); - errno = saved_errno; - printf("}) = -1 EBADF (%m)\n"); + printflags(ptp_perout_flags, perout->flags, "PTP_???"); + printf("}) = %s\n", errstr); + + /* PTP_CLOCK_GETCAPS2 */ + errstr = sprintrc(ioctl(-1, PTP_CLOCK_GETCAPS2, NULL)); + printf("ioctl(-1, PTP_CLOCK_GETCAPS2, NULL) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_CLOCK_GETCAPS2, caps)); + printf("ioctl(-1, PTP_CLOCK_GETCAPS2, %p) = %s\n", caps, errstr); + + /* PTP_SYS_OFFSET2 */ + errstr = sprintrc(ioctl(-1, PTP_SYS_OFFSET2, NULL)); + printf("ioctl(-1, PTP_SYS_OFFSET2, NULL) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_SYS_OFFSET2, sysoff)); + printf("ioctl(-1, PTP_SYS_OFFSET2, {n_samples=%u}) = %s\n", + sysoff->n_samples, errstr); + + /* PTP_ENABLE_PPS2 */ + errstr = sprintrc(ioctl(-1, PTP_ENABLE_PPS2, 0)); + printf("ioctl(-1, PTP_ENABLE_PPS2, 0) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_ENABLE_PPS2, 1)); + printf("ioctl(-1, PTP_ENABLE_PPS2, 1) = %s\n", errstr); + + /* PTP_EXTTS_REQUEST2 */ + errstr = sprintrc(ioctl(-1, PTP_EXTTS_REQUEST2, NULL)); + printf("ioctl(-1, PTP_EXTTS_REQUEST2, NULL) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_EXTTS_REQUEST2, extts)); + printf("ioctl(-1, PTP_EXTTS_REQUEST2, {index=%d, flags=", extts->index); + printflags(ptp_extts_flags, extts->flags, "PTP_???"); + printf("}) = %s\n", errstr); + + /* PTP_PEROUT_REQUEST2 */ + errstr = sprintrc(ioctl(-1, PTP_PEROUT_REQUEST2, NULL)); + printf("ioctl(-1, PTP_PEROUT_REQUEST2, NULL) = %s\n", errstr); + errstr = sprintrc(ioctl(-1, PTP_PEROUT_REQUEST2, perout)); + printf("ioctl(-1, PTP_PEROUT_REQUEST2, {start={sec=%" PRId64 + ", nsec=%" PRIu32 "}, period={sec=%" PRId64 ", nsec=%" PRIu32 "}" + ", index=%d, flags=", + (int64_t) perout->start.sec, perout->start.nsec, + (int64_t)perout->period.sec, perout->period.nsec, perout->index); + printflags(ptp_perout_flags, perout->flags, "PTP_???"); + printf("}) = %s\n", errstr); /* unrecognized */ ioctl(-1, _IOC(_IOC_READ, PTP_CLK_MAGIC, 0xff, 0xfe), 0); - printf("ioctl(-1, _IOC(_IOC_READ, %#x, 0xff, 0xfe), 0)" - " = -1 EBADF (%m)\n", PTP_CLK_MAGIC); + printf("ioctl(-1, _IOC(_IOC_READ, %#x, 0xff, 0xfe), 0) = %s\n", + PTP_CLK_MAGIC, errstr); const unsigned long arg = (unsigned long) 0xfacefeeddeadbeefULL; ioctl(-1, _IOC(_IOC_WRITE, PTP_CLK_MAGIC, 0xfd, 0xfc), arg); printf("ioctl(-1, _IOC(_IOC_WRITE, %#x, 0xfd, 0xfc), %#lx)" - " = -1 EBADF (%m)\n", PTP_CLK_MAGIC, arg); + " = %s\n", PTP_CLK_MAGIC, arg, errstr); } int diff --git a/tests/ioctl_rtc.c b/tests/ioctl_rtc.c index d192e378..19d54f6b 100644 --- a/tests/ioctl_rtc.c +++ b/tests/ioctl_rtc.c @@ -34,7 +34,7 @@ print_rtc_time(const struct rtc_time *rt) #endif } -static struct xlat rtc_argless[] = { +static struct xlat_data rtc_argless[] = { XLAT(RTC_AIE_OFF), XLAT(RTC_PIE_ON), XLAT(RTC_PIE_OFF), diff --git a/tests/ioctl_scsi.c b/tests/ioctl_scsi.c index b6347b62..15eb56a9 100644 --- a/tests/ioctl_scsi.c +++ b/tests/ioctl_scsi.c @@ -2,7 +2,7 @@ * Check decoding of SCSI ioctl commands. * * Copyright (c) 2017 Dmitry V. Levin - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -15,7 +15,9 @@ # include # include # include -# include "xlat/scsi_sg_commands.h" +# define XLAT_MACROS_ONLY +# include "xlat/scsi_sg_commands.h" +# undef XLAT_MACROS_ONLY # define TEST_NO_ARG(cmd) \ do { \ diff --git a/tests/ioctl_sg_io_v4.c b/tests/ioctl_sg_io_v4.c index 59438285..087ae788 100644 --- a/tests/ioctl_sg_io_v4.c +++ b/tests/ioctl_sg_io_v4.c @@ -2,6 +2,7 @@ * Check decoding of ioctl SG_IO v4 commands. * * Copyright (c) 2017-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -16,8 +17,9 @@ # include # include # include - -# include "xlat/scsi_sg_commands.h" +# define XLAT_MACROS_ONLY +# include "xlat/scsi_sg_commands.h" +# undef XLAT_MACROS_ONLY int main(void) diff --git a/tests/ioctl_tee.c b/tests/ioctl_tee.c new file mode 100644 index 00000000..f6c2b3ae --- /dev/null +++ b/tests/ioctl_tee.c @@ -0,0 +1,437 @@ +/* + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#ifdef HAVE_LINUX_TEE_H + +# include +# include +# include + +# include + +# include +# include +# include + +# include "xlat.h" + +# define NUM_PARAMS 8 +# define RVAL_EBADF " = -1 EBADF (%m)\n" + +# define UUID_SIZE 16 + +# ifndef TEE_IOCTL_PARAM_ATTR_META +# define TEE_IOCTL_PARAM_ATTR_META 0x100 +# endif + +# ifndef HAVE_STRUCT_TEE_IOCTL_SHM_REGISTER_FD_DATA +struct tee_ioctl_shm_register_fd_data { + __s64 fd; + __u64 size; + __u32 flags; + __u8 _pad1[4]; + __u32 id; + __u8 _pad2[4]; +} ATTRIBUTE_ALIGNED(8); +# endif + +# ifndef HAVE_STRUCT_TEE_IOCTL_SHM_REGISTER_DATA +struct tee_ioctl_shm_register_data { + __u64 addr; + __u64 length; + __u32 flags; + __s32 id; +}; +# endif + +# ifndef TEE_IOC_SHM_REGISTER_FD +# define TEE_IOC_SHM_REGISTER_FD _IOWR(TEE_IOC_MAGIC, TEE_IOC_BASE + 8, \ + struct tee_ioctl_shm_register_fd_data) +# endif + +# ifndef TEE_IOC_SHM_REGISTER +# define TEE_IOC_SHM_REGISTER _IOWR(TEE_IOC_MAGIC, TEE_IOC_BASE + 9, \ + struct tee_ioctl_shm_register_data) +# endif + + +typedef struct { + uint8_t b[UUID_SIZE]; +} uuid_t; + +# define UUID_INIT(a_, b_, c_, d0, d1, d2, d3, d4, d5, d6, d7) \ +{ .b = {((a_) >> 24) & 0xff, ((a_) >> 16) & 0xff, \ + ((a_) >> 8) & 0xff, (a_) & 0xff, \ + ((b_) >> 8) & 0xff, (b_) & 0xff, \ + ((c_) >> 8) & 0xff, (c_) & 0xff, \ + (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7)} } + +# define CHK_NULL(ioctl_) \ + do { \ + ioctl(-1, ioctl_, NULL); \ + printf("ioctl(-1, " #ioctl_ ", NULL)" RVAL_EBADF); \ + } while (0) + +# define CHK_BUF(ioctl_) \ + do { \ + ioctl(-1, ioctl_, &buf_data); \ + printf("ioctl(-1, " #ioctl_ \ + ", {buf_len=%llu, buf_ptr=%#llx})" RVAL_EBADF, \ + (unsigned long long) buf_data.buf_len, \ + (unsigned long long) buf_data.buf_ptr); \ + } while (0) + +# define DEFINE_BUF_W_PARAMS(type_, shorthand_) \ + const size_t shorthand_ ## _size = sizeof(type_) + \ + NUM_PARAMS * sizeof(struct tee_ioctl_param); \ + union { \ + type_ shorthand_; \ + uint8_t data[shorthand_ ## _size]; \ + } shorthand_ ## _buf + +static const unsigned long one_beef = (unsigned long) 0xcafef00ddeadbeefULL; +static const unsigned long two_beef = (unsigned long) 0xbadc0dedbadc0dedULL; +static const unsigned long red_beef = (unsigned long) 0xdefacedbeef0beefULL; +static const unsigned long blu_beef = (unsigned long) 0xfacefeedcafef00dULL; + +static const uuid_t uuid_beef = UUID_INIT(0xdeadbeef, 0xcafe, 0xc0de, + 0xba, 0xdc, 0x0d, 0xed, + 0xfa, 0xce, 0xfe, 0xed); + +static void +fill_params(struct tee_ioctl_param *params) +{ + for (unsigned i = 0; i < NUM_PARAMS; i++) { + params[i].a = two_beef; + params[i].b = red_beef; + params[i].c = blu_beef; + } + params[0].attr = TEE_IOCTL_PARAM_ATTR_TYPE_NONE; + params[1].attr = TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_INPUT; + params[2].attr = TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_OUTPUT; + params[3].attr = TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_INOUT; + params[4].attr = TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INPUT; + params[5].attr = TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_OUTPUT; + params[6].attr = TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INOUT; + params[7].attr = TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_INPUT | + TEE_IOCTL_PARAM_ATTR_META; +} + +static void +print_params(struct tee_ioctl_param *params) +{ + printf("{attr=TEE_IOCTL_PARAM_ATTR_TYPE_NONE}, " + "{attr=TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_INPUT, a=%#llx, b=%#llx, c=%#llx}, " + "{attr=TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_OUTPUT, a=%#llx, b=%#llx, c=%#llx}, " + "{attr=TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_INOUT, a=%#llx, b=%#llx, c=%#llx}, " + "{attr=TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INPUT, shm_offs=%#llx, size=%#llx, shm_id=%llu}, " + "{attr=TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_OUTPUT, shm_offs=%#llx, size=%#llx, shm_id=%llu}, " + "{attr=TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INOUT, shm_offs=%#llx, size=%#llx, shm_id=%llu}, " + "{attr=TEE_IOCTL_PARAM_ATTR_TYPE_VALUE_INPUT|TEE_IOCTL_PARAM_ATTR_META, a=%#llx, b=%#llx, c=%#llx}", + (unsigned long long) two_beef, (unsigned long long) red_beef, + (unsigned long long) blu_beef, (unsigned long long) two_beef, + (unsigned long long) red_beef, (unsigned long long) blu_beef, + (unsigned long long) two_beef, (unsigned long long) red_beef, + (unsigned long long) blu_beef, (unsigned long long) two_beef, + (unsigned long long) red_beef, (unsigned long long) blu_beef, + (unsigned long long) two_beef, (unsigned long long) red_beef, + (unsigned long long) blu_beef, (unsigned long long) two_beef, + (unsigned long long) red_beef, (unsigned long long) blu_beef, + (unsigned long long) two_beef, (unsigned long long) red_beef, + (unsigned long long) blu_beef + ); +} + +int +main(void) +{ + gid_t gid; + + struct tee_ioctl_cancel_arg cancel; + struct tee_ioctl_shm_alloc_data shm_alloc; + struct tee_ioctl_shm_register_data shm_register; + struct tee_ioctl_close_session_arg close_session; + struct tee_ioctl_shm_register_fd_data shm_register_fd; + + struct tee_ioctl_buf_data buf_data; + struct tee_ioctl_param *params = NULL; + + DEFINE_BUF_W_PARAMS(struct tee_ioctl_invoke_arg, invoke); + DEFINE_BUF_W_PARAMS(struct tee_iocl_supp_recv_arg, supp_recv); + DEFINE_BUF_W_PARAMS(struct tee_iocl_supp_send_arg, supp_send); + DEFINE_BUF_W_PARAMS(struct tee_ioctl_open_session_arg, open_session); + + static const char null_path[] = "/dev/null"; + int fd = open(null_path, O_RDONLY); + + /* NULL as arg */ + CHK_NULL(TEE_IOC_CANCEL); + CHK_NULL(TEE_IOC_INVOKE); + CHK_NULL(TEE_IOC_VERSION); + CHK_NULL(TEE_IOC_SHM_ALLOC); + CHK_NULL(TEE_IOC_SUPPL_RECV); + CHK_NULL(TEE_IOC_SUPPL_SEND); + CHK_NULL(TEE_IOC_OPEN_SESSION); + CHK_NULL(TEE_IOC_SHM_REGISTER); + CHK_NULL(TEE_IOC_CLOSE_SESSION); + + /* Valid parameterless calls */ + ioctl(-1, TEE_IOC_SHM_REGISTER_FD, NULL); + printf("ioctl(-1, _IOC(_IOC_READ|_IOC_WRITE, 0xa4, 0x8, 0x20), NULL)" + RVAL_EBADF); + ioctl(-1, _IOC(_IOC_NONE, 0xa4, 0xa, 0), NULL); + printf("ioctl(-1, _IOC(_IOC_NONE, 0xa4, 0xa, 0), 0)" RVAL_EBADF); + + cancel.cancel_id = (uint32_t) one_beef; + cancel.session = (uint32_t) two_beef; + ioctl(-1, TEE_IOC_CANCEL, &cancel); + printf("ioctl(-1, TEE_IOC_CANCEL, {cancel_id=%u, session=%#x})" RVAL_EBADF, + (uint32_t) one_beef, (uint32_t) two_beef); + + close_session.session = (uint32_t) red_beef; + ioctl(-1, TEE_IOC_CLOSE_SESSION, &close_session); + printf("ioctl(-1, TEE_IOC_CLOSE_SESSION, {session=%#x})" RVAL_EBADF, + (uint32_t) red_beef); + + shm_alloc.size = one_beef; + shm_alloc.flags = TEE_IOCTL_SHM_MAPPED | TEE_IOCTL_SHM_DMA_BUF | 0x80; + ioctl(-1, TEE_IOC_SHM_ALLOC, &shm_alloc); + printf("ioctl(-1, TEE_IOC_SHM_ALLOC, {size=%#llx, " + "flags=TEE_IOCTL_SHM_MAPPED|TEE_IOCTL_SHM_DMA_BUF|0x80})" RVAL_EBADF, + (unsigned long long) one_beef); + + shm_register.addr = red_beef; + shm_register.length = blu_beef; + shm_register.flags = TEE_IOCTL_SHM_MAPPED | 0x80; + ioctl(-1, TEE_IOC_SHM_REGISTER, &shm_register); + printf("ioctl(-1, TEE_IOC_SHM_REGISTER, {addr=%#llx, length=%#llx, " + "flags=TEE_IOCTL_SHM_MAPPED|0x80})" RVAL_EBADF, + (unsigned long long) red_beef, + (unsigned long long) blu_beef); + + if (fd >= 0) { + shm_register_fd.fd = fd; + shm_register_fd.flags = TEE_IOCTL_SHM_DMA_BUF; + ioctl(-1, TEE_IOC_SHM_REGISTER_FD, &shm_register_fd); + printf("ioctl(-1, _IOC(_IOC_READ|_IOC_WRITE, 0xa4, 0x8, 0x20), " + "{fd=%d, flags=TEE_IOCTL_SHM_DMA_BUF})" RVAL_EBADF, fd); + } + + /* Beef in buf_data */ + buf_data.buf_ptr = one_beef; + buf_data.buf_len = two_beef; + CHK_BUF(TEE_IOC_INVOKE); + CHK_BUF(TEE_IOC_OPEN_SESSION); + CHK_BUF(TEE_IOC_SUPPL_RECV); + CHK_BUF(TEE_IOC_SUPPL_SEND); + + /* Valid calls with parameters */ + invoke_buf.invoke.func = (uint32_t) one_beef; + invoke_buf.invoke.session = (uint32_t) two_beef; + invoke_buf.invoke.cancel_id = (uint32_t) red_beef; + invoke_buf.invoke.num_params = NUM_PARAMS; + params = (struct tee_ioctl_param *)(&invoke_buf.invoke + 1); + fill_params(params); + buf_data.buf_ptr = (uintptr_t) &invoke_buf; + buf_data.buf_len = invoke_size; + ioctl(-1, TEE_IOC_INVOKE, &buf_data); + printf("ioctl(-1, TEE_IOC_INVOKE, {buf_len=%llu, " + "buf_ptr={func=%u, session=%#x, cancel_id=%u, " + "num_params=%u, params=[", + (unsigned long long) buf_data.buf_len, + (uint32_t) one_beef, (uint32_t) two_beef, + (uint32_t) red_beef, NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + open_session_buf.open_session.clnt_login = TEE_IOCTL_LOGIN_PUBLIC; + gid = (gid_t) blu_beef; + memcpy(&open_session_buf.open_session.clnt_uuid, &gid, sizeof(gid_t)); + memcpy(&open_session_buf.open_session.uuid, &uuid_beef, UUID_SIZE); + open_session_buf.open_session.cancel_id = (uint32_t) red_beef; + open_session_buf.open_session.num_params = NUM_PARAMS; + params = (struct tee_ioctl_param *)(&open_session_buf.open_session + 1); + fill_params(params); + buf_data.buf_ptr = (uintptr_t) &open_session_buf; + buf_data.buf_len = open_session_size; + ioctl(-1, TEE_IOC_OPEN_SESSION, &buf_data); + printf("ioctl(-1, TEE_IOC_OPEN_SESSION, {buf_len=%llu, " + "buf_ptr={uuid=deadbeef-cafe-c0de-badc-0dedfacefeed, " + "clnt_login=TEE_IOCTL_LOGIN_PUBLIC, " + "cancel_id=%u, " + "num_params=%u, params=[", + (unsigned long long) buf_data.buf_len, + (uint32_t) red_beef, NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + /* All the login types */ + open_session_buf.open_session.clnt_login = TEE_IOCTL_LOGIN_USER; + ioctl(-1, TEE_IOC_OPEN_SESSION, &buf_data); + printf("ioctl(-1, TEE_IOC_OPEN_SESSION, {buf_len=%llu, " + "buf_ptr={uuid=deadbeef-cafe-c0de-badc-0dedfacefeed, " + "clnt_login=TEE_IOCTL_LOGIN_USER, " + "cancel_id=%u, " + "num_params=%u, params=[", + (unsigned long long) buf_data.buf_len, + (uint32_t) red_beef, NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + open_session_buf.open_session.clnt_login = TEE_IOCTL_LOGIN_GROUP; + ioctl(-1, TEE_IOC_OPEN_SESSION, &buf_data); + printf("ioctl(-1, TEE_IOC_OPEN_SESSION, {buf_len=%llu, " + "buf_ptr={uuid=deadbeef-cafe-c0de-badc-0dedfacefeed, " + "clnt_login=TEE_IOCTL_LOGIN_GROUP, " + "clnt_uuid=%u, cancel_id=%u, " + "num_params=%u, params=[", + (unsigned long long) buf_data.buf_len, + gid, (uint32_t) red_beef, NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + open_session_buf.open_session.clnt_login = TEE_IOCTL_LOGIN_APPLICATION; + ioctl(-1, TEE_IOC_OPEN_SESSION, &buf_data); + printf("ioctl(-1, TEE_IOC_OPEN_SESSION, {buf_len=%llu, " + "buf_ptr={uuid=deadbeef-cafe-c0de-badc-0dedfacefeed, " + "clnt_login=TEE_IOCTL_LOGIN_APPLICATION, " + "cancel_id=%u, " + "num_params=%u, params=[", + (unsigned long long) buf_data.buf_len, + (uint32_t) red_beef, NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + open_session_buf.open_session.clnt_login = TEE_IOCTL_LOGIN_USER_APPLICATION; + ioctl(-1, TEE_IOC_OPEN_SESSION, &buf_data); + printf("ioctl(-1, TEE_IOC_OPEN_SESSION, {buf_len=%llu, " + "buf_ptr={uuid=deadbeef-cafe-c0de-badc-0dedfacefeed, " + "clnt_login=TEE_IOCTL_LOGIN_USER_APPLICATION, " + "cancel_id=%u, " + "num_params=%u, params=[", + (unsigned long long) buf_data.buf_len, + (uint32_t) red_beef, NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + open_session_buf.open_session.clnt_login = TEE_IOCTL_LOGIN_GROUP_APPLICATION; + ioctl(-1, TEE_IOC_OPEN_SESSION, &buf_data); + printf("ioctl(-1, TEE_IOC_OPEN_SESSION, {buf_len=%llu, " + "buf_ptr={uuid=deadbeef-cafe-c0de-badc-0dedfacefeed, " + "clnt_login=TEE_IOCTL_LOGIN_GROUP_APPLICATION, " + "clnt_uuid=%u, cancel_id=%u, " + "num_params=%u, params=[", + (unsigned long long) buf_data.buf_len, + gid, (uint32_t) red_beef, NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + open_session_buf.open_session.clnt_login = 0xff; + ioctl(-1, TEE_IOC_OPEN_SESSION, &buf_data); + printf("ioctl(-1, TEE_IOC_OPEN_SESSION, {buf_len=%llu, " + "buf_ptr={uuid=deadbeef-cafe-c0de-badc-0dedfacefeed, " + "clnt_login=%#x /* TEE_IOCTL_LOGIN_??? */, " + "clnt_uuid=[", (unsigned long long) buf_data.buf_len, + open_session_buf.open_session.clnt_login); + for (unsigned i = 0; i < UUID_SIZE; i++) { + if (i > 0) + printf(", "); + printf("%#x", open_session_buf.open_session.clnt_uuid[i]); + } + printf("], cancel_id=%u, " + "num_params=%u, params=[", + (uint32_t) red_beef, NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + supp_recv_buf.supp_recv.func = (uint32_t) blu_beef; + supp_recv_buf.supp_recv.num_params = NUM_PARAMS; + params = (struct tee_ioctl_param *)(&supp_recv_buf.supp_recv + 1); + fill_params(params); + buf_data.buf_ptr = (uintptr_t) &supp_recv_buf; + buf_data.buf_len = supp_recv_size; + ioctl(-1, TEE_IOC_SUPPL_RECV, &buf_data); + printf("ioctl(-1, TEE_IOC_SUPPL_RECV, {buf_len=%llu, " + "buf_ptr={func=%u, " + "num_params=%u, params=[", + (unsigned long long) buf_data.buf_len, + (uint32_t) blu_beef, NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + supp_send_buf.supp_send.num_params = NUM_PARAMS; + params = (struct tee_ioctl_param *)(&supp_send_buf.supp_send + 1); + fill_params(params); + buf_data.buf_ptr = (uintptr_t) &supp_send_buf; + buf_data.buf_len = supp_send_size; + ioctl(-1, TEE_IOC_SUPPL_SEND, &buf_data); + printf("ioctl(-1, TEE_IOC_SUPPL_SEND, {buf_len=%llu, " + "buf_ptr={num_params=%u, params=[", + (unsigned long long) buf_data.buf_len, + NUM_PARAMS); + print_params(params); + printf("]}})" RVAL_EBADF); + + /* Valid buf, but unmatching num_params */ + invoke_buf.invoke.num_params = 0; + supp_recv_buf.supp_recv.num_params = 0; + supp_send_buf.supp_send.num_params = 0; + open_session_buf.open_session.num_params = 0; + + buf_data.buf_ptr = (uintptr_t) &invoke_buf; + buf_data.buf_len = invoke_size; + CHK_BUF(TEE_IOC_INVOKE); + buf_data.buf_ptr = (uintptr_t) &open_session_buf; + buf_data.buf_len = open_session_size; + CHK_BUF(TEE_IOC_OPEN_SESSION); + buf_data.buf_ptr = (uintptr_t) &supp_recv_buf; + buf_data.buf_len = supp_recv_size; + CHK_BUF(TEE_IOC_SUPPL_RECV); + buf_data.buf_ptr = (uintptr_t) &supp_send_buf; + buf_data.buf_len = supp_send_size; + CHK_BUF(TEE_IOC_SUPPL_SEND); + + invoke_buf.invoke.num_params = NUM_PARAMS; + supp_recv_buf.supp_recv.num_params = NUM_PARAMS; + supp_send_buf.supp_send.num_params = NUM_PARAMS; + open_session_buf.open_session.num_params = NUM_PARAMS; + + /* Invalid buf_len */ + buf_data.buf_len = 0; + CHK_BUF(TEE_IOC_INVOKE); + CHK_BUF(TEE_IOC_OPEN_SESSION); + CHK_BUF(TEE_IOC_SUPPL_RECV); + CHK_BUF(TEE_IOC_SUPPL_SEND); + + buf_data.buf_len = (unsigned long long) -1; + CHK_BUF(TEE_IOC_INVOKE); + CHK_BUF(TEE_IOC_OPEN_SESSION); + CHK_BUF(TEE_IOC_SUPPL_RECV); + CHK_BUF(TEE_IOC_SUPPL_SEND); + + /* Valid buf_len, invalid buf_ptr */ + buf_data.buf_ptr = one_beef; + buf_data.buf_len = invoke_size; + CHK_BUF(TEE_IOC_INVOKE); + buf_data.buf_len = open_session_size; + CHK_BUF(TEE_IOC_OPEN_SESSION); + buf_data.buf_len = supp_recv_size; + CHK_BUF(TEE_IOC_SUPPL_RECV); + buf_data.buf_len = supp_send_size; + CHK_BUF(TEE_IOC_SUPPL_SEND); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else /* !HAVE_LINUX_TEE_H */ + +SKIP_MAIN_UNDEFINED("HAVE_LINUX_TEE_H") + +#endif /* HAVE_LINUX_TEE_H */ diff --git a/tests/ioctl_tee.gen.test b/tests/ioctl_tee.gen.test new file mode 100755 index 00000000..f220bca2 --- /dev/null +++ b/tests/ioctl_tee.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_tee +ioctl.test ); do not edit. +set -- +. "${srcdir=.}/ioctl.test" diff --git a/tests/ioctl_uffdio.c b/tests/ioctl_uffdio.c index 19104442..971440d0 100644 --- a/tests/ioctl_uffdio.c +++ b/tests/ioctl_uffdio.c @@ -1,14 +1,14 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin * Copyright (c) 2016 Red Hat, Inc. - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_userfaultfd && defined HAVE_LINUX_USERFAULTFD_H @@ -135,6 +135,13 @@ main(void) " mode=UFFDIO_COPY_MODE_DONTWAKE, copy=%#zx}) = %d\n", fd, area2, area1, pagesize, pagesize, rc); + copy_struct->mode = 0xdeadbeef;; + rc = ioctl(fd, UFFDIO_COPY, copy_struct); + printf("ioctl(%d, UFFDIO_COPY, {dst=%p, src=%p, len=%#zx," + " mode=UFFDIO_COPY_MODE_DONTWAKE|UFFDIO_COPY_MODE_WP|0xdeadbeec" + "}) = %s\n", + fd, area2, area1, pagesize, sprintrc(rc)); + /* ---- ZEROPAGE ---- */ TAIL_ALLOC_OBJECT_CONST_PTR(struct uffdio_zeropage, zero_struct); madvise(area2, pagesize, MADV_DONTNEED); diff --git a/tests/ioctl_v4l2-Xabbrev.c b/tests/ioctl_v4l2-Xabbrev.c new file mode 100644 index 00000000..54046bff --- /dev/null +++ b/tests/ioctl_v4l2-Xabbrev.c @@ -0,0 +1 @@ +#include "ioctl_v4l2.c" diff --git a/tests/ioctl_v4l2-Xabbrev.gen.test b/tests/ioctl_v4l2-Xabbrev.gen.test new file mode 100755 index 00000000..f90c41dc --- /dev/null +++ b/tests/ioctl_v4l2-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-Xabbrev +ioctl.test -Xabbrev); do not edit. +set -- -Xabbrev +. "${srcdir=.}/ioctl.test" diff --git a/tests/ioctl_v4l2-Xraw.c b/tests/ioctl_v4l2-Xraw.c new file mode 100644 index 00000000..da45f6da --- /dev/null +++ b/tests/ioctl_v4l2-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_v4l2.c" diff --git a/tests/ioctl_v4l2-Xraw.gen.test b/tests/ioctl_v4l2-Xraw.gen.test new file mode 100755 index 00000000..9ebd2835 --- /dev/null +++ b/tests/ioctl_v4l2-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-Xraw +ioctl.test -Xraw); do not edit. +set -- -Xraw +. "${srcdir=.}/ioctl.test" diff --git a/tests/ioctl_v4l2-Xverbose.c b/tests/ioctl_v4l2-Xverbose.c new file mode 100644 index 00000000..52173f77 --- /dev/null +++ b/tests/ioctl_v4l2-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_v4l2.c" diff --git a/tests/ioctl_v4l2-Xverbose.gen.test b/tests/ioctl_v4l2-Xverbose.gen.test new file mode 100755 index 00000000..0d0ccd0d --- /dev/null +++ b/tests/ioctl_v4l2-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-Xverbose +ioctl.test -Xverbose); do not edit. +set -- -Xverbose +. "${srcdir=.}/ioctl.test" diff --git a/tests/ioctl_v4l2-success-Xabbrev.c b/tests/ioctl_v4l2-success-Xabbrev.c new file mode 100644 index 00000000..c328ee1e --- /dev/null +++ b/tests/ioctl_v4l2-success-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_v4l2-success.c" diff --git a/tests/ioctl_v4l2-success-Xabbrev.gen.test b/tests/ioctl_v4l2-success-Xabbrev.gen.test new file mode 100755 index 00000000..60e33ad9 --- /dev/null +++ b/tests/ioctl_v4l2-success-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-success-Xabbrev +ioctl-success.sh -a29 -Xabbrev); do not edit. +set -- -a29 -Xabbrev +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests/ioctl_v4l2-success-Xraw.c b/tests/ioctl_v4l2-success-Xraw.c new file mode 100644 index 00000000..2ceb2d3d --- /dev/null +++ b/tests/ioctl_v4l2-success-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_v4l2-success.c" diff --git a/tests/ioctl_v4l2-success-Xraw.gen.test b/tests/ioctl_v4l2-success-Xraw.gen.test new file mode 100755 index 00000000..f1ee3f2f --- /dev/null +++ b/tests/ioctl_v4l2-success-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-success-Xraw +ioctl-success.sh -a27 -Xraw); do not edit. +set -- -a27 -Xraw +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests/ioctl_v4l2-success-Xverbose.c b/tests/ioctl_v4l2-success-Xverbose.c new file mode 100644 index 00000000..c09ee349 --- /dev/null +++ b/tests/ioctl_v4l2-success-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_v4l2-success.c" diff --git a/tests/ioctl_v4l2-success-Xverbose.gen.test b/tests/ioctl_v4l2-success-Xverbose.gen.test new file mode 100755 index 00000000..a1b69a4a --- /dev/null +++ b/tests/ioctl_v4l2-success-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-success-Xverbose +ioctl-success.sh -a30 -Xverbose); do not edit. +set -- -a30 -Xverbose +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests/ioctl_v4l2-success-v-Xabbrev.c b/tests/ioctl_v4l2-success-v-Xabbrev.c new file mode 100644 index 00000000..f06ca45d --- /dev/null +++ b/tests/ioctl_v4l2-success-v-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_v4l2-success-v.c" diff --git a/tests/ioctl_v4l2-success-v-Xabbrev.gen.test b/tests/ioctl_v4l2-success-v-Xabbrev.gen.test new file mode 100755 index 00000000..49dfc26a --- /dev/null +++ b/tests/ioctl_v4l2-success-v-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-success-v-Xabbrev +ioctl-success.sh -a29 -v -Xabbrev); do not edit. +set -- -a29 -v -Xabbrev +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests/ioctl_v4l2-success-v-Xraw.c b/tests/ioctl_v4l2-success-v-Xraw.c new file mode 100644 index 00000000..a95c12fa --- /dev/null +++ b/tests/ioctl_v4l2-success-v-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_v4l2-success-v.c" diff --git a/tests/ioctl_v4l2-success-v-Xraw.gen.test b/tests/ioctl_v4l2-success-v-Xraw.gen.test new file mode 100755 index 00000000..55e9799c --- /dev/null +++ b/tests/ioctl_v4l2-success-v-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-success-v-Xraw +ioctl-success.sh -a27 -v -Xraw); do not edit. +set -- -a27 -v -Xraw +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests/ioctl_v4l2-success-v-Xverbose.c b/tests/ioctl_v4l2-success-v-Xverbose.c new file mode 100644 index 00000000..ac659b31 --- /dev/null +++ b/tests/ioctl_v4l2-success-v-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_v4l2-success-v.c" diff --git a/tests/ioctl_v4l2-success-v-Xverbose.gen.test b/tests/ioctl_v4l2-success-v-Xverbose.gen.test new file mode 100755 index 00000000..ed9278f1 --- /dev/null +++ b/tests/ioctl_v4l2-success-v-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-success-v-Xverbose +ioctl-success.sh -a29 -v -Xverbose); do not edit. +set -- -a29 -v -Xverbose +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests/ioctl_v4l2-success-v.c b/tests/ioctl_v4l2-success-v.c new file mode 100644 index 00000000..fadad4ef --- /dev/null +++ b/tests/ioctl_v4l2-success-v.c @@ -0,0 +1,2 @@ +#define VERBOSE 1 +#include "ioctl_v4l2-success.c" diff --git a/tests/ioctl_v4l2-success-v.gen.test b/tests/ioctl_v4l2-success-v.gen.test new file mode 100755 index 00000000..6eca4cdd --- /dev/null +++ b/tests/ioctl_v4l2-success-v.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-success-v +ioctl-success.sh -a29 -v); do not edit. +set -- -a29 -v +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests/ioctl_v4l2-success.c b/tests/ioctl_v4l2-success.c new file mode 100644 index 00000000..f1b834ee --- /dev/null +++ b/tests/ioctl_v4l2-success.c @@ -0,0 +1,1473 @@ +/* + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#include +#include +#include +#include +#include +#include "kernel_v4l2_types.h" + +#define XLAT_MACROS_ONLY +# include "xlat/v4l2_ioctl_cmds.h" +#undef XLAT_MACROS_ONLY + +static bool +fill_fmt(struct v4l2_format *f) +{ + static struct v4l2_clip *clips; + + switch (f->type) { + case V4L2_BUF_TYPE_VIDEO_CAPTURE: + case V4L2_BUF_TYPE_VIDEO_OUTPUT: + f->fmt.pix.width = 0xdeadc0de; + f->fmt.pix.height = 0xfeedbeef; + f->fmt.pix.pixelformat = 0xb5315258; /* forurcc_be("XR15") */ + f->fmt.pix.field = f->type == V4L2_BUF_TYPE_VIDEO_CAPTURE + ? V4L2_FIELD_ALTERNATE : 0xdec0ded1; + f->fmt.pix.bytesperline = 0xbadc0ded; + f->fmt.pix.sizeimage = 0xface1e55; + f->fmt.pix.colorspace = V4L2_COLORSPACE_REC709; + break; + + case V4L2_BUF_TYPE_VIDEO_OVERLAY: +#if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY + case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY: +#endif + f->fmt.win.w.left = 0xa0a1a2a3; + f->fmt.win.w.top = 0xb0b1b2b3; + f->fmt.win.w.width = 0xc0c1c2c3; + f->fmt.win.w.height = 0xd0d1d2d3; + f->fmt.win.field = f->type == V4L2_BUF_TYPE_VIDEO_OVERLAY + ? V4L2_FIELD_ANY : 10; + f->fmt.win.chromakey = 0xbeefface; + + if (!clips) + clips = tail_alloc(sizeof(*clips) * 3); + f->fmt.win.clips = clips; + + f->fmt.win.clips[0].c.left = 0xa4a5a6a7; + f->fmt.win.clips[0].c.top = 0xb4b5b6b7; + f->fmt.win.clips[0].c.width = 0xc4c5c6c7; + f->fmt.win.clips[0].c.height = 0xd4d5d6d7; + f->fmt.win.clips[0].next = clips; + + f->fmt.win.clips[1].c.left = 0xa8a9aaab; + f->fmt.win.clips[1].c.top = 0xb8b9babb; + f->fmt.win.clips[1].c.width = 0xc8c9cacb; + f->fmt.win.clips[1].c.height = 0xd8d9dadb; + + f->fmt.win.clips[2].c.left = 0xacadaeaf; + f->fmt.win.clips[2].c.top = 0xbcbdbebf; + f->fmt.win.clips[2].c.width = 0xcccdcecf; + f->fmt.win.clips[2].c.height = 0xdcdddedf; + f->fmt.win.clips[2].next = clips + 1; + + f->fmt.win.clipcount = f->type == V4L2_BUF_TYPE_VIDEO_OVERLAY + ? 4 : 0; + f->fmt.win.bitmap = f->type == V4L2_BUF_TYPE_VIDEO_OVERLAY + ? NULL : clips; + break; + + case V4L2_BUF_TYPE_VBI_CAPTURE: + case V4L2_BUF_TYPE_VBI_OUTPUT: + f->fmt.vbi.sampling_rate = 0xdecaffed; + f->fmt.vbi.offset = 0xcafefeed; + f->fmt.vbi.samples_per_line = 0xbeefaced; + f->fmt.vbi.sample_format = V4L2_PIX_FMT_RGB555X; + + f->fmt.vbi.start[0] = 0xdec0ded0; + f->fmt.vbi.start[1] = 0xdec0ded1; + f->fmt.vbi.count[0] = 0xacceded2; + f->fmt.vbi.count[1] = 0xacceded3; + + f->fmt.vbi.flags = f->type == V4L2_BUF_TYPE_VBI_CAPTURE + ? 0x3 : 0x1ce50d1c; + break; + +#if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE + case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: + case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE: + f->fmt.pix_mp.width = 0xdeaffade; + f->fmt.pix_mp.height = 0xfadeb1a5; + f->fmt.pix_mp.pixelformat = 0x36314454; + f->fmt.pix_mp.field = V4L2_FIELD_NONE; + f->fmt.pix_mp.colorspace = 13; + + for (size_t i = 0; i < VIDEO_MAX_PLANES; i++) { + f->fmt.pix_mp.plane_fmt[i].sizeimage = 0xd0decad0 ^ i; + if (sizeof(f->fmt.pix_mp.plane_fmt[i].bytesperline) == + sizeof(uint32_t)) { + f->fmt.pix_mp.plane_fmt[i].bytesperline + = 0xd0decad1 ^ i; + } else { +# if WORDS_BIGENDIAN + f->fmt.pix_mp.plane_fmt[i].bytesperline + = 0xd0de; + f->fmt.pix_mp.plane_fmt[i].reserved[0] + = 0xcad1 ^ i; +# else + f->fmt.pix_mp.plane_fmt[i].bytesperline + = 0xcad1 ^ i; + f->fmt.pix_mp.plane_fmt[i].reserved[0] + = 0xd0de; +# endif + } + } + + f->fmt.pix_mp.num_planes = f->type == + V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE ? 0xd5 : 0; + break; +#endif +#if HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE + case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: + case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: + f->fmt.sliced.service_set = 0xfeed; + for (size_t i = 0; i < 2; i++) { + for (size_t j = 0; j < 24; j++) { + f->fmt.sliced.service_lines[i][j] = + 0xdead ^ (i << 8) ^ j; + } + } + f->fmt.sliced.io_size = 0xdefaceed; + break; +#endif +#if HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE + case V4L2_BUF_TYPE_SDR_CAPTURE: +# if HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT + case V4L2_BUF_TYPE_SDR_OUTPUT: +# endif + f->fmt.sdr.pixelformat = V4L2_SDR_FMT_CU8; +# ifdef HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE + if (sizeof(f->fmt.sdr.buffersize == sizeof(uint32_t))) + f->fmt.sdr.buffersize = 0xbadc0ded; + else + ((uint32_t *) &f->fmt.sdr)[1] = 0xbadc0ded; +# else + ((uint32_t *) &f->fmt.sdr)[1] = 0xbadc0ded; +# endif + break; +#endif + default: + return false; + } + + return true; +} + +static void +print_fmt(const char *pfx, struct v4l2_format *f) +{ + switch (f->type) { + case V4L2_BUF_TYPE_VIDEO_CAPTURE: + case V4L2_BUF_TYPE_VIDEO_OUTPUT: + printf("%sfmt.pix={width=3735929054, height=4276993775" + ", pixelformat=" RAW("0xb5315258") + NRAW("v4l2_fourcc('X', 'R', '1', '\\xb5')" + " /* V4L2_PIX_FMT_XRGB555X */") + ", field=%s, bytesperline=3134983661" + ", sizeimage=4207812181, colorspace=" + XLAT_KNOWN(0x3, "V4L2_COLORSPACE_REC709") "}", + pfx, f->type == V4L2_BUF_TYPE_VIDEO_CAPTURE + ? XLAT_STR(V4L2_FIELD_ALTERNATE) + : XLAT_UNKNOWN(0xdec0ded1, "V4L2_FIELD_???")); + break; + + case V4L2_BUF_TYPE_VIDEO_OVERLAY: +#if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY + case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY: +#endif + printf("%sfmt.win={left=-1600019805, top=-1330531661" + ", width=3233923779, height=3503411923, field=%s" + ", chromakey=0xbeefface, clips=[", + pfx, f->type == V4L2_BUF_TYPE_VIDEO_OVERLAY + ? XLAT_STR(V4L2_FIELD_ANY) + : XLAT_UNKNOWN(0xa, "V4L2_FIELD_???")); + if (f->type == V4L2_BUF_TYPE_VIDEO_OVERLAY) { + printf("{left=-1532647769, top=-1263159625" + ", width=3301295815, height=3570783959}, " + "{left=-1465275733, top=-1195787589" + ", width=3368667851, height=3638155995}, " + "{left=-1397903697, top=-1128415553" + ", width=3436039887, height=3705528031}, " + "... /* %p */", f->fmt.win.clips + 3); + } + printf("], clipcount=%d, bitmap=", + f->type == V4L2_BUF_TYPE_VIDEO_OVERLAY ? 4 : 0); + + if (f->type == V4L2_BUF_TYPE_VIDEO_OVERLAY) + printf("NULL"); + else + printf("%p", f->fmt.win.bitmap); + +#ifdef HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA + printf(", global_alpha=%#hhx}", f->fmt.win.global_alpha); +#else + struct win_ga { + struct v4l2_rect w; + uint32_t field; + uint32_t chromakey; + struct v4l2_clip *clips; + uint32_t clipcount; + void *bitmap; + uint8_t global_alpha; + }; + printf(", global_alpha=%#hhx}", + ((struct win_ga *) &f->fmt.win)->global_alpha); +#endif + break; + + case V4L2_BUF_TYPE_VBI_CAPTURE: + case V4L2_BUF_TYPE_VBI_OUTPUT: + printf("%sfmt.vbi={sampling_rate=3737845741, offset=3405709037" + ", samples_per_line=3203378413, sample_format=" + RAW("0x51424752") NRAW("v4l2_fourcc('R', 'G', 'B', 'Q')" + " /* V4L2_PIX_FMT_RGB555X */") + ", start=[-557785392, -557785391]" + ", count=[2899238610, 2899238611], flags=%s}", + pfx, f->type == V4L2_BUF_TYPE_VBI_CAPTURE + ? XLAT_KNOWN(0x3, "V4L2_VBI_UNSYNC|V4L2_VBI_INTERLACED") + : XLAT_UNKNOWN(0x1ce50d1c, "V4L2_VBI_???")); + break; + +#if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE + case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: + case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE: + printf("%sfmt.pix_mp={width=3736074974, height=4208898469" + ", pixelformat=" RAW("0x36314454") + NRAW("v4l2_fourcc('T', 'D', '1', '6')") + ", field=%s, colorspace=0xd" + NRAW(" /* V4L2_COLORSPACE_??? */") ", plane_fmt=[", + pfx, XLAT_STR(V4L2_FIELD_NONE)); + if (f->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) { + printf("{sizeimage=3504261840, bytesperline=3504261841}" + ", " + "{sizeimage=3504261841, bytesperline=3504261840}" + ", " + "{sizeimage=3504261842, bytesperline=3504261843}" + ", " + "{sizeimage=3504261843, bytesperline=3504261842}" + ", " + "{sizeimage=3504261844, bytesperline=3504261845}" + ", " + "{sizeimage=3504261845, bytesperline=3504261844}" + ", " + "{sizeimage=3504261846, bytesperline=3504261847}" + ", " + "{sizeimage=3504261847, bytesperline=3504261846}" + "], num_planes=213}"); + } else { + printf("], num_planes=0}"); + } + break; +#endif +#if HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE + case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: + case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: + printf("%sfmt.sliced={service_set=" + XLAT_UNKNOWN(0xfeed, "V4L2_SLICED_???") + ", io_size=3740978925, service_lines=[[0xdead, 0xdeac" + ", 0xdeaf, 0xdeae, 0xdea9, 0xdea8, 0xdeab, 0xdeaa" + ", 0xdea5, 0xdea4, 0xdea7, 0xdea6, 0xdea1, 0xdea0" + ", 0xdea3, 0xdea2, 0xdebd, 0xdebc, 0xdebf, 0xdebe" + ", 0xdeb9, 0xdeb8, 0xdebb, 0xdeba], [0xdfad, 0xdfac" + ", 0xdfaf, 0xdfae, 0xdfa9, 0xdfa8, 0xdfab, 0xdfaa" + ", 0xdfa5, 0xdfa4, 0xdfa7, 0xdfa6, 0xdfa1, 0xdfa0" + ", 0xdfa3, 0xdfa2, 0xdfbd, 0xdfbc, 0xdfbf, 0xdfbe" + ", 0xdfb9, 0xdfb8, 0xdfbb, 0xdfba]]}", + pfx); + break; +#endif +#if HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE + case V4L2_BUF_TYPE_SDR_CAPTURE: +# if HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT + case V4L2_BUF_TYPE_SDR_OUTPUT: +# endif + printf("%sfmt.sdr={pixelformat=" RAW("0x38305543") + NRAW("v4l2_fourcc('C', 'U', '0', '8')" + " /* V4L2_SDR_FMT_CU8 */") + ", buffersize=3134983661}", + pfx); + break; +#endif + } +} + +int +main(int argc, char **argv) +{ + unsigned long num_skip; + long inject_retval; + bool locked = false; + + if (argc == 1) + return 0; + + if (argc < 3) + error_msg_and_fail("Usage: %s NUM_SKIP INJECT_RETVAL", argv[0]); + + num_skip = strtoul(argv[1], NULL, 0); + inject_retval = strtol(argv[2], NULL, 0); + + if (inject_retval < 0) + error_msg_and_fail("Expected non-negative INJECT_RETVAL, " + "but got %ld", inject_retval); + + for (unsigned int i = 0; i < num_skip; i++) { + long rc = ioctl(-1, VIDIOC_QUERYCAP, NULL); + printf("ioctl(-1, %s, NULL) = %s%s\n", + XLAT_STR(VIDIOC_QUERYCAP), sprintrc(rc), + rc == inject_retval ? " (INJECTED)" : ""); + + if (rc != inject_retval) + continue; + + locked = true; + break; + } + + if (!locked) + error_msg_and_fail("Hasn't locked on ioctl(-1" + ", VIDIOC_QUERYCAP, NULL) returning %lu", + inject_retval); + + + /* VIDIOC_QUERYCAP */ + struct v4l2_capability *caps = tail_alloc(sizeof(*caps)); + + fill_memory(caps, sizeof(*caps)); + caps->capabilities = 0xdeadbeef; +#ifdef HAVE_STRUCT_V4L2_CAPABILITY_DEVICE_CAPS + caps->device_caps = 0xfacefeed; +#else + caps->reserved[0] = 0xfacefeed; +#endif + + ioctl(-1, VIDIOC_QUERYCAP, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_QUERYCAP), inject_retval); + + ioctl(-1, VIDIOC_QUERYCAP, (char *) caps + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_QUERYCAP), (char *) caps + 1, inject_retval); + + ioctl(-1, VIDIOC_QUERYCAP, caps); + printf("ioctl(-1, %s, {driver=", XLAT_STR(VIDIOC_QUERYCAP)); + print_quoted_cstring((char *) caps->driver, sizeof(caps->driver)); + printf(", card="); + print_quoted_cstring((char *) caps->card, sizeof(caps->card)); + printf(", bus_info="); + print_quoted_cstring((char *) caps->bus_info, sizeof(caps->bus_info)); + printf(", version=" +#ifdef WORDS_BIGENDIAN + XLAT_KNOWN(0xd0d1d2d3, "KERNEL_VERSION(53457, 210, 211)") +#else + XLAT_KNOWN(0xd3d2d1d0, "KERNEL_VERSION(54226, 209, 208)") +#endif + ", capabilities=" XLAT_KNOWN(0xdeadbeef, + "V4L2_CAP_VIDEO_CAPTURE|V4L2_CAP_VIDEO_OUTPUT" + "|V4L2_CAP_VIDEO_OVERLAY|V4L2_CAP_VBI_OUTPUT" + "|V4L2_CAP_SLICED_VBI_CAPTURE|V4L2_CAP_SLICED_VBI_OUTPUT" + "|V4L2_CAP_VIDEO_OUTPUT_OVERLAY|V4L2_CAP_HW_FREQ_SEEK" + "|V4L2_CAP_RDS_OUTPUT|V4L2_CAP_VIDEO_CAPTURE_MPLANE" + "|V4L2_CAP_VIDEO_OUTPUT_MPLANE|V4L2_CAP_VIDEO_M2M" + "|V4L2_CAP_TUNER|V4L2_CAP_RADIO|V4L2_CAP_MODULATOR" + "|V4L2_CAP_EXT_PIX_FORMAT|V4L2_CAP_META_CAPTURE|V4L2_CAP_ASYNCIO" + "|V4L2_CAP_STREAMING|V4L2_CAP_META_OUTPUT|V4L2_CAP_TOUCH" + "|V4L2_CAP_DEVICE_CAPS|0x40000008")); + printf(", device_caps=" XLAT_KNOWN(0xfacefeed, + "V4L2_CAP_VIDEO_CAPTURE|V4L2_CAP_VIDEO_OVERLAY" + "|V4L2_CAP_VBI_OUTPUT|V4L2_CAP_SLICED_VBI_CAPTURE" + "|V4L2_CAP_SLICED_VBI_OUTPUT|V4L2_CAP_VIDEO_OUTPUT_OVERLAY" + "|V4L2_CAP_HW_FREQ_SEEK|V4L2_CAP_RDS_OUTPUT" + "|V4L2_CAP_VIDEO_CAPTURE_MPLANE|V4L2_CAP_VIDEO_OUTPUT_MPLANE" + "|V4L2_CAP_VIDEO_M2M_MPLANE|V4L2_CAP_VIDEO_M2M|V4L2_CAP_AUDIO" + "|V4L2_CAP_RADIO|V4L2_CAP_MODULATOR|V4L2_CAP_SDR_OUTPUT" + "|V4L2_CAP_META_CAPTURE|V4L2_CAP_ASYNCIO|V4L2_CAP_META_OUTPUT" + "|V4L2_CAP_TOUCH|V4L2_CAP_DEVICE_CAPS|0x60000008")); + printf("}) = %ld (INJECTED)\n", inject_retval); + + + /* VIDIOC_ENUM_FMT */ + static const struct strval32 buf_types[] = { + { ARG_XLAT_UNKNOWN(0, "V4L2_BUF_TYPE_???") }, + { ARG_XLAT_KNOWN(0x1, "V4L2_BUF_TYPE_VIDEO_CAPTURE") }, + { ARG_XLAT_KNOWN(0x2, "V4L2_BUF_TYPE_VIDEO_OUTPUT") }, + { ARG_XLAT_KNOWN(0x3, "V4L2_BUF_TYPE_VIDEO_OVERLAY") }, + { ARG_XLAT_KNOWN(0x4, "V4L2_BUF_TYPE_VBI_CAPTURE") }, + { ARG_XLAT_KNOWN(0x5, "V4L2_BUF_TYPE_VBI_OUTPUT") }, + { ARG_XLAT_KNOWN(0x6, "V4L2_BUF_TYPE_SLICED_VBI_CAPTURE") }, + { ARG_XLAT_KNOWN(0x7, "V4L2_BUF_TYPE_SLICED_VBI_OUTPUT") }, + { ARG_XLAT_KNOWN(0x8, "V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY") }, + { ARG_XLAT_KNOWN(0x9, "V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE") }, + { ARG_XLAT_KNOWN(0xa, "V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE") }, + { ARG_XLAT_KNOWN(0xb, "V4L2_BUF_TYPE_SDR_CAPTURE") }, + { ARG_XLAT_KNOWN(0xc, "V4L2_BUF_TYPE_SDR_OUTPUT") }, + { ARG_XLAT_KNOWN(0xd, "V4L2_BUF_TYPE_META_CAPTURE") }, + { ARG_XLAT_KNOWN(0xe, "V4L2_BUF_TYPE_META_OUTPUT") }, + { ARG_XLAT_UNKNOWN(0xf, "V4L2_BUF_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0x80, "V4L2_BUF_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0xbadc0ded, "V4L2_BUF_TYPE_???") }, + }; + static const struct strval32 fmtdesc_flags[] = { + { ARG_STR(0) }, + { ARG_XLAT_KNOWN(0x1, "V4L2_FMT_FLAG_COMPRESSED") }, + { ARG_XLAT_KNOWN(0x3e, "V4L2_FMT_FLAG_EMULATED" + "|V4L2_FMT_FLAG_CONTINUOUS_BYTESTREAM" + "|V4L2_FMT_FLAG_DYN_RESOLUTION" + "|V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL" + "|0x20") }, + { ARG_XLAT_UNKNOWN(0xdead0000, "V4L2_FMT_FLAG_???") }, + }; + static const struct strval32 fmtdesc_fmts[] = { + { 0x4c47504a, RAW("0x4c47504a") + NRAW("v4l2_fourcc('J', 'P', 'G', 'L')" + " /* V4L2_PIX_FMT_JPGL */") }, + { 0xbadc0ded, RAW("0xbadc0ded") + NRAW("v4l2_fourcc('\\xed', '\\x0d', '\\xdc'," + " '\\xba')") }, + }; + struct v4l2_fmtdesc *fmtdesc = tail_alloc(sizeof(*fmtdesc)); + + fill_memory(fmtdesc, sizeof(*fmtdesc)); + fmtdesc->index = 0xdeac0de; + + ioctl(-1, VIDIOC_ENUM_FMT, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FMT), inject_retval); + + ioctl(-1, VIDIOC_ENUM_FMT, (char *) fmtdesc + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FMT), (char *) fmtdesc + 1, inject_retval); + + for (size_t i = 0; i < ARRAY_SIZE(buf_types); i++) { + for (size_t j = 0; j < ARRAY_SIZE(fmtdesc_flags); j++) { + for (size_t k = 0; k < ARRAY_SIZE(fmtdesc_fmts); k++) { + fmtdesc->type = buf_types[i].val; + fmtdesc->flags = fmtdesc_flags[j].val; + fmtdesc->pixelformat = fmtdesc_fmts[k].val; + + ioctl(-1, VIDIOC_ENUM_FMT, fmtdesc); + printf("ioctl(-1, %s, {index=233488606, type=%s" + ", flags=%s, description=", + XLAT_STR(VIDIOC_ENUM_FMT), + buf_types[i].str, + fmtdesc_flags[j].str); + print_quoted_cstring((char *) fmtdesc->description, + sizeof(fmtdesc->description)); + printf(", pixelformat=%s}) = %ld (INJECTED)\n", + fmtdesc_fmts[k].str, inject_retval); + + fill_memory_ex(fmtdesc->description, + sizeof(fmtdesc->description), + (i * 9 + j) * 7 + k, + (k * 3 + j) * 11 + i + 5); + } + } + } + + + /* VIDIOC_REQBUFS */ + static const struct strval32 reqb_mems[] = { + { ARG_XLAT_UNKNOWN(0, "V4L2_MEMORY_???") }, + { ARG_XLAT_KNOWN(0x1, "V4L2_MEMORY_MMAP") }, + { ARG_XLAT_KNOWN(0x4, "V4L2_MEMORY_DMABUF") }, + { ARG_XLAT_UNKNOWN(0x5, "V4L2_MEMORY_???") }, + { ARG_XLAT_UNKNOWN(0xbadc0ded, "V4L2_MEMORY_???") }, + }; + struct v4l2_requestbuffers *reqb = tail_alloc(sizeof(*reqb)); + + fill_memory(reqb, sizeof(*reqb)); + reqb->count = 0xfeedface; + + ioctl(-1, VIDIOC_REQBUFS, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_REQBUFS), inject_retval); + + ioctl(-1, VIDIOC_REQBUFS, (char *) reqb + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_REQBUFS), (char *) reqb + 1, inject_retval); + + for (size_t i = 0; i < MAX(ARRAY_SIZE(buf_types), + ARRAY_SIZE(reqb_mems)); i++) { + reqb->type = buf_types[i % ARRAY_SIZE(buf_types)].val; + reqb->memory = reqb_mems[i % ARRAY_SIZE(reqb_mems)].val; + + ioctl(-1, VIDIOC_REQBUFS, reqb); + printf("ioctl(-1, %s, {type=%s, memory=%s" + ", count=4277009102 => 4277009102}) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_REQBUFS), + buf_types[i % ARRAY_SIZE(buf_types)].str, + reqb_mems[i % ARRAY_SIZE(reqb_mems)].str, + inject_retval); + } + + + /* VIDIOC_G_FMT, VIDIOC_S_FMT, VIDIOC_TRY_FMT */ + static const struct strval32 fmt_cmds[] = { + { ARG_STR(VIDIOC_G_FMT) }, + { ARG_STR(VIDIOC_S_FMT) }, + { ARG_STR(VIDIOC_TRY_FMT) }, + }; + + struct v4l2_format *fmt = tail_alloc(sizeof(*fmt)); + + for (size_t i = 0; i < ARRAY_SIZE(fmt_cmds); i++) { + ioctl(-1, fmt_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(fmt_cmds[i].str, fmt_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, fmt_cmds[i].val, (char *) fmt + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(fmt_cmds[i].str, fmt_cmds[i].val, NULL), + (char *) fmt + 1, inject_retval); + + for (size_t j = 0; j < ARRAY_SIZE(buf_types); j++) { + fill_memory(fmt, sizeof(*fmt)); + + fmt->type = buf_types[j].val; + if (!fill_fmt(fmt)) + continue; + + ioctl(-1, fmt_cmds[i].val, fmt); + printf("ioctl(-1, %s, {type=%s", + sprintxlat(fmt_cmds[i].str, fmt_cmds[i].val, + NULL), + buf_types[j].str); + print_fmt(", ", fmt); + if (fmt_cmds[i].val != VIDIOC_G_FMT && + buf_types[j].val != V4L2_BUF_TYPE_VIDEO_OVERLAY && + buf_types[j].val != 8) + print_fmt("} => {", fmt); + printf("}) = %ld (INJECTED)\n", inject_retval); + } + } + + + /* VIDIOC_QUERYBUF, VIDIOC_QBUF, VIDIOC_DQBUF */ + static const struct strval32 buf_cmds[] = { + { ARG_STR(VIDIOC_QUERYBUF) }, + { ARG_STR(VIDIOC_QBUF) }, + { ARG_STR(VIDIOC_DQBUF) }, + }; + + kernel_v4l2_buffer_t *buf = tail_alloc(sizeof(*buf)); + + for (size_t i = 0; i < ARRAY_SIZE(buf_cmds); i++) { + ioctl(-1, buf_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(buf_cmds[i].str, buf_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, buf_cmds[i].val, (char *) buf + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(buf_cmds[i].str, buf_cmds[i].val, NULL), + (char *) buf + 1, inject_retval); + + fill_memory(buf, sizeof(*buf)); + buf->index = 0xdeadc0de; + buf->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + buf->bytesused = 0xdecaffee; + buf->flags = 0x1ff; /* TODO: update */ + buf->field = V4L2_FIELD_TOP; + + buf->timestamp.tv_sec = 0x1e55c0de; + buf->timestamp.tv_usec = 999999; + + buf->timecode.type = V4L2_TC_TYPE_24FPS; + buf->timecode.flags = 0xbeefdeaf; + + buf->memory = V4L2_MEMORY_MMAP; + buf->m.offset = 0xfacefeed; + buf->length = 0xcafebed5; + buf->reserved = 0xdeefaced; + + ioctl(-1, buf_cmds[i].val, buf); + printf("ioctl(-1, %s, {type=" + XLAT_KNOWN(0x1, "V4L2_BUF_TYPE_VIDEO_CAPTURE") + ", index=3735929054, memory=" + XLAT_KNOWN(0x1, "V4L2_MEMORY_MMAP") + ", m.offset=0xfacefeed, length=3405692629" + ", bytesused=3737845742, flags=" RAW("0x1ff") +#if !XLAT_RAW + XLAT_KNOWN(0x1ff, "V4L2_BUF_FLAG_MAPPED" + "|V4L2_BUF_FLAG_QUEUED|V4L2_BUF_FLAG_DONE" + "|V4L2_BUF_FLAG_KEYFRAME|V4L2_BUF_FLAG_PFRAME" + "|V4L2_BUF_FLAG_BFRAME|V4L2_BUF_FLAG_ERROR" + "|V4L2_BUF_FLAG_IN_REQUEST|V4L2_BUF_FLAG_TIMECODE") "|" + XLAT_KNOWN(0, "V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN") "|" + XLAT_KNOWN(0, "V4L2_BUF_FLAG_TSTAMP_SRC_EOF") +#endif + "%s, ...}) = %ld (INJECTED)\n", + sprintxlat(buf_cmds[i].str, buf_cmds[i].val, NULL), + buf_cmds[i].val == VIDIOC_DQBUF + ? ", timestamp={tv_sec=508936414, tv_usec=999999}" : "", + inject_retval); + + buf->type = V4L2_BUF_TYPE_VBI_CAPTURE; + buf->flags = 0x268040; + buf->field = 0xb; + buf->memory = V4L2_MEMORY_USERPTR; + buf->m.userptr = (long) 0xdefaced0dec0ded1LL; + + ioctl(-1, buf_cmds[i].val, buf); + printf("ioctl(-1, %s, {type=" + XLAT_KNOWN(0x4, "V4L2_BUF_TYPE_VBI_CAPTURE") + ", index=3735929054, memory=" + XLAT_KNOWN(0x2, "V4L2_MEMORY_USERPTR") + ", m.userptr=%p, length=3405692629" + ", bytesused=3737845742, flags=" RAW("0x268040") +#if !XLAT_RAW + XLAT_KNOWN(0x200040, "V4L2_BUF_FLAG_ERROR|0x200000") "|" + XLAT_UNKNOWN(0x8000, "V4L2_BUF_FLAG_TIMESTAMP_???") "|" + XLAT_UNKNOWN(0x60000, "V4L2_BUF_FLAG_TSTAMP_SRC_???") +#endif + "%s, ...}) = %ld (INJECTED)\n", + sprintxlat(buf_cmds[i].str, buf_cmds[i].val, NULL), + (void *) (intptr_t) 0xdefaced0dec0ded1LL, + buf_cmds[i].val == VIDIOC_DQBUF + ? ", timestamp={tv_sec=508936414, tv_usec=999999}" : "", + inject_retval); + + buf->type = 0x9; + buf->flags = 0; + + ioctl(-1, buf_cmds[i].val, buf); + printf("ioctl(-1, %s, {type=" + XLAT_KNOWN(0x9, "V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE") + ", index=3735929054, memory=" + XLAT_KNOWN(0x2, "V4L2_MEMORY_USERPTR") + ", m.userptr=%p, length=3405692629" + ", bytesused=3737845742, flags=" RAW("0") +#if !XLAT_RAW + XLAT_KNOWN(0, "V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN") "|" + XLAT_KNOWN(0, "V4L2_BUF_FLAG_TSTAMP_SRC_EOF") +#endif + "%s, ...}) = %ld (INJECTED)\n", + sprintxlat(buf_cmds[i].str, buf_cmds[i].val, NULL), + (void *) (intptr_t) 0xdefaced0dec0ded1LL, + buf_cmds[i].val == VIDIOC_DQBUF + ? ", timestamp={tv_sec=508936414, tv_usec=999999}" : "", + inject_retval); + + buf->type = 0xa; + buf->memory = V4L2_MEMORY_OVERLAY; + buf->flags = 0x2000; + + ioctl(-1, buf_cmds[i].val, buf); + printf("ioctl(-1, %s, {type=" + XLAT_KNOWN(0xa, "V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE") + ", index=3735929054, memory=" + XLAT_KNOWN(0x3, "V4L2_MEMORY_OVERLAY") + ", length=3405692629, bytesused=3737845742" + ", flags=" RAW("0x2000") +#if !XLAT_RAW + XLAT_KNOWN(0x2000, "V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC") + "|" XLAT_KNOWN(0, "V4L2_BUF_FLAG_TSTAMP_SRC_EOF") +#endif + "%s, ...}) = %ld (INJECTED)\n", + sprintxlat(buf_cmds[i].str, buf_cmds[i].val, NULL), + buf_cmds[i].val == VIDIOC_DQBUF + ? ", timestamp={tv_sec=508936414, tv_usec=999999}" : "", + inject_retval); + } + + + /* VIDIOC_G_FBUF, VIDIOC_S_FBUF */ + static const struct strval32 fbuf_cmds[] = { + { ARG_STR(VIDIOC_G_FBUF) }, + { ARG_STR(VIDIOC_S_FBUF) }, + }; + + struct v4l2_framebuffer *fbuf = tail_alloc(sizeof(*fbuf)); + + for (size_t i = 0; i < ARRAY_SIZE(fbuf_cmds); i++) { + ioctl(-1, fbuf_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(fbuf_cmds[i].str, fbuf_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, fbuf_cmds[i].val, (char *) fbuf + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(fbuf_cmds[i].str, fbuf_cmds[i].val, NULL), + (char *) fbuf + 1, inject_retval); + + fill_memory32(fbuf, sizeof(*fbuf)); + fbuf->base = NULL; + + ioctl(-1, fbuf_cmds[i].val, fbuf); + printf("ioctl(-1, %s, {capability=0x80a0c0e0, flags=0x80a0c0e1" + ", base=NULL}) = %ld (INJECTED)\n", + sprintxlat(fbuf_cmds[i].str, fbuf_cmds[i].val, NULL), + inject_retval); + } + + + /* VIDIOC_G_PARM, VIDIOC_S_PARM */ + static const struct strval32 sparm_cmds[] = { + { ARG_STR(VIDIOC_G_PARM) }, + { ARG_STR(VIDIOC_S_PARM) }, + }; + + struct v4l2_streamparm *sparm = tail_alloc(sizeof(*sparm)); + + for (size_t i = 0; i < ARRAY_SIZE(sparm_cmds); i++) { + ioctl(-1, sparm_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(sparm_cmds[i].str, sparm_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, sparm_cmds[i].val, (char *) sparm + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(sparm_cmds[i].str, sparm_cmds[i].val, NULL), + (char *) sparm + 1, inject_retval); + + fill_memory32(sparm, sizeof(*sparm)); + + ioctl(-1, sparm_cmds[i].val, sparm); + printf("ioctl(-1, %s, {type=" + XLAT_UNKNOWN(0x80a0c0e0, "V4L2_BUF_TYPE_???") + "}) = %ld (INJECTED)\n", + sprintxlat(sparm_cmds[i].str, sparm_cmds[i].val, NULL), + inject_retval); + + sparm->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + + static const char *parm_str1 = "parm.capture={capability=" + XLAT_UNKNOWN(0x80a0c0e1, "V4L2_CAP_???") + ", capturemode=" + XLAT_UNKNOWN(0x80a0c0e2, "V4L2_MODE_???") + ", timeperframe=2158018787/2158018788" + ", extendedmode=0x80a0c0e5, readbuffers=2158018790}"; + + ioctl(-1, sparm_cmds[i].val, sparm); + printf("ioctl(-1, %s, {type=" + XLAT_KNOWN(0x1, "V4L2_BUF_TYPE_VIDEO_CAPTURE") + ", %s}%s%s%s) = %ld (INJECTED)\n", + sprintxlat(sparm_cmds[i].str, sparm_cmds[i].val, NULL), + parm_str1, + sparm_cmds[i].val == VIDIOC_S_PARM ? " => {" : "", + sparm_cmds[i].val == VIDIOC_S_PARM ? parm_str1 : "", + sparm_cmds[i].val == VIDIOC_S_PARM ? "}" : "", + inject_retval); + + sparm->parm.capture.capability = 0x1000; + sparm->parm.capture.capturemode = 0x1; + + static const char *parm_str2 = "parm.capture={capability=" + XLAT_KNOWN(0x1000, "V4L2_CAP_TIMEPERFRAME") + ", capturemode=" + XLAT_KNOWN(0x1, "V4L2_MODE_HIGHQUALITY") + ", timeperframe=2158018787/2158018788" + ", extendedmode=0x80a0c0e5, readbuffers=2158018790}"; + + ioctl(-1, sparm_cmds[i].val, sparm); + printf("ioctl(-1, %s, {type=" + XLAT_KNOWN(0x1, "V4L2_BUF_TYPE_VIDEO_CAPTURE") + ", %s}%s%s%s) = %ld (INJECTED)\n", + sprintxlat(sparm_cmds[i].str, sparm_cmds[i].val, NULL), + parm_str2, + sparm_cmds[i].val == VIDIOC_S_PARM ? " => {" : "", + sparm_cmds[i].val == VIDIOC_S_PARM ? parm_str2 : "", + sparm_cmds[i].val == VIDIOC_S_PARM ? "}" : "", + inject_retval); + + sparm->type = 0x9; + sparm->parm.capture.capability = 0xdeadbeef; + sparm->parm.capture.capturemode = 0xadec0ded; + + ioctl(-1, sparm_cmds[i].val, sparm); + printf("ioctl(-1, %s, {type=" + XLAT_KNOWN(0x9, "V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE") + "}) = %ld (INJECTED)\n", + sprintxlat(sparm_cmds[i].str, sparm_cmds[i].val, NULL), + inject_retval); + + fill_memory32(sparm, sizeof(*sparm)); + sparm->type = V4L2_BUF_TYPE_VIDEO_OUTPUT; + + static const char *parm_str3 = "parm.output={capability=" + XLAT_UNKNOWN(0x80a0c0e1, "V4L2_CAP_???") + ", outputmode=" + XLAT_UNKNOWN(0x80a0c0e2, "V4L2_MODE_???") + ", timeperframe=2158018787/2158018788" + ", extendedmode=0x80a0c0e5, writebuffers=2158018790}"; + + ioctl(-1, sparm_cmds[i].val, sparm); + printf("ioctl(-1, %s, {type=" + XLAT_KNOWN(0x2, "V4L2_BUF_TYPE_VIDEO_OUTPUT") + ", %s}%s%s%s) = %ld (INJECTED)\n", + sprintxlat(sparm_cmds[i].str, sparm_cmds[i].val, NULL), + parm_str3, + sparm_cmds[i].val == VIDIOC_S_PARM ? " => {" : "", + sparm_cmds[i].val == VIDIOC_S_PARM ? parm_str3 : "", + sparm_cmds[i].val == VIDIOC_S_PARM ? "}" : "", + inject_retval); + + } + + + /* VIDIOC_G_STD, VIDIOC_S_STD */ + static const struct strval32 stdid_cmds[] = { + { ARG_STR(VIDIOC_G_STD) }, + { ARG_STR(VIDIOC_S_STD) }, + }; + static const struct strval64 stdids[] = { + { ARG_STR(0) }, + { ARG_STR(0x1) }, + { ARG_STR(0xb000) }, + { ARG_STR(0x3ffffff) }, + { ARG_STR(0xffffffff) }, + { ARG_ULL_STR(0xbadc0deddeadface) }, + }; + + v4l2_std_id *stdid = tail_alloc(sizeof(*stdid)); + + for (size_t i = 0; i < ARRAY_SIZE(stdid_cmds); i++) { + ioctl(-1, stdid_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(stdid_cmds[i].str, stdid_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, stdid_cmds[i].val, (char *) stdid + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(stdid_cmds[i].str, stdid_cmds[i].val, NULL), + (char *) stdid + 1, inject_retval); + + for (size_t j = 0; j < ARRAY_SIZE(stdids); j++) { + *stdid = stdids[j].val; + + ioctl(-1, stdid_cmds[i].val, stdid); + printf("ioctl(-1, %s, [%s]) = %ld (INJECTED)\n", + sprintxlat(stdid_cmds[i].str, stdid_cmds[i].val, NULL), + stdids[j].str, inject_retval); + + } + } + + + /* VIDIOC_ENUMSTD */ + struct v4l2_standard *std = tail_alloc(sizeof(*std)); + + ioctl(-1, VIDIOC_ENUMSTD, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUMSTD), inject_retval); + + ioctl(-1, VIDIOC_ENUMSTD, (char *) std + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUMSTD), (char *) std + 1, inject_retval); + + for (size_t i = 0; i < ARRAY_SIZE(stdids); i++) { + fill_memory32(&std->frameperiod, sizeof(*std) - + offsetof(struct v4l2_standard, frameperiod)); + fill_memory_ex(std->name, sizeof(std->name), i * 47 + 1, 255); + std->index = 0xdeadface; + std->id = stdids[i].val; + + ioctl(-1, VIDIOC_ENUMSTD, std); + printf("ioctl(-1, %s, {index=3735943886, name=", + XLAT_STR(VIDIOC_ENUMSTD)); + print_quoted_cstring((char *) std->name, sizeof(std->name)); + printf(", frameperiod=2158018784/2158018785" + ", framelines=2158018786}) = %ld (INJECTED)\n", + inject_retval); + } + + + /* VIDIOC_ENUMINPUT */ + static const struct strval32 input_types[] = { + { ARG_XLAT_UNKNOWN(0, "V4L2_INPUT_TYPE_???") }, + { V4L2_INPUT_TYPE_TUNER, + XLAT_KNOWN(0x1, "V4L2_INPUT_TYPE_TUNER") }, + { V4L2_INPUT_TYPE_CAMERA, + XLAT_KNOWN(0x2, "V4L2_INPUT_TYPE_CAMERA") }, + { ARG_XLAT_UNKNOWN(0x4, "V4L2_INPUT_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0xdeadc0de, "V4L2_INPUT_TYPE_???") }, + }; + + struct v4l2_input *input = tail_alloc(sizeof(*input)); + + ioctl(-1, VIDIOC_ENUMINPUT, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUMINPUT), inject_retval); + + ioctl(-1, VIDIOC_ENUMINPUT, (char *) input + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUMINPUT), (char *) input + 1, inject_retval); + + for (size_t i = 0; i < ARRAY_SIZE(stdids); i++) { + for (size_t j = 0; j < ARRAY_SIZE(input_types); j++) { + fill_memory32(input, sizeof(*input)); + fill_memory_ex(input->name, sizeof(input->name), + i * 47 + 13, 255); + input->type = input_types[j].val; + input->std = stdids[i].val; + + ioctl(-1, VIDIOC_ENUMINPUT, input); + printf("ioctl(-1, %s, {index=2158018784, name=", + XLAT_STR(VIDIOC_ENUMINPUT)); + print_quoted_cstring((char *) input->name, + sizeof(input->name)); + printf(", type=%s}) = %ld (INJECTED)\n", + input_types[j].str, inject_retval); + } + } + + + /* VIDIOC_G_CTRL, VIDIOC_S_CTRL */ + static const struct strval32 ctrl_cmds[] = { + { ARG_STR(VIDIOC_G_CTRL) }, + { ARG_STR(VIDIOC_S_CTRL) }, + }; + + struct v4l2_control *ctrl = tail_alloc(sizeof(*ctrl)); + + for (size_t i = 0; i < ARRAY_SIZE(ctrl_cmds); i++) { + ioctl(-1, ctrl_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(ctrl_cmds[i].str, ctrl_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, ctrl_cmds[i].val, (char *) ctrl + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(ctrl_cmds[i].str, ctrl_cmds[i].val, NULL), + (char *) ctrl + 1, inject_retval); + + /* NB: cid printing is mostly tested in ioctl_v4l2.c */ + fill_memory32(ctrl, sizeof(*ctrl)); + ioctl(-1, ctrl_cmds[i].val, ctrl); + printf("ioctl(-1, %s, {id=0x80a0c0e0" + NRAW(" /* V4L2_CID_??? */") + ", value=-2136948511%s}) = %ld (INJECTED)\n", + sprintxlat(ctrl_cmds[i].str, ctrl_cmds[i].val, NULL), + ctrl_cmds[i].val == VIDIOC_S_CTRL + ? " => -2136948511" : "", + inject_retval); + } + + + /* VIDIOC_G_TUNER, VIDIOC_S_TUNER */ + static const struct strval32 tuner_cmds[] = { + { ARG_STR(VIDIOC_G_TUNER) }, + { ARG_STR(VIDIOC_S_TUNER) }, + }; + static const struct strval32 tuner_types[] = { + { ARG_XLAT_UNKNOWN(0, "V4L2_TUNER_???") }, + { ARG_XLAT_KNOWN(0x1, "V4L2_TUNER_RADIO") }, + { ARG_XLAT_KNOWN(0x5, "V4L2_TUNER_RF") }, + { ARG_XLAT_UNKNOWN(0x6, "V4L2_TUNER_???") }, + { ARG_XLAT_UNKNOWN(0xdeadc0de, "V4L2_TUNER_???") }, + }; + static const struct strval32 tuner_caps[] = { + { ARG_STR(0) }, + { ARG_XLAT_KNOWN(0x1fff, "V4L2_TUNER_CAP_LOW" + "|V4L2_TUNER_CAP_NORM" + "|V4L2_TUNER_CAP_HWSEEK_BOUNDED" + "|V4L2_TUNER_CAP_HWSEEK_WRAP" + "|V4L2_TUNER_CAP_STEREO|V4L2_TUNER_CAP_LANG2" + "|V4L2_TUNER_CAP_LANG1|V4L2_TUNER_CAP_RDS" + "|V4L2_TUNER_CAP_RDS_BLOCK_IO" + "|V4L2_TUNER_CAP_RDS_CONTROLS" + "|V4L2_TUNER_CAP_FREQ_BANDS" + "|V4L2_TUNER_CAP_HWSEEK_PROG_LIM" + "|V4L2_TUNER_CAP_1HZ") }, + { ARG_XLAT_KNOWN(0xdeadc0de, "V4L2_TUNER_CAP_NORM" + "|V4L2_TUNER_CAP_HWSEEK_BOUNDED" + "|V4L2_TUNER_CAP_HWSEEK_WRAP" + "|V4L2_TUNER_CAP_STEREO|V4L2_TUNER_CAP_LANG1" + "|V4L2_TUNER_CAP_RDS|0xdeadc000") }, + { ARG_XLAT_UNKNOWN(0xffffe000, "V4L2_TUNER_CAP_???") }, + }; + static const struct strval32 tuner_rxsc[] = { + { ARG_STR(0) }, + { ARG_XLAT_KNOWN(0x1f, "V4L2_TUNER_SUB_MONO" + "|V4L2_TUNER_SUB_STEREO|V4L2_TUNER_SUB_LANG2" + "|V4L2_TUNER_SUB_LANG1|V4L2_TUNER_SUB_RDS") }, + { ARG_XLAT_KNOWN(0xbeefface, "V4L2_TUNER_SUB_STEREO" + "|V4L2_TUNER_SUB_LANG2|V4L2_TUNER_SUB_LANG1" + "|0xbeeffac0") }, + { ARG_XLAT_UNKNOWN(0xffffffe0, "V4L2_TUNER_SUB_???") }, + + }; + static const struct strval32 tuner_amodes[] = { + { ARG_XLAT_KNOWN(0, "V4L2_TUNER_MODE_MONO") }, + { ARG_XLAT_KNOWN(0x2, "V4L2_TUNER_MODE_LANG2") }, + { ARG_XLAT_KNOWN(0x4, "V4L2_TUNER_MODE_LANG1_LANG2") }, + { ARG_XLAT_UNKNOWN(0x5, "V4L2_TUNER_MODE_???") }, + { ARG_XLAT_UNKNOWN(0xcaffeeed, "V4L2_TUNER_MODE_???") }, + }; + static const size_t tuner_iters = MAX(MAX(MAX(ARRAY_SIZE(tuner_types), + ARRAY_SIZE(tuner_caps)), + ARRAY_SIZE(tuner_rxsc)), + ARRAY_SIZE(tuner_amodes)); + + struct v4l2_tuner *tuner = tail_alloc(sizeof(*tuner)); + + for (size_t i = 0; i < ARRAY_SIZE(tuner_cmds); i++) { + ioctl(-1, tuner_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(tuner_cmds[i].str, tuner_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, tuner_cmds[i].val, (char *) tuner + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(tuner_cmds[i].str, tuner_cmds[i].val, NULL), + (char *) tuner + 1, inject_retval); + + for (size_t j = 0; j < tuner_iters; j++) { + fill_memory32(tuner, sizeof(*tuner)); + fill_memory_ex(tuner->name, sizeof(tuner->name), + j * 47 + 7, 255); + tuner->type = + tuner_types[j % ARRAY_SIZE(tuner_types)].val; + tuner->capability = + tuner_caps[j % ARRAY_SIZE(tuner_caps)].val; + tuner->rxsubchans = + tuner_rxsc[j % ARRAY_SIZE(tuner_rxsc)].val; + tuner->audmode = + tuner_amodes[j % ARRAY_SIZE(tuner_amodes)].val; + + ioctl(-1, tuner_cmds[i].val, tuner); + printf("ioctl(-1, %s, {index=2158018784", + sprintxlat(tuner_cmds[i].str, + tuner_cmds[i].val, NULL)); + for (size_t k = 0; + k < (tuner_cmds[i].val == VIDIOC_S_TUNER ? 2 : 1); + k++) { + printf("%sname=", k ? "} => {" : ", "); + print_quoted_cstring((char *) tuner->name, + sizeof(tuner->name)); + printf(", type=%s, capability=%s" + ", rangelow=2158018795" + ", rangehigh=2158018796, rxsubchans=%s" + ", audmode=%s, signal=-2136948497" + ", afc=-2136948496", + tuner_types[j % + ARRAY_SIZE(tuner_types)].str, + tuner_caps[j % + ARRAY_SIZE(tuner_caps)].str, + tuner_rxsc[j % + ARRAY_SIZE(tuner_rxsc)].str, + tuner_amodes[j % + ARRAY_SIZE(tuner_amodes)].str); + } + printf("}) = %ld (INJECTED)\n", inject_retval); + } + } + + + /* VIDIOC_QUERYCTRL */ + static const struct strval32 cids[] = { + { ARG_XLAT_UNKNOWN(0, "V4L2_CID_???") }, + { ARG_XLAT_UNKNOWN(0x97abcd, "V4L2_CID_???") }, + { ARG_XLAT_KNOWN(0x980000, "V4L2_CTRL_CLASS_USER+0") }, + { ARG_XLAT_KNOWN(0x990a64, + "V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE") }, + { ARG_XLAT_KNOWN(0xa31234, "V4L2_CTRL_CLASS_DETECT+0x1234") }, + { ARG_XLAT_UNKNOWN(0xa40000, "V4L2_CID_???") }, + { 0xdeadc0de, +#if XLAT_RAW + "0xdeadc0de" +#else + XLAT_KNOWN(0xc0000000, "V4L2_CTRL_FLAG_NEXT_CTRL" + "|V4L2_CTRL_FLAG_NEXT_COMPOUND") + "|0x1eadc0de /* V4L2_CID_??? */" +#endif + }, + }; + static const struct strval32 ctrl_types[] = { + { ARG_XLAT_UNKNOWN(0, "V4L2_CTRL_TYPE_???") }, + { ARG_XLAT_KNOWN(0x1, "V4L2_CTRL_TYPE_INTEGER") }, + { ARG_XLAT_KNOWN(0x2, "V4L2_CTRL_TYPE_BOOLEAN") }, + { ARG_XLAT_KNOWN(0x3, "V4L2_CTRL_TYPE_MENU") }, + { ARG_XLAT_KNOWN(0x4, "V4L2_CTRL_TYPE_BUTTON") }, + { ARG_XLAT_KNOWN(0x5, "V4L2_CTRL_TYPE_INTEGER64") }, + { ARG_XLAT_KNOWN(0x6, "V4L2_CTRL_TYPE_CTRL_CLASS") }, + { ARG_XLAT_KNOWN(0x7, "V4L2_CTRL_TYPE_STRING") }, + { ARG_XLAT_KNOWN(0x8, "V4L2_CTRL_TYPE_BITMASK") }, + { ARG_XLAT_KNOWN(0x9, "V4L2_CTRL_TYPE_INTEGER_MENU") }, + { ARG_XLAT_UNKNOWN(0xa, "V4L2_CTRL_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0xff, "V4L2_CTRL_TYPE_???") }, + { ARG_XLAT_KNOWN(0x100, "V4L2_CTRL_TYPE_U8") }, + { ARG_XLAT_KNOWN(0x101, "V4L2_CTRL_TYPE_U16") }, + { ARG_XLAT_KNOWN(0x102, "V4L2_CTRL_TYPE_U32") }, + { ARG_XLAT_UNKNOWN(0x103, "V4L2_CTRL_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0x104, "V4L2_CTRL_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0x105, "V4L2_CTRL_TYPE_???") }, + { ARG_XLAT_KNOWN(0x106, "V4L2_CTRL_TYPE_AREA") }, + { ARG_XLAT_UNKNOWN(0x107, "V4L2_CTRL_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0xdeadc0de, "V4L2_CTRL_TYPE_???") }, + }; + static const struct strval32 ctrl_flags[] = { + { ARG_STR(0) }, + { ARG_XLAT_KNOWN(0x7ff, "V4L2_CTRL_FLAG_DISABLED" + "|V4L2_CTRL_FLAG_GRABBED" + "|V4L2_CTRL_FLAG_READ_ONLY" + "|V4L2_CTRL_FLAG_UPDATE" + "|V4L2_CTRL_FLAG_INACTIVE" + "|V4L2_CTRL_FLAG_SLIDER" + "|V4L2_CTRL_FLAG_WRITE_ONLY" + "|V4L2_CTRL_FLAG_VOLATILE" + "|V4L2_CTRL_FLAG_HAS_PAYLOAD" + "|V4L2_CTRL_FLAG_EXECUTE_ON_WRITE" + "|V4L2_CTRL_FLAG_MODIFY_LAYOUT") }, + { ARG_XLAT_KNOWN(0xbeefface, "V4L2_CTRL_FLAG_GRABBED" + "|V4L2_CTRL_FLAG_READ_ONLY" + "|V4L2_CTRL_FLAG_UPDATE" + "|V4L2_CTRL_FLAG_WRITE_ONLY" + "|V4L2_CTRL_FLAG_VOLATILE" + "|V4L2_CTRL_FLAG_EXECUTE_ON_WRITE" + "|0xbeeff800") }, + { ARG_XLAT_UNKNOWN(0xfffff800, "V4L2_CTRL_FLAG_???") }, + }; + static const size_t qctrl_iters = MAX(MAX(ARRAY_SIZE(cids), + ARRAY_SIZE(ctrl_types)), + ARRAY_SIZE(ctrl_flags)); + + struct v4l2_queryctrl *qctrl = tail_alloc(sizeof(*qctrl)); + + ioctl(-1, VIDIOC_QUERYCTRL, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_QUERYCTRL), inject_retval); + + ioctl(-1, VIDIOC_QUERYCTRL, (char *) qctrl + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_QUERYCTRL), (char *) qctrl + 1, inject_retval); + + for (size_t i = 0; i < qctrl_iters; i++) { + fill_memory32(qctrl, sizeof(*qctrl)); + fill_memory_ex(qctrl->name, sizeof(qctrl->name), + i * 47 + 5, 255); + qctrl->id = cids[i % ARRAY_SIZE(cids)].val; + qctrl->type = ctrl_types[i % ARRAY_SIZE(ctrl_types)].val; + qctrl->flags = ctrl_flags[i % ARRAY_SIZE(ctrl_flags)].val; + + if (i % 2) + memset(qctrl->reserved, 0, sizeof(qctrl->reserved)); + + ioctl(-1, VIDIOC_QUERYCTRL, qctrl); + printf("ioctl(-1, %s, {id=%s, type=%s, name=", + XLAT_STR(VIDIOC_QUERYCTRL), + cids[i % ARRAY_SIZE(cids)].str, + ctrl_types[i % ARRAY_SIZE(ctrl_types)].str); + print_quoted_cstring((char *) qctrl->name, sizeof(qctrl->name)); +#if VERBOSE + printf(", minimum=-2136948502, maximum=-2136948501" + ", step=-2136948500, default_value=-2136948499" + ", flags=%s%s", + ctrl_flags[i % ARRAY_SIZE(ctrl_flags)].str, + i % 2 ? "" : ", reserved=[0x80a0c0ef, 0x80a0c0f0]"); +#else + printf(", ..."); +#endif + printf("}) = %ld (INJECTED)\n", inject_retval); + } + + + /* VIDIOC_G_INPUT, VIDIOC_S_INPUT */ + static const struct strval32 input_cmds[] = { + { ARG_STR(VIDIOC_G_INPUT) }, + { ARG_STR(VIDIOC_S_INPUT) }, + }; + static const struct strval32 inputids[] = { + { ARG_STR(0) }, + { ARG_STR(1) }, + { ARG_STR(1578221295) }, + { ARG_STR(31415926) }, + { ARG_STR(4294967295) }, + }; + + int *inputid = tail_alloc(sizeof(*inputid)); + + for (size_t i = 0; i < ARRAY_SIZE(input_cmds); i++) { + ioctl(-1, input_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(input_cmds[i].str, input_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, input_cmds[i].val, (char *) inputid + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(input_cmds[i].str, input_cmds[i].val, NULL), + (char *) inputid + 1, inject_retval); + + for (size_t j = 0; j < ARRAY_SIZE(inputids); j++) { + *inputid = inputids[j].val; + + ioctl(-1, input_cmds[i].val, inputid); + printf("ioctl(-1, %s, [%s]) = %ld (INJECTED)\n", + sprintxlat(input_cmds[i].str, input_cmds[i].val, + NULL), + inputids[j].str, inject_retval); + + } + } + + + /* VIDIOC_CROPCAP */ + struct v4l2_cropcap *ccap = tail_alloc(sizeof(*ccap)); + + fill_memory32(ccap, sizeof(*ccap)); + + ioctl(-1, VIDIOC_CROPCAP, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_CROPCAP), inject_retval); + + ioctl(-1, VIDIOC_CROPCAP, (char *) ccap + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_CROPCAP), (char *) ccap + 1, inject_retval); + + for (size_t i = 0; i < ARRAY_SIZE(buf_types); i++) { + ccap->type = buf_types[i].val; + + ioctl(-1, VIDIOC_CROPCAP, ccap); + printf("ioctl(-1, %s, {type=%s" + ", bounds={left=-2136948511, top=-2136948510" + ", width=2158018787, height=2158018788}" + ", defrect={left=-2136948507, top=-2136948506" + ", width=2158018791, height=2158018792}" + ", pixelaspect=2158018793/2158018794})" + " = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_CROPCAP), + buf_types[i].str, inject_retval); + } + + + /* VIDIOC_G_CROP, VIDIOC_S_CROP */ + static const struct strval32 crop_cmds[] = { + { ARG_STR(VIDIOC_G_CROP) }, + { ARG_STR(VIDIOC_S_CROP) }, + }; + struct v4l2_crop *crop = tail_alloc(sizeof(*crop)); + + for (size_t i = 0; i < ARRAY_SIZE(crop_cmds); i++) { + fill_memory32(crop, sizeof(*crop)); + + ioctl(-1, crop_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(crop_cmds[i].str, crop_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, crop_cmds[i].val, (char *) crop + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(crop_cmds[i].str, crop_cmds[i].val, NULL), + (char *) crop + 1, inject_retval); + + for (size_t j = 0; j < ARRAY_SIZE(buf_types); j++) { + crop->type = buf_types[j].val; + + ioctl(-1, crop_cmds[i].val, crop); + printf("ioctl(-1, %s, {type=%s, c={left=-2136948511" + ", top=-2136948510, width=2158018787" + ", height=2158018788}}) = %ld (INJECTED)\n", + sprintxlat(crop_cmds[i].str, crop_cmds[i].val, + NULL), + buf_types[j].str, inject_retval); + } + } + + +#ifdef VIDIOC_S_EXT_CTRLS + /* VIDIOC_S_EXT_CTRLS, VIDIOC_TRY_EXT_CTRLS, VIDIOC_G_EXT_CTRLS */ + static const struct strval32 ectrl_cmds[] = { + { ARG_STR(VIDIOC_S_EXT_CTRLS) }, + { ARG_STR(VIDIOC_TRY_EXT_CTRLS) }, + { ARG_STR(VIDIOC_G_EXT_CTRLS) }, + }; + /* static const struct strval32 ectrl_which = { + }; */ + + struct v4l2_ext_controls *ectrls = tail_alloc(sizeof(*ectrls)); + /* struct v4l2_ext_control *ectrl = tail_alloc(sizeof(*ectrl) * 2); */ + + for (size_t i = 0; i < ARRAY_SIZE(ectrl_cmds); i++) { + fill_memory32(ectrls, sizeof(*ectrls)); + + ioctl(-1, ectrl_cmds[i].val, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + sprintxlat(ectrl_cmds[i].str, ectrl_cmds[i].val, NULL), + inject_retval); + + ioctl(-1, ectrl_cmds[i].val, (char *) ectrls + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + sprintxlat(ectrl_cmds[i].str, ectrl_cmds[i].val, NULL), + (char *) ectrls + 1, inject_retval); + } + +#endif /* VIDIOC_S_EXT_CTRLS */ + + +#ifdef HAVE_STRUCT_V4L2_FRMSIZEENUM + /* VIDIOC_ENUM_FRAMESIZES */ + static const struct strval32 frmsz_simple_types[] = { + { ARG_XLAT_UNKNOWN(0, "V4L2_FRMSIZE_TYPE_???") }, + { ARG_XLAT_KNOWN(0x2, "V4L2_FRMSIZE_TYPE_CONTINUOUS") }, + { ARG_XLAT_UNKNOWN(0x4, "V4L2_FRMSIZE_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0xdeadf157, "V4L2_FRMSIZE_TYPE_???") }, + }; + + struct v4l2_frmsizeenum *fse = tail_alloc(sizeof(*fse)); + + ioctl(-1, VIDIOC_ENUM_FRAMESIZES, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMESIZES), inject_retval); + + ioctl(-1, VIDIOC_ENUM_FRAMESIZES, (char *) fse + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMESIZES), (char *) fse + 1, + inject_retval); + + fill_memory32(fse, sizeof(*fse)); + fse->type = V4L2_FRMSIZE_TYPE_DISCRETE; + + ioctl(-1, VIDIOC_ENUM_FRAMESIZES, fse); + printf("ioctl(-1, %s, {index=2158018784, pixel_format=" + RAW("0x80a0c0e1") + NRAW("v4l2_fourcc('\\xe1', '\\xc0', '\\xa0', '\\x80')") + ", type=" XLAT_KNOWN(0x1, "V4L2_FRMSIZE_TYPE_DISCRETE") + ", discrete={width=2158018787, height=2158018788}" + "}) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMESIZES), inject_retval); + + fse->pixel_format = 0x5c22270d; + fse->type = V4L2_FRMSIZE_TYPE_STEPWISE; + + ioctl(-1, VIDIOC_ENUM_FRAMESIZES, fse); + printf("ioctl(-1, %s, {index=2158018784, pixel_format=" + RAW("0x5c22270d") + NRAW("v4l2_fourcc('\\x0d', '\\\'', '\"', '\\\\')") + ", type=" XLAT_KNOWN(0x3, "V4L2_FRMSIZE_TYPE_STEPWISE") + ", stepwise={min_width=2158018787, max_width=2158018788" + ", step_width=2158018789, min_height=2158018790" + ", max_height=2158018791, step_height=2158018792}" + "}) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMESIZES), inject_retval); + + for (size_t i = 0; i < ARRAY_SIZE(frmsz_simple_types); i++) { + fill_memory32(fse, sizeof(*fse)); + fse->type = frmsz_simple_types[i].val; + + ioctl(-1, VIDIOC_ENUM_FRAMESIZES, fse); + printf("ioctl(-1, %s, {index=2158018784, pixel_format=" + RAW("0x80a0c0e1") + NRAW("v4l2_fourcc('\\xe1', '\\xc0', '\\xa0', '\\x80')") + ", type=%s}) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMESIZES), + frmsz_simple_types[i].str, inject_retval); + + } +#endif /* HAVE_STRUCT_V4L2_FRMSIZEENUM */ + + +#ifdef HAVE_STRUCT_V4L2_FRMIVALENUM + /* VIDIOC_ENUM_FRAMEINTERVALS */ + static const struct strval32 frmival_simple_types[] = { + { ARG_XLAT_UNKNOWN(0, "V4L2_FRMIVAL_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0x4, "V4L2_FRMIVAL_TYPE_???") }, + { ARG_XLAT_UNKNOWN(0xdeadf157, "V4L2_FRMIVAL_TYPE_???") }, + }; + static const struct strval32 frmival_step_types[] = { + { ARG_XLAT_KNOWN(0x2, "V4L2_FRMIVAL_TYPE_CONTINUOUS") }, + { ARG_XLAT_KNOWN(0x3, "V4L2_FRMIVAL_TYPE_STEPWISE") }, + }; + + struct v4l2_frmivalenum *fie = tail_alloc(sizeof(*fie)); + + ioctl(-1, VIDIOC_ENUM_FRAMEINTERVALS, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMEINTERVALS), inject_retval); + + ioctl(-1, VIDIOC_ENUM_FRAMEINTERVALS, (char *) fie + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMEINTERVALS), (char *) fie + 1, + inject_retval); + + fill_memory32(fie, sizeof(*fie)); + fie->type = V4L2_FRMIVAL_TYPE_DISCRETE; + + ioctl(-1, VIDIOC_ENUM_FRAMEINTERVALS, fie); + printf("ioctl(-1, %s, {index=2158018784, pixel_format=" + RAW("0x80a0c0e1") + NRAW("v4l2_fourcc('\\xe1', '\\xc0', '\\xa0', '\\x80')") + ", width=2158018786, height=2158018787" + ", type=" XLAT_KNOWN(0x1, "V4L2_FRMIVAL_TYPE_DISCRETE") + ", discrete=2158018789/2158018790}) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMEINTERVALS), inject_retval); + + fie->pixel_format = 0x5c22270d; + + for (size_t i = 0; i < ARRAY_SIZE(frmival_step_types); i++) { + fie->type = frmival_step_types[i].val; + + ioctl(-1, VIDIOC_ENUM_FRAMEINTERVALS, fie); + printf("ioctl(-1, %s, {index=2158018784, pixel_format=" + RAW("0x5c22270d") + NRAW("v4l2_fourcc('\\x0d', '\\\'', '\"', '\\\\')") + ", width=2158018786, height=2158018787, type=%s" + ", stepwise={min=2158018789/2158018790" + ", max=2158018791/2158018792" + ", step=2158018793/2158018794}}) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMEINTERVALS), + frmival_step_types[i].str, inject_retval); + } + + for (size_t i = 0; i < ARRAY_SIZE(frmival_simple_types); i++) { + fill_memory32(fie, sizeof(*fie)); + fie->type = frmival_simple_types[i].val; + + ioctl(-1, VIDIOC_ENUM_FRAMEINTERVALS, fie); + printf("ioctl(-1, %s, {index=2158018784, pixel_format=" + RAW("0x80a0c0e1") + NRAW("v4l2_fourcc('\\xe1', '\\xc0', '\\xa0', '\\x80')") + ", width=2158018786, height=2158018787, type=%s})" + " = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_ENUM_FRAMEINTERVALS), + frmival_simple_types[i].str, inject_retval); + + } +#endif /* HAVE_STRUCT_V4L2_FRMIVALENUM */ + + +#ifdef HAVE_STRUCT_V4L2_CREATE_BUFFERS + /* VIDIOC_CREATE_BUFS */ + struct v4l2_create_buffers *cbuf = tail_alloc(sizeof(*cbuf)); + + fill_memory32(cbuf, sizeof(*cbuf)); + + ioctl(-1, VIDIOC_CREATE_BUFS, 0); + printf("ioctl(-1, %s, NULL) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_CREATE_BUFS), inject_retval); + + ioctl(-1, VIDIOC_CREATE_BUFS, (char *) cbuf + 1); + printf("ioctl(-1, %s, %p) = %ld (INJECTED)\n", + XLAT_STR(VIDIOC_CREATE_BUFS), (char *) cbuf + 1, inject_retval); + + for (size_t i = 0; i < MAX(ARRAY_SIZE(buf_types), + ARRAY_SIZE(reqb_mems)); i++) { + cbuf->memory = reqb_mems[i % ARRAY_SIZE(reqb_mems)].val; + cbuf->format.type = buf_types[i % ARRAY_SIZE(buf_types)].val; + if (!fill_fmt(&cbuf->format)) + continue; + + ioctl(-1, VIDIOC_CREATE_BUFS, cbuf); + printf("ioctl(-1, %s, {count=2158018785, memory=%s" + ", format={type=%s", + XLAT_STR(VIDIOC_CREATE_BUFS), + reqb_mems[i % ARRAY_SIZE(reqb_mems)].str, + buf_types[i % ARRAY_SIZE(buf_types)].str); + print_fmt(", ", &cbuf->format); + printf("}}) = %ld ({index=2158018784, count=2158018785})" + " (INJECTED)\n", inject_retval); + } +#endif /* HAVE_STRUCT_V4L2_CREATE_BUFFERS */ + + puts("+++ exited with 0 +++"); + + return 0; +} diff --git a/tests/ioctl_v4l2-success.gen.test b/tests/ioctl_v4l2-success.gen.test new file mode 100755 index 00000000..90376491 --- /dev/null +++ b/tests/ioctl_v4l2-success.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-success +ioctl-success.sh -a29); do not edit. +set -- -a29 +. "${srcdir=.}/ioctl-success.sh" diff --git a/tests/ioctl_v4l2-v-Xabbrev.c b/tests/ioctl_v4l2-v-Xabbrev.c new file mode 100644 index 00000000..3e40ce38 --- /dev/null +++ b/tests/ioctl_v4l2-v-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "ioctl_v4l2-v.c" diff --git a/tests/ioctl_v4l2-v-Xabbrev.gen.test b/tests/ioctl_v4l2-v-Xabbrev.gen.test new file mode 100755 index 00000000..64f2eacb --- /dev/null +++ b/tests/ioctl_v4l2-v-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-v-Xabbrev +ioctl.test -v -Xabbrev); do not edit. +set -- -v -Xabbrev +. "${srcdir=.}/ioctl.test" diff --git a/tests/ioctl_v4l2-v-Xraw.c b/tests/ioctl_v4l2-v-Xraw.c new file mode 100644 index 00000000..42d6610a --- /dev/null +++ b/tests/ioctl_v4l2-v-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "ioctl_v4l2-v.c" diff --git a/tests/ioctl_v4l2-v-Xraw.gen.test b/tests/ioctl_v4l2-v-Xraw.gen.test new file mode 100755 index 00000000..8fb58831 --- /dev/null +++ b/tests/ioctl_v4l2-v-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-v-Xraw +ioctl.test -v -Xraw); do not edit. +set -- -v -Xraw +. "${srcdir=.}/ioctl.test" diff --git a/tests/ioctl_v4l2-v-Xverbose.c b/tests/ioctl_v4l2-v-Xverbose.c new file mode 100644 index 00000000..6230f9a1 --- /dev/null +++ b/tests/ioctl_v4l2-v-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "ioctl_v4l2-v.c" diff --git a/tests/ioctl_v4l2-v-Xverbose.gen.test b/tests/ioctl_v4l2-v-Xverbose.gen.test new file mode 100755 index 00000000..72dcde68 --- /dev/null +++ b/tests/ioctl_v4l2-v-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-v-Xverbose +ioctl.test -v -Xverbose); do not edit. +set -- -v -Xverbose +. "${srcdir=.}/ioctl.test" diff --git a/tests/ioctl_v4l2-v.c b/tests/ioctl_v4l2-v.c new file mode 100644 index 00000000..dcb6c24d --- /dev/null +++ b/tests/ioctl_v4l2-v.c @@ -0,0 +1,3 @@ +/* This file is part of ioctl_v4l2-v strace test. */ +#define VERBOSE 1 +#include "ioctl_v4l2.c" diff --git a/tests/ioctl_v4l2-v.gen.test b/tests/ioctl_v4l2-v.gen.test new file mode 100755 index 00000000..c5fe341d --- /dev/null +++ b/tests/ioctl_v4l2-v.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_v4l2-v +ioctl.test -v); do not edit. +set -- -v +. "${srcdir=.}/ioctl.test" diff --git a/tests/ioctl_v4l2.c b/tests/ioctl_v4l2.c index 54e9ee7c..c52798a4 100644 --- a/tests/ioctl_v4l2.c +++ b/tests/ioctl_v4l2.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -8,11 +8,23 @@ #include "tests.h" #include +#include #include #include #include -#include -#include +#include "kernel_v4l2_types.h" + +#define XLAT_MACROS_ONLY +# include "xlat/v4l2_ioctl_cmds.h" +#undef XLAT_MACROS_ONLY + +#ifndef V4L2_CTRL_FLAG_NEXT_CTRL +# define V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000 +#endif + +#ifndef V4L2_CTRL_CLASS_DETECT +# define V4L2_CTRL_CLASS_DETECT 0x00a30000 +#endif #define cc0(arg) ((unsigned int) (unsigned char) (arg)) #define cc1(arg) ((unsigned int) (unsigned char) ((unsigned int) (arg) >> 8)) @@ -70,8 +82,21 @@ init_v4l2_format(struct v4l2_format *const f, i < ARRAY_SIZE(f->fmt.pix_mp.plane_fmt); i++) { cur_pix[i].sizeimage = 0x1e3c531c | i; - cur_pix[i].bytesperline = 0xa983d721 | i; + if (sizeof(cur_pix[i].bytesperline) == + sizeof(uint32_t)) { + cur_pix[i].bytesperline = 0xa983d721 | i; + } else { +# if WORDS_BIGENDIAN + cur_pix[i].bytesperline = 0xa983; + cur_pix[i].reserved[0] = 0xd721 | i; +# else + cur_pix[i].bytesperline = 0xd721 | i; + cur_pix[i].reserved[0] = 0xa983; +# endif + } } + if (buf_type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) + f->fmt.pix_mp.num_planes = 1; break; } #endif @@ -85,10 +110,10 @@ init_v4l2_format(struct v4l2_format *const f, f->fmt.win.w.height = 0xbbd886c8; f->fmt.win.field = V4L2_FIELD_ANY; f->fmt.win.chromakey = 0xdb1f991f; - f->fmt.win.clipcount = 2; + f->fmt.win.clipcount = + buf_type == V4L2_BUF_TYPE_VIDEO_OVERLAY ? 3 : 2; f->fmt.win.clips = - tail_alloc(sizeof(*f->fmt.win.clips) * - f->fmt.win.clipcount); + tail_alloc(sizeof(*f->fmt.win.clips) * 2); f->fmt.win.clips[0].c.left = 0x3313d36e; f->fmt.win.clips[0].c.top = 0xcdffe510; f->fmt.win.clips[0].c.width = 0x2064f3a8; @@ -101,6 +126,9 @@ init_v4l2_format(struct v4l2_format *const f, f->fmt.win.bitmap = (void *) -2UL; #ifdef HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA f->fmt.win.global_alpha = 0xce; +#else + ((uint8_t *) &f->fmt.win)[offsetofend(struct v4l2_window, + bitmap)] = 0xce; #endif break; case V4L2_BUF_TYPE_VBI_CAPTURE: @@ -138,7 +166,12 @@ init_v4l2_format(struct v4l2_format *const f, case V4L2_BUF_TYPE_SDR_OUTPUT: f->fmt.sdr.pixelformat = sf_magic; # ifdef HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE - f->fmt.sdr.buffersize = 0x25afabfb; + if (sizeof(f->fmt.sdr.buffersize == sizeof(uint32_t))) + f->fmt.sdr.buffersize = 0x25afabfb; + else + ((uint32_t *) &f->fmt.sdr)[1] = 0x25afabfb; +# else + ((uint32_t *) &f->fmt.sdr)[1] = 0x25afabfb; # endif break; #endif @@ -155,8 +188,8 @@ init_v4l2_format(struct v4l2_format *const f, static void dprint_ioctl_v4l2(struct v4l2_format *const f, - const char *request, const unsigned int buf_type, - const char *buf_type_string) + XLAT_SEL(unsigned reqval, const char *reqstr), + const unsigned int buf_type, const char *buf_type_string) { int saved_errno; @@ -164,12 +197,16 @@ dprint_ioctl_v4l2(struct v4l2_format *const f, case V4L2_BUF_TYPE_VIDEO_CAPTURE: case V4L2_BUF_TYPE_VIDEO_OUTPUT: saved_errno = errno; - printf("ioctl(-1, %s, {type=%s" + printf("ioctl(-1, " XLAT_FMT ", {type=" XLAT_FMT ", fmt.pix={width=%u, height=%u, pixelformat=", - request, - buf_type_string, + XLAT_SEL(reqval, reqstr), + XLAT_SEL(buf_type, buf_type_string), f->fmt.pix.width, f->fmt.pix.height); +#if XLAT_RAW + printf("%#x", buf_type == V4L2_BUF_TYPE_VIDEO_CAPTURE + ? magic : pf_magic); +#else /* !XLAT_RAW */ if (buf_type == V4L2_BUF_TYPE_VIDEO_CAPTURE) printf("v4l2_fourcc('\\x%x', '\\x%x', '\\x%x', '\\x%x')", cc0(magic), cc1(magic), cc2(magic), cc3(magic)); @@ -178,12 +215,15 @@ dprint_ioctl_v4l2(struct v4l2_format *const f, "/* V4L2_PIX_FMT_SPCA508 */", cc0(pf_magic), cc1(pf_magic), cc2(pf_magic), cc3(pf_magic)); +#endif /* XLAT_RAW */ errno = saved_errno; - printf(", field=V4L2_FIELD_NONE, bytesperline=%u, sizeimage=%u" - ", colorspace=V4L2_COLORSPACE_JPEG}}) = -1 EBADF (%m)\n", + printf(", field=" XLAT_FMT ", bytesperline=%u, sizeimage=%u" + ", colorspace=" XLAT_FMT "}}) = -1 EBADF (%m)\n", + XLAT_ARGS(V4L2_FIELD_NONE), f->fmt.pix.bytesperline, - f->fmt.pix.sizeimage); + f->fmt.pix.sizeimage, + XLAT_ARGS(V4L2_COLORSPACE_JPEG)); break; #if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: @@ -191,13 +231,17 @@ dprint_ioctl_v4l2(struct v4l2_format *const f, unsigned int i; saved_errno = errno; - printf("ioctl(-1, %s" - ", {type=%s" + printf("ioctl(-1, " XLAT_FMT + ", {type=" XLAT_FMT ", fmt.pix_mp={width=%u, height=%u, pixelformat=", - request, - buf_type_string, + XLAT_SEL(reqval, reqstr), + XLAT_SEL(buf_type, buf_type_string), f->fmt.pix_mp.width, f->fmt.pix_mp.height); +# if XLAT_RAW + printf("%#x", buf_type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE + ? magic : pf_magic); +# else /* !XLAT_RAW */ if (buf_type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) printf("v4l2_fourcc('\\x%x', '\\x%x', '\\x%x', '\\x%x')", cc0(magic), cc1(magic), cc2(magic), cc3(magic)); @@ -206,21 +250,35 @@ dprint_ioctl_v4l2(struct v4l2_format *const f, "/* V4L2_PIX_FMT_SPCA508 */", cc0(pf_magic), cc1(pf_magic), cc2(pf_magic), cc3(pf_magic)); +# endif /* XLAT_RAW */ - printf(", field=V4L2_FIELD_NONE, colorspace=" - "V4L2_COLORSPACE_JPEG, plane_fmt=["); + printf(", field=" XLAT_FMT ", colorspace=" XLAT_FMT + ", plane_fmt=[", + XLAT_ARGS(V4L2_FIELD_NONE), + XLAT_ARGS(V4L2_COLORSPACE_JPEG)); for (i = 0; - i < ARRAY_SIZE(f->fmt.pix_mp.plane_fmt); + i < (buf_type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE + ? 1 : ARRAY_SIZE(f->fmt.pix_mp.plane_fmt)); ++i) { if (i) printf(", "); printf("{sizeimage=%u, bytesperline=%u}", f->fmt.pix_mp.plane_fmt[i].sizeimage, - f->fmt.pix_mp.plane_fmt[i].bytesperline); + sizeof(f->fmt.pix_mp.plane_fmt[i].bytesperline) == + sizeof(uint32_t) + ? f->fmt.pix_mp.plane_fmt[i].bytesperline : +# if WORDS_BIGENDIAN + (f->fmt.pix_mp.plane_fmt[i].bytesperline << 16) | + f->fmt.pix_mp.plane_fmt[i].reserved[0] +# else + f->fmt.pix_mp.plane_fmt[i].bytesperline | + (f->fmt.pix_mp.plane_fmt[i].reserved[0] << 16) +# endif + ); } errno = saved_errno; printf("], num_planes=%u}}) = -1 EBADF (%m)\n", - f->fmt.pix_mp.num_planes); + f->fmt.pix_mp.num_planes); break; } #endif @@ -228,20 +286,17 @@ dprint_ioctl_v4l2(struct v4l2_format *const f, case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY: #endif case V4L2_BUF_TYPE_VIDEO_OVERLAY: - printf("ioctl(-1, %s, {type=%s" + saved_errno = errno; + printf("ioctl(-1, " XLAT_FMT ", {type=" XLAT_FMT ", fmt.win={left=%d, top=%d, width=%u, height=%u" - ", field=V4L2_FIELD_ANY, chromakey=%#x, clips=" + ", field=" XLAT_FMT ", chromakey=%#x, clips=" "[{left=%d, top=%d, width=%u, height=%u}, " - "{left=%d, top=%d, width=%u, height=%u}]" - ", clipcount=%u, bitmap=%p" -#ifdef HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA - ", global_alpha=%#x" -#endif - "}}) = -1 EBADF (%m)\n", - request, - buf_type_string, + "{left=%d, top=%d, width=%u, height=%u}", + XLAT_SEL(reqval, reqstr), + XLAT_SEL(buf_type, buf_type_string), f->fmt.win.w.left, f->fmt.win.w.top, f->fmt.win.w.width, f->fmt.win.w.height, + XLAT_ARGS(V4L2_FIELD_ANY), f->fmt.win.chromakey, f->fmt.win.clips[0].c.left, f->fmt.win.clips[0].c.top, @@ -250,24 +305,37 @@ dprint_ioctl_v4l2(struct v4l2_format *const f, f->fmt.win.clips[1].c.left, f->fmt.win.clips[1].c.top, f->fmt.win.clips[1].c.width, - f->fmt.win.clips[1].c.height, - f->fmt.win.clipcount, f->fmt.win.bitmap + f->fmt.win.clips[1].c.height); + if (f->fmt.win.clipcount > 2) + printf(", ... /* %p */", f->fmt.win.clips + 2); + errno = saved_errno; + printf("], clipcount=%u, bitmap=%p" + ", global_alpha=%#x" + "}}) = -1 EBADF (%m)\n", + f->fmt.win.clipcount, f->fmt.win.bitmap, #ifdef HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA - , f->fmt.win.global_alpha + f->fmt.win.global_alpha +#else + ((uint8_t *) &f->fmt.win)[offsetofend(struct v4l2_window, + bitmap)] #endif ); break; case V4L2_BUF_TYPE_VBI_CAPTURE: case V4L2_BUF_TYPE_VBI_OUTPUT: saved_errno = errno; - printf("ioctl(-1, %s, {type=%s" + printf("ioctl(-1, " XLAT_FMT ", {type=" XLAT_FMT ", fmt.vbi={sampling_rate=%u, offset=%u" ", samples_per_line=%u, sample_format=", - request, - buf_type_string, + XLAT_SEL(reqval, reqstr), + XLAT_SEL(buf_type, buf_type_string), f->fmt.vbi.sampling_rate, f->fmt.vbi.offset, f->fmt.vbi.samples_per_line); +#if XLAT_RAW + printf("%#x", buf_type == V4L2_BUF_TYPE_VBI_CAPTURE + ? magic : pf_magic); +#else /* !XLAT_RAW */ if (buf_type == V4L2_BUF_TYPE_VBI_CAPTURE) printf("v4l2_fourcc('\\x%x', '\\x%x', '\\x%x', '\\x%x')", cc0(magic), cc1(magic), cc2(magic), cc3(magic)); @@ -276,24 +344,27 @@ dprint_ioctl_v4l2(struct v4l2_format *const f, "/* V4L2_PIX_FMT_SPCA508 */", cc0(pf_magic), cc1(pf_magic), cc2(pf_magic), cc3(pf_magic)); +#endif /* XLAT_RAW */ errno = saved_errno; - printf(", start=[%u, %u], count=[%u, %u]" - ", flags=V4L2_VBI_INTERLACED}})" + printf(", start=[%d, %d], count=[%u, %u]" + ", flags=" XLAT_FMT "}})" " = -1 EBADF (%m)\n", f->fmt.vbi.start[0], f->fmt.vbi.start[1], - f->fmt.vbi.count[0], f->fmt.vbi.count[1]); + f->fmt.vbi.count[0], f->fmt.vbi.count[1], + XLAT_ARGS(V4L2_VBI_INTERLACED)); break; #if HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: { unsigned int i, j; - printf("ioctl(-1, %s, {type=%s" - ", fmt.sliced={service_set=V4L2_SLICED_VPS" + printf("ioctl(-1, " XLAT_FMT ", {type=" XLAT_FMT + ", fmt.sliced={service_set=" XLAT_FMT ", io_size=%u, service_lines=[", - request, - buf_type_string, + XLAT_SEL(reqval, reqstr), + XLAT_SEL(buf_type, buf_type_string), + XLAT_ARGS(V4L2_SLICED_VPS), f->fmt.sliced.io_size); for (i = 0; i < ARRAY_SIZE(f->fmt.sliced.service_lines); @@ -321,30 +392,38 @@ dprint_ioctl_v4l2(struct v4l2_format *const f, #if HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE case V4L2_BUF_TYPE_SDR_CAPTURE: saved_errno = errno; - printf("ioctl(-1, %s, {type=%s" + printf("ioctl(-1, " XLAT_FMT ", {type=" XLAT_FMT ", fmt.sdr={pixelformat=", - request, - buf_type_string); + XLAT_SEL(reqval, reqstr), + XLAT_SEL(buf_type, buf_type_string)); +# if XLAT_RAW + if (buf_type == V4L2_BUF_TYPE_SDR_CAPTURE) + printf("%#x", magic); +# if HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT + else + printf("%#x", sf_magic); +# endif +# else /* !XLAT_RAW */ if (buf_type == V4L2_BUF_TYPE_SDR_CAPTURE) printf("v4l2_fourcc('\\x%x', '\\x%x', '\\x%x', '\\x%x')", cc0(magic), cc1(magic), cc2(magic), cc3(magic)); -# if HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT +# if HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT else printf("v4l2_fourcc('%c', '%c', '%c', '%c') " "/* V4L2_SDR_FMT_RU12LE */", cc0(sf_magic), cc1(sf_magic), cc2(sf_magic), cc3(sf_magic)); -# endif +# endif +# endif /* XLAT_RAW */ errno = saved_errno; - printf( -# ifdef HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE - ", buffersize=%u" -# endif - "}}) = -1 EBADF (%m)\n" + printf(", buffersize=%u}}) = -1 EBADF (%m)\n" # ifdef HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE - , f->fmt.sdr.buffersize + , sizeof(f->fmt.sdr.buffersize == sizeof(uint32_t)) + ? f->fmt.sdr.buffersize : ((uint32_t *) &f->fmt.sdr)[1] +# else + , ((uint32_t *) &f->fmt.sdr)[1] # endif ); break; @@ -352,7 +431,8 @@ dprint_ioctl_v4l2(struct v4l2_format *const f, } } #define print_ioctl_v4l2(v4l2_format, request, buf_type) \ - dprint_ioctl_v4l2((v4l2_format), (request), (buf_type), #buf_type) + dprint_ioctl_v4l2((v4l2_format), XLAT_SEL(request, #request), \ + (buf_type), #buf_type) int main(void) @@ -364,267 +444,559 @@ main(void) unsigned char cc[sizeof(int)] = { 'A', '\'', '\\', '\xfa' }; + /* Unknown */ + static const struct { + uint32_t flags; + const char *str; + } cmd_flags[] = { + { ARG_STR(_IOC_NONE) }, + { ARG_STR(_IOC_READ) }, + { ARG_STR(_IOC_WRITE) }, + { ARG_STR(_IOC_READ|_IOC_WRITE) }, + }; + static const uint8_t unknown_cmds[] = { + 1, 3, 6 /* VIDIOC_G_MPEGCOMP */, 7 /* VIDIOC_S_MPEGCOMP */, + 12, 13, 20, 31, 32, 35, 42, 43, 44, 45, 51, 52, 53, + 81 /* VIDIOC_G_CHIP_IDENT_OLD */, + 83 /* VIDIOC_ENUM_DV_PRESETS */, 84 /* VIDIOC_S_DV_PRESET */, + 85 /* VIDIOC_G_DV_PRESET */, 86 /* VIDIOC_QUERY_DV_PRESET */, + 104 /* 103 is the last existing */, 255 + }; + + for (size_t i = 0; i < ARRAY_SIZE(unknown_cmds); i++) { + /* Trying to hit common argument sizes */ + for (size_t j = 0; j < 256; j += 4) { + for (size_t k = 0; k < ARRAY_SIZE(cmd_flags); k++) { + uint32_t ioc = _IOC(cmd_flags[k].flags, 'V', + unknown_cmds[i], j); + /* + * Conflicts with VT* and VBG* ioctls + * that happen to also use 'V' command type. + */ + switch (ioc) { + /* VT_GETMODE */ + case _IOC(_IOC_NONE, 'V', 1, 0): + /* VT_GETSTATE */ + case _IOC(_IOC_NONE, 'V', 3, 0): + /* VBG_IOCTL_VMMDEV_REQUEST_BIG */ + case _IOC(_IOC_READ|_IOC_WRITE, 'V', 3, 0): + /* VT_ACTIVATE */ + case _IOC(_IOC_NONE, 'V', 6, 0): + /* VT_WAITACTIVE */ + case _IOC(_IOC_NONE, 'V', 7, 0): + /* VT_UNLOCKSWITCH */ + case _IOC(_IOC_NONE, 'V', 12, 0): + /* VBG_IOCTL_CHANGE_FILTER_MASK */ + case _IOC(_IOC_READ|_IOC_WRITE, 'V', 12, 32): + /* VT_GETHIFONTMASK */ + case _IOC(_IOC_NONE, 'V', 13, 0): + continue; + /* VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES */ + case _IOC(_IOC_READ|_IOC_WRITE, 'V', 13, 36): + continue; + } + + ioctl(-1, ioc, 0); + printf("ioctl(-1, " NABBR("%#x") VERB(" /* ") + NRAW("_IOC(%s, 0x56, %#x, %#zx)") + VERB(" */") ", 0) = -1 EBADF (%m)\n" +#if XLAT_RAW || XLAT_VERBOSE + , ioc +#endif +#if !XLAT_RAW + , cmd_flags[k].str, unknown_cmds[i], j +#endif + ); + + ioctl(-1, ioc, + (unsigned long) 0xbadc0deddeadc0deULL); + printf("ioctl(-1, " NABBR("%#x") VERB(" /* ") + NRAW("_IOC(%s, 0x56, %#x, %#zx)") + VERB(" */") ", %#lx) = -1 EBADF (%m)\n", +#if XLAT_RAW || XLAT_VERBOSE + ioc, +#endif +#if !XLAT_RAW + cmd_flags[k].str, unknown_cmds[i], j, +#endif + (unsigned long) 0xbadc0deddeadc0deULL); + } + } + } + + /* Decoding is not supported */ + static const struct { + uint32_t cmd; + const char *str; + } unsupp_cmds[] = { + { ARG_STR(VIDIOC_OVERLAY) }, +#ifdef VIDIOC_EXPBUF + { ARG_STR(VIDIOC_EXPBUF) }, +#endif + { ARG_STR(VIDIOC_G_AUDIO) }, + { ARG_STR(VIDIOC_S_AUDIO) }, + { ARG_STR(VIDIOC_QUERYMENU) }, +#ifdef VIDIOC_G_EDID + { ARG_STR(VIDIOC_G_EDID) }, +#endif +#ifdef VIDIOC_S_EDID + { ARG_STR(VIDIOC_S_EDID) }, +#endif + { ARG_STR(VIDIOC_G_OUTPUT) }, + { ARG_STR(VIDIOC_S_OUTPUT) }, + { ARG_STR(VIDIOC_ENUMOUTPUT) }, + { ARG_STR(VIDIOC_G_AUDOUT) }, + { ARG_STR(VIDIOC_S_AUDOUT) }, + { ARG_STR(VIDIOC_G_MODULATOR) }, + { ARG_STR(VIDIOC_S_MODULATOR) }, + { ARG_STR(VIDIOC_G_FREQUENCY) }, + { ARG_STR(VIDIOC_S_FREQUENCY) }, + { ARG_STR(VIDIOC_G_JPEGCOMP) }, + { ARG_STR(VIDIOC_S_JPEGCOMP) }, + { ARG_STR(VIDIOC_QUERYSTD) }, + { ARG_STR(VIDIOC_ENUMAUDIO) }, + { ARG_STR(VIDIOC_ENUMAUDOUT) }, + { ARG_STR(VIDIOC_G_PRIORITY) }, + { ARG_STR(VIDIOC_S_PRIORITY) }, + { ARG_STR(VIDIOC_G_SLICED_VBI_CAP) }, + { ARG_STR(VIDIOC_LOG_STATUS) }, +#ifdef VIDIOC_G_ENC_INDEX + { ARG_STR(VIDIOC_G_ENC_INDEX) }, +#endif +#ifdef VIDIOC_ENCODER_CMD + { ARG_STR(VIDIOC_ENCODER_CMD) }, +#endif +#ifdef VIDIOC_TRY_ENCODER_CMD + { ARG_STR(VIDIOC_TRY_ENCODER_CMD) }, +#endif +#ifdef VIDIOC_DBG_S_REGISTER + { ARG_STR(VIDIOC_DBG_S_REGISTER) }, +#endif +#ifdef VIDIOC_DBG_G_REGISTER + { ARG_STR(VIDIOC_DBG_G_REGISTER) }, +#endif +#ifdef VIDIOC_G_CHIP_IDENT_OLD + { ARG_STR(VIDIOC_G_CHIP_IDENT_OLD) }, +#endif +#ifdef VIDIOC_DBG_G_CHIP_IDENT + /* Broken on RHEL 6/7 */ + /* { ARG_STR(VIDIOC_DBG_G_CHIP_IDENT) }, */ +#endif +#ifdef VIDIOC_S_HW_FREQ_SEEK + { ARG_STR(VIDIOC_S_HW_FREQ_SEEK) }, +#endif +#ifdef VIDIOC_ENUM_DV_PRESETS + /* Next 4 are broken on RHEL 6 */ + /* { ARG_STR(VIDIOC_ENUM_DV_PRESETS) }, */ +#endif +#ifdef VIDIOC_S_DV_PRESET + /* { ARG_STR(VIDIOC_S_DV_PRESET) }, */ +#endif +#ifdef VIDIOC_G_DV_PRESET + /* { ARG_STR(VIDIOC_G_DV_PRESET) }, */ +#endif +#ifdef VIDIOC_QUERY_DV_PRESET + /* { ARG_STR(VIDIOC_QUERY_DV_PRESET) }, */ +#endif +#ifdef VIDIOC_S_DV_TIMINGS + { ARG_STR(VIDIOC_S_DV_TIMINGS) }, +#endif +#ifdef VIDIOC_G_DV_TIMINGS + { ARG_STR(VIDIOC_G_DV_TIMINGS) }, +#endif +#ifdef VIDIOC_DQEVENT + { ARG_STR(VIDIOC_DQEVENT) }, +#endif +#ifdef VIDIOC_SUBSCRIBE_EVENT + { ARG_STR(VIDIOC_SUBSCRIBE_EVENT) }, +#endif +#ifdef VIDIOC_UNSUBSCRIBE_EVENT + { ARG_STR(VIDIOC_UNSUBSCRIBE_EVENT) }, +#endif +#ifdef VIDIOC_PREPARE_BUF + { ARG_STR(VIDIOC_PREPARE_BUF) }, +#endif +#ifdef VIDIOC_G_SELECTION + { ARG_STR(VIDIOC_G_SELECTION) }, +#endif +#ifdef VIDIOC_S_SELECTION + { ARG_STR(VIDIOC_S_SELECTION) }, +#endif +#ifdef VIDIOC_DECODER_CMD + { ARG_STR(VIDIOC_DECODER_CMD) }, +#endif +#ifdef VIDIOC_TRY_DECODER_CMD + { ARG_STR(VIDIOC_TRY_DECODER_CMD) }, +#endif +#ifdef VIDIOC_ENUM_DV_TIMINGS + { ARG_STR(VIDIOC_ENUM_DV_TIMINGS) }, +#endif +#ifdef VIDIOC_QUERY_DV_TIMINGS + { ARG_STR(VIDIOC_QUERY_DV_TIMINGS) }, +#endif +#ifdef VIDIOC_DV_TIMINGS_CAP + { ARG_STR(VIDIOC_DV_TIMINGS_CAP) }, +#endif +#ifdef VIDIOC_ENUM_FREQ_BANDS + { ARG_STR(VIDIOC_ENUM_FREQ_BANDS) }, +#endif +#ifdef VIDIOC_DBG_G_CHIP_INFO + { ARG_STR(VIDIOC_DBG_G_CHIP_INFO) }, +#endif +#ifdef VIDIOC_QUERY_EXT_CTRL + { ARG_STR(VIDIOC_QUERY_EXT_CTRL) }, +#endif +#ifdef VIDIOC_SUBDEV_ENUM_MBUS_CODE + { ARG_STR(VIDIOC_SUBDEV_ENUM_MBUS_CODE) }, +#endif +#ifdef VIDIOC_SUBDEV_G_FMT + { ARG_STR(VIDIOC_SUBDEV_G_FMT) }, +#endif +#ifdef VIDIOC_SUBDEV_S_FMT + { ARG_STR(VIDIOC_SUBDEV_S_FMT) }, +#endif +#ifdef VIDIOC_SUBDEV_G_FRAME_INTERVAL + { ARG_STR(VIDIOC_SUBDEV_G_FRAME_INTERVAL) }, +#endif +#ifdef VIDIOC_SUBDEV_S_FRAME_INTERVAL + { ARG_STR(VIDIOC_SUBDEV_S_FRAME_INTERVAL) }, +#endif +#ifdef VIDIOC_SUBDEV_G_CROP + { ARG_STR(VIDIOC_SUBDEV_G_CROP) }, +#endif +#ifdef VIDIOC_SUBDEV_S_CROP + { ARG_STR(VIDIOC_SUBDEV_S_CROP) }, +#endif +#ifdef VIDIOC_SUBDEV_G_SELECTION + { ARG_STR(VIDIOC_SUBDEV_G_SELECTION) }, +#endif +#ifdef VIDIOC_SUBDEV_S_SELECTION + { ARG_STR(VIDIOC_SUBDEV_S_SELECTION) }, +#endif +#ifdef VIDIOC_SUBDEV_ENUM_FRAME_SIZE + { ARG_STR(VIDIOC_SUBDEV_ENUM_FRAME_SIZE) }, +#endif +#ifdef VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL + { ARG_STR(VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL) }, +#endif + }; + + for (size_t i = 0; i < ARRAY_SIZE(unsupp_cmds); i++) { + switch (unsupp_cmds[i].cmd) { + /* + * VIDIOC_G_SLICED_VBI_CAP macro has been changed from + * IOR to IOWR in Linux v2.6.19-rc1~643^2~37, skip it. + */ + case _IOR('V', 69, struct v4l2_sliced_vbi_cap): + continue; + } + + ioctl(-1, unsupp_cmds[i].cmd, 0); + printf("ioctl(-1, " XLAT_FMT ", 0) = -1 EBADF (%m)\n", + XLAT_SEL(unsupp_cmds[i].cmd, unsupp_cmds[i].str)); + + ioctl(-1, unsupp_cmds[i].cmd, + (unsigned long) 0xbadc0deddeadc0deULL); + printf("ioctl(-1, " XLAT_FMT ", %#lx) = -1 EBADF (%m)\n", + XLAT_SEL(unsupp_cmds[i].cmd, unsupp_cmds[i].str), + (unsigned long) 0xbadc0deddeadc0deULL); + } + /* VIDIOC_QUERYCAP */ ioctl(-1, VIDIOC_QUERYCAP, 0); - printf("ioctl(-1, VIDIOC_QUERYCAP, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_QUERYCAP)); ioctl(-1, VIDIOC_QUERYCAP, page); - printf("ioctl(-1, VIDIOC_QUERYCAP, %p) = -1 EBADF (%m)\n", page); + printf("ioctl(-1, %s, %p) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_QUERYCAP), page); /* VIDIOC_ENUM_FMT */ ioctl(-1, VIDIOC_ENUM_FMT, 0); - printf("ioctl(-1, VIDIOC_ENUM_FMT, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_ENUM_FMT)); TAIL_ALLOC_OBJECT_CONST_PTR(struct v4l2_fmtdesc, p_fmtdesc); p_fmtdesc->index = magic; p_fmtdesc->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; ioctl(-1, VIDIOC_ENUM_FMT, p_fmtdesc); - printf("ioctl(-1, VIDIOC_ENUM_FMT, {index=%u" - ", type=V4L2_BUF_TYPE_VIDEO_CAPTURE}) = -1 EBADF (%m)\n", - p_fmtdesc->index); + printf("ioctl(-1, %s, {index=%u, type=" XLAT_FMT + "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_ENUM_FMT), p_fmtdesc->index, + XLAT_ARGS(V4L2_BUF_TYPE_VIDEO_CAPTURE)); /* VIDIOC_G_FMT */ ioctl(-1, VIDIOC_G_FMT, 0); - printf("ioctl(-1, VIDIOC_G_FMT, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FMT)); TAIL_ALLOC_OBJECT_CONST_PTR(struct v4l2_format, p_format); p_format->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; ioctl(-1, VIDIOC_G_FMT, p_format); - printf("ioctl(-1, VIDIOC_G_FMT" - ", {type=V4L2_BUF_TYPE_VIDEO_CAPTURE}) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, {type=" XLAT_FMT "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FMT), + XLAT_ARGS(V4L2_BUF_TYPE_VIDEO_CAPTURE)); #if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE p_format->type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE; ioctl(-1, VIDIOC_G_FMT, p_format); - printf("ioctl(-1, VIDIOC_G_FMT" - ", {type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE}) =" - " -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, {type=" XLAT_FMT "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FMT), + XLAT_ARGS(V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE)); #endif #if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY p_format->type = V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY; ioctl(-1, VIDIOC_G_FMT, p_format); - printf("ioctl(-1, VIDIOC_G_FMT" - ", {type=V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY}) =" - " -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, {type=" XLAT_FMT "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FMT), + XLAT_ARGS(V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY)); #endif p_format->type = V4L2_BUF_TYPE_VIDEO_OVERLAY; ioctl(-1, VIDIOC_G_FMT, p_format); - printf("ioctl(-1, VIDIOC_G_FMT" - ", {type=V4L2_BUF_TYPE_VIDEO_OVERLAY}) =" - " -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, {type=" XLAT_FMT "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FMT), + XLAT_ARGS(V4L2_BUF_TYPE_VIDEO_OVERLAY)); p_format->type = V4L2_BUF_TYPE_VBI_CAPTURE; ioctl(-1, VIDIOC_G_FMT, p_format); - printf("ioctl(-1, VIDIOC_G_FMT" - ", {type=V4L2_BUF_TYPE_VBI_CAPTURE}) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, {type=" XLAT_FMT "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FMT), + XLAT_ARGS(V4L2_BUF_TYPE_VBI_CAPTURE)); #if HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE p_format->type = V4L2_BUF_TYPE_SLICED_VBI_CAPTURE; ioctl(-1, VIDIOC_G_FMT, p_format); - printf("ioctl(-1, VIDIOC_G_FMT" - ", {type=V4L2_BUF_TYPE_SLICED_VBI_CAPTURE}) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, {type=" XLAT_FMT "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FMT), + XLAT_ARGS(V4L2_BUF_TYPE_SLICED_VBI_CAPTURE)); #endif #if HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE p_format->type = V4L2_BUF_TYPE_SDR_CAPTURE; ioctl(-1, VIDIOC_G_FMT, p_format); - printf("ioctl(-1, VIDIOC_G_FMT" - ", {type=V4L2_BUF_TYPE_SDR_CAPTURE}) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, {type=" XLAT_FMT "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FMT), + XLAT_ARGS(V4L2_BUF_TYPE_SDR_CAPTURE)); #endif #if HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT p_format->type = V4L2_BUF_TYPE_SDR_OUTPUT; ioctl(-1, VIDIOC_G_FMT, p_format); - printf("ioctl(-1, VIDIOC_G_FMT" - ", {type=V4L2_BUF_TYPE_SDR_OUTPUT}) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, {type=" XLAT_FMT "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FMT), + XLAT_ARGS(V4L2_BUF_TYPE_SDR_OUTPUT)); #endif /* VIDIOC_S_FMT */ ioctl(-1, VIDIOC_S_FMT, 0); - printf("ioctl(-1, VIDIOC_S_FMT, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_FMT)); init_v4l2_format(p_format, V4L2_BUF_TYPE_VIDEO_OUTPUT); ioctl(-1, VIDIOC_S_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_S_FMT", V4L2_BUF_TYPE_VIDEO_OUTPUT); + print_ioctl_v4l2(p_format, VIDIOC_S_FMT, + V4L2_BUF_TYPE_VIDEO_OUTPUT); #if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE init_v4l2_format(p_format, V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE); ioctl(-1, VIDIOC_S_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_S_FMT", + print_ioctl_v4l2(p_format, VIDIOC_S_FMT, V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE); #endif #if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY init_v4l2_format(p_format, V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY); ioctl(-1, VIDIOC_S_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_S_FMT", + print_ioctl_v4l2(p_format, VIDIOC_S_FMT, V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY); #endif init_v4l2_format(p_format, V4L2_BUF_TYPE_VIDEO_OVERLAY); ioctl(-1, VIDIOC_S_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_S_FMT", + print_ioctl_v4l2(p_format, VIDIOC_S_FMT, V4L2_BUF_TYPE_VIDEO_OVERLAY); init_v4l2_format(p_format, V4L2_BUF_TYPE_VBI_CAPTURE); ioctl(-1, VIDIOC_S_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_S_FMT", V4L2_BUF_TYPE_VBI_CAPTURE); + print_ioctl_v4l2(p_format, VIDIOC_S_FMT, V4L2_BUF_TYPE_VBI_CAPTURE); #if HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE init_v4l2_format(p_format, V4L2_BUF_TYPE_SLICED_VBI_CAPTURE); ioctl(-1, VIDIOC_S_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_S_FMT", + print_ioctl_v4l2(p_format, VIDIOC_S_FMT, V4L2_BUF_TYPE_SLICED_VBI_CAPTURE); #endif #if HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE init_v4l2_format(p_format, V4L2_BUF_TYPE_SDR_CAPTURE); ioctl(-1, VIDIOC_S_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_S_FMT", V4L2_BUF_TYPE_SDR_CAPTURE); + print_ioctl_v4l2(p_format, VIDIOC_S_FMT, V4L2_BUF_TYPE_SDR_CAPTURE); #endif #if HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT init_v4l2_format(p_format, V4L2_BUF_TYPE_SDR_OUTPUT); ioctl(-1, VIDIOC_S_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_S_FMT", V4L2_BUF_TYPE_SDR_OUTPUT); + print_ioctl_v4l2(p_format, VIDIOC_S_FMT, V4L2_BUF_TYPE_SDR_OUTPUT); #endif /* VIDIOC_TRY_FMT */ ioctl(-1, VIDIOC_TRY_FMT, 0); - printf("ioctl(-1, VIDIOC_TRY_FMT, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_TRY_FMT)); init_v4l2_format(p_format, V4L2_BUF_TYPE_VIDEO_OUTPUT); ioctl(-1, VIDIOC_TRY_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_TRY_FMT", + print_ioctl_v4l2(p_format, VIDIOC_TRY_FMT, V4L2_BUF_TYPE_VIDEO_OUTPUT); #if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE init_v4l2_format(p_format, V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE); ioctl(-1, VIDIOC_TRY_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_TRY_FMT", + print_ioctl_v4l2(p_format, VIDIOC_TRY_FMT, V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE); #endif #if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY init_v4l2_format(p_format, V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY); ioctl(-1, VIDIOC_TRY_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_TRY_FMT", + print_ioctl_v4l2(p_format, VIDIOC_TRY_FMT, V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY); #endif init_v4l2_format(p_format, V4L2_BUF_TYPE_VIDEO_OVERLAY); ioctl(-1, VIDIOC_TRY_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_TRY_FMT", + print_ioctl_v4l2(p_format, VIDIOC_TRY_FMT, V4L2_BUF_TYPE_VIDEO_OVERLAY); init_v4l2_format(p_format, V4L2_BUF_TYPE_VBI_CAPTURE); ioctl(-1, VIDIOC_TRY_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_TRY_FMT", V4L2_BUF_TYPE_VBI_CAPTURE); + print_ioctl_v4l2(p_format, VIDIOC_TRY_FMT, V4L2_BUF_TYPE_VBI_CAPTURE); #if HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE init_v4l2_format(p_format, V4L2_BUF_TYPE_SLICED_VBI_CAPTURE); ioctl(-1, VIDIOC_TRY_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_TRY_FMT", + print_ioctl_v4l2(p_format, VIDIOC_TRY_FMT, V4L2_BUF_TYPE_SLICED_VBI_CAPTURE); #endif #if HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE init_v4l2_format(p_format, V4L2_BUF_TYPE_SDR_CAPTURE); ioctl(-1, VIDIOC_TRY_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_TRY_FMT", V4L2_BUF_TYPE_SDR_CAPTURE); + print_ioctl_v4l2(p_format, VIDIOC_TRY_FMT, V4L2_BUF_TYPE_SDR_CAPTURE); #endif #if HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT init_v4l2_format(p_format, V4L2_BUF_TYPE_SDR_OUTPUT); ioctl(-1, VIDIOC_TRY_FMT, p_format); - print_ioctl_v4l2(p_format, "VIDIOC_TRY_FMT", V4L2_BUF_TYPE_SDR_OUTPUT); + print_ioctl_v4l2(p_format, VIDIOC_TRY_FMT, V4L2_BUF_TYPE_SDR_OUTPUT); #endif struct v4l2_format *const p_v4l2_format = page_end - sizeof(*p_v4l2_format); ioctl(-1, VIDIOC_TRY_FMT, p_v4l2_format); - printf("ioctl(-1, VIDIOC_TRY_FMT, {type=%#x /* V4L2_BUF_TYPE_??? */})" - " = -1 EBADF (%m)\n", p_v4l2_format->type); + printf("ioctl(-1, %s, {type=%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") "})" + " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_TRY_FMT), p_v4l2_format->type); /* VIDIOC_REQBUFS */ ioctl(-1, VIDIOC_REQBUFS, 0); - printf("ioctl(-1, VIDIOC_REQBUFS, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_REQBUFS)); struct v4l2_requestbuffers *const p_v4l2_requestbuffers = page_end - sizeof(*p_v4l2_requestbuffers); ioctl(-1, VIDIOC_REQBUFS, p_v4l2_requestbuffers); - printf("ioctl(-1, VIDIOC_REQBUFS, {type=%#x /* V4L2_BUF_TYPE_??? */, " - "memory=%#x /* V4L2_MEMORY_??? */, count=%u})" + printf("ioctl(-1, %s, {type=%#x" + NRAW(" /* V4L2_BUF_TYPE_??? */") + ", memory=%#x" NRAW(" /* V4L2_MEMORY_??? */") ", count=%u})" " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_REQBUFS), p_v4l2_requestbuffers->type, p_v4l2_requestbuffers->memory, p_v4l2_requestbuffers->count); /* VIDIOC_QUERYBUF */ ioctl(-1, VIDIOC_QUERYBUF, 0); - printf("ioctl(-1, VIDIOC_QUERYBUF, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_QUERYBUF)); - struct v4l2_buffer *const p_v4l2_buffer = + kernel_v4l2_buffer_t *const p_v4l2_buffer = page_end - sizeof(*p_v4l2_buffer); ioctl(-1, VIDIOC_QUERYBUF, p_v4l2_buffer); - printf("ioctl(-1, VIDIOC_QUERYBUF, {type=%#x /* V4L2_BUF_TYPE_??? */" + printf("ioctl(-1, %s, {type=%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") ", index=%u}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_QUERYBUF), p_v4l2_buffer->type, p_v4l2_buffer->index); /* VIDIOC_QBUF */ ioctl(-1, VIDIOC_QBUF, 0); - printf("ioctl(-1, VIDIOC_QBUF, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_QBUF)); ioctl(-1, VIDIOC_QBUF, p_v4l2_buffer); - printf("ioctl(-1, VIDIOC_QBUF, {type=%#x /* V4L2_BUF_TYPE_??? */" + printf("ioctl(-1, %s, {type=%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") ", index=%u}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_QBUF), p_v4l2_buffer->type, p_v4l2_buffer->index); /* VIDIOC_DQBUF */ ioctl(-1, VIDIOC_DQBUF, 0); - printf("ioctl(-1, VIDIOC_DQBUF, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_DQBUF)); ioctl(-1, VIDIOC_DQBUF, p_v4l2_buffer); - printf("ioctl(-1, VIDIOC_DQBUF, {type=%#x" - " /* V4L2_BUF_TYPE_??? */}) = -1 EBADF (%m)\n", - p_v4l2_buffer->type); + printf("ioctl(-1, %s, {type=%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") + "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_DQBUF), p_v4l2_buffer->type); /* VIDIOC_G_FBUF */ ioctl(-1, VIDIOC_G_FBUF, 0); - printf("ioctl(-1, VIDIOC_G_FBUF, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FBUF)); ioctl(-1, VIDIOC_G_FBUF, page); - printf("ioctl(-1, VIDIOC_G_FBUF, %p) = -1 EBADF (%m)\n", page); + printf("ioctl(-1, %s, %p) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_FBUF), page); /* VIDIOC_S_FBUF */ ioctl(-1, VIDIOC_S_FBUF, 0); - printf("ioctl(-1, VIDIOC_S_FBUF, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_FBUF)); struct v4l2_framebuffer *const p_v4l2_framebuffer = page_end - sizeof(*p_v4l2_framebuffer); ioctl(-1, VIDIOC_S_FBUF, p_v4l2_framebuffer); - printf("ioctl(-1, VIDIOC_S_FBUF, {capability=%#x" + printf("ioctl(-1, %s, {capability=%#x" ", flags=%#x, base=%p}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_FBUF), p_v4l2_framebuffer->capability, p_v4l2_framebuffer->flags, p_v4l2_framebuffer->base); /* VIDIOC_STREAMON */ ioctl(-1, VIDIOC_STREAMON, 0); - printf("ioctl(-1, VIDIOC_STREAMON, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_STREAMON)); int *const p_int = page_end - sizeof(int); ioctl(-1, VIDIOC_STREAMON, p_int); - printf("ioctl(-1, VIDIOC_STREAMON, [%#x /* V4L2_BUF_TYPE_??? */])" - " = -1 EBADF (%m)\n", *p_int); + printf("ioctl(-1, %s, [%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") "])" + " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_STREAMON), *p_int); /* VIDIOC_STREAMOFF */ ioctl(-1, VIDIOC_STREAMOFF, 0); - printf("ioctl(-1, VIDIOC_STREAMOFF, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_STREAMOFF)); ioctl(-1, VIDIOC_STREAMOFF, p_int); - printf("ioctl(-1, VIDIOC_STREAMOFF, [%#x /* V4L2_BUF_TYPE_??? */])" - " = -1 EBADF (%m)\n", *p_int); + printf("ioctl(-1, %s, [%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") "])" + " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_STREAMOFF), *p_int); /* VIDIOC_G_PARM */ ioctl(-1, VIDIOC_G_PARM, 0); - printf("ioctl(-1, VIDIOC_G_PARM, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_PARM)); struct v4l2_streamparm *const p_v4l2_streamparm = page_end - sizeof(*p_v4l2_streamparm); ioctl(-1, VIDIOC_G_PARM, p_v4l2_streamparm); - printf("ioctl(-1, VIDIOC_G_PARM, {type=%#x /* V4L2_BUF_TYPE_??? */})" - " = -1 EBADF (%m)\n", p_v4l2_streamparm->type); + printf("ioctl(-1, %s, {type=%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") "})" + " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_PARM), p_v4l2_streamparm->type); /* VIDIOC_S_PARM */ ioctl(-1, VIDIOC_S_PARM, 0); - printf("ioctl(-1, VIDIOC_S_PARM, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_PARM)); ioctl(-1, VIDIOC_S_PARM, p_v4l2_streamparm); - printf("ioctl(-1, VIDIOC_S_PARM, {type=%#x /* V4L2_BUF_TYPE_??? */})" - " = -1 EBADF (%m)\n", p_v4l2_streamparm->type); + printf("ioctl(-1, %s, {type=%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") "})" + " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_PARM), p_v4l2_streamparm->type); TAIL_ALLOC_OBJECT_CONST_PTR(struct v4l2_streamparm, p_streamparm); p_streamparm->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; @@ -633,91 +1005,135 @@ main(void) p_streamparm->parm.capture.timeperframe.numerator = 0xdeadbeef; p_streamparm->parm.capture.timeperframe.denominator = 0xbadc0ded; ioctl(-1, VIDIOC_S_PARM, p_streamparm); - printf("ioctl(-1, VIDIOC_S_PARM, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE" - ", parm.capture={capability=V4L2_CAP_TIMEPERFRAME" - ", capturemode=V4L2_MODE_HIGHQUALITY, timeperframe=%u/%u" - ", extendedmode=%u, readbuffers=%u}}) = -1 EBADF (%m)\n", + printf("ioctl(-1, %s, {type=" XLAT_FMT + ", parm.capture={capability=" XLAT_FMT + ", capturemode=" XLAT_FMT ", timeperframe=%u/%u" + ", extendedmode=%#x, readbuffers=%u}}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_PARM), XLAT_ARGS(V4L2_BUF_TYPE_VIDEO_CAPTURE), + XLAT_ARGS(V4L2_CAP_TIMEPERFRAME), XLAT_ARGS(V4L2_MODE_HIGHQUALITY), p_streamparm->parm.capture.timeperframe.numerator, p_streamparm->parm.capture.timeperframe.denominator, -1U, -1U); p_streamparm->type = V4L2_BUF_TYPE_VIDEO_OUTPUT; p_streamparm->parm.output.outputmode = 0; ioctl(-1, VIDIOC_S_PARM, p_streamparm); - printf("ioctl(-1, VIDIOC_S_PARM, {type=V4L2_BUF_TYPE_VIDEO_OUTPUT" - ", parm.output={capability=V4L2_CAP_TIMEPERFRAME" + printf("ioctl(-1, %s, {type=" XLAT_FMT + ", parm.output={capability=" XLAT_FMT ", outputmode=0, timeperframe=%u/%u" - ", extendedmode=%u, writebuffers=%u}}) = -1 EBADF (%m)\n", + ", extendedmode=%#x, writebuffers=%u}}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_PARM), XLAT_ARGS(V4L2_BUF_TYPE_VIDEO_OUTPUT), + XLAT_ARGS(V4L2_CAP_TIMEPERFRAME), p_streamparm->parm.output.timeperframe.numerator, p_streamparm->parm.output.timeperframe.denominator, -1U, -1U); /* VIDIOC_G_STD */ ioctl(-1, VIDIOC_G_STD, 0); - printf("ioctl(-1, VIDIOC_G_STD, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_STD)); ioctl(-1, VIDIOC_G_STD, page); - printf("ioctl(-1, VIDIOC_G_STD, %p) = -1 EBADF (%m)\n", page); + printf("ioctl(-1, %s, %p) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_STD), page); /* VIDIOC_S_STD */ ioctl(-1, VIDIOC_S_STD, 0); - printf("ioctl(-1, VIDIOC_S_STD, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_STD)); long long *const p_longlong = page_end - sizeof(*p_longlong); ioctl(-1, VIDIOC_S_STD, p_longlong); - printf("ioctl(-1, VIDIOC_S_STD, [%#llx]) = -1 EBADF (%m)\n", - *p_longlong); + printf("ioctl(-1, %s, [%#llx]) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_STD), *p_longlong); /* VIDIOC_ENUMSTD */ ioctl(-1, VIDIOC_ENUMSTD, 0); - printf("ioctl(-1, VIDIOC_ENUMSTD, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_ENUMSTD)); struct v4l2_standard *const p_v4l2_standard = page_end - sizeof(*p_v4l2_standard); ioctl(-1, VIDIOC_ENUMSTD, p_v4l2_standard); - printf("ioctl(-1, VIDIOC_ENUMSTD, {index=%u}) = -1 EBADF (%m)\n", - p_v4l2_standard->index); + printf("ioctl(-1, %s, {index=%u}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_ENUMSTD), p_v4l2_standard->index); /* VIDIOC_ENUMINPUT */ ioctl(-1, VIDIOC_ENUMINPUT, 0); - printf("ioctl(-1, VIDIOC_ENUMINPUT, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_ENUMINPUT)); struct v4l2_input *const p_v4l2_input = page_end - sizeof(*p_v4l2_input); ioctl(-1, VIDIOC_ENUMINPUT, p_v4l2_input); - printf("ioctl(-1, VIDIOC_ENUMINPUT, {index=%u}) = -1 EBADF (%m)\n", - p_v4l2_input->index); + printf("ioctl(-1, %s, {index=%u}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_ENUMINPUT), p_v4l2_input->index); /* VIDIOC_G_CTRL */ ioctl(-1, VIDIOC_G_CTRL, 0); - printf("ioctl(-1, VIDIOC_G_CTRL, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_CTRL)); + + static const struct v4l2_control v4l2_control_vals[] = { + { .id = 0, .value = 3141592653U }, + { .id = 0x97abcd, .value = 1234567890U }, + { .id = V4L2_CTRL_CLASS_USER, .value = 0 }, + { .id = 0x990a64, .value = 42 }, + { .id = 0xa31234, .value = 1 }, + { .id = 0xa40000, .value = -1 }, + }; + static const char *id_strs[] = { + "0" NRAW(" /* V4L2_CID_??? */"), + "0x97abcd" NRAW(" /* V4L2_CID_??? */"), + XLAT_KNOWN(0x980000, "V4L2_CTRL_CLASS_USER+0"), + XLAT_KNOWN(0x990a64, "V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE"), + XLAT_KNOWN(0xa31234, "V4L2_CTRL_CLASS_DETECT+0x1234"), + "0xa40000" NRAW(" /* V4L2_CID_??? */"), + }; struct v4l2_control *const p_v4l2_control = page_end - sizeof(*p_v4l2_control); ioctl(-1, VIDIOC_G_CTRL, p_v4l2_control); - printf("ioctl(-1, VIDIOC_G_CTRL, {id=%#x /* V4L2_CID_??? */})" - " = -1 EBADF (%m)\n", p_v4l2_control->id); + printf("ioctl(-1, %s, {id=%#x" NRAW(" /* V4L2_CID_??? */") + "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_CTRL), p_v4l2_control->id); /* VIDIOC_S_CTRL */ ioctl(-1, VIDIOC_S_CTRL, 0); - printf("ioctl(-1, VIDIOC_S_CTRL, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_CTRL)); ioctl(-1, VIDIOC_S_CTRL, p_v4l2_control); - printf("ioctl(-1, VIDIOC_S_CTRL, {id=%#x /* V4L2_CID_??? */" + printf("ioctl(-1, %s, {id=%#x" NRAW(" /* V4L2_CID_??? */") ", value=%d}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_CTRL), p_v4l2_control->id, p_v4l2_control->value); + for (size_t i = 0; i < ARRAY_SIZE(id_strs); i++) { + struct v4l2_control v4l2_c = v4l2_control_vals[i]; + + ioctl(-1, VIDIOC_G_CTRL, &v4l2_c); + printf("ioctl(-1, %s, {id=%s}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_CTRL), id_strs[i]); + + ioctl(-1, VIDIOC_S_CTRL, &v4l2_c); + printf("ioctl(-1, %s, {id=%s, value=%d}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_CTRL), id_strs[i], v4l2_c.value); + } + /* VIDIOC_G_TUNER */ ioctl(-1, VIDIOC_G_TUNER, 0); - printf("ioctl(-1, VIDIOC_G_TUNER, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_TUNER)); struct v4l2_tuner *const p_v4l2_tuner = page_end - sizeof(*p_v4l2_tuner); ioctl(-1, VIDIOC_G_TUNER, p_v4l2_tuner); - printf("ioctl(-1, VIDIOC_G_TUNER, {index=%u})" - " = -1 EBADF (%m)\n", p_v4l2_tuner->index); + printf("ioctl(-1, %s, {index=%u}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_TUNER), p_v4l2_tuner->index); /* VIDIOC_S_TUNER */ ioctl(-1, VIDIOC_S_TUNER, 0); - printf("ioctl(-1, VIDIOC_S_TUNER, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_TUNER)); TAIL_ALLOC_OBJECT_CONST_PTR(struct v4l2_tuner, p_tuner); p_tuner->index = 0x4fb6df39; @@ -731,79 +1147,98 @@ main(void) p_tuner->signal = 0x10bf92c8; p_tuner->afc = 0x3bf7e18b; ioctl(-1, VIDIOC_S_TUNER, p_tuner); - printf("ioctl(-1, VIDIOC_S_TUNER, {index=%u" - ", name=\"cum tacent clamant\"" - ", type=V4L2_TUNER_RADIO, capability=V4L2_TUNER_CAP_LOW" + printf("ioctl(-1, %s, {index=%u, name=\"cum tacent clamant\"" + ", type=" XLAT_FMT ", capability=" XLAT_FMT ", rangelow=%u, rangehigh=%u" - ", rxsubchans=V4L2_TUNER_SUB_MONO" - ", audmode=V4L2_TUNER_MODE_MONO, signal=%d, afc=%d" - "}) = -1 EBADF (%m)\n", - p_tuner->index, p_tuner->rangelow, - p_tuner->rangehigh, p_tuner->signal, p_tuner->afc); + ", rxsubchans=" XLAT_FMT ", audmode=" XLAT_FMT + ", signal=%d, afc=%d}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_TUNER), p_tuner->index, + XLAT_ARGS(V4L2_TUNER_RADIO), XLAT_ARGS(V4L2_TUNER_CAP_LOW), + p_tuner->rangelow, p_tuner->rangehigh, + XLAT_ARGS(V4L2_TUNER_SUB_MONO), XLAT_ARGS(V4L2_TUNER_MODE_MONO), + p_tuner->signal, p_tuner->afc); /* VIDIOC_QUERYCTRL */ ioctl(-1, VIDIOC_QUERYCTRL, 0); - printf("ioctl(-1, VIDIOC_QUERYCTRL, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_QUERYCTRL)); struct v4l2_queryctrl *const p_v4l2_queryctrl = page_end - sizeof(*p_v4l2_queryctrl); ioctl(-1, VIDIOC_QUERYCTRL, p_v4l2_queryctrl); -#ifdef V4L2_CTRL_FLAG_NEXT_CTRL - printf("ioctl(-1, VIDIOC_QUERYCTRL, {id=V4L2_CTRL_FLAG_NEXT_CTRL" - "|%#x /* V4L2_CID_??? */}) = -1 EBADF (%m)\n", - p_v4l2_queryctrl->id & ~V4L2_CTRL_FLAG_NEXT_CTRL); + printf("ioctl(-1, %s, {id=" +#if XLAT_RAW + "%#x" +#else + XLAT_FMT "|%#x /* V4L2_CID_??? */" +#endif + "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_QUERYCTRL), +#if XLAT_RAW + p_v4l2_queryctrl->id #else - printf("ioctl(-1, VIDIOC_QUERYCTRL, {id=%#x /* V4L2_CID_??? */})" - " = -1 EBADF (%m)\n", p_v4l2_queryctrl->id); + XLAT_ARGS(V4L2_CTRL_FLAG_NEXT_CTRL), + p_v4l2_queryctrl->id & ~V4L2_CTRL_FLAG_NEXT_CTRL #endif + ); TAIL_ALLOC_OBJECT_CONST_PTR(struct v4l2_queryctrl, p_queryctrl); p_queryctrl->id = V4L2_CID_SATURATION; ioctl(-1, VIDIOC_QUERYCTRL, p_queryctrl); - printf("ioctl(-1, VIDIOC_QUERYCTRL, {id=V4L2_CID_SATURATION})" - " = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, {id=" XLAT_FMT "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_QUERYCTRL), XLAT_ARGS(V4L2_CID_SATURATION)); /* VIDIOC_G_INPUT */ ioctl(-1, VIDIOC_G_INPUT, 0); - printf("ioctl(-1, VIDIOC_G_INPUT, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_INPUT)); ioctl(-1, VIDIOC_G_INPUT, page); - printf("ioctl(-1, VIDIOC_G_INPUT, %p) = -1 EBADF (%m)\n", page); + printf("ioctl(-1, %s, %p) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_INPUT), page); /* VIDIOC_S_INPUT */ ioctl(-1, VIDIOC_S_INPUT, 0); - printf("ioctl(-1, VIDIOC_S_INPUT, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_INPUT)); ioctl(-1, VIDIOC_S_INPUT, p_int); - printf("ioctl(-1, VIDIOC_S_INPUT, [%u]) = -1 EBADF (%m)\n", *p_int); + printf("ioctl(-1, %s, [%u]) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_INPUT), *p_int); /* VIDIOC_CROPCAP */ ioctl(-1, VIDIOC_CROPCAP, 0); - printf("ioctl(-1, VIDIOC_CROPCAP, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_CROPCAP)); struct v4l2_cropcap *const p_v4l2_cropcap = page_end - sizeof(*p_v4l2_cropcap); ioctl(-1, VIDIOC_CROPCAP, p_v4l2_cropcap); - printf("ioctl(-1, VIDIOC_CROPCAP, {type=%#x /* V4L2_BUF_TYPE_??? */})" - " = -1 EBADF (%m)\n", p_v4l2_cropcap->type); + printf("ioctl(-1, %s, {type=%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") "})" + " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_CROPCAP), p_v4l2_cropcap->type); /* VIDIOC_G_CROP */ ioctl(-1, VIDIOC_G_CROP, 0); - printf("ioctl(-1, VIDIOC_G_CROP, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_CROP)); struct v4l2_crop *const p_v4l2_crop = page_end - sizeof(*p_v4l2_crop); ioctl(-1, VIDIOC_G_CROP, p_v4l2_crop); - printf("ioctl(-1, VIDIOC_G_CROP, {type=%#x /* V4L2_BUF_TYPE_??? */})" - " = -1 EBADF (%m)\n", p_v4l2_crop->type); + printf("ioctl(-1, %s, {type=%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") "})" + " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_CROP), p_v4l2_crop->type); /* VIDIOC_S_CROP */ ioctl(-1, VIDIOC_S_CROP, 0); - printf("ioctl(-1, VIDIOC_S_CROP, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_CROP)); ioctl(-1, VIDIOC_S_CROP, p_v4l2_crop); - printf("ioctl(-1, VIDIOC_S_CROP, {type=%#x /* V4L2_BUF_TYPE_??? */" + printf("ioctl(-1, %s, {type=%#x" NRAW(" /* V4L2_BUF_TYPE_??? */") ", c={left=%d, top=%d, width=%u, height=%u}}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_CROP), p_v4l2_crop->type, p_v4l2_crop->c.left, p_v4l2_crop->c.top, @@ -813,36 +1248,42 @@ main(void) #ifdef VIDIOC_S_EXT_CTRLS /* VIDIOC_S_EXT_CTRLS */ ioctl(-1, VIDIOC_S_EXT_CTRLS, 0); - printf("ioctl(-1, VIDIOC_S_EXT_CTRLS, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_EXT_CTRLS)); TAIL_ALLOC_OBJECT_CONST_PTR(struct v4l2_ext_controls, p_ext_controls); p_ext_controls->ctrl_class = V4L2_CTRL_CLASS_USER; p_ext_controls->count = 0; p_ext_controls->controls = (void *) -2UL; ioctl(-1, VIDIOC_S_EXT_CTRLS, p_ext_controls); - printf("ioctl(-1, VIDIOC_S_EXT_CTRLS, {ctrl_class=V4L2_CTRL_CLASS_USER" - ", count=%u}) = -1 EBADF (%m)\n", p_ext_controls->count); + printf("ioctl(-1, %s, {ctrl_class=" XLAT_FMT ", count=%u})" + " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_EXT_CTRLS), XLAT_ARGS(V4L2_CTRL_CLASS_USER), + p_ext_controls->count); p_ext_controls->ctrl_class = 0x00a30000; p_ext_controls->count = magic; ioctl(-1, VIDIOC_S_EXT_CTRLS, p_ext_controls); - printf("ioctl(-1, VIDIOC_S_EXT_CTRLS, {ctrl_class=V4L2_CTRL_CLASS_DETECT" + printf("ioctl(-1, %s, {ctrl_class=" XLAT_FMT ", count=%u, controls=%p}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_EXT_CTRLS), XLAT_ARGS(V4L2_CTRL_CLASS_DETECT), p_ext_controls->count, p_ext_controls->controls); p_ext_controls->ctrl_class = 0x00a40000; p_ext_controls->count = magic; ioctl(-1, VIDIOC_S_EXT_CTRLS, p_ext_controls); - printf("ioctl(-1, VIDIOC_S_EXT_CTRLS" - ", {ctrl_class=0xa40000 /* V4L2_CTRL_CLASS_??? */" + printf("ioctl(-1, %s" + ", {ctrl_class=0xa40000" NRAW(" /* V4L2_CTRL_CLASS_??? */") ", count=%u, controls=%p}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_EXT_CTRLS), p_ext_controls->count, p_ext_controls->controls); p_ext_controls->ctrl_class = V4L2_CTRL_CLASS_MPEG; p_ext_controls->count = magic; ioctl(-1, VIDIOC_S_EXT_CTRLS, p_ext_controls); - printf("ioctl(-1, VIDIOC_S_EXT_CTRLS, {ctrl_class=V4L2_CTRL_CLASS_MPEG" + printf("ioctl(-1, %s, {ctrl_class=" XLAT_FMT ", count=%u, controls=%p}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_S_EXT_CTRLS), XLAT_ARGS(V4L2_CTRL_CLASS_MPEG), p_ext_controls->count, p_ext_controls->controls); # if HAVE_DECL_V4L2_CTRL_TYPE_STRING @@ -858,107 +1299,132 @@ main(void) tail_alloc(p_ext_controls->controls[1].size); ioctl(-1, VIDIOC_S_EXT_CTRLS, p_ext_controls); - printf("ioctl(-1, VIDIOC_S_EXT_CTRLS" - ", {ctrl_class=V4L2_CTRL_CLASS_MPEG, count=%u, controls=" - "[{id=V4L2_CID_BRIGHTNESS, size=0, value=%d, value64=%lld}" - ", {id=V4L2_CID_CONTRAST, size=2, string=\"\\377\\377\"}" - "] => controls=" - "[{id=V4L2_CID_BRIGHTNESS, size=0, value=%d, value64=%lld}" - ", {id=V4L2_CID_CONTRAST, size=2, string=\"\\377\\377\"}" + printf("ioctl(-1, %s, {ctrl_class=" XLAT_FMT ", count=%u, controls=" + "[{id=" XLAT_FMT ", size=0, value=%d, value64=%lld}" + ", {id=" XLAT_FMT ", size=2, string=\"\\377\\377\"}" + "]} => {controls=" + "[{id=" XLAT_FMT ", size=0, value=%d, value64=%lld}" + ", {id=" XLAT_FMT ", size=2, string=\"\\377\\377\"}" "], error_idx=%u}) = -1 EBADF (%m)\n", - p_ext_controls->count, + XLAT_STR(VIDIOC_S_EXT_CTRLS), XLAT_ARGS(V4L2_CTRL_CLASS_MPEG), + p_ext_controls->count, XLAT_ARGS(V4L2_CID_BRIGHTNESS), p_ext_controls->controls[0].value, (long long) p_ext_controls->controls[0].value64, + XLAT_ARGS(V4L2_CID_CONTRAST), XLAT_ARGS(V4L2_CID_BRIGHTNESS), p_ext_controls->controls[0].value, (long long) p_ext_controls->controls[0].value64, - p_ext_controls->error_idx); + XLAT_ARGS(V4L2_CID_CONTRAST), p_ext_controls->error_idx); ++p_ext_controls->count; ioctl(-1, VIDIOC_S_EXT_CTRLS, p_ext_controls); - printf("ioctl(-1, VIDIOC_S_EXT_CTRLS" - ", {ctrl_class=V4L2_CTRL_CLASS_MPEG, count=%u, controls=" - "[{id=V4L2_CID_BRIGHTNESS, size=0, value=%d, value64=%lld}" - ", {id=V4L2_CID_CONTRAST, size=2, string=\"\\377\\377\"}" + printf("ioctl(-1, %s, {ctrl_class=" XLAT_FMT ", count=%u, controls=" + "[{id=" XLAT_FMT ", size=0, value=%d, value64=%lld}" + ", {id=" XLAT_FMT ", size=2, string=\"\\377\\377\"}" ", ... /* %p */]}) = -1 EBADF (%m)\n", - p_ext_controls->count, + XLAT_STR(VIDIOC_S_EXT_CTRLS), XLAT_ARGS(V4L2_CTRL_CLASS_MPEG), + p_ext_controls->count, XLAT_ARGS(V4L2_CID_BRIGHTNESS), p_ext_controls->controls[0].value, (long long) p_ext_controls->controls[0].value64, - p_ext_controls->controls + 2); + XLAT_ARGS(V4L2_CID_CONTRAST), p_ext_controls->controls + 2); # endif /* HAVE_DECL_V4L2_CTRL_TYPE_STRING */ /* VIDIOC_TRY_EXT_CTRLS */ ioctl(-1, VIDIOC_TRY_EXT_CTRLS, 0); - printf("ioctl(-1, VIDIOC_TRY_EXT_CTRLS, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_TRY_EXT_CTRLS)); p_ext_controls->ctrl_class = V4L2_CTRL_CLASS_USER; p_ext_controls->count = magic; p_ext_controls->controls = (void *) -2UL; ioctl(-1, VIDIOC_TRY_EXT_CTRLS, p_ext_controls); - printf("ioctl(-1, VIDIOC_TRY_EXT_CTRLS" - ", {ctrl_class=V4L2_CTRL_CLASS_USER, count=%u, controls=%p})" + printf("ioctl(-1, %s, {ctrl_class=" XLAT_FMT ", count=%u, controls=%p})" " = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_TRY_EXT_CTRLS), XLAT_ARGS(V4L2_CTRL_CLASS_USER), p_ext_controls->count, p_ext_controls->controls); /* VIDIOC_G_EXT_CTRLS */ ioctl(-1, VIDIOC_G_EXT_CTRLS, 0); - printf("ioctl(-1, VIDIOC_G_EXT_CTRLS, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_EXT_CTRLS)); ioctl(-1, VIDIOC_G_EXT_CTRLS, p_ext_controls); - printf("ioctl(-1, VIDIOC_G_EXT_CTRLS" - ", {ctrl_class=V4L2_CTRL_CLASS_USER, count=%u, controls=%p" + printf("ioctl(-1, %s, {ctrl_class=" XLAT_FMT ", count=%u, controls=%p" ", error_idx=%u}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_G_EXT_CTRLS), XLAT_ARGS(V4L2_CTRL_CLASS_USER), p_ext_controls->count, p_ext_controls->controls, p_ext_controls->error_idx); #endif /* VIDIOC_S_EXT_CTRLS */ -#ifdef VIDIOC_ENUM_FRAMESIZES +#ifdef HAVE_STRUCT_V4L2_FRMSIZEENUM ioctl(-1, VIDIOC_ENUM_FRAMESIZES, 0); - printf("ioctl(-1, VIDIOC_ENUM_FRAMESIZES, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_ENUM_FRAMESIZES)); TAIL_ALLOC_OBJECT_CONST_PTR(struct v4l2_frmsizeenum, p_frmsizeenum); p_frmsizeenum->index = magic; p_frmsizeenum->pixel_format = fourcc(cc[0], cc[1], cc[2], cc[3]); ioctl(-1, VIDIOC_ENUM_FRAMESIZES, p_frmsizeenum); - printf("ioctl(-1, VIDIOC_ENUM_FRAMESIZES, {index=%u" - ", pixel_format=v4l2_fourcc('%c', '\\%c', '\\%c', '\\x%x')})" - " = -1 EBADF (%m)\n", p_frmsizeenum->index, - cc[0], cc[1], cc[2], cc[3]); -#endif /* VIDIOC_ENUM_FRAMESIZES */ - -#ifdef VIDIOC_ENUM_FRAMEINTERVALS + printf("ioctl(-1, %s, {index=%u, pixel_format=" +# if XLAT_RAW + "0x%hhx%hhx%hhx%hhx" +# else /* !XLAT_RAW */ + "v4l2_fourcc('%c', '\\%c', '\\%c', '\\x%x')" +# endif /* XLAT_RAW */ + "}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_ENUM_FRAMESIZES), p_frmsizeenum->index, +# if XLAT_RAW + cc[3], cc[2], cc[1], cc[0] +# else /* !XLAT_RAW */ + cc[0], cc[1], cc[2], cc[3] +# endif /* XLAT_RAW */ + ); +#endif /* HAVE_STRUCT_V4L2_FRMSIZEENUM */ + +#ifdef HAVE_STRUCT_V4L2_FRMIVALENUM ioctl(-1, VIDIOC_ENUM_FRAMEINTERVALS, 0); - printf("ioctl(-1, VIDIOC_ENUM_FRAMEINTERVALS, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_ENUM_FRAMEINTERVALS)); struct v4l2_frmivalenum *const p_v4l2_frmivalenum = page_end - sizeof(*p_v4l2_frmivalenum); ioctl(-1, VIDIOC_ENUM_FRAMEINTERVALS, p_v4l2_frmivalenum); - printf("ioctl(-1, VIDIOC_ENUM_FRAMEINTERVALS, {index=%u" - ", pixel_format=v4l2_fourcc('\\x%x', '\\x%x', '\\x%x', '\\x%x')" + printf("ioctl(-1, %s, {index=%u, pixel_format=" +# if XLAT_RAW + "%#x" +# else /* !XLAT_RAW */ + "v4l2_fourcc('\\x%x', '\\x%x', '\\x%x', '\\x%x')" +# endif /* XLAT_RAW */ ", width=%u, height=%u}) = -1 EBADF (%m)\n", - p_v4l2_frmivalenum->index, + XLAT_STR(VIDIOC_ENUM_FRAMEINTERVALS), p_v4l2_frmivalenum->index, +# if XLAT_RAW + p_v4l2_frmivalenum->pixel_format, +# else /* !XLAT_RAW */ cc0(p_v4l2_frmivalenum->pixel_format), cc1(p_v4l2_frmivalenum->pixel_format), cc2(p_v4l2_frmivalenum->pixel_format), cc3(p_v4l2_frmivalenum->pixel_format), +# endif /* XLAT_RAW */ p_v4l2_frmivalenum->width, p_v4l2_frmivalenum->height); -#endif /* VIDIOC_ENUM_FRAMEINTERVALS */ +#endif /* HAVE_STRUCT_V4L2_FRMIVALENUM */ -#ifdef VIDIOC_CREATE_BUFS +#ifdef HAVE_STRUCT_V4L2_CREATE_BUFFERS ioctl(-1, VIDIOC_CREATE_BUFS, 0); - printf("ioctl(-1, VIDIOC_CREATE_BUFS, NULL) = -1 EBADF (%m)\n"); + printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_CREATE_BUFS)); struct v4l2_create_buffers *const p_v4l2_create_buffers = page_end - sizeof(*p_v4l2_create_buffers); ioctl(-1, VIDIOC_CREATE_BUFS, p_v4l2_create_buffers); - printf("ioctl(-1, VIDIOC_CREATE_BUFS, {count=%u, memory=%#x" - " /* V4L2_MEMORY_??? */, format={type=%#x" - " /* V4L2_BUF_TYPE_??? */}}) = -1 EBADF (%m)\n", + printf("ioctl(-1, %s, {count=%u, memory=%#x" + NRAW(" /* V4L2_MEMORY_??? */") ", format={type=%#x" + NRAW(" /* V4L2_BUF_TYPE_??? */") "}}) = -1 EBADF (%m)\n", + XLAT_STR(VIDIOC_CREATE_BUFS), p_v4l2_create_buffers->count, p_v4l2_create_buffers->memory, p_v4l2_create_buffers->format.type); -#endif /* VIDIOC_CREATE_BUFS */ +#endif /* HAVE_STRUCT_V4L2_CREATE_BUFFERS */ puts("+++ exited with 0 +++"); return 0; diff --git a/tests/ioctl_watchdog.c b/tests/ioctl_watchdog.c new file mode 100644 index 00000000..d1af8365 --- /dev/null +++ b/tests/ioctl_watchdog.c @@ -0,0 +1,61 @@ +/* + * Check decoding of WDIOC* commands of ioctl syscall. + * + * Copyright (c) 2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#include +#include +#include +#include + +#define XLAT_MACROS_ONLY +#include "xlat/watchdog_ioctl_cmds.h" +#undef XLAT_MACROS_ONLY + +#define RVAL_EBADF " = -1 EBADF (%m)\n" + +int +main(void) +{ + int val = 123; + + ioctl(-1, WDIOC_GETSTATUS, &val); + printf("ioctl(-1, WDIOC_GETSTATUS, %p)" RVAL_EBADF, &val); + + ioctl(-1, WDIOC_GETBOOTSTATUS, &val); + printf("ioctl(-1, WDIOC_GETBOOTSTATUS, %p)" RVAL_EBADF, &val); + + ioctl(-1, WDIOC_GETTEMP, &val); + printf("ioctl(-1, WDIOC_GETTEMP, %p)" RVAL_EBADF, &val); + + ioctl(-1, WDIOC_GETTIMEOUT, &val); + printf("ioctl(-1, WDIOC_GETTIMEOUT, %p)" RVAL_EBADF, &val); + + ioctl(-1, WDIOC_GETPRETIMEOUT, &val); + printf("ioctl(-1, WDIOC_GETPRETIMEOUT, %p)" RVAL_EBADF, &val); + + ioctl(-1, WDIOC_GETTIMELEFT, &val); + printf("ioctl(-1, WDIOC_GETTIMELEFT, %p)" RVAL_EBADF, &val); + + ioctl(-1, WDIOC_SETTIMEOUT, &val); + printf("ioctl(-1, WDIOC_SETTIMEOUT, [123])" RVAL_EBADF); + + ioctl(-1, WDIOC_SETPRETIMEOUT, &val); + printf("ioctl(-1, WDIOC_SETPRETIMEOUT, [123])" RVAL_EBADF); + + ioctl(-1, WDIOC_KEEPALIVE); + printf("ioctl(-1, WDIOC_KEEPALIVE)" RVAL_EBADF); + + ioctl(-1, _IOC(_IOC_NONE, 'W', 0xff, 0), &val); + printf("ioctl(-1, _IOC(_IOC_NONE, %#x, 0xff, 0), %p)" RVAL_EBADF, + 'W', &val); + + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests/ioctl_watchdog.gen.test b/tests/ioctl_watchdog.gen.test new file mode 100755 index 00000000..ed1c71f4 --- /dev/null +++ b/tests/ioctl_watchdog.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioctl_watchdog +ioctl.test ); do not edit. +set -- +. "${srcdir=.}/ioctl.test" diff --git a/tests/ioperm.c b/tests/ioperm.c index 3f99b2db..cba8e7be 100644 --- a/tests/ioperm.c +++ b/tests/ioperm.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_ioperm diff --git a/tests/iopl.c b/tests/iopl.c index f8904030..f8c772b6 100644 --- a/tests/iopl.c +++ b/tests/iopl.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_iopl diff --git a/tests/ioprio--pidns-translation.c b/tests/ioprio--pidns-translation.c new file mode 100644 index 00000000..bcb49a8b --- /dev/null +++ b/tests/ioprio--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "ioprio.c" diff --git a/tests/ioprio--pidns-translation.gen.test b/tests/ioprio--pidns-translation.gen.test new file mode 100755 index 00000000..f6a9c726 --- /dev/null +++ b/tests/ioprio--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ioprio--pidns-translation test_pidns -a18 -e trace=ioprio_get,ioprio_set); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a18 -e trace=ioprio_get,ioprio_set diff --git a/tests/ioprio.c b/tests/ioprio.c index 65775963..5d998a22 100644 --- a/tests/ioprio.c +++ b/tests/ioprio.c @@ -2,15 +2,15 @@ * Check decoding of ioprio_get and ioprio_set syscalls. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" - -#include +#include "scno.h" +#include "pidns.h" #if defined(__NR_ioprio_get) && defined(__NR_ioprio_set) @@ -30,12 +30,18 @@ enum { int main(void) { + PIDNS_TEST_INIT; + static const kernel_ulong_t bogus_which = (kernel_ulong_t) 0xdeadfacefa57beefULL; static const kernel_ulong_t bogus_who = (kernel_ulong_t) 0xbadc0dedda7a1057ULL; static const kernel_ulong_t bogus_ioprio = (kernel_ulong_t) 0xdec0ded1facefeedULL; + + const int pid = getpid(); + const int pgid = getpgid(0); + # if !XLAT_RAW static const char * const bogus_ioprio_str = "IOPRIO_PRIO_VALUE(0x7d677 /* IOPRIO_CLASS_??? */, 7917)"; @@ -46,6 +52,7 @@ main(void) rc = syscall(__NR_ioprio_get, bogus_which, bogus_who); errstr = sprintrc(rc); + pidns_print_leader(); # if XLAT_RAW printf("ioprio_get(%#x, %d) = %s\n", (int) bogus_which, (int) bogus_who, errstr); @@ -54,47 +61,52 @@ main(void) (int) bogus_which, (int) bogus_who, errstr); # endif - rc = syscall(__NR_ioprio_get, 1, 0); + rc = syscall(__NR_ioprio_get, 1, pid); errstr = sprintrc(rc); + pidns_print_leader(); + printf("ioprio_get("); # if XLAT_RAW - printf("ioprio_get(0x1, 0) = %s\n", errstr); + printf("0x1, "); # elif XLAT_VERBOSE - printf("ioprio_get(0x1 /* IOPRIO_WHO_PROCESS */, 0) = %s", errstr); - if (rc >= 0) { - printf(" (IOPRIO_PRIO_VALUE(%u /* ", (unsigned int) rc >> 13); - printxval(ioprio_class, (unsigned int) rc >> 13, - "IOPRIO_CLASS_???"); - printf(" */, %u))", (unsigned int) rc & 0x1fff); - } - puts(""); + printf("0x1 /* IOPRIO_WHO_PROCESS */, "); # else /* XLAT_ABBREV */ - printf("ioprio_get(IOPRIO_WHO_PROCESS, 0) = %s", errstr); + printf("IOPRIO_WHO_PROCESS, "); +# endif + printf("%d%s) = %s", pid, pidns_pid2str(PT_TGID), errstr); +# if !XLAT_RAW if (rc >= 0) { printf(" (IOPRIO_PRIO_VALUE("); printxval(ioprio_class, (unsigned int) rc >> 13, "IOPRIO_CLASS_???"); printf(", %u))", (unsigned int) rc & 0x1fff); } - puts(""); # endif + puts(""); - rc = syscall(__NR_ioprio_set, 2, 0, 8191); + rc = syscall(__NR_ioprio_set, 2, pgid, 8191); errstr = sprintrc(rc); + pidns_print_leader(); + printf("ioprio_set("); # if XLAT_RAW - printf("ioprio_set(%#x, 0, 8191) = %s\n", 2, errstr); + printf("%#x", 2); # elif XLAT_VERBOSE - printf("ioprio_set(%#x /* IOPRIO_WHO_PGRP */, 0, 8191" - " /* IOPRIO_PRIO_VALUE(0 /* IOPRIO_CLASS_NONE */, 8191) */)" - " = %s\n", - 2, errstr); + printf("%#x /* IOPRIO_WHO_PGRP */", 2); # else /* XLAT_ABBREV */ - printf("ioprio_set(IOPRIO_WHO_PGRP, 0" - ", IOPRIO_PRIO_VALUE(IOPRIO_CLASS_NONE, 8191)) = %s\n", - errstr); + printf("IOPRIO_WHO_PGRP"); +# endif + printf(", %d%s", pgid, pidns_pid2str(PT_PGID)); +# if XLAT_RAW + printf(", 8191)"); +# elif XLAT_VERBOSE + printf(", 8191 /* IOPRIO_PRIO_VALUE(0 /* IOPRIO_CLASS_NONE */, 8191) */)"); +# else /* XLAT_ABBREV */ + printf(", IOPRIO_PRIO_VALUE(IOPRIO_CLASS_NONE, 8191))"); # endif + printf(" = %s\n", errstr); rc = syscall(__NR_ioprio_set, bogus_which, bogus_who, bogus_ioprio); errstr = sprintrc(rc); + pidns_print_leader(); # if XLAT_RAW printf("ioprio_set(%#x, %d, %d) = %s\n", (int) bogus_which, (int) bogus_who, (int) bogus_ioprio, @@ -109,6 +121,7 @@ main(void) errstr); # endif + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; diff --git a/tests/ipc.c b/tests/ipc.c index 5c86f207..5cd0b603 100644 --- a/tests/ipc.c +++ b/tests/ipc.c @@ -2,13 +2,14 @@ * Check decoding of ipc syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_ipc && defined HAVE_LINUX_IPC_H diff --git a/tests/ipc_msg.c b/tests/ipc_msg.c index b12f4af3..55dc287f 100644 --- a/tests/ipc_msg.c +++ b/tests/ipc_msg.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2015 Elvira Khabirova * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -20,18 +20,24 @@ # define MSG_STAT_ANY 13 #endif +#undef TEST_MSGCTL_BOGUS_ADDR + +/* + * Starting with commit glibc-2.32~83, on every 32-bit architecture + * where 32-bit time_t support is enabled, glibc tries to retrieve + * the data provided in the third argument of msgctl call. + */ +#if GLIBC_PREREQ_GE(2, 32) && defined __TIMESIZE && __TIMESIZE != 64 +# define TEST_MSGCTL_BOGUS_ADDR 0 +#endif /* * Before glibc-2.22-122-gbe48165, ppc64 code tried to retrieve data * provided in third argument of msgctl call (in case of IPC_SET cmd) * which led to segmentation fault. */ -#undef TEST_MSGCTL_BOGUS_ADDR -#if defined __GLIBC__ && defined POWERPC64 -# if !(defined __GLIBC_MINOR__) \ - || ((__GLIBC__ << 16) + __GLIBC_MINOR__ < (2 << 16) + 23) -# define TEST_MSGCTL_BOGUS_ADDR 0 -# endif -#endif /* __GLIBC__ && POWERPC64 */ +#if GLIBC_PREREQ_LT(2, 23) && (defined POWERPC64 || defined POWERPC64LE) +# define TEST_MSGCTL_BOGUS_ADDR 0 +#endif #ifndef TEST_MSGCTL_BOGUS_ADDR # define TEST_MSGCTL_BOGUS_ADDR 1 @@ -43,6 +49,7 @@ # define str_ipc_rmid "0" # define str_ipc_set "0x1" # define str_ipc_stat "0x2" +# define str_ipc_info "0x3" # define str_msg_stat "0xb" # define str_msg_info "0xc" # define str_msg_stat_any "0xd" @@ -55,6 +62,7 @@ # define str_ipc_rmid "0 /\\* IPC_RMID \\*/" # define str_ipc_set "0x1 /\\* IPC_SET \\*/" # define str_ipc_stat "0x2 /\\* IPC_STAT \\*/" +# define str_ipc_info "0x3 /\\* IPC_INFO \\*/" # define str_msg_stat "0xb /\\* MSG_STAT \\*/" # define str_msg_info "0xc /\\* MSG_INFO \\*/" # define str_msg_stat_any "0xd /\\* MSG_STAT_ANY \\*/" @@ -66,6 +74,7 @@ # define str_ipc_rmid "IPC_RMID" # define str_ipc_set "IPC_SET" # define str_ipc_stat "IPC_STAT" +# define str_ipc_info "IPC_INFO" # define str_msg_stat "MSG_STAT" # define str_msg_info "MSG_INFO" # define str_msg_stat_any "MSG_STAT_ANY" @@ -84,6 +93,68 @@ cleanup(void) id = -1; } +static void +print_msginfo(const char *const str_ipc_cmd, + const struct msginfo *const info, + const int rc) +{ + if (rc < 0) { + printf("msgctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", + id, str_ipc_64, str_ipc_cmd, info, sprintrc_grep(rc)); + return; + } + + printf("msgctl\\(%d, (%s\\|)?%s, \\{msgpool=%d, msgmap=%d, msgmax=%d" + ", msgmnb=%d, msgmni=%d, msgssz=%d, msgtql=%d, msgseg=%u\\}\\)" + " = %d\n", + id, + str_ipc_64, + str_ipc_cmd, + info->msgpool, + info->msgmap, + info->msgmax, + info->msgmnb, + info->msgmni, + info->msgssz, + info->msgtql, + (unsigned) info->msgseg, + rc); +} + +static void +print_msqid_ds(const char *const str_ipc_cmd, + const struct msqid_ds *const ds, + const int rc) +{ + if (rc < 0) { + printf("msgctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", + id, str_ipc_64, str_ipc_cmd, ds, sprintrc_grep(rc)); + return; + } + + printf("msgctl\\(%d, (%s\\|)?%s, \\{msg_perm=\\{uid=%u" + ", gid=%u, mode=%#o, key=%u, cuid=%u, cgid=%u\\}" + ", msg_stime=%u, msg_rtime=%u, msg_ctime=%u, msg_qnum=%u" + ", msg_qbytes=%u, msg_lspid=%d, msg_lrpid=%d\\}\\) = %d\n", + id, + str_ipc_64, + str_ipc_cmd, + (unsigned) ds->msg_perm.uid, + (unsigned) ds->msg_perm.gid, + (unsigned) ds->msg_perm.mode, + (unsigned) ds->msg_perm.__key, + (unsigned) ds->msg_perm.cuid, + (unsigned) ds->msg_perm.cgid, + (unsigned) ds->msg_stime, + (unsigned) ds->msg_rtime, + (unsigned) ds->msg_ctime, + (unsigned) ds->msg_qnum, + (unsigned) ds->msg_qbytes, + (int) ds->msg_lspid, + (int) ds->msg_lrpid, + rc); +} + int main(void) { @@ -98,7 +169,10 @@ main(void) static const int bogus_flags = 0xface1e55 & ~IPC_CREAT; int rc; - struct msqid_ds ds; + union { + struct msqid_ds ds; + struct msginfo info; + } buf; rc = msgget(bogus_key, bogus_flags); printf("msgget\\(%#llx, %s\\|%#04o\\) = %s\n", @@ -123,39 +197,32 @@ main(void) sprintrc_grep(rc)); #endif - if (msgctl(id, IPC_STAT, &ds)) + rc = msgctl(id, IPC_STAT, &buf.ds); + if (rc < 0) perror_msg_and_skip("msgctl IPC_STAT"); - printf("msgctl\\(%d, (%s\\|)?%s, \\{msg_perm=\\{uid=%u" - ", gid=%u, mode=%#o, key=%u, cuid=%u, cgid=%u\\}, msg_stime=%u" - ", msg_rtime=%u, msg_ctime=%u, msg_qnum=%u, msg_qbytes=%u" - ", msg_lspid=%u, msg_lrpid=%u\\}\\) = 0\n", - id, str_ipc_64, str_ipc_stat, - (unsigned) ds.msg_perm.uid, (unsigned) ds.msg_perm.gid, - (unsigned) ds.msg_perm.mode, (unsigned) ds.msg_perm.__key, - (unsigned) ds.msg_perm.cuid, (unsigned) ds.msg_perm.cgid, - (unsigned) ds.msg_stime, (unsigned) ds.msg_rtime, - (unsigned) ds.msg_ctime, (unsigned) ds.msg_qnum, - (unsigned) ds.msg_qbytes, (unsigned) ds.msg_lspid, - (unsigned) ds.msg_lrpid); - - if (msgctl(id, IPC_SET, &ds)) + print_msqid_ds(str_ipc_stat, &buf.ds, rc); + + if (msgctl(id, IPC_SET, &buf.ds)) perror_msg_and_skip("msgctl IPC_SET"); printf("msgctl\\(%d, (%s\\|)?%s, \\{msg_perm=\\{uid=%u" - ", gid=%u, mode=%#o\\}, ...\\}\\) = 0\n", - id, str_ipc_64, str_ipc_set, (unsigned) ds.msg_perm.uid, - (unsigned) ds.msg_perm.gid, (unsigned) ds.msg_perm.mode); + ", gid=%u, mode=%#o\\}, msg_qbytes=%u\\}\\) = 0\n", + id, str_ipc_64, str_ipc_set, + (unsigned) buf.ds.msg_perm.uid, + (unsigned) buf.ds.msg_perm.gid, + (unsigned) buf.ds.msg_perm.mode, + (unsigned) buf.ds.msg_qbytes); - rc = msgctl(0, MSG_INFO, &ds); - printf("msgctl\\(0, (%s\\|)?%s, %p\\) = %s\n", - str_ipc_64, str_msg_info, &ds, sprintrc_grep(rc)); + rc = msgctl(id, IPC_INFO, &buf.ds); + print_msginfo(str_ipc_info, &buf.info, rc); - rc = msgctl(id, MSG_STAT, &ds); - printf("msgctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", - id, str_ipc_64, str_msg_stat, &ds, sprintrc_grep(rc)); + rc = msgctl(id, MSG_INFO, &buf.ds); + print_msginfo(str_msg_info, &buf.info, rc); - rc = msgctl(id, MSG_STAT_ANY, &ds); - printf("msgctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", - id, str_ipc_64, str_msg_stat_any, &ds, sprintrc_grep(rc)); + rc = msgctl(id, MSG_STAT, &buf.ds); + print_msqid_ds(str_msg_stat, &buf.ds, rc); + + rc = msgctl(id, MSG_STAT_ANY, &buf.ds); + print_msqid_ds(str_msg_stat_any, &buf.ds, rc); return 0; } diff --git a/tests/ipc_msgbuf-Xraw.gen.test b/tests/ipc_msgbuf-Xraw.gen.test index c1112cb6..be350755 100755 --- a/tests/ipc_msgbuf-Xraw.gen.test +++ b/tests/ipc_msgbuf-Xraw.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_msgbuf-Xraw +ipc_msgbuf.test -Xraw -a22); do not edit. -set -- -Xraw -a22 +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_msgbuf-Xraw +ipc_msgbuf.test -Xraw -a19); do not edit. +set -- -Xraw -a19 . "${srcdir=.}/ipc_msgbuf.test" diff --git a/tests/ipc_msgbuf.c b/tests/ipc_msgbuf.c index 92525f94..ffad6913 100644 --- a/tests/ipc_msgbuf.c +++ b/tests/ipc_msgbuf.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2015 Elvira Khabirova * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +11,7 @@ #include #include #include -#include +#include "scno.h" #include #include #include diff --git a/tests/ipc_sem.c b/tests/ipc_sem.c index 7341f728..365ed177 100644 --- a/tests/ipc_sem.c +++ b/tests/ipc_sem.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2015 Andreas Schwab * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,6 +11,7 @@ #include #include #include +#include #include #include "xlat.h" @@ -24,7 +25,9 @@ # define str_ipc_flags "0xface1e00" # define str_ipc_private "0" # define str_ipc_rmid "0" +# define str_ipc_set "0x1" # define str_ipc_stat "0x2" +# define str_ipc_info "0x3" # define str_sem_stat "0x12" # define str_sem_info "0x13" # define str_sem_stat_any "0x14" @@ -35,7 +38,9 @@ "0xface1e00 /\\* IPC_CREAT\\|IPC_EXCL\\|IPC_NOWAIT\\|0xface1000 \\*/" # define str_ipc_private "0 /\\* IPC_PRIVATE \\*/" # define str_ipc_rmid "0 /\\* IPC_RMID \\*/" +# define str_ipc_set "0x1 /\\* IPC_SET \\*/" # define str_ipc_stat "0x2 /\\* IPC_STAT \\*/" +# define str_ipc_info "0x3 /\\* IPC_INFO \\*/" # define str_sem_stat "0x12 /\\* SEM_STAT \\*/" # define str_sem_info "0x13 /\\* SEM_INFO \\*/" # define str_sem_stat_any "0x14 /\\* SEM_STAT_ANY \\*/" @@ -45,7 +50,9 @@ # define str_ipc_flags "IPC_CREAT\\|IPC_EXCL\\|IPC_NOWAIT\\|0xface1000" # define str_ipc_private "IPC_PRIVATE" # define str_ipc_rmid "IPC_RMID" +# define str_ipc_set "IPC_SET" # define str_ipc_stat "IPC_STAT" +# define str_ipc_info "IPC_INFO" # define str_sem_stat "SEM_STAT" # define str_sem_info "SEM_INFO" # define str_sem_stat_any "SEM_STAT_ANY" @@ -72,6 +79,66 @@ cleanup(void) id = -1; } +static void +print_semid_ds(const char *const str_ipc_cmd, + const struct semid_ds *const ds, + const int rc) +{ + if (rc < 0) { + printf("semctl\\(%d, 0, (%s\\|)?%s, (%p|\\[%p\\])\\) = %s\n", + id, str_ipc_64, str_ipc_cmd, &ds, &ds, + sprintrc_grep(rc)); + return; + } + printf("semctl\\(%d, 0, (%s\\|)?%s, \\{sem_perm=\\{uid=%u, gid=%u" + ", mode=%#o, key=%u, cuid=%u, cgid=%u\\}, sem_otime=%llu" + ", sem_ctime=%llu, sem_nsems=%llu\\}\\) = %d\n", + id, + str_ipc_64, + str_ipc_cmd, + (unsigned) ds->sem_perm.uid, + (unsigned) ds->sem_perm.gid, + (unsigned) ds->sem_perm.mode, + (unsigned) ds->sem_perm.__key, + (unsigned) ds->sem_perm.cuid, + (unsigned) ds->sem_perm.cgid, + (unsigned long long) ds->sem_otime, + (unsigned long long) ds->sem_ctime, + (unsigned long long) ds->sem_nsems, + rc); +} + +static void +print_sem_info(const char *const str_ipc_cmd, + const struct seminfo *const info, + const int rc) +{ + if (rc < 0) { + printf("semctl\\(%d, 0, (%s\\|)?%s, (%p|\\[%p\\])\\) = %s\n", + id, str_ipc_64, str_ipc_cmd, &info, &info, + sprintrc_grep(rc)); + return; + } + + printf("semctl\\(%d, 0, (%s\\|)?%s, \\{semmap=%d, semmni=%d" + ", semmns=%d, semmnu=%d, semmsl=%d, semopm=%d, semume=%d" + ", semusz=%d, semvmx=%d, semaem=%d\\}\\) = %d\n", + id, + str_ipc_64, + str_ipc_cmd, + info->semmap, + info->semmni, + info->semmns, + info->semmnu, + info->semmsl, + info->semopm, + info->semume, + info->semusz, + info->semvmx, + info->semaem, + rc); +} + int main(void) { @@ -91,6 +158,8 @@ main(void) struct semid_ds ds; struct seminfo info; + memset(&ds, 0, sizeof(ds)); + rc = semget(bogus_key, bogus_size, bogus_flags); printf("semget\\(%#llx, %d, %s\\|%#04o\\) = %s\n", zero_extend_signed_to_ull(bogus_key), bogus_size, @@ -108,25 +177,41 @@ main(void) bogus_semid, bogus_semnum, str_ipc_64, str_bogus_cmd, bogus_arg, bogus_arg, sprintrc_grep(rc)); + un.__buf = &info; + rc = semctl(id, 0, IPC_INFO, un); + print_sem_info(str_ipc_info, &info, rc); + + rc = semctl(id, 0, SEM_INFO, un); + print_sem_info(str_sem_info, &info, rc); + un.buf = &ds; - if (semctl(id, 0, IPC_STAT, un)) + rc = semctl(id, 0, IPC_STAT, un); + if (rc < 0) perror_msg_and_skip("semctl IPC_STAT"); - printf("semctl\\(%d, 0, (%s\\|)?%s, \\[?%p\\]?\\) = 0\n", - id, str_ipc_64, str_ipc_stat, &ds); + print_semid_ds(str_ipc_stat, &ds, rc); - un.__buf = &info; - rc = semctl(0, 0, SEM_INFO, un); - printf("semctl\\(0, 0, (%s\\|)?%s, \\[?%p\\]?\\) = %s\n", - str_ipc_64, str_sem_info, &info, sprintrc_grep(rc)); + if (semctl(id, 0, IPC_SET, un)) + perror_msg_and_skip("semctl IPC_SET"); + printf("semctl\\(%d, 0, (%s\\|)?%s, \\{sem_perm=\\{uid=%u, gid=%u" + ", mode=%#o\\}\\}\\) = 0\n", + id, str_ipc_64, str_ipc_set, + (unsigned) ds.sem_perm.uid, + (unsigned) ds.sem_perm.gid, + (unsigned) ds.sem_perm.mode); - un.buf = &ds; rc = semctl(id, 0, SEM_STAT, un); - printf("semctl\\(%d, 0, (%s\\|)?%s, \\[?%p\\]?\\) = %s\n", - id, str_ipc_64, str_sem_stat, &ds, sprintrc_grep(rc)); + print_semid_ds(str_sem_stat, &ds, rc); +/* + * glibc fails to pass the buffer for SEM_STAT_ANY command, + * so the kernel receives garbage instead of un.buf address: + * https://sourceware.org/bugzilla/show_bug.cgi?id=26637 + * musl doesn't pass the buffer either. + */ +#if 0 rc = semctl(id, 0, SEM_STAT_ANY, un); - printf("semctl\\(%d, 0, (%s\\|)?%s, (%p|\\[(%p|NULL)\\]|NULL)\\) = %s\n", - id, str_ipc_64, str_sem_stat_any, &ds, &ds, sprintrc_grep(rc)); + print_semid_ds(str_sem_stat_any, &ds, rc); +#endif return 0; } diff --git a/tests/ipc_shm-Xabbrev.gen.test b/tests/ipc_shm-Xabbrev.gen.test index d68c2462..19821620 100755 --- a/tests/ipc_shm-Xabbrev.gen.test +++ b/tests/ipc_shm-Xabbrev.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_shm-Xabbrev +ipc.sh -Xabbrev -a29); do not edit. -set -- -Xabbrev -a29 +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_shm-Xabbrev +ipc.sh -Xabbrev -a26); do not edit. +set -- -Xabbrev -a26 . "${srcdir=.}/ipc.sh" diff --git a/tests/ipc_shm-Xverbose.gen.test b/tests/ipc_shm-Xverbose.gen.test index 170adeee..457ad666 100755 --- a/tests/ipc_shm-Xverbose.gen.test +++ b/tests/ipc_shm-Xverbose.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_shm-Xverbose +ipc.sh -Xverbose -a36); do not edit. -set -- -Xverbose -a36 +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_shm-Xverbose +ipc.sh -Xverbose -a34); do not edit. +set -- -Xverbose -a34 . "${srcdir=.}/ipc.sh" diff --git a/tests/ipc_shm.c b/tests/ipc_shm.c index 76c19d8d..18de6bf1 100644 --- a/tests/ipc_shm.c +++ b/tests/ipc_shm.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2015 Elvira Khabirova * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -25,6 +25,10 @@ # define SHM_STAT_ANY 15 #endif +#ifndef SHM_NORESERVE +# define SHM_NORESERVE 010000 +#endif + #include "xlat.h" #include "xlat/shm_resource_flags.h" @@ -35,6 +39,7 @@ # define str_ipc_rmid "0" # define str_ipc_set "0x1" # define str_ipc_stat "0x2" +# define str_ipc_info "0x3" # define str_shm_stat "0xd" # define str_shm_info "0xe" # define str_shm_stat_any "0xf" @@ -49,6 +54,7 @@ # define str_ipc_rmid "0 /\\* IPC_RMID \\*/" # define str_ipc_set "0x1 /\\* IPC_SET \\*/" # define str_ipc_stat "0x2 /\\* IPC_STAT \\*/" +# define str_ipc_info "0x3 /\\* IPC_INFO \\*/" # define str_shm_stat "0xd /\\* SHM_STAT \\*/" # define str_shm_info "0xe /\\* SHM_INFO \\*/" # define str_shm_stat_any "0xf /\\* SHM_STAT_ANY \\*/" @@ -62,6 +68,7 @@ # define str_ipc_rmid "IPC_RMID" # define str_ipc_set "IPC_SET" # define str_ipc_stat "IPC_STAT" +# define str_ipc_info "IPC_INFO" # define str_shm_stat "SHM_STAT" # define str_shm_info "SHM_INFO" # define str_shm_stat_any "SHM_STAT_ANY" @@ -69,6 +76,21 @@ # define str_bogus_cmd "0xdefaced2 /\\* SHM_\\?\\?\\? \\*/" #endif +#undef TEST_SHMCTL_BOGUS_ADDR + +/* + * Starting with commit glibc-2.32~80, on every 32-bit architecture + * where 32-bit time_t support is enabled, glibc tries to retrieve + * the data provided in the third argument of shmctl call. + */ +#if GLIBC_PREREQ_GE(2, 32) && defined __TIMESIZE && __TIMESIZE != 64 +# define TEST_SHMCTL_BOGUS_ADDR 0 +#endif + +#ifndef TEST_SHMCTL_BOGUS_ADDR +# define TEST_SHMCTL_BOGUS_ADDR 1 +#endif + static int id = -1; static void @@ -80,6 +102,89 @@ cleanup(void) id = -1; } +static void +print_shmid_ds(const char *const str_ipc_cmd, + const struct shmid_ds *const ds, + const int rc) +{ + if (rc < 0) { + printf("shmctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", + id, str_ipc_64, str_ipc_cmd, ds, sprintrc_grep(rc)); + return; + } + printf("shmctl\\(%d, (%s\\|)?%s, \\{shm_perm=\\{uid=%u, gid=%u" + ", mode=%#o, key=%u, cuid=%u, cgid=%u\\}, shm_segsz=%u" + ", shm_cpid=%d, shm_lpid=%d, shm_nattch=%u, shm_atime=%u" + ", shm_dtime=%u, shm_ctime=%u\\}\\) = %d\n", + id, + str_ipc_64, + str_ipc_cmd, + (unsigned) ds->shm_perm.uid, + (unsigned) ds->shm_perm.gid, + (unsigned) ds->shm_perm.mode, + (unsigned) ds->shm_perm.__key, + (unsigned) ds->shm_perm.cuid, + (unsigned) ds->shm_perm.cgid, + (unsigned) ds->shm_segsz, + (int) ds->shm_cpid, + (int) ds->shm_lpid, + (unsigned) ds->shm_nattch, + (unsigned) ds->shm_atime, + (unsigned) ds->shm_dtime, + (unsigned) ds->shm_ctime, + rc); +} + +static void +print_ipc_info(const char *const str_ipc_cmd, + const struct shminfo *const info, + const int rc) +{ + if (rc < 0) { + printf("shmctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", + id, str_ipc_64, str_ipc_cmd, info, sprintrc_grep(rc)); + return; + } + + printf("shmctl\\(%d, (%s\\|)?%s, \\{shmmax=%llu, shmmin=%llu" + ", shmmni=%llu, shmseg=%llu, shmall=%llu\\}\\) = %d\n", + id, + str_ipc_64, + str_ipc_cmd, + (unsigned long long) info->shmmax, + (unsigned long long) info->shmmin, + (unsigned long long) info->shmmni, + (unsigned long long) info->shmseg, + (unsigned long long) info->shmall, + rc); +} + +static void +print_shm_info(const char *const str_ipc_cmd, + const struct shm_info *const info, + const int rc) +{ + if (rc < 0) { + printf("shmctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", + id, str_ipc_64, str_ipc_cmd, info, sprintrc_grep(rc)); + return; + } + + printf("shmctl\\(%d, (%s\\|)?%s, \\{used_ids=%d, shm_tot=%llu" + ", shm_rss=%llu, shm_swp=%llu, swap_attempts=%llu" + ", swap_successes=%llu\\}\\) = %d\n", + id, + str_ipc_64, + str_ipc_cmd, + info->used_ids, + (unsigned long long) info->shm_tot, + (unsigned long long) info->shm_rss, + (unsigned long long) info->shm_swp, + (unsigned long long) info->swap_attempts, + (unsigned long long) info->swap_successes, + rc); +} + int main(void) { @@ -88,7 +193,9 @@ main(void) static const key_t bogus_key = (key_t) 0xeca86420fdb97531ULL; static const int bogus_id = 0xdefaced1; static const int bogus_cmd = 0xdefaced2; +#if TEST_SHMCTL_BOGUS_ADDR static void * const bogus_addr = (void *) -1L; +#endif static const size_t bogus_size = /* * musl sets size to SIZE_MAX if size argument is greater than @@ -105,7 +212,11 @@ main(void) static const unsigned int huge_flags = 21 << SHM_HUGE_SHIFT; int bogus_flags; int rc; - struct shmid_ds ds; + union { + struct shmid_ds ds; + struct shminfo ipc_info; + struct shm_info shm_info; + } buf; rc = shmget(bogus_key, bogus_size, 0); printf("shmget\\(%#llx, %zu, 000\\) = %s\n", @@ -156,45 +267,38 @@ main(void) printf("shmctl\\(%d, (%s\\|)?%s, NULL\\) = %s\n", bogus_id, str_ipc_64, str_bogus_cmd, sprintrc_grep(rc)); +#if TEST_SHMCTL_BOGUS_ADDR rc = shmctl(bogus_id, IPC_STAT, bogus_addr); printf("shmctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", bogus_id, str_ipc_64, str_ipc_stat, bogus_addr, sprintrc_grep(rc)); +#endif - if (shmctl(id, IPC_STAT, &ds)) + rc = shmctl(id, IPC_STAT, &buf.ds); + if (rc < 0) perror_msg_and_skip("shmctl IPC_STAT"); - printf("shmctl\\(%d, (%s\\|)?%s, \\{shm_perm=\\{uid=%u, gid=%u, " - "mode=%#o, key=%u, cuid=%u, cgid=%u\\}, shm_segsz=%u, shm_cpid=%u, " - "shm_lpid=%u, shm_nattch=%u, shm_atime=%u, shm_dtime=%u, " - "shm_ctime=%u\\}\\) = 0\n", - id, str_ipc_64, str_ipc_stat, - (unsigned) ds.shm_perm.uid, (unsigned) ds.shm_perm.gid, - (unsigned) ds.shm_perm.mode, (unsigned) ds.shm_perm.__key, - (unsigned) ds.shm_perm.cuid, (unsigned) ds.shm_perm.cgid, - (unsigned) ds.shm_segsz, (unsigned) ds.shm_cpid, - (unsigned) ds.shm_lpid, (unsigned) ds.shm_nattch, - (unsigned) ds.shm_atime, (unsigned) ds.shm_dtime, - (unsigned) ds. shm_ctime); - - if (shmctl(id, IPC_SET, &ds)) + print_shmid_ds(str_ipc_stat, &buf.ds, rc); + + if (shmctl(id, IPC_SET, &buf.ds)) perror_msg_and_skip("shmctl IPC_SET"); printf("shmctl\\(%d, (%s\\|)?%s, \\{shm_perm=\\{uid=%u, gid=%u" - ", mode=%#o\\}, ...\\}\\) = 0\n", + ", mode=%#o\\}\\}\\) = 0\n", id, str_ipc_64, str_ipc_set, - (unsigned) ds.shm_perm.uid, (unsigned) ds.shm_perm.gid, - (unsigned) ds.shm_perm.mode); + (unsigned) buf.ds.shm_perm.uid, + (unsigned) buf.ds.shm_perm.gid, + (unsigned) buf.ds.shm_perm.mode); - rc = shmctl(0, SHM_INFO, &ds); - printf("shmctl\\(0, (%s\\|)?%s, %p\\) = %s\n", - str_ipc_64, str_shm_info, &ds, sprintrc_grep(rc)); + rc = shmctl(id, IPC_INFO, &buf.ds); + print_ipc_info(str_ipc_info, &buf.ipc_info, rc); - rc = shmctl(id, SHM_STAT, &ds); - printf("shmctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", - id, str_ipc_64, str_shm_stat, &ds, sprintrc_grep(rc)); + rc = shmctl(id, SHM_INFO, &buf.ds); + print_shm_info(str_shm_info, &buf.shm_info, rc); - rc = shmctl(id, SHM_STAT_ANY, &ds); - printf("shmctl\\(%d, (%s\\|)?%s, %p\\) = %s\n", - id, str_ipc_64, str_shm_stat_any, &ds, sprintrc_grep(rc)); + rc = shmctl(id, SHM_STAT, &buf.ds); + print_shmid_ds(str_shm_stat, &buf.ds, rc); + + rc = shmctl(id, SHM_STAT_ANY, &buf.ds); + print_shmid_ds(str_shm_stat_any, &buf.ds, rc); return 0; } diff --git a/tests/ipc_shm.gen.test b/tests/ipc_shm.gen.test index 2e697d3f..72f1571f 100755 --- a/tests/ipc_shm.gen.test +++ b/tests/ipc_shm.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_shm +ipc.sh -a29); do not edit. -set -- -a29 +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ipc_shm +ipc.sh -a26); do not edit. +set -- -a26 . "${srcdir=.}/ipc.sh" diff --git a/tests/kcmp-y--pidns-translation.c b/tests/kcmp-y--pidns-translation.c new file mode 100644 index 00000000..f54d94cc --- /dev/null +++ b/tests/kcmp-y--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "kcmp-y.c" diff --git a/tests/kcmp-y--pidns-translation.gen.test b/tests/kcmp-y--pidns-translation.gen.test new file mode 100755 index 00000000..61c3ac9c --- /dev/null +++ b/tests/kcmp-y--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (kcmp-y--pidns-translation test_pidns -a22 -y -e trace=kcmp); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a22 -y -e trace=kcmp diff --git a/tests/kcmp.c b/tests/kcmp.c index 4e3433ee..07a446ee 100644 --- a/tests/kcmp.c +++ b/tests/kcmp.c @@ -2,16 +2,15 @@ * Check decoding of kcmp syscall. * * Copyright (c) 2016-2017 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" - -#include #include "scno.h" +#include "pidns.h" #ifdef __NR_kcmp @@ -65,7 +64,26 @@ static const char zero_path[] = "/dev/zero"; static void printpidfd(const char *prefix, pid_t pid, unsigned fd) { - printf("%s%d", prefix, fd); + const char *path = NULL; + +# if VERBOSE_FD + if (pid == getpid()) { + switch (fd) + { + case NULL_FD: + path = null_path; + break; + case ZERO_FD: + path = zero_path; + break; + } + } +# endif + + if (path) + printf("%s%d<%s>", prefix, fd, path); + else + printf("%s%d", prefix, fd); } /* @@ -83,7 +101,11 @@ do_kcmp(kernel_ulong_t pid1, kernel_ulong_t pid2, kernel_ulong_t type, rc = syscall(__NR_kcmp, pid1, pid2, type, idx1, idx2); errstr = sprintrc(rc); - printf("kcmp(%d, %d, ", (int) pid1, (int) pid2); + const char *pid_str = pidns_pid2str(PT_TGID); + pidns_print_leader(); + printf("kcmp(%d%s, %d%s, ", + (int) pid1, (int) pid1 == getpid() ? pid_str : "", + (int) pid2, (int) pid2 == getpid() ? pid_str : ""); if (type_str) printf("%s", type_str); @@ -128,6 +150,8 @@ do_kcmp(kernel_ulong_t pid1, kernel_ulong_t pid2, kernel_ulong_t type, int main(void) { + PIDNS_TEST_INIT; + static const kernel_ulong_t bogus_pid1 = (kernel_ulong_t) 0xdeadca75face1057ULL; static const kernel_ulong_t bogus_pid2 = @@ -180,7 +204,7 @@ main(void) /* KCMP_FILE is the only type which has additional args */ do_kcmp(3141592653U, 2718281828U, ARG_STR(KCMP_FILE), bogus_idx1, bogus_idx2); - do_kcmp(-1, -1, ARG_STR(KCMP_FILE), NULL_FD, ZERO_FD); + do_kcmp(getpid(), getpid(), ARG_STR(KCMP_FILE), NULL_FD, ZERO_FD); /* Types without additional args */ do_kcmp(-1, -1, ARG_STR(KCMP_VM), bogus_idx1, bogus_idx2); @@ -199,10 +223,11 @@ main(void) for (i = 0; i < ARRAY_SIZE(slot_data); i++) { memcpy(slot, slot_data + i, sizeof(*slot)); - do_kcmp(getpid(), getppid(), ARG_STR(KCMP_EPOLL_TFD), NULL_FD, + do_kcmp(getpid(), -1, ARG_STR(KCMP_EPOLL_TFD), NULL_FD, (uintptr_t) slot, 1); } + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; diff --git a/tests/kern_features.c b/tests/kern_features.c index 4814414d..d4b79a6d 100644 --- a/tests/kern_features.c +++ b/tests/kern_features.c @@ -1,7 +1,7 @@ /* * Check decoding of SPARC-specific kern_features syscall. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,7 +9,6 @@ #include "tests.h" -#include #include "raw_syscall.h" #include "scno.h" diff --git a/tests/kernel_old_timespec.h b/tests/kernel_old_timespec.h new file mode 100644 index 00000000..fac6d7e5 --- /dev/null +++ b/tests/kernel_old_timespec.h @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef STRACE_KERNEL_OLD_TIMESPEC_H +# define STRACE_KERNEL_OLD_TIMESPEC_H + +typedef struct { +# if SIZEOF_KERNEL_LONG_T == 4 || defined LINUX_MIPSN32 + int +# else + long long +# endif + tv_sec, tv_nsec; +} kernel_old_timespec_t; + +#endif /* !STRACE_KERNEL_OLD_TIMESPEC_H */ diff --git a/tests/kernel_old_timex.h b/tests/kernel_old_timex.h new file mode 100644 index 00000000..2591a1ad --- /dev/null +++ b/tests/kernel_old_timex.h @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef STRACE_KERNEL_OLD_TIMEX_H +# define STRACE_KERNEL_OLD_TIMEX_H + +# define HAVE_ARCH_TIME32_SYSCALLS 1 +# include "kernel_timex.h" +# undef HAVE_ARCH_TIME32_SYSCALLS + +typedef +# if SIZEOF_KERNEL_LONG_T == 4 || defined LINUX_MIPSN32 +kernel_timex32_t +# elif defined __sparc__ +kernel_sparc64_timex_t +# else +kernel_timex64_t +# endif +kernel_old_timex_t; + +#endif /* !STRACE_KERNEL_OLD_TIMEX_H */ diff --git a/tests/kernel_version.c b/tests/kernel_version.c index 6e1c0eac..692f94a1 100644 --- a/tests/kernel_version.c +++ b/tests/kernel_version.c @@ -1,7 +1,7 @@ /* * Check kernel version decoding. * - * Copyright (c) 2015-2019 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -15,7 +15,6 @@ #include #include -#include #include "scno.h" #ifdef HAVE_LINUX_BPF_H @@ -35,9 +34,9 @@ static void print_bpf_attr(void) { #if XLAT_RAW - printf("{prog_type=0x16" + printf("{prog_type=0x1f" #else - printf("{prog_type=0x16 /* BPF_PROG_TYPE_??? */" + printf("{prog_type=0x1f /* BPF_PROG_TYPE_??? */" #endif ", insn_cnt=3134983661" ", insns=NULL" @@ -70,7 +69,9 @@ print_bpf_attr(void) ", func_info_cnt=0" ", line_info_rec_size=0" ", line_info=NULL" - ", line_info_cnt=0}"); + ", line_info_cnt=0" + ", attach_btf_id=0" + ", attach_prog_fd=0}"); } int @@ -78,7 +79,7 @@ main(void) { long ret; struct BPF_PROG_LOAD_struct prog = { - .prog_type = 22, + .prog_type = 31, .insn_cnt = 0xbadc0ded, .insns = 0, .license = 0, diff --git a/tests/kexec_file_load.c b/tests/kexec_file_load.c index 5e5d91ed..3ab52587 100644 --- a/tests/kexec_file_load.c +++ b/tests/kexec_file_load.c @@ -2,14 +2,13 @@ * Check decoding of kexec_file_load syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_kexec_file_load diff --git a/tests/kexec_load.c b/tests/kexec_load.c index ae7a72c0..db515143 100644 --- a/tests/kexec_load.c +++ b/tests/kexec_load.c @@ -2,7 +2,7 @@ * Check decoding of kexec_load syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_kexec_load diff --git a/tests/keyctl.c b/tests/keyctl.c index ccfd3b44..6dc30fb9 100644 --- a/tests/keyctl.c +++ b/tests/keyctl.c @@ -2,7 +2,7 @@ * Check decoding of keyctl syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_keyctl @@ -45,7 +45,33 @@ struct keyctl_kdf_params { }; # endif +# ifndef HAVE_STRUCT_KEYCTL_PKEY_QUERY +struct keyctl_pkey_query { + uint32_t supported_ops; + uint32_t key_size; + uint16_t max_data_size; + uint16_t max_sig_size; + uint16_t max_enc_size; + uint16_t max_dec_size; + uint32_t __spare[10]; +}; +# endif + +# ifndef HAVE_STRUCT_KEYCTL_PKEY_PARAMS +struct keyctl_pkey_params { + int32_t key_id; + uint32_t in_len; + union { + uint32_t out_len; + uint32_t in2_len; + }; + uint32_t __spare[7]; +}; +# endif + # include "xlat.h" +# include "xlat/keyctl_caps0.h" +# include "xlat/keyctl_caps1.h" # include "xlat/keyctl_commands.h" # ifndef KEY_SPEC_REQKEY_AUTH_KEY @@ -71,10 +97,13 @@ bool buf_in_arg; # if XLAT_RAW # define XARG_STR(v_) (v_), STRINGIFY(v_) +# define XSTR(v_, s_) STRINGIFY(v_) # elif XLAT_VERBOSE # define XARG_STR(v_) (v_), STRINGIFY(v_) " /* " #v_ " */" +# define XSTR(v_, s_) STRINGIFY(v_) " /* " s_ " */" # else # define XARG_STR ARG_STR +# define XSTR(v_, s_) s_ # endif /* @@ -125,6 +154,21 @@ print_arg(kernel_ulong_t arg, const char *str, const char *fmt, size_t size, } } +void +print_flags(const struct xlat *xlat, unsigned long long flags, + const char *const dflt) +{ +# if XLAT_RAW + printf("%#llx", flags); +# elif XLAT_VERBOSE + printf("%#llx /* ", flags); + printflags(xlat, flags, dflt); + printf(" */"); +# else + printflags(xlat, flags, dflt); +# endif +} + /* * Arguments are passed as sz, val, str, fmt. Arguments are read until 4 * arguments are retrieved or size of 0 is occurred. @@ -268,6 +312,51 @@ kckdfp_to_str(struct keyctl_kdf_params *kdf, bool deref_hash, bool deref_oi, return buf; } +const char * +kcpp_to_str(struct keyctl_pkey_params *params, bool out, const char *key_str, + bool print_spare) +{ + static char buf[4096]; + + size_t left = sizeof(buf); + char *pos = buf; + + append_str(&pos, &left, "{key_id="); + +# if XLAT_RAW + append_str(&pos, &left, "%d", params->key_id); +# elif XLAT_VERBOSE + if (key_str) + append_str(&pos, &left, "%d /* %s */", params->key_id, key_str); + else + append_str(&pos, &left, "%d", params->key_id); +# else + if (key_str) + append_str(&pos, &left, "%s", key_str); + else + append_str(&pos, &left, "%d", params->key_id); +# endif + + append_str(&pos, &left, ", in_len=%u, %s=%u", + params->in_len, + out ? "out_len" : "in2_len", params->out_len); + + if (print_spare) { + append_str(&pos, &left, ", __spare=["); + + for (size_t i = 0; i < ARRAY_SIZE(params->__spare); i++) { + append_str(&pos, &left, "%s%#x", + i ? ", " : "", params->__spare[i]); + } + + append_str(&pos, &left, "]"); + } + + append_str(&pos, &left, "}"); + + return buf; +} + int main(void) { @@ -358,8 +447,10 @@ main(void) char *bogus_buf2 = tail_alloc(256); char *key_iov_str1; char *key_iov_str2 = tail_alloc(4096); + const char *errstr; ssize_t ret; ssize_t kis_size = 0; + long rc; size_t i; key_iov[0].iov_base = short_type; @@ -1092,6 +1183,222 @@ main(void) nul_terminated_buf = true; + /* KEYCTL_PKEY_QUERY */ + do_keyctl(ARG_STR(KEYCTL_PKEY_QUERY), + sizeof(int32_t), bogus_key2, NULL, "%d", + sizeof(kernel_ulong_t), + (kernel_ulong_t) 0xfeedf157badc0dedLLU, NULL, + kulong_fmt, + sizeof(char *), bogus_str, NULL, ptr_fmt, + sizeof(char *), ARG_STR(NULL), ptr_fmt); + + struct keyctl_pkey_query query; + do_keyctl(ARG_STR(KEYCTL_PKEY_QUERY), + sizeof(int32_t), XARG_STR(KEY_SPEC_THREAD_KEYRING), "%d", + sizeof(kernel_ulong_t), (kernel_ulong_t) 0, NULL, kulong_fmt, + sizeof(char *), "x\377\0\1", "\"x\\377\"", NULL, + sizeof(&query), &query, NULL, ptr_fmt); + + /* + * KEYCTL_PKEY_ENCRYPT, KEYCTL_PKEY_DECRYPT, KEYCTL_PKEY_SIGN, + * KEYCTL_PKEY_VERIFY + */ + static const struct { + int op; + const char *str; + bool out; + } pkey_ops[] = { + { ARG_STR(KEYCTL_PKEY_ENCRYPT), true }, + { ARG_STR(KEYCTL_PKEY_DECRYPT), true }, + { ARG_STR(KEYCTL_PKEY_SIGN), true }, + { ARG_STR(KEYCTL_PKEY_VERIFY), false }, + }; + static const char pkey_str1[] = STR32 "xxx"; + static const char pkey_str2[] = "\1\2HAI\255\0\1"; + static struct { + struct keyctl_pkey_params params; + const char * key_str; + bool print_spare; + const char *str1; + const char *str2; + } pkey_vecs[] = { + { { KEY_SPEC_PROCESS_KEYRING, 0, { .out_len = 0 } }, + "KEY_SPEC_PROCESS_KEYRING", false, "\"\"", "\"\"" }, + { { 0, 0, { .out_len = 0 }, .__spare = { 1 } }, + NULL, true, "\"\"", "\"\"" }, + { { 0xdeadc0deU, 10, { .out_len = 10 }, + .__spare = { 0, 0xfacefeed } }, + NULL, true, "\"AbCdEfGhIj\"", NULL }, + { { 0xdeadc0deU, sizeof(pkey_str1), + { .out_len = sizeof(pkey_str2) - 1 }, + .__spare = { [6] = 0xdec0ded } }, + NULL, true, + "\"AbCdEfGhIj\"...", "\"\\1\\2HAI\\255\\0\\1\"" }, + }; + + char *pkey1 = tail_memdup(pkey_str1, sizeof(pkey_str1) - 1); + char *pkey2 = tail_memdup(pkey_str2, sizeof(pkey_str2) - 1); + struct keyctl_pkey_params *pkey_params = + tail_alloc(sizeof(*pkey_params)); + + for (i = 0; i < ARRAY_SIZE(pkey_ops); i++) { + do_keyctl(pkey_ops[i].op, pkey_ops[i].str, + sizeof(char *), ARG_STR(NULL), ptr_fmt, + sizeof(char *), ARG_STR(NULL), ptr_fmt, + sizeof(char *), ARG_STR(NULL), ptr_fmt, + sizeof(char *), ARG_STR(NULL), ptr_fmt); + + do_keyctl(pkey_ops[i].op, pkey_ops[i].str, + sizeof(char *), (uint32_t *) pkey_params + 1, NULL, + ptr_fmt, + sizeof(char *), "x\377\0\1", "\"x\\377\"", ptr_fmt, + sizeof(char *), pkey1, NULL, ptr_fmt, + sizeof(char *), pkey2, NULL, ptr_fmt); + + for (size_t j = 0; j < ARRAY_SIZE(pkey_vecs); j++) { + memcpy(pkey_params, &pkey_vecs[j].params, + sizeof(*pkey_params)); + do_keyctl(pkey_ops[i].op, pkey_ops[i].str, + sizeof(char *), pkey_params, + kcpp_to_str(pkey_params, + pkey_ops[i].out, + pkey_vecs[j].key_str, + pkey_vecs[j].print_spare), + ptr_fmt, + sizeof(char *), "", "\"\"", ptr_fmt, + sizeof(char *), pkey1, pkey_vecs[j].str1, + ptr_fmt, + sizeof(char *), pkey2, + pkey_ops[i].out ? NULL + : pkey_vecs[j].str2, + ptr_fmt); + } + } + + /* KEYCTL_MOVE */ + static const struct { + kernel_ulong_t key; + const char *str; + } move_keys[] = { + { 0xbadc0ded, "-1159983635" }, + { XARG_STR(KEY_SPEC_THREAD_KEYRING) }, + }; + static const struct { + kernel_ulong_t val; + const char *str; + } move_flags[] = { + { (kernel_ulong_t) 0xbadc0ded00000000ULL, "0" }, + { 1, XSTR(0x1, "KEYCTL_MOVE_EXCL") }, + { (kernel_ulong_t) 0xbadc0ded00000001ULL, + XSTR(0x1, "KEYCTL_MOVE_EXCL") }, + { (kernel_ulong_t) 0xfffffffffffffffeULL, +# if !XLAT_RAW + "0xfffffffe /* KEYCTL_MOVE_??? */" +# else + "0xfffffffe" +# endif + }, + { (kernel_ulong_t) 0xffffffffffffffffULL, + XSTR(0xffffffff, "KEYCTL_MOVE_EXCL|0xfffffffe") }, + }; + + for (i = 0; i < ARRAY_SIZE(move_keys) * ARRAY_SIZE(move_flags); i++) { + do_keyctl(ARG_STR(KEYCTL_MOVE), + sizeof(kernel_ulong_t), + move_keys[i % ARRAY_SIZE(move_keys)].key, + move_keys[i % ARRAY_SIZE(move_keys)].str, + kulong_fmt, + sizeof(kernel_ulong_t), + move_keys[(i + 1) % ARRAY_SIZE(move_keys)].key, + move_keys[(i + 1) % ARRAY_SIZE(move_keys)].str, + kulong_fmt, + sizeof(kernel_ulong_t), + move_keys[(i + 2) % ARRAY_SIZE(move_keys)].key, + move_keys[(i + 2) % ARRAY_SIZE(move_keys)].str, + kulong_fmt, + sizeof(kernel_ulong_t), + move_flags[i % ARRAY_SIZE(move_flags)].val, + move_flags[i % ARRAY_SIZE(move_flags)].str, + kulong_fmt); + } + + /* KEYCTL_CAPABILITIES */ + unsigned char *caps1 = tail_alloc(1); + unsigned char *caps2 = tail_alloc(2); + unsigned char *caps4 = tail_alloc(4); + + do_keyctl(ARG_STR(KEYCTL_CAPABILITIES), + sizeof(unsigned char *), ARG_STR(NULL), ptr_fmt, + sizeof(kernel_ulong_t), + (kernel_ulong_t) 0xfeedf157badc0dedLLU, NULL, + ksize_fmt, + 0); + + const kernel_ulong_t bad_len = (kernel_ulong_t) 0xbadc0ded00000001LLU; + rc = syscall(__NR_keyctl, KEYCTL_CAPABILITIES, caps1, bad_len); + errstr = sprintrc(rc); + printf("keyctl(" XSTR(0x1f, "KEYCTL_CAPABILITIES") ", "); + if (rc >= 0) { + printf("["); + if (rc >= 1) + print_flags(keyctl_caps0, caps1[0], "KEYCTL_CAPS0_???"); + printf("]"); + } else { + printf("%p", caps1); + } + printf(", %llu) = %s\n", (unsigned long long) bad_len, errstr); + + rc = syscall(__NR_keyctl, KEYCTL_CAPABILITIES, caps1, 2); + errstr = sprintrc(rc); + printf("keyctl(" XSTR(0x1f, "KEYCTL_CAPABILITIES") ", "); + if (rc >= 0) { + printf("["); + if (rc == 1) + print_flags(keyctl_caps0, caps1[0], "KEYCTL_CAPS0_???"); + printf("]"); + } else { + printf("%p", caps1); + } + printf(", 2) = %s\n", errstr); + + rc = syscall(__NR_keyctl, KEYCTL_CAPABILITIES, caps2, 2); + errstr = sprintrc(rc); + printf("keyctl(" XSTR(0x1f, "KEYCTL_CAPABILITIES") ", "); + if (rc >= 0) { + printf("["); + if (rc >= 1) + print_flags(keyctl_caps0, caps2[0], "KEYCTL_CAPS0_???"); + if (rc >= 2) { + printf(", "); + print_flags(keyctl_caps1, caps2[1], "KEYCTL_CAPS1_???"); + } + printf("]"); + } else { + printf("%p", caps2); + } + printf(", 2) = %s\n", errstr); + + rc = syscall(__NR_keyctl, KEYCTL_CAPABILITIES, caps4, 4); + errstr = sprintrc(rc); + printf("keyctl(" XSTR(0x1f, "KEYCTL_CAPABILITIES") ", "); + if (rc >= 0) { + printf("["); + if (rc >= 1) + print_flags(keyctl_caps0, caps4[0], "KEYCTL_CAPS0_???"); + if (rc >= 2) { + printf(", "); + print_flags(keyctl_caps1, caps4[1], "KEYCTL_CAPS1_???"); + } + if (rc >= 3) + printf(", %hhx", caps4[2]); + if (rc >= 4) + printf(", %hhx", caps4[3]); + printf("]"); + } else { + printf("%p", caps4); + } + printf(", 4) = %s\n", errstr); + puts("+++ exited with 0 +++"); return 0; diff --git a/tests/kill--pidns-translation.c b/tests/kill--pidns-translation.c new file mode 100644 index 00000000..4736ca14 --- /dev/null +++ b/tests/kill--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "kill.c" diff --git a/tests/kill--pidns-translation.gen.test b/tests/kill--pidns-translation.gen.test new file mode 100755 index 00000000..4e909e99 --- /dev/null +++ b/tests/kill--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (kill--pidns-translation test_pidns -a12 -e trace=kill -esignal=none); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a12 -e trace=kill -esignal=none diff --git a/tests/kill.c b/tests/kill.c index 4ef9b628..653e945c 100644 --- a/tests/kill.c +++ b/tests/kill.c @@ -3,14 +3,15 @@ * * Copyright (c) 2015-2016 Dmitry V. Levin * Copyright (c) 2016 Fei Jie - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #ifdef __NR_kill @@ -26,6 +27,8 @@ handler(int sig) int main(void) { + PIDNS_TEST_INIT; + const struct sigaction act = { .sa_handler = handler }; if (sigaction(SIGALRM, &act, NULL)) perror_msg_and_fail("sigaction"); @@ -37,18 +40,23 @@ main(void) perror_msg_and_fail("sigprocmask"); const int pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); long rc = syscall(__NR_kill, pid, (long) 0xdefaced00000000ULL | SIGALRM); - printf("kill(%d, SIGALRM) = %ld\n", pid, rc); + pidns_print_leader(); + printf("kill(%d%s, SIGALRM) = %ld\n", pid, pid_str, rc); const long big_pid = (long) 0xfacefeedbadc0dedULL; const long big_sig = (long) 0xdeadbeefcafef00dULL; rc = syscall(__NR_kill, big_pid, big_sig); + pidns_print_leader(); printf("kill(%d, %d) = %ld %s (%m)\n", (int) big_pid, (int) big_sig, rc, errno2name()); rc = syscall(__NR_kill, (long) 0xdefaced00000000ULL | pid, 0); - printf("kill(%d, 0) = %ld\n", pid, rc); + pidns_print_leader(); + printf("kill(%d%s, 0) = %ld\n", pid, pid_str, rc); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests/ksysent.c b/tests/ksysent.c index 4319bdb2..0716db70 100644 --- a/tests/ksysent.c +++ b/tests/ksysent.c @@ -2,7 +2,7 @@ * Validate syscallent.h file. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,7 +12,7 @@ #include "sysent.h" #include #include -#include +#include "scno.h" #include "sysent_shorthand_defs.h" diff --git a/tests/ksysent.gen.test b/tests/ksysent.gen.test new file mode 100755 index 00000000..c63ea44b --- /dev/null +++ b/tests/ksysent.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (ksysent ../$NAME ); do not edit. +. "${srcdir=.}/init.sh" +../$NAME diff --git a/tests/ksysent.sed b/tests/ksysent.sed index c35ba22f..92069e75 100644 --- a/tests/ksysent.sed +++ b/tests/ksysent.sed @@ -1,6 +1,6 @@ #!/bin/sed -rnf # -# Copyright (c) 2015-2018 The strace developers. +# Copyright (c) 2015-2019 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -8,6 +8,9 @@ # should not have been exported at all /#define[[:space:]]+__NR_(sys_epoll_|arch_specific_syscall|arm_sync_file_range|syscalls|syscall_count|syscall_max|available|reserved|unused)/d +# remove new aliases to traditional names on alpha +/#define[[:space:]]+__NR_get[gup]id[[:space:]]+__NR_getx[gup]id$/d + # should not have been named this way s/__NR_(arm|xtensa)_fadvise64_64/__NR_fadvise64_64/ @@ -17,4 +20,12 @@ s/__NR_madvise1/__NR_madvise/ s/__NR_paccept/__NR_accept4/ # generate + +# prioritize __NR_umount over __NR_umount2 +s/#define[[:space:]]+__NR_(umount)2([[:space:]].*)?$/#if defined __NR_\12 \&\& (!defined __NR_\1 || __NR_\1 != __NR_\12)\n[__NR_\12 \& 0xffff] = "\12",\n#endif/p + +# prioritize __NR_osf_shmat over __NR_shmat +s/#define[[:space:]]+__NR_(shmat)([[:space:]].*)?$/#if defined __NR_\1 \&\& (!defined __NR_osf_\1 || __NR_osf_\1 != __NR_\1)\n[__NR_\1 \& 0xffff] = "\1",\n#endif/p + +# generic s/#define[[:space:]]+__NR_([a-z_][^[:space:]]+)([[:space:]].*)?$/#ifdef __NR_\1\n[__NR_\1 \& 0xffff] = "\1",\n#endif/p diff --git a/tests/ksysent.test b/tests/ksysent.test deleted file mode 100755 index 347ed675..00000000 --- a/tests/ksysent.test +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -# -# Copyright (c) 2015-2018 The strace developers. -# All rights reserved. -# -# SPDX-License-Identifier: GPL-2.0-or-later - -# Validate syscallent.h - -./ksysent diff --git a/tests/lchown.c b/tests/lchown.c index c9008219..b8d40945 100644 --- a/tests/lchown.c +++ b/tests/lchown.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_lchown diff --git a/tests/lchown32.c b/tests/lchown32.c index 1a505e1f..c2542a82 100644 --- a/tests/lchown32.c +++ b/tests/lchown32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_lchown32 diff --git a/tests/libmmsg.c b/tests/libmmsg.c index 0f23597d..4dbe4edf 100644 --- a/tests/libmmsg.c +++ b/tests/libmmsg.c @@ -2,6 +2,7 @@ * Wrappers for recvmmsg and sendmmsg syscalls. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,7 +10,7 @@ #include "tests.h" #include -#include +#include "scno.h" #ifndef __NR_recvmmsg # define __NR_recvmmsg -1 diff --git a/tests/libsocketcall.c b/tests/libsocketcall.c index 34f65478..6692d4b0 100644 --- a/tests/libsocketcall.c +++ b/tests/libsocketcall.c @@ -2,6 +2,7 @@ * Invoke a socket syscall, either directly or via __NR_socketcall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +11,7 @@ #include "tests.h" #include #include -#include +#include "scno.h" /* * Invoke a socket syscall, either directly or via __NR_socketcall. diff --git a/tests/link.c b/tests/link.c index 357eb0be..468086fe 100644 --- a/tests/link.c +++ b/tests/link.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_link diff --git a/tests/linkat.c b/tests/linkat.c index 748ddf18..7e348f12 100644 --- a/tests/linkat.c +++ b/tests/linkat.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_linkat @@ -30,7 +30,7 @@ main(void) printf("linkat(%s, \"%s\", %s, \"%s\", %s) = %ld %s (%m)\n", "AT_FDCWD", sample_1, "AT_FDCWD", sample_2, "AT_SYMLINK_NOFOLLOW|AT_REMOVEDIR|AT_SYMLINK_FOLLOW" - "|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|0xffffe0ff", + "|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|AT_RECURSIVE|0xffff60ff", rc, errno2name()); puts("+++ exited with 0 +++"); diff --git a/tests/llseek.c b/tests/llseek.c index 169fa913..55e63363 100644 --- a/tests/llseek.c +++ b/tests/llseek.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR__llseek diff --git a/tests/localtime.c b/tests/localtime.c index 652d3e6a..42e39c55 100644 --- a/tests/localtime.c +++ b/tests/localtime.c @@ -1,7 +1,7 @@ /* * Check handling of localtime() returning NULL in printleader(). * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -14,7 +14,7 @@ #include #include -#include +#include "scno.h" int main(void) diff --git a/tests/lock_file.c b/tests/lock_file.c new file mode 100644 index 00000000..56cf112d --- /dev/null +++ b/tests/lock_file.c @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#include +#include +#include +#include +#include +#include + +/* Obtain an exclusive lock on dirname(path_name)/lock_name file. */ +int +lock_file_by_dirname(const char *path_name, const char *lock_name) +{ + const char *slash = path_name ? strrchr(path_name, '/') : NULL; + const int plen = slash ? (int) (slash - path_name) + 1 : 0; + + char *lock_file = NULL; + if (asprintf(&lock_file, "%.*s%s", plen, path_name, lock_name) < 0) + perror_msg_and_fail("asprintf"); + + int lock_fd = open(lock_file, O_RDONLY); + if (lock_fd < 0) + perror_msg_and_fail("open: %s", lock_file); + + if (flock(lock_fd, LOCK_EX)) + perror_msg_and_fail("flock: %s", lock_file); + + free(lock_file); + + return lock_fd; +} diff --git a/tests/lookup_dcookie.c b/tests/lookup_dcookie.c index 430ae135..9617a4ca 100644 --- a/tests/lookup_dcookie.c +++ b/tests/lookup_dcookie.c @@ -2,7 +2,7 @@ * Check decoding of lookup_dcookie syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_lookup_dcookie diff --git a/tests/looping_threads.test b/tests/looping_threads.test index e8b0bbb5..3e5d3ba9 100755 --- a/tests/looping_threads.test +++ b/tests/looping_threads.test @@ -2,7 +2,7 @@ # # Check tracing of looping threads. # -# Copyright (c) 2009-2019 The strace developers. +# Copyright (c) 2009-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -20,16 +20,16 @@ inc="$(nproc)" [ "$inc" -ge 1 ] || inc=1 timeout_2="$(($TIMEOUT_DURATION/2))" -timeout_8="$(($TIMEOUT_DURATION/8))" +timeout_16="$(($TIMEOUT_DURATION/16))" nproc=1 -run_prog "../$NAME" "$timeout_8" "$nproc" +run_prog "../$NAME" "$timeout_16" "$nproc" while :; do - run_strace -f -qq -enone -esignal=none "../$NAME" "$timeout_2" "$nproc" + run_strace --follow-forks -qq -enone -esignal=none "../$NAME" "$timeout_2" "$nproc" s1="$(date +%s)" - [ "$(($s1-$s0))" -lt "$timeout_8" ] || + [ "$(($s1-$s0))" -lt "$timeout_16" ] || break nproc="$(($nproc+$inc))" diff --git a/tests/lseek.c b/tests/lseek.c index 0e12bf9c..f0d842d1 100644 --- a/tests/lseek.c +++ b/tests/lseek.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_lseek diff --git a/tests/lstat.c b/tests/lstat.c index 1a200fe7..61c5cb53 100644 --- a/tests/lstat.c +++ b/tests/lstat.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_lstat diff --git a/tests/lstat.gen.test b/tests/lstat.gen.test index 7231c491..71155b69 100755 --- a/tests/lstat.gen.test +++ b/tests/lstat.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (lstat -a32 -v -P stat.sample -P /dev/full); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (lstat -a31 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a32 -v -P stat.sample -P /dev/full +run_strace_match_diff -a31 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full diff --git a/tests/lstat64.c b/tests/lstat64.c index 0c0cf879..de5a2651 100644 --- a/tests/lstat64.c +++ b/tests/lstat64.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_lstat64 diff --git a/tests/lstat64.gen.test b/tests/lstat64.gen.test index 124cce4b..4584f9d8 100755 --- a/tests/lstat64.gen.test +++ b/tests/lstat64.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (lstat64 -a32 -v -P stat.sample -P /dev/full); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (lstat64 -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a32 -v -P stat.sample -P /dev/full +run_strace_match_diff -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full diff --git a/tests/madvise.c b/tests/madvise.c index 33a7abbe..51118c6a 100644 --- a/tests/madvise.c +++ b/tests/madvise.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include #include #include -#include +#include "scno.h" static const char *errstr; diff --git a/tests/maybe_switch_current_tcp--quiet-thread-execve.c b/tests/maybe_switch_current_tcp--quiet-thread-execve.c new file mode 100644 index 00000000..b5c0a503 --- /dev/null +++ b/tests/maybe_switch_current_tcp--quiet-thread-execve.c @@ -0,0 +1,2 @@ +#define QUIET_MSG 1 +#include "maybe_switch_current_tcp.c" diff --git a/tests/maybe_switch_current_tcp--quiet-thread-execve.gen.test b/tests/maybe_switch_current_tcp--quiet-thread-execve.gen.test new file mode 100755 index 00000000..43327dbb --- /dev/null +++ b/tests/maybe_switch_current_tcp--quiet-thread-execve.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (maybe_switch_current_tcp--quiet-thread-execve -a30 -s48 -f -e trace=execveat --quiet=personality,thread-execve); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a30 -s48 -f -e trace=execveat --quiet=personality,thread-execve diff --git a/tests/maybe_switch_current_tcp.c b/tests/maybe_switch_current_tcp.c new file mode 100644 index 00000000..7ba1b9b9 --- /dev/null +++ b/tests/maybe_switch_current_tcp.c @@ -0,0 +1,83 @@ +/* + * Check for PTRACE_EVENT_EXEC diagnostics. + * + * Copyright (c) 2019 Dmitry V. Levin + * Copyright (c) 2019-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include +#include +#include +#include "scno.h" + +#ifndef QUIET_MSG +# define QUIET_MSG 0 +#endif + +static pid_t leader; +static volatile unsigned int trigger; + +static void * +thread(void *arg) +{ + const char *argv[] = {((char **) arg)[0], "1", "2", NULL}; + int tid = syscall(__NR_gettid); + + printf("%-5d execveat(AT_FDCWD, \"%s\", [\"%s\", \"%s\", \"%s\"]" + ", NULL, 0 \n" +#if !QUIET_MSG + "%-5d +++ superseded by execve in pid %d +++\n" +#endif + , tid, argv[0], argv[0], argv[1], argv[2], leader +#if !QUIET_MSG + , leader, tid +#endif + ); + + while (!trigger) { + /* Wait for the parent to enter the busy loop. */ + } + + syscall(__NR_execveat, -100, argv[0], argv, NULL, 0); + perror_msg_and_fail("execveat"); +} + +int +main(int ac, char **av) +{ + setvbuf(stdout, NULL, _IONBF, 0); + leader = getpid(); + + if (ac <= 1) { + char *argv[] = {av[0], (char *) "1", NULL}; + printf("%-5d execveat(AT_FDCWD, \"%s\"" + ", [\"%s\", \"%s\"], NULL, 0) = 0\n", + leader, argv[0], argv[0], argv[1]); + syscall(__NR_execveat, -100, argv[0], argv, NULL, 0); + perror_msg_and_skip("execveat"); + } + + /* + * Since execveat is supported by the kernel, + * PTRACE_EVENT_EXEC support in the kernel is good enough. + */ + if (ac <= 2) { + pthread_t t; + errno = pthread_create(&t, NULL, thread, av); + if (errno) + perror_msg_and_fail("pthread_create"); + + for (;;) + ++trigger; + } + + printf("%-5d <... execveat resumed>) = 0\n" + "%-5d +++ exited with 0 +++\n", + leader, leader); + return 0; +} diff --git a/tests/maybe_switch_current_tcp.gen.test b/tests/maybe_switch_current_tcp.gen.test new file mode 100755 index 00000000..ebd50ec2 --- /dev/null +++ b/tests/maybe_switch_current_tcp.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (maybe_switch_current_tcp -a30 -f -e trace=execveat); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a30 -f -e trace=execveat diff --git a/tests/mbind-Xabbrev.c b/tests/mbind-Xabbrev.c new file mode 100644 index 00000000..a318b5d2 --- /dev/null +++ b/tests/mbind-Xabbrev.c @@ -0,0 +1 @@ +#include "mbind.c" diff --git a/tests/mbind-Xabbrev.gen.test b/tests/mbind-Xabbrev.gen.test new file mode 100755 index 00000000..3ecf1831 --- /dev/null +++ b/tests/mbind-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mbind-Xabbrev -Xabbrev -e trace=mbind); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -Xabbrev -e trace=mbind diff --git a/tests/mbind-Xraw.c b/tests/mbind-Xraw.c new file mode 100644 index 00000000..86f9608b --- /dev/null +++ b/tests/mbind-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "mbind.c" diff --git a/tests/mbind-Xraw.gen.test b/tests/mbind-Xraw.gen.test new file mode 100755 index 00000000..b66b4812 --- /dev/null +++ b/tests/mbind-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mbind-Xraw -a33 -Xraw -e trace=mbind); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a33 -Xraw -e trace=mbind diff --git a/tests/mbind-Xverbose.c b/tests/mbind-Xverbose.c new file mode 100644 index 00000000..29285cc0 --- /dev/null +++ b/tests/mbind-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "mbind.c" diff --git a/tests/mbind-Xverbose.gen.test b/tests/mbind-Xverbose.gen.test new file mode 100755 index 00000000..20ebed6d --- /dev/null +++ b/tests/mbind-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (mbind-Xverbose -Xverbose -e trace=mbind); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -Xverbose -e trace=mbind diff --git a/tests/mbind.c b/tests/mbind.c index 8e478a6f..321defb9 100644 --- a/tests/mbind.c +++ b/tests/mbind.c @@ -1,34 +1,139 @@ /* * Check decoding of mbind syscall. * - * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 Dmitry V. Levin * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_mbind # include # include +static const char *errstr; + +static long +k_mbind(const unsigned long start, + const unsigned long len, + const unsigned long mode, + const unsigned long nmask, + const unsigned long maxnode, + const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t arg1 = start; + const kernel_ulong_t arg2 = len; + const kernel_ulong_t arg3 = mode; + const kernel_ulong_t arg4 = nmask; + const kernel_ulong_t arg5 = maxnode; + const kernel_ulong_t arg6 = fill | flags; + const long rc = syscall(__NR_mbind, arg1, arg2, arg3, arg4, arg5, arg6); + errstr = sprintrc(rc); + return rc; +} + +# if XLAT_RAW +# define out_str raw +# define flags_str "0xffffffff" +# elif XLAT_VERBOSE +# define out_str verbose +# define flags_str "0xffffffff /* MPOL_MF_STRICT|MPOL_MF_MOVE" \ + "|MPOL_MF_MOVE_ALL|0xfffffff8 */" +# else +# define out_str abbrev +# define flags_str "MPOL_MF_STRICT|MPOL_MF_MOVE|MPOL_MF_MOVE_ALL|0xfffffff8" +# endif + +static struct { + unsigned long val; + const char *raw; + const char *verbose; + const char *abbrev; +} mpol_modes[] = { + { ARG_STR(0), + "0 /* MPOL_DEFAULT */", + "MPOL_DEFAULT" }, + { ARG_STR(0x1), + "0x1 /* MPOL_PREFERRED */", + "MPOL_PREFERRED" }, + { ARG_STR(0x2), + "0x2 /* MPOL_BIND */", + "MPOL_BIND" }, + { ARG_STR(0x3), + "0x3 /* MPOL_INTERLEAVE */", + "MPOL_INTERLEAVE" }, + { ARG_STR(0x4), + "0x4 /* MPOL_LOCAL */", + "MPOL_LOCAL" }, + { ARG_STR(0x8000), + "0x8000 /* MPOL_DEFAULT|MPOL_F_STATIC_NODES */", + "MPOL_DEFAULT|MPOL_F_STATIC_NODES" }, + { ARG_STR(0x4001), + "0x4001 /* MPOL_PREFERRED|MPOL_F_RELATIVE_NODES */", + "MPOL_PREFERRED|MPOL_F_RELATIVE_NODES" }, + { ARG_STR(0xc002), + "0xc002 /* MPOL_BIND|MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES */", + "MPOL_BIND|MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES" }, + { ARG_STR(0x5), + "0x5 /* MPOL_??? */", + "0x5 /* MPOL_??? */" }, + { ARG_STR(0xffff3fff), + "0xffff3fff /* MPOL_??? */", + "0xffff3fff /* MPOL_??? */" }, + { ARG_STR(0xffffffff), + "0xffffffff /* MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES|0xffff3fff */", + "MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES|0xffff3fff" }, +# if SIZEOF_LONG > 4 + { 0xffffffff00000000UL, + "0xffffffff00000000", + "0xffffffff00000000 /* MPOL_??? */", + "0xffffffff00000000 /* MPOL_??? */" }, + { 0xffffffffffff3fffUL, + "0xffffffffffff3fff", + "0xffffffffffff3fff /* MPOL_??? */", + "0xffffffffffff3fff /* MPOL_??? */" }, + { -1UL, + "0xffffffffffffffff", + "0xffffffffffffffff /* MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES" + "|0xffffffffffff3fff */", + "MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES|0xffffffffffff3fff" }, +# endif +}; + int main(void) { - const unsigned long len = (unsigned long) 0xcafef00dbadc0dedULL; - const unsigned long mode = 3; - const unsigned long nodemask = (unsigned long) 0xfacefeedfffffff1ULL; - const unsigned long maxnode = (unsigned long) 0xdeadbeeffffffff2ULL; - const unsigned long flags = -1UL; - - long rc = syscall(__NR_mbind, 0, len, mode, nodemask, maxnode, flags); - printf("mbind(NULL, %lu, %s, %#lx, %lu, %s|%#x) = %ld %s (%m)\n", - len, "MPOL_INTERLEAVE", nodemask, maxnode, - "MPOL_MF_STRICT|MPOL_MF_MOVE|MPOL_MF_MOVE_ALL", - (unsigned) flags & ~7, rc, errno2name()); + const unsigned long size = get_page_size(); + unsigned long *const addr = tail_alloc(size); + const unsigned long start = (unsigned long) 0xfffffff1fffffff2ULL; + const unsigned long len = (unsigned long) 0xfffffff4fffffff4ULL; + const unsigned long nodemask = (unsigned long) 0xfffffff5fffffff6ULL; + const unsigned long maxnode = (unsigned long) 0xfffffff7fffffff8ULL; + + if (k_mbind((unsigned long) addr, size, mpol_modes[0].val, 0, 0, 0)) + perror_msg_and_skip("mbind"); + printf("mbind(%p, %lu, %s, NULL, 0, 0) = 0\n", + addr, size, mpol_modes[0].out_str); + + for (unsigned int i = 0; i < ARRAY_SIZE(mpol_modes); ++i) { + if (i) { + k_mbind((unsigned long) addr, size, mpol_modes[i].val, + 0, 0, 0); + printf("mbind(%p, %lu, %s, NULL, 0, 0) = %s\n", + addr, size, mpol_modes[i].out_str, errstr); + } + + k_mbind(start, len, mpol_modes[i].val, + nodemask, maxnode, -1U); + printf("mbind(%#lx, %lu, %s, %#lx, %lu, %s) = %s\n", + start, len, mpol_modes[i].out_str, + nodemask, maxnode, flags_str, errstr); + } puts("+++ exited with 0 +++"); return 0; diff --git a/tests/membarrier.c b/tests/membarrier.c index 0e55497b..bdacf7f3 100644 --- a/tests/membarrier.c +++ b/tests/membarrier.c @@ -1,13 +1,12 @@ /* * Copyright (c) 2015-2017 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_membarrier diff --git a/tests/memfd_create.c b/tests/memfd_create.c index 2658a1ba..06e017ef 100644 --- a/tests/memfd_create.c +++ b/tests/memfd_create.c @@ -2,13 +2,13 @@ * Check decoding of memfd_create syscall. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_memfd_create diff --git a/tests/migrate_pages--pidns-translation.c b/tests/migrate_pages--pidns-translation.c new file mode 100644 index 00000000..ec34938d --- /dev/null +++ b/tests/migrate_pages--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "migrate_pages.c" diff --git a/tests/migrate_pages--pidns-translation.gen.test b/tests/migrate_pages--pidns-translation.gen.test new file mode 100755 index 00000000..c6b5b3a0 --- /dev/null +++ b/tests/migrate_pages--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (migrate_pages--pidns-translation test_pidns -a33 -e trace=migrate_pages); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a33 -e trace=migrate_pages diff --git a/tests/migrate_pages.c b/tests/migrate_pages.c index e8e66ece..34da2808 100644 --- a/tests/migrate_pages.c +++ b/tests/migrate_pages.c @@ -2,13 +2,15 @@ * Check decoding of migrate_pages syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #ifdef __NR_migrate_pages @@ -18,11 +20,21 @@ int main(void) { - const long pid = (long) 0xfacefeedffffffffULL; + PIDNS_TEST_INIT; + + const long pid = (long) 0xfacefeed00000000ULL | getpid(); long rc = syscall(__NR_migrate_pages, pid, 0, 0, 0); - printf("migrate_pages(%d, 0, NULL, NULL) = %ld %s (%m)\n", - (int) pid, rc, errno2name()); + pidns_print_leader(); + printf("migrate_pages(%d%s, 0, NULL, NULL) = %ld", + (int) pid, pidns_pid2str(PT_TGID), rc); + + if (rc < 0) + printf(" %s (%m)\n", errno2name()); + else + printf("\n"); + + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests/mkdir.c b/tests/mkdir.c index e6e62ef6..9faee7eb 100644 --- a/tests/mkdir.c +++ b/tests/mkdir.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_mkdir diff --git a/tests/mkdirat.c b/tests/mkdirat.c index 91bf06be..1b5a68f7 100644 --- a/tests/mkdirat.c +++ b/tests/mkdirat.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_mkdirat diff --git a/tests/mknod.c b/tests/mknod.c index 94d80284..e4d0e5fc 100644 --- a/tests/mknod.c +++ b/tests/mknod.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_mknod @@ -31,44 +31,44 @@ main(int ac, char **av) sample = av[0]; long rc = call_mknod(0, dev); - printf("mknod(\"%s\", 000) = %ld %s (%m)\n", - sample, rc, errno2name()); + printf("mknod(\"%s\", 000) = %s\n", + sample, sprintrc(rc)); rc = call_mknod(0xffff, dev); - printf("mknod(\"%s\", %#03ho) = %ld %s (%m)\n", - sample, (unsigned short) -1, rc, errno2name()); + printf("mknod(\"%s\", %#03ho) = %s\n", + sample, (unsigned short) -1, sprintrc(rc)); rc = call_mknod(S_IFREG, 0); - printf("mknod(\"%s\", S_IFREG|000) = %ld %s (%m)\n", - sample, rc, errno2name()); + printf("mknod(\"%s\", S_IFREG|000) = %s\n", + sample, sprintrc(rc)); rc = call_mknod(S_IFDIR | 06, 0); - printf("mknod(\"%s\", S_IFDIR|006) = %ld %s (%m)\n", - sample, rc, errno2name()); + printf("mknod(\"%s\", S_IFDIR|006) = %s\n", + sample, sprintrc(rc)); rc = call_mknod(S_IFLNK | 060, 0); - printf("mknod(\"%s\", S_IFLNK|060) = %ld %s (%m)\n", - sample, rc, errno2name()); + printf("mknod(\"%s\", S_IFLNK|060) = %s\n", + sample, sprintrc(rc)); rc = call_mknod(S_IFIFO | 0600, 0); - printf("mknod(\"%s\", S_IFIFO|0600) = %ld %s (%m)\n", - sample, rc, errno2name()); + printf("mknod(\"%s\", S_IFIFO|0600) = %s\n", + sample, sprintrc(rc)); dev = (unsigned long) 0xdeadbeef00000000ULL | makedev(1, 7); rc = call_mknod(S_IFCHR | 024, dev); - printf("mknod(\"%s\", S_IFCHR|024, makedev(0x1, 0x7)) = %ld %s (%m)\n", - sample, rc, errno2name()); + printf("mknod(\"%s\", S_IFCHR|024, makedev(0x1, 0x7)) = %s\n", + sample, sprintrc(rc)); const unsigned short mode = (0xffff & ~S_IFMT) | S_IFBLK; dev = (unsigned long) 0xdeadbeefbadc0dedULL; rc = call_mknod(mode, dev); printf("mknod(\"%s\", S_IFBLK|S_ISUID|S_ISGID|S_ISVTX|%#03ho" - ", makedev(%#x, %#x)) = %ld %s (%m)\n", + ", makedev(%#x, %#x)) = %s\n", sample, (short) (mode & ~(S_IFMT|S_ISUID|S_ISGID|S_ISVTX)), major((unsigned) dev), minor((unsigned) dev), - rc, errno2name()); + sprintrc(rc)); puts("+++ exited with 0 +++"); return 0; diff --git a/tests/mknodat.c b/tests/mknodat.c index 34b34d80..ffc56210 100644 --- a/tests/mknodat.c +++ b/tests/mknodat.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_mknodat diff --git a/tests/mlock.c b/tests/mlock.c index 0f31d20c..c2550ba9 100644 --- a/tests/mlock.c +++ b/tests/mlock.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_mlock && defined __NR_munlock diff --git a/tests/mlock2.c b/tests/mlock2.c index 23f1cd9a..0489afe3 100644 --- a/tests/mlock2.c +++ b/tests/mlock2.c @@ -1,12 +1,12 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_mlock2 diff --git a/tests/modify_ldt.c b/tests/modify_ldt.c index 78e370e4..b642bbe2 100644 --- a/tests/modify_ldt.c +++ b/tests/modify_ldt.c @@ -1,7 +1,7 @@ /* * Check decoding of modify_ldt syscall. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,7 +9,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined __NR_modify_ldt && defined HAVE_STRUCT_USER_DESC @@ -23,18 +23,26 @@ void printrc(long rc) { # ifdef __x86_64__ - int err = -rc; + /* + * Hopefully, we don't expect EPERM to be returned, + * otherwise we can't distinguish it on x32. + */ + if (rc != -1) { + int err = -rc; - /* Thanks, long return type of syscall(2) */ - printf("%lld", zero_extend_signed_to_ull(rc)); + /* Thanks, long return type of syscall(2) */ + printf("%lld", zero_extend_signed_to_ull(rc)); - if (err > 0 && err < 0x1000) { - errno = err; - printf(" %s (%m)", errno2name()); + if (err > 0 && err < 0x1000) { + errno = err; + printf(" %s (%m)", errno2name()); + } } -# else - printf("%s", sprintrc(rc)); + else # endif + { + printf("%s", sprintrc(rc)); + } puts(""); } diff --git a/tests/move_mount-P.c b/tests/move_mount-P.c new file mode 100644 index 00000000..1e1cd5c8 --- /dev/null +++ b/tests/move_mount-P.c @@ -0,0 +1,2 @@ +#define PATH_TRACING +#include "move_mount.c" diff --git a/tests/move_mount-P.gen.test b/tests/move_mount-P.gen.test new file mode 100755 index 00000000..780d8c9c --- /dev/null +++ b/tests/move_mount-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (move_mount-P -y -P /dev/full -e trace=move_mount); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -y -P /dev/full -e trace=move_mount diff --git a/tests/move_mount.c b/tests/move_mount.c new file mode 100644 index 00000000..b6ebfdac --- /dev/null +++ b/tests/move_mount.c @@ -0,0 +1,102 @@ +/* + * Check decoding of move_mount syscall. + * + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_move_mount + +# include +# include +# include +# include +# include + +static const char *errstr; + +static long +k_move_mount(const unsigned int from_dfd, const void *from_fname, + const unsigned int to_dfd, const void *to_fname, + const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | from_dfd; + const kernel_ulong_t arg2 = (uintptr_t) from_fname; + const kernel_ulong_t arg3 = fill | to_dfd; + const kernel_ulong_t arg4 = (uintptr_t) to_fname; + const kernel_ulong_t arg5 = fill | flags; + const long rc = syscall(__NR_move_mount, + arg1, arg2, arg3, arg4, arg5, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + skip_if_unavailable("/proc/self/fd/"); + + static const char path_full[] = "/dev/full"; + const char *const path = tail_memdup(path_full, sizeof(path_full)); + const void *const efault = path + sizeof(path_full); + const char *const empty = efault - 1; + char *const fname = tail_alloc(PATH_MAX); + fill_memory_ex(fname, PATH_MAX, '0', 10); + + int dfd = open(path, O_WRONLY); + if (dfd < 0) + perror_msg_and_fail("open: %s", path); + + k_move_mount(-1, 0, -100, efault, 0); +# ifndef PATH_TRACING + printf("move_mount(-1, NULL, AT_FDCWD, %p, 0) = %s\n", efault, errstr); +# endif + + k_move_mount(-100, efault, -1, 0, 0); +# ifndef PATH_TRACING + printf("move_mount(AT_FDCWD, %p, -1, NULL, 0) = %s\n", efault, errstr); +# endif + + k_move_mount(dfd, fname, -100, empty, 1); + printf("move_mount(%d<%s>, \"%.*s\"..., AT_FDCWD, \"\", %s) = %s\n", + dfd, path, (int) PATH_MAX - 1, fname, "MOVE_MOUNT_F_SYMLINKS", errstr); + + k_move_mount(-100, empty, dfd, fname, 0x10); + printf("move_mount(AT_FDCWD, \"\", %d<%s>, \"%.*s\"..., %s) = %s\n", + dfd, path, (int) PATH_MAX - 1, fname, "MOVE_MOUNT_T_SYMLINKS", errstr); + +# define f_flags_str "MOVE_MOUNT_F_SYMLINKS|MOVE_MOUNT_F_AUTOMOUNTS|MOVE_MOUNT_F_EMPTY_PATH" + fname[PATH_MAX - 1] = '\0'; + k_move_mount(dfd, fname, -100, empty, 7); + printf("move_mount(%d<%s>, \"%s\", AT_FDCWD, \"\", %s) = %s\n", + dfd, path, fname, f_flags_str, errstr); + +# define t_flags_str "MOVE_MOUNT_T_SYMLINKS|MOVE_MOUNT_T_AUTOMOUNTS|MOVE_MOUNT_T_EMPTY_PATH" + k_move_mount(-100, empty, dfd, fname, 0x70); + printf("move_mount(AT_FDCWD, \"\", %d<%s>, \"%s\", %s) = %s\n", + dfd, path, fname, t_flags_str, errstr); + + k_move_mount(-1, path, -100, empty, 0x77); + printf("move_mount(-1, \"%s\", AT_FDCWD, \"\", %s) = %s\n", + path, f_flags_str "|" t_flags_str, errstr); + + k_move_mount(-100, empty, -1, path, -1); + printf("move_mount(AT_FDCWD, \"\", -1, \"%s\", %s) = %s\n", + path, f_flags_str "|" t_flags_str "|0xffffff88", errstr); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_move_mount") + +#endif diff --git a/tests/move_mount.gen.test b/tests/move_mount.gen.test new file mode 100755 index 00000000..465810ff --- /dev/null +++ b/tests/move_mount.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (move_mount -y ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -y diff --git a/tests/move_pages--pidns-translation.c b/tests/move_pages--pidns-translation.c new file mode 100644 index 00000000..8498e399 --- /dev/null +++ b/tests/move_pages--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "move_pages.c" diff --git a/tests/move_pages--pidns-translation.gen.test b/tests/move_pages--pidns-translation.gen.test new file mode 100755 index 00000000..acd97c62 --- /dev/null +++ b/tests/move_pages--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (move_pages--pidns-translation test_pidns -s3 -e trace=move_pages); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -s3 -e trace=move_pages diff --git a/tests/move_pages.c b/tests/move_pages.c index 895c7c6f..e648f00a 100644 --- a/tests/move_pages.c +++ b/tests/move_pages.c @@ -2,14 +2,15 @@ * Check decoding of move_pages syscall. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #ifdef __NR_move_pages @@ -122,15 +123,20 @@ print_status_array(const int *const status, const unsigned long count) } static void -print_stat_pages(const unsigned long pid, const unsigned long count, - const void **const pages, int *const status) +print_stat_pages(const unsigned long pid, + const char *pid_str, + const unsigned long count, + const void **const pages, + int *const status) { const unsigned long flags = (unsigned long) 0xfacefeed00000002ULL; long rc = syscall(__NR_move_pages, pid, count, pages, NULL, status, flags); const char *errstr = sprintrc(rc); - printf("move_pages(%d, %lu, ", (int) pid, count); + pidns_print_leader(); + printf("move_pages(%d%s, %lu, ", (int) pid, pid_str, + count); print_page_array(pages, count, 0); printf(", NULL, "); if (rc) { @@ -152,6 +158,7 @@ print_stat_pages(const unsigned long pid, const unsigned long count, static void print_move_pages(const unsigned long pid, + const char *pid_str, unsigned long count, const unsigned int offset, const void **const pages, @@ -164,7 +171,9 @@ print_move_pages(const unsigned long pid, long rc = syscall(__NR_move_pages, pid, count, pages, nodes, status, flags); const char *errstr = sprintrc(rc); - printf("move_pages(%d, %lu, ", (int) pid, count); + pidns_print_leader(); + printf("move_pages(%d%s, %lu, ", (int) pid, pid_str, + count); print_page_array(pages, count, offset); printf(", "); print_node_array(nodes, count, offset); @@ -185,8 +194,11 @@ print_move_pages(const unsigned long pid, int main(void) { + PIDNS_TEST_INIT; + const unsigned long pid = (unsigned long) 0xfacefeed00000000ULL | getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); unsigned long count = 1; const unsigned page_size = get_page_size(); const void *const page = tail_alloc(page_size); @@ -195,40 +207,41 @@ main(void) TAIL_ALLOC_OBJECT_VAR_PTR(int, nodes); TAIL_ALLOC_OBJECT_VAR_PTR(int, status); - print_stat_pages(pid, 0, pages, status); - print_move_pages(pid, 0, 0, pages, nodes, status); - print_move_pages(pid, 0, 1, pages + 1, nodes + 1, status + 1); + print_stat_pages(pid, pid_str, 0, pages, status); + print_move_pages(pid, pid_str, 0, 0, pages, nodes, status); + print_move_pages(pid, pid_str, 0, 1, pages + 1, nodes + 1, status + 1); *pages = page; - print_stat_pages(pid, count, pages, status); + print_stat_pages(pid, pid_str, count, pages, status); *nodes = 0xdeadbee1; - print_move_pages(pid, count, 0, pages, nodes, status); - print_move_pages(pid, count, 1, pages, nodes, status); + print_move_pages(pid, pid_str, count, 0, pages, nodes, status); + print_move_pages(pid, pid_str, count, 1, pages, nodes, status); ++count; --status; *(--pages) = efault; - print_stat_pages(pid, count, pages, status); + print_stat_pages(pid, pid_str, count, pages, status); *(--nodes) = 0xdeadbee2; - print_move_pages(pid, count, 0, pages, nodes, status); - print_move_pages(pid, count, 1, pages, nodes, status); + print_move_pages(pid, pid_str, count, 0, pages, nodes, status); + print_move_pages(pid, pid_str, count, 1, pages, nodes, status); ++count; --status; *(--pages) = nodes; - print_stat_pages(pid, count, pages, status); + print_stat_pages(pid, pid_str, count, pages, status); *(--nodes) = 0xdeadbee3; - print_move_pages(pid, count, 0, pages, nodes, status); - print_move_pages(pid, count, 1, pages, nodes, status); + print_move_pages(pid, pid_str, count, 0, pages, nodes, status); + print_move_pages(pid, pid_str, count, 1, pages, nodes, status); ++count; --status; *(--pages) = status; - print_stat_pages(pid, count, pages, status); + print_stat_pages(pid, pid_str, count, pages, status); *(--nodes) = 0xdeadbee4; - print_move_pages(pid, count, 0, pages, nodes, status); - print_move_pages(pid, count, 1, pages, nodes, status); + print_move_pages(pid, pid_str, count, 0, pages, nodes, status); + print_move_pages(pid, pid_str, count, 1, pages, nodes, status); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests/mq_sendrecv.c b/tests/mq_sendrecv.c index 7af0f36e..45ddf5ee 100644 --- a/tests/mq_sendrecv.c +++ b/tests/mq_sendrecv.c @@ -3,7 +3,7 @@ * mq_unlink syscalls. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +11,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined __NR_mq_open && __NR_mq_timedsend && __NR_mq_timedreceive && \ __NR_mq_notify && __NR_mq_unlink diff --git a/tests/msg_control.c b/tests/msg_control.c index a4a32a88..2fd6c95d 100644 --- a/tests/msg_control.c +++ b/tests/msg_control.c @@ -2,7 +2,7 @@ * Check decoding of struct msghdr ancillary data. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -25,6 +25,9 @@ # include #endif +#include "kernel_timeval.h" +#include "kernel_old_timespec.h" + #include "xlat.h" #define XLAT_MACROS_ONLY #include "xlat/sock_options.h" @@ -38,9 +41,6 @@ # define SOL_TCP 6 #endif -#define MIN_SIZE_OF(type, member) \ - (offsetof(type, member) + sizeof(((type *) 0)->member)) - static struct cmsghdr * get_cmsghdr(void *const page, const size_t len) { @@ -87,11 +87,11 @@ test_scm_rights1(struct msghdr *const mh, struct cmsghdr *cmsg = get_cmsghdr(page, msg_controllen); - if (msg_controllen >= MIN_SIZE_OF(struct cmsghdr, cmsg_len)) + if (msg_controllen >= offsetofend(struct cmsghdr, cmsg_len)) cmsg->cmsg_len = cmsg_len; - if (msg_controllen >= MIN_SIZE_OF(struct cmsghdr, cmsg_level)) + if (msg_controllen >= offsetofend(struct cmsghdr, cmsg_level)) cmsg->cmsg_level = SOL_SOCKET; - if (msg_controllen >= MIN_SIZE_OF(struct cmsghdr, cmsg_type)) + if (msg_controllen >= offsetofend(struct cmsghdr, cmsg_type)) cmsg->cmsg_type = SCM_RIGHTS; size_t src_len = @@ -152,11 +152,11 @@ test_scm_rights2(struct msghdr *const mh, memcpy(CMSG_DATA(cmsg[0]), src[0], cmsg_len[0] - CMSG_LEN(0)); const size_t msg_controllen1 = msg_controllen - aligned_cms_len[0]; - if (msg_controllen1 >= MIN_SIZE_OF(struct cmsghdr, cmsg_len)) + if (msg_controllen1 >= offsetofend(struct cmsghdr, cmsg_len)) cmsg[1]->cmsg_len = cmsg_len[1]; - if (msg_controllen >= MIN_SIZE_OF(struct cmsghdr, cmsg_level)) + if (msg_controllen >= offsetofend(struct cmsghdr, cmsg_level)) cmsg[1]->cmsg_level = SOL_SOCKET; - if (msg_controllen >= MIN_SIZE_OF(struct cmsghdr, cmsg_type)) + if (msg_controllen >= offsetofend(struct cmsghdr, cmsg_type)) cmsg[1]->cmsg_type = SCM_RIGHTS; size_t src1_len = cmsg_len[1] < msg_controllen1 ? cmsg_len[1] : msg_controllen1; @@ -217,15 +217,17 @@ test_scm_rights3(struct msghdr *const mh, void *const page, const size_t nfds) static void test_scm_timestamp_old(struct msghdr *const mh, void *const page) { - size_t len = CMSG_SPACE(sizeof(struct timeval)); + static const kernel_old_timeval_t tv = { + .tv_sec = 123456789, + .tv_usec = 987654 + }; + size_t len = CMSG_SPACE(sizeof(tv)); struct cmsghdr *cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = CMSG_LEN(sizeof(struct timeval)); + cmsg->cmsg_len = CMSG_LEN(sizeof(tv)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMP_OLD; - struct timeval *tv = (struct timeval *) CMSG_DATA(cmsg); - tv->tv_sec = 123456789; - tv->tv_usec = 987654; + memcpy(CMSG_DATA(cmsg), &tv, sizeof(tv)); mh->msg_control = cmsg; mh->msg_controllen = len; @@ -237,13 +239,13 @@ test_scm_timestamp_old(struct msghdr *const mh, void *const page) ", cmsg_data={tv_sec=%lld, tv_usec=%llu}}]" ", msg_controllen=%lu, msg_flags=0}, 0) = %d %s (%m)\n", (unsigned) cmsg->cmsg_len, - (long long) tv->tv_sec, zero_extend_signed_to_ull(tv->tv_usec), + (long long) tv.tv_sec, zero_extend_signed_to_ull(tv.tv_usec), (unsigned long) len, rc, errno2name()); - len = CMSG_SPACE(sizeof(struct timeval) - sizeof(long)); + len = CMSG_SPACE(sizeof(tv) - sizeof(long)); cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = CMSG_LEN(sizeof(struct timeval) - sizeof(long)); + cmsg->cmsg_len = CMSG_LEN(sizeof(tv) - sizeof(long)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMP_OLD; @@ -262,15 +264,17 @@ test_scm_timestamp_old(struct msghdr *const mh, void *const page) static void test_scm_timestampns_old(struct msghdr *const mh, void *const page) { - size_t len = CMSG_SPACE(sizeof(struct timespec)); + static const kernel_old_timespec_t ts = { + .tv_sec = 123456789, + .tv_nsec = 987654321 + }; + size_t len = CMSG_SPACE(sizeof(ts)); struct cmsghdr *cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = CMSG_LEN(sizeof(struct timespec)); + cmsg->cmsg_len = CMSG_LEN(sizeof(ts)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMPNS_OLD; - struct timespec *ts = (struct timespec *) CMSG_DATA(cmsg); - ts->tv_sec = 123456789; - ts->tv_nsec = 987654321; + memcpy(CMSG_DATA(cmsg), &ts, sizeof(ts)); mh->msg_control = cmsg; mh->msg_controllen = len; @@ -282,13 +286,13 @@ test_scm_timestampns_old(struct msghdr *const mh, void *const page) ", cmsg_data={tv_sec=%lld, tv_nsec=%llu}}]" ", msg_controllen=%lu, msg_flags=0}, 0) = %d %s (%m)\n", (unsigned) cmsg->cmsg_len, - (long long) ts->tv_sec, zero_extend_signed_to_ull(ts->tv_nsec), + (long long) ts.tv_sec, zero_extend_signed_to_ull(ts.tv_nsec), (unsigned long) len, rc, errno2name()); - len = CMSG_SPACE(sizeof(struct timespec) - sizeof(long)); + len = CMSG_SPACE(sizeof(ts) - sizeof(long)); cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = CMSG_LEN(sizeof(struct timespec) - sizeof(long)); + cmsg->cmsg_len = CMSG_LEN(sizeof(ts) - sizeof(long)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMPNS_OLD; @@ -308,19 +312,18 @@ test_scm_timestampns_old(struct msghdr *const mh, void *const page) static void test_scm_timestamping_old(struct msghdr *const mh, void *const page) { - size_t len = CMSG_SPACE(3 * sizeof(struct timespec)); + static const kernel_old_timespec_t ts[] = { + { .tv_sec = 123456789, .tv_nsec = 987654321 }, + { .tv_sec = 123456790, .tv_nsec = 987654320 }, + { .tv_sec = 123456791, .tv_nsec = 987654319 } + }; + size_t len = CMSG_SPACE(sizeof(ts)); struct cmsghdr *cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = CMSG_LEN(3 * sizeof(struct timespec)); + cmsg->cmsg_len = CMSG_LEN(sizeof(ts)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMPING_OLD; - struct timespec *ts = (struct timespec *) CMSG_DATA(cmsg); - ts[0].tv_sec = 123456789; - ts[0].tv_nsec = 987654321; - ts[1].tv_sec = 123456790; - ts[1].tv_nsec = 987654320; - ts[2].tv_sec = 123456791; - ts[2].tv_nsec = 987654319; + memcpy(CMSG_DATA(cmsg), ts, sizeof(ts)); mh->msg_control = cmsg; mh->msg_controllen = len; @@ -340,10 +343,10 @@ test_scm_timestamping_old(struct msghdr *const mh, void *const page) zero_extend_signed_to_ull(ts[2].tv_nsec), (unsigned long) len, rc, errno2name()); - len = CMSG_SPACE(3 * sizeof(struct timespec) - sizeof(long)); + len = CMSG_SPACE(sizeof(ts) - sizeof(long)); cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = CMSG_LEN(3 * sizeof(struct timespec) - sizeof(long)); + cmsg->cmsg_len = CMSG_LEN(sizeof(ts) - sizeof(long)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMPING_OLD; @@ -364,16 +367,17 @@ test_scm_timestamping_old(struct msghdr *const mh, void *const page) static void test_scm_timestamp_new(struct msghdr *const mh, void *const page) { - size_t len = CMSG_SPACE(sizeof(struct __kernel_sock_timeval)); + static const struct __kernel_sock_timeval tv = { + .tv_sec = 0xdefaceddeadbeef, + .tv_usec = 0xdec0dedcafef00d + }; + size_t len = CMSG_SPACE(sizeof(tv)); struct cmsghdr *cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = CMSG_LEN(sizeof(struct __kernel_sock_timeval)); + cmsg->cmsg_len = CMSG_LEN(sizeof(tv)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMP_NEW; - struct __kernel_sock_timeval *tv = - (struct __kernel_sock_timeval *) CMSG_DATA(cmsg); - tv->tv_sec = 0xdefaceddeadbeef; - tv->tv_usec = 0xdec0dedcafef00d; + memcpy(CMSG_DATA(cmsg), &tv, sizeof(tv)); mh->msg_control = cmsg; mh->msg_controllen = len; @@ -385,14 +389,13 @@ test_scm_timestamp_new(struct msghdr *const mh, void *const page) ", cmsg_data={tv_sec=%lld, tv_usec=%llu}}]" ", msg_controllen=%lu, msg_flags=0}, 0) = %s\n", (unsigned) cmsg->cmsg_len, - (long long) tv->tv_sec, zero_extend_signed_to_ull(tv->tv_usec), + (long long) tv.tv_sec, zero_extend_signed_to_ull(tv.tv_usec), (unsigned long) len, sprintrc(rc)); - len = CMSG_SPACE(sizeof(struct __kernel_sock_timeval) - sizeof(long)); + len = CMSG_SPACE(sizeof(tv) - sizeof(long)); cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = - CMSG_LEN(sizeof(struct __kernel_sock_timeval) - sizeof(long)); + cmsg->cmsg_len = CMSG_LEN(sizeof(tv) - sizeof(long)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMP_NEW; @@ -413,16 +416,17 @@ test_scm_timestamp_new(struct msghdr *const mh, void *const page) static void test_scm_timestampns_new(struct msghdr *const mh, void *const page) { - size_t len = CMSG_SPACE(sizeof(struct __kernel_timespec)); + static const struct __kernel_timespec ts = { + .tv_sec = 0xdefaceddeadbeef, + .tv_nsec = 0xdec0dedcafef00d + }; + size_t len = CMSG_SPACE(sizeof(ts)); struct cmsghdr *cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = CMSG_LEN(sizeof(struct __kernel_timespec)); + cmsg->cmsg_len = CMSG_LEN(sizeof(ts)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMPNS_NEW; - struct __kernel_timespec *ts = - (struct __kernel_timespec *) CMSG_DATA(cmsg); - ts->tv_sec = 0xdefaceddeadbeef; - ts->tv_nsec = 0xdec0dedcafef00d; + memcpy(CMSG_DATA(cmsg), &ts, sizeof(ts)); mh->msg_control = cmsg; mh->msg_controllen = len; @@ -434,14 +438,13 @@ test_scm_timestampns_new(struct msghdr *const mh, void *const page) ", cmsg_data={tv_sec=%lld, tv_nsec=%llu}}]" ", msg_controllen=%lu, msg_flags=0}, 0) = %s\n", (unsigned) cmsg->cmsg_len, - (long long) ts->tv_sec, zero_extend_signed_to_ull(ts->tv_nsec), + (long long) ts.tv_sec, zero_extend_signed_to_ull(ts.tv_nsec), (unsigned long) len, sprintrc(rc)); - len = CMSG_SPACE(sizeof(struct __kernel_timespec) - sizeof(long)); + len = CMSG_SPACE(sizeof(ts) - sizeof(long)); cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = - CMSG_LEN(sizeof(struct __kernel_timespec) - sizeof(long)); + cmsg->cmsg_len = CMSG_LEN(sizeof(ts) - sizeof(long)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMPNS_NEW; @@ -461,20 +464,18 @@ test_scm_timestampns_new(struct msghdr *const mh, void *const page) static void test_scm_timestamping_new(struct msghdr *const mh, void *const page) { - size_t len = CMSG_SPACE(3 * sizeof(struct __kernel_timespec)); + static const struct __kernel_timespec ts[] = { + { .tv_sec = 0xdeface0deadbef1, .tv_nsec = 0xdec0de2cafef0d3 }, + { .tv_sec = 0xdeface4deadbef5, .tv_nsec = 0xdec0de6cafef0d7 }, + { .tv_sec = 0xdeface8deadbef9, .tv_nsec = 0xdec0dedcafef00d } + }; + size_t len = CMSG_SPACE(sizeof(ts)); struct cmsghdr *cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = CMSG_LEN(3 * sizeof(struct __kernel_timespec)); + cmsg->cmsg_len = CMSG_LEN(sizeof(ts)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMPING_NEW; - struct __kernel_timespec *ts = - (struct __kernel_timespec *) CMSG_DATA(cmsg); - ts[0].tv_sec = 0xdeface0deadbef1; - ts[0].tv_nsec = 0xdec0de2cafef0d3; - ts[1].tv_sec = 0xdeface4deadbef5; - ts[1].tv_nsec = 0xdec0de6cafef0d7; - ts[2].tv_sec = 0xdeface8deadbef9; - ts[2].tv_nsec = 0xdec0dedcafef00d; + memcpy(CMSG_DATA(cmsg), ts, sizeof(ts)); mh->msg_control = cmsg; mh->msg_controllen = len; @@ -494,11 +495,10 @@ test_scm_timestamping_new(struct msghdr *const mh, void *const page) zero_extend_signed_to_ull(ts[2].tv_nsec), (unsigned long) len, sprintrc(rc)); - len = CMSG_SPACE(3 * sizeof(struct __kernel_timespec) - sizeof(long)); + len = CMSG_SPACE(sizeof(ts) - sizeof(long)); cmsg = get_cmsghdr(page, len); - cmsg->cmsg_len = - CMSG_LEN(3 * sizeof(struct __kernel_timespec) - sizeof(long)); + cmsg->cmsg_len = CMSG_LEN(sizeof(ts) - sizeof(long)); cmsg->cmsg_level = SOL_SOCKET; cmsg->cmsg_type = SO_TIMESTAMPING_NEW; @@ -987,7 +987,7 @@ int main(int ac, const char **av) printf("sendmsg(-1, %p, 0) = %d %s (%m)\n", mh + 1, rc, errno2name()); - void *page = tail_alloc(1) + 1; + void *page = tail_alloc(1024) + 1024; mh->msg_control = page; mh->msg_controllen = CMSG_LEN(0); rc = sendmsg(-1, mh, 0); diff --git a/tests/nanosleep.c b/tests/nanosleep.c index c7ebf496..d55b395c 100644 --- a/tests/nanosleep.c +++ b/tests/nanosleep.c @@ -2,19 +2,38 @@ * Check decoding of nanosleep syscall. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include -#include -#include -#include -#include +#include "scno.h" + +#ifdef __NR_nanosleep + +# include +# include +# include +# include +# include +# include + +# include "kernel_old_timespec.h" + +static const char *errstr; + +static long +k_nanosleep(const void *const req, void *const rem) +{ + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = (uintptr_t) req; + const kernel_ulong_t arg2 = (uintptr_t) rem; + const long rc = syscall(__NR_nanosleep, arg1, arg2, bad, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} static void handler(int signo) @@ -25,7 +44,7 @@ int main(void) { struct { - struct timespec ts; + kernel_old_timespec_t ts; uint32_t pad[2]; } req = { .ts.tv_nsec = 0xc0de1, @@ -38,47 +57,51 @@ main(void) const struct sigaction act = { .sa_handler = handler }; const struct itimerval itv = { .it_value.tv_usec = 111111 }; - if (nanosleep(&req.ts, NULL)) + if (k_nanosleep(&req.ts, NULL)) perror_msg_and_fail("nanosleep"); printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, NULL) = 0\n", (long long) req.ts.tv_sec, zero_extend_signed_to_ull(req.ts.tv_nsec)); - assert(nanosleep(NULL, &rem.ts) == -1); - printf("nanosleep(NULL, %p) = -1 EFAULT (%m)\n", &rem.ts); + assert(k_nanosleep(NULL, &rem.ts) == -1); + printf("nanosleep(NULL, %p) = %s\n", &rem.ts, errstr); - if (nanosleep(&req.ts, &rem.ts)) + if (k_nanosleep(&req.ts, &rem.ts)) perror_msg_and_fail("nanosleep"); printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, %p) = 0\n", (long long) req.ts.tv_sec, zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts); req.ts.tv_nsec = 1000000000; - assert(nanosleep(&req.ts, &rem.ts) == -1); - printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, %p) = -1 EINVAL (%m)\n", + assert(k_nanosleep(&req.ts, &rem.ts) == -1); + printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, %p) = %s\n", (long long) req.ts.tv_sec, - zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts); + zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts, + errstr); req.ts.tv_sec = 0xdeadbeefU; req.ts.tv_nsec = 0xfacefeedU; - assert(nanosleep(&req.ts, &rem.ts) == -1); - printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, %p) = -1 EINVAL (%m)\n", + assert(k_nanosleep(&req.ts, &rem.ts) == -1); + printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, %p) = %s\n", (long long) req.ts.tv_sec, - zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts); + zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts, + errstr); req.ts.tv_sec = (time_t) 0xcafef00ddeadbeefLL; req.ts.tv_nsec = (long) 0xbadc0dedfacefeedLL; - assert(nanosleep(&req.ts, &rem.ts) == -1); - printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, %p) = -1 EINVAL (%m)\n", + assert(k_nanosleep(&req.ts, &rem.ts) == -1); + printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, %p) = %s\n", (long long) req.ts.tv_sec, - zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts); + zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts, + errstr); req.ts.tv_sec = -1; req.ts.tv_nsec = -1; - assert(nanosleep(&req.ts, &rem.ts) == -1); - printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, %p) = -1 EINVAL (%m)\n", + assert(k_nanosleep(&req.ts, &rem.ts) == -1); + printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, %p) = %s\n", (long long) req.ts.tv_sec, - zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts); + zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts, + errstr); assert(sigaction(SIGALRM, &act, NULL) == 0); assert(sigprocmask(SIG_SETMASK, &set, NULL) == 0); @@ -88,7 +111,7 @@ main(void) req.ts.tv_sec = 0; req.ts.tv_nsec = 999999999; - assert(nanosleep(&req.ts, &rem.ts) == -1); + assert(k_nanosleep(&req.ts, &rem.ts) == -1); printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}" ", {tv_sec=%lld, tv_nsec=%llu})" " = ? ERESTART_RESTARTBLOCK (Interrupted by signal)\n", @@ -101,3 +124,9 @@ main(void) puts("+++ exited with 0 +++"); return 0; } + +#else + +SKIP_MAIN_UNDEFINED("__NR_nanosleep") + +#endif diff --git a/tests/net--decode-fds-dev-netlink.c b/tests/net--decode-fds-dev-netlink.c new file mode 100644 index 00000000..a84f91b5 --- /dev/null +++ b/tests/net--decode-fds-dev-netlink.c @@ -0,0 +1,2 @@ +#define PRINT_SOCK 1 +#include "net-yy-netlink.c" diff --git a/tests/net--decode-fds-dev-netlink.gen.test b/tests/net--decode-fds-dev-netlink.gen.test new file mode 100755 index 00000000..92663b86 --- /dev/null +++ b/tests/net--decode-fds-dev-netlink.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (net--decode-fds-dev-netlink +net-yy-netlink.test --decode-fds=dev); do not edit. +set -- --decode-fds=dev +. "${srcdir=.}/net-yy-netlink.test" diff --git a/tests/net--decode-fds-none-netlink.c b/tests/net--decode-fds-none-netlink.c new file mode 100644 index 00000000..2c8daace --- /dev/null +++ b/tests/net--decode-fds-none-netlink.c @@ -0,0 +1,2 @@ +#define PRINT_SOCK 0 +#include "net-yy-netlink.c" diff --git a/tests/net--decode-fds-none-netlink.gen.test b/tests/net--decode-fds-none-netlink.gen.test new file mode 100755 index 00000000..ea3f2250 --- /dev/null +++ b/tests/net--decode-fds-none-netlink.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (net--decode-fds-none-netlink +net-yy-netlink.test --decode-fds=none -a9); do not edit. +set -- --decode-fds=none -a9 +. "${srcdir=.}/net-yy-netlink.test" diff --git a/tests/net--decode-fds-path-netlink.c b/tests/net--decode-fds-path-netlink.c new file mode 100644 index 00000000..a84f91b5 --- /dev/null +++ b/tests/net--decode-fds-path-netlink.c @@ -0,0 +1,2 @@ +#define PRINT_SOCK 1 +#include "net-yy-netlink.c" diff --git a/tests/net--decode-fds-path-netlink.gen.test b/tests/net--decode-fds-path-netlink.gen.test new file mode 100755 index 00000000..6943b682 --- /dev/null +++ b/tests/net--decode-fds-path-netlink.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (net--decode-fds-path-netlink +net-yy-netlink.test --decode-fds=path); do not edit. +set -- --decode-fds=path +. "${srcdir=.}/net-yy-netlink.test" diff --git a/tests/net--decode-fds-socket-netlink.c b/tests/net--decode-fds-socket-netlink.c new file mode 100644 index 00000000..7416ccd9 --- /dev/null +++ b/tests/net--decode-fds-socket-netlink.c @@ -0,0 +1,2 @@ +#define PRINT_SOCK 2 +#include "net-yy-netlink.c" diff --git a/tests/net--decode-fds-socket-netlink.gen.test b/tests/net--decode-fds-socket-netlink.gen.test new file mode 100755 index 00000000..012d876f --- /dev/null +++ b/tests/net--decode-fds-socket-netlink.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (net--decode-fds-socket-netlink +net-yy-netlink.test --decode-fds=socket); do not edit. +set -- --decode-fds=socket +. "${srcdir=.}/net-yy-netlink.test" diff --git a/tests/net-sockaddr--pidns-translation.c b/tests/net-sockaddr--pidns-translation.c new file mode 100644 index 00000000..ff432bf4 --- /dev/null +++ b/tests/net-sockaddr--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "net-sockaddr.c" diff --git a/tests/net-sockaddr--pidns-translation.gen.test b/tests/net-sockaddr--pidns-translation.gen.test new file mode 100755 index 00000000..ce8db05e --- /dev/null +++ b/tests/net-sockaddr--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (net-sockaddr--pidns-translation test_pidns -a24 -e trace=connect); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a24 -e trace=connect diff --git a/tests/net-sockaddr.c b/tests/net-sockaddr.c index cd973922..c7e9bde7 100644 --- a/tests/net-sockaddr.c +++ b/tests/net-sockaddr.c @@ -2,13 +2,14 @@ * Check decoding of sockaddr structures * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include "pidns.h" #include #include #include @@ -40,18 +41,21 @@ check_un(void) memset(un->sun_path, '0', sizeof(un->sun_path)); unsigned int len = sizeof(*un); int ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%.*u\"}" ", %u) = %d EBADF (%m)\n", (int) sizeof(un->sun_path), 0, len, ret); un->sun_path[1] = 0; ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%u\"}, %u)" " = %d EBADF (%m)\n", 0, len, ret); un->sun_path[0] = 0; un->sun_path[2] = 1; ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNIX, sun_path=@\"\\0\\001%.*u\"}" ", %u) = %d EBADF (%m)\n", (int) sizeof(un->sun_path) - 3, 0, len, ret); @@ -61,12 +65,14 @@ check_un(void) memset(un->sun_path, '0', sizeof(un->sun_path)); len = sizeof(*un) + 2; ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%.*u\"}" ", %u) = %d EBADF (%m)\n", (int) sizeof(un->sun_path), 0, len, ret); un->sun_path[0] = 0; ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNIX, sun_path=@\"%.*u\"}" ", %u) = %d EBADF (%m)\n", (int) sizeof(un->sun_path) - 1, 0, len, ret); @@ -75,18 +81,21 @@ check_un(void) un->sun_family = AF_UNIX; len = sizeof(*un) - 2; ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%.*u\"}" ", %u) = %d EBADF (%m)\n", (int) sizeof(un->sun_path) - 2, 0, len, ret); un->sun_path[0] = 0; ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNIX, sun_path=@\"%.*u\"}" ", %u) = %d EBADF (%m)\n", (int) sizeof(un->sun_path) - 3, 0, len, ret); len = sizeof(*un); ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, %p, %u) = %d EBADF (%m)\n", un, len, ret); un = tail_alloc(sizeof(struct sockaddr_storage)); @@ -94,12 +103,14 @@ check_un(void) memset(un->sun_path, '0', sizeof(un->sun_path)); len = sizeof(struct sockaddr_storage) + 1; ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%.*u\"}" ", %u) = %d EBADF (%m)\n", (int) sizeof(un->sun_path), 0, len, ret); un->sun_path[0] = 0; ret = connect(-1, (void *) un, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNIX, sun_path=@\"%.*u\"}" ", %u) = %d EBADF (%m)\n", (int) sizeof(un->sun_path) - 1, 0, len, ret); @@ -117,6 +128,7 @@ check_in(void) in->sin_addr.s_addr = inet_addr(h_addr); unsigned int len = sizeof(*in); int ret = connect(-1, (void *) in, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_INET, sin_port=htons(%hu)" ", sin_addr=inet_addr(\"%s\")}, %u) = %d EBADF (%m)\n", h_port, h_addr, len, ret); @@ -127,6 +139,7 @@ check_in(void) in->sin_addr.s_addr = inet_addr(h_addr); len = sizeof(*in) + 4; ret = connect(-1, (void *) in, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_INET, sin_port=htons(%hu)" ", sin_addr=inet_addr(\"%s\")}, %u) = %d EBADF (%m)\n", h_port, h_addr, len, ret); @@ -137,6 +150,7 @@ check_in(void) in->sin_addr.s_addr = 0; len = sizeof(*in) - 4; ret = connect(-1, (void *) in, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_INET, sa_data=\"%s\"}, %u)" " = %d EBADF (%m)\n", "\\0\\0\\0\\0\\0\\0\\377\\377\\377\\377", @@ -144,6 +158,7 @@ check_in(void) len = sizeof(*in); ret = connect(-1, (void *) in, len); + pidns_print_leader(); printf("connect(-1, %p, %u) = %d EBADF (%m)\n", in, len, ret); } @@ -155,6 +170,7 @@ check_in6_linklocal(struct sockaddr_in6 *const in6, const char *const h_addr) in6->sin6_scope_id = 0xfacefeed; unsigned int len = sizeof(*in6); int ret = connect(-1, (void *) in6, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)" ", sin6_flowinfo=htonl(%u)" ", inet_pton(AF_INET6, \"%s\", &sin6_addr)" @@ -166,7 +182,8 @@ check_in6_linklocal(struct sockaddr_in6 *const in6, const char *const h_addr) in6->sin6_scope_id = ifindex_lo(); if (in6->sin6_scope_id) { ret = connect(-1, (void *) in6, len); - printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)" + pidns_print_leader(); + printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)" ", sin6_flowinfo=htonl(%u)" ", inet_pton(AF_INET6, \"%s\", &sin6_addr)" ", sin6_scope_id=%s}, %u)" @@ -191,6 +208,7 @@ check_in6(void) in6->sin6_scope_id = 0xfacefeed; unsigned int len = sizeof(*in6); int ret = connect(-1, (void *) in6, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)" ", sin6_flowinfo=htonl(%u)" ", inet_pton(AF_INET6, \"%s\", &sin6_addr)" @@ -209,6 +227,7 @@ check_in6(void) in6->sin6_scope_id = 0xfacefeed; len = sizeof(*in6) + 4; ret = connect(-1, (void *) in6, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)" ", sin6_flowinfo=htonl(%u)" ", inet_pton(AF_INET6, \"%s\", &sin6_addr)" @@ -223,6 +242,7 @@ check_in6(void) inet_pton(AF_INET6, h_addr, &in6->sin6_addr); len = sizeof(*in6) - sizeof(in6->sin6_scope_id); ret = connect(-1, (void *) in6, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)" ", sin6_flowinfo=htonl(%u)" ", inet_pton(AF_INET6, \"%s\", &sin6_addr)}, %u)" @@ -236,6 +256,7 @@ check_in6(void) memset(&in6->sin6_addr, '0', sizeof(in6->sin6_addr) - 4); len = sizeof(*in6) - sizeof(in6->sin6_scope_id) - 4; ret = connect(-1, (void *) in6, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_INET6" ", sa_data=\"\\0\\0\\0\\0\\0\\000%.*u\"}, %u)" " = %d EBADF (%m)\n", @@ -244,6 +265,7 @@ check_in6(void) len = sizeof(*in6) - sizeof(in6->sin6_scope_id); ret = connect(-1, (void *) in6, len); + pidns_print_leader(); printf("connect(-1, %p, %u) = %d EBADF (%m)\n", in6, len, ret); } @@ -262,6 +284,7 @@ check_ipx(void) void *ipx = tail_memdup(&c_ipx, sizeof(c_ipx)); unsigned int len = sizeof(c_ipx); int ret = connect(-1, ipx, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_IPX, sipx_port=htons(%u)" ", sipx_network=htonl(%#x)" ", sipx_node=[%#02x, %#02x, %#02x, %#02x, %#02x, %#02x]" @@ -316,18 +339,21 @@ check_ax25(void) fill_memory(sax, size); sax->fsa_ax25.sax25_family = AF_AX25; rc = connect(-1, sax_void, sizeof(struct sockaddr_ax25) - 1); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_AX25, sa_data=\"\\202\\203\\204\\205" "\\206\\207\\210\\211\\212\\213\\214\\215\\216\"}, %zu) = %s\n", sizeof(struct sockaddr_ax25) - 1, sprintrc(rc)); memcpy(sax, &ax25, sizeof(ax25)); rc = connect(-1, sax_void, sizeof(struct sockaddr_ax25)); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_AX25, fsa_ax25={sax25_call=VALID-13" ", sax25_ndigis=8}, fsa_digipeater=[/* ??? */]}, %zu) = %s\n", sizeof(struct sockaddr_ax25), sprintrc(rc)); sax->fsa_ax25.sax25_ndigis = 0; rc = connect(-1, sax_void, sizeof(struct sockaddr_ax25)); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_AX25, sax25_call=VALID-13" ", sax25_ndigis=0}, %zu) = %s\n", sizeof(struct sockaddr_ax25), sprintrc(rc)); @@ -335,6 +361,7 @@ check_ax25(void) sax->fsa_ax25.sax25_ndigis = 8; size = sizeof(struct sockaddr_ax25) + sizeof(ax25_address) * 3 + 1; rc = connect(-1, sax_void, size); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_AX25, fsa_ax25={sax25_call=VALID-13" ", sax25_ndigis=8}, fsa_digipeater" "=[{ax25_call=\"\\xa6\\xa0\\x82\\x40\\x86\\x8a\\x00\"" @@ -348,6 +375,7 @@ check_ax25(void) sax->fsa_digipeater[2].ax25_call[6] = 0x4; size = sizeof(struct sockaddr_ax25) + sizeof(ax25_address) * 4; rc = connect(-1, sax_void, size); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_AX25, fsa_ax25={sax25_call=VALID-13" ", sax25_ndigis=8}, fsa_digipeater" "=[{ax25_call=\"\\xa6\\xa0\\x82\\x40\\x86\\x8a\\x00\"" @@ -365,6 +393,7 @@ check_ax25(void) for (size_t i = 0; i < 3; i++) { size = sizeof(ax25) + sizeof(ax25_address) * (i / 2); rc = connect(-1, sax_void, size); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_AX25" ", fsa_ax25={sax25_call=VALID-13, sax25_ndigis=%d}" ", fsa_digipeater=[VALID2-7, OK-15, %s /* FINE-2 */" @@ -423,25 +452,28 @@ check_x25(void) .sx25_family = AF_X25, .sx25_addr = { "0123456789abcdef" }, }; - void *x25_void = tail_memdup(&c_x25, sizeof(c_x25) + 1); - struct sockaddr_x25 *x25 = x25_void; + void *const x25_void = tail_memdup(&c_x25, sizeof(c_x25) + 1); long rc; - rc = connect(-1, x25, sizeof(c_x25) - 1); + rc = connect(-1, x25_void, sizeof(c_x25) - 1); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_X25" ", sa_data=\"0123456789abcde\"}, %zu) = %s\n", sizeof(c_x25) - 1, sprintrc(rc)); for (size_t i = 0; i < 2; i++) { - rc = connect(-1, x25, sizeof(c_x25) + i); + rc = connect(-1, x25_void, sizeof(c_x25) + i); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_X25" ", sx25_addr={x25_addr=\"0123456789abcde\"...}" "}, %zu) = %s\n", sizeof(c_x25) + i, sprintrc(rc)); } + struct sockaddr_x25 *const x25 = x25_void; x25->sx25_addr.x25_addr[10] = '\0'; - rc = connect(-1, x25, sizeof(c_x25)); + rc = connect(-1, x25_void, sizeof(c_x25)); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_X25" ", sx25_addr={x25_addr=\"0123456789\"}" "}, %zu) = %s\n", @@ -457,19 +489,21 @@ check_nl(void) nl->nl_groups = 0xfacefeed; unsigned int len = sizeof(*nl); int ret = connect(-1, (void *) nl, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_NETLINK, nl_pid=%d" ", nl_groups=%#08x}, %u) = %d EBADF (%m)\n", nl->nl_pid, nl->nl_groups, len, ret); nl = ((void *) nl) - 4; nl->nl_family = AF_NETLINK; - nl->nl_pid = 1234567890; + nl->nl_pid = getpid(); nl->nl_groups = 0xfacefeed; len = sizeof(*nl) + 4; ret = connect(-1, (void *) nl, len); - printf("connect(-1, {sa_family=AF_NETLINK, nl_pid=%d" + pidns_print_leader(); + printf("connect(-1, {sa_family=AF_NETLINK, nl_pid=%d%s" ", nl_groups=%#08x}, %u) = %d EBADF (%m)\n", - nl->nl_pid, nl->nl_groups, len, ret); + nl->nl_pid, pidns_pid2str(PT_TGID), nl->nl_groups, len, ret); } static void @@ -487,6 +521,7 @@ check_ll(void) void *ll = tail_memdup(&c_ll, sizeof(c_ll)); unsigned int len = sizeof(c_ll); int ret = connect(-1, ll, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_PACKET" ", sll_protocol=htons(ETH_P_ALL)" ", sll_ifindex=%u, sll_hatype=ARPHRD_ETHER" @@ -502,6 +537,7 @@ check_ll(void) ((struct sockaddr_ll *) ll)->sll_halen++; ret = connect(-1, ll, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_PACKET" ", sll_protocol=htons(ETH_P_ALL)" ", sll_ifindex=%u, sll_hatype=ARPHRD_ETHER" @@ -517,6 +553,7 @@ check_ll(void) ((struct sockaddr_ll *) ll)->sll_halen = 0; ret = connect(-1, ll, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_PACKET" ", sll_protocol=htons(ETH_P_ALL)" ", sll_ifindex=%u, sll_hatype=ARPHRD_ETHER" @@ -526,6 +563,7 @@ check_ll(void) ((struct sockaddr_ll *) ll)->sll_ifindex = ifindex_lo(); if (((struct sockaddr_ll *) ll)->sll_ifindex) { ret = connect(-1, ll, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_PACKET" ", sll_protocol=htons(ETH_P_ALL)" ", sll_ifindex=%s" @@ -543,11 +581,24 @@ check_hci(void) TAIL_ALLOC_OBJECT_VAR_PTR(struct sockaddr_hci, hci); hci->hci_family = AF_BLUETOOTH; hci->hci_dev = htobs(h_port); +# ifdef HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL hci->hci_channel = HCI_CHANNEL_RAW; +# endif unsigned int len = sizeof(*hci); - int ret = connect(-1, (void *) hci, len); + + int ret = connect(-1, (void *) hci, 4); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_BLUETOOTH, hci_dev=htobs(%hu)" - ", hci_channel=HCI_CHANNEL_RAW}, %u) = %d EBADF (%m)\n", + "}, 4) = %d EBADF (%m)\n", + h_port, ret); + + ret = connect(-1, (void *) hci, len); + pidns_print_leader(); + printf("connect(-1, {sa_family=AF_BLUETOOTH, hci_dev=htobs(%hu)" +# ifdef HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL + ", hci_channel=HCI_CHANNEL_RAW" +# endif + "}, %u) = %d EBADF (%m)\n", h_port, len, ret); } @@ -561,6 +612,7 @@ check_sco(void) void *sco = tail_memdup(&c_sco, sizeof(c_sco)); unsigned int len = sizeof(c_sco); int ret = connect(-1, sco, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_BLUETOOTH" ", sco_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x" "}, %u) = %d EBADF (%m)\n", @@ -581,6 +633,7 @@ check_rc(void) void *rc = tail_memdup(&c_rc, sizeof(c_rc)); unsigned int len = sizeof(c_rc); int ret = connect(-1, rc, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_BLUETOOTH" ", rc_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x" ", rc_channel=%u}, %u) = %d EBADF (%m)\n", @@ -608,6 +661,7 @@ check_l2(void) unsigned int len = sizeof(c_l2); int ret = connect(-1, l2, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_BLUETOOTH" ", l2_psm=htobs(L2CAP_PSM_DYN_START + %hu)" ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x" @@ -629,6 +683,7 @@ check_l2(void) # endif memcpy(l2, &c_l2, sizeof(c_l2)); ret = connect(-1, l2, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_BLUETOOTH" ", l2_psm=htobs(L2CAP_PSM_SDP)" ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x" @@ -649,6 +704,7 @@ check_l2(void) # endif memcpy(l2, &c_l2, sizeof(c_l2)); ret = connect(-1, l2, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_BLUETOOTH" ", l2_psm=htobs(0xbad /* L2CAP_PSM_??? */)" ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x" @@ -666,6 +722,7 @@ check_l2(void) c_l2.l2_cid = htobs(0xffff); memcpy(l2, &c_l2, 12); ret = connect(-1, l2, 12); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_BLUETOOTH" ", l2_psm=htobs(L2CAP_PSM_AUTO_END)" ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x" @@ -689,6 +746,7 @@ check_raw(void) u.sa->sa_family = 0xff; unsigned int len = sizeof(*u.st) + 8; int ret = connect(-1, (void *) u.st, len); + pidns_print_leader(); printf("connect(-1, {sa_family=%#x /* AF_??? */, sa_data=\"%.*u\"}" ", %u) = %d EBADF (%m)\n", u.sa->sa_family, (int) (sizeof(*u.st) - sizeof(u.sa->sa_family)), 0, len, ret); @@ -696,19 +754,22 @@ check_raw(void) u.sa->sa_family = 0; len = sizeof(u.sa->sa_family) + 1; ret = connect(-1, (void *) u.st, len); + pidns_print_leader(); printf("connect(-1, {sa_family=AF_UNSPEC, sa_data=\"0\"}, %u)" " = %d EBADF (%m)\n", len, ret); u.sa->sa_family = AF_BLUETOOTH; - ++len; ret = connect(-1, (void *) u.st, len); - printf("connect(-1, {sa_family=AF_BLUETOOTH, sa_data=\"00\"}, %u)" + pidns_print_leader(); + printf("connect(-1, {sa_family=AF_BLUETOOTH, sa_data=\"0\"}, %u)" " = %d EBADF (%m)\n", len, ret); } int main(void) { + PIDNS_TEST_INIT; + check_un(); check_in(); check_in6(); @@ -725,6 +786,7 @@ main(void) #endif check_raw(); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests/net-yy-netlink.c b/tests/net-yy-netlink.c index 38b1a0d4..e2c95586 100644 --- a/tests/net-yy-netlink.c +++ b/tests/net-yy-netlink.c @@ -3,7 +3,7 @@ * * Copyright (c) 2013-2017 Dmitry V. Levin * Copyright (c) 2016 Fabien Siron - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -21,6 +21,27 @@ #include #include +#ifndef PRINT_SOCK +# define PRINT_SOCK 2 +#endif + +#if PRINT_SOCK == 2 +# define FMT_UNBOUND "" +# define FMT_BOUND "" +# define ARG_UNBOUND inode +# define ARG_BOUND addr.nl_pid +#elif PRINT_SOCK == 1 +# define FMT_UNBOUND "" +# define FMT_BOUND "" +# define ARG_UNBOUND inode +# define ARG_BOUND inode +#else +# define FMT_UNBOUND "%s" +# define FMT_BOUND "%s" +# define ARG_UNBOUND "" +# define ARG_BOUND "" +#endif + int main(void) { @@ -37,25 +58,27 @@ main(void) const int fd = socket(AF_NETLINK, SOCK_RAW, NETLINK_SOCK_DIAG); if (fd < 0) perror_msg_and_skip("socket"); +#if PRINT_SOCK const unsigned long inode = inode_of_sockfd(fd); +#endif printf("socket(AF_NETLINK, SOCK_RAW, NETLINK_SOCK_DIAG) = " - "%d\n", fd, inode); + "%d" FMT_UNBOUND "\n", fd, ARG_UNBOUND); if (bind(fd, sa, *len)) perror_msg_and_skip("bind"); - printf("bind(%d, {sa_family=AF_NETLINK" - ", nl_pid=%u, nl_groups=00000000}, %u) = 0\n", - fd, inode, addr.nl_pid, (unsigned) *len); + printf("bind(%d" FMT_UNBOUND ", {sa_family=AF_NETLINK" + ", nl_pid=%d, nl_groups=00000000}, %u) = 0\n", + fd, ARG_UNBOUND, addr.nl_pid, (unsigned) *len); if (getsockname(fd, sa, len)) perror_msg_and_fail("getsockname"); - printf("getsockname(%d, {sa_family=AF_NETLINK" - ", nl_pid=%u, nl_groups=00000000}, [%u]) = 0\n", - fd, addr.nl_pid, addr.nl_pid, (unsigned) *len); + printf("getsockname(%d" FMT_BOUND ", {sa_family=AF_NETLINK" + ", nl_pid=%d, nl_groups=00000000}, [%u]) = 0\n", + fd, ARG_BOUND, addr.nl_pid, (unsigned) *len); if (close(fd)) perror_msg_and_fail("close"); - printf("close(%d) = 0\n", fd, addr.nl_pid); + printf("close(%d" FMT_BOUND ") = 0\n", fd, ARG_BOUND); puts("+++ exited with 0 +++"); return 0; diff --git a/tests/net-yy-netlink.test b/tests/net-yy-netlink.test index 892c9799..729c59a7 100755 --- a/tests/net-yy-netlink.test +++ b/tests/net-yy-netlink.test @@ -6,7 +6,7 @@ # Copyright (c) 2014 Masatake YAMATO # Copyright (c) 2014-2016 Dmitry V. Levin # Copyright (c) 2016 Fabien Siron -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -15,9 +15,11 @@ check_prog sed +opts="${*:--yy}" + run_prog ../netlink_netlink_diag run_prog > /dev/null -run_strace -a22 -yy -eclose,network $args > "$EXP" +run_strace -a22 ${opts} -eclose,network $args > "$EXP" # Filter out close() calls made by ld.so and libc. sed -n '/socket/,$p' < "$LOG" > "$OUT" diff --git a/tests/netlink_audit--pidns-translation.c b/tests/netlink_audit--pidns-translation.c new file mode 100644 index 00000000..e08f9168 --- /dev/null +++ b/tests/netlink_audit--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "netlink_audit.c" diff --git a/tests/netlink_audit--pidns-translation.test b/tests/netlink_audit--pidns-translation.test new file mode 100755 index 00000000..1a39eadd --- /dev/null +++ b/tests/netlink_audit--pidns-translation.test @@ -0,0 +1,13 @@ +#!/bin/sh +# +# Check pidns translation of NETLINK_SOCK_DIAG protocol decoding +# +# Copyright (c) 2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: LGPL-2.1-or-later + +. "${srcdir=.}/init.sh" + +run_prog ../netlink_netlink_diag +test_pidns -e trace=sendto "$@" diff --git a/tests/netlink_audit.c b/tests/netlink_audit.c index eba609a1..559c2f71 100644 --- a/tests/netlink_audit.c +++ b/tests/netlink_audit.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include "pidns.h" #include #include #include @@ -17,18 +18,23 @@ static void test_nlmsg_type(const int fd) { + PIDNS_TEST_INIT; + long rc; struct nlmsghdr nlh = { .nlmsg_len = sizeof(nlh), .nlmsg_type = AUDIT_GET, .nlmsg_flags = NLM_F_REQUEST, + .nlmsg_pid = getpid(), }; rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0); + pidns_print_leader(); printf("sendto(%d, {len=%u, type=AUDIT_GET" - ", flags=NLM_F_REQUEST, seq=0, pid=0}" + ", flags=NLM_F_REQUEST, seq=0, pid=%d%s}" ", %u, MSG_DONTWAIT, NULL, 0) = %s\n", - fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc)); + fd, nlh.nlmsg_len, nlh.nlmsg_pid, pidns_pid2str(PT_TGID), + (unsigned) sizeof(nlh), sprintrc(rc)); } int main(void) @@ -39,6 +45,7 @@ int main(void) test_nlmsg_type(fd); + pidns_print_leader(); printf("+++ exited with 0 +++\n"); return 0; diff --git a/tests/netlink_protocol.c b/tests/netlink_protocol.c index fd901d88..99d9eb5d 100644 --- a/tests/netlink_protocol.c +++ b/tests/netlink_protocol.c @@ -3,7 +3,7 @@ * * Copyright (c) 2014-2017 Dmitry V. Levin * Copyright (c) 2016 Fabien Siron - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -264,7 +264,7 @@ test_nlmsgerr(const int fd) printf("sendto(%d, {{len=%u, type=NLMSG_ERROR, flags=NLM_F_REQUEST" ", seq=0, pid=0}, {error=-EACCES" ", msg={len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x" - ", seq=%u, pid=%u}}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n", + ", seq=%u, pid=%d}}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n", fd, nlh->nlmsg_len, err->msg.nlmsg_len, NLM_F_DUMP, err->msg.nlmsg_seq, err->msg.nlmsg_pid, nlh->nlmsg_len, sprintrc(rc)); @@ -289,7 +289,7 @@ test_nlmsgerr(const int fd) printf("sendto(%d, {{len=%u, type=NLMSG_ERROR, flags=NLM_F_REQUEST" ", seq=0, pid=0}, {error=-EACCES" ", msg={{len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x" - ", seq=%u, pid=%u}, \"\\x61\\x62\\x63\\x64\"}}}" + ", seq=%u, pid=%d}, \"\\x61\\x62\\x63\\x64\"}}}" ", %u, MSG_DONTWAIT, NULL, 0) = %s\n", fd, nlh->nlmsg_len, err->msg.nlmsg_len, NLM_F_DUMP, err->msg.nlmsg_seq, err->msg.nlmsg_pid, diff --git a/tests/netlink_sock_diag-v.sh b/tests/netlink_sock_diag-v.sh deleted file mode 100755 index 0fb467db..00000000 --- a/tests/netlink_sock_diag-v.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -# -# Check verbose decoding of NETLINK_SOCK_DIAG protocol -# -# Copyright (c) 2017-2018 The strace developers. -# All rights reserved. -# -# SPDX-License-Identifier: GPL-2.0-or-later - -. "${srcdir=.}/init.sh" - -run_prog ../netlink_netlink_diag -run_strace_match_diff -v -e trace=sendto diff --git a/tests/netlink_sock_diag.test b/tests/netlink_sock_diag.test index d5fb977b..f3f17ec0 100755 --- a/tests/netlink_sock_diag.test +++ b/tests/netlink_sock_diag.test @@ -2,7 +2,7 @@ # # Check decoding of NETLINK_SOCK_DIAG protocol # -# Copyright (c) 2017-2018 The strace developers. +# Copyright (c) 2017-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -10,4 +10,4 @@ . "${srcdir=.}/init.sh" run_prog ../netlink_netlink_diag -run_strace_match_diff -e trace=sendto +run_strace_match_diff -e trace=sendto "$@" diff --git a/tests/newfstatat.c b/tests/newfstatat.c index 955dce6d..805248af 100644 --- a/tests/newfstatat.c +++ b/tests/newfstatat.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_newfstatat diff --git a/tests/newfstatat.gen.test b/tests/newfstatat.gen.test index 40ec797c..9bea27f2 100755 --- a/tests/newfstatat.gen.test +++ b/tests/newfstatat.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (newfstatat -a32 -v -P stat.sample -P /dev/full); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (newfstatat -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a32 -v -P stat.sample -P /dev/full +run_strace_match_diff -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full diff --git a/tests/nlattr.c b/tests/nlattr.c index 2c5927b2..1331386f 100644 --- a/tests/nlattr.c +++ b/tests/nlattr.c @@ -2,7 +2,7 @@ * Check decoding of netlink attribute. * * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -105,7 +105,7 @@ test_nlattr(const int fd) nla = NLMSG_ATTR(msg, sizeof(msg->udm)); *nla = (struct nlattr) { .nla_len = NLA_HDRLEN + 4, - .nla_type = UNIX_DIAG_SHUTDOWN + 1 + .nla_type = UNIX_DIAG_FIRST_UNUSED }; memcpy(RTA_DATA(nla), "1234", 4); rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0); @@ -116,7 +116,7 @@ test_nlattr(const int fd) ", nla_type=%#x /* UNIX_DIAG_??? */}" ", \"\\x31\\x32\\x33\\x34\"}}" ", %u, MSG_DONTWAIT, NULL, 0) = %s\n", - fd, msg_len, nla->nla_len, UNIX_DIAG_SHUTDOWN + 1, + fd, msg_len, nla->nla_len, UNIX_DIAG_FIRST_UNUSED, msg_len, sprintrc(rc)); /* print one struct nlattr and fetch fail second struct nlattr */ @@ -201,7 +201,7 @@ test_nlattr(const int fd) for (i = 0; i < ABBREV_LEN; ++i) { nla[i * 2] = (struct nlattr) { .nla_len = NLA_HDRLEN * 2 - 1, - .nla_type = UNIX_DIAG_SHUTDOWN + 1 + i + .nla_type = UNIX_DIAG_FIRST_UNUSED + i }; fill_memory_ex(&nla[i * 2 + 1], NLA_HDRLEN, '0' + i, '~' - '0' - i); @@ -218,7 +218,7 @@ test_nlattr(const int fd) if (i) printf(", "); printf("{{nla_len=%u, nla_type=%#x /* UNIX_DIAG_??? */}, ", - nla->nla_len, UNIX_DIAG_SHUTDOWN + 1 + i); + nla->nla_len, UNIX_DIAG_FIRST_UNUSED + i); print_quoted_hex(&nla[i * 2 + 1], NLA_HDRLEN - 1); printf("}"); } @@ -286,7 +286,7 @@ test_nla_type(const int fd) ", %u, MSG_DONTWAIT, NULL, 0) = %s\n", fd, msg_len, nla->nla_len, msg_len, sprintrc(rc)); - nla->nla_type = NLA_F_NESTED | (UNIX_DIAG_SHUTDOWN + 1); + nla->nla_type = NLA_F_NESTED | (UNIX_DIAG_FIRST_UNUSED); rc = sendto(fd, msg, msg->nlh.nlmsg_len, MSG_DONTWAIT, NULL, 0); printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY" ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX" @@ -294,7 +294,7 @@ test_nla_type(const int fd) ", udiag_ino=0, udiag_cookie=[0, 0]}, {nla_len=%u" ", nla_type=NLA_F_NESTED|%#x /* UNIX_DIAG_??? */}}" ", %u, MSG_DONTWAIT, NULL, 0) = %s\n", - fd, msg->nlh.nlmsg_len, nla->nla_len, UNIX_DIAG_SHUTDOWN + 1, + fd, msg->nlh.nlmsg_len, nla->nla_len, UNIX_DIAG_FIRST_UNUSED, msg->nlh.nlmsg_len, sprintrc(rc)); } diff --git a/tests/nlattr_crypto_user_alg.c b/tests/nlattr_crypto_user_alg.c index f90c6208..2cb2b549 100644 --- a/tests/nlattr_crypto_user_alg.c +++ b/tests/nlattr_crypto_user_alg.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -85,7 +85,8 @@ main(void) TEST_NLATTR_OBJECT_EX(fd, nlh0, hdrlen, init_crypto_user_alg, print_crypto_user_alg, CRYPTOCFGA_REPORT_HASH, - pattern, rhash, print_quoted_memory, + pattern, rhash, sizeof(rhash), + print_quoted_memory, printf("{type=\"efgh\""); PRINT_FIELD_U(", ", rhash, blocksize); PRINT_FIELD_U(", ", rhash, digestsize); @@ -104,7 +105,8 @@ main(void) TEST_NLATTR_OBJECT_EX(fd, nlh0, hdrlen, init_crypto_user_alg, print_crypto_user_alg, CRYPTOCFGA_REPORT_BLKCIPHER, - pattern, rblkcipher, print_quoted_memory, + pattern, rblkcipher, sizeof(rblkcipher), + print_quoted_memory, printf("{type=\"abcd\", geniv=\"efgh\""); PRINT_FIELD_U(", ", rblkcipher, blocksize); PRINT_FIELD_U(", ", rblkcipher, min_keysize); @@ -124,7 +126,8 @@ main(void) TEST_NLATTR_OBJECT_EX(fd, nlh0, hdrlen, init_crypto_user_alg, print_crypto_user_alg, CRYPTOCFGA_REPORT_AEAD, - pattern, raead, print_quoted_memory, + pattern, raead, sizeof(raead), + print_quoted_memory, printf("{type=\"abcd\", geniv=\"efgh\""); PRINT_FIELD_U(", ", raead, blocksize); PRINT_FIELD_U(", ", raead, maxauthsize); @@ -140,7 +143,7 @@ main(void) TEST_NLATTR_OBJECT_EX(fd, nlh0, hdrlen, init_crypto_user_alg, print_crypto_user_alg, CRYPTOCFGA_REPORT_RNG, - pattern, rrng, print_quoted_memory, + pattern, rrng, sizeof(rrng), print_quoted_memory, printf("{type=\"abcd\""); PRINT_FIELD_U(", ", rrng, seedsize); printf("}")); @@ -156,7 +159,8 @@ main(void) TEST_NLATTR_OBJECT_EX(fd, nlh0, hdrlen, init_crypto_user_alg, print_crypto_user_alg, CRYPTOCFGA_REPORT_CIPHER, - pattern, rcipher, print_quoted_memory, + pattern, rcipher, sizeof(rcipher), + print_quoted_memory, printf("{type=\"abcd\""); PRINT_FIELD_U(", ", rcipher, blocksize); PRINT_FIELD_U(", ", rcipher, min_keysize); diff --git a/tests/nlattr_ifinfomsg.c b/tests/nlattr_ifinfomsg.c index a8660196..4e6df29d 100644 --- a/tests/nlattr_ifinfomsg.c +++ b/tests/nlattr_ifinfomsg.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -27,6 +27,8 @@ #endif #define IFLA_LINK_NETNSID 37 #define IFLA_EVENT 44 +#define IFLA_PROP_LIST 52 +#define IFLA_ALT_IFNAME 53 #ifndef IFLA_INFO_KIND # define IFLA_INFO_KIND 1 @@ -36,6 +38,8 @@ # define IFLA_VF_PORT 1 #endif +static const unsigned int hdrlen = sizeof(struct ifinfomsg); + static void init_ifinfomsg(struct nlmsghdr *const nlh, const unsigned int msg_len) { @@ -65,6 +69,27 @@ print_ifinfomsg(const unsigned int msg_len) msg_len); } +static void +init_prop_list_msg(struct nlmsghdr *const nlh, + const unsigned int msg_len) +{ + init_ifinfomsg(nlh, msg_len); + + struct nlattr *nla = NLMSG_ATTR(nlh, hdrlen); + SET_STRUCT(struct nlattr, nla, + .nla_len = msg_len - NLMSG_SPACE(hdrlen), + .nla_type = IFLA_PROP_LIST, + ); +} + +static void +print_prop_list_msg(const unsigned int msg_len) +{ + print_ifinfomsg(msg_len); + printf(", {{nla_len=%u, nla_type=IFLA_PROP_LIST}", + msg_len - NLMSG_SPACE(hdrlen)); +} + int main(void) { @@ -96,9 +121,8 @@ main(void) .tx_compressed = 0xefdadfab }; const int fd = create_nl_socket(NETLINK_ROUTE); - const unsigned int hdrlen = sizeof(struct ifinfomsg); void *nlh0 = midtail_alloc(NLMSG_SPACE(hdrlen), - NLA_HDRLEN + sizeof(st)); + 2 * NLA_HDRLEN + MAX(sizeof(st), 20)); static char pattern[4096]; fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1); @@ -118,40 +142,39 @@ main(void) IFLA_LINK_NETNSID, pattern, netnsid, printf("%d", netnsid)); - TEST_NLATTR_OBJECT(fd, nlh0, hdrlen, - init_ifinfomsg, print_ifinfomsg, - IFLA_STATS, pattern, st, - PRINT_FIELD_U("{", st, rx_packets); - PRINT_FIELD_U(", ", st, tx_packets); - PRINT_FIELD_U(", ", st, rx_bytes); - PRINT_FIELD_U(", ", st, tx_bytes); - PRINT_FIELD_U(", ", st, rx_errors); - PRINT_FIELD_U(", ", st, tx_errors); - PRINT_FIELD_U(", ", st, rx_dropped); - PRINT_FIELD_U(", ", st, tx_dropped); - PRINT_FIELD_U(", ", st, multicast); - PRINT_FIELD_U(", ", st, collisions); - PRINT_FIELD_U(", ", st, rx_length_errors); - PRINT_FIELD_U(", ", st, rx_over_errors); - PRINT_FIELD_U(", ", st, rx_crc_errors); - PRINT_FIELD_U(", ", st, rx_frame_errors); - PRINT_FIELD_U(", ", st, rx_fifo_errors); - PRINT_FIELD_U(", ", st, rx_missed_errors); - PRINT_FIELD_U(", ", st, tx_aborted_errors); - PRINT_FIELD_U(", ", st, tx_carrier_errors); - PRINT_FIELD_U(", ", st, tx_fifo_errors); - PRINT_FIELD_U(", ", st, tx_heartbeat_errors); - PRINT_FIELD_U(", ", st, tx_window_errors); - PRINT_FIELD_U(", ", st, rx_compressed); - PRINT_FIELD_U(", ", st, tx_compressed); + const unsigned int sizeof_stats = + offsetofend(struct rtnl_link_stats, tx_compressed); + TEST_NLATTR_OBJECT_MINSZ(fd, nlh0, hdrlen, + init_ifinfomsg, print_ifinfomsg, + IFLA_STATS, pattern, st, sizeof_stats, + PRINT_FIELD_U("{", st, rx_packets); + PRINT_FIELD_U(", ", st, tx_packets); + PRINT_FIELD_U(", ", st, rx_bytes); + PRINT_FIELD_U(", ", st, tx_bytes); + PRINT_FIELD_U(", ", st, rx_errors); + PRINT_FIELD_U(", ", st, tx_errors); + PRINT_FIELD_U(", ", st, rx_dropped); + PRINT_FIELD_U(", ", st, tx_dropped); + PRINT_FIELD_U(", ", st, multicast); + PRINT_FIELD_U(", ", st, collisions); + PRINT_FIELD_U(", ", st, rx_length_errors); + PRINT_FIELD_U(", ", st, rx_over_errors); + PRINT_FIELD_U(", ", st, rx_crc_errors); + PRINT_FIELD_U(", ", st, rx_frame_errors); + PRINT_FIELD_U(", ", st, rx_fifo_errors); + PRINT_FIELD_U(", ", st, rx_missed_errors); + PRINT_FIELD_U(", ", st, tx_aborted_errors); + PRINT_FIELD_U(", ", st, tx_carrier_errors); + PRINT_FIELD_U(", ", st, tx_fifo_errors); + PRINT_FIELD_U(", ", st, tx_heartbeat_errors); + PRINT_FIELD_U(", ", st, tx_window_errors); + PRINT_FIELD_U(", ", st, rx_compressed); + PRINT_FIELD_U(", ", st, tx_compressed); #ifdef HAVE_STRUCT_RTNL_LINK_STATS_RX_NOHANDLER - PRINT_FIELD_U(", ", st, rx_nohandler); + PRINT_FIELD_U(", ", st, rx_nohandler); #endif printf("}")); -#ifdef HAVE_STRUCT_RTNL_LINK_STATS_RX_NOHANDLER - const unsigned int sizeof_stats = - offsetofend(struct rtnl_link_stats, tx_compressed); TEST_NLATTR(fd, nlh0, hdrlen, init_ifinfomsg, print_ifinfomsg, IFLA_STATS, sizeof_stats, &st, sizeof_stats, @@ -179,7 +202,6 @@ main(void) PRINT_FIELD_U(", ", st, rx_compressed); PRINT_FIELD_U(", ", st, tx_compressed); printf("}")); -#endif /* HAVE_STRUCT_RTNL_LINK_STATS_RX_NOHANDLER */ static const struct rtnl_link_ifmap map = { .mem_start = 0xadcbefedefbcdedb, @@ -341,6 +363,33 @@ main(void) printf("%s", ifla_events[i].str)); } + /* IFLA_PROP_LIST */ + struct { + char p1[20]; + } buf; + fill_memory(&buf, sizeof(buf)); + TEST_NESTED_NLATTR_OBJECT_EX_(fd, nlh0, hdrlen, + init_prop_list_msg, print_prop_list_msg, + IFLA_ALT_IFNAME, "IFLA_ALT_IFNAME", + pattern, buf, print_quoted_stringn, 1, + print_quoted_memory(&buf, sizeof(buf)); + printf("...")); + + /* IFLA_ALT_IFNAME */ + static const char alt_ifname[] = "OH HAI THAR\r\n\t\377\0\v\x7e"; + TEST_NLATTR(fd, nlh0, hdrlen, + init_ifinfomsg, print_ifinfomsg, + IFLA_ALT_IFNAME, + sizeof(alt_ifname), alt_ifname, sizeof(alt_ifname), + print_quoted_memory(alt_ifname, sizeof(alt_ifname) - 1)); + + TEST_NLATTR(fd, nlh0, hdrlen, + init_ifinfomsg, print_ifinfomsg, + IFLA_ALT_IFNAME, + sizeof(alt_ifname) - 1, alt_ifname, sizeof(alt_ifname) - 1, + print_quoted_memory(alt_ifname, sizeof(alt_ifname) - 1); + printf("...")); + puts("+++ exited with 0 +++"); return 0; } diff --git a/tests/nlattr_ifla_linkinfo.c b/tests/nlattr_ifla_linkinfo.c index 080e7371..9c648d05 100644 --- a/tests/nlattr_ifla_linkinfo.c +++ b/tests/nlattr_ifla_linkinfo.c @@ -1,7 +1,7 @@ /* * IFLA_LINKINFO netlink attribute decoding check. * - * Copyright (c) 2018-2019 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -347,7 +347,6 @@ main(void) /* bridge attrs */ static const struct val_name und_br_attrs[] = { { 0, "IFLA_BR_UNSPEC" }, - { 20, "IFLA_BR_GROUP_ADDR" }, { 21, "IFLA_BR_FDB_FLUSH" }, { 40, "IFLA_BR_PAD" }, { 47, "0x2f /* IFLA_BR_??? */" }, @@ -367,6 +366,21 @@ main(void) "\\x63\\x64\\x65\\x66\"" }); } + static const struct val_name hwa_br_attrs[] = { + { 20, "IFLA_BR_GROUP_ADDR" }, + }; + + for (size_t k = 0; k < ARRAY_SIZE(hwa_br_attrs); k++) { + TEST_NESTED_LINKINFO(fd, nlh0, 2, "IFLA_INFO_DATA", "bridge", + hwa_br_attrs[k].val, hwa_br_attrs[k].name, + unknown_msg, pattern, + { 2, "ab:ac" }, + { 4, "ab:ac:db:cd" }, + { 6, "ab:ac:db:cd:61:62" }, + { 8, "ab:ac:db:cd:61:62:63:64" }, + { 10, "ab:ac:db:cd:61:62:63:64:65:66" }); + } + static const struct val_name u64_br_attrs[] = { { 16, "IFLA_BR_HELLO_TIMER" }, { 17, "IFLA_BR_TCN_TIMER" }, diff --git a/tests/nlattr_ifla_port.c b/tests/nlattr_ifla_port.c index df2a2ef6..49003614 100644 --- a/tests/nlattr_ifla_port.c +++ b/tests/nlattr_ifla_port.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -57,6 +57,21 @@ main(void) printf(", vsi_type_id=\"\\x61\\x62\\x63\""); PRINT_FIELD_U(", ", vsi, vsi_type_version); printf("}")); + + static const struct ifla_port_vsi vsi2 = { + .vsi_mgr_id = 0xab, + .vsi_type_id = { 10, 0, 255 }, + .vsi_type_version = 0xef, + .pad = { 0, 1, 2 }, + }; + TEST_NESTED_NLATTR_OBJECT(fd, nlh0, hdrlen, + init_ifinfomsg, print_ifinfomsg, + IFLA_PORT_VSI_TYPE, pattern, vsi2, + PRINT_FIELD_U("{", vsi2, vsi_mgr_id); + printf(", vsi_type_id=\"\\x0a\\x00\\xff\""); + PRINT_FIELD_U(", ", vsi2, vsi_type_version); + printf(", pad=\"\\x00\\x01\\x02\""); + printf("}")); #endif puts("+++ exited with 0 +++"); diff --git a/tests/nlattr_ifla_xdp-y.c b/tests/nlattr_ifla_xdp-y.c new file mode 100644 index 00000000..791c2be9 --- /dev/null +++ b/tests/nlattr_ifla_xdp-y.c @@ -0,0 +1,3 @@ +#define PRINT_SOCK 1 +#define FD9_PATH "" +#include "nlattr_ifla_xdp.c" diff --git a/tests/nlattr_ifla_xdp-y.gen.test b/tests/nlattr_ifla_xdp-y.gen.test new file mode 100755 index 00000000..5826766f --- /dev/null +++ b/tests/nlattr_ifla_xdp-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (nlattr_ifla_xdp-y +netlink_sock_diag.test -y; exec 9 - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -17,44 +17,28 @@ #endif #include +#define XLAT_MACROS_ONLY +# include "xlat/rtnl_ifla_xdp_attrs.h" +#undef XLAT_MACROS_ONLY + #if !HAVE_DECL_IFLA_XDP enum { IFLA_XDP = 43 }; #endif -#ifndef IFLA_XDP_FD -# define IFLA_XDP_FD 1 -#endif - -#ifndef IFLA_XDP_ATTACHED -# define IFLA_XDP_ATTACHED 2 -#endif - -#ifndef IFLA_XDP_PROG_ID -# define IFLA_XDP_PROG_ID 4 -#endif - -#ifndef IFLA_XDP_DRV_PROG_ID -# define IFLA_XDP_DRV_PROG_ID 5 -#endif -#ifndef IFLA_XDP_SKB_PROG_ID -# define IFLA_XDP_SKB_PROG_ID 6 +#if !HAVE_DECL_XDP_ATTACHED_NONE +enum { XDP_ATTACHED_NONE = 0 }; #endif - -#ifndef IFLA_XDP_HW_PROG_ID -# define IFLA_XDP_HW_PROG_ID 7 -#endif - -#ifndef XDP_ATTACHED_NONE -# define XDP_ATTACHED_NONE 0 -#endif - -#ifndef XDP_ATTACHED_MULTI -# define XDP_ATTACHED_MULTI 4 +#if !HAVE_DECL_XDP_ATTACHED_MULTI +enum { XDP_ATTACHED_MULTI = 4 }; #endif #define IFLA_ATTR IFLA_XDP #include "nlattr_ifla.h" +#ifndef FD9_PATH +# define FD9_PATH "" +#endif + int main(void) { @@ -118,6 +102,18 @@ main(void) printf("%u", num)); } + /* IFLA_XDP_EXPECTED_FD */ + TEST_NESTED_NLATTR_OBJECT_EX(fd, nlh0, hdrlen, + init_ifinfomsg, print_ifinfomsg, + IFLA_XDP_EXPECTED_FD, pattern, num, 1, + printf("%d", num)); + + int exp_fd = 9; + TEST_NESTED_NLATTR_OBJECT_EX(fd, nlh0, hdrlen, + init_ifinfomsg, print_ifinfomsg, + IFLA_XDP_EXPECTED_FD, pattern, exp_fd, 1, + printf("9" FD9_PATH)); + puts("+++ exited with 0 +++"); return 0; } diff --git a/tests/nlattr_inet_diag_req_compat.c b/tests/nlattr_inet_diag_req_compat.c index 8cce46cd..9956b961 100644 --- a/tests/nlattr_inet_diag_req_compat.c +++ b/tests/nlattr_inet_diag_req_compat.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -73,10 +73,10 @@ main(void) char nla_type_str[256]; sprintf(nla_type_str, "%#x /* INET_DIAG_REQ_??? */", - INET_DIAG_REQ_BYTECODE + 1); + INET_DIAG_REQ_PROTOCOL + 1); TEST_NLATTR_(fd, nlh0, hdrlen, init_inet_diag_req, print_inet_diag_req, - INET_DIAG_REQ_BYTECODE + 1, nla_type_str, + INET_DIAG_REQ_PROTOCOL + 1, nla_type_str, 4, pattern, 4, print_quoted_hex(pattern, 4)); diff --git a/tests/nlattr_mdba_mdb_entry.c b/tests/nlattr_mdba_mdb_entry.c index 7ac89ff0..e7b0c498 100644 --- a/tests/nlattr_mdba_mdb_entry.c +++ b/tests/nlattr_mdba_mdb_entry.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -122,9 +122,13 @@ main(void) printf(", state=MDB_TEMPORARY"); # ifdef HAVE_STRUCT_BR_MDB_ENTRY_FLAGS printf(", flags=MDB_FLAGS_OFFLOAD"); +# else + printf(", flags=0"); # endif # ifdef HAVE_STRUCT_BR_MDB_ENTRY_VID PRINT_FIELD_U(", ", entry, vid); +# else + printf(", vid=0"); # endif printf(", addr={u="); print_quoted_hex(&entry.addr.u, @@ -145,9 +149,13 @@ main(void) printf(", state=MDB_TEMPORARY"); # ifdef HAVE_STRUCT_BR_MDB_ENTRY_FLAGS printf(", flags=MDB_FLAGS_OFFLOAD"); +# else + printf(", flags=0"); # endif # ifdef HAVE_STRUCT_BR_MDB_ENTRY_VID PRINT_FIELD_U(", ", entry, vid); +# else + printf(", vid=0"); # endif printf(", addr={u="); print_quoted_hex(&entry.addr.u, sizeof(entry.addr.u)); diff --git a/tests/nlattr_mdba_router_port.c b/tests/nlattr_mdba_router_port.c index 7ec9992a..f954ce41 100644 --- a/tests/nlattr_mdba_router_port.c +++ b/tests/nlattr_mdba_router_port.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,6 +12,8 @@ # include # include "test_nlattr.h" +/* struct br_mdb_entry needs a definition of struct in6_addr. */ +# include # include # include diff --git a/tests/nlattr_ndmsg.c b/tests/nlattr_ndmsg.c index 2dd82ce4..8404c7a0 100644 --- a/tests/nlattr_ndmsg.c +++ b/tests/nlattr_ndmsg.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -99,6 +99,17 @@ main(void) NDA_PORT, pattern, port, printf("htons(%u)", ntohs(port))); + static const uint8_t mac[6] = "\xf8\xc2\x49\x13\x57\xbd"; + TEST_NLATTR(fd, nlh0, hdrlen, init_ndmsg, print_ndmsg, + NDA_LLADDR, sizeof(mac) - 1, mac, sizeof(mac) - 1, + for (unsigned int i = 0; i < sizeof(mac) - 1; ++i) + printf("%s%02x", i ? ":" : "", mac[i])); + + TEST_NLATTR(fd, nlh0, hdrlen, init_ndmsg, print_ndmsg, + NDA_LLADDR, sizeof(mac), mac, sizeof(mac), + for (unsigned int i = 0; i < sizeof(mac); ++i) + printf("%s%02x", i ? ":" : "", mac[i])); + puts("+++ exited with 0 +++"); return 0; } diff --git a/tests/nlattr_packet_diag_msg.gen.test b/tests/nlattr_packet_diag_msg.gen.test index 7177ea2a..f069775f 100755 --- a/tests/nlattr_packet_diag_msg.gen.test +++ b/tests/nlattr_packet_diag_msg.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (nlattr_packet_diag_msg +netlink_sock_diag-v.sh ); do not edit. -set -- -. "${srcdir=.}/netlink_sock_diag-v.sh" +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (nlattr_packet_diag_msg +netlink_sock_diag.test -v); do not edit. +set -- -v +. "${srcdir=.}/netlink_sock_diag.test" diff --git a/tests/nlattr_tc_stats.c b/tests/nlattr_tc_stats.c index c0ebaf89..3fb4b743 100644 --- a/tests/nlattr_tc_stats.c +++ b/tests/nlattr_tc_stats.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -16,6 +16,10 @@ # include # include +# if !HAVE_DECL_TCA_STATS_PKT64 +enum { TCA_STATS_PKT64 = 8 }; +# endif + const unsigned int hdrlen = sizeof(struct tcmsg); static void @@ -120,6 +124,12 @@ main(void) printf("}")); # endif + static const uint64_t pkt64 = 0xdeadc0defacefeedULL; + TEST_NESTED_NLATTR_OBJECT(fd, nlh0, hdrlen, + init_tcmsg, print_tcmsg, + TCA_STATS_PKT64, pattern, pkt64, + printf("16045693111314087661")); + puts("+++ exited with 0 +++"); return 0; } diff --git a/tests/nlattr_tcamsg.c b/tests/nlattr_tcamsg.c index b8bd7e35..e25e32a6 100644 --- a/tests/nlattr_tcamsg.c +++ b/tests/nlattr_tcamsg.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,8 +10,26 @@ #include #include "test_nlattr.h" +#include #include +#if !HAVE_DECL_TCA_ACT_PAD +enum { TCA_ACT_PAD = 5 }; +#endif +#if !HAVE_DECL_TCA_ACT_COOKIE +enum { TCA_ACT_COOKIE = 6 }; +#endif +#if !HAVE_DECL_TCA_ACT_FLAGS +enum { TCA_ACT_FLAGS = 7 }; +#endif +#if !HAVE_DECL_TCA_ACT_HW_STATS +enum { TCA_ACT_HW_STATS = 8 }; +#endif +#if !HAVE_DECL_TCA_ACT_USED_HW_STATS +enum { TCA_ACT_USED_HW_STATS = 9 }; +#endif + + static void init_tcamsg(struct nlmsghdr *const nlh, const unsigned int msg_len) { @@ -47,14 +65,72 @@ main(void) static char pattern[4096]; fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1); - const unsigned int nla_type = 0xffff & NLA_TYPE_MASK; - char nla_type_str[256]; - sprintf(nla_type_str, "%#x /* TCA_ACT_??? */", nla_type); - TEST_NLATTR_(fd, nlh0, hdrlen, - init_tcamsg, print_tcamsg, - nla_type, nla_type_str, - 4, pattern, 4, - print_quoted_hex(pattern, 4)); + /* Invalid */ + static const unsigned int nla_invalid[] = { 10, 0xffff & NLA_TYPE_MASK }; + for (size_t i = 0; i < ARRAY_SIZE(nla_invalid); i++) { + char nla_type_str[256]; + sprintf(nla_type_str, "%#x /* TCA_ACT_??? */", nla_invalid[i]); + TEST_NLATTR_(fd, nlh0, hdrlen, + init_tcamsg, print_tcamsg, + nla_invalid[i], nla_type_str, + 21, pattern, 21, + print_quoted_hex(pattern, 21)); + } + + /* Default decoder */ + static const struct { + unsigned int val; + const char *str; + } nla_default[] = { + { ARG_STR(TCA_ACT_UNSPEC) }, + { ARG_STR(TCA_ACT_OPTIONS) }, + { ARG_STR(TCA_ACT_PAD) }, + { ARG_STR(TCA_ACT_COOKIE) }, + }; + for (size_t i = 0; i < ARRAY_SIZE(nla_default); i++) { + TEST_NLATTR_(fd, nlh0, hdrlen, + init_tcamsg, print_tcamsg, + nla_default[i].val, nla_default[i].str, + 17, pattern, 17, + print_quoted_hex(pattern, 17)); + } + + /* TCA_ACT_KIND */ + TEST_NLATTR(fd, nlh0, hdrlen, init_tcamsg, print_tcamsg, + TCA_ACT_KIND, 21, pattern, 21, + print_quoted_cstring(pattern, 22)); + + static const char kind[] = "Hello\tthere"; + TEST_NLATTR(fd, nlh0, hdrlen, init_tcamsg, print_tcamsg, + TCA_ACT_KIND, sizeof(kind), kind, sizeof(kind), + print_quoted_string(kind)); + + /* TCA_ACT_INDEX */ + static uint32_t idx = 0xdeadc0de; + TEST_NLATTR(fd, nlh0, hdrlen, init_tcamsg, print_tcamsg, + TCA_ACT_INDEX, sizeof(idx), &idx, sizeof(idx), + printf("%u", idx)); + + /* TCA_ACT_FLAGS */ + static uint32_t flags = 0xfacebeef; + TEST_NLATTR(fd, nlh0, hdrlen, init_tcamsg, print_tcamsg, + TCA_ACT_FLAGS, sizeof(flags), &flags, sizeof(flags), + printf("TCA_ACT_FLAGS_NO_PERCPU_STATS|0xfacebeee")); + + /* TCA_ACT_HW_STATS, TCA_ACT_USED_HW_STATS */ + static const struct strval32 nla_hw_st[] = { + { ARG_STR(TCA_ACT_HW_STATS) }, + { ARG_STR(TCA_ACT_USED_HW_STATS) }, + }; + + static uint32_t hw_st = 0xfacebeef; + for (size_t i = 0; i < ARRAY_SIZE(nla_hw_st); i++) { + TEST_NLATTR_(fd, nlh0, hdrlen, init_tcamsg, print_tcamsg, + nla_hw_st[i].val, nla_hw_st[i].str, + sizeof(hw_st), &hw_st, sizeof(hw_st), + printf("TCA_ACT_HW_STATS_IMMEDIATE|" + "TCA_ACT_HW_STATS_DELAYED|0xfacebeec")); + } puts("+++ exited with 0 +++"); return 0; diff --git a/tests/nsyscalls-d.test b/tests/nsyscalls-d.test index a6495b6b..8892de87 100755 --- a/tests/nsyscalls-d.test +++ b/tests/nsyscalls-d.test @@ -1,8 +1,8 @@ #!/bin/sh # -# Check decoding of out-of-range syscalls along with debug ouput +# Check decoding of out-of-range syscalls along with debug output # -# Copyright (c) 2017-2018 The strace developers. +# Copyright (c) 2017-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later diff --git a/tests/nsyscalls.c b/tests/nsyscalls.c index 529f50ee..1eb90071 100644 --- a/tests/nsyscalls.c +++ b/tests/nsyscalls.c @@ -2,7 +2,7 @@ * Check decoding of out-of-range syscalls. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -14,7 +14,7 @@ #include #include #include -#include +#include "scno.h" #include "sysent_shorthand_defs.h" @@ -28,13 +28,6 @@ static const struct_sysent syscallent[] = { # define DEBUG_PRINT 0 #endif -#if defined __X32_SYSCALL_BIT && defined __NR_read \ - && (__X32_SYSCALL_BIT & __NR_read) != 0 -# define SYSCALL_BIT __X32_SYSCALL_BIT -#else -# define SYSCALL_BIT 0 -#endif - #if DEBUG_PRINT static const char *strace_name; static FILE *debug_out; diff --git a/tests/old_mmap.c b/tests/old_mmap.c index 92ab3efb..f095bc43 100644 --- a/tests/old_mmap.c +++ b/tests/old_mmap.c @@ -2,14 +2,14 @@ * Check decoding of "old mmap" edition of mmap syscall. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" /* * On s390x and m68k, this is the mmap syscall used by glibc, so, @@ -22,6 +22,7 @@ || defined __s390__ || defined __s390x__) \ && (defined PATH_TRACING || !(defined __s390x__ || defined __m68k__)) +# include # include # include # include @@ -35,8 +36,9 @@ int main(void) { long rc = syscall(__NR_mmap, 0); + const bool implemented = rc != -1 || errno != ENOSYS; # ifndef PATH_TRACING - printf("mmap(NULL) = %ld %s (%m)\n", rc, errno2name()); + printf("mmap(NULL) = %s\n", sprintrc(rc)); # endif const unsigned long args1_c[6] = { @@ -60,42 +62,51 @@ main(void) rc = syscall(__NR_mmap, args); # if XLAT_RAW - printf("mmap(%#lx, %lu, %#x, %#x, %d, %#lx) = %ld %s (%m)\n", + printf("mmap(%#lx, %lu, %#x, %#x, %d, %#lx) = %s\n", args1_c[0], args1_c[1], PROT_READ|PROT_EXEC, MAP_FILE | MAP_FIXED, - (int) args1_c[4], args1_c[5], rc, errno2name()); + (int) args1_c[4], args1_c[5], sprintrc(rc)); # elif XLAT_VERBOSE printf("mmap(%#lx, %lu, %#x /* PROT_READ|PROT_EXEC */" - ", %#x /* MAP_FILE|MAP_FIXED */, %d, %#lx) = %ld %s (%m)\n", + ", %#x /* MAP_FILE|MAP_FIXED */, %d, %#lx) = %s\n", args1_c[0], args1_c[1], PROT_READ|PROT_EXEC, MAP_FILE | MAP_FIXED, - (int) args1_c[4], args1_c[5], rc, errno2name()); + (int) args1_c[4], args1_c[5], sprintrc(rc)); # else printf("mmap(%#lx, %lu, PROT_READ|PROT_EXEC, MAP_FILE|MAP_FIXED" - ", %d, %#lx) = %ld %s (%m)\n", + ", %d, %#lx) = %s\n", args1_c[0], args1_c[1], (int) args1_c[4], args1_c[5], - rc, errno2name()); + sprintrc(rc)); # endif memcpy(args, args2_c, sizeof(args2_c)); rc = syscall(__NR_mmap, args); # ifndef PATH_TRACING + const char *errstr; + if (implemented) { + char *str; + if (asprintf(&str, "%#lx", rc) < 0) + perror_msg_and_fail("asprintf"); + errstr = str; + } else { + errstr = sprintrc(rc); + } # if XLAT_RAW - printf("mmap(NULL, %lu, %#x, %#x, %d, %#lx) = %#lx\n", + printf("mmap(NULL, %lu, %#x, %#x, %d, %#lx) = %s\n", args2_c[1], PROT_READ|PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, - (int) args2_c[4], args2_c[5], rc); + (int) args2_c[4], args2_c[5], errstr); # elif XLAT_VERBOSE printf("mmap(NULL, %lu, %#x /* PROT_READ|PROT_WRITE */" - ", %#x /* MAP_PRIVATE|MAP_ANONYMOUS */, %d, %#lx) = %#lx\n", + ", %#x /* MAP_PRIVATE|MAP_ANONYMOUS */, %d, %#lx) = %s\n", args2_c[1], PROT_READ|PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, - (int) args2_c[4], args2_c[5], rc); + (int) args2_c[4], args2_c[5], errstr); # else printf("mmap(NULL, %lu, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS" - ", %d, %#lx) = %#lx\n", - args2_c[1], (int) args2_c[4], args2_c[5], rc); + ", %d, %#lx) = %s\n", + args2_c[1], (int) args2_c[4], args2_c[5], errstr); # endif # endif void *addr = (void *) rc; - if (mprotect(addr, page_size, PROT_NONE)) + if (implemented && mprotect(addr, page_size, PROT_NONE)) perror_msg_and_fail("mprotect(%p, %lu, PROT_NONE)", addr, page_size); diff --git a/tests/oldfstat.c b/tests/oldfstat.c index c2624777..12f0645b 100644 --- a/tests/oldfstat.c +++ b/tests/oldfstat.c @@ -3,14 +3,14 @@ * * Copyright (c) 2015-2016 Dmitry V. Levin * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_oldfstat && HAVE_STRUCT___OLD_KERNEL_STAT diff --git a/tests/oldlstat.c b/tests/oldlstat.c index 0444b17f..d6e8f4e3 100644 --- a/tests/oldlstat.c +++ b/tests/oldlstat.c @@ -3,14 +3,14 @@ * * Copyright (c) 2015-2016 Dmitry V. Levin * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_oldlstat && HAVE_STRUCT___OLD_KERNEL_STAT diff --git a/tests/oldselect-efault.c b/tests/oldselect-efault.c index 4e927521..5c555382 100644 --- a/tests/oldselect-efault.c +++ b/tests/oldselect-efault.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_select && defined __NR__newselect \ && __NR_select != __NR__newselect \ diff --git a/tests/oldselect.c b/tests/oldselect.c index 0af35541..b6f83081 100644 --- a/tests/oldselect.c +++ b/tests/oldselect.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_select && defined __NR__newselect \ && __NR_select != __NR__newselect \ diff --git a/tests/oldstat.c b/tests/oldstat.c index 03b40335..022dd33c 100644 --- a/tests/oldstat.c +++ b/tests/oldstat.c @@ -3,14 +3,14 @@ * * Copyright (c) 2015-2016 Dmitry V. Levin * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_oldstat && HAVE_STRUCT___OLD_KERNEL_STAT diff --git a/tests/open.c b/tests/open.c index 43a3ae68..05e1fb0f 100644 --- a/tests/open.c +++ b/tests/open.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_open diff --git a/tests/open_tree-P.c b/tests/open_tree-P.c new file mode 100644 index 00000000..0097d763 --- /dev/null +++ b/tests/open_tree-P.c @@ -0,0 +1,2 @@ +#define PATH_TRACING +#include "open_tree.c" diff --git a/tests/open_tree-P.gen.test b/tests/open_tree-P.gen.test new file mode 100755 index 00000000..73d5cdb2 --- /dev/null +++ b/tests/open_tree-P.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (open_tree-P -a30 --decode-fds -P /dev/full -e trace=open_tree); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a30 --decode-fds -P /dev/full -e trace=open_tree diff --git a/tests/open_tree.c b/tests/open_tree.c new file mode 100644 index 00000000..bdce09ea --- /dev/null +++ b/tests/open_tree.c @@ -0,0 +1,110 @@ +/* + * Check decoding of open_tree syscall. + * + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_open_tree + +# include +# include +# include +# include +# include + +static const char *errstr; + +static long +k_open_tree(const unsigned int dfd, + const void *fname, + const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | dfd; + const kernel_ulong_t arg2 = (uintptr_t) fname; + const kernel_ulong_t arg3 = fill | flags; + const long rc = syscall(__NR_open_tree, arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + skip_if_unavailable("/proc/self/fd/"); + + static const char path_full[] = "/dev/full"; + const char *const path = tail_memdup(path_full, sizeof(path_full)); + char *const fname = tail_alloc(PATH_MAX); + const void *const efault = fname + PATH_MAX; + const char *const empty = efault - 1; + fill_memory_ex(fname, PATH_MAX, '0', 10); + + int dfd = open(path, O_WRONLY); + if (dfd < 0) + perror_msg_and_fail("open: %s", path); + + k_open_tree(-1, 0, 1); +# ifndef PATH_TRACING + printf("open_tree(-1, NULL, %s) = %s\n", "OPEN_TREE_CLONE", errstr); +# endif + + k_open_tree(-100, fname, 0); +# ifndef PATH_TRACING + printf("open_tree(%s, \"%.*s\"..., 0) = %s\n", + "AT_FDCWD", (int) PATH_MAX - 1, fname, errstr); +# endif + + fname[PATH_MAX - 1] = '\0'; + k_open_tree(dfd, fname, 0x8000); + printf("open_tree(%d<%s>, \"%s\", %s) = %s\n", + dfd, path, fname, "AT_RECURSIVE", errstr); + +# ifdef O_CLOEXEC + k_open_tree(-1, efault, O_CLOEXEC | 1); +# ifndef PATH_TRACING + printf("open_tree(-1, %p, %s) = %s\n", + efault, "OPEN_TREE_CLONE|OPEN_TREE_CLOEXEC", errstr); +# endif + + k_open_tree(-1, empty, -1); +# ifndef PATH_TRACING + printf("open_tree(-1, \"\", %s|%#x) = %s\n", + "OPEN_TREE_CLONE|OPEN_TREE_CLOEXEC" + "|AT_SYMLINK_NOFOLLOW|AT_REMOVEDIR|AT_SYMLINK_FOLLOW" + "|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|AT_RECURSIVE", + -1U & ~0x9f01 & ~O_CLOEXEC, + errstr); +# endif +# endif /* O_CLOEXEC */ + + if (k_open_tree(-1, path, 0) < 0) + printf("open_tree(-1, \"%s\", 0) = %s\n", + path, errstr); + else + printf("open_tree(-1, \"%s\", 0) = %s<%s>\n", + path, errstr, path); + + if (k_open_tree(dfd, empty, 0x1000) < 0) + printf("open_tree(%d<%s>, \"\", %s) = %s\n", + dfd, path, "AT_EMPTY_PATH", errstr); + else + printf("open_tree(%d<%s>, \"\", %s) = %s<%s>\n", + dfd, path, "AT_EMPTY_PATH", errstr, path); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_open_tree") + +#endif diff --git a/tests/open_tree.gen.test b/tests/open_tree.gen.test new file mode 100755 index 00000000..535010bb --- /dev/null +++ b/tests/open_tree.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (open_tree -a30 -y); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a30 -y diff --git a/tests/openat.c b/tests/openat.c index d4a74178..8d1bca0b 100644 --- a/tests/openat.c +++ b/tests/openat.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2016 Katerina Koukiou - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_openat diff --git a/tests/openat2-Xabbrev.c b/tests/openat2-Xabbrev.c new file mode 100644 index 00000000..ba18bde0 --- /dev/null +++ b/tests/openat2-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "openat2.c" diff --git a/tests/openat2-Xabbrev.gen.test b/tests/openat2-Xabbrev.gen.test new file mode 100755 index 00000000..371daa37 --- /dev/null +++ b/tests/openat2-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (openat2-Xabbrev --trace=openat2 -a35 -Xabbrev); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff --trace=openat2 -a35 -Xabbrev diff --git a/tests/openat2-Xraw.c b/tests/openat2-Xraw.c new file mode 100644 index 00000000..7a50005a --- /dev/null +++ b/tests/openat2-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "openat2.c" diff --git a/tests/openat2-Xraw.gen.test b/tests/openat2-Xraw.gen.test new file mode 100755 index 00000000..bf5084e4 --- /dev/null +++ b/tests/openat2-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (openat2-Xraw --trace=openat2 -a32 -Xraw); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff --trace=openat2 -a32 -Xraw diff --git a/tests/openat2-Xverbose.c b/tests/openat2-Xverbose.c new file mode 100644 index 00000000..a69ad161 --- /dev/null +++ b/tests/openat2-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "openat2.c" diff --git a/tests/openat2-Xverbose.gen.test b/tests/openat2-Xverbose.gen.test new file mode 100755 index 00000000..946996b1 --- /dev/null +++ b/tests/openat2-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (openat2-Xverbose --trace=openat2 -a35 -Xverbose); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff --trace=openat2 -a35 -Xverbose diff --git a/tests/openat2-v-y-Xabbrev.c b/tests/openat2-v-y-Xabbrev.c new file mode 100644 index 00000000..daceedd8 --- /dev/null +++ b/tests/openat2-v-y-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_ABBREV 1 +#include "openat2-v-y.c" diff --git a/tests/openat2-v-y-Xabbrev.gen.test b/tests/openat2-v-y-Xabbrev.gen.test new file mode 100755 index 00000000..665be81e --- /dev/null +++ b/tests/openat2-v-y-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (openat2-v-y-Xabbrev --trace=openat2 -a35 -v -y -Xabbrev " +#include "openat2-v.c" diff --git a/tests/openat2-v-y.gen.test b/tests/openat2-v-y.gen.test new file mode 100755 index 00000000..9e4a3940 --- /dev/null +++ b/tests/openat2-v-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (openat2-v-y --trace=openat2 -a36 -v -y " +#include "openat2.c" diff --git a/tests/openat2-y.gen.test b/tests/openat2-y.gen.test new file mode 100755 index 00000000..5dad223c --- /dev/null +++ b/tests/openat2-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (openat2-y --trace=openat2 -a36 -y +# include +# include +# include +# include +# include +# include + +# ifdef HAVE_LINUX_OPENAT2 +# include +# endif + +# ifndef HAVE_LINUX_OPENAT2 +struct open_how { + uint64_t flags; + uint64_t mode; + uint64_t resolve; +}; +# endif + +# ifndef AT_FDCWD +# define AT_FDCWD -100 +# endif +# ifndef RESOLVE_NO_XDEV +# define RESOLVE_NO_XDEV 0x01 +# endif +# ifndef RESOLVE_IN_ROOT +# define RESOLVE_IN_ROOT 0x10 +# endif + +# ifndef O_TMPFILE +# if defined __hppa__ +# define __O_TMPFILE 040000000 +# elif defined __alpha__ +# define __O_TMPFILE 0100000000 +# elif defined __sparc__ +# define __O_TMPFILE 0200000000 +# else +# define __O_TMPFILE 020000000 +# endif +# endif + +# ifndef VERBOSE +# define VERBOSE 0 +# endif +# ifndef FD0_PATH +# define FD0_PATH "" +# endif + +static const char sample[] = "openat2.sample"; + +int +main(void) +{ + long rc; + const char *rcstr; + struct open_how *how = tail_alloc(sizeof(*how)); + struct open_how *how_big = tail_alloc(sizeof(*how_big) + 8); + + rc = syscall(__NR_openat2, 0, NULL, NULL, + (kernel_ulong_t) 0xdeadc0debadc0dedULL); + printf("openat2(0" FD0_PATH ", NULL, NULL, %llu) = %s\n", + (unsigned long long) (kernel_ulong_t) 0xdeadc0debadc0dedULL, + sprintrc(rc)); + + rc = syscall(__NR_openat2, -100, "", how + 1, sizeof(*how)); + printf("openat2(%s, \"\", %p, %zu) = %s\n", + XLAT_KNOWN(-100, "AT_FDCWD"), how + 1, sizeof(*how), + sprintrc(rc)); + + rc = syscall(__NR_openat2, -1, sample, how, 11); + printf("openat2(-1, \"%s\", %p, 11) = %s\n", sample, how, sprintrc(rc)); + + static struct strval64 flags[] = { + { ARG_STR(O_RDONLY|O_EXCL) }, + { ARG_STR(O_WRONLY|O_CREAT) }, + { ARG_STR(O_RDWR|O_LARGEFILE) }, +# ifdef O_TMPFILE + { ARG_STR(O_ACCMODE|O_TMPFILE) }, +# else + { ARG_STR(O_ACCMODE|__O_TMPFILE) }, +# endif + { ARG_ULL_STR(O_RDONLY|0xdeadface80000000) }, + }; + static uint64_t modes[] = { 0, 0777, 0xbadc0dedfacebeefULL }; + static struct strval64 resolve[] = { + { 0, NULL }, + { ARG_STR(RESOLVE_NO_XDEV) }, + { ARG_ULL_STR(RESOLVE_NO_XDEV|RESOLVE_IN_ROOT|0xfeedfacedcaffee0) }, + { 0xdec0dedbeefface0, NULL }, + }; + const size_t iters = MAX(MAX(ARRAY_SIZE(flags), ARRAY_SIZE(modes)), + ARRAY_SIZE(resolve)); + + + for (size_t i = 0; i < iters * 4; i++) { + how->flags = flags[i % ARRAY_SIZE(flags)].val; + how->mode = modes[i % ARRAY_SIZE(modes)]; + how->resolve = resolve[i % ARRAY_SIZE(resolve)].val; + + fill_memory(how_big + 1, 8); + memcpy(how_big, how, sizeof(*how)); + + for (size_t j = 0; j < 4; j++) { + rc = syscall(__NR_openat2, -1, sample, + j > 1 ? how_big : how, + j ? sizeof(*how) + 8 : sizeof(*how)); + rcstr = sprintrc(rc); + printf("openat2(-1, \"%s\", {flags=%s", + sample, + sprintxlat(flags[i % ARRAY_SIZE(flags)].str, + flags[i % ARRAY_SIZE(flags)].val, + NULL)); + + if (how->mode || (i % ARRAY_SIZE(flags) == 1) + || (i % ARRAY_SIZE(flags) == 3)) { + printf(", mode=%#03" PRIo64, + modes[i % ARRAY_SIZE(modes)]); + } + + printf(", resolve=%s", + sprintxlat(resolve[i % ARRAY_SIZE(resolve)].str, + resolve[i % ARRAY_SIZE(resolve)].val, + resolve[i % ARRAY_SIZE(resolve)].val + ? "RESOLVE_???" : NULL)); + if (j == 1) + printf(", ???"); + if (j == 2) { + printf(", /* bytes %zu..%zu */ \"\\x80\\x81" + "\\x82\\x83\\x84\\x85\\x86\\x87\"", + sizeof(*how), sizeof(*how) + 7); + } + printf("}, %zu) = %s\n", + j ? sizeof(*how) + 8 : sizeof(*how), rcstr); + + if (j == 2) + memset(how_big + 1, 0, 8); + } + } + + how->flags = O_RDONLY | O_NOCTTY; + how->mode = 0; + how->resolve = 0; + rc = syscall(__NR_openat2, -100, "/dev/full", how, sizeof(*how)); + printf("openat2(%s, \"/dev/full\", {flags=%s, resolve=0}, %zu)" + " = %s%s\n", + XLAT_KNOWN(-100, "AT_FDCWD"), XLAT_STR(O_RDONLY|O_NOCTTY), + sizeof(*how), sprintrc(rc), rc >= 0 ? FD0_PATH : ""); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_openat2"); + +#endif diff --git a/tests/openat2.gen.test b/tests/openat2.gen.test new file mode 100755 index 00000000..5add9e5b --- /dev/null +++ b/tests/openat2.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (openat2 -a35 ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a35 diff --git a/tests/options-syntax.test b/tests/options-syntax.test index 5e43b3ab..e9aaf30e 100755 --- a/tests/options-syntax.test +++ b/tests/options-syntax.test @@ -3,7 +3,7 @@ # Check strace options syntax. # # Copyright (c) 2016 Dmitry V. Levin -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -11,42 +11,212 @@ . "${srcdir=.}/syntax.sh" check_e "Invalid process id: '0'" -p 0 +check_e "Invalid process id: '0'" --attach=0 check_e "Invalid process id: '-42'" -p -42 +check_e "Invalid process id: '-42'" --attach=-42 check_e "Invalid process id: '$$.'" -p $$. +check_e "Invalid process id: '$$.'" --attach=$$. check_e "Invalid process id: 'a'" -p 1,a +check_e "Invalid process id: 'a'" --attach=1,a check_e "Syscall 'chdir' for -b isn't supported" -b chdir +check_e "Syscall 'chdir' for -b isn't supported" --detach-on=chdir check_e "Syscall 'chdir' for -b isn't supported" -b execve -b chdir +check_e "Syscall 'chdir' for -b isn't supported" --detach-on=execve --detach-on=chdir check_e_using_grep 'exec: File *name too long' "$(printf '%4096s' ' ')" ff_name="$(printf '%4084s' ' ')" check_e_using_grep "$ff_name: File *name too long" -ff -o "$ff_name" true +check_e_using_grep "$ff_name: File *name too long" -ff --output="$ff_name" true check_h 'must have PROG [ARGS] or -p PID' -check_h 'PROG [ARGS] must be specified with -D' -D -p $$ -check_h '-c and -C are mutually exclusive' -c -C true -check_h '-c and -C are mutually exclusive' -C -c true -check_h '(-c or -C) and -ff are mutually exclusive' -c -ff true -check_h '(-c or -C) and -ff are mutually exclusive' -C -ff true -check_h '-w must be given with (-c or -C)' -w true -check_h 'piping the output and -ff are mutually exclusive' -o '|' -ff true -check_h 'piping the output and -ff are mutually exclusive' -o '!' -ff true +check_h "must have PROG [ARGS] or -p PID" --absolute-timestamps +check_h "must have PROG [ARGS] or -p PID" --absolute-timestamps= +check_h "must have PROG [ARGS] or -p PID" --absolute-timestamps=, +check_h "must have PROG [ARGS] or -p PID" --absolute-timestamps=,s +check_h "must have PROG [ARGS] or -p PID" --absolute-timestamps=s, +check_h "must have PROG [ARGS] or -p PID" --absolute-timestamps=,, +check_h "must have PROG [ARGS] or -p PID" --absolute-timestamps=s,,none +check_h "must have PROG [ARGS] or -p PID" --timestamps --absolute-timestamps=ns --timestamps=none --absolute-timestamps=format:time,precision:s --timestamps=ns,format:unix --absolute-timestamps=us,precision:ms,unix,precision:ns --timestamps=format:none,time,precision:us +check_h "invalid --absolute-timestamps argument: 'ss'" --absolute-timestamps=ss +check_h "invalid --timestamps argument: 'format:s'" --timestamps=format:s +check_h "invalid --timestamps argument: 's,non'" --timestamps=s,non +check_h "invalid --timestamps argument: 'precision:none'" --timestamps=precision:none +check_e '-t and --absolute-timestamps cannot be provided simultaneously' -t --timestamps -p $$ +check_e '-t and --absolute-timestamps cannot be provided simultaneously' --absolute-timestamps -ttt -p $$ +check_e '-t and --absolute-timestamps cannot be provided simultaneously' -t --timestamps=ns -t -p $$ +check_e '-t and --absolute-timestamps cannot be provided simultaneously' --timestamps=ns -t --absolute-timestamps=unix -p $$ +check_h 'PROG [ARGS] must be specified with -D/--daemonize' -D -p $$ +check_h 'PROG [ARGS] must be specified with -D/--daemonize' -DD -p $$ +check_h 'PROG [ARGS] must be specified with -D/--daemonize' -DDD -p $$ +check_h 'PROG [ARGS] must be specified with -D/--daemonize' -DDDD -p $$ +check_h 'PROG [ARGS] must be specified with -D/--daemonize' --daemonize -p $$ +check_h 'PROG [ARGS] must be specified with -D/--daemonize' --daemonize=grandchild -p $$ +check_h 'PROG [ARGS] must be specified with -D/--daemonize' --daemonize=pgroup -p $$ +check_h 'PROG [ARGS] must be specified with -D/--daemonize' --daemonize=Pgrp -p $$ +check_h 'PROG [ARGS] must be specified with -D/--daemonize' --daemonize=SESSION -p $$ +check_h 'Too many -D'\''s (4), maximum supported -D count is 3' -DDDD /bin/true +check_e '-D and --daemonize cannot be provided simultaneously' -D --daemonize -p $$ +check_e '-D and --daemonize cannot be provided simultaneously' --daemonize -D -p $$ +check_e '-D and --daemonize cannot be provided simultaneously' --daemonize -v -D /bit/true +check_h "invalid --daemonize argument: 'pgr'" --daemonize=pgr +check_h '-c/--summary-only and -C/--summary are mutually exclusive' -c -C true +check_h '-c/--summary-only and -C/--summary are mutually exclusive' --summary-only --summary true +check_h '-c/--summary-only and -C/--summary are mutually exclusive' -C -c true +check_h '-c/--summary-only and -C/--summary are mutually exclusive' --summary --summary-only true +check_h '(-c/--summary-only or -C/--summary) and -ff/--output-separately are mutually exclusive' -c -ff true +check_h '(-c/--summary-only or -C/--summary) and -ff/--output-separately are mutually exclusive' --summary-only -ff true +check_h '(-c/--summary-only or -C/--summary) and -ff/--output-separately are mutually exclusive' -C -ff true +check_h '(-c/--summary-only or -C/--summary) and -ff/--output-separately are mutually exclusive' --summary -ff true +check_h '-w/--summary-wall-clock must be given with (-c/--summary-only or -C/--summary)' -w true +check_h '-w/--summary-wall-clock must be given with (-c/--summary-only or -C/--summary)' --summary-wall-clock true +check_h '-U/--summary-columns must be given with (-c/--summary-only or -C/--summary)' -U name,time,count,errors true +check_h '-U/--summary-columns must be given with (-c/--summary-only or -C/--summary)' --summary-columns=name,time,count,errors true +check_h 'piping the output and -ff/--output-separately are mutually exclusive' -o '|' -ff true +check_h 'piping the output and -ff/--output-separately are mutually exclusive' --output='|' -ff true +check_h 'piping the output and -ff/--output-separately are mutually exclusive' -o '!' -ff true +check_h 'piping the output and -ff/--output-separately are mutually exclusive' --output='!' -ff true check_h "invalid -a argument: '-42'" -a -42 check_h "invalid -O argument: '-42'" -O -42 check_h "invalid -s argument: '-42'" -s -42 +check_h "invalid --string-limit argument: '-42'" --string-limit=-42 check_h "invalid -s argument: '1073741824'" -s 1073741824 +check_h "invalid --string-limit argument: '1073741824'" --string-limit=1073741824 +check_h "must have PROG [ARGS] or -p PID" --follow-forks +check_h "must have PROG [ARGS] or -p PID" --follow-forks --output-separately +check_h "must have PROG [ARGS] or -p PID" -f --output-separately +check_h "must have PROG [ARGS] or -p PID" --output-separately +check_e '-f and --follow-forks cannot be provided simultaneously' -f --follow-forks -p $$ +check_e '-ff and --output-separately cannot be provided simultaneously' --output-separately -ff -p $$ +check_h "invalid -I argument: '0x1'" -I 0x1 +check_h "invalid -I argument: '0'" -I 0 +check_h "must have PROG [ARGS] or -p PID" -I1 +check_h "must have PROG [ARGS] or -p PID" -I 2 +check_h "must have PROG [ARGS] or -p PID" -I3 +check_h "must have PROG [ARGS] or -p PID" -I 4 check_h "invalid -I argument: '5'" -I 5 +check_h "must have PROG [ARGS] or -p PID" -I always +check_h "must have PROG [ARGS] or -p PID" -I anywhere +check_h "must have PROG [ARGS] or -p PID" -Iwaiting +check_h "must have PROG [ARGS] or -p PID" -I never +check_h "must have PROG [ARGS] or -p PID" -Inever_tstp +check_h "invalid -I argument: '=never'" -I=never +check_h "invalid -I argument: 'nevertheless'" -Inevertheless +check_h "invalid -I argument: 'nev'" -Inev +check_h "invalid --interruptible argument: '0x1'" --interruptible=0x1 +check_h "invalid --interruptible argument: '0'" --interruptible=0 +check_h "must have PROG [ARGS] or -p PID" --interruptible 1 +check_h "must have PROG [ARGS] or -p PID" --interruptible=2 +check_h "invalid --interruptible argument: '5'" --interruptible=5 +check_h "must have PROG [ARGS] or -p PID" --interruptible=anywhere +check_h "must have PROG [ARGS] or -p PID" --interruptible=waiting +check_h "must have PROG [ARGS] or -p PID" --interruptible=never +check_h "must have PROG [ARGS] or -p PID" --interruptible=never_tstp +check_h "invalid --interruptible argument: 'nevertheless'" --interruptible=nevertheless +check_h "invalid --interruptible argument: 'nev'" --interruptible=nev +check_h "must have PROG [ARGS] or -p PID" --relative-timestamps +check_h "must have PROG [ARGS] or -p PID" --relative-timestamps=s +check_h "must have PROG [ARGS] or -p PID" --relative-timestamps=ms +check_h "must have PROG [ARGS] or -p PID" --relative-timestamps=us +check_h "must have PROG [ARGS] or -p PID" --relative-timestamps=ns +check_h "invalid --relative-timestamps argument: 'n'" --relative-timestamps=n +check_h "invalid --relative-timestamps argument: 'ss'" --relative-timestamps=ss +check_h "must have PROG [ARGS] or -p PID" --syscall-times +check_h "must have PROG [ARGS] or -p PID" --syscall-times=s +check_h "must have PROG [ARGS] or -p PID" --syscall-times=ms +check_h "must have PROG [ARGS] or -p PID" --syscall-times=us +check_h "must have PROG [ARGS] or -p PID" --syscall-times=ns +check_h "invalid --syscall-times argument: 'n'" --syscall-times=n +check_h "invalid --syscall-times argument: 'ss'" --syscall-times=ss +check_h "must have PROG [ARGS] or -p PID" --strings-in-hex +check_h "must have PROG [ARGS] or -p PID" --strings-in-hex=all +check_h "must have PROG [ARGS] or -p PID" --strings-in-hex=non-ascii +check_h "invalid --strings-in-hex argument: 'al'" --strings-in-hex=al +check_h "invalid --strings-in-hex argument: 'alll'" --strings-in-hex=alll +check_h "invalid --strings-in-hex argument: 'ascii'" --strings-in-hex=ascii +check_h "must have PROG [ARGS] or -p PID" --quiet=all +check_h "must have PROG [ARGS] or -p PID" --quiet=none +check_h "must have PROG [ARGS] or -p PID" --quiet=\!attach +check_h "must have PROG [ARGS] or -p PID" --quiet=exit,exits,personality +check_e "invalid quiet 'detach'" --quiet=detach -p $$ +check_e "invalid quiet 'fds'" -q --quiet=fds -p $$ +check_e "invalid quiet 'detach'" --quiet=detach -p $$ +check_e '-q and -e quiet/--quiet cannot be provided simultaneously' -q --quiet -p $$ +check_e '-q and -e quiet/--quiet cannot be provided simultaneously' -q -e q=none -p $$ +check_e '-q and -e quiet/--quiet cannot be provided simultaneously' -q -e silent=attach,personality -p $$ + +check_h 'must have PROG [ARGS] or -p PID' -P . +check_h 'must have PROG [ARGS] or -p PID' -P . -P.. +check_h 'must have PROG [ARGS] or -p PID' --trace-path=. +check_h 'must have PROG [ARGS] or -p PID' --trace-path=. --trace-path .. +check_e "Requested path \"///\" resolved into \"/\" +$STRACE_EXE: Requested path \"/.\" resolved into \"/\" +$STRACE_EXE: -q and -e quiet/--quiet cannot be provided simultaneously" -q --quiet -P /// -P/. . + +for i in time time_percent time-percent time_total time-total total_time total-time min_time min-time time_min time-min shortest max_time max-time time_max time-max longest avg_time avg-time time_avg time-avg calls count error errors name syscall syscall_name syscall-name none nothing; do + check_h "must have PROG [ARGS] or -p PID" -S "$i" + check_h "must have PROG [ARGS] or -p PID" --summary-sort-by="$i" + if [ "x$i" != xnone -a "x$i" != xnothing ]; then + check_h "must have PROG [ARGS] or -p PID" -c -U "$i" + check_h "must have PROG [ARGS] or -p PID" --summary-only --summary-columns="$i" + fi +done +for i in time,time_total,avg_time,calls,errors,name time_percent,total_time,time_avg,count,error,syscall_name; do + check_h "must have PROG [ARGS] or -p PID" -c -U "$i" + check_h "must have PROG [ARGS] or -p PID" --summary-only --summary-columns="$i" +done +for i in non syscall_names; do + check_h "invalid sortby: '$i'" -S "$i" + check_h "invalid sortby: '$i'" --summary-sort-by="$i" + check_h "unknown column name: '$i'" -U "$i" + check_h "unknown column name: '$i'" --summary-columns="$i" +done +check_h "unknown column name: ''" -U time,,name +check_h "call summary column has been provided more than once: 'time_percent' (-U option residual: 'time_percent,time_total')" -U time,time_percent,time_total + +check_e '-x and --strings-in-hex cannot be provided simultaneously' -x --strings-in-hex -p $$ +check_e '-x and --strings-in-hex cannot be provided simultaneously' --strings-in-hex -p $$ -xx check_h "invalid -X argument: 'test'" -Xtest +check_h "invalid --const-print-style argument: 'test'" --const-print-style=test check_h "invalid -X argument: 'a'" -Xa +check_h "invalid --const-print-style argument: 'a'" --const-print-style=a check_h "invalid -X argument: 'abbreviated'" -X abbreviated +check_h "invalid --const-print-style argument: 'abbreviated'" --const-print-style=abbreviated +check_h "must have PROG [ARGS] or -p PID" --decode-fds +check_h "must have PROG [ARGS] or -p PID" --decode-fds=all +check_h "must have PROG [ARGS] or -p PID" --decode-fds=none +check_h "must have PROG [ARGS] or -p PID" --decode-fds=path +check_h "must have PROG [ARGS] or -p PID" --decode-fds=socket,dev +check_h "must have PROG [ARGS] or -p PID" --decode-fds=\!path +check_h "must have PROG [ARGS] or -p PID" --decode-fds=socket,path,dev +check_e "invalid decode-fds 'p'" --decode-fds=p -p $$ +check_e "invalid decode-fds 'device'" -y --decode-fds=device -p $$ +check_e "invalid decode-fds 'name'" --decode-fds=path,name -p $$ +check_e "invalid decode-fds 'sock'" -e decode-fd=sock -y -p $$ +check_e '-y and --decode-fds cannot be provided simultaneously' -y --decode-fds -p $$ +check_e '-y and --decode-fds cannot be provided simultaneously' -e decode-fd=all -yy -p $$ +check_e '-y and --decode-fds cannot be provided simultaneously' --decode-fds=none -y -p $$ check_h "incorrect personality designator '' in qualification 'getcwd@'" -e trace=getcwd@ check_h "incorrect personality designator '42' in qualification 'getcwd@42'" -e trace=getcwd@42 check_h "incorrect personality designator '42' in qualification 'getcwd@42'" -e trace=gettid,getcwd@42 check_h "incorrect personality designator '42' in qualification '23@42'" -e trace=23@42,123 +check_h '--seccomp-bpf cannot be used without -f/--follow-forks, disabling +-w/--summary-wall-clock must be given with (-c/--summary-only or -C/--summary)' --seccomp-bpf -w / +check_h '--seccomp-bpf is not enabled for processes attached with -p +-w/--summary-wall-clock must be given with (-c/--summary-only or -C/--summary)' --seccomp-bpf -f -p 1 -w + +check_h 'option -F is deprecated, please use -f/--follow-forks instead +-w/--summary-wall-clock must be given with (-c/--summary-only or -C/--summary)' -F -w / +check_h 'option -F is deprecated, please use -f/--follow-forks instead +-w/--summary-wall-clock must be given with (-c/--summary-only or -C/--summary)' -FF -w / +check_h 'deprecated option -F ignored +-w/--summary-wall-clock must be given with (-c/--summary-only or -C/--summary)' -fF -w / + check_e "invalid system call '/getcwd@ohmy'" -e trace=/getcwd@ohmy check_e "invalid -e kvm= argument: 'chdir'" -e kvm=chdir +check_e "invalid -e kvm= argument: 'chdir'" --kvm=chdir case "$STRACE_NATIVE_ARCH" in x86_64) @@ -59,7 +229,7 @@ x32) check_h "must have PROG [ARGS] or -p PID" -e trace=getcwd@32 check_h "must have PROG [ARGS] or -p PID" -e trace=getcwd@x32 ;; -aarch64|powerpc64|riscv|s390x|sparc64|tile) +aarch64|powerpc64|s390x|sparc64|tile) check_h "must have PROG [ARGS] or -p PID" -e trace=getcwd@64 check_h "must have PROG [ARGS] or -p PID" -e trace=getcwd@32 check_h "incorrect personality designator 'x32' in qualification 'getcwd@x32'" -e trace=getcwd@x32 @@ -93,21 +263,60 @@ if [ "$uid" -ge 0 ]; then if [ "$uid" -eq 0 ]; then umsg="Cannot find user ':nosuchuser:'" else - umsg='You must be root to use the -u option' + umsg='You must be root to use the -u/--username option' fi check_e "$umsg" -u :nosuchuser: true - for c in i r t T y; do - check_e "-$c has no effect with -c -$STRACE_EXE: $umsg" -u :nosuchuser: -c -$c true + for c in i/--instruction-pointer n/--syscall-number r/--relative-timestamps t/--absolute-timestamps T/--syscall-times y/--decode-fds; do + check_e "-$c has no effect with -c/--summary-only +$STRACE_EXE: $umsg" -u :nosuchuser: -c -${c%%/*} true done - check_e "-i has no effect with -c -$STRACE_EXE: -r has no effect with -c -$STRACE_EXE: -t has no effect with -c -$STRACE_EXE: -T has no effect with -c -$STRACE_EXE: -y has no effect with -c -$STRACE_EXE: $umsg" -u :nosuchuser: -cirtTy true + + check_e "-i/--instruction-pointer has no effect with -c/--summary-only +$STRACE_EXE: -n/--syscall-number has no effect with -c/--summary-only +$STRACE_EXE: -r/--relative-timestamps has no effect with -c/--summary-only +$STRACE_EXE: -t/--absolute-timestamps has no effect with -c/--summary-only +$STRACE_EXE: -T/--syscall-times has no effect with -c/--summary-only +$STRACE_EXE: -y/--decode-fds has no effect with -c/--summary-only +$STRACE_EXE: Only the last of -z/--successful-only/-Z/--failed-only options will take effect. See status qualifier for more complex filters. +$STRACE_EXE: $umsg" -u :nosuchuser: -cinrtTyzZ true + + for c in --output-separately -A/--output-append-mode; do + check_e "$c has no effect without -o/--output +$STRACE_EXE: $umsg" -u :nosuchuser: ${c%%/*} true + done + + check_e "-S/--summary-sort-by has no effect without (-c/--summary-only or -C/--summary) +$STRACE_EXE: $umsg" -u :nosuchuser: --summary-sort-by errors true + + check_e "--output-separately has no effect without -o/--output +$STRACE_EXE: -A/--output-append-mode has no effect without -o/--output +$STRACE_EXE: $umsg" -u :nosuchuser: --output-separately --output-append-mode true + + check_e "$umsg" -u :nosuchuser: -ff true + check_e "$umsg" -u :nosuchuser: --output-separately --follow-forks true + + check_e "Only the last of -z/--successful-only/-Z/--failed-only options will take effect. See status qualifier for more complex filters. +$STRACE_EXE: $umsg" -u :nosuchuser: -z --successful-only true + check_e "Only the last of -z/--successful-only/-Z/--failed-only options will take effect. See status qualifier for more complex filters. +$STRACE_EXE: $umsg" -u :nosuchuser: --successful-only -Z true + check_e "Only the last of -z/--successful-only/-Z/--failed-only options will take effect. See status qualifier for more complex filters. +$STRACE_EXE: $umsg" -u :nosuchuser: --successful-only --failed-only true + + check_e "-n/--syscall-number has no effect with -c/--summary-only +$STRACE_EXE: $umsg" --user=:nosuchuser: --syscall-number --summary-only true + + check_e "-i/--instruction-pointer has no effect with -c/--summary-only +$STRACE_EXE: $umsg" --user=:nosuchuser: --instruction-pointer --summary-only true +fi + +check_e_using_grep 'ptrace_setoptions = 0x[[:xdigit:]]+' -d / +check_e_using_grep 'ptrace_setoptions = 0x[[:xdigit:]]+' --debug / + +if [ -z "$(get_config_option ENABLE_STACKTRACE 1)" ]; then + check_e "Stack traces (-k/--stack-traces option) are not supported by this build of strace" -k + check_e "Stack traces (-k/--stack-traces option) are not supported by this build of strace" --stack-traces fi args='-p 2147483647' diff --git a/tests/orphaned_process_group.c b/tests/orphaned_process_group.c index 83ab6e39..13aacf36 100644 --- a/tests/orphaned_process_group.c +++ b/tests/orphaned_process_group.c @@ -1,7 +1,7 @@ /* * Check tracing of orphaned process group. * - * Copyright (c) 2019 The strace developers. + * Copyright (c) 2019-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -139,7 +139,7 @@ main(void) */ leader = getpid(); printf("%-5d --- %s {si_signo=%s, si_code=SI_TKILL" - ", si_pid=%d, si_uid=%u} ---\n", + ", si_pid=%d, si_uid=%d} ---\n", stopped, "SIGSTOP", "SIGSTOP", stopped, geteuid()); printf("%-5d --- stopped by SIGSTOP ---\n", stopped); printf("%-5d +++ exited with 0 +++\n", leader); diff --git a/tests/osf_utimes.c b/tests/osf_utimes.c index d721e394..3d864740 100644 --- a/tests/osf_utimes.c +++ b/tests/osf_utimes.c @@ -2,13 +2,14 @@ * Check decoding of osf_utimes syscall. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_osf_utimes diff --git a/tests/pause.c b/tests/pause.c index 0260a6bc..c03123b1 100644 --- a/tests/pause.c +++ b/tests/pause.c @@ -3,14 +3,14 @@ * * Copyright (c) 2015-2016 Dmitry V. Levin * Copyright (c) 2016 Fei Jie - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_pause diff --git a/tests/pc.c b/tests/pc.c index 0bc28d18..2ee0543a 100644 --- a/tests/pc.c +++ b/tests/pc.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2020 Dmitry V. Levin * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -27,7 +27,7 @@ int main(void) #endif /* write instruction pointer length to the log */ - assert(write(-1, NULL, 2 * sizeof(void *)) < 0); + assert(write(-1, (void *) 8UL, 2 * sizeof(void *)) < 0); /* just a noticeable line in the log */ assert(munmap(&main, 0) < 0); diff --git a/tests/pc.test b/tests/pc.test index 40221e57..c039d5d3 100755 --- a/tests/pc.test +++ b/tests/pc.test @@ -3,7 +3,7 @@ # Check -i option. # # Copyright (c) 2015 Dmitry V. Levin -# Copyright (c) 2015-2018 The strace developers. +# Copyright (c) 2015-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -14,11 +14,11 @@ check_prog sed run_prog > /dev/null -args="-if $args" +args="--quiet=attach,personality -if $args" $STRACE $args 2> "$LOG" || dump_log_and_fail_with "$STRACE $args failed" -len="$(sed -r -n 's/^\[[[:xdigit:]]+\] write\(-1, NULL, ([[:digit:]]{1,2})\)[[:space:]]+= -1 .*/\1/p' "$LOG")" && +len="$(sed -r -n 's/^\[[[:xdigit:]]+\] write\(-1, 0x8, ([[:digit:]]{1,2})\)[[:space:]]+= -1 .*/\1/p' "$LOG")" && [ -n "$len" ] && pid="$(sed -r -n 's/^\[[[:xdigit:]]{'"$len"'}\] --- SIGCHLD \{si_signo=SIGCHLD, si_code=CLD_(KILLED|DUMPED), si_pid=([[:digit:]]+), .*/\2/p' "$LOG")" && [ -n "$pid" ] && diff --git a/tests/perf_event_open.c b/tests/perf_event_open.c index ae38b6de..d2f5b869 100644 --- a/tests/perf_event_open.c +++ b/tests/perf_event_open.c @@ -2,14 +2,14 @@ * Check verbose decoding of perf_event_open syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_perf_event_open) && defined(HAVE_LINUX_PERF_EVENT_H) @@ -137,7 +137,7 @@ print_event_attr(struct perf_event_attr *attr_ptr, size_t size, STRACE_PEA_ABBREV_SIZE = offsetof(struct perf_event_attr, config) + sizeof(attr_ptr->config), - STRACE_PEA_SIZE = 112, + STRACE_PEA_SIZE = 120, }; uint32_t read_size; @@ -476,6 +476,28 @@ print_event_attr(struct perf_event_attr *attr_ptr, size_t size, goto end; } + val = ((uint16_t *) attr)[110 / sizeof(uint16_t)]; + if (val) + printf(" /* bytes 110..111: %#" PRIx16 " */", (uint16_t) val); + + if (size <= 112) { + cutoff = 112; + goto end; + } + + val = +# ifdef HAVE_STRUCT_PERF_EVENT_ATTR_AUX_SAMPLE_SIZE + attr->aux_sample_size; +# else + ((uint32_t *) attr)[112 / sizeof(uint32_t)]; +# endif + printf(", aux_sample_size=%" PRIu32, (uint32_t) val); + + if (size <= 116) { + cutoff = 116; + goto end; + } + cutoff = STRACE_PEA_SIZE; end: @@ -489,7 +511,7 @@ end: } /* These require aligned access, so no byte-grain checks possible */ -# if defined SPARC || defined SPARC64 || defined POWERPC || defined POWERPC64 +# if defined SPARC || defined SPARC64 || defined POWERPC || defined POWERPC64 || defined ARM # define ATTR_REC(sz) { tail_alloc((sz + 7) & ~7), sz } # else # define ATTR_REC(sz) { tail_alloc(sz), sz } @@ -512,7 +534,8 @@ end: "PERF_SAMPLE_BRANCH_CALL|" \ "PERF_SAMPLE_BRANCH_NO_FLAGS|" \ "PERF_SAMPLE_BRANCH_NO_CYCLES|" \ - "PERF_SAMPLE_BRANCH_TYPE_SAVE" + "PERF_SAMPLE_BRANCH_TYPE_SAVE|" \ + "PERF_SAMPLE_BRANCH_HW_INDEX" int main(void) @@ -529,7 +552,11 @@ main(void) static const size_t attr_v4_625_size = PERF_ATTR_SIZE_VER4 + 5; static const size_t attr_v4_875_size = PERF_ATTR_SIZE_VER4 + 7; static const size_t attr_v5_size = PERF_ATTR_SIZE_VER5; - static const size_t attr_big_size = PERF_ATTR_SIZE_VER5 + 32; + static const size_t attr_v5_25_size = PERF_ATTR_SIZE_VER5 + 2; + static const size_t attr_v5_5_size = PERF_ATTR_SIZE_VER5 + 4; + static const size_t attr_v5_75_size = PERF_ATTR_SIZE_VER5 + 6; + static const size_t attr_v6_size = PERF_ATTR_SIZE_VER6; + static const size_t attr_big_size = PERF_ATTR_SIZE_VER6 + 32; static const struct u64_val_str attr_types[] = { { ARG_STR(PERF_TYPE_HARDWARE) }, @@ -597,7 +624,7 @@ main(void) static const struct u64_val_str sample_types[] = { { ARG_STR(0) }, { 0x800, "PERF_SAMPLE_BRANCH_STACK" }, - { ARG_ULL_STR(0xdeadc0deda700000) " /* PERF_SAMPLE_??? */" }, + { ARG_ULL_STR(0xdeadc0deda600000) " /* PERF_SAMPLE_??? */" }, { 0xffffffffffffffffULL, "PERF_SAMPLE_IP|PERF_SAMPLE_TID|PERF_SAMPLE_TIME|" "PERF_SAMPLE_ADDR|PERF_SAMPLE_READ|" @@ -608,7 +635,8 @@ main(void) "PERF_SAMPLE_WEIGHT|PERF_SAMPLE_DATA_SRC|" "PERF_SAMPLE_IDENTIFIER|PERF_SAMPLE_TRANSACTION|" "PERF_SAMPLE_REGS_INTR|PERF_SAMPLE_PHYS_ADDR|" - "0xfffffffffff00000" }, + "PERF_SAMPLE_AUX|" + "0xffffffffffe00000" }, }; static const struct u64_val_str read_formats[] = { { ARG_STR(0) }, @@ -640,11 +668,11 @@ main(void) static const struct u64_val_str branch_sample_types[] = { { ARG_STR(0) }, { 0x80, "PERF_SAMPLE_BRANCH_ABORT_TX" }, - { 0x1ffff, BRANCH_TYPE_ALL }, + { 0x3ffff, BRANCH_TYPE_ALL }, { ARG_ULL_STR(0xdeadcaffeeec0000) " /* PERF_SAMPLE_BRANCH_??? */" }, { 0xffffffffffffffffULL, - BRANCH_TYPE_ALL "|0xfffffffffffe0000" } + BRANCH_TYPE_ALL "|0xfffffffffffc0000" } }; static const struct s32_val_str clockids[] = { { 11, "CLOCK_TAI" }, @@ -669,6 +697,10 @@ main(void) ATTR_REC(attr_v4_625_size), ATTR_REC(attr_v4_875_size), ATTR_REC(attr_v5_size), + ATTR_REC(attr_v5_25_size), + ATTR_REC(attr_v5_5_size), + ATTR_REC(attr_v5_75_size), + ATTR_REC(attr_v6_size), ATTR_REC(attr_big_size), }; @@ -776,6 +808,10 @@ main(void) ip_desc_str = precise_ip_descs[flags_data.flags.precise_ip]; # endif + if (((i % 17) == 3) && (size >= 112)) + ((uint16_t *) attr)[110 / sizeof(uint16_t)] = 0; + + if (i == 0) attr->size = size + 8; diff --git a/tests/perf_event_open_nonverbose.c b/tests/perf_event_open_nonverbose.c index b87cb2c6..d5a21a06 100644 --- a/tests/perf_event_open_nonverbose.c +++ b/tests/perf_event_open_nonverbose.c @@ -2,14 +2,14 @@ * Check decoding of perf_event_open syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_perf_event_open) && defined(HAVE_LINUX_PERF_EVENT_H) diff --git a/tests/pidfd_getfd-y.c b/tests/pidfd_getfd-y.c new file mode 100644 index 00000000..7e786555 --- /dev/null +++ b/tests/pidfd_getfd-y.c @@ -0,0 +1,3 @@ +#define PIDFD_PATH "" +#define FD0_PATH "" +#include "pidfd_getfd.c" diff --git a/tests/pidfd_getfd-y.gen.test b/tests/pidfd_getfd-y.gen.test new file mode 100755 index 00000000..9aa306ed --- /dev/null +++ b/tests/pidfd_getfd-y.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (pidfd_getfd-y --trace=pidfd_getfd -a18 -e signal=none -y >" +#include "pidfd_getfd.c" diff --git a/tests/pidfd_getfd-yy.gen.test b/tests/pidfd_getfd-yy.gen.test new file mode 100755 index 00000000..7c1ca019 --- /dev/null +++ b/tests/pidfd_getfd-yy.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (pidfd_getfd-yy --trace=pidfd_getfd -a18 -e signal=none -yy + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_pidfd_getfd + +# include +# include +# include +# include +# include +# include + +# ifndef PIDFD_PATH +# define PIDFD_PATH "" +# endif +# ifndef FD0_PATH +# define FD0_PATH "" +# endif +# ifndef PRINT_PIDFD +# define PRINT_PIDFD 0 +# endif + +static const char *errstr; + +static long +k_pidfd_getfd(const unsigned int pidfd, const unsigned int fd, + const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | pidfd; + const kernel_ulong_t arg2 = fill | fd; + const kernel_ulong_t arg3 = fill | flags; + const long rc = syscall(__NR_pidfd_getfd, + arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + long rc; + + rc = k_pidfd_getfd(-1U, -1U, 0); + printf("pidfd_getfd(-1, -1, 0) = %s\n", errstr); + + rc = k_pidfd_getfd(0, 0, 0xbadc0ded); + printf("pidfd_getfd(0" FD0_PATH ", 0, 0xbadc0ded) = %s\n", errstr); + + int child_wait_fds[2]; + if (pipe(child_wait_fds)) + perror_msg_and_fail("pipe"); + + int dupfd = dup(0); + int pid = fork(); + if (pid == 0) { + close(0); + close(child_wait_fds[1]); + if (read(child_wait_fds[0], &child_wait_fds[1], sizeof(int))) + _exit(2); + _exit(0); + } + close(dupfd); + + int pidfd = syscall(__NR_pidfd_open, pid, 0); +# if PRINT_PIDFD + char pidfd_str[sizeof("") + 3 * sizeof(int)]; + snprintf(pidfd_str, sizeof(pidfd_str), "", pid); +# else + const char *pidfd_str = PIDFD_PATH; +# endif + rc = k_pidfd_getfd(pidfd, dupfd, 0); + printf("pidfd_getfd(%d%s, %d%s, 0) = %s%s\n", + pidfd, pidfd >= 0 ? pidfd_str : "", + dupfd, pidfd >= 0 ? FD0_PATH : "", + errstr, rc >= 0 ? FD0_PATH : ""); + + puts("+++ exited with 0 +++"); + + close(child_wait_fds[1]); + int status; + assert(wait(&status) == pid); + assert(status == 0); + + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_pidfd_getfd"); + +#endif diff --git a/tests/pidfd_getfd.gen.test b/tests/pidfd_getfd.gen.test new file mode 100755 index 00000000..13a08d6c --- /dev/null +++ b/tests/pidfd_getfd.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (pidfd_getfd -a18 -Xverbose -e signal=none + * Copyright (c) 2019-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" +#include "pidns.h" + +#ifdef __NR_pidfd_open + +# include +# include +# ifdef PATH_TRACING +# include +# endif + +static const char *errstr; + +static long +k_pidfd_open(const unsigned int pid, const unsigned int flags) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | pid; + const kernel_ulong_t arg2 = fill | flags; + const long rc = syscall(__NR_pidfd_open, + arg1, arg2, bad, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + PIDNS_TEST_INIT; + +# if defined PATH_TRACING || defined PRINT_PATHS + skip_if_unavailable("/proc/self/fd/"); +# endif + +# ifdef PATH_TRACING + static const char path_full[] = "/dev/full"; + (void) close(0); + if (open(path_full, O_WRONLY)) + perror_msg_and_skip(path_full); +# endif + + k_pidfd_open(0, 0); +# ifndef PATH_TRACING + pidns_print_leader(); + printf("pidfd_open(0, 0) = %s\n", errstr); +# endif + + k_pidfd_open(-1U, 0); +# ifndef PATH_TRACING + pidns_print_leader(); + printf("pidfd_open(-1, 0) = %s\n", errstr); +# endif + + k_pidfd_open(0, -1U); +# ifndef PATH_TRACING + pidns_print_leader(); + printf("pidfd_open(0, %#x) = %s\n", -1U, errstr); +# endif + + const unsigned int flags = 0xfacefeed; + const int pid = getpid(); + + k_pidfd_open(pid, flags); +# ifndef PATH_TRACING + const char *pid_str = pidns_pid2str(PT_TGID); + pidns_print_leader(); + printf("pidfd_open(%d%s, %#x) = %s\n", + pid, pid_str, flags, errstr); +# endif + +# ifdef PRINT_PATHS + long rc = k_pidfd_open(pid, 0); + if (rc < 0) + perror_msg_and_skip("pidfd_open"); +# else + k_pidfd_open(pid, 0); +# endif + +# ifndef PATH_TRACING + pidns_print_leader(); + printf("pidfd_open(%d%s, 0) = " +# if defined PRINT_PIDFD + "%ld\n", pid, pid_str, rc, pid +# elif defined PRINT_PATHS + "%ld\n", pid, pid_str, rc +# else + "%s\n", pid, pid_str, errstr +# endif + ); +# endif + + pidns_print_leader(); + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_pidfd_open"); + +#endif diff --git a/tests/pidfd_open.gen.test b/tests/pidfd_open.gen.test new file mode 100755 index 00000000..4c240f38 --- /dev/null +++ b/tests/pidfd_open.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (pidfd_open -a17 ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a17 diff --git a/tests/pidfd_send_signal--pidns-translation.c b/tests/pidfd_send_signal--pidns-translation.c new file mode 100644 index 00000000..b04f10f5 --- /dev/null +++ b/tests/pidfd_send_signal--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "pidfd_send_signal.c" diff --git a/tests/pidfd_send_signal--pidns-translation.gen.test b/tests/pidfd_send_signal--pidns-translation.gen.test new file mode 100755 index 00000000..21191b00 --- /dev/null +++ b/tests/pidfd_send_signal--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (pidfd_send_signal--pidns-translation test_pidns -e trace=pidfd_send_signal); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -e trace=pidfd_send_signal diff --git a/tests/pidfd_send_signal.c b/tests/pidfd_send_signal.c index 014e43de..a6b2d28c 100644 --- a/tests/pidfd_send_signal.c +++ b/tests/pidfd_send_signal.c @@ -1,7 +1,7 @@ /* * Check decoding of pidfd_send_signal syscall. * - * Copyright (c) 2015-2019 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,8 +9,8 @@ #include "tests.h" #include -#include #include "scno.h" +#include "pidns.h" #ifdef __NR_pidfd_send_signal @@ -37,6 +37,8 @@ sys_pidfd_send_signal(int pidfd, int sig, const void *info, int flags) int main(void) { + PIDNS_TEST_INIT; + static const char null_path[] = "/dev/null"; int fd = open(null_path, O_RDONLY); @@ -47,19 +49,23 @@ main(void) const void *esi = (const void *) si + 1; sys_pidfd_send_signal(fd, SIGUSR1, esi, 0); + pidns_print_leader(); printf("pidfd_send_signal(%d, SIGUSR1, %p, 0) = %s\n", fd, esi, errstr); si->si_signo = SIGUSR1; si->si_code = SI_QUEUE; + si->si_pid = getpid(); sys_pidfd_send_signal(fd, SIGUSR2, si, -1); + pidns_print_leader(); printf("pidfd_send_signal(%d, SIGUSR2, {si_signo=SIGUSR1" - ", si_code=SI_QUEUE, si_errno=%d, si_pid=%u, si_uid=%u" + ", si_code=SI_QUEUE, si_errno=%u, si_pid=%d%s, si_uid=%d" ", si_value={int=%d, ptr=%p}}, %#x) = %s\n", - fd, si->si_errno, si->si_pid, si->si_uid, si->si_int, si->si_ptr, - -1U, errstr); + fd, si->si_errno, si->si_pid, pidns_pid2str(PT_TGID), si->si_uid, + si->si_int, si->si_ptr, -1U, errstr); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests/pidns-cache.c b/tests/pidns-cache.c new file mode 100644 index 00000000..6319a7fd --- /dev/null +++ b/tests/pidns-cache.c @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" +#include "pidns.h" + +#if defined __NR_getpid && (!defined __NR_getxpid || __NR_getxpid != __NR_getpid) + +# include +# include +# include + +# define SYSCALL_COUNT 1000 + +/** + * Max ratio of the execution time with and without pidns translation. + */ +# define MAX_TIME_RATIO 20 + +static long +execute_syscalls(void) +{ + /* Load our PID in the cache */ + syscall(__NR_getpid); + + struct timeval stop, start; + gettimeofday(&start, NULL); + + for (int i = 0; i < SYSCALL_COUNT; i++) + syscall(__NR_getpid); + + gettimeofday(&stop, NULL); + + return (stop.tv_usec - start.tv_usec) + + (stop.tv_sec - start.tv_sec) * 1000000; +} + +int +main(void) +{ + long max_us = execute_syscalls() * MAX_TIME_RATIO; + + pidns_test_init(); + + long us = execute_syscalls(); + if (us > max_us) + error_msg_and_fail("pidns translation took too long: %ld us " + "(max: %ld us)", us, max_us); + + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_getpid") + +#endif diff --git a/tests/pidns-cache.test b/tests/pidns-cache.test new file mode 100755 index 00000000..e4df0821 --- /dev/null +++ b/tests/pidns-cache.test @@ -0,0 +1,15 @@ +#!/bin/sh +# +# Test pidns translation cache. +# +# Copyright (c) 2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +check_prog timeout + +run_prog > /dev/null +run_strace --pidns-translation -f -e trace=getpid $args diff --git a/tests/pidns.c b/tests/pidns.c new file mode 100644 index 00000000..4fe5b223 --- /dev/null +++ b/tests/pidns.c @@ -0,0 +1,237 @@ +/* + * Testing framework for PID namespace translation + * + * Copyright (c) 2020 Ákos Uzonyi + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ +#include "tests.h" +#include "pidns.h" +#include "nsfs.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifndef CLONE_NEWUSER +# define CLONE_NEWUSER 0x10000000 +#endif + +#ifndef CLONE_NEWPID +# define CLONE_NEWPID 0x20000000 +#endif + +static bool pidns_translation = false; +static bool pidns_unshared = false; + +/* Our PIDs in strace's namespace */ +static pid_t pidns_strace_ids[PT_COUNT]; + +void +pidns_print_leader(void) +{ + if (pidns_translation) + printf("%-5d ", pidns_strace_ids[PT_TID]); +} + +const char * +pidns_pid2str(enum pid_type type) +{ + static const char format[] = " /* %d in strace's PID NS */"; + static char buf[PT_COUNT][sizeof(format) + sizeof(int) * 3]; + + if (type < 0 || type >= PT_COUNT) + return ""; + + if (!pidns_unshared || !pidns_strace_ids[type]) + return ""; + + snprintf(buf[type], sizeof(buf[type]), format, pidns_strace_ids[type]); + return buf[type]; +} + +/** + * This function is like fork, but does a few more things. It sets up the + * child's PGID and SID according to the parameters. Also it fills the + * pidns_strace_ids array in the child's memory with the PIDs of the child in + * parent's PID namespace. In the parent it waits for the child to terminate + * (but leaves the zombie to use it later as a process group). If the child + * terminates with nonzero exit status, the test is failed. + * + * @param pgid The process group the child should be moved to. It's expected + * to be a PID of a zombie process (will be reaped). If + * negative, leave the child in the process group of the parent. + * If 0, move the process to its own process group. + * @param new_sid Wheather child should be moved to a new session. + */ +static pid_t +pidns_fork(pid_t pgid, bool new_sid) +{ + int strace_ids_pipe[2]; + if (pipe(strace_ids_pipe) < 0) + perror_msg_and_fail("pipe"); + + fflush(stdout); + pid_t pid = fork(); + if (pid < 0) + perror_msg_and_fail("fork"); + + if (!pid) { + close(strace_ids_pipe[1]); + + ssize_t len = read(strace_ids_pipe[0], pidns_strace_ids, + sizeof(pidns_strace_ids)); + if (len < 0) + perror_msg_and_fail("read"); + if (len != sizeof(pidns_strace_ids)) + error_msg_and_fail("read returned < sizeof(pidns_strace_ids)"); + + close(strace_ids_pipe[0]); + + if (pidns_strace_ids[PT_SID]) + setsid(); + + return 0; + } + + pidns_strace_ids[PT_TID] = pid; + pidns_strace_ids[PT_TGID] = pid; + pidns_strace_ids[PT_PGID] = 0; + pidns_strace_ids[PT_SID] = 0; + + if (!pgid) + pgid = pid; + + if (pgid > 0) { + if (setpgid(pid, pgid) < 0) + perror_msg_and_fail("setpgid"); + + pidns_strace_ids[PT_PGID] = pgid; + } + + /* Reap group leader to test PGID decoding */ + if (pgid > 0 && pgid != pid) { + int ret = waitpid(pgid, NULL, WNOHANG); + if (ret < 0) + perror_msg_and_fail("wait"); + if (!ret) + error_msg_and_fail("could not reap group leader"); + } + + if (new_sid) { + pidns_strace_ids[PT_SID] = pid; + pidns_strace_ids[PT_PGID] = pid; + } + + ssize_t len = write(strace_ids_pipe[1], pidns_strace_ids, + sizeof(pidns_strace_ids)); + if (len < 0) + perror_msg_and_fail("write"); + if (len != sizeof(pidns_strace_ids)) + error_msg_and_fail("write returned < sizeof(pidns_strace_ids)"); + + close(strace_ids_pipe[0]); + close(strace_ids_pipe[1]); + + /* WNOWAIT: leave the zombie, to be able to use it as a process group */ + siginfo_t siginfo; + if (waitid(P_PID, pid, &siginfo, WEXITED | WNOWAIT) < 0) + perror_msg_and_fail("wait"); + if (siginfo.si_code != CLD_EXITED || siginfo.si_status) + error_msg_and_fail("child terminated with nonzero exit status"); + + return pid; +} + +static void +create_init_process(void) +{ + int child_pipe[2]; + if (pipe(child_pipe) < 0) + perror_msg_and_fail("pipe"); + + pid_t pid = fork(); + if (pid < 0) + perror_msg_and_fail("fork"); + + if (!pid) { + close(child_pipe[1]); + if (read(child_pipe[0], &child_pipe[1], sizeof(int)) != 0) + _exit(1); + _exit(0); + } + + close(child_pipe[0]); +} + +void +check_ns_ioctl(void) +{ + int fd = open("/proc/self/ns/pid", O_RDONLY); + if (fd < 0) { + if (errno == ENOENT) + perror_msg_and_skip("opening /proc/self/ns/pid"); + else + perror_msg_and_fail("opening /proc/self/ns/pid"); + } + + int userns_fd = ioctl(fd, NS_GET_USERNS); + if (userns_fd < 0) { + if (errno == ENOTTY) + error_msg_and_skip("NS_* ioctl commands are not " + "supported by the kernel"); + else + perror_msg_and_fail("ioctl(NS_GET_USERNS)"); + } + + close(userns_fd); + close(fd); +} + +void +pidns_test_init(void) +{ + pidns_translation = true; + + check_ns_ioctl(); + + if (!pidns_fork(-1, false)) + return; + + /* Unshare user namespace too, so we do not need to be root */ + if (unshare(CLONE_NEWUSER | CLONE_NEWPID) < 0) { + if (errno == EPERM) + perror_msg_and_skip("unshare"); + + perror_msg_and_fail("unshare"); + } + + pidns_unshared = true; + + create_init_process(); + + if (!pidns_fork(-1, false)) + return; + + if (!pidns_fork(-1, true)) + return; + + pid_t pgid; + if (!(pgid = pidns_fork(0, false))) + return; + + if (!pidns_fork(pgid, false)) + return; + + exit(0); +} diff --git a/tests/pidns.h b/tests/pidns.h new file mode 100644 index 00000000..bafc0d77 --- /dev/null +++ b/tests/pidns.h @@ -0,0 +1,56 @@ +/* + * Test PID namespace translation + * + * Copyright (c) 2020 Ákos Uzonyi + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ +#ifndef STRACE_PIDNS_H +# define STRACE_PIDNS_H + +# ifdef PIDNS_TRANSLATION +# define PIDNS_TEST_INIT pidns_test_init() +# else +# define PIDNS_TEST_INIT +# endif + +# include + +enum pid_type { + PT_TID, + PT_TGID, + PT_PGID, + PT_SID, + + PT_COUNT, + PT_NONE = -1 +}; + +/* Prints leader (process tid) if pidns_test_init was called */ +void pidns_print_leader(void); + +/* + * Returns a static buffer containing the translation string of our PID. + */ +const char *pidns_pid2str(enum pid_type type); + +/** + * Skips the test if NS_* ioctl commands are not supported by the kernel. + */ +void check_ns_ioctl(void); + +/** + * Init pidns testing. + * + * Should be called at the beginning of the test's main function + * + * This function calls fork a couple of times, and returns in the child + * processes. These child processes are in a new PID namespace with different + * PID configurations (group leader, session leader, ...). If any child + * terminates with nonzero exit status the test is failed. Otherwise the test is + * succesful, and the parent process exits with 0. + */ +void pidns_test_init(void); + +#endif \ No newline at end of file diff --git a/tests/pipe.c b/tests/pipe.c index bdfc7565..2f357114 100644 --- a/tests/pipe.c +++ b/tests/pipe.c @@ -2,14 +2,14 @@ * Check decoding of pipe syscall. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_pipe diff --git a/tests/pipe2.c b/tests/pipe2.c index d948a1c6..83a3d4c2 100644 --- a/tests/pipe2.c +++ b/tests/pipe2.c @@ -2,13 +2,14 @@ * Check decoding of pipe2 syscall. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_pipe2 diff --git a/tests/pkey_alloc.c b/tests/pkey_alloc.c index 6a92be40..a76266ca 100644 --- a/tests/pkey_alloc.c +++ b/tests/pkey_alloc.c @@ -2,14 +2,13 @@ * Check decoding of pkey_alloc syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_pkey_alloc diff --git a/tests/pkey_free.c b/tests/pkey_free.c index 7bcb3f9a..b1759e23 100644 --- a/tests/pkey_free.c +++ b/tests/pkey_free.c @@ -2,14 +2,13 @@ * Check decoding of pkey_free syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_pkey_free diff --git a/tests/pkey_mprotect.c b/tests/pkey_mprotect.c index c9c96daa..9a711a0f 100644 --- a/tests/pkey_mprotect.c +++ b/tests/pkey_mprotect.c @@ -2,14 +2,13 @@ * Check decoding of pkey_mprotect syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_pkey_mprotect diff --git a/tests/poll-P.test b/tests/poll-P.test index 8ba2d303..68121614 100755 --- a/tests/poll-P.test +++ b/tests/poll-P.test @@ -2,20 +2,20 @@ # # Check path tracing of poll syscall. # -# Copyright (c) 2018 The strace developers. +# Copyright (c) 2018-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" -run_prog > /dev/null +run_prog > /dev/null 9>>/dev/full run_strace -a16 -vepoll -P /dev/full 9>>/dev/full \ $args > "$EXP" match_diff "$LOG" "$EXP" for abbrev in 0 1 2 3 4 5; do - run_prog "../$NAME" $abbrev > /dev/null + run_prog "../$NAME" $abbrev > /dev/null 9>>/dev/full run_strace -a16 -epoll -s$abbrev -P /dev/full 9>>/dev/full \ $args > "$EXP" match_diff "$LOG" "$EXP" diff --git a/tests/poll.c b/tests/poll.c index c08bee8e..846af5a7 100644 --- a/tests/poll.c +++ b/tests/poll.c @@ -2,13 +2,14 @@ * Check decoding of poll syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_poll diff --git a/tests/ppoll.c b/tests/ppoll.c index e7a4474f..9ada526d 100644 --- a/tests/ppoll.c +++ b/tests/ppoll.c @@ -2,13 +2,14 @@ * Check decoding of ppoll syscall. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_ppoll diff --git a/tests/prctl-arg2-intptr.c b/tests/prctl-arg2-intptr.c index be894270..3a5d9113 100644 --- a/tests/prctl-arg2-intptr.c +++ b/tests/prctl-arg2-intptr.c @@ -4,14 +4,14 @@ * * Copyright (c) 2016 Eugene Syromyatnikov * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_prctl diff --git a/tests/prctl-dumpable.c b/tests/prctl-dumpable.c index 7740d52a..5c196025 100644 --- a/tests/prctl-dumpable.c +++ b/tests/prctl-dumpable.c @@ -3,14 +3,14 @@ * * Copyright (c) 2016 Eugene Syromyatnikov * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #include #if defined __NR_prctl && defined PR_GET_DUMPABLE && defined PR_SET_DUMPABLE \ diff --git a/tests/prctl-name.c b/tests/prctl-name.c index 16d85911..70cdc3e1 100644 --- a/tests/prctl-name.c +++ b/tests/prctl-name.c @@ -3,19 +3,16 @@ * * Copyright (c) 2016 Eugene Syromyatnikov * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include -#ifdef HAVE_PRCTL -# include -#endif - -#if defined HAVE_PRCTL && defined PR_GET_NAME && defined PR_SET_NAME +#if defined PR_GET_NAME && defined PR_SET_NAME # include # include @@ -79,6 +76,6 @@ main(void) #else -SKIP_MAIN_UNDEFINED("HAVE_PRCTL && PR_GET_NAME && PR_SET_NAME") +SKIP_MAIN_UNDEFINED("PR_GET_NAME && PR_SET_NAME") #endif diff --git a/tests/prctl-no-args.c b/tests/prctl-no-args.c index 8ce13d80..8f50ca2f 100644 --- a/tests/prctl-no-args.c +++ b/tests/prctl-no-args.c @@ -1,17 +1,18 @@ /* * Check decoding of prctl operations without arguments and return code parsing: * PR_GET_KEEPCAPS, PR_GET_SECCOMP, PR_GET_TIMERSLACK, PR_GET_TIMING, - * PR_TASK_PERF_EVENTS_DISABLE, and PR_TASK_PERF_EVENTS_ENABLE. + * PR_TASK_PERF_EVENTS_DISABLE, PR_TASK_PERF_EVENTS_ENABLE, and + * PR_GET_TAGGED_ADDR_CTRL. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_prctl @@ -36,6 +37,7 @@ main(void) { 30, "PR_GET_TIMERSLACK" }, { 31, "PR_TASK_PERF_EVENTS_DISABLE" }, { 32, "PR_TASK_PERF_EVENTS_ENABLE" }, + { 56, "PR_GET_TAGGED_ADDR_CTRL" }, }; TAIL_ALLOC_OBJECT_CONST_PTR(unsigned int, ptr); diff --git a/tests/prctl-pdeathsig.c b/tests/prctl-pdeathsig.c index 6ffbbad7..da79fdf0 100644 --- a/tests/prctl-pdeathsig.c +++ b/tests/prctl-pdeathsig.c @@ -3,21 +3,21 @@ * * Copyright (c) 2016 JingPiao Chen * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #include #if defined __NR_prctl && defined PR_GET_PDEATHSIG && defined PR_SET_PDEATHSIG # include # include -# include +# include int main(void) diff --git a/tests/prctl-seccomp-filter-v.c b/tests/prctl-seccomp-filter-v.c index f29cfad6..56bee2fc 100644 --- a/tests/prctl-seccomp-filter-v.c +++ b/tests/prctl-seccomp-filter-v.c @@ -2,7 +2,7 @@ * Check verbose decoding of prctl PR_SET_SECCOMP SECCOMP_MODE_FILTER. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -13,18 +13,14 @@ #include #include #include -#include - -#ifdef HAVE_PRCTL -# include -#endif +#include #ifdef HAVE_LINUX_SECCOMP_H # include #endif #include +#include "scno.h" -#if defined HAVE_PRCTL \ - && defined PR_SET_NO_NEW_PRIVS \ +#if defined PR_SET_NO_NEW_PRIVS \ && defined PR_SET_SECCOMP \ && defined SECCOMP_MODE_FILTER \ && defined SECCOMP_RET_ERRNO \ @@ -43,14 +39,14 @@ BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_KILL) # define PRINT_ALLOW_SYSCALL(nr) \ - printf("BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, %#x, 0, 0x1), " \ + printf("BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, %#lx, 0, 0x1), " \ "BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_ALLOW), ", \ - __NR_ ## nr) + (long) __NR_ ## nr) # define PRINT_DENY_SYSCALL(nr, err) \ - printf("BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, %#x, 0, 0x1), " \ + printf("BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, %#lx, 0, 0x1), " \ "BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_ERRNO|%#x), ", \ - __NR_ ## nr, err) + (long) __NR_ ## nr, err) static const struct sock_filter filter[] = { /* load syscall number */ @@ -117,7 +113,7 @@ main(void) #else -SKIP_MAIN_UNDEFINED("HAVE_PRCTL && PR_SET_NO_NEW_PRIVS && PR_SET_SECCOMP" +SKIP_MAIN_UNDEFINED("PR_SET_NO_NEW_PRIVS && PR_SET_SECCOMP" " && SECCOMP_MODE_FILTER && SECCOMP_RET_ERRNO" " && BPF_JUMP && BPF_STMT") diff --git a/tests/prctl-seccomp-strict.c b/tests/prctl-seccomp-strict.c index 0573126e..353b07ee 100644 --- a/tests/prctl-seccomp-strict.c +++ b/tests/prctl-seccomp-strict.c @@ -1,17 +1,16 @@ /* * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#ifdef HAVE_PRCTL -# include -#endif +#include +#include "scno.h" -#if defined HAVE_PRCTL && defined PR_SET_SECCOMP && defined __NR_exit +#if defined PR_SET_SECCOMP && defined __NR_exit # include # include @@ -36,7 +35,7 @@ main(void) rc = 0; } else { /* - * If kernel implementaton of SECCOMP_MODE_STRICT is buggy, + * If kernel implementation of SECCOMP_MODE_STRICT is buggy, * the following syscall will result to SIGKILL. */ rc = write(1, text1, LENGTH_OF(text1)) != LENGTH_OF(text1); @@ -48,6 +47,6 @@ main(void) #else -SKIP_MAIN_UNDEFINED("HAVE_PRCTL && PR_SET_SECCOMP && __NR_exit") +SKIP_MAIN_UNDEFINED("PR_SET_SECCOMP && __NR_exit") #endif diff --git a/tests/prctl-securebits.c b/tests/prctl-securebits.c index 5b32f5b5..8a9f1365 100644 --- a/tests/prctl-securebits.c +++ b/tests/prctl-securebits.c @@ -3,14 +3,14 @@ * * Copyright (c) 2016 Eugene Syromyatnikov * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #include #if defined __NR_prctl && defined PR_GET_SECUREBITS && defined PR_SET_SECUREBITS diff --git a/tests/prctl-spec-inject.c b/tests/prctl-spec-inject.c index 3fa2df2d..c37c4e71 100644 --- a/tests/prctl-spec-inject.c +++ b/tests/prctl-spec-inject.c @@ -9,7 +9,7 @@ */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_prctl diff --git a/tests/prctl-tid_address.c b/tests/prctl-tid_address.c index 9652f00d..14e5d395 100644 --- a/tests/prctl-tid_address.c +++ b/tests/prctl-tid_address.c @@ -2,14 +2,14 @@ * Check decoding of prctl PR_GET_TID_ADDRESS operation. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #include #if defined __NR_prctl && defined __NR_set_tid_address && \ diff --git a/tests/prctl-tsc.c b/tests/prctl-tsc.c index 0ac27ecd..20f9accd 100644 --- a/tests/prctl-tsc.c +++ b/tests/prctl-tsc.c @@ -3,14 +3,14 @@ * * Copyright (c) 2016 JingPiao Chen * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #include #if defined __NR_prctl && defined PR_GET_TSC && defined PR_SET_TSC diff --git a/tests/preadv.c b/tests/preadv.c index 3d1b504e..fcdac2e5 100644 --- a/tests/preadv.c +++ b/tests/preadv.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2014-2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -74,12 +74,7 @@ main(void) perror_msg_and_fail("preadv"); printf("preadv(0, [], 0, -3) = -1 EINVAL (%m)\n"); - static const char tmp[] = "preadv-tmpfile"; - int fd = open(tmp, O_RDWR | O_CREAT | O_TRUNC, 0600); - if (fd < 0) - perror_msg_and_fail("open"); - if (unlink(tmp)) - perror_msg_and_fail("unlink"); + int fd = create_tmpfile(O_RDWR); static const char w[] = "0123456789abcde"; if (write(fd, w, LENGTH_OF(w)) != LENGTH_OF(w)) diff --git a/tests/preadv2-pwritev2.c b/tests/preadv2-pwritev2.c index 1266562e..d6be10a8 100644 --- a/tests/preadv2-pwritev2.c +++ b/tests/preadv2-pwritev2.c @@ -9,7 +9,6 @@ */ #include "tests.h" -#include #include "scno.h" #if defined __NR_preadv2 && defined __NR_pwritev2 diff --git a/tests/print_ppid_tracerpid.c b/tests/print_ppid_tracerpid.c new file mode 100644 index 00000000..ae55371e --- /dev/null +++ b/tests/print_ppid_tracerpid.c @@ -0,0 +1,42 @@ +/* + * Helper program for strace-D.test + * + * Copyright (c) 2019-2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include +#include +#include + +int +main(void) +{ + static const char status[] = "/proc/self/status"; + FILE *fp = fopen(status, "r"); + if (!fp) + perror_msg_and_fail("fopen: %s", status); + + static const char prefix1[] = "PPid:"; + static const char prefix2[] = "TracerPid:"; + char *line = NULL; + size_t n = 0; + + while (getline(&line, &n, fp) > 0) { + if (strncmp(line, prefix1, sizeof(prefix1) - 1) == 0 || + strncmp(line, prefix2, sizeof(prefix2) - 1) == 0) + fputs(line, stdout); + } + + if (!line) + perror_msg_and_fail("getline"); + + free(line); + fclose(fp); + + return 0; +} diff --git a/tests/printflags.c b/tests/printflags.c index e9d66471..8793dfe0 100644 --- a/tests/printflags.c +++ b/tests/printflags.c @@ -17,21 +17,26 @@ int printflags(const struct xlat *xlat, unsigned long long flags, const char *const dflt) { - if (flags == 0 && xlat->val == 0 && xlat->str) { - fputs(xlat->str, stdout); + if (flags == 0 && xlat->data->val == 0 && xlat->data->str) { + fputs(xlat->data->str, stdout); return 1; } int n; + size_t i = 0; char sep = 0; - for (n = 0; xlat->str; xlat++) { - if (xlat->val && (flags & xlat->val) == xlat->val) { + const struct xlat_data *xd = xlat->data; + for (n = 0; i < xlat->size; xd++, i++) { + if (!xd->str) + continue; + + if (xd->val && (flags & xd->val) == xd->val) { if (sep) putc(sep, stdout); else sep = '|'; - fputs(xlat->str, stdout); - flags &= ~xlat->val; + fputs(xd->str, stdout); + flags &= ~xd->val; n++; } } diff --git a/tests/printpath-umovestr-undumpable.c b/tests/printpath-umovestr-undumpable.c index 216b6cac..6dd36230 100644 --- a/tests/printpath-umovestr-undumpable.c +++ b/tests/printpath-umovestr-undumpable.c @@ -1,19 +1,16 @@ /* * Force legacy printpath/umovestr using PR_SET_DUMPABLE. * - * Copyright (c) 2017-2018 Dmitry V. Levin + * Copyright (c) 2017-2020 Dmitry V. Levin * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include -#ifdef HAVE_PRCTL -# include -#endif - -#if defined HAVE_PRCTL && defined PR_SET_DUMPABLE +#ifdef PR_SET_DUMPABLE # include # include @@ -46,6 +43,6 @@ main(void) #else -SKIP_MAIN_UNDEFINED("HAVE_PRCTL && PR_SET_DUMPABLE") +SKIP_MAIN_UNDEFINED("PR_SET_DUMPABLE") #endif diff --git a/tests/printstrn-umoven-undumpable.c b/tests/printstrn-umoven-undumpable.c index be3f8d4b..d0600a2e 100644 --- a/tests/printstrn-umoven-undumpable.c +++ b/tests/printstrn-umoven-undumpable.c @@ -1,19 +1,16 @@ /* * Force legacy printpath/umovestr using PR_SET_DUMPABLE. * - * Copyright (c) 2017-2018 Dmitry V. Levin + * Copyright (c) 2017-2020 Dmitry V. Levin * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include -#ifdef HAVE_PRCTL -# include -#endif - -#if defined HAVE_PRCTL && defined PR_SET_DUMPABLE +#ifdef PR_SET_DUMPABLE # include # include @@ -46,6 +43,6 @@ main(void) #else -SKIP_MAIN_UNDEFINED("HAVE_PRCTL && PR_SET_DUMPABLE") +SKIP_MAIN_UNDEFINED("PR_SET_DUMPABLE") #endif diff --git a/tests/printxval-Xabbrev.c b/tests/printxval-Xabbrev.c new file mode 100644 index 00000000..902a386e --- /dev/null +++ b/tests/printxval-Xabbrev.c @@ -0,0 +1,2 @@ +#define XLAT_NAME(s_) s_##_abbrev +#include "printxval.c" diff --git a/tests/printxval-Xraw.c b/tests/printxval-Xraw.c new file mode 100644 index 00000000..eb92a713 --- /dev/null +++ b/tests/printxval-Xraw.c @@ -0,0 +1,3 @@ +#define XLAT_RAW 1 +#define XLAT_NAME(s_) s_##_raw +#include "printxval.c" diff --git a/tests/printxval-Xverbose.c b/tests/printxval-Xverbose.c new file mode 100644 index 00000000..f97529ed --- /dev/null +++ b/tests/printxval-Xverbose.c @@ -0,0 +1,3 @@ +#define XLAT_VERBOSE 1 +#define XLAT_NAME(s_) s_##_verbose +#include "printxval.c" diff --git a/tests/printxval.c b/tests/printxval.c index 0cd629e4..19714570 100644 --- a/tests/printxval.c +++ b/tests/printxval.c @@ -4,6 +4,7 @@ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey * Copyright (c) 1996-1999 Wichert Akkerman * Copyright (c) 2005-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -13,19 +14,87 @@ #include "xlat.h" #include -int -printxval(const struct xlat *xlat, unsigned long long val, - const char *const dflt) +#if !XLAT_RAW +static const char * +lookup_xlat(const struct xlat *xlat, unsigned long long val) { - for (; xlat->str; xlat++) { - if (xlat->val == val) { - fputs(xlat->str, stdout); - return 1; + const struct xlat_data *xd = xlat->data; + + for (size_t i = 0; i < xlat->size; i++, xd++) { + if (!xd->str) + continue; + + if (xd->val == val) { + return xd->str; } } + return NULL; +} +#endif + +int +XLAT_NAME(printxval)(const struct xlat *xlat, unsigned long long val, + const char *const dflt) +{ +#if XLAT_RAW printf("%#llx", val); + + return 1; +#else + const char *str = lookup_xlat(xlat, val); + +# if XLAT_VERBOSE + printf("%#llx", val); + if (str || dflt) + printf(" /* %s */", str ?: dflt); +# else + if (str) { + fputs(str, stdout); + } else { + printf("%#llx", val); + if (dflt) + printf(" /* %s */", dflt); + } +# endif /* XLAT_VERBOSE */ + + return !!str; +#endif /* XLAT_RAW */ +} + +const char * +XLAT_NAME(sprintxlat)(const char *str, unsigned long long val, + const char *const dflt) +{ + static char buf[256]; + +#if XLAT_RAW + snprintf(buf, sizeof(buf), "%#llx", val); +#elif XLAT_VERBOSE + if (str || dflt) + snprintf(buf, sizeof(buf), "%#llx /* %s */", val, str ?: dflt); + else + snprintf(buf, sizeof(buf), "%#llx", val); +#else + if (str) + return str; + if (dflt) - printf(" /* %s */", dflt); - return 0; + snprintf(buf, sizeof(buf), "%#llx /* %s */", val, dflt); + else + snprintf(buf, sizeof(buf), "%#llx", val); +#endif + + return buf; +} + +const char * +XLAT_NAME(sprintxval)(const struct xlat *xlat, unsigned long long val, + const char *const dflt) +{ +#if XLAT_RAW + return sprintxlat(NULL, val, dflt); +#else + return sprintxlat(lookup_xlat(xlat, val), val, dflt); +#endif } diff --git a/tests/prlimit64--pidns-translation.c b/tests/prlimit64--pidns-translation.c new file mode 100644 index 00000000..3972de66 --- /dev/null +++ b/tests/prlimit64--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "prlimit64.c" diff --git a/tests/prlimit64--pidns-translation.gen.test b/tests/prlimit64--pidns-translation.gen.test new file mode 100755 index 00000000..221f3c01 --- /dev/null +++ b/tests/prlimit64--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (prlimit64--pidns-translation test_pidns -e trace=prlimit64); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -e trace=prlimit64 diff --git a/tests/prlimit64.c b/tests/prlimit64.c index 688ca75f..eb2e9631 100644 --- a/tests/prlimit64.c +++ b/tests/prlimit64.c @@ -2,13 +2,14 @@ * Check decoding of prlimit64 syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_prlimit64 @@ -18,6 +19,7 @@ # include # include +# include "pidns.h" # include "xlat.h" # include "xlat/resources.h" @@ -41,26 +43,38 @@ sprint_rlim(uint64_t lim) int main(void) { + PIDNS_TEST_INIT; + unsigned long pid = (unsigned long) 0xdefaced00000000ULL | (unsigned) getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); uint64_t *const rlimit = tail_alloc(sizeof(*rlimit) * 2); - const struct xlat *xlat; + const struct xlat_data *xlat; + size_t i = 0; + + for (xlat = resources->data; i < resources->size; ++xlat, ++i) { + if (!xlat->str) + continue; - for (xlat = resources; xlat->str; ++xlat) { unsigned long res = 0xfacefeed00000000ULL | xlat->val; long rc = syscall(__NR_prlimit64, pid, res, 0, rlimit); + pidns_print_leader(); if (rc) - printf("prlimit64(%d, %s, NULL, %p) = %ld %s (%m)\n", - (unsigned) pid, xlat->str, rlimit, + printf("prlimit64(%d%s, %s, NULL, %p) =" + " %ld %s (%m)\n", + (unsigned) pid, pid_str, + xlat->str, rlimit, rc, errno2name()); else - printf("prlimit64(%d, %s, NULL" + printf("prlimit64(%d%s, %s, NULL" ", {rlim_cur=%s, rlim_max=%s}) = 0\n", - (unsigned) pid, xlat->str, + (unsigned) pid, pid_str, + xlat->str, sprint_rlim(rlimit[0]), sprint_rlim(rlimit[1])); } + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests/process_vm_readv--pidns-translation.c b/tests/process_vm_readv--pidns-translation.c new file mode 100644 index 00000000..0db29ca2 --- /dev/null +++ b/tests/process_vm_readv--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "process_vm_readv.c" diff --git a/tests/process_vm_readv--pidns-translation.gen.test b/tests/process_vm_readv--pidns-translation.gen.test new file mode 100755 index 00000000..f8fc9441 --- /dev/null +++ b/tests/process_vm_readv--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (process_vm_readv--pidns-translation test_pidns -s5 -a37 -e trace=process_vm_readv); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -s5 -a37 -e trace=process_vm_readv diff --git a/tests/process_vm_readv.c b/tests/process_vm_readv.c index 422000b8..b69551d0 100644 --- a/tests/process_vm_readv.c +++ b/tests/process_vm_readv.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -7,7 +7,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_process_vm_readv diff --git a/tests/process_vm_readv_writev.c b/tests/process_vm_readv_writev.c index 9309135a..343bd362 100644 --- a/tests/process_vm_readv_writev.c +++ b/tests/process_vm_readv_writev.c @@ -2,7 +2,7 @@ * Check decoding of process_vm_readv/process_vm_writev syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,6 +12,7 @@ #include #include #include +#include "pidns.h" #if OP_WR # define in_iovec rmt_iovec @@ -121,7 +122,7 @@ print_iov(const struct iovec *iov, const void *arg_ptr, long rc) } static void -do_call(kernel_ulong_t pid, +do_call(kernel_ulong_t pid, enum pid_type pid_type, kernel_ulong_t local_iov, const char *local_arg, kernel_ulong_t liovcnt, kernel_ulong_t remote_iov, const char *remote_arg, @@ -135,7 +136,8 @@ do_call(kernel_ulong_t pid, flags); errstr = sprintrc(rc); - printf("%s(%d, ", OP_STR, (int) pid); + pidns_print_leader(); + printf("%s(%d%s, ", OP_STR, (int) pid, pidns_pid2str(pid_type)); if (pr_iov) pr_iov((const struct iovec *) (uintptr_t) local_iov, local_arg, @@ -164,6 +166,8 @@ ptr_cast(void *ptr) int main(void) { + PIDNS_TEST_INIT; + enum { SIZE_11 = 2, SIZE_12 = 3, @@ -243,18 +247,18 @@ main(void) fill_memory_ex(data2_out, SIZE_2, SEGM2_BASE, SIZE_2); - do_call(bogus_pid, (kernel_ulong_t) (uintptr_t) ARG_STR(NULL), + do_call(bogus_pid, PT_NONE, (kernel_ulong_t) (uintptr_t) ARG_STR(NULL), bogus_iovcnt1, (kernel_ulong_t) (uintptr_t) ARG_STR(NULL), bogus_iovcnt2, bogus_flags, NULL); - do_call(my_pid, ptr_cast(bogus_iov + ARRAY_SIZE(bogus_iovec)), + do_call(my_pid, PT_TGID, ptr_cast(bogus_iov + ARRAY_SIZE(bogus_iovec)), "[]", 0, ptr_cast(in_iov + ARRAY_SIZE(in_iovec)), "[]", 0, 0, NULL); - do_call(my_pid, ptr_cast(bogus_iov + ARRAY_SIZE(bogus_iovec)), NULL, - bogus_iovcnt1, ptr_cast(in_iov + ARRAY_SIZE(in_iovec)), NULL, - bogus_iovcnt2, 0, print_iov); + do_call(my_pid, PT_TGID, ptr_cast(bogus_iov + ARRAY_SIZE(bogus_iovec)), + NULL, bogus_iovcnt1, ptr_cast(in_iov + ARRAY_SIZE(in_iovec)), + NULL, bogus_iovcnt2, 0, print_iov); - do_call(my_pid, ptr_cast(bogus_iov), (char *) &bogus_arg, + do_call(my_pid, PT_TGID, ptr_cast(bogus_iov), (char *) &bogus_arg, ARRAY_SIZE(bogus_iovec), ptr_cast(rmt_iov + 2), (char *) &rmt_arg_cut, ARRAY_SIZE(rmt_iovec) - 2, 0, print_iov); @@ -263,7 +267,7 @@ main(void) lcl_arg_cut.check_rc = 1; #endif - do_call(my_pid, ptr_cast(lcl_iov + 2), (char *) &lcl_arg_cut, + do_call(my_pid, PT_TGID, ptr_cast(lcl_iov + 2), (char *) &lcl_arg_cut, ARRAY_SIZE(lcl_iovec) - 1, ptr_cast(bogus_iov + 2), (char *) &bogus_arg_cut, ARRAY_SIZE(bogus_iovec) - 1, 0, print_iov); @@ -273,15 +277,16 @@ main(void) rmt_arg_cut.addr_term = 1; rmt_arg_cut.count = 5; - do_call(my_pid, ptr_cast(lcl_iov + 2), (char *) &lcl_arg_cut, + do_call(my_pid, PT_TGID, ptr_cast(lcl_iov + 2), (char *) &lcl_arg_cut, ARRAY_SIZE(lcl_iovec) - 2, ptr_cast(rmt_iov + 1), (char *) &rmt_arg_cut, ARRAY_SIZE(rmt_iovec), 0, print_iov); /* Correct call */ - do_call(my_pid, ptr_cast(lcl_iov), (char *) &lcl_arg, + do_call(my_pid, PT_TGID, ptr_cast(lcl_iov), (char *) &lcl_arg, ARRAY_SIZE(lcl_iovec), ptr_cast(rmt_iov), (char *) &rmt_arg, ARRAY_SIZE(rmt_iovec), 0, print_iov); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; diff --git a/tests/process_vm_writev--pidns-translation.c b/tests/process_vm_writev--pidns-translation.c new file mode 100644 index 00000000..9ba6a39b --- /dev/null +++ b/tests/process_vm_writev--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "process_vm_writev.c" diff --git a/tests/process_vm_writev--pidns-translation.gen.test b/tests/process_vm_writev--pidns-translation.gen.test new file mode 100755 index 00000000..79d705c2 --- /dev/null +++ b/tests/process_vm_writev--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (process_vm_writev--pidns-translation test_pidns -s5 -a38 -e trace=process_vm_writev); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -s5 -a38 -e trace=process_vm_writev diff --git a/tests/process_vm_writev.c b/tests/process_vm_writev.c index 848a9e91..e7476b79 100644 --- a/tests/process_vm_writev.c +++ b/tests/process_vm_writev.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -7,7 +7,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_process_vm_writev diff --git a/tests/pselect6.c b/tests/pselect6.c index c8122e27..5660df2b 100644 --- a/tests/pselect6.c +++ b/tests/pselect6.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -16,7 +16,7 @@ #include #include #include -#include +#include "scno.h" #include #ifdef __NR_pselect6 diff --git a/tests/ptrace.c b/tests/ptrace.c index 63435a76..38e7037a 100644 --- a/tests/ptrace.c +++ b/tests/ptrace.c @@ -2,14 +2,14 @@ * Check decoding of ptrace syscall. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #include #include "ptrace.h" @@ -127,16 +127,16 @@ test_peeksiginfo(unsigned long pid, const unsigned long bad_request) printf("ptrace(PTRACE_PEEKSIGINFO, %u" ", {off=%llu, flags=0, nr=%u}" ", [{si_signo=SIGUSR1, si_code=SI_TKILL" - ", si_pid=%u, si_uid=%u}" + ", si_pid=%d, si_uid=%d}" ", {si_signo=SIGUSR2, si_code=SI_TKILL" - ", si_pid=%u, si_uid=%u}" + ", si_pid=%d, si_uid=%d}" ", {si_signo=SIGALRM, si_code=SI_TKILL" - ", si_pid=%u, si_uid=%u}" + ", si_pid=%d, si_uid=%d}" "]) = %s\n", (unsigned) pid, psi->off, psi->nr, - (unsigned) pid, (unsigned) uid, - (unsigned) pid, (unsigned) uid, - (unsigned) pid, (unsigned) uid, + (int) pid, (int) uid, + (int) pid, (int) uid, + (int) pid, (int) uid, errstr); } @@ -307,7 +307,7 @@ main(void) do_ptrace(PTRACE_SETSIGINFO, pid, bad_request, (unsigned long) sip); printf("ptrace(PTRACE_SETSIGINFO, %u, %#lx, {si_signo=SIGBUS" - ", si_code=BUS_ADRALN, si_errno=%d, si_addr=%p}) = %s\n", + ", si_code=BUS_ADRALN, si_errno=%u, si_addr=%p}) = %s\n", (unsigned) pid, bad_request, sip->si_errno, sip->si_addr, errstr); @@ -321,7 +321,7 @@ main(void) do_ptrace(PTRACE_SETSIGINFO, pid, bad_request, (unsigned long) sip); printf("ptrace(PTRACE_SETSIGINFO, %u, %#lx, {si_signo=SIGPROF" - ", si_code=%#x, si_errno=%d, si_pid=0, si_uid=3}) = %s\n", + ", si_code=%#x, si_errno=%u, si_pid=0, si_uid=3}) = %s\n", (unsigned) pid, bad_request, sip->si_code, sip->si_errno, errstr); @@ -349,7 +349,7 @@ main(void) do_ptrace(PTRACE_SETSIGINFO, pid, bad_request, (unsigned long) sip); printf("ptrace(PTRACE_SETSIGINFO, %u, %#lx, {si_signo=SIGSYS" - ", si_code=SYS_SECCOMP, si_errno=%d, si_call_addr=NULL" + ", si_code=SYS_SECCOMP, si_errno=%u, si_call_addr=NULL" ", si_syscall=__NR_read, si_arch=%#x /* AUDIT_ARCH_??? */})" " = %s\n", (unsigned) pid, bad_request, sip->si_errno, sip->si_arch, diff --git a/tests/ptrace_syscall_info.c b/tests/ptrace_syscall_info.c index ea29d22e..cb630adb 100644 --- a/tests/ptrace_syscall_info.c +++ b/tests/ptrace_syscall_info.c @@ -2,6 +2,7 @@ * Check decoding of ptrace PTRACE_GET_SYSCALL_INFO request. * * Copyright (c) 2018 Dmitry V. Levin + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +11,6 @@ #include "tests.h" #include "ptrace.h" -#include #include "scno.h" #include @@ -23,6 +23,10 @@ #include #include "xlat.h" +#define XLAT_MACROS_ONLY +/* For xlat/audit_arch.h */ +# include "xlat/elf_em.h" +#undef XLAT_MACROS_ONLY #include "xlat/audit_arch.h" static const char *errstr; @@ -94,11 +98,11 @@ static const unsigned long args[][7] = { }; static const unsigned int expected_none_size = - offsetof(struct ptrace_syscall_info, entry); + offsetof(struct_ptrace_syscall_info, entry); static const unsigned int expected_entry_size = - offsetofend(struct ptrace_syscall_info, entry.args); + offsetofend(struct_ptrace_syscall_info, entry.args); static const unsigned int expected_exit_size = - offsetofend(struct ptrace_syscall_info, exit.is_error); + offsetofend(struct_ptrace_syscall_info, exit.is_error); static unsigned long end_of_page; static unsigned int ptrace_stop; @@ -115,7 +119,7 @@ test_none(void) pid, end_of_page, errstr); for (unsigned int size = 0; - size <= sizeof(struct ptrace_syscall_info); ++size) { + size <= sizeof(struct_ptrace_syscall_info); ++size) { unsigned long buf = end_of_page - size; memset((void *) buf, -1, size); @@ -137,21 +141,21 @@ test_none(void) } /* copy to a local structure to avoid unaligned access */ - struct ptrace_syscall_info info; + struct_ptrace_syscall_info info; memcpy(&info, (void *) buf, MIN(size, expected_none_size)); if (info.op != PTRACE_SYSCALL_INFO_NONE) FAIL("signal stop mismatch"); printf("{op=PTRACE_SYSCALL_INFO_NONE"); - if (size < offsetofend(struct ptrace_syscall_info, arch)) + if (size < offsetofend(struct_ptrace_syscall_info, arch)) goto printed_none; if (!info.arch) FAIL("signal stop mismatch"); printf(", arch="); printxval(audit_arch, info.arch, "AUDIT_ARCH_???"); - if (size < offsetofend(struct ptrace_syscall_info, + if (size < offsetofend(struct_ptrace_syscall_info, instruction_pointer)) goto printed_none; if (!info.instruction_pointer) @@ -159,7 +163,7 @@ test_none(void) printf(", instruction_pointer=%#llx", (unsigned long long) info.instruction_pointer); - if (size < offsetofend(struct ptrace_syscall_info, + if (size < offsetofend(struct_ptrace_syscall_info, stack_pointer)) goto printed_none; if (!info.stack_pointer) @@ -178,7 +182,7 @@ static void test_entry(void) { for (unsigned int size = 0; - size <= sizeof(struct ptrace_syscall_info); ++size) { + size <= sizeof(struct_ptrace_syscall_info); ++size) { unsigned long buf = end_of_page - size; memset((void *) buf, -1, size); @@ -197,21 +201,21 @@ test_entry(void) } /* copy to a local structure to avoid unaligned access */ - struct ptrace_syscall_info info; + struct_ptrace_syscall_info info; memcpy(&info, (void *) buf, MIN(size, expected_entry_size)); if (info.op != PTRACE_SYSCALL_INFO_ENTRY) FAIL("#%d: entry stop mismatch", ptrace_stop); printf("{op=PTRACE_SYSCALL_INFO_ENTRY"); - if (size < offsetofend(struct ptrace_syscall_info, arch)) + if (size < offsetofend(struct_ptrace_syscall_info, arch)) goto printed_entry_common; if (!info.arch) FAIL("#%d: entry stop mismatch", ptrace_stop); printf(", arch="); printxval(audit_arch, info.arch, "AUDIT_ARCH_???"); - if (size < offsetofend(struct ptrace_syscall_info, + if (size < offsetofend(struct_ptrace_syscall_info, instruction_pointer)) goto printed_entry_common; if (!info.instruction_pointer) @@ -219,7 +223,7 @@ test_entry(void) printf(", instruction_pointer=%#llx", (unsigned long long) info.instruction_pointer); - if (size < offsetofend(struct ptrace_syscall_info, + if (size < offsetofend(struct_ptrace_syscall_info, stack_pointer)) goto printed_entry_common; if (!info.stack_pointer) @@ -227,7 +231,7 @@ test_entry(void) printf(", stack_pointer=%#llx", (unsigned long long) info.stack_pointer); - if (size < offsetofend(struct ptrace_syscall_info, entry.nr)) + if (size < offsetofend(struct_ptrace_syscall_info, entry.nr)) goto printed_entry_common; const unsigned long *exp_args = args[ptrace_stop / 2]; if (info.entry.nr != exp_args[0]) @@ -236,14 +240,19 @@ test_entry(void) for (unsigned int i = 0; i < ARRAY_SIZE(info.entry.args); ++i) { const unsigned int i_size = - offsetofend(struct ptrace_syscall_info, + offsetofend(struct_ptrace_syscall_info, entry.args[i]); if (size < i_size) { if (i) break; goto printed_entry_nr; } - if (info.entry.args[i] != exp_args[i + 1]) +#if SIZEOF_KERNEL_LONG_T > SIZEOF_LONG +# define CAST (unsigned long) +#else +# define CAST +#endif + if (CAST info.entry.args[i] != exp_args[i + 1]) FAIL("#%d: entry stop mismatch", ptrace_stop); printf("%s%#llx", (i ? ", " : ", arg=["), (unsigned long long) info.entry.args[i]); @@ -262,7 +271,7 @@ static void test_exit(void) { for (unsigned int size = 0; - size <= sizeof(struct ptrace_syscall_info); ++size) { + size <= sizeof(struct_ptrace_syscall_info); ++size) { unsigned long buf = end_of_page - size; memset((void *) buf, -1, size); @@ -281,21 +290,21 @@ test_exit(void) } /* copy to a local structure to avoid unaligned access */ - struct ptrace_syscall_info info; + struct_ptrace_syscall_info info; memcpy(&info, (void *) buf, MIN(size, expected_exit_size)); if (info.op != PTRACE_SYSCALL_INFO_EXIT) FAIL("#%d: exit stop mismatch", ptrace_stop); printf("{op=PTRACE_SYSCALL_INFO_EXIT"); - if (size < offsetofend(struct ptrace_syscall_info, arch)) + if (size < offsetofend(struct_ptrace_syscall_info, arch)) goto printed_exit_common; if (!info.arch) FAIL("#%d: exit stop mismatch", ptrace_stop); printf(", arch="); printxval(audit_arch, info.arch, "AUDIT_ARCH_???"); - if (size < offsetofend(struct ptrace_syscall_info, + if (size < offsetofend(struct_ptrace_syscall_info, instruction_pointer)) goto printed_exit_common; if (!info.instruction_pointer) @@ -303,7 +312,7 @@ test_exit(void) printf(", instruction_pointer=%#llx", (unsigned long long) info.instruction_pointer); - if (size < offsetofend(struct ptrace_syscall_info, + if (size < offsetofend(struct_ptrace_syscall_info, stack_pointer)) goto printed_exit_common; if (!info.stack_pointer) @@ -320,7 +329,7 @@ test_exit(void) { 0, pid, NULL } /* gettid */ }, *exp_param = &exit_param[ptrace_stop / 2 - 1]; - if (size < offsetofend(struct ptrace_syscall_info, exit.rval)) + if (size < offsetofend(struct_ptrace_syscall_info, exit.rval)) goto printed_exit_common; if (info.exit.rval != exp_param->rval) FAIL("#%d: exit stop mismatch", ptrace_stop); diff --git a/tests/pure_executables.am b/tests/pure_executables.am index cc844502..e2773a5c 100644 --- a/tests/pure_executables.am +++ b/tests/pure_executables.am @@ -11,10 +11,6 @@ PURE_EXECUTABLES = \ aio_pgetevents \ alarm \ bpf \ - bpf-obj_get_info_by_fd \ - bpf-obj_get_info_by_fd-prog \ - bpf-obj_get_info_by_fd-prog-v \ - bpf-obj_get_info_by_fd-v \ bpf-v \ brk \ btrfs \ @@ -26,13 +22,34 @@ PURE_EXECUTABLES = \ clock_adjtime \ clock_nanosleep \ clock_xettime \ + clone-flags \ + clone3 \ + clone3-Xabbrev \ + clone3-Xraw \ + clone3-Xverbose \ + close_range \ + close_range-P \ + close_range-y \ + close_range-yy \ copy_file_range \ creat \ delete_module \ + dev--decode-fds-dev \ + dev--decode-fds-path \ + dev--decode-fds-socket \ dev-yy \ dup \ + dup-P \ + dup-y \ + dup-yy \ dup2 \ + dup2-P \ + dup2-y \ + dup2-yy \ dup3 \ + dup3-P \ + dup3-y \ + dup3-yy \ epoll_create \ epoll_create1 \ epoll_ctl \ @@ -43,6 +60,13 @@ PURE_EXECUTABLES = \ execve \ execveat \ faccessat \ + faccessat-P \ + faccessat-y \ + faccessat-yy \ + faccessat2 \ + faccessat2-P \ + faccessat2-y \ + faccessat2-yy \ fadvise64 \ fadvise64_64 \ fallocate \ @@ -65,6 +89,12 @@ PURE_EXECUTABLES = \ file_ioctl \ finit_module \ flock \ + fsconfig \ + fsconfig-P \ + fsmount \ + fsopen \ + fspick \ + fspick-P \ fstat \ fstat-Xabbrev \ fstat-Xraw \ @@ -85,7 +115,9 @@ PURE_EXECUTABLES = \ getcpu \ getcwd \ getdents \ + getdents-v \ getdents64 \ + getdents64-v \ getegid \ getegid32 \ geteuid \ @@ -109,12 +141,17 @@ PURE_EXECUTABLES = \ getsockname \ getuid \ getuid32 \ - getxxid \ + getxgid \ + getxpid \ + getxuid \ group_req \ inet-cmsg \ init_module \ inotify \ + inotify_init \ + inotify_init-y \ inotify_init1 \ + inotify_init1-y \ io_uring_enter \ io_uring_register \ io_uring_setup \ @@ -122,6 +159,21 @@ PURE_EXECUTABLES = \ ioctl_block \ ioctl_dm \ ioctl_evdev \ + ioctl_evdev-Xabbrev \ + ioctl_evdev-Xraw \ + ioctl_evdev-Xverbose \ + ioctl_evdev-v \ + ioctl_evdev-v-Xabbrev \ + ioctl_evdev-v-Xraw \ + ioctl_evdev-v-Xverbose \ + ioctl_hdio \ + ioctl_hdio-Xabbrev \ + ioctl_hdio-Xraw \ + ioctl_hdio-Xverbose \ + ioctl_hdio-v \ + ioctl_hdio-v-Xabbrev \ + ioctl_hdio-v-Xraw \ + ioctl_hdio-v-Xverbose \ ioctl_inotify \ ioctl_kvm_run \ ioctl_kvm_run-v \ @@ -137,8 +189,17 @@ PURE_EXECUTABLES = \ ioctl_sg_io_v3 \ ioctl_sg_io_v4 \ ioctl_sock_gifconf \ + ioctl_tee \ ioctl_uffdio \ ioctl_v4l2 \ + ioctl_v4l2-Xabbrev \ + ioctl_v4l2-Xraw \ + ioctl_v4l2-Xverbose \ + ioctl_v4l2-v \ + ioctl_v4l2-v-Xabbrev \ + ioctl_v4l2-v-Xraw \ + ioctl_v4l2-v-Xverbose \ + ioctl_watchdog \ ioperm \ iopl \ ioprio \ @@ -187,7 +248,12 @@ PURE_EXECUTABLES = \ lstat \ lstat64 \ madvise \ + maybe_switch_current_tcp \ + maybe_switch_current_tcp--quiet-thread-execve \ mbind \ + mbind-Xabbrev \ + mbind-Xraw \ + mbind-Xverbose \ membarrier \ memfd_create \ memfd_create-Xabbrev \ @@ -217,6 +283,8 @@ PURE_EXECUTABLES = \ mount-Xabbrev \ mount-Xraw \ mount-Xverbose \ + move_mount \ + move_mount-P \ move_pages \ move_pages-Xabbrev \ move_pages-Xraw \ @@ -229,6 +297,10 @@ PURE_EXECUTABLES = \ msg_name \ munlockall \ nanosleep \ + net--decode-fds-dev-netlink \ + net--decode-fds-none-netlink \ + net--decode-fds-path-netlink \ + net--decode-fds-socket-netlink \ net-icmp_filter \ net-packet_mreq \ net-packet_mreq-Xabbrev \ @@ -308,7 +380,19 @@ PURE_EXECUTABLES = \ oldselect-efault \ oldstat \ open \ + open_tree \ + open_tree-P \ openat \ + openat2 \ + openat2-Xabbrev \ + openat2-Xraw \ + openat2-Xverbose \ + openat2-v \ + openat2-v-y \ + openat2-v-y-Xabbrev \ + openat2-v-y-Xraw \ + openat2-v-y-Xverbose \ + openat2-y \ osf_utimes \ pause \ perf_event_open \ @@ -316,6 +400,16 @@ PURE_EXECUTABLES = \ personality-Xabbrev \ personality-Xraw \ personality-Xverbose \ + pidfd_getfd \ + pidfd_getfd-y \ + pidfd_getfd-yy \ + pidfd_open \ + pidfd_open--decode-fd-path \ + pidfd_open--decode-fd-pidfd \ + pidfd_open--decode-fd-socket \ + pidfd_open-P \ + pidfd_open-y \ + pidfd_open-yy \ pidfd_send_signal \ pipe \ pipe2 \ @@ -323,9 +417,7 @@ PURE_EXECUTABLES = \ pkey_free \ pkey_mprotect \ poll \ - poll-P \ ppoll \ - ppoll-P \ prctl-arg2-intptr \ prctl-dumpable \ prctl-name \ @@ -367,7 +459,9 @@ PURE_EXECUTABLES = \ readlinkat \ readv \ reboot \ + recv-MSG_TRUNC \ recvfrom \ + recvfrom-MSG_TRUNC \ recvmmsg-timeout \ recvmsg \ remap_file_pages \ @@ -405,9 +499,14 @@ PURE_EXECUTABLES = \ seccomp_get_action_avail \ select \ semop \ + semop-indirect \ + semtimedop \ sendfile \ sendfile64 \ set_mempolicy \ + set_mempolicy-Xabbrev \ + set_mempolicy-Xraw \ + set_mempolicy-Xverbose \ setdomainname \ setfsgid \ setfsgid32 \ @@ -465,7 +564,23 @@ PURE_EXECUTABLES = \ stat64 \ statfs \ statfs64 \ + status-all \ + status-failed \ + status-failed-long \ + status-failed-status \ + status-none \ + status-none-f \ + status-successful \ + status-successful-long \ + status-successful-status \ + status-unfinished \ statx \ + strace--strings-in-hex \ + strace--strings-in-hex-all \ + strace--strings-in-hex-non-ascii \ + strace-n \ + strace-x \ + strace-xx \ swap \ sxetmask \ symlink \ @@ -476,12 +591,14 @@ PURE_EXECUTABLES = \ sysinfo \ syslog \ tee \ + tgkill \ time \ timer_create \ timer_xettime \ timerfd_xettime \ times \ times-fail \ + tkill \ truncate \ truncate64 \ ugetrlimit \ @@ -494,6 +611,8 @@ PURE_EXECUTABLES = \ umovestr-illptr \ umovestr2 \ umovestr3 \ + umovestr_cached \ + umovestr_cached_adjacent \ uname \ unlink \ unlinkat \ diff --git a/tests/pure_executables.list b/tests/pure_executables.list index 37225209..7d0f8495 100755 --- a/tests/pure_executables.list +++ b/tests/pure_executables.list @@ -1,6 +1,6 @@ # Executables without side effects. # -# Copyright (c) 2017-2019 The strace developers. +# Copyright (c) 2017-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -16,10 +16,6 @@ aio aio_pgetevents alarm bpf -bpf-obj_get_info_by_fd -bpf-obj_get_info_by_fd-prog -bpf-obj_get_info_by_fd-prog-v -bpf-obj_get_info_by_fd-v bpf-v brk btrfs @@ -31,13 +27,34 @@ chroot clock_adjtime clock_nanosleep clock_xettime +clone-flags +clone3 +clone3-Xabbrev +clone3-Xraw +clone3-Xverbose +close_range +close_range-P +close_range-y +close_range-yy copy_file_range creat delete_module +dev--decode-fds-dev +dev--decode-fds-path +dev--decode-fds-socket dev-yy dup +dup-P +dup-y +dup-yy dup2 +dup2-P +dup2-y +dup2-yy dup3 +dup3-P +dup3-y +dup3-yy epoll_create epoll_create1 epoll_ctl @@ -48,6 +65,13 @@ eventfd execve execveat faccessat +faccessat-P +faccessat-y +faccessat-yy +faccessat2 +faccessat2-P +faccessat2-y +faccessat2-yy fadvise64 fadvise64_64 fallocate @@ -70,6 +94,12 @@ file_handle file_ioctl finit_module flock +fsconfig +fsconfig-P +fsmount +fsopen +fspick +fspick-P fstat fstat-Xabbrev fstat-Xraw @@ -90,7 +120,9 @@ get_mempolicy getcpu getcwd getdents +getdents-v getdents64 +getdents64-v getegid getegid32 geteuid @@ -114,12 +146,17 @@ getsid getsockname getuid getuid32 -getxxid +getxgid +getxpid +getxuid group_req inet-cmsg init_module inotify +inotify_init +inotify_init-y inotify_init1 +inotify_init1-y io_uring_enter io_uring_register io_uring_setup @@ -127,6 +164,21 @@ ioctl ioctl_block ioctl_dm ioctl_evdev +ioctl_evdev-Xabbrev +ioctl_evdev-Xraw +ioctl_evdev-Xverbose +ioctl_evdev-v +ioctl_evdev-v-Xabbrev +ioctl_evdev-v-Xraw +ioctl_evdev-v-Xverbose +ioctl_hdio +ioctl_hdio-Xabbrev +ioctl_hdio-Xraw +ioctl_hdio-Xverbose +ioctl_hdio-v +ioctl_hdio-v-Xabbrev +ioctl_hdio-v-Xraw +ioctl_hdio-v-Xverbose ioctl_inotify ioctl_kvm_run ioctl_kvm_run-v @@ -142,8 +194,17 @@ ioctl_scsi ioctl_sg_io_v3 ioctl_sg_io_v4 ioctl_sock_gifconf +ioctl_tee ioctl_uffdio ioctl_v4l2 +ioctl_v4l2-Xabbrev +ioctl_v4l2-Xraw +ioctl_v4l2-Xverbose +ioctl_v4l2-v +ioctl_v4l2-v-Xabbrev +ioctl_v4l2-v-Xraw +ioctl_v4l2-v-Xverbose +ioctl_watchdog ioperm iopl ioprio @@ -192,7 +253,12 @@ lseek lstat lstat64 madvise +maybe_switch_current_tcp +maybe_switch_current_tcp--quiet-thread-execve mbind +mbind-Xabbrev +mbind-Xraw +mbind-Xverbose membarrier memfd_create memfd_create-Xabbrev @@ -222,6 +288,8 @@ mount mount-Xabbrev mount-Xraw mount-Xverbose +move_mount +move_mount-P move_pages move_pages-Xabbrev move_pages-Xraw @@ -234,6 +302,10 @@ msg_control msg_name munlockall nanosleep +net--decode-fds-dev-netlink +net--decode-fds-none-netlink +net--decode-fds-path-netlink +net--decode-fds-socket-netlink net-icmp_filter net-packet_mreq net-packet_mreq-Xabbrev @@ -313,7 +385,19 @@ oldselect oldselect-efault oldstat open +open_tree +open_tree-P openat +openat2 +openat2-Xabbrev +openat2-Xraw +openat2-Xverbose +openat2-v +openat2-v-y +openat2-v-y-Xabbrev +openat2-v-y-Xraw +openat2-v-y-Xverbose +openat2-y osf_utimes pause perf_event_open @@ -321,6 +405,16 @@ personality personality-Xabbrev personality-Xraw personality-Xverbose +pidfd_getfd +pidfd_getfd-y +pidfd_getfd-yy +pidfd_open +pidfd_open--decode-fd-path +pidfd_open--decode-fd-pidfd +pidfd_open--decode-fd-socket +pidfd_open-P +pidfd_open-y +pidfd_open-yy pidfd_send_signal pipe pipe2 @@ -328,9 +422,7 @@ pkey_alloc pkey_free pkey_mprotect poll -poll-P ppoll -ppoll-P prctl-arg2-intptr prctl-dumpable prctl-name @@ -372,7 +464,9 @@ readlink readlinkat readv reboot +recv-MSG_TRUNC recvfrom +recvfrom-MSG_TRUNC recvmmsg-timeout recvmsg remap_file_pages @@ -410,9 +504,14 @@ seccomp-filter seccomp_get_action_avail select semop +semop-indirect +semtimedop sendfile sendfile64 set_mempolicy +set_mempolicy-Xabbrev +set_mempolicy-Xraw +set_mempolicy-Xverbose setdomainname setfsgid setfsgid32 @@ -470,7 +569,23 @@ stat stat64 statfs statfs64 +status-all +status-failed +status-failed-long +status-failed-status +status-none +status-none-f +status-successful +status-successful-long +status-successful-status +status-unfinished statx +strace--strings-in-hex +strace--strings-in-hex-all +strace--strings-in-hex-non-ascii +strace-n +strace-x +strace-xx swap sxetmask symlink @@ -481,12 +596,14 @@ sync_file_range2 sysinfo syslog tee +tgkill time timer_create timer_xettime timerfd_xettime times times-fail +tkill truncate truncate64 ugetrlimit @@ -499,6 +616,8 @@ umovestr umovestr-illptr umovestr2 umovestr3 +umovestr_cached +umovestr_cached_adjacent uname unlink unlinkat diff --git a/tests/qual_fault-syntax.test b/tests/qual_fault-syntax.test index c4fd27bf..fe5eca5b 100755 --- a/tests/qual_fault-syntax.test +++ b/tests/qual_fault-syntax.test @@ -3,6 +3,7 @@ # Check -e fault= syntax. # # Copyright (c) 2016-2018 Dmitry V. Levin +# Copyright (c) 2017-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -72,6 +73,27 @@ for arg in chdir:42 \!chdir:42 \ chdir:syscall=-42 \ chdir:syscall=42 \ chdir:syscall=gettid:syscall=gettid \ + chdir:when=. \ + chdir:when=.+ \ + chdir:when=..+ \ + chdir:when=+ \ + chdir:when=++ \ + chdir:when=10. \ + chdir:when=11.12 \ + chdir:when=13.14+ \ + chdir:when=15.. \ + chdir:when=16... \ + chdir:when=17...18 \ + chdir:when=.19 \ + chdir:when=..20 \ + chdir:when=..21+ \ + chdir:when=..22+3 \ + chdir:when=24..23 \ + chdir:when=25..26+0 \ + chdir:when=27..65535 \ + chdir:when=28..65535+ \ + chdir:when=65535..65535 \ + chdir:when=65535..65535+ \ ; do $STRACE -e fault="$arg" true 2> "$LOG" && fail_with "$arg" diff --git a/tests/qual_fault.c b/tests/qual_fault.c index 63bbade0..580d2913 100644 --- a/tests/qual_fault.c +++ b/tests/qual_fault.c @@ -2,7 +2,7 @@ * Check that fault injection works properly. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -29,7 +29,7 @@ static int out_fd; #define DEFAULT_ERRNO ENOSYS static const char *errstr; -static int is_raw, err, first, step, iter, try; +static int is_raw, err, first, last, step, iter, try; static void invoke(int fail) @@ -99,7 +99,7 @@ open_file(const char *prefix, int proc) int main(int argc, char *argv[]) { - assert(argc == 11); + assert(argc == 12); is_raw = !strcmp("raw", argv[1]); @@ -120,13 +120,14 @@ main(int argc, char *argv[]) errstr = errno2name(); first = atoi(argv[3]); - step = atoi(argv[4]); - iter = atoi(argv[5]); - int num_procs = atoi(argv[6]); - char *exp_prefix = argv[7]; - char *got_prefix = argv[8]; - char *out_prefix = argv[9]; - char *pid_prefix = argv[10]; + last = atoi(argv[4]); + step = atoi(argv[5]); + iter = atoi(argv[6]); + int num_procs = atoi(argv[7]); + char *exp_prefix = argv[8]; + char *got_prefix = argv[9]; + char *out_prefix = argv[10]; + char *pid_prefix = argv[11]; assert(first > 0); assert(step >= 0); @@ -164,8 +165,10 @@ main(int argc, char *argv[]) int i; for (i = 1; i <= iter; ++i) { int fail = 0; - if (first > 0) { + if (last != 0) { --first; + if (last != -1) + --last; if (first == 0) { fail = 1; first = step; diff --git a/tests/qual_fault.test b/tests/qual_fault.test index 497e35ea..f054ed49 100755 --- a/tests/qual_fault.test +++ b/tests/qual_fault.test @@ -3,7 +3,7 @@ # Check that fault injection works properly. # # Copyright (c) 2016 Dmitry V. Levin -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -22,24 +22,32 @@ N=100 check_fault_injection() { - local trace fault err first step procs extra + local trace fault err first last step procs extra trace=$1; shift fault=$1; shift err=$1; shift first=$1; shift + last=$1; shift step=$1; shift procs=$1; shift extra="$*" local when= - if [ -z "$first$step" ]; then + if [ -z "$first$last$step" ]; then first=1 + last=-1 step=1 + elif [ -z "$last" ]; then + case "$step" in + '') when=":when=$first"; step=1; last=$first ;; + +) when=":when=$first+"; step=1; last=-1 ;; + *) when=":when=$first+$step"; last=-1; ;; + esac else case "$step" in - '') when=":when=$first"; step=0 ;; - +) when=":when=$first+"; step=1 ;; - *) when=":when=$first+$step" ;; + '') when=":when=${first}..${last}"; step=1 ;; + +) when=":when=${first}..${last}+"; step=1 ;; + *) when=":when=${first}..${last}+${step}" ;; esac fi @@ -63,7 +71,7 @@ check_fault_injection() run_strace -a11 -ff -e trace=$trace \ "$@" -e fault=$fault$when$error$suffix $extra \ - ../$NAME $raw "$err" "$first" "$step" $N \ + ../$NAME $raw "$err" "$first" "$last" "$step" $N \ "$procs" "$outexp" "$outgot" "$outout" "$outpid" for i in $(seq 0 $((procs - 1)) ) @@ -78,19 +86,37 @@ check_fault_injection() for err in '' ENOSYS 22 einval; do for fault in writev desc,51; do check_fault_injection \ - writev $fault "$err" '' '' 1 -efault=chdir + writev $fault "$err" '' '' '' 1 -efault=chdir check_fault_injection \ - writev $fault "$err" '' '' 1 -efault=chdir -efault=none + writev $fault "$err" '' '' '' 1 -efault=chdir -efault=none for F in 1 2 3 5 7 11; do check_fault_injection \ - writev $fault "$err" $F '' 1 + writev $fault "$err" $F '' '' 1 check_fault_injection \ - writev $fault "$err" $F + 1 + writev $fault "$err" $F '' + 1 + + for L in 1 2 3 5 7 11; do + [ "$L" -ge "$F" ] || + continue + check_fault_injection \ + writev $fault "$err" $F $L '' 1 + check_fault_injection \ + writev $fault "$err" $F $L + 1 + done + for S in 1 2 3 5 7 11; do check_fault_injection \ - writev $fault "$err" $F $S 1 + writev $fault "$err" $F '' $S 1 check_fault_injection \ - writev $fault "$err" $F $S 4 + writev $fault "$err" $F '' $S 4 + for L in 1 2 3 5 7 11; do + [ "$L" -ge "$F" ] || + continue + check_fault_injection \ + writev $fault "$err" $F $L $S 1 + check_fault_injection \ + writev $fault "$err" $F $L $S 4 + done done done done diff --git a/tests/qual_inject-error-signal.c b/tests/qual_inject-error-signal.c index 4c89d78a..a9a8afc8 100644 --- a/tests/qual_inject-error-signal.c +++ b/tests/qual_inject-error-signal.c @@ -2,6 +2,7 @@ * Check fault injection along with signal injection. * * Copyright (c) 2017-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +12,7 @@ #include #include #include -#include +#include "scno.h" static struct stat before, after; diff --git a/tests/qual_inject-retval.c b/tests/qual_inject-retval.c index 16419a49..1e657a73 100644 --- a/tests/qual_inject-retval.c +++ b/tests/qual_inject-retval.c @@ -2,14 +2,14 @@ * Check success injection. * * Copyright (c) 2017 Elvira Khabirova - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_chdir diff --git a/tests/qual_inject-signal.c b/tests/qual_inject-signal.c index c09b8322..03bc0331 100644 --- a/tests/qual_inject-signal.c +++ b/tests/qual_inject-signal.c @@ -2,6 +2,7 @@ * Check that signal injection works properly. * * Copyright (c) 2017-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +11,7 @@ #include "tests.h" #include #include -#include +#include "scno.h" static void handler(int sig) diff --git a/tests/qual_inject-syntax.test b/tests/qual_inject-syntax.test index 53245345..c513fe12 100755 --- a/tests/qual_inject-syntax.test +++ b/tests/qual_inject-syntax.test @@ -3,6 +3,7 @@ # Check -e inject= syntax. # # Copyright (c) 2016-2018 Dmitry V. Levin +# Copyright (c) 2017-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -88,6 +89,27 @@ for arg in 42 chdir \ chdir:syscall=-42 \ chdir:syscall=42 \ chdir:syscall=gettid:syscall=gettid \ + chdir:when=. \ + chdir:when=.+ \ + chdir:when=..+ \ + chdir:when=+ \ + chdir:when=++ \ + chdir:when=10. \ + chdir:when=11.12 \ + chdir:when=13.14+ \ + chdir:when=15.. \ + chdir:when=16... \ + chdir:when=17...18 \ + chdir:when=.19 \ + chdir:when=..20 \ + chdir:when=..21+ \ + chdir:when=..22+3 \ + chdir:when=24..23 \ + chdir:when=25..26+0 \ + chdir:when=27..65535 \ + chdir:when=28..65535+ \ + chdir:when=65535..65535 \ + chdir:when=65535..65535+ \ ; do $STRACE -e inject="$arg" true 2> "$LOG" && fail_with "$arg" diff --git a/tests/qual_signal.test b/tests/qual_signal.test index 8fd2b69d..aab6a906 100755 --- a/tests/qual_signal.test +++ b/tests/qual_signal.test @@ -3,7 +3,7 @@ # Check how strace -e signal=set works. # # Copyright (c) 2016 Dmitry V. Levin -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -16,8 +16,12 @@ test_one_sig() sigs="$1"; shift run_prog "../$NAME" "$@" > /dev/null + run_strace -e trace=none -e signal="$sigs" "../$NAME" "$@" > "$EXP" match_diff "$LOG" "$EXP" + + run_strace --trace=none --signal="$sigs" "../$NAME" "$@" > "$EXP" + match_diff "$LOG" "$EXP" } test_sigs() @@ -86,6 +90,11 @@ for arg in ' ' invalid_signal_name SIG -1 256 1-1 \ fail_with "$arg" LC_ALL=C grep -F 'invalid signal' < "$LOG" > /dev/null || fail_with "$arg" + + $STRACE --signal="$arg" true 2> "$LOG" && + fail_with "$arg" + LC_ALL=C grep -F 'invalid signal' < "$LOG" > /dev/null || + fail_with "$arg" done exit 0 diff --git a/tests/qual_syscall.test b/tests/qual_syscall.test index 945fc8c7..a2882ba4 100755 --- a/tests/qual_syscall.test +++ b/tests/qual_syscall.test @@ -3,7 +3,7 @@ # Check how strace -e abbrev=set, -e raw=set, -e trace=set, # and -e verbose=set work. # -# Copyright (c) 2014-2018 The strace developers. +# Copyright (c) 2014-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -28,6 +28,16 @@ check_output_mismatch() } } +check_execve_output_mismatch() +{ + local what how + what="$1"; shift + how="$1"; shift + + check_output_mismatch "$@" -e "$what=$how" -e execve + check_output_mismatch "$@" "--$what=$how" --trace=execve +} + check_output_mismatch "$pattern_abbrev_verbose" -e execve LC_ALL=C grep -v -x "$pattern_abbrev_verbose" "$LOG" | LC_ALL=C grep '^[[:alnum:]_]*(' > /dev/null && @@ -47,22 +57,16 @@ LC_ALL=C grep '^[[:alnum:]_]*(' "$LOG" > /dev/null && for a in execve \!chdir /. all \!none \ file process \!desc \!ipc \!memory \!network \!signal; do - check_output_mismatch \ - "$pattern_abbrev_verbose" -e abbrev="$a" -e execve - check_output_mismatch \ - "$pattern_raw" -a22 -e raw="$a" -e execve - check_output_mismatch \ - "$pattern_abbrev_verbose" -e verbose="$a" -e execve + check_execve_output_mismatch abbrev "$a" "$pattern_abbrev_verbose" + check_execve_output_mismatch raw "$a" "$pattern_raw" + check_execve_output_mismatch verbose "$a" "$pattern_abbrev_verbose" done for a in \!execve chdir 42 \!all none \ \!file \!process desc ipc memory network signal; do - check_output_mismatch \ - "$pattern_nonabbrev_verbose" -e abbrev="$a" -e execve - check_output_mismatch \ - "$pattern_abbrev_verbose" -e raw="$a" -e execve - check_output_mismatch \ - "$pattern_nonverbose" -a31 -e verbose="$a" -e execve + check_execve_output_mismatch abbrev "$a" "$pattern_nonabbrev_verbose" + check_execve_output_mismatch raw "$a" "$pattern_abbrev_verbose" + check_execve_output_mismatch verbose "$a" "$pattern_nonverbose" --columns=31 done exit 0 diff --git a/tests/qualify_personality.sh b/tests/qualify_personality.sh index d57314fc..e2677f58 100644 --- a/tests/qualify_personality.sh +++ b/tests/qualify_personality.sh @@ -2,7 +2,7 @@ # # Common code for per-personality qualification tests # -# Copyright (c) 2018 The strace developers. +# Copyright (c) 2018-2019 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -25,7 +25,7 @@ x86_64) x32) supported_pers='x32 32' ;; -aarch64|powerpc64|riscv|s390x|sparc64|tile) +aarch64|powerpc64|s390x|sparc64|tile) supported_pers='64 32' ;; *) diff --git a/tests/quotactl-xfs.c b/tests/quotactl-xfs.c index 1fae566d..0708e2a3 100644 --- a/tests/quotactl-xfs.c +++ b/tests/quotactl-xfs.c @@ -3,7 +3,7 @@ * * Copyright (c) 2016 Eugene Syromyatnikov * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +11,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_quotactl) && \ (defined(HAVE_LINUX_QUOTA_H) || defined(HAVE_SYS_QUOTA_H)) && \ diff --git a/tests/quotactl.c b/tests/quotactl.c index 3a995276..fd455579 100644 --- a/tests/quotactl.c +++ b/tests/quotactl.c @@ -3,7 +3,7 @@ * * Copyright (c) 2016 Eugene Syromyatnikov * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +11,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_quotactl) && \ (defined(HAVE_LINUX_QUOTA_H) || defined(HAVE_SYS_QUOTA_H)) diff --git a/tests/read-write.c b/tests/read-write.c index 0217670b..27df009d 100644 --- a/tests/read-write.c +++ b/tests/read-write.c @@ -2,7 +2,7 @@ * Check decoding and dumping of read and write syscalls. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -14,7 +14,7 @@ #include #include #include -#include +#include "scno.h" static void dump_str_ex(const char *str, const unsigned int len, const int idx_w) @@ -153,9 +153,17 @@ main(void) skip_if_unavailable("/proc/self/fd/"); static const char tmp[] = "read-write-tmpfile"; - if (open(tmp, O_CREAT|O_RDONLY|O_TRUNC, 0600) != 0) + bool need_cleanup = true; + long rc; + + rc = open(tmp, O_RDONLY, 0600); + if (rc < 0) { + rc = open(tmp, O_CREAT|O_EXCL|O_RDONLY, 0600); + need_cleanup = false; + } + if (rc != 0) perror_msg_and_fail("creat: %s", tmp); - if (open(tmp, O_WRONLY) != 1) + if (open(tmp, O_TRUNC|O_WRONLY) != 1) perror_msg_and_fail("open: %s", tmp); static const char w_c[] = "0123456789abcde"; @@ -175,8 +183,6 @@ main(void) void *efault = r1 - get_page_size(); - long rc; - rc = k_write(1, w, 0); if (rc) perror_msg_and_fail("write: expected 0, returned %ld", rc); @@ -270,9 +276,11 @@ main(void) if (open("/dev/null", O_WRONLY) != 1) perror_msg_and_fail("open"); + (void) close(4); if (open("/dev/zero", O_RDONLY) != 4) perror_msg_and_fail("open"); + (void) close(5); if (open("/dev/null", O_WRONLY) != 5) perror_msg_and_fail("open"); @@ -282,6 +290,9 @@ main(void) test_dump(256, true); + if (need_cleanup && unlink(tmp)) + perror_msg_and_fail("unlink: %s", tmp); + tprintf("+++ exited with 0 +++\n"); return 0; } diff --git a/tests/readahead.c b/tests/readahead.c index 1b21fe59..bcd33e0c 100644 --- a/tests/readahead.c +++ b/tests/readahead.c @@ -1,34 +1,30 @@ /* * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef HAVE_READAHEAD /* Check for glibc readahead argument passing bugs. */ -# ifdef __GLIBC__ /* * glibc < 2.8 had an incorrect order of higher and lower parts of offset, * see https://sourceware.org/bugzilla/show_bug.cgi?id=5208 */ -# if !(defined __GLIBC_MINOR__ && \ - (__GLIBC__ << 16) + __GLIBC_MINOR__ >= (2 << 16) + 8) -# undef HAVE_READAHEAD -# endif /* glibc < 2.8 */ +# if GLIBC_PREREQ_LT(2, 8) +# undef HAVE_READAHEAD +# endif /* glibc < 2.8 */ /* * glibc < 2.25 had an incorrect implementation on mips n64, * see https://sourceware.org/bugzilla/show_bug.cgi?id=21026 */ -# if defined LINUX_MIPSN64 && !(defined __GLIBC_MINOR__ && \ - (__GLIBC__ << 16) + __GLIBC_MINOR__ >= (2 << 16) + 25) -# undef HAVE_READAHEAD -# endif /* LINUX_MIPSN64 && glibc < 2.25 */ -# endif /* __GLIBC__ */ +# if GLIBC_PREREQ_LT(2, 25) && defined LINUX_MIPSN64 +# undef HAVE_READAHEAD +# endif /* LINUX_MIPSN64 && glibc < 2.25 */ #endif /* HAVE_READAHEAD */ #ifdef HAVE_READAHEAD diff --git a/tests/readdir.c b/tests/readdir.c index 284c221e..709b4f31 100644 --- a/tests/readdir.c +++ b/tests/readdir.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_readdir diff --git a/tests/readlink.c b/tests/readlink.c index c2a9b22c..a140794a 100644 --- a/tests/readlink.c +++ b/tests/readlink.c @@ -1,13 +1,14 @@ /* * Copyright (c) 2015 Gleb Fotengauer-Malinovskiy * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_readlink diff --git a/tests/readlinkat.c b/tests/readlinkat.c index 6909ac0b..50534570 100644 --- a/tests/readlinkat.c +++ b/tests/readlinkat.c @@ -1,13 +1,14 @@ /* * Copyright (c) 2015 Gleb Fotengauer-Malinovskiy * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_readlinkat diff --git a/tests/reboot.c b/tests/reboot.c index 8bc9c6b0..0b22ee9f 100644 --- a/tests/reboot.c +++ b/tests/reboot.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_reboot diff --git a/tests/recv-MSG_TRUNC.c b/tests/recv-MSG_TRUNC.c new file mode 100644 index 00000000..ee9ea632 --- /dev/null +++ b/tests/recv-MSG_TRUNC.c @@ -0,0 +1,59 @@ +/* + * Check decoding of recv MSG_TRUNC. + * + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include +#include +#include "scno.h" + +#ifndef __NR_recv +# define __NR_recv -1 +#endif +#define SC_recv 10 + +static int +sys_recv(int sockfd, const void *buf, unsigned int len, int flags) +{ + int rc = socketcall(__NR_recv, SC_recv, + sockfd, (long) buf, len, flags, 0); + if (rc < 0 && ENOSYS == errno) + perror_msg_and_skip("recv"); + return rc; +} + +int +main(void) +{ + static const char sbuf[2] = "AB"; + int sv[2]; + TAIL_ALLOC_OBJECT_CONST_PTR(char, rbuf); + + if (socketpair(AF_UNIX, SOCK_DGRAM, 0, sv)) + perror_msg_and_skip("socketpair"); + + if (send(sv[1], sbuf + 1, 1, 0) != 1) + perror_msg_and_skip("send"); + if (sys_recv(sv[0], rbuf - 1, 2, MSG_PEEK) != 1) + perror_msg_and_fail("recv"); + printf("recv(%d, \"B\", 2, MSG_PEEK) = 1\n", sv[0]); + + if (sys_recv(sv[0], rbuf, 1, MSG_TRUNC) != 1) + perror_msg_and_skip("recv"); + printf("recv(%d, \"B\", 1, MSG_TRUNC) = 1\n", sv[0]); + + if (send(sv[1], sbuf, 2, 0) != 2) + perror_msg_and_skip("send"); + if (sys_recv(sv[0], rbuf, 1, MSG_TRUNC) != 2) + perror_msg_and_skip("recv"); + printf("recv(%d, \"A\", 1, MSG_TRUNC) = 2\n", sv[0]); + + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests/recv-MSG_TRUNC.gen.test b/tests/recv-MSG_TRUNC.gen.test new file mode 100755 index 00000000..07f112b0 --- /dev/null +++ b/tests/recv-MSG_TRUNC.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (recv-MSG_TRUNC -a26 -e trace=recv); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a26 -e trace=recv diff --git a/tests/recvfrom-MSG_TRUNC.c b/tests/recvfrom-MSG_TRUNC.c new file mode 100644 index 00000000..b8ef3786 --- /dev/null +++ b/tests/recvfrom-MSG_TRUNC.c @@ -0,0 +1,42 @@ +/* + * Check decoding of recvfrom MSG_TRUNC. + * + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include + +int +main(void) +{ + static const char sbuf[2] = "AB"; + int sv[2]; + TAIL_ALLOC_OBJECT_CONST_PTR(char, rbuf); + + if (socketpair(AF_UNIX, SOCK_DGRAM, 0, sv)) + perror_msg_and_skip("socketpair"); + + if (send(sv[1], sbuf + 1, 1, 0) != 1) + perror_msg_and_skip("send"); + if (recvfrom(sv[0], rbuf - 1, 2, MSG_PEEK, NULL, NULL) != 1) + perror_msg_and_fail("recvfrom"); + printf("recvfrom(%d, \"B\", 2, MSG_PEEK, NULL, NULL) = 1\n", sv[0]); + + if (recvfrom(sv[0], rbuf, 1, MSG_TRUNC, NULL, NULL) != 1) + perror_msg_and_skip("recvfrom"); + printf("recvfrom(%d, \"B\", 1, MSG_TRUNC, NULL, NULL) = 1\n", sv[0]); + + if (send(sv[1], sbuf, 2, 0) != 2) + perror_msg_and_skip("send"); + if (recvfrom(sv[0], rbuf, 1, MSG_TRUNC, NULL, NULL) != 2) + perror_msg_and_skip("recvfrom"); + printf("recvfrom(%d, \"A\", 1, MSG_TRUNC, NULL, NULL) = 2\n", sv[0]); + + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests/recvfrom-MSG_TRUNC.gen.test b/tests/recvfrom-MSG_TRUNC.gen.test new file mode 100755 index 00000000..e27f52d0 --- /dev/null +++ b/tests/recvfrom-MSG_TRUNC.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (recvfrom-MSG_TRUNC -e trace=recvfrom); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -e trace=recvfrom diff --git a/tests/redirect.test b/tests/redirect.test index ebf91bec..c98052c8 100755 --- a/tests/redirect.test +++ b/tests/redirect.test @@ -3,7 +3,7 @@ # Ensure that strace does not retain stdin and stdout descriptors. # # Copyright (c) 2016 Dmitry V. Levin -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -16,42 +16,34 @@ run_prog_skip_if_failed \ check_prog sleep check_prog yes +SLEEP_3_BITS="$SLEEP_A_BIT; $SLEEP_A_BIT; $SLEEP_A_BIT" > "$OUT" -> "$LOG" + +> lock1 +> lock2 ( - while [ -f "$LOG" ]; do - : + while [ -f lock1 ]; do + $SLEEP_A_BIT done - $SLEEP_A_BIT & yes - if kill -0 $! 2> /dev/null; then - wait - else - echo TIMEOUT >> "$OUT" - fi + [ -f lock2 ] || + printf ' input' >> "$OUT" ) | $STRACE -qq -enone -esignal=none \ - sh -c "exec <&- >&-; rm -f -- $LOG; $SLEEP_A_BIT; $SLEEP_A_BIT" - -if [ -s "$OUT" ]; then - fail_ "$STRACE failed to redirect standard input" -fi + sh -c "exec <&- >&-; rm -f lock1; $SLEEP_3_BITS; rm -f lock2" -> "$LOG" +> lock1 +> lock2 $STRACE -qq -enone -esignal=none \ - sh -c "exec <&- >&-; rm -f -- $LOG; $SLEEP_A_BIT; $SLEEP_A_BIT" | + sh -c "exec <&- >&-; rm -f lock1; $SLEEP_3_BITS; rm -f lock2" | ( - while [ -f "$LOG" ]; do - : + while [ -f lock1 ]; do + $SLEEP_A_BIT done - $SLEEP_A_BIT & cat > /dev/null - if kill -0 $! 2> /dev/null; then - wait - else - echo TIMEOUT >> "$OUT" - fi + [ -f lock2 ] || + printf ' output' >> "$OUT" ) if [ -s "$OUT" ]; then - fail_ "$STRACE failed to redirect standard output" + fail_ "$STRACE failed to redirect standard descriptors:$(cat "$OUT")" fi diff --git a/tests/remap_file_pages.c b/tests/remap_file_pages.c index 2a2bfc6e..7e43926e 100644 --- a/tests/remap_file_pages.c +++ b/tests/remap_file_pages.c @@ -2,14 +2,13 @@ * Check decoding of remap_file_pages syscall. * * Copyright (c) 2016-2017 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_remap_file_pages @@ -77,11 +76,17 @@ main(void) k_remap_file_pages(addr, size, prot, pgoff, flags); /* - * HP PA-RISC is the only architecture that has MAP_TYPE defined to 0x3, which - * is also used for MAP_SHARED_VALIDATE since Linux commit v4.15-rc1~71^2^2~23. + * HP PA-RISC is the only architecture that has MAP_TYPE defined to something + * different. For example, before commit v4.17-rc1~146^2~9 it was defined to + * 0x3 which is also used for MAP_SHARED_VALIDATE since Linux commit + * v4.15-rc1~71^2^2~23. */ # ifdef __hppa__ -# define MAP_TYPE_str "MAP_SHARED_VALIDATE" +# if MAP_TYPE == 0x03 +# define MAP_TYPE_str "MAP_SHARED_VALIDATE" +# else +# define MAP_TYPE_str "0x2b /* MAP_??? */" +# endif # else # define MAP_TYPE_str "0xf /* MAP_??? */" # endif diff --git a/tests/rename.c b/tests/rename.c index 3d77573c..ccd65b41 100644 --- a/tests/rename.c +++ b/tests/rename.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_rename diff --git a/tests/renameat.c b/tests/renameat.c index 7f11893f..8c648cd3 100644 --- a/tests/renameat.c +++ b/tests/renameat.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_renameat diff --git a/tests/renameat2.c b/tests/renameat2.c index 663c0638..548490cd 100644 --- a/tests/renameat2.c +++ b/tests/renameat2.c @@ -2,13 +2,13 @@ * Check decoding of renameat2 syscall. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include "scno.h" #ifdef __NR_renameat2 diff --git a/tests/request_key.c b/tests/request_key.c index 20ae12f6..2ea9a7bd 100644 --- a/tests/request_key.c +++ b/tests/request_key.c @@ -2,7 +2,7 @@ * Check decoding of request_key syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_request_key diff --git a/tests/restart_syscall.c b/tests/restart_syscall.c index 9a8f7e3a..a42d3b9b 100644 --- a/tests/restart_syscall.c +++ b/tests/restart_syscall.c @@ -1,19 +1,21 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include #include #include #include #include #include +#define NANOSLEEP_NAME_RE "(nanosleep|clock_nanosleep(_time64)?)" +#define NANOSLEEP_CALL_RE "(nanosleep\\(|clock_nanosleep(_time64)?\\(CLOCK_REALTIME, 0, )" + int main(void) { @@ -27,20 +29,22 @@ main(void) const sigset_t set = {}; const struct sigaction act = { .sa_handler = SIG_IGN }; const struct itimerval itv = { .it_value.tv_usec = 111111 }; - struct timespec req = { .tv_nsec = 222222222 }, rem; + const struct timespec req = { .tv_nsec = 222222222 }; + struct timespec rem = { 0xdefaced, 0xdefaced }; - assert(sigaction(SIGALRM, &act, NULL) == 0); - assert(sigprocmask(SIG_SETMASK, &set, NULL) == 0); + if (sigaction(SIGALRM, &act, NULL)) + perror_msg_and_fail("sigaction"); + if (sigprocmask(SIG_SETMASK, &set, NULL)) + perror_msg_and_fail("sigprocmask"); if (setitimer(ITIMER_REAL, &itv, NULL)) perror_msg_and_skip("setitimer"); if (nanosleep(&req, &rem)) perror_msg_and_fail("nanosleep"); - printf("nanosleep\\(\\{tv_sec=%lld, tv_nsec=%llu\\}" - ", \\{tv_sec=%lld, tv_nsec=%llu\\}\\)" + printf("%s\\{tv_sec=0, tv_nsec=[0-9]+\\}" + ", \\{tv_sec=[0-9]+, tv_nsec=[0-9]+\\}\\)" " = \\? ERESTART_RESTARTBLOCK \\(Interrupted by signal\\)\n", - (long long) req.tv_sec, zero_extend_signed_to_ull(req.tv_nsec), - (long long) rem.tv_sec, zero_extend_signed_to_ull(rem.tv_nsec)); + NANOSLEEP_CALL_RE); puts("--- SIGALRM \\{si_signo=SIGALRM, si_code=SI_KERNEL\\} ---"); # ifdef __arm__ /* old kernels used to overwrite ARM_r0 with -EINTR */ @@ -48,12 +52,12 @@ main(void) # else # define ALTERNATIVE_NANOSLEEP_REQ "" # endif - printf("(nanosleep\\((%s\\{tv_sec=%lld, tv_nsec=%llu\\})" - ", %p|restart_syscall\\(<\\.\\.\\." - " resuming interrupted nanosleep \\.\\.\\.>)\\) = 0\n", + printf("(%s(%s\\{tv_sec=0, tv_nsec=[0-9]+\\})" + ", 0x[[:xdigit:]]+|restart_syscall\\(<\\.\\.\\." + " resuming interrupted %s \\.\\.\\.>)\\) = 0\n", + NANOSLEEP_CALL_RE, ALTERNATIVE_NANOSLEEP_REQ, - (long long) req.tv_sec, zero_extend_signed_to_ull(req.tv_nsec), - &rem); + NANOSLEEP_NAME_RE); puts("\\+\\+\\+ exited with 0 \\+\\+\\+"); return 0; diff --git a/tests/restart_syscall.test b/tests/restart_syscall.test index 8dde6684..5c433fda 100755 --- a/tests/restart_syscall.test +++ b/tests/restart_syscall.test @@ -2,7 +2,7 @@ # # Check how "resuming interrupted nanosleep" works. # -# Copyright (c) 2015-2018 The strace developers. +# Copyright (c) 2015-2019 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -10,6 +10,6 @@ . "${srcdir=.}/init.sh" run_prog > /dev/null -syscalls=nanosleep,restart_syscall +syscalls=restart_syscall,/nanosleep run_strace -a20 -e trace=$syscalls $args > "$EXP" match_grep "$LOG" "$EXP" diff --git a/tests/riscv_flush_icache.c b/tests/riscv_flush_icache.c index 27abf75b..645644c8 100644 --- a/tests/riscv_flush_icache.c +++ b/tests/riscv_flush_icache.c @@ -1,7 +1,7 @@ /* * Check decoding of riscv_flush_icache syscall. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,7 +9,6 @@ #include "tests.h" -#include #include "scno.h" diff --git a/tests/rmdir.c b/tests/rmdir.c index 505303ad..670f741d 100644 --- a/tests/rmdir.c +++ b/tests/rmdir.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_rmdir diff --git a/tests/rt_sigpending.c b/tests/rt_sigpending.c index 06b15db2..29954bad 100644 --- a/tests/rt_sigpending.c +++ b/tests/rt_sigpending.c @@ -2,14 +2,14 @@ * This file is part of rt_sigpending strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_rt_sigpending diff --git a/tests/rt_sigprocmask.c b/tests/rt_sigprocmask.c index e6f513da..599f2831 100644 --- a/tests/rt_sigprocmask.c +++ b/tests/rt_sigprocmask.c @@ -2,14 +2,14 @@ * This file is part of rt_sigprocmask strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_rt_sigprocmask diff --git a/tests/rt_sigqueueinfo--pidns-translation.c b/tests/rt_sigqueueinfo--pidns-translation.c new file mode 100644 index 00000000..74bfb464 --- /dev/null +++ b/tests/rt_sigqueueinfo--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "rt_sigqueueinfo.c" diff --git a/tests/rt_sigqueueinfo--pidns-translation.gen.test b/tests/rt_sigqueueinfo--pidns-translation.gen.test new file mode 100755 index 00000000..ef490b55 --- /dev/null +++ b/tests/rt_sigqueueinfo--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (rt_sigqueueinfo--pidns-translation test_pidns -esignal=none -e trace=rt_sigqueueinfo); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -esignal=none -e trace=rt_sigqueueinfo diff --git a/tests/rt_sigqueueinfo.c b/tests/rt_sigqueueinfo.c index 0455dd40..e22e4640 100644 --- a/tests/rt_sigqueueinfo.c +++ b/tests/rt_sigqueueinfo.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015 Elvira Khabirova - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include "pidns.h" #include #include #include @@ -15,6 +16,8 @@ int main(void) { + PIDNS_TEST_INIT; + struct sigaction sa = { .sa_handler = SIG_IGN }; @@ -22,15 +25,19 @@ main(void) .sival_ptr = (void *) (unsigned long) 0xdeadbeefbadc0dedULL }; pid_t pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); assert(sigaction(SIGUSR1, &sa, NULL) == 0); if (sigqueue(pid, SIGUSR1, value)) perror_msg_and_skip("sigqueue"); - printf("rt_sigqueueinfo(%u, SIGUSR1, {si_signo=SIGUSR1, " - "si_code=SI_QUEUE, si_pid=%u, si_uid=%u, " + pidns_print_leader(); + printf("rt_sigqueueinfo(%d%s, SIGUSR1, {si_signo=SIGUSR1, " + "si_code=SI_QUEUE, si_pid=%d%s, si_uid=%u, " "si_value={int=%d, ptr=%p}}) = 0\n", - pid, pid, getuid(), value.sival_int, value.sival_ptr); - printf("+++ exited with 0 +++\n"); + pid, pid_str, pid, pid_str, + getuid(), value.sival_int, value.sival_ptr); + pidns_print_leader(); + puts("+++ exited with 0 +++"); return 0; } diff --git a/tests/rt_sigsuspend.c b/tests/rt_sigsuspend.c index 55ae6239..720e1782 100644 --- a/tests/rt_sigsuspend.c +++ b/tests/rt_sigsuspend.c @@ -2,14 +2,14 @@ * This file is part of rt_sigsuspend strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_rt_sigsuspend diff --git a/tests/rt_sigtimedwait.c b/tests/rt_sigtimedwait.c index 56144f52..5ecd9b13 100644 --- a/tests/rt_sigtimedwait.c +++ b/tests/rt_sigtimedwait.c @@ -2,14 +2,14 @@ * This file is part of rt_sigtimedwait strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_rt_sigtimedwait diff --git a/tests/rt_tgsigqueueinfo--pidns-translation.c b/tests/rt_tgsigqueueinfo--pidns-translation.c new file mode 100644 index 00000000..94396f00 --- /dev/null +++ b/tests/rt_tgsigqueueinfo--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "rt_tgsigqueueinfo.c" diff --git a/tests/rt_tgsigqueueinfo--pidns-translation.gen.test b/tests/rt_tgsigqueueinfo--pidns-translation.gen.test new file mode 100755 index 00000000..399b2477 --- /dev/null +++ b/tests/rt_tgsigqueueinfo--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (rt_tgsigqueueinfo--pidns-translation test_pidns -esignal=none -e trace=rt_tgsigqueueinfo); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -esignal=none -e trace=rt_tgsigqueueinfo diff --git a/tests/rt_tgsigqueueinfo.c b/tests/rt_tgsigqueueinfo.c index e3ad0e22..21d01cbb 100644 --- a/tests/rt_tgsigqueueinfo.c +++ b/tests/rt_tgsigqueueinfo.c @@ -2,16 +2,17 @@ * This file is part of rt_tgsigqueueinfo strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" -#ifdef __NR_rt_tgsigqueueinfo +#if defined __NR_rt_tgsigqueueinfo && defined __NR_gettid # include # include @@ -20,11 +21,11 @@ # include static long -k_tgsigqueueinfo(const pid_t pid, const int sig, const void *const info) +k_tgsigqueueinfo(const pid_t tgid, const int tid, const int sig, const void *const info) { return syscall(__NR_rt_tgsigqueueinfo, - F8ILL_KULONG_MASK | pid, - F8ILL_KULONG_MASK | pid, + F8ILL_KULONG_MASK | tgid, + F8ILL_KULONG_MASK | tid, F8ILL_KULONG_MASK | sig, info); } @@ -32,6 +33,8 @@ k_tgsigqueueinfo(const pid_t pid, const int sig, const void *const info) int main(void) { + PIDNS_TEST_INIT; + const struct sigaction sa = { .sa_handler = SIG_IGN }; @@ -48,17 +51,22 @@ main(void) info->si_value.sival_ptr = (void *) (unsigned long) 0xdeadbeeffacefeedULL; - if (k_tgsigqueueinfo(info->si_pid, SIGUSR1, info)) + if (k_tgsigqueueinfo(getpid(), syscall(__NR_gettid), SIGUSR1, info)) (errno == ENOSYS ? perror_msg_and_skip : perror_msg_and_fail)( "rt_tgsigqueueinfo"); - printf("rt_tgsigqueueinfo(%u, %u, %s, {si_signo=%s" - ", si_code=SI_QUEUE, si_errno=ENOENT, si_pid=%u" - ", si_uid=%u, si_value={int=%d, ptr=%p}}) = 0\n", - info->si_pid, info->si_pid, "SIGUSR1", "SIGUSR1", - info->si_pid, info->si_uid, info->si_value.sival_int, + pidns_print_leader(); + printf("rt_tgsigqueueinfo(%d%s, %d%s, %s, {si_signo=%s" + ", si_code=SI_QUEUE, si_errno=ENOENT, si_pid=%d%s" + ", si_uid=%d, si_value={int=%d, ptr=%p}}) = 0\n", + info->si_pid, pidns_pid2str(PT_TGID), + info->si_pid, pidns_pid2str(PT_TID), + "SIGUSR1", "SIGUSR1", + info->si_pid, pidns_pid2str(PT_TGID), + info->si_uid, info->si_value.sival_int, info->si_value.sival_ptr); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests/s390_guarded_storage.c b/tests/s390_guarded_storage.c index a84c1413..2a17b02a 100644 --- a/tests/s390_guarded_storage.c +++ b/tests/s390_guarded_storage.c @@ -1,14 +1,14 @@ /* * Check decoding of s390_guarded_storage syscall. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_s390_guarded_storage && defined HAVE_ASM_GUARDED_STORAGE_H diff --git a/tests/s390_pci_mmio_read_write.c b/tests/s390_pci_mmio_read_write.c index 0cd160c6..1286b134 100644 --- a/tests/s390_pci_mmio_read_write.c +++ b/tests/s390_pci_mmio_read_write.c @@ -1,14 +1,14 @@ /* * Check decoding of s390_pci_mmio_read and s390_pci_mmio_write syscalls. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_s390_pci_mmio_read && defined __NR_s390_pci_mmio_write diff --git a/tests/s390_runtime_instr.c b/tests/s390_runtime_instr.c index db31719b..a336f94b 100644 --- a/tests/s390_runtime_instr.c +++ b/tests/s390_runtime_instr.c @@ -1,14 +1,14 @@ /* * Check decoding of s390_runtime_instr syscall. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_s390_runtime_instr diff --git a/tests/s390_sthyi.c b/tests/s390_sthyi.c index 5186fdc9..48c3dda7 100644 --- a/tests/s390_sthyi.c +++ b/tests/s390_sthyi.c @@ -1,14 +1,14 @@ /* * Check decoding of s390_sthyi syscall. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined HAVE_ICONV_H && defined HAVE_ICONV_OPEN && defined __NR_s390_sthyi @@ -113,7 +113,7 @@ ebcdic2ascii(unsigned char *ebcdic, size_t size) size, sizeof(ascii_buf)); if (cd == (iconv_t) -1) perror_msg_and_fail("ebcdic2ascii: unable to allocate a " - "conversion descriptior for converting " + "conversion descriptor for converting " "EBCDIC to ASCII"); while ((ret = iconv(cd, &ebcdic_pos, &ebcdic_left, @@ -185,6 +185,44 @@ print_ebcdic(const char *prefix, unsigned char *addr, unsigned int offs, return true; } +static inline void +print_funcs(unsigned char *addr, unsigned int offs) +{ + bool cont; + const uint8_t *funcs = addr + offs; + + if (!funcs[0]) + return; + + printf(" /* "); + + if (funcs[0] & 0x80) { + printf("0: Obtain CPU Capacity Info"); + cont = true; + } + + if (funcs[0] & 0x40) + printf("%s1: Hypervisor Environment Info", + cont ? ", " : (cont = true, "")); + if (funcs[0] & 0x20) + printf("%s2: Guest List", + cont ? ", " : (cont = true, "")); + if (funcs[0] & 0x10) + printf("%s3: Designated Guest Info", + cont ? ", " : (cont = true, "")); + if (funcs[0] & 0x08) + printf("%s4: Resource Pool List", + cont ? ", " : (cont = true, "")); + if (funcs[0] & 0x04) + printf("%s5: Designated Resource Pool Information", + cont ? ", " : (cont = true, "")); + if (funcs[0] & 0x02) + printf("%s6: Resource Pool Member List", + cont ? ", " : (cont = true, "")); + + printf(" */"); +} + static void print_hypervisor_header(unsigned char *buf, int level, unsigned int offs_pos, unsigned int len_pos, bool mt) @@ -220,10 +258,16 @@ print_hypervisor_header(unsigned char *buf, int level, unsigned int offs_pos, "for capping"); printed = true; } - if (cur[0] & 0x3F) { + if (cur[0] & 0x20) { if (printed) printf(", "); - printf("%#hhx - ???", cur[0] & 0x3F); + printf("0x20 - hypervisor is MT-enabled"); + printed = true; + } + if (cur[0] & 0x1F) { + if (printed) + printf(", "); + printf("%#hhx - ???", cur[0] & 0x1F); } printf(" */"); } @@ -254,7 +298,20 @@ print_hypervisor_header(unsigned char *buf, int level, unsigned int offs_pos, print_u16(", infydifl", cur, 30, VERBOSE); # if VERBOSE - if (hdr_size > 32 && !is_empty(cur + 32, hdr_size - 32)) { + if (hdr_size >= 48) { + printf(", infyinsf="); + print_quoted_hex((char *) (cur + 32), 8); + print_funcs(cur, 32); + + printf(", infyautf="); + print_quoted_hex((char *) (cur + 40), 8); + print_funcs(cur, 40); + + if (hdr_size > 48 && !is_empty(cur + 48, hdr_size - 48)) { + printf(", "); + print_quoted_hex((char *) (cur + 48), hdr_size - 48); + } + } else if (hdr_size > 32 && !is_empty(cur + 32, hdr_size - 32)) { printf(", "); print_quoted_hex((char *) (cur + 32), hdr_size - 32); } @@ -452,7 +509,7 @@ print_sthyi(unsigned char *buf) hdr_size = *(uint16_t *) (buf + 10); if (hdr_size < 44) error_msg_and_fail("sthyi: header section is too small " - "(got %hu, 44 expected)", hdr_size); + "(got %hu, >=44 expected)", hdr_size); /* INFHFLG1 */ print_0x8("{/* header */ {infhflg1", buf, 0, true); @@ -541,7 +598,7 @@ print_sthyi(unsigned char *buf) hdr_size = *(uint16_t *) (buf + 14); if (hdr_size < 60) error_msg_and_fail("sthyi: machine section is too small " - "(got %hu, 60 expected)", hdr_size); + "(got %hu, >=60 expected)", hdr_size); cur = buf + offs; @@ -584,7 +641,19 @@ print_sthyi(unsigned char *buf) print_ebcdic(", infmseq", cur, 40, 16, id_valid, false); print_ebcdic(", infmpman", cur, 56, 4, id_valid, false); - if (hdr_size > 60 && !is_empty(cur + 60, hdr_size - 60)) { + if (hdr_size >= 72) { + if (cur[60] || cur[61] || cur[62] || cur[63]) + printf(", reserved_1__=" + "\"\\x%#02hhx\\x%#02hhx\\x%#02hhx\\x%#02hhx\"", + cur[60], cur[61], cur[62], cur[63]); + + print_ebcdic(", infmplnm", cur, 64, 8, false, false); + + if (hdr_size > 72 && !is_empty(cur + 72, hdr_size - 72)) { + printf(", "); + print_quoted_hex((char *) (cur + 72), hdr_size - 72); + } + } else if (hdr_size > 60 && !is_empty(cur + 60, hdr_size - 60)) { printf(", "); print_quoted_hex((char *) (cur + 60), hdr_size - 60); } @@ -601,9 +670,9 @@ partition_hdr: goto hv_hdr; hdr_size = *(uint16_t *) (buf + 18); - if (hdr_size < 56) + if (hdr_size < 40) error_msg_and_fail("sthyi: partition section is too small " - "(got %hu, 56 expected)", hdr_size); + "(got %hu, >=40 expected)", hdr_size); cur = buf + offs; @@ -672,21 +741,28 @@ partition_hdr: print_weight(", infpwbif", cur, 32, pwcap_valid); print_weight(", infpabif", cur, 36, pacap_valid); - if (print_ebcdic(", infplgnm", cur, 40, 8, false, false)) { - - print_weight(", infplgcp", cur, 48, false); - print_weight(", infplgif", cur, 52, false); - } else { - if (lpar_valid) { - printf(", infplgnm="); - print_quoted_hex((char *) (cur + 40), 8); + if (hdr_size >= 56) { + if (print_ebcdic(", infplgnm", cur, 40, 8, false, false)) { + print_weight(", infplgcp", cur, 48, false); + print_weight(", infplgif", cur, 52, false); + } else { + if (lpar_valid) { + printf(", infplgnm="); + print_quoted_hex((char *) (cur + 40), 8); + } + print_x32(", infplgcp", cur, 48, false); + print_x32(", infplgif", cur, 52, false); } - - print_x32(", infplgcp", cur, 48, false); - print_x32(", infplgif", cur, 52, false); } - if (hdr_size > 56 && !is_empty(cur + 56, hdr_size - 56)) { + if (hdr_size >= 64) { + print_ebcdic(", infpplnm", cur, 56, 8, false, false); + + if (hdr_size > 64 && !is_empty(cur + 64, hdr_size - 64)) { + printf(", "); + print_quoted_hex((char *) (cur + 64), hdr_size - 64); + } + } else if (hdr_size > 56 && !is_empty(cur + 56, hdr_size - 56)) { printf(", "); print_quoted_hex((char *) (cur + 56), hdr_size - 56); } diff --git a/tests/sched_get_priority_mxx.c b/tests/sched_get_priority_mxx.c index 7715d286..56bbef57 100644 --- a/tests/sched_get_priority_mxx.c +++ b/tests/sched_get_priority_mxx.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined(__NR_sched_get_priority_min) \ && defined(__NR_sched_get_priority_max) diff --git a/tests/sched_rr_get_interval.c b/tests/sched_rr_get_interval.c index b1117f3b..3af6f851 100644 --- a/tests/sched_rr_get_interval.c +++ b/tests/sched_rr_get_interval.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sched_rr_get_interval diff --git a/tests/sched_xetaffinity--pidns-translation.c b/tests/sched_xetaffinity--pidns-translation.c new file mode 100644 index 00000000..814e3989 --- /dev/null +++ b/tests/sched_xetaffinity--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "sched_xetaffinity.c" diff --git a/tests/sched_xetaffinity--pidns-translation.gen.test b/tests/sched_xetaffinity--pidns-translation.gen.test new file mode 100755 index 00000000..767fa1a7 --- /dev/null +++ b/tests/sched_xetaffinity--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sched_xetaffinity--pidns-translation test_pidns -a28 -e trace=sched_getaffinity,sched_setaffinity); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a28 -e trace=sched_getaffinity,sched_setaffinity diff --git a/tests/sched_xetaffinity.c b/tests/sched_xetaffinity.c index 4e6fbe20..105b3354 100644 --- a/tests/sched_xetaffinity.c +++ b/tests/sched_xetaffinity.c @@ -2,13 +2,15 @@ * This file is part of sched_xetaffinity strace test. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #include #if defined __NR_sched_getaffinity && defined __NR_sched_setaffinity \ @@ -40,8 +42,11 @@ setaffinity(unsigned long pid, unsigned long size, void *set) int main(void) { + PIDNS_TEST_INIT; + unsigned int cpuset_size = 1; const pid_t pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); while (cpuset_size) { assert(getaffinity(pid, cpuset_size, NULL) == -1); @@ -49,18 +54,21 @@ main(void) break; if (EINVAL != errno) perror_msg_and_skip("sched_getaffinity"); - printf("sched_getaffinity(%d, %u, NULL) = %s\n", - pid, cpuset_size, errstr); + pidns_print_leader(); + printf("sched_getaffinity(%d%s, %u, NULL) = %s\n", + pid, pid_str, cpuset_size, errstr); cpuset_size <<= 1; } assert(cpuset_size); - printf("sched_getaffinity(%d, %u, NULL) = %s\n", - pid, cpuset_size, errstr); + pidns_print_leader(); + printf("sched_getaffinity(%d%s, %u, NULL) = %s\n", + pid, pid_str, cpuset_size, errstr); cpu_set_t *cpuset = tail_alloc(cpuset_size); getaffinity(pid, cpuset_size, cpuset + 1); - printf("sched_getaffinity(%d, %u, %p) = %s\n", - pid, cpuset_size, cpuset + 1, errstr); + pidns_print_leader(); + printf("sched_getaffinity(%d%s, %u, %p) = %s\n", + pid, pid_str, cpuset_size, cpuset + 1, errstr); int ret_size = getaffinity(pid, cpuset_size, cpuset); if (ret_size < 0) @@ -68,7 +76,8 @@ main(void) pid, (unsigned) cpuset_size, cpuset, errstr); assert(ret_size <= (int) cpuset_size); - printf("sched_getaffinity(%d, %u, [", pid, cpuset_size); + pidns_print_leader(); + printf("sched_getaffinity(%d%s, %u, [", pid, pid_str, cpuset_size); const char *sep; unsigned int i, cpu; for (i = 0, cpu = 0, sep = ""; i < (unsigned) ret_size * 8; ++i) { @@ -84,8 +93,9 @@ main(void) CPU_SET_S(cpu, cpuset_size, cpuset); if (setaffinity(pid, cpuset_size, cpuset)) perror_msg_and_skip("sched_setaffinity"); - printf("sched_setaffinity(%d, %u, [%u]) = 0\n", - pid, cpuset_size, cpu); + pidns_print_leader(); + printf("sched_setaffinity(%d%s, %u, [%u]) = 0\n", + pid, pid_str, cpuset_size, cpu); const unsigned int big_size = cpuset_size < 128 ? 128 : cpuset_size * 2; cpuset = tail_alloc(big_size); @@ -94,7 +104,8 @@ main(void) perror_msg_and_fail("sched_getaffinity(%d, %u, %p) = %s\n", pid, big_size, cpuset, errstr); assert(ret_size <= (int) big_size); - printf("sched_getaffinity(%d, %u, [", pid, big_size); + pidns_print_leader(); + printf("sched_getaffinity(%d%s, %u, [", pid, pid_str, big_size); for (i = 0, sep = ""; i < (unsigned) ret_size * 8; ++i) { if (CPU_ISSET_S(i, (unsigned) ret_size, cpuset)) { printf("%s%u", sep, i); @@ -103,6 +114,7 @@ main(void) } printf("]) = %s\n", errstr); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests/sched_xetattr--pidns-translation.c b/tests/sched_xetattr--pidns-translation.c new file mode 100644 index 00000000..c152023d --- /dev/null +++ b/tests/sched_xetattr--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "sched_xetattr.c" diff --git a/tests/sched_xetattr--pidns-translation.gen.test b/tests/sched_xetattr--pidns-translation.gen.test new file mode 100755 index 00000000..52692a85 --- /dev/null +++ b/tests/sched_xetattr--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sched_xetattr--pidns-translation test_pidns -a29 -e trace=sched_getattr,sched_setattr); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a29 -e trace=sched_getattr,sched_setattr diff --git a/tests/sched_xetattr.c b/tests/sched_xetattr.c index 3440876b..4a76b2d6 100644 --- a/tests/sched_xetattr.c +++ b/tests/sched_xetattr.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2017 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_sched_getattr && defined __NR_sched_setattr @@ -15,6 +15,7 @@ # include # include # include +# include "pidns.h" # include "sched_attr.h" # include "xlat.h" # include "xlat/schedulers.h" @@ -41,6 +42,8 @@ sys_sched_setattr(kernel_ulong_t pid, kernel_ulong_t attr, kernel_ulong_t flags) int main(void) { + PIDNS_TEST_INIT; + static const kernel_ulong_t bogus_pid = (kernel_ulong_t) 0xdefacedfacefeedULL; static const kernel_ulong_t bogus_size = @@ -48,20 +51,28 @@ main(void) static const kernel_ulong_t bogus_flags = (kernel_ulong_t) 0xdefaceddeadc0deULL; + const int pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); + TAIL_ALLOC_OBJECT_CONST_PTR(struct sched_attr, attr); TAIL_ALLOC_OBJECT_CONST_PTR(unsigned int, psize); void *const efault = attr + 1; - sys_sched_getattr(0, 0, 0, 0); - printf("sched_getattr(0, NULL, 0, 0) = %s\n", errstr); + sys_sched_getattr(pid, 0, 0, 0); + pidns_print_leader(); + printf("sched_getattr(%d%s, NULL, 0, 0) = %s\n", + pid, pid_str, errstr); sys_sched_getattr(0, (unsigned long) attr, 0, 0); + pidns_print_leader(); printf("sched_getattr(0, %p, 0, 0) = %s\n", attr, errstr); sys_sched_getattr(bogus_pid, 0, 0, 0); + pidns_print_leader(); printf("sched_getattr(%d, NULL, 0, 0) = %s\n", (int) bogus_pid, errstr); sys_sched_getattr(-1U, (unsigned long) attr, bogus_size, bogus_flags); + pidns_print_leader(); printf("sched_getattr(-1, %p, %s%u, %u) = %s\n", attr, # if defined __arm64__ || defined __aarch64__ @@ -71,24 +82,52 @@ main(void) # endif (unsigned) bogus_size, (unsigned) bogus_flags, errstr); + sys_sched_getattr(0, (unsigned long) efault, SCHED_ATTR_MIN_SIZE, 0); + pidns_print_leader(); + printf("sched_getattr(0, %p, %u, 0) = %s\n", + efault, (unsigned) SCHED_ATTR_MIN_SIZE, errstr); + + if (sys_sched_getattr(0, (unsigned long) attr, SCHED_ATTR_MIN_SIZE, 0)) + perror_msg_and_skip("sched_getattr"); + pidns_print_leader(); + printf("sched_getattr(0, {size=%u, sched_policy=", attr->size); + printxval(schedulers, attr->sched_policy, NULL); + printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u" + ", sched_runtime=%" PRIu64 ", sched_deadline=%" PRIu64 + ", sched_period=%" PRIu64 "}, %u, 0) = 0\n", + attr->sched_flags ? "SCHED_FLAG_RESET_ON_FORK" : "0", + attr->sched_nice, + attr->sched_priority, + attr->sched_runtime, + attr->sched_deadline, + attr->sched_period, + (unsigned) SCHED_ATTR_MIN_SIZE); + sys_sched_getattr(0, (unsigned long) efault, sizeof(*attr), 0); + pidns_print_leader(); printf("sched_getattr(0, %p, %u, 0) = %s\n", efault, (unsigned) sizeof(*attr), errstr); if (sys_sched_getattr(0, (unsigned long) attr, sizeof(*attr), 0)) perror_msg_and_skip("sched_getattr"); + pidns_print_leader(); printf("sched_getattr(0, {size=%u, sched_policy=", attr->size); printxval(schedulers, attr->sched_policy, NULL); printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u" ", sched_runtime=%" PRIu64 ", sched_deadline=%" PRIu64 - ", sched_period=%" PRIu64 "}, %u, 0) = 0\n", + ", sched_period=%" PRIu64, attr->sched_flags ? "SCHED_FLAG_RESET_ON_FORK" : "0", attr->sched_nice, attr->sched_priority, attr->sched_runtime, attr->sched_deadline, - attr->sched_period, - (unsigned) sizeof(*attr)); + attr->sched_period); + if (attr->size >= SCHED_ATTR_SIZE_VER1) { + printf(", sched_util_min=%u, sched_util_max=%u", + attr->sched_util_min, + attr->sched_util_max); + } + printf("}, %u, 0) = 0\n", (unsigned) sizeof(*attr)); # if defined __arm64__ || defined __aarch64__ long rc = @@ -97,66 +136,91 @@ main(void) F8ILL_KULONG_MASK | sizeof(*attr), F8ILL_KULONG_MASK); # if defined __arm64__ || defined __aarch64__ if (rc) { + pidns_print_leader(); printf("sched_getattr(0, %p, 0xffffffff<<32|%u, 0) = %s\n", attr, (unsigned) sizeof(*attr), errstr); } else # endif { + pidns_print_leader(); printf("sched_getattr(0, {size=%u, sched_policy=", attr->size); printxval(schedulers, attr->sched_policy, NULL); printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u" ", sched_runtime=%" PRIu64 ", sched_deadline=%" PRIu64 - ", sched_period=%" PRIu64 "}, %u, 0) = 0\n", + ", sched_period=%" PRIu64, attr->sched_flags ? "SCHED_FLAG_RESET_ON_FORK" : "0", attr->sched_nice, attr->sched_priority, attr->sched_runtime, attr->sched_deadline, - attr->sched_period, - (unsigned) sizeof(*attr)); + attr->sched_period); + if (attr->size >= SCHED_ATTR_SIZE_VER1) { + printf(", sched_util_min=%u, sched_util_max=%u", + attr->sched_util_min, + attr->sched_util_max); + } + printf("}, %u, 0) = 0\n", (unsigned) sizeof(*attr)); } sys_sched_setattr(bogus_pid, 0, 0); + pidns_print_leader(); printf("sched_setattr(%d, NULL, 0) = %s\n", (int) bogus_pid, errstr); attr->sched_flags |= 1; - if (sys_sched_setattr(0, (unsigned long) attr, 0)) + if (sys_sched_setattr(pid, (unsigned long) attr, 0)) perror_msg_and_skip("sched_setattr"); - printf("sched_setattr(0, {size=%u, sched_policy=", attr->size); + pidns_print_leader(); + printf("sched_setattr(%d%s, {size=%u, sched_policy=", + pid, pid_str, attr->size); printxval(schedulers, attr->sched_policy, NULL); printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u" ", sched_runtime=%" PRIu64 ", sched_deadline=%" PRIu64 - ", sched_period=%" PRIu64 "}, 0) = 0\n", + ", sched_period=%" PRIu64, "SCHED_FLAG_RESET_ON_FORK", attr->sched_nice, attr->sched_priority, attr->sched_runtime, attr->sched_deadline, attr->sched_period); + if (attr->size >= SCHED_ATTR_SIZE_VER1) { + printf(", sched_util_min=%u, sched_util_max=%u", + attr->sched_util_min, + attr->sched_util_max); + } + printf("}, 0) = 0\n"); sys_sched_setattr(F8ILL_KULONG_MASK, (unsigned long) attr, F8ILL_KULONG_MASK); + pidns_print_leader(); printf("sched_setattr(0, {size=%u, sched_policy=", attr->size); printxval(schedulers, attr->sched_policy, NULL); printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u" ", sched_runtime=%" PRIu64 ", sched_deadline=%" PRIu64 - ", sched_period=%" PRIu64 "}, 0) = 0\n", + ", sched_period=%" PRIu64, "SCHED_FLAG_RESET_ON_FORK", attr->sched_nice, attr->sched_priority, attr->sched_runtime, attr->sched_deadline, attr->sched_period); + if (attr->size >= SCHED_ATTR_SIZE_VER1) { + printf(", sched_util_min=%u, sched_util_max=%u", + attr->sched_util_min, + attr->sched_util_max); + } + printf("}, 0) = 0\n"); *psize = attr->size; sys_sched_setattr(0, (unsigned long) psize, 0); + pidns_print_leader(); printf("sched_setattr(0, %p, 0) = %s\n", psize, errstr); attr->size = 0; sys_sched_setattr(0, (unsigned long) attr, 0); + pidns_print_leader(); printf("sched_setattr(0, {size=%u, sched_policy=", attr->size); printxval(schedulers, attr->sched_policy, NULL); printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u" @@ -172,18 +236,20 @@ main(void) attr->size = 1; sys_sched_setattr(0, (unsigned long) attr, 0); + pidns_print_leader(); printf("sched_setattr(0, {size=%u} => {size=%u}, 0) = %s\n", 1, attr->size, errstr); attr->size = SCHED_ATTR_MIN_SIZE - 1; sys_sched_setattr(0, (unsigned long) attr, 0); + pidns_print_leader(); printf("sched_setattr(0, {size=%u} => {size=%u}, 0) = %s\n", SCHED_ATTR_MIN_SIZE - 1, attr->size, errstr); attr->size = 0x90807060; attr->sched_policy = 0xca7faced; - attr->sched_flags = 0xbadc0ded1057da78ULL; + attr->sched_flags = 0xbadc0ded1057da80ULL; attr->sched_nice = 0xafbfcfdf; attr->sched_priority = 0xb8c8d8e8; attr->sched_runtime = 0xbadcaffedeadf157ULL; @@ -191,11 +257,12 @@ main(void) attr->sched_period = 0xded1ca7edda7aca7ULL; sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags); + pidns_print_leader(); printf("sched_setattr(%d, {size=%u, sched_policy=%#x /* SCHED_??? */, " "sched_flags=%#" PRIx64 " /* SCHED_FLAG_??? */, " "sched_nice=%d, sched_priority=%u, sched_runtime=%" PRIu64 ", " - "sched_deadline=%" PRIu64 ", sched_period=%" PRIu64 ", ...}, %u)" - " = %s\n", + "sched_deadline=%" PRIu64 ", sched_period=%" PRIu64 ", " + "sched_util_min=%u, sched_util_max=%u, ...}, %u) = %s\n", (int) bogus_pid, attr->size, attr->sched_policy, @@ -205,6 +272,8 @@ main(void) attr->sched_runtime, attr->sched_deadline, attr->sched_period, + attr->sched_util_min, + attr->sched_util_max, (unsigned) bogus_flags, errstr); if (F8ILL_KULONG_SUPPORTED) { @@ -223,7 +292,7 @@ main(void) attr->size = 0x90807060; attr->sched_policy = 0xca7faced; - attr->sched_flags = 0xfULL; + attr->sched_flags = 0x87ULL; attr->sched_nice = 0xafbfcfdf; attr->sched_priority = 0xb8c8d8e8; attr->sched_runtime = 0xbadcaffedeadf157ULL; @@ -231,35 +300,143 @@ main(void) attr->sched_period = 0xded1ca7edda7aca7ULL; sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags); + pidns_print_leader(); printf("sched_setattr(%d, {size=%u, sched_policy=%#x /* SCHED_??? */, " "sched_flags=SCHED_FLAG_RESET_ON_FORK|SCHED_FLAG_RECLAIM|" - "SCHED_FLAG_DL_OVERRUN|0x8, " + "SCHED_FLAG_DL_OVERRUN|0x80, " + "sched_nice=%d, sched_priority=%u, sched_runtime=%" PRIu64 ", " + "sched_deadline=%" PRIu64 ", sched_period=%" PRIu64 ", " + "sched_util_min=%u, sched_util_max=%u, ...}, %u) = %s\n", + (int) bogus_pid, + attr->size, + attr->sched_policy, + attr->sched_nice, + attr->sched_priority, + attr->sched_runtime, + attr->sched_deadline, + attr->sched_period, + attr->sched_util_min, + attr->sched_util_max, + (unsigned) bogus_flags, errstr); + + if (F8ILL_KULONG_SUPPORTED) { + const kernel_ulong_t ill = f8ill_ptr_to_kulong(attr); + + sys_sched_getattr(0, ill, sizeof(*attr), 0); + pidns_print_leader(); + printf("sched_getattr(0, %#llx, %u, 0) = %s\n", + (unsigned long long) ill, (unsigned) sizeof(*attr), + errstr); + + sys_sched_setattr(0, ill, 0); + pidns_print_leader(); + printf("sched_setattr(0, %#llx, 0) = %s\n", + (unsigned long long) ill, errstr); + } + + attr->size = SCHED_ATTR_MIN_SIZE; + attr->sched_policy = 0xdefaced; + attr->sched_flags = 0x8fULL; + + sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags); + pidns_print_leader(); + printf("sched_setattr(%d, {size=%u, " + "sched_flags=SCHED_FLAG_RESET_ON_FORK|SCHED_FLAG_RECLAIM|" + "SCHED_FLAG_DL_OVERRUN|SCHED_FLAG_KEEP_POLICY|0x80, " "sched_nice=%d, sched_priority=%u, sched_runtime=%" PRIu64 ", " - "sched_deadline=%" PRIu64 ", sched_period=%" PRIu64 ", ...}, %u)" + "sched_deadline=%" PRIu64 ", sched_period=%" PRIu64 "}, %u)" " = %s\n", (int) bogus_pid, attr->size, + attr->sched_nice, + attr->sched_priority, + attr->sched_runtime, + attr->sched_deadline, + attr->sched_period, + (unsigned) bogus_flags, errstr); + + if (F8ILL_KULONG_SUPPORTED) { + const kernel_ulong_t ill = f8ill_ptr_to_kulong(attr); + + sys_sched_getattr(0, ill, sizeof(*attr), 0); + pidns_print_leader(); + printf("sched_getattr(0, %#llx, %u, 0) = %s\n", + (unsigned long long) ill, (unsigned) sizeof(*attr), + errstr); + + sys_sched_setattr(0, ill, 0); + pidns_print_leader(); + printf("sched_setattr(0, %#llx, 0) = %s\n", + (unsigned long long) ill, errstr); + } + + attr->size = SCHED_ATTR_SIZE_VER1; + attr->sched_flags = 0xe7ULL; + + sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags); + pidns_print_leader(); + printf("sched_setattr(%d, {size=%u, sched_policy=%#x /* SCHED_??? */, " + "sched_flags=SCHED_FLAG_RESET_ON_FORK|SCHED_FLAG_RECLAIM|" + "SCHED_FLAG_DL_OVERRUN|SCHED_FLAG_UTIL_CLAMP_MIN" + "|SCHED_FLAG_UTIL_CLAMP_MAX|0x80, " + "sched_nice=%d, sched_priority=%u, sched_runtime=%" PRIu64 ", " + "sched_deadline=%" PRIu64 ", sched_period=%" PRIu64 ", " + "sched_util_min=%u, sched_util_max=%u}, %u) = %s\n", + (int) bogus_pid, + attr->size, attr->sched_policy, attr->sched_nice, attr->sched_priority, attr->sched_runtime, attr->sched_deadline, attr->sched_period, + attr->sched_util_min, + attr->sched_util_max, + (unsigned) bogus_flags, errstr); + + if (F8ILL_KULONG_SUPPORTED) { + const kernel_ulong_t ill = f8ill_ptr_to_kulong(attr); + + sys_sched_getattr(0, ill, sizeof(*attr), 0); + pidns_print_leader(); + printf("sched_getattr(0, %#llx, %u, 0) = %s\n", + (unsigned long long) ill, (unsigned) sizeof(*attr), + errstr); + + sys_sched_setattr(0, ill, 0); + pidns_print_leader(); + printf("sched_setattr(0, %#llx, 0) = %s\n", + (unsigned long long) ill, errstr); + } + + attr->sched_flags = 0xcaffee90LL; + + sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags); + pidns_print_leader(); + printf("sched_setattr(%d, {size=%u, sched_flags=SCHED_FLAG_KEEP_PARAMS" + "|0xcaffee80, sched_util_min=%u, sched_util_max=%u}, %u) = %s\n", + (int) bogus_pid, + attr->size, + attr->sched_util_min, + attr->sched_util_max, (unsigned) bogus_flags, errstr); if (F8ILL_KULONG_SUPPORTED) { const kernel_ulong_t ill = f8ill_ptr_to_kulong(attr); sys_sched_getattr(0, ill, sizeof(*attr), 0); + pidns_print_leader(); printf("sched_getattr(0, %#llx, %u, 0) = %s\n", (unsigned long long) ill, (unsigned) sizeof(*attr), errstr); sys_sched_setattr(0, ill, 0); + pidns_print_leader(); printf("sched_setattr(0, %#llx, 0) = %s\n", (unsigned long long) ill, errstr); } + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests/sched_xetparam--pidns-translation.c b/tests/sched_xetparam--pidns-translation.c new file mode 100644 index 00000000..9fb3e579 --- /dev/null +++ b/tests/sched_xetparam--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "sched_xetparam.c" diff --git a/tests/sched_xetparam--pidns-translation.gen.test b/tests/sched_xetparam--pidns-translation.gen.test new file mode 100755 index 00000000..309cabbe --- /dev/null +++ b/tests/sched_xetparam--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sched_xetparam--pidns-translation test_pidns -a23 -e trace=sched_getparam,sched_setparam); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a23 -e trace=sched_getparam,sched_setparam diff --git a/tests/sched_xetparam.c b/tests/sched_xetparam.c index e1325a6f..f48ba6d7 100644 --- a/tests/sched_xetparam.c +++ b/tests/sched_xetparam.c @@ -1,12 +1,13 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #if defined __NR_sched_getparam && defined __NR_sched_setparam @@ -17,18 +18,27 @@ int main(void) { + PIDNS_TEST_INIT; + struct sched_param *const param = tail_alloc(sizeof(struct sched_param)); - long rc = syscall(__NR_sched_getparam, 0, param); - printf("sched_getparam(0, [%d]) = %ld\n", - param->sched_priority, rc); + const int pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); + + long rc = syscall(__NR_sched_getparam, pid, param); + pidns_print_leader(); + printf("sched_getparam(%d%s, [%d]) = %ld\n", + pid, pid_str, param->sched_priority, rc); param->sched_priority = -1; - rc = syscall(__NR_sched_setparam, 0, param); - printf("sched_setparam(0, [%d]) = %ld %s (%m)\n", + rc = syscall(__NR_sched_setparam, pid, param); + pidns_print_leader(); + printf("sched_setparam(%d%s, [%d]) = %ld %s (%m)\n", + pid, pid_str, param->sched_priority, rc, errno2name()); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests/sched_xetscheduler--pidns-translation.c b/tests/sched_xetscheduler--pidns-translation.c new file mode 100644 index 00000000..78b794b2 --- /dev/null +++ b/tests/sched_xetscheduler--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "sched_xetscheduler.c" diff --git a/tests/sched_xetscheduler--pidns-translation.gen.test b/tests/sched_xetscheduler--pidns-translation.gen.test new file mode 100755 index 00000000..12581e44 --- /dev/null +++ b/tests/sched_xetscheduler--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sched_xetscheduler--pidns-translation test_pidns -a22 -e trace=sched_getscheduler,sched_setscheduler); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a22 -e trace=sched_getscheduler,sched_setscheduler diff --git a/tests/sched_xetscheduler.c b/tests/sched_xetscheduler.c index bc48085a..d93db385 100644 --- a/tests/sched_xetscheduler.c +++ b/tests/sched_xetscheduler.c @@ -1,12 +1,13 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #if defined __NR_sched_getscheduler && defined __NR_sched_setscheduler @@ -17,8 +18,13 @@ int main(void) { + PIDNS_TEST_INIT; + TAIL_ALLOC_OBJECT_CONST_PTR(struct sched_param, param); - long rc = syscall(__NR_sched_getscheduler, 0); + const int pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); + + long rc = syscall(__NR_sched_getscheduler, pid); const char *scheduler; switch (rc) { case SCHED_FIFO: @@ -50,33 +56,43 @@ main(void) default: scheduler = "SCHED_OTHER"; } - printf("sched_getscheduler(0) = %ld (%s)\n", - rc, scheduler); + pidns_print_leader(); + printf("sched_getscheduler(%d%s) = %ld (%s)\n", + pid, pid_str, rc, scheduler); rc = syscall(__NR_sched_getscheduler, -1); + pidns_print_leader(); printf("sched_getscheduler(-1) = %s\n", sprintrc(rc)); param->sched_priority = -1; - rc = syscall(__NR_sched_setscheduler, 0, SCHED_FIFO, NULL); - printf("sched_setscheduler(0, SCHED_FIFO, NULL) = %s\n", sprintrc(rc)); + rc = syscall(__NR_sched_setscheduler, pid, SCHED_FIFO, NULL); + pidns_print_leader(); + printf("sched_setscheduler(%d%s, SCHED_FIFO, NULL) = %s\n", + pid, pid_str, sprintrc(rc)); - rc = syscall(__NR_sched_setscheduler, 0, SCHED_FIFO, param + 1); - printf("sched_setscheduler(0, SCHED_FIFO, %p) = %s\n", param + 1, - sprintrc(rc)); + rc = syscall(__NR_sched_setscheduler, pid, SCHED_FIFO, param + 1); + pidns_print_leader(); + printf("sched_setscheduler(%d%s, SCHED_FIFO, %p) = %s\n", + pid, pid_str, param + 1, sprintrc(rc)); - rc = syscall(__NR_sched_setscheduler, 0, 0xfaceda7a, param); - printf("sched_setscheduler(0, %#x /* SCHED_??? */, [%d]) = %s\n", - 0xfaceda7a, param->sched_priority, sprintrc(rc)); + rc = syscall(__NR_sched_setscheduler, pid, 0xfaceda7a, param); + pidns_print_leader(); + printf("sched_setscheduler(%d%s, %#x /* SCHED_??? */, [%d]) = %s\n", + pid, pid_str, 0xfaceda7a, + param->sched_priority, sprintrc(rc)); rc = syscall(__NR_sched_setscheduler, -1, SCHED_FIFO, param); + pidns_print_leader(); printf("sched_setscheduler(-1, SCHED_FIFO, [%d]) = %s\n", param->sched_priority, sprintrc(rc)); - rc = syscall(__NR_sched_setscheduler, 0, SCHED_FIFO, param); - printf("sched_setscheduler(0, SCHED_FIFO, [%d]) = %s\n", - param->sched_priority, sprintrc(rc)); + rc = syscall(__NR_sched_setscheduler, pid, SCHED_FIFO, param); + pidns_print_leader(); + printf("sched_setscheduler(%d%s, SCHED_FIFO, [%d]) = %s\n", + pid, pid_str, param->sched_priority, sprintrc(rc)); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests/sched_yield.c b/tests/sched_yield.c index 40b55617..8a3d689f 100644 --- a/tests/sched_yield.c +++ b/tests/sched_yield.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sched_yield diff --git a/tests/seccomp-filter-v.c b/tests/seccomp-filter-v.c index 98eaeee5..b5f38ca5 100644 --- a/tests/seccomp-filter-v.c +++ b/tests/seccomp-filter-v.c @@ -2,7 +2,7 @@ * Check verbose decoding of seccomp SECCOMP_SET_MODE_FILTER. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -13,16 +13,13 @@ #include #include #include -#include #include - -#ifdef HAVE_PRCTL -# include -#endif +#include #ifdef HAVE_LINUX_SECCOMP_H # include #endif #include +#include "scno.h" #if defined __NR_seccomp \ && defined PR_SET_NO_NEW_PRIVS \ @@ -43,14 +40,14 @@ BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_KILL) # define PRINT_ALLOW_SYSCALL(nr) \ - tprintf("BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, %#x, 0, 0x1), " \ - "BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_ALLOW), ", \ - __NR_ ## nr) + tprintf("BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, %#lx, 0, 0x1), " \ + "BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_ALLOW), ", \ + (long) __NR_ ## nr) # define PRINT_DENY_SYSCALL(nr, err) \ - tprintf("BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, %#x, 0, 0x1), " \ - "BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_ERRNO|%#x), ", \ - __NR_ ## nr, err) + tprintf("BPF_JUMP(BPF_JMP|BPF_K|BPF_JEQ, %#lx, 0, 0x1), " \ + "BPF_STMT(BPF_RET|BPF_K, SECCOMP_RET_ERRNO|%#x), ", \ + (long) __NR_ ## nr, err) static const struct sock_filter filter_c[] = { /* load syscall number */ @@ -118,7 +115,8 @@ main(void) tprintf("seccomp(SECCOMP_SET_MODE_FILTER, %s, {len=%u, filter=[", "SECCOMP_FILTER_FLAG_TSYNC|SECCOMP_FILTER_FLAG_LOG|" "SECCOMP_FILTER_FLAG_SPEC_ALLOW|" - "SECCOMP_FILTER_FLAG_NEW_LISTENER|0xfffffff0", + "SECCOMP_FILTER_FLAG_NEW_LISTENER|" + "SECCOMP_FILTER_FLAG_TSYNC_ESRCH|0xffffffe0", prog->len); for (i = 0; i < BPF_MAXINSNS; ++i) { if (i) diff --git a/tests/seccomp-filter.c b/tests/seccomp-filter.c index 5e28ffca..ef485dd8 100644 --- a/tests/seccomp-filter.c +++ b/tests/seccomp-filter.c @@ -2,7 +2,7 @@ * Check decoding of seccomp SECCOMP_SET_MODE_FILTER. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -11,7 +11,7 @@ #include "tests.h" #include -#include +#include "scno.h" #include #ifdef HAVE_LINUX_SECCOMP_H @@ -38,12 +38,13 @@ main(void) " = %ld %s (%m)\n", "SECCOMP_FILTER_FLAG_TSYNC|SECCOMP_FILTER_FLAG_LOG|" "SECCOMP_FILTER_FLAG_SPEC_ALLOW|" - "SECCOMP_FILTER_FLAG_NEW_LISTENER|0xfffffff0", + "SECCOMP_FILTER_FLAG_NEW_LISTENER|" + "SECCOMP_FILTER_FLAG_TSYNC_ESRCH|0xffffffe0", prog->len, prog->filter, rc, errno2name()); - rc = syscall(__NR_seccomp, SECCOMP_SET_MODE_FILTER, -16L, efault); + rc = syscall(__NR_seccomp, SECCOMP_SET_MODE_FILTER, -32L, efault); printf("seccomp(SECCOMP_SET_MODE_FILTER, %s, %p) = %ld %s (%m)\n", - "0xfffffff0 /* SECCOMP_FILTER_FLAG_??? */", + "0xffffffe0 /* SECCOMP_FILTER_FLAG_??? */", efault, rc, errno2name()); puts("+++ exited with 0 +++"); diff --git a/tests/seccomp-strict.c b/tests/seccomp-strict.c index 1d088109..fcf30e54 100644 --- a/tests/seccomp-strict.c +++ b/tests/seccomp-strict.c @@ -2,13 +2,14 @@ * Check how seccomp SECCOMP_SET_MODE_STRICT is decoded. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_seccomp && defined __NR_exit @@ -37,7 +38,7 @@ main(void) rc = 0; } else { /* - * If kernel implementaton of SECCOMP_MODE_STRICT is buggy, + * If kernel implementation of SECCOMP_MODE_STRICT is buggy, * the following syscall will result to SIGKILL. */ rc = write(1, text1, LENGTH_OF(text1)) != LENGTH_OF(text1); diff --git a/tests/seccomp_get_action_avail.c b/tests/seccomp_get_action_avail.c index e61678f4..6ae23b96 100644 --- a/tests/seccomp_get_action_avail.c +++ b/tests/seccomp_get_action_avail.c @@ -8,7 +8,7 @@ */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_seccomp diff --git a/tests/select.c b/tests/select.c index 7935032b..d65d1364 100644 --- a/tests/select.c +++ b/tests/select.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_select && !defined __NR__newselect diff --git a/tests/semop-common.c b/tests/semop-common.c new file mode 100644 index 00000000..646a1169 --- /dev/null +++ b/tests/semop-common.c @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2016-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include +#include +#include +#include +#include +#include + +#define XLAT_MACROS_ONLY +#include "xlat/semop_flags.h" +#undef XLAT_MACROS_ONLY + +static const char *errstr; + +static long +k_semop(const unsigned int semid, + const kernel_ulong_t sops, + const unsigned int nsops); + +union semun { + int val; + struct semid_ds *buf; + unsigned short *array; + struct seminfo *__buf; +}; + +static int id = -1; + +static void +cleanup(void) +{ + semctl(id, 0, IPC_RMID, 0); + id = -1; +} + +int +main(void) +{ + static const int bogus_semid = 0xfdb97531; + static kernel_ulong_t bogus_sops = (kernel_ulong_t) -1ULL; + static const unsigned int bogus_nsops = 0xdeadbeefU; + + id = semget(IPC_PRIVATE, 1, 0600); + if (id < 0) + perror_msg_and_skip("semget"); + atexit(cleanup); + + union semun sem_union = { .val = 0 }; + if (semctl(id, 0, SETVAL, sem_union) == -1) + perror_msg_and_skip("semctl"); + + k_semop(bogus_semid, 0, bogus_nsops); + printf("semop(%d, NULL, %u) = %s\n", + bogus_semid, bogus_nsops, errstr); + + k_semop(bogus_semid, bogus_sops, 1); + printf("semop(%d, %#llx, %u) = %s\n", + bogus_semid, (unsigned long long) bogus_sops, 1, errstr); + + TAIL_ALLOC_OBJECT_CONST_PTR(struct sembuf, sem_b2); + sem_b2->sem_num = 0xface; + sem_b2->sem_op = 0xf00d; + sem_b2->sem_flg = 0xbeef; + + k_semop(bogus_semid, (uintptr_t) sem_b2, 2); + printf("semop(%d, [{%hu, %hd, %s%s%#hx}, ... /* %p */], %u) = %s\n", + bogus_semid, sem_b2->sem_num, sem_b2->sem_op, + sem_b2->sem_flg & SEM_UNDO ? "SEM_UNDO|" : "", + sem_b2->sem_flg & IPC_NOWAIT ? "IPC_NOWAIT|" : "", + (short) (sem_b2->sem_flg & ~(SEM_UNDO | IPC_NOWAIT)), + sem_b2 + 1, 2, errstr); + + TAIL_ALLOC_OBJECT_CONST_PTR(struct sembuf, sem_b); + sem_b->sem_num = 0; + sem_b->sem_op = 1; + sem_b->sem_flg = SEM_UNDO; + + k_semop(id, (uintptr_t) sem_b, 1); + printf("semop(%d, [{0, 1, SEM_UNDO}], 1) = %s\n", id, errstr); + + sem_b->sem_op = -1; + k_semop(id, (uintptr_t) sem_b, 1); + printf("semop(%d, [{0, -1, SEM_UNDO}], 1) = %s\n", id, errstr); + + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests/semop-indirect.c b/tests/semop-indirect.c new file mode 100644 index 00000000..452f7baf --- /dev/null +++ b/tests/semop-indirect.c @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2016-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#if defined __NR_ipc && !defined __ARM_EABI__ + +# include "semop-common.c" + +# define XLAT_MACROS_ONLY +# include "xlat/ipccalls.h" +# undef XLAT_MACROS_ONLY + +static long +k_semop(const unsigned int semid, + const kernel_ulong_t sops, + const unsigned int nsops) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | SEMOP; + const kernel_ulong_t arg2 = fill | semid; + const kernel_ulong_t arg3 = fill | nsops; + const kernel_ulong_t arg5 = sops; + const long rc = syscall(__NR_ipc, arg1, arg2, arg3, bad, arg5, bad); + errstr = sprintrc(rc); + return rc; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_ipc && !__ARM_EABI__") + +#endif diff --git a/tests/semop-indirect.gen.test b/tests/semop-indirect.gen.test new file mode 100755 index 00000000..b70a697c --- /dev/null +++ b/tests/semop-indirect.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (semop-indirect -a32 -e trace=semop); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a32 -e trace=semop diff --git a/tests/semop.c b/tests/semop.c index f7f04701..7725cd46 100644 --- a/tests/semop.c +++ b/tests/semop.c @@ -1,143 +1,34 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include -#include -#include -#include -#include +#include "scno.h" -#include "xlat.h" -#include "xlat/semop_flags.h" +#ifdef __NR_semop -union semun { - int val; - struct semid_ds *buf; - unsigned short *array; - struct seminfo *__buf; -}; +# include "semop-common.c" -static int id = -1; - -static void -cleanup(void) +static long +k_semop(const unsigned int semid, + const kernel_ulong_t sops, + const unsigned int nsops) { - semctl(id, 0, IPC_RMID, 0); - id = -1; + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | semid; + const kernel_ulong_t arg2 = sops; + const kernel_ulong_t arg3 = fill | nsops; + const long rc = syscall(__NR_semop, arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; } -int -main(void) -{ - static const int bogus_semid = 0xfdb97531; - static void * const bogus_sops = (void *) -1L; - static const size_t bogus_nsops = (size_t) 0xdefaceddeadbeefULL; - - TAIL_ALLOC_OBJECT_CONST_PTR(struct timespec, ts); - int rc; - - id = semget(IPC_PRIVATE, 1, 0600); - if (id < 0) - perror_msg_and_skip("semget"); - atexit(cleanup); - - union semun sem_union = { .val = 0 }; - if (semctl(id, 0, SETVAL, sem_union) == -1) - perror_msg_and_skip("semctl"); - - TAIL_ALLOC_OBJECT_CONST_PTR(struct sembuf, sem_b); - TAIL_ALLOC_OBJECT_CONST_PTR(struct sembuf, sem_b2); - - rc = semop(bogus_semid, NULL, bogus_nsops); - printf("semop(%d, NULL, %u) = %s\n", - bogus_semid, (unsigned) bogus_nsops, sprintrc(rc)); - - rc = semop(bogus_semid, bogus_sops, 1); - printf("semop(%d, %p, %u) = %s\n", - bogus_semid, bogus_sops, 1, sprintrc(rc)); - - sem_b->sem_num = 0; - sem_b->sem_op = 1; - sem_b->sem_flg = SEM_UNDO; - - sem_b2->sem_num = 0xface; - sem_b2->sem_op = 0xf00d; - sem_b2->sem_flg = 0xbeef; +#else - rc = semop(bogus_semid, sem_b2, 2); - printf("semop(%d, [{%hu, %hd, %s%s%#hx}, ... /* %p */], %u) = %s\n", - bogus_semid, sem_b2->sem_num, sem_b2->sem_op, - sem_b2->sem_flg & SEM_UNDO ? "SEM_UNDO|" : "", - sem_b2->sem_flg & IPC_NOWAIT ? "IPC_NOWAIT|" : "", - (short) (sem_b2->sem_flg & ~(SEM_UNDO | IPC_NOWAIT)), - sem_b2 + 1, 2, sprintrc(rc)); +SKIP_MAIN_UNDEFINED("__NR_semop") - if (semop(id, sem_b, 1)) - perror_msg_and_skip("semop, 1"); - printf("semop(%d, [{0, 1, SEM_UNDO}], 1) = 0\n", id); - - sem_b->sem_op = -1; - if (semop(id, sem_b, 1)) - perror_msg_and_skip("semop, -1"); - printf("semop(%d, [{0, -1, SEM_UNDO}], 1) = 0\n", id); - - rc = semtimedop(bogus_semid, NULL, bogus_nsops, NULL); - printf("semtimedop(%d, NULL, %u, NULL) = %s\n", - bogus_semid, (unsigned) bogus_nsops, sprintrc(rc)); - - rc = semtimedop(id, sem_b + 1, 1, ts + 1); - printf("semtimedop(%d, %p, 1, %p) = %s\n", - id, sem_b + 1, ts + 1, sprintrc(rc)); - - ts->tv_sec = 1; - ts->tv_nsec = 123456789; - rc = semtimedop(bogus_semid, sem_b2, 2, ts); - printf("semtimedop(%d, [{%hu, %hd, %s%s%#hx}, ... /* %p */], %u" - ", {tv_sec=%lld, tv_nsec=%llu}) = %s\n", - bogus_semid, sem_b2->sem_num, sem_b2->sem_op, - sem_b2->sem_flg & SEM_UNDO ? "SEM_UNDO|" : "", - sem_b2->sem_flg & IPC_NOWAIT ? "IPC_NOWAIT|" : "", - (short) (sem_b2->sem_flg & ~(SEM_UNDO | IPC_NOWAIT)), - sem_b2 + 1, 2, - (long long) ts->tv_sec, zero_extend_signed_to_ull(ts->tv_nsec), - sprintrc(rc)); - - sem_b->sem_op = 1; - if (semtimedop(id, sem_b, 1, NULL)) - perror_msg_and_skip("semtimedop, 1"); - printf("semtimedop(%d, [{0, 1, SEM_UNDO}], 1, NULL) = 0\n", id); - - sem_b->sem_op = -1; - if (semtimedop(id, sem_b, 1, ts)) - perror_msg_and_skip("semtimedop, -1"); - printf("semtimedop(%d, [{0, -1, SEM_UNDO}], 1" - ", {tv_sec=%lld, tv_nsec=%llu}) = 0\n", id, - (long long) ts->tv_sec, zero_extend_signed_to_ull(ts->tv_nsec)); - - sem_b->sem_op = 1; - ts->tv_sec = 0xdeadbeefU; - ts->tv_nsec = 0xfacefeedU; - rc = semtimedop(id, sem_b, 1, ts); - printf("semtimedop(%d, [{0, 1, SEM_UNDO}], 1" - ", {tv_sec=%lld, tv_nsec=%llu}) = %s\n", - id, (long long) ts->tv_sec, - zero_extend_signed_to_ull(ts->tv_nsec), sprintrc(rc)); - - sem_b->sem_op = -1; - ts->tv_sec = (time_t) 0xcafef00ddeadbeefLL; - ts->tv_nsec = (long) 0xbadc0dedfacefeedLL; - rc = semtimedop(id, sem_b, 1, ts); - printf("semtimedop(%d, [{0, -1, SEM_UNDO}], 1" - ", {tv_sec=%lld, tv_nsec=%llu}) = %s\n", - id, (long long) ts->tv_sec, - zero_extend_signed_to_ull(ts->tv_nsec), sprintrc(rc)); - - puts("+++ exited with 0 +++"); - return 0; -} +#endif diff --git a/tests/semop.gen.test b/tests/semop.gen.test index 21b67ead..4199975a 100755 --- a/tests/semop.gen.test +++ b/tests/semop.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (semop -a32 -e trace=semop,semtimedop); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (semop -a32 ); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a32 -e trace=semop,semtimedop +run_strace_match_diff -a32 diff --git a/tests/semtimedop.c b/tests/semtimedop.c new file mode 100644 index 00000000..e3cea328 --- /dev/null +++ b/tests/semtimedop.c @@ -0,0 +1,155 @@ +/* + * Copyright (c) 2016-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#if defined __NR_semtimedop || defined __NR_socketcall + +# include +# include +# include +# include +# include +# include + +# define XLAT_MACROS_ONLY +# include "xlat/semop_flags.h" +# undef XLAT_MACROS_ONLY + +union semun { + int val; + struct semid_ds *buf; + unsigned short *array; + struct seminfo *__buf; +}; + +static int id = -1; + +static void +cleanup(void) +{ + semctl(id, 0, IPC_RMID, 0); + id = -1; +} + +int +main(void) +{ + static const int bogus_semid = 0xfdb97531; + static void * const bogus_sops = (void *) -1L; + static const size_t bogus_nsops = (size_t) 0xdefaceddeadbeefULL; + + TAIL_ALLOC_OBJECT_CONST_PTR(struct timespec, ts); + int rc; + + id = semget(IPC_PRIVATE, 1, 0600); + if (id < 0) + perror_msg_and_skip("semget"); + atexit(cleanup); + + union semun sem_union = { .val = 0 }; + if (semctl(id, 0, SETVAL, sem_union) == -1) + perror_msg_and_skip("semctl"); + + TAIL_ALLOC_OBJECT_CONST_PTR(struct sembuf, sem_b); + TAIL_ALLOC_OBJECT_CONST_PTR(struct sembuf, sem_b2); + + rc = semtimedop(bogus_semid, NULL, bogus_nsops, NULL); + printf("semtimedop(%d, NULL, %u, NULL) = %s\n", + bogus_semid, (unsigned) bogus_nsops, sprintrc(rc)); + + rc = semtimedop(bogus_semid, bogus_sops, 1, NULL); + printf("semtimedop(%d, %p, %u, NULL) = %s\n", + bogus_semid, bogus_sops, 1, sprintrc(rc)); + + sem_b->sem_num = 0; + sem_b->sem_op = 1; + sem_b->sem_flg = SEM_UNDO; + + sem_b2->sem_num = 0xface; + sem_b2->sem_op = 0xf00d; + sem_b2->sem_flg = 0xbeef; + + rc = semtimedop(bogus_semid, sem_b2, 2, NULL); + printf("semtimedop(%d, [{%hu, %hd, %s%s%#hx}, ... /* %p */], %u" + ", NULL) = %s\n", + bogus_semid, sem_b2->sem_num, sem_b2->sem_op, + sem_b2->sem_flg & SEM_UNDO ? "SEM_UNDO|" : "", + sem_b2->sem_flg & IPC_NOWAIT ? "IPC_NOWAIT|" : "", + (short) (sem_b2->sem_flg & ~(SEM_UNDO | IPC_NOWAIT)), + sem_b2 + 1, 2, sprintrc(rc)); + + if (semtimedop(id, sem_b, 1, NULL)) + perror_msg_and_skip("semtimedop, 1"); + printf("semtimedop(%d, [{0, 1, SEM_UNDO}], 1, NULL) = 0\n", id); + + sem_b->sem_op = -1; + if (semtimedop(id, sem_b, 1, NULL)) + perror_msg_and_skip("semtimedop, -1"); + printf("semtimedop(%d, [{0, -1, SEM_UNDO}], 1, NULL) = 0\n", id); + + rc = semtimedop(bogus_semid, NULL, bogus_nsops, NULL); + printf("semtimedop(%d, NULL, %u, NULL) = %s\n", + bogus_semid, (unsigned) bogus_nsops, sprintrc(rc)); + + rc = semtimedop(id, sem_b + 1, 1, ts + 1); + printf("semtimedop(%d, %p, 1, %p) = %s\n", + id, sem_b + 1, ts + 1, sprintrc(rc)); + + ts->tv_sec = 1; + ts->tv_nsec = 123456789; + rc = semtimedop(bogus_semid, sem_b2, 2, ts); + printf("semtimedop(%d, [{%hu, %hd, %s%s%#hx}, ... /* %p */], %u" + ", {tv_sec=%lld, tv_nsec=%llu}) = %s\n", + bogus_semid, sem_b2->sem_num, sem_b2->sem_op, + sem_b2->sem_flg & SEM_UNDO ? "SEM_UNDO|" : "", + sem_b2->sem_flg & IPC_NOWAIT ? "IPC_NOWAIT|" : "", + (short) (sem_b2->sem_flg & ~(SEM_UNDO | IPC_NOWAIT)), + sem_b2 + 1, 2, + (long long) ts->tv_sec, zero_extend_signed_to_ull(ts->tv_nsec), + sprintrc(rc)); + + sem_b->sem_op = 1; + if (semtimedop(id, sem_b, 1, NULL)) + perror_msg_and_skip("semtimedop, 1"); + printf("semtimedop(%d, [{0, 1, SEM_UNDO}], 1, NULL) = 0\n", id); + + sem_b->sem_op = -1; + if (semtimedop(id, sem_b, 1, ts)) + perror_msg_and_skip("semtimedop, -1"); + printf("semtimedop(%d, [{0, -1, SEM_UNDO}], 1" + ", {tv_sec=%lld, tv_nsec=%llu}) = 0\n", id, + (long long) ts->tv_sec, zero_extend_signed_to_ull(ts->tv_nsec)); + + sem_b->sem_op = 1; + ts->tv_sec = 0xdeadbeefU; + ts->tv_nsec = 0xfacefeedU; + rc = semtimedop(id, sem_b, 1, ts); + printf("semtimedop(%d, [{0, 1, SEM_UNDO}], 1" + ", {tv_sec=%lld, tv_nsec=%llu}) = %s\n", + id, (long long) ts->tv_sec, + zero_extend_signed_to_ull(ts->tv_nsec), sprintrc(rc)); + + sem_b->sem_op = -1; + ts->tv_sec = (time_t) 0xcafef00ddeadbeefLL; + ts->tv_nsec = (long) 0xbadc0dedfacefeedLL; + rc = semtimedop(id, sem_b, 1, ts); + printf("semtimedop(%d, [{0, -1, SEM_UNDO}], 1" + ", {tv_sec=%lld, tv_nsec=%llu}) = %s\n", + id, (long long) ts->tv_sec, + zero_extend_signed_to_ull(ts->tv_nsec), sprintrc(rc)); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_semtimedop || __NR_socketcall") + +#endif diff --git a/tests/semtimedop.gen.test b/tests/semtimedop.gen.test new file mode 100755 index 00000000..1c767ff4 --- /dev/null +++ b/tests/semtimedop.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (semtimedop ); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff diff --git a/tests/sendfile.c b/tests/sendfile.c index 6ef3232e..cb6dd388 100644 --- a/tests/sendfile.c +++ b/tests/sendfile.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sendfile @@ -50,14 +50,9 @@ main(void) const unsigned int blen = file_size / 3; const unsigned int alen = file_size - blen; - static const char fname[] = "sendfile-tmpfile"; - int reg_in = open(fname, O_RDWR | O_CREAT | O_TRUNC, 0600); - if (reg_in < 0) - perror_msg_and_fail("open: %s", fname); - if (unlink(fname)) - perror_msg_and_fail("unlink: %s", fname); + int reg_in = create_tmpfile(O_RDWR); if (ftruncate(reg_in, file_size)) - perror_msg_and_fail("ftruncate: %s", fname); + perror_msg_and_fail("ftruncate(%d, %u)", reg_in, file_size); TAIL_ALLOC_OBJECT_VAR_PTR(uint32_t, p_off); void *p = p_off + 1; diff --git a/tests/sendfile64.c b/tests/sendfile64.c index c318ace8..9bcf1fc7 100644 --- a/tests/sendfile64.c +++ b/tests/sendfile64.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sendfile64 @@ -50,14 +50,9 @@ main(void) const unsigned int blen = file_size / 3; const unsigned int alen = file_size - blen; - static const char fname[] = "sendfile64-tmpfile"; - int reg_in = open(fname, O_RDWR | O_CREAT | O_TRUNC, 0600); - if (reg_in < 0) - perror_msg_and_fail("open: %s", fname); - if (unlink(fname)) - perror_msg_and_fail("unlink: %s", fname); + int reg_in = create_tmpfile(O_RDWR); if (ftruncate(reg_in, file_size)) - perror_msg_and_fail("ftruncate: %s", fname); + perror_msg_and_fail("ftruncate(%d, %u)", reg_in, file_size); TAIL_ALLOC_OBJECT_CONST_PTR(uint64_t, p_off); void *p = p_off + 1; diff --git a/tests/set_mempolicy-Xabbrev.c b/tests/set_mempolicy-Xabbrev.c new file mode 100644 index 00000000..2dbc4871 --- /dev/null +++ b/tests/set_mempolicy-Xabbrev.c @@ -0,0 +1 @@ +#include "set_mempolicy.c" diff --git a/tests/set_mempolicy-Xabbrev.gen.test b/tests/set_mempolicy-Xabbrev.gen.test new file mode 100755 index 00000000..f27e985b --- /dev/null +++ b/tests/set_mempolicy-Xabbrev.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (set_mempolicy-Xabbrev -a34 -s3 -Xabbrev -e trace=set_mempolicy); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a34 -s3 -Xabbrev -e trace=set_mempolicy diff --git a/tests/set_mempolicy-Xraw.c b/tests/set_mempolicy-Xraw.c new file mode 100644 index 00000000..47436b51 --- /dev/null +++ b/tests/set_mempolicy-Xraw.c @@ -0,0 +1,2 @@ +#define XLAT_RAW 1 +#include "set_mempolicy.c" diff --git a/tests/set_mempolicy-Xraw.gen.test b/tests/set_mempolicy-Xraw.gen.test new file mode 100755 index 00000000..3b5a6a4d --- /dev/null +++ b/tests/set_mempolicy-Xraw.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (set_mempolicy-Xraw -a24 -s3 -Xraw -e trace=set_mempolicy); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a24 -s3 -Xraw -e trace=set_mempolicy diff --git a/tests/set_mempolicy-Xverbose.c b/tests/set_mempolicy-Xverbose.c new file mode 100644 index 00000000..0396cb42 --- /dev/null +++ b/tests/set_mempolicy-Xverbose.c @@ -0,0 +1,2 @@ +#define XLAT_VERBOSE 1 +#include "set_mempolicy.c" diff --git a/tests/set_mempolicy-Xverbose.gen.test b/tests/set_mempolicy-Xverbose.gen.test new file mode 100755 index 00000000..741229ed --- /dev/null +++ b/tests/set_mempolicy-Xverbose.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (set_mempolicy-Xverbose -s3 -Xverbose -e trace=set_mempolicy); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -s3 -Xverbose -e trace=set_mempolicy diff --git a/tests/set_mempolicy.c b/tests/set_mempolicy.c index 46703713..ee65c4c9 100644 --- a/tests/set_mempolicy.c +++ b/tests/set_mempolicy.c @@ -2,29 +2,92 @@ * Check decoding of set_mempolicy syscall. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_set_mempolicy -# include # include # include # include -# include "xlat.h" -# include "xlat/policies.h" - # define MAX_STRLEN 3 # define NLONGS(n) ((n + 8 * sizeof(long) - 2) \ / (8 * sizeof(long))) +static const char *errstr; + +static long +k_set_mempolicy(const unsigned int mode, + const void *const nmask, + const unsigned long maxnode) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | mode; + const kernel_ulong_t arg2 = (unsigned long) nmask; + const kernel_ulong_t arg3 = maxnode; + const long rc = syscall(__NR_set_mempolicy, + arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +# if XLAT_RAW +# define out_str raw +# elif XLAT_VERBOSE +# define out_str verbose +# else +# define out_str abbrev +# endif + +static struct { + unsigned int val; + const char *raw; + const char *verbose; + const char *abbrev; +} mpol_modes[] = { + { ARG_STR(0), + "0 /* MPOL_DEFAULT */", + "MPOL_DEFAULT" }, + { ARG_STR(0x1), + "0x1 /* MPOL_PREFERRED */", + "MPOL_PREFERRED" }, + { ARG_STR(0x2), + "0x2 /* MPOL_BIND */", + "MPOL_BIND" }, + { ARG_STR(0x3), + "0x3 /* MPOL_INTERLEAVE */", + "MPOL_INTERLEAVE" }, + { ARG_STR(0x4), + "0x4 /* MPOL_LOCAL */", + "MPOL_LOCAL" }, + { ARG_STR(0x8000), + "0x8000 /* MPOL_DEFAULT|MPOL_F_STATIC_NODES */", + "MPOL_DEFAULT|MPOL_F_STATIC_NODES" }, + { ARG_STR(0x4001), + "0x4001 /* MPOL_PREFERRED|MPOL_F_RELATIVE_NODES */", + "MPOL_PREFERRED|MPOL_F_RELATIVE_NODES" }, + { ARG_STR(0xc002), + "0xc002 /* MPOL_BIND|MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES */", + "MPOL_BIND|MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES" }, + { ARG_STR(0x5), + "0x5 /* MPOL_??? */", + "0x5 /* MPOL_??? */" }, + { ARG_STR(0xffff3fff), + "0xffff3fff /* MPOL_??? */", + "0xffff3fff /* MPOL_??? */" }, + { ARG_STR(0xffffffff), + "0xffffffff /* MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES|0xffff3fff */", + "MPOL_F_STATIC_NODES|MPOL_F_RELATIVE_NODES|0xffff3fff" } +}; + static void print_nodes(const unsigned long maxnode, unsigned int offset) { @@ -38,10 +101,9 @@ print_nodes(const unsigned long maxnode, unsigned int offset) tail_alloc(size ? size : (offset ? 1 : 0)); memset(nodemask, 0, size); - long rc = syscall(__NR_set_mempolicy, 0, nodemask, maxnode); - const char *errstr = sprintrc(rc); + k_set_mempolicy(mpol_modes[0].val, nodemask, maxnode); - fputs("set_mempolicy(MPOL_DEFAULT, ", stdout); + printf("set_mempolicy(%s, ", mpol_modes[0].out_str); if (nlongs) { putc('[', stdout); @@ -103,15 +165,24 @@ test_offset(const unsigned int offset) int main(void) { - if (syscall(__NR_set_mempolicy, 0, 0, 0)) + if (k_set_mempolicy(mpol_modes[0].val, 0, 0)) perror_msg_and_skip("set_mempolicy"); - puts("set_mempolicy(MPOL_DEFAULT, NULL, 0) = 0"); + printf("set_mempolicy(%s, NULL, 0) = 0\n", mpol_modes[0].out_str); const unsigned long *nodemask = (void *) 0xfacefeedfffffffeULL; - const unsigned long maxnode = (unsigned long) 0xcafef00dbadc0dedULL; - long rc = syscall(__NR_set_mempolicy, 1, nodemask, maxnode); - printf("set_mempolicy(MPOL_PREFERRED, %p, %lu) = %s\n", - nodemask, maxnode, sprintrc(rc)); + const unsigned long maxnode = (unsigned long) 0xcafef00ddeadbeefULL; + + for (unsigned int i = 0; i < ARRAY_SIZE(mpol_modes); ++i) { + if (i) { + k_set_mempolicy(mpol_modes[i].val, 0, 0); + printf("set_mempolicy(%s, NULL, 0) = %s\n", + mpol_modes[i].out_str, errstr); + } + + k_set_mempolicy(mpol_modes[i].val, nodemask, maxnode); + printf("set_mempolicy(%s, %p, %lu) = %s\n", + mpol_modes[i].out_str, nodemask, maxnode, errstr); + } test_offset(0); test_offset(1); diff --git a/tests/set_mempolicy.gen.test b/tests/set_mempolicy.gen.test index f8c81c75..a527e6af 100755 --- a/tests/set_mempolicy.gen.test +++ b/tests/set_mempolicy.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (set_mempolicy -s3 -a35); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (set_mempolicy -a34 -s3); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -s3 -a35 +run_strace_match_diff -a34 -s3 diff --git a/tests/set_ptracer_any.c b/tests/set_ptracer_any.c index 747359c2..9fa56c14 100644 --- a/tests/set_ptracer_any.c +++ b/tests/set_ptracer_any.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2013-2015 Dmitry V. Levin - * Copyright (c) 2013-2018 The strace developers. + * Copyright (c) 2013-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,25 +9,21 @@ #include "tests.h" #include #include -#ifdef HAVE_PRCTL -# include -#endif +#include int main(int argc, char **argv) { if (argc < 2) return 99; -#ifdef HAVE_PRCTL /* Turn off restrictions on tracing if applicable. If the command * aren't available on this system, that's OK too. */ -# ifndef PR_SET_PTRACER -# define PR_SET_PTRACER 0x59616d61 -# endif -# ifndef PR_SET_PTRACER_ANY -# define PR_SET_PTRACER_ANY -1UL -# endif - (void) prctl(PR_SET_PTRACER, PR_SET_PTRACER_ANY, 0, 0, 0); +#ifndef PR_SET_PTRACER +# define PR_SET_PTRACER 0x59616d61 #endif +#ifndef PR_SET_PTRACER_ANY +# define PR_SET_PTRACER_ANY -1UL +#endif + (void) prctl(PR_SET_PTRACER, PR_SET_PTRACER_ANY, 0, 0, 0); if (write(1, "\n", 1) != 1) { perror("write"); return 99; diff --git a/tests/setdomainname.c b/tests/setdomainname.c index 177c0fd7..c2ff8eaa 100644 --- a/tests/setdomainname.c +++ b/tests/setdomainname.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setdomainname diff --git a/tests/setfsgid.c b/tests/setfsgid.c index 496b2679..74d642c4 100644 --- a/tests/setfsgid.c +++ b/tests/setfsgid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setfsgid diff --git a/tests/setfsgid32.c b/tests/setfsgid32.c index a931602c..29b41a9b 100644 --- a/tests/setfsgid32.c +++ b/tests/setfsgid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setfsgid32 diff --git a/tests/setfsuid.c b/tests/setfsuid.c index 269d38f2..78d4eb52 100644 --- a/tests/setfsuid.c +++ b/tests/setfsuid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setfsuid diff --git a/tests/setfsuid32.c b/tests/setfsuid32.c index cfcc0f83..2d4fa835 100644 --- a/tests/setfsuid32.c +++ b/tests/setfsuid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setfsuid32 diff --git a/tests/setgid.c b/tests/setgid.c index 3374924a..aba372b8 100644 --- a/tests/setgid.c +++ b/tests/setgid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setgid diff --git a/tests/setgid32.c b/tests/setgid32.c index 427c77b0..ac695e18 100644 --- a/tests/setgid32.c +++ b/tests/setgid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setgid32 diff --git a/tests/setgroups.c b/tests/setgroups.c index a47f1024..a18fdc17 100644 --- a/tests/setgroups.c +++ b/tests/setgroups.c @@ -2,7 +2,7 @@ * Check decoding of setgroups/setgroups32 syscalls. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -17,7 +17,7 @@ #else # include "tests.h" -# include +# include "scno.h" # ifdef __NR_setgroups diff --git a/tests/setgroups32.c b/tests/setgroups32.c index 935b73a9..eb111f04 100644 --- a/tests/setgroups32.c +++ b/tests/setgroups32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setgroups32 diff --git a/tests/sethostname.c b/tests/sethostname.c index c9b89c12..844fb6b8 100644 --- a/tests/sethostname.c +++ b/tests/sethostname.c @@ -3,14 +3,14 @@ * * Copyright (c) 2016 Fei Jie * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sethostname diff --git a/tests/setns.c b/tests/setns.c index 8ef7a19b..21a8dc6a 100644 --- a/tests/setns.c +++ b/tests/setns.c @@ -2,7 +2,7 @@ * Check decoding of setns syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setns diff --git a/tests/setpgrp-exec.c b/tests/setpgrp-exec.c new file mode 100644 index 00000000..8a84d436 --- /dev/null +++ b/tests/setpgrp-exec.c @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include + +int main(int argc, char **argv) +{ + if (argc < 2) + error_msg_and_fail("argc < 2"); + + if (setpgid(0, 0)) + perror_msg_and_fail("setpgid"); + + (void) execvp(argv[1], argv + 1); + + perror_msg_and_fail("execvp: %s", argv[1]); +} diff --git a/tests/setregid.c b/tests/setregid.c index 68639e6a..232a140a 100644 --- a/tests/setregid.c +++ b/tests/setregid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setregid diff --git a/tests/setregid32.c b/tests/setregid32.c index 6291bc58..fca985ed 100644 --- a/tests/setregid32.c +++ b/tests/setregid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setregid32 diff --git a/tests/setresgid.c b/tests/setresgid.c index f3a160e3..6f64d0b0 100644 --- a/tests/setresgid.c +++ b/tests/setresgid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setresgid diff --git a/tests/setresgid32.c b/tests/setresgid32.c index e05ae8f8..45d252e6 100644 --- a/tests/setresgid32.c +++ b/tests/setresgid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setresgid32 diff --git a/tests/setresuid.c b/tests/setresuid.c index 855a9bf7..d0821c39 100644 --- a/tests/setresuid.c +++ b/tests/setresuid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setresuid diff --git a/tests/setresuid32.c b/tests/setresuid32.c index ccfc2a51..a8201810 100644 --- a/tests/setresuid32.c +++ b/tests/setresuid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setresuid32 diff --git a/tests/setreuid.c b/tests/setreuid.c index 1e34dd18..c1279c9c 100644 --- a/tests/setreuid.c +++ b/tests/setreuid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setreuid diff --git a/tests/setreuid32.c b/tests/setreuid32.c index c0345db7..903a2203 100644 --- a/tests/setreuid32.c +++ b/tests/setreuid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setreuid32 diff --git a/tests/setrlimit.c b/tests/setrlimit.c index 099e2402..886cf65a 100644 --- a/tests/setrlimit.c +++ b/tests/setrlimit.c @@ -9,7 +9,7 @@ */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setrlimit @@ -19,9 +19,13 @@ int main(void) { kernel_ulong_t *const rlimit = tail_alloc(sizeof(*rlimit) * 2); - const struct xlat *xlat; + const struct xlat_data *xlat; + size_t i = 0; + + for (xlat = resources->data, i = 0; i < resources->size; ++xlat, ++i) { + if (!xlat->str) + continue; - for (xlat = resources; xlat->str; ++xlat) { unsigned long res = 0xfacefeed00000000ULL | xlat->val; long rc = syscall(__NR_setrlimit, res, 0); # if XLAT_RAW diff --git a/tests/setuid.c b/tests/setuid.c index 4a8243e8..dcbe8ae0 100644 --- a/tests/setuid.c +++ b/tests/setuid.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setuid diff --git a/tests/setuid32.c b/tests/setuid32.c index ba1b2e2d..8de08a72 100644 --- a/tests/setuid32.c +++ b/tests/setuid32.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_setuid32 diff --git a/tests/sigaction.c b/tests/sigaction.c index fe6280ce..182fdae8 100644 --- a/tests/sigaction.c +++ b/tests/sigaction.c @@ -2,13 +2,14 @@ * Check decoding of sigaction syscall. * * Copyright (c) 2014-2018 Dmitry V. Levin + * Copyright (c) 2014-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sigaction @@ -156,7 +157,7 @@ main(void) sigdelset(mask.libc, SIGHUP); memcpy(new_act->mask, mask.old, sizeof(mask.old)); -# ifdef SA_RESTORER +# if defined SA_RESTORER && !(defined ALPHA || defined MIPS) new_act->flags = SA_RESTORER; new_act->restorer = (unsigned long) 0xdeadfacecafef00dULL; # define SA_RESTORER_FMT ", sa_flags=SA_RESTORER, sa_restorer=%#lx" diff --git a/tests/sigblock.test b/tests/sigblock.test index ab1eaeb7..cfcc75cb 100755 --- a/tests/sigblock.test +++ b/tests/sigblock.test @@ -4,7 +4,7 @@ # Starting with commit v4.17-5-gf83b49b strace is expected # to forward the signal mask to tracees unchanged. # -# Copyright (c) 2017-2018 The strace developers. +# Copyright (c) 2017-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -20,7 +20,7 @@ for sig in $(../list_sigaction_signum); do check_cmd="../check_sigblock $block $sig" run_prog $set_cmd $check_cmd STRACE="$set_cmd $saved_STRACE" - for i in '' -I1 -I2 -I3 -I4; do + for i in '' -I1 -Iwaiting --interruptible=3 --interruptible=never_tstp; do run_strace $i -enone $check_cmd done done diff --git a/tests/sigign.test b/tests/sigign.test index 07a8180c..e5555d61 100755 --- a/tests/sigign.test +++ b/tests/sigign.test @@ -4,7 +4,7 @@ # Starting with commit v4.17-8-ge97a66f strace is expected # to forward the signal disposition to tracees unchanged. # -# Copyright (c) 2017-2018 The strace developers. +# Copyright (c) 2017-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -20,7 +20,7 @@ for sig in $(../list_sigaction_signum); do check_cmd="../check_sigign $ign $sig" run_prog $set_cmd $check_cmd STRACE="$set_cmd $saved_STRACE" - for i in '' -I1 -I2 -I3 -I4; do + for i in '' --interruptible=always --interruptible=2 -Inever -I4; do run_strace $i -enone $check_cmd done done diff --git a/tests/siginfo.c b/tests/siginfo.c index 7789ff27..c7e57ec6 100644 --- a/tests/siginfo.c +++ b/tests/siginfo.c @@ -2,6 +2,7 @@ * Check SIGCHLD siginfo_t decoding. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -63,7 +64,7 @@ main(void) sigsuspend(&unblock_mask); tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED" - ", si_pid=%d, si_uid=%u, si_status=%d" + ", si_pid=%d, si_uid=%d, si_status=%d" ", si_utime=%llu, si_stime=%llu} ---\n", sinfo.si_pid, sinfo.si_uid, sinfo.si_status, zero_extend_signed_to_ull(sinfo.si_utime), @@ -94,7 +95,7 @@ main(void) sigsuspend(&unblock_mask); tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_KILLED" - ", si_pid=%d, si_uid=%u, si_status=SIGUSR1" + ", si_pid=%d, si_uid=%d, si_status=SIGUSR1" ", si_utime=%llu, si_stime=%llu} ---\n", sinfo.si_pid, sinfo.si_uid, zero_extend_signed_to_ull(sinfo.si_utime), @@ -121,7 +122,7 @@ main(void) sigsuspend(&unblock_mask); tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_STOPPED" - ", si_pid=%d, si_uid=%u, si_status=SIGSTOP" + ", si_pid=%d, si_uid=%d, si_status=SIGSTOP" ", si_utime=%llu, si_stime=%llu} ---\n", sinfo.si_pid, sinfo.si_uid, zero_extend_signed_to_ull(sinfo.si_utime), @@ -131,7 +132,7 @@ main(void) sigsuspend(&unblock_mask); tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_CONTINUED" - ", si_pid=%d, si_uid=%u, si_status=SIGCONT" + ", si_pid=%d, si_uid=%d, si_status=SIGCONT" ", si_utime=%llu, si_stime=%llu} ---\n", sinfo.si_pid, sinfo.si_uid, zero_extend_signed_to_ull(sinfo.si_utime), @@ -142,7 +143,7 @@ main(void) sigsuspend(&unblock_mask); tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED" - ", si_pid=%d, si_uid=%u, si_status=0" + ", si_pid=%d, si_uid=%d, si_status=0" ", si_utime=%llu, si_stime=%llu} ---\n", sinfo.si_pid, sinfo.si_uid, zero_extend_signed_to_ull(sinfo.si_utime), diff --git a/tests/signal.c b/tests/signal.c index 40cd77f5..db5a19a9 100644 --- a/tests/signal.c +++ b/tests/signal.c @@ -2,13 +2,14 @@ * Check decoding of signal syscall. * * Copyright (c) 2017-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_signal diff --git a/tests/signal_receive--pidns-translation.c b/tests/signal_receive--pidns-translation.c new file mode 100644 index 00000000..b4e3b2f8 --- /dev/null +++ b/tests/signal_receive--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "signal_receive.c" diff --git a/tests/signal_receive--pidns-translation.gen.test b/tests/signal_receive--pidns-translation.gen.test new file mode 100755 index 00000000..63069001 --- /dev/null +++ b/tests/signal_receive--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (signal_receive--pidns-translation test_pidns -a16 -e trace=kill); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a16 -e trace=kill diff --git a/tests/signal_receive.c b/tests/signal_receive.c index ad3b4ebd..46cac571 100644 --- a/tests/signal_receive.c +++ b/tests/signal_receive.c @@ -1,13 +1,14 @@ /* * Check decoding of signal delivery. * - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include "pidns.h" #include #include #include @@ -26,10 +27,13 @@ handler(int sig, siginfo_t *info, void *ucontext) int main(void) { + PIDNS_TEST_INIT; + static const char prefix[] = "KERNEL BUG"; int printed = 0; const int pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); const int uid = geteuid(); for (int sig = 1; sig <= 31; ++sig) { @@ -73,10 +77,13 @@ main(void) const int e_pid = s_pid; const int e_uid = s_uid; #endif - printf("kill(%d, %s) = 0\n", pid, signal2name(sig)); - printf("--- %s {si_signo=%s, si_code=SI_USER, si_pid=%d" + pidns_print_leader(); + printf("kill(%d%s, %s) = 0\n", pid, pid_str, signal2name(sig)); + pidns_print_leader(); + printf("--- %s {si_signo=%s, si_code=SI_USER, si_pid=%d%s" ", si_uid=%d} ---\n", - signal2name(sig), signal2name(e_sig), e_pid, e_uid); + signal2name(sig), signal2name(e_sig), + e_pid, pid_str, e_uid); if (s_code || sig != s_sig || pid != s_pid || uid != s_uid) { /* @@ -91,11 +98,11 @@ main(void) } fprintf(stderr, "%s: expected: si_signo=%d, si_code=%d" - ", si_pid=%d, si_uid=%d\n" + ", si_pid=%d%s, si_uid=%d\n" "%s: received: si_signo=%d, si_code=%d" - ", si_pid=%d, si_uid=%d\n", - prefix, sig, SI_USER, pid, uid, - prefix, sig, s_code, s_pid, s_uid); + ", si_pid=%d%s, si_uid=%d\n", + prefix, sig, SI_USER, pid, pid_str, uid, + prefix, sig, s_code, s_pid, pid_str, s_uid); } } @@ -104,6 +111,7 @@ main(void) "*** PLEASE FIX THE KERNEL ***\n", prefix); } + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests/signalfd4.c b/tests/signalfd4.c index 71df2dcc..0ab6d21d 100644 --- a/tests/signalfd4.c +++ b/tests/signalfd4.c @@ -2,7 +2,7 @@ * Check decoding of signalfd4 syscall. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" #include -#include +#include "scno.h" #if defined HAVE_SYS_SIGNALFD_H \ && defined HAVE_SIGNALFD \ diff --git a/tests/sigpending.c b/tests/sigpending.c index f065c873..f39b3a48 100644 --- a/tests/sigpending.c +++ b/tests/sigpending.c @@ -2,13 +2,14 @@ * Check decoding of sigpending syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sigpending diff --git a/tests/sigprocmask.c b/tests/sigprocmask.c index 566b8346..4ab36d00 100644 --- a/tests/sigprocmask.c +++ b/tests/sigprocmask.c @@ -2,13 +2,14 @@ * Check decoding of sigprocmask syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sigprocmask diff --git a/tests/sigreturn.c b/tests/sigreturn.c index 5dece0a4..4b7516a6 100644 --- a/tests/sigreturn.c +++ b/tests/sigreturn.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __powerpc64__ \ || (defined __sparc__ && defined __arch64__) diff --git a/tests/sigsuspend.c b/tests/sigsuspend.c index 11ffae83..165c68fa 100644 --- a/tests/sigsuspend.c +++ b/tests/sigsuspend.c @@ -2,13 +2,14 @@ * Check decoding of sigsuspend syscall. * * Copyright (c) 2017-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sigsuspend diff --git a/tests/sleep.c b/tests/sleep.c index 0cdfcebc..f8fca446 100644 --- a/tests/sleep.c +++ b/tests/sleep.c @@ -2,14 +2,21 @@ * A simple nanosleep based sleep(1) replacement. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include +#include "scno.h" + +#ifdef __NR_nanosleep + +# include +# include + +# include "kernel_old_timespec.h" int main(int ac, char **av) @@ -20,10 +27,16 @@ main(int ac, char **av) if (ac > 2) error_msg_and_fail("extra operand"); - struct timespec ts = { atoi(av[1]), 0 }; + kernel_old_timespec_t ts = { atoi(av[1]), 0 }; - if (nanosleep(&ts, NULL)) + if (syscall(__NR_nanosleep, (unsigned long) &ts, 0)) perror_msg_and_fail("nanosleep"); return 0; } + +#else + +SKIP_MAIN_UNDEFINED("__NR_nanosleep") + +#endif diff --git a/tests/so_error.c b/tests/so_error.c index 2592a3c1..03211ab9 100644 --- a/tests/so_error.c +++ b/tests/so_error.c @@ -2,6 +2,7 @@ * Check decoding of SO_ERROR socket option. * * Copyright (c) 2018 Masatake YAMATO + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -37,7 +38,7 @@ reserve_ephemeral_port(void) for (in_port_t port = 49152; port < 61000; port++) { /* Just bind here. No listen. */ addr.sin_port = htons(port); - if (bind(sd, &addr, sizeof(addr)) == 0) + if (bind(sd, (void *) &addr, sizeof(addr)) == 0) return port; } error_msg_and_skip("no ephemeral port available for test purposes"); @@ -69,7 +70,7 @@ main(void) .sin_addr.s_addr = htonl(INADDR_LOOPBACK), .sin_port = htons(port), }; - if (connect(fd, &addr, sizeof(addr)) == 0) + if (connect(fd, (void *) &addr, sizeof(addr)) == 0) error_msg_and_skip("connect unexpectedly succeeded"); if (errno != EINPROGRESS) perror_msg_and_skip("connect failed for unexpected reason"); diff --git a/tests/so_peercred--pidns-translation.c b/tests/so_peercred--pidns-translation.c new file mode 100644 index 00000000..402bbcfe --- /dev/null +++ b/tests/so_peercred--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "so_peercred.c" diff --git a/tests/so_peercred--pidns-translation.gen.test b/tests/so_peercred--pidns-translation.gen.test new file mode 100755 index 00000000..956f8f3b --- /dev/null +++ b/tests/so_peercred--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (so_peercred--pidns-translation test_pidns -e trace=getsockopt); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -e trace=getsockopt diff --git a/tests/so_peercred.c b/tests/so_peercred.c index 151bb175..e34d6ee1 100644 --- a/tests/so_peercred.c +++ b/tests/so_peercred.c @@ -2,13 +2,14 @@ * Check decoding of SO_PEERCRED socket option. * * Copyright (c) 2017 Dmitry V. Levin - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" +#include "pidns.h" #include #include @@ -53,6 +54,8 @@ so_str(void) int main(void) { + PIDNS_TEST_INIT; + TAIL_ALLOC_OBJECT_CONST_PTR(struct ucred, peercred); TAIL_ALLOC_OBJECT_CONST_PTR(socklen_t, len); @@ -75,6 +78,8 @@ main(void) struct ucred *const gid_truncated = tail_alloc(sizeof_gid_truncated); + const char *pid_str = pidns_pid2str(PT_TGID); + int sv[2]; if (socketpair(AF_UNIX, SOCK_STREAM, 0, sv)) perror_msg_and_skip("socketpair AF_UNIX SOCK_STREAM"); @@ -82,8 +87,10 @@ main(void) /* classic getsockopt */ *len = sizeof(*peercred); get_peercred(sv[0], peercred, len); + pidns_print_leader(); printf("getsockopt(%d, %s", sv[0], so_str()); PRINT_FIELD_D(", {", *peercred, pid); + printf("%s", pid_str); PRINT_FIELD_UID(", ", *peercred, uid); PRINT_FIELD_UID(", ", *peercred, gid); printf("}, [%d]) = %s\n", *len, errstr); @@ -91,14 +98,17 @@ main(void) /* getsockopt with zero optlen */ *len = 0; get_peercred(sv[0], peercred, len); + pidns_print_leader(); printf("getsockopt(%d, %s, %p, [0]) = %s\n", sv[0], so_str(), peercred, errstr); /* getsockopt with optlen larger than necessary - shortened */ *len = sizeof(*peercred) + 1; get_peercred(sv[0], peercred, len); + pidns_print_leader(); printf("getsockopt(%d, %s", sv[0], so_str()); PRINT_FIELD_D(", {", *peercred, pid); + printf("%s", pid_str); PRINT_FIELD_UID(", ", *peercred, uid); PRINT_FIELD_UID(", ", *peercred, gid); printf("}, [%u->%d]) = %s\n", @@ -110,6 +120,7 @@ main(void) */ *len = sizeof_pid_truncated; get_peercred(sv[0], pid_truncated, len); + pidns_print_leader(); printf("getsockopt(%d, %s, {pid=", sv[0], so_str()); print_quoted_hex(pid_truncated, *len); printf("}, [%d]) = %s\n", *len, errstr); @@ -120,8 +131,10 @@ main(void) */ *len = sizeof_pid; get_peercred(sv[0], pid, len); + pidns_print_leader(); printf("getsockopt(%d, %s", sv[0], so_str()); PRINT_FIELD_D(", {", *pid, pid); + printf("%s", pid_str); printf("}, [%d]) = %s\n", *len, errstr); /* @@ -136,8 +149,10 @@ main(void) * to struct ucred.pid field. */ memcpy(uid, uid_truncated, sizeof_uid_truncated); + pidns_print_leader(); printf("getsockopt(%d, %s", sv[0], so_str()); PRINT_FIELD_D(", {", *uid, pid); + printf("%s", pid_str); printf(", uid="); print_quoted_hex(&uid->uid, sizeof_uid_truncated - offsetof(struct ucred, uid)); @@ -149,8 +164,10 @@ main(void) */ *len = sizeof_uid; get_peercred(sv[0], uid, len); + pidns_print_leader(); printf("getsockopt(%d, %s", sv[0], so_str()); PRINT_FIELD_D(", {", *uid, pid); + printf("%s", pid_str); PRINT_FIELD_UID(", ", *uid, uid); printf("}, [%d]) = %s\n", *len, errstr); @@ -166,8 +183,10 @@ main(void) * to struct ucred.pid and struct ucred.uid fields. */ memcpy(peercred, gid_truncated, sizeof_gid_truncated); + pidns_print_leader(); printf("getsockopt(%d, %s", sv[0], so_str()); PRINT_FIELD_D(", {", *peercred, pid); + printf("%s", pid_str); PRINT_FIELD_UID(", ", *peercred, uid); printf(", gid="); print_quoted_hex(&peercred->gid, sizeof_gid_truncated - @@ -177,14 +196,17 @@ main(void) /* getsockopt optval EFAULT */ *len = sizeof(*peercred); get_peercred(sv[0], &peercred->uid, len); + pidns_print_leader(); printf("getsockopt(%d, %s, %p, [%d]) = %s\n", sv[0], so_str(), &peercred->uid, *len, errstr); /* getsockopt optlen EFAULT */ get_peercred(sv[0], peercred, len + 1); + pidns_print_leader(); printf("getsockopt(%d, %s, %p, %p) = %s\n", sv[0], so_str(), peercred, len + 1, errstr); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests/sock_filter-v.c b/tests/sock_filter-v.c index ac483646..5b6c5d84 100644 --- a/tests/sock_filter-v.c +++ b/tests/sock_filter-v.c @@ -2,7 +2,7 @@ * Check decoding of socket filters. * * Copyright (c) 2017 Dmitry V. Levin - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -23,17 +23,6 @@ #define HEX_FMT "%#x" -#if XLAT_RAW -# define XLAT_FMT HEX_FMT -# define XLAT_ARGS(a_) (a_) -#elif XLAT_VERBOSE -# define XLAT_FMT HEX_FMT " /* %s */" -# define XLAT_ARGS(a_) (a_), #a_ -#else -# define XLAT_FMT "%s" -# define XLAT_ARGS(a_) #a_ -#endif - #define PRINT_STMT(pfx, code_fmt, k_fmt, ...) \ printf("%sBPF_STMT(" code_fmt ", " k_fmt ")", pfx, __VA_ARGS__) diff --git a/tests/socketcall.c b/tests/socketcall.c index aa68a7eb..664a7693 100644 --- a/tests/socketcall.c +++ b/tests/socketcall.c @@ -2,15 +2,16 @@ * Check decoding of socketcall syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" -#ifdef __NR_socketcall +#if defined __NR_socketcall && !defined __ARM_EABI__ # include # include @@ -22,9 +23,9 @@ static const char * xlookup_uint(const struct xlat *xlat, const unsigned int val) { - for (; xlat->str != NULL; xlat++) - if (xlat->val == val) - return xlat->str; + for (size_t i = 0; i < xlat->size; i++) + if (xlat->data[i].val == val) + return xlat->data[i].str; return NULL; } @@ -52,8 +53,8 @@ test_socketcall(const int i, const void *const addr) int main(void) { - assert((unsigned) sc_min == socketcalls[0].val); - assert((unsigned) sc_max == socketcalls[ARRAY_SIZE(socketcalls) - 2].val); + assert(0 == socketcalls->data[0].val); + assert((unsigned) sc_max == socketcalls->data[socketcalls->size - 1].val); const unsigned long *const args = tail_alloc(sizeof(*args) * 6); efault = tail_alloc(1) + 1; @@ -70,6 +71,6 @@ main(void) #else -SKIP_MAIN_UNDEFINED("__NR_socketcall") +SKIP_MAIN_UNDEFINED("__NR_socketcall && !__ARM_EABI__") #endif diff --git a/tests/sockopt-timestamp.c b/tests/sockopt-timestamp.c index c2659925..9dd1f961 100644 --- a/tests/sockopt-timestamp.c +++ b/tests/sockopt-timestamp.c @@ -2,6 +2,7 @@ * Check decoding of timestamp control messages. * * Copyright (c) 2019 Dmitry V. Levin + * Copyright (c) 2019-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,6 +10,7 @@ #include "tests.h" #include +#include #include #include @@ -17,6 +19,9 @@ # include #endif +#include "kernel_timeval.h" +#include "kernel_old_timespec.h" + #define XLAT_MACROS_ONLY #include "xlat/sock_options.h" #undef XLAT_MACROS_ONLY @@ -26,16 +31,18 @@ print_timestamp_old(const struct cmsghdr *c) { const void *cmsg_header = c; const void *cmsg_data = CMSG_DATA(c); - const struct timeval *tv = cmsg_data; - const unsigned int expected_len = sizeof(*tv); + kernel_old_timeval_t tv; + const unsigned int expected_len = sizeof(tv); const unsigned int data_len = c->cmsg_len - (cmsg_data - cmsg_header); if (expected_len != data_len) perror_msg_and_fail("sizeof(struct timeval) = %u" ", data_len = %u\n", expected_len, data_len); + + memcpy(&tv, cmsg_data, sizeof(tv)); printf("{tv_sec=%lld, tv_usec=%lld}", - (long long) tv->tv_sec, (long long) tv->tv_usec); + (long long) tv.tv_sec, (long long) tv.tv_usec); } static void @@ -43,16 +50,18 @@ print_timestampns_old(const struct cmsghdr *c) { const void *cmsg_header = c; const void *cmsg_data = CMSG_DATA(c); - const struct timespec *ts = cmsg_data; - const unsigned int expected_len = sizeof(*ts); + kernel_old_timespec_t ts; + const unsigned int expected_len = sizeof(ts); const unsigned int data_len = c->cmsg_len - (cmsg_data - cmsg_header); if (expected_len != data_len) perror_msg_and_fail("sizeof(struct timespec) = %u" ", data_len = %u\n", expected_len, data_len); + + memcpy(&ts, cmsg_data, sizeof(ts)); printf("{tv_sec=%lld, tv_nsec=%lld}", - (long long) ts->tv_sec, (long long) ts->tv_nsec); + (long long) ts.tv_sec, (long long) ts.tv_nsec); } #ifdef HAVE_STRUCT___KERNEL_SOCK_TIMEVAL @@ -61,16 +70,18 @@ print_timestamp_new(const struct cmsghdr *c) { const void *cmsg_header = c; const void *cmsg_data = CMSG_DATA(c); - const struct __kernel_sock_timeval *tv = cmsg_data; - const unsigned int expected_len = sizeof(*tv); + struct __kernel_sock_timeval tv; + const unsigned int expected_len = sizeof(tv); const unsigned int data_len = c->cmsg_len - (cmsg_data - cmsg_header); if (expected_len != data_len) perror_msg_and_fail("sizeof(struct __kernel_sock_timeval) = %u" ", data_len = %u\n", expected_len, data_len); + + memcpy(&tv, cmsg_data, sizeof(tv)); printf("{tv_sec=%lld, tv_usec=%lld}", - (long long) tv->tv_sec, (long long) tv->tv_usec); + (long long) tv.tv_sec, (long long) tv.tv_usec); } #endif /* HAVE_STRUCT___KERNEL_SOCK_TIMEVAL */ @@ -80,16 +91,18 @@ print_timestampns_new(const struct cmsghdr *c) { const void *cmsg_header = c; const void *cmsg_data = CMSG_DATA(c); - const struct __kernel_timespec *ts = cmsg_data; - const unsigned int expected_len = sizeof(*ts); + struct __kernel_timespec ts; + const unsigned int expected_len = sizeof(ts); const unsigned int data_len = c->cmsg_len - (cmsg_data - cmsg_header); if (expected_len != data_len) perror_msg_and_fail("sizeof(struct __kernel_timespec) = %u" ", data_len = %u\n", expected_len, data_len); + + memcpy(&ts, cmsg_data, sizeof(ts)); printf("{tv_sec=%lld, tv_nsec=%lld}", - (long long) ts->tv_sec, (long long) ts->tv_nsec); + (long long) ts.tv_sec, (long long) ts.tv_nsec); } #endif /* HAVE_STRUCT___KERNEL_TIMESPEC */ diff --git a/tests/splice.c b/tests/splice.c index 2acdde7f..f62d5ba2 100644 --- a/tests/splice.c +++ b/tests/splice.c @@ -2,14 +2,14 @@ * This file is part of splice strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_splice diff --git a/tests/stack-fcall-0.c b/tests/stack-fcall-0.c index 8a26a79c..be987a94 100644 --- a/tests/stack-fcall-0.c +++ b/tests/stack-fcall-0.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -7,7 +7,10 @@ #include "stack-fcall.h" -int f0(int i) +int +f0(int i, unsigned long f) { - return f1(i) - i; + f ^= (unsigned long) (void *) f0; + COMPLEX_BODY(i, f); + return f1(i, f) - i; } diff --git a/tests/stack-fcall-1.c b/tests/stack-fcall-1.c index b5cd89b3..88f33b9b 100644 --- a/tests/stack-fcall-1.c +++ b/tests/stack-fcall-1.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -7,7 +7,10 @@ #include "stack-fcall.h" -int f1(int i) +int +f1(int i, unsigned long f) { - return f2(i) + i; + f ^= (unsigned long) (void *) f1; + COMPLEX_BODY(i, f); + return f2(i, f) + i; } diff --git a/tests/stack-fcall-2.c b/tests/stack-fcall-2.c index 16beee58..00235903 100644 --- a/tests/stack-fcall-2.c +++ b/tests/stack-fcall-2.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -7,7 +7,10 @@ #include "stack-fcall.h" -int f2(int i) +int +f2(int i, unsigned long f) { - return f3(i) - i; + f ^= (unsigned long) (void *) f2; + COMPLEX_BODY(i, f); + return f3(i, f) - i; } diff --git a/tests/stack-fcall-3.c b/tests/stack-fcall-3.c index 538b6565..ea7d5fed 100644 --- a/tests/stack-fcall-3.c +++ b/tests/stack-fcall-3.c @@ -1,23 +1,28 @@ /* - * Copyright (c) 2014-2019 The strace developers. + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include -#include - #include "stack-fcall.h" -int f3(int i) +int +f3(int i, unsigned long f) { + f ^= (unsigned long) (void *) f3; + COMPLEX_BODY(i, f); switch (i) { case 1: - return kill(getpid(), SIGURG); - + i -= chdir(""); + break; + case 2: + i -= kill(getpid(), SIGURG) - 1; + break; default: - return chdir("") + i; + i -= syscall(__NR_exit, i - 3); + break; } - + return i; } diff --git a/tests/stack-fcall-attach.c b/tests/stack-fcall-attach.c new file mode 100644 index 00000000..f2db2b7e --- /dev/null +++ b/tests/stack-fcall-attach.c @@ -0,0 +1,2 @@ +#define ATTACH_MODE 1 +#include "stack-fcall.c" diff --git a/tests/stack-fcall.c b/tests/stack-fcall.c index cf4000e5..d0c62143 100644 --- a/tests/stack-fcall.c +++ b/tests/stack-fcall.c @@ -1,15 +1,26 @@ /* - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ +#include "tests.h" +#include #include "stack-fcall.h" -int main(void) +#ifndef ATTACH_MODE +# define ATTACH_MODE 0 +#endif + +int +main(int ac, char **av) { - f0(0); - f0(1); - return 0; +#if ATTACH_MODE + /* sleep a bit to let the tracer time to catch up */ + sleep(1); +#endif + + for (;;) + ac += f0(ac, (unsigned long) (void *) main); } diff --git a/tests/stack-fcall.h b/tests/stack-fcall.h index cca0f94f..3afa8a26 100644 --- a/tests/stack-fcall.h +++ b/tests/stack-fcall.h @@ -1,10 +1,13 @@ /* - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ +#include +#include "scno.h" + #ifdef MANGLE # define f0 _ZN2ns2f0Ei @@ -14,7 +17,28 @@ #endif -int f0(int i); -int f1(int i); -int f2(int i); -int f3(int i); +int f0(int i, unsigned long); +int f1(int i, unsigned long); +int f2(int i, unsigned long); +int f3(int i, unsigned long); + +#define COMPLEX_BODY(i, f) \ + do { \ + int tid = syscall(__NR_gettid, f); \ + if (i == tid) \ + return 0; \ + switch ((unsigned int) tid & 3) { \ + case 0: \ + i += f0(tid, f); \ + break; \ + case 1: \ + i += f1(tid, f); \ + break; \ + case 2: \ + i += f2(tid, f); \ + break; \ + case 3: \ + i += f3(tid, f); \ + break; \ + } \ + } while (0) diff --git a/tests/stat.c b/tests/stat.c index 8c8daad1..f161b4f1 100644 --- a/tests/stat.c +++ b/tests/stat.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_stat diff --git a/tests/stat.gen.test b/tests/stat.gen.test index 13ccd0b8..83037995 100755 --- a/tests/stat.gen.test +++ b/tests/stat.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (stat -a32 -v -P stat.sample -P /dev/full); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (stat -a30 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a32 -v -P stat.sample -P /dev/full +run_strace_match_diff -a30 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full diff --git a/tests/stat64.c b/tests/stat64.c index 12ded432..5c6b56b8 100644 --- a/tests/stat64.c +++ b/tests/stat64.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_stat64 diff --git a/tests/stat64.gen.test b/tests/stat64.gen.test index f49df37a..fe86da1d 100755 --- a/tests/stat64.gen.test +++ b/tests/stat64.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (stat64 -a32 -v -P stat.sample -P /dev/full); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (stat64 -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a32 -v -P stat.sample -P /dev/full +run_strace_match_diff -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full diff --git a/tests/statfs.c b/tests/statfs.c index 5672a7fc..13b98fa5 100644 --- a/tests/statfs.c +++ b/tests/statfs.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2014-2018 Dmitry V. Levin + * Copyright (c) 2014-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_statfs diff --git a/tests/statfs64.c b/tests/statfs64.c index 1e0a4b24..5cd92529 100644 --- a/tests/statfs64.c +++ b/tests/statfs64.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_statfs64 diff --git a/tests/status-all.c b/tests/status-all.c new file mode 100644 index 00000000..db9510af --- /dev/null +++ b/tests/status-all.c @@ -0,0 +1,24 @@ +/* + * Check status=all filtering for failed and successful syscalls. + * + * Copyright (c) 2019 Intel Corporation + * Copyright (c) 2019 Paul Chaignon + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include + +int +main(void) +{ + static const char sample_valid[] = "."; + static const char sample_invalid[] = ""; + + test_status_chdir(sample_valid, 1, 1); + test_status_chdir(sample_invalid, 1, 1); + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests/status-all.gen.test b/tests/status-all.gen.test new file mode 100755 index 00000000..0a10ba42 --- /dev/null +++ b/tests/status-all.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (status-all -a10 -e trace=chdir --status=detached,failed,successful,unavailable,unfinished); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 -e trace=chdir --status=detached,failed,successful,unavailable,unfinished diff --git a/tests/status-detached.expected b/tests/status-detached.expected new file mode 100644 index 00000000..0a6325f5 --- /dev/null +++ b/tests/status-detached.expected @@ -0,0 +1 @@ +nanosleep\({tv_sec=2, tv_nsec=0}, diff --git a/tests/status-detached.test b/tests/status-detached.test new file mode 100755 index 00000000..35692726 --- /dev/null +++ b/tests/status-detached.test @@ -0,0 +1,20 @@ +#!/bin/sh +# +# Check -e status=detached option. +# +# Copyright (c) 2019 Paul Chaignon +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +run_prog ../sleep 0 + +# -I2 avoids blocking all fatal signals, the default when using -o. +$STRACE -o "$LOG" -I2 -e status=detached ../sleep 2 & +pid=$! +../sleep 1 +kill $pid +wait +match_grep diff --git a/tests/status-failed-long.c b/tests/status-failed-long.c new file mode 100644 index 00000000..ac61c515 --- /dev/null +++ b/tests/status-failed-long.c @@ -0,0 +1 @@ +#include "status-failed.c" diff --git a/tests/status-failed-long.gen.test b/tests/status-failed-long.gen.test new file mode 100755 index 00000000..db2abc84 --- /dev/null +++ b/tests/status-failed-long.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (status-failed-long -a10 -e trace=chdir --failed-only); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 -e trace=chdir --failed-only diff --git a/tests/status-failed-status.c b/tests/status-failed-status.c new file mode 100644 index 00000000..ac61c515 --- /dev/null +++ b/tests/status-failed-status.c @@ -0,0 +1 @@ +#include "status-failed.c" diff --git a/tests/status-failed-status.gen.test b/tests/status-failed-status.gen.test new file mode 100755 index 00000000..f51b19f1 --- /dev/null +++ b/tests/status-failed-status.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (status-failed-status -a10 -e trace=chdir -e status=failed); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 -e trace=chdir -e status=failed diff --git a/tests/status-failed.c b/tests/status-failed.c new file mode 100644 index 00000000..81d2885a --- /dev/null +++ b/tests/status-failed.c @@ -0,0 +1,24 @@ +/* + * Check status=failed filtering for failed and successful syscalls. + * + * Copyright (c) 2019 Intel Corporation + * Copyright (c) 2019 Paul Chaignon + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include + +int +main(void) +{ + static const char sample_valid[] = "."; + static const char sample_invalid[] = ""; + + test_status_chdir(sample_valid, 0, 1); + test_status_chdir(sample_invalid, 0, 1); + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests/status-failed.gen.test b/tests/status-failed.gen.test new file mode 100755 index 00000000..fcc77903 --- /dev/null +++ b/tests/status-failed.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (status-failed -a10 -e trace=chdir -Z); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 -e trace=chdir -Z diff --git a/tests/status-none-f.c b/tests/status-none-f.c new file mode 100644 index 00000000..b41a5666 --- /dev/null +++ b/tests/status-none-f.c @@ -0,0 +1,19 @@ +/* + * Check basic seccomp filtering with large number of traced syscalls. + * + * Copyright (c) 2018-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include + +int +main(void) +{ + printf("%-5d +++ exited with 0 +++\n", getpid()); + return 0; +} diff --git a/tests/status-none-threads.c b/tests/status-none-threads.c new file mode 100644 index 00000000..ae939601 --- /dev/null +++ b/tests/status-none-threads.c @@ -0,0 +1,53 @@ +/* + * Check status=none filtering when a non-leader thread invokes execve. + * + * Copyright (c) 2019 Paul Chaignon + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include +#include +#include +#include "scno.h" + +static pid_t leader; + +static void * +thread(void *arg) +{ + struct timespec ts = { .tv_nsec = 100000000 }; + (void) nanosleep(&ts, NULL); + + printf("%-5d +++ superseded by execve in pid %u +++\n", + leader, (int) syscall(__NR_gettid)); + + char *argv[] = {((char **) arg)[0], (char *) "0", NULL}; + execve(argv[0], argv, NULL); + perror_msg_and_fail("execve"); +} + +int +main(int ac, char **av) +{ + setvbuf(stdout, NULL, _IONBF, 0); + leader = getpid(); + + if (ac > 1) { + printf("%-5d +++ exited with 0 +++\n", leader); + return 0; + } + + pthread_t t; + errno = pthread_create(&t, NULL, thread, av); + if (errno) + perror_msg_and_fail("pthread_create"); + + struct timespec ts = { .tv_sec = 123 }; + (void) nanosleep(&ts, 0); + + return 1; +} diff --git a/tests/status-none-threads.test b/tests/status-none-threads.test new file mode 100755 index 00000000..630424e8 --- /dev/null +++ b/tests/status-none-threads.test @@ -0,0 +1,47 @@ +#!/bin/sh +# +# Check status=none filtering when a non-leader thread invokes execve. +# +# Copyright (c) 2019 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +# Check that PTRACE_EVENT_EXEC support in kernel is good enough. +# The kernel before commit v3.1-rc1~308^2~7 reported 0 instead of old pid. +require_min_kernel_version_or_skip 3.1 + +# This test requires some concurrency between threads. +require_min_nproc 2 + +check_prog diff +run_prog_skip_if_failed date +%s > /dev/null +s0="$(date +%s)" + +run_prog > /dev/null + +set -- -a14 -f -e status=${status_filter:-none} $args + +# Due to probabilistic nature of the test, try it several times. +while :; do + > "$LOG" || fail_ "failed to write $LOG" + rc=0 + $STRACE -o "$LOG" "$@" > "$EXP" || { + rc=$? + cat < "$LOG" >&2 + } + + if [ "$rc" = 0 ] && diff -u -- "$EXP" "$LOG"; then + exit 0 + fi + + s1="$(date +%s)" + [ "$(($s1-$s0))" -gt "$(($TIMEOUT_DURATION/2))" ] || + continue + + [ "$rc" = 0 ] && + fail_ "$STRACE $* output mismatch" || + fail_ "$STRACE $* failed with code $rc" +done diff --git a/tests/status-none.c b/tests/status-none.c new file mode 100644 index 00000000..0144a60c --- /dev/null +++ b/tests/status-none.c @@ -0,0 +1,18 @@ +/* + * Check basic -e status=none syscall filtering. + * + * Copyright (c) 2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include + +int +main(void) +{ + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests/status-none.gen.test b/tests/status-none.gen.test new file mode 100755 index 00000000..2b141f2f --- /dev/null +++ b/tests/status-none.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (status-none -e trace=all --status=none); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -e trace=all --status=none diff --git a/tests/status-successful-long.c b/tests/status-successful-long.c new file mode 100644 index 00000000..45be5b19 --- /dev/null +++ b/tests/status-successful-long.c @@ -0,0 +1 @@ +#include "status-successful.c" diff --git a/tests/status-successful-long.gen.test b/tests/status-successful-long.gen.test new file mode 100755 index 00000000..1618f32c --- /dev/null +++ b/tests/status-successful-long.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (status-successful-long -a10 -e trace=chdir --successful-only); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 -e trace=chdir --successful-only diff --git a/tests/status-successful-status.c b/tests/status-successful-status.c new file mode 100644 index 00000000..45be5b19 --- /dev/null +++ b/tests/status-successful-status.c @@ -0,0 +1 @@ +#include "status-successful.c" diff --git a/tests/status-successful-status.gen.test b/tests/status-successful-status.gen.test new file mode 100755 index 00000000..34ce3db8 --- /dev/null +++ b/tests/status-successful-status.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (status-successful-status -a10 -e trace=chdir --status=successful); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 -e trace=chdir --status=successful diff --git a/tests/status-successful.c b/tests/status-successful.c new file mode 100644 index 00000000..b37854af --- /dev/null +++ b/tests/status-successful.c @@ -0,0 +1,24 @@ +/* + * Check status=successful filtering for failed and successful syscalls. + * + * Copyright (c) 2019 Intel Corporation + * Copyright (c) 2019 Paul Chaignon + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include + +int +main(void) +{ + static const char sample_valid[] = "."; + static const char sample_invalid[] = ""; + + test_status_chdir(sample_valid, 1, 0); + test_status_chdir(sample_invalid, 1, 0); + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests/status-successful.gen.test b/tests/status-successful.gen.test new file mode 100755 index 00000000..395b85eb --- /dev/null +++ b/tests/status-successful.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (status-successful -a10 -e trace=chdir -z); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 -e trace=chdir -z diff --git a/tests/status-unfinished-threads.c b/tests/status-unfinished-threads.c new file mode 100644 index 00000000..77c88173 --- /dev/null +++ b/tests/status-unfinished-threads.c @@ -0,0 +1,66 @@ +/* + * Check status=unfinished filtering when a non-leader thread invokes execve. + * + * Copyright (c) 2019 Paul Chaignon + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#ifdef __NR_nanosleep + +# include +# include +# include +# include + +# include "kernel_old_timespec.h" + +static pid_t leader; + +static void * +thread(void *arg) +{ + kernel_old_timespec_t ts = { .tv_nsec = 100000000 }; + (void) syscall(__NR_nanosleep, (unsigned long) &ts, 0UL); + + printf("%-5d nanosleep({tv_sec=123, tv_nsec=0}, ) = ?\n" + "%-5d +++ superseded by execve in pid %u +++\n", + leader, leader, (int) syscall(__NR_gettid)); + + char *argv[] = {((char **) arg)[0], (char *) "0", NULL}; + execve(argv[0], argv, NULL); + perror_msg_and_fail("execve"); +} + +int +main(int ac, char **av) +{ + setvbuf(stdout, NULL, _IONBF, 0); + leader = getpid(); + + if (ac > 1) { + printf("%-5d exit_group(0) = ?\n" + "%-5d +++ exited with 0 +++\n", leader, leader); + return 0; + } + + pthread_t t; + errno = pthread_create(&t, NULL, thread, av); + if (errno) + perror_msg_and_fail("pthread_create"); + + kernel_old_timespec_t ts = { .tv_sec = 123 }; + (void) syscall(__NR_nanosleep, (unsigned long) &ts, 0UL); + + return 1; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_nanosleep") + +#endif diff --git a/tests/status-unfinished-threads.test b/tests/status-unfinished-threads.test new file mode 100755 index 00000000..f54a323f --- /dev/null +++ b/tests/status-unfinished-threads.test @@ -0,0 +1,12 @@ +#!/bin/sh +# +# Check status=unfinished filtering when a non-leader thread invokes execve. +# +# Copyright (c) 2019 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +status_filter=unfinished + +. "${srcdir=.}"/status-none-threads.test diff --git a/tests/status-unfinished.c b/tests/status-unfinished.c new file mode 100644 index 00000000..de78eee4 --- /dev/null +++ b/tests/status-unfinished.c @@ -0,0 +1,19 @@ +/* + * Check basic -e status=unfinished syscall filtering. + * + * Copyright (c) 2019 Paul Chaignon + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include + +int +main(void) +{ + puts("exit_group(0) = ?\n" + "+++ exited with 0 +++"); + return 0; +} diff --git a/tests/status-unfinished.gen.test b/tests/status-unfinished.gen.test new file mode 100755 index 00000000..c02817b0 --- /dev/null +++ b/tests/status-unfinished.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (status-unfinished -a10 -e trace=all --status=unfinished); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 -e trace=all --status=unfinished diff --git a/tests/status.c b/tests/status.c new file mode 100644 index 00000000..82fd8b18 --- /dev/null +++ b/tests/status.c @@ -0,0 +1,21 @@ +/* + * Helper function to check -e status option. + * + * Copyright (c) 2019 Intel Corporation + * Copyright (c) 2019 Paul Chaignon + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include + +void +test_status_chdir(const char *dir, bool print_success, bool print_fail) +{ + long rc = chdir(dir); + if ((rc == -1 && print_fail) || (rc != -1 && print_success)) + printf("chdir(\"%s\") = %s\n", dir, sprintrc(rc)); +} diff --git a/tests/statx.c b/tests/statx.c index c5e86ad2..c5537204 100644 --- a/tests/statx.c +++ b/tests/statx.c @@ -1,14 +1,14 @@ /* - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" -#ifdef __NR_statx +#if defined __NR_statx && defined HAVE_STRUCT_STATX # include # include "xlat.h" @@ -45,6 +45,6 @@ static const char *TEST_SYSCALL_STATX_MASK_STR = "STATX_ALL"; #else -SKIP_MAIN_UNDEFINED("__NR_statx") +SKIP_MAIN_UNDEFINED("__NR_statx && HAVE_STRUCT_STATX") #endif diff --git a/tests/statx.gen.test b/tests/statx.gen.test index bff3e3f2..564a5918 100755 --- a/tests/statx.gen.test +++ b/tests/statx.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (statx -a32 -v -P stat.sample -P /dev/full); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (statx -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a32 -v -P stat.sample -P /dev/full +run_strace_match_diff -a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full diff --git a/tests/strace--absolute-timestamps-format-time-precision-ms.gen.test b/tests/strace--absolute-timestamps-format-time-precision-ms.gen.test new file mode 100755 index 00000000..061321c1 --- /dev/null +++ b/tests/strace--absolute-timestamps-format-time-precision-ms.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps-format-time-precision-ms +strace-tt.test 3 --absolute-timestamps=format:time --absolute-timestamps=precision:ms); do not edit. +set -- 3 --absolute-timestamps=format:time --absolute-timestamps=precision:ms +. "${srcdir=.}/strace-tt.test" diff --git a/tests/strace--absolute-timestamps-format-time-precision-ns.gen.test b/tests/strace--absolute-timestamps-format-time-precision-ns.gen.test new file mode 100755 index 00000000..c1c94db9 --- /dev/null +++ b/tests/strace--absolute-timestamps-format-time-precision-ns.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps-format-time-precision-ns +strace-tt.test 9 --absolute-timestamps=format:time --absolute-timestamps=precision:ns); do not edit. +set -- 9 --absolute-timestamps=format:time --absolute-timestamps=precision:ns +. "${srcdir=.}/strace-tt.test" diff --git a/tests/strace--absolute-timestamps-format-time-precision-s.gen.test b/tests/strace--absolute-timestamps-format-time-precision-s.gen.test new file mode 100755 index 00000000..52bfe1cc --- /dev/null +++ b/tests/strace--absolute-timestamps-format-time-precision-s.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps-format-time-precision-s +strace-t.test --absolute-timestamps=format:time --absolute-timestamps=precision:s); do not edit. +set -- --absolute-timestamps=format:time --absolute-timestamps=precision:s +. "${srcdir=.}/strace-t.test" diff --git a/tests/strace--absolute-timestamps-format-time-precision-us.gen.test b/tests/strace--absolute-timestamps-format-time-precision-us.gen.test new file mode 100755 index 00000000..6c55961c --- /dev/null +++ b/tests/strace--absolute-timestamps-format-time-precision-us.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps-format-time-precision-us +strace-tt.test 6 --absolute-timestamps=format:time --absolute-timestamps=precision:us); do not edit. +set -- 6 --absolute-timestamps=format:time --absolute-timestamps=precision:us +. "${srcdir=.}/strace-tt.test" diff --git a/tests/strace--absolute-timestamps-format-time.gen.test b/tests/strace--absolute-timestamps-format-time.gen.test new file mode 100755 index 00000000..1c55649b --- /dev/null +++ b/tests/strace--absolute-timestamps-format-time.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps-format-time +strace-t.test --absolute-timestamps=format:time); do not edit. +set -- --absolute-timestamps=format:time +. "${srcdir=.}/strace-t.test" diff --git a/tests/strace--absolute-timestamps-format-unix-precision-ms.gen.test b/tests/strace--absolute-timestamps-format-unix-precision-ms.gen.test new file mode 100755 index 00000000..fe4d221e --- /dev/null +++ b/tests/strace--absolute-timestamps-format-unix-precision-ms.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps-format-unix-precision-ms +strace-ttt.test 3 --absolute-timestamps=precision:ms --absolute-timestamps=format:unix); do not edit. +set -- 3 --absolute-timestamps=precision:ms --absolute-timestamps=format:unix +. "${srcdir=.}/strace-ttt.test" diff --git a/tests/strace--absolute-timestamps-format-unix-precision-ns.gen.test b/tests/strace--absolute-timestamps-format-unix-precision-ns.gen.test new file mode 100755 index 00000000..9ea30ba4 --- /dev/null +++ b/tests/strace--absolute-timestamps-format-unix-precision-ns.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps-format-unix-precision-ns +strace-ttt.test 9 --absolute-timestamps=format:unix --absolute-timestamps=precision:ns); do not edit. +set -- 9 --absolute-timestamps=format:unix --absolute-timestamps=precision:ns +. "${srcdir=.}/strace-ttt.test" diff --git a/tests/strace--absolute-timestamps-format-unix-precision-s.gen.test b/tests/strace--absolute-timestamps-format-unix-precision-s.gen.test new file mode 100755 index 00000000..93b7221f --- /dev/null +++ b/tests/strace--absolute-timestamps-format-unix-precision-s.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps-format-unix-precision-s +strace-ttt.test 0 --absolute-timestamps=format:unix --absolute-timestamps=precision:s); do not edit. +set -- 0 --absolute-timestamps=format:unix --absolute-timestamps=precision:s +. "${srcdir=.}/strace-ttt.test" diff --git a/tests/strace--absolute-timestamps-format-unix-precision-us.gen.test b/tests/strace--absolute-timestamps-format-unix-precision-us.gen.test new file mode 100755 index 00000000..f5136585 --- /dev/null +++ b/tests/strace--absolute-timestamps-format-unix-precision-us.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps-format-unix-precision-us +strace-ttt.test 6 --absolute-timestamps=precision:us --absolute-timestamps=format:unix); do not edit. +set -- 6 --absolute-timestamps=precision:us --absolute-timestamps=format:unix +. "${srcdir=.}/strace-ttt.test" diff --git a/tests/strace--absolute-timestamps.gen.test b/tests/strace--absolute-timestamps.gen.test new file mode 100755 index 00000000..f5c79952 --- /dev/null +++ b/tests/strace--absolute-timestamps.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--absolute-timestamps +strace-t.test --absolute-timestamps); do not edit. +set -- --absolute-timestamps +. "${srcdir=.}/strace-t.test" diff --git a/tests/strace--follow-forks-output-separately.expected b/tests/strace--follow-forks-output-separately.expected new file mode 100644 index 00000000..627a1b4c --- /dev/null +++ b/tests/strace--follow-forks-output-separately.expected @@ -0,0 +1,2 @@ +exit_group(0) = ? ++++ exited with 0 +++ diff --git a/tests/strace--follow-forks-output-separately.gen.test b/tests/strace--follow-forks-output-separately.gen.test new file mode 100755 index 00000000..96c225ec --- /dev/null +++ b/tests/strace--follow-forks-output-separately.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--follow-forks-output-separately +strace-ff.test --follow-forks --output-separately); do not edit. +set -- --follow-forks --output-separately +. "${srcdir=.}/strace-ff.test" diff --git a/tests/strace--relative-timestamps-ms.expected b/tests/strace--relative-timestamps-ms.expected new file mode 100644 index 00000000..9fff2962 --- /dev/null +++ b/tests/strace--relative-timestamps-ms.expected @@ -0,0 +1,2 @@ +[ ]{5}0\.0{3} execve\("\.\./sleep", \["\.\./sleep", "1"\], 0x[[:xdigit:]]* /\* [[:digit:]]* vars \*/\) = 0 +[ ]{5}(1\.[01]|0\.9)[[:digit:]]{2} \+\+\+ exited with 0 \+\+\+ diff --git a/tests/strace--relative-timestamps-ms.gen.test b/tests/strace--relative-timestamps-ms.gen.test new file mode 100755 index 00000000..60a5865d --- /dev/null +++ b/tests/strace--relative-timestamps-ms.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--relative-timestamps-ms +strace-r.test --relative-timestamps=ms); do not edit. +set -- --relative-timestamps=ms +. "${srcdir=.}/strace-r.test" diff --git a/tests/strace--relative-timestamps-ns.expected b/tests/strace--relative-timestamps-ns.expected new file mode 100644 index 00000000..d72c4779 --- /dev/null +++ b/tests/strace--relative-timestamps-ns.expected @@ -0,0 +1,2 @@ +[ ]{5}0\.0{9} execve\("\.\./sleep", \["\.\./sleep", "1"\], 0x[[:xdigit:]]* /\* [[:digit:]]* vars \*/\) = 0 +[ ]{5}(1\.[01]|0\.9)[[:digit:]]{8} \+\+\+ exited with 0 \+\+\+ diff --git a/tests/strace--relative-timestamps-ns.gen.test b/tests/strace--relative-timestamps-ns.gen.test new file mode 100755 index 00000000..3aec8087 --- /dev/null +++ b/tests/strace--relative-timestamps-ns.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--relative-timestamps-ns +strace-r.test --relative-timestamps=ns); do not edit. +set -- --relative-timestamps=ns +. "${srcdir=.}/strace-r.test" diff --git a/tests/strace--relative-timestamps-s.expected b/tests/strace--relative-timestamps-s.expected new file mode 100644 index 00000000..b3c5ff05 --- /dev/null +++ b/tests/strace--relative-timestamps-s.expected @@ -0,0 +1,2 @@ +[ ]{5}0 execve\("\.\./sleep", \["\.\./sleep", "1"\], 0x[[:xdigit:]]* /\* [[:digit:]]* vars \*/\) = 0 +[ ]{5}[01] \+\+\+ exited with 0 \+\+\+ diff --git a/tests/strace--relative-timestamps-s.gen.test b/tests/strace--relative-timestamps-s.gen.test new file mode 100755 index 00000000..2d2ba8db --- /dev/null +++ b/tests/strace--relative-timestamps-s.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--relative-timestamps-s +strace-r.test --relative-timestamps=s); do not edit. +set -- --relative-timestamps=s +. "${srcdir=.}/strace-r.test" diff --git a/tests/strace--relative-timestamps-us.expected b/tests/strace--relative-timestamps-us.expected new file mode 100644 index 00000000..2a5b9773 --- /dev/null +++ b/tests/strace--relative-timestamps-us.expected @@ -0,0 +1,2 @@ +[ ]{5}0\.0{6} execve\("\.\./sleep", \["\.\./sleep", "1"\], 0x[[:xdigit:]]* /\* [[:digit:]]* vars \*/\) = 0 +[ ]{5}(1\.[01]|0\.9)[[:digit:]]{5} \+\+\+ exited with 0 \+\+\+ diff --git a/tests/strace--relative-timestamps-us.gen.test b/tests/strace--relative-timestamps-us.gen.test new file mode 100755 index 00000000..660c0f29 --- /dev/null +++ b/tests/strace--relative-timestamps-us.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--relative-timestamps-us +strace-r.test --relative-timestamps=us); do not edit. +set -- --relative-timestamps=us +. "${srcdir=.}/strace-r.test" diff --git a/tests/strace--relative-timestamps.expected b/tests/strace--relative-timestamps.expected new file mode 100644 index 00000000..2a5b9773 --- /dev/null +++ b/tests/strace--relative-timestamps.expected @@ -0,0 +1,2 @@ +[ ]{5}0\.0{6} execve\("\.\./sleep", \["\.\./sleep", "1"\], 0x[[:xdigit:]]* /\* [[:digit:]]* vars \*/\) = 0 +[ ]{5}(1\.[01]|0\.9)[[:digit:]]{5} \+\+\+ exited with 0 \+\+\+ diff --git a/tests/strace--relative-timestamps.gen.test b/tests/strace--relative-timestamps.gen.test new file mode 100755 index 00000000..c0e8abe4 --- /dev/null +++ b/tests/strace--relative-timestamps.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--relative-timestamps +strace-r.test --relative-timestamps); do not edit. +set -- --relative-timestamps +. "${srcdir=.}/strace-r.test" diff --git a/tests/strace--strings-in-hex-all.c b/tests/strace--strings-in-hex-all.c new file mode 100644 index 00000000..af37c30c --- /dev/null +++ b/tests/strace--strings-in-hex-all.c @@ -0,0 +1,2 @@ +#define STRACE_XX 1 +#include "strace-x.c" diff --git a/tests/strace--strings-in-hex-all.gen.test b/tests/strace--strings-in-hex-all.gen.test new file mode 100755 index 00000000..78d61edd --- /dev/null +++ b/tests/strace--strings-in-hex-all.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--strings-in-hex-all --trace=chdir --strings-in-hex=all --columns=18); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff --trace=chdir --strings-in-hex=all --columns=18 diff --git a/tests/strace--strings-in-hex-non-ascii.c b/tests/strace--strings-in-hex-non-ascii.c new file mode 100644 index 00000000..e07ded29 --- /dev/null +++ b/tests/strace--strings-in-hex-non-ascii.c @@ -0,0 +1,2 @@ +#define STRACE_XX 0 +#include "strace-x.c" diff --git a/tests/strace--strings-in-hex-non-ascii.gen.test b/tests/strace--strings-in-hex-non-ascii.gen.test new file mode 100755 index 00000000..037af673 --- /dev/null +++ b/tests/strace--strings-in-hex-non-ascii.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--strings-in-hex-non-ascii --trace=chdir --strings-in-hex=non-ascii --columns=12); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff --trace=chdir --strings-in-hex=non-ascii --columns=12 diff --git a/tests/strace--strings-in-hex.c b/tests/strace--strings-in-hex.c new file mode 100644 index 00000000..af37c30c --- /dev/null +++ b/tests/strace--strings-in-hex.c @@ -0,0 +1,2 @@ +#define STRACE_XX 1 +#include "strace-x.c" diff --git a/tests/strace--strings-in-hex.gen.test b/tests/strace--strings-in-hex.gen.test new file mode 100755 index 00000000..c16db4b9 --- /dev/null +++ b/tests/strace--strings-in-hex.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--strings-in-hex --trace=chdir --strings-in-hex --columns=18); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff --trace=chdir --strings-in-hex --columns=18 diff --git a/tests/strace--syscall-times-ms.expected b/tests/strace--syscall-times-ms.expected new file mode 100644 index 00000000..62c652ad --- /dev/null +++ b/tests/strace--syscall-times-ms.expected @@ -0,0 +1 @@ +nanosleep\(\{tv_sec=1, tv_nsec=0\}, NULL\) = 0 <(1\.[01]|0\.9)[[:digit:]]{2}> diff --git a/tests/strace--syscall-times-ms.gen.test b/tests/strace--syscall-times-ms.gen.test new file mode 100755 index 00000000..d6b43d4a --- /dev/null +++ b/tests/strace--syscall-times-ms.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--syscall-times-ms +strace-T.test --syscall-times=ms); do not edit. +set -- --syscall-times=ms +. "${srcdir=.}/strace-T.test" diff --git a/tests/strace--syscall-times-ns.expected b/tests/strace--syscall-times-ns.expected new file mode 100644 index 00000000..0110af4c --- /dev/null +++ b/tests/strace--syscall-times-ns.expected @@ -0,0 +1 @@ +nanosleep\(\{tv_sec=1, tv_nsec=0\}, NULL\) = 0 <(1\.[01]|0\.9)[[:digit:]]{8}> diff --git a/tests/strace--syscall-times-ns.gen.test b/tests/strace--syscall-times-ns.gen.test new file mode 100755 index 00000000..1b719f0f --- /dev/null +++ b/tests/strace--syscall-times-ns.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--syscall-times-ns +strace-T.test --syscall-times=ns); do not edit. +set -- --syscall-times=ns +. "${srcdir=.}/strace-T.test" diff --git a/tests/strace--syscall-times-s.expected b/tests/strace--syscall-times-s.expected new file mode 100644 index 00000000..fd4d3401 --- /dev/null +++ b/tests/strace--syscall-times-s.expected @@ -0,0 +1 @@ +nanosleep\(\{tv_sec=1, tv_nsec=0\}, NULL\) = 0 <[01]> diff --git a/tests/strace--syscall-times-s.gen.test b/tests/strace--syscall-times-s.gen.test new file mode 100755 index 00000000..095e49bd --- /dev/null +++ b/tests/strace--syscall-times-s.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--syscall-times-s +strace-T.test --syscall-times=s); do not edit. +set -- --syscall-times=s +. "${srcdir=.}/strace-T.test" diff --git a/tests/strace--syscall-times-us.expected b/tests/strace--syscall-times-us.expected new file mode 100644 index 00000000..1ea02046 --- /dev/null +++ b/tests/strace--syscall-times-us.expected @@ -0,0 +1 @@ +nanosleep\(\{tv_sec=1, tv_nsec=0\}, NULL\) = 0 <(1\.[01]|0\.9)[[:digit:]]{5}> diff --git a/tests/strace--syscall-times-us.gen.test b/tests/strace--syscall-times-us.gen.test new file mode 100755 index 00000000..65ac920e --- /dev/null +++ b/tests/strace--syscall-times-us.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--syscall-times-us +strace-T.test --syscall-times=us); do not edit. +set -- --syscall-times=us +. "${srcdir=.}/strace-T.test" diff --git a/tests/strace--syscall-times.expected b/tests/strace--syscall-times.expected new file mode 100644 index 00000000..1ea02046 --- /dev/null +++ b/tests/strace--syscall-times.expected @@ -0,0 +1 @@ +nanosleep\(\{tv_sec=1, tv_nsec=0\}, NULL\) = 0 <(1\.[01]|0\.9)[[:digit:]]{5}> diff --git a/tests/strace--syscall-times.gen.test b/tests/strace--syscall-times.gen.test new file mode 100755 index 00000000..a86a8f15 --- /dev/null +++ b/tests/strace--syscall-times.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--syscall-times +strace-T.test --syscall-times); do not edit. +set -- --syscall-times +. "${srcdir=.}/strace-T.test" diff --git a/tests/strace--timestamps-time-ms.gen.test b/tests/strace--timestamps-time-ms.gen.test new file mode 100755 index 00000000..bc468d24 --- /dev/null +++ b/tests/strace--timestamps-time-ms.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps-time-ms +strace-tt.test 3 --timestamps=time,ms); do not edit. +set -- 3 --timestamps=time,ms +. "${srcdir=.}/strace-tt.test" diff --git a/tests/strace--timestamps-time-ns.gen.test b/tests/strace--timestamps-time-ns.gen.test new file mode 100755 index 00000000..69a2a015 --- /dev/null +++ b/tests/strace--timestamps-time-ns.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps-time-ns +strace-tt.test 9 --timestamps=time,ns); do not edit. +set -- 9 --timestamps=time,ns +. "${srcdir=.}/strace-tt.test" diff --git a/tests/strace--timestamps-time-s.gen.test b/tests/strace--timestamps-time-s.gen.test new file mode 100755 index 00000000..30a40df1 --- /dev/null +++ b/tests/strace--timestamps-time-s.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps-time-s +strace-t.test --timestamps=time,s); do not edit. +set -- --timestamps=time,s +. "${srcdir=.}/strace-t.test" diff --git a/tests/strace--timestamps-time-us.gen.test b/tests/strace--timestamps-time-us.gen.test new file mode 100755 index 00000000..e4c7a78a --- /dev/null +++ b/tests/strace--timestamps-time-us.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps-time-us +strace-tt.test 6 --timestamps=time,us); do not edit. +set -- 6 --timestamps=time,us +. "${srcdir=.}/strace-tt.test" diff --git a/tests/strace--timestamps-time.gen.test b/tests/strace--timestamps-time.gen.test new file mode 100755 index 00000000..94ad3453 --- /dev/null +++ b/tests/strace--timestamps-time.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps-time +strace-t.test --timestamps=time); do not edit. +set -- --timestamps=time +. "${srcdir=.}/strace-t.test" diff --git a/tests/strace--timestamps-unix-ms.gen.test b/tests/strace--timestamps-unix-ms.gen.test new file mode 100755 index 00000000..51db21ad --- /dev/null +++ b/tests/strace--timestamps-unix-ms.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps-unix-ms +strace-ttt.test 3 --timestamps=unix,ms); do not edit. +set -- 3 --timestamps=unix,ms +. "${srcdir=.}/strace-ttt.test" diff --git a/tests/strace--timestamps-unix-ns.gen.test b/tests/strace--timestamps-unix-ns.gen.test new file mode 100755 index 00000000..adfbdfc4 --- /dev/null +++ b/tests/strace--timestamps-unix-ns.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps-unix-ns +strace-ttt.test 9 --timestamps=unix,ns); do not edit. +set -- 9 --timestamps=unix,ns +. "${srcdir=.}/strace-ttt.test" diff --git a/tests/strace--timestamps-unix-s.gen.test b/tests/strace--timestamps-unix-s.gen.test new file mode 100755 index 00000000..0177f07f --- /dev/null +++ b/tests/strace--timestamps-unix-s.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps-unix-s +strace-ttt.test 0 --timestamps=unix,s); do not edit. +set -- 0 --timestamps=unix,s +. "${srcdir=.}/strace-ttt.test" diff --git a/tests/strace--timestamps-unix-us.gen.test b/tests/strace--timestamps-unix-us.gen.test new file mode 100755 index 00000000..42fdf060 --- /dev/null +++ b/tests/strace--timestamps-unix-us.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps-unix-us +strace-ttt.test 6 --timestamps=unix,us); do not edit. +set -- 6 --timestamps=unix,us +. "${srcdir=.}/strace-ttt.test" diff --git a/tests/strace--timestamps.gen.test b/tests/strace--timestamps.gen.test new file mode 100755 index 00000000..c08f0e5b --- /dev/null +++ b/tests/strace--timestamps.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace--timestamps +strace-t.test --timestamps); do not edit. +set -- --timestamps +. "${srcdir=.}/strace-t.test" diff --git a/tests/strace-D.expected b/tests/strace-D.expected new file mode 100644 index 00000000..78c9d2dc --- /dev/null +++ b/tests/strace-D.expected @@ -0,0 +1 @@ ++++ exited with 0 +++ diff --git a/tests/strace-D.test b/tests/strace-D.test new file mode 100755 index 00000000..6c6ff2c9 --- /dev/null +++ b/tests/strace-D.test @@ -0,0 +1,72 @@ +#!/bin/sh -efu +# +# Check -D option. +# +# Copyright (c) 2019 Dmitry V. Levin +# Copyright (c) 2019-2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +check_prog sed +run_prog_skip_if_failed \ + kill -0 $$ + +get_parent_pid() +{ + sed '/^PPid:[[:space:]]*/!d;s///' +} + +get_tracer_pid() +{ + sed '/^TracerPid:[[:space:]]*/!d;s///' +} + +set -- ../print_ppid_tracerpid +"$@" > "$LOG" || + framework_skip_ "$* does not work" + +# not traced: PPid > 0, TracerPid == 0 +[ "$(get_parent_pid < "$LOG")" -gt 0 ] && +[ "$(get_tracer_pid < "$LOG")" -eq 0 ] || + dump_log_and_fail_with "$*: unexpected output" + +# !-D: PPid > 0, TracerPid > 0, PPid == TracerPid +run_strace -e q=attach,personality -enone "$@" > "$OUT" +[ "$(get_parent_pid < "$OUT")" -gt 0 ] && +[ "$(get_tracer_pid < "$OUT")" -gt 0 ] && +[ "$(get_parent_pid < "$OUT")" = "$(get_tracer_pid < "$OUT")" ] || { + cat < "$OUT" > "$LOG" + dump_log_and_fail_with "$STRACE $args: unexpected output" +} +match_diff + +test_parent_tracer_pid() +{ + local d parent_pid tracer_pid + d="$1"; shift + + # -D/-DD/-DDD: PPid > 0, TracerPid > 0, PPid != TracerPid + run_strace $d -q -enone "$@" > "$OUT" + + parent_pid="$(get_parent_pid < "$OUT")" && + [ "$parent_pid" -gt 0 ] && + tracer_pid="$(get_tracer_pid < "$OUT")" && + [ "$tracer_pid" -gt 0 ] && + [ "$parent_pid" != "$tracer_pid" ] || { + cat < "$OUT" > "$LOG" + dump_log_and_fail_with "$STRACE $args: unexpected output" + } + + while kill -0 "$tracer_pid" 2> /dev/null; do + $SLEEP_A_BIT + done + + match_diff +} + +test_parent_tracer_pid -D "$@" +test_parent_tracer_pid -DD "$@" +test_parent_tracer_pid -DDD "$@" diff --git a/tests/strace-DD.test b/tests/strace-DD.test new file mode 100755 index 00000000..95164bba --- /dev/null +++ b/tests/strace-DD.test @@ -0,0 +1,73 @@ +#!/bin/sh -efu +# +# Check -DD option. +# +# Copyright (c) 2019-2020 Dmitry V. Levin +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +[ "$STRACE" = "$STRACE_EXE" ] || + skip_ 'Not applicable: $STRACE != $STRACE_EXE' + +run_prog_skip_if_failed \ + kill -0 $$ + +status_file=/proc/self/status +get_tracer_pid() +{ + sed '/^TracerPid:[[:space:]]*/!d;s///' "$@" +} +[ "$(get_tracer_pid "$status_file")" -ge 0 ] || + framework_skip_ "$status_file is not available" + +run_prog ../sleep 0 + +sleep_duration="$(($TIMEOUT_DURATION/2))" + +test_D() +{ + local tracee_pid tracer_pid rc sig=15 + + set -- $STRACE --output="$LOG" --columns=39 \ + --interruptible=anywhere --trace=nanosleep "$@" -- \ + ../sleep "$sleep_duration" + > "$LOG" + + ../setpgrp-exec "$@" & + tracee_pid=$! + + while tracer_pid="$(get_tracer_pid "/proc/$tracee_pid/status")"; do + [ "$tracer_pid" = 0 ] || + break + $SLEEP_A_BIT + done + + $SLEEP_A_BIT + kill -$sig -$tracee_pid + + wait $tracee_pid && rc=0 || rc=$? + [ "$rc" -eq $((128 + $sig)) ] || + dump_log_and_fail_with \ + "$* failed with unexpected exit status $rc" + + while kill -0 "$tracer_pid" 2> /dev/null; do + $SLEEP_A_BIT + done + match_diff "$LOG" "$EXP" +} + +printf 'nanosleep({tv_sec=%s, tv_nsec=0}, ' "$sleep_duration" > "$EXP" +test_D -D + +uid="${UID:-`id -u`}" +cat > "$EXP" <<__EOF__ +nanosleep({tv_sec=$sleep_duration, tv_nsec=0}, NULL) = ? ERESTART_RESTARTBLOCK (Interrupted by signal) +--- SIGTERM {si_signo=SIGTERM, si_code=SI_USER, si_pid=$$, si_uid=$uid} --- ++++ killed by SIGTERM +++ +__EOF__ + +test_D -DD +test_D -DDD diff --git a/tests/strace-DDD.expected b/tests/strace-DDD.expected new file mode 100644 index 00000000..78c9d2dc --- /dev/null +++ b/tests/strace-DDD.expected @@ -0,0 +1 @@ ++++ exited with 0 +++ diff --git a/tests/strace-DDD.test b/tests/strace-DDD.test new file mode 100755 index 00000000..aad40009 --- /dev/null +++ b/tests/strace-DDD.test @@ -0,0 +1,93 @@ +#!/bin/sh -efu +# +# Check -DDD option. +# +# Copyright (c) 2019-2020 Dmitry V. Levin +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +check_prog sed +run_prog_skip_if_failed \ + kill -0 $$ + +status_file=/proc/self/status +[ -f "$status_file" ] || + framework_skip_ "$status_file is not available" + +stat_file=/proc/self/stat +[ -f "$stat_file" ] || + framework_skip_ "$stat_file is not available" + +reapid="$(../get_process_reaper)" && [ "$reapid" -ge 1 ] || + fail_ 'get_process_reaper failed' + +set -- -enone -esignal=none ../tracer_ppid_pgid_sid +run_strace "$@" > "$OUT" +read -r tracer_pid ppid pgid sid < "$OUT" && +[ "$tracer_pid" -gt 1 ] && +[ "$tracer_pid" -ne "$reapid" ] && +[ "$ppid" -gt 1 ] && +[ "$ppid" -ne "$reapid" ] && +[ "$pgid" -ge 0 ] && +[ "$sid" -ge 0 ] || { + cat < "$OUT" > "$LOG" + dump_log_and_fail_with "$STRACE $args: unexpected output" +} +match_diff + +pgid0="$pgid" +sid0="$sid" + +run_strace -D "$@" > "$OUT" +read -r tracer_pid ppid pgid sid < "$OUT" && +[ "$tracer_pid" -gt 1 ] && +[ "$tracer_pid" -ne "$reapid" ] && +[ "$ppid" -eq "$reapid" ] && +[ "$pgid" = "$pgid0" ] && +[ "$sid" = "$sid0" ] || { + cat < "$OUT" > "$LOG" + dump_log_and_fail_with "$STRACE $args: unexpected output" +} +while kill -0 "$tracer_pid" 2> /dev/null; do + $SLEEP_A_BIT +done +match_diff + +run_strace -DD "$@" > "$OUT" +read -r tracer_pid ppid pgid sid < "$OUT" && +[ "$tracer_pid" -gt 1 ] && +[ "$tracer_pid" -ne "$reapid" ] && +[ "$ppid" -eq "$reapid" ] && +[ "$pgid" -gt 1 ] && +[ "$pgid" -ne "$reapid" ] && +[ "$pgid" != "$pgid0" ] && +[ "$pgid" != "$sid" ] && +[ "$sid" = "$sid0" ] || { + cat < "$OUT" > "$LOG" + dump_log_and_fail_with "$STRACE $args: unexpected output" +} +while kill -0 "$tracer_pid" 2> /dev/null; do + $SLEEP_A_BIT +done +match_diff + +run_strace -DDD "$@" > "$OUT" +read -r tracer_pid ppid pgid sid < "$OUT" && +[ "$tracer_pid" -gt 1 ] && +[ "$tracer_pid" -ne "$reapid" ] && +[ "$ppid" -eq "$reapid" ] && +[ "$pgid" -gt 1 ] && +[ "$pgid" -ne "$reapid" ] && +[ "$pgid" != "$pgid0" ] && +[ "$sid" = "$pgid" ] && +[ "$sid" != "$sid0" ] || { + cat < "$OUT" > "$LOG" + dump_log_and_fail_with "$STRACE $args: unexpected output" +} +while kill -0 "$tracer_pid" 2> /dev/null; do + $SLEEP_A_BIT +done +match_diff diff --git a/tests/strace-E-override.test b/tests/strace-E-override.test new file mode 100755 index 00000000..15596177 --- /dev/null +++ b/tests/strace-E-override.test @@ -0,0 +1,14 @@ +#!/bin/sh +# +# Check that --env option does not affect strace's own environment. +# +# Copyright (c) 2019-2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +check_prog true +run_prog true +run_strace --quiet=all --trace=none --signal=none --env=PATH=/ $args diff --git a/tests/strace-E-unset.expected b/tests/strace-E-unset.expected new file mode 100644 index 00000000..6ce3620f --- /dev/null +++ b/tests/strace-E-unset.expected @@ -0,0 +1,5 @@ +execve\("\.\./sleep", \["\.\./sleep", "0"\], \[.*"option_E_var=OPTION_E_VAL".*\]\) = 0 +execve\("\.\./sleep", \["\.\./sleep", "0"\], \[.*"option_E_unsets=OPTION_E_UNSETS".*\]\) = 0 +execve\("\.\./sleep", \["\.\./sleep", "0"\], \[.*"option_E_mod=OPTION_E_NEW".*\]\) = 0 +execve\("\.\./sleep", \["\.\./sleep", "0"\], \[.*"option_E_mods=OPTION_E_MODS".*\]\) = 0 +!execve\("\.\./sleep", \["\.\./sleep", "0"\], \[.*"option_E_unset=.*\]\) = 0 diff --git a/tests/strace-E-unset.test b/tests/strace-E-unset.test new file mode 100755 index 00000000..c7583c1f --- /dev/null +++ b/tests/strace-E-unset.test @@ -0,0 +1,32 @@ +#!/bin/sh +# +# Check modify/unset behaviour of -E/--env option. +# +# Copyright (c) 2016-2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +export option_E_var=OPTION_E_VAL +export option_E_mod=OPTION_E_MOD +export option_E_mods=OPTION_E_MODS +export option_E_unset=OPTION_E_UNSET +export option_E_unsets=OPTION_E_UNSETS + +run_prog ../sleep 0 +run_strace -qqq -e signal=none -e trace=execve -v \ + -E option_E_mod=OPTION_E_NEW \ + -E option_E_unset \ + -E option_E_missing \ + $args +match_grep + +run_prog ../sleep 0 +run_strace --quiet=all --signal=none --trace=execve --no-abbrev \ + --env=option_E_mod=OPTION_E_NEW \ + --env=option_E_unset \ + --env=option_E_missing \ + $args +match_grep diff --git a/tests/strace-E.test b/tests/strace-E.test index 82b95df5..b0bebe1e 100755 --- a/tests/strace-E.test +++ b/tests/strace-E.test @@ -2,7 +2,7 @@ # # Check -E option. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -12,3 +12,7 @@ run_prog ../sleep 0 > /dev/null run_strace -E option_E_var=OPTION_E_VAL -v $args match_grep + +run_prog ../sleep 0 > /dev/null +run_strace --env=option_E_var=OPTION_E_VAL --no-abbrev $args +match_grep diff --git a/tests/strace-S.test b/tests/strace-S.test index 4b5be6d9..fcea4185 100755 --- a/tests/strace-S.test +++ b/tests/strace-S.test @@ -2,7 +2,7 @@ # # Check -S option. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -18,7 +18,7 @@ test_c() sortopts="$1"; shift sedexpr="$1"; shift - run_strace -c -w -S "$sortby" ../readv > /dev/null + run_strace -c -w $sortby ../readv > /dev/null sed -r -n -e "$sedexpr" < "$LOG" > "$OUT" [ -s "$OUT" ] || @@ -31,5 +31,31 @@ test_c() } c='[[:space:]]+([^[:space:]]+)' -test_c calls '-n -r' '/^[[:space:]]+[0-9]/ s/^'"$c$c$c$c"'[[:space:]].*/\4/p' -test_c name '' '/^[[:space:]]+[0-9]/ s/^'"$c$c$c$c"'([[:space:]]+[0-9]+)?'"$c"'$/\6/p' +for s in '' '-S time' --summary-sort-by=time_total '-S total_time'; do + test_c "$s" '-n -r' \ + 's/^[[:space:]]+([0-9]+)[.,]([0-9]+)[[:space:]].*/\1\t\2/p' +done +for s in '-S avg_time' --summary-sort-by=time_avg; do + test_c "$s" '-n -r' \ + '/^[[:space:]]+[0-9]/ s/^'"$c$c$c$c"'[[:space:]].*/\3/p' +done +for s in '-S calls' --summary-sort-by=count; do + test_c "$s" '-n -r' \ + '/^[[:space:]]+[0-9]/ s/^'"$c$c$c$c"'[[:space:]].*/\4/p' +done +for s in '-S name' --summary-sort-by=syscall '-S syscall_name'; do + test_c "$s" '' \ + '/^[[:space:]]+[0-9]/ s/^'"$c$c$c$c"'([[:space:]]+[0-9]+)?'"$c"'$/\6/p' +done +for s in '-S error' --summary-sort-by=errors; do + test_c "$s" '-n -r' \ + '/^[[:space:]]+[0-9]/ s/^'"$c$c$c$c"'([[:space:]]+([0-9]+))?'"$c"'$/\6/p' +done +for s in '--summary-columns=time,time-max,name -S max_time' '-U time-percent,max_time,syscall_name --summary-sort-by=longest'; do + test_c "$s" '-n -r' \ + '/^[[:space:]]+[0-9]/ s/^'"$c$c"'[[:space:]].*/\2/p' +done +for s in '--summary-columns=time,time_min,name -S min-time' '-U time_percent,min_time,syscall-name --summary-sort-by=shortest'; do + test_c "$s" '-n -r' \ + '/^[[:space:]]+[0-9]/ s/^'"$c$c"'[[:space:]].*/\2/p' +done diff --git a/tests/strace-T.test b/tests/strace-T.test index 7c3136b7..adca3e87 100755 --- a/tests/strace-T.test +++ b/tests/strace-T.test @@ -2,13 +2,15 @@ # # Check -T option. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" +T_opt="${1:--T}" + run_prog ../sleep 0 -run_strace -a24 -T -enanosleep ../sleep 1 +run_strace -a24 "${T_opt}" -enanosleep ../sleep 1 match_grep diff --git a/tests/strace-V.test b/tests/strace-V.test index a0274c28..30f10808 100755 --- a/tests/strace-V.test +++ b/tests/strace-V.test @@ -6,51 +6,30 @@ run_prog_skip_if_failed date +%Y > /dev/null year="$(date +%Y)" -run_strace -V > "$LOG" +run_strace -V > "$OUT" +run_strace --version > "$LOG" +match_diff "$LOG" "$OUT" '-V and --version output mismatch' -getstr() -{ - sed -r -n 's/#define[[:space:]]*'"$1"'[[:space:]]*"([^"]*)".*/\1/p' \ - ../../config.h -} - -# getoption OPTION YES_STRING [NO_STRING] -# -# Returns YES_STRING in case OPTION is enabled (present in config.h and has -# a non-zero numeric value). Otherwise, NO_STRING (or empty string, if not -# specified) is returned. -getoption() -{ - local opt - opt=$(sed -r -n 's/#define[[:space:]]*'"$1"'[[:space:]]*([0-9]+)$/\1/p' \ - ../../config.h) - if [ -n "$opt" -a "$opt" -ne 0 ]; then - printf "%s" "$2" - else - printf "%s" "${3-}" - fi -} - -config_year=$(getstr COPYRIGHT_YEAR) +config_year=$(get_config_str COPYRIGHT_YEAR) [ "$year" -ge "$config_year" ] && [ "$config_year" -ge 2017 ] || { echo >&2 "The year derived from config.h (${config_year}) does not pass sanity checks." exit 1 } -option_unwind=$(getoption ENABLE_STACKTRACE \ - " stack-trace=$(getstr USE_UNWINDER)") -option_demangle=$(getoption USE_DEMANGLE " stack-demangle") +option_unwind=$(get_config_option ENABLE_STACKTRACE \ + " stack-trace=$(get_config_str USE_UNWINDER)") +option_demangle=$(get_config_option USE_DEMANGLE " stack-demangle") option_m32= option_mx32= case "$STRACE_NATIVE_ARCH" in x86_64) - option_m32=$(getoption HAVE_M32_MPERS ' m32-mpers' ' no-m32-mpers') - option_mx32=$(getoption HAVE_MX32_MPERS ' mx32-mpers' ' no-mx32-mpers') + option_m32=$(get_config_option HAVE_M32_MPERS ' m32-mpers' ' no-m32-mpers') + option_mx32=$(get_config_option HAVE_MX32_MPERS ' mx32-mpers' ' no-mx32-mpers') ;; -aarch64|powerpc64|riscv|s390x|sparc64|tile|x32) - option_m32=$(getoption HAVE_M32_MPERS ' m32-mpers' ' no-m32-mpers') +aarch64|powerpc64|s390x|sparc64|tile|x32) + option_m32=$(get_config_option HAVE_M32_MPERS ' m32-mpers' ' no-m32-mpers') ;; esac @@ -58,12 +37,12 @@ features="${option_unwind}${option_demangle}${option_m32}${option_mx32}" [ -n "$features" ] || features=" (none)" cat > "$EXP" << __EOF__ -$(getstr PACKAGE_NAME) -- version $(getstr PACKAGE_VERSION) -Copyright (c) 1991-${config_year} The strace developers <$(getstr PACKAGE_URL)>. +$(get_config_str PACKAGE_NAME) -- version $(get_config_str PACKAGE_VERSION) +Copyright (c) 1991-${config_year} The strace developers <$(get_config_str PACKAGE_URL)>. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Optional features enabled:${features} __EOF__ -match_diff "$LOG" "$EXP" +match_diff "$OUT" "$EXP" diff --git a/tests/strace-ff.test b/tests/strace-ff.test index 429549f2..9011bdd8 100755 --- a/tests/strace-ff.test +++ b/tests/strace-ff.test @@ -1,17 +1,21 @@ -#!/bin/sh +#!/bin/sh -efu # # Check -ff option. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" +ff_opt="${*:--ff}" + run_prog_skip_if_failed \ kill -0 $$ +run_prog ../sleep 0 + ../set_ptracer_any ../sleep 3 > "$OUT" & tracee_pid=$! @@ -20,12 +24,13 @@ while ! [ -s "$OUT" ]; do fail_ 'set_ptracer_any sleep failed' done -run_strace -a14 -eexit_group -ff -p $tracee_pid +run_strace --quiet=personality -a14 -eexit_group ${ff_opt} -p $tracee_pid # check that output matches match_diff "$LOG.$tracee_pid" # check that no other output files have been created +set +f set -- "$LOG".* [ "$LOG.$tracee_pid" = "$*" ] || fail_ "too many output files: $*" diff --git a/tests/strace-k-p.expected b/tests/strace-k-p.expected new file mode 100644 index 00000000..e40c339e --- /dev/null +++ b/tests/strace-k-p.expected @@ -0,0 +1,2 @@ +^chdir .*(__kernel_vsyscaln )?(__)?chdir f3 f2 f1 f0 main +^SIGURG .*(__kernel_vsyscaln )?(__)?kill f3 f2 f1 f0 main diff --git a/tests/strace-k-p.test b/tests/strace-k-p.test new file mode 100755 index 00000000..fac484f3 --- /dev/null +++ b/tests/strace-k-p.test @@ -0,0 +1,13 @@ +#!/bin/sh +# +# Check strace -k for attached tracees. +# +# Copyright (c) 2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +ATTACH_MODE=1 +test_prog=../stack-fcall-attach + +. "${srcdir=.}"/strace-k.test diff --git a/tests/strace-k.test b/tests/strace-k.test index 7a323431..51e8cb2a 100755 --- a/tests/strace-k.test +++ b/tests/strace-k.test @@ -4,23 +4,49 @@ # # Copyright (c) 2014 Masatake YAMATO # Copyright (c) 2014-2016 Dmitry V. Levin -# Copyright (c) 2014-2019 The strace developers. +# Copyright (c) 2014-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" +: "${ATTACH_MODE=0}" + # strace -k is implemented using /proc/$pid/maps [ -f /proc/self/maps ] || framework_skip_ '/proc/self/maps is not available' check_prog grep +check_prog readlink check_prog sed check_prog tr +path_to_sed="$(command -v sed)" +if [ -x "$path_to_sed" ] && + path_to_sed="$(readlink -ev -- "$path_to_sed")"; then + "$path_to_sed" -n 's/^[^/]\+[[:space:]]\(\/.*\)$/\1/p' /proc/self/maps | + grep -F -x -e "$path_to_sed" > /dev/null || { + cat >&2 /proc/self/maps + framework_skip_ '/proc/self/maps is invalid' + } +fi + run_prog "${test_prog=../stack-fcall}" -run_strace -e chdir -k $args + +if [ "x${ATTACH_MODE}" = "x1" ]; then + ../set_ptracer_any "${test_prog}" >> "$EXP" & + tracee_pid=$! + + while ! [ -s "$EXP" ]; do + kill -0 "$tracee_pid" 2> /dev/null || + fail_ 'set_ptracer_any failed' + done + + run_strace --trace=chdir --stack-trace --attach="$tracee_pid" +else + run_strace -e chdir -k $args +fi expected="$srcdir/$NAME.expected" awk ' diff --git a/tests/strace-n.c b/tests/strace-n.c new file mode 100644 index 00000000..452bd4ca --- /dev/null +++ b/tests/strace-n.c @@ -0,0 +1,40 @@ +/* + * Test strace's -n option. + * + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" + +#include +#include +#include + +#define SC_listen 4 + +int +main(void) +{ + int rc; + +#if defined __NR_socketcall + if (syscall(__NR_socketcall, 0L, 0L, 0L, 0L, 0L) < 0 + && EINVAL == errno) + { + const long args[] = { 0, 0 }; + rc = syscall(__NR_socketcall, SC_listen, args); + printf("[%4u] listen(0, 0) = %s\n", __NR_socketcall, sprintrc(rc)); + } +#endif + +#if defined __NR_listen + rc = syscall(__NR_listen, 0, 0); + printf("[%4u] listen(0, 0) = %s\n", __NR_listen, sprintrc(rc)); +#endif + + return 0; +} diff --git a/tests/strace-n.gen.test b/tests/strace-n.gen.test new file mode 100755 index 00000000..023380f3 --- /dev/null +++ b/tests/strace-n.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace-n -e trace=listen -n -qq -a 12); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -e trace=listen -n -qq -a 12 diff --git a/tests/strace-r.test b/tests/strace-r.test index 936f4a15..82997375 100755 --- a/tests/strace-r.test +++ b/tests/strace-r.test @@ -2,13 +2,15 @@ # # Check -r option. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" +r_opt="${1:--r}" + run_prog ../sleep 0 -run_strace -r -eexecve ../sleep 1 +run_strace "${r_opt}" -eexecve ../sleep 1 match_grep diff --git a/tests/strace-t.test b/tests/strace-t.test index a06408db..4d79a2d9 100755 --- a/tests/strace-t.test +++ b/tests/strace-t.test @@ -2,19 +2,21 @@ # # Check -t option. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" +opts="${*:--t}" + run_prog_skip_if_failed date +%s > "$LOG" run_prog_skip_if_failed date +%T --date "@$(cat "$LOG")" > /dev/null run_prog ../sleep 0 s0="$(date +%s)" -run_strace -t -eexecve $args +run_strace $opts -eexecve $args s1="$(date +%s)" s="$s0" diff --git a/tests/strace-tt.test b/tests/strace-tt.test index 4d1331b1..17d87d67 100755 --- a/tests/strace-tt.test +++ b/tests/strace-tt.test @@ -2,19 +2,23 @@ # # Check -tt option. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" +precision="${1:-6}" +[ x0 = "x$#" ] || shift +opts="${*:--tt}" + run_prog_skip_if_failed date +%s > "$LOG" run_prog_skip_if_failed date +%T --date "@$(cat "$LOG")" > /dev/null run_prog ../sleep 0 s0="$(date +%s)" -run_strace -tt -eexecve $args +run_strace $opts -eexecve $args s1="$(date +%s)" s="$s0" @@ -26,7 +30,7 @@ while [ "$s" -le "$s1" ]; do done cat > "$EXP" << __EOF__ -($t_reg)\\.[[:digit:]]{6} execve\\("\\.\\./sleep", \\["\\.\\./sleep", "0"\\], 0x[[:xdigit:]]* /\\* [[:digit:]]* vars \\*/\\) = 0 +($t_reg)\\.[[:digit:]]{${precision}} execve\\("\\.\\./sleep", \\["\\.\\./sleep", "0"\\], 0x[[:xdigit:]]* /\\* [[:digit:]]* vars \\*/\\) = 0 __EOF__ match_grep "$LOG" "$EXP" diff --git a/tests/strace-ttt.test b/tests/strace-ttt.test index 089ff064..2578d874 100755 --- a/tests/strace-ttt.test +++ b/tests/strace-ttt.test @@ -2,18 +2,22 @@ # # Check -ttt option. # -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" +precision="${1:-6}" +[ x0 = "x$#" ] || shift +opts="${*:--ttt}" + run_prog_skip_if_failed date +%s > /dev/null run_prog ../sleep 0 s0="$(date +%s)" -run_strace -ttt -eexecve $args +run_strace $opts -eexecve $args s1="$(date +%s)" s="$s0" @@ -23,8 +27,14 @@ while [ "$s" -le "$s1" ]; do s=$(($s + 1)) done +if [ x0 = "x${precision}" ]; then + subsec_re="" +else + subsec_re="\\.[[:digit:]]{${precision}}" +fi + cat > "$EXP" << __EOF__ -($t_reg)\\.[[:digit:]]{6} execve\\("\\.\\./sleep", \\["\\.\\./sleep", "0"\\], 0x[[:xdigit:]]* /\\* [[:digit:]]+ vars \\*/\\) = 0 +($t_reg)${subsec_re} execve\\("\\.\\./sleep", \\["\\.\\./sleep", "0"\\], 0x[[:xdigit:]]* /\\* [[:digit:]]+ vars \\*/\\) = 0 __EOF__ match_grep "$LOG" "$EXP" diff --git a/tests/strace-x.c b/tests/strace-x.c new file mode 100644 index 00000000..5d537e97 --- /dev/null +++ b/tests/strace-x.c @@ -0,0 +1,82 @@ +/* + * Test strace's -x option. + * + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#include +#include + +#ifndef STRACE_XX +# define STRACE_XX 0 +#endif + +#if STRACE_XX +# define XOUT(x_, xx_) xx_ +#else +# define XOUT(x_, xx_) x_ +#endif + +int +main(void) +{ + static const struct { + const char *path; + const char *out; + } test_vecs[] = { + { "test", XOUT("test", "\\x74\\x65\\x73\\x74") }, + { "\t\n\v\f\r hi~", XOUT("\\t\\n\\v\\f\\r hi~", + "\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\x68\\x69\\x7e") }, + { "\t\n\v\f\r\16 hi~", XOUT( + "\\x09\\x0a\\x0b\\x0c\\x0d\\x0e\\x20\\x68\\x69\\x7e", + "\\x09\\x0a\\x0b\\x0c\\x0d\\x0e\\x20\\x68\\x69\\x7e") }, + { "\10\t\n\v\f\r hi~", XOUT( + "\\x08\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\x68\\x69\\x7e", + "\\x08\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\x68\\x69\\x7e") }, + { "\t\n\v\f\r\37 hi~", XOUT( + "\\x09\\x0a\\x0b\\x0c\\x0d\\x1f\\x20\\x68\\x69\\x7e", + "\\x09\\x0a\\x0b\\x0c\\x0d\\x1f\\x20\\x68\\x69\\x7e") }, + { "\t\n\v\f\r hi~\177", XOUT( + "\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\x68\\x69\\x7e\\x7f", + "\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\x68\\x69\\x7e\\x7f") }, + { "\t\n\v\f\r hi~\222", XOUT( + "\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\x68\\x69\\x7e\\x92", + "\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\x68\\x69\\x7e\\x92") }, + { "\t\n\v\f\r hi~\377", XOUT( + "\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\x68\\x69\\x7e\\xff", + "\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\x68\\x69\\x7e\\xff") }, + }; + static char path[] = " "; + + const char *rc_str; + + for (size_t i = 0; i < ARRAY_SIZE(test_vecs); i++) { + rc_str = sprintrc(chdir(test_vecs[i].path)); + printf("chdir(\"%s\") = %s\n", test_vecs[i].out, rc_str); + } + + for (unsigned char c = 1; c < 255; c++) { + path[1] = c; + rc_str = sprintrc(chdir(path)); + + printf("chdir("); +#if STRACE_XX + print_quoted_hex(path, sizeof(path) - 1); +#else + if (((c < ' ') || (c >= 0x7f)) && (c != '\t') && (c != '\n') && + (c != '\v') && (c != '\f') && (c != '\r')) + print_quoted_hex(path, sizeof(path) - 1); + else + print_quoted_string(path); +#endif + printf(") = %s\n", rc_str); + } + + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests/strace-x.gen.test b/tests/strace-x.gen.test new file mode 100755 index 00000000..231f34c6 --- /dev/null +++ b/tests/strace-x.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace-x -e trace=chdir -x -a 12); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -e trace=chdir -x -a 12 diff --git a/tests/strace-xx.c b/tests/strace-xx.c new file mode 100644 index 00000000..af37c30c --- /dev/null +++ b/tests/strace-xx.c @@ -0,0 +1,2 @@ +#define STRACE_XX 1 +#include "strace-x.c" diff --git a/tests/strace-xx.gen.test b/tests/strace-xx.gen.test new file mode 100755 index 00000000..3deb88cb --- /dev/null +++ b/tests/strace-xx.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (strace-xx -e trace=chdir -xx -a 18); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -e trace=chdir -xx -a 18 diff --git a/tests/swap.c b/tests/swap.c index a854182e..4b032207 100644 --- a/tests/swap.c +++ b/tests/swap.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_swapon && defined __NR_swapoff diff --git a/tests/sxetmask.c b/tests/sxetmask.c index 3ad2368e..3b66f5a6 100644 --- a/tests/sxetmask.c +++ b/tests/sxetmask.c @@ -2,13 +2,14 @@ * Check decoding of sgetmask and ssetmask syscalls. * * Copyright (c) 2017-2018 Dmitry V. Levin + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_sgetmask && defined __NR_ssetmask diff --git a/tests/symlink.c b/tests/symlink.c index 8283a8e2..c47ad842 100644 --- a/tests/symlink.c +++ b/tests/symlink.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_symlink diff --git a/tests/symlinkat.c b/tests/symlinkat.c index be36b941..d2d1729b 100644 --- a/tests/symlinkat.c +++ b/tests/symlinkat.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_symlinkat diff --git a/tests/sync.c b/tests/sync.c index e0b654d0..db7924be 100644 --- a/tests/sync.c +++ b/tests/sync.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_sync diff --git a/tests/sync_file_range.c b/tests/sync_file_range.c index 9eba7815..0f6d1e3f 100644 --- a/tests/sync_file_range.c +++ b/tests/sync_file_range.c @@ -2,6 +2,7 @@ * Check decoding of sync_file_range syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,7 +10,7 @@ #include "tests.h" #include -#include +#include "scno.h" #if defined HAVE_SYNC_FILE_RANGE && defined __NR_sync_file_range diff --git a/tests/sync_file_range2.c b/tests/sync_file_range2.c index 03af1005..d914b289 100644 --- a/tests/sync_file_range2.c +++ b/tests/sync_file_range2.c @@ -2,6 +2,7 @@ * Check decoding of sync_file_range2 syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,7 +10,7 @@ #include "tests.h" #include -#include +#include "scno.h" #if defined HAVE_SYNC_FILE_RANGE && defined __NR_sync_file_range2 diff --git a/tests/syntax.sh b/tests/syntax.sh index 2e30e6a1..da43d656 100644 --- a/tests/syntax.sh +++ b/tests/syntax.sh @@ -3,57 +3,76 @@ # Define syntax testing primitives. # # Copyright (c) 2016 Dmitry V. Levin -# Copyright (c) 2016-2018 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later . "${srcdir=.}/init.sh" +log_sfx() +{ + printf "%.128s" "$*" | tr -c '0-9A-Za-z-=,' '_' +} + check_exit_status_and_stderr() { - $STRACE "$@" 2> "$LOG" && - dump_log_and_fail_with \ - "strace $* failed to handle the error properly" - match_diff "$LOG" "$EXP" || - dump_log_and_fail_with \ - "strace $* failed to print expected diagnostics" + local sfx + sfx="$1"; shift + $STRACE "$@" 2> "$LOG.$sfx" && { + cat "$LOG.$sfx" >&2 + fail_ "strace $* failed to handle the error properly" + } + match_diff "$LOG.$sfx" "$EXP.$sfx" \ + "strace $* failed to print expected diagnostics" } check_exit_status_and_stderr_using_grep() { - $STRACE "$@" 2> "$LOG" && - dump_log_and_fail_with \ - "strace $* failed to handle the error properly" - match_grep "$LOG" "$EXP" || - dump_log_and_fail_with \ - "strace $* failed to print expected diagnostics" + local sfx + sfx="$1"; shift + $STRACE "$@" 2> "$LOG.$sfx" && { + cat "$LOG.$sfx" >&2 + fail_ "strace $* failed to handle the error properly" + } + match_grep "$LOG.$sfx" "$EXP.$sfx" \ + "strace $* failed to print expected diagnostics" } check_e() { - local pattern="$1"; shift - cat > "$EXP" << __EOF__ + local pattern sfx + pattern="$1"; shift + sfx="$(log_sfx "$*")" + cat > "$EXP.$sfx" << __EOF__ $STRACE_EXE: $pattern __EOF__ - check_exit_status_and_stderr "$@" + check_exit_status_and_stderr "$sfx" "$@" } check_e_using_grep() { - local pattern="$1"; shift - cat > "$EXP" << __EOF__ + local pattern sfx + pattern="$1"; shift + sfx="$(log_sfx "$*")" + cat > "$EXP.$sfx" << __EOF__ $STRACE_EXE: $pattern __EOF__ - check_exit_status_and_stderr_using_grep "$@" + check_exit_status_and_stderr_using_grep "$sfx" "$@" } check_h() { - local pattern="$1"; shift - cat > "$EXP" << __EOF__ -$STRACE_EXE: $pattern -Try '$STRACE_EXE -h' for more information. -__EOF__ - check_exit_status_and_stderr "$@" + local patterns sfx + patterns="$1"; shift + sfx="$(log_sfx "$*")" + { + local pattern + printf '%s\n' "$patterns" | + while read -r pattern; do + printf '%s: %s\n' "$STRACE_EXE" "$pattern" + done + printf "Try '%s -h' for more information.\\n" "$STRACE_EXE" + } > "$EXP.$sfx" + check_exit_status_and_stderr "$sfx" "$@" } diff --git a/tests/syslog-success.c b/tests/syslog-success.c new file mode 100644 index 00000000..4374de6f --- /dev/null +++ b/tests/syslog-success.c @@ -0,0 +1,2 @@ +#define RETVAL_INJECTED 1 +#include "syslog.c" diff --git a/tests/syslog-success.test b/tests/syslog-success.test new file mode 100755 index 00000000..adc916e4 --- /dev/null +++ b/tests/syslog-success.test @@ -0,0 +1,11 @@ +#!/bin/sh -efu + +. "${srcdir=.}/scno_tampering.sh" + +run_prog ../syslog-success 0 +for i in 0 23 42; do + run_strace -a35 -e trace=syslog -e inject=syslog:retval="${i}" \ + ../syslog-success "${i}" > "$EXP.$i" + mv "$LOG" "$LOG.$i" + match_diff "$LOG.$i" "$EXP.$i" +done diff --git a/tests/syslog.c b/tests/syslog.c index 363fdf96..a9c3c813 100644 --- a/tests/syslog.c +++ b/tests/syslog.c @@ -1,27 +1,139 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_syslog # include # include -# define SYSLOG_ACTION_READ 2 +# ifdef RETVAL_INJECTED +# define RET_SFX " (INJECTED)" +# else +# define RET_SFX "" +# endif + +bool +valid_cmd(int cmd) +{ + return cmd >= 0 && cmd <= 10; +} + +void +printstr(const char *s, int cmd, long size) +{ + if (size < 0 || !valid_cmd(cmd)) + printf("%p", s); + else if (size == 0) + printf("\"\""); + else if (size <= DEFAULT_STRLEN) + print_quoted_memory(s, size); + else { + print_quoted_memory(s, DEFAULT_STRLEN); + printf("..."); + } +} int main(void) { - const long addr = (long) 0xfacefeeddeadbeefULL; - int rc = syscall(__NR_syslog, SYSLOG_ACTION_READ, addr, -1); - printf("syslog(SYSLOG_ACTION_READ, %#lx, -1) = %d %s (%m)\n", - addr, rc, errno2name()); + static const struct cmd_str { + unsigned int cmd; + const char *str; + } no_args[] = { + { 0, "0 /* SYSLOG_ACTION_CLOSE */" }, + { 1, "1 /* SYSLOG_ACTION_OPEN */" }, + { 5, "5 /* SYSLOG_ACTION_CLEAR */" }, + { 6, "6 /* SYSLOG_ACTION_CONSOLE_OFF */" }, + { 7, "7 /* SYSLOG_ACTION_CONSOLE_ON */" }, + { 9, "9 /* SYSLOG_ACTION_SIZE_UNREAD */" }, + { 10, "10 /* SYSLOG_ACTION_SIZE_BUFFER */" }, + }; + static const struct cmd_str two_args[] = { + { 0xfeedbeef, "-17973521 /* SYSLOG_ACTION_??? */" }, + { -1U, "-1 /* SYSLOG_ACTION_??? */" }, + { 2, "2 /* SYSLOG_ACTION_READ */" }, + { 3, "3 /* SYSLOG_ACTION_READ_ALL */" }, + { 4, "4 /* SYSLOG_ACTION_READ_CLEAR */" }, + { 11, "11 /* SYSLOG_ACTION_??? */" }, + { (1U << 31) - 1, "2147483647 /* SYSLOG_ACTION_??? */" }, + }; + static const struct cmd_str levels[] = { + { 0xfeedbeef, "-17973521 /* LOGLEVEL_??? */" }, + { -1U, "-1 /* LOGLEVEL_??? */" }, + { 0, "0 /* LOGLEVEL_EMERG */" }, + { 7, "7 /* LOGLEVEL_DEBUG */" }, + { 8, "8 /* LOGLEVEL_DEBUG+1 */" }, + { 9, "9 /* LOGLEVEL_??? */" }, + { (1U << 31) - 1, "2147483647 /* LOGLEVEL_??? */" }, + }; + static const kernel_ulong_t high = + (kernel_ulong_t) 0xbadc0ded00000000ULL; + static const size_t buf_size = 64; + + const kernel_ulong_t addr = (kernel_ulong_t) 0xfacefeeddeadbeefULL; + int rc; + char *buf = tail_alloc(buf_size); + + fill_memory(buf, buf_size); + + for (size_t i = 0; i < ARRAY_SIZE(no_args); i++) { + rc = syscall(__NR_syslog, high | no_args[i].cmd, addr, -1); + printf("syslog(%s) = %s" RET_SFX "\n", + no_args[i].str, sprintrc(rc)); + } + + for (size_t i = 0; i < ARRAY_SIZE(two_args); i++) { + rc = syscall(__NR_syslog, high | two_args[i].cmd, NULL, -1); + printf("syslog(%s, NULL, -1) = %s" RET_SFX "\n", + two_args[i].str, sprintrc(rc)); + +# ifdef RETVAL_INJECTED + /* Avoid valid commands with a bogus address */ + if (!valid_cmd(two_args[i].cmd)) +# endif + { + rc = syscall(__NR_syslog, high | two_args[i].cmd, addr, + -1); + printf("syslog(%s, %#llx, -1) = %s" RET_SFX "\n", + two_args[i].str, (unsigned long long) addr, + sprintrc(rc)); + + rc = syscall(__NR_syslog, two_args[i].cmd, addr, 0); + + printf("syslog(%s, %s, 0) = %s" RET_SFX "\n", + two_args[i].str, + !rc && valid_cmd(two_args[i].cmd) + && (sizeof(kernel_ulong_t) == sizeof(void *)) + ? "\"\"" + : (sizeof(addr) == 8) + ? "0xfacefeeddeadbeef" : "0xdeadbeef", + sprintrc(rc)); + } + + rc = syscall(__NR_syslog, two_args[i].cmd, buf, buf_size); + const char *errstr = sprintrc(rc); + + printf("syslog(%s, ", two_args[i].str); + if (rc >= 0 && valid_cmd(two_args[i].cmd)) + printstr(buf, two_args[i].cmd, rc); + else + printf("%p", buf); + printf(", %zu) = %s" RET_SFX "\n", buf_size, errstr); + } + + for (size_t i = 0; i < ARRAY_SIZE(levels); i++) { + rc = syscall(__NR_syslog, high | 8, addr, levels[i].cmd); + printf("syslog(8 /* SYSLOG_ACTION_CONSOLE_LEVEL */, %#llx, %s)" + " = %s" RET_SFX "\n", + (unsigned long long) addr, levels[i].str, sprintrc(rc)); + } puts("+++ exited with 0 +++"); return 0; diff --git a/tests/syslog.gen.test b/tests/syslog.gen.test index 5707a3e2..673b0180 100755 --- a/tests/syslog.gen.test +++ b/tests/syslog.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (syslog -a36 ); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (syslog -a35 ); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a36 +run_strace_match_diff -a35 diff --git a/tests/tee.c b/tests/tee.c index 2137c351..d620bb8f 100644 --- a/tests/tee.c +++ b/tests/tee.c @@ -2,13 +2,14 @@ * This file is part of tee strace test. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_tee diff --git a/tests/termsig.test b/tests/termsig.test index d41ddf0a..2bda35fc 100755 --- a/tests/termsig.test +++ b/tests/termsig.test @@ -2,7 +2,7 @@ # # Check termination signal forwarding. # -# Copyright (c) 2017-2018 The strace developers. +# Copyright (c) 2017-2019 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -11,10 +11,18 @@ run_expect_termsig="../run_expect_termsig 15" unblock_reset_raise="../unblock_reset_raise 15" +block_reset_run="../block_reset_run 15" +orig_STRACE="$STRACE" +run_prog $run_expect_termsig $block_reset_run $unblock_reset_raise run_prog $run_expect_termsig $unblock_reset_raise -STRACE="$run_expect_termsig $STRACE" +STRACE="$run_expect_termsig $orig_STRACE" +for i in 1 2 3 4; do + run_strace -I$i -enone -esignal=none $unblock_reset_raise +done + +STRACE="$run_expect_termsig $block_reset_run $orig_STRACE" for i in 1 2 3 4; do run_strace -I$i -enone -esignal=none $unblock_reset_raise done diff --git a/tests/test_nlattr.h b/tests/test_nlattr.h index 8b8c66b8..5a97382f 100644 --- a/tests/test_nlattr.h +++ b/tests/test_nlattr.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -15,6 +15,10 @@ #include "netlink.h" #include +#ifndef PRINT_SOCK +# define PRINT_SOCK 0 +#endif + static void init_nlattr(struct nlattr *const nla, const uint16_t nla_len, @@ -37,6 +41,29 @@ print_nlattr(const unsigned int nla_len, const char *const nla_type, bool add_da add_data ? "[" : "", nla_len, nla_type); } +static void +print_sockfd(int sockfd, const char *pfx, const char *sfx) +{ +#if PRINT_SOCK + static int fd = -1; + static unsigned long inode; + + if (sockfd < 0) { + printf("%s%d%s", pfx, sockfd, sfx); + return; + } + + if (sockfd != fd) { + fd = sockfd; + inode = inode_of_sockfd(fd); + } + + printf("%s%d%s", pfx, sockfd, inode, sfx); +#else + printf("%s%d%s", pfx, sockfd, sfx); +#endif +} + #define TEST_NLATTR_EX_(fd_, nlh0_, hdrlen_, \ init_msg_, print_msg_, \ nla_type_, nla_type_str_, \ @@ -60,7 +87,7 @@ print_nlattr(const unsigned int nla_len, const char *const nla_type, bool add_da sprintrc(sendto((fd_), nlh, msg_len, \ MSG_DONTWAIT, NULL, 0)); \ \ - printf("sendto(%d, {", (fd_)); \ + print_sockfd((fd_), "sendto(", ", {"); \ (print_msg_)(msg_len); \ print_nlattr(nla_len, (nla_type_str_), \ (nla_total_len_) > (nla_data_len_)); \ @@ -96,11 +123,9 @@ print_nlattr(const unsigned int nla_len, const char *const nla_type, bool add_da #define TEST_NLATTR_OBJECT_EX_(fd_, nlh0_, hdrlen_, \ init_msg_, print_msg_, \ nla_type_, nla_type_str_, \ - pattern_, obj_, fallback_func, ...) \ + pattern_, obj_, minsz_, fallback_func, ...) \ do { \ - const unsigned int plen = \ - sizeof(obj_) - 1 > DEFAULT_STRLEN \ - ? DEFAULT_STRLEN : (int) sizeof(obj_) - 1; \ + const unsigned int plen = MIN((minsz_) - 1, DEFAULT_STRLEN); \ /* len < sizeof(obj_) */ \ if (plen > 0) \ TEST_NLATTR_((fd_), (nlh0_), (hdrlen_), \ @@ -113,7 +138,7 @@ print_nlattr(const unsigned int nla_len, const char *const nla_type, bool add_da (init_msg_), (print_msg_), \ (nla_type_), (nla_type_str_), \ sizeof(obj_), \ - (pattern_), sizeof(obj_) - 1, \ + (pattern_), (minsz_) - 1, \ printf("%p", \ RTA_DATA(NLMSG_ATTR(nlh, (hdrlen_))))); \ /* sizeof(obj_) */ \ @@ -128,12 +153,12 @@ print_nlattr(const unsigned int nla_len, const char *const nla_type, bool add_da #define TEST_NLATTR_OBJECT_EX(fd_, nlh0_, hdrlen_, \ init_msg_, print_msg_, \ nla_type_, \ - pattern_, obj_, fallback_func, ...) \ + pattern_, obj_, minsz_, fallback_func, ...) \ TEST_NLATTR_OBJECT_EX_((fd_), (nlh0_), (hdrlen_), \ (init_msg_), (print_msg_), \ (nla_type_), #nla_type_, \ - (pattern_), (obj_), (fallback_func), \ - __VA_ARGS__) + (pattern_), (obj_), (minsz_), \ + (fallback_func), __VA_ARGS__) #define TEST_NLATTR_OBJECT(fd_, nlh0_, hdrlen_, \ init_msg_, print_msg_, \ @@ -141,8 +166,17 @@ print_nlattr(const unsigned int nla_len, const char *const nla_type, bool add_da TEST_NLATTR_OBJECT_EX_((fd_), (nlh0_), (hdrlen_), \ (init_msg_), (print_msg_), \ (nla_type_), #nla_type_, \ - (pattern_), (obj_), print_quoted_hex, \ - __VA_ARGS__) + (pattern_), (obj_), sizeof(obj_), \ + print_quoted_hex, __VA_ARGS__) + +#define TEST_NLATTR_OBJECT_MINSZ(fd_, nlh0_, hdrlen_, \ + init_msg_, print_msg_, \ + nla_type_, pattern_, obj_, minsz_, ...) \ + TEST_NLATTR_OBJECT_EX_((fd_), (nlh0_), (hdrlen_), \ + (init_msg_), (print_msg_), \ + (nla_type_), #nla_type_, \ + (pattern_), (obj_), (minsz_), \ + print_quoted_hex, __VA_ARGS__) #define TEST_NLATTR_ARRAY(fd_, nlh0_, hdrlen_, \ init_msg_, print_msg_, \ diff --git a/tests/test_printstrn.c b/tests/test_printstrn.c index 09c438d1..9e9a543c 100644 --- a/tests/test_printstrn.c +++ b/tests/test_printstrn.c @@ -2,7 +2,7 @@ * Test printstrn/umoven. * * Copyright (c) 2015-2017 Dmitry V. Levin - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -13,7 +13,6 @@ #include #include #include -#include #include "scno.h" #include "test_ucopy.h" diff --git a/tests/test_ucopy.c b/tests/test_ucopy.c index 78d393b2..0574c73c 100644 --- a/tests/test_ucopy.c +++ b/tests/test_ucopy.c @@ -2,7 +2,7 @@ * Test whether process_vm_readv and PTRACE_PEEKDATA work. * * Copyright (c) 2016-2017 Dmitry V. Levin - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -22,7 +22,6 @@ #ifndef HAVE_PROCESS_VM_READV -# include # include "scno.h" static ssize_t strace_process_vm_readv(pid_t pid, diff --git a/tests/tests.h b/tests/tests.h index 1a1b02c3..66c7f0e6 100644 --- a/tests/tests.h +++ b/tests/tests.h @@ -1,6 +1,6 @@ /* * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -24,6 +24,7 @@ # endif # include +# include # include # include "kernel_types.h" # include "gcc_compat.h" @@ -50,11 +51,72 @@ # define XLAT_VERBOSE 0 # endif + + +# if XLAT_RAW +# define XLAT_KNOWN(val_, str_) STRINGIFY_VAL(val_) +# define XLAT_UNKNOWN(val_, dflt_) STRINGIFY_VAL(val_) + +# define XLAT_FMT "%#x" +# define XLAT_ARGS(a_) (a_) +# define XLAT_SEL(v_, s_) v_ + +# define ABBR(s_) "" +# define RAW(s_) s_ +# define VERB(s_) "" +# define NABBR(s_) s_ +# define NRAW(s_) "" +# define NVERB(s_) s_ +# elif XLAT_VERBOSE +# define XLAT_KNOWN(val_, str_) STRINGIFY_VAL(val_) " /* " str_ " */" +# define XLAT_UNKNOWN(val_, dflt_) STRINGIFY_VAL(val_) " /* " dflt_ " */" + +# define XLAT_FMT "%#x /* %s */" +# define XLAT_ARGS(a_) a_, #a_ +# define XLAT_SEL(v_, s_) v_, s_ + +# define ABBR(s_) "" +# define RAW(s_) "" +# define VERB(s_) s_ +# define NABBR(s_) s_ +# define NRAW(s_) s_ +# define NVERB(s_) "" +# else /* !XLAT_RAW && !XLAT_VERBOSE */ +# define XLAT_KNOWN(val_, str_) str_ +# define XLAT_UNKNOWN(val_, dflt_) STRINGIFY_VAL(val_) " /* " dflt_ " */" + +# define XLAT_FMT "%s" +# define XLAT_ARGS(a_) #a_ +# define XLAT_SEL(v_, s_) s_ + +# define ABBR(s_) s_ +# define RAW(s_) "" +# define VERB(s_) "" +# define NABBR(s_) "" +# define NRAW(s_) s_ +# define NVERB(s_) s_ +# endif /* XLAT_RAW, XLAT_VERBOSE */ + +# define XLAT_STR(v_) sprintxlat(#v_, v_, NULL) + +# define ARG_XLAT_KNOWN(val_, str_) val_, XLAT_KNOWN(val_, str_) +# define ARG_XLAT_UNKNOWN(val_, str_) val_, XLAT_UNKNOWN(val_, str_) + # ifndef DEFAULT_STRLEN /* Default maximum # of bytes printed in printstr et al. */ # define DEFAULT_STRLEN 32 # endif +struct strval32 { + uint32_t val; + const char *str; +}; + +struct strval64 { + uint64_t val; + const char *str; +}; + /* Cached sysconf(_SC_PAGESIZE). */ size_t get_page_size(void); @@ -86,6 +148,12 @@ void perror_msg_and_skip(const char *, ...) /* Stat the specified file and skip the test if the stat call failed. */ void skip_if_unavailable(const char *); +/* + * Obtain an exclusive lock on dirname(path_name)/lock_name file + * using open and flock. + */ +int lock_file_by_dirname(const char *path_name, const char *lock_name); + /* * Allocate memory that ends on the page boundary. * Pages allocated by this call are preceded by an unmapped page @@ -116,15 +184,26 @@ void *tail_memdup(const void *, const size_t) # define TAIL_ALLOC_OBJECT_VAR_PTR(type_name, type_ptr) \ type_name *type_ptr = tail_alloc(sizeof(*type_ptr)) -/* +/** * Fill memory (pointed by ptr, having size bytes) with different bytes (with * values starting with start and resetting every period) in order to catch * sign, byte order and/or alignment errors. */ void fill_memory_ex(void *ptr, size_t size, unsigned char start, unsigned int period); -/* Shortcut for fill_memory_ex(ptr, size, 0x80, 0x80) */ +/** Shortcut for fill_memory_ex(ptr, size, 0x80, 0x80) */ void fill_memory(void *ptr, size_t size); +/** Variant of fill_memory_ex for arrays of 16-bit (2-byte) values. */ +void fill_memory16_ex(void *ptr, size_t size, uint16_t start, + unsigned int period); +/** Shortcut for fill_memory16_ex(ptr, size, 0x80c0, 0x8000) */ +void fill_memory16(void *ptr, size_t size); +/** Variant of fill_memory_ex for arrays of 32-bit (4-byte) values. */ +void fill_memory32_ex(void *ptr, size_t size, uint32_t start, + unsigned int period); +/** Shortcut for fill_memory32_ex(ptr, size, 0x80a0c0e0, 0x80000000) */ +void fill_memory32(void *ptr, size_t size); + /* Close stdin, move stdout to a non-standard descriptor, and print. */ void tprintf(const char *, ...) @@ -202,12 +281,49 @@ struct xlat; int printflags(const struct xlat *, const unsigned long long, const char *); /* Print constant in symbolic form according to xlat table. */ -int printxval(const struct xlat *, const unsigned long long, const char *); +int printxval_abbrev(const struct xlat *, const unsigned long long, + const char *); +int printxval_raw(const struct xlat *, const unsigned long long, const char *); +int printxval_verbose(const struct xlat *, const unsigned long long, + const char *); + +/* Print constant in symbolic form according to xlat table. */ +const char *sprintxlat_abbrev(const char *, const unsigned long long, + const char *); +const char *sprintxlat_raw(const char *, const unsigned long long, + const char *); +const char *sprintxlat_verbose(const char *, const unsigned long long, + const char *); + +/* Print constant in symbolic form according to xlat table. */ +const char *sprintxval_abbrev(const struct xlat *, const unsigned long long, + const char *); +const char *sprintxval_raw(const struct xlat *, const unsigned long long, + const char *); +const char *sprintxval_verbose(const struct xlat *, const unsigned long long, + const char *); + +# if XLAT_RAW +# define printxval printxval_raw +# define sprintxlat sprintxlat_raw +# define sprintxval sprintxval_raw +# elif XLAT_VERBOSE +# define printxval printxval_verbose +# define sprintxlat sprintxlat_verbose +# define sprintxval sprintxval_verbose +# else +# define printxval printxval_abbrev +# define sprintxlat sprintxlat_abbrev +# define sprintxval sprintxval_abbrev +# endif /* Invoke a socket syscall, either directly or via __NR_socketcall. */ int socketcall(const int nr, const int call, long a1, long a2, long a3, long a4, long a5); +/* Call chdir and print strace output depending on flags. */ +void test_status_chdir(const char *dir, bool print_success, bool print_fail); + /* Wrappers for recvmmsg and sendmmsg syscalls. */ struct mmsghdr; struct timespec; @@ -218,6 +334,9 @@ int send_mmsg(int, struct mmsghdr *, unsigned int, unsigned int); int create_nl_socket_ext(int proto, const char *name); # define create_nl_socket(proto) create_nl_socket_ext((proto), #proto) +/* Create a temporary file in the current directory. */ +int create_tmpfile(unsigned int flags); + /* Create a pipe with maximized descriptor numbers. */ void pipe_maxfd(int pipefd[2]); @@ -236,7 +355,7 @@ unsigned int ifindex_lo(void); /* * For 64-bit kernel_ulong_t and 32-bit pointer, * return a kernel_ulong_t value by filling higher bits. - * For other architertures, return the original pointer. + * For other architectures, return the original pointer. */ static inline kernel_ulong_t f8ill_ptr_to_kulong(const void *const ptr) diff --git a/tests/tgkill--pidns-translation.c b/tests/tgkill--pidns-translation.c new file mode 100644 index 00000000..c3ac2d0a --- /dev/null +++ b/tests/tgkill--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "tgkill.c" diff --git a/tests/tgkill--pidns-translation.gen.test b/tests/tgkill--pidns-translation.gen.test new file mode 100755 index 00000000..8f729251 --- /dev/null +++ b/tests/tgkill--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (tgkill--pidns-translation test_pidns -a15 --signal='!cont' -e trace=tgkill); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a15 --signal='!cont' -e trace=tgkill diff --git a/tests/tgkill.c b/tests/tgkill.c new file mode 100644 index 00000000..10816a61 --- /dev/null +++ b/tests/tgkill.c @@ -0,0 +1,88 @@ +/* + * Check decoding of tgkill syscall. + * + * Copyright (c) 2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" +#include "pidns.h" + +#ifdef __NR_tgkill + +# include +# include +# include + +static const char *errstr; + +static long +k_tgkill(const unsigned int tgid, + const unsigned int tid, + const unsigned int sig) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | tgid; + const kernel_ulong_t arg2 = fill | tid; + const kernel_ulong_t arg3 = fill | sig; + const long rc = syscall(__NR_tgkill, arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + PIDNS_TEST_INIT; + + const int pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); + const int tid = syscall(__NR_gettid); + const char *tid_str = pidns_pid2str(PT_TID); + const int bad_pid = -1; + const int bad_sig = 0xface; + + k_tgkill(pid, tid, 0); + pidns_print_leader(); + printf("tgkill(%d%s, %d%s, 0) = %s\n", + pid, pid_str, tid, tid_str, errstr); + + k_tgkill(pid, bad_pid, 0); + pidns_print_leader(); + printf("tgkill(%d%s, %d, 0) = %s\n", + pid, pid_str, bad_pid, errstr); + + k_tgkill(bad_pid, tid, 0); + pidns_print_leader(); + printf("tgkill(%d, %d%s, 0) = %s\n", + bad_pid, tid, tid_str, errstr); + + k_tgkill(pid, tid, SIGCONT); + pidns_print_leader(); + printf("tgkill(%d%s, %d%s, SIGCONT) = %s\n", + pid, pid_str, tid, tid_str, errstr); + + k_tgkill(pid, tid, bad_sig); + pidns_print_leader(); + printf("tgkill(%d%s, %d%s, %d) = %s\n", + pid, pid_str, tid, tid_str, bad_sig, errstr); + + k_tgkill(pid, tid, -bad_sig); + pidns_print_leader(); + printf("tgkill(%d%s, %d%s, %d) = %s\n", + pid, pid_str, tid, tid_str, -bad_sig, errstr); + + pidns_print_leader(); + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_tgkill") + +#endif diff --git a/tests/tgkill.gen.test b/tests/tgkill.gen.test new file mode 100755 index 00000000..6ad0e480 --- /dev/null +++ b/tests/tgkill.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (tgkill -a15 --signal='!cont'); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a15 --signal='!cont' diff --git a/tests/threads-execve--quiet-thread-execve.c b/tests/threads-execve--quiet-thread-execve.c new file mode 100644 index 00000000..9811b7be --- /dev/null +++ b/tests/threads-execve--quiet-thread-execve.c @@ -0,0 +1,2 @@ +#define PRINT_SUPERSEDED 0 +#include "threads-execve.c" diff --git a/tests/threads-execve--quiet-thread-execve.gen.test b/tests/threads-execve--quiet-thread-execve.gen.test new file mode 100755 index 00000000..24ed8ae1 --- /dev/null +++ b/tests/threads-execve--quiet-thread-execve.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (threads-execve--quiet-thread-execve +threads-execve.test -s40 --quiet=personality,thread-execve); do not edit. +set -- -s40 --quiet=personality,thread-execve +. "${srcdir=.}/threads-execve.test" diff --git a/tests/threads-execve-q.c b/tests/threads-execve-q.c new file mode 100644 index 00000000..a6627b7d --- /dev/null +++ b/tests/threads-execve-q.c @@ -0,0 +1 @@ +#include "threads-execve.c" diff --git a/tests/threads-execve-q.gen.test b/tests/threads-execve-q.gen.test new file mode 100755 index 00000000..9865efef --- /dev/null +++ b/tests/threads-execve-q.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (threads-execve-q +threads-execve.test -q); do not edit. +set -- -q +. "${srcdir=.}/threads-execve.test" diff --git a/tests/threads-execve-qq.c b/tests/threads-execve-qq.c new file mode 100644 index 00000000..2dc806d3 --- /dev/null +++ b/tests/threads-execve-qq.c @@ -0,0 +1,2 @@ +#define PRINT_EXITED 0 +#include "threads-execve.c" diff --git a/tests/threads-execve-qq.gen.test b/tests/threads-execve-qq.gen.test new file mode 100755 index 00000000..515ac448 --- /dev/null +++ b/tests/threads-execve-qq.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (threads-execve-qq +threads-execve.test -qq); do not edit. +set -- -qq +. "${srcdir=.}/threads-execve.test" diff --git a/tests/threads-execve-qqq.c b/tests/threads-execve-qqq.c new file mode 100644 index 00000000..c8e32918 --- /dev/null +++ b/tests/threads-execve-qqq.c @@ -0,0 +1,3 @@ +#define PRINT_SUPERSEDED 0 +#define PRINT_EXITED 0 +#include "threads-execve.c" diff --git a/tests/threads-execve-qqq.gen.test b/tests/threads-execve-qqq.gen.test new file mode 100755 index 00000000..4a6641fc --- /dev/null +++ b/tests/threads-execve-qqq.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (threads-execve-qqq +threads-execve.test -qqq); do not edit. +set -- -qqq +. "${srcdir=.}/threads-execve.test" diff --git a/tests/threads-execve.c b/tests/threads-execve.c index 56fab529..3c13e29a 100644 --- a/tests/threads-execve.c +++ b/tests/threads-execve.c @@ -2,21 +2,33 @@ * Check decoding of threads when a non-leader thread invokes execve. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2019 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include -#include -#include -#include -#include -#include -#include +#include "scno.h" + +#ifdef __NR_nanosleep + +# include +# include +# include +# include +# include +# include +# include + +# include "kernel_old_timespec.h" + +# ifndef PRINT_EXITED +# define PRINT_EXITED 1 +# endif +# ifndef PRINT_SUPERSEDED +# define PRINT_SUPERSEDED 1 +# endif static pid_t leader; static pid_t tid; @@ -110,9 +122,9 @@ thread(void *arg) struct timespec ts = { .tv_nsec = 100000000 }; (void) clock_nanosleep(CLOCK_REALTIME, 0, &ts, NULL); - ts.tv_nsec = 12345; + kernel_old_timespec_t ots = { .tv_nsec = 12345 }; printf("%-5d nanosleep({tv_sec=0, tv_nsec=%u}, NULL) = 0\n", - tid, (unsigned int) ts.tv_nsec); + tid, (unsigned int) ots.tv_nsec); switch (action % NUMBER_OF_ACTIONS) { case ACTION_exit: @@ -140,12 +152,12 @@ thread(void *arg) break; } - printf("%-5d +++ superseded by execve in pid %u +++\n" - "%-5d <... execve resumed>) = 0\n", - leader, tid, - leader); +# if PRINT_SUPERSEDED + printf("%-5d +++ superseded by execve in pid %u +++\n", leader, tid); +# endif + printf("%-5d <... execve resumed>) = 0\n", leader); - (void) nanosleep(&ts, NULL); + (void) syscall(__NR_nanosleep, (unsigned long) &ots, 0UL); execve(argv[0], argv, environ); perror_msg_and_fail("execve"); } @@ -178,7 +190,9 @@ main(int ac, char **av) action = atoi(av[2]); if (action >= NUMBER_OF_ACTIONS * NUMBER_OF_ITERATIONS) { +# if PRINT_EXITED printf("%-5d +++ exited with 0 +++\n", leader); +# endif return 0; } @@ -190,7 +204,7 @@ main(int ac, char **av) if (errno) perror_msg_and_fail("pthread_create"); - struct timespec ts = { .tv_sec = 123 }; + kernel_old_timespec_t ots = { .tv_sec = 123 }; sigset_t mask; sigemptyset(&mask); @@ -214,11 +228,18 @@ main(int ac, char **av) case ACTION_nanosleep: printf("%s nanosleep({tv_sec=%u, tv_nsec=0}" ", \n", - leader_str, (unsigned int) ts.tv_sec); + leader_str, (unsigned int) ots.tv_sec); close(fds[1]); - (void) nanosleep(&ts, 0); + (void) syscall(__NR_nanosleep, + (unsigned long) &ots, 0UL); break; } return 1; } + +#else + +SKIP_MAIN_UNDEFINED("__NR_nanosleep") + +#endif diff --git a/tests/threads-execve.test b/tests/threads-execve.test index 04ce15df..de659103 100755 --- a/tests/threads-execve.test +++ b/tests/threads-execve.test @@ -3,7 +3,7 @@ # Check decoding of threads when a non-leader thread invokes execve. # # Copyright (c) 2016 Dmitry V. Levin -# Copyright (c) 2016-2019 The strace developers. +# Copyright (c) 2016-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: GPL-2.0-or-later @@ -14,13 +14,18 @@ # The kernel before commit v3.1-rc1~308^2~7 reported 0 instead of old pid. require_min_kernel_version_or_skip 3.1 +# This test requires some concurrency between threads. +require_min_nproc 2 + +opts="${*:-}" + check_prog diff run_prog_skip_if_failed date +%s > /dev/null s0="$(date +%s)" run_prog > /dev/null -set -- -a21 -f -esignal=none -e trace=execve,exit,nanosleep,rt_sigsuspend $args +set -- -a21 -f -esignal=none -e trace=execve,exit,nanosleep,rt_sigsuspend $opts $args # Due to probabilistic nature of the test, try it several times. while :; do diff --git a/tests/time.c b/tests/time.c index 330c8846..f41d7fdb 100644 --- a/tests/time.c +++ b/tests/time.c @@ -2,14 +2,14 @@ * This file is part of time strace test. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_time diff --git a/tests/timer_create.c b/tests/timer_create.c index c9c64813..2c4dae19 100644 --- a/tests/timer_create.c +++ b/tests/timer_create.c @@ -2,13 +2,14 @@ * This file is part of timer_create strace test. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_timer_create diff --git a/tests/timer_xettime.c b/tests/timer_xettime.c index 17390c2d..04d037b2 100644 --- a/tests/timer_xettime.c +++ b/tests/timer_xettime.c @@ -2,14 +2,14 @@ * This file is part of timer_xettime strace test. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_timer_create \ && defined __NR_timer_gettime \ diff --git a/tests/timerfd_xettime.c b/tests/timerfd_xettime.c index 73616677..96d4c682 100644 --- a/tests/timerfd_xettime.c +++ b/tests/timerfd_xettime.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -8,7 +8,7 @@ #include "tests.h" #include -#include +#include "scno.h" #if defined __NR_timerfd_create \ && defined __NR_timerfd_gettime \ diff --git a/tests/times-fail.c b/tests/times-fail.c index 551803df..940966d5 100644 --- a/tests/times-fail.c +++ b/tests/times-fail.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -9,7 +9,7 @@ #include #include #include -#include +#include "scno.h" int main(void) diff --git a/tests/times.c b/tests/times.c index a390dde4..06a0f257 100644 --- a/tests/times.c +++ b/tests/times.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2015 Eugene Syromyatnikov * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -19,12 +19,13 @@ #include #include -#include +#include "scno.h" #include #include enum { - NUM_USER_ITERS = 1000000, + NUM_USER_ITERS_SQRT = 1000, + NUM_USER_ITERS = NUM_USER_ITERS_SQRT * NUM_USER_ITERS_SQRT, PARENT_CPUTIME_LIMIT_NSEC = 200000000, CHILD_CPUTIME_LIMIT_NSEC = 300000000 }; @@ -48,7 +49,7 @@ main(void) if (ts.tv_sec || ts.tv_nsec >= cputime_limit) break; - if (i && !(ts.tv_sec || ts.tv_nsec)) + if ((i > NUM_USER_ITERS_SQRT) && !(ts.tv_sec || ts.tv_nsec)) error_msg_and_skip("clock_gettime(CLOCK_PROCESS_CPUTIME_ID, {0, 0})"); for (i = 0; i < NUM_USER_ITERS; ++i) diff --git a/tests/tkill--pidns-translation.c b/tests/tkill--pidns-translation.c new file mode 100644 index 00000000..70a64f57 --- /dev/null +++ b/tests/tkill--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "tkill.c" diff --git a/tests/tkill--pidns-translation.gen.test b/tests/tkill--pidns-translation.gen.test new file mode 100755 index 00000000..14c2fb31 --- /dev/null +++ b/tests/tkill--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (tkill--pidns-translation test_pidns --signal='!cont' -a12 -e trace=tkill); do not edit. +. "${srcdir=.}/init.sh" +test_pidns --signal='!cont' -a12 -e trace=tkill diff --git a/tests/tkill.c b/tests/tkill.c new file mode 100644 index 00000000..89466e1a --- /dev/null +++ b/tests/tkill.c @@ -0,0 +1,69 @@ +/* + * Check decoding of tkill syscall. + * + * Copyright (c) 2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "scno.h" +#include "pidns.h" + +#ifdef __NR_tkill + +# include +# include +# include + +static const char *errstr; + +static long +k_tkill(const unsigned int tid, const unsigned int sig) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | tid; + const kernel_ulong_t arg2 = fill | sig; + const long rc = syscall(__NR_tkill, arg1, arg2, bad, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +int +main(void) +{ + PIDNS_TEST_INIT; + + const int tid = syscall(__NR_gettid); + const char *tid_str = pidns_pid2str(PT_TID); + const int bad_pid = -1; + const int bad_sig = 0xface; + + k_tkill(tid, 0); + pidns_print_leader(); + printf("tkill(%d%s, 0) = %s\n", tid, tid_str, errstr); + + k_tkill(tid, SIGCONT); + pidns_print_leader(); + printf("tkill(%d%s, SIGCONT) = %s\n", tid, tid_str, errstr); + + k_tkill(bad_pid, bad_sig); + pidns_print_leader(); + printf("tkill(%d, %d) = %s\n", bad_pid, bad_sig, errstr); + + k_tkill(bad_pid, -bad_sig); + pidns_print_leader(); + printf("tkill(%d, %d) = %s\n", bad_pid, -bad_sig, errstr); + + pidns_print_leader(); + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_tkill") + +#endif diff --git a/tests/tkill.gen.test b/tests/tkill.gen.test new file mode 100755 index 00000000..65e9d96e --- /dev/null +++ b/tests/tkill.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (tkill -a12 --signal='!cont'); do not edit. +. "${srcdir=.}/init.sh" +run_strace_match_diff -a12 --signal='!cont' diff --git a/tests/trace_clock.gen.test b/tests/trace_clock.gen.test new file mode 100755 index 00000000..e9eea786 --- /dev/null +++ b/tests/trace_clock.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (trace_clock test_trace_expr 'clock_nanosleep|times' -e%clock); do not edit. +. "${srcdir=.}/init.sh" +test_trace_expr 'clock_nanosleep|times' -e%clock diff --git a/tests/trace_clock.in b/tests/trace_clock.in new file mode 100644 index 00000000..511ec8ea --- /dev/null +++ b/tests/trace_clock.in @@ -0,0 +1,5 @@ +adjtimex -a13 +clock_adjtime -a21 +clock_xettime -a21 +xettimeofday -a20 +time -a9 diff --git a/tests/trace_creds.gen.test b/tests/trace_creds.gen.test new file mode 100755 index 00000000..d8cd5892 --- /dev/null +++ b/tests/trace_creds.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (trace_creds test_trace_expr '([gs]et[^p]*([gu]id|groups)|caps|prctl|[fl]?chown|print(path-umovestr|strn-umoven)-undumpable|ptrace|quotactl|rt_sigtimedwait|rt_(tg)?sigqueueinfo).*' -e%creds); do not edit. +. "${srcdir=.}/init.sh" +test_trace_expr '([gs]et[^p]*([gu]id|groups)|caps|prctl|[fl]?chown|print(path-umovestr|strn-umoven)-undumpable|ptrace|quotactl|rt_sigtimedwait|rt_(tg)?sigqueueinfo).*' -e%creds diff --git a/tests/trace_creds.in b/tests/trace_creds.in new file mode 100644 index 00000000..ce78253a --- /dev/null +++ b/tests/trace_creds.in @@ -0,0 +1,8 @@ +getgroups -a17 +getgroups32 -a19 +getresgid -a25 +getresgid32 -a27 +getresuid -a25 +getresuid32 -a27 +setgroups -s2 -a17 +setgroups32 -s2 -a19 diff --git a/tests/trace_fstat.in b/tests/trace_fstat.in index 3fde131d..9d7b51bb 100644 --- a/tests/trace_fstat.in +++ b/tests/trace_fstat.in @@ -9,3 +9,4 @@ fstat64-Xverbose -a17 -Xverbose fstatat64 -a32 newfstatat -a32 oldfstat -a21 +statx -a32 diff --git a/tests/trace_lstat.in b/tests/trace_lstat.in index abbabc49..ca9f1318 100644 --- a/tests/trace_lstat.in +++ b/tests/trace_lstat.in @@ -1,3 +1,3 @@ -lstat -a32 +lstat -a31 lstat64 -a32 oldlstat -a32 diff --git a/tests/trace_stat.in b/tests/trace_stat.in index f105d784..75633050 100644 --- a/tests/trace_stat.in +++ b/tests/trace_stat.in @@ -1,3 +1,3 @@ oldstat -a32 -stat -a32 +stat -a30 stat64 -a32 diff --git a/tests/tracer_ppid_pgid_sid.c b/tests/tracer_ppid_pgid_sid.c new file mode 100644 index 00000000..69687fa2 --- /dev/null +++ b/tests/tracer_ppid_pgid_sid.c @@ -0,0 +1,92 @@ +/* + * Helper program for strace-DDD.test + * + * Copyright (c) 2019-2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include +#include +#include +#include +#include + +static int +fetch_tracer_pid(const char *str) +{ + for (; isspace(*str); ++str) + ; + return atoi(str); +} + +static int +get_tracer_pid(void) +{ + static const char status[] = "/proc/self/status"; + FILE *fp = fopen(status, "r"); + if (!fp) + perror_msg_and_fail("fopen: %s", status); + + static const char prefix[] = "TracerPid:"; + const size_t prefix_len = sizeof(prefix) - 1; + const char *str = NULL; + char *line = NULL; + size_t n = 0; + + while (getline(&line, &n, fp) > 0) { + if (strncmp(line, prefix, prefix_len) == 0) { + str = line + prefix_len; + break; + } + } + if (!str && !line) + perror_msg_and_fail("getline"); + + int pid = str ? fetch_tracer_pid(str) : 0; + free(line); + fclose(fp); + + return pid; +} + +static void +get_ppid_pgid_sid(int pid, int *ppid, int *pgid, int *sid) +{ + char *stat; + if (asprintf(&stat, "/proc/%d/stat", pid) < 0) + perror_msg_and_fail("asprintf"); + + FILE *fp = fopen(stat, "r"); + if (!fp) + perror_msg_and_fail("fopen: %s", stat); + char buf[4096]; + if (!fgets(buf, sizeof(buf), fp)) + perror_msg_and_fail("fgets: %s", stat); + + fclose(fp); + + const char *p = strrchr(buf, ')'); + if (!p) + error_msg_and_fail("%s: parenthesis not found", stat); + ++p; + + if (sscanf(p, " %*c %d %d %d", ppid, pgid, sid) != 3) + error_msg_and_fail("%s: sscanf failed", stat); +} + +int +main(void) +{ + int tracer_pid = get_tracer_pid(); + if (tracer_pid < 0) + error_msg_and_fail("tracer_pid = %d", tracer_pid); + + int ppid = 0, pgid = 0, sid = 0; + get_ppid_pgid_sid(tracer_pid, &ppid, &pgid, &sid); + printf("%d %d %d %d\n", tracer_pid, ppid, pgid, sid); + + return 0; +} diff --git a/tests/trie_for_tests.c b/tests/trie_for_tests.c new file mode 100644 index 00000000..13e564c4 --- /dev/null +++ b/tests/trie_for_tests.c @@ -0,0 +1 @@ +#include "trie.c" diff --git a/tests/trie_test.c b/tests/trie_test.c new file mode 100644 index 00000000..44a35ce3 --- /dev/null +++ b/tests/trie_test.c @@ -0,0 +1,121 @@ +/* + * Copyright (c) 2017-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" +#include "trie.h" + +#include +#include + +static void +assert_equals(const char *msg, uint64_t expected, uint64_t actual) { + if (actual != expected) + error_msg_and_fail("%s: expected: %" PRIu64 + ", actual: %" PRIu64, msg, expected, actual); +} + +static void +iterate_fn(void *data, uint64_t key, uint64_t value) +{ + uint64_t expected = key < 256 && key % 10 == 0 ? key + 42 : -1ULL; + assert_equals("iterate_fn", expected, value); + + int *count = (int *) data; + if (value != -1ULL) + (*count)++; +} + +static void +test_trie_iterate_fn(void) +{ + struct trie *t = trie_create(8, 6, 3, 3, -1); + for (int i = 0; i < 26; i++) + trie_set(t, i * 10, i * 10 + 42); + + static const struct { + uint64_t start; + uint64_t end; + int expected_count; + } iterate_params[] = { + {0, 256, 26}, + {0, UINT64_MAX, 26}, + {20, 90, 8}, + {99, 999, 16}, + {10000, 100000, 0}, + {200, 100, 0}, + }; + + for (size_t i = 0; i < ARRAY_SIZE(iterate_params); i++) { + int count = 0; + trie_iterate_keys(t, iterate_params[i].start, iterate_params[i].end, iterate_fn, &count); + assert_equals("iteration count", iterate_params[i].expected_count, count); + } +} + +struct key_value_pair { + uint64_t key, value; +}; + +static void +test_trie_get(void) +{ + static const struct { + uint8_t key_size; + uint8_t item_size_lg; + uint8_t node_key_bits; + uint8_t data_block_key_bits; + uint64_t empty_value; + + struct key_value_pair set_values[3], get_values[3]; + } params[] = { + {64, 6, 10, 10, 0, + {{300, 1}, {0xfacefeed, 0xabcdef123456}, {-1ULL, -1ULL}}, + {{301, 0}, {0xfacefeed, 0xabcdef123456}, {-1ULL, -1ULL}}}, + {8, 2, 4, 4, 10, + {{0xab, 0xcd}, {0xface, 2}, {0, 3}}, + {{0xab, 0xd}, {0xface, 10}, {0, 3}}}, + {30, 0, 6, 3, -1, + {{0xaaaa, 127}, {0xface, 0}, {0, 0}}, + {{0xaaaa, 1}, {0xface, 0}, {1, 1}}}, + {16, 4, 5, 11, 0xffffff, + {{0xabcdef, 42}, {0xabcd, 42}, {0xffff, 0}}, + {{0xabcdef, 0xffff}, {0xabcd, 42}, {0xffff, 0}}}, + {41, 5, 1, 1, -1, + {{0xabcdef01, 0x22222222}, {-1, 0x33333333}, {10, 10}}, + {{0xabcdef01, 0x22222222}, {-1, 0xffffffff}, {10, 10}}}, + }; + + for (size_t i = 0; i < ARRAY_SIZE(params); i++) { + struct trie *t = trie_create(params[i].key_size, + params[i].item_size_lg, + params[i].node_key_bits, + params[i].data_block_key_bits, + params[i].empty_value); + + if (!t) + error_msg_and_fail("trie creation failed"); + + for (size_t j = 0; j < ARRAY_SIZE(params[i].set_values); j++) { + struct key_value_pair kv = params[i].set_values[j]; + trie_set(t, kv.key, kv.value); + } + for (size_t j = 0; j < ARRAY_SIZE(params[i].get_values); j++) { + struct key_value_pair kv = params[i].get_values[j]; + assert_equals("trie_get", kv.value, trie_get(t, kv.key)); + } + + trie_free(t); + } +} + +int +main(void) +{ + test_trie_get(); + test_trie_iterate_fn(); + return 0; +} diff --git a/tests/trie_test.gen.test b/tests/trie_test.gen.test new file mode 100755 index 00000000..c097ae50 --- /dev/null +++ b/tests/trie_test.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (trie_test run_prog ); do not edit. +. "${srcdir=.}/init.sh" +run_prog diff --git a/tests/truncate.c b/tests/truncate.c index bfb6299b..5204ec04 100644 --- a/tests/truncate.c +++ b/tests/truncate.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_truncate diff --git a/tests/truncate64.c b/tests/truncate64.c index 1dceb414..6b071715 100644 --- a/tests/truncate64.c +++ b/tests/truncate64.c @@ -1,12 +1,13 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_truncate64 diff --git a/tests/ugetrlimit.c b/tests/ugetrlimit.c index 49627c1f..951ab974 100644 --- a/tests/ugetrlimit.c +++ b/tests/ugetrlimit.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_ugetrlimit diff --git a/tests/umount.c b/tests/umount.c index cd89aa0b..74450bc1 100644 --- a/tests/umount.c +++ b/tests/umount.c @@ -9,7 +9,7 @@ #include #include #include -#include +#include "scno.h" #include #ifdef __NR_oldumount diff --git a/tests/umount2.c b/tests/umount2.c index d313d597..cf1fc129 100644 --- a/tests/umount2.c +++ b/tests/umount2.c @@ -10,12 +10,13 @@ #include #include #include -#include +#include "scno.h" #if defined __NR_umount2 && (!defined __NR_umount || __NR_umount2 != __NR_umount) +# define TEST_SYSCALL_NR __NR_umount2 # define TEST_SYSCALL_STR "umount2" #else -# define __NR_umount2 __NR_umount +# define TEST_SYSCALL_NR __NR_umount # define TEST_SYSCALL_STR "umount" #endif @@ -25,9 +26,9 @@ main(void) static const char sample[] = "umount2.sample"; if (mkdir(sample, 0700)) perror_msg_and_fail("mkdir: %s", sample); - (void) syscall(__NR_umount2, sample, 31); + long ret = syscall(TEST_SYSCALL_NR, sample, 31); printf("%s(\"%s\", MNT_FORCE|MNT_DETACH|MNT_EXPIRE|UMOUNT_NOFOLLOW|0x10)" - " = -1 EINVAL (%m)\n", TEST_SYSCALL_STR, sample); + " = %s\n", TEST_SYSCALL_STR, sample, sprintrc(ret)); if (rmdir(sample)) perror_msg_and_fail("rmdir: %s", sample); puts("+++ exited with 0 +++"); diff --git a/tests/umoven-illptr.c b/tests/umoven-illptr.c index 25839f77..6a86fdcf 100644 --- a/tests/umoven-illptr.c +++ b/tests/umoven-illptr.c @@ -2,36 +2,56 @@ * Check decoding of invalid pointer by umoven. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include -#include -#include +#include "scno.h" + +#ifdef __NR_nanosleep + +# include +# include + +# include "kernel_old_timespec.h" + +static const char *errstr; + +static long +k_nanosleep(const kernel_ulong_t arg1, const kernel_ulong_t arg2) +{ + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const long rc = syscall(__NR_nanosleep, arg1, arg2, bad, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} int main(void) { - if (F8ILL_KULONG_SUPPORTED) { - struct timespec ts = { 0, 0 }; - const void *const p = tail_memdup(&ts, sizeof(ts)); - - long rc = syscall(__NR_nanosleep, p, NULL); - printf("nanosleep({tv_sec=0, tv_nsec=0}, NULL) = %s\n", - sprintrc(rc)); - - const kernel_ulong_t ill = f8ill_ptr_to_kulong(p); - rc = syscall(__NR_nanosleep, ill, NULL); - printf("nanosleep(%#llx, NULL) = %s\n", - (unsigned long long) ill, sprintrc(rc)); - - puts("+++ exited with 0 +++"); - return 0; - } else { + if (!F8ILL_KULONG_SUPPORTED) return 77; - } + + kernel_old_timespec_t ts = { 0, 0 }; + const void *const p = tail_memdup(&ts, sizeof(ts)); + + k_nanosleep((unsigned long) p, 0); + printf("nanosleep({tv_sec=0, tv_nsec=0}, NULL) = %s\n", errstr); + + const kernel_ulong_t ill = f8ill_ptr_to_kulong(p); + k_nanosleep(ill, 0); + printf("nanosleep(%#llx, NULL) = %s\n", + (unsigned long long) ill, errstr); + + puts("+++ exited with 0 +++"); + return 0; } + +#else + +SKIP_MAIN_UNDEFINED("__NR_nanosleep") + +#endif diff --git a/tests/umovestr-illptr.c b/tests/umovestr-illptr.c index 5a24357a..6cfcfb86 100644 --- a/tests/umovestr-illptr.c +++ b/tests/umovestr-illptr.c @@ -2,6 +2,7 @@ * Check decoding of invalid pointer by umovestr. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +11,7 @@ #include "tests.h" #include #include -#include +#include "scno.h" int main(void) diff --git a/tests/umovestr_cached.c b/tests/umovestr_cached.c new file mode 100644 index 00000000..3d7bed3b --- /dev/null +++ b/tests/umovestr_cached.c @@ -0,0 +1,47 @@ +/* + * Check effectiveness of umovestr memory caching. + * + * Copyright (c) 2019 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#include +#include +#include +#include + +int +main(void) +{ + char *const buf = tail_alloc(DEFAULT_STRLEN); + fill_memory_ex(buf, DEFAULT_STRLEN, 'a', 'z' - 'a' + 1); + + struct iovec *const io = tail_alloc(sizeof(*io) * DEFAULT_STRLEN); + for (unsigned int i = 0; i < DEFAULT_STRLEN; ++i) { + io[i].iov_base = buf + DEFAULT_STRLEN - i; + io[i].iov_len = i; + } + + tprintf("%s", ""); + + int rc = writev(-1, io, DEFAULT_STRLEN); + const char *errstr = sprintrc(rc); + + tprintf("writev(-1, ["); + for (unsigned int i = 0; i < DEFAULT_STRLEN; ++i) { + if (i) + tprintf(", "); + tprintf("{iov_base=\"%.*s\", iov_len=%u}", + (int) io[i].iov_len, + (char *) io[i].iov_base, + (unsigned int) io[i].iov_len); + } + tprintf("], %u) = %s\n", DEFAULT_STRLEN, errstr); + + tprintf("+++ exited with 0 +++\n"); + return 0; +} diff --git a/tests/umovestr_cached.test b/tests/umovestr_cached.test new file mode 100755 index 00000000..4b9c8326 --- /dev/null +++ b/tests/umovestr_cached.test @@ -0,0 +1,41 @@ +#!/bin/sh +# +# Check effectiveness of umovestr memory caching. +# +# Copyright (c) 2017-2020 Dmitry V. Levin +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +. "${srcdir=.}/init.sh" + +expected_count="${1:-2}" + +check_prog grep +$STRACE -d -enone / > /dev/null 2> "$LOG" ||: +grep -x "[^:]*strace: PTRACE_GET_SYSCALL_INFO works" "$LOG" > /dev/null || { + # PTRACE_GET_SYSCALL_INFO does not work + case "$STRACE_ARCH:$MIPS_ABI" in + ia64:|mips:o32) + # ia64 invokes extra process_vm_readv syscalls to obtain syscall + # arguments, see linux/ia64/get_syscall_args.c for details. + # mips o32 obtains the first four syscalls arguments from registers + # and invokes extra process_vm_readv syscalls to obtain remaining + # syscall arguments, see linux/mips/get_syscall_args.c for details. + skip_ "the test is not supported on $STRACE_ARCH yet" + ;; + esac +} + +run_strace_match_diff -e trace=writev + +run_strace -qq -esignal=none -eprocess_vm_readv -z \ + -o '|grep -c ^process_vm_readv > count' \ + -- "$STRACE_EXE" -o "$LOG" $args > /dev/null + +count="$(cat count)" +case "$count" in + 0) skip_ "$STRACE $args made no process_vm_readv syscall invocations" ;; + $expected_count) ;; + *) fail_ "$STRACE $args made $count != $expected_count process_vm_readv syscall invocations" ;; +esac diff --git a/tests/umovestr_cached_adjacent.c b/tests/umovestr_cached_adjacent.c new file mode 100644 index 00000000..53a573b3 --- /dev/null +++ b/tests/umovestr_cached_adjacent.c @@ -0,0 +1,48 @@ +/* + * Check effectiveness of umovestr memory caching. + * + * Copyright (c) 2019-2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "tests.h" + +#include +#include +#include +#include + +int +main(void) +{ + const size_t size = get_page_size() + (DEFAULT_STRLEN - 1); + char *const buf = tail_alloc(size); + fill_memory_ex(buf, DEFAULT_STRLEN * 2, 'a', 'z' - 'a' + 1); + + struct iovec *const io = tail_alloc(sizeof(*io) * DEFAULT_STRLEN); + for (unsigned int i = 0; i < DEFAULT_STRLEN; ++i) { + io[i].iov_base = buf + i; + io[i].iov_len = DEFAULT_STRLEN; + } + + tprintf("%s", ""); + + int rc = writev(-1, io, DEFAULT_STRLEN); + const char *errstr = sprintrc(rc); + + tprintf("writev(-1, ["); + for (unsigned int i = 0; i < DEFAULT_STRLEN; ++i) { + if (i) + tprintf(", "); + tprintf("{iov_base=\"%.*s\", iov_len=%u}", + (int) io[i].iov_len, + (char *) io[i].iov_base, + (unsigned int) io[i].iov_len); + } + tprintf("], %u) = %s\n", DEFAULT_STRLEN, errstr); + + tprintf("+++ exited with 0 +++\n"); + return 0; +} diff --git a/tests/umovestr_cached_adjacent.gen.test b/tests/umovestr_cached_adjacent.gen.test new file mode 100755 index 00000000..24b3fd7d --- /dev/null +++ b/tests/umovestr_cached_adjacent.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (umovestr_cached_adjacent +umovestr_cached.test 3); do not edit. +set -- 3 +. "${srcdir=.}/umovestr_cached.test" diff --git a/tests/uname.c b/tests/uname.c index 386fd99b..3180cffd 100644 --- a/tests/uname.c +++ b/tests/uname.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_uname diff --git a/tests/unix-pair-send-recv.c b/tests/unix-pair-send-recv.c index 73ddd1e0..1439e1ff 100644 --- a/tests/unix-pair-send-recv.c +++ b/tests/unix-pair-send-recv.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,7 +13,7 @@ #include #include #include -#include +#include "scno.h" #ifndef __NR_send # define __NR_send -1 diff --git a/tests/unlink.c b/tests/unlink.c index 9c33b624..af9b3a06 100644 --- a/tests/unlink.c +++ b/tests/unlink.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_unlink diff --git a/tests/unlinkat.c b/tests/unlinkat.c index 0ae67964..6fcf1332 100644 --- a/tests/unlinkat.c +++ b/tests/unlinkat.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_unlinkat @@ -27,7 +27,7 @@ main(void) printf("unlinkat(%s, \"%s\", %s) = %ld %s (%m)\n", "AT_FDCWD", sample, "AT_SYMLINK_NOFOLLOW|AT_REMOVEDIR|AT_SYMLINK_FOLLOW" - "|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|0xffffe0ff", + "|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|AT_RECURSIVE|0xffff60ff", rc, errno2name()); puts("+++ exited with 0 +++"); diff --git a/tests/unshare.c b/tests/unshare.c index a49f9ef9..45e914e0 100644 --- a/tests/unshare.c +++ b/tests/unshare.c @@ -2,7 +2,7 @@ * Check decoding of unshare syscall. * * Copyright (c) 2016 Eugene Syromyatnikov - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_unshare @@ -28,12 +28,12 @@ main(void) const char *str; } unshare_flags[] = { { ARG_STR(0) }, - { 0xdeadca75, - "CLONE_THREAD|CLONE_FS|CLONE_SIGHAND|CLONE_SYSVSEM|" - "CLONE_NEWUTS|CLONE_NEWIPC|CLONE_NEWNET|CLONE_NEWUSER|" - "CLONE_NEWCGROUP|0x80a8c075" }, + { 0xdeadcaf5, + "CLONE_NEWTIME|CLONE_FS|CLONE_SIGHAND|CLONE_THREAD" + "|CLONE_SYSVSEM|CLONE_NEWCGROUP|CLONE_NEWUTS" + "|CLONE_NEWIPC|CLONE_NEWUSER|CLONE_NEWNET|0x80a8c075" }, { 0x2000000, "CLONE_NEWCGROUP" }, - { ARG_STR(0x81f8f0ff) " /* CLONE_??? */" }, + { ARG_STR(0x81f8f07f) " /* CLONE_??? */" }, }; long rc; diff --git a/tests/userfaultfd.c b/tests/userfaultfd.c index 9e59c0fe..fa722577 100644 --- a/tests/userfaultfd.c +++ b/tests/userfaultfd.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -7,7 +8,6 @@ #include "tests.h" #include -#include #include "scno.h" #if defined __NR_userfaultfd && defined O_CLOEXEC diff --git a/tests/ustat.c b/tests/ustat.c index 0945a70d..7464b98a 100644 --- a/tests/ustat.c +++ b/tests/ustat.c @@ -1,13 +1,13 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_ustat diff --git a/tests/utime.c b/tests/utime.c index 151b31a9..b548c8f8 100644 --- a/tests/utime.c +++ b/tests/utime.c @@ -2,14 +2,14 @@ * Check decoding of utime syscall. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_utime diff --git a/tests/utimensat.c b/tests/utimensat.c index 170b2c89..4aa83c81 100644 --- a/tests/utimensat.c +++ b/tests/utimensat.c @@ -2,7 +2,7 @@ * Check decoding of utimensat syscall. * * Copyright (c) 2015-2017 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -15,7 +15,7 @@ #include #include #include -#include +#include "scno.h" #if defined __NR_utimensat && defined UTIME_NOW && defined UTIME_OMIT @@ -44,7 +44,7 @@ "0x600 /* AT_REMOVEDIR|AT_SYMLINK_FOLLOW */" # define str_flags2 \ "0xffffffff /* AT_SYMLINK_NOFOLLOW|AT_REMOVEDIR|AT_SYMLINK_FOLLOW" \ - "|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|0xffffe0ff */" + "|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|AT_RECURSIVE|0xffff60ff */" # define str_utime_now_omit \ "[{tv_sec=" big_tv_sec ", tv_nsec=1073741823} /* UTIME_NOW */, " \ "{tv_sec=" huge_tv_sec ", tv_nsec=1073741822} /* UTIME_OMIT */]" @@ -55,7 +55,7 @@ # define str_flags1 "AT_REMOVEDIR|AT_SYMLINK_FOLLOW" # define str_flags2 \ "AT_SYMLINK_NOFOLLOW|AT_REMOVEDIR|AT_SYMLINK_FOLLOW" \ - "|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|0xffffe0ff" + "|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|AT_RECURSIVE|0xffff60ff" # define str_utime_now_omit "[UTIME_NOW, UTIME_OMIT]" # endif diff --git a/tests/utimes.c b/tests/utimes.c index 1aee6db3..d78969fe 100644 --- a/tests/utimes.c +++ b/tests/utimes.c @@ -2,13 +2,14 @@ * Check decoding of utimes syscall. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_utimes diff --git a/tests/vhangup.c b/tests/vhangup.c index 1a786cc3..46359016 100644 --- a/tests/vhangup.c +++ b/tests/vhangup.c @@ -1,12 +1,12 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_vhangup diff --git a/tests/vmsplice.c b/tests/vmsplice.c index b986dafa..ac949ae8 100644 --- a/tests/vmsplice.c +++ b/tests/vmsplice.c @@ -2,14 +2,14 @@ * This file is part of vmsplice strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #if defined __NR_vmsplice diff --git a/tests/wait4.c b/tests/wait4.c index 29b0cadd..048e6225 100644 --- a/tests/wait4.c +++ b/tests/wait4.c @@ -2,77 +2,98 @@ * Check decoding of wait4 syscall. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include -#include -#include -#include -#include +#include "scno.h" + +#ifdef __NR_wait4 + +# include +# include +# include +# include +# include +# include "kernel_rusage.h" static const char * -sprint_rusage(const struct rusage *const ru) +sprint_rusage(const kernel_rusage_t *const ru) { static char buf[1024]; snprintf(buf, sizeof(buf), - "{ru_utime={tv_sec=%lld, tv_usec=%llu}" - ", ru_stime={tv_sec=%lld, tv_usec=%llu}" -#if VERBOSE - ", ru_maxrss=%lu" - ", ru_ixrss=%lu" - ", ru_idrss=%lu" - ", ru_isrss=%lu" - ", ru_minflt=%lu" - ", ru_majflt=%lu" - ", ru_nswap=%lu" - ", ru_inblock=%lu" - ", ru_oublock=%lu" - ", ru_msgsnd=%lu" - ", ru_msgrcv=%lu" - ", ru_nsignals=%lu" - ", ru_nvcsw=%lu" - ", ru_nivcsw=%lu}" -#else + "{ru_utime={tv_sec=%llu, tv_usec=%llu}" + ", ru_stime={tv_sec=%llu, tv_usec=%llu}" +# if VERBOSE + ", ru_maxrss=%llu" + ", ru_ixrss=%llu" + ", ru_idrss=%llu" + ", ru_isrss=%llu" + ", ru_minflt=%llu" + ", ru_majflt=%llu" + ", ru_nswap=%llu" + ", ru_inblock=%llu" + ", ru_oublock=%llu" + ", ru_msgsnd=%llu" + ", ru_msgrcv=%llu" + ", ru_nsignals=%llu" + ", ru_nvcsw=%llu" + ", ru_nivcsw=%llu}" +# else ", ...}" -#endif - , (long long) ru->ru_utime.tv_sec +# endif + , zero_extend_signed_to_ull(ru->ru_utime.tv_sec) , zero_extend_signed_to_ull(ru->ru_utime.tv_usec) - , (long long) ru->ru_stime.tv_sec + , zero_extend_signed_to_ull(ru->ru_stime.tv_sec) , zero_extend_signed_to_ull(ru->ru_stime.tv_usec) -#if VERBOSE - , (long) ru->ru_maxrss - , (long) ru->ru_ixrss - , (long) ru->ru_idrss - , (long) ru->ru_isrss - , (long) ru->ru_minflt - , (long) ru->ru_majflt - , (long) ru->ru_nswap - , (long) ru->ru_inblock - , (long) ru->ru_oublock - , (long) ru->ru_msgsnd - , (long) ru->ru_msgrcv - , (long) ru->ru_nsignals - , (long) ru->ru_nvcsw - , (long) ru->ru_nivcsw -#endif +# if VERBOSE + , zero_extend_signed_to_ull(ru->ru_maxrss) + , zero_extend_signed_to_ull(ru->ru_ixrss) + , zero_extend_signed_to_ull(ru->ru_idrss) + , zero_extend_signed_to_ull(ru->ru_isrss) + , zero_extend_signed_to_ull(ru->ru_minflt) + , zero_extend_signed_to_ull(ru->ru_majflt) + , zero_extend_signed_to_ull(ru->ru_nswap) + , zero_extend_signed_to_ull(ru->ru_inblock) + , zero_extend_signed_to_ull(ru->ru_oublock) + , zero_extend_signed_to_ull(ru->ru_msgsnd) + , zero_extend_signed_to_ull(ru->ru_msgrcv) + , zero_extend_signed_to_ull(ru->ru_nsignals) + , zero_extend_signed_to_ull(ru->ru_nvcsw) + , zero_extend_signed_to_ull(ru->ru_nivcsw) +# endif ); return buf; } +static const char *errstr; + +static long +k_wait4(const unsigned int pid, void const *wstatus, + const unsigned int options, void const *ru) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | pid; + const kernel_ulong_t arg2 = (uintptr_t) wstatus; + const kernel_ulong_t arg3 = fill | options; + const kernel_ulong_t arg4 = (uintptr_t) ru; + const long rc = syscall(__NR_wait4, arg1, arg2, arg3, arg4, bad, bad); + errstr = sprintrc(rc); + return rc; +} + static pid_t -do_wait4(pid_t pid, int *wstatus, int options, struct rusage *ru) +do_wait4(pid_t pid, int *wstatus, int options, kernel_rusage_t *ru) { sigset_t mask = {}; sigaddset(&mask, SIGCHLD); assert(sigprocmask(SIG_BLOCK, &mask, NULL) == 0); - pid_t rc = wait4(pid, wstatus, options, ru); + pid_t rc = k_wait4(pid, wstatus, options, ru); assert(sigprocmask(SIG_UNBLOCK, &mask, NULL) == 0); return rc; } @@ -101,12 +122,12 @@ main(void) (void) close(0); TAIL_ALLOC_OBJECT_CONST_PTR(int, s); - if (wait4(pid, s, WNOHANG|__WALL, NULL)) + if (k_wait4(pid, s, WNOHANG|__WALL, NULL)) perror_msg_and_fail("wait4 #1"); tprintf("wait4(%d, %p, WNOHANG|__WALL, NULL) = 0\n", pid, s); - TAIL_ALLOC_OBJECT_CONST_PTR(struct rusage, rusage); - if (wait4(pid, s, WNOHANG|__WALL, rusage)) + TAIL_ALLOC_OBJECT_CONST_PTR(kernel_rusage_t, rusage); + if (k_wait4(pid, s, WNOHANG|__WALL, rusage)) perror_msg_and_fail("wait4 #2"); tprintf("wait4(%d, %p, WNOHANG|__WALL, %p) = 0\n", pid, s, rusage); @@ -156,12 +177,12 @@ main(void) if (kill(pid, SIGCONT)) perror_msg_and_fail("kill(SIGCONT)"); -#if defined WCONTINUED && defined WIFCONTINUED +# if defined WCONTINUED && defined WIFCONTINUED assert(do_wait4(pid, s, WCONTINUED, rusage) == pid); assert(WIFCONTINUED(*s)); tprintf("wait4(%d, [{WIFCONTINUED(s)}], WCONTINUED" ", %s) = %d\n", pid, sprint_rusage(rusage), pid); -#endif /* WCONTINUED && WIFCONTINUED */ +# endif /* WCONTINUED && WIFCONTINUED */ assert(write(1, "", 1) == 1); (void) close(1); @@ -171,10 +192,16 @@ main(void) tprintf("wait4(%d, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0" ", %s) = %d\n", pid, sprint_rusage(rusage), pid); - assert(wait4(-1, s, WNOHANG|WSTOPPED|__WALL, rusage) == -1); - tprintf("wait4(-1, %p, WNOHANG|WSTOPPED|__WALL, %p) = -1 %s (%m)\n", - s, rusage, errno2name()); + assert(k_wait4(-1, s, WNOHANG|WSTOPPED|__WALL, rusage) == -1); + tprintf("wait4(-1, %p, WNOHANG|WSTOPPED|__WALL, %p) = %s\n", + s, rusage, errstr); tprintf("%s\n", "+++ exited with 0 +++"); return 0; } + +#else + +SKIP_MAIN_UNDEFINED("__NR_wait4") + +#endif /* __NR_wait4 */ diff --git a/tests/waitid.c b/tests/waitid.c index f4e4a0a8..8716fa08 100644 --- a/tests/waitid.c +++ b/tests/waitid.c @@ -2,7 +2,7 @@ * Check decoding of waitid syscall. * * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -15,11 +15,11 @@ #include #include #include -#include -#include +#include "kernel_rusage.h" +#include "scno.h" static const char * -sprint_rusage(const struct rusage *const ru) +sprint_rusage(const kernel_rusage_t *const ru) { static char buf[1024]; snprintf(buf, sizeof(buf), @@ -103,8 +103,8 @@ sprint_siginfo(const siginfo_t *const si, const char *const status_text) snprintf(buf, sizeof(buf), "{si_signo=SIGCHLD" ", si_code=%s" - ", si_pid=%u" - ", si_uid=%u" + ", si_pid=%d" + ", si_uid=%d" ", si_status=%s" ", si_utime=%llu" ", si_stime=%llu}", @@ -128,7 +128,7 @@ do_waitid(const unsigned int idtype, const unsigned int id, const siginfo_t *const infop, const unsigned int options, - const struct rusage *const rusage) + const kernel_rusage_t *const rusage) { sigset_t mask = {}; sigaddset(&mask, SIGCHLD); @@ -169,7 +169,7 @@ main(void) TAIL_ALLOC_OBJECT_CONST_PTR(siginfo_t, sinfo); memset(sinfo, 0, sizeof(*sinfo)); - TAIL_ALLOC_OBJECT_CONST_PTR(struct rusage, rusage); + TAIL_ALLOC_OBJECT_CONST_PTR(kernel_rusage_t, rusage); if (do_waitid(P_PID, pid, sinfo, WNOHANG|WEXITED|WSTOPPED, rusage)) perror_msg_and_fail("waitid #2"); tprintf("waitid(P_PID, %d, {}, WNOHANG|WEXITED|WSTOPPED, %s) = 0\n", diff --git a/tests/waitpid.c b/tests/waitpid.c index 7069bec8..14f79402 100644 --- a/tests/waitpid.c +++ b/tests/waitpid.c @@ -2,13 +2,14 @@ * Check decoding of waitpid syscall. * * Copyright (c) 2016-2018 Dmitry V. Levin + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" #ifdef __NR_waitpid diff --git a/tests/xet_robust_list--pidns-translation.c b/tests/xet_robust_list--pidns-translation.c new file mode 100644 index 00000000..e0477267 --- /dev/null +++ b/tests/xet_robust_list--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "xet_robust_list.c" diff --git a/tests/xet_robust_list--pidns-translation.gen.test b/tests/xet_robust_list--pidns-translation.gen.test new file mode 100755 index 00000000..e660e10e --- /dev/null +++ b/tests/xet_robust_list--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (xet_robust_list--pidns-translation test_pidns -a24 -e trace=get_robust_list,set_robust_list); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a24 -e trace=get_robust_list,set_robust_list diff --git a/tests/xet_robust_list.c b/tests/xet_robust_list.c index cf4f2234..04376bfb 100644 --- a/tests/xet_robust_list.c +++ b/tests/xet_robust_list.c @@ -1,13 +1,14 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #if defined __NR_get_robust_list && defined __NR_set_robust_list @@ -30,27 +31,36 @@ sprintaddr(void *addr) int main(void) { + PIDNS_TEST_INIT; + const pid_t pid = getpid(); + const char *pid_str = pidns_pid2str(PT_TGID); const long long_pid = (unsigned long) (0xdeadbeef00000000LL | pid); TAIL_ALLOC_OBJECT_CONST_PTR(void *, p_head); TAIL_ALLOC_OBJECT_CONST_PTR(size_t, p_len); if (syscall(__NR_get_robust_list, long_pid, p_head, p_len)) perror_msg_and_skip("get_robust_list"); - printf("get_robust_list(%d, [%s], [%lu]) = 0\n", - (int) pid, sprintaddr(*p_head), (unsigned long) *p_len); + pidns_print_leader(); + printf("get_robust_list(%d%s, [%s], [%lu]) = 0\n", + pid, pid_str, sprintaddr(*p_head), + (unsigned long) *p_len); void *head = tail_alloc(*p_len); if (syscall(__NR_set_robust_list, head, *p_len)) perror_msg_and_skip("set_robust_list"); + pidns_print_leader(); printf("set_robust_list(%p, %lu) = 0\n", head, (unsigned long) *p_len); if (syscall(__NR_get_robust_list, long_pid, p_head, p_len)) perror_msg_and_skip("get_robust_list"); - printf("get_robust_list(%d, [%s], [%lu]) = 0\n", - (int) pid, sprintaddr(*p_head), (unsigned long) *p_len); + pidns_print_leader(); + printf("get_robust_list(%d%s, [%s], [%lu]) = 0\n", + pid, pid_str, sprintaddr(*p_head), + (unsigned long) *p_len); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests/xet_thread_area_x86.c b/tests/xet_thread_area_x86.c index a1efd319..bdc07883 100644 --- a/tests/xet_thread_area_x86.c +++ b/tests/xet_thread_area_x86.c @@ -2,7 +2,7 @@ * Check decoding of set_thread_area and get_thread_area syscalls on x86 * architecture. * - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -10,7 +10,7 @@ #include "tests.h" -#include +#include "scno.h" #if defined __NR_get_thread_area && defined __NR_set_thread_area \ && defined HAVE_STRUCT_USER_DESC diff --git a/tests/xetitimer.c b/tests/xetitimer.c index 8d758974..f3455e88 100644 --- a/tests/xetitimer.c +++ b/tests/xetitimer.c @@ -2,6 +2,7 @@ * Check decoding of setitimer and getitimer syscalls. * * Copyright (c) 2015-2018 Dmitry V. Levin + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -12,12 +13,18 @@ #include #include #include -#include +#include "scno.h" +#include "kernel_timeval.h" + +typedef struct { + kernel_old_timeval_t it_interval; + kernel_old_timeval_t it_value; +} kernel_old_itimerval_t; int main(void) { - static const struct itimerval new = { + static const kernel_old_itimerval_t new = { .it_interval = { 0xc0de1, 0xc0de2 }, .it_value = { 0xc0de3, 0xc0de4 } }; @@ -26,12 +33,12 @@ main(void) static const kernel_ulong_t bogus_timer = (kernel_ulong_t) 0xfacefeeddeadbeefULL; - TAIL_ALLOC_OBJECT_CONST_PTR(struct itimerval, p_old); - struct itimerval *const p_new = tail_memdup(&new, sizeof(new)); + TAIL_ALLOC_OBJECT_CONST_PTR(kernel_old_itimerval_t, p_old); + kernel_old_itimerval_t *const p_new = tail_memdup(&new, sizeof(new)); void *const efault = tail_alloc(sizeof(new) - 8); long rc; - if (setitimer(ITIMER_REAL, p_new, NULL)) + if (syscall(__NR_setitimer, ITIMER_REAL, p_new, NULL)) perror_msg_and_skip("setitimer"); printf("setitimer(ITIMER_REAL" ", {it_interval={tv_sec=%lld, tv_usec=%llu}" @@ -43,7 +50,7 @@ main(void) zero_extend_signed_to_ull(new.it_value.tv_usec)); fill_memory(p_old, sizeof(*p_old)); - if (getitimer(ITIMER_REAL, p_old)) + if (syscall(__NR_getitimer, ITIMER_REAL, p_old)) perror_msg_and_skip("getitimer"); printf("getitimer(ITIMER_REAL" ", {it_interval={tv_sec=%lld, tv_usec=%llu}" @@ -54,7 +61,7 @@ main(void) zero_extend_signed_to_ull(p_old->it_value.tv_usec)); fill_memory(p_old, sizeof(*p_old)); - setitimer(ITIMER_REAL, p_new, p_old); + syscall(__NR_setitimer, ITIMER_REAL, p_new, p_old); printf("setitimer(ITIMER_REAL" ", {it_interval={tv_sec=%lld, tv_usec=%llu}" ", it_value={tv_sec=%lld, tv_usec=%llu}}" @@ -69,10 +76,10 @@ main(void) (long long) p_old->it_value.tv_sec, zero_extend_signed_to_ull(p_old->it_value.tv_usec)); - rc = getitimer(ITIMER_REAL, efault); + rc = syscall(__NR_getitimer, ITIMER_REAL, efault); printf("getitimer(ITIMER_REAL, %p) = %s\n", efault, sprintrc(rc)); - rc = setitimer(ITIMER_REAL, p_new, efault); + rc = syscall(__NR_setitimer, ITIMER_REAL, p_new, efault); printf("setitimer(ITIMER_REAL" ", {it_interval={tv_sec=%lld, tv_usec=%llu}" ", it_value={tv_sec=%lld, tv_usec=%llu}}, %p) = %s\n", @@ -82,7 +89,7 @@ main(void) zero_extend_signed_to_ull(new.it_value.tv_usec), efault, sprintrc(rc)); - rc = setitimer(ITIMER_REAL, efault, p_old); + rc = syscall(__NR_setitimer, ITIMER_REAL, efault, p_old); printf("setitimer(ITIMER_REAL, %p, %p) = %s\n", efault, p_old, sprintrc(rc)); @@ -146,10 +153,12 @@ main(void) p_new->it_interval.tv_sec = 0xdeadbeefU; p_new->it_interval.tv_usec = 0xfacefeedU; - p_new->it_value.tv_sec = (time_t) 0xcafef00ddeadbeefLL; - p_new->it_value.tv_usec = (suseconds_t) 0xbadc0dedfacefeedLL; + p_new->it_value.tv_sec = + (typeof(p_new->it_value.tv_sec)) 0xcafef00ddeadbeefLL; + p_new->it_value.tv_usec = + (typeof(p_new->it_value.tv_usec)) 0xbadc0dedfacefeedLL; - rc = setitimer(ITIMER_REAL, p_new, p_old); + rc = syscall(__NR_setitimer, ITIMER_REAL, p_new, p_old); printf("setitimer(ITIMER_REAL" ", {it_interval={tv_sec=%lld, tv_usec=%llu}" ", it_value={tv_sec=%lld, tv_usec=%llu}}, %p) = %s\n", diff --git a/tests/xetpgid--pidns-translation.c b/tests/xetpgid--pidns-translation.c new file mode 100644 index 00000000..b6469628 --- /dev/null +++ b/tests/xetpgid--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "xetpgid.c" diff --git a/tests/xetpgid--pidns-translation.gen.test b/tests/xetpgid--pidns-translation.gen.test new file mode 100755 index 00000000..93c1ec3b --- /dev/null +++ b/tests/xetpgid--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (xetpgid--pidns-translation test_pidns -a11 -e trace=getpgid,setpgid); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a11 -e trace=getpgid,setpgid diff --git a/tests/xetpgid.c b/tests/xetpgid.c index 46dd332d..94f9bc5e 100644 --- a/tests/xetpgid.c +++ b/tests/xetpgid.c @@ -2,14 +2,15 @@ * This file is part of xetpgid strace test. * * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #if defined __NR_getpgid && defined __NR_setpgid @@ -19,13 +20,21 @@ int main(void) { - const int pid = getpid(); - long rc = syscall(__NR_getpgid, F8ILL_KULONG_MASK | pid); - printf("getpgid(%d) = %ld\n", pid, rc); - - rc = syscall(__NR_setpgid, F8ILL_KULONG_MASK, F8ILL_KULONG_MASK | pid); - printf("setpgid(0, %d) = %ld\n", pid, rc); + PIDNS_TEST_INIT; + const int pid = getpid(); + long pgid = syscall(__NR_getpgid, F8ILL_KULONG_MASK | pid); + pidns_print_leader(); + printf("getpgid(%d%s) = %ld%s\n", pid, pidns_pid2str(PT_TGID), + pgid, pidns_pid2str(PT_PGID)); + + long rc = syscall(__NR_setpgid, F8ILL_KULONG_MASK, + F8ILL_KULONG_MASK | pgid); + pidns_print_leader(); + printf("setpgid(0, %ld%s) = %s\n", pgid, pidns_pid2str(PT_PGID), + sprintrc(rc)); + + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests/xetpriority--pidns-translation.c b/tests/xetpriority--pidns-translation.c new file mode 100644 index 00000000..c93669cb --- /dev/null +++ b/tests/xetpriority--pidns-translation.c @@ -0,0 +1,2 @@ +#define PIDNS_TRANSLATION +#include "xetpriority.c" diff --git a/tests/xetpriority--pidns-translation.gen.test b/tests/xetpriority--pidns-translation.gen.test new file mode 100755 index 00000000..d221c7cb --- /dev/null +++ b/tests/xetpriority--pidns-translation.gen.test @@ -0,0 +1,4 @@ +#!/bin/sh -efu +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (xetpriority--pidns-translation test_pidns -a27 -e trace=getpriority,setpriority); do not edit. +. "${srcdir=.}/init.sh" +test_pidns -a27 -e trace=getpriority,setpriority diff --git a/tests/xetpriority.c b/tests/xetpriority.c index 5cd97ea9..0832ea94 100644 --- a/tests/xetpriority.c +++ b/tests/xetpriority.c @@ -1,12 +1,13 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include +#include "scno.h" +#include "pidns.h" #if defined __NR_getpriority && defined __NR_setpriority @@ -17,15 +18,30 @@ int main(void) { + PIDNS_TEST_INIT; + const int pid = getpid(); + const int pgid = getpgid(0); + long rc = syscall(__NR_getpriority, PRIO_PROCESS, F8ILL_KULONG_MASK | pid); - printf("getpriority(PRIO_PROCESS, %d) = %ld\n", pid, rc); + pidns_print_leader(); + printf("getpriority(PRIO_PROCESS, %d%s) = %ld\n", + pid, pidns_pid2str(PT_TGID), rc); rc = syscall(__NR_setpriority, PRIO_PROCESS, F8ILL_KULONG_MASK | pid, F8ILL_KULONG_MASK); - printf("setpriority(PRIO_PROCESS, %d, 0) = %s\n", pid, sprintrc(rc)); + pidns_print_leader(); + printf("setpriority(PRIO_PROCESS, %d%s, 0) = %s\n", + pid, pidns_pid2str(PT_TGID), sprintrc(rc)); + + rc = syscall(__NR_getpriority, PRIO_PGRP, + F8ILL_KULONG_MASK | pgid); + pidns_print_leader(); + printf("getpriority(PRIO_PGRP, %d%s) = %ld\n", + pgid, pidns_pid2str(PT_PGID), rc); + pidns_print_leader(); puts("+++ exited with 0 +++"); return 0; } diff --git a/tests/xetpriority.gen.test b/tests/xetpriority.gen.test index 4b955247..485c1071 100755 --- a/tests/xetpriority.gen.test +++ b/tests/xetpriority.gen.test @@ -1,4 +1,4 @@ #!/bin/sh -efu -# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (xetpriority -a29 -e trace=getpriority,setpriority); do not edit. +# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (xetpriority -a27 -e trace=getpriority,setpriority); do not edit. . "${srcdir=.}/init.sh" -run_strace_match_diff -a29 -e trace=getpriority,setpriority +run_strace_match_diff -a27 -e trace=getpriority,setpriority diff --git a/tests/xettimeofday.c b/tests/xettimeofday.c index 9c811262..eca3959b 100644 --- a/tests/xettimeofday.c +++ b/tests/xettimeofday.c @@ -1,18 +1,22 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tests.h" -#include -#include -#include -#include -#include -#include +#include "scno.h" + +#ifdef __NR_gettimeofday + +# include +# include +# include +# include +# include +# include "scno.h" int main(void) @@ -64,3 +68,9 @@ main(void) puts("+++ exited with 0 +++"); return 0; } + +#else + +SKIP_MAIN_UNDEFINED("__NR_gettimeofday") + +#endif /* __NR_gettimeofday */ diff --git a/tests/xgetdents.c b/tests/xgetdents.c new file mode 100644 index 00000000..c550625e --- /dev/null +++ b/tests/xgetdents.c @@ -0,0 +1,141 @@ +/* + * Check decoding of getdents and getdents64 syscalls. + * + * Copyright (c) 2015-2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include +#include +#include +#include +#include +#include "kernel_dirent.h" +#include "print_fields.h" + +#if VERBOSE +static const char * +str_d_type(const unsigned char d_type) +{ + switch (d_type) { + case DT_DIR: + return "DT_DIR"; + case DT_REG: + return "DT_REG"; + default: + return "DT_UNKNOWN"; + } +} + +static void +print_dirent(const kernel_dirent_type *d); +#endif + +static const char *errstr; + +static long +k_getdents(const unsigned int fd, + const void *dirp, + const unsigned int count) +{ + const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL; + const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL; + const kernel_ulong_t arg1 = fill | fd; + const kernel_ulong_t arg2 = (uintptr_t) dirp; + const kernel_ulong_t arg3 = fill | count; + const long rc = syscall(NR_getdents, arg1, arg2, arg3, bad, bad, bad); + errstr = sprintrc(rc); + return rc; +} + +static void +ls(int fd, char *buf, unsigned int size) +{ + long rc; + while ((rc = k_getdents(fd, buf, size))) { + if (rc < 0) + perror_msg_and_skip(STR_getdents); + printf("%s(%d, ", STR_getdents, fd); +#if VERBOSE + printf("["); +#else + unsigned long entries = 0; +#endif + kernel_dirent_type *d; + for (long i = 0; i < rc; i += d->d_reclen) { + d = (kernel_dirent_type *) &buf[i]; +#if VERBOSE + if (i) + printf(", "); + print_dirent(d); +#else + ++entries; +#endif + } +#if VERBOSE + printf("]"); +#else + printf("%p /* %lu entries */", buf, entries); +#endif + printf(", %u) = %ld\n", size, rc); + } +#if VERBOSE + printf("%s(%d, [], %u) = 0\n", STR_getdents, fd, size); +#else + printf("%s(%d, %p /* 0 entries */, %u) = 0\n", + STR_getdents, fd, buf, size); +#endif +} + +int +main(void) +{ + static const char dot[] = "."; + static const char dot_dot[] = ".."; + static const char dname[] = STR_getdents +#if VERBOSE + "-v" +#endif + ".test.tmp.dir"; + static const char fname[] = + "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" + "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" + "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" + "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" + "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" + "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" + "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\n" + "A\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nA\nZ"; + + if (mkdir(dname, 0700)) + perror_msg_and_fail("mkdir: %s", dname); + if (chdir(dname)) + perror_msg_and_fail("chdir: %s", dname); + int fd = creat(fname, 0600); + if (fd < 0) + perror_msg_and_fail("creat: %s", fname); + if (close(fd)) + perror_msg_and_fail("close: %s", fname); + fd = open(dot, O_RDONLY | O_DIRECTORY); + if (fd < 0) + perror_msg_and_fail("open: %s", dot); + + unsigned int count = 0xdeadbeefU; + k_getdents(-1U, NULL, count); + printf("%s(-1, NULL, %u) = %s\n", STR_getdents, count, errstr); + + static char buf[8192]; + ls(fd, buf, sizeof(buf)); + + if (unlink(fname)) + perror_msg_and_fail("unlink: %s", fname); + if (chdir(dot_dot)) + perror_msg_and_fail("chdir: %s", dot_dot); + if (rmdir(dname)) + perror_msg_and_fail("rmdir: %s", dname); + + puts("+++ exited with 0 +++"); + return 0; +} diff --git a/tests/xgetrlimit.c b/tests/xgetrlimit.c index a1c89e9b..6a9c0538 100644 --- a/tests/xgetrlimit.c +++ b/tests/xgetrlimit.c @@ -77,9 +77,13 @@ int main(void) { kernel_ulong_t *const rlimit = tail_alloc(sizeof(*rlimit) * 2); - const struct xlat *xlat; + const struct xlat_data *xlat; + size_t i; + + for (xlat = resources->data, i = 0; i < resources->size; ++xlat, ++i) { + if (!xlat->str) + continue; - for (xlat = resources; xlat->str; ++xlat) { unsigned long res = 0xfacefeed00000000ULL | xlat->val; long rc = syscall(NR_GETRLIMIT, res, 0); if (rc && ENOSYS == errno) diff --git a/tests/xmalloc_for_tests.c b/tests/xmalloc_for_tests.c new file mode 100644 index 00000000..5c496adb --- /dev/null +++ b/tests/xmalloc_for_tests.c @@ -0,0 +1,2 @@ +#define error_msg_and_die error_msg_and_fail +#include "xmalloc.c" diff --git a/tests/xstatfsx.c b/tests/xstatfsx.c index 1b91e844..8a86fdc3 100644 --- a/tests/xstatfsx.c +++ b/tests/xstatfsx.c @@ -34,10 +34,9 @@ static void print_statfs_type(const char *const prefix, const unsigned int magic) { fputs(prefix, stdout); - unsigned int i; - for (i = 0; i < ARRAY_SIZE(fsmagic); ++i) - if (magic == fsmagic[i].val) { - fputs(fsmagic[i].str, stdout); + for (unsigned int i = 0; i < fsmagic->size; ++i) + if (magic == fsmagic->data[i].val) { + fputs(fsmagic->data[i].str, stdout); return; } printf("%#x", magic); diff --git a/tests/xstatx.c b/tests/xstatx.c index 0d223bdc..aa9a0ae0 100644 --- a/tests/xstatx.c +++ b/tests/xstatx.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2015-2016 Dmitry V. Levin - * Copyright (c) 2015-2018 The strace developers. + * Copyright (c) 2015-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later @@ -46,6 +46,7 @@ typedef off_t libc_off_t; # define stat64 libc_stat64 # define statx libc_statx # define statx_timestamp libc_statx_timestamp +struct statx; # include # include # undef statx_timestamp @@ -460,19 +461,19 @@ main(void) SET_FLAGS_INVOKE(0xffffff, "AT_STATX_FORCE_SYNC|AT_STATX_DONT_SYNC|AT_SYMLINK_NOFOLLOW|" "AT_REMOVEDIR|AT_SYMLINK_FOLLOW|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|" - "0xff80ff"); + "AT_RECURSIVE|0xff00ff"); /* We're done playing with flags. */ TEST_SYSCALL_STATX_FLAGS = old_flags; TEST_SYSCALL_STATX_FLAGS_STR = old_flags_str; SET_MASK_INVOKE(0, "0"); - SET_MASK_INVOKE(0xfffff000U, "0xfffff000 /* STATX_??? */"); + SET_MASK_INVOKE(0xffffe000U, "0xffffe000 /* STATX_??? */"); SET_MASK_INVOKE(0xfffffffbU, "STATX_TYPE|STATX_MODE|STATX_UID|STATX_GID|STATX_ATIME|" "STATX_MTIME|STATX_CTIME|STATX_INO|STATX_SIZE|STATX_BLOCKS|" - "STATX_BTIME|0xfffff000"); + "STATX_BTIME|STATX_MNT_ID|0xffffe000"); SET_MASK_INVOKE(STATX_UID, "STATX_UID"); diff --git a/tests/zeroargc.c b/tests/zeroargc.c index 672959c4..3034e527 100644 --- a/tests/zeroargc.c +++ b/tests/zeroargc.c @@ -1,7 +1,8 @@ /* - * Execute an executable with zero argc and specified anvironment. + * Execute an executable with zero argc and specified environment. * * Copyright (c) 2017-2018 Dmitry V. Levin + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: GPL-2.0-or-later diff --git a/time.c b/time.c index 5b163c84..fe05b468 100644 --- a/time.c +++ b/time.c @@ -2,7 +2,7 @@ * Copyright (c) 1991, 1992 Paul Kranenburg * Copyright (c) 1993 Branko Lankester * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey - * Copyright (c) 1996-2019 The strace developers. + * Copyright (c) 1996-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -13,6 +13,7 @@ #include #include +#if HAVE_ARCH_TIME32_SYSCALLS || HAVE_ARCH_OLD_TIME64_SYSCALLS static void print_timezone(struct tcb *const tcp, const kernel_ulong_t addr) { @@ -35,6 +36,16 @@ SYS_FUNC(gettimeofday) return 0; } +SYS_FUNC(settimeofday) +{ + print_timeval(tcp, tcp->u_arg[0]); + tprints(", "); + print_timezone(tcp, tcp->u_arg[1]); + + return RVAL_DECODED; +} +#endif + #ifdef ALPHA SYS_FUNC(osf_gettimeofday) { @@ -47,15 +58,6 @@ SYS_FUNC(osf_gettimeofday) } #endif -SYS_FUNC(settimeofday) -{ - print_timeval(tcp, tcp->u_arg[0]); - tprints(", "); - print_timezone(tcp, tcp->u_arg[1]); - - return RVAL_DECODED; -} - #ifdef ALPHA SYS_FUNC(osf_settimeofday) { @@ -113,8 +115,7 @@ SYS_FUNC(nanosleep_time64) SYS_FUNC(getitimer) { if (entering(tcp)) { - printxval_index(itimer_which, (unsigned int) tcp->u_arg[0], - "ITIMER_???"); + printxval(itimer_which, tcp->u_arg[0], "ITIMER_???"); tprints(", "); } else { print_itimerval(tcp, tcp->u_arg[1]); @@ -126,8 +127,7 @@ SYS_FUNC(getitimer) SYS_FUNC(osf_getitimer) { if (entering(tcp)) { - printxval_index(itimer_which, (unsigned int) tcp->u_arg[0], - "ITIMER_???"); + printxval(itimer_which, tcp->u_arg[0], "ITIMER_???"); tprints(", "); } else { print_itimerval32(tcp, tcp->u_arg[1]); @@ -139,8 +139,7 @@ SYS_FUNC(osf_getitimer) SYS_FUNC(setitimer) { if (entering(tcp)) { - printxval_index(itimer_which, (unsigned int) tcp->u_arg[0], - "ITIMER_???"); + printxval(itimer_which, tcp->u_arg[0], "ITIMER_???"); tprints(", "); print_itimerval(tcp, tcp->u_arg[1]); tprints(", "); @@ -154,8 +153,7 @@ SYS_FUNC(setitimer) SYS_FUNC(osf_setitimer) { if (entering(tcp)) { - printxval_index(itimer_which, (unsigned int) tcp->u_arg[0], - "ITIMER_???"); + printxval(itimer_which, tcp->u_arg[0], "ITIMER_???"); tprints(", "); print_itimerval32(tcp, tcp->u_arg[1]); tprints(", "); @@ -174,8 +172,7 @@ do_adjtimex(struct tcb *const tcp, const print_obj_by_addr_fn print_tx, { if (print_tx(tcp, addr)) return 0; - tcp->auxstr = xlat_idx(adjtimex_state, ARRAY_SIZE(adjtimex_state) - 1, - (kernel_ulong_t) tcp->u_rval); + tcp->auxstr = xlookup(adjtimex_state, (kernel_ulong_t) tcp->u_rval); return RVAL_STR; } @@ -228,9 +225,8 @@ printclockname(int clockid) "MAKE_THREAD_CPUCLOCK" : "MAKE_PROCESS_CPUCLOCK", CPUCLOCK_PID(clockid)); - printxval_index(cpuclocknames, - (unsigned int) clockid & CLOCKFD_MASK, - "CPUCLOCK_???"); + printxval(cpuclocknames, clockid & CLOCKFD_MASK, + "CPUCLOCK_???"); tprints(")"); } @@ -238,7 +234,7 @@ printclockname(int clockid) tprints(" */"); } else #endif - printxval_index(clocknames, clockid, "CLOCK_???"); + printxval(clocknames, clockid, "CLOCK_???"); } static int diff --git a/trace_event.h b/trace_event.h index 53a711b8..9021fc55 100644 --- a/trace_event.h +++ b/trace_event.h @@ -66,6 +66,11 @@ enum trace_event { * Restart the tracee with signal 0. */ TE_STOP_BEFORE_EXIT, + + /* + * SECCOMP_RET_TRACE rule is triggered. + */ + TE_SECCOMP, }; #endif /* !STRACE_TRACE_EVENT_H */ diff --git a/trie.c b/trie.c new file mode 100644 index 00000000..c26368ed --- /dev/null +++ b/trie.c @@ -0,0 +1,290 @@ +/* + * Simple trie implementation for key-value mapping storage + * + * Copyright (c) 2020 Ákos Uzonyi + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include + +#include "trie.h" +#include "xmalloc.h" + +static const uint8_t ptr_sz_lg = (sizeof(void *) == 8 ? 6 : 5); + +/** + * Returns lg2 of node size in bits for the specific level of the trie. + */ +static uint8_t +trie_get_node_size(struct trie *t, uint8_t depth) +{ + /* Last level contains data and we allow it having a different size */ + if (depth == t->max_depth) + return t->data_block_key_bits + t->item_size_lg; + /* Last level of the tree can be smaller */ + if (depth == t->max_depth - 1) + return (t->key_size - t->data_block_key_bits - 1) % + t->node_key_bits + 1 + ptr_sz_lg; + + return t->node_key_bits + ptr_sz_lg; +} + +/** + * Provides starting offset of bits in key corresponding to the node index + * at the specific level. + */ +static uint8_t +trie_get_node_bit_offs(struct trie *t, uint8_t depth) +{ + uint8_t offs; + + if (depth == t->max_depth) + return 0; + + offs = t->data_block_key_bits; + + if (depth == t->max_depth - 1) + return offs; + + /* data_block_size + remainder */ + offs += trie_get_node_size(t, t->max_depth - 1) - ptr_sz_lg; + offs += (t->max_depth - depth - 2) * t->node_key_bits; + + return offs; +} + +struct trie * +trie_create(uint8_t key_size, uint8_t item_size_lg, uint8_t node_key_bits, + uint8_t data_block_key_bits, uint64_t empty_value) +{ + if (item_size_lg > 6) + return NULL; + if (key_size > 64) + return NULL; + if (node_key_bits < 1) + return NULL; + if (data_block_key_bits < 1 || data_block_key_bits > key_size) + return NULL; + + struct trie *t = malloc(sizeof(*t)); + if (!t) + return NULL; + + t->empty_value = empty_value; + t->data = NULL; + t->item_size_lg = item_size_lg; + t->node_key_bits = node_key_bits; + t->data_block_key_bits = data_block_key_bits; + t->key_size = key_size; + t->max_depth = (key_size - data_block_key_bits + node_key_bits - 1) + / t->node_key_bits; + + if (item_size_lg != 6) + t->empty_value &= (((uint64_t) 1 << (1 << t->item_size_lg)) - 1); + + return t; +} + +static void * +trie_create_data_block(struct trie *t) +{ + uint64_t fill_value = t->empty_value; + for (int i = 1; i < 1 << (6 - t->item_size_lg); i++) { + fill_value <<= (1 << t->item_size_lg); + fill_value |= t->empty_value; + } + + uint8_t sz = t->data_block_key_bits + t->item_size_lg; + if (sz < 6) + sz = 6; + + size_t count = 1 << (sz - 6); + uint64_t *data_block = xcalloc(count, 8); + + for (size_t i = 0; i < count; i++) + data_block[i] = fill_value; + + return data_block; +} + +static uint64_t * +trie_get_node(struct trie *t, uint64_t key, bool auto_create) +{ + void **cur_node = &(t->data); + + if (t->key_size < 64 && key > (uint64_t) 1 << t->key_size) + return NULL; + + for (uint8_t cur_depth = 0; cur_depth <= t->max_depth; cur_depth++) { + uint8_t offs = trie_get_node_bit_offs(t, cur_depth); + uint8_t sz = trie_get_node_size(t, cur_depth); + + if (!*cur_node) { + if (!auto_create) + return NULL; + + if (cur_depth == t->max_depth) + *cur_node = trie_create_data_block(t); + else + *cur_node = xcalloc(1 << sz, 1); + } + + if (cur_depth == t->max_depth) + break; + + size_t pos = (key >> offs) & ((1 << (sz - ptr_sz_lg)) - 1); + cur_node = (((void **) (*cur_node)) + pos); + } + + return (uint64_t *) (*cur_node); +} + +static void +trie_data_block_calc_pos(struct trie *t, uint64_t key, + uint64_t *pos, uint64_t *mask, uint64_t *offs) +{ + uint64_t key_mask; + + key_mask = (1 << t->data_block_key_bits) - 1; + *pos = (key & key_mask) >> (6 - t->item_size_lg); + + if (t->item_size_lg == 6) { + *offs = 0; + *mask = -1; + return; + } + + key_mask = (1 << (6 - t->item_size_lg)) - 1; + *offs = (key & key_mask) * (1 << t->item_size_lg); + + *mask = (((uint64_t) 1 << (1 << t->item_size_lg)) - 1) << *offs; +} + +bool +trie_set(struct trie *t, uint64_t key, uint64_t val) +{ + uint64_t *data = trie_get_node(t, key, true); + if (!data) + return false; + + uint64_t pos, mask, offs; + trie_data_block_calc_pos(t, key, &pos, &mask, &offs); + + data[pos] &= ~mask; + data[pos] |= (val << offs) & mask; + + return true; +} + +static uint64_t +trie_data_block_get(struct trie *t, uint64_t *data, uint64_t key) +{ + if (!data) + return t->empty_value; + + uint64_t pos, mask, offs; + trie_data_block_calc_pos(t, key, &pos, &mask, &offs); + + return (data[pos] & mask) >> offs; +} + +uint64_t +trie_get(struct trie *b, uint64_t key) +{ + return trie_data_block_get(b, trie_get_node(b, key, false), key); +} + +static uint64_t +trie_iterate_keys_node(struct trie *t, + trie_iterate_fn fn, void *fn_data, + void *node, uint64_t start, uint64_t end, + uint8_t depth) +{ + if (start > end || !node) + return 0; + + if (t->key_size < 64) { + uint64_t key_max = ((uint64_t) 1 << t->key_size) - 1; + if (end > key_max) + end = key_max; + } + + if (depth == t->max_depth) { + for (uint64_t i = start; i <= end; i++) + fn(fn_data, i, trie_data_block_get(t, + (uint64_t *) node, i)); + + return end - start + 1; + } + + uint8_t parent_node_bit_off = depth == 0 ? + t->key_size : + trie_get_node_bit_offs(t, depth - 1); + + uint64_t first_key_in_node = start & + (uint64_t) -1 << parent_node_bit_off; + + uint8_t node_bit_off = trie_get_node_bit_offs(t, depth); + uint8_t node_key_bits = parent_node_bit_off - node_bit_off; + uint64_t mask = ((uint64_t) 1 << (node_key_bits)) - 1; + uint64_t start_index = (start >> node_bit_off) & mask; + uint64_t end_index = (end >> node_bit_off) & mask; + uint64_t child_key_count = (uint64_t) 1 << node_bit_off; + + uint64_t count = 0; + + for (uint64_t i = start_index; i <= end_index; i++) { + uint64_t child_start = first_key_in_node + i * child_key_count; + uint64_t child_end = first_key_in_node + + (i + 1) * child_key_count - 1; + + if (child_start < start) + child_start = start; + if (child_end > end) + child_end = end; + + count += trie_iterate_keys_node(t, fn, fn_data, + ((void **) node)[i], child_start, child_end, + depth + 1); + } + + return count; +} + +uint64_t trie_iterate_keys(struct trie *t, uint64_t start, uint64_t end, + trie_iterate_fn fn, void *fn_data) +{ + return trie_iterate_keys_node(t, fn, fn_data, t->data, + start, end, 0); +} + +static void +trie_free_node(struct trie *t, void *node, uint8_t depth) +{ + if (!node) + return; + + if (depth >= t->max_depth) + goto free_node; + + size_t sz = 1 << (trie_get_node_size(t, depth) - ptr_sz_lg); + for (size_t i = 0; i < sz; i++) + trie_free_node(t, ((void **) node)[i], depth + 1); + +free_node: + free(node); +} + +void +trie_free(struct trie *t) +{ + trie_free_node(t, t->data, 0); + free(t); +} diff --git a/trie.h b/trie.h new file mode 100644 index 00000000..da8f45e7 --- /dev/null +++ b/trie.h @@ -0,0 +1,92 @@ +/* + * Simple trie interface + * + * Copyright (c) 2020 Ákos Uzonyi + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#ifndef STRACE_TRIE_H +# define STRACE_TRIE_H + +# include +# include + +/** + * Trie control structure. + * Trie implemented here has the following properties: + * * It allows storing values of the same size, the size can vary from 1 bit to + * 64 bit values (only power of 2 sizes are allowed). + * * The key can be up to 64 bits in size. + * * It has separate configuration for node size and data block size. + * + * How bits of key are used for different node levels: + * + * highest bits lowest bits + * | node_key_bits | node_key_bits | ... | | data_block_key_bits | + * \_________________________________________________________________________/ + * key_size + * + * So, the remainder is used on the lowest non-data node level. + * + * As of now, it doesn't implement any mechanisms for resizing/changing key + * size. De-fragmentation is also unsupported currently. + */ +struct trie { + /** Return value of trie_get if key is not found */ + uint64_t empty_value; + + /** Pointer to root node */ + void *data; + + /** Key size in bits (0..64). */ + uint8_t key_size; + + /** + * Size of the stored values in log2 bits (0..6). + * (6: 64 bit values, 5: 32 bit values, ...) + */ + uint8_t item_size_lg; + + /** + * Number of bits in the key that make a symbol for a node. + * (equals to log2 of the child count of the node) + */ + uint8_t node_key_bits; + + /** + * Number of bits in the key that make a symbol for the data block (leaf). + * (equals to log2 of the value count stored in a data block) + */ + uint8_t data_block_key_bits; + + /** The depth of the data block. Calculated from the values above */ + uint8_t max_depth; +}; + +struct trie* trie_create(uint8_t key_size, uint8_t item_size_lg, + uint8_t node_key_bits, uint8_t data_block_key_bits, + uint64_t empty_value); + +bool trie_set(struct trie *t, uint64_t key, uint64_t val); +uint64_t trie_get(struct trie *t, uint64_t key); + +typedef void (*trie_iterate_fn)(void *data, uint64_t key, uint64_t val); + +/** + * Calls trie_iterate_fn for each key-value pair where + * key is inside the [start, end] interval (inclusive). + * + * @param t The trie. + * @param start The start of the key interval (inclusive). + * @param end The end of the key interval (inclusive). + * @param fn The function to be called. + * @param fn_data The value to be passed to fn. + */ +uint64_t trie_iterate_keys(struct trie *t, uint64_t start, uint64_t end, + trie_iterate_fn fn, void *fn_data); + +void trie_free(struct trie *t); + +#endif /* !STRACE_TRIE_H */ diff --git a/types/Makemodule.am b/types/Makemodule.am new file mode 100644 index 00000000..bb176641 --- /dev/null +++ b/types/Makemodule.am @@ -0,0 +1,2 @@ +TYPES_HEADER_FILES = types/btrfs.h types/cryptouser.h types/evdev.h types/io_uring.h types/loop.h types/openat2.h types/rtnl_link.h types/rtnl_mdb.h types/rtnl_neightbl.h types/rtnl_route.h types/tee.h types/v4l2.h +TYPES_CHECK_FILES = types/check-btrfs.c types/check-cryptouser.c types/check-evdev.c types/check-io_uring.c types/check-loop.c types/check-openat2.c types/check-rtnl_link.c types/check-rtnl_mdb.c types/check-rtnl_neightbl.c types/check-rtnl_route.c types/check-tee.c types/check-v4l2.c diff --git a/types/btrfs.h b/types/btrfs.h new file mode 100644 index 00000000..41d4c3ff --- /dev/null +++ b/types/btrfs.h @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#ifndef STRACE_TYPES_BTRFS_H +# define STRACE_TYPES_BTRFS_H + +# ifdef HAVE_LINUX_BTRFS_H +# include +# include +# include +# endif + +typedef struct { + uint64_t logical; + uint64_t size; + uint64_t reserved[3]; + uint64_t flags; + uint64_t inodes; +} struct_btrfs_ioctl_logical_ino_args; + +#endif /* STRACE_TYPES_BTRFS_H */ diff --git a/types/check-btrfs.c b/types/check-btrfs.c new file mode 100644 index 00000000..1e40dcf3 --- /dev/null +++ b/types/check-btrfs.c @@ -0,0 +1,14 @@ +/* Generated by ./types/gen.sh from ./types/btrfs.h; do not edit. */ +#include "defs.h" +#include "static_assert.h" +#include "types/btrfs.h" + +#ifdef HAVE_STRUCT_BTRFS_IOCTL_LOGICAL_INO_ARGS +# ifdef HAVE_STRUCT_BTRFS_IOCTL_LOGICAL_INO_ARGS_INODES +static_assert(sizeof(struct btrfs_ioctl_logical_ino_args) == sizeof(struct_btrfs_ioctl_logical_ino_args), + "struct btrfs_ioctl_logical_ino_args size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct btrfs_ioctl_logical_ino_args) <= offsetof(struct_btrfs_ioctl_logical_ino_args, inodes), +"struct btrfs_ioctl_logical_ino_args size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_BTRFS_IOCTL_LOGICAL_INO_ARGS_INODES */ +#endif /* HAVE_STRUCT_BTRFS_IOCTL_LOGICAL_INO_ARGS */ diff --git a/types/check-btrfs.m4 b/types/check-btrfs.m4 new file mode 100644 index 00000000..9318a2d3 --- /dev/null +++ b/types/check-btrfs.m4 @@ -0,0 +1,15 @@ +dnl Generated by ./types/gen.sh from ./types/btrfs.h; do not edit. +AC_DEFUN([st_CHECK_TYPES_BTRFS],[ +AC_CHECK_HEADERS([linux/btrfs.h],[ + +AC_CHECK_TYPES([struct btrfs_ioctl_logical_ino_args], +[AC_CHECK_MEMBERS([struct btrfs_ioctl_logical_ino_args.inodes],,,[AC_INCLUDES_DEFAULT +#include +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include +#include ]) +],[],[AC_INCLUDES_DEFAULT +#include +#include ])]) diff --git a/types/check-cryptouser.c b/types/check-cryptouser.c new file mode 100644 index 00000000..8bdf9ac9 --- /dev/null +++ b/types/check-cryptouser.c @@ -0,0 +1,64 @@ +/* Generated by ./types/gen.sh from ./types/cryptouser.h; do not edit. */ +#include "defs.h" +#include "static_assert.h" +#include "types/cryptouser.h" + +#ifdef HAVE_STRUCT_CRYPTO_USER_ALG +# ifdef HAVE_STRUCT_CRYPTO_USER_ALG_CRU_FLAGS +static_assert(sizeof(struct crypto_user_alg) == sizeof(struct_crypto_user_alg), + "struct crypto_user_alg size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct crypto_user_alg) <= offsetof(struct_crypto_user_alg, cru_flags), +"struct crypto_user_alg size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_CRYPTO_USER_ALG_CRU_FLAGS */ +#endif /* HAVE_STRUCT_CRYPTO_USER_ALG */ + +#ifdef HAVE_STRUCT_CRYPTO_REPORT_HASH +# ifdef HAVE_STRUCT_CRYPTO_REPORT_HASH_DIGESTSIZE +static_assert(sizeof(struct crypto_report_hash) == sizeof(struct_crypto_report_hash), + "struct crypto_report_hash size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct crypto_report_hash) <= offsetof(struct_crypto_report_hash, digestsize), +"struct crypto_report_hash size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_CRYPTO_REPORT_HASH_DIGESTSIZE */ +#endif /* HAVE_STRUCT_CRYPTO_REPORT_HASH */ + +#ifdef HAVE_STRUCT_CRYPTO_REPORT_CIPHER +# ifdef HAVE_STRUCT_CRYPTO_REPORT_CIPHER_MAX_KEYSIZE +static_assert(sizeof(struct crypto_report_cipher) == sizeof(struct_crypto_report_cipher), + "struct crypto_report_cipher size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct crypto_report_cipher) <= offsetof(struct_crypto_report_cipher, max_keysize), +"struct crypto_report_cipher size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_CRYPTO_REPORT_CIPHER_MAX_KEYSIZE */ +#endif /* HAVE_STRUCT_CRYPTO_REPORT_CIPHER */ + +#ifdef HAVE_STRUCT_CRYPTO_REPORT_BLKCIPHER +# ifdef HAVE_STRUCT_CRYPTO_REPORT_BLKCIPHER_IVSIZE +static_assert(sizeof(struct crypto_report_blkcipher) == sizeof(struct_crypto_report_blkcipher), + "struct crypto_report_blkcipher size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct crypto_report_blkcipher) <= offsetof(struct_crypto_report_blkcipher, ivsize), +"struct crypto_report_blkcipher size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_CRYPTO_REPORT_BLKCIPHER_IVSIZE */ +#endif /* HAVE_STRUCT_CRYPTO_REPORT_BLKCIPHER */ + +#ifdef HAVE_STRUCT_CRYPTO_REPORT_AEAD +# ifdef HAVE_STRUCT_CRYPTO_REPORT_AEAD_IVSIZE +static_assert(sizeof(struct crypto_report_aead) == sizeof(struct_crypto_report_aead), + "struct crypto_report_aead size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct crypto_report_aead) <= offsetof(struct_crypto_report_aead, ivsize), +"struct crypto_report_aead size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_CRYPTO_REPORT_AEAD_IVSIZE */ +#endif /* HAVE_STRUCT_CRYPTO_REPORT_AEAD */ + +#ifdef HAVE_STRUCT_CRYPTO_REPORT_RNG +# ifdef HAVE_STRUCT_CRYPTO_REPORT_RNG_SEEDSIZE +static_assert(sizeof(struct crypto_report_rng) == sizeof(struct_crypto_report_rng), + "struct crypto_report_rng size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct crypto_report_rng) <= offsetof(struct_crypto_report_rng, seedsize), +"struct crypto_report_rng size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_CRYPTO_REPORT_RNG_SEEDSIZE */ +#endif /* HAVE_STRUCT_CRYPTO_REPORT_RNG */ diff --git a/types/check-cryptouser.m4 b/types/check-cryptouser.m4 new file mode 100644 index 00000000..a299dc50 --- /dev/null +++ b/types/check-cryptouser.m4 @@ -0,0 +1,35 @@ +dnl Generated by ./types/gen.sh from ./types/cryptouser.h; do not edit. +AC_DEFUN([st_CHECK_TYPES_CRYPTOUSER],[ +AC_CHECK_HEADERS([linux/cryptouser.h],[ + +AC_CHECK_TYPES([struct crypto_user_alg], +[AC_CHECK_MEMBERS([struct crypto_user_alg.cru_flags],,,[AC_INCLUDES_DEFAULT +#include ])],,[AC_INCLUDES_DEFAULT +#include ]) + +AC_CHECK_TYPES([struct crypto_report_hash], +[AC_CHECK_MEMBERS([struct crypto_report_hash.digestsize],,,[AC_INCLUDES_DEFAULT +#include ])],,[AC_INCLUDES_DEFAULT +#include ]) + +AC_CHECK_TYPES([struct crypto_report_cipher], +[AC_CHECK_MEMBERS([struct crypto_report_cipher.max_keysize],,,[AC_INCLUDES_DEFAULT +#include ])],,[AC_INCLUDES_DEFAULT +#include ]) + +AC_CHECK_TYPES([struct crypto_report_blkcipher], +[AC_CHECK_MEMBERS([struct crypto_report_blkcipher.ivsize],,,[AC_INCLUDES_DEFAULT +#include ])],,[AC_INCLUDES_DEFAULT +#include ]) + +AC_CHECK_TYPES([struct crypto_report_aead], +[AC_CHECK_MEMBERS([struct crypto_report_aead.ivsize],,,[AC_INCLUDES_DEFAULT +#include ])],,[AC_INCLUDES_DEFAULT +#include ]) + +AC_CHECK_TYPES([struct crypto_report_rng], +[AC_CHECK_MEMBERS([struct crypto_report_rng.seedsize],,,[AC_INCLUDES_DEFAULT +#include ])],,[AC_INCLUDES_DEFAULT +#include ]) +],[],[AC_INCLUDES_DEFAULT +])]) diff --git a/types/check-evdev.c b/types/check-evdev.c new file mode 100644 index 00000000..f7dfc83c --- /dev/null +++ b/types/check-evdev.c @@ -0,0 +1,34 @@ +/* Generated by ./types/gen.sh from ./types/evdev.h; do not edit. */ +#include "defs.h" +#include "static_assert.h" +#include "types/evdev.h" + +#ifdef HAVE_STRUCT_INPUT_ABSINFO +# ifdef HAVE_STRUCT_INPUT_ABSINFO_RESOLUTION +static_assert(sizeof(struct input_absinfo) == sizeof(struct_input_absinfo), + "struct input_absinfo size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct input_absinfo) <= offsetof(struct_input_absinfo, resolution), +"struct input_absinfo size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_INPUT_ABSINFO_RESOLUTION */ +#endif /* HAVE_STRUCT_INPUT_ABSINFO */ + +#ifdef HAVE_STRUCT_INPUT_KEYMAP_ENTRY +# ifdef HAVE_STRUCT_INPUT_KEYMAP_ENTRY_SCANCODE +static_assert(sizeof(struct input_keymap_entry) == sizeof(struct_input_keymap_entry), + "struct input_keymap_entry size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct input_keymap_entry) <= offsetof(struct_input_keymap_entry, scancode), +"struct input_keymap_entry size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_INPUT_KEYMAP_ENTRY_SCANCODE */ +#endif /* HAVE_STRUCT_INPUT_KEYMAP_ENTRY */ + +#ifdef HAVE_STRUCT_INPUT_MASK +# ifdef HAVE_STRUCT_INPUT_MASK_CODES_PTR +static_assert(sizeof(struct input_mask) == sizeof(struct_input_mask), + "struct input_mask size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct input_mask) <= offsetof(struct_input_mask, codes_ptr), +"struct input_mask size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_INPUT_MASK_CODES_PTR */ +#endif /* HAVE_STRUCT_INPUT_MASK */ diff --git a/types/check-evdev.m4 b/types/check-evdev.m4 new file mode 100644 index 00000000..282b75ca --- /dev/null +++ b/types/check-evdev.m4 @@ -0,0 +1,20 @@ +dnl Generated by ./types/gen.sh from ./types/evdev.h; do not edit. +AC_DEFUN([st_CHECK_TYPES_EVDEV],[ +AC_CHECK_HEADERS([linux/input.h],[ + +AC_CHECK_TYPES([struct input_absinfo], +[AC_CHECK_MEMBERS([struct input_absinfo.resolution],,,[AC_INCLUDES_DEFAULT +#include ])],,[AC_INCLUDES_DEFAULT +#include ]) + +AC_CHECK_TYPES([struct input_keymap_entry], +[AC_CHECK_MEMBERS([struct input_keymap_entry.scancode],,,[AC_INCLUDES_DEFAULT +#include ])],,[AC_INCLUDES_DEFAULT +#include ]) + +AC_CHECK_TYPES([struct input_mask], +[AC_CHECK_MEMBERS([struct input_mask.codes_ptr],,,[AC_INCLUDES_DEFAULT +#include ])],,[AC_INCLUDES_DEFAULT +#include ]) +],[],[AC_INCLUDES_DEFAULT +])]) diff --git a/types/check-io_uring.c b/types/check-io_uring.c new file mode 100644 index 00000000..20a3ffb2 --- /dev/null +++ b/types/check-io_uring.c @@ -0,0 +1,64 @@ +/* Generated by ./types/gen.sh from ./types/io_uring.h; do not edit. */ +#include "defs.h" +#include "static_assert.h" +#include "types/io_uring.h" + +#ifdef HAVE_STRUCT_IO_SQRING_OFFSETS +# ifdef HAVE_STRUCT_IO_SQRING_OFFSETS_RESV2 +static_assert(sizeof(struct io_sqring_offsets) == sizeof(struct_io_sqring_offsets), + "struct io_sqring_offsets size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct io_sqring_offsets) <= offsetof(struct_io_sqring_offsets, resv2), +"struct io_sqring_offsets size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_IO_SQRING_OFFSETS_RESV2 */ +#endif /* HAVE_STRUCT_IO_SQRING_OFFSETS */ + +#ifdef HAVE_STRUCT_IO_CQRING_OFFSETS +# ifdef HAVE_STRUCT_IO_CQRING_OFFSETS_CQES +static_assert(sizeof(struct io_cqring_offsets) == sizeof(struct_io_cqring_offsets), + "struct io_cqring_offsets size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct io_cqring_offsets) <= offsetof(struct_io_cqring_offsets, cqes), +"struct io_cqring_offsets size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_IO_CQRING_OFFSETS_CQES */ +#endif /* HAVE_STRUCT_IO_CQRING_OFFSETS */ + +#ifdef HAVE_STRUCT_IO_URING_PARAMS +# ifdef HAVE_STRUCT_IO_URING_PARAMS_CQ_OFF +static_assert(sizeof(struct io_uring_params) == sizeof(struct_io_uring_params), + "struct io_uring_params size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct io_uring_params) <= offsetof(struct_io_uring_params, cq_off), +"struct io_uring_params size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_IO_URING_PARAMS_CQ_OFF */ +#endif /* HAVE_STRUCT_IO_URING_PARAMS */ + +#ifdef HAVE_STRUCT_IO_URING_FILES_UPDATE +# ifdef HAVE_STRUCT_IO_URING_FILES_UPDATE_FDS +static_assert(sizeof(struct io_uring_files_update) == sizeof(struct_io_uring_files_update), + "struct io_uring_files_update size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct io_uring_files_update) <= offsetof(struct_io_uring_files_update, fds), +"struct io_uring_files_update size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_IO_URING_FILES_UPDATE_FDS */ +#endif /* HAVE_STRUCT_IO_URING_FILES_UPDATE */ + +#ifdef HAVE_STRUCT_IO_URING_PROBE_OP +# ifdef HAVE_STRUCT_IO_URING_PROBE_OP_RESV2 +static_assert(sizeof(struct io_uring_probe_op) == sizeof(struct_io_uring_probe_op), + "struct io_uring_probe_op size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct io_uring_probe_op) <= offsetof(struct_io_uring_probe_op, resv2), +"struct io_uring_probe_op size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_IO_URING_PROBE_OP_RESV2 */ +#endif /* HAVE_STRUCT_IO_URING_PROBE_OP */ + +#ifdef HAVE_STRUCT_IO_URING_PROBE +# ifdef HAVE_STRUCT_IO_URING_PROBE_OPS +static_assert(sizeof(struct io_uring_probe) == sizeof(struct_io_uring_probe), + "struct io_uring_probe size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct io_uring_probe) <= offsetof(struct_io_uring_probe, ops), +"struct io_uring_probe size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_IO_URING_PROBE_OPS */ +#endif /* HAVE_STRUCT_IO_URING_PROBE */ diff --git a/types/check-io_uring.m4 b/types/check-io_uring.m4 new file mode 100644 index 00000000..dac95656 --- /dev/null +++ b/types/check-io_uring.m4 @@ -0,0 +1,35 @@ +dnl Generated by ./types/gen.sh from ./types/io_uring.h; do not edit. +AC_DEFUN([st_CHECK_TYPES_IO_URING],[ +AC_CHECK_HEADERS([linux/io_uring.h],[ + +AC_CHECK_TYPES([struct io_sqring_offsets], +[AC_CHECK_MEMBERS([struct io_sqring_offsets.resv2],,,[AC_INCLUDES_DEFAULT +#include ])],,[AC_INCLUDES_DEFAULT +#include ]) + +AC_CHECK_TYPES([struct io_cqring_offsets], +[AC_CHECK_MEMBERS([struct io_cqring_offsets.cqes],,,[AC_INCLUDES_DEFAULT +#include ])],,[AC_INCLUDES_DEFAULT +#include ]) + +AC_CHECK_TYPES([struct io_uring_params], +[AC_CHECK_MEMBERS([struct io_uring_params.cq_off],,,[AC_INCLUDES_DEFAULT +#include ])],,[AC_INCLUDES_DEFAULT +#include ]) + +AC_CHECK_TYPES([struct io_uring_files_update], +[AC_CHECK_MEMBERS([struct io_uring_files_update.fds],,,[AC_INCLUDES_DEFAULT +#include ])],,[AC_INCLUDES_DEFAULT +#include ]) + +AC_CHECK_TYPES([struct io_uring_probe_op], +[AC_CHECK_MEMBERS([struct io_uring_probe_op.resv2],,,[AC_INCLUDES_DEFAULT +#include ])],,[AC_INCLUDES_DEFAULT +#include ]) + +AC_CHECK_TYPES([struct io_uring_probe], +[AC_CHECK_MEMBERS([struct io_uring_probe.ops],,,[AC_INCLUDES_DEFAULT +#include ])],,[AC_INCLUDES_DEFAULT +#include ]) +],[],[AC_INCLUDES_DEFAULT +])]) diff --git a/types/check-loop.c b/types/check-loop.c new file mode 100644 index 00000000..d25e7154 --- /dev/null +++ b/types/check-loop.c @@ -0,0 +1,14 @@ +/* Generated by ./types/gen.sh from ./types/loop.h; do not edit. */ +#include "defs.h" +#include "static_assert.h" +#include "types/loop.h" + +#ifdef HAVE_STRUCT_LOOP_CONFIG +# ifdef HAVE_STRUCT_LOOP_CONFIG___RESERVED +static_assert(sizeof(struct loop_config) == sizeof(struct_loop_config), + "struct loop_config size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct loop_config) <= offsetof(struct_loop_config, __reserved), +"struct loop_config size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_LOOP_CONFIG___RESERVED */ +#endif /* HAVE_STRUCT_LOOP_CONFIG */ diff --git a/types/check-loop.m4 b/types/check-loop.m4 new file mode 100644 index 00000000..47e9a6e1 --- /dev/null +++ b/types/check-loop.m4 @@ -0,0 +1,12 @@ +dnl Generated by ./types/gen.sh from ./types/loop.h; do not edit. +AC_DEFUN([st_CHECK_TYPES_LOOP],[ +AC_CHECK_HEADERS([linux/loop.h],[ + +AC_CHECK_TYPES([struct loop_config], +[AC_CHECK_MEMBERS([struct loop_config.__reserved],,,[AC_INCLUDES_DEFAULT +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include ]) +],[],[AC_INCLUDES_DEFAULT +#include ])]) diff --git a/types/check-openat2.c b/types/check-openat2.c new file mode 100644 index 00000000..282939cd --- /dev/null +++ b/types/check-openat2.c @@ -0,0 +1,14 @@ +/* Generated by ./types/gen.sh from ./types/openat2.h; do not edit. */ +#include "defs.h" +#include "static_assert.h" +#include "types/openat2.h" + +#ifdef HAVE_STRUCT_OPEN_HOW +# ifdef HAVE_STRUCT_OPEN_HOW_RESOLVE +static_assert(sizeof(struct open_how) == sizeof(struct_open_how), + "struct open_how size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct open_how) <= offsetof(struct_open_how, resolve), +"struct open_how size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_OPEN_HOW_RESOLVE */ +#endif /* HAVE_STRUCT_OPEN_HOW */ diff --git a/types/check-openat2.m4 b/types/check-openat2.m4 new file mode 100644 index 00000000..19bebdcd --- /dev/null +++ b/types/check-openat2.m4 @@ -0,0 +1,10 @@ +dnl Generated by ./types/gen.sh from ./types/openat2.h; do not edit. +AC_DEFUN([st_CHECK_TYPES_OPENAT2],[ +AC_CHECK_HEADERS([linux/openat2.h],[ + +AC_CHECK_TYPES([struct open_how], +[AC_CHECK_MEMBERS([struct open_how.resolve],,,[AC_INCLUDES_DEFAULT +#include ])],,[AC_INCLUDES_DEFAULT +#include ]) +],[],[AC_INCLUDES_DEFAULT +])]) diff --git a/types/check-rtnl_link.c b/types/check-rtnl_link.c new file mode 100644 index 00000000..bed9a8bc --- /dev/null +++ b/types/check-rtnl_link.c @@ -0,0 +1,44 @@ +/* Generated by ./types/gen.sh from ./types/rtnl_link.h; do not edit. */ +#include "defs.h" +#include "static_assert.h" +#include "types/rtnl_link.h" + +#ifdef HAVE_STRUCT_RTNL_LINK_STATS +# ifdef HAVE_STRUCT_RTNL_LINK_STATS_RX_NOHANDLER +static_assert(sizeof(struct rtnl_link_stats) == sizeof(struct_rtnl_link_stats), + "struct rtnl_link_stats size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct rtnl_link_stats) <= offsetof(struct_rtnl_link_stats, rx_nohandler), +"struct rtnl_link_stats size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_RTNL_LINK_STATS_RX_NOHANDLER */ +#endif /* HAVE_STRUCT_RTNL_LINK_STATS */ + +#ifdef HAVE_STRUCT_RTNL_LINK_STATS64 +# ifdef HAVE_STRUCT_RTNL_LINK_STATS64_RX_NOHANDLER +static_assert(sizeof(struct rtnl_link_stats64) == sizeof(struct_rtnl_link_stats64), + "struct rtnl_link_stats64 size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct rtnl_link_stats64) <= offsetof(struct_rtnl_link_stats64, rx_nohandler), +"struct rtnl_link_stats64 size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_RTNL_LINK_STATS64_RX_NOHANDLER */ +#endif /* HAVE_STRUCT_RTNL_LINK_STATS64 */ + +#ifdef HAVE_STRUCT_IFLA_BRIDGE_ID +# ifdef HAVE_STRUCT_IFLA_BRIDGE_ID_ADDR +static_assert(sizeof(struct ifla_bridge_id) == sizeof(struct_ifla_bridge_id), + "struct ifla_bridge_id size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct ifla_bridge_id) <= offsetof(struct_ifla_bridge_id, addr), +"struct ifla_bridge_id size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_IFLA_BRIDGE_ID_ADDR */ +#endif /* HAVE_STRUCT_IFLA_BRIDGE_ID */ + +#ifdef HAVE_STRUCT_IFLA_PORT_VSI +# ifdef HAVE_STRUCT_IFLA_PORT_VSI_PAD +static_assert(sizeof(struct ifla_port_vsi) == sizeof(struct_ifla_port_vsi), + "struct ifla_port_vsi size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct ifla_port_vsi) <= offsetof(struct_ifla_port_vsi, pad), +"struct ifla_port_vsi size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_IFLA_PORT_VSI_PAD */ +#endif /* HAVE_STRUCT_IFLA_PORT_VSI */ diff --git a/types/check-rtnl_link.m4 b/types/check-rtnl_link.m4 new file mode 100644 index 00000000..47c7cd64 --- /dev/null +++ b/types/check-rtnl_link.m4 @@ -0,0 +1,33 @@ +dnl Generated by ./types/gen.sh from ./types/rtnl_link.h; do not edit. +AC_DEFUN([st_CHECK_TYPES_RTNL_LINK],[ +AC_CHECK_HEADERS([linux/rtnetlink.h],[ + +AC_CHECK_TYPES([struct rtnl_link_stats], +[AC_CHECK_MEMBERS([struct rtnl_link_stats.rx_nohandler],,,[AC_INCLUDES_DEFAULT +#include "$srcdir/netlink.h" +#include ])],,[AC_INCLUDES_DEFAULT +#include "$srcdir/netlink.h" +#include ]) + +AC_CHECK_TYPES([struct rtnl_link_stats64], +[AC_CHECK_MEMBERS([struct rtnl_link_stats64.rx_nohandler],,,[AC_INCLUDES_DEFAULT +#include "$srcdir/netlink.h" +#include ])],,[AC_INCLUDES_DEFAULT +#include "$srcdir/netlink.h" +#include ]) + +AC_CHECK_TYPES([struct ifla_bridge_id], +[AC_CHECK_MEMBERS([struct ifla_bridge_id.addr],,,[AC_INCLUDES_DEFAULT +#include "$srcdir/netlink.h" +#include ])],,[AC_INCLUDES_DEFAULT +#include "$srcdir/netlink.h" +#include ]) + +AC_CHECK_TYPES([struct ifla_port_vsi], +[AC_CHECK_MEMBERS([struct ifla_port_vsi.pad],,,[AC_INCLUDES_DEFAULT +#include "$srcdir/netlink.h" +#include ])],,[AC_INCLUDES_DEFAULT +#include "$srcdir/netlink.h" +#include ]) +],[],[AC_INCLUDES_DEFAULT +#include "$srcdir/netlink.h"])]) diff --git a/types/check-rtnl_mdb.c b/types/check-rtnl_mdb.c new file mode 100644 index 00000000..3f11b41b --- /dev/null +++ b/types/check-rtnl_mdb.c @@ -0,0 +1,24 @@ +/* Generated by ./types/gen.sh from ./types/rtnl_mdb.h; do not edit. */ +#include "defs.h" +#include "static_assert.h" +#include "types/rtnl_mdb.h" + +#ifdef HAVE_STRUCT_BR_PORT_MSG +# ifdef HAVE_STRUCT_BR_PORT_MSG_IFINDEX +static_assert(sizeof(struct br_port_msg) == sizeof(struct_br_port_msg), + "struct br_port_msg size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct br_port_msg) <= offsetof(struct_br_port_msg, ifindex), +"struct br_port_msg size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_BR_PORT_MSG_IFINDEX */ +#endif /* HAVE_STRUCT_BR_PORT_MSG */ + +#ifdef HAVE_STRUCT_BR_MDB_ENTRY +# ifdef HAVE_STRUCT_BR_MDB_ENTRY_ADDR +static_assert(sizeof(struct br_mdb_entry) == sizeof(struct_br_mdb_entry), + "struct br_mdb_entry size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct br_mdb_entry) <= offsetof(struct_br_mdb_entry, addr), +"struct br_mdb_entry size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_BR_MDB_ENTRY_ADDR */ +#endif /* HAVE_STRUCT_BR_MDB_ENTRY */ diff --git a/types/check-rtnl_mdb.m4 b/types/check-rtnl_mdb.m4 new file mode 100644 index 00000000..8f148367 --- /dev/null +++ b/types/check-rtnl_mdb.m4 @@ -0,0 +1,19 @@ +dnl Generated by ./types/gen.sh from ./types/rtnl_mdb.h; do not edit. +AC_DEFUN([st_CHECK_TYPES_RTNL_MDB],[ +AC_CHECK_HEADERS([linux/if_bridge.h],[ + +AC_CHECK_TYPES([struct br_port_msg], +[AC_CHECK_MEMBERS([struct br_port_msg.ifindex],,,[AC_INCLUDES_DEFAULT +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include ]) + +AC_CHECK_TYPES([struct br_mdb_entry], +[AC_CHECK_MEMBERS([struct br_mdb_entry.addr],,,[AC_INCLUDES_DEFAULT +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include ]) +],[],[AC_INCLUDES_DEFAULT +#include ])]) diff --git a/types/check-rtnl_neightbl.c b/types/check-rtnl_neightbl.c new file mode 100644 index 00000000..87ae2b8e --- /dev/null +++ b/types/check-rtnl_neightbl.c @@ -0,0 +1,24 @@ +/* Generated by ./types/gen.sh from ./types/rtnl_neightbl.h; do not edit. */ +#include "defs.h" +#include "static_assert.h" +#include "types/rtnl_neightbl.h" + +#ifdef HAVE_STRUCT_NDT_CONFIG +# ifdef HAVE_STRUCT_NDT_CONFIG_NDTC_PROXY_QLEN +static_assert(sizeof(struct ndt_config) == sizeof(struct_ndt_config), + "struct ndt_config size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct ndt_config) <= offsetof(struct_ndt_config, ndtc_proxy_qlen), +"struct ndt_config size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_NDT_CONFIG_NDTC_PROXY_QLEN */ +#endif /* HAVE_STRUCT_NDT_CONFIG */ + +#ifdef HAVE_STRUCT_NDT_STATS +# ifdef HAVE_STRUCT_NDT_STATS_NDTS_TABLE_FULLS +static_assert(sizeof(struct ndt_stats) == sizeof(struct_ndt_stats), + "struct ndt_stats size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct ndt_stats) <= offsetof(struct_ndt_stats, ndts_table_fulls), +"struct ndt_stats size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_NDT_STATS_NDTS_TABLE_FULLS */ +#endif /* HAVE_STRUCT_NDT_STATS */ diff --git a/types/check-rtnl_neightbl.m4 b/types/check-rtnl_neightbl.m4 new file mode 100644 index 00000000..c0b6bf2b --- /dev/null +++ b/types/check-rtnl_neightbl.m4 @@ -0,0 +1,19 @@ +dnl Generated by ./types/gen.sh from ./types/rtnl_neightbl.h; do not edit. +AC_DEFUN([st_CHECK_TYPES_RTNL_NEIGHTBL],[ +AC_CHECK_HEADERS([linux/rtnetlink.h],[ + +AC_CHECK_TYPES([struct ndt_config], +[AC_CHECK_MEMBERS([struct ndt_config.ndtc_proxy_qlen],,,[AC_INCLUDES_DEFAULT +#include "$srcdir/netlink.h" +#include ])],,[AC_INCLUDES_DEFAULT +#include "$srcdir/netlink.h" +#include ]) + +AC_CHECK_TYPES([struct ndt_stats], +[AC_CHECK_MEMBERS([struct ndt_stats.ndts_table_fulls],,,[AC_INCLUDES_DEFAULT +#include "$srcdir/netlink.h" +#include ])],,[AC_INCLUDES_DEFAULT +#include "$srcdir/netlink.h" +#include ]) +],[],[AC_INCLUDES_DEFAULT +#include "$srcdir/netlink.h"])]) diff --git a/types/check-rtnl_route.c b/types/check-rtnl_route.c new file mode 100644 index 00000000..afd9db77 --- /dev/null +++ b/types/check-rtnl_route.c @@ -0,0 +1,24 @@ +/* Generated by ./types/gen.sh from ./types/rtnl_route.h; do not edit. */ +#include "defs.h" +#include "static_assert.h" +#include "types/rtnl_route.h" + +#ifdef HAVE_STRUCT_RTA_MFC_STATS +# ifdef HAVE_STRUCT_RTA_MFC_STATS_MFCS_WRONG_IF +static_assert(sizeof(struct rta_mfc_stats) == sizeof(struct_rta_mfc_stats), + "struct rta_mfc_stats size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct rta_mfc_stats) <= offsetof(struct_rta_mfc_stats, mfcs_wrong_if), +"struct rta_mfc_stats size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_RTA_MFC_STATS_MFCS_WRONG_IF */ +#endif /* HAVE_STRUCT_RTA_MFC_STATS */ + +#ifdef HAVE_STRUCT_RTVIA +# ifdef HAVE_STRUCT_RTVIA_RTVIA_ADDR +static_assert(sizeof(struct rtvia) == sizeof(struct_rtvia), + "struct rtvia size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct rtvia) <= offsetof(struct_rtvia, rtvia_addr), +"struct rtvia size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_RTVIA_RTVIA_ADDR */ +#endif /* HAVE_STRUCT_RTVIA */ diff --git a/types/check-rtnl_route.m4 b/types/check-rtnl_route.m4 new file mode 100644 index 00000000..21a20580 --- /dev/null +++ b/types/check-rtnl_route.m4 @@ -0,0 +1,19 @@ +dnl Generated by ./types/gen.sh from ./types/rtnl_route.h; do not edit. +AC_DEFUN([st_CHECK_TYPES_RTNL_ROUTE],[ +AC_CHECK_HEADERS([linux/rtnetlink.h],[ + +AC_CHECK_TYPES([struct rta_mfc_stats], +[AC_CHECK_MEMBERS([struct rta_mfc_stats.mfcs_wrong_if],,,[AC_INCLUDES_DEFAULT +#include "$srcdir/netlink.h" +#include ])],,[AC_INCLUDES_DEFAULT +#include "$srcdir/netlink.h" +#include ]) + +AC_CHECK_TYPES([struct rtvia], +[AC_CHECK_MEMBERS([struct rtvia.rtvia_addr],,,[AC_INCLUDES_DEFAULT +#include "$srcdir/netlink.h" +#include ])],,[AC_INCLUDES_DEFAULT +#include "$srcdir/netlink.h" +#include ]) +],[],[AC_INCLUDES_DEFAULT +#include "$srcdir/netlink.h"])]) diff --git a/types/check-tee.c b/types/check-tee.c new file mode 100644 index 00000000..ca0cc15d --- /dev/null +++ b/types/check-tee.c @@ -0,0 +1,114 @@ +/* Generated by ./types/gen.sh from ./types/tee.h; do not edit. */ +#include "defs.h" +#include "static_assert.h" +#include "types/tee.h" + +#ifdef HAVE_STRUCT_TEE_IOCTL_BUF_DATA +# ifdef HAVE_STRUCT_TEE_IOCTL_BUF_DATA_BUF_LEN +static_assert(sizeof(struct tee_ioctl_buf_data) == sizeof(struct_tee_ioctl_buf_data), + "struct tee_ioctl_buf_data size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct tee_ioctl_buf_data) <= offsetof(struct_tee_ioctl_buf_data, buf_len), +"struct tee_ioctl_buf_data size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_TEE_IOCTL_BUF_DATA_BUF_LEN */ +#endif /* HAVE_STRUCT_TEE_IOCTL_BUF_DATA */ + +#ifdef HAVE_STRUCT_TEE_IOCTL_CANCEL_ARG +# ifdef HAVE_STRUCT_TEE_IOCTL_CANCEL_ARG_SESSION +static_assert(sizeof(struct tee_ioctl_cancel_arg) == sizeof(struct_tee_ioctl_cancel_arg), + "struct tee_ioctl_cancel_arg size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct tee_ioctl_cancel_arg) <= offsetof(struct_tee_ioctl_cancel_arg, session), +"struct tee_ioctl_cancel_arg size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_TEE_IOCTL_CANCEL_ARG_SESSION */ +#endif /* HAVE_STRUCT_TEE_IOCTL_CANCEL_ARG */ + +#ifdef HAVE_STRUCT_TEE_IOCTL_CLOSE_SESSION_ARG +# ifdef HAVE_STRUCT_TEE_IOCTL_CLOSE_SESSION_ARG_SESSION +static_assert(sizeof(struct tee_ioctl_close_session_arg) == sizeof(struct_tee_ioctl_close_session_arg), + "struct tee_ioctl_close_session_arg size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct tee_ioctl_close_session_arg) <= offsetof(struct_tee_ioctl_close_session_arg, session), +"struct tee_ioctl_close_session_arg size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_TEE_IOCTL_CLOSE_SESSION_ARG_SESSION */ +#endif /* HAVE_STRUCT_TEE_IOCTL_CLOSE_SESSION_ARG */ + +#ifdef HAVE_STRUCT_TEE_IOCTL_SHM_ALLOC_DATA +# ifdef HAVE_STRUCT_TEE_IOCTL_SHM_ALLOC_DATA_ID +static_assert(sizeof(struct tee_ioctl_shm_alloc_data) == sizeof(struct_tee_ioctl_shm_alloc_data), + "struct tee_ioctl_shm_alloc_data size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct tee_ioctl_shm_alloc_data) <= offsetof(struct_tee_ioctl_shm_alloc_data, id), +"struct tee_ioctl_shm_alloc_data size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_TEE_IOCTL_SHM_ALLOC_DATA_ID */ +#endif /* HAVE_STRUCT_TEE_IOCTL_SHM_ALLOC_DATA */ + +#ifdef HAVE_STRUCT_TEE_IOCTL_SHM_REGISTER_DATA +# ifdef HAVE_STRUCT_TEE_IOCTL_SHM_REGISTER_DATA_ID +static_assert(sizeof(struct tee_ioctl_shm_register_data) == sizeof(struct_tee_ioctl_shm_register_data), + "struct tee_ioctl_shm_register_data size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct tee_ioctl_shm_register_data) <= offsetof(struct_tee_ioctl_shm_register_data, id), +"struct tee_ioctl_shm_register_data size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_TEE_IOCTL_SHM_REGISTER_DATA_ID */ +#endif /* HAVE_STRUCT_TEE_IOCTL_SHM_REGISTER_DATA */ + +#ifdef HAVE_STRUCT_TEE_IOCTL_VERSION_DATA +# ifdef HAVE_STRUCT_TEE_IOCTL_VERSION_DATA_GEN_CAPS +static_assert(sizeof(struct tee_ioctl_version_data) == sizeof(struct_tee_ioctl_version_data), + "struct tee_ioctl_version_data size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct tee_ioctl_version_data) <= offsetof(struct_tee_ioctl_version_data, gen_caps), +"struct tee_ioctl_version_data size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_TEE_IOCTL_VERSION_DATA_GEN_CAPS */ +#endif /* HAVE_STRUCT_TEE_IOCTL_VERSION_DATA */ + +#ifdef HAVE_STRUCT_TEE_IOCTL_PARAM +# ifdef HAVE_STRUCT_TEE_IOCTL_PARAM_C +static_assert(sizeof(struct tee_ioctl_param) == sizeof(struct_tee_ioctl_param), + "struct tee_ioctl_param size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct tee_ioctl_param) <= offsetof(struct_tee_ioctl_param, c), +"struct tee_ioctl_param size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_TEE_IOCTL_PARAM_C */ +#endif /* HAVE_STRUCT_TEE_IOCTL_PARAM */ + +#ifdef HAVE_STRUCT_TEE_IOCTL_INVOKE_ARG +# ifdef HAVE_STRUCT_TEE_IOCTL_INVOKE_ARG_PARAMS +static_assert(sizeof(struct tee_ioctl_invoke_arg) == sizeof(struct_tee_ioctl_invoke_arg), + "struct tee_ioctl_invoke_arg size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct tee_ioctl_invoke_arg) <= offsetof(struct_tee_ioctl_invoke_arg, params), +"struct tee_ioctl_invoke_arg size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_TEE_IOCTL_INVOKE_ARG_PARAMS */ +#endif /* HAVE_STRUCT_TEE_IOCTL_INVOKE_ARG */ + +#ifdef HAVE_STRUCT_TEE_IOCL_SUPP_RECV_ARG +# ifdef HAVE_STRUCT_TEE_IOCL_SUPP_RECV_ARG_PARAMS +static_assert(sizeof(struct tee_iocl_supp_recv_arg) == sizeof(struct_tee_iocl_supp_recv_arg), + "struct tee_iocl_supp_recv_arg size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct tee_iocl_supp_recv_arg) <= offsetof(struct_tee_iocl_supp_recv_arg, params), +"struct tee_iocl_supp_recv_arg size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_TEE_IOCL_SUPP_RECV_ARG_PARAMS */ +#endif /* HAVE_STRUCT_TEE_IOCL_SUPP_RECV_ARG */ + +#ifdef HAVE_STRUCT_TEE_IOCL_SUPP_SEND_ARG +# ifdef HAVE_STRUCT_TEE_IOCL_SUPP_SEND_ARG_PARAMS +static_assert(sizeof(struct tee_iocl_supp_send_arg) == sizeof(struct_tee_iocl_supp_send_arg), + "struct tee_iocl_supp_send_arg size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct tee_iocl_supp_send_arg) <= offsetof(struct_tee_iocl_supp_send_arg, params), +"struct tee_iocl_supp_send_arg size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_TEE_IOCL_SUPP_SEND_ARG_PARAMS */ +#endif /* HAVE_STRUCT_TEE_IOCL_SUPP_SEND_ARG */ + +#ifdef HAVE_STRUCT_TEE_IOCTL_OPEN_SESSION_ARG +# ifdef HAVE_STRUCT_TEE_IOCTL_OPEN_SESSION_ARG_PARAMS +static_assert(sizeof(struct tee_ioctl_open_session_arg) == sizeof(struct_tee_ioctl_open_session_arg), + "struct tee_ioctl_open_session_arg size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct tee_ioctl_open_session_arg) <= offsetof(struct_tee_ioctl_open_session_arg, params), +"struct tee_ioctl_open_session_arg size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_TEE_IOCTL_OPEN_SESSION_ARG_PARAMS */ +#endif /* HAVE_STRUCT_TEE_IOCTL_OPEN_SESSION_ARG */ diff --git a/types/check-tee.m4 b/types/check-tee.m4 new file mode 100644 index 00000000..c297a0b4 --- /dev/null +++ b/types/check-tee.m4 @@ -0,0 +1,82 @@ +dnl Generated by ./types/gen.sh from ./types/tee.h; do not edit. +AC_DEFUN([st_CHECK_TYPES_TEE],[ +AC_CHECK_HEADERS([linux/tee.h],[ + +AC_CHECK_TYPES([struct tee_ioctl_buf_data], +[AC_CHECK_MEMBERS([struct tee_ioctl_buf_data.buf_len],,,[AC_INCLUDES_DEFAULT +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include ]) + +AC_CHECK_TYPES([struct tee_ioctl_cancel_arg], +[AC_CHECK_MEMBERS([struct tee_ioctl_cancel_arg.session],,,[AC_INCLUDES_DEFAULT +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include ]) + +AC_CHECK_TYPES([struct tee_ioctl_close_session_arg], +[AC_CHECK_MEMBERS([struct tee_ioctl_close_session_arg.session],,,[AC_INCLUDES_DEFAULT +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include ]) + +AC_CHECK_TYPES([struct tee_ioctl_shm_alloc_data], +[AC_CHECK_MEMBERS([struct tee_ioctl_shm_alloc_data.id],,,[AC_INCLUDES_DEFAULT +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include ]) + +AC_CHECK_TYPES([struct tee_ioctl_shm_register_data], +[AC_CHECK_MEMBERS([struct tee_ioctl_shm_register_data.id],,,[AC_INCLUDES_DEFAULT +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include ]) + +AC_CHECK_TYPES([struct tee_ioctl_version_data], +[AC_CHECK_MEMBERS([struct tee_ioctl_version_data.gen_caps],,,[AC_INCLUDES_DEFAULT +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include ]) + +AC_CHECK_TYPES([struct tee_ioctl_param], +[AC_CHECK_MEMBERS([struct tee_ioctl_param.c],,,[AC_INCLUDES_DEFAULT +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include ]) + +AC_CHECK_TYPES([struct tee_ioctl_invoke_arg], +[AC_CHECK_MEMBERS([struct tee_ioctl_invoke_arg.params],,,[AC_INCLUDES_DEFAULT +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include ]) + +AC_CHECK_TYPES([struct tee_iocl_supp_recv_arg], +[AC_CHECK_MEMBERS([struct tee_iocl_supp_recv_arg.params],,,[AC_INCLUDES_DEFAULT +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include ]) + +AC_CHECK_TYPES([struct tee_iocl_supp_send_arg], +[AC_CHECK_MEMBERS([struct tee_iocl_supp_send_arg.params],,,[AC_INCLUDES_DEFAULT +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include ]) + +AC_CHECK_TYPES([struct tee_ioctl_open_session_arg], +[AC_CHECK_MEMBERS([struct tee_ioctl_open_session_arg.params],,,[AC_INCLUDES_DEFAULT +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include ]) +],[],[AC_INCLUDES_DEFAULT +#include ])]) diff --git a/types/check-v4l2.c b/types/check-v4l2.c new file mode 100644 index 00000000..4df7c6ab --- /dev/null +++ b/types/check-v4l2.c @@ -0,0 +1,174 @@ +/* Generated by ./types/gen.sh from ./types/v4l2.h; do not edit. */ +#include "defs.h" +#include "static_assert.h" +#include "types/v4l2.h" + +#ifdef HAVE_STRUCT_V4L2_CAPABILITY +# ifdef HAVE_STRUCT_V4L2_CAPABILITY_RESERVED +static_assert(sizeof(struct v4l2_capability) == sizeof(struct_v4l2_capability), + "struct v4l2_capability size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct v4l2_capability) <= offsetof(struct_v4l2_capability, reserved), +"struct v4l2_capability size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_V4L2_CAPABILITY_RESERVED */ +#endif /* HAVE_STRUCT_V4L2_CAPABILITY */ + +#ifdef HAVE_STRUCT_V4L2_PIX_FORMAT +# ifdef HAVE_STRUCT_V4L2_PIX_FORMAT_XFER_FUNC +static_assert(sizeof(struct v4l2_pix_format) == sizeof(struct_v4l2_pix_format), + "struct v4l2_pix_format size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct v4l2_pix_format) <= offsetof(struct_v4l2_pix_format, xfer_func), +"struct v4l2_pix_format size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_V4L2_PIX_FORMAT_XFER_FUNC */ +#endif /* HAVE_STRUCT_V4L2_PIX_FORMAT */ + +#ifdef HAVE_STRUCT_V4L2_PLANE_PIX_FORMAT +# ifdef HAVE_STRUCT_V4L2_PLANE_PIX_FORMAT_RESERVED +static_assert(sizeof(struct v4l2_plane_pix_format) == sizeof(struct_v4l2_plane_pix_format), + "struct v4l2_plane_pix_format size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct v4l2_plane_pix_format) <= offsetof(struct_v4l2_plane_pix_format, reserved), +"struct v4l2_plane_pix_format size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_V4L2_PLANE_PIX_FORMAT_RESERVED */ +#endif /* HAVE_STRUCT_V4L2_PLANE_PIX_FORMAT */ + +#ifdef HAVE_STRUCT_V4L2_CLIP +# ifdef HAVE_STRUCT_V4L2_CLIP_NEXT +static_assert(sizeof(struct v4l2_clip) == sizeof(struct_v4l2_clip), + "struct v4l2_clip size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct v4l2_clip) <= offsetof(struct_v4l2_clip, next), +"struct v4l2_clip size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_V4L2_CLIP_NEXT */ +#endif /* HAVE_STRUCT_V4L2_CLIP */ + +#ifdef HAVE_STRUCT_V4L2_WINDOW +# ifdef HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA +static_assert(sizeof(struct v4l2_window) == sizeof(struct_v4l2_window), + "struct v4l2_window size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct v4l2_window) <= offsetof(struct_v4l2_window, global_alpha), +"struct v4l2_window size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA */ +#endif /* HAVE_STRUCT_V4L2_WINDOW */ + +#ifdef HAVE_STRUCT_V4L2_VBI_FORMAT +# ifdef HAVE_STRUCT_V4L2_VBI_FORMAT_RESERVED +static_assert(sizeof(struct v4l2_vbi_format) == sizeof(struct_v4l2_vbi_format), + "struct v4l2_vbi_format size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct v4l2_vbi_format) <= offsetof(struct_v4l2_vbi_format, reserved), +"struct v4l2_vbi_format size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_V4L2_VBI_FORMAT_RESERVED */ +#endif /* HAVE_STRUCT_V4L2_VBI_FORMAT */ + +#ifdef HAVE_STRUCT_V4L2_SLICED_VBI_FORMAT +# ifdef HAVE_STRUCT_V4L2_SLICED_VBI_FORMAT_RESERVED +static_assert(sizeof(struct v4l2_sliced_vbi_format) == sizeof(struct_v4l2_sliced_vbi_format), + "struct v4l2_sliced_vbi_format size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct v4l2_sliced_vbi_format) <= offsetof(struct_v4l2_sliced_vbi_format, reserved), +"struct v4l2_sliced_vbi_format size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_V4L2_SLICED_VBI_FORMAT_RESERVED */ +#endif /* HAVE_STRUCT_V4L2_SLICED_VBI_FORMAT */ + +#ifdef HAVE_STRUCT_V4L2_SLICED_VBI_CAP +# ifdef HAVE_STRUCT_V4L2_SLICED_VBI_CAP_RESERVED +static_assert(sizeof(struct v4l2_sliced_vbi_cap) == sizeof(struct_v4l2_sliced_vbi_cap), + "struct v4l2_sliced_vbi_cap size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct v4l2_sliced_vbi_cap) <= offsetof(struct_v4l2_sliced_vbi_cap, reserved), +"struct v4l2_sliced_vbi_cap size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_V4L2_SLICED_VBI_CAP_RESERVED */ +#endif /* HAVE_STRUCT_V4L2_SLICED_VBI_CAP */ + +#ifdef HAVE_STRUCT_V4L2_FORMAT +# ifdef HAVE_STRUCT_V4L2_FORMAT_FMT +static_assert(sizeof(struct v4l2_format) == sizeof(struct_v4l2_format), + "struct v4l2_format size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct v4l2_format) <= offsetof(struct_v4l2_format, fmt), +"struct v4l2_format size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_V4L2_FORMAT_FMT */ +#endif /* HAVE_STRUCT_V4L2_FORMAT */ + +#ifdef HAVE_STRUCT_V4L2_AREA +# ifdef HAVE_STRUCT_V4L2_AREA_HEIGHT +static_assert(sizeof(struct v4l2_area) == sizeof(struct_v4l2_area), + "struct v4l2_area size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct v4l2_area) <= offsetof(struct_v4l2_area, height), +"struct v4l2_area size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_V4L2_AREA_HEIGHT */ +#endif /* HAVE_STRUCT_V4L2_AREA */ + +#ifdef HAVE_STRUCT_V4L2_EXT_CONTROLS +# ifdef HAVE_STRUCT_V4L2_EXT_CONTROLS_CONTROLS +static_assert(sizeof(struct v4l2_ext_controls) == sizeof(struct_v4l2_ext_controls), + "struct v4l2_ext_controls size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct v4l2_ext_controls) <= offsetof(struct_v4l2_ext_controls, controls), +"struct v4l2_ext_controls size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_V4L2_EXT_CONTROLS_CONTROLS */ +#endif /* HAVE_STRUCT_V4L2_EXT_CONTROLS */ + +#ifdef HAVE_STRUCT_V4L2_FRMSIZE_DISCRETE +# ifdef HAVE_STRUCT_V4L2_FRMSIZE_DISCRETE_HEIGHT +static_assert(sizeof(struct v4l2_frmsize_discrete) == sizeof(struct_v4l2_frmsize_discrete), + "struct v4l2_frmsize_discrete size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct v4l2_frmsize_discrete) <= offsetof(struct_v4l2_frmsize_discrete, height), +"struct v4l2_frmsize_discrete size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_V4L2_FRMSIZE_DISCRETE_HEIGHT */ +#endif /* HAVE_STRUCT_V4L2_FRMSIZE_DISCRETE */ + +#ifdef HAVE_STRUCT_V4L2_FRMSIZE_STEPWISE +# ifdef HAVE_STRUCT_V4L2_FRMSIZE_STEPWISE_STEP_HEIGHT +static_assert(sizeof(struct v4l2_frmsize_stepwise) == sizeof(struct_v4l2_frmsize_stepwise), + "struct v4l2_frmsize_stepwise size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct v4l2_frmsize_stepwise) <= offsetof(struct_v4l2_frmsize_stepwise, step_height), +"struct v4l2_frmsize_stepwise size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_V4L2_FRMSIZE_STEPWISE_STEP_HEIGHT */ +#endif /* HAVE_STRUCT_V4L2_FRMSIZE_STEPWISE */ + +#ifdef HAVE_STRUCT_V4L2_FRMSIZEENUM +# ifdef HAVE_STRUCT_V4L2_FRMSIZEENUM_RESERVED +static_assert(sizeof(struct v4l2_frmsizeenum) == sizeof(struct_v4l2_frmsizeenum), + "struct v4l2_frmsizeenum size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct v4l2_frmsizeenum) <= offsetof(struct_v4l2_frmsizeenum, reserved), +"struct v4l2_frmsizeenum size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_V4L2_FRMSIZEENUM_RESERVED */ +#endif /* HAVE_STRUCT_V4L2_FRMSIZEENUM */ + +#ifdef HAVE_STRUCT_V4L2_FRMIVAL_STEPWISE +# ifdef HAVE_STRUCT_V4L2_FRMIVAL_STEPWISE_STEP +static_assert(sizeof(struct v4l2_frmival_stepwise) == sizeof(struct_v4l2_frmival_stepwise), + "struct v4l2_frmival_stepwise size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct v4l2_frmival_stepwise) <= offsetof(struct_v4l2_frmival_stepwise, step), +"struct v4l2_frmival_stepwise size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_V4L2_FRMIVAL_STEPWISE_STEP */ +#endif /* HAVE_STRUCT_V4L2_FRMIVAL_STEPWISE */ + +#ifdef HAVE_STRUCT_V4L2_FRMIVALENUM +# ifdef HAVE_STRUCT_V4L2_FRMIVALENUM_RESERVED +static_assert(sizeof(struct v4l2_frmivalenum) == sizeof(struct_v4l2_frmivalenum), + "struct v4l2_frmivalenum size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct v4l2_frmivalenum) <= offsetof(struct_v4l2_frmivalenum, reserved), +"struct v4l2_frmivalenum size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_V4L2_FRMIVALENUM_RESERVED */ +#endif /* HAVE_STRUCT_V4L2_FRMIVALENUM */ + +#ifdef HAVE_STRUCT_V4L2_CREATE_BUFFERS +# ifdef HAVE_STRUCT_V4L2_CREATE_BUFFERS_RESERVED +static_assert(sizeof(struct v4l2_create_buffers) == sizeof(struct_v4l2_create_buffers), + "struct v4l2_create_buffers size mismatch, please update the decoder or fix the kernel"); +# else +static_assert(sizeof(struct v4l2_create_buffers) <= offsetof(struct_v4l2_create_buffers, reserved), +"struct v4l2_create_buffers size mismatch, please update the decoder or fix the kernel"); +# endif /* HAVE_STRUCT_V4L2_CREATE_BUFFERS_RESERVED */ +#endif /* HAVE_STRUCT_V4L2_CREATE_BUFFERS */ diff --git a/types/check-v4l2.m4 b/types/check-v4l2.m4 new file mode 100644 index 00000000..9798d51e --- /dev/null +++ b/types/check-v4l2.m4 @@ -0,0 +1,194 @@ +dnl Generated by ./types/gen.sh from ./types/v4l2.h; do not edit. +AC_DEFUN([st_CHECK_TYPES_V4L2],[ +AC_CHECK_HEADERS([linux/videodev2.h],[ + +AC_CHECK_TYPES([struct v4l2_capability], +[AC_CHECK_MEMBERS([struct v4l2_capability.reserved],,,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ]) + +AC_CHECK_TYPES([struct v4l2_pix_format], +[AC_CHECK_MEMBERS([struct v4l2_pix_format.xfer_func],,,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ]) + +AC_CHECK_TYPES([struct v4l2_plane_pix_format], +[AC_CHECK_MEMBERS([struct v4l2_plane_pix_format.reserved],,,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ]) + +AC_CHECK_TYPES([struct v4l2_clip], +[AC_CHECK_MEMBERS([struct v4l2_clip.next],,,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ]) + +AC_CHECK_TYPES([struct v4l2_window], +[AC_CHECK_MEMBERS([struct v4l2_window.global_alpha],,,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ]) + +AC_CHECK_TYPES([struct v4l2_vbi_format], +[AC_CHECK_MEMBERS([struct v4l2_vbi_format.reserved],,,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ]) + +AC_CHECK_TYPES([struct v4l2_sliced_vbi_format], +[AC_CHECK_MEMBERS([struct v4l2_sliced_vbi_format.reserved],,,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ]) + +AC_CHECK_TYPES([struct v4l2_sliced_vbi_cap], +[AC_CHECK_MEMBERS([struct v4l2_sliced_vbi_cap.reserved],,,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ]) + +AC_CHECK_TYPES([struct v4l2_format], +[AC_CHECK_MEMBERS([struct v4l2_format.fmt],,,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ]) + +AC_CHECK_TYPES([struct v4l2_area], +[AC_CHECK_MEMBERS([struct v4l2_area.height],,,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ]) + +AC_CHECK_TYPES([struct v4l2_ext_controls], +[AC_CHECK_MEMBERS([struct v4l2_ext_controls.controls],,,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ]) + +AC_CHECK_TYPES([struct v4l2_frmsize_discrete], +[AC_CHECK_MEMBERS([struct v4l2_frmsize_discrete.height],,,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ]) + +AC_CHECK_TYPES([struct v4l2_frmsize_stepwise], +[AC_CHECK_MEMBERS([struct v4l2_frmsize_stepwise.step_height],,,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ]) + +AC_CHECK_TYPES([struct v4l2_frmsizeenum], +[AC_CHECK_MEMBERS([struct v4l2_frmsizeenum.reserved],,,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ]) + +AC_CHECK_TYPES([struct v4l2_frmival_stepwise], +[AC_CHECK_MEMBERS([struct v4l2_frmival_stepwise.step],,,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ]) + +AC_CHECK_TYPES([struct v4l2_frmivalenum], +[AC_CHECK_MEMBERS([struct v4l2_frmivalenum.reserved],,,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ]) + +AC_CHECK_TYPES([struct v4l2_create_buffers], +[AC_CHECK_MEMBERS([struct v4l2_create_buffers.reserved],,,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ])],,[AC_INCLUDES_DEFAULT +#include +#include +#include +#include ]) +],[],[AC_INCLUDES_DEFAULT +#include +#include +#include ])]) diff --git a/types/cryptouser.h b/types/cryptouser.h new file mode 100644 index 00000000..31aea9ca --- /dev/null +++ b/types/cryptouser.h @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2019-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#ifndef STRACE_TYPES_CRYPTOUSER_H +# define STRACE_TYPES_CRYPTOUSER_H + +# ifdef HAVE_LINUX_CRYPTOUSER_H +# include +# endif + +# ifndef CRYPTO_MAX_NAME +# define CRYPTO_MAX_NAME 64 +# endif + +typedef struct { + char cru_name[CRYPTO_MAX_NAME]; + char cru_driver_name[CRYPTO_MAX_NAME]; + char cru_module_name[CRYPTO_MAX_NAME]; + uint32_t cru_type; + uint32_t cru_mask; + int32_t cru_refcnt; + uint32_t cru_flags; +} struct_crypto_user_alg; + +typedef struct { + char type[CRYPTO_MAX_NAME]; + uint32_t blocksize; + uint32_t digestsize; +} struct_crypto_report_hash; + +typedef struct { + char type[CRYPTO_MAX_NAME]; + uint32_t blocksize; + uint32_t min_keysize; + uint32_t max_keysize; +} struct_crypto_report_cipher; + +typedef struct { + char type[CRYPTO_MAX_NAME]; + char geniv[CRYPTO_MAX_NAME]; + uint32_t blocksize; + uint32_t min_keysize; + uint32_t max_keysize; + uint32_t ivsize; +} struct_crypto_report_blkcipher; + +typedef struct { + char type[CRYPTO_MAX_NAME]; + char geniv[CRYPTO_MAX_NAME]; + uint32_t blocksize; + uint32_t maxauthsize; + uint32_t ivsize; +} struct_crypto_report_aead; + +typedef struct { + char type[CRYPTO_MAX_NAME]; + uint32_t seedsize; +} struct_crypto_report_rng; + +#endif /* !STRACE_TYPES_CRYPTOUSER_H */ diff --git a/types/evdev.h b/types/evdev.h new file mode 100644 index 00000000..06e8183e --- /dev/null +++ b/types/evdev.h @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2019-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#ifndef STRACE_TYPES_EVDEV_H +# define STRACE_TYPES_EVDEV_H + +# ifdef HAVE_LINUX_INPUT_H +# include +# endif + +typedef struct { + int32_t value; + int32_t minimum; + int32_t maximum; + int32_t fuzz; + int32_t flat; + int32_t resolution; /**< Added by Linux commit v2.6.31-rc1~100^2~1 */ +} struct_input_absinfo; + +/** Added by Linux commit v2.6.37-rc1~5^2~3^2~47 */ +typedef struct { + uint8_t flags; + uint8_t len; + uint16_t index; + uint32_t keycode; + uint8_t scancode[32]; +} struct_input_keymap_entry; + +/** Added by Linux commit v4.4-rc1~11^2~3^2~2 */ +typedef struct { + uint32_t type; + uint32_t codes_size; + uint64_t codes_ptr; +} struct_input_mask; + +#endif /* !STRACE_TYPES_EVDEV_H */ diff --git a/types/find_last_type_fields.awk b/types/find_last_type_fields.awk new file mode 100644 index 00000000..d0cae0df --- /dev/null +++ b/types/find_last_type_fields.awk @@ -0,0 +1,24 @@ +#!/bin/gawk -f +# +# Copyright (c) 2018-2020 Dmitry V. Levin +# All rights reserved. +# +# SPDX-License-Identifier: LGPL-2.1-or-later + +/^typedef struct {$/ { + in_struct = 1 + last_field = "" + next +} + +(in_struct == 1) { + if (match($0, /^} struct_([a-z][a-z_0-9]*);$/, a)) { + in_struct = 0 + print a[1] "." last_field + next + } + if (match($0, /^[[:space:]]+[^];[:space:]:\/[][^];:[]*[[:space:]]+([^][:space:];:[]+)(\[[^];:[]*\])?;.*$/, a)) { + last_field = a[1] + next + } +} diff --git a/types/gen.sh b/types/gen.sh new file mode 100755 index 00000000..d9dce70f --- /dev/null +++ b/types/gen.sh @@ -0,0 +1,209 @@ +#!/bin/sh -efu +# +# Copyright (c) 2014-2015 Mike Frysinger +# Copyright (c) 2014-2015 Dmitry V. Levin +# Copyright (c) 2014-2020 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: LGPL-2.1-or-later + +[ "x${D:-0}" != x1 ] || set -x + +export LC_ALL=C + +usage() +{ + cat < + +Generate .c and .m4 files from (a file or dir of files) +and write the generated files to and . +EOF + exit 1 +} + +gen_c_check() +{ + local input output + input="$1"; shift + output="$1"; shift + + local type_fields + type_fields="$(gawk -f "${0%/*}/find_last_type_fields.awk" "$input")" + [ -n "$type_fields" ] || { + echo >&2 "$input: no types found" + return 1 + } + + echo "generating $output" + { + cat <<-EOF + /* Generated by $0 from $input; do not edit. */ + #include "defs.h" + #include "static_assert.h" + #include "types/${input##*/}" + EOF + local type_field type field TYPE FIELD + for type_field in $type_fields; do + type="${type_field%%.*}" + field="${type_field#*.}" + TYPE="$(printf %s "$type" |tr '[:lower:] ' '[:upper:]_')" + FIELD="$(printf %s "$field" |tr '[:lower:].' '[:upper:]_')" + + cat <<-EOF + + #ifdef HAVE_STRUCT_$TYPE + # ifdef HAVE_STRUCT_${TYPE}_$FIELD + static_assert(sizeof(struct $type) == sizeof(struct_$type), + "struct $type size mismatch, please update the decoder or fix the kernel"); + # else + static_assert(sizeof(struct $type) <= offsetof(struct_$type, $field), + "struct $type size mismatch, please update the decoder or fix the kernel"); + # endif /* HAVE_STRUCT_${TYPE}_$FIELD */ + #endif /* HAVE_STRUCT_$TYPE */ + EOF + done + } > "$output" +} + +gen_m4_check() +{ + local input output macro + input="$1"; shift + output="$1"; shift + macro="$1"; shift + + local type_fields + type_fields="$(gawk -f "${0%/*}/find_last_type_fields.awk" "$input")" + [ -n "$type_fields" ] || { + echo >&2 "$input: no types found" + return 1 + } + + local header + header="$(sed -n 's/^#[[:space:]]*include[[:space:]]\+<\([^>]\+\)>.*/\1/p' "$input" | + tail -1)" + [ -n "$header" ] || { + echo >&2 "$input: no included headers found" + return 1 + } + + local inc_expr1 inc_expr2 includes header_includes + inc_expr1='s/^#[[:space:]]*include[[:space:]]\+\(<[^>]\+>\).*/#include \1/p' + inc_expr2='s/^#[[:space:]]*include[[:space:]]\+"\([^"]\+\)".*/#include "\$srcdir\/\1"/p' + includes="$(sed -n "$inc_expr1; $inc_expr2" "$input")" + header_includes="$(printf %s "$includes" |sed '$d')" + + echo "generating $output" + { + cat <<-EOF + dnl Generated by $0 from $input; do not edit. + AC_DEFUN([$macro],[ + AC_CHECK_HEADERS([$header],[ + EOF + local type_field type field + for type_field in $type_fields; do + type="${type_field%%.*}" + field="${type_field#*.}" + cat <<-EOF + + AC_CHECK_TYPES([struct $type], + [AC_CHECK_MEMBERS([struct $type.$field],,,[AC_INCLUDES_DEFAULT + $includes])],,[AC_INCLUDES_DEFAULT + $includes]) + EOF + done + cat <<-EOF + ],[],[AC_INCLUDES_DEFAULT + $header_includes])]) + EOF + } > "$output" +} + +gen_m4_entry() +{ + local output + output="$1"; shift + echo "generating $output" + { + printf 'AC_DEFUN([st_CHECK_TYPES],[\n' + printf '\t%s\n' "$@" + printf '])\n' + } >"$output" +} + +gen_gitignore() +{ + local output + output="$1"; shift + echo "generating $output" + { + printf '/%s\n' .gitignore Makemodule.am st_check_types.m4 + printf '/check-%s.c\n' "$@" + printf '/check-%s.m4\n' "$@" + } >"$output" +} + +gen_makefile() +{ + local output + output="$1"; shift + echo "generating $output" + { + printf 'TYPES_HEADER_FILES = ' + [ $# -eq 0 ] || + printf 'types/%s.h ' "$@" + echo + printf 'TYPES_CHECK_FILES = ' + [ $# -eq 0 ] || + printf 'types/check-%s.c ' "$@" + echo + } >"$output" +} + +process_all() +{ + local dir + dir="${0%/*}" + + set +f + set -- "$dir"/*.h + set -f + + local f + local names= macros= + for f; do + [ -f "$f" ] || continue + local name macro + name=${f##*/} + name=${name%.h} + macro="st_CHECK_TYPES_$(printf %s "$name" |tr '[:lower:].' '[:upper:]_')" + gen_c_check "$f" "$dir/check-$name.c" + gen_m4_check "$f" "$dir/check-$name.m4" "$macro" + names="$names $name" + macros="$macros $macro" + done + gen_m4_entry "$dir/st_check_types.m4" $macros + gen_gitignore "$dir/.gitignore" $names + gen_makefile "$dir/Makemodule.am" $names +} + +process_one() +{ + local input output_c output_m4 name macro + input="$1"; shift + output_c="$1"; shift + output_m4="$1"; shift + + name=${input##*/} + name=${name%.h} + macro="st_CHECK_TYPES_$(printf %s "$name" |tr '[:lower:].' '[:upper:]_')" + gen_c_check "$input" "$output_c" + gen_m4_check "$input" "$output_m4" "$macro" +} + +case $# in + 0) process_all ;; + 3) process_one "$@" ;; + *) usage ;; +esac diff --git a/types/io_uring.h b/types/io_uring.h new file mode 100644 index 00000000..2fe1c13a --- /dev/null +++ b/types/io_uring.h @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2019-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#ifndef STRACE_TYPES_IO_URING_H +# define STRACE_TYPES_IO_URING_H + +# ifdef HAVE_LINUX_IO_URING_H +# include +# endif + +typedef struct { + uint32_t head; + uint32_t tail; + uint32_t ring_mask; + uint32_t ring_entries; + uint32_t flags; + uint32_t dropped; + uint32_t array; + uint32_t resv1; + uint64_t resv2; +} struct_io_sqring_offsets; + +typedef struct { + uint32_t head; + uint32_t tail; + uint32_t ring_mask; + uint32_t ring_entries; + uint32_t overflow; + uint32_t cqes; + /** Added by v5.8-rc1~190^2~22 */ uint32_t flags; + /** Added by v5.8-rc1~190^2~22 */ uint32_t resv1; + /** Added by v5.8-rc1~190^2~22 */ uint64_t resv2; +} struct_io_cqring_offsets; + +typedef struct { + uint32_t sq_entries; + uint32_t cq_entries; + uint32_t flags; + uint32_t sq_thread_cpu; + uint32_t sq_thread_idle; + uint32_t features; + uint32_t wq_fd; + uint32_t resv[3]; + struct_io_sqring_offsets sq_off; + struct_io_cqring_offsets cq_off; +} struct_io_uring_params; + +typedef struct { + uint32_t offset; + uint32_t resv; + uint64_t /* int * */ fds; +} struct_io_uring_files_update; + +typedef struct { + uint8_t op; + uint8_t resv; + uint16_t flags; /* IO_URING_OP_* flags */ + uint32_t resv2; +} struct_io_uring_probe_op; + +typedef struct { + uint8_t last_op; /* last opcode supported */ + uint8_t ops_len; /* length of ops[] array below */ + uint16_t resv; + uint32_t resv2[3]; + struct_io_uring_probe_op ops[0]; +} struct_io_uring_probe; + +#endif /* !STRACE_TYPES_IO_URING_H */ diff --git a/types/loop.h b/types/loop.h new file mode 100644 index 00000000..f5127b21 --- /dev/null +++ b/types/loop.h @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#ifndef STRACE_TYPES_LOOP_H +# define STRACE_TYPES_LOOP_H + +# include +# include + +typedef struct { + uint32_t fd; + uint32_t block_size; + struct loop_info64 info; + uint64_t __reserved[8]; +} struct_loop_config; + +#endif /* STRACE_TYPES_LOOP_H */ diff --git a/types/openat2.h b/types/openat2.h new file mode 100644 index 00000000..1d9dd705 --- /dev/null +++ b/types/openat2.h @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#ifndef STRACE_TYPES_OPENAT2_H +# define STRACE_TYPES_OPENAT2_H + +# ifdef HAVE_LINUX_OPENAT2_H +# include +# endif + +typedef struct { + uint64_t flags; + uint64_t mode; + uint64_t resolve; +} struct_open_how; + +#endif /* STRACE_TYPES_OPENAT2_H */ diff --git a/types/rtnl_link.h b/types/rtnl_link.h new file mode 100644 index 00000000..923df088 --- /dev/null +++ b/types/rtnl_link.h @@ -0,0 +1,94 @@ +/* + * Copyright (c) 2019-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#ifndef STRACE_TYPES_IF_LINK_H +# define STRACE_TYPES_IF_LINK_H + +/* + * used to require other headers be included beforehand, + * include "netlink.h" that pulls in all necessary headers. + */ +# include "netlink.h" + +/* + * These types are defined in nowadays, but that was not + * always the case in the past. Fortunately, when these types were moved + * out of , it was changed to include necessary headers + * for backwards compatibility. + */ +# include + +typedef struct { + uint32_t rx_packets; + uint32_t tx_packets; + uint32_t rx_bytes; + uint32_t tx_bytes; + uint32_t rx_errors; + uint32_t tx_errors; + uint32_t rx_dropped; + uint32_t tx_dropped; + uint32_t multicast; + uint32_t collisions; + uint32_t rx_length_errors; + uint32_t rx_over_errors; + uint32_t rx_crc_errors; + uint32_t rx_frame_errors; + uint32_t rx_fifo_errors; + uint32_t rx_missed_errors; + uint32_t tx_aborted_errors; + uint32_t tx_carrier_errors; + uint32_t tx_fifo_errors; + uint32_t tx_heartbeat_errors; + uint32_t tx_window_errors; + uint32_t rx_compressed; + uint32_t tx_compressed; + uint32_t rx_nohandler; /**< Added by v4.6-rc1~91^2~329^2~2 */ +} struct_rtnl_link_stats; + +/** Added by Linux commit v2.6.35-rc1~473^2~759 */ +typedef struct { + uint64_t rx_packets; + uint64_t tx_packets; + uint64_t rx_bytes; + uint64_t tx_bytes; + uint64_t rx_errors; + uint64_t tx_errors; + uint64_t rx_dropped; + uint64_t tx_dropped; + uint64_t multicast; + uint64_t collisions; + uint64_t rx_length_errors; + uint64_t rx_over_errors; + uint64_t rx_crc_errors; + uint64_t rx_frame_errors; + uint64_t rx_fifo_errors; + uint64_t rx_missed_errors; + uint64_t tx_aborted_errors; + uint64_t tx_carrier_errors; + uint64_t tx_fifo_errors; + uint64_t tx_heartbeat_errors; + uint64_t tx_window_errors; + uint64_t rx_compressed; + uint64_t tx_compressed; + uint64_t rx_nohandler; /**< Added by v4.6-rc1~91^2~329^2~2 */ +} struct_rtnl_link_stats64; + +/** Added by Linux commit v4.4-rc1~141^2~231^2~18 */ +typedef struct { + uint8_t prio[2]; + uint8_t addr[6]; +} struct_ifla_bridge_id; + +/** Added by Linux commit v2.6.35-rc1~473^2~33 */ +typedef struct { + uint8_t vsi_mgr_id; + uint8_t vsi_type_id[3]; + uint8_t vsi_type_version; + uint8_t pad[3]; +} struct_ifla_port_vsi; + +#endif /* !STRACE_TYPES_IF_LINK_H */ diff --git a/types/rtnl_mdb.h b/types/rtnl_mdb.h new file mode 100644 index 00000000..789140b9 --- /dev/null +++ b/types/rtnl_mdb.h @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2019-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#ifndef STRACE_TYPES_RTNL_MDB_H +# define STRACE_TYPES_RTNL_MDB_H + +/* struct_br_mdb_entry needs a definition of struct in6_addr. */ +# include + +# include + +/** Added by Linux commit v3.8-rc1~139^2~50 */ +typedef struct { + uint8_t family; /** Added by Linux commit v3.8-rc1~139^2~3 */ + uint32_t ifindex; +} struct_br_port_msg; + +/** Added by Linux commit v3.8-rc1~139^2~50 */ +typedef struct { + uint32_t ifindex; + uint8_t state; /** Added by Linux commit v3.8-rc1~40^2~30 */ + uint8_t flags; /** Added by Linux commit v4.6-rc1~91^2~309^2~2 */ + uint16_t vid; /** Added by Linux commit v4.3-rc1~96^2~365 */ + struct { + union { + uint32_t /* __be32 */ ip4; + struct in6_addr ip6; + } u; + uint16_t /* __be16 */ proto; + } addr; +} struct_br_mdb_entry; + +#endif /* !STRACE_TYPES_RTNL_MDB_H */ diff --git a/types/rtnl_neightbl.h b/types/rtnl_neightbl.h new file mode 100644 index 00000000..3bdd22a4 --- /dev/null +++ b/types/rtnl_neightbl.h @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2019-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#ifndef STRACE_TYPES_RTNL_NEIGHTBL_H +# define STRACE_TYPES_RTNL_NEIGHTBL_H + +/* + * used to require other headers be included beforehand, + * include "netlink.h" that pulls in all necessary headers. + */ +# include "netlink.h" + +/* + * These types are defined in nowadays, but that was not + * always the case in the past. Fortunately, when these types were moved + * out of , it was changed to include necessary headers + * for backwards compatibility. + */ +# include + +typedef struct { + uint16_t ndtc_key_len; + uint16_t ndtc_entry_size; + uint32_t ndtc_entries; + uint32_t ndtc_last_flush; + uint32_t ndtc_last_rand; + uint32_t ndtc_hash_rnd; + uint32_t ndtc_hash_mask; + uint32_t ndtc_hash_chain_gc; + uint32_t ndtc_proxy_qlen; +} struct_ndt_config; + +typedef struct { + uint64_t ndts_allocs; + uint64_t ndts_destroys; + uint64_t ndts_hash_grows; + uint64_t ndts_res_failed; + uint64_t ndts_lookups; + uint64_t ndts_hits; + uint64_t ndts_rcv_probes_mcast; + uint64_t ndts_rcv_probes_ucast; + uint64_t ndts_periodic_gc_runs; + uint64_t ndts_forced_gc_runs; + uint64_t ndts_table_fulls; /**< Added by v4.3-rc1~96^2~202 */ +} struct_ndt_stats; + +#endif /* !STRACE_TYPES_RTNL_NEIGHTBL_H */ diff --git a/types/rtnl_route.h b/types/rtnl_route.h new file mode 100644 index 00000000..a355e7f5 --- /dev/null +++ b/types/rtnl_route.h @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2019-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#ifndef STRACE_TYPES_RTNL_ROUTE_H +# define STRACE_TYPES_RTNL_ROUTE_H + +/* + * used to require other headers be included beforehand, + * include "netlink.h" that pulls in all necessary headers. + */ +# include "netlink.h" +# include + +/** Added by Linux commit v3.8-rc1~139^2~90 */ +typedef struct { + uint64_t mfcs_packets; + uint64_t mfcs_bytes; + uint64_t mfcs_wrong_if; +} struct_rta_mfc_stats; + +/** Added by Linux commit v4.1-rc1~128^2~350^2~1 */ +typedef struct { + uint16_t /* __kernel_sa_family_t */ rtvia_family; + uint8_t rtvia_addr[0]; +} struct_rtvia; + +#endif /* !STRACE_TYPES_RTNL_ROUTE_H */ diff --git a/types/st_check_types.m4 b/types/st_check_types.m4 new file mode 100644 index 00000000..233b4dcc --- /dev/null +++ b/types/st_check_types.m4 @@ -0,0 +1,14 @@ +AC_DEFUN([st_CHECK_TYPES],[ + st_CHECK_TYPES_BTRFS + st_CHECK_TYPES_CRYPTOUSER + st_CHECK_TYPES_EVDEV + st_CHECK_TYPES_IO_URING + st_CHECK_TYPES_LOOP + st_CHECK_TYPES_OPENAT2 + st_CHECK_TYPES_RTNL_LINK + st_CHECK_TYPES_RTNL_MDB + st_CHECK_TYPES_RTNL_NEIGHTBL + st_CHECK_TYPES_RTNL_ROUTE + st_CHECK_TYPES_TEE + st_CHECK_TYPES_V4L2 +]) diff --git a/types/tee.h b/types/tee.h new file mode 100644 index 00000000..ab3a25de --- /dev/null +++ b/types/tee.h @@ -0,0 +1,107 @@ +/* + * Copyright (c) 2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#ifndef STRACE_TYPES_TEE_H +# define STRACE_TYPES_TEE_H + +# include + +# ifdef HAVE_LINUX_TEE_H +# include +# else +# define TEE_IOCTL_UUID_LEN 16 +# endif + +typedef struct { + uint64_t buf_ptr; + uint64_t buf_len; +} struct_tee_ioctl_buf_data; + +typedef struct { + uint32_t cancel_id; + uint32_t session; +} struct_tee_ioctl_cancel_arg; + +typedef struct { + uint32_t session; +} struct_tee_ioctl_close_session_arg; + +typedef struct { + uint64_t size; + uint32_t flags; + int32_t id; +} struct_tee_ioctl_shm_alloc_data; + +/* Not in mainline */ +typedef struct { + int64_t fd; + uint64_t size; + uint32_t flags; + uint8_t _pad1[4]; + int32_t id; + uint8_t _pad2[4]; +} ATTRIBUTE_ALIGNED(8) struct_tee_ioctl_shm_register_fd_data; + +typedef struct { + uint64_t addr; + uint64_t length; + uint32_t flags; + int32_t id; +} struct_tee_ioctl_shm_register_data; + +typedef struct { + uint32_t impl_id; + uint32_t impl_caps; + uint32_t gen_caps; +} struct_tee_ioctl_version_data; + +typedef struct { + uint64_t attr; + uint64_t a; + uint64_t b; + uint64_t c; +} struct_tee_ioctl_param; + +typedef struct { + uint32_t func; + uint32_t session; + uint32_t cancel_id; + uint32_t ret; + uint32_t ret_origin; + uint32_t num_params; + /* num_params tells the actual number of element in params */ + struct_tee_ioctl_param params[]; +} struct_tee_ioctl_invoke_arg; + +typedef struct { + uint32_t func; + uint32_t num_params; + /* num_params tells the actual number of element in params */ + struct_tee_ioctl_param params[]; +} struct_tee_iocl_supp_recv_arg; + +typedef struct { + uint32_t ret; + uint32_t num_params; + /* num_params tells the actual number of element in params */ + struct_tee_ioctl_param params[]; +} struct_tee_iocl_supp_send_arg; + +typedef struct { + uint8_t uuid[TEE_IOCTL_UUID_LEN]; + uint8_t clnt_uuid[TEE_IOCTL_UUID_LEN]; + uint32_t clnt_login; + uint32_t cancel_id; + uint32_t session; + uint32_t ret; + uint32_t ret_origin; + uint32_t num_params; + /* num_params tells the actual number of element in params */ + struct_tee_ioctl_param params[]; +} struct_tee_ioctl_open_session_arg; + +#endif /* STRACE_TYPES_TEE_H */ diff --git a/types/v4l2.h b/types/v4l2.h new file mode 100644 index 00000000..0bfc9d2c --- /dev/null +++ b/types/v4l2.h @@ -0,0 +1,257 @@ +/* + * V4L2-related type definitions. + * + * Copyright (c) 2016-2020 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#ifndef STRACE_TYPES_V4L2_H +# define STRACE_TYPES_V4L2_H + +# include +# include +# include +# include + +typedef struct v4l2_framebuffer struct_v4l2_framebuffer; +typedef struct v4l2_input struct_v4l2_input; +typedef struct v4l2_standard struct_v4l2_standard; + + +typedef struct { + uint8_t driver[16]; + uint8_t card[32]; + uint8_t bus_info[32]; + uint32_t version; + uint32_t capabilities; + uint32_t device_caps; /**< Added by v3.4-rc1~110^2^2~259 */ + uint32_t reserved[3]; +} struct_v4l2_capability; + + +typedef struct { + uint32_t width; + uint32_t height; + uint32_t pixelformat; + uint32_t field; + uint32_t bytesperline; + uint32_t sizeimage; + uint32_t colorspace; /**< enum v4l2_colorspace */ + uint32_t priv; + /** Format flags (V4L2_PIX_FMT_FLAG_*), added by v3.17-rc1~112^2~326 */ + uint32_t flags; + union { + /** enum v4l2_ycbcr_encoding, added by v3.19-rc1~29^2~72 */ + uint32_t ycbcr_enc; + /** enum v4l2_hsv_encoding, added by v4.10-rc1~71^2^2~352 */ + uint32_t hsv_enc; + }; + /** enum v4l2_quantization, added by v3.19-rc1~29^2~72 */ + uint32_t quantization; + /** enum v4l2_xfer_func, added by Linux commit v4.2-rc1~107^2~136 */ + uint32_t xfer_func; +} struct_v4l2_pix_format; + +/** Added by Linux commit v2.6.39-rc1~86^2~437 */ +typedef struct { + uint32_t sizeimage; + uint32_t bytesperline; /**< Type has changed in v4.1-rc1~59^2~1^2~88 */ + uint16_t reserved[6]; +} struct_v4l2_plane_pix_format; + +/** Added by Linux commit v2.6.39-rc1~86^2~437 */ +typedef struct { + uint32_t width; + uint32_t height; + uint32_t pixelformat; + uint32_t field; + uint32_t colorspace; + + struct_v4l2_plane_pix_format plane_fmt[8 /* VIDEO_MAX_PLANES */]; + uint8_t num_planes; + /** Format flags (V4L2_PIX_FMT_FLAG_*), added by v3.17-rc1~112^2~326 */ + uint8_t flags; + union { + /** enum v4l2_ycbcr_encoding, added by v3.19-rc1~29^2~72 */ + uint8_t ycbcr_enc; + /** enum v4l2_hsv_encoding, added by v4.10-rc1~71^2^2~352 */ + uint8_t hsv_enc; + }; + /** enum v4l2_quantization, added by v3.19-rc1~29^2~72 */ + uint8_t quantization; + /** enum v4l2_xfer_func, added by Linux commit v4.2-rc1~107^2~136 */ + uint8_t xfer_func; + uint8_t reserved[7]; +} ATTRIBUTE_PACKED struct_v4l2_pix_format_mplane; + +typedef struct strace_v4l2_clip { + struct v4l2_rect c; + struct strace_v4l2_clip * next; +} struct_v4l2_clip; + +typedef struct { + struct v4l2_rect w; + uint32_t field; /* enum v4l2_field */ + uint32_t chromakey; + struct_v4l2_clip *clips; + uint32_t clipcount; + void *bitmap; + uint8_t global_alpha; /**< Added by v2.6.22-rc1~1118^2~179 */ +} struct_v4l2_window; + +typedef struct { + uint32_t sampling_rate; + uint32_t offset; + uint32_t samples_per_line; + uint32_t sample_format; /* V4L2_PIX_FMT_* */ + int32_t start[2]; + uint32_t count[2]; + uint32_t flags; /* V4L2_VBI_* */ + uint32_t reserved[2]; +} struct_v4l2_vbi_format; + +/** Added by Linux commit v2.6.16.28-rc1~3732 */ +typedef struct { + uint16_t service_set; + uint16_t service_lines[2][24]; + uint32_t io_size; + uint32_t reserved[2]; +} struct_v4l2_sliced_vbi_format; + +typedef struct { + uint16_t service_set; + uint16_t service_lines[2][24]; + uint32_t type; /**< enum v4l2_buf_type, added by v2.6.19-rc1~643^2~52 */ + uint32_t reserved[3]; +} struct_v4l2_sliced_vbi_cap; + +/** Added by Linux commits v3.15-rc1~85^2~213, v3.15-rc1~85^2~41 */ +typedef struct { + uint32_t pixelformat; + uint32_t buffersize; /**< Added by Linux commit v3.17-rc1~112^2~230 */ + uint8_t reserved[24]; +} ATTRIBUTE_PACKED struct_v4l2_sdr_format; + +/** Added by Linux commit v4.12-rc1~85^2~71 */ +typedef struct { + uint32_t dataformat; + uint32_t buffersize; +} ATTRIBUTE_PACKED struct_v4l2_meta_format; + +typedef struct { + uint32_t type; + union { + struct_v4l2_pix_format pix; + /** Added by Linux commit v2.6.39-rc1~86^2~437 */ + struct_v4l2_pix_format_mplane pix_mp; + struct_v4l2_window win; + struct_v4l2_vbi_format vbi; + /** Added by Linux commit v2.6.16.28-rc1~3732 */ + struct_v4l2_sliced_vbi_format sliced; + /** Added by v3.15-rc1~85^2~213, v3.15-rc1~85^2~41 */ + struct_v4l2_sdr_format sdr; + /** Added by Linux commit v4.12-rc1~85^2~71 */ + struct_v4l2_meta_format meta; + uint8_t raw_data[200]; + } fmt; +} struct_v4l2_format; + + +/** Added by Linux v5.5-rc1~143^2^2~225 */ +typedef struct { + __u32 width; + __u32 height; +} struct_v4l2_area; + +/** Added by Linux commit v2.6.18-rc1~862^2~18 */ +typedef struct { + uint32_t id; + uint32_t size; /* Added by v2.6.32-rc1~679^2~72 */ + uint32_t reserved2[1]; + union { + int32_t value; + int64_t value64; + char * string; /**< Added by v2.6.32-rc1~679^2~72 */ + uint8_t * p_u8; /**< Added by v3.17-rc1~112^2~343 */ + uint16_t * p_u16; /**< Added by v3.17-rc1~112^2~343 */ + uint32_t * p_u32; /**< Added by v3.17-rc1~112^2~112 */ + struct_v4l2_area * p_area; /**< Added by v5.5-rc1~143^2^2~51 */ + void * ptr; /**< Added by v3.17-rc1~112^2~363 */ + }; +} ATTRIBUTE_PACKED struct_v4l2_ext_control; + +/** Added by Linux commit v2.6.18-rc1~862^2~18 */ +typedef struct { + union { + uint32_t ctrl_class; + uint32_t which; + }; + uint32_t count; + uint32_t error_idx; + int32_t request_fd; /**< Added by Linux commit v4.20-rc1~51^2~44 */ + uint32_t reserved[1]; + struct_v4l2_ext_control * controls; +} struct_v4l2_ext_controls; + + +typedef struct { + uint32_t width; + uint32_t height; +} struct_v4l2_frmsize_discrete; + +typedef struct { + uint32_t min_width; + uint32_t max_width; + uint32_t step_width; + uint32_t min_height; + uint32_t max_height; + uint32_t step_height; +} struct_v4l2_frmsize_stepwise; + +/** Added by Linux commit v2.6.19-rc1~183 */ +typedef struct { + uint32_t index; + uint32_t pixel_format; + uint32_t type; /**< enum v4l2_frmsizetypes */ + union { + struct_v4l2_frmsize_discrete discrete; + struct_v4l2_frmsize_stepwise stepwise; + }; + uint32_t reserved[2]; +} struct_v4l2_frmsizeenum; + +typedef struct { + struct v4l2_fract min; + struct v4l2_fract max; + struct v4l2_fract step; +} struct_v4l2_frmival_stepwise; + +typedef struct { + uint32_t index; + uint32_t pixel_format; + uint32_t width; + uint32_t height; + uint32_t type; /**< enum v4l2_frmivaltypes */ + union { + struct v4l2_fract discrete; + struct_v4l2_frmival_stepwise stepwise; + }; + uint32_t reserved[2]; +} struct_v4l2_frmivalenum; + + +typedef struct { + uint32_t index; + uint32_t count; + uint32_t memory; + struct_v4l2_format format; + /** V4L2_BUF_CAP_*, added by Linux commit v4.20-rc1~51^2~14 */ + uint32_t capabilities; + /** V4L2_FLAG_MEMORY_NON_CONSISTENT, added by Linux commit v5.9-rc1~94^2~295 */ + uint32_t flags; + uint32_t reserved[6]; +} struct_v4l2_create_buffers; + +#endif /* STRACE_TYPES_V4L2_H */ diff --git a/ucopy.c b/ucopy.c index 7db49c4a..59af8641 100644 --- a/ucopy.c +++ b/ucopy.c @@ -6,7 +6,7 @@ * Copyright (c) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation * Linux for s390 port by D.J. Barrow * - * Copyright (c) 1999-2018 The strace developers. + * Copyright (c) 1999-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -14,7 +14,6 @@ #include "defs.h" #include -#include #include "scno.h" #include "ptrace.h" @@ -42,24 +41,15 @@ static ssize_t strace_process_vm_readv(pid_t pid, #endif /* !HAVE_PROCESS_VM_READV */ static ssize_t -vm_read_mem(const pid_t pid, void *const laddr, - const kernel_ulong_t raddr, const size_t len) +process_read_mem(const pid_t pid, void *const laddr, + void *const raddr, const size_t len) { - const unsigned long truncated_raddr = raddr; - -#if SIZEOF_LONG < SIZEOF_KERNEL_LONG_T - if (raddr != (kernel_ulong_t) truncated_raddr) { - errno = EIO; - return -1; - } -#endif - const struct iovec local = { .iov_base = laddr, .iov_len = len }; const struct iovec remote = { - .iov_base = (void *) truncated_raddr, + .iov_base = raddr, .iov_len = len }; @@ -70,6 +60,119 @@ vm_read_mem(const pid_t pid, void *const laddr, return rc; } +static int cached_idx = -1; +static unsigned long cached_raddr[4]; + +void +invalidate_umove_cache(void) +{ + cached_idx = -1; +} + +static int +get_next_unused_idx(void) +{ + return (cached_idx + 1) % ARRAY_SIZE(cached_raddr); +} + +static int +lookup_cached_raddr_idx(const unsigned long raddr) +{ + if (cached_idx >= 0) { + for (int i = cached_idx; i >= 0; --i) + if (raddr == cached_raddr[i]) + return i; + for (int i = (int) ARRAY_SIZE(cached_raddr) - 1; + i > cached_idx; --i) + if (raddr == cached_raddr[i]) + return i; + } + return -1; +} + +static void +set_cached_raddr_idx(const unsigned long raddr, const int idx) +{ + if (cached_idx < 0) + memset(cached_raddr, 0, sizeof(cached_raddr)); + cached_raddr[idx] = raddr; + cached_idx = idx; +} + +static ssize_t +vm_read_mem(const pid_t pid, void *laddr, + const kernel_ulong_t kraddr, size_t len) +{ + if (!len) + return len; + + unsigned long taddr = kraddr; + +#if SIZEOF_LONG < SIZEOF_KERNEL_LONG_T + if (kraddr != (kernel_ulong_t) taddr) { + errno = EIO; + return -1; + } +#endif + + const size_t page_size = get_pagesize(); + const size_t page_mask = page_size - 1; + unsigned long page_start = taddr & ~page_mask; + const unsigned long page_after_last = + (taddr + len + page_mask) & ~page_mask; + + if (!page_start || + page_after_last < page_start || + page_after_last - page_start > ARRAY_SIZE(cached_raddr) * page_size) + return process_read_mem(pid, laddr, (void *) taddr, len); + + size_t total_read = 0; + + for (;;) { + static char *buf[ARRAY_SIZE(cached_raddr)]; + int idx = lookup_cached_raddr_idx(page_start); + + if (idx == -1) { + idx = get_next_unused_idx(); + + if (!buf[idx]) + buf[idx] = xmalloc(page_size); + + const ssize_t rc = + process_read_mem(pid, buf[idx], + (void *) page_start, page_size); + if (rc < 0) + return total_read ? (ssize_t) total_read : rc; + + set_cached_raddr_idx(page_start, idx); + } + + const unsigned long offset = taddr - page_start; + size_t copy_len, next_len; + + if (len <= page_size - offset) { + copy_len = len; + next_len = 0; + } else { + copy_len = page_size - offset; + next_len = len - copy_len; + } + + memcpy(laddr, buf[idx] + offset, copy_len); + total_read += copy_len; + + if (!next_len) + break; + + len = next_len; + laddr += copy_len; + page_start += page_size; + taddr = page_start; + } + + return total_read; +} + static bool tracee_addr_is_invalid(kernel_ulong_t addr) { @@ -107,14 +210,16 @@ umoven_peekdata(const int pid, kernel_ulong_t addr, unsigned int len, case EFAULT: case EIO: case EPERM: /* address space is inaccessible */ if (nread) { - perror_msg("umoven: short read (%u < %u) @0x%" PRI_klx, - nread, nread + len, addr - nread); + perror_func_msg("short read (%u < %u)" + " @0x%" PRI_klx, + nread, nread + len, + addr - nread); } return -1; default: /* all the rest is strange and should be reported */ - perror_msg("umoven: PTRACE_PEEKDATA pid:%d @0x%" PRI_klx, - pid, addr); + perror_func_msg("pid:%d @0x%" PRI_klx, + pid, addr); return -1; } @@ -150,8 +255,8 @@ umoven(struct tcb *const tcp, kernel_ulong_t addr, unsigned int len, if ((unsigned int) r == len) return 0; if (r >= 0) { - error_msg("umoven: short read (%u < %u) @0x%" PRI_klx, - (unsigned int) r, len, addr); + error_func_msg("short read (%u < %u) @0x%" PRI_klx, + (unsigned int) r, len, addr); return -1; } switch (errno) { @@ -167,8 +272,7 @@ umoven(struct tcb *const tcp, kernel_ulong_t addr, unsigned int len, return -1; default: /* all the rest is strange and should be reported */ - perror_msg("process_vm_readv: pid:%d @0x%" PRI_klx, - pid, addr); + perror_func_msg("pid:%d @0x%" PRI_klx, pid, addr); return -1; } } @@ -203,14 +307,16 @@ umovestr_peekdata(const int pid, kernel_ulong_t addr, unsigned int len, case EFAULT: case EIO: case EPERM: /* address space is inaccessible */ if (nread) { - perror_msg("umovestr: short read (%d < %d) @0x%" PRI_klx, - nread, nread + len, addr - nread); + perror_func_msg("short read (%d < %d)" + " @0x%" PRI_klx, + nread, nread + len, + addr - nread); } return -1; default: /* all the rest is strange and should be reported */ - perror_msg("umovestr: PTRACE_PEEKDATA pid:%d @0x%" PRI_klx, - pid, addr); + perror_func_msg("pid:%d @0x%" PRI_klx, + pid, addr); return -1; } @@ -290,16 +396,17 @@ umovestr(struct tcb *const tcp, kernel_ulong_t addr, unsigned int len, case EFAULT: case EIO: /* address space is inaccessible */ if (nread) - perror_msg("umovestr: short read (%d < %d) @0x%" PRI_klx, - nread, nread + len, addr - nread); + perror_func_msg("short read (%d < %d)" + " @0x%" PRI_klx, + nread, nread + len, + addr - nread); return -1; case ESRCH: /* the process is gone */ return -1; default: /* all the rest is strange and should be reported */ - perror_msg("process_vm_readv: pid:%d @0x%" PRI_klx, - pid, addr); + perror_func_msg("pid:%d @0x%" PRI_klx, pid, addr); return -1; } } diff --git a/unwind-libdw.c b/unwind-libdw.c index d9fa79ca..a16cdce7 100644 --- a/unwind-libdw.c +++ b/unwind-libdw.c @@ -8,7 +8,7 @@ * * Copyright (c) 2014-2018 Mark Wielaard * Copyright (c) 2018 Masatake YAMATO - * Copyright (c) 2018 The strace developers. + * Copyright (c) 2018-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -17,14 +17,37 @@ #include "defs.h" #include "unwind.h" #include "mmap_notify.h" +#include "static_assert.h" #include +#define STRACE_UW_CACHE_SIZE 2048 +#define STRACE_UW_CACHE_ASSOC 32 +static_assert(STRACE_UW_CACHE_SIZE % STRACE_UW_CACHE_ASSOC == 0, + "STRACE_UW_CACHE_SIZE % STRACE_UW_CACHE_ASSOC != 0"); + +struct cache_entry { + /* key */ + Dwarf_Addr pc; + unsigned long long generation; + + /* value */ + const char *modname; + const char *symname; + GElf_Off off; + Dwarf_Addr true_offset; + + /* replacement */ + unsigned long long last_use; +}; + struct ctx { Dwfl *dwfl; - unsigned int last_proc_updating; + unsigned long long last_proc_updating; + struct cache_entry cache[STRACE_UW_CACHE_SIZE]; }; -static unsigned int mapping_generation; +static unsigned long long mapping_generation = 1; +static unsigned long long uwcache_clock; static void update_mapping_generation(struct tcb *tcp, void *unused) @@ -69,7 +92,8 @@ tcb_init(struct tcb *tcp) struct ctx *ctx = xmalloc(sizeof(*ctx)); ctx->dwfl = dwfl; - ctx->last_proc_updating = 0; + ctx->last_proc_updating = mapping_generation - 1; + memset(ctx->cache, 0, sizeof(ctx->cache)); return ctx; } @@ -113,8 +137,34 @@ struct frame_user_data { unwind_error_action_fn error_action; void *data; int stack_depth; + struct ctx *ctx; }; +static bool +find_bucket(struct ctx *ctx, Dwarf_Addr pc, struct cache_entry **res) { + unsigned int idx = pc & ((STRACE_UW_CACHE_SIZE-1) & + ~(STRACE_UW_CACHE_ASSOC-1)); + struct cache_entry *unused = NULL; + struct cache_entry *lru = ctx->cache + idx; + for (unsigned int i = 0; i < STRACE_UW_CACHE_ASSOC; ++i) { + struct cache_entry *ce = ctx->cache + (idx + i); + if (ce->generation == mapping_generation && ce->pc == pc) { + ce->last_use = uwcache_clock++; + *res = ce; + return true; + } + if (ce->generation != mapping_generation) { + unused = ce; + continue; + } + if (ce->last_use < lru->last_use) + lru = ce; + } + *res = unused ? unused : lru; + + return false; +} + static int frame_callback(Dwfl_Frame *state, void *arg) { @@ -130,24 +180,40 @@ frame_callback(Dwfl_Frame *state, void *arg) if (!isactivation) pc--; - Dwfl *dwfl = dwfl_thread_dwfl(dwfl_frame_thread(state)); - Dwfl_Module *mod = dwfl_addrmodule(dwfl, pc); - GElf_Off off = 0; - - if (mod != NULL) { - const char *modname = NULL; - const char *symname = NULL; - GElf_Sym sym; - Dwarf_Addr true_offset = pc; - - modname = dwfl_module_info(mod, NULL, NULL, NULL, NULL, - NULL, NULL, NULL); - symname = dwfl_module_addrinfo(mod, pc, &off, &sym, - NULL, NULL, NULL); - dwfl_module_relocate_address(mod, &true_offset); - user_data->call_action(user_data->data, modname, symname, - off, true_offset); + struct cache_entry *ce; + if (find_bucket(user_data->ctx, pc, &ce)) { + user_data->call_action(user_data->data, + ce->modname, ce->symname, + ce->off, ce->true_offset); + } else { + Dwfl *dwfl = dwfl_thread_dwfl(dwfl_frame_thread(state)); + Dwfl_Module *mod = dwfl_addrmodule(dwfl, pc); + GElf_Off off = 0; + + if (mod != NULL) { + const char *modname = NULL; + const char *symname = NULL; + GElf_Sym sym; + Dwarf_Addr true_offset = pc; + + modname = dwfl_module_info(mod, NULL, NULL, NULL, NULL, + NULL, NULL, NULL); + symname = dwfl_module_addrinfo(mod, pc, &off, &sym, + NULL, NULL, NULL); + dwfl_module_relocate_address(mod, &true_offset); + user_data->call_action(user_data->data, modname, symname, + off, true_offset); + + ce->generation = mapping_generation; + ce->pc = pc; + ce->modname = modname; + ce->symname = symname; + ce->off = off; + ce->true_offset = true_offset; + ce->last_use = uwcache_clock++; + } } + /* Max number of frames to print reached? */ if (user_data->stack_depth-- == 0) return DWARF_CB_ABORT; @@ -170,6 +236,7 @@ tcb_walk(struct tcb *tcp, .error_action = error_action, .data = data, .stack_depth = 256, + .ctx = ctx, }; flush_cache_maybe(tcp); diff --git a/upeek.c b/upeek.c index 0618f270..b28b73cc 100644 --- a/upeek.c +++ b/upeek.c @@ -6,7 +6,7 @@ * Copyright (c) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation * Linux for s390 port by D.J. Barrow * - * Copyright (c) 1999-2018 The strace developers. + * Copyright (c) 1999-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -23,10 +23,9 @@ upeek(struct tcb *tcp, unsigned long off, kernel_ulong_t *res) errno = 0; val = ptrace(PTRACE_PEEKUSER, (pid_t) tcp->pid, (void *) off, 0); if (val == -1 && errno) { - if (errno != ESRCH) { - perror_msg("upeek: PTRACE_PEEKUSER pid:%d @0x%lx)", - tcp->pid, off); - } + if (errno != ESRCH) + perror_func_msg("PTRACE_PEEKUSER pid:%d @0x%lx)", + tcp->pid, off); return -1; } *res = (unsigned long) val; diff --git a/upoke.c b/upoke.c index ae532e48..bb629c54 100644 --- a/upoke.c +++ b/upoke.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2016 Dmitry V. Levin - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -15,8 +15,8 @@ upoke(struct tcb *tcp, unsigned long off, kernel_ulong_t val) { if (ptrace_pokeuser(tcp->pid, off, val) < 0) { if (errno != ESRCH) - perror_msg("upoke: PTRACE_POKEUSER pid:%d @%#lx)", - tcp->pid, off); + perror_func_msg("PTRACE_POKEUSER pid:%d @%#lx)", + tcp->pid, off); return -1; } return 0; diff --git a/ustat.c b/ustat.c index 814ed431..2651af58 100644 --- a/ustat.c +++ b/ustat.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2017 JingPiao Chen - * Copyright (c) 2017-2018 The strace developers. + * Copyright (c) 2017-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -15,6 +15,8 @@ typedef struct ustat struct_ustat; #include MPERS_DEFS +#include "print_fields.h" + SYS_FUNC(ustat) { if (entering(tcp)) @@ -24,10 +26,11 @@ SYS_FUNC(ustat) #ifdef HAVE_USTAT_H struct_ustat ust; - if (!umove_or_printaddr(tcp, tcp->u_arg[1], &ust)) - tprintf("{f_tfree=%llu, f_tinode=%llu}", - zero_extend_signed_to_ull(ust.f_tfree), - zero_extend_signed_to_ull(ust.f_tinode)); + if (!umove_or_printaddr(tcp, tcp->u_arg[1], &ust)) { + PRINT_FIELD_U("{", ust, f_tfree); + PRINT_FIELD_U(", ", ust, f_tinode); + tprints("}"); + } #else /* !HAVE_USTAT_H */ printaddr(tcp->u_arg[1]); #endif /* HAVE_USTAT_H */ diff --git a/util.c b/util.c index fa384c59..481144bf 100644 --- a/util.c +++ b/util.c @@ -6,7 +6,7 @@ * Copyright (c) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation * Linux for s390 port by D.J. Barrow * - * Copyright (c) 1999-2019 The strace developers. + * Copyright (c) 1999-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -24,11 +24,62 @@ #include #include "largefile_wrappers.h" +#include "number_set.h" #include "print_utils.h" #include "static_assert.h" +#include "string_to_uint.h" #include "xlat.h" #include "xstring.h" +const struct xlat_data * +find_xlat_val_ex(const struct xlat_data *items, const char *s, size_t num_items, + unsigned int flags) +{ + for (size_t i = 0; i < num_items; i++) { + if (!(flags & FXL_CASE_SENSITIVE ? strcmp + : strcasecmp)(items[i].str, s)) + return items + i; + } + + return NULL; +} + +uint64_t +find_arg_val_(const char *arg, const struct xlat_data *strs, size_t strs_size, + uint64_t default_val, uint64_t not_found) +{ + if (!arg) + return default_val; + + const struct xlat_data *res = find_xlat_val_ex(strs, arg, strs_size, 0); + + return res ? res->val : not_found; +} + +int +str2timescale_ex(const char *arg, int empty_dflt, int null_dflt, + int *width) +{ + static const struct xlat_data units[] = { + { 1000000000U | (0ULL << 32), "s" }, + { 1000000U | (3ULL << 32), "ms" }, + { 1000U | (6ULL << 32), "us" }, + { 1U | (9ULL << 32), "ns" }, + }; + + if (!arg) + return null_dflt; + if (!arg[0]) + return empty_dflt; + + uint64_t res = find_arg_val(arg, units, null_dflt, -1ULL); + + if (width && res != -1ULL) + *width = res >> 32; + + return res & 0xffffffff; +} + int ts_nz(const struct timespec *a) { @@ -76,7 +127,7 @@ ts_sub(struct timespec *tv, const struct timespec *a, const struct timespec *b) } void -ts_div(struct timespec *tv, const struct timespec *a, int n) +ts_div(struct timespec *tv, const struct timespec *a, uint64_t n) { long long nsec = (a->tv_sec % n * 1000000000LL + a->tv_nsec + n / 2) / n; tv->tv_sec = a->tv_sec / n + nsec / 1000000000; @@ -84,13 +135,72 @@ ts_div(struct timespec *tv, const struct timespec *a, int n) } void -ts_mul(struct timespec *tv, const struct timespec *a, int n) +ts_mul(struct timespec *tv, const struct timespec *a, uint64_t n) { long long nsec = a->tv_nsec * n; tv->tv_sec = a->tv_sec * n + nsec / 1000000000; tv->tv_nsec = nsec % 1000000000; } +const struct timespec * +ts_min(const struct timespec *a, const struct timespec *b) +{ + return ts_cmp(a, b) < 0 ? a : b; +} + +const struct timespec * +ts_max(const struct timespec *a, const struct timespec *b) +{ + return ts_cmp(a, b) > 0 ? a : b; +} + +int +parse_ts(const char *s, struct timespec *t) +{ + enum { NS_IN_S = 1000000000 }; + + static const char float_accept[] = "eE.-+0123456789"; + static const char int_accept[] = "+0123456789"; + + size_t float_len = strspn(s, float_accept); + size_t int_len = strspn(s, int_accept); + char *endptr = NULL; + double float_val = -1; + long long int_val = -1; + + if (float_len > int_len) { + errno = 0; + + float_val = strtod(s, &endptr); + + if (endptr == s || errno) + return -1; + if (float_val < 0) + return -1; + } else { + int_val = string_to_uint_ex(s, &endptr, LLONG_MAX, "smun"); + + if (int_val < 0) + return -1; + } + + int scale = str2timescale_sfx(endptr, NULL); + if (scale <= 0) + return -1; + + if (float_len > int_len) { + t->tv_sec = float_val / (NS_IN_S / scale); + t->tv_nsec = ((uint64_t) ((float_val - + (t->tv_sec * (NS_IN_S / scale))) + * scale)) % NS_IN_S; + } else { + t->tv_sec = int_val / (NS_IN_S / scale); + t->tv_nsec = (int_val % (NS_IN_S / scale)) * scale; + } + + return 0; +} + #if !defined HAVE_STPCPY char * stpcpy(char *dst, const char *src) @@ -159,10 +269,10 @@ getllval(struct tcb *tcp, unsigned long long *val, int arg_no) #if SIZEOF_KERNEL_LONG_T > 4 # ifndef current_klongsize if (current_klongsize < SIZEOF_KERNEL_LONG_T) { -# if defined(AARCH64) || defined(POWERPC64) +# if defined(AARCH64) || defined(POWERPC64) || defined(POWERPC64LE) /* Align arg_no to the next even number. */ arg_no = (arg_no + 1) & 0xe; -# endif /* AARCH64 || POWERPC64 */ +# endif /* AARCH64 || POWERPC64 || POWERPC64LE */ *val = ULONG_LONG(tcp->u_arg[arg_no], tcp->u_arg[arg_no + 1]); arg_no += 2; } else @@ -270,40 +380,29 @@ DEF_PRINTNUM(int64, uint64_t) DEF_PRINTNUM_ADDR(int64, uint64_t) DEF_PRINTPAIR(int64, uint64_t) -#ifndef current_wordsize bool -printnum_long_int(struct tcb *const tcp, const kernel_ulong_t addr, - const char *const fmt_long, const char *const fmt_int) +printnum_fd(struct tcb *const tcp, const kernel_ulong_t addr) { - if (current_wordsize > sizeof(int)) { - return printnum_int64(tcp, addr, fmt_long); - } else { - return printnum_int(tcp, addr, fmt_int); - } -} - -bool -printnum_addr_long_int(struct tcb *tcp, const kernel_ulong_t addr) -{ - if (current_wordsize > sizeof(int)) { - return printnum_addr_int64(tcp, addr); - } else { - return printnum_addr_int(tcp, addr); - } + int fd; + if (umove_or_printaddr(tcp, addr, &fd)) + return false; + tprints("["); + printfd(tcp, fd); + tprints("]"); + return true; } -#endif /* !current_wordsize */ -#ifndef current_klongsize bool -printnum_addr_klong_int(struct tcb *tcp, const kernel_ulong_t addr) +printnum_pid(struct tcb *const tcp, const kernel_ulong_t addr, enum pid_type type) { - if (current_klongsize > sizeof(int)) { - return printnum_addr_int64(tcp, addr); - } else { - return printnum_addr_int(tcp, addr); - } + int pid; + if (umove_or_printaddr(tcp, addr, &pid)) + return false; + tprints("["); + printpid(tcp, pid, type); + tprints("]"); + return true; } -#endif /* !current_klongsize */ /** * Prints time to a (static internal) buffer and returns pointer to it. @@ -402,7 +501,7 @@ getfdproto(struct tcb *tcp, int fd) if (fd < 0) return SOCK_PROTO_UNKNOWN; - xsprintf(path, "/proc/%u/fd/%u", tcp->pid, fd); + xsprintf(path, "/proc/%u/fd/%u", get_proc_pid(tcp), fd); r = getxattr(path, "system.sockprotoname", buf, bufsize - 1); if (r <= 0) return SOCK_PROTO_UNKNOWN; @@ -480,21 +579,87 @@ printdev(struct tcb *tcp, int fd, const char *path) return false; } +pid_t +pidfd_get_pid(pid_t pid_of_fd, int fd) +{ + int proc_pid = 0; + translate_pid(NULL, pid_of_fd, PT_TID, &proc_pid); + if (!proc_pid) + return -1; + + char fdi_path[sizeof("/proc/%u/fdinfo/%u") + 2 * sizeof(int) * 3]; + xsprintf(fdi_path, "/proc/%u/fdinfo/%u", proc_pid, fd); + + FILE *f = fopen_stream(fdi_path, "r"); + if (!f) + return -1; + + static const char pid_pfx[] = "Pid:\t"; + char *line = NULL; + size_t sz = 0; + pid_t pid = -1; + while (getline(&line, &sz, f) > 0) { + const char *pos = STR_STRIP_PREFIX(line, pid_pfx); + if (pos == line) + continue; + + pid = string_to_uint_ex(pos, NULL, INT_MAX, "\n"); + break; + } + + free(line); + fclose(f); + + return pid; +} + +static bool +printpidfd(pid_t pid_of_fd, int fd, const char *path) +{ + static const char pidfd_path[] = "anon_inode:[pidfd]"; + + if (strcmp(path, pidfd_path)) + return false; + + pid_t pid = pidfd_get_pid(pid_of_fd, fd); + if (pid <= 0) + return false; + + tprintf("pid:%d", pid); + return true; +} + void -printfd(struct tcb *tcp, int fd) +printfd_pid(struct tcb *tcp, pid_t pid, int fd) { char path[PATH_MAX + 1]; - if (show_fd_path && getfdpath(tcp, fd, path, sizeof(path)) >= 0) { - tprintf("%d<", fd); - if (show_fd_path <= 1 - || (!printsocket(tcp, fd, path) - && !printdev(tcp, fd, path))) { - print_quoted_string_ex(path, strlen(path), - QUOTE_OMIT_LEADING_TRAILING_QUOTES, "<>"); - } + if (pid > 0 && !number_set_array_is_empty(decode_fd_set, 0) + && getfdpath_pid(pid, fd, path, sizeof(path)) >= 0) { + tprintf("%d<", (int) fd); + if (is_number_in_set(DECODE_FD_SOCKET, decode_fd_set) && + printsocket(tcp, fd, path)) + goto printed; + if (is_number_in_set(DECODE_FD_DEV, decode_fd_set) && + printdev(tcp, fd, path)) + goto printed; + if (is_number_in_set(DECODE_FD_PIDFD, decode_fd_set) && + printpidfd(pid, fd, path)) + goto printed; + print_quoted_string_ex(path, strlen(path), + QUOTE_OMIT_LEADING_TRAILING_QUOTES, "<>"); + +printed: tprints(">"); - } else + } else { tprintf("%d", fd); + } +} + +void +printfd_pid_tracee_ns(struct tcb *tcp, pid_t pid, int fd) +{ + int strace_pid = translate_pid(tcp, pid, PT_TGID, NULL); + printfd_pid(tcp, strace_pid, fd); } /* @@ -857,7 +1022,7 @@ printstr_ex(struct tcb *const tcp, const kernel_ulong_t addr, */ ellipsis = string_quote(str, outstr, size, style, NULL) && len - && ((style & QUOTE_0_TERMINATED) + && ((style & (QUOTE_0_TERMINATED | QUOTE_EXPECT_TRAILING_0)) || len > max_strlen); tprints(outstr); @@ -867,6 +1032,49 @@ printstr_ex(struct tcb *const tcp, const kernel_ulong_t addr, return rc; } +bool +print_nonzero_bytes(struct tcb *const tcp, const char *prefix, + const kernel_ulong_t start_addr, + const unsigned int start_offs, + const unsigned int total_len, + const unsigned int style) +{ + if (start_offs >= total_len) + return false; + + const kernel_ulong_t addr = start_addr + start_offs; + const unsigned int len = total_len - start_offs; + const unsigned int size = MIN(len, max_strlen); + + char *str = malloc(len); + + if (!str) { + error_func_msg("memory exhausted when tried to allocate" + " %u bytes", len); + tprintf("%s???", prefix); + return true; + } + + bool ret = true; + + if (umoven(tcp, addr, len, str)) { + tprintf("%s???", prefix); + } else if (is_filled(str, 0, len)) { + ret = false; + } else { + tprints(prefix); + tprintf("/* bytes %u..%u */ ", start_offs, total_len - 1); + + print_quoted_string(str, size, style); + + if (size < len) + tprints("..."); + } + + free(str); + return ret; +} + void dumpiov_upto(struct tcb *const tcp, const int len, const kernel_ulong_t addr, kernel_ulong_t data_size) @@ -925,66 +1133,6 @@ dumpiov_upto(struct tcb *const tcp, const int len, const kernel_ulong_t addr, #undef iov } -#define ILOG2_ITER_(val_, ret_, bit_) \ - do { \ - typeof(ret_) shift_ = \ - ((val_) > ((((typeof(val_)) 1) \ - << (1 << (bit_))) - 1)) << (bit_); \ - (val_) >>= shift_; \ - (ret_) |= shift_; \ - } while (0) - -/** - * Calculate floor(log2(val)), with the exception of val == 0, for which 0 - * is returned as well. - * - * @param val 64-bit value to calculate integer base-2 logarithm for. - * @return (unsigned int) floor(log2(val)) if val > 0, 0 if val == 0. - */ -static inline unsigned int -ilog2_64(uint64_t val) -{ - unsigned int ret = 0; - - ILOG2_ITER_(val, ret, 5); - ILOG2_ITER_(val, ret, 4); - ILOG2_ITER_(val, ret, 3); - ILOG2_ITER_(val, ret, 2); - ILOG2_ITER_(val, ret, 1); - ILOG2_ITER_(val, ret, 0); - - return ret; -} - -/** - * Calculate floor(log2(val)), with the exception of val == 0, for which 0 - * is returned as well. - * - * @param val 32-bit value to calculate integer base-2 logarithm for. - * @return (unsigned int) floor(log2(val)) if val > 0, 0 if val == 0. - */ -static inline unsigned int -ilog2_32(uint32_t val) -{ - unsigned int ret = 0; - - ILOG2_ITER_(val, ret, 4); - ILOG2_ITER_(val, ret, 3); - ILOG2_ITER_(val, ret, 2); - ILOG2_ITER_(val, ret, 1); - ILOG2_ITER_(val, ret, 0); - - return ret; -} - -#undef ILOG2_ITER_ - -#if SIZEOF_KERNEL_LONG_T > 4 -# define ilog2_klong ilog2_64 -#else -# define ilog2_klong ilog2_32 -#endif - void dumpstr(struct tcb *const tcp, const kernel_ulong_t addr, const kernel_ulong_t len) @@ -1185,6 +1333,24 @@ print_uint64_array_member(struct tcb *tcp, void *elem_buf, size_t elem_size, return true; } +bool +print_xint32_array_member(struct tcb *tcp, void *elem_buf, size_t elem_size, + void *data) +{ + tprintf("%#" PRIx32, *(uint32_t *) elem_buf); + + return true; +} + +bool +print_xint64_array_member(struct tcb *tcp, void *elem_buf, size_t elem_size, + void *data) +{ + tprintf("%#" PRIx64, *(uint64_t *) elem_buf); + + return true; +} + /* * Iteratively fetch and print up to nmemb elements of elem_size size * from the array that starts at tracee's address start_addr. @@ -1220,14 +1386,13 @@ bool print_array_ex(struct tcb *const tcp, const kernel_ulong_t start_addr, const size_t nmemb, - void *const elem_buf, + void *elem_buf, const size_t elem_size, tfetch_mem_fn tfetch_mem_func, print_fn print_func, void *const opaque_data, unsigned int flags, const struct xlat *index_xlat, - size_t index_xlat_size, const char *index_dflt) { if (!start_addr) { @@ -1244,7 +1409,10 @@ print_array_ex(struct tcb *const tcp, const kernel_ulong_t end_addr = start_addr + size; if (end_addr <= start_addr || size / elem_size != nmemb) { - printaddr(start_addr); + if (tfetch_mem_func) + printaddr(start_addr); + else + tprints("???"); return false; } @@ -1254,19 +1422,25 @@ print_array_ex(struct tcb *const tcp, kernel_ulong_t cur; kernel_ulong_t idx = 0; enum xlat_style xlat_style = flags & XLAT_STYLE_MASK; + bool truncated = false; for (cur = start_addr; cur < end_addr; cur += elem_size, idx++) { if (cur != start_addr) tprints(", "); - if (!tfetch_mem_func(tcp, cur, elem_size, elem_buf)) { - if (cur == start_addr) - printaddr(cur); - else { - tprints("..."); - printaddr_comment(cur); + if (tfetch_mem_func) { + if (!tfetch_mem_func(tcp, cur, elem_size, elem_buf)) { + if (cur == start_addr) + printaddr(cur); + else { + tprints("..."); + printaddr_comment(cur); + truncated = true; + } + break; } - break; + } else { + elem_buf = (void *) (uintptr_t) cur; } if (cur == start_addr) @@ -1275,6 +1449,7 @@ print_array_ex(struct tcb *const tcp, if (cur >= abbrev_end) { tprints("..."); cur = end_addr; + truncated = true; break; } @@ -1283,15 +1458,9 @@ print_array_ex(struct tcb *const tcp, if (!index_xlat) { print_xlat_ex(idx, NULL, xlat_style); - } else if (flags & PAF_INDEX_XLAT_VALUE_INDEXED) { - printxval_indexn_ex(index_xlat, - index_xlat_size, idx, - index_dflt, xlat_style); } else { - printxvals_ex(idx, index_dflt, xlat_style, - (flags & PAF_INDEX_XLAT_SORTED) - && idx ? NULL : index_xlat, - NULL); + printxval_ex(idx ? NULL : index_xlat, idx, + index_dflt, xlat_style); } tprints("] = "); @@ -1302,8 +1471,17 @@ print_array_ex(struct tcb *const tcp, break; } } - if (cur != start_addr) + + if ((cur != start_addr) || !tfetch_mem_func) { + if ((flags & PAF_ARRAY_TRUNCATED) && !truncated) { + if (cur != start_addr) + tprints(", "); + + tprints("..."); + } + tprints("]"); + } return cur >= end_addr; } @@ -1352,7 +1530,7 @@ print_abnormal_hi(const kernel_ulong_t val) } int -read_int_from_file(struct tcb *tcp, const char *const fname, int *const pvalue) +read_int_from_file(const char *const fname, int *const pvalue) { const int fd = open_file(fname, O_RDONLY); if (fd < 0) diff --git a/utimes.c b/utimes.c index bee78098..d969133a 100644 --- a/utimes.c +++ b/utimes.c @@ -26,6 +26,7 @@ SYS_FUNC(utimes) SYS_FUNC(futimesat) { print_dirfd(tcp, tcp->u_arg[0]); + tprints(", "); printpath(tcp, tcp->u_arg[1]); tprints(", "); print_timeval_utimes(tcp, tcp->u_arg[2]); @@ -37,6 +38,7 @@ static int do_utimensat(struct tcb *const tcp, const print_obj_by_addr_fn print_ts) { print_dirfd(tcp, tcp->u_arg[0]); + tprints(", "); printpath(tcp, tcp->u_arg[1]); tprints(", "); print_ts(tcp, tcp->u_arg[2]); diff --git a/v4l2.c b/v4l2.c index b325cf8b..3a1c49d2 100644 --- a/v4l2.c +++ b/v4l2.c @@ -2,7 +2,7 @@ * Copyright (c) 2014 Philippe De Muyter * Copyright (c) 2014 William Manley * Copyright (c) 2011 Peter Zotov - * Copyright (c) 2014-2019 The strace developers. + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -10,16 +10,28 @@ #include "defs.h" -#include -#include -#include -#include - -#include DEF_MPERS_TYPE(struct_v4l2_buffer) +#include "static_assert.h" + +#define CHECK_V4L2_STRUCT_SIZE(s_) \ + static_assert(sizeof(struct s_) == sizeof(struct_##s_), \ + "Unexpected struct " #s_ " size") +#define CHECK_V4L2_STRUCT_SIZE_LE(s_) \ + static_assert(sizeof(struct s_) <= sizeof(struct_##s_), \ + "Unexpected struct " #s_ " size, " \ + "please update the decoder") +#define CHECK_V4L2_RESERVED_SIZE(s_) \ + static_assert(sizeof_field(struct s_, reserved) \ + >= sizeof_field(struct_##s_, reserved), \ + "Unexpected struct " #s_ ".reserved size, " \ + "please update the decoder") +#define CHECK_V4L2_STRUCT_RESERVED_SIZE(s_) \ + CHECK_V4L2_STRUCT_SIZE(s_); \ + CHECK_V4L2_RESERVED_SIZE(s_) + +#include DEF_MPERS_TYPE(kernel_v4l2_buffer_t) +#include DEF_MPERS_TYPE(kernel_v4l2_event_t) #include DEF_MPERS_TYPE(struct_v4l2_clip) -#ifdef VIDIOC_CREATE_BUFS -# include DEF_MPERS_TYPE(struct_v4l2_create_buffers) -#endif +#include DEF_MPERS_TYPE(struct_v4l2_create_buffers) #include DEF_MPERS_TYPE(struct_v4l2_ext_control) #include DEF_MPERS_TYPE(struct_v4l2_ext_controls) #include DEF_MPERS_TYPE(struct_v4l2_format) @@ -27,17 +39,37 @@ #include DEF_MPERS_TYPE(struct_v4l2_input) #include DEF_MPERS_TYPE(struct_v4l2_standard) -typedef struct v4l2_buffer struct_v4l2_buffer; -typedef struct v4l2_clip struct_v4l2_clip; -#ifdef VIDIOC_CREATE_BUFS -typedef struct v4l2_create_buffers struct_v4l2_create_buffers; +#include "kernel_v4l2_types.h" + +CHECK_V4L2_STRUCT_RESERVED_SIZE(v4l2_capability); +CHECK_V4L2_STRUCT_SIZE_LE(v4l2_pix_format); +#ifdef HAVE_STRUCT_V4L2_PLANE_PIX_FORMAT +CHECK_V4L2_STRUCT_RESERVED_SIZE(v4l2_plane_pix_format); +#endif +#ifdef HAVE_STRUCT_V4L2_PIX_FORMAT_MPLANE +CHECK_V4L2_STRUCT_RESERVED_SIZE(v4l2_pix_format_mplane); +#endif +CHECK_V4L2_STRUCT_SIZE(v4l2_clip); +CHECK_V4L2_STRUCT_SIZE_LE(v4l2_window); +CHECK_V4L2_STRUCT_RESERVED_SIZE(v4l2_vbi_format); +CHECK_V4L2_STRUCT_RESERVED_SIZE(v4l2_sliced_vbi_format); +CHECK_V4L2_STRUCT_RESERVED_SIZE(v4l2_sliced_vbi_cap); +#ifdef HAVE_STRUCT_V4L2_SDR_FORMAT +CHECK_V4L2_STRUCT_RESERVED_SIZE(v4l2_sdr_format); +#endif +#ifdef HAVE_STRUCT_V4L2_META_FORMAT +CHECK_V4L2_STRUCT_SIZE(v4l2_meta_format); +#endif +CHECK_V4L2_STRUCT_SIZE(v4l2_format); +#ifdef HAVE_STRUCT_V4L2_FRMSIZEENUM +CHECK_V4L2_STRUCT_RESERVED_SIZE(v4l2_frmsizeenum); +#endif +#ifdef HAVE_STRUCT_V4L2_FRMIVALENUM +CHECK_V4L2_STRUCT_RESERVED_SIZE(v4l2_frmivalenum); +#endif +#ifdef HAVE_STRUCT_V4L2_CREATE_BUFFERS +CHECK_V4L2_STRUCT_RESERVED_SIZE(v4l2_create_buffers); #endif -typedef struct v4l2_ext_control struct_v4l2_ext_control; -typedef struct v4l2_ext_controls struct_v4l2_ext_controls; -typedef struct v4l2_format struct_v4l2_format; -typedef struct v4l2_framebuffer struct_v4l2_framebuffer; -typedef struct v4l2_input struct_v4l2_input; -typedef struct v4l2_standard struct_v4l2_standard; #include MPERS_DEFS @@ -47,7 +79,11 @@ typedef struct v4l2_standard struct_v4l2_standard; /* v4l2_fourcc_be was added by Linux commit v3.18-rc1~101^2^2~127 */ #ifndef v4l2_fourcc_be -# define v4l2_fourcc_be(a, b, c, d) (v4l2_fourcc(a, b, c, d) | (1 << 31)) +# define v4l2_fourcc_be(a, b, c, d) (v4l2_fourcc(a, b, c, d) | (1U << 31)) +#endif + +#ifndef VIDEO_MAX_PLANES +# define VIDEO_MAX_PLANES 8 #endif #define FMT_FRACT "%u/%u" @@ -59,9 +95,18 @@ typedef struct v4l2_standard struct_v4l2_standard; #include "xlat/v4l2_pix_fmts.h" #include "xlat/v4l2_sdr_fmts.h" +#define XLAT_MACROS_ONLY +# include "xlat/v4l2_ioctl_cmds.h" +#undef XLAT_MACROS_ONLY + static void print_pixelformat(uint32_t fourcc, const struct xlat *xlat) { + if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW) { + tprintf("%#x", fourcc); + return; + } + unsigned char a[] = { (unsigned char) fourcc, (unsigned char) (fourcc >> 8), @@ -117,7 +162,7 @@ print_pixelformat(uint32_t fourcc, const struct xlat *xlat) static int print_v4l2_capability(struct tcb *const tcp, const kernel_ulong_t arg) { - struct v4l2_capability caps; + struct_v4l2_capability caps; if (entering(tcp)) return 0; @@ -127,17 +172,16 @@ print_v4l2_capability(struct tcb *const tcp, const kernel_ulong_t arg) PRINT_FIELD_CSTRING("{", caps, driver); PRINT_FIELD_CSTRING(", ", caps, card); PRINT_FIELD_CSTRING(", ", caps, bus_info); - tprintf(", version=%u.%u.%u, capabilities=", - (caps.version >> 16) & 0xFF, - (caps.version >> 8) & 0xFF, - caps.version & 0xFF); + tprints(", version="); + print_kernel_version(caps.version); + tprints(", capabilities="); printflags(v4l2_device_capabilities_flags, caps.capabilities, "V4L2_CAP_???"); -#ifdef V4L2_CAP_DEVICE_CAPS - tprints(", device_caps="); - printflags(v4l2_device_capabilities_flags, caps.device_caps, - "V4L2_CAP_???"); -#endif + if (caps.device_caps) { + tprints(", device_caps="); + printflags(v4l2_device_capabilities_flags, caps.device_caps, + "V4L2_CAP_???"); + } tprints("}"); return RVAL_IOCTL_DECODED; } @@ -204,7 +248,6 @@ print_v4l2_format_fmt(struct tcb *const tcp, const char *prefix, "V4L2_COLORSPACE_???"); tprints("}"); break; -#if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE: { unsigned int i, max; @@ -233,11 +276,8 @@ print_v4l2_format_fmt(struct tcb *const tcp, const char *prefix, (unsigned) f->fmt.pix_mp.num_planes); break; } -#endif /* OUTPUT_OVERLAY since Linux v2.6.22-rc1~1118^2~179 */ -#if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY: -#endif case V4L2_BUF_TYPE_VIDEO_OVERLAY: { struct_v4l2_clip clip; tprints(prefix); @@ -250,9 +290,8 @@ print_v4l2_format_fmt(struct tcb *const tcp, const char *prefix, tfetch_mem, print_v4l2_clip, 0); tprintf(", clipcount=%u, bitmap=", f->fmt.win.clipcount); printaddr(ptr_to_kulong(f->fmt.win.bitmap)); -#ifdef HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA - tprintf(", global_alpha=%#x", f->fmt.win.global_alpha); -#endif + if (f->fmt.win.global_alpha) + tprintf(", global_alpha=%#x", f->fmt.win.global_alpha); tprints("}"); break; } @@ -264,15 +303,14 @@ print_v4l2_format_fmt(struct tcb *const tcp, const char *prefix, f->fmt.vbi.sampling_rate, f->fmt.vbi.offset, f->fmt.vbi.samples_per_line); print_pixelformat(f->fmt.vbi.sample_format, v4l2_pix_fmts); - tprintf(", start=[%u, %u], count=[%u, %u], ", + tprintf(", start=[%d, %d], count=[%u, %u], ", f->fmt.vbi.start[0], f->fmt.vbi.start[1], f->fmt.vbi.count[0], f->fmt.vbi.count[1]); tprints("flags="); - printxval(v4l2_vbi_flags, f->fmt.vbi.flags, "V4L2_VBI_???"); + printflags(v4l2_vbi_flags, f->fmt.vbi.flags, "V4L2_VBI_???"); tprints("}"); break; /* both since Linux v2.6.14-rc2~64 */ -#if HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: { unsigned int i, j; @@ -300,24 +338,20 @@ print_v4l2_format_fmt(struct tcb *const tcp, const char *prefix, tprints("]}"); break; } -#endif /* since Linux v4.4-rc1~118^2~14 */ -#if HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT case V4L2_BUF_TYPE_SDR_OUTPUT: -#endif /* since Linux v3.15-rc1~85^2~213 */ -#if HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE case V4L2_BUF_TYPE_SDR_CAPTURE: tprints(prefix); tprints("fmt.sdr={pixelformat="); print_pixelformat(f->fmt.sdr.pixelformat, v4l2_sdr_fmts); -# ifdef HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE - tprintf(", buffersize=%u", - f->fmt.sdr.buffersize); -# endif + if (f->fmt.sdr.buffersize) + tprintf(", buffersize=%u", + f->fmt.sdr.buffersize); tprints("}"); break; -#endif + default: + return false; } return ret; } @@ -345,7 +379,7 @@ print_v4l2_format(struct tcb *const tcp, const kernel_ulong_t arg, } if (!syserror(tcp) && !umove(tcp, arg, &f)) - print_v4l2_format_fmt(tcp, is_get ? ", " : " => ", &f); + print_v4l2_format_fmt(tcp, is_get ? ", " : "} => {", &f); tprints("}"); @@ -365,7 +399,7 @@ print_v4l2_requestbuffers(struct tcb *const tcp, const kernel_ulong_t arg) if (umove_or_printaddr(tcp, arg, &reqbufs)) return RVAL_IOCTL_DECODED; - tprintf("{type="); + tprints("{type="); printxval(v4l2_buf_types, reqbufs.type, "V4L2_BUF_TYPE_???"); tprints(", memory="); printxval(v4l2_memories, reqbufs.memory, "V4L2_MEMORY_???"); @@ -389,12 +423,41 @@ print_v4l2_requestbuffers(struct tcb *const tcp, const kernel_ulong_t arg) } #include "xlat/v4l2_buf_flags.h" +#include "xlat/v4l2_buf_flags_ts_type.h" +#include "xlat/v4l2_buf_flags_ts_src.h" + +#define XLAT_MACROS_ONLY +# include "xlat/v4l2_buf_flags_masks.h" +#undef XLAT_MACROS_ONLY + +static void +print_v4l2_buffer_flags(uint32_t val) +{ + const uint32_t ts_type = val & V4L2_BUF_FLAG_TIMESTAMP_MASK; + const uint32_t ts_src = val & V4L2_BUF_FLAG_TSTAMP_SRC_MASK; + const uint32_t flags = val & ~ts_type & ~ts_src; + + if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW) { + tprintf("%#" PRIx32, val); + return; + } + + if (flags) { + printflags(v4l2_buf_flags, flags, "V4L2_BUF_FLAG_???"); + tprints("|"); + } + printxval(v4l2_buf_flags_ts_type, ts_type, + "V4L2_BUF_FLAG_TIMESTAMP_???"); + tprints("|"); + printxval(v4l2_buf_flags_ts_src, ts_src, + "V4L2_BUF_FLAG_TSTAMP_SRC_???"); +} static int print_v4l2_buffer(struct tcb *const tcp, const unsigned int code, const kernel_ulong_t arg) { - struct_v4l2_buffer b; + kernel_v4l2_buffer_t b; if (entering(tcp)) { tprints(", "); @@ -423,10 +486,18 @@ print_v4l2_buffer(struct tcb *const tcp, const unsigned int code, tprintf(", length=%u, bytesused=%u, flags=", b.length, b.bytesused); - printflags(v4l2_buf_flags, b.flags, "V4L2_BUF_FLAG_???"); + print_v4l2_buffer_flags(b.flags); if (code == VIDIOC_DQBUF) { - tprints(", timestamp = "); - MPERS_FUNC_NAME(print_struct_timeval)(&b.timestamp); + tprints(", timestamp="); + kernel_timeval64_t t; + if (sizeof(t.tv_usec) == sizeof(b.timestamp.tv_usec)) { + print_timeval64_data_size(&b.timestamp, + sizeof(b.timestamp)); + } else { + t.tv_sec = b.timestamp.tv_sec; + t.tv_usec = zero_extend_signed_to_ull(b.timestamp.tv_usec); + print_timeval64_data_size(&t, sizeof(t)); + } } tprints(", ..."); } @@ -497,7 +568,7 @@ print_v4l2_streamparm(struct tcb *const tcp, const kernel_ulong_t arg, tprints("}"); return RVAL_IOCTL_DECODED; } - tprints(is_get ? ", " : " => "); + tprints(is_get ? ", " : "} => {"); } if (s.type == V4L2_BUF_TYPE_VIDEO_CAPTURE) { @@ -512,7 +583,7 @@ print_v4l2_streamparm(struct tcb *const tcp, const kernel_ulong_t arg, tprintf(", timeperframe=" FMT_FRACT, ARGS_FRACT(s.parm.capture.timeperframe)); - tprintf(", extendedmode=%u, readbuffers=%u}", + tprintf(", extendedmode=%#x, readbuffers=%u}", s.parm.capture.extendedmode, s.parm.capture.readbuffers); } else { @@ -520,12 +591,14 @@ print_v4l2_streamparm(struct tcb *const tcp, const kernel_ulong_t arg, printflags(v4l2_streaming_capabilities, s.parm.output.capability, "V4L2_CAP_???"); - tprintf(", outputmode=%u", s.parm.output.outputmode); + tprints(", outputmode="); + printflags(v4l2_capture_modes, + s.parm.output.outputmode, "V4L2_MODE_???"); tprintf(", timeperframe=" FMT_FRACT, ARGS_FRACT(s.parm.output.timeperframe)); - tprintf(", extendedmode=%u, writebuffers=%u}", + tprintf(", extendedmode=%#x, writebuffers=%u}", s.parm.output.extendedmode, s.parm.output.writebuffers); } @@ -555,7 +628,7 @@ print_v4l2_standard(struct tcb *const tcp, const kernel_ulong_t arg) PRINT_FIELD_CSTRING(", ", s, name); tprintf(", frameperiod=" FMT_FRACT, ARGS_FRACT(s.frameperiod)); - tprintf(", framelines=%d", s.framelines); + tprintf(", framelines=%u", s.framelines); } tprints("}"); @@ -597,6 +670,52 @@ print_v4l2_input(struct tcb *const tcp, const kernel_ulong_t arg) #include "xlat/v4l2_control_classes.h" #include "xlat/v4l2_control_id_bases.h" #include "xlat/v4l2_control_ids.h" +#include "xlat/v4l2_control_query_flags.h" + +static void +print_v4l2_cid(uint32_t cid, bool next_flags) +{ + if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW) { + tprintf("%#x", cid); + return; + } + + if (next_flags) { + uint32_t flags = cid & v4l2_control_query_flags->flags_mask; + + if (flags) { + printflags(v4l2_control_query_flags, flags, + "V4L2_CTRL_FLAG_NEXT_???"); + tprints("|"); + + cid &= ~flags; + } + } + + const char *id_name = xlookup(v4l2_control_ids, cid); + + if (id_name) { + print_xlat_ex(cid, id_name, XLAT_STYLE_DEFAULT); + return; + } + + uint64_t class_id = cid; + const char *class_str = xlookup_le(v4l2_control_classes, &class_id); + + if (!class_str || (cid - class_id) >= 0x10000) { + print_xlat_ex(cid, "V4L2_CID_???", PXF_DEFAULT_STR); + return; + } + + /* + * As of now, the longest control class name is V4L2_CTRL_CLASS_IMAGE_SOURCE, + * of 28 characters long. + */ + char tmp_str[64 + sizeof("+%#") + sizeof(class_id) * 2]; + + xsprintf(tmp_str, "%s+%#" PRIx64, class_str, cid - class_id); + print_xlat_ex(cid, tmp_str, XLAT_STYLE_DEFAULT); +} static int print_v4l2_control(struct tcb *const tcp, const kernel_ulong_t arg, @@ -608,16 +727,16 @@ print_v4l2_control(struct tcb *const tcp, const kernel_ulong_t arg, tprints(", "); if (umove_or_printaddr(tcp, arg, &c)) return RVAL_IOCTL_DECODED; + tprints("{id="); - printxval(v4l2_control_ids, c.id, "V4L2_CID_???"); + print_v4l2_cid(c.id, false); if (!is_get) tprintf(", value=%d", c.value); return 0; } if (!syserror(tcp) && !umove(tcp, arg, &c)) { - tprints(is_get ? ", " : " => "); - tprintf("value=%d", c.value); + tprintf("%s%d", is_get ? ", value=" : " => ", c.value); } tprints("}"); @@ -648,18 +767,18 @@ print_v4l2_tuner(struct tcb *const tcp, const kernel_ulong_t arg, tprints("}"); return RVAL_IOCTL_DECODED; } - tprints(is_get ? ", " : " => "); + tprints(is_get ? ", " : "} => {"); } PRINT_FIELD_CSTRING("", c, name); tprints(", type="); - printxval(v4l2_tuner_types, c.type, "V4L2_TUNER_TYPE_???"); + printxval(v4l2_tuner_types, c.type, "V4L2_TUNER_???"); tprints(", capability="); - printxval(v4l2_tuner_capabilities, c.capability, + printflags(v4l2_tuner_capabilities, c.capability, "V4L2_TUNER_CAP_???"); tprintf(", rangelow=%u, rangehigh=%u, rxsubchans=", c.rangelow, c.rangehigh); - printxval(v4l2_tuner_rxsubchanses, c.rxsubchans, + printflags(v4l2_tuner_rxsubchanses, c.rxsubchans, "V4L2_TUNER_SUB_???"); tprints(", audmode="); printxval(v4l2_tuner_audmodes, c.audmode, @@ -686,40 +805,45 @@ print_v4l2_queryctrl(struct tcb *const tcp, const kernel_ulong_t arg) tprints(", "); if (umove_or_printaddr(tcp, arg, &c)) return RVAL_IOCTL_DECODED; + set_tcb_priv_ulong(tcp, c.id); tprints("{id="); - } else { - if (syserror(tcp) || umove(tcp, arg, &c) < 0) { - tprints("}"); - return RVAL_IOCTL_DECODED; - } - if (get_tcb_priv_ulong(tcp)) - tprints(" => "); - } + print_v4l2_cid(c.id, true); - if (entering(tcp) || get_tcb_priv_ulong(tcp)) { -#ifdef V4L2_CTRL_FLAG_NEXT_CTRL - const unsigned long next = c.id & V4L2_CTRL_FLAG_NEXT_CTRL; - set_tcb_priv_ulong(tcp, next); - if (next) { - print_xlat(V4L2_CTRL_FLAG_NEXT_CTRL); - tprints("|"); - c.id &= ~V4L2_CTRL_FLAG_NEXT_CTRL; - } -#endif - printxval(v4l2_control_ids, c.id, "V4L2_CID_???"); + return 0; } - if (exiting(tcp)) { - tprints(", type="); - printxval(v4l2_control_types, c.type, "V4L2_CTRL_TYPE_???"); - PRINT_FIELD_CSTRING(", ", c, name); - tprintf(", minimum=%d, maximum=%d, step=%d" - ", default_value=%d, flags=", - c.minimum, c.maximum, c.step, c.default_value); - printflags(v4l2_control_flags, c.flags, "V4L2_CTRL_FLAG_???"); + /* exiting */ + if (syserror(tcp) || umove(tcp, arg, &c) < 0) { tprints("}"); + return RVAL_IOCTL_DECODED; + } + + unsigned long entry_id = get_tcb_priv_ulong(tcp); + + if (c.id != entry_id) { + tprints(" => "); + print_v4l2_cid(c.id, false); + } + + PRINT_FIELD_XVAL(", ", c, type, v4l2_control_types, + "V4L2_CTRL_TYPE_???"); + PRINT_FIELD_CSTRING(", ", c, name); + if (!abbrev(tcp)) { + PRINT_FIELD_D(", ", c, minimum); + PRINT_FIELD_D(", ", c, maximum); + PRINT_FIELD_D(", ", c, step); + PRINT_FIELD_D(", ", c, default_value); + PRINT_FIELD_FLAGS(", ", c, flags, v4l2_control_flags, + "V4L2_CTRL_FLAG_???"); + if (!IS_ARRAY_ZERO(c.reserved)) + PRINT_FIELD_ARRAY(", ", c, reserved, tcp, + print_xint32_array_member); + } else { + tprints(", ..."); } - return entering(tcp) ? 0 : RVAL_IOCTL_DECODED; + tprints("}"); + + return RVAL_IOCTL_DECODED; } static int @@ -776,7 +900,6 @@ print_v4l2_crop(struct tcb *const tcp, const kernel_ulong_t arg, return RVAL_IOCTL_DECODED; } -#ifdef VIDIOC_S_EXT_CTRLS static bool print_v4l2_ext_control(struct tcb *tcp, void *elem_buf, size_t elem_size, void *data) { @@ -784,14 +907,13 @@ print_v4l2_ext_control(struct tcb *tcp, void *elem_buf, size_t elem_size, void * tprints("{id="); printxval(v4l2_control_ids, p->id, "V4L2_CID_???"); -# if HAVE_DECL_V4L2_CTRL_TYPE_STRING tprintf(", size=%u", p->size); if (p->size > 0) { tprints(", string="); printstrn(tcp, ptr_to_kulong(p->string), p->size); - } else -# endif - tprintf(", value=%d, value64=%" PRId64, p->value, (int64_t) p->value64); + } else { + tprintf(", value=%d, value64=%" PRId64, p->value, p->value64); + } tprints("}"); return true; @@ -823,7 +945,7 @@ print_v4l2_ext_controls(struct tcb *const tcp, const kernel_ulong_t arg, tprints("}"); return RVAL_IOCTL_DECODED; } - tprints(is_get ? ", " : " => "); + tprints(is_get ? ", " : "} => {"); } tprints("controls="); @@ -844,15 +966,13 @@ print_v4l2_ext_controls(struct tcb *const tcp, const kernel_ulong_t arg, /* entering */ return 0; } -#endif /* VIDIOC_S_EXT_CTRLS */ -#ifdef VIDIOC_ENUM_FRAMESIZES -# include "xlat/v4l2_framesize_types.h" +#include "xlat/v4l2_framesize_types.h" static int print_v4l2_frmsizeenum(struct tcb *const tcp, const kernel_ulong_t arg) { - struct v4l2_frmsizeenum s; + struct_v4l2_frmsizeenum s; if (entering(tcp)) { tprints(", "); @@ -884,15 +1004,13 @@ print_v4l2_frmsizeenum(struct tcb *const tcp, const kernel_ulong_t arg) tprints("}"); return RVAL_IOCTL_DECODED; } -#endif /* VIDIOC_ENUM_FRAMESIZES */ -#ifdef VIDIOC_ENUM_FRAMEINTERVALS -# include "xlat/v4l2_frameinterval_types.h" +#include "xlat/v4l2_frameinterval_types.h" static int print_v4l2_frmivalenum(struct tcb *const tcp, const kernel_ulong_t arg) { - struct v4l2_frmivalenum f; + struct_v4l2_frmivalenum f; if (entering(tcp)) { tprints(", "); @@ -928,9 +1046,7 @@ print_v4l2_frmivalenum(struct tcb *const tcp, const kernel_ulong_t arg) return RVAL_IOCTL_DECODED; } -#endif /* VIDIOC_ENUM_FRAMEINTERVALS */ -#ifdef VIDIOC_CREATE_BUFS static int print_v4l2_create_buffers(struct tcb *const tcp, const kernel_ulong_t arg) { @@ -962,7 +1078,6 @@ print_v4l2_create_buffers(struct tcb *const tcp, const kernel_ulong_t arg) return RVAL_IOCTL_DECODED | RVAL_STR; } -#endif /* VIDIOC_CREATE_BUFS */ MPERS_PRINTER_DECL(int, v4l2_ioctl, struct tcb *const tcp, const unsigned int code, const kernel_ulong_t arg) @@ -1047,28 +1162,20 @@ MPERS_PRINTER_DECL(int, v4l2_ioctl, struct tcb *const tcp, case VIDIOC_S_CROP: /* W */ return print_v4l2_crop(tcp, arg, code == VIDIOC_G_CROP); -#ifdef VIDIOC_S_EXT_CTRLS case VIDIOC_S_EXT_CTRLS: /* RW */ case VIDIOC_TRY_EXT_CTRLS: /* RW */ case VIDIOC_G_EXT_CTRLS: /* RW */ return print_v4l2_ext_controls(tcp, arg, code == VIDIOC_G_EXT_CTRLS); -#endif /* VIDIOC_S_EXT_CTRLS */ -#ifdef VIDIOC_ENUM_FRAMESIZES case VIDIOC_ENUM_FRAMESIZES: /* RW */ return print_v4l2_frmsizeenum(tcp, arg); -#endif /* VIDIOC_ENUM_FRAMESIZES */ -#ifdef VIDIOC_ENUM_FRAMEINTERVALS case VIDIOC_ENUM_FRAMEINTERVALS: /* RW */ return print_v4l2_frmivalenum(tcp, arg); -#endif /* VIDIOC_ENUM_FRAMEINTERVALS */ -#ifdef VIDIOC_CREATE_BUFS case VIDIOC_CREATE_BUFS: /* RW */ return print_v4l2_create_buffers(tcp, arg); -#endif /* VIDIOC_CREATE_BUFS */ default: return RVAL_DECODED; diff --git a/wait.c b/wait.c index dbc917b1..177427c8 100644 --- a/wait.c +++ b/wait.c @@ -7,7 +7,7 @@ * Copyright (c) 2004 Ulrich Drepper * Copyright (c) 2009-2013 Denys Vlasenko * Copyright (c) 2014-2015 Dmitry V. Levin - * Copyright (c) 2014-2018 The strace developers. + * Copyright (c) 2014-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -80,14 +80,8 @@ printwaitn(struct tcb *const tcp, void (*const print_rusage)(struct tcb *, kernel_ulong_t)) { if (entering(tcp)) { - /* On Linux, kernel-side pid_t is typedef'ed to int - * on all arches. Also, glibc-2.8 truncates wait3 and wait4 - * pid argument to int on 64bit arches, producing, - * for example, wait4(4294967295, ...) instead of -1 - * in strace. We have to use int here, not long. - */ - int pid = tcp->u_arg[0]; - tprintf("%d, ", pid); + printpid_tgid_pgid(tcp, tcp->u_arg[0]); + tprintf(", "); } else { int status; @@ -108,7 +102,7 @@ printwaitn(struct tcb *const tcp, printaddr(tcp->u_arg[3]); } } - return 0; + return RVAL_TGID; } SYS_FUNC(waitpid) @@ -116,10 +110,12 @@ SYS_FUNC(waitpid) return printwaitn(tcp, NULL); } +#if HAVE_ARCH_TIME32_SYSCALLS || HAVE_ARCH_OLD_TIME64_SYSCALLS SYS_FUNC(wait4) { return printwaitn(tcp, printrusage); } +#endif #ifdef ALPHA SYS_FUNC(osf_wait4) @@ -132,10 +128,28 @@ SYS_FUNC(osf_wait4) SYS_FUNC(waitid) { + unsigned int idtype = (unsigned int) tcp->u_arg[0]; + int id = tcp->u_arg[1]; + if (entering(tcp)) { - printxval(waitid_types, tcp->u_arg[0], "P_???"); - int pid = tcp->u_arg[1]; - tprintf(", %d, ", pid); + printxval(waitid_types, idtype, "P_???"); + tprints(", "); + switch (idtype) + { + case P_PID: + printpid(tcp, id, PT_TGID); + break; + case P_PIDFD: + printfd(tcp, id); + break; + case P_PGID: + printpid(tcp, id, PT_PGID); + break; + default: + tprintf("%d", id); + break; + } + tprints(", "); } else { /* siginfo */ printsiginfo_at(tcp, tcp->u_arg[2]); diff --git a/watchdog_ioctl.c b/watchdog_ioctl.c new file mode 100644 index 00000000..179ed8b2 --- /dev/null +++ b/watchdog_ioctl.c @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#include "defs.h" +#include "print_fields.h" + +#include + +#define XLAT_MACROS_ONLY +#include "xlat/watchdog_ioctl_cmds.h" +#undef XLAT_MACROS_ONLY + +int +watchdog_ioctl(struct tcb *const tcp, const unsigned int code, + const kernel_ulong_t arg) +{ + switch (code) { + case WDIOC_GETSTATUS: + case WDIOC_GETBOOTSTATUS: + case WDIOC_GETTEMP: + case WDIOC_GETTIMEOUT: + case WDIOC_GETPRETIMEOUT: + case WDIOC_GETTIMELEFT: + if (entering(tcp)) + return 0; + ATTRIBUTE_FALLTHROUGH; + case WDIOC_SETTIMEOUT: + case WDIOC_SETPRETIMEOUT: + tprints(", "); + printnum_int(tcp, arg, "%d"); + break; + + /* + * linux/watchdog.h says that this takes an int, but in + * practice the argument is ignored. + */ + case WDIOC_KEEPALIVE: + break; + default: + return RVAL_DECODED; + } + return RVAL_IOCTL_DECODED; +} diff --git a/xgetdents.c b/xgetdents.c new file mode 100644 index 00000000..80bf49ff --- /dev/null +++ b/xgetdents.c @@ -0,0 +1,141 @@ +/* + * Copyright (c) 2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#include "xgetdents.h" +#include "kernel_dirent.h" + +static void +decode_dents(struct tcb *const tcp, kernel_ulong_t addr, unsigned int len, + const unsigned int header_size, + const decode_dentry_head_fn decode_dentry_head, + const decode_dentry_tail_fn decode_dentry_tail) +{ + union { + kernel_dirent_t ent; + kernel_dirent64_t ent64; + } dent; + unsigned int count = 0; + + if (abbrev(tcp)) + printaddr(addr); + + for (;;) { + if (len < header_size) { + if (!abbrev(tcp)) { + if (!len) { + tprints("["); + ++count; + } else { + printstr_ex(tcp, addr, len, + QUOTE_FORCE_HEX); + } + } + break; + } + + /* len >= header_size after this point. */ + if (!tfetch_mem(tcp, addr, header_size, &dent)) { + if (!abbrev(tcp)) { + if (count) { + tprints("..."); + printaddr_comment(addr); + } else { + printaddr(addr); + } + } + + break; + } + + if (!abbrev(tcp)) { + if (!count) + tprints("["); + } + ++count; + + kernel_ulong_t next_addr = 0; + unsigned int next_len = 0; + unsigned int d_reclen = decode_dentry_head(tcp, &dent); + + if (d_reclen > len) { + /* cannot happen? */ + tprintf_comment("%s%u bytes overflow", + (abbrev(tcp) ? "d_reclen " : ""), + d_reclen - len); + d_reclen = len; + } else if (d_reclen < header_size) { + /* cannot happen? */ + tprintf_comment("%s%u bytes underflow", + (abbrev(tcp) ? "d_reclen " : ""), + header_size - d_reclen); + d_reclen = header_size; + next_len = len - header_size; + } else { + next_len = len - d_reclen; + if (next_len) { + if (addr + d_reclen > addr) { + next_addr = addr + d_reclen; + } else { + /* cannot happen? */ + tprints_comment("address overflow"); + } + } + } + + len = next_len; + /* Do not use len inside the loop after this point. */ + + if (!abbrev(tcp)) { + int rc = decode_dentry_tail(tcp, addr + header_size, + &dent, + d_reclen - header_size); + if (next_addr) { + tprints(", "); + if (rc < 0) { + tprints("..."); + break; + } + } + } + + if (!next_addr) + break; + addr = next_addr; + } + + if (!abbrev(tcp)) { + if (count) + tprints("]"); + } else { + tprintf_comment("%u%s entries", count, len ? "+" : ""); + } +} + +int +xgetdents(struct tcb *const tcp, const unsigned int header_size, + const decode_dentry_head_fn decode_dentry_head, + const decode_dentry_tail_fn decode_dentry_tail) +{ + if (entering(tcp)) { + printfd(tcp, tcp->u_arg[0]); + tprints(", "); + return 0; + } + + const unsigned int count = tcp->u_arg[2]; + + if (syserror(tcp) || !verbose(tcp) || + (kernel_ulong_t) tcp->u_rval > count /* kernel gone bananas? */) { + printaddr(tcp->u_arg[1]); + } else { + decode_dents(tcp, tcp->u_arg[1], tcp->u_rval, header_size, + decode_dentry_head, decode_dentry_tail); + } + + tprintf(", %u", count); + return 0; +} diff --git a/xgetdents.h b/xgetdents.h new file mode 100644 index 00000000..968057b5 --- /dev/null +++ b/xgetdents.h @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2020 Dmitry V. Levin + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#ifndef STRACE_XGETDENTS_H +# define STRACE_XGETDENTS_H + +# include "defs.h" + +typedef unsigned int (*decode_dentry_head_fn)(struct tcb *, const void *); +typedef int (*decode_dentry_tail_fn)(struct tcb *, kernel_ulong_t, + const void *, unsigned int); + +extern int +xgetdents(struct tcb *, unsigned int header_size, + decode_dentry_head_fn, decode_dentry_tail_fn); + +#endif /* !STRACE_XGETDENTS_H */ diff --git a/xlat.c b/xlat.c index 62245f9c..bc3378ce 100644 --- a/xlat.c +++ b/xlat.c @@ -3,7 +3,7 @@ * Copyright (c) 1993 Branko Lankester * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey * Copyright (c) 1996-1999 Wichert Akkerman - * Copyright (c) 1999-2018 The strace developers. + * Copyright (c) 1999-2020 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -50,49 +50,159 @@ print_xlat_val(uint64_t val, enum xlat_style style) tprints(sprint_xlat_val(val, style)); } +static int +xlat_bsearch_compare(const void *a, const void *b) +{ + const uint64_t val1 = *(const uint64_t *) a; + const uint64_t val2 = ((const struct xlat_data *) b)->val; + return (val1 > val2) ? 1 : (val1 < val2) ? -1 : 0; +} + const char * xlookup(const struct xlat *xlat, const uint64_t val) { - static const struct xlat *pos; + static const struct xlat *x; + static size_t idx; + const struct xlat_data *e; + + if (xlat) { + x = xlat; + idx = 0; + } + + if (!x || !x->data) + return NULL; + + switch (x->type) { + case XT_NORMAL: + for (; idx < x->size; idx++) + if (x->data[idx].val == val) + return x->data[idx].str; + break; - if (xlat) - pos = xlat; + case XT_SORTED: + e = bsearch((const void *) &val, + x->data + idx, + x->size - idx, + sizeof(x->data[0]), + xlat_bsearch_compare); + if (e) { + idx = e - x->data; + return e->str; + } + break; + + case XT_INDEXED: + if (val < x->size) { + if (val == x->data[val].val) + return x->data[val].str; + if (x->data[val].val == 0) + break; /* a hole in the index */ + error_func_msg("Unexpected xlat value %" PRIu64 + " at index %" PRIu64 " (str %s)", + x->data[val].val, val, + x->data[val].str); + } + break; + + default: + error_func_msg("Invalid xlat type: %#x", x->type); + } - for (; pos->str != NULL; pos++) - if (pos->val == val) - return pos->str; return NULL; } -static int -xlat_bsearch_compare(const void *a, const void *b) +static const char * +xlat_search_eq_or_less(const struct xlat *xlat, uint64_t *val) { - const uint64_t val1 = *(const uint64_t *) a; - const uint64_t val2 = ((const struct xlat *) b)->val; - return (val1 > val2) ? 1 : (val1 < val2) ? -1 : 0; + const struct xlat_data *base = xlat->data; + const struct xlat_data *cur = xlat->data; + size_t nmemb = xlat->size; + + for (; nmemb > 0; nmemb >>= 1) { + cur = base + (nmemb >> 1); + + if (*val == cur->val) + return cur->str; + + if (*val > cur->val) { + base = cur + 1; + nmemb--; + } + } + + if (*val < cur->val) { + if (cur > xlat->data) + cur--; + else + return NULL; + } + + *val = cur->val; + return cur->str; } const char * -xlat_search(const struct xlat *xlat, const size_t nmemb, const uint64_t val) +xlookup_le(const struct xlat *xlat, uint64_t *val) { - static const struct xlat *pos; - static size_t memb_left; + if (!xlat || !xlat->data) + return NULL; - if (xlat) { - pos = xlat; - memb_left = nmemb; + switch (xlat->type) { + case XT_SORTED: + return xlat_search_eq_or_less(xlat, val); + +#if 0 /* enable when used */ + case XT_NORMAL: { + uint64_t best_hit = 0; + const char *str = NULL; + + for (size_t idx = 0; idx < xlat->size; idx++) { + if (xlat->data[idx].val == *val) + return xlat->data[idx].str; + + if (xlat->data[idx].val < *val + && xlat->data[idx].val > best_hit) { + best_hit = xlat->data[idx].val; + str = xlat->data[idx].str; + } + } + + *val = best_hit; + return str; } - const struct xlat *e = - bsearch((const void *) &val, - pos, memb_left, sizeof(*pos), xlat_bsearch_compare); + case XT_INDEXED: { + size_t idx = *val; - if (e) { - memb_left -= e - pos; - return e->str; - } else { + if (idx >= xlat->size) { + if (!xlat->size) + return NULL; + + idx = xlat->size - 1; + } + + do { + if (idx == xlat->data[idx].val && xlat->data[idx].str) { + *val = idx; + return xlat->data[idx].str; + } + if (xlat->data[idx].val == 0) + continue; /* a hole in the index */ + error_func_msg("Unexpected xlat value %" PRIu64 + " at index %zu (str %s)", + xlat->data[idx].val, idx, + xlat->data[idx].str); + } while (idx--); return NULL; } +#endif + + default: + error_func_msg("Invalid xlat type: %#x", xlat->type); + } + + return NULL; } /** @@ -180,94 +290,6 @@ sprintxval_ex(char *const buf, const size_t size, const struct xlat *const x, return xsnprintf(buf, size, "%s", sprint_xlat_val(val, style)); } -/** - * Print entry in sorted struct xlat table, if it is there. - * - * @param xlat Pointer to an array of xlat values (not terminated with - * XLAT_END). - * @param xlat_size Number of xlat elements present in array (usually ARRAY_SIZE - * if array is declared in the unit's scope and not - * terminated with XLAT_END). - * @param val Value to search literal representation for. - * @param dflt String (abbreviated in comment syntax) which should be - * emitted if no appropriate xlat value has been found. - * @param style Style in which xlat value should be printed. - * @param fn Search function. - * @return 1 if appropriate xlat value has been found, 0 - * otherwise. - */ -static int -printxval_sized(const struct xlat *xlat, size_t xlat_size, uint64_t val, - const char *dflt, enum xlat_style style, - const char *(* fn)(const struct xlat *, size_t, uint64_t)) -{ - style = get_xlat_style(style); - - if (xlat_verbose(style) == XLAT_STYLE_RAW) { - print_xlat_val(val, style); - return 0; - } - - const char *s = fn(xlat, xlat_size, val); - - if (s) { - if (xlat_verbose(style) == XLAT_STYLE_VERBOSE) { - print_xlat_val(val, style); - tprints_comment(s); - } else { - tprints(s); - } - return 1; - } - - print_xlat_val(val, style); - tprints_comment(dflt); - - return 0; -} - -int -printxval_searchn_ex(const struct xlat *xlat, size_t xlat_size, uint64_t val, - const char *dflt, enum xlat_style style) -{ - return printxval_sized(xlat, xlat_size, val, dflt, style, - xlat_search); -} - -const char * -xlat_idx(const struct xlat *xlat, size_t nmemb, uint64_t val) -{ - static const struct xlat *pos; - static size_t memb_left; - - if (xlat) { - pos = xlat; - memb_left = nmemb; - } - - if (val >= memb_left) - return NULL; - - if (val != pos[val].val) { - if (pos[val].val == 0) - return NULL; /* a hole in the index */ - - error_func_msg("Unexpected xlat value %" PRIu64 - " at index %" PRIu64, - pos[val].val, val); - return NULL; - } - - return pos[val].str; -} - -int -printxval_indexn_ex(const struct xlat *xlat, size_t xlat_size, uint64_t val, - const char *dflt, enum xlat_style style) -{ - return printxval_sized(xlat, xlat_size, val, dflt, style, xlat_idx); -} - /* * Interpret `xlat' as an array of flags. * Print to static string the entries whose bits are on in `flags' @@ -292,7 +314,7 @@ printxval_indexn_ex(const struct xlat *xlat, size_t xlat_size, uint64_t val, */ const char * sprintflags_ex(const char *prefix, const struct xlat *xlat, uint64_t flags, - enum xlat_style style) + char sep, enum xlat_style style) { static char outstr[1024]; char *outptr; @@ -305,43 +327,55 @@ sprintflags_ex(const char *prefix, const struct xlat *xlat, uint64_t flags, if (!flags) return NULL; + if (sep) + *outptr++ = sep; outptr = xappendstr(outstr, outptr, "%s", sprint_xlat_val(flags, style)); return outstr; } - if (flags == 0 && xlat->val == 0 && xlat->str) { + if (flags == 0 && xlat->data->val == 0 && xlat->data->str) { + if (sep) + *outptr++ = sep; if (xlat_verbose(style) == XLAT_STYLE_VERBOSE) { outptr = xappendstr(outstr, outptr, "0 /* %s */", - xlat->str); + xlat->data->str); } else { - strcpy(outptr, xlat->str); + strcpy(outptr, xlat->data->str); } return outstr; } - if (xlat_verbose(style) == XLAT_STYLE_VERBOSE && flags) + if (xlat_verbose(style) == XLAT_STYLE_VERBOSE && flags) { + if (sep) { + *outptr++ = sep; + sep = '\0'; + } outptr = xappendstr(outstr, outptr, "%s", sprint_xlat_val(flags, style)); + } - for (; flags && xlat->str; xlat++) { - if (xlat->val && (flags & xlat->val) == xlat->val) { - if (found) - *outptr++ = '|'; - else if (xlat_verbose(style) == XLAT_STYLE_VERBOSE) + for (size_t idx = 0; flags && idx < xlat->size; idx++) { + if (xlat->data[idx].val && xlat->data[idx].str + && (flags & xlat->data[idx].val) == xlat->data[idx].val) { + if (sep) { + *outptr++ = sep; + } else if (xlat_verbose(style) == XLAT_STYLE_VERBOSE) { outptr = stpcpy(outptr, " /* "); + } - outptr = stpcpy(outptr, xlat->str); + outptr = stpcpy(outptr, xlat->data[idx].str); found = 1; - flags &= ~xlat->val; + sep = '|'; + flags &= ~xlat->data[idx].val; } } if (flags) { - if (found) - *outptr++ = '|'; + if (sep) + *outptr++ = sep; if (found || xlat_verbose(style) != XLAT_STYLE_VERBOSE) outptr = xappendstr(outstr, outptr, "%s", sprint_xlat_val(flags, style)); @@ -407,15 +441,17 @@ printflags_ex(uint64_t flags, const char *dflt, enum xlat_style style, va_start(args, xlat); for (; xlat; xlat = va_arg(args, const struct xlat *)) { - for (; (flags || !n) && xlat->str; ++xlat) { - if ((flags == xlat->val) || - (xlat->val && (flags & xlat->val) == xlat->val)) { + for (size_t idx = 0; (flags || !n) && idx < xlat->size; ++idx) { + uint64_t v = xlat->data[idx].val; + if (xlat->data[idx].str + && ((flags == v) || (v && (flags & v) == v))) { if (xlat_verbose(style) == XLAT_STYLE_VERBOSE && !flags) tprints("0"); tprintf("%s%s", - (n++ ? "|" : init_sep), xlat->str); - flags &= ~xlat->val; + (n++ ? "|" : init_sep), + xlat->data[idx].str); + flags &= ~v; } if (!flags) break; @@ -447,7 +483,7 @@ printflags_ex(uint64_t flags, const char *dflt, enum xlat_style style, } void -print_xlat_ex(const uint64_t val, const char *str, enum xlat_style style) +print_xlat_ex(const uint64_t val, const char *str, uint32_t style) { bool default_str = style & PXF_DEFAULT_STR; style = get_xlat_style(style); @@ -478,23 +514,3 @@ print_xlat_ex(const uint64_t val, const char *str, enum xlat_style style) tprints_comment(str); } } - -void -printxval_dispatch_ex(const struct xlat *xlat, size_t xlat_size, uint64_t val, - const char *dflt, enum xlat_type xt, - enum xlat_style style) -{ - switch (xt) { - case XT_NORMAL: - printxvals_ex(val, dflt, style, xlat, NULL); - break; - - case XT_SORTED: - printxval_searchn_ex(xlat, xlat_size, val, dflt, style); - break; - - case XT_INDEXED: - printxval_indexn_ex(xlat, xlat_size, val, dflt, style); - break; - } -} diff --git a/xlat.h b/xlat.h index 366678ac..05311bf9 100644 --- a/xlat.h +++ b/xlat.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 The strace developers. + * Copyright (c) 2016-2019 The strace developers. * All rights reserved. * * SPDX-License-Identifier: LGPL-2.1-or-later @@ -48,15 +48,22 @@ enum xlat_style { # define XLAT_STYLE_MASK ((1 << XLAT_STYLE_SPEC_BITS) - 1) }; -struct xlat { +struct xlat_data { uint64_t val; const char *str; }; +struct xlat { + const struct xlat_data *data; + size_t flags_strsz; + uint32_t size; + enum xlat_type type; + uint64_t flags_mask; +}; + # define XLAT(val) { (unsigned)(val), #val } # define XLAT_PAIR(val, str) { (unsigned)(val), str } # define XLAT_TYPE(type, val) { (type)(val), #val } # define XLAT_TYPE_PAIR(type, val, str) { (type)(val), str } -# define XLAT_END { 0, 0 } #endif /* !STRACE_XLAT_H */ diff --git a/xlat/Makemodule.am b/xlat/Makemodule.am index e7ac1c38..884ef6d4 100644 --- a/xlat/Makemodule.am +++ b/xlat/Makemodule.am @@ -1,6 +1,6 @@ -XLAT_INPUT_FILES = xlat/access_flags.in xlat/addrfams.in xlat/adjtimex_modes.in xlat/adjtimex_state.in xlat/adjtimex_status.in xlat/advise.in xlat/af_packet_types.in xlat/af_packet_versions.in xlat/aio_cmds.in xlat/archvals.in xlat/arp_hardware_types.in xlat/at_flags.in xlat/at_statx_sync_types.in xlat/atomic_ops.in xlat/audit_arch.in xlat/ax25_protocols.in xlat/baud_options.in xlat/bdaddr_types.in xlat/blkpg_ops.in xlat/block_ioctl_cmds.in xlat/bluetooth_l2_cid.in xlat/bluetooth_l2_psm.in xlat/bootflags1.in xlat/bootflags2.in xlat/bootflags3.in xlat/bpf_attach_flags.in xlat/bpf_attach_type.in xlat/bpf_class.in xlat/bpf_commands.in xlat/bpf_file_mode_flags.in xlat/bpf_map_flags.in xlat/bpf_map_types.in xlat/bpf_map_update_elem_flags.in xlat/bpf_miscop.in xlat/bpf_mode.in xlat/bpf_op_alu.in xlat/bpf_op_jmp.in xlat/bpf_prog_flags.in xlat/bpf_prog_types.in xlat/bpf_query_flags.in xlat/bpf_rval.in xlat/bpf_size.in xlat/bpf_src.in xlat/bpf_task_fd_type.in xlat/bsg_flags.in xlat/bsg_protocol.in xlat/bsg_subprotocol.in xlat/bt_protocols.in xlat/btrfs_balance_args.in xlat/btrfs_balance_ctl_cmds.in xlat/btrfs_balance_flags.in xlat/btrfs_balance_state.in xlat/btrfs_compress_types.in xlat/btrfs_cont_reading_from_srcdev_mode.in xlat/btrfs_defrag_flags.in xlat/btrfs_dev_replace_cmds.in xlat/btrfs_dev_replace_results.in xlat/btrfs_dev_replace_state.in xlat/btrfs_dev_stats_flags.in xlat/btrfs_dev_stats_values.in xlat/btrfs_features_compat.in xlat/btrfs_features_compat_ro.in xlat/btrfs_features_incompat.in xlat/btrfs_key_types.in xlat/btrfs_logical_ino_args_flags.in xlat/btrfs_qgroup_ctl_cmds.in xlat/btrfs_qgroup_inherit_flags.in xlat/btrfs_qgroup_limit_flags.in xlat/btrfs_qgroup_status_flags.in xlat/btrfs_scrub_flags.in xlat/btrfs_send_flags.in xlat/btrfs_snap_flags_v2.in xlat/btrfs_space_info_flags.in xlat/btrfs_tree_objectids.in xlat/cacheflush_scope.in xlat/caif_protocols.in xlat/can_protocols.in xlat/cap.in xlat/cap_mask0.in xlat/cap_mask1.in xlat/cap_version.in xlat/clockflags.in xlat/clocknames.in xlat/clone_flags.in xlat/cpuclocknames.in xlat/crypto_nl_attrs.in xlat/dcb_commands.in xlat/delete_module_flags.in xlat/dirent_types.in xlat/dm_flags.in xlat/ebpf_class.in xlat/ebpf_mode.in xlat/ebpf_op_alu.in xlat/ebpf_op_jmp.in xlat/ebpf_regs.in xlat/ebpf_size.in xlat/efd_flags.in xlat/epollctls.in xlat/epollevents.in xlat/epollflags.in xlat/ethernet_protocols.in xlat/evdev_abs.in xlat/evdev_autorepeat.in xlat/evdev_ev.in xlat/evdev_ff_status.in xlat/evdev_ff_types.in xlat/evdev_keycode.in xlat/evdev_leds.in xlat/evdev_misc.in xlat/evdev_mtslots.in xlat/evdev_prop.in xlat/evdev_relative_axes.in xlat/evdev_snd.in xlat/evdev_switch.in xlat/f_owner_types.in xlat/f_seals.in xlat/falloc_flags.in xlat/fan_classes.in xlat/fan_event_flags.in xlat/fan_init_flags.in xlat/fan_mark_flags.in xlat/fcntlcmds.in xlat/fdflags.in xlat/fib_rule_actions.in xlat/fib_rule_flags.in xlat/fiemap_extent_flags.in xlat/fiemap_flags.in xlat/flockcmds.in xlat/fsmagic.in xlat/futexbitset.in xlat/futexops.in xlat/futexwakecmps.in xlat/futexwakeops.in xlat/getrandom_flags.in xlat/getsock_ip_options.in xlat/getsock_ipv6_options.in xlat/getsock_options.in xlat/hci_channels.in xlat/hw_breakpoint_len.in xlat/hw_breakpoint_type.in xlat/icmpfilterflags.in xlat/if_dqblk_valid.in xlat/if_dqinfo_flags.in xlat/if_dqinfo_valid.in xlat/ifaddrflags.in xlat/iffflags.in xlat/in6_addr_gen_mode.in xlat/inet6_devconf_indices.in xlat/inet6_if_flags.in xlat/inet_devconf_indices.in xlat/inet_diag_attrs.in xlat/inet_diag_bytecodes.in xlat/inet_diag_extended_flags.in xlat/inet_diag_req_attrs.in xlat/inet_protocols.in xlat/inotify_flags.in xlat/inotify_init_flags.in xlat/ioctl_dirs.in xlat/ioprio_class.in xlat/ioprio_who.in xlat/ip_cmsg_types.in xlat/ip_type_of_services.in xlat/ipc_msg_flags.in xlat/ipc_private.in xlat/ipccalls.in xlat/irda_protocols.in xlat/isdn_protocols.in xlat/itimer_which.in xlat/kcm_protocols.in xlat/kcmp_types.in xlat/kexec_arch_values.in xlat/kexec_file_load_flags.in xlat/kexec_load_flags.in xlat/key_perms.in xlat/key_reqkeys.in xlat/key_spec.in xlat/keyctl_commands.in xlat/kvm_cap.in xlat/kvm_cpuid_flags.in xlat/kvm_exit_reason.in xlat/kvm_mem_flags.in xlat/lockfcmds.in xlat/loop_cmds.in xlat/loop_crypt_type_options.in xlat/loop_flags_options.in xlat/lwtunnel_encap_types.in xlat/madvise_cmds.in xlat/mbindflags.in xlat/mctl_sync.in xlat/mdb_flags.in xlat/mdb_states.in xlat/membarrier_cmds.in xlat/memfd_create_flags.in xlat/mempolicyflags.in xlat/mlock_flags.in xlat/mlockall_flags.in xlat/mmap_flags.in xlat/mmap_prot.in xlat/modem_flags.in xlat/modetypes.in xlat/module_init_flags.in xlat/mount_flags.in xlat/move_pages_flags.in xlat/mq_attr_flags.in xlat/mremap_flags.in xlat/msg_flags.in xlat/msgctl_flags.in xlat/mtd_file_mode_options.in xlat/mtd_flags_options.in xlat/mtd_mode_options.in xlat/mtd_nandecc_options.in xlat/mtd_otp_options.in xlat/mtd_type_options.in xlat/multicast_router_types.in xlat/name_to_handle_at_flags.in xlat/nbd_ioctl_cmds.in xlat/nbd_ioctl_flags.in xlat/neighbor_cache_entry_flags.in xlat/neighbor_cache_entry_states.in xlat/netfilter_versions.in xlat/netlink_ack_flags.in xlat/netlink_delete_flags.in xlat/netlink_diag_attrs.in xlat/netlink_diag_show.in xlat/netlink_flags.in xlat/netlink_get_flags.in xlat/netlink_new_flags.in xlat/netlink_protocols.in xlat/netlink_sk_meminfo_indices.in xlat/netlink_socket_flags.in xlat/netlink_states.in xlat/netlink_types.in xlat/nf_acct_msg_types.in xlat/nf_cthelper_msg_types.in xlat/nf_ctnetlink_exp_msg_types.in xlat/nf_ctnetlink_msg_types.in xlat/nf_cttimeout_msg_types.in xlat/nf_ipset_msg_types.in xlat/nf_nft_compat_msg_types.in xlat/nf_nftables_msg_types.in xlat/nf_osf_msg_types.in xlat/nf_queue_msg_types.in xlat/nf_ulog_msg_types.in xlat/nfc_protocols.in xlat/nl_audit_types.in xlat/nl_crypto_types.in xlat/nl_netfilter_msg_types.in xlat/nl_netfilter_subsys_ids.in xlat/nl_route_types.in xlat/nl_selinux_types.in xlat/nl_sock_diag_types.in xlat/nl_xfrm_types.in xlat/nlmsgerr_attrs.in xlat/notifyflags.in xlat/nt_descriptor_types.in xlat/numa_node.in xlat/open_access_modes.in xlat/open_mode_flags.in xlat/packet_diag_attrs.in xlat/packet_diag_info_flags.in xlat/packet_diag_show.in xlat/packet_mreq_type.in xlat/perf_attr_size.in xlat/perf_branch_sample_type.in xlat/perf_event_open_flags.in xlat/perf_event_read_format.in xlat/perf_event_sample_format.in xlat/perf_hw_cache_id.in xlat/perf_hw_cache_op_id.in xlat/perf_hw_cache_op_result_id.in xlat/perf_hw_id.in xlat/perf_ioctl_cmds.in xlat/perf_ioctl_flags.in xlat/perf_sw_ids.in xlat/perf_type_id.in xlat/personality_flags.in xlat/personality_types.in xlat/phonet_protocols.in xlat/pkey_access.in xlat/policies.in xlat/pollflags.in xlat/pr_cap_ambient.in xlat/pr_dumpable.in xlat/pr_fp_mode.in xlat/pr_mce_kill.in xlat/pr_mce_kill_policy.in xlat/pr_set_mm.in xlat/pr_spec_cmds.in xlat/pr_spec_get_store_bypass_flags.in xlat/pr_spec_set_store_bypass_flags.in xlat/pr_sve_vl_flags.in xlat/pr_tsc.in xlat/pr_unalign_flags.in xlat/prctl_options.in xlat/priorities.in xlat/ptp_flags_options.in xlat/ptrace_cmds.in xlat/ptrace_events.in xlat/ptrace_peeksiginfo_flags.in xlat/ptrace_setoptions_flags.in xlat/ptrace_syscall_info_op.in xlat/quota_formats.in xlat/quotacmds.in xlat/quotatypes.in xlat/random_ioctl_cmds.in xlat/rename_flags.in xlat/resource_flags.in xlat/resources.in xlat/riscv_flush_icache_flags.in xlat/route_nexthop_flags.in xlat/routing_flags.in xlat/routing_protocols.in xlat/routing_scopes.in xlat/routing_table_ids.in xlat/routing_types.in xlat/rtnl_addr_attrs.in xlat/rtnl_addrlabel_attrs.in xlat/rtnl_dcb_attrs.in xlat/rtnl_ifla_af_spec_inet6_attrs.in xlat/rtnl_ifla_af_spec_inet_attrs.in xlat/rtnl_ifla_brport_attrs.in xlat/rtnl_ifla_events.in xlat/rtnl_ifla_info_attrs.in xlat/rtnl_ifla_info_data_bridge_attrs.in xlat/rtnl_ifla_info_data_tun_attrs.in xlat/rtnl_ifla_port_attrs.in xlat/rtnl_ifla_vf_port_attrs.in xlat/rtnl_ifla_xdp_attached_mode.in xlat/rtnl_ifla_xdp_attrs.in xlat/rtnl_link_attrs.in xlat/rtnl_mdb_attrs.in xlat/rtnl_mdba_mdb_attrs.in xlat/rtnl_mdba_mdb_eattr_attrs.in xlat/rtnl_mdba_mdb_entry_attrs.in xlat/rtnl_mdba_router_attrs.in xlat/rtnl_mdba_router_pattr_attrs.in xlat/rtnl_neigh_attrs.in xlat/rtnl_neightbl_attrs.in xlat/rtnl_neightbl_parms_attrs.in xlat/rtnl_netconf_attrs.in xlat/rtnl_nsid_attrs.in xlat/rtnl_route_attrs.in xlat/rtnl_rta_metrics_attrs.in xlat/rtnl_rule_attrs.in xlat/rtnl_tc_action_attrs.in xlat/rtnl_tc_attrs.in xlat/rtnl_tca_stab_attrs.in xlat/rtnl_tca_stats_attrs.in xlat/rwf_flags.in xlat/s390_guarded_storage_commands.in xlat/s390_runtime_instr_commands.in xlat/s390_sthyi_function_codes.in xlat/sa_handler_values.in xlat/sched_flags.in xlat/schedulers.in xlat/scmvals.in xlat/scsi_sg_commands.in xlat/secbits.in xlat/seccomp_filter_flags.in xlat/seccomp_mode.in xlat/seccomp_ops.in xlat/seccomp_ret_action.in xlat/semctl_flags.in xlat/semop_flags.in xlat/setns_types.in xlat/setsock_ip_options.in xlat/setsock_ipv6_options.in xlat/setsock_options.in xlat/sfd_flags.in xlat/sg_io_dxfer_direction.in xlat/sg_io_flags.in xlat/sg_io_info.in xlat/sg_scsi_reset.in xlat/shm_flags.in xlat/shm_resource_flags.in xlat/shmctl_flags.in xlat/shutdown_modes.in xlat/sigact_flags.in xlat/sigaltstack_flags.in xlat/sigbus_codes.in xlat/sigchld_codes.in xlat/sigemt_codes.in xlat/sigev_value.in xlat/sigfpe_codes.in xlat/sigill_codes.in xlat/siginfo_codes.in xlat/sigpoll_codes.in xlat/sigprocmaskcmds.in xlat/sigprof_codes.in xlat/sigsegv_codes.in xlat/sigsys_codes.in xlat/sigtrap_codes.in xlat/skf_ad.in xlat/skf_off.in xlat/smc_decl_codes.in xlat/smc_diag_attrs.in xlat/smc_diag_extended_flags.in xlat/smc_diag_mode.in xlat/smc_link_group_roles.in xlat/smc_protocols.in xlat/smc_states.in xlat/snmp_icmp6_stats.in xlat/snmp_ip_stats.in xlat/sock_alg_options.in xlat/sock_ax25_options.in xlat/sock_bluetooth_options.in xlat/sock_caif_options.in xlat/sock_dccp_options.in xlat/sock_ip_options.in xlat/sock_ipv6_options.in xlat/sock_ipx_options.in xlat/sock_irda_options.in xlat/sock_iucv_options.in xlat/sock_kcm_options.in xlat/sock_llc_options.in xlat/sock_netlink_options.in xlat/sock_nfcllcp_options.in xlat/sock_options.in xlat/sock_packet_options.in xlat/sock_pnp_options.in xlat/sock_pppol2tp_options.in xlat/sock_raw_options.in xlat/sock_rds_options.in xlat/sock_rxrpc_options.in xlat/sock_sctp_options.in xlat/sock_shutdown_flags.in xlat/sock_tcp_options.in xlat/sock_tipc_options.in xlat/sock_tls_options.in xlat/sock_type_flags.in xlat/sock_udp_options.in xlat/sock_xdp_options.in xlat/socketcalls.in xlat/socketlayers.in xlat/socktypes.in xlat/sparc_kern_features.in xlat/splice_flags.in xlat/sram_alloc_flags.in xlat/statfs_flags.in xlat/statx_attrs.in xlat/statx_masks.in xlat/swap_flags.in xlat/sync_file_range_flags.in xlat/sysctl_kern.in xlat/sysctl_net.in xlat/sysctl_net_core.in xlat/sysctl_net_ipv4.in xlat/sysctl_net_ipv4_conf.in xlat/sysctl_net_ipv4_route.in xlat/sysctl_net_ipv6.in xlat/sysctl_net_ipv6_route.in xlat/sysctl_net_unix.in xlat/sysctl_root.in xlat/sysctl_vm.in xlat/syslog_action_type.in xlat/sysmips_operations.in xlat/tcflsh_options.in xlat/tcp_state_flags.in xlat/tcp_states.in xlat/tcxonc_options.in xlat/timerfdflags.in xlat/tun_device_types.in xlat/ubi_volume_props.in xlat/ubi_volume_types.in xlat/uffd_api_features.in xlat/uffd_api_flags.in xlat/uffd_copy_flags.in xlat/uffd_flags.in xlat/uffd_register_ioctl_flags.in xlat/uffd_register_mode_flags.in xlat/uffd_zeropage_flags.in xlat/umount_flags.in xlat/unix_diag_attrs.in xlat/unix_diag_show.in xlat/unshare_flags.in xlat/uring_enter_flags.in xlat/uring_register_opcodes.in xlat/uring_setup_flags.in xlat/usagewho.in xlat/v4l2_buf_flags.in xlat/v4l2_buf_types.in xlat/v4l2_capture_modes.in xlat/v4l2_colorspaces.in xlat/v4l2_control_classes.in xlat/v4l2_control_flags.in xlat/v4l2_control_id_bases.in xlat/v4l2_control_ids.in xlat/v4l2_control_types.in xlat/v4l2_device_capabilities_flags.in xlat/v4l2_fields.in xlat/v4l2_format_description_flags.in xlat/v4l2_frameinterval_types.in xlat/v4l2_framesize_types.in xlat/v4l2_input_types.in xlat/v4l2_memories.in xlat/v4l2_pix_fmts.in xlat/v4l2_sdr_fmts.in xlat/v4l2_sliced_flags.in xlat/v4l2_streaming_capabilities.in xlat/v4l2_tuner_audmodes.in xlat/v4l2_tuner_capabilities.in xlat/v4l2_tuner_rxsubchanses.in xlat/v4l2_tuner_types.in xlat/v4l2_vbi_flags.in xlat/wait4_options.in xlat/waitid_types.in xlat/whence_codes.in xlat/xattrflags.in xlat/xdp_flags.in xlat/xfs_dqblk_flags.in xlat/xfs_quota_flags.in -XLAT_HEADER_FILES = xlat/access_flags.h xlat/addrfams.h xlat/adjtimex_modes.h xlat/adjtimex_state.h xlat/adjtimex_status.h xlat/advise.h xlat/af_packet_types.h xlat/af_packet_versions.h xlat/aio_cmds.h xlat/archvals.h xlat/arp_hardware_types.h xlat/at_flags.h xlat/at_statx_sync_types.h xlat/atomic_ops.h xlat/audit_arch.h xlat/ax25_protocols.h xlat/baud_options.h xlat/bdaddr_types.h xlat/blkpg_ops.h xlat/block_ioctl_cmds.h xlat/bluetooth_l2_cid.h xlat/bluetooth_l2_psm.h xlat/bootflags1.h xlat/bootflags2.h xlat/bootflags3.h xlat/bpf_attach_flags.h xlat/bpf_attach_type.h xlat/bpf_class.h xlat/bpf_commands.h xlat/bpf_file_mode_flags.h xlat/bpf_map_flags.h xlat/bpf_map_types.h xlat/bpf_map_update_elem_flags.h xlat/bpf_miscop.h xlat/bpf_mode.h xlat/bpf_op_alu.h xlat/bpf_op_jmp.h xlat/bpf_prog_flags.h xlat/bpf_prog_types.h xlat/bpf_query_flags.h xlat/bpf_rval.h xlat/bpf_size.h xlat/bpf_src.h xlat/bpf_task_fd_type.h xlat/bsg_flags.h xlat/bsg_protocol.h xlat/bsg_subprotocol.h xlat/bt_protocols.h xlat/btrfs_balance_args.h xlat/btrfs_balance_ctl_cmds.h xlat/btrfs_balance_flags.h xlat/btrfs_balance_state.h xlat/btrfs_compress_types.h xlat/btrfs_cont_reading_from_srcdev_mode.h xlat/btrfs_defrag_flags.h xlat/btrfs_dev_replace_cmds.h xlat/btrfs_dev_replace_results.h xlat/btrfs_dev_replace_state.h xlat/btrfs_dev_stats_flags.h xlat/btrfs_dev_stats_values.h xlat/btrfs_features_compat.h xlat/btrfs_features_compat_ro.h xlat/btrfs_features_incompat.h xlat/btrfs_key_types.h xlat/btrfs_logical_ino_args_flags.h xlat/btrfs_qgroup_ctl_cmds.h xlat/btrfs_qgroup_inherit_flags.h xlat/btrfs_qgroup_limit_flags.h xlat/btrfs_qgroup_status_flags.h xlat/btrfs_scrub_flags.h xlat/btrfs_send_flags.h xlat/btrfs_snap_flags_v2.h xlat/btrfs_space_info_flags.h xlat/btrfs_tree_objectids.h xlat/cacheflush_scope.h xlat/caif_protocols.h xlat/can_protocols.h xlat/cap.h xlat/cap_mask0.h xlat/cap_mask1.h xlat/cap_version.h xlat/clockflags.h xlat/clocknames.h xlat/clone_flags.h xlat/cpuclocknames.h xlat/crypto_nl_attrs.h xlat/dcb_commands.h xlat/delete_module_flags.h xlat/dirent_types.h xlat/dm_flags.h xlat/ebpf_class.h xlat/ebpf_mode.h xlat/ebpf_op_alu.h xlat/ebpf_op_jmp.h xlat/ebpf_regs.h xlat/ebpf_size.h xlat/efd_flags.h xlat/epollctls.h xlat/epollevents.h xlat/epollflags.h xlat/ethernet_protocols.h xlat/evdev_abs.h xlat/evdev_autorepeat.h xlat/evdev_ev.h xlat/evdev_ff_status.h xlat/evdev_ff_types.h xlat/evdev_keycode.h xlat/evdev_leds.h xlat/evdev_misc.h xlat/evdev_mtslots.h xlat/evdev_prop.h xlat/evdev_relative_axes.h xlat/evdev_snd.h xlat/evdev_switch.h xlat/f_owner_types.h xlat/f_seals.h xlat/falloc_flags.h xlat/fan_classes.h xlat/fan_event_flags.h xlat/fan_init_flags.h xlat/fan_mark_flags.h xlat/fcntlcmds.h xlat/fdflags.h xlat/fib_rule_actions.h xlat/fib_rule_flags.h xlat/fiemap_extent_flags.h xlat/fiemap_flags.h xlat/flockcmds.h xlat/fsmagic.h xlat/futexbitset.h xlat/futexops.h xlat/futexwakecmps.h xlat/futexwakeops.h xlat/getrandom_flags.h xlat/getsock_ip_options.h xlat/getsock_ipv6_options.h xlat/getsock_options.h xlat/hci_channels.h xlat/hw_breakpoint_len.h xlat/hw_breakpoint_type.h xlat/icmpfilterflags.h xlat/if_dqblk_valid.h xlat/if_dqinfo_flags.h xlat/if_dqinfo_valid.h xlat/ifaddrflags.h xlat/iffflags.h xlat/in6_addr_gen_mode.h xlat/inet6_devconf_indices.h xlat/inet6_if_flags.h xlat/inet_devconf_indices.h xlat/inet_diag_attrs.h xlat/inet_diag_bytecodes.h xlat/inet_diag_extended_flags.h xlat/inet_diag_req_attrs.h xlat/inet_protocols.h xlat/inotify_flags.h xlat/inotify_init_flags.h xlat/ioctl_dirs.h xlat/ioprio_class.h xlat/ioprio_who.h xlat/ip_cmsg_types.h xlat/ip_type_of_services.h xlat/ipc_msg_flags.h xlat/ipc_private.h xlat/ipccalls.h xlat/irda_protocols.h xlat/isdn_protocols.h xlat/itimer_which.h xlat/kcm_protocols.h xlat/kcmp_types.h xlat/kexec_arch_values.h xlat/kexec_file_load_flags.h xlat/kexec_load_flags.h xlat/key_perms.h xlat/key_reqkeys.h xlat/key_spec.h xlat/keyctl_commands.h xlat/kvm_cap.h xlat/kvm_cpuid_flags.h xlat/kvm_exit_reason.h xlat/kvm_mem_flags.h xlat/lockfcmds.h xlat/loop_cmds.h xlat/loop_crypt_type_options.h xlat/loop_flags_options.h xlat/lwtunnel_encap_types.h xlat/madvise_cmds.h xlat/mbindflags.h xlat/mctl_sync.h xlat/mdb_flags.h xlat/mdb_states.h xlat/membarrier_cmds.h xlat/memfd_create_flags.h xlat/mempolicyflags.h xlat/mlock_flags.h xlat/mlockall_flags.h xlat/mmap_flags.h xlat/mmap_prot.h xlat/modem_flags.h xlat/modetypes.h xlat/module_init_flags.h xlat/mount_flags.h xlat/move_pages_flags.h xlat/mq_attr_flags.h xlat/mremap_flags.h xlat/msg_flags.h xlat/msgctl_flags.h xlat/mtd_file_mode_options.h xlat/mtd_flags_options.h xlat/mtd_mode_options.h xlat/mtd_nandecc_options.h xlat/mtd_otp_options.h xlat/mtd_type_options.h xlat/multicast_router_types.h xlat/name_to_handle_at_flags.h xlat/nbd_ioctl_cmds.h xlat/nbd_ioctl_flags.h xlat/neighbor_cache_entry_flags.h xlat/neighbor_cache_entry_states.h xlat/netfilter_versions.h xlat/netlink_ack_flags.h xlat/netlink_delete_flags.h xlat/netlink_diag_attrs.h xlat/netlink_diag_show.h xlat/netlink_flags.h xlat/netlink_get_flags.h xlat/netlink_new_flags.h xlat/netlink_protocols.h xlat/netlink_sk_meminfo_indices.h xlat/netlink_socket_flags.h xlat/netlink_states.h xlat/netlink_types.h xlat/nf_acct_msg_types.h xlat/nf_cthelper_msg_types.h xlat/nf_ctnetlink_exp_msg_types.h xlat/nf_ctnetlink_msg_types.h xlat/nf_cttimeout_msg_types.h xlat/nf_ipset_msg_types.h xlat/nf_nft_compat_msg_types.h xlat/nf_nftables_msg_types.h xlat/nf_osf_msg_types.h xlat/nf_queue_msg_types.h xlat/nf_ulog_msg_types.h xlat/nfc_protocols.h xlat/nl_audit_types.h xlat/nl_crypto_types.h xlat/nl_netfilter_msg_types.h xlat/nl_netfilter_subsys_ids.h xlat/nl_route_types.h xlat/nl_selinux_types.h xlat/nl_sock_diag_types.h xlat/nl_xfrm_types.h xlat/nlmsgerr_attrs.h xlat/notifyflags.h xlat/nt_descriptor_types.h xlat/numa_node.h xlat/open_access_modes.h xlat/open_mode_flags.h xlat/packet_diag_attrs.h xlat/packet_diag_info_flags.h xlat/packet_diag_show.h xlat/packet_mreq_type.h xlat/perf_attr_size.h xlat/perf_branch_sample_type.h xlat/perf_event_open_flags.h xlat/perf_event_read_format.h xlat/perf_event_sample_format.h xlat/perf_hw_cache_id.h xlat/perf_hw_cache_op_id.h xlat/perf_hw_cache_op_result_id.h xlat/perf_hw_id.h xlat/perf_ioctl_cmds.h xlat/perf_ioctl_flags.h xlat/perf_sw_ids.h xlat/perf_type_id.h xlat/personality_flags.h xlat/personality_types.h xlat/phonet_protocols.h xlat/pkey_access.h xlat/policies.h xlat/pollflags.h xlat/pr_cap_ambient.h xlat/pr_dumpable.h xlat/pr_fp_mode.h xlat/pr_mce_kill.h xlat/pr_mce_kill_policy.h xlat/pr_set_mm.h xlat/pr_spec_cmds.h xlat/pr_spec_get_store_bypass_flags.h xlat/pr_spec_set_store_bypass_flags.h xlat/pr_sve_vl_flags.h xlat/pr_tsc.h xlat/pr_unalign_flags.h xlat/prctl_options.h xlat/priorities.h xlat/ptp_flags_options.h xlat/ptrace_cmds.h xlat/ptrace_events.h xlat/ptrace_peeksiginfo_flags.h xlat/ptrace_setoptions_flags.h xlat/ptrace_syscall_info_op.h xlat/quota_formats.h xlat/quotacmds.h xlat/quotatypes.h xlat/random_ioctl_cmds.h xlat/rename_flags.h xlat/resource_flags.h xlat/resources.h xlat/riscv_flush_icache_flags.h xlat/route_nexthop_flags.h xlat/routing_flags.h xlat/routing_protocols.h xlat/routing_scopes.h xlat/routing_table_ids.h xlat/routing_types.h xlat/rtnl_addr_attrs.h xlat/rtnl_addrlabel_attrs.h xlat/rtnl_dcb_attrs.h xlat/rtnl_ifla_af_spec_inet6_attrs.h xlat/rtnl_ifla_af_spec_inet_attrs.h xlat/rtnl_ifla_brport_attrs.h xlat/rtnl_ifla_events.h xlat/rtnl_ifla_info_attrs.h xlat/rtnl_ifla_info_data_bridge_attrs.h xlat/rtnl_ifla_info_data_tun_attrs.h xlat/rtnl_ifla_port_attrs.h xlat/rtnl_ifla_vf_port_attrs.h xlat/rtnl_ifla_xdp_attached_mode.h xlat/rtnl_ifla_xdp_attrs.h xlat/rtnl_link_attrs.h xlat/rtnl_mdb_attrs.h xlat/rtnl_mdba_mdb_attrs.h xlat/rtnl_mdba_mdb_eattr_attrs.h xlat/rtnl_mdba_mdb_entry_attrs.h xlat/rtnl_mdba_router_attrs.h xlat/rtnl_mdba_router_pattr_attrs.h xlat/rtnl_neigh_attrs.h xlat/rtnl_neightbl_attrs.h xlat/rtnl_neightbl_parms_attrs.h xlat/rtnl_netconf_attrs.h xlat/rtnl_nsid_attrs.h xlat/rtnl_route_attrs.h xlat/rtnl_rta_metrics_attrs.h xlat/rtnl_rule_attrs.h xlat/rtnl_tc_action_attrs.h xlat/rtnl_tc_attrs.h xlat/rtnl_tca_stab_attrs.h xlat/rtnl_tca_stats_attrs.h xlat/rwf_flags.h xlat/s390_guarded_storage_commands.h xlat/s390_runtime_instr_commands.h xlat/s390_sthyi_function_codes.h xlat/sa_handler_values.h xlat/sched_flags.h xlat/schedulers.h xlat/scmvals.h xlat/scsi_sg_commands.h xlat/secbits.h xlat/seccomp_filter_flags.h xlat/seccomp_mode.h xlat/seccomp_ops.h xlat/seccomp_ret_action.h xlat/semctl_flags.h xlat/semop_flags.h xlat/setns_types.h xlat/setsock_ip_options.h xlat/setsock_ipv6_options.h xlat/setsock_options.h xlat/sfd_flags.h xlat/sg_io_dxfer_direction.h xlat/sg_io_flags.h xlat/sg_io_info.h xlat/sg_scsi_reset.h xlat/shm_flags.h xlat/shm_resource_flags.h xlat/shmctl_flags.h xlat/shutdown_modes.h xlat/sigact_flags.h xlat/sigaltstack_flags.h xlat/sigbus_codes.h xlat/sigchld_codes.h xlat/sigemt_codes.h xlat/sigev_value.h xlat/sigfpe_codes.h xlat/sigill_codes.h xlat/siginfo_codes.h xlat/sigpoll_codes.h xlat/sigprocmaskcmds.h xlat/sigprof_codes.h xlat/sigsegv_codes.h xlat/sigsys_codes.h xlat/sigtrap_codes.h xlat/skf_ad.h xlat/skf_off.h xlat/smc_decl_codes.h xlat/smc_diag_attrs.h xlat/smc_diag_extended_flags.h xlat/smc_diag_mode.h xlat/smc_link_group_roles.h xlat/smc_protocols.h xlat/smc_states.h xlat/snmp_icmp6_stats.h xlat/snmp_ip_stats.h xlat/sock_alg_options.h xlat/sock_ax25_options.h xlat/sock_bluetooth_options.h xlat/sock_caif_options.h xlat/sock_dccp_options.h xlat/sock_ip_options.h xlat/sock_ipv6_options.h xlat/sock_ipx_options.h xlat/sock_irda_options.h xlat/sock_iucv_options.h xlat/sock_kcm_options.h xlat/sock_llc_options.h xlat/sock_netlink_options.h xlat/sock_nfcllcp_options.h xlat/sock_options.h xlat/sock_packet_options.h xlat/sock_pnp_options.h xlat/sock_pppol2tp_options.h xlat/sock_raw_options.h xlat/sock_rds_options.h xlat/sock_rxrpc_options.h xlat/sock_sctp_options.h xlat/sock_shutdown_flags.h xlat/sock_tcp_options.h xlat/sock_tipc_options.h xlat/sock_tls_options.h xlat/sock_type_flags.h xlat/sock_udp_options.h xlat/sock_xdp_options.h xlat/socketcalls.h xlat/socketlayers.h xlat/socktypes.h xlat/sparc_kern_features.h xlat/splice_flags.h xlat/sram_alloc_flags.h xlat/statfs_flags.h xlat/statx_attrs.h xlat/statx_masks.h xlat/swap_flags.h xlat/sync_file_range_flags.h xlat/sysctl_kern.h xlat/sysctl_net.h xlat/sysctl_net_core.h xlat/sysctl_net_ipv4.h xlat/sysctl_net_ipv4_conf.h xlat/sysctl_net_ipv4_route.h xlat/sysctl_net_ipv6.h xlat/sysctl_net_ipv6_route.h xlat/sysctl_net_unix.h xlat/sysctl_root.h xlat/sysctl_vm.h xlat/syslog_action_type.h xlat/sysmips_operations.h xlat/tcflsh_options.h xlat/tcp_state_flags.h xlat/tcp_states.h xlat/tcxonc_options.h xlat/timerfdflags.h xlat/tun_device_types.h xlat/ubi_volume_props.h xlat/ubi_volume_types.h xlat/uffd_api_features.h xlat/uffd_api_flags.h xlat/uffd_copy_flags.h xlat/uffd_flags.h xlat/uffd_register_ioctl_flags.h xlat/uffd_register_mode_flags.h xlat/uffd_zeropage_flags.h xlat/umount_flags.h xlat/unix_diag_attrs.h xlat/unix_diag_show.h xlat/unshare_flags.h xlat/uring_enter_flags.h xlat/uring_register_opcodes.h xlat/uring_setup_flags.h xlat/usagewho.h xlat/v4l2_buf_flags.h xlat/v4l2_buf_types.h xlat/v4l2_capture_modes.h xlat/v4l2_colorspaces.h xlat/v4l2_control_classes.h xlat/v4l2_control_flags.h xlat/v4l2_control_id_bases.h xlat/v4l2_control_ids.h xlat/v4l2_control_types.h xlat/v4l2_device_capabilities_flags.h xlat/v4l2_fields.h xlat/v4l2_format_description_flags.h xlat/v4l2_frameinterval_types.h xlat/v4l2_framesize_types.h xlat/v4l2_input_types.h xlat/v4l2_memories.h xlat/v4l2_pix_fmts.h xlat/v4l2_sdr_fmts.h xlat/v4l2_sliced_flags.h xlat/v4l2_streaming_capabilities.h xlat/v4l2_tuner_audmodes.h xlat/v4l2_tuner_capabilities.h xlat/v4l2_tuner_rxsubchanses.h xlat/v4l2_tuner_types.h xlat/v4l2_vbi_flags.h xlat/wait4_options.h xlat/waitid_types.h xlat/whence_codes.h xlat/xattrflags.h xlat/xdp_flags.h xlat/xfs_dqblk_flags.h xlat/xfs_quota_flags.h -$(top_srcdir)/xlat/access_flags.h: $(top_srcdir)/xlat/access_flags.in $(top_srcdir)/xlat/gen.sh +XLAT_INPUT_FILES = xlat/access_modes.in xlat/addrfams.in xlat/adjtimex_modes.in xlat/adjtimex_state.in xlat/adjtimex_status.in xlat/advise.in xlat/af_packet_types.in xlat/af_packet_versions.in xlat/aio_cmds.in xlat/aio_iocb_flags.in xlat/archvals.in xlat/arp_hardware_types.in xlat/at_flags.in xlat/at_statx_sync_types.in xlat/atomic_ops.in xlat/audit_arch.in xlat/ax25_protocols.in xlat/baud_options.in xlat/bdaddr_types.in xlat/blkpg_ops.in xlat/block_ioctl_cmds.in xlat/bluetooth_l2_cid.in xlat/bluetooth_l2_psm.in xlat/bootflags1.in xlat/bootflags2.in xlat/bootflags3.in xlat/bpf_attach_flags.in xlat/bpf_attach_type.in xlat/bpf_class.in xlat/bpf_commands.in xlat/bpf_file_mode_flags.in xlat/bpf_map_flags.in xlat/bpf_map_lookup_elem_flags.in xlat/bpf_map_types.in xlat/bpf_map_update_elem_flags.in xlat/bpf_miscop.in xlat/bpf_mode.in xlat/bpf_op_alu.in xlat/bpf_op_jmp.in xlat/bpf_prog_flags.in xlat/bpf_prog_types.in xlat/bpf_query_flags.in xlat/bpf_rval.in xlat/bpf_size.in xlat/bpf_src.in xlat/bpf_task_fd_type.in xlat/bsg_flags.in xlat/bsg_protocol.in xlat/bsg_subprotocol.in xlat/bt_protocols.in xlat/btrfs_balance_args.in xlat/btrfs_balance_ctl_cmds.in xlat/btrfs_balance_flags.in xlat/btrfs_balance_state.in xlat/btrfs_compress_types.in xlat/btrfs_cont_reading_from_srcdev_mode.in xlat/btrfs_defrag_flags.in xlat/btrfs_dev_replace_cmds.in xlat/btrfs_dev_replace_results.in xlat/btrfs_dev_replace_state.in xlat/btrfs_dev_stats_flags.in xlat/btrfs_dev_stats_values.in xlat/btrfs_features_compat.in xlat/btrfs_features_compat_ro.in xlat/btrfs_features_incompat.in xlat/btrfs_key_types.in xlat/btrfs_logical_ino_args_flags.in xlat/btrfs_qgroup_ctl_cmds.in xlat/btrfs_qgroup_inherit_flags.in xlat/btrfs_qgroup_limit_flags.in xlat/btrfs_qgroup_status_flags.in xlat/btrfs_scrub_flags.in xlat/btrfs_send_flags.in xlat/btrfs_snap_flags_v2.in xlat/btrfs_space_info_flags.in xlat/btrfs_tree_objectids.in xlat/cacheflush_flags.in xlat/cacheflush_scope.in xlat/caif_protocols.in xlat/can_protocols.in xlat/cap.in xlat/cap_mask0.in xlat/cap_mask1.in xlat/cap_version.in xlat/clockflags.in xlat/clocknames.in xlat/clone3_flags.in xlat/clone_flags.in xlat/close_range_flags.in xlat/cpuclocknames.in xlat/crypto_msgs.in xlat/crypto_nl_attrs.in xlat/dcb_commands.in xlat/delete_module_flags.in xlat/dirent_types.in xlat/dm_flags.in xlat/ebpf_class.in xlat/ebpf_mode.in xlat/ebpf_op_alu.in xlat/ebpf_op_jmp.in xlat/ebpf_regs.in xlat/ebpf_size.in xlat/efd_flags.in xlat/elf_em.in xlat/epollctls.in xlat/epollevents.in xlat/epollflags.in xlat/ethernet_protocols.in xlat/evdev_abs.in xlat/evdev_autorepeat.in xlat/evdev_ev.in xlat/evdev_ff_status.in xlat/evdev_ff_types.in xlat/evdev_ioctl_cmds.in xlat/evdev_keycode.in xlat/evdev_leds.in xlat/evdev_misc.in xlat/evdev_mtslots.in xlat/evdev_prop.in xlat/evdev_relative_axes.in xlat/evdev_snd.in xlat/evdev_switch.in xlat/f_owner_types.in xlat/f_seals.in xlat/faccessat_flags.in xlat/falloc_flags.in xlat/fan_classes.in xlat/fan_event_flags.in xlat/fan_init_flags.in xlat/fan_mark_flags.in xlat/fcntlcmds.in xlat/fdflags.in xlat/fib_rule_actions.in xlat/fib_rule_flags.in xlat/fiemap_extent_flags.in xlat/fiemap_flags.in xlat/flockcmds.in xlat/fsconfig_cmds.in xlat/fsmagic.in xlat/fsmount_flags.in xlat/fsopen_flags.in xlat/fspick_flags.in xlat/futexbitset.in xlat/futexops.in xlat/futexwakecmps.in xlat/futexwakeops.in xlat/get_mempolicy_flags.in xlat/getrandom_flags.in xlat/getsock_ip_options.in xlat/getsock_ipv6_options.in xlat/getsock_options.in xlat/hci_channels.in xlat/hdio_drive_cmds.in xlat/hw_breakpoint_len.in xlat/hw_breakpoint_type.in xlat/icmpfilterflags.in xlat/if_dqblk_valid.in xlat/if_dqinfo_flags.in xlat/if_dqinfo_valid.in xlat/ifaddrflags.in xlat/iffflags.in xlat/in6_addr_gen_mode.in xlat/inet6_devconf_indices.in xlat/inet6_if_flags.in xlat/inet_devconf_indices.in xlat/inet_diag_attrs.in xlat/inet_diag_bytecodes.in xlat/inet_diag_extended_flags.in xlat/inet_diag_req_attrs.in xlat/inet_protocols.in xlat/inotify_flags.in xlat/inotify_init_flags.in xlat/ioctl_dirs.in xlat/ioprio_class.in xlat/ioprio_who.in xlat/ip_cmsg_types.in xlat/ip_type_of_services.in xlat/ipc_msg_flags.in xlat/ipc_private.in xlat/ipccalls.in xlat/irda_protocols.in xlat/isdn_protocols.in xlat/itimer_which.in xlat/kcm_protocols.in xlat/kcmp_types.in xlat/kexec_arch_values.in xlat/kexec_file_load_flags.in xlat/kexec_load_flags.in xlat/key_perms.in xlat/key_reqkeys.in xlat/key_spec.in xlat/keyctl_caps0.in xlat/keyctl_caps1.in xlat/keyctl_commands.in xlat/keyctl_move_flags.in xlat/keyctl_pkey_ops.in xlat/kvm_cap.in xlat/kvm_cpuid_flags.in xlat/kvm_exit_reason.in xlat/kvm_mem_flags.in xlat/lockfcmds.in xlat/loop_cmds.in xlat/loop_crypt_type_options.in xlat/loop_flags_options.in xlat/lwtunnel_encap_types.in xlat/madvise_cmds.in xlat/mbind_flags.in xlat/mctl_sync.in xlat/mdb_flags.in xlat/mdb_states.in xlat/membarrier_cmds.in xlat/memfd_create_flags.in xlat/mlock_flags.in xlat/mlockall_flags.in xlat/mmap_flags.in xlat/mmap_prot.in xlat/modem_flags.in xlat/modetypes.in xlat/module_init_flags.in xlat/mount_attr_flags.in xlat/mount_flags.in xlat/move_mount_flags.in xlat/move_pages_flags.in xlat/mpol_mode_flags.in xlat/mpol_modes.in xlat/mq_attr_flags.in xlat/mremap_flags.in xlat/msg_flags.in xlat/msgctl_flags.in xlat/mtd_file_mode_options.in xlat/mtd_flags_options.in xlat/mtd_mode_options.in xlat/mtd_nandecc_options.in xlat/mtd_otp_options.in xlat/mtd_type_options.in xlat/multicast_router_types.in xlat/name_to_handle_at_flags.in xlat/nbd_ioctl_cmds.in xlat/nbd_ioctl_flags.in xlat/neighbor_cache_entry_flags.in xlat/neighbor_cache_entry_states.in xlat/netfilter_versions.in xlat/netlink_ack_flags.in xlat/netlink_delete_flags.in xlat/netlink_diag_attrs.in xlat/netlink_diag_show.in xlat/netlink_flags.in xlat/netlink_get_flags.in xlat/netlink_new_flags.in xlat/netlink_protocols.in xlat/netlink_sk_meminfo_indices.in xlat/netlink_socket_flags.in xlat/netlink_states.in xlat/netlink_types.in xlat/nf_acct_msg_types.in xlat/nf_cthelper_msg_types.in xlat/nf_ctnetlink_exp_msg_types.in xlat/nf_ctnetlink_msg_types.in xlat/nf_cttimeout_msg_types.in xlat/nf_ipset_msg_types.in xlat/nf_nft_compat_msg_types.in xlat/nf_nftables_msg_types.in xlat/nf_osf_msg_types.in xlat/nf_queue_msg_types.in xlat/nf_ulog_msg_types.in xlat/nfc_protocols.in xlat/nl_audit_types.in xlat/nl_crypto_types.in xlat/nl_netfilter_msg_types.in xlat/nl_netfilter_subsys_ids.in xlat/nl_route_types.in xlat/nl_selinux_types.in xlat/nl_sock_diag_types.in xlat/nl_xfrm_types.in xlat/nlmsgerr_attrs.in xlat/notifyflags.in xlat/nt_descriptor_types.in xlat/numa_node.in xlat/open_access_modes.in xlat/open_mode_flags.in xlat/open_resolve_flags.in xlat/open_tree_flags.in xlat/packet_diag_attrs.in xlat/packet_diag_info_flags.in xlat/packet_diag_show.in xlat/packet_mreq_type.in xlat/perf_attr_size.in xlat/perf_branch_sample_type.in xlat/perf_event_open_flags.in xlat/perf_event_read_format.in xlat/perf_event_sample_format.in xlat/perf_hw_cache_id.in xlat/perf_hw_cache_op_id.in xlat/perf_hw_cache_op_result_id.in xlat/perf_hw_id.in xlat/perf_ioctl_cmds.in xlat/perf_ioctl_flags.in xlat/perf_sw_ids.in xlat/perf_type_id.in xlat/personality_flags.in xlat/personality_types.in xlat/phonet_protocols.in xlat/pkey_access.in xlat/pollflags.in xlat/pr_cap_ambient.in xlat/pr_dumpable.in xlat/pr_fp_mode.in xlat/pr_mce_kill.in xlat/pr_mce_kill_policy.in xlat/pr_set_mm.in xlat/pr_spec_cmds.in xlat/pr_spec_get_store_bypass_flags.in xlat/pr_spec_set_store_bypass_flags.in xlat/pr_sve_vl_flags.in xlat/pr_tsc.in xlat/pr_unalign_flags.in xlat/prctl_options.in xlat/priorities.in xlat/ptp_extts_flags.in xlat/ptp_perout_flags.in xlat/ptrace_cmds.in xlat/ptrace_events.in xlat/ptrace_peeksiginfo_flags.in xlat/ptrace_setoptions_flags.in xlat/ptrace_syscall_info_op.in xlat/quota_formats.in xlat/quotacmds.in xlat/quotatypes.in xlat/random_ioctl_cmds.in xlat/rename_flags.in xlat/resource_flags.in xlat/resources.in xlat/riscv_flush_icache_flags.in xlat/route_nexthop_flags.in xlat/routing_flags.in xlat/routing_protocols.in xlat/routing_scopes.in xlat/routing_table_ids.in xlat/routing_types.in xlat/rtc_ioctl_cmds.in xlat/rtc_vl_flags.in xlat/rtnl_addr_attrs.in xlat/rtnl_addrlabel_attrs.in xlat/rtnl_dcb_attrs.in xlat/rtnl_ifla_af_spec_inet6_attrs.in xlat/rtnl_ifla_af_spec_inet_attrs.in xlat/rtnl_ifla_brport_attrs.in xlat/rtnl_ifla_events.in xlat/rtnl_ifla_info_attrs.in xlat/rtnl_ifla_info_data_bridge_attrs.in xlat/rtnl_ifla_info_data_tun_attrs.in xlat/rtnl_ifla_port_attrs.in xlat/rtnl_ifla_vf_port_attrs.in xlat/rtnl_ifla_xdp_attached_mode.in xlat/rtnl_ifla_xdp_attrs.in xlat/rtnl_link_attrs.in xlat/rtnl_mdb_attrs.in xlat/rtnl_mdba_mdb_attrs.in xlat/rtnl_mdba_mdb_eattr_attrs.in xlat/rtnl_mdba_mdb_entry_attrs.in xlat/rtnl_mdba_router_attrs.in xlat/rtnl_mdba_router_pattr_attrs.in xlat/rtnl_neigh_attrs.in xlat/rtnl_neightbl_attrs.in xlat/rtnl_neightbl_parms_attrs.in xlat/rtnl_netconf_attrs.in xlat/rtnl_nsid_attrs.in xlat/rtnl_route_attrs.in xlat/rtnl_rta_metrics_attrs.in xlat/rtnl_rule_attrs.in xlat/rtnl_tc_action_attrs.in xlat/rtnl_tc_attrs.in xlat/rtnl_tca_act_flags.in xlat/rtnl_tca_act_hw_stats.in xlat/rtnl_tca_stab_attrs.in xlat/rtnl_tca_stats_attrs.in xlat/rwf_flags.in xlat/s390_guarded_storage_commands.in xlat/s390_runtime_instr_commands.in xlat/s390_sthyi_function_codes.in xlat/sa_handler_values.in xlat/sched_flags.in xlat/schedulers.in xlat/scmvals.in xlat/scsi_sg_commands.in xlat/secbits.in xlat/seccomp_filter_flags.in xlat/seccomp_mode.in xlat/seccomp_ops.in xlat/seccomp_ret_action.in xlat/semctl_flags.in xlat/semop_flags.in xlat/setns_types.in xlat/setsock_ip_options.in xlat/setsock_ipv6_options.in xlat/setsock_options.in xlat/sfd_flags.in xlat/sg_io_dxfer_direction.in xlat/sg_io_flags.in xlat/sg_io_info.in xlat/sg_scsi_reset.in xlat/shm_flags.in xlat/shm_resource_flags.in xlat/shmctl_flags.in xlat/shutdown_modes.in xlat/sigact_flags.in xlat/sigaltstack_flags.in xlat/sigbus_codes.in xlat/sigchld_codes.in xlat/sigemt_codes.in xlat/sigev_value.in xlat/sigfpe_codes.in xlat/sigill_codes.in xlat/siginfo_codes.in xlat/sigpoll_codes.in xlat/sigprocmaskcmds.in xlat/sigprof_codes.in xlat/sigsegv_codes.in xlat/sigsys_codes.in xlat/sigtrap_codes.in xlat/skf_ad.in xlat/skf_off.in xlat/smc_decl_codes.in xlat/smc_diag_attrs.in xlat/smc_diag_extended_flags.in xlat/smc_diag_mode.in xlat/smc_link_group_roles.in xlat/smc_protocols.in xlat/smc_states.in xlat/snmp_icmp6_stats.in xlat/snmp_ip_stats.in xlat/sock_alg_options.in xlat/sock_ax25_options.in xlat/sock_bluetooth_options.in xlat/sock_caif_options.in xlat/sock_dccp_options.in xlat/sock_ip_options.in xlat/sock_ipv6_options.in xlat/sock_ipx_options.in xlat/sock_irda_options.in xlat/sock_iucv_options.in xlat/sock_kcm_options.in xlat/sock_llc_options.in xlat/sock_netlink_options.in xlat/sock_nfcllcp_options.in xlat/sock_options.in xlat/sock_packet_options.in xlat/sock_pnp_options.in xlat/sock_pppol2tp_options.in xlat/sock_raw_options.in xlat/sock_rds_options.in xlat/sock_rxrpc_options.in xlat/sock_sctp_options.in xlat/sock_shutdown_flags.in xlat/sock_tcp_options.in xlat/sock_tipc_options.in xlat/sock_tls_options.in xlat/sock_type_flags.in xlat/sock_udp_options.in xlat/sock_xdp_options.in xlat/socketcalls.in xlat/socketlayers.in xlat/socktypes.in xlat/sparc_kern_features.in xlat/splice_flags.in xlat/sram_alloc_flags.in xlat/statfs_flags.in xlat/statx_attrs.in xlat/statx_masks.in xlat/swap_flags.in xlat/sync_file_range_flags.in xlat/sysctl_kern.in xlat/sysctl_net.in xlat/sysctl_net_core.in xlat/sysctl_net_ipv4.in xlat/sysctl_net_ipv4_conf.in xlat/sysctl_net_ipv4_route.in xlat/sysctl_net_ipv6.in xlat/sysctl_net_ipv6_route.in xlat/sysctl_net_unix.in xlat/sysctl_root.in xlat/sysctl_vm.in xlat/syslog_action_type.in xlat/syslog_console_levels.in xlat/sysmips_operations.in xlat/tcflsh_options.in xlat/tcp_state_flags.in xlat/tcp_states.in xlat/tcxonc_options.in xlat/tee_ioctl_cmds.in xlat/tee_ioctl_gen_caps.in xlat/tee_ioctl_impl_ids.in xlat/tee_ioctl_login_types.in xlat/tee_ioctl_max_arg_size.in xlat/tee_ioctl_optee_caps.in xlat/tee_ioctl_origins.in xlat/tee_ioctl_param_attr_types.in xlat/tee_ioctl_shm_flags.in xlat/timerfdflags.in xlat/tun_device_types.in xlat/ubi_volume_props.in xlat/ubi_volume_types.in xlat/uffd_api_features.in xlat/uffd_api_flags.in xlat/uffd_copy_flags.in xlat/uffd_flags.in xlat/uffd_register_ioctl_flags.in xlat/uffd_register_mode_flags.in xlat/uffd_zeropage_flags.in xlat/umount_flags.in xlat/unix_diag_attrs.in xlat/unix_diag_show.in xlat/unshare_flags.in xlat/uring_cqring_flags.in xlat/uring_enter_flags.in xlat/uring_op_flags.in xlat/uring_ops.in xlat/uring_register_opcodes.in xlat/uring_setup_features.in xlat/uring_setup_flags.in xlat/usagewho.in xlat/v4l2_buf_flags.in xlat/v4l2_buf_flags_masks.in xlat/v4l2_buf_flags_ts_src.in xlat/v4l2_buf_flags_ts_type.in xlat/v4l2_buf_types.in xlat/v4l2_capture_modes.in xlat/v4l2_colorspaces.in xlat/v4l2_control_classes.in xlat/v4l2_control_flags.in xlat/v4l2_control_id_bases.in xlat/v4l2_control_ids.in xlat/v4l2_control_query_flags.in xlat/v4l2_control_types.in xlat/v4l2_device_capabilities_flags.in xlat/v4l2_fields.in xlat/v4l2_format_description_flags.in xlat/v4l2_frameinterval_types.in xlat/v4l2_framesize_types.in xlat/v4l2_input_types.in xlat/v4l2_ioctl_cmds.in xlat/v4l2_memories.in xlat/v4l2_pix_fmts.in xlat/v4l2_sdr_fmts.in xlat/v4l2_sliced_flags.in xlat/v4l2_streaming_capabilities.in xlat/v4l2_tuner_audmodes.in xlat/v4l2_tuner_capabilities.in xlat/v4l2_tuner_rxsubchanses.in xlat/v4l2_tuner_types.in xlat/v4l2_vbi_flags.in xlat/wait4_options.in xlat/waitid_types.in xlat/watchdog_ioctl_cmds.in xlat/whence_codes.in xlat/xattrflags.in xlat/xdp_flags.in xlat/xfs_dqblk_flags.in xlat/xfs_quota_flags.in +XLAT_HEADER_FILES = xlat/access_modes.h xlat/addrfams.h xlat/adjtimex_modes.h xlat/adjtimex_state.h xlat/adjtimex_status.h xlat/advise.h xlat/af_packet_types.h xlat/af_packet_versions.h xlat/aio_cmds.h xlat/aio_iocb_flags.h xlat/archvals.h xlat/arp_hardware_types.h xlat/at_flags.h xlat/at_statx_sync_types.h xlat/atomic_ops.h xlat/audit_arch.h xlat/ax25_protocols.h xlat/baud_options.h xlat/bdaddr_types.h xlat/blkpg_ops.h xlat/block_ioctl_cmds.h xlat/bluetooth_l2_cid.h xlat/bluetooth_l2_psm.h xlat/bootflags1.h xlat/bootflags2.h xlat/bootflags3.h xlat/bpf_attach_flags.h xlat/bpf_attach_type.h xlat/bpf_class.h xlat/bpf_commands.h xlat/bpf_file_mode_flags.h xlat/bpf_map_flags.h xlat/bpf_map_lookup_elem_flags.h xlat/bpf_map_types.h xlat/bpf_map_update_elem_flags.h xlat/bpf_miscop.h xlat/bpf_mode.h xlat/bpf_op_alu.h xlat/bpf_op_jmp.h xlat/bpf_prog_flags.h xlat/bpf_prog_types.h xlat/bpf_query_flags.h xlat/bpf_rval.h xlat/bpf_size.h xlat/bpf_src.h xlat/bpf_task_fd_type.h xlat/bsg_flags.h xlat/bsg_protocol.h xlat/bsg_subprotocol.h xlat/bt_protocols.h xlat/btrfs_balance_args.h xlat/btrfs_balance_ctl_cmds.h xlat/btrfs_balance_flags.h xlat/btrfs_balance_state.h xlat/btrfs_compress_types.h xlat/btrfs_cont_reading_from_srcdev_mode.h xlat/btrfs_defrag_flags.h xlat/btrfs_dev_replace_cmds.h xlat/btrfs_dev_replace_results.h xlat/btrfs_dev_replace_state.h xlat/btrfs_dev_stats_flags.h xlat/btrfs_dev_stats_values.h xlat/btrfs_features_compat.h xlat/btrfs_features_compat_ro.h xlat/btrfs_features_incompat.h xlat/btrfs_key_types.h xlat/btrfs_logical_ino_args_flags.h xlat/btrfs_qgroup_ctl_cmds.h xlat/btrfs_qgroup_inherit_flags.h xlat/btrfs_qgroup_limit_flags.h xlat/btrfs_qgroup_status_flags.h xlat/btrfs_scrub_flags.h xlat/btrfs_send_flags.h xlat/btrfs_snap_flags_v2.h xlat/btrfs_space_info_flags.h xlat/btrfs_tree_objectids.h xlat/cacheflush_flags.h xlat/cacheflush_scope.h xlat/caif_protocols.h xlat/can_protocols.h xlat/cap.h xlat/cap_mask0.h xlat/cap_mask1.h xlat/cap_version.h xlat/clockflags.h xlat/clocknames.h xlat/clone3_flags.h xlat/clone_flags.h xlat/close_range_flags.h xlat/cpuclocknames.h xlat/crypto_msgs.h xlat/crypto_nl_attrs.h xlat/dcb_commands.h xlat/delete_module_flags.h xlat/dirent_types.h xlat/dm_flags.h xlat/ebpf_class.h xlat/ebpf_mode.h xlat/ebpf_op_alu.h xlat/ebpf_op_jmp.h xlat/ebpf_regs.h xlat/ebpf_size.h xlat/efd_flags.h xlat/elf_em.h xlat/epollctls.h xlat/epollevents.h xlat/epollflags.h xlat/ethernet_protocols.h xlat/evdev_abs.h xlat/evdev_autorepeat.h xlat/evdev_ev.h xlat/evdev_ff_status.h xlat/evdev_ff_types.h xlat/evdev_ioctl_cmds.h xlat/evdev_keycode.h xlat/evdev_leds.h xlat/evdev_misc.h xlat/evdev_mtslots.h xlat/evdev_prop.h xlat/evdev_relative_axes.h xlat/evdev_snd.h xlat/evdev_switch.h xlat/f_owner_types.h xlat/f_seals.h xlat/faccessat_flags.h xlat/falloc_flags.h xlat/fan_classes.h xlat/fan_event_flags.h xlat/fan_init_flags.h xlat/fan_mark_flags.h xlat/fcntlcmds.h xlat/fdflags.h xlat/fib_rule_actions.h xlat/fib_rule_flags.h xlat/fiemap_extent_flags.h xlat/fiemap_flags.h xlat/flockcmds.h xlat/fsconfig_cmds.h xlat/fsmagic.h xlat/fsmount_flags.h xlat/fsopen_flags.h xlat/fspick_flags.h xlat/futexbitset.h xlat/futexops.h xlat/futexwakecmps.h xlat/futexwakeops.h xlat/get_mempolicy_flags.h xlat/getrandom_flags.h xlat/getsock_ip_options.h xlat/getsock_ipv6_options.h xlat/getsock_options.h xlat/hci_channels.h xlat/hdio_drive_cmds.h xlat/hw_breakpoint_len.h xlat/hw_breakpoint_type.h xlat/icmpfilterflags.h xlat/if_dqblk_valid.h xlat/if_dqinfo_flags.h xlat/if_dqinfo_valid.h xlat/ifaddrflags.h xlat/iffflags.h xlat/in6_addr_gen_mode.h xlat/inet6_devconf_indices.h xlat/inet6_if_flags.h xlat/inet_devconf_indices.h xlat/inet_diag_attrs.h xlat/inet_diag_bytecodes.h xlat/inet_diag_extended_flags.h xlat/inet_diag_req_attrs.h xlat/inet_protocols.h xlat/inotify_flags.h xlat/inotify_init_flags.h xlat/ioctl_dirs.h xlat/ioprio_class.h xlat/ioprio_who.h xlat/ip_cmsg_types.h xlat/ip_type_of_services.h xlat/ipc_msg_flags.h xlat/ipc_private.h xlat/ipccalls.h xlat/irda_protocols.h xlat/isdn_protocols.h xlat/itimer_which.h xlat/kcm_protocols.h xlat/kcmp_types.h xlat/kexec_arch_values.h xlat/kexec_file_load_flags.h xlat/kexec_load_flags.h xlat/key_perms.h xlat/key_reqkeys.h xlat/key_spec.h xlat/keyctl_caps0.h xlat/keyctl_caps1.h xlat/keyctl_commands.h xlat/keyctl_move_flags.h xlat/keyctl_pkey_ops.h xlat/kvm_cap.h xlat/kvm_cpuid_flags.h xlat/kvm_exit_reason.h xlat/kvm_mem_flags.h xlat/lockfcmds.h xlat/loop_cmds.h xlat/loop_crypt_type_options.h xlat/loop_flags_options.h xlat/lwtunnel_encap_types.h xlat/madvise_cmds.h xlat/mbind_flags.h xlat/mctl_sync.h xlat/mdb_flags.h xlat/mdb_states.h xlat/membarrier_cmds.h xlat/memfd_create_flags.h xlat/mlock_flags.h xlat/mlockall_flags.h xlat/mmap_flags.h xlat/mmap_prot.h xlat/modem_flags.h xlat/modetypes.h xlat/module_init_flags.h xlat/mount_attr_flags.h xlat/mount_flags.h xlat/move_mount_flags.h xlat/move_pages_flags.h xlat/mpol_mode_flags.h xlat/mpol_modes.h xlat/mq_attr_flags.h xlat/mremap_flags.h xlat/msg_flags.h xlat/msgctl_flags.h xlat/mtd_file_mode_options.h xlat/mtd_flags_options.h xlat/mtd_mode_options.h xlat/mtd_nandecc_options.h xlat/mtd_otp_options.h xlat/mtd_type_options.h xlat/multicast_router_types.h xlat/name_to_handle_at_flags.h xlat/nbd_ioctl_cmds.h xlat/nbd_ioctl_flags.h xlat/neighbor_cache_entry_flags.h xlat/neighbor_cache_entry_states.h xlat/netfilter_versions.h xlat/netlink_ack_flags.h xlat/netlink_delete_flags.h xlat/netlink_diag_attrs.h xlat/netlink_diag_show.h xlat/netlink_flags.h xlat/netlink_get_flags.h xlat/netlink_new_flags.h xlat/netlink_protocols.h xlat/netlink_sk_meminfo_indices.h xlat/netlink_socket_flags.h xlat/netlink_states.h xlat/netlink_types.h xlat/nf_acct_msg_types.h xlat/nf_cthelper_msg_types.h xlat/nf_ctnetlink_exp_msg_types.h xlat/nf_ctnetlink_msg_types.h xlat/nf_cttimeout_msg_types.h xlat/nf_ipset_msg_types.h xlat/nf_nft_compat_msg_types.h xlat/nf_nftables_msg_types.h xlat/nf_osf_msg_types.h xlat/nf_queue_msg_types.h xlat/nf_ulog_msg_types.h xlat/nfc_protocols.h xlat/nl_audit_types.h xlat/nl_crypto_types.h xlat/nl_netfilter_msg_types.h xlat/nl_netfilter_subsys_ids.h xlat/nl_route_types.h xlat/nl_selinux_types.h xlat/nl_sock_diag_types.h xlat/nl_xfrm_types.h xlat/nlmsgerr_attrs.h xlat/notifyflags.h xlat/nt_descriptor_types.h xlat/numa_node.h xlat/open_access_modes.h xlat/open_mode_flags.h xlat/open_resolve_flags.h xlat/open_tree_flags.h xlat/packet_diag_attrs.h xlat/packet_diag_info_flags.h xlat/packet_diag_show.h xlat/packet_mreq_type.h xlat/perf_attr_size.h xlat/perf_branch_sample_type.h xlat/perf_event_open_flags.h xlat/perf_event_read_format.h xlat/perf_event_sample_format.h xlat/perf_hw_cache_id.h xlat/perf_hw_cache_op_id.h xlat/perf_hw_cache_op_result_id.h xlat/perf_hw_id.h xlat/perf_ioctl_cmds.h xlat/perf_ioctl_flags.h xlat/perf_sw_ids.h xlat/perf_type_id.h xlat/personality_flags.h xlat/personality_types.h xlat/phonet_protocols.h xlat/pkey_access.h xlat/pollflags.h xlat/pr_cap_ambient.h xlat/pr_dumpable.h xlat/pr_fp_mode.h xlat/pr_mce_kill.h xlat/pr_mce_kill_policy.h xlat/pr_set_mm.h xlat/pr_spec_cmds.h xlat/pr_spec_get_store_bypass_flags.h xlat/pr_spec_set_store_bypass_flags.h xlat/pr_sve_vl_flags.h xlat/pr_tsc.h xlat/pr_unalign_flags.h xlat/prctl_options.h xlat/priorities.h xlat/ptp_extts_flags.h xlat/ptp_perout_flags.h xlat/ptrace_cmds.h xlat/ptrace_events.h xlat/ptrace_peeksiginfo_flags.h xlat/ptrace_setoptions_flags.h xlat/ptrace_syscall_info_op.h xlat/quota_formats.h xlat/quotacmds.h xlat/quotatypes.h xlat/random_ioctl_cmds.h xlat/rename_flags.h xlat/resource_flags.h xlat/resources.h xlat/riscv_flush_icache_flags.h xlat/route_nexthop_flags.h xlat/routing_flags.h xlat/routing_protocols.h xlat/routing_scopes.h xlat/routing_table_ids.h xlat/routing_types.h xlat/rtc_ioctl_cmds.h xlat/rtc_vl_flags.h xlat/rtnl_addr_attrs.h xlat/rtnl_addrlabel_attrs.h xlat/rtnl_dcb_attrs.h xlat/rtnl_ifla_af_spec_inet6_attrs.h xlat/rtnl_ifla_af_spec_inet_attrs.h xlat/rtnl_ifla_brport_attrs.h xlat/rtnl_ifla_events.h xlat/rtnl_ifla_info_attrs.h xlat/rtnl_ifla_info_data_bridge_attrs.h xlat/rtnl_ifla_info_data_tun_attrs.h xlat/rtnl_ifla_port_attrs.h xlat/rtnl_ifla_vf_port_attrs.h xlat/rtnl_ifla_xdp_attached_mode.h xlat/rtnl_ifla_xdp_attrs.h xlat/rtnl_link_attrs.h xlat/rtnl_mdb_attrs.h xlat/rtnl_mdba_mdb_attrs.h xlat/rtnl_mdba_mdb_eattr_attrs.h xlat/rtnl_mdba_mdb_entry_attrs.h xlat/rtnl_mdba_router_attrs.h xlat/rtnl_mdba_router_pattr_attrs.h xlat/rtnl_neigh_attrs.h xlat/rtnl_neightbl_attrs.h xlat/rtnl_neightbl_parms_attrs.h xlat/rtnl_netconf_attrs.h xlat/rtnl_nsid_attrs.h xlat/rtnl_route_attrs.h xlat/rtnl_rta_metrics_attrs.h xlat/rtnl_rule_attrs.h xlat/rtnl_tc_action_attrs.h xlat/rtnl_tc_attrs.h xlat/rtnl_tca_act_flags.h xlat/rtnl_tca_act_hw_stats.h xlat/rtnl_tca_stab_attrs.h xlat/rtnl_tca_stats_attrs.h xlat/rwf_flags.h xlat/s390_guarded_storage_commands.h xlat/s390_runtime_instr_commands.h xlat/s390_sthyi_function_codes.h xlat/sa_handler_values.h xlat/sched_flags.h xlat/schedulers.h xlat/scmvals.h xlat/scsi_sg_commands.h xlat/secbits.h xlat/seccomp_filter_flags.h xlat/seccomp_mode.h xlat/seccomp_ops.h xlat/seccomp_ret_action.h xlat/semctl_flags.h xlat/semop_flags.h xlat/setns_types.h xlat/setsock_ip_options.h xlat/setsock_ipv6_options.h xlat/setsock_options.h xlat/sfd_flags.h xlat/sg_io_dxfer_direction.h xlat/sg_io_flags.h xlat/sg_io_info.h xlat/sg_scsi_reset.h xlat/shm_flags.h xlat/shm_resource_flags.h xlat/shmctl_flags.h xlat/shutdown_modes.h xlat/sigact_flags.h xlat/sigaltstack_flags.h xlat/sigbus_codes.h xlat/sigchld_codes.h xlat/sigemt_codes.h xlat/sigev_value.h xlat/sigfpe_codes.h xlat/sigill_codes.h xlat/siginfo_codes.h xlat/sigpoll_codes.h xlat/sigprocmaskcmds.h xlat/sigprof_codes.h xlat/sigsegv_codes.h xlat/sigsys_codes.h xlat/sigtrap_codes.h xlat/skf_ad.h xlat/skf_off.h xlat/smc_decl_codes.h xlat/smc_diag_attrs.h xlat/smc_diag_extended_flags.h xlat/smc_diag_mode.h xlat/smc_link_group_roles.h xlat/smc_protocols.h xlat/smc_states.h xlat/snmp_icmp6_stats.h xlat/snmp_ip_stats.h xlat/sock_alg_options.h xlat/sock_ax25_options.h xlat/sock_bluetooth_options.h xlat/sock_caif_options.h xlat/sock_dccp_options.h xlat/sock_ip_options.h xlat/sock_ipv6_options.h xlat/sock_ipx_options.h xlat/sock_irda_options.h xlat/sock_iucv_options.h xlat/sock_kcm_options.h xlat/sock_llc_options.h xlat/sock_netlink_options.h xlat/sock_nfcllcp_options.h xlat/sock_options.h xlat/sock_packet_options.h xlat/sock_pnp_options.h xlat/sock_pppol2tp_options.h xlat/sock_raw_options.h xlat/sock_rds_options.h xlat/sock_rxrpc_options.h xlat/sock_sctp_options.h xlat/sock_shutdown_flags.h xlat/sock_tcp_options.h xlat/sock_tipc_options.h xlat/sock_tls_options.h xlat/sock_type_flags.h xlat/sock_udp_options.h xlat/sock_xdp_options.h xlat/socketcalls.h xlat/socketlayers.h xlat/socktypes.h xlat/sparc_kern_features.h xlat/splice_flags.h xlat/sram_alloc_flags.h xlat/statfs_flags.h xlat/statx_attrs.h xlat/statx_masks.h xlat/swap_flags.h xlat/sync_file_range_flags.h xlat/sysctl_kern.h xlat/sysctl_net.h xlat/sysctl_net_core.h xlat/sysctl_net_ipv4.h xlat/sysctl_net_ipv4_conf.h xlat/sysctl_net_ipv4_route.h xlat/sysctl_net_ipv6.h xlat/sysctl_net_ipv6_route.h xlat/sysctl_net_unix.h xlat/sysctl_root.h xlat/sysctl_vm.h xlat/syslog_action_type.h xlat/syslog_console_levels.h xlat/sysmips_operations.h xlat/tcflsh_options.h xlat/tcp_state_flags.h xlat/tcp_states.h xlat/tcxonc_options.h xlat/tee_ioctl_cmds.h xlat/tee_ioctl_gen_caps.h xlat/tee_ioctl_impl_ids.h xlat/tee_ioctl_login_types.h xlat/tee_ioctl_max_arg_size.h xlat/tee_ioctl_optee_caps.h xlat/tee_ioctl_origins.h xlat/tee_ioctl_param_attr_types.h xlat/tee_ioctl_shm_flags.h xlat/timerfdflags.h xlat/tun_device_types.h xlat/ubi_volume_props.h xlat/ubi_volume_types.h xlat/uffd_api_features.h xlat/uffd_api_flags.h xlat/uffd_copy_flags.h xlat/uffd_flags.h xlat/uffd_register_ioctl_flags.h xlat/uffd_register_mode_flags.h xlat/uffd_zeropage_flags.h xlat/umount_flags.h xlat/unix_diag_attrs.h xlat/unix_diag_show.h xlat/unshare_flags.h xlat/uring_cqring_flags.h xlat/uring_enter_flags.h xlat/uring_op_flags.h xlat/uring_ops.h xlat/uring_register_opcodes.h xlat/uring_setup_features.h xlat/uring_setup_flags.h xlat/usagewho.h xlat/v4l2_buf_flags.h xlat/v4l2_buf_flags_masks.h xlat/v4l2_buf_flags_ts_src.h xlat/v4l2_buf_flags_ts_type.h xlat/v4l2_buf_types.h xlat/v4l2_capture_modes.h xlat/v4l2_colorspaces.h xlat/v4l2_control_classes.h xlat/v4l2_control_flags.h xlat/v4l2_control_id_bases.h xlat/v4l2_control_ids.h xlat/v4l2_control_query_flags.h xlat/v4l2_control_types.h xlat/v4l2_device_capabilities_flags.h xlat/v4l2_fields.h xlat/v4l2_format_description_flags.h xlat/v4l2_frameinterval_types.h xlat/v4l2_framesize_types.h xlat/v4l2_input_types.h xlat/v4l2_ioctl_cmds.h xlat/v4l2_memories.h xlat/v4l2_pix_fmts.h xlat/v4l2_sdr_fmts.h xlat/v4l2_sliced_flags.h xlat/v4l2_streaming_capabilities.h xlat/v4l2_tuner_audmodes.h xlat/v4l2_tuner_capabilities.h xlat/v4l2_tuner_rxsubchanses.h xlat/v4l2_tuner_types.h xlat/v4l2_vbi_flags.h xlat/wait4_options.h xlat/waitid_types.h xlat/watchdog_ioctl_cmds.h xlat/whence_codes.h xlat/xattrflags.h xlat/xdp_flags.h xlat/xfs_dqblk_flags.h xlat/xfs_quota_flags.h +$(top_srcdir)/xlat/access_modes.h: $(top_srcdir)/xlat/access_modes.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/addrfams.h: $(top_srcdir)/xlat/addrfams.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ @@ -18,6 +18,8 @@ $(top_srcdir)/xlat/af_packet_versions.h: $(top_srcdir)/xlat/af_packet_versions.i $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/aio_cmds.h: $(top_srcdir)/xlat/aio_cmds.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/aio_iocb_flags.h: $(top_srcdir)/xlat/aio_iocb_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/archvals.h: $(top_srcdir)/xlat/archvals.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/arp_hardware_types.h: $(top_srcdir)/xlat/arp_hardware_types.in $(top_srcdir)/xlat/gen.sh @@ -62,6 +64,8 @@ $(top_srcdir)/xlat/bpf_file_mode_flags.h: $(top_srcdir)/xlat/bpf_file_mode_flags $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/bpf_map_flags.h: $(top_srcdir)/xlat/bpf_map_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/bpf_map_lookup_elem_flags.h: $(top_srcdir)/xlat/bpf_map_lookup_elem_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/bpf_map_types.h: $(top_srcdir)/xlat/bpf_map_types.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/bpf_map_update_elem_flags.h: $(top_srcdir)/xlat/bpf_map_update_elem_flags.in $(top_srcdir)/xlat/gen.sh @@ -148,6 +152,8 @@ $(top_srcdir)/xlat/btrfs_space_info_flags.h: $(top_srcdir)/xlat/btrfs_space_info $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/btrfs_tree_objectids.h: $(top_srcdir)/xlat/btrfs_tree_objectids.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/cacheflush_flags.h: $(top_srcdir)/xlat/cacheflush_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/cacheflush_scope.h: $(top_srcdir)/xlat/cacheflush_scope.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/caif_protocols.h: $(top_srcdir)/xlat/caif_protocols.in $(top_srcdir)/xlat/gen.sh @@ -166,10 +172,16 @@ $(top_srcdir)/xlat/clockflags.h: $(top_srcdir)/xlat/clockflags.in $(top_srcdir)/ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/clocknames.h: $(top_srcdir)/xlat/clocknames.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/clone3_flags.h: $(top_srcdir)/xlat/clone3_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/clone_flags.h: $(top_srcdir)/xlat/clone_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/close_range_flags.h: $(top_srcdir)/xlat/close_range_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/cpuclocknames.h: $(top_srcdir)/xlat/cpuclocknames.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/crypto_msgs.h: $(top_srcdir)/xlat/crypto_msgs.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/crypto_nl_attrs.h: $(top_srcdir)/xlat/crypto_nl_attrs.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/dcb_commands.h: $(top_srcdir)/xlat/dcb_commands.in $(top_srcdir)/xlat/gen.sh @@ -194,6 +206,8 @@ $(top_srcdir)/xlat/ebpf_size.h: $(top_srcdir)/xlat/ebpf_size.in $(top_srcdir)/xl $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/efd_flags.h: $(top_srcdir)/xlat/efd_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/elf_em.h: $(top_srcdir)/xlat/elf_em.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/epollctls.h: $(top_srcdir)/xlat/epollctls.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/epollevents.h: $(top_srcdir)/xlat/epollevents.in $(top_srcdir)/xlat/gen.sh @@ -212,6 +226,8 @@ $(top_srcdir)/xlat/evdev_ff_status.h: $(top_srcdir)/xlat/evdev_ff_status.in $(to $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/evdev_ff_types.h: $(top_srcdir)/xlat/evdev_ff_types.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/evdev_ioctl_cmds.h: $(top_srcdir)/xlat/evdev_ioctl_cmds.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/evdev_keycode.h: $(top_srcdir)/xlat/evdev_keycode.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/evdev_leds.h: $(top_srcdir)/xlat/evdev_leds.in $(top_srcdir)/xlat/gen.sh @@ -232,6 +248,8 @@ $(top_srcdir)/xlat/f_owner_types.h: $(top_srcdir)/xlat/f_owner_types.in $(top_sr $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/f_seals.h: $(top_srcdir)/xlat/f_seals.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/faccessat_flags.h: $(top_srcdir)/xlat/faccessat_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/falloc_flags.h: $(top_srcdir)/xlat/falloc_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/fan_classes.h: $(top_srcdir)/xlat/fan_classes.in $(top_srcdir)/xlat/gen.sh @@ -256,8 +274,16 @@ $(top_srcdir)/xlat/fiemap_flags.h: $(top_srcdir)/xlat/fiemap_flags.in $(top_srcd $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/flockcmds.h: $(top_srcdir)/xlat/flockcmds.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/fsconfig_cmds.h: $(top_srcdir)/xlat/fsconfig_cmds.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/fsmagic.h: $(top_srcdir)/xlat/fsmagic.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/fsmount_flags.h: $(top_srcdir)/xlat/fsmount_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/fsopen_flags.h: $(top_srcdir)/xlat/fsopen_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/fspick_flags.h: $(top_srcdir)/xlat/fspick_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/futexbitset.h: $(top_srcdir)/xlat/futexbitset.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/futexops.h: $(top_srcdir)/xlat/futexops.in $(top_srcdir)/xlat/gen.sh @@ -266,6 +292,8 @@ $(top_srcdir)/xlat/futexwakecmps.h: $(top_srcdir)/xlat/futexwakecmps.in $(top_sr $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/futexwakeops.h: $(top_srcdir)/xlat/futexwakeops.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/get_mempolicy_flags.h: $(top_srcdir)/xlat/get_mempolicy_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/getrandom_flags.h: $(top_srcdir)/xlat/getrandom_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/getsock_ip_options.h: $(top_srcdir)/xlat/getsock_ip_options.in $(top_srcdir)/xlat/gen.sh @@ -276,6 +304,8 @@ $(top_srcdir)/xlat/getsock_options.h: $(top_srcdir)/xlat/getsock_options.in $(to $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/hci_channels.h: $(top_srcdir)/xlat/hci_channels.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/hdio_drive_cmds.h: $(top_srcdir)/xlat/hdio_drive_cmds.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/hw_breakpoint_len.h: $(top_srcdir)/xlat/hw_breakpoint_len.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/hw_breakpoint_type.h: $(top_srcdir)/xlat/hw_breakpoint_type.in $(top_srcdir)/xlat/gen.sh @@ -352,8 +382,16 @@ $(top_srcdir)/xlat/key_reqkeys.h: $(top_srcdir)/xlat/key_reqkeys.in $(top_srcdir $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/key_spec.h: $(top_srcdir)/xlat/key_spec.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/keyctl_caps0.h: $(top_srcdir)/xlat/keyctl_caps0.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/keyctl_caps1.h: $(top_srcdir)/xlat/keyctl_caps1.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/keyctl_commands.h: $(top_srcdir)/xlat/keyctl_commands.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/keyctl_move_flags.h: $(top_srcdir)/xlat/keyctl_move_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/keyctl_pkey_ops.h: $(top_srcdir)/xlat/keyctl_pkey_ops.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/kvm_cap.h: $(top_srcdir)/xlat/kvm_cap.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/kvm_cpuid_flags.h: $(top_srcdir)/xlat/kvm_cpuid_flags.in $(top_srcdir)/xlat/gen.sh @@ -374,7 +412,7 @@ $(top_srcdir)/xlat/lwtunnel_encap_types.h: $(top_srcdir)/xlat/lwtunnel_encap_typ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/madvise_cmds.h: $(top_srcdir)/xlat/madvise_cmds.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ -$(top_srcdir)/xlat/mbindflags.h: $(top_srcdir)/xlat/mbindflags.in $(top_srcdir)/xlat/gen.sh +$(top_srcdir)/xlat/mbind_flags.h: $(top_srcdir)/xlat/mbind_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/mctl_sync.h: $(top_srcdir)/xlat/mctl_sync.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ @@ -386,8 +424,6 @@ $(top_srcdir)/xlat/membarrier_cmds.h: $(top_srcdir)/xlat/membarrier_cmds.in $(to $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/memfd_create_flags.h: $(top_srcdir)/xlat/memfd_create_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ -$(top_srcdir)/xlat/mempolicyflags.h: $(top_srcdir)/xlat/mempolicyflags.in $(top_srcdir)/xlat/gen.sh - $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/mlock_flags.h: $(top_srcdir)/xlat/mlock_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/mlockall_flags.h: $(top_srcdir)/xlat/mlockall_flags.in $(top_srcdir)/xlat/gen.sh @@ -402,10 +438,18 @@ $(top_srcdir)/xlat/modetypes.h: $(top_srcdir)/xlat/modetypes.in $(top_srcdir)/xl $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/module_init_flags.h: $(top_srcdir)/xlat/module_init_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/mount_attr_flags.h: $(top_srcdir)/xlat/mount_attr_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/mount_flags.h: $(top_srcdir)/xlat/mount_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/move_mount_flags.h: $(top_srcdir)/xlat/move_mount_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/move_pages_flags.h: $(top_srcdir)/xlat/move_pages_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/mpol_mode_flags.h: $(top_srcdir)/xlat/mpol_mode_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/mpol_modes.h: $(top_srcdir)/xlat/mpol_modes.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/mq_attr_flags.h: $(top_srcdir)/xlat/mq_attr_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/mremap_flags.h: $(top_srcdir)/xlat/mremap_flags.in $(top_srcdir)/xlat/gen.sh @@ -516,6 +560,10 @@ $(top_srcdir)/xlat/open_access_modes.h: $(top_srcdir)/xlat/open_access_modes.in $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/open_mode_flags.h: $(top_srcdir)/xlat/open_mode_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/open_resolve_flags.h: $(top_srcdir)/xlat/open_resolve_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/open_tree_flags.h: $(top_srcdir)/xlat/open_tree_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/packet_diag_attrs.h: $(top_srcdir)/xlat/packet_diag_attrs.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/packet_diag_info_flags.h: $(top_srcdir)/xlat/packet_diag_info_flags.in $(top_srcdir)/xlat/gen.sh @@ -558,8 +606,6 @@ $(top_srcdir)/xlat/phonet_protocols.h: $(top_srcdir)/xlat/phonet_protocols.in $( $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/pkey_access.h: $(top_srcdir)/xlat/pkey_access.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ -$(top_srcdir)/xlat/policies.h: $(top_srcdir)/xlat/policies.in $(top_srcdir)/xlat/gen.sh - $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/pollflags.h: $(top_srcdir)/xlat/pollflags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/pr_cap_ambient.h: $(top_srcdir)/xlat/pr_cap_ambient.in $(top_srcdir)/xlat/gen.sh @@ -590,7 +636,9 @@ $(top_srcdir)/xlat/prctl_options.h: $(top_srcdir)/xlat/prctl_options.in $(top_sr $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/priorities.h: $(top_srcdir)/xlat/priorities.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ -$(top_srcdir)/xlat/ptp_flags_options.h: $(top_srcdir)/xlat/ptp_flags_options.in $(top_srcdir)/xlat/gen.sh +$(top_srcdir)/xlat/ptp_extts_flags.h: $(top_srcdir)/xlat/ptp_extts_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/ptp_perout_flags.h: $(top_srcdir)/xlat/ptp_perout_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/ptrace_cmds.h: $(top_srcdir)/xlat/ptrace_cmds.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ @@ -630,6 +678,10 @@ $(top_srcdir)/xlat/routing_table_ids.h: $(top_srcdir)/xlat/routing_table_ids.in $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/routing_types.h: $(top_srcdir)/xlat/routing_types.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/rtc_ioctl_cmds.h: $(top_srcdir)/xlat/rtc_ioctl_cmds.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/rtc_vl_flags.h: $(top_srcdir)/xlat/rtc_vl_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/rtnl_addr_attrs.h: $(top_srcdir)/xlat/rtnl_addr_attrs.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/rtnl_addrlabel_attrs.h: $(top_srcdir)/xlat/rtnl_addrlabel_attrs.in $(top_srcdir)/xlat/gen.sh @@ -692,6 +744,10 @@ $(top_srcdir)/xlat/rtnl_tc_action_attrs.h: $(top_srcdir)/xlat/rtnl_tc_action_att $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/rtnl_tc_attrs.h: $(top_srcdir)/xlat/rtnl_tc_attrs.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/rtnl_tca_act_flags.h: $(top_srcdir)/xlat/rtnl_tca_act_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/rtnl_tca_act_hw_stats.h: $(top_srcdir)/xlat/rtnl_tca_act_hw_stats.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/rtnl_tca_stab_attrs.h: $(top_srcdir)/xlat/rtnl_tca_stab_attrs.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/rtnl_tca_stats_attrs.h: $(top_srcdir)/xlat/rtnl_tca_stats_attrs.in $(top_srcdir)/xlat/gen.sh @@ -910,6 +966,8 @@ $(top_srcdir)/xlat/sysctl_vm.h: $(top_srcdir)/xlat/sysctl_vm.in $(top_srcdir)/xl $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/syslog_action_type.h: $(top_srcdir)/xlat/syslog_action_type.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/syslog_console_levels.h: $(top_srcdir)/xlat/syslog_console_levels.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/sysmips_operations.h: $(top_srcdir)/xlat/sysmips_operations.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/tcflsh_options.h: $(top_srcdir)/xlat/tcflsh_options.in $(top_srcdir)/xlat/gen.sh @@ -920,6 +978,24 @@ $(top_srcdir)/xlat/tcp_states.h: $(top_srcdir)/xlat/tcp_states.in $(top_srcdir)/ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/tcxonc_options.h: $(top_srcdir)/xlat/tcxonc_options.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/tee_ioctl_cmds.h: $(top_srcdir)/xlat/tee_ioctl_cmds.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/tee_ioctl_gen_caps.h: $(top_srcdir)/xlat/tee_ioctl_gen_caps.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/tee_ioctl_impl_ids.h: $(top_srcdir)/xlat/tee_ioctl_impl_ids.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/tee_ioctl_login_types.h: $(top_srcdir)/xlat/tee_ioctl_login_types.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/tee_ioctl_max_arg_size.h: $(top_srcdir)/xlat/tee_ioctl_max_arg_size.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/tee_ioctl_optee_caps.h: $(top_srcdir)/xlat/tee_ioctl_optee_caps.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/tee_ioctl_origins.h: $(top_srcdir)/xlat/tee_ioctl_origins.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/tee_ioctl_param_attr_types.h: $(top_srcdir)/xlat/tee_ioctl_param_attr_types.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/tee_ioctl_shm_flags.h: $(top_srcdir)/xlat/tee_ioctl_shm_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/timerfdflags.h: $(top_srcdir)/xlat/timerfdflags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/tun_device_types.h: $(top_srcdir)/xlat/tun_device_types.in $(top_srcdir)/xlat/gen.sh @@ -950,16 +1026,30 @@ $(top_srcdir)/xlat/unix_diag_show.h: $(top_srcdir)/xlat/unix_diag_show.in $(top_ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/unshare_flags.h: $(top_srcdir)/xlat/unshare_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/uring_cqring_flags.h: $(top_srcdir)/xlat/uring_cqring_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/uring_enter_flags.h: $(top_srcdir)/xlat/uring_enter_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/uring_op_flags.h: $(top_srcdir)/xlat/uring_op_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/uring_ops.h: $(top_srcdir)/xlat/uring_ops.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/uring_register_opcodes.h: $(top_srcdir)/xlat/uring_register_opcodes.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/uring_setup_features.h: $(top_srcdir)/xlat/uring_setup_features.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/uring_setup_flags.h: $(top_srcdir)/xlat/uring_setup_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/usagewho.h: $(top_srcdir)/xlat/usagewho.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/v4l2_buf_flags.h: $(top_srcdir)/xlat/v4l2_buf_flags.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/v4l2_buf_flags_masks.h: $(top_srcdir)/xlat/v4l2_buf_flags_masks.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/v4l2_buf_flags_ts_src.h: $(top_srcdir)/xlat/v4l2_buf_flags_ts_src.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/v4l2_buf_flags_ts_type.h: $(top_srcdir)/xlat/v4l2_buf_flags_ts_type.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/v4l2_buf_types.h: $(top_srcdir)/xlat/v4l2_buf_types.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/v4l2_capture_modes.h: $(top_srcdir)/xlat/v4l2_capture_modes.in $(top_srcdir)/xlat/gen.sh @@ -974,6 +1064,8 @@ $(top_srcdir)/xlat/v4l2_control_id_bases.h: $(top_srcdir)/xlat/v4l2_control_id_b $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/v4l2_control_ids.h: $(top_srcdir)/xlat/v4l2_control_ids.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/v4l2_control_query_flags.h: $(top_srcdir)/xlat/v4l2_control_query_flags.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/v4l2_control_types.h: $(top_srcdir)/xlat/v4l2_control_types.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/v4l2_device_capabilities_flags.h: $(top_srcdir)/xlat/v4l2_device_capabilities_flags.in $(top_srcdir)/xlat/gen.sh @@ -988,6 +1080,8 @@ $(top_srcdir)/xlat/v4l2_framesize_types.h: $(top_srcdir)/xlat/v4l2_framesize_typ $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/v4l2_input_types.h: $(top_srcdir)/xlat/v4l2_input_types.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/v4l2_ioctl_cmds.h: $(top_srcdir)/xlat/v4l2_ioctl_cmds.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/v4l2_memories.h: $(top_srcdir)/xlat/v4l2_memories.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/v4l2_pix_fmts.h: $(top_srcdir)/xlat/v4l2_pix_fmts.in $(top_srcdir)/xlat/gen.sh @@ -1012,6 +1106,8 @@ $(top_srcdir)/xlat/wait4_options.h: $(top_srcdir)/xlat/wait4_options.in $(top_sr $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/waitid_types.h: $(top_srcdir)/xlat/waitid_types.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ +$(top_srcdir)/xlat/watchdog_ioctl_cmds.h: $(top_srcdir)/xlat/watchdog_ioctl_cmds.in $(top_srcdir)/xlat/gen.sh + $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/whence_codes.h: $(top_srcdir)/xlat/whence_codes.in $(top_srcdir)/xlat/gen.sh $(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@ $(top_srcdir)/xlat/xattrflags.h: $(top_srcdir)/xlat/xattrflags.in $(top_srcdir)/xlat/gen.sh diff --git a/xlat/access_flags.h b/xlat/access_flags.h deleted file mode 100644 index e12a08c3..00000000 --- a/xlat/access_flags.h +++ /dev/null @@ -1,40 +0,0 @@ -/* Generated by ./xlat/gen.sh from ./xlat/access_flags.in; do not edit. */ - -#include "gcc_compat.h" -#include "static_assert.h" - - -#ifndef XLAT_MACROS_ONLY - -# ifdef IN_MPERS - -# error static const struct xlat access_flags in mpers mode - -# else - -static -const struct xlat access_flags[] = { -#if defined(F_OK) || (defined(HAVE_DECL_F_OK) && HAVE_DECL_F_OK) - XLAT(F_OK), -#endif -#if defined(R_OK) || (defined(HAVE_DECL_R_OK) && HAVE_DECL_R_OK) - XLAT(R_OK), -#endif -#if defined(W_OK) || (defined(HAVE_DECL_W_OK) && HAVE_DECL_W_OK) - XLAT(W_OK), -#endif -#if defined(X_OK) || (defined(HAVE_DECL_X_OK) && HAVE_DECL_X_OK) - XLAT(X_OK), -#endif -#if defined(EFF_ONLY_OK) || (defined(HAVE_DECL_EFF_ONLY_OK) && HAVE_DECL_EFF_ONLY_OK) - XLAT(EFF_ONLY_OK), -#endif -#if defined(EX_OK) || (defined(HAVE_DECL_EX_OK) && HAVE_DECL_EX_OK) - XLAT(EX_OK), -#endif - XLAT_END -}; - -# endif /* !IN_MPERS */ - -#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/access_flags.in b/xlat/access_flags.in deleted file mode 100644 index cc46ad51..00000000 --- a/xlat/access_flags.in +++ /dev/null @@ -1,6 +0,0 @@ -F_OK -R_OK -W_OK -X_OK -EFF_ONLY_OK -EX_OK diff --git a/xlat/access_modes.h b/xlat/access_modes.h new file mode 100644 index 00000000..291e424e --- /dev/null +++ b/xlat/access_modes.h @@ -0,0 +1,102 @@ +/* Generated by ./xlat/gen.sh from ./xlat/access_modes.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined(F_OK) || (defined(HAVE_DECL_F_OK) && HAVE_DECL_F_OK) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((F_OK) == (0), "F_OK != 0"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define F_OK 0 +#endif +#if defined(R_OK) || (defined(HAVE_DECL_R_OK) && HAVE_DECL_R_OK) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((R_OK) == (4), "R_OK != 4"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define R_OK 4 +#endif +#if defined(W_OK) || (defined(HAVE_DECL_W_OK) && HAVE_DECL_W_OK) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((W_OK) == (2), "W_OK != 2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define W_OK 2 +#endif +#if defined(X_OK) || (defined(HAVE_DECL_X_OK) && HAVE_DECL_X_OK) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((X_OK) == (1), "X_OK != 1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define X_OK 1 +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat access_modes in mpers mode + +# else + +static const struct xlat_data access_modes_xdata[] = { + XLAT(F_OK), + #define XLAT_VAL_0 ((unsigned) (F_OK)) + #define XLAT_STR_0 STRINGIFY(F_OK) + XLAT(R_OK), + #define XLAT_VAL_1 ((unsigned) (R_OK)) + #define XLAT_STR_1 STRINGIFY(R_OK) + XLAT(W_OK), + #define XLAT_VAL_2 ((unsigned) (W_OK)) + #define XLAT_STR_2 STRINGIFY(W_OK) + XLAT(X_OK), + #define XLAT_VAL_3 ((unsigned) (X_OK)) + #define XLAT_STR_3 STRINGIFY(X_OK) +}; +static +const struct xlat access_modes[1] = { { + .data = access_modes_xdata, + .size = ARRAY_SIZE(access_modes_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/access_modes.in b/xlat/access_modes.in new file mode 100644 index 00000000..3e57702b --- /dev/null +++ b/xlat/access_modes.in @@ -0,0 +1,4 @@ +F_OK 0 +R_OK 4 +W_OK 2 +X_OK 1 diff --git a/xlat/addrfams.h b/xlat/addrfams.h index b9510839..a50a3eba 100644 --- a/xlat/addrfams.h +++ b/xlat/addrfams.h @@ -323,55 +323,513 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # ifndef IN_MPERS -const struct xlat addrfams[] = { +static const struct xlat_data addrfams_xdata[] = { [AF_UNSPEC] = XLAT(AF_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (AF_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(AF_UNSPEC) [AF_UNIX] = XLAT(AF_UNIX), + #define XLAT_VAL_1 ((unsigned) (AF_UNIX)) + #define XLAT_STR_1 STRINGIFY(AF_UNIX) [AF_INET] = XLAT(AF_INET), + #define XLAT_VAL_2 ((unsigned) (AF_INET)) + #define XLAT_STR_2 STRINGIFY(AF_INET) [AF_AX25] = XLAT(AF_AX25), + #define XLAT_VAL_3 ((unsigned) (AF_AX25)) + #define XLAT_STR_3 STRINGIFY(AF_AX25) [AF_IPX] = XLAT(AF_IPX), + #define XLAT_VAL_4 ((unsigned) (AF_IPX)) + #define XLAT_STR_4 STRINGIFY(AF_IPX) [AF_APPLETALK] = XLAT(AF_APPLETALK), + #define XLAT_VAL_5 ((unsigned) (AF_APPLETALK)) + #define XLAT_STR_5 STRINGIFY(AF_APPLETALK) [AF_NETROM] = XLAT(AF_NETROM), + #define XLAT_VAL_6 ((unsigned) (AF_NETROM)) + #define XLAT_STR_6 STRINGIFY(AF_NETROM) [AF_BRIDGE] = XLAT(AF_BRIDGE), + #define XLAT_VAL_7 ((unsigned) (AF_BRIDGE)) + #define XLAT_STR_7 STRINGIFY(AF_BRIDGE) [AF_ATMPVC] = XLAT(AF_ATMPVC), + #define XLAT_VAL_8 ((unsigned) (AF_ATMPVC)) + #define XLAT_STR_8 STRINGIFY(AF_ATMPVC) [AF_X25] = XLAT(AF_X25), + #define XLAT_VAL_9 ((unsigned) (AF_X25)) + #define XLAT_STR_9 STRINGIFY(AF_X25) [AF_INET6] = XLAT(AF_INET6), + #define XLAT_VAL_10 ((unsigned) (AF_INET6)) + #define XLAT_STR_10 STRINGIFY(AF_INET6) [AF_ROSE] = XLAT(AF_ROSE), + #define XLAT_VAL_11 ((unsigned) (AF_ROSE)) + #define XLAT_STR_11 STRINGIFY(AF_ROSE) [AF_DECnet] = XLAT(AF_DECnet), + #define XLAT_VAL_12 ((unsigned) (AF_DECnet)) + #define XLAT_STR_12 STRINGIFY(AF_DECnet) [AF_NETBEUI] = XLAT(AF_NETBEUI), + #define XLAT_VAL_13 ((unsigned) (AF_NETBEUI)) + #define XLAT_STR_13 STRINGIFY(AF_NETBEUI) [AF_SECURITY] = XLAT(AF_SECURITY), + #define XLAT_VAL_14 ((unsigned) (AF_SECURITY)) + #define XLAT_STR_14 STRINGIFY(AF_SECURITY) [AF_KEY] = XLAT(AF_KEY), + #define XLAT_VAL_15 ((unsigned) (AF_KEY)) + #define XLAT_STR_15 STRINGIFY(AF_KEY) [AF_NETLINK] = XLAT(AF_NETLINK), + #define XLAT_VAL_16 ((unsigned) (AF_NETLINK)) + #define XLAT_STR_16 STRINGIFY(AF_NETLINK) [AF_PACKET] = XLAT(AF_PACKET), + #define XLAT_VAL_17 ((unsigned) (AF_PACKET)) + #define XLAT_STR_17 STRINGIFY(AF_PACKET) [AF_ASH] = XLAT(AF_ASH), + #define XLAT_VAL_18 ((unsigned) (AF_ASH)) + #define XLAT_STR_18 STRINGIFY(AF_ASH) [AF_ECONET] = XLAT(AF_ECONET), + #define XLAT_VAL_19 ((unsigned) (AF_ECONET)) + #define XLAT_STR_19 STRINGIFY(AF_ECONET) [AF_ATMSVC] = XLAT(AF_ATMSVC), + #define XLAT_VAL_20 ((unsigned) (AF_ATMSVC)) + #define XLAT_STR_20 STRINGIFY(AF_ATMSVC) [AF_RDS] = XLAT(AF_RDS), + #define XLAT_VAL_21 ((unsigned) (AF_RDS)) + #define XLAT_STR_21 STRINGIFY(AF_RDS) [AF_SNA] = XLAT(AF_SNA), + #define XLAT_VAL_22 ((unsigned) (AF_SNA)) + #define XLAT_STR_22 STRINGIFY(AF_SNA) [AF_IRDA] = XLAT(AF_IRDA), + #define XLAT_VAL_23 ((unsigned) (AF_IRDA)) + #define XLAT_STR_23 STRINGIFY(AF_IRDA) [AF_PPPOX] = XLAT(AF_PPPOX), + #define XLAT_VAL_24 ((unsigned) (AF_PPPOX)) + #define XLAT_STR_24 STRINGIFY(AF_PPPOX) [AF_WANPIPE] = XLAT(AF_WANPIPE), + #define XLAT_VAL_25 ((unsigned) (AF_WANPIPE)) + #define XLAT_STR_25 STRINGIFY(AF_WANPIPE) [AF_LLC] = XLAT(AF_LLC), + #define XLAT_VAL_26 ((unsigned) (AF_LLC)) + #define XLAT_STR_26 STRINGIFY(AF_LLC) [AF_IB] = XLAT(AF_IB), + #define XLAT_VAL_27 ((unsigned) (AF_IB)) + #define XLAT_STR_27 STRINGIFY(AF_IB) [AF_MPLS] = XLAT(AF_MPLS), + #define XLAT_VAL_28 ((unsigned) (AF_MPLS)) + #define XLAT_STR_28 STRINGIFY(AF_MPLS) [AF_CAN] = XLAT(AF_CAN), + #define XLAT_VAL_29 ((unsigned) (AF_CAN)) + #define XLAT_STR_29 STRINGIFY(AF_CAN) [AF_TIPC] = XLAT(AF_TIPC), + #define XLAT_VAL_30 ((unsigned) (AF_TIPC)) + #define XLAT_STR_30 STRINGIFY(AF_TIPC) [AF_BLUETOOTH] = XLAT(AF_BLUETOOTH), + #define XLAT_VAL_31 ((unsigned) (AF_BLUETOOTH)) + #define XLAT_STR_31 STRINGIFY(AF_BLUETOOTH) [AF_IUCV] = XLAT(AF_IUCV), + #define XLAT_VAL_32 ((unsigned) (AF_IUCV)) + #define XLAT_STR_32 STRINGIFY(AF_IUCV) [AF_RXRPC] = XLAT(AF_RXRPC), + #define XLAT_VAL_33 ((unsigned) (AF_RXRPC)) + #define XLAT_STR_33 STRINGIFY(AF_RXRPC) [AF_ISDN] = XLAT(AF_ISDN), + #define XLAT_VAL_34 ((unsigned) (AF_ISDN)) + #define XLAT_STR_34 STRINGIFY(AF_ISDN) [AF_PHONET] = XLAT(AF_PHONET), + #define XLAT_VAL_35 ((unsigned) (AF_PHONET)) + #define XLAT_STR_35 STRINGIFY(AF_PHONET) [AF_IEEE802154] = XLAT(AF_IEEE802154), + #define XLAT_VAL_36 ((unsigned) (AF_IEEE802154)) + #define XLAT_STR_36 STRINGIFY(AF_IEEE802154) [AF_CAIF] = XLAT(AF_CAIF), + #define XLAT_VAL_37 ((unsigned) (AF_CAIF)) + #define XLAT_STR_37 STRINGIFY(AF_CAIF) [AF_ALG] = XLAT(AF_ALG), + #define XLAT_VAL_38 ((unsigned) (AF_ALG)) + #define XLAT_STR_38 STRINGIFY(AF_ALG) [AF_NFC] = XLAT(AF_NFC), + #define XLAT_VAL_39 ((unsigned) (AF_NFC)) + #define XLAT_STR_39 STRINGIFY(AF_NFC) [AF_VSOCK] = XLAT(AF_VSOCK), + #define XLAT_VAL_40 ((unsigned) (AF_VSOCK)) + #define XLAT_STR_40 STRINGIFY(AF_VSOCK) [AF_KCM] = XLAT(AF_KCM), + #define XLAT_VAL_41 ((unsigned) (AF_KCM)) + #define XLAT_STR_41 STRINGIFY(AF_KCM) [AF_QIPCRTR] = XLAT(AF_QIPCRTR), + #define XLAT_VAL_42 ((unsigned) (AF_QIPCRTR)) + #define XLAT_STR_42 STRINGIFY(AF_QIPCRTR) [AF_SMC] = XLAT(AF_SMC), + #define XLAT_VAL_43 ((unsigned) (AF_SMC)) + #define XLAT_STR_43 STRINGIFY(AF_SMC) [AF_XDP] = XLAT(AF_XDP), - XLAT_END + #define XLAT_VAL_44 ((unsigned) (AF_XDP)) + #define XLAT_STR_44 STRINGIFY(AF_XDP) }; +const struct xlat addrfams[1] = { { + .data = addrfams_xdata, + .size = ARRAY_SIZE(addrfams_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif +# ifdef XLAT_VAL_41 + | XLAT_VAL_41 +# endif +# ifdef XLAT_VAL_42 + | XLAT_VAL_42 +# endif +# ifdef XLAT_VAL_43 + | XLAT_VAL_43 +# endif +# ifdef XLAT_VAL_44 + | XLAT_VAL_44 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif +# ifdef XLAT_STR_41 + + sizeof(XLAT_STR_41) +# endif +# ifdef XLAT_STR_42 + + sizeof(XLAT_STR_42) +# endif +# ifdef XLAT_STR_43 + + sizeof(XLAT_STR_43) +# endif +# ifdef XLAT_STR_44 + + sizeof(XLAT_STR_44) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 +# undef XLAT_STR_41 +# undef XLAT_VAL_41 +# undef XLAT_STR_42 +# undef XLAT_VAL_42 +# undef XLAT_STR_43 +# undef XLAT_VAL_43 +# undef XLAT_STR_44 +# undef XLAT_VAL_44 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/adjtimex_modes.h b/xlat/adjtimex_modes.h index 8f57ca29..317a32e3 100644 --- a/xlat/adjtimex_modes.h +++ b/xlat/adjtimex_modes.h @@ -103,24 +103,162 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat adjtimex_modes[] = { +static const struct xlat_data adjtimex_modes_xdata[] = { XLAT(ADJ_OFFSET_SS_READ), + #define XLAT_VAL_0 ((unsigned) (ADJ_OFFSET_SS_READ)) + #define XLAT_STR_0 STRINGIFY(ADJ_OFFSET_SS_READ) XLAT(ADJ_OFFSET_SINGLESHOT), + #define XLAT_VAL_1 ((unsigned) (ADJ_OFFSET_SINGLESHOT)) + #define XLAT_STR_1 STRINGIFY(ADJ_OFFSET_SINGLESHOT) XLAT(ADJ_OFFSET), + #define XLAT_VAL_2 ((unsigned) (ADJ_OFFSET)) + #define XLAT_STR_2 STRINGIFY(ADJ_OFFSET) XLAT(ADJ_FREQUENCY), + #define XLAT_VAL_3 ((unsigned) (ADJ_FREQUENCY)) + #define XLAT_STR_3 STRINGIFY(ADJ_FREQUENCY) XLAT(ADJ_MAXERROR), + #define XLAT_VAL_4 ((unsigned) (ADJ_MAXERROR)) + #define XLAT_STR_4 STRINGIFY(ADJ_MAXERROR) XLAT(ADJ_ESTERROR), + #define XLAT_VAL_5 ((unsigned) (ADJ_ESTERROR)) + #define XLAT_STR_5 STRINGIFY(ADJ_ESTERROR) XLAT(ADJ_STATUS), + #define XLAT_VAL_6 ((unsigned) (ADJ_STATUS)) + #define XLAT_STR_6 STRINGIFY(ADJ_STATUS) XLAT(ADJ_TIMECONST), + #define XLAT_VAL_7 ((unsigned) (ADJ_TIMECONST)) + #define XLAT_STR_7 STRINGIFY(ADJ_TIMECONST) XLAT(ADJ_TAI), + #define XLAT_VAL_8 ((unsigned) (ADJ_TAI)) + #define XLAT_STR_8 STRINGIFY(ADJ_TAI) XLAT(ADJ_SETOFFSET), + #define XLAT_VAL_9 ((unsigned) (ADJ_SETOFFSET)) + #define XLAT_STR_9 STRINGIFY(ADJ_SETOFFSET) XLAT(ADJ_MICRO), + #define XLAT_VAL_10 ((unsigned) (ADJ_MICRO)) + #define XLAT_STR_10 STRINGIFY(ADJ_MICRO) XLAT(ADJ_NANO), + #define XLAT_VAL_11 ((unsigned) (ADJ_NANO)) + #define XLAT_STR_11 STRINGIFY(ADJ_NANO) XLAT(ADJ_TICK), - XLAT_END + #define XLAT_VAL_12 ((unsigned) (ADJ_TICK)) + #define XLAT_STR_12 STRINGIFY(ADJ_TICK) }; +static +const struct xlat adjtimex_modes[1] = { { + .data = adjtimex_modes_xdata, + .size = ARRAY_SIZE(adjtimex_modes_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/adjtimex_state.h b/xlat/adjtimex_state.h index 01b760c9..af2cfd50 100644 --- a/xlat/adjtimex_state.h +++ b/xlat/adjtimex_state.h @@ -54,17 +54,85 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat adjtimex_state[] = { +static const struct xlat_data adjtimex_state_xdata[] = { [TIME_OK] = XLAT(TIME_OK), + #define XLAT_VAL_0 ((unsigned) (TIME_OK)) + #define XLAT_STR_0 STRINGIFY(TIME_OK) [TIME_INS] = XLAT(TIME_INS), + #define XLAT_VAL_1 ((unsigned) (TIME_INS)) + #define XLAT_STR_1 STRINGIFY(TIME_INS) [TIME_DEL] = XLAT(TIME_DEL), + #define XLAT_VAL_2 ((unsigned) (TIME_DEL)) + #define XLAT_STR_2 STRINGIFY(TIME_DEL) [TIME_OOP] = XLAT(TIME_OOP), + #define XLAT_VAL_3 ((unsigned) (TIME_OOP)) + #define XLAT_STR_3 STRINGIFY(TIME_OOP) [TIME_WAIT] = XLAT(TIME_WAIT), + #define XLAT_VAL_4 ((unsigned) (TIME_WAIT)) + #define XLAT_STR_4 STRINGIFY(TIME_WAIT) [TIME_ERROR] = XLAT(TIME_ERROR), - XLAT_END + #define XLAT_VAL_5 ((unsigned) (TIME_ERROR)) + #define XLAT_STR_5 STRINGIFY(TIME_ERROR) }; +static +const struct xlat adjtimex_state[1] = { { + .data = adjtimex_state_xdata, + .size = ARRAY_SIZE(adjtimex_state_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/adjtimex_status.h b/xlat/adjtimex_status.h index b9e249e2..517a7433 100644 --- a/xlat/adjtimex_status.h +++ b/xlat/adjtimex_status.h @@ -124,27 +124,195 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat adjtimex_status[] = { +static const struct xlat_data adjtimex_status_xdata[] = { XLAT(STA_PLL), + #define XLAT_VAL_0 ((unsigned) (STA_PLL)) + #define XLAT_STR_0 STRINGIFY(STA_PLL) XLAT(STA_PPSFREQ), + #define XLAT_VAL_1 ((unsigned) (STA_PPSFREQ)) + #define XLAT_STR_1 STRINGIFY(STA_PPSFREQ) XLAT(STA_PPSTIME), + #define XLAT_VAL_2 ((unsigned) (STA_PPSTIME)) + #define XLAT_STR_2 STRINGIFY(STA_PPSTIME) XLAT(STA_FLL), + #define XLAT_VAL_3 ((unsigned) (STA_FLL)) + #define XLAT_STR_3 STRINGIFY(STA_FLL) XLAT(STA_INS), + #define XLAT_VAL_4 ((unsigned) (STA_INS)) + #define XLAT_STR_4 STRINGIFY(STA_INS) XLAT(STA_DEL), + #define XLAT_VAL_5 ((unsigned) (STA_DEL)) + #define XLAT_STR_5 STRINGIFY(STA_DEL) XLAT(STA_UNSYNC), + #define XLAT_VAL_6 ((unsigned) (STA_UNSYNC)) + #define XLAT_STR_6 STRINGIFY(STA_UNSYNC) XLAT(STA_FREQHOLD), + #define XLAT_VAL_7 ((unsigned) (STA_FREQHOLD)) + #define XLAT_STR_7 STRINGIFY(STA_FREQHOLD) XLAT(STA_PPSSIGNAL), + #define XLAT_VAL_8 ((unsigned) (STA_PPSSIGNAL)) + #define XLAT_STR_8 STRINGIFY(STA_PPSSIGNAL) XLAT(STA_PPSJITTER), + #define XLAT_VAL_9 ((unsigned) (STA_PPSJITTER)) + #define XLAT_STR_9 STRINGIFY(STA_PPSJITTER) XLAT(STA_PPSWANDER), + #define XLAT_VAL_10 ((unsigned) (STA_PPSWANDER)) + #define XLAT_STR_10 STRINGIFY(STA_PPSWANDER) XLAT(STA_PPSERROR), + #define XLAT_VAL_11 ((unsigned) (STA_PPSERROR)) + #define XLAT_STR_11 STRINGIFY(STA_PPSERROR) XLAT(STA_CLOCKERR), + #define XLAT_VAL_12 ((unsigned) (STA_CLOCKERR)) + #define XLAT_STR_12 STRINGIFY(STA_CLOCKERR) XLAT(STA_NANO), + #define XLAT_VAL_13 ((unsigned) (STA_NANO)) + #define XLAT_STR_13 STRINGIFY(STA_NANO) XLAT(STA_MODE), + #define XLAT_VAL_14 ((unsigned) (STA_MODE)) + #define XLAT_STR_14 STRINGIFY(STA_MODE) XLAT(STA_CLK), - XLAT_END + #define XLAT_VAL_15 ((unsigned) (STA_CLK)) + #define XLAT_STR_15 STRINGIFY(STA_CLK) }; +static +const struct xlat adjtimex_status[1] = { { + .data = adjtimex_status_xdata, + .size = ARRAY_SIZE(adjtimex_status_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/advise.h b/xlat/advise.h index cf525228..a786ce38 100644 --- a/xlat/advise.h +++ b/xlat/advise.h @@ -71,22 +71,110 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat advise[] = { +static const struct xlat_data advise_xdata[] = { XLAT(POSIX_FADV_NORMAL), + #define XLAT_VAL_0 ((unsigned) (POSIX_FADV_NORMAL)) + #define XLAT_STR_0 STRINGIFY(POSIX_FADV_NORMAL) XLAT(POSIX_FADV_RANDOM), + #define XLAT_VAL_1 ((unsigned) (POSIX_FADV_RANDOM)) + #define XLAT_STR_1 STRINGIFY(POSIX_FADV_RANDOM) XLAT(POSIX_FADV_SEQUENTIAL), + #define XLAT_VAL_2 ((unsigned) (POSIX_FADV_SEQUENTIAL)) + #define XLAT_STR_2 STRINGIFY(POSIX_FADV_SEQUENTIAL) XLAT(POSIX_FADV_WILLNEED), + #define XLAT_VAL_3 ((unsigned) (POSIX_FADV_WILLNEED)) + #define XLAT_STR_3 STRINGIFY(POSIX_FADV_WILLNEED) #if defined __s390x__ XLAT(POSIX_FADV_DONTNEED), + #define XLAT_VAL_4 ((unsigned) (POSIX_FADV_DONTNEED)) + #define XLAT_STR_4 STRINGIFY(POSIX_FADV_DONTNEED) XLAT(POSIX_FADV_NOREUSE), + #define XLAT_VAL_5 ((unsigned) (POSIX_FADV_NOREUSE)) + #define XLAT_STR_5 STRINGIFY(POSIX_FADV_NOREUSE) #else XLAT(POSIX_FADV_DONTNEED), + #define XLAT_VAL_6 ((unsigned) (POSIX_FADV_DONTNEED)) + #define XLAT_STR_6 STRINGIFY(POSIX_FADV_DONTNEED) XLAT(POSIX_FADV_NOREUSE), + #define XLAT_VAL_7 ((unsigned) (POSIX_FADV_NOREUSE)) + #define XLAT_STR_7 STRINGIFY(POSIX_FADV_NOREUSE) #endif - XLAT_END }; +static +const struct xlat advise[1] = { { + .data = advise_xdata, + .size = ARRAY_SIZE(advise_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/af_packet_types.h b/xlat/af_packet_types.h index c104813d..6a7e2603 100644 --- a/xlat/af_packet_types.h +++ b/xlat/af_packet_types.h @@ -68,19 +68,107 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat af_packet_types[] = { +static const struct xlat_data af_packet_types_xdata[] = { [PACKET_HOST] = XLAT(PACKET_HOST), + #define XLAT_VAL_0 ((unsigned) (PACKET_HOST)) + #define XLAT_STR_0 STRINGIFY(PACKET_HOST) [PACKET_BROADCAST] = XLAT(PACKET_BROADCAST), + #define XLAT_VAL_1 ((unsigned) (PACKET_BROADCAST)) + #define XLAT_STR_1 STRINGIFY(PACKET_BROADCAST) [PACKET_MULTICAST] = XLAT(PACKET_MULTICAST), + #define XLAT_VAL_2 ((unsigned) (PACKET_MULTICAST)) + #define XLAT_STR_2 STRINGIFY(PACKET_MULTICAST) [PACKET_OTHERHOST] = XLAT(PACKET_OTHERHOST), + #define XLAT_VAL_3 ((unsigned) (PACKET_OTHERHOST)) + #define XLAT_STR_3 STRINGIFY(PACKET_OTHERHOST) [PACKET_OUTGOING] = XLAT(PACKET_OUTGOING), + #define XLAT_VAL_4 ((unsigned) (PACKET_OUTGOING)) + #define XLAT_STR_4 STRINGIFY(PACKET_OUTGOING) [PACKET_LOOPBACK] = XLAT(PACKET_LOOPBACK), + #define XLAT_VAL_5 ((unsigned) (PACKET_LOOPBACK)) + #define XLAT_STR_5 STRINGIFY(PACKET_LOOPBACK) [PACKET_USER] = XLAT(PACKET_USER), + #define XLAT_VAL_6 ((unsigned) (PACKET_USER)) + #define XLAT_STR_6 STRINGIFY(PACKET_USER) [PACKET_KERNEL] = XLAT(PACKET_KERNEL), - XLAT_END + #define XLAT_VAL_7 ((unsigned) (PACKET_KERNEL)) + #define XLAT_STR_7 STRINGIFY(PACKET_KERNEL) }; +static +const struct xlat af_packet_types[1] = { { + .data = af_packet_types_xdata, + .size = ARRAY_SIZE(af_packet_types_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/af_packet_versions.h b/xlat/af_packet_versions.h index 8d82eba9..bf3a4f4b 100644 --- a/xlat/af_packet_versions.h +++ b/xlat/af_packet_versions.h @@ -33,14 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat af_packet_versions[] = { - XLAT(TPACKET_V1), - XLAT(TPACKET_V2), - XLAT(TPACKET_V3), - XLAT_END +static const struct xlat_data af_packet_versions_xdata[] = { + [TPACKET_V1] = XLAT(TPACKET_V1), + #define XLAT_VAL_0 ((unsigned) (TPACKET_V1)) + #define XLAT_STR_0 STRINGIFY(TPACKET_V1) + [TPACKET_V2] = XLAT(TPACKET_V2), + #define XLAT_VAL_1 ((unsigned) (TPACKET_V2)) + #define XLAT_STR_1 STRINGIFY(TPACKET_V2) + [TPACKET_V3] = XLAT(TPACKET_V3), + #define XLAT_VAL_2 ((unsigned) (TPACKET_V3)) + #define XLAT_STR_2 STRINGIFY(TPACKET_V3) }; +static +const struct xlat af_packet_versions[1] = { { + .data = af_packet_versions_xdata, + .size = ARRAY_SIZE(af_packet_versions_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/af_packet_versions.in b/xlat/af_packet_versions.in index 399cdf4d..17a9f31a 100644 --- a/xlat/af_packet_versions.in +++ b/xlat/af_packet_versions.in @@ -1,3 +1,4 @@ +#value_indexed TPACKET_V1 0 TPACKET_V2 1 TPACKET_V3 2 diff --git a/xlat/aio_cmds.h b/xlat/aio_cmds.h index dd558e8e..10f1bff2 100644 --- a/xlat/aio_cmds.h +++ b/xlat/aio_cmds.h @@ -75,20 +75,118 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat aio_cmds[] = { +static const struct xlat_data aio_cmds_xdata[] = { [IOCB_CMD_PREAD] = XLAT(IOCB_CMD_PREAD), + #define XLAT_VAL_0 ((unsigned) (IOCB_CMD_PREAD)) + #define XLAT_STR_0 STRINGIFY(IOCB_CMD_PREAD) [IOCB_CMD_PWRITE] = XLAT(IOCB_CMD_PWRITE), + #define XLAT_VAL_1 ((unsigned) (IOCB_CMD_PWRITE)) + #define XLAT_STR_1 STRINGIFY(IOCB_CMD_PWRITE) [IOCB_CMD_FSYNC] = XLAT(IOCB_CMD_FSYNC), + #define XLAT_VAL_2 ((unsigned) (IOCB_CMD_FSYNC)) + #define XLAT_STR_2 STRINGIFY(IOCB_CMD_FSYNC) [IOCB_CMD_FDSYNC] = XLAT(IOCB_CMD_FDSYNC), + #define XLAT_VAL_3 ((unsigned) (IOCB_CMD_FDSYNC)) + #define XLAT_STR_3 STRINGIFY(IOCB_CMD_FDSYNC) [IOCB_CMD_PREADX] = XLAT(IOCB_CMD_PREADX), + #define XLAT_VAL_4 ((unsigned) (IOCB_CMD_PREADX)) + #define XLAT_STR_4 STRINGIFY(IOCB_CMD_PREADX) [IOCB_CMD_POLL] = XLAT(IOCB_CMD_POLL), + #define XLAT_VAL_5 ((unsigned) (IOCB_CMD_POLL)) + #define XLAT_STR_5 STRINGIFY(IOCB_CMD_POLL) [IOCB_CMD_NOOP] = XLAT(IOCB_CMD_NOOP), + #define XLAT_VAL_6 ((unsigned) (IOCB_CMD_NOOP)) + #define XLAT_STR_6 STRINGIFY(IOCB_CMD_NOOP) [IOCB_CMD_PREADV] = XLAT(IOCB_CMD_PREADV), + #define XLAT_VAL_7 ((unsigned) (IOCB_CMD_PREADV)) + #define XLAT_STR_7 STRINGIFY(IOCB_CMD_PREADV) [IOCB_CMD_PWRITEV] = XLAT(IOCB_CMD_PWRITEV), - XLAT_END + #define XLAT_VAL_8 ((unsigned) (IOCB_CMD_PWRITEV)) + #define XLAT_STR_8 STRINGIFY(IOCB_CMD_PWRITEV) }; +static +const struct xlat aio_cmds[1] = { { + .data = aio_cmds_xdata, + .size = ARRAY_SIZE(aio_cmds_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/aio_iocb_flags.h b/xlat/aio_iocb_flags.h new file mode 100644 index 00000000..f4f7960e --- /dev/null +++ b/xlat/aio_iocb_flags.h @@ -0,0 +1,66 @@ +/* Generated by ./xlat/gen.sh from ./xlat/aio_iocb_flags.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined(IOCB_FLAG_RESFD) || (defined(HAVE_DECL_IOCB_FLAG_RESFD) && HAVE_DECL_IOCB_FLAG_RESFD) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((IOCB_FLAG_RESFD) == (1), "IOCB_FLAG_RESFD != 1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define IOCB_FLAG_RESFD 1 +#endif +#if defined(IOCB_FLAG_IOPRIO) || (defined(HAVE_DECL_IOCB_FLAG_IOPRIO) && HAVE_DECL_IOCB_FLAG_IOPRIO) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((IOCB_FLAG_IOPRIO) == (2), "IOCB_FLAG_IOPRIO != 2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define IOCB_FLAG_IOPRIO 2 +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat aio_iocb_flags in mpers mode + +# else + +static const struct xlat_data aio_iocb_flags_xdata[] = { + XLAT(IOCB_FLAG_RESFD), + #define XLAT_VAL_0 ((unsigned) (IOCB_FLAG_RESFD)) + #define XLAT_STR_0 STRINGIFY(IOCB_FLAG_RESFD) + XLAT(IOCB_FLAG_IOPRIO), + #define XLAT_VAL_1 ((unsigned) (IOCB_FLAG_IOPRIO)) + #define XLAT_STR_1 STRINGIFY(IOCB_FLAG_IOPRIO) +}; +static +const struct xlat aio_iocb_flags[1] = { { + .data = aio_iocb_flags_xdata, + .size = ARRAY_SIZE(aio_iocb_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/aio_iocb_flags.in b/xlat/aio_iocb_flags.in new file mode 100644 index 00000000..f6a5ab7c --- /dev/null +++ b/xlat/aio_iocb_flags.in @@ -0,0 +1,2 @@ +IOCB_FLAG_RESFD 1 +IOCB_FLAG_IOPRIO 2 diff --git a/xlat/archvals.h b/xlat/archvals.h index 2e5264a8..7ffb255e 100644 --- a/xlat/archvals.h +++ b/xlat/archvals.h @@ -75,20 +75,118 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat archvals[] = { +static const struct xlat_data archvals_xdata[] = { XLAT(ARCH_SET_GS), + #define XLAT_VAL_0 ((unsigned) (ARCH_SET_GS)) + #define XLAT_STR_0 STRINGIFY(ARCH_SET_GS) XLAT(ARCH_SET_FS), + #define XLAT_VAL_1 ((unsigned) (ARCH_SET_FS)) + #define XLAT_STR_1 STRINGIFY(ARCH_SET_FS) XLAT(ARCH_GET_FS), + #define XLAT_VAL_2 ((unsigned) (ARCH_GET_FS)) + #define XLAT_STR_2 STRINGIFY(ARCH_GET_FS) XLAT(ARCH_GET_GS), + #define XLAT_VAL_3 ((unsigned) (ARCH_GET_GS)) + #define XLAT_STR_3 STRINGIFY(ARCH_GET_GS) XLAT(ARCH_GET_CPUID), + #define XLAT_VAL_4 ((unsigned) (ARCH_GET_CPUID)) + #define XLAT_STR_4 STRINGIFY(ARCH_GET_CPUID) XLAT(ARCH_SET_CPUID), + #define XLAT_VAL_5 ((unsigned) (ARCH_SET_CPUID)) + #define XLAT_STR_5 STRINGIFY(ARCH_SET_CPUID) XLAT(ARCH_MAP_VDSO_X32), + #define XLAT_VAL_6 ((unsigned) (ARCH_MAP_VDSO_X32)) + #define XLAT_STR_6 STRINGIFY(ARCH_MAP_VDSO_X32) XLAT(ARCH_MAP_VDSO_32), + #define XLAT_VAL_7 ((unsigned) (ARCH_MAP_VDSO_32)) + #define XLAT_STR_7 STRINGIFY(ARCH_MAP_VDSO_32) XLAT(ARCH_MAP_VDSO_64), - XLAT_END + #define XLAT_VAL_8 ((unsigned) (ARCH_MAP_VDSO_64)) + #define XLAT_STR_8 STRINGIFY(ARCH_MAP_VDSO_64) }; +static +const struct xlat archvals[1] = { { + .data = archvals_xdata, + .size = ARRAY_SIZE(archvals_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/arp_hardware_types.h b/xlat/arp_hardware_types.h index 3da3fc5a..0a6de924 100644 --- a/xlat/arp_hardware_types.h +++ b/xlat/arp_hardware_types.h @@ -470,77 +470,744 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # ifndef IN_MPERS -const struct xlat arp_hardware_types[] = { - +static const struct xlat_data arp_hardware_types_xdata[] = { XLAT(ARPHRD_NETROM), + #define XLAT_VAL_0 ((unsigned) (ARPHRD_NETROM)) + #define XLAT_STR_0 STRINGIFY(ARPHRD_NETROM) XLAT(ARPHRD_ETHER), + #define XLAT_VAL_1 ((unsigned) (ARPHRD_ETHER)) + #define XLAT_STR_1 STRINGIFY(ARPHRD_ETHER) XLAT(ARPHRD_EETHER), + #define XLAT_VAL_2 ((unsigned) (ARPHRD_EETHER)) + #define XLAT_STR_2 STRINGIFY(ARPHRD_EETHER) XLAT(ARPHRD_AX25), + #define XLAT_VAL_3 ((unsigned) (ARPHRD_AX25)) + #define XLAT_STR_3 STRINGIFY(ARPHRD_AX25) XLAT(ARPHRD_PRONET), + #define XLAT_VAL_4 ((unsigned) (ARPHRD_PRONET)) + #define XLAT_STR_4 STRINGIFY(ARPHRD_PRONET) XLAT(ARPHRD_CHAOS), + #define XLAT_VAL_5 ((unsigned) (ARPHRD_CHAOS)) + #define XLAT_STR_5 STRINGIFY(ARPHRD_CHAOS) XLAT(ARPHRD_IEEE802), + #define XLAT_VAL_6 ((unsigned) (ARPHRD_IEEE802)) + #define XLAT_STR_6 STRINGIFY(ARPHRD_IEEE802) XLAT(ARPHRD_ARCNET), + #define XLAT_VAL_7 ((unsigned) (ARPHRD_ARCNET)) + #define XLAT_STR_7 STRINGIFY(ARPHRD_ARCNET) XLAT(ARPHRD_APPLETLK), + #define XLAT_VAL_8 ((unsigned) (ARPHRD_APPLETLK)) + #define XLAT_STR_8 STRINGIFY(ARPHRD_APPLETLK) XLAT(ARPHRD_DLCI), + #define XLAT_VAL_9 ((unsigned) (ARPHRD_DLCI)) + #define XLAT_STR_9 STRINGIFY(ARPHRD_DLCI) XLAT(ARPHRD_ATM), + #define XLAT_VAL_10 ((unsigned) (ARPHRD_ATM)) + #define XLAT_STR_10 STRINGIFY(ARPHRD_ATM) XLAT(ARPHRD_METRICOM), + #define XLAT_VAL_11 ((unsigned) (ARPHRD_METRICOM)) + #define XLAT_STR_11 STRINGIFY(ARPHRD_METRICOM) XLAT(ARPHRD_IEEE1394), + #define XLAT_VAL_12 ((unsigned) (ARPHRD_IEEE1394)) + #define XLAT_STR_12 STRINGIFY(ARPHRD_IEEE1394) XLAT(ARPHRD_EUI64), + #define XLAT_VAL_13 ((unsigned) (ARPHRD_EUI64)) + #define XLAT_STR_13 STRINGIFY(ARPHRD_EUI64) XLAT(ARPHRD_INFINIBAND), + #define XLAT_VAL_14 ((unsigned) (ARPHRD_INFINIBAND)) + #define XLAT_STR_14 STRINGIFY(ARPHRD_INFINIBAND) XLAT(ARPHRD_SLIP), + #define XLAT_VAL_15 ((unsigned) (ARPHRD_SLIP)) + #define XLAT_STR_15 STRINGIFY(ARPHRD_SLIP) XLAT(ARPHRD_CSLIP), + #define XLAT_VAL_16 ((unsigned) (ARPHRD_CSLIP)) + #define XLAT_STR_16 STRINGIFY(ARPHRD_CSLIP) XLAT(ARPHRD_SLIP6), + #define XLAT_VAL_17 ((unsigned) (ARPHRD_SLIP6)) + #define XLAT_STR_17 STRINGIFY(ARPHRD_SLIP6) XLAT(ARPHRD_CSLIP6), + #define XLAT_VAL_18 ((unsigned) (ARPHRD_CSLIP6)) + #define XLAT_STR_18 STRINGIFY(ARPHRD_CSLIP6) XLAT(ARPHRD_RSRVD), + #define XLAT_VAL_19 ((unsigned) (ARPHRD_RSRVD)) + #define XLAT_STR_19 STRINGIFY(ARPHRD_RSRVD) XLAT(ARPHRD_ADAPT), + #define XLAT_VAL_20 ((unsigned) (ARPHRD_ADAPT)) + #define XLAT_STR_20 STRINGIFY(ARPHRD_ADAPT) XLAT(ARPHRD_ROSE), + #define XLAT_VAL_21 ((unsigned) (ARPHRD_ROSE)) + #define XLAT_STR_21 STRINGIFY(ARPHRD_ROSE) XLAT(ARPHRD_X25), + #define XLAT_VAL_22 ((unsigned) (ARPHRD_X25)) + #define XLAT_STR_22 STRINGIFY(ARPHRD_X25) XLAT(ARPHRD_HWX25), + #define XLAT_VAL_23 ((unsigned) (ARPHRD_HWX25)) + #define XLAT_STR_23 STRINGIFY(ARPHRD_HWX25) XLAT(ARPHRD_CAN), + #define XLAT_VAL_24 ((unsigned) (ARPHRD_CAN)) + #define XLAT_STR_24 STRINGIFY(ARPHRD_CAN) XLAT(ARPHRD_PPP), + #define XLAT_VAL_25 ((unsigned) (ARPHRD_PPP)) + #define XLAT_STR_25 STRINGIFY(ARPHRD_PPP) XLAT(ARPHRD_CISCO), + #define XLAT_VAL_26 ((unsigned) (ARPHRD_CISCO)) + #define XLAT_STR_26 STRINGIFY(ARPHRD_CISCO) XLAT(ARPHRD_LAPB), + #define XLAT_VAL_27 ((unsigned) (ARPHRD_LAPB)) + #define XLAT_STR_27 STRINGIFY(ARPHRD_LAPB) XLAT(ARPHRD_DDCMP), + #define XLAT_VAL_28 ((unsigned) (ARPHRD_DDCMP)) + #define XLAT_STR_28 STRINGIFY(ARPHRD_DDCMP) XLAT(ARPHRD_RAWHDLC), + #define XLAT_VAL_29 ((unsigned) (ARPHRD_RAWHDLC)) + #define XLAT_STR_29 STRINGIFY(ARPHRD_RAWHDLC) XLAT(ARPHRD_RAWIP), + #define XLAT_VAL_30 ((unsigned) (ARPHRD_RAWIP)) + #define XLAT_STR_30 STRINGIFY(ARPHRD_RAWIP) XLAT(ARPHRD_TUNNEL), + #define XLAT_VAL_31 ((unsigned) (ARPHRD_TUNNEL)) + #define XLAT_STR_31 STRINGIFY(ARPHRD_TUNNEL) XLAT(ARPHRD_TUNNEL6), + #define XLAT_VAL_32 ((unsigned) (ARPHRD_TUNNEL6)) + #define XLAT_STR_32 STRINGIFY(ARPHRD_TUNNEL6) XLAT(ARPHRD_FRAD), + #define XLAT_VAL_33 ((unsigned) (ARPHRD_FRAD)) + #define XLAT_STR_33 STRINGIFY(ARPHRD_FRAD) XLAT(ARPHRD_SKIP), + #define XLAT_VAL_34 ((unsigned) (ARPHRD_SKIP)) + #define XLAT_STR_34 STRINGIFY(ARPHRD_SKIP) XLAT(ARPHRD_LOOPBACK), + #define XLAT_VAL_35 ((unsigned) (ARPHRD_LOOPBACK)) + #define XLAT_STR_35 STRINGIFY(ARPHRD_LOOPBACK) XLAT(ARPHRD_LOCALTLK), + #define XLAT_VAL_36 ((unsigned) (ARPHRD_LOCALTLK)) + #define XLAT_STR_36 STRINGIFY(ARPHRD_LOCALTLK) XLAT(ARPHRD_FDDI), + #define XLAT_VAL_37 ((unsigned) (ARPHRD_FDDI)) + #define XLAT_STR_37 STRINGIFY(ARPHRD_FDDI) XLAT(ARPHRD_BIF), + #define XLAT_VAL_38 ((unsigned) (ARPHRD_BIF)) + #define XLAT_STR_38 STRINGIFY(ARPHRD_BIF) XLAT(ARPHRD_SIT), + #define XLAT_VAL_39 ((unsigned) (ARPHRD_SIT)) + #define XLAT_STR_39 STRINGIFY(ARPHRD_SIT) XLAT(ARPHRD_IPDDP), + #define XLAT_VAL_40 ((unsigned) (ARPHRD_IPDDP)) + #define XLAT_STR_40 STRINGIFY(ARPHRD_IPDDP) XLAT(ARPHRD_IPGRE), + #define XLAT_VAL_41 ((unsigned) (ARPHRD_IPGRE)) + #define XLAT_STR_41 STRINGIFY(ARPHRD_IPGRE) XLAT(ARPHRD_PIMREG), + #define XLAT_VAL_42 ((unsigned) (ARPHRD_PIMREG)) + #define XLAT_STR_42 STRINGIFY(ARPHRD_PIMREG) XLAT(ARPHRD_HIPPI), + #define XLAT_VAL_43 ((unsigned) (ARPHRD_HIPPI)) + #define XLAT_STR_43 STRINGIFY(ARPHRD_HIPPI) XLAT(ARPHRD_ASH), + #define XLAT_VAL_44 ((unsigned) (ARPHRD_ASH)) + #define XLAT_STR_44 STRINGIFY(ARPHRD_ASH) XLAT(ARPHRD_ECONET), + #define XLAT_VAL_45 ((unsigned) (ARPHRD_ECONET)) + #define XLAT_STR_45 STRINGIFY(ARPHRD_ECONET) XLAT(ARPHRD_IRDA), + #define XLAT_VAL_46 ((unsigned) (ARPHRD_IRDA)) + #define XLAT_STR_46 STRINGIFY(ARPHRD_IRDA) XLAT(ARPHRD_FCPP), + #define XLAT_VAL_47 ((unsigned) (ARPHRD_FCPP)) + #define XLAT_STR_47 STRINGIFY(ARPHRD_FCPP) XLAT(ARPHRD_FCAL), + #define XLAT_VAL_48 ((unsigned) (ARPHRD_FCAL)) + #define XLAT_STR_48 STRINGIFY(ARPHRD_FCAL) XLAT(ARPHRD_FCPL), + #define XLAT_VAL_49 ((unsigned) (ARPHRD_FCPL)) + #define XLAT_STR_49 STRINGIFY(ARPHRD_FCPL) XLAT(ARPHRD_FCFABRIC), + #define XLAT_VAL_50 ((unsigned) (ARPHRD_FCFABRIC)) + #define XLAT_STR_50 STRINGIFY(ARPHRD_FCFABRIC) XLAT(ARPHRD_IEEE802_TR), + #define XLAT_VAL_51 ((unsigned) (ARPHRD_IEEE802_TR)) + #define XLAT_STR_51 STRINGIFY(ARPHRD_IEEE802_TR) XLAT(ARPHRD_IEEE80211), + #define XLAT_VAL_52 ((unsigned) (ARPHRD_IEEE80211)) + #define XLAT_STR_52 STRINGIFY(ARPHRD_IEEE80211) XLAT(ARPHRD_IEEE80211_PRISM), + #define XLAT_VAL_53 ((unsigned) (ARPHRD_IEEE80211_PRISM)) + #define XLAT_STR_53 STRINGIFY(ARPHRD_IEEE80211_PRISM) XLAT(ARPHRD_IEEE80211_RADIOTAP), + #define XLAT_VAL_54 ((unsigned) (ARPHRD_IEEE80211_RADIOTAP)) + #define XLAT_STR_54 STRINGIFY(ARPHRD_IEEE80211_RADIOTAP) XLAT(ARPHRD_IEEE802154), + #define XLAT_VAL_55 ((unsigned) (ARPHRD_IEEE802154)) + #define XLAT_STR_55 STRINGIFY(ARPHRD_IEEE802154) XLAT(ARPHRD_IEEE802154_MONITOR), + #define XLAT_VAL_56 ((unsigned) (ARPHRD_IEEE802154_MONITOR)) + #define XLAT_STR_56 STRINGIFY(ARPHRD_IEEE802154_MONITOR) XLAT(ARPHRD_PHONET), + #define XLAT_VAL_57 ((unsigned) (ARPHRD_PHONET)) + #define XLAT_STR_57 STRINGIFY(ARPHRD_PHONET) XLAT(ARPHRD_PHONET_PIPE), + #define XLAT_VAL_58 ((unsigned) (ARPHRD_PHONET_PIPE)) + #define XLAT_STR_58 STRINGIFY(ARPHRD_PHONET_PIPE) XLAT(ARPHRD_CAIF), + #define XLAT_VAL_59 ((unsigned) (ARPHRD_CAIF)) + #define XLAT_STR_59 STRINGIFY(ARPHRD_CAIF) XLAT(ARPHRD_IP6GRE), + #define XLAT_VAL_60 ((unsigned) (ARPHRD_IP6GRE)) + #define XLAT_STR_60 STRINGIFY(ARPHRD_IP6GRE) XLAT(ARPHRD_NETLINK), + #define XLAT_VAL_61 ((unsigned) (ARPHRD_NETLINK)) + #define XLAT_STR_61 STRINGIFY(ARPHRD_NETLINK) XLAT(ARPHRD_6LOWPAN), + #define XLAT_VAL_62 ((unsigned) (ARPHRD_6LOWPAN)) + #define XLAT_STR_62 STRINGIFY(ARPHRD_6LOWPAN) XLAT(ARPHRD_VSOCKMON), + #define XLAT_VAL_63 ((unsigned) (ARPHRD_VSOCKMON)) + #define XLAT_STR_63 STRINGIFY(ARPHRD_VSOCKMON) XLAT(ARPHRD_NONE), + #define XLAT_VAL_64 ((unsigned) (ARPHRD_NONE)) + #define XLAT_STR_64 STRINGIFY(ARPHRD_NONE) XLAT(ARPHRD_VOID), - XLAT_END + #define XLAT_VAL_65 ((unsigned) (ARPHRD_VOID)) + #define XLAT_STR_65 STRINGIFY(ARPHRD_VOID) }; +const struct xlat arp_hardware_types[1] = { { + .data = arp_hardware_types_xdata, + .size = ARRAY_SIZE(arp_hardware_types_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif +# ifdef XLAT_VAL_41 + | XLAT_VAL_41 +# endif +# ifdef XLAT_VAL_42 + | XLAT_VAL_42 +# endif +# ifdef XLAT_VAL_43 + | XLAT_VAL_43 +# endif +# ifdef XLAT_VAL_44 + | XLAT_VAL_44 +# endif +# ifdef XLAT_VAL_45 + | XLAT_VAL_45 +# endif +# ifdef XLAT_VAL_46 + | XLAT_VAL_46 +# endif +# ifdef XLAT_VAL_47 + | XLAT_VAL_47 +# endif +# ifdef XLAT_VAL_48 + | XLAT_VAL_48 +# endif +# ifdef XLAT_VAL_49 + | XLAT_VAL_49 +# endif +# ifdef XLAT_VAL_50 + | XLAT_VAL_50 +# endif +# ifdef XLAT_VAL_51 + | XLAT_VAL_51 +# endif +# ifdef XLAT_VAL_52 + | XLAT_VAL_52 +# endif +# ifdef XLAT_VAL_53 + | XLAT_VAL_53 +# endif +# ifdef XLAT_VAL_54 + | XLAT_VAL_54 +# endif +# ifdef XLAT_VAL_55 + | XLAT_VAL_55 +# endif +# ifdef XLAT_VAL_56 + | XLAT_VAL_56 +# endif +# ifdef XLAT_VAL_57 + | XLAT_VAL_57 +# endif +# ifdef XLAT_VAL_58 + | XLAT_VAL_58 +# endif +# ifdef XLAT_VAL_59 + | XLAT_VAL_59 +# endif +# ifdef XLAT_VAL_60 + | XLAT_VAL_60 +# endif +# ifdef XLAT_VAL_61 + | XLAT_VAL_61 +# endif +# ifdef XLAT_VAL_62 + | XLAT_VAL_62 +# endif +# ifdef XLAT_VAL_63 + | XLAT_VAL_63 +# endif +# ifdef XLAT_VAL_64 + | XLAT_VAL_64 +# endif +# ifdef XLAT_VAL_65 + | XLAT_VAL_65 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif +# ifdef XLAT_STR_41 + + sizeof(XLAT_STR_41) +# endif +# ifdef XLAT_STR_42 + + sizeof(XLAT_STR_42) +# endif +# ifdef XLAT_STR_43 + + sizeof(XLAT_STR_43) +# endif +# ifdef XLAT_STR_44 + + sizeof(XLAT_STR_44) +# endif +# ifdef XLAT_STR_45 + + sizeof(XLAT_STR_45) +# endif +# ifdef XLAT_STR_46 + + sizeof(XLAT_STR_46) +# endif +# ifdef XLAT_STR_47 + + sizeof(XLAT_STR_47) +# endif +# ifdef XLAT_STR_48 + + sizeof(XLAT_STR_48) +# endif +# ifdef XLAT_STR_49 + + sizeof(XLAT_STR_49) +# endif +# ifdef XLAT_STR_50 + + sizeof(XLAT_STR_50) +# endif +# ifdef XLAT_STR_51 + + sizeof(XLAT_STR_51) +# endif +# ifdef XLAT_STR_52 + + sizeof(XLAT_STR_52) +# endif +# ifdef XLAT_STR_53 + + sizeof(XLAT_STR_53) +# endif +# ifdef XLAT_STR_54 + + sizeof(XLAT_STR_54) +# endif +# ifdef XLAT_STR_55 + + sizeof(XLAT_STR_55) +# endif +# ifdef XLAT_STR_56 + + sizeof(XLAT_STR_56) +# endif +# ifdef XLAT_STR_57 + + sizeof(XLAT_STR_57) +# endif +# ifdef XLAT_STR_58 + + sizeof(XLAT_STR_58) +# endif +# ifdef XLAT_STR_59 + + sizeof(XLAT_STR_59) +# endif +# ifdef XLAT_STR_60 + + sizeof(XLAT_STR_60) +# endif +# ifdef XLAT_STR_61 + + sizeof(XLAT_STR_61) +# endif +# ifdef XLAT_STR_62 + + sizeof(XLAT_STR_62) +# endif +# ifdef XLAT_STR_63 + + sizeof(XLAT_STR_63) +# endif +# ifdef XLAT_STR_64 + + sizeof(XLAT_STR_64) +# endif +# ifdef XLAT_STR_65 + + sizeof(XLAT_STR_65) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 +# undef XLAT_STR_41 +# undef XLAT_VAL_41 +# undef XLAT_STR_42 +# undef XLAT_VAL_42 +# undef XLAT_STR_43 +# undef XLAT_VAL_43 +# undef XLAT_STR_44 +# undef XLAT_VAL_44 +# undef XLAT_STR_45 +# undef XLAT_VAL_45 +# undef XLAT_STR_46 +# undef XLAT_VAL_46 +# undef XLAT_STR_47 +# undef XLAT_VAL_47 +# undef XLAT_STR_48 +# undef XLAT_VAL_48 +# undef XLAT_STR_49 +# undef XLAT_VAL_49 +# undef XLAT_STR_50 +# undef XLAT_VAL_50 +# undef XLAT_STR_51 +# undef XLAT_VAL_51 +# undef XLAT_STR_52 +# undef XLAT_VAL_52 +# undef XLAT_STR_53 +# undef XLAT_VAL_53 +# undef XLAT_STR_54 +# undef XLAT_VAL_54 +# undef XLAT_STR_55 +# undef XLAT_VAL_55 +# undef XLAT_STR_56 +# undef XLAT_VAL_56 +# undef XLAT_STR_57 +# undef XLAT_VAL_57 +# undef XLAT_STR_58 +# undef XLAT_VAL_58 +# undef XLAT_STR_59 +# undef XLAT_VAL_59 +# undef XLAT_STR_60 +# undef XLAT_VAL_60 +# undef XLAT_STR_61 +# undef XLAT_VAL_61 +# undef XLAT_STR_62 +# undef XLAT_VAL_62 +# undef XLAT_STR_63 +# undef XLAT_VAL_63 +# undef XLAT_STR_64 +# undef XLAT_VAL_64 +# undef XLAT_STR_65 +# undef XLAT_VAL_65 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/arp_hardware_types.in b/xlat/arp_hardware_types.in index 3d81314a..9b57da34 100644 --- a/xlat/arp_hardware_types.in +++ b/xlat/arp_hardware_types.in @@ -1,4 +1,4 @@ -/* sort -k2,2g */ +#sorted sort -k2,2g ARPHRD_NETROM 0 ARPHRD_ETHER 1 ARPHRD_EETHER 2 diff --git a/xlat/at_flags.h b/xlat/at_flags.h index bb16a8ef..9cc26fd0 100644 --- a/xlat/at_flags.h +++ b/xlat/at_flags.h @@ -38,20 +38,96 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define AT_EMPTY_PATH 0x1000 #endif +#if defined(AT_RECURSIVE) || (defined(HAVE_DECL_AT_RECURSIVE) && HAVE_DECL_AT_RECURSIVE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AT_RECURSIVE) == (0x8000), "AT_RECURSIVE != 0x8000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AT_RECURSIVE 0x8000 +#endif #ifndef XLAT_MACROS_ONLY # ifndef IN_MPERS -const struct xlat at_flags[] = { +static const struct xlat_data at_flags_xdata[] = { XLAT(AT_SYMLINK_NOFOLLOW), + #define XLAT_VAL_0 ((unsigned) (AT_SYMLINK_NOFOLLOW)) + #define XLAT_STR_0 STRINGIFY(AT_SYMLINK_NOFOLLOW) XLAT(AT_REMOVEDIR), + #define XLAT_VAL_1 ((unsigned) (AT_REMOVEDIR)) + #define XLAT_STR_1 STRINGIFY(AT_REMOVEDIR) XLAT(AT_SYMLINK_FOLLOW), + #define XLAT_VAL_2 ((unsigned) (AT_SYMLINK_FOLLOW)) + #define XLAT_STR_2 STRINGIFY(AT_SYMLINK_FOLLOW) XLAT(AT_NO_AUTOMOUNT), + #define XLAT_VAL_3 ((unsigned) (AT_NO_AUTOMOUNT)) + #define XLAT_STR_3 STRINGIFY(AT_NO_AUTOMOUNT) XLAT(AT_EMPTY_PATH), - XLAT_END + #define XLAT_VAL_4 ((unsigned) (AT_EMPTY_PATH)) + #define XLAT_STR_4 STRINGIFY(AT_EMPTY_PATH) + XLAT(AT_RECURSIVE), + #define XLAT_VAL_5 ((unsigned) (AT_RECURSIVE)) + #define XLAT_STR_5 STRINGIFY(AT_RECURSIVE) }; +const struct xlat at_flags[1] = { { + .data = at_flags_xdata, + .size = ARRAY_SIZE(at_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/at_flags.in b/xlat/at_flags.in index 77a8de9b..6fe23892 100644 --- a/xlat/at_flags.in +++ b/xlat/at_flags.in @@ -3,3 +3,4 @@ AT_REMOVEDIR 0x200 AT_SYMLINK_FOLLOW 0x400 AT_NO_AUTOMOUNT 0x800 AT_EMPTY_PATH 0x1000 +AT_RECURSIVE 0x8000 diff --git a/xlat/at_statx_sync_types.h b/xlat/at_statx_sync_types.h index 2850d53e..ff1cb350 100644 --- a/xlat/at_statx_sync_types.h +++ b/xlat/at_statx_sync_types.h @@ -40,16 +40,64 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat at_statx_sync_types[] = { +static const struct xlat_data at_statx_sync_types_xdata[] = { XLAT(AT_STATX_SYNC_AS_STAT), + #define XLAT_VAL_0 ((unsigned) (AT_STATX_SYNC_AS_STAT)) + #define XLAT_STR_0 STRINGIFY(AT_STATX_SYNC_AS_STAT) XLAT(AT_STATX_FORCE_SYNC), + #define XLAT_VAL_1 ((unsigned) (AT_STATX_FORCE_SYNC)) + #define XLAT_STR_1 STRINGIFY(AT_STATX_FORCE_SYNC) XLAT(AT_STATX_DONT_SYNC), + #define XLAT_VAL_2 ((unsigned) (AT_STATX_DONT_SYNC)) + #define XLAT_STR_2 STRINGIFY(AT_STATX_DONT_SYNC) XLAT(AT_STATX_SYNC_TYPE), - XLAT_END + #define XLAT_VAL_3 ((unsigned) (AT_STATX_SYNC_TYPE)) + #define XLAT_STR_3 STRINGIFY(AT_STATX_SYNC_TYPE) }; +static +const struct xlat at_statx_sync_types[1] = { { + .data = at_statx_sync_types_xdata, + .size = ARRAY_SIZE(at_statx_sync_types_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/atomic_ops.h b/xlat/atomic_ops.h index 17e0323d..71be16dd 100644 --- a/xlat/atomic_ops.h +++ b/xlat/atomic_ops.h @@ -12,8 +12,7 @@ # else -static -const struct xlat atomic_ops[] = { +static const struct xlat_data atomic_ops_xdata[] = { { OR1K_ATOMIC_SWAP, "SWAP" }, { OR1K_ATOMIC_CMPXCHG, "CMPXCHG" }, { OR1K_ATOMIC_XCHG, "XCHG" }, @@ -23,8 +22,17 @@ const struct xlat atomic_ops[] = { { OR1K_ATOMIC_OR, "OR" }, { OR1K_ATOMIC_UMAX, "UMAX" }, { OR1K_ATOMIC_UMIN, "UMIN" }, - XLAT_END }; +static +const struct xlat atomic_ops[1] = { { + .data = atomic_ops_xdata, + .size = ARRAY_SIZE(atomic_ops_xdata), + .type = XT_NORMAL, + .flags_mask = 0 + , + .flags_strsz = 0 + , +} }; # endif /* !IN_MPERS */ diff --git a/xlat/audit_arch.h b/xlat/audit_arch.h index fbeb0f54..b823bb1c 100644 --- a/xlat/audit_arch.h +++ b/xlat/audit_arch.h @@ -3,128 +3,978 @@ #include "gcc_compat.h" #include "static_assert.h" -#ifdef EM_ARM +#ifndef __AUDIT_ARCH_CONVENTION_MIPS64_N32 +# define __AUDIT_ARCH_CONVENTION_MIPS64_N32 0x20000000 #endif -#ifdef EM_FRV +#ifndef __AUDIT_ARCH_64BIT +# define __AUDIT_ARCH_64BIT 0x80000000 #endif -#ifdef EM_MICROBLAZE +#ifndef __AUDIT_ARCH_LE +# define __AUDIT_ARCH_LE 0x40000000 #endif -#ifdef EM_OPENRISC -#endif - -#ifndef XLAT_MACROS_ONLY - -# ifndef IN_MPERS - -const struct xlat audit_arch[] = { - #if defined(AUDIT_ARCH_AARCH64) || (defined(HAVE_DECL_AUDIT_ARCH_AARCH64) && HAVE_DECL_AUDIT_ARCH_AARCH64) - XLAT(AUDIT_ARCH_AARCH64), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_AARCH64) == ((EM_AARCH64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)), "AUDIT_ARCH_AARCH64 != (EM_AARCH64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_AARCH64 (EM_AARCH64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) #endif #if defined(AUDIT_ARCH_ALPHA) || (defined(HAVE_DECL_AUDIT_ARCH_ALPHA) && HAVE_DECL_AUDIT_ARCH_ALPHA) - XLAT(AUDIT_ARCH_ALPHA), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_ALPHA) == ((EM_ALPHA|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)), "AUDIT_ARCH_ALPHA != (EM_ALPHA|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_ALPHA (EM_ALPHA|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) +#endif +#if defined(AUDIT_ARCH_ARCOMPACT) || (defined(HAVE_DECL_AUDIT_ARCH_ARCOMPACT) && HAVE_DECL_AUDIT_ARCH_ARCOMPACT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_ARCOMPACT) == ((EM_ARCOMPACT|__AUDIT_ARCH_LE)), "AUDIT_ARCH_ARCOMPACT != (EM_ARCOMPACT|__AUDIT_ARCH_LE)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_ARCOMPACT (EM_ARCOMPACT|__AUDIT_ARCH_LE) +#endif +#if defined(AUDIT_ARCH_ARCOMPACTBE) || (defined(HAVE_DECL_AUDIT_ARCH_ARCOMPACTBE) && HAVE_DECL_AUDIT_ARCH_ARCOMPACTBE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_ARCOMPACTBE) == ((EM_ARCOMPACT)), "AUDIT_ARCH_ARCOMPACTBE != (EM_ARCOMPACT)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_ARCOMPACTBE (EM_ARCOMPACT) +#endif +#if defined(AUDIT_ARCH_ARCV2) || (defined(HAVE_DECL_AUDIT_ARCH_ARCV2) && HAVE_DECL_AUDIT_ARCH_ARCV2) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_ARCV2) == ((EM_ARCV2|__AUDIT_ARCH_LE)), "AUDIT_ARCH_ARCV2 != (EM_ARCV2|__AUDIT_ARCH_LE)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_ARCV2 (EM_ARCV2|__AUDIT_ARCH_LE) +#endif +#if defined(AUDIT_ARCH_ARCV2BE) || (defined(HAVE_DECL_AUDIT_ARCH_ARCV2BE) && HAVE_DECL_AUDIT_ARCH_ARCV2BE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_ARCV2BE) == ((EM_ARCV2)), "AUDIT_ARCH_ARCV2BE != (EM_ARCV2)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_ARCV2BE (EM_ARCV2) #endif -#ifdef EM_ARM #if defined(AUDIT_ARCH_ARM) || (defined(HAVE_DECL_AUDIT_ARCH_ARM) && HAVE_DECL_AUDIT_ARCH_ARM) - XLAT(AUDIT_ARCH_ARM), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_ARM) == ((EM_ARM|__AUDIT_ARCH_LE)), "AUDIT_ARCH_ARM != (EM_ARM|__AUDIT_ARCH_LE)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_ARM (EM_ARM|__AUDIT_ARCH_LE) #endif #if defined(AUDIT_ARCH_ARMEB) || (defined(HAVE_DECL_AUDIT_ARCH_ARMEB) && HAVE_DECL_AUDIT_ARCH_ARMEB) - XLAT(AUDIT_ARCH_ARMEB), -#endif +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_ARMEB) == ((EM_ARM)), "AUDIT_ARCH_ARMEB != (EM_ARM)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_ARMEB (EM_ARM) +#endif +#if defined(AUDIT_ARCH_C6X) || (defined(HAVE_DECL_AUDIT_ARCH_C6X) && HAVE_DECL_AUDIT_ARCH_C6X) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_C6X) == ((EM_TI_C6000|__AUDIT_ARCH_LE)), "AUDIT_ARCH_C6X != (EM_TI_C6000|__AUDIT_ARCH_LE)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_C6X (EM_TI_C6000|__AUDIT_ARCH_LE) +#endif +#if defined(AUDIT_ARCH_C6XBE) || (defined(HAVE_DECL_AUDIT_ARCH_C6XBE) && HAVE_DECL_AUDIT_ARCH_C6XBE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_C6XBE) == ((EM_TI_C6000)), "AUDIT_ARCH_C6XBE != (EM_TI_C6000)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_C6XBE (EM_TI_C6000) #endif #if defined(AUDIT_ARCH_CRIS) || (defined(HAVE_DECL_AUDIT_ARCH_CRIS) && HAVE_DECL_AUDIT_ARCH_CRIS) - XLAT(AUDIT_ARCH_CRIS), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_CRIS) == ((EM_CRIS|__AUDIT_ARCH_LE)), "AUDIT_ARCH_CRIS != (EM_CRIS|__AUDIT_ARCH_LE)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_CRIS (EM_CRIS|__AUDIT_ARCH_LE) +#endif +#if defined(AUDIT_ARCH_CSKY) || (defined(HAVE_DECL_AUDIT_ARCH_CSKY) && HAVE_DECL_AUDIT_ARCH_CSKY) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_CSKY) == ((EM_CSKY|__AUDIT_ARCH_LE)), "AUDIT_ARCH_CSKY != (EM_CSKY|__AUDIT_ARCH_LE)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_CSKY (EM_CSKY|__AUDIT_ARCH_LE) #endif -#ifdef EM_FRV #if defined(AUDIT_ARCH_FRV) || (defined(HAVE_DECL_AUDIT_ARCH_FRV) && HAVE_DECL_AUDIT_ARCH_FRV) - XLAT(AUDIT_ARCH_FRV), -#endif +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_FRV) == ((EM_FRV)), "AUDIT_ARCH_FRV != (EM_FRV)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_FRV (EM_FRV) +#endif +#if defined(AUDIT_ARCH_H8300) || (defined(HAVE_DECL_AUDIT_ARCH_H8300) && HAVE_DECL_AUDIT_ARCH_H8300) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_H8300) == ((EM_H8_300)), "AUDIT_ARCH_H8300 != (EM_H8_300)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_H8300 (EM_H8_300) +#endif +#if defined(AUDIT_ARCH_HEXAGON) || (defined(HAVE_DECL_AUDIT_ARCH_HEXAGON) && HAVE_DECL_AUDIT_ARCH_HEXAGON) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_HEXAGON) == ((EM_HEXAGON)), "AUDIT_ARCH_HEXAGON != (EM_HEXAGON)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_HEXAGON (EM_HEXAGON) #endif #if defined(AUDIT_ARCH_I386) || (defined(HAVE_DECL_AUDIT_ARCH_I386) && HAVE_DECL_AUDIT_ARCH_I386) - XLAT(AUDIT_ARCH_I386), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_I386) == ((EM_386|__AUDIT_ARCH_LE)), "AUDIT_ARCH_I386 != (EM_386|__AUDIT_ARCH_LE)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_I386 (EM_386|__AUDIT_ARCH_LE) #endif #if defined(AUDIT_ARCH_IA64) || (defined(HAVE_DECL_AUDIT_ARCH_IA64) && HAVE_DECL_AUDIT_ARCH_IA64) - XLAT(AUDIT_ARCH_IA64), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_IA64) == ((EM_IA_64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)), "AUDIT_ARCH_IA64 != (EM_IA_64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_IA64 (EM_IA_64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) #endif #if defined(AUDIT_ARCH_M32R) || (defined(HAVE_DECL_AUDIT_ARCH_M32R) && HAVE_DECL_AUDIT_ARCH_M32R) - XLAT(AUDIT_ARCH_M32R), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_M32R) == ((EM_M32R)), "AUDIT_ARCH_M32R != (EM_M32R)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_M32R (EM_M32R) #endif #if defined(AUDIT_ARCH_M68K) || (defined(HAVE_DECL_AUDIT_ARCH_M68K) && HAVE_DECL_AUDIT_ARCH_M68K) - XLAT(AUDIT_ARCH_M68K), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_M68K) == ((EM_68K)), "AUDIT_ARCH_M68K != (EM_68K)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_M68K (EM_68K) #endif -#ifdef EM_MICROBLAZE #if defined(AUDIT_ARCH_MICROBLAZE) || (defined(HAVE_DECL_AUDIT_ARCH_MICROBLAZE) && HAVE_DECL_AUDIT_ARCH_MICROBLAZE) - XLAT(AUDIT_ARCH_MICROBLAZE), -#endif +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_MICROBLAZE) == ((EM_MICROBLAZE)), "AUDIT_ARCH_MICROBLAZE != (EM_MICROBLAZE)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_MICROBLAZE (EM_MICROBLAZE) #endif #if defined(AUDIT_ARCH_MIPS) || (defined(HAVE_DECL_AUDIT_ARCH_MIPS) && HAVE_DECL_AUDIT_ARCH_MIPS) - XLAT(AUDIT_ARCH_MIPS), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_MIPS) == ((EM_MIPS)), "AUDIT_ARCH_MIPS != (EM_MIPS)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_MIPS (EM_MIPS) #endif #if defined(AUDIT_ARCH_MIPS64) || (defined(HAVE_DECL_AUDIT_ARCH_MIPS64) && HAVE_DECL_AUDIT_ARCH_MIPS64) - XLAT(AUDIT_ARCH_MIPS64), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_MIPS64) == ((EM_MIPS|__AUDIT_ARCH_64BIT)), "AUDIT_ARCH_MIPS64 != (EM_MIPS|__AUDIT_ARCH_64BIT)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_MIPS64 (EM_MIPS|__AUDIT_ARCH_64BIT) #endif #if defined(AUDIT_ARCH_MIPS64N32) || (defined(HAVE_DECL_AUDIT_ARCH_MIPS64N32) && HAVE_DECL_AUDIT_ARCH_MIPS64N32) - XLAT(AUDIT_ARCH_MIPS64N32), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_MIPS64N32) == ((EM_MIPS|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_CONVENTION_MIPS64_N32)), "AUDIT_ARCH_MIPS64N32 != (EM_MIPS|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_CONVENTION_MIPS64_N32)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_MIPS64N32 (EM_MIPS|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_CONVENTION_MIPS64_N32) #endif #if defined(AUDIT_ARCH_MIPSEL) || (defined(HAVE_DECL_AUDIT_ARCH_MIPSEL) && HAVE_DECL_AUDIT_ARCH_MIPSEL) - XLAT(AUDIT_ARCH_MIPSEL), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_MIPSEL) == ((EM_MIPS|__AUDIT_ARCH_LE)), "AUDIT_ARCH_MIPSEL != (EM_MIPS|__AUDIT_ARCH_LE)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_MIPSEL (EM_MIPS|__AUDIT_ARCH_LE) #endif #if defined(AUDIT_ARCH_MIPSEL64) || (defined(HAVE_DECL_AUDIT_ARCH_MIPSEL64) && HAVE_DECL_AUDIT_ARCH_MIPSEL64) - XLAT(AUDIT_ARCH_MIPSEL64), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_MIPSEL64) == ((EM_MIPS|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)), "AUDIT_ARCH_MIPSEL64 != (EM_MIPS|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_MIPSEL64 (EM_MIPS|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) #endif #if defined(AUDIT_ARCH_MIPSEL64N32) || (defined(HAVE_DECL_AUDIT_ARCH_MIPSEL64N32) && HAVE_DECL_AUDIT_ARCH_MIPSEL64N32) - XLAT(AUDIT_ARCH_MIPSEL64N32), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_MIPSEL64N32) == ((EM_MIPS|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE|__AUDIT_ARCH_CONVENTION_MIPS64_N32)), "AUDIT_ARCH_MIPSEL64N32 != (EM_MIPS|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE|__AUDIT_ARCH_CONVENTION_MIPS64_N32)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_MIPSEL64N32 (EM_MIPS|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE|__AUDIT_ARCH_CONVENTION_MIPS64_N32) +#endif +#if defined(AUDIT_ARCH_NDS32) || (defined(HAVE_DECL_AUDIT_ARCH_NDS32) && HAVE_DECL_AUDIT_ARCH_NDS32) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_NDS32) == ((EM_NDS32|__AUDIT_ARCH_LE)), "AUDIT_ARCH_NDS32 != (EM_NDS32|__AUDIT_ARCH_LE)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_NDS32 (EM_NDS32|__AUDIT_ARCH_LE) +#endif +#if defined(AUDIT_ARCH_NDS32BE) || (defined(HAVE_DECL_AUDIT_ARCH_NDS32BE) && HAVE_DECL_AUDIT_ARCH_NDS32BE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_NDS32BE) == ((EM_NDS32)), "AUDIT_ARCH_NDS32BE != (EM_NDS32)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_NDS32BE (EM_NDS32) +#endif +#if defined(AUDIT_ARCH_NIOS2) || (defined(HAVE_DECL_AUDIT_ARCH_NIOS2) && HAVE_DECL_AUDIT_ARCH_NIOS2) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_NIOS2) == ((EM_ALTERA_NIOS2|__AUDIT_ARCH_LE)), "AUDIT_ARCH_NIOS2 != (EM_ALTERA_NIOS2|__AUDIT_ARCH_LE)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_NIOS2 (EM_ALTERA_NIOS2|__AUDIT_ARCH_LE) #endif -#ifdef EM_OPENRISC #if defined(AUDIT_ARCH_OPENRISC) || (defined(HAVE_DECL_AUDIT_ARCH_OPENRISC) && HAVE_DECL_AUDIT_ARCH_OPENRISC) - XLAT(AUDIT_ARCH_OPENRISC), -#endif +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_OPENRISC) == ((EM_OPENRISC)), "AUDIT_ARCH_OPENRISC != (EM_OPENRISC)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_OPENRISC (EM_OPENRISC) #endif #if defined(AUDIT_ARCH_PARISC) || (defined(HAVE_DECL_AUDIT_ARCH_PARISC) && HAVE_DECL_AUDIT_ARCH_PARISC) - XLAT(AUDIT_ARCH_PARISC), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_PARISC) == ((EM_PARISC)), "AUDIT_ARCH_PARISC != (EM_PARISC)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_PARISC (EM_PARISC) #endif #if defined(AUDIT_ARCH_PARISC64) || (defined(HAVE_DECL_AUDIT_ARCH_PARISC64) && HAVE_DECL_AUDIT_ARCH_PARISC64) - XLAT(AUDIT_ARCH_PARISC64), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_PARISC64) == ((EM_PARISC|__AUDIT_ARCH_64BIT)), "AUDIT_ARCH_PARISC64 != (EM_PARISC|__AUDIT_ARCH_64BIT)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_PARISC64 (EM_PARISC|__AUDIT_ARCH_64BIT) #endif #if defined(AUDIT_ARCH_PPC) || (defined(HAVE_DECL_AUDIT_ARCH_PPC) && HAVE_DECL_AUDIT_ARCH_PPC) - XLAT(AUDIT_ARCH_PPC), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_PPC) == ((EM_PPC)), "AUDIT_ARCH_PPC != (EM_PPC)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_PPC (EM_PPC) #endif #if defined(AUDIT_ARCH_PPC64) || (defined(HAVE_DECL_AUDIT_ARCH_PPC64) && HAVE_DECL_AUDIT_ARCH_PPC64) - XLAT(AUDIT_ARCH_PPC64), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_PPC64) == ((EM_PPC64|__AUDIT_ARCH_64BIT)), "AUDIT_ARCH_PPC64 != (EM_PPC64|__AUDIT_ARCH_64BIT)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_PPC64 (EM_PPC64|__AUDIT_ARCH_64BIT) #endif #if defined(AUDIT_ARCH_PPC64LE) || (defined(HAVE_DECL_AUDIT_ARCH_PPC64LE) && HAVE_DECL_AUDIT_ARCH_PPC64LE) - XLAT(AUDIT_ARCH_PPC64LE), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_PPC64LE) == ((EM_PPC64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)), "AUDIT_ARCH_PPC64LE != (EM_PPC64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_PPC64LE (EM_PPC64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) +#endif +#if defined(AUDIT_ARCH_RISCV32) || (defined(HAVE_DECL_AUDIT_ARCH_RISCV32) && HAVE_DECL_AUDIT_ARCH_RISCV32) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_RISCV32) == ((EM_RISCV|__AUDIT_ARCH_LE)), "AUDIT_ARCH_RISCV32 != (EM_RISCV|__AUDIT_ARCH_LE)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_RISCV32 (EM_RISCV|__AUDIT_ARCH_LE) +#endif +#if defined(AUDIT_ARCH_RISCV64) || (defined(HAVE_DECL_AUDIT_ARCH_RISCV64) && HAVE_DECL_AUDIT_ARCH_RISCV64) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_RISCV64) == ((EM_RISCV|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)), "AUDIT_ARCH_RISCV64 != (EM_RISCV|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_RISCV64 (EM_RISCV|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) #endif #if defined(AUDIT_ARCH_S390) || (defined(HAVE_DECL_AUDIT_ARCH_S390) && HAVE_DECL_AUDIT_ARCH_S390) - XLAT(AUDIT_ARCH_S390), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_S390) == ((EM_S390)), "AUDIT_ARCH_S390 != (EM_S390)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_S390 (EM_S390) #endif #if defined(AUDIT_ARCH_S390X) || (defined(HAVE_DECL_AUDIT_ARCH_S390X) && HAVE_DECL_AUDIT_ARCH_S390X) - XLAT(AUDIT_ARCH_S390X), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_S390X) == ((EM_S390|__AUDIT_ARCH_64BIT)), "AUDIT_ARCH_S390X != (EM_S390|__AUDIT_ARCH_64BIT)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_S390X (EM_S390|__AUDIT_ARCH_64BIT) #endif #if defined(AUDIT_ARCH_SH) || (defined(HAVE_DECL_AUDIT_ARCH_SH) && HAVE_DECL_AUDIT_ARCH_SH) - XLAT(AUDIT_ARCH_SH), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_SH) == ((EM_SH)), "AUDIT_ARCH_SH != (EM_SH)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_SH (EM_SH) #endif #if defined(AUDIT_ARCH_SH64) || (defined(HAVE_DECL_AUDIT_ARCH_SH64) && HAVE_DECL_AUDIT_ARCH_SH64) - XLAT(AUDIT_ARCH_SH64), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_SH64) == ((EM_SH|__AUDIT_ARCH_64BIT)), "AUDIT_ARCH_SH64 != (EM_SH|__AUDIT_ARCH_64BIT)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_SH64 (EM_SH|__AUDIT_ARCH_64BIT) #endif #if defined(AUDIT_ARCH_SHEL) || (defined(HAVE_DECL_AUDIT_ARCH_SHEL) && HAVE_DECL_AUDIT_ARCH_SHEL) - XLAT(AUDIT_ARCH_SHEL), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_SHEL) == ((EM_SH|__AUDIT_ARCH_LE)), "AUDIT_ARCH_SHEL != (EM_SH|__AUDIT_ARCH_LE)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_SHEL (EM_SH|__AUDIT_ARCH_LE) #endif #if defined(AUDIT_ARCH_SHEL64) || (defined(HAVE_DECL_AUDIT_ARCH_SHEL64) && HAVE_DECL_AUDIT_ARCH_SHEL64) - XLAT(AUDIT_ARCH_SHEL64), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_SHEL64) == ((EM_SH|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)), "AUDIT_ARCH_SHEL64 != (EM_SH|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_SHEL64 (EM_SH|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) #endif #if defined(AUDIT_ARCH_SPARC) || (defined(HAVE_DECL_AUDIT_ARCH_SPARC) && HAVE_DECL_AUDIT_ARCH_SPARC) - XLAT(AUDIT_ARCH_SPARC), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_SPARC) == ((EM_SPARC)), "AUDIT_ARCH_SPARC != (EM_SPARC)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_SPARC (EM_SPARC) #endif #if defined(AUDIT_ARCH_SPARC64) || (defined(HAVE_DECL_AUDIT_ARCH_SPARC64) && HAVE_DECL_AUDIT_ARCH_SPARC64) - XLAT(AUDIT_ARCH_SPARC64), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_SPARC64) == ((EM_SPARCV9|__AUDIT_ARCH_64BIT)), "AUDIT_ARCH_SPARC64 != (EM_SPARCV9|__AUDIT_ARCH_64BIT)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_SPARC64 (EM_SPARCV9|__AUDIT_ARCH_64BIT) +#endif +#if defined(AUDIT_ARCH_TILEGX) || (defined(HAVE_DECL_AUDIT_ARCH_TILEGX) && HAVE_DECL_AUDIT_ARCH_TILEGX) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_TILEGX) == ((EM_TILEGX|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)), "AUDIT_ARCH_TILEGX != (EM_TILEGX|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_TILEGX (EM_TILEGX|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) +#endif +#if defined(AUDIT_ARCH_TILEGX32) || (defined(HAVE_DECL_AUDIT_ARCH_TILEGX32) && HAVE_DECL_AUDIT_ARCH_TILEGX32) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_TILEGX32) == ((EM_TILEGX|__AUDIT_ARCH_LE)), "AUDIT_ARCH_TILEGX32 != (EM_TILEGX|__AUDIT_ARCH_LE)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_TILEGX32 (EM_TILEGX|__AUDIT_ARCH_LE) +#endif +#if defined(AUDIT_ARCH_TILEPRO) || (defined(HAVE_DECL_AUDIT_ARCH_TILEPRO) && HAVE_DECL_AUDIT_ARCH_TILEPRO) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_TILEPRO) == ((EM_TILEPRO|__AUDIT_ARCH_LE)), "AUDIT_ARCH_TILEPRO != (EM_TILEPRO|__AUDIT_ARCH_LE)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_TILEPRO (EM_TILEPRO|__AUDIT_ARCH_LE) +#endif +#if defined(AUDIT_ARCH_UNICORE) || (defined(HAVE_DECL_AUDIT_ARCH_UNICORE) && HAVE_DECL_AUDIT_ARCH_UNICORE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_UNICORE) == ((EM_UNICORE|__AUDIT_ARCH_LE)), "AUDIT_ARCH_UNICORE != (EM_UNICORE|__AUDIT_ARCH_LE)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_UNICORE (EM_UNICORE|__AUDIT_ARCH_LE) +#endif +#if defined(AUDIT_ARCH_V850) || (defined(HAVE_DECL_AUDIT_ARCH_V850) && HAVE_DECL_AUDIT_ARCH_V850) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_V850) == ((EM_V850|__AUDIT_ARCH_LE)), "AUDIT_ARCH_V850 != (EM_V850|__AUDIT_ARCH_LE)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_V850 (EM_V850|__AUDIT_ARCH_LE) #endif #if defined(AUDIT_ARCH_X86_64) || (defined(HAVE_DECL_AUDIT_ARCH_X86_64) && HAVE_DECL_AUDIT_ARCH_X86_64) - XLAT(AUDIT_ARCH_X86_64), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_X86_64) == ((EM_X86_64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)), "AUDIT_ARCH_X86_64 != (EM_X86_64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_X86_64 (EM_X86_64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) +#endif +#if defined(AUDIT_ARCH_XTENSA) || (defined(HAVE_DECL_AUDIT_ARCH_XTENSA) && HAVE_DECL_AUDIT_ARCH_XTENSA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ARCH_XTENSA) == ((EM_XTENSA)), "AUDIT_ARCH_XTENSA != (EM_XTENSA)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ARCH_XTENSA (EM_XTENSA) +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifndef IN_MPERS + +static const struct xlat_data audit_arch_xdata[] = { +#ifndef __AUDIT_ARCH_CONVENTION_MIPS64_N32 +# define __AUDIT_ARCH_CONVENTION_MIPS64_N32 0x20000000 +#endif +#ifndef __AUDIT_ARCH_64BIT +# define __AUDIT_ARCH_64BIT 0x80000000 #endif - XLAT_END +#ifndef __AUDIT_ARCH_LE +# define __AUDIT_ARCH_LE 0x40000000 +#endif + + XLAT(AUDIT_ARCH_AARCH64), + #define XLAT_VAL_0 ((unsigned) (AUDIT_ARCH_AARCH64)) + #define XLAT_STR_0 STRINGIFY(AUDIT_ARCH_AARCH64) + XLAT(AUDIT_ARCH_ALPHA), + #define XLAT_VAL_1 ((unsigned) (AUDIT_ARCH_ALPHA)) + #define XLAT_STR_1 STRINGIFY(AUDIT_ARCH_ALPHA) + XLAT(AUDIT_ARCH_ARCOMPACT), + #define XLAT_VAL_2 ((unsigned) (AUDIT_ARCH_ARCOMPACT)) + #define XLAT_STR_2 STRINGIFY(AUDIT_ARCH_ARCOMPACT) + XLAT(AUDIT_ARCH_ARCOMPACTBE), + #define XLAT_VAL_3 ((unsigned) (AUDIT_ARCH_ARCOMPACTBE)) + #define XLAT_STR_3 STRINGIFY(AUDIT_ARCH_ARCOMPACTBE) + XLAT(AUDIT_ARCH_ARCV2), + #define XLAT_VAL_4 ((unsigned) (AUDIT_ARCH_ARCV2)) + #define XLAT_STR_4 STRINGIFY(AUDIT_ARCH_ARCV2) + XLAT(AUDIT_ARCH_ARCV2BE), + #define XLAT_VAL_5 ((unsigned) (AUDIT_ARCH_ARCV2BE)) + #define XLAT_STR_5 STRINGIFY(AUDIT_ARCH_ARCV2BE) + XLAT(AUDIT_ARCH_ARM), + #define XLAT_VAL_6 ((unsigned) (AUDIT_ARCH_ARM)) + #define XLAT_STR_6 STRINGIFY(AUDIT_ARCH_ARM) + XLAT(AUDIT_ARCH_ARMEB), + #define XLAT_VAL_7 ((unsigned) (AUDIT_ARCH_ARMEB)) + #define XLAT_STR_7 STRINGIFY(AUDIT_ARCH_ARMEB) + XLAT(AUDIT_ARCH_C6X), + #define XLAT_VAL_8 ((unsigned) (AUDIT_ARCH_C6X)) + #define XLAT_STR_8 STRINGIFY(AUDIT_ARCH_C6X) + XLAT(AUDIT_ARCH_C6XBE), + #define XLAT_VAL_9 ((unsigned) (AUDIT_ARCH_C6XBE)) + #define XLAT_STR_9 STRINGIFY(AUDIT_ARCH_C6XBE) + XLAT(AUDIT_ARCH_CRIS), + #define XLAT_VAL_10 ((unsigned) (AUDIT_ARCH_CRIS)) + #define XLAT_STR_10 STRINGIFY(AUDIT_ARCH_CRIS) + XLAT(AUDIT_ARCH_CSKY), + #define XLAT_VAL_11 ((unsigned) (AUDIT_ARCH_CSKY)) + #define XLAT_STR_11 STRINGIFY(AUDIT_ARCH_CSKY) + XLAT(AUDIT_ARCH_FRV), + #define XLAT_VAL_12 ((unsigned) (AUDIT_ARCH_FRV)) + #define XLAT_STR_12 STRINGIFY(AUDIT_ARCH_FRV) + XLAT(AUDIT_ARCH_H8300), + #define XLAT_VAL_13 ((unsigned) (AUDIT_ARCH_H8300)) + #define XLAT_STR_13 STRINGIFY(AUDIT_ARCH_H8300) + XLAT(AUDIT_ARCH_HEXAGON), + #define XLAT_VAL_14 ((unsigned) (AUDIT_ARCH_HEXAGON)) + #define XLAT_STR_14 STRINGIFY(AUDIT_ARCH_HEXAGON) + XLAT(AUDIT_ARCH_I386), + #define XLAT_VAL_15 ((unsigned) (AUDIT_ARCH_I386)) + #define XLAT_STR_15 STRINGIFY(AUDIT_ARCH_I386) + XLAT(AUDIT_ARCH_IA64), + #define XLAT_VAL_16 ((unsigned) (AUDIT_ARCH_IA64)) + #define XLAT_STR_16 STRINGIFY(AUDIT_ARCH_IA64) + XLAT(AUDIT_ARCH_M32R), + #define XLAT_VAL_17 ((unsigned) (AUDIT_ARCH_M32R)) + #define XLAT_STR_17 STRINGIFY(AUDIT_ARCH_M32R) + XLAT(AUDIT_ARCH_M68K), + #define XLAT_VAL_18 ((unsigned) (AUDIT_ARCH_M68K)) + #define XLAT_STR_18 STRINGIFY(AUDIT_ARCH_M68K) + XLAT(AUDIT_ARCH_MICROBLAZE), + #define XLAT_VAL_19 ((unsigned) (AUDIT_ARCH_MICROBLAZE)) + #define XLAT_STR_19 STRINGIFY(AUDIT_ARCH_MICROBLAZE) + XLAT(AUDIT_ARCH_MIPS), + #define XLAT_VAL_20 ((unsigned) (AUDIT_ARCH_MIPS)) + #define XLAT_STR_20 STRINGIFY(AUDIT_ARCH_MIPS) + XLAT(AUDIT_ARCH_MIPS64), + #define XLAT_VAL_21 ((unsigned) (AUDIT_ARCH_MIPS64)) + #define XLAT_STR_21 STRINGIFY(AUDIT_ARCH_MIPS64) + XLAT(AUDIT_ARCH_MIPS64N32), + #define XLAT_VAL_22 ((unsigned) (AUDIT_ARCH_MIPS64N32)) + #define XLAT_STR_22 STRINGIFY(AUDIT_ARCH_MIPS64N32) + XLAT(AUDIT_ARCH_MIPSEL), + #define XLAT_VAL_23 ((unsigned) (AUDIT_ARCH_MIPSEL)) + #define XLAT_STR_23 STRINGIFY(AUDIT_ARCH_MIPSEL) + XLAT(AUDIT_ARCH_MIPSEL64), + #define XLAT_VAL_24 ((unsigned) (AUDIT_ARCH_MIPSEL64)) + #define XLAT_STR_24 STRINGIFY(AUDIT_ARCH_MIPSEL64) + XLAT(AUDIT_ARCH_MIPSEL64N32), + #define XLAT_VAL_25 ((unsigned) (AUDIT_ARCH_MIPSEL64N32)) + #define XLAT_STR_25 STRINGIFY(AUDIT_ARCH_MIPSEL64N32) + XLAT(AUDIT_ARCH_NDS32), + #define XLAT_VAL_26 ((unsigned) (AUDIT_ARCH_NDS32)) + #define XLAT_STR_26 STRINGIFY(AUDIT_ARCH_NDS32) + XLAT(AUDIT_ARCH_NDS32BE), + #define XLAT_VAL_27 ((unsigned) (AUDIT_ARCH_NDS32BE)) + #define XLAT_STR_27 STRINGIFY(AUDIT_ARCH_NDS32BE) + XLAT(AUDIT_ARCH_NIOS2), + #define XLAT_VAL_28 ((unsigned) (AUDIT_ARCH_NIOS2)) + #define XLAT_STR_28 STRINGIFY(AUDIT_ARCH_NIOS2) + XLAT(AUDIT_ARCH_OPENRISC), + #define XLAT_VAL_29 ((unsigned) (AUDIT_ARCH_OPENRISC)) + #define XLAT_STR_29 STRINGIFY(AUDIT_ARCH_OPENRISC) + XLAT(AUDIT_ARCH_PARISC), + #define XLAT_VAL_30 ((unsigned) (AUDIT_ARCH_PARISC)) + #define XLAT_STR_30 STRINGIFY(AUDIT_ARCH_PARISC) + XLAT(AUDIT_ARCH_PARISC64), + #define XLAT_VAL_31 ((unsigned) (AUDIT_ARCH_PARISC64)) + #define XLAT_STR_31 STRINGIFY(AUDIT_ARCH_PARISC64) + XLAT(AUDIT_ARCH_PPC), + #define XLAT_VAL_32 ((unsigned) (AUDIT_ARCH_PPC)) + #define XLAT_STR_32 STRINGIFY(AUDIT_ARCH_PPC) + XLAT(AUDIT_ARCH_PPC64), + #define XLAT_VAL_33 ((unsigned) (AUDIT_ARCH_PPC64)) + #define XLAT_STR_33 STRINGIFY(AUDIT_ARCH_PPC64) + XLAT(AUDIT_ARCH_PPC64LE), + #define XLAT_VAL_34 ((unsigned) (AUDIT_ARCH_PPC64LE)) + #define XLAT_STR_34 STRINGIFY(AUDIT_ARCH_PPC64LE) + XLAT(AUDIT_ARCH_RISCV32), + #define XLAT_VAL_35 ((unsigned) (AUDIT_ARCH_RISCV32)) + #define XLAT_STR_35 STRINGIFY(AUDIT_ARCH_RISCV32) + XLAT(AUDIT_ARCH_RISCV64), + #define XLAT_VAL_36 ((unsigned) (AUDIT_ARCH_RISCV64)) + #define XLAT_STR_36 STRINGIFY(AUDIT_ARCH_RISCV64) + XLAT(AUDIT_ARCH_S390), + #define XLAT_VAL_37 ((unsigned) (AUDIT_ARCH_S390)) + #define XLAT_STR_37 STRINGIFY(AUDIT_ARCH_S390) + XLAT(AUDIT_ARCH_S390X), + #define XLAT_VAL_38 ((unsigned) (AUDIT_ARCH_S390X)) + #define XLAT_STR_38 STRINGIFY(AUDIT_ARCH_S390X) + XLAT(AUDIT_ARCH_SH), + #define XLAT_VAL_39 ((unsigned) (AUDIT_ARCH_SH)) + #define XLAT_STR_39 STRINGIFY(AUDIT_ARCH_SH) + XLAT(AUDIT_ARCH_SH64), + #define XLAT_VAL_40 ((unsigned) (AUDIT_ARCH_SH64)) + #define XLAT_STR_40 STRINGIFY(AUDIT_ARCH_SH64) + XLAT(AUDIT_ARCH_SHEL), + #define XLAT_VAL_41 ((unsigned) (AUDIT_ARCH_SHEL)) + #define XLAT_STR_41 STRINGIFY(AUDIT_ARCH_SHEL) + XLAT(AUDIT_ARCH_SHEL64), + #define XLAT_VAL_42 ((unsigned) (AUDIT_ARCH_SHEL64)) + #define XLAT_STR_42 STRINGIFY(AUDIT_ARCH_SHEL64) + XLAT(AUDIT_ARCH_SPARC), + #define XLAT_VAL_43 ((unsigned) (AUDIT_ARCH_SPARC)) + #define XLAT_STR_43 STRINGIFY(AUDIT_ARCH_SPARC) + XLAT(AUDIT_ARCH_SPARC64), + #define XLAT_VAL_44 ((unsigned) (AUDIT_ARCH_SPARC64)) + #define XLAT_STR_44 STRINGIFY(AUDIT_ARCH_SPARC64) + XLAT(AUDIT_ARCH_TILEGX), + #define XLAT_VAL_45 ((unsigned) (AUDIT_ARCH_TILEGX)) + #define XLAT_STR_45 STRINGIFY(AUDIT_ARCH_TILEGX) + XLAT(AUDIT_ARCH_TILEGX32), + #define XLAT_VAL_46 ((unsigned) (AUDIT_ARCH_TILEGX32)) + #define XLAT_STR_46 STRINGIFY(AUDIT_ARCH_TILEGX32) + XLAT(AUDIT_ARCH_TILEPRO), + #define XLAT_VAL_47 ((unsigned) (AUDIT_ARCH_TILEPRO)) + #define XLAT_STR_47 STRINGIFY(AUDIT_ARCH_TILEPRO) + XLAT(AUDIT_ARCH_UNICORE), + #define XLAT_VAL_48 ((unsigned) (AUDIT_ARCH_UNICORE)) + #define XLAT_STR_48 STRINGIFY(AUDIT_ARCH_UNICORE) + XLAT(AUDIT_ARCH_V850), + #define XLAT_VAL_49 ((unsigned) (AUDIT_ARCH_V850)) + #define XLAT_STR_49 STRINGIFY(AUDIT_ARCH_V850) + XLAT(AUDIT_ARCH_X86_64), + #define XLAT_VAL_50 ((unsigned) (AUDIT_ARCH_X86_64)) + #define XLAT_STR_50 STRINGIFY(AUDIT_ARCH_X86_64) + XLAT(AUDIT_ARCH_XTENSA), + #define XLAT_VAL_51 ((unsigned) (AUDIT_ARCH_XTENSA)) + #define XLAT_STR_51 STRINGIFY(AUDIT_ARCH_XTENSA) }; +const struct xlat audit_arch[1] = { { + .data = audit_arch_xdata, + .size = ARRAY_SIZE(audit_arch_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif +# ifdef XLAT_VAL_41 + | XLAT_VAL_41 +# endif +# ifdef XLAT_VAL_42 + | XLAT_VAL_42 +# endif +# ifdef XLAT_VAL_43 + | XLAT_VAL_43 +# endif +# ifdef XLAT_VAL_44 + | XLAT_VAL_44 +# endif +# ifdef XLAT_VAL_45 + | XLAT_VAL_45 +# endif +# ifdef XLAT_VAL_46 + | XLAT_VAL_46 +# endif +# ifdef XLAT_VAL_47 + | XLAT_VAL_47 +# endif +# ifdef XLAT_VAL_48 + | XLAT_VAL_48 +# endif +# ifdef XLAT_VAL_49 + | XLAT_VAL_49 +# endif +# ifdef XLAT_VAL_50 + | XLAT_VAL_50 +# endif +# ifdef XLAT_VAL_51 + | XLAT_VAL_51 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif +# ifdef XLAT_STR_41 + + sizeof(XLAT_STR_41) +# endif +# ifdef XLAT_STR_42 + + sizeof(XLAT_STR_42) +# endif +# ifdef XLAT_STR_43 + + sizeof(XLAT_STR_43) +# endif +# ifdef XLAT_STR_44 + + sizeof(XLAT_STR_44) +# endif +# ifdef XLAT_STR_45 + + sizeof(XLAT_STR_45) +# endif +# ifdef XLAT_STR_46 + + sizeof(XLAT_STR_46) +# endif +# ifdef XLAT_STR_47 + + sizeof(XLAT_STR_47) +# endif +# ifdef XLAT_STR_48 + + sizeof(XLAT_STR_48) +# endif +# ifdef XLAT_STR_49 + + sizeof(XLAT_STR_49) +# endif +# ifdef XLAT_STR_50 + + sizeof(XLAT_STR_50) +# endif +# ifdef XLAT_STR_51 + + sizeof(XLAT_STR_51) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 +# undef XLAT_STR_41 +# undef XLAT_VAL_41 +# undef XLAT_STR_42 +# undef XLAT_VAL_42 +# undef XLAT_STR_43 +# undef XLAT_VAL_43 +# undef XLAT_STR_44 +# undef XLAT_VAL_44 +# undef XLAT_STR_45 +# undef XLAT_VAL_45 +# undef XLAT_STR_46 +# undef XLAT_VAL_46 +# undef XLAT_STR_47 +# undef XLAT_VAL_47 +# undef XLAT_STR_48 +# undef XLAT_VAL_48 +# undef XLAT_STR_49 +# undef XLAT_VAL_49 +# undef XLAT_STR_50 +# undef XLAT_VAL_50 +# undef XLAT_STR_51 +# undef XLAT_VAL_51 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/audit_arch.in b/xlat/audit_arch.in index e0b3db39..63d3fe52 100644 --- a/xlat/audit_arch.in +++ b/xlat/audit_arch.in @@ -1,41 +1,62 @@ -/* linux used to have linux/elf-em.h out of sync with linux/audit.h */ -AUDIT_ARCH_AARCH64 -AUDIT_ARCH_ALPHA -#ifdef EM_ARM -AUDIT_ARCH_ARM -AUDIT_ARCH_ARMEB +#ifndef __AUDIT_ARCH_CONVENTION_MIPS64_N32 +# define __AUDIT_ARCH_CONVENTION_MIPS64_N32 0x20000000 #endif -AUDIT_ARCH_CRIS -#ifdef EM_FRV -AUDIT_ARCH_FRV +#ifndef __AUDIT_ARCH_64BIT +# define __AUDIT_ARCH_64BIT 0x80000000 #endif -AUDIT_ARCH_I386 -AUDIT_ARCH_IA64 -AUDIT_ARCH_M32R -AUDIT_ARCH_M68K -#ifdef EM_MICROBLAZE -AUDIT_ARCH_MICROBLAZE +#ifndef __AUDIT_ARCH_LE +# define __AUDIT_ARCH_LE 0x40000000 #endif -AUDIT_ARCH_MIPS -AUDIT_ARCH_MIPS64 -AUDIT_ARCH_MIPS64N32 -AUDIT_ARCH_MIPSEL -AUDIT_ARCH_MIPSEL64 -AUDIT_ARCH_MIPSEL64N32 -#ifdef EM_OPENRISC -AUDIT_ARCH_OPENRISC -#endif -AUDIT_ARCH_PARISC -AUDIT_ARCH_PARISC64 -AUDIT_ARCH_PPC -AUDIT_ARCH_PPC64 -AUDIT_ARCH_PPC64LE -AUDIT_ARCH_S390 -AUDIT_ARCH_S390X -AUDIT_ARCH_SH -AUDIT_ARCH_SH64 -AUDIT_ARCH_SHEL -AUDIT_ARCH_SHEL64 -AUDIT_ARCH_SPARC -AUDIT_ARCH_SPARC64 -AUDIT_ARCH_X86_64 + +AUDIT_ARCH_AARCH64 (EM_AARCH64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) +AUDIT_ARCH_ALPHA (EM_ALPHA|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) +AUDIT_ARCH_ARCOMPACT (EM_ARCOMPACT|__AUDIT_ARCH_LE) +AUDIT_ARCH_ARCOMPACTBE (EM_ARCOMPACT) +AUDIT_ARCH_ARCV2 (EM_ARCV2|__AUDIT_ARCH_LE) +AUDIT_ARCH_ARCV2BE (EM_ARCV2) +AUDIT_ARCH_ARM (EM_ARM|__AUDIT_ARCH_LE) +AUDIT_ARCH_ARMEB (EM_ARM) +AUDIT_ARCH_C6X (EM_TI_C6000|__AUDIT_ARCH_LE) +AUDIT_ARCH_C6XBE (EM_TI_C6000) +AUDIT_ARCH_CRIS (EM_CRIS|__AUDIT_ARCH_LE) +AUDIT_ARCH_CSKY (EM_CSKY|__AUDIT_ARCH_LE) +AUDIT_ARCH_FRV (EM_FRV) +AUDIT_ARCH_H8300 (EM_H8_300) /* Removed in v3.13-rc1~130^2~2 */ +AUDIT_ARCH_HEXAGON (EM_HEXAGON) +AUDIT_ARCH_I386 (EM_386|__AUDIT_ARCH_LE) +AUDIT_ARCH_IA64 (EM_IA_64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) +AUDIT_ARCH_M32R (EM_M32R) +AUDIT_ARCH_M68K (EM_68K) +AUDIT_ARCH_MICROBLAZE (EM_MICROBLAZE) +AUDIT_ARCH_MIPS (EM_MIPS) +AUDIT_ARCH_MIPS64 (EM_MIPS|__AUDIT_ARCH_64BIT) +AUDIT_ARCH_MIPS64N32 (EM_MIPS|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_CONVENTION_MIPS64_N32) +AUDIT_ARCH_MIPSEL (EM_MIPS|__AUDIT_ARCH_LE) +AUDIT_ARCH_MIPSEL64 (EM_MIPS|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) +AUDIT_ARCH_MIPSEL64N32 (EM_MIPS|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE|__AUDIT_ARCH_CONVENTION_MIPS64_N32) +AUDIT_ARCH_NDS32 (EM_NDS32|__AUDIT_ARCH_LE) +AUDIT_ARCH_NDS32BE (EM_NDS32) +AUDIT_ARCH_NIOS2 (EM_ALTERA_NIOS2|__AUDIT_ARCH_LE) +AUDIT_ARCH_OPENRISC (EM_OPENRISC) +AUDIT_ARCH_PARISC (EM_PARISC) +AUDIT_ARCH_PARISC64 (EM_PARISC|__AUDIT_ARCH_64BIT) +AUDIT_ARCH_PPC (EM_PPC) +AUDIT_ARCH_PPC64 (EM_PPC64|__AUDIT_ARCH_64BIT) +AUDIT_ARCH_PPC64LE (EM_PPC64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) +AUDIT_ARCH_RISCV32 (EM_RISCV|__AUDIT_ARCH_LE) +AUDIT_ARCH_RISCV64 (EM_RISCV|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) +AUDIT_ARCH_S390 (EM_S390) +AUDIT_ARCH_S390X (EM_S390|__AUDIT_ARCH_64BIT) +AUDIT_ARCH_SH (EM_SH) +AUDIT_ARCH_SH64 (EM_SH|__AUDIT_ARCH_64BIT) +AUDIT_ARCH_SHEL (EM_SH|__AUDIT_ARCH_LE) +AUDIT_ARCH_SHEL64 (EM_SH|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) +AUDIT_ARCH_SPARC (EM_SPARC) +AUDIT_ARCH_SPARC64 (EM_SPARCV9|__AUDIT_ARCH_64BIT) +AUDIT_ARCH_TILEGX (EM_TILEGX|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) +AUDIT_ARCH_TILEGX32 (EM_TILEGX|__AUDIT_ARCH_LE) +AUDIT_ARCH_TILEPRO (EM_TILEPRO|__AUDIT_ARCH_LE) +AUDIT_ARCH_UNICORE (EM_UNICORE|__AUDIT_ARCH_LE) +AUDIT_ARCH_V850 (EM_V850|__AUDIT_ARCH_LE) /* Removed in v2.6.27-rc1~721 */ +AUDIT_ARCH_X86_64 (EM_X86_64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) +AUDIT_ARCH_XTENSA (EM_XTENSA) diff --git a/xlat/ax25_protocols.h b/xlat/ax25_protocols.h index 8f72ebb8..9cae4b04 100644 --- a/xlat/ax25_protocols.h +++ b/xlat/ax25_protocols.h @@ -103,28 +103,165 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat ax25_protocols[] = { - +static const struct xlat_data ax25_protocols_xdata[] = { XLAT(AX25_P_ROSE), + #define XLAT_VAL_0 ((unsigned) (AX25_P_ROSE)) + #define XLAT_STR_0 STRINGIFY(AX25_P_ROSE) XLAT(AX25_P_VJCOMP), + #define XLAT_VAL_1 ((unsigned) (AX25_P_VJCOMP)) + #define XLAT_STR_1 STRINGIFY(AX25_P_VJCOMP) XLAT(AX25_P_VJUNCOMP), + #define XLAT_VAL_2 ((unsigned) (AX25_P_VJUNCOMP)) + #define XLAT_STR_2 STRINGIFY(AX25_P_VJUNCOMP) XLAT(AX25_P_SEGMENT), + #define XLAT_VAL_3 ((unsigned) (AX25_P_SEGMENT)) + #define XLAT_STR_3 STRINGIFY(AX25_P_SEGMENT) XLAT(AX25_P_TEXNET), + #define XLAT_VAL_4 ((unsigned) (AX25_P_TEXNET)) + #define XLAT_STR_4 STRINGIFY(AX25_P_TEXNET) XLAT(AX25_P_LQ), + #define XLAT_VAL_5 ((unsigned) (AX25_P_LQ)) + #define XLAT_STR_5 STRINGIFY(AX25_P_LQ) XLAT(AX25_P_ATALK), + #define XLAT_VAL_6 ((unsigned) (AX25_P_ATALK)) + #define XLAT_STR_6 STRINGIFY(AX25_P_ATALK) XLAT(AX25_P_ATALK_ARP), + #define XLAT_VAL_7 ((unsigned) (AX25_P_ATALK_ARP)) + #define XLAT_STR_7 STRINGIFY(AX25_P_ATALK_ARP) XLAT(AX25_P_IP), + #define XLAT_VAL_8 ((unsigned) (AX25_P_IP)) + #define XLAT_STR_8 STRINGIFY(AX25_P_IP) XLAT(AX25_P_ARP), + #define XLAT_VAL_9 ((unsigned) (AX25_P_ARP)) + #define XLAT_STR_9 STRINGIFY(AX25_P_ARP) XLAT(AX25_P_FLEXNET), + #define XLAT_VAL_10 ((unsigned) (AX25_P_FLEXNET)) + #define XLAT_STR_10 STRINGIFY(AX25_P_FLEXNET) XLAT(AX25_P_NETROM), + #define XLAT_VAL_11 ((unsigned) (AX25_P_NETROM)) + #define XLAT_STR_11 STRINGIFY(AX25_P_NETROM) XLAT(AX25_P_TEXT), - XLAT_END + #define XLAT_VAL_12 ((unsigned) (AX25_P_TEXT)) + #define XLAT_STR_12 STRINGIFY(AX25_P_TEXT) }; +static +const struct xlat ax25_protocols[1] = { { + .data = ax25_protocols_xdata, + .size = ARRAY_SIZE(ax25_protocols_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/ax25_protocols.in b/xlat/ax25_protocols.in index 89ced436..9cac1a63 100644 --- a/xlat/ax25_protocols.in +++ b/xlat/ax25_protocols.in @@ -1,4 +1,4 @@ -/* sorted */ +#sorted /* Those are pulled from include/net/ax25.h, they should be part of UAPI */ AX25_P_ROSE 0x01 AX25_P_VJCOMP 0x06 /* Compressed TCP/IP packet */ diff --git a/xlat/baud_options.h b/xlat/baud_options.h index 62e706f3..5e15944c 100644 --- a/xlat/baud_options.h +++ b/xlat/baud_options.h @@ -12,110 +12,448 @@ # else -static -const struct xlat baud_options[] = { +static const struct xlat_data baud_options_xdata[] = { #if defined(B0) || (defined(HAVE_DECL_B0) && HAVE_DECL_B0) XLAT(B0), + #define XLAT_VAL_0 ((unsigned) (B0)) + #define XLAT_STR_0 STRINGIFY(B0) #endif #if defined(B50) || (defined(HAVE_DECL_B50) && HAVE_DECL_B50) XLAT(B50), + #define XLAT_VAL_1 ((unsigned) (B50)) + #define XLAT_STR_1 STRINGIFY(B50) #endif #if defined(B75) || (defined(HAVE_DECL_B75) && HAVE_DECL_B75) XLAT(B75), + #define XLAT_VAL_2 ((unsigned) (B75)) + #define XLAT_STR_2 STRINGIFY(B75) #endif #if defined(B110) || (defined(HAVE_DECL_B110) && HAVE_DECL_B110) XLAT(B110), + #define XLAT_VAL_3 ((unsigned) (B110)) + #define XLAT_STR_3 STRINGIFY(B110) #endif #if defined(B134) || (defined(HAVE_DECL_B134) && HAVE_DECL_B134) XLAT(B134), + #define XLAT_VAL_4 ((unsigned) (B134)) + #define XLAT_STR_4 STRINGIFY(B134) #endif #if defined(B150) || (defined(HAVE_DECL_B150) && HAVE_DECL_B150) XLAT(B150), + #define XLAT_VAL_5 ((unsigned) (B150)) + #define XLAT_STR_5 STRINGIFY(B150) #endif #if defined(B200) || (defined(HAVE_DECL_B200) && HAVE_DECL_B200) XLAT(B200), + #define XLAT_VAL_6 ((unsigned) (B200)) + #define XLAT_STR_6 STRINGIFY(B200) #endif #if defined(B300) || (defined(HAVE_DECL_B300) && HAVE_DECL_B300) XLAT(B300), + #define XLAT_VAL_7 ((unsigned) (B300)) + #define XLAT_STR_7 STRINGIFY(B300) #endif #if defined(B600) || (defined(HAVE_DECL_B600) && HAVE_DECL_B600) XLAT(B600), + #define XLAT_VAL_8 ((unsigned) (B600)) + #define XLAT_STR_8 STRINGIFY(B600) #endif #if defined(B1200) || (defined(HAVE_DECL_B1200) && HAVE_DECL_B1200) XLAT(B1200), + #define XLAT_VAL_9 ((unsigned) (B1200)) + #define XLAT_STR_9 STRINGIFY(B1200) #endif #if defined(B1800) || (defined(HAVE_DECL_B1800) && HAVE_DECL_B1800) XLAT(B1800), + #define XLAT_VAL_10 ((unsigned) (B1800)) + #define XLAT_STR_10 STRINGIFY(B1800) #endif #if defined(B2400) || (defined(HAVE_DECL_B2400) && HAVE_DECL_B2400) XLAT(B2400), + #define XLAT_VAL_11 ((unsigned) (B2400)) + #define XLAT_STR_11 STRINGIFY(B2400) #endif #if defined(B4800) || (defined(HAVE_DECL_B4800) && HAVE_DECL_B4800) XLAT(B4800), + #define XLAT_VAL_12 ((unsigned) (B4800)) + #define XLAT_STR_12 STRINGIFY(B4800) #endif #if defined(B9600) || (defined(HAVE_DECL_B9600) && HAVE_DECL_B9600) XLAT(B9600), + #define XLAT_VAL_13 ((unsigned) (B9600)) + #define XLAT_STR_13 STRINGIFY(B9600) #endif #if defined(B19200) || (defined(HAVE_DECL_B19200) && HAVE_DECL_B19200) XLAT(B19200), + #define XLAT_VAL_14 ((unsigned) (B19200)) + #define XLAT_STR_14 STRINGIFY(B19200) #endif #if defined(B38400) || (defined(HAVE_DECL_B38400) && HAVE_DECL_B38400) XLAT(B38400), + #define XLAT_VAL_15 ((unsigned) (B38400)) + #define XLAT_STR_15 STRINGIFY(B38400) #endif #if defined(B57600) || (defined(HAVE_DECL_B57600) && HAVE_DECL_B57600) XLAT(B57600), + #define XLAT_VAL_16 ((unsigned) (B57600)) + #define XLAT_STR_16 STRINGIFY(B57600) #endif #if defined(B115200) || (defined(HAVE_DECL_B115200) && HAVE_DECL_B115200) XLAT(B115200), + #define XLAT_VAL_17 ((unsigned) (B115200)) + #define XLAT_STR_17 STRINGIFY(B115200) #endif #if defined(B230400) || (defined(HAVE_DECL_B230400) && HAVE_DECL_B230400) XLAT(B230400), + #define XLAT_VAL_18 ((unsigned) (B230400)) + #define XLAT_STR_18 STRINGIFY(B230400) #endif #if defined(B460800) || (defined(HAVE_DECL_B460800) && HAVE_DECL_B460800) XLAT(B460800), + #define XLAT_VAL_19 ((unsigned) (B460800)) + #define XLAT_STR_19 STRINGIFY(B460800) #endif #if defined(B500000) || (defined(HAVE_DECL_B500000) && HAVE_DECL_B500000) XLAT(B500000), + #define XLAT_VAL_20 ((unsigned) (B500000)) + #define XLAT_STR_20 STRINGIFY(B500000) #endif #if defined(B576000) || (defined(HAVE_DECL_B576000) && HAVE_DECL_B576000) XLAT(B576000), + #define XLAT_VAL_21 ((unsigned) (B576000)) + #define XLAT_STR_21 STRINGIFY(B576000) #endif #if defined(B921600) || (defined(HAVE_DECL_B921600) && HAVE_DECL_B921600) XLAT(B921600), + #define XLAT_VAL_22 ((unsigned) (B921600)) + #define XLAT_STR_22 STRINGIFY(B921600) #endif #if defined(B1000000) || (defined(HAVE_DECL_B1000000) && HAVE_DECL_B1000000) XLAT(B1000000), + #define XLAT_VAL_23 ((unsigned) (B1000000)) + #define XLAT_STR_23 STRINGIFY(B1000000) #endif #if defined(B1152000) || (defined(HAVE_DECL_B1152000) && HAVE_DECL_B1152000) XLAT(B1152000), + #define XLAT_VAL_24 ((unsigned) (B1152000)) + #define XLAT_STR_24 STRINGIFY(B1152000) #endif #if defined(B1500000) || (defined(HAVE_DECL_B1500000) && HAVE_DECL_B1500000) XLAT(B1500000), + #define XLAT_VAL_25 ((unsigned) (B1500000)) + #define XLAT_STR_25 STRINGIFY(B1500000) #endif #if defined(B2000000) || (defined(HAVE_DECL_B2000000) && HAVE_DECL_B2000000) XLAT(B2000000), + #define XLAT_VAL_26 ((unsigned) (B2000000)) + #define XLAT_STR_26 STRINGIFY(B2000000) #endif #if defined(B2500000) || (defined(HAVE_DECL_B2500000) && HAVE_DECL_B2500000) XLAT(B2500000), + #define XLAT_VAL_27 ((unsigned) (B2500000)) + #define XLAT_STR_27 STRINGIFY(B2500000) #endif #if defined(B3000000) || (defined(HAVE_DECL_B3000000) && HAVE_DECL_B3000000) XLAT(B3000000), + #define XLAT_VAL_28 ((unsigned) (B3000000)) + #define XLAT_STR_28 STRINGIFY(B3000000) #endif #if defined(B3500000) || (defined(HAVE_DECL_B3500000) && HAVE_DECL_B3500000) XLAT(B3500000), + #define XLAT_VAL_29 ((unsigned) (B3500000)) + #define XLAT_STR_29 STRINGIFY(B3500000) #endif #if defined(B4000000) || (defined(HAVE_DECL_B4000000) && HAVE_DECL_B4000000) XLAT(B4000000), + #define XLAT_VAL_30 ((unsigned) (B4000000)) + #define XLAT_STR_30 STRINGIFY(B4000000) #endif #if defined(EXTA) || (defined(HAVE_DECL_EXTA) && HAVE_DECL_EXTA) XLAT(EXTA), + #define XLAT_VAL_31 ((unsigned) (EXTA)) + #define XLAT_STR_31 STRINGIFY(EXTA) #endif #if defined(EXTB) || (defined(HAVE_DECL_EXTB) && HAVE_DECL_EXTB) XLAT(EXTB), + #define XLAT_VAL_32 ((unsigned) (EXTB)) + #define XLAT_STR_32 STRINGIFY(EXTB) #endif - XLAT_END }; +static +const struct xlat baud_options[1] = { { + .data = baud_options_xdata, + .size = ARRAY_SIZE(baud_options_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bdaddr_types.h b/xlat/bdaddr_types.h index 110ee4d3..b099f810 100644 --- a/xlat/bdaddr_types.h +++ b/xlat/bdaddr_types.h @@ -33,14 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat bdaddr_types[] = { +static const struct xlat_data bdaddr_types_xdata[] = { [BDADDR_BREDR] = XLAT(BDADDR_BREDR), + #define XLAT_VAL_0 ((unsigned) (BDADDR_BREDR)) + #define XLAT_STR_0 STRINGIFY(BDADDR_BREDR) [BDADDR_LE_PUBLIC] = XLAT(BDADDR_LE_PUBLIC), + #define XLAT_VAL_1 ((unsigned) (BDADDR_LE_PUBLIC)) + #define XLAT_STR_1 STRINGIFY(BDADDR_LE_PUBLIC) [BDADDR_LE_RANDOM] = XLAT(BDADDR_LE_RANDOM), - XLAT_END + #define XLAT_VAL_2 ((unsigned) (BDADDR_LE_RANDOM)) + #define XLAT_STR_2 STRINGIFY(BDADDR_LE_RANDOM) }; +static +const struct xlat bdaddr_types[1] = { { + .data = bdaddr_types_xdata, + .size = ARRAY_SIZE(bdaddr_types_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/blkpg_ops.h b/xlat/blkpg_ops.h index 81171dcf..302de868 100644 --- a/xlat/blkpg_ops.h +++ b/xlat/blkpg_ops.h @@ -33,16 +33,54 @@ extern const struct xlat blkpg_ops[]; # else +static const struct xlat_data blkpg_ops_xdata[] = { + [BLKPG_ADD_PARTITION] = XLAT(BLKPG_ADD_PARTITION), + #define XLAT_VAL_0 ((unsigned) (BLKPG_ADD_PARTITION)) + #define XLAT_STR_0 STRINGIFY(BLKPG_ADD_PARTITION) + [BLKPG_DEL_PARTITION] = XLAT(BLKPG_DEL_PARTITION), + #define XLAT_VAL_1 ((unsigned) (BLKPG_DEL_PARTITION)) + #define XLAT_STR_1 STRINGIFY(BLKPG_DEL_PARTITION) + [BLKPG_RESIZE_PARTITION] = XLAT(BLKPG_RESIZE_PARTITION), + #define XLAT_VAL_2 ((unsigned) (BLKPG_RESIZE_PARTITION)) + #define XLAT_STR_2 STRINGIFY(BLKPG_RESIZE_PARTITION) +}; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static # endif -const struct xlat blkpg_ops[] = { - XLAT(BLKPG_ADD_PARTITION), - XLAT(BLKPG_DEL_PARTITION), - XLAT(BLKPG_RESIZE_PARTITION), - XLAT_END -}; +const struct xlat blkpg_ops[1] = { { + .data = blkpg_ops_xdata, + .size = ARRAY_SIZE(blkpg_ops_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/blkpg_ops.in b/xlat/blkpg_ops.in index fb194de5..f4dc1e16 100644 --- a/xlat/blkpg_ops.in +++ b/xlat/blkpg_ops.in @@ -1,3 +1,4 @@ +#value_indexed BLKPG_ADD_PARTITION 1 BLKPG_DEL_PARTITION 2 BLKPG_RESIZE_PARTITION 3 diff --git a/xlat/block_ioctl_cmds.h b/xlat/block_ioctl_cmds.h index a0935a67..5a198518 100644 --- a/xlat/block_ioctl_cmds.h +++ b/xlat/block_ioctl_cmds.h @@ -250,52 +250,400 @@ extern const struct xlat block_ioctl_cmds[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat block_ioctl_cmds[] = { +static const struct xlat_data block_ioctl_cmds_xdata[] = { XLAT(BLKROSET), + #define XLAT_VAL_0 ((unsigned) (BLKROSET)) + #define XLAT_STR_0 STRINGIFY(BLKROSET) XLAT(BLKROGET), + #define XLAT_VAL_1 ((unsigned) (BLKROGET)) + #define XLAT_STR_1 STRINGIFY(BLKROGET) XLAT(BLKRRPART), + #define XLAT_VAL_2 ((unsigned) (BLKRRPART)) + #define XLAT_STR_2 STRINGIFY(BLKRRPART) XLAT(BLKGETSIZE), + #define XLAT_VAL_3 ((unsigned) (BLKGETSIZE)) + #define XLAT_STR_3 STRINGIFY(BLKGETSIZE) XLAT(BLKFLSBUF), + #define XLAT_VAL_4 ((unsigned) (BLKFLSBUF)) + #define XLAT_STR_4 STRINGIFY(BLKFLSBUF) XLAT(BLKRASET), + #define XLAT_VAL_5 ((unsigned) (BLKRASET)) + #define XLAT_STR_5 STRINGIFY(BLKRASET) XLAT(BLKRAGET), + #define XLAT_VAL_6 ((unsigned) (BLKRAGET)) + #define XLAT_STR_6 STRINGIFY(BLKRAGET) XLAT(BLKFRASET), + #define XLAT_VAL_7 ((unsigned) (BLKFRASET)) + #define XLAT_STR_7 STRINGIFY(BLKFRASET) XLAT(BLKFRAGET), + #define XLAT_VAL_8 ((unsigned) (BLKFRAGET)) + #define XLAT_STR_8 STRINGIFY(BLKFRAGET) XLAT(BLKSECTSET), + #define XLAT_VAL_9 ((unsigned) (BLKSECTSET)) + #define XLAT_STR_9 STRINGIFY(BLKSECTSET) XLAT(BLKSECTGET), + #define XLAT_VAL_10 ((unsigned) (BLKSECTGET)) + #define XLAT_STR_10 STRINGIFY(BLKSECTGET) XLAT(BLKSSZGET), + #define XLAT_VAL_11 ((unsigned) (BLKSSZGET)) + #define XLAT_STR_11 STRINGIFY(BLKSSZGET) XLAT(BLKPG), + #define XLAT_VAL_12 ((unsigned) (BLKPG)) + #define XLAT_STR_12 STRINGIFY(BLKPG) XLAT(BLKELVGET), + #define XLAT_VAL_13 ((unsigned) (BLKELVGET)) + #define XLAT_STR_13 STRINGIFY(BLKELVGET) XLAT(BLKELVSET), + #define XLAT_VAL_14 ((unsigned) (BLKELVSET)) + #define XLAT_STR_14 STRINGIFY(BLKELVSET) XLAT(BLKBSZGET), + #define XLAT_VAL_15 ((unsigned) (BLKBSZGET)) + #define XLAT_STR_15 STRINGIFY(BLKBSZGET) XLAT(BLKBSZSET), + #define XLAT_VAL_16 ((unsigned) (BLKBSZSET)) + #define XLAT_STR_16 STRINGIFY(BLKBSZSET) XLAT(BLKGETSIZE64), + #define XLAT_VAL_17 ((unsigned) (BLKGETSIZE64)) + #define XLAT_STR_17 STRINGIFY(BLKGETSIZE64) XLAT(BLKTRACESETUP), + #define XLAT_VAL_18 ((unsigned) (BLKTRACESETUP)) + #define XLAT_STR_18 STRINGIFY(BLKTRACESETUP) XLAT(BLKTRACESTART), + #define XLAT_VAL_19 ((unsigned) (BLKTRACESTART)) + #define XLAT_STR_19 STRINGIFY(BLKTRACESTART) XLAT(BLKTRACESTOP), + #define XLAT_VAL_20 ((unsigned) (BLKTRACESTOP)) + #define XLAT_STR_20 STRINGIFY(BLKTRACESTOP) XLAT(BLKTRACETEARDOWN), + #define XLAT_VAL_21 ((unsigned) (BLKTRACETEARDOWN)) + #define XLAT_STR_21 STRINGIFY(BLKTRACETEARDOWN) XLAT(BLKDISCARD), + #define XLAT_VAL_22 ((unsigned) (BLKDISCARD)) + #define XLAT_STR_22 STRINGIFY(BLKDISCARD) XLAT(BLKIOMIN), + #define XLAT_VAL_23 ((unsigned) (BLKIOMIN)) + #define XLAT_STR_23 STRINGIFY(BLKIOMIN) XLAT(BLKIOOPT), + #define XLAT_VAL_24 ((unsigned) (BLKIOOPT)) + #define XLAT_STR_24 STRINGIFY(BLKIOOPT) XLAT(BLKALIGNOFF), + #define XLAT_VAL_25 ((unsigned) (BLKALIGNOFF)) + #define XLAT_STR_25 STRINGIFY(BLKALIGNOFF) XLAT(BLKPBSZGET), + #define XLAT_VAL_26 ((unsigned) (BLKPBSZGET)) + #define XLAT_STR_26 STRINGIFY(BLKPBSZGET) XLAT(BLKDISCARDZEROES), + #define XLAT_VAL_27 ((unsigned) (BLKDISCARDZEROES)) + #define XLAT_STR_27 STRINGIFY(BLKDISCARDZEROES) XLAT(BLKSECDISCARD), + #define XLAT_VAL_28 ((unsigned) (BLKSECDISCARD)) + #define XLAT_STR_28 STRINGIFY(BLKSECDISCARD) XLAT(BLKROTATIONAL), + #define XLAT_VAL_29 ((unsigned) (BLKROTATIONAL)) + #define XLAT_STR_29 STRINGIFY(BLKROTATIONAL) XLAT(BLKZEROOUT), + #define XLAT_VAL_30 ((unsigned) (BLKZEROOUT)) + #define XLAT_STR_30 STRINGIFY(BLKZEROOUT) XLAT(BLKDAXGET), + #define XLAT_VAL_31 ((unsigned) (BLKDAXGET)) + #define XLAT_STR_31 STRINGIFY(BLKDAXGET) XLAT(BLKGETZONESZ), + #define XLAT_VAL_32 ((unsigned) (BLKGETZONESZ)) + #define XLAT_STR_32 STRINGIFY(BLKGETZONESZ) XLAT(BLKGETNRZONES), - XLAT_END + #define XLAT_VAL_33 ((unsigned) (BLKGETNRZONES)) + #define XLAT_STR_33 STRINGIFY(BLKGETNRZONES) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat block_ioctl_cmds[1] = { { + .data = block_ioctl_cmds_xdata, + .size = ARRAY_SIZE(block_ioctl_cmds_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bluetooth_l2_cid.h b/xlat/bluetooth_l2_cid.h index 654e5aad..2d72456d 100644 --- a/xlat/bluetooth_l2_cid.h +++ b/xlat/bluetooth_l2_cid.h @@ -82,22 +82,129 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat bluetooth_l2_cid[] = { - +static const struct xlat_data bluetooth_l2_cid_xdata[] = { XLAT(L2CAP_CID_SIGNALING), + #define XLAT_VAL_0 ((unsigned) (L2CAP_CID_SIGNALING)) + #define XLAT_STR_0 STRINGIFY(L2CAP_CID_SIGNALING) XLAT(L2CAP_CID_CONN_LESS), + #define XLAT_VAL_1 ((unsigned) (L2CAP_CID_CONN_LESS)) + #define XLAT_STR_1 STRINGIFY(L2CAP_CID_CONN_LESS) XLAT(L2CAP_CID_A2MP), + #define XLAT_VAL_2 ((unsigned) (L2CAP_CID_A2MP)) + #define XLAT_STR_2 STRINGIFY(L2CAP_CID_A2MP) XLAT(L2CAP_CID_ATT), + #define XLAT_VAL_3 ((unsigned) (L2CAP_CID_ATT)) + #define XLAT_STR_3 STRINGIFY(L2CAP_CID_ATT) XLAT(L2CAP_CID_LE_SIGNALING), + #define XLAT_VAL_4 ((unsigned) (L2CAP_CID_LE_SIGNALING)) + #define XLAT_STR_4 STRINGIFY(L2CAP_CID_LE_SIGNALING) XLAT(L2CAP_CID_SMP), + #define XLAT_VAL_5 ((unsigned) (L2CAP_CID_SMP)) + #define XLAT_STR_5 STRINGIFY(L2CAP_CID_SMP) XLAT(L2CAP_CID_SMP_BREDR), + #define XLAT_VAL_6 ((unsigned) (L2CAP_CID_SMP_BREDR)) + #define XLAT_STR_6 STRINGIFY(L2CAP_CID_SMP_BREDR) XLAT(L2CAP_CID_DYN_START), + #define XLAT_VAL_7 ((unsigned) (L2CAP_CID_DYN_START)) + #define XLAT_STR_7 STRINGIFY(L2CAP_CID_DYN_START) XLAT(L2CAP_CID_LE_DYN_END), + #define XLAT_VAL_8 ((unsigned) (L2CAP_CID_LE_DYN_END)) + #define XLAT_STR_8 STRINGIFY(L2CAP_CID_LE_DYN_END) XLAT(L2CAP_CID_DYN_END), - XLAT_END + #define XLAT_VAL_9 ((unsigned) (L2CAP_CID_DYN_END)) + #define XLAT_STR_9 STRINGIFY(L2CAP_CID_DYN_END) }; +static +const struct xlat bluetooth_l2_cid[1] = { { + .data = bluetooth_l2_cid_xdata, + .size = ARRAY_SIZE(bluetooth_l2_cid_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bluetooth_l2_cid.in b/xlat/bluetooth_l2_cid.in index 5fd8fd17..e2b47f73 100644 --- a/xlat/bluetooth_l2_cid.in +++ b/xlat/bluetooth_l2_cid.in @@ -1,4 +1,4 @@ -/* sort -k2,2 */ +#sorted sort -k2,2 L2CAP_CID_SIGNALING 0x0001 L2CAP_CID_CONN_LESS 0x0002 L2CAP_CID_A2MP 0x0003 diff --git a/xlat/bluetooth_l2_psm.h b/xlat/bluetooth_l2_psm.h index 358316a5..d1b2664a 100644 --- a/xlat/bluetooth_l2_psm.h +++ b/xlat/bluetooth_l2_psm.h @@ -75,21 +75,118 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat bluetooth_l2_psm[] = { - +static const struct xlat_data bluetooth_l2_psm_xdata[] = { XLAT(L2CAP_PSM_SDP), + #define XLAT_VAL_0 ((unsigned) (L2CAP_PSM_SDP)) + #define XLAT_STR_0 STRINGIFY(L2CAP_PSM_SDP) XLAT(L2CAP_PSM_RFCOMM), + #define XLAT_VAL_1 ((unsigned) (L2CAP_PSM_RFCOMM)) + #define XLAT_STR_1 STRINGIFY(L2CAP_PSM_RFCOMM) XLAT(L2CAP_PSM_3DSP), + #define XLAT_VAL_2 ((unsigned) (L2CAP_PSM_3DSP)) + #define XLAT_STR_2 STRINGIFY(L2CAP_PSM_3DSP) XLAT(L2CAP_PSM_IPSP), + #define XLAT_VAL_3 ((unsigned) (L2CAP_PSM_IPSP)) + #define XLAT_STR_3 STRINGIFY(L2CAP_PSM_IPSP) XLAT(L2CAP_PSM_LE_DYN_START), + #define XLAT_VAL_4 ((unsigned) (L2CAP_PSM_LE_DYN_START)) + #define XLAT_STR_4 STRINGIFY(L2CAP_PSM_LE_DYN_START) XLAT(L2CAP_PSM_LE_DYN_END), + #define XLAT_VAL_5 ((unsigned) (L2CAP_PSM_LE_DYN_END)) + #define XLAT_STR_5 STRINGIFY(L2CAP_PSM_LE_DYN_END) XLAT(L2CAP_PSM_DYN_START), + #define XLAT_VAL_6 ((unsigned) (L2CAP_PSM_DYN_START)) + #define XLAT_STR_6 STRINGIFY(L2CAP_PSM_DYN_START) XLAT(L2CAP_PSM_AUTO_END), + #define XLAT_VAL_7 ((unsigned) (L2CAP_PSM_AUTO_END)) + #define XLAT_STR_7 STRINGIFY(L2CAP_PSM_AUTO_END) XLAT(L2CAP_PSM_DYN_END), - XLAT_END + #define XLAT_VAL_8 ((unsigned) (L2CAP_PSM_DYN_END)) + #define XLAT_STR_8 STRINGIFY(L2CAP_PSM_DYN_END) }; +static +const struct xlat bluetooth_l2_psm[1] = { { + .data = bluetooth_l2_psm_xdata, + .size = ARRAY_SIZE(bluetooth_l2_psm_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bluetooth_l2_psm.in b/xlat/bluetooth_l2_psm.in index afac026a..f8337043 100644 --- a/xlat/bluetooth_l2_psm.in +++ b/xlat/bluetooth_l2_psm.in @@ -1,4 +1,4 @@ -/* sort -k2,2 */ +#sorted sort -k2,2 L2CAP_PSM_SDP 0x0001 L2CAP_PSM_RFCOMM 0x0003 L2CAP_PSM_3DSP 0x0021 diff --git a/xlat/bootflags1.h b/xlat/bootflags1.h index d868f9c8..e214b983 100644 --- a/xlat/bootflags1.h +++ b/xlat/bootflags1.h @@ -19,12 +19,30 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat bootflags1[] = { +static const struct xlat_data bootflags1_xdata[] = { XLAT(LINUX_REBOOT_MAGIC1), - XLAT_END + #define XLAT_VAL_0 ((unsigned) (LINUX_REBOOT_MAGIC1)) + #define XLAT_STR_0 STRINGIFY(LINUX_REBOOT_MAGIC1) }; - +static +const struct xlat bootflags1[1] = { { + .data = bootflags1_xdata, + .size = ARRAY_SIZE(bootflags1_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bootflags2.h b/xlat/bootflags2.h index 6560af3e..56911024 100644 --- a/xlat/bootflags2.h +++ b/xlat/bootflags2.h @@ -40,15 +40,63 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat bootflags2[] = { +static const struct xlat_data bootflags2_xdata[] = { XLAT(LINUX_REBOOT_MAGIC2), + #define XLAT_VAL_0 ((unsigned) (LINUX_REBOOT_MAGIC2)) + #define XLAT_STR_0 STRINGIFY(LINUX_REBOOT_MAGIC2) XLAT(LINUX_REBOOT_MAGIC2A), + #define XLAT_VAL_1 ((unsigned) (LINUX_REBOOT_MAGIC2A)) + #define XLAT_STR_1 STRINGIFY(LINUX_REBOOT_MAGIC2A) XLAT(LINUX_REBOOT_MAGIC2B), + #define XLAT_VAL_2 ((unsigned) (LINUX_REBOOT_MAGIC2B)) + #define XLAT_STR_2 STRINGIFY(LINUX_REBOOT_MAGIC2B) XLAT(LINUX_REBOOT_MAGIC2C), - XLAT_END + #define XLAT_VAL_3 ((unsigned) (LINUX_REBOOT_MAGIC2C)) + #define XLAT_STR_3 STRINGIFY(LINUX_REBOOT_MAGIC2C) }; +static +const struct xlat bootflags2[1] = { { + .data = bootflags2_xdata, + .size = ARRAY_SIZE(bootflags2_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bootflags3.h b/xlat/bootflags3.h index e11a06f6..a65ed580 100644 --- a/xlat/bootflags3.h +++ b/xlat/bootflags3.h @@ -68,19 +68,107 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat bootflags3[] = { +static const struct xlat_data bootflags3_xdata[] = { XLAT(LINUX_REBOOT_CMD_RESTART), + #define XLAT_VAL_0 ((unsigned) (LINUX_REBOOT_CMD_RESTART)) + #define XLAT_STR_0 STRINGIFY(LINUX_REBOOT_CMD_RESTART) XLAT(LINUX_REBOOT_CMD_HALT), + #define XLAT_VAL_1 ((unsigned) (LINUX_REBOOT_CMD_HALT)) + #define XLAT_STR_1 STRINGIFY(LINUX_REBOOT_CMD_HALT) XLAT(LINUX_REBOOT_CMD_CAD_ON), + #define XLAT_VAL_2 ((unsigned) (LINUX_REBOOT_CMD_CAD_ON)) + #define XLAT_STR_2 STRINGIFY(LINUX_REBOOT_CMD_CAD_ON) XLAT(LINUX_REBOOT_CMD_CAD_OFF), + #define XLAT_VAL_3 ((unsigned) (LINUX_REBOOT_CMD_CAD_OFF)) + #define XLAT_STR_3 STRINGIFY(LINUX_REBOOT_CMD_CAD_OFF) XLAT(LINUX_REBOOT_CMD_POWER_OFF), + #define XLAT_VAL_4 ((unsigned) (LINUX_REBOOT_CMD_POWER_OFF)) + #define XLAT_STR_4 STRINGIFY(LINUX_REBOOT_CMD_POWER_OFF) XLAT(LINUX_REBOOT_CMD_RESTART2), + #define XLAT_VAL_5 ((unsigned) (LINUX_REBOOT_CMD_RESTART2)) + #define XLAT_STR_5 STRINGIFY(LINUX_REBOOT_CMD_RESTART2) XLAT(LINUX_REBOOT_CMD_SW_SUSPEND), + #define XLAT_VAL_6 ((unsigned) (LINUX_REBOOT_CMD_SW_SUSPEND)) + #define XLAT_STR_6 STRINGIFY(LINUX_REBOOT_CMD_SW_SUSPEND) XLAT(LINUX_REBOOT_CMD_KEXEC), - XLAT_END + #define XLAT_VAL_7 ((unsigned) (LINUX_REBOOT_CMD_KEXEC)) + #define XLAT_STR_7 STRINGIFY(LINUX_REBOOT_CMD_KEXEC) }; +static +const struct xlat bootflags3[1] = { { + .data = bootflags3_xdata, + .size = ARRAY_SIZE(bootflags3_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bpf_attach_flags.h b/xlat/bpf_attach_flags.h index 753d8f16..f35f4b4d 100644 --- a/xlat/bpf_attach_flags.h +++ b/xlat/bpf_attach_flags.h @@ -5,17 +5,24 @@ #if defined(BPF_F_ALLOW_OVERRIDE) || (defined(HAVE_DECL_BPF_F_ALLOW_OVERRIDE) && HAVE_DECL_BPF_F_ALLOW_OVERRIDE) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((BPF_F_ALLOW_OVERRIDE) == (1), "BPF_F_ALLOW_OVERRIDE != 1"); +static_assert((BPF_F_ALLOW_OVERRIDE) == (1U), "BPF_F_ALLOW_OVERRIDE != 1U"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define BPF_F_ALLOW_OVERRIDE 1 +# define BPF_F_ALLOW_OVERRIDE 1U #endif #if defined(BPF_F_ALLOW_MULTI) || (defined(HAVE_DECL_BPF_F_ALLOW_MULTI) && HAVE_DECL_BPF_F_ALLOW_MULTI) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((BPF_F_ALLOW_MULTI) == (2), "BPF_F_ALLOW_MULTI != 2"); +static_assert((BPF_F_ALLOW_MULTI) == ((1U << 1)), "BPF_F_ALLOW_MULTI != (1U << 1)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define BPF_F_ALLOW_MULTI 2 +# define BPF_F_ALLOW_MULTI (1U << 1) +#endif +#if defined(BPF_F_REPLACE) || (defined(HAVE_DECL_BPF_F_REPLACE) && HAVE_DECL_BPF_F_REPLACE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_F_REPLACE) == ((1U << 2)), "BPF_F_REPLACE != (1U << 2)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_F_REPLACE (1U << 2) #endif #ifndef XLAT_MACROS_ONLY @@ -26,13 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat bpf_attach_flags[] = { +static const struct xlat_data bpf_attach_flags_xdata[] = { XLAT(BPF_F_ALLOW_OVERRIDE), + #define XLAT_VAL_0 ((unsigned) (BPF_F_ALLOW_OVERRIDE)) + #define XLAT_STR_0 STRINGIFY(BPF_F_ALLOW_OVERRIDE) XLAT(BPF_F_ALLOW_MULTI), - XLAT_END + #define XLAT_VAL_1 ((unsigned) (BPF_F_ALLOW_MULTI)) + #define XLAT_STR_1 STRINGIFY(BPF_F_ALLOW_MULTI) + XLAT(BPF_F_REPLACE), + #define XLAT_VAL_2 ((unsigned) (BPF_F_REPLACE)) + #define XLAT_STR_2 STRINGIFY(BPF_F_REPLACE) }; +static +const struct xlat bpf_attach_flags[1] = { { + .data = bpf_attach_flags_xdata, + .size = ARRAY_SIZE(bpf_attach_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bpf_attach_flags.in b/xlat/bpf_attach_flags.in index a67c02b6..cee8d191 100644 --- a/xlat/bpf_attach_flags.in +++ b/xlat/bpf_attach_flags.in @@ -1,2 +1,3 @@ -BPF_F_ALLOW_OVERRIDE 1 -BPF_F_ALLOW_MULTI 2 +BPF_F_ALLOW_OVERRIDE 1U +BPF_F_ALLOW_MULTI (1U << 1) +BPF_F_REPLACE (1U << 2) diff --git a/xlat/bpf_attach_type.h b/xlat/bpf_attach_type.h index d2fe008e..bbcb3335 100644 --- a/xlat/bpf_attach_type.h +++ b/xlat/bpf_attach_type.h @@ -129,6 +129,146 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define BPF_FLOW_DISSECTOR 17 #endif +#if defined(BPF_CGROUP_SYSCTL) || (defined(HAVE_DECL_BPF_CGROUP_SYSCTL) && HAVE_DECL_BPF_CGROUP_SYSCTL) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_CGROUP_SYSCTL) == (18), "BPF_CGROUP_SYSCTL != 18"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_CGROUP_SYSCTL 18 +#endif +#if defined(BPF_CGROUP_UDP4_RECVMSG) || (defined(HAVE_DECL_BPF_CGROUP_UDP4_RECVMSG) && HAVE_DECL_BPF_CGROUP_UDP4_RECVMSG) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_CGROUP_UDP4_RECVMSG) == (19), "BPF_CGROUP_UDP4_RECVMSG != 19"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_CGROUP_UDP4_RECVMSG 19 +#endif +#if defined(BPF_CGROUP_UDP6_RECVMSG) || (defined(HAVE_DECL_BPF_CGROUP_UDP6_RECVMSG) && HAVE_DECL_BPF_CGROUP_UDP6_RECVMSG) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_CGROUP_UDP6_RECVMSG) == (20), "BPF_CGROUP_UDP6_RECVMSG != 20"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_CGROUP_UDP6_RECVMSG 20 +#endif +#if defined(BPF_CGROUP_GETSOCKOPT) || (defined(HAVE_DECL_BPF_CGROUP_GETSOCKOPT) && HAVE_DECL_BPF_CGROUP_GETSOCKOPT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_CGROUP_GETSOCKOPT) == (21), "BPF_CGROUP_GETSOCKOPT != 21"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_CGROUP_GETSOCKOPT 21 +#endif +#if defined(BPF_CGROUP_SETSOCKOPT) || (defined(HAVE_DECL_BPF_CGROUP_SETSOCKOPT) && HAVE_DECL_BPF_CGROUP_SETSOCKOPT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_CGROUP_SETSOCKOPT) == (22), "BPF_CGROUP_SETSOCKOPT != 22"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_CGROUP_SETSOCKOPT 22 +#endif +#if defined(BPF_TRACE_RAW_TP) || (defined(HAVE_DECL_BPF_TRACE_RAW_TP) && HAVE_DECL_BPF_TRACE_RAW_TP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_TRACE_RAW_TP) == (23), "BPF_TRACE_RAW_TP != 23"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_TRACE_RAW_TP 23 +#endif +#if defined(BPF_TRACE_FENTRY) || (defined(HAVE_DECL_BPF_TRACE_FENTRY) && HAVE_DECL_BPF_TRACE_FENTRY) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_TRACE_FENTRY) == (24), "BPF_TRACE_FENTRY != 24"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_TRACE_FENTRY 24 +#endif +#if defined(BPF_TRACE_FEXIT) || (defined(HAVE_DECL_BPF_TRACE_FEXIT) && HAVE_DECL_BPF_TRACE_FEXIT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_TRACE_FEXIT) == (25), "BPF_TRACE_FEXIT != 25"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_TRACE_FEXIT 25 +#endif +#if defined(BPF_MODIFY_RETURN) || (defined(HAVE_DECL_BPF_MODIFY_RETURN) && HAVE_DECL_BPF_MODIFY_RETURN) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_MODIFY_RETURN) == (26), "BPF_MODIFY_RETURN != 26"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_MODIFY_RETURN 26 +#endif +#if defined(BPF_LSM_MAC) || (defined(HAVE_DECL_BPF_LSM_MAC) && HAVE_DECL_BPF_LSM_MAC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_LSM_MAC) == (27), "BPF_LSM_MAC != 27"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_LSM_MAC 27 +#endif +#if defined(BPF_TRACE_ITER) || (defined(HAVE_DECL_BPF_TRACE_ITER) && HAVE_DECL_BPF_TRACE_ITER) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_TRACE_ITER) == (28), "BPF_TRACE_ITER != 28"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_TRACE_ITER 28 +#endif +#if defined(BPF_CGROUP_INET4_GETPEERNAME) || (defined(HAVE_DECL_BPF_CGROUP_INET4_GETPEERNAME) && HAVE_DECL_BPF_CGROUP_INET4_GETPEERNAME) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_CGROUP_INET4_GETPEERNAME) == (29), "BPF_CGROUP_INET4_GETPEERNAME != 29"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_CGROUP_INET4_GETPEERNAME 29 +#endif +#if defined(BPF_CGROUP_INET6_GETPEERNAME) || (defined(HAVE_DECL_BPF_CGROUP_INET6_GETPEERNAME) && HAVE_DECL_BPF_CGROUP_INET6_GETPEERNAME) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_CGROUP_INET6_GETPEERNAME) == (30), "BPF_CGROUP_INET6_GETPEERNAME != 30"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_CGROUP_INET6_GETPEERNAME 30 +#endif +#if defined(BPF_CGROUP_INET4_GETSOCKNAME) || (defined(HAVE_DECL_BPF_CGROUP_INET4_GETSOCKNAME) && HAVE_DECL_BPF_CGROUP_INET4_GETSOCKNAME) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_CGROUP_INET4_GETSOCKNAME) == (31), "BPF_CGROUP_INET4_GETSOCKNAME != 31"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_CGROUP_INET4_GETSOCKNAME 31 +#endif +#if defined(BPF_CGROUP_INET6_GETSOCKNAME) || (defined(HAVE_DECL_BPF_CGROUP_INET6_GETSOCKNAME) && HAVE_DECL_BPF_CGROUP_INET6_GETSOCKNAME) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_CGROUP_INET6_GETSOCKNAME) == (32), "BPF_CGROUP_INET6_GETSOCKNAME != 32"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_CGROUP_INET6_GETSOCKNAME 32 +#endif +#if defined(BPF_XDP_DEVMAP) || (defined(HAVE_DECL_BPF_XDP_DEVMAP) && HAVE_DECL_BPF_XDP_DEVMAP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_XDP_DEVMAP) == (33), "BPF_XDP_DEVMAP != 33"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_XDP_DEVMAP 33 +#endif +#if defined(BPF_CGROUP_INET_SOCK_RELEASE) || (defined(HAVE_DECL_BPF_CGROUP_INET_SOCK_RELEASE) && HAVE_DECL_BPF_CGROUP_INET_SOCK_RELEASE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_CGROUP_INET_SOCK_RELEASE) == (34), "BPF_CGROUP_INET_SOCK_RELEASE != 34"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_CGROUP_INET_SOCK_RELEASE 34 +#endif +#if defined(BPF_XDP_CPUMAP) || (defined(HAVE_DECL_BPF_XDP_CPUMAP) && HAVE_DECL_BPF_XDP_CPUMAP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_XDP_CPUMAP) == (35), "BPF_XDP_CPUMAP != 35"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_XDP_CPUMAP 35 +#endif +#if defined(BPF_SK_LOOKUP) || (defined(HAVE_DECL_BPF_SK_LOOKUP) && HAVE_DECL_BPF_SK_LOOKUP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_SK_LOOKUP) == (36), "BPF_SK_LOOKUP != 36"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_SK_LOOKUP 36 +#endif +#if defined(BPF_XDP) || (defined(HAVE_DECL_BPF_XDP) && HAVE_DECL_BPF_XDP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_XDP) == (37), "BPF_XDP != 37"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_XDP 37 +#endif #ifndef XLAT_MACROS_ONLY @@ -138,29 +278,437 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat bpf_attach_type[] = { +static const struct xlat_data bpf_attach_type_xdata[] = { [BPF_CGROUP_INET_INGRESS] = XLAT(BPF_CGROUP_INET_INGRESS), + #define XLAT_VAL_0 ((unsigned) (BPF_CGROUP_INET_INGRESS)) + #define XLAT_STR_0 STRINGIFY(BPF_CGROUP_INET_INGRESS) [BPF_CGROUP_INET_EGRESS] = XLAT(BPF_CGROUP_INET_EGRESS), + #define XLAT_VAL_1 ((unsigned) (BPF_CGROUP_INET_EGRESS)) + #define XLAT_STR_1 STRINGIFY(BPF_CGROUP_INET_EGRESS) [BPF_CGROUP_INET_SOCK_CREATE] = XLAT(BPF_CGROUP_INET_SOCK_CREATE), + #define XLAT_VAL_2 ((unsigned) (BPF_CGROUP_INET_SOCK_CREATE)) + #define XLAT_STR_2 STRINGIFY(BPF_CGROUP_INET_SOCK_CREATE) [BPF_CGROUP_SOCK_OPS] = XLAT(BPF_CGROUP_SOCK_OPS), + #define XLAT_VAL_3 ((unsigned) (BPF_CGROUP_SOCK_OPS)) + #define XLAT_STR_3 STRINGIFY(BPF_CGROUP_SOCK_OPS) [BPF_SK_SKB_STREAM_PARSER] = XLAT(BPF_SK_SKB_STREAM_PARSER), + #define XLAT_VAL_4 ((unsigned) (BPF_SK_SKB_STREAM_PARSER)) + #define XLAT_STR_4 STRINGIFY(BPF_SK_SKB_STREAM_PARSER) [BPF_SK_SKB_STREAM_VERDICT] = XLAT(BPF_SK_SKB_STREAM_VERDICT), + #define XLAT_VAL_5 ((unsigned) (BPF_SK_SKB_STREAM_VERDICT)) + #define XLAT_STR_5 STRINGIFY(BPF_SK_SKB_STREAM_VERDICT) [BPF_CGROUP_DEVICE] = XLAT(BPF_CGROUP_DEVICE), + #define XLAT_VAL_6 ((unsigned) (BPF_CGROUP_DEVICE)) + #define XLAT_STR_6 STRINGIFY(BPF_CGROUP_DEVICE) [BPF_SK_MSG_VERDICT] = XLAT(BPF_SK_MSG_VERDICT), + #define XLAT_VAL_7 ((unsigned) (BPF_SK_MSG_VERDICT)) + #define XLAT_STR_7 STRINGIFY(BPF_SK_MSG_VERDICT) [BPF_CGROUP_INET4_BIND] = XLAT(BPF_CGROUP_INET4_BIND), + #define XLAT_VAL_8 ((unsigned) (BPF_CGROUP_INET4_BIND)) + #define XLAT_STR_8 STRINGIFY(BPF_CGROUP_INET4_BIND) [BPF_CGROUP_INET6_BIND] = XLAT(BPF_CGROUP_INET6_BIND), + #define XLAT_VAL_9 ((unsigned) (BPF_CGROUP_INET6_BIND)) + #define XLAT_STR_9 STRINGIFY(BPF_CGROUP_INET6_BIND) [BPF_CGROUP_INET4_CONNECT] = XLAT(BPF_CGROUP_INET4_CONNECT), + #define XLAT_VAL_10 ((unsigned) (BPF_CGROUP_INET4_CONNECT)) + #define XLAT_STR_10 STRINGIFY(BPF_CGROUP_INET4_CONNECT) [BPF_CGROUP_INET6_CONNECT] = XLAT(BPF_CGROUP_INET6_CONNECT), + #define XLAT_VAL_11 ((unsigned) (BPF_CGROUP_INET6_CONNECT)) + #define XLAT_STR_11 STRINGIFY(BPF_CGROUP_INET6_CONNECT) [BPF_CGROUP_INET4_POST_BIND] = XLAT(BPF_CGROUP_INET4_POST_BIND), + #define XLAT_VAL_12 ((unsigned) (BPF_CGROUP_INET4_POST_BIND)) + #define XLAT_STR_12 STRINGIFY(BPF_CGROUP_INET4_POST_BIND) [BPF_CGROUP_INET6_POST_BIND] = XLAT(BPF_CGROUP_INET6_POST_BIND), + #define XLAT_VAL_13 ((unsigned) (BPF_CGROUP_INET6_POST_BIND)) + #define XLAT_STR_13 STRINGIFY(BPF_CGROUP_INET6_POST_BIND) [BPF_CGROUP_UDP4_SENDMSG] = XLAT(BPF_CGROUP_UDP4_SENDMSG), + #define XLAT_VAL_14 ((unsigned) (BPF_CGROUP_UDP4_SENDMSG)) + #define XLAT_STR_14 STRINGIFY(BPF_CGROUP_UDP4_SENDMSG) [BPF_CGROUP_UDP6_SENDMSG] = XLAT(BPF_CGROUP_UDP6_SENDMSG), + #define XLAT_VAL_15 ((unsigned) (BPF_CGROUP_UDP6_SENDMSG)) + #define XLAT_STR_15 STRINGIFY(BPF_CGROUP_UDP6_SENDMSG) [BPF_LIRC_MODE2] = XLAT(BPF_LIRC_MODE2), + #define XLAT_VAL_16 ((unsigned) (BPF_LIRC_MODE2)) + #define XLAT_STR_16 STRINGIFY(BPF_LIRC_MODE2) [BPF_FLOW_DISSECTOR] = XLAT(BPF_FLOW_DISSECTOR), - XLAT_END + #define XLAT_VAL_17 ((unsigned) (BPF_FLOW_DISSECTOR)) + #define XLAT_STR_17 STRINGIFY(BPF_FLOW_DISSECTOR) + [BPF_CGROUP_SYSCTL] = XLAT(BPF_CGROUP_SYSCTL), + #define XLAT_VAL_18 ((unsigned) (BPF_CGROUP_SYSCTL)) + #define XLAT_STR_18 STRINGIFY(BPF_CGROUP_SYSCTL) + [BPF_CGROUP_UDP4_RECVMSG] = XLAT(BPF_CGROUP_UDP4_RECVMSG), + #define XLAT_VAL_19 ((unsigned) (BPF_CGROUP_UDP4_RECVMSG)) + #define XLAT_STR_19 STRINGIFY(BPF_CGROUP_UDP4_RECVMSG) + [BPF_CGROUP_UDP6_RECVMSG] = XLAT(BPF_CGROUP_UDP6_RECVMSG), + #define XLAT_VAL_20 ((unsigned) (BPF_CGROUP_UDP6_RECVMSG)) + #define XLAT_STR_20 STRINGIFY(BPF_CGROUP_UDP6_RECVMSG) + [BPF_CGROUP_GETSOCKOPT] = XLAT(BPF_CGROUP_GETSOCKOPT), + #define XLAT_VAL_21 ((unsigned) (BPF_CGROUP_GETSOCKOPT)) + #define XLAT_STR_21 STRINGIFY(BPF_CGROUP_GETSOCKOPT) + [BPF_CGROUP_SETSOCKOPT] = XLAT(BPF_CGROUP_SETSOCKOPT), + #define XLAT_VAL_22 ((unsigned) (BPF_CGROUP_SETSOCKOPT)) + #define XLAT_STR_22 STRINGIFY(BPF_CGROUP_SETSOCKOPT) + [BPF_TRACE_RAW_TP] = XLAT(BPF_TRACE_RAW_TP), + #define XLAT_VAL_23 ((unsigned) (BPF_TRACE_RAW_TP)) + #define XLAT_STR_23 STRINGIFY(BPF_TRACE_RAW_TP) + [BPF_TRACE_FENTRY] = XLAT(BPF_TRACE_FENTRY), + #define XLAT_VAL_24 ((unsigned) (BPF_TRACE_FENTRY)) + #define XLAT_STR_24 STRINGIFY(BPF_TRACE_FENTRY) + [BPF_TRACE_FEXIT] = XLAT(BPF_TRACE_FEXIT), + #define XLAT_VAL_25 ((unsigned) (BPF_TRACE_FEXIT)) + #define XLAT_STR_25 STRINGIFY(BPF_TRACE_FEXIT) + [BPF_MODIFY_RETURN] = XLAT(BPF_MODIFY_RETURN), + #define XLAT_VAL_26 ((unsigned) (BPF_MODIFY_RETURN)) + #define XLAT_STR_26 STRINGIFY(BPF_MODIFY_RETURN) + [BPF_LSM_MAC] = XLAT(BPF_LSM_MAC), + #define XLAT_VAL_27 ((unsigned) (BPF_LSM_MAC)) + #define XLAT_STR_27 STRINGIFY(BPF_LSM_MAC) + [BPF_TRACE_ITER] = XLAT(BPF_TRACE_ITER), + #define XLAT_VAL_28 ((unsigned) (BPF_TRACE_ITER)) + #define XLAT_STR_28 STRINGIFY(BPF_TRACE_ITER) + [BPF_CGROUP_INET4_GETPEERNAME] = XLAT(BPF_CGROUP_INET4_GETPEERNAME), + #define XLAT_VAL_29 ((unsigned) (BPF_CGROUP_INET4_GETPEERNAME)) + #define XLAT_STR_29 STRINGIFY(BPF_CGROUP_INET4_GETPEERNAME) + [BPF_CGROUP_INET6_GETPEERNAME] = XLAT(BPF_CGROUP_INET6_GETPEERNAME), + #define XLAT_VAL_30 ((unsigned) (BPF_CGROUP_INET6_GETPEERNAME)) + #define XLAT_STR_30 STRINGIFY(BPF_CGROUP_INET6_GETPEERNAME) + [BPF_CGROUP_INET4_GETSOCKNAME] = XLAT(BPF_CGROUP_INET4_GETSOCKNAME), + #define XLAT_VAL_31 ((unsigned) (BPF_CGROUP_INET4_GETSOCKNAME)) + #define XLAT_STR_31 STRINGIFY(BPF_CGROUP_INET4_GETSOCKNAME) + [BPF_CGROUP_INET6_GETSOCKNAME] = XLAT(BPF_CGROUP_INET6_GETSOCKNAME), + #define XLAT_VAL_32 ((unsigned) (BPF_CGROUP_INET6_GETSOCKNAME)) + #define XLAT_STR_32 STRINGIFY(BPF_CGROUP_INET6_GETSOCKNAME) + [BPF_XDP_DEVMAP] = XLAT(BPF_XDP_DEVMAP), + #define XLAT_VAL_33 ((unsigned) (BPF_XDP_DEVMAP)) + #define XLAT_STR_33 STRINGIFY(BPF_XDP_DEVMAP) + [BPF_CGROUP_INET_SOCK_RELEASE] = XLAT(BPF_CGROUP_INET_SOCK_RELEASE), + #define XLAT_VAL_34 ((unsigned) (BPF_CGROUP_INET_SOCK_RELEASE)) + #define XLAT_STR_34 STRINGIFY(BPF_CGROUP_INET_SOCK_RELEASE) + [BPF_XDP_CPUMAP] = XLAT(BPF_XDP_CPUMAP), + #define XLAT_VAL_35 ((unsigned) (BPF_XDP_CPUMAP)) + #define XLAT_STR_35 STRINGIFY(BPF_XDP_CPUMAP) + [BPF_SK_LOOKUP] = XLAT(BPF_SK_LOOKUP), + #define XLAT_VAL_36 ((unsigned) (BPF_SK_LOOKUP)) + #define XLAT_STR_36 STRINGIFY(BPF_SK_LOOKUP) + [BPF_XDP] = XLAT(BPF_XDP), + #define XLAT_VAL_37 ((unsigned) (BPF_XDP)) + #define XLAT_STR_37 STRINGIFY(BPF_XDP) }; +static +const struct xlat bpf_attach_type[1] = { { + .data = bpf_attach_type_xdata, + .size = ARRAY_SIZE(bpf_attach_type_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bpf_attach_type.in b/xlat/bpf_attach_type.in index 29a58b81..c2da7348 100644 --- a/xlat/bpf_attach_type.in +++ b/xlat/bpf_attach_type.in @@ -17,3 +17,23 @@ BPF_CGROUP_UDP4_SENDMSG 14 BPF_CGROUP_UDP6_SENDMSG 15 BPF_LIRC_MODE2 16 BPF_FLOW_DISSECTOR 17 +BPF_CGROUP_SYSCTL 18 +BPF_CGROUP_UDP4_RECVMSG 19 +BPF_CGROUP_UDP6_RECVMSG 20 +BPF_CGROUP_GETSOCKOPT 21 +BPF_CGROUP_SETSOCKOPT 22 +BPF_TRACE_RAW_TP 23 +BPF_TRACE_FENTRY 24 +BPF_TRACE_FEXIT 25 +BPF_MODIFY_RETURN 26 +BPF_LSM_MAC 27 +BPF_TRACE_ITER 28 +BPF_CGROUP_INET4_GETPEERNAME 29 +BPF_CGROUP_INET6_GETPEERNAME 30 +BPF_CGROUP_INET4_GETSOCKNAME 31 +BPF_CGROUP_INET6_GETSOCKNAME 32 +BPF_XDP_DEVMAP 33 +BPF_CGROUP_INET_SOCK_RELEASE 34 +BPF_XDP_CPUMAP 35 +BPF_SK_LOOKUP 36 +BPF_XDP 37 diff --git a/xlat/bpf_class.h b/xlat/bpf_class.h index a45ebd7f..c22d7f3b 100644 --- a/xlat/bpf_class.h +++ b/xlat/bpf_class.h @@ -68,19 +68,107 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat bpf_class[] = { +static const struct xlat_data bpf_class_xdata[] = { [BPF_LD] = XLAT(BPF_LD), + #define XLAT_VAL_0 ((unsigned) (BPF_LD)) + #define XLAT_STR_0 STRINGIFY(BPF_LD) [BPF_LDX] = XLAT(BPF_LDX), + #define XLAT_VAL_1 ((unsigned) (BPF_LDX)) + #define XLAT_STR_1 STRINGIFY(BPF_LDX) [BPF_ST] = XLAT(BPF_ST), + #define XLAT_VAL_2 ((unsigned) (BPF_ST)) + #define XLAT_STR_2 STRINGIFY(BPF_ST) [BPF_STX] = XLAT(BPF_STX), + #define XLAT_VAL_3 ((unsigned) (BPF_STX)) + #define XLAT_STR_3 STRINGIFY(BPF_STX) [BPF_ALU] = XLAT(BPF_ALU), + #define XLAT_VAL_4 ((unsigned) (BPF_ALU)) + #define XLAT_STR_4 STRINGIFY(BPF_ALU) [BPF_JMP] = XLAT(BPF_JMP), + #define XLAT_VAL_5 ((unsigned) (BPF_JMP)) + #define XLAT_STR_5 STRINGIFY(BPF_JMP) [BPF_RET] = XLAT(BPF_RET), + #define XLAT_VAL_6 ((unsigned) (BPF_RET)) + #define XLAT_STR_6 STRINGIFY(BPF_RET) [BPF_MISC] = XLAT(BPF_MISC), - XLAT_END + #define XLAT_VAL_7 ((unsigned) (BPF_MISC)) + #define XLAT_STR_7 STRINGIFY(BPF_MISC) }; +static +const struct xlat bpf_class[1] = { { + .data = bpf_class_xdata, + .size = ARRAY_SIZE(bpf_class_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bpf_commands.h b/xlat/bpf_commands.h index bd99d5a7..f7276436 100644 --- a/xlat/bpf_commands.h +++ b/xlat/bpf_commands.h @@ -157,6 +157,97 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define BPF_MAP_LOOKUP_AND_DELETE_ELEM 21 #endif +#if defined(BPF_MAP_FREEZE) || (defined(HAVE_DECL_BPF_MAP_FREEZE) && HAVE_DECL_BPF_MAP_FREEZE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_MAP_FREEZE) == (22), "BPF_MAP_FREEZE != 22"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_MAP_FREEZE 22 +#endif +#if defined(BPF_BTF_GET_NEXT_ID) || (defined(HAVE_DECL_BPF_BTF_GET_NEXT_ID) && HAVE_DECL_BPF_BTF_GET_NEXT_ID) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_BTF_GET_NEXT_ID) == (23), "BPF_BTF_GET_NEXT_ID != 23"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_BTF_GET_NEXT_ID 23 +#endif +#if defined(BPF_MAP_LOOKUP_BATCH) || (defined(HAVE_DECL_BPF_MAP_LOOKUP_BATCH) && HAVE_DECL_BPF_MAP_LOOKUP_BATCH) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_MAP_LOOKUP_BATCH) == (24), "BPF_MAP_LOOKUP_BATCH != 24"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_MAP_LOOKUP_BATCH 24 +#endif +#if defined(BPF_MAP_LOOKUP_AND_DELETE_BATCH) || (defined(HAVE_DECL_BPF_MAP_LOOKUP_AND_DELETE_BATCH) && HAVE_DECL_BPF_MAP_LOOKUP_AND_DELETE_BATCH) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_MAP_LOOKUP_AND_DELETE_BATCH) == (25), "BPF_MAP_LOOKUP_AND_DELETE_BATCH != 25"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_MAP_LOOKUP_AND_DELETE_BATCH 25 +#endif +#if defined(BPF_MAP_UPDATE_BATCH) || (defined(HAVE_DECL_BPF_MAP_UPDATE_BATCH) && HAVE_DECL_BPF_MAP_UPDATE_BATCH) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_MAP_UPDATE_BATCH) == (26), "BPF_MAP_UPDATE_BATCH != 26"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_MAP_UPDATE_BATCH 26 +#endif +#if defined(BPF_MAP_DELETE_BATCH) || (defined(HAVE_DECL_BPF_MAP_DELETE_BATCH) && HAVE_DECL_BPF_MAP_DELETE_BATCH) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_MAP_DELETE_BATCH) == (27), "BPF_MAP_DELETE_BATCH != 27"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_MAP_DELETE_BATCH 27 +#endif +#if defined(BPF_LINK_CREATE) || (defined(HAVE_DECL_BPF_LINK_CREATE) && HAVE_DECL_BPF_LINK_CREATE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_LINK_CREATE) == (28), "BPF_LINK_CREATE != 28"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_LINK_CREATE 28 +#endif +#if defined(BPF_LINK_UPDATE) || (defined(HAVE_DECL_BPF_LINK_UPDATE) && HAVE_DECL_BPF_LINK_UPDATE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_LINK_UPDATE) == (29), "BPF_LINK_UPDATE != 29"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_LINK_UPDATE 29 +#endif +#if defined(BPF_LINK_GET_FD_BY_ID) || (defined(HAVE_DECL_BPF_LINK_GET_FD_BY_ID) && HAVE_DECL_BPF_LINK_GET_FD_BY_ID) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_LINK_GET_FD_BY_ID) == (30), "BPF_LINK_GET_FD_BY_ID != 30"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_LINK_GET_FD_BY_ID 30 +#endif +#if defined(BPF_LINK_GET_NEXT_ID) || (defined(HAVE_DECL_BPF_LINK_GET_NEXT_ID) && HAVE_DECL_BPF_LINK_GET_NEXT_ID) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_LINK_GET_NEXT_ID) == (31), "BPF_LINK_GET_NEXT_ID != 31"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_LINK_GET_NEXT_ID 31 +#endif +#if defined(BPF_ENABLE_STATS) || (defined(HAVE_DECL_BPF_ENABLE_STATS) && HAVE_DECL_BPF_ENABLE_STATS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_ENABLE_STATS) == (32), "BPF_ENABLE_STATS != 32"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_ENABLE_STATS 32 +#endif +#if defined(BPF_ITER_CREATE) || (defined(HAVE_DECL_BPF_ITER_CREATE) && HAVE_DECL_BPF_ITER_CREATE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_ITER_CREATE) == (33), "BPF_ITER_CREATE != 33"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_ITER_CREATE 33 +#endif +#if defined(BPF_LINK_DETACH) || (defined(HAVE_DECL_BPF_LINK_DETACH) && HAVE_DECL_BPF_LINK_DETACH) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_LINK_DETACH) == (34), "BPF_LINK_DETACH != 34"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_LINK_DETACH 34 +#endif #ifndef XLAT_MACROS_ONLY @@ -166,33 +257,404 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat bpf_commands[] = { +static const struct xlat_data bpf_commands_xdata[] = { [BPF_MAP_CREATE] = XLAT(BPF_MAP_CREATE), + #define XLAT_VAL_0 ((unsigned) (BPF_MAP_CREATE)) + #define XLAT_STR_0 STRINGIFY(BPF_MAP_CREATE) [BPF_MAP_LOOKUP_ELEM] = XLAT(BPF_MAP_LOOKUP_ELEM), + #define XLAT_VAL_1 ((unsigned) (BPF_MAP_LOOKUP_ELEM)) + #define XLAT_STR_1 STRINGIFY(BPF_MAP_LOOKUP_ELEM) [BPF_MAP_UPDATE_ELEM] = XLAT(BPF_MAP_UPDATE_ELEM), + #define XLAT_VAL_2 ((unsigned) (BPF_MAP_UPDATE_ELEM)) + #define XLAT_STR_2 STRINGIFY(BPF_MAP_UPDATE_ELEM) [BPF_MAP_DELETE_ELEM] = XLAT(BPF_MAP_DELETE_ELEM), + #define XLAT_VAL_3 ((unsigned) (BPF_MAP_DELETE_ELEM)) + #define XLAT_STR_3 STRINGIFY(BPF_MAP_DELETE_ELEM) [BPF_MAP_GET_NEXT_KEY] = XLAT(BPF_MAP_GET_NEXT_KEY), + #define XLAT_VAL_4 ((unsigned) (BPF_MAP_GET_NEXT_KEY)) + #define XLAT_STR_4 STRINGIFY(BPF_MAP_GET_NEXT_KEY) [BPF_PROG_LOAD] = XLAT(BPF_PROG_LOAD), + #define XLAT_VAL_5 ((unsigned) (BPF_PROG_LOAD)) + #define XLAT_STR_5 STRINGIFY(BPF_PROG_LOAD) [BPF_OBJ_PIN] = XLAT(BPF_OBJ_PIN), + #define XLAT_VAL_6 ((unsigned) (BPF_OBJ_PIN)) + #define XLAT_STR_6 STRINGIFY(BPF_OBJ_PIN) [BPF_OBJ_GET] = XLAT(BPF_OBJ_GET), + #define XLAT_VAL_7 ((unsigned) (BPF_OBJ_GET)) + #define XLAT_STR_7 STRINGIFY(BPF_OBJ_GET) [BPF_PROG_ATTACH] = XLAT(BPF_PROG_ATTACH), + #define XLAT_VAL_8 ((unsigned) (BPF_PROG_ATTACH)) + #define XLAT_STR_8 STRINGIFY(BPF_PROG_ATTACH) [BPF_PROG_DETACH] = XLAT(BPF_PROG_DETACH), + #define XLAT_VAL_9 ((unsigned) (BPF_PROG_DETACH)) + #define XLAT_STR_9 STRINGIFY(BPF_PROG_DETACH) [BPF_PROG_TEST_RUN] = XLAT(BPF_PROG_TEST_RUN), + #define XLAT_VAL_10 ((unsigned) (BPF_PROG_TEST_RUN)) + #define XLAT_STR_10 STRINGIFY(BPF_PROG_TEST_RUN) [BPF_PROG_GET_NEXT_ID] = XLAT(BPF_PROG_GET_NEXT_ID), + #define XLAT_VAL_11 ((unsigned) (BPF_PROG_GET_NEXT_ID)) + #define XLAT_STR_11 STRINGIFY(BPF_PROG_GET_NEXT_ID) [BPF_MAP_GET_NEXT_ID] = XLAT(BPF_MAP_GET_NEXT_ID), + #define XLAT_VAL_12 ((unsigned) (BPF_MAP_GET_NEXT_ID)) + #define XLAT_STR_12 STRINGIFY(BPF_MAP_GET_NEXT_ID) [BPF_PROG_GET_FD_BY_ID] = XLAT(BPF_PROG_GET_FD_BY_ID), + #define XLAT_VAL_13 ((unsigned) (BPF_PROG_GET_FD_BY_ID)) + #define XLAT_STR_13 STRINGIFY(BPF_PROG_GET_FD_BY_ID) [BPF_MAP_GET_FD_BY_ID] = XLAT(BPF_MAP_GET_FD_BY_ID), + #define XLAT_VAL_14 ((unsigned) (BPF_MAP_GET_FD_BY_ID)) + #define XLAT_STR_14 STRINGIFY(BPF_MAP_GET_FD_BY_ID) [BPF_OBJ_GET_INFO_BY_FD] = XLAT(BPF_OBJ_GET_INFO_BY_FD), + #define XLAT_VAL_15 ((unsigned) (BPF_OBJ_GET_INFO_BY_FD)) + #define XLAT_STR_15 STRINGIFY(BPF_OBJ_GET_INFO_BY_FD) [BPF_PROG_QUERY] = XLAT(BPF_PROG_QUERY), + #define XLAT_VAL_16 ((unsigned) (BPF_PROG_QUERY)) + #define XLAT_STR_16 STRINGIFY(BPF_PROG_QUERY) [BPF_RAW_TRACEPOINT_OPEN] = XLAT(BPF_RAW_TRACEPOINT_OPEN), + #define XLAT_VAL_17 ((unsigned) (BPF_RAW_TRACEPOINT_OPEN)) + #define XLAT_STR_17 STRINGIFY(BPF_RAW_TRACEPOINT_OPEN) [BPF_BTF_LOAD] = XLAT(BPF_BTF_LOAD), + #define XLAT_VAL_18 ((unsigned) (BPF_BTF_LOAD)) + #define XLAT_STR_18 STRINGIFY(BPF_BTF_LOAD) [BPF_BTF_GET_FD_BY_ID] = XLAT(BPF_BTF_GET_FD_BY_ID), + #define XLAT_VAL_19 ((unsigned) (BPF_BTF_GET_FD_BY_ID)) + #define XLAT_STR_19 STRINGIFY(BPF_BTF_GET_FD_BY_ID) [BPF_TASK_FD_QUERY] = XLAT(BPF_TASK_FD_QUERY), + #define XLAT_VAL_20 ((unsigned) (BPF_TASK_FD_QUERY)) + #define XLAT_STR_20 STRINGIFY(BPF_TASK_FD_QUERY) [BPF_MAP_LOOKUP_AND_DELETE_ELEM] = XLAT(BPF_MAP_LOOKUP_AND_DELETE_ELEM), - XLAT_END + #define XLAT_VAL_21 ((unsigned) (BPF_MAP_LOOKUP_AND_DELETE_ELEM)) + #define XLAT_STR_21 STRINGIFY(BPF_MAP_LOOKUP_AND_DELETE_ELEM) + [BPF_MAP_FREEZE] = XLAT(BPF_MAP_FREEZE), + #define XLAT_VAL_22 ((unsigned) (BPF_MAP_FREEZE)) + #define XLAT_STR_22 STRINGIFY(BPF_MAP_FREEZE) + [BPF_BTF_GET_NEXT_ID] = XLAT(BPF_BTF_GET_NEXT_ID), + #define XLAT_VAL_23 ((unsigned) (BPF_BTF_GET_NEXT_ID)) + #define XLAT_STR_23 STRINGIFY(BPF_BTF_GET_NEXT_ID) + [BPF_MAP_LOOKUP_BATCH] = XLAT(BPF_MAP_LOOKUP_BATCH), + #define XLAT_VAL_24 ((unsigned) (BPF_MAP_LOOKUP_BATCH)) + #define XLAT_STR_24 STRINGIFY(BPF_MAP_LOOKUP_BATCH) + [BPF_MAP_LOOKUP_AND_DELETE_BATCH] = XLAT(BPF_MAP_LOOKUP_AND_DELETE_BATCH), + #define XLAT_VAL_25 ((unsigned) (BPF_MAP_LOOKUP_AND_DELETE_BATCH)) + #define XLAT_STR_25 STRINGIFY(BPF_MAP_LOOKUP_AND_DELETE_BATCH) + [BPF_MAP_UPDATE_BATCH] = XLAT(BPF_MAP_UPDATE_BATCH), + #define XLAT_VAL_26 ((unsigned) (BPF_MAP_UPDATE_BATCH)) + #define XLAT_STR_26 STRINGIFY(BPF_MAP_UPDATE_BATCH) + [BPF_MAP_DELETE_BATCH] = XLAT(BPF_MAP_DELETE_BATCH), + #define XLAT_VAL_27 ((unsigned) (BPF_MAP_DELETE_BATCH)) + #define XLAT_STR_27 STRINGIFY(BPF_MAP_DELETE_BATCH) + [BPF_LINK_CREATE] = XLAT(BPF_LINK_CREATE), + #define XLAT_VAL_28 ((unsigned) (BPF_LINK_CREATE)) + #define XLAT_STR_28 STRINGIFY(BPF_LINK_CREATE) + [BPF_LINK_UPDATE] = XLAT(BPF_LINK_UPDATE), + #define XLAT_VAL_29 ((unsigned) (BPF_LINK_UPDATE)) + #define XLAT_STR_29 STRINGIFY(BPF_LINK_UPDATE) + [BPF_LINK_GET_FD_BY_ID] = XLAT(BPF_LINK_GET_FD_BY_ID), + #define XLAT_VAL_30 ((unsigned) (BPF_LINK_GET_FD_BY_ID)) + #define XLAT_STR_30 STRINGIFY(BPF_LINK_GET_FD_BY_ID) + [BPF_LINK_GET_NEXT_ID] = XLAT(BPF_LINK_GET_NEXT_ID), + #define XLAT_VAL_31 ((unsigned) (BPF_LINK_GET_NEXT_ID)) + #define XLAT_STR_31 STRINGIFY(BPF_LINK_GET_NEXT_ID) + [BPF_ENABLE_STATS] = XLAT(BPF_ENABLE_STATS), + #define XLAT_VAL_32 ((unsigned) (BPF_ENABLE_STATS)) + #define XLAT_STR_32 STRINGIFY(BPF_ENABLE_STATS) + [BPF_ITER_CREATE] = XLAT(BPF_ITER_CREATE), + #define XLAT_VAL_33 ((unsigned) (BPF_ITER_CREATE)) + #define XLAT_STR_33 STRINGIFY(BPF_ITER_CREATE) + [BPF_LINK_DETACH] = XLAT(BPF_LINK_DETACH), + #define XLAT_VAL_34 ((unsigned) (BPF_LINK_DETACH)) + #define XLAT_STR_34 STRINGIFY(BPF_LINK_DETACH) }; +static +const struct xlat bpf_commands[1] = { { + .data = bpf_commands_xdata, + .size = ARRAY_SIZE(bpf_commands_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bpf_commands.in b/xlat/bpf_commands.in index 6dff998d..6b248a66 100644 --- a/xlat/bpf_commands.in +++ b/xlat/bpf_commands.in @@ -21,3 +21,16 @@ BPF_BTF_LOAD 18 BPF_BTF_GET_FD_BY_ID 19 BPF_TASK_FD_QUERY 20 BPF_MAP_LOOKUP_AND_DELETE_ELEM 21 +BPF_MAP_FREEZE 22 +BPF_BTF_GET_NEXT_ID 23 +BPF_MAP_LOOKUP_BATCH 24 +BPF_MAP_LOOKUP_AND_DELETE_BATCH 25 +BPF_MAP_UPDATE_BATCH 26 +BPF_MAP_DELETE_BATCH 27 +BPF_LINK_CREATE 28 +BPF_LINK_UPDATE 29 +BPF_LINK_GET_FD_BY_ID 30 +BPF_LINK_GET_NEXT_ID 31 +BPF_ENABLE_STATS 32 +BPF_ITER_CREATE 33 +BPF_LINK_DETACH 34 diff --git a/xlat/bpf_file_mode_flags.h b/xlat/bpf_file_mode_flags.h index 3a6baf54..f95224db 100644 --- a/xlat/bpf_file_mode_flags.h +++ b/xlat/bpf_file_mode_flags.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat bpf_file_mode_flags[] = { +static const struct xlat_data bpf_file_mode_flags_xdata[] = { XLAT(BPF_F_RDONLY), + #define XLAT_VAL_0 ((unsigned) (BPF_F_RDONLY)) + #define XLAT_STR_0 STRINGIFY(BPF_F_RDONLY) XLAT(BPF_F_WRONLY), - XLAT_END + #define XLAT_VAL_1 ((unsigned) (BPF_F_WRONLY)) + #define XLAT_STR_1 STRINGIFY(BPF_F_WRONLY) }; +static +const struct xlat bpf_file_mode_flags[1] = { { + .data = bpf_file_mode_flags_xdata, + .size = ARRAY_SIZE(bpf_file_mode_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bpf_map_flags.h b/xlat/bpf_map_flags.h index dcfd0fc0..ba18799a 100644 --- a/xlat/bpf_map_flags.h +++ b/xlat/bpf_map_flags.h @@ -52,6 +52,34 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define BPF_F_ZERO_SEED (1U << 6) #endif +#if defined(BPF_F_RDONLY_PROG) || (defined(HAVE_DECL_BPF_F_RDONLY_PROG) && HAVE_DECL_BPF_F_RDONLY_PROG) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_F_RDONLY_PROG) == ((1U << 7)), "BPF_F_RDONLY_PROG != (1U << 7)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_F_RDONLY_PROG (1U << 7) +#endif +#if defined(BPF_F_WRONLY_PROG) || (defined(HAVE_DECL_BPF_F_WRONLY_PROG) && HAVE_DECL_BPF_F_WRONLY_PROG) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_F_WRONLY_PROG) == ((1U << 8)), "BPF_F_WRONLY_PROG != (1U << 8)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_F_WRONLY_PROG (1U << 8) +#endif +#if defined(BPF_F_CLONE) || (defined(HAVE_DECL_BPF_F_CLONE) && HAVE_DECL_BPF_F_CLONE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_F_CLONE) == ((1U << 9)), "BPF_F_CLONE != (1U << 9)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_F_CLONE (1U << 9) +#endif +#if defined(BPF_F_MMAPABLE) || (defined(HAVE_DECL_BPF_F_MMAPABLE) && HAVE_DECL_BPF_F_MMAPABLE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_F_MMAPABLE) == ((1U << 10)), "BPF_F_MMAPABLE != (1U << 10)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_F_MMAPABLE (1U << 10) +#endif #ifndef XLAT_MACROS_ONLY @@ -61,18 +89,140 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat bpf_map_flags[] = { +static const struct xlat_data bpf_map_flags_xdata[] = { XLAT(BPF_F_NO_PREALLOC), + #define XLAT_VAL_0 ((unsigned) (BPF_F_NO_PREALLOC)) + #define XLAT_STR_0 STRINGIFY(BPF_F_NO_PREALLOC) XLAT(BPF_F_NO_COMMON_LRU), + #define XLAT_VAL_1 ((unsigned) (BPF_F_NO_COMMON_LRU)) + #define XLAT_STR_1 STRINGIFY(BPF_F_NO_COMMON_LRU) XLAT(BPF_F_NUMA_NODE), + #define XLAT_VAL_2 ((unsigned) (BPF_F_NUMA_NODE)) + #define XLAT_STR_2 STRINGIFY(BPF_F_NUMA_NODE) XLAT(BPF_F_RDONLY), + #define XLAT_VAL_3 ((unsigned) (BPF_F_RDONLY)) + #define XLAT_STR_3 STRINGIFY(BPF_F_RDONLY) XLAT(BPF_F_WRONLY), + #define XLAT_VAL_4 ((unsigned) (BPF_F_WRONLY)) + #define XLAT_STR_4 STRINGIFY(BPF_F_WRONLY) XLAT(BPF_F_STACK_BUILD_ID), + #define XLAT_VAL_5 ((unsigned) (BPF_F_STACK_BUILD_ID)) + #define XLAT_STR_5 STRINGIFY(BPF_F_STACK_BUILD_ID) XLAT(BPF_F_ZERO_SEED), - XLAT_END + #define XLAT_VAL_6 ((unsigned) (BPF_F_ZERO_SEED)) + #define XLAT_STR_6 STRINGIFY(BPF_F_ZERO_SEED) + XLAT(BPF_F_RDONLY_PROG), + #define XLAT_VAL_7 ((unsigned) (BPF_F_RDONLY_PROG)) + #define XLAT_STR_7 STRINGIFY(BPF_F_RDONLY_PROG) + XLAT(BPF_F_WRONLY_PROG), + #define XLAT_VAL_8 ((unsigned) (BPF_F_WRONLY_PROG)) + #define XLAT_STR_8 STRINGIFY(BPF_F_WRONLY_PROG) + XLAT(BPF_F_CLONE), + #define XLAT_VAL_9 ((unsigned) (BPF_F_CLONE)) + #define XLAT_STR_9 STRINGIFY(BPF_F_CLONE) + XLAT(BPF_F_MMAPABLE), + #define XLAT_VAL_10 ((unsigned) (BPF_F_MMAPABLE)) + #define XLAT_STR_10 STRINGIFY(BPF_F_MMAPABLE) }; +static +const struct xlat bpf_map_flags[1] = { { + .data = bpf_map_flags_xdata, + .size = ARRAY_SIZE(bpf_map_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bpf_map_flags.in b/xlat/bpf_map_flags.in index a2790db6..f0484ab8 100644 --- a/xlat/bpf_map_flags.in +++ b/xlat/bpf_map_flags.in @@ -5,3 +5,7 @@ BPF_F_RDONLY (1U << 3) BPF_F_WRONLY (1U << 4) BPF_F_STACK_BUILD_ID (1U << 5) BPF_F_ZERO_SEED (1U << 6) +BPF_F_RDONLY_PROG (1U << 7) +BPF_F_WRONLY_PROG (1U << 8) +BPF_F_CLONE (1U << 9) +BPF_F_MMAPABLE (1U << 10) diff --git a/xlat/bpf_map_lookup_elem_flags.h b/xlat/bpf_map_lookup_elem_flags.h new file mode 100644 index 00000000..5e817343 --- /dev/null +++ b/xlat/bpf_map_lookup_elem_flags.h @@ -0,0 +1,66 @@ +/* Generated by ./xlat/gen.sh from ./xlat/bpf_map_lookup_elem_flags.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined(BPF_ANY) || (defined(HAVE_DECL_BPF_ANY) && HAVE_DECL_BPF_ANY) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_ANY) == (0), "BPF_ANY != 0"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_ANY 0 +#endif +#if defined(BPF_F_LOCK) || (defined(HAVE_DECL_BPF_F_LOCK) && HAVE_DECL_BPF_F_LOCK) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_F_LOCK) == (4), "BPF_F_LOCK != 4"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_F_LOCK 4 +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat bpf_map_lookup_elem_flags in mpers mode + +# else + +static const struct xlat_data bpf_map_lookup_elem_flags_xdata[] = { + XLAT(BPF_ANY), + #define XLAT_VAL_0 ((unsigned) (BPF_ANY)) + #define XLAT_STR_0 STRINGIFY(BPF_ANY) + XLAT(BPF_F_LOCK), + #define XLAT_VAL_1 ((unsigned) (BPF_F_LOCK)) + #define XLAT_STR_1 STRINGIFY(BPF_F_LOCK) +}; +static +const struct xlat bpf_map_lookup_elem_flags[1] = { { + .data = bpf_map_lookup_elem_flags_xdata, + .size = ARRAY_SIZE(bpf_map_lookup_elem_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bpf_map_lookup_elem_flags.in b/xlat/bpf_map_lookup_elem_flags.in new file mode 100644 index 00000000..68c936b7 --- /dev/null +++ b/xlat/bpf_map_lookup_elem_flags.in @@ -0,0 +1,2 @@ +BPF_ANY 0 +BPF_F_LOCK 4 diff --git a/xlat/bpf_map_types.h b/xlat/bpf_map_types.h index a6b4a3b3..0c88fa98 100644 --- a/xlat/bpf_map_types.h +++ b/xlat/bpf_map_types.h @@ -171,6 +171,34 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define BPF_MAP_TYPE_STACK 23 #endif +#if defined(BPF_MAP_TYPE_SK_STORAGE) || (defined(HAVE_DECL_BPF_MAP_TYPE_SK_STORAGE) && HAVE_DECL_BPF_MAP_TYPE_SK_STORAGE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_MAP_TYPE_SK_STORAGE) == (24), "BPF_MAP_TYPE_SK_STORAGE != 24"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_MAP_TYPE_SK_STORAGE 24 +#endif +#if defined(BPF_MAP_TYPE_DEVMAP_HASH) || (defined(HAVE_DECL_BPF_MAP_TYPE_DEVMAP_HASH) && HAVE_DECL_BPF_MAP_TYPE_DEVMAP_HASH) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_MAP_TYPE_DEVMAP_HASH) == (25), "BPF_MAP_TYPE_DEVMAP_HASH != 25"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_MAP_TYPE_DEVMAP_HASH 25 +#endif +#if defined(BPF_MAP_TYPE_STRUCT_OPS) || (defined(HAVE_DECL_BPF_MAP_TYPE_STRUCT_OPS) && HAVE_DECL_BPF_MAP_TYPE_STRUCT_OPS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_MAP_TYPE_STRUCT_OPS) == (26), "BPF_MAP_TYPE_STRUCT_OPS != 26"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_MAP_TYPE_STRUCT_OPS 26 +#endif +#if defined(BPF_MAP_TYPE_RINGBUF) || (defined(HAVE_DECL_BPF_MAP_TYPE_RINGBUF) && HAVE_DECL_BPF_MAP_TYPE_RINGBUF) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_MAP_TYPE_RINGBUF) == (27), "BPF_MAP_TYPE_RINGBUF != 27"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_MAP_TYPE_RINGBUF 27 +#endif #ifndef XLAT_MACROS_ONLY @@ -180,35 +208,327 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat bpf_map_types[] = { +static const struct xlat_data bpf_map_types_xdata[] = { [BPF_MAP_TYPE_UNSPEC] = XLAT(BPF_MAP_TYPE_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (BPF_MAP_TYPE_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(BPF_MAP_TYPE_UNSPEC) [BPF_MAP_TYPE_HASH] = XLAT(BPF_MAP_TYPE_HASH), + #define XLAT_VAL_1 ((unsigned) (BPF_MAP_TYPE_HASH)) + #define XLAT_STR_1 STRINGIFY(BPF_MAP_TYPE_HASH) [BPF_MAP_TYPE_ARRAY] = XLAT(BPF_MAP_TYPE_ARRAY), + #define XLAT_VAL_2 ((unsigned) (BPF_MAP_TYPE_ARRAY)) + #define XLAT_STR_2 STRINGIFY(BPF_MAP_TYPE_ARRAY) [BPF_MAP_TYPE_PROG_ARRAY] = XLAT(BPF_MAP_TYPE_PROG_ARRAY), + #define XLAT_VAL_3 ((unsigned) (BPF_MAP_TYPE_PROG_ARRAY)) + #define XLAT_STR_3 STRINGIFY(BPF_MAP_TYPE_PROG_ARRAY) [BPF_MAP_TYPE_PERF_EVENT_ARRAY] = XLAT(BPF_MAP_TYPE_PERF_EVENT_ARRAY), + #define XLAT_VAL_4 ((unsigned) (BPF_MAP_TYPE_PERF_EVENT_ARRAY)) + #define XLAT_STR_4 STRINGIFY(BPF_MAP_TYPE_PERF_EVENT_ARRAY) [BPF_MAP_TYPE_PERCPU_HASH] = XLAT(BPF_MAP_TYPE_PERCPU_HASH), + #define XLAT_VAL_5 ((unsigned) (BPF_MAP_TYPE_PERCPU_HASH)) + #define XLAT_STR_5 STRINGIFY(BPF_MAP_TYPE_PERCPU_HASH) [BPF_MAP_TYPE_PERCPU_ARRAY] = XLAT(BPF_MAP_TYPE_PERCPU_ARRAY), + #define XLAT_VAL_6 ((unsigned) (BPF_MAP_TYPE_PERCPU_ARRAY)) + #define XLAT_STR_6 STRINGIFY(BPF_MAP_TYPE_PERCPU_ARRAY) [BPF_MAP_TYPE_STACK_TRACE] = XLAT(BPF_MAP_TYPE_STACK_TRACE), + #define XLAT_VAL_7 ((unsigned) (BPF_MAP_TYPE_STACK_TRACE)) + #define XLAT_STR_7 STRINGIFY(BPF_MAP_TYPE_STACK_TRACE) [BPF_MAP_TYPE_CGROUP_ARRAY] = XLAT(BPF_MAP_TYPE_CGROUP_ARRAY), + #define XLAT_VAL_8 ((unsigned) (BPF_MAP_TYPE_CGROUP_ARRAY)) + #define XLAT_STR_8 STRINGIFY(BPF_MAP_TYPE_CGROUP_ARRAY) [BPF_MAP_TYPE_LRU_HASH] = XLAT(BPF_MAP_TYPE_LRU_HASH), + #define XLAT_VAL_9 ((unsigned) (BPF_MAP_TYPE_LRU_HASH)) + #define XLAT_STR_9 STRINGIFY(BPF_MAP_TYPE_LRU_HASH) [BPF_MAP_TYPE_LRU_PERCPU_HASH] = XLAT(BPF_MAP_TYPE_LRU_PERCPU_HASH), + #define XLAT_VAL_10 ((unsigned) (BPF_MAP_TYPE_LRU_PERCPU_HASH)) + #define XLAT_STR_10 STRINGIFY(BPF_MAP_TYPE_LRU_PERCPU_HASH) [BPF_MAP_TYPE_LPM_TRIE] = XLAT(BPF_MAP_TYPE_LPM_TRIE), + #define XLAT_VAL_11 ((unsigned) (BPF_MAP_TYPE_LPM_TRIE)) + #define XLAT_STR_11 STRINGIFY(BPF_MAP_TYPE_LPM_TRIE) [BPF_MAP_TYPE_ARRAY_OF_MAPS] = XLAT(BPF_MAP_TYPE_ARRAY_OF_MAPS), + #define XLAT_VAL_12 ((unsigned) (BPF_MAP_TYPE_ARRAY_OF_MAPS)) + #define XLAT_STR_12 STRINGIFY(BPF_MAP_TYPE_ARRAY_OF_MAPS) [BPF_MAP_TYPE_HASH_OF_MAPS] = XLAT(BPF_MAP_TYPE_HASH_OF_MAPS), + #define XLAT_VAL_13 ((unsigned) (BPF_MAP_TYPE_HASH_OF_MAPS)) + #define XLAT_STR_13 STRINGIFY(BPF_MAP_TYPE_HASH_OF_MAPS) [BPF_MAP_TYPE_DEVMAP] = XLAT(BPF_MAP_TYPE_DEVMAP), + #define XLAT_VAL_14 ((unsigned) (BPF_MAP_TYPE_DEVMAP)) + #define XLAT_STR_14 STRINGIFY(BPF_MAP_TYPE_DEVMAP) [BPF_MAP_TYPE_SOCKMAP] = XLAT(BPF_MAP_TYPE_SOCKMAP), + #define XLAT_VAL_15 ((unsigned) (BPF_MAP_TYPE_SOCKMAP)) + #define XLAT_STR_15 STRINGIFY(BPF_MAP_TYPE_SOCKMAP) [BPF_MAP_TYPE_CPUMAP] = XLAT(BPF_MAP_TYPE_CPUMAP), + #define XLAT_VAL_16 ((unsigned) (BPF_MAP_TYPE_CPUMAP)) + #define XLAT_STR_16 STRINGIFY(BPF_MAP_TYPE_CPUMAP) [BPF_MAP_TYPE_XSKMAP] = XLAT(BPF_MAP_TYPE_XSKMAP), + #define XLAT_VAL_17 ((unsigned) (BPF_MAP_TYPE_XSKMAP)) + #define XLAT_STR_17 STRINGIFY(BPF_MAP_TYPE_XSKMAP) [BPF_MAP_TYPE_SOCKHASH] = XLAT(BPF_MAP_TYPE_SOCKHASH), + #define XLAT_VAL_18 ((unsigned) (BPF_MAP_TYPE_SOCKHASH)) + #define XLAT_STR_18 STRINGIFY(BPF_MAP_TYPE_SOCKHASH) [BPF_MAP_TYPE_CGROUP_STORAGE] = XLAT(BPF_MAP_TYPE_CGROUP_STORAGE), + #define XLAT_VAL_19 ((unsigned) (BPF_MAP_TYPE_CGROUP_STORAGE)) + #define XLAT_STR_19 STRINGIFY(BPF_MAP_TYPE_CGROUP_STORAGE) [BPF_MAP_TYPE_REUSEPORT_SOCKARRAY] = XLAT(BPF_MAP_TYPE_REUSEPORT_SOCKARRAY), + #define XLAT_VAL_20 ((unsigned) (BPF_MAP_TYPE_REUSEPORT_SOCKARRAY)) + #define XLAT_STR_20 STRINGIFY(BPF_MAP_TYPE_REUSEPORT_SOCKARRAY) [BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE] = XLAT(BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE), + #define XLAT_VAL_21 ((unsigned) (BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE)) + #define XLAT_STR_21 STRINGIFY(BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE) [BPF_MAP_TYPE_QUEUE] = XLAT(BPF_MAP_TYPE_QUEUE), + #define XLAT_VAL_22 ((unsigned) (BPF_MAP_TYPE_QUEUE)) + #define XLAT_STR_22 STRINGIFY(BPF_MAP_TYPE_QUEUE) [BPF_MAP_TYPE_STACK] = XLAT(BPF_MAP_TYPE_STACK), - XLAT_END + #define XLAT_VAL_23 ((unsigned) (BPF_MAP_TYPE_STACK)) + #define XLAT_STR_23 STRINGIFY(BPF_MAP_TYPE_STACK) + [BPF_MAP_TYPE_SK_STORAGE] = XLAT(BPF_MAP_TYPE_SK_STORAGE), + #define XLAT_VAL_24 ((unsigned) (BPF_MAP_TYPE_SK_STORAGE)) + #define XLAT_STR_24 STRINGIFY(BPF_MAP_TYPE_SK_STORAGE) + [BPF_MAP_TYPE_DEVMAP_HASH] = XLAT(BPF_MAP_TYPE_DEVMAP_HASH), + #define XLAT_VAL_25 ((unsigned) (BPF_MAP_TYPE_DEVMAP_HASH)) + #define XLAT_STR_25 STRINGIFY(BPF_MAP_TYPE_DEVMAP_HASH) + [BPF_MAP_TYPE_STRUCT_OPS] = XLAT(BPF_MAP_TYPE_STRUCT_OPS), + #define XLAT_VAL_26 ((unsigned) (BPF_MAP_TYPE_STRUCT_OPS)) + #define XLAT_STR_26 STRINGIFY(BPF_MAP_TYPE_STRUCT_OPS) + [BPF_MAP_TYPE_RINGBUF] = XLAT(BPF_MAP_TYPE_RINGBUF), + #define XLAT_VAL_27 ((unsigned) (BPF_MAP_TYPE_RINGBUF)) + #define XLAT_STR_27 STRINGIFY(BPF_MAP_TYPE_RINGBUF) }; +static +const struct xlat bpf_map_types[1] = { { + .data = bpf_map_types_xdata, + .size = ARRAY_SIZE(bpf_map_types_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bpf_map_types.in b/xlat/bpf_map_types.in index 8a67d3ed..79cf639e 100644 --- a/xlat/bpf_map_types.in +++ b/xlat/bpf_map_types.in @@ -23,3 +23,7 @@ BPF_MAP_TYPE_REUSEPORT_SOCKARRAY 20 BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE 21 BPF_MAP_TYPE_QUEUE 22 BPF_MAP_TYPE_STACK 23 +BPF_MAP_TYPE_SK_STORAGE 24 +BPF_MAP_TYPE_DEVMAP_HASH 25 +BPF_MAP_TYPE_STRUCT_OPS 26 +BPF_MAP_TYPE_RINGBUF 27 diff --git a/xlat/bpf_map_update_elem_flags.h b/xlat/bpf_map_update_elem_flags.h index 9d60ac40..0ca8036e 100644 --- a/xlat/bpf_map_update_elem_flags.h +++ b/xlat/bpf_map_update_elem_flags.h @@ -40,15 +40,63 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat bpf_map_update_elem_flags[] = { +static const struct xlat_data bpf_map_update_elem_flags_xdata[] = { [BPF_ANY] = XLAT(BPF_ANY), + #define XLAT_VAL_0 ((unsigned) (BPF_ANY)) + #define XLAT_STR_0 STRINGIFY(BPF_ANY) [BPF_NOEXIST] = XLAT(BPF_NOEXIST), + #define XLAT_VAL_1 ((unsigned) (BPF_NOEXIST)) + #define XLAT_STR_1 STRINGIFY(BPF_NOEXIST) [BPF_EXIST] = XLAT(BPF_EXIST), + #define XLAT_VAL_2 ((unsigned) (BPF_EXIST)) + #define XLAT_STR_2 STRINGIFY(BPF_EXIST) [BPF_F_LOCK] = XLAT(BPF_F_LOCK), - XLAT_END + #define XLAT_VAL_3 ((unsigned) (BPF_F_LOCK)) + #define XLAT_STR_3 STRINGIFY(BPF_F_LOCK) }; +static +const struct xlat bpf_map_update_elem_flags[1] = { { + .data = bpf_map_update_elem_flags_xdata, + .size = ARRAY_SIZE(bpf_map_update_elem_flags_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bpf_miscop.h b/xlat/bpf_miscop.h index 3a930e65..34421dc4 100644 --- a/xlat/bpf_miscop.h +++ b/xlat/bpf_miscop.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat bpf_miscop[] = { +static const struct xlat_data bpf_miscop_xdata[] = { XLAT(BPF_TAX), + #define XLAT_VAL_0 ((unsigned) (BPF_TAX)) + #define XLAT_STR_0 STRINGIFY(BPF_TAX) XLAT(BPF_TXA), - XLAT_END + #define XLAT_VAL_1 ((unsigned) (BPF_TXA)) + #define XLAT_STR_1 STRINGIFY(BPF_TXA) }; +static +const struct xlat bpf_miscop[1] = { { + .data = bpf_miscop_xdata, + .size = ARRAY_SIZE(bpf_miscop_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bpf_mode.h b/xlat/bpf_mode.h index 5cb73d6b..3a331617 100644 --- a/xlat/bpf_mode.h +++ b/xlat/bpf_mode.h @@ -61,18 +61,96 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat bpf_mode[] = { +static const struct xlat_data bpf_mode_xdata[] = { XLAT(BPF_IMM), + #define XLAT_VAL_0 ((unsigned) (BPF_IMM)) + #define XLAT_STR_0 STRINGIFY(BPF_IMM) XLAT(BPF_ABS), + #define XLAT_VAL_1 ((unsigned) (BPF_ABS)) + #define XLAT_STR_1 STRINGIFY(BPF_ABS) XLAT(BPF_IND), + #define XLAT_VAL_2 ((unsigned) (BPF_IND)) + #define XLAT_STR_2 STRINGIFY(BPF_IND) XLAT(BPF_MEM), + #define XLAT_VAL_3 ((unsigned) (BPF_MEM)) + #define XLAT_STR_3 STRINGIFY(BPF_MEM) XLAT(BPF_LEN), + #define XLAT_VAL_4 ((unsigned) (BPF_LEN)) + #define XLAT_STR_4 STRINGIFY(BPF_LEN) XLAT(BPF_MSH), + #define XLAT_VAL_5 ((unsigned) (BPF_MSH)) + #define XLAT_STR_5 STRINGIFY(BPF_MSH) XLAT(BPF_XADD), - XLAT_END + #define XLAT_VAL_6 ((unsigned) (BPF_XADD)) + #define XLAT_STR_6 STRINGIFY(BPF_XADD) }; +static +const struct xlat bpf_mode[1] = { { + .data = bpf_mode_xdata, + .size = ARRAY_SIZE(bpf_mode_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bpf_op_alu.h b/xlat/bpf_op_alu.h index 96be4230..ca8c7290 100644 --- a/xlat/bpf_op_alu.h +++ b/xlat/bpf_op_alu.h @@ -110,25 +110,173 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat bpf_op_alu[] = { +static const struct xlat_data bpf_op_alu_xdata[] = { XLAT(BPF_ADD), + #define XLAT_VAL_0 ((unsigned) (BPF_ADD)) + #define XLAT_STR_0 STRINGIFY(BPF_ADD) XLAT(BPF_SUB), + #define XLAT_VAL_1 ((unsigned) (BPF_SUB)) + #define XLAT_STR_1 STRINGIFY(BPF_SUB) XLAT(BPF_MUL), + #define XLAT_VAL_2 ((unsigned) (BPF_MUL)) + #define XLAT_STR_2 STRINGIFY(BPF_MUL) XLAT(BPF_DIV), + #define XLAT_VAL_3 ((unsigned) (BPF_DIV)) + #define XLAT_STR_3 STRINGIFY(BPF_DIV) XLAT(BPF_OR), + #define XLAT_VAL_4 ((unsigned) (BPF_OR)) + #define XLAT_STR_4 STRINGIFY(BPF_OR) XLAT(BPF_AND), + #define XLAT_VAL_5 ((unsigned) (BPF_AND)) + #define XLAT_STR_5 STRINGIFY(BPF_AND) XLAT(BPF_LSH), + #define XLAT_VAL_6 ((unsigned) (BPF_LSH)) + #define XLAT_STR_6 STRINGIFY(BPF_LSH) XLAT(BPF_RSH), + #define XLAT_VAL_7 ((unsigned) (BPF_RSH)) + #define XLAT_STR_7 STRINGIFY(BPF_RSH) XLAT(BPF_NEG), + #define XLAT_VAL_8 ((unsigned) (BPF_NEG)) + #define XLAT_STR_8 STRINGIFY(BPF_NEG) XLAT(BPF_MOD), + #define XLAT_VAL_9 ((unsigned) (BPF_MOD)) + #define XLAT_STR_9 STRINGIFY(BPF_MOD) XLAT(BPF_XOR), + #define XLAT_VAL_10 ((unsigned) (BPF_XOR)) + #define XLAT_STR_10 STRINGIFY(BPF_XOR) XLAT(BPF_MOV), + #define XLAT_VAL_11 ((unsigned) (BPF_MOV)) + #define XLAT_STR_11 STRINGIFY(BPF_MOV) XLAT(BPF_ARSH), + #define XLAT_VAL_12 ((unsigned) (BPF_ARSH)) + #define XLAT_STR_12 STRINGIFY(BPF_ARSH) XLAT(BPF_END), - XLAT_END + #define XLAT_VAL_13 ((unsigned) (BPF_END)) + #define XLAT_STR_13 STRINGIFY(BPF_END) }; +static +const struct xlat bpf_op_alu[1] = { { + .data = bpf_op_alu_xdata, + .size = ARRAY_SIZE(bpf_op_alu_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bpf_op_jmp.h b/xlat/bpf_op_jmp.h index 56d1a42b..2c9ac030 100644 --- a/xlat/bpf_op_jmp.h +++ b/xlat/bpf_op_jmp.h @@ -110,25 +110,173 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat bpf_op_jmp[] = { +static const struct xlat_data bpf_op_jmp_xdata[] = { XLAT(BPF_JA), + #define XLAT_VAL_0 ((unsigned) (BPF_JA)) + #define XLAT_STR_0 STRINGIFY(BPF_JA) XLAT(BPF_JEQ), + #define XLAT_VAL_1 ((unsigned) (BPF_JEQ)) + #define XLAT_STR_1 STRINGIFY(BPF_JEQ) XLAT(BPF_JGT), + #define XLAT_VAL_2 ((unsigned) (BPF_JGT)) + #define XLAT_STR_2 STRINGIFY(BPF_JGT) XLAT(BPF_JGE), + #define XLAT_VAL_3 ((unsigned) (BPF_JGE)) + #define XLAT_STR_3 STRINGIFY(BPF_JGE) XLAT(BPF_JSET), + #define XLAT_VAL_4 ((unsigned) (BPF_JSET)) + #define XLAT_STR_4 STRINGIFY(BPF_JSET) XLAT(BPF_JNE), + #define XLAT_VAL_5 ((unsigned) (BPF_JNE)) + #define XLAT_STR_5 STRINGIFY(BPF_JNE) XLAT(BPF_JSGT), + #define XLAT_VAL_6 ((unsigned) (BPF_JSGT)) + #define XLAT_STR_6 STRINGIFY(BPF_JSGT) XLAT(BPF_JSGE), + #define XLAT_VAL_7 ((unsigned) (BPF_JSGE)) + #define XLAT_STR_7 STRINGIFY(BPF_JSGE) XLAT(BPF_CALL), + #define XLAT_VAL_8 ((unsigned) (BPF_CALL)) + #define XLAT_STR_8 STRINGIFY(BPF_CALL) XLAT(BPF_EXIT), + #define XLAT_VAL_9 ((unsigned) (BPF_EXIT)) + #define XLAT_STR_9 STRINGIFY(BPF_EXIT) XLAT(BPF_JLT), + #define XLAT_VAL_10 ((unsigned) (BPF_JLT)) + #define XLAT_STR_10 STRINGIFY(BPF_JLT) XLAT(BPF_JLE), + #define XLAT_VAL_11 ((unsigned) (BPF_JLE)) + #define XLAT_STR_11 STRINGIFY(BPF_JLE) XLAT(BPF_JSLT), + #define XLAT_VAL_12 ((unsigned) (BPF_JSLT)) + #define XLAT_STR_12 STRINGIFY(BPF_JSLT) XLAT(BPF_JSLE), - XLAT_END + #define XLAT_VAL_13 ((unsigned) (BPF_JSLE)) + #define XLAT_STR_13 STRINGIFY(BPF_JSLE) }; +static +const struct xlat bpf_op_jmp[1] = { { + .data = bpf_op_jmp_xdata, + .size = ARRAY_SIZE(bpf_op_jmp_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bpf_prog_flags.h b/xlat/bpf_prog_flags.h index e33d0b63..eed59c88 100644 --- a/xlat/bpf_prog_flags.h +++ b/xlat/bpf_prog_flags.h @@ -17,6 +17,20 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define BPF_F_ANY_ALIGNMENT (1U << 1) #endif +#if defined(BPF_F_TEST_RND_HI32) || (defined(HAVE_DECL_BPF_F_TEST_RND_HI32) && HAVE_DECL_BPF_F_TEST_RND_HI32) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_F_TEST_RND_HI32) == ((1U << 2)), "BPF_F_TEST_RND_HI32 != (1U << 2)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_F_TEST_RND_HI32 (1U << 2) +#endif +#if defined(BPF_F_TEST_STATE_FREQ) || (defined(HAVE_DECL_BPF_F_TEST_STATE_FREQ) && HAVE_DECL_BPF_F_TEST_STATE_FREQ) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_F_TEST_STATE_FREQ) == ((1U << 3)), "BPF_F_TEST_STATE_FREQ != (1U << 3)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_F_TEST_STATE_FREQ (1U << 3) +#endif #ifndef XLAT_MACROS_ONLY @@ -26,13 +40,63 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat bpf_prog_flags[] = { +static const struct xlat_data bpf_prog_flags_xdata[] = { XLAT(BPF_F_STRICT_ALIGNMENT), + #define XLAT_VAL_0 ((unsigned) (BPF_F_STRICT_ALIGNMENT)) + #define XLAT_STR_0 STRINGIFY(BPF_F_STRICT_ALIGNMENT) XLAT(BPF_F_ANY_ALIGNMENT), - XLAT_END + #define XLAT_VAL_1 ((unsigned) (BPF_F_ANY_ALIGNMENT)) + #define XLAT_STR_1 STRINGIFY(BPF_F_ANY_ALIGNMENT) + XLAT(BPF_F_TEST_RND_HI32), + #define XLAT_VAL_2 ((unsigned) (BPF_F_TEST_RND_HI32)) + #define XLAT_STR_2 STRINGIFY(BPF_F_TEST_RND_HI32) + XLAT(BPF_F_TEST_STATE_FREQ), + #define XLAT_VAL_3 ((unsigned) (BPF_F_TEST_STATE_FREQ)) + #define XLAT_STR_3 STRINGIFY(BPF_F_TEST_STATE_FREQ) }; +static +const struct xlat bpf_prog_flags[1] = { { + .data = bpf_prog_flags_xdata, + .size = ARRAY_SIZE(bpf_prog_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bpf_prog_flags.in b/xlat/bpf_prog_flags.in index e9eb42aa..74c28972 100644 --- a/xlat/bpf_prog_flags.in +++ b/xlat/bpf_prog_flags.in @@ -1,2 +1,4 @@ BPF_F_STRICT_ALIGNMENT 1U BPF_F_ANY_ALIGNMENT (1U << 1) +BPF_F_TEST_RND_HI32 (1U << 2) +BPF_F_TEST_STATE_FREQ (1U << 3) diff --git a/xlat/bpf_prog_types.h b/xlat/bpf_prog_types.h index 14bd253d..dea97dbc 100644 --- a/xlat/bpf_prog_types.h +++ b/xlat/bpf_prog_types.h @@ -129,33 +129,96 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define BPF_PROG_TYPE_RAW_TRACEPOINT 17 #endif +#if defined(BPF_PROG_TYPE_CGROUP_SOCK_ADDR) || (defined(HAVE_DECL_BPF_PROG_TYPE_CGROUP_SOCK_ADDR) && HAVE_DECL_BPF_PROG_TYPE_CGROUP_SOCK_ADDR) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_PROG_TYPE_CGROUP_SOCK_ADDR) == (18), "BPF_PROG_TYPE_CGROUP_SOCK_ADDR != 18"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_PROG_TYPE_CGROUP_SOCK_ADDR 18 +#endif #if defined(BPF_PROG_TYPE_LWT_SEG6LOCAL) || (defined(HAVE_DECL_BPF_PROG_TYPE_LWT_SEG6LOCAL) && HAVE_DECL_BPF_PROG_TYPE_LWT_SEG6LOCAL) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((BPF_PROG_TYPE_LWT_SEG6LOCAL) == (18), "BPF_PROG_TYPE_LWT_SEG6LOCAL != 18"); +static_assert((BPF_PROG_TYPE_LWT_SEG6LOCAL) == (19), "BPF_PROG_TYPE_LWT_SEG6LOCAL != 19"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define BPF_PROG_TYPE_LWT_SEG6LOCAL 18 +# define BPF_PROG_TYPE_LWT_SEG6LOCAL 19 #endif #if defined(BPF_PROG_TYPE_LIRC_MODE2) || (defined(HAVE_DECL_BPF_PROG_TYPE_LIRC_MODE2) && HAVE_DECL_BPF_PROG_TYPE_LIRC_MODE2) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((BPF_PROG_TYPE_LIRC_MODE2) == (19), "BPF_PROG_TYPE_LIRC_MODE2 != 19"); +static_assert((BPF_PROG_TYPE_LIRC_MODE2) == (20), "BPF_PROG_TYPE_LIRC_MODE2 != 20"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define BPF_PROG_TYPE_LIRC_MODE2 19 +# define BPF_PROG_TYPE_LIRC_MODE2 20 #endif #if defined(BPF_PROG_TYPE_SK_REUSEPORT) || (defined(HAVE_DECL_BPF_PROG_TYPE_SK_REUSEPORT) && HAVE_DECL_BPF_PROG_TYPE_SK_REUSEPORT) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((BPF_PROG_TYPE_SK_REUSEPORT) == (20), "BPF_PROG_TYPE_SK_REUSEPORT != 20"); +static_assert((BPF_PROG_TYPE_SK_REUSEPORT) == (21), "BPF_PROG_TYPE_SK_REUSEPORT != 21"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define BPF_PROG_TYPE_SK_REUSEPORT 20 +# define BPF_PROG_TYPE_SK_REUSEPORT 21 #endif #if defined(BPF_PROG_TYPE_FLOW_DISSECTOR) || (defined(HAVE_DECL_BPF_PROG_TYPE_FLOW_DISSECTOR) && HAVE_DECL_BPF_PROG_TYPE_FLOW_DISSECTOR) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((BPF_PROG_TYPE_FLOW_DISSECTOR) == (21), "BPF_PROG_TYPE_FLOW_DISSECTOR != 21"); +static_assert((BPF_PROG_TYPE_FLOW_DISSECTOR) == (22), "BPF_PROG_TYPE_FLOW_DISSECTOR != 22"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_PROG_TYPE_FLOW_DISSECTOR 22 +#endif +#if defined(BPF_PROG_TYPE_CGROUP_SYSCTL) || (defined(HAVE_DECL_BPF_PROG_TYPE_CGROUP_SYSCTL) && HAVE_DECL_BPF_PROG_TYPE_CGROUP_SYSCTL) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_PROG_TYPE_CGROUP_SYSCTL) == (23), "BPF_PROG_TYPE_CGROUP_SYSCTL != 23"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_PROG_TYPE_CGROUP_SYSCTL 23 +#endif +#if defined(BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE) || (defined(HAVE_DECL_BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE) && HAVE_DECL_BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE) == (24), "BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE != 24"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE 24 +#endif +#if defined(BPF_PROG_TYPE_CGROUP_SOCKOPT) || (defined(HAVE_DECL_BPF_PROG_TYPE_CGROUP_SOCKOPT) && HAVE_DECL_BPF_PROG_TYPE_CGROUP_SOCKOPT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_PROG_TYPE_CGROUP_SOCKOPT) == (25), "BPF_PROG_TYPE_CGROUP_SOCKOPT != 25"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_PROG_TYPE_CGROUP_SOCKOPT 25 +#endif +#if defined(BPF_PROG_TYPE_TRACING) || (defined(HAVE_DECL_BPF_PROG_TYPE_TRACING) && HAVE_DECL_BPF_PROG_TYPE_TRACING) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_PROG_TYPE_TRACING) == (26), "BPF_PROG_TYPE_TRACING != 26"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_PROG_TYPE_TRACING 26 +#endif +#if defined(BPF_PROG_TYPE_STRUCT_OPS) || (defined(HAVE_DECL_BPF_PROG_TYPE_STRUCT_OPS) && HAVE_DECL_BPF_PROG_TYPE_STRUCT_OPS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_PROG_TYPE_STRUCT_OPS) == (27), "BPF_PROG_TYPE_STRUCT_OPS != 27"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define BPF_PROG_TYPE_FLOW_DISSECTOR 21 +# define BPF_PROG_TYPE_STRUCT_OPS 27 +#endif +#if defined(BPF_PROG_TYPE_EXT) || (defined(HAVE_DECL_BPF_PROG_TYPE_EXT) && HAVE_DECL_BPF_PROG_TYPE_EXT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_PROG_TYPE_EXT) == (28), "BPF_PROG_TYPE_EXT != 28"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_PROG_TYPE_EXT 28 +#endif +#if defined(BPF_PROG_TYPE_LSM) || (defined(HAVE_DECL_BPF_PROG_TYPE_LSM) && HAVE_DECL_BPF_PROG_TYPE_LSM) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_PROG_TYPE_LSM) == (29), "BPF_PROG_TYPE_LSM != 29"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_PROG_TYPE_LSM 29 +#endif +#if defined(BPF_PROG_TYPE_SK_LOOKUP) || (defined(HAVE_DECL_BPF_PROG_TYPE_SK_LOOKUP) && HAVE_DECL_BPF_PROG_TYPE_SK_LOOKUP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_PROG_TYPE_SK_LOOKUP) == (30), "BPF_PROG_TYPE_SK_LOOKUP != 30"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_PROG_TYPE_SK_LOOKUP 30 #endif #ifndef XLAT_MACROS_ONLY @@ -166,33 +229,360 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat bpf_prog_types[] = { +static const struct xlat_data bpf_prog_types_xdata[] = { [BPF_PROG_TYPE_UNSPEC] = XLAT(BPF_PROG_TYPE_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (BPF_PROG_TYPE_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(BPF_PROG_TYPE_UNSPEC) [BPF_PROG_TYPE_SOCKET_FILTER] = XLAT(BPF_PROG_TYPE_SOCKET_FILTER), + #define XLAT_VAL_1 ((unsigned) (BPF_PROG_TYPE_SOCKET_FILTER)) + #define XLAT_STR_1 STRINGIFY(BPF_PROG_TYPE_SOCKET_FILTER) [BPF_PROG_TYPE_KPROBE] = XLAT(BPF_PROG_TYPE_KPROBE), + #define XLAT_VAL_2 ((unsigned) (BPF_PROG_TYPE_KPROBE)) + #define XLAT_STR_2 STRINGIFY(BPF_PROG_TYPE_KPROBE) [BPF_PROG_TYPE_SCHED_CLS] = XLAT(BPF_PROG_TYPE_SCHED_CLS), + #define XLAT_VAL_3 ((unsigned) (BPF_PROG_TYPE_SCHED_CLS)) + #define XLAT_STR_3 STRINGIFY(BPF_PROG_TYPE_SCHED_CLS) [BPF_PROG_TYPE_SCHED_ACT] = XLAT(BPF_PROG_TYPE_SCHED_ACT), + #define XLAT_VAL_4 ((unsigned) (BPF_PROG_TYPE_SCHED_ACT)) + #define XLAT_STR_4 STRINGIFY(BPF_PROG_TYPE_SCHED_ACT) [BPF_PROG_TYPE_TRACEPOINT] = XLAT(BPF_PROG_TYPE_TRACEPOINT), + #define XLAT_VAL_5 ((unsigned) (BPF_PROG_TYPE_TRACEPOINT)) + #define XLAT_STR_5 STRINGIFY(BPF_PROG_TYPE_TRACEPOINT) [BPF_PROG_TYPE_XDP] = XLAT(BPF_PROG_TYPE_XDP), + #define XLAT_VAL_6 ((unsigned) (BPF_PROG_TYPE_XDP)) + #define XLAT_STR_6 STRINGIFY(BPF_PROG_TYPE_XDP) [BPF_PROG_TYPE_PERF_EVENT] = XLAT(BPF_PROG_TYPE_PERF_EVENT), + #define XLAT_VAL_7 ((unsigned) (BPF_PROG_TYPE_PERF_EVENT)) + #define XLAT_STR_7 STRINGIFY(BPF_PROG_TYPE_PERF_EVENT) [BPF_PROG_TYPE_CGROUP_SKB] = XLAT(BPF_PROG_TYPE_CGROUP_SKB), + #define XLAT_VAL_8 ((unsigned) (BPF_PROG_TYPE_CGROUP_SKB)) + #define XLAT_STR_8 STRINGIFY(BPF_PROG_TYPE_CGROUP_SKB) [BPF_PROG_TYPE_CGROUP_SOCK] = XLAT(BPF_PROG_TYPE_CGROUP_SOCK), + #define XLAT_VAL_9 ((unsigned) (BPF_PROG_TYPE_CGROUP_SOCK)) + #define XLAT_STR_9 STRINGIFY(BPF_PROG_TYPE_CGROUP_SOCK) [BPF_PROG_TYPE_LWT_IN] = XLAT(BPF_PROG_TYPE_LWT_IN), + #define XLAT_VAL_10 ((unsigned) (BPF_PROG_TYPE_LWT_IN)) + #define XLAT_STR_10 STRINGIFY(BPF_PROG_TYPE_LWT_IN) [BPF_PROG_TYPE_LWT_OUT] = XLAT(BPF_PROG_TYPE_LWT_OUT), + #define XLAT_VAL_11 ((unsigned) (BPF_PROG_TYPE_LWT_OUT)) + #define XLAT_STR_11 STRINGIFY(BPF_PROG_TYPE_LWT_OUT) [BPF_PROG_TYPE_LWT_XMIT] = XLAT(BPF_PROG_TYPE_LWT_XMIT), + #define XLAT_VAL_12 ((unsigned) (BPF_PROG_TYPE_LWT_XMIT)) + #define XLAT_STR_12 STRINGIFY(BPF_PROG_TYPE_LWT_XMIT) [BPF_PROG_TYPE_SOCK_OPS] = XLAT(BPF_PROG_TYPE_SOCK_OPS), + #define XLAT_VAL_13 ((unsigned) (BPF_PROG_TYPE_SOCK_OPS)) + #define XLAT_STR_13 STRINGIFY(BPF_PROG_TYPE_SOCK_OPS) [BPF_PROG_TYPE_SK_SKB] = XLAT(BPF_PROG_TYPE_SK_SKB), + #define XLAT_VAL_14 ((unsigned) (BPF_PROG_TYPE_SK_SKB)) + #define XLAT_STR_14 STRINGIFY(BPF_PROG_TYPE_SK_SKB) [BPF_PROG_TYPE_CGROUP_DEVICE] = XLAT(BPF_PROG_TYPE_CGROUP_DEVICE), + #define XLAT_VAL_15 ((unsigned) (BPF_PROG_TYPE_CGROUP_DEVICE)) + #define XLAT_STR_15 STRINGIFY(BPF_PROG_TYPE_CGROUP_DEVICE) [BPF_PROG_TYPE_SK_MSG] = XLAT(BPF_PROG_TYPE_SK_MSG), + #define XLAT_VAL_16 ((unsigned) (BPF_PROG_TYPE_SK_MSG)) + #define XLAT_STR_16 STRINGIFY(BPF_PROG_TYPE_SK_MSG) [BPF_PROG_TYPE_RAW_TRACEPOINT] = XLAT(BPF_PROG_TYPE_RAW_TRACEPOINT), + #define XLAT_VAL_17 ((unsigned) (BPF_PROG_TYPE_RAW_TRACEPOINT)) + #define XLAT_STR_17 STRINGIFY(BPF_PROG_TYPE_RAW_TRACEPOINT) + [BPF_PROG_TYPE_CGROUP_SOCK_ADDR] = XLAT(BPF_PROG_TYPE_CGROUP_SOCK_ADDR), + #define XLAT_VAL_18 ((unsigned) (BPF_PROG_TYPE_CGROUP_SOCK_ADDR)) + #define XLAT_STR_18 STRINGIFY(BPF_PROG_TYPE_CGROUP_SOCK_ADDR) [BPF_PROG_TYPE_LWT_SEG6LOCAL] = XLAT(BPF_PROG_TYPE_LWT_SEG6LOCAL), + #define XLAT_VAL_19 ((unsigned) (BPF_PROG_TYPE_LWT_SEG6LOCAL)) + #define XLAT_STR_19 STRINGIFY(BPF_PROG_TYPE_LWT_SEG6LOCAL) [BPF_PROG_TYPE_LIRC_MODE2] = XLAT(BPF_PROG_TYPE_LIRC_MODE2), + #define XLAT_VAL_20 ((unsigned) (BPF_PROG_TYPE_LIRC_MODE2)) + #define XLAT_STR_20 STRINGIFY(BPF_PROG_TYPE_LIRC_MODE2) [BPF_PROG_TYPE_SK_REUSEPORT] = XLAT(BPF_PROG_TYPE_SK_REUSEPORT), + #define XLAT_VAL_21 ((unsigned) (BPF_PROG_TYPE_SK_REUSEPORT)) + #define XLAT_STR_21 STRINGIFY(BPF_PROG_TYPE_SK_REUSEPORT) [BPF_PROG_TYPE_FLOW_DISSECTOR] = XLAT(BPF_PROG_TYPE_FLOW_DISSECTOR), - XLAT_END + #define XLAT_VAL_22 ((unsigned) (BPF_PROG_TYPE_FLOW_DISSECTOR)) + #define XLAT_STR_22 STRINGIFY(BPF_PROG_TYPE_FLOW_DISSECTOR) + [BPF_PROG_TYPE_CGROUP_SYSCTL] = XLAT(BPF_PROG_TYPE_CGROUP_SYSCTL), + #define XLAT_VAL_23 ((unsigned) (BPF_PROG_TYPE_CGROUP_SYSCTL)) + #define XLAT_STR_23 STRINGIFY(BPF_PROG_TYPE_CGROUP_SYSCTL) + [BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE] = XLAT(BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE), + #define XLAT_VAL_24 ((unsigned) (BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE)) + #define XLAT_STR_24 STRINGIFY(BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE) + [BPF_PROG_TYPE_CGROUP_SOCKOPT] = XLAT(BPF_PROG_TYPE_CGROUP_SOCKOPT), + #define XLAT_VAL_25 ((unsigned) (BPF_PROG_TYPE_CGROUP_SOCKOPT)) + #define XLAT_STR_25 STRINGIFY(BPF_PROG_TYPE_CGROUP_SOCKOPT) + [BPF_PROG_TYPE_TRACING] = XLAT(BPF_PROG_TYPE_TRACING), + #define XLAT_VAL_26 ((unsigned) (BPF_PROG_TYPE_TRACING)) + #define XLAT_STR_26 STRINGIFY(BPF_PROG_TYPE_TRACING) + [BPF_PROG_TYPE_STRUCT_OPS] = XLAT(BPF_PROG_TYPE_STRUCT_OPS), + #define XLAT_VAL_27 ((unsigned) (BPF_PROG_TYPE_STRUCT_OPS)) + #define XLAT_STR_27 STRINGIFY(BPF_PROG_TYPE_STRUCT_OPS) + [BPF_PROG_TYPE_EXT] = XLAT(BPF_PROG_TYPE_EXT), + #define XLAT_VAL_28 ((unsigned) (BPF_PROG_TYPE_EXT)) + #define XLAT_STR_28 STRINGIFY(BPF_PROG_TYPE_EXT) + [BPF_PROG_TYPE_LSM] = XLAT(BPF_PROG_TYPE_LSM), + #define XLAT_VAL_29 ((unsigned) (BPF_PROG_TYPE_LSM)) + #define XLAT_STR_29 STRINGIFY(BPF_PROG_TYPE_LSM) + [BPF_PROG_TYPE_SK_LOOKUP] = XLAT(BPF_PROG_TYPE_SK_LOOKUP), + #define XLAT_VAL_30 ((unsigned) (BPF_PROG_TYPE_SK_LOOKUP)) + #define XLAT_STR_30 STRINGIFY(BPF_PROG_TYPE_SK_LOOKUP) }; +static +const struct xlat bpf_prog_types[1] = { { + .data = bpf_prog_types_xdata, + .size = ARRAY_SIZE(bpf_prog_types_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bpf_prog_types.in b/xlat/bpf_prog_types.in index dd1b4079..2fcb1ef9 100644 --- a/xlat/bpf_prog_types.in +++ b/xlat/bpf_prog_types.in @@ -17,7 +17,16 @@ BPF_PROG_TYPE_SK_SKB 14 BPF_PROG_TYPE_CGROUP_DEVICE 15 BPF_PROG_TYPE_SK_MSG 16 BPF_PROG_TYPE_RAW_TRACEPOINT 17 -BPF_PROG_TYPE_LWT_SEG6LOCAL 18 -BPF_PROG_TYPE_LIRC_MODE2 19 -BPF_PROG_TYPE_SK_REUSEPORT 20 -BPF_PROG_TYPE_FLOW_DISSECTOR 21 +BPF_PROG_TYPE_CGROUP_SOCK_ADDR 18 +BPF_PROG_TYPE_LWT_SEG6LOCAL 19 +BPF_PROG_TYPE_LIRC_MODE2 20 +BPF_PROG_TYPE_SK_REUSEPORT 21 +BPF_PROG_TYPE_FLOW_DISSECTOR 22 +BPF_PROG_TYPE_CGROUP_SYSCTL 23 +BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE 24 +BPF_PROG_TYPE_CGROUP_SOCKOPT 25 +BPF_PROG_TYPE_TRACING 26 +BPF_PROG_TYPE_STRUCT_OPS 27 +BPF_PROG_TYPE_EXT 28 +BPF_PROG_TYPE_LSM 29 +BPF_PROG_TYPE_SK_LOOKUP 30 diff --git a/xlat/bpf_query_flags.h b/xlat/bpf_query_flags.h index 38f84b4d..0a11a364 100644 --- a/xlat/bpf_query_flags.h +++ b/xlat/bpf_query_flags.h @@ -19,12 +19,30 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat bpf_query_flags[] = { +static const struct xlat_data bpf_query_flags_xdata[] = { XLAT(BPF_F_QUERY_EFFECTIVE), - XLAT_END + #define XLAT_VAL_0 ((unsigned) (BPF_F_QUERY_EFFECTIVE)) + #define XLAT_STR_0 STRINGIFY(BPF_F_QUERY_EFFECTIVE) }; - +static +const struct xlat bpf_query_flags[1] = { { + .data = bpf_query_flags_xdata, + .size = ARRAY_SIZE(bpf_query_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bpf_rval.h b/xlat/bpf_rval.h index 85a11c1a..362c8e77 100644 --- a/xlat/bpf_rval.h +++ b/xlat/bpf_rval.h @@ -33,14 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat bpf_rval[] = { +static const struct xlat_data bpf_rval_xdata[] = { XLAT(BPF_K), + #define XLAT_VAL_0 ((unsigned) (BPF_K)) + #define XLAT_STR_0 STRINGIFY(BPF_K) XLAT(BPF_X), + #define XLAT_VAL_1 ((unsigned) (BPF_X)) + #define XLAT_STR_1 STRINGIFY(BPF_X) XLAT(BPF_A), - XLAT_END + #define XLAT_VAL_2 ((unsigned) (BPF_A)) + #define XLAT_STR_2 STRINGIFY(BPF_A) }; +static +const struct xlat bpf_rval[1] = { { + .data = bpf_rval_xdata, + .size = ARRAY_SIZE(bpf_rval_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bpf_size.h b/xlat/bpf_size.h index 51aa5399..da7df64d 100644 --- a/xlat/bpf_size.h +++ b/xlat/bpf_size.h @@ -40,15 +40,63 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat bpf_size[] = { +static const struct xlat_data bpf_size_xdata[] = { XLAT(BPF_W), + #define XLAT_VAL_0 ((unsigned) (BPF_W)) + #define XLAT_STR_0 STRINGIFY(BPF_W) XLAT(BPF_H), + #define XLAT_VAL_1 ((unsigned) (BPF_H)) + #define XLAT_STR_1 STRINGIFY(BPF_H) XLAT(BPF_B), + #define XLAT_VAL_2 ((unsigned) (BPF_B)) + #define XLAT_STR_2 STRINGIFY(BPF_B) XLAT(BPF_DW), - XLAT_END + #define XLAT_VAL_3 ((unsigned) (BPF_DW)) + #define XLAT_STR_3 STRINGIFY(BPF_DW) }; +static +const struct xlat bpf_size[1] = { { + .data = bpf_size_xdata, + .size = ARRAY_SIZE(bpf_size_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bpf_src.h b/xlat/bpf_src.h index eee32dda..9c141045 100644 --- a/xlat/bpf_src.h +++ b/xlat/bpf_src.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat bpf_src[] = { +static const struct xlat_data bpf_src_xdata[] = { XLAT(BPF_K), + #define XLAT_VAL_0 ((unsigned) (BPF_K)) + #define XLAT_STR_0 STRINGIFY(BPF_K) XLAT(BPF_X), - XLAT_END + #define XLAT_VAL_1 ((unsigned) (BPF_X)) + #define XLAT_STR_1 STRINGIFY(BPF_X) }; +static +const struct xlat bpf_src[1] = { { + .data = bpf_src_xdata, + .size = ARRAY_SIZE(bpf_src_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bpf_task_fd_type.h b/xlat/bpf_task_fd_type.h index c4d1993d..e0a22e75 100644 --- a/xlat/bpf_task_fd_type.h +++ b/xlat/bpf_task_fd_type.h @@ -54,17 +54,85 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat bpf_task_fd_type[] = { +static const struct xlat_data bpf_task_fd_type_xdata[] = { [BPF_FD_TYPE_RAW_TRACEPOINT] = XLAT(BPF_FD_TYPE_RAW_TRACEPOINT), + #define XLAT_VAL_0 ((unsigned) (BPF_FD_TYPE_RAW_TRACEPOINT)) + #define XLAT_STR_0 STRINGIFY(BPF_FD_TYPE_RAW_TRACEPOINT) [BPF_FD_TYPE_TRACEPOINT] = XLAT(BPF_FD_TYPE_TRACEPOINT), + #define XLAT_VAL_1 ((unsigned) (BPF_FD_TYPE_TRACEPOINT)) + #define XLAT_STR_1 STRINGIFY(BPF_FD_TYPE_TRACEPOINT) [BPF_FD_TYPE_KPROBE] = XLAT(BPF_FD_TYPE_KPROBE), + #define XLAT_VAL_2 ((unsigned) (BPF_FD_TYPE_KPROBE)) + #define XLAT_STR_2 STRINGIFY(BPF_FD_TYPE_KPROBE) [BPF_FD_TYPE_KRETPROBE] = XLAT(BPF_FD_TYPE_KRETPROBE), + #define XLAT_VAL_3 ((unsigned) (BPF_FD_TYPE_KRETPROBE)) + #define XLAT_STR_3 STRINGIFY(BPF_FD_TYPE_KRETPROBE) [BPF_FD_TYPE_UPROBE] = XLAT(BPF_FD_TYPE_UPROBE), + #define XLAT_VAL_4 ((unsigned) (BPF_FD_TYPE_UPROBE)) + #define XLAT_STR_4 STRINGIFY(BPF_FD_TYPE_UPROBE) [BPF_FD_TYPE_URETPROBE] = XLAT(BPF_FD_TYPE_URETPROBE), - XLAT_END + #define XLAT_VAL_5 ((unsigned) (BPF_FD_TYPE_URETPROBE)) + #define XLAT_STR_5 STRINGIFY(BPF_FD_TYPE_URETPROBE) }; +static +const struct xlat bpf_task_fd_type[1] = { { + .data = bpf_task_fd_type_xdata, + .size = ARRAY_SIZE(bpf_task_fd_type_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bsg_flags.h b/xlat/bsg_flags.h index fc0f083b..6d3ca6ca 100644 --- a/xlat/bsg_flags.h +++ b/xlat/bsg_flags.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat bsg_flags[] = { +static const struct xlat_data bsg_flags_xdata[] = { XLAT(BSG_FLAG_Q_AT_TAIL), + #define XLAT_VAL_0 ((unsigned) (BSG_FLAG_Q_AT_TAIL)) + #define XLAT_STR_0 STRINGIFY(BSG_FLAG_Q_AT_TAIL) XLAT(BSG_FLAG_Q_AT_HEAD), - XLAT_END + #define XLAT_VAL_1 ((unsigned) (BSG_FLAG_Q_AT_HEAD)) + #define XLAT_STR_1 STRINGIFY(BSG_FLAG_Q_AT_HEAD) }; +static +const struct xlat bsg_flags[1] = { { + .data = bsg_flags_xdata, + .size = ARRAY_SIZE(bsg_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bsg_protocol.h b/xlat/bsg_protocol.h index fba6c1e5..74c611b6 100644 --- a/xlat/bsg_protocol.h +++ b/xlat/bsg_protocol.h @@ -12,14 +12,32 @@ # else -static -const struct xlat bsg_protocol[] = { +static const struct xlat_data bsg_protocol_xdata[] = { #if defined(BSG_PROTOCOL_SCSI) || (defined(HAVE_DECL_BSG_PROTOCOL_SCSI) && HAVE_DECL_BSG_PROTOCOL_SCSI) XLAT(BSG_PROTOCOL_SCSI), + #define XLAT_VAL_0 ((unsigned) (BSG_PROTOCOL_SCSI)) + #define XLAT_STR_0 STRINGIFY(BSG_PROTOCOL_SCSI) #endif - XLAT_END }; - +static +const struct xlat bsg_protocol[1] = { { + .data = bsg_protocol_xdata, + .size = ARRAY_SIZE(bsg_protocol_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bsg_subprotocol.h b/xlat/bsg_subprotocol.h index 20752c44..4e343676 100644 --- a/xlat/bsg_subprotocol.h +++ b/xlat/bsg_subprotocol.h @@ -12,20 +12,58 @@ # else -static -const struct xlat bsg_subprotocol[] = { +static const struct xlat_data bsg_subprotocol_xdata[] = { #if defined(BSG_SUB_PROTOCOL_SCSI_CMD) || (defined(HAVE_DECL_BSG_SUB_PROTOCOL_SCSI_CMD) && HAVE_DECL_BSG_SUB_PROTOCOL_SCSI_CMD) XLAT(BSG_SUB_PROTOCOL_SCSI_CMD), + #define XLAT_VAL_0 ((unsigned) (BSG_SUB_PROTOCOL_SCSI_CMD)) + #define XLAT_STR_0 STRINGIFY(BSG_SUB_PROTOCOL_SCSI_CMD) #endif #if defined(BSG_SUB_PROTOCOL_SCSI_TMF) || (defined(HAVE_DECL_BSG_SUB_PROTOCOL_SCSI_TMF) && HAVE_DECL_BSG_SUB_PROTOCOL_SCSI_TMF) XLAT(BSG_SUB_PROTOCOL_SCSI_TMF), + #define XLAT_VAL_1 ((unsigned) (BSG_SUB_PROTOCOL_SCSI_TMF)) + #define XLAT_STR_1 STRINGIFY(BSG_SUB_PROTOCOL_SCSI_TMF) #endif #if defined(BSG_SUB_PROTOCOL_SCSI_TRANSPORT) || (defined(HAVE_DECL_BSG_SUB_PROTOCOL_SCSI_TRANSPORT) && HAVE_DECL_BSG_SUB_PROTOCOL_SCSI_TRANSPORT) XLAT(BSG_SUB_PROTOCOL_SCSI_TRANSPORT), + #define XLAT_VAL_2 ((unsigned) (BSG_SUB_PROTOCOL_SCSI_TRANSPORT)) + #define XLAT_STR_2 STRINGIFY(BSG_SUB_PROTOCOL_SCSI_TRANSPORT) #endif - XLAT_END }; +static +const struct xlat bsg_subprotocol[1] = { { + .data = bsg_subprotocol_xdata, + .size = ARRAY_SIZE(bsg_subprotocol_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/bt_protocols.h b/xlat/bt_protocols.h index bd2db019..82d304d5 100644 --- a/xlat/bt_protocols.h +++ b/xlat/bt_protocols.h @@ -68,19 +68,107 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat bt_protocols[] = { +static const struct xlat_data bt_protocols_xdata[] = { [BTPROTO_L2CAP] = XLAT(BTPROTO_L2CAP), + #define XLAT_VAL_0 ((unsigned) (BTPROTO_L2CAP)) + #define XLAT_STR_0 STRINGIFY(BTPROTO_L2CAP) [BTPROTO_HCI] = XLAT(BTPROTO_HCI), + #define XLAT_VAL_1 ((unsigned) (BTPROTO_HCI)) + #define XLAT_STR_1 STRINGIFY(BTPROTO_HCI) [BTPROTO_SCO] = XLAT(BTPROTO_SCO), + #define XLAT_VAL_2 ((unsigned) (BTPROTO_SCO)) + #define XLAT_STR_2 STRINGIFY(BTPROTO_SCO) [BTPROTO_RFCOMM] = XLAT(BTPROTO_RFCOMM), + #define XLAT_VAL_3 ((unsigned) (BTPROTO_RFCOMM)) + #define XLAT_STR_3 STRINGIFY(BTPROTO_RFCOMM) [BTPROTO_BNEP] = XLAT(BTPROTO_BNEP), + #define XLAT_VAL_4 ((unsigned) (BTPROTO_BNEP)) + #define XLAT_STR_4 STRINGIFY(BTPROTO_BNEP) [BTPROTO_CMTP] = XLAT(BTPROTO_CMTP), + #define XLAT_VAL_5 ((unsigned) (BTPROTO_CMTP)) + #define XLAT_STR_5 STRINGIFY(BTPROTO_CMTP) [BTPROTO_HIDP] = XLAT(BTPROTO_HIDP), + #define XLAT_VAL_6 ((unsigned) (BTPROTO_HIDP)) + #define XLAT_STR_6 STRINGIFY(BTPROTO_HIDP) [BTPROTO_AVDTP] = XLAT(BTPROTO_AVDTP), - XLAT_END + #define XLAT_VAL_7 ((unsigned) (BTPROTO_AVDTP)) + #define XLAT_STR_7 STRINGIFY(BTPROTO_AVDTP) }; +static +const struct xlat bt_protocols[1] = { { + .data = bt_protocols_xdata, + .size = ARRAY_SIZE(bt_protocols_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/btrfs_balance_args.h b/xlat/btrfs_balance_args.h index 11eced64..51bb4263 100644 --- a/xlat/btrfs_balance_args.h +++ b/xlat/btrfs_balance_args.h @@ -89,24 +89,142 @@ extern const struct xlat btrfs_balance_args[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat btrfs_balance_args[] = { +static const struct xlat_data btrfs_balance_args_xdata[] = { XLAT_TYPE(uint64_t, BTRFS_BALANCE_ARGS_PROFILES), + #define XLAT_VAL_0 ((uint64_t) (BTRFS_BALANCE_ARGS_PROFILES)) + #define XLAT_STR_0 STRINGIFY(BTRFS_BALANCE_ARGS_PROFILES) XLAT_TYPE(uint64_t, BTRFS_BALANCE_ARGS_USAGE), + #define XLAT_VAL_1 ((uint64_t) (BTRFS_BALANCE_ARGS_USAGE)) + #define XLAT_STR_1 STRINGIFY(BTRFS_BALANCE_ARGS_USAGE) XLAT_TYPE(uint64_t, BTRFS_BALANCE_ARGS_DEVID), + #define XLAT_VAL_2 ((uint64_t) (BTRFS_BALANCE_ARGS_DEVID)) + #define XLAT_STR_2 STRINGIFY(BTRFS_BALANCE_ARGS_DEVID) XLAT_TYPE(uint64_t, BTRFS_BALANCE_ARGS_DRANGE), + #define XLAT_VAL_3 ((uint64_t) (BTRFS_BALANCE_ARGS_DRANGE)) + #define XLAT_STR_3 STRINGIFY(BTRFS_BALANCE_ARGS_DRANGE) XLAT_TYPE(uint64_t, BTRFS_BALANCE_ARGS_VRANGE), + #define XLAT_VAL_4 ((uint64_t) (BTRFS_BALANCE_ARGS_VRANGE)) + #define XLAT_STR_4 STRINGIFY(BTRFS_BALANCE_ARGS_VRANGE) XLAT_TYPE(uint64_t, BTRFS_BALANCE_ARGS_LIMIT), + #define XLAT_VAL_5 ((uint64_t) (BTRFS_BALANCE_ARGS_LIMIT)) + #define XLAT_STR_5 STRINGIFY(BTRFS_BALANCE_ARGS_LIMIT) XLAT_TYPE(uint64_t, BTRFS_BALANCE_ARGS_LIMIT_RANGE), + #define XLAT_VAL_6 ((uint64_t) (BTRFS_BALANCE_ARGS_LIMIT_RANGE)) + #define XLAT_STR_6 STRINGIFY(BTRFS_BALANCE_ARGS_LIMIT_RANGE) XLAT_TYPE(uint64_t, BTRFS_BALANCE_ARGS_STRIPES_RANGE), + #define XLAT_VAL_7 ((uint64_t) (BTRFS_BALANCE_ARGS_STRIPES_RANGE)) + #define XLAT_STR_7 STRINGIFY(BTRFS_BALANCE_ARGS_STRIPES_RANGE) XLAT_TYPE(uint64_t, BTRFS_BALANCE_ARGS_CONVERT), + #define XLAT_VAL_8 ((uint64_t) (BTRFS_BALANCE_ARGS_CONVERT)) + #define XLAT_STR_8 STRINGIFY(BTRFS_BALANCE_ARGS_CONVERT) XLAT_TYPE(uint64_t, BTRFS_BALANCE_ARGS_SOFT), + #define XLAT_VAL_9 ((uint64_t) (BTRFS_BALANCE_ARGS_SOFT)) + #define XLAT_STR_9 STRINGIFY(BTRFS_BALANCE_ARGS_SOFT) XLAT_TYPE(uint64_t, BTRFS_BALANCE_ARGS_USAGE_RANGE), - XLAT_END + #define XLAT_VAL_10 ((uint64_t) (BTRFS_BALANCE_ARGS_USAGE_RANGE)) + #define XLAT_STR_10 STRINGIFY(BTRFS_BALANCE_ARGS_USAGE_RANGE) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat btrfs_balance_args[1] = { { + .data = btrfs_balance_args_xdata, + .size = ARRAY_SIZE(btrfs_balance_args_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/btrfs_balance_ctl_cmds.h b/xlat/btrfs_balance_ctl_cmds.h index a7c0040e..2f602e6a 100644 --- a/xlat/btrfs_balance_ctl_cmds.h +++ b/xlat/btrfs_balance_ctl_cmds.h @@ -26,15 +26,43 @@ extern const struct xlat btrfs_balance_ctl_cmds[]; # else +static const struct xlat_data btrfs_balance_ctl_cmds_xdata[] = { + [BTRFS_BALANCE_CTL_PAUSE] = XLAT(BTRFS_BALANCE_CTL_PAUSE), + #define XLAT_VAL_0 ((unsigned) (BTRFS_BALANCE_CTL_PAUSE)) + #define XLAT_STR_0 STRINGIFY(BTRFS_BALANCE_CTL_PAUSE) + [BTRFS_BALANCE_CTL_CANCEL] = XLAT(BTRFS_BALANCE_CTL_CANCEL), + #define XLAT_VAL_1 ((unsigned) (BTRFS_BALANCE_CTL_CANCEL)) + #define XLAT_STR_1 STRINGIFY(BTRFS_BALANCE_CTL_CANCEL) +}; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static # endif -const struct xlat btrfs_balance_ctl_cmds[] = { - XLAT(BTRFS_BALANCE_CTL_PAUSE), - XLAT(BTRFS_BALANCE_CTL_CANCEL), - XLAT_END -}; +const struct xlat btrfs_balance_ctl_cmds[1] = { { + .data = btrfs_balance_ctl_cmds_xdata, + .size = ARRAY_SIZE(btrfs_balance_ctl_cmds_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/btrfs_balance_ctl_cmds.in b/xlat/btrfs_balance_ctl_cmds.in index 5cdd0bc5..3e38dd9a 100644 --- a/xlat/btrfs_balance_ctl_cmds.in +++ b/xlat/btrfs_balance_ctl_cmds.in @@ -1,2 +1,3 @@ +#value_indexed BTRFS_BALANCE_CTL_PAUSE 1 BTRFS_BALANCE_CTL_CANCEL 2 diff --git a/xlat/btrfs_balance_flags.h b/xlat/btrfs_balance_flags.h index 87537552..f5a9cda2 100644 --- a/xlat/btrfs_balance_flags.h +++ b/xlat/btrfs_balance_flags.h @@ -47,18 +47,76 @@ extern const struct xlat btrfs_balance_flags[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat btrfs_balance_flags[] = { +static const struct xlat_data btrfs_balance_flags_xdata[] = { XLAT_TYPE(uint64_t, BTRFS_BALANCE_DATA), + #define XLAT_VAL_0 ((uint64_t) (BTRFS_BALANCE_DATA)) + #define XLAT_STR_0 STRINGIFY(BTRFS_BALANCE_DATA) XLAT_TYPE(uint64_t, BTRFS_BALANCE_SYSTEM), + #define XLAT_VAL_1 ((uint64_t) (BTRFS_BALANCE_SYSTEM)) + #define XLAT_STR_1 STRINGIFY(BTRFS_BALANCE_SYSTEM) XLAT_TYPE(uint64_t, BTRFS_BALANCE_METADATA), + #define XLAT_VAL_2 ((uint64_t) (BTRFS_BALANCE_METADATA)) + #define XLAT_STR_2 STRINGIFY(BTRFS_BALANCE_METADATA) XLAT_TYPE(uint64_t, BTRFS_BALANCE_FORCE), + #define XLAT_VAL_3 ((uint64_t) (BTRFS_BALANCE_FORCE)) + #define XLAT_STR_3 STRINGIFY(BTRFS_BALANCE_FORCE) XLAT_TYPE(uint64_t, BTRFS_BALANCE_RESUME), - XLAT_END + #define XLAT_VAL_4 ((uint64_t) (BTRFS_BALANCE_RESUME)) + #define XLAT_STR_4 STRINGIFY(BTRFS_BALANCE_RESUME) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat btrfs_balance_flags[1] = { { + .data = btrfs_balance_flags_xdata, + .size = ARRAY_SIZE(btrfs_balance_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/btrfs_balance_state.h b/xlat/btrfs_balance_state.h index 1a14a03d..8fc31684 100644 --- a/xlat/btrfs_balance_state.h +++ b/xlat/btrfs_balance_state.h @@ -33,16 +33,54 @@ extern const struct xlat btrfs_balance_state[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat btrfs_balance_state[] = { +static const struct xlat_data btrfs_balance_state_xdata[] = { XLAT(BTRFS_BALANCE_STATE_RUNNING), + #define XLAT_VAL_0 ((unsigned) (BTRFS_BALANCE_STATE_RUNNING)) + #define XLAT_STR_0 STRINGIFY(BTRFS_BALANCE_STATE_RUNNING) XLAT(BTRFS_BALANCE_STATE_PAUSE_REQ), + #define XLAT_VAL_1 ((unsigned) (BTRFS_BALANCE_STATE_PAUSE_REQ)) + #define XLAT_STR_1 STRINGIFY(BTRFS_BALANCE_STATE_PAUSE_REQ) XLAT(BTRFS_BALANCE_STATE_CANCEL_REQ), - XLAT_END + #define XLAT_VAL_2 ((unsigned) (BTRFS_BALANCE_STATE_CANCEL_REQ)) + #define XLAT_STR_2 STRINGIFY(BTRFS_BALANCE_STATE_CANCEL_REQ) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat btrfs_balance_state[1] = { { + .data = btrfs_balance_state_xdata, + .size = ARRAY_SIZE(btrfs_balance_state_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/btrfs_compress_types.h b/xlat/btrfs_compress_types.h index 50fa15fc..4edc0563 100644 --- a/xlat/btrfs_compress_types.h +++ b/xlat/btrfs_compress_types.h @@ -24,6 +24,13 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define BTRFS_COMPRESS_LZO 2 #endif +#if defined(BTRFS_COMPRESS_ZSTD) || (defined(HAVE_DECL_BTRFS_COMPRESS_ZSTD) && HAVE_DECL_BTRFS_COMPRESS_ZSTD) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BTRFS_COMPRESS_ZSTD) == (3), "BTRFS_COMPRESS_ZSTD != 3"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BTRFS_COMPRESS_ZSTD 3 +#endif #ifndef XLAT_MACROS_ONLY @@ -33,16 +40,65 @@ extern const struct xlat btrfs_compress_types[]; # else +static const struct xlat_data btrfs_compress_types_xdata[] = { + [BTRFS_COMPRESS_NONE] = XLAT(BTRFS_COMPRESS_NONE), + #define XLAT_VAL_0 ((unsigned) (BTRFS_COMPRESS_NONE)) + #define XLAT_STR_0 STRINGIFY(BTRFS_COMPRESS_NONE) + [BTRFS_COMPRESS_ZLIB] = XLAT(BTRFS_COMPRESS_ZLIB), + #define XLAT_VAL_1 ((unsigned) (BTRFS_COMPRESS_ZLIB)) + #define XLAT_STR_1 STRINGIFY(BTRFS_COMPRESS_ZLIB) + [BTRFS_COMPRESS_LZO] = XLAT(BTRFS_COMPRESS_LZO), + #define XLAT_VAL_2 ((unsigned) (BTRFS_COMPRESS_LZO)) + #define XLAT_STR_2 STRINGIFY(BTRFS_COMPRESS_LZO) + [BTRFS_COMPRESS_ZSTD] = XLAT(BTRFS_COMPRESS_ZSTD), + #define XLAT_VAL_3 ((unsigned) (BTRFS_COMPRESS_ZSTD)) + #define XLAT_STR_3 STRINGIFY(BTRFS_COMPRESS_ZSTD) +}; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static # endif -const struct xlat btrfs_compress_types[] = { - XLAT(BTRFS_COMPRESS_NONE), - XLAT(BTRFS_COMPRESS_ZLIB), - XLAT(BTRFS_COMPRESS_LZO), - XLAT_END -}; +const struct xlat btrfs_compress_types[1] = { { + .data = btrfs_compress_types_xdata, + .size = ARRAY_SIZE(btrfs_compress_types_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/btrfs_compress_types.in b/xlat/btrfs_compress_types.in index c47d59fc..595a2855 100644 --- a/xlat/btrfs_compress_types.in +++ b/xlat/btrfs_compress_types.in @@ -1,3 +1,8 @@ +#value_indexed +#enum +#include +#include BTRFS_COMPRESS_NONE 0 BTRFS_COMPRESS_ZLIB 1 BTRFS_COMPRESS_LZO 2 +BTRFS_COMPRESS_ZSTD 3 diff --git a/xlat/btrfs_compress_types.m4 b/xlat/btrfs_compress_types.m4 new file mode 100644 index 00000000..ffeeabbb --- /dev/null +++ b/xlat/btrfs_compress_types.m4 @@ -0,0 +1,11 @@ +dnl Generated by ./xlat/gen.sh from ./xlat/btrfs_compress_types.in; do not edit. +AC_DEFUN([st_CHECK_ENUMS_btrfs_compress_types],[ +AC_CHECK_DECLS(m4_normalize([ +BTRFS_COMPRESS_NONE, +BTRFS_COMPRESS_ZLIB, +BTRFS_COMPRESS_LZO, +BTRFS_COMPRESS_ZSTD +]),,, [ +#include +#include +])])]) diff --git a/xlat/btrfs_cont_reading_from_srcdev_mode.h b/xlat/btrfs_cont_reading_from_srcdev_mode.h index 4904e933..4377595d 100644 --- a/xlat/btrfs_cont_reading_from_srcdev_mode.h +++ b/xlat/btrfs_cont_reading_from_srcdev_mode.h @@ -26,15 +26,43 @@ extern const struct xlat btrfs_cont_reading_from_srcdev_mode[]; # else +static const struct xlat_data btrfs_cont_reading_from_srcdev_mode_xdata[] = { + [BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS] = XLAT(BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS), + #define XLAT_VAL_0 ((unsigned) (BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS)) + #define XLAT_STR_0 STRINGIFY(BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS) + [BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID] = XLAT(BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID), + #define XLAT_VAL_1 ((unsigned) (BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID)) + #define XLAT_STR_1 STRINGIFY(BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID) +}; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static # endif -const struct xlat btrfs_cont_reading_from_srcdev_mode[] = { - XLAT(BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS), - XLAT(BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID), - XLAT_END -}; +const struct xlat btrfs_cont_reading_from_srcdev_mode[1] = { { + .data = btrfs_cont_reading_from_srcdev_mode_xdata, + .size = ARRAY_SIZE(btrfs_cont_reading_from_srcdev_mode_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/btrfs_cont_reading_from_srcdev_mode.in b/xlat/btrfs_cont_reading_from_srcdev_mode.in index 0a1decfb..0ae8b516 100644 --- a/xlat/btrfs_cont_reading_from_srcdev_mode.in +++ b/xlat/btrfs_cont_reading_from_srcdev_mode.in @@ -1,2 +1,3 @@ +#value_indexed BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS 0 BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID 1 diff --git a/xlat/btrfs_defrag_flags.h b/xlat/btrfs_defrag_flags.h index 7fac3a4f..43879773 100644 --- a/xlat/btrfs_defrag_flags.h +++ b/xlat/btrfs_defrag_flags.h @@ -12,19 +12,47 @@ extern const struct xlat btrfs_defrag_flags[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat btrfs_defrag_flags[] = { +static const struct xlat_data btrfs_defrag_flags_xdata[] = { #if defined(BTRFS_DEFRAG_RANGE_COMPRESS) || (defined(HAVE_DECL_BTRFS_DEFRAG_RANGE_COMPRESS) && HAVE_DECL_BTRFS_DEFRAG_RANGE_COMPRESS) XLAT_TYPE(uint64_t, BTRFS_DEFRAG_RANGE_COMPRESS), + #define XLAT_VAL_0 ((uint64_t) (BTRFS_DEFRAG_RANGE_COMPRESS)) + #define XLAT_STR_0 STRINGIFY(BTRFS_DEFRAG_RANGE_COMPRESS) #endif #if defined(BTRFS_DEFRAG_RANGE_START_IO) || (defined(HAVE_DECL_BTRFS_DEFRAG_RANGE_START_IO) && HAVE_DECL_BTRFS_DEFRAG_RANGE_START_IO) XLAT_TYPE(uint64_t, BTRFS_DEFRAG_RANGE_START_IO), + #define XLAT_VAL_1 ((uint64_t) (BTRFS_DEFRAG_RANGE_START_IO)) + #define XLAT_STR_1 STRINGIFY(BTRFS_DEFRAG_RANGE_START_IO) #endif - XLAT_END }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat btrfs_defrag_flags[1] = { { + .data = btrfs_defrag_flags_xdata, + .size = ARRAY_SIZE(btrfs_defrag_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/btrfs_dev_replace_cmds.h b/xlat/btrfs_dev_replace_cmds.h index f612ebdf..5fd94699 100644 --- a/xlat/btrfs_dev_replace_cmds.h +++ b/xlat/btrfs_dev_replace_cmds.h @@ -12,22 +12,60 @@ extern const struct xlat btrfs_dev_replace_cmds[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat btrfs_dev_replace_cmds[] = { +static const struct xlat_data btrfs_dev_replace_cmds_xdata[] = { #if defined(BTRFS_IOCTL_DEV_REPLACE_CMD_START) || (defined(HAVE_DECL_BTRFS_IOCTL_DEV_REPLACE_CMD_START) && HAVE_DECL_BTRFS_IOCTL_DEV_REPLACE_CMD_START) XLAT_TYPE(uint64_t, BTRFS_IOCTL_DEV_REPLACE_CMD_START), + #define XLAT_VAL_0 ((uint64_t) (BTRFS_IOCTL_DEV_REPLACE_CMD_START)) + #define XLAT_STR_0 STRINGIFY(BTRFS_IOCTL_DEV_REPLACE_CMD_START) #endif #if defined(BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS) || (defined(HAVE_DECL_BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS) && HAVE_DECL_BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS) XLAT_TYPE(uint64_t, BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS), + #define XLAT_VAL_1 ((uint64_t) (BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS)) + #define XLAT_STR_1 STRINGIFY(BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS) #endif #if defined(BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL) || (defined(HAVE_DECL_BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL) && HAVE_DECL_BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL) XLAT_TYPE(uint64_t, BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL), + #define XLAT_VAL_2 ((uint64_t) (BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL)) + #define XLAT_STR_2 STRINGIFY(BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL) #endif - XLAT_END }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat btrfs_dev_replace_cmds[1] = { { + .data = btrfs_dev_replace_cmds_xdata, + .size = ARRAY_SIZE(btrfs_dev_replace_cmds_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/btrfs_dev_replace_results.h b/xlat/btrfs_dev_replace_results.h index cf96f4f4..e12287af 100644 --- a/xlat/btrfs_dev_replace_results.h +++ b/xlat/btrfs_dev_replace_results.h @@ -12,25 +12,73 @@ extern const struct xlat btrfs_dev_replace_results[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat btrfs_dev_replace_results[] = { +static const struct xlat_data btrfs_dev_replace_results_xdata[] = { #if defined(BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR) || (defined(HAVE_DECL_BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR) && HAVE_DECL_BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR) XLAT_TYPE(uint64_t, BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR), + #define XLAT_VAL_0 ((uint64_t) (BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR)) + #define XLAT_STR_0 STRINGIFY(BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR) #endif #if defined(BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED) || (defined(HAVE_DECL_BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED) && HAVE_DECL_BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED) XLAT_TYPE(uint64_t, BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED), + #define XLAT_VAL_1 ((uint64_t) (BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED)) + #define XLAT_STR_1 STRINGIFY(BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED) #endif #if defined(BTRFS_IOCTL_DEV_REPLACE_RESULT_ALREADY_STARTED) || (defined(HAVE_DECL_BTRFS_IOCTL_DEV_REPLACE_RESULT_ALREADY_STARTED) && HAVE_DECL_BTRFS_IOCTL_DEV_REPLACE_RESULT_ALREADY_STARTED) XLAT_TYPE(uint64_t, BTRFS_IOCTL_DEV_REPLACE_RESULT_ALREADY_STARTED), + #define XLAT_VAL_2 ((uint64_t) (BTRFS_IOCTL_DEV_REPLACE_RESULT_ALREADY_STARTED)) + #define XLAT_STR_2 STRINGIFY(BTRFS_IOCTL_DEV_REPLACE_RESULT_ALREADY_STARTED) #endif #if defined(BTRFS_IOCTL_DEV_REPLACE_RESULT_SCRUB_INPROGRESS) || (defined(HAVE_DECL_BTRFS_IOCTL_DEV_REPLACE_RESULT_SCRUB_INPROGRESS) && HAVE_DECL_BTRFS_IOCTL_DEV_REPLACE_RESULT_SCRUB_INPROGRESS) XLAT_TYPE(uint64_t, BTRFS_IOCTL_DEV_REPLACE_RESULT_SCRUB_INPROGRESS), + #define XLAT_VAL_3 ((uint64_t) (BTRFS_IOCTL_DEV_REPLACE_RESULT_SCRUB_INPROGRESS)) + #define XLAT_STR_3 STRINGIFY(BTRFS_IOCTL_DEV_REPLACE_RESULT_SCRUB_INPROGRESS) #endif - XLAT_END }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat btrfs_dev_replace_results[1] = { { + .data = btrfs_dev_replace_results_xdata, + .size = ARRAY_SIZE(btrfs_dev_replace_results_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/btrfs_dev_replace_state.h b/xlat/btrfs_dev_replace_state.h index de5cf7bf..285d4e6a 100644 --- a/xlat/btrfs_dev_replace_state.h +++ b/xlat/btrfs_dev_replace_state.h @@ -12,28 +12,86 @@ extern const struct xlat btrfs_dev_replace_state[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat btrfs_dev_replace_state[] = { +static const struct xlat_data btrfs_dev_replace_state_xdata[] = { #if defined(BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED) || (defined(HAVE_DECL_BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED) && HAVE_DECL_BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED) XLAT_TYPE(uint64_t, BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED), + #define XLAT_VAL_0 ((uint64_t) (BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED)) + #define XLAT_STR_0 STRINGIFY(BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED) #endif #if defined(BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED) || (defined(HAVE_DECL_BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED) && HAVE_DECL_BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED) XLAT_TYPE(uint64_t, BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED), + #define XLAT_VAL_1 ((uint64_t) (BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED)) + #define XLAT_STR_1 STRINGIFY(BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED) #endif #if defined(BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED) || (defined(HAVE_DECL_BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED) && HAVE_DECL_BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED) XLAT_TYPE(uint64_t, BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED), + #define XLAT_VAL_2 ((uint64_t) (BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED)) + #define XLAT_STR_2 STRINGIFY(BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED) #endif #if defined(BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED) || (defined(HAVE_DECL_BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED) && HAVE_DECL_BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED) XLAT_TYPE(uint64_t, BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED), + #define XLAT_VAL_3 ((uint64_t) (BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED)) + #define XLAT_STR_3 STRINGIFY(BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED) #endif #if defined(BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED) || (defined(HAVE_DECL_BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED) && HAVE_DECL_BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED) XLAT_TYPE(uint64_t, BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED), + #define XLAT_VAL_4 ((uint64_t) (BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED)) + #define XLAT_STR_4 STRINGIFY(BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED) #endif - XLAT_END }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat btrfs_dev_replace_state[1] = { { + .data = btrfs_dev_replace_state_xdata, + .size = ARRAY_SIZE(btrfs_dev_replace_state_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/btrfs_dev_stats_flags.h b/xlat/btrfs_dev_stats_flags.h index 29793e5f..c805e93e 100644 --- a/xlat/btrfs_dev_stats_flags.h +++ b/xlat/btrfs_dev_stats_flags.h @@ -12,16 +12,34 @@ extern const struct xlat btrfs_dev_stats_flags[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat btrfs_dev_stats_flags[] = { +static const struct xlat_data btrfs_dev_stats_flags_xdata[] = { #if defined(BTRFS_DEV_STATS_RESET) || (defined(HAVE_DECL_BTRFS_DEV_STATS_RESET) && HAVE_DECL_BTRFS_DEV_STATS_RESET) XLAT_TYPE(uint64_t, BTRFS_DEV_STATS_RESET), + #define XLAT_VAL_0 ((uint64_t) (BTRFS_DEV_STATS_RESET)) + #define XLAT_STR_0 STRINGIFY(BTRFS_DEV_STATS_RESET) #endif - XLAT_END }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat btrfs_dev_stats_flags[1] = { { + .data = btrfs_dev_stats_flags_xdata, + .size = ARRAY_SIZE(btrfs_dev_stats_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/btrfs_dev_stats_values.h b/xlat/btrfs_dev_stats_values.h index 07150711..593fb319 100644 --- a/xlat/btrfs_dev_stats_values.h +++ b/xlat/btrfs_dev_stats_values.h @@ -12,18 +12,76 @@ extern const struct xlat btrfs_dev_stats_values[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat btrfs_dev_stats_values[] = { +static const struct xlat_data btrfs_dev_stats_values_xdata[] = { XLAT_TYPE(uint64_t, BTRFS_DEV_STAT_WRITE_ERRS), + #define XLAT_VAL_0 ((uint64_t) (BTRFS_DEV_STAT_WRITE_ERRS)) + #define XLAT_STR_0 STRINGIFY(BTRFS_DEV_STAT_WRITE_ERRS) XLAT_TYPE(uint64_t, BTRFS_DEV_STAT_READ_ERRS), + #define XLAT_VAL_1 ((uint64_t) (BTRFS_DEV_STAT_READ_ERRS)) + #define XLAT_STR_1 STRINGIFY(BTRFS_DEV_STAT_READ_ERRS) XLAT_TYPE(uint64_t, BTRFS_DEV_STAT_FLUSH_ERRS), + #define XLAT_VAL_2 ((uint64_t) (BTRFS_DEV_STAT_FLUSH_ERRS)) + #define XLAT_STR_2 STRINGIFY(BTRFS_DEV_STAT_FLUSH_ERRS) XLAT_TYPE(uint64_t, BTRFS_DEV_STAT_CORRUPTION_ERRS), + #define XLAT_VAL_3 ((uint64_t) (BTRFS_DEV_STAT_CORRUPTION_ERRS)) + #define XLAT_STR_3 STRINGIFY(BTRFS_DEV_STAT_CORRUPTION_ERRS) XLAT_TYPE(uint64_t, BTRFS_DEV_STAT_GENERATION_ERRS), - XLAT_END + #define XLAT_VAL_4 ((uint64_t) (BTRFS_DEV_STAT_GENERATION_ERRS)) + #define XLAT_STR_4 STRINGIFY(BTRFS_DEV_STAT_GENERATION_ERRS) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat btrfs_dev_stats_values[1] = { { + .data = btrfs_dev_stats_values_xdata, + .size = ARRAY_SIZE(btrfs_dev_stats_values_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/btrfs_features_compat.h b/xlat/btrfs_features_compat.h index 754dc9e1..d74af315 100644 --- a/xlat/btrfs_features_compat.h +++ b/xlat/btrfs_features_compat.h @@ -12,12 +12,20 @@ extern const struct xlat btrfs_features_compat[]; # else +static const struct xlat_data btrfs_features_compat_xdata[] = { +}; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static # endif -const struct xlat btrfs_features_compat[] = { - XLAT_END -}; +const struct xlat btrfs_features_compat[1] = { { + .data = btrfs_features_compat_xdata, + .size = ARRAY_SIZE(btrfs_features_compat_xdata), + .type = XT_NORMAL, + .flags_mask = 0 + , + .flags_strsz = 0 + , +} }; # endif /* !IN_MPERS */ diff --git a/xlat/btrfs_features_compat_ro.h b/xlat/btrfs_features_compat_ro.h index 348782ba..be7dfe67 100644 --- a/xlat/btrfs_features_compat_ro.h +++ b/xlat/btrfs_features_compat_ro.h @@ -26,15 +26,43 @@ extern const struct xlat btrfs_features_compat_ro[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat btrfs_features_compat_ro[] = { +static const struct xlat_data btrfs_features_compat_ro_xdata[] = { XLAT_TYPE(uint64_t, BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE), + #define XLAT_VAL_0 ((uint64_t) (BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE)) + #define XLAT_STR_0 STRINGIFY(BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE) XLAT_TYPE(uint64_t, BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID), - XLAT_END + #define XLAT_VAL_1 ((uint64_t) (BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID)) + #define XLAT_STR_1 STRINGIFY(BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat btrfs_features_compat_ro[1] = { { + .data = btrfs_features_compat_ro_xdata, + .size = ARRAY_SIZE(btrfs_features_compat_ro_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/btrfs_features_incompat.h b/xlat/btrfs_features_incompat.h index ce06f491..fdf4b2ff 100644 --- a/xlat/btrfs_features_incompat.h +++ b/xlat/btrfs_features_incompat.h @@ -89,24 +89,142 @@ extern const struct xlat btrfs_features_incompat[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat btrfs_features_incompat[] = { +static const struct xlat_data btrfs_features_incompat_xdata[] = { XLAT_TYPE(uint64_t, BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF), + #define XLAT_VAL_0 ((uint64_t) (BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF)) + #define XLAT_STR_0 STRINGIFY(BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF) XLAT_TYPE(uint64_t, BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL), + #define XLAT_VAL_1 ((uint64_t) (BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL)) + #define XLAT_STR_1 STRINGIFY(BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL) XLAT_TYPE(uint64_t, BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS), + #define XLAT_VAL_2 ((uint64_t) (BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS)) + #define XLAT_STR_2 STRINGIFY(BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS) XLAT_TYPE(uint64_t, BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO), + #define XLAT_VAL_3 ((uint64_t) (BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO)) + #define XLAT_STR_3 STRINGIFY(BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO) XLAT_TYPE(uint64_t, BTRFS_FEATURE_INCOMPAT_COMPRESS_LZOv2), + #define XLAT_VAL_4 ((uint64_t) (BTRFS_FEATURE_INCOMPAT_COMPRESS_LZOv2)) + #define XLAT_STR_4 STRINGIFY(BTRFS_FEATURE_INCOMPAT_COMPRESS_LZOv2) XLAT_TYPE(uint64_t, BTRFS_FEATURE_INCOMPAT_BIG_METADATA), + #define XLAT_VAL_5 ((uint64_t) (BTRFS_FEATURE_INCOMPAT_BIG_METADATA)) + #define XLAT_STR_5 STRINGIFY(BTRFS_FEATURE_INCOMPAT_BIG_METADATA) XLAT_TYPE(uint64_t, BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF), + #define XLAT_VAL_6 ((uint64_t) (BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF)) + #define XLAT_STR_6 STRINGIFY(BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF) XLAT_TYPE(uint64_t, BTRFS_FEATURE_INCOMPAT_RAID56), + #define XLAT_VAL_7 ((uint64_t) (BTRFS_FEATURE_INCOMPAT_RAID56)) + #define XLAT_STR_7 STRINGIFY(BTRFS_FEATURE_INCOMPAT_RAID56) XLAT_TYPE(uint64_t, BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA), + #define XLAT_VAL_8 ((uint64_t) (BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA)) + #define XLAT_STR_8 STRINGIFY(BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA) XLAT_TYPE(uint64_t, BTRFS_FEATURE_INCOMPAT_NO_HOLES), + #define XLAT_VAL_9 ((uint64_t) (BTRFS_FEATURE_INCOMPAT_NO_HOLES)) + #define XLAT_STR_9 STRINGIFY(BTRFS_FEATURE_INCOMPAT_NO_HOLES) XLAT_TYPE(uint64_t, BTRFS_FEATURE_INCOMPAT_METADATA_UUID), - XLAT_END + #define XLAT_VAL_10 ((uint64_t) (BTRFS_FEATURE_INCOMPAT_METADATA_UUID)) + #define XLAT_STR_10 STRINGIFY(BTRFS_FEATURE_INCOMPAT_METADATA_UUID) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat btrfs_features_incompat[1] = { { + .data = btrfs_features_incompat_xdata, + .size = ARRAY_SIZE(btrfs_features_incompat_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/btrfs_key_types.h b/xlat/btrfs_key_types.h index 71fcaba0..2b441d35 100644 --- a/xlat/btrfs_key_types.h +++ b/xlat/btrfs_key_types.h @@ -299,54 +299,472 @@ extern const struct xlat btrfs_key_types[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat btrfs_key_types[] = { +static const struct xlat_data btrfs_key_types_xdata[] = { XLAT_TYPE(uint64_t, BTRFS_INODE_ITEM_KEY), + #define XLAT_VAL_0 ((uint64_t) (BTRFS_INODE_ITEM_KEY)) + #define XLAT_STR_0 STRINGIFY(BTRFS_INODE_ITEM_KEY) XLAT_TYPE(uint64_t, BTRFS_INODE_REF_KEY), + #define XLAT_VAL_1 ((uint64_t) (BTRFS_INODE_REF_KEY)) + #define XLAT_STR_1 STRINGIFY(BTRFS_INODE_REF_KEY) XLAT_TYPE(uint64_t, BTRFS_INODE_EXTREF_KEY), + #define XLAT_VAL_2 ((uint64_t) (BTRFS_INODE_EXTREF_KEY)) + #define XLAT_STR_2 STRINGIFY(BTRFS_INODE_EXTREF_KEY) XLAT_TYPE(uint64_t, BTRFS_XATTR_ITEM_KEY), + #define XLAT_VAL_3 ((uint64_t) (BTRFS_XATTR_ITEM_KEY)) + #define XLAT_STR_3 STRINGIFY(BTRFS_XATTR_ITEM_KEY) XLAT_TYPE(uint64_t, BTRFS_ORPHAN_ITEM_KEY), + #define XLAT_VAL_4 ((uint64_t) (BTRFS_ORPHAN_ITEM_KEY)) + #define XLAT_STR_4 STRINGIFY(BTRFS_ORPHAN_ITEM_KEY) XLAT_TYPE(uint64_t, BTRFS_DIR_LOG_ITEM_KEY), + #define XLAT_VAL_5 ((uint64_t) (BTRFS_DIR_LOG_ITEM_KEY)) + #define XLAT_STR_5 STRINGIFY(BTRFS_DIR_LOG_ITEM_KEY) XLAT_TYPE(uint64_t, BTRFS_DIR_LOG_INDEX_KEY), + #define XLAT_VAL_6 ((uint64_t) (BTRFS_DIR_LOG_INDEX_KEY)) + #define XLAT_STR_6 STRINGIFY(BTRFS_DIR_LOG_INDEX_KEY) XLAT_TYPE(uint64_t, BTRFS_DIR_ITEM_KEY), + #define XLAT_VAL_7 ((uint64_t) (BTRFS_DIR_ITEM_KEY)) + #define XLAT_STR_7 STRINGIFY(BTRFS_DIR_ITEM_KEY) XLAT_TYPE(uint64_t, BTRFS_DIR_INDEX_KEY), + #define XLAT_VAL_8 ((uint64_t) (BTRFS_DIR_INDEX_KEY)) + #define XLAT_STR_8 STRINGIFY(BTRFS_DIR_INDEX_KEY) XLAT_TYPE(uint64_t, BTRFS_EXTENT_DATA_KEY), + #define XLAT_VAL_9 ((uint64_t) (BTRFS_EXTENT_DATA_KEY)) + #define XLAT_STR_9 STRINGIFY(BTRFS_EXTENT_DATA_KEY) XLAT_TYPE(uint64_t, BTRFS_EXTENT_CSUM_KEY), + #define XLAT_VAL_10 ((uint64_t) (BTRFS_EXTENT_CSUM_KEY)) + #define XLAT_STR_10 STRINGIFY(BTRFS_EXTENT_CSUM_KEY) XLAT_TYPE(uint64_t, BTRFS_ROOT_ITEM_KEY), + #define XLAT_VAL_11 ((uint64_t) (BTRFS_ROOT_ITEM_KEY)) + #define XLAT_STR_11 STRINGIFY(BTRFS_ROOT_ITEM_KEY) XLAT_TYPE(uint64_t, BTRFS_ROOT_BACKREF_KEY), + #define XLAT_VAL_12 ((uint64_t) (BTRFS_ROOT_BACKREF_KEY)) + #define XLAT_STR_12 STRINGIFY(BTRFS_ROOT_BACKREF_KEY) XLAT_TYPE(uint64_t, BTRFS_ROOT_REF_KEY), + #define XLAT_VAL_13 ((uint64_t) (BTRFS_ROOT_REF_KEY)) + #define XLAT_STR_13 STRINGIFY(BTRFS_ROOT_REF_KEY) XLAT_TYPE(uint64_t, BTRFS_EXTENT_ITEM_KEY), + #define XLAT_VAL_14 ((uint64_t) (BTRFS_EXTENT_ITEM_KEY)) + #define XLAT_STR_14 STRINGIFY(BTRFS_EXTENT_ITEM_KEY) XLAT_TYPE(uint64_t, BTRFS_METADATA_ITEM_KEY), + #define XLAT_VAL_15 ((uint64_t) (BTRFS_METADATA_ITEM_KEY)) + #define XLAT_STR_15 STRINGIFY(BTRFS_METADATA_ITEM_KEY) XLAT_TYPE(uint64_t, BTRFS_TREE_BLOCK_REF_KEY), + #define XLAT_VAL_16 ((uint64_t) (BTRFS_TREE_BLOCK_REF_KEY)) + #define XLAT_STR_16 STRINGIFY(BTRFS_TREE_BLOCK_REF_KEY) XLAT_TYPE(uint64_t, BTRFS_EXTENT_DATA_REF_KEY), + #define XLAT_VAL_17 ((uint64_t) (BTRFS_EXTENT_DATA_REF_KEY)) + #define XLAT_STR_17 STRINGIFY(BTRFS_EXTENT_DATA_REF_KEY) XLAT_TYPE(uint64_t, BTRFS_EXTENT_REF_V0_KEY), + #define XLAT_VAL_18 ((uint64_t) (BTRFS_EXTENT_REF_V0_KEY)) + #define XLAT_STR_18 STRINGIFY(BTRFS_EXTENT_REF_V0_KEY) XLAT_TYPE(uint64_t, BTRFS_SHARED_BLOCK_REF_KEY), + #define XLAT_VAL_19 ((uint64_t) (BTRFS_SHARED_BLOCK_REF_KEY)) + #define XLAT_STR_19 STRINGIFY(BTRFS_SHARED_BLOCK_REF_KEY) XLAT_TYPE(uint64_t, BTRFS_SHARED_DATA_REF_KEY), + #define XLAT_VAL_20 ((uint64_t) (BTRFS_SHARED_DATA_REF_KEY)) + #define XLAT_STR_20 STRINGIFY(BTRFS_SHARED_DATA_REF_KEY) XLAT_TYPE(uint64_t, BTRFS_BLOCK_GROUP_ITEM_KEY), + #define XLAT_VAL_21 ((uint64_t) (BTRFS_BLOCK_GROUP_ITEM_KEY)) + #define XLAT_STR_21 STRINGIFY(BTRFS_BLOCK_GROUP_ITEM_KEY) XLAT_TYPE(uint64_t, BTRFS_FREE_SPACE_INFO_KEY), + #define XLAT_VAL_22 ((uint64_t) (BTRFS_FREE_SPACE_INFO_KEY)) + #define XLAT_STR_22 STRINGIFY(BTRFS_FREE_SPACE_INFO_KEY) XLAT_TYPE(uint64_t, BTRFS_FREE_SPACE_EXTENT_KEY), + #define XLAT_VAL_23 ((uint64_t) (BTRFS_FREE_SPACE_EXTENT_KEY)) + #define XLAT_STR_23 STRINGIFY(BTRFS_FREE_SPACE_EXTENT_KEY) XLAT_TYPE(uint64_t, BTRFS_FREE_SPACE_BITMAP_KEY), + #define XLAT_VAL_24 ((uint64_t) (BTRFS_FREE_SPACE_BITMAP_KEY)) + #define XLAT_STR_24 STRINGIFY(BTRFS_FREE_SPACE_BITMAP_KEY) XLAT_TYPE(uint64_t, BTRFS_DEV_EXTENT_KEY), + #define XLAT_VAL_25 ((uint64_t) (BTRFS_DEV_EXTENT_KEY)) + #define XLAT_STR_25 STRINGIFY(BTRFS_DEV_EXTENT_KEY) XLAT_TYPE(uint64_t, BTRFS_DEV_ITEM_KEY), + #define XLAT_VAL_26 ((uint64_t) (BTRFS_DEV_ITEM_KEY)) + #define XLAT_STR_26 STRINGIFY(BTRFS_DEV_ITEM_KEY) XLAT_TYPE(uint64_t, BTRFS_CHUNK_ITEM_KEY), + #define XLAT_VAL_27 ((uint64_t) (BTRFS_CHUNK_ITEM_KEY)) + #define XLAT_STR_27 STRINGIFY(BTRFS_CHUNK_ITEM_KEY) XLAT_TYPE(uint64_t, BTRFS_QGROUP_STATUS_KEY), + #define XLAT_VAL_28 ((uint64_t) (BTRFS_QGROUP_STATUS_KEY)) + #define XLAT_STR_28 STRINGIFY(BTRFS_QGROUP_STATUS_KEY) XLAT_TYPE(uint64_t, BTRFS_QGROUP_INFO_KEY), + #define XLAT_VAL_29 ((uint64_t) (BTRFS_QGROUP_INFO_KEY)) + #define XLAT_STR_29 STRINGIFY(BTRFS_QGROUP_INFO_KEY) XLAT_TYPE(uint64_t, BTRFS_QGROUP_LIMIT_KEY), + #define XLAT_VAL_30 ((uint64_t) (BTRFS_QGROUP_LIMIT_KEY)) + #define XLAT_STR_30 STRINGIFY(BTRFS_QGROUP_LIMIT_KEY) XLAT_TYPE(uint64_t, BTRFS_QGROUP_RELATION_KEY), + #define XLAT_VAL_31 ((uint64_t) (BTRFS_QGROUP_RELATION_KEY)) + #define XLAT_STR_31 STRINGIFY(BTRFS_QGROUP_RELATION_KEY) XLAT_TYPE(uint64_t, BTRFS_BALANCE_ITEM_KEY), + #define XLAT_VAL_32 ((uint64_t) (BTRFS_BALANCE_ITEM_KEY)) + #define XLAT_STR_32 STRINGIFY(BTRFS_BALANCE_ITEM_KEY) XLAT_TYPE(uint64_t, BTRFS_TEMPORARY_ITEM_KEY), + #define XLAT_VAL_33 ((uint64_t) (BTRFS_TEMPORARY_ITEM_KEY)) + #define XLAT_STR_33 STRINGIFY(BTRFS_TEMPORARY_ITEM_KEY) XLAT_TYPE(uint64_t, BTRFS_DEV_STATS_KEY), + #define XLAT_VAL_34 ((uint64_t) (BTRFS_DEV_STATS_KEY)) + #define XLAT_STR_34 STRINGIFY(BTRFS_DEV_STATS_KEY) XLAT_TYPE(uint64_t, BTRFS_PERSISTENT_ITEM_KEY), + #define XLAT_VAL_35 ((uint64_t) (BTRFS_PERSISTENT_ITEM_KEY)) + #define XLAT_STR_35 STRINGIFY(BTRFS_PERSISTENT_ITEM_KEY) XLAT_TYPE(uint64_t, BTRFS_DEV_REPLACE_KEY), + #define XLAT_VAL_36 ((uint64_t) (BTRFS_DEV_REPLACE_KEY)) + #define XLAT_STR_36 STRINGIFY(BTRFS_DEV_REPLACE_KEY) XLAT_TYPE(uint64_t, BTRFS_UUID_KEY_SUBVOL), + #define XLAT_VAL_37 ((uint64_t) (BTRFS_UUID_KEY_SUBVOL)) + #define XLAT_STR_37 STRINGIFY(BTRFS_UUID_KEY_SUBVOL) XLAT_TYPE(uint64_t, BTRFS_UUID_KEY_RECEIVED_SUBVOL), + #define XLAT_VAL_38 ((uint64_t) (BTRFS_UUID_KEY_RECEIVED_SUBVOL)) + #define XLAT_STR_38 STRINGIFY(BTRFS_UUID_KEY_RECEIVED_SUBVOL) XLAT_TYPE(uint64_t, BTRFS_STRING_ITEM_KEY), + #define XLAT_VAL_39 ((uint64_t) (BTRFS_STRING_ITEM_KEY)) + #define XLAT_STR_39 STRINGIFY(BTRFS_STRING_ITEM_KEY) XLAT_TYPE(uint64_t, UINT32_MAX), - XLAT_END + #define XLAT_VAL_40 ((uint64_t) (UINT32_MAX)) + #define XLAT_STR_40 STRINGIFY(UINT32_MAX) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat btrfs_key_types[1] = { { + .data = btrfs_key_types_xdata, + .size = ARRAY_SIZE(btrfs_key_types_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/btrfs_logical_ino_args_flags.h b/xlat/btrfs_logical_ino_args_flags.h index ca969b76..3c1bbd48 100644 --- a/xlat/btrfs_logical_ino_args_flags.h +++ b/xlat/btrfs_logical_ino_args_flags.h @@ -19,14 +19,32 @@ extern const struct xlat btrfs_logical_ino_args_flags[]; # else +static const struct xlat_data btrfs_logical_ino_args_flags_xdata[] = { + XLAT(BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET), + #define XLAT_VAL_0 ((unsigned) (BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET)) + #define XLAT_STR_0 STRINGIFY(BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET) +}; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static # endif -const struct xlat btrfs_logical_ino_args_flags[] = { - XLAT(BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET), - XLAT_END -}; +const struct xlat btrfs_logical_ino_args_flags[1] = { { + .data = btrfs_logical_ino_args_flags_xdata, + .size = ARRAY_SIZE(btrfs_logical_ino_args_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/btrfs_qgroup_ctl_cmds.h b/xlat/btrfs_qgroup_ctl_cmds.h index 932f7274..f8201db5 100644 --- a/xlat/btrfs_qgroup_ctl_cmds.h +++ b/xlat/btrfs_qgroup_ctl_cmds.h @@ -12,22 +12,60 @@ extern const struct xlat btrfs_qgroup_ctl_cmds[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat btrfs_qgroup_ctl_cmds[] = { +static const struct xlat_data btrfs_qgroup_ctl_cmds_xdata[] = { #if defined(BTRFS_QUOTA_CTL_ENABLE) || (defined(HAVE_DECL_BTRFS_QUOTA_CTL_ENABLE) && HAVE_DECL_BTRFS_QUOTA_CTL_ENABLE) XLAT_TYPE(uint64_t, BTRFS_QUOTA_CTL_ENABLE), + #define XLAT_VAL_0 ((uint64_t) (BTRFS_QUOTA_CTL_ENABLE)) + #define XLAT_STR_0 STRINGIFY(BTRFS_QUOTA_CTL_ENABLE) #endif #if defined(BTRFS_QUOTA_CTL_DISABLE) || (defined(HAVE_DECL_BTRFS_QUOTA_CTL_DISABLE) && HAVE_DECL_BTRFS_QUOTA_CTL_DISABLE) XLAT_TYPE(uint64_t, BTRFS_QUOTA_CTL_DISABLE), + #define XLAT_VAL_1 ((uint64_t) (BTRFS_QUOTA_CTL_DISABLE)) + #define XLAT_STR_1 STRINGIFY(BTRFS_QUOTA_CTL_DISABLE) #endif #if defined(BTRFS_QUOTA_CTL_RESCAN__NOTUSED) || (defined(HAVE_DECL_BTRFS_QUOTA_CTL_RESCAN__NOTUSED) && HAVE_DECL_BTRFS_QUOTA_CTL_RESCAN__NOTUSED) XLAT_TYPE(uint64_t, BTRFS_QUOTA_CTL_RESCAN__NOTUSED), + #define XLAT_VAL_2 ((uint64_t) (BTRFS_QUOTA_CTL_RESCAN__NOTUSED)) + #define XLAT_STR_2 STRINGIFY(BTRFS_QUOTA_CTL_RESCAN__NOTUSED) #endif - XLAT_END }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat btrfs_qgroup_ctl_cmds[1] = { { + .data = btrfs_qgroup_ctl_cmds_xdata, + .size = ARRAY_SIZE(btrfs_qgroup_ctl_cmds_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/btrfs_qgroup_inherit_flags.h b/xlat/btrfs_qgroup_inherit_flags.h index 5f8d2f2d..4e139a82 100644 --- a/xlat/btrfs_qgroup_inherit_flags.h +++ b/xlat/btrfs_qgroup_inherit_flags.h @@ -12,16 +12,34 @@ extern const struct xlat btrfs_qgroup_inherit_flags[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat btrfs_qgroup_inherit_flags[] = { +static const struct xlat_data btrfs_qgroup_inherit_flags_xdata[] = { #if defined(BTRFS_QGROUP_INHERIT_SET_LIMITS) || (defined(HAVE_DECL_BTRFS_QGROUP_INHERIT_SET_LIMITS) && HAVE_DECL_BTRFS_QGROUP_INHERIT_SET_LIMITS) XLAT_TYPE(uint64_t, BTRFS_QGROUP_INHERIT_SET_LIMITS), + #define XLAT_VAL_0 ((uint64_t) (BTRFS_QGROUP_INHERIT_SET_LIMITS)) + #define XLAT_STR_0 STRINGIFY(BTRFS_QGROUP_INHERIT_SET_LIMITS) #endif - XLAT_END }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat btrfs_qgroup_inherit_flags[1] = { { + .data = btrfs_qgroup_inherit_flags_xdata, + .size = ARRAY_SIZE(btrfs_qgroup_inherit_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/btrfs_qgroup_limit_flags.h b/xlat/btrfs_qgroup_limit_flags.h index 5932d120..371280b5 100644 --- a/xlat/btrfs_qgroup_limit_flags.h +++ b/xlat/btrfs_qgroup_limit_flags.h @@ -54,19 +54,87 @@ extern const struct xlat btrfs_qgroup_limit_flags[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat btrfs_qgroup_limit_flags[] = { +static const struct xlat_data btrfs_qgroup_limit_flags_xdata[] = { XLAT_TYPE(uint64_t, BTRFS_QGROUP_LIMIT_MAX_RFER), + #define XLAT_VAL_0 ((uint64_t) (BTRFS_QGROUP_LIMIT_MAX_RFER)) + #define XLAT_STR_0 STRINGIFY(BTRFS_QGROUP_LIMIT_MAX_RFER) XLAT_TYPE(uint64_t, BTRFS_QGROUP_LIMIT_MAX_EXCL), + #define XLAT_VAL_1 ((uint64_t) (BTRFS_QGROUP_LIMIT_MAX_EXCL)) + #define XLAT_STR_1 STRINGIFY(BTRFS_QGROUP_LIMIT_MAX_EXCL) XLAT_TYPE(uint64_t, BTRFS_QGROUP_LIMIT_RSV_RFER), + #define XLAT_VAL_2 ((uint64_t) (BTRFS_QGROUP_LIMIT_RSV_RFER)) + #define XLAT_STR_2 STRINGIFY(BTRFS_QGROUP_LIMIT_RSV_RFER) XLAT_TYPE(uint64_t, BTRFS_QGROUP_LIMIT_RSV_EXCL), + #define XLAT_VAL_3 ((uint64_t) (BTRFS_QGROUP_LIMIT_RSV_EXCL)) + #define XLAT_STR_3 STRINGIFY(BTRFS_QGROUP_LIMIT_RSV_EXCL) XLAT_TYPE(uint64_t, BTRFS_QGROUP_LIMIT_RFER_CMPR), + #define XLAT_VAL_4 ((uint64_t) (BTRFS_QGROUP_LIMIT_RFER_CMPR)) + #define XLAT_STR_4 STRINGIFY(BTRFS_QGROUP_LIMIT_RFER_CMPR) XLAT_TYPE(uint64_t, BTRFS_QGROUP_LIMIT_EXCL_CMPR), - XLAT_END + #define XLAT_VAL_5 ((uint64_t) (BTRFS_QGROUP_LIMIT_EXCL_CMPR)) + #define XLAT_STR_5 STRINGIFY(BTRFS_QGROUP_LIMIT_EXCL_CMPR) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat btrfs_qgroup_limit_flags[1] = { { + .data = btrfs_qgroup_limit_flags_xdata, + .size = ARRAY_SIZE(btrfs_qgroup_limit_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/btrfs_qgroup_status_flags.h b/xlat/btrfs_qgroup_status_flags.h index 252ef61e..471c753b 100644 --- a/xlat/btrfs_qgroup_status_flags.h +++ b/xlat/btrfs_qgroup_status_flags.h @@ -26,15 +26,43 @@ extern const struct xlat btrfs_qgroup_status_flags[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat btrfs_qgroup_status_flags[] = { +static const struct xlat_data btrfs_qgroup_status_flags_xdata[] = { XLAT_TYPE(uint64_t, BTRFS_QGROUP_STATUS_FLAG_ON), + #define XLAT_VAL_0 ((uint64_t) (BTRFS_QGROUP_STATUS_FLAG_ON)) + #define XLAT_STR_0 STRINGIFY(BTRFS_QGROUP_STATUS_FLAG_ON) XLAT_TYPE(uint64_t, BTRFS_QGROUP_STATUS_FLAG_RESCAN), - XLAT_END + #define XLAT_VAL_1 ((uint64_t) (BTRFS_QGROUP_STATUS_FLAG_RESCAN)) + #define XLAT_STR_1 STRINGIFY(BTRFS_QGROUP_STATUS_FLAG_RESCAN) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat btrfs_qgroup_status_flags[1] = { { + .data = btrfs_qgroup_status_flags_xdata, + .size = ARRAY_SIZE(btrfs_qgroup_status_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/btrfs_scrub_flags.h b/xlat/btrfs_scrub_flags.h index b5964763..d3cb6598 100644 --- a/xlat/btrfs_scrub_flags.h +++ b/xlat/btrfs_scrub_flags.h @@ -19,14 +19,32 @@ extern const struct xlat btrfs_scrub_flags[]; # else +static const struct xlat_data btrfs_scrub_flags_xdata[] = { + XLAT_TYPE(uint64_t, BTRFS_SCRUB_READONLY), + #define XLAT_VAL_0 ((uint64_t) (BTRFS_SCRUB_READONLY)) + #define XLAT_STR_0 STRINGIFY(BTRFS_SCRUB_READONLY) +}; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static # endif -const struct xlat btrfs_scrub_flags[] = { - XLAT_TYPE(uint64_t, BTRFS_SCRUB_READONLY), - XLAT_END -}; +const struct xlat btrfs_scrub_flags[1] = { { + .data = btrfs_scrub_flags_xdata, + .size = ARRAY_SIZE(btrfs_scrub_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/btrfs_send_flags.h b/xlat/btrfs_send_flags.h index a357f71e..80818db4 100644 --- a/xlat/btrfs_send_flags.h +++ b/xlat/btrfs_send_flags.h @@ -33,16 +33,54 @@ extern const struct xlat btrfs_send_flags[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat btrfs_send_flags[] = { +static const struct xlat_data btrfs_send_flags_xdata[] = { XLAT(BTRFS_SEND_FLAG_NO_FILE_DATA), + #define XLAT_VAL_0 ((unsigned) (BTRFS_SEND_FLAG_NO_FILE_DATA)) + #define XLAT_STR_0 STRINGIFY(BTRFS_SEND_FLAG_NO_FILE_DATA) XLAT(BTRFS_SEND_FLAG_OMIT_STREAM_HEADER), + #define XLAT_VAL_1 ((unsigned) (BTRFS_SEND_FLAG_OMIT_STREAM_HEADER)) + #define XLAT_STR_1 STRINGIFY(BTRFS_SEND_FLAG_OMIT_STREAM_HEADER) XLAT(BTRFS_SEND_FLAG_OMIT_END_CMD), - XLAT_END + #define XLAT_VAL_2 ((unsigned) (BTRFS_SEND_FLAG_OMIT_END_CMD)) + #define XLAT_STR_2 STRINGIFY(BTRFS_SEND_FLAG_OMIT_END_CMD) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat btrfs_send_flags[1] = { { + .data = btrfs_send_flags_xdata, + .size = ARRAY_SIZE(btrfs_send_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/btrfs_snap_flags_v2.h b/xlat/btrfs_snap_flags_v2.h index 00fd6809..ca171f75 100644 --- a/xlat/btrfs_snap_flags_v2.h +++ b/xlat/btrfs_snap_flags_v2.h @@ -12,22 +12,60 @@ extern const struct xlat btrfs_snap_flags_v2[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat btrfs_snap_flags_v2[] = { +static const struct xlat_data btrfs_snap_flags_v2_xdata[] = { #if defined(BTRFS_SUBVOL_CREATE_ASYNC) || (defined(HAVE_DECL_BTRFS_SUBVOL_CREATE_ASYNC) && HAVE_DECL_BTRFS_SUBVOL_CREATE_ASYNC) XLAT_TYPE(uint64_t, BTRFS_SUBVOL_CREATE_ASYNC), + #define XLAT_VAL_0 ((uint64_t) (BTRFS_SUBVOL_CREATE_ASYNC)) + #define XLAT_STR_0 STRINGIFY(BTRFS_SUBVOL_CREATE_ASYNC) #endif #if defined(BTRFS_SUBVOL_RDONLY) || (defined(HAVE_DECL_BTRFS_SUBVOL_RDONLY) && HAVE_DECL_BTRFS_SUBVOL_RDONLY) XLAT_TYPE(uint64_t, BTRFS_SUBVOL_RDONLY), + #define XLAT_VAL_1 ((uint64_t) (BTRFS_SUBVOL_RDONLY)) + #define XLAT_STR_1 STRINGIFY(BTRFS_SUBVOL_RDONLY) #endif #if defined(BTRFS_SUBVOL_QGROUP_INHERIT) || (defined(HAVE_DECL_BTRFS_SUBVOL_QGROUP_INHERIT) && HAVE_DECL_BTRFS_SUBVOL_QGROUP_INHERIT) XLAT_TYPE(uint64_t, BTRFS_SUBVOL_QGROUP_INHERIT), + #define XLAT_VAL_2 ((uint64_t) (BTRFS_SUBVOL_QGROUP_INHERIT)) + #define XLAT_STR_2 STRINGIFY(BTRFS_SUBVOL_QGROUP_INHERIT) #endif - XLAT_END }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat btrfs_snap_flags_v2[1] = { { + .data = btrfs_snap_flags_v2_xdata, + .size = ARRAY_SIZE(btrfs_snap_flags_v2_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/btrfs_space_info_flags.h b/xlat/btrfs_space_info_flags.h index 665612db..31c3bd88 100644 --- a/xlat/btrfs_space_info_flags.h +++ b/xlat/btrfs_space_info_flags.h @@ -89,24 +89,142 @@ extern const struct xlat btrfs_space_info_flags[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat btrfs_space_info_flags[] = { +static const struct xlat_data btrfs_space_info_flags_xdata[] = { XLAT_TYPE(uint64_t, BTRFS_BLOCK_GROUP_DATA), + #define XLAT_VAL_0 ((uint64_t) (BTRFS_BLOCK_GROUP_DATA)) + #define XLAT_STR_0 STRINGIFY(BTRFS_BLOCK_GROUP_DATA) XLAT_TYPE(uint64_t, BTRFS_BLOCK_GROUP_SYSTEM), + #define XLAT_VAL_1 ((uint64_t) (BTRFS_BLOCK_GROUP_SYSTEM)) + #define XLAT_STR_1 STRINGIFY(BTRFS_BLOCK_GROUP_SYSTEM) XLAT_TYPE(uint64_t, BTRFS_BLOCK_GROUP_METADATA), + #define XLAT_VAL_2 ((uint64_t) (BTRFS_BLOCK_GROUP_METADATA)) + #define XLAT_STR_2 STRINGIFY(BTRFS_BLOCK_GROUP_METADATA) XLAT_TYPE(uint64_t, BTRFS_BLOCK_GROUP_RAID0), + #define XLAT_VAL_3 ((uint64_t) (BTRFS_BLOCK_GROUP_RAID0)) + #define XLAT_STR_3 STRINGIFY(BTRFS_BLOCK_GROUP_RAID0) XLAT_TYPE(uint64_t, BTRFS_BLOCK_GROUP_RAID1), + #define XLAT_VAL_4 ((uint64_t) (BTRFS_BLOCK_GROUP_RAID1)) + #define XLAT_STR_4 STRINGIFY(BTRFS_BLOCK_GROUP_RAID1) XLAT_TYPE(uint64_t, BTRFS_BLOCK_GROUP_DUP), + #define XLAT_VAL_5 ((uint64_t) (BTRFS_BLOCK_GROUP_DUP)) + #define XLAT_STR_5 STRINGIFY(BTRFS_BLOCK_GROUP_DUP) XLAT_TYPE(uint64_t, BTRFS_BLOCK_GROUP_RAID10), + #define XLAT_VAL_6 ((uint64_t) (BTRFS_BLOCK_GROUP_RAID10)) + #define XLAT_STR_6 STRINGIFY(BTRFS_BLOCK_GROUP_RAID10) XLAT_TYPE(uint64_t, BTRFS_BLOCK_GROUP_RAID5), + #define XLAT_VAL_7 ((uint64_t) (BTRFS_BLOCK_GROUP_RAID5)) + #define XLAT_STR_7 STRINGIFY(BTRFS_BLOCK_GROUP_RAID5) XLAT_TYPE(uint64_t, BTRFS_BLOCK_GROUP_RAID6), + #define XLAT_VAL_8 ((uint64_t) (BTRFS_BLOCK_GROUP_RAID6)) + #define XLAT_STR_8 STRINGIFY(BTRFS_BLOCK_GROUP_RAID6) XLAT_TYPE(uint64_t, BTRFS_AVAIL_ALLOC_BIT_SINGLE), + #define XLAT_VAL_9 ((uint64_t) (BTRFS_AVAIL_ALLOC_BIT_SINGLE)) + #define XLAT_STR_9 STRINGIFY(BTRFS_AVAIL_ALLOC_BIT_SINGLE) XLAT_TYPE(uint64_t, BTRFS_SPACE_INFO_GLOBAL_RSV), - XLAT_END + #define XLAT_VAL_10 ((uint64_t) (BTRFS_SPACE_INFO_GLOBAL_RSV)) + #define XLAT_STR_10 STRINGIFY(BTRFS_SPACE_INFO_GLOBAL_RSV) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat btrfs_space_info_flags[1] = { { + .data = btrfs_space_info_flags_xdata, + .size = ARRAY_SIZE(btrfs_space_info_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/btrfs_tree_objectids.h b/xlat/btrfs_tree_objectids.h index 5acf1096..f2c4b98a 100644 --- a/xlat/btrfs_tree_objectids.h +++ b/xlat/btrfs_tree_objectids.h @@ -103,26 +103,164 @@ extern const struct xlat btrfs_tree_objectids[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat btrfs_tree_objectids[] = { +static const struct xlat_data btrfs_tree_objectids_xdata[] = { XLAT_TYPE(uint64_t, BTRFS_ROOT_TREE_OBJECTID), + #define XLAT_VAL_0 ((uint64_t) (BTRFS_ROOT_TREE_OBJECTID)) + #define XLAT_STR_0 STRINGIFY(BTRFS_ROOT_TREE_OBJECTID) XLAT_TYPE(uint64_t, BTRFS_EXTENT_TREE_OBJECTID), + #define XLAT_VAL_1 ((uint64_t) (BTRFS_EXTENT_TREE_OBJECTID)) + #define XLAT_STR_1 STRINGIFY(BTRFS_EXTENT_TREE_OBJECTID) XLAT_TYPE(uint64_t, BTRFS_CHUNK_TREE_OBJECTID), + #define XLAT_VAL_2 ((uint64_t) (BTRFS_CHUNK_TREE_OBJECTID)) + #define XLAT_STR_2 STRINGIFY(BTRFS_CHUNK_TREE_OBJECTID) XLAT_TYPE(uint64_t, BTRFS_DEV_TREE_OBJECTID), + #define XLAT_VAL_3 ((uint64_t) (BTRFS_DEV_TREE_OBJECTID)) + #define XLAT_STR_3 STRINGIFY(BTRFS_DEV_TREE_OBJECTID) XLAT_TYPE(uint64_t, BTRFS_FS_TREE_OBJECTID), + #define XLAT_VAL_4 ((uint64_t) (BTRFS_FS_TREE_OBJECTID)) + #define XLAT_STR_4 STRINGIFY(BTRFS_FS_TREE_OBJECTID) XLAT_TYPE(uint64_t, BTRFS_ROOT_TREE_DIR_OBJECTID), + #define XLAT_VAL_5 ((uint64_t) (BTRFS_ROOT_TREE_DIR_OBJECTID)) + #define XLAT_STR_5 STRINGIFY(BTRFS_ROOT_TREE_DIR_OBJECTID) XLAT_TYPE(uint64_t, BTRFS_CSUM_TREE_OBJECTID), + #define XLAT_VAL_6 ((uint64_t) (BTRFS_CSUM_TREE_OBJECTID)) + #define XLAT_STR_6 STRINGIFY(BTRFS_CSUM_TREE_OBJECTID) XLAT_TYPE(uint64_t, BTRFS_QUOTA_TREE_OBJECTID), + #define XLAT_VAL_7 ((uint64_t) (BTRFS_QUOTA_TREE_OBJECTID)) + #define XLAT_STR_7 STRINGIFY(BTRFS_QUOTA_TREE_OBJECTID) XLAT_TYPE(uint64_t, BTRFS_UUID_TREE_OBJECTID), + #define XLAT_VAL_8 ((uint64_t) (BTRFS_UUID_TREE_OBJECTID)) + #define XLAT_STR_8 STRINGIFY(BTRFS_UUID_TREE_OBJECTID) XLAT_TYPE(uint64_t, BTRFS_FREE_SPACE_TREE_OBJECTID), + #define XLAT_VAL_9 ((uint64_t) (BTRFS_FREE_SPACE_TREE_OBJECTID)) + #define XLAT_STR_9 STRINGIFY(BTRFS_FREE_SPACE_TREE_OBJECTID) XLAT_TYPE(uint64_t, BTRFS_FIRST_FREE_OBJECTID), + #define XLAT_VAL_10 ((uint64_t) (BTRFS_FIRST_FREE_OBJECTID)) + #define XLAT_STR_10 STRINGIFY(BTRFS_FIRST_FREE_OBJECTID) XLAT_TYPE(uint64_t, BTRFS_LAST_FREE_OBJECTID), + #define XLAT_VAL_11 ((uint64_t) (BTRFS_LAST_FREE_OBJECTID)) + #define XLAT_STR_11 STRINGIFY(BTRFS_LAST_FREE_OBJECTID) XLAT_TYPE(uint64_t, UINT64_MAX), - XLAT_END + #define XLAT_VAL_12 ((uint64_t) (UINT64_MAX)) + #define XLAT_STR_12 STRINGIFY(UINT64_MAX) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat btrfs_tree_objectids[1] = { { + .data = btrfs_tree_objectids_xdata, + .size = ARRAY_SIZE(btrfs_tree_objectids_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/cacheflush_flags.h b/xlat/cacheflush_flags.h new file mode 100644 index 00000000..9ceee757 --- /dev/null +++ b/xlat/cacheflush_flags.h @@ -0,0 +1,242 @@ +/* Generated by ./xlat/gen.sh from ./xlat/cacheflush_flags.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined M68K +#if defined(FLUSH_CACHE_BOTH) || (defined(HAVE_DECL_FLUSH_CACHE_BOTH) && HAVE_DECL_FLUSH_CACHE_BOTH) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((FLUSH_CACHE_BOTH) == (3), "FLUSH_CACHE_BOTH != 3"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define FLUSH_CACHE_BOTH 3 +#endif +#if defined(FLUSH_CACHE_DATA) || (defined(HAVE_DECL_FLUSH_CACHE_DATA) && HAVE_DECL_FLUSH_CACHE_DATA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((FLUSH_CACHE_DATA) == (1), "FLUSH_CACHE_DATA != 1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define FLUSH_CACHE_DATA 1 +#endif +#if defined(FLUSH_CACHE_INSN) || (defined(HAVE_DECL_FLUSH_CACHE_INSN) && HAVE_DECL_FLUSH_CACHE_INSN) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((FLUSH_CACHE_INSN) == (2), "FLUSH_CACHE_INSN != 2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define FLUSH_CACHE_INSN 2 +#endif +#elif defined BFIN || defined CSKY +#if defined(BCACHE) || (defined(HAVE_DECL_BCACHE) && HAVE_DECL_BCACHE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BCACHE) == (3), "BCACHE != 3"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BCACHE 3 +#endif +#if defined(ICACHE) || (defined(HAVE_DECL_ICACHE) && HAVE_DECL_ICACHE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ICACHE) == (1), "ICACHE != 1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ICACHE 1 +#endif +#if defined(DCACHE) || (defined(HAVE_DECL_DCACHE) && HAVE_DECL_DCACHE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((DCACHE) == (2), "DCACHE != 2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define DCACHE 2 +#endif +#elif defined SH +#if defined(BCACHE) || (defined(HAVE_DECL_BCACHE) && HAVE_DECL_BCACHE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BCACHE) == (7), "BCACHE != 7"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BCACHE 7 +#endif +#if defined(ICACHE) || (defined(HAVE_DECL_ICACHE) && HAVE_DECL_ICACHE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ICACHE) == (4), "ICACHE != 4"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ICACHE 4 +#endif +#if defined(DCACHE) || (defined(HAVE_DECL_DCACHE) && HAVE_DECL_DCACHE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((DCACHE) == (3), "DCACHE != 3"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define DCACHE 3 +#endif +#if defined(CACHEFLUSH_D_INVAL) || (defined(HAVE_DECL_CACHEFLUSH_D_INVAL) && HAVE_DECL_CACHEFLUSH_D_INVAL) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((CACHEFLUSH_D_INVAL) == (1), "CACHEFLUSH_D_INVAL != 1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define CACHEFLUSH_D_INVAL 1 +#endif +#if defined(CACHEFLUSH_D_WB) || (defined(HAVE_DECL_CACHEFLUSH_D_WB) && HAVE_DECL_CACHEFLUSH_D_WB) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((CACHEFLUSH_D_WB) == (2), "CACHEFLUSH_D_WB != 2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define CACHEFLUSH_D_WB 2 +#endif +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat cacheflush_flags in mpers mode + +# else + +static const struct xlat_data cacheflush_flags_xdata[] = { +#if defined M68K + + XLAT(FLUSH_CACHE_BOTH), + #define XLAT_VAL_0 ((unsigned) (FLUSH_CACHE_BOTH)) + #define XLAT_STR_0 STRINGIFY(FLUSH_CACHE_BOTH) + XLAT(FLUSH_CACHE_DATA), + #define XLAT_VAL_1 ((unsigned) (FLUSH_CACHE_DATA)) + #define XLAT_STR_1 STRINGIFY(FLUSH_CACHE_DATA) + XLAT(FLUSH_CACHE_INSN), + #define XLAT_VAL_2 ((unsigned) (FLUSH_CACHE_INSN)) + #define XLAT_STR_2 STRINGIFY(FLUSH_CACHE_INSN) + +#elif defined BFIN || defined CSKY + + XLAT(BCACHE), + #define XLAT_VAL_3 ((unsigned) (BCACHE)) + #define XLAT_STR_3 STRINGIFY(BCACHE) + XLAT(ICACHE), + #define XLAT_VAL_4 ((unsigned) (ICACHE)) + #define XLAT_STR_4 STRINGIFY(ICACHE) + XLAT(DCACHE), + #define XLAT_VAL_5 ((unsigned) (DCACHE)) + #define XLAT_STR_5 STRINGIFY(DCACHE) + +#elif defined SH + + XLAT(BCACHE), + #define XLAT_VAL_6 ((unsigned) (BCACHE)) + #define XLAT_STR_6 STRINGIFY(BCACHE) + XLAT(ICACHE), + #define XLAT_VAL_7 ((unsigned) (ICACHE)) + #define XLAT_STR_7 STRINGIFY(ICACHE) + XLAT(DCACHE), + #define XLAT_VAL_8 ((unsigned) (DCACHE)) + #define XLAT_STR_8 STRINGIFY(DCACHE) + XLAT(CACHEFLUSH_D_INVAL), + #define XLAT_VAL_9 ((unsigned) (CACHEFLUSH_D_INVAL)) + #define XLAT_STR_9 STRINGIFY(CACHEFLUSH_D_INVAL) + XLAT(CACHEFLUSH_D_WB), + #define XLAT_VAL_10 ((unsigned) (CACHEFLUSH_D_WB)) + #define XLAT_STR_10 STRINGIFY(CACHEFLUSH_D_WB) + +#endif +}; +static +const struct xlat cacheflush_flags[1] = { { + .data = cacheflush_flags_xdata, + .size = ARRAY_SIZE(cacheflush_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/cacheflush_flags.in b/xlat/cacheflush_flags.in new file mode 100644 index 00000000..06ed0d6c --- /dev/null +++ b/xlat/cacheflush_flags.in @@ -0,0 +1,21 @@ +#if defined M68K + +FLUSH_CACHE_BOTH 3 +FLUSH_CACHE_DATA 1 +FLUSH_CACHE_INSN 2 + +#elif defined BFIN || defined CSKY + +BCACHE 3 +ICACHE 1 +DCACHE 2 + +#elif defined SH + +BCACHE 7 +ICACHE 4 +DCACHE 3 +CACHEFLUSH_D_INVAL 1 +CACHEFLUSH_D_WB 2 + +#endif diff --git a/xlat/cacheflush_scope.h b/xlat/cacheflush_scope.h index eac973e3..2cbefcc5 100644 --- a/xlat/cacheflush_scope.h +++ b/xlat/cacheflush_scope.h @@ -12,20 +12,58 @@ # else -static -const struct xlat cacheflush_scope[] = { +static const struct xlat_data cacheflush_scope_xdata[] = { #if defined(FLUSH_SCOPE_LINE) || (defined(HAVE_DECL_FLUSH_SCOPE_LINE) && HAVE_DECL_FLUSH_SCOPE_LINE) XLAT(FLUSH_SCOPE_LINE), + #define XLAT_VAL_0 ((unsigned) (FLUSH_SCOPE_LINE)) + #define XLAT_STR_0 STRINGIFY(FLUSH_SCOPE_LINE) #endif #if defined(FLUSH_SCOPE_PAGE) || (defined(HAVE_DECL_FLUSH_SCOPE_PAGE) && HAVE_DECL_FLUSH_SCOPE_PAGE) XLAT(FLUSH_SCOPE_PAGE), + #define XLAT_VAL_1 ((unsigned) (FLUSH_SCOPE_PAGE)) + #define XLAT_STR_1 STRINGIFY(FLUSH_SCOPE_PAGE) #endif #if defined(FLUSH_SCOPE_ALL) || (defined(HAVE_DECL_FLUSH_SCOPE_ALL) && HAVE_DECL_FLUSH_SCOPE_ALL) XLAT(FLUSH_SCOPE_ALL), + #define XLAT_VAL_2 ((unsigned) (FLUSH_SCOPE_ALL)) + #define XLAT_STR_2 STRINGIFY(FLUSH_SCOPE_ALL) #endif - XLAT_END }; +static +const struct xlat cacheflush_scope[1] = { { + .data = cacheflush_scope_xdata, + .size = ARRAY_SIZE(cacheflush_scope_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/caif_protocols.h b/xlat/caif_protocols.h index 5c193a12..dfa34406 100644 --- a/xlat/caif_protocols.h +++ b/xlat/caif_protocols.h @@ -54,17 +54,85 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat caif_protocols[] = { +static const struct xlat_data caif_protocols_xdata[] = { [CAIFPROTO_AT] = XLAT(CAIFPROTO_AT), + #define XLAT_VAL_0 ((unsigned) (CAIFPROTO_AT)) + #define XLAT_STR_0 STRINGIFY(CAIFPROTO_AT) [CAIFPROTO_DATAGRAM] = XLAT(CAIFPROTO_DATAGRAM), + #define XLAT_VAL_1 ((unsigned) (CAIFPROTO_DATAGRAM)) + #define XLAT_STR_1 STRINGIFY(CAIFPROTO_DATAGRAM) [CAIFPROTO_DATAGRAM_LOOP] = XLAT(CAIFPROTO_DATAGRAM_LOOP), + #define XLAT_VAL_2 ((unsigned) (CAIFPROTO_DATAGRAM_LOOP)) + #define XLAT_STR_2 STRINGIFY(CAIFPROTO_DATAGRAM_LOOP) [CAIFPROTO_UTIL] = XLAT(CAIFPROTO_UTIL), + #define XLAT_VAL_3 ((unsigned) (CAIFPROTO_UTIL)) + #define XLAT_STR_3 STRINGIFY(CAIFPROTO_UTIL) [CAIFPROTO_RFM] = XLAT(CAIFPROTO_RFM), + #define XLAT_VAL_4 ((unsigned) (CAIFPROTO_RFM)) + #define XLAT_STR_4 STRINGIFY(CAIFPROTO_RFM) [CAIFPROTO_DEBUG] = XLAT(CAIFPROTO_DEBUG), - XLAT_END + #define XLAT_VAL_5 ((unsigned) (CAIFPROTO_DEBUG)) + #define XLAT_STR_5 STRINGIFY(CAIFPROTO_DEBUG) }; +static +const struct xlat caif_protocols[1] = { { + .data = caif_protocols_xdata, + .size = ARRAY_SIZE(caif_protocols_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/can_protocols.h b/xlat/can_protocols.h index 3e207f7d..f88f4810 100644 --- a/xlat/can_protocols.h +++ b/xlat/can_protocols.h @@ -45,6 +45,13 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define CAN_ISOTP 6 #endif +#if defined(CAN_J1939) || (defined(HAVE_DECL_CAN_J1939) && HAVE_DECL_CAN_J1939) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((CAN_J1939) == (7), "CAN_J1939 != 7"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define CAN_J1939 7 +#endif #ifndef XLAT_MACROS_ONLY @@ -54,17 +61,96 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat can_protocols[] = { +static const struct xlat_data can_protocols_xdata[] = { [CAN_RAW] = XLAT(CAN_RAW), + #define XLAT_VAL_0 ((unsigned) (CAN_RAW)) + #define XLAT_STR_0 STRINGIFY(CAN_RAW) [CAN_BCM] = XLAT(CAN_BCM), + #define XLAT_VAL_1 ((unsigned) (CAN_BCM)) + #define XLAT_STR_1 STRINGIFY(CAN_BCM) [CAN_TP16] = XLAT(CAN_TP16), + #define XLAT_VAL_2 ((unsigned) (CAN_TP16)) + #define XLAT_STR_2 STRINGIFY(CAN_TP16) [CAN_TP20] = XLAT(CAN_TP20), + #define XLAT_VAL_3 ((unsigned) (CAN_TP20)) + #define XLAT_STR_3 STRINGIFY(CAN_TP20) [CAN_MCNET] = XLAT(CAN_MCNET), + #define XLAT_VAL_4 ((unsigned) (CAN_MCNET)) + #define XLAT_STR_4 STRINGIFY(CAN_MCNET) [CAN_ISOTP] = XLAT(CAN_ISOTP), - XLAT_END + #define XLAT_VAL_5 ((unsigned) (CAN_ISOTP)) + #define XLAT_STR_5 STRINGIFY(CAN_ISOTP) + [CAN_J1939] = XLAT(CAN_J1939), + #define XLAT_VAL_6 ((unsigned) (CAN_J1939)) + #define XLAT_STR_6 STRINGIFY(CAN_J1939) }; +static +const struct xlat can_protocols[1] = { { + .data = can_protocols_xdata, + .size = ARRAY_SIZE(can_protocols_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/can_protocols.in b/xlat/can_protocols.in index f74caa73..05a7ae61 100644 --- a/xlat/can_protocols.in +++ b/xlat/can_protocols.in @@ -5,3 +5,4 @@ CAN_TP16 3 CAN_TP20 4 CAN_MCNET 5 CAN_ISOTP 6 +CAN_J1939 7 diff --git a/xlat/cap.h b/xlat/cap.h index c8205f70..56b8de28 100644 --- a/xlat/cap.h +++ b/xlat/cap.h @@ -12,49 +12,470 @@ # else -static -const struct xlat cap[] = { +static const struct xlat_data cap_xdata[] = { XLAT(CAP_CHOWN), + #define XLAT_VAL_0 ((unsigned) (CAP_CHOWN)) + #define XLAT_STR_0 STRINGIFY(CAP_CHOWN) XLAT(CAP_DAC_OVERRIDE), + #define XLAT_VAL_1 ((unsigned) (CAP_DAC_OVERRIDE)) + #define XLAT_STR_1 STRINGIFY(CAP_DAC_OVERRIDE) XLAT(CAP_DAC_READ_SEARCH), + #define XLAT_VAL_2 ((unsigned) (CAP_DAC_READ_SEARCH)) + #define XLAT_STR_2 STRINGIFY(CAP_DAC_READ_SEARCH) XLAT(CAP_FOWNER), + #define XLAT_VAL_3 ((unsigned) (CAP_FOWNER)) + #define XLAT_STR_3 STRINGIFY(CAP_FOWNER) XLAT(CAP_FSETID), + #define XLAT_VAL_4 ((unsigned) (CAP_FSETID)) + #define XLAT_STR_4 STRINGIFY(CAP_FSETID) XLAT(CAP_KILL), + #define XLAT_VAL_5 ((unsigned) (CAP_KILL)) + #define XLAT_STR_5 STRINGIFY(CAP_KILL) XLAT(CAP_SETGID), + #define XLAT_VAL_6 ((unsigned) (CAP_SETGID)) + #define XLAT_STR_6 STRINGIFY(CAP_SETGID) XLAT(CAP_SETUID), + #define XLAT_VAL_7 ((unsigned) (CAP_SETUID)) + #define XLAT_STR_7 STRINGIFY(CAP_SETUID) XLAT(CAP_SETPCAP), + #define XLAT_VAL_8 ((unsigned) (CAP_SETPCAP)) + #define XLAT_STR_8 STRINGIFY(CAP_SETPCAP) XLAT(CAP_LINUX_IMMUTABLE), + #define XLAT_VAL_9 ((unsigned) (CAP_LINUX_IMMUTABLE)) + #define XLAT_STR_9 STRINGIFY(CAP_LINUX_IMMUTABLE) XLAT(CAP_NET_BIND_SERVICE), + #define XLAT_VAL_10 ((unsigned) (CAP_NET_BIND_SERVICE)) + #define XLAT_STR_10 STRINGIFY(CAP_NET_BIND_SERVICE) XLAT(CAP_NET_BROADCAST), + #define XLAT_VAL_11 ((unsigned) (CAP_NET_BROADCAST)) + #define XLAT_STR_11 STRINGIFY(CAP_NET_BROADCAST) XLAT(CAP_NET_ADMIN), + #define XLAT_VAL_12 ((unsigned) (CAP_NET_ADMIN)) + #define XLAT_STR_12 STRINGIFY(CAP_NET_ADMIN) XLAT(CAP_NET_RAW), + #define XLAT_VAL_13 ((unsigned) (CAP_NET_RAW)) + #define XLAT_STR_13 STRINGIFY(CAP_NET_RAW) XLAT(CAP_IPC_LOCK), + #define XLAT_VAL_14 ((unsigned) (CAP_IPC_LOCK)) + #define XLAT_STR_14 STRINGIFY(CAP_IPC_LOCK) XLAT(CAP_IPC_OWNER), + #define XLAT_VAL_15 ((unsigned) (CAP_IPC_OWNER)) + #define XLAT_STR_15 STRINGIFY(CAP_IPC_OWNER) XLAT(CAP_SYS_MODULE), + #define XLAT_VAL_16 ((unsigned) (CAP_SYS_MODULE)) + #define XLAT_STR_16 STRINGIFY(CAP_SYS_MODULE) XLAT(CAP_SYS_RAWIO), + #define XLAT_VAL_17 ((unsigned) (CAP_SYS_RAWIO)) + #define XLAT_STR_17 STRINGIFY(CAP_SYS_RAWIO) XLAT(CAP_SYS_CHROOT), + #define XLAT_VAL_18 ((unsigned) (CAP_SYS_CHROOT)) + #define XLAT_STR_18 STRINGIFY(CAP_SYS_CHROOT) XLAT(CAP_SYS_PTRACE), + #define XLAT_VAL_19 ((unsigned) (CAP_SYS_PTRACE)) + #define XLAT_STR_19 STRINGIFY(CAP_SYS_PTRACE) XLAT(CAP_SYS_PACCT), + #define XLAT_VAL_20 ((unsigned) (CAP_SYS_PACCT)) + #define XLAT_STR_20 STRINGIFY(CAP_SYS_PACCT) XLAT(CAP_SYS_ADMIN), + #define XLAT_VAL_21 ((unsigned) (CAP_SYS_ADMIN)) + #define XLAT_STR_21 STRINGIFY(CAP_SYS_ADMIN) XLAT(CAP_SYS_BOOT), + #define XLAT_VAL_22 ((unsigned) (CAP_SYS_BOOT)) + #define XLAT_STR_22 STRINGIFY(CAP_SYS_BOOT) XLAT(CAP_SYS_NICE), + #define XLAT_VAL_23 ((unsigned) (CAP_SYS_NICE)) + #define XLAT_STR_23 STRINGIFY(CAP_SYS_NICE) XLAT(CAP_SYS_RESOURCE), + #define XLAT_VAL_24 ((unsigned) (CAP_SYS_RESOURCE)) + #define XLAT_STR_24 STRINGIFY(CAP_SYS_RESOURCE) XLAT(CAP_SYS_TIME), + #define XLAT_VAL_25 ((unsigned) (CAP_SYS_TIME)) + #define XLAT_STR_25 STRINGIFY(CAP_SYS_TIME) XLAT(CAP_SYS_TTY_CONFIG), + #define XLAT_VAL_26 ((unsigned) (CAP_SYS_TTY_CONFIG)) + #define XLAT_STR_26 STRINGIFY(CAP_SYS_TTY_CONFIG) XLAT(CAP_MKNOD), + #define XLAT_VAL_27 ((unsigned) (CAP_MKNOD)) + #define XLAT_STR_27 STRINGIFY(CAP_MKNOD) XLAT(CAP_LEASE), + #define XLAT_VAL_28 ((unsigned) (CAP_LEASE)) + #define XLAT_STR_28 STRINGIFY(CAP_LEASE) XLAT(CAP_AUDIT_WRITE), + #define XLAT_VAL_29 ((unsigned) (CAP_AUDIT_WRITE)) + #define XLAT_STR_29 STRINGIFY(CAP_AUDIT_WRITE) XLAT(CAP_AUDIT_CONTROL), + #define XLAT_VAL_30 ((unsigned) (CAP_AUDIT_CONTROL)) + #define XLAT_STR_30 STRINGIFY(CAP_AUDIT_CONTROL) XLAT(CAP_SETFCAP), + #define XLAT_VAL_31 ((unsigned) (CAP_SETFCAP)) + #define XLAT_STR_31 STRINGIFY(CAP_SETFCAP) XLAT(CAP_MAC_OVERRIDE), + #define XLAT_VAL_32 ((unsigned) (CAP_MAC_OVERRIDE)) + #define XLAT_STR_32 STRINGIFY(CAP_MAC_OVERRIDE) XLAT(CAP_MAC_ADMIN), + #define XLAT_VAL_33 ((unsigned) (CAP_MAC_ADMIN)) + #define XLAT_STR_33 STRINGIFY(CAP_MAC_ADMIN) XLAT(CAP_SYSLOG), + #define XLAT_VAL_34 ((unsigned) (CAP_SYSLOG)) + #define XLAT_STR_34 STRINGIFY(CAP_SYSLOG) XLAT(CAP_WAKE_ALARM), + #define XLAT_VAL_35 ((unsigned) (CAP_WAKE_ALARM)) + #define XLAT_STR_35 STRINGIFY(CAP_WAKE_ALARM) XLAT(CAP_BLOCK_SUSPEND), + #define XLAT_VAL_36 ((unsigned) (CAP_BLOCK_SUSPEND)) + #define XLAT_STR_36 STRINGIFY(CAP_BLOCK_SUSPEND) XLAT(CAP_AUDIT_READ), - XLAT_END + #define XLAT_VAL_37 ((unsigned) (CAP_AUDIT_READ)) + #define XLAT_STR_37 STRINGIFY(CAP_AUDIT_READ) + XLAT(CAP_PERFMON), + #define XLAT_VAL_38 ((unsigned) (CAP_PERFMON)) + #define XLAT_STR_38 STRINGIFY(CAP_PERFMON) + XLAT(CAP_BPF), + #define XLAT_VAL_39 ((unsigned) (CAP_BPF)) + #define XLAT_STR_39 STRINGIFY(CAP_BPF) + XLAT(CAP_CHECKPOINT_RESTORE), + #define XLAT_VAL_40 ((unsigned) (CAP_CHECKPOINT_RESTORE)) + #define XLAT_STR_40 STRINGIFY(CAP_CHECKPOINT_RESTORE) }; +static +const struct xlat cap[1] = { { + .data = cap_xdata, + .size = ARRAY_SIZE(cap_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/cap.in b/xlat/cap.in index bbac8d31..5f4ba403 100644 --- a/xlat/cap.in +++ b/xlat/cap.in @@ -37,3 +37,6 @@ CAP_SYSLOG CAP_WAKE_ALARM CAP_BLOCK_SUSPEND CAP_AUDIT_READ +CAP_PERFMON +CAP_BPF +CAP_CHECKPOINT_RESTORE diff --git a/xlat/cap_mask0.h b/xlat/cap_mask0.h index 84d529f2..92434019 100644 --- a/xlat/cap_mask0.h +++ b/xlat/cap_mask0.h @@ -12,43 +12,371 @@ # else -static -const struct xlat cap_mask0[] = { +static const struct xlat_data cap_mask0_xdata[] = { XLAT_PAIR(1ULL< +CLOSE_RANGE_UNSHARE (1U << 1) diff --git a/xlat/close_range_flags.m4 b/xlat/close_range_flags.m4 new file mode 100644 index 00000000..bc1a9aad --- /dev/null +++ b/xlat/close_range_flags.m4 @@ -0,0 +1,7 @@ +dnl Generated by ./xlat/gen.sh from ./xlat/close_range_flags.in; do not edit. +AC_DEFUN([st_CHECK_ENUMS_close_range_flags],[ +AC_CHECK_DECLS(m4_normalize([ +CLOSE_RANGE_UNSHARE +]),,, [ +#include +])])]) diff --git a/xlat/cpuclocknames.h b/xlat/cpuclocknames.h index 93331c93..7fe50420 100644 --- a/xlat/cpuclocknames.h +++ b/xlat/cpuclocknames.h @@ -33,14 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat cpuclocknames[] = { +static const struct xlat_data cpuclocknames_xdata[] = { [CPUCLOCK_PROF] = XLAT(CPUCLOCK_PROF), + #define XLAT_VAL_0 ((unsigned) (CPUCLOCK_PROF)) + #define XLAT_STR_0 STRINGIFY(CPUCLOCK_PROF) [CPUCLOCK_VIRT] = XLAT(CPUCLOCK_VIRT), + #define XLAT_VAL_1 ((unsigned) (CPUCLOCK_VIRT)) + #define XLAT_STR_1 STRINGIFY(CPUCLOCK_VIRT) [CPUCLOCK_SCHED] = XLAT(CPUCLOCK_SCHED), - XLAT_END + #define XLAT_VAL_2 ((unsigned) (CPUCLOCK_SCHED)) + #define XLAT_STR_2 STRINGIFY(CPUCLOCK_SCHED) }; +static +const struct xlat cpuclocknames[1] = { { + .data = cpuclocknames_xdata, + .size = ARRAY_SIZE(cpuclocknames_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/crypto_msgs.h b/xlat/crypto_msgs.h new file mode 100644 index 00000000..31b916e6 --- /dev/null +++ b/xlat/crypto_msgs.h @@ -0,0 +1,138 @@ +/* Generated by ./xlat/gen.sh from ./xlat/crypto_msgs.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined(CRYPTO_MSG_NEWALG) || (defined(HAVE_DECL_CRYPTO_MSG_NEWALG) && HAVE_DECL_CRYPTO_MSG_NEWALG) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((CRYPTO_MSG_NEWALG) == (0x10), "CRYPTO_MSG_NEWALG != 0x10"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define CRYPTO_MSG_NEWALG 0x10 +#endif +#if defined(CRYPTO_MSG_DELALG) || (defined(HAVE_DECL_CRYPTO_MSG_DELALG) && HAVE_DECL_CRYPTO_MSG_DELALG) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((CRYPTO_MSG_DELALG) == (0x11), "CRYPTO_MSG_DELALG != 0x11"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define CRYPTO_MSG_DELALG 0x11 +#endif +#if defined(CRYPTO_MSG_UPDATEALG) || (defined(HAVE_DECL_CRYPTO_MSG_UPDATEALG) && HAVE_DECL_CRYPTO_MSG_UPDATEALG) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((CRYPTO_MSG_UPDATEALG) == (0x12), "CRYPTO_MSG_UPDATEALG != 0x12"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define CRYPTO_MSG_UPDATEALG 0x12 +#endif +#if defined(CRYPTO_MSG_GETALG) || (defined(HAVE_DECL_CRYPTO_MSG_GETALG) && HAVE_DECL_CRYPTO_MSG_GETALG) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((CRYPTO_MSG_GETALG) == (0x13), "CRYPTO_MSG_GETALG != 0x13"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define CRYPTO_MSG_GETALG 0x13 +#endif +#if defined(CRYPTO_MSG_DELRNG) || (defined(HAVE_DECL_CRYPTO_MSG_DELRNG) && HAVE_DECL_CRYPTO_MSG_DELRNG) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((CRYPTO_MSG_DELRNG) == (0x14), "CRYPTO_MSG_DELRNG != 0x14"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define CRYPTO_MSG_DELRNG 0x14 +#endif +#if defined(CRYPTO_MSG_GETSTAT) || (defined(HAVE_DECL_CRYPTO_MSG_GETSTAT) && HAVE_DECL_CRYPTO_MSG_GETSTAT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((CRYPTO_MSG_GETSTAT) == (0x15), "CRYPTO_MSG_GETSTAT != 0x15"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define CRYPTO_MSG_GETSTAT 0x15 +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat crypto_msgs in mpers mode + +# else + +static const struct xlat_data crypto_msgs_xdata[] = { + XLAT(CRYPTO_MSG_NEWALG), + #define XLAT_VAL_0 ((unsigned) (CRYPTO_MSG_NEWALG)) + #define XLAT_STR_0 STRINGIFY(CRYPTO_MSG_NEWALG) + XLAT(CRYPTO_MSG_DELALG), + #define XLAT_VAL_1 ((unsigned) (CRYPTO_MSG_DELALG)) + #define XLAT_STR_1 STRINGIFY(CRYPTO_MSG_DELALG) + XLAT(CRYPTO_MSG_UPDATEALG), + #define XLAT_VAL_2 ((unsigned) (CRYPTO_MSG_UPDATEALG)) + #define XLAT_STR_2 STRINGIFY(CRYPTO_MSG_UPDATEALG) + XLAT(CRYPTO_MSG_GETALG), + #define XLAT_VAL_3 ((unsigned) (CRYPTO_MSG_GETALG)) + #define XLAT_STR_3 STRINGIFY(CRYPTO_MSG_GETALG) + XLAT(CRYPTO_MSG_DELRNG), + #define XLAT_VAL_4 ((unsigned) (CRYPTO_MSG_DELRNG)) + #define XLAT_STR_4 STRINGIFY(CRYPTO_MSG_DELRNG) + XLAT(CRYPTO_MSG_GETSTAT), + #define XLAT_VAL_5 ((unsigned) (CRYPTO_MSG_GETSTAT)) + #define XLAT_STR_5 STRINGIFY(CRYPTO_MSG_GETSTAT) +}; +static +const struct xlat crypto_msgs[1] = { { + .data = crypto_msgs_xdata, + .size = ARRAY_SIZE(crypto_msgs_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/crypto_msgs.in b/xlat/crypto_msgs.in new file mode 100644 index 00000000..89426a9a --- /dev/null +++ b/xlat/crypto_msgs.in @@ -0,0 +1,7 @@ +#sorted +CRYPTO_MSG_NEWALG 0x10 +CRYPTO_MSG_DELALG 0x11 +CRYPTO_MSG_UPDATEALG 0x12 +CRYPTO_MSG_GETALG 0x13 +CRYPTO_MSG_DELRNG 0x14 +CRYPTO_MSG_GETSTAT 0x15 diff --git a/xlat/crypto_nl_attrs.h b/xlat/crypto_nl_attrs.h index 46fbcb8e..c81b18bf 100644 --- a/xlat/crypto_nl_attrs.h +++ b/xlat/crypto_nl_attrs.h @@ -96,23 +96,151 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat crypto_nl_attrs[] = { - XLAT(CRYPTOCFGA_UNSPEC), - XLAT(CRYPTOCFGA_PRIORITY_VAL), - XLAT(CRYPTOCFGA_REPORT_LARVAL), - XLAT(CRYPTOCFGA_REPORT_HASH), - XLAT(CRYPTOCFGA_REPORT_BLKCIPHER), - XLAT(CRYPTOCFGA_REPORT_AEAD), - XLAT(CRYPTOCFGA_REPORT_COMPRESS), - XLAT(CRYPTOCFGA_REPORT_RNG), - XLAT(CRYPTOCFGA_REPORT_CIPHER), - XLAT(CRYPTOCFGA_REPORT_AKCIPHER), - XLAT(CRYPTOCFGA_REPORT_KPP), - XLAT(CRYPTOCFGA_REPORT_ACOMP), - XLAT_END +static const struct xlat_data crypto_nl_attrs_xdata[] = { + [CRYPTOCFGA_UNSPEC] = XLAT(CRYPTOCFGA_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (CRYPTOCFGA_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(CRYPTOCFGA_UNSPEC) + [CRYPTOCFGA_PRIORITY_VAL] = XLAT(CRYPTOCFGA_PRIORITY_VAL), + #define XLAT_VAL_1 ((unsigned) (CRYPTOCFGA_PRIORITY_VAL)) + #define XLAT_STR_1 STRINGIFY(CRYPTOCFGA_PRIORITY_VAL) + [CRYPTOCFGA_REPORT_LARVAL] = XLAT(CRYPTOCFGA_REPORT_LARVAL), + #define XLAT_VAL_2 ((unsigned) (CRYPTOCFGA_REPORT_LARVAL)) + #define XLAT_STR_2 STRINGIFY(CRYPTOCFGA_REPORT_LARVAL) + [CRYPTOCFGA_REPORT_HASH] = XLAT(CRYPTOCFGA_REPORT_HASH), + #define XLAT_VAL_3 ((unsigned) (CRYPTOCFGA_REPORT_HASH)) + #define XLAT_STR_3 STRINGIFY(CRYPTOCFGA_REPORT_HASH) + [CRYPTOCFGA_REPORT_BLKCIPHER] = XLAT(CRYPTOCFGA_REPORT_BLKCIPHER), + #define XLAT_VAL_4 ((unsigned) (CRYPTOCFGA_REPORT_BLKCIPHER)) + #define XLAT_STR_4 STRINGIFY(CRYPTOCFGA_REPORT_BLKCIPHER) + [CRYPTOCFGA_REPORT_AEAD] = XLAT(CRYPTOCFGA_REPORT_AEAD), + #define XLAT_VAL_5 ((unsigned) (CRYPTOCFGA_REPORT_AEAD)) + #define XLAT_STR_5 STRINGIFY(CRYPTOCFGA_REPORT_AEAD) + [CRYPTOCFGA_REPORT_COMPRESS] = XLAT(CRYPTOCFGA_REPORT_COMPRESS), + #define XLAT_VAL_6 ((unsigned) (CRYPTOCFGA_REPORT_COMPRESS)) + #define XLAT_STR_6 STRINGIFY(CRYPTOCFGA_REPORT_COMPRESS) + [CRYPTOCFGA_REPORT_RNG] = XLAT(CRYPTOCFGA_REPORT_RNG), + #define XLAT_VAL_7 ((unsigned) (CRYPTOCFGA_REPORT_RNG)) + #define XLAT_STR_7 STRINGIFY(CRYPTOCFGA_REPORT_RNG) + [CRYPTOCFGA_REPORT_CIPHER] = XLAT(CRYPTOCFGA_REPORT_CIPHER), + #define XLAT_VAL_8 ((unsigned) (CRYPTOCFGA_REPORT_CIPHER)) + #define XLAT_STR_8 STRINGIFY(CRYPTOCFGA_REPORT_CIPHER) + [CRYPTOCFGA_REPORT_AKCIPHER] = XLAT(CRYPTOCFGA_REPORT_AKCIPHER), + #define XLAT_VAL_9 ((unsigned) (CRYPTOCFGA_REPORT_AKCIPHER)) + #define XLAT_STR_9 STRINGIFY(CRYPTOCFGA_REPORT_AKCIPHER) + [CRYPTOCFGA_REPORT_KPP] = XLAT(CRYPTOCFGA_REPORT_KPP), + #define XLAT_VAL_10 ((unsigned) (CRYPTOCFGA_REPORT_KPP)) + #define XLAT_STR_10 STRINGIFY(CRYPTOCFGA_REPORT_KPP) + [CRYPTOCFGA_REPORT_ACOMP] = XLAT(CRYPTOCFGA_REPORT_ACOMP), + #define XLAT_VAL_11 ((unsigned) (CRYPTOCFGA_REPORT_ACOMP)) + #define XLAT_STR_11 STRINGIFY(CRYPTOCFGA_REPORT_ACOMP) }; +static +const struct xlat crypto_nl_attrs[1] = { { + .data = crypto_nl_attrs_xdata, + .size = ARRAY_SIZE(crypto_nl_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/crypto_nl_attrs.in b/xlat/crypto_nl_attrs.in index 02b36628..7ec32073 100644 --- a/xlat/crypto_nl_attrs.in +++ b/xlat/crypto_nl_attrs.in @@ -1,3 +1,4 @@ +#value_indexed CRYPTOCFGA_UNSPEC 0 CRYPTOCFGA_PRIORITY_VAL 1 CRYPTOCFGA_REPORT_LARVAL 2 diff --git a/xlat/dcb_commands.h b/xlat/dcb_commands.h index 768dbc13..74c98812 100644 --- a/xlat/dcb_commands.h +++ b/xlat/dcb_commands.h @@ -208,39 +208,327 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat dcb_commands[] = { - XLAT(DCB_CMD_UNDEFINED), - XLAT(DCB_CMD_GSTATE), - XLAT(DCB_CMD_SSTATE), - XLAT(DCB_CMD_PGTX_GCFG), - XLAT(DCB_CMD_PGTX_SCFG), - XLAT(DCB_CMD_PGRX_GCFG), - XLAT(DCB_CMD_PGRX_SCFG), - XLAT(DCB_CMD_PFC_GCFG), - XLAT(DCB_CMD_PFC_SCFG), - XLAT(DCB_CMD_SET_ALL), - XLAT(DCB_CMD_GPERM_HWADDR), - XLAT(DCB_CMD_GCAP), - XLAT(DCB_CMD_GNUMTCS), - XLAT(DCB_CMD_SNUMTCS), - XLAT(DCB_CMD_PFC_GSTATE), - XLAT(DCB_CMD_PFC_SSTATE), - XLAT(DCB_CMD_BCN_GCFG), - XLAT(DCB_CMD_BCN_SCFG), - XLAT(DCB_CMD_GAPP), - XLAT(DCB_CMD_SAPP), - XLAT(DCB_CMD_IEEE_SET), - XLAT(DCB_CMD_IEEE_GET), - XLAT(DCB_CMD_GDCBX), - XLAT(DCB_CMD_SDCBX), - XLAT(DCB_CMD_GFEATCFG), - XLAT(DCB_CMD_SFEATCFG), - XLAT(DCB_CMD_CEE_GET), - XLAT(DCB_CMD_IEEE_DEL), - XLAT_END +static const struct xlat_data dcb_commands_xdata[] = { + [DCB_CMD_UNDEFINED] = XLAT(DCB_CMD_UNDEFINED), + #define XLAT_VAL_0 ((unsigned) (DCB_CMD_UNDEFINED)) + #define XLAT_STR_0 STRINGIFY(DCB_CMD_UNDEFINED) + [DCB_CMD_GSTATE] = XLAT(DCB_CMD_GSTATE), + #define XLAT_VAL_1 ((unsigned) (DCB_CMD_GSTATE)) + #define XLAT_STR_1 STRINGIFY(DCB_CMD_GSTATE) + [DCB_CMD_SSTATE] = XLAT(DCB_CMD_SSTATE), + #define XLAT_VAL_2 ((unsigned) (DCB_CMD_SSTATE)) + #define XLAT_STR_2 STRINGIFY(DCB_CMD_SSTATE) + [DCB_CMD_PGTX_GCFG] = XLAT(DCB_CMD_PGTX_GCFG), + #define XLAT_VAL_3 ((unsigned) (DCB_CMD_PGTX_GCFG)) + #define XLAT_STR_3 STRINGIFY(DCB_CMD_PGTX_GCFG) + [DCB_CMD_PGTX_SCFG] = XLAT(DCB_CMD_PGTX_SCFG), + #define XLAT_VAL_4 ((unsigned) (DCB_CMD_PGTX_SCFG)) + #define XLAT_STR_4 STRINGIFY(DCB_CMD_PGTX_SCFG) + [DCB_CMD_PGRX_GCFG] = XLAT(DCB_CMD_PGRX_GCFG), + #define XLAT_VAL_5 ((unsigned) (DCB_CMD_PGRX_GCFG)) + #define XLAT_STR_5 STRINGIFY(DCB_CMD_PGRX_GCFG) + [DCB_CMD_PGRX_SCFG] = XLAT(DCB_CMD_PGRX_SCFG), + #define XLAT_VAL_6 ((unsigned) (DCB_CMD_PGRX_SCFG)) + #define XLAT_STR_6 STRINGIFY(DCB_CMD_PGRX_SCFG) + [DCB_CMD_PFC_GCFG] = XLAT(DCB_CMD_PFC_GCFG), + #define XLAT_VAL_7 ((unsigned) (DCB_CMD_PFC_GCFG)) + #define XLAT_STR_7 STRINGIFY(DCB_CMD_PFC_GCFG) + [DCB_CMD_PFC_SCFG] = XLAT(DCB_CMD_PFC_SCFG), + #define XLAT_VAL_8 ((unsigned) (DCB_CMD_PFC_SCFG)) + #define XLAT_STR_8 STRINGIFY(DCB_CMD_PFC_SCFG) + [DCB_CMD_SET_ALL] = XLAT(DCB_CMD_SET_ALL), + #define XLAT_VAL_9 ((unsigned) (DCB_CMD_SET_ALL)) + #define XLAT_STR_9 STRINGIFY(DCB_CMD_SET_ALL) + [DCB_CMD_GPERM_HWADDR] = XLAT(DCB_CMD_GPERM_HWADDR), + #define XLAT_VAL_10 ((unsigned) (DCB_CMD_GPERM_HWADDR)) + #define XLAT_STR_10 STRINGIFY(DCB_CMD_GPERM_HWADDR) + [DCB_CMD_GCAP] = XLAT(DCB_CMD_GCAP), + #define XLAT_VAL_11 ((unsigned) (DCB_CMD_GCAP)) + #define XLAT_STR_11 STRINGIFY(DCB_CMD_GCAP) + [DCB_CMD_GNUMTCS] = XLAT(DCB_CMD_GNUMTCS), + #define XLAT_VAL_12 ((unsigned) (DCB_CMD_GNUMTCS)) + #define XLAT_STR_12 STRINGIFY(DCB_CMD_GNUMTCS) + [DCB_CMD_SNUMTCS] = XLAT(DCB_CMD_SNUMTCS), + #define XLAT_VAL_13 ((unsigned) (DCB_CMD_SNUMTCS)) + #define XLAT_STR_13 STRINGIFY(DCB_CMD_SNUMTCS) + [DCB_CMD_PFC_GSTATE] = XLAT(DCB_CMD_PFC_GSTATE), + #define XLAT_VAL_14 ((unsigned) (DCB_CMD_PFC_GSTATE)) + #define XLAT_STR_14 STRINGIFY(DCB_CMD_PFC_GSTATE) + [DCB_CMD_PFC_SSTATE] = XLAT(DCB_CMD_PFC_SSTATE), + #define XLAT_VAL_15 ((unsigned) (DCB_CMD_PFC_SSTATE)) + #define XLAT_STR_15 STRINGIFY(DCB_CMD_PFC_SSTATE) + [DCB_CMD_BCN_GCFG] = XLAT(DCB_CMD_BCN_GCFG), + #define XLAT_VAL_16 ((unsigned) (DCB_CMD_BCN_GCFG)) + #define XLAT_STR_16 STRINGIFY(DCB_CMD_BCN_GCFG) + [DCB_CMD_BCN_SCFG] = XLAT(DCB_CMD_BCN_SCFG), + #define XLAT_VAL_17 ((unsigned) (DCB_CMD_BCN_SCFG)) + #define XLAT_STR_17 STRINGIFY(DCB_CMD_BCN_SCFG) + [DCB_CMD_GAPP] = XLAT(DCB_CMD_GAPP), + #define XLAT_VAL_18 ((unsigned) (DCB_CMD_GAPP)) + #define XLAT_STR_18 STRINGIFY(DCB_CMD_GAPP) + [DCB_CMD_SAPP] = XLAT(DCB_CMD_SAPP), + #define XLAT_VAL_19 ((unsigned) (DCB_CMD_SAPP)) + #define XLAT_STR_19 STRINGIFY(DCB_CMD_SAPP) + [DCB_CMD_IEEE_SET] = XLAT(DCB_CMD_IEEE_SET), + #define XLAT_VAL_20 ((unsigned) (DCB_CMD_IEEE_SET)) + #define XLAT_STR_20 STRINGIFY(DCB_CMD_IEEE_SET) + [DCB_CMD_IEEE_GET] = XLAT(DCB_CMD_IEEE_GET), + #define XLAT_VAL_21 ((unsigned) (DCB_CMD_IEEE_GET)) + #define XLAT_STR_21 STRINGIFY(DCB_CMD_IEEE_GET) + [DCB_CMD_GDCBX] = XLAT(DCB_CMD_GDCBX), + #define XLAT_VAL_22 ((unsigned) (DCB_CMD_GDCBX)) + #define XLAT_STR_22 STRINGIFY(DCB_CMD_GDCBX) + [DCB_CMD_SDCBX] = XLAT(DCB_CMD_SDCBX), + #define XLAT_VAL_23 ((unsigned) (DCB_CMD_SDCBX)) + #define XLAT_STR_23 STRINGIFY(DCB_CMD_SDCBX) + [DCB_CMD_GFEATCFG] = XLAT(DCB_CMD_GFEATCFG), + #define XLAT_VAL_24 ((unsigned) (DCB_CMD_GFEATCFG)) + #define XLAT_STR_24 STRINGIFY(DCB_CMD_GFEATCFG) + [DCB_CMD_SFEATCFG] = XLAT(DCB_CMD_SFEATCFG), + #define XLAT_VAL_25 ((unsigned) (DCB_CMD_SFEATCFG)) + #define XLAT_STR_25 STRINGIFY(DCB_CMD_SFEATCFG) + [DCB_CMD_CEE_GET] = XLAT(DCB_CMD_CEE_GET), + #define XLAT_VAL_26 ((unsigned) (DCB_CMD_CEE_GET)) + #define XLAT_STR_26 STRINGIFY(DCB_CMD_CEE_GET) + [DCB_CMD_IEEE_DEL] = XLAT(DCB_CMD_IEEE_DEL), + #define XLAT_VAL_27 ((unsigned) (DCB_CMD_IEEE_DEL)) + #define XLAT_STR_27 STRINGIFY(DCB_CMD_IEEE_DEL) }; +static +const struct xlat dcb_commands[1] = { { + .data = dcb_commands_xdata, + .size = ARRAY_SIZE(dcb_commands_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/dcb_commands.in b/xlat/dcb_commands.in index 6a5e6133..9b3f5c3e 100644 --- a/xlat/dcb_commands.in +++ b/xlat/dcb_commands.in @@ -1,3 +1,4 @@ +#value_indexed DCB_CMD_UNDEFINED 0 DCB_CMD_GSTATE 1 DCB_CMD_SSTATE 2 diff --git a/xlat/delete_module_flags.h b/xlat/delete_module_flags.h index 8c09810a..59593eaf 100644 --- a/xlat/delete_module_flags.h +++ b/xlat/delete_module_flags.h @@ -12,17 +12,45 @@ # else -static -const struct xlat delete_module_flags[] = { +static const struct xlat_data delete_module_flags_xdata[] = { #if defined(O_NONBLOCK) || (defined(HAVE_DECL_O_NONBLOCK) && HAVE_DECL_O_NONBLOCK) XLAT(O_NONBLOCK), + #define XLAT_VAL_0 ((unsigned) (O_NONBLOCK)) + #define XLAT_STR_0 STRINGIFY(O_NONBLOCK) #endif #if defined(O_TRUNC) || (defined(HAVE_DECL_O_TRUNC) && HAVE_DECL_O_TRUNC) XLAT(O_TRUNC), + #define XLAT_VAL_1 ((unsigned) (O_TRUNC)) + #define XLAT_STR_1 STRINGIFY(O_TRUNC) #endif - XLAT_END }; - +static +const struct xlat delete_module_flags[1] = { { + .data = delete_module_flags_xdata, + .size = ARRAY_SIZE(delete_module_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/dirent_types.h b/xlat/dirent_types.h index 0d21f501..eb0a40cc 100644 --- a/xlat/dirent_types.h +++ b/xlat/dirent_types.h @@ -8,37 +8,135 @@ # ifndef IN_MPERS -const struct xlat dirent_types[] = { +static const struct xlat_data dirent_types_xdata[] = { #if defined(DT_UNKNOWN) || (defined(HAVE_DECL_DT_UNKNOWN) && HAVE_DECL_DT_UNKNOWN) XLAT(DT_UNKNOWN), + #define XLAT_VAL_0 ((unsigned) (DT_UNKNOWN)) + #define XLAT_STR_0 STRINGIFY(DT_UNKNOWN) #endif #if defined(DT_FIFO) || (defined(HAVE_DECL_DT_FIFO) && HAVE_DECL_DT_FIFO) XLAT(DT_FIFO), + #define XLAT_VAL_1 ((unsigned) (DT_FIFO)) + #define XLAT_STR_1 STRINGIFY(DT_FIFO) #endif #if defined(DT_CHR) || (defined(HAVE_DECL_DT_CHR) && HAVE_DECL_DT_CHR) XLAT(DT_CHR), + #define XLAT_VAL_2 ((unsigned) (DT_CHR)) + #define XLAT_STR_2 STRINGIFY(DT_CHR) #endif #if defined(DT_DIR) || (defined(HAVE_DECL_DT_DIR) && HAVE_DECL_DT_DIR) XLAT(DT_DIR), + #define XLAT_VAL_3 ((unsigned) (DT_DIR)) + #define XLAT_STR_3 STRINGIFY(DT_DIR) #endif #if defined(DT_BLK) || (defined(HAVE_DECL_DT_BLK) && HAVE_DECL_DT_BLK) XLAT(DT_BLK), + #define XLAT_VAL_4 ((unsigned) (DT_BLK)) + #define XLAT_STR_4 STRINGIFY(DT_BLK) #endif #if defined(DT_REG) || (defined(HAVE_DECL_DT_REG) && HAVE_DECL_DT_REG) XLAT(DT_REG), + #define XLAT_VAL_5 ((unsigned) (DT_REG)) + #define XLAT_STR_5 STRINGIFY(DT_REG) #endif #if defined(DT_LNK) || (defined(HAVE_DECL_DT_LNK) && HAVE_DECL_DT_LNK) XLAT(DT_LNK), + #define XLAT_VAL_6 ((unsigned) (DT_LNK)) + #define XLAT_STR_6 STRINGIFY(DT_LNK) #endif #if defined(DT_SOCK) || (defined(HAVE_DECL_DT_SOCK) && HAVE_DECL_DT_SOCK) XLAT(DT_SOCK), + #define XLAT_VAL_7 ((unsigned) (DT_SOCK)) + #define XLAT_STR_7 STRINGIFY(DT_SOCK) #endif #if defined(DT_WHT) || (defined(HAVE_DECL_DT_WHT) && HAVE_DECL_DT_WHT) XLAT(DT_WHT), + #define XLAT_VAL_8 ((unsigned) (DT_WHT)) + #define XLAT_STR_8 STRINGIFY(DT_WHT) #endif - XLAT_END }; +const struct xlat dirent_types[1] = { { + .data = dirent_types_xdata, + .size = ARRAY_SIZE(dirent_types_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/dm_flags.h b/xlat/dm_flags.h index 88b508cb..610c0d62 100644 --- a/xlat/dm_flags.h +++ b/xlat/dm_flags.h @@ -138,30 +138,218 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat dm_flags[] = { +static const struct xlat_data dm_flags_xdata[] = { XLAT(DM_READONLY_FLAG), + #define XLAT_VAL_0 ((unsigned) (DM_READONLY_FLAG)) + #define XLAT_STR_0 STRINGIFY(DM_READONLY_FLAG) XLAT(DM_SUSPEND_FLAG), + #define XLAT_VAL_1 ((unsigned) (DM_SUSPEND_FLAG)) + #define XLAT_STR_1 STRINGIFY(DM_SUSPEND_FLAG) XLAT(DM_EXISTS_FLAG), + #define XLAT_VAL_2 ((unsigned) (DM_EXISTS_FLAG)) + #define XLAT_STR_2 STRINGIFY(DM_EXISTS_FLAG) XLAT(DM_PERSISTENT_DEV_FLAG), + #define XLAT_VAL_3 ((unsigned) (DM_PERSISTENT_DEV_FLAG)) + #define XLAT_STR_3 STRINGIFY(DM_PERSISTENT_DEV_FLAG) XLAT(DM_STATUS_TABLE_FLAG), + #define XLAT_VAL_4 ((unsigned) (DM_STATUS_TABLE_FLAG)) + #define XLAT_STR_4 STRINGIFY(DM_STATUS_TABLE_FLAG) XLAT(DM_ACTIVE_PRESENT_FLAG), + #define XLAT_VAL_5 ((unsigned) (DM_ACTIVE_PRESENT_FLAG)) + #define XLAT_STR_5 STRINGIFY(DM_ACTIVE_PRESENT_FLAG) XLAT(DM_INACTIVE_PRESENT_FLAG), + #define XLAT_VAL_6 ((unsigned) (DM_INACTIVE_PRESENT_FLAG)) + #define XLAT_STR_6 STRINGIFY(DM_INACTIVE_PRESENT_FLAG) XLAT(DM_BUFFER_FULL_FLAG), + #define XLAT_VAL_7 ((unsigned) (DM_BUFFER_FULL_FLAG)) + #define XLAT_STR_7 STRINGIFY(DM_BUFFER_FULL_FLAG) XLAT(DM_SKIP_BDGET_FLAG), + #define XLAT_VAL_8 ((unsigned) (DM_SKIP_BDGET_FLAG)) + #define XLAT_STR_8 STRINGIFY(DM_SKIP_BDGET_FLAG) XLAT(DM_SKIP_LOCKFS_FLAG), + #define XLAT_VAL_9 ((unsigned) (DM_SKIP_LOCKFS_FLAG)) + #define XLAT_STR_9 STRINGIFY(DM_SKIP_LOCKFS_FLAG) XLAT(DM_NOFLUSH_FLAG), + #define XLAT_VAL_10 ((unsigned) (DM_NOFLUSH_FLAG)) + #define XLAT_STR_10 STRINGIFY(DM_NOFLUSH_FLAG) XLAT(DM_QUERY_INACTIVE_TABLE_FLAG), + #define XLAT_VAL_11 ((unsigned) (DM_QUERY_INACTIVE_TABLE_FLAG)) + #define XLAT_STR_11 STRINGIFY(DM_QUERY_INACTIVE_TABLE_FLAG) XLAT(DM_UEVENT_GENERATED_FLAG), + #define XLAT_VAL_12 ((unsigned) (DM_UEVENT_GENERATED_FLAG)) + #define XLAT_STR_12 STRINGIFY(DM_UEVENT_GENERATED_FLAG) XLAT(DM_UUID_FLAG), + #define XLAT_VAL_13 ((unsigned) (DM_UUID_FLAG)) + #define XLAT_STR_13 STRINGIFY(DM_UUID_FLAG) XLAT(DM_SECURE_DATA_FLAG), + #define XLAT_VAL_14 ((unsigned) (DM_SECURE_DATA_FLAG)) + #define XLAT_STR_14 STRINGIFY(DM_SECURE_DATA_FLAG) XLAT(DM_DATA_OUT_FLAG), + #define XLAT_VAL_15 ((unsigned) (DM_DATA_OUT_FLAG)) + #define XLAT_STR_15 STRINGIFY(DM_DATA_OUT_FLAG) XLAT(DM_DEFERRED_REMOVE), + #define XLAT_VAL_16 ((unsigned) (DM_DEFERRED_REMOVE)) + #define XLAT_STR_16 STRINGIFY(DM_DEFERRED_REMOVE) XLAT(DM_INTERNAL_SUSPEND_FLAG), - XLAT_END + #define XLAT_VAL_17 ((unsigned) (DM_INTERNAL_SUSPEND_FLAG)) + #define XLAT_STR_17 STRINGIFY(DM_INTERNAL_SUSPEND_FLAG) }; +static +const struct xlat dm_flags[1] = { { + .data = dm_flags_xdata, + .size = ARRAY_SIZE(dm_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/ebpf_class.h b/xlat/ebpf_class.h index f8d5ac43..0e113cfb 100644 --- a/xlat/ebpf_class.h +++ b/xlat/ebpf_class.h @@ -68,19 +68,107 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat ebpf_class[] = { +static const struct xlat_data ebpf_class_xdata[] = { [BPF_LD] = XLAT(BPF_LD), + #define XLAT_VAL_0 ((unsigned) (BPF_LD)) + #define XLAT_STR_0 STRINGIFY(BPF_LD) [BPF_LDX] = XLAT(BPF_LDX), + #define XLAT_VAL_1 ((unsigned) (BPF_LDX)) + #define XLAT_STR_1 STRINGIFY(BPF_LDX) [BPF_ST] = XLAT(BPF_ST), + #define XLAT_VAL_2 ((unsigned) (BPF_ST)) + #define XLAT_STR_2 STRINGIFY(BPF_ST) [BPF_STX] = XLAT(BPF_STX), + #define XLAT_VAL_3 ((unsigned) (BPF_STX)) + #define XLAT_STR_3 STRINGIFY(BPF_STX) [BPF_ALU] = XLAT(BPF_ALU), + #define XLAT_VAL_4 ((unsigned) (BPF_ALU)) + #define XLAT_STR_4 STRINGIFY(BPF_ALU) [BPF_JMP] = XLAT(BPF_JMP), + #define XLAT_VAL_5 ((unsigned) (BPF_JMP)) + #define XLAT_STR_5 STRINGIFY(BPF_JMP) [BPF_JMP32] = XLAT(BPF_JMP32), + #define XLAT_VAL_6 ((unsigned) (BPF_JMP32)) + #define XLAT_STR_6 STRINGIFY(BPF_JMP32) [BPF_ALU64] = XLAT(BPF_ALU64), - XLAT_END + #define XLAT_VAL_7 ((unsigned) (BPF_ALU64)) + #define XLAT_STR_7 STRINGIFY(BPF_ALU64) }; +static +const struct xlat ebpf_class[1] = { { + .data = ebpf_class_xdata, + .size = ARRAY_SIZE(ebpf_class_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/ebpf_mode.h b/xlat/ebpf_mode.h index 5fddcfb6..a587d670 100644 --- a/xlat/ebpf_mode.h +++ b/xlat/ebpf_mode.h @@ -47,16 +47,74 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat ebpf_mode[] = { +static const struct xlat_data ebpf_mode_xdata[] = { XLAT(BPF_IMM), + #define XLAT_VAL_0 ((unsigned) (BPF_IMM)) + #define XLAT_STR_0 STRINGIFY(BPF_IMM) XLAT(BPF_ABS), + #define XLAT_VAL_1 ((unsigned) (BPF_ABS)) + #define XLAT_STR_1 STRINGIFY(BPF_ABS) XLAT(BPF_IND), + #define XLAT_VAL_2 ((unsigned) (BPF_IND)) + #define XLAT_STR_2 STRINGIFY(BPF_IND) XLAT(BPF_MEM), + #define XLAT_VAL_3 ((unsigned) (BPF_MEM)) + #define XLAT_STR_3 STRINGIFY(BPF_MEM) XLAT(BPF_XADD), - XLAT_END + #define XLAT_VAL_4 ((unsigned) (BPF_XADD)) + #define XLAT_STR_4 STRINGIFY(BPF_XADD) }; +static +const struct xlat ebpf_mode[1] = { { + .data = ebpf_mode_xdata, + .size = ARRAY_SIZE(ebpf_mode_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/ebpf_op_alu.h b/xlat/ebpf_op_alu.h index 2a5151c3..264d0cba 100644 --- a/xlat/ebpf_op_alu.h +++ b/xlat/ebpf_op_alu.h @@ -33,14 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat ebpf_op_alu[] = { +static const struct xlat_data ebpf_op_alu_xdata[] = { XLAT(BPF_MOV), + #define XLAT_VAL_0 ((unsigned) (BPF_MOV)) + #define XLAT_STR_0 STRINGIFY(BPF_MOV) XLAT(BPF_ARSH), + #define XLAT_VAL_1 ((unsigned) (BPF_ARSH)) + #define XLAT_STR_1 STRINGIFY(BPF_ARSH) XLAT(BPF_END), - XLAT_END + #define XLAT_VAL_2 ((unsigned) (BPF_END)) + #define XLAT_STR_2 STRINGIFY(BPF_END) }; +static +const struct xlat ebpf_op_alu[1] = { { + .data = ebpf_op_alu_xdata, + .size = ARRAY_SIZE(ebpf_op_alu_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/ebpf_op_jmp.h b/xlat/ebpf_op_jmp.h index d1feb21c..543893b0 100644 --- a/xlat/ebpf_op_jmp.h +++ b/xlat/ebpf_op_jmp.h @@ -75,20 +75,118 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat ebpf_op_jmp[] = { +static const struct xlat_data ebpf_op_jmp_xdata[] = { XLAT(BPF_JNE), + #define XLAT_VAL_0 ((unsigned) (BPF_JNE)) + #define XLAT_STR_0 STRINGIFY(BPF_JNE) XLAT(BPF_JSGT), + #define XLAT_VAL_1 ((unsigned) (BPF_JSGT)) + #define XLAT_STR_1 STRINGIFY(BPF_JSGT) XLAT(BPF_JSGE), + #define XLAT_VAL_2 ((unsigned) (BPF_JSGE)) + #define XLAT_STR_2 STRINGIFY(BPF_JSGE) XLAT(BPF_CALL), + #define XLAT_VAL_3 ((unsigned) (BPF_CALL)) + #define XLAT_STR_3 STRINGIFY(BPF_CALL) XLAT(BPF_EXIT), + #define XLAT_VAL_4 ((unsigned) (BPF_EXIT)) + #define XLAT_STR_4 STRINGIFY(BPF_EXIT) XLAT(BPF_JLT), + #define XLAT_VAL_5 ((unsigned) (BPF_JLT)) + #define XLAT_STR_5 STRINGIFY(BPF_JLT) XLAT(BPF_JLE), + #define XLAT_VAL_6 ((unsigned) (BPF_JLE)) + #define XLAT_STR_6 STRINGIFY(BPF_JLE) XLAT(BPF_JSLT), + #define XLAT_VAL_7 ((unsigned) (BPF_JSLT)) + #define XLAT_STR_7 STRINGIFY(BPF_JSLT) XLAT(BPF_JSLE), - XLAT_END + #define XLAT_VAL_8 ((unsigned) (BPF_JSLE)) + #define XLAT_STR_8 STRINGIFY(BPF_JSLE) }; +static +const struct xlat ebpf_op_jmp[1] = { { + .data = ebpf_op_jmp_xdata, + .size = ARRAY_SIZE(ebpf_op_jmp_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/ebpf_regs.h b/xlat/ebpf_regs.h index 67985169..f6321496 100644 --- a/xlat/ebpf_regs.h +++ b/xlat/ebpf_regs.h @@ -89,22 +89,140 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat ebpf_regs[] = { +static const struct xlat_data ebpf_regs_xdata[] = { [BPF_REG_0] = XLAT(BPF_REG_0), + #define XLAT_VAL_0 ((unsigned) (BPF_REG_0)) + #define XLAT_STR_0 STRINGIFY(BPF_REG_0) [BPF_REG_1] = XLAT(BPF_REG_1), + #define XLAT_VAL_1 ((unsigned) (BPF_REG_1)) + #define XLAT_STR_1 STRINGIFY(BPF_REG_1) [BPF_REG_2] = XLAT(BPF_REG_2), + #define XLAT_VAL_2 ((unsigned) (BPF_REG_2)) + #define XLAT_STR_2 STRINGIFY(BPF_REG_2) [BPF_REG_3] = XLAT(BPF_REG_3), + #define XLAT_VAL_3 ((unsigned) (BPF_REG_3)) + #define XLAT_STR_3 STRINGIFY(BPF_REG_3) [BPF_REG_4] = XLAT(BPF_REG_4), + #define XLAT_VAL_4 ((unsigned) (BPF_REG_4)) + #define XLAT_STR_4 STRINGIFY(BPF_REG_4) [BPF_REG_5] = XLAT(BPF_REG_5), + #define XLAT_VAL_5 ((unsigned) (BPF_REG_5)) + #define XLAT_STR_5 STRINGIFY(BPF_REG_5) [BPF_REG_6] = XLAT(BPF_REG_6), + #define XLAT_VAL_6 ((unsigned) (BPF_REG_6)) + #define XLAT_STR_6 STRINGIFY(BPF_REG_6) [BPF_REG_7] = XLAT(BPF_REG_7), + #define XLAT_VAL_7 ((unsigned) (BPF_REG_7)) + #define XLAT_STR_7 STRINGIFY(BPF_REG_7) [BPF_REG_8] = XLAT(BPF_REG_8), + #define XLAT_VAL_8 ((unsigned) (BPF_REG_8)) + #define XLAT_STR_8 STRINGIFY(BPF_REG_8) [BPF_REG_9] = XLAT(BPF_REG_9), + #define XLAT_VAL_9 ((unsigned) (BPF_REG_9)) + #define XLAT_STR_9 STRINGIFY(BPF_REG_9) [BPF_REG_10] = XLAT(BPF_REG_10), - XLAT_END + #define XLAT_VAL_10 ((unsigned) (BPF_REG_10)) + #define XLAT_STR_10 STRINGIFY(BPF_REG_10) }; +static +const struct xlat ebpf_regs[1] = { { + .data = ebpf_regs_xdata, + .size = ARRAY_SIZE(ebpf_regs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/ebpf_size.h b/xlat/ebpf_size.h index b3d32d2d..4adb5547 100644 --- a/xlat/ebpf_size.h +++ b/xlat/ebpf_size.h @@ -19,12 +19,30 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat ebpf_size[] = { +static const struct xlat_data ebpf_size_xdata[] = { XLAT(BPF_DW), - XLAT_END + #define XLAT_VAL_0 ((unsigned) (BPF_DW)) + #define XLAT_STR_0 STRINGIFY(BPF_DW) }; - +static +const struct xlat ebpf_size[1] = { { + .data = ebpf_size_xdata, + .size = ARRAY_SIZE(ebpf_size_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/efd_flags.h b/xlat/efd_flags.h index e61316ad..082919f1 100644 --- a/xlat/efd_flags.h +++ b/xlat/efd_flags.h @@ -35,16 +35,54 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat efd_flags[] = { +static const struct xlat_data efd_flags_xdata[] = { XLAT(EFD_SEMAPHORE), + #define XLAT_VAL_0 ((unsigned) (EFD_SEMAPHORE)) + #define XLAT_STR_0 STRINGIFY(EFD_SEMAPHORE) #if defined EFD_CLOEXEC || defined O_CLOEXEC XLAT(EFD_CLOEXEC), + #define XLAT_VAL_1 ((unsigned) (EFD_CLOEXEC)) + #define XLAT_STR_1 STRINGIFY(EFD_CLOEXEC) #endif XLAT(EFD_NONBLOCK), - XLAT_END + #define XLAT_VAL_2 ((unsigned) (EFD_NONBLOCK)) + #define XLAT_STR_2 STRINGIFY(EFD_NONBLOCK) }; +static +const struct xlat efd_flags[1] = { { + .data = efd_flags_xdata, + .size = ARRAY_SIZE(efd_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/elf_em.h b/xlat/elf_em.h new file mode 100644 index 00000000..0db74dcc --- /dev/null +++ b/xlat/elf_em.h @@ -0,0 +1,3412 @@ +/* Generated by ./xlat/gen.sh from ./xlat/elf_em.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined(EM_NONE) || (defined(HAVE_DECL_EM_NONE) && HAVE_DECL_EM_NONE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_NONE) == (0), "EM_NONE != 0"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_NONE 0 +#endif +#if defined(EM_M32) || (defined(HAVE_DECL_EM_M32) && HAVE_DECL_EM_M32) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_M32) == (1), "EM_M32 != 1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_M32 1 +#endif +#if defined(EM_SPARC) || (defined(HAVE_DECL_EM_SPARC) && HAVE_DECL_EM_SPARC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_SPARC) == (2), "EM_SPARC != 2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_SPARC 2 +#endif +#if defined(EM_386) || (defined(HAVE_DECL_EM_386) && HAVE_DECL_EM_386) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_386) == (3), "EM_386 != 3"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_386 3 +#endif +#if defined(EM_68K) || (defined(HAVE_DECL_EM_68K) && HAVE_DECL_EM_68K) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_68K) == (4), "EM_68K != 4"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_68K 4 +#endif +#if defined(EM_88K) || (defined(HAVE_DECL_EM_88K) && HAVE_DECL_EM_88K) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_88K) == (5), "EM_88K != 5"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_88K 5 +#endif +#if defined(EM_486) || (defined(HAVE_DECL_EM_486) && HAVE_DECL_EM_486) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_486) == (6), "EM_486 != 6"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_486 6 +#endif +#if defined(EM_860) || (defined(HAVE_DECL_EM_860) && HAVE_DECL_EM_860) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_860) == (7), "EM_860 != 7"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_860 7 +#endif +#if defined(EM_MIPS) || (defined(HAVE_DECL_EM_MIPS) && HAVE_DECL_EM_MIPS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_MIPS) == (8), "EM_MIPS != 8"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_MIPS 8 +#endif +#if defined(EM_S370) || (defined(HAVE_DECL_EM_S370) && HAVE_DECL_EM_S370) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_S370) == (9), "EM_S370 != 9"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_S370 9 +#endif +#if defined(EM_MIPS_RS3_LE) || (defined(HAVE_DECL_EM_MIPS_RS3_LE) && HAVE_DECL_EM_MIPS_RS3_LE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_MIPS_RS3_LE) == (10), "EM_MIPS_RS3_LE != 10"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_MIPS_RS3_LE 10 +#endif +#if defined(EM_PARISC) || (defined(HAVE_DECL_EM_PARISC) && HAVE_DECL_EM_PARISC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_PARISC) == (15), "EM_PARISC != 15"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_PARISC 15 +#endif +#if defined(EM_VPP500) || (defined(HAVE_DECL_EM_VPP500) && HAVE_DECL_EM_VPP500) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_VPP500) == (17), "EM_VPP500 != 17"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_VPP500 17 +#endif +#if defined(EM_SPARC32PLUS) || (defined(HAVE_DECL_EM_SPARC32PLUS) && HAVE_DECL_EM_SPARC32PLUS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_SPARC32PLUS) == (18), "EM_SPARC32PLUS != 18"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_SPARC32PLUS 18 +#endif +#if defined(EM_960) || (defined(HAVE_DECL_EM_960) && HAVE_DECL_EM_960) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_960) == (19), "EM_960 != 19"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_960 19 +#endif +#if defined(EM_PPC) || (defined(HAVE_DECL_EM_PPC) && HAVE_DECL_EM_PPC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_PPC) == (20), "EM_PPC != 20"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_PPC 20 +#endif +#if defined(EM_PPC64) || (defined(HAVE_DECL_EM_PPC64) && HAVE_DECL_EM_PPC64) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_PPC64) == (21), "EM_PPC64 != 21"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_PPC64 21 +#endif +#if defined(EM_S390) || (defined(HAVE_DECL_EM_S390) && HAVE_DECL_EM_S390) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_S390) == (22), "EM_S390 != 22"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_S390 22 +#endif +#if defined(EM_SPU) || (defined(HAVE_DECL_EM_SPU) && HAVE_DECL_EM_SPU) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_SPU) == (23), "EM_SPU != 23"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_SPU 23 +#endif +#if defined(EM_V800) || (defined(HAVE_DECL_EM_V800) && HAVE_DECL_EM_V800) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_V800) == (36), "EM_V800 != 36"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_V800 36 +#endif +#if defined(EM_FR20) || (defined(HAVE_DECL_EM_FR20) && HAVE_DECL_EM_FR20) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_FR20) == (37), "EM_FR20 != 37"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_FR20 37 +#endif +#if defined(EM_RH32) || (defined(HAVE_DECL_EM_RH32) && HAVE_DECL_EM_RH32) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_RH32) == (38), "EM_RH32 != 38"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_RH32 38 +#endif +#if defined(EM_RCE) || (defined(HAVE_DECL_EM_RCE) && HAVE_DECL_EM_RCE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_RCE) == (39), "EM_RCE != 39"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_RCE 39 +#endif +#if defined(EM_ARM) || (defined(HAVE_DECL_EM_ARM) && HAVE_DECL_EM_ARM) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_ARM) == (40), "EM_ARM != 40"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_ARM 40 +#endif +#if defined(EM_SH) || (defined(HAVE_DECL_EM_SH) && HAVE_DECL_EM_SH) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_SH) == (42), "EM_SH != 42"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_SH 42 +#endif +#if defined(EM_SPARCV9) || (defined(HAVE_DECL_EM_SPARCV9) && HAVE_DECL_EM_SPARCV9) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_SPARCV9) == (43), "EM_SPARCV9 != 43"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_SPARCV9 43 +#endif +#if defined(EM_TRICORE) || (defined(HAVE_DECL_EM_TRICORE) && HAVE_DECL_EM_TRICORE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_TRICORE) == (44), "EM_TRICORE != 44"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_TRICORE 44 +#endif +#if defined(EM_ARC) || (defined(HAVE_DECL_EM_ARC) && HAVE_DECL_EM_ARC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_ARC) == (45), "EM_ARC != 45"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_ARC 45 +#endif +#if defined(EM_H8_300) || (defined(HAVE_DECL_EM_H8_300) && HAVE_DECL_EM_H8_300) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_H8_300) == (46), "EM_H8_300 != 46"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_H8_300 46 +#endif +#if defined(EM_H8_300H) || (defined(HAVE_DECL_EM_H8_300H) && HAVE_DECL_EM_H8_300H) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_H8_300H) == (47), "EM_H8_300H != 47"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_H8_300H 47 +#endif +#if defined(EM_H8S) || (defined(HAVE_DECL_EM_H8S) && HAVE_DECL_EM_H8S) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_H8S) == (48), "EM_H8S != 48"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_H8S 48 +#endif +#if defined(EM_H8_500) || (defined(HAVE_DECL_EM_H8_500) && HAVE_DECL_EM_H8_500) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_H8_500) == (49), "EM_H8_500 != 49"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_H8_500 49 +#endif +#if defined(EM_IA_64) || (defined(HAVE_DECL_EM_IA_64) && HAVE_DECL_EM_IA_64) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_IA_64) == (50), "EM_IA_64 != 50"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_IA_64 50 +#endif +#if defined(EM_MIPS_X) || (defined(HAVE_DECL_EM_MIPS_X) && HAVE_DECL_EM_MIPS_X) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_MIPS_X) == (51), "EM_MIPS_X != 51"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_MIPS_X 51 +#endif +#if defined(EM_COLDFIRE) || (defined(HAVE_DECL_EM_COLDFIRE) && HAVE_DECL_EM_COLDFIRE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_COLDFIRE) == (52), "EM_COLDFIRE != 52"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_COLDFIRE 52 +#endif +#if defined(EM_68HC12) || (defined(HAVE_DECL_EM_68HC12) && HAVE_DECL_EM_68HC12) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_68HC12) == (53), "EM_68HC12 != 53"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_68HC12 53 +#endif +#if defined(EM_MMA) || (defined(HAVE_DECL_EM_MMA) && HAVE_DECL_EM_MMA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_MMA) == (54), "EM_MMA != 54"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_MMA 54 +#endif +#if defined(EM_PCP) || (defined(HAVE_DECL_EM_PCP) && HAVE_DECL_EM_PCP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_PCP) == (55), "EM_PCP != 55"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_PCP 55 +#endif +#if defined(EM_NCPU) || (defined(HAVE_DECL_EM_NCPU) && HAVE_DECL_EM_NCPU) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_NCPU) == (56), "EM_NCPU != 56"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_NCPU 56 +#endif +#if defined(EM_NDR1) || (defined(HAVE_DECL_EM_NDR1) && HAVE_DECL_EM_NDR1) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_NDR1) == (57), "EM_NDR1 != 57"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_NDR1 57 +#endif +#if defined(EM_STARCORE) || (defined(HAVE_DECL_EM_STARCORE) && HAVE_DECL_EM_STARCORE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_STARCORE) == (58), "EM_STARCORE != 58"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_STARCORE 58 +#endif +#if defined(EM_ME16) || (defined(HAVE_DECL_EM_ME16) && HAVE_DECL_EM_ME16) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_ME16) == (59), "EM_ME16 != 59"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_ME16 59 +#endif +#if defined(EM_ST100) || (defined(HAVE_DECL_EM_ST100) && HAVE_DECL_EM_ST100) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_ST100) == (60), "EM_ST100 != 60"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_ST100 60 +#endif +#if defined(EM_TINYJ) || (defined(HAVE_DECL_EM_TINYJ) && HAVE_DECL_EM_TINYJ) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_TINYJ) == (61), "EM_TINYJ != 61"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_TINYJ 61 +#endif +#if defined(EM_X86_64) || (defined(HAVE_DECL_EM_X86_64) && HAVE_DECL_EM_X86_64) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_X86_64) == (62), "EM_X86_64 != 62"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_X86_64 62 +#endif +#if defined(EM_PDSP) || (defined(HAVE_DECL_EM_PDSP) && HAVE_DECL_EM_PDSP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_PDSP) == (63), "EM_PDSP != 63"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_PDSP 63 +#endif +#if defined(EM_PDP10) || (defined(HAVE_DECL_EM_PDP10) && HAVE_DECL_EM_PDP10) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_PDP10) == (64), "EM_PDP10 != 64"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_PDP10 64 +#endif +#if defined(EM_PDP11) || (defined(HAVE_DECL_EM_PDP11) && HAVE_DECL_EM_PDP11) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_PDP11) == (65), "EM_PDP11 != 65"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_PDP11 65 +#endif +#if defined(EM_FX66) || (defined(HAVE_DECL_EM_FX66) && HAVE_DECL_EM_FX66) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_FX66) == (66), "EM_FX66 != 66"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_FX66 66 +#endif +#if defined(EM_ST9PLUS) || (defined(HAVE_DECL_EM_ST9PLUS) && HAVE_DECL_EM_ST9PLUS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_ST9PLUS) == (67), "EM_ST9PLUS != 67"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_ST9PLUS 67 +#endif +#if defined(EM_ST7) || (defined(HAVE_DECL_EM_ST7) && HAVE_DECL_EM_ST7) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_ST7) == (68), "EM_ST7 != 68"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_ST7 68 +#endif +#if defined(EM_68HC16) || (defined(HAVE_DECL_EM_68HC16) && HAVE_DECL_EM_68HC16) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_68HC16) == (69), "EM_68HC16 != 69"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_68HC16 69 +#endif +#if defined(EM_68HC11) || (defined(HAVE_DECL_EM_68HC11) && HAVE_DECL_EM_68HC11) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_68HC11) == (70), "EM_68HC11 != 70"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_68HC11 70 +#endif +#if defined(EM_68HC08) || (defined(HAVE_DECL_EM_68HC08) && HAVE_DECL_EM_68HC08) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_68HC08) == (71), "EM_68HC08 != 71"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_68HC08 71 +#endif +#if defined(EM_68HC05) || (defined(HAVE_DECL_EM_68HC05) && HAVE_DECL_EM_68HC05) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_68HC05) == (72), "EM_68HC05 != 72"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_68HC05 72 +#endif +#if defined(EM_SVX) || (defined(HAVE_DECL_EM_SVX) && HAVE_DECL_EM_SVX) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_SVX) == (73), "EM_SVX != 73"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_SVX 73 +#endif +#if defined(EM_ST19) || (defined(HAVE_DECL_EM_ST19) && HAVE_DECL_EM_ST19) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_ST19) == (74), "EM_ST19 != 74"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_ST19 74 +#endif +#if defined(EM_VAX) || (defined(HAVE_DECL_EM_VAX) && HAVE_DECL_EM_VAX) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_VAX) == (75), "EM_VAX != 75"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_VAX 75 +#endif +#if defined(EM_CRIS) || (defined(HAVE_DECL_EM_CRIS) && HAVE_DECL_EM_CRIS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_CRIS) == (76), "EM_CRIS != 76"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_CRIS 76 +#endif +#if defined(EM_JAVELIN) || (defined(HAVE_DECL_EM_JAVELIN) && HAVE_DECL_EM_JAVELIN) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_JAVELIN) == (77), "EM_JAVELIN != 77"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_JAVELIN 77 +#endif +#if defined(EM_FIREPATH) || (defined(HAVE_DECL_EM_FIREPATH) && HAVE_DECL_EM_FIREPATH) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_FIREPATH) == (78), "EM_FIREPATH != 78"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_FIREPATH 78 +#endif +#if defined(EM_ZSP) || (defined(HAVE_DECL_EM_ZSP) && HAVE_DECL_EM_ZSP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_ZSP) == (79), "EM_ZSP != 79"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_ZSP 79 +#endif +#if defined(EM_MMIX) || (defined(HAVE_DECL_EM_MMIX) && HAVE_DECL_EM_MMIX) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_MMIX) == (80), "EM_MMIX != 80"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_MMIX 80 +#endif +#if defined(EM_HUANY) || (defined(HAVE_DECL_EM_HUANY) && HAVE_DECL_EM_HUANY) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_HUANY) == (81), "EM_HUANY != 81"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_HUANY 81 +#endif +#if defined(EM_PRISM) || (defined(HAVE_DECL_EM_PRISM) && HAVE_DECL_EM_PRISM) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_PRISM) == (82), "EM_PRISM != 82"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_PRISM 82 +#endif +#if defined(EM_AVR) || (defined(HAVE_DECL_EM_AVR) && HAVE_DECL_EM_AVR) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_AVR) == (83), "EM_AVR != 83"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_AVR 83 +#endif +#if defined(EM_FR30) || (defined(HAVE_DECL_EM_FR30) && HAVE_DECL_EM_FR30) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_FR30) == (84), "EM_FR30 != 84"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_FR30 84 +#endif +#if defined(EM_D10V) || (defined(HAVE_DECL_EM_D10V) && HAVE_DECL_EM_D10V) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_D10V) == (85), "EM_D10V != 85"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_D10V 85 +#endif +#if defined(EM_D30V) || (defined(HAVE_DECL_EM_D30V) && HAVE_DECL_EM_D30V) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_D30V) == (86), "EM_D30V != 86"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_D30V 86 +#endif +#if defined(EM_V850) || (defined(HAVE_DECL_EM_V850) && HAVE_DECL_EM_V850) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_V850) == (87), "EM_V850 != 87"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_V850 87 +#endif +#if defined(EM_M32R) || (defined(HAVE_DECL_EM_M32R) && HAVE_DECL_EM_M32R) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_M32R) == (88), "EM_M32R != 88"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_M32R 88 +#endif +#if defined(EM_MN10300) || (defined(HAVE_DECL_EM_MN10300) && HAVE_DECL_EM_MN10300) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_MN10300) == (89), "EM_MN10300 != 89"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_MN10300 89 +#endif +#if defined(EM_MN10200) || (defined(HAVE_DECL_EM_MN10200) && HAVE_DECL_EM_MN10200) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_MN10200) == (90), "EM_MN10200 != 90"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_MN10200 90 +#endif +#if defined(EM_PJ) || (defined(HAVE_DECL_EM_PJ) && HAVE_DECL_EM_PJ) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_PJ) == (91), "EM_PJ != 91"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_PJ 91 +#endif +#if defined(EM_OPENRISC) || (defined(HAVE_DECL_EM_OPENRISC) && HAVE_DECL_EM_OPENRISC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_OPENRISC) == (92), "EM_OPENRISC != 92"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_OPENRISC 92 +#endif +#if defined(EM_ARCOMPACT) || (defined(HAVE_DECL_EM_ARCOMPACT) && HAVE_DECL_EM_ARCOMPACT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_ARCOMPACT) == (93), "EM_ARCOMPACT != 93"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_ARCOMPACT 93 +#endif +#if defined(EM_XTENSA) || (defined(HAVE_DECL_EM_XTENSA) && HAVE_DECL_EM_XTENSA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_XTENSA) == (94), "EM_XTENSA != 94"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_XTENSA 94 +#endif +#if defined(EM_VIDEOCORE) || (defined(HAVE_DECL_EM_VIDEOCORE) && HAVE_DECL_EM_VIDEOCORE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_VIDEOCORE) == (95), "EM_VIDEOCORE != 95"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_VIDEOCORE 95 +#endif +#if defined(EM_TMM_GPP) || (defined(HAVE_DECL_EM_TMM_GPP) && HAVE_DECL_EM_TMM_GPP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_TMM_GPP) == (96), "EM_TMM_GPP != 96"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_TMM_GPP 96 +#endif +#if defined(EM_NS32K) || (defined(HAVE_DECL_EM_NS32K) && HAVE_DECL_EM_NS32K) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_NS32K) == (97), "EM_NS32K != 97"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_NS32K 97 +#endif +#if defined(EM_TPC) || (defined(HAVE_DECL_EM_TPC) && HAVE_DECL_EM_TPC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_TPC) == (98), "EM_TPC != 98"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_TPC 98 +#endif +#if defined(EM_SNP1K) || (defined(HAVE_DECL_EM_SNP1K) && HAVE_DECL_EM_SNP1K) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_SNP1K) == (99), "EM_SNP1K != 99"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_SNP1K 99 +#endif +#if defined(EM_ST200) || (defined(HAVE_DECL_EM_ST200) && HAVE_DECL_EM_ST200) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_ST200) == (100), "EM_ST200 != 100"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_ST200 100 +#endif +#if defined(EM_IP2K) || (defined(HAVE_DECL_EM_IP2K) && HAVE_DECL_EM_IP2K) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_IP2K) == (101), "EM_IP2K != 101"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_IP2K 101 +#endif +#if defined(EM_MAX) || (defined(HAVE_DECL_EM_MAX) && HAVE_DECL_EM_MAX) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_MAX) == (102), "EM_MAX != 102"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_MAX 102 +#endif +#if defined(EM_CR) || (defined(HAVE_DECL_EM_CR) && HAVE_DECL_EM_CR) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_CR) == (103), "EM_CR != 103"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_CR 103 +#endif +#if defined(EM_F2MC16) || (defined(HAVE_DECL_EM_F2MC16) && HAVE_DECL_EM_F2MC16) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_F2MC16) == (104), "EM_F2MC16 != 104"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_F2MC16 104 +#endif +#if defined(EM_MSP430) || (defined(HAVE_DECL_EM_MSP430) && HAVE_DECL_EM_MSP430) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_MSP430) == (105), "EM_MSP430 != 105"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_MSP430 105 +#endif +#if defined(EM_BLACKFIN) || (defined(HAVE_DECL_EM_BLACKFIN) && HAVE_DECL_EM_BLACKFIN) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_BLACKFIN) == (106), "EM_BLACKFIN != 106"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_BLACKFIN 106 +#endif +#if defined(EM_SE_C33) || (defined(HAVE_DECL_EM_SE_C33) && HAVE_DECL_EM_SE_C33) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_SE_C33) == (107), "EM_SE_C33 != 107"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_SE_C33 107 +#endif +#if defined(EM_SEP) || (defined(HAVE_DECL_EM_SEP) && HAVE_DECL_EM_SEP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_SEP) == (108), "EM_SEP != 108"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_SEP 108 +#endif +#if defined(EM_ARCA) || (defined(HAVE_DECL_EM_ARCA) && HAVE_DECL_EM_ARCA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_ARCA) == (109), "EM_ARCA != 109"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_ARCA 109 +#endif +#if defined(EM_UNICORE) || (defined(HAVE_DECL_EM_UNICORE) && HAVE_DECL_EM_UNICORE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_UNICORE) == (110), "EM_UNICORE != 110"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_UNICORE 110 +#endif +#if defined(EM_EXCESS) || (defined(HAVE_DECL_EM_EXCESS) && HAVE_DECL_EM_EXCESS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_EXCESS) == (111), "EM_EXCESS != 111"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_EXCESS 111 +#endif +#if defined(EM_DXP) || (defined(HAVE_DECL_EM_DXP) && HAVE_DECL_EM_DXP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_DXP) == (112), "EM_DXP != 112"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_DXP 112 +#endif +#if defined(EM_ALTERA_NIOS2) || (defined(HAVE_DECL_EM_ALTERA_NIOS2) && HAVE_DECL_EM_ALTERA_NIOS2) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_ALTERA_NIOS2) == (113), "EM_ALTERA_NIOS2 != 113"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_ALTERA_NIOS2 113 +#endif +#if defined(EM_CRX) || (defined(HAVE_DECL_EM_CRX) && HAVE_DECL_EM_CRX) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_CRX) == (114), "EM_CRX != 114"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_CRX 114 +#endif +#if defined(EM_XGATE) || (defined(HAVE_DECL_EM_XGATE) && HAVE_DECL_EM_XGATE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_XGATE) == (115), "EM_XGATE != 115"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_XGATE 115 +#endif +#if defined(EM_C166) || (defined(HAVE_DECL_EM_C166) && HAVE_DECL_EM_C166) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_C166) == (116), "EM_C166 != 116"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_C166 116 +#endif +#if defined(EM_M16C) || (defined(HAVE_DECL_EM_M16C) && HAVE_DECL_EM_M16C) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_M16C) == (117), "EM_M16C != 117"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_M16C 117 +#endif +#if defined(EM_DSPIC30F) || (defined(HAVE_DECL_EM_DSPIC30F) && HAVE_DECL_EM_DSPIC30F) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_DSPIC30F) == (118), "EM_DSPIC30F != 118"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_DSPIC30F 118 +#endif +#if defined(EM_CE) || (defined(HAVE_DECL_EM_CE) && HAVE_DECL_EM_CE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_CE) == (119), "EM_CE != 119"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_CE 119 +#endif +#if defined(EM_M32C) || (defined(HAVE_DECL_EM_M32C) && HAVE_DECL_EM_M32C) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_M32C) == (120), "EM_M32C != 120"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_M32C 120 +#endif +#if defined(EM_TSK3000) || (defined(HAVE_DECL_EM_TSK3000) && HAVE_DECL_EM_TSK3000) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_TSK3000) == (131), "EM_TSK3000 != 131"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_TSK3000 131 +#endif +#if defined(EM_RS08) || (defined(HAVE_DECL_EM_RS08) && HAVE_DECL_EM_RS08) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_RS08) == (132), "EM_RS08 != 132"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_RS08 132 +#endif +#if defined(EM_SHARC) || (defined(HAVE_DECL_EM_SHARC) && HAVE_DECL_EM_SHARC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_SHARC) == (133), "EM_SHARC != 133"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_SHARC 133 +#endif +#if defined(EM_ECOG2) || (defined(HAVE_DECL_EM_ECOG2) && HAVE_DECL_EM_ECOG2) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_ECOG2) == (134), "EM_ECOG2 != 134"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_ECOG2 134 +#endif +#if defined(EM_SCORE7) || (defined(HAVE_DECL_EM_SCORE7) && HAVE_DECL_EM_SCORE7) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_SCORE7) == (135), "EM_SCORE7 != 135"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_SCORE7 135 +#endif +#if defined(EM_DSP24) || (defined(HAVE_DECL_EM_DSP24) && HAVE_DECL_EM_DSP24) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_DSP24) == (136), "EM_DSP24 != 136"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_DSP24 136 +#endif +#if defined(EM_VIDEOCORE3) || (defined(HAVE_DECL_EM_VIDEOCORE3) && HAVE_DECL_EM_VIDEOCORE3) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_VIDEOCORE3) == (137), "EM_VIDEOCORE3 != 137"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_VIDEOCORE3 137 +#endif +#if defined(EM_LATTICEMICO32) || (defined(HAVE_DECL_EM_LATTICEMICO32) && HAVE_DECL_EM_LATTICEMICO32) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_LATTICEMICO32) == (138), "EM_LATTICEMICO32 != 138"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_LATTICEMICO32 138 +#endif +#if defined(EM_SE_C17) || (defined(HAVE_DECL_EM_SE_C17) && HAVE_DECL_EM_SE_C17) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_SE_C17) == (139), "EM_SE_C17 != 139"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_SE_C17 139 +#endif +#if defined(EM_TI_C6000) || (defined(HAVE_DECL_EM_TI_C6000) && HAVE_DECL_EM_TI_C6000) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_TI_C6000) == (140), "EM_TI_C6000 != 140"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_TI_C6000 140 +#endif +#if defined(EM_TI_C2000) || (defined(HAVE_DECL_EM_TI_C2000) && HAVE_DECL_EM_TI_C2000) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_TI_C2000) == (141), "EM_TI_C2000 != 141"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_TI_C2000 141 +#endif +#if defined(EM_TI_C5500) || (defined(HAVE_DECL_EM_TI_C5500) && HAVE_DECL_EM_TI_C5500) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_TI_C5500) == (142), "EM_TI_C5500 != 142"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_TI_C5500 142 +#endif +#if defined(EM_TI_ARP32) || (defined(HAVE_DECL_EM_TI_ARP32) && HAVE_DECL_EM_TI_ARP32) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_TI_ARP32) == (143), "EM_TI_ARP32 != 143"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_TI_ARP32 143 +#endif +#if defined(EM_TI_PRU) || (defined(HAVE_DECL_EM_TI_PRU) && HAVE_DECL_EM_TI_PRU) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_TI_PRU) == (144), "EM_TI_PRU != 144"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_TI_PRU 144 +#endif +#if defined(EM_MMDSP_PLUS) || (defined(HAVE_DECL_EM_MMDSP_PLUS) && HAVE_DECL_EM_MMDSP_PLUS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_MMDSP_PLUS) == (160), "EM_MMDSP_PLUS != 160"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_MMDSP_PLUS 160 +#endif +#if defined(EM_CYPRESS_M8C) || (defined(HAVE_DECL_EM_CYPRESS_M8C) && HAVE_DECL_EM_CYPRESS_M8C) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_CYPRESS_M8C) == (161), "EM_CYPRESS_M8C != 161"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_CYPRESS_M8C 161 +#endif +#if defined(EM_R32C) || (defined(HAVE_DECL_EM_R32C) && HAVE_DECL_EM_R32C) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_R32C) == (162), "EM_R32C != 162"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_R32C 162 +#endif +#if defined(EM_TRIMEDIA) || (defined(HAVE_DECL_EM_TRIMEDIA) && HAVE_DECL_EM_TRIMEDIA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_TRIMEDIA) == (163), "EM_TRIMEDIA != 163"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_TRIMEDIA 163 +#endif +#if defined(EM_HEXAGON) || (defined(HAVE_DECL_EM_HEXAGON) && HAVE_DECL_EM_HEXAGON) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_HEXAGON) == (164), "EM_HEXAGON != 164"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_HEXAGON 164 +#endif +#if defined(EM_8051) || (defined(HAVE_DECL_EM_8051) && HAVE_DECL_EM_8051) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_8051) == (165), "EM_8051 != 165"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_8051 165 +#endif +#if defined(EM_STXP7X) || (defined(HAVE_DECL_EM_STXP7X) && HAVE_DECL_EM_STXP7X) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_STXP7X) == (166), "EM_STXP7X != 166"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_STXP7X 166 +#endif +#if defined(EM_NDS32) || (defined(HAVE_DECL_EM_NDS32) && HAVE_DECL_EM_NDS32) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_NDS32) == (167), "EM_NDS32 != 167"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_NDS32 167 +#endif +#if defined(EM_ECOG1X) || (defined(HAVE_DECL_EM_ECOG1X) && HAVE_DECL_EM_ECOG1X) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_ECOG1X) == (168), "EM_ECOG1X != 168"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_ECOG1X 168 +#endif +#if defined(EM_MAXQ30) || (defined(HAVE_DECL_EM_MAXQ30) && HAVE_DECL_EM_MAXQ30) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_MAXQ30) == (169), "EM_MAXQ30 != 169"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_MAXQ30 169 +#endif +#if defined(EM_XIMO16) || (defined(HAVE_DECL_EM_XIMO16) && HAVE_DECL_EM_XIMO16) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_XIMO16) == (170), "EM_XIMO16 != 170"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_XIMO16 170 +#endif +#if defined(EM_MANIK) || (defined(HAVE_DECL_EM_MANIK) && HAVE_DECL_EM_MANIK) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_MANIK) == (171), "EM_MANIK != 171"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_MANIK 171 +#endif +#if defined(EM_CRAYNV2) || (defined(HAVE_DECL_EM_CRAYNV2) && HAVE_DECL_EM_CRAYNV2) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_CRAYNV2) == (172), "EM_CRAYNV2 != 172"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_CRAYNV2 172 +#endif +#if defined(EM_RX) || (defined(HAVE_DECL_EM_RX) && HAVE_DECL_EM_RX) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_RX) == (173), "EM_RX != 173"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_RX 173 +#endif +#if defined(EM_METAG) || (defined(HAVE_DECL_EM_METAG) && HAVE_DECL_EM_METAG) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_METAG) == (174), "EM_METAG != 174"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_METAG 174 +#endif +#if defined(EM_MCST_ELBRUS) || (defined(HAVE_DECL_EM_MCST_ELBRUS) && HAVE_DECL_EM_MCST_ELBRUS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_MCST_ELBRUS) == (175), "EM_MCST_ELBRUS != 175"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_MCST_ELBRUS 175 +#endif +#if defined(EM_ECOG16) || (defined(HAVE_DECL_EM_ECOG16) && HAVE_DECL_EM_ECOG16) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_ECOG16) == (176), "EM_ECOG16 != 176"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_ECOG16 176 +#endif +#if defined(EM_CR16) || (defined(HAVE_DECL_EM_CR16) && HAVE_DECL_EM_CR16) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_CR16) == (177), "EM_CR16 != 177"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_CR16 177 +#endif +#if defined(EM_ETPU) || (defined(HAVE_DECL_EM_ETPU) && HAVE_DECL_EM_ETPU) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_ETPU) == (178), "EM_ETPU != 178"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_ETPU 178 +#endif +#if defined(EM_SLE9X) || (defined(HAVE_DECL_EM_SLE9X) && HAVE_DECL_EM_SLE9X) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_SLE9X) == (179), "EM_SLE9X != 179"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_SLE9X 179 +#endif +#if defined(EM_L10M) || (defined(HAVE_DECL_EM_L10M) && HAVE_DECL_EM_L10M) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_L10M) == (180), "EM_L10M != 180"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_L10M 180 +#endif +#if defined(EM_K10M) || (defined(HAVE_DECL_EM_K10M) && HAVE_DECL_EM_K10M) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_K10M) == (181), "EM_K10M != 181"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_K10M 181 +#endif +#if defined(EM_AARCH64) || (defined(HAVE_DECL_EM_AARCH64) && HAVE_DECL_EM_AARCH64) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_AARCH64) == (183), "EM_AARCH64 != 183"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_AARCH64 183 +#endif +#if defined(EM_STM8) || (defined(HAVE_DECL_EM_STM8) && HAVE_DECL_EM_STM8) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_STM8) == (186), "EM_STM8 != 186"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_STM8 186 +#endif +#if defined(EM_TILE64) || (defined(HAVE_DECL_EM_TILE64) && HAVE_DECL_EM_TILE64) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_TILE64) == (187), "EM_TILE64 != 187"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_TILE64 187 +#endif +#if defined(EM_TILEPRO) || (defined(HAVE_DECL_EM_TILEPRO) && HAVE_DECL_EM_TILEPRO) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_TILEPRO) == (188), "EM_TILEPRO != 188"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_TILEPRO 188 +#endif +#if defined(EM_MICROBLAZE) || (defined(HAVE_DECL_EM_MICROBLAZE) && HAVE_DECL_EM_MICROBLAZE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_MICROBLAZE) == (189), "EM_MICROBLAZE != 189"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_MICROBLAZE 189 +#endif +#if defined(EM_CUDA) || (defined(HAVE_DECL_EM_CUDA) && HAVE_DECL_EM_CUDA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_CUDA) == (190), "EM_CUDA != 190"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_CUDA 190 +#endif +#if defined(EM_TILEGX) || (defined(HAVE_DECL_EM_TILEGX) && HAVE_DECL_EM_TILEGX) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_TILEGX) == (191), "EM_TILEGX != 191"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_TILEGX 191 +#endif +#if defined(EM_CLOUDSHIELD) || (defined(HAVE_DECL_EM_CLOUDSHIELD) && HAVE_DECL_EM_CLOUDSHIELD) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_CLOUDSHIELD) == (192), "EM_CLOUDSHIELD != 192"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_CLOUDSHIELD 192 +#endif +#if defined(EM_COREA_1ST) || (defined(HAVE_DECL_EM_COREA_1ST) && HAVE_DECL_EM_COREA_1ST) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_COREA_1ST) == (193), "EM_COREA_1ST != 193"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_COREA_1ST 193 +#endif +#if defined(EM_COREA_2ND) || (defined(HAVE_DECL_EM_COREA_2ND) && HAVE_DECL_EM_COREA_2ND) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_COREA_2ND) == (194), "EM_COREA_2ND != 194"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_COREA_2ND 194 +#endif +#if defined(EM_ARCV2) || (defined(HAVE_DECL_EM_ARCV2) && HAVE_DECL_EM_ARCV2) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_ARCV2) == (195), "EM_ARCV2 != 195"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_ARCV2 195 +#endif +#if defined(EM_OPEN8) || (defined(HAVE_DECL_EM_OPEN8) && HAVE_DECL_EM_OPEN8) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_OPEN8) == (196), "EM_OPEN8 != 196"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_OPEN8 196 +#endif +#if defined(EM_RL78) || (defined(HAVE_DECL_EM_RL78) && HAVE_DECL_EM_RL78) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_RL78) == (197), "EM_RL78 != 197"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_RL78 197 +#endif +#if defined(EM_VIDEOCORE5) || (defined(HAVE_DECL_EM_VIDEOCORE5) && HAVE_DECL_EM_VIDEOCORE5) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_VIDEOCORE5) == (198), "EM_VIDEOCORE5 != 198"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_VIDEOCORE5 198 +#endif +#if defined(EM_78KOR) || (defined(HAVE_DECL_EM_78KOR) && HAVE_DECL_EM_78KOR) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_78KOR) == (199), "EM_78KOR != 199"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_78KOR 199 +#endif +#if defined(EM_56800EX) || (defined(HAVE_DECL_EM_56800EX) && HAVE_DECL_EM_56800EX) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_56800EX) == (200), "EM_56800EX != 200"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_56800EX 200 +#endif +#if defined(EM_BA1) || (defined(HAVE_DECL_EM_BA1) && HAVE_DECL_EM_BA1) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_BA1) == (201), "EM_BA1 != 201"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_BA1 201 +#endif +#if defined(EM_BA2) || (defined(HAVE_DECL_EM_BA2) && HAVE_DECL_EM_BA2) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_BA2) == (202), "EM_BA2 != 202"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_BA2 202 +#endif +#if defined(EM_XCORE) || (defined(HAVE_DECL_EM_XCORE) && HAVE_DECL_EM_XCORE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_XCORE) == (203), "EM_XCORE != 203"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_XCORE 203 +#endif +#if defined(EM_MCHP_PIC) || (defined(HAVE_DECL_EM_MCHP_PIC) && HAVE_DECL_EM_MCHP_PIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_MCHP_PIC) == (204), "EM_MCHP_PIC != 204"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_MCHP_PIC 204 +#endif +#if defined(EM_KM32) || (defined(HAVE_DECL_EM_KM32) && HAVE_DECL_EM_KM32) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_KM32) == (210), "EM_KM32 != 210"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_KM32 210 +#endif +#if defined(EM_KMX32) || (defined(HAVE_DECL_EM_KMX32) && HAVE_DECL_EM_KMX32) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_KMX32) == (211), "EM_KMX32 != 211"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_KMX32 211 +#endif +#if defined(EM_KMX16) || (defined(HAVE_DECL_EM_KMX16) && HAVE_DECL_EM_KMX16) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_KMX16) == (212), "EM_KMX16 != 212"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_KMX16 212 +#endif +#if defined(EM_KMX8) || (defined(HAVE_DECL_EM_KMX8) && HAVE_DECL_EM_KMX8) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_KMX8) == (213), "EM_KMX8 != 213"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_KMX8 213 +#endif +#if defined(EM_KVARC) || (defined(HAVE_DECL_EM_KVARC) && HAVE_DECL_EM_KVARC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_KVARC) == (214), "EM_KVARC != 214"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_KVARC 214 +#endif +#if defined(EM_CDP) || (defined(HAVE_DECL_EM_CDP) && HAVE_DECL_EM_CDP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_CDP) == (215), "EM_CDP != 215"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_CDP 215 +#endif +#if defined(EM_COGE) || (defined(HAVE_DECL_EM_COGE) && HAVE_DECL_EM_COGE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_COGE) == (216), "EM_COGE != 216"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_COGE 216 +#endif +#if defined(EM_COOL) || (defined(HAVE_DECL_EM_COOL) && HAVE_DECL_EM_COOL) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_COOL) == (217), "EM_COOL != 217"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_COOL 217 +#endif +#if defined(EM_NORC) || (defined(HAVE_DECL_EM_NORC) && HAVE_DECL_EM_NORC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_NORC) == (218), "EM_NORC != 218"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_NORC 218 +#endif +#if defined(EM_CSR_KALIMBA) || (defined(HAVE_DECL_EM_CSR_KALIMBA) && HAVE_DECL_EM_CSR_KALIMBA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_CSR_KALIMBA) == (219), "EM_CSR_KALIMBA != 219"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_CSR_KALIMBA 219 +#endif +#if defined(EM_Z80) || (defined(HAVE_DECL_EM_Z80) && HAVE_DECL_EM_Z80) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_Z80) == (220), "EM_Z80 != 220"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_Z80 220 +#endif +#if defined(EM_VISIUM) || (defined(HAVE_DECL_EM_VISIUM) && HAVE_DECL_EM_VISIUM) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_VISIUM) == (221), "EM_VISIUM != 221"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_VISIUM 221 +#endif +#if defined(EM_FT32) || (defined(HAVE_DECL_EM_FT32) && HAVE_DECL_EM_FT32) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_FT32) == (222), "EM_FT32 != 222"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_FT32 222 +#endif +#if defined(EM_MOXIE) || (defined(HAVE_DECL_EM_MOXIE) && HAVE_DECL_EM_MOXIE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_MOXIE) == (223), "EM_MOXIE != 223"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_MOXIE 223 +#endif +#if defined(EM_AMDGPU) || (defined(HAVE_DECL_EM_AMDGPU) && HAVE_DECL_EM_AMDGPU) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_AMDGPU) == (224), "EM_AMDGPU != 224"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_AMDGPU 224 +#endif +#if defined(EM_RISCV) || (defined(HAVE_DECL_EM_RISCV) && HAVE_DECL_EM_RISCV) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_RISCV) == (243), "EM_RISCV != 243"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_RISCV 243 +#endif +#if defined(EM_BPF) || (defined(HAVE_DECL_EM_BPF) && HAVE_DECL_EM_BPF) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_BPF) == (247), "EM_BPF != 247"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_BPF 247 +#endif +#if defined(EM_CSKY) || (defined(HAVE_DECL_EM_CSKY) && HAVE_DECL_EM_CSKY) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_CSKY) == (252), "EM_CSKY != 252"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_CSKY 252 +#endif +#if defined(EM_AVR32) || (defined(HAVE_DECL_EM_AVR32) && HAVE_DECL_EM_AVR32) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_AVR32) == (0x18ad), "EM_AVR32 != 0x18ad"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_AVR32 0x18ad +#endif +#if defined(EM_FRV) || (defined(HAVE_DECL_EM_FRV) && HAVE_DECL_EM_FRV) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_FRV) == (0x5441), "EM_FRV != 0x5441"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_FRV 0x5441 +#endif +#if defined(EM_OR32) || (defined(HAVE_DECL_EM_OR32) && HAVE_DECL_EM_OR32) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_OR32) == (0x8472), "EM_OR32 != 0x8472"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_OR32 0x8472 +#endif +#if defined(EM_ALPHA) || (defined(HAVE_DECL_EM_ALPHA) && HAVE_DECL_EM_ALPHA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_ALPHA) == (0x9026), "EM_ALPHA != 0x9026"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_ALPHA 0x9026 +#endif +#if defined(EM_CYGNUS_V850) || (defined(HAVE_DECL_EM_CYGNUS_V850) && HAVE_DECL_EM_CYGNUS_V850) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_CYGNUS_V850) == (0x9080), "EM_CYGNUS_V850 != 0x9080"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_CYGNUS_V850 0x9080 +#endif +#if defined(EM_CYGNUS_M32R) || (defined(HAVE_DECL_EM_CYGNUS_M32R) && HAVE_DECL_EM_CYGNUS_M32R) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_CYGNUS_M32R) == (0x9041), "EM_CYGNUS_M32R != 0x9041"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_CYGNUS_M32R 0x9041 +#endif +#if defined(EM_S390_OLD) || (defined(HAVE_DECL_EM_S390_OLD) && HAVE_DECL_EM_S390_OLD) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_S390_OLD) == (0xa390), "EM_S390_OLD != 0xa390"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_S390_OLD 0xa390 +#endif +#if defined(EM_XTENSA_OLD) || (defined(HAVE_DECL_EM_XTENSA_OLD) && HAVE_DECL_EM_XTENSA_OLD) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_XTENSA_OLD) == (0xabc7), "EM_XTENSA_OLD != 0xabc7"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_XTENSA_OLD 0xabc7 +#endif +#if defined(EM_MICROBLAZE_OLD) || (defined(HAVE_DECL_EM_MICROBLAZE_OLD) && HAVE_DECL_EM_MICROBLAZE_OLD) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_MICROBLAZE_OLD) == (0xbaab), "EM_MICROBLAZE_OLD != 0xbaab"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_MICROBLAZE_OLD 0xbaab +#endif +#if defined(EM_CYGNUS_MN10300) || (defined(HAVE_DECL_EM_CYGNUS_MN10300) && HAVE_DECL_EM_CYGNUS_MN10300) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EM_CYGNUS_MN10300) == (0xbeef), "EM_CYGNUS_MN10300 != 0xbeef"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EM_CYGNUS_MN10300 0xbeef +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +extern const struct xlat elf_em[]; + +# else + +static const struct xlat_data elf_em_xdata[] = { + + + XLAT(EM_NONE), + #define XLAT_VAL_0 ((unsigned) (EM_NONE)) + #define XLAT_STR_0 STRINGIFY(EM_NONE) + XLAT(EM_M32), + #define XLAT_VAL_1 ((unsigned) (EM_M32)) + #define XLAT_STR_1 STRINGIFY(EM_M32) + XLAT(EM_SPARC), + #define XLAT_VAL_2 ((unsigned) (EM_SPARC)) + #define XLAT_STR_2 STRINGIFY(EM_SPARC) + XLAT(EM_386), + #define XLAT_VAL_3 ((unsigned) (EM_386)) + #define XLAT_STR_3 STRINGIFY(EM_386) + XLAT(EM_68K), + #define XLAT_VAL_4 ((unsigned) (EM_68K)) + #define XLAT_STR_4 STRINGIFY(EM_68K) + XLAT(EM_88K), + #define XLAT_VAL_5 ((unsigned) (EM_88K)) + #define XLAT_STR_5 STRINGIFY(EM_88K) + XLAT(EM_486), + #define XLAT_VAL_6 ((unsigned) (EM_486)) + #define XLAT_STR_6 STRINGIFY(EM_486) + + XLAT(EM_860), + #define XLAT_VAL_7 ((unsigned) (EM_860)) + #define XLAT_STR_7 STRINGIFY(EM_860) + XLAT(EM_MIPS), + #define XLAT_VAL_8 ((unsigned) (EM_MIPS)) + #define XLAT_STR_8 STRINGIFY(EM_MIPS) + XLAT(EM_S370), + #define XLAT_VAL_9 ((unsigned) (EM_S370)) + #define XLAT_STR_9 STRINGIFY(EM_S370) + XLAT(EM_MIPS_RS3_LE), + #define XLAT_VAL_10 ((unsigned) (EM_MIPS_RS3_LE)) + #define XLAT_STR_10 STRINGIFY(EM_MIPS_RS3_LE) + + + XLAT(EM_PARISC), + #define XLAT_VAL_11 ((unsigned) (EM_PARISC)) + #define XLAT_STR_11 STRINGIFY(EM_PARISC) + + XLAT(EM_VPP500), + #define XLAT_VAL_12 ((unsigned) (EM_VPP500)) + #define XLAT_STR_12 STRINGIFY(EM_VPP500) + XLAT(EM_SPARC32PLUS), + #define XLAT_VAL_13 ((unsigned) (EM_SPARC32PLUS)) + #define XLAT_STR_13 STRINGIFY(EM_SPARC32PLUS) + XLAT(EM_960), + #define XLAT_VAL_14 ((unsigned) (EM_960)) + #define XLAT_STR_14 STRINGIFY(EM_960) + XLAT(EM_PPC), + #define XLAT_VAL_15 ((unsigned) (EM_PPC)) + #define XLAT_STR_15 STRINGIFY(EM_PPC) + XLAT(EM_PPC64), + #define XLAT_VAL_16 ((unsigned) (EM_PPC64)) + #define XLAT_STR_16 STRINGIFY(EM_PPC64) + XLAT(EM_S390), + #define XLAT_VAL_17 ((unsigned) (EM_S390)) + #define XLAT_STR_17 STRINGIFY(EM_S390) + XLAT(EM_SPU), + #define XLAT_VAL_18 ((unsigned) (EM_SPU)) + #define XLAT_STR_18 STRINGIFY(EM_SPU) + + XLAT(EM_V800), + #define XLAT_VAL_19 ((unsigned) (EM_V800)) + #define XLAT_STR_19 STRINGIFY(EM_V800) + XLAT(EM_FR20), + #define XLAT_VAL_20 ((unsigned) (EM_FR20)) + #define XLAT_STR_20 STRINGIFY(EM_FR20) + XLAT(EM_RH32), + #define XLAT_VAL_21 ((unsigned) (EM_RH32)) + #define XLAT_STR_21 STRINGIFY(EM_RH32) + XLAT(EM_RCE), + #define XLAT_VAL_22 ((unsigned) (EM_RCE)) + #define XLAT_STR_22 STRINGIFY(EM_RCE) + XLAT(EM_ARM), + #define XLAT_VAL_23 ((unsigned) (EM_ARM)) + #define XLAT_STR_23 STRINGIFY(EM_ARM) + + XLAT(EM_SH), + #define XLAT_VAL_24 ((unsigned) (EM_SH)) + #define XLAT_STR_24 STRINGIFY(EM_SH) + XLAT(EM_SPARCV9), + #define XLAT_VAL_25 ((unsigned) (EM_SPARCV9)) + #define XLAT_STR_25 STRINGIFY(EM_SPARCV9) + XLAT(EM_TRICORE), + #define XLAT_VAL_26 ((unsigned) (EM_TRICORE)) + #define XLAT_STR_26 STRINGIFY(EM_TRICORE) + XLAT(EM_ARC), + #define XLAT_VAL_27 ((unsigned) (EM_ARC)) + #define XLAT_STR_27 STRINGIFY(EM_ARC) + XLAT(EM_H8_300), + #define XLAT_VAL_28 ((unsigned) (EM_H8_300)) + #define XLAT_STR_28 STRINGIFY(EM_H8_300) + XLAT(EM_H8_300H), + #define XLAT_VAL_29 ((unsigned) (EM_H8_300H)) + #define XLAT_STR_29 STRINGIFY(EM_H8_300H) + XLAT(EM_H8S), + #define XLAT_VAL_30 ((unsigned) (EM_H8S)) + #define XLAT_STR_30 STRINGIFY(EM_H8S) + XLAT(EM_H8_500), + #define XLAT_VAL_31 ((unsigned) (EM_H8_500)) + #define XLAT_STR_31 STRINGIFY(EM_H8_500) + XLAT(EM_IA_64), + #define XLAT_VAL_32 ((unsigned) (EM_IA_64)) + #define XLAT_STR_32 STRINGIFY(EM_IA_64) + XLAT(EM_MIPS_X), + #define XLAT_VAL_33 ((unsigned) (EM_MIPS_X)) + #define XLAT_STR_33 STRINGIFY(EM_MIPS_X) + XLAT(EM_COLDFIRE), + #define XLAT_VAL_34 ((unsigned) (EM_COLDFIRE)) + #define XLAT_STR_34 STRINGIFY(EM_COLDFIRE) + XLAT(EM_68HC12), + #define XLAT_VAL_35 ((unsigned) (EM_68HC12)) + #define XLAT_STR_35 STRINGIFY(EM_68HC12) + XLAT(EM_MMA), + #define XLAT_VAL_36 ((unsigned) (EM_MMA)) + #define XLAT_STR_36 STRINGIFY(EM_MMA) + XLAT(EM_PCP), + #define XLAT_VAL_37 ((unsigned) (EM_PCP)) + #define XLAT_STR_37 STRINGIFY(EM_PCP) + XLAT(EM_NCPU), + #define XLAT_VAL_38 ((unsigned) (EM_NCPU)) + #define XLAT_STR_38 STRINGIFY(EM_NCPU) + XLAT(EM_NDR1), + #define XLAT_VAL_39 ((unsigned) (EM_NDR1)) + #define XLAT_STR_39 STRINGIFY(EM_NDR1) + XLAT(EM_STARCORE), + #define XLAT_VAL_40 ((unsigned) (EM_STARCORE)) + #define XLAT_STR_40 STRINGIFY(EM_STARCORE) + XLAT(EM_ME16), + #define XLAT_VAL_41 ((unsigned) (EM_ME16)) + #define XLAT_STR_41 STRINGIFY(EM_ME16) + XLAT(EM_ST100), + #define XLAT_VAL_42 ((unsigned) (EM_ST100)) + #define XLAT_STR_42 STRINGIFY(EM_ST100) + XLAT(EM_TINYJ), + #define XLAT_VAL_43 ((unsigned) (EM_TINYJ)) + #define XLAT_STR_43 STRINGIFY(EM_TINYJ) + XLAT(EM_X86_64), + #define XLAT_VAL_44 ((unsigned) (EM_X86_64)) + #define XLAT_STR_44 STRINGIFY(EM_X86_64) + XLAT(EM_PDSP), + #define XLAT_VAL_45 ((unsigned) (EM_PDSP)) + #define XLAT_STR_45 STRINGIFY(EM_PDSP) + XLAT(EM_PDP10), + #define XLAT_VAL_46 ((unsigned) (EM_PDP10)) + #define XLAT_STR_46 STRINGIFY(EM_PDP10) + XLAT(EM_PDP11), + #define XLAT_VAL_47 ((unsigned) (EM_PDP11)) + #define XLAT_STR_47 STRINGIFY(EM_PDP11) + XLAT(EM_FX66), + #define XLAT_VAL_48 ((unsigned) (EM_FX66)) + #define XLAT_STR_48 STRINGIFY(EM_FX66) + XLAT(EM_ST9PLUS), + #define XLAT_VAL_49 ((unsigned) (EM_ST9PLUS)) + #define XLAT_STR_49 STRINGIFY(EM_ST9PLUS) + XLAT(EM_ST7), + #define XLAT_VAL_50 ((unsigned) (EM_ST7)) + #define XLAT_STR_50 STRINGIFY(EM_ST7) + XLAT(EM_68HC16), + #define XLAT_VAL_51 ((unsigned) (EM_68HC16)) + #define XLAT_STR_51 STRINGIFY(EM_68HC16) + XLAT(EM_68HC11), + #define XLAT_VAL_52 ((unsigned) (EM_68HC11)) + #define XLAT_STR_52 STRINGIFY(EM_68HC11) + XLAT(EM_68HC08), + #define XLAT_VAL_53 ((unsigned) (EM_68HC08)) + #define XLAT_STR_53 STRINGIFY(EM_68HC08) + XLAT(EM_68HC05), + #define XLAT_VAL_54 ((unsigned) (EM_68HC05)) + #define XLAT_STR_54 STRINGIFY(EM_68HC05) + XLAT(EM_SVX), + #define XLAT_VAL_55 ((unsigned) (EM_SVX)) + #define XLAT_STR_55 STRINGIFY(EM_SVX) + XLAT(EM_ST19), + #define XLAT_VAL_56 ((unsigned) (EM_ST19)) + #define XLAT_STR_56 STRINGIFY(EM_ST19) + XLAT(EM_VAX), + #define XLAT_VAL_57 ((unsigned) (EM_VAX)) + #define XLAT_STR_57 STRINGIFY(EM_VAX) + XLAT(EM_CRIS), + #define XLAT_VAL_58 ((unsigned) (EM_CRIS)) + #define XLAT_STR_58 STRINGIFY(EM_CRIS) + XLAT(EM_JAVELIN), + #define XLAT_VAL_59 ((unsigned) (EM_JAVELIN)) + #define XLAT_STR_59 STRINGIFY(EM_JAVELIN) + XLAT(EM_FIREPATH), + #define XLAT_VAL_60 ((unsigned) (EM_FIREPATH)) + #define XLAT_STR_60 STRINGIFY(EM_FIREPATH) + XLAT(EM_ZSP), + #define XLAT_VAL_61 ((unsigned) (EM_ZSP)) + #define XLAT_STR_61 STRINGIFY(EM_ZSP) + XLAT(EM_MMIX), + #define XLAT_VAL_62 ((unsigned) (EM_MMIX)) + #define XLAT_STR_62 STRINGIFY(EM_MMIX) + XLAT(EM_HUANY), + #define XLAT_VAL_63 ((unsigned) (EM_HUANY)) + #define XLAT_STR_63 STRINGIFY(EM_HUANY) + XLAT(EM_PRISM), + #define XLAT_VAL_64 ((unsigned) (EM_PRISM)) + #define XLAT_STR_64 STRINGIFY(EM_PRISM) + XLAT(EM_AVR), + #define XLAT_VAL_65 ((unsigned) (EM_AVR)) + #define XLAT_STR_65 STRINGIFY(EM_AVR) + XLAT(EM_FR30), + #define XLAT_VAL_66 ((unsigned) (EM_FR30)) + #define XLAT_STR_66 STRINGIFY(EM_FR30) + XLAT(EM_D10V), + #define XLAT_VAL_67 ((unsigned) (EM_D10V)) + #define XLAT_STR_67 STRINGIFY(EM_D10V) + XLAT(EM_D30V), + #define XLAT_VAL_68 ((unsigned) (EM_D30V)) + #define XLAT_STR_68 STRINGIFY(EM_D30V) + XLAT(EM_V850), + #define XLAT_VAL_69 ((unsigned) (EM_V850)) + #define XLAT_STR_69 STRINGIFY(EM_V850) + XLAT(EM_M32R), + #define XLAT_VAL_70 ((unsigned) (EM_M32R)) + #define XLAT_STR_70 STRINGIFY(EM_M32R) + XLAT(EM_MN10300), + #define XLAT_VAL_71 ((unsigned) (EM_MN10300)) + #define XLAT_STR_71 STRINGIFY(EM_MN10300) + XLAT(EM_MN10200), + #define XLAT_VAL_72 ((unsigned) (EM_MN10200)) + #define XLAT_STR_72 STRINGIFY(EM_MN10200) + XLAT(EM_PJ), + #define XLAT_VAL_73 ((unsigned) (EM_PJ)) + #define XLAT_STR_73 STRINGIFY(EM_PJ) + XLAT(EM_OPENRISC), + #define XLAT_VAL_74 ((unsigned) (EM_OPENRISC)) + #define XLAT_STR_74 STRINGIFY(EM_OPENRISC) + XLAT(EM_ARCOMPACT), + #define XLAT_VAL_75 ((unsigned) (EM_ARCOMPACT)) + #define XLAT_STR_75 STRINGIFY(EM_ARCOMPACT) + XLAT(EM_XTENSA), + #define XLAT_VAL_76 ((unsigned) (EM_XTENSA)) + #define XLAT_STR_76 STRINGIFY(EM_XTENSA) + XLAT(EM_VIDEOCORE), + #define XLAT_VAL_77 ((unsigned) (EM_VIDEOCORE)) + #define XLAT_STR_77 STRINGIFY(EM_VIDEOCORE) + XLAT(EM_TMM_GPP), + #define XLAT_VAL_78 ((unsigned) (EM_TMM_GPP)) + #define XLAT_STR_78 STRINGIFY(EM_TMM_GPP) + XLAT(EM_NS32K), + #define XLAT_VAL_79 ((unsigned) (EM_NS32K)) + #define XLAT_STR_79 STRINGIFY(EM_NS32K) + XLAT(EM_TPC), + #define XLAT_VAL_80 ((unsigned) (EM_TPC)) + #define XLAT_STR_80 STRINGIFY(EM_TPC) + XLAT(EM_SNP1K), + #define XLAT_VAL_81 ((unsigned) (EM_SNP1K)) + #define XLAT_STR_81 STRINGIFY(EM_SNP1K) + XLAT(EM_ST200), + #define XLAT_VAL_82 ((unsigned) (EM_ST200)) + #define XLAT_STR_82 STRINGIFY(EM_ST200) + XLAT(EM_IP2K), + #define XLAT_VAL_83 ((unsigned) (EM_IP2K)) + #define XLAT_STR_83 STRINGIFY(EM_IP2K) + XLAT(EM_MAX), + #define XLAT_VAL_84 ((unsigned) (EM_MAX)) + #define XLAT_STR_84 STRINGIFY(EM_MAX) + XLAT(EM_CR), + #define XLAT_VAL_85 ((unsigned) (EM_CR)) + #define XLAT_STR_85 STRINGIFY(EM_CR) + XLAT(EM_F2MC16), + #define XLAT_VAL_86 ((unsigned) (EM_F2MC16)) + #define XLAT_STR_86 STRINGIFY(EM_F2MC16) + XLAT(EM_MSP430), + #define XLAT_VAL_87 ((unsigned) (EM_MSP430)) + #define XLAT_STR_87 STRINGIFY(EM_MSP430) + XLAT(EM_BLACKFIN), + #define XLAT_VAL_88 ((unsigned) (EM_BLACKFIN)) + #define XLAT_STR_88 STRINGIFY(EM_BLACKFIN) + XLAT(EM_SE_C33), + #define XLAT_VAL_89 ((unsigned) (EM_SE_C33)) + #define XLAT_STR_89 STRINGIFY(EM_SE_C33) + XLAT(EM_SEP), + #define XLAT_VAL_90 ((unsigned) (EM_SEP)) + #define XLAT_STR_90 STRINGIFY(EM_SEP) + XLAT(EM_ARCA), + #define XLAT_VAL_91 ((unsigned) (EM_ARCA)) + #define XLAT_STR_91 STRINGIFY(EM_ARCA) + XLAT(EM_UNICORE), + #define XLAT_VAL_92 ((unsigned) (EM_UNICORE)) + #define XLAT_STR_92 STRINGIFY(EM_UNICORE) + XLAT(EM_EXCESS), + #define XLAT_VAL_93 ((unsigned) (EM_EXCESS)) + #define XLAT_STR_93 STRINGIFY(EM_EXCESS) + XLAT(EM_DXP), + #define XLAT_VAL_94 ((unsigned) (EM_DXP)) + #define XLAT_STR_94 STRINGIFY(EM_DXP) + XLAT(EM_ALTERA_NIOS2), + #define XLAT_VAL_95 ((unsigned) (EM_ALTERA_NIOS2)) + #define XLAT_STR_95 STRINGIFY(EM_ALTERA_NIOS2) + XLAT(EM_CRX), + #define XLAT_VAL_96 ((unsigned) (EM_CRX)) + #define XLAT_STR_96 STRINGIFY(EM_CRX) + XLAT(EM_XGATE), + #define XLAT_VAL_97 ((unsigned) (EM_XGATE)) + #define XLAT_STR_97 STRINGIFY(EM_XGATE) + XLAT(EM_C166), + #define XLAT_VAL_98 ((unsigned) (EM_C166)) + #define XLAT_STR_98 STRINGIFY(EM_C166) + XLAT(EM_M16C), + #define XLAT_VAL_99 ((unsigned) (EM_M16C)) + #define XLAT_STR_99 STRINGIFY(EM_M16C) + XLAT(EM_DSPIC30F), + #define XLAT_VAL_100 ((unsigned) (EM_DSPIC30F)) + #define XLAT_STR_100 STRINGIFY(EM_DSPIC30F) + XLAT(EM_CE), + #define XLAT_VAL_101 ((unsigned) (EM_CE)) + #define XLAT_STR_101 STRINGIFY(EM_CE) + XLAT(EM_M32C), + #define XLAT_VAL_102 ((unsigned) (EM_M32C)) + #define XLAT_STR_102 STRINGIFY(EM_M32C) + + XLAT(EM_TSK3000), + #define XLAT_VAL_103 ((unsigned) (EM_TSK3000)) + #define XLAT_STR_103 STRINGIFY(EM_TSK3000) + XLAT(EM_RS08), + #define XLAT_VAL_104 ((unsigned) (EM_RS08)) + #define XLAT_STR_104 STRINGIFY(EM_RS08) + XLAT(EM_SHARC), + #define XLAT_VAL_105 ((unsigned) (EM_SHARC)) + #define XLAT_STR_105 STRINGIFY(EM_SHARC) + XLAT(EM_ECOG2), + #define XLAT_VAL_106 ((unsigned) (EM_ECOG2)) + #define XLAT_STR_106 STRINGIFY(EM_ECOG2) + XLAT(EM_SCORE7), + #define XLAT_VAL_107 ((unsigned) (EM_SCORE7)) + #define XLAT_STR_107 STRINGIFY(EM_SCORE7) + XLAT(EM_DSP24), + #define XLAT_VAL_108 ((unsigned) (EM_DSP24)) + #define XLAT_STR_108 STRINGIFY(EM_DSP24) + XLAT(EM_VIDEOCORE3), + #define XLAT_VAL_109 ((unsigned) (EM_VIDEOCORE3)) + #define XLAT_STR_109 STRINGIFY(EM_VIDEOCORE3) + XLAT(EM_LATTICEMICO32), + #define XLAT_VAL_110 ((unsigned) (EM_LATTICEMICO32)) + #define XLAT_STR_110 STRINGIFY(EM_LATTICEMICO32) + XLAT(EM_SE_C17), + #define XLAT_VAL_111 ((unsigned) (EM_SE_C17)) + #define XLAT_STR_111 STRINGIFY(EM_SE_C17) + XLAT(EM_TI_C6000), + #define XLAT_VAL_112 ((unsigned) (EM_TI_C6000)) + #define XLAT_STR_112 STRINGIFY(EM_TI_C6000) + XLAT(EM_TI_C2000), + #define XLAT_VAL_113 ((unsigned) (EM_TI_C2000)) + #define XLAT_STR_113 STRINGIFY(EM_TI_C2000) + XLAT(EM_TI_C5500), + #define XLAT_VAL_114 ((unsigned) (EM_TI_C5500)) + #define XLAT_STR_114 STRINGIFY(EM_TI_C5500) + XLAT(EM_TI_ARP32), + #define XLAT_VAL_115 ((unsigned) (EM_TI_ARP32)) + #define XLAT_STR_115 STRINGIFY(EM_TI_ARP32) + XLAT(EM_TI_PRU), + #define XLAT_VAL_116 ((unsigned) (EM_TI_PRU)) + #define XLAT_STR_116 STRINGIFY(EM_TI_PRU) + + XLAT(EM_MMDSP_PLUS), + #define XLAT_VAL_117 ((unsigned) (EM_MMDSP_PLUS)) + #define XLAT_STR_117 STRINGIFY(EM_MMDSP_PLUS) + XLAT(EM_CYPRESS_M8C), + #define XLAT_VAL_118 ((unsigned) (EM_CYPRESS_M8C)) + #define XLAT_STR_118 STRINGIFY(EM_CYPRESS_M8C) + XLAT(EM_R32C), + #define XLAT_VAL_119 ((unsigned) (EM_R32C)) + #define XLAT_STR_119 STRINGIFY(EM_R32C) + XLAT(EM_TRIMEDIA), + #define XLAT_VAL_120 ((unsigned) (EM_TRIMEDIA)) + #define XLAT_STR_120 STRINGIFY(EM_TRIMEDIA) + XLAT(EM_HEXAGON), + #define XLAT_VAL_121 ((unsigned) (EM_HEXAGON)) + #define XLAT_STR_121 STRINGIFY(EM_HEXAGON) + XLAT(EM_8051), + #define XLAT_VAL_122 ((unsigned) (EM_8051)) + #define XLAT_STR_122 STRINGIFY(EM_8051) + XLAT(EM_STXP7X), + #define XLAT_VAL_123 ((unsigned) (EM_STXP7X)) + #define XLAT_STR_123 STRINGIFY(EM_STXP7X) + XLAT(EM_NDS32), + #define XLAT_VAL_124 ((unsigned) (EM_NDS32)) + #define XLAT_STR_124 STRINGIFY(EM_NDS32) + XLAT(EM_ECOG1X), + #define XLAT_VAL_125 ((unsigned) (EM_ECOG1X)) + #define XLAT_STR_125 STRINGIFY(EM_ECOG1X) + XLAT(EM_MAXQ30), + #define XLAT_VAL_126 ((unsigned) (EM_MAXQ30)) + #define XLAT_STR_126 STRINGIFY(EM_MAXQ30) + XLAT(EM_XIMO16), + #define XLAT_VAL_127 ((unsigned) (EM_XIMO16)) + #define XLAT_STR_127 STRINGIFY(EM_XIMO16) + XLAT(EM_MANIK), + #define XLAT_VAL_128 ((unsigned) (EM_MANIK)) + #define XLAT_STR_128 STRINGIFY(EM_MANIK) + XLAT(EM_CRAYNV2), + #define XLAT_VAL_129 ((unsigned) (EM_CRAYNV2)) + #define XLAT_STR_129 STRINGIFY(EM_CRAYNV2) + XLAT(EM_RX), + #define XLAT_VAL_130 ((unsigned) (EM_RX)) + #define XLAT_STR_130 STRINGIFY(EM_RX) + XLAT(EM_METAG), + #define XLAT_VAL_131 ((unsigned) (EM_METAG)) + #define XLAT_STR_131 STRINGIFY(EM_METAG) + XLAT(EM_MCST_ELBRUS), + #define XLAT_VAL_132 ((unsigned) (EM_MCST_ELBRUS)) + #define XLAT_STR_132 STRINGIFY(EM_MCST_ELBRUS) + XLAT(EM_ECOG16), + #define XLAT_VAL_133 ((unsigned) (EM_ECOG16)) + #define XLAT_STR_133 STRINGIFY(EM_ECOG16) + XLAT(EM_CR16), + #define XLAT_VAL_134 ((unsigned) (EM_CR16)) + #define XLAT_STR_134 STRINGIFY(EM_CR16) + XLAT(EM_ETPU), + #define XLAT_VAL_135 ((unsigned) (EM_ETPU)) + #define XLAT_STR_135 STRINGIFY(EM_ETPU) + XLAT(EM_SLE9X), + #define XLAT_VAL_136 ((unsigned) (EM_SLE9X)) + #define XLAT_STR_136 STRINGIFY(EM_SLE9X) + XLAT(EM_L10M), + #define XLAT_VAL_137 ((unsigned) (EM_L10M)) + #define XLAT_STR_137 STRINGIFY(EM_L10M) + XLAT(EM_K10M), + #define XLAT_VAL_138 ((unsigned) (EM_K10M)) + #define XLAT_STR_138 STRINGIFY(EM_K10M) + + XLAT(EM_AARCH64), + #define XLAT_VAL_139 ((unsigned) (EM_AARCH64)) + #define XLAT_STR_139 STRINGIFY(EM_AARCH64) + + + XLAT(EM_STM8), + #define XLAT_VAL_140 ((unsigned) (EM_STM8)) + #define XLAT_STR_140 STRINGIFY(EM_STM8) + XLAT(EM_TILE64), + #define XLAT_VAL_141 ((unsigned) (EM_TILE64)) + #define XLAT_STR_141 STRINGIFY(EM_TILE64) + XLAT(EM_TILEPRO), + #define XLAT_VAL_142 ((unsigned) (EM_TILEPRO)) + #define XLAT_STR_142 STRINGIFY(EM_TILEPRO) + XLAT(EM_MICROBLAZE), + #define XLAT_VAL_143 ((unsigned) (EM_MICROBLAZE)) + #define XLAT_STR_143 STRINGIFY(EM_MICROBLAZE) + XLAT(EM_CUDA), + #define XLAT_VAL_144 ((unsigned) (EM_CUDA)) + #define XLAT_STR_144 STRINGIFY(EM_CUDA) + XLAT(EM_TILEGX), + #define XLAT_VAL_145 ((unsigned) (EM_TILEGX)) + #define XLAT_STR_145 STRINGIFY(EM_TILEGX) + XLAT(EM_CLOUDSHIELD), + #define XLAT_VAL_146 ((unsigned) (EM_CLOUDSHIELD)) + #define XLAT_STR_146 STRINGIFY(EM_CLOUDSHIELD) + XLAT(EM_COREA_1ST), + #define XLAT_VAL_147 ((unsigned) (EM_COREA_1ST)) + #define XLAT_STR_147 STRINGIFY(EM_COREA_1ST) + XLAT(EM_COREA_2ND), + #define XLAT_VAL_148 ((unsigned) (EM_COREA_2ND)) + #define XLAT_STR_148 STRINGIFY(EM_COREA_2ND) + XLAT(EM_ARCV2), + #define XLAT_VAL_149 ((unsigned) (EM_ARCV2)) + #define XLAT_STR_149 STRINGIFY(EM_ARCV2) + XLAT(EM_OPEN8), + #define XLAT_VAL_150 ((unsigned) (EM_OPEN8)) + #define XLAT_STR_150 STRINGIFY(EM_OPEN8) + XLAT(EM_RL78), + #define XLAT_VAL_151 ((unsigned) (EM_RL78)) + #define XLAT_STR_151 STRINGIFY(EM_RL78) + XLAT(EM_VIDEOCORE5), + #define XLAT_VAL_152 ((unsigned) (EM_VIDEOCORE5)) + #define XLAT_STR_152 STRINGIFY(EM_VIDEOCORE5) + XLAT(EM_78KOR), + #define XLAT_VAL_153 ((unsigned) (EM_78KOR)) + #define XLAT_STR_153 STRINGIFY(EM_78KOR) + XLAT(EM_56800EX), + #define XLAT_VAL_154 ((unsigned) (EM_56800EX)) + #define XLAT_STR_154 STRINGIFY(EM_56800EX) + XLAT(EM_BA1), + #define XLAT_VAL_155 ((unsigned) (EM_BA1)) + #define XLAT_STR_155 STRINGIFY(EM_BA1) + XLAT(EM_BA2), + #define XLAT_VAL_156 ((unsigned) (EM_BA2)) + #define XLAT_STR_156 STRINGIFY(EM_BA2) + XLAT(EM_XCORE), + #define XLAT_VAL_157 ((unsigned) (EM_XCORE)) + #define XLAT_STR_157 STRINGIFY(EM_XCORE) + XLAT(EM_MCHP_PIC), + #define XLAT_VAL_158 ((unsigned) (EM_MCHP_PIC)) + #define XLAT_STR_158 STRINGIFY(EM_MCHP_PIC) + + XLAT(EM_KM32), + #define XLAT_VAL_159 ((unsigned) (EM_KM32)) + #define XLAT_STR_159 STRINGIFY(EM_KM32) + XLAT(EM_KMX32), + #define XLAT_VAL_160 ((unsigned) (EM_KMX32)) + #define XLAT_STR_160 STRINGIFY(EM_KMX32) + XLAT(EM_KMX16), + #define XLAT_VAL_161 ((unsigned) (EM_KMX16)) + #define XLAT_STR_161 STRINGIFY(EM_KMX16) + XLAT(EM_KMX8), + #define XLAT_VAL_162 ((unsigned) (EM_KMX8)) + #define XLAT_STR_162 STRINGIFY(EM_KMX8) + XLAT(EM_KVARC), + #define XLAT_VAL_163 ((unsigned) (EM_KVARC)) + #define XLAT_STR_163 STRINGIFY(EM_KVARC) + XLAT(EM_CDP), + #define XLAT_VAL_164 ((unsigned) (EM_CDP)) + #define XLAT_STR_164 STRINGIFY(EM_CDP) + XLAT(EM_COGE), + #define XLAT_VAL_165 ((unsigned) (EM_COGE)) + #define XLAT_STR_165 STRINGIFY(EM_COGE) + XLAT(EM_COOL), + #define XLAT_VAL_166 ((unsigned) (EM_COOL)) + #define XLAT_STR_166 STRINGIFY(EM_COOL) + XLAT(EM_NORC), + #define XLAT_VAL_167 ((unsigned) (EM_NORC)) + #define XLAT_STR_167 STRINGIFY(EM_NORC) + XLAT(EM_CSR_KALIMBA), + #define XLAT_VAL_168 ((unsigned) (EM_CSR_KALIMBA)) + #define XLAT_STR_168 STRINGIFY(EM_CSR_KALIMBA) + XLAT(EM_Z80), + #define XLAT_VAL_169 ((unsigned) (EM_Z80)) + #define XLAT_STR_169 STRINGIFY(EM_Z80) + XLAT(EM_VISIUM), + #define XLAT_VAL_170 ((unsigned) (EM_VISIUM)) + #define XLAT_STR_170 STRINGIFY(EM_VISIUM) + XLAT(EM_FT32), + #define XLAT_VAL_171 ((unsigned) (EM_FT32)) + #define XLAT_STR_171 STRINGIFY(EM_FT32) + XLAT(EM_MOXIE), + #define XLAT_VAL_172 ((unsigned) (EM_MOXIE)) + #define XLAT_STR_172 STRINGIFY(EM_MOXIE) + XLAT(EM_AMDGPU), + #define XLAT_VAL_173 ((unsigned) (EM_AMDGPU)) + #define XLAT_STR_173 STRINGIFY(EM_AMDGPU) + XLAT(EM_RISCV), + #define XLAT_VAL_174 ((unsigned) (EM_RISCV)) + #define XLAT_STR_174 STRINGIFY(EM_RISCV) + XLAT(EM_BPF), + #define XLAT_VAL_175 ((unsigned) (EM_BPF)) + #define XLAT_STR_175 STRINGIFY(EM_BPF) + XLAT(EM_CSKY), + #define XLAT_VAL_176 ((unsigned) (EM_CSKY)) + #define XLAT_STR_176 STRINGIFY(EM_CSKY) + XLAT(EM_AVR32), + #define XLAT_VAL_177 ((unsigned) (EM_AVR32)) + #define XLAT_STR_177 STRINGIFY(EM_AVR32) + XLAT(EM_FRV), + #define XLAT_VAL_178 ((unsigned) (EM_FRV)) + #define XLAT_STR_178 STRINGIFY(EM_FRV) + XLAT(EM_OR32), + #define XLAT_VAL_179 ((unsigned) (EM_OR32)) + #define XLAT_STR_179 STRINGIFY(EM_OR32) + XLAT(EM_ALPHA), + #define XLAT_VAL_180 ((unsigned) (EM_ALPHA)) + #define XLAT_STR_180 STRINGIFY(EM_ALPHA) + XLAT(EM_CYGNUS_V850), + #define XLAT_VAL_181 ((unsigned) (EM_CYGNUS_V850)) + #define XLAT_STR_181 STRINGIFY(EM_CYGNUS_V850) + XLAT(EM_CYGNUS_M32R), + #define XLAT_VAL_182 ((unsigned) (EM_CYGNUS_M32R)) + #define XLAT_STR_182 STRINGIFY(EM_CYGNUS_M32R) + XLAT(EM_S390_OLD), + #define XLAT_VAL_183 ((unsigned) (EM_S390_OLD)) + #define XLAT_STR_183 STRINGIFY(EM_S390_OLD) + XLAT(EM_XTENSA_OLD), + #define XLAT_VAL_184 ((unsigned) (EM_XTENSA_OLD)) + #define XLAT_STR_184 STRINGIFY(EM_XTENSA_OLD) + XLAT(EM_MICROBLAZE_OLD), + #define XLAT_VAL_185 ((unsigned) (EM_MICROBLAZE_OLD)) + #define XLAT_STR_185 STRINGIFY(EM_MICROBLAZE_OLD) + XLAT(EM_CYGNUS_MN10300), + #define XLAT_VAL_186 ((unsigned) (EM_CYGNUS_MN10300)) + #define XLAT_STR_186 STRINGIFY(EM_CYGNUS_MN10300) +}; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat elf_em[1] = { { + .data = elf_em_xdata, + .size = ARRAY_SIZE(elf_em_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif +# ifdef XLAT_VAL_41 + | XLAT_VAL_41 +# endif +# ifdef XLAT_VAL_42 + | XLAT_VAL_42 +# endif +# ifdef XLAT_VAL_43 + | XLAT_VAL_43 +# endif +# ifdef XLAT_VAL_44 + | XLAT_VAL_44 +# endif +# ifdef XLAT_VAL_45 + | XLAT_VAL_45 +# endif +# ifdef XLAT_VAL_46 + | XLAT_VAL_46 +# endif +# ifdef XLAT_VAL_47 + | XLAT_VAL_47 +# endif +# ifdef XLAT_VAL_48 + | XLAT_VAL_48 +# endif +# ifdef XLAT_VAL_49 + | XLAT_VAL_49 +# endif +# ifdef XLAT_VAL_50 + | XLAT_VAL_50 +# endif +# ifdef XLAT_VAL_51 + | XLAT_VAL_51 +# endif +# ifdef XLAT_VAL_52 + | XLAT_VAL_52 +# endif +# ifdef XLAT_VAL_53 + | XLAT_VAL_53 +# endif +# ifdef XLAT_VAL_54 + | XLAT_VAL_54 +# endif +# ifdef XLAT_VAL_55 + | XLAT_VAL_55 +# endif +# ifdef XLAT_VAL_56 + | XLAT_VAL_56 +# endif +# ifdef XLAT_VAL_57 + | XLAT_VAL_57 +# endif +# ifdef XLAT_VAL_58 + | XLAT_VAL_58 +# endif +# ifdef XLAT_VAL_59 + | XLAT_VAL_59 +# endif +# ifdef XLAT_VAL_60 + | XLAT_VAL_60 +# endif +# ifdef XLAT_VAL_61 + | XLAT_VAL_61 +# endif +# ifdef XLAT_VAL_62 + | XLAT_VAL_62 +# endif +# ifdef XLAT_VAL_63 + | XLAT_VAL_63 +# endif +# ifdef XLAT_VAL_64 + | XLAT_VAL_64 +# endif +# ifdef XLAT_VAL_65 + | XLAT_VAL_65 +# endif +# ifdef XLAT_VAL_66 + | XLAT_VAL_66 +# endif +# ifdef XLAT_VAL_67 + | XLAT_VAL_67 +# endif +# ifdef XLAT_VAL_68 + | XLAT_VAL_68 +# endif +# ifdef XLAT_VAL_69 + | XLAT_VAL_69 +# endif +# ifdef XLAT_VAL_70 + | XLAT_VAL_70 +# endif +# ifdef XLAT_VAL_71 + | XLAT_VAL_71 +# endif +# ifdef XLAT_VAL_72 + | XLAT_VAL_72 +# endif +# ifdef XLAT_VAL_73 + | XLAT_VAL_73 +# endif +# ifdef XLAT_VAL_74 + | XLAT_VAL_74 +# endif +# ifdef XLAT_VAL_75 + | XLAT_VAL_75 +# endif +# ifdef XLAT_VAL_76 + | XLAT_VAL_76 +# endif +# ifdef XLAT_VAL_77 + | XLAT_VAL_77 +# endif +# ifdef XLAT_VAL_78 + | XLAT_VAL_78 +# endif +# ifdef XLAT_VAL_79 + | XLAT_VAL_79 +# endif +# ifdef XLAT_VAL_80 + | XLAT_VAL_80 +# endif +# ifdef XLAT_VAL_81 + | XLAT_VAL_81 +# endif +# ifdef XLAT_VAL_82 + | XLAT_VAL_82 +# endif +# ifdef XLAT_VAL_83 + | XLAT_VAL_83 +# endif +# ifdef XLAT_VAL_84 + | XLAT_VAL_84 +# endif +# ifdef XLAT_VAL_85 + | XLAT_VAL_85 +# endif +# ifdef XLAT_VAL_86 + | XLAT_VAL_86 +# endif +# ifdef XLAT_VAL_87 + | XLAT_VAL_87 +# endif +# ifdef XLAT_VAL_88 + | XLAT_VAL_88 +# endif +# ifdef XLAT_VAL_89 + | XLAT_VAL_89 +# endif +# ifdef XLAT_VAL_90 + | XLAT_VAL_90 +# endif +# ifdef XLAT_VAL_91 + | XLAT_VAL_91 +# endif +# ifdef XLAT_VAL_92 + | XLAT_VAL_92 +# endif +# ifdef XLAT_VAL_93 + | XLAT_VAL_93 +# endif +# ifdef XLAT_VAL_94 + | XLAT_VAL_94 +# endif +# ifdef XLAT_VAL_95 + | XLAT_VAL_95 +# endif +# ifdef XLAT_VAL_96 + | XLAT_VAL_96 +# endif +# ifdef XLAT_VAL_97 + | XLAT_VAL_97 +# endif +# ifdef XLAT_VAL_98 + | XLAT_VAL_98 +# endif +# ifdef XLAT_VAL_99 + | XLAT_VAL_99 +# endif +# ifdef XLAT_VAL_100 + | XLAT_VAL_100 +# endif +# ifdef XLAT_VAL_101 + | XLAT_VAL_101 +# endif +# ifdef XLAT_VAL_102 + | XLAT_VAL_102 +# endif +# ifdef XLAT_VAL_103 + | XLAT_VAL_103 +# endif +# ifdef XLAT_VAL_104 + | XLAT_VAL_104 +# endif +# ifdef XLAT_VAL_105 + | XLAT_VAL_105 +# endif +# ifdef XLAT_VAL_106 + | XLAT_VAL_106 +# endif +# ifdef XLAT_VAL_107 + | XLAT_VAL_107 +# endif +# ifdef XLAT_VAL_108 + | XLAT_VAL_108 +# endif +# ifdef XLAT_VAL_109 + | XLAT_VAL_109 +# endif +# ifdef XLAT_VAL_110 + | XLAT_VAL_110 +# endif +# ifdef XLAT_VAL_111 + | XLAT_VAL_111 +# endif +# ifdef XLAT_VAL_112 + | XLAT_VAL_112 +# endif +# ifdef XLAT_VAL_113 + | XLAT_VAL_113 +# endif +# ifdef XLAT_VAL_114 + | XLAT_VAL_114 +# endif +# ifdef XLAT_VAL_115 + | XLAT_VAL_115 +# endif +# ifdef XLAT_VAL_116 + | XLAT_VAL_116 +# endif +# ifdef XLAT_VAL_117 + | XLAT_VAL_117 +# endif +# ifdef XLAT_VAL_118 + | XLAT_VAL_118 +# endif +# ifdef XLAT_VAL_119 + | XLAT_VAL_119 +# endif +# ifdef XLAT_VAL_120 + | XLAT_VAL_120 +# endif +# ifdef XLAT_VAL_121 + | XLAT_VAL_121 +# endif +# ifdef XLAT_VAL_122 + | XLAT_VAL_122 +# endif +# ifdef XLAT_VAL_123 + | XLAT_VAL_123 +# endif +# ifdef XLAT_VAL_124 + | XLAT_VAL_124 +# endif +# ifdef XLAT_VAL_125 + | XLAT_VAL_125 +# endif +# ifdef XLAT_VAL_126 + | XLAT_VAL_126 +# endif +# ifdef XLAT_VAL_127 + | XLAT_VAL_127 +# endif +# ifdef XLAT_VAL_128 + | XLAT_VAL_128 +# endif +# ifdef XLAT_VAL_129 + | XLAT_VAL_129 +# endif +# ifdef XLAT_VAL_130 + | XLAT_VAL_130 +# endif +# ifdef XLAT_VAL_131 + | XLAT_VAL_131 +# endif +# ifdef XLAT_VAL_132 + | XLAT_VAL_132 +# endif +# ifdef XLAT_VAL_133 + | XLAT_VAL_133 +# endif +# ifdef XLAT_VAL_134 + | XLAT_VAL_134 +# endif +# ifdef XLAT_VAL_135 + | XLAT_VAL_135 +# endif +# ifdef XLAT_VAL_136 + | XLAT_VAL_136 +# endif +# ifdef XLAT_VAL_137 + | XLAT_VAL_137 +# endif +# ifdef XLAT_VAL_138 + | XLAT_VAL_138 +# endif +# ifdef XLAT_VAL_139 + | XLAT_VAL_139 +# endif +# ifdef XLAT_VAL_140 + | XLAT_VAL_140 +# endif +# ifdef XLAT_VAL_141 + | XLAT_VAL_141 +# endif +# ifdef XLAT_VAL_142 + | XLAT_VAL_142 +# endif +# ifdef XLAT_VAL_143 + | XLAT_VAL_143 +# endif +# ifdef XLAT_VAL_144 + | XLAT_VAL_144 +# endif +# ifdef XLAT_VAL_145 + | XLAT_VAL_145 +# endif +# ifdef XLAT_VAL_146 + | XLAT_VAL_146 +# endif +# ifdef XLAT_VAL_147 + | XLAT_VAL_147 +# endif +# ifdef XLAT_VAL_148 + | XLAT_VAL_148 +# endif +# ifdef XLAT_VAL_149 + | XLAT_VAL_149 +# endif +# ifdef XLAT_VAL_150 + | XLAT_VAL_150 +# endif +# ifdef XLAT_VAL_151 + | XLAT_VAL_151 +# endif +# ifdef XLAT_VAL_152 + | XLAT_VAL_152 +# endif +# ifdef XLAT_VAL_153 + | XLAT_VAL_153 +# endif +# ifdef XLAT_VAL_154 + | XLAT_VAL_154 +# endif +# ifdef XLAT_VAL_155 + | XLAT_VAL_155 +# endif +# ifdef XLAT_VAL_156 + | XLAT_VAL_156 +# endif +# ifdef XLAT_VAL_157 + | XLAT_VAL_157 +# endif +# ifdef XLAT_VAL_158 + | XLAT_VAL_158 +# endif +# ifdef XLAT_VAL_159 + | XLAT_VAL_159 +# endif +# ifdef XLAT_VAL_160 + | XLAT_VAL_160 +# endif +# ifdef XLAT_VAL_161 + | XLAT_VAL_161 +# endif +# ifdef XLAT_VAL_162 + | XLAT_VAL_162 +# endif +# ifdef XLAT_VAL_163 + | XLAT_VAL_163 +# endif +# ifdef XLAT_VAL_164 + | XLAT_VAL_164 +# endif +# ifdef XLAT_VAL_165 + | XLAT_VAL_165 +# endif +# ifdef XLAT_VAL_166 + | XLAT_VAL_166 +# endif +# ifdef XLAT_VAL_167 + | XLAT_VAL_167 +# endif +# ifdef XLAT_VAL_168 + | XLAT_VAL_168 +# endif +# ifdef XLAT_VAL_169 + | XLAT_VAL_169 +# endif +# ifdef XLAT_VAL_170 + | XLAT_VAL_170 +# endif +# ifdef XLAT_VAL_171 + | XLAT_VAL_171 +# endif +# ifdef XLAT_VAL_172 + | XLAT_VAL_172 +# endif +# ifdef XLAT_VAL_173 + | XLAT_VAL_173 +# endif +# ifdef XLAT_VAL_174 + | XLAT_VAL_174 +# endif +# ifdef XLAT_VAL_175 + | XLAT_VAL_175 +# endif +# ifdef XLAT_VAL_176 + | XLAT_VAL_176 +# endif +# ifdef XLAT_VAL_177 + | XLAT_VAL_177 +# endif +# ifdef XLAT_VAL_178 + | XLAT_VAL_178 +# endif +# ifdef XLAT_VAL_179 + | XLAT_VAL_179 +# endif +# ifdef XLAT_VAL_180 + | XLAT_VAL_180 +# endif +# ifdef XLAT_VAL_181 + | XLAT_VAL_181 +# endif +# ifdef XLAT_VAL_182 + | XLAT_VAL_182 +# endif +# ifdef XLAT_VAL_183 + | XLAT_VAL_183 +# endif +# ifdef XLAT_VAL_184 + | XLAT_VAL_184 +# endif +# ifdef XLAT_VAL_185 + | XLAT_VAL_185 +# endif +# ifdef XLAT_VAL_186 + | XLAT_VAL_186 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif +# ifdef XLAT_STR_41 + + sizeof(XLAT_STR_41) +# endif +# ifdef XLAT_STR_42 + + sizeof(XLAT_STR_42) +# endif +# ifdef XLAT_STR_43 + + sizeof(XLAT_STR_43) +# endif +# ifdef XLAT_STR_44 + + sizeof(XLAT_STR_44) +# endif +# ifdef XLAT_STR_45 + + sizeof(XLAT_STR_45) +# endif +# ifdef XLAT_STR_46 + + sizeof(XLAT_STR_46) +# endif +# ifdef XLAT_STR_47 + + sizeof(XLAT_STR_47) +# endif +# ifdef XLAT_STR_48 + + sizeof(XLAT_STR_48) +# endif +# ifdef XLAT_STR_49 + + sizeof(XLAT_STR_49) +# endif +# ifdef XLAT_STR_50 + + sizeof(XLAT_STR_50) +# endif +# ifdef XLAT_STR_51 + + sizeof(XLAT_STR_51) +# endif +# ifdef XLAT_STR_52 + + sizeof(XLAT_STR_52) +# endif +# ifdef XLAT_STR_53 + + sizeof(XLAT_STR_53) +# endif +# ifdef XLAT_STR_54 + + sizeof(XLAT_STR_54) +# endif +# ifdef XLAT_STR_55 + + sizeof(XLAT_STR_55) +# endif +# ifdef XLAT_STR_56 + + sizeof(XLAT_STR_56) +# endif +# ifdef XLAT_STR_57 + + sizeof(XLAT_STR_57) +# endif +# ifdef XLAT_STR_58 + + sizeof(XLAT_STR_58) +# endif +# ifdef XLAT_STR_59 + + sizeof(XLAT_STR_59) +# endif +# ifdef XLAT_STR_60 + + sizeof(XLAT_STR_60) +# endif +# ifdef XLAT_STR_61 + + sizeof(XLAT_STR_61) +# endif +# ifdef XLAT_STR_62 + + sizeof(XLAT_STR_62) +# endif +# ifdef XLAT_STR_63 + + sizeof(XLAT_STR_63) +# endif +# ifdef XLAT_STR_64 + + sizeof(XLAT_STR_64) +# endif +# ifdef XLAT_STR_65 + + sizeof(XLAT_STR_65) +# endif +# ifdef XLAT_STR_66 + + sizeof(XLAT_STR_66) +# endif +# ifdef XLAT_STR_67 + + sizeof(XLAT_STR_67) +# endif +# ifdef XLAT_STR_68 + + sizeof(XLAT_STR_68) +# endif +# ifdef XLAT_STR_69 + + sizeof(XLAT_STR_69) +# endif +# ifdef XLAT_STR_70 + + sizeof(XLAT_STR_70) +# endif +# ifdef XLAT_STR_71 + + sizeof(XLAT_STR_71) +# endif +# ifdef XLAT_STR_72 + + sizeof(XLAT_STR_72) +# endif +# ifdef XLAT_STR_73 + + sizeof(XLAT_STR_73) +# endif +# ifdef XLAT_STR_74 + + sizeof(XLAT_STR_74) +# endif +# ifdef XLAT_STR_75 + + sizeof(XLAT_STR_75) +# endif +# ifdef XLAT_STR_76 + + sizeof(XLAT_STR_76) +# endif +# ifdef XLAT_STR_77 + + sizeof(XLAT_STR_77) +# endif +# ifdef XLAT_STR_78 + + sizeof(XLAT_STR_78) +# endif +# ifdef XLAT_STR_79 + + sizeof(XLAT_STR_79) +# endif +# ifdef XLAT_STR_80 + + sizeof(XLAT_STR_80) +# endif +# ifdef XLAT_STR_81 + + sizeof(XLAT_STR_81) +# endif +# ifdef XLAT_STR_82 + + sizeof(XLAT_STR_82) +# endif +# ifdef XLAT_STR_83 + + sizeof(XLAT_STR_83) +# endif +# ifdef XLAT_STR_84 + + sizeof(XLAT_STR_84) +# endif +# ifdef XLAT_STR_85 + + sizeof(XLAT_STR_85) +# endif +# ifdef XLAT_STR_86 + + sizeof(XLAT_STR_86) +# endif +# ifdef XLAT_STR_87 + + sizeof(XLAT_STR_87) +# endif +# ifdef XLAT_STR_88 + + sizeof(XLAT_STR_88) +# endif +# ifdef XLAT_STR_89 + + sizeof(XLAT_STR_89) +# endif +# ifdef XLAT_STR_90 + + sizeof(XLAT_STR_90) +# endif +# ifdef XLAT_STR_91 + + sizeof(XLAT_STR_91) +# endif +# ifdef XLAT_STR_92 + + sizeof(XLAT_STR_92) +# endif +# ifdef XLAT_STR_93 + + sizeof(XLAT_STR_93) +# endif +# ifdef XLAT_STR_94 + + sizeof(XLAT_STR_94) +# endif +# ifdef XLAT_STR_95 + + sizeof(XLAT_STR_95) +# endif +# ifdef XLAT_STR_96 + + sizeof(XLAT_STR_96) +# endif +# ifdef XLAT_STR_97 + + sizeof(XLAT_STR_97) +# endif +# ifdef XLAT_STR_98 + + sizeof(XLAT_STR_98) +# endif +# ifdef XLAT_STR_99 + + sizeof(XLAT_STR_99) +# endif +# ifdef XLAT_STR_100 + + sizeof(XLAT_STR_100) +# endif +# ifdef XLAT_STR_101 + + sizeof(XLAT_STR_101) +# endif +# ifdef XLAT_STR_102 + + sizeof(XLAT_STR_102) +# endif +# ifdef XLAT_STR_103 + + sizeof(XLAT_STR_103) +# endif +# ifdef XLAT_STR_104 + + sizeof(XLAT_STR_104) +# endif +# ifdef XLAT_STR_105 + + sizeof(XLAT_STR_105) +# endif +# ifdef XLAT_STR_106 + + sizeof(XLAT_STR_106) +# endif +# ifdef XLAT_STR_107 + + sizeof(XLAT_STR_107) +# endif +# ifdef XLAT_STR_108 + + sizeof(XLAT_STR_108) +# endif +# ifdef XLAT_STR_109 + + sizeof(XLAT_STR_109) +# endif +# ifdef XLAT_STR_110 + + sizeof(XLAT_STR_110) +# endif +# ifdef XLAT_STR_111 + + sizeof(XLAT_STR_111) +# endif +# ifdef XLAT_STR_112 + + sizeof(XLAT_STR_112) +# endif +# ifdef XLAT_STR_113 + + sizeof(XLAT_STR_113) +# endif +# ifdef XLAT_STR_114 + + sizeof(XLAT_STR_114) +# endif +# ifdef XLAT_STR_115 + + sizeof(XLAT_STR_115) +# endif +# ifdef XLAT_STR_116 + + sizeof(XLAT_STR_116) +# endif +# ifdef XLAT_STR_117 + + sizeof(XLAT_STR_117) +# endif +# ifdef XLAT_STR_118 + + sizeof(XLAT_STR_118) +# endif +# ifdef XLAT_STR_119 + + sizeof(XLAT_STR_119) +# endif +# ifdef XLAT_STR_120 + + sizeof(XLAT_STR_120) +# endif +# ifdef XLAT_STR_121 + + sizeof(XLAT_STR_121) +# endif +# ifdef XLAT_STR_122 + + sizeof(XLAT_STR_122) +# endif +# ifdef XLAT_STR_123 + + sizeof(XLAT_STR_123) +# endif +# ifdef XLAT_STR_124 + + sizeof(XLAT_STR_124) +# endif +# ifdef XLAT_STR_125 + + sizeof(XLAT_STR_125) +# endif +# ifdef XLAT_STR_126 + + sizeof(XLAT_STR_126) +# endif +# ifdef XLAT_STR_127 + + sizeof(XLAT_STR_127) +# endif +# ifdef XLAT_STR_128 + + sizeof(XLAT_STR_128) +# endif +# ifdef XLAT_STR_129 + + sizeof(XLAT_STR_129) +# endif +# ifdef XLAT_STR_130 + + sizeof(XLAT_STR_130) +# endif +# ifdef XLAT_STR_131 + + sizeof(XLAT_STR_131) +# endif +# ifdef XLAT_STR_132 + + sizeof(XLAT_STR_132) +# endif +# ifdef XLAT_STR_133 + + sizeof(XLAT_STR_133) +# endif +# ifdef XLAT_STR_134 + + sizeof(XLAT_STR_134) +# endif +# ifdef XLAT_STR_135 + + sizeof(XLAT_STR_135) +# endif +# ifdef XLAT_STR_136 + + sizeof(XLAT_STR_136) +# endif +# ifdef XLAT_STR_137 + + sizeof(XLAT_STR_137) +# endif +# ifdef XLAT_STR_138 + + sizeof(XLAT_STR_138) +# endif +# ifdef XLAT_STR_139 + + sizeof(XLAT_STR_139) +# endif +# ifdef XLAT_STR_140 + + sizeof(XLAT_STR_140) +# endif +# ifdef XLAT_STR_141 + + sizeof(XLAT_STR_141) +# endif +# ifdef XLAT_STR_142 + + sizeof(XLAT_STR_142) +# endif +# ifdef XLAT_STR_143 + + sizeof(XLAT_STR_143) +# endif +# ifdef XLAT_STR_144 + + sizeof(XLAT_STR_144) +# endif +# ifdef XLAT_STR_145 + + sizeof(XLAT_STR_145) +# endif +# ifdef XLAT_STR_146 + + sizeof(XLAT_STR_146) +# endif +# ifdef XLAT_STR_147 + + sizeof(XLAT_STR_147) +# endif +# ifdef XLAT_STR_148 + + sizeof(XLAT_STR_148) +# endif +# ifdef XLAT_STR_149 + + sizeof(XLAT_STR_149) +# endif +# ifdef XLAT_STR_150 + + sizeof(XLAT_STR_150) +# endif +# ifdef XLAT_STR_151 + + sizeof(XLAT_STR_151) +# endif +# ifdef XLAT_STR_152 + + sizeof(XLAT_STR_152) +# endif +# ifdef XLAT_STR_153 + + sizeof(XLAT_STR_153) +# endif +# ifdef XLAT_STR_154 + + sizeof(XLAT_STR_154) +# endif +# ifdef XLAT_STR_155 + + sizeof(XLAT_STR_155) +# endif +# ifdef XLAT_STR_156 + + sizeof(XLAT_STR_156) +# endif +# ifdef XLAT_STR_157 + + sizeof(XLAT_STR_157) +# endif +# ifdef XLAT_STR_158 + + sizeof(XLAT_STR_158) +# endif +# ifdef XLAT_STR_159 + + sizeof(XLAT_STR_159) +# endif +# ifdef XLAT_STR_160 + + sizeof(XLAT_STR_160) +# endif +# ifdef XLAT_STR_161 + + sizeof(XLAT_STR_161) +# endif +# ifdef XLAT_STR_162 + + sizeof(XLAT_STR_162) +# endif +# ifdef XLAT_STR_163 + + sizeof(XLAT_STR_163) +# endif +# ifdef XLAT_STR_164 + + sizeof(XLAT_STR_164) +# endif +# ifdef XLAT_STR_165 + + sizeof(XLAT_STR_165) +# endif +# ifdef XLAT_STR_166 + + sizeof(XLAT_STR_166) +# endif +# ifdef XLAT_STR_167 + + sizeof(XLAT_STR_167) +# endif +# ifdef XLAT_STR_168 + + sizeof(XLAT_STR_168) +# endif +# ifdef XLAT_STR_169 + + sizeof(XLAT_STR_169) +# endif +# ifdef XLAT_STR_170 + + sizeof(XLAT_STR_170) +# endif +# ifdef XLAT_STR_171 + + sizeof(XLAT_STR_171) +# endif +# ifdef XLAT_STR_172 + + sizeof(XLAT_STR_172) +# endif +# ifdef XLAT_STR_173 + + sizeof(XLAT_STR_173) +# endif +# ifdef XLAT_STR_174 + + sizeof(XLAT_STR_174) +# endif +# ifdef XLAT_STR_175 + + sizeof(XLAT_STR_175) +# endif +# ifdef XLAT_STR_176 + + sizeof(XLAT_STR_176) +# endif +# ifdef XLAT_STR_177 + + sizeof(XLAT_STR_177) +# endif +# ifdef XLAT_STR_178 + + sizeof(XLAT_STR_178) +# endif +# ifdef XLAT_STR_179 + + sizeof(XLAT_STR_179) +# endif +# ifdef XLAT_STR_180 + + sizeof(XLAT_STR_180) +# endif +# ifdef XLAT_STR_181 + + sizeof(XLAT_STR_181) +# endif +# ifdef XLAT_STR_182 + + sizeof(XLAT_STR_182) +# endif +# ifdef XLAT_STR_183 + + sizeof(XLAT_STR_183) +# endif +# ifdef XLAT_STR_184 + + sizeof(XLAT_STR_184) +# endif +# ifdef XLAT_STR_185 + + sizeof(XLAT_STR_185) +# endif +# ifdef XLAT_STR_186 + + sizeof(XLAT_STR_186) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 +# undef XLAT_STR_41 +# undef XLAT_VAL_41 +# undef XLAT_STR_42 +# undef XLAT_VAL_42 +# undef XLAT_STR_43 +# undef XLAT_VAL_43 +# undef XLAT_STR_44 +# undef XLAT_VAL_44 +# undef XLAT_STR_45 +# undef XLAT_VAL_45 +# undef XLAT_STR_46 +# undef XLAT_VAL_46 +# undef XLAT_STR_47 +# undef XLAT_VAL_47 +# undef XLAT_STR_48 +# undef XLAT_VAL_48 +# undef XLAT_STR_49 +# undef XLAT_VAL_49 +# undef XLAT_STR_50 +# undef XLAT_VAL_50 +# undef XLAT_STR_51 +# undef XLAT_VAL_51 +# undef XLAT_STR_52 +# undef XLAT_VAL_52 +# undef XLAT_STR_53 +# undef XLAT_VAL_53 +# undef XLAT_STR_54 +# undef XLAT_VAL_54 +# undef XLAT_STR_55 +# undef XLAT_VAL_55 +# undef XLAT_STR_56 +# undef XLAT_VAL_56 +# undef XLAT_STR_57 +# undef XLAT_VAL_57 +# undef XLAT_STR_58 +# undef XLAT_VAL_58 +# undef XLAT_STR_59 +# undef XLAT_VAL_59 +# undef XLAT_STR_60 +# undef XLAT_VAL_60 +# undef XLAT_STR_61 +# undef XLAT_VAL_61 +# undef XLAT_STR_62 +# undef XLAT_VAL_62 +# undef XLAT_STR_63 +# undef XLAT_VAL_63 +# undef XLAT_STR_64 +# undef XLAT_VAL_64 +# undef XLAT_STR_65 +# undef XLAT_VAL_65 +# undef XLAT_STR_66 +# undef XLAT_VAL_66 +# undef XLAT_STR_67 +# undef XLAT_VAL_67 +# undef XLAT_STR_68 +# undef XLAT_VAL_68 +# undef XLAT_STR_69 +# undef XLAT_VAL_69 +# undef XLAT_STR_70 +# undef XLAT_VAL_70 +# undef XLAT_STR_71 +# undef XLAT_VAL_71 +# undef XLAT_STR_72 +# undef XLAT_VAL_72 +# undef XLAT_STR_73 +# undef XLAT_VAL_73 +# undef XLAT_STR_74 +# undef XLAT_VAL_74 +# undef XLAT_STR_75 +# undef XLAT_VAL_75 +# undef XLAT_STR_76 +# undef XLAT_VAL_76 +# undef XLAT_STR_77 +# undef XLAT_VAL_77 +# undef XLAT_STR_78 +# undef XLAT_VAL_78 +# undef XLAT_STR_79 +# undef XLAT_VAL_79 +# undef XLAT_STR_80 +# undef XLAT_VAL_80 +# undef XLAT_STR_81 +# undef XLAT_VAL_81 +# undef XLAT_STR_82 +# undef XLAT_VAL_82 +# undef XLAT_STR_83 +# undef XLAT_VAL_83 +# undef XLAT_STR_84 +# undef XLAT_VAL_84 +# undef XLAT_STR_85 +# undef XLAT_VAL_85 +# undef XLAT_STR_86 +# undef XLAT_VAL_86 +# undef XLAT_STR_87 +# undef XLAT_VAL_87 +# undef XLAT_STR_88 +# undef XLAT_VAL_88 +# undef XLAT_STR_89 +# undef XLAT_VAL_89 +# undef XLAT_STR_90 +# undef XLAT_VAL_90 +# undef XLAT_STR_91 +# undef XLAT_VAL_91 +# undef XLAT_STR_92 +# undef XLAT_VAL_92 +# undef XLAT_STR_93 +# undef XLAT_VAL_93 +# undef XLAT_STR_94 +# undef XLAT_VAL_94 +# undef XLAT_STR_95 +# undef XLAT_VAL_95 +# undef XLAT_STR_96 +# undef XLAT_VAL_96 +# undef XLAT_STR_97 +# undef XLAT_VAL_97 +# undef XLAT_STR_98 +# undef XLAT_VAL_98 +# undef XLAT_STR_99 +# undef XLAT_VAL_99 +# undef XLAT_STR_100 +# undef XLAT_VAL_100 +# undef XLAT_STR_101 +# undef XLAT_VAL_101 +# undef XLAT_STR_102 +# undef XLAT_VAL_102 +# undef XLAT_STR_103 +# undef XLAT_VAL_103 +# undef XLAT_STR_104 +# undef XLAT_VAL_104 +# undef XLAT_STR_105 +# undef XLAT_VAL_105 +# undef XLAT_STR_106 +# undef XLAT_VAL_106 +# undef XLAT_STR_107 +# undef XLAT_VAL_107 +# undef XLAT_STR_108 +# undef XLAT_VAL_108 +# undef XLAT_STR_109 +# undef XLAT_VAL_109 +# undef XLAT_STR_110 +# undef XLAT_VAL_110 +# undef XLAT_STR_111 +# undef XLAT_VAL_111 +# undef XLAT_STR_112 +# undef XLAT_VAL_112 +# undef XLAT_STR_113 +# undef XLAT_VAL_113 +# undef XLAT_STR_114 +# undef XLAT_VAL_114 +# undef XLAT_STR_115 +# undef XLAT_VAL_115 +# undef XLAT_STR_116 +# undef XLAT_VAL_116 +# undef XLAT_STR_117 +# undef XLAT_VAL_117 +# undef XLAT_STR_118 +# undef XLAT_VAL_118 +# undef XLAT_STR_119 +# undef XLAT_VAL_119 +# undef XLAT_STR_120 +# undef XLAT_VAL_120 +# undef XLAT_STR_121 +# undef XLAT_VAL_121 +# undef XLAT_STR_122 +# undef XLAT_VAL_122 +# undef XLAT_STR_123 +# undef XLAT_VAL_123 +# undef XLAT_STR_124 +# undef XLAT_VAL_124 +# undef XLAT_STR_125 +# undef XLAT_VAL_125 +# undef XLAT_STR_126 +# undef XLAT_VAL_126 +# undef XLAT_STR_127 +# undef XLAT_VAL_127 +# undef XLAT_STR_128 +# undef XLAT_VAL_128 +# undef XLAT_STR_129 +# undef XLAT_VAL_129 +# undef XLAT_STR_130 +# undef XLAT_VAL_130 +# undef XLAT_STR_131 +# undef XLAT_VAL_131 +# undef XLAT_STR_132 +# undef XLAT_VAL_132 +# undef XLAT_STR_133 +# undef XLAT_VAL_133 +# undef XLAT_STR_134 +# undef XLAT_VAL_134 +# undef XLAT_STR_135 +# undef XLAT_VAL_135 +# undef XLAT_STR_136 +# undef XLAT_VAL_136 +# undef XLAT_STR_137 +# undef XLAT_VAL_137 +# undef XLAT_STR_138 +# undef XLAT_VAL_138 +# undef XLAT_STR_139 +# undef XLAT_VAL_139 +# undef XLAT_STR_140 +# undef XLAT_VAL_140 +# undef XLAT_STR_141 +# undef XLAT_VAL_141 +# undef XLAT_STR_142 +# undef XLAT_VAL_142 +# undef XLAT_STR_143 +# undef XLAT_VAL_143 +# undef XLAT_STR_144 +# undef XLAT_VAL_144 +# undef XLAT_STR_145 +# undef XLAT_VAL_145 +# undef XLAT_STR_146 +# undef XLAT_VAL_146 +# undef XLAT_STR_147 +# undef XLAT_VAL_147 +# undef XLAT_STR_148 +# undef XLAT_VAL_148 +# undef XLAT_STR_149 +# undef XLAT_VAL_149 +# undef XLAT_STR_150 +# undef XLAT_VAL_150 +# undef XLAT_STR_151 +# undef XLAT_VAL_151 +# undef XLAT_STR_152 +# undef XLAT_VAL_152 +# undef XLAT_STR_153 +# undef XLAT_VAL_153 +# undef XLAT_STR_154 +# undef XLAT_VAL_154 +# undef XLAT_STR_155 +# undef XLAT_VAL_155 +# undef XLAT_STR_156 +# undef XLAT_VAL_156 +# undef XLAT_STR_157 +# undef XLAT_VAL_157 +# undef XLAT_STR_158 +# undef XLAT_VAL_158 +# undef XLAT_STR_159 +# undef XLAT_VAL_159 +# undef XLAT_STR_160 +# undef XLAT_VAL_160 +# undef XLAT_STR_161 +# undef XLAT_VAL_161 +# undef XLAT_STR_162 +# undef XLAT_VAL_162 +# undef XLAT_STR_163 +# undef XLAT_VAL_163 +# undef XLAT_STR_164 +# undef XLAT_VAL_164 +# undef XLAT_STR_165 +# undef XLAT_VAL_165 +# undef XLAT_STR_166 +# undef XLAT_VAL_166 +# undef XLAT_STR_167 +# undef XLAT_VAL_167 +# undef XLAT_STR_168 +# undef XLAT_VAL_168 +# undef XLAT_STR_169 +# undef XLAT_VAL_169 +# undef XLAT_STR_170 +# undef XLAT_VAL_170 +# undef XLAT_STR_171 +# undef XLAT_VAL_171 +# undef XLAT_STR_172 +# undef XLAT_VAL_172 +# undef XLAT_STR_173 +# undef XLAT_VAL_173 +# undef XLAT_STR_174 +# undef XLAT_VAL_174 +# undef XLAT_STR_175 +# undef XLAT_VAL_175 +# undef XLAT_STR_176 +# undef XLAT_VAL_176 +# undef XLAT_STR_177 +# undef XLAT_VAL_177 +# undef XLAT_STR_178 +# undef XLAT_VAL_178 +# undef XLAT_STR_179 +# undef XLAT_VAL_179 +# undef XLAT_STR_180 +# undef XLAT_VAL_180 +# undef XLAT_STR_181 +# undef XLAT_VAL_181 +# undef XLAT_STR_182 +# undef XLAT_VAL_182 +# undef XLAT_STR_183 +# undef XLAT_VAL_183 +# undef XLAT_STR_184 +# undef XLAT_VAL_184 +# undef XLAT_STR_185 +# undef XLAT_VAL_185 +# undef XLAT_STR_186 +# undef XLAT_VAL_186 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/elf_em.in b/xlat/elf_em.in new file mode 100644 index 00000000..9ffbcd6e --- /dev/null +++ b/xlat/elf_em.in @@ -0,0 +1,202 @@ +#sorted +/* General source: include/uapi/linux/elf-em.h */ +/* See also https://www.sco.com/developers/gabi/latest/ch4.eheader.html */ +EM_NONE 0 +EM_M32 1 /* AT&T WE 32100 */ +EM_SPARC 2 /* SPARC */ +EM_386 3 /* Intel 80386 */ +EM_68K 4 /* Motorola 68000 */ +EM_88K 5 /* Motorola 88000 */ +EM_486 6 /* "Perhaps disused" */ +/* EM_IAMCU 6 - Intel MCU */ +EM_860 7 /* Intel 80860 */ +EM_MIPS 8 /* MIPS I, MIPS R3000 (officially, big-endian only) */ +EM_S370 9 /* IBM System/370 Processor */ +EM_MIPS_RS3_LE 10 /* MIPS RS3000 Little-endian */ +/* EM_MIPS_RS4_BE 10 - MIPS R4000 big-endian */ +/* 11-14 reserved for future use */ +EM_PARISC 15 /* Hewlett-Packard PA-RISC */ +/* 16 reserved for future use */ +EM_VPP500 17 /* Fujitsu VPP500 */ +EM_SPARC32PLUS 18 /* Enhanced instruction seti SPARC, Sun's "v8plus" */ +EM_960 19 /* Intel 80960 */ +EM_PPC 20 /* PowerPC */ +EM_PPC64 21 /* 64-bit PowerPC */ +EM_S390 22 /* IBM System/390 Processor */ +EM_SPU 23 /* IBM Cell BE SPU/SPC */ +/* 24-35 reserved for future use */ +EM_V800 36 /* NEC V800 */ +EM_FR20 37 /* Fujitsu FR20 */ +EM_RH32 38 /* TRW RH-32 */ +EM_RCE 39 /* Motorola RCE */ +EM_ARM 40 /* ARM 32-bit architecture */ +/* EM_ALPHA 41 - Digital Alpha */ +EM_SH 42 /* Hitachi SH */ +EM_SPARCV9 43 /* SPARC Version 9 */ +EM_TRICORE 44 /* Siemens TriCore embedded processor */ +EM_ARC 45 /* Argonaut RISC Core, Argonaut Technologies Inc. */ +EM_H8_300 46 /* Hitachi/Renesas H8/300 */ +EM_H8_300H 47 /* Hitachi H8/300H */ +EM_H8S 48 /* Hitachi H8S */ +EM_H8_500 49 /* Hitachi H8/500 */ +EM_IA_64 50 /* Intel IA-64 processor architecture */ +EM_MIPS_X 51 /* Stanford MIPS-X */ +EM_COLDFIRE 52 /* Motorola ColdFire */ +EM_68HC12 53 /* Motorola M68HC12 */ +EM_MMA 54 /* Fujitsu MMA Multimedia Accelerator */ +EM_PCP 55 /* Siemens PCP */ +EM_NCPU 56 /* Sony nCPU embedded RISC processor */ +EM_NDR1 57 /* Denso NDR1 microprocessor */ +EM_STARCORE 58 /* Motorola Star*Core processor */ +EM_ME16 59 /* Toyota ME16 processor */ +EM_ST100 60 /* STMicroelectronics ST100 processor */ +EM_TINYJ 61 /* Advanced Logic Corp. TinyJ embedded processor family */ +EM_X86_64 62 /* AMD x86-64 architecture */ +EM_PDSP 63 /* Sony DSP Processor */ +EM_PDP10 64 /* Digital Equipment Corp. PDP-10 */ +EM_PDP11 65 /* Digital Equipment Corp. PDP-11 */ +EM_FX66 66 /* Siemens FX66 microcontroller */ +EM_ST9PLUS 67 /* STMicroelectronics ST9+ 8/16 bit microcontroller */ +EM_ST7 68 /* STMicroelectronics ST7 8-bit microcontroller */ +EM_68HC16 69 /* Motorola MC68HC16 Microcontroller */ +EM_68HC11 70 /* Motorola MC68HC11 Microcontroller */ +EM_68HC08 71 /* Motorola MC68HC08 Microcontroller */ +EM_68HC05 72 /* Motorola MC68HC05 Microcontroller */ +EM_SVX 73 /* Silicon Graphics SVx */ +EM_ST19 74 /* STMicroelectronics ST19 8-bit microcontroller */ +EM_VAX 75 /* Digital VAX */ +EM_CRIS 76 /* Axis Communications 32-bit embedded processor */ +EM_JAVELIN 77 /* Infineon Technologies 32-bit embedded processor */ +EM_FIREPATH 78 /* Element 14 64-bit DSP Processor */ +EM_ZSP 79 /* LSI Logic 16-bit DSP Processor */ +EM_MMIX 80 /* Donald Knuth's educational 64-bit processor */ +EM_HUANY 81 /* Harvard University machine-independent object files */ +EM_PRISM 82 /* SiTera Prism */ +EM_AVR 83 /* Atmel AVR 8-bit microcontroller */ +EM_FR30 84 /* Fujitsu FR30 */ +EM_D10V 85 /* Mitsubishi D10V */ +EM_D30V 86 /* Mitsubishi D30V */ +EM_V850 87 /* NEC v850, removed in v4.6-rc1~95^2~36 */ +EM_M32R 88 /* Mitsubishi M32R */ +EM_MN10300 89 /* Matsushita MN10300 */ +EM_MN10200 90 /* Matsushita MN10200 */ +EM_PJ 91 /* picoJava */ +EM_OPENRISC 92 /* OpenRISC 32-bit embedded processor */ +EM_ARCOMPACT 93 /* ARCompact processor */ +EM_XTENSA 94 /* arch/xtensa/include/asm/elf.h; Tensilica Xtensa Architecture */ +EM_VIDEOCORE 95 /* Alphamosaic VideoCore processor */ +EM_TMM_GPP 96 /* Thompson Multimedia General Purpose Processor */ +EM_NS32K 97 /* National Semiconductor 32000 series */ +EM_TPC 98 /* Tenor Network TPC processor */ +EM_SNP1K 99 /* Trebia SNP 1000 processor */ +EM_ST200 100 /* STMicroelectronics (www.st.com) ST200 microcontroller */ +EM_IP2K 101 /* Ubicom IP2xxx microcontroller family */ +EM_MAX 102 /* MAX Processor */ +EM_CR 103 /* National Semiconductor CompactRISC microprocessor */ +EM_F2MC16 104 /* Fujitsu F2MC16 */ +EM_MSP430 105 /* Texas Instruments embedded microcontroller msp430 */ +EM_BLACKFIN 106 /* ADI Blackfin Processor */ +EM_SE_C33 107 /* S1C33 Family of Seiko Epson processors */ +EM_SEP 108 /* Sharp embedded microprocessor */ +EM_ARCA 109 /* Arca RISC Microprocessor */ +EM_UNICORE 110 /* UniCore-32 */ +EM_EXCESS 111 /* eXcess: 16/32/64-bit configurable embedded CPU */ +EM_DXP 112 /* Icera Semiconductor Inc. Deep Execution Processor */ +EM_ALTERA_NIOS2 113 /* Altera Nios II soft-core processor */ +EM_CRX 114 /* National Semiconductor CompactRISC CRX microprocessor */ +EM_XGATE 115 /* Motorola XGATE embedded processor */ +EM_C166 116 /* Infineon C16x/XC16x processor */ +EM_M16C 117 /* Renesas M16C series microprocessors */ +EM_DSPIC30F 118 /* Microchip Technology dsPIC30F Digital Signal Controller */ +EM_CE 119 /* Freescale Communication Engine RISC core */ +EM_M32C 120 /* Renesas M32C series microprocessors */ +/* 121-130 reserved for future use */ +EM_TSK3000 131 /* Altium TSK3000 core */ +EM_RS08 132 /* Freescale RS08 embedded processor */ +EM_SHARC 133 /* Analog Devices SHARC family of 32-bit DSP processors */ +EM_ECOG2 134 /* Cyan Technology eCOG2 microprocessor */ +EM_SCORE7 135 /* Sunplus S+core7 RISC processor, arch/score/include/asm/elf.h; removed in v4.17-rc1~163^2~59 */ +EM_DSP24 136 /* New Japan Radio (NJR) 24-bit DSP Processor */ +EM_VIDEOCORE3 137 /* Broadcom VideoCore III processor */ +EM_LATTICEMICO32 138 /* RISC processor for Lattice FPGA architecture */ +EM_SE_C17 139 /* Seiko Epson C17 family */ +EM_TI_C6000 140 /* The Texas Instruments TMS320C6000 DSP family */ +EM_TI_C2000 141 /* The Texas Instruments TMS320C2000 DSP family */ +EM_TI_C5500 142 /* The Texas Instruments TMS320C55x DSP family */ +EM_TI_ARP32 143 /* Texas Instruments Application Specific RISC Processor, 32bit fetch */ +EM_TI_PRU 144 /* Texas Instruments Programmable Realtime Unit */ +/* 145-159 reserved for future use */ +EM_MMDSP_PLUS 160 +EM_CYPRESS_M8C 161 /* Cypress M8C microprocessor */ +EM_R32C 162 /* Renesas R32C series microprocessors */ +EM_TRIMEDIA 163 /* NXP Semiconductors TriMedia architecture family */ +EM_HEXAGON 164 /* QUALCOMM Hexagon */ +EM_8051 165 /* Intel 8051 and variants */ +EM_STXP7X 166 /* STMicroelectronics STxP7x family of configurable and extensible RISC processors */ +EM_NDS32 167 /* Andes Technology compact code size embedded RISC processor family */ +EM_ECOG1X 168 /* Cyan Technology eCOG1X family (synonym: EM_ECOG1) */ +EM_MAXQ30 169 /* Dallas Semiconductor MAXQ30 Core Micro-controllers */ +EM_XIMO16 170 /* New Japan Radio (NJR) 16-bit DSP Processor */ +EM_MANIK 171 /* M2000 Reconfigurable RISC Microprocessor */ +EM_CRAYNV2 172 /* Cray Inc. NV2 vector architecture */ +EM_RX 173 /* Renesas RX family */ +EM_METAG 174 /* Imagination Technologies META processor architecture, arch/metag/include/asm/elf.h; removed in v4.17-rc1~163^2~63^2~10 */ +EM_MCST_ELBRUS 175 /* MCST Elbrus general purpose hardware architecture */ +EM_ECOG16 176 /* Cyan Technology eCOG16 family */ +EM_CR16 177 /* National Semiconductor CompactRISC CR16 16-bit microprocessor */ +EM_ETPU 178 /* Freescale Extended Time Processing Unit */ +EM_SLE9X 179 /* Infineon Technologies SLE9X core */ +EM_L10M 180 /* Intel L10M/L1OM - Larrabee/Knights Ferry */ +EM_K10M 181 /* Intel K10M/K1OM - Knights Korner */ +/* 182 reserved for future Intel use */ +EM_AARCH64 183 +/* 184 reserved for future ARM use */ +/* EM_AVR32 185 - Atmel Corporation 32-bit microprocessor family */ +EM_STM8 186 /* STMicroeletronics STM8 8-bit microcontroller */ +EM_TILE64 187 /* Tilera TILE64 multicore architecture family */ +EM_TILEPRO 188 /* Tilera TILEPro multicore architecture family */ +EM_MICROBLAZE 189 /* Xilinx MicroBlaze 32-bit RISC soft processor core */ +EM_CUDA 190 /* NVIDIA CUDA architecture */ +EM_TILEGX 191 /* Tilera TILE-Gx multicore architecture family */ +EM_CLOUDSHIELD 192 /* CloudShield architecture family */ +EM_COREA_1ST 193 /* KIPO-KAIST Core-A 1st generation processor family */ +EM_COREA_2ND 194 /* KIPO-KAIST Core-A 2nd generation processor family */ +EM_ARCV2 195 /* Synopsys ARCv2 Cores */ +EM_OPEN8 196 /* Open8 8-bit RISC soft processor core */ +EM_RL78 197 /* Renesas RL78 family */ +EM_VIDEOCORE5 198 /* Broadcom VideoCore V processor */ +EM_78KOR 199 /* Renesas 78KOR family */ +EM_56800EX 200 /* Freescale 56800EX Digital Signal Controller (DSC) */ +EM_BA1 201 /* Beyond BA1 CPU architecture */ +EM_BA2 202 /* Beyond BA2 CPU architecture */ +EM_XCORE 203 /* XMOS xCORE processor family */ +EM_MCHP_PIC 204 /* Microchip 8-bit PIC(r) family */ +/* 205-209 reserved by Intel */ +EM_KM32 210 /* KM211 KM32 32-bit processor */ +EM_KMX32 211 /* KM211 KMX32 32-bit processor */ +EM_KMX16 212 /* KM211 KMX16 16-bit processor */ +EM_KMX8 213 /* KM211 KMX8 8-bit processor */ +EM_KVARC 214 /* KM211 KVARC processor */ +EM_CDP 215 /* Paneve CDP architecture family */ +EM_COGE 216 /* Cognitive Smart Memory Processor */ +EM_COOL 217 /* Bluechip Systems CoolEngine */ +EM_NORC 218 /* Nanoradio Optimized RISC */ +EM_CSR_KALIMBA 219 /* CSR Kalimba architecture family */ +EM_Z80 220 /* Zilog Z80 */ +EM_VISIUM 221 /* Controls and Data Services VISIUMcore processor */ +EM_FT32 222 /* FTDI Chip FT32 high performance 32-bit RISC architecture */ +EM_MOXIE 223 /* Moxie processor family */ +EM_AMDGPU 224 /* AMD GPU architecture */ +EM_RISCV 243 /* RISC-V */ +EM_BPF 247 /* Linux BPF - in-kernel virtual machine */ +EM_CSKY 252 /* C-SKY */ +EM_AVR32 0x18ad /* Atmel AVR32, removed in v4.12-rc1~159^2~5 */ +EM_FRV 0x5441 /* Fujitsu FR-V */ +EM_OR32 0x8472 /* arch/openrisc/include/uapi/asm/elf.h */ +EM_ALPHA 0x9026 /* "This is an interim value that we will use until the committee comes up with a final number."; see also 41 */ +EM_CYGNUS_V850 0x9080 /* Bogus old v850 magic number, used by old tools, removed in v4.6-rc1~95^2~36 */ +EM_CYGNUS_M32R 0x9041 /* Bogus old m32r magic number, used by old tools. */ +EM_S390_OLD 0xa390 /* This is the old interim value for S/390 architecture */ +EM_XTENSA_OLD 0xabc7 /* arch/xtensa/include/asm/elf.h */ +EM_MICROBLAZE_OLD 0xbaab /* arch/microblaze/include/uapi/asm/elf.h */ +EM_CYGNUS_MN10300 0xbeef /* Also Panasonic/MEI MN10300, AM33 */ diff --git a/xlat/epollctls.h b/xlat/epollctls.h index a3b7419b..97ed1773 100644 --- a/xlat/epollctls.h +++ b/xlat/epollctls.h @@ -33,14 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat epollctls[] = { - XLAT(EPOLL_CTL_ADD), - XLAT(EPOLL_CTL_DEL), - XLAT(EPOLL_CTL_MOD), - XLAT_END +static const struct xlat_data epollctls_xdata[] = { + [EPOLL_CTL_ADD] = XLAT(EPOLL_CTL_ADD), + #define XLAT_VAL_0 ((unsigned) (EPOLL_CTL_ADD)) + #define XLAT_STR_0 STRINGIFY(EPOLL_CTL_ADD) + [EPOLL_CTL_DEL] = XLAT(EPOLL_CTL_DEL), + #define XLAT_VAL_1 ((unsigned) (EPOLL_CTL_DEL)) + #define XLAT_STR_1 STRINGIFY(EPOLL_CTL_DEL) + [EPOLL_CTL_MOD] = XLAT(EPOLL_CTL_MOD), + #define XLAT_VAL_2 ((unsigned) (EPOLL_CTL_MOD)) + #define XLAT_STR_2 STRINGIFY(EPOLL_CTL_MOD) }; +static +const struct xlat epollctls[1] = { { + .data = epollctls_xdata, + .size = ARRAY_SIZE(epollctls_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/epollctls.in b/xlat/epollctls.in index 86665f68..2955c3a0 100644 --- a/xlat/epollctls.in +++ b/xlat/epollctls.in @@ -1,3 +1,4 @@ +#value_indexed EPOLL_CTL_ADD 1 EPOLL_CTL_DEL 2 EPOLL_CTL_MOD 3 diff --git a/xlat/epollevents.h b/xlat/epollevents.h index 45d9cd94..bbb5796c 100644 --- a/xlat/epollevents.h +++ b/xlat/epollevents.h @@ -124,27 +124,195 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat epollevents[] = { +static const struct xlat_data epollevents_xdata[] = { XLAT(EPOLLIN), + #define XLAT_VAL_0 ((unsigned) (EPOLLIN)) + #define XLAT_STR_0 STRINGIFY(EPOLLIN) XLAT(EPOLLPRI), + #define XLAT_VAL_1 ((unsigned) (EPOLLPRI)) + #define XLAT_STR_1 STRINGIFY(EPOLLPRI) XLAT(EPOLLOUT), + #define XLAT_VAL_2 ((unsigned) (EPOLLOUT)) + #define XLAT_STR_2 STRINGIFY(EPOLLOUT) XLAT(EPOLLERR), + #define XLAT_VAL_3 ((unsigned) (EPOLLERR)) + #define XLAT_STR_3 STRINGIFY(EPOLLERR) XLAT(EPOLLHUP), + #define XLAT_VAL_4 ((unsigned) (EPOLLHUP)) + #define XLAT_STR_4 STRINGIFY(EPOLLHUP) XLAT(EPOLLNVAL), + #define XLAT_VAL_5 ((unsigned) (EPOLLNVAL)) + #define XLAT_STR_5 STRINGIFY(EPOLLNVAL) XLAT(EPOLLRDNORM), + #define XLAT_VAL_6 ((unsigned) (EPOLLRDNORM)) + #define XLAT_STR_6 STRINGIFY(EPOLLRDNORM) XLAT(EPOLLRDBAND), + #define XLAT_VAL_7 ((unsigned) (EPOLLRDBAND)) + #define XLAT_STR_7 STRINGIFY(EPOLLRDBAND) XLAT(EPOLLWRNORM), + #define XLAT_VAL_8 ((unsigned) (EPOLLWRNORM)) + #define XLAT_STR_8 STRINGIFY(EPOLLWRNORM) XLAT(EPOLLWRBAND), + #define XLAT_VAL_9 ((unsigned) (EPOLLWRBAND)) + #define XLAT_STR_9 STRINGIFY(EPOLLWRBAND) XLAT(EPOLLMSG), + #define XLAT_VAL_10 ((unsigned) (EPOLLMSG)) + #define XLAT_STR_10 STRINGIFY(EPOLLMSG) XLAT(EPOLLRDHUP), + #define XLAT_VAL_11 ((unsigned) (EPOLLRDHUP)) + #define XLAT_STR_11 STRINGIFY(EPOLLRDHUP) XLAT(EPOLLEXCLUSIVE), + #define XLAT_VAL_12 ((unsigned) (EPOLLEXCLUSIVE)) + #define XLAT_STR_12 STRINGIFY(EPOLLEXCLUSIVE) XLAT(EPOLLWAKEUP), + #define XLAT_VAL_13 ((unsigned) (EPOLLWAKEUP)) + #define XLAT_STR_13 STRINGIFY(EPOLLWAKEUP) XLAT(EPOLLONESHOT), + #define XLAT_VAL_14 ((unsigned) (EPOLLONESHOT)) + #define XLAT_STR_14 STRINGIFY(EPOLLONESHOT) XLAT(EPOLLET), - XLAT_END + #define XLAT_VAL_15 ((unsigned) (EPOLLET)) + #define XLAT_STR_15 STRINGIFY(EPOLLET) }; +static +const struct xlat epollevents[1] = { { + .data = epollevents_xdata, + .size = ARRAY_SIZE(epollevents_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/epollflags.h b/xlat/epollflags.h index faf4b0ca..f5a27ae4 100644 --- a/xlat/epollflags.h +++ b/xlat/epollflags.h @@ -21,14 +21,32 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat epollflags[] = { +static const struct xlat_data epollflags_xdata[] = { #if defined EPOLL_CLOEXEC || defined O_CLOEXEC XLAT(EPOLL_CLOEXEC), + #define XLAT_VAL_0 ((unsigned) (EPOLL_CLOEXEC)) + #define XLAT_STR_0 STRINGIFY(EPOLL_CLOEXEC) #endif - XLAT_END }; - +static +const struct xlat epollflags[1] = { { + .data = epollflags_xdata, + .size = ARRAY_SIZE(epollflags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/ethernet_protocols.h b/xlat/ethernet_protocols.h index 67c64cbe..6dd6310c 100644 --- a/xlat/ethernet_protocols.h +++ b/xlat/ethernet_protocols.h @@ -500,6 +500,20 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define ETH_P_TIPC 0x88CA #endif +#if defined(ETH_P_LLDP) || (defined(HAVE_DECL_ETH_P_LLDP) && HAVE_DECL_ETH_P_LLDP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ETH_P_LLDP) == (0x88CC), "ETH_P_LLDP != 0x88CC"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ETH_P_LLDP 0x88CC +#endif +#if defined(ETH_P_MRP) || (defined(HAVE_DECL_ETH_P_MRP) && HAVE_DECL_ETH_P_MRP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ETH_P_MRP) == (0x88E3), "ETH_P_MRP != 0x88E3"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ETH_P_MRP 0x88E3 +#endif #if defined(ETH_P_MACSEC) || (defined(HAVE_DECL_ETH_P_MACSEC) && HAVE_DECL_ETH_P_MACSEC) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((ETH_P_MACSEC) == (0x88E5), "ETH_P_MACSEC != 0x88E5"); @@ -626,6 +640,13 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define ETH_P_EDSA 0xDADA #endif +#if defined(ETH_P_DSA_8021Q) || (defined(HAVE_DECL_ETH_P_DSA_8021Q) && HAVE_DECL_ETH_P_DSA_8021Q) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ETH_P_DSA_8021Q) == (0xDADB), "ETH_P_DSA_8021Q != 0xDADB"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ETH_P_DSA_8021Q 0xDADB +#endif #if defined(ETH_P_IFE) || (defined(HAVE_DECL_ETH_P_IFE) && HAVE_DECL_ETH_P_IFE) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((ETH_P_IFE) == (0xED3E), "ETH_P_IFE != 0xED3E"); @@ -645,102 +666,1052 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # ifndef IN_MPERS -const struct xlat ethernet_protocols[] = { - +static const struct xlat_data ethernet_protocols_xdata[] = { XLAT(ETH_P_802_3), + #define XLAT_VAL_0 ((unsigned) (ETH_P_802_3)) + #define XLAT_STR_0 STRINGIFY(ETH_P_802_3) XLAT(ETH_P_AX25), + #define XLAT_VAL_1 ((unsigned) (ETH_P_AX25)) + #define XLAT_STR_1 STRINGIFY(ETH_P_AX25) XLAT(ETH_P_ALL), + #define XLAT_VAL_2 ((unsigned) (ETH_P_ALL)) + #define XLAT_STR_2 STRINGIFY(ETH_P_ALL) XLAT(ETH_P_802_2), + #define XLAT_VAL_3 ((unsigned) (ETH_P_802_2)) + #define XLAT_STR_3 STRINGIFY(ETH_P_802_2) XLAT(ETH_P_SNAP), + #define XLAT_VAL_4 ((unsigned) (ETH_P_SNAP)) + #define XLAT_STR_4 STRINGIFY(ETH_P_SNAP) XLAT(ETH_P_DDCMP), + #define XLAT_VAL_5 ((unsigned) (ETH_P_DDCMP)) + #define XLAT_STR_5 STRINGIFY(ETH_P_DDCMP) XLAT(ETH_P_WAN_PPP), + #define XLAT_VAL_6 ((unsigned) (ETH_P_WAN_PPP)) + #define XLAT_STR_6 STRINGIFY(ETH_P_WAN_PPP) XLAT(ETH_P_PPP_MP), + #define XLAT_VAL_7 ((unsigned) (ETH_P_PPP_MP)) + #define XLAT_STR_7 STRINGIFY(ETH_P_PPP_MP) XLAT(ETH_P_LOCALTALK), + #define XLAT_VAL_8 ((unsigned) (ETH_P_LOCALTALK)) + #define XLAT_STR_8 STRINGIFY(ETH_P_LOCALTALK) XLAT(ETH_P_CAN), + #define XLAT_VAL_9 ((unsigned) (ETH_P_CAN)) + #define XLAT_STR_9 STRINGIFY(ETH_P_CAN) XLAT(ETH_P_CANFD), + #define XLAT_VAL_10 ((unsigned) (ETH_P_CANFD)) + #define XLAT_STR_10 STRINGIFY(ETH_P_CANFD) XLAT(ETH_P_PPPTALK), + #define XLAT_VAL_11 ((unsigned) (ETH_P_PPPTALK)) + #define XLAT_STR_11 STRINGIFY(ETH_P_PPPTALK) XLAT(ETH_P_TR_802_2), + #define XLAT_VAL_12 ((unsigned) (ETH_P_TR_802_2)) + #define XLAT_STR_12 STRINGIFY(ETH_P_TR_802_2) XLAT(ETH_P_MOBITEX), + #define XLAT_VAL_13 ((unsigned) (ETH_P_MOBITEX)) + #define XLAT_STR_13 STRINGIFY(ETH_P_MOBITEX) XLAT(ETH_P_CONTROL), + #define XLAT_VAL_14 ((unsigned) (ETH_P_CONTROL)) + #define XLAT_STR_14 STRINGIFY(ETH_P_CONTROL) XLAT(ETH_P_IRDA), + #define XLAT_VAL_15 ((unsigned) (ETH_P_IRDA)) + #define XLAT_STR_15 STRINGIFY(ETH_P_IRDA) XLAT(ETH_P_ECONET), + #define XLAT_VAL_16 ((unsigned) (ETH_P_ECONET)) + #define XLAT_STR_16 STRINGIFY(ETH_P_ECONET) XLAT(ETH_P_HDLC), + #define XLAT_VAL_17 ((unsigned) (ETH_P_HDLC)) + #define XLAT_STR_17 STRINGIFY(ETH_P_HDLC) XLAT(ETH_P_ARCNET), + #define XLAT_VAL_18 ((unsigned) (ETH_P_ARCNET)) + #define XLAT_STR_18 STRINGIFY(ETH_P_ARCNET) XLAT(ETH_P_DSA), + #define XLAT_VAL_19 ((unsigned) (ETH_P_DSA)) + #define XLAT_STR_19 STRINGIFY(ETH_P_DSA) XLAT(ETH_P_TRAILER), + #define XLAT_VAL_20 ((unsigned) (ETH_P_TRAILER)) + #define XLAT_STR_20 STRINGIFY(ETH_P_TRAILER) XLAT(ETH_P_LOOP), + #define XLAT_VAL_21 ((unsigned) (ETH_P_LOOP)) + #define XLAT_STR_21 STRINGIFY(ETH_P_LOOP) XLAT(ETH_P_PHONET), + #define XLAT_VAL_22 ((unsigned) (ETH_P_PHONET)) + #define XLAT_STR_22 STRINGIFY(ETH_P_PHONET) XLAT(ETH_P_IEEE802154), + #define XLAT_VAL_23 ((unsigned) (ETH_P_IEEE802154)) + #define XLAT_STR_23 STRINGIFY(ETH_P_IEEE802154) XLAT(ETH_P_CAIF), + #define XLAT_VAL_24 ((unsigned) (ETH_P_CAIF)) + #define XLAT_STR_24 STRINGIFY(ETH_P_CAIF) XLAT(ETH_P_XDSA), + #define XLAT_VAL_25 ((unsigned) (ETH_P_XDSA)) + #define XLAT_STR_25 STRINGIFY(ETH_P_XDSA) XLAT(ETH_P_MAP), + #define XLAT_VAL_26 ((unsigned) (ETH_P_MAP)) + #define XLAT_STR_26 STRINGIFY(ETH_P_MAP) XLAT(ETH_P_PUP), + #define XLAT_VAL_27 ((unsigned) (ETH_P_PUP)) + #define XLAT_STR_27 STRINGIFY(ETH_P_PUP) XLAT(ETH_P_PUPAT), + #define XLAT_VAL_28 ((unsigned) (ETH_P_PUPAT)) + #define XLAT_STR_28 STRINGIFY(ETH_P_PUPAT) XLAT(ETH_P_802_3_MIN), + #define XLAT_VAL_29 ((unsigned) (ETH_P_802_3_MIN)) + #define XLAT_STR_29 STRINGIFY(ETH_P_802_3_MIN) XLAT(ETH_P_IP), + #define XLAT_VAL_30 ((unsigned) (ETH_P_IP)) + #define XLAT_STR_30 STRINGIFY(ETH_P_IP) XLAT(ETH_P_X25), + #define XLAT_VAL_31 ((unsigned) (ETH_P_X25)) + #define XLAT_STR_31 STRINGIFY(ETH_P_X25) XLAT(ETH_P_ARP), + #define XLAT_VAL_32 ((unsigned) (ETH_P_ARP)) + #define XLAT_STR_32 STRINGIFY(ETH_P_ARP) XLAT(ETH_P_BPQ), + #define XLAT_VAL_33 ((unsigned) (ETH_P_BPQ)) + #define XLAT_STR_33 STRINGIFY(ETH_P_BPQ) XLAT(ETH_P_IEEEPUP), + #define XLAT_VAL_34 ((unsigned) (ETH_P_IEEEPUP)) + #define XLAT_STR_34 STRINGIFY(ETH_P_IEEEPUP) XLAT(ETH_P_IEEEPUPAT), + #define XLAT_VAL_35 ((unsigned) (ETH_P_IEEEPUPAT)) + #define XLAT_STR_35 STRINGIFY(ETH_P_IEEEPUPAT) XLAT(ETH_P_ERSPAN2), + #define XLAT_VAL_36 ((unsigned) (ETH_P_ERSPAN2)) + #define XLAT_STR_36 STRINGIFY(ETH_P_ERSPAN2) XLAT(ETH_P_TSN), + #define XLAT_VAL_37 ((unsigned) (ETH_P_TSN)) + #define XLAT_STR_37 STRINGIFY(ETH_P_TSN) XLAT(ETH_P_BATMAN), + #define XLAT_VAL_38 ((unsigned) (ETH_P_BATMAN)) + #define XLAT_STR_38 STRINGIFY(ETH_P_BATMAN) XLAT(ETH_P_DEC), + #define XLAT_VAL_39 ((unsigned) (ETH_P_DEC)) + #define XLAT_STR_39 STRINGIFY(ETH_P_DEC) XLAT(ETH_P_DNA_DL), + #define XLAT_VAL_40 ((unsigned) (ETH_P_DNA_DL)) + #define XLAT_STR_40 STRINGIFY(ETH_P_DNA_DL) XLAT(ETH_P_DNA_RC), + #define XLAT_VAL_41 ((unsigned) (ETH_P_DNA_RC)) + #define XLAT_STR_41 STRINGIFY(ETH_P_DNA_RC) XLAT(ETH_P_DNA_RT), + #define XLAT_VAL_42 ((unsigned) (ETH_P_DNA_RT)) + #define XLAT_STR_42 STRINGIFY(ETH_P_DNA_RT) XLAT(ETH_P_LAT), + #define XLAT_VAL_43 ((unsigned) (ETH_P_LAT)) + #define XLAT_STR_43 STRINGIFY(ETH_P_LAT) XLAT(ETH_P_DIAG), + #define XLAT_VAL_44 ((unsigned) (ETH_P_DIAG)) + #define XLAT_STR_44 STRINGIFY(ETH_P_DIAG) XLAT(ETH_P_CUST), + #define XLAT_VAL_45 ((unsigned) (ETH_P_CUST)) + #define XLAT_STR_45 STRINGIFY(ETH_P_CUST) XLAT(ETH_P_SCA), + #define XLAT_VAL_46 ((unsigned) (ETH_P_SCA)) + #define XLAT_STR_46 STRINGIFY(ETH_P_SCA) XLAT(ETH_P_TEB), + #define XLAT_VAL_47 ((unsigned) (ETH_P_TEB)) + #define XLAT_STR_47 STRINGIFY(ETH_P_TEB) XLAT(ETH_P_RARP), + #define XLAT_VAL_48 ((unsigned) (ETH_P_RARP)) + #define XLAT_STR_48 STRINGIFY(ETH_P_RARP) XLAT(ETH_P_ATALK), + #define XLAT_VAL_49 ((unsigned) (ETH_P_ATALK)) + #define XLAT_STR_49 STRINGIFY(ETH_P_ATALK) XLAT(ETH_P_AARP), + #define XLAT_VAL_50 ((unsigned) (ETH_P_AARP)) + #define XLAT_STR_50 STRINGIFY(ETH_P_AARP) XLAT(ETH_P_8021Q), + #define XLAT_VAL_51 ((unsigned) (ETH_P_8021Q)) + #define XLAT_STR_51 STRINGIFY(ETH_P_8021Q) XLAT(ETH_P_IPX), + #define XLAT_VAL_52 ((unsigned) (ETH_P_IPX)) + #define XLAT_STR_52 STRINGIFY(ETH_P_IPX) XLAT(ETH_P_IPV6), + #define XLAT_VAL_53 ((unsigned) (ETH_P_IPV6)) + #define XLAT_STR_53 STRINGIFY(ETH_P_IPV6) XLAT(ETH_P_PAUSE), + #define XLAT_VAL_54 ((unsigned) (ETH_P_PAUSE)) + #define XLAT_STR_54 STRINGIFY(ETH_P_PAUSE) XLAT(ETH_P_SLOW), + #define XLAT_VAL_55 ((unsigned) (ETH_P_SLOW)) + #define XLAT_STR_55 STRINGIFY(ETH_P_SLOW) XLAT(ETH_P_WCCP), + #define XLAT_VAL_56 ((unsigned) (ETH_P_WCCP)) + #define XLAT_STR_56 STRINGIFY(ETH_P_WCCP) XLAT(ETH_P_MPLS_UC), + #define XLAT_VAL_57 ((unsigned) (ETH_P_MPLS_UC)) + #define XLAT_STR_57 STRINGIFY(ETH_P_MPLS_UC) XLAT(ETH_P_MPLS_MC), + #define XLAT_VAL_58 ((unsigned) (ETH_P_MPLS_MC)) + #define XLAT_STR_58 STRINGIFY(ETH_P_MPLS_MC) XLAT(ETH_P_ATMMPOA), + #define XLAT_VAL_59 ((unsigned) (ETH_P_ATMMPOA)) + #define XLAT_STR_59 STRINGIFY(ETH_P_ATMMPOA) XLAT(ETH_P_PPP_DISC), + #define XLAT_VAL_60 ((unsigned) (ETH_P_PPP_DISC)) + #define XLAT_STR_60 STRINGIFY(ETH_P_PPP_DISC) XLAT(ETH_P_PPP_SES), + #define XLAT_VAL_61 ((unsigned) (ETH_P_PPP_SES)) + #define XLAT_STR_61 STRINGIFY(ETH_P_PPP_SES) XLAT(ETH_P_LINK_CTL), + #define XLAT_VAL_62 ((unsigned) (ETH_P_LINK_CTL)) + #define XLAT_STR_62 STRINGIFY(ETH_P_LINK_CTL) XLAT(ETH_P_ATMFATE), + #define XLAT_VAL_63 ((unsigned) (ETH_P_ATMFATE)) + #define XLAT_STR_63 STRINGIFY(ETH_P_ATMFATE) XLAT(ETH_P_PAE), + #define XLAT_VAL_64 ((unsigned) (ETH_P_PAE)) + #define XLAT_STR_64 STRINGIFY(ETH_P_PAE) XLAT(ETH_P_AOE), + #define XLAT_VAL_65 ((unsigned) (ETH_P_AOE)) + #define XLAT_STR_65 STRINGIFY(ETH_P_AOE) XLAT(ETH_P_8021AD), + #define XLAT_VAL_66 ((unsigned) (ETH_P_8021AD)) + #define XLAT_STR_66 STRINGIFY(ETH_P_8021AD) XLAT(ETH_P_802_EX1), + #define XLAT_VAL_67 ((unsigned) (ETH_P_802_EX1)) + #define XLAT_STR_67 STRINGIFY(ETH_P_802_EX1) XLAT(ETH_P_ERSPAN), + #define XLAT_VAL_68 ((unsigned) (ETH_P_ERSPAN)) + #define XLAT_STR_68 STRINGIFY(ETH_P_ERSPAN) XLAT(ETH_P_PREAUTH), + #define XLAT_VAL_69 ((unsigned) (ETH_P_PREAUTH)) + #define XLAT_STR_69 STRINGIFY(ETH_P_PREAUTH) XLAT(ETH_P_TIPC), + #define XLAT_VAL_70 ((unsigned) (ETH_P_TIPC)) + #define XLAT_STR_70 STRINGIFY(ETH_P_TIPC) + XLAT(ETH_P_LLDP), + #define XLAT_VAL_71 ((unsigned) (ETH_P_LLDP)) + #define XLAT_STR_71 STRINGIFY(ETH_P_LLDP) + XLAT(ETH_P_MRP), + #define XLAT_VAL_72 ((unsigned) (ETH_P_MRP)) + #define XLAT_STR_72 STRINGIFY(ETH_P_MRP) XLAT(ETH_P_MACSEC), + #define XLAT_VAL_73 ((unsigned) (ETH_P_MACSEC)) + #define XLAT_STR_73 STRINGIFY(ETH_P_MACSEC) XLAT(ETH_P_8021AH), + #define XLAT_VAL_74 ((unsigned) (ETH_P_8021AH)) + #define XLAT_STR_74 STRINGIFY(ETH_P_8021AH) XLAT(ETH_P_MVRP), + #define XLAT_VAL_75 ((unsigned) (ETH_P_MVRP)) + #define XLAT_STR_75 STRINGIFY(ETH_P_MVRP) XLAT(ETH_P_1588), + #define XLAT_VAL_76 ((unsigned) (ETH_P_1588)) + #define XLAT_STR_76 STRINGIFY(ETH_P_1588) XLAT(ETH_P_NCSI), + #define XLAT_VAL_77 ((unsigned) (ETH_P_NCSI)) + #define XLAT_STR_77 STRINGIFY(ETH_P_NCSI) XLAT(ETH_P_PRP), + #define XLAT_VAL_78 ((unsigned) (ETH_P_PRP)) + #define XLAT_STR_78 STRINGIFY(ETH_P_PRP) XLAT(ETH_P_FCOE), + #define XLAT_VAL_79 ((unsigned) (ETH_P_FCOE)) + #define XLAT_STR_79 STRINGIFY(ETH_P_FCOE) XLAT(ETH_P_TDLS), + #define XLAT_VAL_80 ((unsigned) (ETH_P_TDLS)) + #define XLAT_STR_80 STRINGIFY(ETH_P_TDLS) XLAT(ETH_P_FIP), + #define XLAT_VAL_81 ((unsigned) (ETH_P_FIP)) + #define XLAT_STR_81 STRINGIFY(ETH_P_FIP) XLAT(ETH_P_IBOE), + #define XLAT_VAL_82 ((unsigned) (ETH_P_IBOE)) + #define XLAT_STR_82 STRINGIFY(ETH_P_IBOE) XLAT(ETH_P_80221), + #define XLAT_VAL_83 ((unsigned) (ETH_P_80221)) + #define XLAT_STR_83 STRINGIFY(ETH_P_80221) XLAT(ETH_P_HSR), + #define XLAT_VAL_84 ((unsigned) (ETH_P_HSR)) + #define XLAT_STR_84 STRINGIFY(ETH_P_HSR) XLAT(ETH_P_NSH), + #define XLAT_VAL_85 ((unsigned) (ETH_P_NSH)) + #define XLAT_STR_85 STRINGIFY(ETH_P_NSH) XLAT(ETH_P_LOOPBACK), + #define XLAT_VAL_86 ((unsigned) (ETH_P_LOOPBACK)) + #define XLAT_STR_86 STRINGIFY(ETH_P_LOOPBACK) XLAT(ETH_P_QINQ1), + #define XLAT_VAL_87 ((unsigned) (ETH_P_QINQ1)) + #define XLAT_STR_87 STRINGIFY(ETH_P_QINQ1) XLAT(ETH_P_QINQ2), + #define XLAT_VAL_88 ((unsigned) (ETH_P_QINQ2)) + #define XLAT_STR_88 STRINGIFY(ETH_P_QINQ2) XLAT(ETH_P_QINQ3), + #define XLAT_VAL_89 ((unsigned) (ETH_P_QINQ3)) + #define XLAT_STR_89 STRINGIFY(ETH_P_QINQ3) XLAT(ETH_P_EDSA), + #define XLAT_VAL_90 ((unsigned) (ETH_P_EDSA)) + #define XLAT_STR_90 STRINGIFY(ETH_P_EDSA) + XLAT(ETH_P_DSA_8021Q), + #define XLAT_VAL_91 ((unsigned) (ETH_P_DSA_8021Q)) + #define XLAT_STR_91 STRINGIFY(ETH_P_DSA_8021Q) XLAT(ETH_P_IFE), + #define XLAT_VAL_92 ((unsigned) (ETH_P_IFE)) + #define XLAT_STR_92 STRINGIFY(ETH_P_IFE) XLAT(ETH_P_AF_IUCV), - XLAT_END + #define XLAT_VAL_93 ((unsigned) (ETH_P_AF_IUCV)) + #define XLAT_STR_93 STRINGIFY(ETH_P_AF_IUCV) }; +const struct xlat ethernet_protocols[1] = { { + .data = ethernet_protocols_xdata, + .size = ARRAY_SIZE(ethernet_protocols_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif +# ifdef XLAT_VAL_41 + | XLAT_VAL_41 +# endif +# ifdef XLAT_VAL_42 + | XLAT_VAL_42 +# endif +# ifdef XLAT_VAL_43 + | XLAT_VAL_43 +# endif +# ifdef XLAT_VAL_44 + | XLAT_VAL_44 +# endif +# ifdef XLAT_VAL_45 + | XLAT_VAL_45 +# endif +# ifdef XLAT_VAL_46 + | XLAT_VAL_46 +# endif +# ifdef XLAT_VAL_47 + | XLAT_VAL_47 +# endif +# ifdef XLAT_VAL_48 + | XLAT_VAL_48 +# endif +# ifdef XLAT_VAL_49 + | XLAT_VAL_49 +# endif +# ifdef XLAT_VAL_50 + | XLAT_VAL_50 +# endif +# ifdef XLAT_VAL_51 + | XLAT_VAL_51 +# endif +# ifdef XLAT_VAL_52 + | XLAT_VAL_52 +# endif +# ifdef XLAT_VAL_53 + | XLAT_VAL_53 +# endif +# ifdef XLAT_VAL_54 + | XLAT_VAL_54 +# endif +# ifdef XLAT_VAL_55 + | XLAT_VAL_55 +# endif +# ifdef XLAT_VAL_56 + | XLAT_VAL_56 +# endif +# ifdef XLAT_VAL_57 + | XLAT_VAL_57 +# endif +# ifdef XLAT_VAL_58 + | XLAT_VAL_58 +# endif +# ifdef XLAT_VAL_59 + | XLAT_VAL_59 +# endif +# ifdef XLAT_VAL_60 + | XLAT_VAL_60 +# endif +# ifdef XLAT_VAL_61 + | XLAT_VAL_61 +# endif +# ifdef XLAT_VAL_62 + | XLAT_VAL_62 +# endif +# ifdef XLAT_VAL_63 + | XLAT_VAL_63 +# endif +# ifdef XLAT_VAL_64 + | XLAT_VAL_64 +# endif +# ifdef XLAT_VAL_65 + | XLAT_VAL_65 +# endif +# ifdef XLAT_VAL_66 + | XLAT_VAL_66 +# endif +# ifdef XLAT_VAL_67 + | XLAT_VAL_67 +# endif +# ifdef XLAT_VAL_68 + | XLAT_VAL_68 +# endif +# ifdef XLAT_VAL_69 + | XLAT_VAL_69 +# endif +# ifdef XLAT_VAL_70 + | XLAT_VAL_70 +# endif +# ifdef XLAT_VAL_71 + | XLAT_VAL_71 +# endif +# ifdef XLAT_VAL_72 + | XLAT_VAL_72 +# endif +# ifdef XLAT_VAL_73 + | XLAT_VAL_73 +# endif +# ifdef XLAT_VAL_74 + | XLAT_VAL_74 +# endif +# ifdef XLAT_VAL_75 + | XLAT_VAL_75 +# endif +# ifdef XLAT_VAL_76 + | XLAT_VAL_76 +# endif +# ifdef XLAT_VAL_77 + | XLAT_VAL_77 +# endif +# ifdef XLAT_VAL_78 + | XLAT_VAL_78 +# endif +# ifdef XLAT_VAL_79 + | XLAT_VAL_79 +# endif +# ifdef XLAT_VAL_80 + | XLAT_VAL_80 +# endif +# ifdef XLAT_VAL_81 + | XLAT_VAL_81 +# endif +# ifdef XLAT_VAL_82 + | XLAT_VAL_82 +# endif +# ifdef XLAT_VAL_83 + | XLAT_VAL_83 +# endif +# ifdef XLAT_VAL_84 + | XLAT_VAL_84 +# endif +# ifdef XLAT_VAL_85 + | XLAT_VAL_85 +# endif +# ifdef XLAT_VAL_86 + | XLAT_VAL_86 +# endif +# ifdef XLAT_VAL_87 + | XLAT_VAL_87 +# endif +# ifdef XLAT_VAL_88 + | XLAT_VAL_88 +# endif +# ifdef XLAT_VAL_89 + | XLAT_VAL_89 +# endif +# ifdef XLAT_VAL_90 + | XLAT_VAL_90 +# endif +# ifdef XLAT_VAL_91 + | XLAT_VAL_91 +# endif +# ifdef XLAT_VAL_92 + | XLAT_VAL_92 +# endif +# ifdef XLAT_VAL_93 + | XLAT_VAL_93 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif +# ifdef XLAT_STR_41 + + sizeof(XLAT_STR_41) +# endif +# ifdef XLAT_STR_42 + + sizeof(XLAT_STR_42) +# endif +# ifdef XLAT_STR_43 + + sizeof(XLAT_STR_43) +# endif +# ifdef XLAT_STR_44 + + sizeof(XLAT_STR_44) +# endif +# ifdef XLAT_STR_45 + + sizeof(XLAT_STR_45) +# endif +# ifdef XLAT_STR_46 + + sizeof(XLAT_STR_46) +# endif +# ifdef XLAT_STR_47 + + sizeof(XLAT_STR_47) +# endif +# ifdef XLAT_STR_48 + + sizeof(XLAT_STR_48) +# endif +# ifdef XLAT_STR_49 + + sizeof(XLAT_STR_49) +# endif +# ifdef XLAT_STR_50 + + sizeof(XLAT_STR_50) +# endif +# ifdef XLAT_STR_51 + + sizeof(XLAT_STR_51) +# endif +# ifdef XLAT_STR_52 + + sizeof(XLAT_STR_52) +# endif +# ifdef XLAT_STR_53 + + sizeof(XLAT_STR_53) +# endif +# ifdef XLAT_STR_54 + + sizeof(XLAT_STR_54) +# endif +# ifdef XLAT_STR_55 + + sizeof(XLAT_STR_55) +# endif +# ifdef XLAT_STR_56 + + sizeof(XLAT_STR_56) +# endif +# ifdef XLAT_STR_57 + + sizeof(XLAT_STR_57) +# endif +# ifdef XLAT_STR_58 + + sizeof(XLAT_STR_58) +# endif +# ifdef XLAT_STR_59 + + sizeof(XLAT_STR_59) +# endif +# ifdef XLAT_STR_60 + + sizeof(XLAT_STR_60) +# endif +# ifdef XLAT_STR_61 + + sizeof(XLAT_STR_61) +# endif +# ifdef XLAT_STR_62 + + sizeof(XLAT_STR_62) +# endif +# ifdef XLAT_STR_63 + + sizeof(XLAT_STR_63) +# endif +# ifdef XLAT_STR_64 + + sizeof(XLAT_STR_64) +# endif +# ifdef XLAT_STR_65 + + sizeof(XLAT_STR_65) +# endif +# ifdef XLAT_STR_66 + + sizeof(XLAT_STR_66) +# endif +# ifdef XLAT_STR_67 + + sizeof(XLAT_STR_67) +# endif +# ifdef XLAT_STR_68 + + sizeof(XLAT_STR_68) +# endif +# ifdef XLAT_STR_69 + + sizeof(XLAT_STR_69) +# endif +# ifdef XLAT_STR_70 + + sizeof(XLAT_STR_70) +# endif +# ifdef XLAT_STR_71 + + sizeof(XLAT_STR_71) +# endif +# ifdef XLAT_STR_72 + + sizeof(XLAT_STR_72) +# endif +# ifdef XLAT_STR_73 + + sizeof(XLAT_STR_73) +# endif +# ifdef XLAT_STR_74 + + sizeof(XLAT_STR_74) +# endif +# ifdef XLAT_STR_75 + + sizeof(XLAT_STR_75) +# endif +# ifdef XLAT_STR_76 + + sizeof(XLAT_STR_76) +# endif +# ifdef XLAT_STR_77 + + sizeof(XLAT_STR_77) +# endif +# ifdef XLAT_STR_78 + + sizeof(XLAT_STR_78) +# endif +# ifdef XLAT_STR_79 + + sizeof(XLAT_STR_79) +# endif +# ifdef XLAT_STR_80 + + sizeof(XLAT_STR_80) +# endif +# ifdef XLAT_STR_81 + + sizeof(XLAT_STR_81) +# endif +# ifdef XLAT_STR_82 + + sizeof(XLAT_STR_82) +# endif +# ifdef XLAT_STR_83 + + sizeof(XLAT_STR_83) +# endif +# ifdef XLAT_STR_84 + + sizeof(XLAT_STR_84) +# endif +# ifdef XLAT_STR_85 + + sizeof(XLAT_STR_85) +# endif +# ifdef XLAT_STR_86 + + sizeof(XLAT_STR_86) +# endif +# ifdef XLAT_STR_87 + + sizeof(XLAT_STR_87) +# endif +# ifdef XLAT_STR_88 + + sizeof(XLAT_STR_88) +# endif +# ifdef XLAT_STR_89 + + sizeof(XLAT_STR_89) +# endif +# ifdef XLAT_STR_90 + + sizeof(XLAT_STR_90) +# endif +# ifdef XLAT_STR_91 + + sizeof(XLAT_STR_91) +# endif +# ifdef XLAT_STR_92 + + sizeof(XLAT_STR_92) +# endif +# ifdef XLAT_STR_93 + + sizeof(XLAT_STR_93) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 +# undef XLAT_STR_41 +# undef XLAT_VAL_41 +# undef XLAT_STR_42 +# undef XLAT_VAL_42 +# undef XLAT_STR_43 +# undef XLAT_VAL_43 +# undef XLAT_STR_44 +# undef XLAT_VAL_44 +# undef XLAT_STR_45 +# undef XLAT_VAL_45 +# undef XLAT_STR_46 +# undef XLAT_VAL_46 +# undef XLAT_STR_47 +# undef XLAT_VAL_47 +# undef XLAT_STR_48 +# undef XLAT_VAL_48 +# undef XLAT_STR_49 +# undef XLAT_VAL_49 +# undef XLAT_STR_50 +# undef XLAT_VAL_50 +# undef XLAT_STR_51 +# undef XLAT_VAL_51 +# undef XLAT_STR_52 +# undef XLAT_VAL_52 +# undef XLAT_STR_53 +# undef XLAT_VAL_53 +# undef XLAT_STR_54 +# undef XLAT_VAL_54 +# undef XLAT_STR_55 +# undef XLAT_VAL_55 +# undef XLAT_STR_56 +# undef XLAT_VAL_56 +# undef XLAT_STR_57 +# undef XLAT_VAL_57 +# undef XLAT_STR_58 +# undef XLAT_VAL_58 +# undef XLAT_STR_59 +# undef XLAT_VAL_59 +# undef XLAT_STR_60 +# undef XLAT_VAL_60 +# undef XLAT_STR_61 +# undef XLAT_VAL_61 +# undef XLAT_STR_62 +# undef XLAT_VAL_62 +# undef XLAT_STR_63 +# undef XLAT_VAL_63 +# undef XLAT_STR_64 +# undef XLAT_VAL_64 +# undef XLAT_STR_65 +# undef XLAT_VAL_65 +# undef XLAT_STR_66 +# undef XLAT_VAL_66 +# undef XLAT_STR_67 +# undef XLAT_VAL_67 +# undef XLAT_STR_68 +# undef XLAT_VAL_68 +# undef XLAT_STR_69 +# undef XLAT_VAL_69 +# undef XLAT_STR_70 +# undef XLAT_VAL_70 +# undef XLAT_STR_71 +# undef XLAT_VAL_71 +# undef XLAT_STR_72 +# undef XLAT_VAL_72 +# undef XLAT_STR_73 +# undef XLAT_VAL_73 +# undef XLAT_STR_74 +# undef XLAT_VAL_74 +# undef XLAT_STR_75 +# undef XLAT_VAL_75 +# undef XLAT_STR_76 +# undef XLAT_VAL_76 +# undef XLAT_STR_77 +# undef XLAT_VAL_77 +# undef XLAT_STR_78 +# undef XLAT_VAL_78 +# undef XLAT_STR_79 +# undef XLAT_VAL_79 +# undef XLAT_STR_80 +# undef XLAT_VAL_80 +# undef XLAT_STR_81 +# undef XLAT_VAL_81 +# undef XLAT_STR_82 +# undef XLAT_VAL_82 +# undef XLAT_STR_83 +# undef XLAT_VAL_83 +# undef XLAT_STR_84 +# undef XLAT_VAL_84 +# undef XLAT_STR_85 +# undef XLAT_VAL_85 +# undef XLAT_STR_86 +# undef XLAT_VAL_86 +# undef XLAT_STR_87 +# undef XLAT_VAL_87 +# undef XLAT_STR_88 +# undef XLAT_VAL_88 +# undef XLAT_STR_89 +# undef XLAT_VAL_89 +# undef XLAT_STR_90 +# undef XLAT_VAL_90 +# undef XLAT_STR_91 +# undef XLAT_VAL_91 +# undef XLAT_STR_92 +# undef XLAT_VAL_92 +# undef XLAT_STR_93 +# undef XLAT_VAL_93 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/ethernet_protocols.in b/xlat/ethernet_protocols.in index 80c52a96..6277b4f6 100644 --- a/xlat/ethernet_protocols.in +++ b/xlat/ethernet_protocols.in @@ -1,4 +1,4 @@ -/* sort -k2,2 */ +#sorted sort -k2,2 ETH_P_802_3 0x0001 /* Dummy type for 802.3 frames */ ETH_P_AX25 0x0002 /* Dummy protocol id for AX.25 */ ETH_P_ALL 0x0003 /* Every packet (be careful!!!) */ @@ -70,6 +70,8 @@ ETH_P_802_EX1 0x88B5 /* 802.1 Local Experimental 1. */ ETH_P_ERSPAN 0x88BE /* ERSPAN type II */ ETH_P_PREAUTH 0x88C7 /* 802.11 Preauthentication */ ETH_P_TIPC 0x88CA /* TIPC */ +ETH_P_LLDP 0x88CC /* Link Layer Discovery Protocol */ +ETH_P_MRP 0x88E3 /* Media Redundancy Protocol */ ETH_P_MACSEC 0x88E5 /* 802.1ae MACsec */ ETH_P_8021AH 0x88E7 /* 802.1ah Backbone Service Tag */ ETH_P_MVRP 0x88F5 /* 802.1Q MVRP */ @@ -88,5 +90,6 @@ ETH_P_QINQ1 0x9100 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] ETH_P_QINQ2 0x9200 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */ ETH_P_QINQ3 0x9300 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */ ETH_P_EDSA 0xDADA /* Ethertype DSA [ NOT AN OFFICIALLY REGISTERED ID ] */ +ETH_P_DSA_8021Q 0xDADB /* Fake VLAN Header for DSA [ NOT AN OFFICIALLY REGISTERED ID ] */ ETH_P_IFE 0xED3E /* ForCES inter-FE LFB type */ ETH_P_AF_IUCV 0xFBFB /* IBM af_iucv [ NOT AN OFFICIALLY REGISTERED ID ] */ diff --git a/xlat/evdev_abs.h b/xlat/evdev_abs.h index b9aafaf3..baff3cc7 100644 --- a/xlat/evdev_abs.h +++ b/xlat/evdev_abs.h @@ -302,52 +302,480 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # ifndef IN_MPERS -const struct xlat evdev_abs[] = { +static const struct xlat_data evdev_abs_xdata[] = { [ABS_X] = XLAT(ABS_X), + #define XLAT_VAL_0 ((unsigned) (ABS_X)) + #define XLAT_STR_0 STRINGIFY(ABS_X) [ABS_Y] = XLAT(ABS_Y), + #define XLAT_VAL_1 ((unsigned) (ABS_Y)) + #define XLAT_STR_1 STRINGIFY(ABS_Y) [ABS_Z] = XLAT(ABS_Z), + #define XLAT_VAL_2 ((unsigned) (ABS_Z)) + #define XLAT_STR_2 STRINGIFY(ABS_Z) [ABS_RX] = XLAT(ABS_RX), + #define XLAT_VAL_3 ((unsigned) (ABS_RX)) + #define XLAT_STR_3 STRINGIFY(ABS_RX) [ABS_RY] = XLAT(ABS_RY), + #define XLAT_VAL_4 ((unsigned) (ABS_RY)) + #define XLAT_STR_4 STRINGIFY(ABS_RY) [ABS_RZ] = XLAT(ABS_RZ), + #define XLAT_VAL_5 ((unsigned) (ABS_RZ)) + #define XLAT_STR_5 STRINGIFY(ABS_RZ) [ABS_THROTTLE] = XLAT(ABS_THROTTLE), + #define XLAT_VAL_6 ((unsigned) (ABS_THROTTLE)) + #define XLAT_STR_6 STRINGIFY(ABS_THROTTLE) [ABS_RUDDER] = XLAT(ABS_RUDDER), + #define XLAT_VAL_7 ((unsigned) (ABS_RUDDER)) + #define XLAT_STR_7 STRINGIFY(ABS_RUDDER) [ABS_WHEEL] = XLAT(ABS_WHEEL), + #define XLAT_VAL_8 ((unsigned) (ABS_WHEEL)) + #define XLAT_STR_8 STRINGIFY(ABS_WHEEL) [ABS_GAS] = XLAT(ABS_GAS), + #define XLAT_VAL_9 ((unsigned) (ABS_GAS)) + #define XLAT_STR_9 STRINGIFY(ABS_GAS) [ABS_BRAKE] = XLAT(ABS_BRAKE), + #define XLAT_VAL_10 ((unsigned) (ABS_BRAKE)) + #define XLAT_STR_10 STRINGIFY(ABS_BRAKE) [ABS_HAT0X] = XLAT(ABS_HAT0X), + #define XLAT_VAL_11 ((unsigned) (ABS_HAT0X)) + #define XLAT_STR_11 STRINGIFY(ABS_HAT0X) [ABS_HAT0Y] = XLAT(ABS_HAT0Y), + #define XLAT_VAL_12 ((unsigned) (ABS_HAT0Y)) + #define XLAT_STR_12 STRINGIFY(ABS_HAT0Y) [ABS_HAT1X] = XLAT(ABS_HAT1X), + #define XLAT_VAL_13 ((unsigned) (ABS_HAT1X)) + #define XLAT_STR_13 STRINGIFY(ABS_HAT1X) [ABS_HAT1Y] = XLAT(ABS_HAT1Y), + #define XLAT_VAL_14 ((unsigned) (ABS_HAT1Y)) + #define XLAT_STR_14 STRINGIFY(ABS_HAT1Y) [ABS_HAT2X] = XLAT(ABS_HAT2X), + #define XLAT_VAL_15 ((unsigned) (ABS_HAT2X)) + #define XLAT_STR_15 STRINGIFY(ABS_HAT2X) [ABS_HAT2Y] = XLAT(ABS_HAT2Y), + #define XLAT_VAL_16 ((unsigned) (ABS_HAT2Y)) + #define XLAT_STR_16 STRINGIFY(ABS_HAT2Y) [ABS_HAT3X] = XLAT(ABS_HAT3X), + #define XLAT_VAL_17 ((unsigned) (ABS_HAT3X)) + #define XLAT_STR_17 STRINGIFY(ABS_HAT3X) [ABS_HAT3Y] = XLAT(ABS_HAT3Y), + #define XLAT_VAL_18 ((unsigned) (ABS_HAT3Y)) + #define XLAT_STR_18 STRINGIFY(ABS_HAT3Y) [ABS_PRESSURE] = XLAT(ABS_PRESSURE), + #define XLAT_VAL_19 ((unsigned) (ABS_PRESSURE)) + #define XLAT_STR_19 STRINGIFY(ABS_PRESSURE) [ABS_DISTANCE] = XLAT(ABS_DISTANCE), + #define XLAT_VAL_20 ((unsigned) (ABS_DISTANCE)) + #define XLAT_STR_20 STRINGIFY(ABS_DISTANCE) [ABS_TILT_X] = XLAT(ABS_TILT_X), + #define XLAT_VAL_21 ((unsigned) (ABS_TILT_X)) + #define XLAT_STR_21 STRINGIFY(ABS_TILT_X) [ABS_TILT_Y] = XLAT(ABS_TILT_Y), + #define XLAT_VAL_22 ((unsigned) (ABS_TILT_Y)) + #define XLAT_STR_22 STRINGIFY(ABS_TILT_Y) [ABS_TOOL_WIDTH] = XLAT(ABS_TOOL_WIDTH), + #define XLAT_VAL_23 ((unsigned) (ABS_TOOL_WIDTH)) + #define XLAT_STR_23 STRINGIFY(ABS_TOOL_WIDTH) [ABS_VOLUME] = XLAT(ABS_VOLUME), + #define XLAT_VAL_24 ((unsigned) (ABS_VOLUME)) + #define XLAT_STR_24 STRINGIFY(ABS_VOLUME) [ABS_MISC] = XLAT(ABS_MISC), + #define XLAT_VAL_25 ((unsigned) (ABS_MISC)) + #define XLAT_STR_25 STRINGIFY(ABS_MISC) [ABS_RESERVED] = XLAT(ABS_RESERVED), + #define XLAT_VAL_26 ((unsigned) (ABS_RESERVED)) + #define XLAT_STR_26 STRINGIFY(ABS_RESERVED) [ABS_MT_SLOT] = XLAT(ABS_MT_SLOT), + #define XLAT_VAL_27 ((unsigned) (ABS_MT_SLOT)) + #define XLAT_STR_27 STRINGIFY(ABS_MT_SLOT) [ABS_MT_TOUCH_MAJOR] = XLAT(ABS_MT_TOUCH_MAJOR), + #define XLAT_VAL_28 ((unsigned) (ABS_MT_TOUCH_MAJOR)) + #define XLAT_STR_28 STRINGIFY(ABS_MT_TOUCH_MAJOR) [ABS_MT_TOUCH_MINOR] = XLAT(ABS_MT_TOUCH_MINOR), + #define XLAT_VAL_29 ((unsigned) (ABS_MT_TOUCH_MINOR)) + #define XLAT_STR_29 STRINGIFY(ABS_MT_TOUCH_MINOR) [ABS_MT_WIDTH_MAJOR] = XLAT(ABS_MT_WIDTH_MAJOR), + #define XLAT_VAL_30 ((unsigned) (ABS_MT_WIDTH_MAJOR)) + #define XLAT_STR_30 STRINGIFY(ABS_MT_WIDTH_MAJOR) [ABS_MT_WIDTH_MINOR] = XLAT(ABS_MT_WIDTH_MINOR), + #define XLAT_VAL_31 ((unsigned) (ABS_MT_WIDTH_MINOR)) + #define XLAT_STR_31 STRINGIFY(ABS_MT_WIDTH_MINOR) [ABS_MT_ORIENTATION] = XLAT(ABS_MT_ORIENTATION), + #define XLAT_VAL_32 ((unsigned) (ABS_MT_ORIENTATION)) + #define XLAT_STR_32 STRINGIFY(ABS_MT_ORIENTATION) [ABS_MT_POSITION_X] = XLAT(ABS_MT_POSITION_X), + #define XLAT_VAL_33 ((unsigned) (ABS_MT_POSITION_X)) + #define XLAT_STR_33 STRINGIFY(ABS_MT_POSITION_X) [ABS_MT_POSITION_Y] = XLAT(ABS_MT_POSITION_Y), + #define XLAT_VAL_34 ((unsigned) (ABS_MT_POSITION_Y)) + #define XLAT_STR_34 STRINGIFY(ABS_MT_POSITION_Y) [ABS_MT_TOOL_TYPE] = XLAT(ABS_MT_TOOL_TYPE), + #define XLAT_VAL_35 ((unsigned) (ABS_MT_TOOL_TYPE)) + #define XLAT_STR_35 STRINGIFY(ABS_MT_TOOL_TYPE) [ABS_MT_BLOB_ID] = XLAT(ABS_MT_BLOB_ID), + #define XLAT_VAL_36 ((unsigned) (ABS_MT_BLOB_ID)) + #define XLAT_STR_36 STRINGIFY(ABS_MT_BLOB_ID) [ABS_MT_TRACKING_ID] = XLAT(ABS_MT_TRACKING_ID), + #define XLAT_VAL_37 ((unsigned) (ABS_MT_TRACKING_ID)) + #define XLAT_STR_37 STRINGIFY(ABS_MT_TRACKING_ID) [ABS_MT_PRESSURE] = XLAT(ABS_MT_PRESSURE), + #define XLAT_VAL_38 ((unsigned) (ABS_MT_PRESSURE)) + #define XLAT_STR_38 STRINGIFY(ABS_MT_PRESSURE) [ABS_MT_DISTANCE] = XLAT(ABS_MT_DISTANCE), + #define XLAT_VAL_39 ((unsigned) (ABS_MT_DISTANCE)) + #define XLAT_STR_39 STRINGIFY(ABS_MT_DISTANCE) [ABS_MT_TOOL_X] = XLAT(ABS_MT_TOOL_X), + #define XLAT_VAL_40 ((unsigned) (ABS_MT_TOOL_X)) + #define XLAT_STR_40 STRINGIFY(ABS_MT_TOOL_X) [ABS_MT_TOOL_Y] = XLAT(ABS_MT_TOOL_Y), - XLAT_END + #define XLAT_VAL_41 ((unsigned) (ABS_MT_TOOL_Y)) + #define XLAT_STR_41 STRINGIFY(ABS_MT_TOOL_Y) }; +const struct xlat evdev_abs[1] = { { + .data = evdev_abs_xdata, + .size = ARRAY_SIZE(evdev_abs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif +# ifdef XLAT_VAL_41 + | XLAT_VAL_41 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif +# ifdef XLAT_STR_41 + + sizeof(XLAT_STR_41) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 +# undef XLAT_STR_41 +# undef XLAT_VAL_41 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/evdev_autorepeat.h b/xlat/evdev_autorepeat.h index c6edd503..ba6b2a4e 100644 --- a/xlat/evdev_autorepeat.h +++ b/xlat/evdev_autorepeat.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat evdev_autorepeat[] = { +static const struct xlat_data evdev_autorepeat_xdata[] = { [REP_DELAY] = XLAT(REP_DELAY), + #define XLAT_VAL_0 ((unsigned) (REP_DELAY)) + #define XLAT_STR_0 STRINGIFY(REP_DELAY) [REP_PERIOD] = XLAT(REP_PERIOD), - XLAT_END + #define XLAT_VAL_1 ((unsigned) (REP_PERIOD)) + #define XLAT_STR_1 STRINGIFY(REP_PERIOD) }; +static +const struct xlat evdev_autorepeat[1] = { { + .data = evdev_autorepeat_xdata, + .size = ARRAY_SIZE(evdev_autorepeat_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/evdev_ev.h b/xlat/evdev_ev.h index a112805d..c15140ad 100644 --- a/xlat/evdev_ev.h +++ b/xlat/evdev_ev.h @@ -92,22 +92,150 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # ifndef IN_MPERS -const struct xlat evdev_ev[] = { +static const struct xlat_data evdev_ev_xdata[] = { XLAT(EV_SYN), + #define XLAT_VAL_0 ((unsigned) (EV_SYN)) + #define XLAT_STR_0 STRINGIFY(EV_SYN) XLAT(EV_KEY), + #define XLAT_VAL_1 ((unsigned) (EV_KEY)) + #define XLAT_STR_1 STRINGIFY(EV_KEY) XLAT(EV_REL), + #define XLAT_VAL_2 ((unsigned) (EV_REL)) + #define XLAT_STR_2 STRINGIFY(EV_REL) XLAT(EV_ABS), + #define XLAT_VAL_3 ((unsigned) (EV_ABS)) + #define XLAT_STR_3 STRINGIFY(EV_ABS) XLAT(EV_MSC), + #define XLAT_VAL_4 ((unsigned) (EV_MSC)) + #define XLAT_STR_4 STRINGIFY(EV_MSC) XLAT(EV_SW), + #define XLAT_VAL_5 ((unsigned) (EV_SW)) + #define XLAT_STR_5 STRINGIFY(EV_SW) XLAT(EV_LED), + #define XLAT_VAL_6 ((unsigned) (EV_LED)) + #define XLAT_STR_6 STRINGIFY(EV_LED) XLAT(EV_SND), + #define XLAT_VAL_7 ((unsigned) (EV_SND)) + #define XLAT_STR_7 STRINGIFY(EV_SND) XLAT(EV_REP), + #define XLAT_VAL_8 ((unsigned) (EV_REP)) + #define XLAT_STR_8 STRINGIFY(EV_REP) XLAT(EV_FF), + #define XLAT_VAL_9 ((unsigned) (EV_FF)) + #define XLAT_STR_9 STRINGIFY(EV_FF) XLAT(EV_PWR), + #define XLAT_VAL_10 ((unsigned) (EV_PWR)) + #define XLAT_STR_10 STRINGIFY(EV_PWR) XLAT(EV_FF_STATUS), - XLAT_END + #define XLAT_VAL_11 ((unsigned) (EV_FF_STATUS)) + #define XLAT_STR_11 STRINGIFY(EV_FF_STATUS) }; +const struct xlat evdev_ev[1] = { { + .data = evdev_ev_xdata, + .size = ARRAY_SIZE(evdev_ev_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/evdev_ff_status.h b/xlat/evdev_ff_status.h index 947d545d..4662db4c 100644 --- a/xlat/evdev_ff_status.h +++ b/xlat/evdev_ff_status.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat evdev_ff_status[] = { +static const struct xlat_data evdev_ff_status_xdata[] = { [FF_STATUS_STOPPED] = XLAT(FF_STATUS_STOPPED), + #define XLAT_VAL_0 ((unsigned) (FF_STATUS_STOPPED)) + #define XLAT_STR_0 STRINGIFY(FF_STATUS_STOPPED) [FF_STATUS_PLAYING] = XLAT(FF_STATUS_PLAYING), - XLAT_END + #define XLAT_VAL_1 ((unsigned) (FF_STATUS_PLAYING)) + #define XLAT_STR_1 STRINGIFY(FF_STATUS_PLAYING) }; +static +const struct xlat evdev_ff_status[1] = { { + .data = evdev_ff_status_xdata, + .size = ARRAY_SIZE(evdev_ff_status_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/evdev_ff_types.h b/xlat/evdev_ff_types.h index 3bc6b042..0a8320fa 100644 --- a/xlat/evdev_ff_types.h +++ b/xlat/evdev_ff_types.h @@ -124,28 +124,195 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat evdev_ff_types[] = { - +static const struct xlat_data evdev_ff_types_xdata[] = { XLAT(FF_RUMBLE), + #define XLAT_VAL_0 ((unsigned) (FF_RUMBLE)) + #define XLAT_STR_0 STRINGIFY(FF_RUMBLE) XLAT(FF_PERIODIC), + #define XLAT_VAL_1 ((unsigned) (FF_PERIODIC)) + #define XLAT_STR_1 STRINGIFY(FF_PERIODIC) XLAT(FF_CONSTANT), + #define XLAT_VAL_2 ((unsigned) (FF_CONSTANT)) + #define XLAT_STR_2 STRINGIFY(FF_CONSTANT) XLAT(FF_SPRING), + #define XLAT_VAL_3 ((unsigned) (FF_SPRING)) + #define XLAT_STR_3 STRINGIFY(FF_SPRING) XLAT(FF_FRICTION), + #define XLAT_VAL_4 ((unsigned) (FF_FRICTION)) + #define XLAT_STR_4 STRINGIFY(FF_FRICTION) XLAT(FF_DAMPER), + #define XLAT_VAL_5 ((unsigned) (FF_DAMPER)) + #define XLAT_STR_5 STRINGIFY(FF_DAMPER) XLAT(FF_INERTIA), + #define XLAT_VAL_6 ((unsigned) (FF_INERTIA)) + #define XLAT_STR_6 STRINGIFY(FF_INERTIA) XLAT(FF_RAMP), + #define XLAT_VAL_7 ((unsigned) (FF_RAMP)) + #define XLAT_STR_7 STRINGIFY(FF_RAMP) XLAT(FF_SQUARE), + #define XLAT_VAL_8 ((unsigned) (FF_SQUARE)) + #define XLAT_STR_8 STRINGIFY(FF_SQUARE) XLAT(FF_TRIANGLE), + #define XLAT_VAL_9 ((unsigned) (FF_TRIANGLE)) + #define XLAT_STR_9 STRINGIFY(FF_TRIANGLE) XLAT(FF_SINE), + #define XLAT_VAL_10 ((unsigned) (FF_SINE)) + #define XLAT_STR_10 STRINGIFY(FF_SINE) XLAT(FF_SAW_UP), + #define XLAT_VAL_11 ((unsigned) (FF_SAW_UP)) + #define XLAT_STR_11 STRINGIFY(FF_SAW_UP) XLAT(FF_SAW_DOWN), + #define XLAT_VAL_12 ((unsigned) (FF_SAW_DOWN)) + #define XLAT_STR_12 STRINGIFY(FF_SAW_DOWN) XLAT(FF_CUSTOM), + #define XLAT_VAL_13 ((unsigned) (FF_CUSTOM)) + #define XLAT_STR_13 STRINGIFY(FF_CUSTOM) XLAT(FF_GAIN), + #define XLAT_VAL_14 ((unsigned) (FF_GAIN)) + #define XLAT_STR_14 STRINGIFY(FF_GAIN) XLAT(FF_AUTOCENTER), - XLAT_END + #define XLAT_VAL_15 ((unsigned) (FF_AUTOCENTER)) + #define XLAT_STR_15 STRINGIFY(FF_AUTOCENTER) }; +static +const struct xlat evdev_ff_types[1] = { { + .data = evdev_ff_types_xdata, + .size = ARRAY_SIZE(evdev_ff_types_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/evdev_ff_types.in b/xlat/evdev_ff_types.in index 72b87c53..71dc5382 100644 --- a/xlat/evdev_ff_types.in +++ b/xlat/evdev_ff_types.in @@ -1,4 +1,4 @@ -/* sort -k2,2 */ +#sorted sort -k2,2 FF_RUMBLE 0x50 FF_PERIODIC 0x51 FF_CONSTANT 0x52 diff --git a/xlat/evdev_ioctl_cmds.h b/xlat/evdev_ioctl_cmds.h new file mode 100644 index 00000000..a5dbfa8b --- /dev/null +++ b/xlat/evdev_ioctl_cmds.h @@ -0,0 +1,302 @@ +/* Generated by ./xlat/gen.sh from ./xlat/evdev_ioctl_cmds.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined(EVIOCGVERSION) || (defined(HAVE_DECL_EVIOCGVERSION) && HAVE_DECL_EVIOCGVERSION) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EVIOCGVERSION) == (_IOR('E', 0x01, int)), "EVIOCGVERSION != _IOR('E', 0x01, int)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EVIOCGVERSION _IOR('E', 0x01, int) +#endif +#if defined(EVIOCGID) || (defined(HAVE_DECL_EVIOCGID) && HAVE_DECL_EVIOCGID) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EVIOCGID) == (_IOR('E', 0x02, struct input_id)), "EVIOCGID != _IOR('E', 0x02, struct input_id)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EVIOCGID _IOR('E', 0x02, struct input_id) +#endif +#if defined(EVIOCGREP) || (defined(HAVE_DECL_EVIOCGREP) && HAVE_DECL_EVIOCGREP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EVIOCGREP) == (_IOR('E', 0x03, unsigned int[2])), "EVIOCGREP != _IOR('E', 0x03, unsigned int[2])"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EVIOCGREP _IOR('E', 0x03, unsigned int[2]) +#endif +#if defined(EVIOCSREP) || (defined(HAVE_DECL_EVIOCSREP) && HAVE_DECL_EVIOCSREP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EVIOCSREP) == (_IOW('E', 0x03, unsigned int[2])), "EVIOCSREP != _IOW('E', 0x03, unsigned int[2])"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EVIOCSREP _IOW('E', 0x03, unsigned int[2]) +#endif +#if defined(EVIOCGKEYCODE) || (defined(HAVE_DECL_EVIOCGKEYCODE) && HAVE_DECL_EVIOCGKEYCODE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EVIOCGKEYCODE) == (_IOR('E', 0x04, unsigned int[2])), "EVIOCGKEYCODE != _IOR('E', 0x04, unsigned int[2])"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EVIOCGKEYCODE _IOR('E', 0x04, unsigned int[2]) +#endif +#if defined(EVIOCGKEYCODE_V2) || (defined(HAVE_DECL_EVIOCGKEYCODE_V2) && HAVE_DECL_EVIOCGKEYCODE_V2) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EVIOCGKEYCODE_V2) == (_IOR('E', 0x04, struct_input_keymap_entry)), "EVIOCGKEYCODE_V2 != _IOR('E', 0x04, struct_input_keymap_entry)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EVIOCGKEYCODE_V2 _IOR('E', 0x04, struct_input_keymap_entry) +#endif +#if defined(EVIOCSKEYCODE) || (defined(HAVE_DECL_EVIOCSKEYCODE) && HAVE_DECL_EVIOCSKEYCODE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EVIOCSKEYCODE) == (_IOW('E', 0x04, unsigned int[2])), "EVIOCSKEYCODE != _IOW('E', 0x04, unsigned int[2])"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EVIOCSKEYCODE _IOW('E', 0x04, unsigned int[2]) +#endif +#if defined(EVIOCSKEYCODE_V2) || (defined(HAVE_DECL_EVIOCSKEYCODE_V2) && HAVE_DECL_EVIOCSKEYCODE_V2) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EVIOCSKEYCODE_V2) == (_IOW('E', 0x04, struct_input_keymap_entry)), "EVIOCSKEYCODE_V2 != _IOW('E', 0x04, struct_input_keymap_entry)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EVIOCSKEYCODE_V2 _IOW('E', 0x04, struct_input_keymap_entry) +#endif +#if defined(EVIOCRMFF) || (defined(HAVE_DECL_EVIOCRMFF) && HAVE_DECL_EVIOCRMFF) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EVIOCRMFF) == (_IOW('E', 0x81, int)), "EVIOCRMFF != _IOW('E', 0x81, int)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EVIOCRMFF _IOW('E', 0x81, int) +#endif +#if defined(EVIOCGEFFECTS) || (defined(HAVE_DECL_EVIOCGEFFECTS) && HAVE_DECL_EVIOCGEFFECTS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EVIOCGEFFECTS) == (_IOR('E', 0x84, int)), "EVIOCGEFFECTS != _IOR('E', 0x84, int)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EVIOCGEFFECTS _IOR('E', 0x84, int) +#endif +#if defined(EVIOCGRAB) || (defined(HAVE_DECL_EVIOCGRAB) && HAVE_DECL_EVIOCGRAB) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EVIOCGRAB) == (_IOW('E', 0x90, int)), "EVIOCGRAB != _IOW('E', 0x90, int)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EVIOCGRAB _IOW('E', 0x90, int) +#endif +#if defined(EVIOCREVOKE) || (defined(HAVE_DECL_EVIOCREVOKE) && HAVE_DECL_EVIOCREVOKE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EVIOCREVOKE) == (_IOW('E', 0x91, int)), "EVIOCREVOKE != _IOW('E', 0x91, int)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EVIOCREVOKE _IOW('E', 0x91, int) +#endif +#if defined(EVIOCGMASK) || (defined(HAVE_DECL_EVIOCGMASK) && HAVE_DECL_EVIOCGMASK) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EVIOCGMASK) == (_IOR('E', 0x92, struct_input_mask)), "EVIOCGMASK != _IOR('E', 0x92, struct_input_mask)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EVIOCGMASK _IOR('E', 0x92, struct_input_mask) +#endif +#if defined(EVIOCSMASK) || (defined(HAVE_DECL_EVIOCSMASK) && HAVE_DECL_EVIOCSMASK) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EVIOCSMASK) == (_IOW('E', 0x93, struct_input_mask)), "EVIOCSMASK != _IOW('E', 0x93, struct_input_mask)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EVIOCSMASK _IOW('E', 0x93, struct_input_mask) +#endif +#if defined(EVIOCSCLOCKID) || (defined(HAVE_DECL_EVIOCSCLOCKID) && HAVE_DECL_EVIOCSCLOCKID) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EVIOCSCLOCKID) == (_IOW('E', 0xa0, int)), "EVIOCSCLOCKID != _IOW('E', 0xa0, int)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EVIOCSCLOCKID _IOW('E', 0xa0, int) +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat evdev_ioctl_cmds in mpers mode + +# else + +static const struct xlat_data evdev_ioctl_cmds_xdata[] = { + XLAT(EVIOCGVERSION), + #define XLAT_VAL_0 ((unsigned) (EVIOCGVERSION)) + #define XLAT_STR_0 STRINGIFY(EVIOCGVERSION) + XLAT(EVIOCGID), + #define XLAT_VAL_1 ((unsigned) (EVIOCGID)) + #define XLAT_STR_1 STRINGIFY(EVIOCGID) + XLAT(EVIOCGREP), + #define XLAT_VAL_2 ((unsigned) (EVIOCGREP)) + #define XLAT_STR_2 STRINGIFY(EVIOCGREP) + XLAT(EVIOCSREP), + #define XLAT_VAL_3 ((unsigned) (EVIOCSREP)) + #define XLAT_STR_3 STRINGIFY(EVIOCSREP) + XLAT(EVIOCGKEYCODE), + #define XLAT_VAL_4 ((unsigned) (EVIOCGKEYCODE)) + #define XLAT_STR_4 STRINGIFY(EVIOCGKEYCODE) + XLAT(EVIOCGKEYCODE_V2), + #define XLAT_VAL_5 ((unsigned) (EVIOCGKEYCODE_V2)) + #define XLAT_STR_5 STRINGIFY(EVIOCGKEYCODE_V2) + XLAT(EVIOCSKEYCODE), + #define XLAT_VAL_6 ((unsigned) (EVIOCSKEYCODE)) + #define XLAT_STR_6 STRINGIFY(EVIOCSKEYCODE) + XLAT(EVIOCSKEYCODE_V2), + #define XLAT_VAL_7 ((unsigned) (EVIOCSKEYCODE_V2)) + #define XLAT_STR_7 STRINGIFY(EVIOCSKEYCODE_V2) + + + XLAT(EVIOCRMFF), + #define XLAT_VAL_8 ((unsigned) (EVIOCRMFF)) + #define XLAT_STR_8 STRINGIFY(EVIOCRMFF) + XLAT(EVIOCGEFFECTS), + #define XLAT_VAL_9 ((unsigned) (EVIOCGEFFECTS)) + #define XLAT_STR_9 STRINGIFY(EVIOCGEFFECTS) + XLAT(EVIOCGRAB), + #define XLAT_VAL_10 ((unsigned) (EVIOCGRAB)) + #define XLAT_STR_10 STRINGIFY(EVIOCGRAB) + XLAT(EVIOCREVOKE), + #define XLAT_VAL_11 ((unsigned) (EVIOCREVOKE)) + #define XLAT_STR_11 STRINGIFY(EVIOCREVOKE) + XLAT(EVIOCGMASK), + #define XLAT_VAL_12 ((unsigned) (EVIOCGMASK)) + #define XLAT_STR_12 STRINGIFY(EVIOCGMASK) + XLAT(EVIOCSMASK), + #define XLAT_VAL_13 ((unsigned) (EVIOCSMASK)) + #define XLAT_STR_13 STRINGIFY(EVIOCSMASK) + XLAT(EVIOCSCLOCKID), + #define XLAT_VAL_14 ((unsigned) (EVIOCSCLOCKID)) + #define XLAT_STR_14 STRINGIFY(EVIOCSCLOCKID) +}; +static +const struct xlat evdev_ioctl_cmds[1] = { { + .data = evdev_ioctl_cmds_xdata, + .size = ARRAY_SIZE(evdev_ioctl_cmds_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/evdev_ioctl_cmds.in b/xlat/evdev_ioctl_cmds.in new file mode 100644 index 00000000..29a5864e --- /dev/null +++ b/xlat/evdev_ioctl_cmds.in @@ -0,0 +1,17 @@ +EVIOCGVERSION _IOR('E', 0x01, int) +EVIOCGID _IOR('E', 0x02, struct input_id) +EVIOCGREP _IOR('E', 0x03, unsigned int[2]) +EVIOCSREP _IOW('E', 0x03, unsigned int[2]) +EVIOCGKEYCODE _IOR('E', 0x04, unsigned int[2]) +EVIOCGKEYCODE_V2 _IOR('E', 0x04, struct_input_keymap_entry) +EVIOCSKEYCODE _IOW('E', 0x04, unsigned int[2]) +EVIOCSKEYCODE_V2 _IOW('E', 0x04, struct_input_keymap_entry) +/* struct ff_effect is personality-dependent in size */ +/* EVIOCSFF _IOW('E', 0x80, struct ff_effect) */ +EVIOCRMFF _IOW('E', 0x81, int) +EVIOCGEFFECTS _IOR('E', 0x84, int) +EVIOCGRAB _IOW('E', 0x90, int) +EVIOCREVOKE _IOW('E', 0x91, int) +EVIOCGMASK _IOR('E', 0x92, struct_input_mask) +EVIOCSMASK _IOW('E', 0x93, struct_input_mask) +EVIOCSCLOCKID _IOW('E', 0xa0, int) diff --git a/xlat/evdev_keycode.h b/xlat/evdev_keycode.h index 9fedfb92..c63e5000 100644 --- a/xlat/evdev_keycode.h +++ b/xlat/evdev_keycode.h @@ -3353,6 +3353,13 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define KEY_ASSISTANT 0x247 #endif +#if defined(KEY_KBD_LAYOUT_NEXT) || (defined(HAVE_DECL_KEY_KBD_LAYOUT_NEXT) && HAVE_DECL_KEY_KBD_LAYOUT_NEXT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_KBD_LAYOUT_NEXT) == (0x248), "KEY_KBD_LAYOUT_NEXT != 0x248"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_KBD_LAYOUT_NEXT 0x248 +#endif #ifndef STRACE_WORKAROUND_FOR_KEY_BRIGHTNESS_MIN # define STRACE_WORKAROUND_FOR_KEY_BRIGHTNESS_MIN # undef KEY_BRIGHTNESS_MIN @@ -3550,6 +3557,307 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define KEY_ONSCREEN_KEYBOARD 0x278 #endif +#if defined(KEY_PRIVACY_SCREEN_TOGGLE) || (defined(HAVE_DECL_KEY_PRIVACY_SCREEN_TOGGLE) && HAVE_DECL_KEY_PRIVACY_SCREEN_TOGGLE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_PRIVACY_SCREEN_TOGGLE) == (0x279), "KEY_PRIVACY_SCREEN_TOGGLE != 0x279"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_PRIVACY_SCREEN_TOGGLE 0x279 +#endif +#if defined(KEY_SELECTIVE_SCREENSHOT) || (defined(HAVE_DECL_KEY_SELECTIVE_SCREENSHOT) && HAVE_DECL_KEY_SELECTIVE_SCREENSHOT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_SELECTIVE_SCREENSHOT) == (0x27a), "KEY_SELECTIVE_SCREENSHOT != 0x27a"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_SELECTIVE_SCREENSHOT 0x27a +#endif +#if defined(KEY_MACRO1) || (defined(HAVE_DECL_KEY_MACRO1) && HAVE_DECL_KEY_MACRO1) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO1) == (0x290), "KEY_MACRO1 != 0x290"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO1 0x290 +#endif +#if defined(KEY_MACRO2) || (defined(HAVE_DECL_KEY_MACRO2) && HAVE_DECL_KEY_MACRO2) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO2) == (0x291), "KEY_MACRO2 != 0x291"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO2 0x291 +#endif +#if defined(KEY_MACRO3) || (defined(HAVE_DECL_KEY_MACRO3) && HAVE_DECL_KEY_MACRO3) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO3) == (0x292), "KEY_MACRO3 != 0x292"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO3 0x292 +#endif +#if defined(KEY_MACRO4) || (defined(HAVE_DECL_KEY_MACRO4) && HAVE_DECL_KEY_MACRO4) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO4) == (0x293), "KEY_MACRO4 != 0x293"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO4 0x293 +#endif +#if defined(KEY_MACRO5) || (defined(HAVE_DECL_KEY_MACRO5) && HAVE_DECL_KEY_MACRO5) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO5) == (0x294), "KEY_MACRO5 != 0x294"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO5 0x294 +#endif +#if defined(KEY_MACRO6) || (defined(HAVE_DECL_KEY_MACRO6) && HAVE_DECL_KEY_MACRO6) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO6) == (0x295), "KEY_MACRO6 != 0x295"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO6 0x295 +#endif +#if defined(KEY_MACRO7) || (defined(HAVE_DECL_KEY_MACRO7) && HAVE_DECL_KEY_MACRO7) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO7) == (0x296), "KEY_MACRO7 != 0x296"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO7 0x296 +#endif +#if defined(KEY_MACRO8) || (defined(HAVE_DECL_KEY_MACRO8) && HAVE_DECL_KEY_MACRO8) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO8) == (0x297), "KEY_MACRO8 != 0x297"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO8 0x297 +#endif +#if defined(KEY_MACRO9) || (defined(HAVE_DECL_KEY_MACRO9) && HAVE_DECL_KEY_MACRO9) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO9) == (0x298), "KEY_MACRO9 != 0x298"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO9 0x298 +#endif +#if defined(KEY_MACRO10) || (defined(HAVE_DECL_KEY_MACRO10) && HAVE_DECL_KEY_MACRO10) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO10) == (0x299), "KEY_MACRO10 != 0x299"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO10 0x299 +#endif +#if defined(KEY_MACRO11) || (defined(HAVE_DECL_KEY_MACRO11) && HAVE_DECL_KEY_MACRO11) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO11) == (0x29a), "KEY_MACRO11 != 0x29a"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO11 0x29a +#endif +#if defined(KEY_MACRO12) || (defined(HAVE_DECL_KEY_MACRO12) && HAVE_DECL_KEY_MACRO12) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO12) == (0x29b), "KEY_MACRO12 != 0x29b"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO12 0x29b +#endif +#if defined(KEY_MACRO13) || (defined(HAVE_DECL_KEY_MACRO13) && HAVE_DECL_KEY_MACRO13) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO13) == (0x29c), "KEY_MACRO13 != 0x29c"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO13 0x29c +#endif +#if defined(KEY_MACRO14) || (defined(HAVE_DECL_KEY_MACRO14) && HAVE_DECL_KEY_MACRO14) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO14) == (0x29d), "KEY_MACRO14 != 0x29d"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO14 0x29d +#endif +#if defined(KEY_MACRO15) || (defined(HAVE_DECL_KEY_MACRO15) && HAVE_DECL_KEY_MACRO15) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO15) == (0x29e), "KEY_MACRO15 != 0x29e"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO15 0x29e +#endif +#if defined(KEY_MACRO16) || (defined(HAVE_DECL_KEY_MACRO16) && HAVE_DECL_KEY_MACRO16) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO16) == (0x29f), "KEY_MACRO16 != 0x29f"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO16 0x29f +#endif +#if defined(KEY_MACRO17) || (defined(HAVE_DECL_KEY_MACRO17) && HAVE_DECL_KEY_MACRO17) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO17) == (0x2a0), "KEY_MACRO17 != 0x2a0"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO17 0x2a0 +#endif +#if defined(KEY_MACRO18) || (defined(HAVE_DECL_KEY_MACRO18) && HAVE_DECL_KEY_MACRO18) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO18) == (0x2a1), "KEY_MACRO18 != 0x2a1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO18 0x2a1 +#endif +#if defined(KEY_MACRO19) || (defined(HAVE_DECL_KEY_MACRO19) && HAVE_DECL_KEY_MACRO19) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO19) == (0x2a2), "KEY_MACRO19 != 0x2a2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO19 0x2a2 +#endif +#if defined(KEY_MACRO20) || (defined(HAVE_DECL_KEY_MACRO20) && HAVE_DECL_KEY_MACRO20) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO20) == (0x2a3), "KEY_MACRO20 != 0x2a3"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO20 0x2a3 +#endif +#if defined(KEY_MACRO21) || (defined(HAVE_DECL_KEY_MACRO21) && HAVE_DECL_KEY_MACRO21) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO21) == (0x2a4), "KEY_MACRO21 != 0x2a4"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO21 0x2a4 +#endif +#if defined(KEY_MACRO22) || (defined(HAVE_DECL_KEY_MACRO22) && HAVE_DECL_KEY_MACRO22) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO22) == (0x2a5), "KEY_MACRO22 != 0x2a5"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO22 0x2a5 +#endif +#if defined(KEY_MACRO23) || (defined(HAVE_DECL_KEY_MACRO23) && HAVE_DECL_KEY_MACRO23) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO23) == (0x2a6), "KEY_MACRO23 != 0x2a6"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO23 0x2a6 +#endif +#if defined(KEY_MACRO24) || (defined(HAVE_DECL_KEY_MACRO24) && HAVE_DECL_KEY_MACRO24) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO24) == (0x2a7), "KEY_MACRO24 != 0x2a7"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO24 0x2a7 +#endif +#if defined(KEY_MACRO25) || (defined(HAVE_DECL_KEY_MACRO25) && HAVE_DECL_KEY_MACRO25) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO25) == (0x2a8), "KEY_MACRO25 != 0x2a8"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO25 0x2a8 +#endif +#if defined(KEY_MACRO26) || (defined(HAVE_DECL_KEY_MACRO26) && HAVE_DECL_KEY_MACRO26) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO26) == (0x2a9), "KEY_MACRO26 != 0x2a9"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO26 0x2a9 +#endif +#if defined(KEY_MACRO27) || (defined(HAVE_DECL_KEY_MACRO27) && HAVE_DECL_KEY_MACRO27) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO27) == (0x2aa), "KEY_MACRO27 != 0x2aa"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO27 0x2aa +#endif +#if defined(KEY_MACRO28) || (defined(HAVE_DECL_KEY_MACRO28) && HAVE_DECL_KEY_MACRO28) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO28) == (0x2ab), "KEY_MACRO28 != 0x2ab"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO28 0x2ab +#endif +#if defined(KEY_MACRO29) || (defined(HAVE_DECL_KEY_MACRO29) && HAVE_DECL_KEY_MACRO29) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO29) == (0x2ac), "KEY_MACRO29 != 0x2ac"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO29 0x2ac +#endif +#if defined(KEY_MACRO30) || (defined(HAVE_DECL_KEY_MACRO30) && HAVE_DECL_KEY_MACRO30) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO30) == (0x2ad), "KEY_MACRO30 != 0x2ad"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO30 0x2ad +#endif +#if defined(KEY_MACRO_RECORD_START) || (defined(HAVE_DECL_KEY_MACRO_RECORD_START) && HAVE_DECL_KEY_MACRO_RECORD_START) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO_RECORD_START) == (0x2b0), "KEY_MACRO_RECORD_START != 0x2b0"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO_RECORD_START 0x2b0 +#endif +#if defined(KEY_MACRO_RECORD_STOP) || (defined(HAVE_DECL_KEY_MACRO_RECORD_STOP) && HAVE_DECL_KEY_MACRO_RECORD_STOP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO_RECORD_STOP) == (0x2b1), "KEY_MACRO_RECORD_STOP != 0x2b1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO_RECORD_STOP 0x2b1 +#endif +#if defined(KEY_MACRO_PRESET_CYCLE) || (defined(HAVE_DECL_KEY_MACRO_PRESET_CYCLE) && HAVE_DECL_KEY_MACRO_PRESET_CYCLE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO_PRESET_CYCLE) == (0x2b2), "KEY_MACRO_PRESET_CYCLE != 0x2b2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO_PRESET_CYCLE 0x2b2 +#endif +#if defined(KEY_MACRO_PRESET1) || (defined(HAVE_DECL_KEY_MACRO_PRESET1) && HAVE_DECL_KEY_MACRO_PRESET1) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO_PRESET1) == (0x2b3), "KEY_MACRO_PRESET1 != 0x2b3"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO_PRESET1 0x2b3 +#endif +#if defined(KEY_MACRO_PRESET2) || (defined(HAVE_DECL_KEY_MACRO_PRESET2) && HAVE_DECL_KEY_MACRO_PRESET2) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO_PRESET2) == (0x2b4), "KEY_MACRO_PRESET2 != 0x2b4"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO_PRESET2 0x2b4 +#endif +#if defined(KEY_MACRO_PRESET3) || (defined(HAVE_DECL_KEY_MACRO_PRESET3) && HAVE_DECL_KEY_MACRO_PRESET3) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_MACRO_PRESET3) == (0x2b5), "KEY_MACRO_PRESET3 != 0x2b5"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_MACRO_PRESET3 0x2b5 +#endif +#if defined(KEY_KBD_LCD_MENU1) || (defined(HAVE_DECL_KEY_KBD_LCD_MENU1) && HAVE_DECL_KEY_KBD_LCD_MENU1) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_KBD_LCD_MENU1) == (0x2b8), "KEY_KBD_LCD_MENU1 != 0x2b8"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_KBD_LCD_MENU1 0x2b8 +#endif +#if defined(KEY_KBD_LCD_MENU2) || (defined(HAVE_DECL_KEY_KBD_LCD_MENU2) && HAVE_DECL_KEY_KBD_LCD_MENU2) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_KBD_LCD_MENU2) == (0x2b9), "KEY_KBD_LCD_MENU2 != 0x2b9"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_KBD_LCD_MENU2 0x2b9 +#endif +#if defined(KEY_KBD_LCD_MENU3) || (defined(HAVE_DECL_KEY_KBD_LCD_MENU3) && HAVE_DECL_KEY_KBD_LCD_MENU3) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_KBD_LCD_MENU3) == (0x2ba), "KEY_KBD_LCD_MENU3 != 0x2ba"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_KBD_LCD_MENU3 0x2ba +#endif +#if defined(KEY_KBD_LCD_MENU4) || (defined(HAVE_DECL_KEY_KBD_LCD_MENU4) && HAVE_DECL_KEY_KBD_LCD_MENU4) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_KBD_LCD_MENU4) == (0x2bb), "KEY_KBD_LCD_MENU4 != 0x2bb"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_KBD_LCD_MENU4 0x2bb +#endif +#if defined(KEY_KBD_LCD_MENU5) || (defined(HAVE_DECL_KEY_KBD_LCD_MENU5) && HAVE_DECL_KEY_KBD_LCD_MENU5) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((KEY_KBD_LCD_MENU5) == (0x2bc), "KEY_KBD_LCD_MENU5 != 0x2bc"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define KEY_KBD_LCD_MENU5 0x2bc +#endif #if defined(BTN_TRIGGER_HAPPY1) || (defined(HAVE_DECL_BTN_TRIGGER_HAPPY1) && HAVE_DECL_BTN_TRIGGER_HAPPY1) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((BTN_TRIGGER_HAPPY1) == (0x2c0), "BTN_TRIGGER_HAPPY1 != 0x2c0"); @@ -3839,263 +4147,744 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat evdev_keycode[] = { +static const struct xlat_data evdev_keycode_xdata[] = { [KEY_RESERVED] = XLAT(KEY_RESERVED), + #define XLAT_VAL_0 ((unsigned) (KEY_RESERVED)) + #define XLAT_STR_0 STRINGIFY(KEY_RESERVED) [KEY_ESC] = XLAT(KEY_ESC), + #define XLAT_VAL_1 ((unsigned) (KEY_ESC)) + #define XLAT_STR_1 STRINGIFY(KEY_ESC) [KEY_1] = XLAT(KEY_1), + #define XLAT_VAL_2 ((unsigned) (KEY_1)) + #define XLAT_STR_2 STRINGIFY(KEY_1) [KEY_2] = XLAT(KEY_2), + #define XLAT_VAL_3 ((unsigned) (KEY_2)) + #define XLAT_STR_3 STRINGIFY(KEY_2) [KEY_3] = XLAT(KEY_3), + #define XLAT_VAL_4 ((unsigned) (KEY_3)) + #define XLAT_STR_4 STRINGIFY(KEY_3) [KEY_4] = XLAT(KEY_4), + #define XLAT_VAL_5 ((unsigned) (KEY_4)) + #define XLAT_STR_5 STRINGIFY(KEY_4) [KEY_5] = XLAT(KEY_5), + #define XLAT_VAL_6 ((unsigned) (KEY_5)) + #define XLAT_STR_6 STRINGIFY(KEY_5) [KEY_6] = XLAT(KEY_6), + #define XLAT_VAL_7 ((unsigned) (KEY_6)) + #define XLAT_STR_7 STRINGIFY(KEY_6) [KEY_7] = XLAT(KEY_7), + #define XLAT_VAL_8 ((unsigned) (KEY_7)) + #define XLAT_STR_8 STRINGIFY(KEY_7) [KEY_8] = XLAT(KEY_8), + #define XLAT_VAL_9 ((unsigned) (KEY_8)) + #define XLAT_STR_9 STRINGIFY(KEY_8) [KEY_9] = XLAT(KEY_9), + #define XLAT_VAL_10 ((unsigned) (KEY_9)) + #define XLAT_STR_10 STRINGIFY(KEY_9) [KEY_0] = XLAT(KEY_0), + #define XLAT_VAL_11 ((unsigned) (KEY_0)) + #define XLAT_STR_11 STRINGIFY(KEY_0) [KEY_MINUS] = XLAT(KEY_MINUS), + #define XLAT_VAL_12 ((unsigned) (KEY_MINUS)) + #define XLAT_STR_12 STRINGIFY(KEY_MINUS) [KEY_EQUAL] = XLAT(KEY_EQUAL), + #define XLAT_VAL_13 ((unsigned) (KEY_EQUAL)) + #define XLAT_STR_13 STRINGIFY(KEY_EQUAL) [KEY_BACKSPACE] = XLAT(KEY_BACKSPACE), + #define XLAT_VAL_14 ((unsigned) (KEY_BACKSPACE)) + #define XLAT_STR_14 STRINGIFY(KEY_BACKSPACE) [KEY_TAB] = XLAT(KEY_TAB), + #define XLAT_VAL_15 ((unsigned) (KEY_TAB)) + #define XLAT_STR_15 STRINGIFY(KEY_TAB) [KEY_Q] = XLAT(KEY_Q), + #define XLAT_VAL_16 ((unsigned) (KEY_Q)) + #define XLAT_STR_16 STRINGIFY(KEY_Q) [KEY_W] = XLAT(KEY_W), + #define XLAT_VAL_17 ((unsigned) (KEY_W)) + #define XLAT_STR_17 STRINGIFY(KEY_W) [KEY_E] = XLAT(KEY_E), + #define XLAT_VAL_18 ((unsigned) (KEY_E)) + #define XLAT_STR_18 STRINGIFY(KEY_E) [KEY_R] = XLAT(KEY_R), + #define XLAT_VAL_19 ((unsigned) (KEY_R)) + #define XLAT_STR_19 STRINGIFY(KEY_R) [KEY_T] = XLAT(KEY_T), + #define XLAT_VAL_20 ((unsigned) (KEY_T)) + #define XLAT_STR_20 STRINGIFY(KEY_T) [KEY_Y] = XLAT(KEY_Y), + #define XLAT_VAL_21 ((unsigned) (KEY_Y)) + #define XLAT_STR_21 STRINGIFY(KEY_Y) [KEY_U] = XLAT(KEY_U), + #define XLAT_VAL_22 ((unsigned) (KEY_U)) + #define XLAT_STR_22 STRINGIFY(KEY_U) [KEY_I] = XLAT(KEY_I), + #define XLAT_VAL_23 ((unsigned) (KEY_I)) + #define XLAT_STR_23 STRINGIFY(KEY_I) [KEY_O] = XLAT(KEY_O), + #define XLAT_VAL_24 ((unsigned) (KEY_O)) + #define XLAT_STR_24 STRINGIFY(KEY_O) [KEY_P] = XLAT(KEY_P), + #define XLAT_VAL_25 ((unsigned) (KEY_P)) + #define XLAT_STR_25 STRINGIFY(KEY_P) [KEY_LEFTBRACE] = XLAT(KEY_LEFTBRACE), + #define XLAT_VAL_26 ((unsigned) (KEY_LEFTBRACE)) + #define XLAT_STR_26 STRINGIFY(KEY_LEFTBRACE) [KEY_RIGHTBRACE] = XLAT(KEY_RIGHTBRACE), + #define XLAT_VAL_27 ((unsigned) (KEY_RIGHTBRACE)) + #define XLAT_STR_27 STRINGIFY(KEY_RIGHTBRACE) [KEY_ENTER] = XLAT(KEY_ENTER), + #define XLAT_VAL_28 ((unsigned) (KEY_ENTER)) + #define XLAT_STR_28 STRINGIFY(KEY_ENTER) [KEY_LEFTCTRL] = XLAT(KEY_LEFTCTRL), + #define XLAT_VAL_29 ((unsigned) (KEY_LEFTCTRL)) + #define XLAT_STR_29 STRINGIFY(KEY_LEFTCTRL) [KEY_A] = XLAT(KEY_A), + #define XLAT_VAL_30 ((unsigned) (KEY_A)) + #define XLAT_STR_30 STRINGIFY(KEY_A) [KEY_S] = XLAT(KEY_S), + #define XLAT_VAL_31 ((unsigned) (KEY_S)) + #define XLAT_STR_31 STRINGIFY(KEY_S) [KEY_D] = XLAT(KEY_D), + #define XLAT_VAL_32 ((unsigned) (KEY_D)) + #define XLAT_STR_32 STRINGIFY(KEY_D) [KEY_F] = XLAT(KEY_F), + #define XLAT_VAL_33 ((unsigned) (KEY_F)) + #define XLAT_STR_33 STRINGIFY(KEY_F) [KEY_G] = XLAT(KEY_G), + #define XLAT_VAL_34 ((unsigned) (KEY_G)) + #define XLAT_STR_34 STRINGIFY(KEY_G) [KEY_H] = XLAT(KEY_H), + #define XLAT_VAL_35 ((unsigned) (KEY_H)) + #define XLAT_STR_35 STRINGIFY(KEY_H) [KEY_J] = XLAT(KEY_J), + #define XLAT_VAL_36 ((unsigned) (KEY_J)) + #define XLAT_STR_36 STRINGIFY(KEY_J) [KEY_K] = XLAT(KEY_K), + #define XLAT_VAL_37 ((unsigned) (KEY_K)) + #define XLAT_STR_37 STRINGIFY(KEY_K) [KEY_L] = XLAT(KEY_L), + #define XLAT_VAL_38 ((unsigned) (KEY_L)) + #define XLAT_STR_38 STRINGIFY(KEY_L) [KEY_SEMICOLON] = XLAT(KEY_SEMICOLON), + #define XLAT_VAL_39 ((unsigned) (KEY_SEMICOLON)) + #define XLAT_STR_39 STRINGIFY(KEY_SEMICOLON) [KEY_APOSTROPHE] = XLAT(KEY_APOSTROPHE), + #define XLAT_VAL_40 ((unsigned) (KEY_APOSTROPHE)) + #define XLAT_STR_40 STRINGIFY(KEY_APOSTROPHE) [KEY_GRAVE] = XLAT(KEY_GRAVE), + #define XLAT_VAL_41 ((unsigned) (KEY_GRAVE)) + #define XLAT_STR_41 STRINGIFY(KEY_GRAVE) [KEY_LEFTSHIFT] = XLAT(KEY_LEFTSHIFT), + #define XLAT_VAL_42 ((unsigned) (KEY_LEFTSHIFT)) + #define XLAT_STR_42 STRINGIFY(KEY_LEFTSHIFT) [KEY_BACKSLASH] = XLAT(KEY_BACKSLASH), + #define XLAT_VAL_43 ((unsigned) (KEY_BACKSLASH)) + #define XLAT_STR_43 STRINGIFY(KEY_BACKSLASH) [KEY_Z] = XLAT(KEY_Z), + #define XLAT_VAL_44 ((unsigned) (KEY_Z)) + #define XLAT_STR_44 STRINGIFY(KEY_Z) [KEY_X] = XLAT(KEY_X), + #define XLAT_VAL_45 ((unsigned) (KEY_X)) + #define XLAT_STR_45 STRINGIFY(KEY_X) [KEY_C] = XLAT(KEY_C), + #define XLAT_VAL_46 ((unsigned) (KEY_C)) + #define XLAT_STR_46 STRINGIFY(KEY_C) [KEY_V] = XLAT(KEY_V), + #define XLAT_VAL_47 ((unsigned) (KEY_V)) + #define XLAT_STR_47 STRINGIFY(KEY_V) [KEY_B] = XLAT(KEY_B), + #define XLAT_VAL_48 ((unsigned) (KEY_B)) + #define XLAT_STR_48 STRINGIFY(KEY_B) [KEY_N] = XLAT(KEY_N), + #define XLAT_VAL_49 ((unsigned) (KEY_N)) + #define XLAT_STR_49 STRINGIFY(KEY_N) [KEY_M] = XLAT(KEY_M), + #define XLAT_VAL_50 ((unsigned) (KEY_M)) + #define XLAT_STR_50 STRINGIFY(KEY_M) [KEY_COMMA] = XLAT(KEY_COMMA), + #define XLAT_VAL_51 ((unsigned) (KEY_COMMA)) + #define XLAT_STR_51 STRINGIFY(KEY_COMMA) [KEY_DOT] = XLAT(KEY_DOT), + #define XLAT_VAL_52 ((unsigned) (KEY_DOT)) + #define XLAT_STR_52 STRINGIFY(KEY_DOT) [KEY_SLASH] = XLAT(KEY_SLASH), + #define XLAT_VAL_53 ((unsigned) (KEY_SLASH)) + #define XLAT_STR_53 STRINGIFY(KEY_SLASH) [KEY_RIGHTSHIFT] = XLAT(KEY_RIGHTSHIFT), + #define XLAT_VAL_54 ((unsigned) (KEY_RIGHTSHIFT)) + #define XLAT_STR_54 STRINGIFY(KEY_RIGHTSHIFT) [KEY_KPASTERISK] = XLAT(KEY_KPASTERISK), + #define XLAT_VAL_55 ((unsigned) (KEY_KPASTERISK)) + #define XLAT_STR_55 STRINGIFY(KEY_KPASTERISK) [KEY_LEFTALT] = XLAT(KEY_LEFTALT), + #define XLAT_VAL_56 ((unsigned) (KEY_LEFTALT)) + #define XLAT_STR_56 STRINGIFY(KEY_LEFTALT) [KEY_SPACE] = XLAT(KEY_SPACE), + #define XLAT_VAL_57 ((unsigned) (KEY_SPACE)) + #define XLAT_STR_57 STRINGIFY(KEY_SPACE) [KEY_CAPSLOCK] = XLAT(KEY_CAPSLOCK), + #define XLAT_VAL_58 ((unsigned) (KEY_CAPSLOCK)) + #define XLAT_STR_58 STRINGIFY(KEY_CAPSLOCK) [KEY_F1] = XLAT(KEY_F1), + #define XLAT_VAL_59 ((unsigned) (KEY_F1)) + #define XLAT_STR_59 STRINGIFY(KEY_F1) [KEY_F2] = XLAT(KEY_F2), + #define XLAT_VAL_60 ((unsigned) (KEY_F2)) + #define XLAT_STR_60 STRINGIFY(KEY_F2) [KEY_F3] = XLAT(KEY_F3), + #define XLAT_VAL_61 ((unsigned) (KEY_F3)) + #define XLAT_STR_61 STRINGIFY(KEY_F3) [KEY_F4] = XLAT(KEY_F4), + #define XLAT_VAL_62 ((unsigned) (KEY_F4)) + #define XLAT_STR_62 STRINGIFY(KEY_F4) [KEY_F5] = XLAT(KEY_F5), + #define XLAT_VAL_63 ((unsigned) (KEY_F5)) + #define XLAT_STR_63 STRINGIFY(KEY_F5) [KEY_F6] = XLAT(KEY_F6), + #define XLAT_VAL_64 ((unsigned) (KEY_F6)) + #define XLAT_STR_64 STRINGIFY(KEY_F6) [KEY_F7] = XLAT(KEY_F7), + #define XLAT_VAL_65 ((unsigned) (KEY_F7)) + #define XLAT_STR_65 STRINGIFY(KEY_F7) [KEY_F8] = XLAT(KEY_F8), + #define XLAT_VAL_66 ((unsigned) (KEY_F8)) + #define XLAT_STR_66 STRINGIFY(KEY_F8) [KEY_F9] = XLAT(KEY_F9), + #define XLAT_VAL_67 ((unsigned) (KEY_F9)) + #define XLAT_STR_67 STRINGIFY(KEY_F9) [KEY_F10] = XLAT(KEY_F10), + #define XLAT_VAL_68 ((unsigned) (KEY_F10)) + #define XLAT_STR_68 STRINGIFY(KEY_F10) [KEY_NUMLOCK] = XLAT(KEY_NUMLOCK), + #define XLAT_VAL_69 ((unsigned) (KEY_NUMLOCK)) + #define XLAT_STR_69 STRINGIFY(KEY_NUMLOCK) [KEY_SCROLLLOCK] = XLAT(KEY_SCROLLLOCK), + #define XLAT_VAL_70 ((unsigned) (KEY_SCROLLLOCK)) + #define XLAT_STR_70 STRINGIFY(KEY_SCROLLLOCK) [KEY_KP7] = XLAT(KEY_KP7), + #define XLAT_VAL_71 ((unsigned) (KEY_KP7)) + #define XLAT_STR_71 STRINGIFY(KEY_KP7) [KEY_KP8] = XLAT(KEY_KP8), + #define XLAT_VAL_72 ((unsigned) (KEY_KP8)) + #define XLAT_STR_72 STRINGIFY(KEY_KP8) [KEY_KP9] = XLAT(KEY_KP9), + #define XLAT_VAL_73 ((unsigned) (KEY_KP9)) + #define XLAT_STR_73 STRINGIFY(KEY_KP9) [KEY_KPMINUS] = XLAT(KEY_KPMINUS), + #define XLAT_VAL_74 ((unsigned) (KEY_KPMINUS)) + #define XLAT_STR_74 STRINGIFY(KEY_KPMINUS) [KEY_KP4] = XLAT(KEY_KP4), + #define XLAT_VAL_75 ((unsigned) (KEY_KP4)) + #define XLAT_STR_75 STRINGIFY(KEY_KP4) [KEY_KP5] = XLAT(KEY_KP5), + #define XLAT_VAL_76 ((unsigned) (KEY_KP5)) + #define XLAT_STR_76 STRINGIFY(KEY_KP5) [KEY_KP6] = XLAT(KEY_KP6), + #define XLAT_VAL_77 ((unsigned) (KEY_KP6)) + #define XLAT_STR_77 STRINGIFY(KEY_KP6) [KEY_KPPLUS] = XLAT(KEY_KPPLUS), + #define XLAT_VAL_78 ((unsigned) (KEY_KPPLUS)) + #define XLAT_STR_78 STRINGIFY(KEY_KPPLUS) [KEY_KP1] = XLAT(KEY_KP1), + #define XLAT_VAL_79 ((unsigned) (KEY_KP1)) + #define XLAT_STR_79 STRINGIFY(KEY_KP1) [KEY_KP2] = XLAT(KEY_KP2), + #define XLAT_VAL_80 ((unsigned) (KEY_KP2)) + #define XLAT_STR_80 STRINGIFY(KEY_KP2) [KEY_KP3] = XLAT(KEY_KP3), + #define XLAT_VAL_81 ((unsigned) (KEY_KP3)) + #define XLAT_STR_81 STRINGIFY(KEY_KP3) [KEY_KP0] = XLAT(KEY_KP0), + #define XLAT_VAL_82 ((unsigned) (KEY_KP0)) + #define XLAT_STR_82 STRINGIFY(KEY_KP0) [KEY_KPDOT] = XLAT(KEY_KPDOT), + #define XLAT_VAL_83 ((unsigned) (KEY_KPDOT)) + #define XLAT_STR_83 STRINGIFY(KEY_KPDOT) [KEY_ZENKAKUHANKAKU] = XLAT(KEY_ZENKAKUHANKAKU), + #define XLAT_VAL_84 ((unsigned) (KEY_ZENKAKUHANKAKU)) + #define XLAT_STR_84 STRINGIFY(KEY_ZENKAKUHANKAKU) [KEY_102ND] = XLAT(KEY_102ND), + #define XLAT_VAL_85 ((unsigned) (KEY_102ND)) + #define XLAT_STR_85 STRINGIFY(KEY_102ND) [KEY_F11] = XLAT(KEY_F11), + #define XLAT_VAL_86 ((unsigned) (KEY_F11)) + #define XLAT_STR_86 STRINGIFY(KEY_F11) [KEY_F12] = XLAT(KEY_F12), + #define XLAT_VAL_87 ((unsigned) (KEY_F12)) + #define XLAT_STR_87 STRINGIFY(KEY_F12) [KEY_RO] = XLAT(KEY_RO), + #define XLAT_VAL_88 ((unsigned) (KEY_RO)) + #define XLAT_STR_88 STRINGIFY(KEY_RO) [KEY_KATAKANA] = XLAT(KEY_KATAKANA), + #define XLAT_VAL_89 ((unsigned) (KEY_KATAKANA)) + #define XLAT_STR_89 STRINGIFY(KEY_KATAKANA) [KEY_HIRAGANA] = XLAT(KEY_HIRAGANA), + #define XLAT_VAL_90 ((unsigned) (KEY_HIRAGANA)) + #define XLAT_STR_90 STRINGIFY(KEY_HIRAGANA) [KEY_HENKAN] = XLAT(KEY_HENKAN), + #define XLAT_VAL_91 ((unsigned) (KEY_HENKAN)) + #define XLAT_STR_91 STRINGIFY(KEY_HENKAN) [KEY_KATAKANAHIRAGANA] = XLAT(KEY_KATAKANAHIRAGANA), + #define XLAT_VAL_92 ((unsigned) (KEY_KATAKANAHIRAGANA)) + #define XLAT_STR_92 STRINGIFY(KEY_KATAKANAHIRAGANA) [KEY_MUHENKAN] = XLAT(KEY_MUHENKAN), + #define XLAT_VAL_93 ((unsigned) (KEY_MUHENKAN)) + #define XLAT_STR_93 STRINGIFY(KEY_MUHENKAN) [KEY_KPJPCOMMA] = XLAT(KEY_KPJPCOMMA), + #define XLAT_VAL_94 ((unsigned) (KEY_KPJPCOMMA)) + #define XLAT_STR_94 STRINGIFY(KEY_KPJPCOMMA) [KEY_KPENTER] = XLAT(KEY_KPENTER), + #define XLAT_VAL_95 ((unsigned) (KEY_KPENTER)) + #define XLAT_STR_95 STRINGIFY(KEY_KPENTER) [KEY_RIGHTCTRL] = XLAT(KEY_RIGHTCTRL), + #define XLAT_VAL_96 ((unsigned) (KEY_RIGHTCTRL)) + #define XLAT_STR_96 STRINGIFY(KEY_RIGHTCTRL) [KEY_KPSLASH] = XLAT(KEY_KPSLASH), + #define XLAT_VAL_97 ((unsigned) (KEY_KPSLASH)) + #define XLAT_STR_97 STRINGIFY(KEY_KPSLASH) [KEY_SYSRQ] = XLAT(KEY_SYSRQ), + #define XLAT_VAL_98 ((unsigned) (KEY_SYSRQ)) + #define XLAT_STR_98 STRINGIFY(KEY_SYSRQ) [KEY_RIGHTALT] = XLAT(KEY_RIGHTALT), + #define XLAT_VAL_99 ((unsigned) (KEY_RIGHTALT)) + #define XLAT_STR_99 STRINGIFY(KEY_RIGHTALT) [KEY_LINEFEED] = XLAT(KEY_LINEFEED), + #define XLAT_VAL_100 ((unsigned) (KEY_LINEFEED)) + #define XLAT_STR_100 STRINGIFY(KEY_LINEFEED) [KEY_HOME] = XLAT(KEY_HOME), + #define XLAT_VAL_101 ((unsigned) (KEY_HOME)) + #define XLAT_STR_101 STRINGIFY(KEY_HOME) [KEY_UP] = XLAT(KEY_UP), + #define XLAT_VAL_102 ((unsigned) (KEY_UP)) + #define XLAT_STR_102 STRINGIFY(KEY_UP) [KEY_PAGEUP] = XLAT(KEY_PAGEUP), + #define XLAT_VAL_103 ((unsigned) (KEY_PAGEUP)) + #define XLAT_STR_103 STRINGIFY(KEY_PAGEUP) [KEY_LEFT] = XLAT(KEY_LEFT), + #define XLAT_VAL_104 ((unsigned) (KEY_LEFT)) + #define XLAT_STR_104 STRINGIFY(KEY_LEFT) [KEY_RIGHT] = XLAT(KEY_RIGHT), + #define XLAT_VAL_105 ((unsigned) (KEY_RIGHT)) + #define XLAT_STR_105 STRINGIFY(KEY_RIGHT) [KEY_END] = XLAT(KEY_END), + #define XLAT_VAL_106 ((unsigned) (KEY_END)) + #define XLAT_STR_106 STRINGIFY(KEY_END) [KEY_DOWN] = XLAT(KEY_DOWN), + #define XLAT_VAL_107 ((unsigned) (KEY_DOWN)) + #define XLAT_STR_107 STRINGIFY(KEY_DOWN) [KEY_PAGEDOWN] = XLAT(KEY_PAGEDOWN), + #define XLAT_VAL_108 ((unsigned) (KEY_PAGEDOWN)) + #define XLAT_STR_108 STRINGIFY(KEY_PAGEDOWN) [KEY_INSERT] = XLAT(KEY_INSERT), + #define XLAT_VAL_109 ((unsigned) (KEY_INSERT)) + #define XLAT_STR_109 STRINGIFY(KEY_INSERT) [KEY_DELETE] = XLAT(KEY_DELETE), + #define XLAT_VAL_110 ((unsigned) (KEY_DELETE)) + #define XLAT_STR_110 STRINGIFY(KEY_DELETE) [KEY_MACRO] = XLAT(KEY_MACRO), + #define XLAT_VAL_111 ((unsigned) (KEY_MACRO)) + #define XLAT_STR_111 STRINGIFY(KEY_MACRO) [KEY_MUTE] = XLAT(KEY_MUTE), + #define XLAT_VAL_112 ((unsigned) (KEY_MUTE)) + #define XLAT_STR_112 STRINGIFY(KEY_MUTE) [KEY_VOLUMEDOWN] = XLAT(KEY_VOLUMEDOWN), + #define XLAT_VAL_113 ((unsigned) (KEY_VOLUMEDOWN)) + #define XLAT_STR_113 STRINGIFY(KEY_VOLUMEDOWN) [KEY_VOLUMEUP] = XLAT(KEY_VOLUMEUP), + #define XLAT_VAL_114 ((unsigned) (KEY_VOLUMEUP)) + #define XLAT_STR_114 STRINGIFY(KEY_VOLUMEUP) [KEY_POWER] = XLAT(KEY_POWER), + #define XLAT_VAL_115 ((unsigned) (KEY_POWER)) + #define XLAT_STR_115 STRINGIFY(KEY_POWER) [KEY_KPEQUAL] = XLAT(KEY_KPEQUAL), + #define XLAT_VAL_116 ((unsigned) (KEY_KPEQUAL)) + #define XLAT_STR_116 STRINGIFY(KEY_KPEQUAL) [KEY_KPPLUSMINUS] = XLAT(KEY_KPPLUSMINUS), + #define XLAT_VAL_117 ((unsigned) (KEY_KPPLUSMINUS)) + #define XLAT_STR_117 STRINGIFY(KEY_KPPLUSMINUS) [KEY_PAUSE] = XLAT(KEY_PAUSE), + #define XLAT_VAL_118 ((unsigned) (KEY_PAUSE)) + #define XLAT_STR_118 STRINGIFY(KEY_PAUSE) [KEY_SCALE] = XLAT(KEY_SCALE), + #define XLAT_VAL_119 ((unsigned) (KEY_SCALE)) + #define XLAT_STR_119 STRINGIFY(KEY_SCALE) [KEY_KPCOMMA] = XLAT(KEY_KPCOMMA), + #define XLAT_VAL_120 ((unsigned) (KEY_KPCOMMA)) + #define XLAT_STR_120 STRINGIFY(KEY_KPCOMMA) [KEY_HANGEUL] = XLAT(KEY_HANGEUL), + #define XLAT_VAL_121 ((unsigned) (KEY_HANGEUL)) + #define XLAT_STR_121 STRINGIFY(KEY_HANGEUL) [KEY_HANJA] = XLAT(KEY_HANJA), + #define XLAT_VAL_122 ((unsigned) (KEY_HANJA)) + #define XLAT_STR_122 STRINGIFY(KEY_HANJA) [KEY_YEN] = XLAT(KEY_YEN), + #define XLAT_VAL_123 ((unsigned) (KEY_YEN)) + #define XLAT_STR_123 STRINGIFY(KEY_YEN) [KEY_LEFTMETA] = XLAT(KEY_LEFTMETA), + #define XLAT_VAL_124 ((unsigned) (KEY_LEFTMETA)) + #define XLAT_STR_124 STRINGIFY(KEY_LEFTMETA) [KEY_RIGHTMETA] = XLAT(KEY_RIGHTMETA), + #define XLAT_VAL_125 ((unsigned) (KEY_RIGHTMETA)) + #define XLAT_STR_125 STRINGIFY(KEY_RIGHTMETA) [KEY_COMPOSE] = XLAT(KEY_COMPOSE), + #define XLAT_VAL_126 ((unsigned) (KEY_COMPOSE)) + #define XLAT_STR_126 STRINGIFY(KEY_COMPOSE) [KEY_STOP] = XLAT(KEY_STOP), + #define XLAT_VAL_127 ((unsigned) (KEY_STOP)) + #define XLAT_STR_127 STRINGIFY(KEY_STOP) [KEY_AGAIN] = XLAT(KEY_AGAIN), + #define XLAT_VAL_128 ((unsigned) (KEY_AGAIN)) + #define XLAT_STR_128 STRINGIFY(KEY_AGAIN) [KEY_PROPS] = XLAT(KEY_PROPS), + #define XLAT_VAL_129 ((unsigned) (KEY_PROPS)) + #define XLAT_STR_129 STRINGIFY(KEY_PROPS) [KEY_UNDO] = XLAT(KEY_UNDO), + #define XLAT_VAL_130 ((unsigned) (KEY_UNDO)) + #define XLAT_STR_130 STRINGIFY(KEY_UNDO) [KEY_FRONT] = XLAT(KEY_FRONT), + #define XLAT_VAL_131 ((unsigned) (KEY_FRONT)) + #define XLAT_STR_131 STRINGIFY(KEY_FRONT) [KEY_COPY] = XLAT(KEY_COPY), + #define XLAT_VAL_132 ((unsigned) (KEY_COPY)) + #define XLAT_STR_132 STRINGIFY(KEY_COPY) [KEY_OPEN] = XLAT(KEY_OPEN), + #define XLAT_VAL_133 ((unsigned) (KEY_OPEN)) + #define XLAT_STR_133 STRINGIFY(KEY_OPEN) [KEY_PASTE] = XLAT(KEY_PASTE), + #define XLAT_VAL_134 ((unsigned) (KEY_PASTE)) + #define XLAT_STR_134 STRINGIFY(KEY_PASTE) [KEY_FIND] = XLAT(KEY_FIND), + #define XLAT_VAL_135 ((unsigned) (KEY_FIND)) + #define XLAT_STR_135 STRINGIFY(KEY_FIND) [KEY_CUT] = XLAT(KEY_CUT), + #define XLAT_VAL_136 ((unsigned) (KEY_CUT)) + #define XLAT_STR_136 STRINGIFY(KEY_CUT) [KEY_HELP] = XLAT(KEY_HELP), + #define XLAT_VAL_137 ((unsigned) (KEY_HELP)) + #define XLAT_STR_137 STRINGIFY(KEY_HELP) [KEY_MENU] = XLAT(KEY_MENU), + #define XLAT_VAL_138 ((unsigned) (KEY_MENU)) + #define XLAT_STR_138 STRINGIFY(KEY_MENU) [KEY_CALC] = XLAT(KEY_CALC), + #define XLAT_VAL_139 ((unsigned) (KEY_CALC)) + #define XLAT_STR_139 STRINGIFY(KEY_CALC) [KEY_SETUP] = XLAT(KEY_SETUP), + #define XLAT_VAL_140 ((unsigned) (KEY_SETUP)) + #define XLAT_STR_140 STRINGIFY(KEY_SETUP) [KEY_SLEEP] = XLAT(KEY_SLEEP), + #define XLAT_VAL_141 ((unsigned) (KEY_SLEEP)) + #define XLAT_STR_141 STRINGIFY(KEY_SLEEP) [KEY_WAKEUP] = XLAT(KEY_WAKEUP), + #define XLAT_VAL_142 ((unsigned) (KEY_WAKEUP)) + #define XLAT_STR_142 STRINGIFY(KEY_WAKEUP) [KEY_FILE] = XLAT(KEY_FILE), + #define XLAT_VAL_143 ((unsigned) (KEY_FILE)) + #define XLAT_STR_143 STRINGIFY(KEY_FILE) [KEY_SENDFILE] = XLAT(KEY_SENDFILE), + #define XLAT_VAL_144 ((unsigned) (KEY_SENDFILE)) + #define XLAT_STR_144 STRINGIFY(KEY_SENDFILE) [KEY_DELETEFILE] = XLAT(KEY_DELETEFILE), + #define XLAT_VAL_145 ((unsigned) (KEY_DELETEFILE)) + #define XLAT_STR_145 STRINGIFY(KEY_DELETEFILE) [KEY_XFER] = XLAT(KEY_XFER), + #define XLAT_VAL_146 ((unsigned) (KEY_XFER)) + #define XLAT_STR_146 STRINGIFY(KEY_XFER) [KEY_PROG1] = XLAT(KEY_PROG1), + #define XLAT_VAL_147 ((unsigned) (KEY_PROG1)) + #define XLAT_STR_147 STRINGIFY(KEY_PROG1) [KEY_PROG2] = XLAT(KEY_PROG2), + #define XLAT_VAL_148 ((unsigned) (KEY_PROG2)) + #define XLAT_STR_148 STRINGIFY(KEY_PROG2) [KEY_WWW] = XLAT(KEY_WWW), + #define XLAT_VAL_149 ((unsigned) (KEY_WWW)) + #define XLAT_STR_149 STRINGIFY(KEY_WWW) [KEY_MSDOS] = XLAT(KEY_MSDOS), + #define XLAT_VAL_150 ((unsigned) (KEY_MSDOS)) + #define XLAT_STR_150 STRINGIFY(KEY_MSDOS) [KEY_COFFEE] = XLAT(KEY_COFFEE), + #define XLAT_VAL_151 ((unsigned) (KEY_COFFEE)) + #define XLAT_STR_151 STRINGIFY(KEY_COFFEE) [KEY_ROTATE_DISPLAY] = XLAT(KEY_ROTATE_DISPLAY), + #define XLAT_VAL_152 ((unsigned) (KEY_ROTATE_DISPLAY)) + #define XLAT_STR_152 STRINGIFY(KEY_ROTATE_DISPLAY) [KEY_CYCLEWINDOWS] = XLAT(KEY_CYCLEWINDOWS), + #define XLAT_VAL_153 ((unsigned) (KEY_CYCLEWINDOWS)) + #define XLAT_STR_153 STRINGIFY(KEY_CYCLEWINDOWS) [KEY_MAIL] = XLAT(KEY_MAIL), + #define XLAT_VAL_154 ((unsigned) (KEY_MAIL)) + #define XLAT_STR_154 STRINGIFY(KEY_MAIL) [KEY_BOOKMARKS] = XLAT(KEY_BOOKMARKS), + #define XLAT_VAL_155 ((unsigned) (KEY_BOOKMARKS)) + #define XLAT_STR_155 STRINGIFY(KEY_BOOKMARKS) [KEY_COMPUTER] = XLAT(KEY_COMPUTER), + #define XLAT_VAL_156 ((unsigned) (KEY_COMPUTER)) + #define XLAT_STR_156 STRINGIFY(KEY_COMPUTER) [KEY_BACK] = XLAT(KEY_BACK), + #define XLAT_VAL_157 ((unsigned) (KEY_BACK)) + #define XLAT_STR_157 STRINGIFY(KEY_BACK) [KEY_FORWARD] = XLAT(KEY_FORWARD), + #define XLAT_VAL_158 ((unsigned) (KEY_FORWARD)) + #define XLAT_STR_158 STRINGIFY(KEY_FORWARD) [KEY_CLOSECD] = XLAT(KEY_CLOSECD), + #define XLAT_VAL_159 ((unsigned) (KEY_CLOSECD)) + #define XLAT_STR_159 STRINGIFY(KEY_CLOSECD) [KEY_EJECTCD] = XLAT(KEY_EJECTCD), + #define XLAT_VAL_160 ((unsigned) (KEY_EJECTCD)) + #define XLAT_STR_160 STRINGIFY(KEY_EJECTCD) [KEY_EJECTCLOSECD] = XLAT(KEY_EJECTCLOSECD), + #define XLAT_VAL_161 ((unsigned) (KEY_EJECTCLOSECD)) + #define XLAT_STR_161 STRINGIFY(KEY_EJECTCLOSECD) [KEY_NEXTSONG] = XLAT(KEY_NEXTSONG), + #define XLAT_VAL_162 ((unsigned) (KEY_NEXTSONG)) + #define XLAT_STR_162 STRINGIFY(KEY_NEXTSONG) [KEY_PLAYPAUSE] = XLAT(KEY_PLAYPAUSE), + #define XLAT_VAL_163 ((unsigned) (KEY_PLAYPAUSE)) + #define XLAT_STR_163 STRINGIFY(KEY_PLAYPAUSE) [KEY_PREVIOUSSONG] = XLAT(KEY_PREVIOUSSONG), + #define XLAT_VAL_164 ((unsigned) (KEY_PREVIOUSSONG)) + #define XLAT_STR_164 STRINGIFY(KEY_PREVIOUSSONG) [KEY_STOPCD] = XLAT(KEY_STOPCD), + #define XLAT_VAL_165 ((unsigned) (KEY_STOPCD)) + #define XLAT_STR_165 STRINGIFY(KEY_STOPCD) [KEY_RECORD] = XLAT(KEY_RECORD), + #define XLAT_VAL_166 ((unsigned) (KEY_RECORD)) + #define XLAT_STR_166 STRINGIFY(KEY_RECORD) [KEY_REWIND] = XLAT(KEY_REWIND), + #define XLAT_VAL_167 ((unsigned) (KEY_REWIND)) + #define XLAT_STR_167 STRINGIFY(KEY_REWIND) [KEY_PHONE] = XLAT(KEY_PHONE), + #define XLAT_VAL_168 ((unsigned) (KEY_PHONE)) + #define XLAT_STR_168 STRINGIFY(KEY_PHONE) [KEY_ISO] = XLAT(KEY_ISO), + #define XLAT_VAL_169 ((unsigned) (KEY_ISO)) + #define XLAT_STR_169 STRINGIFY(KEY_ISO) [KEY_CONFIG] = XLAT(KEY_CONFIG), + #define XLAT_VAL_170 ((unsigned) (KEY_CONFIG)) + #define XLAT_STR_170 STRINGIFY(KEY_CONFIG) [KEY_HOMEPAGE] = XLAT(KEY_HOMEPAGE), + #define XLAT_VAL_171 ((unsigned) (KEY_HOMEPAGE)) + #define XLAT_STR_171 STRINGIFY(KEY_HOMEPAGE) [KEY_REFRESH] = XLAT(KEY_REFRESH), + #define XLAT_VAL_172 ((unsigned) (KEY_REFRESH)) + #define XLAT_STR_172 STRINGIFY(KEY_REFRESH) [KEY_EXIT] = XLAT(KEY_EXIT), + #define XLAT_VAL_173 ((unsigned) (KEY_EXIT)) + #define XLAT_STR_173 STRINGIFY(KEY_EXIT) [KEY_MOVE] = XLAT(KEY_MOVE), + #define XLAT_VAL_174 ((unsigned) (KEY_MOVE)) + #define XLAT_STR_174 STRINGIFY(KEY_MOVE) [KEY_EDIT] = XLAT(KEY_EDIT), + #define XLAT_VAL_175 ((unsigned) (KEY_EDIT)) + #define XLAT_STR_175 STRINGIFY(KEY_EDIT) [KEY_SCROLLUP] = XLAT(KEY_SCROLLUP), + #define XLAT_VAL_176 ((unsigned) (KEY_SCROLLUP)) + #define XLAT_STR_176 STRINGIFY(KEY_SCROLLUP) [KEY_SCROLLDOWN] = XLAT(KEY_SCROLLDOWN), + #define XLAT_VAL_177 ((unsigned) (KEY_SCROLLDOWN)) + #define XLAT_STR_177 STRINGIFY(KEY_SCROLLDOWN) [KEY_KPLEFTPAREN] = XLAT(KEY_KPLEFTPAREN), + #define XLAT_VAL_178 ((unsigned) (KEY_KPLEFTPAREN)) + #define XLAT_STR_178 STRINGIFY(KEY_KPLEFTPAREN) [KEY_KPRIGHTPAREN] = XLAT(KEY_KPRIGHTPAREN), + #define XLAT_VAL_179 ((unsigned) (KEY_KPRIGHTPAREN)) + #define XLAT_STR_179 STRINGIFY(KEY_KPRIGHTPAREN) [KEY_NEW] = XLAT(KEY_NEW), + #define XLAT_VAL_180 ((unsigned) (KEY_NEW)) + #define XLAT_STR_180 STRINGIFY(KEY_NEW) [KEY_REDO] = XLAT(KEY_REDO), + #define XLAT_VAL_181 ((unsigned) (KEY_REDO)) + #define XLAT_STR_181 STRINGIFY(KEY_REDO) [KEY_F13] = XLAT(KEY_F13), + #define XLAT_VAL_182 ((unsigned) (KEY_F13)) + #define XLAT_STR_182 STRINGIFY(KEY_F13) [KEY_F14] = XLAT(KEY_F14), + #define XLAT_VAL_183 ((unsigned) (KEY_F14)) + #define XLAT_STR_183 STRINGIFY(KEY_F14) [KEY_F15] = XLAT(KEY_F15), + #define XLAT_VAL_184 ((unsigned) (KEY_F15)) + #define XLAT_STR_184 STRINGIFY(KEY_F15) [KEY_F16] = XLAT(KEY_F16), + #define XLAT_VAL_185 ((unsigned) (KEY_F16)) + #define XLAT_STR_185 STRINGIFY(KEY_F16) [KEY_F17] = XLAT(KEY_F17), + #define XLAT_VAL_186 ((unsigned) (KEY_F17)) + #define XLAT_STR_186 STRINGIFY(KEY_F17) [KEY_F18] = XLAT(KEY_F18), + #define XLAT_VAL_187 ((unsigned) (KEY_F18)) + #define XLAT_STR_187 STRINGIFY(KEY_F18) [KEY_F19] = XLAT(KEY_F19), + #define XLAT_VAL_188 ((unsigned) (KEY_F19)) + #define XLAT_STR_188 STRINGIFY(KEY_F19) [KEY_F20] = XLAT(KEY_F20), + #define XLAT_VAL_189 ((unsigned) (KEY_F20)) + #define XLAT_STR_189 STRINGIFY(KEY_F20) [KEY_F21] = XLAT(KEY_F21), + #define XLAT_VAL_190 ((unsigned) (KEY_F21)) + #define XLAT_STR_190 STRINGIFY(KEY_F21) [KEY_F22] = XLAT(KEY_F22), + #define XLAT_VAL_191 ((unsigned) (KEY_F22)) + #define XLAT_STR_191 STRINGIFY(KEY_F22) [KEY_F23] = XLAT(KEY_F23), + #define XLAT_VAL_192 ((unsigned) (KEY_F23)) + #define XLAT_STR_192 STRINGIFY(KEY_F23) [KEY_F24] = XLAT(KEY_F24), + #define XLAT_VAL_193 ((unsigned) (KEY_F24)) + #define XLAT_STR_193 STRINGIFY(KEY_F24) [KEY_PLAYCD] = XLAT(KEY_PLAYCD), + #define XLAT_VAL_194 ((unsigned) (KEY_PLAYCD)) + #define XLAT_STR_194 STRINGIFY(KEY_PLAYCD) [KEY_PAUSECD] = XLAT(KEY_PAUSECD), + #define XLAT_VAL_195 ((unsigned) (KEY_PAUSECD)) + #define XLAT_STR_195 STRINGIFY(KEY_PAUSECD) [KEY_PROG3] = XLAT(KEY_PROG3), + #define XLAT_VAL_196 ((unsigned) (KEY_PROG3)) + #define XLAT_STR_196 STRINGIFY(KEY_PROG3) [KEY_PROG4] = XLAT(KEY_PROG4), + #define XLAT_VAL_197 ((unsigned) (KEY_PROG4)) + #define XLAT_STR_197 STRINGIFY(KEY_PROG4) [KEY_DASHBOARD] = XLAT(KEY_DASHBOARD), + #define XLAT_VAL_198 ((unsigned) (KEY_DASHBOARD)) + #define XLAT_STR_198 STRINGIFY(KEY_DASHBOARD) [KEY_SUSPEND] = XLAT(KEY_SUSPEND), + #define XLAT_VAL_199 ((unsigned) (KEY_SUSPEND)) + #define XLAT_STR_199 STRINGIFY(KEY_SUSPEND) [KEY_CLOSE] = XLAT(KEY_CLOSE), + #define XLAT_VAL_200 ((unsigned) (KEY_CLOSE)) + #define XLAT_STR_200 STRINGIFY(KEY_CLOSE) [KEY_PLAY] = XLAT(KEY_PLAY), + #define XLAT_VAL_201 ((unsigned) (KEY_PLAY)) + #define XLAT_STR_201 STRINGIFY(KEY_PLAY) [KEY_FASTFORWARD] = XLAT(KEY_FASTFORWARD), + #define XLAT_VAL_202 ((unsigned) (KEY_FASTFORWARD)) + #define XLAT_STR_202 STRINGIFY(KEY_FASTFORWARD) [KEY_BASSBOOST] = XLAT(KEY_BASSBOOST), + #define XLAT_VAL_203 ((unsigned) (KEY_BASSBOOST)) + #define XLAT_STR_203 STRINGIFY(KEY_BASSBOOST) [KEY_PRINT] = XLAT(KEY_PRINT), + #define XLAT_VAL_204 ((unsigned) (KEY_PRINT)) + #define XLAT_STR_204 STRINGIFY(KEY_PRINT) [KEY_HP] = XLAT(KEY_HP), + #define XLAT_VAL_205 ((unsigned) (KEY_HP)) + #define XLAT_STR_205 STRINGIFY(KEY_HP) [KEY_CAMERA] = XLAT(KEY_CAMERA), + #define XLAT_VAL_206 ((unsigned) (KEY_CAMERA)) + #define XLAT_STR_206 STRINGIFY(KEY_CAMERA) [KEY_SOUND] = XLAT(KEY_SOUND), + #define XLAT_VAL_207 ((unsigned) (KEY_SOUND)) + #define XLAT_STR_207 STRINGIFY(KEY_SOUND) [KEY_QUESTION] = XLAT(KEY_QUESTION), + #define XLAT_VAL_208 ((unsigned) (KEY_QUESTION)) + #define XLAT_STR_208 STRINGIFY(KEY_QUESTION) [KEY_EMAIL] = XLAT(KEY_EMAIL), + #define XLAT_VAL_209 ((unsigned) (KEY_EMAIL)) + #define XLAT_STR_209 STRINGIFY(KEY_EMAIL) [KEY_CHAT] = XLAT(KEY_CHAT), + #define XLAT_VAL_210 ((unsigned) (KEY_CHAT)) + #define XLAT_STR_210 STRINGIFY(KEY_CHAT) [KEY_SEARCH] = XLAT(KEY_SEARCH), + #define XLAT_VAL_211 ((unsigned) (KEY_SEARCH)) + #define XLAT_STR_211 STRINGIFY(KEY_SEARCH) [KEY_CONNECT] = XLAT(KEY_CONNECT), + #define XLAT_VAL_212 ((unsigned) (KEY_CONNECT)) + #define XLAT_STR_212 STRINGIFY(KEY_CONNECT) [KEY_FINANCE] = XLAT(KEY_FINANCE), + #define XLAT_VAL_213 ((unsigned) (KEY_FINANCE)) + #define XLAT_STR_213 STRINGIFY(KEY_FINANCE) [KEY_SPORT] = XLAT(KEY_SPORT), + #define XLAT_VAL_214 ((unsigned) (KEY_SPORT)) + #define XLAT_STR_214 STRINGIFY(KEY_SPORT) [KEY_SHOP] = XLAT(KEY_SHOP), + #define XLAT_VAL_215 ((unsigned) (KEY_SHOP)) + #define XLAT_STR_215 STRINGIFY(KEY_SHOP) [KEY_ALTERASE] = XLAT(KEY_ALTERASE), + #define XLAT_VAL_216 ((unsigned) (KEY_ALTERASE)) + #define XLAT_STR_216 STRINGIFY(KEY_ALTERASE) [KEY_CANCEL] = XLAT(KEY_CANCEL), + #define XLAT_VAL_217 ((unsigned) (KEY_CANCEL)) + #define XLAT_STR_217 STRINGIFY(KEY_CANCEL) [KEY_BRIGHTNESSDOWN] = XLAT(KEY_BRIGHTNESSDOWN), + #define XLAT_VAL_218 ((unsigned) (KEY_BRIGHTNESSDOWN)) + #define XLAT_STR_218 STRINGIFY(KEY_BRIGHTNESSDOWN) [KEY_BRIGHTNESSUP] = XLAT(KEY_BRIGHTNESSUP), + #define XLAT_VAL_219 ((unsigned) (KEY_BRIGHTNESSUP)) + #define XLAT_STR_219 STRINGIFY(KEY_BRIGHTNESSUP) [KEY_MEDIA] = XLAT(KEY_MEDIA), + #define XLAT_VAL_220 ((unsigned) (KEY_MEDIA)) + #define XLAT_STR_220 STRINGIFY(KEY_MEDIA) [KEY_SWITCHVIDEOMODE] = XLAT(KEY_SWITCHVIDEOMODE), + #define XLAT_VAL_221 ((unsigned) (KEY_SWITCHVIDEOMODE)) + #define XLAT_STR_221 STRINGIFY(KEY_SWITCHVIDEOMODE) [KEY_KBDILLUMTOGGLE] = XLAT(KEY_KBDILLUMTOGGLE), + #define XLAT_VAL_222 ((unsigned) (KEY_KBDILLUMTOGGLE)) + #define XLAT_STR_222 STRINGIFY(KEY_KBDILLUMTOGGLE) [KEY_KBDILLUMDOWN] = XLAT(KEY_KBDILLUMDOWN), + #define XLAT_VAL_223 ((unsigned) (KEY_KBDILLUMDOWN)) + #define XLAT_STR_223 STRINGIFY(KEY_KBDILLUMDOWN) [KEY_KBDILLUMUP] = XLAT(KEY_KBDILLUMUP), + #define XLAT_VAL_224 ((unsigned) (KEY_KBDILLUMUP)) + #define XLAT_STR_224 STRINGIFY(KEY_KBDILLUMUP) [KEY_SEND] = XLAT(KEY_SEND), + #define XLAT_VAL_225 ((unsigned) (KEY_SEND)) + #define XLAT_STR_225 STRINGIFY(KEY_SEND) [KEY_REPLY] = XLAT(KEY_REPLY), + #define XLAT_VAL_226 ((unsigned) (KEY_REPLY)) + #define XLAT_STR_226 STRINGIFY(KEY_REPLY) [KEY_FORWARDMAIL] = XLAT(KEY_FORWARDMAIL), + #define XLAT_VAL_227 ((unsigned) (KEY_FORWARDMAIL)) + #define XLAT_STR_227 STRINGIFY(KEY_FORWARDMAIL) [KEY_SAVE] = XLAT(KEY_SAVE), + #define XLAT_VAL_228 ((unsigned) (KEY_SAVE)) + #define XLAT_STR_228 STRINGIFY(KEY_SAVE) [KEY_DOCUMENTS] = XLAT(KEY_DOCUMENTS), + #define XLAT_VAL_229 ((unsigned) (KEY_DOCUMENTS)) + #define XLAT_STR_229 STRINGIFY(KEY_DOCUMENTS) [KEY_BATTERY] = XLAT(KEY_BATTERY), + #define XLAT_VAL_230 ((unsigned) (KEY_BATTERY)) + #define XLAT_STR_230 STRINGIFY(KEY_BATTERY) [KEY_BLUETOOTH] = XLAT(KEY_BLUETOOTH), + #define XLAT_VAL_231 ((unsigned) (KEY_BLUETOOTH)) + #define XLAT_STR_231 STRINGIFY(KEY_BLUETOOTH) [KEY_WLAN] = XLAT(KEY_WLAN), + #define XLAT_VAL_232 ((unsigned) (KEY_WLAN)) + #define XLAT_STR_232 STRINGIFY(KEY_WLAN) [KEY_UWB] = XLAT(KEY_UWB), + #define XLAT_VAL_233 ((unsigned) (KEY_UWB)) + #define XLAT_STR_233 STRINGIFY(KEY_UWB) [KEY_UNKNOWN] = XLAT(KEY_UNKNOWN), + #define XLAT_VAL_234 ((unsigned) (KEY_UNKNOWN)) + #define XLAT_STR_234 STRINGIFY(KEY_UNKNOWN) [KEY_VIDEO_NEXT] = XLAT(KEY_VIDEO_NEXT), + #define XLAT_VAL_235 ((unsigned) (KEY_VIDEO_NEXT)) + #define XLAT_STR_235 STRINGIFY(KEY_VIDEO_NEXT) [KEY_VIDEO_PREV] = XLAT(KEY_VIDEO_PREV), + #define XLAT_VAL_236 ((unsigned) (KEY_VIDEO_PREV)) + #define XLAT_STR_236 STRINGIFY(KEY_VIDEO_PREV) [KEY_BRIGHTNESS_CYCLE] = XLAT(KEY_BRIGHTNESS_CYCLE), + #define XLAT_VAL_237 ((unsigned) (KEY_BRIGHTNESS_CYCLE)) + #define XLAT_STR_237 STRINGIFY(KEY_BRIGHTNESS_CYCLE) [KEY_BRIGHTNESS_AUTO] = XLAT(KEY_BRIGHTNESS_AUTO), + #define XLAT_VAL_238 ((unsigned) (KEY_BRIGHTNESS_AUTO)) + #define XLAT_STR_238 STRINGIFY(KEY_BRIGHTNESS_AUTO) [KEY_DISPLAY_OFF] = XLAT(KEY_DISPLAY_OFF), + #define XLAT_VAL_239 ((unsigned) (KEY_DISPLAY_OFF)) + #define XLAT_STR_239 STRINGIFY(KEY_DISPLAY_OFF) [KEY_WWAN] = XLAT(KEY_WWAN), + #define XLAT_VAL_240 ((unsigned) (KEY_WWAN)) + #define XLAT_STR_240 STRINGIFY(KEY_WWAN) #ifndef STRACE_WORKAROUND_FOR_KEY_RFKILL # define STRACE_WORKAROUND_FOR_KEY_RFKILL @@ -4110,263 +4899,740 @@ const struct xlat evdev_keycode[] = { # undef KEY_RFKILL #endif [KEY_RFKILL] = XLAT(KEY_RFKILL), + #define XLAT_VAL_241 ((unsigned) (KEY_RFKILL)) + #define XLAT_STR_241 STRINGIFY(KEY_RFKILL) [KEY_MICMUTE] = XLAT(KEY_MICMUTE), + #define XLAT_VAL_242 ((unsigned) (KEY_MICMUTE)) + #define XLAT_STR_242 STRINGIFY(KEY_MICMUTE) [BTN_0] = XLAT(BTN_0), + #define XLAT_VAL_243 ((unsigned) (BTN_0)) + #define XLAT_STR_243 STRINGIFY(BTN_0) [BTN_1] = XLAT(BTN_1), + #define XLAT_VAL_244 ((unsigned) (BTN_1)) + #define XLAT_STR_244 STRINGIFY(BTN_1) [BTN_2] = XLAT(BTN_2), + #define XLAT_VAL_245 ((unsigned) (BTN_2)) + #define XLAT_STR_245 STRINGIFY(BTN_2) [BTN_3] = XLAT(BTN_3), + #define XLAT_VAL_246 ((unsigned) (BTN_3)) + #define XLAT_STR_246 STRINGIFY(BTN_3) [BTN_4] = XLAT(BTN_4), + #define XLAT_VAL_247 ((unsigned) (BTN_4)) + #define XLAT_STR_247 STRINGIFY(BTN_4) [BTN_5] = XLAT(BTN_5), + #define XLAT_VAL_248 ((unsigned) (BTN_5)) + #define XLAT_STR_248 STRINGIFY(BTN_5) [BTN_6] = XLAT(BTN_6), + #define XLAT_VAL_249 ((unsigned) (BTN_6)) + #define XLAT_STR_249 STRINGIFY(BTN_6) [BTN_7] = XLAT(BTN_7), + #define XLAT_VAL_250 ((unsigned) (BTN_7)) + #define XLAT_STR_250 STRINGIFY(BTN_7) [BTN_8] = XLAT(BTN_8), + #define XLAT_VAL_251 ((unsigned) (BTN_8)) + #define XLAT_STR_251 STRINGIFY(BTN_8) [BTN_9] = XLAT(BTN_9), + #define XLAT_VAL_252 ((unsigned) (BTN_9)) + #define XLAT_STR_252 STRINGIFY(BTN_9) [BTN_LEFT] = XLAT(BTN_LEFT), + #define XLAT_VAL_253 ((unsigned) (BTN_LEFT)) + #define XLAT_STR_253 STRINGIFY(BTN_LEFT) [BTN_RIGHT] = XLAT(BTN_RIGHT), + #define XLAT_VAL_254 ((unsigned) (BTN_RIGHT)) + #define XLAT_STR_254 STRINGIFY(BTN_RIGHT) [BTN_MIDDLE] = XLAT(BTN_MIDDLE), + #define XLAT_VAL_255 ((unsigned) (BTN_MIDDLE)) + #define XLAT_STR_255 STRINGIFY(BTN_MIDDLE) [BTN_SIDE] = XLAT(BTN_SIDE), + #define XLAT_VAL_256 ((unsigned) (BTN_SIDE)) + #define XLAT_STR_256 STRINGIFY(BTN_SIDE) [BTN_EXTRA] = XLAT(BTN_EXTRA), + #define XLAT_VAL_257 ((unsigned) (BTN_EXTRA)) + #define XLAT_STR_257 STRINGIFY(BTN_EXTRA) [BTN_FORWARD] = XLAT(BTN_FORWARD), + #define XLAT_VAL_258 ((unsigned) (BTN_FORWARD)) + #define XLAT_STR_258 STRINGIFY(BTN_FORWARD) [BTN_BACK] = XLAT(BTN_BACK), + #define XLAT_VAL_259 ((unsigned) (BTN_BACK)) + #define XLAT_STR_259 STRINGIFY(BTN_BACK) [BTN_TASK] = XLAT(BTN_TASK), + #define XLAT_VAL_260 ((unsigned) (BTN_TASK)) + #define XLAT_STR_260 STRINGIFY(BTN_TASK) [BTN_TRIGGER] = XLAT(BTN_TRIGGER), + #define XLAT_VAL_261 ((unsigned) (BTN_TRIGGER)) + #define XLAT_STR_261 STRINGIFY(BTN_TRIGGER) [BTN_THUMB] = XLAT(BTN_THUMB), + #define XLAT_VAL_262 ((unsigned) (BTN_THUMB)) + #define XLAT_STR_262 STRINGIFY(BTN_THUMB) [BTN_THUMB2] = XLAT(BTN_THUMB2), + #define XLAT_VAL_263 ((unsigned) (BTN_THUMB2)) + #define XLAT_STR_263 STRINGIFY(BTN_THUMB2) [BTN_TOP] = XLAT(BTN_TOP), + #define XLAT_VAL_264 ((unsigned) (BTN_TOP)) + #define XLAT_STR_264 STRINGIFY(BTN_TOP) [BTN_TOP2] = XLAT(BTN_TOP2), + #define XLAT_VAL_265 ((unsigned) (BTN_TOP2)) + #define XLAT_STR_265 STRINGIFY(BTN_TOP2) [BTN_PINKIE] = XLAT(BTN_PINKIE), + #define XLAT_VAL_266 ((unsigned) (BTN_PINKIE)) + #define XLAT_STR_266 STRINGIFY(BTN_PINKIE) [BTN_BASE] = XLAT(BTN_BASE), + #define XLAT_VAL_267 ((unsigned) (BTN_BASE)) + #define XLAT_STR_267 STRINGIFY(BTN_BASE) [BTN_BASE2] = XLAT(BTN_BASE2), + #define XLAT_VAL_268 ((unsigned) (BTN_BASE2)) + #define XLAT_STR_268 STRINGIFY(BTN_BASE2) [BTN_BASE3] = XLAT(BTN_BASE3), + #define XLAT_VAL_269 ((unsigned) (BTN_BASE3)) + #define XLAT_STR_269 STRINGIFY(BTN_BASE3) [BTN_BASE4] = XLAT(BTN_BASE4), + #define XLAT_VAL_270 ((unsigned) (BTN_BASE4)) + #define XLAT_STR_270 STRINGIFY(BTN_BASE4) [BTN_BASE5] = XLAT(BTN_BASE5), + #define XLAT_VAL_271 ((unsigned) (BTN_BASE5)) + #define XLAT_STR_271 STRINGIFY(BTN_BASE5) [BTN_BASE6] = XLAT(BTN_BASE6), + #define XLAT_VAL_272 ((unsigned) (BTN_BASE6)) + #define XLAT_STR_272 STRINGIFY(BTN_BASE6) [BTN_DEAD] = XLAT(BTN_DEAD), + #define XLAT_VAL_273 ((unsigned) (BTN_DEAD)) + #define XLAT_STR_273 STRINGIFY(BTN_DEAD) [BTN_SOUTH] = XLAT(BTN_SOUTH), + #define XLAT_VAL_274 ((unsigned) (BTN_SOUTH)) + #define XLAT_STR_274 STRINGIFY(BTN_SOUTH) [BTN_EAST] = XLAT(BTN_EAST), + #define XLAT_VAL_275 ((unsigned) (BTN_EAST)) + #define XLAT_STR_275 STRINGIFY(BTN_EAST) [BTN_C] = XLAT(BTN_C), + #define XLAT_VAL_276 ((unsigned) (BTN_C)) + #define XLAT_STR_276 STRINGIFY(BTN_C) [BTN_NORTH] = XLAT(BTN_NORTH), + #define XLAT_VAL_277 ((unsigned) (BTN_NORTH)) + #define XLAT_STR_277 STRINGIFY(BTN_NORTH) [BTN_WEST] = XLAT(BTN_WEST), + #define XLAT_VAL_278 ((unsigned) (BTN_WEST)) + #define XLAT_STR_278 STRINGIFY(BTN_WEST) [BTN_Z] = XLAT(BTN_Z), + #define XLAT_VAL_279 ((unsigned) (BTN_Z)) + #define XLAT_STR_279 STRINGIFY(BTN_Z) [BTN_TL] = XLAT(BTN_TL), + #define XLAT_VAL_280 ((unsigned) (BTN_TL)) + #define XLAT_STR_280 STRINGIFY(BTN_TL) [BTN_TR] = XLAT(BTN_TR), + #define XLAT_VAL_281 ((unsigned) (BTN_TR)) + #define XLAT_STR_281 STRINGIFY(BTN_TR) [BTN_TL2] = XLAT(BTN_TL2), + #define XLAT_VAL_282 ((unsigned) (BTN_TL2)) + #define XLAT_STR_282 STRINGIFY(BTN_TL2) [BTN_TR2] = XLAT(BTN_TR2), + #define XLAT_VAL_283 ((unsigned) (BTN_TR2)) + #define XLAT_STR_283 STRINGIFY(BTN_TR2) [BTN_SELECT] = XLAT(BTN_SELECT), + #define XLAT_VAL_284 ((unsigned) (BTN_SELECT)) + #define XLAT_STR_284 STRINGIFY(BTN_SELECT) [BTN_START] = XLAT(BTN_START), + #define XLAT_VAL_285 ((unsigned) (BTN_START)) + #define XLAT_STR_285 STRINGIFY(BTN_START) [BTN_MODE] = XLAT(BTN_MODE), + #define XLAT_VAL_286 ((unsigned) (BTN_MODE)) + #define XLAT_STR_286 STRINGIFY(BTN_MODE) [BTN_THUMBL] = XLAT(BTN_THUMBL), + #define XLAT_VAL_287 ((unsigned) (BTN_THUMBL)) + #define XLAT_STR_287 STRINGIFY(BTN_THUMBL) [BTN_THUMBR] = XLAT(BTN_THUMBR), + #define XLAT_VAL_288 ((unsigned) (BTN_THUMBR)) + #define XLAT_STR_288 STRINGIFY(BTN_THUMBR) [BTN_TOOL_PEN] = XLAT(BTN_TOOL_PEN), + #define XLAT_VAL_289 ((unsigned) (BTN_TOOL_PEN)) + #define XLAT_STR_289 STRINGIFY(BTN_TOOL_PEN) [BTN_TOOL_RUBBER] = XLAT(BTN_TOOL_RUBBER), + #define XLAT_VAL_290 ((unsigned) (BTN_TOOL_RUBBER)) + #define XLAT_STR_290 STRINGIFY(BTN_TOOL_RUBBER) [BTN_TOOL_BRUSH] = XLAT(BTN_TOOL_BRUSH), + #define XLAT_VAL_291 ((unsigned) (BTN_TOOL_BRUSH)) + #define XLAT_STR_291 STRINGIFY(BTN_TOOL_BRUSH) [BTN_TOOL_PENCIL] = XLAT(BTN_TOOL_PENCIL), + #define XLAT_VAL_292 ((unsigned) (BTN_TOOL_PENCIL)) + #define XLAT_STR_292 STRINGIFY(BTN_TOOL_PENCIL) [BTN_TOOL_AIRBRUSH] = XLAT(BTN_TOOL_AIRBRUSH), + #define XLAT_VAL_293 ((unsigned) (BTN_TOOL_AIRBRUSH)) + #define XLAT_STR_293 STRINGIFY(BTN_TOOL_AIRBRUSH) [BTN_TOOL_FINGER] = XLAT(BTN_TOOL_FINGER), + #define XLAT_VAL_294 ((unsigned) (BTN_TOOL_FINGER)) + #define XLAT_STR_294 STRINGIFY(BTN_TOOL_FINGER) [BTN_TOOL_MOUSE] = XLAT(BTN_TOOL_MOUSE), + #define XLAT_VAL_295 ((unsigned) (BTN_TOOL_MOUSE)) + #define XLAT_STR_295 STRINGIFY(BTN_TOOL_MOUSE) [BTN_TOOL_LENS] = XLAT(BTN_TOOL_LENS), + #define XLAT_VAL_296 ((unsigned) (BTN_TOOL_LENS)) + #define XLAT_STR_296 STRINGIFY(BTN_TOOL_LENS) [BTN_TOOL_QUINTTAP] = XLAT(BTN_TOOL_QUINTTAP), + #define XLAT_VAL_297 ((unsigned) (BTN_TOOL_QUINTTAP)) + #define XLAT_STR_297 STRINGIFY(BTN_TOOL_QUINTTAP) [BTN_STYLUS3] = XLAT(BTN_STYLUS3), + #define XLAT_VAL_298 ((unsigned) (BTN_STYLUS3)) + #define XLAT_STR_298 STRINGIFY(BTN_STYLUS3) [BTN_TOUCH] = XLAT(BTN_TOUCH), + #define XLAT_VAL_299 ((unsigned) (BTN_TOUCH)) + #define XLAT_STR_299 STRINGIFY(BTN_TOUCH) [BTN_STYLUS] = XLAT(BTN_STYLUS), + #define XLAT_VAL_300 ((unsigned) (BTN_STYLUS)) + #define XLAT_STR_300 STRINGIFY(BTN_STYLUS) [BTN_STYLUS2] = XLAT(BTN_STYLUS2), + #define XLAT_VAL_301 ((unsigned) (BTN_STYLUS2)) + #define XLAT_STR_301 STRINGIFY(BTN_STYLUS2) [BTN_TOOL_DOUBLETAP] = XLAT(BTN_TOOL_DOUBLETAP), + #define XLAT_VAL_302 ((unsigned) (BTN_TOOL_DOUBLETAP)) + #define XLAT_STR_302 STRINGIFY(BTN_TOOL_DOUBLETAP) [BTN_TOOL_TRIPLETAP] = XLAT(BTN_TOOL_TRIPLETAP), + #define XLAT_VAL_303 ((unsigned) (BTN_TOOL_TRIPLETAP)) + #define XLAT_STR_303 STRINGIFY(BTN_TOOL_TRIPLETAP) [BTN_TOOL_QUADTAP] = XLAT(BTN_TOOL_QUADTAP), + #define XLAT_VAL_304 ((unsigned) (BTN_TOOL_QUADTAP)) + #define XLAT_STR_304 STRINGIFY(BTN_TOOL_QUADTAP) [BTN_GEAR_DOWN] = XLAT(BTN_GEAR_DOWN), + #define XLAT_VAL_305 ((unsigned) (BTN_GEAR_DOWN)) + #define XLAT_STR_305 STRINGIFY(BTN_GEAR_DOWN) [BTN_GEAR_UP] = XLAT(BTN_GEAR_UP), + #define XLAT_VAL_306 ((unsigned) (BTN_GEAR_UP)) + #define XLAT_STR_306 STRINGIFY(BTN_GEAR_UP) [KEY_OK] = XLAT(KEY_OK), + #define XLAT_VAL_307 ((unsigned) (KEY_OK)) + #define XLAT_STR_307 STRINGIFY(KEY_OK) [KEY_SELECT] = XLAT(KEY_SELECT), + #define XLAT_VAL_308 ((unsigned) (KEY_SELECT)) + #define XLAT_STR_308 STRINGIFY(KEY_SELECT) [KEY_GOTO] = XLAT(KEY_GOTO), + #define XLAT_VAL_309 ((unsigned) (KEY_GOTO)) + #define XLAT_STR_309 STRINGIFY(KEY_GOTO) [KEY_CLEAR] = XLAT(KEY_CLEAR), + #define XLAT_VAL_310 ((unsigned) (KEY_CLEAR)) + #define XLAT_STR_310 STRINGIFY(KEY_CLEAR) [KEY_POWER2] = XLAT(KEY_POWER2), + #define XLAT_VAL_311 ((unsigned) (KEY_POWER2)) + #define XLAT_STR_311 STRINGIFY(KEY_POWER2) [KEY_OPTION] = XLAT(KEY_OPTION), + #define XLAT_VAL_312 ((unsigned) (KEY_OPTION)) + #define XLAT_STR_312 STRINGIFY(KEY_OPTION) [KEY_INFO] = XLAT(KEY_INFO), + #define XLAT_VAL_313 ((unsigned) (KEY_INFO)) + #define XLAT_STR_313 STRINGIFY(KEY_INFO) [KEY_TIME] = XLAT(KEY_TIME), + #define XLAT_VAL_314 ((unsigned) (KEY_TIME)) + #define XLAT_STR_314 STRINGIFY(KEY_TIME) [KEY_VENDOR] = XLAT(KEY_VENDOR), + #define XLAT_VAL_315 ((unsigned) (KEY_VENDOR)) + #define XLAT_STR_315 STRINGIFY(KEY_VENDOR) [KEY_ARCHIVE] = XLAT(KEY_ARCHIVE), + #define XLAT_VAL_316 ((unsigned) (KEY_ARCHIVE)) + #define XLAT_STR_316 STRINGIFY(KEY_ARCHIVE) [KEY_PROGRAM] = XLAT(KEY_PROGRAM), + #define XLAT_VAL_317 ((unsigned) (KEY_PROGRAM)) + #define XLAT_STR_317 STRINGIFY(KEY_PROGRAM) [KEY_CHANNEL] = XLAT(KEY_CHANNEL), + #define XLAT_VAL_318 ((unsigned) (KEY_CHANNEL)) + #define XLAT_STR_318 STRINGIFY(KEY_CHANNEL) [KEY_FAVORITES] = XLAT(KEY_FAVORITES), + #define XLAT_VAL_319 ((unsigned) (KEY_FAVORITES)) + #define XLAT_STR_319 STRINGIFY(KEY_FAVORITES) [KEY_EPG] = XLAT(KEY_EPG), + #define XLAT_VAL_320 ((unsigned) (KEY_EPG)) + #define XLAT_STR_320 STRINGIFY(KEY_EPG) [KEY_PVR] = XLAT(KEY_PVR), + #define XLAT_VAL_321 ((unsigned) (KEY_PVR)) + #define XLAT_STR_321 STRINGIFY(KEY_PVR) [KEY_MHP] = XLAT(KEY_MHP), + #define XLAT_VAL_322 ((unsigned) (KEY_MHP)) + #define XLAT_STR_322 STRINGIFY(KEY_MHP) [KEY_LANGUAGE] = XLAT(KEY_LANGUAGE), + #define XLAT_VAL_323 ((unsigned) (KEY_LANGUAGE)) + #define XLAT_STR_323 STRINGIFY(KEY_LANGUAGE) [KEY_TITLE] = XLAT(KEY_TITLE), + #define XLAT_VAL_324 ((unsigned) (KEY_TITLE)) + #define XLAT_STR_324 STRINGIFY(KEY_TITLE) [KEY_SUBTITLE] = XLAT(KEY_SUBTITLE), + #define XLAT_VAL_325 ((unsigned) (KEY_SUBTITLE)) + #define XLAT_STR_325 STRINGIFY(KEY_SUBTITLE) [KEY_ANGLE] = XLAT(KEY_ANGLE), + #define XLAT_VAL_326 ((unsigned) (KEY_ANGLE)) + #define XLAT_STR_326 STRINGIFY(KEY_ANGLE) [KEY_ZOOM] = XLAT(KEY_ZOOM), + #define XLAT_VAL_327 ((unsigned) (KEY_ZOOM)) + #define XLAT_STR_327 STRINGIFY(KEY_ZOOM) [KEY_MODE] = XLAT(KEY_MODE), + #define XLAT_VAL_328 ((unsigned) (KEY_MODE)) + #define XLAT_STR_328 STRINGIFY(KEY_MODE) [KEY_KEYBOARD] = XLAT(KEY_KEYBOARD), + #define XLAT_VAL_329 ((unsigned) (KEY_KEYBOARD)) + #define XLAT_STR_329 STRINGIFY(KEY_KEYBOARD) [KEY_SCREEN] = XLAT(KEY_SCREEN), + #define XLAT_VAL_330 ((unsigned) (KEY_SCREEN)) + #define XLAT_STR_330 STRINGIFY(KEY_SCREEN) [KEY_PC] = XLAT(KEY_PC), + #define XLAT_VAL_331 ((unsigned) (KEY_PC)) + #define XLAT_STR_331 STRINGIFY(KEY_PC) [KEY_TV] = XLAT(KEY_TV), + #define XLAT_VAL_332 ((unsigned) (KEY_TV)) + #define XLAT_STR_332 STRINGIFY(KEY_TV) [KEY_TV2] = XLAT(KEY_TV2), + #define XLAT_VAL_333 ((unsigned) (KEY_TV2)) + #define XLAT_STR_333 STRINGIFY(KEY_TV2) [KEY_VCR] = XLAT(KEY_VCR), + #define XLAT_VAL_334 ((unsigned) (KEY_VCR)) + #define XLAT_STR_334 STRINGIFY(KEY_VCR) [KEY_VCR2] = XLAT(KEY_VCR2), + #define XLAT_VAL_335 ((unsigned) (KEY_VCR2)) + #define XLAT_STR_335 STRINGIFY(KEY_VCR2) [KEY_SAT] = XLAT(KEY_SAT), + #define XLAT_VAL_336 ((unsigned) (KEY_SAT)) + #define XLAT_STR_336 STRINGIFY(KEY_SAT) [KEY_SAT2] = XLAT(KEY_SAT2), + #define XLAT_VAL_337 ((unsigned) (KEY_SAT2)) + #define XLAT_STR_337 STRINGIFY(KEY_SAT2) [KEY_CD] = XLAT(KEY_CD), + #define XLAT_VAL_338 ((unsigned) (KEY_CD)) + #define XLAT_STR_338 STRINGIFY(KEY_CD) [KEY_TAPE] = XLAT(KEY_TAPE), + #define XLAT_VAL_339 ((unsigned) (KEY_TAPE)) + #define XLAT_STR_339 STRINGIFY(KEY_TAPE) [KEY_RADIO] = XLAT(KEY_RADIO), + #define XLAT_VAL_340 ((unsigned) (KEY_RADIO)) + #define XLAT_STR_340 STRINGIFY(KEY_RADIO) [KEY_TUNER] = XLAT(KEY_TUNER), + #define XLAT_VAL_341 ((unsigned) (KEY_TUNER)) + #define XLAT_STR_341 STRINGIFY(KEY_TUNER) [KEY_PLAYER] = XLAT(KEY_PLAYER), + #define XLAT_VAL_342 ((unsigned) (KEY_PLAYER)) + #define XLAT_STR_342 STRINGIFY(KEY_PLAYER) [KEY_TEXT] = XLAT(KEY_TEXT), + #define XLAT_VAL_343 ((unsigned) (KEY_TEXT)) + #define XLAT_STR_343 STRINGIFY(KEY_TEXT) [KEY_DVD] = XLAT(KEY_DVD), + #define XLAT_VAL_344 ((unsigned) (KEY_DVD)) + #define XLAT_STR_344 STRINGIFY(KEY_DVD) [KEY_AUX] = XLAT(KEY_AUX), + #define XLAT_VAL_345 ((unsigned) (KEY_AUX)) + #define XLAT_STR_345 STRINGIFY(KEY_AUX) [KEY_MP3] = XLAT(KEY_MP3), + #define XLAT_VAL_346 ((unsigned) (KEY_MP3)) + #define XLAT_STR_346 STRINGIFY(KEY_MP3) [KEY_AUDIO] = XLAT(KEY_AUDIO), + #define XLAT_VAL_347 ((unsigned) (KEY_AUDIO)) + #define XLAT_STR_347 STRINGIFY(KEY_AUDIO) [KEY_VIDEO] = XLAT(KEY_VIDEO), + #define XLAT_VAL_348 ((unsigned) (KEY_VIDEO)) + #define XLAT_STR_348 STRINGIFY(KEY_VIDEO) [KEY_DIRECTORY] = XLAT(KEY_DIRECTORY), + #define XLAT_VAL_349 ((unsigned) (KEY_DIRECTORY)) + #define XLAT_STR_349 STRINGIFY(KEY_DIRECTORY) [KEY_LIST] = XLAT(KEY_LIST), + #define XLAT_VAL_350 ((unsigned) (KEY_LIST)) + #define XLAT_STR_350 STRINGIFY(KEY_LIST) [KEY_MEMO] = XLAT(KEY_MEMO), + #define XLAT_VAL_351 ((unsigned) (KEY_MEMO)) + #define XLAT_STR_351 STRINGIFY(KEY_MEMO) [KEY_CALENDAR] = XLAT(KEY_CALENDAR), + #define XLAT_VAL_352 ((unsigned) (KEY_CALENDAR)) + #define XLAT_STR_352 STRINGIFY(KEY_CALENDAR) [KEY_RED] = XLAT(KEY_RED), + #define XLAT_VAL_353 ((unsigned) (KEY_RED)) + #define XLAT_STR_353 STRINGIFY(KEY_RED) [KEY_GREEN] = XLAT(KEY_GREEN), + #define XLAT_VAL_354 ((unsigned) (KEY_GREEN)) + #define XLAT_STR_354 STRINGIFY(KEY_GREEN) [KEY_YELLOW] = XLAT(KEY_YELLOW), + #define XLAT_VAL_355 ((unsigned) (KEY_YELLOW)) + #define XLAT_STR_355 STRINGIFY(KEY_YELLOW) [KEY_BLUE] = XLAT(KEY_BLUE), + #define XLAT_VAL_356 ((unsigned) (KEY_BLUE)) + #define XLAT_STR_356 STRINGIFY(KEY_BLUE) [KEY_CHANNELUP] = XLAT(KEY_CHANNELUP), + #define XLAT_VAL_357 ((unsigned) (KEY_CHANNELUP)) + #define XLAT_STR_357 STRINGIFY(KEY_CHANNELUP) [KEY_CHANNELDOWN] = XLAT(KEY_CHANNELDOWN), + #define XLAT_VAL_358 ((unsigned) (KEY_CHANNELDOWN)) + #define XLAT_STR_358 STRINGIFY(KEY_CHANNELDOWN) [KEY_FIRST] = XLAT(KEY_FIRST), + #define XLAT_VAL_359 ((unsigned) (KEY_FIRST)) + #define XLAT_STR_359 STRINGIFY(KEY_FIRST) [KEY_LAST] = XLAT(KEY_LAST), + #define XLAT_VAL_360 ((unsigned) (KEY_LAST)) + #define XLAT_STR_360 STRINGIFY(KEY_LAST) [KEY_AB] = XLAT(KEY_AB), + #define XLAT_VAL_361 ((unsigned) (KEY_AB)) + #define XLAT_STR_361 STRINGIFY(KEY_AB) [KEY_NEXT] = XLAT(KEY_NEXT), + #define XLAT_VAL_362 ((unsigned) (KEY_NEXT)) + #define XLAT_STR_362 STRINGIFY(KEY_NEXT) [KEY_RESTART] = XLAT(KEY_RESTART), + #define XLAT_VAL_363 ((unsigned) (KEY_RESTART)) + #define XLAT_STR_363 STRINGIFY(KEY_RESTART) [KEY_SLOW] = XLAT(KEY_SLOW), + #define XLAT_VAL_364 ((unsigned) (KEY_SLOW)) + #define XLAT_STR_364 STRINGIFY(KEY_SLOW) [KEY_SHUFFLE] = XLAT(KEY_SHUFFLE), + #define XLAT_VAL_365 ((unsigned) (KEY_SHUFFLE)) + #define XLAT_STR_365 STRINGIFY(KEY_SHUFFLE) [KEY_BREAK] = XLAT(KEY_BREAK), + #define XLAT_VAL_366 ((unsigned) (KEY_BREAK)) + #define XLAT_STR_366 STRINGIFY(KEY_BREAK) [KEY_PREVIOUS] = XLAT(KEY_PREVIOUS), + #define XLAT_VAL_367 ((unsigned) (KEY_PREVIOUS)) + #define XLAT_STR_367 STRINGIFY(KEY_PREVIOUS) [KEY_DIGITS] = XLAT(KEY_DIGITS), + #define XLAT_VAL_368 ((unsigned) (KEY_DIGITS)) + #define XLAT_STR_368 STRINGIFY(KEY_DIGITS) [KEY_TEEN] = XLAT(KEY_TEEN), + #define XLAT_VAL_369 ((unsigned) (KEY_TEEN)) + #define XLAT_STR_369 STRINGIFY(KEY_TEEN) [KEY_TWEN] = XLAT(KEY_TWEN), + #define XLAT_VAL_370 ((unsigned) (KEY_TWEN)) + #define XLAT_STR_370 STRINGIFY(KEY_TWEN) [KEY_VIDEOPHONE] = XLAT(KEY_VIDEOPHONE), + #define XLAT_VAL_371 ((unsigned) (KEY_VIDEOPHONE)) + #define XLAT_STR_371 STRINGIFY(KEY_VIDEOPHONE) [KEY_GAMES] = XLAT(KEY_GAMES), + #define XLAT_VAL_372 ((unsigned) (KEY_GAMES)) + #define XLAT_STR_372 STRINGIFY(KEY_GAMES) [KEY_ZOOMIN] = XLAT(KEY_ZOOMIN), + #define XLAT_VAL_373 ((unsigned) (KEY_ZOOMIN)) + #define XLAT_STR_373 STRINGIFY(KEY_ZOOMIN) [KEY_ZOOMOUT] = XLAT(KEY_ZOOMOUT), + #define XLAT_VAL_374 ((unsigned) (KEY_ZOOMOUT)) + #define XLAT_STR_374 STRINGIFY(KEY_ZOOMOUT) [KEY_ZOOMRESET] = XLAT(KEY_ZOOMRESET), + #define XLAT_VAL_375 ((unsigned) (KEY_ZOOMRESET)) + #define XLAT_STR_375 STRINGIFY(KEY_ZOOMRESET) [KEY_WORDPROCESSOR] = XLAT(KEY_WORDPROCESSOR), + #define XLAT_VAL_376 ((unsigned) (KEY_WORDPROCESSOR)) + #define XLAT_STR_376 STRINGIFY(KEY_WORDPROCESSOR) [KEY_EDITOR] = XLAT(KEY_EDITOR), + #define XLAT_VAL_377 ((unsigned) (KEY_EDITOR)) + #define XLAT_STR_377 STRINGIFY(KEY_EDITOR) [KEY_SPREADSHEET] = XLAT(KEY_SPREADSHEET), + #define XLAT_VAL_378 ((unsigned) (KEY_SPREADSHEET)) + #define XLAT_STR_378 STRINGIFY(KEY_SPREADSHEET) [KEY_GRAPHICSEDITOR] = XLAT(KEY_GRAPHICSEDITOR), + #define XLAT_VAL_379 ((unsigned) (KEY_GRAPHICSEDITOR)) + #define XLAT_STR_379 STRINGIFY(KEY_GRAPHICSEDITOR) [KEY_PRESENTATION] = XLAT(KEY_PRESENTATION), + #define XLAT_VAL_380 ((unsigned) (KEY_PRESENTATION)) + #define XLAT_STR_380 STRINGIFY(KEY_PRESENTATION) [KEY_DATABASE] = XLAT(KEY_DATABASE), + #define XLAT_VAL_381 ((unsigned) (KEY_DATABASE)) + #define XLAT_STR_381 STRINGIFY(KEY_DATABASE) [KEY_NEWS] = XLAT(KEY_NEWS), + #define XLAT_VAL_382 ((unsigned) (KEY_NEWS)) + #define XLAT_STR_382 STRINGIFY(KEY_NEWS) [KEY_VOICEMAIL] = XLAT(KEY_VOICEMAIL), + #define XLAT_VAL_383 ((unsigned) (KEY_VOICEMAIL)) + #define XLAT_STR_383 STRINGIFY(KEY_VOICEMAIL) [KEY_ADDRESSBOOK] = XLAT(KEY_ADDRESSBOOK), + #define XLAT_VAL_384 ((unsigned) (KEY_ADDRESSBOOK)) + #define XLAT_STR_384 STRINGIFY(KEY_ADDRESSBOOK) [KEY_MESSENGER] = XLAT(KEY_MESSENGER), + #define XLAT_VAL_385 ((unsigned) (KEY_MESSENGER)) + #define XLAT_STR_385 STRINGIFY(KEY_MESSENGER) [KEY_DISPLAYTOGGLE] = XLAT(KEY_DISPLAYTOGGLE), + #define XLAT_VAL_386 ((unsigned) (KEY_DISPLAYTOGGLE)) + #define XLAT_STR_386 STRINGIFY(KEY_DISPLAYTOGGLE) [KEY_SPELLCHECK] = XLAT(KEY_SPELLCHECK), + #define XLAT_VAL_387 ((unsigned) (KEY_SPELLCHECK)) + #define XLAT_STR_387 STRINGIFY(KEY_SPELLCHECK) [KEY_LOGOFF] = XLAT(KEY_LOGOFF), + #define XLAT_VAL_388 ((unsigned) (KEY_LOGOFF)) + #define XLAT_STR_388 STRINGIFY(KEY_LOGOFF) [KEY_DOLLAR] = XLAT(KEY_DOLLAR), + #define XLAT_VAL_389 ((unsigned) (KEY_DOLLAR)) + #define XLAT_STR_389 STRINGIFY(KEY_DOLLAR) [KEY_EURO] = XLAT(KEY_EURO), + #define XLAT_VAL_390 ((unsigned) (KEY_EURO)) + #define XLAT_STR_390 STRINGIFY(KEY_EURO) [KEY_FRAMEBACK] = XLAT(KEY_FRAMEBACK), + #define XLAT_VAL_391 ((unsigned) (KEY_FRAMEBACK)) + #define XLAT_STR_391 STRINGIFY(KEY_FRAMEBACK) [KEY_FRAMEFORWARD] = XLAT(KEY_FRAMEFORWARD), + #define XLAT_VAL_392 ((unsigned) (KEY_FRAMEFORWARD)) + #define XLAT_STR_392 STRINGIFY(KEY_FRAMEFORWARD) [KEY_CONTEXT_MENU] = XLAT(KEY_CONTEXT_MENU), + #define XLAT_VAL_393 ((unsigned) (KEY_CONTEXT_MENU)) + #define XLAT_STR_393 STRINGIFY(KEY_CONTEXT_MENU) [KEY_MEDIA_REPEAT] = XLAT(KEY_MEDIA_REPEAT), + #define XLAT_VAL_394 ((unsigned) (KEY_MEDIA_REPEAT)) + #define XLAT_STR_394 STRINGIFY(KEY_MEDIA_REPEAT) [KEY_10CHANNELSUP] = XLAT(KEY_10CHANNELSUP), + #define XLAT_VAL_395 ((unsigned) (KEY_10CHANNELSUP)) + #define XLAT_STR_395 STRINGIFY(KEY_10CHANNELSUP) [KEY_10CHANNELSDOWN] = XLAT(KEY_10CHANNELSDOWN), + #define XLAT_VAL_396 ((unsigned) (KEY_10CHANNELSDOWN)) + #define XLAT_STR_396 STRINGIFY(KEY_10CHANNELSDOWN) [KEY_IMAGES] = XLAT(KEY_IMAGES), + #define XLAT_VAL_397 ((unsigned) (KEY_IMAGES)) + #define XLAT_STR_397 STRINGIFY(KEY_IMAGES) [KEY_DEL_EOL] = XLAT(KEY_DEL_EOL), + #define XLAT_VAL_398 ((unsigned) (KEY_DEL_EOL)) + #define XLAT_STR_398 STRINGIFY(KEY_DEL_EOL) [KEY_DEL_EOS] = XLAT(KEY_DEL_EOS), + #define XLAT_VAL_399 ((unsigned) (KEY_DEL_EOS)) + #define XLAT_STR_399 STRINGIFY(KEY_DEL_EOS) [KEY_INS_LINE] = XLAT(KEY_INS_LINE), + #define XLAT_VAL_400 ((unsigned) (KEY_INS_LINE)) + #define XLAT_STR_400 STRINGIFY(KEY_INS_LINE) [KEY_DEL_LINE] = XLAT(KEY_DEL_LINE), + #define XLAT_VAL_401 ((unsigned) (KEY_DEL_LINE)) + #define XLAT_STR_401 STRINGIFY(KEY_DEL_LINE) [KEY_FN] = XLAT(KEY_FN), + #define XLAT_VAL_402 ((unsigned) (KEY_FN)) + #define XLAT_STR_402 STRINGIFY(KEY_FN) [KEY_FN_ESC] = XLAT(KEY_FN_ESC), + #define XLAT_VAL_403 ((unsigned) (KEY_FN_ESC)) + #define XLAT_STR_403 STRINGIFY(KEY_FN_ESC) [KEY_FN_F1] = XLAT(KEY_FN_F1), + #define XLAT_VAL_404 ((unsigned) (KEY_FN_F1)) + #define XLAT_STR_404 STRINGIFY(KEY_FN_F1) [KEY_FN_F2] = XLAT(KEY_FN_F2), + #define XLAT_VAL_405 ((unsigned) (KEY_FN_F2)) + #define XLAT_STR_405 STRINGIFY(KEY_FN_F2) [KEY_FN_F3] = XLAT(KEY_FN_F3), + #define XLAT_VAL_406 ((unsigned) (KEY_FN_F3)) + #define XLAT_STR_406 STRINGIFY(KEY_FN_F3) [KEY_FN_F4] = XLAT(KEY_FN_F4), + #define XLAT_VAL_407 ((unsigned) (KEY_FN_F4)) + #define XLAT_STR_407 STRINGIFY(KEY_FN_F4) [KEY_FN_F5] = XLAT(KEY_FN_F5), + #define XLAT_VAL_408 ((unsigned) (KEY_FN_F5)) + #define XLAT_STR_408 STRINGIFY(KEY_FN_F5) [KEY_FN_F6] = XLAT(KEY_FN_F6), + #define XLAT_VAL_409 ((unsigned) (KEY_FN_F6)) + #define XLAT_STR_409 STRINGIFY(KEY_FN_F6) [KEY_FN_F7] = XLAT(KEY_FN_F7), + #define XLAT_VAL_410 ((unsigned) (KEY_FN_F7)) + #define XLAT_STR_410 STRINGIFY(KEY_FN_F7) [KEY_FN_F8] = XLAT(KEY_FN_F8), + #define XLAT_VAL_411 ((unsigned) (KEY_FN_F8)) + #define XLAT_STR_411 STRINGIFY(KEY_FN_F8) [KEY_FN_F9] = XLAT(KEY_FN_F9), + #define XLAT_VAL_412 ((unsigned) (KEY_FN_F9)) + #define XLAT_STR_412 STRINGIFY(KEY_FN_F9) [KEY_FN_F10] = XLAT(KEY_FN_F10), + #define XLAT_VAL_413 ((unsigned) (KEY_FN_F10)) + #define XLAT_STR_413 STRINGIFY(KEY_FN_F10) [KEY_FN_F11] = XLAT(KEY_FN_F11), + #define XLAT_VAL_414 ((unsigned) (KEY_FN_F11)) + #define XLAT_STR_414 STRINGIFY(KEY_FN_F11) [KEY_FN_F12] = XLAT(KEY_FN_F12), + #define XLAT_VAL_415 ((unsigned) (KEY_FN_F12)) + #define XLAT_STR_415 STRINGIFY(KEY_FN_F12) [KEY_FN_1] = XLAT(KEY_FN_1), + #define XLAT_VAL_416 ((unsigned) (KEY_FN_1)) + #define XLAT_STR_416 STRINGIFY(KEY_FN_1) [KEY_FN_2] = XLAT(KEY_FN_2), + #define XLAT_VAL_417 ((unsigned) (KEY_FN_2)) + #define XLAT_STR_417 STRINGIFY(KEY_FN_2) [KEY_FN_D] = XLAT(KEY_FN_D), + #define XLAT_VAL_418 ((unsigned) (KEY_FN_D)) + #define XLAT_STR_418 STRINGIFY(KEY_FN_D) [KEY_FN_E] = XLAT(KEY_FN_E), + #define XLAT_VAL_419 ((unsigned) (KEY_FN_E)) + #define XLAT_STR_419 STRINGIFY(KEY_FN_E) [KEY_FN_F] = XLAT(KEY_FN_F), + #define XLAT_VAL_420 ((unsigned) (KEY_FN_F)) + #define XLAT_STR_420 STRINGIFY(KEY_FN_F) [KEY_FN_S] = XLAT(KEY_FN_S), + #define XLAT_VAL_421 ((unsigned) (KEY_FN_S)) + #define XLAT_STR_421 STRINGIFY(KEY_FN_S) [KEY_FN_B] = XLAT(KEY_FN_B), + #define XLAT_VAL_422 ((unsigned) (KEY_FN_B)) + #define XLAT_STR_422 STRINGIFY(KEY_FN_B) [KEY_BRL_DOT1] = XLAT(KEY_BRL_DOT1), + #define XLAT_VAL_423 ((unsigned) (KEY_BRL_DOT1)) + #define XLAT_STR_423 STRINGIFY(KEY_BRL_DOT1) [KEY_BRL_DOT2] = XLAT(KEY_BRL_DOT2), + #define XLAT_VAL_424 ((unsigned) (KEY_BRL_DOT2)) + #define XLAT_STR_424 STRINGIFY(KEY_BRL_DOT2) [KEY_BRL_DOT3] = XLAT(KEY_BRL_DOT3), + #define XLAT_VAL_425 ((unsigned) (KEY_BRL_DOT3)) + #define XLAT_STR_425 STRINGIFY(KEY_BRL_DOT3) [KEY_BRL_DOT4] = XLAT(KEY_BRL_DOT4), + #define XLAT_VAL_426 ((unsigned) (KEY_BRL_DOT4)) + #define XLAT_STR_426 STRINGIFY(KEY_BRL_DOT4) [KEY_BRL_DOT5] = XLAT(KEY_BRL_DOT5), + #define XLAT_VAL_427 ((unsigned) (KEY_BRL_DOT5)) + #define XLAT_STR_427 STRINGIFY(KEY_BRL_DOT5) [KEY_BRL_DOT6] = XLAT(KEY_BRL_DOT6), + #define XLAT_VAL_428 ((unsigned) (KEY_BRL_DOT6)) + #define XLAT_STR_428 STRINGIFY(KEY_BRL_DOT6) [KEY_BRL_DOT7] = XLAT(KEY_BRL_DOT7), + #define XLAT_VAL_429 ((unsigned) (KEY_BRL_DOT7)) + #define XLAT_STR_429 STRINGIFY(KEY_BRL_DOT7) [KEY_BRL_DOT8] = XLAT(KEY_BRL_DOT8), + #define XLAT_VAL_430 ((unsigned) (KEY_BRL_DOT8)) + #define XLAT_STR_430 STRINGIFY(KEY_BRL_DOT8) [KEY_BRL_DOT9] = XLAT(KEY_BRL_DOT9), + #define XLAT_VAL_431 ((unsigned) (KEY_BRL_DOT9)) + #define XLAT_STR_431 STRINGIFY(KEY_BRL_DOT9) [KEY_BRL_DOT10] = XLAT(KEY_BRL_DOT10), + #define XLAT_VAL_432 ((unsigned) (KEY_BRL_DOT10)) + #define XLAT_STR_432 STRINGIFY(KEY_BRL_DOT10) [KEY_NUMERIC_0] = XLAT(KEY_NUMERIC_0), + #define XLAT_VAL_433 ((unsigned) (KEY_NUMERIC_0)) + #define XLAT_STR_433 STRINGIFY(KEY_NUMERIC_0) [KEY_NUMERIC_1] = XLAT(KEY_NUMERIC_1), + #define XLAT_VAL_434 ((unsigned) (KEY_NUMERIC_1)) + #define XLAT_STR_434 STRINGIFY(KEY_NUMERIC_1) [KEY_NUMERIC_2] = XLAT(KEY_NUMERIC_2), + #define XLAT_VAL_435 ((unsigned) (KEY_NUMERIC_2)) + #define XLAT_STR_435 STRINGIFY(KEY_NUMERIC_2) [KEY_NUMERIC_3] = XLAT(KEY_NUMERIC_3), + #define XLAT_VAL_436 ((unsigned) (KEY_NUMERIC_3)) + #define XLAT_STR_436 STRINGIFY(KEY_NUMERIC_3) [KEY_NUMERIC_4] = XLAT(KEY_NUMERIC_4), + #define XLAT_VAL_437 ((unsigned) (KEY_NUMERIC_4)) + #define XLAT_STR_437 STRINGIFY(KEY_NUMERIC_4) [KEY_NUMERIC_5] = XLAT(KEY_NUMERIC_5), + #define XLAT_VAL_438 ((unsigned) (KEY_NUMERIC_5)) + #define XLAT_STR_438 STRINGIFY(KEY_NUMERIC_5) [KEY_NUMERIC_6] = XLAT(KEY_NUMERIC_6), + #define XLAT_VAL_439 ((unsigned) (KEY_NUMERIC_6)) + #define XLAT_STR_439 STRINGIFY(KEY_NUMERIC_6) [KEY_NUMERIC_7] = XLAT(KEY_NUMERIC_7), + #define XLAT_VAL_440 ((unsigned) (KEY_NUMERIC_7)) + #define XLAT_STR_440 STRINGIFY(KEY_NUMERIC_7) [KEY_NUMERIC_8] = XLAT(KEY_NUMERIC_8), + #define XLAT_VAL_441 ((unsigned) (KEY_NUMERIC_8)) + #define XLAT_STR_441 STRINGIFY(KEY_NUMERIC_8) [KEY_NUMERIC_9] = XLAT(KEY_NUMERIC_9), + #define XLAT_VAL_442 ((unsigned) (KEY_NUMERIC_9)) + #define XLAT_STR_442 STRINGIFY(KEY_NUMERIC_9) [KEY_NUMERIC_STAR] = XLAT(KEY_NUMERIC_STAR), + #define XLAT_VAL_443 ((unsigned) (KEY_NUMERIC_STAR)) + #define XLAT_STR_443 STRINGIFY(KEY_NUMERIC_STAR) [KEY_NUMERIC_POUND] = XLAT(KEY_NUMERIC_POUND), + #define XLAT_VAL_444 ((unsigned) (KEY_NUMERIC_POUND)) + #define XLAT_STR_444 STRINGIFY(KEY_NUMERIC_POUND) [KEY_NUMERIC_A] = XLAT(KEY_NUMERIC_A), + #define XLAT_VAL_445 ((unsigned) (KEY_NUMERIC_A)) + #define XLAT_STR_445 STRINGIFY(KEY_NUMERIC_A) [KEY_NUMERIC_B] = XLAT(KEY_NUMERIC_B), + #define XLAT_VAL_446 ((unsigned) (KEY_NUMERIC_B)) + #define XLAT_STR_446 STRINGIFY(KEY_NUMERIC_B) [KEY_NUMERIC_C] = XLAT(KEY_NUMERIC_C), + #define XLAT_VAL_447 ((unsigned) (KEY_NUMERIC_C)) + #define XLAT_STR_447 STRINGIFY(KEY_NUMERIC_C) [KEY_NUMERIC_D] = XLAT(KEY_NUMERIC_D), + #define XLAT_VAL_448 ((unsigned) (KEY_NUMERIC_D)) + #define XLAT_STR_448 STRINGIFY(KEY_NUMERIC_D) [KEY_CAMERA_FOCUS] = XLAT(KEY_CAMERA_FOCUS), + #define XLAT_VAL_449 ((unsigned) (KEY_CAMERA_FOCUS)) + #define XLAT_STR_449 STRINGIFY(KEY_CAMERA_FOCUS) [KEY_WPS_BUTTON] = XLAT(KEY_WPS_BUTTON), + #define XLAT_VAL_450 ((unsigned) (KEY_WPS_BUTTON)) + #define XLAT_STR_450 STRINGIFY(KEY_WPS_BUTTON) [KEY_TOUCHPAD_TOGGLE] = XLAT(KEY_TOUCHPAD_TOGGLE), + #define XLAT_VAL_451 ((unsigned) (KEY_TOUCHPAD_TOGGLE)) + #define XLAT_STR_451 STRINGIFY(KEY_TOUCHPAD_TOGGLE) [KEY_TOUCHPAD_ON] = XLAT(KEY_TOUCHPAD_ON), + #define XLAT_VAL_452 ((unsigned) (KEY_TOUCHPAD_ON)) + #define XLAT_STR_452 STRINGIFY(KEY_TOUCHPAD_ON) [KEY_TOUCHPAD_OFF] = XLAT(KEY_TOUCHPAD_OFF), + #define XLAT_VAL_453 ((unsigned) (KEY_TOUCHPAD_OFF)) + #define XLAT_STR_453 STRINGIFY(KEY_TOUCHPAD_OFF) [KEY_CAMERA_ZOOMIN] = XLAT(KEY_CAMERA_ZOOMIN), + #define XLAT_VAL_454 ((unsigned) (KEY_CAMERA_ZOOMIN)) + #define XLAT_STR_454 STRINGIFY(KEY_CAMERA_ZOOMIN) [KEY_CAMERA_ZOOMOUT] = XLAT(KEY_CAMERA_ZOOMOUT), + #define XLAT_VAL_455 ((unsigned) (KEY_CAMERA_ZOOMOUT)) + #define XLAT_STR_455 STRINGIFY(KEY_CAMERA_ZOOMOUT) [KEY_CAMERA_UP] = XLAT(KEY_CAMERA_UP), + #define XLAT_VAL_456 ((unsigned) (KEY_CAMERA_UP)) + #define XLAT_STR_456 STRINGIFY(KEY_CAMERA_UP) [KEY_CAMERA_DOWN] = XLAT(KEY_CAMERA_DOWN), + #define XLAT_VAL_457 ((unsigned) (KEY_CAMERA_DOWN)) + #define XLAT_STR_457 STRINGIFY(KEY_CAMERA_DOWN) [KEY_CAMERA_LEFT] = XLAT(KEY_CAMERA_LEFT), + #define XLAT_VAL_458 ((unsigned) (KEY_CAMERA_LEFT)) + #define XLAT_STR_458 STRINGIFY(KEY_CAMERA_LEFT) [KEY_CAMERA_RIGHT] = XLAT(KEY_CAMERA_RIGHT), + #define XLAT_VAL_459 ((unsigned) (KEY_CAMERA_RIGHT)) + #define XLAT_STR_459 STRINGIFY(KEY_CAMERA_RIGHT) [KEY_ATTENDANT_ON] = XLAT(KEY_ATTENDANT_ON), + #define XLAT_VAL_460 ((unsigned) (KEY_ATTENDANT_ON)) + #define XLAT_STR_460 STRINGIFY(KEY_ATTENDANT_ON) [KEY_ATTENDANT_OFF] = XLAT(KEY_ATTENDANT_OFF), + #define XLAT_VAL_461 ((unsigned) (KEY_ATTENDANT_OFF)) + #define XLAT_STR_461 STRINGIFY(KEY_ATTENDANT_OFF) [KEY_ATTENDANT_TOGGLE] = XLAT(KEY_ATTENDANT_TOGGLE), + #define XLAT_VAL_462 ((unsigned) (KEY_ATTENDANT_TOGGLE)) + #define XLAT_STR_462 STRINGIFY(KEY_ATTENDANT_TOGGLE) [KEY_LIGHTS_TOGGLE] = XLAT(KEY_LIGHTS_TOGGLE), + #define XLAT_VAL_463 ((unsigned) (KEY_LIGHTS_TOGGLE)) + #define XLAT_STR_463 STRINGIFY(KEY_LIGHTS_TOGGLE) [BTN_DPAD_UP] = XLAT(BTN_DPAD_UP), + #define XLAT_VAL_464 ((unsigned) (BTN_DPAD_UP)) + #define XLAT_STR_464 STRINGIFY(BTN_DPAD_UP) [BTN_DPAD_DOWN] = XLAT(BTN_DPAD_DOWN), + #define XLAT_VAL_465 ((unsigned) (BTN_DPAD_DOWN)) + #define XLAT_STR_465 STRINGIFY(BTN_DPAD_DOWN) [BTN_DPAD_LEFT] = XLAT(BTN_DPAD_LEFT), + #define XLAT_VAL_466 ((unsigned) (BTN_DPAD_LEFT)) + #define XLAT_STR_466 STRINGIFY(BTN_DPAD_LEFT) [BTN_DPAD_RIGHT] = XLAT(BTN_DPAD_RIGHT), + #define XLAT_VAL_467 ((unsigned) (BTN_DPAD_RIGHT)) + #define XLAT_STR_467 STRINGIFY(BTN_DPAD_RIGHT) [KEY_ALS_TOGGLE] = XLAT(KEY_ALS_TOGGLE), + #define XLAT_VAL_468 ((unsigned) (KEY_ALS_TOGGLE)) + #define XLAT_STR_468 STRINGIFY(KEY_ALS_TOGGLE) [KEY_ROTATE_LOCK_TOGGLE] = XLAT(KEY_ROTATE_LOCK_TOGGLE), + #define XLAT_VAL_469 ((unsigned) (KEY_ROTATE_LOCK_TOGGLE)) + #define XLAT_STR_469 STRINGIFY(KEY_ROTATE_LOCK_TOGGLE) [KEY_BUTTONCONFIG] = XLAT(KEY_BUTTONCONFIG), + #define XLAT_VAL_470 ((unsigned) (KEY_BUTTONCONFIG)) + #define XLAT_STR_470 STRINGIFY(KEY_BUTTONCONFIG) [KEY_TASKMANAGER] = XLAT(KEY_TASKMANAGER), + #define XLAT_VAL_471 ((unsigned) (KEY_TASKMANAGER)) + #define XLAT_STR_471 STRINGIFY(KEY_TASKMANAGER) [KEY_JOURNAL] = XLAT(KEY_JOURNAL), + #define XLAT_VAL_472 ((unsigned) (KEY_JOURNAL)) + #define XLAT_STR_472 STRINGIFY(KEY_JOURNAL) [KEY_CONTROLPANEL] = XLAT(KEY_CONTROLPANEL), + #define XLAT_VAL_473 ((unsigned) (KEY_CONTROLPANEL)) + #define XLAT_STR_473 STRINGIFY(KEY_CONTROLPANEL) [KEY_APPSELECT] = XLAT(KEY_APPSELECT), + #define XLAT_VAL_474 ((unsigned) (KEY_APPSELECT)) + #define XLAT_STR_474 STRINGIFY(KEY_APPSELECT) [KEY_SCREENSAVER] = XLAT(KEY_SCREENSAVER), + #define XLAT_VAL_475 ((unsigned) (KEY_SCREENSAVER)) + #define XLAT_STR_475 STRINGIFY(KEY_SCREENSAVER) [KEY_VOICECOMMAND] = XLAT(KEY_VOICECOMMAND), + #define XLAT_VAL_476 ((unsigned) (KEY_VOICECOMMAND)) + #define XLAT_STR_476 STRINGIFY(KEY_VOICECOMMAND) [KEY_ASSISTANT] = XLAT(KEY_ASSISTANT), + #define XLAT_VAL_477 ((unsigned) (KEY_ASSISTANT)) + #define XLAT_STR_477 STRINGIFY(KEY_ASSISTANT) + [KEY_KBD_LAYOUT_NEXT] = XLAT(KEY_KBD_LAYOUT_NEXT), + #define XLAT_VAL_478 ((unsigned) (KEY_KBD_LAYOUT_NEXT)) + #define XLAT_STR_478 STRINGIFY(KEY_KBD_LAYOUT_NEXT) #ifndef STRACE_WORKAROUND_FOR_KEY_BRIGHTNESS_MIN # define STRACE_WORKAROUND_FOR_KEY_BRIGHTNESS_MIN @@ -4381,35 +5647,85 @@ const struct xlat evdev_keycode[] = { # undef KEY_BRIGHTNESS_MIN #endif [KEY_BRIGHTNESS_MIN] = XLAT(KEY_BRIGHTNESS_MIN), + #define XLAT_VAL_479 ((unsigned) (KEY_BRIGHTNESS_MIN)) + #define XLAT_STR_479 STRINGIFY(KEY_BRIGHTNESS_MIN) [KEY_BRIGHTNESS_MAX] = XLAT(KEY_BRIGHTNESS_MAX), + #define XLAT_VAL_480 ((unsigned) (KEY_BRIGHTNESS_MAX)) + #define XLAT_STR_480 STRINGIFY(KEY_BRIGHTNESS_MAX) [KEY_KBDINPUTASSIST_PREV] = XLAT(KEY_KBDINPUTASSIST_PREV), + #define XLAT_VAL_481 ((unsigned) (KEY_KBDINPUTASSIST_PREV)) + #define XLAT_STR_481 STRINGIFY(KEY_KBDINPUTASSIST_PREV) [KEY_KBDINPUTASSIST_NEXT] = XLAT(KEY_KBDINPUTASSIST_NEXT), + #define XLAT_VAL_482 ((unsigned) (KEY_KBDINPUTASSIST_NEXT)) + #define XLAT_STR_482 STRINGIFY(KEY_KBDINPUTASSIST_NEXT) [KEY_KBDINPUTASSIST_PREVGROUP] = XLAT(KEY_KBDINPUTASSIST_PREVGROUP), + #define XLAT_VAL_483 ((unsigned) (KEY_KBDINPUTASSIST_PREVGROUP)) + #define XLAT_STR_483 STRINGIFY(KEY_KBDINPUTASSIST_PREVGROUP) [KEY_KBDINPUTASSIST_NEXTGROUP] = XLAT(KEY_KBDINPUTASSIST_NEXTGROUP), + #define XLAT_VAL_484 ((unsigned) (KEY_KBDINPUTASSIST_NEXTGROUP)) + #define XLAT_STR_484 STRINGIFY(KEY_KBDINPUTASSIST_NEXTGROUP) [KEY_KBDINPUTASSIST_ACCEPT] = XLAT(KEY_KBDINPUTASSIST_ACCEPT), + #define XLAT_VAL_485 ((unsigned) (KEY_KBDINPUTASSIST_ACCEPT)) + #define XLAT_STR_485 STRINGIFY(KEY_KBDINPUTASSIST_ACCEPT) [KEY_KBDINPUTASSIST_CANCEL] = XLAT(KEY_KBDINPUTASSIST_CANCEL), + #define XLAT_VAL_486 ((unsigned) (KEY_KBDINPUTASSIST_CANCEL)) + #define XLAT_STR_486 STRINGIFY(KEY_KBDINPUTASSIST_CANCEL) [KEY_RIGHT_UP] = XLAT(KEY_RIGHT_UP), + #define XLAT_VAL_487 ((unsigned) (KEY_RIGHT_UP)) + #define XLAT_STR_487 STRINGIFY(KEY_RIGHT_UP) [KEY_RIGHT_DOWN] = XLAT(KEY_RIGHT_DOWN), + #define XLAT_VAL_488 ((unsigned) (KEY_RIGHT_DOWN)) + #define XLAT_STR_488 STRINGIFY(KEY_RIGHT_DOWN) [KEY_LEFT_UP] = XLAT(KEY_LEFT_UP), + #define XLAT_VAL_489 ((unsigned) (KEY_LEFT_UP)) + #define XLAT_STR_489 STRINGIFY(KEY_LEFT_UP) [KEY_LEFT_DOWN] = XLAT(KEY_LEFT_DOWN), + #define XLAT_VAL_490 ((unsigned) (KEY_LEFT_DOWN)) + #define XLAT_STR_490 STRINGIFY(KEY_LEFT_DOWN) [KEY_ROOT_MENU] = XLAT(KEY_ROOT_MENU), + #define XLAT_VAL_491 ((unsigned) (KEY_ROOT_MENU)) + #define XLAT_STR_491 STRINGIFY(KEY_ROOT_MENU) [KEY_MEDIA_TOP_MENU] = XLAT(KEY_MEDIA_TOP_MENU), + #define XLAT_VAL_492 ((unsigned) (KEY_MEDIA_TOP_MENU)) + #define XLAT_STR_492 STRINGIFY(KEY_MEDIA_TOP_MENU) [KEY_NUMERIC_11] = XLAT(KEY_NUMERIC_11), + #define XLAT_VAL_493 ((unsigned) (KEY_NUMERIC_11)) + #define XLAT_STR_493 STRINGIFY(KEY_NUMERIC_11) [KEY_NUMERIC_12] = XLAT(KEY_NUMERIC_12), + #define XLAT_VAL_494 ((unsigned) (KEY_NUMERIC_12)) + #define XLAT_STR_494 STRINGIFY(KEY_NUMERIC_12) [KEY_AUDIO_DESC] = XLAT(KEY_AUDIO_DESC), + #define XLAT_VAL_495 ((unsigned) (KEY_AUDIO_DESC)) + #define XLAT_STR_495 STRINGIFY(KEY_AUDIO_DESC) [KEY_3D_MODE] = XLAT(KEY_3D_MODE), + #define XLAT_VAL_496 ((unsigned) (KEY_3D_MODE)) + #define XLAT_STR_496 STRINGIFY(KEY_3D_MODE) [KEY_NEXT_FAVORITE] = XLAT(KEY_NEXT_FAVORITE), + #define XLAT_VAL_497 ((unsigned) (KEY_NEXT_FAVORITE)) + #define XLAT_STR_497 STRINGIFY(KEY_NEXT_FAVORITE) [KEY_STOP_RECORD] = XLAT(KEY_STOP_RECORD), + #define XLAT_VAL_498 ((unsigned) (KEY_STOP_RECORD)) + #define XLAT_STR_498 STRINGIFY(KEY_STOP_RECORD) [KEY_PAUSE_RECORD] = XLAT(KEY_PAUSE_RECORD), + #define XLAT_VAL_499 ((unsigned) (KEY_PAUSE_RECORD)) + #define XLAT_STR_499 STRINGIFY(KEY_PAUSE_RECORD) [KEY_VOD] = XLAT(KEY_VOD), + #define XLAT_VAL_500 ((unsigned) (KEY_VOD)) + #define XLAT_STR_500 STRINGIFY(KEY_VOD) [KEY_UNMUTE] = XLAT(KEY_UNMUTE), + #define XLAT_VAL_501 ((unsigned) (KEY_UNMUTE)) + #define XLAT_STR_501 STRINGIFY(KEY_UNMUTE) [KEY_FASTREVERSE] = XLAT(KEY_FASTREVERSE), + #define XLAT_VAL_502 ((unsigned) (KEY_FASTREVERSE)) + #define XLAT_STR_502 STRINGIFY(KEY_FASTREVERSE) [KEY_SLOWREVERSE] = XLAT(KEY_SLOWREVERSE), + #define XLAT_VAL_503 ((unsigned) (KEY_SLOWREVERSE)) + #define XLAT_STR_503 STRINGIFY(KEY_SLOWREVERSE) #ifndef STRACE_WORKAROUND_FOR_KEY_DATA # define STRACE_WORKAROUND_FOR_KEY_DATA @@ -4423,52 +5739,4990 @@ const struct xlat evdev_keycode[] = { # undef KEY_DATA #endif [KEY_DATA] = XLAT(KEY_DATA), + #define XLAT_VAL_504 ((unsigned) (KEY_DATA)) + #define XLAT_STR_504 STRINGIFY(KEY_DATA) [KEY_ONSCREEN_KEYBOARD] = XLAT(KEY_ONSCREEN_KEYBOARD), + #define XLAT_VAL_505 ((unsigned) (KEY_ONSCREEN_KEYBOARD)) + #define XLAT_STR_505 STRINGIFY(KEY_ONSCREEN_KEYBOARD) + [KEY_PRIVACY_SCREEN_TOGGLE] = XLAT(KEY_PRIVACY_SCREEN_TOGGLE), + #define XLAT_VAL_506 ((unsigned) (KEY_PRIVACY_SCREEN_TOGGLE)) + #define XLAT_STR_506 STRINGIFY(KEY_PRIVACY_SCREEN_TOGGLE) + + [KEY_SELECTIVE_SCREENSHOT] = XLAT(KEY_SELECTIVE_SCREENSHOT), + #define XLAT_VAL_507 ((unsigned) (KEY_SELECTIVE_SCREENSHOT)) + #define XLAT_STR_507 STRINGIFY(KEY_SELECTIVE_SCREENSHOT) + + [KEY_MACRO1] = XLAT(KEY_MACRO1), + #define XLAT_VAL_508 ((unsigned) (KEY_MACRO1)) + #define XLAT_STR_508 STRINGIFY(KEY_MACRO1) + [KEY_MACRO2] = XLAT(KEY_MACRO2), + #define XLAT_VAL_509 ((unsigned) (KEY_MACRO2)) + #define XLAT_STR_509 STRINGIFY(KEY_MACRO2) + [KEY_MACRO3] = XLAT(KEY_MACRO3), + #define XLAT_VAL_510 ((unsigned) (KEY_MACRO3)) + #define XLAT_STR_510 STRINGIFY(KEY_MACRO3) + [KEY_MACRO4] = XLAT(KEY_MACRO4), + #define XLAT_VAL_511 ((unsigned) (KEY_MACRO4)) + #define XLAT_STR_511 STRINGIFY(KEY_MACRO4) + [KEY_MACRO5] = XLAT(KEY_MACRO5), + #define XLAT_VAL_512 ((unsigned) (KEY_MACRO5)) + #define XLAT_STR_512 STRINGIFY(KEY_MACRO5) + [KEY_MACRO6] = XLAT(KEY_MACRO6), + #define XLAT_VAL_513 ((unsigned) (KEY_MACRO6)) + #define XLAT_STR_513 STRINGIFY(KEY_MACRO6) + [KEY_MACRO7] = XLAT(KEY_MACRO7), + #define XLAT_VAL_514 ((unsigned) (KEY_MACRO7)) + #define XLAT_STR_514 STRINGIFY(KEY_MACRO7) + [KEY_MACRO8] = XLAT(KEY_MACRO8), + #define XLAT_VAL_515 ((unsigned) (KEY_MACRO8)) + #define XLAT_STR_515 STRINGIFY(KEY_MACRO8) + [KEY_MACRO9] = XLAT(KEY_MACRO9), + #define XLAT_VAL_516 ((unsigned) (KEY_MACRO9)) + #define XLAT_STR_516 STRINGIFY(KEY_MACRO9) + [KEY_MACRO10] = XLAT(KEY_MACRO10), + #define XLAT_VAL_517 ((unsigned) (KEY_MACRO10)) + #define XLAT_STR_517 STRINGIFY(KEY_MACRO10) + [KEY_MACRO11] = XLAT(KEY_MACRO11), + #define XLAT_VAL_518 ((unsigned) (KEY_MACRO11)) + #define XLAT_STR_518 STRINGIFY(KEY_MACRO11) + [KEY_MACRO12] = XLAT(KEY_MACRO12), + #define XLAT_VAL_519 ((unsigned) (KEY_MACRO12)) + #define XLAT_STR_519 STRINGIFY(KEY_MACRO12) + [KEY_MACRO13] = XLAT(KEY_MACRO13), + #define XLAT_VAL_520 ((unsigned) (KEY_MACRO13)) + #define XLAT_STR_520 STRINGIFY(KEY_MACRO13) + [KEY_MACRO14] = XLAT(KEY_MACRO14), + #define XLAT_VAL_521 ((unsigned) (KEY_MACRO14)) + #define XLAT_STR_521 STRINGIFY(KEY_MACRO14) + [KEY_MACRO15] = XLAT(KEY_MACRO15), + #define XLAT_VAL_522 ((unsigned) (KEY_MACRO15)) + #define XLAT_STR_522 STRINGIFY(KEY_MACRO15) + [KEY_MACRO16] = XLAT(KEY_MACRO16), + #define XLAT_VAL_523 ((unsigned) (KEY_MACRO16)) + #define XLAT_STR_523 STRINGIFY(KEY_MACRO16) + [KEY_MACRO17] = XLAT(KEY_MACRO17), + #define XLAT_VAL_524 ((unsigned) (KEY_MACRO17)) + #define XLAT_STR_524 STRINGIFY(KEY_MACRO17) + [KEY_MACRO18] = XLAT(KEY_MACRO18), + #define XLAT_VAL_525 ((unsigned) (KEY_MACRO18)) + #define XLAT_STR_525 STRINGIFY(KEY_MACRO18) + [KEY_MACRO19] = XLAT(KEY_MACRO19), + #define XLAT_VAL_526 ((unsigned) (KEY_MACRO19)) + #define XLAT_STR_526 STRINGIFY(KEY_MACRO19) + [KEY_MACRO20] = XLAT(KEY_MACRO20), + #define XLAT_VAL_527 ((unsigned) (KEY_MACRO20)) + #define XLAT_STR_527 STRINGIFY(KEY_MACRO20) + [KEY_MACRO21] = XLAT(KEY_MACRO21), + #define XLAT_VAL_528 ((unsigned) (KEY_MACRO21)) + #define XLAT_STR_528 STRINGIFY(KEY_MACRO21) + [KEY_MACRO22] = XLAT(KEY_MACRO22), + #define XLAT_VAL_529 ((unsigned) (KEY_MACRO22)) + #define XLAT_STR_529 STRINGIFY(KEY_MACRO22) + [KEY_MACRO23] = XLAT(KEY_MACRO23), + #define XLAT_VAL_530 ((unsigned) (KEY_MACRO23)) + #define XLAT_STR_530 STRINGIFY(KEY_MACRO23) + [KEY_MACRO24] = XLAT(KEY_MACRO24), + #define XLAT_VAL_531 ((unsigned) (KEY_MACRO24)) + #define XLAT_STR_531 STRINGIFY(KEY_MACRO24) + [KEY_MACRO25] = XLAT(KEY_MACRO25), + #define XLAT_VAL_532 ((unsigned) (KEY_MACRO25)) + #define XLAT_STR_532 STRINGIFY(KEY_MACRO25) + [KEY_MACRO26] = XLAT(KEY_MACRO26), + #define XLAT_VAL_533 ((unsigned) (KEY_MACRO26)) + #define XLAT_STR_533 STRINGIFY(KEY_MACRO26) + [KEY_MACRO27] = XLAT(KEY_MACRO27), + #define XLAT_VAL_534 ((unsigned) (KEY_MACRO27)) + #define XLAT_STR_534 STRINGIFY(KEY_MACRO27) + [KEY_MACRO28] = XLAT(KEY_MACRO28), + #define XLAT_VAL_535 ((unsigned) (KEY_MACRO28)) + #define XLAT_STR_535 STRINGIFY(KEY_MACRO28) + [KEY_MACRO29] = XLAT(KEY_MACRO29), + #define XLAT_VAL_536 ((unsigned) (KEY_MACRO29)) + #define XLAT_STR_536 STRINGIFY(KEY_MACRO29) + [KEY_MACRO30] = XLAT(KEY_MACRO30), + #define XLAT_VAL_537 ((unsigned) (KEY_MACRO30)) + #define XLAT_STR_537 STRINGIFY(KEY_MACRO30) + + [KEY_MACRO_RECORD_START] = XLAT(KEY_MACRO_RECORD_START), + #define XLAT_VAL_538 ((unsigned) (KEY_MACRO_RECORD_START)) + #define XLAT_STR_538 STRINGIFY(KEY_MACRO_RECORD_START) + [KEY_MACRO_RECORD_STOP] = XLAT(KEY_MACRO_RECORD_STOP), + #define XLAT_VAL_539 ((unsigned) (KEY_MACRO_RECORD_STOP)) + #define XLAT_STR_539 STRINGIFY(KEY_MACRO_RECORD_STOP) + [KEY_MACRO_PRESET_CYCLE] = XLAT(KEY_MACRO_PRESET_CYCLE), + #define XLAT_VAL_540 ((unsigned) (KEY_MACRO_PRESET_CYCLE)) + #define XLAT_STR_540 STRINGIFY(KEY_MACRO_PRESET_CYCLE) + [KEY_MACRO_PRESET1] = XLAT(KEY_MACRO_PRESET1), + #define XLAT_VAL_541 ((unsigned) (KEY_MACRO_PRESET1)) + #define XLAT_STR_541 STRINGIFY(KEY_MACRO_PRESET1) + [KEY_MACRO_PRESET2] = XLAT(KEY_MACRO_PRESET2), + #define XLAT_VAL_542 ((unsigned) (KEY_MACRO_PRESET2)) + #define XLAT_STR_542 STRINGIFY(KEY_MACRO_PRESET2) + [KEY_MACRO_PRESET3] = XLAT(KEY_MACRO_PRESET3), + #define XLAT_VAL_543 ((unsigned) (KEY_MACRO_PRESET3)) + #define XLAT_STR_543 STRINGIFY(KEY_MACRO_PRESET3) + + [KEY_KBD_LCD_MENU1] = XLAT(KEY_KBD_LCD_MENU1), + #define XLAT_VAL_544 ((unsigned) (KEY_KBD_LCD_MENU1)) + #define XLAT_STR_544 STRINGIFY(KEY_KBD_LCD_MENU1) + [KEY_KBD_LCD_MENU2] = XLAT(KEY_KBD_LCD_MENU2), + #define XLAT_VAL_545 ((unsigned) (KEY_KBD_LCD_MENU2)) + #define XLAT_STR_545 STRINGIFY(KEY_KBD_LCD_MENU2) + [KEY_KBD_LCD_MENU3] = XLAT(KEY_KBD_LCD_MENU3), + #define XLAT_VAL_546 ((unsigned) (KEY_KBD_LCD_MENU3)) + #define XLAT_STR_546 STRINGIFY(KEY_KBD_LCD_MENU3) + [KEY_KBD_LCD_MENU4] = XLAT(KEY_KBD_LCD_MENU4), + #define XLAT_VAL_547 ((unsigned) (KEY_KBD_LCD_MENU4)) + #define XLAT_STR_547 STRINGIFY(KEY_KBD_LCD_MENU4) + [KEY_KBD_LCD_MENU5] = XLAT(KEY_KBD_LCD_MENU5), + #define XLAT_VAL_548 ((unsigned) (KEY_KBD_LCD_MENU5)) + #define XLAT_STR_548 STRINGIFY(KEY_KBD_LCD_MENU5) [BTN_TRIGGER_HAPPY1] = XLAT(BTN_TRIGGER_HAPPY1), + #define XLAT_VAL_549 ((unsigned) (BTN_TRIGGER_HAPPY1)) + #define XLAT_STR_549 STRINGIFY(BTN_TRIGGER_HAPPY1) [BTN_TRIGGER_HAPPY2] = XLAT(BTN_TRIGGER_HAPPY2), + #define XLAT_VAL_550 ((unsigned) (BTN_TRIGGER_HAPPY2)) + #define XLAT_STR_550 STRINGIFY(BTN_TRIGGER_HAPPY2) [BTN_TRIGGER_HAPPY3] = XLAT(BTN_TRIGGER_HAPPY3), + #define XLAT_VAL_551 ((unsigned) (BTN_TRIGGER_HAPPY3)) + #define XLAT_STR_551 STRINGIFY(BTN_TRIGGER_HAPPY3) [BTN_TRIGGER_HAPPY4] = XLAT(BTN_TRIGGER_HAPPY4), + #define XLAT_VAL_552 ((unsigned) (BTN_TRIGGER_HAPPY4)) + #define XLAT_STR_552 STRINGIFY(BTN_TRIGGER_HAPPY4) [BTN_TRIGGER_HAPPY5] = XLAT(BTN_TRIGGER_HAPPY5), + #define XLAT_VAL_553 ((unsigned) (BTN_TRIGGER_HAPPY5)) + #define XLAT_STR_553 STRINGIFY(BTN_TRIGGER_HAPPY5) [BTN_TRIGGER_HAPPY6] = XLAT(BTN_TRIGGER_HAPPY6), + #define XLAT_VAL_554 ((unsigned) (BTN_TRIGGER_HAPPY6)) + #define XLAT_STR_554 STRINGIFY(BTN_TRIGGER_HAPPY6) [BTN_TRIGGER_HAPPY7] = XLAT(BTN_TRIGGER_HAPPY7), + #define XLAT_VAL_555 ((unsigned) (BTN_TRIGGER_HAPPY7)) + #define XLAT_STR_555 STRINGIFY(BTN_TRIGGER_HAPPY7) [BTN_TRIGGER_HAPPY8] = XLAT(BTN_TRIGGER_HAPPY8), + #define XLAT_VAL_556 ((unsigned) (BTN_TRIGGER_HAPPY8)) + #define XLAT_STR_556 STRINGIFY(BTN_TRIGGER_HAPPY8) [BTN_TRIGGER_HAPPY9] = XLAT(BTN_TRIGGER_HAPPY9), + #define XLAT_VAL_557 ((unsigned) (BTN_TRIGGER_HAPPY9)) + #define XLAT_STR_557 STRINGIFY(BTN_TRIGGER_HAPPY9) [BTN_TRIGGER_HAPPY10] = XLAT(BTN_TRIGGER_HAPPY10), + #define XLAT_VAL_558 ((unsigned) (BTN_TRIGGER_HAPPY10)) + #define XLAT_STR_558 STRINGIFY(BTN_TRIGGER_HAPPY10) [BTN_TRIGGER_HAPPY11] = XLAT(BTN_TRIGGER_HAPPY11), + #define XLAT_VAL_559 ((unsigned) (BTN_TRIGGER_HAPPY11)) + #define XLAT_STR_559 STRINGIFY(BTN_TRIGGER_HAPPY11) [BTN_TRIGGER_HAPPY12] = XLAT(BTN_TRIGGER_HAPPY12), + #define XLAT_VAL_560 ((unsigned) (BTN_TRIGGER_HAPPY12)) + #define XLAT_STR_560 STRINGIFY(BTN_TRIGGER_HAPPY12) [BTN_TRIGGER_HAPPY13] = XLAT(BTN_TRIGGER_HAPPY13), + #define XLAT_VAL_561 ((unsigned) (BTN_TRIGGER_HAPPY13)) + #define XLAT_STR_561 STRINGIFY(BTN_TRIGGER_HAPPY13) [BTN_TRIGGER_HAPPY14] = XLAT(BTN_TRIGGER_HAPPY14), + #define XLAT_VAL_562 ((unsigned) (BTN_TRIGGER_HAPPY14)) + #define XLAT_STR_562 STRINGIFY(BTN_TRIGGER_HAPPY14) [BTN_TRIGGER_HAPPY15] = XLAT(BTN_TRIGGER_HAPPY15), + #define XLAT_VAL_563 ((unsigned) (BTN_TRIGGER_HAPPY15)) + #define XLAT_STR_563 STRINGIFY(BTN_TRIGGER_HAPPY15) [BTN_TRIGGER_HAPPY16] = XLAT(BTN_TRIGGER_HAPPY16), + #define XLAT_VAL_564 ((unsigned) (BTN_TRIGGER_HAPPY16)) + #define XLAT_STR_564 STRINGIFY(BTN_TRIGGER_HAPPY16) [BTN_TRIGGER_HAPPY17] = XLAT(BTN_TRIGGER_HAPPY17), + #define XLAT_VAL_565 ((unsigned) (BTN_TRIGGER_HAPPY17)) + #define XLAT_STR_565 STRINGIFY(BTN_TRIGGER_HAPPY17) [BTN_TRIGGER_HAPPY18] = XLAT(BTN_TRIGGER_HAPPY18), + #define XLAT_VAL_566 ((unsigned) (BTN_TRIGGER_HAPPY18)) + #define XLAT_STR_566 STRINGIFY(BTN_TRIGGER_HAPPY18) [BTN_TRIGGER_HAPPY19] = XLAT(BTN_TRIGGER_HAPPY19), + #define XLAT_VAL_567 ((unsigned) (BTN_TRIGGER_HAPPY19)) + #define XLAT_STR_567 STRINGIFY(BTN_TRIGGER_HAPPY19) [BTN_TRIGGER_HAPPY20] = XLAT(BTN_TRIGGER_HAPPY20), + #define XLAT_VAL_568 ((unsigned) (BTN_TRIGGER_HAPPY20)) + #define XLAT_STR_568 STRINGIFY(BTN_TRIGGER_HAPPY20) [BTN_TRIGGER_HAPPY21] = XLAT(BTN_TRIGGER_HAPPY21), + #define XLAT_VAL_569 ((unsigned) (BTN_TRIGGER_HAPPY21)) + #define XLAT_STR_569 STRINGIFY(BTN_TRIGGER_HAPPY21) [BTN_TRIGGER_HAPPY22] = XLAT(BTN_TRIGGER_HAPPY22), + #define XLAT_VAL_570 ((unsigned) (BTN_TRIGGER_HAPPY22)) + #define XLAT_STR_570 STRINGIFY(BTN_TRIGGER_HAPPY22) [BTN_TRIGGER_HAPPY23] = XLAT(BTN_TRIGGER_HAPPY23), + #define XLAT_VAL_571 ((unsigned) (BTN_TRIGGER_HAPPY23)) + #define XLAT_STR_571 STRINGIFY(BTN_TRIGGER_HAPPY23) [BTN_TRIGGER_HAPPY24] = XLAT(BTN_TRIGGER_HAPPY24), + #define XLAT_VAL_572 ((unsigned) (BTN_TRIGGER_HAPPY24)) + #define XLAT_STR_572 STRINGIFY(BTN_TRIGGER_HAPPY24) [BTN_TRIGGER_HAPPY25] = XLAT(BTN_TRIGGER_HAPPY25), + #define XLAT_VAL_573 ((unsigned) (BTN_TRIGGER_HAPPY25)) + #define XLAT_STR_573 STRINGIFY(BTN_TRIGGER_HAPPY25) [BTN_TRIGGER_HAPPY26] = XLAT(BTN_TRIGGER_HAPPY26), + #define XLAT_VAL_574 ((unsigned) (BTN_TRIGGER_HAPPY26)) + #define XLAT_STR_574 STRINGIFY(BTN_TRIGGER_HAPPY26) [BTN_TRIGGER_HAPPY27] = XLAT(BTN_TRIGGER_HAPPY27), + #define XLAT_VAL_575 ((unsigned) (BTN_TRIGGER_HAPPY27)) + #define XLAT_STR_575 STRINGIFY(BTN_TRIGGER_HAPPY27) [BTN_TRIGGER_HAPPY28] = XLAT(BTN_TRIGGER_HAPPY28), + #define XLAT_VAL_576 ((unsigned) (BTN_TRIGGER_HAPPY28)) + #define XLAT_STR_576 STRINGIFY(BTN_TRIGGER_HAPPY28) [BTN_TRIGGER_HAPPY29] = XLAT(BTN_TRIGGER_HAPPY29), + #define XLAT_VAL_577 ((unsigned) (BTN_TRIGGER_HAPPY29)) + #define XLAT_STR_577 STRINGIFY(BTN_TRIGGER_HAPPY29) [BTN_TRIGGER_HAPPY30] = XLAT(BTN_TRIGGER_HAPPY30), + #define XLAT_VAL_578 ((unsigned) (BTN_TRIGGER_HAPPY30)) + #define XLAT_STR_578 STRINGIFY(BTN_TRIGGER_HAPPY30) [BTN_TRIGGER_HAPPY31] = XLAT(BTN_TRIGGER_HAPPY31), + #define XLAT_VAL_579 ((unsigned) (BTN_TRIGGER_HAPPY31)) + #define XLAT_STR_579 STRINGIFY(BTN_TRIGGER_HAPPY31) [BTN_TRIGGER_HAPPY32] = XLAT(BTN_TRIGGER_HAPPY32), + #define XLAT_VAL_580 ((unsigned) (BTN_TRIGGER_HAPPY32)) + #define XLAT_STR_580 STRINGIFY(BTN_TRIGGER_HAPPY32) [BTN_TRIGGER_HAPPY33] = XLAT(BTN_TRIGGER_HAPPY33), + #define XLAT_VAL_581 ((unsigned) (BTN_TRIGGER_HAPPY33)) + #define XLAT_STR_581 STRINGIFY(BTN_TRIGGER_HAPPY33) [BTN_TRIGGER_HAPPY34] = XLAT(BTN_TRIGGER_HAPPY34), + #define XLAT_VAL_582 ((unsigned) (BTN_TRIGGER_HAPPY34)) + #define XLAT_STR_582 STRINGIFY(BTN_TRIGGER_HAPPY34) [BTN_TRIGGER_HAPPY35] = XLAT(BTN_TRIGGER_HAPPY35), + #define XLAT_VAL_583 ((unsigned) (BTN_TRIGGER_HAPPY35)) + #define XLAT_STR_583 STRINGIFY(BTN_TRIGGER_HAPPY35) [BTN_TRIGGER_HAPPY36] = XLAT(BTN_TRIGGER_HAPPY36), + #define XLAT_VAL_584 ((unsigned) (BTN_TRIGGER_HAPPY36)) + #define XLAT_STR_584 STRINGIFY(BTN_TRIGGER_HAPPY36) [BTN_TRIGGER_HAPPY37] = XLAT(BTN_TRIGGER_HAPPY37), + #define XLAT_VAL_585 ((unsigned) (BTN_TRIGGER_HAPPY37)) + #define XLAT_STR_585 STRINGIFY(BTN_TRIGGER_HAPPY37) [BTN_TRIGGER_HAPPY38] = XLAT(BTN_TRIGGER_HAPPY38), + #define XLAT_VAL_586 ((unsigned) (BTN_TRIGGER_HAPPY38)) + #define XLAT_STR_586 STRINGIFY(BTN_TRIGGER_HAPPY38) [BTN_TRIGGER_HAPPY39] = XLAT(BTN_TRIGGER_HAPPY39), + #define XLAT_VAL_587 ((unsigned) (BTN_TRIGGER_HAPPY39)) + #define XLAT_STR_587 STRINGIFY(BTN_TRIGGER_HAPPY39) [BTN_TRIGGER_HAPPY40] = XLAT(BTN_TRIGGER_HAPPY40), - XLAT_END + #define XLAT_VAL_588 ((unsigned) (BTN_TRIGGER_HAPPY40)) + #define XLAT_STR_588 STRINGIFY(BTN_TRIGGER_HAPPY40) }; +static +const struct xlat evdev_keycode[1] = { { + .data = evdev_keycode_xdata, + .size = ARRAY_SIZE(evdev_keycode_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif +# ifdef XLAT_VAL_41 + | XLAT_VAL_41 +# endif +# ifdef XLAT_VAL_42 + | XLAT_VAL_42 +# endif +# ifdef XLAT_VAL_43 + | XLAT_VAL_43 +# endif +# ifdef XLAT_VAL_44 + | XLAT_VAL_44 +# endif +# ifdef XLAT_VAL_45 + | XLAT_VAL_45 +# endif +# ifdef XLAT_VAL_46 + | XLAT_VAL_46 +# endif +# ifdef XLAT_VAL_47 + | XLAT_VAL_47 +# endif +# ifdef XLAT_VAL_48 + | XLAT_VAL_48 +# endif +# ifdef XLAT_VAL_49 + | XLAT_VAL_49 +# endif +# ifdef XLAT_VAL_50 + | XLAT_VAL_50 +# endif +# ifdef XLAT_VAL_51 + | XLAT_VAL_51 +# endif +# ifdef XLAT_VAL_52 + | XLAT_VAL_52 +# endif +# ifdef XLAT_VAL_53 + | XLAT_VAL_53 +# endif +# ifdef XLAT_VAL_54 + | XLAT_VAL_54 +# endif +# ifdef XLAT_VAL_55 + | XLAT_VAL_55 +# endif +# ifdef XLAT_VAL_56 + | XLAT_VAL_56 +# endif +# ifdef XLAT_VAL_57 + | XLAT_VAL_57 +# endif +# ifdef XLAT_VAL_58 + | XLAT_VAL_58 +# endif +# ifdef XLAT_VAL_59 + | XLAT_VAL_59 +# endif +# ifdef XLAT_VAL_60 + | XLAT_VAL_60 +# endif +# ifdef XLAT_VAL_61 + | XLAT_VAL_61 +# endif +# ifdef XLAT_VAL_62 + | XLAT_VAL_62 +# endif +# ifdef XLAT_VAL_63 + | XLAT_VAL_63 +# endif +# ifdef XLAT_VAL_64 + | XLAT_VAL_64 +# endif +# ifdef XLAT_VAL_65 + | XLAT_VAL_65 +# endif +# ifdef XLAT_VAL_66 + | XLAT_VAL_66 +# endif +# ifdef XLAT_VAL_67 + | XLAT_VAL_67 +# endif +# ifdef XLAT_VAL_68 + | XLAT_VAL_68 +# endif +# ifdef XLAT_VAL_69 + | XLAT_VAL_69 +# endif +# ifdef XLAT_VAL_70 + | XLAT_VAL_70 +# endif +# ifdef XLAT_VAL_71 + | XLAT_VAL_71 +# endif +# ifdef XLAT_VAL_72 + | XLAT_VAL_72 +# endif +# ifdef XLAT_VAL_73 + | XLAT_VAL_73 +# endif +# ifdef XLAT_VAL_74 + | XLAT_VAL_74 +# endif +# ifdef XLAT_VAL_75 + | XLAT_VAL_75 +# endif +# ifdef XLAT_VAL_76 + | XLAT_VAL_76 +# endif +# ifdef XLAT_VAL_77 + | XLAT_VAL_77 +# endif +# ifdef XLAT_VAL_78 + | XLAT_VAL_78 +# endif +# ifdef XLAT_VAL_79 + | XLAT_VAL_79 +# endif +# ifdef XLAT_VAL_80 + | XLAT_VAL_80 +# endif +# ifdef XLAT_VAL_81 + | XLAT_VAL_81 +# endif +# ifdef XLAT_VAL_82 + | XLAT_VAL_82 +# endif +# ifdef XLAT_VAL_83 + | XLAT_VAL_83 +# endif +# ifdef XLAT_VAL_84 + | XLAT_VAL_84 +# endif +# ifdef XLAT_VAL_85 + | XLAT_VAL_85 +# endif +# ifdef XLAT_VAL_86 + | XLAT_VAL_86 +# endif +# ifdef XLAT_VAL_87 + | XLAT_VAL_87 +# endif +# ifdef XLAT_VAL_88 + | XLAT_VAL_88 +# endif +# ifdef XLAT_VAL_89 + | XLAT_VAL_89 +# endif +# ifdef XLAT_VAL_90 + | XLAT_VAL_90 +# endif +# ifdef XLAT_VAL_91 + | XLAT_VAL_91 +# endif +# ifdef XLAT_VAL_92 + | XLAT_VAL_92 +# endif +# ifdef XLAT_VAL_93 + | XLAT_VAL_93 +# endif +# ifdef XLAT_VAL_94 + | XLAT_VAL_94 +# endif +# ifdef XLAT_VAL_95 + | XLAT_VAL_95 +# endif +# ifdef XLAT_VAL_96 + | XLAT_VAL_96 +# endif +# ifdef XLAT_VAL_97 + | XLAT_VAL_97 +# endif +# ifdef XLAT_VAL_98 + | XLAT_VAL_98 +# endif +# ifdef XLAT_VAL_99 + | XLAT_VAL_99 +# endif +# ifdef XLAT_VAL_100 + | XLAT_VAL_100 +# endif +# ifdef XLAT_VAL_101 + | XLAT_VAL_101 +# endif +# ifdef XLAT_VAL_102 + | XLAT_VAL_102 +# endif +# ifdef XLAT_VAL_103 + | XLAT_VAL_103 +# endif +# ifdef XLAT_VAL_104 + | XLAT_VAL_104 +# endif +# ifdef XLAT_VAL_105 + | XLAT_VAL_105 +# endif +# ifdef XLAT_VAL_106 + | XLAT_VAL_106 +# endif +# ifdef XLAT_VAL_107 + | XLAT_VAL_107 +# endif +# ifdef XLAT_VAL_108 + | XLAT_VAL_108 +# endif +# ifdef XLAT_VAL_109 + | XLAT_VAL_109 +# endif +# ifdef XLAT_VAL_110 + | XLAT_VAL_110 +# endif +# ifdef XLAT_VAL_111 + | XLAT_VAL_111 +# endif +# ifdef XLAT_VAL_112 + | XLAT_VAL_112 +# endif +# ifdef XLAT_VAL_113 + | XLAT_VAL_113 +# endif +# ifdef XLAT_VAL_114 + | XLAT_VAL_114 +# endif +# ifdef XLAT_VAL_115 + | XLAT_VAL_115 +# endif +# ifdef XLAT_VAL_116 + | XLAT_VAL_116 +# endif +# ifdef XLAT_VAL_117 + | XLAT_VAL_117 +# endif +# ifdef XLAT_VAL_118 + | XLAT_VAL_118 +# endif +# ifdef XLAT_VAL_119 + | XLAT_VAL_119 +# endif +# ifdef XLAT_VAL_120 + | XLAT_VAL_120 +# endif +# ifdef XLAT_VAL_121 + | XLAT_VAL_121 +# endif +# ifdef XLAT_VAL_122 + | XLAT_VAL_122 +# endif +# ifdef XLAT_VAL_123 + | XLAT_VAL_123 +# endif +# ifdef XLAT_VAL_124 + | XLAT_VAL_124 +# endif +# ifdef XLAT_VAL_125 + | XLAT_VAL_125 +# endif +# ifdef XLAT_VAL_126 + | XLAT_VAL_126 +# endif +# ifdef XLAT_VAL_127 + | XLAT_VAL_127 +# endif +# ifdef XLAT_VAL_128 + | XLAT_VAL_128 +# endif +# ifdef XLAT_VAL_129 + | XLAT_VAL_129 +# endif +# ifdef XLAT_VAL_130 + | XLAT_VAL_130 +# endif +# ifdef XLAT_VAL_131 + | XLAT_VAL_131 +# endif +# ifdef XLAT_VAL_132 + | XLAT_VAL_132 +# endif +# ifdef XLAT_VAL_133 + | XLAT_VAL_133 +# endif +# ifdef XLAT_VAL_134 + | XLAT_VAL_134 +# endif +# ifdef XLAT_VAL_135 + | XLAT_VAL_135 +# endif +# ifdef XLAT_VAL_136 + | XLAT_VAL_136 +# endif +# ifdef XLAT_VAL_137 + | XLAT_VAL_137 +# endif +# ifdef XLAT_VAL_138 + | XLAT_VAL_138 +# endif +# ifdef XLAT_VAL_139 + | XLAT_VAL_139 +# endif +# ifdef XLAT_VAL_140 + | XLAT_VAL_140 +# endif +# ifdef XLAT_VAL_141 + | XLAT_VAL_141 +# endif +# ifdef XLAT_VAL_142 + | XLAT_VAL_142 +# endif +# ifdef XLAT_VAL_143 + | XLAT_VAL_143 +# endif +# ifdef XLAT_VAL_144 + | XLAT_VAL_144 +# endif +# ifdef XLAT_VAL_145 + | XLAT_VAL_145 +# endif +# ifdef XLAT_VAL_146 + | XLAT_VAL_146 +# endif +# ifdef XLAT_VAL_147 + | XLAT_VAL_147 +# endif +# ifdef XLAT_VAL_148 + | XLAT_VAL_148 +# endif +# ifdef XLAT_VAL_149 + | XLAT_VAL_149 +# endif +# ifdef XLAT_VAL_150 + | XLAT_VAL_150 +# endif +# ifdef XLAT_VAL_151 + | XLAT_VAL_151 +# endif +# ifdef XLAT_VAL_152 + | XLAT_VAL_152 +# endif +# ifdef XLAT_VAL_153 + | XLAT_VAL_153 +# endif +# ifdef XLAT_VAL_154 + | XLAT_VAL_154 +# endif +# ifdef XLAT_VAL_155 + | XLAT_VAL_155 +# endif +# ifdef XLAT_VAL_156 + | XLAT_VAL_156 +# endif +# ifdef XLAT_VAL_157 + | XLAT_VAL_157 +# endif +# ifdef XLAT_VAL_158 + | XLAT_VAL_158 +# endif +# ifdef XLAT_VAL_159 + | XLAT_VAL_159 +# endif +# ifdef XLAT_VAL_160 + | XLAT_VAL_160 +# endif +# ifdef XLAT_VAL_161 + | XLAT_VAL_161 +# endif +# ifdef XLAT_VAL_162 + | XLAT_VAL_162 +# endif +# ifdef XLAT_VAL_163 + | XLAT_VAL_163 +# endif +# ifdef XLAT_VAL_164 + | XLAT_VAL_164 +# endif +# ifdef XLAT_VAL_165 + | XLAT_VAL_165 +# endif +# ifdef XLAT_VAL_166 + | XLAT_VAL_166 +# endif +# ifdef XLAT_VAL_167 + | XLAT_VAL_167 +# endif +# ifdef XLAT_VAL_168 + | XLAT_VAL_168 +# endif +# ifdef XLAT_VAL_169 + | XLAT_VAL_169 +# endif +# ifdef XLAT_VAL_170 + | XLAT_VAL_170 +# endif +# ifdef XLAT_VAL_171 + | XLAT_VAL_171 +# endif +# ifdef XLAT_VAL_172 + | XLAT_VAL_172 +# endif +# ifdef XLAT_VAL_173 + | XLAT_VAL_173 +# endif +# ifdef XLAT_VAL_174 + | XLAT_VAL_174 +# endif +# ifdef XLAT_VAL_175 + | XLAT_VAL_175 +# endif +# ifdef XLAT_VAL_176 + | XLAT_VAL_176 +# endif +# ifdef XLAT_VAL_177 + | XLAT_VAL_177 +# endif +# ifdef XLAT_VAL_178 + | XLAT_VAL_178 +# endif +# ifdef XLAT_VAL_179 + | XLAT_VAL_179 +# endif +# ifdef XLAT_VAL_180 + | XLAT_VAL_180 +# endif +# ifdef XLAT_VAL_181 + | XLAT_VAL_181 +# endif +# ifdef XLAT_VAL_182 + | XLAT_VAL_182 +# endif +# ifdef XLAT_VAL_183 + | XLAT_VAL_183 +# endif +# ifdef XLAT_VAL_184 + | XLAT_VAL_184 +# endif +# ifdef XLAT_VAL_185 + | XLAT_VAL_185 +# endif +# ifdef XLAT_VAL_186 + | XLAT_VAL_186 +# endif +# ifdef XLAT_VAL_187 + | XLAT_VAL_187 +# endif +# ifdef XLAT_VAL_188 + | XLAT_VAL_188 +# endif +# ifdef XLAT_VAL_189 + | XLAT_VAL_189 +# endif +# ifdef XLAT_VAL_190 + | XLAT_VAL_190 +# endif +# ifdef XLAT_VAL_191 + | XLAT_VAL_191 +# endif +# ifdef XLAT_VAL_192 + | XLAT_VAL_192 +# endif +# ifdef XLAT_VAL_193 + | XLAT_VAL_193 +# endif +# ifdef XLAT_VAL_194 + | XLAT_VAL_194 +# endif +# ifdef XLAT_VAL_195 + | XLAT_VAL_195 +# endif +# ifdef XLAT_VAL_196 + | XLAT_VAL_196 +# endif +# ifdef XLAT_VAL_197 + | XLAT_VAL_197 +# endif +# ifdef XLAT_VAL_198 + | XLAT_VAL_198 +# endif +# ifdef XLAT_VAL_199 + | XLAT_VAL_199 +# endif +# ifdef XLAT_VAL_200 + | XLAT_VAL_200 +# endif +# ifdef XLAT_VAL_201 + | XLAT_VAL_201 +# endif +# ifdef XLAT_VAL_202 + | XLAT_VAL_202 +# endif +# ifdef XLAT_VAL_203 + | XLAT_VAL_203 +# endif +# ifdef XLAT_VAL_204 + | XLAT_VAL_204 +# endif +# ifdef XLAT_VAL_205 + | XLAT_VAL_205 +# endif +# ifdef XLAT_VAL_206 + | XLAT_VAL_206 +# endif +# ifdef XLAT_VAL_207 + | XLAT_VAL_207 +# endif +# ifdef XLAT_VAL_208 + | XLAT_VAL_208 +# endif +# ifdef XLAT_VAL_209 + | XLAT_VAL_209 +# endif +# ifdef XLAT_VAL_210 + | XLAT_VAL_210 +# endif +# ifdef XLAT_VAL_211 + | XLAT_VAL_211 +# endif +# ifdef XLAT_VAL_212 + | XLAT_VAL_212 +# endif +# ifdef XLAT_VAL_213 + | XLAT_VAL_213 +# endif +# ifdef XLAT_VAL_214 + | XLAT_VAL_214 +# endif +# ifdef XLAT_VAL_215 + | XLAT_VAL_215 +# endif +# ifdef XLAT_VAL_216 + | XLAT_VAL_216 +# endif +# ifdef XLAT_VAL_217 + | XLAT_VAL_217 +# endif +# ifdef XLAT_VAL_218 + | XLAT_VAL_218 +# endif +# ifdef XLAT_VAL_219 + | XLAT_VAL_219 +# endif +# ifdef XLAT_VAL_220 + | XLAT_VAL_220 +# endif +# ifdef XLAT_VAL_221 + | XLAT_VAL_221 +# endif +# ifdef XLAT_VAL_222 + | XLAT_VAL_222 +# endif +# ifdef XLAT_VAL_223 + | XLAT_VAL_223 +# endif +# ifdef XLAT_VAL_224 + | XLAT_VAL_224 +# endif +# ifdef XLAT_VAL_225 + | XLAT_VAL_225 +# endif +# ifdef XLAT_VAL_226 + | XLAT_VAL_226 +# endif +# ifdef XLAT_VAL_227 + | XLAT_VAL_227 +# endif +# ifdef XLAT_VAL_228 + | XLAT_VAL_228 +# endif +# ifdef XLAT_VAL_229 + | XLAT_VAL_229 +# endif +# ifdef XLAT_VAL_230 + | XLAT_VAL_230 +# endif +# ifdef XLAT_VAL_231 + | XLAT_VAL_231 +# endif +# ifdef XLAT_VAL_232 + | XLAT_VAL_232 +# endif +# ifdef XLAT_VAL_233 + | XLAT_VAL_233 +# endif +# ifdef XLAT_VAL_234 + | XLAT_VAL_234 +# endif +# ifdef XLAT_VAL_235 + | XLAT_VAL_235 +# endif +# ifdef XLAT_VAL_236 + | XLAT_VAL_236 +# endif +# ifdef XLAT_VAL_237 + | XLAT_VAL_237 +# endif +# ifdef XLAT_VAL_238 + | XLAT_VAL_238 +# endif +# ifdef XLAT_VAL_239 + | XLAT_VAL_239 +# endif +# ifdef XLAT_VAL_240 + | XLAT_VAL_240 +# endif +# ifdef XLAT_VAL_241 + | XLAT_VAL_241 +# endif +# ifdef XLAT_VAL_242 + | XLAT_VAL_242 +# endif +# ifdef XLAT_VAL_243 + | XLAT_VAL_243 +# endif +# ifdef XLAT_VAL_244 + | XLAT_VAL_244 +# endif +# ifdef XLAT_VAL_245 + | XLAT_VAL_245 +# endif +# ifdef XLAT_VAL_246 + | XLAT_VAL_246 +# endif +# ifdef XLAT_VAL_247 + | XLAT_VAL_247 +# endif +# ifdef XLAT_VAL_248 + | XLAT_VAL_248 +# endif +# ifdef XLAT_VAL_249 + | XLAT_VAL_249 +# endif +# ifdef XLAT_VAL_250 + | XLAT_VAL_250 +# endif +# ifdef XLAT_VAL_251 + | XLAT_VAL_251 +# endif +# ifdef XLAT_VAL_252 + | XLAT_VAL_252 +# endif +# ifdef XLAT_VAL_253 + | XLAT_VAL_253 +# endif +# ifdef XLAT_VAL_254 + | XLAT_VAL_254 +# endif +# ifdef XLAT_VAL_255 + | XLAT_VAL_255 +# endif +# ifdef XLAT_VAL_256 + | XLAT_VAL_256 +# endif +# ifdef XLAT_VAL_257 + | XLAT_VAL_257 +# endif +# ifdef XLAT_VAL_258 + | XLAT_VAL_258 +# endif +# ifdef XLAT_VAL_259 + | XLAT_VAL_259 +# endif +# ifdef XLAT_VAL_260 + | XLAT_VAL_260 +# endif +# ifdef XLAT_VAL_261 + | XLAT_VAL_261 +# endif +# ifdef XLAT_VAL_262 + | XLAT_VAL_262 +# endif +# ifdef XLAT_VAL_263 + | XLAT_VAL_263 +# endif +# ifdef XLAT_VAL_264 + | XLAT_VAL_264 +# endif +# ifdef XLAT_VAL_265 + | XLAT_VAL_265 +# endif +# ifdef XLAT_VAL_266 + | XLAT_VAL_266 +# endif +# ifdef XLAT_VAL_267 + | XLAT_VAL_267 +# endif +# ifdef XLAT_VAL_268 + | XLAT_VAL_268 +# endif +# ifdef XLAT_VAL_269 + | XLAT_VAL_269 +# endif +# ifdef XLAT_VAL_270 + | XLAT_VAL_270 +# endif +# ifdef XLAT_VAL_271 + | XLAT_VAL_271 +# endif +# ifdef XLAT_VAL_272 + | XLAT_VAL_272 +# endif +# ifdef XLAT_VAL_273 + | XLAT_VAL_273 +# endif +# ifdef XLAT_VAL_274 + | XLAT_VAL_274 +# endif +# ifdef XLAT_VAL_275 + | XLAT_VAL_275 +# endif +# ifdef XLAT_VAL_276 + | XLAT_VAL_276 +# endif +# ifdef XLAT_VAL_277 + | XLAT_VAL_277 +# endif +# ifdef XLAT_VAL_278 + | XLAT_VAL_278 +# endif +# ifdef XLAT_VAL_279 + | XLAT_VAL_279 +# endif +# ifdef XLAT_VAL_280 + | XLAT_VAL_280 +# endif +# ifdef XLAT_VAL_281 + | XLAT_VAL_281 +# endif +# ifdef XLAT_VAL_282 + | XLAT_VAL_282 +# endif +# ifdef XLAT_VAL_283 + | XLAT_VAL_283 +# endif +# ifdef XLAT_VAL_284 + | XLAT_VAL_284 +# endif +# ifdef XLAT_VAL_285 + | XLAT_VAL_285 +# endif +# ifdef XLAT_VAL_286 + | XLAT_VAL_286 +# endif +# ifdef XLAT_VAL_287 + | XLAT_VAL_287 +# endif +# ifdef XLAT_VAL_288 + | XLAT_VAL_288 +# endif +# ifdef XLAT_VAL_289 + | XLAT_VAL_289 +# endif +# ifdef XLAT_VAL_290 + | XLAT_VAL_290 +# endif +# ifdef XLAT_VAL_291 + | XLAT_VAL_291 +# endif +# ifdef XLAT_VAL_292 + | XLAT_VAL_292 +# endif +# ifdef XLAT_VAL_293 + | XLAT_VAL_293 +# endif +# ifdef XLAT_VAL_294 + | XLAT_VAL_294 +# endif +# ifdef XLAT_VAL_295 + | XLAT_VAL_295 +# endif +# ifdef XLAT_VAL_296 + | XLAT_VAL_296 +# endif +# ifdef XLAT_VAL_297 + | XLAT_VAL_297 +# endif +# ifdef XLAT_VAL_298 + | XLAT_VAL_298 +# endif +# ifdef XLAT_VAL_299 + | XLAT_VAL_299 +# endif +# ifdef XLAT_VAL_300 + | XLAT_VAL_300 +# endif +# ifdef XLAT_VAL_301 + | XLAT_VAL_301 +# endif +# ifdef XLAT_VAL_302 + | XLAT_VAL_302 +# endif +# ifdef XLAT_VAL_303 + | XLAT_VAL_303 +# endif +# ifdef XLAT_VAL_304 + | XLAT_VAL_304 +# endif +# ifdef XLAT_VAL_305 + | XLAT_VAL_305 +# endif +# ifdef XLAT_VAL_306 + | XLAT_VAL_306 +# endif +# ifdef XLAT_VAL_307 + | XLAT_VAL_307 +# endif +# ifdef XLAT_VAL_308 + | XLAT_VAL_308 +# endif +# ifdef XLAT_VAL_309 + | XLAT_VAL_309 +# endif +# ifdef XLAT_VAL_310 + | XLAT_VAL_310 +# endif +# ifdef XLAT_VAL_311 + | XLAT_VAL_311 +# endif +# ifdef XLAT_VAL_312 + | XLAT_VAL_312 +# endif +# ifdef XLAT_VAL_313 + | XLAT_VAL_313 +# endif +# ifdef XLAT_VAL_314 + | XLAT_VAL_314 +# endif +# ifdef XLAT_VAL_315 + | XLAT_VAL_315 +# endif +# ifdef XLAT_VAL_316 + | XLAT_VAL_316 +# endif +# ifdef XLAT_VAL_317 + | XLAT_VAL_317 +# endif +# ifdef XLAT_VAL_318 + | XLAT_VAL_318 +# endif +# ifdef XLAT_VAL_319 + | XLAT_VAL_319 +# endif +# ifdef XLAT_VAL_320 + | XLAT_VAL_320 +# endif +# ifdef XLAT_VAL_321 + | XLAT_VAL_321 +# endif +# ifdef XLAT_VAL_322 + | XLAT_VAL_322 +# endif +# ifdef XLAT_VAL_323 + | XLAT_VAL_323 +# endif +# ifdef XLAT_VAL_324 + | XLAT_VAL_324 +# endif +# ifdef XLAT_VAL_325 + | XLAT_VAL_325 +# endif +# ifdef XLAT_VAL_326 + | XLAT_VAL_326 +# endif +# ifdef XLAT_VAL_327 + | XLAT_VAL_327 +# endif +# ifdef XLAT_VAL_328 + | XLAT_VAL_328 +# endif +# ifdef XLAT_VAL_329 + | XLAT_VAL_329 +# endif +# ifdef XLAT_VAL_330 + | XLAT_VAL_330 +# endif +# ifdef XLAT_VAL_331 + | XLAT_VAL_331 +# endif +# ifdef XLAT_VAL_332 + | XLAT_VAL_332 +# endif +# ifdef XLAT_VAL_333 + | XLAT_VAL_333 +# endif +# ifdef XLAT_VAL_334 + | XLAT_VAL_334 +# endif +# ifdef XLAT_VAL_335 + | XLAT_VAL_335 +# endif +# ifdef XLAT_VAL_336 + | XLAT_VAL_336 +# endif +# ifdef XLAT_VAL_337 + | XLAT_VAL_337 +# endif +# ifdef XLAT_VAL_338 + | XLAT_VAL_338 +# endif +# ifdef XLAT_VAL_339 + | XLAT_VAL_339 +# endif +# ifdef XLAT_VAL_340 + | XLAT_VAL_340 +# endif +# ifdef XLAT_VAL_341 + | XLAT_VAL_341 +# endif +# ifdef XLAT_VAL_342 + | XLAT_VAL_342 +# endif +# ifdef XLAT_VAL_343 + | XLAT_VAL_343 +# endif +# ifdef XLAT_VAL_344 + | XLAT_VAL_344 +# endif +# ifdef XLAT_VAL_345 + | XLAT_VAL_345 +# endif +# ifdef XLAT_VAL_346 + | XLAT_VAL_346 +# endif +# ifdef XLAT_VAL_347 + | XLAT_VAL_347 +# endif +# ifdef XLAT_VAL_348 + | XLAT_VAL_348 +# endif +# ifdef XLAT_VAL_349 + | XLAT_VAL_349 +# endif +# ifdef XLAT_VAL_350 + | XLAT_VAL_350 +# endif +# ifdef XLAT_VAL_351 + | XLAT_VAL_351 +# endif +# ifdef XLAT_VAL_352 + | XLAT_VAL_352 +# endif +# ifdef XLAT_VAL_353 + | XLAT_VAL_353 +# endif +# ifdef XLAT_VAL_354 + | XLAT_VAL_354 +# endif +# ifdef XLAT_VAL_355 + | XLAT_VAL_355 +# endif +# ifdef XLAT_VAL_356 + | XLAT_VAL_356 +# endif +# ifdef XLAT_VAL_357 + | XLAT_VAL_357 +# endif +# ifdef XLAT_VAL_358 + | XLAT_VAL_358 +# endif +# ifdef XLAT_VAL_359 + | XLAT_VAL_359 +# endif +# ifdef XLAT_VAL_360 + | XLAT_VAL_360 +# endif +# ifdef XLAT_VAL_361 + | XLAT_VAL_361 +# endif +# ifdef XLAT_VAL_362 + | XLAT_VAL_362 +# endif +# ifdef XLAT_VAL_363 + | XLAT_VAL_363 +# endif +# ifdef XLAT_VAL_364 + | XLAT_VAL_364 +# endif +# ifdef XLAT_VAL_365 + | XLAT_VAL_365 +# endif +# ifdef XLAT_VAL_366 + | XLAT_VAL_366 +# endif +# ifdef XLAT_VAL_367 + | XLAT_VAL_367 +# endif +# ifdef XLAT_VAL_368 + | XLAT_VAL_368 +# endif +# ifdef XLAT_VAL_369 + | XLAT_VAL_369 +# endif +# ifdef XLAT_VAL_370 + | XLAT_VAL_370 +# endif +# ifdef XLAT_VAL_371 + | XLAT_VAL_371 +# endif +# ifdef XLAT_VAL_372 + | XLAT_VAL_372 +# endif +# ifdef XLAT_VAL_373 + | XLAT_VAL_373 +# endif +# ifdef XLAT_VAL_374 + | XLAT_VAL_374 +# endif +# ifdef XLAT_VAL_375 + | XLAT_VAL_375 +# endif +# ifdef XLAT_VAL_376 + | XLAT_VAL_376 +# endif +# ifdef XLAT_VAL_377 + | XLAT_VAL_377 +# endif +# ifdef XLAT_VAL_378 + | XLAT_VAL_378 +# endif +# ifdef XLAT_VAL_379 + | XLAT_VAL_379 +# endif +# ifdef XLAT_VAL_380 + | XLAT_VAL_380 +# endif +# ifdef XLAT_VAL_381 + | XLAT_VAL_381 +# endif +# ifdef XLAT_VAL_382 + | XLAT_VAL_382 +# endif +# ifdef XLAT_VAL_383 + | XLAT_VAL_383 +# endif +# ifdef XLAT_VAL_384 + | XLAT_VAL_384 +# endif +# ifdef XLAT_VAL_385 + | XLAT_VAL_385 +# endif +# ifdef XLAT_VAL_386 + | XLAT_VAL_386 +# endif +# ifdef XLAT_VAL_387 + | XLAT_VAL_387 +# endif +# ifdef XLAT_VAL_388 + | XLAT_VAL_388 +# endif +# ifdef XLAT_VAL_389 + | XLAT_VAL_389 +# endif +# ifdef XLAT_VAL_390 + | XLAT_VAL_390 +# endif +# ifdef XLAT_VAL_391 + | XLAT_VAL_391 +# endif +# ifdef XLAT_VAL_392 + | XLAT_VAL_392 +# endif +# ifdef XLAT_VAL_393 + | XLAT_VAL_393 +# endif +# ifdef XLAT_VAL_394 + | XLAT_VAL_394 +# endif +# ifdef XLAT_VAL_395 + | XLAT_VAL_395 +# endif +# ifdef XLAT_VAL_396 + | XLAT_VAL_396 +# endif +# ifdef XLAT_VAL_397 + | XLAT_VAL_397 +# endif +# ifdef XLAT_VAL_398 + | XLAT_VAL_398 +# endif +# ifdef XLAT_VAL_399 + | XLAT_VAL_399 +# endif +# ifdef XLAT_VAL_400 + | XLAT_VAL_400 +# endif +# ifdef XLAT_VAL_401 + | XLAT_VAL_401 +# endif +# ifdef XLAT_VAL_402 + | XLAT_VAL_402 +# endif +# ifdef XLAT_VAL_403 + | XLAT_VAL_403 +# endif +# ifdef XLAT_VAL_404 + | XLAT_VAL_404 +# endif +# ifdef XLAT_VAL_405 + | XLAT_VAL_405 +# endif +# ifdef XLAT_VAL_406 + | XLAT_VAL_406 +# endif +# ifdef XLAT_VAL_407 + | XLAT_VAL_407 +# endif +# ifdef XLAT_VAL_408 + | XLAT_VAL_408 +# endif +# ifdef XLAT_VAL_409 + | XLAT_VAL_409 +# endif +# ifdef XLAT_VAL_410 + | XLAT_VAL_410 +# endif +# ifdef XLAT_VAL_411 + | XLAT_VAL_411 +# endif +# ifdef XLAT_VAL_412 + | XLAT_VAL_412 +# endif +# ifdef XLAT_VAL_413 + | XLAT_VAL_413 +# endif +# ifdef XLAT_VAL_414 + | XLAT_VAL_414 +# endif +# ifdef XLAT_VAL_415 + | XLAT_VAL_415 +# endif +# ifdef XLAT_VAL_416 + | XLAT_VAL_416 +# endif +# ifdef XLAT_VAL_417 + | XLAT_VAL_417 +# endif +# ifdef XLAT_VAL_418 + | XLAT_VAL_418 +# endif +# ifdef XLAT_VAL_419 + | XLAT_VAL_419 +# endif +# ifdef XLAT_VAL_420 + | XLAT_VAL_420 +# endif +# ifdef XLAT_VAL_421 + | XLAT_VAL_421 +# endif +# ifdef XLAT_VAL_422 + | XLAT_VAL_422 +# endif +# ifdef XLAT_VAL_423 + | XLAT_VAL_423 +# endif +# ifdef XLAT_VAL_424 + | XLAT_VAL_424 +# endif +# ifdef XLAT_VAL_425 + | XLAT_VAL_425 +# endif +# ifdef XLAT_VAL_426 + | XLAT_VAL_426 +# endif +# ifdef XLAT_VAL_427 + | XLAT_VAL_427 +# endif +# ifdef XLAT_VAL_428 + | XLAT_VAL_428 +# endif +# ifdef XLAT_VAL_429 + | XLAT_VAL_429 +# endif +# ifdef XLAT_VAL_430 + | XLAT_VAL_430 +# endif +# ifdef XLAT_VAL_431 + | XLAT_VAL_431 +# endif +# ifdef XLAT_VAL_432 + | XLAT_VAL_432 +# endif +# ifdef XLAT_VAL_433 + | XLAT_VAL_433 +# endif +# ifdef XLAT_VAL_434 + | XLAT_VAL_434 +# endif +# ifdef XLAT_VAL_435 + | XLAT_VAL_435 +# endif +# ifdef XLAT_VAL_436 + | XLAT_VAL_436 +# endif +# ifdef XLAT_VAL_437 + | XLAT_VAL_437 +# endif +# ifdef XLAT_VAL_438 + | XLAT_VAL_438 +# endif +# ifdef XLAT_VAL_439 + | XLAT_VAL_439 +# endif +# ifdef XLAT_VAL_440 + | XLAT_VAL_440 +# endif +# ifdef XLAT_VAL_441 + | XLAT_VAL_441 +# endif +# ifdef XLAT_VAL_442 + | XLAT_VAL_442 +# endif +# ifdef XLAT_VAL_443 + | XLAT_VAL_443 +# endif +# ifdef XLAT_VAL_444 + | XLAT_VAL_444 +# endif +# ifdef XLAT_VAL_445 + | XLAT_VAL_445 +# endif +# ifdef XLAT_VAL_446 + | XLAT_VAL_446 +# endif +# ifdef XLAT_VAL_447 + | XLAT_VAL_447 +# endif +# ifdef XLAT_VAL_448 + | XLAT_VAL_448 +# endif +# ifdef XLAT_VAL_449 + | XLAT_VAL_449 +# endif +# ifdef XLAT_VAL_450 + | XLAT_VAL_450 +# endif +# ifdef XLAT_VAL_451 + | XLAT_VAL_451 +# endif +# ifdef XLAT_VAL_452 + | XLAT_VAL_452 +# endif +# ifdef XLAT_VAL_453 + | XLAT_VAL_453 +# endif +# ifdef XLAT_VAL_454 + | XLAT_VAL_454 +# endif +# ifdef XLAT_VAL_455 + | XLAT_VAL_455 +# endif +# ifdef XLAT_VAL_456 + | XLAT_VAL_456 +# endif +# ifdef XLAT_VAL_457 + | XLAT_VAL_457 +# endif +# ifdef XLAT_VAL_458 + | XLAT_VAL_458 +# endif +# ifdef XLAT_VAL_459 + | XLAT_VAL_459 +# endif +# ifdef XLAT_VAL_460 + | XLAT_VAL_460 +# endif +# ifdef XLAT_VAL_461 + | XLAT_VAL_461 +# endif +# ifdef XLAT_VAL_462 + | XLAT_VAL_462 +# endif +# ifdef XLAT_VAL_463 + | XLAT_VAL_463 +# endif +# ifdef XLAT_VAL_464 + | XLAT_VAL_464 +# endif +# ifdef XLAT_VAL_465 + | XLAT_VAL_465 +# endif +# ifdef XLAT_VAL_466 + | XLAT_VAL_466 +# endif +# ifdef XLAT_VAL_467 + | XLAT_VAL_467 +# endif +# ifdef XLAT_VAL_468 + | XLAT_VAL_468 +# endif +# ifdef XLAT_VAL_469 + | XLAT_VAL_469 +# endif +# ifdef XLAT_VAL_470 + | XLAT_VAL_470 +# endif +# ifdef XLAT_VAL_471 + | XLAT_VAL_471 +# endif +# ifdef XLAT_VAL_472 + | XLAT_VAL_472 +# endif +# ifdef XLAT_VAL_473 + | XLAT_VAL_473 +# endif +# ifdef XLAT_VAL_474 + | XLAT_VAL_474 +# endif +# ifdef XLAT_VAL_475 + | XLAT_VAL_475 +# endif +# ifdef XLAT_VAL_476 + | XLAT_VAL_476 +# endif +# ifdef XLAT_VAL_477 + | XLAT_VAL_477 +# endif +# ifdef XLAT_VAL_478 + | XLAT_VAL_478 +# endif +# ifdef XLAT_VAL_479 + | XLAT_VAL_479 +# endif +# ifdef XLAT_VAL_480 + | XLAT_VAL_480 +# endif +# ifdef XLAT_VAL_481 + | XLAT_VAL_481 +# endif +# ifdef XLAT_VAL_482 + | XLAT_VAL_482 +# endif +# ifdef XLAT_VAL_483 + | XLAT_VAL_483 +# endif +# ifdef XLAT_VAL_484 + | XLAT_VAL_484 +# endif +# ifdef XLAT_VAL_485 + | XLAT_VAL_485 +# endif +# ifdef XLAT_VAL_486 + | XLAT_VAL_486 +# endif +# ifdef XLAT_VAL_487 + | XLAT_VAL_487 +# endif +# ifdef XLAT_VAL_488 + | XLAT_VAL_488 +# endif +# ifdef XLAT_VAL_489 + | XLAT_VAL_489 +# endif +# ifdef XLAT_VAL_490 + | XLAT_VAL_490 +# endif +# ifdef XLAT_VAL_491 + | XLAT_VAL_491 +# endif +# ifdef XLAT_VAL_492 + | XLAT_VAL_492 +# endif +# ifdef XLAT_VAL_493 + | XLAT_VAL_493 +# endif +# ifdef XLAT_VAL_494 + | XLAT_VAL_494 +# endif +# ifdef XLAT_VAL_495 + | XLAT_VAL_495 +# endif +# ifdef XLAT_VAL_496 + | XLAT_VAL_496 +# endif +# ifdef XLAT_VAL_497 + | XLAT_VAL_497 +# endif +# ifdef XLAT_VAL_498 + | XLAT_VAL_498 +# endif +# ifdef XLAT_VAL_499 + | XLAT_VAL_499 +# endif +# ifdef XLAT_VAL_500 + | XLAT_VAL_500 +# endif +# ifdef XLAT_VAL_501 + | XLAT_VAL_501 +# endif +# ifdef XLAT_VAL_502 + | XLAT_VAL_502 +# endif +# ifdef XLAT_VAL_503 + | XLAT_VAL_503 +# endif +# ifdef XLAT_VAL_504 + | XLAT_VAL_504 +# endif +# ifdef XLAT_VAL_505 + | XLAT_VAL_505 +# endif +# ifdef XLAT_VAL_506 + | XLAT_VAL_506 +# endif +# ifdef XLAT_VAL_507 + | XLAT_VAL_507 +# endif +# ifdef XLAT_VAL_508 + | XLAT_VAL_508 +# endif +# ifdef XLAT_VAL_509 + | XLAT_VAL_509 +# endif +# ifdef XLAT_VAL_510 + | XLAT_VAL_510 +# endif +# ifdef XLAT_VAL_511 + | XLAT_VAL_511 +# endif +# ifdef XLAT_VAL_512 + | XLAT_VAL_512 +# endif +# ifdef XLAT_VAL_513 + | XLAT_VAL_513 +# endif +# ifdef XLAT_VAL_514 + | XLAT_VAL_514 +# endif +# ifdef XLAT_VAL_515 + | XLAT_VAL_515 +# endif +# ifdef XLAT_VAL_516 + | XLAT_VAL_516 +# endif +# ifdef XLAT_VAL_517 + | XLAT_VAL_517 +# endif +# ifdef XLAT_VAL_518 + | XLAT_VAL_518 +# endif +# ifdef XLAT_VAL_519 + | XLAT_VAL_519 +# endif +# ifdef XLAT_VAL_520 + | XLAT_VAL_520 +# endif +# ifdef XLAT_VAL_521 + | XLAT_VAL_521 +# endif +# ifdef XLAT_VAL_522 + | XLAT_VAL_522 +# endif +# ifdef XLAT_VAL_523 + | XLAT_VAL_523 +# endif +# ifdef XLAT_VAL_524 + | XLAT_VAL_524 +# endif +# ifdef XLAT_VAL_525 + | XLAT_VAL_525 +# endif +# ifdef XLAT_VAL_526 + | XLAT_VAL_526 +# endif +# ifdef XLAT_VAL_527 + | XLAT_VAL_527 +# endif +# ifdef XLAT_VAL_528 + | XLAT_VAL_528 +# endif +# ifdef XLAT_VAL_529 + | XLAT_VAL_529 +# endif +# ifdef XLAT_VAL_530 + | XLAT_VAL_530 +# endif +# ifdef XLAT_VAL_531 + | XLAT_VAL_531 +# endif +# ifdef XLAT_VAL_532 + | XLAT_VAL_532 +# endif +# ifdef XLAT_VAL_533 + | XLAT_VAL_533 +# endif +# ifdef XLAT_VAL_534 + | XLAT_VAL_534 +# endif +# ifdef XLAT_VAL_535 + | XLAT_VAL_535 +# endif +# ifdef XLAT_VAL_536 + | XLAT_VAL_536 +# endif +# ifdef XLAT_VAL_537 + | XLAT_VAL_537 +# endif +# ifdef XLAT_VAL_538 + | XLAT_VAL_538 +# endif +# ifdef XLAT_VAL_539 + | XLAT_VAL_539 +# endif +# ifdef XLAT_VAL_540 + | XLAT_VAL_540 +# endif +# ifdef XLAT_VAL_541 + | XLAT_VAL_541 +# endif +# ifdef XLAT_VAL_542 + | XLAT_VAL_542 +# endif +# ifdef XLAT_VAL_543 + | XLAT_VAL_543 +# endif +# ifdef XLAT_VAL_544 + | XLAT_VAL_544 +# endif +# ifdef XLAT_VAL_545 + | XLAT_VAL_545 +# endif +# ifdef XLAT_VAL_546 + | XLAT_VAL_546 +# endif +# ifdef XLAT_VAL_547 + | XLAT_VAL_547 +# endif +# ifdef XLAT_VAL_548 + | XLAT_VAL_548 +# endif +# ifdef XLAT_VAL_549 + | XLAT_VAL_549 +# endif +# ifdef XLAT_VAL_550 + | XLAT_VAL_550 +# endif +# ifdef XLAT_VAL_551 + | XLAT_VAL_551 +# endif +# ifdef XLAT_VAL_552 + | XLAT_VAL_552 +# endif +# ifdef XLAT_VAL_553 + | XLAT_VAL_553 +# endif +# ifdef XLAT_VAL_554 + | XLAT_VAL_554 +# endif +# ifdef XLAT_VAL_555 + | XLAT_VAL_555 +# endif +# ifdef XLAT_VAL_556 + | XLAT_VAL_556 +# endif +# ifdef XLAT_VAL_557 + | XLAT_VAL_557 +# endif +# ifdef XLAT_VAL_558 + | XLAT_VAL_558 +# endif +# ifdef XLAT_VAL_559 + | XLAT_VAL_559 +# endif +# ifdef XLAT_VAL_560 + | XLAT_VAL_560 +# endif +# ifdef XLAT_VAL_561 + | XLAT_VAL_561 +# endif +# ifdef XLAT_VAL_562 + | XLAT_VAL_562 +# endif +# ifdef XLAT_VAL_563 + | XLAT_VAL_563 +# endif +# ifdef XLAT_VAL_564 + | XLAT_VAL_564 +# endif +# ifdef XLAT_VAL_565 + | XLAT_VAL_565 +# endif +# ifdef XLAT_VAL_566 + | XLAT_VAL_566 +# endif +# ifdef XLAT_VAL_567 + | XLAT_VAL_567 +# endif +# ifdef XLAT_VAL_568 + | XLAT_VAL_568 +# endif +# ifdef XLAT_VAL_569 + | XLAT_VAL_569 +# endif +# ifdef XLAT_VAL_570 + | XLAT_VAL_570 +# endif +# ifdef XLAT_VAL_571 + | XLAT_VAL_571 +# endif +# ifdef XLAT_VAL_572 + | XLAT_VAL_572 +# endif +# ifdef XLAT_VAL_573 + | XLAT_VAL_573 +# endif +# ifdef XLAT_VAL_574 + | XLAT_VAL_574 +# endif +# ifdef XLAT_VAL_575 + | XLAT_VAL_575 +# endif +# ifdef XLAT_VAL_576 + | XLAT_VAL_576 +# endif +# ifdef XLAT_VAL_577 + | XLAT_VAL_577 +# endif +# ifdef XLAT_VAL_578 + | XLAT_VAL_578 +# endif +# ifdef XLAT_VAL_579 + | XLAT_VAL_579 +# endif +# ifdef XLAT_VAL_580 + | XLAT_VAL_580 +# endif +# ifdef XLAT_VAL_581 + | XLAT_VAL_581 +# endif +# ifdef XLAT_VAL_582 + | XLAT_VAL_582 +# endif +# ifdef XLAT_VAL_583 + | XLAT_VAL_583 +# endif +# ifdef XLAT_VAL_584 + | XLAT_VAL_584 +# endif +# ifdef XLAT_VAL_585 + | XLAT_VAL_585 +# endif +# ifdef XLAT_VAL_586 + | XLAT_VAL_586 +# endif +# ifdef XLAT_VAL_587 + | XLAT_VAL_587 +# endif +# ifdef XLAT_VAL_588 + | XLAT_VAL_588 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif +# ifdef XLAT_STR_41 + + sizeof(XLAT_STR_41) +# endif +# ifdef XLAT_STR_42 + + sizeof(XLAT_STR_42) +# endif +# ifdef XLAT_STR_43 + + sizeof(XLAT_STR_43) +# endif +# ifdef XLAT_STR_44 + + sizeof(XLAT_STR_44) +# endif +# ifdef XLAT_STR_45 + + sizeof(XLAT_STR_45) +# endif +# ifdef XLAT_STR_46 + + sizeof(XLAT_STR_46) +# endif +# ifdef XLAT_STR_47 + + sizeof(XLAT_STR_47) +# endif +# ifdef XLAT_STR_48 + + sizeof(XLAT_STR_48) +# endif +# ifdef XLAT_STR_49 + + sizeof(XLAT_STR_49) +# endif +# ifdef XLAT_STR_50 + + sizeof(XLAT_STR_50) +# endif +# ifdef XLAT_STR_51 + + sizeof(XLAT_STR_51) +# endif +# ifdef XLAT_STR_52 + + sizeof(XLAT_STR_52) +# endif +# ifdef XLAT_STR_53 + + sizeof(XLAT_STR_53) +# endif +# ifdef XLAT_STR_54 + + sizeof(XLAT_STR_54) +# endif +# ifdef XLAT_STR_55 + + sizeof(XLAT_STR_55) +# endif +# ifdef XLAT_STR_56 + + sizeof(XLAT_STR_56) +# endif +# ifdef XLAT_STR_57 + + sizeof(XLAT_STR_57) +# endif +# ifdef XLAT_STR_58 + + sizeof(XLAT_STR_58) +# endif +# ifdef XLAT_STR_59 + + sizeof(XLAT_STR_59) +# endif +# ifdef XLAT_STR_60 + + sizeof(XLAT_STR_60) +# endif +# ifdef XLAT_STR_61 + + sizeof(XLAT_STR_61) +# endif +# ifdef XLAT_STR_62 + + sizeof(XLAT_STR_62) +# endif +# ifdef XLAT_STR_63 + + sizeof(XLAT_STR_63) +# endif +# ifdef XLAT_STR_64 + + sizeof(XLAT_STR_64) +# endif +# ifdef XLAT_STR_65 + + sizeof(XLAT_STR_65) +# endif +# ifdef XLAT_STR_66 + + sizeof(XLAT_STR_66) +# endif +# ifdef XLAT_STR_67 + + sizeof(XLAT_STR_67) +# endif +# ifdef XLAT_STR_68 + + sizeof(XLAT_STR_68) +# endif +# ifdef XLAT_STR_69 + + sizeof(XLAT_STR_69) +# endif +# ifdef XLAT_STR_70 + + sizeof(XLAT_STR_70) +# endif +# ifdef XLAT_STR_71 + + sizeof(XLAT_STR_71) +# endif +# ifdef XLAT_STR_72 + + sizeof(XLAT_STR_72) +# endif +# ifdef XLAT_STR_73 + + sizeof(XLAT_STR_73) +# endif +# ifdef XLAT_STR_74 + + sizeof(XLAT_STR_74) +# endif +# ifdef XLAT_STR_75 + + sizeof(XLAT_STR_75) +# endif +# ifdef XLAT_STR_76 + + sizeof(XLAT_STR_76) +# endif +# ifdef XLAT_STR_77 + + sizeof(XLAT_STR_77) +# endif +# ifdef XLAT_STR_78 + + sizeof(XLAT_STR_78) +# endif +# ifdef XLAT_STR_79 + + sizeof(XLAT_STR_79) +# endif +# ifdef XLAT_STR_80 + + sizeof(XLAT_STR_80) +# endif +# ifdef XLAT_STR_81 + + sizeof(XLAT_STR_81) +# endif +# ifdef XLAT_STR_82 + + sizeof(XLAT_STR_82) +# endif +# ifdef XLAT_STR_83 + + sizeof(XLAT_STR_83) +# endif +# ifdef XLAT_STR_84 + + sizeof(XLAT_STR_84) +# endif +# ifdef XLAT_STR_85 + + sizeof(XLAT_STR_85) +# endif +# ifdef XLAT_STR_86 + + sizeof(XLAT_STR_86) +# endif +# ifdef XLAT_STR_87 + + sizeof(XLAT_STR_87) +# endif +# ifdef XLAT_STR_88 + + sizeof(XLAT_STR_88) +# endif +# ifdef XLAT_STR_89 + + sizeof(XLAT_STR_89) +# endif +# ifdef XLAT_STR_90 + + sizeof(XLAT_STR_90) +# endif +# ifdef XLAT_STR_91 + + sizeof(XLAT_STR_91) +# endif +# ifdef XLAT_STR_92 + + sizeof(XLAT_STR_92) +# endif +# ifdef XLAT_STR_93 + + sizeof(XLAT_STR_93) +# endif +# ifdef XLAT_STR_94 + + sizeof(XLAT_STR_94) +# endif +# ifdef XLAT_STR_95 + + sizeof(XLAT_STR_95) +# endif +# ifdef XLAT_STR_96 + + sizeof(XLAT_STR_96) +# endif +# ifdef XLAT_STR_97 + + sizeof(XLAT_STR_97) +# endif +# ifdef XLAT_STR_98 + + sizeof(XLAT_STR_98) +# endif +# ifdef XLAT_STR_99 + + sizeof(XLAT_STR_99) +# endif +# ifdef XLAT_STR_100 + + sizeof(XLAT_STR_100) +# endif +# ifdef XLAT_STR_101 + + sizeof(XLAT_STR_101) +# endif +# ifdef XLAT_STR_102 + + sizeof(XLAT_STR_102) +# endif +# ifdef XLAT_STR_103 + + sizeof(XLAT_STR_103) +# endif +# ifdef XLAT_STR_104 + + sizeof(XLAT_STR_104) +# endif +# ifdef XLAT_STR_105 + + sizeof(XLAT_STR_105) +# endif +# ifdef XLAT_STR_106 + + sizeof(XLAT_STR_106) +# endif +# ifdef XLAT_STR_107 + + sizeof(XLAT_STR_107) +# endif +# ifdef XLAT_STR_108 + + sizeof(XLAT_STR_108) +# endif +# ifdef XLAT_STR_109 + + sizeof(XLAT_STR_109) +# endif +# ifdef XLAT_STR_110 + + sizeof(XLAT_STR_110) +# endif +# ifdef XLAT_STR_111 + + sizeof(XLAT_STR_111) +# endif +# ifdef XLAT_STR_112 + + sizeof(XLAT_STR_112) +# endif +# ifdef XLAT_STR_113 + + sizeof(XLAT_STR_113) +# endif +# ifdef XLAT_STR_114 + + sizeof(XLAT_STR_114) +# endif +# ifdef XLAT_STR_115 + + sizeof(XLAT_STR_115) +# endif +# ifdef XLAT_STR_116 + + sizeof(XLAT_STR_116) +# endif +# ifdef XLAT_STR_117 + + sizeof(XLAT_STR_117) +# endif +# ifdef XLAT_STR_118 + + sizeof(XLAT_STR_118) +# endif +# ifdef XLAT_STR_119 + + sizeof(XLAT_STR_119) +# endif +# ifdef XLAT_STR_120 + + sizeof(XLAT_STR_120) +# endif +# ifdef XLAT_STR_121 + + sizeof(XLAT_STR_121) +# endif +# ifdef XLAT_STR_122 + + sizeof(XLAT_STR_122) +# endif +# ifdef XLAT_STR_123 + + sizeof(XLAT_STR_123) +# endif +# ifdef XLAT_STR_124 + + sizeof(XLAT_STR_124) +# endif +# ifdef XLAT_STR_125 + + sizeof(XLAT_STR_125) +# endif +# ifdef XLAT_STR_126 + + sizeof(XLAT_STR_126) +# endif +# ifdef XLAT_STR_127 + + sizeof(XLAT_STR_127) +# endif +# ifdef XLAT_STR_128 + + sizeof(XLAT_STR_128) +# endif +# ifdef XLAT_STR_129 + + sizeof(XLAT_STR_129) +# endif +# ifdef XLAT_STR_130 + + sizeof(XLAT_STR_130) +# endif +# ifdef XLAT_STR_131 + + sizeof(XLAT_STR_131) +# endif +# ifdef XLAT_STR_132 + + sizeof(XLAT_STR_132) +# endif +# ifdef XLAT_STR_133 + + sizeof(XLAT_STR_133) +# endif +# ifdef XLAT_STR_134 + + sizeof(XLAT_STR_134) +# endif +# ifdef XLAT_STR_135 + + sizeof(XLAT_STR_135) +# endif +# ifdef XLAT_STR_136 + + sizeof(XLAT_STR_136) +# endif +# ifdef XLAT_STR_137 + + sizeof(XLAT_STR_137) +# endif +# ifdef XLAT_STR_138 + + sizeof(XLAT_STR_138) +# endif +# ifdef XLAT_STR_139 + + sizeof(XLAT_STR_139) +# endif +# ifdef XLAT_STR_140 + + sizeof(XLAT_STR_140) +# endif +# ifdef XLAT_STR_141 + + sizeof(XLAT_STR_141) +# endif +# ifdef XLAT_STR_142 + + sizeof(XLAT_STR_142) +# endif +# ifdef XLAT_STR_143 + + sizeof(XLAT_STR_143) +# endif +# ifdef XLAT_STR_144 + + sizeof(XLAT_STR_144) +# endif +# ifdef XLAT_STR_145 + + sizeof(XLAT_STR_145) +# endif +# ifdef XLAT_STR_146 + + sizeof(XLAT_STR_146) +# endif +# ifdef XLAT_STR_147 + + sizeof(XLAT_STR_147) +# endif +# ifdef XLAT_STR_148 + + sizeof(XLAT_STR_148) +# endif +# ifdef XLAT_STR_149 + + sizeof(XLAT_STR_149) +# endif +# ifdef XLAT_STR_150 + + sizeof(XLAT_STR_150) +# endif +# ifdef XLAT_STR_151 + + sizeof(XLAT_STR_151) +# endif +# ifdef XLAT_STR_152 + + sizeof(XLAT_STR_152) +# endif +# ifdef XLAT_STR_153 + + sizeof(XLAT_STR_153) +# endif +# ifdef XLAT_STR_154 + + sizeof(XLAT_STR_154) +# endif +# ifdef XLAT_STR_155 + + sizeof(XLAT_STR_155) +# endif +# ifdef XLAT_STR_156 + + sizeof(XLAT_STR_156) +# endif +# ifdef XLAT_STR_157 + + sizeof(XLAT_STR_157) +# endif +# ifdef XLAT_STR_158 + + sizeof(XLAT_STR_158) +# endif +# ifdef XLAT_STR_159 + + sizeof(XLAT_STR_159) +# endif +# ifdef XLAT_STR_160 + + sizeof(XLAT_STR_160) +# endif +# ifdef XLAT_STR_161 + + sizeof(XLAT_STR_161) +# endif +# ifdef XLAT_STR_162 + + sizeof(XLAT_STR_162) +# endif +# ifdef XLAT_STR_163 + + sizeof(XLAT_STR_163) +# endif +# ifdef XLAT_STR_164 + + sizeof(XLAT_STR_164) +# endif +# ifdef XLAT_STR_165 + + sizeof(XLAT_STR_165) +# endif +# ifdef XLAT_STR_166 + + sizeof(XLAT_STR_166) +# endif +# ifdef XLAT_STR_167 + + sizeof(XLAT_STR_167) +# endif +# ifdef XLAT_STR_168 + + sizeof(XLAT_STR_168) +# endif +# ifdef XLAT_STR_169 + + sizeof(XLAT_STR_169) +# endif +# ifdef XLAT_STR_170 + + sizeof(XLAT_STR_170) +# endif +# ifdef XLAT_STR_171 + + sizeof(XLAT_STR_171) +# endif +# ifdef XLAT_STR_172 + + sizeof(XLAT_STR_172) +# endif +# ifdef XLAT_STR_173 + + sizeof(XLAT_STR_173) +# endif +# ifdef XLAT_STR_174 + + sizeof(XLAT_STR_174) +# endif +# ifdef XLAT_STR_175 + + sizeof(XLAT_STR_175) +# endif +# ifdef XLAT_STR_176 + + sizeof(XLAT_STR_176) +# endif +# ifdef XLAT_STR_177 + + sizeof(XLAT_STR_177) +# endif +# ifdef XLAT_STR_178 + + sizeof(XLAT_STR_178) +# endif +# ifdef XLAT_STR_179 + + sizeof(XLAT_STR_179) +# endif +# ifdef XLAT_STR_180 + + sizeof(XLAT_STR_180) +# endif +# ifdef XLAT_STR_181 + + sizeof(XLAT_STR_181) +# endif +# ifdef XLAT_STR_182 + + sizeof(XLAT_STR_182) +# endif +# ifdef XLAT_STR_183 + + sizeof(XLAT_STR_183) +# endif +# ifdef XLAT_STR_184 + + sizeof(XLAT_STR_184) +# endif +# ifdef XLAT_STR_185 + + sizeof(XLAT_STR_185) +# endif +# ifdef XLAT_STR_186 + + sizeof(XLAT_STR_186) +# endif +# ifdef XLAT_STR_187 + + sizeof(XLAT_STR_187) +# endif +# ifdef XLAT_STR_188 + + sizeof(XLAT_STR_188) +# endif +# ifdef XLAT_STR_189 + + sizeof(XLAT_STR_189) +# endif +# ifdef XLAT_STR_190 + + sizeof(XLAT_STR_190) +# endif +# ifdef XLAT_STR_191 + + sizeof(XLAT_STR_191) +# endif +# ifdef XLAT_STR_192 + + sizeof(XLAT_STR_192) +# endif +# ifdef XLAT_STR_193 + + sizeof(XLAT_STR_193) +# endif +# ifdef XLAT_STR_194 + + sizeof(XLAT_STR_194) +# endif +# ifdef XLAT_STR_195 + + sizeof(XLAT_STR_195) +# endif +# ifdef XLAT_STR_196 + + sizeof(XLAT_STR_196) +# endif +# ifdef XLAT_STR_197 + + sizeof(XLAT_STR_197) +# endif +# ifdef XLAT_STR_198 + + sizeof(XLAT_STR_198) +# endif +# ifdef XLAT_STR_199 + + sizeof(XLAT_STR_199) +# endif +# ifdef XLAT_STR_200 + + sizeof(XLAT_STR_200) +# endif +# ifdef XLAT_STR_201 + + sizeof(XLAT_STR_201) +# endif +# ifdef XLAT_STR_202 + + sizeof(XLAT_STR_202) +# endif +# ifdef XLAT_STR_203 + + sizeof(XLAT_STR_203) +# endif +# ifdef XLAT_STR_204 + + sizeof(XLAT_STR_204) +# endif +# ifdef XLAT_STR_205 + + sizeof(XLAT_STR_205) +# endif +# ifdef XLAT_STR_206 + + sizeof(XLAT_STR_206) +# endif +# ifdef XLAT_STR_207 + + sizeof(XLAT_STR_207) +# endif +# ifdef XLAT_STR_208 + + sizeof(XLAT_STR_208) +# endif +# ifdef XLAT_STR_209 + + sizeof(XLAT_STR_209) +# endif +# ifdef XLAT_STR_210 + + sizeof(XLAT_STR_210) +# endif +# ifdef XLAT_STR_211 + + sizeof(XLAT_STR_211) +# endif +# ifdef XLAT_STR_212 + + sizeof(XLAT_STR_212) +# endif +# ifdef XLAT_STR_213 + + sizeof(XLAT_STR_213) +# endif +# ifdef XLAT_STR_214 + + sizeof(XLAT_STR_214) +# endif +# ifdef XLAT_STR_215 + + sizeof(XLAT_STR_215) +# endif +# ifdef XLAT_STR_216 + + sizeof(XLAT_STR_216) +# endif +# ifdef XLAT_STR_217 + + sizeof(XLAT_STR_217) +# endif +# ifdef XLAT_STR_218 + + sizeof(XLAT_STR_218) +# endif +# ifdef XLAT_STR_219 + + sizeof(XLAT_STR_219) +# endif +# ifdef XLAT_STR_220 + + sizeof(XLAT_STR_220) +# endif +# ifdef XLAT_STR_221 + + sizeof(XLAT_STR_221) +# endif +# ifdef XLAT_STR_222 + + sizeof(XLAT_STR_222) +# endif +# ifdef XLAT_STR_223 + + sizeof(XLAT_STR_223) +# endif +# ifdef XLAT_STR_224 + + sizeof(XLAT_STR_224) +# endif +# ifdef XLAT_STR_225 + + sizeof(XLAT_STR_225) +# endif +# ifdef XLAT_STR_226 + + sizeof(XLAT_STR_226) +# endif +# ifdef XLAT_STR_227 + + sizeof(XLAT_STR_227) +# endif +# ifdef XLAT_STR_228 + + sizeof(XLAT_STR_228) +# endif +# ifdef XLAT_STR_229 + + sizeof(XLAT_STR_229) +# endif +# ifdef XLAT_STR_230 + + sizeof(XLAT_STR_230) +# endif +# ifdef XLAT_STR_231 + + sizeof(XLAT_STR_231) +# endif +# ifdef XLAT_STR_232 + + sizeof(XLAT_STR_232) +# endif +# ifdef XLAT_STR_233 + + sizeof(XLAT_STR_233) +# endif +# ifdef XLAT_STR_234 + + sizeof(XLAT_STR_234) +# endif +# ifdef XLAT_STR_235 + + sizeof(XLAT_STR_235) +# endif +# ifdef XLAT_STR_236 + + sizeof(XLAT_STR_236) +# endif +# ifdef XLAT_STR_237 + + sizeof(XLAT_STR_237) +# endif +# ifdef XLAT_STR_238 + + sizeof(XLAT_STR_238) +# endif +# ifdef XLAT_STR_239 + + sizeof(XLAT_STR_239) +# endif +# ifdef XLAT_STR_240 + + sizeof(XLAT_STR_240) +# endif +# ifdef XLAT_STR_241 + + sizeof(XLAT_STR_241) +# endif +# ifdef XLAT_STR_242 + + sizeof(XLAT_STR_242) +# endif +# ifdef XLAT_STR_243 + + sizeof(XLAT_STR_243) +# endif +# ifdef XLAT_STR_244 + + sizeof(XLAT_STR_244) +# endif +# ifdef XLAT_STR_245 + + sizeof(XLAT_STR_245) +# endif +# ifdef XLAT_STR_246 + + sizeof(XLAT_STR_246) +# endif +# ifdef XLAT_STR_247 + + sizeof(XLAT_STR_247) +# endif +# ifdef XLAT_STR_248 + + sizeof(XLAT_STR_248) +# endif +# ifdef XLAT_STR_249 + + sizeof(XLAT_STR_249) +# endif +# ifdef XLAT_STR_250 + + sizeof(XLAT_STR_250) +# endif +# ifdef XLAT_STR_251 + + sizeof(XLAT_STR_251) +# endif +# ifdef XLAT_STR_252 + + sizeof(XLAT_STR_252) +# endif +# ifdef XLAT_STR_253 + + sizeof(XLAT_STR_253) +# endif +# ifdef XLAT_STR_254 + + sizeof(XLAT_STR_254) +# endif +# ifdef XLAT_STR_255 + + sizeof(XLAT_STR_255) +# endif +# ifdef XLAT_STR_256 + + sizeof(XLAT_STR_256) +# endif +# ifdef XLAT_STR_257 + + sizeof(XLAT_STR_257) +# endif +# ifdef XLAT_STR_258 + + sizeof(XLAT_STR_258) +# endif +# ifdef XLAT_STR_259 + + sizeof(XLAT_STR_259) +# endif +# ifdef XLAT_STR_260 + + sizeof(XLAT_STR_260) +# endif +# ifdef XLAT_STR_261 + + sizeof(XLAT_STR_261) +# endif +# ifdef XLAT_STR_262 + + sizeof(XLAT_STR_262) +# endif +# ifdef XLAT_STR_263 + + sizeof(XLAT_STR_263) +# endif +# ifdef XLAT_STR_264 + + sizeof(XLAT_STR_264) +# endif +# ifdef XLAT_STR_265 + + sizeof(XLAT_STR_265) +# endif +# ifdef XLAT_STR_266 + + sizeof(XLAT_STR_266) +# endif +# ifdef XLAT_STR_267 + + sizeof(XLAT_STR_267) +# endif +# ifdef XLAT_STR_268 + + sizeof(XLAT_STR_268) +# endif +# ifdef XLAT_STR_269 + + sizeof(XLAT_STR_269) +# endif +# ifdef XLAT_STR_270 + + sizeof(XLAT_STR_270) +# endif +# ifdef XLAT_STR_271 + + sizeof(XLAT_STR_271) +# endif +# ifdef XLAT_STR_272 + + sizeof(XLAT_STR_272) +# endif +# ifdef XLAT_STR_273 + + sizeof(XLAT_STR_273) +# endif +# ifdef XLAT_STR_274 + + sizeof(XLAT_STR_274) +# endif +# ifdef XLAT_STR_275 + + sizeof(XLAT_STR_275) +# endif +# ifdef XLAT_STR_276 + + sizeof(XLAT_STR_276) +# endif +# ifdef XLAT_STR_277 + + sizeof(XLAT_STR_277) +# endif +# ifdef XLAT_STR_278 + + sizeof(XLAT_STR_278) +# endif +# ifdef XLAT_STR_279 + + sizeof(XLAT_STR_279) +# endif +# ifdef XLAT_STR_280 + + sizeof(XLAT_STR_280) +# endif +# ifdef XLAT_STR_281 + + sizeof(XLAT_STR_281) +# endif +# ifdef XLAT_STR_282 + + sizeof(XLAT_STR_282) +# endif +# ifdef XLAT_STR_283 + + sizeof(XLAT_STR_283) +# endif +# ifdef XLAT_STR_284 + + sizeof(XLAT_STR_284) +# endif +# ifdef XLAT_STR_285 + + sizeof(XLAT_STR_285) +# endif +# ifdef XLAT_STR_286 + + sizeof(XLAT_STR_286) +# endif +# ifdef XLAT_STR_287 + + sizeof(XLAT_STR_287) +# endif +# ifdef XLAT_STR_288 + + sizeof(XLAT_STR_288) +# endif +# ifdef XLAT_STR_289 + + sizeof(XLAT_STR_289) +# endif +# ifdef XLAT_STR_290 + + sizeof(XLAT_STR_290) +# endif +# ifdef XLAT_STR_291 + + sizeof(XLAT_STR_291) +# endif +# ifdef XLAT_STR_292 + + sizeof(XLAT_STR_292) +# endif +# ifdef XLAT_STR_293 + + sizeof(XLAT_STR_293) +# endif +# ifdef XLAT_STR_294 + + sizeof(XLAT_STR_294) +# endif +# ifdef XLAT_STR_295 + + sizeof(XLAT_STR_295) +# endif +# ifdef XLAT_STR_296 + + sizeof(XLAT_STR_296) +# endif +# ifdef XLAT_STR_297 + + sizeof(XLAT_STR_297) +# endif +# ifdef XLAT_STR_298 + + sizeof(XLAT_STR_298) +# endif +# ifdef XLAT_STR_299 + + sizeof(XLAT_STR_299) +# endif +# ifdef XLAT_STR_300 + + sizeof(XLAT_STR_300) +# endif +# ifdef XLAT_STR_301 + + sizeof(XLAT_STR_301) +# endif +# ifdef XLAT_STR_302 + + sizeof(XLAT_STR_302) +# endif +# ifdef XLAT_STR_303 + + sizeof(XLAT_STR_303) +# endif +# ifdef XLAT_STR_304 + + sizeof(XLAT_STR_304) +# endif +# ifdef XLAT_STR_305 + + sizeof(XLAT_STR_305) +# endif +# ifdef XLAT_STR_306 + + sizeof(XLAT_STR_306) +# endif +# ifdef XLAT_STR_307 + + sizeof(XLAT_STR_307) +# endif +# ifdef XLAT_STR_308 + + sizeof(XLAT_STR_308) +# endif +# ifdef XLAT_STR_309 + + sizeof(XLAT_STR_309) +# endif +# ifdef XLAT_STR_310 + + sizeof(XLAT_STR_310) +# endif +# ifdef XLAT_STR_311 + + sizeof(XLAT_STR_311) +# endif +# ifdef XLAT_STR_312 + + sizeof(XLAT_STR_312) +# endif +# ifdef XLAT_STR_313 + + sizeof(XLAT_STR_313) +# endif +# ifdef XLAT_STR_314 + + sizeof(XLAT_STR_314) +# endif +# ifdef XLAT_STR_315 + + sizeof(XLAT_STR_315) +# endif +# ifdef XLAT_STR_316 + + sizeof(XLAT_STR_316) +# endif +# ifdef XLAT_STR_317 + + sizeof(XLAT_STR_317) +# endif +# ifdef XLAT_STR_318 + + sizeof(XLAT_STR_318) +# endif +# ifdef XLAT_STR_319 + + sizeof(XLAT_STR_319) +# endif +# ifdef XLAT_STR_320 + + sizeof(XLAT_STR_320) +# endif +# ifdef XLAT_STR_321 + + sizeof(XLAT_STR_321) +# endif +# ifdef XLAT_STR_322 + + sizeof(XLAT_STR_322) +# endif +# ifdef XLAT_STR_323 + + sizeof(XLAT_STR_323) +# endif +# ifdef XLAT_STR_324 + + sizeof(XLAT_STR_324) +# endif +# ifdef XLAT_STR_325 + + sizeof(XLAT_STR_325) +# endif +# ifdef XLAT_STR_326 + + sizeof(XLAT_STR_326) +# endif +# ifdef XLAT_STR_327 + + sizeof(XLAT_STR_327) +# endif +# ifdef XLAT_STR_328 + + sizeof(XLAT_STR_328) +# endif +# ifdef XLAT_STR_329 + + sizeof(XLAT_STR_329) +# endif +# ifdef XLAT_STR_330 + + sizeof(XLAT_STR_330) +# endif +# ifdef XLAT_STR_331 + + sizeof(XLAT_STR_331) +# endif +# ifdef XLAT_STR_332 + + sizeof(XLAT_STR_332) +# endif +# ifdef XLAT_STR_333 + + sizeof(XLAT_STR_333) +# endif +# ifdef XLAT_STR_334 + + sizeof(XLAT_STR_334) +# endif +# ifdef XLAT_STR_335 + + sizeof(XLAT_STR_335) +# endif +# ifdef XLAT_STR_336 + + sizeof(XLAT_STR_336) +# endif +# ifdef XLAT_STR_337 + + sizeof(XLAT_STR_337) +# endif +# ifdef XLAT_STR_338 + + sizeof(XLAT_STR_338) +# endif +# ifdef XLAT_STR_339 + + sizeof(XLAT_STR_339) +# endif +# ifdef XLAT_STR_340 + + sizeof(XLAT_STR_340) +# endif +# ifdef XLAT_STR_341 + + sizeof(XLAT_STR_341) +# endif +# ifdef XLAT_STR_342 + + sizeof(XLAT_STR_342) +# endif +# ifdef XLAT_STR_343 + + sizeof(XLAT_STR_343) +# endif +# ifdef XLAT_STR_344 + + sizeof(XLAT_STR_344) +# endif +# ifdef XLAT_STR_345 + + sizeof(XLAT_STR_345) +# endif +# ifdef XLAT_STR_346 + + sizeof(XLAT_STR_346) +# endif +# ifdef XLAT_STR_347 + + sizeof(XLAT_STR_347) +# endif +# ifdef XLAT_STR_348 + + sizeof(XLAT_STR_348) +# endif +# ifdef XLAT_STR_349 + + sizeof(XLAT_STR_349) +# endif +# ifdef XLAT_STR_350 + + sizeof(XLAT_STR_350) +# endif +# ifdef XLAT_STR_351 + + sizeof(XLAT_STR_351) +# endif +# ifdef XLAT_STR_352 + + sizeof(XLAT_STR_352) +# endif +# ifdef XLAT_STR_353 + + sizeof(XLAT_STR_353) +# endif +# ifdef XLAT_STR_354 + + sizeof(XLAT_STR_354) +# endif +# ifdef XLAT_STR_355 + + sizeof(XLAT_STR_355) +# endif +# ifdef XLAT_STR_356 + + sizeof(XLAT_STR_356) +# endif +# ifdef XLAT_STR_357 + + sizeof(XLAT_STR_357) +# endif +# ifdef XLAT_STR_358 + + sizeof(XLAT_STR_358) +# endif +# ifdef XLAT_STR_359 + + sizeof(XLAT_STR_359) +# endif +# ifdef XLAT_STR_360 + + sizeof(XLAT_STR_360) +# endif +# ifdef XLAT_STR_361 + + sizeof(XLAT_STR_361) +# endif +# ifdef XLAT_STR_362 + + sizeof(XLAT_STR_362) +# endif +# ifdef XLAT_STR_363 + + sizeof(XLAT_STR_363) +# endif +# ifdef XLAT_STR_364 + + sizeof(XLAT_STR_364) +# endif +# ifdef XLAT_STR_365 + + sizeof(XLAT_STR_365) +# endif +# ifdef XLAT_STR_366 + + sizeof(XLAT_STR_366) +# endif +# ifdef XLAT_STR_367 + + sizeof(XLAT_STR_367) +# endif +# ifdef XLAT_STR_368 + + sizeof(XLAT_STR_368) +# endif +# ifdef XLAT_STR_369 + + sizeof(XLAT_STR_369) +# endif +# ifdef XLAT_STR_370 + + sizeof(XLAT_STR_370) +# endif +# ifdef XLAT_STR_371 + + sizeof(XLAT_STR_371) +# endif +# ifdef XLAT_STR_372 + + sizeof(XLAT_STR_372) +# endif +# ifdef XLAT_STR_373 + + sizeof(XLAT_STR_373) +# endif +# ifdef XLAT_STR_374 + + sizeof(XLAT_STR_374) +# endif +# ifdef XLAT_STR_375 + + sizeof(XLAT_STR_375) +# endif +# ifdef XLAT_STR_376 + + sizeof(XLAT_STR_376) +# endif +# ifdef XLAT_STR_377 + + sizeof(XLAT_STR_377) +# endif +# ifdef XLAT_STR_378 + + sizeof(XLAT_STR_378) +# endif +# ifdef XLAT_STR_379 + + sizeof(XLAT_STR_379) +# endif +# ifdef XLAT_STR_380 + + sizeof(XLAT_STR_380) +# endif +# ifdef XLAT_STR_381 + + sizeof(XLAT_STR_381) +# endif +# ifdef XLAT_STR_382 + + sizeof(XLAT_STR_382) +# endif +# ifdef XLAT_STR_383 + + sizeof(XLAT_STR_383) +# endif +# ifdef XLAT_STR_384 + + sizeof(XLAT_STR_384) +# endif +# ifdef XLAT_STR_385 + + sizeof(XLAT_STR_385) +# endif +# ifdef XLAT_STR_386 + + sizeof(XLAT_STR_386) +# endif +# ifdef XLAT_STR_387 + + sizeof(XLAT_STR_387) +# endif +# ifdef XLAT_STR_388 + + sizeof(XLAT_STR_388) +# endif +# ifdef XLAT_STR_389 + + sizeof(XLAT_STR_389) +# endif +# ifdef XLAT_STR_390 + + sizeof(XLAT_STR_390) +# endif +# ifdef XLAT_STR_391 + + sizeof(XLAT_STR_391) +# endif +# ifdef XLAT_STR_392 + + sizeof(XLAT_STR_392) +# endif +# ifdef XLAT_STR_393 + + sizeof(XLAT_STR_393) +# endif +# ifdef XLAT_STR_394 + + sizeof(XLAT_STR_394) +# endif +# ifdef XLAT_STR_395 + + sizeof(XLAT_STR_395) +# endif +# ifdef XLAT_STR_396 + + sizeof(XLAT_STR_396) +# endif +# ifdef XLAT_STR_397 + + sizeof(XLAT_STR_397) +# endif +# ifdef XLAT_STR_398 + + sizeof(XLAT_STR_398) +# endif +# ifdef XLAT_STR_399 + + sizeof(XLAT_STR_399) +# endif +# ifdef XLAT_STR_400 + + sizeof(XLAT_STR_400) +# endif +# ifdef XLAT_STR_401 + + sizeof(XLAT_STR_401) +# endif +# ifdef XLAT_STR_402 + + sizeof(XLAT_STR_402) +# endif +# ifdef XLAT_STR_403 + + sizeof(XLAT_STR_403) +# endif +# ifdef XLAT_STR_404 + + sizeof(XLAT_STR_404) +# endif +# ifdef XLAT_STR_405 + + sizeof(XLAT_STR_405) +# endif +# ifdef XLAT_STR_406 + + sizeof(XLAT_STR_406) +# endif +# ifdef XLAT_STR_407 + + sizeof(XLAT_STR_407) +# endif +# ifdef XLAT_STR_408 + + sizeof(XLAT_STR_408) +# endif +# ifdef XLAT_STR_409 + + sizeof(XLAT_STR_409) +# endif +# ifdef XLAT_STR_410 + + sizeof(XLAT_STR_410) +# endif +# ifdef XLAT_STR_411 + + sizeof(XLAT_STR_411) +# endif +# ifdef XLAT_STR_412 + + sizeof(XLAT_STR_412) +# endif +# ifdef XLAT_STR_413 + + sizeof(XLAT_STR_413) +# endif +# ifdef XLAT_STR_414 + + sizeof(XLAT_STR_414) +# endif +# ifdef XLAT_STR_415 + + sizeof(XLAT_STR_415) +# endif +# ifdef XLAT_STR_416 + + sizeof(XLAT_STR_416) +# endif +# ifdef XLAT_STR_417 + + sizeof(XLAT_STR_417) +# endif +# ifdef XLAT_STR_418 + + sizeof(XLAT_STR_418) +# endif +# ifdef XLAT_STR_419 + + sizeof(XLAT_STR_419) +# endif +# ifdef XLAT_STR_420 + + sizeof(XLAT_STR_420) +# endif +# ifdef XLAT_STR_421 + + sizeof(XLAT_STR_421) +# endif +# ifdef XLAT_STR_422 + + sizeof(XLAT_STR_422) +# endif +# ifdef XLAT_STR_423 + + sizeof(XLAT_STR_423) +# endif +# ifdef XLAT_STR_424 + + sizeof(XLAT_STR_424) +# endif +# ifdef XLAT_STR_425 + + sizeof(XLAT_STR_425) +# endif +# ifdef XLAT_STR_426 + + sizeof(XLAT_STR_426) +# endif +# ifdef XLAT_STR_427 + + sizeof(XLAT_STR_427) +# endif +# ifdef XLAT_STR_428 + + sizeof(XLAT_STR_428) +# endif +# ifdef XLAT_STR_429 + + sizeof(XLAT_STR_429) +# endif +# ifdef XLAT_STR_430 + + sizeof(XLAT_STR_430) +# endif +# ifdef XLAT_STR_431 + + sizeof(XLAT_STR_431) +# endif +# ifdef XLAT_STR_432 + + sizeof(XLAT_STR_432) +# endif +# ifdef XLAT_STR_433 + + sizeof(XLAT_STR_433) +# endif +# ifdef XLAT_STR_434 + + sizeof(XLAT_STR_434) +# endif +# ifdef XLAT_STR_435 + + sizeof(XLAT_STR_435) +# endif +# ifdef XLAT_STR_436 + + sizeof(XLAT_STR_436) +# endif +# ifdef XLAT_STR_437 + + sizeof(XLAT_STR_437) +# endif +# ifdef XLAT_STR_438 + + sizeof(XLAT_STR_438) +# endif +# ifdef XLAT_STR_439 + + sizeof(XLAT_STR_439) +# endif +# ifdef XLAT_STR_440 + + sizeof(XLAT_STR_440) +# endif +# ifdef XLAT_STR_441 + + sizeof(XLAT_STR_441) +# endif +# ifdef XLAT_STR_442 + + sizeof(XLAT_STR_442) +# endif +# ifdef XLAT_STR_443 + + sizeof(XLAT_STR_443) +# endif +# ifdef XLAT_STR_444 + + sizeof(XLAT_STR_444) +# endif +# ifdef XLAT_STR_445 + + sizeof(XLAT_STR_445) +# endif +# ifdef XLAT_STR_446 + + sizeof(XLAT_STR_446) +# endif +# ifdef XLAT_STR_447 + + sizeof(XLAT_STR_447) +# endif +# ifdef XLAT_STR_448 + + sizeof(XLAT_STR_448) +# endif +# ifdef XLAT_STR_449 + + sizeof(XLAT_STR_449) +# endif +# ifdef XLAT_STR_450 + + sizeof(XLAT_STR_450) +# endif +# ifdef XLAT_STR_451 + + sizeof(XLAT_STR_451) +# endif +# ifdef XLAT_STR_452 + + sizeof(XLAT_STR_452) +# endif +# ifdef XLAT_STR_453 + + sizeof(XLAT_STR_453) +# endif +# ifdef XLAT_STR_454 + + sizeof(XLAT_STR_454) +# endif +# ifdef XLAT_STR_455 + + sizeof(XLAT_STR_455) +# endif +# ifdef XLAT_STR_456 + + sizeof(XLAT_STR_456) +# endif +# ifdef XLAT_STR_457 + + sizeof(XLAT_STR_457) +# endif +# ifdef XLAT_STR_458 + + sizeof(XLAT_STR_458) +# endif +# ifdef XLAT_STR_459 + + sizeof(XLAT_STR_459) +# endif +# ifdef XLAT_STR_460 + + sizeof(XLAT_STR_460) +# endif +# ifdef XLAT_STR_461 + + sizeof(XLAT_STR_461) +# endif +# ifdef XLAT_STR_462 + + sizeof(XLAT_STR_462) +# endif +# ifdef XLAT_STR_463 + + sizeof(XLAT_STR_463) +# endif +# ifdef XLAT_STR_464 + + sizeof(XLAT_STR_464) +# endif +# ifdef XLAT_STR_465 + + sizeof(XLAT_STR_465) +# endif +# ifdef XLAT_STR_466 + + sizeof(XLAT_STR_466) +# endif +# ifdef XLAT_STR_467 + + sizeof(XLAT_STR_467) +# endif +# ifdef XLAT_STR_468 + + sizeof(XLAT_STR_468) +# endif +# ifdef XLAT_STR_469 + + sizeof(XLAT_STR_469) +# endif +# ifdef XLAT_STR_470 + + sizeof(XLAT_STR_470) +# endif +# ifdef XLAT_STR_471 + + sizeof(XLAT_STR_471) +# endif +# ifdef XLAT_STR_472 + + sizeof(XLAT_STR_472) +# endif +# ifdef XLAT_STR_473 + + sizeof(XLAT_STR_473) +# endif +# ifdef XLAT_STR_474 + + sizeof(XLAT_STR_474) +# endif +# ifdef XLAT_STR_475 + + sizeof(XLAT_STR_475) +# endif +# ifdef XLAT_STR_476 + + sizeof(XLAT_STR_476) +# endif +# ifdef XLAT_STR_477 + + sizeof(XLAT_STR_477) +# endif +# ifdef XLAT_STR_478 + + sizeof(XLAT_STR_478) +# endif +# ifdef XLAT_STR_479 + + sizeof(XLAT_STR_479) +# endif +# ifdef XLAT_STR_480 + + sizeof(XLAT_STR_480) +# endif +# ifdef XLAT_STR_481 + + sizeof(XLAT_STR_481) +# endif +# ifdef XLAT_STR_482 + + sizeof(XLAT_STR_482) +# endif +# ifdef XLAT_STR_483 + + sizeof(XLAT_STR_483) +# endif +# ifdef XLAT_STR_484 + + sizeof(XLAT_STR_484) +# endif +# ifdef XLAT_STR_485 + + sizeof(XLAT_STR_485) +# endif +# ifdef XLAT_STR_486 + + sizeof(XLAT_STR_486) +# endif +# ifdef XLAT_STR_487 + + sizeof(XLAT_STR_487) +# endif +# ifdef XLAT_STR_488 + + sizeof(XLAT_STR_488) +# endif +# ifdef XLAT_STR_489 + + sizeof(XLAT_STR_489) +# endif +# ifdef XLAT_STR_490 + + sizeof(XLAT_STR_490) +# endif +# ifdef XLAT_STR_491 + + sizeof(XLAT_STR_491) +# endif +# ifdef XLAT_STR_492 + + sizeof(XLAT_STR_492) +# endif +# ifdef XLAT_STR_493 + + sizeof(XLAT_STR_493) +# endif +# ifdef XLAT_STR_494 + + sizeof(XLAT_STR_494) +# endif +# ifdef XLAT_STR_495 + + sizeof(XLAT_STR_495) +# endif +# ifdef XLAT_STR_496 + + sizeof(XLAT_STR_496) +# endif +# ifdef XLAT_STR_497 + + sizeof(XLAT_STR_497) +# endif +# ifdef XLAT_STR_498 + + sizeof(XLAT_STR_498) +# endif +# ifdef XLAT_STR_499 + + sizeof(XLAT_STR_499) +# endif +# ifdef XLAT_STR_500 + + sizeof(XLAT_STR_500) +# endif +# ifdef XLAT_STR_501 + + sizeof(XLAT_STR_501) +# endif +# ifdef XLAT_STR_502 + + sizeof(XLAT_STR_502) +# endif +# ifdef XLAT_STR_503 + + sizeof(XLAT_STR_503) +# endif +# ifdef XLAT_STR_504 + + sizeof(XLAT_STR_504) +# endif +# ifdef XLAT_STR_505 + + sizeof(XLAT_STR_505) +# endif +# ifdef XLAT_STR_506 + + sizeof(XLAT_STR_506) +# endif +# ifdef XLAT_STR_507 + + sizeof(XLAT_STR_507) +# endif +# ifdef XLAT_STR_508 + + sizeof(XLAT_STR_508) +# endif +# ifdef XLAT_STR_509 + + sizeof(XLAT_STR_509) +# endif +# ifdef XLAT_STR_510 + + sizeof(XLAT_STR_510) +# endif +# ifdef XLAT_STR_511 + + sizeof(XLAT_STR_511) +# endif +# ifdef XLAT_STR_512 + + sizeof(XLAT_STR_512) +# endif +# ifdef XLAT_STR_513 + + sizeof(XLAT_STR_513) +# endif +# ifdef XLAT_STR_514 + + sizeof(XLAT_STR_514) +# endif +# ifdef XLAT_STR_515 + + sizeof(XLAT_STR_515) +# endif +# ifdef XLAT_STR_516 + + sizeof(XLAT_STR_516) +# endif +# ifdef XLAT_STR_517 + + sizeof(XLAT_STR_517) +# endif +# ifdef XLAT_STR_518 + + sizeof(XLAT_STR_518) +# endif +# ifdef XLAT_STR_519 + + sizeof(XLAT_STR_519) +# endif +# ifdef XLAT_STR_520 + + sizeof(XLAT_STR_520) +# endif +# ifdef XLAT_STR_521 + + sizeof(XLAT_STR_521) +# endif +# ifdef XLAT_STR_522 + + sizeof(XLAT_STR_522) +# endif +# ifdef XLAT_STR_523 + + sizeof(XLAT_STR_523) +# endif +# ifdef XLAT_STR_524 + + sizeof(XLAT_STR_524) +# endif +# ifdef XLAT_STR_525 + + sizeof(XLAT_STR_525) +# endif +# ifdef XLAT_STR_526 + + sizeof(XLAT_STR_526) +# endif +# ifdef XLAT_STR_527 + + sizeof(XLAT_STR_527) +# endif +# ifdef XLAT_STR_528 + + sizeof(XLAT_STR_528) +# endif +# ifdef XLAT_STR_529 + + sizeof(XLAT_STR_529) +# endif +# ifdef XLAT_STR_530 + + sizeof(XLAT_STR_530) +# endif +# ifdef XLAT_STR_531 + + sizeof(XLAT_STR_531) +# endif +# ifdef XLAT_STR_532 + + sizeof(XLAT_STR_532) +# endif +# ifdef XLAT_STR_533 + + sizeof(XLAT_STR_533) +# endif +# ifdef XLAT_STR_534 + + sizeof(XLAT_STR_534) +# endif +# ifdef XLAT_STR_535 + + sizeof(XLAT_STR_535) +# endif +# ifdef XLAT_STR_536 + + sizeof(XLAT_STR_536) +# endif +# ifdef XLAT_STR_537 + + sizeof(XLAT_STR_537) +# endif +# ifdef XLAT_STR_538 + + sizeof(XLAT_STR_538) +# endif +# ifdef XLAT_STR_539 + + sizeof(XLAT_STR_539) +# endif +# ifdef XLAT_STR_540 + + sizeof(XLAT_STR_540) +# endif +# ifdef XLAT_STR_541 + + sizeof(XLAT_STR_541) +# endif +# ifdef XLAT_STR_542 + + sizeof(XLAT_STR_542) +# endif +# ifdef XLAT_STR_543 + + sizeof(XLAT_STR_543) +# endif +# ifdef XLAT_STR_544 + + sizeof(XLAT_STR_544) +# endif +# ifdef XLAT_STR_545 + + sizeof(XLAT_STR_545) +# endif +# ifdef XLAT_STR_546 + + sizeof(XLAT_STR_546) +# endif +# ifdef XLAT_STR_547 + + sizeof(XLAT_STR_547) +# endif +# ifdef XLAT_STR_548 + + sizeof(XLAT_STR_548) +# endif +# ifdef XLAT_STR_549 + + sizeof(XLAT_STR_549) +# endif +# ifdef XLAT_STR_550 + + sizeof(XLAT_STR_550) +# endif +# ifdef XLAT_STR_551 + + sizeof(XLAT_STR_551) +# endif +# ifdef XLAT_STR_552 + + sizeof(XLAT_STR_552) +# endif +# ifdef XLAT_STR_553 + + sizeof(XLAT_STR_553) +# endif +# ifdef XLAT_STR_554 + + sizeof(XLAT_STR_554) +# endif +# ifdef XLAT_STR_555 + + sizeof(XLAT_STR_555) +# endif +# ifdef XLAT_STR_556 + + sizeof(XLAT_STR_556) +# endif +# ifdef XLAT_STR_557 + + sizeof(XLAT_STR_557) +# endif +# ifdef XLAT_STR_558 + + sizeof(XLAT_STR_558) +# endif +# ifdef XLAT_STR_559 + + sizeof(XLAT_STR_559) +# endif +# ifdef XLAT_STR_560 + + sizeof(XLAT_STR_560) +# endif +# ifdef XLAT_STR_561 + + sizeof(XLAT_STR_561) +# endif +# ifdef XLAT_STR_562 + + sizeof(XLAT_STR_562) +# endif +# ifdef XLAT_STR_563 + + sizeof(XLAT_STR_563) +# endif +# ifdef XLAT_STR_564 + + sizeof(XLAT_STR_564) +# endif +# ifdef XLAT_STR_565 + + sizeof(XLAT_STR_565) +# endif +# ifdef XLAT_STR_566 + + sizeof(XLAT_STR_566) +# endif +# ifdef XLAT_STR_567 + + sizeof(XLAT_STR_567) +# endif +# ifdef XLAT_STR_568 + + sizeof(XLAT_STR_568) +# endif +# ifdef XLAT_STR_569 + + sizeof(XLAT_STR_569) +# endif +# ifdef XLAT_STR_570 + + sizeof(XLAT_STR_570) +# endif +# ifdef XLAT_STR_571 + + sizeof(XLAT_STR_571) +# endif +# ifdef XLAT_STR_572 + + sizeof(XLAT_STR_572) +# endif +# ifdef XLAT_STR_573 + + sizeof(XLAT_STR_573) +# endif +# ifdef XLAT_STR_574 + + sizeof(XLAT_STR_574) +# endif +# ifdef XLAT_STR_575 + + sizeof(XLAT_STR_575) +# endif +# ifdef XLAT_STR_576 + + sizeof(XLAT_STR_576) +# endif +# ifdef XLAT_STR_577 + + sizeof(XLAT_STR_577) +# endif +# ifdef XLAT_STR_578 + + sizeof(XLAT_STR_578) +# endif +# ifdef XLAT_STR_579 + + sizeof(XLAT_STR_579) +# endif +# ifdef XLAT_STR_580 + + sizeof(XLAT_STR_580) +# endif +# ifdef XLAT_STR_581 + + sizeof(XLAT_STR_581) +# endif +# ifdef XLAT_STR_582 + + sizeof(XLAT_STR_582) +# endif +# ifdef XLAT_STR_583 + + sizeof(XLAT_STR_583) +# endif +# ifdef XLAT_STR_584 + + sizeof(XLAT_STR_584) +# endif +# ifdef XLAT_STR_585 + + sizeof(XLAT_STR_585) +# endif +# ifdef XLAT_STR_586 + + sizeof(XLAT_STR_586) +# endif +# ifdef XLAT_STR_587 + + sizeof(XLAT_STR_587) +# endif +# ifdef XLAT_STR_588 + + sizeof(XLAT_STR_588) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 +# undef XLAT_STR_41 +# undef XLAT_VAL_41 +# undef XLAT_STR_42 +# undef XLAT_VAL_42 +# undef XLAT_STR_43 +# undef XLAT_VAL_43 +# undef XLAT_STR_44 +# undef XLAT_VAL_44 +# undef XLAT_STR_45 +# undef XLAT_VAL_45 +# undef XLAT_STR_46 +# undef XLAT_VAL_46 +# undef XLAT_STR_47 +# undef XLAT_VAL_47 +# undef XLAT_STR_48 +# undef XLAT_VAL_48 +# undef XLAT_STR_49 +# undef XLAT_VAL_49 +# undef XLAT_STR_50 +# undef XLAT_VAL_50 +# undef XLAT_STR_51 +# undef XLAT_VAL_51 +# undef XLAT_STR_52 +# undef XLAT_VAL_52 +# undef XLAT_STR_53 +# undef XLAT_VAL_53 +# undef XLAT_STR_54 +# undef XLAT_VAL_54 +# undef XLAT_STR_55 +# undef XLAT_VAL_55 +# undef XLAT_STR_56 +# undef XLAT_VAL_56 +# undef XLAT_STR_57 +# undef XLAT_VAL_57 +# undef XLAT_STR_58 +# undef XLAT_VAL_58 +# undef XLAT_STR_59 +# undef XLAT_VAL_59 +# undef XLAT_STR_60 +# undef XLAT_VAL_60 +# undef XLAT_STR_61 +# undef XLAT_VAL_61 +# undef XLAT_STR_62 +# undef XLAT_VAL_62 +# undef XLAT_STR_63 +# undef XLAT_VAL_63 +# undef XLAT_STR_64 +# undef XLAT_VAL_64 +# undef XLAT_STR_65 +# undef XLAT_VAL_65 +# undef XLAT_STR_66 +# undef XLAT_VAL_66 +# undef XLAT_STR_67 +# undef XLAT_VAL_67 +# undef XLAT_STR_68 +# undef XLAT_VAL_68 +# undef XLAT_STR_69 +# undef XLAT_VAL_69 +# undef XLAT_STR_70 +# undef XLAT_VAL_70 +# undef XLAT_STR_71 +# undef XLAT_VAL_71 +# undef XLAT_STR_72 +# undef XLAT_VAL_72 +# undef XLAT_STR_73 +# undef XLAT_VAL_73 +# undef XLAT_STR_74 +# undef XLAT_VAL_74 +# undef XLAT_STR_75 +# undef XLAT_VAL_75 +# undef XLAT_STR_76 +# undef XLAT_VAL_76 +# undef XLAT_STR_77 +# undef XLAT_VAL_77 +# undef XLAT_STR_78 +# undef XLAT_VAL_78 +# undef XLAT_STR_79 +# undef XLAT_VAL_79 +# undef XLAT_STR_80 +# undef XLAT_VAL_80 +# undef XLAT_STR_81 +# undef XLAT_VAL_81 +# undef XLAT_STR_82 +# undef XLAT_VAL_82 +# undef XLAT_STR_83 +# undef XLAT_VAL_83 +# undef XLAT_STR_84 +# undef XLAT_VAL_84 +# undef XLAT_STR_85 +# undef XLAT_VAL_85 +# undef XLAT_STR_86 +# undef XLAT_VAL_86 +# undef XLAT_STR_87 +# undef XLAT_VAL_87 +# undef XLAT_STR_88 +# undef XLAT_VAL_88 +# undef XLAT_STR_89 +# undef XLAT_VAL_89 +# undef XLAT_STR_90 +# undef XLAT_VAL_90 +# undef XLAT_STR_91 +# undef XLAT_VAL_91 +# undef XLAT_STR_92 +# undef XLAT_VAL_92 +# undef XLAT_STR_93 +# undef XLAT_VAL_93 +# undef XLAT_STR_94 +# undef XLAT_VAL_94 +# undef XLAT_STR_95 +# undef XLAT_VAL_95 +# undef XLAT_STR_96 +# undef XLAT_VAL_96 +# undef XLAT_STR_97 +# undef XLAT_VAL_97 +# undef XLAT_STR_98 +# undef XLAT_VAL_98 +# undef XLAT_STR_99 +# undef XLAT_VAL_99 +# undef XLAT_STR_100 +# undef XLAT_VAL_100 +# undef XLAT_STR_101 +# undef XLAT_VAL_101 +# undef XLAT_STR_102 +# undef XLAT_VAL_102 +# undef XLAT_STR_103 +# undef XLAT_VAL_103 +# undef XLAT_STR_104 +# undef XLAT_VAL_104 +# undef XLAT_STR_105 +# undef XLAT_VAL_105 +# undef XLAT_STR_106 +# undef XLAT_VAL_106 +# undef XLAT_STR_107 +# undef XLAT_VAL_107 +# undef XLAT_STR_108 +# undef XLAT_VAL_108 +# undef XLAT_STR_109 +# undef XLAT_VAL_109 +# undef XLAT_STR_110 +# undef XLAT_VAL_110 +# undef XLAT_STR_111 +# undef XLAT_VAL_111 +# undef XLAT_STR_112 +# undef XLAT_VAL_112 +# undef XLAT_STR_113 +# undef XLAT_VAL_113 +# undef XLAT_STR_114 +# undef XLAT_VAL_114 +# undef XLAT_STR_115 +# undef XLAT_VAL_115 +# undef XLAT_STR_116 +# undef XLAT_VAL_116 +# undef XLAT_STR_117 +# undef XLAT_VAL_117 +# undef XLAT_STR_118 +# undef XLAT_VAL_118 +# undef XLAT_STR_119 +# undef XLAT_VAL_119 +# undef XLAT_STR_120 +# undef XLAT_VAL_120 +# undef XLAT_STR_121 +# undef XLAT_VAL_121 +# undef XLAT_STR_122 +# undef XLAT_VAL_122 +# undef XLAT_STR_123 +# undef XLAT_VAL_123 +# undef XLAT_STR_124 +# undef XLAT_VAL_124 +# undef XLAT_STR_125 +# undef XLAT_VAL_125 +# undef XLAT_STR_126 +# undef XLAT_VAL_126 +# undef XLAT_STR_127 +# undef XLAT_VAL_127 +# undef XLAT_STR_128 +# undef XLAT_VAL_128 +# undef XLAT_STR_129 +# undef XLAT_VAL_129 +# undef XLAT_STR_130 +# undef XLAT_VAL_130 +# undef XLAT_STR_131 +# undef XLAT_VAL_131 +# undef XLAT_STR_132 +# undef XLAT_VAL_132 +# undef XLAT_STR_133 +# undef XLAT_VAL_133 +# undef XLAT_STR_134 +# undef XLAT_VAL_134 +# undef XLAT_STR_135 +# undef XLAT_VAL_135 +# undef XLAT_STR_136 +# undef XLAT_VAL_136 +# undef XLAT_STR_137 +# undef XLAT_VAL_137 +# undef XLAT_STR_138 +# undef XLAT_VAL_138 +# undef XLAT_STR_139 +# undef XLAT_VAL_139 +# undef XLAT_STR_140 +# undef XLAT_VAL_140 +# undef XLAT_STR_141 +# undef XLAT_VAL_141 +# undef XLAT_STR_142 +# undef XLAT_VAL_142 +# undef XLAT_STR_143 +# undef XLAT_VAL_143 +# undef XLAT_STR_144 +# undef XLAT_VAL_144 +# undef XLAT_STR_145 +# undef XLAT_VAL_145 +# undef XLAT_STR_146 +# undef XLAT_VAL_146 +# undef XLAT_STR_147 +# undef XLAT_VAL_147 +# undef XLAT_STR_148 +# undef XLAT_VAL_148 +# undef XLAT_STR_149 +# undef XLAT_VAL_149 +# undef XLAT_STR_150 +# undef XLAT_VAL_150 +# undef XLAT_STR_151 +# undef XLAT_VAL_151 +# undef XLAT_STR_152 +# undef XLAT_VAL_152 +# undef XLAT_STR_153 +# undef XLAT_VAL_153 +# undef XLAT_STR_154 +# undef XLAT_VAL_154 +# undef XLAT_STR_155 +# undef XLAT_VAL_155 +# undef XLAT_STR_156 +# undef XLAT_VAL_156 +# undef XLAT_STR_157 +# undef XLAT_VAL_157 +# undef XLAT_STR_158 +# undef XLAT_VAL_158 +# undef XLAT_STR_159 +# undef XLAT_VAL_159 +# undef XLAT_STR_160 +# undef XLAT_VAL_160 +# undef XLAT_STR_161 +# undef XLAT_VAL_161 +# undef XLAT_STR_162 +# undef XLAT_VAL_162 +# undef XLAT_STR_163 +# undef XLAT_VAL_163 +# undef XLAT_STR_164 +# undef XLAT_VAL_164 +# undef XLAT_STR_165 +# undef XLAT_VAL_165 +# undef XLAT_STR_166 +# undef XLAT_VAL_166 +# undef XLAT_STR_167 +# undef XLAT_VAL_167 +# undef XLAT_STR_168 +# undef XLAT_VAL_168 +# undef XLAT_STR_169 +# undef XLAT_VAL_169 +# undef XLAT_STR_170 +# undef XLAT_VAL_170 +# undef XLAT_STR_171 +# undef XLAT_VAL_171 +# undef XLAT_STR_172 +# undef XLAT_VAL_172 +# undef XLAT_STR_173 +# undef XLAT_VAL_173 +# undef XLAT_STR_174 +# undef XLAT_VAL_174 +# undef XLAT_STR_175 +# undef XLAT_VAL_175 +# undef XLAT_STR_176 +# undef XLAT_VAL_176 +# undef XLAT_STR_177 +# undef XLAT_VAL_177 +# undef XLAT_STR_178 +# undef XLAT_VAL_178 +# undef XLAT_STR_179 +# undef XLAT_VAL_179 +# undef XLAT_STR_180 +# undef XLAT_VAL_180 +# undef XLAT_STR_181 +# undef XLAT_VAL_181 +# undef XLAT_STR_182 +# undef XLAT_VAL_182 +# undef XLAT_STR_183 +# undef XLAT_VAL_183 +# undef XLAT_STR_184 +# undef XLAT_VAL_184 +# undef XLAT_STR_185 +# undef XLAT_VAL_185 +# undef XLAT_STR_186 +# undef XLAT_VAL_186 +# undef XLAT_STR_187 +# undef XLAT_VAL_187 +# undef XLAT_STR_188 +# undef XLAT_VAL_188 +# undef XLAT_STR_189 +# undef XLAT_VAL_189 +# undef XLAT_STR_190 +# undef XLAT_VAL_190 +# undef XLAT_STR_191 +# undef XLAT_VAL_191 +# undef XLAT_STR_192 +# undef XLAT_VAL_192 +# undef XLAT_STR_193 +# undef XLAT_VAL_193 +# undef XLAT_STR_194 +# undef XLAT_VAL_194 +# undef XLAT_STR_195 +# undef XLAT_VAL_195 +# undef XLAT_STR_196 +# undef XLAT_VAL_196 +# undef XLAT_STR_197 +# undef XLAT_VAL_197 +# undef XLAT_STR_198 +# undef XLAT_VAL_198 +# undef XLAT_STR_199 +# undef XLAT_VAL_199 +# undef XLAT_STR_200 +# undef XLAT_VAL_200 +# undef XLAT_STR_201 +# undef XLAT_VAL_201 +# undef XLAT_STR_202 +# undef XLAT_VAL_202 +# undef XLAT_STR_203 +# undef XLAT_VAL_203 +# undef XLAT_STR_204 +# undef XLAT_VAL_204 +# undef XLAT_STR_205 +# undef XLAT_VAL_205 +# undef XLAT_STR_206 +# undef XLAT_VAL_206 +# undef XLAT_STR_207 +# undef XLAT_VAL_207 +# undef XLAT_STR_208 +# undef XLAT_VAL_208 +# undef XLAT_STR_209 +# undef XLAT_VAL_209 +# undef XLAT_STR_210 +# undef XLAT_VAL_210 +# undef XLAT_STR_211 +# undef XLAT_VAL_211 +# undef XLAT_STR_212 +# undef XLAT_VAL_212 +# undef XLAT_STR_213 +# undef XLAT_VAL_213 +# undef XLAT_STR_214 +# undef XLAT_VAL_214 +# undef XLAT_STR_215 +# undef XLAT_VAL_215 +# undef XLAT_STR_216 +# undef XLAT_VAL_216 +# undef XLAT_STR_217 +# undef XLAT_VAL_217 +# undef XLAT_STR_218 +# undef XLAT_VAL_218 +# undef XLAT_STR_219 +# undef XLAT_VAL_219 +# undef XLAT_STR_220 +# undef XLAT_VAL_220 +# undef XLAT_STR_221 +# undef XLAT_VAL_221 +# undef XLAT_STR_222 +# undef XLAT_VAL_222 +# undef XLAT_STR_223 +# undef XLAT_VAL_223 +# undef XLAT_STR_224 +# undef XLAT_VAL_224 +# undef XLAT_STR_225 +# undef XLAT_VAL_225 +# undef XLAT_STR_226 +# undef XLAT_VAL_226 +# undef XLAT_STR_227 +# undef XLAT_VAL_227 +# undef XLAT_STR_228 +# undef XLAT_VAL_228 +# undef XLAT_STR_229 +# undef XLAT_VAL_229 +# undef XLAT_STR_230 +# undef XLAT_VAL_230 +# undef XLAT_STR_231 +# undef XLAT_VAL_231 +# undef XLAT_STR_232 +# undef XLAT_VAL_232 +# undef XLAT_STR_233 +# undef XLAT_VAL_233 +# undef XLAT_STR_234 +# undef XLAT_VAL_234 +# undef XLAT_STR_235 +# undef XLAT_VAL_235 +# undef XLAT_STR_236 +# undef XLAT_VAL_236 +# undef XLAT_STR_237 +# undef XLAT_VAL_237 +# undef XLAT_STR_238 +# undef XLAT_VAL_238 +# undef XLAT_STR_239 +# undef XLAT_VAL_239 +# undef XLAT_STR_240 +# undef XLAT_VAL_240 +# undef XLAT_STR_241 +# undef XLAT_VAL_241 +# undef XLAT_STR_242 +# undef XLAT_VAL_242 +# undef XLAT_STR_243 +# undef XLAT_VAL_243 +# undef XLAT_STR_244 +# undef XLAT_VAL_244 +# undef XLAT_STR_245 +# undef XLAT_VAL_245 +# undef XLAT_STR_246 +# undef XLAT_VAL_246 +# undef XLAT_STR_247 +# undef XLAT_VAL_247 +# undef XLAT_STR_248 +# undef XLAT_VAL_248 +# undef XLAT_STR_249 +# undef XLAT_VAL_249 +# undef XLAT_STR_250 +# undef XLAT_VAL_250 +# undef XLAT_STR_251 +# undef XLAT_VAL_251 +# undef XLAT_STR_252 +# undef XLAT_VAL_252 +# undef XLAT_STR_253 +# undef XLAT_VAL_253 +# undef XLAT_STR_254 +# undef XLAT_VAL_254 +# undef XLAT_STR_255 +# undef XLAT_VAL_255 +# undef XLAT_STR_256 +# undef XLAT_VAL_256 +# undef XLAT_STR_257 +# undef XLAT_VAL_257 +# undef XLAT_STR_258 +# undef XLAT_VAL_258 +# undef XLAT_STR_259 +# undef XLAT_VAL_259 +# undef XLAT_STR_260 +# undef XLAT_VAL_260 +# undef XLAT_STR_261 +# undef XLAT_VAL_261 +# undef XLAT_STR_262 +# undef XLAT_VAL_262 +# undef XLAT_STR_263 +# undef XLAT_VAL_263 +# undef XLAT_STR_264 +# undef XLAT_VAL_264 +# undef XLAT_STR_265 +# undef XLAT_VAL_265 +# undef XLAT_STR_266 +# undef XLAT_VAL_266 +# undef XLAT_STR_267 +# undef XLAT_VAL_267 +# undef XLAT_STR_268 +# undef XLAT_VAL_268 +# undef XLAT_STR_269 +# undef XLAT_VAL_269 +# undef XLAT_STR_270 +# undef XLAT_VAL_270 +# undef XLAT_STR_271 +# undef XLAT_VAL_271 +# undef XLAT_STR_272 +# undef XLAT_VAL_272 +# undef XLAT_STR_273 +# undef XLAT_VAL_273 +# undef XLAT_STR_274 +# undef XLAT_VAL_274 +# undef XLAT_STR_275 +# undef XLAT_VAL_275 +# undef XLAT_STR_276 +# undef XLAT_VAL_276 +# undef XLAT_STR_277 +# undef XLAT_VAL_277 +# undef XLAT_STR_278 +# undef XLAT_VAL_278 +# undef XLAT_STR_279 +# undef XLAT_VAL_279 +# undef XLAT_STR_280 +# undef XLAT_VAL_280 +# undef XLAT_STR_281 +# undef XLAT_VAL_281 +# undef XLAT_STR_282 +# undef XLAT_VAL_282 +# undef XLAT_STR_283 +# undef XLAT_VAL_283 +# undef XLAT_STR_284 +# undef XLAT_VAL_284 +# undef XLAT_STR_285 +# undef XLAT_VAL_285 +# undef XLAT_STR_286 +# undef XLAT_VAL_286 +# undef XLAT_STR_287 +# undef XLAT_VAL_287 +# undef XLAT_STR_288 +# undef XLAT_VAL_288 +# undef XLAT_STR_289 +# undef XLAT_VAL_289 +# undef XLAT_STR_290 +# undef XLAT_VAL_290 +# undef XLAT_STR_291 +# undef XLAT_VAL_291 +# undef XLAT_STR_292 +# undef XLAT_VAL_292 +# undef XLAT_STR_293 +# undef XLAT_VAL_293 +# undef XLAT_STR_294 +# undef XLAT_VAL_294 +# undef XLAT_STR_295 +# undef XLAT_VAL_295 +# undef XLAT_STR_296 +# undef XLAT_VAL_296 +# undef XLAT_STR_297 +# undef XLAT_VAL_297 +# undef XLAT_STR_298 +# undef XLAT_VAL_298 +# undef XLAT_STR_299 +# undef XLAT_VAL_299 +# undef XLAT_STR_300 +# undef XLAT_VAL_300 +# undef XLAT_STR_301 +# undef XLAT_VAL_301 +# undef XLAT_STR_302 +# undef XLAT_VAL_302 +# undef XLAT_STR_303 +# undef XLAT_VAL_303 +# undef XLAT_STR_304 +# undef XLAT_VAL_304 +# undef XLAT_STR_305 +# undef XLAT_VAL_305 +# undef XLAT_STR_306 +# undef XLAT_VAL_306 +# undef XLAT_STR_307 +# undef XLAT_VAL_307 +# undef XLAT_STR_308 +# undef XLAT_VAL_308 +# undef XLAT_STR_309 +# undef XLAT_VAL_309 +# undef XLAT_STR_310 +# undef XLAT_VAL_310 +# undef XLAT_STR_311 +# undef XLAT_VAL_311 +# undef XLAT_STR_312 +# undef XLAT_VAL_312 +# undef XLAT_STR_313 +# undef XLAT_VAL_313 +# undef XLAT_STR_314 +# undef XLAT_VAL_314 +# undef XLAT_STR_315 +# undef XLAT_VAL_315 +# undef XLAT_STR_316 +# undef XLAT_VAL_316 +# undef XLAT_STR_317 +# undef XLAT_VAL_317 +# undef XLAT_STR_318 +# undef XLAT_VAL_318 +# undef XLAT_STR_319 +# undef XLAT_VAL_319 +# undef XLAT_STR_320 +# undef XLAT_VAL_320 +# undef XLAT_STR_321 +# undef XLAT_VAL_321 +# undef XLAT_STR_322 +# undef XLAT_VAL_322 +# undef XLAT_STR_323 +# undef XLAT_VAL_323 +# undef XLAT_STR_324 +# undef XLAT_VAL_324 +# undef XLAT_STR_325 +# undef XLAT_VAL_325 +# undef XLAT_STR_326 +# undef XLAT_VAL_326 +# undef XLAT_STR_327 +# undef XLAT_VAL_327 +# undef XLAT_STR_328 +# undef XLAT_VAL_328 +# undef XLAT_STR_329 +# undef XLAT_VAL_329 +# undef XLAT_STR_330 +# undef XLAT_VAL_330 +# undef XLAT_STR_331 +# undef XLAT_VAL_331 +# undef XLAT_STR_332 +# undef XLAT_VAL_332 +# undef XLAT_STR_333 +# undef XLAT_VAL_333 +# undef XLAT_STR_334 +# undef XLAT_VAL_334 +# undef XLAT_STR_335 +# undef XLAT_VAL_335 +# undef XLAT_STR_336 +# undef XLAT_VAL_336 +# undef XLAT_STR_337 +# undef XLAT_VAL_337 +# undef XLAT_STR_338 +# undef XLAT_VAL_338 +# undef XLAT_STR_339 +# undef XLAT_VAL_339 +# undef XLAT_STR_340 +# undef XLAT_VAL_340 +# undef XLAT_STR_341 +# undef XLAT_VAL_341 +# undef XLAT_STR_342 +# undef XLAT_VAL_342 +# undef XLAT_STR_343 +# undef XLAT_VAL_343 +# undef XLAT_STR_344 +# undef XLAT_VAL_344 +# undef XLAT_STR_345 +# undef XLAT_VAL_345 +# undef XLAT_STR_346 +# undef XLAT_VAL_346 +# undef XLAT_STR_347 +# undef XLAT_VAL_347 +# undef XLAT_STR_348 +# undef XLAT_VAL_348 +# undef XLAT_STR_349 +# undef XLAT_VAL_349 +# undef XLAT_STR_350 +# undef XLAT_VAL_350 +# undef XLAT_STR_351 +# undef XLAT_VAL_351 +# undef XLAT_STR_352 +# undef XLAT_VAL_352 +# undef XLAT_STR_353 +# undef XLAT_VAL_353 +# undef XLAT_STR_354 +# undef XLAT_VAL_354 +# undef XLAT_STR_355 +# undef XLAT_VAL_355 +# undef XLAT_STR_356 +# undef XLAT_VAL_356 +# undef XLAT_STR_357 +# undef XLAT_VAL_357 +# undef XLAT_STR_358 +# undef XLAT_VAL_358 +# undef XLAT_STR_359 +# undef XLAT_VAL_359 +# undef XLAT_STR_360 +# undef XLAT_VAL_360 +# undef XLAT_STR_361 +# undef XLAT_VAL_361 +# undef XLAT_STR_362 +# undef XLAT_VAL_362 +# undef XLAT_STR_363 +# undef XLAT_VAL_363 +# undef XLAT_STR_364 +# undef XLAT_VAL_364 +# undef XLAT_STR_365 +# undef XLAT_VAL_365 +# undef XLAT_STR_366 +# undef XLAT_VAL_366 +# undef XLAT_STR_367 +# undef XLAT_VAL_367 +# undef XLAT_STR_368 +# undef XLAT_VAL_368 +# undef XLAT_STR_369 +# undef XLAT_VAL_369 +# undef XLAT_STR_370 +# undef XLAT_VAL_370 +# undef XLAT_STR_371 +# undef XLAT_VAL_371 +# undef XLAT_STR_372 +# undef XLAT_VAL_372 +# undef XLAT_STR_373 +# undef XLAT_VAL_373 +# undef XLAT_STR_374 +# undef XLAT_VAL_374 +# undef XLAT_STR_375 +# undef XLAT_VAL_375 +# undef XLAT_STR_376 +# undef XLAT_VAL_376 +# undef XLAT_STR_377 +# undef XLAT_VAL_377 +# undef XLAT_STR_378 +# undef XLAT_VAL_378 +# undef XLAT_STR_379 +# undef XLAT_VAL_379 +# undef XLAT_STR_380 +# undef XLAT_VAL_380 +# undef XLAT_STR_381 +# undef XLAT_VAL_381 +# undef XLAT_STR_382 +# undef XLAT_VAL_382 +# undef XLAT_STR_383 +# undef XLAT_VAL_383 +# undef XLAT_STR_384 +# undef XLAT_VAL_384 +# undef XLAT_STR_385 +# undef XLAT_VAL_385 +# undef XLAT_STR_386 +# undef XLAT_VAL_386 +# undef XLAT_STR_387 +# undef XLAT_VAL_387 +# undef XLAT_STR_388 +# undef XLAT_VAL_388 +# undef XLAT_STR_389 +# undef XLAT_VAL_389 +# undef XLAT_STR_390 +# undef XLAT_VAL_390 +# undef XLAT_STR_391 +# undef XLAT_VAL_391 +# undef XLAT_STR_392 +# undef XLAT_VAL_392 +# undef XLAT_STR_393 +# undef XLAT_VAL_393 +# undef XLAT_STR_394 +# undef XLAT_VAL_394 +# undef XLAT_STR_395 +# undef XLAT_VAL_395 +# undef XLAT_STR_396 +# undef XLAT_VAL_396 +# undef XLAT_STR_397 +# undef XLAT_VAL_397 +# undef XLAT_STR_398 +# undef XLAT_VAL_398 +# undef XLAT_STR_399 +# undef XLAT_VAL_399 +# undef XLAT_STR_400 +# undef XLAT_VAL_400 +# undef XLAT_STR_401 +# undef XLAT_VAL_401 +# undef XLAT_STR_402 +# undef XLAT_VAL_402 +# undef XLAT_STR_403 +# undef XLAT_VAL_403 +# undef XLAT_STR_404 +# undef XLAT_VAL_404 +# undef XLAT_STR_405 +# undef XLAT_VAL_405 +# undef XLAT_STR_406 +# undef XLAT_VAL_406 +# undef XLAT_STR_407 +# undef XLAT_VAL_407 +# undef XLAT_STR_408 +# undef XLAT_VAL_408 +# undef XLAT_STR_409 +# undef XLAT_VAL_409 +# undef XLAT_STR_410 +# undef XLAT_VAL_410 +# undef XLAT_STR_411 +# undef XLAT_VAL_411 +# undef XLAT_STR_412 +# undef XLAT_VAL_412 +# undef XLAT_STR_413 +# undef XLAT_VAL_413 +# undef XLAT_STR_414 +# undef XLAT_VAL_414 +# undef XLAT_STR_415 +# undef XLAT_VAL_415 +# undef XLAT_STR_416 +# undef XLAT_VAL_416 +# undef XLAT_STR_417 +# undef XLAT_VAL_417 +# undef XLAT_STR_418 +# undef XLAT_VAL_418 +# undef XLAT_STR_419 +# undef XLAT_VAL_419 +# undef XLAT_STR_420 +# undef XLAT_VAL_420 +# undef XLAT_STR_421 +# undef XLAT_VAL_421 +# undef XLAT_STR_422 +# undef XLAT_VAL_422 +# undef XLAT_STR_423 +# undef XLAT_VAL_423 +# undef XLAT_STR_424 +# undef XLAT_VAL_424 +# undef XLAT_STR_425 +# undef XLAT_VAL_425 +# undef XLAT_STR_426 +# undef XLAT_VAL_426 +# undef XLAT_STR_427 +# undef XLAT_VAL_427 +# undef XLAT_STR_428 +# undef XLAT_VAL_428 +# undef XLAT_STR_429 +# undef XLAT_VAL_429 +# undef XLAT_STR_430 +# undef XLAT_VAL_430 +# undef XLAT_STR_431 +# undef XLAT_VAL_431 +# undef XLAT_STR_432 +# undef XLAT_VAL_432 +# undef XLAT_STR_433 +# undef XLAT_VAL_433 +# undef XLAT_STR_434 +# undef XLAT_VAL_434 +# undef XLAT_STR_435 +# undef XLAT_VAL_435 +# undef XLAT_STR_436 +# undef XLAT_VAL_436 +# undef XLAT_STR_437 +# undef XLAT_VAL_437 +# undef XLAT_STR_438 +# undef XLAT_VAL_438 +# undef XLAT_STR_439 +# undef XLAT_VAL_439 +# undef XLAT_STR_440 +# undef XLAT_VAL_440 +# undef XLAT_STR_441 +# undef XLAT_VAL_441 +# undef XLAT_STR_442 +# undef XLAT_VAL_442 +# undef XLAT_STR_443 +# undef XLAT_VAL_443 +# undef XLAT_STR_444 +# undef XLAT_VAL_444 +# undef XLAT_STR_445 +# undef XLAT_VAL_445 +# undef XLAT_STR_446 +# undef XLAT_VAL_446 +# undef XLAT_STR_447 +# undef XLAT_VAL_447 +# undef XLAT_STR_448 +# undef XLAT_VAL_448 +# undef XLAT_STR_449 +# undef XLAT_VAL_449 +# undef XLAT_STR_450 +# undef XLAT_VAL_450 +# undef XLAT_STR_451 +# undef XLAT_VAL_451 +# undef XLAT_STR_452 +# undef XLAT_VAL_452 +# undef XLAT_STR_453 +# undef XLAT_VAL_453 +# undef XLAT_STR_454 +# undef XLAT_VAL_454 +# undef XLAT_STR_455 +# undef XLAT_VAL_455 +# undef XLAT_STR_456 +# undef XLAT_VAL_456 +# undef XLAT_STR_457 +# undef XLAT_VAL_457 +# undef XLAT_STR_458 +# undef XLAT_VAL_458 +# undef XLAT_STR_459 +# undef XLAT_VAL_459 +# undef XLAT_STR_460 +# undef XLAT_VAL_460 +# undef XLAT_STR_461 +# undef XLAT_VAL_461 +# undef XLAT_STR_462 +# undef XLAT_VAL_462 +# undef XLAT_STR_463 +# undef XLAT_VAL_463 +# undef XLAT_STR_464 +# undef XLAT_VAL_464 +# undef XLAT_STR_465 +# undef XLAT_VAL_465 +# undef XLAT_STR_466 +# undef XLAT_VAL_466 +# undef XLAT_STR_467 +# undef XLAT_VAL_467 +# undef XLAT_STR_468 +# undef XLAT_VAL_468 +# undef XLAT_STR_469 +# undef XLAT_VAL_469 +# undef XLAT_STR_470 +# undef XLAT_VAL_470 +# undef XLAT_STR_471 +# undef XLAT_VAL_471 +# undef XLAT_STR_472 +# undef XLAT_VAL_472 +# undef XLAT_STR_473 +# undef XLAT_VAL_473 +# undef XLAT_STR_474 +# undef XLAT_VAL_474 +# undef XLAT_STR_475 +# undef XLAT_VAL_475 +# undef XLAT_STR_476 +# undef XLAT_VAL_476 +# undef XLAT_STR_477 +# undef XLAT_VAL_477 +# undef XLAT_STR_478 +# undef XLAT_VAL_478 +# undef XLAT_STR_479 +# undef XLAT_VAL_479 +# undef XLAT_STR_480 +# undef XLAT_VAL_480 +# undef XLAT_STR_481 +# undef XLAT_VAL_481 +# undef XLAT_STR_482 +# undef XLAT_VAL_482 +# undef XLAT_STR_483 +# undef XLAT_VAL_483 +# undef XLAT_STR_484 +# undef XLAT_VAL_484 +# undef XLAT_STR_485 +# undef XLAT_VAL_485 +# undef XLAT_STR_486 +# undef XLAT_VAL_486 +# undef XLAT_STR_487 +# undef XLAT_VAL_487 +# undef XLAT_STR_488 +# undef XLAT_VAL_488 +# undef XLAT_STR_489 +# undef XLAT_VAL_489 +# undef XLAT_STR_490 +# undef XLAT_VAL_490 +# undef XLAT_STR_491 +# undef XLAT_VAL_491 +# undef XLAT_STR_492 +# undef XLAT_VAL_492 +# undef XLAT_STR_493 +# undef XLAT_VAL_493 +# undef XLAT_STR_494 +# undef XLAT_VAL_494 +# undef XLAT_STR_495 +# undef XLAT_VAL_495 +# undef XLAT_STR_496 +# undef XLAT_VAL_496 +# undef XLAT_STR_497 +# undef XLAT_VAL_497 +# undef XLAT_STR_498 +# undef XLAT_VAL_498 +# undef XLAT_STR_499 +# undef XLAT_VAL_499 +# undef XLAT_STR_500 +# undef XLAT_VAL_500 +# undef XLAT_STR_501 +# undef XLAT_VAL_501 +# undef XLAT_STR_502 +# undef XLAT_VAL_502 +# undef XLAT_STR_503 +# undef XLAT_VAL_503 +# undef XLAT_STR_504 +# undef XLAT_VAL_504 +# undef XLAT_STR_505 +# undef XLAT_VAL_505 +# undef XLAT_STR_506 +# undef XLAT_VAL_506 +# undef XLAT_STR_507 +# undef XLAT_VAL_507 +# undef XLAT_STR_508 +# undef XLAT_VAL_508 +# undef XLAT_STR_509 +# undef XLAT_VAL_509 +# undef XLAT_STR_510 +# undef XLAT_VAL_510 +# undef XLAT_STR_511 +# undef XLAT_VAL_511 +# undef XLAT_STR_512 +# undef XLAT_VAL_512 +# undef XLAT_STR_513 +# undef XLAT_VAL_513 +# undef XLAT_STR_514 +# undef XLAT_VAL_514 +# undef XLAT_STR_515 +# undef XLAT_VAL_515 +# undef XLAT_STR_516 +# undef XLAT_VAL_516 +# undef XLAT_STR_517 +# undef XLAT_VAL_517 +# undef XLAT_STR_518 +# undef XLAT_VAL_518 +# undef XLAT_STR_519 +# undef XLAT_VAL_519 +# undef XLAT_STR_520 +# undef XLAT_VAL_520 +# undef XLAT_STR_521 +# undef XLAT_VAL_521 +# undef XLAT_STR_522 +# undef XLAT_VAL_522 +# undef XLAT_STR_523 +# undef XLAT_VAL_523 +# undef XLAT_STR_524 +# undef XLAT_VAL_524 +# undef XLAT_STR_525 +# undef XLAT_VAL_525 +# undef XLAT_STR_526 +# undef XLAT_VAL_526 +# undef XLAT_STR_527 +# undef XLAT_VAL_527 +# undef XLAT_STR_528 +# undef XLAT_VAL_528 +# undef XLAT_STR_529 +# undef XLAT_VAL_529 +# undef XLAT_STR_530 +# undef XLAT_VAL_530 +# undef XLAT_STR_531 +# undef XLAT_VAL_531 +# undef XLAT_STR_532 +# undef XLAT_VAL_532 +# undef XLAT_STR_533 +# undef XLAT_VAL_533 +# undef XLAT_STR_534 +# undef XLAT_VAL_534 +# undef XLAT_STR_535 +# undef XLAT_VAL_535 +# undef XLAT_STR_536 +# undef XLAT_VAL_536 +# undef XLAT_STR_537 +# undef XLAT_VAL_537 +# undef XLAT_STR_538 +# undef XLAT_VAL_538 +# undef XLAT_STR_539 +# undef XLAT_VAL_539 +# undef XLAT_STR_540 +# undef XLAT_VAL_540 +# undef XLAT_STR_541 +# undef XLAT_VAL_541 +# undef XLAT_STR_542 +# undef XLAT_VAL_542 +# undef XLAT_STR_543 +# undef XLAT_VAL_543 +# undef XLAT_STR_544 +# undef XLAT_VAL_544 +# undef XLAT_STR_545 +# undef XLAT_VAL_545 +# undef XLAT_STR_546 +# undef XLAT_VAL_546 +# undef XLAT_STR_547 +# undef XLAT_VAL_547 +# undef XLAT_STR_548 +# undef XLAT_VAL_548 +# undef XLAT_STR_549 +# undef XLAT_VAL_549 +# undef XLAT_STR_550 +# undef XLAT_VAL_550 +# undef XLAT_STR_551 +# undef XLAT_VAL_551 +# undef XLAT_STR_552 +# undef XLAT_VAL_552 +# undef XLAT_STR_553 +# undef XLAT_VAL_553 +# undef XLAT_STR_554 +# undef XLAT_VAL_554 +# undef XLAT_STR_555 +# undef XLAT_VAL_555 +# undef XLAT_STR_556 +# undef XLAT_VAL_556 +# undef XLAT_STR_557 +# undef XLAT_VAL_557 +# undef XLAT_STR_558 +# undef XLAT_VAL_558 +# undef XLAT_STR_559 +# undef XLAT_VAL_559 +# undef XLAT_STR_560 +# undef XLAT_VAL_560 +# undef XLAT_STR_561 +# undef XLAT_VAL_561 +# undef XLAT_STR_562 +# undef XLAT_VAL_562 +# undef XLAT_STR_563 +# undef XLAT_VAL_563 +# undef XLAT_STR_564 +# undef XLAT_VAL_564 +# undef XLAT_STR_565 +# undef XLAT_VAL_565 +# undef XLAT_STR_566 +# undef XLAT_VAL_566 +# undef XLAT_STR_567 +# undef XLAT_VAL_567 +# undef XLAT_STR_568 +# undef XLAT_VAL_568 +# undef XLAT_STR_569 +# undef XLAT_VAL_569 +# undef XLAT_STR_570 +# undef XLAT_VAL_570 +# undef XLAT_STR_571 +# undef XLAT_VAL_571 +# undef XLAT_STR_572 +# undef XLAT_VAL_572 +# undef XLAT_STR_573 +# undef XLAT_VAL_573 +# undef XLAT_STR_574 +# undef XLAT_VAL_574 +# undef XLAT_STR_575 +# undef XLAT_VAL_575 +# undef XLAT_STR_576 +# undef XLAT_VAL_576 +# undef XLAT_STR_577 +# undef XLAT_VAL_577 +# undef XLAT_STR_578 +# undef XLAT_VAL_578 +# undef XLAT_STR_579 +# undef XLAT_VAL_579 +# undef XLAT_STR_580 +# undef XLAT_VAL_580 +# undef XLAT_STR_581 +# undef XLAT_VAL_581 +# undef XLAT_STR_582 +# undef XLAT_VAL_582 +# undef XLAT_STR_583 +# undef XLAT_VAL_583 +# undef XLAT_STR_584 +# undef XLAT_VAL_584 +# undef XLAT_STR_585 +# undef XLAT_VAL_585 +# undef XLAT_STR_586 +# undef XLAT_VAL_586 +# undef XLAT_STR_587 +# undef XLAT_VAL_587 +# undef XLAT_STR_588 +# undef XLAT_VAL_588 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/evdev_keycode.in b/xlat/evdev_keycode.in index 08fb5d10..c2700c5f 100644 --- a/xlat/evdev_keycode.in +++ b/xlat/evdev_keycode.in @@ -525,6 +525,7 @@ KEY_APPSELECT 0x244 KEY_SCREENSAVER 0x245 KEY_VOICECOMMAND 0x246 KEY_ASSISTANT 0x247 +KEY_KBD_LAYOUT_NEXT 0x248 #ifndef STRACE_WORKAROUND_FOR_KEY_BRIGHTNESS_MIN # define STRACE_WORKAROUND_FOR_KEY_BRIGHTNESS_MIN @@ -583,6 +584,53 @@ KEY_SLOWREVERSE 0x276 KEY_DATA 0x277 KEY_ONSCREEN_KEYBOARD 0x278 +KEY_PRIVACY_SCREEN_TOGGLE 0x279 + +KEY_SELECTIVE_SCREENSHOT 0x27a + +KEY_MACRO1 0x290 +KEY_MACRO2 0x291 +KEY_MACRO3 0x292 +KEY_MACRO4 0x293 +KEY_MACRO5 0x294 +KEY_MACRO6 0x295 +KEY_MACRO7 0x296 +KEY_MACRO8 0x297 +KEY_MACRO9 0x298 +KEY_MACRO10 0x299 +KEY_MACRO11 0x29a +KEY_MACRO12 0x29b +KEY_MACRO13 0x29c +KEY_MACRO14 0x29d +KEY_MACRO15 0x29e +KEY_MACRO16 0x29f +KEY_MACRO17 0x2a0 +KEY_MACRO18 0x2a1 +KEY_MACRO19 0x2a2 +KEY_MACRO20 0x2a3 +KEY_MACRO21 0x2a4 +KEY_MACRO22 0x2a5 +KEY_MACRO23 0x2a6 +KEY_MACRO24 0x2a7 +KEY_MACRO25 0x2a8 +KEY_MACRO26 0x2a9 +KEY_MACRO27 0x2aa +KEY_MACRO28 0x2ab +KEY_MACRO29 0x2ac +KEY_MACRO30 0x2ad + +KEY_MACRO_RECORD_START 0x2b0 +KEY_MACRO_RECORD_STOP 0x2b1 +KEY_MACRO_PRESET_CYCLE 0x2b2 +KEY_MACRO_PRESET1 0x2b3 +KEY_MACRO_PRESET2 0x2b4 +KEY_MACRO_PRESET3 0x2b5 + +KEY_KBD_LCD_MENU1 0x2b8 +KEY_KBD_LCD_MENU2 0x2b9 +KEY_KBD_LCD_MENU3 0x2ba +KEY_KBD_LCD_MENU4 0x2bb +KEY_KBD_LCD_MENU5 0x2bc BTN_TRIGGER_HAPPY1 0x2c0 BTN_TRIGGER_HAPPY2 0x2c1 diff --git a/xlat/evdev_leds.h b/xlat/evdev_leds.h index 09dc0665..a405f336 100644 --- a/xlat/evdev_leds.h +++ b/xlat/evdev_leds.h @@ -89,22 +89,140 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat evdev_leds[] = { +static const struct xlat_data evdev_leds_xdata[] = { [LED_NUML] = XLAT(LED_NUML), + #define XLAT_VAL_0 ((unsigned) (LED_NUML)) + #define XLAT_STR_0 STRINGIFY(LED_NUML) [LED_CAPSL] = XLAT(LED_CAPSL), + #define XLAT_VAL_1 ((unsigned) (LED_CAPSL)) + #define XLAT_STR_1 STRINGIFY(LED_CAPSL) [LED_SCROLLL] = XLAT(LED_SCROLLL), + #define XLAT_VAL_2 ((unsigned) (LED_SCROLLL)) + #define XLAT_STR_2 STRINGIFY(LED_SCROLLL) [LED_COMPOSE] = XLAT(LED_COMPOSE), + #define XLAT_VAL_3 ((unsigned) (LED_COMPOSE)) + #define XLAT_STR_3 STRINGIFY(LED_COMPOSE) [LED_KANA] = XLAT(LED_KANA), + #define XLAT_VAL_4 ((unsigned) (LED_KANA)) + #define XLAT_STR_4 STRINGIFY(LED_KANA) [LED_SLEEP] = XLAT(LED_SLEEP), + #define XLAT_VAL_5 ((unsigned) (LED_SLEEP)) + #define XLAT_STR_5 STRINGIFY(LED_SLEEP) [LED_SUSPEND] = XLAT(LED_SUSPEND), + #define XLAT_VAL_6 ((unsigned) (LED_SUSPEND)) + #define XLAT_STR_6 STRINGIFY(LED_SUSPEND) [LED_MUTE] = XLAT(LED_MUTE), + #define XLAT_VAL_7 ((unsigned) (LED_MUTE)) + #define XLAT_STR_7 STRINGIFY(LED_MUTE) [LED_MISC] = XLAT(LED_MISC), + #define XLAT_VAL_8 ((unsigned) (LED_MISC)) + #define XLAT_STR_8 STRINGIFY(LED_MISC) [LED_MAIL] = XLAT(LED_MAIL), + #define XLAT_VAL_9 ((unsigned) (LED_MAIL)) + #define XLAT_STR_9 STRINGIFY(LED_MAIL) [LED_CHARGING] = XLAT(LED_CHARGING), - XLAT_END + #define XLAT_VAL_10 ((unsigned) (LED_CHARGING)) + #define XLAT_STR_10 STRINGIFY(LED_CHARGING) }; +static +const struct xlat evdev_leds[1] = { { + .data = evdev_leds_xdata, + .size = ARRAY_SIZE(evdev_leds_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/evdev_misc.h b/xlat/evdev_misc.h index 92c3879c..ac3645c9 100644 --- a/xlat/evdev_misc.h +++ b/xlat/evdev_misc.h @@ -54,17 +54,85 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat evdev_misc[] = { +static const struct xlat_data evdev_misc_xdata[] = { [MSC_SERIAL] = XLAT(MSC_SERIAL), + #define XLAT_VAL_0 ((unsigned) (MSC_SERIAL)) + #define XLAT_STR_0 STRINGIFY(MSC_SERIAL) [MSC_PULSELED] = XLAT(MSC_PULSELED), + #define XLAT_VAL_1 ((unsigned) (MSC_PULSELED)) + #define XLAT_STR_1 STRINGIFY(MSC_PULSELED) [MSC_GESTURE] = XLAT(MSC_GESTURE), + #define XLAT_VAL_2 ((unsigned) (MSC_GESTURE)) + #define XLAT_STR_2 STRINGIFY(MSC_GESTURE) [MSC_RAW] = XLAT(MSC_RAW), + #define XLAT_VAL_3 ((unsigned) (MSC_RAW)) + #define XLAT_STR_3 STRINGIFY(MSC_RAW) [MSC_SCAN] = XLAT(MSC_SCAN), + #define XLAT_VAL_4 ((unsigned) (MSC_SCAN)) + #define XLAT_STR_4 STRINGIFY(MSC_SCAN) [MSC_TIMESTAMP] = XLAT(MSC_TIMESTAMP), - XLAT_END + #define XLAT_VAL_5 ((unsigned) (MSC_TIMESTAMP)) + #define XLAT_STR_5 STRINGIFY(MSC_TIMESTAMP) }; +static +const struct xlat evdev_misc[1] = { { + .data = evdev_misc_xdata, + .size = ARRAY_SIZE(evdev_misc_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/evdev_mtslots.h b/xlat/evdev_mtslots.h index ec6ee61c..d7c826a0 100644 --- a/xlat/evdev_mtslots.h +++ b/xlat/evdev_mtslots.h @@ -3,65 +3,298 @@ #include "gcc_compat.h" #include "static_assert.h" - -#ifndef XLAT_MACROS_ONLY - -# ifdef IN_MPERS - -# error static const struct xlat evdev_mtslots in mpers mode - -# else - -static -const struct xlat evdev_mtslots[] = { #if defined(ABS_MT_SLOT) || (defined(HAVE_DECL_ABS_MT_SLOT) && HAVE_DECL_ABS_MT_SLOT) - XLAT(ABS_MT_SLOT), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ABS_MT_SLOT) == (0x2f), "ABS_MT_SLOT != 0x2f"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ABS_MT_SLOT 0x2f #endif #if defined(ABS_MT_TOUCH_MAJOR) || (defined(HAVE_DECL_ABS_MT_TOUCH_MAJOR) && HAVE_DECL_ABS_MT_TOUCH_MAJOR) - XLAT(ABS_MT_TOUCH_MAJOR), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ABS_MT_TOUCH_MAJOR) == (0x30), "ABS_MT_TOUCH_MAJOR != 0x30"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ABS_MT_TOUCH_MAJOR 0x30 #endif #if defined(ABS_MT_TOUCH_MINOR) || (defined(HAVE_DECL_ABS_MT_TOUCH_MINOR) && HAVE_DECL_ABS_MT_TOUCH_MINOR) - XLAT(ABS_MT_TOUCH_MINOR), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ABS_MT_TOUCH_MINOR) == (0x31), "ABS_MT_TOUCH_MINOR != 0x31"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ABS_MT_TOUCH_MINOR 0x31 #endif #if defined(ABS_MT_WIDTH_MAJOR) || (defined(HAVE_DECL_ABS_MT_WIDTH_MAJOR) && HAVE_DECL_ABS_MT_WIDTH_MAJOR) - XLAT(ABS_MT_WIDTH_MAJOR), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ABS_MT_WIDTH_MAJOR) == (0x32), "ABS_MT_WIDTH_MAJOR != 0x32"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ABS_MT_WIDTH_MAJOR 0x32 #endif #if defined(ABS_MT_WIDTH_MINOR) || (defined(HAVE_DECL_ABS_MT_WIDTH_MINOR) && HAVE_DECL_ABS_MT_WIDTH_MINOR) - XLAT(ABS_MT_WIDTH_MINOR), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ABS_MT_WIDTH_MINOR) == (0x33), "ABS_MT_WIDTH_MINOR != 0x33"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ABS_MT_WIDTH_MINOR 0x33 #endif #if defined(ABS_MT_ORIENTATION) || (defined(HAVE_DECL_ABS_MT_ORIENTATION) && HAVE_DECL_ABS_MT_ORIENTATION) - XLAT(ABS_MT_ORIENTATION), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ABS_MT_ORIENTATION) == (0x34), "ABS_MT_ORIENTATION != 0x34"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ABS_MT_ORIENTATION 0x34 #endif #if defined(ABS_MT_POSITION_X) || (defined(HAVE_DECL_ABS_MT_POSITION_X) && HAVE_DECL_ABS_MT_POSITION_X) - XLAT(ABS_MT_POSITION_X), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ABS_MT_POSITION_X) == (0x35), "ABS_MT_POSITION_X != 0x35"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ABS_MT_POSITION_X 0x35 #endif #if defined(ABS_MT_POSITION_Y) || (defined(HAVE_DECL_ABS_MT_POSITION_Y) && HAVE_DECL_ABS_MT_POSITION_Y) - XLAT(ABS_MT_POSITION_Y), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ABS_MT_POSITION_Y) == (0x36), "ABS_MT_POSITION_Y != 0x36"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ABS_MT_POSITION_Y 0x36 #endif #if defined(ABS_MT_TOOL_TYPE) || (defined(HAVE_DECL_ABS_MT_TOOL_TYPE) && HAVE_DECL_ABS_MT_TOOL_TYPE) - XLAT(ABS_MT_TOOL_TYPE), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ABS_MT_TOOL_TYPE) == (0x37), "ABS_MT_TOOL_TYPE != 0x37"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ABS_MT_TOOL_TYPE 0x37 #endif #if defined(ABS_MT_BLOB_ID) || (defined(HAVE_DECL_ABS_MT_BLOB_ID) && HAVE_DECL_ABS_MT_BLOB_ID) - XLAT(ABS_MT_BLOB_ID), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ABS_MT_BLOB_ID) == (0x38), "ABS_MT_BLOB_ID != 0x38"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ABS_MT_BLOB_ID 0x38 #endif #if defined(ABS_MT_TRACKING_ID) || (defined(HAVE_DECL_ABS_MT_TRACKING_ID) && HAVE_DECL_ABS_MT_TRACKING_ID) - XLAT(ABS_MT_TRACKING_ID), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ABS_MT_TRACKING_ID) == (0x39), "ABS_MT_TRACKING_ID != 0x39"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ABS_MT_TRACKING_ID 0x39 #endif #if defined(ABS_MT_PRESSURE) || (defined(HAVE_DECL_ABS_MT_PRESSURE) && HAVE_DECL_ABS_MT_PRESSURE) - XLAT(ABS_MT_PRESSURE), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ABS_MT_PRESSURE) == (0x3a), "ABS_MT_PRESSURE != 0x3a"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ABS_MT_PRESSURE 0x3a #endif #if defined(ABS_MT_DISTANCE) || (defined(HAVE_DECL_ABS_MT_DISTANCE) && HAVE_DECL_ABS_MT_DISTANCE) - XLAT(ABS_MT_DISTANCE), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ABS_MT_DISTANCE) == (0x3b), "ABS_MT_DISTANCE != 0x3b"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ABS_MT_DISTANCE 0x3b #endif #if defined(ABS_MT_TOOL_X) || (defined(HAVE_DECL_ABS_MT_TOOL_X) && HAVE_DECL_ABS_MT_TOOL_X) - XLAT(ABS_MT_TOOL_X), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ABS_MT_TOOL_X) == (0x3c), "ABS_MT_TOOL_X != 0x3c"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ABS_MT_TOOL_X 0x3c #endif #if defined(ABS_MT_TOOL_Y) || (defined(HAVE_DECL_ABS_MT_TOOL_Y) && HAVE_DECL_ABS_MT_TOOL_Y) - XLAT(ABS_MT_TOOL_Y), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ABS_MT_TOOL_Y) == (0x3d), "ABS_MT_TOOL_Y != 0x3d"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ABS_MT_TOOL_Y 0x3d #endif - XLAT_END + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat evdev_mtslots in mpers mode + +# else + +static const struct xlat_data evdev_mtslots_xdata[] = { + XLAT(ABS_MT_SLOT), + #define XLAT_VAL_0 ((unsigned) (ABS_MT_SLOT)) + #define XLAT_STR_0 STRINGIFY(ABS_MT_SLOT) + XLAT(ABS_MT_TOUCH_MAJOR), + #define XLAT_VAL_1 ((unsigned) (ABS_MT_TOUCH_MAJOR)) + #define XLAT_STR_1 STRINGIFY(ABS_MT_TOUCH_MAJOR) + XLAT(ABS_MT_TOUCH_MINOR), + #define XLAT_VAL_2 ((unsigned) (ABS_MT_TOUCH_MINOR)) + #define XLAT_STR_2 STRINGIFY(ABS_MT_TOUCH_MINOR) + XLAT(ABS_MT_WIDTH_MAJOR), + #define XLAT_VAL_3 ((unsigned) (ABS_MT_WIDTH_MAJOR)) + #define XLAT_STR_3 STRINGIFY(ABS_MT_WIDTH_MAJOR) + XLAT(ABS_MT_WIDTH_MINOR), + #define XLAT_VAL_4 ((unsigned) (ABS_MT_WIDTH_MINOR)) + #define XLAT_STR_4 STRINGIFY(ABS_MT_WIDTH_MINOR) + XLAT(ABS_MT_ORIENTATION), + #define XLAT_VAL_5 ((unsigned) (ABS_MT_ORIENTATION)) + #define XLAT_STR_5 STRINGIFY(ABS_MT_ORIENTATION) + XLAT(ABS_MT_POSITION_X), + #define XLAT_VAL_6 ((unsigned) (ABS_MT_POSITION_X)) + #define XLAT_STR_6 STRINGIFY(ABS_MT_POSITION_X) + XLAT(ABS_MT_POSITION_Y), + #define XLAT_VAL_7 ((unsigned) (ABS_MT_POSITION_Y)) + #define XLAT_STR_7 STRINGIFY(ABS_MT_POSITION_Y) + XLAT(ABS_MT_TOOL_TYPE), + #define XLAT_VAL_8 ((unsigned) (ABS_MT_TOOL_TYPE)) + #define XLAT_STR_8 STRINGIFY(ABS_MT_TOOL_TYPE) + XLAT(ABS_MT_BLOB_ID), + #define XLAT_VAL_9 ((unsigned) (ABS_MT_BLOB_ID)) + #define XLAT_STR_9 STRINGIFY(ABS_MT_BLOB_ID) + XLAT(ABS_MT_TRACKING_ID), + #define XLAT_VAL_10 ((unsigned) (ABS_MT_TRACKING_ID)) + #define XLAT_STR_10 STRINGIFY(ABS_MT_TRACKING_ID) + XLAT(ABS_MT_PRESSURE), + #define XLAT_VAL_11 ((unsigned) (ABS_MT_PRESSURE)) + #define XLAT_STR_11 STRINGIFY(ABS_MT_PRESSURE) + XLAT(ABS_MT_DISTANCE), + #define XLAT_VAL_12 ((unsigned) (ABS_MT_DISTANCE)) + #define XLAT_STR_12 STRINGIFY(ABS_MT_DISTANCE) + XLAT(ABS_MT_TOOL_X), + #define XLAT_VAL_13 ((unsigned) (ABS_MT_TOOL_X)) + #define XLAT_STR_13 STRINGIFY(ABS_MT_TOOL_X) + XLAT(ABS_MT_TOOL_Y), + #define XLAT_VAL_14 ((unsigned) (ABS_MT_TOOL_Y)) + #define XLAT_STR_14 STRINGIFY(ABS_MT_TOOL_Y) }; +static +const struct xlat evdev_mtslots[1] = { { + .data = evdev_mtslots_xdata, + .size = ARRAY_SIZE(evdev_mtslots_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/evdev_mtslots.in b/xlat/evdev_mtslots.in index eedf6885..f0e36b37 100644 --- a/xlat/evdev_mtslots.in +++ b/xlat/evdev_mtslots.in @@ -1,15 +1,16 @@ -ABS_MT_SLOT -ABS_MT_TOUCH_MAJOR -ABS_MT_TOUCH_MINOR -ABS_MT_WIDTH_MAJOR -ABS_MT_WIDTH_MINOR -ABS_MT_ORIENTATION -ABS_MT_POSITION_X -ABS_MT_POSITION_Y -ABS_MT_TOOL_TYPE -ABS_MT_BLOB_ID -ABS_MT_TRACKING_ID -ABS_MT_PRESSURE -ABS_MT_DISTANCE -ABS_MT_TOOL_X -ABS_MT_TOOL_Y +#sorted +ABS_MT_SLOT 0x2f +ABS_MT_TOUCH_MAJOR 0x30 +ABS_MT_TOUCH_MINOR 0x31 +ABS_MT_WIDTH_MAJOR 0x32 +ABS_MT_WIDTH_MINOR 0x33 +ABS_MT_ORIENTATION 0x34 +ABS_MT_POSITION_X 0x35 +ABS_MT_POSITION_Y 0x36 +ABS_MT_TOOL_TYPE 0x37 +ABS_MT_BLOB_ID 0x38 +ABS_MT_TRACKING_ID 0x39 +ABS_MT_PRESSURE 0x3a +ABS_MT_DISTANCE 0x3b +ABS_MT_TOOL_X 0x3c +ABS_MT_TOOL_Y 0x3d diff --git a/xlat/evdev_prop.h b/xlat/evdev_prop.h index ea872fbe..4fcb5699 100644 --- a/xlat/evdev_prop.h +++ b/xlat/evdev_prop.h @@ -61,18 +61,96 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat evdev_prop[] = { +static const struct xlat_data evdev_prop_xdata[] = { [INPUT_PROP_POINTER] = XLAT(INPUT_PROP_POINTER), + #define XLAT_VAL_0 ((unsigned) (INPUT_PROP_POINTER)) + #define XLAT_STR_0 STRINGIFY(INPUT_PROP_POINTER) [INPUT_PROP_DIRECT] = XLAT(INPUT_PROP_DIRECT), + #define XLAT_VAL_1 ((unsigned) (INPUT_PROP_DIRECT)) + #define XLAT_STR_1 STRINGIFY(INPUT_PROP_DIRECT) [INPUT_PROP_BUTTONPAD] = XLAT(INPUT_PROP_BUTTONPAD), + #define XLAT_VAL_2 ((unsigned) (INPUT_PROP_BUTTONPAD)) + #define XLAT_STR_2 STRINGIFY(INPUT_PROP_BUTTONPAD) [INPUT_PROP_SEMI_MT] = XLAT(INPUT_PROP_SEMI_MT), + #define XLAT_VAL_3 ((unsigned) (INPUT_PROP_SEMI_MT)) + #define XLAT_STR_3 STRINGIFY(INPUT_PROP_SEMI_MT) [INPUT_PROP_TOPBUTTONPAD] = XLAT(INPUT_PROP_TOPBUTTONPAD), + #define XLAT_VAL_4 ((unsigned) (INPUT_PROP_TOPBUTTONPAD)) + #define XLAT_STR_4 STRINGIFY(INPUT_PROP_TOPBUTTONPAD) [INPUT_PROP_POINTING_STICK] = XLAT(INPUT_PROP_POINTING_STICK), + #define XLAT_VAL_5 ((unsigned) (INPUT_PROP_POINTING_STICK)) + #define XLAT_STR_5 STRINGIFY(INPUT_PROP_POINTING_STICK) [INPUT_PROP_ACCELEROMETER] = XLAT(INPUT_PROP_ACCELEROMETER), - XLAT_END + #define XLAT_VAL_6 ((unsigned) (INPUT_PROP_ACCELEROMETER)) + #define XLAT_STR_6 STRINGIFY(INPUT_PROP_ACCELEROMETER) }; +static +const struct xlat evdev_prop[1] = { { + .data = evdev_prop_xdata, + .size = ARRAY_SIZE(evdev_prop_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/evdev_relative_axes.h b/xlat/evdev_relative_axes.h index 0c95784e..5dc43078 100644 --- a/xlat/evdev_relative_axes.h +++ b/xlat/evdev_relative_axes.h @@ -103,24 +103,162 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat evdev_relative_axes[] = { +static const struct xlat_data evdev_relative_axes_xdata[] = { [REL_X] = XLAT(REL_X), + #define XLAT_VAL_0 ((unsigned) (REL_X)) + #define XLAT_STR_0 STRINGIFY(REL_X) [REL_Y] = XLAT(REL_Y), + #define XLAT_VAL_1 ((unsigned) (REL_Y)) + #define XLAT_STR_1 STRINGIFY(REL_Y) [REL_Z] = XLAT(REL_Z), + #define XLAT_VAL_2 ((unsigned) (REL_Z)) + #define XLAT_STR_2 STRINGIFY(REL_Z) [REL_RX] = XLAT(REL_RX), + #define XLAT_VAL_3 ((unsigned) (REL_RX)) + #define XLAT_STR_3 STRINGIFY(REL_RX) [REL_RY] = XLAT(REL_RY), + #define XLAT_VAL_4 ((unsigned) (REL_RY)) + #define XLAT_STR_4 STRINGIFY(REL_RY) [REL_RZ] = XLAT(REL_RZ), + #define XLAT_VAL_5 ((unsigned) (REL_RZ)) + #define XLAT_STR_5 STRINGIFY(REL_RZ) [REL_HWHEEL] = XLAT(REL_HWHEEL), + #define XLAT_VAL_6 ((unsigned) (REL_HWHEEL)) + #define XLAT_STR_6 STRINGIFY(REL_HWHEEL) [REL_DIAL] = XLAT(REL_DIAL), + #define XLAT_VAL_7 ((unsigned) (REL_DIAL)) + #define XLAT_STR_7 STRINGIFY(REL_DIAL) [REL_WHEEL] = XLAT(REL_WHEEL), + #define XLAT_VAL_8 ((unsigned) (REL_WHEEL)) + #define XLAT_STR_8 STRINGIFY(REL_WHEEL) [REL_MISC] = XLAT(REL_MISC), + #define XLAT_VAL_9 ((unsigned) (REL_MISC)) + #define XLAT_STR_9 STRINGIFY(REL_MISC) [REL_RESERVED] = XLAT(REL_RESERVED), + #define XLAT_VAL_10 ((unsigned) (REL_RESERVED)) + #define XLAT_STR_10 STRINGIFY(REL_RESERVED) [REL_WHEEL_HI_RES] = XLAT(REL_WHEEL_HI_RES), + #define XLAT_VAL_11 ((unsigned) (REL_WHEEL_HI_RES)) + #define XLAT_STR_11 STRINGIFY(REL_WHEEL_HI_RES) [REL_HWHEEL_HI_RES] = XLAT(REL_HWHEEL_HI_RES), - XLAT_END + #define XLAT_VAL_12 ((unsigned) (REL_HWHEEL_HI_RES)) + #define XLAT_STR_12 STRINGIFY(REL_HWHEEL_HI_RES) }; +static +const struct xlat evdev_relative_axes[1] = { { + .data = evdev_relative_axes_xdata, + .size = ARRAY_SIZE(evdev_relative_axes_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/evdev_snd.h b/xlat/evdev_snd.h index 35d6c448..2c9f02ee 100644 --- a/xlat/evdev_snd.h +++ b/xlat/evdev_snd.h @@ -33,14 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat evdev_snd[] = { +static const struct xlat_data evdev_snd_xdata[] = { [SND_CLICK] = XLAT(SND_CLICK), + #define XLAT_VAL_0 ((unsigned) (SND_CLICK)) + #define XLAT_STR_0 STRINGIFY(SND_CLICK) [SND_BELL] = XLAT(SND_BELL), + #define XLAT_VAL_1 ((unsigned) (SND_BELL)) + #define XLAT_STR_1 STRINGIFY(SND_BELL) [SND_TONE] = XLAT(SND_TONE), - XLAT_END + #define XLAT_VAL_2 ((unsigned) (SND_TONE)) + #define XLAT_STR_2 STRINGIFY(SND_TONE) }; +static +const struct xlat evdev_snd[1] = { { + .data = evdev_snd_xdata, + .size = ARRAY_SIZE(evdev_snd_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/evdev_switch.h b/xlat/evdev_switch.h index d5aa9df9..0879d9e1 100644 --- a/xlat/evdev_switch.h +++ b/xlat/evdev_switch.h @@ -124,27 +124,195 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat evdev_switch[] = { +static const struct xlat_data evdev_switch_xdata[] = { [SW_LID] = XLAT(SW_LID), + #define XLAT_VAL_0 ((unsigned) (SW_LID)) + #define XLAT_STR_0 STRINGIFY(SW_LID) [SW_TABLET_MODE] = XLAT(SW_TABLET_MODE), + #define XLAT_VAL_1 ((unsigned) (SW_TABLET_MODE)) + #define XLAT_STR_1 STRINGIFY(SW_TABLET_MODE) [SW_HEADPHONE_INSERT] = XLAT(SW_HEADPHONE_INSERT), + #define XLAT_VAL_2 ((unsigned) (SW_HEADPHONE_INSERT)) + #define XLAT_STR_2 STRINGIFY(SW_HEADPHONE_INSERT) [SW_RFKILL_ALL] = XLAT(SW_RFKILL_ALL), + #define XLAT_VAL_3 ((unsigned) (SW_RFKILL_ALL)) + #define XLAT_STR_3 STRINGIFY(SW_RFKILL_ALL) [SW_MICROPHONE_INSERT] = XLAT(SW_MICROPHONE_INSERT), + #define XLAT_VAL_4 ((unsigned) (SW_MICROPHONE_INSERT)) + #define XLAT_STR_4 STRINGIFY(SW_MICROPHONE_INSERT) [SW_DOCK] = XLAT(SW_DOCK), + #define XLAT_VAL_5 ((unsigned) (SW_DOCK)) + #define XLAT_STR_5 STRINGIFY(SW_DOCK) [SW_LINEOUT_INSERT] = XLAT(SW_LINEOUT_INSERT), + #define XLAT_VAL_6 ((unsigned) (SW_LINEOUT_INSERT)) + #define XLAT_STR_6 STRINGIFY(SW_LINEOUT_INSERT) [SW_JACK_PHYSICAL_INSERT] = XLAT(SW_JACK_PHYSICAL_INSERT), + #define XLAT_VAL_7 ((unsigned) (SW_JACK_PHYSICAL_INSERT)) + #define XLAT_STR_7 STRINGIFY(SW_JACK_PHYSICAL_INSERT) [SW_VIDEOOUT_INSERT] = XLAT(SW_VIDEOOUT_INSERT), + #define XLAT_VAL_8 ((unsigned) (SW_VIDEOOUT_INSERT)) + #define XLAT_STR_8 STRINGIFY(SW_VIDEOOUT_INSERT) [SW_CAMERA_LENS_COVER] = XLAT(SW_CAMERA_LENS_COVER), + #define XLAT_VAL_9 ((unsigned) (SW_CAMERA_LENS_COVER)) + #define XLAT_STR_9 STRINGIFY(SW_CAMERA_LENS_COVER) [SW_KEYPAD_SLIDE] = XLAT(SW_KEYPAD_SLIDE), + #define XLAT_VAL_10 ((unsigned) (SW_KEYPAD_SLIDE)) + #define XLAT_STR_10 STRINGIFY(SW_KEYPAD_SLIDE) [SW_FRONT_PROXIMITY] = XLAT(SW_FRONT_PROXIMITY), + #define XLAT_VAL_11 ((unsigned) (SW_FRONT_PROXIMITY)) + #define XLAT_STR_11 STRINGIFY(SW_FRONT_PROXIMITY) [SW_ROTATE_LOCK] = XLAT(SW_ROTATE_LOCK), + #define XLAT_VAL_12 ((unsigned) (SW_ROTATE_LOCK)) + #define XLAT_STR_12 STRINGIFY(SW_ROTATE_LOCK) [SW_LINEIN_INSERT] = XLAT(SW_LINEIN_INSERT), + #define XLAT_VAL_13 ((unsigned) (SW_LINEIN_INSERT)) + #define XLAT_STR_13 STRINGIFY(SW_LINEIN_INSERT) [SW_MUTE_DEVICE] = XLAT(SW_MUTE_DEVICE), + #define XLAT_VAL_14 ((unsigned) (SW_MUTE_DEVICE)) + #define XLAT_STR_14 STRINGIFY(SW_MUTE_DEVICE) [SW_PEN_INSERTED] = XLAT(SW_PEN_INSERTED), - XLAT_END + #define XLAT_VAL_15 ((unsigned) (SW_PEN_INSERTED)) + #define XLAT_STR_15 STRINGIFY(SW_PEN_INSERTED) }; +static +const struct xlat evdev_switch[1] = { { + .data = evdev_switch_xdata, + .size = ARRAY_SIZE(evdev_switch_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/f_owner_types.h b/xlat/f_owner_types.h index 76598710..2afcb9cd 100644 --- a/xlat/f_owner_types.h +++ b/xlat/f_owner_types.h @@ -33,14 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat f_owner_types[] = { - XLAT(F_OWNER_TID), - XLAT(F_OWNER_PID), - XLAT(F_OWNER_PGRP), - XLAT_END +static const struct xlat_data f_owner_types_xdata[] = { + [F_OWNER_TID] = XLAT(F_OWNER_TID), + #define XLAT_VAL_0 ((unsigned) (F_OWNER_TID)) + #define XLAT_STR_0 STRINGIFY(F_OWNER_TID) + [F_OWNER_PID] = XLAT(F_OWNER_PID), + #define XLAT_VAL_1 ((unsigned) (F_OWNER_PID)) + #define XLAT_STR_1 STRINGIFY(F_OWNER_PID) + [F_OWNER_PGRP] = XLAT(F_OWNER_PGRP), + #define XLAT_VAL_2 ((unsigned) (F_OWNER_PGRP)) + #define XLAT_STR_2 STRINGIFY(F_OWNER_PGRP) }; +static +const struct xlat f_owner_types[1] = { { + .data = f_owner_types_xdata, + .size = ARRAY_SIZE(f_owner_types_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/f_owner_types.in b/xlat/f_owner_types.in index 2c8124d8..d1c0d397 100644 --- a/xlat/f_owner_types.in +++ b/xlat/f_owner_types.in @@ -1,3 +1,4 @@ +#value_indexed F_OWNER_TID 0 F_OWNER_PID 1 F_OWNER_PGRP 2 diff --git a/xlat/f_seals.h b/xlat/f_seals.h index 5f5a6b20..eab71603 100644 --- a/xlat/f_seals.h +++ b/xlat/f_seals.h @@ -47,16 +47,74 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat f_seals[] = { +static const struct xlat_data f_seals_xdata[] = { XLAT(F_SEAL_SEAL), + #define XLAT_VAL_0 ((unsigned) (F_SEAL_SEAL)) + #define XLAT_STR_0 STRINGIFY(F_SEAL_SEAL) XLAT(F_SEAL_SHRINK), + #define XLAT_VAL_1 ((unsigned) (F_SEAL_SHRINK)) + #define XLAT_STR_1 STRINGIFY(F_SEAL_SHRINK) XLAT(F_SEAL_GROW), + #define XLAT_VAL_2 ((unsigned) (F_SEAL_GROW)) + #define XLAT_STR_2 STRINGIFY(F_SEAL_GROW) XLAT(F_SEAL_WRITE), + #define XLAT_VAL_3 ((unsigned) (F_SEAL_WRITE)) + #define XLAT_STR_3 STRINGIFY(F_SEAL_WRITE) XLAT(F_SEAL_FUTURE_WRITE), - XLAT_END + #define XLAT_VAL_4 ((unsigned) (F_SEAL_FUTURE_WRITE)) + #define XLAT_STR_4 STRINGIFY(F_SEAL_FUTURE_WRITE) }; +static +const struct xlat f_seals[1] = { { + .data = f_seals_xdata, + .size = ARRAY_SIZE(f_seals_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/faccessat_flags.h b/xlat/faccessat_flags.h new file mode 100644 index 00000000..97855bb8 --- /dev/null +++ b/xlat/faccessat_flags.h @@ -0,0 +1,84 @@ +/* Generated by ./xlat/gen.sh from ./xlat/faccessat_flags.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined(AT_SYMLINK_NOFOLLOW) || (defined(HAVE_DECL_AT_SYMLINK_NOFOLLOW) && HAVE_DECL_AT_SYMLINK_NOFOLLOW) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AT_SYMLINK_NOFOLLOW) == (0x100), "AT_SYMLINK_NOFOLLOW != 0x100"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AT_SYMLINK_NOFOLLOW 0x100 +#endif +#if defined(AT_EACCESS) || (defined(HAVE_DECL_AT_EACCESS) && HAVE_DECL_AT_EACCESS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AT_EACCESS) == (0x200), "AT_EACCESS != 0x200"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AT_EACCESS 0x200 +#endif +#if defined(AT_EMPTY_PATH) || (defined(HAVE_DECL_AT_EMPTY_PATH) && HAVE_DECL_AT_EMPTY_PATH) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AT_EMPTY_PATH) == (0x1000), "AT_EMPTY_PATH != 0x1000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AT_EMPTY_PATH 0x1000 +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat faccessat_flags in mpers mode + +# else + +static const struct xlat_data faccessat_flags_xdata[] = { + XLAT(AT_SYMLINK_NOFOLLOW), + #define XLAT_VAL_0 ((unsigned) (AT_SYMLINK_NOFOLLOW)) + #define XLAT_STR_0 STRINGIFY(AT_SYMLINK_NOFOLLOW) + XLAT(AT_EACCESS), + #define XLAT_VAL_1 ((unsigned) (AT_EACCESS)) + #define XLAT_STR_1 STRINGIFY(AT_EACCESS) + XLAT(AT_EMPTY_PATH), + #define XLAT_VAL_2 ((unsigned) (AT_EMPTY_PATH)) + #define XLAT_STR_2 STRINGIFY(AT_EMPTY_PATH) +}; +static +const struct xlat faccessat_flags[1] = { { + .data = faccessat_flags_xdata, + .size = ARRAY_SIZE(faccessat_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/faccessat_flags.in b/xlat/faccessat_flags.in new file mode 100644 index 00000000..d20e8cbc --- /dev/null +++ b/xlat/faccessat_flags.in @@ -0,0 +1,3 @@ +AT_SYMLINK_NOFOLLOW 0x100 +AT_EACCESS 0x200 +AT_EMPTY_PATH 0x1000 diff --git a/xlat/falloc_flags.h b/xlat/falloc_flags.h index aaa7468a..7644f691 100644 --- a/xlat/falloc_flags.h +++ b/xlat/falloc_flags.h @@ -61,18 +61,96 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat falloc_flags[] = { +static const struct xlat_data falloc_flags_xdata[] = { XLAT(FALLOC_FL_KEEP_SIZE), + #define XLAT_VAL_0 ((unsigned) (FALLOC_FL_KEEP_SIZE)) + #define XLAT_STR_0 STRINGIFY(FALLOC_FL_KEEP_SIZE) XLAT(FALLOC_FL_PUNCH_HOLE), + #define XLAT_VAL_1 ((unsigned) (FALLOC_FL_PUNCH_HOLE)) + #define XLAT_STR_1 STRINGIFY(FALLOC_FL_PUNCH_HOLE) XLAT(FALLOC_FL_NO_HIDE_STALE), + #define XLAT_VAL_2 ((unsigned) (FALLOC_FL_NO_HIDE_STALE)) + #define XLAT_STR_2 STRINGIFY(FALLOC_FL_NO_HIDE_STALE) XLAT(FALLOC_FL_COLLAPSE_RANGE), + #define XLAT_VAL_3 ((unsigned) (FALLOC_FL_COLLAPSE_RANGE)) + #define XLAT_STR_3 STRINGIFY(FALLOC_FL_COLLAPSE_RANGE) XLAT(FALLOC_FL_ZERO_RANGE), + #define XLAT_VAL_4 ((unsigned) (FALLOC_FL_ZERO_RANGE)) + #define XLAT_STR_4 STRINGIFY(FALLOC_FL_ZERO_RANGE) XLAT(FALLOC_FL_INSERT_RANGE), + #define XLAT_VAL_5 ((unsigned) (FALLOC_FL_INSERT_RANGE)) + #define XLAT_STR_5 STRINGIFY(FALLOC_FL_INSERT_RANGE) XLAT(FALLOC_FL_UNSHARE_RANGE), - XLAT_END + #define XLAT_VAL_6 ((unsigned) (FALLOC_FL_UNSHARE_RANGE)) + #define XLAT_STR_6 STRINGIFY(FALLOC_FL_UNSHARE_RANGE) }; +static +const struct xlat falloc_flags[1] = { { + .data = falloc_flags_xdata, + .size = ARRAY_SIZE(falloc_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/fan_classes.h b/xlat/fan_classes.h index ff4ff95d..25bb16fe 100644 --- a/xlat/fan_classes.h +++ b/xlat/fan_classes.h @@ -33,14 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat fan_classes[] = { +static const struct xlat_data fan_classes_xdata[] = { XLAT(FAN_CLASS_NOTIF), + #define XLAT_VAL_0 ((unsigned) (FAN_CLASS_NOTIF)) + #define XLAT_STR_0 STRINGIFY(FAN_CLASS_NOTIF) XLAT(FAN_CLASS_CONTENT), + #define XLAT_VAL_1 ((unsigned) (FAN_CLASS_CONTENT)) + #define XLAT_STR_1 STRINGIFY(FAN_CLASS_CONTENT) XLAT(FAN_CLASS_PRE_CONTENT), - XLAT_END + #define XLAT_VAL_2 ((unsigned) (FAN_CLASS_PRE_CONTENT)) + #define XLAT_STR_2 STRINGIFY(FAN_CLASS_PRE_CONTENT) }; +static +const struct xlat fan_classes[1] = { { + .data = fan_classes_xdata, + .size = ARRAY_SIZE(fan_classes_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/fan_event_flags.h b/xlat/fan_event_flags.h index a5bd03c3..57bcd0d4 100644 --- a/xlat/fan_event_flags.h +++ b/xlat/fan_event_flags.h @@ -122,6 +122,13 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define FAN_OPEN_EXEC_PERM 0x00040000 #endif +#if defined(FAN_DIR_MODIFY) || (defined(HAVE_DECL_FAN_DIR_MODIFY) && HAVE_DECL_FAN_DIR_MODIFY) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((FAN_DIR_MODIFY) == (0x00080000), "FAN_DIR_MODIFY != 0x00080000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define FAN_DIR_MODIFY 0x00080000 +#endif #if defined(FAN_ONDIR) || (defined(HAVE_DECL_FAN_ONDIR) && HAVE_DECL_FAN_ONDIR) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((FAN_ONDIR) == (0x40000000), "FAN_ONDIR != 0x40000000"); @@ -145,30 +152,239 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat fan_event_flags[] = { +static const struct xlat_data fan_event_flags_xdata[] = { XLAT(FAN_ACCESS), + #define XLAT_VAL_0 ((unsigned) (FAN_ACCESS)) + #define XLAT_STR_0 STRINGIFY(FAN_ACCESS) XLAT(FAN_MODIFY), + #define XLAT_VAL_1 ((unsigned) (FAN_MODIFY)) + #define XLAT_STR_1 STRINGIFY(FAN_MODIFY) XLAT(FAN_ATTRIB), + #define XLAT_VAL_2 ((unsigned) (FAN_ATTRIB)) + #define XLAT_STR_2 STRINGIFY(FAN_ATTRIB) XLAT(FAN_CLOSE_WRITE), + #define XLAT_VAL_3 ((unsigned) (FAN_CLOSE_WRITE)) + #define XLAT_STR_3 STRINGIFY(FAN_CLOSE_WRITE) XLAT(FAN_CLOSE_NOWRITE), + #define XLAT_VAL_4 ((unsigned) (FAN_CLOSE_NOWRITE)) + #define XLAT_STR_4 STRINGIFY(FAN_CLOSE_NOWRITE) XLAT(FAN_OPEN), + #define XLAT_VAL_5 ((unsigned) (FAN_OPEN)) + #define XLAT_STR_5 STRINGIFY(FAN_OPEN) XLAT(FAN_MOVED_FROM), + #define XLAT_VAL_6 ((unsigned) (FAN_MOVED_FROM)) + #define XLAT_STR_6 STRINGIFY(FAN_MOVED_FROM) XLAT(FAN_MOVED_TO), + #define XLAT_VAL_7 ((unsigned) (FAN_MOVED_TO)) + #define XLAT_STR_7 STRINGIFY(FAN_MOVED_TO) XLAT(FAN_CREATE), + #define XLAT_VAL_8 ((unsigned) (FAN_CREATE)) + #define XLAT_STR_8 STRINGIFY(FAN_CREATE) XLAT(FAN_DELETE), + #define XLAT_VAL_9 ((unsigned) (FAN_DELETE)) + #define XLAT_STR_9 STRINGIFY(FAN_DELETE) XLAT(FAN_DELETE_SELF), + #define XLAT_VAL_10 ((unsigned) (FAN_DELETE_SELF)) + #define XLAT_STR_10 STRINGIFY(FAN_DELETE_SELF) XLAT(FAN_MOVE_SELF), + #define XLAT_VAL_11 ((unsigned) (FAN_MOVE_SELF)) + #define XLAT_STR_11 STRINGIFY(FAN_MOVE_SELF) XLAT(FAN_OPEN_EXEC), + #define XLAT_VAL_12 ((unsigned) (FAN_OPEN_EXEC)) + #define XLAT_STR_12 STRINGIFY(FAN_OPEN_EXEC) XLAT(FAN_Q_OVERFLOW), + #define XLAT_VAL_13 ((unsigned) (FAN_Q_OVERFLOW)) + #define XLAT_STR_13 STRINGIFY(FAN_Q_OVERFLOW) XLAT(FAN_OPEN_PERM), + #define XLAT_VAL_14 ((unsigned) (FAN_OPEN_PERM)) + #define XLAT_STR_14 STRINGIFY(FAN_OPEN_PERM) XLAT(FAN_ACCESS_PERM), + #define XLAT_VAL_15 ((unsigned) (FAN_ACCESS_PERM)) + #define XLAT_STR_15 STRINGIFY(FAN_ACCESS_PERM) XLAT(FAN_OPEN_EXEC_PERM), + #define XLAT_VAL_16 ((unsigned) (FAN_OPEN_EXEC_PERM)) + #define XLAT_STR_16 STRINGIFY(FAN_OPEN_EXEC_PERM) + XLAT(FAN_DIR_MODIFY), + #define XLAT_VAL_17 ((unsigned) (FAN_DIR_MODIFY)) + #define XLAT_STR_17 STRINGIFY(FAN_DIR_MODIFY) XLAT(FAN_ONDIR), + #define XLAT_VAL_18 ((unsigned) (FAN_ONDIR)) + #define XLAT_STR_18 STRINGIFY(FAN_ONDIR) XLAT(FAN_EVENT_ON_CHILD), - XLAT_END + #define XLAT_VAL_19 ((unsigned) (FAN_EVENT_ON_CHILD)) + #define XLAT_STR_19 STRINGIFY(FAN_EVENT_ON_CHILD) }; +static +const struct xlat fan_event_flags[1] = { { + .data = fan_event_flags_xdata, + .size = ARRAY_SIZE(fan_event_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/fan_event_flags.in b/xlat/fan_event_flags.in index 53ecdb69..210e2b12 100644 --- a/xlat/fan_event_flags.in +++ b/xlat/fan_event_flags.in @@ -15,5 +15,6 @@ FAN_Q_OVERFLOW 0x00004000 FAN_OPEN_PERM 0x00010000 FAN_ACCESS_PERM 0x00020000 FAN_OPEN_EXEC_PERM 0x00040000 +FAN_DIR_MODIFY 0x00080000 FAN_ONDIR 0x40000000 FAN_EVENT_ON_CHILD 0x08000000 diff --git a/xlat/fan_init_flags.h b/xlat/fan_init_flags.h index 2cb87e24..7fccbdb0 100644 --- a/xlat/fan_init_flags.h +++ b/xlat/fan_init_flags.h @@ -52,6 +52,20 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define FAN_REPORT_FID 0x00000200 #endif +#if defined(FAN_REPORT_DIR_FID) || (defined(HAVE_DECL_FAN_REPORT_DIR_FID) && HAVE_DECL_FAN_REPORT_DIR_FID) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((FAN_REPORT_DIR_FID) == (0x00000400), "FAN_REPORT_DIR_FID != 0x00000400"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define FAN_REPORT_DIR_FID 0x00000400 +#endif +#if defined(FAN_REPORT_NAME) || (defined(HAVE_DECL_FAN_REPORT_NAME) && HAVE_DECL_FAN_REPORT_NAME) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((FAN_REPORT_NAME) == (0x00000800), "FAN_REPORT_NAME != 0x00000800"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define FAN_REPORT_NAME 0x00000800 +#endif #ifndef XLAT_MACROS_ONLY @@ -61,18 +75,118 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat fan_init_flags[] = { +static const struct xlat_data fan_init_flags_xdata[] = { XLAT(FAN_CLOEXEC), + #define XLAT_VAL_0 ((unsigned) (FAN_CLOEXEC)) + #define XLAT_STR_0 STRINGIFY(FAN_CLOEXEC) XLAT(FAN_NONBLOCK), + #define XLAT_VAL_1 ((unsigned) (FAN_NONBLOCK)) + #define XLAT_STR_1 STRINGIFY(FAN_NONBLOCK) XLAT(FAN_UNLIMITED_QUEUE), + #define XLAT_VAL_2 ((unsigned) (FAN_UNLIMITED_QUEUE)) + #define XLAT_STR_2 STRINGIFY(FAN_UNLIMITED_QUEUE) XLAT(FAN_UNLIMITED_MARKS), + #define XLAT_VAL_3 ((unsigned) (FAN_UNLIMITED_MARKS)) + #define XLAT_STR_3 STRINGIFY(FAN_UNLIMITED_MARKS) XLAT(FAN_ENABLE_AUDIT), + #define XLAT_VAL_4 ((unsigned) (FAN_ENABLE_AUDIT)) + #define XLAT_STR_4 STRINGIFY(FAN_ENABLE_AUDIT) XLAT(FAN_REPORT_TID), + #define XLAT_VAL_5 ((unsigned) (FAN_REPORT_TID)) + #define XLAT_STR_5 STRINGIFY(FAN_REPORT_TID) XLAT(FAN_REPORT_FID), - XLAT_END + #define XLAT_VAL_6 ((unsigned) (FAN_REPORT_FID)) + #define XLAT_STR_6 STRINGIFY(FAN_REPORT_FID) + XLAT(FAN_REPORT_DIR_FID), + #define XLAT_VAL_7 ((unsigned) (FAN_REPORT_DIR_FID)) + #define XLAT_STR_7 STRINGIFY(FAN_REPORT_DIR_FID) + XLAT(FAN_REPORT_NAME), + #define XLAT_VAL_8 ((unsigned) (FAN_REPORT_NAME)) + #define XLAT_STR_8 STRINGIFY(FAN_REPORT_NAME) }; +static +const struct xlat fan_init_flags[1] = { { + .data = fan_init_flags_xdata, + .size = ARRAY_SIZE(fan_init_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/fan_init_flags.in b/xlat/fan_init_flags.in index 14a9fd24..69501bbb 100644 --- a/xlat/fan_init_flags.in +++ b/xlat/fan_init_flags.in @@ -5,3 +5,5 @@ FAN_UNLIMITED_MARKS 0x00000020 FAN_ENABLE_AUDIT 0x00000040 FAN_REPORT_TID 0x00000100 FAN_REPORT_FID 0x00000200 +FAN_REPORT_DIR_FID 0x00000400 +FAN_REPORT_NAME 0x00000800 diff --git a/xlat/fan_mark_flags.h b/xlat/fan_mark_flags.h index 6f2e9f41..0f46a1c5 100644 --- a/xlat/fan_mark_flags.h +++ b/xlat/fan_mark_flags.h @@ -75,20 +75,118 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat fan_mark_flags[] = { +static const struct xlat_data fan_mark_flags_xdata[] = { XLAT(FAN_MARK_ADD), + #define XLAT_VAL_0 ((unsigned) (FAN_MARK_ADD)) + #define XLAT_STR_0 STRINGIFY(FAN_MARK_ADD) XLAT(FAN_MARK_REMOVE), + #define XLAT_VAL_1 ((unsigned) (FAN_MARK_REMOVE)) + #define XLAT_STR_1 STRINGIFY(FAN_MARK_REMOVE) XLAT(FAN_MARK_DONT_FOLLOW), + #define XLAT_VAL_2 ((unsigned) (FAN_MARK_DONT_FOLLOW)) + #define XLAT_STR_2 STRINGIFY(FAN_MARK_DONT_FOLLOW) XLAT(FAN_MARK_ONLYDIR), + #define XLAT_VAL_3 ((unsigned) (FAN_MARK_ONLYDIR)) + #define XLAT_STR_3 STRINGIFY(FAN_MARK_ONLYDIR) XLAT(FAN_MARK_MOUNT), + #define XLAT_VAL_4 ((unsigned) (FAN_MARK_MOUNT)) + #define XLAT_STR_4 STRINGIFY(FAN_MARK_MOUNT) XLAT(FAN_MARK_IGNORED_MASK), + #define XLAT_VAL_5 ((unsigned) (FAN_MARK_IGNORED_MASK)) + #define XLAT_STR_5 STRINGIFY(FAN_MARK_IGNORED_MASK) XLAT(FAN_MARK_IGNORED_SURV_MODIFY), + #define XLAT_VAL_6 ((unsigned) (FAN_MARK_IGNORED_SURV_MODIFY)) + #define XLAT_STR_6 STRINGIFY(FAN_MARK_IGNORED_SURV_MODIFY) XLAT(FAN_MARK_FLUSH), + #define XLAT_VAL_7 ((unsigned) (FAN_MARK_FLUSH)) + #define XLAT_STR_7 STRINGIFY(FAN_MARK_FLUSH) XLAT(FAN_MARK_FILESYSTEM), - XLAT_END + #define XLAT_VAL_8 ((unsigned) (FAN_MARK_FILESYSTEM)) + #define XLAT_STR_8 STRINGIFY(FAN_MARK_FILESYSTEM) }; +static +const struct xlat fan_mark_flags[1] = { { + .data = fan_mark_flags_xdata, + .size = ARRAY_SIZE(fan_mark_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/fcntlcmds.h b/xlat/fcntlcmds.h index ad354de1..d1e5a11b 100644 --- a/xlat/fcntlcmds.h +++ b/xlat/fcntlcmds.h @@ -393,68 +393,137 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat fcntlcmds[] = { +static const struct xlat_data fcntlcmds_xdata[] = { XLAT(F_DUPFD), + #define XLAT_VAL_0 ((unsigned) (F_DUPFD)) + #define XLAT_STR_0 STRINGIFY(F_DUPFD) XLAT(F_GETFD), + #define XLAT_VAL_1 ((unsigned) (F_GETFD)) + #define XLAT_STR_1 STRINGIFY(F_GETFD) XLAT(F_SETFD), + #define XLAT_VAL_2 ((unsigned) (F_SETFD)) + #define XLAT_STR_2 STRINGIFY(F_SETFD) XLAT(F_GETFL), + #define XLAT_VAL_3 ((unsigned) (F_GETFL)) + #define XLAT_STR_3 STRINGIFY(F_GETFL) XLAT(F_SETFL), + #define XLAT_VAL_4 ((unsigned) (F_SETFL)) + #define XLAT_STR_4 STRINGIFY(F_SETFL) #if defined __alpha__ || defined __sparc__ XLAT(F_GETLK), + #define XLAT_VAL_5 ((unsigned) (F_GETLK)) + #define XLAT_STR_5 STRINGIFY(F_GETLK) #elif defined __mips__ XLAT(F_GETLK), + #define XLAT_VAL_6 ((unsigned) (F_GETLK)) + #define XLAT_STR_6 STRINGIFY(F_GETLK) #else XLAT(F_GETLK), + #define XLAT_VAL_7 ((unsigned) (F_GETLK)) + #define XLAT_STR_7 STRINGIFY(F_GETLK) #endif #if defined __alpha__ || defined __sparc__ XLAT(F_SETLK), + #define XLAT_VAL_8 ((unsigned) (F_SETLK)) + #define XLAT_STR_8 STRINGIFY(F_SETLK) XLAT(F_SETLKW), + #define XLAT_VAL_9 ((unsigned) (F_SETLKW)) + #define XLAT_STR_9 STRINGIFY(F_SETLKW) #else XLAT(F_SETLK), + #define XLAT_VAL_10 ((unsigned) (F_SETLK)) + #define XLAT_STR_10 STRINGIFY(F_SETLK) XLAT(F_SETLKW), + #define XLAT_VAL_11 ((unsigned) (F_SETLKW)) + #define XLAT_STR_11 STRINGIFY(F_SETLKW) #endif #if defined __alpha__ XLAT(F_SETOWN), + #define XLAT_VAL_12 ((unsigned) (F_SETOWN)) + #define XLAT_STR_12 STRINGIFY(F_SETOWN) XLAT(F_GETOWN), + #define XLAT_VAL_13 ((unsigned) (F_GETOWN)) + #define XLAT_STR_13 STRINGIFY(F_GETOWN) #elif defined __hppa__ XLAT(F_GETOWN), + #define XLAT_VAL_14 ((unsigned) (F_GETOWN)) + #define XLAT_STR_14 STRINGIFY(F_GETOWN) XLAT(F_SETOWN), + #define XLAT_VAL_15 ((unsigned) (F_SETOWN)) + #define XLAT_STR_15 STRINGIFY(F_SETOWN) #elif defined __mips__ XLAT(F_GETOWN), + #define XLAT_VAL_16 ((unsigned) (F_GETOWN)) + #define XLAT_STR_16 STRINGIFY(F_GETOWN) XLAT(F_SETOWN), + #define XLAT_VAL_17 ((unsigned) (F_SETOWN)) + #define XLAT_STR_17 STRINGIFY(F_SETOWN) #elif defined __sparc__ XLAT(F_GETOWN), + #define XLAT_VAL_18 ((unsigned) (F_GETOWN)) + #define XLAT_STR_18 STRINGIFY(F_GETOWN) XLAT(F_SETOWN), + #define XLAT_VAL_19 ((unsigned) (F_SETOWN)) + #define XLAT_STR_19 STRINGIFY(F_SETOWN) #else XLAT(F_SETOWN), + #define XLAT_VAL_20 ((unsigned) (F_SETOWN)) + #define XLAT_STR_20 STRINGIFY(F_SETOWN) XLAT(F_GETOWN), + #define XLAT_VAL_21 ((unsigned) (F_GETOWN)) + #define XLAT_STR_21 STRINGIFY(F_GETOWN) #endif #ifdef __hppa__ XLAT(F_SETSIG), + #define XLAT_VAL_22 ((unsigned) (F_SETSIG)) + #define XLAT_STR_22 STRINGIFY(F_SETSIG) XLAT(F_GETSIG), + #define XLAT_VAL_23 ((unsigned) (F_GETSIG)) + #define XLAT_STR_23 STRINGIFY(F_GETSIG) #else XLAT(F_SETSIG), + #define XLAT_VAL_24 ((unsigned) (F_SETSIG)) + #define XLAT_STR_24 STRINGIFY(F_SETSIG) XLAT(F_GETSIG), + #define XLAT_VAL_25 ((unsigned) (F_GETSIG)) + #define XLAT_STR_25 STRINGIFY(F_GETSIG) #endif #if defined __hppa__ XLAT(F_GETLK64), + #define XLAT_VAL_26 ((unsigned) (F_GETLK64)) + #define XLAT_STR_26 STRINGIFY(F_GETLK64) XLAT(F_SETLK64), + #define XLAT_VAL_27 ((unsigned) (F_SETLK64)) + #define XLAT_STR_27 STRINGIFY(F_SETLK64) XLAT(F_SETLKW64), + #define XLAT_VAL_28 ((unsigned) (F_SETLKW64)) + #define XLAT_STR_28 STRINGIFY(F_SETLKW64) #elif defined __mips__ && !defined __mips64 XLAT(F_GETLK64), + #define XLAT_VAL_29 ((unsigned) (F_GETLK64)) + #define XLAT_STR_29 STRINGIFY(F_GETLK64) XLAT(F_SETLK64), + #define XLAT_VAL_30 ((unsigned) (F_SETLK64)) + #define XLAT_STR_30 STRINGIFY(F_SETLK64) XLAT(F_SETLKW64), + #define XLAT_VAL_31 ((unsigned) (F_SETLKW64)) + #define XLAT_STR_31 STRINGIFY(F_SETLKW64) #else XLAT(F_GETLK64), + #define XLAT_VAL_32 ((unsigned) (F_GETLK64)) + #define XLAT_STR_32 STRINGIFY(F_GETLK64) XLAT(F_SETLK64), + #define XLAT_VAL_33 ((unsigned) (F_SETLK64)) + #define XLAT_STR_33 STRINGIFY(F_SETLK64) XLAT(F_SETLKW64), + #define XLAT_VAL_34 ((unsigned) (F_SETLKW64)) + #define XLAT_STR_34 STRINGIFY(F_SETLKW64) #endif #ifndef STRACE_WORKAROUND_FOR_F_OWNER_EX @@ -476,26 +545,465 @@ const struct xlat fcntlcmds[] = { # undef F_GETOWN_EX #endif XLAT(F_SETOWN_EX), + #define XLAT_VAL_35 ((unsigned) (F_SETOWN_EX)) + #define XLAT_STR_35 STRINGIFY(F_SETOWN_EX) XLAT(F_GETOWN_EX), + #define XLAT_VAL_36 ((unsigned) (F_GETOWN_EX)) + #define XLAT_STR_36 STRINGIFY(F_GETOWN_EX) XLAT(F_GETOWNER_UIDS), + #define XLAT_VAL_37 ((unsigned) (F_GETOWNER_UIDS)) + #define XLAT_STR_37 STRINGIFY(F_GETOWNER_UIDS) XLAT(F_OFD_GETLK), + #define XLAT_VAL_38 ((unsigned) (F_OFD_GETLK)) + #define XLAT_STR_38 STRINGIFY(F_OFD_GETLK) XLAT(F_OFD_SETLK), + #define XLAT_VAL_39 ((unsigned) (F_OFD_SETLK)) + #define XLAT_STR_39 STRINGIFY(F_OFD_SETLK) XLAT(F_OFD_SETLKW), + #define XLAT_VAL_40 ((unsigned) (F_OFD_SETLKW)) + #define XLAT_STR_40 STRINGIFY(F_OFD_SETLKW) XLAT(F_SETLEASE), + #define XLAT_VAL_41 ((unsigned) (F_SETLEASE)) + #define XLAT_STR_41 STRINGIFY(F_SETLEASE) XLAT(F_GETLEASE), + #define XLAT_VAL_42 ((unsigned) (F_GETLEASE)) + #define XLAT_STR_42 STRINGIFY(F_GETLEASE) XLAT(F_NOTIFY), + #define XLAT_VAL_43 ((unsigned) (F_NOTIFY)) + #define XLAT_STR_43 STRINGIFY(F_NOTIFY) XLAT(F_CANCELLK), + #define XLAT_VAL_44 ((unsigned) (F_CANCELLK)) + #define XLAT_STR_44 STRINGIFY(F_CANCELLK) XLAT(F_DUPFD_CLOEXEC), + #define XLAT_VAL_45 ((unsigned) (F_DUPFD_CLOEXEC)) + #define XLAT_STR_45 STRINGIFY(F_DUPFD_CLOEXEC) XLAT(F_SETPIPE_SZ), + #define XLAT_VAL_46 ((unsigned) (F_SETPIPE_SZ)) + #define XLAT_STR_46 STRINGIFY(F_SETPIPE_SZ) XLAT(F_GETPIPE_SZ), + #define XLAT_VAL_47 ((unsigned) (F_GETPIPE_SZ)) + #define XLAT_STR_47 STRINGIFY(F_GETPIPE_SZ) XLAT(F_ADD_SEALS), + #define XLAT_VAL_48 ((unsigned) (F_ADD_SEALS)) + #define XLAT_STR_48 STRINGIFY(F_ADD_SEALS) XLAT(F_GET_SEALS), - XLAT_END + #define XLAT_VAL_49 ((unsigned) (F_GET_SEALS)) + #define XLAT_STR_49 STRINGIFY(F_GET_SEALS) }; +static +const struct xlat fcntlcmds[1] = { { + .data = fcntlcmds_xdata, + .size = ARRAY_SIZE(fcntlcmds_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif +# ifdef XLAT_VAL_41 + | XLAT_VAL_41 +# endif +# ifdef XLAT_VAL_42 + | XLAT_VAL_42 +# endif +# ifdef XLAT_VAL_43 + | XLAT_VAL_43 +# endif +# ifdef XLAT_VAL_44 + | XLAT_VAL_44 +# endif +# ifdef XLAT_VAL_45 + | XLAT_VAL_45 +# endif +# ifdef XLAT_VAL_46 + | XLAT_VAL_46 +# endif +# ifdef XLAT_VAL_47 + | XLAT_VAL_47 +# endif +# ifdef XLAT_VAL_48 + | XLAT_VAL_48 +# endif +# ifdef XLAT_VAL_49 + | XLAT_VAL_49 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif +# ifdef XLAT_STR_41 + + sizeof(XLAT_STR_41) +# endif +# ifdef XLAT_STR_42 + + sizeof(XLAT_STR_42) +# endif +# ifdef XLAT_STR_43 + + sizeof(XLAT_STR_43) +# endif +# ifdef XLAT_STR_44 + + sizeof(XLAT_STR_44) +# endif +# ifdef XLAT_STR_45 + + sizeof(XLAT_STR_45) +# endif +# ifdef XLAT_STR_46 + + sizeof(XLAT_STR_46) +# endif +# ifdef XLAT_STR_47 + + sizeof(XLAT_STR_47) +# endif +# ifdef XLAT_STR_48 + + sizeof(XLAT_STR_48) +# endif +# ifdef XLAT_STR_49 + + sizeof(XLAT_STR_49) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 +# undef XLAT_STR_41 +# undef XLAT_VAL_41 +# undef XLAT_STR_42 +# undef XLAT_VAL_42 +# undef XLAT_STR_43 +# undef XLAT_VAL_43 +# undef XLAT_STR_44 +# undef XLAT_VAL_44 +# undef XLAT_STR_45 +# undef XLAT_VAL_45 +# undef XLAT_STR_46 +# undef XLAT_VAL_46 +# undef XLAT_STR_47 +# undef XLAT_VAL_47 +# undef XLAT_STR_48 +# undef XLAT_VAL_48 +# undef XLAT_STR_49 +# undef XLAT_VAL_49 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/fdflags.h b/xlat/fdflags.h index 5d627e34..a26d4025 100644 --- a/xlat/fdflags.h +++ b/xlat/fdflags.h @@ -12,14 +12,32 @@ # else -static -const struct xlat fdflags[] = { +static const struct xlat_data fdflags_xdata[] = { #if defined(FD_CLOEXEC) || (defined(HAVE_DECL_FD_CLOEXEC) && HAVE_DECL_FD_CLOEXEC) XLAT(FD_CLOEXEC), + #define XLAT_VAL_0 ((unsigned) (FD_CLOEXEC)) + #define XLAT_STR_0 STRINGIFY(FD_CLOEXEC) #endif - XLAT_END }; - +static +const struct xlat fdflags[1] = { { + .data = fdflags_xdata, + .size = ARRAY_SIZE(fdflags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/fib_rule_actions.h b/xlat/fib_rule_actions.h index 5681ddba..dfac9d3d 100644 --- a/xlat/fib_rule_actions.h +++ b/xlat/fib_rule_actions.h @@ -75,20 +75,118 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat fib_rule_actions[] = { - XLAT(FR_ACT_UNSPEC), - XLAT(FR_ACT_TO_TBL), - XLAT(FR_ACT_GOTO), - XLAT(FR_ACT_NOP), - XLAT(FR_ACT_RES3), - XLAT(FR_ACT_RES4), - XLAT(FR_ACT_BLACKHOLE), - XLAT(FR_ACT_UNREACHABLE), - XLAT(FR_ACT_PROHIBIT), - XLAT_END +static const struct xlat_data fib_rule_actions_xdata[] = { + [FR_ACT_UNSPEC] = XLAT(FR_ACT_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (FR_ACT_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(FR_ACT_UNSPEC) + [FR_ACT_TO_TBL] = XLAT(FR_ACT_TO_TBL), + #define XLAT_VAL_1 ((unsigned) (FR_ACT_TO_TBL)) + #define XLAT_STR_1 STRINGIFY(FR_ACT_TO_TBL) + [FR_ACT_GOTO] = XLAT(FR_ACT_GOTO), + #define XLAT_VAL_2 ((unsigned) (FR_ACT_GOTO)) + #define XLAT_STR_2 STRINGIFY(FR_ACT_GOTO) + [FR_ACT_NOP] = XLAT(FR_ACT_NOP), + #define XLAT_VAL_3 ((unsigned) (FR_ACT_NOP)) + #define XLAT_STR_3 STRINGIFY(FR_ACT_NOP) + [FR_ACT_RES3] = XLAT(FR_ACT_RES3), + #define XLAT_VAL_4 ((unsigned) (FR_ACT_RES3)) + #define XLAT_STR_4 STRINGIFY(FR_ACT_RES3) + [FR_ACT_RES4] = XLAT(FR_ACT_RES4), + #define XLAT_VAL_5 ((unsigned) (FR_ACT_RES4)) + #define XLAT_STR_5 STRINGIFY(FR_ACT_RES4) + [FR_ACT_BLACKHOLE] = XLAT(FR_ACT_BLACKHOLE), + #define XLAT_VAL_6 ((unsigned) (FR_ACT_BLACKHOLE)) + #define XLAT_STR_6 STRINGIFY(FR_ACT_BLACKHOLE) + [FR_ACT_UNREACHABLE] = XLAT(FR_ACT_UNREACHABLE), + #define XLAT_VAL_7 ((unsigned) (FR_ACT_UNREACHABLE)) + #define XLAT_STR_7 STRINGIFY(FR_ACT_UNREACHABLE) + [FR_ACT_PROHIBIT] = XLAT(FR_ACT_PROHIBIT), + #define XLAT_VAL_8 ((unsigned) (FR_ACT_PROHIBIT)) + #define XLAT_STR_8 STRINGIFY(FR_ACT_PROHIBIT) }; +static +const struct xlat fib_rule_actions[1] = { { + .data = fib_rule_actions_xdata, + .size = ARRAY_SIZE(fib_rule_actions_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/fib_rule_actions.in b/xlat/fib_rule_actions.in index 55d59123..181c2eab 100644 --- a/xlat/fib_rule_actions.in +++ b/xlat/fib_rule_actions.in @@ -1,3 +1,4 @@ +#value_indexed FR_ACT_UNSPEC 0 FR_ACT_TO_TBL 1 FR_ACT_GOTO 2 diff --git a/xlat/fib_rule_flags.h b/xlat/fib_rule_flags.h index b395b5ad..3ae0b352 100644 --- a/xlat/fib_rule_flags.h +++ b/xlat/fib_rule_flags.h @@ -3,38 +3,136 @@ #include "gcc_compat.h" #include "static_assert.h" - -#ifndef XLAT_MACROS_ONLY - -# ifdef IN_MPERS - -# error static const struct xlat fib_rule_flags in mpers mode - -# else - -static -const struct xlat fib_rule_flags[] = { #if defined(FIB_RULE_PERMANENT) || (defined(HAVE_DECL_FIB_RULE_PERMANENT) && HAVE_DECL_FIB_RULE_PERMANENT) - XLAT(FIB_RULE_PERMANENT), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((FIB_RULE_PERMANENT) == (0x00000001), "FIB_RULE_PERMANENT != 0x00000001"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define FIB_RULE_PERMANENT 0x00000001 #endif #if defined(FIB_RULE_INVERT) || (defined(HAVE_DECL_FIB_RULE_INVERT) && HAVE_DECL_FIB_RULE_INVERT) - XLAT(FIB_RULE_INVERT), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((FIB_RULE_INVERT) == (0x00000002), "FIB_RULE_INVERT != 0x00000002"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define FIB_RULE_INVERT 0x00000002 #endif #if defined(FIB_RULE_UNRESOLVED) || (defined(HAVE_DECL_FIB_RULE_UNRESOLVED) && HAVE_DECL_FIB_RULE_UNRESOLVED) - XLAT(FIB_RULE_UNRESOLVED), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((FIB_RULE_UNRESOLVED) == (0x00000004), "FIB_RULE_UNRESOLVED != 0x00000004"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define FIB_RULE_UNRESOLVED 0x00000004 #endif #if defined(FIB_RULE_IIF_DETACHED) || (defined(HAVE_DECL_FIB_RULE_IIF_DETACHED) && HAVE_DECL_FIB_RULE_IIF_DETACHED) - XLAT(FIB_RULE_IIF_DETACHED), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((FIB_RULE_IIF_DETACHED) == (0x00000008), "FIB_RULE_IIF_DETACHED != 0x00000008"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define FIB_RULE_IIF_DETACHED 0x00000008 #endif #if defined(FIB_RULE_OIF_DETACHED) || (defined(HAVE_DECL_FIB_RULE_OIF_DETACHED) && HAVE_DECL_FIB_RULE_OIF_DETACHED) - XLAT(FIB_RULE_OIF_DETACHED), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((FIB_RULE_OIF_DETACHED) == (0x00000010), "FIB_RULE_OIF_DETACHED != 0x00000010"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define FIB_RULE_OIF_DETACHED 0x00000010 #endif #if defined(FIB_RULE_FIND_SADDR) || (defined(HAVE_DECL_FIB_RULE_FIND_SADDR) && HAVE_DECL_FIB_RULE_FIND_SADDR) - XLAT(FIB_RULE_FIND_SADDR), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((FIB_RULE_FIND_SADDR) == (0x00010000), "FIB_RULE_FIND_SADDR != 0x00010000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define FIB_RULE_FIND_SADDR 0x00010000 #endif - XLAT_END + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat fib_rule_flags in mpers mode + +# else + +static const struct xlat_data fib_rule_flags_xdata[] = { + XLAT(FIB_RULE_PERMANENT), + #define XLAT_VAL_0 ((unsigned) (FIB_RULE_PERMANENT)) + #define XLAT_STR_0 STRINGIFY(FIB_RULE_PERMANENT) + XLAT(FIB_RULE_INVERT), + #define XLAT_VAL_1 ((unsigned) (FIB_RULE_INVERT)) + #define XLAT_STR_1 STRINGIFY(FIB_RULE_INVERT) + XLAT(FIB_RULE_UNRESOLVED), + #define XLAT_VAL_2 ((unsigned) (FIB_RULE_UNRESOLVED)) + #define XLAT_STR_2 STRINGIFY(FIB_RULE_UNRESOLVED) + XLAT(FIB_RULE_IIF_DETACHED), + #define XLAT_VAL_3 ((unsigned) (FIB_RULE_IIF_DETACHED)) + #define XLAT_STR_3 STRINGIFY(FIB_RULE_IIF_DETACHED) + XLAT(FIB_RULE_OIF_DETACHED), + #define XLAT_VAL_4 ((unsigned) (FIB_RULE_OIF_DETACHED)) + #define XLAT_STR_4 STRINGIFY(FIB_RULE_OIF_DETACHED) + XLAT(FIB_RULE_FIND_SADDR), + #define XLAT_VAL_5 ((unsigned) (FIB_RULE_FIND_SADDR)) + #define XLAT_STR_5 STRINGIFY(FIB_RULE_FIND_SADDR) }; +static +const struct xlat fib_rule_flags[1] = { { + .data = fib_rule_flags_xdata, + .size = ARRAY_SIZE(fib_rule_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/fib_rule_flags.in b/xlat/fib_rule_flags.in index 8f4d42c0..001db9a3 100644 --- a/xlat/fib_rule_flags.in +++ b/xlat/fib_rule_flags.in @@ -1,6 +1,6 @@ -FIB_RULE_PERMANENT -FIB_RULE_INVERT -FIB_RULE_UNRESOLVED -FIB_RULE_IIF_DETACHED -FIB_RULE_OIF_DETACHED -FIB_RULE_FIND_SADDR +FIB_RULE_PERMANENT 0x00000001 +FIB_RULE_INVERT 0x00000002 +FIB_RULE_UNRESOLVED 0x00000004 +FIB_RULE_IIF_DETACHED 0x00000008 +FIB_RULE_OIF_DETACHED 0x00000010 +FIB_RULE_FIND_SADDR 0x00010000 diff --git a/xlat/fiemap_extent_flags.h b/xlat/fiemap_extent_flags.h index 41e85be8..3310e7c0 100644 --- a/xlat/fiemap_extent_flags.h +++ b/xlat/fiemap_extent_flags.h @@ -89,22 +89,140 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat fiemap_extent_flags[] = { +static const struct xlat_data fiemap_extent_flags_xdata[] = { XLAT(FIEMAP_EXTENT_LAST), + #define XLAT_VAL_0 ((unsigned) (FIEMAP_EXTENT_LAST)) + #define XLAT_STR_0 STRINGIFY(FIEMAP_EXTENT_LAST) XLAT(FIEMAP_EXTENT_UNKNOWN), + #define XLAT_VAL_1 ((unsigned) (FIEMAP_EXTENT_UNKNOWN)) + #define XLAT_STR_1 STRINGIFY(FIEMAP_EXTENT_UNKNOWN) XLAT(FIEMAP_EXTENT_DELALLOC), + #define XLAT_VAL_2 ((unsigned) (FIEMAP_EXTENT_DELALLOC)) + #define XLAT_STR_2 STRINGIFY(FIEMAP_EXTENT_DELALLOC) XLAT(FIEMAP_EXTENT_ENCODED), + #define XLAT_VAL_3 ((unsigned) (FIEMAP_EXTENT_ENCODED)) + #define XLAT_STR_3 STRINGIFY(FIEMAP_EXTENT_ENCODED) XLAT(FIEMAP_EXTENT_DATA_ENCRYPTED), + #define XLAT_VAL_4 ((unsigned) (FIEMAP_EXTENT_DATA_ENCRYPTED)) + #define XLAT_STR_4 STRINGIFY(FIEMAP_EXTENT_DATA_ENCRYPTED) XLAT(FIEMAP_EXTENT_NOT_ALIGNED), + #define XLAT_VAL_5 ((unsigned) (FIEMAP_EXTENT_NOT_ALIGNED)) + #define XLAT_STR_5 STRINGIFY(FIEMAP_EXTENT_NOT_ALIGNED) XLAT(FIEMAP_EXTENT_DATA_INLINE), + #define XLAT_VAL_6 ((unsigned) (FIEMAP_EXTENT_DATA_INLINE)) + #define XLAT_STR_6 STRINGIFY(FIEMAP_EXTENT_DATA_INLINE) XLAT(FIEMAP_EXTENT_DATA_TAIL), + #define XLAT_VAL_7 ((unsigned) (FIEMAP_EXTENT_DATA_TAIL)) + #define XLAT_STR_7 STRINGIFY(FIEMAP_EXTENT_DATA_TAIL) XLAT(FIEMAP_EXTENT_UNWRITTEN), + #define XLAT_VAL_8 ((unsigned) (FIEMAP_EXTENT_UNWRITTEN)) + #define XLAT_STR_8 STRINGIFY(FIEMAP_EXTENT_UNWRITTEN) XLAT(FIEMAP_EXTENT_MERGED), + #define XLAT_VAL_9 ((unsigned) (FIEMAP_EXTENT_MERGED)) + #define XLAT_STR_9 STRINGIFY(FIEMAP_EXTENT_MERGED) XLAT(FIEMAP_EXTENT_SHARED), - XLAT_END + #define XLAT_VAL_10 ((unsigned) (FIEMAP_EXTENT_SHARED)) + #define XLAT_STR_10 STRINGIFY(FIEMAP_EXTENT_SHARED) }; +static +const struct xlat fiemap_extent_flags[1] = { { + .data = fiemap_extent_flags_xdata, + .size = ARRAY_SIZE(fiemap_extent_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/fiemap_flags.h b/xlat/fiemap_flags.h index 73395e8f..d3d18950 100644 --- a/xlat/fiemap_flags.h +++ b/xlat/fiemap_flags.h @@ -33,14 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat fiemap_flags[] = { +static const struct xlat_data fiemap_flags_xdata[] = { XLAT(FIEMAP_FLAG_SYNC), + #define XLAT_VAL_0 ((unsigned) (FIEMAP_FLAG_SYNC)) + #define XLAT_STR_0 STRINGIFY(FIEMAP_FLAG_SYNC) XLAT(FIEMAP_FLAG_XATTR), + #define XLAT_VAL_1 ((unsigned) (FIEMAP_FLAG_XATTR)) + #define XLAT_STR_1 STRINGIFY(FIEMAP_FLAG_XATTR) XLAT(FIEMAP_FLAG_CACHE), - XLAT_END + #define XLAT_VAL_2 ((unsigned) (FIEMAP_FLAG_CACHE)) + #define XLAT_STR_2 STRINGIFY(FIEMAP_FLAG_CACHE) }; +static +const struct xlat fiemap_flags[1] = { { + .data = fiemap_flags_xdata, + .size = ARRAY_SIZE(fiemap_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/flockcmds.h b/xlat/flockcmds.h index c7cf9399..c45532cb 100644 --- a/xlat/flockcmds.h +++ b/xlat/flockcmds.h @@ -68,19 +68,107 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat flockcmds[] = { +static const struct xlat_data flockcmds_xdata[] = { XLAT(LOCK_SH), + #define XLAT_VAL_0 ((unsigned) (LOCK_SH)) + #define XLAT_STR_0 STRINGIFY(LOCK_SH) XLAT(LOCK_EX), + #define XLAT_VAL_1 ((unsigned) (LOCK_EX)) + #define XLAT_STR_1 STRINGIFY(LOCK_EX) XLAT(LOCK_NB), + #define XLAT_VAL_2 ((unsigned) (LOCK_NB)) + #define XLAT_STR_2 STRINGIFY(LOCK_NB) XLAT(LOCK_UN), + #define XLAT_VAL_3 ((unsigned) (LOCK_UN)) + #define XLAT_STR_3 STRINGIFY(LOCK_UN) XLAT(LOCK_MAND), + #define XLAT_VAL_4 ((unsigned) (LOCK_MAND)) + #define XLAT_STR_4 STRINGIFY(LOCK_MAND) XLAT(LOCK_RW), + #define XLAT_VAL_5 ((unsigned) (LOCK_RW)) + #define XLAT_STR_5 STRINGIFY(LOCK_RW) XLAT(LOCK_READ), + #define XLAT_VAL_6 ((unsigned) (LOCK_READ)) + #define XLAT_STR_6 STRINGIFY(LOCK_READ) XLAT(LOCK_WRITE), - XLAT_END + #define XLAT_VAL_7 ((unsigned) (LOCK_WRITE)) + #define XLAT_STR_7 STRINGIFY(LOCK_WRITE) }; +static +const struct xlat flockcmds[1] = { { + .data = flockcmds_xdata, + .size = ARRAY_SIZE(flockcmds_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/fsconfig_cmds.h b/xlat/fsconfig_cmds.h new file mode 100644 index 00000000..e0b95f19 --- /dev/null +++ b/xlat/fsconfig_cmds.h @@ -0,0 +1,174 @@ +/* Generated by ./xlat/gen.sh from ./xlat/fsconfig_cmds.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined(FSCONFIG_SET_FLAG) || (defined(HAVE_DECL_FSCONFIG_SET_FLAG) && HAVE_DECL_FSCONFIG_SET_FLAG) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((FSCONFIG_SET_FLAG) == (0), "FSCONFIG_SET_FLAG != 0"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define FSCONFIG_SET_FLAG 0 +#endif +#if defined(FSCONFIG_SET_STRING) || (defined(HAVE_DECL_FSCONFIG_SET_STRING) && HAVE_DECL_FSCONFIG_SET_STRING) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((FSCONFIG_SET_STRING) == (1), "FSCONFIG_SET_STRING != 1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define FSCONFIG_SET_STRING 1 +#endif +#if defined(FSCONFIG_SET_BINARY) || (defined(HAVE_DECL_FSCONFIG_SET_BINARY) && HAVE_DECL_FSCONFIG_SET_BINARY) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((FSCONFIG_SET_BINARY) == (2), "FSCONFIG_SET_BINARY != 2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define FSCONFIG_SET_BINARY 2 +#endif +#if defined(FSCONFIG_SET_PATH) || (defined(HAVE_DECL_FSCONFIG_SET_PATH) && HAVE_DECL_FSCONFIG_SET_PATH) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((FSCONFIG_SET_PATH) == (3), "FSCONFIG_SET_PATH != 3"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define FSCONFIG_SET_PATH 3 +#endif +#if defined(FSCONFIG_SET_PATH_EMPTY) || (defined(HAVE_DECL_FSCONFIG_SET_PATH_EMPTY) && HAVE_DECL_FSCONFIG_SET_PATH_EMPTY) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((FSCONFIG_SET_PATH_EMPTY) == (4), "FSCONFIG_SET_PATH_EMPTY != 4"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define FSCONFIG_SET_PATH_EMPTY 4 +#endif +#if defined(FSCONFIG_SET_FD) || (defined(HAVE_DECL_FSCONFIG_SET_FD) && HAVE_DECL_FSCONFIG_SET_FD) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((FSCONFIG_SET_FD) == (5), "FSCONFIG_SET_FD != 5"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define FSCONFIG_SET_FD 5 +#endif +#if defined(FSCONFIG_CMD_CREATE) || (defined(HAVE_DECL_FSCONFIG_CMD_CREATE) && HAVE_DECL_FSCONFIG_CMD_CREATE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((FSCONFIG_CMD_CREATE) == (6), "FSCONFIG_CMD_CREATE != 6"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define FSCONFIG_CMD_CREATE 6 +#endif +#if defined(FSCONFIG_CMD_RECONFIGURE) || (defined(HAVE_DECL_FSCONFIG_CMD_RECONFIGURE) && HAVE_DECL_FSCONFIG_CMD_RECONFIGURE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((FSCONFIG_CMD_RECONFIGURE) == (7), "FSCONFIG_CMD_RECONFIGURE != 7"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define FSCONFIG_CMD_RECONFIGURE 7 +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat fsconfig_cmds in mpers mode + +# else + +static const struct xlat_data fsconfig_cmds_xdata[] = { + [FSCONFIG_SET_FLAG] = XLAT(FSCONFIG_SET_FLAG), + #define XLAT_VAL_0 ((unsigned) (FSCONFIG_SET_FLAG)) + #define XLAT_STR_0 STRINGIFY(FSCONFIG_SET_FLAG) + [FSCONFIG_SET_STRING] = XLAT(FSCONFIG_SET_STRING), + #define XLAT_VAL_1 ((unsigned) (FSCONFIG_SET_STRING)) + #define XLAT_STR_1 STRINGIFY(FSCONFIG_SET_STRING) + [FSCONFIG_SET_BINARY] = XLAT(FSCONFIG_SET_BINARY), + #define XLAT_VAL_2 ((unsigned) (FSCONFIG_SET_BINARY)) + #define XLAT_STR_2 STRINGIFY(FSCONFIG_SET_BINARY) + [FSCONFIG_SET_PATH] = XLAT(FSCONFIG_SET_PATH), + #define XLAT_VAL_3 ((unsigned) (FSCONFIG_SET_PATH)) + #define XLAT_STR_3 STRINGIFY(FSCONFIG_SET_PATH) + [FSCONFIG_SET_PATH_EMPTY] = XLAT(FSCONFIG_SET_PATH_EMPTY), + #define XLAT_VAL_4 ((unsigned) (FSCONFIG_SET_PATH_EMPTY)) + #define XLAT_STR_4 STRINGIFY(FSCONFIG_SET_PATH_EMPTY) + [FSCONFIG_SET_FD] = XLAT(FSCONFIG_SET_FD), + #define XLAT_VAL_5 ((unsigned) (FSCONFIG_SET_FD)) + #define XLAT_STR_5 STRINGIFY(FSCONFIG_SET_FD) + [FSCONFIG_CMD_CREATE] = XLAT(FSCONFIG_CMD_CREATE), + #define XLAT_VAL_6 ((unsigned) (FSCONFIG_CMD_CREATE)) + #define XLAT_STR_6 STRINGIFY(FSCONFIG_CMD_CREATE) + [FSCONFIG_CMD_RECONFIGURE] = XLAT(FSCONFIG_CMD_RECONFIGURE), + #define XLAT_VAL_7 ((unsigned) (FSCONFIG_CMD_RECONFIGURE)) + #define XLAT_STR_7 STRINGIFY(FSCONFIG_CMD_RECONFIGURE) +}; +static +const struct xlat fsconfig_cmds[1] = { { + .data = fsconfig_cmds_xdata, + .size = ARRAY_SIZE(fsconfig_cmds_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/fsconfig_cmds.in b/xlat/fsconfig_cmds.in new file mode 100644 index 00000000..be33679b --- /dev/null +++ b/xlat/fsconfig_cmds.in @@ -0,0 +1,9 @@ +#value_indexed +FSCONFIG_SET_FLAG 0 +FSCONFIG_SET_STRING 1 +FSCONFIG_SET_BINARY 2 +FSCONFIG_SET_PATH 3 +FSCONFIG_SET_PATH_EMPTY 4 +FSCONFIG_SET_FD 5 +FSCONFIG_CMD_CREATE 6 +FSCONFIG_CMD_RECONFIGURE 7 diff --git a/xlat/fsmagic.h b/xlat/fsmagic.h index a85e54ff..d7a8de9c 100644 --- a/xlat/fsmagic.h +++ b/xlat/fsmagic.h @@ -3,6 +3,769 @@ #include "gcc_compat.h" #include "static_assert.h" +#if defined(QNX4_SUPER_MAGIC) || (defined(HAVE_DECL_QNX4_SUPER_MAGIC) && HAVE_DECL_QNX4_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((QNX4_SUPER_MAGIC) == (0x0000002f), "QNX4_SUPER_MAGIC != 0x0000002f"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define QNX4_SUPER_MAGIC 0x0000002f +#endif +#if defined(Z3FOLD_MAGIC) || (defined(HAVE_DECL_Z3FOLD_MAGIC) && HAVE_DECL_Z3FOLD_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((Z3FOLD_MAGIC) == (0x00000033), "Z3FOLD_MAGIC != 0x00000033"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define Z3FOLD_MAGIC 0x00000033 +#endif +#if defined(AUTOFS_SUPER_MAGIC) || (defined(HAVE_DECL_AUTOFS_SUPER_MAGIC) && HAVE_DECL_AUTOFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUTOFS_SUPER_MAGIC) == (0x00000187), "AUTOFS_SUPER_MAGIC != 0x00000187"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUTOFS_SUPER_MAGIC 0x00000187 +#endif +#if defined(DEVFS_SUPER_MAGIC) || (defined(HAVE_DECL_DEVFS_SUPER_MAGIC) && HAVE_DECL_DEVFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((DEVFS_SUPER_MAGIC) == (0x00001373), "DEVFS_SUPER_MAGIC != 0x00001373"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define DEVFS_SUPER_MAGIC 0x00001373 +#endif +#if defined(EXT_SUPER_MAGIC) || (defined(HAVE_DECL_EXT_SUPER_MAGIC) && HAVE_DECL_EXT_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EXT_SUPER_MAGIC) == (0x0000137d), "EXT_SUPER_MAGIC != 0x0000137d"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EXT_SUPER_MAGIC 0x0000137d +#endif +#if defined(MINIX_SUPER_MAGIC) || (defined(HAVE_DECL_MINIX_SUPER_MAGIC) && HAVE_DECL_MINIX_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MINIX_SUPER_MAGIC) == (0x0000137f), "MINIX_SUPER_MAGIC != 0x0000137f"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MINIX_SUPER_MAGIC 0x0000137f +#endif +#if defined(MINIX_SUPER_MAGIC2) || (defined(HAVE_DECL_MINIX_SUPER_MAGIC2) && HAVE_DECL_MINIX_SUPER_MAGIC2) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MINIX_SUPER_MAGIC2) == (0x0000138f), "MINIX_SUPER_MAGIC2 != 0x0000138f"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MINIX_SUPER_MAGIC2 0x0000138f +#endif +#if defined(DEVPTS_SUPER_MAGIC) || (defined(HAVE_DECL_DEVPTS_SUPER_MAGIC) && HAVE_DECL_DEVPTS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((DEVPTS_SUPER_MAGIC) == (0x00001cd1), "DEVPTS_SUPER_MAGIC != 0x00001cd1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define DEVPTS_SUPER_MAGIC 0x00001cd1 +#endif +#if defined(MINIX2_SUPER_MAGIC) || (defined(HAVE_DECL_MINIX2_SUPER_MAGIC) && HAVE_DECL_MINIX2_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MINIX2_SUPER_MAGIC) == (0x00002468), "MINIX2_SUPER_MAGIC != 0x00002468"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MINIX2_SUPER_MAGIC 0x00002468 +#endif +#if defined(MINIX2_SUPER_MAGIC2) || (defined(HAVE_DECL_MINIX2_SUPER_MAGIC2) && HAVE_DECL_MINIX2_SUPER_MAGIC2) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MINIX2_SUPER_MAGIC2) == (0x00002478), "MINIX2_SUPER_MAGIC2 != 0x00002478"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MINIX2_SUPER_MAGIC2 0x00002478 +#endif +#if defined(NILFS_SUPER_MAGIC) || (defined(HAVE_DECL_NILFS_SUPER_MAGIC) && HAVE_DECL_NILFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((NILFS_SUPER_MAGIC) == (0x00003434), "NILFS_SUPER_MAGIC != 0x00003434"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define NILFS_SUPER_MAGIC 0x00003434 +#endif +#if defined(HFS_SUPER_MAGIC) || (defined(HAVE_DECL_HFS_SUPER_MAGIC) && HAVE_DECL_HFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((HFS_SUPER_MAGIC) == (0x00004244), "HFS_SUPER_MAGIC != 0x00004244"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define HFS_SUPER_MAGIC 0x00004244 +#endif +#if defined(HFSPLUS_SUPER_MAGIC) || (defined(HAVE_DECL_HFSPLUS_SUPER_MAGIC) && HAVE_DECL_HFSPLUS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((HFSPLUS_SUPER_MAGIC) == (0x0000482b), "HFSPLUS_SUPER_MAGIC != 0x0000482b"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define HFSPLUS_SUPER_MAGIC 0x0000482b +#endif +#if defined(MSDOS_SUPER_MAGIC) || (defined(HAVE_DECL_MSDOS_SUPER_MAGIC) && HAVE_DECL_MSDOS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MSDOS_SUPER_MAGIC) == (0x00004d44), "MSDOS_SUPER_MAGIC != 0x00004d44"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MSDOS_SUPER_MAGIC 0x00004d44 +#endif +#if defined(MINIX3_SUPER_MAGIC) || (defined(HAVE_DECL_MINIX3_SUPER_MAGIC) && HAVE_DECL_MINIX3_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MINIX3_SUPER_MAGIC) == (0x00004d5a), "MINIX3_SUPER_MAGIC != 0x00004d5a"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MINIX3_SUPER_MAGIC 0x00004d5a +#endif +#if defined(SMB_SUPER_MAGIC) || (defined(HAVE_DECL_SMB_SUPER_MAGIC) && HAVE_DECL_SMB_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SMB_SUPER_MAGIC) == (0x0000517b), "SMB_SUPER_MAGIC != 0x0000517b"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SMB_SUPER_MAGIC 0x0000517b +#endif +#if defined(NCP_SUPER_MAGIC) || (defined(HAVE_DECL_NCP_SUPER_MAGIC) && HAVE_DECL_NCP_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((NCP_SUPER_MAGIC) == (0x0000564c), "NCP_SUPER_MAGIC != 0x0000564c"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define NCP_SUPER_MAGIC 0x0000564c +#endif +#if defined(EXOFS_SUPER_MAGIC) || (defined(HAVE_DECL_EXOFS_SUPER_MAGIC) && HAVE_DECL_EXOFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EXOFS_SUPER_MAGIC) == (0x00005df5), "EXOFS_SUPER_MAGIC != 0x00005df5"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EXOFS_SUPER_MAGIC 0x00005df5 +#endif +#if defined(NFS_SUPER_MAGIC) || (defined(HAVE_DECL_NFS_SUPER_MAGIC) && HAVE_DECL_NFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((NFS_SUPER_MAGIC) == (0x00006969), "NFS_SUPER_MAGIC != 0x00006969"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define NFS_SUPER_MAGIC 0x00006969 +#endif +#if defined(ROMFS_MAGIC) || (defined(HAVE_DECL_ROMFS_MAGIC) && HAVE_DECL_ROMFS_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ROMFS_MAGIC) == (0x00007275), "ROMFS_MAGIC != 0x00007275"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ROMFS_MAGIC 0x00007275 +#endif +#if defined(JFFS2_SUPER_MAGIC) || (defined(HAVE_DECL_JFFS2_SUPER_MAGIC) && HAVE_DECL_JFFS2_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((JFFS2_SUPER_MAGIC) == (0x000072b6), "JFFS2_SUPER_MAGIC != 0x000072b6"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define JFFS2_SUPER_MAGIC 0x000072b6 +#endif +#if defined(ISOFS_SUPER_MAGIC) || (defined(HAVE_DECL_ISOFS_SUPER_MAGIC) && HAVE_DECL_ISOFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ISOFS_SUPER_MAGIC) == (0x00009660), "ISOFS_SUPER_MAGIC != 0x00009660"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ISOFS_SUPER_MAGIC 0x00009660 +#endif +#if defined(PROC_SUPER_MAGIC) || (defined(HAVE_DECL_PROC_SUPER_MAGIC) && HAVE_DECL_PROC_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PROC_SUPER_MAGIC) == (0x00009fa0), "PROC_SUPER_MAGIC != 0x00009fa0"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PROC_SUPER_MAGIC 0x00009fa0 +#endif +#if defined(OPENPROM_SUPER_MAGIC) || (defined(HAVE_DECL_OPENPROM_SUPER_MAGIC) && HAVE_DECL_OPENPROM_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((OPENPROM_SUPER_MAGIC) == (0x00009fa1), "OPENPROM_SUPER_MAGIC != 0x00009fa1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define OPENPROM_SUPER_MAGIC 0x00009fa1 +#endif +#if defined(USBDEVICE_SUPER_MAGIC) || (defined(HAVE_DECL_USBDEVICE_SUPER_MAGIC) && HAVE_DECL_USBDEVICE_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((USBDEVICE_SUPER_MAGIC) == (0x00009fa2), "USBDEVICE_SUPER_MAGIC != 0x00009fa2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define USBDEVICE_SUPER_MAGIC 0x00009fa2 +#endif +#if defined(ADFS_SUPER_MAGIC) || (defined(HAVE_DECL_ADFS_SUPER_MAGIC) && HAVE_DECL_ADFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ADFS_SUPER_MAGIC) == (0x0000adf5), "ADFS_SUPER_MAGIC != 0x0000adf5"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ADFS_SUPER_MAGIC 0x0000adf5 +#endif +#if defined(AFFS_SUPER_MAGIC) || (defined(HAVE_DECL_AFFS_SUPER_MAGIC) && HAVE_DECL_AFFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AFFS_SUPER_MAGIC) == (0x0000adff), "AFFS_SUPER_MAGIC != 0x0000adff"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AFFS_SUPER_MAGIC 0x0000adff +#endif +#if defined(EXT2_OLD_SUPER_MAGIC) || (defined(HAVE_DECL_EXT2_OLD_SUPER_MAGIC) && HAVE_DECL_EXT2_OLD_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EXT2_OLD_SUPER_MAGIC) == (0x0000ef51), "EXT2_OLD_SUPER_MAGIC != 0x0000ef51"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EXT2_OLD_SUPER_MAGIC 0x0000ef51 +#endif +#if defined(EXT2_SUPER_MAGIC) || (defined(HAVE_DECL_EXT2_SUPER_MAGIC) && HAVE_DECL_EXT2_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EXT2_SUPER_MAGIC) == (0x0000ef53), "EXT2_SUPER_MAGIC != 0x0000ef53"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EXT2_SUPER_MAGIC 0x0000ef53 +#endif +#if defined(ECRYPTFS_SUPER_MAGIC) || (defined(HAVE_DECL_ECRYPTFS_SUPER_MAGIC) && HAVE_DECL_ECRYPTFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ECRYPTFS_SUPER_MAGIC) == (0x0000f15f), "ECRYPTFS_SUPER_MAGIC != 0x0000f15f"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ECRYPTFS_SUPER_MAGIC 0x0000f15f +#endif +#if defined(UFS_MAGIC) || (defined(HAVE_DECL_UFS_MAGIC) && HAVE_DECL_UFS_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((UFS_MAGIC) == (0x00011954), "UFS_MAGIC != 0x00011954"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define UFS_MAGIC 0x00011954 +#endif +#if defined(CGROUP_SUPER_MAGIC) || (defined(HAVE_DECL_CGROUP_SUPER_MAGIC) && HAVE_DECL_CGROUP_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((CGROUP_SUPER_MAGIC) == (0x0027e0eb), "CGROUP_SUPER_MAGIC != 0x0027e0eb"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define CGROUP_SUPER_MAGIC 0x0027e0eb +#endif +#if defined(EFS_SUPER_MAGIC) || (defined(HAVE_DECL_EFS_SUPER_MAGIC) && HAVE_DECL_EFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EFS_SUPER_MAGIC) == (0x00414a53), "EFS_SUPER_MAGIC != 0x00414a53"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EFS_SUPER_MAGIC 0x00414a53 +#endif +#if defined(HOSTFS_SUPER_MAGIC) || (defined(HAVE_DECL_HOSTFS_SUPER_MAGIC) && HAVE_DECL_HOSTFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((HOSTFS_SUPER_MAGIC) == (0x00c0ffee), "HOSTFS_SUPER_MAGIC != 0x00c0ffee"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define HOSTFS_SUPER_MAGIC 0x00c0ffee +#endif +#if defined(CEPH_SUPER_MAGIC) || (defined(HAVE_DECL_CEPH_SUPER_MAGIC) && HAVE_DECL_CEPH_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((CEPH_SUPER_MAGIC) == (0x00c36400), "CEPH_SUPER_MAGIC != 0x00c36400"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define CEPH_SUPER_MAGIC 0x00c36400 +#endif +#if defined(TMPFS_MAGIC) || (defined(HAVE_DECL_TMPFS_MAGIC) && HAVE_DECL_TMPFS_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((TMPFS_MAGIC) == (0x01021994), "TMPFS_MAGIC != 0x01021994"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define TMPFS_MAGIC 0x01021994 +#endif +#if defined(V9FS_MAGIC) || (defined(HAVE_DECL_V9FS_MAGIC) && HAVE_DECL_V9FS_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V9FS_MAGIC) == (0x01021997), "V9FS_MAGIC != 0x01021997"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V9FS_MAGIC 0x01021997 +#endif +#if defined(GFS2_MAGIC) || (defined(HAVE_DECL_GFS2_MAGIC) && HAVE_DECL_GFS2_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((GFS2_MAGIC) == (0x01161970), "GFS2_MAGIC != 0x01161970"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define GFS2_MAGIC 0x01161970 +#endif +#if defined(XIAFS_SUPER_MAGIC) || (defined(HAVE_DECL_XIAFS_SUPER_MAGIC) && HAVE_DECL_XIAFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((XIAFS_SUPER_MAGIC) == (0x012fd16d), "XIAFS_SUPER_MAGIC != 0x012fd16d"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define XIAFS_SUPER_MAGIC 0x012fd16d +#endif +#if defined(XENIX_SUPER_MAGIC) || (defined(HAVE_DECL_XENIX_SUPER_MAGIC) && HAVE_DECL_XENIX_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((XENIX_SUPER_MAGIC) == (0x012ff7b4), "XENIX_SUPER_MAGIC != 0x012ff7b4"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define XENIX_SUPER_MAGIC 0x012ff7b4 +#endif +#if defined(SYSV4_SUPER_MAGIC) || (defined(HAVE_DECL_SYSV4_SUPER_MAGIC) && HAVE_DECL_SYSV4_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SYSV4_SUPER_MAGIC) == (0x012ff7b5), "SYSV4_SUPER_MAGIC != 0x012ff7b5"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SYSV4_SUPER_MAGIC 0x012ff7b5 +#endif +#if defined(SYSV2_SUPER_MAGIC) || (defined(HAVE_DECL_SYSV2_SUPER_MAGIC) && HAVE_DECL_SYSV2_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SYSV2_SUPER_MAGIC) == (0x012ff7b6), "SYSV2_SUPER_MAGIC != 0x012ff7b6"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SYSV2_SUPER_MAGIC 0x012ff7b6 +#endif +#if defined(COH_SUPER_MAGIC) || (defined(HAVE_DECL_COH_SUPER_MAGIC) && HAVE_DECL_COH_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((COH_SUPER_MAGIC) == (0x012ff7b7), "COH_SUPER_MAGIC != 0x012ff7b7"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define COH_SUPER_MAGIC 0x012ff7b7 +#endif +#if defined(SHMFS_SUPER_MAGIC) || (defined(HAVE_DECL_SHMFS_SUPER_MAGIC) && HAVE_DECL_SHMFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SHMFS_SUPER_MAGIC) == (0x02011994), "SHMFS_SUPER_MAGIC != 0x02011994"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SHMFS_SUPER_MAGIC 0x02011994 +#endif +#if defined(ANON_INODE_FS_MAGIC) || (defined(HAVE_DECL_ANON_INODE_FS_MAGIC) && HAVE_DECL_ANON_INODE_FS_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ANON_INODE_FS_MAGIC) == (0x09041934), "ANON_INODE_FS_MAGIC != 0x09041934"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ANON_INODE_FS_MAGIC 0x09041934 +#endif +#if defined(FUTEXFS_SUPER_MAGIC) || (defined(HAVE_DECL_FUTEXFS_SUPER_MAGIC) && HAVE_DECL_FUTEXFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((FUTEXFS_SUPER_MAGIC) == (0x0bad1dea), "FUTEXFS_SUPER_MAGIC != 0x0bad1dea"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define FUTEXFS_SUPER_MAGIC 0x0bad1dea +#endif +#if defined(MTD_INODE_FS_MAGIC) || (defined(HAVE_DECL_MTD_INODE_FS_MAGIC) && HAVE_DECL_MTD_INODE_FS_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MTD_INODE_FS_MAGIC) == (0x11307854), "MTD_INODE_FS_MAGIC != 0x11307854"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MTD_INODE_FS_MAGIC 0x11307854 +#endif +#if defined(BALLOON_KVM_MAGIC) || (defined(HAVE_DECL_BALLOON_KVM_MAGIC) && HAVE_DECL_BALLOON_KVM_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BALLOON_KVM_MAGIC) == (0x13661366), "BALLOON_KVM_MAGIC != 0x13661366"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BALLOON_KVM_MAGIC 0x13661366 +#endif +#if defined(UDF_SUPER_MAGIC) || (defined(HAVE_DECL_UDF_SUPER_MAGIC) && HAVE_DECL_UDF_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((UDF_SUPER_MAGIC) == (0x15013346), "UDF_SUPER_MAGIC != 0x15013346"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define UDF_SUPER_MAGIC 0x15013346 +#endif +#if defined(BFS_MAGIC) || (defined(HAVE_DECL_BFS_MAGIC) && HAVE_DECL_BFS_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BFS_MAGIC) == (0x1badface), "BFS_MAGIC != 0x1badface"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BFS_MAGIC 0x1badface +#endif +#if defined(UBIFS_SUPER_MAGIC) || (defined(HAVE_DECL_UBIFS_SUPER_MAGIC) && HAVE_DECL_UBIFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((UBIFS_SUPER_MAGIC) == (0x24051905), "UBIFS_SUPER_MAGIC != 0x24051905"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define UBIFS_SUPER_MAGIC 0x24051905 +#endif +#if defined(CRAMFS_MAGIC) || (defined(HAVE_DECL_CRAMFS_MAGIC) && HAVE_DECL_CRAMFS_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((CRAMFS_MAGIC) == (0x28cd3d45), "CRAMFS_MAGIC != 0x28cd3d45"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define CRAMFS_MAGIC 0x28cd3d45 +#endif +#if defined(ZFS_SUPER_MAGIC) || (defined(HAVE_DECL_ZFS_SUPER_MAGIC) && HAVE_DECL_ZFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ZFS_SUPER_MAGIC) == (0x2fc12fc1), "ZFS_SUPER_MAGIC != 0x2fc12fc1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ZFS_SUPER_MAGIC 0x2fc12fc1 +#endif +#if defined(JFS_SUPER_MAGIC) || (defined(HAVE_DECL_JFS_SUPER_MAGIC) && HAVE_DECL_JFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((JFS_SUPER_MAGIC) == (0x3153464a), "JFS_SUPER_MAGIC != 0x3153464a"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define JFS_SUPER_MAGIC 0x3153464a +#endif +#if defined(BEFS_SUPER_MAGIC) || (defined(HAVE_DECL_BEFS_SUPER_MAGIC) && HAVE_DECL_BEFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BEFS_SUPER_MAGIC) == (0x42465331), "BEFS_SUPER_MAGIC != 0x42465331"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BEFS_SUPER_MAGIC 0x42465331 +#endif +#if defined(BINFMTFS_MAGIC) || (defined(HAVE_DECL_BINFMTFS_MAGIC) && HAVE_DECL_BINFMTFS_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BINFMTFS_MAGIC) == (0x42494e4d), "BINFMTFS_MAGIC != 0x42494e4d"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BINFMTFS_MAGIC 0x42494e4d +#endif +#if defined(SMACK_MAGIC) || (defined(HAVE_DECL_SMACK_MAGIC) && HAVE_DECL_SMACK_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SMACK_MAGIC) == (0x43415d53), "SMACK_MAGIC != 0x43415d53"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SMACK_MAGIC 0x43415d53 +#endif +#if defined(DMA_BUF_MAGIC) || (defined(HAVE_DECL_DMA_BUF_MAGIC) && HAVE_DECL_DMA_BUF_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((DMA_BUF_MAGIC) == (0x444d4142), "DMA_BUF_MAGIC != 0x444d4142"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define DMA_BUF_MAGIC 0x444d4142 +#endif +#if defined(CRAMFS_MAGIC_WEND) || (defined(HAVE_DECL_CRAMFS_MAGIC_WEND) && HAVE_DECL_CRAMFS_MAGIC_WEND) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((CRAMFS_MAGIC_WEND) == (0x453dcd28), "CRAMFS_MAGIC_WEND != 0x453dcd28"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define CRAMFS_MAGIC_WEND 0x453dcd28 +#endif +#if defined(DEVMEM_MAGIC) || (defined(HAVE_DECL_DEVMEM_MAGIC) && HAVE_DECL_DEVMEM_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((DEVMEM_MAGIC) == (0x454d444d), "DEVMEM_MAGIC != 0x454d444d"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define DEVMEM_MAGIC 0x454d444d +#endif +#if defined(GPFS_SUPER_MAGIC) || (defined(HAVE_DECL_GPFS_SUPER_MAGIC) && HAVE_DECL_GPFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((GPFS_SUPER_MAGIC) == (0x47504653), "GPFS_SUPER_MAGIC != 0x47504653"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define GPFS_SUPER_MAGIC 0x47504653 +#endif +#if defined(PIPEFS_MAGIC) || (defined(HAVE_DECL_PIPEFS_MAGIC) && HAVE_DECL_PIPEFS_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PIPEFS_MAGIC) == (0x50495045), "PIPEFS_MAGIC != 0x50495045"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PIPEFS_MAGIC 0x50495045 +#endif +#if defined(REISERFS_SUPER_MAGIC) || (defined(HAVE_DECL_REISERFS_SUPER_MAGIC) && HAVE_DECL_REISERFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((REISERFS_SUPER_MAGIC) == (0x52654973), "REISERFS_SUPER_MAGIC != 0x52654973"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define REISERFS_SUPER_MAGIC 0x52654973 +#endif +#if defined(AFS_SUPER_MAGIC) || (defined(HAVE_DECL_AFS_SUPER_MAGIC) && HAVE_DECL_AFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AFS_SUPER_MAGIC) == (0x5346414f), "AFS_SUPER_MAGIC != 0x5346414f"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AFS_SUPER_MAGIC 0x5346414f +#endif +#if defined(NTFS_SB_MAGIC) || (defined(HAVE_DECL_NTFS_SB_MAGIC) && HAVE_DECL_NTFS_SB_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((NTFS_SB_MAGIC) == (0x5346544e), "NTFS_SB_MAGIC != 0x5346544e"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define NTFS_SB_MAGIC 0x5346544e +#endif +#if defined(SOCKFS_MAGIC) || (defined(HAVE_DECL_SOCKFS_MAGIC) && HAVE_DECL_SOCKFS_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SOCKFS_MAGIC) == (0x534f434b), "SOCKFS_MAGIC != 0x534f434b"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SOCKFS_MAGIC 0x534f434b +#endif +#if defined(UFS_CIGAM) || (defined(HAVE_DECL_UFS_CIGAM) && HAVE_DECL_UFS_CIGAM) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((UFS_CIGAM) == (0x54190100), "UFS_CIGAM != 0x54190100"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define UFS_CIGAM 0x54190100 +#endif +#if defined(VZFS_SUPER_MAGIC) || (defined(HAVE_DECL_VZFS_SUPER_MAGIC) && HAVE_DECL_VZFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VZFS_SUPER_MAGIC) == (0x565a4653), "VZFS_SUPER_MAGIC != 0x565a4653"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VZFS_SUPER_MAGIC 0x565a4653 +#endif +#if defined(STACK_END_MAGIC) || (defined(HAVE_DECL_STACK_END_MAGIC) && HAVE_DECL_STACK_END_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((STACK_END_MAGIC) == (0x57ac6e9d), "STACK_END_MAGIC != 0x57ac6e9d"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define STACK_END_MAGIC 0x57ac6e9d +#endif +#if defined(ZSMALLOC_MAGIC) || (defined(HAVE_DECL_ZSMALLOC_MAGIC) && HAVE_DECL_ZSMALLOC_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ZSMALLOC_MAGIC) == (0x58295829), "ZSMALLOC_MAGIC != 0x58295829"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ZSMALLOC_MAGIC 0x58295829 +#endif +#if defined(XFS_SB_MAGIC) || (defined(HAVE_DECL_XFS_SB_MAGIC) && HAVE_DECL_XFS_SB_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((XFS_SB_MAGIC) == (0x58465342), "XFS_SB_MAGIC != 0x58465342"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define XFS_SB_MAGIC 0x58465342 +#endif +#if defined(AAFS_MAGIC) || (defined(HAVE_DECL_AAFS_MAGIC) && HAVE_DECL_AAFS_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AAFS_MAGIC) == (0x5a3c69f0), "AAFS_MAGIC != 0x5a3c69f0"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AAFS_MAGIC 0x5a3c69f0 +#endif +#if defined(ZONEFS_MAGIC) || (defined(HAVE_DECL_ZONEFS_MAGIC) && HAVE_DECL_ZONEFS_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ZONEFS_MAGIC) == (0x5a4f4653), "ZONEFS_MAGIC != 0x5a4f4653"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ZONEFS_MAGIC 0x5a4f4653 +#endif +#if defined(PSTOREFS_MAGIC) || (defined(HAVE_DECL_PSTOREFS_MAGIC) && HAVE_DECL_PSTOREFS_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PSTOREFS_MAGIC) == (0x6165676c), "PSTOREFS_MAGIC != 0x6165676c"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PSTOREFS_MAGIC 0x6165676c +#endif +#if defined(AUFS_SUPER_MAGIC) || (defined(HAVE_DECL_AUFS_SUPER_MAGIC) && HAVE_DECL_AUFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUFS_SUPER_MAGIC) == (0x61756673), "AUFS_SUPER_MAGIC != 0x61756673"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUFS_SUPER_MAGIC 0x61756673 +#endif +#if defined(BDEVFS_MAGIC) || (defined(HAVE_DECL_BDEVFS_MAGIC) && HAVE_DECL_BDEVFS_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BDEVFS_MAGIC) == (0x62646576), "BDEVFS_MAGIC != 0x62646576"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BDEVFS_MAGIC 0x62646576 +#endif +#if defined(CONFIGFS_MAGIC) || (defined(HAVE_DECL_CONFIGFS_MAGIC) && HAVE_DECL_CONFIGFS_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((CONFIGFS_MAGIC) == (0x62656570), "CONFIGFS_MAGIC != 0x62656570"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define CONFIGFS_MAGIC 0x62656570 +#endif +#if defined(SYSFS_MAGIC) || (defined(HAVE_DECL_SYSFS_MAGIC) && HAVE_DECL_SYSFS_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SYSFS_MAGIC) == (0x62656572), "SYSFS_MAGIC != 0x62656572"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SYSFS_MAGIC 0x62656572 +#endif +#if defined(CGROUP2_SUPER_MAGIC) || (defined(HAVE_DECL_CGROUP2_SUPER_MAGIC) && HAVE_DECL_CGROUP2_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((CGROUP2_SUPER_MAGIC) == (0x63677270), "CGROUP2_SUPER_MAGIC != 0x63677270"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define CGROUP2_SUPER_MAGIC 0x63677270 +#endif +#if defined(DEBUGFS_MAGIC) || (defined(HAVE_DECL_DEBUGFS_MAGIC) && HAVE_DECL_DEBUGFS_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((DEBUGFS_MAGIC) == (0x64626720), "DEBUGFS_MAGIC != 0x64626720"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define DEBUGFS_MAGIC 0x64626720 +#endif +#if defined(DAXFS_MAGIC) || (defined(HAVE_DECL_DAXFS_MAGIC) && HAVE_DECL_DAXFS_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((DAXFS_MAGIC) == (0x64646178), "DAXFS_MAGIC != 0x64646178"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define DAXFS_MAGIC 0x64646178 +#endif +#if defined(FUSE_CTL_SUPER_MAGIC) || (defined(HAVE_DECL_FUSE_CTL_SUPER_MAGIC) && HAVE_DECL_FUSE_CTL_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((FUSE_CTL_SUPER_MAGIC) == (0x65735543), "FUSE_CTL_SUPER_MAGIC != 0x65735543"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define FUSE_CTL_SUPER_MAGIC 0x65735543 +#endif +#if defined(FUSE_SUPER_MAGIC) || (defined(HAVE_DECL_FUSE_SUPER_MAGIC) && HAVE_DECL_FUSE_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((FUSE_SUPER_MAGIC) == (0x65735546), "FUSE_SUPER_MAGIC != 0x65735546"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define FUSE_SUPER_MAGIC 0x65735546 +#endif +#if defined(QNX6_SUPER_MAGIC) || (defined(HAVE_DECL_QNX6_SUPER_MAGIC) && HAVE_DECL_QNX6_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((QNX6_SUPER_MAGIC) == (0x68191122), "QNX6_SUPER_MAGIC != 0x68191122"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define QNX6_SUPER_MAGIC 0x68191122 +#endif +#if defined(AFS_FS_MAGIC) || (defined(HAVE_DECL_AFS_FS_MAGIC) && HAVE_DECL_AFS_FS_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AFS_FS_MAGIC) == (0x6b414653), "AFS_FS_MAGIC != 0x6b414653"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AFS_FS_MAGIC 0x6b414653 +#endif +#if defined(BINDERFS_SUPER_MAGIC) || (defined(HAVE_DECL_BINDERFS_SUPER_MAGIC) && HAVE_DECL_BINDERFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BINDERFS_SUPER_MAGIC) == (0x6c6f6f70), "BINDERFS_SUPER_MAGIC != 0x6c6f6f70"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BINDERFS_SUPER_MAGIC 0x6c6f6f70 +#endif +#if defined(NSFS_MAGIC) || (defined(HAVE_DECL_NSFS_MAGIC) && HAVE_DECL_NSFS_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((NSFS_MAGIC) == (0x6e736673), "NSFS_MAGIC != 0x6e736673"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define NSFS_MAGIC 0x6e736673 +#endif +#if defined(SECURITYFS_MAGIC) || (defined(HAVE_DECL_SECURITYFS_MAGIC) && HAVE_DECL_SECURITYFS_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SECURITYFS_MAGIC) == (0x73636673), "SECURITYFS_MAGIC != 0x73636673"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SECURITYFS_MAGIC 0x73636673 +#endif +#if defined(SQUASHFS_MAGIC) || (defined(HAVE_DECL_SQUASHFS_MAGIC) && HAVE_DECL_SQUASHFS_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SQUASHFS_MAGIC) == (0x73717368), "SQUASHFS_MAGIC != 0x73717368"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SQUASHFS_MAGIC 0x73717368 +#endif +#if defined(BTRFS_TEST_MAGIC) || (defined(HAVE_DECL_BTRFS_TEST_MAGIC) && HAVE_DECL_BTRFS_TEST_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BTRFS_TEST_MAGIC) == (0x73727279), "BTRFS_TEST_MAGIC != 0x73727279"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BTRFS_TEST_MAGIC 0x73727279 +#endif +#if defined(CODA_SUPER_MAGIC) || (defined(HAVE_DECL_CODA_SUPER_MAGIC) && HAVE_DECL_CODA_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((CODA_SUPER_MAGIC) == (0x73757245), "CODA_SUPER_MAGIC != 0x73757245"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define CODA_SUPER_MAGIC 0x73757245 +#endif +#if defined(OCFS2_SUPER_MAGIC) || (defined(HAVE_DECL_OCFS2_SUPER_MAGIC) && HAVE_DECL_OCFS2_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((OCFS2_SUPER_MAGIC) == (0x7461636f), "OCFS2_SUPER_MAGIC != 0x7461636f"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define OCFS2_SUPER_MAGIC 0x7461636f +#endif +#if defined(TRACEFS_MAGIC) || (defined(HAVE_DECL_TRACEFS_MAGIC) && HAVE_DECL_TRACEFS_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((TRACEFS_MAGIC) == (0x74726163), "TRACEFS_MAGIC != 0x74726163"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define TRACEFS_MAGIC 0x74726163 +#endif +#if defined(OVERLAYFS_SUPER_MAGIC) || (defined(HAVE_DECL_OVERLAYFS_SUPER_MAGIC) && HAVE_DECL_OVERLAYFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((OVERLAYFS_SUPER_MAGIC) == (0x794c7630), "OVERLAYFS_SUPER_MAGIC != 0x794c7630"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define OVERLAYFS_SUPER_MAGIC 0x794c7630 +#endif +#if defined(RAMFS_MAGIC) || (defined(HAVE_DECL_RAMFS_MAGIC) && HAVE_DECL_RAMFS_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RAMFS_MAGIC) == (0x858458f6), "RAMFS_MAGIC != 0x858458f6"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RAMFS_MAGIC 0x858458f6 +#endif +#if defined(BTRFS_SUPER_MAGIC) || (defined(HAVE_DECL_BTRFS_SUPER_MAGIC) && HAVE_DECL_BTRFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BTRFS_SUPER_MAGIC) == (0x9123683e), "BTRFS_SUPER_MAGIC != 0x9123683e"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BTRFS_SUPER_MAGIC 0x9123683e +#endif +#if defined(HUGETLBFS_MAGIC) || (defined(HAVE_DECL_HUGETLBFS_MAGIC) && HAVE_DECL_HUGETLBFS_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((HUGETLBFS_MAGIC) == (0x958458f6), "HUGETLBFS_MAGIC != 0x958458f6"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define HUGETLBFS_MAGIC 0x958458f6 +#endif +#if defined(VXFS_SUPER_MAGIC) || (defined(HAVE_DECL_VXFS_SUPER_MAGIC) && HAVE_DECL_VXFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VXFS_SUPER_MAGIC) == (0xa501fcf5), "VXFS_SUPER_MAGIC != 0xa501fcf5"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VXFS_SUPER_MAGIC 0xa501fcf5 +#endif +#if defined(XENFS_SUPER_MAGIC) || (defined(HAVE_DECL_XENFS_SUPER_MAGIC) && HAVE_DECL_XENFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((XENFS_SUPER_MAGIC) == (0xabba1974), "XENFS_SUPER_MAGIC != 0xabba1974"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define XENFS_SUPER_MAGIC 0xabba1974 +#endif +#if defined(PPC_CMM_MAGIC) || (defined(HAVE_DECL_PPC_CMM_MAGIC) && HAVE_DECL_PPC_CMM_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PPC_CMM_MAGIC) == (0xc7571590), "PPC_CMM_MAGIC != 0xc7571590"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PPC_CMM_MAGIC 0xc7571590 +#endif +#if defined(LOGFS_MAGIC) || (defined(HAVE_DECL_LOGFS_MAGIC) && HAVE_DECL_LOGFS_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((LOGFS_MAGIC) == (0xc97e8168), "LOGFS_MAGIC != 0xc97e8168"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define LOGFS_MAGIC 0xc97e8168 +#endif +#if defined(BPF_FS_MAGIC) || (defined(HAVE_DECL_BPF_FS_MAGIC) && HAVE_DECL_BPF_FS_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((BPF_FS_MAGIC) == (0xcafe4a11), "BPF_FS_MAGIC != 0xcafe4a11"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define BPF_FS_MAGIC 0xcafe4a11 +#endif +#if defined(EFIVARFS_MAGIC) || (defined(HAVE_DECL_EFIVARFS_MAGIC) && HAVE_DECL_EFIVARFS_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EFIVARFS_MAGIC) == (0xde5e81e4), "EFIVARFS_MAGIC != 0xde5e81e4"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EFIVARFS_MAGIC 0xde5e81e4 +#endif +#if defined(EROFS_SUPER_MAGIC_V1) || (defined(HAVE_DECL_EROFS_SUPER_MAGIC_V1) && HAVE_DECL_EROFS_SUPER_MAGIC_V1) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((EROFS_SUPER_MAGIC_V1) == (0xe0f5e1e2), "EROFS_SUPER_MAGIC_V1 != 0xe0f5e1e2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define EROFS_SUPER_MAGIC_V1 0xe0f5e1e2 +#endif +#if defined(F2FS_SUPER_MAGIC) || (defined(HAVE_DECL_F2FS_SUPER_MAGIC) && HAVE_DECL_F2FS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((F2FS_SUPER_MAGIC) == (0xf2f52010), "F2FS_SUPER_MAGIC != 0xf2f52010"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define F2FS_SUPER_MAGIC 0xf2f52010 +#endif +#if defined(SELINUX_MAGIC) || (defined(HAVE_DECL_SELINUX_MAGIC) && HAVE_DECL_SELINUX_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SELINUX_MAGIC) == (0xf97cff8c), "SELINUX_MAGIC != 0xf97cff8c"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SELINUX_MAGIC 0xf97cff8c +#endif +#if defined(HPFS_SUPER_MAGIC) || (defined(HAVE_DECL_HPFS_SUPER_MAGIC) && HAVE_DECL_HPFS_SUPER_MAGIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((HPFS_SUPER_MAGIC) == (0xf995e849), "HPFS_SUPER_MAGIC != 0xf995e849"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define HPFS_SUPER_MAGIC 0xf995e849 +#endif +#if defined(SMB2_MAGIC_NUMBER) || (defined(HAVE_DECL_SMB2_MAGIC_NUMBER) && HAVE_DECL_SMB2_MAGIC_NUMBER) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SMB2_MAGIC_NUMBER) == (0xfe534d42), "SMB2_MAGIC_NUMBER != 0xfe534d42"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SMB2_MAGIC_NUMBER 0xfe534d42 +#endif +#if defined(CIFS_MAGIC_NUMBER) || (defined(HAVE_DECL_CIFS_MAGIC_NUMBER) && HAVE_DECL_CIFS_MAGIC_NUMBER) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((CIFS_MAGIC_NUMBER) == (0xff534d42), "CIFS_MAGIC_NUMBER != 0xff534d42"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define CIFS_MAGIC_NUMBER 0xff534d42 +#endif #ifndef XLAT_MACROS_ONLY @@ -12,115 +775,1218 @@ # else -static -const struct xlat fsmagic[] = { - -{ 0x0000002f, "QNX4_SUPER_MAGIC" }, -{ 0x00000187, "AUTOFS_SUPER_MAGIC" }, -{ 0x00001373, "DEVFS_SUPER_MAGIC" }, -{ 0x0000137d, "EXT_SUPER_MAGIC" }, -{ 0x0000137f, "MINIX_SUPER_MAGIC" }, -{ 0x0000138f, "MINIX_SUPER_MAGIC2" }, -{ 0x00001cd1, "DEVPTS_SUPER_MAGIC" }, -{ 0x00002468, "MINIX2_SUPER_MAGIC" }, -{ 0x00002478, "MINIX2_SUPER_MAGIC2" }, -{ 0x00003434, "NILFS_SUPER_MAGIC" }, -{ 0x00004244, "HFS_SUPER_MAGIC" }, -{ 0x0000482b, "HFSPLUS_SUPER_MAGIC" }, -{ 0x00004d44, "MSDOS_SUPER_MAGIC" }, -{ 0x00004d5a, "MINIX3_SUPER_MAGIC" }, -{ 0x0000517b, "SMB_SUPER_MAGIC" }, -{ 0x0000564c, "NCP_SUPER_MAGIC" }, -{ 0x00005df5, "EXOFS_SUPER_MAGIC" }, -{ 0x00006969, "NFS_SUPER_MAGIC" }, -{ 0x00007275, "ROMFS_MAGIC" }, -{ 0x000072b6, "JFFS2_SUPER_MAGIC" }, -{ 0x00009660, "ISOFS_SUPER_MAGIC" }, -{ 0x00009fa0, "PROC_SUPER_MAGIC" }, -{ 0x00009fa1, "OPENPROM_SUPER_MAGIC" }, -{ 0x00009fa2, "USBDEVICE_SUPER_MAGIC" }, -{ 0x0000adf5, "ADFS_SUPER_MAGIC" }, -{ 0x0000adff, "AFFS_SUPER_MAGIC" }, -{ 0x0000ef51, "EXT2_OLD_SUPER_MAGIC" }, -{ 0x0000ef53, "EXT2_SUPER_MAGIC" }, -{ 0x0000f15f, "ECRYPTFS_SUPER_MAGIC" }, -{ 0x00011954, "UFS_MAGIC" }, -{ 0x0027e0eb, "CGROUP_SUPER_MAGIC" }, -{ 0x00414a53, "EFS_SUPER_MAGIC" }, -{ 0x00c0ffee, "HOSTFS_SUPER_MAGIC" }, -{ 0x00c36400, "CEPH_SUPER_MAGIC" }, -{ 0x01021994, "TMPFS_MAGIC" }, -{ 0x01021997, "V9FS_MAGIC" }, -{ 0x01161970, "GFS2_MAGIC" }, -{ 0x012fd16d, "XIAFS_SUPER_MAGIC" }, -{ 0x012ff7b4, "XENIX_SUPER_MAGIC" }, -{ 0x012ff7b5, "SYSV4_SUPER_MAGIC" }, -{ 0x012ff7b6, "SYSV2_SUPER_MAGIC" }, -{ 0x012ff7b7, "COH_SUPER_MAGIC" }, -{ 0x02011994, "SHMFS_SUPER_MAGIC" }, -{ 0x09041934, "ANON_INODE_FS_MAGIC" }, -{ 0x0bad1dea, "FUTEXFS_SUPER_MAGIC" }, -{ 0x11307854, "MTD_INODE_FS_MAGIC" }, -{ 0x13661366, "BALLOON_KVM_MAGIC" }, -{ 0x15013346, "UDF_SUPER_MAGIC" }, -{ 0x1badface, "BFS_MAGIC" }, -{ 0x24051905, "UBIFS_SUPER_MAGIC" }, -{ 0x28cd3d45, "CRAMFS_MAGIC" }, -{ 0x2fc12fc1, "ZFS_SUPER_MAGIC" }, -{ 0x3153464a, "JFS_SUPER_MAGIC" }, -{ 0x42465331, "BEFS_SUPER_MAGIC" }, -{ 0x42494e4d, "BINFMTFS_MAGIC" }, -{ 0x43415d53, "SMACK_MAGIC" }, -{ 0x453dcd28, "CRAMFS_MAGIC_WEND" }, -{ 0x47504653, "GPFS_SUPER_MAGIC" }, -{ 0x50495045, "PIPEFS_MAGIC" }, -{ 0x52654973, "REISERFS_SUPER_MAGIC" }, -{ 0x5346414f, "AFS_SUPER_MAGIC" }, -{ 0x5346544e, "NTFS_SB_MAGIC" }, -{ 0x534f434b, "SOCKFS_MAGIC" }, -{ 0x54190100, "UFS_CIGAM" }, -{ 0x565a4653, "VZFS_SUPER_MAGIC" }, -{ 0x57ac6e9d, "STACK_END_MAGIC" }, -{ 0x58295829, "ZSMALLOC_MAGIC" }, -{ 0x58465342, "XFS_SB_MAGIC" }, -{ 0x5a3c69f0, "AAFS_MAGIC" }, -{ 0x6165676c, "PSTOREFS_MAGIC" }, -{ 0x61756673, "AUFS_SUPER_MAGIC" }, -{ 0x62646576, "BDEVFS_MAGIC" }, -{ 0x62656570, "CONFIGFS_MAGIC" }, -{ 0x62656572, "SYSFS_MAGIC" }, -{ 0x63677270, "CGROUP2_SUPER_MAGIC" }, -{ 0x64626720, "DEBUGFS_MAGIC" }, -{ 0x64646178, "DAXFS_MAGIC" }, -{ 0x65735543, "FUSE_CTL_SUPER_MAGIC" }, -{ 0x65735546, "FUSE_SUPER_MAGIC" }, -{ 0x68191122, "QNX6_SUPER_MAGIC" }, -{ 0x6b414653, "AFS_FS_MAGIC" }, -{ 0x6c6f6f70, "BINDERFS_SUPER_MAGIC" }, -{ 0x6e736673, "NSFS_MAGIC" }, -{ 0x73636673, "SECURITYFS_MAGIC" }, -{ 0x73717368, "SQUASHFS_MAGIC" }, -{ 0x73727279, "BTRFS_TEST_MAGIC" }, -{ 0x73757245, "CODA_SUPER_MAGIC" }, -{ 0x7461636f, "OCFS2_SUPER_MAGIC" }, -{ 0x74726163, "TRACEFS_MAGIC" }, -{ 0x794c7630, "OVERLAYFS_SUPER_MAGIC" }, -{ 0x858458f6, "RAMFS_MAGIC" }, -{ 0x9123683e, "BTRFS_SUPER_MAGIC" }, -{ 0x958458f6, "HUGETLBFS_MAGIC" }, -{ 0xa501fcf5, "VXFS_SUPER_MAGIC" }, -{ 0xabba1974, "XENFS_SUPER_MAGIC" }, -{ 0xc97e8168, "LOGFS_MAGIC" }, -{ 0xcafe4a11, "BPF_FS_MAGIC" }, -{ 0xde5e81e4, "EFIVARFS_MAGIC" }, -{ 0xf2f52010, "F2FS_SUPER_MAGIC" }, -{ 0xf97cff8c, "SELINUX_MAGIC" }, -{ 0xf995e849, "HPFS_SUPER_MAGIC" }, -{ 0xfe534d42, "SMB2_MAGIC_NUMBER" }, -{ 0xff534d42, "CIFS_MAGIC_NUMBER" }, - XLAT_END +static const struct xlat_data fsmagic_xdata[] = { + XLAT(QNX4_SUPER_MAGIC), + #define XLAT_VAL_0 ((unsigned) (QNX4_SUPER_MAGIC)) + #define XLAT_STR_0 STRINGIFY(QNX4_SUPER_MAGIC) + XLAT(Z3FOLD_MAGIC), + #define XLAT_VAL_1 ((unsigned) (Z3FOLD_MAGIC)) + #define XLAT_STR_1 STRINGIFY(Z3FOLD_MAGIC) + XLAT(AUTOFS_SUPER_MAGIC), + #define XLAT_VAL_2 ((unsigned) (AUTOFS_SUPER_MAGIC)) + #define XLAT_STR_2 STRINGIFY(AUTOFS_SUPER_MAGIC) + XLAT(DEVFS_SUPER_MAGIC), + #define XLAT_VAL_3 ((unsigned) (DEVFS_SUPER_MAGIC)) + #define XLAT_STR_3 STRINGIFY(DEVFS_SUPER_MAGIC) + XLAT(EXT_SUPER_MAGIC), + #define XLAT_VAL_4 ((unsigned) (EXT_SUPER_MAGIC)) + #define XLAT_STR_4 STRINGIFY(EXT_SUPER_MAGIC) + XLAT(MINIX_SUPER_MAGIC), + #define XLAT_VAL_5 ((unsigned) (MINIX_SUPER_MAGIC)) + #define XLAT_STR_5 STRINGIFY(MINIX_SUPER_MAGIC) + XLAT(MINIX_SUPER_MAGIC2), + #define XLAT_VAL_6 ((unsigned) (MINIX_SUPER_MAGIC2)) + #define XLAT_STR_6 STRINGIFY(MINIX_SUPER_MAGIC2) + XLAT(DEVPTS_SUPER_MAGIC), + #define XLAT_VAL_7 ((unsigned) (DEVPTS_SUPER_MAGIC)) + #define XLAT_STR_7 STRINGIFY(DEVPTS_SUPER_MAGIC) + XLAT(MINIX2_SUPER_MAGIC), + #define XLAT_VAL_8 ((unsigned) (MINIX2_SUPER_MAGIC)) + #define XLAT_STR_8 STRINGIFY(MINIX2_SUPER_MAGIC) + XLAT(MINIX2_SUPER_MAGIC2), + #define XLAT_VAL_9 ((unsigned) (MINIX2_SUPER_MAGIC2)) + #define XLAT_STR_9 STRINGIFY(MINIX2_SUPER_MAGIC2) + XLAT(NILFS_SUPER_MAGIC), + #define XLAT_VAL_10 ((unsigned) (NILFS_SUPER_MAGIC)) + #define XLAT_STR_10 STRINGIFY(NILFS_SUPER_MAGIC) + XLAT(HFS_SUPER_MAGIC), + #define XLAT_VAL_11 ((unsigned) (HFS_SUPER_MAGIC)) + #define XLAT_STR_11 STRINGIFY(HFS_SUPER_MAGIC) + XLAT(HFSPLUS_SUPER_MAGIC), + #define XLAT_VAL_12 ((unsigned) (HFSPLUS_SUPER_MAGIC)) + #define XLAT_STR_12 STRINGIFY(HFSPLUS_SUPER_MAGIC) + XLAT(MSDOS_SUPER_MAGIC), + #define XLAT_VAL_13 ((unsigned) (MSDOS_SUPER_MAGIC)) + #define XLAT_STR_13 STRINGIFY(MSDOS_SUPER_MAGIC) + XLAT(MINIX3_SUPER_MAGIC), + #define XLAT_VAL_14 ((unsigned) (MINIX3_SUPER_MAGIC)) + #define XLAT_STR_14 STRINGIFY(MINIX3_SUPER_MAGIC) + XLAT(SMB_SUPER_MAGIC), + #define XLAT_VAL_15 ((unsigned) (SMB_SUPER_MAGIC)) + #define XLAT_STR_15 STRINGIFY(SMB_SUPER_MAGIC) + XLAT(NCP_SUPER_MAGIC), + #define XLAT_VAL_16 ((unsigned) (NCP_SUPER_MAGIC)) + #define XLAT_STR_16 STRINGIFY(NCP_SUPER_MAGIC) + XLAT(EXOFS_SUPER_MAGIC), + #define XLAT_VAL_17 ((unsigned) (EXOFS_SUPER_MAGIC)) + #define XLAT_STR_17 STRINGIFY(EXOFS_SUPER_MAGIC) + XLAT(NFS_SUPER_MAGIC), + #define XLAT_VAL_18 ((unsigned) (NFS_SUPER_MAGIC)) + #define XLAT_STR_18 STRINGIFY(NFS_SUPER_MAGIC) + XLAT(ROMFS_MAGIC), + #define XLAT_VAL_19 ((unsigned) (ROMFS_MAGIC)) + #define XLAT_STR_19 STRINGIFY(ROMFS_MAGIC) + XLAT(JFFS2_SUPER_MAGIC), + #define XLAT_VAL_20 ((unsigned) (JFFS2_SUPER_MAGIC)) + #define XLAT_STR_20 STRINGIFY(JFFS2_SUPER_MAGIC) + XLAT(ISOFS_SUPER_MAGIC), + #define XLAT_VAL_21 ((unsigned) (ISOFS_SUPER_MAGIC)) + #define XLAT_STR_21 STRINGIFY(ISOFS_SUPER_MAGIC) + XLAT(PROC_SUPER_MAGIC), + #define XLAT_VAL_22 ((unsigned) (PROC_SUPER_MAGIC)) + #define XLAT_STR_22 STRINGIFY(PROC_SUPER_MAGIC) + XLAT(OPENPROM_SUPER_MAGIC), + #define XLAT_VAL_23 ((unsigned) (OPENPROM_SUPER_MAGIC)) + #define XLAT_STR_23 STRINGIFY(OPENPROM_SUPER_MAGIC) + XLAT(USBDEVICE_SUPER_MAGIC), + #define XLAT_VAL_24 ((unsigned) (USBDEVICE_SUPER_MAGIC)) + #define XLAT_STR_24 STRINGIFY(USBDEVICE_SUPER_MAGIC) + XLAT(ADFS_SUPER_MAGIC), + #define XLAT_VAL_25 ((unsigned) (ADFS_SUPER_MAGIC)) + #define XLAT_STR_25 STRINGIFY(ADFS_SUPER_MAGIC) + XLAT(AFFS_SUPER_MAGIC), + #define XLAT_VAL_26 ((unsigned) (AFFS_SUPER_MAGIC)) + #define XLAT_STR_26 STRINGIFY(AFFS_SUPER_MAGIC) + XLAT(EXT2_OLD_SUPER_MAGIC), + #define XLAT_VAL_27 ((unsigned) (EXT2_OLD_SUPER_MAGIC)) + #define XLAT_STR_27 STRINGIFY(EXT2_OLD_SUPER_MAGIC) + XLAT(EXT2_SUPER_MAGIC), + #define XLAT_VAL_28 ((unsigned) (EXT2_SUPER_MAGIC)) + #define XLAT_STR_28 STRINGIFY(EXT2_SUPER_MAGIC) + XLAT(ECRYPTFS_SUPER_MAGIC), + #define XLAT_VAL_29 ((unsigned) (ECRYPTFS_SUPER_MAGIC)) + #define XLAT_STR_29 STRINGIFY(ECRYPTFS_SUPER_MAGIC) + XLAT(UFS_MAGIC), + #define XLAT_VAL_30 ((unsigned) (UFS_MAGIC)) + #define XLAT_STR_30 STRINGIFY(UFS_MAGIC) + XLAT(CGROUP_SUPER_MAGIC), + #define XLAT_VAL_31 ((unsigned) (CGROUP_SUPER_MAGIC)) + #define XLAT_STR_31 STRINGIFY(CGROUP_SUPER_MAGIC) + XLAT(EFS_SUPER_MAGIC), + #define XLAT_VAL_32 ((unsigned) (EFS_SUPER_MAGIC)) + #define XLAT_STR_32 STRINGIFY(EFS_SUPER_MAGIC) + XLAT(HOSTFS_SUPER_MAGIC), + #define XLAT_VAL_33 ((unsigned) (HOSTFS_SUPER_MAGIC)) + #define XLAT_STR_33 STRINGIFY(HOSTFS_SUPER_MAGIC) + XLAT(CEPH_SUPER_MAGIC), + #define XLAT_VAL_34 ((unsigned) (CEPH_SUPER_MAGIC)) + #define XLAT_STR_34 STRINGIFY(CEPH_SUPER_MAGIC) + XLAT(TMPFS_MAGIC), + #define XLAT_VAL_35 ((unsigned) (TMPFS_MAGIC)) + #define XLAT_STR_35 STRINGIFY(TMPFS_MAGIC) + XLAT(V9FS_MAGIC), + #define XLAT_VAL_36 ((unsigned) (V9FS_MAGIC)) + #define XLAT_STR_36 STRINGIFY(V9FS_MAGIC) + XLAT(GFS2_MAGIC), + #define XLAT_VAL_37 ((unsigned) (GFS2_MAGIC)) + #define XLAT_STR_37 STRINGIFY(GFS2_MAGIC) + XLAT(XIAFS_SUPER_MAGIC), + #define XLAT_VAL_38 ((unsigned) (XIAFS_SUPER_MAGIC)) + #define XLAT_STR_38 STRINGIFY(XIAFS_SUPER_MAGIC) + XLAT(XENIX_SUPER_MAGIC), + #define XLAT_VAL_39 ((unsigned) (XENIX_SUPER_MAGIC)) + #define XLAT_STR_39 STRINGIFY(XENIX_SUPER_MAGIC) + XLAT(SYSV4_SUPER_MAGIC), + #define XLAT_VAL_40 ((unsigned) (SYSV4_SUPER_MAGIC)) + #define XLAT_STR_40 STRINGIFY(SYSV4_SUPER_MAGIC) + XLAT(SYSV2_SUPER_MAGIC), + #define XLAT_VAL_41 ((unsigned) (SYSV2_SUPER_MAGIC)) + #define XLAT_STR_41 STRINGIFY(SYSV2_SUPER_MAGIC) + XLAT(COH_SUPER_MAGIC), + #define XLAT_VAL_42 ((unsigned) (COH_SUPER_MAGIC)) + #define XLAT_STR_42 STRINGIFY(COH_SUPER_MAGIC) + XLAT(SHMFS_SUPER_MAGIC), + #define XLAT_VAL_43 ((unsigned) (SHMFS_SUPER_MAGIC)) + #define XLAT_STR_43 STRINGIFY(SHMFS_SUPER_MAGIC) + XLAT(ANON_INODE_FS_MAGIC), + #define XLAT_VAL_44 ((unsigned) (ANON_INODE_FS_MAGIC)) + #define XLAT_STR_44 STRINGIFY(ANON_INODE_FS_MAGIC) + XLAT(FUTEXFS_SUPER_MAGIC), + #define XLAT_VAL_45 ((unsigned) (FUTEXFS_SUPER_MAGIC)) + #define XLAT_STR_45 STRINGIFY(FUTEXFS_SUPER_MAGIC) + XLAT(MTD_INODE_FS_MAGIC), + #define XLAT_VAL_46 ((unsigned) (MTD_INODE_FS_MAGIC)) + #define XLAT_STR_46 STRINGIFY(MTD_INODE_FS_MAGIC) + XLAT(BALLOON_KVM_MAGIC), + #define XLAT_VAL_47 ((unsigned) (BALLOON_KVM_MAGIC)) + #define XLAT_STR_47 STRINGIFY(BALLOON_KVM_MAGIC) + XLAT(UDF_SUPER_MAGIC), + #define XLAT_VAL_48 ((unsigned) (UDF_SUPER_MAGIC)) + #define XLAT_STR_48 STRINGIFY(UDF_SUPER_MAGIC) + XLAT(BFS_MAGIC), + #define XLAT_VAL_49 ((unsigned) (BFS_MAGIC)) + #define XLAT_STR_49 STRINGIFY(BFS_MAGIC) + XLAT(UBIFS_SUPER_MAGIC), + #define XLAT_VAL_50 ((unsigned) (UBIFS_SUPER_MAGIC)) + #define XLAT_STR_50 STRINGIFY(UBIFS_SUPER_MAGIC) + XLAT(CRAMFS_MAGIC), + #define XLAT_VAL_51 ((unsigned) (CRAMFS_MAGIC)) + #define XLAT_STR_51 STRINGIFY(CRAMFS_MAGIC) + XLAT(ZFS_SUPER_MAGIC), + #define XLAT_VAL_52 ((unsigned) (ZFS_SUPER_MAGIC)) + #define XLAT_STR_52 STRINGIFY(ZFS_SUPER_MAGIC) + XLAT(JFS_SUPER_MAGIC), + #define XLAT_VAL_53 ((unsigned) (JFS_SUPER_MAGIC)) + #define XLAT_STR_53 STRINGIFY(JFS_SUPER_MAGIC) + XLAT(BEFS_SUPER_MAGIC), + #define XLAT_VAL_54 ((unsigned) (BEFS_SUPER_MAGIC)) + #define XLAT_STR_54 STRINGIFY(BEFS_SUPER_MAGIC) + XLAT(BINFMTFS_MAGIC), + #define XLAT_VAL_55 ((unsigned) (BINFMTFS_MAGIC)) + #define XLAT_STR_55 STRINGIFY(BINFMTFS_MAGIC) + XLAT(SMACK_MAGIC), + #define XLAT_VAL_56 ((unsigned) (SMACK_MAGIC)) + #define XLAT_STR_56 STRINGIFY(SMACK_MAGIC) + XLAT(DMA_BUF_MAGIC), + #define XLAT_VAL_57 ((unsigned) (DMA_BUF_MAGIC)) + #define XLAT_STR_57 STRINGIFY(DMA_BUF_MAGIC) + XLAT(CRAMFS_MAGIC_WEND), + #define XLAT_VAL_58 ((unsigned) (CRAMFS_MAGIC_WEND)) + #define XLAT_STR_58 STRINGIFY(CRAMFS_MAGIC_WEND) + XLAT(DEVMEM_MAGIC), + #define XLAT_VAL_59 ((unsigned) (DEVMEM_MAGIC)) + #define XLAT_STR_59 STRINGIFY(DEVMEM_MAGIC) + XLAT(GPFS_SUPER_MAGIC), + #define XLAT_VAL_60 ((unsigned) (GPFS_SUPER_MAGIC)) + #define XLAT_STR_60 STRINGIFY(GPFS_SUPER_MAGIC) + XLAT(PIPEFS_MAGIC), + #define XLAT_VAL_61 ((unsigned) (PIPEFS_MAGIC)) + #define XLAT_STR_61 STRINGIFY(PIPEFS_MAGIC) + XLAT(REISERFS_SUPER_MAGIC), + #define XLAT_VAL_62 ((unsigned) (REISERFS_SUPER_MAGIC)) + #define XLAT_STR_62 STRINGIFY(REISERFS_SUPER_MAGIC) + XLAT(AFS_SUPER_MAGIC), + #define XLAT_VAL_63 ((unsigned) (AFS_SUPER_MAGIC)) + #define XLAT_STR_63 STRINGIFY(AFS_SUPER_MAGIC) + XLAT(NTFS_SB_MAGIC), + #define XLAT_VAL_64 ((unsigned) (NTFS_SB_MAGIC)) + #define XLAT_STR_64 STRINGIFY(NTFS_SB_MAGIC) + XLAT(SOCKFS_MAGIC), + #define XLAT_VAL_65 ((unsigned) (SOCKFS_MAGIC)) + #define XLAT_STR_65 STRINGIFY(SOCKFS_MAGIC) + XLAT(UFS_CIGAM), + #define XLAT_VAL_66 ((unsigned) (UFS_CIGAM)) + #define XLAT_STR_66 STRINGIFY(UFS_CIGAM) + XLAT(VZFS_SUPER_MAGIC), + #define XLAT_VAL_67 ((unsigned) (VZFS_SUPER_MAGIC)) + #define XLAT_STR_67 STRINGIFY(VZFS_SUPER_MAGIC) + XLAT(STACK_END_MAGIC), + #define XLAT_VAL_68 ((unsigned) (STACK_END_MAGIC)) + #define XLAT_STR_68 STRINGIFY(STACK_END_MAGIC) + XLAT(ZSMALLOC_MAGIC), + #define XLAT_VAL_69 ((unsigned) (ZSMALLOC_MAGIC)) + #define XLAT_STR_69 STRINGIFY(ZSMALLOC_MAGIC) + XLAT(XFS_SB_MAGIC), + #define XLAT_VAL_70 ((unsigned) (XFS_SB_MAGIC)) + #define XLAT_STR_70 STRINGIFY(XFS_SB_MAGIC) + XLAT(AAFS_MAGIC), + #define XLAT_VAL_71 ((unsigned) (AAFS_MAGIC)) + #define XLAT_STR_71 STRINGIFY(AAFS_MAGIC) + XLAT(ZONEFS_MAGIC), + #define XLAT_VAL_72 ((unsigned) (ZONEFS_MAGIC)) + #define XLAT_STR_72 STRINGIFY(ZONEFS_MAGIC) + XLAT(PSTOREFS_MAGIC), + #define XLAT_VAL_73 ((unsigned) (PSTOREFS_MAGIC)) + #define XLAT_STR_73 STRINGIFY(PSTOREFS_MAGIC) + XLAT(AUFS_SUPER_MAGIC), + #define XLAT_VAL_74 ((unsigned) (AUFS_SUPER_MAGIC)) + #define XLAT_STR_74 STRINGIFY(AUFS_SUPER_MAGIC) + XLAT(BDEVFS_MAGIC), + #define XLAT_VAL_75 ((unsigned) (BDEVFS_MAGIC)) + #define XLAT_STR_75 STRINGIFY(BDEVFS_MAGIC) + XLAT(CONFIGFS_MAGIC), + #define XLAT_VAL_76 ((unsigned) (CONFIGFS_MAGIC)) + #define XLAT_STR_76 STRINGIFY(CONFIGFS_MAGIC) + XLAT(SYSFS_MAGIC), + #define XLAT_VAL_77 ((unsigned) (SYSFS_MAGIC)) + #define XLAT_STR_77 STRINGIFY(SYSFS_MAGIC) + XLAT(CGROUP2_SUPER_MAGIC), + #define XLAT_VAL_78 ((unsigned) (CGROUP2_SUPER_MAGIC)) + #define XLAT_STR_78 STRINGIFY(CGROUP2_SUPER_MAGIC) + XLAT(DEBUGFS_MAGIC), + #define XLAT_VAL_79 ((unsigned) (DEBUGFS_MAGIC)) + #define XLAT_STR_79 STRINGIFY(DEBUGFS_MAGIC) + XLAT(DAXFS_MAGIC), + #define XLAT_VAL_80 ((unsigned) (DAXFS_MAGIC)) + #define XLAT_STR_80 STRINGIFY(DAXFS_MAGIC) + XLAT(FUSE_CTL_SUPER_MAGIC), + #define XLAT_VAL_81 ((unsigned) (FUSE_CTL_SUPER_MAGIC)) + #define XLAT_STR_81 STRINGIFY(FUSE_CTL_SUPER_MAGIC) + XLAT(FUSE_SUPER_MAGIC), + #define XLAT_VAL_82 ((unsigned) (FUSE_SUPER_MAGIC)) + #define XLAT_STR_82 STRINGIFY(FUSE_SUPER_MAGIC) + XLAT(QNX6_SUPER_MAGIC), + #define XLAT_VAL_83 ((unsigned) (QNX6_SUPER_MAGIC)) + #define XLAT_STR_83 STRINGIFY(QNX6_SUPER_MAGIC) + XLAT(AFS_FS_MAGIC), + #define XLAT_VAL_84 ((unsigned) (AFS_FS_MAGIC)) + #define XLAT_STR_84 STRINGIFY(AFS_FS_MAGIC) + XLAT(BINDERFS_SUPER_MAGIC), + #define XLAT_VAL_85 ((unsigned) (BINDERFS_SUPER_MAGIC)) + #define XLAT_STR_85 STRINGIFY(BINDERFS_SUPER_MAGIC) + XLAT(NSFS_MAGIC), + #define XLAT_VAL_86 ((unsigned) (NSFS_MAGIC)) + #define XLAT_STR_86 STRINGIFY(NSFS_MAGIC) + XLAT(SECURITYFS_MAGIC), + #define XLAT_VAL_87 ((unsigned) (SECURITYFS_MAGIC)) + #define XLAT_STR_87 STRINGIFY(SECURITYFS_MAGIC) + XLAT(SQUASHFS_MAGIC), + #define XLAT_VAL_88 ((unsigned) (SQUASHFS_MAGIC)) + #define XLAT_STR_88 STRINGIFY(SQUASHFS_MAGIC) + XLAT(BTRFS_TEST_MAGIC), + #define XLAT_VAL_89 ((unsigned) (BTRFS_TEST_MAGIC)) + #define XLAT_STR_89 STRINGIFY(BTRFS_TEST_MAGIC) + XLAT(CODA_SUPER_MAGIC), + #define XLAT_VAL_90 ((unsigned) (CODA_SUPER_MAGIC)) + #define XLAT_STR_90 STRINGIFY(CODA_SUPER_MAGIC) + XLAT(OCFS2_SUPER_MAGIC), + #define XLAT_VAL_91 ((unsigned) (OCFS2_SUPER_MAGIC)) + #define XLAT_STR_91 STRINGIFY(OCFS2_SUPER_MAGIC) + XLAT(TRACEFS_MAGIC), + #define XLAT_VAL_92 ((unsigned) (TRACEFS_MAGIC)) + #define XLAT_STR_92 STRINGIFY(TRACEFS_MAGIC) + XLAT(OVERLAYFS_SUPER_MAGIC), + #define XLAT_VAL_93 ((unsigned) (OVERLAYFS_SUPER_MAGIC)) + #define XLAT_STR_93 STRINGIFY(OVERLAYFS_SUPER_MAGIC) + XLAT(RAMFS_MAGIC), + #define XLAT_VAL_94 ((unsigned) (RAMFS_MAGIC)) + #define XLAT_STR_94 STRINGIFY(RAMFS_MAGIC) + XLAT(BTRFS_SUPER_MAGIC), + #define XLAT_VAL_95 ((unsigned) (BTRFS_SUPER_MAGIC)) + #define XLAT_STR_95 STRINGIFY(BTRFS_SUPER_MAGIC) + XLAT(HUGETLBFS_MAGIC), + #define XLAT_VAL_96 ((unsigned) (HUGETLBFS_MAGIC)) + #define XLAT_STR_96 STRINGIFY(HUGETLBFS_MAGIC) + XLAT(VXFS_SUPER_MAGIC), + #define XLAT_VAL_97 ((unsigned) (VXFS_SUPER_MAGIC)) + #define XLAT_STR_97 STRINGIFY(VXFS_SUPER_MAGIC) + XLAT(XENFS_SUPER_MAGIC), + #define XLAT_VAL_98 ((unsigned) (XENFS_SUPER_MAGIC)) + #define XLAT_STR_98 STRINGIFY(XENFS_SUPER_MAGIC) + XLAT(PPC_CMM_MAGIC), + #define XLAT_VAL_99 ((unsigned) (PPC_CMM_MAGIC)) + #define XLAT_STR_99 STRINGIFY(PPC_CMM_MAGIC) + XLAT(LOGFS_MAGIC), + #define XLAT_VAL_100 ((unsigned) (LOGFS_MAGIC)) + #define XLAT_STR_100 STRINGIFY(LOGFS_MAGIC) + XLAT(BPF_FS_MAGIC), + #define XLAT_VAL_101 ((unsigned) (BPF_FS_MAGIC)) + #define XLAT_STR_101 STRINGIFY(BPF_FS_MAGIC) + XLAT(EFIVARFS_MAGIC), + #define XLAT_VAL_102 ((unsigned) (EFIVARFS_MAGIC)) + #define XLAT_STR_102 STRINGIFY(EFIVARFS_MAGIC) + XLAT(EROFS_SUPER_MAGIC_V1), + #define XLAT_VAL_103 ((unsigned) (EROFS_SUPER_MAGIC_V1)) + #define XLAT_STR_103 STRINGIFY(EROFS_SUPER_MAGIC_V1) + XLAT(F2FS_SUPER_MAGIC), + #define XLAT_VAL_104 ((unsigned) (F2FS_SUPER_MAGIC)) + #define XLAT_STR_104 STRINGIFY(F2FS_SUPER_MAGIC) + XLAT(SELINUX_MAGIC), + #define XLAT_VAL_105 ((unsigned) (SELINUX_MAGIC)) + #define XLAT_STR_105 STRINGIFY(SELINUX_MAGIC) + XLAT(HPFS_SUPER_MAGIC), + #define XLAT_VAL_106 ((unsigned) (HPFS_SUPER_MAGIC)) + #define XLAT_STR_106 STRINGIFY(HPFS_SUPER_MAGIC) + XLAT(SMB2_MAGIC_NUMBER), + #define XLAT_VAL_107 ((unsigned) (SMB2_MAGIC_NUMBER)) + #define XLAT_STR_107 STRINGIFY(SMB2_MAGIC_NUMBER) + XLAT(CIFS_MAGIC_NUMBER), + #define XLAT_VAL_108 ((unsigned) (CIFS_MAGIC_NUMBER)) + #define XLAT_STR_108 STRINGIFY(CIFS_MAGIC_NUMBER) }; +static +const struct xlat fsmagic[1] = { { + .data = fsmagic_xdata, + .size = ARRAY_SIZE(fsmagic_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif +# ifdef XLAT_VAL_41 + | XLAT_VAL_41 +# endif +# ifdef XLAT_VAL_42 + | XLAT_VAL_42 +# endif +# ifdef XLAT_VAL_43 + | XLAT_VAL_43 +# endif +# ifdef XLAT_VAL_44 + | XLAT_VAL_44 +# endif +# ifdef XLAT_VAL_45 + | XLAT_VAL_45 +# endif +# ifdef XLAT_VAL_46 + | XLAT_VAL_46 +# endif +# ifdef XLAT_VAL_47 + | XLAT_VAL_47 +# endif +# ifdef XLAT_VAL_48 + | XLAT_VAL_48 +# endif +# ifdef XLAT_VAL_49 + | XLAT_VAL_49 +# endif +# ifdef XLAT_VAL_50 + | XLAT_VAL_50 +# endif +# ifdef XLAT_VAL_51 + | XLAT_VAL_51 +# endif +# ifdef XLAT_VAL_52 + | XLAT_VAL_52 +# endif +# ifdef XLAT_VAL_53 + | XLAT_VAL_53 +# endif +# ifdef XLAT_VAL_54 + | XLAT_VAL_54 +# endif +# ifdef XLAT_VAL_55 + | XLAT_VAL_55 +# endif +# ifdef XLAT_VAL_56 + | XLAT_VAL_56 +# endif +# ifdef XLAT_VAL_57 + | XLAT_VAL_57 +# endif +# ifdef XLAT_VAL_58 + | XLAT_VAL_58 +# endif +# ifdef XLAT_VAL_59 + | XLAT_VAL_59 +# endif +# ifdef XLAT_VAL_60 + | XLAT_VAL_60 +# endif +# ifdef XLAT_VAL_61 + | XLAT_VAL_61 +# endif +# ifdef XLAT_VAL_62 + | XLAT_VAL_62 +# endif +# ifdef XLAT_VAL_63 + | XLAT_VAL_63 +# endif +# ifdef XLAT_VAL_64 + | XLAT_VAL_64 +# endif +# ifdef XLAT_VAL_65 + | XLAT_VAL_65 +# endif +# ifdef XLAT_VAL_66 + | XLAT_VAL_66 +# endif +# ifdef XLAT_VAL_67 + | XLAT_VAL_67 +# endif +# ifdef XLAT_VAL_68 + | XLAT_VAL_68 +# endif +# ifdef XLAT_VAL_69 + | XLAT_VAL_69 +# endif +# ifdef XLAT_VAL_70 + | XLAT_VAL_70 +# endif +# ifdef XLAT_VAL_71 + | XLAT_VAL_71 +# endif +# ifdef XLAT_VAL_72 + | XLAT_VAL_72 +# endif +# ifdef XLAT_VAL_73 + | XLAT_VAL_73 +# endif +# ifdef XLAT_VAL_74 + | XLAT_VAL_74 +# endif +# ifdef XLAT_VAL_75 + | XLAT_VAL_75 +# endif +# ifdef XLAT_VAL_76 + | XLAT_VAL_76 +# endif +# ifdef XLAT_VAL_77 + | XLAT_VAL_77 +# endif +# ifdef XLAT_VAL_78 + | XLAT_VAL_78 +# endif +# ifdef XLAT_VAL_79 + | XLAT_VAL_79 +# endif +# ifdef XLAT_VAL_80 + | XLAT_VAL_80 +# endif +# ifdef XLAT_VAL_81 + | XLAT_VAL_81 +# endif +# ifdef XLAT_VAL_82 + | XLAT_VAL_82 +# endif +# ifdef XLAT_VAL_83 + | XLAT_VAL_83 +# endif +# ifdef XLAT_VAL_84 + | XLAT_VAL_84 +# endif +# ifdef XLAT_VAL_85 + | XLAT_VAL_85 +# endif +# ifdef XLAT_VAL_86 + | XLAT_VAL_86 +# endif +# ifdef XLAT_VAL_87 + | XLAT_VAL_87 +# endif +# ifdef XLAT_VAL_88 + | XLAT_VAL_88 +# endif +# ifdef XLAT_VAL_89 + | XLAT_VAL_89 +# endif +# ifdef XLAT_VAL_90 + | XLAT_VAL_90 +# endif +# ifdef XLAT_VAL_91 + | XLAT_VAL_91 +# endif +# ifdef XLAT_VAL_92 + | XLAT_VAL_92 +# endif +# ifdef XLAT_VAL_93 + | XLAT_VAL_93 +# endif +# ifdef XLAT_VAL_94 + | XLAT_VAL_94 +# endif +# ifdef XLAT_VAL_95 + | XLAT_VAL_95 +# endif +# ifdef XLAT_VAL_96 + | XLAT_VAL_96 +# endif +# ifdef XLAT_VAL_97 + | XLAT_VAL_97 +# endif +# ifdef XLAT_VAL_98 + | XLAT_VAL_98 +# endif +# ifdef XLAT_VAL_99 + | XLAT_VAL_99 +# endif +# ifdef XLAT_VAL_100 + | XLAT_VAL_100 +# endif +# ifdef XLAT_VAL_101 + | XLAT_VAL_101 +# endif +# ifdef XLAT_VAL_102 + | XLAT_VAL_102 +# endif +# ifdef XLAT_VAL_103 + | XLAT_VAL_103 +# endif +# ifdef XLAT_VAL_104 + | XLAT_VAL_104 +# endif +# ifdef XLAT_VAL_105 + | XLAT_VAL_105 +# endif +# ifdef XLAT_VAL_106 + | XLAT_VAL_106 +# endif +# ifdef XLAT_VAL_107 + | XLAT_VAL_107 +# endif +# ifdef XLAT_VAL_108 + | XLAT_VAL_108 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif +# ifdef XLAT_STR_41 + + sizeof(XLAT_STR_41) +# endif +# ifdef XLAT_STR_42 + + sizeof(XLAT_STR_42) +# endif +# ifdef XLAT_STR_43 + + sizeof(XLAT_STR_43) +# endif +# ifdef XLAT_STR_44 + + sizeof(XLAT_STR_44) +# endif +# ifdef XLAT_STR_45 + + sizeof(XLAT_STR_45) +# endif +# ifdef XLAT_STR_46 + + sizeof(XLAT_STR_46) +# endif +# ifdef XLAT_STR_47 + + sizeof(XLAT_STR_47) +# endif +# ifdef XLAT_STR_48 + + sizeof(XLAT_STR_48) +# endif +# ifdef XLAT_STR_49 + + sizeof(XLAT_STR_49) +# endif +# ifdef XLAT_STR_50 + + sizeof(XLAT_STR_50) +# endif +# ifdef XLAT_STR_51 + + sizeof(XLAT_STR_51) +# endif +# ifdef XLAT_STR_52 + + sizeof(XLAT_STR_52) +# endif +# ifdef XLAT_STR_53 + + sizeof(XLAT_STR_53) +# endif +# ifdef XLAT_STR_54 + + sizeof(XLAT_STR_54) +# endif +# ifdef XLAT_STR_55 + + sizeof(XLAT_STR_55) +# endif +# ifdef XLAT_STR_56 + + sizeof(XLAT_STR_56) +# endif +# ifdef XLAT_STR_57 + + sizeof(XLAT_STR_57) +# endif +# ifdef XLAT_STR_58 + + sizeof(XLAT_STR_58) +# endif +# ifdef XLAT_STR_59 + + sizeof(XLAT_STR_59) +# endif +# ifdef XLAT_STR_60 + + sizeof(XLAT_STR_60) +# endif +# ifdef XLAT_STR_61 + + sizeof(XLAT_STR_61) +# endif +# ifdef XLAT_STR_62 + + sizeof(XLAT_STR_62) +# endif +# ifdef XLAT_STR_63 + + sizeof(XLAT_STR_63) +# endif +# ifdef XLAT_STR_64 + + sizeof(XLAT_STR_64) +# endif +# ifdef XLAT_STR_65 + + sizeof(XLAT_STR_65) +# endif +# ifdef XLAT_STR_66 + + sizeof(XLAT_STR_66) +# endif +# ifdef XLAT_STR_67 + + sizeof(XLAT_STR_67) +# endif +# ifdef XLAT_STR_68 + + sizeof(XLAT_STR_68) +# endif +# ifdef XLAT_STR_69 + + sizeof(XLAT_STR_69) +# endif +# ifdef XLAT_STR_70 + + sizeof(XLAT_STR_70) +# endif +# ifdef XLAT_STR_71 + + sizeof(XLAT_STR_71) +# endif +# ifdef XLAT_STR_72 + + sizeof(XLAT_STR_72) +# endif +# ifdef XLAT_STR_73 + + sizeof(XLAT_STR_73) +# endif +# ifdef XLAT_STR_74 + + sizeof(XLAT_STR_74) +# endif +# ifdef XLAT_STR_75 + + sizeof(XLAT_STR_75) +# endif +# ifdef XLAT_STR_76 + + sizeof(XLAT_STR_76) +# endif +# ifdef XLAT_STR_77 + + sizeof(XLAT_STR_77) +# endif +# ifdef XLAT_STR_78 + + sizeof(XLAT_STR_78) +# endif +# ifdef XLAT_STR_79 + + sizeof(XLAT_STR_79) +# endif +# ifdef XLAT_STR_80 + + sizeof(XLAT_STR_80) +# endif +# ifdef XLAT_STR_81 + + sizeof(XLAT_STR_81) +# endif +# ifdef XLAT_STR_82 + + sizeof(XLAT_STR_82) +# endif +# ifdef XLAT_STR_83 + + sizeof(XLAT_STR_83) +# endif +# ifdef XLAT_STR_84 + + sizeof(XLAT_STR_84) +# endif +# ifdef XLAT_STR_85 + + sizeof(XLAT_STR_85) +# endif +# ifdef XLAT_STR_86 + + sizeof(XLAT_STR_86) +# endif +# ifdef XLAT_STR_87 + + sizeof(XLAT_STR_87) +# endif +# ifdef XLAT_STR_88 + + sizeof(XLAT_STR_88) +# endif +# ifdef XLAT_STR_89 + + sizeof(XLAT_STR_89) +# endif +# ifdef XLAT_STR_90 + + sizeof(XLAT_STR_90) +# endif +# ifdef XLAT_STR_91 + + sizeof(XLAT_STR_91) +# endif +# ifdef XLAT_STR_92 + + sizeof(XLAT_STR_92) +# endif +# ifdef XLAT_STR_93 + + sizeof(XLAT_STR_93) +# endif +# ifdef XLAT_STR_94 + + sizeof(XLAT_STR_94) +# endif +# ifdef XLAT_STR_95 + + sizeof(XLAT_STR_95) +# endif +# ifdef XLAT_STR_96 + + sizeof(XLAT_STR_96) +# endif +# ifdef XLAT_STR_97 + + sizeof(XLAT_STR_97) +# endif +# ifdef XLAT_STR_98 + + sizeof(XLAT_STR_98) +# endif +# ifdef XLAT_STR_99 + + sizeof(XLAT_STR_99) +# endif +# ifdef XLAT_STR_100 + + sizeof(XLAT_STR_100) +# endif +# ifdef XLAT_STR_101 + + sizeof(XLAT_STR_101) +# endif +# ifdef XLAT_STR_102 + + sizeof(XLAT_STR_102) +# endif +# ifdef XLAT_STR_103 + + sizeof(XLAT_STR_103) +# endif +# ifdef XLAT_STR_104 + + sizeof(XLAT_STR_104) +# endif +# ifdef XLAT_STR_105 + + sizeof(XLAT_STR_105) +# endif +# ifdef XLAT_STR_106 + + sizeof(XLAT_STR_106) +# endif +# ifdef XLAT_STR_107 + + sizeof(XLAT_STR_107) +# endif +# ifdef XLAT_STR_108 + + sizeof(XLAT_STR_108) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 +# undef XLAT_STR_41 +# undef XLAT_VAL_41 +# undef XLAT_STR_42 +# undef XLAT_VAL_42 +# undef XLAT_STR_43 +# undef XLAT_VAL_43 +# undef XLAT_STR_44 +# undef XLAT_VAL_44 +# undef XLAT_STR_45 +# undef XLAT_VAL_45 +# undef XLAT_STR_46 +# undef XLAT_VAL_46 +# undef XLAT_STR_47 +# undef XLAT_VAL_47 +# undef XLAT_STR_48 +# undef XLAT_VAL_48 +# undef XLAT_STR_49 +# undef XLAT_VAL_49 +# undef XLAT_STR_50 +# undef XLAT_VAL_50 +# undef XLAT_STR_51 +# undef XLAT_VAL_51 +# undef XLAT_STR_52 +# undef XLAT_VAL_52 +# undef XLAT_STR_53 +# undef XLAT_VAL_53 +# undef XLAT_STR_54 +# undef XLAT_VAL_54 +# undef XLAT_STR_55 +# undef XLAT_VAL_55 +# undef XLAT_STR_56 +# undef XLAT_VAL_56 +# undef XLAT_STR_57 +# undef XLAT_VAL_57 +# undef XLAT_STR_58 +# undef XLAT_VAL_58 +# undef XLAT_STR_59 +# undef XLAT_VAL_59 +# undef XLAT_STR_60 +# undef XLAT_VAL_60 +# undef XLAT_STR_61 +# undef XLAT_VAL_61 +# undef XLAT_STR_62 +# undef XLAT_VAL_62 +# undef XLAT_STR_63 +# undef XLAT_VAL_63 +# undef XLAT_STR_64 +# undef XLAT_VAL_64 +# undef XLAT_STR_65 +# undef XLAT_VAL_65 +# undef XLAT_STR_66 +# undef XLAT_VAL_66 +# undef XLAT_STR_67 +# undef XLAT_VAL_67 +# undef XLAT_STR_68 +# undef XLAT_VAL_68 +# undef XLAT_STR_69 +# undef XLAT_VAL_69 +# undef XLAT_STR_70 +# undef XLAT_VAL_70 +# undef XLAT_STR_71 +# undef XLAT_VAL_71 +# undef XLAT_STR_72 +# undef XLAT_VAL_72 +# undef XLAT_STR_73 +# undef XLAT_VAL_73 +# undef XLAT_STR_74 +# undef XLAT_VAL_74 +# undef XLAT_STR_75 +# undef XLAT_VAL_75 +# undef XLAT_STR_76 +# undef XLAT_VAL_76 +# undef XLAT_STR_77 +# undef XLAT_VAL_77 +# undef XLAT_STR_78 +# undef XLAT_VAL_78 +# undef XLAT_STR_79 +# undef XLAT_VAL_79 +# undef XLAT_STR_80 +# undef XLAT_VAL_80 +# undef XLAT_STR_81 +# undef XLAT_VAL_81 +# undef XLAT_STR_82 +# undef XLAT_VAL_82 +# undef XLAT_STR_83 +# undef XLAT_VAL_83 +# undef XLAT_STR_84 +# undef XLAT_VAL_84 +# undef XLAT_STR_85 +# undef XLAT_VAL_85 +# undef XLAT_STR_86 +# undef XLAT_VAL_86 +# undef XLAT_STR_87 +# undef XLAT_VAL_87 +# undef XLAT_STR_88 +# undef XLAT_VAL_88 +# undef XLAT_STR_89 +# undef XLAT_VAL_89 +# undef XLAT_STR_90 +# undef XLAT_VAL_90 +# undef XLAT_STR_91 +# undef XLAT_VAL_91 +# undef XLAT_STR_92 +# undef XLAT_VAL_92 +# undef XLAT_STR_93 +# undef XLAT_VAL_93 +# undef XLAT_STR_94 +# undef XLAT_VAL_94 +# undef XLAT_STR_95 +# undef XLAT_VAL_95 +# undef XLAT_STR_96 +# undef XLAT_VAL_96 +# undef XLAT_STR_97 +# undef XLAT_VAL_97 +# undef XLAT_STR_98 +# undef XLAT_VAL_98 +# undef XLAT_STR_99 +# undef XLAT_VAL_99 +# undef XLAT_STR_100 +# undef XLAT_VAL_100 +# undef XLAT_STR_101 +# undef XLAT_VAL_101 +# undef XLAT_STR_102 +# undef XLAT_VAL_102 +# undef XLAT_STR_103 +# undef XLAT_VAL_103 +# undef XLAT_STR_104 +# undef XLAT_VAL_104 +# undef XLAT_STR_105 +# undef XLAT_VAL_105 +# undef XLAT_STR_106 +# undef XLAT_VAL_106 +# undef XLAT_STR_107 +# undef XLAT_VAL_107 +# undef XLAT_STR_108 +# undef XLAT_VAL_108 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/fsmagic.in b/xlat/fsmagic.in index ffab9e04..9cdaba51 100644 --- a/xlat/fsmagic.in +++ b/xlat/fsmagic.in @@ -1,104 +1,110 @@ -/* sort -k2,2 */ -{ 0x0000002f, "QNX4_SUPER_MAGIC" }, -{ 0x00000187, "AUTOFS_SUPER_MAGIC" }, -{ 0x00001373, "DEVFS_SUPER_MAGIC" }, -{ 0x0000137d, "EXT_SUPER_MAGIC" }, -{ 0x0000137f, "MINIX_SUPER_MAGIC" }, -{ 0x0000138f, "MINIX_SUPER_MAGIC2" }, -{ 0x00001cd1, "DEVPTS_SUPER_MAGIC" }, -{ 0x00002468, "MINIX2_SUPER_MAGIC" }, -{ 0x00002478, "MINIX2_SUPER_MAGIC2" }, -{ 0x00003434, "NILFS_SUPER_MAGIC" }, -{ 0x00004244, "HFS_SUPER_MAGIC" }, -{ 0x0000482b, "HFSPLUS_SUPER_MAGIC" }, -{ 0x00004d44, "MSDOS_SUPER_MAGIC" }, -{ 0x00004d5a, "MINIX3_SUPER_MAGIC" }, -{ 0x0000517b, "SMB_SUPER_MAGIC" }, -{ 0x0000564c, "NCP_SUPER_MAGIC" }, -{ 0x00005df5, "EXOFS_SUPER_MAGIC" }, -{ 0x00006969, "NFS_SUPER_MAGIC" }, -{ 0x00007275, "ROMFS_MAGIC" }, -{ 0x000072b6, "JFFS2_SUPER_MAGIC" }, -{ 0x00009660, "ISOFS_SUPER_MAGIC" }, -{ 0x00009fa0, "PROC_SUPER_MAGIC" }, -{ 0x00009fa1, "OPENPROM_SUPER_MAGIC" }, -{ 0x00009fa2, "USBDEVICE_SUPER_MAGIC" }, -{ 0x0000adf5, "ADFS_SUPER_MAGIC" }, -{ 0x0000adff, "AFFS_SUPER_MAGIC" }, -{ 0x0000ef51, "EXT2_OLD_SUPER_MAGIC" }, -{ 0x0000ef53, "EXT2_SUPER_MAGIC" }, -{ 0x0000f15f, "ECRYPTFS_SUPER_MAGIC" }, -{ 0x00011954, "UFS_MAGIC" }, -{ 0x0027e0eb, "CGROUP_SUPER_MAGIC" }, -{ 0x00414a53, "EFS_SUPER_MAGIC" }, -{ 0x00c0ffee, "HOSTFS_SUPER_MAGIC" }, -{ 0x00c36400, "CEPH_SUPER_MAGIC" }, -{ 0x01021994, "TMPFS_MAGIC" }, -{ 0x01021997, "V9FS_MAGIC" }, -{ 0x01161970, "GFS2_MAGIC" }, -{ 0x012fd16d, "XIAFS_SUPER_MAGIC" }, -{ 0x012ff7b4, "XENIX_SUPER_MAGIC" }, -{ 0x012ff7b5, "SYSV4_SUPER_MAGIC" }, -{ 0x012ff7b6, "SYSV2_SUPER_MAGIC" }, -{ 0x012ff7b7, "COH_SUPER_MAGIC" }, -{ 0x02011994, "SHMFS_SUPER_MAGIC" }, -{ 0x09041934, "ANON_INODE_FS_MAGIC" }, -{ 0x0bad1dea, "FUTEXFS_SUPER_MAGIC" }, -{ 0x11307854, "MTD_INODE_FS_MAGIC" }, -{ 0x13661366, "BALLOON_KVM_MAGIC" }, -{ 0x15013346, "UDF_SUPER_MAGIC" }, -{ 0x1badface, "BFS_MAGIC" }, -{ 0x24051905, "UBIFS_SUPER_MAGIC" }, -{ 0x28cd3d45, "CRAMFS_MAGIC" }, -{ 0x2fc12fc1, "ZFS_SUPER_MAGIC" }, -{ 0x3153464a, "JFS_SUPER_MAGIC" }, -{ 0x42465331, "BEFS_SUPER_MAGIC" }, -{ 0x42494e4d, "BINFMTFS_MAGIC" }, -{ 0x43415d53, "SMACK_MAGIC" }, -{ 0x453dcd28, "CRAMFS_MAGIC_WEND" }, -{ 0x47504653, "GPFS_SUPER_MAGIC" }, -{ 0x50495045, "PIPEFS_MAGIC" }, -{ 0x52654973, "REISERFS_SUPER_MAGIC" }, -{ 0x5346414f, "AFS_SUPER_MAGIC" }, -{ 0x5346544e, "NTFS_SB_MAGIC" }, -{ 0x534f434b, "SOCKFS_MAGIC" }, -{ 0x54190100, "UFS_CIGAM" }, -{ 0x565a4653, "VZFS_SUPER_MAGIC" }, -{ 0x57ac6e9d, "STACK_END_MAGIC" }, -{ 0x58295829, "ZSMALLOC_MAGIC" }, -{ 0x58465342, "XFS_SB_MAGIC" }, -{ 0x5a3c69f0, "AAFS_MAGIC" }, -{ 0x6165676c, "PSTOREFS_MAGIC" }, -{ 0x61756673, "AUFS_SUPER_MAGIC" }, -{ 0x62646576, "BDEVFS_MAGIC" }, -{ 0x62656570, "CONFIGFS_MAGIC" }, -{ 0x62656572, "SYSFS_MAGIC" }, -{ 0x63677270, "CGROUP2_SUPER_MAGIC" }, -{ 0x64626720, "DEBUGFS_MAGIC" }, -{ 0x64646178, "DAXFS_MAGIC" }, -{ 0x65735543, "FUSE_CTL_SUPER_MAGIC" }, -{ 0x65735546, "FUSE_SUPER_MAGIC" }, -{ 0x68191122, "QNX6_SUPER_MAGIC" }, -{ 0x6b414653, "AFS_FS_MAGIC" }, -{ 0x6c6f6f70, "BINDERFS_SUPER_MAGIC" }, -{ 0x6e736673, "NSFS_MAGIC" }, -{ 0x73636673, "SECURITYFS_MAGIC" }, -{ 0x73717368, "SQUASHFS_MAGIC" }, -{ 0x73727279, "BTRFS_TEST_MAGIC" }, -{ 0x73757245, "CODA_SUPER_MAGIC" }, -{ 0x7461636f, "OCFS2_SUPER_MAGIC" }, -{ 0x74726163, "TRACEFS_MAGIC" }, -{ 0x794c7630, "OVERLAYFS_SUPER_MAGIC" }, -{ 0x858458f6, "RAMFS_MAGIC" }, -{ 0x9123683e, "BTRFS_SUPER_MAGIC" }, -{ 0x958458f6, "HUGETLBFS_MAGIC" }, -{ 0xa501fcf5, "VXFS_SUPER_MAGIC" }, -{ 0xabba1974, "XENFS_SUPER_MAGIC" }, -{ 0xc97e8168, "LOGFS_MAGIC" }, -{ 0xcafe4a11, "BPF_FS_MAGIC" }, -{ 0xde5e81e4, "EFIVARFS_MAGIC" }, -{ 0xf2f52010, "F2FS_SUPER_MAGIC" }, -{ 0xf97cff8c, "SELINUX_MAGIC" }, -{ 0xf995e849, "HPFS_SUPER_MAGIC" }, -{ 0xfe534d42, "SMB2_MAGIC_NUMBER" }, -{ 0xff534d42, "CIFS_MAGIC_NUMBER" }, +#sorted sort -k2,2 +QNX4_SUPER_MAGIC 0x0000002f +Z3FOLD_MAGIC 0x00000033 +AUTOFS_SUPER_MAGIC 0x00000187 +DEVFS_SUPER_MAGIC 0x00001373 +EXT_SUPER_MAGIC 0x0000137d +MINIX_SUPER_MAGIC 0x0000137f +MINIX_SUPER_MAGIC2 0x0000138f +DEVPTS_SUPER_MAGIC 0x00001cd1 +MINIX2_SUPER_MAGIC 0x00002468 +MINIX2_SUPER_MAGIC2 0x00002478 +NILFS_SUPER_MAGIC 0x00003434 +HFS_SUPER_MAGIC 0x00004244 +HFSPLUS_SUPER_MAGIC 0x0000482b +MSDOS_SUPER_MAGIC 0x00004d44 +MINIX3_SUPER_MAGIC 0x00004d5a +SMB_SUPER_MAGIC 0x0000517b +NCP_SUPER_MAGIC 0x0000564c +EXOFS_SUPER_MAGIC 0x00005df5 +NFS_SUPER_MAGIC 0x00006969 +ROMFS_MAGIC 0x00007275 +JFFS2_SUPER_MAGIC 0x000072b6 +ISOFS_SUPER_MAGIC 0x00009660 +PROC_SUPER_MAGIC 0x00009fa0 +OPENPROM_SUPER_MAGIC 0x00009fa1 +USBDEVICE_SUPER_MAGIC 0x00009fa2 +ADFS_SUPER_MAGIC 0x0000adf5 +AFFS_SUPER_MAGIC 0x0000adff +EXT2_OLD_SUPER_MAGIC 0x0000ef51 +EXT2_SUPER_MAGIC 0x0000ef53 +ECRYPTFS_SUPER_MAGIC 0x0000f15f +UFS_MAGIC 0x00011954 +CGROUP_SUPER_MAGIC 0x0027e0eb +EFS_SUPER_MAGIC 0x00414a53 +HOSTFS_SUPER_MAGIC 0x00c0ffee +CEPH_SUPER_MAGIC 0x00c36400 +TMPFS_MAGIC 0x01021994 +V9FS_MAGIC 0x01021997 +GFS2_MAGIC 0x01161970 +XIAFS_SUPER_MAGIC 0x012fd16d +XENIX_SUPER_MAGIC 0x012ff7b4 +SYSV4_SUPER_MAGIC 0x012ff7b5 +SYSV2_SUPER_MAGIC 0x012ff7b6 +COH_SUPER_MAGIC 0x012ff7b7 +SHMFS_SUPER_MAGIC 0x02011994 +ANON_INODE_FS_MAGIC 0x09041934 +FUTEXFS_SUPER_MAGIC 0x0bad1dea +MTD_INODE_FS_MAGIC 0x11307854 +BALLOON_KVM_MAGIC 0x13661366 +UDF_SUPER_MAGIC 0x15013346 +BFS_MAGIC 0x1badface +UBIFS_SUPER_MAGIC 0x24051905 +CRAMFS_MAGIC 0x28cd3d45 +ZFS_SUPER_MAGIC 0x2fc12fc1 +JFS_SUPER_MAGIC 0x3153464a +BEFS_SUPER_MAGIC 0x42465331 +BINFMTFS_MAGIC 0x42494e4d +SMACK_MAGIC 0x43415d53 +DMA_BUF_MAGIC 0x444d4142 +CRAMFS_MAGIC_WEND 0x453dcd28 +DEVMEM_MAGIC 0x454d444d +GPFS_SUPER_MAGIC 0x47504653 +PIPEFS_MAGIC 0x50495045 +REISERFS_SUPER_MAGIC 0x52654973 +AFS_SUPER_MAGIC 0x5346414f +NTFS_SB_MAGIC 0x5346544e +SOCKFS_MAGIC 0x534f434b +UFS_CIGAM 0x54190100 +VZFS_SUPER_MAGIC 0x565a4653 +STACK_END_MAGIC 0x57ac6e9d +ZSMALLOC_MAGIC 0x58295829 +XFS_SB_MAGIC 0x58465342 +AAFS_MAGIC 0x5a3c69f0 +ZONEFS_MAGIC 0x5a4f4653 +PSTOREFS_MAGIC 0x6165676c +AUFS_SUPER_MAGIC 0x61756673 +BDEVFS_MAGIC 0x62646576 +CONFIGFS_MAGIC 0x62656570 +SYSFS_MAGIC 0x62656572 +CGROUP2_SUPER_MAGIC 0x63677270 +DEBUGFS_MAGIC 0x64626720 +DAXFS_MAGIC 0x64646178 +FUSE_CTL_SUPER_MAGIC 0x65735543 +FUSE_SUPER_MAGIC 0x65735546 +QNX6_SUPER_MAGIC 0x68191122 +AFS_FS_MAGIC 0x6b414653 +BINDERFS_SUPER_MAGIC 0x6c6f6f70 +NSFS_MAGIC 0x6e736673 +SECURITYFS_MAGIC 0x73636673 +SQUASHFS_MAGIC 0x73717368 +BTRFS_TEST_MAGIC 0x73727279 +CODA_SUPER_MAGIC 0x73757245 +OCFS2_SUPER_MAGIC 0x7461636f +TRACEFS_MAGIC 0x74726163 +OVERLAYFS_SUPER_MAGIC 0x794c7630 +RAMFS_MAGIC 0x858458f6 +BTRFS_SUPER_MAGIC 0x9123683e +HUGETLBFS_MAGIC 0x958458f6 +VXFS_SUPER_MAGIC 0xa501fcf5 +XENFS_SUPER_MAGIC 0xabba1974 +PPC_CMM_MAGIC 0xc7571590 +LOGFS_MAGIC 0xc97e8168 +BPF_FS_MAGIC 0xcafe4a11 +EFIVARFS_MAGIC 0xde5e81e4 +EROFS_SUPER_MAGIC_V1 0xe0f5e1e2 +F2FS_SUPER_MAGIC 0xf2f52010 +SELINUX_MAGIC 0xf97cff8c +HPFS_SUPER_MAGIC 0xf995e849 +SMB2_MAGIC_NUMBER 0xfe534d42 +CIFS_MAGIC_NUMBER 0xff534d42 diff --git a/xlat/fsmount_flags.h b/xlat/fsmount_flags.h new file mode 100644 index 00000000..2aa7ec86 --- /dev/null +++ b/xlat/fsmount_flags.h @@ -0,0 +1,48 @@ +/* Generated by ./xlat/gen.sh from ./xlat/fsmount_flags.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined(FSMOUNT_CLOEXEC) || (defined(HAVE_DECL_FSMOUNT_CLOEXEC) && HAVE_DECL_FSMOUNT_CLOEXEC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((FSMOUNT_CLOEXEC) == (1), "FSMOUNT_CLOEXEC != 1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define FSMOUNT_CLOEXEC 1 +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat fsmount_flags in mpers mode + +# else + +static const struct xlat_data fsmount_flags_xdata[] = { + XLAT(FSMOUNT_CLOEXEC), + #define XLAT_VAL_0 ((unsigned) (FSMOUNT_CLOEXEC)) + #define XLAT_STR_0 STRINGIFY(FSMOUNT_CLOEXEC) +}; +static +const struct xlat fsmount_flags[1] = { { + .data = fsmount_flags_xdata, + .size = ARRAY_SIZE(fsmount_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/fsmount_flags.in b/xlat/fsmount_flags.in new file mode 100644 index 00000000..8a3b95e4 --- /dev/null +++ b/xlat/fsmount_flags.in @@ -0,0 +1 @@ +FSMOUNT_CLOEXEC 1 diff --git a/xlat/fsopen_flags.h b/xlat/fsopen_flags.h new file mode 100644 index 00000000..d9b0e9f5 --- /dev/null +++ b/xlat/fsopen_flags.h @@ -0,0 +1,48 @@ +/* Generated by ./xlat/gen.sh from ./xlat/fsopen_flags.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined(FSOPEN_CLOEXEC) || (defined(HAVE_DECL_FSOPEN_CLOEXEC) && HAVE_DECL_FSOPEN_CLOEXEC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((FSOPEN_CLOEXEC) == (1), "FSOPEN_CLOEXEC != 1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define FSOPEN_CLOEXEC 1 +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat fsopen_flags in mpers mode + +# else + +static const struct xlat_data fsopen_flags_xdata[] = { + XLAT(FSOPEN_CLOEXEC), + #define XLAT_VAL_0 ((unsigned) (FSOPEN_CLOEXEC)) + #define XLAT_STR_0 STRINGIFY(FSOPEN_CLOEXEC) +}; +static +const struct xlat fsopen_flags[1] = { { + .data = fsopen_flags_xdata, + .size = ARRAY_SIZE(fsopen_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/fsopen_flags.in b/xlat/fsopen_flags.in new file mode 100644 index 00000000..ce01ddf0 --- /dev/null +++ b/xlat/fsopen_flags.in @@ -0,0 +1 @@ +FSOPEN_CLOEXEC 1 diff --git a/xlat/fspick_flags.h b/xlat/fspick_flags.h new file mode 100644 index 00000000..d3e7b26e --- /dev/null +++ b/xlat/fspick_flags.h @@ -0,0 +1,102 @@ +/* Generated by ./xlat/gen.sh from ./xlat/fspick_flags.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined(FSPICK_CLOEXEC) || (defined(HAVE_DECL_FSPICK_CLOEXEC) && HAVE_DECL_FSPICK_CLOEXEC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((FSPICK_CLOEXEC) == (0x01), "FSPICK_CLOEXEC != 0x01"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define FSPICK_CLOEXEC 0x01 +#endif +#if defined(FSPICK_SYMLINK_NOFOLLOW) || (defined(HAVE_DECL_FSPICK_SYMLINK_NOFOLLOW) && HAVE_DECL_FSPICK_SYMLINK_NOFOLLOW) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((FSPICK_SYMLINK_NOFOLLOW) == (0x02), "FSPICK_SYMLINK_NOFOLLOW != 0x02"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define FSPICK_SYMLINK_NOFOLLOW 0x02 +#endif +#if defined(FSPICK_NO_AUTOMOUNT) || (defined(HAVE_DECL_FSPICK_NO_AUTOMOUNT) && HAVE_DECL_FSPICK_NO_AUTOMOUNT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((FSPICK_NO_AUTOMOUNT) == (0x04), "FSPICK_NO_AUTOMOUNT != 0x04"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define FSPICK_NO_AUTOMOUNT 0x04 +#endif +#if defined(FSPICK_EMPTY_PATH) || (defined(HAVE_DECL_FSPICK_EMPTY_PATH) && HAVE_DECL_FSPICK_EMPTY_PATH) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((FSPICK_EMPTY_PATH) == (0x08), "FSPICK_EMPTY_PATH != 0x08"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define FSPICK_EMPTY_PATH 0x08 +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat fspick_flags in mpers mode + +# else + +static const struct xlat_data fspick_flags_xdata[] = { + XLAT(FSPICK_CLOEXEC), + #define XLAT_VAL_0 ((unsigned) (FSPICK_CLOEXEC)) + #define XLAT_STR_0 STRINGIFY(FSPICK_CLOEXEC) + XLAT(FSPICK_SYMLINK_NOFOLLOW), + #define XLAT_VAL_1 ((unsigned) (FSPICK_SYMLINK_NOFOLLOW)) + #define XLAT_STR_1 STRINGIFY(FSPICK_SYMLINK_NOFOLLOW) + XLAT(FSPICK_NO_AUTOMOUNT), + #define XLAT_VAL_2 ((unsigned) (FSPICK_NO_AUTOMOUNT)) + #define XLAT_STR_2 STRINGIFY(FSPICK_NO_AUTOMOUNT) + XLAT(FSPICK_EMPTY_PATH), + #define XLAT_VAL_3 ((unsigned) (FSPICK_EMPTY_PATH)) + #define XLAT_STR_3 STRINGIFY(FSPICK_EMPTY_PATH) +}; +static +const struct xlat fspick_flags[1] = { { + .data = fspick_flags_xdata, + .size = ARRAY_SIZE(fspick_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/fspick_flags.in b/xlat/fspick_flags.in new file mode 100644 index 00000000..52ed0350 --- /dev/null +++ b/xlat/fspick_flags.in @@ -0,0 +1,4 @@ +FSPICK_CLOEXEC 0x01 +FSPICK_SYMLINK_NOFOLLOW 0x02 +FSPICK_NO_AUTOMOUNT 0x04 +FSPICK_EMPTY_PATH 0x08 diff --git a/xlat/futexbitset.h b/xlat/futexbitset.h index 566c8cbc..a3917ba7 100644 --- a/xlat/futexbitset.h +++ b/xlat/futexbitset.h @@ -19,12 +19,30 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat futexbitset[] = { +static const struct xlat_data futexbitset_xdata[] = { XLAT(FUTEX_BITSET_MATCH_ANY), - XLAT_END + #define XLAT_VAL_0 ((unsigned) (FUTEX_BITSET_MATCH_ANY)) + #define XLAT_STR_0 STRINGIFY(FUTEX_BITSET_MATCH_ANY) }; - +static +const struct xlat futexbitset[1] = { { + .data = futexbitset_xdata, + .size = ARRAY_SIZE(futexbitset_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/futexops.h b/xlat/futexops.h index 562f6af9..691f090f 100644 --- a/xlat/futexops.h +++ b/xlat/futexops.h @@ -187,57 +187,385 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat futexops[] = { +static const struct xlat_data futexops_xdata[] = { XLAT(FUTEX_WAIT), + #define XLAT_VAL_0 ((unsigned) (FUTEX_WAIT)) + #define XLAT_STR_0 STRINGIFY(FUTEX_WAIT) XLAT(FUTEX_WAKE), + #define XLAT_VAL_1 ((unsigned) (FUTEX_WAKE)) + #define XLAT_STR_1 STRINGIFY(FUTEX_WAKE) XLAT(FUTEX_FD), + #define XLAT_VAL_2 ((unsigned) (FUTEX_FD)) + #define XLAT_STR_2 STRINGIFY(FUTEX_FD) XLAT(FUTEX_REQUEUE), + #define XLAT_VAL_3 ((unsigned) (FUTEX_REQUEUE)) + #define XLAT_STR_3 STRINGIFY(FUTEX_REQUEUE) XLAT(FUTEX_CMP_REQUEUE), + #define XLAT_VAL_4 ((unsigned) (FUTEX_CMP_REQUEUE)) + #define XLAT_STR_4 STRINGIFY(FUTEX_CMP_REQUEUE) XLAT(FUTEX_WAKE_OP), + #define XLAT_VAL_5 ((unsigned) (FUTEX_WAKE_OP)) + #define XLAT_STR_5 STRINGIFY(FUTEX_WAKE_OP) XLAT(FUTEX_LOCK_PI), + #define XLAT_VAL_6 ((unsigned) (FUTEX_LOCK_PI)) + #define XLAT_STR_6 STRINGIFY(FUTEX_LOCK_PI) XLAT(FUTEX_UNLOCK_PI), + #define XLAT_VAL_7 ((unsigned) (FUTEX_UNLOCK_PI)) + #define XLAT_STR_7 STRINGIFY(FUTEX_UNLOCK_PI) XLAT(FUTEX_TRYLOCK_PI), + #define XLAT_VAL_8 ((unsigned) (FUTEX_TRYLOCK_PI)) + #define XLAT_STR_8 STRINGIFY(FUTEX_TRYLOCK_PI) XLAT(FUTEX_WAIT_BITSET), + #define XLAT_VAL_9 ((unsigned) (FUTEX_WAIT_BITSET)) + #define XLAT_STR_9 STRINGIFY(FUTEX_WAIT_BITSET) XLAT(FUTEX_WAKE_BITSET), + #define XLAT_VAL_10 ((unsigned) (FUTEX_WAKE_BITSET)) + #define XLAT_STR_10 STRINGIFY(FUTEX_WAKE_BITSET) XLAT(FUTEX_WAIT_REQUEUE_PI), + #define XLAT_VAL_11 ((unsigned) (FUTEX_WAIT_REQUEUE_PI)) + #define XLAT_STR_11 STRINGIFY(FUTEX_WAIT_REQUEUE_PI) XLAT(FUTEX_CMP_REQUEUE_PI), + #define XLAT_VAL_12 ((unsigned) (FUTEX_CMP_REQUEUE_PI)) + #define XLAT_STR_12 STRINGIFY(FUTEX_CMP_REQUEUE_PI) XLAT(FUTEX_WAIT_PRIVATE), + #define XLAT_VAL_13 ((unsigned) (FUTEX_WAIT_PRIVATE)) + #define XLAT_STR_13 STRINGIFY(FUTEX_WAIT_PRIVATE) XLAT(FUTEX_WAKE_PRIVATE), + #define XLAT_VAL_14 ((unsigned) (FUTEX_WAKE_PRIVATE)) + #define XLAT_STR_14 STRINGIFY(FUTEX_WAKE_PRIVATE) #if defined(FUTEX_FD) || (defined(HAVE_DECL_FUTEX_FD) && HAVE_DECL_FUTEX_FD) XLAT(FUTEX_FD|FUTEX_PRIVATE_FLAG), + #define XLAT_VAL_15 ((unsigned) (FUTEX_FD|FUTEX_PRIVATE_FLAG)) + #define XLAT_STR_15 STRINGIFY(FUTEX_FD|FUTEX_PRIVATE_FLAG) #endif XLAT(FUTEX_REQUEUE_PRIVATE), + #define XLAT_VAL_16 ((unsigned) (FUTEX_REQUEUE_PRIVATE)) + #define XLAT_STR_16 STRINGIFY(FUTEX_REQUEUE_PRIVATE) XLAT(FUTEX_CMP_REQUEUE_PRIVATE), + #define XLAT_VAL_17 ((unsigned) (FUTEX_CMP_REQUEUE_PRIVATE)) + #define XLAT_STR_17 STRINGIFY(FUTEX_CMP_REQUEUE_PRIVATE) XLAT(FUTEX_WAKE_OP_PRIVATE), + #define XLAT_VAL_18 ((unsigned) (FUTEX_WAKE_OP_PRIVATE)) + #define XLAT_STR_18 STRINGIFY(FUTEX_WAKE_OP_PRIVATE) XLAT(FUTEX_LOCK_PI_PRIVATE), + #define XLAT_VAL_19 ((unsigned) (FUTEX_LOCK_PI_PRIVATE)) + #define XLAT_STR_19 STRINGIFY(FUTEX_LOCK_PI_PRIVATE) XLAT(FUTEX_UNLOCK_PI_PRIVATE), + #define XLAT_VAL_20 ((unsigned) (FUTEX_UNLOCK_PI_PRIVATE)) + #define XLAT_STR_20 STRINGIFY(FUTEX_UNLOCK_PI_PRIVATE) XLAT(FUTEX_TRYLOCK_PI_PRIVATE), + #define XLAT_VAL_21 ((unsigned) (FUTEX_TRYLOCK_PI_PRIVATE)) + #define XLAT_STR_21 STRINGIFY(FUTEX_TRYLOCK_PI_PRIVATE) XLAT(FUTEX_WAIT_BITSET_PRIVATE), + #define XLAT_VAL_22 ((unsigned) (FUTEX_WAIT_BITSET_PRIVATE)) + #define XLAT_STR_22 STRINGIFY(FUTEX_WAIT_BITSET_PRIVATE) XLAT(FUTEX_WAKE_BITSET_PRIVATE), + #define XLAT_VAL_23 ((unsigned) (FUTEX_WAKE_BITSET_PRIVATE)) + #define XLAT_STR_23 STRINGIFY(FUTEX_WAKE_BITSET_PRIVATE) XLAT(FUTEX_WAIT_REQUEUE_PI_PRIVATE), + #define XLAT_VAL_24 ((unsigned) (FUTEX_WAIT_REQUEUE_PI_PRIVATE)) + #define XLAT_STR_24 STRINGIFY(FUTEX_WAIT_REQUEUE_PI_PRIVATE) XLAT(FUTEX_CMP_REQUEUE_PI_PRIVATE), + #define XLAT_VAL_25 ((unsigned) (FUTEX_CMP_REQUEUE_PI_PRIVATE)) + #define XLAT_STR_25 STRINGIFY(FUTEX_CMP_REQUEUE_PI_PRIVATE) #if defined(FUTEX_WAIT) || (defined(HAVE_DECL_FUTEX_WAIT) && HAVE_DECL_FUTEX_WAIT) XLAT(FUTEX_WAIT|FUTEX_CLOCK_REALTIME), + #define XLAT_VAL_26 ((unsigned) (FUTEX_WAIT|FUTEX_CLOCK_REALTIME)) + #define XLAT_STR_26 STRINGIFY(FUTEX_WAIT|FUTEX_CLOCK_REALTIME) #endif #if defined(FUTEX_WAIT_PRIVATE) || (defined(HAVE_DECL_FUTEX_WAIT_PRIVATE) && HAVE_DECL_FUTEX_WAIT_PRIVATE) XLAT(FUTEX_WAIT_PRIVATE|FUTEX_CLOCK_REALTIME), + #define XLAT_VAL_27 ((unsigned) (FUTEX_WAIT_PRIVATE|FUTEX_CLOCK_REALTIME)) + #define XLAT_STR_27 STRINGIFY(FUTEX_WAIT_PRIVATE|FUTEX_CLOCK_REALTIME) #endif #if defined(FUTEX_WAIT_BITSET) || (defined(HAVE_DECL_FUTEX_WAIT_BITSET) && HAVE_DECL_FUTEX_WAIT_BITSET) XLAT(FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME), + #define XLAT_VAL_28 ((unsigned) (FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME)) + #define XLAT_STR_28 STRINGIFY(FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME) #endif #if defined(FUTEX_WAIT_BITSET_PRIVATE) || (defined(HAVE_DECL_FUTEX_WAIT_BITSET_PRIVATE) && HAVE_DECL_FUTEX_WAIT_BITSET_PRIVATE) XLAT(FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME), + #define XLAT_VAL_29 ((unsigned) (FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME)) + #define XLAT_STR_29 STRINGIFY(FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME) #endif #if defined(FUTEX_WAIT_REQUEUE_PI) || (defined(HAVE_DECL_FUTEX_WAIT_REQUEUE_PI) && HAVE_DECL_FUTEX_WAIT_REQUEUE_PI) XLAT(FUTEX_WAIT_REQUEUE_PI|FUTEX_CLOCK_REALTIME), + #define XLAT_VAL_30 ((unsigned) (FUTEX_WAIT_REQUEUE_PI|FUTEX_CLOCK_REALTIME)) + #define XLAT_STR_30 STRINGIFY(FUTEX_WAIT_REQUEUE_PI|FUTEX_CLOCK_REALTIME) #endif #if defined(FUTEX_WAIT_REQUEUE_PI_PRIVATE) || (defined(HAVE_DECL_FUTEX_WAIT_REQUEUE_PI_PRIVATE) && HAVE_DECL_FUTEX_WAIT_REQUEUE_PI_PRIVATE) XLAT(FUTEX_WAIT_REQUEUE_PI_PRIVATE|FUTEX_CLOCK_REALTIME), + #define XLAT_VAL_31 ((unsigned) (FUTEX_WAIT_REQUEUE_PI_PRIVATE|FUTEX_CLOCK_REALTIME)) + #define XLAT_STR_31 STRINGIFY(FUTEX_WAIT_REQUEUE_PI_PRIVATE|FUTEX_CLOCK_REALTIME) #endif - XLAT_END }; +static +const struct xlat futexops[1] = { { + .data = futexops_xdata, + .size = ARRAY_SIZE(futexops_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/futexwakecmps.h b/xlat/futexwakecmps.h index b0ee5b0d..a5478d44 100644 --- a/xlat/futexwakecmps.h +++ b/xlat/futexwakecmps.h @@ -54,17 +54,85 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat futexwakecmps[] = { - XLAT(FUTEX_OP_CMP_EQ), - XLAT(FUTEX_OP_CMP_NE), - XLAT(FUTEX_OP_CMP_LT), - XLAT(FUTEX_OP_CMP_LE), - XLAT(FUTEX_OP_CMP_GT), - XLAT(FUTEX_OP_CMP_GE), - XLAT_END +static const struct xlat_data futexwakecmps_xdata[] = { + [FUTEX_OP_CMP_EQ] = XLAT(FUTEX_OP_CMP_EQ), + #define XLAT_VAL_0 ((unsigned) (FUTEX_OP_CMP_EQ)) + #define XLAT_STR_0 STRINGIFY(FUTEX_OP_CMP_EQ) + [FUTEX_OP_CMP_NE] = XLAT(FUTEX_OP_CMP_NE), + #define XLAT_VAL_1 ((unsigned) (FUTEX_OP_CMP_NE)) + #define XLAT_STR_1 STRINGIFY(FUTEX_OP_CMP_NE) + [FUTEX_OP_CMP_LT] = XLAT(FUTEX_OP_CMP_LT), + #define XLAT_VAL_2 ((unsigned) (FUTEX_OP_CMP_LT)) + #define XLAT_STR_2 STRINGIFY(FUTEX_OP_CMP_LT) + [FUTEX_OP_CMP_LE] = XLAT(FUTEX_OP_CMP_LE), + #define XLAT_VAL_3 ((unsigned) (FUTEX_OP_CMP_LE)) + #define XLAT_STR_3 STRINGIFY(FUTEX_OP_CMP_LE) + [FUTEX_OP_CMP_GT] = XLAT(FUTEX_OP_CMP_GT), + #define XLAT_VAL_4 ((unsigned) (FUTEX_OP_CMP_GT)) + #define XLAT_STR_4 STRINGIFY(FUTEX_OP_CMP_GT) + [FUTEX_OP_CMP_GE] = XLAT(FUTEX_OP_CMP_GE), + #define XLAT_VAL_5 ((unsigned) (FUTEX_OP_CMP_GE)) + #define XLAT_STR_5 STRINGIFY(FUTEX_OP_CMP_GE) }; +static +const struct xlat futexwakecmps[1] = { { + .data = futexwakecmps_xdata, + .size = ARRAY_SIZE(futexwakecmps_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/futexwakecmps.in b/xlat/futexwakecmps.in index 743e44c2..96d92069 100644 --- a/xlat/futexwakecmps.in +++ b/xlat/futexwakecmps.in @@ -1,3 +1,4 @@ +#value_indexed FUTEX_OP_CMP_EQ 0 FUTEX_OP_CMP_NE 1 FUTEX_OP_CMP_LT 2 diff --git a/xlat/futexwakeops.h b/xlat/futexwakeops.h index b6433536..cb788096 100644 --- a/xlat/futexwakeops.h +++ b/xlat/futexwakeops.h @@ -47,16 +47,74 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat futexwakeops[] = { - XLAT(FUTEX_OP_SET), - XLAT(FUTEX_OP_ADD), - XLAT(FUTEX_OP_OR), - XLAT(FUTEX_OP_ANDN), - XLAT(FUTEX_OP_XOR), - XLAT_END +static const struct xlat_data futexwakeops_xdata[] = { + [FUTEX_OP_SET] = XLAT(FUTEX_OP_SET), + #define XLAT_VAL_0 ((unsigned) (FUTEX_OP_SET)) + #define XLAT_STR_0 STRINGIFY(FUTEX_OP_SET) + [FUTEX_OP_ADD] = XLAT(FUTEX_OP_ADD), + #define XLAT_VAL_1 ((unsigned) (FUTEX_OP_ADD)) + #define XLAT_STR_1 STRINGIFY(FUTEX_OP_ADD) + [FUTEX_OP_OR] = XLAT(FUTEX_OP_OR), + #define XLAT_VAL_2 ((unsigned) (FUTEX_OP_OR)) + #define XLAT_STR_2 STRINGIFY(FUTEX_OP_OR) + [FUTEX_OP_ANDN] = XLAT(FUTEX_OP_ANDN), + #define XLAT_VAL_3 ((unsigned) (FUTEX_OP_ANDN)) + #define XLAT_STR_3 STRINGIFY(FUTEX_OP_ANDN) + [FUTEX_OP_XOR] = XLAT(FUTEX_OP_XOR), + #define XLAT_VAL_4 ((unsigned) (FUTEX_OP_XOR)) + #define XLAT_STR_4 STRINGIFY(FUTEX_OP_XOR) }; +static +const struct xlat futexwakeops[1] = { { + .data = futexwakeops_xdata, + .size = ARRAY_SIZE(futexwakeops_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/futexwakeops.in b/xlat/futexwakeops.in index 5bb5b198..1086fecf 100644 --- a/xlat/futexwakeops.in +++ b/xlat/futexwakeops.in @@ -1,3 +1,4 @@ +#value_indexed FUTEX_OP_SET 0 FUTEX_OP_ADD 1 FUTEX_OP_OR 2 diff --git a/xlat/gen.sh b/xlat/gen.sh index 30b2dd82..e08df21b 100755 --- a/xlat/gen.sh +++ b/xlat/gen.sh @@ -2,7 +2,7 @@ # # Copyright (c) 2014-2015 Mike Frysinger # Copyright (c) 2014-2015 Dmitry V. Levin -# Copyright (c) 2014-2019 The strace developers. +# Copyright (c) 2014-2020 The strace developers. # All rights reserved. # # SPDX-License-Identifier: LGPL-2.1-or-later @@ -20,6 +20,22 @@ EOF exit 1 } +print_m4_record() +{ + local val output + val="$1"; shift + output="$1"; shift + [ -n "$output" ] || return 0 + + if [ "$first_enum" = 1 ]; then + printf '%s' "$val" + else + printf ',\n%s' "$val" + fi >> "$output" + + first_enum=0 +} + cond_def() { local line @@ -60,13 +76,20 @@ print_xlat() else echo " XLAT_TYPE(${val_type}, ${val})," fi + + echo " #define XLAT_VAL_$xlat_flag_cnt ((${val_type:-unsigned}) (${val}))" + echo " #define XLAT_STR_$xlat_flag_cnt STRINGIFY(${val})" + xlat_flag_cnt=$((xlat_flag_cnt + 1)) + + [ -z "$enum" ] || print_m4_record "$val" "$output_m4" } print_xlat_pair() { - local val str + local val str macro val="$1"; shift str="$1"; shift + macro="$1"; shift [ 1 = "$value_indexed" ] && printf " [%s] =" "${val}" if [ -z "${val_type-}" ]; then @@ -74,6 +97,12 @@ print_xlat_pair() else echo " XLAT_TYPE_PAIR(${val_type}, ${val}, \"${str}\")," fi + + echo " #define XLAT_VAL_$xlat_flag_cnt ((${val_type:-unsigned}) (${val}))" + echo " #define XLAT_STR_$xlat_flag_cnt \"${str}\"" + xlat_flag_cnt=$((xlat_flag_cnt + 1)) + + [ -z "$enum" ] || print_m4_record "$macro" "$output_m4" } cond_xlat() @@ -88,8 +117,8 @@ cond_xlat() if [ "${m}" = "${m#1<<}" ]; then xlat="$(print_xlat "${val}")" else - xlat="$(print_xlat_pair "1ULL<<${val#1<<}" "${val}")" m="${m#1<<}" + xlat="$(print_xlat_pair "1ULL<<${val#1<<}" "${val}" "$m")" fi if [ -z "${def}" ]; then @@ -101,19 +130,31 @@ cond_xlat() echo "$xlat" fi } + + # Since we're calling print_xlat/print_xlat_pair in subprocess + xlat_flag_cnt=$((xlat_flag_cnt + 1)) + first_enum=0 } gen_header() { - local input="$1" output="$2" name="$3" - echo "generating ${output}" + local input="$1" output="$2" name="$3" output_m4="$4" + + exec 3>&1 + + echo "generating ${output}" >&2 ( local defs="${0%/*}/../defs.h" local mpers="${0%/*}/../mpers_xlat.h" local decl="extern const struct xlat ${name}[];" local in_defs= in_mpers= + local xlat_type="XT_NORMAL" + local includes="" + local enum="" + first_enum=1 value_indexed=0 + xlat_flag_cnt=0 if grep -F -q -x "$decl" "$defs"; then in_defs=1 @@ -140,9 +181,6 @@ gen_header() esac case $line in - '#stop') - exit 0 - ;; '#conditional') unconditional= ;; @@ -152,8 +190,18 @@ gen_header() '#val_type '*) # to be processed during 2nd pass ;; + '#sorted'|'#sorted '*) + xlat_type="XT_SORTED" + ;; '#value_indexed') value_indexed=1 + xlat_type="XT_INDEXED" + ;; + '#enum') + [ -z "$output_m4" ] || enum=1 + ;; + '#include '*) + includes="${includes} ${line###include }" ;; '#'*) echo "${line}" @@ -171,6 +219,14 @@ gen_header() EOF + [ "$enum" != 1 ] || ( + echo "generating ${output_m4}" >&2 + printf 'dnl Generated by %s from %s; do not edit.\n' \ + "$0" "$input" + printf 'AC_DEFUN([st_CHECK_ENUMS_%s],[\n' "$name" + printf 'AC_CHECK_DECLS(m4_normalize([\n' + ) > "${output_m4}" + if [ -n "$in_defs" ]; then cat <<-EOF # ifndef IN_MPERS @@ -184,9 +240,6 @@ gen_header() # else - # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) - static - # endif EOF else cat <<-EOF @@ -196,11 +249,10 @@ gen_header() # else - static EOF fi - echo "const struct xlat ${name}[] = {" + echo "static const struct xlat_data ${name}_xdata[] = {" unconditional= val_type= # 2nd pass: output everything. @@ -219,8 +271,14 @@ gen_header() '#unconditional') unconditional=1 ;; + '#sorted'|'#sorted '*) + ;; '#value_indexed') ;; + '#enum') + ;; + '#include '*) + ;; '#val_type '*) val_type="${line#\#val_type }" ;; @@ -233,7 +291,7 @@ gen_header() ;; '1<<'[A-Z_]*) # symbolic constants with shift if [ -n "${unconditional}" ]; then - print_xlat_pair "1ULL<<${line#1<<}" "${line}" + print_xlat_pair "1ULL<<${line#1<<}" "${line}" "${line#1<<}" else cond_xlat "${line}" fi @@ -246,16 +304,78 @@ gen_header() ;; esac done < "${input}" - echo ' XLAT_END' + echo '};' + + [ "$enum" != 1 ] || ( + printf '\n]),,, [\n' + [ -z "$includes" ] || printf '#include %s\n' $includes + printf '])])])\n' + + # Providing macro name to main + echo "st_CHECK_ENUMS_${name}" >&3 + ) >> "${output_m4}" + + if [ -n "$in_defs" ]; then + : + elif [ -n "$in_mpers" ]; then + cat <<-EOF + # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) + static + # endif + EOF + else + cat <<-EOF + static + EOF + fi cat <<-EOF - }; + const struct xlat ${name}[1] = { { + .data = ${name}_xdata, + .size = ARRAY_SIZE(${name}_xdata), + .type = ${xlat_type}, + EOF + + echo " .flags_mask = 0" + for i in $(seq 0 "$((xlat_flag_cnt - 1))"); do + cat <<-EOF + # ifdef XLAT_VAL_${i} + | XLAT_VAL_${i} + # endif + EOF + done + echo " ," + echo " .flags_strsz = 0" + for i in $(seq 0 "$((xlat_flag_cnt - 1))"); do + cat <<-EOF + # ifdef XLAT_STR_${i} + + sizeof(XLAT_STR_${i}) + # endif + EOF + done + echo " ," + + cat <<-EOF + } }; + + EOF + + for i in $(seq 0 "$((xlat_flag_cnt - 1))"); do + cat <<-EOF + # undef XLAT_STR_${i} + # undef XLAT_VAL_${i} + EOF + done + + cat <<-EOF # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ EOF ) >"${output}" + + exec 3>&- } gen_make() @@ -263,7 +383,7 @@ gen_make() local output="$1" local name shift - echo "generating ${output}" + echo "generating ${output}" >&2 ( printf "XLAT_INPUT_FILES = " printf 'xlat/%s.in ' "$@" @@ -283,23 +403,41 @@ gen_git() { local output="$1" shift - echo "generating ${output}" + echo "generating ${output}" >&2 ( - printf '/%s\n' .gitignore Makemodule.am + printf '/%s\n' .gitignore Makemodule.am st_check_enums.m4 printf '/%s.h\n' "$@" + printf '/%s.m4\n' "$@" ) >"${output}" } +gen_m4_entry() +{ + local output + output="$1"; shift + + echo "generating $output" >&2 + { + printf 'AC_DEFUN([st_CHECK_ENUMS],[\n' + while read fun; do + printf '\t%s\n' "$fun" + done + printf '])\n' + } >"$output" +} + main() { case $# in 0) set -- "${0%/*}" "${0%/*}" ;; 2) ;; + 3) ;; *) usage ;; esac local input="$1" local output="$2" + local output_m4="${3:-}" local name local jobs=0 local ncpus="$(getconf _NPROCESSORS_ONLN)" @@ -308,6 +446,7 @@ main() ncpus=1 if [ -d "${input}" ]; then + ( local f names= set +f set -- "${input}"/*.in @@ -316,7 +455,8 @@ main() [ -f "${f}" ] || continue name=${f##*/} name=${name%.in} - gen_header "${f}" "${output}/${name}.h" "${name}" & + gen_header "${f}" "${output}/${name}.h" "${name}" \ + "${output}/${name}.m4" & pids="$pids $!" names="${names} ${name}" : $(( jobs += 1 )) @@ -332,10 +472,12 @@ main() gen_git "${output}/.gitignore" ${names} & gen_make "${output}/Makemodule.am" ${names} & wait + ) | sort | gen_m4_entry "${output}/st_check_enums.m4" else name=${input##*/} name=${name%.in} - gen_header "${input}" "${output}" "${name}" + gen_header "${input}" "${output}" "${name}" "${output_m4}" \ + > /dev/null fi } diff --git a/xlat/get_mempolicy_flags.h b/xlat/get_mempolicy_flags.h new file mode 100644 index 00000000..1b01c6f6 --- /dev/null +++ b/xlat/get_mempolicy_flags.h @@ -0,0 +1,84 @@ +/* Generated by ./xlat/gen.sh from ./xlat/get_mempolicy_flags.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined(MPOL_F_NODE) || (defined(HAVE_DECL_MPOL_F_NODE) && HAVE_DECL_MPOL_F_NODE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MPOL_F_NODE) == (1), "MPOL_F_NODE != 1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MPOL_F_NODE 1 +#endif +#if defined(MPOL_F_ADDR) || (defined(HAVE_DECL_MPOL_F_ADDR) && HAVE_DECL_MPOL_F_ADDR) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MPOL_F_ADDR) == (2), "MPOL_F_ADDR != 2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MPOL_F_ADDR 2 +#endif +#if defined(MPOL_F_MEMS_ALLOWED) || (defined(HAVE_DECL_MPOL_F_MEMS_ALLOWED) && HAVE_DECL_MPOL_F_MEMS_ALLOWED) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MPOL_F_MEMS_ALLOWED) == (4), "MPOL_F_MEMS_ALLOWED != 4"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MPOL_F_MEMS_ALLOWED 4 +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat get_mempolicy_flags in mpers mode + +# else + +static const struct xlat_data get_mempolicy_flags_xdata[] = { + XLAT(MPOL_F_NODE), + #define XLAT_VAL_0 ((unsigned) (MPOL_F_NODE)) + #define XLAT_STR_0 STRINGIFY(MPOL_F_NODE) + XLAT(MPOL_F_ADDR), + #define XLAT_VAL_1 ((unsigned) (MPOL_F_ADDR)) + #define XLAT_STR_1 STRINGIFY(MPOL_F_ADDR) + XLAT(MPOL_F_MEMS_ALLOWED), + #define XLAT_VAL_2 ((unsigned) (MPOL_F_MEMS_ALLOWED)) + #define XLAT_STR_2 STRINGIFY(MPOL_F_MEMS_ALLOWED) +}; +static +const struct xlat get_mempolicy_flags[1] = { { + .data = get_mempolicy_flags_xdata, + .size = ARRAY_SIZE(get_mempolicy_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/get_mempolicy_flags.in b/xlat/get_mempolicy_flags.in new file mode 100644 index 00000000..4e8025b2 --- /dev/null +++ b/xlat/get_mempolicy_flags.in @@ -0,0 +1,3 @@ +MPOL_F_NODE 1 +MPOL_F_ADDR 2 +MPOL_F_MEMS_ALLOWED 4 diff --git a/xlat/getrandom_flags.h b/xlat/getrandom_flags.h index e2877d1a..d6f08f7a 100644 --- a/xlat/getrandom_flags.h +++ b/xlat/getrandom_flags.h @@ -17,6 +17,13 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define GRND_RANDOM 2 #endif +#if defined(GRND_INSECURE) || (defined(HAVE_DECL_GRND_INSECURE) && HAVE_DECL_GRND_INSECURE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((GRND_INSECURE) == (4), "GRND_INSECURE != 4"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define GRND_INSECURE 4 +#endif #ifndef XLAT_MACROS_ONLY @@ -26,13 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat getrandom_flags[] = { +static const struct xlat_data getrandom_flags_xdata[] = { XLAT(GRND_NONBLOCK), + #define XLAT_VAL_0 ((unsigned) (GRND_NONBLOCK)) + #define XLAT_STR_0 STRINGIFY(GRND_NONBLOCK) XLAT(GRND_RANDOM), - XLAT_END + #define XLAT_VAL_1 ((unsigned) (GRND_RANDOM)) + #define XLAT_STR_1 STRINGIFY(GRND_RANDOM) + XLAT(GRND_INSECURE), + #define XLAT_VAL_2 ((unsigned) (GRND_INSECURE)) + #define XLAT_STR_2 STRINGIFY(GRND_INSECURE) }; +static +const struct xlat getrandom_flags[1] = { { + .data = getrandom_flags_xdata, + .size = ARRAY_SIZE(getrandom_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/getrandom_flags.in b/xlat/getrandom_flags.in index ad1a7580..96fdcb00 100644 --- a/xlat/getrandom_flags.in +++ b/xlat/getrandom_flags.in @@ -1,2 +1,3 @@ GRND_NONBLOCK 1 GRND_RANDOM 2 +GRND_INSECURE 4 diff --git a/xlat/getsock_ip_options.h b/xlat/getsock_ip_options.h index ca4bd9eb..da49b6fe 100644 --- a/xlat/getsock_ip_options.h +++ b/xlat/getsock_ip_options.h @@ -12,8 +12,7 @@ # else -static -const struct xlat getsock_ip_options[] = { +static const struct xlat_data getsock_ip_options_xdata[] = { /* * Options specific to getsockopt(SOL_IP). * Common {g,s}etsockopt(SOL_IP) options @@ -22,70 +21,279 @@ const struct xlat getsock_ip_options[] = { #if defined(ARPT_SO_GET_INFO) || (defined(HAVE_DECL_ARPT_SO_GET_INFO) && HAVE_DECL_ARPT_SO_GET_INFO) XLAT(ARPT_SO_GET_INFO), + #define XLAT_VAL_0 ((unsigned) (ARPT_SO_GET_INFO)) + #define XLAT_STR_0 STRINGIFY(ARPT_SO_GET_INFO) #endif #if defined(ARPT_SO_GET_ENTRIES) || (defined(HAVE_DECL_ARPT_SO_GET_ENTRIES) && HAVE_DECL_ARPT_SO_GET_ENTRIES) XLAT(ARPT_SO_GET_ENTRIES), + #define XLAT_VAL_1 ((unsigned) (ARPT_SO_GET_ENTRIES)) + #define XLAT_STR_1 STRINGIFY(ARPT_SO_GET_ENTRIES) #endif #if defined(ARPT_SO_GET_REVISION_MATCH) || (defined(HAVE_DECL_ARPT_SO_GET_REVISION_MATCH) && HAVE_DECL_ARPT_SO_GET_REVISION_MATCH) XLAT(ARPT_SO_GET_REVISION_MATCH), + #define XLAT_VAL_2 ((unsigned) (ARPT_SO_GET_REVISION_MATCH)) + #define XLAT_STR_2 STRINGIFY(ARPT_SO_GET_REVISION_MATCH) #endif #if defined(ARPT_SO_GET_REVISION_TARGET) || (defined(HAVE_DECL_ARPT_SO_GET_REVISION_TARGET) && HAVE_DECL_ARPT_SO_GET_REVISION_TARGET) XLAT(ARPT_SO_GET_REVISION_TARGET), + #define XLAT_VAL_3 ((unsigned) (ARPT_SO_GET_REVISION_TARGET)) + #define XLAT_STR_3 STRINGIFY(ARPT_SO_GET_REVISION_TARGET) #endif #if defined(EBT_SO_GET_INFO) || (defined(HAVE_DECL_EBT_SO_GET_INFO) && HAVE_DECL_EBT_SO_GET_INFO) XLAT(EBT_SO_GET_INFO), + #define XLAT_VAL_4 ((unsigned) (EBT_SO_GET_INFO)) + #define XLAT_STR_4 STRINGIFY(EBT_SO_GET_INFO) #endif #if defined(EBT_SO_GET_ENTRIES) || (defined(HAVE_DECL_EBT_SO_GET_ENTRIES) && HAVE_DECL_EBT_SO_GET_ENTRIES) XLAT(EBT_SO_GET_ENTRIES), + #define XLAT_VAL_5 ((unsigned) (EBT_SO_GET_ENTRIES)) + #define XLAT_STR_5 STRINGIFY(EBT_SO_GET_ENTRIES) #endif #if defined(EBT_SO_GET_INIT_INFO) || (defined(HAVE_DECL_EBT_SO_GET_INIT_INFO) && HAVE_DECL_EBT_SO_GET_INIT_INFO) XLAT(EBT_SO_GET_INIT_INFO), + #define XLAT_VAL_6 ((unsigned) (EBT_SO_GET_INIT_INFO)) + #define XLAT_STR_6 STRINGIFY(EBT_SO_GET_INIT_INFO) #endif #if defined(EBT_SO_GET_INIT_ENTRIES) || (defined(HAVE_DECL_EBT_SO_GET_INIT_ENTRIES) && HAVE_DECL_EBT_SO_GET_INIT_ENTRIES) XLAT(EBT_SO_GET_INIT_ENTRIES), + #define XLAT_VAL_7 ((unsigned) (EBT_SO_GET_INIT_ENTRIES)) + #define XLAT_STR_7 STRINGIFY(EBT_SO_GET_INIT_ENTRIES) #endif #if defined(IP_VS_SO_GET_VERSION) || (defined(HAVE_DECL_IP_VS_SO_GET_VERSION) && HAVE_DECL_IP_VS_SO_GET_VERSION) XLAT(IP_VS_SO_GET_VERSION), + #define XLAT_VAL_8 ((unsigned) (IP_VS_SO_GET_VERSION)) + #define XLAT_STR_8 STRINGIFY(IP_VS_SO_GET_VERSION) #endif #if defined(IP_VS_SO_GET_INFO) || (defined(HAVE_DECL_IP_VS_SO_GET_INFO) && HAVE_DECL_IP_VS_SO_GET_INFO) XLAT(IP_VS_SO_GET_INFO), + #define XLAT_VAL_9 ((unsigned) (IP_VS_SO_GET_INFO)) + #define XLAT_STR_9 STRINGIFY(IP_VS_SO_GET_INFO) #endif #if defined(IP_VS_SO_GET_SERVICES) || (defined(HAVE_DECL_IP_VS_SO_GET_SERVICES) && HAVE_DECL_IP_VS_SO_GET_SERVICES) XLAT(IP_VS_SO_GET_SERVICES), + #define XLAT_VAL_10 ((unsigned) (IP_VS_SO_GET_SERVICES)) + #define XLAT_STR_10 STRINGIFY(IP_VS_SO_GET_SERVICES) #endif #if defined(IP_VS_SO_GET_SERVICE) || (defined(HAVE_DECL_IP_VS_SO_GET_SERVICE) && HAVE_DECL_IP_VS_SO_GET_SERVICE) XLAT(IP_VS_SO_GET_SERVICE), + #define XLAT_VAL_11 ((unsigned) (IP_VS_SO_GET_SERVICE)) + #define XLAT_STR_11 STRINGIFY(IP_VS_SO_GET_SERVICE) #endif #if defined(IP_VS_SO_GET_DESTS) || (defined(HAVE_DECL_IP_VS_SO_GET_DESTS) && HAVE_DECL_IP_VS_SO_GET_DESTS) XLAT(IP_VS_SO_GET_DESTS), + #define XLAT_VAL_12 ((unsigned) (IP_VS_SO_GET_DESTS)) + #define XLAT_STR_12 STRINGIFY(IP_VS_SO_GET_DESTS) #endif #if defined(IP_VS_SO_GET_DEST) || (defined(HAVE_DECL_IP_VS_SO_GET_DEST) && HAVE_DECL_IP_VS_SO_GET_DEST) XLAT(IP_VS_SO_GET_DEST), + #define XLAT_VAL_13 ((unsigned) (IP_VS_SO_GET_DEST)) + #define XLAT_STR_13 STRINGIFY(IP_VS_SO_GET_DEST) #endif #if defined(IP_VS_SO_GET_TIMEOUT) || (defined(HAVE_DECL_IP_VS_SO_GET_TIMEOUT) && HAVE_DECL_IP_VS_SO_GET_TIMEOUT) XLAT(IP_VS_SO_GET_TIMEOUT), + #define XLAT_VAL_14 ((unsigned) (IP_VS_SO_GET_TIMEOUT)) + #define XLAT_STR_14 STRINGIFY(IP_VS_SO_GET_TIMEOUT) #endif #if defined(IP_VS_SO_GET_DAEMON) || (defined(HAVE_DECL_IP_VS_SO_GET_DAEMON) && HAVE_DECL_IP_VS_SO_GET_DAEMON) XLAT(IP_VS_SO_GET_DAEMON), + #define XLAT_VAL_15 ((unsigned) (IP_VS_SO_GET_DAEMON)) + #define XLAT_STR_15 STRINGIFY(IP_VS_SO_GET_DAEMON) #endif #if defined(IPT_SO_GET_INFO) || (defined(HAVE_DECL_IPT_SO_GET_INFO) && HAVE_DECL_IPT_SO_GET_INFO) XLAT(IPT_SO_GET_INFO), + #define XLAT_VAL_16 ((unsigned) (IPT_SO_GET_INFO)) + #define XLAT_STR_16 STRINGIFY(IPT_SO_GET_INFO) #endif #if defined(IPT_SO_GET_ENTRIES) || (defined(HAVE_DECL_IPT_SO_GET_ENTRIES) && HAVE_DECL_IPT_SO_GET_ENTRIES) XLAT(IPT_SO_GET_ENTRIES), + #define XLAT_VAL_17 ((unsigned) (IPT_SO_GET_ENTRIES)) + #define XLAT_STR_17 STRINGIFY(IPT_SO_GET_ENTRIES) #endif #if defined(IPT_SO_GET_REVISION_MATCH) || (defined(HAVE_DECL_IPT_SO_GET_REVISION_MATCH) && HAVE_DECL_IPT_SO_GET_REVISION_MATCH) XLAT(IPT_SO_GET_REVISION_MATCH), + #define XLAT_VAL_18 ((unsigned) (IPT_SO_GET_REVISION_MATCH)) + #define XLAT_STR_18 STRINGIFY(IPT_SO_GET_REVISION_MATCH) #endif #if defined(IPT_SO_GET_REVISION_TARGET) || (defined(HAVE_DECL_IPT_SO_GET_REVISION_TARGET) && HAVE_DECL_IPT_SO_GET_REVISION_TARGET) XLAT(IPT_SO_GET_REVISION_TARGET), + #define XLAT_VAL_19 ((unsigned) (IPT_SO_GET_REVISION_TARGET)) + #define XLAT_STR_19 STRINGIFY(IPT_SO_GET_REVISION_TARGET) #endif - XLAT_END }; +static +const struct xlat getsock_ip_options[1] = { { + .data = getsock_ip_options_xdata, + .size = ARRAY_SIZE(getsock_ip_options_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/getsock_ipv6_options.h b/xlat/getsock_ipv6_options.h index 6525dfdb..e9137161 100644 --- a/xlat/getsock_ipv6_options.h +++ b/xlat/getsock_ipv6_options.h @@ -12,8 +12,7 @@ # else -static -const struct xlat getsock_ipv6_options[] = { +static const struct xlat_data getsock_ipv6_options_xdata[] = { /* * Options specific to getsockopt(SOL_IPV6). * Common {g,s}etsockopt(SOL_IPV6) options @@ -22,19 +21,68 @@ const struct xlat getsock_ipv6_options[] = { #if defined(IP6T_SO_GET_INFO) || (defined(HAVE_DECL_IP6T_SO_GET_INFO) && HAVE_DECL_IP6T_SO_GET_INFO) XLAT(IP6T_SO_GET_INFO), + #define XLAT_VAL_0 ((unsigned) (IP6T_SO_GET_INFO)) + #define XLAT_STR_0 STRINGIFY(IP6T_SO_GET_INFO) #endif #if defined(IP6T_SO_GET_ENTRIES) || (defined(HAVE_DECL_IP6T_SO_GET_ENTRIES) && HAVE_DECL_IP6T_SO_GET_ENTRIES) XLAT(IP6T_SO_GET_ENTRIES), + #define XLAT_VAL_1 ((unsigned) (IP6T_SO_GET_ENTRIES)) + #define XLAT_STR_1 STRINGIFY(IP6T_SO_GET_ENTRIES) #endif #if defined(IP6T_SO_GET_REVISION_MATCH) || (defined(HAVE_DECL_IP6T_SO_GET_REVISION_MATCH) && HAVE_DECL_IP6T_SO_GET_REVISION_MATCH) XLAT(IP6T_SO_GET_REVISION_MATCH), + #define XLAT_VAL_2 ((unsigned) (IP6T_SO_GET_REVISION_MATCH)) + #define XLAT_STR_2 STRINGIFY(IP6T_SO_GET_REVISION_MATCH) #endif #if defined(IP6T_SO_GET_REVISION_TARGET) || (defined(HAVE_DECL_IP6T_SO_GET_REVISION_TARGET) && HAVE_DECL_IP6T_SO_GET_REVISION_TARGET) XLAT(IP6T_SO_GET_REVISION_TARGET), + #define XLAT_VAL_3 ((unsigned) (IP6T_SO_GET_REVISION_TARGET)) + #define XLAT_STR_3 STRINGIFY(IP6T_SO_GET_REVISION_TARGET) #endif - XLAT_END }; +static +const struct xlat getsock_ipv6_options[1] = { { + .data = getsock_ipv6_options_xdata, + .size = ARRAY_SIZE(getsock_ipv6_options_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/getsock_options.h b/xlat/getsock_options.h index 1f2035fd..c201df85 100644 --- a/xlat/getsock_options.h +++ b/xlat/getsock_options.h @@ -29,16 +29,44 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat getsock_options[] = { +static const struct xlat_data getsock_options_xdata[] = { #if defined __hppa__ XLAT(SO_GET_FILTER), + #define XLAT_VAL_0 ((unsigned) (SO_GET_FILTER)) + #define XLAT_STR_0 STRINGIFY(SO_GET_FILTER) #else XLAT(SO_GET_FILTER), + #define XLAT_VAL_1 ((unsigned) (SO_GET_FILTER)) + #define XLAT_STR_1 STRINGIFY(SO_GET_FILTER) #endif - XLAT_END }; +static +const struct xlat getsock_options[1] = { { + .data = getsock_options_xdata, + .size = ARRAY_SIZE(getsock_options_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/hci_channels.h b/xlat/hci_channels.h index a989ff2c..84e28a23 100644 --- a/xlat/hci_channels.h +++ b/xlat/hci_channels.h @@ -47,16 +47,74 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat hci_channels[] = { +static const struct xlat_data hci_channels_xdata[] = { [HCI_CHANNEL_RAW] = XLAT(HCI_CHANNEL_RAW), + #define XLAT_VAL_0 ((unsigned) (HCI_CHANNEL_RAW)) + #define XLAT_STR_0 STRINGIFY(HCI_CHANNEL_RAW) [HCI_CHANNEL_USER] = XLAT(HCI_CHANNEL_USER), + #define XLAT_VAL_1 ((unsigned) (HCI_CHANNEL_USER)) + #define XLAT_STR_1 STRINGIFY(HCI_CHANNEL_USER) [HCI_CHANNEL_MONITOR] = XLAT(HCI_CHANNEL_MONITOR), + #define XLAT_VAL_2 ((unsigned) (HCI_CHANNEL_MONITOR)) + #define XLAT_STR_2 STRINGIFY(HCI_CHANNEL_MONITOR) [HCI_CHANNEL_CONTROL] = XLAT(HCI_CHANNEL_CONTROL), + #define XLAT_VAL_3 ((unsigned) (HCI_CHANNEL_CONTROL)) + #define XLAT_STR_3 STRINGIFY(HCI_CHANNEL_CONTROL) [HCI_CHANNEL_LOGGING] = XLAT(HCI_CHANNEL_LOGGING), - XLAT_END + #define XLAT_VAL_4 ((unsigned) (HCI_CHANNEL_LOGGING)) + #define XLAT_STR_4 STRINGIFY(HCI_CHANNEL_LOGGING) }; +static +const struct xlat hci_channels[1] = { { + .data = hci_channels_xdata, + .size = ARRAY_SIZE(hci_channels_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/hdio_drive_cmds.h b/xlat/hdio_drive_cmds.h new file mode 100644 index 00000000..a97c9f51 --- /dev/null +++ b/xlat/hdio_drive_cmds.h @@ -0,0 +1,1706 @@ +/* Generated by ./xlat/gen.sh from ./xlat/hdio_drive_cmds.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined(ATA_CMD_NOP) || (defined(HAVE_DECL_ATA_CMD_NOP) && HAVE_DECL_ATA_CMD_NOP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_NOP) == (0x00), "ATA_CMD_NOP != 0x00"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_NOP 0x00 +#endif +#if defined(ATA_CMD_CFA_REQ_EXT_ERR) || (defined(HAVE_DECL_ATA_CMD_CFA_REQ_EXT_ERR) && HAVE_DECL_ATA_CMD_CFA_REQ_EXT_ERR) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_CFA_REQ_EXT_ERR) == (0x03), "ATA_CMD_CFA_REQ_EXT_ERR != 0x03"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_CFA_REQ_EXT_ERR 0x03 +#endif +#if defined(ATA_CMD_DSM) || (defined(HAVE_DECL_ATA_CMD_DSM) && HAVE_DECL_ATA_CMD_DSM) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_DSM) == (0x06), "ATA_CMD_DSM != 0x06"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_DSM 0x06 +#endif +#if defined(ATA_CMD_DEV_RESET) || (defined(HAVE_DECL_ATA_CMD_DEV_RESET) && HAVE_DECL_ATA_CMD_DEV_RESET) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_DEV_RESET) == (0x08), "ATA_CMD_DEV_RESET != 0x08"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_DEV_RESET 0x08 +#endif +#if defined(ATA_CMD_REQ_SENSE_DATA) || (defined(HAVE_DECL_ATA_CMD_REQ_SENSE_DATA) && HAVE_DECL_ATA_CMD_REQ_SENSE_DATA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_REQ_SENSE_DATA) == (0x0B), "ATA_CMD_REQ_SENSE_DATA != 0x0B"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_REQ_SENSE_DATA 0x0B +#endif +#if defined(ATA_CMD_RESTORE) || (defined(HAVE_DECL_ATA_CMD_RESTORE) && HAVE_DECL_ATA_CMD_RESTORE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_RESTORE) == (0x10), "ATA_CMD_RESTORE != 0x10"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_RESTORE 0x10 +#endif +#if defined(ATA_CMD_PIO_READ) || (defined(HAVE_DECL_ATA_CMD_PIO_READ) && HAVE_DECL_ATA_CMD_PIO_READ) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_PIO_READ) == (0x20), "ATA_CMD_PIO_READ != 0x20"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_PIO_READ 0x20 +#endif +#if defined(ATA_CMD_READ_LONG) || (defined(HAVE_DECL_ATA_CMD_READ_LONG) && HAVE_DECL_ATA_CMD_READ_LONG) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_READ_LONG) == (0x22), "ATA_CMD_READ_LONG != 0x22"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_READ_LONG 0x22 +#endif +#if defined(ATA_CMD_READ_LONG_ONCE) || (defined(HAVE_DECL_ATA_CMD_READ_LONG_ONCE) && HAVE_DECL_ATA_CMD_READ_LONG_ONCE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_READ_LONG_ONCE) == (0x23), "ATA_CMD_READ_LONG_ONCE != 0x23"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_READ_LONG_ONCE 0x23 +#endif +#if defined(ATA_CMD_PIO_READ_EXT) || (defined(HAVE_DECL_ATA_CMD_PIO_READ_EXT) && HAVE_DECL_ATA_CMD_PIO_READ_EXT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_PIO_READ_EXT) == (0x24), "ATA_CMD_PIO_READ_EXT != 0x24"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_PIO_READ_EXT 0x24 +#endif +#if defined(ATA_CMD_READ_EXT) || (defined(HAVE_DECL_ATA_CMD_READ_EXT) && HAVE_DECL_ATA_CMD_READ_EXT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_READ_EXT) == (0x25), "ATA_CMD_READ_EXT != 0x25"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_READ_EXT 0x25 +#endif +#if defined(ATA_CMD_READ_QUEUED) || (defined(HAVE_DECL_ATA_CMD_READ_QUEUED) && HAVE_DECL_ATA_CMD_READ_QUEUED) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_READ_QUEUED) == (0x26), "ATA_CMD_READ_QUEUED != 0x26"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_READ_QUEUED 0x26 +#endif +#if defined(ATA_CMD_READ_NATIVE_MAX_EXT) || (defined(HAVE_DECL_ATA_CMD_READ_NATIVE_MAX_EXT) && HAVE_DECL_ATA_CMD_READ_NATIVE_MAX_EXT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_READ_NATIVE_MAX_EXT) == (0x27), "ATA_CMD_READ_NATIVE_MAX_EXT != 0x27"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_READ_NATIVE_MAX_EXT 0x27 +#endif +#if defined(ATA_CMD_READ_MULTI_EXT) || (defined(HAVE_DECL_ATA_CMD_READ_MULTI_EXT) && HAVE_DECL_ATA_CMD_READ_MULTI_EXT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_READ_MULTI_EXT) == (0x29), "ATA_CMD_READ_MULTI_EXT != 0x29"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_READ_MULTI_EXT 0x29 +#endif +#if defined(ATA_CMD_READ_STREAM_DMA_EXT) || (defined(HAVE_DECL_ATA_CMD_READ_STREAM_DMA_EXT) && HAVE_DECL_ATA_CMD_READ_STREAM_DMA_EXT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_READ_STREAM_DMA_EXT) == (0x2A), "ATA_CMD_READ_STREAM_DMA_EXT != 0x2A"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_READ_STREAM_DMA_EXT 0x2A +#endif +#if defined(ATA_CMD_READ_STREAM_EXT) || (defined(HAVE_DECL_ATA_CMD_READ_STREAM_EXT) && HAVE_DECL_ATA_CMD_READ_STREAM_EXT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_READ_STREAM_EXT) == (0x2B), "ATA_CMD_READ_STREAM_EXT != 0x2B"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_READ_STREAM_EXT 0x2B +#endif +#if defined(ATA_CMD_READ_LOG_EXT) || (defined(HAVE_DECL_ATA_CMD_READ_LOG_EXT) && HAVE_DECL_ATA_CMD_READ_LOG_EXT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_READ_LOG_EXT) == (0x2F), "ATA_CMD_READ_LOG_EXT != 0x2F"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_READ_LOG_EXT 0x2F +#endif +#if defined(ATA_CMD_PIO_WRITE) || (defined(HAVE_DECL_ATA_CMD_PIO_WRITE) && HAVE_DECL_ATA_CMD_PIO_WRITE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_PIO_WRITE) == (0x30), "ATA_CMD_PIO_WRITE != 0x30"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_PIO_WRITE 0x30 +#endif +#if defined(ATA_CMD_WRITE_LONG) || (defined(HAVE_DECL_ATA_CMD_WRITE_LONG) && HAVE_DECL_ATA_CMD_WRITE_LONG) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_WRITE_LONG) == (0x32), "ATA_CMD_WRITE_LONG != 0x32"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_WRITE_LONG 0x32 +#endif +#if defined(ATA_CMD_WRITE_LONG_ONCE) || (defined(HAVE_DECL_ATA_CMD_WRITE_LONG_ONCE) && HAVE_DECL_ATA_CMD_WRITE_LONG_ONCE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_WRITE_LONG_ONCE) == (0x33), "ATA_CMD_WRITE_LONG_ONCE != 0x33"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_WRITE_LONG_ONCE 0x33 +#endif +#if defined(ATA_CMD_PIO_WRITE_EXT) || (defined(HAVE_DECL_ATA_CMD_PIO_WRITE_EXT) && HAVE_DECL_ATA_CMD_PIO_WRITE_EXT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_PIO_WRITE_EXT) == (0x34), "ATA_CMD_PIO_WRITE_EXT != 0x34"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_PIO_WRITE_EXT 0x34 +#endif +#if defined(ATA_CMD_WRITE_EXT) || (defined(HAVE_DECL_ATA_CMD_WRITE_EXT) && HAVE_DECL_ATA_CMD_WRITE_EXT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_WRITE_EXT) == (0x35), "ATA_CMD_WRITE_EXT != 0x35"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_WRITE_EXT 0x35 +#endif +#if defined(ATA_CMD_WRITE_QUEUED) || (defined(HAVE_DECL_ATA_CMD_WRITE_QUEUED) && HAVE_DECL_ATA_CMD_WRITE_QUEUED) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_WRITE_QUEUED) == (0x36), "ATA_CMD_WRITE_QUEUED != 0x36"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_WRITE_QUEUED 0x36 +#endif +#if defined(ATA_CMD_SET_MAX_EXT) || (defined(HAVE_DECL_ATA_CMD_SET_MAX_EXT) && HAVE_DECL_ATA_CMD_SET_MAX_EXT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_SET_MAX_EXT) == (0x37), "ATA_CMD_SET_MAX_EXT != 0x37"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_SET_MAX_EXT 0x37 +#endif +#if defined(ATA_CMD_CFA_WRITE_NE) || (defined(HAVE_DECL_ATA_CMD_CFA_WRITE_NE) && HAVE_DECL_ATA_CMD_CFA_WRITE_NE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_CFA_WRITE_NE) == (0x38), "ATA_CMD_CFA_WRITE_NE != 0x38"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_CFA_WRITE_NE 0x38 +#endif +#if defined(ATA_CMD_WRITE_MULTI_EXT) || (defined(HAVE_DECL_ATA_CMD_WRITE_MULTI_EXT) && HAVE_DECL_ATA_CMD_WRITE_MULTI_EXT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_WRITE_MULTI_EXT) == (0x39), "ATA_CMD_WRITE_MULTI_EXT != 0x39"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_WRITE_MULTI_EXT 0x39 +#endif +#if defined(ATA_CMD_WRITE_STREAM_DMA_EXT) || (defined(HAVE_DECL_ATA_CMD_WRITE_STREAM_DMA_EXT) && HAVE_DECL_ATA_CMD_WRITE_STREAM_DMA_EXT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_WRITE_STREAM_DMA_EXT) == (0x3A), "ATA_CMD_WRITE_STREAM_DMA_EXT != 0x3A"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_WRITE_STREAM_DMA_EXT 0x3A +#endif +#if defined(ATA_CMD_WRITE_STREAM_EXT) || (defined(HAVE_DECL_ATA_CMD_WRITE_STREAM_EXT) && HAVE_DECL_ATA_CMD_WRITE_STREAM_EXT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_WRITE_STREAM_EXT) == (0x3B), "ATA_CMD_WRITE_STREAM_EXT != 0x3B"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_WRITE_STREAM_EXT 0x3B +#endif +#if defined(ATA_CMD_WRITE_FUA_EXT) || (defined(HAVE_DECL_ATA_CMD_WRITE_FUA_EXT) && HAVE_DECL_ATA_CMD_WRITE_FUA_EXT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_WRITE_FUA_EXT) == (0x3D), "ATA_CMD_WRITE_FUA_EXT != 0x3D"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_WRITE_FUA_EXT 0x3D +#endif +#if defined(ATA_CMD_WRITE_QUEUED_FUA_EXT) || (defined(HAVE_DECL_ATA_CMD_WRITE_QUEUED_FUA_EXT) && HAVE_DECL_ATA_CMD_WRITE_QUEUED_FUA_EXT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_WRITE_QUEUED_FUA_EXT) == (0x3E), "ATA_CMD_WRITE_QUEUED_FUA_EXT != 0x3E"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_WRITE_QUEUED_FUA_EXT 0x3E +#endif +#if defined(ATA_CMD_WRITE_LOG_EXT) || (defined(HAVE_DECL_ATA_CMD_WRITE_LOG_EXT) && HAVE_DECL_ATA_CMD_WRITE_LOG_EXT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_WRITE_LOG_EXT) == (0x3F), "ATA_CMD_WRITE_LOG_EXT != 0x3F"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_WRITE_LOG_EXT 0x3F +#endif +#if defined(ATA_CMD_VERIFY) || (defined(HAVE_DECL_ATA_CMD_VERIFY) && HAVE_DECL_ATA_CMD_VERIFY) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_VERIFY) == (0x40), "ATA_CMD_VERIFY != 0x40"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_VERIFY 0x40 +#endif +#if defined(ATA_CMD_VERIFY_EXT) || (defined(HAVE_DECL_ATA_CMD_VERIFY_EXT) && HAVE_DECL_ATA_CMD_VERIFY_EXT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_VERIFY_EXT) == (0x42), "ATA_CMD_VERIFY_EXT != 0x42"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_VERIFY_EXT 0x42 +#endif +#if defined(ATA_CMD_WRITE_UNCORR_EXT) || (defined(HAVE_DECL_ATA_CMD_WRITE_UNCORR_EXT) && HAVE_DECL_ATA_CMD_WRITE_UNCORR_EXT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_WRITE_UNCORR_EXT) == (0x45), "ATA_CMD_WRITE_UNCORR_EXT != 0x45"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_WRITE_UNCORR_EXT 0x45 +#endif +#if defined(ATA_CMD_READ_LOG_DMA_EXT) || (defined(HAVE_DECL_ATA_CMD_READ_LOG_DMA_EXT) && HAVE_DECL_ATA_CMD_READ_LOG_DMA_EXT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_READ_LOG_DMA_EXT) == (0x47), "ATA_CMD_READ_LOG_DMA_EXT != 0x47"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_READ_LOG_DMA_EXT 0x47 +#endif +#if defined(ATA_CMD_ZAC_MGMT_IN) || (defined(HAVE_DECL_ATA_CMD_ZAC_MGMT_IN) && HAVE_DECL_ATA_CMD_ZAC_MGMT_IN) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_ZAC_MGMT_IN) == (0x4A), "ATA_CMD_ZAC_MGMT_IN != 0x4A"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_ZAC_MGMT_IN 0x4A +#endif +#if defined(ATA_CMD_CONFIG_STREAM) || (defined(HAVE_DECL_ATA_CMD_CONFIG_STREAM) && HAVE_DECL_ATA_CMD_CONFIG_STREAM) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_CONFIG_STREAM) == (0x51), "ATA_CMD_CONFIG_STREAM != 0x51"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_CONFIG_STREAM 0x51 +#endif +#if defined(ATA_CMD_WRITE_LOG_DMA_EXT) || (defined(HAVE_DECL_ATA_CMD_WRITE_LOG_DMA_EXT) && HAVE_DECL_ATA_CMD_WRITE_LOG_DMA_EXT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_WRITE_LOG_DMA_EXT) == (0x57), "ATA_CMD_WRITE_LOG_DMA_EXT != 0x57"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_WRITE_LOG_DMA_EXT 0x57 +#endif +#if defined(ATA_CMD_TRUSTED_NONDATA) || (defined(HAVE_DECL_ATA_CMD_TRUSTED_NONDATA) && HAVE_DECL_ATA_CMD_TRUSTED_NONDATA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_TRUSTED_NONDATA) == (0x5B), "ATA_CMD_TRUSTED_NONDATA != 0x5B"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_TRUSTED_NONDATA 0x5B +#endif +#if defined(ATA_CMD_TRUSTED_RCV) || (defined(HAVE_DECL_ATA_CMD_TRUSTED_RCV) && HAVE_DECL_ATA_CMD_TRUSTED_RCV) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_TRUSTED_RCV) == (0x5C), "ATA_CMD_TRUSTED_RCV != 0x5C"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_TRUSTED_RCV 0x5C +#endif +#if defined(ATA_CMD_TRUSTED_RCV_DMA) || (defined(HAVE_DECL_ATA_CMD_TRUSTED_RCV_DMA) && HAVE_DECL_ATA_CMD_TRUSTED_RCV_DMA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_TRUSTED_RCV_DMA) == (0x5D), "ATA_CMD_TRUSTED_RCV_DMA != 0x5D"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_TRUSTED_RCV_DMA 0x5D +#endif +#if defined(ATA_CMD_TRUSTED_SND) || (defined(HAVE_DECL_ATA_CMD_TRUSTED_SND) && HAVE_DECL_ATA_CMD_TRUSTED_SND) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_TRUSTED_SND) == (0x5E), "ATA_CMD_TRUSTED_SND != 0x5E"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_TRUSTED_SND 0x5E +#endif +#if defined(ATA_CMD_TRUSTED_SND_DMA) || (defined(HAVE_DECL_ATA_CMD_TRUSTED_SND_DMA) && HAVE_DECL_ATA_CMD_TRUSTED_SND_DMA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_TRUSTED_SND_DMA) == (0x5F), "ATA_CMD_TRUSTED_SND_DMA != 0x5F"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_TRUSTED_SND_DMA 0x5F +#endif +#if defined(ATA_CMD_FPDMA_READ) || (defined(HAVE_DECL_ATA_CMD_FPDMA_READ) && HAVE_DECL_ATA_CMD_FPDMA_READ) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_FPDMA_READ) == (0x60), "ATA_CMD_FPDMA_READ != 0x60"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_FPDMA_READ 0x60 +#endif +#if defined(ATA_CMD_FPDMA_WRITE) || (defined(HAVE_DECL_ATA_CMD_FPDMA_WRITE) && HAVE_DECL_ATA_CMD_FPDMA_WRITE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_FPDMA_WRITE) == (0x61), "ATA_CMD_FPDMA_WRITE != 0x61"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_FPDMA_WRITE 0x61 +#endif +#if defined(ATA_CMD_NCQ_NON_DATA) || (defined(HAVE_DECL_ATA_CMD_NCQ_NON_DATA) && HAVE_DECL_ATA_CMD_NCQ_NON_DATA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_NCQ_NON_DATA) == (0x63), "ATA_CMD_NCQ_NON_DATA != 0x63"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_NCQ_NON_DATA 0x63 +#endif +#if defined(ATA_CMD_FPDMA_SEND) || (defined(HAVE_DECL_ATA_CMD_FPDMA_SEND) && HAVE_DECL_ATA_CMD_FPDMA_SEND) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_FPDMA_SEND) == (0x64), "ATA_CMD_FPDMA_SEND != 0x64"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_FPDMA_SEND 0x64 +#endif +#if defined(ATA_CMD_FPDMA_RECV) || (defined(HAVE_DECL_ATA_CMD_FPDMA_RECV) && HAVE_DECL_ATA_CMD_FPDMA_RECV) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_FPDMA_RECV) == (0x65), "ATA_CMD_FPDMA_RECV != 0x65"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_FPDMA_RECV 0x65 +#endif +#if defined(ATA_CMD_CFA_TRANS_SECT) || (defined(HAVE_DECL_ATA_CMD_CFA_TRANS_SECT) && HAVE_DECL_ATA_CMD_CFA_TRANS_SECT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_CFA_TRANS_SECT) == (0x87), "ATA_CMD_CFA_TRANS_SECT != 0x87"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_CFA_TRANS_SECT 0x87 +#endif +#if defined(ATA_CMD_EDD) || (defined(HAVE_DECL_ATA_CMD_EDD) && HAVE_DECL_ATA_CMD_EDD) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_EDD) == (0x90), "ATA_CMD_EDD != 0x90"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_EDD 0x90 +#endif +#if defined(ATA_CMD_INIT_DEV_PARAMS) || (defined(HAVE_DECL_ATA_CMD_INIT_DEV_PARAMS) && HAVE_DECL_ATA_CMD_INIT_DEV_PARAMS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_INIT_DEV_PARAMS) == (0x91), "ATA_CMD_INIT_DEV_PARAMS != 0x91"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_INIT_DEV_PARAMS 0x91 +#endif +#if defined(ATA_CMD_DOWNLOAD_MICRO) || (defined(HAVE_DECL_ATA_CMD_DOWNLOAD_MICRO) && HAVE_DECL_ATA_CMD_DOWNLOAD_MICRO) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_DOWNLOAD_MICRO) == (0x92), "ATA_CMD_DOWNLOAD_MICRO != 0x92"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_DOWNLOAD_MICRO 0x92 +#endif +#if defined(ATA_CMD_DOWNLOAD_MICRO_DMA) || (defined(HAVE_DECL_ATA_CMD_DOWNLOAD_MICRO_DMA) && HAVE_DECL_ATA_CMD_DOWNLOAD_MICRO_DMA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_DOWNLOAD_MICRO_DMA) == (0x93), "ATA_CMD_DOWNLOAD_MICRO_DMA != 0x93"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_DOWNLOAD_MICRO_DMA 0x93 +#endif +#if defined(ATA_CMD_ZAC_MGMT_OUT) || (defined(HAVE_DECL_ATA_CMD_ZAC_MGMT_OUT) && HAVE_DECL_ATA_CMD_ZAC_MGMT_OUT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_ZAC_MGMT_OUT) == (0x9F), "ATA_CMD_ZAC_MGMT_OUT != 0x9F"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_ZAC_MGMT_OUT 0x9F +#endif +#if defined(ATA_CMD_PACKET) || (defined(HAVE_DECL_ATA_CMD_PACKET) && HAVE_DECL_ATA_CMD_PACKET) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_PACKET) == (0xA0), "ATA_CMD_PACKET != 0xA0"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_PACKET 0xA0 +#endif +#if defined(ATA_CMD_ID_ATAPI) || (defined(HAVE_DECL_ATA_CMD_ID_ATAPI) && HAVE_DECL_ATA_CMD_ID_ATAPI) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_ID_ATAPI) == (0xA1), "ATA_CMD_ID_ATAPI != 0xA1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_ID_ATAPI 0xA1 +#endif +#if defined(ATA_CMD_SERVICE) || (defined(HAVE_DECL_ATA_CMD_SERVICE) && HAVE_DECL_ATA_CMD_SERVICE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_SERVICE) == (0xA2), "ATA_CMD_SERVICE != 0xA2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_SERVICE 0xA2 +#endif +#if defined(ATA_CMD_SMART) || (defined(HAVE_DECL_ATA_CMD_SMART) && HAVE_DECL_ATA_CMD_SMART) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_SMART) == (0xB0), "ATA_CMD_SMART != 0xB0"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_SMART 0xB0 +#endif +#if defined(ATA_CMD_CONF_OVERLAY) || (defined(HAVE_DECL_ATA_CMD_CONF_OVERLAY) && HAVE_DECL_ATA_CMD_CONF_OVERLAY) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_CONF_OVERLAY) == (0xB1), "ATA_CMD_CONF_OVERLAY != 0xB1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_CONF_OVERLAY 0xB1 +#endif +#if defined(ATA_CMD_SANITIZE_DEVICE) || (defined(HAVE_DECL_ATA_CMD_SANITIZE_DEVICE) && HAVE_DECL_ATA_CMD_SANITIZE_DEVICE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_SANITIZE_DEVICE) == (0xB4), "ATA_CMD_SANITIZE_DEVICE != 0xB4"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_SANITIZE_DEVICE 0xB4 +#endif +#if defined(ATA_CMD_CFA_ERASE) || (defined(HAVE_DECL_ATA_CMD_CFA_ERASE) && HAVE_DECL_ATA_CMD_CFA_ERASE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_CFA_ERASE) == (0xC0), "ATA_CMD_CFA_ERASE != 0xC0"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_CFA_ERASE 0xC0 +#endif +#if defined(ATA_CMD_READ_MULTI) || (defined(HAVE_DECL_ATA_CMD_READ_MULTI) && HAVE_DECL_ATA_CMD_READ_MULTI) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_READ_MULTI) == (0xC4), "ATA_CMD_READ_MULTI != 0xC4"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_READ_MULTI 0xC4 +#endif +#if defined(ATA_CMD_WRITE_MULTI) || (defined(HAVE_DECL_ATA_CMD_WRITE_MULTI) && HAVE_DECL_ATA_CMD_WRITE_MULTI) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_WRITE_MULTI) == (0xC5), "ATA_CMD_WRITE_MULTI != 0xC5"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_WRITE_MULTI 0xC5 +#endif +#if defined(ATA_CMD_SET_MULTI) || (defined(HAVE_DECL_ATA_CMD_SET_MULTI) && HAVE_DECL_ATA_CMD_SET_MULTI) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_SET_MULTI) == (0xC6), "ATA_CMD_SET_MULTI != 0xC6"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_SET_MULTI 0xC6 +#endif +#if defined(ATA_CMD_READ) || (defined(HAVE_DECL_ATA_CMD_READ) && HAVE_DECL_ATA_CMD_READ) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_READ) == (0xC8), "ATA_CMD_READ != 0xC8"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_READ 0xC8 +#endif +#if defined(ATA_CMD_WRITE) || (defined(HAVE_DECL_ATA_CMD_WRITE) && HAVE_DECL_ATA_CMD_WRITE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_WRITE) == (0xCA), "ATA_CMD_WRITE != 0xCA"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_WRITE 0xCA +#endif +#if defined(ATA_CMD_CFA_WRITE_MULT_NE) || (defined(HAVE_DECL_ATA_CMD_CFA_WRITE_MULT_NE) && HAVE_DECL_ATA_CMD_CFA_WRITE_MULT_NE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_CFA_WRITE_MULT_NE) == (0xCD), "ATA_CMD_CFA_WRITE_MULT_NE != 0xCD"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_CFA_WRITE_MULT_NE 0xCD +#endif +#if defined(ATA_CMD_WRITE_MULTI_FUA_EXT) || (defined(HAVE_DECL_ATA_CMD_WRITE_MULTI_FUA_EXT) && HAVE_DECL_ATA_CMD_WRITE_MULTI_FUA_EXT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_WRITE_MULTI_FUA_EXT) == (0xCE), "ATA_CMD_WRITE_MULTI_FUA_EXT != 0xCE"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_WRITE_MULTI_FUA_EXT 0xCE +#endif +#if defined(ATA_CMD_CHK_MED_CRD_TYP) || (defined(HAVE_DECL_ATA_CMD_CHK_MED_CRD_TYP) && HAVE_DECL_ATA_CMD_CHK_MED_CRD_TYP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_CHK_MED_CRD_TYP) == (0xD1), "ATA_CMD_CHK_MED_CRD_TYP != 0xD1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_CHK_MED_CRD_TYP 0xD1 +#endif +#if defined(ATA_CMD_MEDIA_LOCK) || (defined(HAVE_DECL_ATA_CMD_MEDIA_LOCK) && HAVE_DECL_ATA_CMD_MEDIA_LOCK) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_MEDIA_LOCK) == (0xDE), "ATA_CMD_MEDIA_LOCK != 0xDE"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_MEDIA_LOCK 0xDE +#endif +#if defined(ATA_CMD_MEDIA_UNLOCK) || (defined(HAVE_DECL_ATA_CMD_MEDIA_UNLOCK) && HAVE_DECL_ATA_CMD_MEDIA_UNLOCK) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_MEDIA_UNLOCK) == (0xDF), "ATA_CMD_MEDIA_UNLOCK != 0xDF"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_MEDIA_UNLOCK 0xDF +#endif +#if defined(ATA_CMD_STANDBYNOW1) || (defined(HAVE_DECL_ATA_CMD_STANDBYNOW1) && HAVE_DECL_ATA_CMD_STANDBYNOW1) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_STANDBYNOW1) == (0xE0), "ATA_CMD_STANDBYNOW1 != 0xE0"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_STANDBYNOW1 0xE0 +#endif +#if defined(ATA_CMD_IDLEIMMEDIATE) || (defined(HAVE_DECL_ATA_CMD_IDLEIMMEDIATE) && HAVE_DECL_ATA_CMD_IDLEIMMEDIATE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_IDLEIMMEDIATE) == (0xE1), "ATA_CMD_IDLEIMMEDIATE != 0xE1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_IDLEIMMEDIATE 0xE1 +#endif +#if defined(ATA_CMD_STANDBY) || (defined(HAVE_DECL_ATA_CMD_STANDBY) && HAVE_DECL_ATA_CMD_STANDBY) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_STANDBY) == (0xE2), "ATA_CMD_STANDBY != 0xE2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_STANDBY 0xE2 +#endif +#if defined(ATA_CMD_IDLE) || (defined(HAVE_DECL_ATA_CMD_IDLE) && HAVE_DECL_ATA_CMD_IDLE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_IDLE) == (0xE3), "ATA_CMD_IDLE != 0xE3"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_IDLE 0xE3 +#endif +#if defined(ATA_CMD_PMP_READ) || (defined(HAVE_DECL_ATA_CMD_PMP_READ) && HAVE_DECL_ATA_CMD_PMP_READ) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_PMP_READ) == (0xE4), "ATA_CMD_PMP_READ != 0xE4"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_PMP_READ 0xE4 +#endif +#if defined(ATA_CMD_CHK_POWER) || (defined(HAVE_DECL_ATA_CMD_CHK_POWER) && HAVE_DECL_ATA_CMD_CHK_POWER) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_CHK_POWER) == (0xE5), "ATA_CMD_CHK_POWER != 0xE5"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_CHK_POWER 0xE5 +#endif +#if defined(ATA_CMD_SLEEP) || (defined(HAVE_DECL_ATA_CMD_SLEEP) && HAVE_DECL_ATA_CMD_SLEEP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_SLEEP) == (0xE6), "ATA_CMD_SLEEP != 0xE6"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_SLEEP 0xE6 +#endif +#if defined(ATA_CMD_FLUSH) || (defined(HAVE_DECL_ATA_CMD_FLUSH) && HAVE_DECL_ATA_CMD_FLUSH) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_FLUSH) == (0xE7), "ATA_CMD_FLUSH != 0xE7"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_FLUSH 0xE7 +#endif +#if defined(ATA_CMD_PMP_WRITE) || (defined(HAVE_DECL_ATA_CMD_PMP_WRITE) && HAVE_DECL_ATA_CMD_PMP_WRITE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_PMP_WRITE) == (0xE8), "ATA_CMD_PMP_WRITE != 0xE8"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_PMP_WRITE 0xE8 +#endif +#if defined(ATA_CMD_PMP_READ_DMA) || (defined(HAVE_DECL_ATA_CMD_PMP_READ_DMA) && HAVE_DECL_ATA_CMD_PMP_READ_DMA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_PMP_READ_DMA) == (0xE9), "ATA_CMD_PMP_READ_DMA != 0xE9"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_PMP_READ_DMA 0xE9 +#endif +#if defined(ATA_CMD_FLUSH_EXT) || (defined(HAVE_DECL_ATA_CMD_FLUSH_EXT) && HAVE_DECL_ATA_CMD_FLUSH_EXT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_FLUSH_EXT) == (0xEA), "ATA_CMD_FLUSH_EXT != 0xEA"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_FLUSH_EXT 0xEA +#endif +#if defined(ATA_CMD_PMP_WRITE_DMA) || (defined(HAVE_DECL_ATA_CMD_PMP_WRITE_DMA) && HAVE_DECL_ATA_CMD_PMP_WRITE_DMA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_PMP_WRITE_DMA) == (0xEB), "ATA_CMD_PMP_WRITE_DMA != 0xEB"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_PMP_WRITE_DMA 0xEB +#endif +#if defined(ATA_CMD_ID_ATA) || (defined(HAVE_DECL_ATA_CMD_ID_ATA) && HAVE_DECL_ATA_CMD_ID_ATA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_ID_ATA) == (0xEC), "ATA_CMD_ID_ATA != 0xEC"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_ID_ATA 0xEC +#endif +#if defined(ATA_CMD_SET_FEATURES) || (defined(HAVE_DECL_ATA_CMD_SET_FEATURES) && HAVE_DECL_ATA_CMD_SET_FEATURES) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_SET_FEATURES) == (0xEF), "ATA_CMD_SET_FEATURES != 0xEF"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_SET_FEATURES 0xEF +#endif +#if defined(ATA_CMD_SEC_SET_PASS) || (defined(HAVE_DECL_ATA_CMD_SEC_SET_PASS) && HAVE_DECL_ATA_CMD_SEC_SET_PASS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_SEC_SET_PASS) == (0xF1), "ATA_CMD_SEC_SET_PASS != 0xF1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_SEC_SET_PASS 0xF1 +#endif +#if defined(ATA_CMD_SEC_UNLOCK) || (defined(HAVE_DECL_ATA_CMD_SEC_UNLOCK) && HAVE_DECL_ATA_CMD_SEC_UNLOCK) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_SEC_UNLOCK) == (0xF2), "ATA_CMD_SEC_UNLOCK != 0xF2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_SEC_UNLOCK 0xF2 +#endif +#if defined(ATA_CMD_SEC_ERASE_PREP) || (defined(HAVE_DECL_ATA_CMD_SEC_ERASE_PREP) && HAVE_DECL_ATA_CMD_SEC_ERASE_PREP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_SEC_ERASE_PREP) == (0xF3), "ATA_CMD_SEC_ERASE_PREP != 0xF3"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_SEC_ERASE_PREP 0xF3 +#endif +#if defined(ATA_CMD_SEC_ERASE_UNIT) || (defined(HAVE_DECL_ATA_CMD_SEC_ERASE_UNIT) && HAVE_DECL_ATA_CMD_SEC_ERASE_UNIT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_SEC_ERASE_UNIT) == (0xF4), "ATA_CMD_SEC_ERASE_UNIT != 0xF4"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_SEC_ERASE_UNIT 0xF4 +#endif +#if defined(ATA_CMD_SEC_FREEZE_LOCK) || (defined(HAVE_DECL_ATA_CMD_SEC_FREEZE_LOCK) && HAVE_DECL_ATA_CMD_SEC_FREEZE_LOCK) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_SEC_FREEZE_LOCK) == (0xF5), "ATA_CMD_SEC_FREEZE_LOCK != 0xF5"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_SEC_FREEZE_LOCK 0xF5 +#endif +#if defined(ATA_CMD_SEC_DISABLE_PASS) || (defined(HAVE_DECL_ATA_CMD_SEC_DISABLE_PASS) && HAVE_DECL_ATA_CMD_SEC_DISABLE_PASS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_SEC_DISABLE_PASS) == (0xF6), "ATA_CMD_SEC_DISABLE_PASS != 0xF6"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_SEC_DISABLE_PASS 0xF6 +#endif +#if defined(ATA_CMD_READ_NATIVE_MAX) || (defined(HAVE_DECL_ATA_CMD_READ_NATIVE_MAX) && HAVE_DECL_ATA_CMD_READ_NATIVE_MAX) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_READ_NATIVE_MAX) == (0xF8), "ATA_CMD_READ_NATIVE_MAX != 0xF8"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_READ_NATIVE_MAX 0xF8 +#endif +#if defined(ATA_CMD_SET_MAX) || (defined(HAVE_DECL_ATA_CMD_SET_MAX) && HAVE_DECL_ATA_CMD_SET_MAX) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((ATA_CMD_SET_MAX) == (0xF9), "ATA_CMD_SET_MAX != 0xF9"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define ATA_CMD_SET_MAX 0xF9 +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +extern const struct xlat hdio_drive_cmds[]; + +# else + +static const struct xlat_data hdio_drive_cmds_xdata[] = { + XLAT(ATA_CMD_NOP), + #define XLAT_VAL_0 ((unsigned) (ATA_CMD_NOP)) + #define XLAT_STR_0 STRINGIFY(ATA_CMD_NOP) + XLAT(ATA_CMD_CFA_REQ_EXT_ERR), + #define XLAT_VAL_1 ((unsigned) (ATA_CMD_CFA_REQ_EXT_ERR)) + #define XLAT_STR_1 STRINGIFY(ATA_CMD_CFA_REQ_EXT_ERR) + XLAT(ATA_CMD_DSM), + #define XLAT_VAL_2 ((unsigned) (ATA_CMD_DSM)) + #define XLAT_STR_2 STRINGIFY(ATA_CMD_DSM) + XLAT(ATA_CMD_DEV_RESET), + #define XLAT_VAL_3 ((unsigned) (ATA_CMD_DEV_RESET)) + #define XLAT_STR_3 STRINGIFY(ATA_CMD_DEV_RESET) + XLAT(ATA_CMD_REQ_SENSE_DATA), + #define XLAT_VAL_4 ((unsigned) (ATA_CMD_REQ_SENSE_DATA)) + #define XLAT_STR_4 STRINGIFY(ATA_CMD_REQ_SENSE_DATA) + XLAT(ATA_CMD_RESTORE), + #define XLAT_VAL_5 ((unsigned) (ATA_CMD_RESTORE)) + #define XLAT_STR_5 STRINGIFY(ATA_CMD_RESTORE) + XLAT(ATA_CMD_PIO_READ), + #define XLAT_VAL_6 ((unsigned) (ATA_CMD_PIO_READ)) + #define XLAT_STR_6 STRINGIFY(ATA_CMD_PIO_READ) + XLAT(ATA_CMD_READ_LONG), + #define XLAT_VAL_7 ((unsigned) (ATA_CMD_READ_LONG)) + #define XLAT_STR_7 STRINGIFY(ATA_CMD_READ_LONG) + XLAT(ATA_CMD_READ_LONG_ONCE), + #define XLAT_VAL_8 ((unsigned) (ATA_CMD_READ_LONG_ONCE)) + #define XLAT_STR_8 STRINGIFY(ATA_CMD_READ_LONG_ONCE) + XLAT(ATA_CMD_PIO_READ_EXT), + #define XLAT_VAL_9 ((unsigned) (ATA_CMD_PIO_READ_EXT)) + #define XLAT_STR_9 STRINGIFY(ATA_CMD_PIO_READ_EXT) + XLAT(ATA_CMD_READ_EXT), + #define XLAT_VAL_10 ((unsigned) (ATA_CMD_READ_EXT)) + #define XLAT_STR_10 STRINGIFY(ATA_CMD_READ_EXT) + XLAT(ATA_CMD_READ_QUEUED), + #define XLAT_VAL_11 ((unsigned) (ATA_CMD_READ_QUEUED)) + #define XLAT_STR_11 STRINGIFY(ATA_CMD_READ_QUEUED) + XLAT(ATA_CMD_READ_NATIVE_MAX_EXT), + #define XLAT_VAL_12 ((unsigned) (ATA_CMD_READ_NATIVE_MAX_EXT)) + #define XLAT_STR_12 STRINGIFY(ATA_CMD_READ_NATIVE_MAX_EXT) + XLAT(ATA_CMD_READ_MULTI_EXT), + #define XLAT_VAL_13 ((unsigned) (ATA_CMD_READ_MULTI_EXT)) + #define XLAT_STR_13 STRINGIFY(ATA_CMD_READ_MULTI_EXT) + XLAT(ATA_CMD_READ_STREAM_DMA_EXT), + #define XLAT_VAL_14 ((unsigned) (ATA_CMD_READ_STREAM_DMA_EXT)) + #define XLAT_STR_14 STRINGIFY(ATA_CMD_READ_STREAM_DMA_EXT) + XLAT(ATA_CMD_READ_STREAM_EXT), + #define XLAT_VAL_15 ((unsigned) (ATA_CMD_READ_STREAM_EXT)) + #define XLAT_STR_15 STRINGIFY(ATA_CMD_READ_STREAM_EXT) + XLAT(ATA_CMD_READ_LOG_EXT), + #define XLAT_VAL_16 ((unsigned) (ATA_CMD_READ_LOG_EXT)) + #define XLAT_STR_16 STRINGIFY(ATA_CMD_READ_LOG_EXT) + XLAT(ATA_CMD_PIO_WRITE), + #define XLAT_VAL_17 ((unsigned) (ATA_CMD_PIO_WRITE)) + #define XLAT_STR_17 STRINGIFY(ATA_CMD_PIO_WRITE) + XLAT(ATA_CMD_WRITE_LONG), + #define XLAT_VAL_18 ((unsigned) (ATA_CMD_WRITE_LONG)) + #define XLAT_STR_18 STRINGIFY(ATA_CMD_WRITE_LONG) + XLAT(ATA_CMD_WRITE_LONG_ONCE), + #define XLAT_VAL_19 ((unsigned) (ATA_CMD_WRITE_LONG_ONCE)) + #define XLAT_STR_19 STRINGIFY(ATA_CMD_WRITE_LONG_ONCE) + XLAT(ATA_CMD_PIO_WRITE_EXT), + #define XLAT_VAL_20 ((unsigned) (ATA_CMD_PIO_WRITE_EXT)) + #define XLAT_STR_20 STRINGIFY(ATA_CMD_PIO_WRITE_EXT) + XLAT(ATA_CMD_WRITE_EXT), + #define XLAT_VAL_21 ((unsigned) (ATA_CMD_WRITE_EXT)) + #define XLAT_STR_21 STRINGIFY(ATA_CMD_WRITE_EXT) + XLAT(ATA_CMD_WRITE_QUEUED), + #define XLAT_VAL_22 ((unsigned) (ATA_CMD_WRITE_QUEUED)) + #define XLAT_STR_22 STRINGIFY(ATA_CMD_WRITE_QUEUED) + XLAT(ATA_CMD_SET_MAX_EXT), + #define XLAT_VAL_23 ((unsigned) (ATA_CMD_SET_MAX_EXT)) + #define XLAT_STR_23 STRINGIFY(ATA_CMD_SET_MAX_EXT) + XLAT(ATA_CMD_CFA_WRITE_NE), + #define XLAT_VAL_24 ((unsigned) (ATA_CMD_CFA_WRITE_NE)) + #define XLAT_STR_24 STRINGIFY(ATA_CMD_CFA_WRITE_NE) + XLAT(ATA_CMD_WRITE_MULTI_EXT), + #define XLAT_VAL_25 ((unsigned) (ATA_CMD_WRITE_MULTI_EXT)) + #define XLAT_STR_25 STRINGIFY(ATA_CMD_WRITE_MULTI_EXT) + XLAT(ATA_CMD_WRITE_STREAM_DMA_EXT), + #define XLAT_VAL_26 ((unsigned) (ATA_CMD_WRITE_STREAM_DMA_EXT)) + #define XLAT_STR_26 STRINGIFY(ATA_CMD_WRITE_STREAM_DMA_EXT) + XLAT(ATA_CMD_WRITE_STREAM_EXT), + #define XLAT_VAL_27 ((unsigned) (ATA_CMD_WRITE_STREAM_EXT)) + #define XLAT_STR_27 STRINGIFY(ATA_CMD_WRITE_STREAM_EXT) + XLAT(ATA_CMD_WRITE_FUA_EXT), + #define XLAT_VAL_28 ((unsigned) (ATA_CMD_WRITE_FUA_EXT)) + #define XLAT_STR_28 STRINGIFY(ATA_CMD_WRITE_FUA_EXT) + XLAT(ATA_CMD_WRITE_QUEUED_FUA_EXT), + #define XLAT_VAL_29 ((unsigned) (ATA_CMD_WRITE_QUEUED_FUA_EXT)) + #define XLAT_STR_29 STRINGIFY(ATA_CMD_WRITE_QUEUED_FUA_EXT) + XLAT(ATA_CMD_WRITE_LOG_EXT), + #define XLAT_VAL_30 ((unsigned) (ATA_CMD_WRITE_LOG_EXT)) + #define XLAT_STR_30 STRINGIFY(ATA_CMD_WRITE_LOG_EXT) + XLAT(ATA_CMD_VERIFY), + #define XLAT_VAL_31 ((unsigned) (ATA_CMD_VERIFY)) + #define XLAT_STR_31 STRINGIFY(ATA_CMD_VERIFY) + XLAT(ATA_CMD_VERIFY_EXT), + #define XLAT_VAL_32 ((unsigned) (ATA_CMD_VERIFY_EXT)) + #define XLAT_STR_32 STRINGIFY(ATA_CMD_VERIFY_EXT) + XLAT(ATA_CMD_WRITE_UNCORR_EXT), + #define XLAT_VAL_33 ((unsigned) (ATA_CMD_WRITE_UNCORR_EXT)) + #define XLAT_STR_33 STRINGIFY(ATA_CMD_WRITE_UNCORR_EXT) + XLAT(ATA_CMD_READ_LOG_DMA_EXT), + #define XLAT_VAL_34 ((unsigned) (ATA_CMD_READ_LOG_DMA_EXT)) + #define XLAT_STR_34 STRINGIFY(ATA_CMD_READ_LOG_DMA_EXT) + XLAT(ATA_CMD_ZAC_MGMT_IN), + #define XLAT_VAL_35 ((unsigned) (ATA_CMD_ZAC_MGMT_IN)) + #define XLAT_STR_35 STRINGIFY(ATA_CMD_ZAC_MGMT_IN) + XLAT(ATA_CMD_CONFIG_STREAM), + #define XLAT_VAL_36 ((unsigned) (ATA_CMD_CONFIG_STREAM)) + #define XLAT_STR_36 STRINGIFY(ATA_CMD_CONFIG_STREAM) + XLAT(ATA_CMD_WRITE_LOG_DMA_EXT), + #define XLAT_VAL_37 ((unsigned) (ATA_CMD_WRITE_LOG_DMA_EXT)) + #define XLAT_STR_37 STRINGIFY(ATA_CMD_WRITE_LOG_DMA_EXT) + XLAT(ATA_CMD_TRUSTED_NONDATA), + #define XLAT_VAL_38 ((unsigned) (ATA_CMD_TRUSTED_NONDATA)) + #define XLAT_STR_38 STRINGIFY(ATA_CMD_TRUSTED_NONDATA) + XLAT(ATA_CMD_TRUSTED_RCV), + #define XLAT_VAL_39 ((unsigned) (ATA_CMD_TRUSTED_RCV)) + #define XLAT_STR_39 STRINGIFY(ATA_CMD_TRUSTED_RCV) + XLAT(ATA_CMD_TRUSTED_RCV_DMA), + #define XLAT_VAL_40 ((unsigned) (ATA_CMD_TRUSTED_RCV_DMA)) + #define XLAT_STR_40 STRINGIFY(ATA_CMD_TRUSTED_RCV_DMA) + XLAT(ATA_CMD_TRUSTED_SND), + #define XLAT_VAL_41 ((unsigned) (ATA_CMD_TRUSTED_SND)) + #define XLAT_STR_41 STRINGIFY(ATA_CMD_TRUSTED_SND) + XLAT(ATA_CMD_TRUSTED_SND_DMA), + #define XLAT_VAL_42 ((unsigned) (ATA_CMD_TRUSTED_SND_DMA)) + #define XLAT_STR_42 STRINGIFY(ATA_CMD_TRUSTED_SND_DMA) + XLAT(ATA_CMD_FPDMA_READ), + #define XLAT_VAL_43 ((unsigned) (ATA_CMD_FPDMA_READ)) + #define XLAT_STR_43 STRINGIFY(ATA_CMD_FPDMA_READ) + XLAT(ATA_CMD_FPDMA_WRITE), + #define XLAT_VAL_44 ((unsigned) (ATA_CMD_FPDMA_WRITE)) + #define XLAT_STR_44 STRINGIFY(ATA_CMD_FPDMA_WRITE) + XLAT(ATA_CMD_NCQ_NON_DATA), + #define XLAT_VAL_45 ((unsigned) (ATA_CMD_NCQ_NON_DATA)) + #define XLAT_STR_45 STRINGIFY(ATA_CMD_NCQ_NON_DATA) + XLAT(ATA_CMD_FPDMA_SEND), + #define XLAT_VAL_46 ((unsigned) (ATA_CMD_FPDMA_SEND)) + #define XLAT_STR_46 STRINGIFY(ATA_CMD_FPDMA_SEND) + XLAT(ATA_CMD_FPDMA_RECV), + #define XLAT_VAL_47 ((unsigned) (ATA_CMD_FPDMA_RECV)) + #define XLAT_STR_47 STRINGIFY(ATA_CMD_FPDMA_RECV) + XLAT(ATA_CMD_CFA_TRANS_SECT), + #define XLAT_VAL_48 ((unsigned) (ATA_CMD_CFA_TRANS_SECT)) + #define XLAT_STR_48 STRINGIFY(ATA_CMD_CFA_TRANS_SECT) + XLAT(ATA_CMD_EDD), + #define XLAT_VAL_49 ((unsigned) (ATA_CMD_EDD)) + #define XLAT_STR_49 STRINGIFY(ATA_CMD_EDD) + XLAT(ATA_CMD_INIT_DEV_PARAMS), + #define XLAT_VAL_50 ((unsigned) (ATA_CMD_INIT_DEV_PARAMS)) + #define XLAT_STR_50 STRINGIFY(ATA_CMD_INIT_DEV_PARAMS) + XLAT(ATA_CMD_DOWNLOAD_MICRO), + #define XLAT_VAL_51 ((unsigned) (ATA_CMD_DOWNLOAD_MICRO)) + #define XLAT_STR_51 STRINGIFY(ATA_CMD_DOWNLOAD_MICRO) + XLAT(ATA_CMD_DOWNLOAD_MICRO_DMA), + #define XLAT_VAL_52 ((unsigned) (ATA_CMD_DOWNLOAD_MICRO_DMA)) + #define XLAT_STR_52 STRINGIFY(ATA_CMD_DOWNLOAD_MICRO_DMA) + XLAT(ATA_CMD_ZAC_MGMT_OUT), + #define XLAT_VAL_53 ((unsigned) (ATA_CMD_ZAC_MGMT_OUT)) + #define XLAT_STR_53 STRINGIFY(ATA_CMD_ZAC_MGMT_OUT) + XLAT(ATA_CMD_PACKET), + #define XLAT_VAL_54 ((unsigned) (ATA_CMD_PACKET)) + #define XLAT_STR_54 STRINGIFY(ATA_CMD_PACKET) + XLAT(ATA_CMD_ID_ATAPI), + #define XLAT_VAL_55 ((unsigned) (ATA_CMD_ID_ATAPI)) + #define XLAT_STR_55 STRINGIFY(ATA_CMD_ID_ATAPI) + XLAT(ATA_CMD_SERVICE), + #define XLAT_VAL_56 ((unsigned) (ATA_CMD_SERVICE)) + #define XLAT_STR_56 STRINGIFY(ATA_CMD_SERVICE) + XLAT(ATA_CMD_SMART), + #define XLAT_VAL_57 ((unsigned) (ATA_CMD_SMART)) + #define XLAT_STR_57 STRINGIFY(ATA_CMD_SMART) + XLAT(ATA_CMD_CONF_OVERLAY), + #define XLAT_VAL_58 ((unsigned) (ATA_CMD_CONF_OVERLAY)) + #define XLAT_STR_58 STRINGIFY(ATA_CMD_CONF_OVERLAY) + XLAT(ATA_CMD_SANITIZE_DEVICE), + #define XLAT_VAL_59 ((unsigned) (ATA_CMD_SANITIZE_DEVICE)) + #define XLAT_STR_59 STRINGIFY(ATA_CMD_SANITIZE_DEVICE) + XLAT(ATA_CMD_CFA_ERASE), + #define XLAT_VAL_60 ((unsigned) (ATA_CMD_CFA_ERASE)) + #define XLAT_STR_60 STRINGIFY(ATA_CMD_CFA_ERASE) + XLAT(ATA_CMD_READ_MULTI), + #define XLAT_VAL_61 ((unsigned) (ATA_CMD_READ_MULTI)) + #define XLAT_STR_61 STRINGIFY(ATA_CMD_READ_MULTI) + XLAT(ATA_CMD_WRITE_MULTI), + #define XLAT_VAL_62 ((unsigned) (ATA_CMD_WRITE_MULTI)) + #define XLAT_STR_62 STRINGIFY(ATA_CMD_WRITE_MULTI) + XLAT(ATA_CMD_SET_MULTI), + #define XLAT_VAL_63 ((unsigned) (ATA_CMD_SET_MULTI)) + #define XLAT_STR_63 STRINGIFY(ATA_CMD_SET_MULTI) + XLAT(ATA_CMD_READ), + #define XLAT_VAL_64 ((unsigned) (ATA_CMD_READ)) + #define XLAT_STR_64 STRINGIFY(ATA_CMD_READ) + XLAT(ATA_CMD_WRITE), + #define XLAT_VAL_65 ((unsigned) (ATA_CMD_WRITE)) + #define XLAT_STR_65 STRINGIFY(ATA_CMD_WRITE) + XLAT(ATA_CMD_CFA_WRITE_MULT_NE), + #define XLAT_VAL_66 ((unsigned) (ATA_CMD_CFA_WRITE_MULT_NE)) + #define XLAT_STR_66 STRINGIFY(ATA_CMD_CFA_WRITE_MULT_NE) + XLAT(ATA_CMD_WRITE_MULTI_FUA_EXT), + #define XLAT_VAL_67 ((unsigned) (ATA_CMD_WRITE_MULTI_FUA_EXT)) + #define XLAT_STR_67 STRINGIFY(ATA_CMD_WRITE_MULTI_FUA_EXT) + XLAT(ATA_CMD_CHK_MED_CRD_TYP), + #define XLAT_VAL_68 ((unsigned) (ATA_CMD_CHK_MED_CRD_TYP)) + #define XLAT_STR_68 STRINGIFY(ATA_CMD_CHK_MED_CRD_TYP) + XLAT(ATA_CMD_MEDIA_LOCK), + #define XLAT_VAL_69 ((unsigned) (ATA_CMD_MEDIA_LOCK)) + #define XLAT_STR_69 STRINGIFY(ATA_CMD_MEDIA_LOCK) + XLAT(ATA_CMD_MEDIA_UNLOCK), + #define XLAT_VAL_70 ((unsigned) (ATA_CMD_MEDIA_UNLOCK)) + #define XLAT_STR_70 STRINGIFY(ATA_CMD_MEDIA_UNLOCK) + XLAT(ATA_CMD_STANDBYNOW1), + #define XLAT_VAL_71 ((unsigned) (ATA_CMD_STANDBYNOW1)) + #define XLAT_STR_71 STRINGIFY(ATA_CMD_STANDBYNOW1) + XLAT(ATA_CMD_IDLEIMMEDIATE), + #define XLAT_VAL_72 ((unsigned) (ATA_CMD_IDLEIMMEDIATE)) + #define XLAT_STR_72 STRINGIFY(ATA_CMD_IDLEIMMEDIATE) + XLAT(ATA_CMD_STANDBY), + #define XLAT_VAL_73 ((unsigned) (ATA_CMD_STANDBY)) + #define XLAT_STR_73 STRINGIFY(ATA_CMD_STANDBY) + XLAT(ATA_CMD_IDLE), + #define XLAT_VAL_74 ((unsigned) (ATA_CMD_IDLE)) + #define XLAT_STR_74 STRINGIFY(ATA_CMD_IDLE) + XLAT(ATA_CMD_PMP_READ), + #define XLAT_VAL_75 ((unsigned) (ATA_CMD_PMP_READ)) + #define XLAT_STR_75 STRINGIFY(ATA_CMD_PMP_READ) + XLAT(ATA_CMD_CHK_POWER), + #define XLAT_VAL_76 ((unsigned) (ATA_CMD_CHK_POWER)) + #define XLAT_STR_76 STRINGIFY(ATA_CMD_CHK_POWER) + XLAT(ATA_CMD_SLEEP), + #define XLAT_VAL_77 ((unsigned) (ATA_CMD_SLEEP)) + #define XLAT_STR_77 STRINGIFY(ATA_CMD_SLEEP) + XLAT(ATA_CMD_FLUSH), + #define XLAT_VAL_78 ((unsigned) (ATA_CMD_FLUSH)) + #define XLAT_STR_78 STRINGIFY(ATA_CMD_FLUSH) + XLAT(ATA_CMD_PMP_WRITE), + #define XLAT_VAL_79 ((unsigned) (ATA_CMD_PMP_WRITE)) + #define XLAT_STR_79 STRINGIFY(ATA_CMD_PMP_WRITE) + XLAT(ATA_CMD_PMP_READ_DMA), + #define XLAT_VAL_80 ((unsigned) (ATA_CMD_PMP_READ_DMA)) + #define XLAT_STR_80 STRINGIFY(ATA_CMD_PMP_READ_DMA) + XLAT(ATA_CMD_FLUSH_EXT), + #define XLAT_VAL_81 ((unsigned) (ATA_CMD_FLUSH_EXT)) + #define XLAT_STR_81 STRINGIFY(ATA_CMD_FLUSH_EXT) + XLAT(ATA_CMD_PMP_WRITE_DMA), + #define XLAT_VAL_82 ((unsigned) (ATA_CMD_PMP_WRITE_DMA)) + #define XLAT_STR_82 STRINGIFY(ATA_CMD_PMP_WRITE_DMA) + XLAT(ATA_CMD_ID_ATA), + #define XLAT_VAL_83 ((unsigned) (ATA_CMD_ID_ATA)) + #define XLAT_STR_83 STRINGIFY(ATA_CMD_ID_ATA) + XLAT(ATA_CMD_SET_FEATURES), + #define XLAT_VAL_84 ((unsigned) (ATA_CMD_SET_FEATURES)) + #define XLAT_STR_84 STRINGIFY(ATA_CMD_SET_FEATURES) + XLAT(ATA_CMD_SEC_SET_PASS), + #define XLAT_VAL_85 ((unsigned) (ATA_CMD_SEC_SET_PASS)) + #define XLAT_STR_85 STRINGIFY(ATA_CMD_SEC_SET_PASS) + XLAT(ATA_CMD_SEC_UNLOCK), + #define XLAT_VAL_86 ((unsigned) (ATA_CMD_SEC_UNLOCK)) + #define XLAT_STR_86 STRINGIFY(ATA_CMD_SEC_UNLOCK) + XLAT(ATA_CMD_SEC_ERASE_PREP), + #define XLAT_VAL_87 ((unsigned) (ATA_CMD_SEC_ERASE_PREP)) + #define XLAT_STR_87 STRINGIFY(ATA_CMD_SEC_ERASE_PREP) + XLAT(ATA_CMD_SEC_ERASE_UNIT), + #define XLAT_VAL_88 ((unsigned) (ATA_CMD_SEC_ERASE_UNIT)) + #define XLAT_STR_88 STRINGIFY(ATA_CMD_SEC_ERASE_UNIT) + XLAT(ATA_CMD_SEC_FREEZE_LOCK), + #define XLAT_VAL_89 ((unsigned) (ATA_CMD_SEC_FREEZE_LOCK)) + #define XLAT_STR_89 STRINGIFY(ATA_CMD_SEC_FREEZE_LOCK) + XLAT(ATA_CMD_SEC_DISABLE_PASS), + #define XLAT_VAL_90 ((unsigned) (ATA_CMD_SEC_DISABLE_PASS)) + #define XLAT_STR_90 STRINGIFY(ATA_CMD_SEC_DISABLE_PASS) + XLAT(ATA_CMD_READ_NATIVE_MAX), + #define XLAT_VAL_91 ((unsigned) (ATA_CMD_READ_NATIVE_MAX)) + #define XLAT_STR_91 STRINGIFY(ATA_CMD_READ_NATIVE_MAX) + XLAT(ATA_CMD_SET_MAX), + #define XLAT_VAL_92 ((unsigned) (ATA_CMD_SET_MAX)) + #define XLAT_STR_92 STRINGIFY(ATA_CMD_SET_MAX) +}; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat hdio_drive_cmds[1] = { { + .data = hdio_drive_cmds_xdata, + .size = ARRAY_SIZE(hdio_drive_cmds_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif +# ifdef XLAT_VAL_41 + | XLAT_VAL_41 +# endif +# ifdef XLAT_VAL_42 + | XLAT_VAL_42 +# endif +# ifdef XLAT_VAL_43 + | XLAT_VAL_43 +# endif +# ifdef XLAT_VAL_44 + | XLAT_VAL_44 +# endif +# ifdef XLAT_VAL_45 + | XLAT_VAL_45 +# endif +# ifdef XLAT_VAL_46 + | XLAT_VAL_46 +# endif +# ifdef XLAT_VAL_47 + | XLAT_VAL_47 +# endif +# ifdef XLAT_VAL_48 + | XLAT_VAL_48 +# endif +# ifdef XLAT_VAL_49 + | XLAT_VAL_49 +# endif +# ifdef XLAT_VAL_50 + | XLAT_VAL_50 +# endif +# ifdef XLAT_VAL_51 + | XLAT_VAL_51 +# endif +# ifdef XLAT_VAL_52 + | XLAT_VAL_52 +# endif +# ifdef XLAT_VAL_53 + | XLAT_VAL_53 +# endif +# ifdef XLAT_VAL_54 + | XLAT_VAL_54 +# endif +# ifdef XLAT_VAL_55 + | XLAT_VAL_55 +# endif +# ifdef XLAT_VAL_56 + | XLAT_VAL_56 +# endif +# ifdef XLAT_VAL_57 + | XLAT_VAL_57 +# endif +# ifdef XLAT_VAL_58 + | XLAT_VAL_58 +# endif +# ifdef XLAT_VAL_59 + | XLAT_VAL_59 +# endif +# ifdef XLAT_VAL_60 + | XLAT_VAL_60 +# endif +# ifdef XLAT_VAL_61 + | XLAT_VAL_61 +# endif +# ifdef XLAT_VAL_62 + | XLAT_VAL_62 +# endif +# ifdef XLAT_VAL_63 + | XLAT_VAL_63 +# endif +# ifdef XLAT_VAL_64 + | XLAT_VAL_64 +# endif +# ifdef XLAT_VAL_65 + | XLAT_VAL_65 +# endif +# ifdef XLAT_VAL_66 + | XLAT_VAL_66 +# endif +# ifdef XLAT_VAL_67 + | XLAT_VAL_67 +# endif +# ifdef XLAT_VAL_68 + | XLAT_VAL_68 +# endif +# ifdef XLAT_VAL_69 + | XLAT_VAL_69 +# endif +# ifdef XLAT_VAL_70 + | XLAT_VAL_70 +# endif +# ifdef XLAT_VAL_71 + | XLAT_VAL_71 +# endif +# ifdef XLAT_VAL_72 + | XLAT_VAL_72 +# endif +# ifdef XLAT_VAL_73 + | XLAT_VAL_73 +# endif +# ifdef XLAT_VAL_74 + | XLAT_VAL_74 +# endif +# ifdef XLAT_VAL_75 + | XLAT_VAL_75 +# endif +# ifdef XLAT_VAL_76 + | XLAT_VAL_76 +# endif +# ifdef XLAT_VAL_77 + | XLAT_VAL_77 +# endif +# ifdef XLAT_VAL_78 + | XLAT_VAL_78 +# endif +# ifdef XLAT_VAL_79 + | XLAT_VAL_79 +# endif +# ifdef XLAT_VAL_80 + | XLAT_VAL_80 +# endif +# ifdef XLAT_VAL_81 + | XLAT_VAL_81 +# endif +# ifdef XLAT_VAL_82 + | XLAT_VAL_82 +# endif +# ifdef XLAT_VAL_83 + | XLAT_VAL_83 +# endif +# ifdef XLAT_VAL_84 + | XLAT_VAL_84 +# endif +# ifdef XLAT_VAL_85 + | XLAT_VAL_85 +# endif +# ifdef XLAT_VAL_86 + | XLAT_VAL_86 +# endif +# ifdef XLAT_VAL_87 + | XLAT_VAL_87 +# endif +# ifdef XLAT_VAL_88 + | XLAT_VAL_88 +# endif +# ifdef XLAT_VAL_89 + | XLAT_VAL_89 +# endif +# ifdef XLAT_VAL_90 + | XLAT_VAL_90 +# endif +# ifdef XLAT_VAL_91 + | XLAT_VAL_91 +# endif +# ifdef XLAT_VAL_92 + | XLAT_VAL_92 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif +# ifdef XLAT_STR_41 + + sizeof(XLAT_STR_41) +# endif +# ifdef XLAT_STR_42 + + sizeof(XLAT_STR_42) +# endif +# ifdef XLAT_STR_43 + + sizeof(XLAT_STR_43) +# endif +# ifdef XLAT_STR_44 + + sizeof(XLAT_STR_44) +# endif +# ifdef XLAT_STR_45 + + sizeof(XLAT_STR_45) +# endif +# ifdef XLAT_STR_46 + + sizeof(XLAT_STR_46) +# endif +# ifdef XLAT_STR_47 + + sizeof(XLAT_STR_47) +# endif +# ifdef XLAT_STR_48 + + sizeof(XLAT_STR_48) +# endif +# ifdef XLAT_STR_49 + + sizeof(XLAT_STR_49) +# endif +# ifdef XLAT_STR_50 + + sizeof(XLAT_STR_50) +# endif +# ifdef XLAT_STR_51 + + sizeof(XLAT_STR_51) +# endif +# ifdef XLAT_STR_52 + + sizeof(XLAT_STR_52) +# endif +# ifdef XLAT_STR_53 + + sizeof(XLAT_STR_53) +# endif +# ifdef XLAT_STR_54 + + sizeof(XLAT_STR_54) +# endif +# ifdef XLAT_STR_55 + + sizeof(XLAT_STR_55) +# endif +# ifdef XLAT_STR_56 + + sizeof(XLAT_STR_56) +# endif +# ifdef XLAT_STR_57 + + sizeof(XLAT_STR_57) +# endif +# ifdef XLAT_STR_58 + + sizeof(XLAT_STR_58) +# endif +# ifdef XLAT_STR_59 + + sizeof(XLAT_STR_59) +# endif +# ifdef XLAT_STR_60 + + sizeof(XLAT_STR_60) +# endif +# ifdef XLAT_STR_61 + + sizeof(XLAT_STR_61) +# endif +# ifdef XLAT_STR_62 + + sizeof(XLAT_STR_62) +# endif +# ifdef XLAT_STR_63 + + sizeof(XLAT_STR_63) +# endif +# ifdef XLAT_STR_64 + + sizeof(XLAT_STR_64) +# endif +# ifdef XLAT_STR_65 + + sizeof(XLAT_STR_65) +# endif +# ifdef XLAT_STR_66 + + sizeof(XLAT_STR_66) +# endif +# ifdef XLAT_STR_67 + + sizeof(XLAT_STR_67) +# endif +# ifdef XLAT_STR_68 + + sizeof(XLAT_STR_68) +# endif +# ifdef XLAT_STR_69 + + sizeof(XLAT_STR_69) +# endif +# ifdef XLAT_STR_70 + + sizeof(XLAT_STR_70) +# endif +# ifdef XLAT_STR_71 + + sizeof(XLAT_STR_71) +# endif +# ifdef XLAT_STR_72 + + sizeof(XLAT_STR_72) +# endif +# ifdef XLAT_STR_73 + + sizeof(XLAT_STR_73) +# endif +# ifdef XLAT_STR_74 + + sizeof(XLAT_STR_74) +# endif +# ifdef XLAT_STR_75 + + sizeof(XLAT_STR_75) +# endif +# ifdef XLAT_STR_76 + + sizeof(XLAT_STR_76) +# endif +# ifdef XLAT_STR_77 + + sizeof(XLAT_STR_77) +# endif +# ifdef XLAT_STR_78 + + sizeof(XLAT_STR_78) +# endif +# ifdef XLAT_STR_79 + + sizeof(XLAT_STR_79) +# endif +# ifdef XLAT_STR_80 + + sizeof(XLAT_STR_80) +# endif +# ifdef XLAT_STR_81 + + sizeof(XLAT_STR_81) +# endif +# ifdef XLAT_STR_82 + + sizeof(XLAT_STR_82) +# endif +# ifdef XLAT_STR_83 + + sizeof(XLAT_STR_83) +# endif +# ifdef XLAT_STR_84 + + sizeof(XLAT_STR_84) +# endif +# ifdef XLAT_STR_85 + + sizeof(XLAT_STR_85) +# endif +# ifdef XLAT_STR_86 + + sizeof(XLAT_STR_86) +# endif +# ifdef XLAT_STR_87 + + sizeof(XLAT_STR_87) +# endif +# ifdef XLAT_STR_88 + + sizeof(XLAT_STR_88) +# endif +# ifdef XLAT_STR_89 + + sizeof(XLAT_STR_89) +# endif +# ifdef XLAT_STR_90 + + sizeof(XLAT_STR_90) +# endif +# ifdef XLAT_STR_91 + + sizeof(XLAT_STR_91) +# endif +# ifdef XLAT_STR_92 + + sizeof(XLAT_STR_92) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 +# undef XLAT_STR_41 +# undef XLAT_VAL_41 +# undef XLAT_STR_42 +# undef XLAT_VAL_42 +# undef XLAT_STR_43 +# undef XLAT_VAL_43 +# undef XLAT_STR_44 +# undef XLAT_VAL_44 +# undef XLAT_STR_45 +# undef XLAT_VAL_45 +# undef XLAT_STR_46 +# undef XLAT_VAL_46 +# undef XLAT_STR_47 +# undef XLAT_VAL_47 +# undef XLAT_STR_48 +# undef XLAT_VAL_48 +# undef XLAT_STR_49 +# undef XLAT_VAL_49 +# undef XLAT_STR_50 +# undef XLAT_VAL_50 +# undef XLAT_STR_51 +# undef XLAT_VAL_51 +# undef XLAT_STR_52 +# undef XLAT_VAL_52 +# undef XLAT_STR_53 +# undef XLAT_VAL_53 +# undef XLAT_STR_54 +# undef XLAT_VAL_54 +# undef XLAT_STR_55 +# undef XLAT_VAL_55 +# undef XLAT_STR_56 +# undef XLAT_VAL_56 +# undef XLAT_STR_57 +# undef XLAT_VAL_57 +# undef XLAT_STR_58 +# undef XLAT_VAL_58 +# undef XLAT_STR_59 +# undef XLAT_VAL_59 +# undef XLAT_STR_60 +# undef XLAT_VAL_60 +# undef XLAT_STR_61 +# undef XLAT_VAL_61 +# undef XLAT_STR_62 +# undef XLAT_VAL_62 +# undef XLAT_STR_63 +# undef XLAT_VAL_63 +# undef XLAT_STR_64 +# undef XLAT_VAL_64 +# undef XLAT_STR_65 +# undef XLAT_VAL_65 +# undef XLAT_STR_66 +# undef XLAT_VAL_66 +# undef XLAT_STR_67 +# undef XLAT_VAL_67 +# undef XLAT_STR_68 +# undef XLAT_VAL_68 +# undef XLAT_STR_69 +# undef XLAT_VAL_69 +# undef XLAT_STR_70 +# undef XLAT_VAL_70 +# undef XLAT_STR_71 +# undef XLAT_VAL_71 +# undef XLAT_STR_72 +# undef XLAT_VAL_72 +# undef XLAT_STR_73 +# undef XLAT_VAL_73 +# undef XLAT_STR_74 +# undef XLAT_VAL_74 +# undef XLAT_STR_75 +# undef XLAT_VAL_75 +# undef XLAT_STR_76 +# undef XLAT_VAL_76 +# undef XLAT_STR_77 +# undef XLAT_VAL_77 +# undef XLAT_STR_78 +# undef XLAT_VAL_78 +# undef XLAT_STR_79 +# undef XLAT_VAL_79 +# undef XLAT_STR_80 +# undef XLAT_VAL_80 +# undef XLAT_STR_81 +# undef XLAT_VAL_81 +# undef XLAT_STR_82 +# undef XLAT_VAL_82 +# undef XLAT_STR_83 +# undef XLAT_VAL_83 +# undef XLAT_STR_84 +# undef XLAT_VAL_84 +# undef XLAT_STR_85 +# undef XLAT_VAL_85 +# undef XLAT_STR_86 +# undef XLAT_VAL_86 +# undef XLAT_STR_87 +# undef XLAT_VAL_87 +# undef XLAT_STR_88 +# undef XLAT_VAL_88 +# undef XLAT_STR_89 +# undef XLAT_VAL_89 +# undef XLAT_STR_90 +# undef XLAT_VAL_90 +# undef XLAT_STR_91 +# undef XLAT_VAL_91 +# undef XLAT_STR_92 +# undef XLAT_VAL_92 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/hdio_drive_cmds.in b/xlat/hdio_drive_cmds.in new file mode 100644 index 00000000..1158abb5 --- /dev/null +++ b/xlat/hdio_drive_cmds.in @@ -0,0 +1,94 @@ +#sorted sort -k2,2 +ATA_CMD_NOP 0x00 +ATA_CMD_CFA_REQ_EXT_ERR 0x03 +ATA_CMD_DSM 0x06 +ATA_CMD_DEV_RESET 0x08 +ATA_CMD_REQ_SENSE_DATA 0x0B +ATA_CMD_RESTORE 0x10 +ATA_CMD_PIO_READ 0x20 +ATA_CMD_READ_LONG 0x22 +ATA_CMD_READ_LONG_ONCE 0x23 +ATA_CMD_PIO_READ_EXT 0x24 +ATA_CMD_READ_EXT 0x25 +ATA_CMD_READ_QUEUED 0x26 +ATA_CMD_READ_NATIVE_MAX_EXT 0x27 +ATA_CMD_READ_MULTI_EXT 0x29 +ATA_CMD_READ_STREAM_DMA_EXT 0x2A +ATA_CMD_READ_STREAM_EXT 0x2B +ATA_CMD_READ_LOG_EXT 0x2F +ATA_CMD_PIO_WRITE 0x30 +ATA_CMD_WRITE_LONG 0x32 +ATA_CMD_WRITE_LONG_ONCE 0x33 +ATA_CMD_PIO_WRITE_EXT 0x34 +ATA_CMD_WRITE_EXT 0x35 +ATA_CMD_WRITE_QUEUED 0x36 +ATA_CMD_SET_MAX_EXT 0x37 +ATA_CMD_CFA_WRITE_NE 0x38 +ATA_CMD_WRITE_MULTI_EXT 0x39 +ATA_CMD_WRITE_STREAM_DMA_EXT 0x3A +ATA_CMD_WRITE_STREAM_EXT 0x3B +ATA_CMD_WRITE_FUA_EXT 0x3D +ATA_CMD_WRITE_QUEUED_FUA_EXT 0x3E +ATA_CMD_WRITE_LOG_EXT 0x3F +ATA_CMD_VERIFY 0x40 +ATA_CMD_VERIFY_EXT 0x42 +ATA_CMD_WRITE_UNCORR_EXT 0x45 +ATA_CMD_READ_LOG_DMA_EXT 0x47 +ATA_CMD_ZAC_MGMT_IN 0x4A +ATA_CMD_CONFIG_STREAM 0x51 +ATA_CMD_WRITE_LOG_DMA_EXT 0x57 +ATA_CMD_TRUSTED_NONDATA 0x5B +ATA_CMD_TRUSTED_RCV 0x5C +ATA_CMD_TRUSTED_RCV_DMA 0x5D +ATA_CMD_TRUSTED_SND 0x5E +ATA_CMD_TRUSTED_SND_DMA 0x5F +ATA_CMD_FPDMA_READ 0x60 +ATA_CMD_FPDMA_WRITE 0x61 +ATA_CMD_NCQ_NON_DATA 0x63 +ATA_CMD_FPDMA_SEND 0x64 +ATA_CMD_FPDMA_RECV 0x65 +ATA_CMD_CFA_TRANS_SECT 0x87 +ATA_CMD_EDD 0x90 +ATA_CMD_INIT_DEV_PARAMS 0x91 +ATA_CMD_DOWNLOAD_MICRO 0x92 +ATA_CMD_DOWNLOAD_MICRO_DMA 0x93 +ATA_CMD_ZAC_MGMT_OUT 0x9F +ATA_CMD_PACKET 0xA0 +ATA_CMD_ID_ATAPI 0xA1 +ATA_CMD_SERVICE 0xA2 +ATA_CMD_SMART 0xB0 +ATA_CMD_CONF_OVERLAY 0xB1 +ATA_CMD_SANITIZE_DEVICE 0xB4 +ATA_CMD_CFA_ERASE 0xC0 +ATA_CMD_READ_MULTI 0xC4 +ATA_CMD_WRITE_MULTI 0xC5 +ATA_CMD_SET_MULTI 0xC6 +ATA_CMD_READ 0xC8 +ATA_CMD_WRITE 0xCA +ATA_CMD_CFA_WRITE_MULT_NE 0xCD +ATA_CMD_WRITE_MULTI_FUA_EXT 0xCE +ATA_CMD_CHK_MED_CRD_TYP 0xD1 +ATA_CMD_MEDIA_LOCK 0xDE +ATA_CMD_MEDIA_UNLOCK 0xDF +ATA_CMD_STANDBYNOW1 0xE0 +ATA_CMD_IDLEIMMEDIATE 0xE1 +ATA_CMD_STANDBY 0xE2 +ATA_CMD_IDLE 0xE3 +ATA_CMD_PMP_READ 0xE4 +ATA_CMD_CHK_POWER 0xE5 +ATA_CMD_SLEEP 0xE6 +ATA_CMD_FLUSH 0xE7 +ATA_CMD_PMP_WRITE 0xE8 +ATA_CMD_PMP_READ_DMA 0xE9 +ATA_CMD_FLUSH_EXT 0xEA +ATA_CMD_PMP_WRITE_DMA 0xEB +ATA_CMD_ID_ATA 0xEC +ATA_CMD_SET_FEATURES 0xEF +ATA_CMD_SEC_SET_PASS 0xF1 +ATA_CMD_SEC_UNLOCK 0xF2 +ATA_CMD_SEC_ERASE_PREP 0xF3 +ATA_CMD_SEC_ERASE_UNIT 0xF4 +ATA_CMD_SEC_FREEZE_LOCK 0xF5 +ATA_CMD_SEC_DISABLE_PASS 0xF6 +ATA_CMD_READ_NATIVE_MAX 0xF8 +ATA_CMD_SET_MAX 0xF9 diff --git a/xlat/hw_breakpoint_len.h b/xlat/hw_breakpoint_len.h index cb6c4573..775b8f1c 100644 --- a/xlat/hw_breakpoint_len.h +++ b/xlat/hw_breakpoint_len.h @@ -40,15 +40,63 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat hw_breakpoint_len[] = { +static const struct xlat_data hw_breakpoint_len_xdata[] = { XLAT(HW_BREAKPOINT_LEN_1), + #define XLAT_VAL_0 ((unsigned) (HW_BREAKPOINT_LEN_1)) + #define XLAT_STR_0 STRINGIFY(HW_BREAKPOINT_LEN_1) XLAT(HW_BREAKPOINT_LEN_2), + #define XLAT_VAL_1 ((unsigned) (HW_BREAKPOINT_LEN_2)) + #define XLAT_STR_1 STRINGIFY(HW_BREAKPOINT_LEN_2) XLAT(HW_BREAKPOINT_LEN_4), + #define XLAT_VAL_2 ((unsigned) (HW_BREAKPOINT_LEN_4)) + #define XLAT_STR_2 STRINGIFY(HW_BREAKPOINT_LEN_4) XLAT(HW_BREAKPOINT_LEN_8), - XLAT_END + #define XLAT_VAL_3 ((unsigned) (HW_BREAKPOINT_LEN_8)) + #define XLAT_STR_3 STRINGIFY(HW_BREAKPOINT_LEN_8) }; +static +const struct xlat hw_breakpoint_len[1] = { { + .data = hw_breakpoint_len_xdata, + .size = ARRAY_SIZE(hw_breakpoint_len_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/hw_breakpoint_type.h b/xlat/hw_breakpoint_type.h index 30b3af8c..e3d07f86 100644 --- a/xlat/hw_breakpoint_type.h +++ b/xlat/hw_breakpoint_type.h @@ -47,17 +47,74 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat hw_breakpoint_type[] = { - +static const struct xlat_data hw_breakpoint_type_xdata[] = { XLAT(HW_BREAKPOINT_EMPTY), + #define XLAT_VAL_0 ((unsigned) (HW_BREAKPOINT_EMPTY)) + #define XLAT_STR_0 STRINGIFY(HW_BREAKPOINT_EMPTY) XLAT(HW_BREAKPOINT_R), + #define XLAT_VAL_1 ((unsigned) (HW_BREAKPOINT_R)) + #define XLAT_STR_1 STRINGIFY(HW_BREAKPOINT_R) XLAT(HW_BREAKPOINT_W), + #define XLAT_VAL_2 ((unsigned) (HW_BREAKPOINT_W)) + #define XLAT_STR_2 STRINGIFY(HW_BREAKPOINT_W) XLAT(HW_BREAKPOINT_RW), + #define XLAT_VAL_3 ((unsigned) (HW_BREAKPOINT_RW)) + #define XLAT_STR_3 STRINGIFY(HW_BREAKPOINT_RW) XLAT(HW_BREAKPOINT_X), - XLAT_END + #define XLAT_VAL_4 ((unsigned) (HW_BREAKPOINT_X)) + #define XLAT_STR_4 STRINGIFY(HW_BREAKPOINT_X) }; +static +const struct xlat hw_breakpoint_type[1] = { { + .data = hw_breakpoint_type_xdata, + .size = ARRAY_SIZE(hw_breakpoint_type_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/hw_breakpoint_type.in b/xlat/hw_breakpoint_type.in index 0fc625b7..4ffcaae1 100644 --- a/xlat/hw_breakpoint_type.in +++ b/xlat/hw_breakpoint_type.in @@ -1,4 +1,4 @@ -/* sort -k2,2n */ +#sorted sort -k2,2n HW_BREAKPOINT_EMPTY 0 HW_BREAKPOINT_R 1 HW_BREAKPOINT_W 2 diff --git a/xlat/icmpfilterflags.h b/xlat/icmpfilterflags.h index a3f1300d..b68ca54f 100644 --- a/xlat/icmpfilterflags.h +++ b/xlat/icmpfilterflags.h @@ -12,50 +12,188 @@ # else -static -const struct xlat icmpfilterflags[] = { +static const struct xlat_data icmpfilterflags_xdata[] = { #if defined(ICMP_ECHOREPLY) || (defined(HAVE_DECL_ICMP_ECHOREPLY) && HAVE_DECL_ICMP_ECHOREPLY) XLAT_PAIR(1ULL< LO_FLAGS_READ_ONLY 1 /* Added in v2.6.11-732-gf3f28e4, Removed in v3.2-rc1~49^2~5^2~3 */ LO_FLAGS_USE_AOPS 2 diff --git a/xlat/loop_flags_options.m4 b/xlat/loop_flags_options.m4 new file mode 100644 index 00000000..5802d063 --- /dev/null +++ b/xlat/loop_flags_options.m4 @@ -0,0 +1,11 @@ +dnl Generated by ./xlat/gen.sh from ./xlat/loop_flags_options.in; do not edit. +AC_DEFUN([st_CHECK_ENUMS_loop_flags_options],[ +AC_CHECK_DECLS(m4_normalize([ +LO_FLAGS_READ_ONLY, +LO_FLAGS_USE_AOPS, +LO_FLAGS_AUTOCLEAR, +LO_FLAGS_PARTSCAN, +LO_FLAGS_DIRECT_IO +]),,, [ +#include +])])]) diff --git a/xlat/lwtunnel_encap_types.h b/xlat/lwtunnel_encap_types.h index f5f4c5f1..9f5b8d76 100644 --- a/xlat/lwtunnel_encap_types.h +++ b/xlat/lwtunnel_encap_types.h @@ -52,6 +52,20 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define LWTUNNEL_ENCAP_BPF 6 #endif +#if defined(LWTUNNEL_ENCAP_SEG6_LOCAL) || (defined(HAVE_DECL_LWTUNNEL_ENCAP_SEG6_LOCAL) && HAVE_DECL_LWTUNNEL_ENCAP_SEG6_LOCAL) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((LWTUNNEL_ENCAP_SEG6_LOCAL) == (7), "LWTUNNEL_ENCAP_SEG6_LOCAL != 7"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define LWTUNNEL_ENCAP_SEG6_LOCAL 7 +#endif +#if defined(LWTUNNEL_ENCAP_RPL) || (defined(HAVE_DECL_LWTUNNEL_ENCAP_RPL) && HAVE_DECL_LWTUNNEL_ENCAP_RPL) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((LWTUNNEL_ENCAP_RPL) == (8), "LWTUNNEL_ENCAP_RPL != 8"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define LWTUNNEL_ENCAP_RPL 8 +#endif #ifndef XLAT_MACROS_ONLY @@ -61,18 +75,118 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat lwtunnel_encap_types[] = { - XLAT(LWTUNNEL_ENCAP_NONE), - XLAT(LWTUNNEL_ENCAP_MPLS), - XLAT(LWTUNNEL_ENCAP_IP), - XLAT(LWTUNNEL_ENCAP_ILA), - XLAT(LWTUNNEL_ENCAP_IP6), - XLAT(LWTUNNEL_ENCAP_SEG6), - XLAT(LWTUNNEL_ENCAP_BPF), - XLAT_END +static const struct xlat_data lwtunnel_encap_types_xdata[] = { + [LWTUNNEL_ENCAP_NONE] = XLAT(LWTUNNEL_ENCAP_NONE), + #define XLAT_VAL_0 ((unsigned) (LWTUNNEL_ENCAP_NONE)) + #define XLAT_STR_0 STRINGIFY(LWTUNNEL_ENCAP_NONE) + [LWTUNNEL_ENCAP_MPLS] = XLAT(LWTUNNEL_ENCAP_MPLS), + #define XLAT_VAL_1 ((unsigned) (LWTUNNEL_ENCAP_MPLS)) + #define XLAT_STR_1 STRINGIFY(LWTUNNEL_ENCAP_MPLS) + [LWTUNNEL_ENCAP_IP] = XLAT(LWTUNNEL_ENCAP_IP), + #define XLAT_VAL_2 ((unsigned) (LWTUNNEL_ENCAP_IP)) + #define XLAT_STR_2 STRINGIFY(LWTUNNEL_ENCAP_IP) + [LWTUNNEL_ENCAP_ILA] = XLAT(LWTUNNEL_ENCAP_ILA), + #define XLAT_VAL_3 ((unsigned) (LWTUNNEL_ENCAP_ILA)) + #define XLAT_STR_3 STRINGIFY(LWTUNNEL_ENCAP_ILA) + [LWTUNNEL_ENCAP_IP6] = XLAT(LWTUNNEL_ENCAP_IP6), + #define XLAT_VAL_4 ((unsigned) (LWTUNNEL_ENCAP_IP6)) + #define XLAT_STR_4 STRINGIFY(LWTUNNEL_ENCAP_IP6) + [LWTUNNEL_ENCAP_SEG6] = XLAT(LWTUNNEL_ENCAP_SEG6), + #define XLAT_VAL_5 ((unsigned) (LWTUNNEL_ENCAP_SEG6)) + #define XLAT_STR_5 STRINGIFY(LWTUNNEL_ENCAP_SEG6) + [LWTUNNEL_ENCAP_BPF] = XLAT(LWTUNNEL_ENCAP_BPF), + #define XLAT_VAL_6 ((unsigned) (LWTUNNEL_ENCAP_BPF)) + #define XLAT_STR_6 STRINGIFY(LWTUNNEL_ENCAP_BPF) + [LWTUNNEL_ENCAP_SEG6_LOCAL] = XLAT(LWTUNNEL_ENCAP_SEG6_LOCAL), + #define XLAT_VAL_7 ((unsigned) (LWTUNNEL_ENCAP_SEG6_LOCAL)) + #define XLAT_STR_7 STRINGIFY(LWTUNNEL_ENCAP_SEG6_LOCAL) + [LWTUNNEL_ENCAP_RPL] = XLAT(LWTUNNEL_ENCAP_RPL), + #define XLAT_VAL_8 ((unsigned) (LWTUNNEL_ENCAP_RPL)) + #define XLAT_STR_8 STRINGIFY(LWTUNNEL_ENCAP_RPL) }; +static +const struct xlat lwtunnel_encap_types[1] = { { + .data = lwtunnel_encap_types_xdata, + .size = ARRAY_SIZE(lwtunnel_encap_types_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/lwtunnel_encap_types.in b/xlat/lwtunnel_encap_types.in index 4654bd4a..90a31127 100644 --- a/xlat/lwtunnel_encap_types.in +++ b/xlat/lwtunnel_encap_types.in @@ -1,7 +1,10 @@ -LWTUNNEL_ENCAP_NONE 0 -LWTUNNEL_ENCAP_MPLS 1 -LWTUNNEL_ENCAP_IP 2 -LWTUNNEL_ENCAP_ILA 3 -LWTUNNEL_ENCAP_IP6 4 -LWTUNNEL_ENCAP_SEG6 5 -LWTUNNEL_ENCAP_BPF 6 +#value_indexed +LWTUNNEL_ENCAP_NONE 0 +LWTUNNEL_ENCAP_MPLS 1 +LWTUNNEL_ENCAP_IP 2 +LWTUNNEL_ENCAP_ILA 3 +LWTUNNEL_ENCAP_IP6 4 +LWTUNNEL_ENCAP_SEG6 5 +LWTUNNEL_ENCAP_BPF 6 +LWTUNNEL_ENCAP_SEG6_LOCAL 7 +LWTUNNEL_ENCAP_RPL 8 diff --git a/xlat/madvise_cmds.h b/xlat/madvise_cmds.h index c391c004..a389107a 100644 --- a/xlat/madvise_cmds.h +++ b/xlat/madvise_cmds.h @@ -212,6 +212,20 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # define MADV_KEEPONFORK 19 #endif #endif +#if defined(MADV_COLD) || (defined(HAVE_DECL_MADV_COLD) && HAVE_DECL_MADV_COLD) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MADV_COLD) == (20), "MADV_COLD != 20"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MADV_COLD 20 +#endif +#if defined(MADV_PAGEOUT) || (defined(HAVE_DECL_MADV_PAGEOUT) && HAVE_DECL_MADV_PAGEOUT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MADV_PAGEOUT) == (21), "MADV_PAGEOUT != 21"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MADV_PAGEOUT 21 +#endif #if defined(MADV_HWPOISON) || (defined(HAVE_DECL_MADV_HWPOISON) && HAVE_DECL_MADV_HWPOISON) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((MADV_HWPOISON) == (100), "MADV_HWPOISON != 100"); @@ -235,86 +249,398 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat madvise_cmds[] = { +static const struct xlat_data madvise_cmds_xdata[] = { XLAT(MADV_NORMAL), + #define XLAT_VAL_0 ((unsigned) (MADV_NORMAL)) + #define XLAT_STR_0 STRINGIFY(MADV_NORMAL) XLAT(MADV_RANDOM), + #define XLAT_VAL_1 ((unsigned) (MADV_RANDOM)) + #define XLAT_STR_1 STRINGIFY(MADV_RANDOM) XLAT(MADV_SEQUENTIAL), + #define XLAT_VAL_2 ((unsigned) (MADV_SEQUENTIAL)) + #define XLAT_STR_2 STRINGIFY(MADV_SEQUENTIAL) XLAT(MADV_WILLNEED), + #define XLAT_VAL_3 ((unsigned) (MADV_WILLNEED)) + #define XLAT_STR_3 STRINGIFY(MADV_WILLNEED) #if defined __alpha__ XLAT(MADV_DONTNEED), + #define XLAT_VAL_4 ((unsigned) (MADV_DONTNEED)) + #define XLAT_STR_4 STRINGIFY(MADV_DONTNEED) #else XLAT(MADV_DONTNEED), + #define XLAT_VAL_5 ((unsigned) (MADV_DONTNEED)) + #define XLAT_STR_5 STRINGIFY(MADV_DONTNEED) #endif XLAT(MADV_FREE), + #define XLAT_VAL_6 ((unsigned) (MADV_FREE)) + #define XLAT_STR_6 STRINGIFY(MADV_FREE) XLAT(MADV_REMOVE), + #define XLAT_VAL_7 ((unsigned) (MADV_REMOVE)) + #define XLAT_STR_7 STRINGIFY(MADV_REMOVE) XLAT(MADV_DONTFORK), + #define XLAT_VAL_8 ((unsigned) (MADV_DONTFORK)) + #define XLAT_STR_8 STRINGIFY(MADV_DONTFORK) XLAT(MADV_DOFORK), + #define XLAT_VAL_9 ((unsigned) (MADV_DOFORK)) + #define XLAT_STR_9 STRINGIFY(MADV_DOFORK) #if defined __hppa__ XLAT(MADV_MERGEABLE), + #define XLAT_VAL_10 ((unsigned) (MADV_MERGEABLE)) + #define XLAT_STR_10 STRINGIFY(MADV_MERGEABLE) #else XLAT(MADV_MERGEABLE), + #define XLAT_VAL_11 ((unsigned) (MADV_MERGEABLE)) + #define XLAT_STR_11 STRINGIFY(MADV_MERGEABLE) #endif #if defined __hppa__ XLAT(MADV_UNMERGEABLE), + #define XLAT_VAL_12 ((unsigned) (MADV_UNMERGEABLE)) + #define XLAT_STR_12 STRINGIFY(MADV_UNMERGEABLE) #else XLAT(MADV_UNMERGEABLE), + #define XLAT_VAL_13 ((unsigned) (MADV_UNMERGEABLE)) + #define XLAT_STR_13 STRINGIFY(MADV_UNMERGEABLE) #endif #if defined __hppa__ XLAT(MADV_HUGEPAGE), + #define XLAT_VAL_14 ((unsigned) (MADV_HUGEPAGE)) + #define XLAT_STR_14 STRINGIFY(MADV_HUGEPAGE) #else XLAT(MADV_HUGEPAGE), + #define XLAT_VAL_15 ((unsigned) (MADV_HUGEPAGE)) + #define XLAT_STR_15 STRINGIFY(MADV_HUGEPAGE) #endif #if defined __hppa__ XLAT(MADV_NOHUGEPAGE), + #define XLAT_VAL_16 ((unsigned) (MADV_NOHUGEPAGE)) + #define XLAT_STR_16 STRINGIFY(MADV_NOHUGEPAGE) #else XLAT(MADV_NOHUGEPAGE), + #define XLAT_VAL_17 ((unsigned) (MADV_NOHUGEPAGE)) + #define XLAT_STR_17 STRINGIFY(MADV_NOHUGEPAGE) #endif #if defined __hppa__ XLAT(MADV_DONTDUMP), + #define XLAT_VAL_18 ((unsigned) (MADV_DONTDUMP)) + #define XLAT_STR_18 STRINGIFY(MADV_DONTDUMP) #else XLAT(MADV_DONTDUMP), + #define XLAT_VAL_19 ((unsigned) (MADV_DONTDUMP)) + #define XLAT_STR_19 STRINGIFY(MADV_DONTDUMP) #endif #if defined __hppa__ XLAT(MADV_DODUMP), + #define XLAT_VAL_20 ((unsigned) (MADV_DODUMP)) + #define XLAT_STR_20 STRINGIFY(MADV_DODUMP) #else XLAT(MADV_DODUMP), + #define XLAT_VAL_21 ((unsigned) (MADV_DODUMP)) + #define XLAT_STR_21 STRINGIFY(MADV_DODUMP) #endif #if defined __hppa__ XLAT(MADV_WIPEONFORK), + #define XLAT_VAL_22 ((unsigned) (MADV_WIPEONFORK)) + #define XLAT_STR_22 STRINGIFY(MADV_WIPEONFORK) #else XLAT(MADV_WIPEONFORK), + #define XLAT_VAL_23 ((unsigned) (MADV_WIPEONFORK)) + #define XLAT_STR_23 STRINGIFY(MADV_WIPEONFORK) #endif #if defined __hppa__ XLAT(MADV_KEEPONFORK), + #define XLAT_VAL_24 ((unsigned) (MADV_KEEPONFORK)) + #define XLAT_STR_24 STRINGIFY(MADV_KEEPONFORK) #else XLAT(MADV_KEEPONFORK), + #define XLAT_VAL_25 ((unsigned) (MADV_KEEPONFORK)) + #define XLAT_STR_25 STRINGIFY(MADV_KEEPONFORK) #endif + XLAT(MADV_COLD), + #define XLAT_VAL_26 ((unsigned) (MADV_COLD)) + #define XLAT_STR_26 STRINGIFY(MADV_COLD) + + XLAT(MADV_PAGEOUT), + #define XLAT_VAL_27 ((unsigned) (MADV_PAGEOUT)) + #define XLAT_STR_27 STRINGIFY(MADV_PAGEOUT) + XLAT(MADV_HWPOISON), + #define XLAT_VAL_28 ((unsigned) (MADV_HWPOISON)) + #define XLAT_STR_28 STRINGIFY(MADV_HWPOISON) XLAT(MADV_SOFT_OFFLINE), - XLAT_END + #define XLAT_VAL_29 ((unsigned) (MADV_SOFT_OFFLINE)) + #define XLAT_STR_29 STRINGIFY(MADV_SOFT_OFFLINE) }; +static +const struct xlat madvise_cmds[1] = { { + .data = madvise_cmds_xdata, + .size = ARRAY_SIZE(madvise_cmds_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/madvise_cmds.in b/xlat/madvise_cmds.in index c836e360..3e8d6358 100644 --- a/xlat/madvise_cmds.in +++ b/xlat/madvise_cmds.in @@ -70,6 +70,10 @@ MADV_KEEPONFORK 72 MADV_KEEPONFORK 19 #endif +MADV_COLD 20 + +MADV_PAGEOUT 21 + MADV_HWPOISON 100 MADV_SOFT_OFFLINE 101 diff --git a/xlat/mbind_flags.h b/xlat/mbind_flags.h new file mode 100644 index 00000000..29949eac --- /dev/null +++ b/xlat/mbind_flags.h @@ -0,0 +1,84 @@ +/* Generated by ./xlat/gen.sh from ./xlat/mbind_flags.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined(MPOL_MF_STRICT) || (defined(HAVE_DECL_MPOL_MF_STRICT) && HAVE_DECL_MPOL_MF_STRICT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MPOL_MF_STRICT) == (1), "MPOL_MF_STRICT != 1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MPOL_MF_STRICT 1 +#endif +#if defined(MPOL_MF_MOVE) || (defined(HAVE_DECL_MPOL_MF_MOVE) && HAVE_DECL_MPOL_MF_MOVE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MPOL_MF_MOVE) == (2), "MPOL_MF_MOVE != 2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MPOL_MF_MOVE 2 +#endif +#if defined(MPOL_MF_MOVE_ALL) || (defined(HAVE_DECL_MPOL_MF_MOVE_ALL) && HAVE_DECL_MPOL_MF_MOVE_ALL) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MPOL_MF_MOVE_ALL) == (4), "MPOL_MF_MOVE_ALL != 4"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MPOL_MF_MOVE_ALL 4 +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat mbind_flags in mpers mode + +# else + +static const struct xlat_data mbind_flags_xdata[] = { + XLAT(MPOL_MF_STRICT), + #define XLAT_VAL_0 ((unsigned) (MPOL_MF_STRICT)) + #define XLAT_STR_0 STRINGIFY(MPOL_MF_STRICT) + XLAT(MPOL_MF_MOVE), + #define XLAT_VAL_1 ((unsigned) (MPOL_MF_MOVE)) + #define XLAT_STR_1 STRINGIFY(MPOL_MF_MOVE) + XLAT(MPOL_MF_MOVE_ALL), + #define XLAT_VAL_2 ((unsigned) (MPOL_MF_MOVE_ALL)) + #define XLAT_STR_2 STRINGIFY(MPOL_MF_MOVE_ALL) +}; +static +const struct xlat mbind_flags[1] = { { + .data = mbind_flags_xdata, + .size = ARRAY_SIZE(mbind_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/mbind_flags.in b/xlat/mbind_flags.in new file mode 100644 index 00000000..04f3ae65 --- /dev/null +++ b/xlat/mbind_flags.in @@ -0,0 +1,3 @@ +MPOL_MF_STRICT 1 +MPOL_MF_MOVE 2 +MPOL_MF_MOVE_ALL 4 diff --git a/xlat/mbindflags.h b/xlat/mbindflags.h deleted file mode 100644 index ea4e1ecd..00000000 --- a/xlat/mbindflags.h +++ /dev/null @@ -1,46 +0,0 @@ -/* Generated by ./xlat/gen.sh from ./xlat/mbindflags.in; do not edit. */ - -#include "gcc_compat.h" -#include "static_assert.h" - -#if defined(MPOL_MF_STRICT) || (defined(HAVE_DECL_MPOL_MF_STRICT) && HAVE_DECL_MPOL_MF_STRICT) -DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MPOL_MF_STRICT) == (1), "MPOL_MF_STRICT != 1"); -DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE -#else -# define MPOL_MF_STRICT 1 -#endif -#if defined(MPOL_MF_MOVE) || (defined(HAVE_DECL_MPOL_MF_MOVE) && HAVE_DECL_MPOL_MF_MOVE) -DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MPOL_MF_MOVE) == (2), "MPOL_MF_MOVE != 2"); -DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE -#else -# define MPOL_MF_MOVE 2 -#endif -#if defined(MPOL_MF_MOVE_ALL) || (defined(HAVE_DECL_MPOL_MF_MOVE_ALL) && HAVE_DECL_MPOL_MF_MOVE_ALL) -DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MPOL_MF_MOVE_ALL) == (4), "MPOL_MF_MOVE_ALL != 4"); -DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE -#else -# define MPOL_MF_MOVE_ALL 4 -#endif - -#ifndef XLAT_MACROS_ONLY - -# ifdef IN_MPERS - -# error static const struct xlat mbindflags in mpers mode - -# else - -static -const struct xlat mbindflags[] = { - XLAT(MPOL_MF_STRICT), - XLAT(MPOL_MF_MOVE), - XLAT(MPOL_MF_MOVE_ALL), - XLAT_END -}; - -# endif /* !IN_MPERS */ - -#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/mbindflags.in b/xlat/mbindflags.in deleted file mode 100644 index 04f3ae65..00000000 --- a/xlat/mbindflags.in +++ /dev/null @@ -1,3 +0,0 @@ -MPOL_MF_STRICT 1 -MPOL_MF_MOVE 2 -MPOL_MF_MOVE_ALL 4 diff --git a/xlat/mctl_sync.h b/xlat/mctl_sync.h index f70c693b..94f82904 100644 --- a/xlat/mctl_sync.h +++ b/xlat/mctl_sync.h @@ -12,20 +12,58 @@ # else -static -const struct xlat mctl_sync[] = { +static const struct xlat_data mctl_sync_xdata[] = { #if defined(MS_SYNC) || (defined(HAVE_DECL_MS_SYNC) && HAVE_DECL_MS_SYNC) XLAT(MS_SYNC), + #define XLAT_VAL_0 ((unsigned) (MS_SYNC)) + #define XLAT_STR_0 STRINGIFY(MS_SYNC) #endif #if defined(MS_ASYNC) || (defined(HAVE_DECL_MS_ASYNC) && HAVE_DECL_MS_ASYNC) XLAT(MS_ASYNC), + #define XLAT_VAL_1 ((unsigned) (MS_ASYNC)) + #define XLAT_STR_1 STRINGIFY(MS_ASYNC) #endif #if defined(MS_INVALIDATE) || (defined(HAVE_DECL_MS_INVALIDATE) && HAVE_DECL_MS_INVALIDATE) XLAT(MS_INVALIDATE), + #define XLAT_VAL_2 ((unsigned) (MS_INVALIDATE)) + #define XLAT_STR_2 STRINGIFY(MS_INVALIDATE) #endif - XLAT_END }; +static +const struct xlat mctl_sync[1] = { { + .data = mctl_sync_xdata, + .size = ARRAY_SIZE(mctl_sync_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/mdb_flags.h b/xlat/mdb_flags.h index 15b066c3..e4b2408c 100644 --- a/xlat/mdb_flags.h +++ b/xlat/mdb_flags.h @@ -3,6 +3,20 @@ #include "gcc_compat.h" #include "static_assert.h" +#if defined(MDB_FLAGS_OFFLOAD) || (defined(HAVE_DECL_MDB_FLAGS_OFFLOAD) && HAVE_DECL_MDB_FLAGS_OFFLOAD) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MDB_FLAGS_OFFLOAD) == ((1 << 0)), "MDB_FLAGS_OFFLOAD != (1 << 0)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MDB_FLAGS_OFFLOAD (1 << 0) +#endif +#if defined(MDB_FLAGS_FAST_LEAVE) || (defined(HAVE_DECL_MDB_FLAGS_FAST_LEAVE) && HAVE_DECL_MDB_FLAGS_FAST_LEAVE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MDB_FLAGS_FAST_LEAVE) == ((1 << 1)), "MDB_FLAGS_FAST_LEAVE != (1 << 1)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MDB_FLAGS_FAST_LEAVE (1 << 1) +#endif #ifndef XLAT_MACROS_ONLY @@ -12,14 +26,41 @@ # else -static -const struct xlat mdb_flags[] = { -#if defined(MDB_FLAGS_OFFLOAD) || (defined(HAVE_DECL_MDB_FLAGS_OFFLOAD) && HAVE_DECL_MDB_FLAGS_OFFLOAD) - XLAT(MDB_FLAGS_OFFLOAD), -#endif - XLAT_END +static const struct xlat_data mdb_flags_xdata[] = { + XLAT(MDB_FLAGS_OFFLOAD), + #define XLAT_VAL_0 ((unsigned) (MDB_FLAGS_OFFLOAD)) + #define XLAT_STR_0 STRINGIFY(MDB_FLAGS_OFFLOAD) + XLAT(MDB_FLAGS_FAST_LEAVE), + #define XLAT_VAL_1 ((unsigned) (MDB_FLAGS_FAST_LEAVE)) + #define XLAT_STR_1 STRINGIFY(MDB_FLAGS_FAST_LEAVE) }; +static +const struct xlat mdb_flags[1] = { { + .data = mdb_flags_xdata, + .size = ARRAY_SIZE(mdb_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/mdb_flags.in b/xlat/mdb_flags.in index 4c2f1ed3..7df75c66 100644 --- a/xlat/mdb_flags.in +++ b/xlat/mdb_flags.in @@ -1 +1,2 @@ -MDB_FLAGS_OFFLOAD +MDB_FLAGS_OFFLOAD (1 << 0) +MDB_FLAGS_FAST_LEAVE (1 << 1) diff --git a/xlat/mdb_states.h b/xlat/mdb_states.h index f5ca3ed2..4a01b651 100644 --- a/xlat/mdb_states.h +++ b/xlat/mdb_states.h @@ -12,17 +12,45 @@ # else -static -const struct xlat mdb_states[] = { +static const struct xlat_data mdb_states_xdata[] = { #if defined(MDB_TEMPORARY) || (defined(HAVE_DECL_MDB_TEMPORARY) && HAVE_DECL_MDB_TEMPORARY) XLAT(MDB_TEMPORARY), + #define XLAT_VAL_0 ((unsigned) (MDB_TEMPORARY)) + #define XLAT_STR_0 STRINGIFY(MDB_TEMPORARY) #endif #if defined(MDB_PERMANENT) || (defined(HAVE_DECL_MDB_PERMANENT) && HAVE_DECL_MDB_PERMANENT) XLAT(MDB_PERMANENT), + #define XLAT_VAL_1 ((unsigned) (MDB_PERMANENT)) + #define XLAT_STR_1 STRINGIFY(MDB_PERMANENT) #endif - XLAT_END }; - +static +const struct xlat mdb_states[1] = { { + .data = mdb_states_xdata, + .size = ARRAY_SIZE(mdb_states_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/membarrier_cmds.h b/xlat/membarrier_cmds.h index 71e29605..910d1520 100644 --- a/xlat/membarrier_cmds.h +++ b/xlat/membarrier_cmds.h @@ -68,19 +68,107 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat membarrier_cmds[] = { +static const struct xlat_data membarrier_cmds_xdata[] = { XLAT(MEMBARRIER_CMD_QUERY), + #define XLAT_VAL_0 ((unsigned) (MEMBARRIER_CMD_QUERY)) + #define XLAT_STR_0 STRINGIFY(MEMBARRIER_CMD_QUERY) XLAT(MEMBARRIER_CMD_GLOBAL), + #define XLAT_VAL_1 ((unsigned) (MEMBARRIER_CMD_GLOBAL)) + #define XLAT_STR_1 STRINGIFY(MEMBARRIER_CMD_GLOBAL) XLAT(MEMBARRIER_CMD_GLOBAL_EXPEDITED), + #define XLAT_VAL_2 ((unsigned) (MEMBARRIER_CMD_GLOBAL_EXPEDITED)) + #define XLAT_STR_2 STRINGIFY(MEMBARRIER_CMD_GLOBAL_EXPEDITED) XLAT(MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED), + #define XLAT_VAL_3 ((unsigned) (MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED)) + #define XLAT_STR_3 STRINGIFY(MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED) XLAT(MEMBARRIER_CMD_PRIVATE_EXPEDITED), + #define XLAT_VAL_4 ((unsigned) (MEMBARRIER_CMD_PRIVATE_EXPEDITED)) + #define XLAT_STR_4 STRINGIFY(MEMBARRIER_CMD_PRIVATE_EXPEDITED) XLAT(MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED), + #define XLAT_VAL_5 ((unsigned) (MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED)) + #define XLAT_STR_5 STRINGIFY(MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED) XLAT(MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE), + #define XLAT_VAL_6 ((unsigned) (MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE)) + #define XLAT_STR_6 STRINGIFY(MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE) XLAT(MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE), - XLAT_END + #define XLAT_VAL_7 ((unsigned) (MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE)) + #define XLAT_STR_7 STRINGIFY(MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE) }; +static +const struct xlat membarrier_cmds[1] = { { + .data = membarrier_cmds_xdata, + .size = ARRAY_SIZE(membarrier_cmds_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/memfd_create_flags.h b/xlat/memfd_create_flags.h index 1fd77d18..c5f3b676 100644 --- a/xlat/memfd_create_flags.h +++ b/xlat/memfd_create_flags.h @@ -33,14 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat memfd_create_flags[] = { +static const struct xlat_data memfd_create_flags_xdata[] = { XLAT(MFD_CLOEXEC), + #define XLAT_VAL_0 ((unsigned) (MFD_CLOEXEC)) + #define XLAT_STR_0 STRINGIFY(MFD_CLOEXEC) XLAT(MFD_ALLOW_SEALING), + #define XLAT_VAL_1 ((unsigned) (MFD_ALLOW_SEALING)) + #define XLAT_STR_1 STRINGIFY(MFD_ALLOW_SEALING) XLAT(MFD_HUGETLB), - XLAT_END + #define XLAT_VAL_2 ((unsigned) (MFD_HUGETLB)) + #define XLAT_STR_2 STRINGIFY(MFD_HUGETLB) }; +static +const struct xlat memfd_create_flags[1] = { { + .data = memfd_create_flags_xdata, + .size = ARRAY_SIZE(memfd_create_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/mempolicyflags.h b/xlat/mempolicyflags.h deleted file mode 100644 index a68fcecd..00000000 --- a/xlat/mempolicyflags.h +++ /dev/null @@ -1,38 +0,0 @@ -/* Generated by ./xlat/gen.sh from ./xlat/mempolicyflags.in; do not edit. */ - -#include "gcc_compat.h" -#include "static_assert.h" - -#if defined(MPOL_F_NODE) || (defined(HAVE_DECL_MPOL_F_NODE) && HAVE_DECL_MPOL_F_NODE) -DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MPOL_F_NODE) == (1), "MPOL_F_NODE != 1"); -DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE -#else -# define MPOL_F_NODE 1 -#endif -#if defined(MPOL_F_ADDR) || (defined(HAVE_DECL_MPOL_F_ADDR) && HAVE_DECL_MPOL_F_ADDR) -DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MPOL_F_ADDR) == (2), "MPOL_F_ADDR != 2"); -DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE -#else -# define MPOL_F_ADDR 2 -#endif - -#ifndef XLAT_MACROS_ONLY - -# ifdef IN_MPERS - -# error static const struct xlat mempolicyflags in mpers mode - -# else - -static -const struct xlat mempolicyflags[] = { - XLAT(MPOL_F_NODE), - XLAT(MPOL_F_ADDR), - XLAT_END -}; - -# endif /* !IN_MPERS */ - -#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/mempolicyflags.in b/xlat/mempolicyflags.in deleted file mode 100644 index bdcc6f3e..00000000 --- a/xlat/mempolicyflags.in +++ /dev/null @@ -1,2 +0,0 @@ -MPOL_F_NODE 1 -MPOL_F_ADDR 2 diff --git a/xlat/mlock_flags.h b/xlat/mlock_flags.h index f2ef3e4e..389b772f 100644 --- a/xlat/mlock_flags.h +++ b/xlat/mlock_flags.h @@ -19,12 +19,30 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat mlock_flags[] = { +static const struct xlat_data mlock_flags_xdata[] = { XLAT(MLOCK_ONFAULT), - XLAT_END + #define XLAT_VAL_0 ((unsigned) (MLOCK_ONFAULT)) + #define XLAT_STR_0 STRINGIFY(MLOCK_ONFAULT) }; - +static +const struct xlat mlock_flags[1] = { { + .data = mlock_flags_xdata, + .size = ARRAY_SIZE(mlock_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/mlockall_flags.h b/xlat/mlockall_flags.h index 718ce3f8..033a6889 100644 --- a/xlat/mlockall_flags.h +++ b/xlat/mlockall_flags.h @@ -57,20 +57,88 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat mlockall_flags[] = { +static const struct xlat_data mlockall_flags_xdata[] = { #if defined __alpha__ || defined __powerpc__ || defined __powerpc64__ || defined __sparc__ XLAT(MCL_CURRENT), + #define XLAT_VAL_0 ((unsigned) (MCL_CURRENT)) + #define XLAT_STR_0 STRINGIFY(MCL_CURRENT) XLAT(MCL_FUTURE), + #define XLAT_VAL_1 ((unsigned) (MCL_FUTURE)) + #define XLAT_STR_1 STRINGIFY(MCL_FUTURE) XLAT(MCL_ONFAULT), + #define XLAT_VAL_2 ((unsigned) (MCL_ONFAULT)) + #define XLAT_STR_2 STRINGIFY(MCL_ONFAULT) #else XLAT(MCL_CURRENT), + #define XLAT_VAL_3 ((unsigned) (MCL_CURRENT)) + #define XLAT_STR_3 STRINGIFY(MCL_CURRENT) XLAT(MCL_FUTURE), + #define XLAT_VAL_4 ((unsigned) (MCL_FUTURE)) + #define XLAT_STR_4 STRINGIFY(MCL_FUTURE) XLAT(MCL_ONFAULT), + #define XLAT_VAL_5 ((unsigned) (MCL_ONFAULT)) + #define XLAT_STR_5 STRINGIFY(MCL_ONFAULT) #endif - XLAT_END }; +static +const struct xlat mlockall_flags[1] = { { + .data = mlockall_flags_xdata, + .size = ARRAY_SIZE(mlockall_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/mmap_flags.h b/xlat/mmap_flags.h index b82de094..5a8f7e9e 100644 --- a/xlat/mmap_flags.h +++ b/xlat/mmap_flags.h @@ -397,7 +397,18 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define MAP_SYNC 0x80000 #endif -#if defined MAP_UNINITIALIZED && MAP_UNINITIALIZED > 0 +#if defined MAP_UNINITIALIZED && MAP_UNINITIALIZED == 0 +# ifndef STRACE_WORKAROUND_FOR_MAP_UNINITIALIZED +# define STRACE_WORKAROUND_FOR_MAP_UNINITIALIZED +# undef MAP_UNINITIALIZED +# endif +#endif +#if defined(MAP_UNINITIALIZED) || (defined(HAVE_DECL_MAP_UNINITIALIZED) && HAVE_DECL_MAP_UNINITIALIZED) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MAP_UNINITIALIZED) == (0x4000000), "MAP_UNINITIALIZED != 0x4000000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MAP_UNINITIALIZED 0x4000000 #endif #if defined __alpha__ #if defined(MAP_FIXED_NOREPLACE) || (defined(HAVE_DECL_MAP_FIXED_NOREPLACE) && HAVE_DECL_MAP_FIXED_NOREPLACE) @@ -465,37 +476,58 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat mmap_flags[] = { +static const struct xlat_data mmap_flags_xdata[] = { XLAT(MAP_SHARED), + #define XLAT_VAL_0 ((unsigned) (MAP_SHARED)) + #define XLAT_STR_0 STRINGIFY(MAP_SHARED) XLAT(MAP_PRIVATE), + #define XLAT_VAL_1 ((unsigned) (MAP_PRIVATE)) + #define XLAT_STR_1 STRINGIFY(MAP_PRIVATE) XLAT(MAP_SHARED_VALIDATE), + #define XLAT_VAL_2 ((unsigned) (MAP_SHARED_VALIDATE)) + #define XLAT_STR_2 STRINGIFY(MAP_SHARED_VALIDATE) #if defined __hppa__ XLAT(MAP_FIXED), + #define XLAT_VAL_3 ((unsigned) (MAP_FIXED)) + #define XLAT_STR_3 STRINGIFY(MAP_FIXED) #elif defined __alpha__ XLAT(MAP_FIXED), + #define XLAT_VAL_4 ((unsigned) (MAP_FIXED)) + #define XLAT_STR_4 STRINGIFY(MAP_FIXED) #else XLAT(MAP_FIXED), + #define XLAT_VAL_5 ((unsigned) (MAP_FIXED)) + #define XLAT_STR_5 STRINGIFY(MAP_FIXED) #endif #if defined __alpha__ || defined __hppa__ XLAT(MAP_ANONYMOUS), + #define XLAT_VAL_6 ((unsigned) (MAP_ANONYMOUS)) + #define XLAT_STR_6 STRINGIFY(MAP_ANONYMOUS) #elif defined __mips__ || defined __xtensa__ XLAT(MAP_ANONYMOUS), + #define XLAT_VAL_7 ((unsigned) (MAP_ANONYMOUS)) + #define XLAT_STR_7 STRINGIFY(MAP_ANONYMOUS) #else XLAT(MAP_ANONYMOUS), + #define XLAT_VAL_8 ((unsigned) (MAP_ANONYMOUS)) + #define XLAT_STR_8 STRINGIFY(MAP_ANONYMOUS) #endif #if defined __x86_64__ || defined __i386__ XLAT(MAP_32BIT), + #define XLAT_VAL_9 ((unsigned) (MAP_32BIT)) + #define XLAT_STR_9 STRINGIFY(MAP_32BIT) #else #if defined(MAP_32BIT) || (defined(HAVE_DECL_MAP_32BIT) && HAVE_DECL_MAP_32BIT) XLAT(MAP_32BIT), + #define XLAT_VAL_10 ((unsigned) (MAP_32BIT)) + #define XLAT_STR_10 STRINGIFY(MAP_32BIT) #endif #endif @@ -510,176 +542,807 @@ const struct xlat mmap_flags[] = { #if defined __mips__ || defined __xtensa__ XLAT(MAP_RENAME), + #define XLAT_VAL_11 ((unsigned) (MAP_RENAME)) + #define XLAT_STR_11 STRINGIFY(MAP_RENAME) #else #if defined(MAP_RENAME) || (defined(HAVE_DECL_MAP_RENAME) && HAVE_DECL_MAP_RENAME) XLAT(MAP_RENAME), + #define XLAT_VAL_12 ((unsigned) (MAP_RENAME)) + #define XLAT_STR_12 STRINGIFY(MAP_RENAME) #endif #endif #if defined __powerpc__ || defined __sparc__ XLAT(MAP_NORESERVE), + #define XLAT_VAL_13 ((unsigned) (MAP_NORESERVE)) + #define XLAT_STR_13 STRINGIFY(MAP_NORESERVE) #elif defined __mips__ || defined __xtensa__ XLAT(MAP_NORESERVE), + #define XLAT_VAL_14 ((unsigned) (MAP_NORESERVE)) + #define XLAT_STR_14 STRINGIFY(MAP_NORESERVE) #elif defined __alpha__ XLAT(MAP_NORESERVE), + #define XLAT_VAL_15 ((unsigned) (MAP_NORESERVE)) + #define XLAT_STR_15 STRINGIFY(MAP_NORESERVE) #else XLAT(MAP_NORESERVE), + #define XLAT_VAL_16 ((unsigned) (MAP_NORESERVE)) + #define XLAT_STR_16 STRINGIFY(MAP_NORESERVE) #endif #if defined __hppa__ || defined __mips__ || defined __xtensa__ XLAT(MAP_POPULATE), + #define XLAT_VAL_17 ((unsigned) (MAP_POPULATE)) + #define XLAT_STR_17 STRINGIFY(MAP_POPULATE) #elif defined __alpha__ XLAT(MAP_POPULATE), + #define XLAT_VAL_18 ((unsigned) (MAP_POPULATE)) + #define XLAT_STR_18 STRINGIFY(MAP_POPULATE) #else XLAT(MAP_POPULATE), + #define XLAT_VAL_19 ((unsigned) (MAP_POPULATE)) + #define XLAT_STR_19 STRINGIFY(MAP_POPULATE) #endif #if defined __hppa__ || defined __mips__ || defined __xtensa__ XLAT(MAP_NONBLOCK), + #define XLAT_VAL_20 ((unsigned) (MAP_NONBLOCK)) + #define XLAT_STR_20 STRINGIFY(MAP_NONBLOCK) #elif defined __alpha__ XLAT(MAP_NONBLOCK), + #define XLAT_VAL_21 ((unsigned) (MAP_NONBLOCK)) + #define XLAT_STR_21 STRINGIFY(MAP_NONBLOCK) #else XLAT(MAP_NONBLOCK), + #define XLAT_VAL_22 ((unsigned) (MAP_NONBLOCK)) + #define XLAT_STR_22 STRINGIFY(MAP_NONBLOCK) #endif #if defined __sparc__ XLAT(_MAP_NEW), + #define XLAT_VAL_23 ((unsigned) (_MAP_NEW)) + #define XLAT_STR_23 STRINGIFY(_MAP_NEW) #else #if defined(_MAP_NEW) || (defined(HAVE_DECL__MAP_NEW) && HAVE_DECL__MAP_NEW) XLAT(_MAP_NEW), + #define XLAT_VAL_24 ((unsigned) (_MAP_NEW)) + #define XLAT_STR_24 STRINGIFY(_MAP_NEW) #endif #endif #if defined __sparc__ XLAT(MAP_GROWSDOWN), + #define XLAT_VAL_25 ((unsigned) (MAP_GROWSDOWN)) + #define XLAT_STR_25 STRINGIFY(MAP_GROWSDOWN) #elif defined __alpha__ || defined __mips__ || defined __xtensa__ XLAT(MAP_GROWSDOWN), + #define XLAT_VAL_26 ((unsigned) (MAP_GROWSDOWN)) + #define XLAT_STR_26 STRINGIFY(MAP_GROWSDOWN) #elif defined __hppa__ XLAT(MAP_GROWSDOWN), + #define XLAT_VAL_27 ((unsigned) (MAP_GROWSDOWN)) + #define XLAT_STR_27 STRINGIFY(MAP_GROWSDOWN) #else XLAT(MAP_GROWSDOWN), + #define XLAT_VAL_28 ((unsigned) (MAP_GROWSDOWN)) + #define XLAT_STR_28 STRINGIFY(MAP_GROWSDOWN) #endif #if defined __ia64__ XLAT(MAP_GROWSUP), + #define XLAT_VAL_29 ((unsigned) (MAP_GROWSUP)) + #define XLAT_STR_29 STRINGIFY(MAP_GROWSUP) #else #if defined(MAP_GROWSUP) || (defined(HAVE_DECL_MAP_GROWSUP) && HAVE_DECL_MAP_GROWSUP) XLAT(MAP_GROWSUP), + #define XLAT_VAL_30 ((unsigned) (MAP_GROWSUP)) + #define XLAT_STR_30 STRINGIFY(MAP_GROWSUP) #endif #endif #if defined __alpha__ || defined __mips__ || defined __xtensa__ XLAT(MAP_DENYWRITE), + #define XLAT_VAL_31 ((unsigned) (MAP_DENYWRITE)) + #define XLAT_STR_31 STRINGIFY(MAP_DENYWRITE) #else XLAT(MAP_DENYWRITE), + #define XLAT_VAL_32 ((unsigned) (MAP_DENYWRITE)) + #define XLAT_STR_32 STRINGIFY(MAP_DENYWRITE) #endif #if defined __alpha__ || defined __mips__ || defined __xtensa__ XLAT(MAP_EXECUTABLE), + #define XLAT_VAL_33 ((unsigned) (MAP_EXECUTABLE)) + #define XLAT_STR_33 STRINGIFY(MAP_EXECUTABLE) #else XLAT(MAP_EXECUTABLE), + #define XLAT_VAL_34 ((unsigned) (MAP_EXECUTABLE)) + #define XLAT_STR_34 STRINGIFY(MAP_EXECUTABLE) #endif #if defined __sparc__ XLAT(MAP_INHERIT), + #define XLAT_VAL_35 ((unsigned) (MAP_INHERIT)) + #define XLAT_STR_35 STRINGIFY(MAP_INHERIT) #else #if defined(MAP_INHERIT) || (defined(HAVE_DECL_MAP_INHERIT) && HAVE_DECL_MAP_INHERIT) XLAT(MAP_INHERIT), + #define XLAT_VAL_36 ((unsigned) (MAP_INHERIT)) + #define XLAT_STR_36 STRINGIFY(MAP_INHERIT) #endif #endif #if defined __alpha__ XLAT(_MAP_INHERIT), + #define XLAT_VAL_37 ((unsigned) (_MAP_INHERIT)) + #define XLAT_STR_37 STRINGIFY(_MAP_INHERIT) #else #if defined(_MAP_INHERIT) || (defined(HAVE_DECL__MAP_INHERIT) && HAVE_DECL__MAP_INHERIT) XLAT(_MAP_INHERIT), + #define XLAT_VAL_38 ((unsigned) (_MAP_INHERIT)) + #define XLAT_STR_38 STRINGIFY(_MAP_INHERIT) #endif #endif XLAT(MAP_FILE), + #define XLAT_VAL_39 ((unsigned) (MAP_FILE)) + #define XLAT_STR_39 STRINGIFY(MAP_FILE) #if defined __powerpc__ XLAT(MAP_LOCKED), + #define XLAT_VAL_40 ((unsigned) (MAP_LOCKED)) + #define XLAT_STR_40 STRINGIFY(MAP_LOCKED) #elif defined __sparc__ XLAT(MAP_LOCKED), + #define XLAT_VAL_41 ((unsigned) (MAP_LOCKED)) + #define XLAT_STR_41 STRINGIFY(MAP_LOCKED) #elif defined __alpha__ || defined __mips__ || defined __xtensa__ XLAT(MAP_LOCKED), + #define XLAT_VAL_42 ((unsigned) (MAP_LOCKED)) + #define XLAT_STR_42 STRINGIFY(MAP_LOCKED) #else XLAT(MAP_LOCKED), + #define XLAT_VAL_43 ((unsigned) (MAP_LOCKED)) + #define XLAT_STR_43 STRINGIFY(MAP_LOCKED) #endif #if defined __alpha__ XLAT(_MAP_HASSEMAPHORE), + #define XLAT_VAL_44 ((unsigned) (_MAP_HASSEMAPHORE)) + #define XLAT_STR_44 STRINGIFY(_MAP_HASSEMAPHORE) #else #if defined(_MAP_HASSEMAPHORE) || (defined(HAVE_DECL__MAP_HASSEMAPHORE) && HAVE_DECL__MAP_HASSEMAPHORE) XLAT(_MAP_HASSEMAPHORE), + #define XLAT_VAL_45 ((unsigned) (_MAP_HASSEMAPHORE)) + #define XLAT_STR_45 STRINGIFY(_MAP_HASSEMAPHORE) #endif #endif #if defined __hppa__ || defined __mips__ || defined __xtensa__ XLAT(MAP_STACK), + #define XLAT_VAL_46 ((unsigned) (MAP_STACK)) + #define XLAT_STR_46 STRINGIFY(MAP_STACK) #elif defined __alpha__ XLAT(MAP_STACK), + #define XLAT_VAL_47 ((unsigned) (MAP_STACK)) + #define XLAT_STR_47 STRINGIFY(MAP_STACK) #else XLAT(MAP_STACK), + #define XLAT_VAL_48 ((unsigned) (MAP_STACK)) + #define XLAT_STR_48 STRINGIFY(MAP_STACK) #endif #if defined __hppa__ || defined __mips__ || defined __xtensa__ XLAT(MAP_HUGETLB), + #define XLAT_VAL_49 ((unsigned) (MAP_HUGETLB)) + #define XLAT_STR_49 STRINGIFY(MAP_HUGETLB) #elif defined __alpha__ XLAT(MAP_HUGETLB), + #define XLAT_VAL_50 ((unsigned) (MAP_HUGETLB)) + #define XLAT_STR_50 STRINGIFY(MAP_HUGETLB) #else XLAT(MAP_HUGETLB), + #define XLAT_VAL_51 ((unsigned) (MAP_HUGETLB)) + #define XLAT_STR_51 STRINGIFY(MAP_HUGETLB) #endif XLAT(MAP_SYNC), + #define XLAT_VAL_52 ((unsigned) (MAP_SYNC)) + #define XLAT_STR_52 STRINGIFY(MAP_SYNC) -#if defined MAP_UNINITIALIZED && MAP_UNINITIALIZED > 0 -#if defined(MAP_UNINITIALIZED) || (defined(HAVE_DECL_MAP_UNINITIALIZED) && HAVE_DECL_MAP_UNINITIALIZED) - XLAT(MAP_UNINITIALIZED), -#endif +#if defined MAP_UNINITIALIZED && MAP_UNINITIALIZED == 0 + + +# ifndef STRACE_WORKAROUND_FOR_MAP_UNINITIALIZED +# define STRACE_WORKAROUND_FOR_MAP_UNINITIALIZED +# undef MAP_UNINITIALIZED +# endif #endif + XLAT(MAP_UNINITIALIZED), + #define XLAT_VAL_53 ((unsigned) (MAP_UNINITIALIZED)) + #define XLAT_STR_53 STRINGIFY(MAP_UNINITIALIZED) #if defined __alpha__ XLAT(MAP_FIXED_NOREPLACE), + #define XLAT_VAL_54 ((unsigned) (MAP_FIXED_NOREPLACE)) + #define XLAT_STR_54 STRINGIFY(MAP_FIXED_NOREPLACE) #else XLAT(MAP_FIXED_NOREPLACE), + #define XLAT_VAL_55 ((unsigned) (MAP_FIXED_NOREPLACE)) + #define XLAT_STR_55 STRINGIFY(MAP_FIXED_NOREPLACE) #endif #if defined __mips__ || defined __xtensa__ XLAT(MAP_AUTOGROW), + #define XLAT_VAL_56 ((unsigned) (MAP_AUTOGROW)) + #define XLAT_STR_56 STRINGIFY(MAP_AUTOGROW) #else #if defined(MAP_AUTOGROW) || (defined(HAVE_DECL_MAP_AUTOGROW) && HAVE_DECL_MAP_AUTOGROW) XLAT(MAP_AUTOGROW), + #define XLAT_VAL_57 ((unsigned) (MAP_AUTOGROW)) + #define XLAT_STR_57 STRINGIFY(MAP_AUTOGROW) #endif #endif #if defined __mips__ || defined __xtensa__ XLAT(MAP_AUTORSRV), + #define XLAT_VAL_58 ((unsigned) (MAP_AUTORSRV)) + #define XLAT_STR_58 STRINGIFY(MAP_AUTORSRV) #else #if defined(MAP_AUTORSRV) || (defined(HAVE_DECL_MAP_AUTORSRV) && HAVE_DECL_MAP_AUTORSRV) XLAT(MAP_AUTORSRV), + #define XLAT_VAL_59 ((unsigned) (MAP_AUTORSRV)) + #define XLAT_STR_59 STRINGIFY(MAP_AUTORSRV) #endif #endif #if defined __mips__ || defined __xtensa__ XLAT(MAP_LOCAL), + #define XLAT_VAL_60 ((unsigned) (MAP_LOCAL)) + #define XLAT_STR_60 STRINGIFY(MAP_LOCAL) #else #if defined(MAP_LOCAL) || (defined(HAVE_DECL_MAP_LOCAL) && HAVE_DECL_MAP_LOCAL) XLAT(MAP_LOCAL), + #define XLAT_VAL_61 ((unsigned) (MAP_LOCAL)) + #define XLAT_STR_61 STRINGIFY(MAP_LOCAL) #endif #endif #if defined __alpha__ XLAT(_MAP_UNALIGNED), + #define XLAT_VAL_62 ((unsigned) (_MAP_UNALIGNED)) + #define XLAT_STR_62 STRINGIFY(_MAP_UNALIGNED) #else #if defined(_MAP_UNALIGNED) || (defined(HAVE_DECL__MAP_UNALIGNED) && HAVE_DECL__MAP_UNALIGNED) XLAT(_MAP_UNALIGNED), + #define XLAT_VAL_63 ((unsigned) (_MAP_UNALIGNED)) + #define XLAT_STR_63 STRINGIFY(_MAP_UNALIGNED) #endif #endif - XLAT_END }; +static +const struct xlat mmap_flags[1] = { { + .data = mmap_flags_xdata, + .size = ARRAY_SIZE(mmap_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif +# ifdef XLAT_VAL_41 + | XLAT_VAL_41 +# endif +# ifdef XLAT_VAL_42 + | XLAT_VAL_42 +# endif +# ifdef XLAT_VAL_43 + | XLAT_VAL_43 +# endif +# ifdef XLAT_VAL_44 + | XLAT_VAL_44 +# endif +# ifdef XLAT_VAL_45 + | XLAT_VAL_45 +# endif +# ifdef XLAT_VAL_46 + | XLAT_VAL_46 +# endif +# ifdef XLAT_VAL_47 + | XLAT_VAL_47 +# endif +# ifdef XLAT_VAL_48 + | XLAT_VAL_48 +# endif +# ifdef XLAT_VAL_49 + | XLAT_VAL_49 +# endif +# ifdef XLAT_VAL_50 + | XLAT_VAL_50 +# endif +# ifdef XLAT_VAL_51 + | XLAT_VAL_51 +# endif +# ifdef XLAT_VAL_52 + | XLAT_VAL_52 +# endif +# ifdef XLAT_VAL_53 + | XLAT_VAL_53 +# endif +# ifdef XLAT_VAL_54 + | XLAT_VAL_54 +# endif +# ifdef XLAT_VAL_55 + | XLAT_VAL_55 +# endif +# ifdef XLAT_VAL_56 + | XLAT_VAL_56 +# endif +# ifdef XLAT_VAL_57 + | XLAT_VAL_57 +# endif +# ifdef XLAT_VAL_58 + | XLAT_VAL_58 +# endif +# ifdef XLAT_VAL_59 + | XLAT_VAL_59 +# endif +# ifdef XLAT_VAL_60 + | XLAT_VAL_60 +# endif +# ifdef XLAT_VAL_61 + | XLAT_VAL_61 +# endif +# ifdef XLAT_VAL_62 + | XLAT_VAL_62 +# endif +# ifdef XLAT_VAL_63 + | XLAT_VAL_63 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif +# ifdef XLAT_STR_41 + + sizeof(XLAT_STR_41) +# endif +# ifdef XLAT_STR_42 + + sizeof(XLAT_STR_42) +# endif +# ifdef XLAT_STR_43 + + sizeof(XLAT_STR_43) +# endif +# ifdef XLAT_STR_44 + + sizeof(XLAT_STR_44) +# endif +# ifdef XLAT_STR_45 + + sizeof(XLAT_STR_45) +# endif +# ifdef XLAT_STR_46 + + sizeof(XLAT_STR_46) +# endif +# ifdef XLAT_STR_47 + + sizeof(XLAT_STR_47) +# endif +# ifdef XLAT_STR_48 + + sizeof(XLAT_STR_48) +# endif +# ifdef XLAT_STR_49 + + sizeof(XLAT_STR_49) +# endif +# ifdef XLAT_STR_50 + + sizeof(XLAT_STR_50) +# endif +# ifdef XLAT_STR_51 + + sizeof(XLAT_STR_51) +# endif +# ifdef XLAT_STR_52 + + sizeof(XLAT_STR_52) +# endif +# ifdef XLAT_STR_53 + + sizeof(XLAT_STR_53) +# endif +# ifdef XLAT_STR_54 + + sizeof(XLAT_STR_54) +# endif +# ifdef XLAT_STR_55 + + sizeof(XLAT_STR_55) +# endif +# ifdef XLAT_STR_56 + + sizeof(XLAT_STR_56) +# endif +# ifdef XLAT_STR_57 + + sizeof(XLAT_STR_57) +# endif +# ifdef XLAT_STR_58 + + sizeof(XLAT_STR_58) +# endif +# ifdef XLAT_STR_59 + + sizeof(XLAT_STR_59) +# endif +# ifdef XLAT_STR_60 + + sizeof(XLAT_STR_60) +# endif +# ifdef XLAT_STR_61 + + sizeof(XLAT_STR_61) +# endif +# ifdef XLAT_STR_62 + + sizeof(XLAT_STR_62) +# endif +# ifdef XLAT_STR_63 + + sizeof(XLAT_STR_63) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 +# undef XLAT_STR_41 +# undef XLAT_VAL_41 +# undef XLAT_STR_42 +# undef XLAT_VAL_42 +# undef XLAT_STR_43 +# undef XLAT_VAL_43 +# undef XLAT_STR_44 +# undef XLAT_VAL_44 +# undef XLAT_STR_45 +# undef XLAT_VAL_45 +# undef XLAT_STR_46 +# undef XLAT_VAL_46 +# undef XLAT_STR_47 +# undef XLAT_VAL_47 +# undef XLAT_STR_48 +# undef XLAT_VAL_48 +# undef XLAT_STR_49 +# undef XLAT_VAL_49 +# undef XLAT_STR_50 +# undef XLAT_VAL_50 +# undef XLAT_STR_51 +# undef XLAT_VAL_51 +# undef XLAT_STR_52 +# undef XLAT_VAL_52 +# undef XLAT_STR_53 +# undef XLAT_VAL_53 +# undef XLAT_STR_54 +# undef XLAT_VAL_54 +# undef XLAT_STR_55 +# undef XLAT_VAL_55 +# undef XLAT_STR_56 +# undef XLAT_VAL_56 +# undef XLAT_STR_57 +# undef XLAT_VAL_57 +# undef XLAT_STR_58 +# undef XLAT_VAL_58 +# undef XLAT_STR_59 +# undef XLAT_VAL_59 +# undef XLAT_STR_60 +# undef XLAT_VAL_60 +# undef XLAT_STR_61 +# undef XLAT_VAL_61 +# undef XLAT_STR_62 +# undef XLAT_VAL_62 +# undef XLAT_STR_63 +# undef XLAT_VAL_63 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/mmap_flags.in b/xlat/mmap_flags.in index 5a592494..0fb82403 100644 --- a/xlat/mmap_flags.in +++ b/xlat/mmap_flags.in @@ -1,4 +1,4 @@ -/* Generated by maint/gen_xlat_defs.sh -f '#x' -p '_?MAP_' -c 'asm-generic/mman*.h' -a 'asm/mman.h' */ +/* Generated by maint/gen_xlat_defs.sh -f '#x' -p '_?MAP_' -c '[al]*/mman*.h' -a 'asm/mman.h' */ MAP_SHARED 0x1 @@ -151,9 +151,15 @@ MAP_HUGETLB 0x40000 MAP_SYNC 0x80000 -#if defined MAP_UNINITIALIZED && MAP_UNINITIALIZED > 0 -MAP_UNINITIALIZED -#endif +#if defined MAP_UNINITIALIZED && MAP_UNINITIALIZED == 0 /* MAP_UNINITIALIZED is special */ +/* Linux commit v5.3-rc1~65^2~86 fixed the definition of MAP_UNINITIALIZED */ +/* flag that used to depend on CONFIG_MMAP_ALLOW_UNINITIALIZED. */ +# ifndef STRACE_WORKAROUND_FOR_MAP_UNINITIALIZED +# define STRACE_WORKAROUND_FOR_MAP_UNINITIALIZED +# undef MAP_UNINITIALIZED +# endif /* STRACE_WORKAROUND_FOR_MAP_UNINITIALIZED */ +#endif /* MAP_UNINITIALIZED == 0 */ +MAP_UNINITIALIZED 0x4000000 #if defined __alpha__ MAP_FIXED_NOREPLACE 0x200000 diff --git a/xlat/mmap_prot.h b/xlat/mmap_prot.h index 310e7f1e..b222f072 100644 --- a/xlat/mmap_prot.h +++ b/xlat/mmap_prot.h @@ -12,38 +12,136 @@ # else -static -const struct xlat mmap_prot[] = { +static const struct xlat_data mmap_prot_xdata[] = { #if defined(PROT_NONE) || (defined(HAVE_DECL_PROT_NONE) && HAVE_DECL_PROT_NONE) XLAT(PROT_NONE), + #define XLAT_VAL_0 ((unsigned) (PROT_NONE)) + #define XLAT_STR_0 STRINGIFY(PROT_NONE) #endif #if defined(PROT_READ) || (defined(HAVE_DECL_PROT_READ) && HAVE_DECL_PROT_READ) XLAT(PROT_READ), + #define XLAT_VAL_1 ((unsigned) (PROT_READ)) + #define XLAT_STR_1 STRINGIFY(PROT_READ) #endif #if defined(PROT_WRITE) || (defined(HAVE_DECL_PROT_WRITE) && HAVE_DECL_PROT_WRITE) XLAT(PROT_WRITE), + #define XLAT_VAL_2 ((unsigned) (PROT_WRITE)) + #define XLAT_STR_2 STRINGIFY(PROT_WRITE) #endif #if defined(PROT_EXEC) || (defined(HAVE_DECL_PROT_EXEC) && HAVE_DECL_PROT_EXEC) XLAT(PROT_EXEC), + #define XLAT_VAL_3 ((unsigned) (PROT_EXEC)) + #define XLAT_STR_3 STRINGIFY(PROT_EXEC) #endif #if defined(PROT_SEM) || (defined(HAVE_DECL_PROT_SEM) && HAVE_DECL_PROT_SEM) XLAT(PROT_SEM), + #define XLAT_VAL_4 ((unsigned) (PROT_SEM)) + #define XLAT_STR_4 STRINGIFY(PROT_SEM) #endif #if defined(PROT_GROWSDOWN) || (defined(HAVE_DECL_PROT_GROWSDOWN) && HAVE_DECL_PROT_GROWSDOWN) XLAT(PROT_GROWSDOWN), + #define XLAT_VAL_5 ((unsigned) (PROT_GROWSDOWN)) + #define XLAT_STR_5 STRINGIFY(PROT_GROWSDOWN) #endif #if defined(PROT_GROWSUP) || (defined(HAVE_DECL_PROT_GROWSUP) && HAVE_DECL_PROT_GROWSUP) XLAT(PROT_GROWSUP), + #define XLAT_VAL_6 ((unsigned) (PROT_GROWSUP)) + #define XLAT_STR_6 STRINGIFY(PROT_GROWSUP) #endif #if defined(PROT_SAO) || (defined(HAVE_DECL_PROT_SAO) && HAVE_DECL_PROT_SAO) XLAT(PROT_SAO), + #define XLAT_VAL_7 ((unsigned) (PROT_SAO)) + #define XLAT_STR_7 STRINGIFY(PROT_SAO) #endif #if defined(PROT_ADI) || (defined(HAVE_DECL_PROT_ADI) && HAVE_DECL_PROT_ADI) XLAT(PROT_ADI), + #define XLAT_VAL_8 ((unsigned) (PROT_ADI)) + #define XLAT_STR_8 STRINGIFY(PROT_ADI) #endif - XLAT_END }; +static +const struct xlat mmap_prot[1] = { { + .data = mmap_prot_xdata, + .size = ARRAY_SIZE(mmap_prot_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/modem_flags.h b/xlat/modem_flags.h index 322ff11a..4f1280fe 100644 --- a/xlat/modem_flags.h +++ b/xlat/modem_flags.h @@ -12,44 +12,162 @@ # else -static -const struct xlat modem_flags[] = { +static const struct xlat_data modem_flags_xdata[] = { #if defined(TIOCM_LE) || (defined(HAVE_DECL_TIOCM_LE) && HAVE_DECL_TIOCM_LE) XLAT(TIOCM_LE), + #define XLAT_VAL_0 ((unsigned) (TIOCM_LE)) + #define XLAT_STR_0 STRINGIFY(TIOCM_LE) #endif #if defined(TIOCM_DTR) || (defined(HAVE_DECL_TIOCM_DTR) && HAVE_DECL_TIOCM_DTR) XLAT(TIOCM_DTR), + #define XLAT_VAL_1 ((unsigned) (TIOCM_DTR)) + #define XLAT_STR_1 STRINGIFY(TIOCM_DTR) #endif #if defined(TIOCM_RTS) || (defined(HAVE_DECL_TIOCM_RTS) && HAVE_DECL_TIOCM_RTS) XLAT(TIOCM_RTS), + #define XLAT_VAL_2 ((unsigned) (TIOCM_RTS)) + #define XLAT_STR_2 STRINGIFY(TIOCM_RTS) #endif #if defined(TIOCM_ST) || (defined(HAVE_DECL_TIOCM_ST) && HAVE_DECL_TIOCM_ST) XLAT(TIOCM_ST), + #define XLAT_VAL_3 ((unsigned) (TIOCM_ST)) + #define XLAT_STR_3 STRINGIFY(TIOCM_ST) #endif #if defined(TIOCM_SR) || (defined(HAVE_DECL_TIOCM_SR) && HAVE_DECL_TIOCM_SR) XLAT(TIOCM_SR), + #define XLAT_VAL_4 ((unsigned) (TIOCM_SR)) + #define XLAT_STR_4 STRINGIFY(TIOCM_SR) #endif #if defined(TIOCM_CTS) || (defined(HAVE_DECL_TIOCM_CTS) && HAVE_DECL_TIOCM_CTS) XLAT(TIOCM_CTS), + #define XLAT_VAL_5 ((unsigned) (TIOCM_CTS)) + #define XLAT_STR_5 STRINGIFY(TIOCM_CTS) #endif #if defined(TIOCM_CAR) || (defined(HAVE_DECL_TIOCM_CAR) && HAVE_DECL_TIOCM_CAR) XLAT(TIOCM_CAR), + #define XLAT_VAL_6 ((unsigned) (TIOCM_CAR)) + #define XLAT_STR_6 STRINGIFY(TIOCM_CAR) #endif #if defined(TIOCM_CD) || (defined(HAVE_DECL_TIOCM_CD) && HAVE_DECL_TIOCM_CD) XLAT(TIOCM_CD), + #define XLAT_VAL_7 ((unsigned) (TIOCM_CD)) + #define XLAT_STR_7 STRINGIFY(TIOCM_CD) #endif #if defined(TIOCM_RNG) || (defined(HAVE_DECL_TIOCM_RNG) && HAVE_DECL_TIOCM_RNG) XLAT(TIOCM_RNG), + #define XLAT_VAL_8 ((unsigned) (TIOCM_RNG)) + #define XLAT_STR_8 STRINGIFY(TIOCM_RNG) #endif #if defined(TIOCM_RI) || (defined(HAVE_DECL_TIOCM_RI) && HAVE_DECL_TIOCM_RI) XLAT(TIOCM_RI), + #define XLAT_VAL_9 ((unsigned) (TIOCM_RI)) + #define XLAT_STR_9 STRINGIFY(TIOCM_RI) #endif #if defined(TIOCM_DSR) || (defined(HAVE_DECL_TIOCM_DSR) && HAVE_DECL_TIOCM_DSR) XLAT(TIOCM_DSR), + #define XLAT_VAL_10 ((unsigned) (TIOCM_DSR)) + #define XLAT_STR_10 STRINGIFY(TIOCM_DSR) #endif - XLAT_END }; +static +const struct xlat modem_flags[1] = { { + .data = modem_flags_xdata, + .size = ARRAY_SIZE(modem_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/modetypes.h b/xlat/modetypes.h index 94bd51ab..26172e02 100644 --- a/xlat/modetypes.h +++ b/xlat/modetypes.h @@ -12,32 +12,110 @@ # else -static -const struct xlat modetypes[] = { +static const struct xlat_data modetypes_xdata[] = { #if defined(S_IFREG) || (defined(HAVE_DECL_S_IFREG) && HAVE_DECL_S_IFREG) XLAT(S_IFREG), + #define XLAT_VAL_0 ((unsigned) (S_IFREG)) + #define XLAT_STR_0 STRINGIFY(S_IFREG) #endif #if defined(S_IFSOCK) || (defined(HAVE_DECL_S_IFSOCK) && HAVE_DECL_S_IFSOCK) XLAT(S_IFSOCK), + #define XLAT_VAL_1 ((unsigned) (S_IFSOCK)) + #define XLAT_STR_1 STRINGIFY(S_IFSOCK) #endif #if defined(S_IFIFO) || (defined(HAVE_DECL_S_IFIFO) && HAVE_DECL_S_IFIFO) XLAT(S_IFIFO), + #define XLAT_VAL_2 ((unsigned) (S_IFIFO)) + #define XLAT_STR_2 STRINGIFY(S_IFIFO) #endif #if defined(S_IFLNK) || (defined(HAVE_DECL_S_IFLNK) && HAVE_DECL_S_IFLNK) XLAT(S_IFLNK), + #define XLAT_VAL_3 ((unsigned) (S_IFLNK)) + #define XLAT_STR_3 STRINGIFY(S_IFLNK) #endif #if defined(S_IFDIR) || (defined(HAVE_DECL_S_IFDIR) && HAVE_DECL_S_IFDIR) XLAT(S_IFDIR), + #define XLAT_VAL_4 ((unsigned) (S_IFDIR)) + #define XLAT_STR_4 STRINGIFY(S_IFDIR) #endif #if defined(S_IFBLK) || (defined(HAVE_DECL_S_IFBLK) && HAVE_DECL_S_IFBLK) XLAT(S_IFBLK), + #define XLAT_VAL_5 ((unsigned) (S_IFBLK)) + #define XLAT_STR_5 STRINGIFY(S_IFBLK) #endif #if defined(S_IFCHR) || (defined(HAVE_DECL_S_IFCHR) && HAVE_DECL_S_IFCHR) XLAT(S_IFCHR), + #define XLAT_VAL_6 ((unsigned) (S_IFCHR)) + #define XLAT_STR_6 STRINGIFY(S_IFCHR) #endif - XLAT_END }; +static +const struct xlat modetypes[1] = { { + .data = modetypes_xdata, + .size = ARRAY_SIZE(modetypes_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/module_init_flags.h b/xlat/module_init_flags.h index 3057478e..cd5856db 100644 --- a/xlat/module_init_flags.h +++ b/xlat/module_init_flags.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat module_init_flags[] = { +static const struct xlat_data module_init_flags_xdata[] = { XLAT(MODULE_INIT_IGNORE_MODVERSIONS), + #define XLAT_VAL_0 ((unsigned) (MODULE_INIT_IGNORE_MODVERSIONS)) + #define XLAT_STR_0 STRINGIFY(MODULE_INIT_IGNORE_MODVERSIONS) XLAT(MODULE_INIT_IGNORE_VERMAGIC), - XLAT_END + #define XLAT_VAL_1 ((unsigned) (MODULE_INIT_IGNORE_VERMAGIC)) + #define XLAT_STR_1 STRINGIFY(MODULE_INIT_IGNORE_VERMAGIC) }; +static +const struct xlat module_init_flags[1] = { { + .data = module_init_flags_xdata, + .size = ARRAY_SIZE(module_init_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/mount_attr_flags.h b/xlat/mount_attr_flags.h new file mode 100644 index 00000000..c3b91e37 --- /dev/null +++ b/xlat/mount_attr_flags.h @@ -0,0 +1,156 @@ +/* Generated by ./xlat/gen.sh from ./xlat/mount_attr_flags.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined(MOUNT_ATTR_RDONLY) || (defined(HAVE_DECL_MOUNT_ATTR_RDONLY) && HAVE_DECL_MOUNT_ATTR_RDONLY) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MOUNT_ATTR_RDONLY) == (0x01), "MOUNT_ATTR_RDONLY != 0x01"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MOUNT_ATTR_RDONLY 0x01 +#endif +#if defined(MOUNT_ATTR_NOSUID) || (defined(HAVE_DECL_MOUNT_ATTR_NOSUID) && HAVE_DECL_MOUNT_ATTR_NOSUID) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MOUNT_ATTR_NOSUID) == (0x02), "MOUNT_ATTR_NOSUID != 0x02"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MOUNT_ATTR_NOSUID 0x02 +#endif +#if defined(MOUNT_ATTR_NODEV) || (defined(HAVE_DECL_MOUNT_ATTR_NODEV) && HAVE_DECL_MOUNT_ATTR_NODEV) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MOUNT_ATTR_NODEV) == (0x04), "MOUNT_ATTR_NODEV != 0x04"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MOUNT_ATTR_NODEV 0x04 +#endif +#if defined(MOUNT_ATTR_NOEXEC) || (defined(HAVE_DECL_MOUNT_ATTR_NOEXEC) && HAVE_DECL_MOUNT_ATTR_NOEXEC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MOUNT_ATTR_NOEXEC) == (0x08), "MOUNT_ATTR_NOEXEC != 0x08"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MOUNT_ATTR_NOEXEC 0x08 +#endif +#if defined(MOUNT_ATTR_NOATIME) || (defined(HAVE_DECL_MOUNT_ATTR_NOATIME) && HAVE_DECL_MOUNT_ATTR_NOATIME) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MOUNT_ATTR_NOATIME) == (0x10), "MOUNT_ATTR_NOATIME != 0x10"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MOUNT_ATTR_NOATIME 0x10 +#endif +#if defined(MOUNT_ATTR_STRICTATIME) || (defined(HAVE_DECL_MOUNT_ATTR_STRICTATIME) && HAVE_DECL_MOUNT_ATTR_STRICTATIME) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MOUNT_ATTR_STRICTATIME) == (0x20), "MOUNT_ATTR_STRICTATIME != 0x20"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MOUNT_ATTR_STRICTATIME 0x20 +#endif +#if defined(MOUNT_ATTR_NODIRATIME) || (defined(HAVE_DECL_MOUNT_ATTR_NODIRATIME) && HAVE_DECL_MOUNT_ATTR_NODIRATIME) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MOUNT_ATTR_NODIRATIME) == (0x80), "MOUNT_ATTR_NODIRATIME != 0x80"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MOUNT_ATTR_NODIRATIME 0x80 +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat mount_attr_flags in mpers mode + +# else + +static const struct xlat_data mount_attr_flags_xdata[] = { + XLAT(MOUNT_ATTR_RDONLY), + #define XLAT_VAL_0 ((unsigned) (MOUNT_ATTR_RDONLY)) + #define XLAT_STR_0 STRINGIFY(MOUNT_ATTR_RDONLY) + XLAT(MOUNT_ATTR_NOSUID), + #define XLAT_VAL_1 ((unsigned) (MOUNT_ATTR_NOSUID)) + #define XLAT_STR_1 STRINGIFY(MOUNT_ATTR_NOSUID) + XLAT(MOUNT_ATTR_NODEV), + #define XLAT_VAL_2 ((unsigned) (MOUNT_ATTR_NODEV)) + #define XLAT_STR_2 STRINGIFY(MOUNT_ATTR_NODEV) + XLAT(MOUNT_ATTR_NOEXEC), + #define XLAT_VAL_3 ((unsigned) (MOUNT_ATTR_NOEXEC)) + #define XLAT_STR_3 STRINGIFY(MOUNT_ATTR_NOEXEC) + XLAT(MOUNT_ATTR_NOATIME), + #define XLAT_VAL_4 ((unsigned) (MOUNT_ATTR_NOATIME)) + #define XLAT_STR_4 STRINGIFY(MOUNT_ATTR_NOATIME) + XLAT(MOUNT_ATTR_STRICTATIME), + #define XLAT_VAL_5 ((unsigned) (MOUNT_ATTR_STRICTATIME)) + #define XLAT_STR_5 STRINGIFY(MOUNT_ATTR_STRICTATIME) + XLAT(MOUNT_ATTR_NODIRATIME), + #define XLAT_VAL_6 ((unsigned) (MOUNT_ATTR_NODIRATIME)) + #define XLAT_STR_6 STRINGIFY(MOUNT_ATTR_NODIRATIME) +}; +static +const struct xlat mount_attr_flags[1] = { { + .data = mount_attr_flags_xdata, + .size = ARRAY_SIZE(mount_attr_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/mount_attr_flags.in b/xlat/mount_attr_flags.in new file mode 100644 index 00000000..f6356c19 --- /dev/null +++ b/xlat/mount_attr_flags.in @@ -0,0 +1,7 @@ +MOUNT_ATTR_RDONLY 0x01 +MOUNT_ATTR_NOSUID 0x02 +MOUNT_ATTR_NODEV 0x04 +MOUNT_ATTR_NOEXEC 0x08 +MOUNT_ATTR_NOATIME 0x10 +MOUNT_ATTR_STRICTATIME 0x20 +MOUNT_ATTR_NODIRATIME 0x80 diff --git a/xlat/mount_flags.h b/xlat/mount_flags.h index 8c552a42..bf8e9cc9 100644 --- a/xlat/mount_flags.h +++ b/xlat/mount_flags.h @@ -5,213 +5,213 @@ #if defined(MS_RDONLY) || (defined(HAVE_DECL_MS_RDONLY) && HAVE_DECL_MS_RDONLY) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_RDONLY) == (1), "MS_RDONLY != 1"); +static_assert((MS_RDONLY) == ((1U<<0)), "MS_RDONLY != (1U<<0)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_RDONLY 1 +# define MS_RDONLY (1U<<0) #endif #if defined(MS_NOSUID) || (defined(HAVE_DECL_MS_NOSUID) && HAVE_DECL_MS_NOSUID) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_NOSUID) == (2), "MS_NOSUID != 2"); +static_assert((MS_NOSUID) == ((1U<<1)), "MS_NOSUID != (1U<<1)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_NOSUID 2 +# define MS_NOSUID (1U<<1) #endif #if defined(MS_NODEV) || (defined(HAVE_DECL_MS_NODEV) && HAVE_DECL_MS_NODEV) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_NODEV) == (4), "MS_NODEV != 4"); +static_assert((MS_NODEV) == ((1U<<2)), "MS_NODEV != (1U<<2)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_NODEV 4 +# define MS_NODEV (1U<<2) #endif #if defined(MS_NOEXEC) || (defined(HAVE_DECL_MS_NOEXEC) && HAVE_DECL_MS_NOEXEC) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_NOEXEC) == (8), "MS_NOEXEC != 8"); +static_assert((MS_NOEXEC) == ((1U<<3)), "MS_NOEXEC != (1U<<3)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_NOEXEC 8 +# define MS_NOEXEC (1U<<3) #endif #if defined(MS_SYNCHRONOUS) || (defined(HAVE_DECL_MS_SYNCHRONOUS) && HAVE_DECL_MS_SYNCHRONOUS) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_SYNCHRONOUS) == (16), "MS_SYNCHRONOUS != 16"); +static_assert((MS_SYNCHRONOUS) == ((1U<<4)), "MS_SYNCHRONOUS != (1U<<4)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_SYNCHRONOUS 16 +# define MS_SYNCHRONOUS (1U<<4) #endif #if defined(MS_REMOUNT) || (defined(HAVE_DECL_MS_REMOUNT) && HAVE_DECL_MS_REMOUNT) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_REMOUNT) == (32), "MS_REMOUNT != 32"); +static_assert((MS_REMOUNT) == ((1U<<5)), "MS_REMOUNT != (1U<<5)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_REMOUNT 32 +# define MS_REMOUNT (1U<<5) #endif #if defined(MS_MANDLOCK) || (defined(HAVE_DECL_MS_MANDLOCK) && HAVE_DECL_MS_MANDLOCK) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_MANDLOCK) == (64), "MS_MANDLOCK != 64"); +static_assert((MS_MANDLOCK) == ((1U<<6)), "MS_MANDLOCK != (1U<<6)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_MANDLOCK 64 +# define MS_MANDLOCK (1U<<6) #endif #if defined(MS_DIRSYNC) || (defined(HAVE_DECL_MS_DIRSYNC) && HAVE_DECL_MS_DIRSYNC) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_DIRSYNC) == (128), "MS_DIRSYNC != 128"); +static_assert((MS_DIRSYNC) == ((1U<<7)), "MS_DIRSYNC != (1U<<7)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_DIRSYNC 128 +# define MS_DIRSYNC (1U<<7) #endif #if defined(MS_NOATIME) || (defined(HAVE_DECL_MS_NOATIME) && HAVE_DECL_MS_NOATIME) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_NOATIME) == (1024), "MS_NOATIME != 1024"); +static_assert((MS_NOATIME) == ((1U<<10)), "MS_NOATIME != (1U<<10)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_NOATIME 1024 +# define MS_NOATIME (1U<<10) #endif #if defined(MS_NODIRATIME) || (defined(HAVE_DECL_MS_NODIRATIME) && HAVE_DECL_MS_NODIRATIME) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_NODIRATIME) == (2048), "MS_NODIRATIME != 2048"); +static_assert((MS_NODIRATIME) == ((1U<<11)), "MS_NODIRATIME != (1U<<11)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_NODIRATIME 2048 +# define MS_NODIRATIME (1U<<11) #endif #if defined(MS_BIND) || (defined(HAVE_DECL_MS_BIND) && HAVE_DECL_MS_BIND) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_BIND) == (4096), "MS_BIND != 4096"); +static_assert((MS_BIND) == ((1U<<12)), "MS_BIND != (1U<<12)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_BIND 4096 +# define MS_BIND (1U<<12) #endif #if defined(MS_MOVE) || (defined(HAVE_DECL_MS_MOVE) && HAVE_DECL_MS_MOVE) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_MOVE) == (8192), "MS_MOVE != 8192"); +static_assert((MS_MOVE) == ((1U<<13)), "MS_MOVE != (1U<<13)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_MOVE 8192 +# define MS_MOVE (1U<<13) #endif #if defined(MS_REC) || (defined(HAVE_DECL_MS_REC) && HAVE_DECL_MS_REC) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_REC) == (16384), "MS_REC != 16384"); +static_assert((MS_REC) == ((1U<<14)), "MS_REC != (1U<<14)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_REC 16384 +# define MS_REC (1U<<14) #endif #if defined(MS_SILENT) || (defined(HAVE_DECL_MS_SILENT) && HAVE_DECL_MS_SILENT) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_SILENT) == (32768), "MS_SILENT != 32768"); +static_assert((MS_SILENT) == ((1U<<15)), "MS_SILENT != (1U<<15)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_SILENT 32768 +# define MS_SILENT (1U<<15) #endif #if defined(MS_POSIXACL) || (defined(HAVE_DECL_MS_POSIXACL) && HAVE_DECL_MS_POSIXACL) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_POSIXACL) == ((1<<16)), "MS_POSIXACL != (1<<16)"); +static_assert((MS_POSIXACL) == ((1U<<16)), "MS_POSIXACL != (1U<<16)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_POSIXACL (1<<16) +# define MS_POSIXACL (1U<<16) #endif #if defined(MS_UNBINDABLE) || (defined(HAVE_DECL_MS_UNBINDABLE) && HAVE_DECL_MS_UNBINDABLE) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_UNBINDABLE) == ((1<<17)), "MS_UNBINDABLE != (1<<17)"); +static_assert((MS_UNBINDABLE) == ((1U<<17)), "MS_UNBINDABLE != (1U<<17)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_UNBINDABLE (1<<17) +# define MS_UNBINDABLE (1U<<17) #endif #if defined(MS_PRIVATE) || (defined(HAVE_DECL_MS_PRIVATE) && HAVE_DECL_MS_PRIVATE) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_PRIVATE) == ((1<<18)), "MS_PRIVATE != (1<<18)"); +static_assert((MS_PRIVATE) == ((1U<<18)), "MS_PRIVATE != (1U<<18)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_PRIVATE (1<<18) +# define MS_PRIVATE (1U<<18) #endif #if defined(MS_SLAVE) || (defined(HAVE_DECL_MS_SLAVE) && HAVE_DECL_MS_SLAVE) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_SLAVE) == ((1<<19)), "MS_SLAVE != (1<<19)"); +static_assert((MS_SLAVE) == ((1U<<19)), "MS_SLAVE != (1U<<19)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_SLAVE (1<<19) +# define MS_SLAVE (1U<<19) #endif #if defined(MS_SHARED) || (defined(HAVE_DECL_MS_SHARED) && HAVE_DECL_MS_SHARED) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_SHARED) == ((1<<20)), "MS_SHARED != (1<<20)"); +static_assert((MS_SHARED) == ((1U<<20)), "MS_SHARED != (1U<<20)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_SHARED (1<<20) +# define MS_SHARED (1U<<20) #endif #if defined(MS_RELATIME) || (defined(HAVE_DECL_MS_RELATIME) && HAVE_DECL_MS_RELATIME) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_RELATIME) == ((1<<21)), "MS_RELATIME != (1<<21)"); +static_assert((MS_RELATIME) == ((1U<<21)), "MS_RELATIME != (1U<<21)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_RELATIME (1<<21) +# define MS_RELATIME (1U<<21) #endif #if defined(MS_KERNMOUNT) || (defined(HAVE_DECL_MS_KERNMOUNT) && HAVE_DECL_MS_KERNMOUNT) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_KERNMOUNT) == ((1<<22)), "MS_KERNMOUNT != (1<<22)"); +static_assert((MS_KERNMOUNT) == ((1U<<22)), "MS_KERNMOUNT != (1U<<22)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_KERNMOUNT (1<<22) +# define MS_KERNMOUNT (1U<<22) #endif #if defined(MS_I_VERSION) || (defined(HAVE_DECL_MS_I_VERSION) && HAVE_DECL_MS_I_VERSION) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_I_VERSION) == ((1<<23)), "MS_I_VERSION != (1<<23)"); +static_assert((MS_I_VERSION) == ((1U<<23)), "MS_I_VERSION != (1U<<23)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_I_VERSION (1<<23) +# define MS_I_VERSION (1U<<23) #endif #if defined(MS_STRICTATIME) || (defined(HAVE_DECL_MS_STRICTATIME) && HAVE_DECL_MS_STRICTATIME) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_STRICTATIME) == ((1<<24)), "MS_STRICTATIME != (1<<24)"); +static_assert((MS_STRICTATIME) == ((1U<<24)), "MS_STRICTATIME != (1U<<24)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_STRICTATIME (1<<24) +# define MS_STRICTATIME (1U<<24) #endif #if defined(MS_LAZYTIME) || (defined(HAVE_DECL_MS_LAZYTIME) && HAVE_DECL_MS_LAZYTIME) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_LAZYTIME) == ((1<<25)), "MS_LAZYTIME != (1<<25)"); +static_assert((MS_LAZYTIME) == ((1U<<25)), "MS_LAZYTIME != (1U<<25)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_LAZYTIME (1<<25) +# define MS_LAZYTIME (1U<<25) #endif #if defined(MS_SUBMOUNT) || (defined(HAVE_DECL_MS_SUBMOUNT) && HAVE_DECL_MS_SUBMOUNT) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_SUBMOUNT) == ((1<<26)), "MS_SUBMOUNT != (1<<26)"); +static_assert((MS_SUBMOUNT) == ((1U<<26)), "MS_SUBMOUNT != (1U<<26)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_SUBMOUNT (1<<26) +# define MS_SUBMOUNT (1U<<26) #endif #if defined(MS_NOREMOTELOCK) || (defined(HAVE_DECL_MS_NOREMOTELOCK) && HAVE_DECL_MS_NOREMOTELOCK) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_NOREMOTELOCK) == ((1<<27)), "MS_NOREMOTELOCK != (1<<27)"); +static_assert((MS_NOREMOTELOCK) == ((1U<<27)), "MS_NOREMOTELOCK != (1U<<27)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_NOREMOTELOCK (1<<27) +# define MS_NOREMOTELOCK (1U<<27) #endif #if defined(MS_NOSEC) || (defined(HAVE_DECL_MS_NOSEC) && HAVE_DECL_MS_NOSEC) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_NOSEC) == ((1<<28)), "MS_NOSEC != (1<<28)"); +static_assert((MS_NOSEC) == ((1U<<28)), "MS_NOSEC != (1U<<28)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_NOSEC (1<<28) +# define MS_NOSEC (1U<<28) #endif #if defined(MS_BORN) || (defined(HAVE_DECL_MS_BORN) && HAVE_DECL_MS_BORN) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_BORN) == ((1<<29)), "MS_BORN != (1<<29)"); +static_assert((MS_BORN) == ((1U<<29)), "MS_BORN != (1U<<29)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_BORN (1<<29) +# define MS_BORN (1U<<29) #endif #if defined(MS_ACTIVE) || (defined(HAVE_DECL_MS_ACTIVE) && HAVE_DECL_MS_ACTIVE) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_ACTIVE) == ((1<<30)), "MS_ACTIVE != (1<<30)"); +static_assert((MS_ACTIVE) == ((1U<<30)), "MS_ACTIVE != (1U<<30)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_ACTIVE (1<<30) +# define MS_ACTIVE (1U<<30) #endif #if defined(MS_NOUSER) || (defined(HAVE_DECL_MS_NOUSER) && HAVE_DECL_MS_NOUSER) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MS_NOUSER) == ((1<<31)), "MS_NOUSER != (1<<31)"); +static_assert((MS_NOUSER) == ((1U<<31)), "MS_NOUSER != (1U<<31)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define MS_NOUSER (1<<31) +# define MS_NOUSER (1U<<31) #endif #ifndef XLAT_MACROS_ONLY @@ -222,41 +222,349 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat mount_flags[] = { +static const struct xlat_data mount_flags_xdata[] = { XLAT(MS_RDONLY), + #define XLAT_VAL_0 ((unsigned) (MS_RDONLY)) + #define XLAT_STR_0 STRINGIFY(MS_RDONLY) XLAT(MS_NOSUID), + #define XLAT_VAL_1 ((unsigned) (MS_NOSUID)) + #define XLAT_STR_1 STRINGIFY(MS_NOSUID) XLAT(MS_NODEV), + #define XLAT_VAL_2 ((unsigned) (MS_NODEV)) + #define XLAT_STR_2 STRINGIFY(MS_NODEV) XLAT(MS_NOEXEC), + #define XLAT_VAL_3 ((unsigned) (MS_NOEXEC)) + #define XLAT_STR_3 STRINGIFY(MS_NOEXEC) XLAT(MS_SYNCHRONOUS), + #define XLAT_VAL_4 ((unsigned) (MS_SYNCHRONOUS)) + #define XLAT_STR_4 STRINGIFY(MS_SYNCHRONOUS) XLAT(MS_REMOUNT), + #define XLAT_VAL_5 ((unsigned) (MS_REMOUNT)) + #define XLAT_STR_5 STRINGIFY(MS_REMOUNT) XLAT(MS_MANDLOCK), + #define XLAT_VAL_6 ((unsigned) (MS_MANDLOCK)) + #define XLAT_STR_6 STRINGIFY(MS_MANDLOCK) XLAT(MS_DIRSYNC), + #define XLAT_VAL_7 ((unsigned) (MS_DIRSYNC)) + #define XLAT_STR_7 STRINGIFY(MS_DIRSYNC) XLAT(MS_NOATIME), + #define XLAT_VAL_8 ((unsigned) (MS_NOATIME)) + #define XLAT_STR_8 STRINGIFY(MS_NOATIME) XLAT(MS_NODIRATIME), + #define XLAT_VAL_9 ((unsigned) (MS_NODIRATIME)) + #define XLAT_STR_9 STRINGIFY(MS_NODIRATIME) XLAT(MS_BIND), + #define XLAT_VAL_10 ((unsigned) (MS_BIND)) + #define XLAT_STR_10 STRINGIFY(MS_BIND) XLAT(MS_MOVE), + #define XLAT_VAL_11 ((unsigned) (MS_MOVE)) + #define XLAT_STR_11 STRINGIFY(MS_MOVE) XLAT(MS_REC), + #define XLAT_VAL_12 ((unsigned) (MS_REC)) + #define XLAT_STR_12 STRINGIFY(MS_REC) XLAT(MS_SILENT), + #define XLAT_VAL_13 ((unsigned) (MS_SILENT)) + #define XLAT_STR_13 STRINGIFY(MS_SILENT) XLAT(MS_POSIXACL), + #define XLAT_VAL_14 ((unsigned) (MS_POSIXACL)) + #define XLAT_STR_14 STRINGIFY(MS_POSIXACL) XLAT(MS_UNBINDABLE), + #define XLAT_VAL_15 ((unsigned) (MS_UNBINDABLE)) + #define XLAT_STR_15 STRINGIFY(MS_UNBINDABLE) XLAT(MS_PRIVATE), + #define XLAT_VAL_16 ((unsigned) (MS_PRIVATE)) + #define XLAT_STR_16 STRINGIFY(MS_PRIVATE) XLAT(MS_SLAVE), + #define XLAT_VAL_17 ((unsigned) (MS_SLAVE)) + #define XLAT_STR_17 STRINGIFY(MS_SLAVE) XLAT(MS_SHARED), + #define XLAT_VAL_18 ((unsigned) (MS_SHARED)) + #define XLAT_STR_18 STRINGIFY(MS_SHARED) XLAT(MS_RELATIME), + #define XLAT_VAL_19 ((unsigned) (MS_RELATIME)) + #define XLAT_STR_19 STRINGIFY(MS_RELATIME) XLAT(MS_KERNMOUNT), + #define XLAT_VAL_20 ((unsigned) (MS_KERNMOUNT)) + #define XLAT_STR_20 STRINGIFY(MS_KERNMOUNT) XLAT(MS_I_VERSION), + #define XLAT_VAL_21 ((unsigned) (MS_I_VERSION)) + #define XLAT_STR_21 STRINGIFY(MS_I_VERSION) XLAT(MS_STRICTATIME), + #define XLAT_VAL_22 ((unsigned) (MS_STRICTATIME)) + #define XLAT_STR_22 STRINGIFY(MS_STRICTATIME) XLAT(MS_LAZYTIME), + #define XLAT_VAL_23 ((unsigned) (MS_LAZYTIME)) + #define XLAT_STR_23 STRINGIFY(MS_LAZYTIME) XLAT(MS_SUBMOUNT), + #define XLAT_VAL_24 ((unsigned) (MS_SUBMOUNT)) + #define XLAT_STR_24 STRINGIFY(MS_SUBMOUNT) XLAT(MS_NOREMOTELOCK), + #define XLAT_VAL_25 ((unsigned) (MS_NOREMOTELOCK)) + #define XLAT_STR_25 STRINGIFY(MS_NOREMOTELOCK) XLAT(MS_NOSEC), + #define XLAT_VAL_26 ((unsigned) (MS_NOSEC)) + #define XLAT_STR_26 STRINGIFY(MS_NOSEC) XLAT(MS_BORN), + #define XLAT_VAL_27 ((unsigned) (MS_BORN)) + #define XLAT_STR_27 STRINGIFY(MS_BORN) XLAT(MS_ACTIVE), + #define XLAT_VAL_28 ((unsigned) (MS_ACTIVE)) + #define XLAT_STR_28 STRINGIFY(MS_ACTIVE) XLAT(MS_NOUSER), - XLAT_END + #define XLAT_VAL_29 ((unsigned) (MS_NOUSER)) + #define XLAT_STR_29 STRINGIFY(MS_NOUSER) }; +static +const struct xlat mount_flags[1] = { { + .data = mount_flags_xdata, + .size = ARRAY_SIZE(mount_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/mount_flags.in b/xlat/mount_flags.in index e7f3ce18..4d8e4e19 100644 --- a/xlat/mount_flags.in +++ b/xlat/mount_flags.in @@ -1,30 +1,30 @@ -MS_RDONLY 1 -MS_NOSUID 2 -MS_NODEV 4 -MS_NOEXEC 8 -MS_SYNCHRONOUS 16 -MS_REMOUNT 32 -MS_MANDLOCK 64 -MS_DIRSYNC 128 -MS_NOATIME 1024 -MS_NODIRATIME 2048 -MS_BIND 4096 -MS_MOVE 8192 -MS_REC 16384 -MS_SILENT 32768 -MS_POSIXACL (1<<16) -MS_UNBINDABLE (1<<17) -MS_PRIVATE (1<<18) -MS_SLAVE (1<<19) -MS_SHARED (1<<20) -MS_RELATIME (1<<21) -MS_KERNMOUNT (1<<22) -MS_I_VERSION (1<<23) -MS_STRICTATIME (1<<24) -MS_LAZYTIME (1<<25) -MS_SUBMOUNT (1<<26) -MS_NOREMOTELOCK (1<<27) -MS_NOSEC (1<<28) -MS_BORN (1<<29) -MS_ACTIVE (1<<30) -MS_NOUSER (1<<31) +MS_RDONLY (1U<<0) +MS_NOSUID (1U<<1) +MS_NODEV (1U<<2) +MS_NOEXEC (1U<<3) +MS_SYNCHRONOUS (1U<<4) +MS_REMOUNT (1U<<5) +MS_MANDLOCK (1U<<6) +MS_DIRSYNC (1U<<7) +MS_NOATIME (1U<<10) +MS_NODIRATIME (1U<<11) +MS_BIND (1U<<12) +MS_MOVE (1U<<13) +MS_REC (1U<<14) +MS_SILENT (1U<<15) +MS_POSIXACL (1U<<16) +MS_UNBINDABLE (1U<<17) +MS_PRIVATE (1U<<18) +MS_SLAVE (1U<<19) +MS_SHARED (1U<<20) +MS_RELATIME (1U<<21) +MS_KERNMOUNT (1U<<22) +MS_I_VERSION (1U<<23) +MS_STRICTATIME (1U<<24) +MS_LAZYTIME (1U<<25) +MS_SUBMOUNT (1U<<26) +MS_NOREMOTELOCK (1U<<27) +MS_NOSEC (1U<<28) +MS_BORN (1U<<29) +MS_ACTIVE (1U<<30) +MS_NOUSER (1U<<31) diff --git a/xlat/move_mount_flags.h b/xlat/move_mount_flags.h new file mode 100644 index 00000000..0d6c4ec1 --- /dev/null +++ b/xlat/move_mount_flags.h @@ -0,0 +1,138 @@ +/* Generated by ./xlat/gen.sh from ./xlat/move_mount_flags.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined(MOVE_MOUNT_F_SYMLINKS) || (defined(HAVE_DECL_MOVE_MOUNT_F_SYMLINKS) && HAVE_DECL_MOVE_MOUNT_F_SYMLINKS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MOVE_MOUNT_F_SYMLINKS) == (0x01), "MOVE_MOUNT_F_SYMLINKS != 0x01"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MOVE_MOUNT_F_SYMLINKS 0x01 +#endif +#if defined(MOVE_MOUNT_F_AUTOMOUNTS) || (defined(HAVE_DECL_MOVE_MOUNT_F_AUTOMOUNTS) && HAVE_DECL_MOVE_MOUNT_F_AUTOMOUNTS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MOVE_MOUNT_F_AUTOMOUNTS) == (0x02), "MOVE_MOUNT_F_AUTOMOUNTS != 0x02"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MOVE_MOUNT_F_AUTOMOUNTS 0x02 +#endif +#if defined(MOVE_MOUNT_F_EMPTY_PATH) || (defined(HAVE_DECL_MOVE_MOUNT_F_EMPTY_PATH) && HAVE_DECL_MOVE_MOUNT_F_EMPTY_PATH) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MOVE_MOUNT_F_EMPTY_PATH) == (0x04), "MOVE_MOUNT_F_EMPTY_PATH != 0x04"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MOVE_MOUNT_F_EMPTY_PATH 0x04 +#endif +#if defined(MOVE_MOUNT_T_SYMLINKS) || (defined(HAVE_DECL_MOVE_MOUNT_T_SYMLINKS) && HAVE_DECL_MOVE_MOUNT_T_SYMLINKS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MOVE_MOUNT_T_SYMLINKS) == (0x10), "MOVE_MOUNT_T_SYMLINKS != 0x10"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MOVE_MOUNT_T_SYMLINKS 0x10 +#endif +#if defined(MOVE_MOUNT_T_AUTOMOUNTS) || (defined(HAVE_DECL_MOVE_MOUNT_T_AUTOMOUNTS) && HAVE_DECL_MOVE_MOUNT_T_AUTOMOUNTS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MOVE_MOUNT_T_AUTOMOUNTS) == (0x20), "MOVE_MOUNT_T_AUTOMOUNTS != 0x20"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MOVE_MOUNT_T_AUTOMOUNTS 0x20 +#endif +#if defined(MOVE_MOUNT_T_EMPTY_PATH) || (defined(HAVE_DECL_MOVE_MOUNT_T_EMPTY_PATH) && HAVE_DECL_MOVE_MOUNT_T_EMPTY_PATH) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MOVE_MOUNT_T_EMPTY_PATH) == (0x40), "MOVE_MOUNT_T_EMPTY_PATH != 0x40"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MOVE_MOUNT_T_EMPTY_PATH 0x40 +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat move_mount_flags in mpers mode + +# else + +static const struct xlat_data move_mount_flags_xdata[] = { + XLAT(MOVE_MOUNT_F_SYMLINKS), + #define XLAT_VAL_0 ((unsigned) (MOVE_MOUNT_F_SYMLINKS)) + #define XLAT_STR_0 STRINGIFY(MOVE_MOUNT_F_SYMLINKS) + XLAT(MOVE_MOUNT_F_AUTOMOUNTS), + #define XLAT_VAL_1 ((unsigned) (MOVE_MOUNT_F_AUTOMOUNTS)) + #define XLAT_STR_1 STRINGIFY(MOVE_MOUNT_F_AUTOMOUNTS) + XLAT(MOVE_MOUNT_F_EMPTY_PATH), + #define XLAT_VAL_2 ((unsigned) (MOVE_MOUNT_F_EMPTY_PATH)) + #define XLAT_STR_2 STRINGIFY(MOVE_MOUNT_F_EMPTY_PATH) + XLAT(MOVE_MOUNT_T_SYMLINKS), + #define XLAT_VAL_3 ((unsigned) (MOVE_MOUNT_T_SYMLINKS)) + #define XLAT_STR_3 STRINGIFY(MOVE_MOUNT_T_SYMLINKS) + XLAT(MOVE_MOUNT_T_AUTOMOUNTS), + #define XLAT_VAL_4 ((unsigned) (MOVE_MOUNT_T_AUTOMOUNTS)) + #define XLAT_STR_4 STRINGIFY(MOVE_MOUNT_T_AUTOMOUNTS) + XLAT(MOVE_MOUNT_T_EMPTY_PATH), + #define XLAT_VAL_5 ((unsigned) (MOVE_MOUNT_T_EMPTY_PATH)) + #define XLAT_STR_5 STRINGIFY(MOVE_MOUNT_T_EMPTY_PATH) +}; +static +const struct xlat move_mount_flags[1] = { { + .data = move_mount_flags_xdata, + .size = ARRAY_SIZE(move_mount_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/move_mount_flags.in b/xlat/move_mount_flags.in new file mode 100644 index 00000000..441387c4 --- /dev/null +++ b/xlat/move_mount_flags.in @@ -0,0 +1,6 @@ +MOVE_MOUNT_F_SYMLINKS 0x01 +MOVE_MOUNT_F_AUTOMOUNTS 0x02 +MOVE_MOUNT_F_EMPTY_PATH 0x04 +MOVE_MOUNT_T_SYMLINKS 0x10 +MOVE_MOUNT_T_AUTOMOUNTS 0x20 +MOVE_MOUNT_T_EMPTY_PATH 0x40 diff --git a/xlat/move_pages_flags.h b/xlat/move_pages_flags.h index 150d10df..d76e17f3 100644 --- a/xlat/move_pages_flags.h +++ b/xlat/move_pages_flags.h @@ -12,17 +12,45 @@ # else -static -const struct xlat move_pages_flags[] = { +static const struct xlat_data move_pages_flags_xdata[] = { #if defined(MPOL_MF_MOVE) || (defined(HAVE_DECL_MPOL_MF_MOVE) && HAVE_DECL_MPOL_MF_MOVE) XLAT(MPOL_MF_MOVE), + #define XLAT_VAL_0 ((unsigned) (MPOL_MF_MOVE)) + #define XLAT_STR_0 STRINGIFY(MPOL_MF_MOVE) #endif #if defined(MPOL_MF_MOVE_ALL) || (defined(HAVE_DECL_MPOL_MF_MOVE_ALL) && HAVE_DECL_MPOL_MF_MOVE_ALL) XLAT(MPOL_MF_MOVE_ALL), + #define XLAT_VAL_1 ((unsigned) (MPOL_MF_MOVE_ALL)) + #define XLAT_STR_1 STRINGIFY(MPOL_MF_MOVE_ALL) #endif - XLAT_END }; - +static +const struct xlat move_pages_flags[1] = { { + .data = move_pages_flags_xdata, + .size = ARRAY_SIZE(move_pages_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/mpol_mode_flags.h b/xlat/mpol_mode_flags.h new file mode 100644 index 00000000..f3e095f5 --- /dev/null +++ b/xlat/mpol_mode_flags.h @@ -0,0 +1,66 @@ +/* Generated by ./xlat/gen.sh from ./xlat/mpol_mode_flags.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined(MPOL_F_STATIC_NODES) || (defined(HAVE_DECL_MPOL_F_STATIC_NODES) && HAVE_DECL_MPOL_F_STATIC_NODES) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MPOL_F_STATIC_NODES) == ((1U << 15)), "MPOL_F_STATIC_NODES != (1U << 15)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MPOL_F_STATIC_NODES (1U << 15) +#endif +#if defined(MPOL_F_RELATIVE_NODES) || (defined(HAVE_DECL_MPOL_F_RELATIVE_NODES) && HAVE_DECL_MPOL_F_RELATIVE_NODES) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MPOL_F_RELATIVE_NODES) == ((1U << 14)), "MPOL_F_RELATIVE_NODES != (1U << 14)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MPOL_F_RELATIVE_NODES (1U << 14) +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat mpol_mode_flags in mpers mode + +# else + +static const struct xlat_data mpol_mode_flags_xdata[] = { + XLAT(MPOL_F_STATIC_NODES), + #define XLAT_VAL_0 ((unsigned) (MPOL_F_STATIC_NODES)) + #define XLAT_STR_0 STRINGIFY(MPOL_F_STATIC_NODES) + XLAT(MPOL_F_RELATIVE_NODES), + #define XLAT_VAL_1 ((unsigned) (MPOL_F_RELATIVE_NODES)) + #define XLAT_STR_1 STRINGIFY(MPOL_F_RELATIVE_NODES) +}; +static +const struct xlat mpol_mode_flags[1] = { { + .data = mpol_mode_flags_xdata, + .size = ARRAY_SIZE(mpol_mode_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/mpol_mode_flags.in b/xlat/mpol_mode_flags.in new file mode 100644 index 00000000..eeef9534 --- /dev/null +++ b/xlat/mpol_mode_flags.in @@ -0,0 +1,2 @@ +MPOL_F_STATIC_NODES (1U << 15) +MPOL_F_RELATIVE_NODES (1U << 14) diff --git a/xlat/mpol_modes.h b/xlat/mpol_modes.h new file mode 100644 index 00000000..462faeb9 --- /dev/null +++ b/xlat/mpol_modes.h @@ -0,0 +1,120 @@ +/* Generated by ./xlat/gen.sh from ./xlat/mpol_modes.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined(MPOL_DEFAULT) || (defined(HAVE_DECL_MPOL_DEFAULT) && HAVE_DECL_MPOL_DEFAULT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MPOL_DEFAULT) == (0), "MPOL_DEFAULT != 0"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MPOL_DEFAULT 0 +#endif +#if defined(MPOL_PREFERRED) || (defined(HAVE_DECL_MPOL_PREFERRED) && HAVE_DECL_MPOL_PREFERRED) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MPOL_PREFERRED) == (1), "MPOL_PREFERRED != 1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MPOL_PREFERRED 1 +#endif +#if defined(MPOL_BIND) || (defined(HAVE_DECL_MPOL_BIND) && HAVE_DECL_MPOL_BIND) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MPOL_BIND) == (2), "MPOL_BIND != 2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MPOL_BIND 2 +#endif +#if defined(MPOL_INTERLEAVE) || (defined(HAVE_DECL_MPOL_INTERLEAVE) && HAVE_DECL_MPOL_INTERLEAVE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MPOL_INTERLEAVE) == (3), "MPOL_INTERLEAVE != 3"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MPOL_INTERLEAVE 3 +#endif +#if defined(MPOL_LOCAL) || (defined(HAVE_DECL_MPOL_LOCAL) && HAVE_DECL_MPOL_LOCAL) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MPOL_LOCAL) == (4), "MPOL_LOCAL != 4"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MPOL_LOCAL 4 +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat mpol_modes in mpers mode + +# else + +static const struct xlat_data mpol_modes_xdata[] = { + [MPOL_DEFAULT] = XLAT(MPOL_DEFAULT), + #define XLAT_VAL_0 ((unsigned) (MPOL_DEFAULT)) + #define XLAT_STR_0 STRINGIFY(MPOL_DEFAULT) + [MPOL_PREFERRED] = XLAT(MPOL_PREFERRED), + #define XLAT_VAL_1 ((unsigned) (MPOL_PREFERRED)) + #define XLAT_STR_1 STRINGIFY(MPOL_PREFERRED) + [MPOL_BIND] = XLAT(MPOL_BIND), + #define XLAT_VAL_2 ((unsigned) (MPOL_BIND)) + #define XLAT_STR_2 STRINGIFY(MPOL_BIND) + [MPOL_INTERLEAVE] = XLAT(MPOL_INTERLEAVE), + #define XLAT_VAL_3 ((unsigned) (MPOL_INTERLEAVE)) + #define XLAT_STR_3 STRINGIFY(MPOL_INTERLEAVE) + [MPOL_LOCAL] = XLAT(MPOL_LOCAL), + #define XLAT_VAL_4 ((unsigned) (MPOL_LOCAL)) + #define XLAT_STR_4 STRINGIFY(MPOL_LOCAL) +}; +static +const struct xlat mpol_modes[1] = { { + .data = mpol_modes_xdata, + .size = ARRAY_SIZE(mpol_modes_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/mpol_modes.in b/xlat/mpol_modes.in new file mode 100644 index 00000000..93d1b10d --- /dev/null +++ b/xlat/mpol_modes.in @@ -0,0 +1,6 @@ +#value_indexed +MPOL_DEFAULT 0 +MPOL_PREFERRED 1 +MPOL_BIND 2 +MPOL_INTERLEAVE 3 +MPOL_LOCAL 4 diff --git a/xlat/mq_attr_flags.h b/xlat/mq_attr_flags.h index bde6678e..9dfbe94d 100644 --- a/xlat/mq_attr_flags.h +++ b/xlat/mq_attr_flags.h @@ -12,16 +12,34 @@ extern const struct xlat mq_attr_flags[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat mq_attr_flags[] = { +static const struct xlat_data mq_attr_flags_xdata[] = { #if defined(O_NONBLOCK) || (defined(HAVE_DECL_O_NONBLOCK) && HAVE_DECL_O_NONBLOCK) XLAT(O_NONBLOCK), + #define XLAT_VAL_0 ((unsigned) (O_NONBLOCK)) + #define XLAT_STR_0 STRINGIFY(O_NONBLOCK) #endif - XLAT_END }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat mq_attr_flags[1] = { { + .data = mq_attr_flags_xdata, + .size = ARRAY_SIZE(mq_attr_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/mremap_flags.h b/xlat/mremap_flags.h index ad86af7e..6cbdbcce 100644 --- a/xlat/mremap_flags.h +++ b/xlat/mremap_flags.h @@ -3,6 +3,27 @@ #include "gcc_compat.h" #include "static_assert.h" +#if defined(MREMAP_MAYMOVE) || (defined(HAVE_DECL_MREMAP_MAYMOVE) && HAVE_DECL_MREMAP_MAYMOVE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MREMAP_MAYMOVE) == (1), "MREMAP_MAYMOVE != 1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MREMAP_MAYMOVE 1 +#endif +#if defined(MREMAP_FIXED) || (defined(HAVE_DECL_MREMAP_FIXED) && HAVE_DECL_MREMAP_FIXED) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MREMAP_FIXED) == (2), "MREMAP_FIXED != 2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MREMAP_FIXED 2 +#endif +#if defined(MREMAP_DONTUNMAP) || (defined(HAVE_DECL_MREMAP_DONTUNMAP) && HAVE_DECL_MREMAP_DONTUNMAP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((MREMAP_DONTUNMAP) == (4), "MREMAP_DONTUNMAP != 4"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define MREMAP_DONTUNMAP 4 +#endif #ifndef XLAT_MACROS_ONLY @@ -12,17 +33,52 @@ # else -static -const struct xlat mremap_flags[] = { -#if defined(MREMAP_MAYMOVE) || (defined(HAVE_DECL_MREMAP_MAYMOVE) && HAVE_DECL_MREMAP_MAYMOVE) - XLAT(MREMAP_MAYMOVE), -#endif -#if defined(MREMAP_FIXED) || (defined(HAVE_DECL_MREMAP_FIXED) && HAVE_DECL_MREMAP_FIXED) - XLAT(MREMAP_FIXED), -#endif - XLAT_END +static const struct xlat_data mremap_flags_xdata[] = { + XLAT(MREMAP_MAYMOVE), + #define XLAT_VAL_0 ((unsigned) (MREMAP_MAYMOVE)) + #define XLAT_STR_0 STRINGIFY(MREMAP_MAYMOVE) + XLAT(MREMAP_FIXED), + #define XLAT_VAL_1 ((unsigned) (MREMAP_FIXED)) + #define XLAT_STR_1 STRINGIFY(MREMAP_FIXED) + XLAT(MREMAP_DONTUNMAP), + #define XLAT_VAL_2 ((unsigned) (MREMAP_DONTUNMAP)) + #define XLAT_STR_2 STRINGIFY(MREMAP_DONTUNMAP) }; +static +const struct xlat mremap_flags[1] = { { + .data = mremap_flags_xdata, + .size = ARRAY_SIZE(mremap_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/mremap_flags.in b/xlat/mremap_flags.in index be13a6fc..065f6ed8 100644 --- a/xlat/mremap_flags.in +++ b/xlat/mremap_flags.in @@ -1,2 +1,3 @@ -MREMAP_MAYMOVE -MREMAP_FIXED +MREMAP_MAYMOVE 1 +MREMAP_FIXED 2 +MREMAP_DONTUNMAP 4 diff --git a/xlat/msg_flags.h b/xlat/msg_flags.h index a169d9c8..5351e3ae 100644 --- a/xlat/msg_flags.h +++ b/xlat/msg_flags.h @@ -180,32 +180,78 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # ifndef IN_MPERS -const struct xlat msg_flags[] = { +static const struct xlat_data msg_flags_xdata[] = { XLAT(MSG_OOB), + #define XLAT_VAL_0 ((unsigned) (MSG_OOB)) + #define XLAT_STR_0 STRINGIFY(MSG_OOB) XLAT(MSG_PEEK), + #define XLAT_VAL_1 ((unsigned) (MSG_PEEK)) + #define XLAT_STR_1 STRINGIFY(MSG_PEEK) XLAT(MSG_DONTROUTE), + #define XLAT_VAL_2 ((unsigned) (MSG_DONTROUTE)) + #define XLAT_STR_2 STRINGIFY(MSG_DONTROUTE) XLAT(MSG_CTRUNC), + #define XLAT_VAL_3 ((unsigned) (MSG_CTRUNC)) + #define XLAT_STR_3 STRINGIFY(MSG_CTRUNC) XLAT(MSG_PROBE), + #define XLAT_VAL_4 ((unsigned) (MSG_PROBE)) + #define XLAT_STR_4 STRINGIFY(MSG_PROBE) XLAT(MSG_TRUNC), + #define XLAT_VAL_5 ((unsigned) (MSG_TRUNC)) + #define XLAT_STR_5 STRINGIFY(MSG_TRUNC) XLAT(MSG_DONTWAIT), + #define XLAT_VAL_6 ((unsigned) (MSG_DONTWAIT)) + #define XLAT_STR_6 STRINGIFY(MSG_DONTWAIT) XLAT(MSG_EOR), + #define XLAT_VAL_7 ((unsigned) (MSG_EOR)) + #define XLAT_STR_7 STRINGIFY(MSG_EOR) XLAT(MSG_WAITALL), + #define XLAT_VAL_8 ((unsigned) (MSG_WAITALL)) + #define XLAT_STR_8 STRINGIFY(MSG_WAITALL) XLAT(MSG_FIN), + #define XLAT_VAL_9 ((unsigned) (MSG_FIN)) + #define XLAT_STR_9 STRINGIFY(MSG_FIN) XLAT(MSG_SYN), + #define XLAT_VAL_10 ((unsigned) (MSG_SYN)) + #define XLAT_STR_10 STRINGIFY(MSG_SYN) XLAT(MSG_CONFIRM), + #define XLAT_VAL_11 ((unsigned) (MSG_CONFIRM)) + #define XLAT_STR_11 STRINGIFY(MSG_CONFIRM) XLAT(MSG_RST), + #define XLAT_VAL_12 ((unsigned) (MSG_RST)) + #define XLAT_STR_12 STRINGIFY(MSG_RST) XLAT(MSG_ERRQUEUE), + #define XLAT_VAL_13 ((unsigned) (MSG_ERRQUEUE)) + #define XLAT_STR_13 STRINGIFY(MSG_ERRQUEUE) XLAT(MSG_NOSIGNAL), + #define XLAT_VAL_14 ((unsigned) (MSG_NOSIGNAL)) + #define XLAT_STR_14 STRINGIFY(MSG_NOSIGNAL) XLAT(MSG_MORE), + #define XLAT_VAL_15 ((unsigned) (MSG_MORE)) + #define XLAT_STR_15 STRINGIFY(MSG_MORE) XLAT(MSG_WAITFORONE), + #define XLAT_VAL_16 ((unsigned) (MSG_WAITFORONE)) + #define XLAT_STR_16 STRINGIFY(MSG_WAITFORONE) XLAT(MSG_SENDPAGE_NOTLAST), + #define XLAT_VAL_17 ((unsigned) (MSG_SENDPAGE_NOTLAST)) + #define XLAT_STR_17 STRINGIFY(MSG_SENDPAGE_NOTLAST) XLAT(MSG_BATCH), + #define XLAT_VAL_18 ((unsigned) (MSG_BATCH)) + #define XLAT_STR_18 STRINGIFY(MSG_BATCH) XLAT(MSG_NO_SHARED_FRAGS), + #define XLAT_VAL_19 ((unsigned) (MSG_NO_SHARED_FRAGS)) + #define XLAT_STR_19 STRINGIFY(MSG_NO_SHARED_FRAGS) XLAT(MSG_ZEROCOPY), + #define XLAT_VAL_20 ((unsigned) (MSG_ZEROCOPY)) + #define XLAT_STR_20 STRINGIFY(MSG_ZEROCOPY) XLAT(MSG_FASTOPEN), + #define XLAT_VAL_21 ((unsigned) (MSG_FASTOPEN)) + #define XLAT_STR_21 STRINGIFY(MSG_FASTOPEN) XLAT(MSG_CMSG_CLOEXEC), + #define XLAT_VAL_22 ((unsigned) (MSG_CMSG_CLOEXEC)) + #define XLAT_STR_22 STRINGIFY(MSG_CMSG_CLOEXEC) #ifndef STRACE_WORKAROUND_FOR_MSG_CMSG_COMPAT # define STRACE_WORKAROUND_FOR_MSG_CMSG_COMPAT /* @@ -215,9 +261,211 @@ const struct xlat msg_flags[] = { # undef MSG_CMSG_COMPAT #endif XLAT(MSG_CMSG_COMPAT), - XLAT_END + #define XLAT_VAL_23 ((unsigned) (MSG_CMSG_COMPAT)) + #define XLAT_STR_23 STRINGIFY(MSG_CMSG_COMPAT) }; +const struct xlat msg_flags[1] = { { + .data = msg_flags_xdata, + .size = ARRAY_SIZE(msg_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/msgctl_flags.h b/xlat/msgctl_flags.h index 0ac131d3..a38f579e 100644 --- a/xlat/msgctl_flags.h +++ b/xlat/msgctl_flags.h @@ -61,21 +61,98 @@ extern const struct xlat msgctl_flags[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat msgctl_flags[] = { - +static const struct xlat_data msgctl_flags_xdata[] = { XLAT(IPC_RMID), + #define XLAT_VAL_0 ((unsigned) (IPC_RMID)) + #define XLAT_STR_0 STRINGIFY(IPC_RMID) XLAT(IPC_SET), + #define XLAT_VAL_1 ((unsigned) (IPC_SET)) + #define XLAT_STR_1 STRINGIFY(IPC_SET) XLAT(IPC_STAT), + #define XLAT_VAL_2 ((unsigned) (IPC_STAT)) + #define XLAT_STR_2 STRINGIFY(IPC_STAT) XLAT(IPC_INFO), + #define XLAT_VAL_3 ((unsigned) (IPC_INFO)) + #define XLAT_STR_3 STRINGIFY(IPC_INFO) XLAT(MSG_STAT), + #define XLAT_VAL_4 ((unsigned) (MSG_STAT)) + #define XLAT_STR_4 STRINGIFY(MSG_STAT) XLAT(MSG_INFO), + #define XLAT_VAL_5 ((unsigned) (MSG_INFO)) + #define XLAT_STR_5 STRINGIFY(MSG_INFO) XLAT(MSG_STAT_ANY), - XLAT_END + #define XLAT_VAL_6 ((unsigned) (MSG_STAT_ANY)) + #define XLAT_STR_6 STRINGIFY(MSG_STAT_ANY) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat msgctl_flags[1] = { { + .data = msgctl_flags_xdata, + .size = ARRAY_SIZE(msgctl_flags_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/msgctl_flags.in b/xlat/msgctl_flags.in index a81a8192..20da35d8 100644 --- a/xlat/msgctl_flags.in +++ b/xlat/msgctl_flags.in @@ -1,4 +1,4 @@ -/* sort -k2,2g */ +#sorted sort -k2,2g IPC_RMID 0 IPC_SET 1 IPC_STAT 2 diff --git a/xlat/mtd_file_mode_options.h b/xlat/mtd_file_mode_options.h index 0cbeeedb..2a9be56a 100644 --- a/xlat/mtd_file_mode_options.h +++ b/xlat/mtd_file_mode_options.h @@ -12,17 +12,65 @@ extern const struct xlat mtd_file_mode_options[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat mtd_file_mode_options[] = { +static const struct xlat_data mtd_file_mode_options_xdata[] = { XLAT(MTD_FILE_MODE_NORMAL), + #define XLAT_VAL_0 ((unsigned) (MTD_FILE_MODE_NORMAL)) + #define XLAT_STR_0 STRINGIFY(MTD_FILE_MODE_NORMAL) XLAT(MTD_FILE_MODE_OTP_FACTORY), + #define XLAT_VAL_1 ((unsigned) (MTD_FILE_MODE_OTP_FACTORY)) + #define XLAT_STR_1 STRINGIFY(MTD_FILE_MODE_OTP_FACTORY) XLAT(MTD_FILE_MODE_OTP_USER), + #define XLAT_VAL_2 ((unsigned) (MTD_FILE_MODE_OTP_USER)) + #define XLAT_STR_2 STRINGIFY(MTD_FILE_MODE_OTP_USER) XLAT(MTD_FILE_MODE_RAW), - XLAT_END + #define XLAT_VAL_3 ((unsigned) (MTD_FILE_MODE_RAW)) + #define XLAT_STR_3 STRINGIFY(MTD_FILE_MODE_RAW) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat mtd_file_mode_options[1] = { { + .data = mtd_file_mode_options_xdata, + .size = ARRAY_SIZE(mtd_file_mode_options_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/mtd_flags_options.h b/xlat/mtd_flags_options.h index 91d168f3..8ba922b6 100644 --- a/xlat/mtd_flags_options.h +++ b/xlat/mtd_flags_options.h @@ -12,25 +12,73 @@ extern const struct xlat mtd_flags_options[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat mtd_flags_options[] = { +static const struct xlat_data mtd_flags_options_xdata[] = { #if defined(MTD_WRITEABLE) || (defined(HAVE_DECL_MTD_WRITEABLE) && HAVE_DECL_MTD_WRITEABLE) XLAT(MTD_WRITEABLE), + #define XLAT_VAL_0 ((unsigned) (MTD_WRITEABLE)) + #define XLAT_STR_0 STRINGIFY(MTD_WRITEABLE) #endif #if defined(MTD_BIT_WRITEABLE) || (defined(HAVE_DECL_MTD_BIT_WRITEABLE) && HAVE_DECL_MTD_BIT_WRITEABLE) XLAT(MTD_BIT_WRITEABLE), + #define XLAT_VAL_1 ((unsigned) (MTD_BIT_WRITEABLE)) + #define XLAT_STR_1 STRINGIFY(MTD_BIT_WRITEABLE) #endif #if defined(MTD_NO_ERASE) || (defined(HAVE_DECL_MTD_NO_ERASE) && HAVE_DECL_MTD_NO_ERASE) XLAT(MTD_NO_ERASE), + #define XLAT_VAL_2 ((unsigned) (MTD_NO_ERASE)) + #define XLAT_STR_2 STRINGIFY(MTD_NO_ERASE) #endif #if defined(MTD_POWERUP_LOCK) || (defined(HAVE_DECL_MTD_POWERUP_LOCK) && HAVE_DECL_MTD_POWERUP_LOCK) XLAT(MTD_POWERUP_LOCK), + #define XLAT_VAL_3 ((unsigned) (MTD_POWERUP_LOCK)) + #define XLAT_STR_3 STRINGIFY(MTD_POWERUP_LOCK) #endif - XLAT_END }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat mtd_flags_options[1] = { { + .data = mtd_flags_options_xdata, + .size = ARRAY_SIZE(mtd_flags_options_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/mtd_mode_options.h b/xlat/mtd_mode_options.h index 89a238f0..3573ac22 100644 --- a/xlat/mtd_mode_options.h +++ b/xlat/mtd_mode_options.h @@ -12,16 +12,54 @@ extern const struct xlat mtd_mode_options[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat mtd_mode_options[] = { +static const struct xlat_data mtd_mode_options_xdata[] = { XLAT(MTD_OPS_PLACE_OOB), + #define XLAT_VAL_0 ((unsigned) (MTD_OPS_PLACE_OOB)) + #define XLAT_STR_0 STRINGIFY(MTD_OPS_PLACE_OOB) XLAT(MTD_OPS_AUTO_OOB), + #define XLAT_VAL_1 ((unsigned) (MTD_OPS_AUTO_OOB)) + #define XLAT_STR_1 STRINGIFY(MTD_OPS_AUTO_OOB) XLAT(MTD_OPS_RAW), - XLAT_END + #define XLAT_VAL_2 ((unsigned) (MTD_OPS_RAW)) + #define XLAT_STR_2 STRINGIFY(MTD_OPS_RAW) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat mtd_mode_options[1] = { { + .data = mtd_mode_options_xdata, + .size = ARRAY_SIZE(mtd_mode_options_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/mtd_nandecc_options.h b/xlat/mtd_nandecc_options.h index 08a37f52..a362db82 100644 --- a/xlat/mtd_nandecc_options.h +++ b/xlat/mtd_nandecc_options.h @@ -12,28 +12,86 @@ extern const struct xlat mtd_nandecc_options[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat mtd_nandecc_options[] = { +static const struct xlat_data mtd_nandecc_options_xdata[] = { #if defined(MTD_NANDECC_OFF) || (defined(HAVE_DECL_MTD_NANDECC_OFF) && HAVE_DECL_MTD_NANDECC_OFF) XLAT(MTD_NANDECC_OFF), + #define XLAT_VAL_0 ((unsigned) (MTD_NANDECC_OFF)) + #define XLAT_STR_0 STRINGIFY(MTD_NANDECC_OFF) #endif #if defined(MTD_NANDECC_PLACE) || (defined(HAVE_DECL_MTD_NANDECC_PLACE) && HAVE_DECL_MTD_NANDECC_PLACE) XLAT(MTD_NANDECC_PLACE), + #define XLAT_VAL_1 ((unsigned) (MTD_NANDECC_PLACE)) + #define XLAT_STR_1 STRINGIFY(MTD_NANDECC_PLACE) #endif #if defined(MTD_NANDECC_AUTOPLACE) || (defined(HAVE_DECL_MTD_NANDECC_AUTOPLACE) && HAVE_DECL_MTD_NANDECC_AUTOPLACE) XLAT(MTD_NANDECC_AUTOPLACE), + #define XLAT_VAL_2 ((unsigned) (MTD_NANDECC_AUTOPLACE)) + #define XLAT_STR_2 STRINGIFY(MTD_NANDECC_AUTOPLACE) #endif #if defined(MTD_NANDECC_PLACEONLY) || (defined(HAVE_DECL_MTD_NANDECC_PLACEONLY) && HAVE_DECL_MTD_NANDECC_PLACEONLY) XLAT(MTD_NANDECC_PLACEONLY), + #define XLAT_VAL_3 ((unsigned) (MTD_NANDECC_PLACEONLY)) + #define XLAT_STR_3 STRINGIFY(MTD_NANDECC_PLACEONLY) #endif #if defined(MTD_NANDECC_AUTOPL_USR) || (defined(HAVE_DECL_MTD_NANDECC_AUTOPL_USR) && HAVE_DECL_MTD_NANDECC_AUTOPL_USR) XLAT(MTD_NANDECC_AUTOPL_USR), + #define XLAT_VAL_4 ((unsigned) (MTD_NANDECC_AUTOPL_USR)) + #define XLAT_STR_4 STRINGIFY(MTD_NANDECC_AUTOPL_USR) #endif - XLAT_END }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat mtd_nandecc_options[1] = { { + .data = mtd_nandecc_options_xdata, + .size = ARRAY_SIZE(mtd_nandecc_options_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/mtd_otp_options.h b/xlat/mtd_otp_options.h index 071fc5c3..2d4b6a40 100644 --- a/xlat/mtd_otp_options.h +++ b/xlat/mtd_otp_options.h @@ -12,22 +12,60 @@ extern const struct xlat mtd_otp_options[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat mtd_otp_options[] = { +static const struct xlat_data mtd_otp_options_xdata[] = { #if defined(MTD_OTP_OFF) || (defined(HAVE_DECL_MTD_OTP_OFF) && HAVE_DECL_MTD_OTP_OFF) XLAT(MTD_OTP_OFF), + #define XLAT_VAL_0 ((unsigned) (MTD_OTP_OFF)) + #define XLAT_STR_0 STRINGIFY(MTD_OTP_OFF) #endif #if defined(MTD_OTP_FACTORY) || (defined(HAVE_DECL_MTD_OTP_FACTORY) && HAVE_DECL_MTD_OTP_FACTORY) XLAT(MTD_OTP_FACTORY), + #define XLAT_VAL_1 ((unsigned) (MTD_OTP_FACTORY)) + #define XLAT_STR_1 STRINGIFY(MTD_OTP_FACTORY) #endif #if defined(MTD_OTP_USER) || (defined(HAVE_DECL_MTD_OTP_USER) && HAVE_DECL_MTD_OTP_USER) XLAT(MTD_OTP_USER), + #define XLAT_VAL_2 ((unsigned) (MTD_OTP_USER)) + #define XLAT_STR_2 STRINGIFY(MTD_OTP_USER) #endif - XLAT_END }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat mtd_otp_options[1] = { { + .data = mtd_otp_options_xdata, + .size = ARRAY_SIZE(mtd_otp_options_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/mtd_type_options.h b/xlat/mtd_type_options.h index c6e0ecf1..dfe51cf1 100644 --- a/xlat/mtd_type_options.h +++ b/xlat/mtd_type_options.h @@ -12,37 +12,125 @@ extern const struct xlat mtd_type_options[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat mtd_type_options[] = { +static const struct xlat_data mtd_type_options_xdata[] = { #if defined(MTD_ABSENT) || (defined(HAVE_DECL_MTD_ABSENT) && HAVE_DECL_MTD_ABSENT) XLAT(MTD_ABSENT), + #define XLAT_VAL_0 ((unsigned) (MTD_ABSENT)) + #define XLAT_STR_0 STRINGIFY(MTD_ABSENT) #endif #if defined(MTD_RAM) || (defined(HAVE_DECL_MTD_RAM) && HAVE_DECL_MTD_RAM) XLAT(MTD_RAM), + #define XLAT_VAL_1 ((unsigned) (MTD_RAM)) + #define XLAT_STR_1 STRINGIFY(MTD_RAM) #endif #if defined(MTD_ROM) || (defined(HAVE_DECL_MTD_ROM) && HAVE_DECL_MTD_ROM) XLAT(MTD_ROM), + #define XLAT_VAL_2 ((unsigned) (MTD_ROM)) + #define XLAT_STR_2 STRINGIFY(MTD_ROM) #endif #if defined(MTD_NORFLASH) || (defined(HAVE_DECL_MTD_NORFLASH) && HAVE_DECL_MTD_NORFLASH) XLAT(MTD_NORFLASH), + #define XLAT_VAL_3 ((unsigned) (MTD_NORFLASH)) + #define XLAT_STR_3 STRINGIFY(MTD_NORFLASH) #endif #if defined(MTD_NANDFLASH) || (defined(HAVE_DECL_MTD_NANDFLASH) && HAVE_DECL_MTD_NANDFLASH) XLAT(MTD_NANDFLASH), + #define XLAT_VAL_4 ((unsigned) (MTD_NANDFLASH)) + #define XLAT_STR_4 STRINGIFY(MTD_NANDFLASH) #endif #if defined(MTD_DATAFLASH) || (defined(HAVE_DECL_MTD_DATAFLASH) && HAVE_DECL_MTD_DATAFLASH) XLAT(MTD_DATAFLASH), + #define XLAT_VAL_5 ((unsigned) (MTD_DATAFLASH)) + #define XLAT_STR_5 STRINGIFY(MTD_DATAFLASH) #endif #if defined(MTD_UBIVOLUME) || (defined(HAVE_DECL_MTD_UBIVOLUME) && HAVE_DECL_MTD_UBIVOLUME) XLAT(MTD_UBIVOLUME), + #define XLAT_VAL_6 ((unsigned) (MTD_UBIVOLUME)) + #define XLAT_STR_6 STRINGIFY(MTD_UBIVOLUME) #endif #if defined(MTD_MLCNANDFLASH) || (defined(HAVE_DECL_MTD_MLCNANDFLASH) && HAVE_DECL_MTD_MLCNANDFLASH) XLAT(MTD_MLCNANDFLASH), + #define XLAT_VAL_7 ((unsigned) (MTD_MLCNANDFLASH)) + #define XLAT_STR_7 STRINGIFY(MTD_MLCNANDFLASH) #endif - XLAT_END }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat mtd_type_options[1] = { { + .data = mtd_type_options_xdata, + .size = ARRAY_SIZE(mtd_type_options_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/multicast_router_types.h b/xlat/multicast_router_types.h index e1802054..022f4c8f 100644 --- a/xlat/multicast_router_types.h +++ b/xlat/multicast_router_types.h @@ -40,15 +40,63 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat multicast_router_types[] = { - XLAT(MDB_RTR_TYPE_DISABLED), - XLAT(MDB_RTR_TYPE_TEMP_QUERY), - XLAT(MDB_RTR_TYPE_PERM), - XLAT(MDB_RTR_TYPE_TEMP), - XLAT_END +static const struct xlat_data multicast_router_types_xdata[] = { + [MDB_RTR_TYPE_DISABLED] = XLAT(MDB_RTR_TYPE_DISABLED), + #define XLAT_VAL_0 ((unsigned) (MDB_RTR_TYPE_DISABLED)) + #define XLAT_STR_0 STRINGIFY(MDB_RTR_TYPE_DISABLED) + [MDB_RTR_TYPE_TEMP_QUERY] = XLAT(MDB_RTR_TYPE_TEMP_QUERY), + #define XLAT_VAL_1 ((unsigned) (MDB_RTR_TYPE_TEMP_QUERY)) + #define XLAT_STR_1 STRINGIFY(MDB_RTR_TYPE_TEMP_QUERY) + [MDB_RTR_TYPE_PERM] = XLAT(MDB_RTR_TYPE_PERM), + #define XLAT_VAL_2 ((unsigned) (MDB_RTR_TYPE_PERM)) + #define XLAT_STR_2 STRINGIFY(MDB_RTR_TYPE_PERM) + [MDB_RTR_TYPE_TEMP] = XLAT(MDB_RTR_TYPE_TEMP), + #define XLAT_VAL_3 ((unsigned) (MDB_RTR_TYPE_TEMP)) + #define XLAT_STR_3 STRINGIFY(MDB_RTR_TYPE_TEMP) }; +static +const struct xlat multicast_router_types[1] = { { + .data = multicast_router_types_xdata, + .size = ARRAY_SIZE(multicast_router_types_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/multicast_router_types.in b/xlat/multicast_router_types.in index 6a5c03c3..b53ea789 100644 --- a/xlat/multicast_router_types.in +++ b/xlat/multicast_router_types.in @@ -1,3 +1,4 @@ +#value_indexed MDB_RTR_TYPE_DISABLED 0 MDB_RTR_TYPE_TEMP_QUERY 1 MDB_RTR_TYPE_PERM 2 diff --git a/xlat/name_to_handle_at_flags.h b/xlat/name_to_handle_at_flags.h index 87e63ae5..a56690ae 100644 --- a/xlat/name_to_handle_at_flags.h +++ b/xlat/name_to_handle_at_flags.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat name_to_handle_at_flags[] = { +static const struct xlat_data name_to_handle_at_flags_xdata[] = { XLAT(AT_SYMLINK_FOLLOW), + #define XLAT_VAL_0 ((unsigned) (AT_SYMLINK_FOLLOW)) + #define XLAT_STR_0 STRINGIFY(AT_SYMLINK_FOLLOW) XLAT(AT_EMPTY_PATH), - XLAT_END + #define XLAT_VAL_1 ((unsigned) (AT_EMPTY_PATH)) + #define XLAT_STR_1 STRINGIFY(AT_EMPTY_PATH) }; +static +const struct xlat name_to_handle_at_flags[1] = { { + .data = name_to_handle_at_flags_xdata, + .size = ARRAY_SIZE(name_to_handle_at_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/nbd_ioctl_cmds.h b/xlat/nbd_ioctl_cmds.h index 840dc8e2..eca95876 100644 --- a/xlat/nbd_ioctl_cmds.h +++ b/xlat/nbd_ioctl_cmds.h @@ -89,22 +89,140 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat nbd_ioctl_cmds[] = { +static const struct xlat_data nbd_ioctl_cmds_xdata[] = { XLAT(NBD_SET_SOCK), + #define XLAT_VAL_0 ((unsigned) (NBD_SET_SOCK)) + #define XLAT_STR_0 STRINGIFY(NBD_SET_SOCK) XLAT(NBD_SET_BLKSIZE), + #define XLAT_VAL_1 ((unsigned) (NBD_SET_BLKSIZE)) + #define XLAT_STR_1 STRINGIFY(NBD_SET_BLKSIZE) XLAT(NBD_SET_SIZE), + #define XLAT_VAL_2 ((unsigned) (NBD_SET_SIZE)) + #define XLAT_STR_2 STRINGIFY(NBD_SET_SIZE) XLAT(NBD_DO_IT), + #define XLAT_VAL_3 ((unsigned) (NBD_DO_IT)) + #define XLAT_STR_3 STRINGIFY(NBD_DO_IT) XLAT(NBD_CLEAR_SOCK), + #define XLAT_VAL_4 ((unsigned) (NBD_CLEAR_SOCK)) + #define XLAT_STR_4 STRINGIFY(NBD_CLEAR_SOCK) XLAT(NBD_CLEAR_QUE), + #define XLAT_VAL_5 ((unsigned) (NBD_CLEAR_QUE)) + #define XLAT_STR_5 STRINGIFY(NBD_CLEAR_QUE) XLAT(NBD_PRINT_DEBUG), + #define XLAT_VAL_6 ((unsigned) (NBD_PRINT_DEBUG)) + #define XLAT_STR_6 STRINGIFY(NBD_PRINT_DEBUG) XLAT(NBD_SET_SIZE_BLOCKS), + #define XLAT_VAL_7 ((unsigned) (NBD_SET_SIZE_BLOCKS)) + #define XLAT_STR_7 STRINGIFY(NBD_SET_SIZE_BLOCKS) XLAT(NBD_DISCONNECT), + #define XLAT_VAL_8 ((unsigned) (NBD_DISCONNECT)) + #define XLAT_STR_8 STRINGIFY(NBD_DISCONNECT) XLAT(NBD_SET_TIMEOUT), + #define XLAT_VAL_9 ((unsigned) (NBD_SET_TIMEOUT)) + #define XLAT_STR_9 STRINGIFY(NBD_SET_TIMEOUT) XLAT(NBD_SET_FLAGS), - XLAT_END + #define XLAT_VAL_10 ((unsigned) (NBD_SET_FLAGS)) + #define XLAT_STR_10 STRINGIFY(NBD_SET_FLAGS) }; +static +const struct xlat nbd_ioctl_cmds[1] = { { + .data = nbd_ioctl_cmds_xdata, + .size = ARRAY_SIZE(nbd_ioctl_cmds_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/nbd_ioctl_flags.h b/xlat/nbd_ioctl_flags.h index a1311a28..d886225a 100644 --- a/xlat/nbd_ioctl_flags.h +++ b/xlat/nbd_ioctl_flags.h @@ -89,8 +89,7 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat nbd_ioctl_flags[] = { +static const struct xlat_data nbd_ioctl_flags_xdata[] = { /* * Some flags are not defined in , but are passed anyway. * These flags are sent from nbd-server to the client, and the client @@ -100,29 +99,148 @@ const struct xlat nbd_ioctl_flags[] = { XLAT(NBD_FLAG_HAS_FLAGS), + #define XLAT_VAL_0 ((unsigned) (NBD_FLAG_HAS_FLAGS)) + #define XLAT_STR_0 STRINGIFY(NBD_FLAG_HAS_FLAGS) XLAT(NBD_FLAG_READ_ONLY), + #define XLAT_VAL_1 ((unsigned) (NBD_FLAG_READ_ONLY)) + #define XLAT_STR_1 STRINGIFY(NBD_FLAG_READ_ONLY) XLAT(NBD_FLAG_SEND_FLUSH), + #define XLAT_VAL_2 ((unsigned) (NBD_FLAG_SEND_FLUSH)) + #define XLAT_STR_2 STRINGIFY(NBD_FLAG_SEND_FLUSH) XLAT(NBD_FLAG_SEND_FUA), + #define XLAT_VAL_3 ((unsigned) (NBD_FLAG_SEND_FUA)) + #define XLAT_STR_3 STRINGIFY(NBD_FLAG_SEND_FUA) XLAT(NBD_FLAG_ROTATIONAL), + #define XLAT_VAL_4 ((unsigned) (NBD_FLAG_ROTATIONAL)) + #define XLAT_STR_4 STRINGIFY(NBD_FLAG_ROTATIONAL) XLAT(NBD_FLAG_SEND_TRIM), + #define XLAT_VAL_5 ((unsigned) (NBD_FLAG_SEND_TRIM)) + #define XLAT_STR_5 STRINGIFY(NBD_FLAG_SEND_TRIM) XLAT(NBD_FLAG_SEND_WRITE_ZEROES), + #define XLAT_VAL_6 ((unsigned) (NBD_FLAG_SEND_WRITE_ZEROES)) + #define XLAT_STR_6 STRINGIFY(NBD_FLAG_SEND_WRITE_ZEROES) XLAT(NBD_FLAG_SEND_DF), + #define XLAT_VAL_7 ((unsigned) (NBD_FLAG_SEND_DF)) + #define XLAT_STR_7 STRINGIFY(NBD_FLAG_SEND_DF) XLAT(NBD_FLAG_CAN_MULTI_CONN), + #define XLAT_VAL_8 ((unsigned) (NBD_FLAG_CAN_MULTI_CONN)) + #define XLAT_STR_8 STRINGIFY(NBD_FLAG_CAN_MULTI_CONN) XLAT(NBD_FLAG_SEND_RESIZE), + #define XLAT_VAL_9 ((unsigned) (NBD_FLAG_SEND_RESIZE)) + #define XLAT_STR_9 STRINGIFY(NBD_FLAG_SEND_RESIZE) XLAT(NBD_FLAG_SEND_CACHE), - XLAT_END + #define XLAT_VAL_10 ((unsigned) (NBD_FLAG_SEND_CACHE)) + #define XLAT_STR_10 STRINGIFY(NBD_FLAG_SEND_CACHE) }; - +static +const struct xlat nbd_ioctl_flags[1] = { { + .data = nbd_ioctl_flags_xdata, + .size = ARRAY_SIZE(nbd_ioctl_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/neighbor_cache_entry_flags.h b/xlat/neighbor_cache_entry_flags.h index 79982c98..216cb76f 100644 --- a/xlat/neighbor_cache_entry_flags.h +++ b/xlat/neighbor_cache_entry_flags.h @@ -68,19 +68,107 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat neighbor_cache_entry_flags[] = { +static const struct xlat_data neighbor_cache_entry_flags_xdata[] = { XLAT(NTF_USE), + #define XLAT_VAL_0 ((unsigned) (NTF_USE)) + #define XLAT_STR_0 STRINGIFY(NTF_USE) XLAT(NTF_SELF), + #define XLAT_VAL_1 ((unsigned) (NTF_SELF)) + #define XLAT_STR_1 STRINGIFY(NTF_SELF) XLAT(NTF_MASTER), + #define XLAT_VAL_2 ((unsigned) (NTF_MASTER)) + #define XLAT_STR_2 STRINGIFY(NTF_MASTER) XLAT(NTF_PROXY), + #define XLAT_VAL_3 ((unsigned) (NTF_PROXY)) + #define XLAT_STR_3 STRINGIFY(NTF_PROXY) XLAT(NTF_EXT_LEARNED), + #define XLAT_VAL_4 ((unsigned) (NTF_EXT_LEARNED)) + #define XLAT_STR_4 STRINGIFY(NTF_EXT_LEARNED) XLAT(NTF_OFFLOADED), + #define XLAT_VAL_5 ((unsigned) (NTF_OFFLOADED)) + #define XLAT_STR_5 STRINGIFY(NTF_OFFLOADED) XLAT(NTF_STICKY), + #define XLAT_VAL_6 ((unsigned) (NTF_STICKY)) + #define XLAT_STR_6 STRINGIFY(NTF_STICKY) XLAT(NTF_ROUTER), - XLAT_END + #define XLAT_VAL_7 ((unsigned) (NTF_ROUTER)) + #define XLAT_STR_7 STRINGIFY(NTF_ROUTER) }; +static +const struct xlat neighbor_cache_entry_flags[1] = { { + .data = neighbor_cache_entry_flags_xdata, + .size = ARRAY_SIZE(neighbor_cache_entry_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/neighbor_cache_entry_states.h b/xlat/neighbor_cache_entry_states.h index d111697c..ae00ad57 100644 --- a/xlat/neighbor_cache_entry_states.h +++ b/xlat/neighbor_cache_entry_states.h @@ -12,38 +12,136 @@ # else -static -const struct xlat neighbor_cache_entry_states[] = { +static const struct xlat_data neighbor_cache_entry_states_xdata[] = { #if defined(NUD_INCOMPLETE) || (defined(HAVE_DECL_NUD_INCOMPLETE) && HAVE_DECL_NUD_INCOMPLETE) XLAT(NUD_INCOMPLETE), + #define XLAT_VAL_0 ((unsigned) (NUD_INCOMPLETE)) + #define XLAT_STR_0 STRINGIFY(NUD_INCOMPLETE) #endif #if defined(NUD_REACHABLE) || (defined(HAVE_DECL_NUD_REACHABLE) && HAVE_DECL_NUD_REACHABLE) XLAT(NUD_REACHABLE), + #define XLAT_VAL_1 ((unsigned) (NUD_REACHABLE)) + #define XLAT_STR_1 STRINGIFY(NUD_REACHABLE) #endif #if defined(NUD_STALE) || (defined(HAVE_DECL_NUD_STALE) && HAVE_DECL_NUD_STALE) XLAT(NUD_STALE), + #define XLAT_VAL_2 ((unsigned) (NUD_STALE)) + #define XLAT_STR_2 STRINGIFY(NUD_STALE) #endif #if defined(NUD_DELAY) || (defined(HAVE_DECL_NUD_DELAY) && HAVE_DECL_NUD_DELAY) XLAT(NUD_DELAY), + #define XLAT_VAL_3 ((unsigned) (NUD_DELAY)) + #define XLAT_STR_3 STRINGIFY(NUD_DELAY) #endif #if defined(NUD_PROBE) || (defined(HAVE_DECL_NUD_PROBE) && HAVE_DECL_NUD_PROBE) XLAT(NUD_PROBE), + #define XLAT_VAL_4 ((unsigned) (NUD_PROBE)) + #define XLAT_STR_4 STRINGIFY(NUD_PROBE) #endif #if defined(NUD_FAILED) || (defined(HAVE_DECL_NUD_FAILED) && HAVE_DECL_NUD_FAILED) XLAT(NUD_FAILED), + #define XLAT_VAL_5 ((unsigned) (NUD_FAILED)) + #define XLAT_STR_5 STRINGIFY(NUD_FAILED) #endif #if defined(NUD_NOARP) || (defined(HAVE_DECL_NUD_NOARP) && HAVE_DECL_NUD_NOARP) XLAT(NUD_NOARP), + #define XLAT_VAL_6 ((unsigned) (NUD_NOARP)) + #define XLAT_STR_6 STRINGIFY(NUD_NOARP) #endif #if defined(NUD_PERMANENT) || (defined(HAVE_DECL_NUD_PERMANENT) && HAVE_DECL_NUD_PERMANENT) XLAT(NUD_PERMANENT), + #define XLAT_VAL_7 ((unsigned) (NUD_PERMANENT)) + #define XLAT_STR_7 STRINGIFY(NUD_PERMANENT) #endif #if defined(NUD_NONE) || (defined(HAVE_DECL_NUD_NONE) && HAVE_DECL_NUD_NONE) XLAT(NUD_NONE), + #define XLAT_VAL_8 ((unsigned) (NUD_NONE)) + #define XLAT_STR_8 STRINGIFY(NUD_NONE) #endif - XLAT_END }; +static +const struct xlat neighbor_cache_entry_states[1] = { { + .data = neighbor_cache_entry_states_xdata, + .size = ARRAY_SIZE(neighbor_cache_entry_states_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/netfilter_versions.h b/xlat/netfilter_versions.h index 9ccfd5a5..5c8b0935 100644 --- a/xlat/netfilter_versions.h +++ b/xlat/netfilter_versions.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat netfilter_versions[] = { - XLAT(NFNETLINK_V0), - XLAT(NFNETLINK_V1), - XLAT_END +static const struct xlat_data netfilter_versions_xdata[] = { + [NFNETLINK_V0] = XLAT(NFNETLINK_V0), + #define XLAT_VAL_0 ((unsigned) (NFNETLINK_V0)) + #define XLAT_STR_0 STRINGIFY(NFNETLINK_V0) + [NFNETLINK_V1] = XLAT(NFNETLINK_V1), + #define XLAT_VAL_1 ((unsigned) (NFNETLINK_V1)) + #define XLAT_STR_1 STRINGIFY(NFNETLINK_V1) }; +static +const struct xlat netfilter_versions[1] = { { + .data = netfilter_versions_xdata, + .size = ARRAY_SIZE(netfilter_versions_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/netfilter_versions.in b/xlat/netfilter_versions.in index 09afc8e9..981ab4ac 100644 --- a/xlat/netfilter_versions.in +++ b/xlat/netfilter_versions.in @@ -1,2 +1,3 @@ +#value_indexed NFNETLINK_V0 0 NFNETLINK_V1 1 diff --git a/xlat/netlink_ack_flags.h b/xlat/netlink_ack_flags.h index dbe197d7..4670079f 100644 --- a/xlat/netlink_ack_flags.h +++ b/xlat/netlink_ack_flags.h @@ -3,6 +3,20 @@ #include "gcc_compat.h" #include "static_assert.h" +#if defined(NLM_F_CAPPED) || (defined(HAVE_DECL_NLM_F_CAPPED) && HAVE_DECL_NLM_F_CAPPED) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((NLM_F_CAPPED) == (0x100), "NLM_F_CAPPED != 0x100"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define NLM_F_CAPPED 0x100 +#endif +#if defined(NLM_F_ACK_TLVS) || (defined(HAVE_DECL_NLM_F_ACK_TLVS) && HAVE_DECL_NLM_F_ACK_TLVS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((NLM_F_ACK_TLVS) == (0x200), "NLM_F_ACK_TLVS != 0x200"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define NLM_F_ACK_TLVS 0x200 +#endif #ifndef XLAT_MACROS_ONLY @@ -12,17 +26,41 @@ # else -static -const struct xlat netlink_ack_flags[] = { -#if defined(NLM_F_CAPPED) || (defined(HAVE_DECL_NLM_F_CAPPED) && HAVE_DECL_NLM_F_CAPPED) - XLAT(NLM_F_CAPPED), -#endif -#if defined(NLM_F_ACK_TLVS) || (defined(HAVE_DECL_NLM_F_ACK_TLVS) && HAVE_DECL_NLM_F_ACK_TLVS) - XLAT(NLM_F_ACK_TLVS), -#endif - XLAT_END +static const struct xlat_data netlink_ack_flags_xdata[] = { + XLAT(NLM_F_CAPPED), + #define XLAT_VAL_0 ((unsigned) (NLM_F_CAPPED)) + #define XLAT_STR_0 STRINGIFY(NLM_F_CAPPED) + XLAT(NLM_F_ACK_TLVS), + #define XLAT_VAL_1 ((unsigned) (NLM_F_ACK_TLVS)) + #define XLAT_STR_1 STRINGIFY(NLM_F_ACK_TLVS) }; +static +const struct xlat netlink_ack_flags[1] = { { + .data = netlink_ack_flags_xdata, + .size = ARRAY_SIZE(netlink_ack_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/netlink_ack_flags.in b/xlat/netlink_ack_flags.in index 2aabb840..8dd223ac 100644 --- a/xlat/netlink_ack_flags.in +++ b/xlat/netlink_ack_flags.in @@ -1,2 +1,2 @@ -NLM_F_CAPPED -NLM_F_ACK_TLVS +NLM_F_CAPPED 0x100 +NLM_F_ACK_TLVS 0x200 diff --git a/xlat/netlink_delete_flags.h b/xlat/netlink_delete_flags.h index 4fe0db55..a7b99df9 100644 --- a/xlat/netlink_delete_flags.h +++ b/xlat/netlink_delete_flags.h @@ -12,14 +12,32 @@ # else -static -const struct xlat netlink_delete_flags[] = { +static const struct xlat_data netlink_delete_flags_xdata[] = { #if defined(NLM_F_NONREC) || (defined(HAVE_DECL_NLM_F_NONREC) && HAVE_DECL_NLM_F_NONREC) XLAT(NLM_F_NONREC), + #define XLAT_VAL_0 ((unsigned) (NLM_F_NONREC)) + #define XLAT_STR_0 STRINGIFY(NLM_F_NONREC) #endif - XLAT_END }; - +static +const struct xlat netlink_delete_flags[1] = { { + .data = netlink_delete_flags_xdata, + .size = ARRAY_SIZE(netlink_delete_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/netlink_diag_attrs.h b/xlat/netlink_diag_attrs.h index fd8cd4f2..33e72d39 100644 --- a/xlat/netlink_diag_attrs.h +++ b/xlat/netlink_diag_attrs.h @@ -12,16 +12,74 @@ # else -static -const struct xlat netlink_diag_attrs[] = { +static const struct xlat_data netlink_diag_attrs_xdata[] = { XLAT(NETLINK_DIAG_MEMINFO), + #define XLAT_VAL_0 ((unsigned) (NETLINK_DIAG_MEMINFO)) + #define XLAT_STR_0 STRINGIFY(NETLINK_DIAG_MEMINFO) XLAT(NETLINK_DIAG_GROUPS), + #define XLAT_VAL_1 ((unsigned) (NETLINK_DIAG_GROUPS)) + #define XLAT_STR_1 STRINGIFY(NETLINK_DIAG_GROUPS) XLAT(NETLINK_DIAG_RX_RING), + #define XLAT_VAL_2 ((unsigned) (NETLINK_DIAG_RX_RING)) + #define XLAT_STR_2 STRINGIFY(NETLINK_DIAG_RX_RING) XLAT(NETLINK_DIAG_TX_RING), + #define XLAT_VAL_3 ((unsigned) (NETLINK_DIAG_TX_RING)) + #define XLAT_STR_3 STRINGIFY(NETLINK_DIAG_TX_RING) XLAT(NETLINK_DIAG_FLAGS), - XLAT_END + #define XLAT_VAL_4 ((unsigned) (NETLINK_DIAG_FLAGS)) + #define XLAT_STR_4 STRINGIFY(NETLINK_DIAG_FLAGS) }; +static +const struct xlat netlink_diag_attrs[1] = { { + .data = netlink_diag_attrs_xdata, + .size = ARRAY_SIZE(netlink_diag_attrs_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/netlink_diag_show.h b/xlat/netlink_diag_show.h index e7afb750..836d3df7 100644 --- a/xlat/netlink_diag_show.h +++ b/xlat/netlink_diag_show.h @@ -12,23 +12,71 @@ # else -static -const struct xlat netlink_diag_show[] = { +static const struct xlat_data netlink_diag_show_xdata[] = { #if defined(NDIAG_SHOW_MEMINFO) || (defined(HAVE_DECL_NDIAG_SHOW_MEMINFO) && HAVE_DECL_NDIAG_SHOW_MEMINFO) XLAT(NDIAG_SHOW_MEMINFO), + #define XLAT_VAL_0 ((unsigned) (NDIAG_SHOW_MEMINFO)) + #define XLAT_STR_0 STRINGIFY(NDIAG_SHOW_MEMINFO) #endif #if defined(NDIAG_SHOW_GROUPS) || (defined(HAVE_DECL_NDIAG_SHOW_GROUPS) && HAVE_DECL_NDIAG_SHOW_GROUPS) XLAT(NDIAG_SHOW_GROUPS), + #define XLAT_VAL_1 ((unsigned) (NDIAG_SHOW_GROUPS)) + #define XLAT_STR_1 STRINGIFY(NDIAG_SHOW_GROUPS) #endif #if defined(NDIAG_SHOW_RING_CFG) || (defined(HAVE_DECL_NDIAG_SHOW_RING_CFG) && HAVE_DECL_NDIAG_SHOW_RING_CFG) XLAT(NDIAG_SHOW_RING_CFG), + #define XLAT_VAL_2 ((unsigned) (NDIAG_SHOW_RING_CFG)) + #define XLAT_STR_2 STRINGIFY(NDIAG_SHOW_RING_CFG) #endif #if defined(NDIAG_SHOW_FLAGS) || (defined(HAVE_DECL_NDIAG_SHOW_FLAGS) && HAVE_DECL_NDIAG_SHOW_FLAGS) XLAT(NDIAG_SHOW_FLAGS), + #define XLAT_VAL_3 ((unsigned) (NDIAG_SHOW_FLAGS)) + #define XLAT_STR_3 STRINGIFY(NDIAG_SHOW_FLAGS) #endif - XLAT_END }; +static +const struct xlat netlink_diag_show[1] = { { + .data = netlink_diag_show_xdata, + .size = ARRAY_SIZE(netlink_diag_show_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/netlink_flags.h b/xlat/netlink_flags.h index 217c9dfa..ce0c5bdb 100644 --- a/xlat/netlink_flags.h +++ b/xlat/netlink_flags.h @@ -54,17 +54,85 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat netlink_flags[] = { +static const struct xlat_data netlink_flags_xdata[] = { XLAT(NLM_F_REQUEST), + #define XLAT_VAL_0 ((unsigned) (NLM_F_REQUEST)) + #define XLAT_STR_0 STRINGIFY(NLM_F_REQUEST) XLAT(NLM_F_MULTI), + #define XLAT_VAL_1 ((unsigned) (NLM_F_MULTI)) + #define XLAT_STR_1 STRINGIFY(NLM_F_MULTI) XLAT(NLM_F_ACK), + #define XLAT_VAL_2 ((unsigned) (NLM_F_ACK)) + #define XLAT_STR_2 STRINGIFY(NLM_F_ACK) XLAT(NLM_F_ECHO), + #define XLAT_VAL_3 ((unsigned) (NLM_F_ECHO)) + #define XLAT_STR_3 STRINGIFY(NLM_F_ECHO) XLAT(NLM_F_DUMP_INTR), + #define XLAT_VAL_4 ((unsigned) (NLM_F_DUMP_INTR)) + #define XLAT_STR_4 STRINGIFY(NLM_F_DUMP_INTR) XLAT(NLM_F_DUMP_FILTERED), - XLAT_END + #define XLAT_VAL_5 ((unsigned) (NLM_F_DUMP_FILTERED)) + #define XLAT_STR_5 STRINGIFY(NLM_F_DUMP_FILTERED) }; +static +const struct xlat netlink_flags[1] = { { + .data = netlink_flags_xdata, + .size = ARRAY_SIZE(netlink_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/netlink_get_flags.h b/xlat/netlink_get_flags.h index 4855c782..d5f09deb 100644 --- a/xlat/netlink_get_flags.h +++ b/xlat/netlink_get_flags.h @@ -12,23 +12,71 @@ # else -static -const struct xlat netlink_get_flags[] = { +static const struct xlat_data netlink_get_flags_xdata[] = { #if defined(NLM_F_DUMP) || (defined(HAVE_DECL_NLM_F_DUMP) && HAVE_DECL_NLM_F_DUMP) XLAT(NLM_F_DUMP), + #define XLAT_VAL_0 ((unsigned) (NLM_F_DUMP)) + #define XLAT_STR_0 STRINGIFY(NLM_F_DUMP) #endif #if defined(NLM_F_ROOT) || (defined(HAVE_DECL_NLM_F_ROOT) && HAVE_DECL_NLM_F_ROOT) XLAT(NLM_F_ROOT), + #define XLAT_VAL_1 ((unsigned) (NLM_F_ROOT)) + #define XLAT_STR_1 STRINGIFY(NLM_F_ROOT) #endif #if defined(NLM_F_MATCH) || (defined(HAVE_DECL_NLM_F_MATCH) && HAVE_DECL_NLM_F_MATCH) XLAT(NLM_F_MATCH), + #define XLAT_VAL_2 ((unsigned) (NLM_F_MATCH)) + #define XLAT_STR_2 STRINGIFY(NLM_F_MATCH) #endif #if defined(NLM_F_ATOMIC) || (defined(HAVE_DECL_NLM_F_ATOMIC) && HAVE_DECL_NLM_F_ATOMIC) XLAT(NLM_F_ATOMIC), + #define XLAT_VAL_3 ((unsigned) (NLM_F_ATOMIC)) + #define XLAT_STR_3 STRINGIFY(NLM_F_ATOMIC) #endif - XLAT_END }; +static +const struct xlat netlink_get_flags[1] = { { + .data = netlink_get_flags_xdata, + .size = ARRAY_SIZE(netlink_get_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/netlink_new_flags.h b/xlat/netlink_new_flags.h index 372432c4..68c4c62c 100644 --- a/xlat/netlink_new_flags.h +++ b/xlat/netlink_new_flags.h @@ -12,23 +12,71 @@ # else -static -const struct xlat netlink_new_flags[] = { +static const struct xlat_data netlink_new_flags_xdata[] = { #if defined(NLM_F_REPLACE) || (defined(HAVE_DECL_NLM_F_REPLACE) && HAVE_DECL_NLM_F_REPLACE) XLAT(NLM_F_REPLACE), + #define XLAT_VAL_0 ((unsigned) (NLM_F_REPLACE)) + #define XLAT_STR_0 STRINGIFY(NLM_F_REPLACE) #endif #if defined(NLM_F_EXCL) || (defined(HAVE_DECL_NLM_F_EXCL) && HAVE_DECL_NLM_F_EXCL) XLAT(NLM_F_EXCL), + #define XLAT_VAL_1 ((unsigned) (NLM_F_EXCL)) + #define XLAT_STR_1 STRINGIFY(NLM_F_EXCL) #endif #if defined(NLM_F_CREATE) || (defined(HAVE_DECL_NLM_F_CREATE) && HAVE_DECL_NLM_F_CREATE) XLAT(NLM_F_CREATE), + #define XLAT_VAL_2 ((unsigned) (NLM_F_CREATE)) + #define XLAT_STR_2 STRINGIFY(NLM_F_CREATE) #endif #if defined(NLM_F_APPEND) || (defined(HAVE_DECL_NLM_F_APPEND) && HAVE_DECL_NLM_F_APPEND) XLAT(NLM_F_APPEND), + #define XLAT_VAL_3 ((unsigned) (NLM_F_APPEND)) + #define XLAT_STR_3 STRINGIFY(NLM_F_APPEND) #endif - XLAT_END }; +static +const struct xlat netlink_new_flags[1] = { { + .data = netlink_new_flags_xdata, + .size = ARRAY_SIZE(netlink_new_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/netlink_protocols.h b/xlat/netlink_protocols.h index 36845dc9..d7c519d8 100644 --- a/xlat/netlink_protocols.h +++ b/xlat/netlink_protocols.h @@ -162,32 +162,260 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # ifndef IN_MPERS -const struct xlat netlink_protocols[] = { - XLAT(NETLINK_ROUTE), - XLAT(NETLINK_UNUSED), - XLAT(NETLINK_USERSOCK), - XLAT(NETLINK_FIREWALL), - XLAT(NETLINK_SOCK_DIAG), - XLAT(NETLINK_NFLOG), - XLAT(NETLINK_XFRM), - XLAT(NETLINK_SELINUX), - XLAT(NETLINK_ISCSI), - XLAT(NETLINK_AUDIT), - XLAT(NETLINK_FIB_LOOKUP), - XLAT(NETLINK_CONNECTOR), - XLAT(NETLINK_NETFILTER), - XLAT(NETLINK_IP6_FW), - XLAT(NETLINK_DNRTMSG), - XLAT(NETLINK_KOBJECT_UEVENT), - XLAT(NETLINK_GENERIC), - XLAT(NETLINK_SCSITRANSPORT), - XLAT(NETLINK_ECRYPTFS), - XLAT(NETLINK_RDMA), - XLAT(NETLINK_CRYPTO), - XLAT(NETLINK_SMC), - XLAT_END +static const struct xlat_data netlink_protocols_xdata[] = { + [NETLINK_ROUTE] = XLAT(NETLINK_ROUTE), + #define XLAT_VAL_0 ((unsigned) (NETLINK_ROUTE)) + #define XLAT_STR_0 STRINGIFY(NETLINK_ROUTE) + [NETLINK_UNUSED] = XLAT(NETLINK_UNUSED), + #define XLAT_VAL_1 ((unsigned) (NETLINK_UNUSED)) + #define XLAT_STR_1 STRINGIFY(NETLINK_UNUSED) + [NETLINK_USERSOCK] = XLAT(NETLINK_USERSOCK), + #define XLAT_VAL_2 ((unsigned) (NETLINK_USERSOCK)) + #define XLAT_STR_2 STRINGIFY(NETLINK_USERSOCK) + [NETLINK_FIREWALL] = XLAT(NETLINK_FIREWALL), + #define XLAT_VAL_3 ((unsigned) (NETLINK_FIREWALL)) + #define XLAT_STR_3 STRINGIFY(NETLINK_FIREWALL) + [NETLINK_SOCK_DIAG] = XLAT(NETLINK_SOCK_DIAG), + #define XLAT_VAL_4 ((unsigned) (NETLINK_SOCK_DIAG)) + #define XLAT_STR_4 STRINGIFY(NETLINK_SOCK_DIAG) + [NETLINK_NFLOG] = XLAT(NETLINK_NFLOG), + #define XLAT_VAL_5 ((unsigned) (NETLINK_NFLOG)) + #define XLAT_STR_5 STRINGIFY(NETLINK_NFLOG) + [NETLINK_XFRM] = XLAT(NETLINK_XFRM), + #define XLAT_VAL_6 ((unsigned) (NETLINK_XFRM)) + #define XLAT_STR_6 STRINGIFY(NETLINK_XFRM) + [NETLINK_SELINUX] = XLAT(NETLINK_SELINUX), + #define XLAT_VAL_7 ((unsigned) (NETLINK_SELINUX)) + #define XLAT_STR_7 STRINGIFY(NETLINK_SELINUX) + [NETLINK_ISCSI] = XLAT(NETLINK_ISCSI), + #define XLAT_VAL_8 ((unsigned) (NETLINK_ISCSI)) + #define XLAT_STR_8 STRINGIFY(NETLINK_ISCSI) + [NETLINK_AUDIT] = XLAT(NETLINK_AUDIT), + #define XLAT_VAL_9 ((unsigned) (NETLINK_AUDIT)) + #define XLAT_STR_9 STRINGIFY(NETLINK_AUDIT) + [NETLINK_FIB_LOOKUP] = XLAT(NETLINK_FIB_LOOKUP), + #define XLAT_VAL_10 ((unsigned) (NETLINK_FIB_LOOKUP)) + #define XLAT_STR_10 STRINGIFY(NETLINK_FIB_LOOKUP) + [NETLINK_CONNECTOR] = XLAT(NETLINK_CONNECTOR), + #define XLAT_VAL_11 ((unsigned) (NETLINK_CONNECTOR)) + #define XLAT_STR_11 STRINGIFY(NETLINK_CONNECTOR) + [NETLINK_NETFILTER] = XLAT(NETLINK_NETFILTER), + #define XLAT_VAL_12 ((unsigned) (NETLINK_NETFILTER)) + #define XLAT_STR_12 STRINGIFY(NETLINK_NETFILTER) + [NETLINK_IP6_FW] = XLAT(NETLINK_IP6_FW), + #define XLAT_VAL_13 ((unsigned) (NETLINK_IP6_FW)) + #define XLAT_STR_13 STRINGIFY(NETLINK_IP6_FW) + [NETLINK_DNRTMSG] = XLAT(NETLINK_DNRTMSG), + #define XLAT_VAL_14 ((unsigned) (NETLINK_DNRTMSG)) + #define XLAT_STR_14 STRINGIFY(NETLINK_DNRTMSG) + [NETLINK_KOBJECT_UEVENT] = XLAT(NETLINK_KOBJECT_UEVENT), + #define XLAT_VAL_15 ((unsigned) (NETLINK_KOBJECT_UEVENT)) + #define XLAT_STR_15 STRINGIFY(NETLINK_KOBJECT_UEVENT) + [NETLINK_GENERIC] = XLAT(NETLINK_GENERIC), + #define XLAT_VAL_16 ((unsigned) (NETLINK_GENERIC)) + #define XLAT_STR_16 STRINGIFY(NETLINK_GENERIC) + [NETLINK_SCSITRANSPORT] = XLAT(NETLINK_SCSITRANSPORT), + #define XLAT_VAL_17 ((unsigned) (NETLINK_SCSITRANSPORT)) + #define XLAT_STR_17 STRINGIFY(NETLINK_SCSITRANSPORT) + [NETLINK_ECRYPTFS] = XLAT(NETLINK_ECRYPTFS), + #define XLAT_VAL_18 ((unsigned) (NETLINK_ECRYPTFS)) + #define XLAT_STR_18 STRINGIFY(NETLINK_ECRYPTFS) + [NETLINK_RDMA] = XLAT(NETLINK_RDMA), + #define XLAT_VAL_19 ((unsigned) (NETLINK_RDMA)) + #define XLAT_STR_19 STRINGIFY(NETLINK_RDMA) + [NETLINK_CRYPTO] = XLAT(NETLINK_CRYPTO), + #define XLAT_VAL_20 ((unsigned) (NETLINK_CRYPTO)) + #define XLAT_STR_20 STRINGIFY(NETLINK_CRYPTO) + [NETLINK_SMC] = XLAT(NETLINK_SMC), + #define XLAT_VAL_21 ((unsigned) (NETLINK_SMC)) + #define XLAT_STR_21 STRINGIFY(NETLINK_SMC) }; +const struct xlat netlink_protocols[1] = { { + .data = netlink_protocols_xdata, + .size = ARRAY_SIZE(netlink_protocols_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/netlink_protocols.in b/xlat/netlink_protocols.in index a76ebd7e..020718b8 100644 --- a/xlat/netlink_protocols.in +++ b/xlat/netlink_protocols.in @@ -1,3 +1,4 @@ +#value_indexed NETLINK_ROUTE 0 NETLINK_UNUSED 1 NETLINK_USERSOCK 2 diff --git a/xlat/netlink_sk_meminfo_indices.h b/xlat/netlink_sk_meminfo_indices.h index 9d36e152..f7a58966 100644 --- a/xlat/netlink_sk_meminfo_indices.h +++ b/xlat/netlink_sk_meminfo_indices.h @@ -75,20 +75,118 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat netlink_sk_meminfo_indices[] = { +static const struct xlat_data netlink_sk_meminfo_indices_xdata[] = { [SK_MEMINFO_RMEM_ALLOC] = XLAT(SK_MEMINFO_RMEM_ALLOC), + #define XLAT_VAL_0 ((unsigned) (SK_MEMINFO_RMEM_ALLOC)) + #define XLAT_STR_0 STRINGIFY(SK_MEMINFO_RMEM_ALLOC) [SK_MEMINFO_RCVBUF] = XLAT(SK_MEMINFO_RCVBUF), + #define XLAT_VAL_1 ((unsigned) (SK_MEMINFO_RCVBUF)) + #define XLAT_STR_1 STRINGIFY(SK_MEMINFO_RCVBUF) [SK_MEMINFO_WMEM_ALLOC] = XLAT(SK_MEMINFO_WMEM_ALLOC), + #define XLAT_VAL_2 ((unsigned) (SK_MEMINFO_WMEM_ALLOC)) + #define XLAT_STR_2 STRINGIFY(SK_MEMINFO_WMEM_ALLOC) [SK_MEMINFO_SNDBUF] = XLAT(SK_MEMINFO_SNDBUF), + #define XLAT_VAL_3 ((unsigned) (SK_MEMINFO_SNDBUF)) + #define XLAT_STR_3 STRINGIFY(SK_MEMINFO_SNDBUF) [SK_MEMINFO_FWD_ALLOC] = XLAT(SK_MEMINFO_FWD_ALLOC), + #define XLAT_VAL_4 ((unsigned) (SK_MEMINFO_FWD_ALLOC)) + #define XLAT_STR_4 STRINGIFY(SK_MEMINFO_FWD_ALLOC) [SK_MEMINFO_WMEM_QUEUED] = XLAT(SK_MEMINFO_WMEM_QUEUED), + #define XLAT_VAL_5 ((unsigned) (SK_MEMINFO_WMEM_QUEUED)) + #define XLAT_STR_5 STRINGIFY(SK_MEMINFO_WMEM_QUEUED) [SK_MEMINFO_OPTMEM] = XLAT(SK_MEMINFO_OPTMEM), + #define XLAT_VAL_6 ((unsigned) (SK_MEMINFO_OPTMEM)) + #define XLAT_STR_6 STRINGIFY(SK_MEMINFO_OPTMEM) [SK_MEMINFO_BACKLOG] = XLAT(SK_MEMINFO_BACKLOG), + #define XLAT_VAL_7 ((unsigned) (SK_MEMINFO_BACKLOG)) + #define XLAT_STR_7 STRINGIFY(SK_MEMINFO_BACKLOG) [SK_MEMINFO_DROPS] = XLAT(SK_MEMINFO_DROPS), - XLAT_END + #define XLAT_VAL_8 ((unsigned) (SK_MEMINFO_DROPS)) + #define XLAT_STR_8 STRINGIFY(SK_MEMINFO_DROPS) }; +static +const struct xlat netlink_sk_meminfo_indices[1] = { { + .data = netlink_sk_meminfo_indices_xdata, + .size = ARRAY_SIZE(netlink_sk_meminfo_indices_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/netlink_socket_flags.h b/xlat/netlink_socket_flags.h index 7c090d24..21e0ab1e 100644 --- a/xlat/netlink_socket_flags.h +++ b/xlat/netlink_socket_flags.h @@ -12,29 +12,97 @@ # else -static -const struct xlat netlink_socket_flags[] = { +static const struct xlat_data netlink_socket_flags_xdata[] = { #if defined(NDIAG_FLAG_CB_RUNNING) || (defined(HAVE_DECL_NDIAG_FLAG_CB_RUNNING) && HAVE_DECL_NDIAG_FLAG_CB_RUNNING) XLAT(NDIAG_FLAG_CB_RUNNING), + #define XLAT_VAL_0 ((unsigned) (NDIAG_FLAG_CB_RUNNING)) + #define XLAT_STR_0 STRINGIFY(NDIAG_FLAG_CB_RUNNING) #endif #if defined(NDIAG_FLAG_PKTINFO) || (defined(HAVE_DECL_NDIAG_FLAG_PKTINFO) && HAVE_DECL_NDIAG_FLAG_PKTINFO) XLAT(NDIAG_FLAG_PKTINFO), + #define XLAT_VAL_1 ((unsigned) (NDIAG_FLAG_PKTINFO)) + #define XLAT_STR_1 STRINGIFY(NDIAG_FLAG_PKTINFO) #endif #if defined(NDIAG_FLAG_BROADCAST_ERROR) || (defined(HAVE_DECL_NDIAG_FLAG_BROADCAST_ERROR) && HAVE_DECL_NDIAG_FLAG_BROADCAST_ERROR) XLAT(NDIAG_FLAG_BROADCAST_ERROR), + #define XLAT_VAL_2 ((unsigned) (NDIAG_FLAG_BROADCAST_ERROR)) + #define XLAT_STR_2 STRINGIFY(NDIAG_FLAG_BROADCAST_ERROR) #endif #if defined(NDIAG_FLAG_NO_ENOBUFS) || (defined(HAVE_DECL_NDIAG_FLAG_NO_ENOBUFS) && HAVE_DECL_NDIAG_FLAG_NO_ENOBUFS) XLAT(NDIAG_FLAG_NO_ENOBUFS), + #define XLAT_VAL_3 ((unsigned) (NDIAG_FLAG_NO_ENOBUFS)) + #define XLAT_STR_3 STRINGIFY(NDIAG_FLAG_NO_ENOBUFS) #endif #if defined(NDIAG_FLAG_LISTEN_ALL_NSID) || (defined(HAVE_DECL_NDIAG_FLAG_LISTEN_ALL_NSID) && HAVE_DECL_NDIAG_FLAG_LISTEN_ALL_NSID) XLAT(NDIAG_FLAG_LISTEN_ALL_NSID), + #define XLAT_VAL_4 ((unsigned) (NDIAG_FLAG_LISTEN_ALL_NSID)) + #define XLAT_STR_4 STRINGIFY(NDIAG_FLAG_LISTEN_ALL_NSID) #endif #if defined(NDIAG_FLAG_CAP_ACK) || (defined(HAVE_DECL_NDIAG_FLAG_CAP_ACK) && HAVE_DECL_NDIAG_FLAG_CAP_ACK) XLAT(NDIAG_FLAG_CAP_ACK), + #define XLAT_VAL_5 ((unsigned) (NDIAG_FLAG_CAP_ACK)) + #define XLAT_STR_5 STRINGIFY(NDIAG_FLAG_CAP_ACK) #endif - XLAT_END }; +static +const struct xlat netlink_socket_flags[1] = { { + .data = netlink_socket_flags_xdata, + .size = ARRAY_SIZE(netlink_socket_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/netlink_states.h b/xlat/netlink_states.h index 9f3ae565..6d243e7c 100644 --- a/xlat/netlink_states.h +++ b/xlat/netlink_states.h @@ -33,15 +33,53 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat netlink_states[] = { +static const struct xlat_data netlink_states_xdata[] = { XLAT(NETLINK_UNCONNECTED), + #define XLAT_VAL_0 ((unsigned) (NETLINK_UNCONNECTED)) + #define XLAT_STR_0 STRINGIFY(NETLINK_UNCONNECTED) XLAT(NETLINK_CONNECTED), + #define XLAT_VAL_1 ((unsigned) (NETLINK_CONNECTED)) + #define XLAT_STR_1 STRINGIFY(NETLINK_CONNECTED) XLAT(TCP_CLOSE), - XLAT_END + #define XLAT_VAL_2 ((unsigned) (TCP_CLOSE)) + #define XLAT_STR_2 STRINGIFY(TCP_CLOSE) }; +static +const struct xlat netlink_states[1] = { { + .data = netlink_states_xdata, + .size = ARRAY_SIZE(netlink_states_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/netlink_types.h b/xlat/netlink_types.h index f6d44a38..2be91c60 100644 --- a/xlat/netlink_types.h +++ b/xlat/netlink_types.h @@ -40,15 +40,63 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat netlink_types[] = { - XLAT(NLMSG_NOOP), - XLAT(NLMSG_ERROR), - XLAT(NLMSG_DONE), - XLAT(NLMSG_OVERRUN), - XLAT_END +static const struct xlat_data netlink_types_xdata[] = { + [NLMSG_NOOP] = XLAT(NLMSG_NOOP), + #define XLAT_VAL_0 ((unsigned) (NLMSG_NOOP)) + #define XLAT_STR_0 STRINGIFY(NLMSG_NOOP) + [NLMSG_ERROR] = XLAT(NLMSG_ERROR), + #define XLAT_VAL_1 ((unsigned) (NLMSG_ERROR)) + #define XLAT_STR_1 STRINGIFY(NLMSG_ERROR) + [NLMSG_DONE] = XLAT(NLMSG_DONE), + #define XLAT_VAL_2 ((unsigned) (NLMSG_DONE)) + #define XLAT_STR_2 STRINGIFY(NLMSG_DONE) + [NLMSG_OVERRUN] = XLAT(NLMSG_OVERRUN), + #define XLAT_VAL_3 ((unsigned) (NLMSG_OVERRUN)) + #define XLAT_STR_3 STRINGIFY(NLMSG_OVERRUN) }; +static +const struct xlat netlink_types[1] = { { + .data = netlink_types_xdata, + .size = ARRAY_SIZE(netlink_types_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/netlink_types.in b/xlat/netlink_types.in index 9cb52973..ad4a841e 100644 --- a/xlat/netlink_types.in +++ b/xlat/netlink_types.in @@ -1,3 +1,4 @@ +#value_indexed NLMSG_NOOP 0x1 NLMSG_ERROR 0x2 NLMSG_DONE 0x3 diff --git a/xlat/nf_acct_msg_types.h b/xlat/nf_acct_msg_types.h index d0584b37..2be668ce 100644 --- a/xlat/nf_acct_msg_types.h +++ b/xlat/nf_acct_msg_types.h @@ -47,16 +47,74 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat nf_acct_msg_types[] = { - XLAT(NFNL_MSG_ACCT_NEW), - XLAT(NFNL_MSG_ACCT_GET), - XLAT(NFNL_MSG_ACCT_GET_CTRZERO), - XLAT(NFNL_MSG_ACCT_DEL), - XLAT(NFNL_MSG_ACCT_OVERQUOTA), - XLAT_END +static const struct xlat_data nf_acct_msg_types_xdata[] = { + [NFNL_MSG_ACCT_NEW] = XLAT(NFNL_MSG_ACCT_NEW), + #define XLAT_VAL_0 ((unsigned) (NFNL_MSG_ACCT_NEW)) + #define XLAT_STR_0 STRINGIFY(NFNL_MSG_ACCT_NEW) + [NFNL_MSG_ACCT_GET] = XLAT(NFNL_MSG_ACCT_GET), + #define XLAT_VAL_1 ((unsigned) (NFNL_MSG_ACCT_GET)) + #define XLAT_STR_1 STRINGIFY(NFNL_MSG_ACCT_GET) + [NFNL_MSG_ACCT_GET_CTRZERO] = XLAT(NFNL_MSG_ACCT_GET_CTRZERO), + #define XLAT_VAL_2 ((unsigned) (NFNL_MSG_ACCT_GET_CTRZERO)) + #define XLAT_STR_2 STRINGIFY(NFNL_MSG_ACCT_GET_CTRZERO) + [NFNL_MSG_ACCT_DEL] = XLAT(NFNL_MSG_ACCT_DEL), + #define XLAT_VAL_3 ((unsigned) (NFNL_MSG_ACCT_DEL)) + #define XLAT_STR_3 STRINGIFY(NFNL_MSG_ACCT_DEL) + [NFNL_MSG_ACCT_OVERQUOTA] = XLAT(NFNL_MSG_ACCT_OVERQUOTA), + #define XLAT_VAL_4 ((unsigned) (NFNL_MSG_ACCT_OVERQUOTA)) + #define XLAT_STR_4 STRINGIFY(NFNL_MSG_ACCT_OVERQUOTA) }; +static +const struct xlat nf_acct_msg_types[1] = { { + .data = nf_acct_msg_types_xdata, + .size = ARRAY_SIZE(nf_acct_msg_types_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/nf_acct_msg_types.in b/xlat/nf_acct_msg_types.in index 3384ee0d..b5c16024 100644 --- a/xlat/nf_acct_msg_types.in +++ b/xlat/nf_acct_msg_types.in @@ -1,3 +1,4 @@ +#value_indexed NFNL_MSG_ACCT_NEW 0 NFNL_MSG_ACCT_GET 1 NFNL_MSG_ACCT_GET_CTRZERO 2 diff --git a/xlat/nf_cthelper_msg_types.h b/xlat/nf_cthelper_msg_types.h index 0fa432a8..cced27d4 100644 --- a/xlat/nf_cthelper_msg_types.h +++ b/xlat/nf_cthelper_msg_types.h @@ -33,14 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat nf_cthelper_msg_types[] = { - XLAT(NFNL_MSG_CTHELPER_NEW), - XLAT(NFNL_MSG_CTHELPER_GET), - XLAT(NFNL_MSG_CTHELPER_DEL), - XLAT_END +static const struct xlat_data nf_cthelper_msg_types_xdata[] = { + [NFNL_MSG_CTHELPER_NEW] = XLAT(NFNL_MSG_CTHELPER_NEW), + #define XLAT_VAL_0 ((unsigned) (NFNL_MSG_CTHELPER_NEW)) + #define XLAT_STR_0 STRINGIFY(NFNL_MSG_CTHELPER_NEW) + [NFNL_MSG_CTHELPER_GET] = XLAT(NFNL_MSG_CTHELPER_GET), + #define XLAT_VAL_1 ((unsigned) (NFNL_MSG_CTHELPER_GET)) + #define XLAT_STR_1 STRINGIFY(NFNL_MSG_CTHELPER_GET) + [NFNL_MSG_CTHELPER_DEL] = XLAT(NFNL_MSG_CTHELPER_DEL), + #define XLAT_VAL_2 ((unsigned) (NFNL_MSG_CTHELPER_DEL)) + #define XLAT_STR_2 STRINGIFY(NFNL_MSG_CTHELPER_DEL) }; +static +const struct xlat nf_cthelper_msg_types[1] = { { + .data = nf_cthelper_msg_types_xdata, + .size = ARRAY_SIZE(nf_cthelper_msg_types_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/nf_cthelper_msg_types.in b/xlat/nf_cthelper_msg_types.in index bbee697a..34959a83 100644 --- a/xlat/nf_cthelper_msg_types.in +++ b/xlat/nf_cthelper_msg_types.in @@ -1,3 +1,4 @@ +#value_indexed NFNL_MSG_CTHELPER_NEW 0 NFNL_MSG_CTHELPER_GET 1 NFNL_MSG_CTHELPER_DEL 2 diff --git a/xlat/nf_ctnetlink_exp_msg_types.h b/xlat/nf_ctnetlink_exp_msg_types.h index a6b13a10..c7ca5d53 100644 --- a/xlat/nf_ctnetlink_exp_msg_types.h +++ b/xlat/nf_ctnetlink_exp_msg_types.h @@ -40,15 +40,63 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat nf_ctnetlink_exp_msg_types[] = { - XLAT(IPCTNL_MSG_EXP_NEW), - XLAT(IPCTNL_MSG_EXP_GET), - XLAT(IPCTNL_MSG_EXP_DELETE), - XLAT(IPCTNL_MSG_EXP_GET_STATS_CPU), - XLAT_END +static const struct xlat_data nf_ctnetlink_exp_msg_types_xdata[] = { + [IPCTNL_MSG_EXP_NEW] = XLAT(IPCTNL_MSG_EXP_NEW), + #define XLAT_VAL_0 ((unsigned) (IPCTNL_MSG_EXP_NEW)) + #define XLAT_STR_0 STRINGIFY(IPCTNL_MSG_EXP_NEW) + [IPCTNL_MSG_EXP_GET] = XLAT(IPCTNL_MSG_EXP_GET), + #define XLAT_VAL_1 ((unsigned) (IPCTNL_MSG_EXP_GET)) + #define XLAT_STR_1 STRINGIFY(IPCTNL_MSG_EXP_GET) + [IPCTNL_MSG_EXP_DELETE] = XLAT(IPCTNL_MSG_EXP_DELETE), + #define XLAT_VAL_2 ((unsigned) (IPCTNL_MSG_EXP_DELETE)) + #define XLAT_STR_2 STRINGIFY(IPCTNL_MSG_EXP_DELETE) + [IPCTNL_MSG_EXP_GET_STATS_CPU] = XLAT(IPCTNL_MSG_EXP_GET_STATS_CPU), + #define XLAT_VAL_3 ((unsigned) (IPCTNL_MSG_EXP_GET_STATS_CPU)) + #define XLAT_STR_3 STRINGIFY(IPCTNL_MSG_EXP_GET_STATS_CPU) }; +static +const struct xlat nf_ctnetlink_exp_msg_types[1] = { { + .data = nf_ctnetlink_exp_msg_types_xdata, + .size = ARRAY_SIZE(nf_ctnetlink_exp_msg_types_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/nf_ctnetlink_exp_msg_types.in b/xlat/nf_ctnetlink_exp_msg_types.in index 8236e066..0f4eed4f 100644 --- a/xlat/nf_ctnetlink_exp_msg_types.in +++ b/xlat/nf_ctnetlink_exp_msg_types.in @@ -1,3 +1,4 @@ +#value_indexed IPCTNL_MSG_EXP_NEW 0 IPCTNL_MSG_EXP_GET 1 IPCTNL_MSG_EXP_DELETE 2 diff --git a/xlat/nf_ctnetlink_msg_types.h b/xlat/nf_ctnetlink_msg_types.h index 71d24aed..d25b197d 100644 --- a/xlat/nf_ctnetlink_msg_types.h +++ b/xlat/nf_ctnetlink_msg_types.h @@ -68,19 +68,107 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat nf_ctnetlink_msg_types[] = { - XLAT(IPCTNL_MSG_CT_NEW), - XLAT(IPCTNL_MSG_CT_GET), - XLAT(IPCTNL_MSG_CT_DELETE), - XLAT(IPCTNL_MSG_CT_GET_CTRZERO), - XLAT(IPCTNL_MSG_CT_GET_STATS_CPU), - XLAT(IPCTNL_MSG_CT_GET_STATS), - XLAT(IPCTNL_MSG_CT_GET_DYING), - XLAT(IPCTNL_MSG_CT_GET_UNCONFIRMED), - XLAT_END +static const struct xlat_data nf_ctnetlink_msg_types_xdata[] = { + [IPCTNL_MSG_CT_NEW] = XLAT(IPCTNL_MSG_CT_NEW), + #define XLAT_VAL_0 ((unsigned) (IPCTNL_MSG_CT_NEW)) + #define XLAT_STR_0 STRINGIFY(IPCTNL_MSG_CT_NEW) + [IPCTNL_MSG_CT_GET] = XLAT(IPCTNL_MSG_CT_GET), + #define XLAT_VAL_1 ((unsigned) (IPCTNL_MSG_CT_GET)) + #define XLAT_STR_1 STRINGIFY(IPCTNL_MSG_CT_GET) + [IPCTNL_MSG_CT_DELETE] = XLAT(IPCTNL_MSG_CT_DELETE), + #define XLAT_VAL_2 ((unsigned) (IPCTNL_MSG_CT_DELETE)) + #define XLAT_STR_2 STRINGIFY(IPCTNL_MSG_CT_DELETE) + [IPCTNL_MSG_CT_GET_CTRZERO] = XLAT(IPCTNL_MSG_CT_GET_CTRZERO), + #define XLAT_VAL_3 ((unsigned) (IPCTNL_MSG_CT_GET_CTRZERO)) + #define XLAT_STR_3 STRINGIFY(IPCTNL_MSG_CT_GET_CTRZERO) + [IPCTNL_MSG_CT_GET_STATS_CPU] = XLAT(IPCTNL_MSG_CT_GET_STATS_CPU), + #define XLAT_VAL_4 ((unsigned) (IPCTNL_MSG_CT_GET_STATS_CPU)) + #define XLAT_STR_4 STRINGIFY(IPCTNL_MSG_CT_GET_STATS_CPU) + [IPCTNL_MSG_CT_GET_STATS] = XLAT(IPCTNL_MSG_CT_GET_STATS), + #define XLAT_VAL_5 ((unsigned) (IPCTNL_MSG_CT_GET_STATS)) + #define XLAT_STR_5 STRINGIFY(IPCTNL_MSG_CT_GET_STATS) + [IPCTNL_MSG_CT_GET_DYING] = XLAT(IPCTNL_MSG_CT_GET_DYING), + #define XLAT_VAL_6 ((unsigned) (IPCTNL_MSG_CT_GET_DYING)) + #define XLAT_STR_6 STRINGIFY(IPCTNL_MSG_CT_GET_DYING) + [IPCTNL_MSG_CT_GET_UNCONFIRMED] = XLAT(IPCTNL_MSG_CT_GET_UNCONFIRMED), + #define XLAT_VAL_7 ((unsigned) (IPCTNL_MSG_CT_GET_UNCONFIRMED)) + #define XLAT_STR_7 STRINGIFY(IPCTNL_MSG_CT_GET_UNCONFIRMED) }; +static +const struct xlat nf_ctnetlink_msg_types[1] = { { + .data = nf_ctnetlink_msg_types_xdata, + .size = ARRAY_SIZE(nf_ctnetlink_msg_types_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/nf_ctnetlink_msg_types.in b/xlat/nf_ctnetlink_msg_types.in index 2dab1690..ceec1c32 100644 --- a/xlat/nf_ctnetlink_msg_types.in +++ b/xlat/nf_ctnetlink_msg_types.in @@ -1,3 +1,4 @@ +#value_indexed IPCTNL_MSG_CT_NEW 0 IPCTNL_MSG_CT_GET 1 IPCTNL_MSG_CT_DELETE 2 diff --git a/xlat/nf_cttimeout_msg_types.h b/xlat/nf_cttimeout_msg_types.h index 43ebec40..1c2525b4 100644 --- a/xlat/nf_cttimeout_msg_types.h +++ b/xlat/nf_cttimeout_msg_types.h @@ -47,16 +47,74 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat nf_cttimeout_msg_types[] = { - XLAT(IPCTNL_MSG_TIMEOUT_NEW), - XLAT(IPCTNL_MSG_TIMEOUT_GET), - XLAT(IPCTNL_MSG_TIMEOUT_DELETE), - XLAT(IPCTNL_MSG_TIMEOUT_DEFAULT_SET), - XLAT(IPCTNL_MSG_TIMEOUT_DEFAULT_GET), - XLAT_END +static const struct xlat_data nf_cttimeout_msg_types_xdata[] = { + [IPCTNL_MSG_TIMEOUT_NEW] = XLAT(IPCTNL_MSG_TIMEOUT_NEW), + #define XLAT_VAL_0 ((unsigned) (IPCTNL_MSG_TIMEOUT_NEW)) + #define XLAT_STR_0 STRINGIFY(IPCTNL_MSG_TIMEOUT_NEW) + [IPCTNL_MSG_TIMEOUT_GET] = XLAT(IPCTNL_MSG_TIMEOUT_GET), + #define XLAT_VAL_1 ((unsigned) (IPCTNL_MSG_TIMEOUT_GET)) + #define XLAT_STR_1 STRINGIFY(IPCTNL_MSG_TIMEOUT_GET) + [IPCTNL_MSG_TIMEOUT_DELETE] = XLAT(IPCTNL_MSG_TIMEOUT_DELETE), + #define XLAT_VAL_2 ((unsigned) (IPCTNL_MSG_TIMEOUT_DELETE)) + #define XLAT_STR_2 STRINGIFY(IPCTNL_MSG_TIMEOUT_DELETE) + [IPCTNL_MSG_TIMEOUT_DEFAULT_SET] = XLAT(IPCTNL_MSG_TIMEOUT_DEFAULT_SET), + #define XLAT_VAL_3 ((unsigned) (IPCTNL_MSG_TIMEOUT_DEFAULT_SET)) + #define XLAT_STR_3 STRINGIFY(IPCTNL_MSG_TIMEOUT_DEFAULT_SET) + [IPCTNL_MSG_TIMEOUT_DEFAULT_GET] = XLAT(IPCTNL_MSG_TIMEOUT_DEFAULT_GET), + #define XLAT_VAL_4 ((unsigned) (IPCTNL_MSG_TIMEOUT_DEFAULT_GET)) + #define XLAT_STR_4 STRINGIFY(IPCTNL_MSG_TIMEOUT_DEFAULT_GET) }; +static +const struct xlat nf_cttimeout_msg_types[1] = { { + .data = nf_cttimeout_msg_types_xdata, + .size = ARRAY_SIZE(nf_cttimeout_msg_types_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/nf_cttimeout_msg_types.in b/xlat/nf_cttimeout_msg_types.in index bf6c5293..cbb5429e 100644 --- a/xlat/nf_cttimeout_msg_types.in +++ b/xlat/nf_cttimeout_msg_types.in @@ -1,3 +1,4 @@ +#value_indexed IPCTNL_MSG_TIMEOUT_NEW 0 IPCTNL_MSG_TIMEOUT_GET 1 IPCTNL_MSG_TIMEOUT_DELETE 2 diff --git a/xlat/nf_ipset_msg_types.h b/xlat/nf_ipset_msg_types.h index 4fdedd93..417cfc06 100644 --- a/xlat/nf_ipset_msg_types.h +++ b/xlat/nf_ipset_msg_types.h @@ -145,32 +145,230 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat nf_ipset_msg_types[] = { - XLAT(IPSET_CMD_NONE), - XLAT(IPSET_CMD_PROTOCOL), - XLAT(IPSET_CMD_CREATE), - XLAT(IPSET_CMD_DESTROY), - XLAT(IPSET_CMD_FLUSH), - XLAT(IPSET_CMD_RENAME), - XLAT(IPSET_CMD_SWAP), - XLAT(IPSET_CMD_LIST), - XLAT(IPSET_CMD_SAVE), - XLAT(IPSET_CMD_ADD), - XLAT(IPSET_CMD_DEL), - XLAT(IPSET_CMD_TEST), - XLAT(IPSET_CMD_HEADER), - XLAT(IPSET_CMD_TYPE), +static const struct xlat_data nf_ipset_msg_types_xdata[] = { + [IPSET_CMD_NONE] = XLAT(IPSET_CMD_NONE), + #define XLAT_VAL_0 ((unsigned) (IPSET_CMD_NONE)) + #define XLAT_STR_0 STRINGIFY(IPSET_CMD_NONE) + [IPSET_CMD_PROTOCOL] = XLAT(IPSET_CMD_PROTOCOL), + #define XLAT_VAL_1 ((unsigned) (IPSET_CMD_PROTOCOL)) + #define XLAT_STR_1 STRINGIFY(IPSET_CMD_PROTOCOL) + [IPSET_CMD_CREATE] = XLAT(IPSET_CMD_CREATE), + #define XLAT_VAL_2 ((unsigned) (IPSET_CMD_CREATE)) + #define XLAT_STR_2 STRINGIFY(IPSET_CMD_CREATE) + [IPSET_CMD_DESTROY] = XLAT(IPSET_CMD_DESTROY), + #define XLAT_VAL_3 ((unsigned) (IPSET_CMD_DESTROY)) + #define XLAT_STR_3 STRINGIFY(IPSET_CMD_DESTROY) + [IPSET_CMD_FLUSH] = XLAT(IPSET_CMD_FLUSH), + #define XLAT_VAL_4 ((unsigned) (IPSET_CMD_FLUSH)) + #define XLAT_STR_4 STRINGIFY(IPSET_CMD_FLUSH) + [IPSET_CMD_RENAME] = XLAT(IPSET_CMD_RENAME), + #define XLAT_VAL_5 ((unsigned) (IPSET_CMD_RENAME)) + #define XLAT_STR_5 STRINGIFY(IPSET_CMD_RENAME) + [IPSET_CMD_SWAP] = XLAT(IPSET_CMD_SWAP), + #define XLAT_VAL_6 ((unsigned) (IPSET_CMD_SWAP)) + #define XLAT_STR_6 STRINGIFY(IPSET_CMD_SWAP) + [IPSET_CMD_LIST] = XLAT(IPSET_CMD_LIST), + #define XLAT_VAL_7 ((unsigned) (IPSET_CMD_LIST)) + #define XLAT_STR_7 STRINGIFY(IPSET_CMD_LIST) + [IPSET_CMD_SAVE] = XLAT(IPSET_CMD_SAVE), + #define XLAT_VAL_8 ((unsigned) (IPSET_CMD_SAVE)) + #define XLAT_STR_8 STRINGIFY(IPSET_CMD_SAVE) + [IPSET_CMD_ADD] = XLAT(IPSET_CMD_ADD), + #define XLAT_VAL_9 ((unsigned) (IPSET_CMD_ADD)) + #define XLAT_STR_9 STRINGIFY(IPSET_CMD_ADD) + [IPSET_CMD_DEL] = XLAT(IPSET_CMD_DEL), + #define XLAT_VAL_10 ((unsigned) (IPSET_CMD_DEL)) + #define XLAT_STR_10 STRINGIFY(IPSET_CMD_DEL) + [IPSET_CMD_TEST] = XLAT(IPSET_CMD_TEST), + #define XLAT_VAL_11 ((unsigned) (IPSET_CMD_TEST)) + #define XLAT_STR_11 STRINGIFY(IPSET_CMD_TEST) + [IPSET_CMD_HEADER] = XLAT(IPSET_CMD_HEADER), + #define XLAT_VAL_12 ((unsigned) (IPSET_CMD_HEADER)) + #define XLAT_STR_12 STRINGIFY(IPSET_CMD_HEADER) + [IPSET_CMD_TYPE] = XLAT(IPSET_CMD_TYPE), + #define XLAT_VAL_13 ((unsigned) (IPSET_CMD_TYPE)) + #define XLAT_STR_13 STRINGIFY(IPSET_CMD_TYPE) - XLAT(IPSET_CMD_RESTORE), - XLAT(IPSET_CMD_HELP), - XLAT(IPSET_CMD_VERSION), - XLAT(IPSET_CMD_QUIT), + [IPSET_CMD_RESTORE] = XLAT(IPSET_CMD_RESTORE), + #define XLAT_VAL_14 ((unsigned) (IPSET_CMD_RESTORE)) + #define XLAT_STR_14 STRINGIFY(IPSET_CMD_RESTORE) + [IPSET_CMD_HELP] = XLAT(IPSET_CMD_HELP), + #define XLAT_VAL_15 ((unsigned) (IPSET_CMD_HELP)) + #define XLAT_STR_15 STRINGIFY(IPSET_CMD_HELP) + [IPSET_CMD_VERSION] = XLAT(IPSET_CMD_VERSION), + #define XLAT_VAL_16 ((unsigned) (IPSET_CMD_VERSION)) + #define XLAT_STR_16 STRINGIFY(IPSET_CMD_VERSION) + [IPSET_CMD_QUIT] = XLAT(IPSET_CMD_QUIT), + #define XLAT_VAL_17 ((unsigned) (IPSET_CMD_QUIT)) + #define XLAT_STR_17 STRINGIFY(IPSET_CMD_QUIT) - XLAT(IPSET_CMD_COMMIT), - XLAT_END + [IPSET_CMD_COMMIT] = XLAT(IPSET_CMD_COMMIT), + #define XLAT_VAL_18 ((unsigned) (IPSET_CMD_COMMIT)) + #define XLAT_STR_18 STRINGIFY(IPSET_CMD_COMMIT) }; +static +const struct xlat nf_ipset_msg_types[1] = { { + .data = nf_ipset_msg_types_xdata, + .size = ARRAY_SIZE(nf_ipset_msg_types_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/nf_ipset_msg_types.in b/xlat/nf_ipset_msg_types.in index a61d9064..22410324 100644 --- a/xlat/nf_ipset_msg_types.in +++ b/xlat/nf_ipset_msg_types.in @@ -1,3 +1,4 @@ +#value_indexed IPSET_CMD_NONE 0 IPSET_CMD_PROTOCOL 1 IPSET_CMD_CREATE 2 diff --git a/xlat/nf_nft_compat_msg_types.h b/xlat/nf_nft_compat_msg_types.h index 010ec9d2..fbef666e 100644 --- a/xlat/nf_nft_compat_msg_types.h +++ b/xlat/nf_nft_compat_msg_types.h @@ -19,12 +19,30 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat nf_nft_compat_msg_types[] = { +static const struct xlat_data nf_nft_compat_msg_types_xdata[] = { XLAT(NFNL_MSG_COMPAT_GET), - XLAT_END + #define XLAT_VAL_0 ((unsigned) (NFNL_MSG_COMPAT_GET)) + #define XLAT_STR_0 STRINGIFY(NFNL_MSG_COMPAT_GET) }; - +static +const struct xlat nf_nft_compat_msg_types[1] = { { + .data = nf_nft_compat_msg_types_xdata, + .size = ARRAY_SIZE(nf_nft_compat_msg_types_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/nf_nftables_msg_types.h b/xlat/nf_nftables_msg_types.h index f2b3c51a..6d06c298 100644 --- a/xlat/nf_nftables_msg_types.h +++ b/xlat/nf_nftables_msg_types.h @@ -166,33 +166,261 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat nf_nftables_msg_types[] = { - XLAT(NFT_MSG_NEWTABLE), - XLAT(NFT_MSG_GETTABLE), - XLAT(NFT_MSG_DELTABLE), - XLAT(NFT_MSG_NEWCHAIN), - XLAT(NFT_MSG_GETCHAIN), - XLAT(NFT_MSG_DELCHAIN), - XLAT(NFT_MSG_NEWRULE), - XLAT(NFT_MSG_GETRULE), - XLAT(NFT_MSG_DELRULE), - XLAT(NFT_MSG_NEWSET), - XLAT(NFT_MSG_GETSET), - XLAT(NFT_MSG_DELSET), - XLAT(NFT_MSG_NEWSETELEM), - XLAT(NFT_MSG_GETSETELEM), - XLAT(NFT_MSG_DELSETELEM), - XLAT(NFT_MSG_NEWGEN), - XLAT(NFT_MSG_GETGEN), - XLAT(NFT_MSG_TRACE), - XLAT(NFT_MSG_NEWOBJ), - XLAT(NFT_MSG_GETOBJ), - XLAT(NFT_MSG_DELOBJ), - XLAT(NFT_MSG_GETOBJ_RESET), - XLAT_END +static const struct xlat_data nf_nftables_msg_types_xdata[] = { + [NFT_MSG_NEWTABLE] = XLAT(NFT_MSG_NEWTABLE), + #define XLAT_VAL_0 ((unsigned) (NFT_MSG_NEWTABLE)) + #define XLAT_STR_0 STRINGIFY(NFT_MSG_NEWTABLE) + [NFT_MSG_GETTABLE] = XLAT(NFT_MSG_GETTABLE), + #define XLAT_VAL_1 ((unsigned) (NFT_MSG_GETTABLE)) + #define XLAT_STR_1 STRINGIFY(NFT_MSG_GETTABLE) + [NFT_MSG_DELTABLE] = XLAT(NFT_MSG_DELTABLE), + #define XLAT_VAL_2 ((unsigned) (NFT_MSG_DELTABLE)) + #define XLAT_STR_2 STRINGIFY(NFT_MSG_DELTABLE) + [NFT_MSG_NEWCHAIN] = XLAT(NFT_MSG_NEWCHAIN), + #define XLAT_VAL_3 ((unsigned) (NFT_MSG_NEWCHAIN)) + #define XLAT_STR_3 STRINGIFY(NFT_MSG_NEWCHAIN) + [NFT_MSG_GETCHAIN] = XLAT(NFT_MSG_GETCHAIN), + #define XLAT_VAL_4 ((unsigned) (NFT_MSG_GETCHAIN)) + #define XLAT_STR_4 STRINGIFY(NFT_MSG_GETCHAIN) + [NFT_MSG_DELCHAIN] = XLAT(NFT_MSG_DELCHAIN), + #define XLAT_VAL_5 ((unsigned) (NFT_MSG_DELCHAIN)) + #define XLAT_STR_5 STRINGIFY(NFT_MSG_DELCHAIN) + [NFT_MSG_NEWRULE] = XLAT(NFT_MSG_NEWRULE), + #define XLAT_VAL_6 ((unsigned) (NFT_MSG_NEWRULE)) + #define XLAT_STR_6 STRINGIFY(NFT_MSG_NEWRULE) + [NFT_MSG_GETRULE] = XLAT(NFT_MSG_GETRULE), + #define XLAT_VAL_7 ((unsigned) (NFT_MSG_GETRULE)) + #define XLAT_STR_7 STRINGIFY(NFT_MSG_GETRULE) + [NFT_MSG_DELRULE] = XLAT(NFT_MSG_DELRULE), + #define XLAT_VAL_8 ((unsigned) (NFT_MSG_DELRULE)) + #define XLAT_STR_8 STRINGIFY(NFT_MSG_DELRULE) + [NFT_MSG_NEWSET] = XLAT(NFT_MSG_NEWSET), + #define XLAT_VAL_9 ((unsigned) (NFT_MSG_NEWSET)) + #define XLAT_STR_9 STRINGIFY(NFT_MSG_NEWSET) + [NFT_MSG_GETSET] = XLAT(NFT_MSG_GETSET), + #define XLAT_VAL_10 ((unsigned) (NFT_MSG_GETSET)) + #define XLAT_STR_10 STRINGIFY(NFT_MSG_GETSET) + [NFT_MSG_DELSET] = XLAT(NFT_MSG_DELSET), + #define XLAT_VAL_11 ((unsigned) (NFT_MSG_DELSET)) + #define XLAT_STR_11 STRINGIFY(NFT_MSG_DELSET) + [NFT_MSG_NEWSETELEM] = XLAT(NFT_MSG_NEWSETELEM), + #define XLAT_VAL_12 ((unsigned) (NFT_MSG_NEWSETELEM)) + #define XLAT_STR_12 STRINGIFY(NFT_MSG_NEWSETELEM) + [NFT_MSG_GETSETELEM] = XLAT(NFT_MSG_GETSETELEM), + #define XLAT_VAL_13 ((unsigned) (NFT_MSG_GETSETELEM)) + #define XLAT_STR_13 STRINGIFY(NFT_MSG_GETSETELEM) + [NFT_MSG_DELSETELEM] = XLAT(NFT_MSG_DELSETELEM), + #define XLAT_VAL_14 ((unsigned) (NFT_MSG_DELSETELEM)) + #define XLAT_STR_14 STRINGIFY(NFT_MSG_DELSETELEM) + [NFT_MSG_NEWGEN] = XLAT(NFT_MSG_NEWGEN), + #define XLAT_VAL_15 ((unsigned) (NFT_MSG_NEWGEN)) + #define XLAT_STR_15 STRINGIFY(NFT_MSG_NEWGEN) + [NFT_MSG_GETGEN] = XLAT(NFT_MSG_GETGEN), + #define XLAT_VAL_16 ((unsigned) (NFT_MSG_GETGEN)) + #define XLAT_STR_16 STRINGIFY(NFT_MSG_GETGEN) + [NFT_MSG_TRACE] = XLAT(NFT_MSG_TRACE), + #define XLAT_VAL_17 ((unsigned) (NFT_MSG_TRACE)) + #define XLAT_STR_17 STRINGIFY(NFT_MSG_TRACE) + [NFT_MSG_NEWOBJ] = XLAT(NFT_MSG_NEWOBJ), + #define XLAT_VAL_18 ((unsigned) (NFT_MSG_NEWOBJ)) + #define XLAT_STR_18 STRINGIFY(NFT_MSG_NEWOBJ) + [NFT_MSG_GETOBJ] = XLAT(NFT_MSG_GETOBJ), + #define XLAT_VAL_19 ((unsigned) (NFT_MSG_GETOBJ)) + #define XLAT_STR_19 STRINGIFY(NFT_MSG_GETOBJ) + [NFT_MSG_DELOBJ] = XLAT(NFT_MSG_DELOBJ), + #define XLAT_VAL_20 ((unsigned) (NFT_MSG_DELOBJ)) + #define XLAT_STR_20 STRINGIFY(NFT_MSG_DELOBJ) + [NFT_MSG_GETOBJ_RESET] = XLAT(NFT_MSG_GETOBJ_RESET), + #define XLAT_VAL_21 ((unsigned) (NFT_MSG_GETOBJ_RESET)) + #define XLAT_STR_21 STRINGIFY(NFT_MSG_GETOBJ_RESET) }; +static +const struct xlat nf_nftables_msg_types[1] = { { + .data = nf_nftables_msg_types_xdata, + .size = ARRAY_SIZE(nf_nftables_msg_types_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/nf_nftables_msg_types.in b/xlat/nf_nftables_msg_types.in index eb1e773d..d1c6732b 100644 --- a/xlat/nf_nftables_msg_types.in +++ b/xlat/nf_nftables_msg_types.in @@ -1,3 +1,4 @@ +#value_indexed NFT_MSG_NEWTABLE 0 NFT_MSG_GETTABLE 1 NFT_MSG_DELTABLE 2 diff --git a/xlat/nf_osf_msg_types.h b/xlat/nf_osf_msg_types.h index bf84df60..e7fe0929 100644 --- a/xlat/nf_osf_msg_types.h +++ b/xlat/nf_osf_msg_types.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat nf_osf_msg_types[] = { - XLAT(OSF_MSG_ADD), - XLAT(OSF_MSG_REMOVE), - XLAT_END +static const struct xlat_data nf_osf_msg_types_xdata[] = { + [OSF_MSG_ADD] = XLAT(OSF_MSG_ADD), + #define XLAT_VAL_0 ((unsigned) (OSF_MSG_ADD)) + #define XLAT_STR_0 STRINGIFY(OSF_MSG_ADD) + [OSF_MSG_REMOVE] = XLAT(OSF_MSG_REMOVE), + #define XLAT_VAL_1 ((unsigned) (OSF_MSG_REMOVE)) + #define XLAT_STR_1 STRINGIFY(OSF_MSG_REMOVE) }; +static +const struct xlat nf_osf_msg_types[1] = { { + .data = nf_osf_msg_types_xdata, + .size = ARRAY_SIZE(nf_osf_msg_types_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/nf_osf_msg_types.in b/xlat/nf_osf_msg_types.in index 636c9323..def28f77 100644 --- a/xlat/nf_osf_msg_types.in +++ b/xlat/nf_osf_msg_types.in @@ -1,2 +1,3 @@ +#value_indexed OSF_MSG_ADD 0 OSF_MSG_REMOVE 1 diff --git a/xlat/nf_queue_msg_types.h b/xlat/nf_queue_msg_types.h index 88ab109d..8a3c32cb 100644 --- a/xlat/nf_queue_msg_types.h +++ b/xlat/nf_queue_msg_types.h @@ -40,15 +40,63 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat nf_queue_msg_types[] = { - XLAT(NFQNL_MSG_PACKET), - XLAT(NFQNL_MSG_VERDICT), - XLAT(NFQNL_MSG_CONFIG), - XLAT(NFQNL_MSG_VERDICT_BATCH), - XLAT_END +static const struct xlat_data nf_queue_msg_types_xdata[] = { + [NFQNL_MSG_PACKET] = XLAT(NFQNL_MSG_PACKET), + #define XLAT_VAL_0 ((unsigned) (NFQNL_MSG_PACKET)) + #define XLAT_STR_0 STRINGIFY(NFQNL_MSG_PACKET) + [NFQNL_MSG_VERDICT] = XLAT(NFQNL_MSG_VERDICT), + #define XLAT_VAL_1 ((unsigned) (NFQNL_MSG_VERDICT)) + #define XLAT_STR_1 STRINGIFY(NFQNL_MSG_VERDICT) + [NFQNL_MSG_CONFIG] = XLAT(NFQNL_MSG_CONFIG), + #define XLAT_VAL_2 ((unsigned) (NFQNL_MSG_CONFIG)) + #define XLAT_STR_2 STRINGIFY(NFQNL_MSG_CONFIG) + [NFQNL_MSG_VERDICT_BATCH] = XLAT(NFQNL_MSG_VERDICT_BATCH), + #define XLAT_VAL_3 ((unsigned) (NFQNL_MSG_VERDICT_BATCH)) + #define XLAT_STR_3 STRINGIFY(NFQNL_MSG_VERDICT_BATCH) }; +static +const struct xlat nf_queue_msg_types[1] = { { + .data = nf_queue_msg_types_xdata, + .size = ARRAY_SIZE(nf_queue_msg_types_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/nf_queue_msg_types.in b/xlat/nf_queue_msg_types.in index 65c7bdd9..76b113d8 100644 --- a/xlat/nf_queue_msg_types.in +++ b/xlat/nf_queue_msg_types.in @@ -1,3 +1,4 @@ +#value_indexed NFQNL_MSG_PACKET 0 NFQNL_MSG_VERDICT 1 NFQNL_MSG_CONFIG 2 diff --git a/xlat/nf_ulog_msg_types.h b/xlat/nf_ulog_msg_types.h index c8c8389b..7e237929 100644 --- a/xlat/nf_ulog_msg_types.h +++ b/xlat/nf_ulog_msg_types.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat nf_ulog_msg_types[] = { - XLAT(NFULNL_MSG_PACKET), - XLAT(NFULNL_MSG_CONFIG), - XLAT_END +static const struct xlat_data nf_ulog_msg_types_xdata[] = { + [NFULNL_MSG_PACKET] = XLAT(NFULNL_MSG_PACKET), + #define XLAT_VAL_0 ((unsigned) (NFULNL_MSG_PACKET)) + #define XLAT_STR_0 STRINGIFY(NFULNL_MSG_PACKET) + [NFULNL_MSG_CONFIG] = XLAT(NFULNL_MSG_CONFIG), + #define XLAT_VAL_1 ((unsigned) (NFULNL_MSG_CONFIG)) + #define XLAT_STR_1 STRINGIFY(NFULNL_MSG_CONFIG) }; +static +const struct xlat nf_ulog_msg_types[1] = { { + .data = nf_ulog_msg_types_xdata, + .size = ARRAY_SIZE(nf_ulog_msg_types_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/nf_ulog_msg_types.in b/xlat/nf_ulog_msg_types.in index 13ff42f2..00b48559 100644 --- a/xlat/nf_ulog_msg_types.in +++ b/xlat/nf_ulog_msg_types.in @@ -1,2 +1,3 @@ +#value_indexed NFULNL_MSG_PACKET 0 NFULNL_MSG_CONFIG 1 diff --git a/xlat/nfc_protocols.h b/xlat/nfc_protocols.h index 88331a53..c2494c5a 100644 --- a/xlat/nfc_protocols.h +++ b/xlat/nfc_protocols.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat nfc_protocols[] = { +static const struct xlat_data nfc_protocols_xdata[] = { [NFC_SOCKPROTO_RAW] = XLAT(NFC_SOCKPROTO_RAW), + #define XLAT_VAL_0 ((unsigned) (NFC_SOCKPROTO_RAW)) + #define XLAT_STR_0 STRINGIFY(NFC_SOCKPROTO_RAW) [NFC_SOCKPROTO_LLCP] = XLAT(NFC_SOCKPROTO_LLCP), - XLAT_END + #define XLAT_VAL_1 ((unsigned) (NFC_SOCKPROTO_LLCP)) + #define XLAT_STR_1 STRINGIFY(NFC_SOCKPROTO_LLCP) }; +static +const struct xlat nfc_protocols[1] = { { + .data = nfc_protocols_xdata, + .size = ARRAY_SIZE(nfc_protocols_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/nl_audit_types.h b/xlat/nl_audit_types.h index b9d0d0e3..61a93f23 100644 --- a/xlat/nl_audit_types.h +++ b/xlat/nl_audit_types.h @@ -406,6 +406,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define AUDIT_KERN_MODULE 1330 #endif +#if defined(AUDIT_FANOTIFY) || (defined(HAVE_DECL_AUDIT_FANOTIFY) && HAVE_DECL_AUDIT_FANOTIFY) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_FANOTIFY) == (1331), "AUDIT_FANOTIFY != 1331"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_FANOTIFY 1331 +#endif +#if defined(AUDIT_TIME_INJOFFSET) || (defined(HAVE_DECL_AUDIT_TIME_INJOFFSET) && HAVE_DECL_AUDIT_TIME_INJOFFSET) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_TIME_INJOFFSET) == (1332), "AUDIT_TIME_INJOFFSET != 1332"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_TIME_INJOFFSET 1332 +#endif +#if defined(AUDIT_TIME_ADJNTPVAL) || (defined(HAVE_DECL_AUDIT_TIME_ADJNTPVAL) && HAVE_DECL_AUDIT_TIME_ADJNTPVAL) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_TIME_ADJNTPVAL) == (1333), "AUDIT_TIME_ADJNTPVAL != 1333"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_TIME_ADJNTPVAL 1333 +#endif +#if defined(AUDIT_BPF) || (defined(HAVE_DECL_AUDIT_BPF) && HAVE_DECL_AUDIT_BPF) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_BPF) == (1334), "AUDIT_BPF != 1334"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_BPF 1334 +#endif +#if defined(AUDIT_EVENT_LISTENER) || (defined(HAVE_DECL_AUDIT_EVENT_LISTENER) && HAVE_DECL_AUDIT_EVENT_LISTENER) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_EVENT_LISTENER) == (1335), "AUDIT_EVENT_LISTENER != 1335"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_EVENT_LISTENER 1335 +#endif #if defined(AUDIT_AVC) || (defined(HAVE_DECL_AUDIT_AVC) && HAVE_DECL_AUDIT_AVC) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((AUDIT_AVC) == (1400), "AUDIT_AVC != 1400"); @@ -567,6 +602,13 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define AUDIT_ANOM_LINK 1702 #endif +#if defined(AUDIT_ANOM_CREAT) || (defined(HAVE_DECL_AUDIT_ANOM_CREAT) && HAVE_DECL_AUDIT_ANOM_CREAT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AUDIT_ANOM_CREAT) == (1703), "AUDIT_ANOM_CREAT != 1703"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AUDIT_ANOM_CREAT 1703 +#endif #if defined(AUDIT_LAST_KERN_ANOM_MSG) || (defined(HAVE_DECL_AUDIT_LAST_KERN_ANOM_MSG) && HAVE_DECL_AUDIT_LAST_KERN_ANOM_MSG) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((AUDIT_LAST_KERN_ANOM_MSG) == (1799), "AUDIT_LAST_KERN_ANOM_MSG != 1799"); @@ -660,65 +702,172 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat nl_audit_types[] = { +static const struct xlat_data nl_audit_types_xdata[] = { XLAT(AUDIT_GET), + #define XLAT_VAL_0 ((unsigned) (AUDIT_GET)) + #define XLAT_STR_0 STRINGIFY(AUDIT_GET) XLAT(AUDIT_SET), + #define XLAT_VAL_1 ((unsigned) (AUDIT_SET)) + #define XLAT_STR_1 STRINGIFY(AUDIT_SET) XLAT(AUDIT_LIST), + #define XLAT_VAL_2 ((unsigned) (AUDIT_LIST)) + #define XLAT_STR_2 STRINGIFY(AUDIT_LIST) XLAT(AUDIT_ADD), + #define XLAT_VAL_3 ((unsigned) (AUDIT_ADD)) + #define XLAT_STR_3 STRINGIFY(AUDIT_ADD) XLAT(AUDIT_DEL), + #define XLAT_VAL_4 ((unsigned) (AUDIT_DEL)) + #define XLAT_STR_4 STRINGIFY(AUDIT_DEL) XLAT(AUDIT_USER), + #define XLAT_VAL_5 ((unsigned) (AUDIT_USER)) + #define XLAT_STR_5 STRINGIFY(AUDIT_USER) XLAT(AUDIT_LOGIN), + #define XLAT_VAL_6 ((unsigned) (AUDIT_LOGIN)) + #define XLAT_STR_6 STRINGIFY(AUDIT_LOGIN) XLAT(AUDIT_WATCH_INS), + #define XLAT_VAL_7 ((unsigned) (AUDIT_WATCH_INS)) + #define XLAT_STR_7 STRINGIFY(AUDIT_WATCH_INS) XLAT(AUDIT_WATCH_REM), + #define XLAT_VAL_8 ((unsigned) (AUDIT_WATCH_REM)) + #define XLAT_STR_8 STRINGIFY(AUDIT_WATCH_REM) XLAT(AUDIT_WATCH_LIST), + #define XLAT_VAL_9 ((unsigned) (AUDIT_WATCH_LIST)) + #define XLAT_STR_9 STRINGIFY(AUDIT_WATCH_LIST) XLAT(AUDIT_SIGNAL_INFO), + #define XLAT_VAL_10 ((unsigned) (AUDIT_SIGNAL_INFO)) + #define XLAT_STR_10 STRINGIFY(AUDIT_SIGNAL_INFO) XLAT(AUDIT_ADD_RULE), + #define XLAT_VAL_11 ((unsigned) (AUDIT_ADD_RULE)) + #define XLAT_STR_11 STRINGIFY(AUDIT_ADD_RULE) XLAT(AUDIT_DEL_RULE), + #define XLAT_VAL_12 ((unsigned) (AUDIT_DEL_RULE)) + #define XLAT_STR_12 STRINGIFY(AUDIT_DEL_RULE) XLAT(AUDIT_LIST_RULES), + #define XLAT_VAL_13 ((unsigned) (AUDIT_LIST_RULES)) + #define XLAT_STR_13 STRINGIFY(AUDIT_LIST_RULES) XLAT(AUDIT_TRIM), + #define XLAT_VAL_14 ((unsigned) (AUDIT_TRIM)) + #define XLAT_STR_14 STRINGIFY(AUDIT_TRIM) XLAT(AUDIT_MAKE_EQUIV), + #define XLAT_VAL_15 ((unsigned) (AUDIT_MAKE_EQUIV)) + #define XLAT_STR_15 STRINGIFY(AUDIT_MAKE_EQUIV) XLAT(AUDIT_TTY_GET), + #define XLAT_VAL_16 ((unsigned) (AUDIT_TTY_GET)) + #define XLAT_STR_16 STRINGIFY(AUDIT_TTY_GET) XLAT(AUDIT_TTY_SET), + #define XLAT_VAL_17 ((unsigned) (AUDIT_TTY_SET)) + #define XLAT_STR_17 STRINGIFY(AUDIT_TTY_SET) XLAT(AUDIT_SET_FEATURE), + #define XLAT_VAL_18 ((unsigned) (AUDIT_SET_FEATURE)) + #define XLAT_STR_18 STRINGIFY(AUDIT_SET_FEATURE) XLAT(AUDIT_GET_FEATURE), + #define XLAT_VAL_19 ((unsigned) (AUDIT_GET_FEATURE)) + #define XLAT_STR_19 STRINGIFY(AUDIT_GET_FEATURE) XLAT(AUDIT_FIRST_USER_MSG), + #define XLAT_VAL_20 ((unsigned) (AUDIT_FIRST_USER_MSG)) + #define XLAT_STR_20 STRINGIFY(AUDIT_FIRST_USER_MSG) XLAT(AUDIT_USER_AVC), + #define XLAT_VAL_21 ((unsigned) (AUDIT_USER_AVC)) + #define XLAT_STR_21 STRINGIFY(AUDIT_USER_AVC) XLAT(AUDIT_USER_TTY), + #define XLAT_VAL_22 ((unsigned) (AUDIT_USER_TTY)) + #define XLAT_STR_22 STRINGIFY(AUDIT_USER_TTY) XLAT(AUDIT_LAST_USER_MSG), + #define XLAT_VAL_23 ((unsigned) (AUDIT_LAST_USER_MSG)) + #define XLAT_STR_23 STRINGIFY(AUDIT_LAST_USER_MSG) XLAT(AUDIT_DAEMON_START), + #define XLAT_VAL_24 ((unsigned) (AUDIT_DAEMON_START)) + #define XLAT_STR_24 STRINGIFY(AUDIT_DAEMON_START) XLAT(AUDIT_DAEMON_END), + #define XLAT_VAL_25 ((unsigned) (AUDIT_DAEMON_END)) + #define XLAT_STR_25 STRINGIFY(AUDIT_DAEMON_END) XLAT(AUDIT_DAEMON_ABORT), + #define XLAT_VAL_26 ((unsigned) (AUDIT_DAEMON_ABORT)) + #define XLAT_STR_26 STRINGIFY(AUDIT_DAEMON_ABORT) XLAT(AUDIT_DAEMON_CONFIG), + #define XLAT_VAL_27 ((unsigned) (AUDIT_DAEMON_CONFIG)) + #define XLAT_STR_27 STRINGIFY(AUDIT_DAEMON_CONFIG) XLAT(AUDIT_SYSCALL), + #define XLAT_VAL_28 ((unsigned) (AUDIT_SYSCALL)) + #define XLAT_STR_28 STRINGIFY(AUDIT_SYSCALL) XLAT(AUDIT_FS_WATCH), + #define XLAT_VAL_29 ((unsigned) (AUDIT_FS_WATCH)) + #define XLAT_STR_29 STRINGIFY(AUDIT_FS_WATCH) XLAT(AUDIT_PATH), + #define XLAT_VAL_30 ((unsigned) (AUDIT_PATH)) + #define XLAT_STR_30 STRINGIFY(AUDIT_PATH) XLAT(AUDIT_IPC), + #define XLAT_VAL_31 ((unsigned) (AUDIT_IPC)) + #define XLAT_STR_31 STRINGIFY(AUDIT_IPC) XLAT(AUDIT_SOCKETCALL), + #define XLAT_VAL_32 ((unsigned) (AUDIT_SOCKETCALL)) + #define XLAT_STR_32 STRINGIFY(AUDIT_SOCKETCALL) XLAT(AUDIT_CONFIG_CHANGE), + #define XLAT_VAL_33 ((unsigned) (AUDIT_CONFIG_CHANGE)) + #define XLAT_STR_33 STRINGIFY(AUDIT_CONFIG_CHANGE) XLAT(AUDIT_SOCKADDR), + #define XLAT_VAL_34 ((unsigned) (AUDIT_SOCKADDR)) + #define XLAT_STR_34 STRINGIFY(AUDIT_SOCKADDR) XLAT(AUDIT_CWD), + #define XLAT_VAL_35 ((unsigned) (AUDIT_CWD)) + #define XLAT_STR_35 STRINGIFY(AUDIT_CWD) XLAT(AUDIT_EXECVE), + #define XLAT_VAL_36 ((unsigned) (AUDIT_EXECVE)) + #define XLAT_STR_36 STRINGIFY(AUDIT_EXECVE) XLAT(AUDIT_IPC_SET_PERM), + #define XLAT_VAL_37 ((unsigned) (AUDIT_IPC_SET_PERM)) + #define XLAT_STR_37 STRINGIFY(AUDIT_IPC_SET_PERM) XLAT(AUDIT_MQ_OPEN), + #define XLAT_VAL_38 ((unsigned) (AUDIT_MQ_OPEN)) + #define XLAT_STR_38 STRINGIFY(AUDIT_MQ_OPEN) XLAT(AUDIT_MQ_SENDRECV), + #define XLAT_VAL_39 ((unsigned) (AUDIT_MQ_SENDRECV)) + #define XLAT_STR_39 STRINGIFY(AUDIT_MQ_SENDRECV) XLAT(AUDIT_MQ_NOTIFY), + #define XLAT_VAL_40 ((unsigned) (AUDIT_MQ_NOTIFY)) + #define XLAT_STR_40 STRINGIFY(AUDIT_MQ_NOTIFY) XLAT(AUDIT_MQ_GETSETATTR), + #define XLAT_VAL_41 ((unsigned) (AUDIT_MQ_GETSETATTR)) + #define XLAT_STR_41 STRINGIFY(AUDIT_MQ_GETSETATTR) XLAT(AUDIT_KERNEL_OTHER), + #define XLAT_VAL_42 ((unsigned) (AUDIT_KERNEL_OTHER)) + #define XLAT_STR_42 STRINGIFY(AUDIT_KERNEL_OTHER) XLAT(AUDIT_FD_PAIR), + #define XLAT_VAL_43 ((unsigned) (AUDIT_FD_PAIR)) + #define XLAT_STR_43 STRINGIFY(AUDIT_FD_PAIR) XLAT(AUDIT_OBJ_PID), + #define XLAT_VAL_44 ((unsigned) (AUDIT_OBJ_PID)) + #define XLAT_STR_44 STRINGIFY(AUDIT_OBJ_PID) XLAT(AUDIT_TTY), + #define XLAT_VAL_45 ((unsigned) (AUDIT_TTY)) + #define XLAT_STR_45 STRINGIFY(AUDIT_TTY) XLAT(AUDIT_EOE), + #define XLAT_VAL_46 ((unsigned) (AUDIT_EOE)) + #define XLAT_STR_46 STRINGIFY(AUDIT_EOE) XLAT(AUDIT_BPRM_FCAPS), + #define XLAT_VAL_47 ((unsigned) (AUDIT_BPRM_FCAPS)) + #define XLAT_STR_47 STRINGIFY(AUDIT_BPRM_FCAPS) XLAT(AUDIT_CAPSET), + #define XLAT_VAL_48 ((unsigned) (AUDIT_CAPSET)) + #define XLAT_STR_48 STRINGIFY(AUDIT_CAPSET) XLAT(AUDIT_MMAP), + #define XLAT_VAL_49 ((unsigned) (AUDIT_MMAP)) + #define XLAT_STR_49 STRINGIFY(AUDIT_MMAP) XLAT(AUDIT_NETFILTER_PKT), + #define XLAT_VAL_50 ((unsigned) (AUDIT_NETFILTER_PKT)) + #define XLAT_STR_50 STRINGIFY(AUDIT_NETFILTER_PKT) XLAT(AUDIT_NETFILTER_CFG), + #define XLAT_VAL_51 ((unsigned) (AUDIT_NETFILTER_CFG)) + #define XLAT_STR_51 STRINGIFY(AUDIT_NETFILTER_CFG) XLAT(AUDIT_SECCOMP), + #define XLAT_VAL_52 ((unsigned) (AUDIT_SECCOMP)) + #define XLAT_STR_52 STRINGIFY(AUDIT_SECCOMP) XLAT(AUDIT_PROCTITLE), + #define XLAT_VAL_53 ((unsigned) (AUDIT_PROCTITLE)) + #define XLAT_STR_53 STRINGIFY(AUDIT_PROCTITLE) #ifndef STRACE_WORKAROUND_FOR_AUDIT_FEATURE_CHANGE # define STRACE_WORKAROUND_FOR_AUDIT_FEATURE_CHANGE @@ -736,52 +885,939 @@ const struct xlat nl_audit_types[] = { # undef AUDIT_FEATURE_CHANGE #endif XLAT(AUDIT_FEATURE_CHANGE), + #define XLAT_VAL_54 ((unsigned) (AUDIT_FEATURE_CHANGE)) + #define XLAT_STR_54 STRINGIFY(AUDIT_FEATURE_CHANGE) XLAT(AUDIT_REPLACE), + #define XLAT_VAL_55 ((unsigned) (AUDIT_REPLACE)) + #define XLAT_STR_55 STRINGIFY(AUDIT_REPLACE) XLAT(AUDIT_KERN_MODULE), + #define XLAT_VAL_56 ((unsigned) (AUDIT_KERN_MODULE)) + #define XLAT_STR_56 STRINGIFY(AUDIT_KERN_MODULE) + XLAT(AUDIT_FANOTIFY), + #define XLAT_VAL_57 ((unsigned) (AUDIT_FANOTIFY)) + #define XLAT_STR_57 STRINGIFY(AUDIT_FANOTIFY) + XLAT(AUDIT_TIME_INJOFFSET), + #define XLAT_VAL_58 ((unsigned) (AUDIT_TIME_INJOFFSET)) + #define XLAT_STR_58 STRINGIFY(AUDIT_TIME_INJOFFSET) + XLAT(AUDIT_TIME_ADJNTPVAL), + #define XLAT_VAL_59 ((unsigned) (AUDIT_TIME_ADJNTPVAL)) + #define XLAT_STR_59 STRINGIFY(AUDIT_TIME_ADJNTPVAL) + XLAT(AUDIT_BPF), + #define XLAT_VAL_60 ((unsigned) (AUDIT_BPF)) + #define XLAT_STR_60 STRINGIFY(AUDIT_BPF) + XLAT(AUDIT_EVENT_LISTENER), + #define XLAT_VAL_61 ((unsigned) (AUDIT_EVENT_LISTENER)) + #define XLAT_STR_61 STRINGIFY(AUDIT_EVENT_LISTENER) XLAT(AUDIT_AVC), + #define XLAT_VAL_62 ((unsigned) (AUDIT_AVC)) + #define XLAT_STR_62 STRINGIFY(AUDIT_AVC) XLAT(AUDIT_SELINUX_ERR), + #define XLAT_VAL_63 ((unsigned) (AUDIT_SELINUX_ERR)) + #define XLAT_STR_63 STRINGIFY(AUDIT_SELINUX_ERR) XLAT(AUDIT_AVC_PATH), + #define XLAT_VAL_64 ((unsigned) (AUDIT_AVC_PATH)) + #define XLAT_STR_64 STRINGIFY(AUDIT_AVC_PATH) XLAT(AUDIT_MAC_POLICY_LOAD), + #define XLAT_VAL_65 ((unsigned) (AUDIT_MAC_POLICY_LOAD)) + #define XLAT_STR_65 STRINGIFY(AUDIT_MAC_POLICY_LOAD) XLAT(AUDIT_MAC_STATUS), + #define XLAT_VAL_66 ((unsigned) (AUDIT_MAC_STATUS)) + #define XLAT_STR_66 STRINGIFY(AUDIT_MAC_STATUS) XLAT(AUDIT_MAC_CONFIG_CHANGE), + #define XLAT_VAL_67 ((unsigned) (AUDIT_MAC_CONFIG_CHANGE)) + #define XLAT_STR_67 STRINGIFY(AUDIT_MAC_CONFIG_CHANGE) XLAT(AUDIT_MAC_UNLBL_ALLOW), + #define XLAT_VAL_68 ((unsigned) (AUDIT_MAC_UNLBL_ALLOW)) + #define XLAT_STR_68 STRINGIFY(AUDIT_MAC_UNLBL_ALLOW) XLAT(AUDIT_MAC_CIPSOV4_ADD), + #define XLAT_VAL_69 ((unsigned) (AUDIT_MAC_CIPSOV4_ADD)) + #define XLAT_STR_69 STRINGIFY(AUDIT_MAC_CIPSOV4_ADD) XLAT(AUDIT_MAC_CIPSOV4_DEL), + #define XLAT_VAL_70 ((unsigned) (AUDIT_MAC_CIPSOV4_DEL)) + #define XLAT_STR_70 STRINGIFY(AUDIT_MAC_CIPSOV4_DEL) XLAT(AUDIT_MAC_MAP_ADD), + #define XLAT_VAL_71 ((unsigned) (AUDIT_MAC_MAP_ADD)) + #define XLAT_STR_71 STRINGIFY(AUDIT_MAC_MAP_ADD) XLAT(AUDIT_MAC_MAP_DEL), + #define XLAT_VAL_72 ((unsigned) (AUDIT_MAC_MAP_DEL)) + #define XLAT_STR_72 STRINGIFY(AUDIT_MAC_MAP_DEL) XLAT(AUDIT_MAC_IPSEC_ADDSA), + #define XLAT_VAL_73 ((unsigned) (AUDIT_MAC_IPSEC_ADDSA)) + #define XLAT_STR_73 STRINGIFY(AUDIT_MAC_IPSEC_ADDSA) XLAT(AUDIT_MAC_IPSEC_DELSA), + #define XLAT_VAL_74 ((unsigned) (AUDIT_MAC_IPSEC_DELSA)) + #define XLAT_STR_74 STRINGIFY(AUDIT_MAC_IPSEC_DELSA) XLAT(AUDIT_MAC_IPSEC_ADDSPD), + #define XLAT_VAL_75 ((unsigned) (AUDIT_MAC_IPSEC_ADDSPD)) + #define XLAT_STR_75 STRINGIFY(AUDIT_MAC_IPSEC_ADDSPD) XLAT(AUDIT_MAC_IPSEC_DELSPD), + #define XLAT_VAL_76 ((unsigned) (AUDIT_MAC_IPSEC_DELSPD)) + #define XLAT_STR_76 STRINGIFY(AUDIT_MAC_IPSEC_DELSPD) XLAT(AUDIT_MAC_IPSEC_EVENT), + #define XLAT_VAL_77 ((unsigned) (AUDIT_MAC_IPSEC_EVENT)) + #define XLAT_STR_77 STRINGIFY(AUDIT_MAC_IPSEC_EVENT) XLAT(AUDIT_MAC_UNLBL_STCADD), + #define XLAT_VAL_78 ((unsigned) (AUDIT_MAC_UNLBL_STCADD)) + #define XLAT_STR_78 STRINGIFY(AUDIT_MAC_UNLBL_STCADD) XLAT(AUDIT_MAC_UNLBL_STCDEL), + #define XLAT_VAL_79 ((unsigned) (AUDIT_MAC_UNLBL_STCDEL)) + #define XLAT_STR_79 STRINGIFY(AUDIT_MAC_UNLBL_STCDEL) XLAT(AUDIT_MAC_CALIPSO_ADD), + #define XLAT_VAL_80 ((unsigned) (AUDIT_MAC_CALIPSO_ADD)) + #define XLAT_STR_80 STRINGIFY(AUDIT_MAC_CALIPSO_ADD) XLAT(AUDIT_MAC_CALIPSO_DEL), + #define XLAT_VAL_81 ((unsigned) (AUDIT_MAC_CALIPSO_DEL)) + #define XLAT_STR_81 STRINGIFY(AUDIT_MAC_CALIPSO_DEL) XLAT(AUDIT_ANOM_PROMISCUOUS), + #define XLAT_VAL_82 ((unsigned) (AUDIT_ANOM_PROMISCUOUS)) + #define XLAT_STR_82 STRINGIFY(AUDIT_ANOM_PROMISCUOUS) XLAT(AUDIT_ANOM_ABEND), + #define XLAT_VAL_83 ((unsigned) (AUDIT_ANOM_ABEND)) + #define XLAT_STR_83 STRINGIFY(AUDIT_ANOM_ABEND) XLAT(AUDIT_ANOM_LINK), + #define XLAT_VAL_84 ((unsigned) (AUDIT_ANOM_LINK)) + #define XLAT_STR_84 STRINGIFY(AUDIT_ANOM_LINK) + XLAT(AUDIT_ANOM_CREAT), + #define XLAT_VAL_85 ((unsigned) (AUDIT_ANOM_CREAT)) + #define XLAT_STR_85 STRINGIFY(AUDIT_ANOM_CREAT) XLAT(AUDIT_LAST_KERN_ANOM_MSG), + #define XLAT_VAL_86 ((unsigned) (AUDIT_LAST_KERN_ANOM_MSG)) + #define XLAT_STR_86 STRINGIFY(AUDIT_LAST_KERN_ANOM_MSG) XLAT(AUDIT_INTEGRITY_DATA), + #define XLAT_VAL_87 ((unsigned) (AUDIT_INTEGRITY_DATA)) + #define XLAT_STR_87 STRINGIFY(AUDIT_INTEGRITY_DATA) XLAT(AUDIT_INTEGRITY_METADATA), + #define XLAT_VAL_88 ((unsigned) (AUDIT_INTEGRITY_METADATA)) + #define XLAT_STR_88 STRINGIFY(AUDIT_INTEGRITY_METADATA) XLAT(AUDIT_INTEGRITY_STATUS), + #define XLAT_VAL_89 ((unsigned) (AUDIT_INTEGRITY_STATUS)) + #define XLAT_STR_89 STRINGIFY(AUDIT_INTEGRITY_STATUS) XLAT(AUDIT_INTEGRITY_HASH), + #define XLAT_VAL_90 ((unsigned) (AUDIT_INTEGRITY_HASH)) + #define XLAT_STR_90 STRINGIFY(AUDIT_INTEGRITY_HASH) XLAT(AUDIT_INTEGRITY_PCR), + #define XLAT_VAL_91 ((unsigned) (AUDIT_INTEGRITY_PCR)) + #define XLAT_STR_91 STRINGIFY(AUDIT_INTEGRITY_PCR) XLAT(AUDIT_INTEGRITY_RULE), + #define XLAT_VAL_92 ((unsigned) (AUDIT_INTEGRITY_RULE)) + #define XLAT_STR_92 STRINGIFY(AUDIT_INTEGRITY_RULE) XLAT(AUDIT_INTEGRITY_EVM_XATTR), + #define XLAT_VAL_93 ((unsigned) (AUDIT_INTEGRITY_EVM_XATTR)) + #define XLAT_STR_93 STRINGIFY(AUDIT_INTEGRITY_EVM_XATTR) XLAT(AUDIT_INTEGRITY_POLICY_RULE), + #define XLAT_VAL_94 ((unsigned) (AUDIT_INTEGRITY_POLICY_RULE)) + #define XLAT_STR_94 STRINGIFY(AUDIT_INTEGRITY_POLICY_RULE) XLAT(AUDIT_KERNEL), + #define XLAT_VAL_95 ((unsigned) (AUDIT_KERNEL)) + #define XLAT_STR_95 STRINGIFY(AUDIT_KERNEL) XLAT(AUDIT_FIRST_USER_MSG2), + #define XLAT_VAL_96 ((unsigned) (AUDIT_FIRST_USER_MSG2)) + #define XLAT_STR_96 STRINGIFY(AUDIT_FIRST_USER_MSG2) XLAT(AUDIT_LAST_USER_MSG2), - XLAT_END + #define XLAT_VAL_97 ((unsigned) (AUDIT_LAST_USER_MSG2)) + #define XLAT_STR_97 STRINGIFY(AUDIT_LAST_USER_MSG2) }; +static +const struct xlat nl_audit_types[1] = { { + .data = nl_audit_types_xdata, + .size = ARRAY_SIZE(nl_audit_types_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif +# ifdef XLAT_VAL_41 + | XLAT_VAL_41 +# endif +# ifdef XLAT_VAL_42 + | XLAT_VAL_42 +# endif +# ifdef XLAT_VAL_43 + | XLAT_VAL_43 +# endif +# ifdef XLAT_VAL_44 + | XLAT_VAL_44 +# endif +# ifdef XLAT_VAL_45 + | XLAT_VAL_45 +# endif +# ifdef XLAT_VAL_46 + | XLAT_VAL_46 +# endif +# ifdef XLAT_VAL_47 + | XLAT_VAL_47 +# endif +# ifdef XLAT_VAL_48 + | XLAT_VAL_48 +# endif +# ifdef XLAT_VAL_49 + | XLAT_VAL_49 +# endif +# ifdef XLAT_VAL_50 + | XLAT_VAL_50 +# endif +# ifdef XLAT_VAL_51 + | XLAT_VAL_51 +# endif +# ifdef XLAT_VAL_52 + | XLAT_VAL_52 +# endif +# ifdef XLAT_VAL_53 + | XLAT_VAL_53 +# endif +# ifdef XLAT_VAL_54 + | XLAT_VAL_54 +# endif +# ifdef XLAT_VAL_55 + | XLAT_VAL_55 +# endif +# ifdef XLAT_VAL_56 + | XLAT_VAL_56 +# endif +# ifdef XLAT_VAL_57 + | XLAT_VAL_57 +# endif +# ifdef XLAT_VAL_58 + | XLAT_VAL_58 +# endif +# ifdef XLAT_VAL_59 + | XLAT_VAL_59 +# endif +# ifdef XLAT_VAL_60 + | XLAT_VAL_60 +# endif +# ifdef XLAT_VAL_61 + | XLAT_VAL_61 +# endif +# ifdef XLAT_VAL_62 + | XLAT_VAL_62 +# endif +# ifdef XLAT_VAL_63 + | XLAT_VAL_63 +# endif +# ifdef XLAT_VAL_64 + | XLAT_VAL_64 +# endif +# ifdef XLAT_VAL_65 + | XLAT_VAL_65 +# endif +# ifdef XLAT_VAL_66 + | XLAT_VAL_66 +# endif +# ifdef XLAT_VAL_67 + | XLAT_VAL_67 +# endif +# ifdef XLAT_VAL_68 + | XLAT_VAL_68 +# endif +# ifdef XLAT_VAL_69 + | XLAT_VAL_69 +# endif +# ifdef XLAT_VAL_70 + | XLAT_VAL_70 +# endif +# ifdef XLAT_VAL_71 + | XLAT_VAL_71 +# endif +# ifdef XLAT_VAL_72 + | XLAT_VAL_72 +# endif +# ifdef XLAT_VAL_73 + | XLAT_VAL_73 +# endif +# ifdef XLAT_VAL_74 + | XLAT_VAL_74 +# endif +# ifdef XLAT_VAL_75 + | XLAT_VAL_75 +# endif +# ifdef XLAT_VAL_76 + | XLAT_VAL_76 +# endif +# ifdef XLAT_VAL_77 + | XLAT_VAL_77 +# endif +# ifdef XLAT_VAL_78 + | XLAT_VAL_78 +# endif +# ifdef XLAT_VAL_79 + | XLAT_VAL_79 +# endif +# ifdef XLAT_VAL_80 + | XLAT_VAL_80 +# endif +# ifdef XLAT_VAL_81 + | XLAT_VAL_81 +# endif +# ifdef XLAT_VAL_82 + | XLAT_VAL_82 +# endif +# ifdef XLAT_VAL_83 + | XLAT_VAL_83 +# endif +# ifdef XLAT_VAL_84 + | XLAT_VAL_84 +# endif +# ifdef XLAT_VAL_85 + | XLAT_VAL_85 +# endif +# ifdef XLAT_VAL_86 + | XLAT_VAL_86 +# endif +# ifdef XLAT_VAL_87 + | XLAT_VAL_87 +# endif +# ifdef XLAT_VAL_88 + | XLAT_VAL_88 +# endif +# ifdef XLAT_VAL_89 + | XLAT_VAL_89 +# endif +# ifdef XLAT_VAL_90 + | XLAT_VAL_90 +# endif +# ifdef XLAT_VAL_91 + | XLAT_VAL_91 +# endif +# ifdef XLAT_VAL_92 + | XLAT_VAL_92 +# endif +# ifdef XLAT_VAL_93 + | XLAT_VAL_93 +# endif +# ifdef XLAT_VAL_94 + | XLAT_VAL_94 +# endif +# ifdef XLAT_VAL_95 + | XLAT_VAL_95 +# endif +# ifdef XLAT_VAL_96 + | XLAT_VAL_96 +# endif +# ifdef XLAT_VAL_97 + | XLAT_VAL_97 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif +# ifdef XLAT_STR_41 + + sizeof(XLAT_STR_41) +# endif +# ifdef XLAT_STR_42 + + sizeof(XLAT_STR_42) +# endif +# ifdef XLAT_STR_43 + + sizeof(XLAT_STR_43) +# endif +# ifdef XLAT_STR_44 + + sizeof(XLAT_STR_44) +# endif +# ifdef XLAT_STR_45 + + sizeof(XLAT_STR_45) +# endif +# ifdef XLAT_STR_46 + + sizeof(XLAT_STR_46) +# endif +# ifdef XLAT_STR_47 + + sizeof(XLAT_STR_47) +# endif +# ifdef XLAT_STR_48 + + sizeof(XLAT_STR_48) +# endif +# ifdef XLAT_STR_49 + + sizeof(XLAT_STR_49) +# endif +# ifdef XLAT_STR_50 + + sizeof(XLAT_STR_50) +# endif +# ifdef XLAT_STR_51 + + sizeof(XLAT_STR_51) +# endif +# ifdef XLAT_STR_52 + + sizeof(XLAT_STR_52) +# endif +# ifdef XLAT_STR_53 + + sizeof(XLAT_STR_53) +# endif +# ifdef XLAT_STR_54 + + sizeof(XLAT_STR_54) +# endif +# ifdef XLAT_STR_55 + + sizeof(XLAT_STR_55) +# endif +# ifdef XLAT_STR_56 + + sizeof(XLAT_STR_56) +# endif +# ifdef XLAT_STR_57 + + sizeof(XLAT_STR_57) +# endif +# ifdef XLAT_STR_58 + + sizeof(XLAT_STR_58) +# endif +# ifdef XLAT_STR_59 + + sizeof(XLAT_STR_59) +# endif +# ifdef XLAT_STR_60 + + sizeof(XLAT_STR_60) +# endif +# ifdef XLAT_STR_61 + + sizeof(XLAT_STR_61) +# endif +# ifdef XLAT_STR_62 + + sizeof(XLAT_STR_62) +# endif +# ifdef XLAT_STR_63 + + sizeof(XLAT_STR_63) +# endif +# ifdef XLAT_STR_64 + + sizeof(XLAT_STR_64) +# endif +# ifdef XLAT_STR_65 + + sizeof(XLAT_STR_65) +# endif +# ifdef XLAT_STR_66 + + sizeof(XLAT_STR_66) +# endif +# ifdef XLAT_STR_67 + + sizeof(XLAT_STR_67) +# endif +# ifdef XLAT_STR_68 + + sizeof(XLAT_STR_68) +# endif +# ifdef XLAT_STR_69 + + sizeof(XLAT_STR_69) +# endif +# ifdef XLAT_STR_70 + + sizeof(XLAT_STR_70) +# endif +# ifdef XLAT_STR_71 + + sizeof(XLAT_STR_71) +# endif +# ifdef XLAT_STR_72 + + sizeof(XLAT_STR_72) +# endif +# ifdef XLAT_STR_73 + + sizeof(XLAT_STR_73) +# endif +# ifdef XLAT_STR_74 + + sizeof(XLAT_STR_74) +# endif +# ifdef XLAT_STR_75 + + sizeof(XLAT_STR_75) +# endif +# ifdef XLAT_STR_76 + + sizeof(XLAT_STR_76) +# endif +# ifdef XLAT_STR_77 + + sizeof(XLAT_STR_77) +# endif +# ifdef XLAT_STR_78 + + sizeof(XLAT_STR_78) +# endif +# ifdef XLAT_STR_79 + + sizeof(XLAT_STR_79) +# endif +# ifdef XLAT_STR_80 + + sizeof(XLAT_STR_80) +# endif +# ifdef XLAT_STR_81 + + sizeof(XLAT_STR_81) +# endif +# ifdef XLAT_STR_82 + + sizeof(XLAT_STR_82) +# endif +# ifdef XLAT_STR_83 + + sizeof(XLAT_STR_83) +# endif +# ifdef XLAT_STR_84 + + sizeof(XLAT_STR_84) +# endif +# ifdef XLAT_STR_85 + + sizeof(XLAT_STR_85) +# endif +# ifdef XLAT_STR_86 + + sizeof(XLAT_STR_86) +# endif +# ifdef XLAT_STR_87 + + sizeof(XLAT_STR_87) +# endif +# ifdef XLAT_STR_88 + + sizeof(XLAT_STR_88) +# endif +# ifdef XLAT_STR_89 + + sizeof(XLAT_STR_89) +# endif +# ifdef XLAT_STR_90 + + sizeof(XLAT_STR_90) +# endif +# ifdef XLAT_STR_91 + + sizeof(XLAT_STR_91) +# endif +# ifdef XLAT_STR_92 + + sizeof(XLAT_STR_92) +# endif +# ifdef XLAT_STR_93 + + sizeof(XLAT_STR_93) +# endif +# ifdef XLAT_STR_94 + + sizeof(XLAT_STR_94) +# endif +# ifdef XLAT_STR_95 + + sizeof(XLAT_STR_95) +# endif +# ifdef XLAT_STR_96 + + sizeof(XLAT_STR_96) +# endif +# ifdef XLAT_STR_97 + + sizeof(XLAT_STR_97) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 +# undef XLAT_STR_41 +# undef XLAT_VAL_41 +# undef XLAT_STR_42 +# undef XLAT_VAL_42 +# undef XLAT_STR_43 +# undef XLAT_VAL_43 +# undef XLAT_STR_44 +# undef XLAT_VAL_44 +# undef XLAT_STR_45 +# undef XLAT_VAL_45 +# undef XLAT_STR_46 +# undef XLAT_VAL_46 +# undef XLAT_STR_47 +# undef XLAT_VAL_47 +# undef XLAT_STR_48 +# undef XLAT_VAL_48 +# undef XLAT_STR_49 +# undef XLAT_VAL_49 +# undef XLAT_STR_50 +# undef XLAT_VAL_50 +# undef XLAT_STR_51 +# undef XLAT_VAL_51 +# undef XLAT_STR_52 +# undef XLAT_VAL_52 +# undef XLAT_STR_53 +# undef XLAT_VAL_53 +# undef XLAT_STR_54 +# undef XLAT_VAL_54 +# undef XLAT_STR_55 +# undef XLAT_VAL_55 +# undef XLAT_STR_56 +# undef XLAT_VAL_56 +# undef XLAT_STR_57 +# undef XLAT_VAL_57 +# undef XLAT_STR_58 +# undef XLAT_VAL_58 +# undef XLAT_STR_59 +# undef XLAT_VAL_59 +# undef XLAT_STR_60 +# undef XLAT_VAL_60 +# undef XLAT_STR_61 +# undef XLAT_VAL_61 +# undef XLAT_STR_62 +# undef XLAT_VAL_62 +# undef XLAT_STR_63 +# undef XLAT_VAL_63 +# undef XLAT_STR_64 +# undef XLAT_VAL_64 +# undef XLAT_STR_65 +# undef XLAT_VAL_65 +# undef XLAT_STR_66 +# undef XLAT_VAL_66 +# undef XLAT_STR_67 +# undef XLAT_VAL_67 +# undef XLAT_STR_68 +# undef XLAT_VAL_68 +# undef XLAT_STR_69 +# undef XLAT_VAL_69 +# undef XLAT_STR_70 +# undef XLAT_VAL_70 +# undef XLAT_STR_71 +# undef XLAT_VAL_71 +# undef XLAT_STR_72 +# undef XLAT_VAL_72 +# undef XLAT_STR_73 +# undef XLAT_VAL_73 +# undef XLAT_STR_74 +# undef XLAT_VAL_74 +# undef XLAT_STR_75 +# undef XLAT_VAL_75 +# undef XLAT_STR_76 +# undef XLAT_VAL_76 +# undef XLAT_STR_77 +# undef XLAT_VAL_77 +# undef XLAT_STR_78 +# undef XLAT_VAL_78 +# undef XLAT_STR_79 +# undef XLAT_VAL_79 +# undef XLAT_STR_80 +# undef XLAT_VAL_80 +# undef XLAT_STR_81 +# undef XLAT_VAL_81 +# undef XLAT_STR_82 +# undef XLAT_VAL_82 +# undef XLAT_STR_83 +# undef XLAT_VAL_83 +# undef XLAT_STR_84 +# undef XLAT_VAL_84 +# undef XLAT_STR_85 +# undef XLAT_VAL_85 +# undef XLAT_STR_86 +# undef XLAT_VAL_86 +# undef XLAT_STR_87 +# undef XLAT_VAL_87 +# undef XLAT_STR_88 +# undef XLAT_VAL_88 +# undef XLAT_STR_89 +# undef XLAT_VAL_89 +# undef XLAT_STR_90 +# undef XLAT_VAL_90 +# undef XLAT_STR_91 +# undef XLAT_VAL_91 +# undef XLAT_STR_92 +# undef XLAT_VAL_92 +# undef XLAT_STR_93 +# undef XLAT_VAL_93 +# undef XLAT_STR_94 +# undef XLAT_VAL_94 +# undef XLAT_STR_95 +# undef XLAT_VAL_95 +# undef XLAT_STR_96 +# undef XLAT_VAL_96 +# undef XLAT_STR_97 +# undef XLAT_VAL_97 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/nl_audit_types.in b/xlat/nl_audit_types.in index afba5cd5..109bc636 100644 --- a/xlat/nl_audit_types.in +++ b/xlat/nl_audit_types.in @@ -1,3 +1,4 @@ +#sorted sort -k2,2n AUDIT_GET 1000 AUDIT_SET 1001 AUDIT_LIST 1002 @@ -75,6 +76,11 @@ AUDIT_FEATURE_CHANGE 1328 AUDIT_REPLACE 1329 AUDIT_KERN_MODULE 1330 +AUDIT_FANOTIFY 1331 +AUDIT_TIME_INJOFFSET 1332 +AUDIT_TIME_ADJNTPVAL 1333 +AUDIT_BPF 1334 +AUDIT_EVENT_LISTENER 1335 AUDIT_AVC 1400 AUDIT_SELINUX_ERR 1401 @@ -100,6 +106,7 @@ AUDIT_MAC_CALIPSO_DEL 1419 AUDIT_ANOM_PROMISCUOUS 1700 AUDIT_ANOM_ABEND 1701 AUDIT_ANOM_LINK 1702 +AUDIT_ANOM_CREAT 1703 AUDIT_LAST_KERN_ANOM_MSG 1799 AUDIT_INTEGRITY_DATA 1800 diff --git a/xlat/nl_crypto_types.h b/xlat/nl_crypto_types.h index 87b6a68f..18132bb9 100644 --- a/xlat/nl_crypto_types.h +++ b/xlat/nl_crypto_types.h @@ -47,16 +47,74 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat nl_crypto_types[] = { +static const struct xlat_data nl_crypto_types_xdata[] = { XLAT(CRYPTO_MSG_NEWALG), + #define XLAT_VAL_0 ((unsigned) (CRYPTO_MSG_NEWALG)) + #define XLAT_STR_0 STRINGIFY(CRYPTO_MSG_NEWALG) XLAT(CRYPTO_MSG_DELALG), + #define XLAT_VAL_1 ((unsigned) (CRYPTO_MSG_DELALG)) + #define XLAT_STR_1 STRINGIFY(CRYPTO_MSG_DELALG) XLAT(CRYPTO_MSG_UPDATEALG), + #define XLAT_VAL_2 ((unsigned) (CRYPTO_MSG_UPDATEALG)) + #define XLAT_STR_2 STRINGIFY(CRYPTO_MSG_UPDATEALG) XLAT(CRYPTO_MSG_GETALG), + #define XLAT_VAL_3 ((unsigned) (CRYPTO_MSG_GETALG)) + #define XLAT_STR_3 STRINGIFY(CRYPTO_MSG_GETALG) XLAT(CRYPTO_MSG_DELRNG), - XLAT_END + #define XLAT_VAL_4 ((unsigned) (CRYPTO_MSG_DELRNG)) + #define XLAT_STR_4 STRINGIFY(CRYPTO_MSG_DELRNG) }; +static +const struct xlat nl_crypto_types[1] = { { + .data = nl_crypto_types_xdata, + .size = ARRAY_SIZE(nl_crypto_types_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/nl_netfilter_msg_types.h b/xlat/nl_netfilter_msg_types.h index a92f1870..a5310f4d 100644 --- a/xlat/nl_netfilter_msg_types.h +++ b/xlat/nl_netfilter_msg_types.h @@ -22,12 +22,40 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # ifndef IN_MPERS -const struct xlat nl_netfilter_msg_types[] = { +static const struct xlat_data nl_netfilter_msg_types_xdata[] = { XLAT(NFNL_MSG_BATCH_BEGIN), + #define XLAT_VAL_0 ((unsigned) (NFNL_MSG_BATCH_BEGIN)) + #define XLAT_STR_0 STRINGIFY(NFNL_MSG_BATCH_BEGIN) XLAT(NFNL_MSG_BATCH_END), - XLAT_END + #define XLAT_VAL_1 ((unsigned) (NFNL_MSG_BATCH_END)) + #define XLAT_STR_1 STRINGIFY(NFNL_MSG_BATCH_END) }; +const struct xlat nl_netfilter_msg_types[1] = { { + .data = nl_netfilter_msg_types_xdata, + .size = ARRAY_SIZE(nl_netfilter_msg_types_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/nl_netfilter_subsys_ids.h b/xlat/nl_netfilter_subsys_ids.h index f6af1f3f..157e1bc5 100644 --- a/xlat/nl_netfilter_subsys_ids.h +++ b/xlat/nl_netfilter_subsys_ids.h @@ -96,23 +96,151 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat nl_netfilter_subsys_ids[] = { - XLAT(NFNL_SUBSYS_NONE), - XLAT(NFNL_SUBSYS_CTNETLINK), - XLAT(NFNL_SUBSYS_CTNETLINK_EXP), - XLAT(NFNL_SUBSYS_QUEUE), - XLAT(NFNL_SUBSYS_ULOG), - XLAT(NFNL_SUBSYS_OSF), - XLAT(NFNL_SUBSYS_IPSET), - XLAT(NFNL_SUBSYS_ACCT), - XLAT(NFNL_SUBSYS_CTNETLINK_TIMEOUT), - XLAT(NFNL_SUBSYS_CTHELPER), - XLAT(NFNL_SUBSYS_NFTABLES), - XLAT(NFNL_SUBSYS_NFT_COMPAT), - XLAT_END +static const struct xlat_data nl_netfilter_subsys_ids_xdata[] = { + [NFNL_SUBSYS_NONE] = XLAT(NFNL_SUBSYS_NONE), + #define XLAT_VAL_0 ((unsigned) (NFNL_SUBSYS_NONE)) + #define XLAT_STR_0 STRINGIFY(NFNL_SUBSYS_NONE) + [NFNL_SUBSYS_CTNETLINK] = XLAT(NFNL_SUBSYS_CTNETLINK), + #define XLAT_VAL_1 ((unsigned) (NFNL_SUBSYS_CTNETLINK)) + #define XLAT_STR_1 STRINGIFY(NFNL_SUBSYS_CTNETLINK) + [NFNL_SUBSYS_CTNETLINK_EXP] = XLAT(NFNL_SUBSYS_CTNETLINK_EXP), + #define XLAT_VAL_2 ((unsigned) (NFNL_SUBSYS_CTNETLINK_EXP)) + #define XLAT_STR_2 STRINGIFY(NFNL_SUBSYS_CTNETLINK_EXP) + [NFNL_SUBSYS_QUEUE] = XLAT(NFNL_SUBSYS_QUEUE), + #define XLAT_VAL_3 ((unsigned) (NFNL_SUBSYS_QUEUE)) + #define XLAT_STR_3 STRINGIFY(NFNL_SUBSYS_QUEUE) + [NFNL_SUBSYS_ULOG] = XLAT(NFNL_SUBSYS_ULOG), + #define XLAT_VAL_4 ((unsigned) (NFNL_SUBSYS_ULOG)) + #define XLAT_STR_4 STRINGIFY(NFNL_SUBSYS_ULOG) + [NFNL_SUBSYS_OSF] = XLAT(NFNL_SUBSYS_OSF), + #define XLAT_VAL_5 ((unsigned) (NFNL_SUBSYS_OSF)) + #define XLAT_STR_5 STRINGIFY(NFNL_SUBSYS_OSF) + [NFNL_SUBSYS_IPSET] = XLAT(NFNL_SUBSYS_IPSET), + #define XLAT_VAL_6 ((unsigned) (NFNL_SUBSYS_IPSET)) + #define XLAT_STR_6 STRINGIFY(NFNL_SUBSYS_IPSET) + [NFNL_SUBSYS_ACCT] = XLAT(NFNL_SUBSYS_ACCT), + #define XLAT_VAL_7 ((unsigned) (NFNL_SUBSYS_ACCT)) + #define XLAT_STR_7 STRINGIFY(NFNL_SUBSYS_ACCT) + [NFNL_SUBSYS_CTNETLINK_TIMEOUT] = XLAT(NFNL_SUBSYS_CTNETLINK_TIMEOUT), + #define XLAT_VAL_8 ((unsigned) (NFNL_SUBSYS_CTNETLINK_TIMEOUT)) + #define XLAT_STR_8 STRINGIFY(NFNL_SUBSYS_CTNETLINK_TIMEOUT) + [NFNL_SUBSYS_CTHELPER] = XLAT(NFNL_SUBSYS_CTHELPER), + #define XLAT_VAL_9 ((unsigned) (NFNL_SUBSYS_CTHELPER)) + #define XLAT_STR_9 STRINGIFY(NFNL_SUBSYS_CTHELPER) + [NFNL_SUBSYS_NFTABLES] = XLAT(NFNL_SUBSYS_NFTABLES), + #define XLAT_VAL_10 ((unsigned) (NFNL_SUBSYS_NFTABLES)) + #define XLAT_STR_10 STRINGIFY(NFNL_SUBSYS_NFTABLES) + [NFNL_SUBSYS_NFT_COMPAT] = XLAT(NFNL_SUBSYS_NFT_COMPAT), + #define XLAT_VAL_11 ((unsigned) (NFNL_SUBSYS_NFT_COMPAT)) + #define XLAT_STR_11 STRINGIFY(NFNL_SUBSYS_NFT_COMPAT) }; +static +const struct xlat nl_netfilter_subsys_ids[1] = { { + .data = nl_netfilter_subsys_ids_xdata, + .size = ARRAY_SIZE(nl_netfilter_subsys_ids_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/nl_netfilter_subsys_ids.in b/xlat/nl_netfilter_subsys_ids.in index 52aad872..815d0772 100644 --- a/xlat/nl_netfilter_subsys_ids.in +++ b/xlat/nl_netfilter_subsys_ids.in @@ -1,3 +1,4 @@ +#value_indexed NFNL_SUBSYS_NONE 0 NFNL_SUBSYS_CTNETLINK 1 NFNL_SUBSYS_CTNETLINK_EXP 2 diff --git a/xlat/nl_route_types.h b/xlat/nl_route_types.h index 80b06fe5..c8dd4ad4 100644 --- a/xlat/nl_route_types.h +++ b/xlat/nl_route_types.h @@ -367,86 +367,669 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define RTM_GETSTATS 94 #endif +#if defined(RTM_NEWCHAIN) || (defined(HAVE_DECL_RTM_NEWCHAIN) && HAVE_DECL_RTM_NEWCHAIN) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTM_NEWCHAIN) == (100), "RTM_NEWCHAIN != 100"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTM_NEWCHAIN 100 +#endif +#if defined(RTM_DELCHAIN) || (defined(HAVE_DECL_RTM_DELCHAIN) && HAVE_DECL_RTM_DELCHAIN) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTM_DELCHAIN) == (101), "RTM_DELCHAIN != 101"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTM_DELCHAIN 101 +#endif +#if defined(RTM_GETCHAIN) || (defined(HAVE_DECL_RTM_GETCHAIN) && HAVE_DECL_RTM_GETCHAIN) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTM_GETCHAIN) == (102), "RTM_GETCHAIN != 102"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTM_GETCHAIN 102 +#endif #ifndef XLAT_MACROS_ONLY # ifndef IN_MPERS -const struct xlat nl_route_types[] = { +static const struct xlat_data nl_route_types_xdata[] = { XLAT(RTM_NEWLINK), + #define XLAT_VAL_0 ((unsigned) (RTM_NEWLINK)) + #define XLAT_STR_0 STRINGIFY(RTM_NEWLINK) XLAT(RTM_DELLINK), + #define XLAT_VAL_1 ((unsigned) (RTM_DELLINK)) + #define XLAT_STR_1 STRINGIFY(RTM_DELLINK) XLAT(RTM_GETLINK), + #define XLAT_VAL_2 ((unsigned) (RTM_GETLINK)) + #define XLAT_STR_2 STRINGIFY(RTM_GETLINK) XLAT(RTM_SETLINK), + #define XLAT_VAL_3 ((unsigned) (RTM_SETLINK)) + #define XLAT_STR_3 STRINGIFY(RTM_SETLINK) XLAT(RTM_NEWADDR), + #define XLAT_VAL_4 ((unsigned) (RTM_NEWADDR)) + #define XLAT_STR_4 STRINGIFY(RTM_NEWADDR) XLAT(RTM_DELADDR), + #define XLAT_VAL_5 ((unsigned) (RTM_DELADDR)) + #define XLAT_STR_5 STRINGIFY(RTM_DELADDR) XLAT(RTM_GETADDR), + #define XLAT_VAL_6 ((unsigned) (RTM_GETADDR)) + #define XLAT_STR_6 STRINGIFY(RTM_GETADDR) XLAT(RTM_NEWROUTE), + #define XLAT_VAL_7 ((unsigned) (RTM_NEWROUTE)) + #define XLAT_STR_7 STRINGIFY(RTM_NEWROUTE) XLAT(RTM_DELROUTE), + #define XLAT_VAL_8 ((unsigned) (RTM_DELROUTE)) + #define XLAT_STR_8 STRINGIFY(RTM_DELROUTE) XLAT(RTM_GETROUTE), + #define XLAT_VAL_9 ((unsigned) (RTM_GETROUTE)) + #define XLAT_STR_9 STRINGIFY(RTM_GETROUTE) XLAT(RTM_NEWNEIGH), + #define XLAT_VAL_10 ((unsigned) (RTM_NEWNEIGH)) + #define XLAT_STR_10 STRINGIFY(RTM_NEWNEIGH) XLAT(RTM_DELNEIGH), + #define XLAT_VAL_11 ((unsigned) (RTM_DELNEIGH)) + #define XLAT_STR_11 STRINGIFY(RTM_DELNEIGH) XLAT(RTM_GETNEIGH), + #define XLAT_VAL_12 ((unsigned) (RTM_GETNEIGH)) + #define XLAT_STR_12 STRINGIFY(RTM_GETNEIGH) XLAT(RTM_NEWRULE), + #define XLAT_VAL_13 ((unsigned) (RTM_NEWRULE)) + #define XLAT_STR_13 STRINGIFY(RTM_NEWRULE) XLAT(RTM_DELRULE), + #define XLAT_VAL_14 ((unsigned) (RTM_DELRULE)) + #define XLAT_STR_14 STRINGIFY(RTM_DELRULE) XLAT(RTM_GETRULE), + #define XLAT_VAL_15 ((unsigned) (RTM_GETRULE)) + #define XLAT_STR_15 STRINGIFY(RTM_GETRULE) XLAT(RTM_NEWQDISC), + #define XLAT_VAL_16 ((unsigned) (RTM_NEWQDISC)) + #define XLAT_STR_16 STRINGIFY(RTM_NEWQDISC) XLAT(RTM_DELQDISC), + #define XLAT_VAL_17 ((unsigned) (RTM_DELQDISC)) + #define XLAT_STR_17 STRINGIFY(RTM_DELQDISC) XLAT(RTM_GETQDISC), + #define XLAT_VAL_18 ((unsigned) (RTM_GETQDISC)) + #define XLAT_STR_18 STRINGIFY(RTM_GETQDISC) XLAT(RTM_NEWTCLASS), + #define XLAT_VAL_19 ((unsigned) (RTM_NEWTCLASS)) + #define XLAT_STR_19 STRINGIFY(RTM_NEWTCLASS) XLAT(RTM_DELTCLASS), + #define XLAT_VAL_20 ((unsigned) (RTM_DELTCLASS)) + #define XLAT_STR_20 STRINGIFY(RTM_DELTCLASS) XLAT(RTM_GETTCLASS), + #define XLAT_VAL_21 ((unsigned) (RTM_GETTCLASS)) + #define XLAT_STR_21 STRINGIFY(RTM_GETTCLASS) XLAT(RTM_NEWTFILTER), + #define XLAT_VAL_22 ((unsigned) (RTM_NEWTFILTER)) + #define XLAT_STR_22 STRINGIFY(RTM_NEWTFILTER) XLAT(RTM_DELTFILTER), + #define XLAT_VAL_23 ((unsigned) (RTM_DELTFILTER)) + #define XLAT_STR_23 STRINGIFY(RTM_DELTFILTER) XLAT(RTM_GETTFILTER), + #define XLAT_VAL_24 ((unsigned) (RTM_GETTFILTER)) + #define XLAT_STR_24 STRINGIFY(RTM_GETTFILTER) XLAT(RTM_NEWACTION), + #define XLAT_VAL_25 ((unsigned) (RTM_NEWACTION)) + #define XLAT_STR_25 STRINGIFY(RTM_NEWACTION) XLAT(RTM_DELACTION), + #define XLAT_VAL_26 ((unsigned) (RTM_DELACTION)) + #define XLAT_STR_26 STRINGIFY(RTM_DELACTION) XLAT(RTM_GETACTION), + #define XLAT_VAL_27 ((unsigned) (RTM_GETACTION)) + #define XLAT_STR_27 STRINGIFY(RTM_GETACTION) XLAT(RTM_NEWPREFIX), + #define XLAT_VAL_28 ((unsigned) (RTM_NEWPREFIX)) + #define XLAT_STR_28 STRINGIFY(RTM_NEWPREFIX) XLAT(RTM_GETPREFIX), + #define XLAT_VAL_29 ((unsigned) (RTM_GETPREFIX)) + #define XLAT_STR_29 STRINGIFY(RTM_GETPREFIX) XLAT(RTM_GETMULTICAST), + #define XLAT_VAL_30 ((unsigned) (RTM_GETMULTICAST)) + #define XLAT_STR_30 STRINGIFY(RTM_GETMULTICAST) XLAT(RTM_GETANYCAST), + #define XLAT_VAL_31 ((unsigned) (RTM_GETANYCAST)) + #define XLAT_STR_31 STRINGIFY(RTM_GETANYCAST) XLAT(RTM_NEWNEIGHTBL), + #define XLAT_VAL_32 ((unsigned) (RTM_NEWNEIGHTBL)) + #define XLAT_STR_32 STRINGIFY(RTM_NEWNEIGHTBL) XLAT(RTM_GETNEIGHTBL), + #define XLAT_VAL_33 ((unsigned) (RTM_GETNEIGHTBL)) + #define XLAT_STR_33 STRINGIFY(RTM_GETNEIGHTBL) XLAT(RTM_SETNEIGHTBL), + #define XLAT_VAL_34 ((unsigned) (RTM_SETNEIGHTBL)) + #define XLAT_STR_34 STRINGIFY(RTM_SETNEIGHTBL) XLAT(RTM_NEWNDUSEROPT), + #define XLAT_VAL_35 ((unsigned) (RTM_NEWNDUSEROPT)) + #define XLAT_STR_35 STRINGIFY(RTM_NEWNDUSEROPT) XLAT(RTM_NEWADDRLABEL), + #define XLAT_VAL_36 ((unsigned) (RTM_NEWADDRLABEL)) + #define XLAT_STR_36 STRINGIFY(RTM_NEWADDRLABEL) XLAT(RTM_DELADDRLABEL), + #define XLAT_VAL_37 ((unsigned) (RTM_DELADDRLABEL)) + #define XLAT_STR_37 STRINGIFY(RTM_DELADDRLABEL) XLAT(RTM_GETADDRLABEL), + #define XLAT_VAL_38 ((unsigned) (RTM_GETADDRLABEL)) + #define XLAT_STR_38 STRINGIFY(RTM_GETADDRLABEL) XLAT(RTM_GETDCB), + #define XLAT_VAL_39 ((unsigned) (RTM_GETDCB)) + #define XLAT_STR_39 STRINGIFY(RTM_GETDCB) XLAT(RTM_SETDCB), + #define XLAT_VAL_40 ((unsigned) (RTM_SETDCB)) + #define XLAT_STR_40 STRINGIFY(RTM_SETDCB) XLAT(RTM_NEWNETCONF), + #define XLAT_VAL_41 ((unsigned) (RTM_NEWNETCONF)) + #define XLAT_STR_41 STRINGIFY(RTM_NEWNETCONF) XLAT(RTM_DELNETCONF), + #define XLAT_VAL_42 ((unsigned) (RTM_DELNETCONF)) + #define XLAT_STR_42 STRINGIFY(RTM_DELNETCONF) XLAT(RTM_GETNETCONF), + #define XLAT_VAL_43 ((unsigned) (RTM_GETNETCONF)) + #define XLAT_STR_43 STRINGIFY(RTM_GETNETCONF) XLAT(RTM_NEWMDB), + #define XLAT_VAL_44 ((unsigned) (RTM_NEWMDB)) + #define XLAT_STR_44 STRINGIFY(RTM_NEWMDB) XLAT(RTM_DELMDB), + #define XLAT_VAL_45 ((unsigned) (RTM_DELMDB)) + #define XLAT_STR_45 STRINGIFY(RTM_DELMDB) XLAT(RTM_GETMDB), + #define XLAT_VAL_46 ((unsigned) (RTM_GETMDB)) + #define XLAT_STR_46 STRINGIFY(RTM_GETMDB) XLAT(RTM_NEWNSID), + #define XLAT_VAL_47 ((unsigned) (RTM_NEWNSID)) + #define XLAT_STR_47 STRINGIFY(RTM_NEWNSID) XLAT(RTM_DELNSID), + #define XLAT_VAL_48 ((unsigned) (RTM_DELNSID)) + #define XLAT_STR_48 STRINGIFY(RTM_DELNSID) XLAT(RTM_GETNSID), + #define XLAT_VAL_49 ((unsigned) (RTM_GETNSID)) + #define XLAT_STR_49 STRINGIFY(RTM_GETNSID) XLAT(RTM_NEWSTATS), + #define XLAT_VAL_50 ((unsigned) (RTM_NEWSTATS)) + #define XLAT_STR_50 STRINGIFY(RTM_NEWSTATS) XLAT(RTM_GETSTATS), - XLAT_END + #define XLAT_VAL_51 ((unsigned) (RTM_GETSTATS)) + #define XLAT_STR_51 STRINGIFY(RTM_GETSTATS) + + XLAT(RTM_NEWCHAIN), + #define XLAT_VAL_52 ((unsigned) (RTM_NEWCHAIN)) + #define XLAT_STR_52 STRINGIFY(RTM_NEWCHAIN) + XLAT(RTM_DELCHAIN), + #define XLAT_VAL_53 ((unsigned) (RTM_DELCHAIN)) + #define XLAT_STR_53 STRINGIFY(RTM_DELCHAIN) + XLAT(RTM_GETCHAIN), + #define XLAT_VAL_54 ((unsigned) (RTM_GETCHAIN)) + #define XLAT_STR_54 STRINGIFY(RTM_GETCHAIN) }; +const struct xlat nl_route_types[1] = { { + .data = nl_route_types_xdata, + .size = ARRAY_SIZE(nl_route_types_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif +# ifdef XLAT_VAL_41 + | XLAT_VAL_41 +# endif +# ifdef XLAT_VAL_42 + | XLAT_VAL_42 +# endif +# ifdef XLAT_VAL_43 + | XLAT_VAL_43 +# endif +# ifdef XLAT_VAL_44 + | XLAT_VAL_44 +# endif +# ifdef XLAT_VAL_45 + | XLAT_VAL_45 +# endif +# ifdef XLAT_VAL_46 + | XLAT_VAL_46 +# endif +# ifdef XLAT_VAL_47 + | XLAT_VAL_47 +# endif +# ifdef XLAT_VAL_48 + | XLAT_VAL_48 +# endif +# ifdef XLAT_VAL_49 + | XLAT_VAL_49 +# endif +# ifdef XLAT_VAL_50 + | XLAT_VAL_50 +# endif +# ifdef XLAT_VAL_51 + | XLAT_VAL_51 +# endif +# ifdef XLAT_VAL_52 + | XLAT_VAL_52 +# endif +# ifdef XLAT_VAL_53 + | XLAT_VAL_53 +# endif +# ifdef XLAT_VAL_54 + | XLAT_VAL_54 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif +# ifdef XLAT_STR_41 + + sizeof(XLAT_STR_41) +# endif +# ifdef XLAT_STR_42 + + sizeof(XLAT_STR_42) +# endif +# ifdef XLAT_STR_43 + + sizeof(XLAT_STR_43) +# endif +# ifdef XLAT_STR_44 + + sizeof(XLAT_STR_44) +# endif +# ifdef XLAT_STR_45 + + sizeof(XLAT_STR_45) +# endif +# ifdef XLAT_STR_46 + + sizeof(XLAT_STR_46) +# endif +# ifdef XLAT_STR_47 + + sizeof(XLAT_STR_47) +# endif +# ifdef XLAT_STR_48 + + sizeof(XLAT_STR_48) +# endif +# ifdef XLAT_STR_49 + + sizeof(XLAT_STR_49) +# endif +# ifdef XLAT_STR_50 + + sizeof(XLAT_STR_50) +# endif +# ifdef XLAT_STR_51 + + sizeof(XLAT_STR_51) +# endif +# ifdef XLAT_STR_52 + + sizeof(XLAT_STR_52) +# endif +# ifdef XLAT_STR_53 + + sizeof(XLAT_STR_53) +# endif +# ifdef XLAT_STR_54 + + sizeof(XLAT_STR_54) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 +# undef XLAT_STR_41 +# undef XLAT_VAL_41 +# undef XLAT_STR_42 +# undef XLAT_VAL_42 +# undef XLAT_STR_43 +# undef XLAT_VAL_43 +# undef XLAT_STR_44 +# undef XLAT_VAL_44 +# undef XLAT_STR_45 +# undef XLAT_VAL_45 +# undef XLAT_STR_46 +# undef XLAT_VAL_46 +# undef XLAT_STR_47 +# undef XLAT_VAL_47 +# undef XLAT_STR_48 +# undef XLAT_VAL_48 +# undef XLAT_STR_49 +# undef XLAT_VAL_49 +# undef XLAT_STR_50 +# undef XLAT_VAL_50 +# undef XLAT_STR_51 +# undef XLAT_VAL_51 +# undef XLAT_STR_52 +# undef XLAT_VAL_52 +# undef XLAT_STR_53 +# undef XLAT_VAL_53 +# undef XLAT_STR_54 +# undef XLAT_VAL_54 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/nl_route_types.in b/xlat/nl_route_types.in index 0356b615..c389ab96 100644 --- a/xlat/nl_route_types.in +++ b/xlat/nl_route_types.in @@ -69,3 +69,7 @@ RTM_GETNSID 90 RTM_NEWSTATS 92 RTM_GETSTATS 94 + +RTM_NEWCHAIN 100 +RTM_DELCHAIN 101 +RTM_GETCHAIN 102 diff --git a/xlat/nl_selinux_types.h b/xlat/nl_selinux_types.h index 95ae3df0..255520e0 100644 --- a/xlat/nl_selinux_types.h +++ b/xlat/nl_selinux_types.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat nl_selinux_types[] = { +static const struct xlat_data nl_selinux_types_xdata[] = { XLAT(SELNL_MSG_SETENFORCE), + #define XLAT_VAL_0 ((unsigned) (SELNL_MSG_SETENFORCE)) + #define XLAT_STR_0 STRINGIFY(SELNL_MSG_SETENFORCE) XLAT(SELNL_MSG_POLICYLOAD), - XLAT_END + #define XLAT_VAL_1 ((unsigned) (SELNL_MSG_POLICYLOAD)) + #define XLAT_STR_1 STRINGIFY(SELNL_MSG_POLICYLOAD) }; +static +const struct xlat nl_selinux_types[1] = { { + .data = nl_selinux_types_xdata, + .size = ARRAY_SIZE(nl_selinux_types_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/nl_sock_diag_types.h b/xlat/nl_sock_diag_types.h index d0afe449..5e26ef10 100644 --- a/xlat/nl_sock_diag_types.h +++ b/xlat/nl_sock_diag_types.h @@ -40,15 +40,63 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat nl_sock_diag_types[] = { +static const struct xlat_data nl_sock_diag_types_xdata[] = { XLAT(TCPDIAG_GETSOCK), + #define XLAT_VAL_0 ((unsigned) (TCPDIAG_GETSOCK)) + #define XLAT_STR_0 STRINGIFY(TCPDIAG_GETSOCK) XLAT(DCCPDIAG_GETSOCK), + #define XLAT_VAL_1 ((unsigned) (DCCPDIAG_GETSOCK)) + #define XLAT_STR_1 STRINGIFY(DCCPDIAG_GETSOCK) XLAT(SOCK_DIAG_BY_FAMILY), + #define XLAT_VAL_2 ((unsigned) (SOCK_DIAG_BY_FAMILY)) + #define XLAT_STR_2 STRINGIFY(SOCK_DIAG_BY_FAMILY) XLAT(SOCK_DESTROY), - XLAT_END + #define XLAT_VAL_3 ((unsigned) (SOCK_DESTROY)) + #define XLAT_STR_3 STRINGIFY(SOCK_DESTROY) }; +static +const struct xlat nl_sock_diag_types[1] = { { + .data = nl_sock_diag_types_xdata, + .size = ARRAY_SIZE(nl_sock_diag_types_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/nl_xfrm_types.h b/xlat/nl_xfrm_types.h index 47240fdb..cce02bb1 100644 --- a/xlat/nl_xfrm_types.h +++ b/xlat/nl_xfrm_types.h @@ -173,45 +173,283 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat nl_xfrm_types[] = { +static const struct xlat_data nl_xfrm_types_xdata[] = { XLAT(XFRM_MSG_NEWSA), + #define XLAT_VAL_0 ((unsigned) (XFRM_MSG_NEWSA)) + #define XLAT_STR_0 STRINGIFY(XFRM_MSG_NEWSA) XLAT(XFRM_MSG_DELSA), + #define XLAT_VAL_1 ((unsigned) (XFRM_MSG_DELSA)) + #define XLAT_STR_1 STRINGIFY(XFRM_MSG_DELSA) XLAT(XFRM_MSG_GETSA), + #define XLAT_VAL_2 ((unsigned) (XFRM_MSG_GETSA)) + #define XLAT_STR_2 STRINGIFY(XFRM_MSG_GETSA) XLAT(XFRM_MSG_NEWPOLICY), + #define XLAT_VAL_3 ((unsigned) (XFRM_MSG_NEWPOLICY)) + #define XLAT_STR_3 STRINGIFY(XFRM_MSG_NEWPOLICY) XLAT(XFRM_MSG_DELPOLICY), + #define XLAT_VAL_4 ((unsigned) (XFRM_MSG_DELPOLICY)) + #define XLAT_STR_4 STRINGIFY(XFRM_MSG_DELPOLICY) XLAT(XFRM_MSG_GETPOLICY), + #define XLAT_VAL_5 ((unsigned) (XFRM_MSG_GETPOLICY)) + #define XLAT_STR_5 STRINGIFY(XFRM_MSG_GETPOLICY) XLAT(XFRM_MSG_ALLOCSPI), + #define XLAT_VAL_6 ((unsigned) (XFRM_MSG_ALLOCSPI)) + #define XLAT_STR_6 STRINGIFY(XFRM_MSG_ALLOCSPI) XLAT(XFRM_MSG_ACQUIRE), + #define XLAT_VAL_7 ((unsigned) (XFRM_MSG_ACQUIRE)) + #define XLAT_STR_7 STRINGIFY(XFRM_MSG_ACQUIRE) XLAT(XFRM_MSG_EXPIRE), + #define XLAT_VAL_8 ((unsigned) (XFRM_MSG_EXPIRE)) + #define XLAT_STR_8 STRINGIFY(XFRM_MSG_EXPIRE) XLAT(XFRM_MSG_UPDPOLICY), + #define XLAT_VAL_9 ((unsigned) (XFRM_MSG_UPDPOLICY)) + #define XLAT_STR_9 STRINGIFY(XFRM_MSG_UPDPOLICY) XLAT(XFRM_MSG_UPDSA), + #define XLAT_VAL_10 ((unsigned) (XFRM_MSG_UPDSA)) + #define XLAT_STR_10 STRINGIFY(XFRM_MSG_UPDSA) XLAT(XFRM_MSG_POLEXPIRE), + #define XLAT_VAL_11 ((unsigned) (XFRM_MSG_POLEXPIRE)) + #define XLAT_STR_11 STRINGIFY(XFRM_MSG_POLEXPIRE) XLAT(XFRM_MSG_FLUSHSA), + #define XLAT_VAL_12 ((unsigned) (XFRM_MSG_FLUSHSA)) + #define XLAT_STR_12 STRINGIFY(XFRM_MSG_FLUSHSA) XLAT(XFRM_MSG_FLUSHPOLICY), + #define XLAT_VAL_13 ((unsigned) (XFRM_MSG_FLUSHPOLICY)) + #define XLAT_STR_13 STRINGIFY(XFRM_MSG_FLUSHPOLICY) XLAT(XFRM_MSG_NEWAE), + #define XLAT_VAL_14 ((unsigned) (XFRM_MSG_NEWAE)) + #define XLAT_STR_14 STRINGIFY(XFRM_MSG_NEWAE) XLAT(XFRM_MSG_GETAE), + #define XLAT_VAL_15 ((unsigned) (XFRM_MSG_GETAE)) + #define XLAT_STR_15 STRINGIFY(XFRM_MSG_GETAE) XLAT(XFRM_MSG_REPORT), + #define XLAT_VAL_16 ((unsigned) (XFRM_MSG_REPORT)) + #define XLAT_STR_16 STRINGIFY(XFRM_MSG_REPORT) XLAT(XFRM_MSG_MIGRATE), + #define XLAT_VAL_17 ((unsigned) (XFRM_MSG_MIGRATE)) + #define XLAT_STR_17 STRINGIFY(XFRM_MSG_MIGRATE) XLAT(XFRM_MSG_NEWSADINFO), + #define XLAT_VAL_18 ((unsigned) (XFRM_MSG_NEWSADINFO)) + #define XLAT_STR_18 STRINGIFY(XFRM_MSG_NEWSADINFO) XLAT(XFRM_MSG_GETSADINFO), + #define XLAT_VAL_19 ((unsigned) (XFRM_MSG_GETSADINFO)) + #define XLAT_STR_19 STRINGIFY(XFRM_MSG_GETSADINFO) XLAT(XFRM_MSG_NEWSPDINFO), + #define XLAT_VAL_20 ((unsigned) (XFRM_MSG_NEWSPDINFO)) + #define XLAT_STR_20 STRINGIFY(XFRM_MSG_NEWSPDINFO) XLAT(XFRM_MSG_GETSPDINFO), + #define XLAT_VAL_21 ((unsigned) (XFRM_MSG_GETSPDINFO)) + #define XLAT_STR_21 STRINGIFY(XFRM_MSG_GETSPDINFO) XLAT(XFRM_MSG_MAPPING), - XLAT_END + #define XLAT_VAL_22 ((unsigned) (XFRM_MSG_MAPPING)) + #define XLAT_STR_22 STRINGIFY(XFRM_MSG_MAPPING) }; +static +const struct xlat nl_xfrm_types[1] = { { + .data = nl_xfrm_types_xdata, + .size = ARRAY_SIZE(nl_xfrm_types_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/nlmsgerr_attrs.h b/xlat/nlmsgerr_attrs.h index 2d0f46f4..20c73721 100644 --- a/xlat/nlmsgerr_attrs.h +++ b/xlat/nlmsgerr_attrs.h @@ -40,15 +40,63 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat nlmsgerr_attrs[] = { - XLAT(NLMSGERR_ATTR_UNUSED), - XLAT(NLMSGERR_ATTR_MSG), - XLAT(NLMSGERR_ATTR_OFFS), - XLAT(NLMSGERR_ATTR_COOKIE), - XLAT_END +static const struct xlat_data nlmsgerr_attrs_xdata[] = { + [NLMSGERR_ATTR_UNUSED] = XLAT(NLMSGERR_ATTR_UNUSED), + #define XLAT_VAL_0 ((unsigned) (NLMSGERR_ATTR_UNUSED)) + #define XLAT_STR_0 STRINGIFY(NLMSGERR_ATTR_UNUSED) + [NLMSGERR_ATTR_MSG] = XLAT(NLMSGERR_ATTR_MSG), + #define XLAT_VAL_1 ((unsigned) (NLMSGERR_ATTR_MSG)) + #define XLAT_STR_1 STRINGIFY(NLMSGERR_ATTR_MSG) + [NLMSGERR_ATTR_OFFS] = XLAT(NLMSGERR_ATTR_OFFS), + #define XLAT_VAL_2 ((unsigned) (NLMSGERR_ATTR_OFFS)) + #define XLAT_STR_2 STRINGIFY(NLMSGERR_ATTR_OFFS) + [NLMSGERR_ATTR_COOKIE] = XLAT(NLMSGERR_ATTR_COOKIE), + #define XLAT_VAL_3 ((unsigned) (NLMSGERR_ATTR_COOKIE)) + #define XLAT_STR_3 STRINGIFY(NLMSGERR_ATTR_COOKIE) }; +static +const struct xlat nlmsgerr_attrs[1] = { { + .data = nlmsgerr_attrs_xdata, + .size = ARRAY_SIZE(nlmsgerr_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/nlmsgerr_attrs.in b/xlat/nlmsgerr_attrs.in index 589bc557..2b728808 100644 --- a/xlat/nlmsgerr_attrs.in +++ b/xlat/nlmsgerr_attrs.in @@ -1,3 +1,4 @@ +#value_indexed NLMSGERR_ATTR_UNUSED 0 NLMSGERR_ATTR_MSG 1 NLMSGERR_ATTR_OFFS 2 diff --git a/xlat/notifyflags.h b/xlat/notifyflags.h index cccc7d1f..8e0adcbe 100644 --- a/xlat/notifyflags.h +++ b/xlat/notifyflags.h @@ -12,32 +12,110 @@ # else -static -const struct xlat notifyflags[] = { +static const struct xlat_data notifyflags_xdata[] = { #if defined(DN_ACCESS) || (defined(HAVE_DECL_DN_ACCESS) && HAVE_DECL_DN_ACCESS) XLAT(DN_ACCESS), + #define XLAT_VAL_0 ((unsigned) (DN_ACCESS)) + #define XLAT_STR_0 STRINGIFY(DN_ACCESS) #endif #if defined(DN_MODIFY) || (defined(HAVE_DECL_DN_MODIFY) && HAVE_DECL_DN_MODIFY) XLAT(DN_MODIFY), + #define XLAT_VAL_1 ((unsigned) (DN_MODIFY)) + #define XLAT_STR_1 STRINGIFY(DN_MODIFY) #endif #if defined(DN_CREATE) || (defined(HAVE_DECL_DN_CREATE) && HAVE_DECL_DN_CREATE) XLAT(DN_CREATE), + #define XLAT_VAL_2 ((unsigned) (DN_CREATE)) + #define XLAT_STR_2 STRINGIFY(DN_CREATE) #endif #if defined(DN_DELETE) || (defined(HAVE_DECL_DN_DELETE) && HAVE_DECL_DN_DELETE) XLAT(DN_DELETE), + #define XLAT_VAL_3 ((unsigned) (DN_DELETE)) + #define XLAT_STR_3 STRINGIFY(DN_DELETE) #endif #if defined(DN_RENAME) || (defined(HAVE_DECL_DN_RENAME) && HAVE_DECL_DN_RENAME) XLAT(DN_RENAME), + #define XLAT_VAL_4 ((unsigned) (DN_RENAME)) + #define XLAT_STR_4 STRINGIFY(DN_RENAME) #endif #if defined(DN_ATTRIB) || (defined(HAVE_DECL_DN_ATTRIB) && HAVE_DECL_DN_ATTRIB) XLAT(DN_ATTRIB), + #define XLAT_VAL_5 ((unsigned) (DN_ATTRIB)) + #define XLAT_STR_5 STRINGIFY(DN_ATTRIB) #endif #if defined(DN_MULTISHOT) || (defined(HAVE_DECL_DN_MULTISHOT) && HAVE_DECL_DN_MULTISHOT) XLAT(DN_MULTISHOT), + #define XLAT_VAL_6 ((unsigned) (DN_MULTISHOT)) + #define XLAT_STR_6 STRINGIFY(DN_MULTISHOT) #endif - XLAT_END }; +static +const struct xlat notifyflags[1] = { { + .data = notifyflags_xdata, + .size = ARRAY_SIZE(notifyflags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/nt_descriptor_types.h b/xlat/nt_descriptor_types.h index 319dcdcc..6372e4aa 100644 --- a/xlat/nt_descriptor_types.h +++ b/xlat/nt_descriptor_types.h @@ -502,81 +502,789 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat nt_descriptor_types[] = { +static const struct xlat_data nt_descriptor_types_xdata[] = { XLAT(NT_PRSTATUS), + #define XLAT_VAL_0 ((unsigned) (NT_PRSTATUS)) + #define XLAT_STR_0 STRINGIFY(NT_PRSTATUS) XLAT(NT_FPREGSET), + #define XLAT_VAL_1 ((unsigned) (NT_FPREGSET)) + #define XLAT_STR_1 STRINGIFY(NT_FPREGSET) XLAT(NT_PRPSINFO), + #define XLAT_VAL_2 ((unsigned) (NT_PRPSINFO)) + #define XLAT_STR_2 STRINGIFY(NT_PRPSINFO) XLAT(NT_PRXREG), + #define XLAT_VAL_3 ((unsigned) (NT_PRXREG)) + #define XLAT_STR_3 STRINGIFY(NT_PRXREG) XLAT(NT_TASKSTRUCT), + #define XLAT_VAL_4 ((unsigned) (NT_TASKSTRUCT)) + #define XLAT_STR_4 STRINGIFY(NT_TASKSTRUCT) XLAT(NT_PLATFORM), + #define XLAT_VAL_5 ((unsigned) (NT_PLATFORM)) + #define XLAT_STR_5 STRINGIFY(NT_PLATFORM) XLAT(NT_AUXV), + #define XLAT_VAL_6 ((unsigned) (NT_AUXV)) + #define XLAT_STR_6 STRINGIFY(NT_AUXV) XLAT(NT_GWINDOWS), + #define XLAT_VAL_7 ((unsigned) (NT_GWINDOWS)) + #define XLAT_STR_7 STRINGIFY(NT_GWINDOWS) XLAT(NT_ASRS), + #define XLAT_VAL_8 ((unsigned) (NT_ASRS)) + #define XLAT_STR_8 STRINGIFY(NT_ASRS) XLAT(NT_PSTATUS), + #define XLAT_VAL_9 ((unsigned) (NT_PSTATUS)) + #define XLAT_STR_9 STRINGIFY(NT_PSTATUS) XLAT(NT_PSINFO), + #define XLAT_VAL_10 ((unsigned) (NT_PSINFO)) + #define XLAT_STR_10 STRINGIFY(NT_PSINFO) XLAT(NT_PRCRED), + #define XLAT_VAL_11 ((unsigned) (NT_PRCRED)) + #define XLAT_STR_11 STRINGIFY(NT_PRCRED) XLAT(NT_UTSNAME), + #define XLAT_VAL_12 ((unsigned) (NT_UTSNAME)) + #define XLAT_STR_12 STRINGIFY(NT_UTSNAME) XLAT(NT_LWPSTATUS), + #define XLAT_VAL_13 ((unsigned) (NT_LWPSTATUS)) + #define XLAT_STR_13 STRINGIFY(NT_LWPSTATUS) XLAT(NT_LWPSINFO), + #define XLAT_VAL_14 ((unsigned) (NT_LWPSINFO)) + #define XLAT_STR_14 STRINGIFY(NT_LWPSINFO) XLAT(NT_PRFPXREG), + #define XLAT_VAL_15 ((unsigned) (NT_PRFPXREG)) + #define XLAT_STR_15 STRINGIFY(NT_PRFPXREG) XLAT(NT_SIGINFO), + #define XLAT_VAL_16 ((unsigned) (NT_SIGINFO)) + #define XLAT_STR_16 STRINGIFY(NT_SIGINFO) XLAT(NT_FILE), + #define XLAT_VAL_17 ((unsigned) (NT_FILE)) + #define XLAT_STR_17 STRINGIFY(NT_FILE) XLAT(NT_PRXFPREG), + #define XLAT_VAL_18 ((unsigned) (NT_PRXFPREG)) + #define XLAT_STR_18 STRINGIFY(NT_PRXFPREG) XLAT(NT_PPC_VMX), + #define XLAT_VAL_19 ((unsigned) (NT_PPC_VMX)) + #define XLAT_STR_19 STRINGIFY(NT_PPC_VMX) XLAT(NT_PPC_SPE), + #define XLAT_VAL_20 ((unsigned) (NT_PPC_SPE)) + #define XLAT_STR_20 STRINGIFY(NT_PPC_SPE) XLAT(NT_PPC_VSX), + #define XLAT_VAL_21 ((unsigned) (NT_PPC_VSX)) + #define XLAT_STR_21 STRINGIFY(NT_PPC_VSX) XLAT(NT_PPC_TAR), + #define XLAT_VAL_22 ((unsigned) (NT_PPC_TAR)) + #define XLAT_STR_22 STRINGIFY(NT_PPC_TAR) XLAT(NT_PPC_PPR), + #define XLAT_VAL_23 ((unsigned) (NT_PPC_PPR)) + #define XLAT_STR_23 STRINGIFY(NT_PPC_PPR) XLAT(NT_PPC_DSCR), + #define XLAT_VAL_24 ((unsigned) (NT_PPC_DSCR)) + #define XLAT_STR_24 STRINGIFY(NT_PPC_DSCR) XLAT(NT_PPC_EBB), + #define XLAT_VAL_25 ((unsigned) (NT_PPC_EBB)) + #define XLAT_STR_25 STRINGIFY(NT_PPC_EBB) XLAT(NT_PPC_PMU), + #define XLAT_VAL_26 ((unsigned) (NT_PPC_PMU)) + #define XLAT_STR_26 STRINGIFY(NT_PPC_PMU) XLAT(NT_PPC_TM_CGPR), + #define XLAT_VAL_27 ((unsigned) (NT_PPC_TM_CGPR)) + #define XLAT_STR_27 STRINGIFY(NT_PPC_TM_CGPR) XLAT(NT_PPC_TM_CFPR), + #define XLAT_VAL_28 ((unsigned) (NT_PPC_TM_CFPR)) + #define XLAT_STR_28 STRINGIFY(NT_PPC_TM_CFPR) XLAT(NT_PPC_TM_CVMX), + #define XLAT_VAL_29 ((unsigned) (NT_PPC_TM_CVMX)) + #define XLAT_STR_29 STRINGIFY(NT_PPC_TM_CVMX) XLAT(NT_PPC_TM_CVSX), + #define XLAT_VAL_30 ((unsigned) (NT_PPC_TM_CVSX)) + #define XLAT_STR_30 STRINGIFY(NT_PPC_TM_CVSX) XLAT(NT_PPC_TM_SPR), + #define XLAT_VAL_31 ((unsigned) (NT_PPC_TM_SPR)) + #define XLAT_STR_31 STRINGIFY(NT_PPC_TM_SPR) XLAT(NT_PPC_TM_CTAR), + #define XLAT_VAL_32 ((unsigned) (NT_PPC_TM_CTAR)) + #define XLAT_STR_32 STRINGIFY(NT_PPC_TM_CTAR) XLAT(NT_PPC_TM_CPPR), + #define XLAT_VAL_33 ((unsigned) (NT_PPC_TM_CPPR)) + #define XLAT_STR_33 STRINGIFY(NT_PPC_TM_CPPR) XLAT(NT_PPC_TM_CDSCR), + #define XLAT_VAL_34 ((unsigned) (NT_PPC_TM_CDSCR)) + #define XLAT_STR_34 STRINGIFY(NT_PPC_TM_CDSCR) XLAT(NT_PPC_PKEY), + #define XLAT_VAL_35 ((unsigned) (NT_PPC_PKEY)) + #define XLAT_STR_35 STRINGIFY(NT_PPC_PKEY) XLAT(NT_386_TLS), + #define XLAT_VAL_36 ((unsigned) (NT_386_TLS)) + #define XLAT_STR_36 STRINGIFY(NT_386_TLS) XLAT(NT_386_IOPERM), + #define XLAT_VAL_37 ((unsigned) (NT_386_IOPERM)) + #define XLAT_STR_37 STRINGIFY(NT_386_IOPERM) XLAT(NT_X86_XSTATE), + #define XLAT_VAL_38 ((unsigned) (NT_X86_XSTATE)) + #define XLAT_STR_38 STRINGIFY(NT_X86_XSTATE) XLAT(NT_S390_HIGH_GPRS), + #define XLAT_VAL_39 ((unsigned) (NT_S390_HIGH_GPRS)) + #define XLAT_STR_39 STRINGIFY(NT_S390_HIGH_GPRS) XLAT(NT_S390_TIMER), + #define XLAT_VAL_40 ((unsigned) (NT_S390_TIMER)) + #define XLAT_STR_40 STRINGIFY(NT_S390_TIMER) XLAT(NT_S390_TODCMP), + #define XLAT_VAL_41 ((unsigned) (NT_S390_TODCMP)) + #define XLAT_STR_41 STRINGIFY(NT_S390_TODCMP) XLAT(NT_S390_TODPREG), + #define XLAT_VAL_42 ((unsigned) (NT_S390_TODPREG)) + #define XLAT_STR_42 STRINGIFY(NT_S390_TODPREG) XLAT(NT_S390_CTRS), + #define XLAT_VAL_43 ((unsigned) (NT_S390_CTRS)) + #define XLAT_STR_43 STRINGIFY(NT_S390_CTRS) XLAT(NT_S390_PREFIX), + #define XLAT_VAL_44 ((unsigned) (NT_S390_PREFIX)) + #define XLAT_STR_44 STRINGIFY(NT_S390_PREFIX) XLAT(NT_S390_LAST_BREAK), + #define XLAT_VAL_45 ((unsigned) (NT_S390_LAST_BREAK)) + #define XLAT_STR_45 STRINGIFY(NT_S390_LAST_BREAK) XLAT(NT_S390_SYSTEM_CALL), + #define XLAT_VAL_46 ((unsigned) (NT_S390_SYSTEM_CALL)) + #define XLAT_STR_46 STRINGIFY(NT_S390_SYSTEM_CALL) XLAT(NT_S390_TDB), + #define XLAT_VAL_47 ((unsigned) (NT_S390_TDB)) + #define XLAT_STR_47 STRINGIFY(NT_S390_TDB) XLAT(NT_S390_VXRS_LOW), + #define XLAT_VAL_48 ((unsigned) (NT_S390_VXRS_LOW)) + #define XLAT_STR_48 STRINGIFY(NT_S390_VXRS_LOW) XLAT(NT_S390_VXRS_HIGH), + #define XLAT_VAL_49 ((unsigned) (NT_S390_VXRS_HIGH)) + #define XLAT_STR_49 STRINGIFY(NT_S390_VXRS_HIGH) XLAT(NT_S390_GS_CB), + #define XLAT_VAL_50 ((unsigned) (NT_S390_GS_CB)) + #define XLAT_STR_50 STRINGIFY(NT_S390_GS_CB) XLAT(NT_S390_GS_BC), + #define XLAT_VAL_51 ((unsigned) (NT_S390_GS_BC)) + #define XLAT_STR_51 STRINGIFY(NT_S390_GS_BC) XLAT(NT_S390_RI_CB), + #define XLAT_VAL_52 ((unsigned) (NT_S390_RI_CB)) + #define XLAT_STR_52 STRINGIFY(NT_S390_RI_CB) XLAT(NT_ARM_VFP), + #define XLAT_VAL_53 ((unsigned) (NT_ARM_VFP)) + #define XLAT_STR_53 STRINGIFY(NT_ARM_VFP) XLAT(NT_ARM_TLS), + #define XLAT_VAL_54 ((unsigned) (NT_ARM_TLS)) + #define XLAT_STR_54 STRINGIFY(NT_ARM_TLS) XLAT(NT_ARM_HW_BREAK), + #define XLAT_VAL_55 ((unsigned) (NT_ARM_HW_BREAK)) + #define XLAT_STR_55 STRINGIFY(NT_ARM_HW_BREAK) XLAT(NT_ARM_HW_WATCH), + #define XLAT_VAL_56 ((unsigned) (NT_ARM_HW_WATCH)) + #define XLAT_STR_56 STRINGIFY(NT_ARM_HW_WATCH) XLAT(NT_ARM_SYSTEM_CALL), + #define XLAT_VAL_57 ((unsigned) (NT_ARM_SYSTEM_CALL)) + #define XLAT_STR_57 STRINGIFY(NT_ARM_SYSTEM_CALL) XLAT(NT_ARM_SVE), + #define XLAT_VAL_58 ((unsigned) (NT_ARM_SVE)) + #define XLAT_STR_58 STRINGIFY(NT_ARM_SVE) XLAT(NT_ARM_PAC_MASK), + #define XLAT_VAL_59 ((unsigned) (NT_ARM_PAC_MASK)) + #define XLAT_STR_59 STRINGIFY(NT_ARM_PAC_MASK) XLAT(NT_ARM_PACA_KEYS), + #define XLAT_VAL_60 ((unsigned) (NT_ARM_PACA_KEYS)) + #define XLAT_STR_60 STRINGIFY(NT_ARM_PACA_KEYS) XLAT(NT_ARM_PACG_KEYS), + #define XLAT_VAL_61 ((unsigned) (NT_ARM_PACG_KEYS)) + #define XLAT_STR_61 STRINGIFY(NT_ARM_PACG_KEYS) XLAT(NT_METAG_CBUF), + #define XLAT_VAL_62 ((unsigned) (NT_METAG_CBUF)) + #define XLAT_STR_62 STRINGIFY(NT_METAG_CBUF) XLAT(NT_METAG_RPIPE), + #define XLAT_VAL_63 ((unsigned) (NT_METAG_RPIPE)) + #define XLAT_STR_63 STRINGIFY(NT_METAG_RPIPE) XLAT(NT_METAG_TLS), + #define XLAT_VAL_64 ((unsigned) (NT_METAG_TLS)) + #define XLAT_STR_64 STRINGIFY(NT_METAG_TLS) XLAT(NT_ARC_V2), + #define XLAT_VAL_65 ((unsigned) (NT_ARC_V2)) + #define XLAT_STR_65 STRINGIFY(NT_ARC_V2) XLAT(NT_VMCOREDD), + #define XLAT_VAL_66 ((unsigned) (NT_VMCOREDD)) + #define XLAT_STR_66 STRINGIFY(NT_VMCOREDD) XLAT(NT_MIPS_DSP), + #define XLAT_VAL_67 ((unsigned) (NT_MIPS_DSP)) + #define XLAT_STR_67 STRINGIFY(NT_MIPS_DSP) XLAT(NT_MIPS_FP_MODE), + #define XLAT_VAL_68 ((unsigned) (NT_MIPS_FP_MODE)) + #define XLAT_STR_68 STRINGIFY(NT_MIPS_FP_MODE) XLAT(NT_MIPS_MSA), - XLAT_END + #define XLAT_VAL_69 ((unsigned) (NT_MIPS_MSA)) + #define XLAT_STR_69 STRINGIFY(NT_MIPS_MSA) }; +static +const struct xlat nt_descriptor_types[1] = { { + .data = nt_descriptor_types_xdata, + .size = ARRAY_SIZE(nt_descriptor_types_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif +# ifdef XLAT_VAL_41 + | XLAT_VAL_41 +# endif +# ifdef XLAT_VAL_42 + | XLAT_VAL_42 +# endif +# ifdef XLAT_VAL_43 + | XLAT_VAL_43 +# endif +# ifdef XLAT_VAL_44 + | XLAT_VAL_44 +# endif +# ifdef XLAT_VAL_45 + | XLAT_VAL_45 +# endif +# ifdef XLAT_VAL_46 + | XLAT_VAL_46 +# endif +# ifdef XLAT_VAL_47 + | XLAT_VAL_47 +# endif +# ifdef XLAT_VAL_48 + | XLAT_VAL_48 +# endif +# ifdef XLAT_VAL_49 + | XLAT_VAL_49 +# endif +# ifdef XLAT_VAL_50 + | XLAT_VAL_50 +# endif +# ifdef XLAT_VAL_51 + | XLAT_VAL_51 +# endif +# ifdef XLAT_VAL_52 + | XLAT_VAL_52 +# endif +# ifdef XLAT_VAL_53 + | XLAT_VAL_53 +# endif +# ifdef XLAT_VAL_54 + | XLAT_VAL_54 +# endif +# ifdef XLAT_VAL_55 + | XLAT_VAL_55 +# endif +# ifdef XLAT_VAL_56 + | XLAT_VAL_56 +# endif +# ifdef XLAT_VAL_57 + | XLAT_VAL_57 +# endif +# ifdef XLAT_VAL_58 + | XLAT_VAL_58 +# endif +# ifdef XLAT_VAL_59 + | XLAT_VAL_59 +# endif +# ifdef XLAT_VAL_60 + | XLAT_VAL_60 +# endif +# ifdef XLAT_VAL_61 + | XLAT_VAL_61 +# endif +# ifdef XLAT_VAL_62 + | XLAT_VAL_62 +# endif +# ifdef XLAT_VAL_63 + | XLAT_VAL_63 +# endif +# ifdef XLAT_VAL_64 + | XLAT_VAL_64 +# endif +# ifdef XLAT_VAL_65 + | XLAT_VAL_65 +# endif +# ifdef XLAT_VAL_66 + | XLAT_VAL_66 +# endif +# ifdef XLAT_VAL_67 + | XLAT_VAL_67 +# endif +# ifdef XLAT_VAL_68 + | XLAT_VAL_68 +# endif +# ifdef XLAT_VAL_69 + | XLAT_VAL_69 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif +# ifdef XLAT_STR_41 + + sizeof(XLAT_STR_41) +# endif +# ifdef XLAT_STR_42 + + sizeof(XLAT_STR_42) +# endif +# ifdef XLAT_STR_43 + + sizeof(XLAT_STR_43) +# endif +# ifdef XLAT_STR_44 + + sizeof(XLAT_STR_44) +# endif +# ifdef XLAT_STR_45 + + sizeof(XLAT_STR_45) +# endif +# ifdef XLAT_STR_46 + + sizeof(XLAT_STR_46) +# endif +# ifdef XLAT_STR_47 + + sizeof(XLAT_STR_47) +# endif +# ifdef XLAT_STR_48 + + sizeof(XLAT_STR_48) +# endif +# ifdef XLAT_STR_49 + + sizeof(XLAT_STR_49) +# endif +# ifdef XLAT_STR_50 + + sizeof(XLAT_STR_50) +# endif +# ifdef XLAT_STR_51 + + sizeof(XLAT_STR_51) +# endif +# ifdef XLAT_STR_52 + + sizeof(XLAT_STR_52) +# endif +# ifdef XLAT_STR_53 + + sizeof(XLAT_STR_53) +# endif +# ifdef XLAT_STR_54 + + sizeof(XLAT_STR_54) +# endif +# ifdef XLAT_STR_55 + + sizeof(XLAT_STR_55) +# endif +# ifdef XLAT_STR_56 + + sizeof(XLAT_STR_56) +# endif +# ifdef XLAT_STR_57 + + sizeof(XLAT_STR_57) +# endif +# ifdef XLAT_STR_58 + + sizeof(XLAT_STR_58) +# endif +# ifdef XLAT_STR_59 + + sizeof(XLAT_STR_59) +# endif +# ifdef XLAT_STR_60 + + sizeof(XLAT_STR_60) +# endif +# ifdef XLAT_STR_61 + + sizeof(XLAT_STR_61) +# endif +# ifdef XLAT_STR_62 + + sizeof(XLAT_STR_62) +# endif +# ifdef XLAT_STR_63 + + sizeof(XLAT_STR_63) +# endif +# ifdef XLAT_STR_64 + + sizeof(XLAT_STR_64) +# endif +# ifdef XLAT_STR_65 + + sizeof(XLAT_STR_65) +# endif +# ifdef XLAT_STR_66 + + sizeof(XLAT_STR_66) +# endif +# ifdef XLAT_STR_67 + + sizeof(XLAT_STR_67) +# endif +# ifdef XLAT_STR_68 + + sizeof(XLAT_STR_68) +# endif +# ifdef XLAT_STR_69 + + sizeof(XLAT_STR_69) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 +# undef XLAT_STR_41 +# undef XLAT_VAL_41 +# undef XLAT_STR_42 +# undef XLAT_VAL_42 +# undef XLAT_STR_43 +# undef XLAT_VAL_43 +# undef XLAT_STR_44 +# undef XLAT_VAL_44 +# undef XLAT_STR_45 +# undef XLAT_VAL_45 +# undef XLAT_STR_46 +# undef XLAT_VAL_46 +# undef XLAT_STR_47 +# undef XLAT_VAL_47 +# undef XLAT_STR_48 +# undef XLAT_VAL_48 +# undef XLAT_STR_49 +# undef XLAT_VAL_49 +# undef XLAT_STR_50 +# undef XLAT_VAL_50 +# undef XLAT_STR_51 +# undef XLAT_VAL_51 +# undef XLAT_STR_52 +# undef XLAT_VAL_52 +# undef XLAT_STR_53 +# undef XLAT_VAL_53 +# undef XLAT_STR_54 +# undef XLAT_VAL_54 +# undef XLAT_STR_55 +# undef XLAT_VAL_55 +# undef XLAT_STR_56 +# undef XLAT_VAL_56 +# undef XLAT_STR_57 +# undef XLAT_VAL_57 +# undef XLAT_STR_58 +# undef XLAT_VAL_58 +# undef XLAT_STR_59 +# undef XLAT_VAL_59 +# undef XLAT_STR_60 +# undef XLAT_VAL_60 +# undef XLAT_STR_61 +# undef XLAT_VAL_61 +# undef XLAT_STR_62 +# undef XLAT_VAL_62 +# undef XLAT_STR_63 +# undef XLAT_VAL_63 +# undef XLAT_STR_64 +# undef XLAT_VAL_64 +# undef XLAT_STR_65 +# undef XLAT_VAL_65 +# undef XLAT_STR_66 +# undef XLAT_VAL_66 +# undef XLAT_STR_67 +# undef XLAT_VAL_67 +# undef XLAT_STR_68 +# undef XLAT_VAL_68 +# undef XLAT_STR_69 +# undef XLAT_VAL_69 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/numa_node.h b/xlat/numa_node.h index 0d167456..4cafaef7 100644 --- a/xlat/numa_node.h +++ b/xlat/numa_node.h @@ -19,12 +19,30 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat numa_node[] = { +static const struct xlat_data numa_node_xdata[] = { XLAT(NUMA_NO_NODE), - XLAT_END + #define XLAT_VAL_0 ((unsigned) (NUMA_NO_NODE)) + #define XLAT_STR_0 STRINGIFY(NUMA_NO_NODE) }; - +static +const struct xlat numa_node[1] = { { + .data = numa_node_xdata, + .size = ARRAY_SIZE(numa_node_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/open_access_modes.h b/xlat/open_access_modes.h index bf96a8ff..ac533f47 100644 --- a/xlat/open_access_modes.h +++ b/xlat/open_access_modes.h @@ -36,14 +36,62 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # ifndef IN_MPERS -const struct xlat open_access_modes[] = { +static const struct xlat_data open_access_modes_xdata[] = { [O_RDONLY] = XLAT(O_RDONLY), + #define XLAT_VAL_0 ((unsigned) (O_RDONLY)) + #define XLAT_STR_0 STRINGIFY(O_RDONLY) [O_WRONLY] = XLAT(O_WRONLY), + #define XLAT_VAL_1 ((unsigned) (O_WRONLY)) + #define XLAT_STR_1 STRINGIFY(O_WRONLY) [O_RDWR] = XLAT(O_RDWR), + #define XLAT_VAL_2 ((unsigned) (O_RDWR)) + #define XLAT_STR_2 STRINGIFY(O_RDWR) [O_ACCMODE] = XLAT(O_ACCMODE), - XLAT_END + #define XLAT_VAL_3 ((unsigned) (O_ACCMODE)) + #define XLAT_STR_3 STRINGIFY(O_ACCMODE) }; +const struct xlat open_access_modes[1] = { { + .data = open_access_modes_xdata, + .size = ARRAY_SIZE(open_access_modes_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/open_mode_flags.h b/xlat/open_mode_flags.h index 5c317e21..678f0b7e 100644 --- a/xlat/open_mode_flags.h +++ b/xlat/open_mode_flags.h @@ -587,99 +587,167 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # ifndef IN_MPERS -const struct xlat open_mode_flags[] = { +static const struct xlat_data open_mode_flags_xdata[] = { #if defined __hppa__ || defined __mips__ XLAT(O_CREAT), + #define XLAT_VAL_0 ((unsigned) (O_CREAT)) + #define XLAT_STR_0 STRINGIFY(O_CREAT) #elif defined __alpha__ || defined __sparc__ XLAT(O_CREAT), + #define XLAT_VAL_1 ((unsigned) (O_CREAT)) + #define XLAT_STR_1 STRINGIFY(O_CREAT) #else XLAT(O_CREAT), + #define XLAT_VAL_2 ((unsigned) (O_CREAT)) + #define XLAT_STR_2 STRINGIFY(O_CREAT) #endif #if defined __hppa__ || defined __mips__ XLAT(O_EXCL), + #define XLAT_VAL_3 ((unsigned) (O_EXCL)) + #define XLAT_STR_3 STRINGIFY(O_EXCL) #elif defined __alpha__ || defined __sparc__ XLAT(O_EXCL), + #define XLAT_VAL_4 ((unsigned) (O_EXCL)) + #define XLAT_STR_4 STRINGIFY(O_EXCL) #else XLAT(O_EXCL), + #define XLAT_VAL_5 ((unsigned) (O_EXCL)) + #define XLAT_STR_5 STRINGIFY(O_EXCL) #endif #if defined __mips__ XLAT(O_NOCTTY), + #define XLAT_VAL_6 ((unsigned) (O_NOCTTY)) + #define XLAT_STR_6 STRINGIFY(O_NOCTTY) #elif defined __alpha__ XLAT(O_NOCTTY), + #define XLAT_VAL_7 ((unsigned) (O_NOCTTY)) + #define XLAT_STR_7 STRINGIFY(O_NOCTTY) #elif defined __sparc__ XLAT(O_NOCTTY), + #define XLAT_VAL_8 ((unsigned) (O_NOCTTY)) + #define XLAT_STR_8 STRINGIFY(O_NOCTTY) #elif defined __hppa__ XLAT(O_NOCTTY), + #define XLAT_VAL_9 ((unsigned) (O_NOCTTY)) + #define XLAT_STR_9 STRINGIFY(O_NOCTTY) #else XLAT(O_NOCTTY), + #define XLAT_VAL_10 ((unsigned) (O_NOCTTY)) + #define XLAT_STR_10 STRINGIFY(O_NOCTTY) #endif #if defined __alpha__ || defined __sparc__ XLAT(O_TRUNC), + #define XLAT_VAL_11 ((unsigned) (O_TRUNC)) + #define XLAT_STR_11 STRINGIFY(O_TRUNC) #else XLAT(O_TRUNC), + #define XLAT_VAL_12 ((unsigned) (O_TRUNC)) + #define XLAT_STR_12 STRINGIFY(O_TRUNC) #endif #if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__ XLAT(O_APPEND), + #define XLAT_VAL_13 ((unsigned) (O_APPEND)) + #define XLAT_STR_13 STRINGIFY(O_APPEND) #else XLAT(O_APPEND), + #define XLAT_VAL_14 ((unsigned) (O_APPEND)) + #define XLAT_STR_14 STRINGIFY(O_APPEND) #endif #if defined __alpha__ XLAT(O_NONBLOCK), + #define XLAT_VAL_15 ((unsigned) (O_NONBLOCK)) + #define XLAT_STR_15 STRINGIFY(O_NONBLOCK) #elif defined __mips__ XLAT(O_NONBLOCK), + #define XLAT_VAL_16 ((unsigned) (O_NONBLOCK)) + #define XLAT_STR_16 STRINGIFY(O_NONBLOCK) #elif defined __sparc__ XLAT(O_NONBLOCK), + #define XLAT_VAL_17 ((unsigned) (O_NONBLOCK)) + #define XLAT_STR_17 STRINGIFY(O_NONBLOCK) #elif defined __hppa__ XLAT(O_NONBLOCK), + #define XLAT_VAL_18 ((unsigned) (O_NONBLOCK)) + #define XLAT_STR_18 STRINGIFY(O_NONBLOCK) #else XLAT(O_NONBLOCK), + #define XLAT_VAL_19 ((unsigned) (O_NONBLOCK)) + #define XLAT_STR_19 STRINGIFY(O_NONBLOCK) #endif #if defined(O_SYNC) || (defined(HAVE_DECL_O_SYNC) && HAVE_DECL_O_SYNC) XLAT(O_SYNC), + #define XLAT_VAL_20 ((unsigned) (O_SYNC)) + #define XLAT_STR_20 STRINGIFY(O_SYNC) #endif #if defined __mips__ XLAT(__O_SYNC), + #define XLAT_VAL_21 ((unsigned) (__O_SYNC)) + #define XLAT_STR_21 STRINGIFY(__O_SYNC) #elif defined __hppa__ XLAT(__O_SYNC), + #define XLAT_VAL_22 ((unsigned) (__O_SYNC)) + #define XLAT_STR_22 STRINGIFY(__O_SYNC) #elif defined __alpha__ XLAT(__O_SYNC), + #define XLAT_VAL_23 ((unsigned) (__O_SYNC)) + #define XLAT_STR_23 STRINGIFY(__O_SYNC) #elif defined __sparc__ XLAT(__O_SYNC), + #define XLAT_VAL_24 ((unsigned) (__O_SYNC)) + #define XLAT_STR_24 STRINGIFY(__O_SYNC) #else XLAT(__O_SYNC), + #define XLAT_VAL_25 ((unsigned) (__O_SYNC)) + #define XLAT_STR_25 STRINGIFY(__O_SYNC) #endif #if defined(O_ASYNC) || (defined(HAVE_DECL_O_ASYNC) && HAVE_DECL_O_ASYNC) XLAT(O_ASYNC), + #define XLAT_VAL_26 ((unsigned) (O_ASYNC)) + #define XLAT_STR_26 STRINGIFY(O_ASYNC) #endif #if defined __mips__ XLAT(O_DSYNC), + #define XLAT_VAL_27 ((unsigned) (O_DSYNC)) + #define XLAT_STR_27 STRINGIFY(O_DSYNC) #elif defined __sparc__ XLAT(O_DSYNC), + #define XLAT_VAL_28 ((unsigned) (O_DSYNC)) + #define XLAT_STR_28 STRINGIFY(O_DSYNC) #elif defined __alpha__ XLAT(O_DSYNC), + #define XLAT_VAL_29 ((unsigned) (O_DSYNC)) + #define XLAT_STR_29 STRINGIFY(O_DSYNC) #elif defined __hppa__ XLAT(O_DSYNC), + #define XLAT_VAL_30 ((unsigned) (O_DSYNC)) + #define XLAT_STR_30 STRINGIFY(O_DSYNC) #else XLAT(O_DSYNC), + #define XLAT_VAL_31 ((unsigned) (O_DSYNC)) + #define XLAT_STR_31 STRINGIFY(O_DSYNC) #endif #if defined __hppa__ XLAT(O_RSYNC), + #define XLAT_VAL_32 ((unsigned) (O_RSYNC)) + #define XLAT_STR_32 STRINGIFY(O_RSYNC) #else #if defined(O_RSYNC) || (defined(HAVE_DECL_O_RSYNC) && HAVE_DECL_O_RSYNC) XLAT(O_RSYNC), + #define XLAT_VAL_33 ((unsigned) (O_RSYNC)) + #define XLAT_STR_33 STRINGIFY(O_RSYNC) #endif #endif @@ -695,111 +763,791 @@ const struct xlat open_mode_flags[] = { #if defined __sparc__ XLAT(O_NDELAY), + #define XLAT_VAL_34 ((unsigned) (O_NDELAY)) + #define XLAT_STR_34 STRINGIFY(O_NDELAY) #else #if defined(O_NDELAY) || (defined(HAVE_DECL_O_NDELAY) && HAVE_DECL_O_NDELAY) XLAT(O_NDELAY), + #define XLAT_VAL_35 ((unsigned) (O_NDELAY)) + #define XLAT_STR_35 STRINGIFY(O_NDELAY) #endif #endif #if defined __sparc__ XLAT(O_DIRECT), + #define XLAT_VAL_36 ((unsigned) (O_DIRECT)) + #define XLAT_STR_36 STRINGIFY(O_DIRECT) #elif defined __mips__ XLAT(O_DIRECT), + #define XLAT_VAL_37 ((unsigned) (O_DIRECT)) + #define XLAT_STR_37 STRINGIFY(O_DIRECT) #elif defined __arm__ || defined __arm64__ || defined __aarch64__ || defined __m68k__ XLAT(O_DIRECT), + #define XLAT_VAL_38 ((unsigned) (O_DIRECT)) + #define XLAT_STR_38 STRINGIFY(O_DIRECT) #elif defined __powerpc__ XLAT(O_DIRECT), + #define XLAT_VAL_39 ((unsigned) (O_DIRECT)) + #define XLAT_STR_39 STRINGIFY(O_DIRECT) #elif defined __alpha__ XLAT(O_DIRECT), + #define XLAT_VAL_40 ((unsigned) (O_DIRECT)) + #define XLAT_STR_40 STRINGIFY(O_DIRECT) #else XLAT(O_DIRECT), + #define XLAT_VAL_41 ((unsigned) (O_DIRECT)) + #define XLAT_STR_41 STRINGIFY(O_DIRECT) #endif #if defined __hppa__ XLAT(O_LARGEFILE), + #define XLAT_VAL_42 ((unsigned) (O_LARGEFILE)) + #define XLAT_STR_42 STRINGIFY(O_LARGEFILE) #elif defined __mips__ XLAT(O_LARGEFILE), + #define XLAT_VAL_43 ((unsigned) (O_LARGEFILE)) + #define XLAT_STR_43 STRINGIFY(O_LARGEFILE) #elif defined __powerpc__ XLAT(O_LARGEFILE), + #define XLAT_VAL_44 ((unsigned) (O_LARGEFILE)) + #define XLAT_STR_44 STRINGIFY(O_LARGEFILE) #elif defined __alpha__ || defined __arm__ || defined __arm64__ || defined __aarch64__ || defined __m68k__ XLAT(O_LARGEFILE), + #define XLAT_VAL_45 ((unsigned) (O_LARGEFILE)) + #define XLAT_STR_45 STRINGIFY(O_LARGEFILE) #elif defined __sparc__ XLAT(O_LARGEFILE), + #define XLAT_VAL_46 ((unsigned) (O_LARGEFILE)) + #define XLAT_STR_46 STRINGIFY(O_LARGEFILE) #else XLAT(O_LARGEFILE), + #define XLAT_VAL_47 ((unsigned) (O_LARGEFILE)) + #define XLAT_STR_47 STRINGIFY(O_LARGEFILE) #endif #if defined __hppa__ XLAT(O_NOFOLLOW), + #define XLAT_VAL_48 ((unsigned) (O_NOFOLLOW)) + #define XLAT_STR_48 STRINGIFY(O_NOFOLLOW) #elif defined __arm__ || defined __arm64__ || defined __aarch64__ || defined __m68k__ || defined __powerpc__ XLAT(O_NOFOLLOW), + #define XLAT_VAL_49 ((unsigned) (O_NOFOLLOW)) + #define XLAT_STR_49 STRINGIFY(O_NOFOLLOW) #elif defined __alpha__ XLAT(O_NOFOLLOW), + #define XLAT_VAL_50 ((unsigned) (O_NOFOLLOW)) + #define XLAT_STR_50 STRINGIFY(O_NOFOLLOW) #else XLAT(O_NOFOLLOW), + #define XLAT_VAL_51 ((unsigned) (O_NOFOLLOW)) + #define XLAT_STR_51 STRINGIFY(O_NOFOLLOW) #endif #if defined __alpha__ || defined __hppa__ XLAT(O_NOATIME), + #define XLAT_VAL_52 ((unsigned) (O_NOATIME)) + #define XLAT_STR_52 STRINGIFY(O_NOATIME) #elif defined __sparc__ XLAT(O_NOATIME), + #define XLAT_VAL_53 ((unsigned) (O_NOATIME)) + #define XLAT_STR_53 STRINGIFY(O_NOATIME) #else XLAT(O_NOATIME), + #define XLAT_VAL_54 ((unsigned) (O_NOATIME)) + #define XLAT_STR_54 STRINGIFY(O_NOATIME) #endif #if defined __alpha__ || defined __hppa__ XLAT(O_CLOEXEC), + #define XLAT_VAL_55 ((unsigned) (O_CLOEXEC)) + #define XLAT_STR_55 STRINGIFY(O_CLOEXEC) #elif defined __sparc__ XLAT(O_CLOEXEC), + #define XLAT_VAL_56 ((unsigned) (O_CLOEXEC)) + #define XLAT_STR_56 STRINGIFY(O_CLOEXEC) #else XLAT(O_CLOEXEC), + #define XLAT_VAL_57 ((unsigned) (O_CLOEXEC)) + #define XLAT_STR_57 STRINGIFY(O_CLOEXEC) #endif #if defined __hppa__ XLAT(O_PATH), + #define XLAT_VAL_58 ((unsigned) (O_PATH)) + #define XLAT_STR_58 STRINGIFY(O_PATH) #elif defined __alpha__ XLAT(O_PATH), + #define XLAT_VAL_59 ((unsigned) (O_PATH)) + #define XLAT_STR_59 STRINGIFY(O_PATH) #elif defined __sparc__ XLAT(O_PATH), + #define XLAT_VAL_60 ((unsigned) (O_PATH)) + #define XLAT_STR_60 STRINGIFY(O_PATH) #else XLAT(O_PATH), + #define XLAT_VAL_61 ((unsigned) (O_PATH)) + #define XLAT_STR_61 STRINGIFY(O_PATH) #endif #if defined(O_TMPFILE) || (defined(HAVE_DECL_O_TMPFILE) && HAVE_DECL_O_TMPFILE) XLAT(O_TMPFILE), + #define XLAT_VAL_62 ((unsigned) (O_TMPFILE)) + #define XLAT_STR_62 STRINGIFY(O_TMPFILE) #endif #if defined __hppa__ XLAT(__O_TMPFILE), + #define XLAT_VAL_63 ((unsigned) (__O_TMPFILE)) + #define XLAT_STR_63 STRINGIFY(__O_TMPFILE) #elif defined __alpha__ XLAT(__O_TMPFILE), + #define XLAT_VAL_64 ((unsigned) (__O_TMPFILE)) + #define XLAT_STR_64 STRINGIFY(__O_TMPFILE) #elif defined __sparc__ XLAT(__O_TMPFILE), + #define XLAT_VAL_65 ((unsigned) (__O_TMPFILE)) + #define XLAT_STR_65 STRINGIFY(__O_TMPFILE) #else XLAT(__O_TMPFILE), + #define XLAT_VAL_66 ((unsigned) (__O_TMPFILE)) + #define XLAT_STR_66 STRINGIFY(__O_TMPFILE) #endif #if defined __hppa__ XLAT(O_DIRECTORY), + #define XLAT_VAL_67 ((unsigned) (O_DIRECTORY)) + #define XLAT_STR_67 STRINGIFY(O_DIRECTORY) #elif defined __arm__ || defined __arm64__ || defined __aarch64__ || defined __m68k__ || defined __powerpc__ XLAT(O_DIRECTORY), + #define XLAT_VAL_68 ((unsigned) (O_DIRECTORY)) + #define XLAT_STR_68 STRINGIFY(O_DIRECTORY) #elif defined __alpha__ XLAT(O_DIRECTORY), + #define XLAT_VAL_69 ((unsigned) (O_DIRECTORY)) + #define XLAT_STR_69 STRINGIFY(O_DIRECTORY) #else XLAT(O_DIRECTORY), + #define XLAT_VAL_70 ((unsigned) (O_DIRECTORY)) + #define XLAT_STR_70 STRINGIFY(O_DIRECTORY) #endif #if defined __sparc__ XLAT(FASYNC), + #define XLAT_VAL_71 ((unsigned) (FASYNC)) + #define XLAT_STR_71 STRINGIFY(FASYNC) #elif defined __mips__ XLAT(FASYNC), + #define XLAT_VAL_72 ((unsigned) (FASYNC)) + #define XLAT_STR_72 STRINGIFY(FASYNC) #else XLAT(FASYNC), + #define XLAT_VAL_73 ((unsigned) (FASYNC)) + #define XLAT_STR_73 STRINGIFY(FASYNC) #endif - XLAT_END }; +const struct xlat open_mode_flags[1] = { { + .data = open_mode_flags_xdata, + .size = ARRAY_SIZE(open_mode_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif +# ifdef XLAT_VAL_41 + | XLAT_VAL_41 +# endif +# ifdef XLAT_VAL_42 + | XLAT_VAL_42 +# endif +# ifdef XLAT_VAL_43 + | XLAT_VAL_43 +# endif +# ifdef XLAT_VAL_44 + | XLAT_VAL_44 +# endif +# ifdef XLAT_VAL_45 + | XLAT_VAL_45 +# endif +# ifdef XLAT_VAL_46 + | XLAT_VAL_46 +# endif +# ifdef XLAT_VAL_47 + | XLAT_VAL_47 +# endif +# ifdef XLAT_VAL_48 + | XLAT_VAL_48 +# endif +# ifdef XLAT_VAL_49 + | XLAT_VAL_49 +# endif +# ifdef XLAT_VAL_50 + | XLAT_VAL_50 +# endif +# ifdef XLAT_VAL_51 + | XLAT_VAL_51 +# endif +# ifdef XLAT_VAL_52 + | XLAT_VAL_52 +# endif +# ifdef XLAT_VAL_53 + | XLAT_VAL_53 +# endif +# ifdef XLAT_VAL_54 + | XLAT_VAL_54 +# endif +# ifdef XLAT_VAL_55 + | XLAT_VAL_55 +# endif +# ifdef XLAT_VAL_56 + | XLAT_VAL_56 +# endif +# ifdef XLAT_VAL_57 + | XLAT_VAL_57 +# endif +# ifdef XLAT_VAL_58 + | XLAT_VAL_58 +# endif +# ifdef XLAT_VAL_59 + | XLAT_VAL_59 +# endif +# ifdef XLAT_VAL_60 + | XLAT_VAL_60 +# endif +# ifdef XLAT_VAL_61 + | XLAT_VAL_61 +# endif +# ifdef XLAT_VAL_62 + | XLAT_VAL_62 +# endif +# ifdef XLAT_VAL_63 + | XLAT_VAL_63 +# endif +# ifdef XLAT_VAL_64 + | XLAT_VAL_64 +# endif +# ifdef XLAT_VAL_65 + | XLAT_VAL_65 +# endif +# ifdef XLAT_VAL_66 + | XLAT_VAL_66 +# endif +# ifdef XLAT_VAL_67 + | XLAT_VAL_67 +# endif +# ifdef XLAT_VAL_68 + | XLAT_VAL_68 +# endif +# ifdef XLAT_VAL_69 + | XLAT_VAL_69 +# endif +# ifdef XLAT_VAL_70 + | XLAT_VAL_70 +# endif +# ifdef XLAT_VAL_71 + | XLAT_VAL_71 +# endif +# ifdef XLAT_VAL_72 + | XLAT_VAL_72 +# endif +# ifdef XLAT_VAL_73 + | XLAT_VAL_73 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif +# ifdef XLAT_STR_41 + + sizeof(XLAT_STR_41) +# endif +# ifdef XLAT_STR_42 + + sizeof(XLAT_STR_42) +# endif +# ifdef XLAT_STR_43 + + sizeof(XLAT_STR_43) +# endif +# ifdef XLAT_STR_44 + + sizeof(XLAT_STR_44) +# endif +# ifdef XLAT_STR_45 + + sizeof(XLAT_STR_45) +# endif +# ifdef XLAT_STR_46 + + sizeof(XLAT_STR_46) +# endif +# ifdef XLAT_STR_47 + + sizeof(XLAT_STR_47) +# endif +# ifdef XLAT_STR_48 + + sizeof(XLAT_STR_48) +# endif +# ifdef XLAT_STR_49 + + sizeof(XLAT_STR_49) +# endif +# ifdef XLAT_STR_50 + + sizeof(XLAT_STR_50) +# endif +# ifdef XLAT_STR_51 + + sizeof(XLAT_STR_51) +# endif +# ifdef XLAT_STR_52 + + sizeof(XLAT_STR_52) +# endif +# ifdef XLAT_STR_53 + + sizeof(XLAT_STR_53) +# endif +# ifdef XLAT_STR_54 + + sizeof(XLAT_STR_54) +# endif +# ifdef XLAT_STR_55 + + sizeof(XLAT_STR_55) +# endif +# ifdef XLAT_STR_56 + + sizeof(XLAT_STR_56) +# endif +# ifdef XLAT_STR_57 + + sizeof(XLAT_STR_57) +# endif +# ifdef XLAT_STR_58 + + sizeof(XLAT_STR_58) +# endif +# ifdef XLAT_STR_59 + + sizeof(XLAT_STR_59) +# endif +# ifdef XLAT_STR_60 + + sizeof(XLAT_STR_60) +# endif +# ifdef XLAT_STR_61 + + sizeof(XLAT_STR_61) +# endif +# ifdef XLAT_STR_62 + + sizeof(XLAT_STR_62) +# endif +# ifdef XLAT_STR_63 + + sizeof(XLAT_STR_63) +# endif +# ifdef XLAT_STR_64 + + sizeof(XLAT_STR_64) +# endif +# ifdef XLAT_STR_65 + + sizeof(XLAT_STR_65) +# endif +# ifdef XLAT_STR_66 + + sizeof(XLAT_STR_66) +# endif +# ifdef XLAT_STR_67 + + sizeof(XLAT_STR_67) +# endif +# ifdef XLAT_STR_68 + + sizeof(XLAT_STR_68) +# endif +# ifdef XLAT_STR_69 + + sizeof(XLAT_STR_69) +# endif +# ifdef XLAT_STR_70 + + sizeof(XLAT_STR_70) +# endif +# ifdef XLAT_STR_71 + + sizeof(XLAT_STR_71) +# endif +# ifdef XLAT_STR_72 + + sizeof(XLAT_STR_72) +# endif +# ifdef XLAT_STR_73 + + sizeof(XLAT_STR_73) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 +# undef XLAT_STR_41 +# undef XLAT_VAL_41 +# undef XLAT_STR_42 +# undef XLAT_VAL_42 +# undef XLAT_STR_43 +# undef XLAT_VAL_43 +# undef XLAT_STR_44 +# undef XLAT_VAL_44 +# undef XLAT_STR_45 +# undef XLAT_VAL_45 +# undef XLAT_STR_46 +# undef XLAT_VAL_46 +# undef XLAT_STR_47 +# undef XLAT_VAL_47 +# undef XLAT_STR_48 +# undef XLAT_VAL_48 +# undef XLAT_STR_49 +# undef XLAT_VAL_49 +# undef XLAT_STR_50 +# undef XLAT_VAL_50 +# undef XLAT_STR_51 +# undef XLAT_VAL_51 +# undef XLAT_STR_52 +# undef XLAT_VAL_52 +# undef XLAT_STR_53 +# undef XLAT_VAL_53 +# undef XLAT_STR_54 +# undef XLAT_VAL_54 +# undef XLAT_STR_55 +# undef XLAT_VAL_55 +# undef XLAT_STR_56 +# undef XLAT_VAL_56 +# undef XLAT_STR_57 +# undef XLAT_VAL_57 +# undef XLAT_STR_58 +# undef XLAT_VAL_58 +# undef XLAT_STR_59 +# undef XLAT_VAL_59 +# undef XLAT_STR_60 +# undef XLAT_VAL_60 +# undef XLAT_STR_61 +# undef XLAT_VAL_61 +# undef XLAT_STR_62 +# undef XLAT_VAL_62 +# undef XLAT_STR_63 +# undef XLAT_VAL_63 +# undef XLAT_STR_64 +# undef XLAT_VAL_64 +# undef XLAT_STR_65 +# undef XLAT_VAL_65 +# undef XLAT_STR_66 +# undef XLAT_VAL_66 +# undef XLAT_STR_67 +# undef XLAT_VAL_67 +# undef XLAT_STR_68 +# undef XLAT_VAL_68 +# undef XLAT_STR_69 +# undef XLAT_VAL_69 +# undef XLAT_STR_70 +# undef XLAT_VAL_70 +# undef XLAT_STR_71 +# undef XLAT_VAL_71 +# undef XLAT_STR_72 +# undef XLAT_VAL_72 +# undef XLAT_STR_73 +# undef XLAT_VAL_73 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/open_resolve_flags.h b/xlat/open_resolve_flags.h new file mode 100644 index 00000000..ced854a6 --- /dev/null +++ b/xlat/open_resolve_flags.h @@ -0,0 +1,120 @@ +/* Generated by ./xlat/gen.sh from ./xlat/open_resolve_flags.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined(RESOLVE_NO_XDEV) || (defined(HAVE_DECL_RESOLVE_NO_XDEV) && HAVE_DECL_RESOLVE_NO_XDEV) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RESOLVE_NO_XDEV) == (0x01), "RESOLVE_NO_XDEV != 0x01"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RESOLVE_NO_XDEV 0x01 +#endif +#if defined(RESOLVE_NO_MAGICLINKS) || (defined(HAVE_DECL_RESOLVE_NO_MAGICLINKS) && HAVE_DECL_RESOLVE_NO_MAGICLINKS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RESOLVE_NO_MAGICLINKS) == (0x02), "RESOLVE_NO_MAGICLINKS != 0x02"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RESOLVE_NO_MAGICLINKS 0x02 +#endif +#if defined(RESOLVE_NO_SYMLINKS) || (defined(HAVE_DECL_RESOLVE_NO_SYMLINKS) && HAVE_DECL_RESOLVE_NO_SYMLINKS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RESOLVE_NO_SYMLINKS) == (0x04), "RESOLVE_NO_SYMLINKS != 0x04"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RESOLVE_NO_SYMLINKS 0x04 +#endif +#if defined(RESOLVE_BENEATH) || (defined(HAVE_DECL_RESOLVE_BENEATH) && HAVE_DECL_RESOLVE_BENEATH) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RESOLVE_BENEATH) == (0x08), "RESOLVE_BENEATH != 0x08"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RESOLVE_BENEATH 0x08 +#endif +#if defined(RESOLVE_IN_ROOT) || (defined(HAVE_DECL_RESOLVE_IN_ROOT) && HAVE_DECL_RESOLVE_IN_ROOT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RESOLVE_IN_ROOT) == (0x10), "RESOLVE_IN_ROOT != 0x10"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RESOLVE_IN_ROOT 0x10 +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat open_resolve_flags in mpers mode + +# else + +static const struct xlat_data open_resolve_flags_xdata[] = { + XLAT(RESOLVE_NO_XDEV), + #define XLAT_VAL_0 ((unsigned) (RESOLVE_NO_XDEV)) + #define XLAT_STR_0 STRINGIFY(RESOLVE_NO_XDEV) + XLAT(RESOLVE_NO_MAGICLINKS), + #define XLAT_VAL_1 ((unsigned) (RESOLVE_NO_MAGICLINKS)) + #define XLAT_STR_1 STRINGIFY(RESOLVE_NO_MAGICLINKS) + XLAT(RESOLVE_NO_SYMLINKS), + #define XLAT_VAL_2 ((unsigned) (RESOLVE_NO_SYMLINKS)) + #define XLAT_STR_2 STRINGIFY(RESOLVE_NO_SYMLINKS) + XLAT(RESOLVE_BENEATH), + #define XLAT_VAL_3 ((unsigned) (RESOLVE_BENEATH)) + #define XLAT_STR_3 STRINGIFY(RESOLVE_BENEATH) + XLAT(RESOLVE_IN_ROOT), + #define XLAT_VAL_4 ((unsigned) (RESOLVE_IN_ROOT)) + #define XLAT_STR_4 STRINGIFY(RESOLVE_IN_ROOT) +}; +static +const struct xlat open_resolve_flags[1] = { { + .data = open_resolve_flags_xdata, + .size = ARRAY_SIZE(open_resolve_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/open_resolve_flags.in b/xlat/open_resolve_flags.in new file mode 100644 index 00000000..22d397a6 --- /dev/null +++ b/xlat/open_resolve_flags.in @@ -0,0 +1,5 @@ +RESOLVE_NO_XDEV 0x01 +RESOLVE_NO_MAGICLINKS 0x02 +RESOLVE_NO_SYMLINKS 0x04 +RESOLVE_BENEATH 0x08 +RESOLVE_IN_ROOT 0x10 diff --git a/xlat/open_tree_flags.h b/xlat/open_tree_flags.h new file mode 100644 index 00000000..c8838b90 --- /dev/null +++ b/xlat/open_tree_flags.h @@ -0,0 +1,178 @@ +/* Generated by ./xlat/gen.sh from ./xlat/open_tree_flags.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined(OPEN_TREE_CLONE) || (defined(HAVE_DECL_OPEN_TREE_CLONE) && HAVE_DECL_OPEN_TREE_CLONE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((OPEN_TREE_CLONE) == (1), "OPEN_TREE_CLONE != 1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define OPEN_TREE_CLONE 1 +#endif +#if defined OPEN_TREE_CLOEXEC || defined O_CLOEXEC +#if defined(OPEN_TREE_CLOEXEC) || (defined(HAVE_DECL_OPEN_TREE_CLOEXEC) && HAVE_DECL_OPEN_TREE_CLOEXEC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((OPEN_TREE_CLOEXEC) == (O_CLOEXEC), "OPEN_TREE_CLOEXEC != O_CLOEXEC"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define OPEN_TREE_CLOEXEC O_CLOEXEC +#endif +#endif +#if defined(AT_SYMLINK_NOFOLLOW) || (defined(HAVE_DECL_AT_SYMLINK_NOFOLLOW) && HAVE_DECL_AT_SYMLINK_NOFOLLOW) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AT_SYMLINK_NOFOLLOW) == (0x100), "AT_SYMLINK_NOFOLLOW != 0x100"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AT_SYMLINK_NOFOLLOW 0x100 +#endif +#if defined(AT_REMOVEDIR) || (defined(HAVE_DECL_AT_REMOVEDIR) && HAVE_DECL_AT_REMOVEDIR) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AT_REMOVEDIR) == (0x200), "AT_REMOVEDIR != 0x200"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AT_REMOVEDIR 0x200 +#endif +#if defined(AT_SYMLINK_FOLLOW) || (defined(HAVE_DECL_AT_SYMLINK_FOLLOW) && HAVE_DECL_AT_SYMLINK_FOLLOW) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AT_SYMLINK_FOLLOW) == (0x400), "AT_SYMLINK_FOLLOW != 0x400"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AT_SYMLINK_FOLLOW 0x400 +#endif +#if defined(AT_NO_AUTOMOUNT) || (defined(HAVE_DECL_AT_NO_AUTOMOUNT) && HAVE_DECL_AT_NO_AUTOMOUNT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AT_NO_AUTOMOUNT) == (0x800), "AT_NO_AUTOMOUNT != 0x800"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AT_NO_AUTOMOUNT 0x800 +#endif +#if defined(AT_EMPTY_PATH) || (defined(HAVE_DECL_AT_EMPTY_PATH) && HAVE_DECL_AT_EMPTY_PATH) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AT_EMPTY_PATH) == (0x1000), "AT_EMPTY_PATH != 0x1000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AT_EMPTY_PATH 0x1000 +#endif +#if defined(AT_RECURSIVE) || (defined(HAVE_DECL_AT_RECURSIVE) && HAVE_DECL_AT_RECURSIVE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((AT_RECURSIVE) == (0x8000), "AT_RECURSIVE != 0x8000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define AT_RECURSIVE 0x8000 +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat open_tree_flags in mpers mode + +# else + +static const struct xlat_data open_tree_flags_xdata[] = { + XLAT(OPEN_TREE_CLONE), + #define XLAT_VAL_0 ((unsigned) (OPEN_TREE_CLONE)) + #define XLAT_STR_0 STRINGIFY(OPEN_TREE_CLONE) +#if defined OPEN_TREE_CLOEXEC || defined O_CLOEXEC + XLAT(OPEN_TREE_CLOEXEC), + #define XLAT_VAL_1 ((unsigned) (OPEN_TREE_CLOEXEC)) + #define XLAT_STR_1 STRINGIFY(OPEN_TREE_CLOEXEC) +#endif + XLAT(AT_SYMLINK_NOFOLLOW), + #define XLAT_VAL_2 ((unsigned) (AT_SYMLINK_NOFOLLOW)) + #define XLAT_STR_2 STRINGIFY(AT_SYMLINK_NOFOLLOW) + XLAT(AT_REMOVEDIR), + #define XLAT_VAL_3 ((unsigned) (AT_REMOVEDIR)) + #define XLAT_STR_3 STRINGIFY(AT_REMOVEDIR) + XLAT(AT_SYMLINK_FOLLOW), + #define XLAT_VAL_4 ((unsigned) (AT_SYMLINK_FOLLOW)) + #define XLAT_STR_4 STRINGIFY(AT_SYMLINK_FOLLOW) + XLAT(AT_NO_AUTOMOUNT), + #define XLAT_VAL_5 ((unsigned) (AT_NO_AUTOMOUNT)) + #define XLAT_STR_5 STRINGIFY(AT_NO_AUTOMOUNT) + XLAT(AT_EMPTY_PATH), + #define XLAT_VAL_6 ((unsigned) (AT_EMPTY_PATH)) + #define XLAT_STR_6 STRINGIFY(AT_EMPTY_PATH) + XLAT(AT_RECURSIVE), + #define XLAT_VAL_7 ((unsigned) (AT_RECURSIVE)) + #define XLAT_STR_7 STRINGIFY(AT_RECURSIVE) +}; +static +const struct xlat open_tree_flags[1] = { { + .data = open_tree_flags_xdata, + .size = ARRAY_SIZE(open_tree_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/open_tree_flags.in b/xlat/open_tree_flags.in new file mode 100644 index 00000000..3080dc08 --- /dev/null +++ b/xlat/open_tree_flags.in @@ -0,0 +1,10 @@ +OPEN_TREE_CLONE 1 +#if defined OPEN_TREE_CLOEXEC || defined O_CLOEXEC +OPEN_TREE_CLOEXEC O_CLOEXEC +#endif +AT_SYMLINK_NOFOLLOW 0x100 +AT_REMOVEDIR 0x200 +AT_SYMLINK_FOLLOW 0x400 +AT_NO_AUTOMOUNT 0x800 +AT_EMPTY_PATH 0x1000 +AT_RECURSIVE 0x8000 diff --git a/xlat/packet_diag_attrs.h b/xlat/packet_diag_attrs.h index 90253b89..262edcd0 100644 --- a/xlat/packet_diag_attrs.h +++ b/xlat/packet_diag_attrs.h @@ -12,19 +12,107 @@ # else -static -const struct xlat packet_diag_attrs[] = { +static const struct xlat_data packet_diag_attrs_xdata[] = { XLAT(PACKET_DIAG_INFO), + #define XLAT_VAL_0 ((unsigned) (PACKET_DIAG_INFO)) + #define XLAT_STR_0 STRINGIFY(PACKET_DIAG_INFO) XLAT(PACKET_DIAG_MCLIST), + #define XLAT_VAL_1 ((unsigned) (PACKET_DIAG_MCLIST)) + #define XLAT_STR_1 STRINGIFY(PACKET_DIAG_MCLIST) XLAT(PACKET_DIAG_RX_RING), + #define XLAT_VAL_2 ((unsigned) (PACKET_DIAG_RX_RING)) + #define XLAT_STR_2 STRINGIFY(PACKET_DIAG_RX_RING) XLAT(PACKET_DIAG_TX_RING), + #define XLAT_VAL_3 ((unsigned) (PACKET_DIAG_TX_RING)) + #define XLAT_STR_3 STRINGIFY(PACKET_DIAG_TX_RING) XLAT(PACKET_DIAG_FANOUT), + #define XLAT_VAL_4 ((unsigned) (PACKET_DIAG_FANOUT)) + #define XLAT_STR_4 STRINGIFY(PACKET_DIAG_FANOUT) XLAT(PACKET_DIAG_UID), + #define XLAT_VAL_5 ((unsigned) (PACKET_DIAG_UID)) + #define XLAT_STR_5 STRINGIFY(PACKET_DIAG_UID) XLAT(PACKET_DIAG_MEMINFO), + #define XLAT_VAL_6 ((unsigned) (PACKET_DIAG_MEMINFO)) + #define XLAT_STR_6 STRINGIFY(PACKET_DIAG_MEMINFO) XLAT(PACKET_DIAG_FILTER), - XLAT_END + #define XLAT_VAL_7 ((unsigned) (PACKET_DIAG_FILTER)) + #define XLAT_STR_7 STRINGIFY(PACKET_DIAG_FILTER) }; +static +const struct xlat packet_diag_attrs[1] = { { + .data = packet_diag_attrs_xdata, + .size = ARRAY_SIZE(packet_diag_attrs_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/packet_diag_info_flags.h b/xlat/packet_diag_info_flags.h index 8a083da7..0790438d 100644 --- a/xlat/packet_diag_info_flags.h +++ b/xlat/packet_diag_info_flags.h @@ -12,26 +12,84 @@ # else -static -const struct xlat packet_diag_info_flags[] = { +static const struct xlat_data packet_diag_info_flags_xdata[] = { #if defined(PDI_RUNNING) || (defined(HAVE_DECL_PDI_RUNNING) && HAVE_DECL_PDI_RUNNING) XLAT(PDI_RUNNING), + #define XLAT_VAL_0 ((unsigned) (PDI_RUNNING)) + #define XLAT_STR_0 STRINGIFY(PDI_RUNNING) #endif #if defined(PDI_AUXDATA) || (defined(HAVE_DECL_PDI_AUXDATA) && HAVE_DECL_PDI_AUXDATA) XLAT(PDI_AUXDATA), + #define XLAT_VAL_1 ((unsigned) (PDI_AUXDATA)) + #define XLAT_STR_1 STRINGIFY(PDI_AUXDATA) #endif #if defined(PDI_ORIGDEV) || (defined(HAVE_DECL_PDI_ORIGDEV) && HAVE_DECL_PDI_ORIGDEV) XLAT(PDI_ORIGDEV), + #define XLAT_VAL_2 ((unsigned) (PDI_ORIGDEV)) + #define XLAT_STR_2 STRINGIFY(PDI_ORIGDEV) #endif #if defined(PDI_VNETHDR) || (defined(HAVE_DECL_PDI_VNETHDR) && HAVE_DECL_PDI_VNETHDR) XLAT(PDI_VNETHDR), + #define XLAT_VAL_3 ((unsigned) (PDI_VNETHDR)) + #define XLAT_STR_3 STRINGIFY(PDI_VNETHDR) #endif #if defined(PDI_LOSS) || (defined(HAVE_DECL_PDI_LOSS) && HAVE_DECL_PDI_LOSS) XLAT(PDI_LOSS), + #define XLAT_VAL_4 ((unsigned) (PDI_LOSS)) + #define XLAT_STR_4 STRINGIFY(PDI_LOSS) #endif - XLAT_END }; +static +const struct xlat packet_diag_info_flags[1] = { { + .data = packet_diag_info_flags_xdata, + .size = ARRAY_SIZE(packet_diag_info_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/packet_diag_show.h b/xlat/packet_diag_show.h index 40df9733..63459653 100644 --- a/xlat/packet_diag_show.h +++ b/xlat/packet_diag_show.h @@ -12,29 +12,97 @@ # else -static -const struct xlat packet_diag_show[] = { +static const struct xlat_data packet_diag_show_xdata[] = { #if defined(PACKET_SHOW_INFO) || (defined(HAVE_DECL_PACKET_SHOW_INFO) && HAVE_DECL_PACKET_SHOW_INFO) XLAT(PACKET_SHOW_INFO), + #define XLAT_VAL_0 ((unsigned) (PACKET_SHOW_INFO)) + #define XLAT_STR_0 STRINGIFY(PACKET_SHOW_INFO) #endif #if defined(PACKET_SHOW_MCLIST) || (defined(HAVE_DECL_PACKET_SHOW_MCLIST) && HAVE_DECL_PACKET_SHOW_MCLIST) XLAT(PACKET_SHOW_MCLIST), + #define XLAT_VAL_1 ((unsigned) (PACKET_SHOW_MCLIST)) + #define XLAT_STR_1 STRINGIFY(PACKET_SHOW_MCLIST) #endif #if defined(PACKET_SHOW_RING_CFG) || (defined(HAVE_DECL_PACKET_SHOW_RING_CFG) && HAVE_DECL_PACKET_SHOW_RING_CFG) XLAT(PACKET_SHOW_RING_CFG), + #define XLAT_VAL_2 ((unsigned) (PACKET_SHOW_RING_CFG)) + #define XLAT_STR_2 STRINGIFY(PACKET_SHOW_RING_CFG) #endif #if defined(PACKET_SHOW_FANOUT) || (defined(HAVE_DECL_PACKET_SHOW_FANOUT) && HAVE_DECL_PACKET_SHOW_FANOUT) XLAT(PACKET_SHOW_FANOUT), + #define XLAT_VAL_3 ((unsigned) (PACKET_SHOW_FANOUT)) + #define XLAT_STR_3 STRINGIFY(PACKET_SHOW_FANOUT) #endif #if defined(PACKET_SHOW_MEMINFO) || (defined(HAVE_DECL_PACKET_SHOW_MEMINFO) && HAVE_DECL_PACKET_SHOW_MEMINFO) XLAT(PACKET_SHOW_MEMINFO), + #define XLAT_VAL_4 ((unsigned) (PACKET_SHOW_MEMINFO)) + #define XLAT_STR_4 STRINGIFY(PACKET_SHOW_MEMINFO) #endif #if defined(PACKET_SHOW_FILTER) || (defined(HAVE_DECL_PACKET_SHOW_FILTER) && HAVE_DECL_PACKET_SHOW_FILTER) XLAT(PACKET_SHOW_FILTER), + #define XLAT_VAL_5 ((unsigned) (PACKET_SHOW_FILTER)) + #define XLAT_STR_5 STRINGIFY(PACKET_SHOW_FILTER) #endif - XLAT_END }; +static +const struct xlat packet_diag_show[1] = { { + .data = packet_diag_show_xdata, + .size = ARRAY_SIZE(packet_diag_show_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/packet_mreq_type.h b/xlat/packet_mreq_type.h index c1448d37..2424fb89 100644 --- a/xlat/packet_mreq_type.h +++ b/xlat/packet_mreq_type.h @@ -12,23 +12,71 @@ # else -static -const struct xlat packet_mreq_type[] = { +static const struct xlat_data packet_mreq_type_xdata[] = { #if defined(PACKET_MR_MULTICAST) || (defined(HAVE_DECL_PACKET_MR_MULTICAST) && HAVE_DECL_PACKET_MR_MULTICAST) XLAT(PACKET_MR_MULTICAST), + #define XLAT_VAL_0 ((unsigned) (PACKET_MR_MULTICAST)) + #define XLAT_STR_0 STRINGIFY(PACKET_MR_MULTICAST) #endif #if defined(PACKET_MR_PROMISC) || (defined(HAVE_DECL_PACKET_MR_PROMISC) && HAVE_DECL_PACKET_MR_PROMISC) XLAT(PACKET_MR_PROMISC), + #define XLAT_VAL_1 ((unsigned) (PACKET_MR_PROMISC)) + #define XLAT_STR_1 STRINGIFY(PACKET_MR_PROMISC) #endif #if defined(PACKET_MR_ALLMULTI) || (defined(HAVE_DECL_PACKET_MR_ALLMULTI) && HAVE_DECL_PACKET_MR_ALLMULTI) XLAT(PACKET_MR_ALLMULTI), + #define XLAT_VAL_2 ((unsigned) (PACKET_MR_ALLMULTI)) + #define XLAT_STR_2 STRINGIFY(PACKET_MR_ALLMULTI) #endif #if defined(PACKET_MR_UNICAST) || (defined(HAVE_DECL_PACKET_MR_UNICAST) && HAVE_DECL_PACKET_MR_UNICAST) XLAT(PACKET_MR_UNICAST), + #define XLAT_VAL_3 ((unsigned) (PACKET_MR_UNICAST)) + #define XLAT_STR_3 STRINGIFY(PACKET_MR_UNICAST) #endif - XLAT_END }; +static +const struct xlat packet_mreq_type[1] = { { + .data = packet_mreq_type_xdata, + .size = ARRAY_SIZE(packet_mreq_type_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/perf_attr_size.h b/xlat/perf_attr_size.h index fa876d3a..1accf326 100644 --- a/xlat/perf_attr_size.h +++ b/xlat/perf_attr_size.h @@ -45,6 +45,13 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define PERF_ATTR_SIZE_VER5 112 #endif +#if defined(PERF_ATTR_SIZE_VER6) || (defined(HAVE_DECL_PERF_ATTR_SIZE_VER6) && HAVE_DECL_PERF_ATTR_SIZE_VER6) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PERF_ATTR_SIZE_VER6) == (120), "PERF_ATTR_SIZE_VER6 != 120"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PERF_ATTR_SIZE_VER6 120 +#endif #ifndef XLAT_MACROS_ONLY @@ -54,17 +61,96 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat perf_attr_size[] = { +static const struct xlat_data perf_attr_size_xdata[] = { XLAT(PERF_ATTR_SIZE_VER0), + #define XLAT_VAL_0 ((unsigned) (PERF_ATTR_SIZE_VER0)) + #define XLAT_STR_0 STRINGIFY(PERF_ATTR_SIZE_VER0) XLAT(PERF_ATTR_SIZE_VER1), + #define XLAT_VAL_1 ((unsigned) (PERF_ATTR_SIZE_VER1)) + #define XLAT_STR_1 STRINGIFY(PERF_ATTR_SIZE_VER1) XLAT(PERF_ATTR_SIZE_VER2), + #define XLAT_VAL_2 ((unsigned) (PERF_ATTR_SIZE_VER2)) + #define XLAT_STR_2 STRINGIFY(PERF_ATTR_SIZE_VER2) XLAT(PERF_ATTR_SIZE_VER3), + #define XLAT_VAL_3 ((unsigned) (PERF_ATTR_SIZE_VER3)) + #define XLAT_STR_3 STRINGIFY(PERF_ATTR_SIZE_VER3) XLAT(PERF_ATTR_SIZE_VER4), + #define XLAT_VAL_4 ((unsigned) (PERF_ATTR_SIZE_VER4)) + #define XLAT_STR_4 STRINGIFY(PERF_ATTR_SIZE_VER4) XLAT(PERF_ATTR_SIZE_VER5), - XLAT_END + #define XLAT_VAL_5 ((unsigned) (PERF_ATTR_SIZE_VER5)) + #define XLAT_STR_5 STRINGIFY(PERF_ATTR_SIZE_VER5) + XLAT(PERF_ATTR_SIZE_VER6), + #define XLAT_VAL_6 ((unsigned) (PERF_ATTR_SIZE_VER6)) + #define XLAT_STR_6 STRINGIFY(PERF_ATTR_SIZE_VER6) }; +static +const struct xlat perf_attr_size[1] = { { + .data = perf_attr_size_xdata, + .size = ARRAY_SIZE(perf_attr_size_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/perf_attr_size.in b/xlat/perf_attr_size.in index d597cd1d..9b5cf989 100644 --- a/xlat/perf_attr_size.in +++ b/xlat/perf_attr_size.in @@ -4,3 +4,4 @@ PERF_ATTR_SIZE_VER2 80 PERF_ATTR_SIZE_VER3 96 PERF_ATTR_SIZE_VER4 104 PERF_ATTR_SIZE_VER5 112 +PERF_ATTR_SIZE_VER6 120 diff --git a/xlat/perf_branch_sample_type.h b/xlat/perf_branch_sample_type.h index 3632fa82..39aa013f 100644 --- a/xlat/perf_branch_sample_type.h +++ b/xlat/perf_branch_sample_type.h @@ -122,6 +122,13 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define PERF_SAMPLE_BRANCH_TYPE_SAVE 1 << 16 #endif +#if defined(PERF_SAMPLE_BRANCH_HW_INDEX) || (defined(HAVE_DECL_PERF_SAMPLE_BRANCH_HW_INDEX) && HAVE_DECL_PERF_SAMPLE_BRANCH_HW_INDEX) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PERF_SAMPLE_BRANCH_HW_INDEX) == (1 << 17), "PERF_SAMPLE_BRANCH_HW_INDEX != 1 << 17"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PERF_SAMPLE_BRANCH_HW_INDEX 1 << 17 +#endif #ifndef XLAT_MACROS_ONLY @@ -131,28 +138,217 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat perf_branch_sample_type[] = { +static const struct xlat_data perf_branch_sample_type_xdata[] = { XLAT(PERF_SAMPLE_BRANCH_USER), + #define XLAT_VAL_0 ((unsigned) (PERF_SAMPLE_BRANCH_USER)) + #define XLAT_STR_0 STRINGIFY(PERF_SAMPLE_BRANCH_USER) XLAT(PERF_SAMPLE_BRANCH_KERNEL), + #define XLAT_VAL_1 ((unsigned) (PERF_SAMPLE_BRANCH_KERNEL)) + #define XLAT_STR_1 STRINGIFY(PERF_SAMPLE_BRANCH_KERNEL) XLAT(PERF_SAMPLE_BRANCH_HV), + #define XLAT_VAL_2 ((unsigned) (PERF_SAMPLE_BRANCH_HV)) + #define XLAT_STR_2 STRINGIFY(PERF_SAMPLE_BRANCH_HV) XLAT(PERF_SAMPLE_BRANCH_ANY), + #define XLAT_VAL_3 ((unsigned) (PERF_SAMPLE_BRANCH_ANY)) + #define XLAT_STR_3 STRINGIFY(PERF_SAMPLE_BRANCH_ANY) XLAT(PERF_SAMPLE_BRANCH_ANY_CALL), + #define XLAT_VAL_4 ((unsigned) (PERF_SAMPLE_BRANCH_ANY_CALL)) + #define XLAT_STR_4 STRINGIFY(PERF_SAMPLE_BRANCH_ANY_CALL) XLAT(PERF_SAMPLE_BRANCH_ANY_RETURN), + #define XLAT_VAL_5 ((unsigned) (PERF_SAMPLE_BRANCH_ANY_RETURN)) + #define XLAT_STR_5 STRINGIFY(PERF_SAMPLE_BRANCH_ANY_RETURN) XLAT(PERF_SAMPLE_BRANCH_IND_CALL), + #define XLAT_VAL_6 ((unsigned) (PERF_SAMPLE_BRANCH_IND_CALL)) + #define XLAT_STR_6 STRINGIFY(PERF_SAMPLE_BRANCH_IND_CALL) XLAT(PERF_SAMPLE_BRANCH_ABORT_TX), + #define XLAT_VAL_7 ((unsigned) (PERF_SAMPLE_BRANCH_ABORT_TX)) + #define XLAT_STR_7 STRINGIFY(PERF_SAMPLE_BRANCH_ABORT_TX) XLAT(PERF_SAMPLE_BRANCH_IN_TX), + #define XLAT_VAL_8 ((unsigned) (PERF_SAMPLE_BRANCH_IN_TX)) + #define XLAT_STR_8 STRINGIFY(PERF_SAMPLE_BRANCH_IN_TX) XLAT(PERF_SAMPLE_BRANCH_NO_TX), + #define XLAT_VAL_9 ((unsigned) (PERF_SAMPLE_BRANCH_NO_TX)) + #define XLAT_STR_9 STRINGIFY(PERF_SAMPLE_BRANCH_NO_TX) XLAT(PERF_SAMPLE_BRANCH_COND), + #define XLAT_VAL_10 ((unsigned) (PERF_SAMPLE_BRANCH_COND)) + #define XLAT_STR_10 STRINGIFY(PERF_SAMPLE_BRANCH_COND) XLAT(PERF_SAMPLE_BRANCH_CALL_STACK), + #define XLAT_VAL_11 ((unsigned) (PERF_SAMPLE_BRANCH_CALL_STACK)) + #define XLAT_STR_11 STRINGIFY(PERF_SAMPLE_BRANCH_CALL_STACK) XLAT(PERF_SAMPLE_BRANCH_IND_JUMP), + #define XLAT_VAL_12 ((unsigned) (PERF_SAMPLE_BRANCH_IND_JUMP)) + #define XLAT_STR_12 STRINGIFY(PERF_SAMPLE_BRANCH_IND_JUMP) XLAT(PERF_SAMPLE_BRANCH_CALL), + #define XLAT_VAL_13 ((unsigned) (PERF_SAMPLE_BRANCH_CALL)) + #define XLAT_STR_13 STRINGIFY(PERF_SAMPLE_BRANCH_CALL) XLAT(PERF_SAMPLE_BRANCH_NO_FLAGS), + #define XLAT_VAL_14 ((unsigned) (PERF_SAMPLE_BRANCH_NO_FLAGS)) + #define XLAT_STR_14 STRINGIFY(PERF_SAMPLE_BRANCH_NO_FLAGS) XLAT(PERF_SAMPLE_BRANCH_NO_CYCLES), + #define XLAT_VAL_15 ((unsigned) (PERF_SAMPLE_BRANCH_NO_CYCLES)) + #define XLAT_STR_15 STRINGIFY(PERF_SAMPLE_BRANCH_NO_CYCLES) XLAT(PERF_SAMPLE_BRANCH_TYPE_SAVE), - XLAT_END + #define XLAT_VAL_16 ((unsigned) (PERF_SAMPLE_BRANCH_TYPE_SAVE)) + #define XLAT_STR_16 STRINGIFY(PERF_SAMPLE_BRANCH_TYPE_SAVE) + XLAT(PERF_SAMPLE_BRANCH_HW_INDEX), + #define XLAT_VAL_17 ((unsigned) (PERF_SAMPLE_BRANCH_HW_INDEX)) + #define XLAT_STR_17 STRINGIFY(PERF_SAMPLE_BRANCH_HW_INDEX) }; +static +const struct xlat perf_branch_sample_type[1] = { { + .data = perf_branch_sample_type_xdata, + .size = ARRAY_SIZE(perf_branch_sample_type_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/perf_branch_sample_type.in b/xlat/perf_branch_sample_type.in index 9370569d..7ae59a65 100644 --- a/xlat/perf_branch_sample_type.in +++ b/xlat/perf_branch_sample_type.in @@ -15,3 +15,4 @@ PERF_SAMPLE_BRANCH_CALL 1 << 13 PERF_SAMPLE_BRANCH_NO_FLAGS 1 << 14 PERF_SAMPLE_BRANCH_NO_CYCLES 1 << 15 PERF_SAMPLE_BRANCH_TYPE_SAVE 1 << 16 +PERF_SAMPLE_BRANCH_HW_INDEX 1 << 17 diff --git a/xlat/perf_event_open_flags.h b/xlat/perf_event_open_flags.h index 86475b9d..5e795988 100644 --- a/xlat/perf_event_open_flags.h +++ b/xlat/perf_event_open_flags.h @@ -40,15 +40,63 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat perf_event_open_flags[] = { +static const struct xlat_data perf_event_open_flags_xdata[] = { XLAT(PERF_FLAG_FD_NO_GROUP), + #define XLAT_VAL_0 ((unsigned) (PERF_FLAG_FD_NO_GROUP)) + #define XLAT_STR_0 STRINGIFY(PERF_FLAG_FD_NO_GROUP) XLAT(PERF_FLAG_FD_OUTPUT), + #define XLAT_VAL_1 ((unsigned) (PERF_FLAG_FD_OUTPUT)) + #define XLAT_STR_1 STRINGIFY(PERF_FLAG_FD_OUTPUT) XLAT(PERF_FLAG_PID_CGROUP), + #define XLAT_VAL_2 ((unsigned) (PERF_FLAG_PID_CGROUP)) + #define XLAT_STR_2 STRINGIFY(PERF_FLAG_PID_CGROUP) XLAT(PERF_FLAG_FD_CLOEXEC), - XLAT_END + #define XLAT_VAL_3 ((unsigned) (PERF_FLAG_FD_CLOEXEC)) + #define XLAT_STR_3 STRINGIFY(PERF_FLAG_FD_CLOEXEC) }; +static +const struct xlat perf_event_open_flags[1] = { { + .data = perf_event_open_flags_xdata, + .size = ARRAY_SIZE(perf_event_open_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/perf_event_read_format.h b/xlat/perf_event_read_format.h index 0c74308e..f62a9d5e 100644 --- a/xlat/perf_event_read_format.h +++ b/xlat/perf_event_read_format.h @@ -40,15 +40,63 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat perf_event_read_format[] = { +static const struct xlat_data perf_event_read_format_xdata[] = { XLAT(PERF_FORMAT_TOTAL_TIME_ENABLED), + #define XLAT_VAL_0 ((unsigned) (PERF_FORMAT_TOTAL_TIME_ENABLED)) + #define XLAT_STR_0 STRINGIFY(PERF_FORMAT_TOTAL_TIME_ENABLED) XLAT(PERF_FORMAT_TOTAL_TIME_RUNNING), + #define XLAT_VAL_1 ((unsigned) (PERF_FORMAT_TOTAL_TIME_RUNNING)) + #define XLAT_STR_1 STRINGIFY(PERF_FORMAT_TOTAL_TIME_RUNNING) XLAT(PERF_FORMAT_ID), + #define XLAT_VAL_2 ((unsigned) (PERF_FORMAT_ID)) + #define XLAT_STR_2 STRINGIFY(PERF_FORMAT_ID) XLAT(PERF_FORMAT_GROUP), - XLAT_END + #define XLAT_VAL_3 ((unsigned) (PERF_FORMAT_GROUP)) + #define XLAT_STR_3 STRINGIFY(PERF_FORMAT_GROUP) }; +static +const struct xlat perf_event_read_format[1] = { { + .data = perf_event_read_format_xdata, + .size = ARRAY_SIZE(perf_event_read_format_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/perf_event_sample_format.h b/xlat/perf_event_sample_format.h index 3adda9c5..86b56280 100644 --- a/xlat/perf_event_sample_format.h +++ b/xlat/perf_event_sample_format.h @@ -143,6 +143,13 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define PERF_SAMPLE_PHYS_ADDR 1 << 19 #endif +#if defined(PERF_SAMPLE_AUX) || (defined(HAVE_DECL_PERF_SAMPLE_AUX) && HAVE_DECL_PERF_SAMPLE_AUX) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PERF_SAMPLE_AUX) == (1 << 20), "PERF_SAMPLE_AUX != 1 << 20"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PERF_SAMPLE_AUX 1 << 20 +#endif #ifndef XLAT_MACROS_ONLY @@ -152,31 +159,250 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat perf_event_sample_format[] = { +static const struct xlat_data perf_event_sample_format_xdata[] = { XLAT(PERF_SAMPLE_IP), + #define XLAT_VAL_0 ((unsigned) (PERF_SAMPLE_IP)) + #define XLAT_STR_0 STRINGIFY(PERF_SAMPLE_IP) XLAT(PERF_SAMPLE_TID), + #define XLAT_VAL_1 ((unsigned) (PERF_SAMPLE_TID)) + #define XLAT_STR_1 STRINGIFY(PERF_SAMPLE_TID) XLAT(PERF_SAMPLE_TIME), + #define XLAT_VAL_2 ((unsigned) (PERF_SAMPLE_TIME)) + #define XLAT_STR_2 STRINGIFY(PERF_SAMPLE_TIME) XLAT(PERF_SAMPLE_ADDR), + #define XLAT_VAL_3 ((unsigned) (PERF_SAMPLE_ADDR)) + #define XLAT_STR_3 STRINGIFY(PERF_SAMPLE_ADDR) XLAT(PERF_SAMPLE_READ), + #define XLAT_VAL_4 ((unsigned) (PERF_SAMPLE_READ)) + #define XLAT_STR_4 STRINGIFY(PERF_SAMPLE_READ) XLAT(PERF_SAMPLE_CALLCHAIN), + #define XLAT_VAL_5 ((unsigned) (PERF_SAMPLE_CALLCHAIN)) + #define XLAT_STR_5 STRINGIFY(PERF_SAMPLE_CALLCHAIN) XLAT(PERF_SAMPLE_ID), + #define XLAT_VAL_6 ((unsigned) (PERF_SAMPLE_ID)) + #define XLAT_STR_6 STRINGIFY(PERF_SAMPLE_ID) XLAT(PERF_SAMPLE_CPU), + #define XLAT_VAL_7 ((unsigned) (PERF_SAMPLE_CPU)) + #define XLAT_STR_7 STRINGIFY(PERF_SAMPLE_CPU) XLAT(PERF_SAMPLE_PERIOD), + #define XLAT_VAL_8 ((unsigned) (PERF_SAMPLE_PERIOD)) + #define XLAT_STR_8 STRINGIFY(PERF_SAMPLE_PERIOD) XLAT(PERF_SAMPLE_STREAM_ID), + #define XLAT_VAL_9 ((unsigned) (PERF_SAMPLE_STREAM_ID)) + #define XLAT_STR_9 STRINGIFY(PERF_SAMPLE_STREAM_ID) XLAT(PERF_SAMPLE_RAW), + #define XLAT_VAL_10 ((unsigned) (PERF_SAMPLE_RAW)) + #define XLAT_STR_10 STRINGIFY(PERF_SAMPLE_RAW) XLAT(PERF_SAMPLE_BRANCH_STACK), + #define XLAT_VAL_11 ((unsigned) (PERF_SAMPLE_BRANCH_STACK)) + #define XLAT_STR_11 STRINGIFY(PERF_SAMPLE_BRANCH_STACK) XLAT(PERF_SAMPLE_REGS_USER), + #define XLAT_VAL_12 ((unsigned) (PERF_SAMPLE_REGS_USER)) + #define XLAT_STR_12 STRINGIFY(PERF_SAMPLE_REGS_USER) XLAT(PERF_SAMPLE_STACK_USER), + #define XLAT_VAL_13 ((unsigned) (PERF_SAMPLE_STACK_USER)) + #define XLAT_STR_13 STRINGIFY(PERF_SAMPLE_STACK_USER) XLAT(PERF_SAMPLE_WEIGHT), + #define XLAT_VAL_14 ((unsigned) (PERF_SAMPLE_WEIGHT)) + #define XLAT_STR_14 STRINGIFY(PERF_SAMPLE_WEIGHT) XLAT(PERF_SAMPLE_DATA_SRC), + #define XLAT_VAL_15 ((unsigned) (PERF_SAMPLE_DATA_SRC)) + #define XLAT_STR_15 STRINGIFY(PERF_SAMPLE_DATA_SRC) XLAT(PERF_SAMPLE_IDENTIFIER), + #define XLAT_VAL_16 ((unsigned) (PERF_SAMPLE_IDENTIFIER)) + #define XLAT_STR_16 STRINGIFY(PERF_SAMPLE_IDENTIFIER) XLAT(PERF_SAMPLE_TRANSACTION), + #define XLAT_VAL_17 ((unsigned) (PERF_SAMPLE_TRANSACTION)) + #define XLAT_STR_17 STRINGIFY(PERF_SAMPLE_TRANSACTION) XLAT(PERF_SAMPLE_REGS_INTR), + #define XLAT_VAL_18 ((unsigned) (PERF_SAMPLE_REGS_INTR)) + #define XLAT_STR_18 STRINGIFY(PERF_SAMPLE_REGS_INTR) XLAT(PERF_SAMPLE_PHYS_ADDR), - XLAT_END + #define XLAT_VAL_19 ((unsigned) (PERF_SAMPLE_PHYS_ADDR)) + #define XLAT_STR_19 STRINGIFY(PERF_SAMPLE_PHYS_ADDR) + XLAT(PERF_SAMPLE_AUX), + #define XLAT_VAL_20 ((unsigned) (PERF_SAMPLE_AUX)) + #define XLAT_STR_20 STRINGIFY(PERF_SAMPLE_AUX) }; +static +const struct xlat perf_event_sample_format[1] = { { + .data = perf_event_sample_format_xdata, + .size = ARRAY_SIZE(perf_event_sample_format_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/perf_event_sample_format.in b/xlat/perf_event_sample_format.in index d310754e..cfa2da65 100644 --- a/xlat/perf_event_sample_format.in +++ b/xlat/perf_event_sample_format.in @@ -18,3 +18,4 @@ PERF_SAMPLE_IDENTIFIER 1 << 16 PERF_SAMPLE_TRANSACTION 1 << 17 PERF_SAMPLE_REGS_INTR 1 << 18 PERF_SAMPLE_PHYS_ADDR 1 << 19 +PERF_SAMPLE_AUX 1 << 20 diff --git a/xlat/perf_hw_cache_id.h b/xlat/perf_hw_cache_id.h index 04ef0585..2bc3c9be 100644 --- a/xlat/perf_hw_cache_id.h +++ b/xlat/perf_hw_cache_id.h @@ -61,19 +61,96 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat perf_hw_cache_id[] = { - +static const struct xlat_data perf_hw_cache_id_xdata[] = { XLAT(PERF_COUNT_HW_CACHE_L1D), + #define XLAT_VAL_0 ((unsigned) (PERF_COUNT_HW_CACHE_L1D)) + #define XLAT_STR_0 STRINGIFY(PERF_COUNT_HW_CACHE_L1D) XLAT(PERF_COUNT_HW_CACHE_L1I), + #define XLAT_VAL_1 ((unsigned) (PERF_COUNT_HW_CACHE_L1I)) + #define XLAT_STR_1 STRINGIFY(PERF_COUNT_HW_CACHE_L1I) XLAT(PERF_COUNT_HW_CACHE_LL), + #define XLAT_VAL_2 ((unsigned) (PERF_COUNT_HW_CACHE_LL)) + #define XLAT_STR_2 STRINGIFY(PERF_COUNT_HW_CACHE_LL) XLAT(PERF_COUNT_HW_CACHE_DTLB), + #define XLAT_VAL_3 ((unsigned) (PERF_COUNT_HW_CACHE_DTLB)) + #define XLAT_STR_3 STRINGIFY(PERF_COUNT_HW_CACHE_DTLB) XLAT(PERF_COUNT_HW_CACHE_ITLB), + #define XLAT_VAL_4 ((unsigned) (PERF_COUNT_HW_CACHE_ITLB)) + #define XLAT_STR_4 STRINGIFY(PERF_COUNT_HW_CACHE_ITLB) XLAT(PERF_COUNT_HW_CACHE_BPU), + #define XLAT_VAL_5 ((unsigned) (PERF_COUNT_HW_CACHE_BPU)) + #define XLAT_STR_5 STRINGIFY(PERF_COUNT_HW_CACHE_BPU) XLAT(PERF_COUNT_HW_CACHE_NODE), - XLAT_END + #define XLAT_VAL_6 ((unsigned) (PERF_COUNT_HW_CACHE_NODE)) + #define XLAT_STR_6 STRINGIFY(PERF_COUNT_HW_CACHE_NODE) }; +static +const struct xlat perf_hw_cache_id[1] = { { + .data = perf_hw_cache_id_xdata, + .size = ARRAY_SIZE(perf_hw_cache_id_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/perf_hw_cache_id.in b/xlat/perf_hw_cache_id.in index 1ba0b1fc..40c2827d 100644 --- a/xlat/perf_hw_cache_id.in +++ b/xlat/perf_hw_cache_id.in @@ -1,4 +1,4 @@ -/* sort -k2,2n */ +#sorted sort -k2,2n PERF_COUNT_HW_CACHE_L1D 0 PERF_COUNT_HW_CACHE_L1I 1 PERF_COUNT_HW_CACHE_LL 2 diff --git a/xlat/perf_hw_cache_op_id.h b/xlat/perf_hw_cache_op_id.h index b0cadd32..a98c17b4 100644 --- a/xlat/perf_hw_cache_op_id.h +++ b/xlat/perf_hw_cache_op_id.h @@ -33,15 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat perf_hw_cache_op_id[] = { - +static const struct xlat_data perf_hw_cache_op_id_xdata[] = { XLAT(PERF_COUNT_HW_CACHE_OP_READ), + #define XLAT_VAL_0 ((unsigned) (PERF_COUNT_HW_CACHE_OP_READ)) + #define XLAT_STR_0 STRINGIFY(PERF_COUNT_HW_CACHE_OP_READ) XLAT(PERF_COUNT_HW_CACHE_OP_WRITE), + #define XLAT_VAL_1 ((unsigned) (PERF_COUNT_HW_CACHE_OP_WRITE)) + #define XLAT_STR_1 STRINGIFY(PERF_COUNT_HW_CACHE_OP_WRITE) XLAT(PERF_COUNT_HW_CACHE_OP_PREFETCH), - XLAT_END + #define XLAT_VAL_2 ((unsigned) (PERF_COUNT_HW_CACHE_OP_PREFETCH)) + #define XLAT_STR_2 STRINGIFY(PERF_COUNT_HW_CACHE_OP_PREFETCH) }; +static +const struct xlat perf_hw_cache_op_id[1] = { { + .data = perf_hw_cache_op_id_xdata, + .size = ARRAY_SIZE(perf_hw_cache_op_id_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/perf_hw_cache_op_id.in b/xlat/perf_hw_cache_op_id.in index 7e30c3ad..0b27e866 100644 --- a/xlat/perf_hw_cache_op_id.in +++ b/xlat/perf_hw_cache_op_id.in @@ -1,4 +1,4 @@ -/* sort -k2,2n */ +#sorted sort -k2,2n PERF_COUNT_HW_CACHE_OP_READ 0 PERF_COUNT_HW_CACHE_OP_WRITE 1 PERF_COUNT_HW_CACHE_OP_PREFETCH 2 diff --git a/xlat/perf_hw_cache_op_result_id.h b/xlat/perf_hw_cache_op_result_id.h index c026ce88..7aa5585d 100644 --- a/xlat/perf_hw_cache_op_result_id.h +++ b/xlat/perf_hw_cache_op_result_id.h @@ -26,14 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat perf_hw_cache_op_result_id[] = { - +static const struct xlat_data perf_hw_cache_op_result_id_xdata[] = { XLAT(PERF_COUNT_HW_CACHE_RESULT_ACCESS), + #define XLAT_VAL_0 ((unsigned) (PERF_COUNT_HW_CACHE_RESULT_ACCESS)) + #define XLAT_STR_0 STRINGIFY(PERF_COUNT_HW_CACHE_RESULT_ACCESS) XLAT(PERF_COUNT_HW_CACHE_RESULT_MISS), - XLAT_END + #define XLAT_VAL_1 ((unsigned) (PERF_COUNT_HW_CACHE_RESULT_MISS)) + #define XLAT_STR_1 STRINGIFY(PERF_COUNT_HW_CACHE_RESULT_MISS) }; +static +const struct xlat perf_hw_cache_op_result_id[1] = { { + .data = perf_hw_cache_op_result_id_xdata, + .size = ARRAY_SIZE(perf_hw_cache_op_result_id_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/perf_hw_cache_op_result_id.in b/xlat/perf_hw_cache_op_result_id.in index 07505465..e4032290 100644 --- a/xlat/perf_hw_cache_op_result_id.in +++ b/xlat/perf_hw_cache_op_result_id.in @@ -1,3 +1,3 @@ -/* sort -k2,2n */ +#sorted sort -k2,2n PERF_COUNT_HW_CACHE_RESULT_ACCESS 0 PERF_COUNT_HW_CACHE_RESULT_MISS 1 diff --git a/xlat/perf_hw_id.h b/xlat/perf_hw_id.h index 8c71a546..893df49c 100644 --- a/xlat/perf_hw_id.h +++ b/xlat/perf_hw_id.h @@ -82,22 +82,129 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat perf_hw_id[] = { - +static const struct xlat_data perf_hw_id_xdata[] = { XLAT(PERF_COUNT_HW_CPU_CYCLES), + #define XLAT_VAL_0 ((unsigned) (PERF_COUNT_HW_CPU_CYCLES)) + #define XLAT_STR_0 STRINGIFY(PERF_COUNT_HW_CPU_CYCLES) XLAT(PERF_COUNT_HW_INSTRUCTIONS), + #define XLAT_VAL_1 ((unsigned) (PERF_COUNT_HW_INSTRUCTIONS)) + #define XLAT_STR_1 STRINGIFY(PERF_COUNT_HW_INSTRUCTIONS) XLAT(PERF_COUNT_HW_CACHE_REFERENCES), + #define XLAT_VAL_2 ((unsigned) (PERF_COUNT_HW_CACHE_REFERENCES)) + #define XLAT_STR_2 STRINGIFY(PERF_COUNT_HW_CACHE_REFERENCES) XLAT(PERF_COUNT_HW_CACHE_MISSES), + #define XLAT_VAL_3 ((unsigned) (PERF_COUNT_HW_CACHE_MISSES)) + #define XLAT_STR_3 STRINGIFY(PERF_COUNT_HW_CACHE_MISSES) XLAT(PERF_COUNT_HW_BRANCH_INSTRUCTIONS), + #define XLAT_VAL_4 ((unsigned) (PERF_COUNT_HW_BRANCH_INSTRUCTIONS)) + #define XLAT_STR_4 STRINGIFY(PERF_COUNT_HW_BRANCH_INSTRUCTIONS) XLAT(PERF_COUNT_HW_BRANCH_MISSES), + #define XLAT_VAL_5 ((unsigned) (PERF_COUNT_HW_BRANCH_MISSES)) + #define XLAT_STR_5 STRINGIFY(PERF_COUNT_HW_BRANCH_MISSES) XLAT(PERF_COUNT_HW_BUS_CYCLES), + #define XLAT_VAL_6 ((unsigned) (PERF_COUNT_HW_BUS_CYCLES)) + #define XLAT_STR_6 STRINGIFY(PERF_COUNT_HW_BUS_CYCLES) XLAT(PERF_COUNT_HW_STALLED_CYCLES_FRONTEND), + #define XLAT_VAL_7 ((unsigned) (PERF_COUNT_HW_STALLED_CYCLES_FRONTEND)) + #define XLAT_STR_7 STRINGIFY(PERF_COUNT_HW_STALLED_CYCLES_FRONTEND) XLAT(PERF_COUNT_HW_STALLED_CYCLES_BACKEND), + #define XLAT_VAL_8 ((unsigned) (PERF_COUNT_HW_STALLED_CYCLES_BACKEND)) + #define XLAT_STR_8 STRINGIFY(PERF_COUNT_HW_STALLED_CYCLES_BACKEND) XLAT(PERF_COUNT_HW_REF_CPU_CYCLES), - XLAT_END + #define XLAT_VAL_9 ((unsigned) (PERF_COUNT_HW_REF_CPU_CYCLES)) + #define XLAT_STR_9 STRINGIFY(PERF_COUNT_HW_REF_CPU_CYCLES) }; +static +const struct xlat perf_hw_id[1] = { { + .data = perf_hw_id_xdata, + .size = ARRAY_SIZE(perf_hw_id_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/perf_hw_id.in b/xlat/perf_hw_id.in index c46bcecd..3b0ce4a7 100644 --- a/xlat/perf_hw_id.in +++ b/xlat/perf_hw_id.in @@ -1,4 +1,4 @@ -/* sort -k2,2n */ +#sorted sort -k2,2n PERF_COUNT_HW_CPU_CYCLES 0 PERF_COUNT_HW_INSTRUCTIONS 1 PERF_COUNT_HW_CACHE_REFERENCES 2 diff --git a/xlat/perf_ioctl_cmds.h b/xlat/perf_ioctl_cmds.h index d3f2a09a..4370c1bc 100644 --- a/xlat/perf_ioctl_cmds.h +++ b/xlat/perf_ioctl_cmds.h @@ -96,25 +96,153 @@ extern const struct xlat perf_ioctl_cmds[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat perf_ioctl_cmds[] = { +static const struct xlat_data perf_ioctl_cmds_xdata[] = { XLAT(PERF_EVENT_IOC_ENABLE), + #define XLAT_VAL_0 ((unsigned) (PERF_EVENT_IOC_ENABLE)) + #define XLAT_STR_0 STRINGIFY(PERF_EVENT_IOC_ENABLE) XLAT(PERF_EVENT_IOC_DISABLE), + #define XLAT_VAL_1 ((unsigned) (PERF_EVENT_IOC_DISABLE)) + #define XLAT_STR_1 STRINGIFY(PERF_EVENT_IOC_DISABLE) XLAT(PERF_EVENT_IOC_REFRESH), + #define XLAT_VAL_2 ((unsigned) (PERF_EVENT_IOC_REFRESH)) + #define XLAT_STR_2 STRINGIFY(PERF_EVENT_IOC_REFRESH) XLAT(PERF_EVENT_IOC_RESET), + #define XLAT_VAL_3 ((unsigned) (PERF_EVENT_IOC_RESET)) + #define XLAT_STR_3 STRINGIFY(PERF_EVENT_IOC_RESET) XLAT(PERF_EVENT_IOC_PERIOD), + #define XLAT_VAL_4 ((unsigned) (PERF_EVENT_IOC_PERIOD)) + #define XLAT_STR_4 STRINGIFY(PERF_EVENT_IOC_PERIOD) XLAT(PERF_EVENT_IOC_SET_OUTPUT), + #define XLAT_VAL_5 ((unsigned) (PERF_EVENT_IOC_SET_OUTPUT)) + #define XLAT_STR_5 STRINGIFY(PERF_EVENT_IOC_SET_OUTPUT) XLAT(PERF_EVENT_IOC_SET_FILTER), + #define XLAT_VAL_6 ((unsigned) (PERF_EVENT_IOC_SET_FILTER)) + #define XLAT_STR_6 STRINGIFY(PERF_EVENT_IOC_SET_FILTER) XLAT(PERF_EVENT_IOC_ID), + #define XLAT_VAL_7 ((unsigned) (PERF_EVENT_IOC_ID)) + #define XLAT_STR_7 STRINGIFY(PERF_EVENT_IOC_ID) XLAT(PERF_EVENT_IOC_SET_BPF), + #define XLAT_VAL_8 ((unsigned) (PERF_EVENT_IOC_SET_BPF)) + #define XLAT_STR_8 STRINGIFY(PERF_EVENT_IOC_SET_BPF) XLAT(PERF_EVENT_IOC_PAUSE_OUTPUT), + #define XLAT_VAL_9 ((unsigned) (PERF_EVENT_IOC_PAUSE_OUTPUT)) + #define XLAT_STR_9 STRINGIFY(PERF_EVENT_IOC_PAUSE_OUTPUT) XLAT(PERF_EVENT_IOC_QUERY_BPF), + #define XLAT_VAL_10 ((unsigned) (PERF_EVENT_IOC_QUERY_BPF)) + #define XLAT_STR_10 STRINGIFY(PERF_EVENT_IOC_QUERY_BPF) XLAT(PERF_EVENT_IOC_MODIFY_ATTRIBUTES), - XLAT_END + #define XLAT_VAL_11 ((unsigned) (PERF_EVENT_IOC_MODIFY_ATTRIBUTES)) + #define XLAT_STR_11 STRINGIFY(PERF_EVENT_IOC_MODIFY_ATTRIBUTES) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat perf_ioctl_cmds[1] = { { + .data = perf_ioctl_cmds_xdata, + .size = ARRAY_SIZE(perf_ioctl_cmds_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/perf_ioctl_flags.h b/xlat/perf_ioctl_flags.h index de3883aa..dc525b94 100644 --- a/xlat/perf_ioctl_flags.h +++ b/xlat/perf_ioctl_flags.h @@ -19,14 +19,32 @@ extern const struct xlat perf_ioctl_flags[]; # else +static const struct xlat_data perf_ioctl_flags_xdata[] = { + XLAT(PERF_IOC_FLAG_GROUP), + #define XLAT_VAL_0 ((unsigned) (PERF_IOC_FLAG_GROUP)) + #define XLAT_STR_0 STRINGIFY(PERF_IOC_FLAG_GROUP) +}; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static # endif -const struct xlat perf_ioctl_flags[] = { - XLAT(PERF_IOC_FLAG_GROUP), - XLAT_END -}; +const struct xlat perf_ioctl_flags[1] = { { + .data = perf_ioctl_flags_xdata, + .size = ARRAY_SIZE(perf_ioctl_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/perf_sw_ids.h b/xlat/perf_sw_ids.h index ecf0f83f..03df21fe 100644 --- a/xlat/perf_sw_ids.h +++ b/xlat/perf_sw_ids.h @@ -89,23 +89,140 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat perf_sw_ids[] = { - +static const struct xlat_data perf_sw_ids_xdata[] = { XLAT(PERF_COUNT_SW_CPU_CLOCK), + #define XLAT_VAL_0 ((unsigned) (PERF_COUNT_SW_CPU_CLOCK)) + #define XLAT_STR_0 STRINGIFY(PERF_COUNT_SW_CPU_CLOCK) XLAT(PERF_COUNT_SW_TASK_CLOCK), + #define XLAT_VAL_1 ((unsigned) (PERF_COUNT_SW_TASK_CLOCK)) + #define XLAT_STR_1 STRINGIFY(PERF_COUNT_SW_TASK_CLOCK) XLAT(PERF_COUNT_SW_PAGE_FAULTS), + #define XLAT_VAL_2 ((unsigned) (PERF_COUNT_SW_PAGE_FAULTS)) + #define XLAT_STR_2 STRINGIFY(PERF_COUNT_SW_PAGE_FAULTS) XLAT(PERF_COUNT_SW_CONTEXT_SWITCHES), + #define XLAT_VAL_3 ((unsigned) (PERF_COUNT_SW_CONTEXT_SWITCHES)) + #define XLAT_STR_3 STRINGIFY(PERF_COUNT_SW_CONTEXT_SWITCHES) XLAT(PERF_COUNT_SW_CPU_MIGRATIONS), + #define XLAT_VAL_4 ((unsigned) (PERF_COUNT_SW_CPU_MIGRATIONS)) + #define XLAT_STR_4 STRINGIFY(PERF_COUNT_SW_CPU_MIGRATIONS) XLAT(PERF_COUNT_SW_PAGE_FAULTS_MIN), + #define XLAT_VAL_5 ((unsigned) (PERF_COUNT_SW_PAGE_FAULTS_MIN)) + #define XLAT_STR_5 STRINGIFY(PERF_COUNT_SW_PAGE_FAULTS_MIN) XLAT(PERF_COUNT_SW_PAGE_FAULTS_MAJ), + #define XLAT_VAL_6 ((unsigned) (PERF_COUNT_SW_PAGE_FAULTS_MAJ)) + #define XLAT_STR_6 STRINGIFY(PERF_COUNT_SW_PAGE_FAULTS_MAJ) XLAT(PERF_COUNT_SW_ALIGNMENT_FAULTS), + #define XLAT_VAL_7 ((unsigned) (PERF_COUNT_SW_ALIGNMENT_FAULTS)) + #define XLAT_STR_7 STRINGIFY(PERF_COUNT_SW_ALIGNMENT_FAULTS) XLAT(PERF_COUNT_SW_EMULATION_FAULTS), + #define XLAT_VAL_8 ((unsigned) (PERF_COUNT_SW_EMULATION_FAULTS)) + #define XLAT_STR_8 STRINGIFY(PERF_COUNT_SW_EMULATION_FAULTS) XLAT(PERF_COUNT_SW_DUMMY), + #define XLAT_VAL_9 ((unsigned) (PERF_COUNT_SW_DUMMY)) + #define XLAT_STR_9 STRINGIFY(PERF_COUNT_SW_DUMMY) XLAT(PERF_COUNT_SW_BPF_OUTPUT), - XLAT_END + #define XLAT_VAL_10 ((unsigned) (PERF_COUNT_SW_BPF_OUTPUT)) + #define XLAT_STR_10 STRINGIFY(PERF_COUNT_SW_BPF_OUTPUT) }; +static +const struct xlat perf_sw_ids[1] = { { + .data = perf_sw_ids_xdata, + .size = ARRAY_SIZE(perf_sw_ids_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/perf_sw_ids.in b/xlat/perf_sw_ids.in index e2ad8a8c..0e097112 100644 --- a/xlat/perf_sw_ids.in +++ b/xlat/perf_sw_ids.in @@ -1,4 +1,4 @@ -/* sort -k2,2n */ +#sorted sort -k2,2n PERF_COUNT_SW_CPU_CLOCK 0 PERF_COUNT_SW_TASK_CLOCK 1 PERF_COUNT_SW_PAGE_FAULTS 2 diff --git a/xlat/perf_type_id.h b/xlat/perf_type_id.h index bbe5c581..579df300 100644 --- a/xlat/perf_type_id.h +++ b/xlat/perf_type_id.h @@ -54,18 +54,85 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat perf_type_id[] = { - +static const struct xlat_data perf_type_id_xdata[] = { XLAT(PERF_TYPE_HARDWARE), + #define XLAT_VAL_0 ((unsigned) (PERF_TYPE_HARDWARE)) + #define XLAT_STR_0 STRINGIFY(PERF_TYPE_HARDWARE) XLAT(PERF_TYPE_SOFTWARE), + #define XLAT_VAL_1 ((unsigned) (PERF_TYPE_SOFTWARE)) + #define XLAT_STR_1 STRINGIFY(PERF_TYPE_SOFTWARE) XLAT(PERF_TYPE_TRACEPOINT), + #define XLAT_VAL_2 ((unsigned) (PERF_TYPE_TRACEPOINT)) + #define XLAT_STR_2 STRINGIFY(PERF_TYPE_TRACEPOINT) XLAT(PERF_TYPE_HW_CACHE), + #define XLAT_VAL_3 ((unsigned) (PERF_TYPE_HW_CACHE)) + #define XLAT_STR_3 STRINGIFY(PERF_TYPE_HW_CACHE) XLAT(PERF_TYPE_RAW), + #define XLAT_VAL_4 ((unsigned) (PERF_TYPE_RAW)) + #define XLAT_STR_4 STRINGIFY(PERF_TYPE_RAW) XLAT(PERF_TYPE_BREAKPOINT), - XLAT_END + #define XLAT_VAL_5 ((unsigned) (PERF_TYPE_BREAKPOINT)) + #define XLAT_STR_5 STRINGIFY(PERF_TYPE_BREAKPOINT) }; +static +const struct xlat perf_type_id[1] = { { + .data = perf_type_id_xdata, + .size = ARRAY_SIZE(perf_type_id_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/perf_type_id.in b/xlat/perf_type_id.in index 88f63381..29f6f2b8 100644 --- a/xlat/perf_type_id.in +++ b/xlat/perf_type_id.in @@ -1,4 +1,4 @@ -/* sort -k2,2n */ +#sorted sort -k2,2n PERF_TYPE_HARDWARE 0 PERF_TYPE_SOFTWARE 1 PERF_TYPE_TRACEPOINT 2 diff --git a/xlat/personality_flags.h b/xlat/personality_flags.h index 4b2a3693..7de2264d 100644 --- a/xlat/personality_flags.h +++ b/xlat/personality_flags.h @@ -89,22 +89,140 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat personality_flags[] = { +static const struct xlat_data personality_flags_xdata[] = { XLAT(UNAME26), + #define XLAT_VAL_0 ((unsigned) (UNAME26)) + #define XLAT_STR_0 STRINGIFY(UNAME26) XLAT(ADDR_NO_RANDOMIZE), + #define XLAT_VAL_1 ((unsigned) (ADDR_NO_RANDOMIZE)) + #define XLAT_STR_1 STRINGIFY(ADDR_NO_RANDOMIZE) XLAT(FDPIC_FUNCPTRS), + #define XLAT_VAL_2 ((unsigned) (FDPIC_FUNCPTRS)) + #define XLAT_STR_2 STRINGIFY(FDPIC_FUNCPTRS) XLAT(MMAP_PAGE_ZERO), + #define XLAT_VAL_3 ((unsigned) (MMAP_PAGE_ZERO)) + #define XLAT_STR_3 STRINGIFY(MMAP_PAGE_ZERO) XLAT(ADDR_COMPAT_LAYOUT), + #define XLAT_VAL_4 ((unsigned) (ADDR_COMPAT_LAYOUT)) + #define XLAT_STR_4 STRINGIFY(ADDR_COMPAT_LAYOUT) XLAT(READ_IMPLIES_EXEC), + #define XLAT_VAL_5 ((unsigned) (READ_IMPLIES_EXEC)) + #define XLAT_STR_5 STRINGIFY(READ_IMPLIES_EXEC) XLAT(ADDR_LIMIT_32BIT), + #define XLAT_VAL_6 ((unsigned) (ADDR_LIMIT_32BIT)) + #define XLAT_STR_6 STRINGIFY(ADDR_LIMIT_32BIT) XLAT(SHORT_INODE), + #define XLAT_VAL_7 ((unsigned) (SHORT_INODE)) + #define XLAT_STR_7 STRINGIFY(SHORT_INODE) XLAT(WHOLE_SECONDS), + #define XLAT_VAL_8 ((unsigned) (WHOLE_SECONDS)) + #define XLAT_STR_8 STRINGIFY(WHOLE_SECONDS) XLAT(STICKY_TIMEOUTS), + #define XLAT_VAL_9 ((unsigned) (STICKY_TIMEOUTS)) + #define XLAT_STR_9 STRINGIFY(STICKY_TIMEOUTS) XLAT(ADDR_LIMIT_3GB), - XLAT_END + #define XLAT_VAL_10 ((unsigned) (ADDR_LIMIT_3GB)) + #define XLAT_STR_10 STRINGIFY(ADDR_LIMIT_3GB) }; +static +const struct xlat personality_flags[1] = { { + .data = personality_flags_xdata, + .size = ARRAY_SIZE(personality_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/personality_types.h b/xlat/personality_types.h index 7560b887..c14119bb 100644 --- a/xlat/personality_types.h +++ b/xlat/personality_types.h @@ -173,34 +173,272 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat personality_types[] = { +static const struct xlat_data personality_types_xdata[] = { XLAT(PER_LINUX), + #define XLAT_VAL_0 ((unsigned) (PER_LINUX)) + #define XLAT_STR_0 STRINGIFY(PER_LINUX) XLAT(PER_LINUX_32BIT), + #define XLAT_VAL_1 ((unsigned) (PER_LINUX_32BIT)) + #define XLAT_STR_1 STRINGIFY(PER_LINUX_32BIT) XLAT(PER_LINUX_FDPIC), + #define XLAT_VAL_2 ((unsigned) (PER_LINUX_FDPIC)) + #define XLAT_STR_2 STRINGIFY(PER_LINUX_FDPIC) XLAT(PER_SVR4), + #define XLAT_VAL_3 ((unsigned) (PER_SVR4)) + #define XLAT_STR_3 STRINGIFY(PER_SVR4) XLAT(PER_SVR3), + #define XLAT_VAL_4 ((unsigned) (PER_SVR3)) + #define XLAT_STR_4 STRINGIFY(PER_SVR3) XLAT(PER_SCOSVR3), + #define XLAT_VAL_5 ((unsigned) (PER_SCOSVR3)) + #define XLAT_STR_5 STRINGIFY(PER_SCOSVR3) XLAT(PER_OSR5), + #define XLAT_VAL_6 ((unsigned) (PER_OSR5)) + #define XLAT_STR_6 STRINGIFY(PER_OSR5) XLAT(PER_WYSEV386), + #define XLAT_VAL_7 ((unsigned) (PER_WYSEV386)) + #define XLAT_STR_7 STRINGIFY(PER_WYSEV386) XLAT(PER_ISCR4), + #define XLAT_VAL_8 ((unsigned) (PER_ISCR4)) + #define XLAT_STR_8 STRINGIFY(PER_ISCR4) XLAT(PER_BSD), + #define XLAT_VAL_9 ((unsigned) (PER_BSD)) + #define XLAT_STR_9 STRINGIFY(PER_BSD) XLAT(PER_SUNOS), + #define XLAT_VAL_10 ((unsigned) (PER_SUNOS)) + #define XLAT_STR_10 STRINGIFY(PER_SUNOS) XLAT(PER_XENIX), + #define XLAT_VAL_11 ((unsigned) (PER_XENIX)) + #define XLAT_STR_11 STRINGIFY(PER_XENIX) XLAT(PER_LINUX32), + #define XLAT_VAL_12 ((unsigned) (PER_LINUX32)) + #define XLAT_STR_12 STRINGIFY(PER_LINUX32) XLAT(PER_LINUX32_3GB), + #define XLAT_VAL_13 ((unsigned) (PER_LINUX32_3GB)) + #define XLAT_STR_13 STRINGIFY(PER_LINUX32_3GB) XLAT(PER_IRIX32), + #define XLAT_VAL_14 ((unsigned) (PER_IRIX32)) + #define XLAT_STR_14 STRINGIFY(PER_IRIX32) XLAT(PER_IRIXN32), + #define XLAT_VAL_15 ((unsigned) (PER_IRIXN32)) + #define XLAT_STR_15 STRINGIFY(PER_IRIXN32) XLAT(PER_IRIX64), + #define XLAT_VAL_16 ((unsigned) (PER_IRIX64)) + #define XLAT_STR_16 STRINGIFY(PER_IRIX64) XLAT(PER_RISCOS), + #define XLAT_VAL_17 ((unsigned) (PER_RISCOS)) + #define XLAT_STR_17 STRINGIFY(PER_RISCOS) XLAT(PER_SOLARIS), + #define XLAT_VAL_18 ((unsigned) (PER_SOLARIS)) + #define XLAT_STR_18 STRINGIFY(PER_SOLARIS) XLAT(PER_UW7), + #define XLAT_VAL_19 ((unsigned) (PER_UW7)) + #define XLAT_STR_19 STRINGIFY(PER_UW7) XLAT(PER_OSF4), + #define XLAT_VAL_20 ((unsigned) (PER_OSF4)) + #define XLAT_STR_20 STRINGIFY(PER_OSF4) XLAT(PER_HPUX), + #define XLAT_VAL_21 ((unsigned) (PER_HPUX)) + #define XLAT_STR_21 STRINGIFY(PER_HPUX) XLAT(PER_MASK), - XLAT_END + #define XLAT_VAL_22 ((unsigned) (PER_MASK)) + #define XLAT_STR_22 STRINGIFY(PER_MASK) }; +static +const struct xlat personality_types[1] = { { + .data = personality_types_xdata, + .size = ARRAY_SIZE(personality_types_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/phonet_protocols.h b/xlat/phonet_protocols.h index 811672c2..fbe7d09c 100644 --- a/xlat/phonet_protocols.h +++ b/xlat/phonet_protocols.h @@ -33,14 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat phonet_protocols[] = { +static const struct xlat_data phonet_protocols_xdata[] = { [PN_PROTO_TRANSPORT] = XLAT(PN_PROTO_TRANSPORT), + #define XLAT_VAL_0 ((unsigned) (PN_PROTO_TRANSPORT)) + #define XLAT_STR_0 STRINGIFY(PN_PROTO_TRANSPORT) [PN_PROTO_PHONET] = XLAT(PN_PROTO_PHONET), + #define XLAT_VAL_1 ((unsigned) (PN_PROTO_PHONET)) + #define XLAT_STR_1 STRINGIFY(PN_PROTO_PHONET) [PN_PROTO_PIPE] = XLAT(PN_PROTO_PIPE), - XLAT_END + #define XLAT_VAL_2 ((unsigned) (PN_PROTO_PIPE)) + #define XLAT_STR_2 STRINGIFY(PN_PROTO_PIPE) }; +static +const struct xlat phonet_protocols[1] = { { + .data = phonet_protocols_xdata, + .size = ARRAY_SIZE(phonet_protocols_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/pkey_access.h b/xlat/pkey_access.h index cc32932a..ed2e3cc8 100644 --- a/xlat/pkey_access.h +++ b/xlat/pkey_access.h @@ -33,14 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat pkey_access[] = { +static const struct xlat_data pkey_access_xdata[] = { XLAT(PKEY_DISABLE_ACCESS), + #define XLAT_VAL_0 ((unsigned) (PKEY_DISABLE_ACCESS)) + #define XLAT_STR_0 STRINGIFY(PKEY_DISABLE_ACCESS) XLAT(PKEY_DISABLE_WRITE), + #define XLAT_VAL_1 ((unsigned) (PKEY_DISABLE_WRITE)) + #define XLAT_STR_1 STRINGIFY(PKEY_DISABLE_WRITE) XLAT(PKEY_DISABLE_EXECUTE), - XLAT_END + #define XLAT_VAL_2 ((unsigned) (PKEY_DISABLE_EXECUTE)) + #define XLAT_STR_2 STRINGIFY(PKEY_DISABLE_EXECUTE) }; +static +const struct xlat pkey_access[1] = { { + .data = pkey_access_xdata, + .size = ARRAY_SIZE(pkey_access_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/policies.h b/xlat/policies.h deleted file mode 100644 index 9e4f4cf6..00000000 --- a/xlat/policies.h +++ /dev/null @@ -1,54 +0,0 @@ -/* Generated by ./xlat/gen.sh from ./xlat/policies.in; do not edit. */ - -#include "gcc_compat.h" -#include "static_assert.h" - -#if defined(MPOL_DEFAULT) || (defined(HAVE_DECL_MPOL_DEFAULT) && HAVE_DECL_MPOL_DEFAULT) -DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MPOL_DEFAULT) == (0), "MPOL_DEFAULT != 0"); -DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE -#else -# define MPOL_DEFAULT 0 -#endif -#if defined(MPOL_PREFERRED) || (defined(HAVE_DECL_MPOL_PREFERRED) && HAVE_DECL_MPOL_PREFERRED) -DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MPOL_PREFERRED) == (1), "MPOL_PREFERRED != 1"); -DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE -#else -# define MPOL_PREFERRED 1 -#endif -#if defined(MPOL_BIND) || (defined(HAVE_DECL_MPOL_BIND) && HAVE_DECL_MPOL_BIND) -DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MPOL_BIND) == (2), "MPOL_BIND != 2"); -DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE -#else -# define MPOL_BIND 2 -#endif -#if defined(MPOL_INTERLEAVE) || (defined(HAVE_DECL_MPOL_INTERLEAVE) && HAVE_DECL_MPOL_INTERLEAVE) -DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((MPOL_INTERLEAVE) == (3), "MPOL_INTERLEAVE != 3"); -DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE -#else -# define MPOL_INTERLEAVE 3 -#endif - -#ifndef XLAT_MACROS_ONLY - -# ifdef IN_MPERS - -# error static const struct xlat policies in mpers mode - -# else - -static -const struct xlat policies[] = { - XLAT(MPOL_DEFAULT), - XLAT(MPOL_PREFERRED), - XLAT(MPOL_BIND), - XLAT(MPOL_INTERLEAVE), - XLAT_END -}; - -# endif /* !IN_MPERS */ - -#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/policies.in b/xlat/policies.in deleted file mode 100644 index fab53962..00000000 --- a/xlat/policies.in +++ /dev/null @@ -1,4 +0,0 @@ -MPOL_DEFAULT 0 -MPOL_PREFERRED 1 -MPOL_BIND 2 -MPOL_INTERLEAVE 3 diff --git a/xlat/pollflags.h b/xlat/pollflags.h index f0fd1448..26c8f3fa 100644 --- a/xlat/pollflags.h +++ b/xlat/pollflags.h @@ -155,59 +155,252 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #ifndef XLAT_MACROS_ONLY -# ifdef IN_MPERS +# ifndef IN_MPERS -# error static const struct xlat pollflags in mpers mode - -# else - -static -const struct xlat pollflags[] = { +static const struct xlat_data pollflags_xdata[] = { XLAT(POLLIN), + #define XLAT_VAL_0 ((unsigned) (POLLIN)) + #define XLAT_STR_0 STRINGIFY(POLLIN) XLAT(POLLPRI), + #define XLAT_VAL_1 ((unsigned) (POLLPRI)) + #define XLAT_STR_1 STRINGIFY(POLLPRI) XLAT(POLLOUT), + #define XLAT_VAL_2 ((unsigned) (POLLOUT)) + #define XLAT_STR_2 STRINGIFY(POLLOUT) XLAT(POLLERR), + #define XLAT_VAL_3 ((unsigned) (POLLERR)) + #define XLAT_STR_3 STRINGIFY(POLLERR) XLAT(POLLHUP), + #define XLAT_VAL_4 ((unsigned) (POLLHUP)) + #define XLAT_STR_4 STRINGIFY(POLLHUP) XLAT(POLLNVAL), + #define XLAT_VAL_5 ((unsigned) (POLLNVAL)) + #define XLAT_STR_5 STRINGIFY(POLLNVAL) XLAT(POLLRDNORM), + #define XLAT_VAL_6 ((unsigned) (POLLRDNORM)) + #define XLAT_STR_6 STRINGIFY(POLLRDNORM) XLAT(POLLRDBAND), + #define XLAT_VAL_7 ((unsigned) (POLLRDBAND)) + #define XLAT_STR_7 STRINGIFY(POLLRDBAND) #if defined(__m68k__) || defined(__mips__) || defined(__sparc__) || defined(__xtensa__) #else XLAT(POLLWRNORM), + #define XLAT_VAL_8 ((unsigned) (POLLWRNORM)) + #define XLAT_STR_8 STRINGIFY(POLLWRNORM) #endif #if defined(__m68k__) || defined(__mips__) || defined(__sparc__) || defined(__xtensa__) XLAT(POLLWRBAND), + #define XLAT_VAL_9 ((unsigned) (POLLWRBAND)) + #define XLAT_STR_9 STRINGIFY(POLLWRBAND) #else XLAT(POLLWRBAND), + #define XLAT_VAL_10 ((unsigned) (POLLWRBAND)) + #define XLAT_STR_10 STRINGIFY(POLLWRBAND) #endif #if defined(__sparc__) XLAT(POLLMSG), + #define XLAT_VAL_11 ((unsigned) (POLLMSG)) + #define XLAT_STR_11 STRINGIFY(POLLMSG) #else XLAT(POLLMSG), + #define XLAT_VAL_12 ((unsigned) (POLLMSG)) + #define XLAT_STR_12 STRINGIFY(POLLMSG) #endif #if defined(__sparc__) XLAT(POLLREMOVE), + #define XLAT_VAL_13 ((unsigned) (POLLREMOVE)) + #define XLAT_STR_13 STRINGIFY(POLLREMOVE) #elif defined(__xtensa__) XLAT(POLLREMOVE), + #define XLAT_VAL_14 ((unsigned) (POLLREMOVE)) + #define XLAT_STR_14 STRINGIFY(POLLREMOVE) #else XLAT(POLLREMOVE), + #define XLAT_VAL_15 ((unsigned) (POLLREMOVE)) + #define XLAT_STR_15 STRINGIFY(POLLREMOVE) #endif #if defined(__sparc__) XLAT(POLLRDHUP), + #define XLAT_VAL_16 ((unsigned) (POLLRDHUP)) + #define XLAT_STR_16 STRINGIFY(POLLRDHUP) #else XLAT(POLLRDHUP), + #define XLAT_VAL_17 ((unsigned) (POLLRDHUP)) + #define XLAT_STR_17 STRINGIFY(POLLRDHUP) #endif XLAT(POLL_BUSY_LOOP), - XLAT_END + #define XLAT_VAL_18 ((unsigned) (POLL_BUSY_LOOP)) + #define XLAT_STR_18 STRINGIFY(POLL_BUSY_LOOP) }; +const struct xlat pollflags[1] = { { + .data = pollflags_xdata, + .size = ARRAY_SIZE(pollflags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/pr_cap_ambient.h b/xlat/pr_cap_ambient.h index 2a89ebaa..34120a8b 100644 --- a/xlat/pr_cap_ambient.h +++ b/xlat/pr_cap_ambient.h @@ -40,15 +40,63 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat pr_cap_ambient[] = { - XLAT(PR_CAP_AMBIENT_IS_SET), - XLAT(PR_CAP_AMBIENT_RAISE), - XLAT(PR_CAP_AMBIENT_LOWER), - XLAT(PR_CAP_AMBIENT_CLEAR_ALL), - XLAT_END +static const struct xlat_data pr_cap_ambient_xdata[] = { + [PR_CAP_AMBIENT_IS_SET] = XLAT(PR_CAP_AMBIENT_IS_SET), + #define XLAT_VAL_0 ((unsigned) (PR_CAP_AMBIENT_IS_SET)) + #define XLAT_STR_0 STRINGIFY(PR_CAP_AMBIENT_IS_SET) + [PR_CAP_AMBIENT_RAISE] = XLAT(PR_CAP_AMBIENT_RAISE), + #define XLAT_VAL_1 ((unsigned) (PR_CAP_AMBIENT_RAISE)) + #define XLAT_STR_1 STRINGIFY(PR_CAP_AMBIENT_RAISE) + [PR_CAP_AMBIENT_LOWER] = XLAT(PR_CAP_AMBIENT_LOWER), + #define XLAT_VAL_2 ((unsigned) (PR_CAP_AMBIENT_LOWER)) + #define XLAT_STR_2 STRINGIFY(PR_CAP_AMBIENT_LOWER) + [PR_CAP_AMBIENT_CLEAR_ALL] = XLAT(PR_CAP_AMBIENT_CLEAR_ALL), + #define XLAT_VAL_3 ((unsigned) (PR_CAP_AMBIENT_CLEAR_ALL)) + #define XLAT_STR_3 STRINGIFY(PR_CAP_AMBIENT_CLEAR_ALL) }; +static +const struct xlat pr_cap_ambient[1] = { { + .data = pr_cap_ambient_xdata, + .size = ARRAY_SIZE(pr_cap_ambient_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/pr_cap_ambient.in b/xlat/pr_cap_ambient.in index 0f0d2f26..321fe364 100644 --- a/xlat/pr_cap_ambient.in +++ b/xlat/pr_cap_ambient.in @@ -1,3 +1,4 @@ +#value_indexed PR_CAP_AMBIENT_IS_SET 1 PR_CAP_AMBIENT_RAISE 2 PR_CAP_AMBIENT_LOWER 3 diff --git a/xlat/pr_dumpable.h b/xlat/pr_dumpable.h index 0a9404af..a39c3889 100644 --- a/xlat/pr_dumpable.h +++ b/xlat/pr_dumpable.h @@ -33,15 +33,53 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat pr_dumpable[] = { +static const struct xlat_data pr_dumpable_xdata[] = { - XLAT(SUID_DUMP_DISABLE), - XLAT(SUID_DUMP_USER), - XLAT(SUID_DUMP_ROOT), - XLAT_END + [SUID_DUMP_DISABLE] = XLAT(SUID_DUMP_DISABLE), + #define XLAT_VAL_0 ((unsigned) (SUID_DUMP_DISABLE)) + #define XLAT_STR_0 STRINGIFY(SUID_DUMP_DISABLE) + [SUID_DUMP_USER] = XLAT(SUID_DUMP_USER), + #define XLAT_VAL_1 ((unsigned) (SUID_DUMP_USER)) + #define XLAT_STR_1 STRINGIFY(SUID_DUMP_USER) + [SUID_DUMP_ROOT] = XLAT(SUID_DUMP_ROOT), + #define XLAT_VAL_2 ((unsigned) (SUID_DUMP_ROOT)) + #define XLAT_STR_2 STRINGIFY(SUID_DUMP_ROOT) }; +static +const struct xlat pr_dumpable[1] = { { + .data = pr_dumpable_xdata, + .size = ARRAY_SIZE(pr_dumpable_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/pr_dumpable.in b/xlat/pr_dumpable.in index 0334b0b9..b73fb648 100644 --- a/xlat/pr_dumpable.in +++ b/xlat/pr_dumpable.in @@ -1,3 +1,4 @@ +#value_indexed /* Defined in include/linux/sched.h */ SUID_DUMP_DISABLE 0 /* No setuid dumping */ SUID_DUMP_USER 1 /* Dump as user of process */ diff --git a/xlat/pr_fp_mode.h b/xlat/pr_fp_mode.h index 40a59db4..9955c276 100644 --- a/xlat/pr_fp_mode.h +++ b/xlat/pr_fp_mode.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat pr_fp_mode[] = { +static const struct xlat_data pr_fp_mode_xdata[] = { XLAT(PR_FP_MODE_FR), + #define XLAT_VAL_0 ((unsigned) (PR_FP_MODE_FR)) + #define XLAT_STR_0 STRINGIFY(PR_FP_MODE_FR) XLAT(PR_FP_MODE_FRE), - XLAT_END + #define XLAT_VAL_1 ((unsigned) (PR_FP_MODE_FRE)) + #define XLAT_STR_1 STRINGIFY(PR_FP_MODE_FRE) }; +static +const struct xlat pr_fp_mode[1] = { { + .data = pr_fp_mode_xdata, + .size = ARRAY_SIZE(pr_fp_mode_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/pr_mce_kill.h b/xlat/pr_mce_kill.h index 1c490fe3..aad6132d 100644 --- a/xlat/pr_mce_kill.h +++ b/xlat/pr_mce_kill.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat pr_mce_kill[] = { - XLAT(PR_MCE_KILL_CLEAR), - XLAT(PR_MCE_KILL_SET), - XLAT_END +static const struct xlat_data pr_mce_kill_xdata[] = { + [PR_MCE_KILL_CLEAR] = XLAT(PR_MCE_KILL_CLEAR), + #define XLAT_VAL_0 ((unsigned) (PR_MCE_KILL_CLEAR)) + #define XLAT_STR_0 STRINGIFY(PR_MCE_KILL_CLEAR) + [PR_MCE_KILL_SET] = XLAT(PR_MCE_KILL_SET), + #define XLAT_VAL_1 ((unsigned) (PR_MCE_KILL_SET)) + #define XLAT_STR_1 STRINGIFY(PR_MCE_KILL_SET) }; +static +const struct xlat pr_mce_kill[1] = { { + .data = pr_mce_kill_xdata, + .size = ARRAY_SIZE(pr_mce_kill_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/pr_mce_kill.in b/xlat/pr_mce_kill.in index 574e55f2..66f5121f 100644 --- a/xlat/pr_mce_kill.in +++ b/xlat/pr_mce_kill.in @@ -1,2 +1,3 @@ +#value_indexed PR_MCE_KILL_CLEAR 0 PR_MCE_KILL_SET 1 diff --git a/xlat/pr_mce_kill_policy.h b/xlat/pr_mce_kill_policy.h index d60e2cad..a68044da 100644 --- a/xlat/pr_mce_kill_policy.h +++ b/xlat/pr_mce_kill_policy.h @@ -33,14 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat pr_mce_kill_policy[] = { - XLAT(PR_MCE_KILL_LATE), - XLAT(PR_MCE_KILL_EARLY), - XLAT(PR_MCE_KILL_DEFAULT), - XLAT_END +static const struct xlat_data pr_mce_kill_policy_xdata[] = { + [PR_MCE_KILL_LATE] = XLAT(PR_MCE_KILL_LATE), + #define XLAT_VAL_0 ((unsigned) (PR_MCE_KILL_LATE)) + #define XLAT_STR_0 STRINGIFY(PR_MCE_KILL_LATE) + [PR_MCE_KILL_EARLY] = XLAT(PR_MCE_KILL_EARLY), + #define XLAT_VAL_1 ((unsigned) (PR_MCE_KILL_EARLY)) + #define XLAT_STR_1 STRINGIFY(PR_MCE_KILL_EARLY) + [PR_MCE_KILL_DEFAULT] = XLAT(PR_MCE_KILL_DEFAULT), + #define XLAT_VAL_2 ((unsigned) (PR_MCE_KILL_DEFAULT)) + #define XLAT_STR_2 STRINGIFY(PR_MCE_KILL_DEFAULT) }; +static +const struct xlat pr_mce_kill_policy[1] = { { + .data = pr_mce_kill_policy_xdata, + .size = ARRAY_SIZE(pr_mce_kill_policy_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/pr_mce_kill_policy.in b/xlat/pr_mce_kill_policy.in index 510b566b..ad05cbf1 100644 --- a/xlat/pr_mce_kill_policy.in +++ b/xlat/pr_mce_kill_policy.in @@ -1,3 +1,4 @@ +#value_indexed PR_MCE_KILL_LATE 0 PR_MCE_KILL_EARLY 1 PR_MCE_KILL_DEFAULT 2 diff --git a/xlat/pr_set_mm.h b/xlat/pr_set_mm.h index e70ffc25..d515b7a5 100644 --- a/xlat/pr_set_mm.h +++ b/xlat/pr_set_mm.h @@ -117,26 +117,184 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat pr_set_mm[] = { - XLAT(PR_SET_MM_START_CODE), - XLAT(PR_SET_MM_END_CODE), - XLAT(PR_SET_MM_START_DATA), - XLAT(PR_SET_MM_END_DATA), - XLAT(PR_SET_MM_START_STACK), - XLAT(PR_SET_MM_START_BRK), - XLAT(PR_SET_MM_BRK), - XLAT(PR_SET_MM_ARG_START), - XLAT(PR_SET_MM_ARG_END), - XLAT(PR_SET_MM_ENV_START), - XLAT(PR_SET_MM_ENV_END), - XLAT(PR_SET_MM_AUXV), - XLAT(PR_SET_MM_EXE_FILE), - XLAT(PR_SET_MM_MAP), - XLAT(PR_SET_MM_MAP_SIZE), - XLAT_END +static const struct xlat_data pr_set_mm_xdata[] = { + [PR_SET_MM_START_CODE] = XLAT(PR_SET_MM_START_CODE), + #define XLAT_VAL_0 ((unsigned) (PR_SET_MM_START_CODE)) + #define XLAT_STR_0 STRINGIFY(PR_SET_MM_START_CODE) + [PR_SET_MM_END_CODE] = XLAT(PR_SET_MM_END_CODE), + #define XLAT_VAL_1 ((unsigned) (PR_SET_MM_END_CODE)) + #define XLAT_STR_1 STRINGIFY(PR_SET_MM_END_CODE) + [PR_SET_MM_START_DATA] = XLAT(PR_SET_MM_START_DATA), + #define XLAT_VAL_2 ((unsigned) (PR_SET_MM_START_DATA)) + #define XLAT_STR_2 STRINGIFY(PR_SET_MM_START_DATA) + [PR_SET_MM_END_DATA] = XLAT(PR_SET_MM_END_DATA), + #define XLAT_VAL_3 ((unsigned) (PR_SET_MM_END_DATA)) + #define XLAT_STR_3 STRINGIFY(PR_SET_MM_END_DATA) + [PR_SET_MM_START_STACK] = XLAT(PR_SET_MM_START_STACK), + #define XLAT_VAL_4 ((unsigned) (PR_SET_MM_START_STACK)) + #define XLAT_STR_4 STRINGIFY(PR_SET_MM_START_STACK) + [PR_SET_MM_START_BRK] = XLAT(PR_SET_MM_START_BRK), + #define XLAT_VAL_5 ((unsigned) (PR_SET_MM_START_BRK)) + #define XLAT_STR_5 STRINGIFY(PR_SET_MM_START_BRK) + [PR_SET_MM_BRK] = XLAT(PR_SET_MM_BRK), + #define XLAT_VAL_6 ((unsigned) (PR_SET_MM_BRK)) + #define XLAT_STR_6 STRINGIFY(PR_SET_MM_BRK) + [PR_SET_MM_ARG_START] = XLAT(PR_SET_MM_ARG_START), + #define XLAT_VAL_7 ((unsigned) (PR_SET_MM_ARG_START)) + #define XLAT_STR_7 STRINGIFY(PR_SET_MM_ARG_START) + [PR_SET_MM_ARG_END] = XLAT(PR_SET_MM_ARG_END), + #define XLAT_VAL_8 ((unsigned) (PR_SET_MM_ARG_END)) + #define XLAT_STR_8 STRINGIFY(PR_SET_MM_ARG_END) + [PR_SET_MM_ENV_START] = XLAT(PR_SET_MM_ENV_START), + #define XLAT_VAL_9 ((unsigned) (PR_SET_MM_ENV_START)) + #define XLAT_STR_9 STRINGIFY(PR_SET_MM_ENV_START) + [PR_SET_MM_ENV_END] = XLAT(PR_SET_MM_ENV_END), + #define XLAT_VAL_10 ((unsigned) (PR_SET_MM_ENV_END)) + #define XLAT_STR_10 STRINGIFY(PR_SET_MM_ENV_END) + [PR_SET_MM_AUXV] = XLAT(PR_SET_MM_AUXV), + #define XLAT_VAL_11 ((unsigned) (PR_SET_MM_AUXV)) + #define XLAT_STR_11 STRINGIFY(PR_SET_MM_AUXV) + [PR_SET_MM_EXE_FILE] = XLAT(PR_SET_MM_EXE_FILE), + #define XLAT_VAL_12 ((unsigned) (PR_SET_MM_EXE_FILE)) + #define XLAT_STR_12 STRINGIFY(PR_SET_MM_EXE_FILE) + [PR_SET_MM_MAP] = XLAT(PR_SET_MM_MAP), + #define XLAT_VAL_13 ((unsigned) (PR_SET_MM_MAP)) + #define XLAT_STR_13 STRINGIFY(PR_SET_MM_MAP) + [PR_SET_MM_MAP_SIZE] = XLAT(PR_SET_MM_MAP_SIZE), + #define XLAT_VAL_14 ((unsigned) (PR_SET_MM_MAP_SIZE)) + #define XLAT_STR_14 STRINGIFY(PR_SET_MM_MAP_SIZE) }; +static +const struct xlat pr_set_mm[1] = { { + .data = pr_set_mm_xdata, + .size = ARRAY_SIZE(pr_set_mm_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/pr_set_mm.in b/xlat/pr_set_mm.in index 191ba8db..65dda080 100644 --- a/xlat/pr_set_mm.in +++ b/xlat/pr_set_mm.in @@ -1,3 +1,4 @@ +#value_indexed PR_SET_MM_START_CODE 1 PR_SET_MM_END_CODE 2 PR_SET_MM_START_DATA 3 diff --git a/xlat/pr_spec_cmds.h b/xlat/pr_spec_cmds.h index 9fa9f653..f8ea3ef5 100644 --- a/xlat/pr_spec_cmds.h +++ b/xlat/pr_spec_cmds.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat pr_spec_cmds[] = { +static const struct xlat_data pr_spec_cmds_xdata[] = { [PR_SPEC_STORE_BYPASS] = XLAT(PR_SPEC_STORE_BYPASS), + #define XLAT_VAL_0 ((unsigned) (PR_SPEC_STORE_BYPASS)) + #define XLAT_STR_0 STRINGIFY(PR_SPEC_STORE_BYPASS) [PR_SPEC_INDIRECT_BRANCH] = XLAT(PR_SPEC_INDIRECT_BRANCH), - XLAT_END + #define XLAT_VAL_1 ((unsigned) (PR_SPEC_INDIRECT_BRANCH)) + #define XLAT_STR_1 STRINGIFY(PR_SPEC_INDIRECT_BRANCH) }; +static +const struct xlat pr_spec_cmds[1] = { { + .data = pr_spec_cmds_xdata, + .size = ARRAY_SIZE(pr_spec_cmds_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/pr_spec_get_store_bypass_flags.h b/xlat/pr_spec_get_store_bypass_flags.h index 340d88db..b991cbe4 100644 --- a/xlat/pr_spec_get_store_bypass_flags.h +++ b/xlat/pr_spec_get_store_bypass_flags.h @@ -54,17 +54,85 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat pr_spec_get_store_bypass_flags[] = { +static const struct xlat_data pr_spec_get_store_bypass_flags_xdata[] = { XLAT(PR_SPEC_NOT_AFFECTED), + #define XLAT_VAL_0 ((unsigned) (PR_SPEC_NOT_AFFECTED)) + #define XLAT_STR_0 STRINGIFY(PR_SPEC_NOT_AFFECTED) XLAT(PR_SPEC_PRCTL), + #define XLAT_VAL_1 ((unsigned) (PR_SPEC_PRCTL)) + #define XLAT_STR_1 STRINGIFY(PR_SPEC_PRCTL) XLAT(PR_SPEC_ENABLE), + #define XLAT_VAL_2 ((unsigned) (PR_SPEC_ENABLE)) + #define XLAT_STR_2 STRINGIFY(PR_SPEC_ENABLE) XLAT(PR_SPEC_DISABLE), + #define XLAT_VAL_3 ((unsigned) (PR_SPEC_DISABLE)) + #define XLAT_STR_3 STRINGIFY(PR_SPEC_DISABLE) XLAT(PR_SPEC_FORCE_DISABLE), + #define XLAT_VAL_4 ((unsigned) (PR_SPEC_FORCE_DISABLE)) + #define XLAT_STR_4 STRINGIFY(PR_SPEC_FORCE_DISABLE) XLAT(PR_SPEC_DISABLE_NOEXEC), - XLAT_END + #define XLAT_VAL_5 ((unsigned) (PR_SPEC_DISABLE_NOEXEC)) + #define XLAT_STR_5 STRINGIFY(PR_SPEC_DISABLE_NOEXEC) }; +static +const struct xlat pr_spec_get_store_bypass_flags[1] = { { + .data = pr_spec_get_store_bypass_flags_xdata, + .size = ARRAY_SIZE(pr_spec_get_store_bypass_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/pr_spec_set_store_bypass_flags.h b/xlat/pr_spec_set_store_bypass_flags.h index b3ebe584..ad8a4fe6 100644 --- a/xlat/pr_spec_set_store_bypass_flags.h +++ b/xlat/pr_spec_set_store_bypass_flags.h @@ -40,15 +40,63 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat pr_spec_set_store_bypass_flags[] = { +static const struct xlat_data pr_spec_set_store_bypass_flags_xdata[] = { XLAT(PR_SPEC_ENABLE), + #define XLAT_VAL_0 ((unsigned) (PR_SPEC_ENABLE)) + #define XLAT_STR_0 STRINGIFY(PR_SPEC_ENABLE) XLAT(PR_SPEC_DISABLE), + #define XLAT_VAL_1 ((unsigned) (PR_SPEC_DISABLE)) + #define XLAT_STR_1 STRINGIFY(PR_SPEC_DISABLE) XLAT(PR_SPEC_FORCE_DISABLE), + #define XLAT_VAL_2 ((unsigned) (PR_SPEC_FORCE_DISABLE)) + #define XLAT_STR_2 STRINGIFY(PR_SPEC_FORCE_DISABLE) XLAT(PR_SPEC_DISABLE_NOEXEC), - XLAT_END + #define XLAT_VAL_3 ((unsigned) (PR_SPEC_DISABLE_NOEXEC)) + #define XLAT_STR_3 STRINGIFY(PR_SPEC_DISABLE_NOEXEC) }; +static +const struct xlat pr_spec_set_store_bypass_flags[1] = { { + .data = pr_spec_set_store_bypass_flags_xdata, + .size = ARRAY_SIZE(pr_spec_set_store_bypass_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/pr_sve_vl_flags.h b/xlat/pr_sve_vl_flags.h index 9a524b01..2c419a37 100644 --- a/xlat/pr_sve_vl_flags.h +++ b/xlat/pr_sve_vl_flags.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat pr_sve_vl_flags[] = { +static const struct xlat_data pr_sve_vl_flags_xdata[] = { XLAT(PR_SVE_SET_VL_ONEXEC), + #define XLAT_VAL_0 ((unsigned) (PR_SVE_SET_VL_ONEXEC)) + #define XLAT_STR_0 STRINGIFY(PR_SVE_SET_VL_ONEXEC) XLAT(PR_SVE_VL_INHERIT), - XLAT_END + #define XLAT_VAL_1 ((unsigned) (PR_SVE_VL_INHERIT)) + #define XLAT_STR_1 STRINGIFY(PR_SVE_VL_INHERIT) }; +static +const struct xlat pr_sve_vl_flags[1] = { { + .data = pr_sve_vl_flags_xdata, + .size = ARRAY_SIZE(pr_sve_vl_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/pr_tsc.h b/xlat/pr_tsc.h index 52b8caf0..5aea8b56 100644 --- a/xlat/pr_tsc.h +++ b/xlat/pr_tsc.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat pr_tsc[] = { - XLAT(PR_TSC_ENABLE), - XLAT(PR_TSC_SIGSEGV), - XLAT_END +static const struct xlat_data pr_tsc_xdata[] = { + [PR_TSC_ENABLE] = XLAT(PR_TSC_ENABLE), + #define XLAT_VAL_0 ((unsigned) (PR_TSC_ENABLE)) + #define XLAT_STR_0 STRINGIFY(PR_TSC_ENABLE) + [PR_TSC_SIGSEGV] = XLAT(PR_TSC_SIGSEGV), + #define XLAT_VAL_1 ((unsigned) (PR_TSC_SIGSEGV)) + #define XLAT_STR_1 STRINGIFY(PR_TSC_SIGSEGV) }; +static +const struct xlat pr_tsc[1] = { { + .data = pr_tsc_xdata, + .size = ARRAY_SIZE(pr_tsc_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/pr_tsc.in b/xlat/pr_tsc.in index d03aafc7..2c3eb002 100644 --- a/xlat/pr_tsc.in +++ b/xlat/pr_tsc.in @@ -1,2 +1,3 @@ +#value_indexed PR_TSC_ENABLE 1 PR_TSC_SIGSEGV 2 diff --git a/xlat/pr_unalign_flags.h b/xlat/pr_unalign_flags.h index e80c130f..5b7769c6 100644 --- a/xlat/pr_unalign_flags.h +++ b/xlat/pr_unalign_flags.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat pr_unalign_flags[] = { +static const struct xlat_data pr_unalign_flags_xdata[] = { XLAT(PR_UNALIGN_NOPRINT), + #define XLAT_VAL_0 ((unsigned) (PR_UNALIGN_NOPRINT)) + #define XLAT_STR_0 STRINGIFY(PR_UNALIGN_NOPRINT) XLAT(PR_UNALIGN_SIGBUS), - XLAT_END + #define XLAT_VAL_1 ((unsigned) (PR_UNALIGN_SIGBUS)) + #define XLAT_STR_1 STRINGIFY(PR_UNALIGN_SIGBUS) }; +static +const struct xlat pr_unalign_flags[1] = { { + .data = pr_unalign_flags_xdata, + .size = ARRAY_SIZE(pr_unalign_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/prctl_options.h b/xlat/prctl_options.h index 89061d6e..eb53835c 100644 --- a/xlat/prctl_options.h +++ b/xlat/prctl_options.h @@ -234,13 +234,6 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define PR_SET_MM 35 #endif -#if defined(PR_SET_PTRACER) || (defined(HAVE_DECL_PR_SET_PTRACER) && HAVE_DECL_PR_SET_PTRACER) -DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((PR_SET_PTRACER) == (0x59616d61), "PR_SET_PTRACER != 0x59616d61"); -DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE -#else -# define PR_SET_PTRACER 0x59616d61 -#endif #if defined(PR_SET_CHILD_SUBREAPER) || (defined(HAVE_DECL_PR_SET_CHILD_SUBREAPER) && HAVE_DECL_PR_SET_CHILD_SUBREAPER) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((PR_SET_CHILD_SUBREAPER) == (36), "PR_SET_CHILD_SUBREAPER != 36"); @@ -360,6 +353,34 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define PR_PAC_RESET_KEYS 54 #endif +#if defined(PR_SET_TAGGED_ADDR_CTRL) || (defined(HAVE_DECL_PR_SET_TAGGED_ADDR_CTRL) && HAVE_DECL_PR_SET_TAGGED_ADDR_CTRL) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PR_SET_TAGGED_ADDR_CTRL) == (55), "PR_SET_TAGGED_ADDR_CTRL != 55"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PR_SET_TAGGED_ADDR_CTRL 55 +#endif +#if defined(PR_GET_TAGGED_ADDR_CTRL) || (defined(HAVE_DECL_PR_GET_TAGGED_ADDR_CTRL) && HAVE_DECL_PR_GET_TAGGED_ADDR_CTRL) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PR_GET_TAGGED_ADDR_CTRL) == (56), "PR_GET_TAGGED_ADDR_CTRL != 56"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PR_GET_TAGGED_ADDR_CTRL 56 +#endif +#if defined(PR_SET_IO_FLUSHER) || (defined(HAVE_DECL_PR_SET_IO_FLUSHER) && HAVE_DECL_PR_SET_IO_FLUSHER) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PR_SET_IO_FLUSHER) == (57), "PR_SET_IO_FLUSHER != 57"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PR_SET_IO_FLUSHER 57 +#endif +#if defined(PR_GET_IO_FLUSHER) || (defined(HAVE_DECL_PR_GET_IO_FLUSHER) && HAVE_DECL_PR_GET_IO_FLUSHER) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PR_GET_IO_FLUSHER) == (58), "PR_GET_IO_FLUSHER != 58"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PR_GET_IO_FLUSHER 58 +#endif #if defined(PR_SET_VMA) || (defined(HAVE_DECL_PR_SET_VMA) && HAVE_DECL_PR_SET_VMA) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((PR_SET_VMA) == (0x53564d41), "PR_SET_VMA != 0x53564d41"); @@ -367,6 +388,13 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define PR_SET_VMA 0x53564d41 #endif +#if defined(PR_SET_PTRACER) || (defined(HAVE_DECL_PR_SET_PTRACER) && HAVE_DECL_PR_SET_PTRACER) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PR_SET_PTRACER) == (0x59616d61), "PR_SET_PTRACER != 0x59616d61"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PR_SET_PTRACER 0x59616d61 +#endif #ifndef XLAT_MACROS_ONLY @@ -376,63 +404,635 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat prctl_options[] = { +static const struct xlat_data prctl_options_xdata[] = { XLAT(PR_SET_PDEATHSIG), + #define XLAT_VAL_0 ((unsigned) (PR_SET_PDEATHSIG)) + #define XLAT_STR_0 STRINGIFY(PR_SET_PDEATHSIG) XLAT(PR_GET_PDEATHSIG), + #define XLAT_VAL_1 ((unsigned) (PR_GET_PDEATHSIG)) + #define XLAT_STR_1 STRINGIFY(PR_GET_PDEATHSIG) XLAT(PR_GET_DUMPABLE), + #define XLAT_VAL_2 ((unsigned) (PR_GET_DUMPABLE)) + #define XLAT_STR_2 STRINGIFY(PR_GET_DUMPABLE) XLAT(PR_SET_DUMPABLE), + #define XLAT_VAL_3 ((unsigned) (PR_SET_DUMPABLE)) + #define XLAT_STR_3 STRINGIFY(PR_SET_DUMPABLE) XLAT(PR_GET_UNALIGN), + #define XLAT_VAL_4 ((unsigned) (PR_GET_UNALIGN)) + #define XLAT_STR_4 STRINGIFY(PR_GET_UNALIGN) XLAT(PR_SET_UNALIGN), + #define XLAT_VAL_5 ((unsigned) (PR_SET_UNALIGN)) + #define XLAT_STR_5 STRINGIFY(PR_SET_UNALIGN) XLAT(PR_GET_KEEPCAPS), + #define XLAT_VAL_6 ((unsigned) (PR_GET_KEEPCAPS)) + #define XLAT_STR_6 STRINGIFY(PR_GET_KEEPCAPS) XLAT(PR_SET_KEEPCAPS), + #define XLAT_VAL_7 ((unsigned) (PR_SET_KEEPCAPS)) + #define XLAT_STR_7 STRINGIFY(PR_SET_KEEPCAPS) XLAT(PR_GET_FPEMU), + #define XLAT_VAL_8 ((unsigned) (PR_GET_FPEMU)) + #define XLAT_STR_8 STRINGIFY(PR_GET_FPEMU) XLAT(PR_SET_FPEMU), + #define XLAT_VAL_9 ((unsigned) (PR_SET_FPEMU)) + #define XLAT_STR_9 STRINGIFY(PR_SET_FPEMU) XLAT(PR_GET_FPEXC), + #define XLAT_VAL_10 ((unsigned) (PR_GET_FPEXC)) + #define XLAT_STR_10 STRINGIFY(PR_GET_FPEXC) XLAT(PR_SET_FPEXC), + #define XLAT_VAL_11 ((unsigned) (PR_SET_FPEXC)) + #define XLAT_STR_11 STRINGIFY(PR_SET_FPEXC) XLAT(PR_GET_TIMING), + #define XLAT_VAL_12 ((unsigned) (PR_GET_TIMING)) + #define XLAT_STR_12 STRINGIFY(PR_GET_TIMING) XLAT(PR_SET_TIMING), + #define XLAT_VAL_13 ((unsigned) (PR_SET_TIMING)) + #define XLAT_STR_13 STRINGIFY(PR_SET_TIMING) XLAT(PR_SET_NAME), + #define XLAT_VAL_14 ((unsigned) (PR_SET_NAME)) + #define XLAT_STR_14 STRINGIFY(PR_SET_NAME) XLAT(PR_GET_NAME), + #define XLAT_VAL_15 ((unsigned) (PR_GET_NAME)) + #define XLAT_STR_15 STRINGIFY(PR_GET_NAME) XLAT(PR_GET_ENDIAN), + #define XLAT_VAL_16 ((unsigned) (PR_GET_ENDIAN)) + #define XLAT_STR_16 STRINGIFY(PR_GET_ENDIAN) XLAT(PR_SET_ENDIAN), + #define XLAT_VAL_17 ((unsigned) (PR_SET_ENDIAN)) + #define XLAT_STR_17 STRINGIFY(PR_SET_ENDIAN) XLAT(PR_GET_SECCOMP), + #define XLAT_VAL_18 ((unsigned) (PR_GET_SECCOMP)) + #define XLAT_STR_18 STRINGIFY(PR_GET_SECCOMP) XLAT(PR_SET_SECCOMP), + #define XLAT_VAL_19 ((unsigned) (PR_SET_SECCOMP)) + #define XLAT_STR_19 STRINGIFY(PR_SET_SECCOMP) XLAT(PR_CAPBSET_READ), + #define XLAT_VAL_20 ((unsigned) (PR_CAPBSET_READ)) + #define XLAT_STR_20 STRINGIFY(PR_CAPBSET_READ) XLAT(PR_CAPBSET_DROP), + #define XLAT_VAL_21 ((unsigned) (PR_CAPBSET_DROP)) + #define XLAT_STR_21 STRINGIFY(PR_CAPBSET_DROP) XLAT(PR_GET_TSC), + #define XLAT_VAL_22 ((unsigned) (PR_GET_TSC)) + #define XLAT_STR_22 STRINGIFY(PR_GET_TSC) XLAT(PR_SET_TSC), + #define XLAT_VAL_23 ((unsigned) (PR_SET_TSC)) + #define XLAT_STR_23 STRINGIFY(PR_SET_TSC) XLAT(PR_GET_SECUREBITS), + #define XLAT_VAL_24 ((unsigned) (PR_GET_SECUREBITS)) + #define XLAT_STR_24 STRINGIFY(PR_GET_SECUREBITS) XLAT(PR_SET_SECUREBITS), + #define XLAT_VAL_25 ((unsigned) (PR_SET_SECUREBITS)) + #define XLAT_STR_25 STRINGIFY(PR_SET_SECUREBITS) XLAT(PR_SET_TIMERSLACK), + #define XLAT_VAL_26 ((unsigned) (PR_SET_TIMERSLACK)) + #define XLAT_STR_26 STRINGIFY(PR_SET_TIMERSLACK) XLAT(PR_GET_TIMERSLACK), + #define XLAT_VAL_27 ((unsigned) (PR_GET_TIMERSLACK)) + #define XLAT_STR_27 STRINGIFY(PR_GET_TIMERSLACK) XLAT(PR_TASK_PERF_EVENTS_DISABLE), + #define XLAT_VAL_28 ((unsigned) (PR_TASK_PERF_EVENTS_DISABLE)) + #define XLAT_STR_28 STRINGIFY(PR_TASK_PERF_EVENTS_DISABLE) XLAT(PR_TASK_PERF_EVENTS_ENABLE), + #define XLAT_VAL_29 ((unsigned) (PR_TASK_PERF_EVENTS_ENABLE)) + #define XLAT_STR_29 STRINGIFY(PR_TASK_PERF_EVENTS_ENABLE) XLAT(PR_MCE_KILL), + #define XLAT_VAL_30 ((unsigned) (PR_MCE_KILL)) + #define XLAT_STR_30 STRINGIFY(PR_MCE_KILL) XLAT(PR_MCE_KILL_GET), + #define XLAT_VAL_31 ((unsigned) (PR_MCE_KILL_GET)) + #define XLAT_STR_31 STRINGIFY(PR_MCE_KILL_GET) XLAT(PR_SET_MM), - XLAT(PR_SET_PTRACER), + #define XLAT_VAL_32 ((unsigned) (PR_SET_MM)) + #define XLAT_STR_32 STRINGIFY(PR_SET_MM) XLAT(PR_SET_CHILD_SUBREAPER), + #define XLAT_VAL_33 ((unsigned) (PR_SET_CHILD_SUBREAPER)) + #define XLAT_STR_33 STRINGIFY(PR_SET_CHILD_SUBREAPER) XLAT(PR_GET_CHILD_SUBREAPER), + #define XLAT_VAL_34 ((unsigned) (PR_GET_CHILD_SUBREAPER)) + #define XLAT_STR_34 STRINGIFY(PR_GET_CHILD_SUBREAPER) XLAT(PR_SET_NO_NEW_PRIVS), + #define XLAT_VAL_35 ((unsigned) (PR_SET_NO_NEW_PRIVS)) + #define XLAT_STR_35 STRINGIFY(PR_SET_NO_NEW_PRIVS) XLAT(PR_GET_NO_NEW_PRIVS), + #define XLAT_VAL_36 ((unsigned) (PR_GET_NO_NEW_PRIVS)) + #define XLAT_STR_36 STRINGIFY(PR_GET_NO_NEW_PRIVS) XLAT(PR_GET_TID_ADDRESS), + #define XLAT_VAL_37 ((unsigned) (PR_GET_TID_ADDRESS)) + #define XLAT_STR_37 STRINGIFY(PR_GET_TID_ADDRESS) XLAT(PR_SET_THP_DISABLE), + #define XLAT_VAL_38 ((unsigned) (PR_SET_THP_DISABLE)) + #define XLAT_STR_38 STRINGIFY(PR_SET_THP_DISABLE) XLAT(PR_GET_THP_DISABLE), + #define XLAT_VAL_39 ((unsigned) (PR_GET_THP_DISABLE)) + #define XLAT_STR_39 STRINGIFY(PR_GET_THP_DISABLE) XLAT(PR_MPX_ENABLE_MANAGEMENT), + #define XLAT_VAL_40 ((unsigned) (PR_MPX_ENABLE_MANAGEMENT)) + #define XLAT_STR_40 STRINGIFY(PR_MPX_ENABLE_MANAGEMENT) XLAT(PR_MPX_DISABLE_MANAGEMENT), + #define XLAT_VAL_41 ((unsigned) (PR_MPX_DISABLE_MANAGEMENT)) + #define XLAT_STR_41 STRINGIFY(PR_MPX_DISABLE_MANAGEMENT) XLAT(PR_SET_FP_MODE), + #define XLAT_VAL_42 ((unsigned) (PR_SET_FP_MODE)) + #define XLAT_STR_42 STRINGIFY(PR_SET_FP_MODE) XLAT(PR_GET_FP_MODE), + #define XLAT_VAL_43 ((unsigned) (PR_GET_FP_MODE)) + #define XLAT_STR_43 STRINGIFY(PR_GET_FP_MODE) XLAT(PR_CAP_AMBIENT), + #define XLAT_VAL_44 ((unsigned) (PR_CAP_AMBIENT)) + #define XLAT_STR_44 STRINGIFY(PR_CAP_AMBIENT) XLAT(PR_SVE_SET_VL), + #define XLAT_VAL_45 ((unsigned) (PR_SVE_SET_VL)) + #define XLAT_STR_45 STRINGIFY(PR_SVE_SET_VL) XLAT(PR_SVE_GET_VL), + #define XLAT_VAL_46 ((unsigned) (PR_SVE_GET_VL)) + #define XLAT_STR_46 STRINGIFY(PR_SVE_GET_VL) XLAT(PR_GET_SPECULATION_CTRL), + #define XLAT_VAL_47 ((unsigned) (PR_GET_SPECULATION_CTRL)) + #define XLAT_STR_47 STRINGIFY(PR_GET_SPECULATION_CTRL) XLAT(PR_SET_SPECULATION_CTRL), + #define XLAT_VAL_48 ((unsigned) (PR_SET_SPECULATION_CTRL)) + #define XLAT_STR_48 STRINGIFY(PR_SET_SPECULATION_CTRL) XLAT(PR_PAC_RESET_KEYS), + #define XLAT_VAL_49 ((unsigned) (PR_PAC_RESET_KEYS)) + #define XLAT_STR_49 STRINGIFY(PR_PAC_RESET_KEYS) + XLAT(PR_SET_TAGGED_ADDR_CTRL), + #define XLAT_VAL_50 ((unsigned) (PR_SET_TAGGED_ADDR_CTRL)) + #define XLAT_STR_50 STRINGIFY(PR_SET_TAGGED_ADDR_CTRL) + XLAT(PR_GET_TAGGED_ADDR_CTRL), + #define XLAT_VAL_51 ((unsigned) (PR_GET_TAGGED_ADDR_CTRL)) + #define XLAT_STR_51 STRINGIFY(PR_GET_TAGGED_ADDR_CTRL) + XLAT(PR_SET_IO_FLUSHER), + #define XLAT_VAL_52 ((unsigned) (PR_SET_IO_FLUSHER)) + #define XLAT_STR_52 STRINGIFY(PR_SET_IO_FLUSHER) + XLAT(PR_GET_IO_FLUSHER), + #define XLAT_VAL_53 ((unsigned) (PR_GET_IO_FLUSHER)) + #define XLAT_STR_53 STRINGIFY(PR_GET_IO_FLUSHER) XLAT(PR_SET_VMA), - XLAT_END + #define XLAT_VAL_54 ((unsigned) (PR_SET_VMA)) + #define XLAT_STR_54 STRINGIFY(PR_SET_VMA) + XLAT(PR_SET_PTRACER), + #define XLAT_VAL_55 ((unsigned) (PR_SET_PTRACER)) + #define XLAT_STR_55 STRINGIFY(PR_SET_PTRACER) }; +static +const struct xlat prctl_options[1] = { { + .data = prctl_options_xdata, + .size = ARRAY_SIZE(prctl_options_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif +# ifdef XLAT_VAL_41 + | XLAT_VAL_41 +# endif +# ifdef XLAT_VAL_42 + | XLAT_VAL_42 +# endif +# ifdef XLAT_VAL_43 + | XLAT_VAL_43 +# endif +# ifdef XLAT_VAL_44 + | XLAT_VAL_44 +# endif +# ifdef XLAT_VAL_45 + | XLAT_VAL_45 +# endif +# ifdef XLAT_VAL_46 + | XLAT_VAL_46 +# endif +# ifdef XLAT_VAL_47 + | XLAT_VAL_47 +# endif +# ifdef XLAT_VAL_48 + | XLAT_VAL_48 +# endif +# ifdef XLAT_VAL_49 + | XLAT_VAL_49 +# endif +# ifdef XLAT_VAL_50 + | XLAT_VAL_50 +# endif +# ifdef XLAT_VAL_51 + | XLAT_VAL_51 +# endif +# ifdef XLAT_VAL_52 + | XLAT_VAL_52 +# endif +# ifdef XLAT_VAL_53 + | XLAT_VAL_53 +# endif +# ifdef XLAT_VAL_54 + | XLAT_VAL_54 +# endif +# ifdef XLAT_VAL_55 + | XLAT_VAL_55 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif +# ifdef XLAT_STR_41 + + sizeof(XLAT_STR_41) +# endif +# ifdef XLAT_STR_42 + + sizeof(XLAT_STR_42) +# endif +# ifdef XLAT_STR_43 + + sizeof(XLAT_STR_43) +# endif +# ifdef XLAT_STR_44 + + sizeof(XLAT_STR_44) +# endif +# ifdef XLAT_STR_45 + + sizeof(XLAT_STR_45) +# endif +# ifdef XLAT_STR_46 + + sizeof(XLAT_STR_46) +# endif +# ifdef XLAT_STR_47 + + sizeof(XLAT_STR_47) +# endif +# ifdef XLAT_STR_48 + + sizeof(XLAT_STR_48) +# endif +# ifdef XLAT_STR_49 + + sizeof(XLAT_STR_49) +# endif +# ifdef XLAT_STR_50 + + sizeof(XLAT_STR_50) +# endif +# ifdef XLAT_STR_51 + + sizeof(XLAT_STR_51) +# endif +# ifdef XLAT_STR_52 + + sizeof(XLAT_STR_52) +# endif +# ifdef XLAT_STR_53 + + sizeof(XLAT_STR_53) +# endif +# ifdef XLAT_STR_54 + + sizeof(XLAT_STR_54) +# endif +# ifdef XLAT_STR_55 + + sizeof(XLAT_STR_55) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 +# undef XLAT_STR_41 +# undef XLAT_VAL_41 +# undef XLAT_STR_42 +# undef XLAT_VAL_42 +# undef XLAT_STR_43 +# undef XLAT_VAL_43 +# undef XLAT_STR_44 +# undef XLAT_VAL_44 +# undef XLAT_STR_45 +# undef XLAT_VAL_45 +# undef XLAT_STR_46 +# undef XLAT_VAL_46 +# undef XLAT_STR_47 +# undef XLAT_VAL_47 +# undef XLAT_STR_48 +# undef XLAT_VAL_48 +# undef XLAT_STR_49 +# undef XLAT_VAL_49 +# undef XLAT_STR_50 +# undef XLAT_VAL_50 +# undef XLAT_STR_51 +# undef XLAT_VAL_51 +# undef XLAT_STR_52 +# undef XLAT_VAL_52 +# undef XLAT_STR_53 +# undef XLAT_VAL_53 +# undef XLAT_STR_54 +# undef XLAT_VAL_54 +# undef XLAT_STR_55 +# undef XLAT_VAL_55 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/prctl_options.in b/xlat/prctl_options.in index 22706faf..892fff60 100644 --- a/xlat/prctl_options.in +++ b/xlat/prctl_options.in @@ -1,52 +1,57 @@ -PR_SET_PDEATHSIG 1 -PR_GET_PDEATHSIG 2 -PR_GET_DUMPABLE 3 -PR_SET_DUMPABLE 4 -PR_GET_UNALIGN 5 -PR_SET_UNALIGN 6 -PR_GET_KEEPCAPS 7 -PR_SET_KEEPCAPS 8 -PR_GET_FPEMU 9 -PR_SET_FPEMU 10 -PR_GET_FPEXC 11 -PR_SET_FPEXC 12 -PR_GET_TIMING 13 -PR_SET_TIMING 14 -PR_SET_NAME 15 -PR_GET_NAME 16 -PR_GET_ENDIAN 19 -PR_SET_ENDIAN 20 -PR_GET_SECCOMP 21 -PR_SET_SECCOMP 22 -PR_CAPBSET_READ 23 -PR_CAPBSET_DROP 24 -PR_GET_TSC 25 -PR_SET_TSC 26 -PR_GET_SECUREBITS 27 -PR_SET_SECUREBITS 28 -PR_SET_TIMERSLACK 29 -PR_GET_TIMERSLACK 30 -PR_TASK_PERF_EVENTS_DISABLE 31 -PR_TASK_PERF_EVENTS_ENABLE 32 -PR_MCE_KILL 33 -PR_MCE_KILL_GET 34 -PR_SET_MM 35 -PR_SET_PTRACER 0x59616d61 -PR_SET_CHILD_SUBREAPER 36 -PR_GET_CHILD_SUBREAPER 37 -PR_SET_NO_NEW_PRIVS 38 -PR_GET_NO_NEW_PRIVS 39 -PR_GET_TID_ADDRESS 40 -PR_SET_THP_DISABLE 41 -PR_GET_THP_DISABLE 42 -PR_MPX_ENABLE_MANAGEMENT 43 -PR_MPX_DISABLE_MANAGEMENT 44 -PR_SET_FP_MODE 45 -PR_GET_FP_MODE 46 -PR_CAP_AMBIENT 47 -PR_SVE_SET_VL 50 -PR_SVE_GET_VL 51 -PR_GET_SPECULATION_CTRL 52 -PR_SET_SPECULATION_CTRL 53 -PR_PAC_RESET_KEYS 54 -PR_SET_VMA 0x53564d41 +#sorted +PR_SET_PDEATHSIG 1 +PR_GET_PDEATHSIG 2 +PR_GET_DUMPABLE 3 +PR_SET_DUMPABLE 4 +PR_GET_UNALIGN 5 +PR_SET_UNALIGN 6 +PR_GET_KEEPCAPS 7 +PR_SET_KEEPCAPS 8 +PR_GET_FPEMU 9 +PR_SET_FPEMU 10 +PR_GET_FPEXC 11 +PR_SET_FPEXC 12 +PR_GET_TIMING 13 +PR_SET_TIMING 14 +PR_SET_NAME 15 +PR_GET_NAME 16 +PR_GET_ENDIAN 19 +PR_SET_ENDIAN 20 +PR_GET_SECCOMP 21 +PR_SET_SECCOMP 22 +PR_CAPBSET_READ 23 +PR_CAPBSET_DROP 24 +PR_GET_TSC 25 +PR_SET_TSC 26 +PR_GET_SECUREBITS 27 +PR_SET_SECUREBITS 28 +PR_SET_TIMERSLACK 29 +PR_GET_TIMERSLACK 30 +PR_TASK_PERF_EVENTS_DISABLE 31 +PR_TASK_PERF_EVENTS_ENABLE 32 +PR_MCE_KILL 33 +PR_MCE_KILL_GET 34 +PR_SET_MM 35 +PR_SET_CHILD_SUBREAPER 36 +PR_GET_CHILD_SUBREAPER 37 +PR_SET_NO_NEW_PRIVS 38 +PR_GET_NO_NEW_PRIVS 39 +PR_GET_TID_ADDRESS 40 +PR_SET_THP_DISABLE 41 +PR_GET_THP_DISABLE 42 +PR_MPX_ENABLE_MANAGEMENT 43 +PR_MPX_DISABLE_MANAGEMENT 44 +PR_SET_FP_MODE 45 +PR_GET_FP_MODE 46 +PR_CAP_AMBIENT 47 +PR_SVE_SET_VL 50 +PR_SVE_GET_VL 51 +PR_GET_SPECULATION_CTRL 52 +PR_SET_SPECULATION_CTRL 53 +PR_PAC_RESET_KEYS 54 +PR_SET_TAGGED_ADDR_CTRL 55 +PR_GET_TAGGED_ADDR_CTRL 56 +PR_SET_IO_FLUSHER 57 +PR_GET_IO_FLUSHER 58 +PR_SET_VMA 0x53564d41 /* "SVMA" */ +PR_SET_PTRACER 0x59616d61 /* "Yama" */ diff --git a/xlat/priorities.h b/xlat/priorities.h index 0163ee76..cbcd7b16 100644 --- a/xlat/priorities.h +++ b/xlat/priorities.h @@ -12,20 +12,58 @@ # else -static -const struct xlat priorities[] = { +static const struct xlat_data priorities_xdata[] = { #if defined(PRIO_PROCESS) || (defined(HAVE_DECL_PRIO_PROCESS) && HAVE_DECL_PRIO_PROCESS) XLAT(PRIO_PROCESS), + #define XLAT_VAL_0 ((unsigned) (PRIO_PROCESS)) + #define XLAT_STR_0 STRINGIFY(PRIO_PROCESS) #endif #if defined(PRIO_PGRP) || (defined(HAVE_DECL_PRIO_PGRP) && HAVE_DECL_PRIO_PGRP) XLAT(PRIO_PGRP), + #define XLAT_VAL_1 ((unsigned) (PRIO_PGRP)) + #define XLAT_STR_1 STRINGIFY(PRIO_PGRP) #endif #if defined(PRIO_USER) || (defined(HAVE_DECL_PRIO_USER) && HAVE_DECL_PRIO_USER) XLAT(PRIO_USER), + #define XLAT_VAL_2 ((unsigned) (PRIO_USER)) + #define XLAT_STR_2 STRINGIFY(PRIO_USER) #endif - XLAT_END }; +static +const struct xlat priorities[1] = { { + .data = priorities_xdata, + .size = ARRAY_SIZE(priorities_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/ptp_extts_flags.h b/xlat/ptp_extts_flags.h new file mode 100644 index 00000000..c8aa8e20 --- /dev/null +++ b/xlat/ptp_extts_flags.h @@ -0,0 +1,102 @@ +/* Generated by ./xlat/gen.sh from ./xlat/ptp_extts_flags.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined(PTP_ENABLE_FEATURE) || (defined(HAVE_DECL_PTP_ENABLE_FEATURE) && HAVE_DECL_PTP_ENABLE_FEATURE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTP_ENABLE_FEATURE) == ((1<<0)), "PTP_ENABLE_FEATURE != (1<<0)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTP_ENABLE_FEATURE (1<<0) +#endif +#if defined(PTP_RISING_EDGE) || (defined(HAVE_DECL_PTP_RISING_EDGE) && HAVE_DECL_PTP_RISING_EDGE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTP_RISING_EDGE) == ((1<<1)), "PTP_RISING_EDGE != (1<<1)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTP_RISING_EDGE (1<<1) +#endif +#if defined(PTP_FALLING_EDGE) || (defined(HAVE_DECL_PTP_FALLING_EDGE) && HAVE_DECL_PTP_FALLING_EDGE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTP_FALLING_EDGE) == ((1<<2)), "PTP_FALLING_EDGE != (1<<2)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTP_FALLING_EDGE (1<<2) +#endif +#if defined(PTP_STRICT_FLAGS) || (defined(HAVE_DECL_PTP_STRICT_FLAGS) && HAVE_DECL_PTP_STRICT_FLAGS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTP_STRICT_FLAGS) == ((1<<3)), "PTP_STRICT_FLAGS != (1<<3)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTP_STRICT_FLAGS (1<<3) +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat ptp_extts_flags in mpers mode + +# else + +static const struct xlat_data ptp_extts_flags_xdata[] = { + XLAT(PTP_ENABLE_FEATURE), + #define XLAT_VAL_0 ((unsigned) (PTP_ENABLE_FEATURE)) + #define XLAT_STR_0 STRINGIFY(PTP_ENABLE_FEATURE) + XLAT(PTP_RISING_EDGE), + #define XLAT_VAL_1 ((unsigned) (PTP_RISING_EDGE)) + #define XLAT_STR_1 STRINGIFY(PTP_RISING_EDGE) + XLAT(PTP_FALLING_EDGE), + #define XLAT_VAL_2 ((unsigned) (PTP_FALLING_EDGE)) + #define XLAT_STR_2 STRINGIFY(PTP_FALLING_EDGE) + XLAT(PTP_STRICT_FLAGS), + #define XLAT_VAL_3 ((unsigned) (PTP_STRICT_FLAGS)) + #define XLAT_STR_3 STRINGIFY(PTP_STRICT_FLAGS) +}; +static +const struct xlat ptp_extts_flags[1] = { { + .data = ptp_extts_flags_xdata, + .size = ARRAY_SIZE(ptp_extts_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/ptp_extts_flags.in b/xlat/ptp_extts_flags.in new file mode 100644 index 00000000..63e8fc97 --- /dev/null +++ b/xlat/ptp_extts_flags.in @@ -0,0 +1,4 @@ +PTP_ENABLE_FEATURE (1<<0) +PTP_RISING_EDGE (1<<1) +PTP_FALLING_EDGE (1<<2) +PTP_STRICT_FLAGS (1<<3) diff --git a/xlat/ptp_flags_options.h b/xlat/ptp_flags_options.h deleted file mode 100644 index df4e2d3c..00000000 --- a/xlat/ptp_flags_options.h +++ /dev/null @@ -1,31 +0,0 @@ -/* Generated by ./xlat/gen.sh from ./xlat/ptp_flags_options.in; do not edit. */ - -#include "gcc_compat.h" -#include "static_assert.h" - - -#ifndef XLAT_MACROS_ONLY - -# ifdef IN_MPERS - -# error static const struct xlat ptp_flags_options in mpers mode - -# else - -static -const struct xlat ptp_flags_options[] = { -#if defined(PTP_ENABLE_FEATURE) || (defined(HAVE_DECL_PTP_ENABLE_FEATURE) && HAVE_DECL_PTP_ENABLE_FEATURE) - XLAT(PTP_ENABLE_FEATURE), -#endif -#if defined(PTP_RISING_EDGE) || (defined(HAVE_DECL_PTP_RISING_EDGE) && HAVE_DECL_PTP_RISING_EDGE) - XLAT(PTP_RISING_EDGE), -#endif -#if defined(PTP_FALLING_EDGE) || (defined(HAVE_DECL_PTP_FALLING_EDGE) && HAVE_DECL_PTP_FALLING_EDGE) - XLAT(PTP_FALLING_EDGE), -#endif - XLAT_END -}; - -# endif /* !IN_MPERS */ - -#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/ptp_flags_options.in b/xlat/ptp_flags_options.in deleted file mode 100644 index 9e65c7db..00000000 --- a/xlat/ptp_flags_options.in +++ /dev/null @@ -1,3 +0,0 @@ -PTP_ENABLE_FEATURE -PTP_RISING_EDGE -PTP_FALLING_EDGE diff --git a/xlat/ptp_perout_flags.h b/xlat/ptp_perout_flags.h new file mode 100644 index 00000000..b6236be1 --- /dev/null +++ b/xlat/ptp_perout_flags.h @@ -0,0 +1,84 @@ +/* Generated by ./xlat/gen.sh from ./xlat/ptp_perout_flags.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined(PTP_PEROUT_ONE_SHOT) || (defined(HAVE_DECL_PTP_PEROUT_ONE_SHOT) && HAVE_DECL_PTP_PEROUT_ONE_SHOT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTP_PEROUT_ONE_SHOT) == ((1<<0)), "PTP_PEROUT_ONE_SHOT != (1<<0)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTP_PEROUT_ONE_SHOT (1<<0) +#endif +#if defined(PTP_PEROUT_DUTY_CYCLE) || (defined(HAVE_DECL_PTP_PEROUT_DUTY_CYCLE) && HAVE_DECL_PTP_PEROUT_DUTY_CYCLE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTP_PEROUT_DUTY_CYCLE) == ((1<<1)), "PTP_PEROUT_DUTY_CYCLE != (1<<1)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTP_PEROUT_DUTY_CYCLE (1<<1) +#endif +#if defined(PTP_PEROUT_PHASE) || (defined(HAVE_DECL_PTP_PEROUT_PHASE) && HAVE_DECL_PTP_PEROUT_PHASE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTP_PEROUT_PHASE) == ((1<<2)), "PTP_PEROUT_PHASE != (1<<2)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTP_PEROUT_PHASE (1<<2) +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat ptp_perout_flags in mpers mode + +# else + +static const struct xlat_data ptp_perout_flags_xdata[] = { + XLAT(PTP_PEROUT_ONE_SHOT), + #define XLAT_VAL_0 ((unsigned) (PTP_PEROUT_ONE_SHOT)) + #define XLAT_STR_0 STRINGIFY(PTP_PEROUT_ONE_SHOT) + XLAT(PTP_PEROUT_DUTY_CYCLE), + #define XLAT_VAL_1 ((unsigned) (PTP_PEROUT_DUTY_CYCLE)) + #define XLAT_STR_1 STRINGIFY(PTP_PEROUT_DUTY_CYCLE) + XLAT(PTP_PEROUT_PHASE), + #define XLAT_VAL_2 ((unsigned) (PTP_PEROUT_PHASE)) + #define XLAT_STR_2 STRINGIFY(PTP_PEROUT_PHASE) +}; +static +const struct xlat ptp_perout_flags[1] = { { + .data = ptp_perout_flags_xdata, + .size = ARRAY_SIZE(ptp_perout_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/ptp_perout_flags.in b/xlat/ptp_perout_flags.in new file mode 100644 index 00000000..ecb0c298 --- /dev/null +++ b/xlat/ptp_perout_flags.in @@ -0,0 +1,3 @@ +PTP_PEROUT_ONE_SHOT (1<<0) +PTP_PEROUT_DUTY_CYCLE (1<<1) +PTP_PEROUT_PHASE (1<<2) diff --git a/xlat/ptrace_cmds.h b/xlat/ptrace_cmds.h index cc2e8f5a..034fbe3f 100644 --- a/xlat/ptrace_cmds.h +++ b/xlat/ptrace_cmds.h @@ -3,319 +3,3582 @@ #include "gcc_compat.h" #include "static_assert.h" - -#ifndef XLAT_MACROS_ONLY - -# ifndef IN_MPERS - -const struct xlat ptrace_cmds[] = { #if defined(PTRACE_TRACEME) || (defined(HAVE_DECL_PTRACE_TRACEME) && HAVE_DECL_PTRACE_TRACEME) - XLAT(PTRACE_TRACEME), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_TRACEME) == (0), "PTRACE_TRACEME != 0"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_TRACEME 0 #endif #if defined(PTRACE_PEEKTEXT) || (defined(HAVE_DECL_PTRACE_PEEKTEXT) && HAVE_DECL_PTRACE_PEEKTEXT) - XLAT(PTRACE_PEEKTEXT), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_PEEKTEXT) == (0x1), "PTRACE_PEEKTEXT != 0x1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_PEEKTEXT 0x1 #endif #if defined(PTRACE_PEEKDATA) || (defined(HAVE_DECL_PTRACE_PEEKDATA) && HAVE_DECL_PTRACE_PEEKDATA) - XLAT(PTRACE_PEEKDATA), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_PEEKDATA) == (0x2), "PTRACE_PEEKDATA != 0x2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_PEEKDATA 0x2 #endif #if defined(PTRACE_PEEKUSER) || (defined(HAVE_DECL_PTRACE_PEEKUSER) && HAVE_DECL_PTRACE_PEEKUSER) - XLAT(PTRACE_PEEKUSER), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_PEEKUSER) == (0x3), "PTRACE_PEEKUSER != 0x3"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_PEEKUSER 0x3 #endif #if defined(PTRACE_POKETEXT) || (defined(HAVE_DECL_PTRACE_POKETEXT) && HAVE_DECL_PTRACE_POKETEXT) - XLAT(PTRACE_POKETEXT), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_POKETEXT) == (0x4), "PTRACE_POKETEXT != 0x4"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_POKETEXT 0x4 #endif #if defined(PTRACE_POKEDATA) || (defined(HAVE_DECL_PTRACE_POKEDATA) && HAVE_DECL_PTRACE_POKEDATA) - XLAT(PTRACE_POKEDATA), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_POKEDATA) == (0x5), "PTRACE_POKEDATA != 0x5"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_POKEDATA 0x5 #endif #if defined(PTRACE_POKEUSER) || (defined(HAVE_DECL_PTRACE_POKEUSER) && HAVE_DECL_PTRACE_POKEUSER) - XLAT(PTRACE_POKEUSER), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_POKEUSER) == (0x6), "PTRACE_POKEUSER != 0x6"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_POKEUSER 0x6 #endif #if defined(PTRACE_CONT) || (defined(HAVE_DECL_PTRACE_CONT) && HAVE_DECL_PTRACE_CONT) - XLAT(PTRACE_CONT), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_CONT) == (0x7), "PTRACE_CONT != 0x7"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_CONT 0x7 #endif #if defined(PTRACE_KILL) || (defined(HAVE_DECL_PTRACE_KILL) && HAVE_DECL_PTRACE_KILL) - XLAT(PTRACE_KILL), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_KILL) == (0x8), "PTRACE_KILL != 0x8"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_KILL 0x8 #endif #if defined(PTRACE_SINGLESTEP) || (defined(HAVE_DECL_PTRACE_SINGLESTEP) && HAVE_DECL_PTRACE_SINGLESTEP) - XLAT(PTRACE_SINGLESTEP), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SINGLESTEP) == (0x9), "PTRACE_SINGLESTEP != 0x9"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SINGLESTEP 0x9 #endif #if defined(PTRACE_ATTACH) || (defined(HAVE_DECL_PTRACE_ATTACH) && HAVE_DECL_PTRACE_ATTACH) - XLAT(PTRACE_ATTACH), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_ATTACH) == (0x10), "PTRACE_ATTACH != 0x10"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_ATTACH 0x10 #endif +#if !defined __sparc__ #if defined(PTRACE_DETACH) || (defined(HAVE_DECL_PTRACE_DETACH) && HAVE_DECL_PTRACE_DETACH) - XLAT(PTRACE_DETACH), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_DETACH) == (0x11), "PTRACE_DETACH != 0x11"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_DETACH 0x11 +#endif +#else #endif #if defined(PTRACE_SYSCALL) || (defined(HAVE_DECL_PTRACE_SYSCALL) && HAVE_DECL_PTRACE_SYSCALL) - XLAT(PTRACE_SYSCALL), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SYSCALL) == (0x18), "PTRACE_SYSCALL != 0x18"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SYSCALL 0x18 +#endif +#if defined(PTRACE_SETOPTIONS) || (defined(HAVE_DECL_PTRACE_SETOPTIONS) && HAVE_DECL_PTRACE_SETOPTIONS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SETOPTIONS) == (0x4200), "PTRACE_SETOPTIONS != 0x4200"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SETOPTIONS 0x4200 +#endif +#if defined(PTRACE_GETEVENTMSG) || (defined(HAVE_DECL_PTRACE_GETEVENTMSG) && HAVE_DECL_PTRACE_GETEVENTMSG) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_GETEVENTMSG) == (0x4201), "PTRACE_GETEVENTMSG != 0x4201"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_GETEVENTMSG 0x4201 +#endif +#if defined(PTRACE_GETSIGINFO) || (defined(HAVE_DECL_PTRACE_GETSIGINFO) && HAVE_DECL_PTRACE_GETSIGINFO) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_GETSIGINFO) == (0x4202), "PTRACE_GETSIGINFO != 0x4202"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_GETSIGINFO 0x4202 +#endif +#if defined(PTRACE_SETSIGINFO) || (defined(HAVE_DECL_PTRACE_SETSIGINFO) && HAVE_DECL_PTRACE_SETSIGINFO) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SETSIGINFO) == (0x4203), "PTRACE_SETSIGINFO != 0x4203"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SETSIGINFO 0x4203 +#endif +#if defined(PTRACE_GETREGSET) || (defined(HAVE_DECL_PTRACE_GETREGSET) && HAVE_DECL_PTRACE_GETREGSET) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_GETREGSET) == (0x4204), "PTRACE_GETREGSET != 0x4204"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_GETREGSET 0x4204 +#endif +#if defined(PTRACE_SETREGSET) || (defined(HAVE_DECL_PTRACE_SETREGSET) && HAVE_DECL_PTRACE_SETREGSET) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SETREGSET) == (0x4205), "PTRACE_SETREGSET != 0x4205"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SETREGSET 0x4205 +#endif +#if defined(PTRACE_SEIZE) || (defined(HAVE_DECL_PTRACE_SEIZE) && HAVE_DECL_PTRACE_SEIZE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SEIZE) == (0x4206), "PTRACE_SEIZE != 0x4206"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SEIZE 0x4206 #endif +#if defined(PTRACE_INTERRUPT) || (defined(HAVE_DECL_PTRACE_INTERRUPT) && HAVE_DECL_PTRACE_INTERRUPT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_INTERRUPT) == (0x4207), "PTRACE_INTERRUPT != 0x4207"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_INTERRUPT 0x4207 +#endif +#if defined(PTRACE_LISTEN) || (defined(HAVE_DECL_PTRACE_LISTEN) && HAVE_DECL_PTRACE_LISTEN) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_LISTEN) == (0x4208), "PTRACE_LISTEN != 0x4208"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_LISTEN 0x4208 +#endif +#if defined(PTRACE_PEEKSIGINFO) || (defined(HAVE_DECL_PTRACE_PEEKSIGINFO) && HAVE_DECL_PTRACE_PEEKSIGINFO) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_PEEKSIGINFO) == (0x4209), "PTRACE_PEEKSIGINFO != 0x4209"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_PEEKSIGINFO 0x4209 +#endif +#if defined(PTRACE_GETSIGMASK) || (defined(HAVE_DECL_PTRACE_GETSIGMASK) && HAVE_DECL_PTRACE_GETSIGMASK) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_GETSIGMASK) == (0x420a), "PTRACE_GETSIGMASK != 0x420a"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_GETSIGMASK 0x420a +#endif +#if defined(PTRACE_SETSIGMASK) || (defined(HAVE_DECL_PTRACE_SETSIGMASK) && HAVE_DECL_PTRACE_SETSIGMASK) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SETSIGMASK) == (0x420b), "PTRACE_SETSIGMASK != 0x420b"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SETSIGMASK 0x420b +#endif +#if defined(PTRACE_SECCOMP_GET_FILTER) || (defined(HAVE_DECL_PTRACE_SECCOMP_GET_FILTER) && HAVE_DECL_PTRACE_SECCOMP_GET_FILTER) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SECCOMP_GET_FILTER) == (0x420c), "PTRACE_SECCOMP_GET_FILTER != 0x420c"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SECCOMP_GET_FILTER 0x420c +#endif +#if defined(PTRACE_SECCOMP_GET_METADATA) || (defined(HAVE_DECL_PTRACE_SECCOMP_GET_METADATA) && HAVE_DECL_PTRACE_SECCOMP_GET_METADATA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SECCOMP_GET_METADATA) == (0x420d), "PTRACE_SECCOMP_GET_METADATA != 0x420d"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SECCOMP_GET_METADATA 0x420d +#endif +#if defined(PTRACE_GET_SYSCALL_INFO) || (defined(HAVE_DECL_PTRACE_GET_SYSCALL_INFO) && HAVE_DECL_PTRACE_GET_SYSCALL_INFO) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_GET_SYSCALL_INFO) == (0x420e), "PTRACE_GET_SYSCALL_INFO != 0x420e"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_GET_SYSCALL_INFO 0x420e +#endif +#if defined __arm__ || defined __m68k__ || defined __mips__ || defined __powerpc__ || defined __sh__ || defined __sparc__ || defined __x86_64__ || defined __i386__ || defined __xtensa__ #if defined(PTRACE_GETREGS) || (defined(HAVE_DECL_PTRACE_GETREGS) && HAVE_DECL_PTRACE_GETREGS) - XLAT(PTRACE_GETREGS), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_GETREGS) == (0xc), "PTRACE_GETREGS != 0xc"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_GETREGS 0xc #endif +#elif defined __hppa__ || defined __ia64__ +#if defined(PTRACE_GETREGS) || (defined(HAVE_DECL_PTRACE_GETREGS) && HAVE_DECL_PTRACE_GETREGS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_GETREGS) == (0x12), "PTRACE_GETREGS != 0x12"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_GETREGS 0x12 +#endif +#else +#endif +#if defined __arm__ || defined __m68k__ || defined __mips__ || defined __powerpc__ || defined __sh__ || defined __sparc__ || defined __x86_64__ || defined __i386__ || defined __xtensa__ #if defined(PTRACE_SETREGS) || (defined(HAVE_DECL_PTRACE_SETREGS) && HAVE_DECL_PTRACE_SETREGS) - XLAT(PTRACE_SETREGS), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SETREGS) == (0xd), "PTRACE_SETREGS != 0xd"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SETREGS 0xd #endif +#elif defined __hppa__ || defined __ia64__ +#if defined(PTRACE_SETREGS) || (defined(HAVE_DECL_PTRACE_SETREGS) && HAVE_DECL_PTRACE_SETREGS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SETREGS) == (0x13), "PTRACE_SETREGS != 0x13"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SETREGS 0x13 +#endif +#else +#endif +#if defined __arm__ || defined __hppa__ || defined __m68k__ || defined __mips__ || defined __powerpc__ || defined __sh__ || defined __sparc__ || defined __x86_64__ || defined __i386__ #if defined(PTRACE_GETFPREGS) || (defined(HAVE_DECL_PTRACE_GETFPREGS) && HAVE_DECL_PTRACE_GETFPREGS) - XLAT(PTRACE_GETFPREGS), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_GETFPREGS) == (0xe), "PTRACE_GETFPREGS != 0xe"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_GETFPREGS 0xe #endif +#else +#endif +#if defined __arm__ || defined __hppa__ || defined __m68k__ || defined __mips__ || defined __powerpc__ || defined __sh__ || defined __sparc__ || defined __x86_64__ || defined __i386__ #if defined(PTRACE_SETFPREGS) || (defined(HAVE_DECL_PTRACE_SETFPREGS) && HAVE_DECL_PTRACE_SETFPREGS) - XLAT(PTRACE_SETFPREGS), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SETFPREGS) == (0xf), "PTRACE_SETFPREGS != 0xf"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SETFPREGS 0xf +#endif +#else #endif +#if defined __mips__ || defined __x86_64__ || defined __i386__ #if defined(PTRACE_GETFPXREGS) || (defined(HAVE_DECL_PTRACE_GETFPXREGS) && HAVE_DECL_PTRACE_GETFPXREGS) - XLAT(PTRACE_GETFPXREGS), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_GETFPXREGS) == (0x12), "PTRACE_GETFPXREGS != 0x12"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_GETFPXREGS 0x12 +#endif +#else #endif +#if defined __mips__ || defined __x86_64__ || defined __i386__ #if defined(PTRACE_SETFPXREGS) || (defined(HAVE_DECL_PTRACE_SETFPXREGS) && HAVE_DECL_PTRACE_SETFPXREGS) - XLAT(PTRACE_SETFPXREGS), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SETFPXREGS) == (0x13), "PTRACE_SETFPXREGS != 0x13"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SETFPXREGS 0x13 +#endif +#else +#endif +#if defined __xtensa__ +#if defined(PTRACE_GETHBPREGS) || (defined(HAVE_DECL_PTRACE_GETHBPREGS) && HAVE_DECL_PTRACE_GETHBPREGS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_GETHBPREGS) == (0x14), "PTRACE_GETHBPREGS != 0x14"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_GETHBPREGS 0x14 +#endif +#elif defined __arm__ +#if defined(PTRACE_GETHBPREGS) || (defined(HAVE_DECL_PTRACE_GETHBPREGS) && HAVE_DECL_PTRACE_GETHBPREGS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_GETHBPREGS) == (0x1d), "PTRACE_GETHBPREGS != 0x1d"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_GETHBPREGS 0x1d +#endif +#else +#endif +#if defined __xtensa__ +#if defined(PTRACE_SETHBPREGS) || (defined(HAVE_DECL_PTRACE_SETHBPREGS) && HAVE_DECL_PTRACE_SETHBPREGS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SETHBPREGS) == (0x15), "PTRACE_SETHBPREGS != 0x15"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SETHBPREGS 0x15 +#endif +#elif defined __arm__ +#if defined(PTRACE_SETHBPREGS) || (defined(HAVE_DECL_PTRACE_SETHBPREGS) && HAVE_DECL_PTRACE_SETHBPREGS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SETHBPREGS) == (0x1e), "PTRACE_SETHBPREGS != 0x1e"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SETHBPREGS 0x1e +#endif +#else +#endif +#if defined __arm__ || defined __ia64__ || defined __mips__ || defined __s390__ || defined __x86_64__ || defined __i386__ +#if defined(PTRACE_OLDSETOPTIONS) || (defined(HAVE_DECL_PTRACE_OLDSETOPTIONS) && HAVE_DECL_PTRACE_OLDSETOPTIONS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_OLDSETOPTIONS) == (0x15), "PTRACE_OLDSETOPTIONS != 0x15"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_OLDSETOPTIONS 0x15 +#endif +#else +#endif +#if defined __powerpc__ || defined __sparc__ +#if defined(PTRACE_GETREGS64) || (defined(HAVE_DECL_PTRACE_GETREGS64) && HAVE_DECL_PTRACE_GETREGS64) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_GETREGS64) == (0x16), "PTRACE_GETREGS64 != 0x16"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_GETREGS64 0x16 +#endif +#else +#endif +#if defined __powerpc__ || defined __sparc__ +#if defined(PTRACE_SETREGS64) || (defined(HAVE_DECL_PTRACE_SETREGS64) && HAVE_DECL_PTRACE_SETREGS64) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SETREGS64) == (0x17), "PTRACE_SETREGS64 != 0x17"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SETREGS64 0x17 +#endif +#else +#endif +#if defined __arm__ || defined __unicore32__ +#if defined(PTRACE_GET_THREAD_AREA) || (defined(HAVE_DECL_PTRACE_GET_THREAD_AREA) && HAVE_DECL_PTRACE_GET_THREAD_AREA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_GET_THREAD_AREA) == (0x16), "PTRACE_GET_THREAD_AREA != 0x16"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_GET_THREAD_AREA 0x16 +#endif +#elif defined __arc__ || defined __m68k__ || defined __mips__ || defined __x86_64__ || defined __i386__ +#if defined(PTRACE_GET_THREAD_AREA) || (defined(HAVE_DECL_PTRACE_GET_THREAD_AREA) && HAVE_DECL_PTRACE_GET_THREAD_AREA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_GET_THREAD_AREA) == (0x19), "PTRACE_GET_THREAD_AREA != 0x19"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_GET_THREAD_AREA 0x19 +#endif +#else +#endif +#if defined __mips__ || defined __x86_64__ || defined __i386__ +#if defined(PTRACE_SET_THREAD_AREA) || (defined(HAVE_DECL_PTRACE_SET_THREAD_AREA) && HAVE_DECL_PTRACE_SET_THREAD_AREA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SET_THREAD_AREA) == (0x1a), "PTRACE_SET_THREAD_AREA != 0x1a"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SET_THREAD_AREA 0x1a +#endif +#else +#endif +#if defined __arm__ || defined __c6x__ || defined __sh__ +#if defined(PTRACE_GETFDPIC) || (defined(HAVE_DECL_PTRACE_GETFDPIC) && HAVE_DECL_PTRACE_GETFDPIC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_GETFDPIC) == (0x1f), "PTRACE_GETFDPIC != 0x1f"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_GETFDPIC 0x1f +#endif +#else +#endif +#if defined __powerpc__ +#if defined(PTRACE_SYSEMU) || (defined(HAVE_DECL_PTRACE_SYSEMU) && HAVE_DECL_PTRACE_SYSEMU) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SYSEMU) == (0x1d), "PTRACE_SYSEMU != 0x1d"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SYSEMU 0x1d +#endif +#elif defined __arm64__ || defined __aarch64__ || defined __x86_64__ || defined __i386__ +#if defined(PTRACE_SYSEMU) || (defined(HAVE_DECL_PTRACE_SYSEMU) && HAVE_DECL_PTRACE_SYSEMU) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SYSEMU) == (0x1f), "PTRACE_SYSEMU != 0x1f"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SYSEMU 0x1f +#endif +#else +#endif +#if defined __powerpc__ +#if defined(PTRACE_SYSEMU_SINGLESTEP) || (defined(HAVE_DECL_PTRACE_SYSEMU_SINGLESTEP) && HAVE_DECL_PTRACE_SYSEMU_SINGLESTEP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SYSEMU_SINGLESTEP) == (0x1e), "PTRACE_SYSEMU_SINGLESTEP != 0x1e"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SYSEMU_SINGLESTEP 0x1e +#endif +#elif defined __arm64__ || defined __aarch64__ || defined __x86_64__ || defined __i386__ +#if defined(PTRACE_SYSEMU_SINGLESTEP) || (defined(HAVE_DECL_PTRACE_SYSEMU_SINGLESTEP) && HAVE_DECL_PTRACE_SYSEMU_SINGLESTEP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SYSEMU_SINGLESTEP) == (0x20), "PTRACE_SYSEMU_SINGLESTEP != 0x20"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SYSEMU_SINGLESTEP 0x20 +#endif +#else +#endif +#if defined __hppa__ || defined __ia64__ || defined __s390__ +#if defined(PTRACE_SINGLEBLOCK) || (defined(HAVE_DECL_PTRACE_SINGLEBLOCK) && HAVE_DECL_PTRACE_SINGLEBLOCK) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SINGLEBLOCK) == (0xc), "PTRACE_SINGLEBLOCK != 0xc"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SINGLEBLOCK 0xc +#endif +#elif defined __m68k__ || defined __x86_64__ || defined __i386__ +#if defined(PTRACE_SINGLEBLOCK) || (defined(HAVE_DECL_PTRACE_SINGLEBLOCK) && HAVE_DECL_PTRACE_SINGLEBLOCK) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SINGLEBLOCK) == (0x21), "PTRACE_SINGLEBLOCK != 0x21"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SINGLEBLOCK 0x21 +#endif +#elif defined __powerpc__ +#if defined(PTRACE_SINGLEBLOCK) || (defined(HAVE_DECL_PTRACE_SINGLEBLOCK) && HAVE_DECL_PTRACE_SINGLEBLOCK) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SINGLEBLOCK) == (0x100), "PTRACE_SINGLEBLOCK != 0x100"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SINGLEBLOCK 0x100 +#endif +#else +#endif +#if defined __arm__ +#if defined(PTRACE_GETWMMXREGS) || (defined(HAVE_DECL_PTRACE_GETWMMXREGS) && HAVE_DECL_PTRACE_GETWMMXREGS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_GETWMMXREGS) == (0x12), "PTRACE_GETWMMXREGS != 0x12"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_GETWMMXREGS 0x12 +#endif +#else +#endif +#if defined __arm__ +#if defined(PTRACE_SETWMMXREGS) || (defined(HAVE_DECL_PTRACE_SETWMMXREGS) && HAVE_DECL_PTRACE_SETWMMXREGS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SETWMMXREGS) == (0x13), "PTRACE_SETWMMXREGS != 0x13"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SETWMMXREGS 0x13 +#endif +#else +#endif +#if defined __arm__ +#if defined(PTRACE_SET_SYSCALL) || (defined(HAVE_DECL_PTRACE_SET_SYSCALL) && HAVE_DECL_PTRACE_SET_SYSCALL) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SET_SYSCALL) == (0x17), "PTRACE_SET_SYSCALL != 0x17"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SET_SYSCALL 0x17 +#endif +#else #endif +#if defined __arm__ +#if defined(PTRACE_GETCRUNCHREGS) || (defined(HAVE_DECL_PTRACE_GETCRUNCHREGS) && HAVE_DECL_PTRACE_GETCRUNCHREGS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_GETCRUNCHREGS) == (0x19), "PTRACE_GETCRUNCHREGS != 0x19"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_GETCRUNCHREGS 0x19 +#endif +#else +#endif +#if defined __arm__ +#if defined(PTRACE_SETCRUNCHREGS) || (defined(HAVE_DECL_PTRACE_SETCRUNCHREGS) && HAVE_DECL_PTRACE_SETCRUNCHREGS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SETCRUNCHREGS) == (0x1a), "PTRACE_SETCRUNCHREGS != 0x1a"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SETCRUNCHREGS 0x1a +#endif +#else +#endif +#if defined __arm__ +#if defined(PTRACE_GETVFPREGS) || (defined(HAVE_DECL_PTRACE_GETVFPREGS) && HAVE_DECL_PTRACE_GETVFPREGS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_GETVFPREGS) == (0x1b), "PTRACE_GETVFPREGS != 0x1b"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_GETVFPREGS 0x1b +#endif +#else +#endif +#if defined __arm__ +#if defined(PTRACE_SETVFPREGS) || (defined(HAVE_DECL_PTRACE_SETVFPREGS) && HAVE_DECL_PTRACE_SETVFPREGS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SETVFPREGS) == (0x1c), "PTRACE_SETVFPREGS != 0x1c"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SETVFPREGS 0x1c +#endif +#else +#endif +#if defined __ia64__ +#if defined(PTRACE_OLD_GETSIGINFO) || (defined(HAVE_DECL_PTRACE_OLD_GETSIGINFO) && HAVE_DECL_PTRACE_OLD_GETSIGINFO) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_OLD_GETSIGINFO) == (0xd), "PTRACE_OLD_GETSIGINFO != 0xd"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_OLD_GETSIGINFO 0xd +#endif +#else +#endif +#if defined __ia64__ +#if defined(PTRACE_OLD_SETSIGINFO) || (defined(HAVE_DECL_PTRACE_OLD_SETSIGINFO) && HAVE_DECL_PTRACE_OLD_SETSIGINFO) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_OLD_SETSIGINFO) == (0xe), "PTRACE_OLD_SETSIGINFO != 0xe"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_OLD_SETSIGINFO 0xe +#endif +#else +#endif +#if defined __mips__ +#if defined(PTRACE_PEEKTEXT_3264) || (defined(HAVE_DECL_PTRACE_PEEKTEXT_3264) && HAVE_DECL_PTRACE_PEEKTEXT_3264) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_PEEKTEXT_3264) == (0xc0), "PTRACE_PEEKTEXT_3264 != 0xc0"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_PEEKTEXT_3264 0xc0 +#endif +#else +#endif +#if defined __mips__ +#if defined(PTRACE_PEEKDATA_3264) || (defined(HAVE_DECL_PTRACE_PEEKDATA_3264) && HAVE_DECL_PTRACE_PEEKDATA_3264) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_PEEKDATA_3264) == (0xc1), "PTRACE_PEEKDATA_3264 != 0xc1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_PEEKDATA_3264 0xc1 +#endif +#else +#endif +#if defined __mips__ +#if defined(PTRACE_POKETEXT_3264) || (defined(HAVE_DECL_PTRACE_POKETEXT_3264) && HAVE_DECL_PTRACE_POKETEXT_3264) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_POKETEXT_3264) == (0xc2), "PTRACE_POKETEXT_3264 != 0xc2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_POKETEXT_3264 0xc2 +#endif +#else +#endif +#if defined __mips__ +#if defined(PTRACE_POKEDATA_3264) || (defined(HAVE_DECL_PTRACE_POKEDATA_3264) && HAVE_DECL_PTRACE_POKEDATA_3264) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_POKEDATA_3264) == (0xc3), "PTRACE_POKEDATA_3264 != 0xc3"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_POKEDATA_3264 0xc3 +#endif +#else +#endif +#if defined __mips__ +#if defined(PTRACE_GET_THREAD_AREA_3264) || (defined(HAVE_DECL_PTRACE_GET_THREAD_AREA_3264) && HAVE_DECL_PTRACE_GET_THREAD_AREA_3264) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_GET_THREAD_AREA_3264) == (0xc4), "PTRACE_GET_THREAD_AREA_3264 != 0xc4"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_GET_THREAD_AREA_3264 0xc4 +#endif +#else +#endif +#if defined __mips__ +#if defined(PTRACE_GET_WATCH_REGS) || (defined(HAVE_DECL_PTRACE_GET_WATCH_REGS) && HAVE_DECL_PTRACE_GET_WATCH_REGS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_GET_WATCH_REGS) == (0xd0), "PTRACE_GET_WATCH_REGS != 0xd0"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_GET_WATCH_REGS 0xd0 +#endif +#else +#endif +#if defined __mips__ +#if defined(PTRACE_SET_WATCH_REGS) || (defined(HAVE_DECL_PTRACE_SET_WATCH_REGS) && HAVE_DECL_PTRACE_SET_WATCH_REGS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SET_WATCH_REGS) == (0xd1), "PTRACE_SET_WATCH_REGS != 0xd1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SET_WATCH_REGS 0xd1 +#endif +#else +#endif +#if defined __powerpc__ #if defined(PTRACE_GETVRREGS) || (defined(HAVE_DECL_PTRACE_GETVRREGS) && HAVE_DECL_PTRACE_GETVRREGS) - XLAT(PTRACE_GETVRREGS), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_GETVRREGS) == (0x12), "PTRACE_GETVRREGS != 0x12"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_GETVRREGS 0x12 +#endif +#else #endif +#if defined __powerpc__ #if defined(PTRACE_SETVRREGS) || (defined(HAVE_DECL_PTRACE_SETVRREGS) && HAVE_DECL_PTRACE_SETVRREGS) - XLAT(PTRACE_SETVRREGS), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SETVRREGS) == (0x13), "PTRACE_SETVRREGS != 0x13"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SETVRREGS 0x13 #endif -#if defined(PTRACE_SETOPTIONS) || (defined(HAVE_DECL_PTRACE_SETOPTIONS) && HAVE_DECL_PTRACE_SETOPTIONS) - XLAT(PTRACE_SETOPTIONS), +#else #endif -#if defined(PTRACE_GETEVENTMSG) || (defined(HAVE_DECL_PTRACE_GETEVENTMSG) && HAVE_DECL_PTRACE_GETEVENTMSG) - XLAT(PTRACE_GETEVENTMSG), +#if defined __powerpc__ +#if defined(PTRACE_GETEVRREGS) || (defined(HAVE_DECL_PTRACE_GETEVRREGS) && HAVE_DECL_PTRACE_GETEVRREGS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_GETEVRREGS) == (0x14), "PTRACE_GETEVRREGS != 0x14"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_GETEVRREGS 0x14 #endif -#if defined(PTRACE_GETSIGINFO) || (defined(HAVE_DECL_PTRACE_GETSIGINFO) && HAVE_DECL_PTRACE_GETSIGINFO) - XLAT(PTRACE_GETSIGINFO), +#else #endif -#if defined(PTRACE_SETSIGINFO) || (defined(HAVE_DECL_PTRACE_SETSIGINFO) && HAVE_DECL_PTRACE_SETSIGINFO) - XLAT(PTRACE_SETSIGINFO), +#if defined __powerpc__ +#if defined(PTRACE_SETEVRREGS) || (defined(HAVE_DECL_PTRACE_SETEVRREGS) && HAVE_DECL_PTRACE_SETEVRREGS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SETEVRREGS) == (0x15), "PTRACE_SETEVRREGS != 0x15"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SETEVRREGS 0x15 #endif -#if defined(PTRACE_GETREGSET) || (defined(HAVE_DECL_PTRACE_GETREGSET) && HAVE_DECL_PTRACE_GETREGSET) - XLAT(PTRACE_GETREGSET), +#else #endif -#if defined(PTRACE_SETREGSET) || (defined(HAVE_DECL_PTRACE_SETREGSET) && HAVE_DECL_PTRACE_SETREGSET) - XLAT(PTRACE_SETREGSET), +#if defined __powerpc__ +#if defined(PTRACE_GETVSRREGS) || (defined(HAVE_DECL_PTRACE_GETVSRREGS) && HAVE_DECL_PTRACE_GETVSRREGS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_GETVSRREGS) == (0x1b), "PTRACE_GETVSRREGS != 0x1b"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_GETVSRREGS 0x1b #endif -#if defined(PTRACE_SET_SYSCALL) || (defined(HAVE_DECL_PTRACE_SET_SYSCALL) && HAVE_DECL_PTRACE_SET_SYSCALL) - XLAT(PTRACE_SET_SYSCALL), +#else #endif -#if defined(PTRACE_SEIZE) || (defined(HAVE_DECL_PTRACE_SEIZE) && HAVE_DECL_PTRACE_SEIZE) - XLAT(PTRACE_SEIZE), +#if defined __powerpc__ +#if defined(PTRACE_SETVSRREGS) || (defined(HAVE_DECL_PTRACE_SETVSRREGS) && HAVE_DECL_PTRACE_SETVSRREGS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SETVSRREGS) == (0x1c), "PTRACE_SETVSRREGS != 0x1c"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SETVSRREGS 0x1c #endif -#if defined(PTRACE_INTERRUPT) || (defined(HAVE_DECL_PTRACE_INTERRUPT) && HAVE_DECL_PTRACE_INTERRUPT) - XLAT(PTRACE_INTERRUPT), +#else #endif -#if defined(PTRACE_LISTEN) || (defined(HAVE_DECL_PTRACE_LISTEN) && HAVE_DECL_PTRACE_LISTEN) - XLAT(PTRACE_LISTEN), +#if defined __powerpc__ +#if defined(PTRACE_GET_DEBUGREG) || (defined(HAVE_DECL_PTRACE_GET_DEBUGREG) && HAVE_DECL_PTRACE_GET_DEBUGREG) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_GET_DEBUGREG) == (0x19), "PTRACE_GET_DEBUGREG != 0x19"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_GET_DEBUGREG 0x19 #endif -#if defined(PTRACE_PEEKSIGINFO) || (defined(HAVE_DECL_PTRACE_PEEKSIGINFO) && HAVE_DECL_PTRACE_PEEKSIGINFO) - XLAT(PTRACE_PEEKSIGINFO), +#else #endif -#if defined(PTRACE_GETSIGMASK) || (defined(HAVE_DECL_PTRACE_GETSIGMASK) && HAVE_DECL_PTRACE_GETSIGMASK) - XLAT(PTRACE_GETSIGMASK), +#if defined __powerpc__ +#if defined(PTRACE_SET_DEBUGREG) || (defined(HAVE_DECL_PTRACE_SET_DEBUGREG) && HAVE_DECL_PTRACE_SET_DEBUGREG) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SET_DEBUGREG) == (0x1a), "PTRACE_SET_DEBUGREG != 0x1a"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SET_DEBUGREG 0x1a #endif -#if defined(PTRACE_SETSIGMASK) || (defined(HAVE_DECL_PTRACE_SETSIGMASK) && HAVE_DECL_PTRACE_SETSIGMASK) - XLAT(PTRACE_SETSIGMASK), +#else #endif -#if defined(PTRACE_SECCOMP_GET_FILTER) || (defined(HAVE_DECL_PTRACE_SECCOMP_GET_FILTER) && HAVE_DECL_PTRACE_SECCOMP_GET_FILTER) - XLAT(PTRACE_SECCOMP_GET_FILTER), +#if defined __powerpc__ +#if defined(PPC_PTRACE_DELHWDEBUG) || (defined(HAVE_DECL_PPC_PTRACE_DELHWDEBUG) && HAVE_DECL_PPC_PTRACE_DELHWDEBUG) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PPC_PTRACE_DELHWDEBUG) == (0x87), "PPC_PTRACE_DELHWDEBUG != 0x87"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PPC_PTRACE_DELHWDEBUG 0x87 #endif -#if defined(PTRACE_SECCOMP_GET_METADATA) || (defined(HAVE_DECL_PTRACE_SECCOMP_GET_METADATA) && HAVE_DECL_PTRACE_SECCOMP_GET_METADATA) - XLAT(PTRACE_SECCOMP_GET_METADATA), +#else +#endif +#if defined __powerpc__ +#if defined(PPC_PTRACE_SETHWDEBUG) || (defined(HAVE_DECL_PPC_PTRACE_SETHWDEBUG) && HAVE_DECL_PPC_PTRACE_SETHWDEBUG) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PPC_PTRACE_SETHWDEBUG) == (0x88), "PPC_PTRACE_SETHWDEBUG != 0x88"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PPC_PTRACE_SETHWDEBUG 0x88 +#endif +#else +#endif +#if defined __powerpc__ +#if defined(PPC_PTRACE_GETHWDBGINFO) || (defined(HAVE_DECL_PPC_PTRACE_GETHWDBGINFO) && HAVE_DECL_PPC_PTRACE_GETHWDBGINFO) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PPC_PTRACE_GETHWDBGINFO) == (0x89), "PPC_PTRACE_GETHWDBGINFO != 0x89"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PPC_PTRACE_GETHWDBGINFO 0x89 +#endif +#else +#endif +#if defined __powerpc__ +#if defined(PPC_PTRACE_POKEUSR_3264) || (defined(HAVE_DECL_PPC_PTRACE_POKEUSR_3264) && HAVE_DECL_PPC_PTRACE_POKEUSR_3264) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PPC_PTRACE_POKEUSR_3264) == (0x90), "PPC_PTRACE_POKEUSR_3264 != 0x90"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PPC_PTRACE_POKEUSR_3264 0x90 +#endif +#else +#endif +#if defined __powerpc__ +#if defined(PPC_PTRACE_PEEKUSR_3264) || (defined(HAVE_DECL_PPC_PTRACE_PEEKUSR_3264) && HAVE_DECL_PPC_PTRACE_PEEKUSR_3264) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PPC_PTRACE_PEEKUSR_3264) == (0x91), "PPC_PTRACE_PEEKUSR_3264 != 0x91"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PPC_PTRACE_PEEKUSR_3264 0x91 +#endif +#else +#endif +#if defined __powerpc__ +#if defined(PPC_PTRACE_POKEDATA_3264) || (defined(HAVE_DECL_PPC_PTRACE_POKEDATA_3264) && HAVE_DECL_PPC_PTRACE_POKEDATA_3264) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PPC_PTRACE_POKEDATA_3264) == (0x92), "PPC_PTRACE_POKEDATA_3264 != 0x92"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PPC_PTRACE_POKEDATA_3264 0x92 +#endif +#else +#endif +#if defined __powerpc__ +#if defined(PPC_PTRACE_POKETEXT_3264) || (defined(HAVE_DECL_PPC_PTRACE_POKETEXT_3264) && HAVE_DECL_PPC_PTRACE_POKETEXT_3264) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PPC_PTRACE_POKETEXT_3264) == (0x93), "PPC_PTRACE_POKETEXT_3264 != 0x93"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PPC_PTRACE_POKETEXT_3264 0x93 +#endif +#else +#endif +#if defined __powerpc__ +#if defined(PPC_PTRACE_PEEKDATA_3264) || (defined(HAVE_DECL_PPC_PTRACE_PEEKDATA_3264) && HAVE_DECL_PPC_PTRACE_PEEKDATA_3264) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PPC_PTRACE_PEEKDATA_3264) == (0x94), "PPC_PTRACE_PEEKDATA_3264 != 0x94"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PPC_PTRACE_PEEKDATA_3264 0x94 +#endif +#else +#endif +#if defined __powerpc__ +#if defined(PPC_PTRACE_PEEKTEXT_3264) || (defined(HAVE_DECL_PPC_PTRACE_PEEKTEXT_3264) && HAVE_DECL_PPC_PTRACE_PEEKTEXT_3264) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PPC_PTRACE_PEEKTEXT_3264) == (0x95), "PPC_PTRACE_PEEKTEXT_3264 != 0x95"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PPC_PTRACE_PEEKTEXT_3264 0x95 +#endif +#else +#endif +#if defined __s390__ +#if defined(PTRACE_PEEKUSR_AREA) || (defined(HAVE_DECL_PTRACE_PEEKUSR_AREA) && HAVE_DECL_PTRACE_PEEKUSR_AREA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_PEEKUSR_AREA) == (0x5000), "PTRACE_PEEKUSR_AREA != 0x5000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_PEEKUSR_AREA 0x5000 +#endif +#else +#endif +#if defined __s390__ +#if defined(PTRACE_POKEUSR_AREA) || (defined(HAVE_DECL_PTRACE_POKEUSR_AREA) && HAVE_DECL_PTRACE_POKEUSR_AREA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_POKEUSR_AREA) == (0x5001), "PTRACE_POKEUSR_AREA != 0x5001"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_POKEUSR_AREA 0x5001 +#endif +#else +#endif +#if defined __s390__ +#if defined(PTRACE_PEEKTEXT_AREA) || (defined(HAVE_DECL_PTRACE_PEEKTEXT_AREA) && HAVE_DECL_PTRACE_PEEKTEXT_AREA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_PEEKTEXT_AREA) == (0x5002), "PTRACE_PEEKTEXT_AREA != 0x5002"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_PEEKTEXT_AREA 0x5002 +#endif +#else +#endif +#if defined __s390__ +#if defined(PTRACE_PEEKDATA_AREA) || (defined(HAVE_DECL_PTRACE_PEEKDATA_AREA) && HAVE_DECL_PTRACE_PEEKDATA_AREA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_PEEKDATA_AREA) == (0x5003), "PTRACE_PEEKDATA_AREA != 0x5003"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_PEEKDATA_AREA 0x5003 +#endif +#else +#endif +#if defined __s390__ +#if defined(PTRACE_POKETEXT_AREA) || (defined(HAVE_DECL_PTRACE_POKETEXT_AREA) && HAVE_DECL_PTRACE_POKETEXT_AREA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_POKETEXT_AREA) == (0x5004), "PTRACE_POKETEXT_AREA != 0x5004"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_POKETEXT_AREA 0x5004 +#endif +#else +#endif +#if defined __s390__ +#if defined(PTRACE_POKEDATA_AREA) || (defined(HAVE_DECL_PTRACE_POKEDATA_AREA) && HAVE_DECL_PTRACE_POKEDATA_AREA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_POKEDATA_AREA) == (0x5005), "PTRACE_POKEDATA_AREA != 0x5005"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_POKEDATA_AREA 0x5005 +#endif +#else +#endif +#if defined __s390__ +#if defined(PTRACE_GET_LAST_BREAK) || (defined(HAVE_DECL_PTRACE_GET_LAST_BREAK) && HAVE_DECL_PTRACE_GET_LAST_BREAK) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_GET_LAST_BREAK) == (0x5006), "PTRACE_GET_LAST_BREAK != 0x5006"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_GET_LAST_BREAK 0x5006 +#endif +#else +#endif +#if defined __s390__ +#if defined(PTRACE_PEEK_SYSTEM_CALL) || (defined(HAVE_DECL_PTRACE_PEEK_SYSTEM_CALL) && HAVE_DECL_PTRACE_PEEK_SYSTEM_CALL) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_PEEK_SYSTEM_CALL) == (0x5007), "PTRACE_PEEK_SYSTEM_CALL != 0x5007"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_PEEK_SYSTEM_CALL 0x5007 +#endif +#else +#endif +#if defined __s390__ +#if defined(PTRACE_POKE_SYSTEM_CALL) || (defined(HAVE_DECL_PTRACE_POKE_SYSTEM_CALL) && HAVE_DECL_PTRACE_POKE_SYSTEM_CALL) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_POKE_SYSTEM_CALL) == (0x5008), "PTRACE_POKE_SYSTEM_CALL != 0x5008"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_POKE_SYSTEM_CALL 0x5008 +#endif +#else +#endif +#if defined __s390__ +#if defined(PTRACE_ENABLE_TE) || (defined(HAVE_DECL_PTRACE_ENABLE_TE) && HAVE_DECL_PTRACE_ENABLE_TE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_ENABLE_TE) == (0x5009), "PTRACE_ENABLE_TE != 0x5009"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_ENABLE_TE 0x5009 +#endif +#else +#endif +#if defined __s390__ +#if defined(PTRACE_DISABLE_TE) || (defined(HAVE_DECL_PTRACE_DISABLE_TE) && HAVE_DECL_PTRACE_DISABLE_TE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_DISABLE_TE) == (0x5010), "PTRACE_DISABLE_TE != 0x5010"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_DISABLE_TE 0x5010 +#endif +#else +#endif +#if defined __s390__ +#if defined(PTRACE_TE_ABORT_RAND) || (defined(HAVE_DECL_PTRACE_TE_ABORT_RAND) && HAVE_DECL_PTRACE_TE_ABORT_RAND) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_TE_ABORT_RAND) == (0x5011), "PTRACE_TE_ABORT_RAND != 0x5011"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_TE_ABORT_RAND 0x5011 +#endif +#else +#endif +#if defined __sh__ +#if defined(PTRACE_GETDSPREGS) || (defined(HAVE_DECL_PTRACE_GETDSPREGS) && HAVE_DECL_PTRACE_GETDSPREGS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_GETDSPREGS) == (0x37), "PTRACE_GETDSPREGS != 0x37"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_GETDSPREGS 0x37 +#endif +#else +#endif +#if defined __sh__ +#if defined(PTRACE_SETDSPREGS) || (defined(HAVE_DECL_PTRACE_SETDSPREGS) && HAVE_DECL_PTRACE_SETDSPREGS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SETDSPREGS) == (0x38), "PTRACE_SETDSPREGS != 0x38"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SETDSPREGS 0x38 +#endif +#else +#endif +#if defined __sparc__ +#if defined(PTRACE_SPARC_DETACH) || (defined(HAVE_DECL_PTRACE_SPARC_DETACH) && HAVE_DECL_PTRACE_SPARC_DETACH) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SPARC_DETACH) == (0xb), "PTRACE_SPARC_DETACH != 0xb"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SPARC_DETACH 0xb +#endif +#else +#endif +#if defined __sparc__ +#if defined(PTRACE_READDATA) || (defined(HAVE_DECL_PTRACE_READDATA) && HAVE_DECL_PTRACE_READDATA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_READDATA) == (0x10), "PTRACE_READDATA != 0x10"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_READDATA 0x10 +#endif +#else +#endif +#if defined __sparc__ +#if defined(PTRACE_WRITEDATA) || (defined(HAVE_DECL_PTRACE_WRITEDATA) && HAVE_DECL_PTRACE_WRITEDATA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_WRITEDATA) == (0x11), "PTRACE_WRITEDATA != 0x11"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_WRITEDATA 0x11 +#endif +#else +#endif +#if defined __sparc__ +#if defined(PTRACE_READTEXT) || (defined(HAVE_DECL_PTRACE_READTEXT) && HAVE_DECL_PTRACE_READTEXT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_READTEXT) == (0x12), "PTRACE_READTEXT != 0x12"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_READTEXT 0x12 +#endif +#else +#endif +#if defined __sparc__ +#if defined(PTRACE_WRITETEXT) || (defined(HAVE_DECL_PTRACE_WRITETEXT) && HAVE_DECL_PTRACE_WRITETEXT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_WRITETEXT) == (0x13), "PTRACE_WRITETEXT != 0x13"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_WRITETEXT 0x13 +#endif +#else +#endif +#if defined __sparc__ +#if defined(PTRACE_GETFPAREGS) || (defined(HAVE_DECL_PTRACE_GETFPAREGS) && HAVE_DECL_PTRACE_GETFPAREGS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_GETFPAREGS) == (0x14), "PTRACE_GETFPAREGS != 0x14"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_GETFPAREGS 0x14 +#endif +#else +#endif +#if defined __sparc__ +#if defined(PTRACE_SETFPAREGS) || (defined(HAVE_DECL_PTRACE_SETFPAREGS) && HAVE_DECL_PTRACE_SETFPAREGS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SETFPAREGS) == (0x15), "PTRACE_SETFPAREGS != 0x15"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SETFPAREGS 0x15 +#endif +#else +#endif +#if defined __sparc__ +#if defined(PTRACE_GETFPREGS64) || (defined(HAVE_DECL_PTRACE_GETFPREGS64) && HAVE_DECL_PTRACE_GETFPREGS64) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_GETFPREGS64) == (0x19), "PTRACE_GETFPREGS64 != 0x19"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_GETFPREGS64 0x19 +#endif +#else +#endif +#if defined __sparc__ +#if defined(PTRACE_SETFPREGS64) || (defined(HAVE_DECL_PTRACE_SETFPREGS64) && HAVE_DECL_PTRACE_SETFPREGS64) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SETFPREGS64) == (0x1a), "PTRACE_SETFPREGS64 != 0x1a"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SETFPREGS64 0x1a +#endif +#else +#endif +#if defined __x86_64__ || defined __i386__ +#if defined(PTRACE_ARCH_PRCTL) || (defined(HAVE_DECL_PTRACE_ARCH_PRCTL) && HAVE_DECL_PTRACE_ARCH_PRCTL) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_ARCH_PRCTL) == (0x1e), "PTRACE_ARCH_PRCTL != 0x1e"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_ARCH_PRCTL 0x1e +#endif +#else +#endif +#if defined __xtensa__ +#if defined(PTRACE_GETXTREGS) || (defined(HAVE_DECL_PTRACE_GETXTREGS) && HAVE_DECL_PTRACE_GETXTREGS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_GETXTREGS) == (0x12), "PTRACE_GETXTREGS != 0x12"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_GETXTREGS 0x12 +#endif +#else +#endif +#if defined __xtensa__ +#if defined(PTRACE_SETXTREGS) || (defined(HAVE_DECL_PTRACE_SETXTREGS) && HAVE_DECL_PTRACE_SETXTREGS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((PTRACE_SETXTREGS) == (0x13), "PTRACE_SETXTREGS != 0x13"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define PTRACE_SETXTREGS 0x13 +#endif +#else +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifndef IN_MPERS + +static const struct xlat_data ptrace_cmds_xdata[] = { + + XLAT(PTRACE_TRACEME), + #define XLAT_VAL_0 ((unsigned) (PTRACE_TRACEME)) + #define XLAT_STR_0 STRINGIFY(PTRACE_TRACEME) + XLAT(PTRACE_PEEKTEXT), + #define XLAT_VAL_1 ((unsigned) (PTRACE_PEEKTEXT)) + #define XLAT_STR_1 STRINGIFY(PTRACE_PEEKTEXT) + XLAT(PTRACE_PEEKDATA), + #define XLAT_VAL_2 ((unsigned) (PTRACE_PEEKDATA)) + #define XLAT_STR_2 STRINGIFY(PTRACE_PEEKDATA) + XLAT(PTRACE_PEEKUSER), + #define XLAT_VAL_3 ((unsigned) (PTRACE_PEEKUSER)) + #define XLAT_STR_3 STRINGIFY(PTRACE_PEEKUSER) + XLAT(PTRACE_POKETEXT), + #define XLAT_VAL_4 ((unsigned) (PTRACE_POKETEXT)) + #define XLAT_STR_4 STRINGIFY(PTRACE_POKETEXT) + XLAT(PTRACE_POKEDATA), + #define XLAT_VAL_5 ((unsigned) (PTRACE_POKEDATA)) + #define XLAT_STR_5 STRINGIFY(PTRACE_POKEDATA) + XLAT(PTRACE_POKEUSER), + #define XLAT_VAL_6 ((unsigned) (PTRACE_POKEUSER)) + #define XLAT_STR_6 STRINGIFY(PTRACE_POKEUSER) + XLAT(PTRACE_CONT), + #define XLAT_VAL_7 ((unsigned) (PTRACE_CONT)) + #define XLAT_STR_7 STRINGIFY(PTRACE_CONT) + XLAT(PTRACE_KILL), + #define XLAT_VAL_8 ((unsigned) (PTRACE_KILL)) + #define XLAT_STR_8 STRINGIFY(PTRACE_KILL) + XLAT(PTRACE_SINGLESTEP), + #define XLAT_VAL_9 ((unsigned) (PTRACE_SINGLESTEP)) + #define XLAT_STR_9 STRINGIFY(PTRACE_SINGLESTEP) + XLAT(PTRACE_ATTACH), + #define XLAT_VAL_10 ((unsigned) (PTRACE_ATTACH)) + #define XLAT_STR_10 STRINGIFY(PTRACE_ATTACH) + +/* +* On sparc, there is PTRACE_SPARC_DETACH (= 11) that is used instead +* of PTRACE_DETACH, as PTRACE_DETACH's number (0x11) is occupied +* by PTRACE_WRITEDATA. +*/ +#if !defined __sparc__ + XLAT(PTRACE_DETACH), + #define XLAT_VAL_11 ((unsigned) (PTRACE_DETACH)) + #define XLAT_STR_11 STRINGIFY(PTRACE_DETACH) +#else +#if defined(PTRACE_DETACH) || (defined(HAVE_DECL_PTRACE_DETACH) && HAVE_DECL_PTRACE_DETACH) + XLAT(PTRACE_DETACH), + #define XLAT_VAL_12 ((unsigned) (PTRACE_DETACH)) + #define XLAT_STR_12 STRINGIFY(PTRACE_DETACH) +#endif +#endif + + XLAT(PTRACE_SYSCALL), + #define XLAT_VAL_13 ((unsigned) (PTRACE_SYSCALL)) + #define XLAT_STR_13 STRINGIFY(PTRACE_SYSCALL) + + XLAT(PTRACE_SETOPTIONS), + #define XLAT_VAL_14 ((unsigned) (PTRACE_SETOPTIONS)) + #define XLAT_STR_14 STRINGIFY(PTRACE_SETOPTIONS) + XLAT(PTRACE_GETEVENTMSG), + #define XLAT_VAL_15 ((unsigned) (PTRACE_GETEVENTMSG)) + #define XLAT_STR_15 STRINGIFY(PTRACE_GETEVENTMSG) + XLAT(PTRACE_GETSIGINFO), + #define XLAT_VAL_16 ((unsigned) (PTRACE_GETSIGINFO)) + #define XLAT_STR_16 STRINGIFY(PTRACE_GETSIGINFO) + XLAT(PTRACE_SETSIGINFO), + #define XLAT_VAL_17 ((unsigned) (PTRACE_SETSIGINFO)) + #define XLAT_STR_17 STRINGIFY(PTRACE_SETSIGINFO) + XLAT(PTRACE_GETREGSET), + #define XLAT_VAL_18 ((unsigned) (PTRACE_GETREGSET)) + #define XLAT_STR_18 STRINGIFY(PTRACE_GETREGSET) + XLAT(PTRACE_SETREGSET), + #define XLAT_VAL_19 ((unsigned) (PTRACE_SETREGSET)) + #define XLAT_STR_19 STRINGIFY(PTRACE_SETREGSET) + XLAT(PTRACE_SEIZE), + #define XLAT_VAL_20 ((unsigned) (PTRACE_SEIZE)) + #define XLAT_STR_20 STRINGIFY(PTRACE_SEIZE) + XLAT(PTRACE_INTERRUPT), + #define XLAT_VAL_21 ((unsigned) (PTRACE_INTERRUPT)) + #define XLAT_STR_21 STRINGIFY(PTRACE_INTERRUPT) + XLAT(PTRACE_LISTEN), + #define XLAT_VAL_22 ((unsigned) (PTRACE_LISTEN)) + #define XLAT_STR_22 STRINGIFY(PTRACE_LISTEN) + XLAT(PTRACE_PEEKSIGINFO), + #define XLAT_VAL_23 ((unsigned) (PTRACE_PEEKSIGINFO)) + #define XLAT_STR_23 STRINGIFY(PTRACE_PEEKSIGINFO) + XLAT(PTRACE_GETSIGMASK), + #define XLAT_VAL_24 ((unsigned) (PTRACE_GETSIGMASK)) + #define XLAT_STR_24 STRINGIFY(PTRACE_GETSIGMASK) + XLAT(PTRACE_SETSIGMASK), + #define XLAT_VAL_25 ((unsigned) (PTRACE_SETSIGMASK)) + #define XLAT_STR_25 STRINGIFY(PTRACE_SETSIGMASK) + XLAT(PTRACE_SECCOMP_GET_FILTER), + #define XLAT_VAL_26 ((unsigned) (PTRACE_SECCOMP_GET_FILTER)) + #define XLAT_STR_26 STRINGIFY(PTRACE_SECCOMP_GET_FILTER) + XLAT(PTRACE_SECCOMP_GET_METADATA), + #define XLAT_VAL_27 ((unsigned) (PTRACE_SECCOMP_GET_METADATA)) + #define XLAT_STR_27 STRINGIFY(PTRACE_SECCOMP_GET_METADATA) + XLAT(PTRACE_GET_SYSCALL_INFO), + #define XLAT_VAL_28 ((unsigned) (PTRACE_GET_SYSCALL_INFO)) + #define XLAT_STR_28 STRINGIFY(PTRACE_GET_SYSCALL_INFO) + + +#if defined __arm__ || defined __m68k__ || defined __mips__ || defined __powerpc__ || defined __sh__ || defined __sparc__ || defined __x86_64__ || defined __i386__ || defined __xtensa__ + XLAT(PTRACE_GETREGS), + #define XLAT_VAL_29 ((unsigned) (PTRACE_GETREGS)) + #define XLAT_STR_29 STRINGIFY(PTRACE_GETREGS) +#elif defined __hppa__ || defined __ia64__ + XLAT(PTRACE_GETREGS), + #define XLAT_VAL_30 ((unsigned) (PTRACE_GETREGS)) + #define XLAT_STR_30 STRINGIFY(PTRACE_GETREGS) +#else +#if defined(PTRACE_GETREGS) || (defined(HAVE_DECL_PTRACE_GETREGS) && HAVE_DECL_PTRACE_GETREGS) + XLAT(PTRACE_GETREGS), + #define XLAT_VAL_31 ((unsigned) (PTRACE_GETREGS)) + #define XLAT_STR_31 STRINGIFY(PTRACE_GETREGS) +#endif +#endif + +#if defined __arm__ || defined __m68k__ || defined __mips__ || defined __powerpc__ || defined __sh__ || defined __sparc__ || defined __x86_64__ || defined __i386__ || defined __xtensa__ + XLAT(PTRACE_SETREGS), + #define XLAT_VAL_32 ((unsigned) (PTRACE_SETREGS)) + #define XLAT_STR_32 STRINGIFY(PTRACE_SETREGS) +#elif defined __hppa__ || defined __ia64__ + XLAT(PTRACE_SETREGS), + #define XLAT_VAL_33 ((unsigned) (PTRACE_SETREGS)) + #define XLAT_STR_33 STRINGIFY(PTRACE_SETREGS) +#else +#if defined(PTRACE_SETREGS) || (defined(HAVE_DECL_PTRACE_SETREGS) && HAVE_DECL_PTRACE_SETREGS) + XLAT(PTRACE_SETREGS), + #define XLAT_VAL_34 ((unsigned) (PTRACE_SETREGS)) + #define XLAT_STR_34 STRINGIFY(PTRACE_SETREGS) +#endif +#endif + +#if defined __arm__ || defined __hppa__ || defined __m68k__ || defined __mips__ || defined __powerpc__ || defined __sh__ || defined __sparc__ || defined __x86_64__ || defined __i386__ + XLAT(PTRACE_GETFPREGS), + #define XLAT_VAL_35 ((unsigned) (PTRACE_GETFPREGS)) + #define XLAT_STR_35 STRINGIFY(PTRACE_GETFPREGS) +#else +#if defined(PTRACE_GETFPREGS) || (defined(HAVE_DECL_PTRACE_GETFPREGS) && HAVE_DECL_PTRACE_GETFPREGS) + XLAT(PTRACE_GETFPREGS), + #define XLAT_VAL_36 ((unsigned) (PTRACE_GETFPREGS)) + #define XLAT_STR_36 STRINGIFY(PTRACE_GETFPREGS) +#endif +#endif + +#if defined __arm__ || defined __hppa__ || defined __m68k__ || defined __mips__ || defined __powerpc__ || defined __sh__ || defined __sparc__ || defined __x86_64__ || defined __i386__ + XLAT(PTRACE_SETFPREGS), + #define XLAT_VAL_37 ((unsigned) (PTRACE_SETFPREGS)) + #define XLAT_STR_37 STRINGIFY(PTRACE_SETFPREGS) +#else +#if defined(PTRACE_SETFPREGS) || (defined(HAVE_DECL_PTRACE_SETFPREGS) && HAVE_DECL_PTRACE_SETFPREGS) + XLAT(PTRACE_SETFPREGS), + #define XLAT_VAL_38 ((unsigned) (PTRACE_SETFPREGS)) + #define XLAT_STR_38 STRINGIFY(PTRACE_SETFPREGS) +#endif +#endif + +#if defined __mips__ || defined __x86_64__ || defined __i386__ + XLAT(PTRACE_GETFPXREGS), + #define XLAT_VAL_39 ((unsigned) (PTRACE_GETFPXREGS)) + #define XLAT_STR_39 STRINGIFY(PTRACE_GETFPXREGS) +#else +#if defined(PTRACE_GETFPXREGS) || (defined(HAVE_DECL_PTRACE_GETFPXREGS) && HAVE_DECL_PTRACE_GETFPXREGS) + XLAT(PTRACE_GETFPXREGS), + #define XLAT_VAL_40 ((unsigned) (PTRACE_GETFPXREGS)) + #define XLAT_STR_40 STRINGIFY(PTRACE_GETFPXREGS) +#endif +#endif + +#if defined __mips__ || defined __x86_64__ || defined __i386__ + XLAT(PTRACE_SETFPXREGS), + #define XLAT_VAL_41 ((unsigned) (PTRACE_SETFPXREGS)) + #define XLAT_STR_41 STRINGIFY(PTRACE_SETFPXREGS) +#else +#if defined(PTRACE_SETFPXREGS) || (defined(HAVE_DECL_PTRACE_SETFPXREGS) && HAVE_DECL_PTRACE_SETFPXREGS) + XLAT(PTRACE_SETFPXREGS), + #define XLAT_VAL_42 ((unsigned) (PTRACE_SETFPXREGS)) + #define XLAT_STR_42 STRINGIFY(PTRACE_SETFPXREGS) +#endif +#endif + +#if defined __xtensa__ + XLAT(PTRACE_GETHBPREGS), + #define XLAT_VAL_43 ((unsigned) (PTRACE_GETHBPREGS)) + #define XLAT_STR_43 STRINGIFY(PTRACE_GETHBPREGS) +#elif defined __arm__ + XLAT(PTRACE_GETHBPREGS), + #define XLAT_VAL_44 ((unsigned) (PTRACE_GETHBPREGS)) + #define XLAT_STR_44 STRINGIFY(PTRACE_GETHBPREGS) +#else +#if defined(PTRACE_GETHBPREGS) || (defined(HAVE_DECL_PTRACE_GETHBPREGS) && HAVE_DECL_PTRACE_GETHBPREGS) + XLAT(PTRACE_GETHBPREGS), + #define XLAT_VAL_45 ((unsigned) (PTRACE_GETHBPREGS)) + #define XLAT_STR_45 STRINGIFY(PTRACE_GETHBPREGS) #endif -#if defined(PTRACE_GET_SYSCALL_INFO) || (defined(HAVE_DECL_PTRACE_GET_SYSCALL_INFO) && HAVE_DECL_PTRACE_GET_SYSCALL_INFO) - XLAT(PTRACE_GET_SYSCALL_INFO), #endif +#if defined __xtensa__ + XLAT(PTRACE_SETHBPREGS), + #define XLAT_VAL_46 ((unsigned) (PTRACE_SETHBPREGS)) + #define XLAT_STR_46 STRINGIFY(PTRACE_SETHBPREGS) +#elif defined __arm__ + XLAT(PTRACE_SETHBPREGS), + #define XLAT_VAL_47 ((unsigned) (PTRACE_SETHBPREGS)) + #define XLAT_STR_47 STRINGIFY(PTRACE_SETHBPREGS) +#else +#if defined(PTRACE_SETHBPREGS) || (defined(HAVE_DECL_PTRACE_SETHBPREGS) && HAVE_DECL_PTRACE_SETHBPREGS) + XLAT(PTRACE_SETHBPREGS), + #define XLAT_VAL_48 ((unsigned) (PTRACE_SETHBPREGS)) + #define XLAT_STR_48 STRINGIFY(PTRACE_SETHBPREGS) +#endif +#endif + +#if defined __arm__ || defined __ia64__ || defined __mips__ || defined __s390__ || defined __x86_64__ || defined __i386__ + XLAT(PTRACE_OLDSETOPTIONS), + #define XLAT_VAL_49 ((unsigned) (PTRACE_OLDSETOPTIONS)) + #define XLAT_STR_49 STRINGIFY(PTRACE_OLDSETOPTIONS) +#else +#if defined(PTRACE_OLDSETOPTIONS) || (defined(HAVE_DECL_PTRACE_OLDSETOPTIONS) && HAVE_DECL_PTRACE_OLDSETOPTIONS) + XLAT(PTRACE_OLDSETOPTIONS), + #define XLAT_VAL_50 ((unsigned) (PTRACE_OLDSETOPTIONS)) + #define XLAT_STR_50 STRINGIFY(PTRACE_OLDSETOPTIONS) +#endif +#endif + +#if defined __powerpc__ || defined __sparc__ + XLAT(PTRACE_GETREGS64), + #define XLAT_VAL_51 ((unsigned) (PTRACE_GETREGS64)) + #define XLAT_STR_51 STRINGIFY(PTRACE_GETREGS64) +#else +#if defined(PTRACE_GETREGS64) || (defined(HAVE_DECL_PTRACE_GETREGS64) && HAVE_DECL_PTRACE_GETREGS64) + XLAT(PTRACE_GETREGS64), + #define XLAT_VAL_52 ((unsigned) (PTRACE_GETREGS64)) + #define XLAT_STR_52 STRINGIFY(PTRACE_GETREGS64) +#endif +#endif +#if defined __powerpc__ || defined __sparc__ + XLAT(PTRACE_SETREGS64), + #define XLAT_VAL_53 ((unsigned) (PTRACE_SETREGS64)) + #define XLAT_STR_53 STRINGIFY(PTRACE_SETREGS64) +#else +#if defined(PTRACE_SETREGS64) || (defined(HAVE_DECL_PTRACE_SETREGS64) && HAVE_DECL_PTRACE_SETREGS64) + XLAT(PTRACE_SETREGS64), + #define XLAT_VAL_54 ((unsigned) (PTRACE_SETREGS64)) + #define XLAT_STR_54 STRINGIFY(PTRACE_SETREGS64) +#endif +#endif + +#if defined __arm__ || defined __unicore32__ + XLAT(PTRACE_GET_THREAD_AREA), + #define XLAT_VAL_55 ((unsigned) (PTRACE_GET_THREAD_AREA)) + #define XLAT_STR_55 STRINGIFY(PTRACE_GET_THREAD_AREA) +#elif defined __arc__ || defined __m68k__ || defined __mips__ || defined __x86_64__ || defined __i386__ + XLAT(PTRACE_GET_THREAD_AREA), + #define XLAT_VAL_56 ((unsigned) (PTRACE_GET_THREAD_AREA)) + #define XLAT_STR_56 STRINGIFY(PTRACE_GET_THREAD_AREA) +#else #if defined(PTRACE_GET_THREAD_AREA) || (defined(HAVE_DECL_PTRACE_GET_THREAD_AREA) && HAVE_DECL_PTRACE_GET_THREAD_AREA) XLAT(PTRACE_GET_THREAD_AREA), + #define XLAT_VAL_57 ((unsigned) (PTRACE_GET_THREAD_AREA)) + #define XLAT_STR_57 STRINGIFY(PTRACE_GET_THREAD_AREA) +#endif #endif + +#if defined __mips__ || defined __x86_64__ || defined __i386__ + XLAT(PTRACE_SET_THREAD_AREA), + #define XLAT_VAL_58 ((unsigned) (PTRACE_SET_THREAD_AREA)) + #define XLAT_STR_58 STRINGIFY(PTRACE_SET_THREAD_AREA) +#else #if defined(PTRACE_SET_THREAD_AREA) || (defined(HAVE_DECL_PTRACE_SET_THREAD_AREA) && HAVE_DECL_PTRACE_SET_THREAD_AREA) XLAT(PTRACE_SET_THREAD_AREA), + #define XLAT_VAL_59 ((unsigned) (PTRACE_SET_THREAD_AREA)) + #define XLAT_STR_59 STRINGIFY(PTRACE_SET_THREAD_AREA) #endif -#if defined(PTRACE_OLDSETOPTIONS) || (defined(HAVE_DECL_PTRACE_OLDSETOPTIONS) && HAVE_DECL_PTRACE_OLDSETOPTIONS) - XLAT(PTRACE_OLDSETOPTIONS), #endif + +#if defined __arm__ || defined __c6x__ || defined __sh__ + XLAT(PTRACE_GETFDPIC), + #define XLAT_VAL_60 ((unsigned) (PTRACE_GETFDPIC)) + #define XLAT_STR_60 STRINGIFY(PTRACE_GETFDPIC) +#else #if defined(PTRACE_GETFDPIC) || (defined(HAVE_DECL_PTRACE_GETFDPIC) && HAVE_DECL_PTRACE_GETFDPIC) XLAT(PTRACE_GETFDPIC), + #define XLAT_VAL_61 ((unsigned) (PTRACE_GETFDPIC)) + #define XLAT_STR_61 STRINGIFY(PTRACE_GETFDPIC) +#endif +#endif + +#if defined __powerpc__ + XLAT(PTRACE_SYSEMU), + #define XLAT_VAL_62 ((unsigned) (PTRACE_SYSEMU)) + #define XLAT_STR_62 STRINGIFY(PTRACE_SYSEMU) +#elif defined __arm64__ || defined __aarch64__ || defined __x86_64__ || defined __i386__ + XLAT(PTRACE_SYSEMU), + #define XLAT_VAL_63 ((unsigned) (PTRACE_SYSEMU)) + #define XLAT_STR_63 STRINGIFY(PTRACE_SYSEMU) +#else +#if defined(PTRACE_SYSEMU) || (defined(HAVE_DECL_PTRACE_SYSEMU) && HAVE_DECL_PTRACE_SYSEMU) + XLAT(PTRACE_SYSEMU), + #define XLAT_VAL_64 ((unsigned) (PTRACE_SYSEMU)) + #define XLAT_STR_64 STRINGIFY(PTRACE_SYSEMU) +#endif +#endif + +#if defined __powerpc__ + XLAT(PTRACE_SYSEMU_SINGLESTEP), + #define XLAT_VAL_65 ((unsigned) (PTRACE_SYSEMU_SINGLESTEP)) + #define XLAT_STR_65 STRINGIFY(PTRACE_SYSEMU_SINGLESTEP) +#elif defined __arm64__ || defined __aarch64__ || defined __x86_64__ || defined __i386__ + XLAT(PTRACE_SYSEMU_SINGLESTEP), + #define XLAT_VAL_66 ((unsigned) (PTRACE_SYSEMU_SINGLESTEP)) + #define XLAT_STR_66 STRINGIFY(PTRACE_SYSEMU_SINGLESTEP) +#else +#if defined(PTRACE_SYSEMU_SINGLESTEP) || (defined(HAVE_DECL_PTRACE_SYSEMU_SINGLESTEP) && HAVE_DECL_PTRACE_SYSEMU_SINGLESTEP) + XLAT(PTRACE_SYSEMU_SINGLESTEP), + #define XLAT_VAL_67 ((unsigned) (PTRACE_SYSEMU_SINGLESTEP)) + #define XLAT_STR_67 STRINGIFY(PTRACE_SYSEMU_SINGLESTEP) #endif +#endif + +#if defined __hppa__ || defined __ia64__ || defined __s390__ + XLAT(PTRACE_SINGLEBLOCK), + #define XLAT_VAL_68 ((unsigned) (PTRACE_SINGLEBLOCK)) + #define XLAT_STR_68 STRINGIFY(PTRACE_SINGLEBLOCK) +#elif defined __m68k__ || defined __x86_64__ || defined __i386__ + XLAT(PTRACE_SINGLEBLOCK), + #define XLAT_VAL_69 ((unsigned) (PTRACE_SINGLEBLOCK)) + #define XLAT_STR_69 STRINGIFY(PTRACE_SINGLEBLOCK) +#elif defined __powerpc__ + XLAT(PTRACE_SINGLEBLOCK), + #define XLAT_VAL_70 ((unsigned) (PTRACE_SINGLEBLOCK)) + #define XLAT_STR_70 STRINGIFY(PTRACE_SINGLEBLOCK) +#else #if defined(PTRACE_SINGLEBLOCK) || (defined(HAVE_DECL_PTRACE_SINGLEBLOCK) && HAVE_DECL_PTRACE_SINGLEBLOCK) XLAT(PTRACE_SINGLEBLOCK), + #define XLAT_VAL_71 ((unsigned) (PTRACE_SINGLEBLOCK)) + #define XLAT_STR_71 STRINGIFY(PTRACE_SINGLEBLOCK) #endif +#endif + +#if defined __arm__ + XLAT(PTRACE_GETWMMXREGS), + #define XLAT_VAL_72 ((unsigned) (PTRACE_GETWMMXREGS)) + #define XLAT_STR_72 STRINGIFY(PTRACE_GETWMMXREGS) +#else #if defined(PTRACE_GETWMMXREGS) || (defined(HAVE_DECL_PTRACE_GETWMMXREGS) && HAVE_DECL_PTRACE_GETWMMXREGS) XLAT(PTRACE_GETWMMXREGS), + #define XLAT_VAL_73 ((unsigned) (PTRACE_GETWMMXREGS)) + #define XLAT_STR_73 STRINGIFY(PTRACE_GETWMMXREGS) #endif +#endif +#if defined __arm__ + XLAT(PTRACE_SETWMMXREGS), + #define XLAT_VAL_74 ((unsigned) (PTRACE_SETWMMXREGS)) + #define XLAT_STR_74 STRINGIFY(PTRACE_SETWMMXREGS) +#else #if defined(PTRACE_SETWMMXREGS) || (defined(HAVE_DECL_PTRACE_SETWMMXREGS) && HAVE_DECL_PTRACE_SETWMMXREGS) XLAT(PTRACE_SETWMMXREGS), + #define XLAT_VAL_75 ((unsigned) (PTRACE_SETWMMXREGS)) + #define XLAT_STR_75 STRINGIFY(PTRACE_SETWMMXREGS) +#endif #endif +#if defined __arm__ + XLAT(PTRACE_SET_SYSCALL), + #define XLAT_VAL_76 ((unsigned) (PTRACE_SET_SYSCALL)) + #define XLAT_STR_76 STRINGIFY(PTRACE_SET_SYSCALL) +#else +#if defined(PTRACE_SET_SYSCALL) || (defined(HAVE_DECL_PTRACE_SET_SYSCALL) && HAVE_DECL_PTRACE_SET_SYSCALL) + XLAT(PTRACE_SET_SYSCALL), + #define XLAT_VAL_77 ((unsigned) (PTRACE_SET_SYSCALL)) + #define XLAT_STR_77 STRINGIFY(PTRACE_SET_SYSCALL) +#endif +#endif +#if defined __arm__ + XLAT(PTRACE_GETCRUNCHREGS), + #define XLAT_VAL_78 ((unsigned) (PTRACE_GETCRUNCHREGS)) + #define XLAT_STR_78 STRINGIFY(PTRACE_GETCRUNCHREGS) +#else #if defined(PTRACE_GETCRUNCHREGS) || (defined(HAVE_DECL_PTRACE_GETCRUNCHREGS) && HAVE_DECL_PTRACE_GETCRUNCHREGS) XLAT(PTRACE_GETCRUNCHREGS), + #define XLAT_VAL_79 ((unsigned) (PTRACE_GETCRUNCHREGS)) + #define XLAT_STR_79 STRINGIFY(PTRACE_GETCRUNCHREGS) #endif +#endif +#if defined __arm__ + XLAT(PTRACE_SETCRUNCHREGS), + #define XLAT_VAL_80 ((unsigned) (PTRACE_SETCRUNCHREGS)) + #define XLAT_STR_80 STRINGIFY(PTRACE_SETCRUNCHREGS) +#else #if defined(PTRACE_SETCRUNCHREGS) || (defined(HAVE_DECL_PTRACE_SETCRUNCHREGS) && HAVE_DECL_PTRACE_SETCRUNCHREGS) XLAT(PTRACE_SETCRUNCHREGS), + #define XLAT_VAL_81 ((unsigned) (PTRACE_SETCRUNCHREGS)) + #define XLAT_STR_81 STRINGIFY(PTRACE_SETCRUNCHREGS) +#endif #endif +#if defined __arm__ + XLAT(PTRACE_GETVFPREGS), + #define XLAT_VAL_82 ((unsigned) (PTRACE_GETVFPREGS)) + #define XLAT_STR_82 STRINGIFY(PTRACE_GETVFPREGS) +#else #if defined(PTRACE_GETVFPREGS) || (defined(HAVE_DECL_PTRACE_GETVFPREGS) && HAVE_DECL_PTRACE_GETVFPREGS) XLAT(PTRACE_GETVFPREGS), + #define XLAT_VAL_83 ((unsigned) (PTRACE_GETVFPREGS)) + #define XLAT_STR_83 STRINGIFY(PTRACE_GETVFPREGS) +#endif #endif +#if defined __arm__ + XLAT(PTRACE_SETVFPREGS), + #define XLAT_VAL_84 ((unsigned) (PTRACE_SETVFPREGS)) + #define XLAT_STR_84 STRINGIFY(PTRACE_SETVFPREGS) +#else #if defined(PTRACE_SETVFPREGS) || (defined(HAVE_DECL_PTRACE_SETVFPREGS) && HAVE_DECL_PTRACE_SETVFPREGS) XLAT(PTRACE_SETVFPREGS), + #define XLAT_VAL_85 ((unsigned) (PTRACE_SETVFPREGS)) + #define XLAT_STR_85 STRINGIFY(PTRACE_SETVFPREGS) #endif -#if defined(PTRACE_GETHBPREGS) || (defined(HAVE_DECL_PTRACE_GETHBPREGS) && HAVE_DECL_PTRACE_GETHBPREGS) - XLAT(PTRACE_GETHBPREGS), -#endif -#if defined(PTRACE_SETHBPREGS) || (defined(HAVE_DECL_PTRACE_SETHBPREGS) && HAVE_DECL_PTRACE_SETHBPREGS) - XLAT(PTRACE_SETHBPREGS), #endif + +#if defined __ia64__ + XLAT(PTRACE_OLD_GETSIGINFO), + #define XLAT_VAL_86 ((unsigned) (PTRACE_OLD_GETSIGINFO)) + #define XLAT_STR_86 STRINGIFY(PTRACE_OLD_GETSIGINFO) +#else #if defined(PTRACE_OLD_GETSIGINFO) || (defined(HAVE_DECL_PTRACE_OLD_GETSIGINFO) && HAVE_DECL_PTRACE_OLD_GETSIGINFO) XLAT(PTRACE_OLD_GETSIGINFO), + #define XLAT_VAL_87 ((unsigned) (PTRACE_OLD_GETSIGINFO)) + #define XLAT_STR_87 STRINGIFY(PTRACE_OLD_GETSIGINFO) +#endif #endif +#if defined __ia64__ + XLAT(PTRACE_OLD_SETSIGINFO), + #define XLAT_VAL_88 ((unsigned) (PTRACE_OLD_SETSIGINFO)) + #define XLAT_STR_88 STRINGIFY(PTRACE_OLD_SETSIGINFO) +#else #if defined(PTRACE_OLD_SETSIGINFO) || (defined(HAVE_DECL_PTRACE_OLD_SETSIGINFO) && HAVE_DECL_PTRACE_OLD_SETSIGINFO) XLAT(PTRACE_OLD_SETSIGINFO), + #define XLAT_VAL_89 ((unsigned) (PTRACE_OLD_SETSIGINFO)) + #define XLAT_STR_89 STRINGIFY(PTRACE_OLD_SETSIGINFO) #endif +#endif + +#if defined __mips__ + XLAT(PTRACE_PEEKTEXT_3264), + #define XLAT_VAL_90 ((unsigned) (PTRACE_PEEKTEXT_3264)) + #define XLAT_STR_90 STRINGIFY(PTRACE_PEEKTEXT_3264) +#else #if defined(PTRACE_PEEKTEXT_3264) || (defined(HAVE_DECL_PTRACE_PEEKTEXT_3264) && HAVE_DECL_PTRACE_PEEKTEXT_3264) XLAT(PTRACE_PEEKTEXT_3264), + #define XLAT_VAL_91 ((unsigned) (PTRACE_PEEKTEXT_3264)) + #define XLAT_STR_91 STRINGIFY(PTRACE_PEEKTEXT_3264) #endif +#endif +#if defined __mips__ + XLAT(PTRACE_PEEKDATA_3264), + #define XLAT_VAL_92 ((unsigned) (PTRACE_PEEKDATA_3264)) + #define XLAT_STR_92 STRINGIFY(PTRACE_PEEKDATA_3264) +#else #if defined(PTRACE_PEEKDATA_3264) || (defined(HAVE_DECL_PTRACE_PEEKDATA_3264) && HAVE_DECL_PTRACE_PEEKDATA_3264) XLAT(PTRACE_PEEKDATA_3264), + #define XLAT_VAL_93 ((unsigned) (PTRACE_PEEKDATA_3264)) + #define XLAT_STR_93 STRINGIFY(PTRACE_PEEKDATA_3264) +#endif #endif +#if defined __mips__ + XLAT(PTRACE_POKETEXT_3264), + #define XLAT_VAL_94 ((unsigned) (PTRACE_POKETEXT_3264)) + #define XLAT_STR_94 STRINGIFY(PTRACE_POKETEXT_3264) +#else #if defined(PTRACE_POKETEXT_3264) || (defined(HAVE_DECL_PTRACE_POKETEXT_3264) && HAVE_DECL_PTRACE_POKETEXT_3264) XLAT(PTRACE_POKETEXT_3264), + #define XLAT_VAL_95 ((unsigned) (PTRACE_POKETEXT_3264)) + #define XLAT_STR_95 STRINGIFY(PTRACE_POKETEXT_3264) #endif +#endif +#if defined __mips__ + XLAT(PTRACE_POKEDATA_3264), + #define XLAT_VAL_96 ((unsigned) (PTRACE_POKEDATA_3264)) + #define XLAT_STR_96 STRINGIFY(PTRACE_POKEDATA_3264) +#else #if defined(PTRACE_POKEDATA_3264) || (defined(HAVE_DECL_PTRACE_POKEDATA_3264) && HAVE_DECL_PTRACE_POKEDATA_3264) XLAT(PTRACE_POKEDATA_3264), + #define XLAT_VAL_97 ((unsigned) (PTRACE_POKEDATA_3264)) + #define XLAT_STR_97 STRINGIFY(PTRACE_POKEDATA_3264) +#endif #endif +#if defined __mips__ + XLAT(PTRACE_GET_THREAD_AREA_3264), + #define XLAT_VAL_98 ((unsigned) (PTRACE_GET_THREAD_AREA_3264)) + #define XLAT_STR_98 STRINGIFY(PTRACE_GET_THREAD_AREA_3264) +#else #if defined(PTRACE_GET_THREAD_AREA_3264) || (defined(HAVE_DECL_PTRACE_GET_THREAD_AREA_3264) && HAVE_DECL_PTRACE_GET_THREAD_AREA_3264) XLAT(PTRACE_GET_THREAD_AREA_3264), + #define XLAT_VAL_99 ((unsigned) (PTRACE_GET_THREAD_AREA_3264)) + #define XLAT_STR_99 STRINGIFY(PTRACE_GET_THREAD_AREA_3264) +#endif #endif +#if defined __mips__ + XLAT(PTRACE_GET_WATCH_REGS), + #define XLAT_VAL_100 ((unsigned) (PTRACE_GET_WATCH_REGS)) + #define XLAT_STR_100 STRINGIFY(PTRACE_GET_WATCH_REGS) +#else #if defined(PTRACE_GET_WATCH_REGS) || (defined(HAVE_DECL_PTRACE_GET_WATCH_REGS) && HAVE_DECL_PTRACE_GET_WATCH_REGS) XLAT(PTRACE_GET_WATCH_REGS), + #define XLAT_VAL_101 ((unsigned) (PTRACE_GET_WATCH_REGS)) + #define XLAT_STR_101 STRINGIFY(PTRACE_GET_WATCH_REGS) #endif +#endif +#if defined __mips__ + XLAT(PTRACE_SET_WATCH_REGS), + #define XLAT_VAL_102 ((unsigned) (PTRACE_SET_WATCH_REGS)) + #define XLAT_STR_102 STRINGIFY(PTRACE_SET_WATCH_REGS) +#else #if defined(PTRACE_SET_WATCH_REGS) || (defined(HAVE_DECL_PTRACE_SET_WATCH_REGS) && HAVE_DECL_PTRACE_SET_WATCH_REGS) XLAT(PTRACE_SET_WATCH_REGS), + #define XLAT_VAL_103 ((unsigned) (PTRACE_SET_WATCH_REGS)) + #define XLAT_STR_103 STRINGIFY(PTRACE_SET_WATCH_REGS) +#endif #endif + +#if defined __powerpc__ + XLAT(PTRACE_GETVRREGS), + #define XLAT_VAL_104 ((unsigned) (PTRACE_GETVRREGS)) + #define XLAT_STR_104 STRINGIFY(PTRACE_GETVRREGS) +#else +#if defined(PTRACE_GETVRREGS) || (defined(HAVE_DECL_PTRACE_GETVRREGS) && HAVE_DECL_PTRACE_GETVRREGS) + XLAT(PTRACE_GETVRREGS), + #define XLAT_VAL_105 ((unsigned) (PTRACE_GETVRREGS)) + #define XLAT_STR_105 STRINGIFY(PTRACE_GETVRREGS) +#endif +#endif +#if defined __powerpc__ + XLAT(PTRACE_SETVRREGS), + #define XLAT_VAL_106 ((unsigned) (PTRACE_SETVRREGS)) + #define XLAT_STR_106 STRINGIFY(PTRACE_SETVRREGS) +#else +#if defined(PTRACE_SETVRREGS) || (defined(HAVE_DECL_PTRACE_SETVRREGS) && HAVE_DECL_PTRACE_SETVRREGS) + XLAT(PTRACE_SETVRREGS), + #define XLAT_VAL_107 ((unsigned) (PTRACE_SETVRREGS)) + #define XLAT_STR_107 STRINGIFY(PTRACE_SETVRREGS) +#endif +#endif +#if defined __powerpc__ + XLAT(PTRACE_GETEVRREGS), + #define XLAT_VAL_108 ((unsigned) (PTRACE_GETEVRREGS)) + #define XLAT_STR_108 STRINGIFY(PTRACE_GETEVRREGS) +#else #if defined(PTRACE_GETEVRREGS) || (defined(HAVE_DECL_PTRACE_GETEVRREGS) && HAVE_DECL_PTRACE_GETEVRREGS) XLAT(PTRACE_GETEVRREGS), + #define XLAT_VAL_109 ((unsigned) (PTRACE_GETEVRREGS)) + #define XLAT_STR_109 STRINGIFY(PTRACE_GETEVRREGS) +#endif #endif +#if defined __powerpc__ + XLAT(PTRACE_SETEVRREGS), + #define XLAT_VAL_110 ((unsigned) (PTRACE_SETEVRREGS)) + #define XLAT_STR_110 STRINGIFY(PTRACE_SETEVRREGS) +#else #if defined(PTRACE_SETEVRREGS) || (defined(HAVE_DECL_PTRACE_SETEVRREGS) && HAVE_DECL_PTRACE_SETEVRREGS) XLAT(PTRACE_SETEVRREGS), + #define XLAT_VAL_111 ((unsigned) (PTRACE_SETEVRREGS)) + #define XLAT_STR_111 STRINGIFY(PTRACE_SETEVRREGS) +#endif #endif +#if defined __powerpc__ + XLAT(PTRACE_GETVSRREGS), + #define XLAT_VAL_112 ((unsigned) (PTRACE_GETVSRREGS)) + #define XLAT_STR_112 STRINGIFY(PTRACE_GETVSRREGS) +#else #if defined(PTRACE_GETVSRREGS) || (defined(HAVE_DECL_PTRACE_GETVSRREGS) && HAVE_DECL_PTRACE_GETVSRREGS) XLAT(PTRACE_GETVSRREGS), + #define XLAT_VAL_113 ((unsigned) (PTRACE_GETVSRREGS)) + #define XLAT_STR_113 STRINGIFY(PTRACE_GETVSRREGS) #endif +#endif +#if defined __powerpc__ + XLAT(PTRACE_SETVSRREGS), + #define XLAT_VAL_114 ((unsigned) (PTRACE_SETVSRREGS)) + #define XLAT_STR_114 STRINGIFY(PTRACE_SETVSRREGS) +#else #if defined(PTRACE_SETVSRREGS) || (defined(HAVE_DECL_PTRACE_SETVSRREGS) && HAVE_DECL_PTRACE_SETVSRREGS) XLAT(PTRACE_SETVSRREGS), + #define XLAT_VAL_115 ((unsigned) (PTRACE_SETVSRREGS)) + #define XLAT_STR_115 STRINGIFY(PTRACE_SETVSRREGS) +#endif #endif +#if defined __powerpc__ + XLAT(PTRACE_GET_DEBUGREG), + #define XLAT_VAL_116 ((unsigned) (PTRACE_GET_DEBUGREG)) + #define XLAT_STR_116 STRINGIFY(PTRACE_GET_DEBUGREG) +#else #if defined(PTRACE_GET_DEBUGREG) || (defined(HAVE_DECL_PTRACE_GET_DEBUGREG) && HAVE_DECL_PTRACE_GET_DEBUGREG) XLAT(PTRACE_GET_DEBUGREG), + #define XLAT_VAL_117 ((unsigned) (PTRACE_GET_DEBUGREG)) + #define XLAT_STR_117 STRINGIFY(PTRACE_GET_DEBUGREG) #endif +#endif +#if defined __powerpc__ + XLAT(PTRACE_SET_DEBUGREG), + #define XLAT_VAL_118 ((unsigned) (PTRACE_SET_DEBUGREG)) + #define XLAT_STR_118 STRINGIFY(PTRACE_SET_DEBUGREG) +#else #if defined(PTRACE_SET_DEBUGREG) || (defined(HAVE_DECL_PTRACE_SET_DEBUGREG) && HAVE_DECL_PTRACE_SET_DEBUGREG) XLAT(PTRACE_SET_DEBUGREG), + #define XLAT_VAL_119 ((unsigned) (PTRACE_SET_DEBUGREG)) + #define XLAT_STR_119 STRINGIFY(PTRACE_SET_DEBUGREG) +#endif +#endif +#if defined __powerpc__ + XLAT(PPC_PTRACE_DELHWDEBUG), + #define XLAT_VAL_120 ((unsigned) (PPC_PTRACE_DELHWDEBUG)) + #define XLAT_STR_120 STRINGIFY(PPC_PTRACE_DELHWDEBUG) +#else +#if defined(PPC_PTRACE_DELHWDEBUG) || (defined(HAVE_DECL_PPC_PTRACE_DELHWDEBUG) && HAVE_DECL_PPC_PTRACE_DELHWDEBUG) + XLAT(PPC_PTRACE_DELHWDEBUG), + #define XLAT_VAL_121 ((unsigned) (PPC_PTRACE_DELHWDEBUG)) + #define XLAT_STR_121 STRINGIFY(PPC_PTRACE_DELHWDEBUG) #endif -#if defined(PPC_PTRACE_GETHWDBGINFO) || (defined(HAVE_DECL_PPC_PTRACE_GETHWDBGINFO) && HAVE_DECL_PPC_PTRACE_GETHWDBGINFO) - XLAT(PPC_PTRACE_GETHWDBGINFO), #endif +#if defined __powerpc__ + XLAT(PPC_PTRACE_SETHWDEBUG), + #define XLAT_VAL_122 ((unsigned) (PPC_PTRACE_SETHWDEBUG)) + #define XLAT_STR_122 STRINGIFY(PPC_PTRACE_SETHWDEBUG) +#else #if defined(PPC_PTRACE_SETHWDEBUG) || (defined(HAVE_DECL_PPC_PTRACE_SETHWDEBUG) && HAVE_DECL_PPC_PTRACE_SETHWDEBUG) XLAT(PPC_PTRACE_SETHWDEBUG), + #define XLAT_VAL_123 ((unsigned) (PPC_PTRACE_SETHWDEBUG)) + #define XLAT_STR_123 STRINGIFY(PPC_PTRACE_SETHWDEBUG) #endif -#if defined(PPC_PTRACE_DELHWDEBUG) || (defined(HAVE_DECL_PPC_PTRACE_DELHWDEBUG) && HAVE_DECL_PPC_PTRACE_DELHWDEBUG) - XLAT(PPC_PTRACE_DELHWDEBUG), #endif +#if defined __powerpc__ + XLAT(PPC_PTRACE_GETHWDBGINFO), + #define XLAT_VAL_124 ((unsigned) (PPC_PTRACE_GETHWDBGINFO)) + #define XLAT_STR_124 STRINGIFY(PPC_PTRACE_GETHWDBGINFO) +#else +#if defined(PPC_PTRACE_GETHWDBGINFO) || (defined(HAVE_DECL_PPC_PTRACE_GETHWDBGINFO) && HAVE_DECL_PPC_PTRACE_GETHWDBGINFO) + XLAT(PPC_PTRACE_GETHWDBGINFO), + #define XLAT_VAL_125 ((unsigned) (PPC_PTRACE_GETHWDBGINFO)) + #define XLAT_STR_125 STRINGIFY(PPC_PTRACE_GETHWDBGINFO) +#endif +#endif +#if defined __powerpc__ + XLAT(PPC_PTRACE_POKEUSR_3264), + #define XLAT_VAL_126 ((unsigned) (PPC_PTRACE_POKEUSR_3264)) + #define XLAT_STR_126 STRINGIFY(PPC_PTRACE_POKEUSR_3264) +#else +#if defined(PPC_PTRACE_POKEUSR_3264) || (defined(HAVE_DECL_PPC_PTRACE_POKEUSR_3264) && HAVE_DECL_PPC_PTRACE_POKEUSR_3264) + XLAT(PPC_PTRACE_POKEUSR_3264), + #define XLAT_VAL_127 ((unsigned) (PPC_PTRACE_POKEUSR_3264)) + #define XLAT_STR_127 STRINGIFY(PPC_PTRACE_POKEUSR_3264) +#endif +#endif +#if defined __powerpc__ + XLAT(PPC_PTRACE_PEEKUSR_3264), + #define XLAT_VAL_128 ((unsigned) (PPC_PTRACE_PEEKUSR_3264)) + #define XLAT_STR_128 STRINGIFY(PPC_PTRACE_PEEKUSR_3264) +#else +#if defined(PPC_PTRACE_PEEKUSR_3264) || (defined(HAVE_DECL_PPC_PTRACE_PEEKUSR_3264) && HAVE_DECL_PPC_PTRACE_PEEKUSR_3264) + XLAT(PPC_PTRACE_PEEKUSR_3264), + #define XLAT_VAL_129 ((unsigned) (PPC_PTRACE_PEEKUSR_3264)) + #define XLAT_STR_129 STRINGIFY(PPC_PTRACE_PEEKUSR_3264) +#endif +#endif +#if defined __powerpc__ + XLAT(PPC_PTRACE_POKEDATA_3264), + #define XLAT_VAL_130 ((unsigned) (PPC_PTRACE_POKEDATA_3264)) + #define XLAT_STR_130 STRINGIFY(PPC_PTRACE_POKEDATA_3264) +#else +#if defined(PPC_PTRACE_POKEDATA_3264) || (defined(HAVE_DECL_PPC_PTRACE_POKEDATA_3264) && HAVE_DECL_PPC_PTRACE_POKEDATA_3264) + XLAT(PPC_PTRACE_POKEDATA_3264), + #define XLAT_VAL_131 ((unsigned) (PPC_PTRACE_POKEDATA_3264)) + #define XLAT_STR_131 STRINGIFY(PPC_PTRACE_POKEDATA_3264) +#endif +#endif +#if defined __powerpc__ + XLAT(PPC_PTRACE_POKETEXT_3264), + #define XLAT_VAL_132 ((unsigned) (PPC_PTRACE_POKETEXT_3264)) + #define XLAT_STR_132 STRINGIFY(PPC_PTRACE_POKETEXT_3264) +#else +#if defined(PPC_PTRACE_POKETEXT_3264) || (defined(HAVE_DECL_PPC_PTRACE_POKETEXT_3264) && HAVE_DECL_PPC_PTRACE_POKETEXT_3264) + XLAT(PPC_PTRACE_POKETEXT_3264), + #define XLAT_VAL_133 ((unsigned) (PPC_PTRACE_POKETEXT_3264)) + #define XLAT_STR_133 STRINGIFY(PPC_PTRACE_POKETEXT_3264) +#endif +#endif +#if defined __powerpc__ + XLAT(PPC_PTRACE_PEEKDATA_3264), + #define XLAT_VAL_134 ((unsigned) (PPC_PTRACE_PEEKDATA_3264)) + #define XLAT_STR_134 STRINGIFY(PPC_PTRACE_PEEKDATA_3264) +#else +#if defined(PPC_PTRACE_PEEKDATA_3264) || (defined(HAVE_DECL_PPC_PTRACE_PEEKDATA_3264) && HAVE_DECL_PPC_PTRACE_PEEKDATA_3264) + XLAT(PPC_PTRACE_PEEKDATA_3264), + #define XLAT_VAL_135 ((unsigned) (PPC_PTRACE_PEEKDATA_3264)) + #define XLAT_STR_135 STRINGIFY(PPC_PTRACE_PEEKDATA_3264) +#endif +#endif +#if defined __powerpc__ + XLAT(PPC_PTRACE_PEEKTEXT_3264), + #define XLAT_VAL_136 ((unsigned) (PPC_PTRACE_PEEKTEXT_3264)) + #define XLAT_STR_136 STRINGIFY(PPC_PTRACE_PEEKTEXT_3264) +#else +#if defined(PPC_PTRACE_PEEKTEXT_3264) || (defined(HAVE_DECL_PPC_PTRACE_PEEKTEXT_3264) && HAVE_DECL_PPC_PTRACE_PEEKTEXT_3264) + XLAT(PPC_PTRACE_PEEKTEXT_3264), + #define XLAT_VAL_137 ((unsigned) (PPC_PTRACE_PEEKTEXT_3264)) + #define XLAT_STR_137 STRINGIFY(PPC_PTRACE_PEEKTEXT_3264) +#endif +#endif + +#if defined __s390__ + XLAT(PTRACE_PEEKUSR_AREA), + #define XLAT_VAL_138 ((unsigned) (PTRACE_PEEKUSR_AREA)) + #define XLAT_STR_138 STRINGIFY(PTRACE_PEEKUSR_AREA) +#else #if defined(PTRACE_PEEKUSR_AREA) || (defined(HAVE_DECL_PTRACE_PEEKUSR_AREA) && HAVE_DECL_PTRACE_PEEKUSR_AREA) XLAT(PTRACE_PEEKUSR_AREA), + #define XLAT_VAL_139 ((unsigned) (PTRACE_PEEKUSR_AREA)) + #define XLAT_STR_139 STRINGIFY(PTRACE_PEEKUSR_AREA) #endif +#endif +#if defined __s390__ + XLAT(PTRACE_POKEUSR_AREA), + #define XLAT_VAL_140 ((unsigned) (PTRACE_POKEUSR_AREA)) + #define XLAT_STR_140 STRINGIFY(PTRACE_POKEUSR_AREA) +#else #if defined(PTRACE_POKEUSR_AREA) || (defined(HAVE_DECL_PTRACE_POKEUSR_AREA) && HAVE_DECL_PTRACE_POKEUSR_AREA) XLAT(PTRACE_POKEUSR_AREA), + #define XLAT_VAL_141 ((unsigned) (PTRACE_POKEUSR_AREA)) + #define XLAT_STR_141 STRINGIFY(PTRACE_POKEUSR_AREA) +#endif #endif +#if defined __s390__ + XLAT(PTRACE_PEEKTEXT_AREA), + #define XLAT_VAL_142 ((unsigned) (PTRACE_PEEKTEXT_AREA)) + #define XLAT_STR_142 STRINGIFY(PTRACE_PEEKTEXT_AREA) +#else #if defined(PTRACE_PEEKTEXT_AREA) || (defined(HAVE_DECL_PTRACE_PEEKTEXT_AREA) && HAVE_DECL_PTRACE_PEEKTEXT_AREA) XLAT(PTRACE_PEEKTEXT_AREA), + #define XLAT_VAL_143 ((unsigned) (PTRACE_PEEKTEXT_AREA)) + #define XLAT_STR_143 STRINGIFY(PTRACE_PEEKTEXT_AREA) #endif +#endif +#if defined __s390__ + XLAT(PTRACE_PEEKDATA_AREA), + #define XLAT_VAL_144 ((unsigned) (PTRACE_PEEKDATA_AREA)) + #define XLAT_STR_144 STRINGIFY(PTRACE_PEEKDATA_AREA) +#else #if defined(PTRACE_PEEKDATA_AREA) || (defined(HAVE_DECL_PTRACE_PEEKDATA_AREA) && HAVE_DECL_PTRACE_PEEKDATA_AREA) XLAT(PTRACE_PEEKDATA_AREA), + #define XLAT_VAL_145 ((unsigned) (PTRACE_PEEKDATA_AREA)) + #define XLAT_STR_145 STRINGIFY(PTRACE_PEEKDATA_AREA) +#endif #endif +#if defined __s390__ + XLAT(PTRACE_POKETEXT_AREA), + #define XLAT_VAL_146 ((unsigned) (PTRACE_POKETEXT_AREA)) + #define XLAT_STR_146 STRINGIFY(PTRACE_POKETEXT_AREA) +#else #if defined(PTRACE_POKETEXT_AREA) || (defined(HAVE_DECL_PTRACE_POKETEXT_AREA) && HAVE_DECL_PTRACE_POKETEXT_AREA) XLAT(PTRACE_POKETEXT_AREA), + #define XLAT_VAL_147 ((unsigned) (PTRACE_POKETEXT_AREA)) + #define XLAT_STR_147 STRINGIFY(PTRACE_POKETEXT_AREA) +#endif #endif +#if defined __s390__ + XLAT(PTRACE_POKEDATA_AREA), + #define XLAT_VAL_148 ((unsigned) (PTRACE_POKEDATA_AREA)) + #define XLAT_STR_148 STRINGIFY(PTRACE_POKEDATA_AREA) +#else #if defined(PTRACE_POKEDATA_AREA) || (defined(HAVE_DECL_PTRACE_POKEDATA_AREA) && HAVE_DECL_PTRACE_POKEDATA_AREA) XLAT(PTRACE_POKEDATA_AREA), + #define XLAT_VAL_149 ((unsigned) (PTRACE_POKEDATA_AREA)) + #define XLAT_STR_149 STRINGIFY(PTRACE_POKEDATA_AREA) #endif +#endif +#if defined __s390__ + XLAT(PTRACE_GET_LAST_BREAK), + #define XLAT_VAL_150 ((unsigned) (PTRACE_GET_LAST_BREAK)) + #define XLAT_STR_150 STRINGIFY(PTRACE_GET_LAST_BREAK) +#else #if defined(PTRACE_GET_LAST_BREAK) || (defined(HAVE_DECL_PTRACE_GET_LAST_BREAK) && HAVE_DECL_PTRACE_GET_LAST_BREAK) XLAT(PTRACE_GET_LAST_BREAK), + #define XLAT_VAL_151 ((unsigned) (PTRACE_GET_LAST_BREAK)) + #define XLAT_STR_151 STRINGIFY(PTRACE_GET_LAST_BREAK) +#endif #endif +#if defined __s390__ + XLAT(PTRACE_PEEK_SYSTEM_CALL), + #define XLAT_VAL_152 ((unsigned) (PTRACE_PEEK_SYSTEM_CALL)) + #define XLAT_STR_152 STRINGIFY(PTRACE_PEEK_SYSTEM_CALL) +#else #if defined(PTRACE_PEEK_SYSTEM_CALL) || (defined(HAVE_DECL_PTRACE_PEEK_SYSTEM_CALL) && HAVE_DECL_PTRACE_PEEK_SYSTEM_CALL) XLAT(PTRACE_PEEK_SYSTEM_CALL), + #define XLAT_VAL_153 ((unsigned) (PTRACE_PEEK_SYSTEM_CALL)) + #define XLAT_STR_153 STRINGIFY(PTRACE_PEEK_SYSTEM_CALL) +#endif #endif +#if defined __s390__ + XLAT(PTRACE_POKE_SYSTEM_CALL), + #define XLAT_VAL_154 ((unsigned) (PTRACE_POKE_SYSTEM_CALL)) + #define XLAT_STR_154 STRINGIFY(PTRACE_POKE_SYSTEM_CALL) +#else #if defined(PTRACE_POKE_SYSTEM_CALL) || (defined(HAVE_DECL_PTRACE_POKE_SYSTEM_CALL) && HAVE_DECL_PTRACE_POKE_SYSTEM_CALL) XLAT(PTRACE_POKE_SYSTEM_CALL), + #define XLAT_VAL_155 ((unsigned) (PTRACE_POKE_SYSTEM_CALL)) + #define XLAT_STR_155 STRINGIFY(PTRACE_POKE_SYSTEM_CALL) #endif +#endif +#if defined __s390__ + XLAT(PTRACE_ENABLE_TE), + #define XLAT_VAL_156 ((unsigned) (PTRACE_ENABLE_TE)) + #define XLAT_STR_156 STRINGIFY(PTRACE_ENABLE_TE) +#else #if defined(PTRACE_ENABLE_TE) || (defined(HAVE_DECL_PTRACE_ENABLE_TE) && HAVE_DECL_PTRACE_ENABLE_TE) XLAT(PTRACE_ENABLE_TE), + #define XLAT_VAL_157 ((unsigned) (PTRACE_ENABLE_TE)) + #define XLAT_STR_157 STRINGIFY(PTRACE_ENABLE_TE) +#endif #endif +#if defined __s390__ + XLAT(PTRACE_DISABLE_TE), + #define XLAT_VAL_158 ((unsigned) (PTRACE_DISABLE_TE)) + #define XLAT_STR_158 STRINGIFY(PTRACE_DISABLE_TE) +#else #if defined(PTRACE_DISABLE_TE) || (defined(HAVE_DECL_PTRACE_DISABLE_TE) && HAVE_DECL_PTRACE_DISABLE_TE) XLAT(PTRACE_DISABLE_TE), + #define XLAT_VAL_159 ((unsigned) (PTRACE_DISABLE_TE)) + #define XLAT_STR_159 STRINGIFY(PTRACE_DISABLE_TE) +#endif #endif +#if defined __s390__ + XLAT(PTRACE_TE_ABORT_RAND), + #define XLAT_VAL_160 ((unsigned) (PTRACE_TE_ABORT_RAND)) + #define XLAT_STR_160 STRINGIFY(PTRACE_TE_ABORT_RAND) +#else #if defined(PTRACE_TE_ABORT_RAND) || (defined(HAVE_DECL_PTRACE_TE_ABORT_RAND) && HAVE_DECL_PTRACE_TE_ABORT_RAND) XLAT(PTRACE_TE_ABORT_RAND), + #define XLAT_VAL_161 ((unsigned) (PTRACE_TE_ABORT_RAND)) + #define XLAT_STR_161 STRINGIFY(PTRACE_TE_ABORT_RAND) #endif +#endif + +#if defined __sh__ + XLAT(PTRACE_GETDSPREGS), + #define XLAT_VAL_162 ((unsigned) (PTRACE_GETDSPREGS)) + #define XLAT_STR_162 STRINGIFY(PTRACE_GETDSPREGS) +#else #if defined(PTRACE_GETDSPREGS) || (defined(HAVE_DECL_PTRACE_GETDSPREGS) && HAVE_DECL_PTRACE_GETDSPREGS) XLAT(PTRACE_GETDSPREGS), + #define XLAT_VAL_163 ((unsigned) (PTRACE_GETDSPREGS)) + #define XLAT_STR_163 STRINGIFY(PTRACE_GETDSPREGS) #endif +#endif +#if defined __sh__ + XLAT(PTRACE_SETDSPREGS), + #define XLAT_VAL_164 ((unsigned) (PTRACE_SETDSPREGS)) + #define XLAT_STR_164 STRINGIFY(PTRACE_SETDSPREGS) +#else #if defined(PTRACE_SETDSPREGS) || (defined(HAVE_DECL_PTRACE_SETDSPREGS) && HAVE_DECL_PTRACE_SETDSPREGS) XLAT(PTRACE_SETDSPREGS), + #define XLAT_VAL_165 ((unsigned) (PTRACE_SETDSPREGS)) + #define XLAT_STR_165 STRINGIFY(PTRACE_SETDSPREGS) +#endif #endif + +#if defined __sparc__ + XLAT(PTRACE_SPARC_DETACH), + #define XLAT_VAL_166 ((unsigned) (PTRACE_SPARC_DETACH)) + #define XLAT_STR_166 STRINGIFY(PTRACE_SPARC_DETACH) +#else #if defined(PTRACE_SPARC_DETACH) || (defined(HAVE_DECL_PTRACE_SPARC_DETACH) && HAVE_DECL_PTRACE_SPARC_DETACH) XLAT(PTRACE_SPARC_DETACH), + #define XLAT_VAL_167 ((unsigned) (PTRACE_SPARC_DETACH)) + #define XLAT_STR_167 STRINGIFY(PTRACE_SPARC_DETACH) +#endif #endif +#if defined __sparc__ + XLAT(PTRACE_READDATA), + #define XLAT_VAL_168 ((unsigned) (PTRACE_READDATA)) + #define XLAT_STR_168 STRINGIFY(PTRACE_READDATA) +#else #if defined(PTRACE_READDATA) || (defined(HAVE_DECL_PTRACE_READDATA) && HAVE_DECL_PTRACE_READDATA) XLAT(PTRACE_READDATA), + #define XLAT_VAL_169 ((unsigned) (PTRACE_READDATA)) + #define XLAT_STR_169 STRINGIFY(PTRACE_READDATA) +#endif #endif +#if defined __sparc__ + XLAT(PTRACE_WRITEDATA), + #define XLAT_VAL_170 ((unsigned) (PTRACE_WRITEDATA)) + #define XLAT_STR_170 STRINGIFY(PTRACE_WRITEDATA) +#else #if defined(PTRACE_WRITEDATA) || (defined(HAVE_DECL_PTRACE_WRITEDATA) && HAVE_DECL_PTRACE_WRITEDATA) XLAT(PTRACE_WRITEDATA), + #define XLAT_VAL_171 ((unsigned) (PTRACE_WRITEDATA)) + #define XLAT_STR_171 STRINGIFY(PTRACE_WRITEDATA) #endif +#endif +#if defined __sparc__ + XLAT(PTRACE_READTEXT), + #define XLAT_VAL_172 ((unsigned) (PTRACE_READTEXT)) + #define XLAT_STR_172 STRINGIFY(PTRACE_READTEXT) +#else #if defined(PTRACE_READTEXT) || (defined(HAVE_DECL_PTRACE_READTEXT) && HAVE_DECL_PTRACE_READTEXT) XLAT(PTRACE_READTEXT), + #define XLAT_VAL_173 ((unsigned) (PTRACE_READTEXT)) + #define XLAT_STR_173 STRINGIFY(PTRACE_READTEXT) +#endif #endif +#if defined __sparc__ + XLAT(PTRACE_WRITETEXT), + #define XLAT_VAL_174 ((unsigned) (PTRACE_WRITETEXT)) + #define XLAT_STR_174 STRINGIFY(PTRACE_WRITETEXT) +#else #if defined(PTRACE_WRITETEXT) || (defined(HAVE_DECL_PTRACE_WRITETEXT) && HAVE_DECL_PTRACE_WRITETEXT) XLAT(PTRACE_WRITETEXT), + #define XLAT_VAL_175 ((unsigned) (PTRACE_WRITETEXT)) + #define XLAT_STR_175 STRINGIFY(PTRACE_WRITETEXT) #endif +#endif +#if defined __sparc__ + XLAT(PTRACE_GETFPAREGS), + #define XLAT_VAL_176 ((unsigned) (PTRACE_GETFPAREGS)) + #define XLAT_STR_176 STRINGIFY(PTRACE_GETFPAREGS) +#else #if defined(PTRACE_GETFPAREGS) || (defined(HAVE_DECL_PTRACE_GETFPAREGS) && HAVE_DECL_PTRACE_GETFPAREGS) XLAT(PTRACE_GETFPAREGS), + #define XLAT_VAL_177 ((unsigned) (PTRACE_GETFPAREGS)) + #define XLAT_STR_177 STRINGIFY(PTRACE_GETFPAREGS) +#endif #endif +#if defined __sparc__ + XLAT(PTRACE_SETFPAREGS), + #define XLAT_VAL_178 ((unsigned) (PTRACE_SETFPAREGS)) + #define XLAT_STR_178 STRINGIFY(PTRACE_SETFPAREGS) +#else #if defined(PTRACE_SETFPAREGS) || (defined(HAVE_DECL_PTRACE_SETFPAREGS) && HAVE_DECL_PTRACE_SETFPAREGS) XLAT(PTRACE_SETFPAREGS), + #define XLAT_VAL_179 ((unsigned) (PTRACE_SETFPAREGS)) + #define XLAT_STR_179 STRINGIFY(PTRACE_SETFPAREGS) #endif -#if defined(PTRACE_GETREGS64) || (defined(HAVE_DECL_PTRACE_GETREGS64) && HAVE_DECL_PTRACE_GETREGS64) - XLAT(PTRACE_GETREGS64), -#endif -#if defined(PTRACE_SETREGS64) || (defined(HAVE_DECL_PTRACE_SETREGS64) && HAVE_DECL_PTRACE_SETREGS64) - XLAT(PTRACE_SETREGS64), #endif +#if defined __sparc__ + XLAT(PTRACE_GETFPREGS64), + #define XLAT_VAL_180 ((unsigned) (PTRACE_GETFPREGS64)) + #define XLAT_STR_180 STRINGIFY(PTRACE_GETFPREGS64) +#else #if defined(PTRACE_GETFPREGS64) || (defined(HAVE_DECL_PTRACE_GETFPREGS64) && HAVE_DECL_PTRACE_GETFPREGS64) XLAT(PTRACE_GETFPREGS64), + #define XLAT_VAL_181 ((unsigned) (PTRACE_GETFPREGS64)) + #define XLAT_STR_181 STRINGIFY(PTRACE_GETFPREGS64) #endif +#endif +#if defined __sparc__ + XLAT(PTRACE_SETFPREGS64), + #define XLAT_VAL_182 ((unsigned) (PTRACE_SETFPREGS64)) + #define XLAT_STR_182 STRINGIFY(PTRACE_SETFPREGS64) +#else #if defined(PTRACE_SETFPREGS64) || (defined(HAVE_DECL_PTRACE_SETFPREGS64) && HAVE_DECL_PTRACE_SETFPREGS64) XLAT(PTRACE_SETFPREGS64), + #define XLAT_VAL_183 ((unsigned) (PTRACE_SETFPREGS64)) + #define XLAT_STR_183 STRINGIFY(PTRACE_SETFPREGS64) +#endif #endif + +#if defined __x86_64__ || defined __i386__ + XLAT(PTRACE_ARCH_PRCTL), + #define XLAT_VAL_184 ((unsigned) (PTRACE_ARCH_PRCTL)) + #define XLAT_STR_184 STRINGIFY(PTRACE_ARCH_PRCTL) +#else #if defined(PTRACE_ARCH_PRCTL) || (defined(HAVE_DECL_PTRACE_ARCH_PRCTL) && HAVE_DECL_PTRACE_ARCH_PRCTL) XLAT(PTRACE_ARCH_PRCTL), + #define XLAT_VAL_185 ((unsigned) (PTRACE_ARCH_PRCTL)) + #define XLAT_STR_185 STRINGIFY(PTRACE_ARCH_PRCTL) #endif -#if defined(PTRACE_SYSEMU) || (defined(HAVE_DECL_PTRACE_SYSEMU) && HAVE_DECL_PTRACE_SYSEMU) - XLAT(PTRACE_SYSEMU), -#endif -#if defined(PTRACE_SYSEMU_SINGLESTEP) || (defined(HAVE_DECL_PTRACE_SYSEMU_SINGLESTEP) && HAVE_DECL_PTRACE_SYSEMU_SINGLESTEP) - XLAT(PTRACE_SYSEMU_SINGLESTEP), #endif + +#if defined __xtensa__ + XLAT(PTRACE_GETXTREGS), + #define XLAT_VAL_186 ((unsigned) (PTRACE_GETXTREGS)) + #define XLAT_STR_186 STRINGIFY(PTRACE_GETXTREGS) +#else #if defined(PTRACE_GETXTREGS) || (defined(HAVE_DECL_PTRACE_GETXTREGS) && HAVE_DECL_PTRACE_GETXTREGS) XLAT(PTRACE_GETXTREGS), + #define XLAT_VAL_187 ((unsigned) (PTRACE_GETXTREGS)) + #define XLAT_STR_187 STRINGIFY(PTRACE_GETXTREGS) +#endif #endif +#if defined __xtensa__ + XLAT(PTRACE_SETXTREGS), + #define XLAT_VAL_188 ((unsigned) (PTRACE_SETXTREGS)) + #define XLAT_STR_188 STRINGIFY(PTRACE_SETXTREGS) +#else #if defined(PTRACE_SETXTREGS) || (defined(HAVE_DECL_PTRACE_SETXTREGS) && HAVE_DECL_PTRACE_SETXTREGS) XLAT(PTRACE_SETXTREGS), + #define XLAT_VAL_189 ((unsigned) (PTRACE_SETXTREGS)) + #define XLAT_STR_189 STRINGIFY(PTRACE_SETXTREGS) +#endif #endif - XLAT_END }; +const struct xlat ptrace_cmds[1] = { { + .data = ptrace_cmds_xdata, + .size = ARRAY_SIZE(ptrace_cmds_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif +# ifdef XLAT_VAL_41 + | XLAT_VAL_41 +# endif +# ifdef XLAT_VAL_42 + | XLAT_VAL_42 +# endif +# ifdef XLAT_VAL_43 + | XLAT_VAL_43 +# endif +# ifdef XLAT_VAL_44 + | XLAT_VAL_44 +# endif +# ifdef XLAT_VAL_45 + | XLAT_VAL_45 +# endif +# ifdef XLAT_VAL_46 + | XLAT_VAL_46 +# endif +# ifdef XLAT_VAL_47 + | XLAT_VAL_47 +# endif +# ifdef XLAT_VAL_48 + | XLAT_VAL_48 +# endif +# ifdef XLAT_VAL_49 + | XLAT_VAL_49 +# endif +# ifdef XLAT_VAL_50 + | XLAT_VAL_50 +# endif +# ifdef XLAT_VAL_51 + | XLAT_VAL_51 +# endif +# ifdef XLAT_VAL_52 + | XLAT_VAL_52 +# endif +# ifdef XLAT_VAL_53 + | XLAT_VAL_53 +# endif +# ifdef XLAT_VAL_54 + | XLAT_VAL_54 +# endif +# ifdef XLAT_VAL_55 + | XLAT_VAL_55 +# endif +# ifdef XLAT_VAL_56 + | XLAT_VAL_56 +# endif +# ifdef XLAT_VAL_57 + | XLAT_VAL_57 +# endif +# ifdef XLAT_VAL_58 + | XLAT_VAL_58 +# endif +# ifdef XLAT_VAL_59 + | XLAT_VAL_59 +# endif +# ifdef XLAT_VAL_60 + | XLAT_VAL_60 +# endif +# ifdef XLAT_VAL_61 + | XLAT_VAL_61 +# endif +# ifdef XLAT_VAL_62 + | XLAT_VAL_62 +# endif +# ifdef XLAT_VAL_63 + | XLAT_VAL_63 +# endif +# ifdef XLAT_VAL_64 + | XLAT_VAL_64 +# endif +# ifdef XLAT_VAL_65 + | XLAT_VAL_65 +# endif +# ifdef XLAT_VAL_66 + | XLAT_VAL_66 +# endif +# ifdef XLAT_VAL_67 + | XLAT_VAL_67 +# endif +# ifdef XLAT_VAL_68 + | XLAT_VAL_68 +# endif +# ifdef XLAT_VAL_69 + | XLAT_VAL_69 +# endif +# ifdef XLAT_VAL_70 + | XLAT_VAL_70 +# endif +# ifdef XLAT_VAL_71 + | XLAT_VAL_71 +# endif +# ifdef XLAT_VAL_72 + | XLAT_VAL_72 +# endif +# ifdef XLAT_VAL_73 + | XLAT_VAL_73 +# endif +# ifdef XLAT_VAL_74 + | XLAT_VAL_74 +# endif +# ifdef XLAT_VAL_75 + | XLAT_VAL_75 +# endif +# ifdef XLAT_VAL_76 + | XLAT_VAL_76 +# endif +# ifdef XLAT_VAL_77 + | XLAT_VAL_77 +# endif +# ifdef XLAT_VAL_78 + | XLAT_VAL_78 +# endif +# ifdef XLAT_VAL_79 + | XLAT_VAL_79 +# endif +# ifdef XLAT_VAL_80 + | XLAT_VAL_80 +# endif +# ifdef XLAT_VAL_81 + | XLAT_VAL_81 +# endif +# ifdef XLAT_VAL_82 + | XLAT_VAL_82 +# endif +# ifdef XLAT_VAL_83 + | XLAT_VAL_83 +# endif +# ifdef XLAT_VAL_84 + | XLAT_VAL_84 +# endif +# ifdef XLAT_VAL_85 + | XLAT_VAL_85 +# endif +# ifdef XLAT_VAL_86 + | XLAT_VAL_86 +# endif +# ifdef XLAT_VAL_87 + | XLAT_VAL_87 +# endif +# ifdef XLAT_VAL_88 + | XLAT_VAL_88 +# endif +# ifdef XLAT_VAL_89 + | XLAT_VAL_89 +# endif +# ifdef XLAT_VAL_90 + | XLAT_VAL_90 +# endif +# ifdef XLAT_VAL_91 + | XLAT_VAL_91 +# endif +# ifdef XLAT_VAL_92 + | XLAT_VAL_92 +# endif +# ifdef XLAT_VAL_93 + | XLAT_VAL_93 +# endif +# ifdef XLAT_VAL_94 + | XLAT_VAL_94 +# endif +# ifdef XLAT_VAL_95 + | XLAT_VAL_95 +# endif +# ifdef XLAT_VAL_96 + | XLAT_VAL_96 +# endif +# ifdef XLAT_VAL_97 + | XLAT_VAL_97 +# endif +# ifdef XLAT_VAL_98 + | XLAT_VAL_98 +# endif +# ifdef XLAT_VAL_99 + | XLAT_VAL_99 +# endif +# ifdef XLAT_VAL_100 + | XLAT_VAL_100 +# endif +# ifdef XLAT_VAL_101 + | XLAT_VAL_101 +# endif +# ifdef XLAT_VAL_102 + | XLAT_VAL_102 +# endif +# ifdef XLAT_VAL_103 + | XLAT_VAL_103 +# endif +# ifdef XLAT_VAL_104 + | XLAT_VAL_104 +# endif +# ifdef XLAT_VAL_105 + | XLAT_VAL_105 +# endif +# ifdef XLAT_VAL_106 + | XLAT_VAL_106 +# endif +# ifdef XLAT_VAL_107 + | XLAT_VAL_107 +# endif +# ifdef XLAT_VAL_108 + | XLAT_VAL_108 +# endif +# ifdef XLAT_VAL_109 + | XLAT_VAL_109 +# endif +# ifdef XLAT_VAL_110 + | XLAT_VAL_110 +# endif +# ifdef XLAT_VAL_111 + | XLAT_VAL_111 +# endif +# ifdef XLAT_VAL_112 + | XLAT_VAL_112 +# endif +# ifdef XLAT_VAL_113 + | XLAT_VAL_113 +# endif +# ifdef XLAT_VAL_114 + | XLAT_VAL_114 +# endif +# ifdef XLAT_VAL_115 + | XLAT_VAL_115 +# endif +# ifdef XLAT_VAL_116 + | XLAT_VAL_116 +# endif +# ifdef XLAT_VAL_117 + | XLAT_VAL_117 +# endif +# ifdef XLAT_VAL_118 + | XLAT_VAL_118 +# endif +# ifdef XLAT_VAL_119 + | XLAT_VAL_119 +# endif +# ifdef XLAT_VAL_120 + | XLAT_VAL_120 +# endif +# ifdef XLAT_VAL_121 + | XLAT_VAL_121 +# endif +# ifdef XLAT_VAL_122 + | XLAT_VAL_122 +# endif +# ifdef XLAT_VAL_123 + | XLAT_VAL_123 +# endif +# ifdef XLAT_VAL_124 + | XLAT_VAL_124 +# endif +# ifdef XLAT_VAL_125 + | XLAT_VAL_125 +# endif +# ifdef XLAT_VAL_126 + | XLAT_VAL_126 +# endif +# ifdef XLAT_VAL_127 + | XLAT_VAL_127 +# endif +# ifdef XLAT_VAL_128 + | XLAT_VAL_128 +# endif +# ifdef XLAT_VAL_129 + | XLAT_VAL_129 +# endif +# ifdef XLAT_VAL_130 + | XLAT_VAL_130 +# endif +# ifdef XLAT_VAL_131 + | XLAT_VAL_131 +# endif +# ifdef XLAT_VAL_132 + | XLAT_VAL_132 +# endif +# ifdef XLAT_VAL_133 + | XLAT_VAL_133 +# endif +# ifdef XLAT_VAL_134 + | XLAT_VAL_134 +# endif +# ifdef XLAT_VAL_135 + | XLAT_VAL_135 +# endif +# ifdef XLAT_VAL_136 + | XLAT_VAL_136 +# endif +# ifdef XLAT_VAL_137 + | XLAT_VAL_137 +# endif +# ifdef XLAT_VAL_138 + | XLAT_VAL_138 +# endif +# ifdef XLAT_VAL_139 + | XLAT_VAL_139 +# endif +# ifdef XLAT_VAL_140 + | XLAT_VAL_140 +# endif +# ifdef XLAT_VAL_141 + | XLAT_VAL_141 +# endif +# ifdef XLAT_VAL_142 + | XLAT_VAL_142 +# endif +# ifdef XLAT_VAL_143 + | XLAT_VAL_143 +# endif +# ifdef XLAT_VAL_144 + | XLAT_VAL_144 +# endif +# ifdef XLAT_VAL_145 + | XLAT_VAL_145 +# endif +# ifdef XLAT_VAL_146 + | XLAT_VAL_146 +# endif +# ifdef XLAT_VAL_147 + | XLAT_VAL_147 +# endif +# ifdef XLAT_VAL_148 + | XLAT_VAL_148 +# endif +# ifdef XLAT_VAL_149 + | XLAT_VAL_149 +# endif +# ifdef XLAT_VAL_150 + | XLAT_VAL_150 +# endif +# ifdef XLAT_VAL_151 + | XLAT_VAL_151 +# endif +# ifdef XLAT_VAL_152 + | XLAT_VAL_152 +# endif +# ifdef XLAT_VAL_153 + | XLAT_VAL_153 +# endif +# ifdef XLAT_VAL_154 + | XLAT_VAL_154 +# endif +# ifdef XLAT_VAL_155 + | XLAT_VAL_155 +# endif +# ifdef XLAT_VAL_156 + | XLAT_VAL_156 +# endif +# ifdef XLAT_VAL_157 + | XLAT_VAL_157 +# endif +# ifdef XLAT_VAL_158 + | XLAT_VAL_158 +# endif +# ifdef XLAT_VAL_159 + | XLAT_VAL_159 +# endif +# ifdef XLAT_VAL_160 + | XLAT_VAL_160 +# endif +# ifdef XLAT_VAL_161 + | XLAT_VAL_161 +# endif +# ifdef XLAT_VAL_162 + | XLAT_VAL_162 +# endif +# ifdef XLAT_VAL_163 + | XLAT_VAL_163 +# endif +# ifdef XLAT_VAL_164 + | XLAT_VAL_164 +# endif +# ifdef XLAT_VAL_165 + | XLAT_VAL_165 +# endif +# ifdef XLAT_VAL_166 + | XLAT_VAL_166 +# endif +# ifdef XLAT_VAL_167 + | XLAT_VAL_167 +# endif +# ifdef XLAT_VAL_168 + | XLAT_VAL_168 +# endif +# ifdef XLAT_VAL_169 + | XLAT_VAL_169 +# endif +# ifdef XLAT_VAL_170 + | XLAT_VAL_170 +# endif +# ifdef XLAT_VAL_171 + | XLAT_VAL_171 +# endif +# ifdef XLAT_VAL_172 + | XLAT_VAL_172 +# endif +# ifdef XLAT_VAL_173 + | XLAT_VAL_173 +# endif +# ifdef XLAT_VAL_174 + | XLAT_VAL_174 +# endif +# ifdef XLAT_VAL_175 + | XLAT_VAL_175 +# endif +# ifdef XLAT_VAL_176 + | XLAT_VAL_176 +# endif +# ifdef XLAT_VAL_177 + | XLAT_VAL_177 +# endif +# ifdef XLAT_VAL_178 + | XLAT_VAL_178 +# endif +# ifdef XLAT_VAL_179 + | XLAT_VAL_179 +# endif +# ifdef XLAT_VAL_180 + | XLAT_VAL_180 +# endif +# ifdef XLAT_VAL_181 + | XLAT_VAL_181 +# endif +# ifdef XLAT_VAL_182 + | XLAT_VAL_182 +# endif +# ifdef XLAT_VAL_183 + | XLAT_VAL_183 +# endif +# ifdef XLAT_VAL_184 + | XLAT_VAL_184 +# endif +# ifdef XLAT_VAL_185 + | XLAT_VAL_185 +# endif +# ifdef XLAT_VAL_186 + | XLAT_VAL_186 +# endif +# ifdef XLAT_VAL_187 + | XLAT_VAL_187 +# endif +# ifdef XLAT_VAL_188 + | XLAT_VAL_188 +# endif +# ifdef XLAT_VAL_189 + | XLAT_VAL_189 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif +# ifdef XLAT_STR_41 + + sizeof(XLAT_STR_41) +# endif +# ifdef XLAT_STR_42 + + sizeof(XLAT_STR_42) +# endif +# ifdef XLAT_STR_43 + + sizeof(XLAT_STR_43) +# endif +# ifdef XLAT_STR_44 + + sizeof(XLAT_STR_44) +# endif +# ifdef XLAT_STR_45 + + sizeof(XLAT_STR_45) +# endif +# ifdef XLAT_STR_46 + + sizeof(XLAT_STR_46) +# endif +# ifdef XLAT_STR_47 + + sizeof(XLAT_STR_47) +# endif +# ifdef XLAT_STR_48 + + sizeof(XLAT_STR_48) +# endif +# ifdef XLAT_STR_49 + + sizeof(XLAT_STR_49) +# endif +# ifdef XLAT_STR_50 + + sizeof(XLAT_STR_50) +# endif +# ifdef XLAT_STR_51 + + sizeof(XLAT_STR_51) +# endif +# ifdef XLAT_STR_52 + + sizeof(XLAT_STR_52) +# endif +# ifdef XLAT_STR_53 + + sizeof(XLAT_STR_53) +# endif +# ifdef XLAT_STR_54 + + sizeof(XLAT_STR_54) +# endif +# ifdef XLAT_STR_55 + + sizeof(XLAT_STR_55) +# endif +# ifdef XLAT_STR_56 + + sizeof(XLAT_STR_56) +# endif +# ifdef XLAT_STR_57 + + sizeof(XLAT_STR_57) +# endif +# ifdef XLAT_STR_58 + + sizeof(XLAT_STR_58) +# endif +# ifdef XLAT_STR_59 + + sizeof(XLAT_STR_59) +# endif +# ifdef XLAT_STR_60 + + sizeof(XLAT_STR_60) +# endif +# ifdef XLAT_STR_61 + + sizeof(XLAT_STR_61) +# endif +# ifdef XLAT_STR_62 + + sizeof(XLAT_STR_62) +# endif +# ifdef XLAT_STR_63 + + sizeof(XLAT_STR_63) +# endif +# ifdef XLAT_STR_64 + + sizeof(XLAT_STR_64) +# endif +# ifdef XLAT_STR_65 + + sizeof(XLAT_STR_65) +# endif +# ifdef XLAT_STR_66 + + sizeof(XLAT_STR_66) +# endif +# ifdef XLAT_STR_67 + + sizeof(XLAT_STR_67) +# endif +# ifdef XLAT_STR_68 + + sizeof(XLAT_STR_68) +# endif +# ifdef XLAT_STR_69 + + sizeof(XLAT_STR_69) +# endif +# ifdef XLAT_STR_70 + + sizeof(XLAT_STR_70) +# endif +# ifdef XLAT_STR_71 + + sizeof(XLAT_STR_71) +# endif +# ifdef XLAT_STR_72 + + sizeof(XLAT_STR_72) +# endif +# ifdef XLAT_STR_73 + + sizeof(XLAT_STR_73) +# endif +# ifdef XLAT_STR_74 + + sizeof(XLAT_STR_74) +# endif +# ifdef XLAT_STR_75 + + sizeof(XLAT_STR_75) +# endif +# ifdef XLAT_STR_76 + + sizeof(XLAT_STR_76) +# endif +# ifdef XLAT_STR_77 + + sizeof(XLAT_STR_77) +# endif +# ifdef XLAT_STR_78 + + sizeof(XLAT_STR_78) +# endif +# ifdef XLAT_STR_79 + + sizeof(XLAT_STR_79) +# endif +# ifdef XLAT_STR_80 + + sizeof(XLAT_STR_80) +# endif +# ifdef XLAT_STR_81 + + sizeof(XLAT_STR_81) +# endif +# ifdef XLAT_STR_82 + + sizeof(XLAT_STR_82) +# endif +# ifdef XLAT_STR_83 + + sizeof(XLAT_STR_83) +# endif +# ifdef XLAT_STR_84 + + sizeof(XLAT_STR_84) +# endif +# ifdef XLAT_STR_85 + + sizeof(XLAT_STR_85) +# endif +# ifdef XLAT_STR_86 + + sizeof(XLAT_STR_86) +# endif +# ifdef XLAT_STR_87 + + sizeof(XLAT_STR_87) +# endif +# ifdef XLAT_STR_88 + + sizeof(XLAT_STR_88) +# endif +# ifdef XLAT_STR_89 + + sizeof(XLAT_STR_89) +# endif +# ifdef XLAT_STR_90 + + sizeof(XLAT_STR_90) +# endif +# ifdef XLAT_STR_91 + + sizeof(XLAT_STR_91) +# endif +# ifdef XLAT_STR_92 + + sizeof(XLAT_STR_92) +# endif +# ifdef XLAT_STR_93 + + sizeof(XLAT_STR_93) +# endif +# ifdef XLAT_STR_94 + + sizeof(XLAT_STR_94) +# endif +# ifdef XLAT_STR_95 + + sizeof(XLAT_STR_95) +# endif +# ifdef XLAT_STR_96 + + sizeof(XLAT_STR_96) +# endif +# ifdef XLAT_STR_97 + + sizeof(XLAT_STR_97) +# endif +# ifdef XLAT_STR_98 + + sizeof(XLAT_STR_98) +# endif +# ifdef XLAT_STR_99 + + sizeof(XLAT_STR_99) +# endif +# ifdef XLAT_STR_100 + + sizeof(XLAT_STR_100) +# endif +# ifdef XLAT_STR_101 + + sizeof(XLAT_STR_101) +# endif +# ifdef XLAT_STR_102 + + sizeof(XLAT_STR_102) +# endif +# ifdef XLAT_STR_103 + + sizeof(XLAT_STR_103) +# endif +# ifdef XLAT_STR_104 + + sizeof(XLAT_STR_104) +# endif +# ifdef XLAT_STR_105 + + sizeof(XLAT_STR_105) +# endif +# ifdef XLAT_STR_106 + + sizeof(XLAT_STR_106) +# endif +# ifdef XLAT_STR_107 + + sizeof(XLAT_STR_107) +# endif +# ifdef XLAT_STR_108 + + sizeof(XLAT_STR_108) +# endif +# ifdef XLAT_STR_109 + + sizeof(XLAT_STR_109) +# endif +# ifdef XLAT_STR_110 + + sizeof(XLAT_STR_110) +# endif +# ifdef XLAT_STR_111 + + sizeof(XLAT_STR_111) +# endif +# ifdef XLAT_STR_112 + + sizeof(XLAT_STR_112) +# endif +# ifdef XLAT_STR_113 + + sizeof(XLAT_STR_113) +# endif +# ifdef XLAT_STR_114 + + sizeof(XLAT_STR_114) +# endif +# ifdef XLAT_STR_115 + + sizeof(XLAT_STR_115) +# endif +# ifdef XLAT_STR_116 + + sizeof(XLAT_STR_116) +# endif +# ifdef XLAT_STR_117 + + sizeof(XLAT_STR_117) +# endif +# ifdef XLAT_STR_118 + + sizeof(XLAT_STR_118) +# endif +# ifdef XLAT_STR_119 + + sizeof(XLAT_STR_119) +# endif +# ifdef XLAT_STR_120 + + sizeof(XLAT_STR_120) +# endif +# ifdef XLAT_STR_121 + + sizeof(XLAT_STR_121) +# endif +# ifdef XLAT_STR_122 + + sizeof(XLAT_STR_122) +# endif +# ifdef XLAT_STR_123 + + sizeof(XLAT_STR_123) +# endif +# ifdef XLAT_STR_124 + + sizeof(XLAT_STR_124) +# endif +# ifdef XLAT_STR_125 + + sizeof(XLAT_STR_125) +# endif +# ifdef XLAT_STR_126 + + sizeof(XLAT_STR_126) +# endif +# ifdef XLAT_STR_127 + + sizeof(XLAT_STR_127) +# endif +# ifdef XLAT_STR_128 + + sizeof(XLAT_STR_128) +# endif +# ifdef XLAT_STR_129 + + sizeof(XLAT_STR_129) +# endif +# ifdef XLAT_STR_130 + + sizeof(XLAT_STR_130) +# endif +# ifdef XLAT_STR_131 + + sizeof(XLAT_STR_131) +# endif +# ifdef XLAT_STR_132 + + sizeof(XLAT_STR_132) +# endif +# ifdef XLAT_STR_133 + + sizeof(XLAT_STR_133) +# endif +# ifdef XLAT_STR_134 + + sizeof(XLAT_STR_134) +# endif +# ifdef XLAT_STR_135 + + sizeof(XLAT_STR_135) +# endif +# ifdef XLAT_STR_136 + + sizeof(XLAT_STR_136) +# endif +# ifdef XLAT_STR_137 + + sizeof(XLAT_STR_137) +# endif +# ifdef XLAT_STR_138 + + sizeof(XLAT_STR_138) +# endif +# ifdef XLAT_STR_139 + + sizeof(XLAT_STR_139) +# endif +# ifdef XLAT_STR_140 + + sizeof(XLAT_STR_140) +# endif +# ifdef XLAT_STR_141 + + sizeof(XLAT_STR_141) +# endif +# ifdef XLAT_STR_142 + + sizeof(XLAT_STR_142) +# endif +# ifdef XLAT_STR_143 + + sizeof(XLAT_STR_143) +# endif +# ifdef XLAT_STR_144 + + sizeof(XLAT_STR_144) +# endif +# ifdef XLAT_STR_145 + + sizeof(XLAT_STR_145) +# endif +# ifdef XLAT_STR_146 + + sizeof(XLAT_STR_146) +# endif +# ifdef XLAT_STR_147 + + sizeof(XLAT_STR_147) +# endif +# ifdef XLAT_STR_148 + + sizeof(XLAT_STR_148) +# endif +# ifdef XLAT_STR_149 + + sizeof(XLAT_STR_149) +# endif +# ifdef XLAT_STR_150 + + sizeof(XLAT_STR_150) +# endif +# ifdef XLAT_STR_151 + + sizeof(XLAT_STR_151) +# endif +# ifdef XLAT_STR_152 + + sizeof(XLAT_STR_152) +# endif +# ifdef XLAT_STR_153 + + sizeof(XLAT_STR_153) +# endif +# ifdef XLAT_STR_154 + + sizeof(XLAT_STR_154) +# endif +# ifdef XLAT_STR_155 + + sizeof(XLAT_STR_155) +# endif +# ifdef XLAT_STR_156 + + sizeof(XLAT_STR_156) +# endif +# ifdef XLAT_STR_157 + + sizeof(XLAT_STR_157) +# endif +# ifdef XLAT_STR_158 + + sizeof(XLAT_STR_158) +# endif +# ifdef XLAT_STR_159 + + sizeof(XLAT_STR_159) +# endif +# ifdef XLAT_STR_160 + + sizeof(XLAT_STR_160) +# endif +# ifdef XLAT_STR_161 + + sizeof(XLAT_STR_161) +# endif +# ifdef XLAT_STR_162 + + sizeof(XLAT_STR_162) +# endif +# ifdef XLAT_STR_163 + + sizeof(XLAT_STR_163) +# endif +# ifdef XLAT_STR_164 + + sizeof(XLAT_STR_164) +# endif +# ifdef XLAT_STR_165 + + sizeof(XLAT_STR_165) +# endif +# ifdef XLAT_STR_166 + + sizeof(XLAT_STR_166) +# endif +# ifdef XLAT_STR_167 + + sizeof(XLAT_STR_167) +# endif +# ifdef XLAT_STR_168 + + sizeof(XLAT_STR_168) +# endif +# ifdef XLAT_STR_169 + + sizeof(XLAT_STR_169) +# endif +# ifdef XLAT_STR_170 + + sizeof(XLAT_STR_170) +# endif +# ifdef XLAT_STR_171 + + sizeof(XLAT_STR_171) +# endif +# ifdef XLAT_STR_172 + + sizeof(XLAT_STR_172) +# endif +# ifdef XLAT_STR_173 + + sizeof(XLAT_STR_173) +# endif +# ifdef XLAT_STR_174 + + sizeof(XLAT_STR_174) +# endif +# ifdef XLAT_STR_175 + + sizeof(XLAT_STR_175) +# endif +# ifdef XLAT_STR_176 + + sizeof(XLAT_STR_176) +# endif +# ifdef XLAT_STR_177 + + sizeof(XLAT_STR_177) +# endif +# ifdef XLAT_STR_178 + + sizeof(XLAT_STR_178) +# endif +# ifdef XLAT_STR_179 + + sizeof(XLAT_STR_179) +# endif +# ifdef XLAT_STR_180 + + sizeof(XLAT_STR_180) +# endif +# ifdef XLAT_STR_181 + + sizeof(XLAT_STR_181) +# endif +# ifdef XLAT_STR_182 + + sizeof(XLAT_STR_182) +# endif +# ifdef XLAT_STR_183 + + sizeof(XLAT_STR_183) +# endif +# ifdef XLAT_STR_184 + + sizeof(XLAT_STR_184) +# endif +# ifdef XLAT_STR_185 + + sizeof(XLAT_STR_185) +# endif +# ifdef XLAT_STR_186 + + sizeof(XLAT_STR_186) +# endif +# ifdef XLAT_STR_187 + + sizeof(XLAT_STR_187) +# endif +# ifdef XLAT_STR_188 + + sizeof(XLAT_STR_188) +# endif +# ifdef XLAT_STR_189 + + sizeof(XLAT_STR_189) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 +# undef XLAT_STR_41 +# undef XLAT_VAL_41 +# undef XLAT_STR_42 +# undef XLAT_VAL_42 +# undef XLAT_STR_43 +# undef XLAT_VAL_43 +# undef XLAT_STR_44 +# undef XLAT_VAL_44 +# undef XLAT_STR_45 +# undef XLAT_VAL_45 +# undef XLAT_STR_46 +# undef XLAT_VAL_46 +# undef XLAT_STR_47 +# undef XLAT_VAL_47 +# undef XLAT_STR_48 +# undef XLAT_VAL_48 +# undef XLAT_STR_49 +# undef XLAT_VAL_49 +# undef XLAT_STR_50 +# undef XLAT_VAL_50 +# undef XLAT_STR_51 +# undef XLAT_VAL_51 +# undef XLAT_STR_52 +# undef XLAT_VAL_52 +# undef XLAT_STR_53 +# undef XLAT_VAL_53 +# undef XLAT_STR_54 +# undef XLAT_VAL_54 +# undef XLAT_STR_55 +# undef XLAT_VAL_55 +# undef XLAT_STR_56 +# undef XLAT_VAL_56 +# undef XLAT_STR_57 +# undef XLAT_VAL_57 +# undef XLAT_STR_58 +# undef XLAT_VAL_58 +# undef XLAT_STR_59 +# undef XLAT_VAL_59 +# undef XLAT_STR_60 +# undef XLAT_VAL_60 +# undef XLAT_STR_61 +# undef XLAT_VAL_61 +# undef XLAT_STR_62 +# undef XLAT_VAL_62 +# undef XLAT_STR_63 +# undef XLAT_VAL_63 +# undef XLAT_STR_64 +# undef XLAT_VAL_64 +# undef XLAT_STR_65 +# undef XLAT_VAL_65 +# undef XLAT_STR_66 +# undef XLAT_VAL_66 +# undef XLAT_STR_67 +# undef XLAT_VAL_67 +# undef XLAT_STR_68 +# undef XLAT_VAL_68 +# undef XLAT_STR_69 +# undef XLAT_VAL_69 +# undef XLAT_STR_70 +# undef XLAT_VAL_70 +# undef XLAT_STR_71 +# undef XLAT_VAL_71 +# undef XLAT_STR_72 +# undef XLAT_VAL_72 +# undef XLAT_STR_73 +# undef XLAT_VAL_73 +# undef XLAT_STR_74 +# undef XLAT_VAL_74 +# undef XLAT_STR_75 +# undef XLAT_VAL_75 +# undef XLAT_STR_76 +# undef XLAT_VAL_76 +# undef XLAT_STR_77 +# undef XLAT_VAL_77 +# undef XLAT_STR_78 +# undef XLAT_VAL_78 +# undef XLAT_STR_79 +# undef XLAT_VAL_79 +# undef XLAT_STR_80 +# undef XLAT_VAL_80 +# undef XLAT_STR_81 +# undef XLAT_VAL_81 +# undef XLAT_STR_82 +# undef XLAT_VAL_82 +# undef XLAT_STR_83 +# undef XLAT_VAL_83 +# undef XLAT_STR_84 +# undef XLAT_VAL_84 +# undef XLAT_STR_85 +# undef XLAT_VAL_85 +# undef XLAT_STR_86 +# undef XLAT_VAL_86 +# undef XLAT_STR_87 +# undef XLAT_VAL_87 +# undef XLAT_STR_88 +# undef XLAT_VAL_88 +# undef XLAT_STR_89 +# undef XLAT_VAL_89 +# undef XLAT_STR_90 +# undef XLAT_VAL_90 +# undef XLAT_STR_91 +# undef XLAT_VAL_91 +# undef XLAT_STR_92 +# undef XLAT_VAL_92 +# undef XLAT_STR_93 +# undef XLAT_VAL_93 +# undef XLAT_STR_94 +# undef XLAT_VAL_94 +# undef XLAT_STR_95 +# undef XLAT_VAL_95 +# undef XLAT_STR_96 +# undef XLAT_VAL_96 +# undef XLAT_STR_97 +# undef XLAT_VAL_97 +# undef XLAT_STR_98 +# undef XLAT_VAL_98 +# undef XLAT_STR_99 +# undef XLAT_VAL_99 +# undef XLAT_STR_100 +# undef XLAT_VAL_100 +# undef XLAT_STR_101 +# undef XLAT_VAL_101 +# undef XLAT_STR_102 +# undef XLAT_VAL_102 +# undef XLAT_STR_103 +# undef XLAT_VAL_103 +# undef XLAT_STR_104 +# undef XLAT_VAL_104 +# undef XLAT_STR_105 +# undef XLAT_VAL_105 +# undef XLAT_STR_106 +# undef XLAT_VAL_106 +# undef XLAT_STR_107 +# undef XLAT_VAL_107 +# undef XLAT_STR_108 +# undef XLAT_VAL_108 +# undef XLAT_STR_109 +# undef XLAT_VAL_109 +# undef XLAT_STR_110 +# undef XLAT_VAL_110 +# undef XLAT_STR_111 +# undef XLAT_VAL_111 +# undef XLAT_STR_112 +# undef XLAT_VAL_112 +# undef XLAT_STR_113 +# undef XLAT_VAL_113 +# undef XLAT_STR_114 +# undef XLAT_VAL_114 +# undef XLAT_STR_115 +# undef XLAT_VAL_115 +# undef XLAT_STR_116 +# undef XLAT_VAL_116 +# undef XLAT_STR_117 +# undef XLAT_VAL_117 +# undef XLAT_STR_118 +# undef XLAT_VAL_118 +# undef XLAT_STR_119 +# undef XLAT_VAL_119 +# undef XLAT_STR_120 +# undef XLAT_VAL_120 +# undef XLAT_STR_121 +# undef XLAT_VAL_121 +# undef XLAT_STR_122 +# undef XLAT_VAL_122 +# undef XLAT_STR_123 +# undef XLAT_VAL_123 +# undef XLAT_STR_124 +# undef XLAT_VAL_124 +# undef XLAT_STR_125 +# undef XLAT_VAL_125 +# undef XLAT_STR_126 +# undef XLAT_VAL_126 +# undef XLAT_STR_127 +# undef XLAT_VAL_127 +# undef XLAT_STR_128 +# undef XLAT_VAL_128 +# undef XLAT_STR_129 +# undef XLAT_VAL_129 +# undef XLAT_STR_130 +# undef XLAT_VAL_130 +# undef XLAT_STR_131 +# undef XLAT_VAL_131 +# undef XLAT_STR_132 +# undef XLAT_VAL_132 +# undef XLAT_STR_133 +# undef XLAT_VAL_133 +# undef XLAT_STR_134 +# undef XLAT_VAL_134 +# undef XLAT_STR_135 +# undef XLAT_VAL_135 +# undef XLAT_STR_136 +# undef XLAT_VAL_136 +# undef XLAT_STR_137 +# undef XLAT_VAL_137 +# undef XLAT_STR_138 +# undef XLAT_VAL_138 +# undef XLAT_STR_139 +# undef XLAT_VAL_139 +# undef XLAT_STR_140 +# undef XLAT_VAL_140 +# undef XLAT_STR_141 +# undef XLAT_VAL_141 +# undef XLAT_STR_142 +# undef XLAT_VAL_142 +# undef XLAT_STR_143 +# undef XLAT_VAL_143 +# undef XLAT_STR_144 +# undef XLAT_VAL_144 +# undef XLAT_STR_145 +# undef XLAT_VAL_145 +# undef XLAT_STR_146 +# undef XLAT_VAL_146 +# undef XLAT_STR_147 +# undef XLAT_VAL_147 +# undef XLAT_STR_148 +# undef XLAT_VAL_148 +# undef XLAT_STR_149 +# undef XLAT_VAL_149 +# undef XLAT_STR_150 +# undef XLAT_VAL_150 +# undef XLAT_STR_151 +# undef XLAT_VAL_151 +# undef XLAT_STR_152 +# undef XLAT_VAL_152 +# undef XLAT_STR_153 +# undef XLAT_VAL_153 +# undef XLAT_STR_154 +# undef XLAT_VAL_154 +# undef XLAT_STR_155 +# undef XLAT_VAL_155 +# undef XLAT_STR_156 +# undef XLAT_VAL_156 +# undef XLAT_STR_157 +# undef XLAT_VAL_157 +# undef XLAT_STR_158 +# undef XLAT_VAL_158 +# undef XLAT_STR_159 +# undef XLAT_VAL_159 +# undef XLAT_STR_160 +# undef XLAT_VAL_160 +# undef XLAT_STR_161 +# undef XLAT_VAL_161 +# undef XLAT_STR_162 +# undef XLAT_VAL_162 +# undef XLAT_STR_163 +# undef XLAT_VAL_163 +# undef XLAT_STR_164 +# undef XLAT_VAL_164 +# undef XLAT_STR_165 +# undef XLAT_VAL_165 +# undef XLAT_STR_166 +# undef XLAT_VAL_166 +# undef XLAT_STR_167 +# undef XLAT_VAL_167 +# undef XLAT_STR_168 +# undef XLAT_VAL_168 +# undef XLAT_STR_169 +# undef XLAT_VAL_169 +# undef XLAT_STR_170 +# undef XLAT_VAL_170 +# undef XLAT_STR_171 +# undef XLAT_VAL_171 +# undef XLAT_STR_172 +# undef XLAT_VAL_172 +# undef XLAT_STR_173 +# undef XLAT_VAL_173 +# undef XLAT_STR_174 +# undef XLAT_VAL_174 +# undef XLAT_STR_175 +# undef XLAT_VAL_175 +# undef XLAT_STR_176 +# undef XLAT_VAL_176 +# undef XLAT_STR_177 +# undef XLAT_VAL_177 +# undef XLAT_STR_178 +# undef XLAT_VAL_178 +# undef XLAT_STR_179 +# undef XLAT_VAL_179 +# undef XLAT_STR_180 +# undef XLAT_VAL_180 +# undef XLAT_STR_181 +# undef XLAT_VAL_181 +# undef XLAT_STR_182 +# undef XLAT_VAL_182 +# undef XLAT_STR_183 +# undef XLAT_VAL_183 +# undef XLAT_STR_184 +# undef XLAT_VAL_184 +# undef XLAT_STR_185 +# undef XLAT_VAL_185 +# undef XLAT_STR_186 +# undef XLAT_VAL_186 +# undef XLAT_STR_187 +# undef XLAT_VAL_187 +# undef XLAT_STR_188 +# undef XLAT_VAL_188 +# undef XLAT_STR_189 +# undef XLAT_VAL_189 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/ptrace_cmds.in b/xlat/ptrace_cmds.in index 3840f346..48ae959b 100644 --- a/xlat/ptrace_cmds.in +++ b/xlat/ptrace_cmds.in @@ -1,108 +1,474 @@ -PTRACE_TRACEME -PTRACE_PEEKTEXT -PTRACE_PEEKDATA -PTRACE_PEEKUSER -PTRACE_POKETEXT -PTRACE_POKEDATA -PTRACE_POKEUSER -PTRACE_CONT -PTRACE_KILL -PTRACE_SINGLESTEP -PTRACE_ATTACH +/* Generated by maint/gen_xlat_defs.sh -f '#x' -p 'PTRACE_' -c 'linux/ptrace.h' -a 'asm/ptrace*.h' */ +PTRACE_TRACEME 0 +PTRACE_PEEKTEXT 0x1 +PTRACE_PEEKDATA 0x2 +PTRACE_PEEKUSER 0x3 /* PTRACE_PEEKUSR in kernel headers */ +PTRACE_POKETEXT 0x4 +PTRACE_POKEDATA 0x5 +PTRACE_POKEUSER 0x6 /* PTRACE_POKEUSR in kernel headers*/ +PTRACE_CONT 0x7 +PTRACE_KILL 0x8 +PTRACE_SINGLESTEP 0x9 +PTRACE_ATTACH 0x10 + +/* + * On sparc, there is PTRACE_SPARC_DETACH (= 11) that is used instead + * of PTRACE_DETACH, as PTRACE_DETACH's number (0x11) is occupied + * by PTRACE_WRITEDATA. + */ +#if !defined __sparc__ +PTRACE_DETACH 0x11 +#else PTRACE_DETACH -PTRACE_SYSCALL +#endif + +PTRACE_SYSCALL 0x18 + +PTRACE_SETOPTIONS 0x4200 +PTRACE_GETEVENTMSG 0x4201 +PTRACE_GETSIGINFO 0x4202 +PTRACE_SETSIGINFO 0x4203 +PTRACE_GETREGSET 0x4204 +PTRACE_SETREGSET 0x4205 +PTRACE_SEIZE 0x4206 +PTRACE_INTERRUPT 0x4207 +PTRACE_LISTEN 0x4208 +PTRACE_PEEKSIGINFO 0x4209 +PTRACE_GETSIGMASK 0x420a +PTRACE_SETSIGMASK 0x420b +PTRACE_SECCOMP_GET_FILTER 0x420c +PTRACE_SECCOMP_GET_METADATA 0x420d +PTRACE_GET_SYSCALL_INFO 0x420e + +/* arch-specific */ +#if defined __arm__ || defined __m68k__ || defined __mips__ || defined __powerpc__ || defined __sh__ || defined __sparc__ || defined __x86_64__ || defined __i386__ || defined __xtensa__ +PTRACE_GETREGS 0xc +#elif defined __hppa__ || defined __ia64__ +PTRACE_GETREGS 0x12 +#else PTRACE_GETREGS +#endif + +#if defined __arm__ || defined __m68k__ || defined __mips__ || defined __powerpc__ || defined __sh__ || defined __sparc__ || defined __x86_64__ || defined __i386__ || defined __xtensa__ +PTRACE_SETREGS 0xd +#elif defined __hppa__ || defined __ia64__ +PTRACE_SETREGS 0x13 +#else PTRACE_SETREGS +#endif + +#if defined __arm__ || defined __hppa__ || defined __m68k__ || defined __mips__ || defined __powerpc__ || defined __sh__ || defined __sparc__ || defined __x86_64__ || defined __i386__ +PTRACE_GETFPREGS 0xe +#else PTRACE_GETFPREGS +#endif + +#if defined __arm__ || defined __hppa__ || defined __m68k__ || defined __mips__ || defined __powerpc__ || defined __sh__ || defined __sparc__ || defined __x86_64__ || defined __i386__ +PTRACE_SETFPREGS 0xf +#else PTRACE_SETFPREGS +#endif + +#if defined __mips__ || defined __x86_64__ || defined __i386__ +PTRACE_GETFPXREGS 0x12 +#else PTRACE_GETFPXREGS +#endif + +#if defined __mips__ || defined __x86_64__ || defined __i386__ +PTRACE_SETFPXREGS 0x13 +#else PTRACE_SETFPXREGS -PTRACE_GETVRREGS -PTRACE_SETVRREGS -PTRACE_SETOPTIONS -PTRACE_GETEVENTMSG -PTRACE_GETSIGINFO -PTRACE_SETSIGINFO -PTRACE_GETREGSET -PTRACE_SETREGSET -PTRACE_SET_SYSCALL -PTRACE_SEIZE -PTRACE_INTERRUPT -PTRACE_LISTEN -PTRACE_PEEKSIGINFO -PTRACE_GETSIGMASK -PTRACE_SETSIGMASK -PTRACE_SECCOMP_GET_FILTER -PTRACE_SECCOMP_GET_METADATA -PTRACE_GET_SYSCALL_INFO -/* arch-specific */ +#endif + +#if defined __xtensa__ +PTRACE_GETHBPREGS 0x14 +#elif defined __arm__ +PTRACE_GETHBPREGS 0x1d +#else +PTRACE_GETHBPREGS +#endif + +#if defined __xtensa__ +PTRACE_SETHBPREGS 0x15 +#elif defined __arm__ +PTRACE_SETHBPREGS 0x1e +#else +PTRACE_SETHBPREGS +#endif + +#if defined __arm__ || defined __ia64__ || defined __mips__ || defined __s390__ || defined __x86_64__ || defined __i386__ +PTRACE_OLDSETOPTIONS 0x15 +#else +PTRACE_OLDSETOPTIONS +#endif + +#if defined __powerpc__ || defined __sparc__ +PTRACE_GETREGS64 0x16 +#else +PTRACE_GETREGS64 +#endif +#if defined __powerpc__ || defined __sparc__ +PTRACE_SETREGS64 0x17 +#else +PTRACE_SETREGS64 +#endif + +#if defined __arm__ || defined __unicore32__ +PTRACE_GET_THREAD_AREA 0x16 +#elif defined __arc__ || defined __m68k__ || defined __mips__ || defined __x86_64__ || defined __i386__ +PTRACE_GET_THREAD_AREA 0x19 +#else PTRACE_GET_THREAD_AREA +#endif + +#if defined __mips__ || defined __x86_64__ || defined __i386__ +PTRACE_SET_THREAD_AREA 0x1a +#else PTRACE_SET_THREAD_AREA -PTRACE_OLDSETOPTIONS +#endif + +#if defined __arm__ || defined __c6x__ || defined __sh__ +PTRACE_GETFDPIC 0x1f +#else PTRACE_GETFDPIC +#endif + +#if defined __powerpc__ +PTRACE_SYSEMU 0x1d +#elif defined __arm64__ || defined __aarch64__ || defined __x86_64__ || defined __i386__ +PTRACE_SYSEMU 0x1f +#else +PTRACE_SYSEMU +#endif + +#if defined __powerpc__ +PTRACE_SYSEMU_SINGLESTEP 0x1e +#elif defined __arm64__ || defined __aarch64__ || defined __x86_64__ || defined __i386__ +PTRACE_SYSEMU_SINGLESTEP 0x20 +#else +PTRACE_SYSEMU_SINGLESTEP +#endif + +#if defined __hppa__ || defined __ia64__ || defined __s390__ +PTRACE_SINGLEBLOCK 0xc +#elif defined __m68k__ || defined __x86_64__ || defined __i386__ +PTRACE_SINGLEBLOCK 0x21 +#elif defined __powerpc__ +PTRACE_SINGLEBLOCK 0x100 +#else PTRACE_SINGLEBLOCK +#endif + /* arm */ +#if defined __arm__ +PTRACE_GETWMMXREGS 0x12 +#else PTRACE_GETWMMXREGS +#endif +#if defined __arm__ +PTRACE_SETWMMXREGS 0x13 +#else PTRACE_SETWMMXREGS +#endif +#if defined __arm__ +PTRACE_SET_SYSCALL 0x17 +#else +PTRACE_SET_SYSCALL +#endif +#if defined __arm__ +PTRACE_GETCRUNCHREGS 0x19 +#else PTRACE_GETCRUNCHREGS +#endif +#if defined __arm__ +PTRACE_SETCRUNCHREGS 0x1a +#else PTRACE_SETCRUNCHREGS +#endif +#if defined __arm__ +PTRACE_GETVFPREGS 0x1b +#else PTRACE_GETVFPREGS +#endif +#if defined __arm__ +PTRACE_SETVFPREGS 0x1c +#else PTRACE_SETVFPREGS -PTRACE_GETHBPREGS -PTRACE_SETHBPREGS +#endif + /* ia64 */ +#if defined __ia64__ +PTRACE_OLD_GETSIGINFO 0xd +#else PTRACE_OLD_GETSIGINFO +#endif +#if defined __ia64__ +PTRACE_OLD_SETSIGINFO 0xe +#else PTRACE_OLD_SETSIGINFO +#endif + /* mips */ +#if defined __mips__ +PTRACE_PEEKTEXT_3264 0xc0 +#else PTRACE_PEEKTEXT_3264 +#endif +#if defined __mips__ +PTRACE_PEEKDATA_3264 0xc1 +#else PTRACE_PEEKDATA_3264 +#endif +#if defined __mips__ +PTRACE_POKETEXT_3264 0xc2 +#else PTRACE_POKETEXT_3264 +#endif +#if defined __mips__ +PTRACE_POKEDATA_3264 0xc3 +#else PTRACE_POKEDATA_3264 +#endif +#if defined __mips__ +PTRACE_GET_THREAD_AREA_3264 0xc4 +#else PTRACE_GET_THREAD_AREA_3264 +#endif +#if defined __mips__ +PTRACE_GET_WATCH_REGS 0xd0 +#else PTRACE_GET_WATCH_REGS +#endif +#if defined __mips__ +PTRACE_SET_WATCH_REGS 0xd1 +#else PTRACE_SET_WATCH_REGS +#endif + /* powerpc */ +#if defined __powerpc__ +PTRACE_GETVRREGS 0x12 +#else +PTRACE_GETVRREGS +#endif +#if defined __powerpc__ +PTRACE_SETVRREGS 0x13 +#else +PTRACE_SETVRREGS +#endif +#if defined __powerpc__ +PTRACE_GETEVRREGS 0x14 +#else PTRACE_GETEVRREGS +#endif +#if defined __powerpc__ +PTRACE_SETEVRREGS 0x15 +#else PTRACE_SETEVRREGS +#endif +#if defined __powerpc__ +PTRACE_GETVSRREGS 0x1b +#else PTRACE_GETVSRREGS +#endif +#if defined __powerpc__ +PTRACE_SETVSRREGS 0x1c +#else PTRACE_SETVSRREGS +#endif +#if defined __powerpc__ +PTRACE_GET_DEBUGREG 0x19 +#else PTRACE_GET_DEBUGREG +#endif +#if defined __powerpc__ +PTRACE_SET_DEBUGREG 0x1a +#else PTRACE_SET_DEBUGREG -PPC_PTRACE_GETHWDBGINFO -PPC_PTRACE_SETHWDEBUG +#endif +#if defined __powerpc__ +PPC_PTRACE_DELHWDEBUG 0x87 +#else PPC_PTRACE_DELHWDEBUG +#endif +#if defined __powerpc__ +PPC_PTRACE_SETHWDEBUG 0x88 +#else +PPC_PTRACE_SETHWDEBUG +#endif +#if defined __powerpc__ +PPC_PTRACE_GETHWDBGINFO 0x89 +#else +PPC_PTRACE_GETHWDBGINFO +#endif +#if defined __powerpc__ +PPC_PTRACE_POKEUSR_3264 0x90 +#else +PPC_PTRACE_POKEUSR_3264 +#endif +#if defined __powerpc__ +PPC_PTRACE_PEEKUSR_3264 0x91 +#else +PPC_PTRACE_PEEKUSR_3264 +#endif +#if defined __powerpc__ +PPC_PTRACE_POKEDATA_3264 0x92 +#else +PPC_PTRACE_POKEDATA_3264 +#endif +#if defined __powerpc__ +PPC_PTRACE_POKETEXT_3264 0x93 +#else +PPC_PTRACE_POKETEXT_3264 +#endif +#if defined __powerpc__ +PPC_PTRACE_PEEKDATA_3264 0x94 +#else +PPC_PTRACE_PEEKDATA_3264 +#endif +#if defined __powerpc__ +PPC_PTRACE_PEEKTEXT_3264 0x95 +#else +PPC_PTRACE_PEEKTEXT_3264 +#endif + /* s390 */ +#if defined __s390__ +PTRACE_PEEKUSR_AREA 0x5000 +#else PTRACE_PEEKUSR_AREA +#endif +#if defined __s390__ +PTRACE_POKEUSR_AREA 0x5001 +#else PTRACE_POKEUSR_AREA +#endif +#if defined __s390__ +PTRACE_PEEKTEXT_AREA 0x5002 +#else PTRACE_PEEKTEXT_AREA +#endif +#if defined __s390__ +PTRACE_PEEKDATA_AREA 0x5003 +#else PTRACE_PEEKDATA_AREA +#endif +#if defined __s390__ +PTRACE_POKETEXT_AREA 0x5004 +#else PTRACE_POKETEXT_AREA +#endif +#if defined __s390__ +PTRACE_POKEDATA_AREA 0x5005 +#else PTRACE_POKEDATA_AREA +#endif +#if defined __s390__ +PTRACE_GET_LAST_BREAK 0x5006 +#else PTRACE_GET_LAST_BREAK +#endif +#if defined __s390__ +PTRACE_PEEK_SYSTEM_CALL 0x5007 +#else PTRACE_PEEK_SYSTEM_CALL +#endif +#if defined __s390__ +PTRACE_POKE_SYSTEM_CALL 0x5008 +#else PTRACE_POKE_SYSTEM_CALL +#endif +#if defined __s390__ +PTRACE_ENABLE_TE 0x5009 +#else PTRACE_ENABLE_TE +#endif +#if defined __s390__ +PTRACE_DISABLE_TE 0x5010 +#else PTRACE_DISABLE_TE +#endif +#if defined __s390__ +PTRACE_TE_ABORT_RAND 0x5011 +#else PTRACE_TE_ABORT_RAND +#endif + /* sh */ +#if defined __sh__ +PTRACE_GETDSPREGS 0x37 +#else PTRACE_GETDSPREGS +#endif +#if defined __sh__ +PTRACE_SETDSPREGS 0x38 +#else PTRACE_SETDSPREGS +#endif + /* sparc */ +#if defined __sparc__ +PTRACE_SPARC_DETACH 0xb +#else PTRACE_SPARC_DETACH +#endif +#if defined __sparc__ +PTRACE_READDATA 0x10 +#else PTRACE_READDATA +#endif +#if defined __sparc__ +PTRACE_WRITEDATA 0x11 +#else PTRACE_WRITEDATA +#endif +#if defined __sparc__ +PTRACE_READTEXT 0x12 +#else PTRACE_READTEXT +#endif +#if defined __sparc__ +PTRACE_WRITETEXT 0x13 +#else PTRACE_WRITETEXT +#endif +#if defined __sparc__ +PTRACE_GETFPAREGS 0x14 +#else PTRACE_GETFPAREGS +#endif +#if defined __sparc__ +PTRACE_SETFPAREGS 0x15 +#else PTRACE_SETFPAREGS -PTRACE_GETREGS64 -PTRACE_SETREGS64 +#endif +#if defined __sparc__ +PTRACE_GETFPREGS64 0x19 +#else PTRACE_GETFPREGS64 +#endif +#if defined __sparc__ +PTRACE_SETFPREGS64 0x1a +#else PTRACE_SETFPREGS64 +#endif + /* x86 */ +#if defined __x86_64__ || defined __i386__ +PTRACE_ARCH_PRCTL 0x1e +#else PTRACE_ARCH_PRCTL -PTRACE_SYSEMU -PTRACE_SYSEMU_SINGLESTEP +#endif + /* xtensa */ +#if defined __xtensa__ +PTRACE_GETXTREGS 0x12 +#else PTRACE_GETXTREGS +#endif +#if defined __xtensa__ +PTRACE_SETXTREGS 0x13 +#else PTRACE_SETXTREGS +#endif diff --git a/xlat/ptrace_events.h b/xlat/ptrace_events.h index d0085bc2..ec42ecba 100644 --- a/xlat/ptrace_events.h +++ b/xlat/ptrace_events.h @@ -12,39 +12,137 @@ # else -static -const struct xlat ptrace_events[] = { +static const struct xlat_data ptrace_events_xdata[] = { #if defined(PTRACE_EVENT_FORK) || (defined(HAVE_DECL_PTRACE_EVENT_FORK) && HAVE_DECL_PTRACE_EVENT_FORK) XLAT(PTRACE_EVENT_FORK), + #define XLAT_VAL_0 ((unsigned) (PTRACE_EVENT_FORK)) + #define XLAT_STR_0 STRINGIFY(PTRACE_EVENT_FORK) #endif #if defined(PTRACE_EVENT_VFORK) || (defined(HAVE_DECL_PTRACE_EVENT_VFORK) && HAVE_DECL_PTRACE_EVENT_VFORK) XLAT(PTRACE_EVENT_VFORK), + #define XLAT_VAL_1 ((unsigned) (PTRACE_EVENT_VFORK)) + #define XLAT_STR_1 STRINGIFY(PTRACE_EVENT_VFORK) #endif #if defined(PTRACE_EVENT_CLONE) || (defined(HAVE_DECL_PTRACE_EVENT_CLONE) && HAVE_DECL_PTRACE_EVENT_CLONE) XLAT(PTRACE_EVENT_CLONE), + #define XLAT_VAL_2 ((unsigned) (PTRACE_EVENT_CLONE)) + #define XLAT_STR_2 STRINGIFY(PTRACE_EVENT_CLONE) #endif #if defined(PTRACE_EVENT_EXEC) || (defined(HAVE_DECL_PTRACE_EVENT_EXEC) && HAVE_DECL_PTRACE_EVENT_EXEC) XLAT(PTRACE_EVENT_EXEC), + #define XLAT_VAL_3 ((unsigned) (PTRACE_EVENT_EXEC)) + #define XLAT_STR_3 STRINGIFY(PTRACE_EVENT_EXEC) #endif #if defined(PTRACE_EVENT_VFORK_DONE) || (defined(HAVE_DECL_PTRACE_EVENT_VFORK_DONE) && HAVE_DECL_PTRACE_EVENT_VFORK_DONE) XLAT(PTRACE_EVENT_VFORK_DONE), + #define XLAT_VAL_4 ((unsigned) (PTRACE_EVENT_VFORK_DONE)) + #define XLAT_STR_4 STRINGIFY(PTRACE_EVENT_VFORK_DONE) #endif #if defined(PTRACE_EVENT_EXIT) || (defined(HAVE_DECL_PTRACE_EVENT_EXIT) && HAVE_DECL_PTRACE_EVENT_EXIT) XLAT(PTRACE_EVENT_EXIT), + #define XLAT_VAL_5 ((unsigned) (PTRACE_EVENT_EXIT)) + #define XLAT_STR_5 STRINGIFY(PTRACE_EVENT_EXIT) #endif #if defined(PTRACE_EVENT_SECCOMP) || (defined(HAVE_DECL_PTRACE_EVENT_SECCOMP) && HAVE_DECL_PTRACE_EVENT_SECCOMP) XLAT(PTRACE_EVENT_SECCOMP), + #define XLAT_VAL_6 ((unsigned) (PTRACE_EVENT_SECCOMP)) + #define XLAT_STR_6 STRINGIFY(PTRACE_EVENT_SECCOMP) #endif #if defined(PTRACE_EVENT_STOP) || (defined(HAVE_DECL_PTRACE_EVENT_STOP) && HAVE_DECL_PTRACE_EVENT_STOP) XLAT(PTRACE_EVENT_STOP), + #define XLAT_VAL_7 ((unsigned) (PTRACE_EVENT_STOP)) + #define XLAT_STR_7 STRINGIFY(PTRACE_EVENT_STOP) #endif #if defined(PTRACE_EVENT_MIGRATE) || (defined(HAVE_DECL_PTRACE_EVENT_MIGRATE) && HAVE_DECL_PTRACE_EVENT_MIGRATE) XLAT(PTRACE_EVENT_MIGRATE), + #define XLAT_VAL_8 ((unsigned) (PTRACE_EVENT_MIGRATE)) + #define XLAT_STR_8 STRINGIFY(PTRACE_EVENT_MIGRATE) #endif - XLAT_END }; +static +const struct xlat ptrace_events[1] = { { + .data = ptrace_events_xdata, + .size = ARRAY_SIZE(ptrace_events_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/ptrace_peeksiginfo_flags.h b/xlat/ptrace_peeksiginfo_flags.h index c2a946cb..6c480abf 100644 --- a/xlat/ptrace_peeksiginfo_flags.h +++ b/xlat/ptrace_peeksiginfo_flags.h @@ -19,12 +19,30 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat ptrace_peeksiginfo_flags[] = { +static const struct xlat_data ptrace_peeksiginfo_flags_xdata[] = { XLAT(PTRACE_PEEKSIGINFO_SHARED), - XLAT_END + #define XLAT_VAL_0 ((unsigned) (PTRACE_PEEKSIGINFO_SHARED)) + #define XLAT_STR_0 STRINGIFY(PTRACE_PEEKSIGINFO_SHARED) }; - +static +const struct xlat ptrace_peeksiginfo_flags[1] = { { + .data = ptrace_peeksiginfo_flags_xdata, + .size = ARRAY_SIZE(ptrace_peeksiginfo_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/ptrace_setoptions_flags.h b/xlat/ptrace_setoptions_flags.h index 622354c4..74729532 100644 --- a/xlat/ptrace_setoptions_flags.h +++ b/xlat/ptrace_setoptions_flags.h @@ -12,45 +12,163 @@ # else -static -const struct xlat ptrace_setoptions_flags[] = { +static const struct xlat_data ptrace_setoptions_flags_xdata[] = { #if defined(PTRACE_O_TRACESYSGOOD) || (defined(HAVE_DECL_PTRACE_O_TRACESYSGOOD) && HAVE_DECL_PTRACE_O_TRACESYSGOOD) XLAT(PTRACE_O_TRACESYSGOOD), + #define XLAT_VAL_0 ((unsigned) (PTRACE_O_TRACESYSGOOD)) + #define XLAT_STR_0 STRINGIFY(PTRACE_O_TRACESYSGOOD) #endif #if defined(PTRACE_O_TRACEFORK) || (defined(HAVE_DECL_PTRACE_O_TRACEFORK) && HAVE_DECL_PTRACE_O_TRACEFORK) XLAT(PTRACE_O_TRACEFORK), + #define XLAT_VAL_1 ((unsigned) (PTRACE_O_TRACEFORK)) + #define XLAT_STR_1 STRINGIFY(PTRACE_O_TRACEFORK) #endif #if defined(PTRACE_O_TRACEVFORK) || (defined(HAVE_DECL_PTRACE_O_TRACEVFORK) && HAVE_DECL_PTRACE_O_TRACEVFORK) XLAT(PTRACE_O_TRACEVFORK), + #define XLAT_VAL_2 ((unsigned) (PTRACE_O_TRACEVFORK)) + #define XLAT_STR_2 STRINGIFY(PTRACE_O_TRACEVFORK) #endif #if defined(PTRACE_O_TRACECLONE) || (defined(HAVE_DECL_PTRACE_O_TRACECLONE) && HAVE_DECL_PTRACE_O_TRACECLONE) XLAT(PTRACE_O_TRACECLONE), + #define XLAT_VAL_3 ((unsigned) (PTRACE_O_TRACECLONE)) + #define XLAT_STR_3 STRINGIFY(PTRACE_O_TRACECLONE) #endif #if defined(PTRACE_O_TRACEEXEC) || (defined(HAVE_DECL_PTRACE_O_TRACEEXEC) && HAVE_DECL_PTRACE_O_TRACEEXEC) XLAT(PTRACE_O_TRACEEXEC), + #define XLAT_VAL_4 ((unsigned) (PTRACE_O_TRACEEXEC)) + #define XLAT_STR_4 STRINGIFY(PTRACE_O_TRACEEXEC) #endif #if defined(PTRACE_O_TRACEVFORKDONE) || (defined(HAVE_DECL_PTRACE_O_TRACEVFORKDONE) && HAVE_DECL_PTRACE_O_TRACEVFORKDONE) XLAT(PTRACE_O_TRACEVFORKDONE), + #define XLAT_VAL_5 ((unsigned) (PTRACE_O_TRACEVFORKDONE)) + #define XLAT_STR_5 STRINGIFY(PTRACE_O_TRACEVFORKDONE) #endif #if defined(PTRACE_O_TRACEEXIT) || (defined(HAVE_DECL_PTRACE_O_TRACEEXIT) && HAVE_DECL_PTRACE_O_TRACEEXIT) XLAT(PTRACE_O_TRACEEXIT), + #define XLAT_VAL_6 ((unsigned) (PTRACE_O_TRACEEXIT)) + #define XLAT_STR_6 STRINGIFY(PTRACE_O_TRACEEXIT) #endif #if defined(PTRACE_O_TRACESECCOMP) || (defined(HAVE_DECL_PTRACE_O_TRACESECCOMP) && HAVE_DECL_PTRACE_O_TRACESECCOMP) XLAT(PTRACE_O_TRACESECCOMP), + #define XLAT_VAL_7 ((unsigned) (PTRACE_O_TRACESECCOMP)) + #define XLAT_STR_7 STRINGIFY(PTRACE_O_TRACESECCOMP) #endif #if defined(PTRACE_O_EXITKILL) || (defined(HAVE_DECL_PTRACE_O_EXITKILL) && HAVE_DECL_PTRACE_O_EXITKILL) XLAT(PTRACE_O_EXITKILL), + #define XLAT_VAL_8 ((unsigned) (PTRACE_O_EXITKILL)) + #define XLAT_STR_8 STRINGIFY(PTRACE_O_EXITKILL) #endif #if defined(PTRACE_O_SUSPEND_SECCOMP) || (defined(HAVE_DECL_PTRACE_O_SUSPEND_SECCOMP) && HAVE_DECL_PTRACE_O_SUSPEND_SECCOMP) XLAT(PTRACE_O_SUSPEND_SECCOMP), + #define XLAT_VAL_9 ((unsigned) (PTRACE_O_SUSPEND_SECCOMP)) + #define XLAT_STR_9 STRINGIFY(PTRACE_O_SUSPEND_SECCOMP) #endif #if defined(PTRACE_O_TRACEMIGRATE) || (defined(HAVE_DECL_PTRACE_O_TRACEMIGRATE) && HAVE_DECL_PTRACE_O_TRACEMIGRATE) XLAT(PTRACE_O_TRACEMIGRATE), + #define XLAT_VAL_10 ((unsigned) (PTRACE_O_TRACEMIGRATE)) + #define XLAT_STR_10 STRINGIFY(PTRACE_O_TRACEMIGRATE) #endif - XLAT_END }; +static +const struct xlat ptrace_setoptions_flags[1] = { { + .data = ptrace_setoptions_flags_xdata, + .size = ARRAY_SIZE(ptrace_setoptions_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/ptrace_syscall_info_op.h b/xlat/ptrace_syscall_info_op.h index 0384d14f..4ed06ff3 100644 --- a/xlat/ptrace_syscall_info_op.h +++ b/xlat/ptrace_syscall_info_op.h @@ -12,23 +12,71 @@ # else -static -const struct xlat ptrace_syscall_info_op[] = { +static const struct xlat_data ptrace_syscall_info_op_xdata[] = { #if defined(PTRACE_SYSCALL_INFO_NONE) || (defined(HAVE_DECL_PTRACE_SYSCALL_INFO_NONE) && HAVE_DECL_PTRACE_SYSCALL_INFO_NONE) [PTRACE_SYSCALL_INFO_NONE] = XLAT(PTRACE_SYSCALL_INFO_NONE), + #define XLAT_VAL_0 ((unsigned) (PTRACE_SYSCALL_INFO_NONE)) + #define XLAT_STR_0 STRINGIFY(PTRACE_SYSCALL_INFO_NONE) #endif #if defined(PTRACE_SYSCALL_INFO_ENTRY) || (defined(HAVE_DECL_PTRACE_SYSCALL_INFO_ENTRY) && HAVE_DECL_PTRACE_SYSCALL_INFO_ENTRY) [PTRACE_SYSCALL_INFO_ENTRY] = XLAT(PTRACE_SYSCALL_INFO_ENTRY), + #define XLAT_VAL_1 ((unsigned) (PTRACE_SYSCALL_INFO_ENTRY)) + #define XLAT_STR_1 STRINGIFY(PTRACE_SYSCALL_INFO_ENTRY) #endif #if defined(PTRACE_SYSCALL_INFO_EXIT) || (defined(HAVE_DECL_PTRACE_SYSCALL_INFO_EXIT) && HAVE_DECL_PTRACE_SYSCALL_INFO_EXIT) [PTRACE_SYSCALL_INFO_EXIT] = XLAT(PTRACE_SYSCALL_INFO_EXIT), + #define XLAT_VAL_2 ((unsigned) (PTRACE_SYSCALL_INFO_EXIT)) + #define XLAT_STR_2 STRINGIFY(PTRACE_SYSCALL_INFO_EXIT) #endif #if defined(PTRACE_SYSCALL_INFO_SECCOMP) || (defined(HAVE_DECL_PTRACE_SYSCALL_INFO_SECCOMP) && HAVE_DECL_PTRACE_SYSCALL_INFO_SECCOMP) [PTRACE_SYSCALL_INFO_SECCOMP] = XLAT(PTRACE_SYSCALL_INFO_SECCOMP), + #define XLAT_VAL_3 ((unsigned) (PTRACE_SYSCALL_INFO_SECCOMP)) + #define XLAT_STR_3 STRINGIFY(PTRACE_SYSCALL_INFO_SECCOMP) #endif - XLAT_END }; +static +const struct xlat ptrace_syscall_info_op[1] = { { + .data = ptrace_syscall_info_op_xdata, + .size = ARRAY_SIZE(ptrace_syscall_info_op_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/quota_formats.h b/xlat/quota_formats.h index 9a24084d..a56206cd 100644 --- a/xlat/quota_formats.h +++ b/xlat/quota_formats.h @@ -40,15 +40,63 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat quota_formats[] = { - XLAT(QFMT_VFS_OLD), - XLAT(QFMT_VFS_V0), - XLAT(QFMT_OCFS2), - XLAT(QFMT_VFS_V1), - XLAT_END +static const struct xlat_data quota_formats_xdata[] = { + [QFMT_VFS_OLD] = XLAT(QFMT_VFS_OLD), + #define XLAT_VAL_0 ((unsigned) (QFMT_VFS_OLD)) + #define XLAT_STR_0 STRINGIFY(QFMT_VFS_OLD) + [QFMT_VFS_V0] = XLAT(QFMT_VFS_V0), + #define XLAT_VAL_1 ((unsigned) (QFMT_VFS_V0)) + #define XLAT_STR_1 STRINGIFY(QFMT_VFS_V0) + [QFMT_OCFS2] = XLAT(QFMT_OCFS2), + #define XLAT_VAL_2 ((unsigned) (QFMT_OCFS2)) + #define XLAT_STR_2 STRINGIFY(QFMT_OCFS2) + [QFMT_VFS_V1] = XLAT(QFMT_VFS_V1), + #define XLAT_VAL_3 ((unsigned) (QFMT_VFS_V1)) + #define XLAT_STR_3 STRINGIFY(QFMT_VFS_V1) }; +static +const struct xlat quota_formats[1] = { { + .data = quota_formats_xdata, + .size = ARRAY_SIZE(quota_formats_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/quota_formats.in b/xlat/quota_formats.in index dcbbb61c..6f59c058 100644 --- a/xlat/quota_formats.in +++ b/xlat/quota_formats.in @@ -1,3 +1,4 @@ +#value_indexed QFMT_VFS_OLD 1 QFMT_VFS_V0 2 QFMT_OCFS2 3 diff --git a/xlat/quotacmds.h b/xlat/quotacmds.h index 54dfbadb..9e5ce495 100644 --- a/xlat/quotacmds.h +++ b/xlat/quotacmds.h @@ -257,49 +257,407 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat quotacmds[] = { +static const struct xlat_data quotacmds_xdata[] = { XLAT(Q_V1_QUOTAON), + #define XLAT_VAL_0 ((unsigned) (Q_V1_QUOTAON)) + #define XLAT_STR_0 STRINGIFY(Q_V1_QUOTAON) XLAT(Q_V1_QUOTAOFF), + #define XLAT_VAL_1 ((unsigned) (Q_V1_QUOTAOFF)) + #define XLAT_STR_1 STRINGIFY(Q_V1_QUOTAOFF) XLAT(Q_V1_GETQUOTA), + #define XLAT_VAL_2 ((unsigned) (Q_V1_GETQUOTA)) + #define XLAT_STR_2 STRINGIFY(Q_V1_GETQUOTA) XLAT(Q_V1_SETQUOTA), + #define XLAT_VAL_3 ((unsigned) (Q_V1_SETQUOTA)) + #define XLAT_STR_3 STRINGIFY(Q_V1_SETQUOTA) XLAT(Q_V1_SETUSE), + #define XLAT_VAL_4 ((unsigned) (Q_V1_SETUSE)) + #define XLAT_STR_4 STRINGIFY(Q_V1_SETUSE) XLAT(Q_V1_SYNC), + #define XLAT_VAL_5 ((unsigned) (Q_V1_SYNC)) + #define XLAT_STR_5 STRINGIFY(Q_V1_SYNC) XLAT(Q_SETQLIM), + #define XLAT_VAL_6 ((unsigned) (Q_SETQLIM)) + #define XLAT_STR_6 STRINGIFY(Q_SETQLIM) XLAT(Q_V1_GETSTATS), + #define XLAT_VAL_7 ((unsigned) (Q_V1_GETSTATS)) + #define XLAT_STR_7 STRINGIFY(Q_V1_GETSTATS) XLAT(Q_V1_RSQUASH), + #define XLAT_VAL_8 ((unsigned) (Q_V1_RSQUASH)) + #define XLAT_STR_8 STRINGIFY(Q_V1_RSQUASH) XLAT(Q_V2_GETQUOTA), + #define XLAT_VAL_9 ((unsigned) (Q_V2_GETQUOTA)) + #define XLAT_STR_9 STRINGIFY(Q_V2_GETQUOTA) XLAT(Q_V2_SETQUOTA), + #define XLAT_VAL_10 ((unsigned) (Q_V2_SETQUOTA)) + #define XLAT_STR_10 STRINGIFY(Q_V2_SETQUOTA) XLAT(Q_V2_SETUSE), + #define XLAT_VAL_11 ((unsigned) (Q_V2_SETUSE)) + #define XLAT_STR_11 STRINGIFY(Q_V2_SETUSE) XLAT(Q_V2_GETINFO), + #define XLAT_VAL_12 ((unsigned) (Q_V2_GETINFO)) + #define XLAT_STR_12 STRINGIFY(Q_V2_GETINFO) XLAT(Q_V2_SETINFO), + #define XLAT_VAL_13 ((unsigned) (Q_V2_SETINFO)) + #define XLAT_STR_13 STRINGIFY(Q_V2_SETINFO) XLAT(Q_V2_SETGRACE), + #define XLAT_VAL_14 ((unsigned) (Q_V2_SETGRACE)) + #define XLAT_STR_14 STRINGIFY(Q_V2_SETGRACE) XLAT(Q_V2_SETFLAGS), + #define XLAT_VAL_15 ((unsigned) (Q_V2_SETFLAGS)) + #define XLAT_STR_15 STRINGIFY(Q_V2_SETFLAGS) XLAT(Q_V2_GETSTATS), + #define XLAT_VAL_16 ((unsigned) (Q_V2_GETSTATS)) + #define XLAT_STR_16 STRINGIFY(Q_V2_GETSTATS) XLAT(Q_SYNC), + #define XLAT_VAL_17 ((unsigned) (Q_SYNC)) + #define XLAT_STR_17 STRINGIFY(Q_SYNC) XLAT(Q_QUOTAON), + #define XLAT_VAL_18 ((unsigned) (Q_QUOTAON)) + #define XLAT_STR_18 STRINGIFY(Q_QUOTAON) XLAT(Q_QUOTAOFF), + #define XLAT_VAL_19 ((unsigned) (Q_QUOTAOFF)) + #define XLAT_STR_19 STRINGIFY(Q_QUOTAOFF) XLAT(Q_GETFMT), + #define XLAT_VAL_20 ((unsigned) (Q_GETFMT)) + #define XLAT_STR_20 STRINGIFY(Q_GETFMT) XLAT(Q_GETINFO), + #define XLAT_VAL_21 ((unsigned) (Q_GETINFO)) + #define XLAT_STR_21 STRINGIFY(Q_GETINFO) XLAT(Q_SETINFO), + #define XLAT_VAL_22 ((unsigned) (Q_SETINFO)) + #define XLAT_STR_22 STRINGIFY(Q_SETINFO) XLAT(Q_GETQUOTA), + #define XLAT_VAL_23 ((unsigned) (Q_GETQUOTA)) + #define XLAT_STR_23 STRINGIFY(Q_GETQUOTA) XLAT(Q_SETQUOTA), + #define XLAT_VAL_24 ((unsigned) (Q_SETQUOTA)) + #define XLAT_STR_24 STRINGIFY(Q_SETQUOTA) XLAT(Q_GETNEXTQUOTA), + #define XLAT_VAL_25 ((unsigned) (Q_GETNEXTQUOTA)) + #define XLAT_STR_25 STRINGIFY(Q_GETNEXTQUOTA) XLAT(Q_XQUOTAON), + #define XLAT_VAL_26 ((unsigned) (Q_XQUOTAON)) + #define XLAT_STR_26 STRINGIFY(Q_XQUOTAON) XLAT(Q_XQUOTAOFF), + #define XLAT_VAL_27 ((unsigned) (Q_XQUOTAOFF)) + #define XLAT_STR_27 STRINGIFY(Q_XQUOTAOFF) XLAT(Q_XGETQUOTA), + #define XLAT_VAL_28 ((unsigned) (Q_XGETQUOTA)) + #define XLAT_STR_28 STRINGIFY(Q_XGETQUOTA) XLAT(Q_XSETQLIM), + #define XLAT_VAL_29 ((unsigned) (Q_XSETQLIM)) + #define XLAT_STR_29 STRINGIFY(Q_XSETQLIM) XLAT(Q_XGETQSTAT), + #define XLAT_VAL_30 ((unsigned) (Q_XGETQSTAT)) + #define XLAT_STR_30 STRINGIFY(Q_XGETQSTAT) XLAT(Q_XQUOTARM), + #define XLAT_VAL_31 ((unsigned) (Q_XQUOTARM)) + #define XLAT_STR_31 STRINGIFY(Q_XQUOTARM) XLAT(Q_XQUOTASYNC), + #define XLAT_VAL_32 ((unsigned) (Q_XQUOTASYNC)) + #define XLAT_STR_32 STRINGIFY(Q_XQUOTASYNC) XLAT(Q_XGETQSTATV), + #define XLAT_VAL_33 ((unsigned) (Q_XGETQSTATV)) + #define XLAT_STR_33 STRINGIFY(Q_XGETQSTATV) XLAT(Q_XGETNEXTQUOTA), - XLAT_END + #define XLAT_VAL_34 ((unsigned) (Q_XGETNEXTQUOTA)) + #define XLAT_STR_34 STRINGIFY(Q_XGETNEXTQUOTA) }; +static +const struct xlat quotacmds[1] = { { + .data = quotacmds_xdata, + .size = ARRAY_SIZE(quotacmds_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/quotatypes.h b/xlat/quotatypes.h index bbc9567d..ebfc6a2f 100644 --- a/xlat/quotatypes.h +++ b/xlat/quotatypes.h @@ -33,14 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat quotatypes[] = { - XLAT(USRQUOTA), - XLAT(GRPQUOTA), - XLAT(PRJQUOTA), - XLAT_END +static const struct xlat_data quotatypes_xdata[] = { + [USRQUOTA] = XLAT(USRQUOTA), + #define XLAT_VAL_0 ((unsigned) (USRQUOTA)) + #define XLAT_STR_0 STRINGIFY(USRQUOTA) + [GRPQUOTA] = XLAT(GRPQUOTA), + #define XLAT_VAL_1 ((unsigned) (GRPQUOTA)) + #define XLAT_STR_1 STRINGIFY(GRPQUOTA) + [PRJQUOTA] = XLAT(PRJQUOTA), + #define XLAT_VAL_2 ((unsigned) (PRJQUOTA)) + #define XLAT_STR_2 STRINGIFY(PRJQUOTA) }; +static +const struct xlat quotatypes[1] = { { + .data = quotatypes_xdata, + .size = ARRAY_SIZE(quotatypes_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/quotatypes.in b/xlat/quotatypes.in index 671fe7df..fec94f8b 100644 --- a/xlat/quotatypes.in +++ b/xlat/quotatypes.in @@ -1,3 +1,4 @@ +#value_indexed USRQUOTA 0 GRPQUOTA 1 PRJQUOTA 2 diff --git a/xlat/random_ioctl_cmds.h b/xlat/random_ioctl_cmds.h index e5564749..d35fb8b4 100644 --- a/xlat/random_ioctl_cmds.h +++ b/xlat/random_ioctl_cmds.h @@ -61,18 +61,96 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat random_ioctl_cmds[] = { +static const struct xlat_data random_ioctl_cmds_xdata[] = { XLAT(RNDGETENTCNT), + #define XLAT_VAL_0 ((unsigned) (RNDGETENTCNT)) + #define XLAT_STR_0 STRINGIFY(RNDGETENTCNT) XLAT(RNDADDTOENTCNT), + #define XLAT_VAL_1 ((unsigned) (RNDADDTOENTCNT)) + #define XLAT_STR_1 STRINGIFY(RNDADDTOENTCNT) XLAT(RNDGETPOOL), + #define XLAT_VAL_2 ((unsigned) (RNDGETPOOL)) + #define XLAT_STR_2 STRINGIFY(RNDGETPOOL) XLAT(RNDADDENTROPY), + #define XLAT_VAL_3 ((unsigned) (RNDADDENTROPY)) + #define XLAT_STR_3 STRINGIFY(RNDADDENTROPY) XLAT(RNDZAPENTCNT), + #define XLAT_VAL_4 ((unsigned) (RNDZAPENTCNT)) + #define XLAT_STR_4 STRINGIFY(RNDZAPENTCNT) XLAT(RNDCLEARPOOL), + #define XLAT_VAL_5 ((unsigned) (RNDCLEARPOOL)) + #define XLAT_STR_5 STRINGIFY(RNDCLEARPOOL) XLAT(RNDRESEEDCRNG), - XLAT_END + #define XLAT_VAL_6 ((unsigned) (RNDRESEEDCRNG)) + #define XLAT_STR_6 STRINGIFY(RNDRESEEDCRNG) }; +static +const struct xlat random_ioctl_cmds[1] = { { + .data = random_ioctl_cmds_xdata, + .size = ARRAY_SIZE(random_ioctl_cmds_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rename_flags.h b/xlat/rename_flags.h index 5eb07aac..0c04825a 100644 --- a/xlat/rename_flags.h +++ b/xlat/rename_flags.h @@ -33,14 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rename_flags[] = { +static const struct xlat_data rename_flags_xdata[] = { XLAT(RENAME_NOREPLACE), + #define XLAT_VAL_0 ((unsigned) (RENAME_NOREPLACE)) + #define XLAT_STR_0 STRINGIFY(RENAME_NOREPLACE) XLAT(RENAME_EXCHANGE), + #define XLAT_VAL_1 ((unsigned) (RENAME_EXCHANGE)) + #define XLAT_STR_1 STRINGIFY(RENAME_EXCHANGE) XLAT(RENAME_WHITEOUT), - XLAT_END + #define XLAT_VAL_2 ((unsigned) (RENAME_WHITEOUT)) + #define XLAT_STR_2 STRINGIFY(RENAME_WHITEOUT) }; +static +const struct xlat rename_flags[1] = { { + .data = rename_flags_xdata, + .size = ARRAY_SIZE(rename_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/resource_flags.h b/xlat/resource_flags.h index 67bed2d2..cc7c803d 100644 --- a/xlat/resource_flags.h +++ b/xlat/resource_flags.h @@ -8,19 +8,57 @@ # ifndef IN_MPERS -const struct xlat resource_flags[] = { +static const struct xlat_data resource_flags_xdata[] = { #if defined(IPC_CREAT) || (defined(HAVE_DECL_IPC_CREAT) && HAVE_DECL_IPC_CREAT) XLAT(IPC_CREAT), + #define XLAT_VAL_0 ((unsigned) (IPC_CREAT)) + #define XLAT_STR_0 STRINGIFY(IPC_CREAT) #endif #if defined(IPC_EXCL) || (defined(HAVE_DECL_IPC_EXCL) && HAVE_DECL_IPC_EXCL) XLAT(IPC_EXCL), + #define XLAT_VAL_1 ((unsigned) (IPC_EXCL)) + #define XLAT_STR_1 STRINGIFY(IPC_EXCL) #endif #if defined(IPC_NOWAIT) || (defined(HAVE_DECL_IPC_NOWAIT) && HAVE_DECL_IPC_NOWAIT) XLAT(IPC_NOWAIT), + #define XLAT_VAL_2 ((unsigned) (IPC_NOWAIT)) + #define XLAT_STR_2 STRINGIFY(IPC_NOWAIT) #endif - XLAT_END }; +const struct xlat resource_flags[1] = { { + .data = resource_flags_xdata, + .size = ARRAY_SIZE(resource_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/resources.h b/xlat/resources.h index 41a04974..44ff4a55 100644 --- a/xlat/resources.h +++ b/xlat/resources.h @@ -234,49 +234,367 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat resources[] = { +static const struct xlat_data resources_xdata[] = { [RLIMIT_CPU] = XLAT(RLIMIT_CPU), + #define XLAT_VAL_0 ((unsigned) (RLIMIT_CPU)) + #define XLAT_STR_0 STRINGIFY(RLIMIT_CPU) [RLIMIT_FSIZE] = XLAT(RLIMIT_FSIZE), + #define XLAT_VAL_1 ((unsigned) (RLIMIT_FSIZE)) + #define XLAT_STR_1 STRINGIFY(RLIMIT_FSIZE) [RLIMIT_DATA] = XLAT(RLIMIT_DATA), + #define XLAT_VAL_2 ((unsigned) (RLIMIT_DATA)) + #define XLAT_STR_2 STRINGIFY(RLIMIT_DATA) [RLIMIT_STACK] = XLAT(RLIMIT_STACK), + #define XLAT_VAL_3 ((unsigned) (RLIMIT_STACK)) + #define XLAT_STR_3 STRINGIFY(RLIMIT_STACK) [RLIMIT_CORE] = XLAT(RLIMIT_CORE), + #define XLAT_VAL_4 ((unsigned) (RLIMIT_CORE)) + #define XLAT_STR_4 STRINGIFY(RLIMIT_CORE) #if defined(__alpha__) [RLIMIT_RSS] = XLAT(RLIMIT_RSS), + #define XLAT_VAL_5 ((unsigned) (RLIMIT_RSS)) + #define XLAT_STR_5 STRINGIFY(RLIMIT_RSS) [RLIMIT_NOFILE] = XLAT(RLIMIT_NOFILE), + #define XLAT_VAL_6 ((unsigned) (RLIMIT_NOFILE)) + #define XLAT_STR_6 STRINGIFY(RLIMIT_NOFILE) [RLIMIT_AS] = XLAT(RLIMIT_AS), + #define XLAT_VAL_7 ((unsigned) (RLIMIT_AS)) + #define XLAT_STR_7 STRINGIFY(RLIMIT_AS) [RLIMIT_NPROC] = XLAT(RLIMIT_NPROC), + #define XLAT_VAL_8 ((unsigned) (RLIMIT_NPROC)) + #define XLAT_STR_8 STRINGIFY(RLIMIT_NPROC) [RLIMIT_MEMLOCK] = XLAT(RLIMIT_MEMLOCK), + #define XLAT_VAL_9 ((unsigned) (RLIMIT_MEMLOCK)) + #define XLAT_STR_9 STRINGIFY(RLIMIT_MEMLOCK) #elif defined(__mips__) [RLIMIT_NOFILE] = XLAT(RLIMIT_NOFILE), + #define XLAT_VAL_10 ((unsigned) (RLIMIT_NOFILE)) + #define XLAT_STR_10 STRINGIFY(RLIMIT_NOFILE) [RLIMIT_AS] = XLAT(RLIMIT_AS), + #define XLAT_VAL_11 ((unsigned) (RLIMIT_AS)) + #define XLAT_STR_11 STRINGIFY(RLIMIT_AS) [RLIMIT_RSS] = XLAT(RLIMIT_RSS), + #define XLAT_VAL_12 ((unsigned) (RLIMIT_RSS)) + #define XLAT_STR_12 STRINGIFY(RLIMIT_RSS) [RLIMIT_NPROC] = XLAT(RLIMIT_NPROC), + #define XLAT_VAL_13 ((unsigned) (RLIMIT_NPROC)) + #define XLAT_STR_13 STRINGIFY(RLIMIT_NPROC) [RLIMIT_MEMLOCK] = XLAT(RLIMIT_MEMLOCK), + #define XLAT_VAL_14 ((unsigned) (RLIMIT_MEMLOCK)) + #define XLAT_STR_14 STRINGIFY(RLIMIT_MEMLOCK) #elif defined(__sparc__) [RLIMIT_RSS] = XLAT(RLIMIT_RSS), + #define XLAT_VAL_15 ((unsigned) (RLIMIT_RSS)) + #define XLAT_STR_15 STRINGIFY(RLIMIT_RSS) [RLIMIT_NOFILE] = XLAT(RLIMIT_NOFILE), + #define XLAT_VAL_16 ((unsigned) (RLIMIT_NOFILE)) + #define XLAT_STR_16 STRINGIFY(RLIMIT_NOFILE) [RLIMIT_NPROC] = XLAT(RLIMIT_NPROC), + #define XLAT_VAL_17 ((unsigned) (RLIMIT_NPROC)) + #define XLAT_STR_17 STRINGIFY(RLIMIT_NPROC) [RLIMIT_MEMLOCK] = XLAT(RLIMIT_MEMLOCK), + #define XLAT_VAL_18 ((unsigned) (RLIMIT_MEMLOCK)) + #define XLAT_STR_18 STRINGIFY(RLIMIT_MEMLOCK) [RLIMIT_AS] = XLAT(RLIMIT_AS), + #define XLAT_VAL_19 ((unsigned) (RLIMIT_AS)) + #define XLAT_STR_19 STRINGIFY(RLIMIT_AS) #else [RLIMIT_RSS] = XLAT(RLIMIT_RSS), + #define XLAT_VAL_20 ((unsigned) (RLIMIT_RSS)) + #define XLAT_STR_20 STRINGIFY(RLIMIT_RSS) [RLIMIT_NPROC] = XLAT(RLIMIT_NPROC), + #define XLAT_VAL_21 ((unsigned) (RLIMIT_NPROC)) + #define XLAT_STR_21 STRINGIFY(RLIMIT_NPROC) [RLIMIT_NOFILE] = XLAT(RLIMIT_NOFILE), + #define XLAT_VAL_22 ((unsigned) (RLIMIT_NOFILE)) + #define XLAT_STR_22 STRINGIFY(RLIMIT_NOFILE) [RLIMIT_MEMLOCK] = XLAT(RLIMIT_MEMLOCK), + #define XLAT_VAL_23 ((unsigned) (RLIMIT_MEMLOCK)) + #define XLAT_STR_23 STRINGIFY(RLIMIT_MEMLOCK) [RLIMIT_AS] = XLAT(RLIMIT_AS), + #define XLAT_VAL_24 ((unsigned) (RLIMIT_AS)) + #define XLAT_STR_24 STRINGIFY(RLIMIT_AS) #endif [RLIMIT_LOCKS] = XLAT(RLIMIT_LOCKS), + #define XLAT_VAL_25 ((unsigned) (RLIMIT_LOCKS)) + #define XLAT_STR_25 STRINGIFY(RLIMIT_LOCKS) [RLIMIT_SIGPENDING] = XLAT(RLIMIT_SIGPENDING), + #define XLAT_VAL_26 ((unsigned) (RLIMIT_SIGPENDING)) + #define XLAT_STR_26 STRINGIFY(RLIMIT_SIGPENDING) [RLIMIT_MSGQUEUE] = XLAT(RLIMIT_MSGQUEUE), + #define XLAT_VAL_27 ((unsigned) (RLIMIT_MSGQUEUE)) + #define XLAT_STR_27 STRINGIFY(RLIMIT_MSGQUEUE) [RLIMIT_NICE] = XLAT(RLIMIT_NICE), + #define XLAT_VAL_28 ((unsigned) (RLIMIT_NICE)) + #define XLAT_STR_28 STRINGIFY(RLIMIT_NICE) [RLIMIT_RTPRIO] = XLAT(RLIMIT_RTPRIO), + #define XLAT_VAL_29 ((unsigned) (RLIMIT_RTPRIO)) + #define XLAT_STR_29 STRINGIFY(RLIMIT_RTPRIO) [RLIMIT_RTTIME] = XLAT(RLIMIT_RTTIME), - XLAT_END + #define XLAT_VAL_30 ((unsigned) (RLIMIT_RTTIME)) + #define XLAT_STR_30 STRINGIFY(RLIMIT_RTTIME) }; +static +const struct xlat resources[1] = { { + .data = resources_xdata, + .size = ARRAY_SIZE(resources_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/riscv_flush_icache_flags.h b/xlat/riscv_flush_icache_flags.h index 4b9a812b..880a8818 100644 --- a/xlat/riscv_flush_icache_flags.h +++ b/xlat/riscv_flush_icache_flags.h @@ -19,12 +19,30 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat riscv_flush_icache_flags[] = { +static const struct xlat_data riscv_flush_icache_flags_xdata[] = { XLAT(SYS_RISCV_FLUSH_ICACHE_LOCAL), - XLAT_END + #define XLAT_VAL_0 ((unsigned) (SYS_RISCV_FLUSH_ICACHE_LOCAL)) + #define XLAT_STR_0 STRINGIFY(SYS_RISCV_FLUSH_ICACHE_LOCAL) }; - +static +const struct xlat riscv_flush_icache_flags[1] = { { + .data = riscv_flush_icache_flags_xdata, + .size = ARRAY_SIZE(riscv_flush_icache_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/route_nexthop_flags.h b/xlat/route_nexthop_flags.h index d794c6c3..bfd00e8c 100644 --- a/xlat/route_nexthop_flags.h +++ b/xlat/route_nexthop_flags.h @@ -54,17 +54,85 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat route_nexthop_flags[] = { +static const struct xlat_data route_nexthop_flags_xdata[] = { XLAT(RTNH_F_DEAD), + #define XLAT_VAL_0 ((unsigned) (RTNH_F_DEAD)) + #define XLAT_STR_0 STRINGIFY(RTNH_F_DEAD) XLAT(RTNH_F_PERVASIVE), + #define XLAT_VAL_1 ((unsigned) (RTNH_F_PERVASIVE)) + #define XLAT_STR_1 STRINGIFY(RTNH_F_PERVASIVE) XLAT(RTNH_F_ONLINK), + #define XLAT_VAL_2 ((unsigned) (RTNH_F_ONLINK)) + #define XLAT_STR_2 STRINGIFY(RTNH_F_ONLINK) XLAT(RTNH_F_OFFLOAD), + #define XLAT_VAL_3 ((unsigned) (RTNH_F_OFFLOAD)) + #define XLAT_STR_3 STRINGIFY(RTNH_F_OFFLOAD) XLAT(RTNH_F_LINKDOWN), + #define XLAT_VAL_4 ((unsigned) (RTNH_F_LINKDOWN)) + #define XLAT_STR_4 STRINGIFY(RTNH_F_LINKDOWN) XLAT(RTNH_F_UNRESOLVED), - XLAT_END + #define XLAT_VAL_5 ((unsigned) (RTNH_F_UNRESOLVED)) + #define XLAT_STR_5 STRINGIFY(RTNH_F_UNRESOLVED) }; +static +const struct xlat route_nexthop_flags[1] = { { + .data = route_nexthop_flags_xdata, + .size = ARRAY_SIZE(route_nexthop_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/routing_flags.h b/xlat/routing_flags.h index fa6a212c..9412c904 100644 --- a/xlat/routing_flags.h +++ b/xlat/routing_flags.h @@ -3,35 +3,172 @@ #include "gcc_compat.h" #include "static_assert.h" - -#ifndef XLAT_MACROS_ONLY - -# ifdef IN_MPERS - -# error static const struct xlat routing_flags in mpers mode - -# else - -static -const struct xlat routing_flags[] = { #if defined(RTM_F_NOTIFY) || (defined(HAVE_DECL_RTM_F_NOTIFY) && HAVE_DECL_RTM_F_NOTIFY) - XLAT(RTM_F_NOTIFY), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTM_F_NOTIFY) == (0x100), "RTM_F_NOTIFY != 0x100"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTM_F_NOTIFY 0x100 #endif #if defined(RTM_F_CLONED) || (defined(HAVE_DECL_RTM_F_CLONED) && HAVE_DECL_RTM_F_CLONED) - XLAT(RTM_F_CLONED), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTM_F_CLONED) == (0x200), "RTM_F_CLONED != 0x200"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTM_F_CLONED 0x200 #endif #if defined(RTM_F_EQUALIZE) || (defined(HAVE_DECL_RTM_F_EQUALIZE) && HAVE_DECL_RTM_F_EQUALIZE) - XLAT(RTM_F_EQUALIZE), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTM_F_EQUALIZE) == (0x400), "RTM_F_EQUALIZE != 0x400"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTM_F_EQUALIZE 0x400 #endif #if defined(RTM_F_PREFIX) || (defined(HAVE_DECL_RTM_F_PREFIX) && HAVE_DECL_RTM_F_PREFIX) - XLAT(RTM_F_PREFIX), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTM_F_PREFIX) == (0x800), "RTM_F_PREFIX != 0x800"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTM_F_PREFIX 0x800 #endif #if defined(RTM_F_LOOKUP_TABLE) || (defined(HAVE_DECL_RTM_F_LOOKUP_TABLE) && HAVE_DECL_RTM_F_LOOKUP_TABLE) - XLAT(RTM_F_LOOKUP_TABLE), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTM_F_LOOKUP_TABLE) == (0x1000), "RTM_F_LOOKUP_TABLE != 0x1000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTM_F_LOOKUP_TABLE 0x1000 +#endif +#if defined(RTM_F_FIB_MATCH) || (defined(HAVE_DECL_RTM_F_FIB_MATCH) && HAVE_DECL_RTM_F_FIB_MATCH) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTM_F_FIB_MATCH) == (0x2000), "RTM_F_FIB_MATCH != 0x2000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTM_F_FIB_MATCH 0x2000 +#endif +#if defined(RTM_F_OFFLOAD) || (defined(HAVE_DECL_RTM_F_OFFLOAD) && HAVE_DECL_RTM_F_OFFLOAD) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTM_F_OFFLOAD) == (0x4000), "RTM_F_OFFLOAD != 0x4000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTM_F_OFFLOAD 0x4000 #endif - XLAT_END +#if defined(RTM_F_TRAP) || (defined(HAVE_DECL_RTM_F_TRAP) && HAVE_DECL_RTM_F_TRAP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTM_F_TRAP) == (0x8000), "RTM_F_TRAP != 0x8000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTM_F_TRAP 0x8000 +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat routing_flags in mpers mode + +# else + +static const struct xlat_data routing_flags_xdata[] = { + XLAT(RTM_F_NOTIFY), + #define XLAT_VAL_0 ((unsigned) (RTM_F_NOTIFY)) + #define XLAT_STR_0 STRINGIFY(RTM_F_NOTIFY) + XLAT(RTM_F_CLONED), + #define XLAT_VAL_1 ((unsigned) (RTM_F_CLONED)) + #define XLAT_STR_1 STRINGIFY(RTM_F_CLONED) + XLAT(RTM_F_EQUALIZE), + #define XLAT_VAL_2 ((unsigned) (RTM_F_EQUALIZE)) + #define XLAT_STR_2 STRINGIFY(RTM_F_EQUALIZE) + XLAT(RTM_F_PREFIX), + #define XLAT_VAL_3 ((unsigned) (RTM_F_PREFIX)) + #define XLAT_STR_3 STRINGIFY(RTM_F_PREFIX) + XLAT(RTM_F_LOOKUP_TABLE), + #define XLAT_VAL_4 ((unsigned) (RTM_F_LOOKUP_TABLE)) + #define XLAT_STR_4 STRINGIFY(RTM_F_LOOKUP_TABLE) + XLAT(RTM_F_FIB_MATCH), + #define XLAT_VAL_5 ((unsigned) (RTM_F_FIB_MATCH)) + #define XLAT_STR_5 STRINGIFY(RTM_F_FIB_MATCH) + XLAT(RTM_F_OFFLOAD), + #define XLAT_VAL_6 ((unsigned) (RTM_F_OFFLOAD)) + #define XLAT_STR_6 STRINGIFY(RTM_F_OFFLOAD) + XLAT(RTM_F_TRAP), + #define XLAT_VAL_7 ((unsigned) (RTM_F_TRAP)) + #define XLAT_STR_7 STRINGIFY(RTM_F_TRAP) }; +static +const struct xlat routing_flags[1] = { { + .data = routing_flags_xdata, + .size = ARRAY_SIZE(routing_flags_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/routing_flags.in b/xlat/routing_flags.in index fe66b678..28501a27 100644 --- a/xlat/routing_flags.in +++ b/xlat/routing_flags.in @@ -1,5 +1,9 @@ -RTM_F_NOTIFY -RTM_F_CLONED -RTM_F_EQUALIZE -RTM_F_PREFIX -RTM_F_LOOKUP_TABLE +#sorted sort -k2,2g +RTM_F_NOTIFY 0x100 +RTM_F_CLONED 0x200 +RTM_F_EQUALIZE 0x400 +RTM_F_PREFIX 0x800 +RTM_F_LOOKUP_TABLE 0x1000 +RTM_F_FIB_MATCH 0x2000 +RTM_F_OFFLOAD 0x4000 +RTM_F_TRAP 0x8000 diff --git a/xlat/routing_protocols.h b/xlat/routing_protocols.h index bf51f164..3d865863 100644 --- a/xlat/routing_protocols.h +++ b/xlat/routing_protocols.h @@ -108,6 +108,13 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define RTPROT_MROUTED 17 #endif +#if defined(RTPROT_KEEPALIVED) || (defined(HAVE_DECL_RTPROT_KEEPALIVED) && HAVE_DECL_RTPROT_KEEPALIVED) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTPROT_KEEPALIVED) == (18), "RTPROT_KEEPALIVED != 18"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTPROT_KEEPALIVED 18 +#endif #if defined(RTPROT_BABEL) || (defined(HAVE_DECL_RTPROT_BABEL) && HAVE_DECL_RTPROT_BABEL) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((RTPROT_BABEL) == (42), "RTPROT_BABEL != 42"); @@ -159,33 +166,261 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat routing_protocols[] = { - +static const struct xlat_data routing_protocols_xdata[] = { XLAT(RTPROT_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (RTPROT_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(RTPROT_UNSPEC) XLAT(RTPROT_REDIRECT), + #define XLAT_VAL_1 ((unsigned) (RTPROT_REDIRECT)) + #define XLAT_STR_1 STRINGIFY(RTPROT_REDIRECT) XLAT(RTPROT_KERNEL), + #define XLAT_VAL_2 ((unsigned) (RTPROT_KERNEL)) + #define XLAT_STR_2 STRINGIFY(RTPROT_KERNEL) XLAT(RTPROT_BOOT), + #define XLAT_VAL_3 ((unsigned) (RTPROT_BOOT)) + #define XLAT_STR_3 STRINGIFY(RTPROT_BOOT) XLAT(RTPROT_STATIC), + #define XLAT_VAL_4 ((unsigned) (RTPROT_STATIC)) + #define XLAT_STR_4 STRINGIFY(RTPROT_STATIC) XLAT(RTPROT_GATED), + #define XLAT_VAL_5 ((unsigned) (RTPROT_GATED)) + #define XLAT_STR_5 STRINGIFY(RTPROT_GATED) XLAT(RTPROT_RA), + #define XLAT_VAL_6 ((unsigned) (RTPROT_RA)) + #define XLAT_STR_6 STRINGIFY(RTPROT_RA) XLAT(RTPROT_MRT), + #define XLAT_VAL_7 ((unsigned) (RTPROT_MRT)) + #define XLAT_STR_7 STRINGIFY(RTPROT_MRT) XLAT(RTPROT_ZEBRA), + #define XLAT_VAL_8 ((unsigned) (RTPROT_ZEBRA)) + #define XLAT_STR_8 STRINGIFY(RTPROT_ZEBRA) XLAT(RTPROT_BIRD), + #define XLAT_VAL_9 ((unsigned) (RTPROT_BIRD)) + #define XLAT_STR_9 STRINGIFY(RTPROT_BIRD) XLAT(RTPROT_DNROUTED), + #define XLAT_VAL_10 ((unsigned) (RTPROT_DNROUTED)) + #define XLAT_STR_10 STRINGIFY(RTPROT_DNROUTED) XLAT(RTPROT_XORP), + #define XLAT_VAL_11 ((unsigned) (RTPROT_XORP)) + #define XLAT_STR_11 STRINGIFY(RTPROT_XORP) XLAT(RTPROT_NTK), + #define XLAT_VAL_12 ((unsigned) (RTPROT_NTK)) + #define XLAT_STR_12 STRINGIFY(RTPROT_NTK) XLAT(RTPROT_DHCP), + #define XLAT_VAL_13 ((unsigned) (RTPROT_DHCP)) + #define XLAT_STR_13 STRINGIFY(RTPROT_DHCP) XLAT(RTPROT_MROUTED), + #define XLAT_VAL_14 ((unsigned) (RTPROT_MROUTED)) + #define XLAT_STR_14 STRINGIFY(RTPROT_MROUTED) + XLAT(RTPROT_KEEPALIVED), + #define XLAT_VAL_15 ((unsigned) (RTPROT_KEEPALIVED)) + #define XLAT_STR_15 STRINGIFY(RTPROT_KEEPALIVED) XLAT(RTPROT_BABEL), + #define XLAT_VAL_16 ((unsigned) (RTPROT_BABEL)) + #define XLAT_STR_16 STRINGIFY(RTPROT_BABEL) XLAT(RTPROT_BGP), + #define XLAT_VAL_17 ((unsigned) (RTPROT_BGP)) + #define XLAT_STR_17 STRINGIFY(RTPROT_BGP) XLAT(RTPROT_ISIS), + #define XLAT_VAL_18 ((unsigned) (RTPROT_ISIS)) + #define XLAT_STR_18 STRINGIFY(RTPROT_ISIS) XLAT(RTPROT_OSPF), + #define XLAT_VAL_19 ((unsigned) (RTPROT_OSPF)) + #define XLAT_STR_19 STRINGIFY(RTPROT_OSPF) XLAT(RTPROT_RIP), + #define XLAT_VAL_20 ((unsigned) (RTPROT_RIP)) + #define XLAT_STR_20 STRINGIFY(RTPROT_RIP) XLAT(RTPROT_EIGRP), - XLAT_END + #define XLAT_VAL_21 ((unsigned) (RTPROT_EIGRP)) + #define XLAT_STR_21 STRINGIFY(RTPROT_EIGRP) }; +static +const struct xlat routing_protocols[1] = { { + .data = routing_protocols_xdata, + .size = ARRAY_SIZE(routing_protocols_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/routing_protocols.in b/xlat/routing_protocols.in index 5433c25e..4c6897d8 100644 --- a/xlat/routing_protocols.in +++ b/xlat/routing_protocols.in @@ -1,4 +1,4 @@ -/* sort -k2,2n */ +#sorted sort -k2,2n RTPROT_UNSPEC 0 RTPROT_REDIRECT 1 RTPROT_KERNEL 2 @@ -14,6 +14,7 @@ RTPROT_XORP 14 RTPROT_NTK 15 RTPROT_DHCP 16 RTPROT_MROUTED 17 +RTPROT_KEEPALIVED 18 RTPROT_BABEL 42 RTPROT_BGP 186 RTPROT_ISIS 187 diff --git a/xlat/routing_scopes.h b/xlat/routing_scopes.h index f718f3b4..b99e9524 100644 --- a/xlat/routing_scopes.h +++ b/xlat/routing_scopes.h @@ -43,15 +43,73 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # ifndef IN_MPERS -const struct xlat routing_scopes[] = { +static const struct xlat_data routing_scopes_xdata[] = { XLAT(RT_SCOPE_UNIVERSE), + #define XLAT_VAL_0 ((unsigned) (RT_SCOPE_UNIVERSE)) + #define XLAT_STR_0 STRINGIFY(RT_SCOPE_UNIVERSE) XLAT(RT_SCOPE_SITE), + #define XLAT_VAL_1 ((unsigned) (RT_SCOPE_SITE)) + #define XLAT_STR_1 STRINGIFY(RT_SCOPE_SITE) XLAT(RT_SCOPE_LINK), + #define XLAT_VAL_2 ((unsigned) (RT_SCOPE_LINK)) + #define XLAT_STR_2 STRINGIFY(RT_SCOPE_LINK) XLAT(RT_SCOPE_HOST), + #define XLAT_VAL_3 ((unsigned) (RT_SCOPE_HOST)) + #define XLAT_STR_3 STRINGIFY(RT_SCOPE_HOST) XLAT(RT_SCOPE_NOWHERE), - XLAT_END + #define XLAT_VAL_4 ((unsigned) (RT_SCOPE_NOWHERE)) + #define XLAT_STR_4 STRINGIFY(RT_SCOPE_NOWHERE) }; +const struct xlat routing_scopes[1] = { { + .data = routing_scopes_xdata, + .size = ARRAY_SIZE(routing_scopes_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/routing_table_ids.h b/xlat/routing_table_ids.h index 9bab8026..a23d8755 100644 --- a/xlat/routing_table_ids.h +++ b/xlat/routing_table_ids.h @@ -43,15 +43,73 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # ifndef IN_MPERS -const struct xlat routing_table_ids[] = { +static const struct xlat_data routing_table_ids_xdata[] = { XLAT(RT_TABLE_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (RT_TABLE_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(RT_TABLE_UNSPEC) XLAT(RT_TABLE_COMPAT), + #define XLAT_VAL_1 ((unsigned) (RT_TABLE_COMPAT)) + #define XLAT_STR_1 STRINGIFY(RT_TABLE_COMPAT) XLAT(RT_TABLE_DEFAULT), + #define XLAT_VAL_2 ((unsigned) (RT_TABLE_DEFAULT)) + #define XLAT_STR_2 STRINGIFY(RT_TABLE_DEFAULT) XLAT(RT_TABLE_MAIN), + #define XLAT_VAL_3 ((unsigned) (RT_TABLE_MAIN)) + #define XLAT_STR_3 STRINGIFY(RT_TABLE_MAIN) XLAT(RT_TABLE_LOCAL), - XLAT_END + #define XLAT_VAL_4 ((unsigned) (RT_TABLE_LOCAL)) + #define XLAT_STR_4 STRINGIFY(RT_TABLE_LOCAL) }; +const struct xlat routing_table_ids[1] = { { + .data = routing_table_ids_xdata, + .size = ARRAY_SIZE(routing_table_ids_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/routing_types.h b/xlat/routing_types.h index e5b76fc3..e3b0f7e4 100644 --- a/xlat/routing_types.h +++ b/xlat/routing_types.h @@ -92,22 +92,150 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # ifndef IN_MPERS -const struct xlat routing_types[] = { - XLAT(RTN_UNSPEC), - XLAT(RTN_UNICAST), - XLAT(RTN_LOCAL), - XLAT(RTN_BROADCAST), - XLAT(RTN_ANYCAST), - XLAT(RTN_MULTICAST), - XLAT(RTN_BLACKHOLE), - XLAT(RTN_UNREACHABLE), - XLAT(RTN_PROHIBIT), - XLAT(RTN_THROW), - XLAT(RTN_NAT), - XLAT(RTN_XRESOLVE), - XLAT_END +static const struct xlat_data routing_types_xdata[] = { + [RTN_UNSPEC] = XLAT(RTN_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (RTN_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(RTN_UNSPEC) + [RTN_UNICAST] = XLAT(RTN_UNICAST), + #define XLAT_VAL_1 ((unsigned) (RTN_UNICAST)) + #define XLAT_STR_1 STRINGIFY(RTN_UNICAST) + [RTN_LOCAL] = XLAT(RTN_LOCAL), + #define XLAT_VAL_2 ((unsigned) (RTN_LOCAL)) + #define XLAT_STR_2 STRINGIFY(RTN_LOCAL) + [RTN_BROADCAST] = XLAT(RTN_BROADCAST), + #define XLAT_VAL_3 ((unsigned) (RTN_BROADCAST)) + #define XLAT_STR_3 STRINGIFY(RTN_BROADCAST) + [RTN_ANYCAST] = XLAT(RTN_ANYCAST), + #define XLAT_VAL_4 ((unsigned) (RTN_ANYCAST)) + #define XLAT_STR_4 STRINGIFY(RTN_ANYCAST) + [RTN_MULTICAST] = XLAT(RTN_MULTICAST), + #define XLAT_VAL_5 ((unsigned) (RTN_MULTICAST)) + #define XLAT_STR_5 STRINGIFY(RTN_MULTICAST) + [RTN_BLACKHOLE] = XLAT(RTN_BLACKHOLE), + #define XLAT_VAL_6 ((unsigned) (RTN_BLACKHOLE)) + #define XLAT_STR_6 STRINGIFY(RTN_BLACKHOLE) + [RTN_UNREACHABLE] = XLAT(RTN_UNREACHABLE), + #define XLAT_VAL_7 ((unsigned) (RTN_UNREACHABLE)) + #define XLAT_STR_7 STRINGIFY(RTN_UNREACHABLE) + [RTN_PROHIBIT] = XLAT(RTN_PROHIBIT), + #define XLAT_VAL_8 ((unsigned) (RTN_PROHIBIT)) + #define XLAT_STR_8 STRINGIFY(RTN_PROHIBIT) + [RTN_THROW] = XLAT(RTN_THROW), + #define XLAT_VAL_9 ((unsigned) (RTN_THROW)) + #define XLAT_STR_9 STRINGIFY(RTN_THROW) + [RTN_NAT] = XLAT(RTN_NAT), + #define XLAT_VAL_10 ((unsigned) (RTN_NAT)) + #define XLAT_STR_10 STRINGIFY(RTN_NAT) + [RTN_XRESOLVE] = XLAT(RTN_XRESOLVE), + #define XLAT_VAL_11 ((unsigned) (RTN_XRESOLVE)) + #define XLAT_STR_11 STRINGIFY(RTN_XRESOLVE) }; +const struct xlat routing_types[1] = { { + .data = routing_types_xdata, + .size = ARRAY_SIZE(routing_types_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/routing_types.in b/xlat/routing_types.in index f7079d4e..e9656a7d 100644 --- a/xlat/routing_types.in +++ b/xlat/routing_types.in @@ -1,3 +1,4 @@ +#value_indexed RTN_UNSPEC 0 RTN_UNICAST 1 RTN_LOCAL 2 diff --git a/xlat/rtc_ioctl_cmds.h b/xlat/rtc_ioctl_cmds.h new file mode 100644 index 00000000..a95a0d6a --- /dev/null +++ b/xlat/rtc_ioctl_cmds.h @@ -0,0 +1,360 @@ +/* Generated by ./xlat/gen.sh from ./xlat/rtc_ioctl_cmds.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined(RTC_AIE_ON) || (defined(HAVE_DECL_RTC_AIE_ON) && HAVE_DECL_RTC_AIE_ON) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTC_AIE_ON) == (_IO ('p', 0x01)), "RTC_AIE_ON != _IO ('p', 0x01)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTC_AIE_ON _IO ('p', 0x01) +#endif +#if defined(RTC_AIE_OFF) || (defined(HAVE_DECL_RTC_AIE_OFF) && HAVE_DECL_RTC_AIE_OFF) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTC_AIE_OFF) == (_IO ('p', 0x02)), "RTC_AIE_OFF != _IO ('p', 0x02)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTC_AIE_OFF _IO ('p', 0x02) +#endif +#if defined(RTC_UIE_ON) || (defined(HAVE_DECL_RTC_UIE_ON) && HAVE_DECL_RTC_UIE_ON) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTC_UIE_ON) == (_IO ('p', 0x03)), "RTC_UIE_ON != _IO ('p', 0x03)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTC_UIE_ON _IO ('p', 0x03) +#endif +#if defined(RTC_UIE_OFF) || (defined(HAVE_DECL_RTC_UIE_OFF) && HAVE_DECL_RTC_UIE_OFF) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTC_UIE_OFF) == (_IO ('p', 0x04)), "RTC_UIE_OFF != _IO ('p', 0x04)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTC_UIE_OFF _IO ('p', 0x04) +#endif +#if defined(RTC_PIE_ON) || (defined(HAVE_DECL_RTC_PIE_ON) && HAVE_DECL_RTC_PIE_ON) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTC_PIE_ON) == (_IO ('p', 0x05)), "RTC_PIE_ON != _IO ('p', 0x05)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTC_PIE_ON _IO ('p', 0x05) +#endif +#if defined(RTC_PIE_OFF) || (defined(HAVE_DECL_RTC_PIE_OFF) && HAVE_DECL_RTC_PIE_OFF) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTC_PIE_OFF) == (_IO ('p', 0x06)), "RTC_PIE_OFF != _IO ('p', 0x06)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTC_PIE_OFF _IO ('p', 0x06) +#endif +#if defined(RTC_WIE_ON) || (defined(HAVE_DECL_RTC_WIE_ON) && HAVE_DECL_RTC_WIE_ON) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTC_WIE_ON) == (_IO ('p', 0x0f)), "RTC_WIE_ON != _IO ('p', 0x0f)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTC_WIE_ON _IO ('p', 0x0f) +#endif +#if defined(RTC_WIE_OFF) || (defined(HAVE_DECL_RTC_WIE_OFF) && HAVE_DECL_RTC_WIE_OFF) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTC_WIE_OFF) == (_IO ('p', 0x10)), "RTC_WIE_OFF != _IO ('p', 0x10)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTC_WIE_OFF _IO ('p', 0x10) +#endif +#if defined(RTC_ALM_SET) || (defined(HAVE_DECL_RTC_ALM_SET) && HAVE_DECL_RTC_ALM_SET) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTC_ALM_SET) == (_IOW('p', 0x07, struct rtc_time)), "RTC_ALM_SET != _IOW('p', 0x07, struct rtc_time)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTC_ALM_SET _IOW('p', 0x07, struct rtc_time) +#endif +#if defined(RTC_ALM_READ) || (defined(HAVE_DECL_RTC_ALM_READ) && HAVE_DECL_RTC_ALM_READ) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTC_ALM_READ) == (_IOR('p', 0x08, struct rtc_time)), "RTC_ALM_READ != _IOR('p', 0x08, struct rtc_time)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTC_ALM_READ _IOR('p', 0x08, struct rtc_time) +#endif +#if defined(RTC_RD_TIME) || (defined(HAVE_DECL_RTC_RD_TIME) && HAVE_DECL_RTC_RD_TIME) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTC_RD_TIME) == (_IOR('p', 0x09, struct rtc_time)), "RTC_RD_TIME != _IOR('p', 0x09, struct rtc_time)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTC_RD_TIME _IOR('p', 0x09, struct rtc_time) +#endif +#if defined(RTC_SET_TIME) || (defined(HAVE_DECL_RTC_SET_TIME) && HAVE_DECL_RTC_SET_TIME) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTC_SET_TIME) == (_IOW('p', 0x0a, struct rtc_time)), "RTC_SET_TIME != _IOW('p', 0x0a, struct rtc_time)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTC_SET_TIME _IOW('p', 0x0a, struct rtc_time) +#endif +#if defined(RTC_WKALM_SET) || (defined(HAVE_DECL_RTC_WKALM_SET) && HAVE_DECL_RTC_WKALM_SET) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTC_WKALM_SET) == (_IOW('p', 0x0f, struct rtc_wkalrm)), "RTC_WKALM_SET != _IOW('p', 0x0f, struct rtc_wkalrm)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTC_WKALM_SET _IOW('p', 0x0f, struct rtc_wkalrm) +#endif +#if defined(RTC_WKALM_RD) || (defined(HAVE_DECL_RTC_WKALM_RD) && HAVE_DECL_RTC_WKALM_RD) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTC_WKALM_RD) == (_IOR('p', 0x10, struct rtc_wkalrm)), "RTC_WKALM_RD != _IOR('p', 0x10, struct rtc_wkalrm)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTC_WKALM_RD _IOR('p', 0x10, struct rtc_wkalrm) +#endif +#if defined(RTC_PLL_GET) || (defined(HAVE_DECL_RTC_PLL_GET) && HAVE_DECL_RTC_PLL_GET) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTC_PLL_GET) == (_IOR('p', 0x11, struct_rtc_pll_info)), "RTC_PLL_GET != _IOR('p', 0x11, struct_rtc_pll_info)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTC_PLL_GET _IOR('p', 0x11, struct_rtc_pll_info) +#endif +#if defined(RTC_PLL_SET) || (defined(HAVE_DECL_RTC_PLL_SET) && HAVE_DECL_RTC_PLL_SET) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTC_PLL_SET) == (_IOW('p', 0x12, struct_rtc_pll_info)), "RTC_PLL_SET != _IOW('p', 0x12, struct_rtc_pll_info)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTC_PLL_SET _IOW('p', 0x12, struct_rtc_pll_info) +#endif +#if defined(RTC_VL_READ) || (defined(HAVE_DECL_RTC_VL_READ) && HAVE_DECL_RTC_VL_READ) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTC_VL_READ) == (_IOR('p', 0x13, unsigned int)), "RTC_VL_READ != _IOR('p', 0x13, unsigned int)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTC_VL_READ _IOR('p', 0x13, unsigned int) +#endif +#if defined(RTC_VL_CLR) || (defined(HAVE_DECL_RTC_VL_CLR) && HAVE_DECL_RTC_VL_CLR) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTC_VL_CLR) == (_IO ('p', 0x14)), "RTC_VL_CLR != _IO ('p', 0x14)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTC_VL_CLR _IO ('p', 0x14) +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +extern const struct xlat rtc_ioctl_cmds[]; + +# else + +static const struct xlat_data rtc_ioctl_cmds_xdata[] = { + XLAT(RTC_AIE_ON), + #define XLAT_VAL_0 ((unsigned) (RTC_AIE_ON)) + #define XLAT_STR_0 STRINGIFY(RTC_AIE_ON) + XLAT(RTC_AIE_OFF), + #define XLAT_VAL_1 ((unsigned) (RTC_AIE_OFF)) + #define XLAT_STR_1 STRINGIFY(RTC_AIE_OFF) + XLAT(RTC_UIE_ON), + #define XLAT_VAL_2 ((unsigned) (RTC_UIE_ON)) + #define XLAT_STR_2 STRINGIFY(RTC_UIE_ON) + XLAT(RTC_UIE_OFF), + #define XLAT_VAL_3 ((unsigned) (RTC_UIE_OFF)) + #define XLAT_STR_3 STRINGIFY(RTC_UIE_OFF) + XLAT(RTC_PIE_ON), + #define XLAT_VAL_4 ((unsigned) (RTC_PIE_ON)) + #define XLAT_STR_4 STRINGIFY(RTC_PIE_ON) + XLAT(RTC_PIE_OFF), + #define XLAT_VAL_5 ((unsigned) (RTC_PIE_OFF)) + #define XLAT_STR_5 STRINGIFY(RTC_PIE_OFF) + XLAT(RTC_WIE_ON), + #define XLAT_VAL_6 ((unsigned) (RTC_WIE_ON)) + #define XLAT_STR_6 STRINGIFY(RTC_WIE_ON) + XLAT(RTC_WIE_OFF), + #define XLAT_VAL_7 ((unsigned) (RTC_WIE_OFF)) + #define XLAT_STR_7 STRINGIFY(RTC_WIE_OFF) + XLAT(RTC_ALM_SET), + #define XLAT_VAL_8 ((unsigned) (RTC_ALM_SET)) + #define XLAT_STR_8 STRINGIFY(RTC_ALM_SET) + XLAT(RTC_ALM_READ), + #define XLAT_VAL_9 ((unsigned) (RTC_ALM_READ)) + #define XLAT_STR_9 STRINGIFY(RTC_ALM_READ) + XLAT(RTC_RD_TIME), + #define XLAT_VAL_10 ((unsigned) (RTC_RD_TIME)) + #define XLAT_STR_10 STRINGIFY(RTC_RD_TIME) + XLAT(RTC_SET_TIME), + #define XLAT_VAL_11 ((unsigned) (RTC_SET_TIME)) + #define XLAT_STR_11 STRINGIFY(RTC_SET_TIME) + + + + + XLAT(RTC_WKALM_SET), + #define XLAT_VAL_12 ((unsigned) (RTC_WKALM_SET)) + #define XLAT_STR_12 STRINGIFY(RTC_WKALM_SET) + XLAT(RTC_WKALM_RD), + #define XLAT_VAL_13 ((unsigned) (RTC_WKALM_RD)) + #define XLAT_STR_13 STRINGIFY(RTC_WKALM_RD) + XLAT(RTC_PLL_GET), + #define XLAT_VAL_14 ((unsigned) (RTC_PLL_GET)) + #define XLAT_STR_14 STRINGIFY(RTC_PLL_GET) + XLAT(RTC_PLL_SET), + #define XLAT_VAL_15 ((unsigned) (RTC_PLL_SET)) + #define XLAT_STR_15 STRINGIFY(RTC_PLL_SET) + XLAT(RTC_VL_READ), + #define XLAT_VAL_16 ((unsigned) (RTC_VL_READ)) + #define XLAT_STR_16 STRINGIFY(RTC_VL_READ) + XLAT(RTC_VL_CLR), + #define XLAT_VAL_17 ((unsigned) (RTC_VL_CLR)) + #define XLAT_STR_17 STRINGIFY(RTC_VL_CLR) +}; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat rtc_ioctl_cmds[1] = { { + .data = rtc_ioctl_cmds_xdata, + .size = ARRAY_SIZE(rtc_ioctl_cmds_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtc_ioctl_cmds.in b/xlat/rtc_ioctl_cmds.in new file mode 100644 index 00000000..cc781982 --- /dev/null +++ b/xlat/rtc_ioctl_cmds.in @@ -0,0 +1,22 @@ +RTC_AIE_ON _IO ('p', 0x01) +RTC_AIE_OFF _IO ('p', 0x02) +RTC_UIE_ON _IO ('p', 0x03) +RTC_UIE_OFF _IO ('p', 0x04) +RTC_PIE_ON _IO ('p', 0x05) +RTC_PIE_OFF _IO ('p', 0x06) +RTC_WIE_ON _IO ('p', 0x0f) +RTC_WIE_OFF _IO ('p', 0x10) +RTC_ALM_SET _IOW('p', 0x07, struct rtc_time) +RTC_ALM_READ _IOR('p', 0x08, struct rtc_time) +RTC_RD_TIME _IOR('p', 0x09, struct rtc_time) +RTC_SET_TIME _IOW('p', 0x0a, struct rtc_time) +/* RTC_IRQP_READ _IOR('p', 0x0b, unsigned long) - mpers-dependent */ +/* RTC_IRQP_SET _IOW('p', 0x0c, unsigned long) - mpers-dependent */ +/* RTC_EPOCH_READ _IOR('p', 0x0d, unsigned long) - mpers-dependent */ +/* RTC_EPOCH_SET _IOW('p', 0x0e, unsigned long) - mpers-dependent */ +RTC_WKALM_SET _IOW('p', 0x0f, struct rtc_wkalrm) +RTC_WKALM_RD _IOR('p', 0x10, struct rtc_wkalrm) +RTC_PLL_GET _IOR('p', 0x11, struct_rtc_pll_info) +RTC_PLL_SET _IOW('p', 0x12, struct_rtc_pll_info) +RTC_VL_READ _IOR('p', 0x13, unsigned int) +RTC_VL_CLR _IO ('p', 0x14) diff --git a/xlat/rtc_vl_flags.h b/xlat/rtc_vl_flags.h new file mode 100644 index 00000000..83b6a2aa --- /dev/null +++ b/xlat/rtc_vl_flags.h @@ -0,0 +1,122 @@ +/* Generated by ./xlat/gen.sh from ./xlat/rtc_vl_flags.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined(RTC_VL_DATA_INVALID) || (defined(HAVE_DECL_RTC_VL_DATA_INVALID) && HAVE_DECL_RTC_VL_DATA_INVALID) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTC_VL_DATA_INVALID) == ((1 << 0)), "RTC_VL_DATA_INVALID != (1 << 0)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTC_VL_DATA_INVALID (1 << 0) +#endif +#if defined(RTC_VL_BACKUP_LOW) || (defined(HAVE_DECL_RTC_VL_BACKUP_LOW) && HAVE_DECL_RTC_VL_BACKUP_LOW) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTC_VL_BACKUP_LOW) == ((1 << 1)), "RTC_VL_BACKUP_LOW != (1 << 1)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTC_VL_BACKUP_LOW (1 << 1) +#endif +#if defined(RTC_VL_BACKUP_EMPTY) || (defined(HAVE_DECL_RTC_VL_BACKUP_EMPTY) && HAVE_DECL_RTC_VL_BACKUP_EMPTY) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTC_VL_BACKUP_EMPTY) == ((1 << 2)), "RTC_VL_BACKUP_EMPTY != (1 << 2)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTC_VL_BACKUP_EMPTY (1 << 2) +#endif +#if defined(RTC_VL_ACCURACY_LOW) || (defined(HAVE_DECL_RTC_VL_ACCURACY_LOW) && HAVE_DECL_RTC_VL_ACCURACY_LOW) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTC_VL_ACCURACY_LOW) == ((1 << 3)), "RTC_VL_ACCURACY_LOW != (1 << 3)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTC_VL_ACCURACY_LOW (1 << 3) +#endif +#if defined(RTC_VL_BACKUP_SWITCH) || (defined(HAVE_DECL_RTC_VL_BACKUP_SWITCH) && HAVE_DECL_RTC_VL_BACKUP_SWITCH) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((RTC_VL_BACKUP_SWITCH) == ((1 << 4)), "RTC_VL_BACKUP_SWITCH != (1 << 4)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define RTC_VL_BACKUP_SWITCH (1 << 4) +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +extern const struct xlat rtc_vl_flags[]; + +# else + +static const struct xlat_data rtc_vl_flags_xdata[] = { + XLAT(RTC_VL_DATA_INVALID), + #define XLAT_VAL_0 ((unsigned) (RTC_VL_DATA_INVALID)) + #define XLAT_STR_0 STRINGIFY(RTC_VL_DATA_INVALID) + XLAT(RTC_VL_BACKUP_LOW), + #define XLAT_VAL_1 ((unsigned) (RTC_VL_BACKUP_LOW)) + #define XLAT_STR_1 STRINGIFY(RTC_VL_BACKUP_LOW) + XLAT(RTC_VL_BACKUP_EMPTY), + #define XLAT_VAL_2 ((unsigned) (RTC_VL_BACKUP_EMPTY)) + #define XLAT_STR_2 STRINGIFY(RTC_VL_BACKUP_EMPTY) + XLAT(RTC_VL_ACCURACY_LOW), + #define XLAT_VAL_3 ((unsigned) (RTC_VL_ACCURACY_LOW)) + #define XLAT_STR_3 STRINGIFY(RTC_VL_ACCURACY_LOW) + XLAT(RTC_VL_BACKUP_SWITCH), + #define XLAT_VAL_4 ((unsigned) (RTC_VL_BACKUP_SWITCH)) + #define XLAT_STR_4 STRINGIFY(RTC_VL_BACKUP_SWITCH) +}; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat rtc_vl_flags[1] = { { + .data = rtc_vl_flags_xdata, + .size = ARRAY_SIZE(rtc_vl_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtc_vl_flags.in b/xlat/rtc_vl_flags.in new file mode 100644 index 00000000..b8261827 --- /dev/null +++ b/xlat/rtc_vl_flags.in @@ -0,0 +1,5 @@ +RTC_VL_DATA_INVALID (1 << 0) +RTC_VL_BACKUP_LOW (1 << 1) +RTC_VL_BACKUP_EMPTY (1 << 2) +RTC_VL_ACCURACY_LOW (1 << 3) +RTC_VL_BACKUP_SWITCH (1 << 4) diff --git a/xlat/rtnl_addr_attrs.h b/xlat/rtnl_addr_attrs.h index 3e58ba23..c31d1b71 100644 --- a/xlat/rtnl_addr_attrs.h +++ b/xlat/rtnl_addr_attrs.h @@ -89,22 +89,140 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_addr_attrs[] = { - XLAT(IFA_UNSPEC), - XLAT(IFA_ADDRESS), - XLAT(IFA_LOCAL), - XLAT(IFA_LABEL), - XLAT(IFA_BROADCAST), - XLAT(IFA_ANYCAST), - XLAT(IFA_CACHEINFO), - XLAT(IFA_MULTICAST), - XLAT(IFA_FLAGS), - XLAT(IFA_RT_PRIORITY), - XLAT(IFA_TARGET_NETNSID), - XLAT_END +static const struct xlat_data rtnl_addr_attrs_xdata[] = { + [IFA_UNSPEC] = XLAT(IFA_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (IFA_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(IFA_UNSPEC) + [IFA_ADDRESS] = XLAT(IFA_ADDRESS), + #define XLAT_VAL_1 ((unsigned) (IFA_ADDRESS)) + #define XLAT_STR_1 STRINGIFY(IFA_ADDRESS) + [IFA_LOCAL] = XLAT(IFA_LOCAL), + #define XLAT_VAL_2 ((unsigned) (IFA_LOCAL)) + #define XLAT_STR_2 STRINGIFY(IFA_LOCAL) + [IFA_LABEL] = XLAT(IFA_LABEL), + #define XLAT_VAL_3 ((unsigned) (IFA_LABEL)) + #define XLAT_STR_3 STRINGIFY(IFA_LABEL) + [IFA_BROADCAST] = XLAT(IFA_BROADCAST), + #define XLAT_VAL_4 ((unsigned) (IFA_BROADCAST)) + #define XLAT_STR_4 STRINGIFY(IFA_BROADCAST) + [IFA_ANYCAST] = XLAT(IFA_ANYCAST), + #define XLAT_VAL_5 ((unsigned) (IFA_ANYCAST)) + #define XLAT_STR_5 STRINGIFY(IFA_ANYCAST) + [IFA_CACHEINFO] = XLAT(IFA_CACHEINFO), + #define XLAT_VAL_6 ((unsigned) (IFA_CACHEINFO)) + #define XLAT_STR_6 STRINGIFY(IFA_CACHEINFO) + [IFA_MULTICAST] = XLAT(IFA_MULTICAST), + #define XLAT_VAL_7 ((unsigned) (IFA_MULTICAST)) + #define XLAT_STR_7 STRINGIFY(IFA_MULTICAST) + [IFA_FLAGS] = XLAT(IFA_FLAGS), + #define XLAT_VAL_8 ((unsigned) (IFA_FLAGS)) + #define XLAT_STR_8 STRINGIFY(IFA_FLAGS) + [IFA_RT_PRIORITY] = XLAT(IFA_RT_PRIORITY), + #define XLAT_VAL_9 ((unsigned) (IFA_RT_PRIORITY)) + #define XLAT_STR_9 STRINGIFY(IFA_RT_PRIORITY) + [IFA_TARGET_NETNSID] = XLAT(IFA_TARGET_NETNSID), + #define XLAT_VAL_10 ((unsigned) (IFA_TARGET_NETNSID)) + #define XLAT_STR_10 STRINGIFY(IFA_TARGET_NETNSID) }; +static +const struct xlat rtnl_addr_attrs[1] = { { + .data = rtnl_addr_attrs_xdata, + .size = ARRAY_SIZE(rtnl_addr_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_addr_attrs.in b/xlat/rtnl_addr_attrs.in index 747a1c7d..71a9afb4 100644 --- a/xlat/rtnl_addr_attrs.in +++ b/xlat/rtnl_addr_attrs.in @@ -1,3 +1,4 @@ +#value_indexed IFA_UNSPEC 0 IFA_ADDRESS 1 IFA_LOCAL 2 diff --git a/xlat/rtnl_addrlabel_attrs.h b/xlat/rtnl_addrlabel_attrs.h index f4b7e7f6..30d9509b 100644 --- a/xlat/rtnl_addrlabel_attrs.h +++ b/xlat/rtnl_addrlabel_attrs.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_addrlabel_attrs[] = { - XLAT(IFAL_ADDRESS), - XLAT(IFAL_LABEL), - XLAT_END +static const struct xlat_data rtnl_addrlabel_attrs_xdata[] = { + [IFAL_ADDRESS] = XLAT(IFAL_ADDRESS), + #define XLAT_VAL_0 ((unsigned) (IFAL_ADDRESS)) + #define XLAT_STR_0 STRINGIFY(IFAL_ADDRESS) + [IFAL_LABEL] = XLAT(IFAL_LABEL), + #define XLAT_VAL_1 ((unsigned) (IFAL_LABEL)) + #define XLAT_STR_1 STRINGIFY(IFAL_LABEL) }; +static +const struct xlat rtnl_addrlabel_attrs[1] = { { + .data = rtnl_addrlabel_attrs_xdata, + .size = ARRAY_SIZE(rtnl_addrlabel_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_addrlabel_attrs.in b/xlat/rtnl_addrlabel_attrs.in index 0dc464d6..bae0b607 100644 --- a/xlat/rtnl_addrlabel_attrs.in +++ b/xlat/rtnl_addrlabel_attrs.in @@ -1,2 +1,3 @@ +#value_indexed IFAL_ADDRESS 1 IFAL_LABEL 2 diff --git a/xlat/rtnl_dcb_attrs.h b/xlat/rtnl_dcb_attrs.h index 9f2b6751..3a1f3bf8 100644 --- a/xlat/rtnl_dcb_attrs.h +++ b/xlat/rtnl_dcb_attrs.h @@ -131,28 +131,206 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_dcb_attrs[] = { - XLAT(DCB_ATTR_UNDEFINED), - XLAT(DCB_ATTR_IFNAME), - XLAT(DCB_ATTR_STATE), - XLAT(DCB_ATTR_PFC_STATE), - XLAT(DCB_ATTR_PFC_CFG), - XLAT(DCB_ATTR_NUM_TC), - XLAT(DCB_ATTR_PG_CFG), - XLAT(DCB_ATTR_SET_ALL), - XLAT(DCB_ATTR_PERM_HWADDR), - XLAT(DCB_ATTR_CAP), - XLAT(DCB_ATTR_NUMTCS), - XLAT(DCB_ATTR_BCN), - XLAT(DCB_ATTR_APP), - XLAT(DCB_ATTR_IEEE), - XLAT(DCB_ATTR_DCBX), - XLAT(DCB_ATTR_FEATCFG), - XLAT(DCB_ATTR_CEE), - XLAT_END +static const struct xlat_data rtnl_dcb_attrs_xdata[] = { + [DCB_ATTR_UNDEFINED] = XLAT(DCB_ATTR_UNDEFINED), + #define XLAT_VAL_0 ((unsigned) (DCB_ATTR_UNDEFINED)) + #define XLAT_STR_0 STRINGIFY(DCB_ATTR_UNDEFINED) + [DCB_ATTR_IFNAME] = XLAT(DCB_ATTR_IFNAME), + #define XLAT_VAL_1 ((unsigned) (DCB_ATTR_IFNAME)) + #define XLAT_STR_1 STRINGIFY(DCB_ATTR_IFNAME) + [DCB_ATTR_STATE] = XLAT(DCB_ATTR_STATE), + #define XLAT_VAL_2 ((unsigned) (DCB_ATTR_STATE)) + #define XLAT_STR_2 STRINGIFY(DCB_ATTR_STATE) + [DCB_ATTR_PFC_STATE] = XLAT(DCB_ATTR_PFC_STATE), + #define XLAT_VAL_3 ((unsigned) (DCB_ATTR_PFC_STATE)) + #define XLAT_STR_3 STRINGIFY(DCB_ATTR_PFC_STATE) + [DCB_ATTR_PFC_CFG] = XLAT(DCB_ATTR_PFC_CFG), + #define XLAT_VAL_4 ((unsigned) (DCB_ATTR_PFC_CFG)) + #define XLAT_STR_4 STRINGIFY(DCB_ATTR_PFC_CFG) + [DCB_ATTR_NUM_TC] = XLAT(DCB_ATTR_NUM_TC), + #define XLAT_VAL_5 ((unsigned) (DCB_ATTR_NUM_TC)) + #define XLAT_STR_5 STRINGIFY(DCB_ATTR_NUM_TC) + [DCB_ATTR_PG_CFG] = XLAT(DCB_ATTR_PG_CFG), + #define XLAT_VAL_6 ((unsigned) (DCB_ATTR_PG_CFG)) + #define XLAT_STR_6 STRINGIFY(DCB_ATTR_PG_CFG) + [DCB_ATTR_SET_ALL] = XLAT(DCB_ATTR_SET_ALL), + #define XLAT_VAL_7 ((unsigned) (DCB_ATTR_SET_ALL)) + #define XLAT_STR_7 STRINGIFY(DCB_ATTR_SET_ALL) + [DCB_ATTR_PERM_HWADDR] = XLAT(DCB_ATTR_PERM_HWADDR), + #define XLAT_VAL_8 ((unsigned) (DCB_ATTR_PERM_HWADDR)) + #define XLAT_STR_8 STRINGIFY(DCB_ATTR_PERM_HWADDR) + [DCB_ATTR_CAP] = XLAT(DCB_ATTR_CAP), + #define XLAT_VAL_9 ((unsigned) (DCB_ATTR_CAP)) + #define XLAT_STR_9 STRINGIFY(DCB_ATTR_CAP) + [DCB_ATTR_NUMTCS] = XLAT(DCB_ATTR_NUMTCS), + #define XLAT_VAL_10 ((unsigned) (DCB_ATTR_NUMTCS)) + #define XLAT_STR_10 STRINGIFY(DCB_ATTR_NUMTCS) + [DCB_ATTR_BCN] = XLAT(DCB_ATTR_BCN), + #define XLAT_VAL_11 ((unsigned) (DCB_ATTR_BCN)) + #define XLAT_STR_11 STRINGIFY(DCB_ATTR_BCN) + [DCB_ATTR_APP] = XLAT(DCB_ATTR_APP), + #define XLAT_VAL_12 ((unsigned) (DCB_ATTR_APP)) + #define XLAT_STR_12 STRINGIFY(DCB_ATTR_APP) + [DCB_ATTR_IEEE] = XLAT(DCB_ATTR_IEEE), + #define XLAT_VAL_13 ((unsigned) (DCB_ATTR_IEEE)) + #define XLAT_STR_13 STRINGIFY(DCB_ATTR_IEEE) + [DCB_ATTR_DCBX] = XLAT(DCB_ATTR_DCBX), + #define XLAT_VAL_14 ((unsigned) (DCB_ATTR_DCBX)) + #define XLAT_STR_14 STRINGIFY(DCB_ATTR_DCBX) + [DCB_ATTR_FEATCFG] = XLAT(DCB_ATTR_FEATCFG), + #define XLAT_VAL_15 ((unsigned) (DCB_ATTR_FEATCFG)) + #define XLAT_STR_15 STRINGIFY(DCB_ATTR_FEATCFG) + [DCB_ATTR_CEE] = XLAT(DCB_ATTR_CEE), + #define XLAT_VAL_16 ((unsigned) (DCB_ATTR_CEE)) + #define XLAT_STR_16 STRINGIFY(DCB_ATTR_CEE) }; +static +const struct xlat rtnl_dcb_attrs[1] = { { + .data = rtnl_dcb_attrs_xdata, + .size = ARRAY_SIZE(rtnl_dcb_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_dcb_attrs.in b/xlat/rtnl_dcb_attrs.in index dd2ddf73..19cac778 100644 --- a/xlat/rtnl_dcb_attrs.in +++ b/xlat/rtnl_dcb_attrs.in @@ -1,3 +1,4 @@ +#value_indexed DCB_ATTR_UNDEFINED 0 DCB_ATTR_IFNAME 1 DCB_ATTR_STATE 2 diff --git a/xlat/rtnl_ifla_af_spec_inet6_attrs.h b/xlat/rtnl_ifla_af_spec_inet6_attrs.h index 7a2e18bb..c9ca06e9 100644 --- a/xlat/rtnl_ifla_af_spec_inet6_attrs.h +++ b/xlat/rtnl_ifla_af_spec_inet6_attrs.h @@ -75,20 +75,118 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_ifla_af_spec_inet6_attrs[] = { +static const struct xlat_data rtnl_ifla_af_spec_inet6_attrs_xdata[] = { [IFLA_INET6_UNSPEC] = XLAT(IFLA_INET6_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (IFLA_INET6_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(IFLA_INET6_UNSPEC) [IFLA_INET6_FLAGS] = XLAT(IFLA_INET6_FLAGS), + #define XLAT_VAL_1 ((unsigned) (IFLA_INET6_FLAGS)) + #define XLAT_STR_1 STRINGIFY(IFLA_INET6_FLAGS) [IFLA_INET6_CONF] = XLAT(IFLA_INET6_CONF), + #define XLAT_VAL_2 ((unsigned) (IFLA_INET6_CONF)) + #define XLAT_STR_2 STRINGIFY(IFLA_INET6_CONF) [IFLA_INET6_STATS] = XLAT(IFLA_INET6_STATS), + #define XLAT_VAL_3 ((unsigned) (IFLA_INET6_STATS)) + #define XLAT_STR_3 STRINGIFY(IFLA_INET6_STATS) [IFLA_INET6_MCAST] = XLAT(IFLA_INET6_MCAST), + #define XLAT_VAL_4 ((unsigned) (IFLA_INET6_MCAST)) + #define XLAT_STR_4 STRINGIFY(IFLA_INET6_MCAST) [IFLA_INET6_CACHEINFO] = XLAT(IFLA_INET6_CACHEINFO), + #define XLAT_VAL_5 ((unsigned) (IFLA_INET6_CACHEINFO)) + #define XLAT_STR_5 STRINGIFY(IFLA_INET6_CACHEINFO) [IFLA_INET6_ICMP6STATS] = XLAT(IFLA_INET6_ICMP6STATS), + #define XLAT_VAL_6 ((unsigned) (IFLA_INET6_ICMP6STATS)) + #define XLAT_STR_6 STRINGIFY(IFLA_INET6_ICMP6STATS) [IFLA_INET6_TOKEN] = XLAT(IFLA_INET6_TOKEN), + #define XLAT_VAL_7 ((unsigned) (IFLA_INET6_TOKEN)) + #define XLAT_STR_7 STRINGIFY(IFLA_INET6_TOKEN) [IFLA_INET6_ADDR_GEN_MODE] = XLAT(IFLA_INET6_ADDR_GEN_MODE), - XLAT_END + #define XLAT_VAL_8 ((unsigned) (IFLA_INET6_ADDR_GEN_MODE)) + #define XLAT_STR_8 STRINGIFY(IFLA_INET6_ADDR_GEN_MODE) }; +static +const struct xlat rtnl_ifla_af_spec_inet6_attrs[1] = { { + .data = rtnl_ifla_af_spec_inet6_attrs_xdata, + .size = ARRAY_SIZE(rtnl_ifla_af_spec_inet6_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_ifla_af_spec_inet_attrs.h b/xlat/rtnl_ifla_af_spec_inet_attrs.h index 8dd12203..9a69f988 100644 --- a/xlat/rtnl_ifla_af_spec_inet_attrs.h +++ b/xlat/rtnl_ifla_af_spec_inet_attrs.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_ifla_af_spec_inet_attrs[] = { +static const struct xlat_data rtnl_ifla_af_spec_inet_attrs_xdata[] = { [IFLA_INET_UNSPEC] = XLAT(IFLA_INET_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (IFLA_INET_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(IFLA_INET_UNSPEC) [IFLA_INET_CONF] = XLAT(IFLA_INET_CONF), - XLAT_END + #define XLAT_VAL_1 ((unsigned) (IFLA_INET_CONF)) + #define XLAT_STR_1 STRINGIFY(IFLA_INET_CONF) }; +static +const struct xlat rtnl_ifla_af_spec_inet_attrs[1] = { { + .data = rtnl_ifla_af_spec_inet_attrs_xdata, + .size = ARRAY_SIZE(rtnl_ifla_af_spec_inet_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_ifla_brport_attrs.h b/xlat/rtnl_ifla_brport_attrs.h index fdef1af3..b7c979c1 100644 --- a/xlat/rtnl_ifla_brport_attrs.h +++ b/xlat/rtnl_ifla_brport_attrs.h @@ -257,46 +257,404 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_ifla_brport_attrs[] = { - XLAT(IFLA_BRPORT_UNSPEC), - XLAT(IFLA_BRPORT_STATE), - XLAT(IFLA_BRPORT_PRIORITY), - XLAT(IFLA_BRPORT_COST), - XLAT(IFLA_BRPORT_MODE), - XLAT(IFLA_BRPORT_GUARD), - XLAT(IFLA_BRPORT_PROTECT), - XLAT(IFLA_BRPORT_FAST_LEAVE), - XLAT(IFLA_BRPORT_LEARNING), - XLAT(IFLA_BRPORT_UNICAST_FLOOD), - XLAT(IFLA_BRPORT_PROXYARP), - XLAT(IFLA_BRPORT_LEARNING_SYNC), - XLAT(IFLA_BRPORT_PROXYARP_WIFI), - XLAT(IFLA_BRPORT_ROOT_ID), - XLAT(IFLA_BRPORT_BRIDGE_ID), - XLAT(IFLA_BRPORT_DESIGNATED_PORT), - XLAT(IFLA_BRPORT_DESIGNATED_COST), - XLAT(IFLA_BRPORT_ID), - XLAT(IFLA_BRPORT_NO), - XLAT(IFLA_BRPORT_TOPOLOGY_CHANGE_ACK), - XLAT(IFLA_BRPORT_CONFIG_PENDING), - XLAT(IFLA_BRPORT_MESSAGE_AGE_TIMER), - XLAT(IFLA_BRPORT_FORWARD_DELAY_TIMER), - XLAT(IFLA_BRPORT_HOLD_TIMER), - XLAT(IFLA_BRPORT_FLUSH), - XLAT(IFLA_BRPORT_MULTICAST_ROUTER), - XLAT(IFLA_BRPORT_PAD), - XLAT(IFLA_BRPORT_MCAST_FLOOD), - XLAT(IFLA_BRPORT_MCAST_TO_UCAST), - XLAT(IFLA_BRPORT_VLAN_TUNNEL), - XLAT(IFLA_BRPORT_BCAST_FLOOD), - XLAT(IFLA_BRPORT_GROUP_FWD_MASK), - XLAT(IFLA_BRPORT_NEIGH_SUPPRESS), - XLAT(IFLA_BRPORT_ISOLATED), - XLAT(IFLA_BRPORT_BACKUP_PORT), - XLAT_END +static const struct xlat_data rtnl_ifla_brport_attrs_xdata[] = { + [IFLA_BRPORT_UNSPEC] = XLAT(IFLA_BRPORT_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (IFLA_BRPORT_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(IFLA_BRPORT_UNSPEC) + [IFLA_BRPORT_STATE] = XLAT(IFLA_BRPORT_STATE), + #define XLAT_VAL_1 ((unsigned) (IFLA_BRPORT_STATE)) + #define XLAT_STR_1 STRINGIFY(IFLA_BRPORT_STATE) + [IFLA_BRPORT_PRIORITY] = XLAT(IFLA_BRPORT_PRIORITY), + #define XLAT_VAL_2 ((unsigned) (IFLA_BRPORT_PRIORITY)) + #define XLAT_STR_2 STRINGIFY(IFLA_BRPORT_PRIORITY) + [IFLA_BRPORT_COST] = XLAT(IFLA_BRPORT_COST), + #define XLAT_VAL_3 ((unsigned) (IFLA_BRPORT_COST)) + #define XLAT_STR_3 STRINGIFY(IFLA_BRPORT_COST) + [IFLA_BRPORT_MODE] = XLAT(IFLA_BRPORT_MODE), + #define XLAT_VAL_4 ((unsigned) (IFLA_BRPORT_MODE)) + #define XLAT_STR_4 STRINGIFY(IFLA_BRPORT_MODE) + [IFLA_BRPORT_GUARD] = XLAT(IFLA_BRPORT_GUARD), + #define XLAT_VAL_5 ((unsigned) (IFLA_BRPORT_GUARD)) + #define XLAT_STR_5 STRINGIFY(IFLA_BRPORT_GUARD) + [IFLA_BRPORT_PROTECT] = XLAT(IFLA_BRPORT_PROTECT), + #define XLAT_VAL_6 ((unsigned) (IFLA_BRPORT_PROTECT)) + #define XLAT_STR_6 STRINGIFY(IFLA_BRPORT_PROTECT) + [IFLA_BRPORT_FAST_LEAVE] = XLAT(IFLA_BRPORT_FAST_LEAVE), + #define XLAT_VAL_7 ((unsigned) (IFLA_BRPORT_FAST_LEAVE)) + #define XLAT_STR_7 STRINGIFY(IFLA_BRPORT_FAST_LEAVE) + [IFLA_BRPORT_LEARNING] = XLAT(IFLA_BRPORT_LEARNING), + #define XLAT_VAL_8 ((unsigned) (IFLA_BRPORT_LEARNING)) + #define XLAT_STR_8 STRINGIFY(IFLA_BRPORT_LEARNING) + [IFLA_BRPORT_UNICAST_FLOOD] = XLAT(IFLA_BRPORT_UNICAST_FLOOD), + #define XLAT_VAL_9 ((unsigned) (IFLA_BRPORT_UNICAST_FLOOD)) + #define XLAT_STR_9 STRINGIFY(IFLA_BRPORT_UNICAST_FLOOD) + [IFLA_BRPORT_PROXYARP] = XLAT(IFLA_BRPORT_PROXYARP), + #define XLAT_VAL_10 ((unsigned) (IFLA_BRPORT_PROXYARP)) + #define XLAT_STR_10 STRINGIFY(IFLA_BRPORT_PROXYARP) + [IFLA_BRPORT_LEARNING_SYNC] = XLAT(IFLA_BRPORT_LEARNING_SYNC), + #define XLAT_VAL_11 ((unsigned) (IFLA_BRPORT_LEARNING_SYNC)) + #define XLAT_STR_11 STRINGIFY(IFLA_BRPORT_LEARNING_SYNC) + [IFLA_BRPORT_PROXYARP_WIFI] = XLAT(IFLA_BRPORT_PROXYARP_WIFI), + #define XLAT_VAL_12 ((unsigned) (IFLA_BRPORT_PROXYARP_WIFI)) + #define XLAT_STR_12 STRINGIFY(IFLA_BRPORT_PROXYARP_WIFI) + [IFLA_BRPORT_ROOT_ID] = XLAT(IFLA_BRPORT_ROOT_ID), + #define XLAT_VAL_13 ((unsigned) (IFLA_BRPORT_ROOT_ID)) + #define XLAT_STR_13 STRINGIFY(IFLA_BRPORT_ROOT_ID) + [IFLA_BRPORT_BRIDGE_ID] = XLAT(IFLA_BRPORT_BRIDGE_ID), + #define XLAT_VAL_14 ((unsigned) (IFLA_BRPORT_BRIDGE_ID)) + #define XLAT_STR_14 STRINGIFY(IFLA_BRPORT_BRIDGE_ID) + [IFLA_BRPORT_DESIGNATED_PORT] = XLAT(IFLA_BRPORT_DESIGNATED_PORT), + #define XLAT_VAL_15 ((unsigned) (IFLA_BRPORT_DESIGNATED_PORT)) + #define XLAT_STR_15 STRINGIFY(IFLA_BRPORT_DESIGNATED_PORT) + [IFLA_BRPORT_DESIGNATED_COST] = XLAT(IFLA_BRPORT_DESIGNATED_COST), + #define XLAT_VAL_16 ((unsigned) (IFLA_BRPORT_DESIGNATED_COST)) + #define XLAT_STR_16 STRINGIFY(IFLA_BRPORT_DESIGNATED_COST) + [IFLA_BRPORT_ID] = XLAT(IFLA_BRPORT_ID), + #define XLAT_VAL_17 ((unsigned) (IFLA_BRPORT_ID)) + #define XLAT_STR_17 STRINGIFY(IFLA_BRPORT_ID) + [IFLA_BRPORT_NO] = XLAT(IFLA_BRPORT_NO), + #define XLAT_VAL_18 ((unsigned) (IFLA_BRPORT_NO)) + #define XLAT_STR_18 STRINGIFY(IFLA_BRPORT_NO) + [IFLA_BRPORT_TOPOLOGY_CHANGE_ACK] = XLAT(IFLA_BRPORT_TOPOLOGY_CHANGE_ACK), + #define XLAT_VAL_19 ((unsigned) (IFLA_BRPORT_TOPOLOGY_CHANGE_ACK)) + #define XLAT_STR_19 STRINGIFY(IFLA_BRPORT_TOPOLOGY_CHANGE_ACK) + [IFLA_BRPORT_CONFIG_PENDING] = XLAT(IFLA_BRPORT_CONFIG_PENDING), + #define XLAT_VAL_20 ((unsigned) (IFLA_BRPORT_CONFIG_PENDING)) + #define XLAT_STR_20 STRINGIFY(IFLA_BRPORT_CONFIG_PENDING) + [IFLA_BRPORT_MESSAGE_AGE_TIMER] = XLAT(IFLA_BRPORT_MESSAGE_AGE_TIMER), + #define XLAT_VAL_21 ((unsigned) (IFLA_BRPORT_MESSAGE_AGE_TIMER)) + #define XLAT_STR_21 STRINGIFY(IFLA_BRPORT_MESSAGE_AGE_TIMER) + [IFLA_BRPORT_FORWARD_DELAY_TIMER] = XLAT(IFLA_BRPORT_FORWARD_DELAY_TIMER), + #define XLAT_VAL_22 ((unsigned) (IFLA_BRPORT_FORWARD_DELAY_TIMER)) + #define XLAT_STR_22 STRINGIFY(IFLA_BRPORT_FORWARD_DELAY_TIMER) + [IFLA_BRPORT_HOLD_TIMER] = XLAT(IFLA_BRPORT_HOLD_TIMER), + #define XLAT_VAL_23 ((unsigned) (IFLA_BRPORT_HOLD_TIMER)) + #define XLAT_STR_23 STRINGIFY(IFLA_BRPORT_HOLD_TIMER) + [IFLA_BRPORT_FLUSH] = XLAT(IFLA_BRPORT_FLUSH), + #define XLAT_VAL_24 ((unsigned) (IFLA_BRPORT_FLUSH)) + #define XLAT_STR_24 STRINGIFY(IFLA_BRPORT_FLUSH) + [IFLA_BRPORT_MULTICAST_ROUTER] = XLAT(IFLA_BRPORT_MULTICAST_ROUTER), + #define XLAT_VAL_25 ((unsigned) (IFLA_BRPORT_MULTICAST_ROUTER)) + #define XLAT_STR_25 STRINGIFY(IFLA_BRPORT_MULTICAST_ROUTER) + [IFLA_BRPORT_PAD] = XLAT(IFLA_BRPORT_PAD), + #define XLAT_VAL_26 ((unsigned) (IFLA_BRPORT_PAD)) + #define XLAT_STR_26 STRINGIFY(IFLA_BRPORT_PAD) + [IFLA_BRPORT_MCAST_FLOOD] = XLAT(IFLA_BRPORT_MCAST_FLOOD), + #define XLAT_VAL_27 ((unsigned) (IFLA_BRPORT_MCAST_FLOOD)) + #define XLAT_STR_27 STRINGIFY(IFLA_BRPORT_MCAST_FLOOD) + [IFLA_BRPORT_MCAST_TO_UCAST] = XLAT(IFLA_BRPORT_MCAST_TO_UCAST), + #define XLAT_VAL_28 ((unsigned) (IFLA_BRPORT_MCAST_TO_UCAST)) + #define XLAT_STR_28 STRINGIFY(IFLA_BRPORT_MCAST_TO_UCAST) + [IFLA_BRPORT_VLAN_TUNNEL] = XLAT(IFLA_BRPORT_VLAN_TUNNEL), + #define XLAT_VAL_29 ((unsigned) (IFLA_BRPORT_VLAN_TUNNEL)) + #define XLAT_STR_29 STRINGIFY(IFLA_BRPORT_VLAN_TUNNEL) + [IFLA_BRPORT_BCAST_FLOOD] = XLAT(IFLA_BRPORT_BCAST_FLOOD), + #define XLAT_VAL_30 ((unsigned) (IFLA_BRPORT_BCAST_FLOOD)) + #define XLAT_STR_30 STRINGIFY(IFLA_BRPORT_BCAST_FLOOD) + [IFLA_BRPORT_GROUP_FWD_MASK] = XLAT(IFLA_BRPORT_GROUP_FWD_MASK), + #define XLAT_VAL_31 ((unsigned) (IFLA_BRPORT_GROUP_FWD_MASK)) + #define XLAT_STR_31 STRINGIFY(IFLA_BRPORT_GROUP_FWD_MASK) + [IFLA_BRPORT_NEIGH_SUPPRESS] = XLAT(IFLA_BRPORT_NEIGH_SUPPRESS), + #define XLAT_VAL_32 ((unsigned) (IFLA_BRPORT_NEIGH_SUPPRESS)) + #define XLAT_STR_32 STRINGIFY(IFLA_BRPORT_NEIGH_SUPPRESS) + [IFLA_BRPORT_ISOLATED] = XLAT(IFLA_BRPORT_ISOLATED), + #define XLAT_VAL_33 ((unsigned) (IFLA_BRPORT_ISOLATED)) + #define XLAT_STR_33 STRINGIFY(IFLA_BRPORT_ISOLATED) + [IFLA_BRPORT_BACKUP_PORT] = XLAT(IFLA_BRPORT_BACKUP_PORT), + #define XLAT_VAL_34 ((unsigned) (IFLA_BRPORT_BACKUP_PORT)) + #define XLAT_STR_34 STRINGIFY(IFLA_BRPORT_BACKUP_PORT) }; +static +const struct xlat rtnl_ifla_brport_attrs[1] = { { + .data = rtnl_ifla_brport_attrs_xdata, + .size = ARRAY_SIZE(rtnl_ifla_brport_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_ifla_brport_attrs.in b/xlat/rtnl_ifla_brport_attrs.in index 70177165..2a5150bb 100644 --- a/xlat/rtnl_ifla_brport_attrs.in +++ b/xlat/rtnl_ifla_brport_attrs.in @@ -1,3 +1,4 @@ +#value_indexed IFLA_BRPORT_UNSPEC 0 IFLA_BRPORT_STATE 1 IFLA_BRPORT_PRIORITY 2 diff --git a/xlat/rtnl_ifla_events.h b/xlat/rtnl_ifla_events.h index 0f214d63..6b0d42dd 100644 --- a/xlat/rtnl_ifla_events.h +++ b/xlat/rtnl_ifla_events.h @@ -61,18 +61,96 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_ifla_events[] = { - XLAT(IFLA_EVENT_NONE), - XLAT(IFLA_EVENT_REBOOT), - XLAT(IFLA_EVENT_FEATURES), - XLAT(IFLA_EVENT_BONDING_FAILOVER), - XLAT(IFLA_EVENT_NOTIFY_PEERS), - XLAT(IFLA_EVENT_IGMP_RESEND), - XLAT(IFLA_EVENT_BONDING_OPTIONS), - XLAT_END +static const struct xlat_data rtnl_ifla_events_xdata[] = { + [IFLA_EVENT_NONE] = XLAT(IFLA_EVENT_NONE), + #define XLAT_VAL_0 ((unsigned) (IFLA_EVENT_NONE)) + #define XLAT_STR_0 STRINGIFY(IFLA_EVENT_NONE) + [IFLA_EVENT_REBOOT] = XLAT(IFLA_EVENT_REBOOT), + #define XLAT_VAL_1 ((unsigned) (IFLA_EVENT_REBOOT)) + #define XLAT_STR_1 STRINGIFY(IFLA_EVENT_REBOOT) + [IFLA_EVENT_FEATURES] = XLAT(IFLA_EVENT_FEATURES), + #define XLAT_VAL_2 ((unsigned) (IFLA_EVENT_FEATURES)) + #define XLAT_STR_2 STRINGIFY(IFLA_EVENT_FEATURES) + [IFLA_EVENT_BONDING_FAILOVER] = XLAT(IFLA_EVENT_BONDING_FAILOVER), + #define XLAT_VAL_3 ((unsigned) (IFLA_EVENT_BONDING_FAILOVER)) + #define XLAT_STR_3 STRINGIFY(IFLA_EVENT_BONDING_FAILOVER) + [IFLA_EVENT_NOTIFY_PEERS] = XLAT(IFLA_EVENT_NOTIFY_PEERS), + #define XLAT_VAL_4 ((unsigned) (IFLA_EVENT_NOTIFY_PEERS)) + #define XLAT_STR_4 STRINGIFY(IFLA_EVENT_NOTIFY_PEERS) + [IFLA_EVENT_IGMP_RESEND] = XLAT(IFLA_EVENT_IGMP_RESEND), + #define XLAT_VAL_5 ((unsigned) (IFLA_EVENT_IGMP_RESEND)) + #define XLAT_STR_5 STRINGIFY(IFLA_EVENT_IGMP_RESEND) + [IFLA_EVENT_BONDING_OPTIONS] = XLAT(IFLA_EVENT_BONDING_OPTIONS), + #define XLAT_VAL_6 ((unsigned) (IFLA_EVENT_BONDING_OPTIONS)) + #define XLAT_STR_6 STRINGIFY(IFLA_EVENT_BONDING_OPTIONS) }; +static +const struct xlat rtnl_ifla_events[1] = { { + .data = rtnl_ifla_events_xdata, + .size = ARRAY_SIZE(rtnl_ifla_events_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_ifla_events.in b/xlat/rtnl_ifla_events.in index 487b6ac2..ff7ca83f 100644 --- a/xlat/rtnl_ifla_events.in +++ b/xlat/rtnl_ifla_events.in @@ -1,3 +1,4 @@ +#value_indexed IFLA_EVENT_NONE 0 IFLA_EVENT_REBOOT 1 IFLA_EVENT_FEATURES 2 diff --git a/xlat/rtnl_ifla_info_attrs.h b/xlat/rtnl_ifla_info_attrs.h index dd3124b0..1d555d2f 100644 --- a/xlat/rtnl_ifla_info_attrs.h +++ b/xlat/rtnl_ifla_info_attrs.h @@ -54,17 +54,85 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_ifla_info_attrs[] = { - XLAT(IFLA_INFO_UNSPEC), - XLAT(IFLA_INFO_KIND), - XLAT(IFLA_INFO_DATA), - XLAT(IFLA_INFO_XSTATS), - XLAT(IFLA_INFO_SLAVE_KIND), - XLAT(IFLA_INFO_SLAVE_DATA), - XLAT_END +static const struct xlat_data rtnl_ifla_info_attrs_xdata[] = { + [IFLA_INFO_UNSPEC] = XLAT(IFLA_INFO_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (IFLA_INFO_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(IFLA_INFO_UNSPEC) + [IFLA_INFO_KIND] = XLAT(IFLA_INFO_KIND), + #define XLAT_VAL_1 ((unsigned) (IFLA_INFO_KIND)) + #define XLAT_STR_1 STRINGIFY(IFLA_INFO_KIND) + [IFLA_INFO_DATA] = XLAT(IFLA_INFO_DATA), + #define XLAT_VAL_2 ((unsigned) (IFLA_INFO_DATA)) + #define XLAT_STR_2 STRINGIFY(IFLA_INFO_DATA) + [IFLA_INFO_XSTATS] = XLAT(IFLA_INFO_XSTATS), + #define XLAT_VAL_3 ((unsigned) (IFLA_INFO_XSTATS)) + #define XLAT_STR_3 STRINGIFY(IFLA_INFO_XSTATS) + [IFLA_INFO_SLAVE_KIND] = XLAT(IFLA_INFO_SLAVE_KIND), + #define XLAT_VAL_4 ((unsigned) (IFLA_INFO_SLAVE_KIND)) + #define XLAT_STR_4 STRINGIFY(IFLA_INFO_SLAVE_KIND) + [IFLA_INFO_SLAVE_DATA] = XLAT(IFLA_INFO_SLAVE_DATA), + #define XLAT_VAL_5 ((unsigned) (IFLA_INFO_SLAVE_DATA)) + #define XLAT_STR_5 STRINGIFY(IFLA_INFO_SLAVE_DATA) }; +static +const struct xlat rtnl_ifla_info_attrs[1] = { { + .data = rtnl_ifla_info_attrs_xdata, + .size = ARRAY_SIZE(rtnl_ifla_info_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_ifla_info_attrs.in b/xlat/rtnl_ifla_info_attrs.in index 61201d34..2b1445c4 100644 --- a/xlat/rtnl_ifla_info_attrs.in +++ b/xlat/rtnl_ifla_info_attrs.in @@ -1,3 +1,4 @@ +#value_indexed IFLA_INFO_UNSPEC 0 IFLA_INFO_KIND 1 IFLA_INFO_DATA 2 diff --git a/xlat/rtnl_ifla_info_data_bridge_attrs.h b/xlat/rtnl_ifla_info_data_bridge_attrs.h index a879a33f..4ca7bb21 100644 --- a/xlat/rtnl_ifla_info_data_bridge_attrs.h +++ b/xlat/rtnl_ifla_info_data_bridge_attrs.h @@ -341,58 +341,536 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_ifla_info_data_bridge_attrs[] = { +static const struct xlat_data rtnl_ifla_info_data_bridge_attrs_xdata[] = { [IFLA_BR_UNSPEC] = XLAT(IFLA_BR_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (IFLA_BR_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(IFLA_BR_UNSPEC) [IFLA_BR_FORWARD_DELAY] = XLAT(IFLA_BR_FORWARD_DELAY), + #define XLAT_VAL_1 ((unsigned) (IFLA_BR_FORWARD_DELAY)) + #define XLAT_STR_1 STRINGIFY(IFLA_BR_FORWARD_DELAY) [IFLA_BR_HELLO_TIME] = XLAT(IFLA_BR_HELLO_TIME), + #define XLAT_VAL_2 ((unsigned) (IFLA_BR_HELLO_TIME)) + #define XLAT_STR_2 STRINGIFY(IFLA_BR_HELLO_TIME) [IFLA_BR_MAX_AGE] = XLAT(IFLA_BR_MAX_AGE), + #define XLAT_VAL_3 ((unsigned) (IFLA_BR_MAX_AGE)) + #define XLAT_STR_3 STRINGIFY(IFLA_BR_MAX_AGE) [IFLA_BR_AGEING_TIME] = XLAT(IFLA_BR_AGEING_TIME), + #define XLAT_VAL_4 ((unsigned) (IFLA_BR_AGEING_TIME)) + #define XLAT_STR_4 STRINGIFY(IFLA_BR_AGEING_TIME) [IFLA_BR_STP_STATE] = XLAT(IFLA_BR_STP_STATE), + #define XLAT_VAL_5 ((unsigned) (IFLA_BR_STP_STATE)) + #define XLAT_STR_5 STRINGIFY(IFLA_BR_STP_STATE) [IFLA_BR_PRIORITY] = XLAT(IFLA_BR_PRIORITY), + #define XLAT_VAL_6 ((unsigned) (IFLA_BR_PRIORITY)) + #define XLAT_STR_6 STRINGIFY(IFLA_BR_PRIORITY) [IFLA_BR_VLAN_FILTERING] = XLAT(IFLA_BR_VLAN_FILTERING), + #define XLAT_VAL_7 ((unsigned) (IFLA_BR_VLAN_FILTERING)) + #define XLAT_STR_7 STRINGIFY(IFLA_BR_VLAN_FILTERING) [IFLA_BR_VLAN_PROTOCOL] = XLAT(IFLA_BR_VLAN_PROTOCOL), + #define XLAT_VAL_8 ((unsigned) (IFLA_BR_VLAN_PROTOCOL)) + #define XLAT_STR_8 STRINGIFY(IFLA_BR_VLAN_PROTOCOL) [IFLA_BR_GROUP_FWD_MASK] = XLAT(IFLA_BR_GROUP_FWD_MASK), + #define XLAT_VAL_9 ((unsigned) (IFLA_BR_GROUP_FWD_MASK)) + #define XLAT_STR_9 STRINGIFY(IFLA_BR_GROUP_FWD_MASK) [IFLA_BR_ROOT_ID] = XLAT(IFLA_BR_ROOT_ID), + #define XLAT_VAL_10 ((unsigned) (IFLA_BR_ROOT_ID)) + #define XLAT_STR_10 STRINGIFY(IFLA_BR_ROOT_ID) [IFLA_BR_BRIDGE_ID] = XLAT(IFLA_BR_BRIDGE_ID), + #define XLAT_VAL_11 ((unsigned) (IFLA_BR_BRIDGE_ID)) + #define XLAT_STR_11 STRINGIFY(IFLA_BR_BRIDGE_ID) [IFLA_BR_ROOT_PORT] = XLAT(IFLA_BR_ROOT_PORT), + #define XLAT_VAL_12 ((unsigned) (IFLA_BR_ROOT_PORT)) + #define XLAT_STR_12 STRINGIFY(IFLA_BR_ROOT_PORT) [IFLA_BR_ROOT_PATH_COST] = XLAT(IFLA_BR_ROOT_PATH_COST), + #define XLAT_VAL_13 ((unsigned) (IFLA_BR_ROOT_PATH_COST)) + #define XLAT_STR_13 STRINGIFY(IFLA_BR_ROOT_PATH_COST) [IFLA_BR_TOPOLOGY_CHANGE] = XLAT(IFLA_BR_TOPOLOGY_CHANGE), + #define XLAT_VAL_14 ((unsigned) (IFLA_BR_TOPOLOGY_CHANGE)) + #define XLAT_STR_14 STRINGIFY(IFLA_BR_TOPOLOGY_CHANGE) [IFLA_BR_TOPOLOGY_CHANGE_DETECTED] = XLAT(IFLA_BR_TOPOLOGY_CHANGE_DETECTED), + #define XLAT_VAL_15 ((unsigned) (IFLA_BR_TOPOLOGY_CHANGE_DETECTED)) + #define XLAT_STR_15 STRINGIFY(IFLA_BR_TOPOLOGY_CHANGE_DETECTED) [IFLA_BR_HELLO_TIMER] = XLAT(IFLA_BR_HELLO_TIMER), + #define XLAT_VAL_16 ((unsigned) (IFLA_BR_HELLO_TIMER)) + #define XLAT_STR_16 STRINGIFY(IFLA_BR_HELLO_TIMER) [IFLA_BR_TCN_TIMER] = XLAT(IFLA_BR_TCN_TIMER), + #define XLAT_VAL_17 ((unsigned) (IFLA_BR_TCN_TIMER)) + #define XLAT_STR_17 STRINGIFY(IFLA_BR_TCN_TIMER) [IFLA_BR_TOPOLOGY_CHANGE_TIMER] = XLAT(IFLA_BR_TOPOLOGY_CHANGE_TIMER), + #define XLAT_VAL_18 ((unsigned) (IFLA_BR_TOPOLOGY_CHANGE_TIMER)) + #define XLAT_STR_18 STRINGIFY(IFLA_BR_TOPOLOGY_CHANGE_TIMER) [IFLA_BR_GC_TIMER] = XLAT(IFLA_BR_GC_TIMER), + #define XLAT_VAL_19 ((unsigned) (IFLA_BR_GC_TIMER)) + #define XLAT_STR_19 STRINGIFY(IFLA_BR_GC_TIMER) [IFLA_BR_GROUP_ADDR] = XLAT(IFLA_BR_GROUP_ADDR), + #define XLAT_VAL_20 ((unsigned) (IFLA_BR_GROUP_ADDR)) + #define XLAT_STR_20 STRINGIFY(IFLA_BR_GROUP_ADDR) [IFLA_BR_FDB_FLUSH] = XLAT(IFLA_BR_FDB_FLUSH), + #define XLAT_VAL_21 ((unsigned) (IFLA_BR_FDB_FLUSH)) + #define XLAT_STR_21 STRINGIFY(IFLA_BR_FDB_FLUSH) [IFLA_BR_MCAST_ROUTER] = XLAT(IFLA_BR_MCAST_ROUTER), + #define XLAT_VAL_22 ((unsigned) (IFLA_BR_MCAST_ROUTER)) + #define XLAT_STR_22 STRINGIFY(IFLA_BR_MCAST_ROUTER) [IFLA_BR_MCAST_SNOOPING] = XLAT(IFLA_BR_MCAST_SNOOPING), + #define XLAT_VAL_23 ((unsigned) (IFLA_BR_MCAST_SNOOPING)) + #define XLAT_STR_23 STRINGIFY(IFLA_BR_MCAST_SNOOPING) [IFLA_BR_MCAST_QUERY_USE_IFADDR] = XLAT(IFLA_BR_MCAST_QUERY_USE_IFADDR), + #define XLAT_VAL_24 ((unsigned) (IFLA_BR_MCAST_QUERY_USE_IFADDR)) + #define XLAT_STR_24 STRINGIFY(IFLA_BR_MCAST_QUERY_USE_IFADDR) [IFLA_BR_MCAST_QUERIER] = XLAT(IFLA_BR_MCAST_QUERIER), + #define XLAT_VAL_25 ((unsigned) (IFLA_BR_MCAST_QUERIER)) + #define XLAT_STR_25 STRINGIFY(IFLA_BR_MCAST_QUERIER) [IFLA_BR_MCAST_HASH_ELASTICITY] = XLAT(IFLA_BR_MCAST_HASH_ELASTICITY), + #define XLAT_VAL_26 ((unsigned) (IFLA_BR_MCAST_HASH_ELASTICITY)) + #define XLAT_STR_26 STRINGIFY(IFLA_BR_MCAST_HASH_ELASTICITY) [IFLA_BR_MCAST_HASH_MAX] = XLAT(IFLA_BR_MCAST_HASH_MAX), + #define XLAT_VAL_27 ((unsigned) (IFLA_BR_MCAST_HASH_MAX)) + #define XLAT_STR_27 STRINGIFY(IFLA_BR_MCAST_HASH_MAX) [IFLA_BR_MCAST_LAST_MEMBER_CNT] = XLAT(IFLA_BR_MCAST_LAST_MEMBER_CNT), + #define XLAT_VAL_28 ((unsigned) (IFLA_BR_MCAST_LAST_MEMBER_CNT)) + #define XLAT_STR_28 STRINGIFY(IFLA_BR_MCAST_LAST_MEMBER_CNT) [IFLA_BR_MCAST_STARTUP_QUERY_CNT] = XLAT(IFLA_BR_MCAST_STARTUP_QUERY_CNT), + #define XLAT_VAL_29 ((unsigned) (IFLA_BR_MCAST_STARTUP_QUERY_CNT)) + #define XLAT_STR_29 STRINGIFY(IFLA_BR_MCAST_STARTUP_QUERY_CNT) [IFLA_BR_MCAST_LAST_MEMBER_INTVL] = XLAT(IFLA_BR_MCAST_LAST_MEMBER_INTVL), + #define XLAT_VAL_30 ((unsigned) (IFLA_BR_MCAST_LAST_MEMBER_INTVL)) + #define XLAT_STR_30 STRINGIFY(IFLA_BR_MCAST_LAST_MEMBER_INTVL) [IFLA_BR_MCAST_MEMBERSHIP_INTVL] = XLAT(IFLA_BR_MCAST_MEMBERSHIP_INTVL), + #define XLAT_VAL_31 ((unsigned) (IFLA_BR_MCAST_MEMBERSHIP_INTVL)) + #define XLAT_STR_31 STRINGIFY(IFLA_BR_MCAST_MEMBERSHIP_INTVL) [IFLA_BR_MCAST_QUERIER_INTVL] = XLAT(IFLA_BR_MCAST_QUERIER_INTVL), + #define XLAT_VAL_32 ((unsigned) (IFLA_BR_MCAST_QUERIER_INTVL)) + #define XLAT_STR_32 STRINGIFY(IFLA_BR_MCAST_QUERIER_INTVL) [IFLA_BR_MCAST_QUERY_INTVL] = XLAT(IFLA_BR_MCAST_QUERY_INTVL), + #define XLAT_VAL_33 ((unsigned) (IFLA_BR_MCAST_QUERY_INTVL)) + #define XLAT_STR_33 STRINGIFY(IFLA_BR_MCAST_QUERY_INTVL) [IFLA_BR_MCAST_QUERY_RESPONSE_INTVL] = XLAT(IFLA_BR_MCAST_QUERY_RESPONSE_INTVL), + #define XLAT_VAL_34 ((unsigned) (IFLA_BR_MCAST_QUERY_RESPONSE_INTVL)) + #define XLAT_STR_34 STRINGIFY(IFLA_BR_MCAST_QUERY_RESPONSE_INTVL) [IFLA_BR_MCAST_STARTUP_QUERY_INTVL] = XLAT(IFLA_BR_MCAST_STARTUP_QUERY_INTVL), + #define XLAT_VAL_35 ((unsigned) (IFLA_BR_MCAST_STARTUP_QUERY_INTVL)) + #define XLAT_STR_35 STRINGIFY(IFLA_BR_MCAST_STARTUP_QUERY_INTVL) [IFLA_BR_NF_CALL_IPTABLES] = XLAT(IFLA_BR_NF_CALL_IPTABLES), + #define XLAT_VAL_36 ((unsigned) (IFLA_BR_NF_CALL_IPTABLES)) + #define XLAT_STR_36 STRINGIFY(IFLA_BR_NF_CALL_IPTABLES) [IFLA_BR_NF_CALL_IP6TABLES] = XLAT(IFLA_BR_NF_CALL_IP6TABLES), + #define XLAT_VAL_37 ((unsigned) (IFLA_BR_NF_CALL_IP6TABLES)) + #define XLAT_STR_37 STRINGIFY(IFLA_BR_NF_CALL_IP6TABLES) [IFLA_BR_NF_CALL_ARPTABLES] = XLAT(IFLA_BR_NF_CALL_ARPTABLES), + #define XLAT_VAL_38 ((unsigned) (IFLA_BR_NF_CALL_ARPTABLES)) + #define XLAT_STR_38 STRINGIFY(IFLA_BR_NF_CALL_ARPTABLES) [IFLA_BR_VLAN_DEFAULT_PVID] = XLAT(IFLA_BR_VLAN_DEFAULT_PVID), + #define XLAT_VAL_39 ((unsigned) (IFLA_BR_VLAN_DEFAULT_PVID)) + #define XLAT_STR_39 STRINGIFY(IFLA_BR_VLAN_DEFAULT_PVID) [IFLA_BR_PAD] = XLAT(IFLA_BR_PAD), + #define XLAT_VAL_40 ((unsigned) (IFLA_BR_PAD)) + #define XLAT_STR_40 STRINGIFY(IFLA_BR_PAD) [IFLA_BR_VLAN_STATS_ENABLED] = XLAT(IFLA_BR_VLAN_STATS_ENABLED), + #define XLAT_VAL_41 ((unsigned) (IFLA_BR_VLAN_STATS_ENABLED)) + #define XLAT_STR_41 STRINGIFY(IFLA_BR_VLAN_STATS_ENABLED) [IFLA_BR_MCAST_STATS_ENABLED] = XLAT(IFLA_BR_MCAST_STATS_ENABLED), + #define XLAT_VAL_42 ((unsigned) (IFLA_BR_MCAST_STATS_ENABLED)) + #define XLAT_STR_42 STRINGIFY(IFLA_BR_MCAST_STATS_ENABLED) [IFLA_BR_MCAST_IGMP_VERSION] = XLAT(IFLA_BR_MCAST_IGMP_VERSION), + #define XLAT_VAL_43 ((unsigned) (IFLA_BR_MCAST_IGMP_VERSION)) + #define XLAT_STR_43 STRINGIFY(IFLA_BR_MCAST_IGMP_VERSION) [IFLA_BR_MCAST_MLD_VERSION] = XLAT(IFLA_BR_MCAST_MLD_VERSION), + #define XLAT_VAL_44 ((unsigned) (IFLA_BR_MCAST_MLD_VERSION)) + #define XLAT_STR_44 STRINGIFY(IFLA_BR_MCAST_MLD_VERSION) [IFLA_BR_VLAN_STATS_PER_PORT] = XLAT(IFLA_BR_VLAN_STATS_PER_PORT), + #define XLAT_VAL_45 ((unsigned) (IFLA_BR_VLAN_STATS_PER_PORT)) + #define XLAT_STR_45 STRINGIFY(IFLA_BR_VLAN_STATS_PER_PORT) [IFLA_BR_MULTI_BOOLOPT] = XLAT(IFLA_BR_MULTI_BOOLOPT), - XLAT_END + #define XLAT_VAL_46 ((unsigned) (IFLA_BR_MULTI_BOOLOPT)) + #define XLAT_STR_46 STRINGIFY(IFLA_BR_MULTI_BOOLOPT) }; +static +const struct xlat rtnl_ifla_info_data_bridge_attrs[1] = { { + .data = rtnl_ifla_info_data_bridge_attrs_xdata, + .size = ARRAY_SIZE(rtnl_ifla_info_data_bridge_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif +# ifdef XLAT_VAL_41 + | XLAT_VAL_41 +# endif +# ifdef XLAT_VAL_42 + | XLAT_VAL_42 +# endif +# ifdef XLAT_VAL_43 + | XLAT_VAL_43 +# endif +# ifdef XLAT_VAL_44 + | XLAT_VAL_44 +# endif +# ifdef XLAT_VAL_45 + | XLAT_VAL_45 +# endif +# ifdef XLAT_VAL_46 + | XLAT_VAL_46 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif +# ifdef XLAT_STR_41 + + sizeof(XLAT_STR_41) +# endif +# ifdef XLAT_STR_42 + + sizeof(XLAT_STR_42) +# endif +# ifdef XLAT_STR_43 + + sizeof(XLAT_STR_43) +# endif +# ifdef XLAT_STR_44 + + sizeof(XLAT_STR_44) +# endif +# ifdef XLAT_STR_45 + + sizeof(XLAT_STR_45) +# endif +# ifdef XLAT_STR_46 + + sizeof(XLAT_STR_46) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 +# undef XLAT_STR_41 +# undef XLAT_VAL_41 +# undef XLAT_STR_42 +# undef XLAT_VAL_42 +# undef XLAT_STR_43 +# undef XLAT_VAL_43 +# undef XLAT_STR_44 +# undef XLAT_VAL_44 +# undef XLAT_STR_45 +# undef XLAT_VAL_45 +# undef XLAT_STR_46 +# undef XLAT_VAL_46 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_ifla_info_data_tun_attrs.h b/xlat/rtnl_ifla_info_data_tun_attrs.h index ee9ad580..945590b7 100644 --- a/xlat/rtnl_ifla_info_data_tun_attrs.h +++ b/xlat/rtnl_ifla_info_data_tun_attrs.h @@ -82,21 +82,129 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_ifla_info_data_tun_attrs[] = { +static const struct xlat_data rtnl_ifla_info_data_tun_attrs_xdata[] = { [IFLA_TUN_UNSPEC] = XLAT(IFLA_TUN_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (IFLA_TUN_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(IFLA_TUN_UNSPEC) [IFLA_TUN_OWNER] = XLAT(IFLA_TUN_OWNER), + #define XLAT_VAL_1 ((unsigned) (IFLA_TUN_OWNER)) + #define XLAT_STR_1 STRINGIFY(IFLA_TUN_OWNER) [IFLA_TUN_GROUP] = XLAT(IFLA_TUN_GROUP), + #define XLAT_VAL_2 ((unsigned) (IFLA_TUN_GROUP)) + #define XLAT_STR_2 STRINGIFY(IFLA_TUN_GROUP) [IFLA_TUN_TYPE] = XLAT(IFLA_TUN_TYPE), + #define XLAT_VAL_3 ((unsigned) (IFLA_TUN_TYPE)) + #define XLAT_STR_3 STRINGIFY(IFLA_TUN_TYPE) [IFLA_TUN_PI] = XLAT(IFLA_TUN_PI), + #define XLAT_VAL_4 ((unsigned) (IFLA_TUN_PI)) + #define XLAT_STR_4 STRINGIFY(IFLA_TUN_PI) [IFLA_TUN_VNET_HDR] = XLAT(IFLA_TUN_VNET_HDR), + #define XLAT_VAL_5 ((unsigned) (IFLA_TUN_VNET_HDR)) + #define XLAT_STR_5 STRINGIFY(IFLA_TUN_VNET_HDR) [IFLA_TUN_PERSIST] = XLAT(IFLA_TUN_PERSIST), + #define XLAT_VAL_6 ((unsigned) (IFLA_TUN_PERSIST)) + #define XLAT_STR_6 STRINGIFY(IFLA_TUN_PERSIST) [IFLA_TUN_MULTI_QUEUE] = XLAT(IFLA_TUN_MULTI_QUEUE), + #define XLAT_VAL_7 ((unsigned) (IFLA_TUN_MULTI_QUEUE)) + #define XLAT_STR_7 STRINGIFY(IFLA_TUN_MULTI_QUEUE) [IFLA_TUN_NUM_QUEUES] = XLAT(IFLA_TUN_NUM_QUEUES), + #define XLAT_VAL_8 ((unsigned) (IFLA_TUN_NUM_QUEUES)) + #define XLAT_STR_8 STRINGIFY(IFLA_TUN_NUM_QUEUES) [IFLA_TUN_NUM_DISABLED_QUEUES] = XLAT(IFLA_TUN_NUM_DISABLED_QUEUES), - XLAT_END + #define XLAT_VAL_9 ((unsigned) (IFLA_TUN_NUM_DISABLED_QUEUES)) + #define XLAT_STR_9 STRINGIFY(IFLA_TUN_NUM_DISABLED_QUEUES) }; +static +const struct xlat rtnl_ifla_info_data_tun_attrs[1] = { { + .data = rtnl_ifla_info_data_tun_attrs_xdata, + .size = ARRAY_SIZE(rtnl_ifla_info_data_tun_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_ifla_port_attrs.h b/xlat/rtnl_ifla_port_attrs.h index ce6af735..0ea1ff63 100644 --- a/xlat/rtnl_ifla_port_attrs.h +++ b/xlat/rtnl_ifla_port_attrs.h @@ -68,19 +68,107 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_ifla_port_attrs[] = { - XLAT(IFLA_PORT_UNSPEC), - XLAT(IFLA_PORT_VF), - XLAT(IFLA_PORT_PROFILE), - XLAT(IFLA_PORT_VSI_TYPE), - XLAT(IFLA_PORT_INSTANCE_UUID), - XLAT(IFLA_PORT_HOST_UUID), - XLAT(IFLA_PORT_REQUEST), - XLAT(IFLA_PORT_RESPONSE), - XLAT_END +static const struct xlat_data rtnl_ifla_port_attrs_xdata[] = { + [IFLA_PORT_UNSPEC] = XLAT(IFLA_PORT_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (IFLA_PORT_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(IFLA_PORT_UNSPEC) + [IFLA_PORT_VF] = XLAT(IFLA_PORT_VF), + #define XLAT_VAL_1 ((unsigned) (IFLA_PORT_VF)) + #define XLAT_STR_1 STRINGIFY(IFLA_PORT_VF) + [IFLA_PORT_PROFILE] = XLAT(IFLA_PORT_PROFILE), + #define XLAT_VAL_2 ((unsigned) (IFLA_PORT_PROFILE)) + #define XLAT_STR_2 STRINGIFY(IFLA_PORT_PROFILE) + [IFLA_PORT_VSI_TYPE] = XLAT(IFLA_PORT_VSI_TYPE), + #define XLAT_VAL_3 ((unsigned) (IFLA_PORT_VSI_TYPE)) + #define XLAT_STR_3 STRINGIFY(IFLA_PORT_VSI_TYPE) + [IFLA_PORT_INSTANCE_UUID] = XLAT(IFLA_PORT_INSTANCE_UUID), + #define XLAT_VAL_4 ((unsigned) (IFLA_PORT_INSTANCE_UUID)) + #define XLAT_STR_4 STRINGIFY(IFLA_PORT_INSTANCE_UUID) + [IFLA_PORT_HOST_UUID] = XLAT(IFLA_PORT_HOST_UUID), + #define XLAT_VAL_5 ((unsigned) (IFLA_PORT_HOST_UUID)) + #define XLAT_STR_5 STRINGIFY(IFLA_PORT_HOST_UUID) + [IFLA_PORT_REQUEST] = XLAT(IFLA_PORT_REQUEST), + #define XLAT_VAL_6 ((unsigned) (IFLA_PORT_REQUEST)) + #define XLAT_STR_6 STRINGIFY(IFLA_PORT_REQUEST) + [IFLA_PORT_RESPONSE] = XLAT(IFLA_PORT_RESPONSE), + #define XLAT_VAL_7 ((unsigned) (IFLA_PORT_RESPONSE)) + #define XLAT_STR_7 STRINGIFY(IFLA_PORT_RESPONSE) }; +static +const struct xlat rtnl_ifla_port_attrs[1] = { { + .data = rtnl_ifla_port_attrs_xdata, + .size = ARRAY_SIZE(rtnl_ifla_port_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_ifla_port_attrs.in b/xlat/rtnl_ifla_port_attrs.in index 9079006c..e498c699 100644 --- a/xlat/rtnl_ifla_port_attrs.in +++ b/xlat/rtnl_ifla_port_attrs.in @@ -1,3 +1,4 @@ +#value_indexed IFLA_PORT_UNSPEC 0 IFLA_PORT_VF 1 IFLA_PORT_PROFILE 2 diff --git a/xlat/rtnl_ifla_vf_port_attrs.h b/xlat/rtnl_ifla_vf_port_attrs.h index 6227bc31..b43087b5 100644 --- a/xlat/rtnl_ifla_vf_port_attrs.h +++ b/xlat/rtnl_ifla_vf_port_attrs.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_ifla_vf_port_attrs[] = { - XLAT(IFLA_VF_PORT_UNSPEC), - XLAT(IFLA_VF_PORT), - XLAT_END +static const struct xlat_data rtnl_ifla_vf_port_attrs_xdata[] = { + [IFLA_VF_PORT_UNSPEC] = XLAT(IFLA_VF_PORT_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (IFLA_VF_PORT_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(IFLA_VF_PORT_UNSPEC) + [IFLA_VF_PORT] = XLAT(IFLA_VF_PORT), + #define XLAT_VAL_1 ((unsigned) (IFLA_VF_PORT)) + #define XLAT_STR_1 STRINGIFY(IFLA_VF_PORT) }; +static +const struct xlat rtnl_ifla_vf_port_attrs[1] = { { + .data = rtnl_ifla_vf_port_attrs_xdata, + .size = ARRAY_SIZE(rtnl_ifla_vf_port_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_ifla_vf_port_attrs.in b/xlat/rtnl_ifla_vf_port_attrs.in index 7f93051c..afff1f3f 100644 --- a/xlat/rtnl_ifla_vf_port_attrs.in +++ b/xlat/rtnl_ifla_vf_port_attrs.in @@ -1,2 +1,3 @@ +#value_indexed IFLA_VF_PORT_UNSPEC 0 IFLA_VF_PORT 1 diff --git a/xlat/rtnl_ifla_xdp_attached_mode.h b/xlat/rtnl_ifla_xdp_attached_mode.h index bfa9deef..c96f1136 100644 --- a/xlat/rtnl_ifla_xdp_attached_mode.h +++ b/xlat/rtnl_ifla_xdp_attached_mode.h @@ -47,16 +47,74 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_ifla_xdp_attached_mode[] = { +static const struct xlat_data rtnl_ifla_xdp_attached_mode_xdata[] = { [XDP_ATTACHED_NONE] = XLAT(XDP_ATTACHED_NONE), + #define XLAT_VAL_0 ((unsigned) (XDP_ATTACHED_NONE)) + #define XLAT_STR_0 STRINGIFY(XDP_ATTACHED_NONE) [XDP_ATTACHED_DRV] = XLAT(XDP_ATTACHED_DRV), + #define XLAT_VAL_1 ((unsigned) (XDP_ATTACHED_DRV)) + #define XLAT_STR_1 STRINGIFY(XDP_ATTACHED_DRV) [XDP_ATTACHED_SKB] = XLAT(XDP_ATTACHED_SKB), + #define XLAT_VAL_2 ((unsigned) (XDP_ATTACHED_SKB)) + #define XLAT_STR_2 STRINGIFY(XDP_ATTACHED_SKB) [XDP_ATTACHED_HW] = XLAT(XDP_ATTACHED_HW), + #define XLAT_VAL_3 ((unsigned) (XDP_ATTACHED_HW)) + #define XLAT_STR_3 STRINGIFY(XDP_ATTACHED_HW) [XDP_ATTACHED_MULTI] = XLAT(XDP_ATTACHED_MULTI), - XLAT_END + #define XLAT_VAL_4 ((unsigned) (XDP_ATTACHED_MULTI)) + #define XLAT_STR_4 STRINGIFY(XDP_ATTACHED_MULTI) }; +static +const struct xlat rtnl_ifla_xdp_attached_mode[1] = { { + .data = rtnl_ifla_xdp_attached_mode_xdata, + .size = ARRAY_SIZE(rtnl_ifla_xdp_attached_mode_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_ifla_xdp_attached_mode.in b/xlat/rtnl_ifla_xdp_attached_mode.in index f3742302..2d8365e9 100644 --- a/xlat/rtnl_ifla_xdp_attached_mode.in +++ b/xlat/rtnl_ifla_xdp_attached_mode.in @@ -1,4 +1,7 @@ #value_indexed +#enum +#include +#include XDP_ATTACHED_NONE 0 XDP_ATTACHED_DRV 1 XDP_ATTACHED_SKB 2 diff --git a/xlat/rtnl_ifla_xdp_attached_mode.m4 b/xlat/rtnl_ifla_xdp_attached_mode.m4 new file mode 100644 index 00000000..1bb69666 --- /dev/null +++ b/xlat/rtnl_ifla_xdp_attached_mode.m4 @@ -0,0 +1,12 @@ +dnl Generated by ./xlat/gen.sh from ./xlat/rtnl_ifla_xdp_attached_mode.in; do not edit. +AC_DEFUN([st_CHECK_ENUMS_rtnl_ifla_xdp_attached_mode],[ +AC_CHECK_DECLS(m4_normalize([ +XDP_ATTACHED_NONE, +XDP_ATTACHED_DRV, +XDP_ATTACHED_SKB, +XDP_ATTACHED_HW, +XDP_ATTACHED_MULTI +]),,, [ +#include +#include +])])]) diff --git a/xlat/rtnl_ifla_xdp_attrs.h b/xlat/rtnl_ifla_xdp_attrs.h index dc9018fe..521a7ec5 100644 --- a/xlat/rtnl_ifla_xdp_attrs.h +++ b/xlat/rtnl_ifla_xdp_attrs.h @@ -59,6 +59,13 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define IFLA_XDP_HW_PROG_ID 7 #endif +#if defined(IFLA_XDP_EXPECTED_FD) || (defined(HAVE_DECL_IFLA_XDP_EXPECTED_FD) && HAVE_DECL_IFLA_XDP_EXPECTED_FD) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((IFLA_XDP_EXPECTED_FD) == (8), "IFLA_XDP_EXPECTED_FD != 8"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define IFLA_XDP_EXPECTED_FD 8 +#endif #ifndef XLAT_MACROS_ONLY @@ -68,19 +75,118 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_ifla_xdp_attrs[] = { - XLAT(IFLA_XDP_UNSPEC), - XLAT(IFLA_XDP_FD), - XLAT(IFLA_XDP_ATTACHED), - XLAT(IFLA_XDP_FLAGS), - XLAT(IFLA_XDP_PROG_ID), - XLAT(IFLA_XDP_DRV_PROG_ID), - XLAT(IFLA_XDP_SKB_PROG_ID), - XLAT(IFLA_XDP_HW_PROG_ID), - XLAT_END +static const struct xlat_data rtnl_ifla_xdp_attrs_xdata[] = { + [IFLA_XDP_UNSPEC] = XLAT(IFLA_XDP_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (IFLA_XDP_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(IFLA_XDP_UNSPEC) + [IFLA_XDP_FD] = XLAT(IFLA_XDP_FD), + #define XLAT_VAL_1 ((unsigned) (IFLA_XDP_FD)) + #define XLAT_STR_1 STRINGIFY(IFLA_XDP_FD) + [IFLA_XDP_ATTACHED] = XLAT(IFLA_XDP_ATTACHED), + #define XLAT_VAL_2 ((unsigned) (IFLA_XDP_ATTACHED)) + #define XLAT_STR_2 STRINGIFY(IFLA_XDP_ATTACHED) + [IFLA_XDP_FLAGS] = XLAT(IFLA_XDP_FLAGS), + #define XLAT_VAL_3 ((unsigned) (IFLA_XDP_FLAGS)) + #define XLAT_STR_3 STRINGIFY(IFLA_XDP_FLAGS) + [IFLA_XDP_PROG_ID] = XLAT(IFLA_XDP_PROG_ID), + #define XLAT_VAL_4 ((unsigned) (IFLA_XDP_PROG_ID)) + #define XLAT_STR_4 STRINGIFY(IFLA_XDP_PROG_ID) + [IFLA_XDP_DRV_PROG_ID] = XLAT(IFLA_XDP_DRV_PROG_ID), + #define XLAT_VAL_5 ((unsigned) (IFLA_XDP_DRV_PROG_ID)) + #define XLAT_STR_5 STRINGIFY(IFLA_XDP_DRV_PROG_ID) + [IFLA_XDP_SKB_PROG_ID] = XLAT(IFLA_XDP_SKB_PROG_ID), + #define XLAT_VAL_6 ((unsigned) (IFLA_XDP_SKB_PROG_ID)) + #define XLAT_STR_6 STRINGIFY(IFLA_XDP_SKB_PROG_ID) + [IFLA_XDP_HW_PROG_ID] = XLAT(IFLA_XDP_HW_PROG_ID), + #define XLAT_VAL_7 ((unsigned) (IFLA_XDP_HW_PROG_ID)) + #define XLAT_STR_7 STRINGIFY(IFLA_XDP_HW_PROG_ID) + [IFLA_XDP_EXPECTED_FD] = XLAT(IFLA_XDP_EXPECTED_FD), + #define XLAT_VAL_8 ((unsigned) (IFLA_XDP_EXPECTED_FD)) + #define XLAT_STR_8 STRINGIFY(IFLA_XDP_EXPECTED_FD) }; +static +const struct xlat rtnl_ifla_xdp_attrs[1] = { { + .data = rtnl_ifla_xdp_attrs_xdata, + .size = ARRAY_SIZE(rtnl_ifla_xdp_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_ifla_xdp_attrs.in b/xlat/rtnl_ifla_xdp_attrs.in index b12958f5..d743ac8a 100644 --- a/xlat/rtnl_ifla_xdp_attrs.in +++ b/xlat/rtnl_ifla_xdp_attrs.in @@ -1,3 +1,7 @@ +#value_indexed +#enum +#include +#include IFLA_XDP_UNSPEC 0 IFLA_XDP_FD 1 IFLA_XDP_ATTACHED 2 @@ -6,3 +10,4 @@ IFLA_XDP_PROG_ID 4 IFLA_XDP_DRV_PROG_ID 5 IFLA_XDP_SKB_PROG_ID 6 IFLA_XDP_HW_PROG_ID 7 +IFLA_XDP_EXPECTED_FD 8 diff --git a/xlat/rtnl_ifla_xdp_attrs.m4 b/xlat/rtnl_ifla_xdp_attrs.m4 new file mode 100644 index 00000000..2d2d75af --- /dev/null +++ b/xlat/rtnl_ifla_xdp_attrs.m4 @@ -0,0 +1,16 @@ +dnl Generated by ./xlat/gen.sh from ./xlat/rtnl_ifla_xdp_attrs.in; do not edit. +AC_DEFUN([st_CHECK_ENUMS_rtnl_ifla_xdp_attrs],[ +AC_CHECK_DECLS(m4_normalize([ +IFLA_XDP_UNSPEC, +IFLA_XDP_FD, +IFLA_XDP_ATTACHED, +IFLA_XDP_FLAGS, +IFLA_XDP_PROG_ID, +IFLA_XDP_DRV_PROG_ID, +IFLA_XDP_SKB_PROG_ID, +IFLA_XDP_HW_PROG_ID, +IFLA_XDP_EXPECTED_FD +]),,, [ +#include +#include +])])]) diff --git a/xlat/rtnl_link_attrs.h b/xlat/rtnl_link_attrs.h index 6a298606..7168f0ec 100644 --- a/xlat/rtnl_link_attrs.h +++ b/xlat/rtnl_link_attrs.h @@ -367,6 +367,34 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define IFLA_MAX_MTU 51 #endif +#if defined(IFLA_PROP_LIST) || (defined(HAVE_DECL_IFLA_PROP_LIST) && HAVE_DECL_IFLA_PROP_LIST) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((IFLA_PROP_LIST) == (52), "IFLA_PROP_LIST != 52"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define IFLA_PROP_LIST 52 +#endif +#if defined(IFLA_ALT_IFNAME) || (defined(HAVE_DECL_IFLA_ALT_IFNAME) && HAVE_DECL_IFLA_ALT_IFNAME) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((IFLA_ALT_IFNAME) == (53), "IFLA_ALT_IFNAME != 53"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define IFLA_ALT_IFNAME 53 +#endif +#if defined(IFLA_PERM_ADDRESS) || (defined(HAVE_DECL_IFLA_PERM_ADDRESS) && HAVE_DECL_IFLA_PERM_ADDRESS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((IFLA_PERM_ADDRESS) == (54), "IFLA_PERM_ADDRESS != 54"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define IFLA_PERM_ADDRESS 54 +#endif +#if defined(IFLA_PROTO_DOWN_REASON) || (defined(HAVE_DECL_IFLA_PROTO_DOWN_REASON) && HAVE_DECL_IFLA_PROTO_DOWN_REASON) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((IFLA_PROTO_DOWN_REASON) == (55), "IFLA_PROTO_DOWN_REASON != 55"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define IFLA_PROTO_DOWN_REASON 55 +#endif #ifndef XLAT_MACROS_ONLY @@ -376,63 +404,635 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_link_attrs[] = { - XLAT(IFLA_UNSPEC), - XLAT(IFLA_ADDRESS), - XLAT(IFLA_BROADCAST), - XLAT(IFLA_IFNAME), - XLAT(IFLA_MTU), - XLAT(IFLA_LINK), - XLAT(IFLA_QDISC), - XLAT(IFLA_STATS), - XLAT(IFLA_COST), - XLAT(IFLA_PRIORITY), - XLAT(IFLA_MASTER), - XLAT(IFLA_WIRELESS), - XLAT(IFLA_PROTINFO), - XLAT(IFLA_TXQLEN), - XLAT(IFLA_MAP), - XLAT(IFLA_WEIGHT), - XLAT(IFLA_OPERSTATE), - XLAT(IFLA_LINKMODE), - XLAT(IFLA_LINKINFO), - XLAT(IFLA_NET_NS_PID), - XLAT(IFLA_IFALIAS), - XLAT(IFLA_NUM_VF), - XLAT(IFLA_VFINFO_LIST), - XLAT(IFLA_STATS64), - XLAT(IFLA_VF_PORTS), - XLAT(IFLA_PORT_SELF), - XLAT(IFLA_AF_SPEC), - XLAT(IFLA_GROUP), - XLAT(IFLA_NET_NS_FD), - XLAT(IFLA_EXT_MASK), - XLAT(IFLA_PROMISCUITY), - XLAT(IFLA_NUM_TX_QUEUES), - XLAT(IFLA_NUM_RX_QUEUES), - XLAT(IFLA_CARRIER), - XLAT(IFLA_PHYS_PORT_ID), - XLAT(IFLA_CARRIER_CHANGES), - XLAT(IFLA_PHYS_SWITCH_ID), - XLAT(IFLA_LINK_NETNSID), - XLAT(IFLA_PHYS_PORT_NAME), - XLAT(IFLA_PROTO_DOWN), - XLAT(IFLA_GSO_MAX_SEGS), - XLAT(IFLA_GSO_MAX_SIZE), - XLAT(IFLA_PAD), - XLAT(IFLA_XDP), - XLAT(IFLA_EVENT), - XLAT(IFLA_NEW_NETNSID), - XLAT(IFLA_IF_NETNSID), - XLAT(IFLA_CARRIER_UP_COUNT), - XLAT(IFLA_CARRIER_DOWN_COUNT), - XLAT(IFLA_NEW_IFINDEX), - XLAT(IFLA_MIN_MTU), - XLAT(IFLA_MAX_MTU), - XLAT_END +static const struct xlat_data rtnl_link_attrs_xdata[] = { + [IFLA_UNSPEC] = XLAT(IFLA_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (IFLA_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(IFLA_UNSPEC) + [IFLA_ADDRESS] = XLAT(IFLA_ADDRESS), + #define XLAT_VAL_1 ((unsigned) (IFLA_ADDRESS)) + #define XLAT_STR_1 STRINGIFY(IFLA_ADDRESS) + [IFLA_BROADCAST] = XLAT(IFLA_BROADCAST), + #define XLAT_VAL_2 ((unsigned) (IFLA_BROADCAST)) + #define XLAT_STR_2 STRINGIFY(IFLA_BROADCAST) + [IFLA_IFNAME] = XLAT(IFLA_IFNAME), + #define XLAT_VAL_3 ((unsigned) (IFLA_IFNAME)) + #define XLAT_STR_3 STRINGIFY(IFLA_IFNAME) + [IFLA_MTU] = XLAT(IFLA_MTU), + #define XLAT_VAL_4 ((unsigned) (IFLA_MTU)) + #define XLAT_STR_4 STRINGIFY(IFLA_MTU) + [IFLA_LINK] = XLAT(IFLA_LINK), + #define XLAT_VAL_5 ((unsigned) (IFLA_LINK)) + #define XLAT_STR_5 STRINGIFY(IFLA_LINK) + [IFLA_QDISC] = XLAT(IFLA_QDISC), + #define XLAT_VAL_6 ((unsigned) (IFLA_QDISC)) + #define XLAT_STR_6 STRINGIFY(IFLA_QDISC) + [IFLA_STATS] = XLAT(IFLA_STATS), + #define XLAT_VAL_7 ((unsigned) (IFLA_STATS)) + #define XLAT_STR_7 STRINGIFY(IFLA_STATS) + [IFLA_COST] = XLAT(IFLA_COST), + #define XLAT_VAL_8 ((unsigned) (IFLA_COST)) + #define XLAT_STR_8 STRINGIFY(IFLA_COST) + [IFLA_PRIORITY] = XLAT(IFLA_PRIORITY), + #define XLAT_VAL_9 ((unsigned) (IFLA_PRIORITY)) + #define XLAT_STR_9 STRINGIFY(IFLA_PRIORITY) + [IFLA_MASTER] = XLAT(IFLA_MASTER), + #define XLAT_VAL_10 ((unsigned) (IFLA_MASTER)) + #define XLAT_STR_10 STRINGIFY(IFLA_MASTER) + [IFLA_WIRELESS] = XLAT(IFLA_WIRELESS), + #define XLAT_VAL_11 ((unsigned) (IFLA_WIRELESS)) + #define XLAT_STR_11 STRINGIFY(IFLA_WIRELESS) + [IFLA_PROTINFO] = XLAT(IFLA_PROTINFO), + #define XLAT_VAL_12 ((unsigned) (IFLA_PROTINFO)) + #define XLAT_STR_12 STRINGIFY(IFLA_PROTINFO) + [IFLA_TXQLEN] = XLAT(IFLA_TXQLEN), + #define XLAT_VAL_13 ((unsigned) (IFLA_TXQLEN)) + #define XLAT_STR_13 STRINGIFY(IFLA_TXQLEN) + [IFLA_MAP] = XLAT(IFLA_MAP), + #define XLAT_VAL_14 ((unsigned) (IFLA_MAP)) + #define XLAT_STR_14 STRINGIFY(IFLA_MAP) + [IFLA_WEIGHT] = XLAT(IFLA_WEIGHT), + #define XLAT_VAL_15 ((unsigned) (IFLA_WEIGHT)) + #define XLAT_STR_15 STRINGIFY(IFLA_WEIGHT) + [IFLA_OPERSTATE] = XLAT(IFLA_OPERSTATE), + #define XLAT_VAL_16 ((unsigned) (IFLA_OPERSTATE)) + #define XLAT_STR_16 STRINGIFY(IFLA_OPERSTATE) + [IFLA_LINKMODE] = XLAT(IFLA_LINKMODE), + #define XLAT_VAL_17 ((unsigned) (IFLA_LINKMODE)) + #define XLAT_STR_17 STRINGIFY(IFLA_LINKMODE) + [IFLA_LINKINFO] = XLAT(IFLA_LINKINFO), + #define XLAT_VAL_18 ((unsigned) (IFLA_LINKINFO)) + #define XLAT_STR_18 STRINGIFY(IFLA_LINKINFO) + [IFLA_NET_NS_PID] = XLAT(IFLA_NET_NS_PID), + #define XLAT_VAL_19 ((unsigned) (IFLA_NET_NS_PID)) + #define XLAT_STR_19 STRINGIFY(IFLA_NET_NS_PID) + [IFLA_IFALIAS] = XLAT(IFLA_IFALIAS), + #define XLAT_VAL_20 ((unsigned) (IFLA_IFALIAS)) + #define XLAT_STR_20 STRINGIFY(IFLA_IFALIAS) + [IFLA_NUM_VF] = XLAT(IFLA_NUM_VF), + #define XLAT_VAL_21 ((unsigned) (IFLA_NUM_VF)) + #define XLAT_STR_21 STRINGIFY(IFLA_NUM_VF) + [IFLA_VFINFO_LIST] = XLAT(IFLA_VFINFO_LIST), + #define XLAT_VAL_22 ((unsigned) (IFLA_VFINFO_LIST)) + #define XLAT_STR_22 STRINGIFY(IFLA_VFINFO_LIST) + [IFLA_STATS64] = XLAT(IFLA_STATS64), + #define XLAT_VAL_23 ((unsigned) (IFLA_STATS64)) + #define XLAT_STR_23 STRINGIFY(IFLA_STATS64) + [IFLA_VF_PORTS] = XLAT(IFLA_VF_PORTS), + #define XLAT_VAL_24 ((unsigned) (IFLA_VF_PORTS)) + #define XLAT_STR_24 STRINGIFY(IFLA_VF_PORTS) + [IFLA_PORT_SELF] = XLAT(IFLA_PORT_SELF), + #define XLAT_VAL_25 ((unsigned) (IFLA_PORT_SELF)) + #define XLAT_STR_25 STRINGIFY(IFLA_PORT_SELF) + [IFLA_AF_SPEC] = XLAT(IFLA_AF_SPEC), + #define XLAT_VAL_26 ((unsigned) (IFLA_AF_SPEC)) + #define XLAT_STR_26 STRINGIFY(IFLA_AF_SPEC) + [IFLA_GROUP] = XLAT(IFLA_GROUP), + #define XLAT_VAL_27 ((unsigned) (IFLA_GROUP)) + #define XLAT_STR_27 STRINGIFY(IFLA_GROUP) + [IFLA_NET_NS_FD] = XLAT(IFLA_NET_NS_FD), + #define XLAT_VAL_28 ((unsigned) (IFLA_NET_NS_FD)) + #define XLAT_STR_28 STRINGIFY(IFLA_NET_NS_FD) + [IFLA_EXT_MASK] = XLAT(IFLA_EXT_MASK), + #define XLAT_VAL_29 ((unsigned) (IFLA_EXT_MASK)) + #define XLAT_STR_29 STRINGIFY(IFLA_EXT_MASK) + [IFLA_PROMISCUITY] = XLAT(IFLA_PROMISCUITY), + #define XLAT_VAL_30 ((unsigned) (IFLA_PROMISCUITY)) + #define XLAT_STR_30 STRINGIFY(IFLA_PROMISCUITY) + [IFLA_NUM_TX_QUEUES] = XLAT(IFLA_NUM_TX_QUEUES), + #define XLAT_VAL_31 ((unsigned) (IFLA_NUM_TX_QUEUES)) + #define XLAT_STR_31 STRINGIFY(IFLA_NUM_TX_QUEUES) + [IFLA_NUM_RX_QUEUES] = XLAT(IFLA_NUM_RX_QUEUES), + #define XLAT_VAL_32 ((unsigned) (IFLA_NUM_RX_QUEUES)) + #define XLAT_STR_32 STRINGIFY(IFLA_NUM_RX_QUEUES) + [IFLA_CARRIER] = XLAT(IFLA_CARRIER), + #define XLAT_VAL_33 ((unsigned) (IFLA_CARRIER)) + #define XLAT_STR_33 STRINGIFY(IFLA_CARRIER) + [IFLA_PHYS_PORT_ID] = XLAT(IFLA_PHYS_PORT_ID), + #define XLAT_VAL_34 ((unsigned) (IFLA_PHYS_PORT_ID)) + #define XLAT_STR_34 STRINGIFY(IFLA_PHYS_PORT_ID) + [IFLA_CARRIER_CHANGES] = XLAT(IFLA_CARRIER_CHANGES), + #define XLAT_VAL_35 ((unsigned) (IFLA_CARRIER_CHANGES)) + #define XLAT_STR_35 STRINGIFY(IFLA_CARRIER_CHANGES) + [IFLA_PHYS_SWITCH_ID] = XLAT(IFLA_PHYS_SWITCH_ID), + #define XLAT_VAL_36 ((unsigned) (IFLA_PHYS_SWITCH_ID)) + #define XLAT_STR_36 STRINGIFY(IFLA_PHYS_SWITCH_ID) + [IFLA_LINK_NETNSID] = XLAT(IFLA_LINK_NETNSID), + #define XLAT_VAL_37 ((unsigned) (IFLA_LINK_NETNSID)) + #define XLAT_STR_37 STRINGIFY(IFLA_LINK_NETNSID) + [IFLA_PHYS_PORT_NAME] = XLAT(IFLA_PHYS_PORT_NAME), + #define XLAT_VAL_38 ((unsigned) (IFLA_PHYS_PORT_NAME)) + #define XLAT_STR_38 STRINGIFY(IFLA_PHYS_PORT_NAME) + [IFLA_PROTO_DOWN] = XLAT(IFLA_PROTO_DOWN), + #define XLAT_VAL_39 ((unsigned) (IFLA_PROTO_DOWN)) + #define XLAT_STR_39 STRINGIFY(IFLA_PROTO_DOWN) + [IFLA_GSO_MAX_SEGS] = XLAT(IFLA_GSO_MAX_SEGS), + #define XLAT_VAL_40 ((unsigned) (IFLA_GSO_MAX_SEGS)) + #define XLAT_STR_40 STRINGIFY(IFLA_GSO_MAX_SEGS) + [IFLA_GSO_MAX_SIZE] = XLAT(IFLA_GSO_MAX_SIZE), + #define XLAT_VAL_41 ((unsigned) (IFLA_GSO_MAX_SIZE)) + #define XLAT_STR_41 STRINGIFY(IFLA_GSO_MAX_SIZE) + [IFLA_PAD] = XLAT(IFLA_PAD), + #define XLAT_VAL_42 ((unsigned) (IFLA_PAD)) + #define XLAT_STR_42 STRINGIFY(IFLA_PAD) + [IFLA_XDP] = XLAT(IFLA_XDP), + #define XLAT_VAL_43 ((unsigned) (IFLA_XDP)) + #define XLAT_STR_43 STRINGIFY(IFLA_XDP) + [IFLA_EVENT] = XLAT(IFLA_EVENT), + #define XLAT_VAL_44 ((unsigned) (IFLA_EVENT)) + #define XLAT_STR_44 STRINGIFY(IFLA_EVENT) + [IFLA_NEW_NETNSID] = XLAT(IFLA_NEW_NETNSID), + #define XLAT_VAL_45 ((unsigned) (IFLA_NEW_NETNSID)) + #define XLAT_STR_45 STRINGIFY(IFLA_NEW_NETNSID) + [IFLA_IF_NETNSID] = XLAT(IFLA_IF_NETNSID), + #define XLAT_VAL_46 ((unsigned) (IFLA_IF_NETNSID)) + #define XLAT_STR_46 STRINGIFY(IFLA_IF_NETNSID) + [IFLA_CARRIER_UP_COUNT] = XLAT(IFLA_CARRIER_UP_COUNT), + #define XLAT_VAL_47 ((unsigned) (IFLA_CARRIER_UP_COUNT)) + #define XLAT_STR_47 STRINGIFY(IFLA_CARRIER_UP_COUNT) + [IFLA_CARRIER_DOWN_COUNT] = XLAT(IFLA_CARRIER_DOWN_COUNT), + #define XLAT_VAL_48 ((unsigned) (IFLA_CARRIER_DOWN_COUNT)) + #define XLAT_STR_48 STRINGIFY(IFLA_CARRIER_DOWN_COUNT) + [IFLA_NEW_IFINDEX] = XLAT(IFLA_NEW_IFINDEX), + #define XLAT_VAL_49 ((unsigned) (IFLA_NEW_IFINDEX)) + #define XLAT_STR_49 STRINGIFY(IFLA_NEW_IFINDEX) + [IFLA_MIN_MTU] = XLAT(IFLA_MIN_MTU), + #define XLAT_VAL_50 ((unsigned) (IFLA_MIN_MTU)) + #define XLAT_STR_50 STRINGIFY(IFLA_MIN_MTU) + [IFLA_MAX_MTU] = XLAT(IFLA_MAX_MTU), + #define XLAT_VAL_51 ((unsigned) (IFLA_MAX_MTU)) + #define XLAT_STR_51 STRINGIFY(IFLA_MAX_MTU) + [IFLA_PROP_LIST] = XLAT(IFLA_PROP_LIST), + #define XLAT_VAL_52 ((unsigned) (IFLA_PROP_LIST)) + #define XLAT_STR_52 STRINGIFY(IFLA_PROP_LIST) + [IFLA_ALT_IFNAME] = XLAT(IFLA_ALT_IFNAME), + #define XLAT_VAL_53 ((unsigned) (IFLA_ALT_IFNAME)) + #define XLAT_STR_53 STRINGIFY(IFLA_ALT_IFNAME) + [IFLA_PERM_ADDRESS] = XLAT(IFLA_PERM_ADDRESS), + #define XLAT_VAL_54 ((unsigned) (IFLA_PERM_ADDRESS)) + #define XLAT_STR_54 STRINGIFY(IFLA_PERM_ADDRESS) + [IFLA_PROTO_DOWN_REASON] = XLAT(IFLA_PROTO_DOWN_REASON), + #define XLAT_VAL_55 ((unsigned) (IFLA_PROTO_DOWN_REASON)) + #define XLAT_STR_55 STRINGIFY(IFLA_PROTO_DOWN_REASON) }; +static +const struct xlat rtnl_link_attrs[1] = { { + .data = rtnl_link_attrs_xdata, + .size = ARRAY_SIZE(rtnl_link_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif +# ifdef XLAT_VAL_41 + | XLAT_VAL_41 +# endif +# ifdef XLAT_VAL_42 + | XLAT_VAL_42 +# endif +# ifdef XLAT_VAL_43 + | XLAT_VAL_43 +# endif +# ifdef XLAT_VAL_44 + | XLAT_VAL_44 +# endif +# ifdef XLAT_VAL_45 + | XLAT_VAL_45 +# endif +# ifdef XLAT_VAL_46 + | XLAT_VAL_46 +# endif +# ifdef XLAT_VAL_47 + | XLAT_VAL_47 +# endif +# ifdef XLAT_VAL_48 + | XLAT_VAL_48 +# endif +# ifdef XLAT_VAL_49 + | XLAT_VAL_49 +# endif +# ifdef XLAT_VAL_50 + | XLAT_VAL_50 +# endif +# ifdef XLAT_VAL_51 + | XLAT_VAL_51 +# endif +# ifdef XLAT_VAL_52 + | XLAT_VAL_52 +# endif +# ifdef XLAT_VAL_53 + | XLAT_VAL_53 +# endif +# ifdef XLAT_VAL_54 + | XLAT_VAL_54 +# endif +# ifdef XLAT_VAL_55 + | XLAT_VAL_55 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif +# ifdef XLAT_STR_41 + + sizeof(XLAT_STR_41) +# endif +# ifdef XLAT_STR_42 + + sizeof(XLAT_STR_42) +# endif +# ifdef XLAT_STR_43 + + sizeof(XLAT_STR_43) +# endif +# ifdef XLAT_STR_44 + + sizeof(XLAT_STR_44) +# endif +# ifdef XLAT_STR_45 + + sizeof(XLAT_STR_45) +# endif +# ifdef XLAT_STR_46 + + sizeof(XLAT_STR_46) +# endif +# ifdef XLAT_STR_47 + + sizeof(XLAT_STR_47) +# endif +# ifdef XLAT_STR_48 + + sizeof(XLAT_STR_48) +# endif +# ifdef XLAT_STR_49 + + sizeof(XLAT_STR_49) +# endif +# ifdef XLAT_STR_50 + + sizeof(XLAT_STR_50) +# endif +# ifdef XLAT_STR_51 + + sizeof(XLAT_STR_51) +# endif +# ifdef XLAT_STR_52 + + sizeof(XLAT_STR_52) +# endif +# ifdef XLAT_STR_53 + + sizeof(XLAT_STR_53) +# endif +# ifdef XLAT_STR_54 + + sizeof(XLAT_STR_54) +# endif +# ifdef XLAT_STR_55 + + sizeof(XLAT_STR_55) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 +# undef XLAT_STR_41 +# undef XLAT_VAL_41 +# undef XLAT_STR_42 +# undef XLAT_VAL_42 +# undef XLAT_STR_43 +# undef XLAT_VAL_43 +# undef XLAT_STR_44 +# undef XLAT_VAL_44 +# undef XLAT_STR_45 +# undef XLAT_VAL_45 +# undef XLAT_STR_46 +# undef XLAT_VAL_46 +# undef XLAT_STR_47 +# undef XLAT_VAL_47 +# undef XLAT_STR_48 +# undef XLAT_VAL_48 +# undef XLAT_STR_49 +# undef XLAT_VAL_49 +# undef XLAT_STR_50 +# undef XLAT_VAL_50 +# undef XLAT_STR_51 +# undef XLAT_VAL_51 +# undef XLAT_STR_52 +# undef XLAT_VAL_52 +# undef XLAT_STR_53 +# undef XLAT_VAL_53 +# undef XLAT_STR_54 +# undef XLAT_VAL_54 +# undef XLAT_STR_55 +# undef XLAT_VAL_55 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_link_attrs.in b/xlat/rtnl_link_attrs.in index 1c0fa2dd..90449412 100644 --- a/xlat/rtnl_link_attrs.in +++ b/xlat/rtnl_link_attrs.in @@ -1,3 +1,7 @@ +#value_indexed +#enum +#include +#include IFLA_UNSPEC 0 IFLA_ADDRESS 1 IFLA_BROADCAST 2 @@ -50,3 +54,7 @@ IFLA_CARRIER_DOWN_COUNT 48 IFLA_NEW_IFINDEX 49 IFLA_MIN_MTU 50 IFLA_MAX_MTU 51 +IFLA_PROP_LIST 52 +IFLA_ALT_IFNAME 53 +IFLA_PERM_ADDRESS 54 +IFLA_PROTO_DOWN_REASON 55 diff --git a/xlat/rtnl_link_attrs.m4 b/xlat/rtnl_link_attrs.m4 new file mode 100644 index 00000000..5de4fd1a --- /dev/null +++ b/xlat/rtnl_link_attrs.m4 @@ -0,0 +1,63 @@ +dnl Generated by ./xlat/gen.sh from ./xlat/rtnl_link_attrs.in; do not edit. +AC_DEFUN([st_CHECK_ENUMS_rtnl_link_attrs],[ +AC_CHECK_DECLS(m4_normalize([ +IFLA_UNSPEC, +IFLA_ADDRESS, +IFLA_BROADCAST, +IFLA_IFNAME, +IFLA_MTU, +IFLA_LINK, +IFLA_QDISC, +IFLA_STATS, +IFLA_COST, +IFLA_PRIORITY, +IFLA_MASTER, +IFLA_WIRELESS, +IFLA_PROTINFO, +IFLA_TXQLEN, +IFLA_MAP, +IFLA_WEIGHT, +IFLA_OPERSTATE, +IFLA_LINKMODE, +IFLA_LINKINFO, +IFLA_NET_NS_PID, +IFLA_IFALIAS, +IFLA_NUM_VF, +IFLA_VFINFO_LIST, +IFLA_STATS64, +IFLA_VF_PORTS, +IFLA_PORT_SELF, +IFLA_AF_SPEC, +IFLA_GROUP, +IFLA_NET_NS_FD, +IFLA_EXT_MASK, +IFLA_PROMISCUITY, +IFLA_NUM_TX_QUEUES, +IFLA_NUM_RX_QUEUES, +IFLA_CARRIER, +IFLA_PHYS_PORT_ID, +IFLA_CARRIER_CHANGES, +IFLA_PHYS_SWITCH_ID, +IFLA_LINK_NETNSID, +IFLA_PHYS_PORT_NAME, +IFLA_PROTO_DOWN, +IFLA_GSO_MAX_SEGS, +IFLA_GSO_MAX_SIZE, +IFLA_PAD, +IFLA_XDP, +IFLA_EVENT, +IFLA_NEW_NETNSID, +IFLA_IF_NETNSID, +IFLA_CARRIER_UP_COUNT, +IFLA_CARRIER_DOWN_COUNT, +IFLA_NEW_IFINDEX, +IFLA_MIN_MTU, +IFLA_MAX_MTU, +IFLA_PROP_LIST, +IFLA_ALT_IFNAME, +IFLA_PERM_ADDRESS, +IFLA_PROTO_DOWN_REASON +]),,, [ +#include +#include +])])]) diff --git a/xlat/rtnl_mdb_attrs.h b/xlat/rtnl_mdb_attrs.h index 8dc0308b..d4a6e804 100644 --- a/xlat/rtnl_mdb_attrs.h +++ b/xlat/rtnl_mdb_attrs.h @@ -33,14 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_mdb_attrs[] = { - XLAT(MDBA_UNSPEC), - XLAT(MDBA_MDB), - XLAT(MDBA_ROUTER), - XLAT_END +static const struct xlat_data rtnl_mdb_attrs_xdata[] = { + [MDBA_UNSPEC] = XLAT(MDBA_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (MDBA_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(MDBA_UNSPEC) + [MDBA_MDB] = XLAT(MDBA_MDB), + #define XLAT_VAL_1 ((unsigned) (MDBA_MDB)) + #define XLAT_STR_1 STRINGIFY(MDBA_MDB) + [MDBA_ROUTER] = XLAT(MDBA_ROUTER), + #define XLAT_VAL_2 ((unsigned) (MDBA_ROUTER)) + #define XLAT_STR_2 STRINGIFY(MDBA_ROUTER) }; +static +const struct xlat rtnl_mdb_attrs[1] = { { + .data = rtnl_mdb_attrs_xdata, + .size = ARRAY_SIZE(rtnl_mdb_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_mdb_attrs.in b/xlat/rtnl_mdb_attrs.in index b8046624..9db05cd1 100644 --- a/xlat/rtnl_mdb_attrs.in +++ b/xlat/rtnl_mdb_attrs.in @@ -1,3 +1,4 @@ +#value_indexed MDBA_UNSPEC 0 MDBA_MDB 1 MDBA_ROUTER 2 diff --git a/xlat/rtnl_mdba_mdb_attrs.h b/xlat/rtnl_mdba_mdb_attrs.h index ff9c4aba..7f75ab15 100644 --- a/xlat/rtnl_mdba_mdb_attrs.h +++ b/xlat/rtnl_mdba_mdb_attrs.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_mdba_mdb_attrs[] = { - XLAT(MDBA_MDB_UNSPEC), - XLAT(MDBA_MDB_ENTRY), - XLAT_END +static const struct xlat_data rtnl_mdba_mdb_attrs_xdata[] = { + [MDBA_MDB_UNSPEC] = XLAT(MDBA_MDB_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (MDBA_MDB_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(MDBA_MDB_UNSPEC) + [MDBA_MDB_ENTRY] = XLAT(MDBA_MDB_ENTRY), + #define XLAT_VAL_1 ((unsigned) (MDBA_MDB_ENTRY)) + #define XLAT_STR_1 STRINGIFY(MDBA_MDB_ENTRY) }; +static +const struct xlat rtnl_mdba_mdb_attrs[1] = { { + .data = rtnl_mdba_mdb_attrs_xdata, + .size = ARRAY_SIZE(rtnl_mdba_mdb_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_mdba_mdb_attrs.in b/xlat/rtnl_mdba_mdb_attrs.in index 7ff5cce3..41f39627 100644 --- a/xlat/rtnl_mdba_mdb_attrs.in +++ b/xlat/rtnl_mdba_mdb_attrs.in @@ -1,2 +1,3 @@ +#value_indexed MDBA_MDB_UNSPEC 0 MDBA_MDB_ENTRY 1 diff --git a/xlat/rtnl_mdba_mdb_eattr_attrs.h b/xlat/rtnl_mdba_mdb_eattr_attrs.h index 47aa3bd9..ef404f96 100644 --- a/xlat/rtnl_mdba_mdb_eattr_attrs.h +++ b/xlat/rtnl_mdba_mdb_eattr_attrs.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_mdba_mdb_eattr_attrs[] = { - XLAT(MDBA_MDB_EATTR_UNSPEC), - XLAT(MDBA_MDB_EATTR_TIMER), - XLAT_END +static const struct xlat_data rtnl_mdba_mdb_eattr_attrs_xdata[] = { + [MDBA_MDB_EATTR_UNSPEC] = XLAT(MDBA_MDB_EATTR_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (MDBA_MDB_EATTR_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(MDBA_MDB_EATTR_UNSPEC) + [MDBA_MDB_EATTR_TIMER] = XLAT(MDBA_MDB_EATTR_TIMER), + #define XLAT_VAL_1 ((unsigned) (MDBA_MDB_EATTR_TIMER)) + #define XLAT_STR_1 STRINGIFY(MDBA_MDB_EATTR_TIMER) }; +static +const struct xlat rtnl_mdba_mdb_eattr_attrs[1] = { { + .data = rtnl_mdba_mdb_eattr_attrs_xdata, + .size = ARRAY_SIZE(rtnl_mdba_mdb_eattr_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_mdba_mdb_eattr_attrs.in b/xlat/rtnl_mdba_mdb_eattr_attrs.in index c7c1b7b3..de2e91c6 100644 --- a/xlat/rtnl_mdba_mdb_eattr_attrs.in +++ b/xlat/rtnl_mdba_mdb_eattr_attrs.in @@ -1,2 +1,3 @@ +#value_indexed MDBA_MDB_EATTR_UNSPEC 0 MDBA_MDB_EATTR_TIMER 1 diff --git a/xlat/rtnl_mdba_mdb_entry_attrs.h b/xlat/rtnl_mdba_mdb_entry_attrs.h index 8c385186..b5fd63b7 100644 --- a/xlat/rtnl_mdba_mdb_entry_attrs.h +++ b/xlat/rtnl_mdba_mdb_entry_attrs.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_mdba_mdb_entry_attrs[] = { - XLAT(MDBA_MDB_ENTRY_UNSPEC), - XLAT(MDBA_MDB_ENTRY_INFO), - XLAT_END +static const struct xlat_data rtnl_mdba_mdb_entry_attrs_xdata[] = { + [MDBA_MDB_ENTRY_UNSPEC] = XLAT(MDBA_MDB_ENTRY_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (MDBA_MDB_ENTRY_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(MDBA_MDB_ENTRY_UNSPEC) + [MDBA_MDB_ENTRY_INFO] = XLAT(MDBA_MDB_ENTRY_INFO), + #define XLAT_VAL_1 ((unsigned) (MDBA_MDB_ENTRY_INFO)) + #define XLAT_STR_1 STRINGIFY(MDBA_MDB_ENTRY_INFO) }; +static +const struct xlat rtnl_mdba_mdb_entry_attrs[1] = { { + .data = rtnl_mdba_mdb_entry_attrs_xdata, + .size = ARRAY_SIZE(rtnl_mdba_mdb_entry_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_mdba_mdb_entry_attrs.in b/xlat/rtnl_mdba_mdb_entry_attrs.in index 52b18d69..7216a6b0 100644 --- a/xlat/rtnl_mdba_mdb_entry_attrs.in +++ b/xlat/rtnl_mdba_mdb_entry_attrs.in @@ -1,2 +1,3 @@ +#value_indexed MDBA_MDB_ENTRY_UNSPEC 0 MDBA_MDB_ENTRY_INFO 1 diff --git a/xlat/rtnl_mdba_router_attrs.h b/xlat/rtnl_mdba_router_attrs.h index cd50e549..49dce3c4 100644 --- a/xlat/rtnl_mdba_router_attrs.h +++ b/xlat/rtnl_mdba_router_attrs.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_mdba_router_attrs[] = { - XLAT(MDBA_ROUTER_UNSPEC), - XLAT(MDBA_ROUTER_PORT), - XLAT_END +static const struct xlat_data rtnl_mdba_router_attrs_xdata[] = { + [MDBA_ROUTER_UNSPEC] = XLAT(MDBA_ROUTER_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (MDBA_ROUTER_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(MDBA_ROUTER_UNSPEC) + [MDBA_ROUTER_PORT] = XLAT(MDBA_ROUTER_PORT), + #define XLAT_VAL_1 ((unsigned) (MDBA_ROUTER_PORT)) + #define XLAT_STR_1 STRINGIFY(MDBA_ROUTER_PORT) }; +static +const struct xlat rtnl_mdba_router_attrs[1] = { { + .data = rtnl_mdba_router_attrs_xdata, + .size = ARRAY_SIZE(rtnl_mdba_router_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_mdba_router_attrs.in b/xlat/rtnl_mdba_router_attrs.in index 21dfeaa3..04505a15 100644 --- a/xlat/rtnl_mdba_router_attrs.in +++ b/xlat/rtnl_mdba_router_attrs.in @@ -1,2 +1,3 @@ +#value_indexed MDBA_ROUTER_UNSPEC 0 MDBA_ROUTER_PORT 1 diff --git a/xlat/rtnl_mdba_router_pattr_attrs.h b/xlat/rtnl_mdba_router_pattr_attrs.h index 7081d57a..b072e708 100644 --- a/xlat/rtnl_mdba_router_pattr_attrs.h +++ b/xlat/rtnl_mdba_router_pattr_attrs.h @@ -33,14 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_mdba_router_pattr_attrs[] = { - XLAT(MDBA_ROUTER_PATTR_UNSPEC), - XLAT(MDBA_ROUTER_PATTR_TIMER), - XLAT(MDBA_ROUTER_PATTR_TYPE), - XLAT_END +static const struct xlat_data rtnl_mdba_router_pattr_attrs_xdata[] = { + [MDBA_ROUTER_PATTR_UNSPEC] = XLAT(MDBA_ROUTER_PATTR_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (MDBA_ROUTER_PATTR_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(MDBA_ROUTER_PATTR_UNSPEC) + [MDBA_ROUTER_PATTR_TIMER] = XLAT(MDBA_ROUTER_PATTR_TIMER), + #define XLAT_VAL_1 ((unsigned) (MDBA_ROUTER_PATTR_TIMER)) + #define XLAT_STR_1 STRINGIFY(MDBA_ROUTER_PATTR_TIMER) + [MDBA_ROUTER_PATTR_TYPE] = XLAT(MDBA_ROUTER_PATTR_TYPE), + #define XLAT_VAL_2 ((unsigned) (MDBA_ROUTER_PATTR_TYPE)) + #define XLAT_STR_2 STRINGIFY(MDBA_ROUTER_PATTR_TYPE) }; +static +const struct xlat rtnl_mdba_router_pattr_attrs[1] = { { + .data = rtnl_mdba_router_pattr_attrs_xdata, + .size = ARRAY_SIZE(rtnl_mdba_router_pattr_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_mdba_router_pattr_attrs.in b/xlat/rtnl_mdba_router_pattr_attrs.in index 901e4f2f..c2964def 100644 --- a/xlat/rtnl_mdba_router_pattr_attrs.in +++ b/xlat/rtnl_mdba_router_pattr_attrs.in @@ -1,3 +1,4 @@ +#value_indexed MDBA_ROUTER_PATTR_UNSPEC 0 MDBA_ROUTER_PATTR_TIMER 1 MDBA_ROUTER_PATTR_TYPE 2 diff --git a/xlat/rtnl_neigh_attrs.h b/xlat/rtnl_neigh_attrs.h index a31be6d9..63897679 100644 --- a/xlat/rtnl_neigh_attrs.h +++ b/xlat/rtnl_neigh_attrs.h @@ -94,6 +94,20 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define NDA_PROTOCOL 12 #endif +#if defined(NDA_NH_ID) || (defined(HAVE_DECL_NDA_NH_ID) && HAVE_DECL_NDA_NH_ID) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((NDA_NH_ID) == (13), "NDA_NH_ID != 13"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define NDA_NH_ID 13 +#endif +#if defined(NDA_FDB_EXT_ATTRS) || (defined(HAVE_DECL_NDA_FDB_EXT_ATTRS) && HAVE_DECL_NDA_FDB_EXT_ATTRS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((NDA_FDB_EXT_ATTRS) == (14), "NDA_FDB_EXT_ATTRS != 14"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define NDA_FDB_EXT_ATTRS 14 +#endif #ifndef XLAT_MACROS_ONLY @@ -103,24 +117,184 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_neigh_attrs[] = { - XLAT(NDA_UNSPEC), - XLAT(NDA_DST), - XLAT(NDA_LLADDR), - XLAT(NDA_CACHEINFO), - XLAT(NDA_PROBES), - XLAT(NDA_VLAN), - XLAT(NDA_PORT), - XLAT(NDA_VNI), - XLAT(NDA_IFINDEX), - XLAT(NDA_MASTER), - XLAT(NDA_LINK_NETNSID), - XLAT(NDA_SRC_VNI), - XLAT(NDA_PROTOCOL), - XLAT_END +static const struct xlat_data rtnl_neigh_attrs_xdata[] = { + [NDA_UNSPEC] = XLAT(NDA_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (NDA_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(NDA_UNSPEC) + [NDA_DST] = XLAT(NDA_DST), + #define XLAT_VAL_1 ((unsigned) (NDA_DST)) + #define XLAT_STR_1 STRINGIFY(NDA_DST) + [NDA_LLADDR] = XLAT(NDA_LLADDR), + #define XLAT_VAL_2 ((unsigned) (NDA_LLADDR)) + #define XLAT_STR_2 STRINGIFY(NDA_LLADDR) + [NDA_CACHEINFO] = XLAT(NDA_CACHEINFO), + #define XLAT_VAL_3 ((unsigned) (NDA_CACHEINFO)) + #define XLAT_STR_3 STRINGIFY(NDA_CACHEINFO) + [NDA_PROBES] = XLAT(NDA_PROBES), + #define XLAT_VAL_4 ((unsigned) (NDA_PROBES)) + #define XLAT_STR_4 STRINGIFY(NDA_PROBES) + [NDA_VLAN] = XLAT(NDA_VLAN), + #define XLAT_VAL_5 ((unsigned) (NDA_VLAN)) + #define XLAT_STR_5 STRINGIFY(NDA_VLAN) + [NDA_PORT] = XLAT(NDA_PORT), + #define XLAT_VAL_6 ((unsigned) (NDA_PORT)) + #define XLAT_STR_6 STRINGIFY(NDA_PORT) + [NDA_VNI] = XLAT(NDA_VNI), + #define XLAT_VAL_7 ((unsigned) (NDA_VNI)) + #define XLAT_STR_7 STRINGIFY(NDA_VNI) + [NDA_IFINDEX] = XLAT(NDA_IFINDEX), + #define XLAT_VAL_8 ((unsigned) (NDA_IFINDEX)) + #define XLAT_STR_8 STRINGIFY(NDA_IFINDEX) + [NDA_MASTER] = XLAT(NDA_MASTER), + #define XLAT_VAL_9 ((unsigned) (NDA_MASTER)) + #define XLAT_STR_9 STRINGIFY(NDA_MASTER) + [NDA_LINK_NETNSID] = XLAT(NDA_LINK_NETNSID), + #define XLAT_VAL_10 ((unsigned) (NDA_LINK_NETNSID)) + #define XLAT_STR_10 STRINGIFY(NDA_LINK_NETNSID) + [NDA_SRC_VNI] = XLAT(NDA_SRC_VNI), + #define XLAT_VAL_11 ((unsigned) (NDA_SRC_VNI)) + #define XLAT_STR_11 STRINGIFY(NDA_SRC_VNI) + [NDA_PROTOCOL] = XLAT(NDA_PROTOCOL), + #define XLAT_VAL_12 ((unsigned) (NDA_PROTOCOL)) + #define XLAT_STR_12 STRINGIFY(NDA_PROTOCOL) + [NDA_NH_ID] = XLAT(NDA_NH_ID), + #define XLAT_VAL_13 ((unsigned) (NDA_NH_ID)) + #define XLAT_STR_13 STRINGIFY(NDA_NH_ID) + [NDA_FDB_EXT_ATTRS] = XLAT(NDA_FDB_EXT_ATTRS), + #define XLAT_VAL_14 ((unsigned) (NDA_FDB_EXT_ATTRS)) + #define XLAT_STR_14 STRINGIFY(NDA_FDB_EXT_ATTRS) }; +static +const struct xlat rtnl_neigh_attrs[1] = { { + .data = rtnl_neigh_attrs_xdata, + .size = ARRAY_SIZE(rtnl_neigh_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_neigh_attrs.in b/xlat/rtnl_neigh_attrs.in index b59c63d2..5b09915f 100644 --- a/xlat/rtnl_neigh_attrs.in +++ b/xlat/rtnl_neigh_attrs.in @@ -1,3 +1,4 @@ +#value_indexed NDA_UNSPEC 0 NDA_DST 1 NDA_LLADDR 2 @@ -11,3 +12,5 @@ NDA_MASTER 9 NDA_LINK_NETNSID 10 NDA_SRC_VNI 11 NDA_PROTOCOL 12 +NDA_NH_ID 13 +NDA_FDB_EXT_ATTRS 14 diff --git a/xlat/rtnl_neightbl_attrs.h b/xlat/rtnl_neightbl_attrs.h index 8768bab8..79d00d2f 100644 --- a/xlat/rtnl_neightbl_attrs.h +++ b/xlat/rtnl_neightbl_attrs.h @@ -82,21 +82,129 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_neightbl_attrs[] = { - XLAT(NDTA_UNSPEC), - XLAT(NDTA_NAME), - XLAT(NDTA_THRESH1), - XLAT(NDTA_THRESH2), - XLAT(NDTA_THRESH3), - XLAT(NDTA_CONFIG), - XLAT(NDTA_PARMS), - XLAT(NDTA_STATS), - XLAT(NDTA_GC_INTERVAL), - XLAT(NDTA_PAD), - XLAT_END +static const struct xlat_data rtnl_neightbl_attrs_xdata[] = { + [NDTA_UNSPEC] = XLAT(NDTA_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (NDTA_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(NDTA_UNSPEC) + [NDTA_NAME] = XLAT(NDTA_NAME), + #define XLAT_VAL_1 ((unsigned) (NDTA_NAME)) + #define XLAT_STR_1 STRINGIFY(NDTA_NAME) + [NDTA_THRESH1] = XLAT(NDTA_THRESH1), + #define XLAT_VAL_2 ((unsigned) (NDTA_THRESH1)) + #define XLAT_STR_2 STRINGIFY(NDTA_THRESH1) + [NDTA_THRESH2] = XLAT(NDTA_THRESH2), + #define XLAT_VAL_3 ((unsigned) (NDTA_THRESH2)) + #define XLAT_STR_3 STRINGIFY(NDTA_THRESH2) + [NDTA_THRESH3] = XLAT(NDTA_THRESH3), + #define XLAT_VAL_4 ((unsigned) (NDTA_THRESH3)) + #define XLAT_STR_4 STRINGIFY(NDTA_THRESH3) + [NDTA_CONFIG] = XLAT(NDTA_CONFIG), + #define XLAT_VAL_5 ((unsigned) (NDTA_CONFIG)) + #define XLAT_STR_5 STRINGIFY(NDTA_CONFIG) + [NDTA_PARMS] = XLAT(NDTA_PARMS), + #define XLAT_VAL_6 ((unsigned) (NDTA_PARMS)) + #define XLAT_STR_6 STRINGIFY(NDTA_PARMS) + [NDTA_STATS] = XLAT(NDTA_STATS), + #define XLAT_VAL_7 ((unsigned) (NDTA_STATS)) + #define XLAT_STR_7 STRINGIFY(NDTA_STATS) + [NDTA_GC_INTERVAL] = XLAT(NDTA_GC_INTERVAL), + #define XLAT_VAL_8 ((unsigned) (NDTA_GC_INTERVAL)) + #define XLAT_STR_8 STRINGIFY(NDTA_GC_INTERVAL) + [NDTA_PAD] = XLAT(NDTA_PAD), + #define XLAT_VAL_9 ((unsigned) (NDTA_PAD)) + #define XLAT_STR_9 STRINGIFY(NDTA_PAD) }; +static +const struct xlat rtnl_neightbl_attrs[1] = { { + .data = rtnl_neightbl_attrs_xdata, + .size = ARRAY_SIZE(rtnl_neightbl_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_neightbl_attrs.in b/xlat/rtnl_neightbl_attrs.in index ea840f66..92982d29 100644 --- a/xlat/rtnl_neightbl_attrs.in +++ b/xlat/rtnl_neightbl_attrs.in @@ -1,3 +1,4 @@ +#value_indexed NDTA_UNSPEC 0 NDTA_NAME 1 NDTA_THRESH1 2 diff --git a/xlat/rtnl_neightbl_parms_attrs.h b/xlat/rtnl_neightbl_parms_attrs.h index 75bbdec7..3f4106c6 100644 --- a/xlat/rtnl_neightbl_parms_attrs.h +++ b/xlat/rtnl_neightbl_parms_attrs.h @@ -145,30 +145,228 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_neightbl_parms_attrs[] = { - XLAT(NDTPA_UNSPEC), - XLAT(NDTPA_IFINDEX), - XLAT(NDTPA_REFCNT), - XLAT(NDTPA_REACHABLE_TIME), - XLAT(NDTPA_BASE_REACHABLE_TIME), - XLAT(NDTPA_RETRANS_TIME), - XLAT(NDTPA_GC_STALETIME), - XLAT(NDTPA_DELAY_PROBE_TIME), - XLAT(NDTPA_QUEUE_LEN), - XLAT(NDTPA_APP_PROBES), - XLAT(NDTPA_UCAST_PROBES), - XLAT(NDTPA_MCAST_PROBES), - XLAT(NDTPA_ANYCAST_DELAY), - XLAT(NDTPA_PROXY_DELAY), - XLAT(NDTPA_PROXY_QLEN), - XLAT(NDTPA_LOCKTIME), - XLAT(NDTPA_QUEUE_LENBYTES), - XLAT(NDTPA_MCAST_REPROBES), - XLAT(NDTPA_PAD), - XLAT_END +static const struct xlat_data rtnl_neightbl_parms_attrs_xdata[] = { + [NDTPA_UNSPEC] = XLAT(NDTPA_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (NDTPA_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(NDTPA_UNSPEC) + [NDTPA_IFINDEX] = XLAT(NDTPA_IFINDEX), + #define XLAT_VAL_1 ((unsigned) (NDTPA_IFINDEX)) + #define XLAT_STR_1 STRINGIFY(NDTPA_IFINDEX) + [NDTPA_REFCNT] = XLAT(NDTPA_REFCNT), + #define XLAT_VAL_2 ((unsigned) (NDTPA_REFCNT)) + #define XLAT_STR_2 STRINGIFY(NDTPA_REFCNT) + [NDTPA_REACHABLE_TIME] = XLAT(NDTPA_REACHABLE_TIME), + #define XLAT_VAL_3 ((unsigned) (NDTPA_REACHABLE_TIME)) + #define XLAT_STR_3 STRINGIFY(NDTPA_REACHABLE_TIME) + [NDTPA_BASE_REACHABLE_TIME] = XLAT(NDTPA_BASE_REACHABLE_TIME), + #define XLAT_VAL_4 ((unsigned) (NDTPA_BASE_REACHABLE_TIME)) + #define XLAT_STR_4 STRINGIFY(NDTPA_BASE_REACHABLE_TIME) + [NDTPA_RETRANS_TIME] = XLAT(NDTPA_RETRANS_TIME), + #define XLAT_VAL_5 ((unsigned) (NDTPA_RETRANS_TIME)) + #define XLAT_STR_5 STRINGIFY(NDTPA_RETRANS_TIME) + [NDTPA_GC_STALETIME] = XLAT(NDTPA_GC_STALETIME), + #define XLAT_VAL_6 ((unsigned) (NDTPA_GC_STALETIME)) + #define XLAT_STR_6 STRINGIFY(NDTPA_GC_STALETIME) + [NDTPA_DELAY_PROBE_TIME] = XLAT(NDTPA_DELAY_PROBE_TIME), + #define XLAT_VAL_7 ((unsigned) (NDTPA_DELAY_PROBE_TIME)) + #define XLAT_STR_7 STRINGIFY(NDTPA_DELAY_PROBE_TIME) + [NDTPA_QUEUE_LEN] = XLAT(NDTPA_QUEUE_LEN), + #define XLAT_VAL_8 ((unsigned) (NDTPA_QUEUE_LEN)) + #define XLAT_STR_8 STRINGIFY(NDTPA_QUEUE_LEN) + [NDTPA_APP_PROBES] = XLAT(NDTPA_APP_PROBES), + #define XLAT_VAL_9 ((unsigned) (NDTPA_APP_PROBES)) + #define XLAT_STR_9 STRINGIFY(NDTPA_APP_PROBES) + [NDTPA_UCAST_PROBES] = XLAT(NDTPA_UCAST_PROBES), + #define XLAT_VAL_10 ((unsigned) (NDTPA_UCAST_PROBES)) + #define XLAT_STR_10 STRINGIFY(NDTPA_UCAST_PROBES) + [NDTPA_MCAST_PROBES] = XLAT(NDTPA_MCAST_PROBES), + #define XLAT_VAL_11 ((unsigned) (NDTPA_MCAST_PROBES)) + #define XLAT_STR_11 STRINGIFY(NDTPA_MCAST_PROBES) + [NDTPA_ANYCAST_DELAY] = XLAT(NDTPA_ANYCAST_DELAY), + #define XLAT_VAL_12 ((unsigned) (NDTPA_ANYCAST_DELAY)) + #define XLAT_STR_12 STRINGIFY(NDTPA_ANYCAST_DELAY) + [NDTPA_PROXY_DELAY] = XLAT(NDTPA_PROXY_DELAY), + #define XLAT_VAL_13 ((unsigned) (NDTPA_PROXY_DELAY)) + #define XLAT_STR_13 STRINGIFY(NDTPA_PROXY_DELAY) + [NDTPA_PROXY_QLEN] = XLAT(NDTPA_PROXY_QLEN), + #define XLAT_VAL_14 ((unsigned) (NDTPA_PROXY_QLEN)) + #define XLAT_STR_14 STRINGIFY(NDTPA_PROXY_QLEN) + [NDTPA_LOCKTIME] = XLAT(NDTPA_LOCKTIME), + #define XLAT_VAL_15 ((unsigned) (NDTPA_LOCKTIME)) + #define XLAT_STR_15 STRINGIFY(NDTPA_LOCKTIME) + [NDTPA_QUEUE_LENBYTES] = XLAT(NDTPA_QUEUE_LENBYTES), + #define XLAT_VAL_16 ((unsigned) (NDTPA_QUEUE_LENBYTES)) + #define XLAT_STR_16 STRINGIFY(NDTPA_QUEUE_LENBYTES) + [NDTPA_MCAST_REPROBES] = XLAT(NDTPA_MCAST_REPROBES), + #define XLAT_VAL_17 ((unsigned) (NDTPA_MCAST_REPROBES)) + #define XLAT_STR_17 STRINGIFY(NDTPA_MCAST_REPROBES) + [NDTPA_PAD] = XLAT(NDTPA_PAD), + #define XLAT_VAL_18 ((unsigned) (NDTPA_PAD)) + #define XLAT_STR_18 STRINGIFY(NDTPA_PAD) }; +static +const struct xlat rtnl_neightbl_parms_attrs[1] = { { + .data = rtnl_neightbl_parms_attrs_xdata, + .size = ARRAY_SIZE(rtnl_neightbl_parms_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_neightbl_parms_attrs.in b/xlat/rtnl_neightbl_parms_attrs.in index 9fcbff09..47f4adea 100644 --- a/xlat/rtnl_neightbl_parms_attrs.in +++ b/xlat/rtnl_neightbl_parms_attrs.in @@ -1,3 +1,4 @@ +#value_indexed NDTPA_UNSPEC 0 NDTPA_IFINDEX 1 NDTPA_REFCNT 2 diff --git a/xlat/rtnl_netconf_attrs.h b/xlat/rtnl_netconf_attrs.h index d1d7c873..db5cc626 100644 --- a/xlat/rtnl_netconf_attrs.h +++ b/xlat/rtnl_netconf_attrs.h @@ -75,20 +75,118 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_netconf_attrs[] = { - XLAT(NETCONFA_UNSPEC), - XLAT(NETCONFA_IFINDEX), - XLAT(NETCONFA_FORWARDING), - XLAT(NETCONFA_RP_FILTER), - XLAT(NETCONFA_MC_FORWARDING), - XLAT(NETCONFA_PROXY_NEIGH), - XLAT(NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN), - XLAT(NETCONFA_INPUT), - XLAT(NETCONFA_BC_FORWARDING), - XLAT_END +static const struct xlat_data rtnl_netconf_attrs_xdata[] = { + [NETCONFA_UNSPEC] = XLAT(NETCONFA_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (NETCONFA_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(NETCONFA_UNSPEC) + [NETCONFA_IFINDEX] = XLAT(NETCONFA_IFINDEX), + #define XLAT_VAL_1 ((unsigned) (NETCONFA_IFINDEX)) + #define XLAT_STR_1 STRINGIFY(NETCONFA_IFINDEX) + [NETCONFA_FORWARDING] = XLAT(NETCONFA_FORWARDING), + #define XLAT_VAL_2 ((unsigned) (NETCONFA_FORWARDING)) + #define XLAT_STR_2 STRINGIFY(NETCONFA_FORWARDING) + [NETCONFA_RP_FILTER] = XLAT(NETCONFA_RP_FILTER), + #define XLAT_VAL_3 ((unsigned) (NETCONFA_RP_FILTER)) + #define XLAT_STR_3 STRINGIFY(NETCONFA_RP_FILTER) + [NETCONFA_MC_FORWARDING] = XLAT(NETCONFA_MC_FORWARDING), + #define XLAT_VAL_4 ((unsigned) (NETCONFA_MC_FORWARDING)) + #define XLAT_STR_4 STRINGIFY(NETCONFA_MC_FORWARDING) + [NETCONFA_PROXY_NEIGH] = XLAT(NETCONFA_PROXY_NEIGH), + #define XLAT_VAL_5 ((unsigned) (NETCONFA_PROXY_NEIGH)) + #define XLAT_STR_5 STRINGIFY(NETCONFA_PROXY_NEIGH) + [NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN] = XLAT(NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN), + #define XLAT_VAL_6 ((unsigned) (NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN)) + #define XLAT_STR_6 STRINGIFY(NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN) + [NETCONFA_INPUT] = XLAT(NETCONFA_INPUT), + #define XLAT_VAL_7 ((unsigned) (NETCONFA_INPUT)) + #define XLAT_STR_7 STRINGIFY(NETCONFA_INPUT) + [NETCONFA_BC_FORWARDING] = XLAT(NETCONFA_BC_FORWARDING), + #define XLAT_VAL_8 ((unsigned) (NETCONFA_BC_FORWARDING)) + #define XLAT_STR_8 STRINGIFY(NETCONFA_BC_FORWARDING) }; +static +const struct xlat rtnl_netconf_attrs[1] = { { + .data = rtnl_netconf_attrs_xdata, + .size = ARRAY_SIZE(rtnl_netconf_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_netconf_attrs.in b/xlat/rtnl_netconf_attrs.in index 285398f5..3aab81ee 100644 --- a/xlat/rtnl_netconf_attrs.in +++ b/xlat/rtnl_netconf_attrs.in @@ -1,3 +1,4 @@ +#value_indexed NETCONFA_UNSPEC 0 NETCONFA_IFINDEX 1 NETCONFA_FORWARDING 2 diff --git a/xlat/rtnl_nsid_attrs.h b/xlat/rtnl_nsid_attrs.h index b532361c..9f37c2cc 100644 --- a/xlat/rtnl_nsid_attrs.h +++ b/xlat/rtnl_nsid_attrs.h @@ -61,18 +61,96 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_nsid_attrs[] = { +static const struct xlat_data rtnl_nsid_attrs_xdata[] = { XLAT(NETNSA_NSID_NOT_ASSIGNED), + #define XLAT_VAL_0 ((unsigned) (NETNSA_NSID_NOT_ASSIGNED)) + #define XLAT_STR_0 STRINGIFY(NETNSA_NSID_NOT_ASSIGNED) XLAT(NETNSA_NONE), + #define XLAT_VAL_1 ((unsigned) (NETNSA_NONE)) + #define XLAT_STR_1 STRINGIFY(NETNSA_NONE) XLAT(NETNSA_NSID), + #define XLAT_VAL_2 ((unsigned) (NETNSA_NSID)) + #define XLAT_STR_2 STRINGIFY(NETNSA_NSID) XLAT(NETNSA_PID), + #define XLAT_VAL_3 ((unsigned) (NETNSA_PID)) + #define XLAT_STR_3 STRINGIFY(NETNSA_PID) XLAT(NETNSA_FD), + #define XLAT_VAL_4 ((unsigned) (NETNSA_FD)) + #define XLAT_STR_4 STRINGIFY(NETNSA_FD) XLAT(NETNSA_TARGET_NSID), + #define XLAT_VAL_5 ((unsigned) (NETNSA_TARGET_NSID)) + #define XLAT_STR_5 STRINGIFY(NETNSA_TARGET_NSID) XLAT(NETNSA_CURRENT_NSID), - XLAT_END + #define XLAT_VAL_6 ((unsigned) (NETNSA_CURRENT_NSID)) + #define XLAT_STR_6 STRINGIFY(NETNSA_CURRENT_NSID) }; +static +const struct xlat rtnl_nsid_attrs[1] = { { + .data = rtnl_nsid_attrs_xdata, + .size = ARRAY_SIZE(rtnl_nsid_attrs_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_route_attrs.h b/xlat/rtnl_route_attrs.h index a3d64690..be58f694 100644 --- a/xlat/rtnl_route_attrs.h +++ b/xlat/rtnl_route_attrs.h @@ -222,41 +222,349 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_route_attrs[] = { - XLAT(RTA_UNSPEC), - XLAT(RTA_DST), - XLAT(RTA_SRC), - XLAT(RTA_IIF), - XLAT(RTA_OIF), - XLAT(RTA_GATEWAY), - XLAT(RTA_PRIORITY), - XLAT(RTA_PREFSRC), - XLAT(RTA_METRICS), - XLAT(RTA_MULTIPATH), - XLAT(RTA_PROTOINFO), - XLAT(RTA_FLOW), - XLAT(RTA_CACHEINFO), - XLAT(RTA_SESSION), - XLAT(RTA_MP_ALGO), - XLAT(RTA_TABLE), - XLAT(RTA_MARK), - XLAT(RTA_MFC_STATS), - XLAT(RTA_VIA), - XLAT(RTA_NEWDST), - XLAT(RTA_PREF), - XLAT(RTA_ENCAP_TYPE), - XLAT(RTA_ENCAP), - XLAT(RTA_EXPIRES), - XLAT(RTA_PAD), - XLAT(RTA_UID), - XLAT(RTA_TTL_PROPAGATE), - XLAT(RTA_IP_PROTO), - XLAT(RTA_SPORT), - XLAT(RTA_DPORT), - XLAT_END +static const struct xlat_data rtnl_route_attrs_xdata[] = { + [RTA_UNSPEC] = XLAT(RTA_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (RTA_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(RTA_UNSPEC) + [RTA_DST] = XLAT(RTA_DST), + #define XLAT_VAL_1 ((unsigned) (RTA_DST)) + #define XLAT_STR_1 STRINGIFY(RTA_DST) + [RTA_SRC] = XLAT(RTA_SRC), + #define XLAT_VAL_2 ((unsigned) (RTA_SRC)) + #define XLAT_STR_2 STRINGIFY(RTA_SRC) + [RTA_IIF] = XLAT(RTA_IIF), + #define XLAT_VAL_3 ((unsigned) (RTA_IIF)) + #define XLAT_STR_3 STRINGIFY(RTA_IIF) + [RTA_OIF] = XLAT(RTA_OIF), + #define XLAT_VAL_4 ((unsigned) (RTA_OIF)) + #define XLAT_STR_4 STRINGIFY(RTA_OIF) + [RTA_GATEWAY] = XLAT(RTA_GATEWAY), + #define XLAT_VAL_5 ((unsigned) (RTA_GATEWAY)) + #define XLAT_STR_5 STRINGIFY(RTA_GATEWAY) + [RTA_PRIORITY] = XLAT(RTA_PRIORITY), + #define XLAT_VAL_6 ((unsigned) (RTA_PRIORITY)) + #define XLAT_STR_6 STRINGIFY(RTA_PRIORITY) + [RTA_PREFSRC] = XLAT(RTA_PREFSRC), + #define XLAT_VAL_7 ((unsigned) (RTA_PREFSRC)) + #define XLAT_STR_7 STRINGIFY(RTA_PREFSRC) + [RTA_METRICS] = XLAT(RTA_METRICS), + #define XLAT_VAL_8 ((unsigned) (RTA_METRICS)) + #define XLAT_STR_8 STRINGIFY(RTA_METRICS) + [RTA_MULTIPATH] = XLAT(RTA_MULTIPATH), + #define XLAT_VAL_9 ((unsigned) (RTA_MULTIPATH)) + #define XLAT_STR_9 STRINGIFY(RTA_MULTIPATH) + [RTA_PROTOINFO] = XLAT(RTA_PROTOINFO), + #define XLAT_VAL_10 ((unsigned) (RTA_PROTOINFO)) + #define XLAT_STR_10 STRINGIFY(RTA_PROTOINFO) + [RTA_FLOW] = XLAT(RTA_FLOW), + #define XLAT_VAL_11 ((unsigned) (RTA_FLOW)) + #define XLAT_STR_11 STRINGIFY(RTA_FLOW) + [RTA_CACHEINFO] = XLAT(RTA_CACHEINFO), + #define XLAT_VAL_12 ((unsigned) (RTA_CACHEINFO)) + #define XLAT_STR_12 STRINGIFY(RTA_CACHEINFO) + [RTA_SESSION] = XLAT(RTA_SESSION), + #define XLAT_VAL_13 ((unsigned) (RTA_SESSION)) + #define XLAT_STR_13 STRINGIFY(RTA_SESSION) + [RTA_MP_ALGO] = XLAT(RTA_MP_ALGO), + #define XLAT_VAL_14 ((unsigned) (RTA_MP_ALGO)) + #define XLAT_STR_14 STRINGIFY(RTA_MP_ALGO) + [RTA_TABLE] = XLAT(RTA_TABLE), + #define XLAT_VAL_15 ((unsigned) (RTA_TABLE)) + #define XLAT_STR_15 STRINGIFY(RTA_TABLE) + [RTA_MARK] = XLAT(RTA_MARK), + #define XLAT_VAL_16 ((unsigned) (RTA_MARK)) + #define XLAT_STR_16 STRINGIFY(RTA_MARK) + [RTA_MFC_STATS] = XLAT(RTA_MFC_STATS), + #define XLAT_VAL_17 ((unsigned) (RTA_MFC_STATS)) + #define XLAT_STR_17 STRINGIFY(RTA_MFC_STATS) + [RTA_VIA] = XLAT(RTA_VIA), + #define XLAT_VAL_18 ((unsigned) (RTA_VIA)) + #define XLAT_STR_18 STRINGIFY(RTA_VIA) + [RTA_NEWDST] = XLAT(RTA_NEWDST), + #define XLAT_VAL_19 ((unsigned) (RTA_NEWDST)) + #define XLAT_STR_19 STRINGIFY(RTA_NEWDST) + [RTA_PREF] = XLAT(RTA_PREF), + #define XLAT_VAL_20 ((unsigned) (RTA_PREF)) + #define XLAT_STR_20 STRINGIFY(RTA_PREF) + [RTA_ENCAP_TYPE] = XLAT(RTA_ENCAP_TYPE), + #define XLAT_VAL_21 ((unsigned) (RTA_ENCAP_TYPE)) + #define XLAT_STR_21 STRINGIFY(RTA_ENCAP_TYPE) + [RTA_ENCAP] = XLAT(RTA_ENCAP), + #define XLAT_VAL_22 ((unsigned) (RTA_ENCAP)) + #define XLAT_STR_22 STRINGIFY(RTA_ENCAP) + [RTA_EXPIRES] = XLAT(RTA_EXPIRES), + #define XLAT_VAL_23 ((unsigned) (RTA_EXPIRES)) + #define XLAT_STR_23 STRINGIFY(RTA_EXPIRES) + [RTA_PAD] = XLAT(RTA_PAD), + #define XLAT_VAL_24 ((unsigned) (RTA_PAD)) + #define XLAT_STR_24 STRINGIFY(RTA_PAD) + [RTA_UID] = XLAT(RTA_UID), + #define XLAT_VAL_25 ((unsigned) (RTA_UID)) + #define XLAT_STR_25 STRINGIFY(RTA_UID) + [RTA_TTL_PROPAGATE] = XLAT(RTA_TTL_PROPAGATE), + #define XLAT_VAL_26 ((unsigned) (RTA_TTL_PROPAGATE)) + #define XLAT_STR_26 STRINGIFY(RTA_TTL_PROPAGATE) + [RTA_IP_PROTO] = XLAT(RTA_IP_PROTO), + #define XLAT_VAL_27 ((unsigned) (RTA_IP_PROTO)) + #define XLAT_STR_27 STRINGIFY(RTA_IP_PROTO) + [RTA_SPORT] = XLAT(RTA_SPORT), + #define XLAT_VAL_28 ((unsigned) (RTA_SPORT)) + #define XLAT_STR_28 STRINGIFY(RTA_SPORT) + [RTA_DPORT] = XLAT(RTA_DPORT), + #define XLAT_VAL_29 ((unsigned) (RTA_DPORT)) + #define XLAT_STR_29 STRINGIFY(RTA_DPORT) }; +static +const struct xlat rtnl_route_attrs[1] = { { + .data = rtnl_route_attrs_xdata, + .size = ARRAY_SIZE(rtnl_route_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_route_attrs.in b/xlat/rtnl_route_attrs.in index bfd76580..dd7c973e 100644 --- a/xlat/rtnl_route_attrs.in +++ b/xlat/rtnl_route_attrs.in @@ -1,3 +1,4 @@ +#value_indexed RTA_UNSPEC 0 RTA_DST 1 RTA_SRC 2 diff --git a/xlat/rtnl_rta_metrics_attrs.h b/xlat/rtnl_rta_metrics_attrs.h index b4414592..36be3719 100644 --- a/xlat/rtnl_rta_metrics_attrs.h +++ b/xlat/rtnl_rta_metrics_attrs.h @@ -131,28 +131,206 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_rta_metrics_attrs[] = { - XLAT(RTAX_UNSPEC), - XLAT(RTAX_LOCK), - XLAT(RTAX_MTU), - XLAT(RTAX_WINDOW), - XLAT(RTAX_RTT), - XLAT(RTAX_RTTVAR), - XLAT(RTAX_SSTHRESH), - XLAT(RTAX_CWND), - XLAT(RTAX_ADVMSS), - XLAT(RTAX_REORDERING), - XLAT(RTAX_HOPLIMIT), - XLAT(RTAX_INITCWND), - XLAT(RTAX_FEATURES), - XLAT(RTAX_RTO_MIN), - XLAT(RTAX_INITRWND), - XLAT(RTAX_QUICKACK), - XLAT(RTAX_CC_ALGO), - XLAT_END +static const struct xlat_data rtnl_rta_metrics_attrs_xdata[] = { + [RTAX_UNSPEC] = XLAT(RTAX_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (RTAX_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(RTAX_UNSPEC) + [RTAX_LOCK] = XLAT(RTAX_LOCK), + #define XLAT_VAL_1 ((unsigned) (RTAX_LOCK)) + #define XLAT_STR_1 STRINGIFY(RTAX_LOCK) + [RTAX_MTU] = XLAT(RTAX_MTU), + #define XLAT_VAL_2 ((unsigned) (RTAX_MTU)) + #define XLAT_STR_2 STRINGIFY(RTAX_MTU) + [RTAX_WINDOW] = XLAT(RTAX_WINDOW), + #define XLAT_VAL_3 ((unsigned) (RTAX_WINDOW)) + #define XLAT_STR_3 STRINGIFY(RTAX_WINDOW) + [RTAX_RTT] = XLAT(RTAX_RTT), + #define XLAT_VAL_4 ((unsigned) (RTAX_RTT)) + #define XLAT_STR_4 STRINGIFY(RTAX_RTT) + [RTAX_RTTVAR] = XLAT(RTAX_RTTVAR), + #define XLAT_VAL_5 ((unsigned) (RTAX_RTTVAR)) + #define XLAT_STR_5 STRINGIFY(RTAX_RTTVAR) + [RTAX_SSTHRESH] = XLAT(RTAX_SSTHRESH), + #define XLAT_VAL_6 ((unsigned) (RTAX_SSTHRESH)) + #define XLAT_STR_6 STRINGIFY(RTAX_SSTHRESH) + [RTAX_CWND] = XLAT(RTAX_CWND), + #define XLAT_VAL_7 ((unsigned) (RTAX_CWND)) + #define XLAT_STR_7 STRINGIFY(RTAX_CWND) + [RTAX_ADVMSS] = XLAT(RTAX_ADVMSS), + #define XLAT_VAL_8 ((unsigned) (RTAX_ADVMSS)) + #define XLAT_STR_8 STRINGIFY(RTAX_ADVMSS) + [RTAX_REORDERING] = XLAT(RTAX_REORDERING), + #define XLAT_VAL_9 ((unsigned) (RTAX_REORDERING)) + #define XLAT_STR_9 STRINGIFY(RTAX_REORDERING) + [RTAX_HOPLIMIT] = XLAT(RTAX_HOPLIMIT), + #define XLAT_VAL_10 ((unsigned) (RTAX_HOPLIMIT)) + #define XLAT_STR_10 STRINGIFY(RTAX_HOPLIMIT) + [RTAX_INITCWND] = XLAT(RTAX_INITCWND), + #define XLAT_VAL_11 ((unsigned) (RTAX_INITCWND)) + #define XLAT_STR_11 STRINGIFY(RTAX_INITCWND) + [RTAX_FEATURES] = XLAT(RTAX_FEATURES), + #define XLAT_VAL_12 ((unsigned) (RTAX_FEATURES)) + #define XLAT_STR_12 STRINGIFY(RTAX_FEATURES) + [RTAX_RTO_MIN] = XLAT(RTAX_RTO_MIN), + #define XLAT_VAL_13 ((unsigned) (RTAX_RTO_MIN)) + #define XLAT_STR_13 STRINGIFY(RTAX_RTO_MIN) + [RTAX_INITRWND] = XLAT(RTAX_INITRWND), + #define XLAT_VAL_14 ((unsigned) (RTAX_INITRWND)) + #define XLAT_STR_14 STRINGIFY(RTAX_INITRWND) + [RTAX_QUICKACK] = XLAT(RTAX_QUICKACK), + #define XLAT_VAL_15 ((unsigned) (RTAX_QUICKACK)) + #define XLAT_STR_15 STRINGIFY(RTAX_QUICKACK) + [RTAX_CC_ALGO] = XLAT(RTAX_CC_ALGO), + #define XLAT_VAL_16 ((unsigned) (RTAX_CC_ALGO)) + #define XLAT_STR_16 STRINGIFY(RTAX_CC_ALGO) }; +static +const struct xlat rtnl_rta_metrics_attrs[1] = { { + .data = rtnl_rta_metrics_attrs_xdata, + .size = ARRAY_SIZE(rtnl_rta_metrics_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_rta_metrics_attrs.in b/xlat/rtnl_rta_metrics_attrs.in index 2a683332..17d7a9a1 100644 --- a/xlat/rtnl_rta_metrics_attrs.in +++ b/xlat/rtnl_rta_metrics_attrs.in @@ -1,3 +1,4 @@ +#value_indexed RTAX_UNSPEC 0 RTAX_LOCK 1 RTAX_MTU 2 diff --git a/xlat/rtnl_rule_attrs.h b/xlat/rtnl_rule_attrs.h index 683bbee2..fc622d62 100644 --- a/xlat/rtnl_rule_attrs.h +++ b/xlat/rtnl_rule_attrs.h @@ -187,36 +187,294 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_rule_attrs[] = { - XLAT(FRA_UNSPEC), - XLAT(FRA_DST), - XLAT(FRA_SRC), - XLAT(FRA_IIFNAME), - XLAT(FRA_GOTO), - XLAT(FRA_UNUSED2), - XLAT(FRA_PRIORITY), - XLAT(FRA_UNUSED3), - XLAT(FRA_UNUSED4), - XLAT(FRA_UNUSED5), - XLAT(FRA_FWMARK), - XLAT(FRA_FLOW), - XLAT(FRA_TUN_ID), - XLAT(FRA_SUPPRESS_IFGROUP), - XLAT(FRA_SUPPRESS_PREFIXLEN), - XLAT(FRA_TABLE), - XLAT(FRA_FWMASK), - XLAT(FRA_OIFNAME), - XLAT(FRA_PAD), - XLAT(FRA_L3MDEV), - XLAT(FRA_UID_RANGE), - XLAT(FRA_PROTOCOL), - XLAT(FRA_IP_PROTO), - XLAT(FRA_SPORT_RANGE), - XLAT(FRA_DPORT_RANGE), - XLAT_END +static const struct xlat_data rtnl_rule_attrs_xdata[] = { + [FRA_UNSPEC] = XLAT(FRA_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (FRA_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(FRA_UNSPEC) + [FRA_DST] = XLAT(FRA_DST), + #define XLAT_VAL_1 ((unsigned) (FRA_DST)) + #define XLAT_STR_1 STRINGIFY(FRA_DST) + [FRA_SRC] = XLAT(FRA_SRC), + #define XLAT_VAL_2 ((unsigned) (FRA_SRC)) + #define XLAT_STR_2 STRINGIFY(FRA_SRC) + [FRA_IIFNAME] = XLAT(FRA_IIFNAME), + #define XLAT_VAL_3 ((unsigned) (FRA_IIFNAME)) + #define XLAT_STR_3 STRINGIFY(FRA_IIFNAME) + [FRA_GOTO] = XLAT(FRA_GOTO), + #define XLAT_VAL_4 ((unsigned) (FRA_GOTO)) + #define XLAT_STR_4 STRINGIFY(FRA_GOTO) + [FRA_UNUSED2] = XLAT(FRA_UNUSED2), + #define XLAT_VAL_5 ((unsigned) (FRA_UNUSED2)) + #define XLAT_STR_5 STRINGIFY(FRA_UNUSED2) + [FRA_PRIORITY] = XLAT(FRA_PRIORITY), + #define XLAT_VAL_6 ((unsigned) (FRA_PRIORITY)) + #define XLAT_STR_6 STRINGIFY(FRA_PRIORITY) + [FRA_UNUSED3] = XLAT(FRA_UNUSED3), + #define XLAT_VAL_7 ((unsigned) (FRA_UNUSED3)) + #define XLAT_STR_7 STRINGIFY(FRA_UNUSED3) + [FRA_UNUSED4] = XLAT(FRA_UNUSED4), + #define XLAT_VAL_8 ((unsigned) (FRA_UNUSED4)) + #define XLAT_STR_8 STRINGIFY(FRA_UNUSED4) + [FRA_UNUSED5] = XLAT(FRA_UNUSED5), + #define XLAT_VAL_9 ((unsigned) (FRA_UNUSED5)) + #define XLAT_STR_9 STRINGIFY(FRA_UNUSED5) + [FRA_FWMARK] = XLAT(FRA_FWMARK), + #define XLAT_VAL_10 ((unsigned) (FRA_FWMARK)) + #define XLAT_STR_10 STRINGIFY(FRA_FWMARK) + [FRA_FLOW] = XLAT(FRA_FLOW), + #define XLAT_VAL_11 ((unsigned) (FRA_FLOW)) + #define XLAT_STR_11 STRINGIFY(FRA_FLOW) + [FRA_TUN_ID] = XLAT(FRA_TUN_ID), + #define XLAT_VAL_12 ((unsigned) (FRA_TUN_ID)) + #define XLAT_STR_12 STRINGIFY(FRA_TUN_ID) + [FRA_SUPPRESS_IFGROUP] = XLAT(FRA_SUPPRESS_IFGROUP), + #define XLAT_VAL_13 ((unsigned) (FRA_SUPPRESS_IFGROUP)) + #define XLAT_STR_13 STRINGIFY(FRA_SUPPRESS_IFGROUP) + [FRA_SUPPRESS_PREFIXLEN] = XLAT(FRA_SUPPRESS_PREFIXLEN), + #define XLAT_VAL_14 ((unsigned) (FRA_SUPPRESS_PREFIXLEN)) + #define XLAT_STR_14 STRINGIFY(FRA_SUPPRESS_PREFIXLEN) + [FRA_TABLE] = XLAT(FRA_TABLE), + #define XLAT_VAL_15 ((unsigned) (FRA_TABLE)) + #define XLAT_STR_15 STRINGIFY(FRA_TABLE) + [FRA_FWMASK] = XLAT(FRA_FWMASK), + #define XLAT_VAL_16 ((unsigned) (FRA_FWMASK)) + #define XLAT_STR_16 STRINGIFY(FRA_FWMASK) + [FRA_OIFNAME] = XLAT(FRA_OIFNAME), + #define XLAT_VAL_17 ((unsigned) (FRA_OIFNAME)) + #define XLAT_STR_17 STRINGIFY(FRA_OIFNAME) + [FRA_PAD] = XLAT(FRA_PAD), + #define XLAT_VAL_18 ((unsigned) (FRA_PAD)) + #define XLAT_STR_18 STRINGIFY(FRA_PAD) + [FRA_L3MDEV] = XLAT(FRA_L3MDEV), + #define XLAT_VAL_19 ((unsigned) (FRA_L3MDEV)) + #define XLAT_STR_19 STRINGIFY(FRA_L3MDEV) + [FRA_UID_RANGE] = XLAT(FRA_UID_RANGE), + #define XLAT_VAL_20 ((unsigned) (FRA_UID_RANGE)) + #define XLAT_STR_20 STRINGIFY(FRA_UID_RANGE) + [FRA_PROTOCOL] = XLAT(FRA_PROTOCOL), + #define XLAT_VAL_21 ((unsigned) (FRA_PROTOCOL)) + #define XLAT_STR_21 STRINGIFY(FRA_PROTOCOL) + [FRA_IP_PROTO] = XLAT(FRA_IP_PROTO), + #define XLAT_VAL_22 ((unsigned) (FRA_IP_PROTO)) + #define XLAT_STR_22 STRINGIFY(FRA_IP_PROTO) + [FRA_SPORT_RANGE] = XLAT(FRA_SPORT_RANGE), + #define XLAT_VAL_23 ((unsigned) (FRA_SPORT_RANGE)) + #define XLAT_STR_23 STRINGIFY(FRA_SPORT_RANGE) + [FRA_DPORT_RANGE] = XLAT(FRA_DPORT_RANGE), + #define XLAT_VAL_24 ((unsigned) (FRA_DPORT_RANGE)) + #define XLAT_STR_24 STRINGIFY(FRA_DPORT_RANGE) }; +static +const struct xlat rtnl_rule_attrs[1] = { { + .data = rtnl_rule_attrs_xdata, + .size = ARRAY_SIZE(rtnl_rule_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_rule_attrs.in b/xlat/rtnl_rule_attrs.in index 96ab4427..4552f2a2 100644 --- a/xlat/rtnl_rule_attrs.in +++ b/xlat/rtnl_rule_attrs.in @@ -1,3 +1,4 @@ +#value_indexed FRA_UNSPEC 0 FRA_DST 1 FRA_SRC 2 diff --git a/xlat/rtnl_tc_action_attrs.h b/xlat/rtnl_tc_action_attrs.h index 03990c5f..f47e6a1d 100644 --- a/xlat/rtnl_tc_action_attrs.h +++ b/xlat/rtnl_tc_action_attrs.h @@ -52,6 +52,27 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define TCA_ACT_COOKIE 6 #endif +#if defined(TCA_ACT_FLAGS) || (defined(HAVE_DECL_TCA_ACT_FLAGS) && HAVE_DECL_TCA_ACT_FLAGS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((TCA_ACT_FLAGS) == (7), "TCA_ACT_FLAGS != 7"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define TCA_ACT_FLAGS 7 +#endif +#if defined(TCA_ACT_HW_STATS) || (defined(HAVE_DECL_TCA_ACT_HW_STATS) && HAVE_DECL_TCA_ACT_HW_STATS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((TCA_ACT_HW_STATS) == (8), "TCA_ACT_HW_STATS != 8"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define TCA_ACT_HW_STATS 8 +#endif +#if defined(TCA_ACT_USED_HW_STATS) || (defined(HAVE_DECL_TCA_ACT_USED_HW_STATS) && HAVE_DECL_TCA_ACT_USED_HW_STATS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((TCA_ACT_USED_HW_STATS) == (9), "TCA_ACT_USED_HW_STATS != 9"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define TCA_ACT_USED_HW_STATS 9 +#endif #ifndef XLAT_MACROS_ONLY @@ -61,18 +82,129 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_tc_action_attrs[] = { - XLAT(TCA_ACT_UNSPEC), - XLAT(TCA_ACT_KIND), - XLAT(TCA_ACT_OPTIONS), - XLAT(TCA_ACT_INDEX), - XLAT(TCA_ACT_STATS), - XLAT(TCA_ACT_PAD), - XLAT(TCA_ACT_COOKIE), - XLAT_END +static const struct xlat_data rtnl_tc_action_attrs_xdata[] = { + [TCA_ACT_UNSPEC] = XLAT(TCA_ACT_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (TCA_ACT_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(TCA_ACT_UNSPEC) + [TCA_ACT_KIND] = XLAT(TCA_ACT_KIND), + #define XLAT_VAL_1 ((unsigned) (TCA_ACT_KIND)) + #define XLAT_STR_1 STRINGIFY(TCA_ACT_KIND) + [TCA_ACT_OPTIONS] = XLAT(TCA_ACT_OPTIONS), + #define XLAT_VAL_2 ((unsigned) (TCA_ACT_OPTIONS)) + #define XLAT_STR_2 STRINGIFY(TCA_ACT_OPTIONS) + [TCA_ACT_INDEX] = XLAT(TCA_ACT_INDEX), + #define XLAT_VAL_3 ((unsigned) (TCA_ACT_INDEX)) + #define XLAT_STR_3 STRINGIFY(TCA_ACT_INDEX) + [TCA_ACT_STATS] = XLAT(TCA_ACT_STATS), + #define XLAT_VAL_4 ((unsigned) (TCA_ACT_STATS)) + #define XLAT_STR_4 STRINGIFY(TCA_ACT_STATS) + [TCA_ACT_PAD] = XLAT(TCA_ACT_PAD), + #define XLAT_VAL_5 ((unsigned) (TCA_ACT_PAD)) + #define XLAT_STR_5 STRINGIFY(TCA_ACT_PAD) + [TCA_ACT_COOKIE] = XLAT(TCA_ACT_COOKIE), + #define XLAT_VAL_6 ((unsigned) (TCA_ACT_COOKIE)) + #define XLAT_STR_6 STRINGIFY(TCA_ACT_COOKIE) + [TCA_ACT_FLAGS] = XLAT(TCA_ACT_FLAGS), + #define XLAT_VAL_7 ((unsigned) (TCA_ACT_FLAGS)) + #define XLAT_STR_7 STRINGIFY(TCA_ACT_FLAGS) + [TCA_ACT_HW_STATS] = XLAT(TCA_ACT_HW_STATS), + #define XLAT_VAL_8 ((unsigned) (TCA_ACT_HW_STATS)) + #define XLAT_STR_8 STRINGIFY(TCA_ACT_HW_STATS) + [TCA_ACT_USED_HW_STATS] = XLAT(TCA_ACT_USED_HW_STATS), + #define XLAT_VAL_9 ((unsigned) (TCA_ACT_USED_HW_STATS)) + #define XLAT_STR_9 STRINGIFY(TCA_ACT_USED_HW_STATS) }; +static +const struct xlat rtnl_tc_action_attrs[1] = { { + .data = rtnl_tc_action_attrs_xdata, + .size = ARRAY_SIZE(rtnl_tc_action_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_tc_action_attrs.in b/xlat/rtnl_tc_action_attrs.in index ebb3dd47..dcf9f407 100644 --- a/xlat/rtnl_tc_action_attrs.in +++ b/xlat/rtnl_tc_action_attrs.in @@ -1,3 +1,6 @@ +#value_indexed +#enum +#include TCA_ACT_UNSPEC 0 TCA_ACT_KIND 1 TCA_ACT_OPTIONS 2 @@ -5,3 +8,6 @@ TCA_ACT_INDEX 3 TCA_ACT_STATS 4 TCA_ACT_PAD 5 TCA_ACT_COOKIE 6 +TCA_ACT_FLAGS 7 +TCA_ACT_HW_STATS 8 +TCA_ACT_USED_HW_STATS 9 diff --git a/xlat/rtnl_tc_action_attrs.m4 b/xlat/rtnl_tc_action_attrs.m4 new file mode 100644 index 00000000..57d2928c --- /dev/null +++ b/xlat/rtnl_tc_action_attrs.m4 @@ -0,0 +1,16 @@ +dnl Generated by ./xlat/gen.sh from ./xlat/rtnl_tc_action_attrs.in; do not edit. +AC_DEFUN([st_CHECK_ENUMS_rtnl_tc_action_attrs],[ +AC_CHECK_DECLS(m4_normalize([ +TCA_ACT_UNSPEC, +TCA_ACT_KIND, +TCA_ACT_OPTIONS, +TCA_ACT_INDEX, +TCA_ACT_STATS, +TCA_ACT_PAD, +TCA_ACT_COOKIE, +TCA_ACT_FLAGS, +TCA_ACT_HW_STATS, +TCA_ACT_USED_HW_STATS +]),,, [ +#include +])])]) diff --git a/xlat/rtnl_tc_attrs.h b/xlat/rtnl_tc_attrs.h index fc0dedca..94973e5a 100644 --- a/xlat/rtnl_tc_attrs.h +++ b/xlat/rtnl_tc_attrs.h @@ -108,6 +108,13 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define TCA_EGRESS_BLOCK 14 #endif +#if defined(TCA_DUMP_FLAGS) || (defined(HAVE_DECL_TCA_DUMP_FLAGS) && HAVE_DECL_TCA_DUMP_FLAGS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((TCA_DUMP_FLAGS) == (15), "TCA_DUMP_FLAGS != 15"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define TCA_DUMP_FLAGS 15 +#endif #ifndef XLAT_MACROS_ONLY @@ -117,26 +124,195 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_tc_attrs[] = { - XLAT(TCA_UNSPEC), - XLAT(TCA_KIND), - XLAT(TCA_OPTIONS), - XLAT(TCA_STATS), - XLAT(TCA_XSTATS), - XLAT(TCA_RATE), - XLAT(TCA_FCNT), - XLAT(TCA_STATS2), - XLAT(TCA_STAB), - XLAT(TCA_PAD), - XLAT(TCA_DUMP_INVISIBLE), - XLAT(TCA_CHAIN), - XLAT(TCA_HW_OFFLOAD), - XLAT(TCA_INGRESS_BLOCK), - XLAT(TCA_EGRESS_BLOCK), - XLAT_END +static const struct xlat_data rtnl_tc_attrs_xdata[] = { + [TCA_UNSPEC] = XLAT(TCA_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (TCA_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(TCA_UNSPEC) + [TCA_KIND] = XLAT(TCA_KIND), + #define XLAT_VAL_1 ((unsigned) (TCA_KIND)) + #define XLAT_STR_1 STRINGIFY(TCA_KIND) + [TCA_OPTIONS] = XLAT(TCA_OPTIONS), + #define XLAT_VAL_2 ((unsigned) (TCA_OPTIONS)) + #define XLAT_STR_2 STRINGIFY(TCA_OPTIONS) + [TCA_STATS] = XLAT(TCA_STATS), + #define XLAT_VAL_3 ((unsigned) (TCA_STATS)) + #define XLAT_STR_3 STRINGIFY(TCA_STATS) + [TCA_XSTATS] = XLAT(TCA_XSTATS), + #define XLAT_VAL_4 ((unsigned) (TCA_XSTATS)) + #define XLAT_STR_4 STRINGIFY(TCA_XSTATS) + [TCA_RATE] = XLAT(TCA_RATE), + #define XLAT_VAL_5 ((unsigned) (TCA_RATE)) + #define XLAT_STR_5 STRINGIFY(TCA_RATE) + [TCA_FCNT] = XLAT(TCA_FCNT), + #define XLAT_VAL_6 ((unsigned) (TCA_FCNT)) + #define XLAT_STR_6 STRINGIFY(TCA_FCNT) + [TCA_STATS2] = XLAT(TCA_STATS2), + #define XLAT_VAL_7 ((unsigned) (TCA_STATS2)) + #define XLAT_STR_7 STRINGIFY(TCA_STATS2) + [TCA_STAB] = XLAT(TCA_STAB), + #define XLAT_VAL_8 ((unsigned) (TCA_STAB)) + #define XLAT_STR_8 STRINGIFY(TCA_STAB) + [TCA_PAD] = XLAT(TCA_PAD), + #define XLAT_VAL_9 ((unsigned) (TCA_PAD)) + #define XLAT_STR_9 STRINGIFY(TCA_PAD) + [TCA_DUMP_INVISIBLE] = XLAT(TCA_DUMP_INVISIBLE), + #define XLAT_VAL_10 ((unsigned) (TCA_DUMP_INVISIBLE)) + #define XLAT_STR_10 STRINGIFY(TCA_DUMP_INVISIBLE) + [TCA_CHAIN] = XLAT(TCA_CHAIN), + #define XLAT_VAL_11 ((unsigned) (TCA_CHAIN)) + #define XLAT_STR_11 STRINGIFY(TCA_CHAIN) + [TCA_HW_OFFLOAD] = XLAT(TCA_HW_OFFLOAD), + #define XLAT_VAL_12 ((unsigned) (TCA_HW_OFFLOAD)) + #define XLAT_STR_12 STRINGIFY(TCA_HW_OFFLOAD) + [TCA_INGRESS_BLOCK] = XLAT(TCA_INGRESS_BLOCK), + #define XLAT_VAL_13 ((unsigned) (TCA_INGRESS_BLOCK)) + #define XLAT_STR_13 STRINGIFY(TCA_INGRESS_BLOCK) + [TCA_EGRESS_BLOCK] = XLAT(TCA_EGRESS_BLOCK), + #define XLAT_VAL_14 ((unsigned) (TCA_EGRESS_BLOCK)) + #define XLAT_STR_14 STRINGIFY(TCA_EGRESS_BLOCK) + [TCA_DUMP_FLAGS] = XLAT(TCA_DUMP_FLAGS), + #define XLAT_VAL_15 ((unsigned) (TCA_DUMP_FLAGS)) + #define XLAT_STR_15 STRINGIFY(TCA_DUMP_FLAGS) }; +static +const struct xlat rtnl_tc_attrs[1] = { { + .data = rtnl_tc_attrs_xdata, + .size = ARRAY_SIZE(rtnl_tc_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_tc_attrs.in b/xlat/rtnl_tc_attrs.in index b3cdcf4e..d822920c 100644 --- a/xlat/rtnl_tc_attrs.in +++ b/xlat/rtnl_tc_attrs.in @@ -1,3 +1,4 @@ +#value_indexed TCA_UNSPEC 0 TCA_KIND 1 TCA_OPTIONS 2 @@ -13,3 +14,4 @@ TCA_CHAIN 11 TCA_HW_OFFLOAD 12 TCA_INGRESS_BLOCK 13 TCA_EGRESS_BLOCK 14 +TCA_DUMP_FLAGS 15 diff --git a/xlat/rtnl_tca_act_flags.h b/xlat/rtnl_tca_act_flags.h new file mode 100644 index 00000000..f945f744 --- /dev/null +++ b/xlat/rtnl_tca_act_flags.h @@ -0,0 +1,48 @@ +/* Generated by ./xlat/gen.sh from ./xlat/rtnl_tca_act_flags.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined(TCA_ACT_FLAGS_NO_PERCPU_STATS) || (defined(HAVE_DECL_TCA_ACT_FLAGS_NO_PERCPU_STATS) && HAVE_DECL_TCA_ACT_FLAGS_NO_PERCPU_STATS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((TCA_ACT_FLAGS_NO_PERCPU_STATS) == (1), "TCA_ACT_FLAGS_NO_PERCPU_STATS != 1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define TCA_ACT_FLAGS_NO_PERCPU_STATS 1 +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat rtnl_tca_act_flags in mpers mode + +# else + +static const struct xlat_data rtnl_tca_act_flags_xdata[] = { + XLAT(TCA_ACT_FLAGS_NO_PERCPU_STATS), + #define XLAT_VAL_0 ((unsigned) (TCA_ACT_FLAGS_NO_PERCPU_STATS)) + #define XLAT_STR_0 STRINGIFY(TCA_ACT_FLAGS_NO_PERCPU_STATS) +}; +static +const struct xlat rtnl_tca_act_flags[1] = { { + .data = rtnl_tca_act_flags_xdata, + .size = ARRAY_SIZE(rtnl_tca_act_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_tca_act_flags.in b/xlat/rtnl_tca_act_flags.in new file mode 100644 index 00000000..2541b64c --- /dev/null +++ b/xlat/rtnl_tca_act_flags.in @@ -0,0 +1 @@ +TCA_ACT_FLAGS_NO_PERCPU_STATS 1 diff --git a/xlat/rtnl_tca_act_hw_stats.h b/xlat/rtnl_tca_act_hw_stats.h new file mode 100644 index 00000000..3553394f --- /dev/null +++ b/xlat/rtnl_tca_act_hw_stats.h @@ -0,0 +1,66 @@ +/* Generated by ./xlat/gen.sh from ./xlat/rtnl_tca_act_hw_stats.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined(TCA_ACT_HW_STATS_IMMEDIATE) || (defined(HAVE_DECL_TCA_ACT_HW_STATS_IMMEDIATE) && HAVE_DECL_TCA_ACT_HW_STATS_IMMEDIATE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((TCA_ACT_HW_STATS_IMMEDIATE) == ((1<<0)), "TCA_ACT_HW_STATS_IMMEDIATE != (1<<0)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define TCA_ACT_HW_STATS_IMMEDIATE (1<<0) +#endif +#if defined(TCA_ACT_HW_STATS_DELAYED) || (defined(HAVE_DECL_TCA_ACT_HW_STATS_DELAYED) && HAVE_DECL_TCA_ACT_HW_STATS_DELAYED) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((TCA_ACT_HW_STATS_DELAYED) == ((1<<1)), "TCA_ACT_HW_STATS_DELAYED != (1<<1)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define TCA_ACT_HW_STATS_DELAYED (1<<1) +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat rtnl_tca_act_hw_stats in mpers mode + +# else + +static const struct xlat_data rtnl_tca_act_hw_stats_xdata[] = { + XLAT(TCA_ACT_HW_STATS_IMMEDIATE), + #define XLAT_VAL_0 ((unsigned) (TCA_ACT_HW_STATS_IMMEDIATE)) + #define XLAT_STR_0 STRINGIFY(TCA_ACT_HW_STATS_IMMEDIATE) + XLAT(TCA_ACT_HW_STATS_DELAYED), + #define XLAT_VAL_1 ((unsigned) (TCA_ACT_HW_STATS_DELAYED)) + #define XLAT_STR_1 STRINGIFY(TCA_ACT_HW_STATS_DELAYED) +}; +static +const struct xlat rtnl_tca_act_hw_stats[1] = { { + .data = rtnl_tca_act_hw_stats_xdata, + .size = ARRAY_SIZE(rtnl_tca_act_hw_stats_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_tca_act_hw_stats.in b/xlat/rtnl_tca_act_hw_stats.in new file mode 100644 index 00000000..46eff98d --- /dev/null +++ b/xlat/rtnl_tca_act_hw_stats.in @@ -0,0 +1,2 @@ +TCA_ACT_HW_STATS_IMMEDIATE (1<<0) +TCA_ACT_HW_STATS_DELAYED (1<<1) diff --git a/xlat/rtnl_tca_stab_attrs.h b/xlat/rtnl_tca_stab_attrs.h index ca2f1678..8de61871 100644 --- a/xlat/rtnl_tca_stab_attrs.h +++ b/xlat/rtnl_tca_stab_attrs.h @@ -33,14 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_tca_stab_attrs[] = { - XLAT(TCA_STAB_UNSPEC), - XLAT(TCA_STAB_BASE), - XLAT(TCA_STAB_DATA), - XLAT_END +static const struct xlat_data rtnl_tca_stab_attrs_xdata[] = { + [TCA_STAB_UNSPEC] = XLAT(TCA_STAB_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (TCA_STAB_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(TCA_STAB_UNSPEC) + [TCA_STAB_BASE] = XLAT(TCA_STAB_BASE), + #define XLAT_VAL_1 ((unsigned) (TCA_STAB_BASE)) + #define XLAT_STR_1 STRINGIFY(TCA_STAB_BASE) + [TCA_STAB_DATA] = XLAT(TCA_STAB_DATA), + #define XLAT_VAL_2 ((unsigned) (TCA_STAB_DATA)) + #define XLAT_STR_2 STRINGIFY(TCA_STAB_DATA) }; +static +const struct xlat rtnl_tca_stab_attrs[1] = { { + .data = rtnl_tca_stab_attrs_xdata, + .size = ARRAY_SIZE(rtnl_tca_stab_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_tca_stab_attrs.in b/xlat/rtnl_tca_stab_attrs.in index dd3d6efc..1c83326f 100644 --- a/xlat/rtnl_tca_stab_attrs.in +++ b/xlat/rtnl_tca_stab_attrs.in @@ -1,3 +1,7 @@ +#value_indexed +#enum +#include +#include TCA_STAB_UNSPEC 0 TCA_STAB_BASE 1 TCA_STAB_DATA 2 diff --git a/xlat/rtnl_tca_stab_attrs.m4 b/xlat/rtnl_tca_stab_attrs.m4 new file mode 100644 index 00000000..4b8a3075 --- /dev/null +++ b/xlat/rtnl_tca_stab_attrs.m4 @@ -0,0 +1,10 @@ +dnl Generated by ./xlat/gen.sh from ./xlat/rtnl_tca_stab_attrs.in; do not edit. +AC_DEFUN([st_CHECK_ENUMS_rtnl_tca_stab_attrs],[ +AC_CHECK_DECLS(m4_normalize([ +TCA_STAB_UNSPEC, +TCA_STAB_BASE, +TCA_STAB_DATA +]),,, [ +#include +#include +])])]) diff --git a/xlat/rtnl_tca_stats_attrs.h b/xlat/rtnl_tca_stats_attrs.h index 501aa409..a6cefdcc 100644 --- a/xlat/rtnl_tca_stats_attrs.h +++ b/xlat/rtnl_tca_stats_attrs.h @@ -59,6 +59,13 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define TCA_STATS_BASIC_HW 7 #endif +#if defined(TCA_STATS_PKT64) || (defined(HAVE_DECL_TCA_STATS_PKT64) && HAVE_DECL_TCA_STATS_PKT64) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((TCA_STATS_PKT64) == (8), "TCA_STATS_PKT64 != 8"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define TCA_STATS_PKT64 8 +#endif #ifndef XLAT_MACROS_ONLY @@ -68,19 +75,118 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat rtnl_tca_stats_attrs[] = { - XLAT(TCA_STATS_UNSPEC), - XLAT(TCA_STATS_BASIC), - XLAT(TCA_STATS_RATE_EST), - XLAT(TCA_STATS_QUEUE), - XLAT(TCA_STATS_APP), - XLAT(TCA_STATS_RATE_EST64), - XLAT(TCA_STATS_PAD), - XLAT(TCA_STATS_BASIC_HW), - XLAT_END +static const struct xlat_data rtnl_tca_stats_attrs_xdata[] = { + [TCA_STATS_UNSPEC] = XLAT(TCA_STATS_UNSPEC), + #define XLAT_VAL_0 ((unsigned) (TCA_STATS_UNSPEC)) + #define XLAT_STR_0 STRINGIFY(TCA_STATS_UNSPEC) + [TCA_STATS_BASIC] = XLAT(TCA_STATS_BASIC), + #define XLAT_VAL_1 ((unsigned) (TCA_STATS_BASIC)) + #define XLAT_STR_1 STRINGIFY(TCA_STATS_BASIC) + [TCA_STATS_RATE_EST] = XLAT(TCA_STATS_RATE_EST), + #define XLAT_VAL_2 ((unsigned) (TCA_STATS_RATE_EST)) + #define XLAT_STR_2 STRINGIFY(TCA_STATS_RATE_EST) + [TCA_STATS_QUEUE] = XLAT(TCA_STATS_QUEUE), + #define XLAT_VAL_3 ((unsigned) (TCA_STATS_QUEUE)) + #define XLAT_STR_3 STRINGIFY(TCA_STATS_QUEUE) + [TCA_STATS_APP] = XLAT(TCA_STATS_APP), + #define XLAT_VAL_4 ((unsigned) (TCA_STATS_APP)) + #define XLAT_STR_4 STRINGIFY(TCA_STATS_APP) + [TCA_STATS_RATE_EST64] = XLAT(TCA_STATS_RATE_EST64), + #define XLAT_VAL_5 ((unsigned) (TCA_STATS_RATE_EST64)) + #define XLAT_STR_5 STRINGIFY(TCA_STATS_RATE_EST64) + [TCA_STATS_PAD] = XLAT(TCA_STATS_PAD), + #define XLAT_VAL_6 ((unsigned) (TCA_STATS_PAD)) + #define XLAT_STR_6 STRINGIFY(TCA_STATS_PAD) + [TCA_STATS_BASIC_HW] = XLAT(TCA_STATS_BASIC_HW), + #define XLAT_VAL_7 ((unsigned) (TCA_STATS_BASIC_HW)) + #define XLAT_STR_7 STRINGIFY(TCA_STATS_BASIC_HW) + [TCA_STATS_PKT64] = XLAT(TCA_STATS_PKT64), + #define XLAT_VAL_8 ((unsigned) (TCA_STATS_PKT64)) + #define XLAT_STR_8 STRINGIFY(TCA_STATS_PKT64) }; +static +const struct xlat rtnl_tca_stats_attrs[1] = { { + .data = rtnl_tca_stats_attrs_xdata, + .size = ARRAY_SIZE(rtnl_tca_stats_attrs_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/rtnl_tca_stats_attrs.in b/xlat/rtnl_tca_stats_attrs.in index 82b8a337..ad19d313 100644 --- a/xlat/rtnl_tca_stats_attrs.in +++ b/xlat/rtnl_tca_stats_attrs.in @@ -1,3 +1,6 @@ +#value_indexed +#enum +#include TCA_STATS_UNSPEC 0 TCA_STATS_BASIC 1 TCA_STATS_RATE_EST 2 @@ -6,3 +9,4 @@ TCA_STATS_APP 4 TCA_STATS_RATE_EST64 5 TCA_STATS_PAD 6 TCA_STATS_BASIC_HW 7 +TCA_STATS_PKT64 8 diff --git a/xlat/rtnl_tca_stats_attrs.m4 b/xlat/rtnl_tca_stats_attrs.m4 new file mode 100644 index 00000000..6f793e61 --- /dev/null +++ b/xlat/rtnl_tca_stats_attrs.m4 @@ -0,0 +1,15 @@ +dnl Generated by ./xlat/gen.sh from ./xlat/rtnl_tca_stats_attrs.in; do not edit. +AC_DEFUN([st_CHECK_ENUMS_rtnl_tca_stats_attrs],[ +AC_CHECK_DECLS(m4_normalize([ +TCA_STATS_UNSPEC, +TCA_STATS_BASIC, +TCA_STATS_RATE_EST, +TCA_STATS_QUEUE, +TCA_STATS_APP, +TCA_STATS_RATE_EST64, +TCA_STATS_PAD, +TCA_STATS_BASIC_HW, +TCA_STATS_PKT64 +]),,, [ +#include +])])]) diff --git a/xlat/rwf_flags.h b/xlat/rwf_flags.h index 9b410e8f..7b883d25 100644 --- a/xlat/rwf_flags.h +++ b/xlat/rwf_flags.h @@ -41,22 +41,75 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #ifndef XLAT_MACROS_ONLY -# ifdef IN_MPERS +# ifndef IN_MPERS -# error static const struct xlat rwf_flags in mpers mode - -# else - -static -const struct xlat rwf_flags[] = { +static const struct xlat_data rwf_flags_xdata[] = { XLAT(RWF_HIPRI), + #define XLAT_VAL_0 ((unsigned) (RWF_HIPRI)) + #define XLAT_STR_0 STRINGIFY(RWF_HIPRI) XLAT(RWF_DSYNC), + #define XLAT_VAL_1 ((unsigned) (RWF_DSYNC)) + #define XLAT_STR_1 STRINGIFY(RWF_DSYNC) XLAT(RWF_SYNC), + #define XLAT_VAL_2 ((unsigned) (RWF_SYNC)) + #define XLAT_STR_2 STRINGIFY(RWF_SYNC) XLAT(RWF_NOWAIT), + #define XLAT_VAL_3 ((unsigned) (RWF_NOWAIT)) + #define XLAT_STR_3 STRINGIFY(RWF_NOWAIT) XLAT(RWF_APPEND), - XLAT_END + #define XLAT_VAL_4 ((unsigned) (RWF_APPEND)) + #define XLAT_STR_4 STRINGIFY(RWF_APPEND) }; +const struct xlat rwf_flags[1] = { { + .data = rwf_flags_xdata, + .size = ARRAY_SIZE(rwf_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/s390_guarded_storage_commands.h b/xlat/s390_guarded_storage_commands.h index 9899819d..66e21311 100644 --- a/xlat/s390_guarded_storage_commands.h +++ b/xlat/s390_guarded_storage_commands.h @@ -47,16 +47,74 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat s390_guarded_storage_commands[] = { - XLAT(GS_ENABLE), - XLAT(GS_DISABLE), - XLAT(GS_SET_BC_CB), - XLAT(GS_CLEAR_BC_CB), - XLAT(GS_BROADCAST), - XLAT_END +static const struct xlat_data s390_guarded_storage_commands_xdata[] = { + [GS_ENABLE] = XLAT(GS_ENABLE), + #define XLAT_VAL_0 ((unsigned) (GS_ENABLE)) + #define XLAT_STR_0 STRINGIFY(GS_ENABLE) + [GS_DISABLE] = XLAT(GS_DISABLE), + #define XLAT_VAL_1 ((unsigned) (GS_DISABLE)) + #define XLAT_STR_1 STRINGIFY(GS_DISABLE) + [GS_SET_BC_CB] = XLAT(GS_SET_BC_CB), + #define XLAT_VAL_2 ((unsigned) (GS_SET_BC_CB)) + #define XLAT_STR_2 STRINGIFY(GS_SET_BC_CB) + [GS_CLEAR_BC_CB] = XLAT(GS_CLEAR_BC_CB), + #define XLAT_VAL_3 ((unsigned) (GS_CLEAR_BC_CB)) + #define XLAT_STR_3 STRINGIFY(GS_CLEAR_BC_CB) + [GS_BROADCAST] = XLAT(GS_BROADCAST), + #define XLAT_VAL_4 ((unsigned) (GS_BROADCAST)) + #define XLAT_STR_4 STRINGIFY(GS_BROADCAST) }; +static +const struct xlat s390_guarded_storage_commands[1] = { { + .data = s390_guarded_storage_commands_xdata, + .size = ARRAY_SIZE(s390_guarded_storage_commands_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/s390_guarded_storage_commands.in b/xlat/s390_guarded_storage_commands.in index 410e33e7..e9a82dde 100644 --- a/xlat/s390_guarded_storage_commands.in +++ b/xlat/s390_guarded_storage_commands.in @@ -1,3 +1,4 @@ +#value_indexed GS_ENABLE 0 GS_DISABLE 1 GS_SET_BC_CB 2 diff --git a/xlat/s390_runtime_instr_commands.h b/xlat/s390_runtime_instr_commands.h index a33a97f0..5855f9a2 100644 --- a/xlat/s390_runtime_instr_commands.h +++ b/xlat/s390_runtime_instr_commands.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat s390_runtime_instr_commands[] = { - XLAT(S390_RUNTIME_INSTR_START), - XLAT(S390_RUNTIME_INSTR_STOP), - XLAT_END +static const struct xlat_data s390_runtime_instr_commands_xdata[] = { + [S390_RUNTIME_INSTR_START] = XLAT(S390_RUNTIME_INSTR_START), + #define XLAT_VAL_0 ((unsigned) (S390_RUNTIME_INSTR_START)) + #define XLAT_STR_0 STRINGIFY(S390_RUNTIME_INSTR_START) + [S390_RUNTIME_INSTR_STOP] = XLAT(S390_RUNTIME_INSTR_STOP), + #define XLAT_VAL_1 ((unsigned) (S390_RUNTIME_INSTR_STOP)) + #define XLAT_STR_1 STRINGIFY(S390_RUNTIME_INSTR_STOP) }; +static +const struct xlat s390_runtime_instr_commands[1] = { { + .data = s390_runtime_instr_commands_xdata, + .size = ARRAY_SIZE(s390_runtime_instr_commands_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/s390_runtime_instr_commands.in b/xlat/s390_runtime_instr_commands.in index 395afc41..220acc4b 100644 --- a/xlat/s390_runtime_instr_commands.in +++ b/xlat/s390_runtime_instr_commands.in @@ -1,2 +1,3 @@ +#value_indexed S390_RUNTIME_INSTR_START 0x1 S390_RUNTIME_INSTR_STOP 0x2 diff --git a/xlat/s390_sthyi_function_codes.h b/xlat/s390_sthyi_function_codes.h index df04b309..7cd15f4a 100644 --- a/xlat/s390_sthyi_function_codes.h +++ b/xlat/s390_sthyi_function_codes.h @@ -19,12 +19,30 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat s390_sthyi_function_codes[] = { +static const struct xlat_data s390_sthyi_function_codes_xdata[] = { XLAT(STHYI_FC_CP_IFL_CAP), - XLAT_END + #define XLAT_VAL_0 ((unsigned) (STHYI_FC_CP_IFL_CAP)) + #define XLAT_STR_0 STRINGIFY(STHYI_FC_CP_IFL_CAP) }; - +static +const struct xlat s390_sthyi_function_codes[1] = { { + .data = s390_sthyi_function_codes_xdata, + .size = ARRAY_SIZE(s390_sthyi_function_codes_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sa_handler_values.h b/xlat/sa_handler_values.h index 796e4b75..5d8e60b2 100644 --- a/xlat/sa_handler_values.h +++ b/xlat/sa_handler_values.h @@ -12,20 +12,58 @@ # else -static -const struct xlat sa_handler_values[] = { +static const struct xlat_data sa_handler_values_xdata[] = { #if defined(SIG_ERR) || (defined(HAVE_DECL_SIG_ERR) && HAVE_DECL_SIG_ERR) XLAT_TYPE(unsigned long, SIG_ERR), + #define XLAT_VAL_0 ((unsigned long) (SIG_ERR)) + #define XLAT_STR_0 STRINGIFY(SIG_ERR) #endif #if defined(SIG_DFL) || (defined(HAVE_DECL_SIG_DFL) && HAVE_DECL_SIG_DFL) XLAT_TYPE(unsigned long, SIG_DFL), + #define XLAT_VAL_1 ((unsigned long) (SIG_DFL)) + #define XLAT_STR_1 STRINGIFY(SIG_DFL) #endif #if defined(SIG_IGN) || (defined(HAVE_DECL_SIG_IGN) && HAVE_DECL_SIG_IGN) XLAT_TYPE(unsigned long, SIG_IGN), + #define XLAT_VAL_2 ((unsigned long) (SIG_IGN)) + #define XLAT_STR_2 STRINGIFY(SIG_IGN) #endif - XLAT_END }; +static +const struct xlat sa_handler_values[1] = { { + .data = sa_handler_values_xdata, + .size = ARRAY_SIZE(sa_handler_values_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sched_flags.h b/xlat/sched_flags.h index 759994f1..55e1e730 100644 --- a/xlat/sched_flags.h +++ b/xlat/sched_flags.h @@ -5,24 +5,52 @@ #if defined(SCHED_FLAG_RESET_ON_FORK) || (defined(HAVE_DECL_SCHED_FLAG_RESET_ON_FORK) && HAVE_DECL_SCHED_FLAG_RESET_ON_FORK) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((SCHED_FLAG_RESET_ON_FORK) == (1), "SCHED_FLAG_RESET_ON_FORK != 1"); +static_assert((SCHED_FLAG_RESET_ON_FORK) == (0x01), "SCHED_FLAG_RESET_ON_FORK != 0x01"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define SCHED_FLAG_RESET_ON_FORK 1 +# define SCHED_FLAG_RESET_ON_FORK 0x01 #endif #if defined(SCHED_FLAG_RECLAIM) || (defined(HAVE_DECL_SCHED_FLAG_RECLAIM) && HAVE_DECL_SCHED_FLAG_RECLAIM) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((SCHED_FLAG_RECLAIM) == (2), "SCHED_FLAG_RECLAIM != 2"); +static_assert((SCHED_FLAG_RECLAIM) == (0x02), "SCHED_FLAG_RECLAIM != 0x02"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define SCHED_FLAG_RECLAIM 2 +# define SCHED_FLAG_RECLAIM 0x02 #endif #if defined(SCHED_FLAG_DL_OVERRUN) || (defined(HAVE_DECL_SCHED_FLAG_DL_OVERRUN) && HAVE_DECL_SCHED_FLAG_DL_OVERRUN) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((SCHED_FLAG_DL_OVERRUN) == (4), "SCHED_FLAG_DL_OVERRUN != 4"); +static_assert((SCHED_FLAG_DL_OVERRUN) == (0x04), "SCHED_FLAG_DL_OVERRUN != 0x04"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define SCHED_FLAG_DL_OVERRUN 4 +# define SCHED_FLAG_DL_OVERRUN 0x04 +#endif +#if defined(SCHED_FLAG_KEEP_POLICY) || (defined(HAVE_DECL_SCHED_FLAG_KEEP_POLICY) && HAVE_DECL_SCHED_FLAG_KEEP_POLICY) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SCHED_FLAG_KEEP_POLICY) == (0x08), "SCHED_FLAG_KEEP_POLICY != 0x08"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SCHED_FLAG_KEEP_POLICY 0x08 +#endif +#if defined(SCHED_FLAG_KEEP_PARAMS) || (defined(HAVE_DECL_SCHED_FLAG_KEEP_PARAMS) && HAVE_DECL_SCHED_FLAG_KEEP_PARAMS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SCHED_FLAG_KEEP_PARAMS) == (0x10), "SCHED_FLAG_KEEP_PARAMS != 0x10"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SCHED_FLAG_KEEP_PARAMS 0x10 +#endif +#if defined(SCHED_FLAG_UTIL_CLAMP_MIN) || (defined(HAVE_DECL_SCHED_FLAG_UTIL_CLAMP_MIN) && HAVE_DECL_SCHED_FLAG_UTIL_CLAMP_MIN) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SCHED_FLAG_UTIL_CLAMP_MIN) == (0x20), "SCHED_FLAG_UTIL_CLAMP_MIN != 0x20"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SCHED_FLAG_UTIL_CLAMP_MIN 0x20 +#endif +#if defined(SCHED_FLAG_UTIL_CLAMP_MAX) || (defined(HAVE_DECL_SCHED_FLAG_UTIL_CLAMP_MAX) && HAVE_DECL_SCHED_FLAG_UTIL_CLAMP_MAX) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SCHED_FLAG_UTIL_CLAMP_MAX) == (0x40), "SCHED_FLAG_UTIL_CLAMP_MAX != 0x40"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SCHED_FLAG_UTIL_CLAMP_MAX 0x40 #endif #ifndef XLAT_MACROS_ONLY @@ -33,14 +61,96 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat sched_flags[] = { +static const struct xlat_data sched_flags_xdata[] = { XLAT(SCHED_FLAG_RESET_ON_FORK), + #define XLAT_VAL_0 ((unsigned) (SCHED_FLAG_RESET_ON_FORK)) + #define XLAT_STR_0 STRINGIFY(SCHED_FLAG_RESET_ON_FORK) XLAT(SCHED_FLAG_RECLAIM), + #define XLAT_VAL_1 ((unsigned) (SCHED_FLAG_RECLAIM)) + #define XLAT_STR_1 STRINGIFY(SCHED_FLAG_RECLAIM) XLAT(SCHED_FLAG_DL_OVERRUN), - XLAT_END + #define XLAT_VAL_2 ((unsigned) (SCHED_FLAG_DL_OVERRUN)) + #define XLAT_STR_2 STRINGIFY(SCHED_FLAG_DL_OVERRUN) + XLAT(SCHED_FLAG_KEEP_POLICY), + #define XLAT_VAL_3 ((unsigned) (SCHED_FLAG_KEEP_POLICY)) + #define XLAT_STR_3 STRINGIFY(SCHED_FLAG_KEEP_POLICY) + XLAT(SCHED_FLAG_KEEP_PARAMS), + #define XLAT_VAL_4 ((unsigned) (SCHED_FLAG_KEEP_PARAMS)) + #define XLAT_STR_4 STRINGIFY(SCHED_FLAG_KEEP_PARAMS) + XLAT(SCHED_FLAG_UTIL_CLAMP_MIN), + #define XLAT_VAL_5 ((unsigned) (SCHED_FLAG_UTIL_CLAMP_MIN)) + #define XLAT_STR_5 STRINGIFY(SCHED_FLAG_UTIL_CLAMP_MIN) + XLAT(SCHED_FLAG_UTIL_CLAMP_MAX), + #define XLAT_VAL_6 ((unsigned) (SCHED_FLAG_UTIL_CLAMP_MAX)) + #define XLAT_STR_6 STRINGIFY(SCHED_FLAG_UTIL_CLAMP_MAX) }; +static +const struct xlat sched_flags[1] = { { + .data = sched_flags_xdata, + .size = ARRAY_SIZE(sched_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sched_flags.in b/xlat/sched_flags.in index 10c90661..62698327 100644 --- a/xlat/sched_flags.in +++ b/xlat/sched_flags.in @@ -1,3 +1,7 @@ -SCHED_FLAG_RESET_ON_FORK 1 -SCHED_FLAG_RECLAIM 2 -SCHED_FLAG_DL_OVERRUN 4 +SCHED_FLAG_RESET_ON_FORK 0x01 +SCHED_FLAG_RECLAIM 0x02 +SCHED_FLAG_DL_OVERRUN 0x04 +SCHED_FLAG_KEEP_POLICY 0x08 +SCHED_FLAG_KEEP_PARAMS 0x10 +SCHED_FLAG_UTIL_CLAMP_MIN 0x20 +SCHED_FLAG_UTIL_CLAMP_MAX 0x40 diff --git a/xlat/schedulers.h b/xlat/schedulers.h index 2ce324f9..cc193914 100644 --- a/xlat/schedulers.h +++ b/xlat/schedulers.h @@ -12,32 +12,110 @@ # else -static -const struct xlat schedulers[] = { +static const struct xlat_data schedulers_xdata[] = { #if defined(SCHED_OTHER) || (defined(HAVE_DECL_SCHED_OTHER) && HAVE_DECL_SCHED_OTHER) XLAT(SCHED_OTHER), + #define XLAT_VAL_0 ((unsigned) (SCHED_OTHER)) + #define XLAT_STR_0 STRINGIFY(SCHED_OTHER) #endif #if defined(SCHED_FIFO) || (defined(HAVE_DECL_SCHED_FIFO) && HAVE_DECL_SCHED_FIFO) XLAT(SCHED_FIFO), + #define XLAT_VAL_1 ((unsigned) (SCHED_FIFO)) + #define XLAT_STR_1 STRINGIFY(SCHED_FIFO) #endif #if defined(SCHED_RR) || (defined(HAVE_DECL_SCHED_RR) && HAVE_DECL_SCHED_RR) XLAT(SCHED_RR), + #define XLAT_VAL_2 ((unsigned) (SCHED_RR)) + #define XLAT_STR_2 STRINGIFY(SCHED_RR) #endif #if defined(SCHED_BATCH) || (defined(HAVE_DECL_SCHED_BATCH) && HAVE_DECL_SCHED_BATCH) XLAT(SCHED_BATCH), + #define XLAT_VAL_3 ((unsigned) (SCHED_BATCH)) + #define XLAT_STR_3 STRINGIFY(SCHED_BATCH) #endif #if defined(SCHED_ISO) || (defined(HAVE_DECL_SCHED_ISO) && HAVE_DECL_SCHED_ISO) XLAT(SCHED_ISO), + #define XLAT_VAL_4 ((unsigned) (SCHED_ISO)) + #define XLAT_STR_4 STRINGIFY(SCHED_ISO) #endif #if defined(SCHED_IDLE) || (defined(HAVE_DECL_SCHED_IDLE) && HAVE_DECL_SCHED_IDLE) XLAT(SCHED_IDLE), + #define XLAT_VAL_5 ((unsigned) (SCHED_IDLE)) + #define XLAT_STR_5 STRINGIFY(SCHED_IDLE) #endif #if defined(SCHED_DEADLINE) || (defined(HAVE_DECL_SCHED_DEADLINE) && HAVE_DECL_SCHED_DEADLINE) XLAT(SCHED_DEADLINE), + #define XLAT_VAL_6 ((unsigned) (SCHED_DEADLINE)) + #define XLAT_STR_6 STRINGIFY(SCHED_DEADLINE) #endif - XLAT_END }; +static +const struct xlat schedulers[1] = { { + .data = schedulers_xdata, + .size = ARRAY_SIZE(schedulers_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/scmvals.h b/xlat/scmvals.h index a02ba9a1..01ba899e 100644 --- a/xlat/scmvals.h +++ b/xlat/scmvals.h @@ -83,55 +83,233 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat scmvals[] = { +static const struct xlat_data scmvals_xdata[] = { XLAT(SCM_RIGHTS), + #define XLAT_VAL_0 ((unsigned) (SCM_RIGHTS)) + #define XLAT_STR_0 STRINGIFY(SCM_RIGHTS) XLAT(SCM_CREDENTIALS), + #define XLAT_VAL_1 ((unsigned) (SCM_CREDENTIALS)) + #define XLAT_STR_1 STRINGIFY(SCM_CREDENTIALS) XLAT(SCM_SECURITY), + #define XLAT_VAL_2 ((unsigned) (SCM_SECURITY)) + #define XLAT_STR_2 STRINGIFY(SCM_SECURITY) #if defined(SO_WIFI_STATUS) || (defined(HAVE_DECL_SO_WIFI_STATUS) && HAVE_DECL_SO_WIFI_STATUS) XLAT(SO_WIFI_STATUS), + #define XLAT_VAL_3 ((unsigned) (SO_WIFI_STATUS)) + #define XLAT_STR_3 STRINGIFY(SO_WIFI_STATUS) #endif #if defined(SO_TXTIME) || (defined(HAVE_DECL_SO_TXTIME) && HAVE_DECL_SO_TXTIME) XLAT(SO_TXTIME), + #define XLAT_VAL_4 ((unsigned) (SO_TXTIME)) + #define XLAT_STR_4 STRINGIFY(SO_TXTIME) #endif #if defined(SO_TIMESTAMP_OLD) || (defined(HAVE_DECL_SO_TIMESTAMP_OLD) && HAVE_DECL_SO_TIMESTAMP_OLD) XLAT(SO_TIMESTAMP_OLD), + #define XLAT_VAL_5 ((unsigned) (SO_TIMESTAMP_OLD)) + #define XLAT_STR_5 STRINGIFY(SO_TIMESTAMP_OLD) #endif #if defined(SO_TIMESTAMPNS_OLD) || (defined(HAVE_DECL_SO_TIMESTAMPNS_OLD) && HAVE_DECL_SO_TIMESTAMPNS_OLD) XLAT(SO_TIMESTAMPNS_OLD), + #define XLAT_VAL_6 ((unsigned) (SO_TIMESTAMPNS_OLD)) + #define XLAT_STR_6 STRINGIFY(SO_TIMESTAMPNS_OLD) #endif #if defined(SO_TIMESTAMPING_OLD) || (defined(HAVE_DECL_SO_TIMESTAMPING_OLD) && HAVE_DECL_SO_TIMESTAMPING_OLD) XLAT(SO_TIMESTAMPING_OLD), + #define XLAT_VAL_7 ((unsigned) (SO_TIMESTAMPING_OLD)) + #define XLAT_STR_7 STRINGIFY(SO_TIMESTAMPING_OLD) #endif #if defined(SO_TIMESTAMP_NEW) || (defined(HAVE_DECL_SO_TIMESTAMP_NEW) && HAVE_DECL_SO_TIMESTAMP_NEW) XLAT(SO_TIMESTAMP_NEW), + #define XLAT_VAL_8 ((unsigned) (SO_TIMESTAMP_NEW)) + #define XLAT_STR_8 STRINGIFY(SO_TIMESTAMP_NEW) #endif #if defined(SO_TIMESTAMPNS_NEW) || (defined(HAVE_DECL_SO_TIMESTAMPNS_NEW) && HAVE_DECL_SO_TIMESTAMPNS_NEW) XLAT(SO_TIMESTAMPNS_NEW), + #define XLAT_VAL_9 ((unsigned) (SO_TIMESTAMPNS_NEW)) + #define XLAT_STR_9 STRINGIFY(SO_TIMESTAMPNS_NEW) #endif #if defined(SO_TIMESTAMPING_NEW) || (defined(HAVE_DECL_SO_TIMESTAMPING_NEW) && HAVE_DECL_SO_TIMESTAMPING_NEW) XLAT(SO_TIMESTAMPING_NEW), + #define XLAT_VAL_10 ((unsigned) (SO_TIMESTAMPING_NEW)) + #define XLAT_STR_10 STRINGIFY(SO_TIMESTAMPING_NEW) #endif #if defined __sparc__ XLAT(SCM_TIMESTAMPING_OPT_STATS), + #define XLAT_VAL_11 ((unsigned) (SCM_TIMESTAMPING_OPT_STATS)) + #define XLAT_STR_11 STRINGIFY(SCM_TIMESTAMPING_OPT_STATS) #elif defined __hppa__ XLAT(SCM_TIMESTAMPING_OPT_STATS), + #define XLAT_VAL_12 ((unsigned) (SCM_TIMESTAMPING_OPT_STATS)) + #define XLAT_STR_12 STRINGIFY(SCM_TIMESTAMPING_OPT_STATS) #else XLAT(SCM_TIMESTAMPING_OPT_STATS), + #define XLAT_VAL_13 ((unsigned) (SCM_TIMESTAMPING_OPT_STATS)) + #define XLAT_STR_13 STRINGIFY(SCM_TIMESTAMPING_OPT_STATS) #endif #if defined __sparc__ XLAT(SCM_TIMESTAMPING_PKTINFO), + #define XLAT_VAL_14 ((unsigned) (SCM_TIMESTAMPING_PKTINFO)) + #define XLAT_STR_14 STRINGIFY(SCM_TIMESTAMPING_PKTINFO) #elif defined __hppa__ XLAT(SCM_TIMESTAMPING_PKTINFO), + #define XLAT_VAL_15 ((unsigned) (SCM_TIMESTAMPING_PKTINFO)) + #define XLAT_STR_15 STRINGIFY(SCM_TIMESTAMPING_PKTINFO) #else XLAT(SCM_TIMESTAMPING_PKTINFO), + #define XLAT_VAL_16 ((unsigned) (SCM_TIMESTAMPING_PKTINFO)) + #define XLAT_STR_16 STRINGIFY(SCM_TIMESTAMPING_PKTINFO) #endif - XLAT_END }; +static +const struct xlat scmvals[1] = { { + .data = scmvals_xdata, + .size = ARRAY_SIZE(scmvals_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/scsi_sg_commands.h b/xlat/scsi_sg_commands.h index b274b225..ebe04e2f 100644 --- a/xlat/scsi_sg_commands.h +++ b/xlat/scsi_sg_commands.h @@ -178,3 +178,303 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define SG_GET_ACCESS_COUNT 0x2289 #endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat scsi_sg_commands in mpers mode + +# else + +static const struct xlat_data scsi_sg_commands_xdata[] = { + XLAT(SG_SET_TIMEOUT), + #define XLAT_VAL_0 ((unsigned) (SG_SET_TIMEOUT)) + #define XLAT_STR_0 STRINGIFY(SG_SET_TIMEOUT) + XLAT(SG_GET_TIMEOUT), + #define XLAT_VAL_1 ((unsigned) (SG_GET_TIMEOUT)) + #define XLAT_STR_1 STRINGIFY(SG_GET_TIMEOUT) + XLAT(SG_EMULATED_HOST), + #define XLAT_VAL_2 ((unsigned) (SG_EMULATED_HOST)) + #define XLAT_STR_2 STRINGIFY(SG_EMULATED_HOST) + XLAT(SG_SET_TRANSFORM), + #define XLAT_VAL_3 ((unsigned) (SG_SET_TRANSFORM)) + #define XLAT_STR_3 STRINGIFY(SG_SET_TRANSFORM) + XLAT(SG_GET_TRANSFORM), + #define XLAT_VAL_4 ((unsigned) (SG_GET_TRANSFORM)) + #define XLAT_STR_4 STRINGIFY(SG_GET_TRANSFORM) + XLAT(SG_GET_COMMAND_Q), + #define XLAT_VAL_5 ((unsigned) (SG_GET_COMMAND_Q)) + #define XLAT_STR_5 STRINGIFY(SG_GET_COMMAND_Q) + XLAT(SG_SET_COMMAND_Q), + #define XLAT_VAL_6 ((unsigned) (SG_SET_COMMAND_Q)) + #define XLAT_STR_6 STRINGIFY(SG_SET_COMMAND_Q) + XLAT(SG_GET_RESERVED_SIZE), + #define XLAT_VAL_7 ((unsigned) (SG_GET_RESERVED_SIZE)) + #define XLAT_STR_7 STRINGIFY(SG_GET_RESERVED_SIZE) + XLAT(SG_SET_RESERVED_SIZE), + #define XLAT_VAL_8 ((unsigned) (SG_SET_RESERVED_SIZE)) + #define XLAT_STR_8 STRINGIFY(SG_SET_RESERVED_SIZE) + XLAT(SG_GET_SCSI_ID), + #define XLAT_VAL_9 ((unsigned) (SG_GET_SCSI_ID)) + #define XLAT_STR_9 STRINGIFY(SG_GET_SCSI_ID) + XLAT(SG_SET_FORCE_LOW_DMA), + #define XLAT_VAL_10 ((unsigned) (SG_SET_FORCE_LOW_DMA)) + #define XLAT_STR_10 STRINGIFY(SG_SET_FORCE_LOW_DMA) + XLAT(SG_GET_LOW_DMA), + #define XLAT_VAL_11 ((unsigned) (SG_GET_LOW_DMA)) + #define XLAT_STR_11 STRINGIFY(SG_GET_LOW_DMA) + XLAT(SG_SET_FORCE_PACK_ID), + #define XLAT_VAL_12 ((unsigned) (SG_SET_FORCE_PACK_ID)) + #define XLAT_STR_12 STRINGIFY(SG_SET_FORCE_PACK_ID) + XLAT(SG_GET_PACK_ID), + #define XLAT_VAL_13 ((unsigned) (SG_GET_PACK_ID)) + #define XLAT_STR_13 STRINGIFY(SG_GET_PACK_ID) + XLAT(SG_GET_NUM_WAITING), + #define XLAT_VAL_14 ((unsigned) (SG_GET_NUM_WAITING)) + #define XLAT_STR_14 STRINGIFY(SG_GET_NUM_WAITING) + XLAT(SG_SET_DEBUG), + #define XLAT_VAL_15 ((unsigned) (SG_SET_DEBUG)) + #define XLAT_STR_15 STRINGIFY(SG_SET_DEBUG) + XLAT(SG_GET_SG_TABLESIZE), + #define XLAT_VAL_16 ((unsigned) (SG_GET_SG_TABLESIZE)) + #define XLAT_STR_16 STRINGIFY(SG_GET_SG_TABLESIZE) + XLAT(SG_GET_VERSION_NUM), + #define XLAT_VAL_17 ((unsigned) (SG_GET_VERSION_NUM)) + #define XLAT_STR_17 STRINGIFY(SG_GET_VERSION_NUM) + XLAT(SG_NEXT_CMD_LEN), + #define XLAT_VAL_18 ((unsigned) (SG_NEXT_CMD_LEN)) + #define XLAT_STR_18 STRINGIFY(SG_NEXT_CMD_LEN) + XLAT(SG_SCSI_RESET), + #define XLAT_VAL_19 ((unsigned) (SG_SCSI_RESET)) + #define XLAT_STR_19 STRINGIFY(SG_SCSI_RESET) + XLAT(SG_IO), + #define XLAT_VAL_20 ((unsigned) (SG_IO)) + #define XLAT_STR_20 STRINGIFY(SG_IO) + XLAT(SG_GET_REQUEST_TABLE), + #define XLAT_VAL_21 ((unsigned) (SG_GET_REQUEST_TABLE)) + #define XLAT_STR_21 STRINGIFY(SG_GET_REQUEST_TABLE) + XLAT(SG_SET_KEEP_ORPHAN), + #define XLAT_VAL_22 ((unsigned) (SG_SET_KEEP_ORPHAN)) + #define XLAT_STR_22 STRINGIFY(SG_SET_KEEP_ORPHAN) + XLAT(SG_GET_KEEP_ORPHAN), + #define XLAT_VAL_23 ((unsigned) (SG_GET_KEEP_ORPHAN)) + #define XLAT_STR_23 STRINGIFY(SG_GET_KEEP_ORPHAN) + XLAT(SG_GET_ACCESS_COUNT), + #define XLAT_VAL_24 ((unsigned) (SG_GET_ACCESS_COUNT)) + #define XLAT_STR_24 STRINGIFY(SG_GET_ACCESS_COUNT) +}; +static +const struct xlat scsi_sg_commands[1] = { { + .data = scsi_sg_commands_xdata, + .size = ARRAY_SIZE(scsi_sg_commands_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/scsi_sg_commands.in b/xlat/scsi_sg_commands.in index e95e0d12..44631b53 100644 --- a/xlat/scsi_sg_commands.in +++ b/xlat/scsi_sg_commands.in @@ -23,4 +23,3 @@ SG_GET_REQUEST_TABLE 0x2286 SG_SET_KEEP_ORPHAN 0x2287 SG_GET_KEEP_ORPHAN 0x2288 SG_GET_ACCESS_COUNT 0x2289 -#stop diff --git a/xlat/secbits.h b/xlat/secbits.h index 50589302..c379b8a9 100644 --- a/xlat/secbits.h +++ b/xlat/secbits.h @@ -68,19 +68,107 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat secbits[] = { +static const struct xlat_data secbits_xdata[] = { XLAT(SECBIT_NOROOT), + #define XLAT_VAL_0 ((unsigned) (SECBIT_NOROOT)) + #define XLAT_STR_0 STRINGIFY(SECBIT_NOROOT) XLAT(SECBIT_NOROOT_LOCKED), + #define XLAT_VAL_1 ((unsigned) (SECBIT_NOROOT_LOCKED)) + #define XLAT_STR_1 STRINGIFY(SECBIT_NOROOT_LOCKED) XLAT(SECBIT_NO_SETUID_FIXUP), + #define XLAT_VAL_2 ((unsigned) (SECBIT_NO_SETUID_FIXUP)) + #define XLAT_STR_2 STRINGIFY(SECBIT_NO_SETUID_FIXUP) XLAT(SECBIT_NO_SETUID_FIXUP_LOCKED), + #define XLAT_VAL_3 ((unsigned) (SECBIT_NO_SETUID_FIXUP_LOCKED)) + #define XLAT_STR_3 STRINGIFY(SECBIT_NO_SETUID_FIXUP_LOCKED) XLAT(SECBIT_KEEP_CAPS), + #define XLAT_VAL_4 ((unsigned) (SECBIT_KEEP_CAPS)) + #define XLAT_STR_4 STRINGIFY(SECBIT_KEEP_CAPS) XLAT(SECBIT_KEEP_CAPS_LOCKED), + #define XLAT_VAL_5 ((unsigned) (SECBIT_KEEP_CAPS_LOCKED)) + #define XLAT_STR_5 STRINGIFY(SECBIT_KEEP_CAPS_LOCKED) XLAT(SECBIT_NO_CAP_AMBIENT_RAISE), + #define XLAT_VAL_6 ((unsigned) (SECBIT_NO_CAP_AMBIENT_RAISE)) + #define XLAT_STR_6 STRINGIFY(SECBIT_NO_CAP_AMBIENT_RAISE) XLAT(SECBIT_NO_CAP_AMBIENT_RAISE_LOCKED), - XLAT_END + #define XLAT_VAL_7 ((unsigned) (SECBIT_NO_CAP_AMBIENT_RAISE_LOCKED)) + #define XLAT_STR_7 STRINGIFY(SECBIT_NO_CAP_AMBIENT_RAISE_LOCKED) }; +static +const struct xlat secbits[1] = { { + .data = secbits_xdata, + .size = ARRAY_SIZE(secbits_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/seccomp_filter_flags.h b/xlat/seccomp_filter_flags.h index ae933f09..c2c2251b 100644 --- a/xlat/seccomp_filter_flags.h +++ b/xlat/seccomp_filter_flags.h @@ -5,45 +5,111 @@ #if defined(SECCOMP_FILTER_FLAG_TSYNC) || (defined(HAVE_DECL_SECCOMP_FILTER_FLAG_TSYNC) && HAVE_DECL_SECCOMP_FILTER_FLAG_TSYNC) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((SECCOMP_FILTER_FLAG_TSYNC) == (1), "SECCOMP_FILTER_FLAG_TSYNC != 1"); +static_assert((SECCOMP_FILTER_FLAG_TSYNC) == ((1<<0)), "SECCOMP_FILTER_FLAG_TSYNC != (1<<0)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define SECCOMP_FILTER_FLAG_TSYNC 1 +# define SECCOMP_FILTER_FLAG_TSYNC (1<<0) #endif #if defined(SECCOMP_FILTER_FLAG_LOG) || (defined(HAVE_DECL_SECCOMP_FILTER_FLAG_LOG) && HAVE_DECL_SECCOMP_FILTER_FLAG_LOG) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((SECCOMP_FILTER_FLAG_LOG) == (2), "SECCOMP_FILTER_FLAG_LOG != 2"); +static_assert((SECCOMP_FILTER_FLAG_LOG) == ((1<<1)), "SECCOMP_FILTER_FLAG_LOG != (1<<1)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define SECCOMP_FILTER_FLAG_LOG 2 +# define SECCOMP_FILTER_FLAG_LOG (1<<1) #endif #if defined(SECCOMP_FILTER_FLAG_SPEC_ALLOW) || (defined(HAVE_DECL_SECCOMP_FILTER_FLAG_SPEC_ALLOW) && HAVE_DECL_SECCOMP_FILTER_FLAG_SPEC_ALLOW) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((SECCOMP_FILTER_FLAG_SPEC_ALLOW) == (4), "SECCOMP_FILTER_FLAG_SPEC_ALLOW != 4"); +static_assert((SECCOMP_FILTER_FLAG_SPEC_ALLOW) == ((1<<2)), "SECCOMP_FILTER_FLAG_SPEC_ALLOW != (1<<2)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define SECCOMP_FILTER_FLAG_SPEC_ALLOW 4 +# define SECCOMP_FILTER_FLAG_SPEC_ALLOW (1<<2) #endif #if defined(SECCOMP_FILTER_FLAG_NEW_LISTENER) || (defined(HAVE_DECL_SECCOMP_FILTER_FLAG_NEW_LISTENER) && HAVE_DECL_SECCOMP_FILTER_FLAG_NEW_LISTENER) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((SECCOMP_FILTER_FLAG_NEW_LISTENER) == (8), "SECCOMP_FILTER_FLAG_NEW_LISTENER != 8"); +static_assert((SECCOMP_FILTER_FLAG_NEW_LISTENER) == ((1<<3)), "SECCOMP_FILTER_FLAG_NEW_LISTENER != (1<<3)"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define SECCOMP_FILTER_FLAG_NEW_LISTENER 8 +# define SECCOMP_FILTER_FLAG_NEW_LISTENER (1<<3) +#endif +#if defined(SECCOMP_FILTER_FLAG_TSYNC_ESRCH) || (defined(HAVE_DECL_SECCOMP_FILTER_FLAG_TSYNC_ESRCH) && HAVE_DECL_SECCOMP_FILTER_FLAG_TSYNC_ESRCH) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SECCOMP_FILTER_FLAG_TSYNC_ESRCH) == ((1<<4)), "SECCOMP_FILTER_FLAG_TSYNC_ESRCH != (1<<4)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SECCOMP_FILTER_FLAG_TSYNC_ESRCH (1<<4) #endif #ifndef XLAT_MACROS_ONLY # ifndef IN_MPERS -const struct xlat seccomp_filter_flags[] = { +static const struct xlat_data seccomp_filter_flags_xdata[] = { XLAT(SECCOMP_FILTER_FLAG_TSYNC), + #define XLAT_VAL_0 ((unsigned) (SECCOMP_FILTER_FLAG_TSYNC)) + #define XLAT_STR_0 STRINGIFY(SECCOMP_FILTER_FLAG_TSYNC) XLAT(SECCOMP_FILTER_FLAG_LOG), + #define XLAT_VAL_1 ((unsigned) (SECCOMP_FILTER_FLAG_LOG)) + #define XLAT_STR_1 STRINGIFY(SECCOMP_FILTER_FLAG_LOG) XLAT(SECCOMP_FILTER_FLAG_SPEC_ALLOW), + #define XLAT_VAL_2 ((unsigned) (SECCOMP_FILTER_FLAG_SPEC_ALLOW)) + #define XLAT_STR_2 STRINGIFY(SECCOMP_FILTER_FLAG_SPEC_ALLOW) XLAT(SECCOMP_FILTER_FLAG_NEW_LISTENER), - XLAT_END + #define XLAT_VAL_3 ((unsigned) (SECCOMP_FILTER_FLAG_NEW_LISTENER)) + #define XLAT_STR_3 STRINGIFY(SECCOMP_FILTER_FLAG_NEW_LISTENER) + XLAT(SECCOMP_FILTER_FLAG_TSYNC_ESRCH), + #define XLAT_VAL_4 ((unsigned) (SECCOMP_FILTER_FLAG_TSYNC_ESRCH)) + #define XLAT_STR_4 STRINGIFY(SECCOMP_FILTER_FLAG_TSYNC_ESRCH) }; +const struct xlat seccomp_filter_flags[1] = { { + .data = seccomp_filter_flags_xdata, + .size = ARRAY_SIZE(seccomp_filter_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/seccomp_filter_flags.in b/xlat/seccomp_filter_flags.in index 8fc71de4..af18f701 100644 --- a/xlat/seccomp_filter_flags.in +++ b/xlat/seccomp_filter_flags.in @@ -1,4 +1,5 @@ -SECCOMP_FILTER_FLAG_TSYNC 1 -SECCOMP_FILTER_FLAG_LOG 2 -SECCOMP_FILTER_FLAG_SPEC_ALLOW 4 -SECCOMP_FILTER_FLAG_NEW_LISTENER 8 +SECCOMP_FILTER_FLAG_TSYNC (1<<0) +SECCOMP_FILTER_FLAG_LOG (1<<1) +SECCOMP_FILTER_FLAG_SPEC_ALLOW (1<<2) +SECCOMP_FILTER_FLAG_NEW_LISTENER (1<<3) +SECCOMP_FILTER_FLAG_TSYNC_ESRCH (1<<4) diff --git a/xlat/seccomp_mode.h b/xlat/seccomp_mode.h index bb5200f1..e4a1cf70 100644 --- a/xlat/seccomp_mode.h +++ b/xlat/seccomp_mode.h @@ -33,14 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat seccomp_mode[] = { - XLAT(SECCOMP_MODE_DISABLED), - XLAT(SECCOMP_MODE_STRICT), - XLAT(SECCOMP_MODE_FILTER), - XLAT_END +static const struct xlat_data seccomp_mode_xdata[] = { + [SECCOMP_MODE_DISABLED] = XLAT(SECCOMP_MODE_DISABLED), + #define XLAT_VAL_0 ((unsigned) (SECCOMP_MODE_DISABLED)) + #define XLAT_STR_0 STRINGIFY(SECCOMP_MODE_DISABLED) + [SECCOMP_MODE_STRICT] = XLAT(SECCOMP_MODE_STRICT), + #define XLAT_VAL_1 ((unsigned) (SECCOMP_MODE_STRICT)) + #define XLAT_STR_1 STRINGIFY(SECCOMP_MODE_STRICT) + [SECCOMP_MODE_FILTER] = XLAT(SECCOMP_MODE_FILTER), + #define XLAT_VAL_2 ((unsigned) (SECCOMP_MODE_FILTER)) + #define XLAT_STR_2 STRINGIFY(SECCOMP_MODE_FILTER) }; +static +const struct xlat seccomp_mode[1] = { { + .data = seccomp_mode_xdata, + .size = ARRAY_SIZE(seccomp_mode_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/seccomp_mode.in b/xlat/seccomp_mode.in index eed9faec..bdaab34f 100644 --- a/xlat/seccomp_mode.in +++ b/xlat/seccomp_mode.in @@ -1,3 +1,4 @@ +#value_indexed SECCOMP_MODE_DISABLED 0 SECCOMP_MODE_STRICT 1 SECCOMP_MODE_FILTER 2 diff --git a/xlat/seccomp_ops.h b/xlat/seccomp_ops.h index fd50d97c..eac568dd 100644 --- a/xlat/seccomp_ops.h +++ b/xlat/seccomp_ops.h @@ -40,15 +40,63 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat seccomp_ops[] = { - XLAT(SECCOMP_SET_MODE_STRICT), - XLAT(SECCOMP_SET_MODE_FILTER), - XLAT(SECCOMP_GET_ACTION_AVAIL), - XLAT(SECCOMP_GET_NOTIF_SIZES), - XLAT_END +static const struct xlat_data seccomp_ops_xdata[] = { + [SECCOMP_SET_MODE_STRICT] = XLAT(SECCOMP_SET_MODE_STRICT), + #define XLAT_VAL_0 ((unsigned) (SECCOMP_SET_MODE_STRICT)) + #define XLAT_STR_0 STRINGIFY(SECCOMP_SET_MODE_STRICT) + [SECCOMP_SET_MODE_FILTER] = XLAT(SECCOMP_SET_MODE_FILTER), + #define XLAT_VAL_1 ((unsigned) (SECCOMP_SET_MODE_FILTER)) + #define XLAT_STR_1 STRINGIFY(SECCOMP_SET_MODE_FILTER) + [SECCOMP_GET_ACTION_AVAIL] = XLAT(SECCOMP_GET_ACTION_AVAIL), + #define XLAT_VAL_2 ((unsigned) (SECCOMP_GET_ACTION_AVAIL)) + #define XLAT_STR_2 STRINGIFY(SECCOMP_GET_ACTION_AVAIL) + [SECCOMP_GET_NOTIF_SIZES] = XLAT(SECCOMP_GET_NOTIF_SIZES), + #define XLAT_VAL_3 ((unsigned) (SECCOMP_GET_NOTIF_SIZES)) + #define XLAT_STR_3 STRINGIFY(SECCOMP_GET_NOTIF_SIZES) }; +static +const struct xlat seccomp_ops[1] = { { + .data = seccomp_ops_xdata, + .size = ARRAY_SIZE(seccomp_ops_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/seccomp_ops.in b/xlat/seccomp_ops.in index 97de186f..6695f25b 100644 --- a/xlat/seccomp_ops.in +++ b/xlat/seccomp_ops.in @@ -1,3 +1,4 @@ +#value_indexed SECCOMP_SET_MODE_STRICT 0 SECCOMP_SET_MODE_FILTER 1 SECCOMP_GET_ACTION_AVAIL 2 diff --git a/xlat/seccomp_ret_action.h b/xlat/seccomp_ret_action.h index e9074e00..167cc4ae 100644 --- a/xlat/seccomp_ret_action.h +++ b/xlat/seccomp_ret_action.h @@ -64,18 +64,106 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # ifndef IN_MPERS -const struct xlat seccomp_ret_action[] = { +static const struct xlat_data seccomp_ret_action_xdata[] = { XLAT(SECCOMP_RET_KILL_PROCESS), + #define XLAT_VAL_0 ((unsigned) (SECCOMP_RET_KILL_PROCESS)) + #define XLAT_STR_0 STRINGIFY(SECCOMP_RET_KILL_PROCESS) XLAT(SECCOMP_RET_KILL_THREAD), + #define XLAT_VAL_1 ((unsigned) (SECCOMP_RET_KILL_THREAD)) + #define XLAT_STR_1 STRINGIFY(SECCOMP_RET_KILL_THREAD) XLAT(SECCOMP_RET_TRAP), + #define XLAT_VAL_2 ((unsigned) (SECCOMP_RET_TRAP)) + #define XLAT_STR_2 STRINGIFY(SECCOMP_RET_TRAP) XLAT(SECCOMP_RET_ERRNO), + #define XLAT_VAL_3 ((unsigned) (SECCOMP_RET_ERRNO)) + #define XLAT_STR_3 STRINGIFY(SECCOMP_RET_ERRNO) XLAT(SECCOMP_RET_USER_NOTIF), + #define XLAT_VAL_4 ((unsigned) (SECCOMP_RET_USER_NOTIF)) + #define XLAT_STR_4 STRINGIFY(SECCOMP_RET_USER_NOTIF) XLAT(SECCOMP_RET_TRACE), + #define XLAT_VAL_5 ((unsigned) (SECCOMP_RET_TRACE)) + #define XLAT_STR_5 STRINGIFY(SECCOMP_RET_TRACE) XLAT(SECCOMP_RET_LOG), + #define XLAT_VAL_6 ((unsigned) (SECCOMP_RET_LOG)) + #define XLAT_STR_6 STRINGIFY(SECCOMP_RET_LOG) XLAT(SECCOMP_RET_ALLOW), - XLAT_END + #define XLAT_VAL_7 ((unsigned) (SECCOMP_RET_ALLOW)) + #define XLAT_STR_7 STRINGIFY(SECCOMP_RET_ALLOW) }; +const struct xlat seccomp_ret_action[1] = { { + .data = seccomp_ret_action_xdata, + .size = ARRAY_SIZE(seccomp_ret_action_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/semctl_flags.h b/xlat/semctl_flags.h index ffb88de5..c40820a4 100644 --- a/xlat/semctl_flags.h +++ b/xlat/semctl_flags.h @@ -106,30 +106,179 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # ifdef IN_MPERS -# error static const struct xlat semctl_flags in mpers mode +extern const struct xlat semctl_flags[]; # else -static -const struct xlat semctl_flags[] = { - +static const struct xlat_data semctl_flags_xdata[] = { XLAT(IPC_RMID), + #define XLAT_VAL_0 ((unsigned) (IPC_RMID)) + #define XLAT_STR_0 STRINGIFY(IPC_RMID) XLAT(IPC_SET), + #define XLAT_VAL_1 ((unsigned) (IPC_SET)) + #define XLAT_STR_1 STRINGIFY(IPC_SET) XLAT(IPC_STAT), + #define XLAT_VAL_2 ((unsigned) (IPC_STAT)) + #define XLAT_STR_2 STRINGIFY(IPC_STAT) XLAT(IPC_INFO), + #define XLAT_VAL_3 ((unsigned) (IPC_INFO)) + #define XLAT_STR_3 STRINGIFY(IPC_INFO) XLAT(GETPID), + #define XLAT_VAL_4 ((unsigned) (GETPID)) + #define XLAT_STR_4 STRINGIFY(GETPID) XLAT(GETVAL), + #define XLAT_VAL_5 ((unsigned) (GETVAL)) + #define XLAT_STR_5 STRINGIFY(GETVAL) XLAT(GETALL), + #define XLAT_VAL_6 ((unsigned) (GETALL)) + #define XLAT_STR_6 STRINGIFY(GETALL) XLAT(GETNCNT), + #define XLAT_VAL_7 ((unsigned) (GETNCNT)) + #define XLAT_STR_7 STRINGIFY(GETNCNT) XLAT(GETZCNT), + #define XLAT_VAL_8 ((unsigned) (GETZCNT)) + #define XLAT_STR_8 STRINGIFY(GETZCNT) XLAT(SETVAL), + #define XLAT_VAL_9 ((unsigned) (SETVAL)) + #define XLAT_STR_9 STRINGIFY(SETVAL) XLAT(SETALL), + #define XLAT_VAL_10 ((unsigned) (SETALL)) + #define XLAT_STR_10 STRINGIFY(SETALL) XLAT(SEM_STAT), + #define XLAT_VAL_11 ((unsigned) (SEM_STAT)) + #define XLAT_STR_11 STRINGIFY(SEM_STAT) XLAT(SEM_INFO), + #define XLAT_VAL_12 ((unsigned) (SEM_INFO)) + #define XLAT_STR_12 STRINGIFY(SEM_INFO) XLAT(SEM_STAT_ANY), - XLAT_END + #define XLAT_VAL_13 ((unsigned) (SEM_STAT_ANY)) + #define XLAT_STR_13 STRINGIFY(SEM_STAT_ANY) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat semctl_flags[1] = { { + .data = semctl_flags_xdata, + .size = ARRAY_SIZE(semctl_flags_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/semctl_flags.in b/xlat/semctl_flags.in index 9e8b84b3..455ceebd 100644 --- a/xlat/semctl_flags.in +++ b/xlat/semctl_flags.in @@ -1,4 +1,4 @@ -/* sort -k2,2g */ +#sorted sort -k2,2g IPC_RMID 0 IPC_SET 1 IPC_STAT 2 diff --git a/xlat/semop_flags.h b/xlat/semop_flags.h index fcd9e117..8250e9e9 100644 --- a/xlat/semop_flags.h +++ b/xlat/semop_flags.h @@ -12,17 +12,45 @@ # else -static -const struct xlat semop_flags[] = { +static const struct xlat_data semop_flags_xdata[] = { #if defined(SEM_UNDO) || (defined(HAVE_DECL_SEM_UNDO) && HAVE_DECL_SEM_UNDO) XLAT(SEM_UNDO), + #define XLAT_VAL_0 ((unsigned) (SEM_UNDO)) + #define XLAT_STR_0 STRINGIFY(SEM_UNDO) #endif #if defined(IPC_NOWAIT) || (defined(HAVE_DECL_IPC_NOWAIT) && HAVE_DECL_IPC_NOWAIT) XLAT(IPC_NOWAIT), + #define XLAT_VAL_1 ((unsigned) (IPC_NOWAIT)) + #define XLAT_STR_1 STRINGIFY(IPC_NOWAIT) #endif - XLAT_END }; - +static +const struct xlat semop_flags[1] = { { + .data = semop_flags_xdata, + .size = ARRAY_SIZE(semop_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/setns_types.h b/xlat/setns_types.h index 2b5368fc..3faf73b6 100644 --- a/xlat/setns_types.h +++ b/xlat/setns_types.h @@ -3,6 +3,13 @@ #include "gcc_compat.h" #include "static_assert.h" +#if defined(CLONE_NEWTIME) || (defined(HAVE_DECL_CLONE_NEWTIME) && HAVE_DECL_CLONE_NEWTIME) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((CLONE_NEWTIME) == (0x00000080), "CLONE_NEWTIME != 0x00000080"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define CLONE_NEWTIME 0x00000080 +#endif #if defined(CLONE_NEWNS) || (defined(HAVE_DECL_CLONE_NEWNS) && HAVE_DECL_CLONE_NEWNS) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((CLONE_NEWNS) == (0x00020000), "CLONE_NEWNS != 0x00020000"); @@ -57,18 +64,117 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # ifndef IN_MPERS -const struct xlat setns_types[] = { +static const struct xlat_data setns_types_xdata[] = { XLAT(0), + #define XLAT_VAL_0 ((unsigned) (0)) + #define XLAT_STR_0 STRINGIFY(0) + XLAT(CLONE_NEWTIME), + #define XLAT_VAL_1 ((unsigned) (CLONE_NEWTIME)) + #define XLAT_STR_1 STRINGIFY(CLONE_NEWTIME) XLAT(CLONE_NEWNS), + #define XLAT_VAL_2 ((unsigned) (CLONE_NEWNS)) + #define XLAT_STR_2 STRINGIFY(CLONE_NEWNS) XLAT(CLONE_NEWCGROUP), + #define XLAT_VAL_3 ((unsigned) (CLONE_NEWCGROUP)) + #define XLAT_STR_3 STRINGIFY(CLONE_NEWCGROUP) XLAT(CLONE_NEWUTS), + #define XLAT_VAL_4 ((unsigned) (CLONE_NEWUTS)) + #define XLAT_STR_4 STRINGIFY(CLONE_NEWUTS) XLAT(CLONE_NEWIPC), + #define XLAT_VAL_5 ((unsigned) (CLONE_NEWIPC)) + #define XLAT_STR_5 STRINGIFY(CLONE_NEWIPC) XLAT(CLONE_NEWUSER), + #define XLAT_VAL_6 ((unsigned) (CLONE_NEWUSER)) + #define XLAT_STR_6 STRINGIFY(CLONE_NEWUSER) XLAT(CLONE_NEWPID), + #define XLAT_VAL_7 ((unsigned) (CLONE_NEWPID)) + #define XLAT_STR_7 STRINGIFY(CLONE_NEWPID) XLAT(CLONE_NEWNET), - XLAT_END + #define XLAT_VAL_8 ((unsigned) (CLONE_NEWNET)) + #define XLAT_STR_8 STRINGIFY(CLONE_NEWNET) }; +const struct xlat setns_types[1] = { { + .data = setns_types_xdata, + .size = ARRAY_SIZE(setns_types_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/setns_types.in b/xlat/setns_types.in index 09186f27..df71d25b 100644 --- a/xlat/setns_types.in +++ b/xlat/setns_types.in @@ -1,4 +1,5 @@ 0 +CLONE_NEWTIME 0x00000080 CLONE_NEWNS 0x00020000 CLONE_NEWCGROUP 0x02000000 CLONE_NEWUTS 0x04000000 diff --git a/xlat/setsock_ip_options.h b/xlat/setsock_ip_options.h index c5f8fc59..8eba235c 100644 --- a/xlat/setsock_ip_options.h +++ b/xlat/setsock_ip_options.h @@ -12,8 +12,7 @@ # else -static -const struct xlat setsock_ip_options[] = { +static const struct xlat_data setsock_ip_options_xdata[] = { /* * Options specific to setsockopt(SOL_IP). * Common {g,s}etsockopt(SOL_IP) options @@ -22,76 +21,305 @@ const struct xlat setsock_ip_options[] = { #if defined(ARPT_SO_SET_REPLACE) || (defined(HAVE_DECL_ARPT_SO_SET_REPLACE) && HAVE_DECL_ARPT_SO_SET_REPLACE) XLAT(ARPT_SO_SET_REPLACE), + #define XLAT_VAL_0 ((unsigned) (ARPT_SO_SET_REPLACE)) + #define XLAT_STR_0 STRINGIFY(ARPT_SO_SET_REPLACE) #endif #if defined(ARPT_SO_SET_ADD_COUNTERS) || (defined(HAVE_DECL_ARPT_SO_SET_ADD_COUNTERS) && HAVE_DECL_ARPT_SO_SET_ADD_COUNTERS) XLAT(ARPT_SO_SET_ADD_COUNTERS), + #define XLAT_VAL_1 ((unsigned) (ARPT_SO_SET_ADD_COUNTERS)) + #define XLAT_STR_1 STRINGIFY(ARPT_SO_SET_ADD_COUNTERS) #endif #if defined(EBT_SO_SET_ENTRIES) || (defined(HAVE_DECL_EBT_SO_SET_ENTRIES) && HAVE_DECL_EBT_SO_SET_ENTRIES) XLAT(EBT_SO_SET_ENTRIES), + #define XLAT_VAL_2 ((unsigned) (EBT_SO_SET_ENTRIES)) + #define XLAT_STR_2 STRINGIFY(EBT_SO_SET_ENTRIES) #endif #if defined(EBT_SO_SET_COUNTERS) || (defined(HAVE_DECL_EBT_SO_SET_COUNTERS) && HAVE_DECL_EBT_SO_SET_COUNTERS) XLAT(EBT_SO_SET_COUNTERS), + #define XLAT_VAL_3 ((unsigned) (EBT_SO_SET_COUNTERS)) + #define XLAT_STR_3 STRINGIFY(EBT_SO_SET_COUNTERS) #endif #if defined(IP_VS_SO_SET_NONE) || (defined(HAVE_DECL_IP_VS_SO_SET_NONE) && HAVE_DECL_IP_VS_SO_SET_NONE) XLAT(IP_VS_SO_SET_NONE), + #define XLAT_VAL_4 ((unsigned) (IP_VS_SO_SET_NONE)) + #define XLAT_STR_4 STRINGIFY(IP_VS_SO_SET_NONE) #endif #if defined(IP_VS_SO_SET_INSERT) || (defined(HAVE_DECL_IP_VS_SO_SET_INSERT) && HAVE_DECL_IP_VS_SO_SET_INSERT) XLAT(IP_VS_SO_SET_INSERT), + #define XLAT_VAL_5 ((unsigned) (IP_VS_SO_SET_INSERT)) + #define XLAT_STR_5 STRINGIFY(IP_VS_SO_SET_INSERT) #endif #if defined(IP_VS_SO_SET_ADD) || (defined(HAVE_DECL_IP_VS_SO_SET_ADD) && HAVE_DECL_IP_VS_SO_SET_ADD) XLAT(IP_VS_SO_SET_ADD), + #define XLAT_VAL_6 ((unsigned) (IP_VS_SO_SET_ADD)) + #define XLAT_STR_6 STRINGIFY(IP_VS_SO_SET_ADD) #endif #if defined(IP_VS_SO_SET_EDIT) || (defined(HAVE_DECL_IP_VS_SO_SET_EDIT) && HAVE_DECL_IP_VS_SO_SET_EDIT) XLAT(IP_VS_SO_SET_EDIT), + #define XLAT_VAL_7 ((unsigned) (IP_VS_SO_SET_EDIT)) + #define XLAT_STR_7 STRINGIFY(IP_VS_SO_SET_EDIT) #endif #if defined(IP_VS_SO_SET_DEL) || (defined(HAVE_DECL_IP_VS_SO_SET_DEL) && HAVE_DECL_IP_VS_SO_SET_DEL) XLAT(IP_VS_SO_SET_DEL), + #define XLAT_VAL_8 ((unsigned) (IP_VS_SO_SET_DEL)) + #define XLAT_STR_8 STRINGIFY(IP_VS_SO_SET_DEL) #endif #if defined(IP_VS_SO_SET_FLUSH) || (defined(HAVE_DECL_IP_VS_SO_SET_FLUSH) && HAVE_DECL_IP_VS_SO_SET_FLUSH) XLAT(IP_VS_SO_SET_FLUSH), + #define XLAT_VAL_9 ((unsigned) (IP_VS_SO_SET_FLUSH)) + #define XLAT_STR_9 STRINGIFY(IP_VS_SO_SET_FLUSH) #endif #if defined(IP_VS_SO_SET_LIST) || (defined(HAVE_DECL_IP_VS_SO_SET_LIST) && HAVE_DECL_IP_VS_SO_SET_LIST) XLAT(IP_VS_SO_SET_LIST), + #define XLAT_VAL_10 ((unsigned) (IP_VS_SO_SET_LIST)) + #define XLAT_STR_10 STRINGIFY(IP_VS_SO_SET_LIST) #endif #if defined(IP_VS_SO_SET_ADDDEST) || (defined(HAVE_DECL_IP_VS_SO_SET_ADDDEST) && HAVE_DECL_IP_VS_SO_SET_ADDDEST) XLAT(IP_VS_SO_SET_ADDDEST), + #define XLAT_VAL_11 ((unsigned) (IP_VS_SO_SET_ADDDEST)) + #define XLAT_STR_11 STRINGIFY(IP_VS_SO_SET_ADDDEST) #endif #if defined(IP_VS_SO_SET_DELDEST) || (defined(HAVE_DECL_IP_VS_SO_SET_DELDEST) && HAVE_DECL_IP_VS_SO_SET_DELDEST) XLAT(IP_VS_SO_SET_DELDEST), + #define XLAT_VAL_12 ((unsigned) (IP_VS_SO_SET_DELDEST)) + #define XLAT_STR_12 STRINGIFY(IP_VS_SO_SET_DELDEST) #endif #if defined(IP_VS_SO_SET_EDITDEST) || (defined(HAVE_DECL_IP_VS_SO_SET_EDITDEST) && HAVE_DECL_IP_VS_SO_SET_EDITDEST) XLAT(IP_VS_SO_SET_EDITDEST), + #define XLAT_VAL_13 ((unsigned) (IP_VS_SO_SET_EDITDEST)) + #define XLAT_STR_13 STRINGIFY(IP_VS_SO_SET_EDITDEST) #endif #if defined(IP_VS_SO_SET_TIMEOUT) || (defined(HAVE_DECL_IP_VS_SO_SET_TIMEOUT) && HAVE_DECL_IP_VS_SO_SET_TIMEOUT) XLAT(IP_VS_SO_SET_TIMEOUT), + #define XLAT_VAL_14 ((unsigned) (IP_VS_SO_SET_TIMEOUT)) + #define XLAT_STR_14 STRINGIFY(IP_VS_SO_SET_TIMEOUT) #endif #if defined(IP_VS_SO_SET_STARTDAEMON) || (defined(HAVE_DECL_IP_VS_SO_SET_STARTDAEMON) && HAVE_DECL_IP_VS_SO_SET_STARTDAEMON) XLAT(IP_VS_SO_SET_STARTDAEMON), + #define XLAT_VAL_15 ((unsigned) (IP_VS_SO_SET_STARTDAEMON)) + #define XLAT_STR_15 STRINGIFY(IP_VS_SO_SET_STARTDAEMON) #endif #if defined(IP_VS_SO_SET_STOPDAEMON) || (defined(HAVE_DECL_IP_VS_SO_SET_STOPDAEMON) && HAVE_DECL_IP_VS_SO_SET_STOPDAEMON) XLAT(IP_VS_SO_SET_STOPDAEMON), + #define XLAT_VAL_16 ((unsigned) (IP_VS_SO_SET_STOPDAEMON)) + #define XLAT_STR_16 STRINGIFY(IP_VS_SO_SET_STOPDAEMON) #endif #if defined(IP_VS_SO_SET_RESTORE) || (defined(HAVE_DECL_IP_VS_SO_SET_RESTORE) && HAVE_DECL_IP_VS_SO_SET_RESTORE) XLAT(IP_VS_SO_SET_RESTORE), + #define XLAT_VAL_17 ((unsigned) (IP_VS_SO_SET_RESTORE)) + #define XLAT_STR_17 STRINGIFY(IP_VS_SO_SET_RESTORE) #endif #if defined(IP_VS_SO_SET_SAVE) || (defined(HAVE_DECL_IP_VS_SO_SET_SAVE) && HAVE_DECL_IP_VS_SO_SET_SAVE) XLAT(IP_VS_SO_SET_SAVE), + #define XLAT_VAL_18 ((unsigned) (IP_VS_SO_SET_SAVE)) + #define XLAT_STR_18 STRINGIFY(IP_VS_SO_SET_SAVE) #endif #if defined(IP_VS_SO_SET_ZERO) || (defined(HAVE_DECL_IP_VS_SO_SET_ZERO) && HAVE_DECL_IP_VS_SO_SET_ZERO) XLAT(IP_VS_SO_SET_ZERO), + #define XLAT_VAL_19 ((unsigned) (IP_VS_SO_SET_ZERO)) + #define XLAT_STR_19 STRINGIFY(IP_VS_SO_SET_ZERO) #endif #if defined(IPT_SO_SET_REPLACE) || (defined(HAVE_DECL_IPT_SO_SET_REPLACE) && HAVE_DECL_IPT_SO_SET_REPLACE) XLAT(IPT_SO_SET_REPLACE), + #define XLAT_VAL_20 ((unsigned) (IPT_SO_SET_REPLACE)) + #define XLAT_STR_20 STRINGIFY(IPT_SO_SET_REPLACE) #endif #if defined(IPT_SO_SET_ADD_COUNTERS) || (defined(HAVE_DECL_IPT_SO_SET_ADD_COUNTERS) && HAVE_DECL_IPT_SO_SET_ADD_COUNTERS) XLAT(IPT_SO_SET_ADD_COUNTERS), + #define XLAT_VAL_21 ((unsigned) (IPT_SO_SET_ADD_COUNTERS)) + #define XLAT_STR_21 STRINGIFY(IPT_SO_SET_ADD_COUNTERS) #endif - XLAT_END }; +static +const struct xlat setsock_ip_options[1] = { { + .data = setsock_ip_options_xdata, + .size = ARRAY_SIZE(setsock_ip_options_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/setsock_ipv6_options.h b/xlat/setsock_ipv6_options.h index 328a4087..43475721 100644 --- a/xlat/setsock_ipv6_options.h +++ b/xlat/setsock_ipv6_options.h @@ -26,8 +26,7 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat setsock_ipv6_options[] = { +static const struct xlat_data setsock_ipv6_options_xdata[] = { /* * Options specific to setsockopt(SOL_IPV6). * Common {g,s}etsockopt(SOL_IPV6) options @@ -35,10 +34,39 @@ const struct xlat setsock_ipv6_options[] = { */ XLAT(IP6T_SO_SET_REPLACE), + #define XLAT_VAL_0 ((unsigned) (IP6T_SO_SET_REPLACE)) + #define XLAT_STR_0 STRINGIFY(IP6T_SO_SET_REPLACE) XLAT(IP6T_SO_SET_ADD_COUNTERS), - XLAT_END + #define XLAT_VAL_1 ((unsigned) (IP6T_SO_SET_ADD_COUNTERS)) + #define XLAT_STR_1 STRINGIFY(IP6T_SO_SET_ADD_COUNTERS) }; +static +const struct xlat setsock_ipv6_options[1] = { { + .data = setsock_ipv6_options_xdata, + .size = ARRAY_SIZE(setsock_ipv6_options_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/setsock_options.h b/xlat/setsock_options.h index 2ee500c9..924e05aa 100644 --- a/xlat/setsock_options.h +++ b/xlat/setsock_options.h @@ -29,16 +29,45 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat setsock_options[] = { +static const struct xlat_data setsock_options_xdata[] = { + #if defined __hppa__ XLAT(SO_ATTACH_FILTER), + #define XLAT_VAL_0 ((unsigned) (SO_ATTACH_FILTER)) + #define XLAT_STR_0 STRINGIFY(SO_ATTACH_FILTER) #else XLAT(SO_ATTACH_FILTER), + #define XLAT_VAL_1 ((unsigned) (SO_ATTACH_FILTER)) + #define XLAT_STR_1 STRINGIFY(SO_ATTACH_FILTER) #endif - XLAT_END }; +static +const struct xlat setsock_options[1] = { { + .data = setsock_options_xdata, + .size = ARRAY_SIZE(setsock_options_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/setsock_options.in b/xlat/setsock_options.in index 38f29207..3f14eefd 100644 --- a/xlat/setsock_options.in +++ b/xlat/setsock_options.in @@ -1,5 +1,6 @@ +/* Generated by maint/gen_xlat_defs.sh -f 'u' -p 'SO_ATTACH_FILTER' -c 'asm-generic/socket.h' -a 'asm/socket.h' */ #if defined __hppa__ -SO_ATTACH_FILTER 16410 +SO_ATTACH_FILTER 16410 #else -SO_ATTACH_FILTER 26 +SO_ATTACH_FILTER 26 #endif diff --git a/xlat/sfd_flags.h b/xlat/sfd_flags.h index 84e29ded..a48b2f5b 100644 --- a/xlat/sfd_flags.h +++ b/xlat/sfd_flags.h @@ -28,15 +28,43 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat sfd_flags[] = { +static const struct xlat_data sfd_flags_xdata[] = { #if defined SFD_CLOEXEC || defined O_CLOEXEC XLAT(SFD_CLOEXEC), + #define XLAT_VAL_0 ((unsigned) (SFD_CLOEXEC)) + #define XLAT_STR_0 STRINGIFY(SFD_CLOEXEC) #endif XLAT(SFD_NONBLOCK), - XLAT_END + #define XLAT_VAL_1 ((unsigned) (SFD_NONBLOCK)) + #define XLAT_STR_1 STRINGIFY(SFD_NONBLOCK) }; +static +const struct xlat sfd_flags[1] = { { + .data = sfd_flags_xdata, + .size = ARRAY_SIZE(sfd_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sg_io_dxfer_direction.h b/xlat/sg_io_dxfer_direction.h index 93dda68a..ef88b220 100644 --- a/xlat/sg_io_dxfer_direction.h +++ b/xlat/sg_io_dxfer_direction.h @@ -12,25 +12,73 @@ extern const struct xlat sg_io_dxfer_direction[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat sg_io_dxfer_direction[] = { +static const struct xlat_data sg_io_dxfer_direction_xdata[] = { #if defined(SG_DXFER_NONE) || (defined(HAVE_DECL_SG_DXFER_NONE) && HAVE_DECL_SG_DXFER_NONE) XLAT(SG_DXFER_NONE), + #define XLAT_VAL_0 ((unsigned) (SG_DXFER_NONE)) + #define XLAT_STR_0 STRINGIFY(SG_DXFER_NONE) #endif #if defined(SG_DXFER_TO_DEV) || (defined(HAVE_DECL_SG_DXFER_TO_DEV) && HAVE_DECL_SG_DXFER_TO_DEV) XLAT(SG_DXFER_TO_DEV), + #define XLAT_VAL_1 ((unsigned) (SG_DXFER_TO_DEV)) + #define XLAT_STR_1 STRINGIFY(SG_DXFER_TO_DEV) #endif #if defined(SG_DXFER_FROM_DEV) || (defined(HAVE_DECL_SG_DXFER_FROM_DEV) && HAVE_DECL_SG_DXFER_FROM_DEV) XLAT(SG_DXFER_FROM_DEV), + #define XLAT_VAL_2 ((unsigned) (SG_DXFER_FROM_DEV)) + #define XLAT_STR_2 STRINGIFY(SG_DXFER_FROM_DEV) #endif #if defined(SG_DXFER_TO_FROM_DEV) || (defined(HAVE_DECL_SG_DXFER_TO_FROM_DEV) && HAVE_DECL_SG_DXFER_TO_FROM_DEV) XLAT(SG_DXFER_TO_FROM_DEV), + #define XLAT_VAL_3 ((unsigned) (SG_DXFER_TO_FROM_DEV)) + #define XLAT_STR_3 STRINGIFY(SG_DXFER_TO_FROM_DEV) #endif - XLAT_END }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat sg_io_dxfer_direction[1] = { { + .data = sg_io_dxfer_direction_xdata, + .size = ARRAY_SIZE(sg_io_dxfer_direction_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sg_io_flags.h b/xlat/sg_io_flags.h index 9b938e9f..61b8c422 100644 --- a/xlat/sg_io_flags.h +++ b/xlat/sg_io_flags.h @@ -54,19 +54,87 @@ extern const struct xlat sg_io_flags[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat sg_io_flags[] = { +static const struct xlat_data sg_io_flags_xdata[] = { XLAT(SG_FLAG_DIRECT_IO), + #define XLAT_VAL_0 ((unsigned) (SG_FLAG_DIRECT_IO)) + #define XLAT_STR_0 STRINGIFY(SG_FLAG_DIRECT_IO) XLAT(SG_FLAG_UNUSED_LUN_INHIBIT), + #define XLAT_VAL_1 ((unsigned) (SG_FLAG_UNUSED_LUN_INHIBIT)) + #define XLAT_STR_1 STRINGIFY(SG_FLAG_UNUSED_LUN_INHIBIT) XLAT(SG_FLAG_MMAP_IO), + #define XLAT_VAL_2 ((unsigned) (SG_FLAG_MMAP_IO)) + #define XLAT_STR_2 STRINGIFY(SG_FLAG_MMAP_IO) XLAT(SG_FLAG_NO_DXFER), + #define XLAT_VAL_3 ((unsigned) (SG_FLAG_NO_DXFER)) + #define XLAT_STR_3 STRINGIFY(SG_FLAG_NO_DXFER) XLAT(SG_FLAG_Q_AT_TAIL), + #define XLAT_VAL_4 ((unsigned) (SG_FLAG_Q_AT_TAIL)) + #define XLAT_STR_4 STRINGIFY(SG_FLAG_Q_AT_TAIL) XLAT(SG_FLAG_Q_AT_HEAD), - XLAT_END + #define XLAT_VAL_5 ((unsigned) (SG_FLAG_Q_AT_HEAD)) + #define XLAT_STR_5 STRINGIFY(SG_FLAG_Q_AT_HEAD) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat sg_io_flags[1] = { { + .data = sg_io_flags_xdata, + .size = ARRAY_SIZE(sg_io_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sg_io_info.h b/xlat/sg_io_info.h index af88616d..c3ccf67a 100644 --- a/xlat/sg_io_info.h +++ b/xlat/sg_io_info.h @@ -29,13 +29,51 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # ifndef IN_MPERS -const struct xlat sg_io_info[] = { +static const struct xlat_data sg_io_info_xdata[] = { XLAT(SG_INFO_CHECK), + #define XLAT_VAL_0 ((unsigned) (SG_INFO_CHECK)) + #define XLAT_STR_0 STRINGIFY(SG_INFO_CHECK) XLAT(SG_INFO_DIRECT_IO), + #define XLAT_VAL_1 ((unsigned) (SG_INFO_DIRECT_IO)) + #define XLAT_STR_1 STRINGIFY(SG_INFO_DIRECT_IO) XLAT(SG_INFO_MIXED_IO), - XLAT_END + #define XLAT_VAL_2 ((unsigned) (SG_INFO_MIXED_IO)) + #define XLAT_STR_2 STRINGIFY(SG_INFO_MIXED_IO) }; +const struct xlat sg_io_info[1] = { { + .data = sg_io_info_xdata, + .size = ARRAY_SIZE(sg_io_info_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sg_scsi_reset.h b/xlat/sg_scsi_reset.h index e261fd53..60e3ce0b 100644 --- a/xlat/sg_scsi_reset.h +++ b/xlat/sg_scsi_reset.h @@ -54,17 +54,85 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat sg_scsi_reset[] = { +static const struct xlat_data sg_scsi_reset_xdata[] = { XLAT(SG_SCSI_RESET_NOTHING), + #define XLAT_VAL_0 ((unsigned) (SG_SCSI_RESET_NOTHING)) + #define XLAT_STR_0 STRINGIFY(SG_SCSI_RESET_NOTHING) XLAT(SG_SCSI_RESET_DEVICE), + #define XLAT_VAL_1 ((unsigned) (SG_SCSI_RESET_DEVICE)) + #define XLAT_STR_1 STRINGIFY(SG_SCSI_RESET_DEVICE) XLAT(SG_SCSI_RESET_BUS), + #define XLAT_VAL_2 ((unsigned) (SG_SCSI_RESET_BUS)) + #define XLAT_STR_2 STRINGIFY(SG_SCSI_RESET_BUS) XLAT(SG_SCSI_RESET_HOST), + #define XLAT_VAL_3 ((unsigned) (SG_SCSI_RESET_HOST)) + #define XLAT_STR_3 STRINGIFY(SG_SCSI_RESET_HOST) XLAT(SG_SCSI_RESET_TARGET), + #define XLAT_VAL_4 ((unsigned) (SG_SCSI_RESET_TARGET)) + #define XLAT_STR_4 STRINGIFY(SG_SCSI_RESET_TARGET) XLAT(SG_SCSI_RESET_NO_ESCALATE), - XLAT_END + #define XLAT_VAL_5 ((unsigned) (SG_SCSI_RESET_NO_ESCALATE)) + #define XLAT_STR_5 STRINGIFY(SG_SCSI_RESET_NO_ESCALATE) }; +static +const struct xlat sg_scsi_reset[1] = { { + .data = sg_scsi_reset_xdata, + .size = ARRAY_SIZE(sg_scsi_reset_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/shm_flags.h b/xlat/shm_flags.h index f7f5b38c..94722a65 100644 --- a/xlat/shm_flags.h +++ b/xlat/shm_flags.h @@ -3,6 +3,27 @@ #include "gcc_compat.h" #include "static_assert.h" +#if defined(SHM_RDONLY) || (defined(HAVE_DECL_SHM_RDONLY) && HAVE_DECL_SHM_RDONLY) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SHM_RDONLY) == (010000), "SHM_RDONLY != 010000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SHM_RDONLY 010000 +#endif +#if defined(SHM_RND) || (defined(HAVE_DECL_SHM_RND) && HAVE_DECL_SHM_RND) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SHM_RND) == (020000), "SHM_RND != 020000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SHM_RND 020000 +#endif +#if defined(SHM_REMAP) || (defined(HAVE_DECL_SHM_REMAP) && HAVE_DECL_SHM_REMAP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SHM_REMAP) == (040000), "SHM_REMAP != 040000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SHM_REMAP 040000 +#endif #if defined(SHM_EXEC) || (defined(HAVE_DECL_SHM_EXEC) && HAVE_DECL_SHM_EXEC) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((SHM_EXEC) == (0100000), "SHM_EXEC != 0100000"); @@ -19,21 +40,63 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat shm_flags[] = { -#if defined(SHM_RDONLY) || (defined(HAVE_DECL_SHM_RDONLY) && HAVE_DECL_SHM_RDONLY) - XLAT(SHM_RDONLY), -#endif -#if defined(SHM_RND) || (defined(HAVE_DECL_SHM_RND) && HAVE_DECL_SHM_RND) - XLAT(SHM_RND), -#endif -#if defined(SHM_REMAP) || (defined(HAVE_DECL_SHM_REMAP) && HAVE_DECL_SHM_REMAP) - XLAT(SHM_REMAP), -#endif +static const struct xlat_data shm_flags_xdata[] = { + XLAT(SHM_RDONLY), + #define XLAT_VAL_0 ((unsigned) (SHM_RDONLY)) + #define XLAT_STR_0 STRINGIFY(SHM_RDONLY) + XLAT(SHM_RND), + #define XLAT_VAL_1 ((unsigned) (SHM_RND)) + #define XLAT_STR_1 STRINGIFY(SHM_RND) + XLAT(SHM_REMAP), + #define XLAT_VAL_2 ((unsigned) (SHM_REMAP)) + #define XLAT_STR_2 STRINGIFY(SHM_REMAP) XLAT(SHM_EXEC), - XLAT_END + #define XLAT_VAL_3 ((unsigned) (SHM_EXEC)) + #define XLAT_STR_3 STRINGIFY(SHM_EXEC) }; +static +const struct xlat shm_flags[1] = { { + .data = shm_flags_xdata, + .size = ARRAY_SIZE(shm_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/shm_flags.in b/xlat/shm_flags.in index ef39382f..d93745b9 100644 --- a/xlat/shm_flags.in +++ b/xlat/shm_flags.in @@ -1,4 +1,4 @@ -SHM_RDONLY -SHM_RND -SHM_REMAP +SHM_RDONLY 010000 +SHM_RND 020000 +SHM_REMAP 040000 SHM_EXEC 0100000 diff --git a/xlat/shm_resource_flags.h b/xlat/shm_resource_flags.h index 6b703af1..6dcb20bf 100644 --- a/xlat/shm_resource_flags.h +++ b/xlat/shm_resource_flags.h @@ -3,6 +3,34 @@ #include "gcc_compat.h" #include "static_assert.h" +#if defined(IPC_CREAT) || (defined(HAVE_DECL_IPC_CREAT) && HAVE_DECL_IPC_CREAT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((IPC_CREAT) == (01000), "IPC_CREAT != 01000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define IPC_CREAT 01000 +#endif +#if defined(IPC_EXCL) || (defined(HAVE_DECL_IPC_EXCL) && HAVE_DECL_IPC_EXCL) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((IPC_EXCL) == (02000), "IPC_EXCL != 02000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define IPC_EXCL 02000 +#endif +#if defined(SHM_HUGETLB) || (defined(HAVE_DECL_SHM_HUGETLB) && HAVE_DECL_SHM_HUGETLB) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SHM_HUGETLB) == (04000), "SHM_HUGETLB != 04000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SHM_HUGETLB 04000 +#endif +#if defined(SHM_NORESERVE) || (defined(HAVE_DECL_SHM_NORESERVE) && HAVE_DECL_SHM_NORESERVE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SHM_NORESERVE) == (010000), "SHM_NORESERVE != 010000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SHM_NORESERVE 010000 +#endif #ifndef XLAT_MACROS_ONLY @@ -12,23 +40,63 @@ # else -static -const struct xlat shm_resource_flags[] = { -#if defined(IPC_CREAT) || (defined(HAVE_DECL_IPC_CREAT) && HAVE_DECL_IPC_CREAT) - XLAT(IPC_CREAT), -#endif -#if defined(IPC_EXCL) || (defined(HAVE_DECL_IPC_EXCL) && HAVE_DECL_IPC_EXCL) - XLAT(IPC_EXCL), -#endif -#if defined(SHM_HUGETLB) || (defined(HAVE_DECL_SHM_HUGETLB) && HAVE_DECL_SHM_HUGETLB) - XLAT(SHM_HUGETLB), -#endif -#if defined(SHM_NORESERVE) || (defined(HAVE_DECL_SHM_NORESERVE) && HAVE_DECL_SHM_NORESERVE) - XLAT(SHM_NORESERVE), -#endif - XLAT_END +static const struct xlat_data shm_resource_flags_xdata[] = { + XLAT(IPC_CREAT), + #define XLAT_VAL_0 ((unsigned) (IPC_CREAT)) + #define XLAT_STR_0 STRINGIFY(IPC_CREAT) + XLAT(IPC_EXCL), + #define XLAT_VAL_1 ((unsigned) (IPC_EXCL)) + #define XLAT_STR_1 STRINGIFY(IPC_EXCL) + XLAT(SHM_HUGETLB), + #define XLAT_VAL_2 ((unsigned) (SHM_HUGETLB)) + #define XLAT_STR_2 STRINGIFY(SHM_HUGETLB) + XLAT(SHM_NORESERVE), + #define XLAT_VAL_3 ((unsigned) (SHM_NORESERVE)) + #define XLAT_STR_3 STRINGIFY(SHM_NORESERVE) }; +static +const struct xlat shm_resource_flags[1] = { { + .data = shm_resource_flags_xdata, + .size = ARRAY_SIZE(shm_resource_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/shm_resource_flags.in b/xlat/shm_resource_flags.in index 1b07687e..30ace678 100644 --- a/xlat/shm_resource_flags.in +++ b/xlat/shm_resource_flags.in @@ -1,4 +1,4 @@ -IPC_CREAT -IPC_EXCL -SHM_HUGETLB -SHM_NORESERVE +IPC_CREAT 01000 +IPC_EXCL 02000 +SHM_HUGETLB 04000 +SHM_NORESERVE 010000 diff --git a/xlat/shmctl_flags.h b/xlat/shmctl_flags.h index 40ac3aef..fe73ebe8 100644 --- a/xlat/shmctl_flags.h +++ b/xlat/shmctl_flags.h @@ -75,23 +75,120 @@ extern const struct xlat shmctl_flags[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat shmctl_flags[] = { - +static const struct xlat_data shmctl_flags_xdata[] = { XLAT(IPC_RMID), + #define XLAT_VAL_0 ((unsigned) (IPC_RMID)) + #define XLAT_STR_0 STRINGIFY(IPC_RMID) XLAT(IPC_SET), + #define XLAT_VAL_1 ((unsigned) (IPC_SET)) + #define XLAT_STR_1 STRINGIFY(IPC_SET) XLAT(IPC_STAT), + #define XLAT_VAL_2 ((unsigned) (IPC_STAT)) + #define XLAT_STR_2 STRINGIFY(IPC_STAT) XLAT(IPC_INFO), + #define XLAT_VAL_3 ((unsigned) (IPC_INFO)) + #define XLAT_STR_3 STRINGIFY(IPC_INFO) XLAT(SHM_LOCK), + #define XLAT_VAL_4 ((unsigned) (SHM_LOCK)) + #define XLAT_STR_4 STRINGIFY(SHM_LOCK) XLAT(SHM_UNLOCK), + #define XLAT_VAL_5 ((unsigned) (SHM_UNLOCK)) + #define XLAT_STR_5 STRINGIFY(SHM_UNLOCK) XLAT(SHM_STAT), + #define XLAT_VAL_6 ((unsigned) (SHM_STAT)) + #define XLAT_STR_6 STRINGIFY(SHM_STAT) XLAT(SHM_INFO), + #define XLAT_VAL_7 ((unsigned) (SHM_INFO)) + #define XLAT_STR_7 STRINGIFY(SHM_INFO) XLAT(SHM_STAT_ANY), - XLAT_END + #define XLAT_VAL_8 ((unsigned) (SHM_STAT_ANY)) + #define XLAT_STR_8 STRINGIFY(SHM_STAT_ANY) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat shmctl_flags[1] = { { + .data = shmctl_flags_xdata, + .size = ARRAY_SIZE(shmctl_flags_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/shmctl_flags.in b/xlat/shmctl_flags.in index b7943064..8394a53e 100644 --- a/xlat/shmctl_flags.in +++ b/xlat/shmctl_flags.in @@ -1,4 +1,4 @@ -/* sort -k2,2g */ +#sorted sort -k2,2g IPC_RMID 0 IPC_SET 1 IPC_STAT 2 diff --git a/xlat/shutdown_modes.h b/xlat/shutdown_modes.h index 2662c369..4b68a226 100644 --- a/xlat/shutdown_modes.h +++ b/xlat/shutdown_modes.h @@ -33,14 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat shutdown_modes[] = { - XLAT(SHUT_RD), - XLAT(SHUT_WR), - XLAT(SHUT_RDWR), - XLAT_END +static const struct xlat_data shutdown_modes_xdata[] = { + [SHUT_RD] = XLAT(SHUT_RD), + #define XLAT_VAL_0 ((unsigned) (SHUT_RD)) + #define XLAT_STR_0 STRINGIFY(SHUT_RD) + [SHUT_WR] = XLAT(SHUT_WR), + #define XLAT_VAL_1 ((unsigned) (SHUT_WR)) + #define XLAT_STR_1 STRINGIFY(SHUT_WR) + [SHUT_RDWR] = XLAT(SHUT_RDWR), + #define XLAT_VAL_2 ((unsigned) (SHUT_RDWR)) + #define XLAT_STR_2 STRINGIFY(SHUT_RDWR) }; +static +const struct xlat shutdown_modes[1] = { { + .data = shutdown_modes_xdata, + .size = ARRAY_SIZE(shutdown_modes_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/shutdown_modes.in b/xlat/shutdown_modes.in index 29967116..da592b91 100644 --- a/xlat/shutdown_modes.in +++ b/xlat/shutdown_modes.in @@ -1,3 +1,4 @@ +#value_indexed SHUT_RD 0 SHUT_WR 1 SHUT_RDWR 2 diff --git a/xlat/sigact_flags.h b/xlat/sigact_flags.h index 14bb0128..dab6dcdf 100644 --- a/xlat/sigact_flags.h +++ b/xlat/sigact_flags.h @@ -16,63 +16,231 @@ # else -static -const struct xlat sigact_flags[] = { +static const struct xlat_data sigact_flags_xdata[] = { #if defined(SA_RESTORER) || (defined(HAVE_DECL_SA_RESTORER) && HAVE_DECL_SA_RESTORER) XLAT(SA_RESTORER), + #define XLAT_VAL_0 ((unsigned) (SA_RESTORER)) + #define XLAT_STR_0 STRINGIFY(SA_RESTORER) #endif #if defined(SA_ONSTACK) || (defined(HAVE_DECL_SA_ONSTACK) && HAVE_DECL_SA_ONSTACK) XLAT(SA_ONSTACK), + #define XLAT_VAL_1 ((unsigned) (SA_ONSTACK)) + #define XLAT_STR_1 STRINGIFY(SA_ONSTACK) #endif #if defined(SA_RESTART) || (defined(HAVE_DECL_SA_RESTART) && HAVE_DECL_SA_RESTART) XLAT(SA_RESTART), + #define XLAT_VAL_2 ((unsigned) (SA_RESTART)) + #define XLAT_STR_2 STRINGIFY(SA_RESTART) #endif #if defined(SA_INTERRUPT) || (defined(HAVE_DECL_SA_INTERRUPT) && HAVE_DECL_SA_INTERRUPT) XLAT(SA_INTERRUPT), + #define XLAT_VAL_3 ((unsigned) (SA_INTERRUPT)) + #define XLAT_STR_3 STRINGIFY(SA_INTERRUPT) #endif #if defined(SA_NODEFER) || (defined(HAVE_DECL_SA_NODEFER) && HAVE_DECL_SA_NODEFER) XLAT(SA_NODEFER), + #define XLAT_VAL_4 ((unsigned) (SA_NODEFER)) + #define XLAT_STR_4 STRINGIFY(SA_NODEFER) #endif #if defined SA_NOMASK && SA_NODEFER != SA_NOMASK #if defined(SA_NOMASK) || (defined(HAVE_DECL_SA_NOMASK) && HAVE_DECL_SA_NOMASK) XLAT(SA_NOMASK), + #define XLAT_VAL_5 ((unsigned) (SA_NOMASK)) + #define XLAT_STR_5 STRINGIFY(SA_NOMASK) #endif #endif #if defined(SA_RESETHAND) || (defined(HAVE_DECL_SA_RESETHAND) && HAVE_DECL_SA_RESETHAND) XLAT(SA_RESETHAND), + #define XLAT_VAL_6 ((unsigned) (SA_RESETHAND)) + #define XLAT_STR_6 STRINGIFY(SA_RESETHAND) #endif #if defined SA_ONESHOT && SA_ONESHOT != SA_RESETHAND #if defined(SA_ONESHOT) || (defined(HAVE_DECL_SA_ONESHOT) && HAVE_DECL_SA_ONESHOT) XLAT(SA_ONESHOT), + #define XLAT_VAL_7 ((unsigned) (SA_ONESHOT)) + #define XLAT_STR_7 STRINGIFY(SA_ONESHOT) #endif #endif #if defined(SA_SIGINFO) || (defined(HAVE_DECL_SA_SIGINFO) && HAVE_DECL_SA_SIGINFO) XLAT(SA_SIGINFO), + #define XLAT_VAL_8 ((unsigned) (SA_SIGINFO)) + #define XLAT_STR_8 STRINGIFY(SA_SIGINFO) #endif #if defined(SA_RESETHAND) || (defined(HAVE_DECL_SA_RESETHAND) && HAVE_DECL_SA_RESETHAND) XLAT(SA_RESETHAND), + #define XLAT_VAL_9 ((unsigned) (SA_RESETHAND)) + #define XLAT_STR_9 STRINGIFY(SA_RESETHAND) #endif #if defined(SA_ONSTACK) || (defined(HAVE_DECL_SA_ONSTACK) && HAVE_DECL_SA_ONSTACK) XLAT(SA_ONSTACK), + #define XLAT_VAL_10 ((unsigned) (SA_ONSTACK)) + #define XLAT_STR_10 STRINGIFY(SA_ONSTACK) #endif #if defined(SA_NODEFER) || (defined(HAVE_DECL_SA_NODEFER) && HAVE_DECL_SA_NODEFER) XLAT(SA_NODEFER), + #define XLAT_VAL_11 ((unsigned) (SA_NODEFER)) + #define XLAT_STR_11 STRINGIFY(SA_NODEFER) #endif #if defined(SA_NOCLDSTOP) || (defined(HAVE_DECL_SA_NOCLDSTOP) && HAVE_DECL_SA_NOCLDSTOP) XLAT(SA_NOCLDSTOP), + #define XLAT_VAL_12 ((unsigned) (SA_NOCLDSTOP)) + #define XLAT_STR_12 STRINGIFY(SA_NOCLDSTOP) #endif #if defined(SA_NOCLDWAIT) || (defined(HAVE_DECL_SA_NOCLDWAIT) && HAVE_DECL_SA_NOCLDWAIT) XLAT(SA_NOCLDWAIT), + #define XLAT_VAL_13 ((unsigned) (SA_NOCLDWAIT)) + #define XLAT_STR_13 STRINGIFY(SA_NOCLDWAIT) #endif #if defined(_SA_BSDCALL) || (defined(HAVE_DECL__SA_BSDCALL) && HAVE_DECL__SA_BSDCALL) XLAT(_SA_BSDCALL), + #define XLAT_VAL_14 ((unsigned) (_SA_BSDCALL)) + #define XLAT_STR_14 STRINGIFY(_SA_BSDCALL) #endif #if defined(SA_NOPTRACE) || (defined(HAVE_DECL_SA_NOPTRACE) && HAVE_DECL_SA_NOPTRACE) XLAT(SA_NOPTRACE), + #define XLAT_VAL_15 ((unsigned) (SA_NOPTRACE)) + #define XLAT_STR_15 STRINGIFY(SA_NOPTRACE) #endif - XLAT_END }; +static +const struct xlat sigact_flags[1] = { { + .data = sigact_flags_xdata, + .size = ARRAY_SIZE(sigact_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sigaltstack_flags.h b/xlat/sigaltstack_flags.h index 68359b45..8fcd6236 100644 --- a/xlat/sigaltstack_flags.h +++ b/xlat/sigaltstack_flags.h @@ -33,16 +33,54 @@ extern const struct xlat sigaltstack_flags[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat sigaltstack_flags[] = { +static const struct xlat_data sigaltstack_flags_xdata[] = { XLAT(SS_ONSTACK), + #define XLAT_VAL_0 ((unsigned) (SS_ONSTACK)) + #define XLAT_STR_0 STRINGIFY(SS_ONSTACK) XLAT(SS_DISABLE), + #define XLAT_VAL_1 ((unsigned) (SS_DISABLE)) + #define XLAT_STR_1 STRINGIFY(SS_DISABLE) XLAT(SS_AUTODISARM), - XLAT_END + #define XLAT_VAL_2 ((unsigned) (SS_AUTODISARM)) + #define XLAT_STR_2 STRINGIFY(SS_AUTODISARM) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat sigaltstack_flags[1] = { { + .data = sigaltstack_flags_xdata, + .size = ARRAY_SIZE(sigaltstack_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sigbus_codes.h b/xlat/sigbus_codes.h index 42123568..3054049f 100644 --- a/xlat/sigbus_codes.h +++ b/xlat/sigbus_codes.h @@ -47,21 +47,89 @@ extern const struct xlat sigbus_codes[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat sigbus_codes[] = { +static const struct xlat_data sigbus_codes_xdata[] = { XLAT(BUS_ADRALN), + #define XLAT_VAL_0 ((unsigned) (BUS_ADRALN)) + #define XLAT_STR_0 STRINGIFY(BUS_ADRALN) XLAT(BUS_ADRERR), + #define XLAT_VAL_1 ((unsigned) (BUS_ADRERR)) + #define XLAT_STR_1 STRINGIFY(BUS_ADRERR) XLAT(BUS_OBJERR), + #define XLAT_VAL_2 ((unsigned) (BUS_OBJERR)) + #define XLAT_STR_2 STRINGIFY(BUS_OBJERR) #if defined(BUS_OPFETCH) || (defined(HAVE_DECL_BUS_OPFETCH) && HAVE_DECL_BUS_OPFETCH) XLAT(BUS_OPFETCH), + #define XLAT_VAL_3 ((unsigned) (BUS_OPFETCH)) + #define XLAT_STR_3 STRINGIFY(BUS_OPFETCH) #endif XLAT(BUS_MCEERR_AR), + #define XLAT_VAL_4 ((unsigned) (BUS_MCEERR_AR)) + #define XLAT_STR_4 STRINGIFY(BUS_MCEERR_AR) XLAT(BUS_MCEERR_AO), - XLAT_END + #define XLAT_VAL_5 ((unsigned) (BUS_MCEERR_AO)) + #define XLAT_STR_5 STRINGIFY(BUS_MCEERR_AO) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat sigbus_codes[1] = { { + .data = sigbus_codes_xdata, + .size = ARRAY_SIZE(sigbus_codes_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sigchld_codes.h b/xlat/sigchld_codes.h index 515eb2cd..4847f463 100644 --- a/xlat/sigchld_codes.h +++ b/xlat/sigchld_codes.h @@ -54,19 +54,87 @@ extern const struct xlat sigchld_codes[]; # else +static const struct xlat_data sigchld_codes_xdata[] = { + [CLD_EXITED] = XLAT(CLD_EXITED), + #define XLAT_VAL_0 ((unsigned) (CLD_EXITED)) + #define XLAT_STR_0 STRINGIFY(CLD_EXITED) + [CLD_KILLED] = XLAT(CLD_KILLED), + #define XLAT_VAL_1 ((unsigned) (CLD_KILLED)) + #define XLAT_STR_1 STRINGIFY(CLD_KILLED) + [CLD_DUMPED] = XLAT(CLD_DUMPED), + #define XLAT_VAL_2 ((unsigned) (CLD_DUMPED)) + #define XLAT_STR_2 STRINGIFY(CLD_DUMPED) + [CLD_TRAPPED] = XLAT(CLD_TRAPPED), + #define XLAT_VAL_3 ((unsigned) (CLD_TRAPPED)) + #define XLAT_STR_3 STRINGIFY(CLD_TRAPPED) + [CLD_STOPPED] = XLAT(CLD_STOPPED), + #define XLAT_VAL_4 ((unsigned) (CLD_STOPPED)) + #define XLAT_STR_4 STRINGIFY(CLD_STOPPED) + [CLD_CONTINUED] = XLAT(CLD_CONTINUED), + #define XLAT_VAL_5 ((unsigned) (CLD_CONTINUED)) + #define XLAT_STR_5 STRINGIFY(CLD_CONTINUED) +}; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static # endif -const struct xlat sigchld_codes[] = { - XLAT(CLD_EXITED), - XLAT(CLD_KILLED), - XLAT(CLD_DUMPED), - XLAT(CLD_TRAPPED), - XLAT(CLD_STOPPED), - XLAT(CLD_CONTINUED), - XLAT_END -}; +const struct xlat sigchld_codes[1] = { { + .data = sigchld_codes_xdata, + .size = ARRAY_SIZE(sigchld_codes_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sigchld_codes.in b/xlat/sigchld_codes.in index 202bec44..a919bbae 100644 --- a/xlat/sigchld_codes.in +++ b/xlat/sigchld_codes.in @@ -1,3 +1,4 @@ +#value_indexed CLD_EXITED 1 CLD_KILLED 2 CLD_DUMPED 3 diff --git a/xlat/sigemt_codes.h b/xlat/sigemt_codes.h index 0938327d..1355e64e 100644 --- a/xlat/sigemt_codes.h +++ b/xlat/sigemt_codes.h @@ -19,14 +19,32 @@ extern const struct xlat sigemt_codes[]; # else +static const struct xlat_data sigemt_codes_xdata[] = { + XLAT(EMT_TAGOVF), + #define XLAT_VAL_0 ((unsigned) (EMT_TAGOVF)) + #define XLAT_STR_0 STRINGIFY(EMT_TAGOVF) +}; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static # endif -const struct xlat sigemt_codes[] = { - XLAT(EMT_TAGOVF), - XLAT_END -}; +const struct xlat sigemt_codes[1] = { { + .data = sigemt_codes_xdata, + .size = ARRAY_SIZE(sigemt_codes_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sigev_value.h b/xlat/sigev_value.h index c9069d57..1a6d1192 100644 --- a/xlat/sigev_value.h +++ b/xlat/sigev_value.h @@ -40,17 +40,65 @@ extern const struct xlat sigev_value[]; # else +static const struct xlat_data sigev_value_xdata[] = { + [SIGEV_SIGNAL] = XLAT(SIGEV_SIGNAL), + #define XLAT_VAL_0 ((unsigned) (SIGEV_SIGNAL)) + #define XLAT_STR_0 STRINGIFY(SIGEV_SIGNAL) + [SIGEV_NONE] = XLAT(SIGEV_NONE), + #define XLAT_VAL_1 ((unsigned) (SIGEV_NONE)) + #define XLAT_STR_1 STRINGIFY(SIGEV_NONE) + [SIGEV_THREAD] = XLAT(SIGEV_THREAD), + #define XLAT_VAL_2 ((unsigned) (SIGEV_THREAD)) + #define XLAT_STR_2 STRINGIFY(SIGEV_THREAD) + [SIGEV_THREAD_ID] = XLAT(SIGEV_THREAD_ID), + #define XLAT_VAL_3 ((unsigned) (SIGEV_THREAD_ID)) + #define XLAT_STR_3 STRINGIFY(SIGEV_THREAD_ID) +}; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static # endif -const struct xlat sigev_value[] = { - XLAT(SIGEV_SIGNAL), - XLAT(SIGEV_NONE), - XLAT(SIGEV_THREAD), - XLAT(SIGEV_THREAD_ID), - XLAT_END -}; +const struct xlat sigev_value[1] = { { + .data = sigev_value_xdata, + .size = ARRAY_SIZE(sigev_value_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sigev_value.in b/xlat/sigev_value.in index d09806bb..961d0ec7 100644 --- a/xlat/sigev_value.in +++ b/xlat/sigev_value.in @@ -1,3 +1,4 @@ +#value_indexed SIGEV_SIGNAL 0 SIGEV_NONE 1 SIGEV_THREAD 2 diff --git a/xlat/sigfpe_codes.h b/xlat/sigfpe_codes.h index eab8237d..4724e92c 100644 --- a/xlat/sigfpe_codes.h +++ b/xlat/sigfpe_codes.h @@ -82,41 +82,209 @@ extern const struct xlat sigfpe_codes[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat sigfpe_codes[] = { +static const struct xlat_data sigfpe_codes_xdata[] = { XLAT(FPE_INTDIV), + #define XLAT_VAL_0 ((unsigned) (FPE_INTDIV)) + #define XLAT_STR_0 STRINGIFY(FPE_INTDIV) XLAT(FPE_INTOVF), + #define XLAT_VAL_1 ((unsigned) (FPE_INTOVF)) + #define XLAT_STR_1 STRINGIFY(FPE_INTOVF) XLAT(FPE_FLTDIV), + #define XLAT_VAL_2 ((unsigned) (FPE_FLTDIV)) + #define XLAT_STR_2 STRINGIFY(FPE_FLTDIV) XLAT(FPE_FLTOVF), + #define XLAT_VAL_3 ((unsigned) (FPE_FLTOVF)) + #define XLAT_STR_3 STRINGIFY(FPE_FLTOVF) XLAT(FPE_FLTUND), + #define XLAT_VAL_4 ((unsigned) (FPE_FLTUND)) + #define XLAT_STR_4 STRINGIFY(FPE_FLTUND) XLAT(FPE_FLTRES), + #define XLAT_VAL_5 ((unsigned) (FPE_FLTRES)) + #define XLAT_STR_5 STRINGIFY(FPE_FLTRES) XLAT(FPE_FLTINV), + #define XLAT_VAL_6 ((unsigned) (FPE_FLTINV)) + #define XLAT_STR_6 STRINGIFY(FPE_FLTINV) XLAT(FPE_FLTSUB), + #define XLAT_VAL_7 ((unsigned) (FPE_FLTSUB)) + #define XLAT_STR_7 STRINGIFY(FPE_FLTSUB) #if defined(FPE_MDAOVF) || (defined(HAVE_DECL_FPE_MDAOVF) && HAVE_DECL_FPE_MDAOVF) XLAT(FPE_MDAOVF), + #define XLAT_VAL_8 ((unsigned) (FPE_MDAOVF)) + #define XLAT_STR_8 STRINGIFY(FPE_MDAOVF) #endif #if defined(__FPE_DECOVF) || (defined(HAVE_DECL___FPE_DECOVF) && HAVE_DECL___FPE_DECOVF) XLAT(__FPE_DECOVF), + #define XLAT_VAL_9 ((unsigned) (__FPE_DECOVF)) + #define XLAT_STR_9 STRINGIFY(__FPE_DECOVF) #endif #if defined(__FPE_DECDIV) || (defined(HAVE_DECL___FPE_DECDIV) && HAVE_DECL___FPE_DECDIV) XLAT(__FPE_DECDIV), + #define XLAT_VAL_10 ((unsigned) (__FPE_DECDIV)) + #define XLAT_STR_10 STRINGIFY(__FPE_DECDIV) #endif #if defined(__FPE_DECERR) || (defined(HAVE_DECL___FPE_DECERR) && HAVE_DECL___FPE_DECERR) XLAT(__FPE_DECERR), + #define XLAT_VAL_11 ((unsigned) (__FPE_DECERR)) + #define XLAT_STR_11 STRINGIFY(__FPE_DECERR) #endif #if defined(__FPE_INVASC) || (defined(HAVE_DECL___FPE_INVASC) && HAVE_DECL___FPE_INVASC) XLAT(__FPE_INVASC), + #define XLAT_VAL_12 ((unsigned) (__FPE_INVASC)) + #define XLAT_STR_12 STRINGIFY(__FPE_INVASC) #endif #if defined(__FPE_INVDEC) || (defined(HAVE_DECL___FPE_INVDEC) && HAVE_DECL___FPE_INVDEC) XLAT(__FPE_INVDEC), + #define XLAT_VAL_13 ((unsigned) (__FPE_INVDEC)) + #define XLAT_STR_13 STRINGIFY(__FPE_INVDEC) #endif XLAT(FPE_FLTUNK), + #define XLAT_VAL_14 ((unsigned) (FPE_FLTUNK)) + #define XLAT_STR_14 STRINGIFY(FPE_FLTUNK) XLAT(FPE_CONDTRAP), - XLAT_END + #define XLAT_VAL_15 ((unsigned) (FPE_CONDTRAP)) + #define XLAT_STR_15 STRINGIFY(FPE_CONDTRAP) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat sigfpe_codes[1] = { { + .data = sigfpe_codes_xdata, + .size = ARRAY_SIZE(sigfpe_codes_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sigill_codes.h b/xlat/sigill_codes.h index 74eaea09..e5f39201 100644 --- a/xlat/sigill_codes.h +++ b/xlat/sigill_codes.h @@ -68,51 +68,239 @@ extern const struct xlat sigill_codes[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat sigill_codes[] = { +static const struct xlat_data sigill_codes_xdata[] = { XLAT(ILL_ILLOPC), + #define XLAT_VAL_0 ((unsigned) (ILL_ILLOPC)) + #define XLAT_STR_0 STRINGIFY(ILL_ILLOPC) #if defined(ILL_ILLPARAOP) || (defined(HAVE_DECL_ILL_ILLPARAOP) && HAVE_DECL_ILL_ILLPARAOP) XLAT(ILL_ILLPARAOP), + #define XLAT_VAL_1 ((unsigned) (ILL_ILLPARAOP)) + #define XLAT_STR_1 STRINGIFY(ILL_ILLPARAOP) #endif XLAT(ILL_ILLOPN), + #define XLAT_VAL_2 ((unsigned) (ILL_ILLOPN)) + #define XLAT_STR_2 STRINGIFY(ILL_ILLOPN) XLAT(ILL_ILLADR), + #define XLAT_VAL_3 ((unsigned) (ILL_ILLADR)) + #define XLAT_STR_3 STRINGIFY(ILL_ILLADR) #if defined(ILL_ILLEXCPT) || (defined(HAVE_DECL_ILL_ILLEXCPT) && HAVE_DECL_ILL_ILLEXCPT) XLAT(ILL_ILLEXCPT), + #define XLAT_VAL_4 ((unsigned) (ILL_ILLEXCPT)) + #define XLAT_STR_4 STRINGIFY(ILL_ILLEXCPT) #endif XLAT(ILL_ILLTRP), + #define XLAT_VAL_5 ((unsigned) (ILL_ILLTRP)) + #define XLAT_STR_5 STRINGIFY(ILL_ILLTRP) XLAT(ILL_PRVOPC), + #define XLAT_VAL_6 ((unsigned) (ILL_PRVOPC)) + #define XLAT_STR_6 STRINGIFY(ILL_PRVOPC) XLAT(ILL_PRVREG), + #define XLAT_VAL_7 ((unsigned) (ILL_PRVREG)) + #define XLAT_STR_7 STRINGIFY(ILL_PRVREG) XLAT(ILL_COPROC), + #define XLAT_VAL_8 ((unsigned) (ILL_COPROC)) + #define XLAT_STR_8 STRINGIFY(ILL_COPROC) XLAT(ILL_BADSTK), + #define XLAT_VAL_9 ((unsigned) (ILL_BADSTK)) + #define XLAT_STR_9 STRINGIFY(ILL_BADSTK) #if defined(ILL_CPLB_VI) || (defined(HAVE_DECL_ILL_CPLB_VI) && HAVE_DECL_ILL_CPLB_VI) XLAT(ILL_CPLB_VI), + #define XLAT_VAL_10 ((unsigned) (ILL_CPLB_VI)) + #define XLAT_STR_10 STRINGIFY(ILL_CPLB_VI) #endif #if defined(ILL_CPLB_MISS) || (defined(HAVE_DECL_ILL_CPLB_MISS) && HAVE_DECL_ILL_CPLB_MISS) XLAT(ILL_CPLB_MISS), + #define XLAT_VAL_11 ((unsigned) (ILL_CPLB_MISS)) + #define XLAT_STR_11 STRINGIFY(ILL_CPLB_MISS) #endif #if defined(ILL_CPLB_MULHIT) || (defined(HAVE_DECL_ILL_CPLB_MULHIT) && HAVE_DECL_ILL_CPLB_MULHIT) XLAT(ILL_CPLB_MULHIT), + #define XLAT_VAL_12 ((unsigned) (ILL_CPLB_MULHIT)) + #define XLAT_STR_12 STRINGIFY(ILL_CPLB_MULHIT) #endif #if defined(ILL_DBLFLT) || (defined(HAVE_DECL_ILL_DBLFLT) && HAVE_DECL_ILL_DBLFLT) XLAT(ILL_DBLFLT), + #define XLAT_VAL_13 ((unsigned) (ILL_DBLFLT)) + #define XLAT_STR_13 STRINGIFY(ILL_DBLFLT) #endif #if defined(ILL_HARDWALL) || (defined(HAVE_DECL_ILL_HARDWALL) && HAVE_DECL_ILL_HARDWALL) XLAT(ILL_HARDWALL), + #define XLAT_VAL_14 ((unsigned) (ILL_HARDWALL)) + #define XLAT_STR_14 STRINGIFY(ILL_HARDWALL) #endif #if defined(ILL_BADIADDR) || (defined(HAVE_DECL_ILL_BADIADDR) && HAVE_DECL_ILL_BADIADDR) XLAT(ILL_BADIADDR), + #define XLAT_VAL_15 ((unsigned) (ILL_BADIADDR)) + #define XLAT_STR_15 STRINGIFY(ILL_BADIADDR) #endif #if defined(__ILL_BREAK) || (defined(HAVE_DECL___ILL_BREAK) && HAVE_DECL___ILL_BREAK) XLAT(__ILL_BREAK), + #define XLAT_VAL_16 ((unsigned) (__ILL_BREAK)) + #define XLAT_STR_16 STRINGIFY(__ILL_BREAK) #endif #if defined(__ILL_BNDMOD) || (defined(HAVE_DECL___ILL_BNDMOD) && HAVE_DECL___ILL_BNDMOD) XLAT(__ILL_BNDMOD), + #define XLAT_VAL_17 ((unsigned) (__ILL_BNDMOD)) + #define XLAT_STR_17 STRINGIFY(__ILL_BNDMOD) #endif - XLAT_END }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat sigill_codes[1] = { { + .data = sigill_codes_xdata, + .size = ARRAY_SIZE(sigill_codes_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/siginfo_codes.h b/xlat/siginfo_codes.h index 74c577b2..6ab41f47 100644 --- a/xlat/siginfo_codes.h +++ b/xlat/siginfo_codes.h @@ -115,35 +115,183 @@ extern const struct xlat siginfo_codes[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat siginfo_codes[] = { +static const struct xlat_data siginfo_codes_xdata[] = { XLAT(SI_USER), + #define XLAT_VAL_0 ((unsigned) (SI_USER)) + #define XLAT_STR_0 STRINGIFY(SI_USER) XLAT(SI_KERNEL), + #define XLAT_VAL_1 ((unsigned) (SI_KERNEL)) + #define XLAT_STR_1 STRINGIFY(SI_KERNEL) XLAT(SI_QUEUE), + #define XLAT_VAL_2 ((unsigned) (SI_QUEUE)) + #define XLAT_STR_2 STRINGIFY(SI_QUEUE) #ifdef __mips__ XLAT(SI_ASYNCIO), + #define XLAT_VAL_3 ((unsigned) (SI_ASYNCIO)) + #define XLAT_STR_3 STRINGIFY(SI_ASYNCIO) XLAT(SI_TIMER), + #define XLAT_VAL_4 ((unsigned) (SI_TIMER)) + #define XLAT_STR_4 STRINGIFY(SI_TIMER) XLAT(SI_MESGQ), + #define XLAT_VAL_5 ((unsigned) (SI_MESGQ)) + #define XLAT_STR_5 STRINGIFY(SI_MESGQ) #else XLAT(SI_TIMER), + #define XLAT_VAL_6 ((unsigned) (SI_TIMER)) + #define XLAT_STR_6 STRINGIFY(SI_TIMER) XLAT(SI_MESGQ), + #define XLAT_VAL_7 ((unsigned) (SI_MESGQ)) + #define XLAT_STR_7 STRINGIFY(SI_MESGQ) XLAT(SI_ASYNCIO), + #define XLAT_VAL_8 ((unsigned) (SI_ASYNCIO)) + #define XLAT_STR_8 STRINGIFY(SI_ASYNCIO) #endif XLAT(SI_SIGIO), + #define XLAT_VAL_9 ((unsigned) (SI_SIGIO)) + #define XLAT_STR_9 STRINGIFY(SI_SIGIO) XLAT(SI_TKILL), + #define XLAT_VAL_10 ((unsigned) (SI_TKILL)) + #define XLAT_STR_10 STRINGIFY(SI_TKILL) XLAT(SI_DETHREAD), + #define XLAT_VAL_11 ((unsigned) (SI_DETHREAD)) + #define XLAT_STR_11 STRINGIFY(SI_DETHREAD) XLAT(SI_ASYNCNL), + #define XLAT_VAL_12 ((unsigned) (SI_ASYNCNL)) + #define XLAT_STR_12 STRINGIFY(SI_ASYNCNL) #ifdef __sparc__ XLAT(SI_NOINFO), + #define XLAT_VAL_13 ((unsigned) (SI_NOINFO)) + #define XLAT_STR_13 STRINGIFY(SI_NOINFO) #endif - XLAT_END }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat siginfo_codes[1] = { { + .data = siginfo_codes_xdata, + .size = ARRAY_SIZE(siginfo_codes_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sigpoll_codes.h b/xlat/sigpoll_codes.h index 5e9f08b7..52d6b7d5 100644 --- a/xlat/sigpoll_codes.h +++ b/xlat/sigpoll_codes.h @@ -54,19 +54,87 @@ extern const struct xlat sigpoll_codes[]; # else +static const struct xlat_data sigpoll_codes_xdata[] = { + [POLL_IN] = XLAT(POLL_IN), + #define XLAT_VAL_0 ((unsigned) (POLL_IN)) + #define XLAT_STR_0 STRINGIFY(POLL_IN) + [POLL_OUT] = XLAT(POLL_OUT), + #define XLAT_VAL_1 ((unsigned) (POLL_OUT)) + #define XLAT_STR_1 STRINGIFY(POLL_OUT) + [POLL_MSG] = XLAT(POLL_MSG), + #define XLAT_VAL_2 ((unsigned) (POLL_MSG)) + #define XLAT_STR_2 STRINGIFY(POLL_MSG) + [POLL_ERR] = XLAT(POLL_ERR), + #define XLAT_VAL_3 ((unsigned) (POLL_ERR)) + #define XLAT_STR_3 STRINGIFY(POLL_ERR) + [POLL_PRI] = XLAT(POLL_PRI), + #define XLAT_VAL_4 ((unsigned) (POLL_PRI)) + #define XLAT_STR_4 STRINGIFY(POLL_PRI) + [POLL_HUP] = XLAT(POLL_HUP), + #define XLAT_VAL_5 ((unsigned) (POLL_HUP)) + #define XLAT_STR_5 STRINGIFY(POLL_HUP) +}; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static # endif -const struct xlat sigpoll_codes[] = { - XLAT(POLL_IN), - XLAT(POLL_OUT), - XLAT(POLL_MSG), - XLAT(POLL_ERR), - XLAT(POLL_PRI), - XLAT(POLL_HUP), - XLAT_END -}; +const struct xlat sigpoll_codes[1] = { { + .data = sigpoll_codes_xdata, + .size = ARRAY_SIZE(sigpoll_codes_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sigpoll_codes.in b/xlat/sigpoll_codes.in index 00c2a1b7..a5471678 100644 --- a/xlat/sigpoll_codes.in +++ b/xlat/sigpoll_codes.in @@ -1,3 +1,4 @@ +#value_indexed POLL_IN 1 POLL_OUT 2 POLL_MSG 3 diff --git a/xlat/sigprocmaskcmds.h b/xlat/sigprocmaskcmds.h index 02df7057..250c7b12 100644 --- a/xlat/sigprocmaskcmds.h +++ b/xlat/sigprocmaskcmds.h @@ -12,23 +12,71 @@ # else -static -const struct xlat sigprocmaskcmds[] = { +static const struct xlat_data sigprocmaskcmds_xdata[] = { #if defined(SIG_BLOCK) || (defined(HAVE_DECL_SIG_BLOCK) && HAVE_DECL_SIG_BLOCK) XLAT(SIG_BLOCK), + #define XLAT_VAL_0 ((unsigned) (SIG_BLOCK)) + #define XLAT_STR_0 STRINGIFY(SIG_BLOCK) #endif #if defined(SIG_UNBLOCK) || (defined(HAVE_DECL_SIG_UNBLOCK) && HAVE_DECL_SIG_UNBLOCK) XLAT(SIG_UNBLOCK), + #define XLAT_VAL_1 ((unsigned) (SIG_UNBLOCK)) + #define XLAT_STR_1 STRINGIFY(SIG_UNBLOCK) #endif #if defined(SIG_SETMASK) || (defined(HAVE_DECL_SIG_SETMASK) && HAVE_DECL_SIG_SETMASK) XLAT(SIG_SETMASK), + #define XLAT_VAL_2 ((unsigned) (SIG_SETMASK)) + #define XLAT_STR_2 STRINGIFY(SIG_SETMASK) #endif #if defined(SIG_SETMASK32) || (defined(HAVE_DECL_SIG_SETMASK32) && HAVE_DECL_SIG_SETMASK32) XLAT(SIG_SETMASK32), + #define XLAT_VAL_3 ((unsigned) (SIG_SETMASK32)) + #define XLAT_STR_3 STRINGIFY(SIG_SETMASK32) #endif - XLAT_END }; +static +const struct xlat sigprocmaskcmds[1] = { { + .data = sigprocmaskcmds_xdata, + .size = ARRAY_SIZE(sigprocmaskcmds_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sigprof_codes.h b/xlat/sigprof_codes.h index 6776434a..65614dc2 100644 --- a/xlat/sigprof_codes.h +++ b/xlat/sigprof_codes.h @@ -12,16 +12,34 @@ extern const struct xlat sigprof_codes[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat sigprof_codes[] = { +static const struct xlat_data sigprof_codes_xdata[] = { #if defined(PROF_SIG) || (defined(HAVE_DECL_PROF_SIG) && HAVE_DECL_PROF_SIG) XLAT(PROF_SIG), + #define XLAT_VAL_0 ((unsigned) (PROF_SIG)) + #define XLAT_STR_0 STRINGIFY(PROF_SIG) #endif - XLAT_END }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat sigprof_codes[1] = { { + .data = sigprof_codes_xdata, + .size = ARRAY_SIZE(sigprof_codes_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sigsegv_codes.h b/xlat/sigsegv_codes.h index 64fbc794..d0fb464f 100644 --- a/xlat/sigsegv_codes.h +++ b/xlat/sigsegv_codes.h @@ -61,26 +61,124 @@ extern const struct xlat sigsegv_codes[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat sigsegv_codes[] = { +static const struct xlat_data sigsegv_codes_xdata[] = { XLAT(SEGV_MAPERR), + #define XLAT_VAL_0 ((unsigned) (SEGV_MAPERR)) + #define XLAT_STR_0 STRINGIFY(SEGV_MAPERR) XLAT(SEGV_ACCERR), + #define XLAT_VAL_1 ((unsigned) (SEGV_ACCERR)) + #define XLAT_STR_1 STRINGIFY(SEGV_ACCERR) #if defined(SEGV_STACKFLOW) || (defined(HAVE_DECL_SEGV_STACKFLOW) && HAVE_DECL_SEGV_STACKFLOW) XLAT(SEGV_STACKFLOW), + #define XLAT_VAL_2 ((unsigned) (SEGV_STACKFLOW)) + #define XLAT_STR_2 STRINGIFY(SEGV_STACKFLOW) #endif XLAT(SEGV_BNDERR), + #define XLAT_VAL_3 ((unsigned) (SEGV_BNDERR)) + #define XLAT_STR_3 STRINGIFY(SEGV_BNDERR) #if defined(__SEGV_PSTKOVF) || (defined(HAVE_DECL___SEGV_PSTKOVF) && HAVE_DECL___SEGV_PSTKOVF) XLAT(__SEGV_PSTKOVF), + #define XLAT_VAL_4 ((unsigned) (__SEGV_PSTKOVF)) + #define XLAT_STR_4 STRINGIFY(__SEGV_PSTKOVF) #endif XLAT(SEGV_PKUERR), + #define XLAT_VAL_5 ((unsigned) (SEGV_PKUERR)) + #define XLAT_STR_5 STRINGIFY(SEGV_PKUERR) XLAT(SEGV_ACCADI), + #define XLAT_VAL_6 ((unsigned) (SEGV_ACCADI)) + #define XLAT_STR_6 STRINGIFY(SEGV_ACCADI) XLAT(SEGV_ADIDERR), + #define XLAT_VAL_7 ((unsigned) (SEGV_ADIDERR)) + #define XLAT_STR_7 STRINGIFY(SEGV_ADIDERR) XLAT(SEGV_ADIPERR), - XLAT_END + #define XLAT_VAL_8 ((unsigned) (SEGV_ADIPERR)) + #define XLAT_STR_8 STRINGIFY(SEGV_ADIPERR) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat sigsegv_codes[1] = { { + .data = sigsegv_codes_xdata, + .size = ARRAY_SIZE(sigsegv_codes_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sigsys_codes.h b/xlat/sigsys_codes.h index 45397403..8d7da331 100644 --- a/xlat/sigsys_codes.h +++ b/xlat/sigsys_codes.h @@ -19,14 +19,32 @@ extern const struct xlat sigsys_codes[]; # else +static const struct xlat_data sigsys_codes_xdata[] = { + XLAT(SYS_SECCOMP), + #define XLAT_VAL_0 ((unsigned) (SYS_SECCOMP)) + #define XLAT_STR_0 STRINGIFY(SYS_SECCOMP) +}; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static # endif -const struct xlat sigsys_codes[] = { - XLAT(SYS_SECCOMP), - XLAT_END -}; +const struct xlat sigsys_codes[1] = { { + .data = sigsys_codes_xdata, + .size = ARRAY_SIZE(sigsys_codes_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sigtrap_codes.h b/xlat/sigtrap_codes.h index e13233ff..fe82a416 100644 --- a/xlat/sigtrap_codes.h +++ b/xlat/sigtrap_codes.h @@ -47,30 +47,128 @@ extern const struct xlat sigtrap_codes[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat sigtrap_codes[] = { +static const struct xlat_data sigtrap_codes_xdata[] = { #if defined(TRAP_STEP) || (defined(HAVE_DECL_TRAP_STEP) && HAVE_DECL_TRAP_STEP) XLAT(TRAP_STEP), + #define XLAT_VAL_0 ((unsigned) (TRAP_STEP)) + #define XLAT_STR_0 STRINGIFY(TRAP_STEP) #endif XLAT(TRAP_BRKPT), + #define XLAT_VAL_1 ((unsigned) (TRAP_BRKPT)) + #define XLAT_STR_1 STRINGIFY(TRAP_BRKPT) #if defined(TRAP_TRACEFLOW) || (defined(HAVE_DECL_TRAP_TRACEFLOW) && HAVE_DECL_TRAP_TRACEFLOW) XLAT(TRAP_TRACEFLOW), + #define XLAT_VAL_2 ((unsigned) (TRAP_TRACEFLOW)) + #define XLAT_STR_2 STRINGIFY(TRAP_TRACEFLOW) #endif XLAT(TRAP_TRACE), + #define XLAT_VAL_3 ((unsigned) (TRAP_TRACE)) + #define XLAT_STR_3 STRINGIFY(TRAP_TRACE) #if defined(TRAP_WATCHPT) || (defined(HAVE_DECL_TRAP_WATCHPT) && HAVE_DECL_TRAP_WATCHPT) XLAT(TRAP_WATCHPT), + #define XLAT_VAL_4 ((unsigned) (TRAP_WATCHPT)) + #define XLAT_STR_4 STRINGIFY(TRAP_WATCHPT) #endif XLAT(TRAP_BRANCH), + #define XLAT_VAL_5 ((unsigned) (TRAP_BRANCH)) + #define XLAT_STR_5 STRINGIFY(TRAP_BRANCH) #if defined(TRAP_ILLTRAP) || (defined(HAVE_DECL_TRAP_ILLTRAP) && HAVE_DECL_TRAP_ILLTRAP) XLAT(TRAP_ILLTRAP), + #define XLAT_VAL_6 ((unsigned) (TRAP_ILLTRAP)) + #define XLAT_STR_6 STRINGIFY(TRAP_ILLTRAP) #endif XLAT(TRAP_HWBKPT), + #define XLAT_VAL_7 ((unsigned) (TRAP_HWBKPT)) + #define XLAT_STR_7 STRINGIFY(TRAP_HWBKPT) XLAT(TRAP_UNK), - XLAT_END + #define XLAT_VAL_8 ((unsigned) (TRAP_UNK)) + #define XLAT_STR_8 STRINGIFY(TRAP_UNK) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat sigtrap_codes[1] = { { + .data = sigtrap_codes_xdata, + .size = ARRAY_SIZE(sigtrap_codes_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/skf_ad.h b/xlat/skf_ad.h index fac1518c..f6ea4f12 100644 --- a/xlat/skf_ad.h +++ b/xlat/skf_ad.h @@ -124,27 +124,195 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat skf_ad[] = { +static const struct xlat_data skf_ad_xdata[] = { XLAT(SKF_AD_PROTOCOL), + #define XLAT_VAL_0 ((unsigned) (SKF_AD_PROTOCOL)) + #define XLAT_STR_0 STRINGIFY(SKF_AD_PROTOCOL) XLAT(SKF_AD_PKTTYPE), + #define XLAT_VAL_1 ((unsigned) (SKF_AD_PKTTYPE)) + #define XLAT_STR_1 STRINGIFY(SKF_AD_PKTTYPE) XLAT(SKF_AD_IFINDEX), + #define XLAT_VAL_2 ((unsigned) (SKF_AD_IFINDEX)) + #define XLAT_STR_2 STRINGIFY(SKF_AD_IFINDEX) XLAT(SKF_AD_NLATTR), + #define XLAT_VAL_3 ((unsigned) (SKF_AD_NLATTR)) + #define XLAT_STR_3 STRINGIFY(SKF_AD_NLATTR) XLAT(SKF_AD_NLATTR_NEST), + #define XLAT_VAL_4 ((unsigned) (SKF_AD_NLATTR_NEST)) + #define XLAT_STR_4 STRINGIFY(SKF_AD_NLATTR_NEST) XLAT(SKF_AD_MARK), + #define XLAT_VAL_5 ((unsigned) (SKF_AD_MARK)) + #define XLAT_STR_5 STRINGIFY(SKF_AD_MARK) XLAT(SKF_AD_QUEUE), + #define XLAT_VAL_6 ((unsigned) (SKF_AD_QUEUE)) + #define XLAT_STR_6 STRINGIFY(SKF_AD_QUEUE) XLAT(SKF_AD_HATYPE), + #define XLAT_VAL_7 ((unsigned) (SKF_AD_HATYPE)) + #define XLAT_STR_7 STRINGIFY(SKF_AD_HATYPE) XLAT(SKF_AD_RXHASH), + #define XLAT_VAL_8 ((unsigned) (SKF_AD_RXHASH)) + #define XLAT_STR_8 STRINGIFY(SKF_AD_RXHASH) XLAT(SKF_AD_CPU), + #define XLAT_VAL_9 ((unsigned) (SKF_AD_CPU)) + #define XLAT_STR_9 STRINGIFY(SKF_AD_CPU) XLAT(SKF_AD_ALU_XOR_X), + #define XLAT_VAL_10 ((unsigned) (SKF_AD_ALU_XOR_X)) + #define XLAT_STR_10 STRINGIFY(SKF_AD_ALU_XOR_X) XLAT(SKF_AD_VLAN_TAG), + #define XLAT_VAL_11 ((unsigned) (SKF_AD_VLAN_TAG)) + #define XLAT_STR_11 STRINGIFY(SKF_AD_VLAN_TAG) XLAT(SKF_AD_VLAN_TAG_PRESENT), + #define XLAT_VAL_12 ((unsigned) (SKF_AD_VLAN_TAG_PRESENT)) + #define XLAT_STR_12 STRINGIFY(SKF_AD_VLAN_TAG_PRESENT) XLAT(SKF_AD_PAY_OFFSET), + #define XLAT_VAL_13 ((unsigned) (SKF_AD_PAY_OFFSET)) + #define XLAT_STR_13 STRINGIFY(SKF_AD_PAY_OFFSET) XLAT(SKF_AD_RANDOM), + #define XLAT_VAL_14 ((unsigned) (SKF_AD_RANDOM)) + #define XLAT_STR_14 STRINGIFY(SKF_AD_RANDOM) XLAT(SKF_AD_VLAN_TPID), - XLAT_END + #define XLAT_VAL_15 ((unsigned) (SKF_AD_VLAN_TPID)) + #define XLAT_STR_15 STRINGIFY(SKF_AD_VLAN_TPID) }; +static +const struct xlat skf_ad[1] = { { + .data = skf_ad_xdata, + .size = ARRAY_SIZE(skf_ad_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/skf_off.h b/xlat/skf_off.h index 77afe64d..50cd3f99 100644 --- a/xlat/skf_off.h +++ b/xlat/skf_off.h @@ -24,3 +24,61 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define SKF_LL_OFF -0x200000 #endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat skf_off in mpers mode + +# else + +static const struct xlat_data skf_off_xdata[] = { + XLAT(SKF_AD_OFF), + #define XLAT_VAL_0 ((unsigned) (SKF_AD_OFF)) + #define XLAT_STR_0 STRINGIFY(SKF_AD_OFF) + XLAT(SKF_NET_OFF), + #define XLAT_VAL_1 ((unsigned) (SKF_NET_OFF)) + #define XLAT_STR_1 STRINGIFY(SKF_NET_OFF) + XLAT(SKF_LL_OFF), + #define XLAT_VAL_2 ((unsigned) (SKF_LL_OFF)) + #define XLAT_STR_2 STRINGIFY(SKF_LL_OFF) +}; +static +const struct xlat skf_off[1] = { { + .data = skf_off_xdata, + .size = ARRAY_SIZE(skf_off_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/skf_off.in b/xlat/skf_off.in index 6db30a9a..afb75eea 100644 --- a/xlat/skf_off.in +++ b/xlat/skf_off.in @@ -1,4 +1,3 @@ SKF_AD_OFF -0x1000 SKF_NET_OFF -0x100000 SKF_LL_OFF -0x200000 -#stop diff --git a/xlat/smc_decl_codes.h b/xlat/smc_decl_codes.h index 2f8f859f..2f40cba7 100644 --- a/xlat/smc_decl_codes.h +++ b/xlat/smc_decl_codes.h @@ -124,28 +124,195 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat smc_decl_codes[] = { - +static const struct xlat_data smc_decl_codes_xdata[] = { XLAT(SMC_CLC_DECL_MEM), + #define XLAT_VAL_0 ((unsigned) (SMC_CLC_DECL_MEM)) + #define XLAT_STR_0 STRINGIFY(SMC_CLC_DECL_MEM) XLAT(SMC_CLC_DECL_TIMEOUT_CL), + #define XLAT_VAL_1 ((unsigned) (SMC_CLC_DECL_TIMEOUT_CL)) + #define XLAT_STR_1 STRINGIFY(SMC_CLC_DECL_TIMEOUT_CL) XLAT(SMC_CLC_DECL_TIMEOUT_AL), + #define XLAT_VAL_2 ((unsigned) (SMC_CLC_DECL_TIMEOUT_AL)) + #define XLAT_STR_2 STRINGIFY(SMC_CLC_DECL_TIMEOUT_AL) XLAT(SMC_CLC_DECL_CNFERR), + #define XLAT_VAL_3 ((unsigned) (SMC_CLC_DECL_CNFERR)) + #define XLAT_STR_3 STRINGIFY(SMC_CLC_DECL_CNFERR) XLAT(SMC_CLC_DECL_PEERNOSMC), + #define XLAT_VAL_4 ((unsigned) (SMC_CLC_DECL_PEERNOSMC)) + #define XLAT_STR_4 STRINGIFY(SMC_CLC_DECL_PEERNOSMC) XLAT(SMC_CLC_DECL_IPSEC), + #define XLAT_VAL_5 ((unsigned) (SMC_CLC_DECL_IPSEC)) + #define XLAT_STR_5 STRINGIFY(SMC_CLC_DECL_IPSEC) XLAT(SMC_CLC_DECL_NOSMCDEV), + #define XLAT_VAL_6 ((unsigned) (SMC_CLC_DECL_NOSMCDEV)) + #define XLAT_STR_6 STRINGIFY(SMC_CLC_DECL_NOSMCDEV) XLAT(SMC_CLC_DECL_MODEUNSUPP), + #define XLAT_VAL_7 ((unsigned) (SMC_CLC_DECL_MODEUNSUPP)) + #define XLAT_STR_7 STRINGIFY(SMC_CLC_DECL_MODEUNSUPP) XLAT(SMC_CLC_DECL_RMBE_EC), + #define XLAT_VAL_8 ((unsigned) (SMC_CLC_DECL_RMBE_EC)) + #define XLAT_STR_8 STRINGIFY(SMC_CLC_DECL_RMBE_EC) XLAT(SMC_CLC_DECL_OPTUNSUPP), + #define XLAT_VAL_9 ((unsigned) (SMC_CLC_DECL_OPTUNSUPP)) + #define XLAT_STR_9 STRINGIFY(SMC_CLC_DECL_OPTUNSUPP) XLAT(SMC_CLC_DECL_SYNCERR), + #define XLAT_VAL_10 ((unsigned) (SMC_CLC_DECL_SYNCERR)) + #define XLAT_STR_10 STRINGIFY(SMC_CLC_DECL_SYNCERR) XLAT(SMC_CLC_DECL_PEERDECL), + #define XLAT_VAL_11 ((unsigned) (SMC_CLC_DECL_PEERDECL)) + #define XLAT_STR_11 STRINGIFY(SMC_CLC_DECL_PEERDECL) XLAT(SMC_CLC_DECL_INTERR), + #define XLAT_VAL_12 ((unsigned) (SMC_CLC_DECL_INTERR)) + #define XLAT_STR_12 STRINGIFY(SMC_CLC_DECL_INTERR) XLAT(SMC_CLC_DECL_ERR_RTOK), + #define XLAT_VAL_13 ((unsigned) (SMC_CLC_DECL_ERR_RTOK)) + #define XLAT_STR_13 STRINGIFY(SMC_CLC_DECL_ERR_RTOK) XLAT(SMC_CLC_DECL_ERR_RDYLNK), + #define XLAT_VAL_14 ((unsigned) (SMC_CLC_DECL_ERR_RDYLNK)) + #define XLAT_STR_14 STRINGIFY(SMC_CLC_DECL_ERR_RDYLNK) XLAT(SMC_CLC_DECL_ERR_REGRMB), - XLAT_END + #define XLAT_VAL_15 ((unsigned) (SMC_CLC_DECL_ERR_REGRMB)) + #define XLAT_STR_15 STRINGIFY(SMC_CLC_DECL_ERR_REGRMB) }; +static +const struct xlat smc_decl_codes[1] = { { + .data = smc_decl_codes_xdata, + .size = ARRAY_SIZE(smc_decl_codes_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/smc_decl_codes.in b/xlat/smc_decl_codes.in index d7810f89..2832da33 100644 --- a/xlat/smc_decl_codes.in +++ b/xlat/smc_decl_codes.in @@ -1,4 +1,4 @@ -/* sorted */ +#sorted SMC_CLC_DECL_MEM 0x01010000 SMC_CLC_DECL_TIMEOUT_CL 0x02010000 SMC_CLC_DECL_TIMEOUT_AL 0x02020000 diff --git a/xlat/smc_diag_attrs.h b/xlat/smc_diag_attrs.h index 9ec8b073..0208b436 100644 --- a/xlat/smc_diag_attrs.h +++ b/xlat/smc_diag_attrs.h @@ -12,17 +12,85 @@ # else -static -const struct xlat smc_diag_attrs[] = { +static const struct xlat_data smc_diag_attrs_xdata[] = { XLAT(SMC_DIAG_NONE), + #define XLAT_VAL_0 ((unsigned) (SMC_DIAG_NONE)) + #define XLAT_STR_0 STRINGIFY(SMC_DIAG_NONE) XLAT(SMC_DIAG_CONNINFO), + #define XLAT_VAL_1 ((unsigned) (SMC_DIAG_CONNINFO)) + #define XLAT_STR_1 STRINGIFY(SMC_DIAG_CONNINFO) XLAT(SMC_DIAG_LGRINFO), + #define XLAT_VAL_2 ((unsigned) (SMC_DIAG_LGRINFO)) + #define XLAT_STR_2 STRINGIFY(SMC_DIAG_LGRINFO) XLAT(SMC_DIAG_SHUTDOWN), + #define XLAT_VAL_3 ((unsigned) (SMC_DIAG_SHUTDOWN)) + #define XLAT_STR_3 STRINGIFY(SMC_DIAG_SHUTDOWN) XLAT(SMC_DIAG_DMBINFO), + #define XLAT_VAL_4 ((unsigned) (SMC_DIAG_DMBINFO)) + #define XLAT_STR_4 STRINGIFY(SMC_DIAG_DMBINFO) XLAT(SMC_DIAG_FALLBACK), - XLAT_END + #define XLAT_VAL_5 ((unsigned) (SMC_DIAG_FALLBACK)) + #define XLAT_STR_5 STRINGIFY(SMC_DIAG_FALLBACK) }; +static +const struct xlat smc_diag_attrs[1] = { { + .data = smc_diag_attrs_xdata, + .size = ARRAY_SIZE(smc_diag_attrs_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/smc_diag_extended_flags.h b/xlat/smc_diag_extended_flags.h index 48cb3a4e..724e4286 100644 --- a/xlat/smc_diag_extended_flags.h +++ b/xlat/smc_diag_extended_flags.h @@ -12,13 +12,41 @@ # else -static -const struct xlat smc_diag_extended_flags[] = { +static const struct xlat_data smc_diag_extended_flags_xdata[] = { XLAT(1<<(SMC_DIAG_CONNINFO-1)), + #define XLAT_VAL_0 ((unsigned) (1<<(SMC_DIAG_CONNINFO-1))) + #define XLAT_STR_0 STRINGIFY(1<<(SMC_DIAG_CONNINFO-1)) XLAT(1<<(SMC_DIAG_LGRINFO-1)), - XLAT_END + #define XLAT_VAL_1 ((unsigned) (1<<(SMC_DIAG_LGRINFO-1))) + #define XLAT_STR_1 STRINGIFY(1<<(SMC_DIAG_LGRINFO-1)) }; - +static +const struct xlat smc_diag_extended_flags[1] = { { + .data = smc_diag_extended_flags_xdata, + .size = ARRAY_SIZE(smc_diag_extended_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/smc_diag_mode.h b/xlat/smc_diag_mode.h index 7cbddcde..7798bb0a 100644 --- a/xlat/smc_diag_mode.h +++ b/xlat/smc_diag_mode.h @@ -33,14 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat smc_diag_mode[] = { +static const struct xlat_data smc_diag_mode_xdata[] = { [SMC_DIAG_MODE_SMCR] = XLAT(SMC_DIAG_MODE_SMCR), + #define XLAT_VAL_0 ((unsigned) (SMC_DIAG_MODE_SMCR)) + #define XLAT_STR_0 STRINGIFY(SMC_DIAG_MODE_SMCR) [SMC_DIAG_MODE_FALLBACK_TCP] = XLAT(SMC_DIAG_MODE_FALLBACK_TCP), + #define XLAT_VAL_1 ((unsigned) (SMC_DIAG_MODE_FALLBACK_TCP)) + #define XLAT_STR_1 STRINGIFY(SMC_DIAG_MODE_FALLBACK_TCP) [SMC_DIAG_MODE_SMCD] = XLAT(SMC_DIAG_MODE_SMCD), - XLAT_END + #define XLAT_VAL_2 ((unsigned) (SMC_DIAG_MODE_SMCD)) + #define XLAT_STR_2 STRINGIFY(SMC_DIAG_MODE_SMCD) }; +static +const struct xlat smc_diag_mode[1] = { { + .data = smc_diag_mode_xdata, + .size = ARRAY_SIZE(smc_diag_mode_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/smc_link_group_roles.h b/xlat/smc_link_group_roles.h index 24f2f5dd..8ad8f0fb 100644 --- a/xlat/smc_link_group_roles.h +++ b/xlat/smc_link_group_roles.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat smc_link_group_roles[] = { - XLAT(SMC_CLNT), - XLAT(SMC_SERV), - XLAT_END +static const struct xlat_data smc_link_group_roles_xdata[] = { + [SMC_CLNT] = XLAT(SMC_CLNT), + #define XLAT_VAL_0 ((unsigned) (SMC_CLNT)) + #define XLAT_STR_0 STRINGIFY(SMC_CLNT) + [SMC_SERV] = XLAT(SMC_SERV), + #define XLAT_VAL_1 ((unsigned) (SMC_SERV)) + #define XLAT_STR_1 STRINGIFY(SMC_SERV) }; +static +const struct xlat smc_link_group_roles[1] = { { + .data = smc_link_group_roles_xdata, + .size = ARRAY_SIZE(smc_link_group_roles_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/smc_link_group_roles.in b/xlat/smc_link_group_roles.in index d1cc06d4..c278526a 100644 --- a/xlat/smc_link_group_roles.in +++ b/xlat/smc_link_group_roles.in @@ -1,2 +1,3 @@ +#value_indexed SMC_CLNT 0 SMC_SERV 1 diff --git a/xlat/smc_protocols.h b/xlat/smc_protocols.h index 47ad92b2..a551f0d4 100644 --- a/xlat/smc_protocols.h +++ b/xlat/smc_protocols.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat smc_protocols[] = { +static const struct xlat_data smc_protocols_xdata[] = { [SMCPROTO_SMC] = XLAT(SMCPROTO_SMC), + #define XLAT_VAL_0 ((unsigned) (SMCPROTO_SMC)) + #define XLAT_STR_0 STRINGIFY(SMCPROTO_SMC) [SMCPROTO_SMC6] = XLAT(SMCPROTO_SMC6), - XLAT_END + #define XLAT_VAL_1 ((unsigned) (SMCPROTO_SMC6)) + #define XLAT_STR_1 STRINGIFY(SMCPROTO_SMC6) }; +static +const struct xlat smc_protocols[1] = { { + .data = smc_protocols_xdata, + .size = ARRAY_SIZE(smc_protocols_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/smc_states.h b/xlat/smc_states.h index e88a62c2..9cb31024 100644 --- a/xlat/smc_states.h +++ b/xlat/smc_states.h @@ -96,23 +96,151 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat smc_states[] = { +static const struct xlat_data smc_states_xdata[] = { XLAT(SMC_ACTIVE), + #define XLAT_VAL_0 ((unsigned) (SMC_ACTIVE)) + #define XLAT_STR_0 STRINGIFY(SMC_ACTIVE) XLAT(SMC_INIT), + #define XLAT_VAL_1 ((unsigned) (SMC_INIT)) + #define XLAT_STR_1 STRINGIFY(SMC_INIT) XLAT(SMC_CLOSED), + #define XLAT_VAL_2 ((unsigned) (SMC_CLOSED)) + #define XLAT_STR_2 STRINGIFY(SMC_CLOSED) XLAT(SMC_LISTEN), + #define XLAT_VAL_3 ((unsigned) (SMC_LISTEN)) + #define XLAT_STR_3 STRINGIFY(SMC_LISTEN) XLAT(SMC_PEERCLOSEWAIT1), + #define XLAT_VAL_4 ((unsigned) (SMC_PEERCLOSEWAIT1)) + #define XLAT_STR_4 STRINGIFY(SMC_PEERCLOSEWAIT1) XLAT(SMC_PEERCLOSEWAIT2), + #define XLAT_VAL_5 ((unsigned) (SMC_PEERCLOSEWAIT2)) + #define XLAT_STR_5 STRINGIFY(SMC_PEERCLOSEWAIT2) XLAT(SMC_APPFINCLOSEWAIT), + #define XLAT_VAL_6 ((unsigned) (SMC_APPFINCLOSEWAIT)) + #define XLAT_STR_6 STRINGIFY(SMC_APPFINCLOSEWAIT) XLAT(SMC_APPCLOSEWAIT1), + #define XLAT_VAL_7 ((unsigned) (SMC_APPCLOSEWAIT1)) + #define XLAT_STR_7 STRINGIFY(SMC_APPCLOSEWAIT1) XLAT(SMC_APPCLOSEWAIT2), + #define XLAT_VAL_8 ((unsigned) (SMC_APPCLOSEWAIT2)) + #define XLAT_STR_8 STRINGIFY(SMC_APPCLOSEWAIT2) XLAT(SMC_PEERFINCLOSEWAIT), + #define XLAT_VAL_9 ((unsigned) (SMC_PEERFINCLOSEWAIT)) + #define XLAT_STR_9 STRINGIFY(SMC_PEERFINCLOSEWAIT) XLAT(SMC_PEERABORTWAIT), + #define XLAT_VAL_10 ((unsigned) (SMC_PEERABORTWAIT)) + #define XLAT_STR_10 STRINGIFY(SMC_PEERABORTWAIT) XLAT(SMC_PROCESSABORT), - XLAT_END + #define XLAT_VAL_11 ((unsigned) (SMC_PROCESSABORT)) + #define XLAT_STR_11 STRINGIFY(SMC_PROCESSABORT) }; +static +const struct xlat smc_states[1] = { { + .data = smc_states_xdata, + .size = ARRAY_SIZE(smc_states_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/snmp_icmp6_stats.h b/xlat/snmp_icmp6_stats.h index 62553d53..88137ea1 100644 --- a/xlat/snmp_icmp6_stats.h +++ b/xlat/snmp_icmp6_stats.h @@ -54,17 +54,85 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat snmp_icmp6_stats[] = { +static const struct xlat_data snmp_icmp6_stats_xdata[] = { [ICMP6_MIB_NUM] = XLAT(ICMP6_MIB_NUM), + #define XLAT_VAL_0 ((unsigned) (ICMP6_MIB_NUM)) + #define XLAT_STR_0 STRINGIFY(ICMP6_MIB_NUM) [ICMP6_MIB_INMSGS] = XLAT(ICMP6_MIB_INMSGS), + #define XLAT_VAL_1 ((unsigned) (ICMP6_MIB_INMSGS)) + #define XLAT_STR_1 STRINGIFY(ICMP6_MIB_INMSGS) [ICMP6_MIB_INERRORS] = XLAT(ICMP6_MIB_INERRORS), + #define XLAT_VAL_2 ((unsigned) (ICMP6_MIB_INERRORS)) + #define XLAT_STR_2 STRINGIFY(ICMP6_MIB_INERRORS) [ICMP6_MIB_OUTMSGS] = XLAT(ICMP6_MIB_OUTMSGS), + #define XLAT_VAL_3 ((unsigned) (ICMP6_MIB_OUTMSGS)) + #define XLAT_STR_3 STRINGIFY(ICMP6_MIB_OUTMSGS) [ICMP6_MIB_OUTERRORS] = XLAT(ICMP6_MIB_OUTERRORS), + #define XLAT_VAL_4 ((unsigned) (ICMP6_MIB_OUTERRORS)) + #define XLAT_STR_4 STRINGIFY(ICMP6_MIB_OUTERRORS) [ICMP6_MIB_CSUMERRORS] = XLAT(ICMP6_MIB_CSUMERRORS), - XLAT_END + #define XLAT_VAL_5 ((unsigned) (ICMP6_MIB_CSUMERRORS)) + #define XLAT_STR_5 STRINGIFY(ICMP6_MIB_CSUMERRORS) }; +static +const struct xlat snmp_icmp6_stats[1] = { { + .data = snmp_icmp6_stats_xdata, + .size = ARRAY_SIZE(snmp_icmp6_stats_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/snmp_ip_stats.h b/xlat/snmp_ip_stats.h index 0f743222..ea3981af 100644 --- a/xlat/snmp_ip_stats.h +++ b/xlat/snmp_ip_stats.h @@ -271,48 +271,426 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat snmp_ip_stats[] = { +static const struct xlat_data snmp_ip_stats_xdata[] = { [IPSTATS_MIB_NUM] = XLAT(IPSTATS_MIB_NUM), + #define XLAT_VAL_0 ((unsigned) (IPSTATS_MIB_NUM)) + #define XLAT_STR_0 STRINGIFY(IPSTATS_MIB_NUM) [IPSTATS_MIB_INPKTS] = XLAT(IPSTATS_MIB_INPKTS), + #define XLAT_VAL_1 ((unsigned) (IPSTATS_MIB_INPKTS)) + #define XLAT_STR_1 STRINGIFY(IPSTATS_MIB_INPKTS) [IPSTATS_MIB_INOCTETS] = XLAT(IPSTATS_MIB_INOCTETS), + #define XLAT_VAL_2 ((unsigned) (IPSTATS_MIB_INOCTETS)) + #define XLAT_STR_2 STRINGIFY(IPSTATS_MIB_INOCTETS) [IPSTATS_MIB_INDELIVERS] = XLAT(IPSTATS_MIB_INDELIVERS), + #define XLAT_VAL_3 ((unsigned) (IPSTATS_MIB_INDELIVERS)) + #define XLAT_STR_3 STRINGIFY(IPSTATS_MIB_INDELIVERS) [IPSTATS_MIB_OUTFORWDATAGRAMS] = XLAT(IPSTATS_MIB_OUTFORWDATAGRAMS), + #define XLAT_VAL_4 ((unsigned) (IPSTATS_MIB_OUTFORWDATAGRAMS)) + #define XLAT_STR_4 STRINGIFY(IPSTATS_MIB_OUTFORWDATAGRAMS) [IPSTATS_MIB_OUTPKTS] = XLAT(IPSTATS_MIB_OUTPKTS), + #define XLAT_VAL_5 ((unsigned) (IPSTATS_MIB_OUTPKTS)) + #define XLAT_STR_5 STRINGIFY(IPSTATS_MIB_OUTPKTS) [IPSTATS_MIB_OUTOCTETS] = XLAT(IPSTATS_MIB_OUTOCTETS), + #define XLAT_VAL_6 ((unsigned) (IPSTATS_MIB_OUTOCTETS)) + #define XLAT_STR_6 STRINGIFY(IPSTATS_MIB_OUTOCTETS) [IPSTATS_MIB_INHDRERRORS] = XLAT(IPSTATS_MIB_INHDRERRORS), + #define XLAT_VAL_7 ((unsigned) (IPSTATS_MIB_INHDRERRORS)) + #define XLAT_STR_7 STRINGIFY(IPSTATS_MIB_INHDRERRORS) [IPSTATS_MIB_INTOOBIGERRORS] = XLAT(IPSTATS_MIB_INTOOBIGERRORS), + #define XLAT_VAL_8 ((unsigned) (IPSTATS_MIB_INTOOBIGERRORS)) + #define XLAT_STR_8 STRINGIFY(IPSTATS_MIB_INTOOBIGERRORS) [IPSTATS_MIB_INNOROUTES] = XLAT(IPSTATS_MIB_INNOROUTES), + #define XLAT_VAL_9 ((unsigned) (IPSTATS_MIB_INNOROUTES)) + #define XLAT_STR_9 STRINGIFY(IPSTATS_MIB_INNOROUTES) [IPSTATS_MIB_INADDRERRORS] = XLAT(IPSTATS_MIB_INADDRERRORS), + #define XLAT_VAL_10 ((unsigned) (IPSTATS_MIB_INADDRERRORS)) + #define XLAT_STR_10 STRINGIFY(IPSTATS_MIB_INADDRERRORS) [IPSTATS_MIB_INUNKNOWNPROTOS] = XLAT(IPSTATS_MIB_INUNKNOWNPROTOS), + #define XLAT_VAL_11 ((unsigned) (IPSTATS_MIB_INUNKNOWNPROTOS)) + #define XLAT_STR_11 STRINGIFY(IPSTATS_MIB_INUNKNOWNPROTOS) [IPSTATS_MIB_INTRUNCATEDPKTS] = XLAT(IPSTATS_MIB_INTRUNCATEDPKTS), + #define XLAT_VAL_12 ((unsigned) (IPSTATS_MIB_INTRUNCATEDPKTS)) + #define XLAT_STR_12 STRINGIFY(IPSTATS_MIB_INTRUNCATEDPKTS) [IPSTATS_MIB_INDISCARDS] = XLAT(IPSTATS_MIB_INDISCARDS), + #define XLAT_VAL_13 ((unsigned) (IPSTATS_MIB_INDISCARDS)) + #define XLAT_STR_13 STRINGIFY(IPSTATS_MIB_INDISCARDS) [IPSTATS_MIB_OUTDISCARDS] = XLAT(IPSTATS_MIB_OUTDISCARDS), + #define XLAT_VAL_14 ((unsigned) (IPSTATS_MIB_OUTDISCARDS)) + #define XLAT_STR_14 STRINGIFY(IPSTATS_MIB_OUTDISCARDS) [IPSTATS_MIB_OUTNOROUTES] = XLAT(IPSTATS_MIB_OUTNOROUTES), + #define XLAT_VAL_15 ((unsigned) (IPSTATS_MIB_OUTNOROUTES)) + #define XLAT_STR_15 STRINGIFY(IPSTATS_MIB_OUTNOROUTES) [IPSTATS_MIB_REASMTIMEOUT] = XLAT(IPSTATS_MIB_REASMTIMEOUT), + #define XLAT_VAL_16 ((unsigned) (IPSTATS_MIB_REASMTIMEOUT)) + #define XLAT_STR_16 STRINGIFY(IPSTATS_MIB_REASMTIMEOUT) [IPSTATS_MIB_REASMREQDS] = XLAT(IPSTATS_MIB_REASMREQDS), + #define XLAT_VAL_17 ((unsigned) (IPSTATS_MIB_REASMREQDS)) + #define XLAT_STR_17 STRINGIFY(IPSTATS_MIB_REASMREQDS) [IPSTATS_MIB_REASMOKS] = XLAT(IPSTATS_MIB_REASMOKS), + #define XLAT_VAL_18 ((unsigned) (IPSTATS_MIB_REASMOKS)) + #define XLAT_STR_18 STRINGIFY(IPSTATS_MIB_REASMOKS) [IPSTATS_MIB_REASMFAILS] = XLAT(IPSTATS_MIB_REASMFAILS), + #define XLAT_VAL_19 ((unsigned) (IPSTATS_MIB_REASMFAILS)) + #define XLAT_STR_19 STRINGIFY(IPSTATS_MIB_REASMFAILS) [IPSTATS_MIB_FRAGOKS] = XLAT(IPSTATS_MIB_FRAGOKS), + #define XLAT_VAL_20 ((unsigned) (IPSTATS_MIB_FRAGOKS)) + #define XLAT_STR_20 STRINGIFY(IPSTATS_MIB_FRAGOKS) [IPSTATS_MIB_FRAGFAILS] = XLAT(IPSTATS_MIB_FRAGFAILS), + #define XLAT_VAL_21 ((unsigned) (IPSTATS_MIB_FRAGFAILS)) + #define XLAT_STR_21 STRINGIFY(IPSTATS_MIB_FRAGFAILS) [IPSTATS_MIB_FRAGCREATES] = XLAT(IPSTATS_MIB_FRAGCREATES), + #define XLAT_VAL_22 ((unsigned) (IPSTATS_MIB_FRAGCREATES)) + #define XLAT_STR_22 STRINGIFY(IPSTATS_MIB_FRAGCREATES) [IPSTATS_MIB_INMCASTPKTS] = XLAT(IPSTATS_MIB_INMCASTPKTS), + #define XLAT_VAL_23 ((unsigned) (IPSTATS_MIB_INMCASTPKTS)) + #define XLAT_STR_23 STRINGIFY(IPSTATS_MIB_INMCASTPKTS) [IPSTATS_MIB_OUTMCASTPKTS] = XLAT(IPSTATS_MIB_OUTMCASTPKTS), + #define XLAT_VAL_24 ((unsigned) (IPSTATS_MIB_OUTMCASTPKTS)) + #define XLAT_STR_24 STRINGIFY(IPSTATS_MIB_OUTMCASTPKTS) [IPSTATS_MIB_INBCASTPKTS] = XLAT(IPSTATS_MIB_INBCASTPKTS), + #define XLAT_VAL_25 ((unsigned) (IPSTATS_MIB_INBCASTPKTS)) + #define XLAT_STR_25 STRINGIFY(IPSTATS_MIB_INBCASTPKTS) [IPSTATS_MIB_OUTBCASTPKTS] = XLAT(IPSTATS_MIB_OUTBCASTPKTS), + #define XLAT_VAL_26 ((unsigned) (IPSTATS_MIB_OUTBCASTPKTS)) + #define XLAT_STR_26 STRINGIFY(IPSTATS_MIB_OUTBCASTPKTS) [IPSTATS_MIB_INMCASTOCTETS] = XLAT(IPSTATS_MIB_INMCASTOCTETS), + #define XLAT_VAL_27 ((unsigned) (IPSTATS_MIB_INMCASTOCTETS)) + #define XLAT_STR_27 STRINGIFY(IPSTATS_MIB_INMCASTOCTETS) [IPSTATS_MIB_OUTMCASTOCTETS] = XLAT(IPSTATS_MIB_OUTMCASTOCTETS), + #define XLAT_VAL_28 ((unsigned) (IPSTATS_MIB_OUTMCASTOCTETS)) + #define XLAT_STR_28 STRINGIFY(IPSTATS_MIB_OUTMCASTOCTETS) [IPSTATS_MIB_INBCASTOCTETS] = XLAT(IPSTATS_MIB_INBCASTOCTETS), + #define XLAT_VAL_29 ((unsigned) (IPSTATS_MIB_INBCASTOCTETS)) + #define XLAT_STR_29 STRINGIFY(IPSTATS_MIB_INBCASTOCTETS) [IPSTATS_MIB_OUTBCASTOCTETS] = XLAT(IPSTATS_MIB_OUTBCASTOCTETS), + #define XLAT_VAL_30 ((unsigned) (IPSTATS_MIB_OUTBCASTOCTETS)) + #define XLAT_STR_30 STRINGIFY(IPSTATS_MIB_OUTBCASTOCTETS) [IPSTATS_MIB_CSUMERRORS] = XLAT(IPSTATS_MIB_CSUMERRORS), + #define XLAT_VAL_31 ((unsigned) (IPSTATS_MIB_CSUMERRORS)) + #define XLAT_STR_31 STRINGIFY(IPSTATS_MIB_CSUMERRORS) [IPSTATS_MIB_NOECTPKTS] = XLAT(IPSTATS_MIB_NOECTPKTS), + #define XLAT_VAL_32 ((unsigned) (IPSTATS_MIB_NOECTPKTS)) + #define XLAT_STR_32 STRINGIFY(IPSTATS_MIB_NOECTPKTS) [IPSTATS_MIB_ECT1PKTS] = XLAT(IPSTATS_MIB_ECT1PKTS), + #define XLAT_VAL_33 ((unsigned) (IPSTATS_MIB_ECT1PKTS)) + #define XLAT_STR_33 STRINGIFY(IPSTATS_MIB_ECT1PKTS) [IPSTATS_MIB_ECT0PKTS] = XLAT(IPSTATS_MIB_ECT0PKTS), + #define XLAT_VAL_34 ((unsigned) (IPSTATS_MIB_ECT0PKTS)) + #define XLAT_STR_34 STRINGIFY(IPSTATS_MIB_ECT0PKTS) [IPSTATS_MIB_CEPKTS] = XLAT(IPSTATS_MIB_CEPKTS), + #define XLAT_VAL_35 ((unsigned) (IPSTATS_MIB_CEPKTS)) + #define XLAT_STR_35 STRINGIFY(IPSTATS_MIB_CEPKTS) [IPSTATS_MIB_REASM_OVERLAPS] = XLAT(IPSTATS_MIB_REASM_OVERLAPS), - XLAT_END + #define XLAT_VAL_36 ((unsigned) (IPSTATS_MIB_REASM_OVERLAPS)) + #define XLAT_STR_36 STRINGIFY(IPSTATS_MIB_REASM_OVERLAPS) }; +static +const struct xlat snmp_ip_stats[1] = { { + .data = snmp_ip_stats_xdata, + .size = ARRAY_SIZE(snmp_ip_stats_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_alg_options.h b/xlat/sock_alg_options.h index 41b00a99..36ba94fb 100644 --- a/xlat/sock_alg_options.h +++ b/xlat/sock_alg_options.h @@ -47,16 +47,74 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat sock_alg_options[] = { +static const struct xlat_data sock_alg_options_xdata[] = { [ALG_SET_KEY] = XLAT(ALG_SET_KEY), + #define XLAT_VAL_0 ((unsigned) (ALG_SET_KEY)) + #define XLAT_STR_0 STRINGIFY(ALG_SET_KEY) [ALG_SET_IV] = XLAT(ALG_SET_IV), + #define XLAT_VAL_1 ((unsigned) (ALG_SET_IV)) + #define XLAT_STR_1 STRINGIFY(ALG_SET_IV) [ALG_SET_OP] = XLAT(ALG_SET_OP), + #define XLAT_VAL_2 ((unsigned) (ALG_SET_OP)) + #define XLAT_STR_2 STRINGIFY(ALG_SET_OP) [ALG_SET_AEAD_ASSOCLEN] = XLAT(ALG_SET_AEAD_ASSOCLEN), + #define XLAT_VAL_3 ((unsigned) (ALG_SET_AEAD_ASSOCLEN)) + #define XLAT_STR_3 STRINGIFY(ALG_SET_AEAD_ASSOCLEN) [ALG_SET_AEAD_AUTHSIZE] = XLAT(ALG_SET_AEAD_AUTHSIZE), - XLAT_END + #define XLAT_VAL_4 ((unsigned) (ALG_SET_AEAD_AUTHSIZE)) + #define XLAT_STR_4 STRINGIFY(ALG_SET_AEAD_AUTHSIZE) }; +static +const struct xlat sock_alg_options[1] = { { + .data = sock_alg_options_xdata, + .size = ARRAY_SIZE(sock_alg_options_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_ax25_options.h b/xlat/sock_ax25_options.h index 11c833d1..0f6cff39 100644 --- a/xlat/sock_ax25_options.h +++ b/xlat/sock_ax25_options.h @@ -89,28 +89,155 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat sock_ax25_options[] = { - +static const struct xlat_data sock_ax25_options_xdata[] = { XLAT(AX25_WINDOW), + #define XLAT_VAL_0 ((unsigned) (AX25_WINDOW)) + #define XLAT_STR_0 STRINGIFY(AX25_WINDOW) XLAT(AX25_T1), + #define XLAT_VAL_1 ((unsigned) (AX25_T1)) + #define XLAT_STR_1 STRINGIFY(AX25_T1) XLAT(AX25_N2), + #define XLAT_VAL_2 ((unsigned) (AX25_N2)) + #define XLAT_STR_2 STRINGIFY(AX25_N2) XLAT(AX25_T3), + #define XLAT_VAL_3 ((unsigned) (AX25_T3)) + #define XLAT_STR_3 STRINGIFY(AX25_T3) XLAT(AX25_T2), + #define XLAT_VAL_4 ((unsigned) (AX25_T2)) + #define XLAT_STR_4 STRINGIFY(AX25_T2) XLAT(AX25_BACKOFF), + #define XLAT_VAL_5 ((unsigned) (AX25_BACKOFF)) + #define XLAT_STR_5 STRINGIFY(AX25_BACKOFF) XLAT(AX25_EXTSEQ), + #define XLAT_VAL_6 ((unsigned) (AX25_EXTSEQ)) + #define XLAT_STR_6 STRINGIFY(AX25_EXTSEQ) XLAT(AX25_PIDINCL), + #define XLAT_VAL_7 ((unsigned) (AX25_PIDINCL)) + #define XLAT_STR_7 STRINGIFY(AX25_PIDINCL) XLAT(AX25_IDLE), + #define XLAT_VAL_8 ((unsigned) (AX25_IDLE)) + #define XLAT_STR_8 STRINGIFY(AX25_IDLE) XLAT(AX25_PACLEN), + #define XLAT_VAL_9 ((unsigned) (AX25_PACLEN)) + #define XLAT_STR_9 STRINGIFY(AX25_PACLEN) XLAT(AX25_IAMDIGI), + #define XLAT_VAL_10 ((unsigned) (AX25_IAMDIGI)) + #define XLAT_STR_10 STRINGIFY(AX25_IAMDIGI) #if defined(SO_BINDTODEVICE) || (defined(HAVE_DECL_SO_BINDTODEVICE) && HAVE_DECL_SO_BINDTODEVICE) XLAT(SO_BINDTODEVICE), + #define XLAT_VAL_11 ((unsigned) (SO_BINDTODEVICE)) + #define XLAT_STR_11 STRINGIFY(SO_BINDTODEVICE) #endif - XLAT_END }; +static +const struct xlat sock_ax25_options[1] = { { + .data = sock_ax25_options_xdata, + .size = ARRAY_SIZE(sock_ax25_options_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_ax25_options.in b/xlat/sock_ax25_options.in index 4b6bed58..2a526104 100644 --- a/xlat/sock_ax25_options.in +++ b/xlat/sock_ax25_options.in @@ -1,4 +1,4 @@ -/* sorted */ +#sorted AX25_WINDOW 1 AX25_T1 2 AX25_N2 3 diff --git a/xlat/sock_bluetooth_options.h b/xlat/sock_bluetooth_options.h index 4a57abd9..1bbfddc3 100644 --- a/xlat/sock_bluetooth_options.h +++ b/xlat/sock_bluetooth_options.h @@ -68,20 +68,107 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat sock_bluetooth_options[] = { - +static const struct xlat_data sock_bluetooth_options_xdata[] = { XLAT(BT_SECURITY), + #define XLAT_VAL_0 ((unsigned) (BT_SECURITY)) + #define XLAT_STR_0 STRINGIFY(BT_SECURITY) XLAT(BT_DEFER_SETUP), + #define XLAT_VAL_1 ((unsigned) (BT_DEFER_SETUP)) + #define XLAT_STR_1 STRINGIFY(BT_DEFER_SETUP) XLAT(BT_FLUSHABLE), + #define XLAT_VAL_2 ((unsigned) (BT_FLUSHABLE)) + #define XLAT_STR_2 STRINGIFY(BT_FLUSHABLE) XLAT(BT_POWER), + #define XLAT_VAL_3 ((unsigned) (BT_POWER)) + #define XLAT_STR_3 STRINGIFY(BT_POWER) XLAT(BT_CHANNEL_POLICY), + #define XLAT_VAL_4 ((unsigned) (BT_CHANNEL_POLICY)) + #define XLAT_STR_4 STRINGIFY(BT_CHANNEL_POLICY) XLAT(BT_VOICE), + #define XLAT_VAL_5 ((unsigned) (BT_VOICE)) + #define XLAT_STR_5 STRINGIFY(BT_VOICE) XLAT(BT_SNDMTU), + #define XLAT_VAL_6 ((unsigned) (BT_SNDMTU)) + #define XLAT_STR_6 STRINGIFY(BT_SNDMTU) XLAT(BT_RCVMTU), - XLAT_END + #define XLAT_VAL_7 ((unsigned) (BT_RCVMTU)) + #define XLAT_STR_7 STRINGIFY(BT_RCVMTU) }; +static +const struct xlat sock_bluetooth_options[1] = { { + .data = sock_bluetooth_options_xdata, + .size = ARRAY_SIZE(sock_bluetooth_options_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_bluetooth_options.in b/xlat/sock_bluetooth_options.in index 919b21b0..4c91dd29 100644 --- a/xlat/sock_bluetooth_options.in +++ b/xlat/sock_bluetooth_options.in @@ -1,4 +1,4 @@ -/* sort -k2,2n */ +#sorted sort -k2,2n BT_SECURITY 4 BT_DEFER_SETUP 7 BT_FLUSHABLE 8 diff --git a/xlat/sock_caif_options.h b/xlat/sock_caif_options.h index 1066132f..9558ae65 100644 --- a/xlat/sock_caif_options.h +++ b/xlat/sock_caif_options.h @@ -33,14 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat sock_caif_options[] = { +static const struct xlat_data sock_caif_options_xdata[] = { XLAT(CAIFSO_LINK_SELECT), + #define XLAT_VAL_0 ((unsigned) (CAIFSO_LINK_SELECT)) + #define XLAT_STR_0 STRINGIFY(CAIFSO_LINK_SELECT) XLAT(CAIFSO_REQ_PARAM), + #define XLAT_VAL_1 ((unsigned) (CAIFSO_REQ_PARAM)) + #define XLAT_STR_1 STRINGIFY(CAIFSO_REQ_PARAM) XLAT(CAIFSO_RSP_PARAM), - XLAT_END + #define XLAT_VAL_2 ((unsigned) (CAIFSO_RSP_PARAM)) + #define XLAT_STR_2 STRINGIFY(CAIFSO_RSP_PARAM) }; +static +const struct xlat sock_caif_options[1] = { { + .data = sock_caif_options_xdata, + .size = ARRAY_SIZE(sock_caif_options_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_dccp_options.h b/xlat/sock_dccp_options.h index 41b487cc..2142bd21 100644 --- a/xlat/sock_dccp_options.h +++ b/xlat/sock_dccp_options.h @@ -124,28 +124,195 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat sock_dccp_options[] = { - +static const struct xlat_data sock_dccp_options_xdata[] = { XLAT(DCCP_SOCKOPT_PACKET_SIZE), + #define XLAT_VAL_0 ((unsigned) (DCCP_SOCKOPT_PACKET_SIZE)) + #define XLAT_STR_0 STRINGIFY(DCCP_SOCKOPT_PACKET_SIZE) XLAT(DCCP_SOCKOPT_SERVICE), + #define XLAT_VAL_1 ((unsigned) (DCCP_SOCKOPT_SERVICE)) + #define XLAT_STR_1 STRINGIFY(DCCP_SOCKOPT_SERVICE) XLAT(DCCP_SOCKOPT_CHANGE_L), + #define XLAT_VAL_2 ((unsigned) (DCCP_SOCKOPT_CHANGE_L)) + #define XLAT_STR_2 STRINGIFY(DCCP_SOCKOPT_CHANGE_L) XLAT(DCCP_SOCKOPT_CHANGE_R), + #define XLAT_VAL_3 ((unsigned) (DCCP_SOCKOPT_CHANGE_R)) + #define XLAT_STR_3 STRINGIFY(DCCP_SOCKOPT_CHANGE_R) XLAT(DCCP_SOCKOPT_GET_CUR_MPS), + #define XLAT_VAL_4 ((unsigned) (DCCP_SOCKOPT_GET_CUR_MPS)) + #define XLAT_STR_4 STRINGIFY(DCCP_SOCKOPT_GET_CUR_MPS) XLAT(DCCP_SOCKOPT_SERVER_TIMEWAIT), + #define XLAT_VAL_5 ((unsigned) (DCCP_SOCKOPT_SERVER_TIMEWAIT)) + #define XLAT_STR_5 STRINGIFY(DCCP_SOCKOPT_SERVER_TIMEWAIT) XLAT(DCCP_SOCKOPT_SEND_CSCOV), + #define XLAT_VAL_6 ((unsigned) (DCCP_SOCKOPT_SEND_CSCOV)) + #define XLAT_STR_6 STRINGIFY(DCCP_SOCKOPT_SEND_CSCOV) XLAT(DCCP_SOCKOPT_RECV_CSCOV), + #define XLAT_VAL_7 ((unsigned) (DCCP_SOCKOPT_RECV_CSCOV)) + #define XLAT_STR_7 STRINGIFY(DCCP_SOCKOPT_RECV_CSCOV) XLAT(DCCP_SOCKOPT_AVAILABLE_CCIDS), + #define XLAT_VAL_8 ((unsigned) (DCCP_SOCKOPT_AVAILABLE_CCIDS)) + #define XLAT_STR_8 STRINGIFY(DCCP_SOCKOPT_AVAILABLE_CCIDS) XLAT(DCCP_SOCKOPT_CCID), + #define XLAT_VAL_9 ((unsigned) (DCCP_SOCKOPT_CCID)) + #define XLAT_STR_9 STRINGIFY(DCCP_SOCKOPT_CCID) XLAT(DCCP_SOCKOPT_TX_CCID), + #define XLAT_VAL_10 ((unsigned) (DCCP_SOCKOPT_TX_CCID)) + #define XLAT_STR_10 STRINGIFY(DCCP_SOCKOPT_TX_CCID) XLAT(DCCP_SOCKOPT_RX_CCID), + #define XLAT_VAL_11 ((unsigned) (DCCP_SOCKOPT_RX_CCID)) + #define XLAT_STR_11 STRINGIFY(DCCP_SOCKOPT_RX_CCID) XLAT(DCCP_SOCKOPT_QPOLICY_ID), + #define XLAT_VAL_12 ((unsigned) (DCCP_SOCKOPT_QPOLICY_ID)) + #define XLAT_STR_12 STRINGIFY(DCCP_SOCKOPT_QPOLICY_ID) XLAT(DCCP_SOCKOPT_QPOLICY_TXQLEN), + #define XLAT_VAL_13 ((unsigned) (DCCP_SOCKOPT_QPOLICY_TXQLEN)) + #define XLAT_STR_13 STRINGIFY(DCCP_SOCKOPT_QPOLICY_TXQLEN) XLAT(DCCP_SOCKOPT_CCID_RX_INFO), + #define XLAT_VAL_14 ((unsigned) (DCCP_SOCKOPT_CCID_RX_INFO)) + #define XLAT_STR_14 STRINGIFY(DCCP_SOCKOPT_CCID_RX_INFO) XLAT(DCCP_SOCKOPT_CCID_TX_INFO), - XLAT_END + #define XLAT_VAL_15 ((unsigned) (DCCP_SOCKOPT_CCID_TX_INFO)) + #define XLAT_STR_15 STRINGIFY(DCCP_SOCKOPT_CCID_TX_INFO) }; +static +const struct xlat sock_dccp_options[1] = { { + .data = sock_dccp_options_xdata, + .size = ARRAY_SIZE(sock_dccp_options_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_dccp_options.in b/xlat/sock_dccp_options.in index 06a0efe8..e168b06b 100644 --- a/xlat/sock_dccp_options.in +++ b/xlat/sock_dccp_options.in @@ -1,4 +1,4 @@ -/* sort -k2,2n */ +#sorted sort -k2,2n DCCP_SOCKOPT_PACKET_SIZE 1 DCCP_SOCKOPT_SERVICE 2 DCCP_SOCKOPT_CHANGE_L 3 diff --git a/xlat/sock_ip_options.h b/xlat/sock_ip_options.h index 496db57c..1fba9484 100644 --- a/xlat/sock_ip_options.h +++ b/xlat/sock_ip_options.h @@ -12,161 +12,682 @@ # else -static -const struct xlat sock_ip_options[] = { +static const struct xlat_data sock_ip_options_xdata[] = { #if defined(IP_TOS) || (defined(HAVE_DECL_IP_TOS) && HAVE_DECL_IP_TOS) XLAT(IP_TOS), + #define XLAT_VAL_0 ((unsigned) (IP_TOS)) + #define XLAT_STR_0 STRINGIFY(IP_TOS) #endif #if defined(IP_TTL) || (defined(HAVE_DECL_IP_TTL) && HAVE_DECL_IP_TTL) XLAT(IP_TTL), + #define XLAT_VAL_1 ((unsigned) (IP_TTL)) + #define XLAT_STR_1 STRINGIFY(IP_TTL) #endif #if defined(IP_HDRINCL) || (defined(HAVE_DECL_IP_HDRINCL) && HAVE_DECL_IP_HDRINCL) XLAT(IP_HDRINCL), + #define XLAT_VAL_2 ((unsigned) (IP_HDRINCL)) + #define XLAT_STR_2 STRINGIFY(IP_HDRINCL) #endif #if defined(IP_OPTIONS) || (defined(HAVE_DECL_IP_OPTIONS) && HAVE_DECL_IP_OPTIONS) XLAT(IP_OPTIONS), + #define XLAT_VAL_3 ((unsigned) (IP_OPTIONS)) + #define XLAT_STR_3 STRINGIFY(IP_OPTIONS) #endif #if defined(IP_ROUTER_ALERT) || (defined(HAVE_DECL_IP_ROUTER_ALERT) && HAVE_DECL_IP_ROUTER_ALERT) XLAT(IP_ROUTER_ALERT), + #define XLAT_VAL_4 ((unsigned) (IP_ROUTER_ALERT)) + #define XLAT_STR_4 STRINGIFY(IP_ROUTER_ALERT) #endif #if defined(IP_RECVOPTIONS) || (defined(HAVE_DECL_IP_RECVOPTIONS) && HAVE_DECL_IP_RECVOPTIONS) XLAT(IP_RECVOPTIONS), + #define XLAT_VAL_5 ((unsigned) (IP_RECVOPTIONS)) + #define XLAT_STR_5 STRINGIFY(IP_RECVOPTIONS) #endif #if defined(IP_RECVOPTS) || (defined(HAVE_DECL_IP_RECVOPTS) && HAVE_DECL_IP_RECVOPTS) XLAT(IP_RECVOPTS), + #define XLAT_VAL_6 ((unsigned) (IP_RECVOPTS)) + #define XLAT_STR_6 STRINGIFY(IP_RECVOPTS) #endif #if defined(IP_RETOPTS) || (defined(HAVE_DECL_IP_RETOPTS) && HAVE_DECL_IP_RETOPTS) XLAT(IP_RETOPTS), + #define XLAT_VAL_7 ((unsigned) (IP_RETOPTS)) + #define XLAT_STR_7 STRINGIFY(IP_RETOPTS) #endif #if defined(IP_RECVRETOPTS) || (defined(HAVE_DECL_IP_RECVRETOPTS) && HAVE_DECL_IP_RECVRETOPTS) XLAT(IP_RECVRETOPTS), + #define XLAT_VAL_8 ((unsigned) (IP_RECVRETOPTS)) + #define XLAT_STR_8 STRINGIFY(IP_RECVRETOPTS) #endif #if defined(IP_RECVDSTADDR) || (defined(HAVE_DECL_IP_RECVDSTADDR) && HAVE_DECL_IP_RECVDSTADDR) XLAT(IP_RECVDSTADDR), + #define XLAT_VAL_9 ((unsigned) (IP_RECVDSTADDR)) + #define XLAT_STR_9 STRINGIFY(IP_RECVDSTADDR) #endif #if defined(IP_PKTINFO) || (defined(HAVE_DECL_IP_PKTINFO) && HAVE_DECL_IP_PKTINFO) XLAT(IP_PKTINFO), + #define XLAT_VAL_10 ((unsigned) (IP_PKTINFO)) + #define XLAT_STR_10 STRINGIFY(IP_PKTINFO) #endif #if defined(IP_PKTOPTIONS) || (defined(HAVE_DECL_IP_PKTOPTIONS) && HAVE_DECL_IP_PKTOPTIONS) XLAT(IP_PKTOPTIONS), + #define XLAT_VAL_11 ((unsigned) (IP_PKTOPTIONS)) + #define XLAT_STR_11 STRINGIFY(IP_PKTOPTIONS) #endif #if defined(IP_MTU_DISCOVER) || (defined(HAVE_DECL_IP_MTU_DISCOVER) && HAVE_DECL_IP_MTU_DISCOVER) XLAT(IP_MTU_DISCOVER), + #define XLAT_VAL_12 ((unsigned) (IP_MTU_DISCOVER)) + #define XLAT_STR_12 STRINGIFY(IP_MTU_DISCOVER) #endif #if defined(IP_RECVERR) || (defined(HAVE_DECL_IP_RECVERR) && HAVE_DECL_IP_RECVERR) XLAT(IP_RECVERR), + #define XLAT_VAL_13 ((unsigned) (IP_RECVERR)) + #define XLAT_STR_13 STRINGIFY(IP_RECVERR) #endif #if defined(IP_RECVTTL) || (defined(HAVE_DECL_IP_RECVTTL) && HAVE_DECL_IP_RECVTTL) XLAT(IP_RECVTTL), + #define XLAT_VAL_14 ((unsigned) (IP_RECVTTL)) + #define XLAT_STR_14 STRINGIFY(IP_RECVTTL) #endif #if defined(IP_RECVTOS) || (defined(HAVE_DECL_IP_RECVTOS) && HAVE_DECL_IP_RECVTOS) XLAT(IP_RECVTOS), + #define XLAT_VAL_15 ((unsigned) (IP_RECVTOS)) + #define XLAT_STR_15 STRINGIFY(IP_RECVTOS) #endif #if defined(IP_MTU) || (defined(HAVE_DECL_IP_MTU) && HAVE_DECL_IP_MTU) XLAT(IP_MTU), + #define XLAT_VAL_16 ((unsigned) (IP_MTU)) + #define XLAT_STR_16 STRINGIFY(IP_MTU) #endif #if defined(IP_MULTICAST_IF) || (defined(HAVE_DECL_IP_MULTICAST_IF) && HAVE_DECL_IP_MULTICAST_IF) XLAT(IP_MULTICAST_IF), + #define XLAT_VAL_17 ((unsigned) (IP_MULTICAST_IF)) + #define XLAT_STR_17 STRINGIFY(IP_MULTICAST_IF) #endif #if defined(IP_MULTICAST_TTL) || (defined(HAVE_DECL_IP_MULTICAST_TTL) && HAVE_DECL_IP_MULTICAST_TTL) XLAT(IP_MULTICAST_TTL), + #define XLAT_VAL_18 ((unsigned) (IP_MULTICAST_TTL)) + #define XLAT_STR_18 STRINGIFY(IP_MULTICAST_TTL) #endif #if defined(IP_MULTICAST_LOOP) || (defined(HAVE_DECL_IP_MULTICAST_LOOP) && HAVE_DECL_IP_MULTICAST_LOOP) XLAT(IP_MULTICAST_LOOP), + #define XLAT_VAL_19 ((unsigned) (IP_MULTICAST_LOOP)) + #define XLAT_STR_19 STRINGIFY(IP_MULTICAST_LOOP) #endif #if defined(IP_ADD_MEMBERSHIP) || (defined(HAVE_DECL_IP_ADD_MEMBERSHIP) && HAVE_DECL_IP_ADD_MEMBERSHIP) XLAT(IP_ADD_MEMBERSHIP), + #define XLAT_VAL_20 ((unsigned) (IP_ADD_MEMBERSHIP)) + #define XLAT_STR_20 STRINGIFY(IP_ADD_MEMBERSHIP) #endif #if defined(IP_DROP_MEMBERSHIP) || (defined(HAVE_DECL_IP_DROP_MEMBERSHIP) && HAVE_DECL_IP_DROP_MEMBERSHIP) XLAT(IP_DROP_MEMBERSHIP), + #define XLAT_VAL_21 ((unsigned) (IP_DROP_MEMBERSHIP)) + #define XLAT_STR_21 STRINGIFY(IP_DROP_MEMBERSHIP) #endif #if defined(IP_BROADCAST_IF) || (defined(HAVE_DECL_IP_BROADCAST_IF) && HAVE_DECL_IP_BROADCAST_IF) XLAT(IP_BROADCAST_IF), + #define XLAT_VAL_22 ((unsigned) (IP_BROADCAST_IF)) + #define XLAT_STR_22 STRINGIFY(IP_BROADCAST_IF) #endif #if defined(IP_RECVIFINDEX) || (defined(HAVE_DECL_IP_RECVIFINDEX) && HAVE_DECL_IP_RECVIFINDEX) XLAT(IP_RECVIFINDEX), + #define XLAT_VAL_23 ((unsigned) (IP_RECVIFINDEX)) + #define XLAT_STR_23 STRINGIFY(IP_RECVIFINDEX) #endif #if defined(IP_MSFILTER) || (defined(HAVE_DECL_IP_MSFILTER) && HAVE_DECL_IP_MSFILTER) XLAT(IP_MSFILTER), + #define XLAT_VAL_24 ((unsigned) (IP_MSFILTER)) + #define XLAT_STR_24 STRINGIFY(IP_MSFILTER) #endif #if defined(IP_FREEBIND) || (defined(HAVE_DECL_IP_FREEBIND) && HAVE_DECL_IP_FREEBIND) XLAT(IP_FREEBIND), + #define XLAT_VAL_25 ((unsigned) (IP_FREEBIND)) + #define XLAT_STR_25 STRINGIFY(IP_FREEBIND) #endif #if defined(IP_IPSEC_POLICY) || (defined(HAVE_DECL_IP_IPSEC_POLICY) && HAVE_DECL_IP_IPSEC_POLICY) XLAT(IP_IPSEC_POLICY), + #define XLAT_VAL_26 ((unsigned) (IP_IPSEC_POLICY)) + #define XLAT_STR_26 STRINGIFY(IP_IPSEC_POLICY) #endif #if defined(IP_XFRM_POLICY) || (defined(HAVE_DECL_IP_XFRM_POLICY) && HAVE_DECL_IP_XFRM_POLICY) XLAT(IP_XFRM_POLICY), + #define XLAT_VAL_27 ((unsigned) (IP_XFRM_POLICY)) + #define XLAT_STR_27 STRINGIFY(IP_XFRM_POLICY) #endif #if defined(IP_PASSSEC) || (defined(HAVE_DECL_IP_PASSSEC) && HAVE_DECL_IP_PASSSEC) XLAT(IP_PASSSEC), + #define XLAT_VAL_28 ((unsigned) (IP_PASSSEC)) + #define XLAT_STR_28 STRINGIFY(IP_PASSSEC) #endif #if defined(IP_TRANSPARENT) || (defined(HAVE_DECL_IP_TRANSPARENT) && HAVE_DECL_IP_TRANSPARENT) XLAT(IP_TRANSPARENT), + #define XLAT_VAL_29 ((unsigned) (IP_TRANSPARENT)) + #define XLAT_STR_29 STRINGIFY(IP_TRANSPARENT) #endif #if defined(IP_ORIGDSTADDR) || (defined(HAVE_DECL_IP_ORIGDSTADDR) && HAVE_DECL_IP_ORIGDSTADDR) XLAT(IP_ORIGDSTADDR), + #define XLAT_VAL_30 ((unsigned) (IP_ORIGDSTADDR)) + #define XLAT_STR_30 STRINGIFY(IP_ORIGDSTADDR) #endif #if defined(IP_RECVORIGDSTADDR) || (defined(HAVE_DECL_IP_RECVORIGDSTADDR) && HAVE_DECL_IP_RECVORIGDSTADDR) XLAT(IP_RECVORIGDSTADDR), + #define XLAT_VAL_31 ((unsigned) (IP_RECVORIGDSTADDR)) + #define XLAT_STR_31 STRINGIFY(IP_RECVORIGDSTADDR) #endif #if defined(IP_MINTTL) || (defined(HAVE_DECL_IP_MINTTL) && HAVE_DECL_IP_MINTTL) XLAT(IP_MINTTL), + #define XLAT_VAL_32 ((unsigned) (IP_MINTTL)) + #define XLAT_STR_32 STRINGIFY(IP_MINTTL) #endif #if defined(IP_NODEFRAG) || (defined(HAVE_DECL_IP_NODEFRAG) && HAVE_DECL_IP_NODEFRAG) XLAT(IP_NODEFRAG), + #define XLAT_VAL_33 ((unsigned) (IP_NODEFRAG)) + #define XLAT_STR_33 STRINGIFY(IP_NODEFRAG) #endif #if defined(IP_CHECKSUM) || (defined(HAVE_DECL_IP_CHECKSUM) && HAVE_DECL_IP_CHECKSUM) XLAT(IP_CHECKSUM), + #define XLAT_VAL_34 ((unsigned) (IP_CHECKSUM)) + #define XLAT_STR_34 STRINGIFY(IP_CHECKSUM) #endif #if defined(IP_BIND_ADDRESS_NO_PORT) || (defined(HAVE_DECL_IP_BIND_ADDRESS_NO_PORT) && HAVE_DECL_IP_BIND_ADDRESS_NO_PORT) XLAT(IP_BIND_ADDRESS_NO_PORT), + #define XLAT_VAL_35 ((unsigned) (IP_BIND_ADDRESS_NO_PORT)) + #define XLAT_STR_35 STRINGIFY(IP_BIND_ADDRESS_NO_PORT) #endif #if defined(IP_RECVFRAGSIZE) || (defined(HAVE_DECL_IP_RECVFRAGSIZE) && HAVE_DECL_IP_RECVFRAGSIZE) XLAT(IP_RECVFRAGSIZE), + #define XLAT_VAL_36 ((unsigned) (IP_RECVFRAGSIZE)) + #define XLAT_STR_36 STRINGIFY(IP_RECVFRAGSIZE) +#endif +#if defined(IP_RECVERR_RFC4884) || (defined(HAVE_DECL_IP_RECVERR_RFC4884) && HAVE_DECL_IP_RECVERR_RFC4884) + XLAT(IP_RECVERR_RFC4884), + #define XLAT_VAL_37 ((unsigned) (IP_RECVERR_RFC4884)) + #define XLAT_STR_37 STRINGIFY(IP_RECVERR_RFC4884) #endif #if defined(IP_UNBLOCK_SOURCE) || (defined(HAVE_DECL_IP_UNBLOCK_SOURCE) && HAVE_DECL_IP_UNBLOCK_SOURCE) XLAT(IP_UNBLOCK_SOURCE), + #define XLAT_VAL_38 ((unsigned) (IP_UNBLOCK_SOURCE)) + #define XLAT_STR_38 STRINGIFY(IP_UNBLOCK_SOURCE) #endif #if defined(IP_BLOCK_SOURCE) || (defined(HAVE_DECL_IP_BLOCK_SOURCE) && HAVE_DECL_IP_BLOCK_SOURCE) XLAT(IP_BLOCK_SOURCE), + #define XLAT_VAL_39 ((unsigned) (IP_BLOCK_SOURCE)) + #define XLAT_STR_39 STRINGIFY(IP_BLOCK_SOURCE) #endif #if defined(IP_ADD_SOURCE_MEMBERSHIP) || (defined(HAVE_DECL_IP_ADD_SOURCE_MEMBERSHIP) && HAVE_DECL_IP_ADD_SOURCE_MEMBERSHIP) XLAT(IP_ADD_SOURCE_MEMBERSHIP), + #define XLAT_VAL_40 ((unsigned) (IP_ADD_SOURCE_MEMBERSHIP)) + #define XLAT_STR_40 STRINGIFY(IP_ADD_SOURCE_MEMBERSHIP) #endif #if defined(IP_DROP_SOURCE_MEMBERSHIP) || (defined(HAVE_DECL_IP_DROP_SOURCE_MEMBERSHIP) && HAVE_DECL_IP_DROP_SOURCE_MEMBERSHIP) XLAT(IP_DROP_SOURCE_MEMBERSHIP), + #define XLAT_VAL_41 ((unsigned) (IP_DROP_SOURCE_MEMBERSHIP)) + #define XLAT_STR_41 STRINGIFY(IP_DROP_SOURCE_MEMBERSHIP) #endif #if defined(MCAST_JOIN_GROUP) || (defined(HAVE_DECL_MCAST_JOIN_GROUP) && HAVE_DECL_MCAST_JOIN_GROUP) XLAT(MCAST_JOIN_GROUP), + #define XLAT_VAL_42 ((unsigned) (MCAST_JOIN_GROUP)) + #define XLAT_STR_42 STRINGIFY(MCAST_JOIN_GROUP) #endif #if defined(MCAST_BLOCK_SOURCE) || (defined(HAVE_DECL_MCAST_BLOCK_SOURCE) && HAVE_DECL_MCAST_BLOCK_SOURCE) XLAT(MCAST_BLOCK_SOURCE), + #define XLAT_VAL_43 ((unsigned) (MCAST_BLOCK_SOURCE)) + #define XLAT_STR_43 STRINGIFY(MCAST_BLOCK_SOURCE) #endif #if defined(MCAST_UNBLOCK_SOURCE) || (defined(HAVE_DECL_MCAST_UNBLOCK_SOURCE) && HAVE_DECL_MCAST_UNBLOCK_SOURCE) XLAT(MCAST_UNBLOCK_SOURCE), + #define XLAT_VAL_44 ((unsigned) (MCAST_UNBLOCK_SOURCE)) + #define XLAT_STR_44 STRINGIFY(MCAST_UNBLOCK_SOURCE) #endif #if defined(MCAST_LEAVE_GROUP) || (defined(HAVE_DECL_MCAST_LEAVE_GROUP) && HAVE_DECL_MCAST_LEAVE_GROUP) XLAT(MCAST_LEAVE_GROUP), + #define XLAT_VAL_45 ((unsigned) (MCAST_LEAVE_GROUP)) + #define XLAT_STR_45 STRINGIFY(MCAST_LEAVE_GROUP) #endif #if defined(MCAST_JOIN_SOURCE_GROUP) || (defined(HAVE_DECL_MCAST_JOIN_SOURCE_GROUP) && HAVE_DECL_MCAST_JOIN_SOURCE_GROUP) XLAT(MCAST_JOIN_SOURCE_GROUP), + #define XLAT_VAL_46 ((unsigned) (MCAST_JOIN_SOURCE_GROUP)) + #define XLAT_STR_46 STRINGIFY(MCAST_JOIN_SOURCE_GROUP) #endif #if defined(MCAST_LEAVE_SOURCE_GROUP) || (defined(HAVE_DECL_MCAST_LEAVE_SOURCE_GROUP) && HAVE_DECL_MCAST_LEAVE_SOURCE_GROUP) XLAT(MCAST_LEAVE_SOURCE_GROUP), + #define XLAT_VAL_47 ((unsigned) (MCAST_LEAVE_SOURCE_GROUP)) + #define XLAT_STR_47 STRINGIFY(MCAST_LEAVE_SOURCE_GROUP) #endif #if defined(MCAST_MSFILTER) || (defined(HAVE_DECL_MCAST_MSFILTER) && HAVE_DECL_MCAST_MSFILTER) XLAT(MCAST_MSFILTER), + #define XLAT_VAL_48 ((unsigned) (MCAST_MSFILTER)) + #define XLAT_STR_48 STRINGIFY(MCAST_MSFILTER) #endif #if defined(IP_MULTICAST_ALL) || (defined(HAVE_DECL_IP_MULTICAST_ALL) && HAVE_DECL_IP_MULTICAST_ALL) XLAT(IP_MULTICAST_ALL), + #define XLAT_VAL_49 ((unsigned) (IP_MULTICAST_ALL)) + #define XLAT_STR_49 STRINGIFY(IP_MULTICAST_ALL) #endif #if defined(IP_UNICAST_IF) || (defined(HAVE_DECL_IP_UNICAST_IF) && HAVE_DECL_IP_UNICAST_IF) XLAT(IP_UNICAST_IF), + #define XLAT_VAL_50 ((unsigned) (IP_UNICAST_IF)) + #define XLAT_STR_50 STRINGIFY(IP_UNICAST_IF) #endif - XLAT_END }; +static +const struct xlat sock_ip_options[1] = { { + .data = sock_ip_options_xdata, + .size = ARRAY_SIZE(sock_ip_options_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif +# ifdef XLAT_VAL_41 + | XLAT_VAL_41 +# endif +# ifdef XLAT_VAL_42 + | XLAT_VAL_42 +# endif +# ifdef XLAT_VAL_43 + | XLAT_VAL_43 +# endif +# ifdef XLAT_VAL_44 + | XLAT_VAL_44 +# endif +# ifdef XLAT_VAL_45 + | XLAT_VAL_45 +# endif +# ifdef XLAT_VAL_46 + | XLAT_VAL_46 +# endif +# ifdef XLAT_VAL_47 + | XLAT_VAL_47 +# endif +# ifdef XLAT_VAL_48 + | XLAT_VAL_48 +# endif +# ifdef XLAT_VAL_49 + | XLAT_VAL_49 +# endif +# ifdef XLAT_VAL_50 + | XLAT_VAL_50 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif +# ifdef XLAT_STR_41 + + sizeof(XLAT_STR_41) +# endif +# ifdef XLAT_STR_42 + + sizeof(XLAT_STR_42) +# endif +# ifdef XLAT_STR_43 + + sizeof(XLAT_STR_43) +# endif +# ifdef XLAT_STR_44 + + sizeof(XLAT_STR_44) +# endif +# ifdef XLAT_STR_45 + + sizeof(XLAT_STR_45) +# endif +# ifdef XLAT_STR_46 + + sizeof(XLAT_STR_46) +# endif +# ifdef XLAT_STR_47 + + sizeof(XLAT_STR_47) +# endif +# ifdef XLAT_STR_48 + + sizeof(XLAT_STR_48) +# endif +# ifdef XLAT_STR_49 + + sizeof(XLAT_STR_49) +# endif +# ifdef XLAT_STR_50 + + sizeof(XLAT_STR_50) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 +# undef XLAT_STR_41 +# undef XLAT_VAL_41 +# undef XLAT_STR_42 +# undef XLAT_VAL_42 +# undef XLAT_STR_43 +# undef XLAT_VAL_43 +# undef XLAT_STR_44 +# undef XLAT_VAL_44 +# undef XLAT_STR_45 +# undef XLAT_VAL_45 +# undef XLAT_STR_46 +# undef XLAT_VAL_46 +# undef XLAT_STR_47 +# undef XLAT_VAL_47 +# undef XLAT_STR_48 +# undef XLAT_VAL_48 +# undef XLAT_STR_49 +# undef XLAT_VAL_49 +# undef XLAT_STR_50 +# undef XLAT_VAL_50 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_ip_options.in b/xlat/sock_ip_options.in index 51ed1343..d9a60d38 100644 --- a/xlat/sock_ip_options.in +++ b/xlat/sock_ip_options.in @@ -35,6 +35,7 @@ IP_NODEFRAG IP_CHECKSUM IP_BIND_ADDRESS_NO_PORT IP_RECVFRAGSIZE +IP_RECVERR_RFC4884 IP_UNBLOCK_SOURCE IP_BLOCK_SOURCE IP_ADD_SOURCE_MEMBERSHIP diff --git a/xlat/sock_ipv6_options.h b/xlat/sock_ipv6_options.h index ad58b5d1..f1a217d9 100644 --- a/xlat/sock_ipv6_options.h +++ b/xlat/sock_ipv6_options.h @@ -12,203 +12,864 @@ # else -static -const struct xlat sock_ipv6_options[] = { +static const struct xlat_data sock_ipv6_options_xdata[] = { #if defined(IPV6_ADDRFORM) || (defined(HAVE_DECL_IPV6_ADDRFORM) && HAVE_DECL_IPV6_ADDRFORM) XLAT(IPV6_ADDRFORM), + #define XLAT_VAL_0 ((unsigned) (IPV6_ADDRFORM)) + #define XLAT_STR_0 STRINGIFY(IPV6_ADDRFORM) #endif #if defined(IPV6_2292PKTINFO) || (defined(HAVE_DECL_IPV6_2292PKTINFO) && HAVE_DECL_IPV6_2292PKTINFO) XLAT(IPV6_2292PKTINFO), + #define XLAT_VAL_1 ((unsigned) (IPV6_2292PKTINFO)) + #define XLAT_STR_1 STRINGIFY(IPV6_2292PKTINFO) #endif #if defined(IPV6_2292HOPOPTS) || (defined(HAVE_DECL_IPV6_2292HOPOPTS) && HAVE_DECL_IPV6_2292HOPOPTS) XLAT(IPV6_2292HOPOPTS), + #define XLAT_VAL_2 ((unsigned) (IPV6_2292HOPOPTS)) + #define XLAT_STR_2 STRINGIFY(IPV6_2292HOPOPTS) #endif #if defined(IPV6_2292DSTOPTS) || (defined(HAVE_DECL_IPV6_2292DSTOPTS) && HAVE_DECL_IPV6_2292DSTOPTS) XLAT(IPV6_2292DSTOPTS), + #define XLAT_VAL_3 ((unsigned) (IPV6_2292DSTOPTS)) + #define XLAT_STR_3 STRINGIFY(IPV6_2292DSTOPTS) #endif #if defined(IPV6_2292RTHDR) || (defined(HAVE_DECL_IPV6_2292RTHDR) && HAVE_DECL_IPV6_2292RTHDR) XLAT(IPV6_2292RTHDR), + #define XLAT_VAL_4 ((unsigned) (IPV6_2292RTHDR)) + #define XLAT_STR_4 STRINGIFY(IPV6_2292RTHDR) #endif #if defined(IPV6_2292PKTOPTIONS) || (defined(HAVE_DECL_IPV6_2292PKTOPTIONS) && HAVE_DECL_IPV6_2292PKTOPTIONS) XLAT(IPV6_2292PKTOPTIONS), + #define XLAT_VAL_5 ((unsigned) (IPV6_2292PKTOPTIONS)) + #define XLAT_STR_5 STRINGIFY(IPV6_2292PKTOPTIONS) #endif #if defined(IPV6_CHECKSUM) || (defined(HAVE_DECL_IPV6_CHECKSUM) && HAVE_DECL_IPV6_CHECKSUM) XLAT(IPV6_CHECKSUM), + #define XLAT_VAL_6 ((unsigned) (IPV6_CHECKSUM)) + #define XLAT_STR_6 STRINGIFY(IPV6_CHECKSUM) #endif #if defined(IPV6_2292HOPLIMIT) || (defined(HAVE_DECL_IPV6_2292HOPLIMIT) && HAVE_DECL_IPV6_2292HOPLIMIT) XLAT(IPV6_2292HOPLIMIT), + #define XLAT_VAL_7 ((unsigned) (IPV6_2292HOPLIMIT)) + #define XLAT_STR_7 STRINGIFY(IPV6_2292HOPLIMIT) #endif #if defined(IPV6_NEXTHOP) || (defined(HAVE_DECL_IPV6_NEXTHOP) && HAVE_DECL_IPV6_NEXTHOP) XLAT(IPV6_NEXTHOP), + #define XLAT_VAL_8 ((unsigned) (IPV6_NEXTHOP)) + #define XLAT_STR_8 STRINGIFY(IPV6_NEXTHOP) #endif #if defined(IPV6_AUTHHDR) || (defined(HAVE_DECL_IPV6_AUTHHDR) && HAVE_DECL_IPV6_AUTHHDR) XLAT(IPV6_AUTHHDR), + #define XLAT_VAL_9 ((unsigned) (IPV6_AUTHHDR)) + #define XLAT_STR_9 STRINGIFY(IPV6_AUTHHDR) #endif #if defined(IPV6_FLOWINFO) || (defined(HAVE_DECL_IPV6_FLOWINFO) && HAVE_DECL_IPV6_FLOWINFO) XLAT(IPV6_FLOWINFO), + #define XLAT_VAL_10 ((unsigned) (IPV6_FLOWINFO)) + #define XLAT_STR_10 STRINGIFY(IPV6_FLOWINFO) #endif #if defined(IPV6_UNICAST_HOPS) || (defined(HAVE_DECL_IPV6_UNICAST_HOPS) && HAVE_DECL_IPV6_UNICAST_HOPS) XLAT(IPV6_UNICAST_HOPS), + #define XLAT_VAL_11 ((unsigned) (IPV6_UNICAST_HOPS)) + #define XLAT_STR_11 STRINGIFY(IPV6_UNICAST_HOPS) #endif #if defined(IPV6_MULTICAST_IF) || (defined(HAVE_DECL_IPV6_MULTICAST_IF) && HAVE_DECL_IPV6_MULTICAST_IF) XLAT(IPV6_MULTICAST_IF), + #define XLAT_VAL_12 ((unsigned) (IPV6_MULTICAST_IF)) + #define XLAT_STR_12 STRINGIFY(IPV6_MULTICAST_IF) #endif #if defined(IPV6_MULTICAST_HOPS) || (defined(HAVE_DECL_IPV6_MULTICAST_HOPS) && HAVE_DECL_IPV6_MULTICAST_HOPS) XLAT(IPV6_MULTICAST_HOPS), + #define XLAT_VAL_13 ((unsigned) (IPV6_MULTICAST_HOPS)) + #define XLAT_STR_13 STRINGIFY(IPV6_MULTICAST_HOPS) #endif #if defined(IPV6_MULTICAST_LOOP) || (defined(HAVE_DECL_IPV6_MULTICAST_LOOP) && HAVE_DECL_IPV6_MULTICAST_LOOP) XLAT(IPV6_MULTICAST_LOOP), + #define XLAT_VAL_14 ((unsigned) (IPV6_MULTICAST_LOOP)) + #define XLAT_STR_14 STRINGIFY(IPV6_MULTICAST_LOOP) #endif #if defined(IPV6_ADD_MEMBERSHIP) || (defined(HAVE_DECL_IPV6_ADD_MEMBERSHIP) && HAVE_DECL_IPV6_ADD_MEMBERSHIP) XLAT(IPV6_ADD_MEMBERSHIP), + #define XLAT_VAL_15 ((unsigned) (IPV6_ADD_MEMBERSHIP)) + #define XLAT_STR_15 STRINGIFY(IPV6_ADD_MEMBERSHIP) #endif #if defined(IPV6_DROP_MEMBERSHIP) || (defined(HAVE_DECL_IPV6_DROP_MEMBERSHIP) && HAVE_DECL_IPV6_DROP_MEMBERSHIP) XLAT(IPV6_DROP_MEMBERSHIP), + #define XLAT_VAL_16 ((unsigned) (IPV6_DROP_MEMBERSHIP)) + #define XLAT_STR_16 STRINGIFY(IPV6_DROP_MEMBERSHIP) #endif #if defined(IPV6_ROUTER_ALERT) || (defined(HAVE_DECL_IPV6_ROUTER_ALERT) && HAVE_DECL_IPV6_ROUTER_ALERT) XLAT(IPV6_ROUTER_ALERT), + #define XLAT_VAL_17 ((unsigned) (IPV6_ROUTER_ALERT)) + #define XLAT_STR_17 STRINGIFY(IPV6_ROUTER_ALERT) #endif #if defined(IPV6_MTU_DISCOVER) || (defined(HAVE_DECL_IPV6_MTU_DISCOVER) && HAVE_DECL_IPV6_MTU_DISCOVER) XLAT(IPV6_MTU_DISCOVER), + #define XLAT_VAL_18 ((unsigned) (IPV6_MTU_DISCOVER)) + #define XLAT_STR_18 STRINGIFY(IPV6_MTU_DISCOVER) #endif #if defined(IPV6_MTU) || (defined(HAVE_DECL_IPV6_MTU) && HAVE_DECL_IPV6_MTU) XLAT(IPV6_MTU), + #define XLAT_VAL_19 ((unsigned) (IPV6_MTU)) + #define XLAT_STR_19 STRINGIFY(IPV6_MTU) #endif #if defined(IPV6_RECVERR) || (defined(HAVE_DECL_IPV6_RECVERR) && HAVE_DECL_IPV6_RECVERR) XLAT(IPV6_RECVERR), + #define XLAT_VAL_20 ((unsigned) (IPV6_RECVERR)) + #define XLAT_STR_20 STRINGIFY(IPV6_RECVERR) #endif #if defined(IPV6_V6ONLY) || (defined(HAVE_DECL_IPV6_V6ONLY) && HAVE_DECL_IPV6_V6ONLY) XLAT(IPV6_V6ONLY), + #define XLAT_VAL_21 ((unsigned) (IPV6_V6ONLY)) + #define XLAT_STR_21 STRINGIFY(IPV6_V6ONLY) #endif #if defined(IPV6_JOIN_ANYCAST) || (defined(HAVE_DECL_IPV6_JOIN_ANYCAST) && HAVE_DECL_IPV6_JOIN_ANYCAST) XLAT(IPV6_JOIN_ANYCAST), + #define XLAT_VAL_22 ((unsigned) (IPV6_JOIN_ANYCAST)) + #define XLAT_STR_22 STRINGIFY(IPV6_JOIN_ANYCAST) #endif #if defined(IPV6_LEAVE_ANYCAST) || (defined(HAVE_DECL_IPV6_LEAVE_ANYCAST) && HAVE_DECL_IPV6_LEAVE_ANYCAST) XLAT(IPV6_LEAVE_ANYCAST), + #define XLAT_VAL_23 ((unsigned) (IPV6_LEAVE_ANYCAST)) + #define XLAT_STR_23 STRINGIFY(IPV6_LEAVE_ANYCAST) #endif #if defined(IPV6_MULTICAST_ALL) || (defined(HAVE_DECL_IPV6_MULTICAST_ALL) && HAVE_DECL_IPV6_MULTICAST_ALL) XLAT(IPV6_MULTICAST_ALL), + #define XLAT_VAL_24 ((unsigned) (IPV6_MULTICAST_ALL)) + #define XLAT_STR_24 STRINGIFY(IPV6_MULTICAST_ALL) #endif #if defined(IPV6_ROUTER_ALERT_ISOLATE) || (defined(HAVE_DECL_IPV6_ROUTER_ALERT_ISOLATE) && HAVE_DECL_IPV6_ROUTER_ALERT_ISOLATE) XLAT(IPV6_ROUTER_ALERT_ISOLATE), + #define XLAT_VAL_25 ((unsigned) (IPV6_ROUTER_ALERT_ISOLATE)) + #define XLAT_STR_25 STRINGIFY(IPV6_ROUTER_ALERT_ISOLATE) +#endif +#if defined(IPV6_RECVERR_RFC4884) || (defined(HAVE_DECL_IPV6_RECVERR_RFC4884) && HAVE_DECL_IPV6_RECVERR_RFC4884) + XLAT(IPV6_RECVERR_RFC4884), + #define XLAT_VAL_26 ((unsigned) (IPV6_RECVERR_RFC4884)) + #define XLAT_STR_26 STRINGIFY(IPV6_RECVERR_RFC4884) #endif #if defined(IPV6_FLOWLABEL_MGR) || (defined(HAVE_DECL_IPV6_FLOWLABEL_MGR) && HAVE_DECL_IPV6_FLOWLABEL_MGR) XLAT(IPV6_FLOWLABEL_MGR), + #define XLAT_VAL_27 ((unsigned) (IPV6_FLOWLABEL_MGR)) + #define XLAT_STR_27 STRINGIFY(IPV6_FLOWLABEL_MGR) #endif #if defined(IPV6_FLOWINFO_SEND) || (defined(HAVE_DECL_IPV6_FLOWINFO_SEND) && HAVE_DECL_IPV6_FLOWINFO_SEND) XLAT(IPV6_FLOWINFO_SEND), + #define XLAT_VAL_28 ((unsigned) (IPV6_FLOWINFO_SEND)) + #define XLAT_STR_28 STRINGIFY(IPV6_FLOWINFO_SEND) #endif #if defined(IPV6_IPSEC_POLICY) || (defined(HAVE_DECL_IPV6_IPSEC_POLICY) && HAVE_DECL_IPV6_IPSEC_POLICY) XLAT(IPV6_IPSEC_POLICY), + #define XLAT_VAL_29 ((unsigned) (IPV6_IPSEC_POLICY)) + #define XLAT_STR_29 STRINGIFY(IPV6_IPSEC_POLICY) #endif #if defined(IPV6_XFRM_POLICY) || (defined(HAVE_DECL_IPV6_XFRM_POLICY) && HAVE_DECL_IPV6_XFRM_POLICY) XLAT(IPV6_XFRM_POLICY), + #define XLAT_VAL_30 ((unsigned) (IPV6_XFRM_POLICY)) + #define XLAT_STR_30 STRINGIFY(IPV6_XFRM_POLICY) #endif #if defined(IPV6_HDRINCL) || (defined(HAVE_DECL_IPV6_HDRINCL) && HAVE_DECL_IPV6_HDRINCL) XLAT(IPV6_HDRINCL), + #define XLAT_VAL_31 ((unsigned) (IPV6_HDRINCL)) + #define XLAT_STR_31 STRINGIFY(IPV6_HDRINCL) #endif #if defined(MCAST_JOIN_GROUP) || (defined(HAVE_DECL_MCAST_JOIN_GROUP) && HAVE_DECL_MCAST_JOIN_GROUP) XLAT(MCAST_JOIN_GROUP), + #define XLAT_VAL_32 ((unsigned) (MCAST_JOIN_GROUP)) + #define XLAT_STR_32 STRINGIFY(MCAST_JOIN_GROUP) #endif #if defined(MCAST_BLOCK_SOURCE) || (defined(HAVE_DECL_MCAST_BLOCK_SOURCE) && HAVE_DECL_MCAST_BLOCK_SOURCE) XLAT(MCAST_BLOCK_SOURCE), + #define XLAT_VAL_33 ((unsigned) (MCAST_BLOCK_SOURCE)) + #define XLAT_STR_33 STRINGIFY(MCAST_BLOCK_SOURCE) #endif #if defined(MCAST_UNBLOCK_SOURCE) || (defined(HAVE_DECL_MCAST_UNBLOCK_SOURCE) && HAVE_DECL_MCAST_UNBLOCK_SOURCE) XLAT(MCAST_UNBLOCK_SOURCE), + #define XLAT_VAL_34 ((unsigned) (MCAST_UNBLOCK_SOURCE)) + #define XLAT_STR_34 STRINGIFY(MCAST_UNBLOCK_SOURCE) #endif #if defined(MCAST_LEAVE_GROUP) || (defined(HAVE_DECL_MCAST_LEAVE_GROUP) && HAVE_DECL_MCAST_LEAVE_GROUP) XLAT(MCAST_LEAVE_GROUP), + #define XLAT_VAL_35 ((unsigned) (MCAST_LEAVE_GROUP)) + #define XLAT_STR_35 STRINGIFY(MCAST_LEAVE_GROUP) #endif #if defined(MCAST_JOIN_SOURCE_GROUP) || (defined(HAVE_DECL_MCAST_JOIN_SOURCE_GROUP) && HAVE_DECL_MCAST_JOIN_SOURCE_GROUP) XLAT(MCAST_JOIN_SOURCE_GROUP), + #define XLAT_VAL_36 ((unsigned) (MCAST_JOIN_SOURCE_GROUP)) + #define XLAT_STR_36 STRINGIFY(MCAST_JOIN_SOURCE_GROUP) #endif #if defined(MCAST_LEAVE_SOURCE_GROUP) || (defined(HAVE_DECL_MCAST_LEAVE_SOURCE_GROUP) && HAVE_DECL_MCAST_LEAVE_SOURCE_GROUP) XLAT(MCAST_LEAVE_SOURCE_GROUP), + #define XLAT_VAL_37 ((unsigned) (MCAST_LEAVE_SOURCE_GROUP)) + #define XLAT_STR_37 STRINGIFY(MCAST_LEAVE_SOURCE_GROUP) #endif #if defined(MCAST_MSFILTER) || (defined(HAVE_DECL_MCAST_MSFILTER) && HAVE_DECL_MCAST_MSFILTER) XLAT(MCAST_MSFILTER), + #define XLAT_VAL_38 ((unsigned) (MCAST_MSFILTER)) + #define XLAT_STR_38 STRINGIFY(MCAST_MSFILTER) #endif #if defined(IPV6_RECVPKTINFO) || (defined(HAVE_DECL_IPV6_RECVPKTINFO) && HAVE_DECL_IPV6_RECVPKTINFO) XLAT(IPV6_RECVPKTINFO), + #define XLAT_VAL_39 ((unsigned) (IPV6_RECVPKTINFO)) + #define XLAT_STR_39 STRINGIFY(IPV6_RECVPKTINFO) #endif #if defined(IPV6_PKTINFO) || (defined(HAVE_DECL_IPV6_PKTINFO) && HAVE_DECL_IPV6_PKTINFO) XLAT(IPV6_PKTINFO), + #define XLAT_VAL_40 ((unsigned) (IPV6_PKTINFO)) + #define XLAT_STR_40 STRINGIFY(IPV6_PKTINFO) #endif #if defined(IPV6_RECVHOPLIMIT) || (defined(HAVE_DECL_IPV6_RECVHOPLIMIT) && HAVE_DECL_IPV6_RECVHOPLIMIT) XLAT(IPV6_RECVHOPLIMIT), + #define XLAT_VAL_41 ((unsigned) (IPV6_RECVHOPLIMIT)) + #define XLAT_STR_41 STRINGIFY(IPV6_RECVHOPLIMIT) #endif #if defined(IPV6_HOPLIMIT) || (defined(HAVE_DECL_IPV6_HOPLIMIT) && HAVE_DECL_IPV6_HOPLIMIT) XLAT(IPV6_HOPLIMIT), + #define XLAT_VAL_42 ((unsigned) (IPV6_HOPLIMIT)) + #define XLAT_STR_42 STRINGIFY(IPV6_HOPLIMIT) #endif #if defined(IPV6_RECVHOPOPTS) || (defined(HAVE_DECL_IPV6_RECVHOPOPTS) && HAVE_DECL_IPV6_RECVHOPOPTS) XLAT(IPV6_RECVHOPOPTS), + #define XLAT_VAL_43 ((unsigned) (IPV6_RECVHOPOPTS)) + #define XLAT_STR_43 STRINGIFY(IPV6_RECVHOPOPTS) #endif #if defined(IPV6_HOPOPTS) || (defined(HAVE_DECL_IPV6_HOPOPTS) && HAVE_DECL_IPV6_HOPOPTS) XLAT(IPV6_HOPOPTS), + #define XLAT_VAL_44 ((unsigned) (IPV6_HOPOPTS)) + #define XLAT_STR_44 STRINGIFY(IPV6_HOPOPTS) #endif #if defined(IPV6_RTHDRDSTOPTS) || (defined(HAVE_DECL_IPV6_RTHDRDSTOPTS) && HAVE_DECL_IPV6_RTHDRDSTOPTS) XLAT(IPV6_RTHDRDSTOPTS), + #define XLAT_VAL_45 ((unsigned) (IPV6_RTHDRDSTOPTS)) + #define XLAT_STR_45 STRINGIFY(IPV6_RTHDRDSTOPTS) #endif #if defined(IPV6_RECVRTHDR) || (defined(HAVE_DECL_IPV6_RECVRTHDR) && HAVE_DECL_IPV6_RECVRTHDR) XLAT(IPV6_RECVRTHDR), + #define XLAT_VAL_46 ((unsigned) (IPV6_RECVRTHDR)) + #define XLAT_STR_46 STRINGIFY(IPV6_RECVRTHDR) #endif #if defined(IPV6_RTHDR) || (defined(HAVE_DECL_IPV6_RTHDR) && HAVE_DECL_IPV6_RTHDR) XLAT(IPV6_RTHDR), + #define XLAT_VAL_47 ((unsigned) (IPV6_RTHDR)) + #define XLAT_STR_47 STRINGIFY(IPV6_RTHDR) #endif #if defined(IPV6_RECVDSTOPTS) || (defined(HAVE_DECL_IPV6_RECVDSTOPTS) && HAVE_DECL_IPV6_RECVDSTOPTS) XLAT(IPV6_RECVDSTOPTS), + #define XLAT_VAL_48 ((unsigned) (IPV6_RECVDSTOPTS)) + #define XLAT_STR_48 STRINGIFY(IPV6_RECVDSTOPTS) #endif #if defined(IPV6_DSTOPTS) || (defined(HAVE_DECL_IPV6_DSTOPTS) && HAVE_DECL_IPV6_DSTOPTS) XLAT(IPV6_DSTOPTS), + #define XLAT_VAL_49 ((unsigned) (IPV6_DSTOPTS)) + #define XLAT_STR_49 STRINGIFY(IPV6_DSTOPTS) #endif #if defined(IPV6_RECVPATHMTU) || (defined(HAVE_DECL_IPV6_RECVPATHMTU) && HAVE_DECL_IPV6_RECVPATHMTU) XLAT(IPV6_RECVPATHMTU), + #define XLAT_VAL_50 ((unsigned) (IPV6_RECVPATHMTU)) + #define XLAT_STR_50 STRINGIFY(IPV6_RECVPATHMTU) #endif #if defined(IPV6_PATHMTU) || (defined(HAVE_DECL_IPV6_PATHMTU) && HAVE_DECL_IPV6_PATHMTU) XLAT(IPV6_PATHMTU), + #define XLAT_VAL_51 ((unsigned) (IPV6_PATHMTU)) + #define XLAT_STR_51 STRINGIFY(IPV6_PATHMTU) #endif #if defined(IPV6_DONTFRAG) || (defined(HAVE_DECL_IPV6_DONTFRAG) && HAVE_DECL_IPV6_DONTFRAG) XLAT(IPV6_DONTFRAG), + #define XLAT_VAL_52 ((unsigned) (IPV6_DONTFRAG)) + #define XLAT_STR_52 STRINGIFY(IPV6_DONTFRAG) #endif #if defined(IPV6_USE_MIN_MTU) || (defined(HAVE_DECL_IPV6_USE_MIN_MTU) && HAVE_DECL_IPV6_USE_MIN_MTU) XLAT(IPV6_USE_MIN_MTU), + #define XLAT_VAL_53 ((unsigned) (IPV6_USE_MIN_MTU)) + #define XLAT_STR_53 STRINGIFY(IPV6_USE_MIN_MTU) #endif #if defined(IPV6_RECVTCLASS) || (defined(HAVE_DECL_IPV6_RECVTCLASS) && HAVE_DECL_IPV6_RECVTCLASS) XLAT(IPV6_RECVTCLASS), + #define XLAT_VAL_54 ((unsigned) (IPV6_RECVTCLASS)) + #define XLAT_STR_54 STRINGIFY(IPV6_RECVTCLASS) #endif #if defined(IPV6_TCLASS) || (defined(HAVE_DECL_IPV6_TCLASS) && HAVE_DECL_IPV6_TCLASS) XLAT(IPV6_TCLASS), + #define XLAT_VAL_55 ((unsigned) (IPV6_TCLASS)) + #define XLAT_STR_55 STRINGIFY(IPV6_TCLASS) #endif #if defined(IPV6_AUTOFLOWLABEL) || (defined(HAVE_DECL_IPV6_AUTOFLOWLABEL) && HAVE_DECL_IPV6_AUTOFLOWLABEL) XLAT(IPV6_AUTOFLOWLABEL), + #define XLAT_VAL_56 ((unsigned) (IPV6_AUTOFLOWLABEL)) + #define XLAT_STR_56 STRINGIFY(IPV6_AUTOFLOWLABEL) #endif #if defined(IPV6_ADDR_PREFERENCES) || (defined(HAVE_DECL_IPV6_ADDR_PREFERENCES) && HAVE_DECL_IPV6_ADDR_PREFERENCES) XLAT(IPV6_ADDR_PREFERENCES), + #define XLAT_VAL_57 ((unsigned) (IPV6_ADDR_PREFERENCES)) + #define XLAT_STR_57 STRINGIFY(IPV6_ADDR_PREFERENCES) #endif #if defined(IPV6_MINHOPCOUNT) || (defined(HAVE_DECL_IPV6_MINHOPCOUNT) && HAVE_DECL_IPV6_MINHOPCOUNT) XLAT(IPV6_MINHOPCOUNT), + #define XLAT_VAL_58 ((unsigned) (IPV6_MINHOPCOUNT)) + #define XLAT_STR_58 STRINGIFY(IPV6_MINHOPCOUNT) #endif #if defined(IPV6_ORIGDSTADDR) || (defined(HAVE_DECL_IPV6_ORIGDSTADDR) && HAVE_DECL_IPV6_ORIGDSTADDR) XLAT(IPV6_ORIGDSTADDR), + #define XLAT_VAL_59 ((unsigned) (IPV6_ORIGDSTADDR)) + #define XLAT_STR_59 STRINGIFY(IPV6_ORIGDSTADDR) #endif #if defined(IPV6_RECVORIGDSTADDR) || (defined(HAVE_DECL_IPV6_RECVORIGDSTADDR) && HAVE_DECL_IPV6_RECVORIGDSTADDR) XLAT(IPV6_RECVORIGDSTADDR), + #define XLAT_VAL_60 ((unsigned) (IPV6_RECVORIGDSTADDR)) + #define XLAT_STR_60 STRINGIFY(IPV6_RECVORIGDSTADDR) #endif #if defined(IPV6_TRANSPARENT) || (defined(HAVE_DECL_IPV6_TRANSPARENT) && HAVE_DECL_IPV6_TRANSPARENT) XLAT(IPV6_TRANSPARENT), + #define XLAT_VAL_61 ((unsigned) (IPV6_TRANSPARENT)) + #define XLAT_STR_61 STRINGIFY(IPV6_TRANSPARENT) #endif #if defined(IPV6_UNICAST_IF) || (defined(HAVE_DECL_IPV6_UNICAST_IF) && HAVE_DECL_IPV6_UNICAST_IF) XLAT(IPV6_UNICAST_IF), + #define XLAT_VAL_62 ((unsigned) (IPV6_UNICAST_IF)) + #define XLAT_STR_62 STRINGIFY(IPV6_UNICAST_IF) #endif #if defined(IPV6_RECVFRAGSIZE) || (defined(HAVE_DECL_IPV6_RECVFRAGSIZE) && HAVE_DECL_IPV6_RECVFRAGSIZE) XLAT(IPV6_RECVFRAGSIZE), + #define XLAT_VAL_63 ((unsigned) (IPV6_RECVFRAGSIZE)) + #define XLAT_STR_63 STRINGIFY(IPV6_RECVFRAGSIZE) #endif #if defined(IPV6_FREEBIND) || (defined(HAVE_DECL_IPV6_FREEBIND) && HAVE_DECL_IPV6_FREEBIND) XLAT(IPV6_FREEBIND), + #define XLAT_VAL_64 ((unsigned) (IPV6_FREEBIND)) + #define XLAT_STR_64 STRINGIFY(IPV6_FREEBIND) #endif - XLAT_END }; +static +const struct xlat sock_ipv6_options[1] = { { + .data = sock_ipv6_options_xdata, + .size = ARRAY_SIZE(sock_ipv6_options_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif +# ifdef XLAT_VAL_41 + | XLAT_VAL_41 +# endif +# ifdef XLAT_VAL_42 + | XLAT_VAL_42 +# endif +# ifdef XLAT_VAL_43 + | XLAT_VAL_43 +# endif +# ifdef XLAT_VAL_44 + | XLAT_VAL_44 +# endif +# ifdef XLAT_VAL_45 + | XLAT_VAL_45 +# endif +# ifdef XLAT_VAL_46 + | XLAT_VAL_46 +# endif +# ifdef XLAT_VAL_47 + | XLAT_VAL_47 +# endif +# ifdef XLAT_VAL_48 + | XLAT_VAL_48 +# endif +# ifdef XLAT_VAL_49 + | XLAT_VAL_49 +# endif +# ifdef XLAT_VAL_50 + | XLAT_VAL_50 +# endif +# ifdef XLAT_VAL_51 + | XLAT_VAL_51 +# endif +# ifdef XLAT_VAL_52 + | XLAT_VAL_52 +# endif +# ifdef XLAT_VAL_53 + | XLAT_VAL_53 +# endif +# ifdef XLAT_VAL_54 + | XLAT_VAL_54 +# endif +# ifdef XLAT_VAL_55 + | XLAT_VAL_55 +# endif +# ifdef XLAT_VAL_56 + | XLAT_VAL_56 +# endif +# ifdef XLAT_VAL_57 + | XLAT_VAL_57 +# endif +# ifdef XLAT_VAL_58 + | XLAT_VAL_58 +# endif +# ifdef XLAT_VAL_59 + | XLAT_VAL_59 +# endif +# ifdef XLAT_VAL_60 + | XLAT_VAL_60 +# endif +# ifdef XLAT_VAL_61 + | XLAT_VAL_61 +# endif +# ifdef XLAT_VAL_62 + | XLAT_VAL_62 +# endif +# ifdef XLAT_VAL_63 + | XLAT_VAL_63 +# endif +# ifdef XLAT_VAL_64 + | XLAT_VAL_64 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif +# ifdef XLAT_STR_41 + + sizeof(XLAT_STR_41) +# endif +# ifdef XLAT_STR_42 + + sizeof(XLAT_STR_42) +# endif +# ifdef XLAT_STR_43 + + sizeof(XLAT_STR_43) +# endif +# ifdef XLAT_STR_44 + + sizeof(XLAT_STR_44) +# endif +# ifdef XLAT_STR_45 + + sizeof(XLAT_STR_45) +# endif +# ifdef XLAT_STR_46 + + sizeof(XLAT_STR_46) +# endif +# ifdef XLAT_STR_47 + + sizeof(XLAT_STR_47) +# endif +# ifdef XLAT_STR_48 + + sizeof(XLAT_STR_48) +# endif +# ifdef XLAT_STR_49 + + sizeof(XLAT_STR_49) +# endif +# ifdef XLAT_STR_50 + + sizeof(XLAT_STR_50) +# endif +# ifdef XLAT_STR_51 + + sizeof(XLAT_STR_51) +# endif +# ifdef XLAT_STR_52 + + sizeof(XLAT_STR_52) +# endif +# ifdef XLAT_STR_53 + + sizeof(XLAT_STR_53) +# endif +# ifdef XLAT_STR_54 + + sizeof(XLAT_STR_54) +# endif +# ifdef XLAT_STR_55 + + sizeof(XLAT_STR_55) +# endif +# ifdef XLAT_STR_56 + + sizeof(XLAT_STR_56) +# endif +# ifdef XLAT_STR_57 + + sizeof(XLAT_STR_57) +# endif +# ifdef XLAT_STR_58 + + sizeof(XLAT_STR_58) +# endif +# ifdef XLAT_STR_59 + + sizeof(XLAT_STR_59) +# endif +# ifdef XLAT_STR_60 + + sizeof(XLAT_STR_60) +# endif +# ifdef XLAT_STR_61 + + sizeof(XLAT_STR_61) +# endif +# ifdef XLAT_STR_62 + + sizeof(XLAT_STR_62) +# endif +# ifdef XLAT_STR_63 + + sizeof(XLAT_STR_63) +# endif +# ifdef XLAT_STR_64 + + sizeof(XLAT_STR_64) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 +# undef XLAT_STR_41 +# undef XLAT_VAL_41 +# undef XLAT_STR_42 +# undef XLAT_VAL_42 +# undef XLAT_STR_43 +# undef XLAT_VAL_43 +# undef XLAT_STR_44 +# undef XLAT_VAL_44 +# undef XLAT_STR_45 +# undef XLAT_VAL_45 +# undef XLAT_STR_46 +# undef XLAT_VAL_46 +# undef XLAT_STR_47 +# undef XLAT_VAL_47 +# undef XLAT_STR_48 +# undef XLAT_VAL_48 +# undef XLAT_STR_49 +# undef XLAT_VAL_49 +# undef XLAT_STR_50 +# undef XLAT_VAL_50 +# undef XLAT_STR_51 +# undef XLAT_VAL_51 +# undef XLAT_STR_52 +# undef XLAT_VAL_52 +# undef XLAT_STR_53 +# undef XLAT_VAL_53 +# undef XLAT_STR_54 +# undef XLAT_VAL_54 +# undef XLAT_STR_55 +# undef XLAT_VAL_55 +# undef XLAT_STR_56 +# undef XLAT_VAL_56 +# undef XLAT_STR_57 +# undef XLAT_VAL_57 +# undef XLAT_STR_58 +# undef XLAT_VAL_58 +# undef XLAT_STR_59 +# undef XLAT_VAL_59 +# undef XLAT_STR_60 +# undef XLAT_VAL_60 +# undef XLAT_STR_61 +# undef XLAT_VAL_61 +# undef XLAT_STR_62 +# undef XLAT_VAL_62 +# undef XLAT_STR_63 +# undef XLAT_VAL_63 +# undef XLAT_STR_64 +# undef XLAT_VAL_64 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_ipv6_options.in b/xlat/sock_ipv6_options.in index 97fcbbfa..39c811d1 100644 --- a/xlat/sock_ipv6_options.in +++ b/xlat/sock_ipv6_options.in @@ -24,6 +24,7 @@ IPV6_JOIN_ANYCAST IPV6_LEAVE_ANYCAST IPV6_MULTICAST_ALL IPV6_ROUTER_ALERT_ISOLATE +IPV6_RECVERR_RFC4884 IPV6_FLOWLABEL_MGR IPV6_FLOWINFO_SEND IPV6_IPSEC_POLICY diff --git a/xlat/sock_ipx_options.h b/xlat/sock_ipx_options.h index cee80f17..166d010d 100644 --- a/xlat/sock_ipx_options.h +++ b/xlat/sock_ipx_options.h @@ -12,14 +12,32 @@ # else -static -const struct xlat sock_ipx_options[] = { +static const struct xlat_data sock_ipx_options_xdata[] = { #if defined(IPX_TYPE) || (defined(HAVE_DECL_IPX_TYPE) && HAVE_DECL_IPX_TYPE) XLAT(IPX_TYPE), + #define XLAT_VAL_0 ((unsigned) (IPX_TYPE)) + #define XLAT_STR_0 STRINGIFY(IPX_TYPE) #endif - XLAT_END }; - +static +const struct xlat sock_ipx_options[1] = { { + .data = sock_ipx_options_xdata, + .size = ARRAY_SIZE(sock_ipx_options_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_irda_options.h b/xlat/sock_irda_options.h index 59643905..12f266b7 100644 --- a/xlat/sock_irda_options.h +++ b/xlat/sock_irda_options.h @@ -89,22 +89,140 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat sock_irda_options[] = { +static const struct xlat_data sock_irda_options_xdata[] = { [IRLMP_ENUMDEVICES] = XLAT(IRLMP_ENUMDEVICES), + #define XLAT_VAL_0 ((unsigned) (IRLMP_ENUMDEVICES)) + #define XLAT_STR_0 STRINGIFY(IRLMP_ENUMDEVICES) [IRLMP_IAS_SET] = XLAT(IRLMP_IAS_SET), + #define XLAT_VAL_1 ((unsigned) (IRLMP_IAS_SET)) + #define XLAT_STR_1 STRINGIFY(IRLMP_IAS_SET) [IRLMP_IAS_QUERY] = XLAT(IRLMP_IAS_QUERY), + #define XLAT_VAL_2 ((unsigned) (IRLMP_IAS_QUERY)) + #define XLAT_STR_2 STRINGIFY(IRLMP_IAS_QUERY) [IRLMP_HINTS_SET] = XLAT(IRLMP_HINTS_SET), + #define XLAT_VAL_3 ((unsigned) (IRLMP_HINTS_SET)) + #define XLAT_STR_3 STRINGIFY(IRLMP_HINTS_SET) [IRLMP_QOS_SET] = XLAT(IRLMP_QOS_SET), + #define XLAT_VAL_4 ((unsigned) (IRLMP_QOS_SET)) + #define XLAT_STR_4 STRINGIFY(IRLMP_QOS_SET) [IRLMP_QOS_GET] = XLAT(IRLMP_QOS_GET), + #define XLAT_VAL_5 ((unsigned) (IRLMP_QOS_GET)) + #define XLAT_STR_5 STRINGIFY(IRLMP_QOS_GET) [IRLMP_MAX_SDU_SIZE] = XLAT(IRLMP_MAX_SDU_SIZE), + #define XLAT_VAL_6 ((unsigned) (IRLMP_MAX_SDU_SIZE)) + #define XLAT_STR_6 STRINGIFY(IRLMP_MAX_SDU_SIZE) [IRLMP_IAS_GET] = XLAT(IRLMP_IAS_GET), + #define XLAT_VAL_7 ((unsigned) (IRLMP_IAS_GET)) + #define XLAT_STR_7 STRINGIFY(IRLMP_IAS_GET) [IRLMP_IAS_DEL] = XLAT(IRLMP_IAS_DEL), + #define XLAT_VAL_8 ((unsigned) (IRLMP_IAS_DEL)) + #define XLAT_STR_8 STRINGIFY(IRLMP_IAS_DEL) [IRLMP_HINT_MASK_SET] = XLAT(IRLMP_HINT_MASK_SET), + #define XLAT_VAL_9 ((unsigned) (IRLMP_HINT_MASK_SET)) + #define XLAT_STR_9 STRINGIFY(IRLMP_HINT_MASK_SET) [IRLMP_WAITDEVICE] = XLAT(IRLMP_WAITDEVICE), - XLAT_END + #define XLAT_VAL_10 ((unsigned) (IRLMP_WAITDEVICE)) + #define XLAT_STR_10 STRINGIFY(IRLMP_WAITDEVICE) }; +static +const struct xlat sock_irda_options[1] = { { + .data = sock_irda_options_xdata, + .size = ARRAY_SIZE(sock_irda_options_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_iucv_options.h b/xlat/sock_iucv_options.h index ad4b1734..2ca698ad 100644 --- a/xlat/sock_iucv_options.h +++ b/xlat/sock_iucv_options.h @@ -33,14 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat sock_iucv_options[] = { +static const struct xlat_data sock_iucv_options_xdata[] = { XLAT(SO_IPRMDATA_MSG), + #define XLAT_VAL_0 ((unsigned) (SO_IPRMDATA_MSG)) + #define XLAT_STR_0 STRINGIFY(SO_IPRMDATA_MSG) XLAT(SO_MSGLIMIT), + #define XLAT_VAL_1 ((unsigned) (SO_MSGLIMIT)) + #define XLAT_STR_1 STRINGIFY(SO_MSGLIMIT) XLAT(SO_MSGSIZE), - XLAT_END + #define XLAT_VAL_2 ((unsigned) (SO_MSGSIZE)) + #define XLAT_STR_2 STRINGIFY(SO_MSGSIZE) }; +static +const struct xlat sock_iucv_options[1] = { { + .data = sock_iucv_options_xdata, + .size = ARRAY_SIZE(sock_iucv_options_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_kcm_options.h b/xlat/sock_kcm_options.h index 43e4cc48..b442a443 100644 --- a/xlat/sock_kcm_options.h +++ b/xlat/sock_kcm_options.h @@ -19,12 +19,30 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat sock_kcm_options[] = { +static const struct xlat_data sock_kcm_options_xdata[] = { XLAT(KCM_RECV_DISABLE), - XLAT_END + #define XLAT_VAL_0 ((unsigned) (KCM_RECV_DISABLE)) + #define XLAT_STR_0 STRINGIFY(KCM_RECV_DISABLE) }; - +static +const struct xlat sock_kcm_options[1] = { { + .data = sock_kcm_options_xdata, + .size = ARRAY_SIZE(sock_kcm_options_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_llc_options.h b/xlat/sock_llc_options.h index 109ecdc5..9e0b880b 100644 --- a/xlat/sock_llc_options.h +++ b/xlat/sock_llc_options.h @@ -82,21 +82,129 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat sock_llc_options[] = { +static const struct xlat_data sock_llc_options_xdata[] = { [LLC_OPT_UNKNOWN] = XLAT(LLC_OPT_UNKNOWN), + #define XLAT_VAL_0 ((unsigned) (LLC_OPT_UNKNOWN)) + #define XLAT_STR_0 STRINGIFY(LLC_OPT_UNKNOWN) [LLC_OPT_RETRY] = XLAT(LLC_OPT_RETRY), + #define XLAT_VAL_1 ((unsigned) (LLC_OPT_RETRY)) + #define XLAT_STR_1 STRINGIFY(LLC_OPT_RETRY) [LLC_OPT_SIZE] = XLAT(LLC_OPT_SIZE), + #define XLAT_VAL_2 ((unsigned) (LLC_OPT_SIZE)) + #define XLAT_STR_2 STRINGIFY(LLC_OPT_SIZE) [LLC_OPT_ACK_TMR_EXP] = XLAT(LLC_OPT_ACK_TMR_EXP), + #define XLAT_VAL_3 ((unsigned) (LLC_OPT_ACK_TMR_EXP)) + #define XLAT_STR_3 STRINGIFY(LLC_OPT_ACK_TMR_EXP) [LLC_OPT_P_TMR_EXP] = XLAT(LLC_OPT_P_TMR_EXP), + #define XLAT_VAL_4 ((unsigned) (LLC_OPT_P_TMR_EXP)) + #define XLAT_STR_4 STRINGIFY(LLC_OPT_P_TMR_EXP) [LLC_OPT_REJ_TMR_EXP] = XLAT(LLC_OPT_REJ_TMR_EXP), + #define XLAT_VAL_5 ((unsigned) (LLC_OPT_REJ_TMR_EXP)) + #define XLAT_STR_5 STRINGIFY(LLC_OPT_REJ_TMR_EXP) [LLC_OPT_BUSY_TMR_EXP] = XLAT(LLC_OPT_BUSY_TMR_EXP), + #define XLAT_VAL_6 ((unsigned) (LLC_OPT_BUSY_TMR_EXP)) + #define XLAT_STR_6 STRINGIFY(LLC_OPT_BUSY_TMR_EXP) [LLC_OPT_TX_WIN] = XLAT(LLC_OPT_TX_WIN), + #define XLAT_VAL_7 ((unsigned) (LLC_OPT_TX_WIN)) + #define XLAT_STR_7 STRINGIFY(LLC_OPT_TX_WIN) [LLC_OPT_RX_WIN] = XLAT(LLC_OPT_RX_WIN), + #define XLAT_VAL_8 ((unsigned) (LLC_OPT_RX_WIN)) + #define XLAT_STR_8 STRINGIFY(LLC_OPT_RX_WIN) [LLC_OPT_PKTINFO] = XLAT(LLC_OPT_PKTINFO), - XLAT_END + #define XLAT_VAL_9 ((unsigned) (LLC_OPT_PKTINFO)) + #define XLAT_STR_9 STRINGIFY(LLC_OPT_PKTINFO) }; +static +const struct xlat sock_llc_options[1] = { { + .data = sock_llc_options_xdata, + .size = ARRAY_SIZE(sock_llc_options_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_netlink_options.h b/xlat/sock_netlink_options.h index a8568336..3deb8c9a 100644 --- a/xlat/sock_netlink_options.h +++ b/xlat/sock_netlink_options.h @@ -96,23 +96,151 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat sock_netlink_options[] = { - XLAT(NETLINK_ADD_MEMBERSHIP), - XLAT(NETLINK_DROP_MEMBERSHIP), - XLAT(NETLINK_PKTINFO), - XLAT(NETLINK_BROADCAST_ERROR), - XLAT(NETLINK_NO_ENOBUFS), - XLAT(NETLINK_RX_RING), - XLAT(NETLINK_TX_RING), - XLAT(NETLINK_LISTEN_ALL_NSID), - XLAT(NETLINK_LIST_MEMBERSHIPS), - XLAT(NETLINK_CAP_ACK), - XLAT(NETLINK_EXT_ACK), - XLAT(NETLINK_DUMP_STRICT_CHK), - XLAT_END +static const struct xlat_data sock_netlink_options_xdata[] = { + [NETLINK_ADD_MEMBERSHIP] = XLAT(NETLINK_ADD_MEMBERSHIP), + #define XLAT_VAL_0 ((unsigned) (NETLINK_ADD_MEMBERSHIP)) + #define XLAT_STR_0 STRINGIFY(NETLINK_ADD_MEMBERSHIP) + [NETLINK_DROP_MEMBERSHIP] = XLAT(NETLINK_DROP_MEMBERSHIP), + #define XLAT_VAL_1 ((unsigned) (NETLINK_DROP_MEMBERSHIP)) + #define XLAT_STR_1 STRINGIFY(NETLINK_DROP_MEMBERSHIP) + [NETLINK_PKTINFO] = XLAT(NETLINK_PKTINFO), + #define XLAT_VAL_2 ((unsigned) (NETLINK_PKTINFO)) + #define XLAT_STR_2 STRINGIFY(NETLINK_PKTINFO) + [NETLINK_BROADCAST_ERROR] = XLAT(NETLINK_BROADCAST_ERROR), + #define XLAT_VAL_3 ((unsigned) (NETLINK_BROADCAST_ERROR)) + #define XLAT_STR_3 STRINGIFY(NETLINK_BROADCAST_ERROR) + [NETLINK_NO_ENOBUFS] = XLAT(NETLINK_NO_ENOBUFS), + #define XLAT_VAL_4 ((unsigned) (NETLINK_NO_ENOBUFS)) + #define XLAT_STR_4 STRINGIFY(NETLINK_NO_ENOBUFS) + [NETLINK_RX_RING] = XLAT(NETLINK_RX_RING), + #define XLAT_VAL_5 ((unsigned) (NETLINK_RX_RING)) + #define XLAT_STR_5 STRINGIFY(NETLINK_RX_RING) + [NETLINK_TX_RING] = XLAT(NETLINK_TX_RING), + #define XLAT_VAL_6 ((unsigned) (NETLINK_TX_RING)) + #define XLAT_STR_6 STRINGIFY(NETLINK_TX_RING) + [NETLINK_LISTEN_ALL_NSID] = XLAT(NETLINK_LISTEN_ALL_NSID), + #define XLAT_VAL_7 ((unsigned) (NETLINK_LISTEN_ALL_NSID)) + #define XLAT_STR_7 STRINGIFY(NETLINK_LISTEN_ALL_NSID) + [NETLINK_LIST_MEMBERSHIPS] = XLAT(NETLINK_LIST_MEMBERSHIPS), + #define XLAT_VAL_8 ((unsigned) (NETLINK_LIST_MEMBERSHIPS)) + #define XLAT_STR_8 STRINGIFY(NETLINK_LIST_MEMBERSHIPS) + [NETLINK_CAP_ACK] = XLAT(NETLINK_CAP_ACK), + #define XLAT_VAL_9 ((unsigned) (NETLINK_CAP_ACK)) + #define XLAT_STR_9 STRINGIFY(NETLINK_CAP_ACK) + [NETLINK_EXT_ACK] = XLAT(NETLINK_EXT_ACK), + #define XLAT_VAL_10 ((unsigned) (NETLINK_EXT_ACK)) + #define XLAT_STR_10 STRINGIFY(NETLINK_EXT_ACK) + [NETLINK_DUMP_STRICT_CHK] = XLAT(NETLINK_DUMP_STRICT_CHK), + #define XLAT_VAL_11 ((unsigned) (NETLINK_DUMP_STRICT_CHK)) + #define XLAT_STR_11 STRINGIFY(NETLINK_DUMP_STRICT_CHK) }; +static +const struct xlat sock_netlink_options[1] = { { + .data = sock_netlink_options_xdata, + .size = ARRAY_SIZE(sock_netlink_options_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_netlink_options.in b/xlat/sock_netlink_options.in index 39115747..e754ba59 100644 --- a/xlat/sock_netlink_options.in +++ b/xlat/sock_netlink_options.in @@ -1,3 +1,4 @@ +#value_indexed NETLINK_ADD_MEMBERSHIP 1 NETLINK_DROP_MEMBERSHIP 2 NETLINK_PKTINFO 3 diff --git a/xlat/sock_nfcllcp_options.h b/xlat/sock_nfcllcp_options.h index 4d7bfb8f..e32931b4 100644 --- a/xlat/sock_nfcllcp_options.h +++ b/xlat/sock_nfcllcp_options.h @@ -47,16 +47,74 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat sock_nfcllcp_options[] = { +static const struct xlat_data sock_nfcllcp_options_xdata[] = { [NFC_LLCP_RW] = XLAT(NFC_LLCP_RW), + #define XLAT_VAL_0 ((unsigned) (NFC_LLCP_RW)) + #define XLAT_STR_0 STRINGIFY(NFC_LLCP_RW) [NFC_LLCP_MIUX] = XLAT(NFC_LLCP_MIUX), + #define XLAT_VAL_1 ((unsigned) (NFC_LLCP_MIUX)) + #define XLAT_STR_1 STRINGIFY(NFC_LLCP_MIUX) [NFC_LLCP_REMOTE_MIU] = XLAT(NFC_LLCP_REMOTE_MIU), + #define XLAT_VAL_2 ((unsigned) (NFC_LLCP_REMOTE_MIU)) + #define XLAT_STR_2 STRINGIFY(NFC_LLCP_REMOTE_MIU) [NFC_LLCP_REMOTE_LTO] = XLAT(NFC_LLCP_REMOTE_LTO), + #define XLAT_VAL_3 ((unsigned) (NFC_LLCP_REMOTE_LTO)) + #define XLAT_STR_3 STRINGIFY(NFC_LLCP_REMOTE_LTO) [NFC_LLCP_REMOTE_RW] = XLAT(NFC_LLCP_REMOTE_RW), - XLAT_END + #define XLAT_VAL_4 ((unsigned) (NFC_LLCP_REMOTE_RW)) + #define XLAT_STR_4 STRINGIFY(NFC_LLCP_REMOTE_RW) }; +static +const struct xlat sock_nfcllcp_options[1] = { { + .data = sock_nfcllcp_options_xdata, + .size = ARRAY_SIZE(sock_nfcllcp_options_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_options.h b/xlat/sock_options.h index 550969f7..1092a8db 100644 --- a/xlat/sock_options.h +++ b/xlat/sock_options.h @@ -1420,6 +1420,31 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #endif #endif #if defined __sparc__ +#if defined(SO_BINDTOIFINDEX) || (defined(HAVE_DECL_SO_BINDTOIFINDEX) && HAVE_DECL_SO_BINDTOIFINDEX) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SO_BINDTOIFINDEX) == (65), "SO_BINDTOIFINDEX != 65"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SO_BINDTOIFINDEX 65 +#endif +#elif defined __hppa__ +#if defined(SO_BINDTOIFINDEX) || (defined(HAVE_DECL_SO_BINDTOIFINDEX) && HAVE_DECL_SO_BINDTOIFINDEX) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SO_BINDTOIFINDEX) == (16439), "SO_BINDTOIFINDEX != 16439"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SO_BINDTOIFINDEX 16439 +#endif +#else +#if defined(SO_BINDTOIFINDEX) || (defined(HAVE_DECL_SO_BINDTOIFINDEX) && HAVE_DECL_SO_BINDTOIFINDEX) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SO_BINDTOIFINDEX) == (62), "SO_BINDTOIFINDEX != 62"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SO_BINDTOIFINDEX 62 +#endif +#endif +#if defined __sparc__ #if defined(SO_TIMESTAMP_NEW) || (defined(HAVE_DECL_SO_TIMESTAMP_NEW) && HAVE_DECL_SO_TIMESTAMP_NEW) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((SO_TIMESTAMP_NEW) == (70), "SO_TIMESTAMP_NEW != 70"); @@ -1494,6 +1519,81 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # define SO_TIMESTAMPING_NEW 65 #endif #endif +#if defined __sparc__ +#if defined(SO_RCVTIMEO_NEW) || (defined(HAVE_DECL_SO_RCVTIMEO_NEW) && HAVE_DECL_SO_RCVTIMEO_NEW) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SO_RCVTIMEO_NEW) == (68), "SO_RCVTIMEO_NEW != 68"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SO_RCVTIMEO_NEW 68 +#endif +#elif defined __hppa__ +#if defined(SO_RCVTIMEO_NEW) || (defined(HAVE_DECL_SO_RCVTIMEO_NEW) && HAVE_DECL_SO_RCVTIMEO_NEW) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SO_RCVTIMEO_NEW) == (16448), "SO_RCVTIMEO_NEW != 16448"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SO_RCVTIMEO_NEW 16448 +#endif +#else +#if defined(SO_RCVTIMEO_NEW) || (defined(HAVE_DECL_SO_RCVTIMEO_NEW) && HAVE_DECL_SO_RCVTIMEO_NEW) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SO_RCVTIMEO_NEW) == (66), "SO_RCVTIMEO_NEW != 66"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SO_RCVTIMEO_NEW 66 +#endif +#endif +#if defined __sparc__ +#if defined(SO_SNDTIMEO_NEW) || (defined(HAVE_DECL_SO_SNDTIMEO_NEW) && HAVE_DECL_SO_SNDTIMEO_NEW) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SO_SNDTIMEO_NEW) == (69), "SO_SNDTIMEO_NEW != 69"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SO_SNDTIMEO_NEW 69 +#endif +#elif defined __hppa__ +#if defined(SO_SNDTIMEO_NEW) || (defined(HAVE_DECL_SO_SNDTIMEO_NEW) && HAVE_DECL_SO_SNDTIMEO_NEW) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SO_SNDTIMEO_NEW) == (16449), "SO_SNDTIMEO_NEW != 16449"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SO_SNDTIMEO_NEW 16449 +#endif +#else +#if defined(SO_SNDTIMEO_NEW) || (defined(HAVE_DECL_SO_SNDTIMEO_NEW) && HAVE_DECL_SO_SNDTIMEO_NEW) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SO_SNDTIMEO_NEW) == (67), "SO_SNDTIMEO_NEW != 67"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SO_SNDTIMEO_NEW 67 +#endif +#endif +#if defined __sparc__ +#if defined(SO_DETACH_REUSEPORT_BPF) || (defined(HAVE_DECL_SO_DETACH_REUSEPORT_BPF) && HAVE_DECL_SO_DETACH_REUSEPORT_BPF) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SO_DETACH_REUSEPORT_BPF) == (71), "SO_DETACH_REUSEPORT_BPF != 71"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SO_DETACH_REUSEPORT_BPF 71 +#endif +#elif defined __hppa__ +#if defined(SO_DETACH_REUSEPORT_BPF) || (defined(HAVE_DECL_SO_DETACH_REUSEPORT_BPF) && HAVE_DECL_SO_DETACH_REUSEPORT_BPF) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SO_DETACH_REUSEPORT_BPF) == (16450), "SO_DETACH_REUSEPORT_BPF != 16450"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SO_DETACH_REUSEPORT_BPF 16450 +#endif +#else +#if defined(SO_DETACH_REUSEPORT_BPF) || (defined(HAVE_DECL_SO_DETACH_REUSEPORT_BPF) && HAVE_DECL_SO_DETACH_REUSEPORT_BPF) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SO_DETACH_REUSEPORT_BPF) == (68), "SO_DETACH_REUSEPORT_BPF != 68"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SO_DETACH_REUSEPORT_BPF 68 +#endif +#endif #ifndef XLAT_MACROS_ONLY @@ -1503,488 +1603,2442 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat sock_options[] = { +static const struct xlat_data sock_options_xdata[] = { XLAT(SO_DEBUG), + #define XLAT_VAL_0 ((unsigned) (SO_DEBUG)) + #define XLAT_STR_0 STRINGIFY(SO_DEBUG) #if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__ XLAT(SO_REUSEADDR), + #define XLAT_VAL_1 ((unsigned) (SO_REUSEADDR)) + #define XLAT_STR_1 STRINGIFY(SO_REUSEADDR) #else XLAT(SO_REUSEADDR), + #define XLAT_VAL_2 ((unsigned) (SO_REUSEADDR)) + #define XLAT_STR_2 STRINGIFY(SO_REUSEADDR) #endif #if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__ XLAT(SO_TYPE), + #define XLAT_VAL_3 ((unsigned) (SO_TYPE)) + #define XLAT_STR_3 STRINGIFY(SO_TYPE) #else XLAT(SO_TYPE), + #define XLAT_VAL_4 ((unsigned) (SO_TYPE)) + #define XLAT_STR_4 STRINGIFY(SO_TYPE) #endif #if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__ XLAT(SO_ERROR), + #define XLAT_VAL_5 ((unsigned) (SO_ERROR)) + #define XLAT_STR_5 STRINGIFY(SO_ERROR) #else XLAT(SO_ERROR), + #define XLAT_VAL_6 ((unsigned) (SO_ERROR)) + #define XLAT_STR_6 STRINGIFY(SO_ERROR) #endif #if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__ XLAT(SO_DONTROUTE), + #define XLAT_VAL_7 ((unsigned) (SO_DONTROUTE)) + #define XLAT_STR_7 STRINGIFY(SO_DONTROUTE) #else XLAT(SO_DONTROUTE), + #define XLAT_VAL_8 ((unsigned) (SO_DONTROUTE)) + #define XLAT_STR_8 STRINGIFY(SO_DONTROUTE) #endif #if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__ XLAT(SO_BROADCAST), + #define XLAT_VAL_9 ((unsigned) (SO_BROADCAST)) + #define XLAT_STR_9 STRINGIFY(SO_BROADCAST) #else XLAT(SO_BROADCAST), + #define XLAT_VAL_10 ((unsigned) (SO_BROADCAST)) + #define XLAT_STR_10 STRINGIFY(SO_BROADCAST) #endif #if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__ XLAT(SO_SNDBUF), + #define XLAT_VAL_11 ((unsigned) (SO_SNDBUF)) + #define XLAT_STR_11 STRINGIFY(SO_SNDBUF) #else XLAT(SO_SNDBUF), + #define XLAT_VAL_12 ((unsigned) (SO_SNDBUF)) + #define XLAT_STR_12 STRINGIFY(SO_SNDBUF) #endif #if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__ XLAT(SO_RCVBUF), + #define XLAT_VAL_13 ((unsigned) (SO_RCVBUF)) + #define XLAT_STR_13 STRINGIFY(SO_RCVBUF) #else XLAT(SO_RCVBUF), + #define XLAT_VAL_14 ((unsigned) (SO_RCVBUF)) + #define XLAT_STR_14 STRINGIFY(SO_RCVBUF) #endif #if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__ XLAT(SO_KEEPALIVE), + #define XLAT_VAL_15 ((unsigned) (SO_KEEPALIVE)) + #define XLAT_STR_15 STRINGIFY(SO_KEEPALIVE) #else XLAT(SO_KEEPALIVE), + #define XLAT_VAL_16 ((unsigned) (SO_KEEPALIVE)) + #define XLAT_STR_16 STRINGIFY(SO_KEEPALIVE) #endif #if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__ XLAT(SO_OOBINLINE), + #define XLAT_VAL_17 ((unsigned) (SO_OOBINLINE)) + #define XLAT_STR_17 STRINGIFY(SO_OOBINLINE) #else XLAT(SO_OOBINLINE), + #define XLAT_VAL_18 ((unsigned) (SO_OOBINLINE)) + #define XLAT_STR_18 STRINGIFY(SO_OOBINLINE) #endif #if defined __hppa__ XLAT(SO_NO_CHECK), + #define XLAT_VAL_19 ((unsigned) (SO_NO_CHECK)) + #define XLAT_STR_19 STRINGIFY(SO_NO_CHECK) #else XLAT(SO_NO_CHECK), + #define XLAT_VAL_20 ((unsigned) (SO_NO_CHECK)) + #define XLAT_STR_20 STRINGIFY(SO_NO_CHECK) #endif #if defined __hppa__ XLAT(SO_PRIORITY), + #define XLAT_VAL_21 ((unsigned) (SO_PRIORITY)) + #define XLAT_STR_21 STRINGIFY(SO_PRIORITY) #else XLAT(SO_PRIORITY), + #define XLAT_VAL_22 ((unsigned) (SO_PRIORITY)) + #define XLAT_STR_22 STRINGIFY(SO_PRIORITY) #endif #if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__ XLAT(SO_LINGER), + #define XLAT_VAL_23 ((unsigned) (SO_LINGER)) + #define XLAT_STR_23 STRINGIFY(SO_LINGER) #else XLAT(SO_LINGER), + #define XLAT_VAL_24 ((unsigned) (SO_LINGER)) + #define XLAT_STR_24 STRINGIFY(SO_LINGER) #endif #if defined __sparc__ XLAT(SO_BSDCOMPAT), + #define XLAT_VAL_25 ((unsigned) (SO_BSDCOMPAT)) + #define XLAT_STR_25 STRINGIFY(SO_BSDCOMPAT) #elif defined __hppa__ XLAT(SO_BSDCOMPAT), + #define XLAT_VAL_26 ((unsigned) (SO_BSDCOMPAT)) + #define XLAT_STR_26 STRINGIFY(SO_BSDCOMPAT) #else XLAT(SO_BSDCOMPAT), + #define XLAT_VAL_27 ((unsigned) (SO_BSDCOMPAT)) + #define XLAT_STR_27 STRINGIFY(SO_BSDCOMPAT) #endif #if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__ XLAT(SO_REUSEPORT), + #define XLAT_VAL_28 ((unsigned) (SO_REUSEPORT)) + #define XLAT_STR_28 STRINGIFY(SO_REUSEPORT) #else XLAT(SO_REUSEPORT), + #define XLAT_VAL_29 ((unsigned) (SO_REUSEPORT)) + #define XLAT_STR_29 STRINGIFY(SO_REUSEPORT) #endif #if defined __sparc__ XLAT(SO_PASSCRED), + #define XLAT_VAL_30 ((unsigned) (SO_PASSCRED)) + #define XLAT_STR_30 STRINGIFY(SO_PASSCRED) #elif defined __alpha__ || defined __mips__ XLAT(SO_PASSCRED), + #define XLAT_VAL_31 ((unsigned) (SO_PASSCRED)) + #define XLAT_STR_31 STRINGIFY(SO_PASSCRED) #elif defined __powerpc__ XLAT(SO_PASSCRED), + #define XLAT_VAL_32 ((unsigned) (SO_PASSCRED)) + #define XLAT_STR_32 STRINGIFY(SO_PASSCRED) #elif defined __hppa__ XLAT(SO_PASSCRED), + #define XLAT_VAL_33 ((unsigned) (SO_PASSCRED)) + #define XLAT_STR_33 STRINGIFY(SO_PASSCRED) #else XLAT(SO_PASSCRED), + #define XLAT_VAL_34 ((unsigned) (SO_PASSCRED)) + #define XLAT_STR_34 STRINGIFY(SO_PASSCRED) #endif #if defined __alpha__ || defined __mips__ XLAT(SO_PEERCRED), + #define XLAT_VAL_35 ((unsigned) (SO_PEERCRED)) + #define XLAT_STR_35 STRINGIFY(SO_PEERCRED) #elif defined __powerpc__ XLAT(SO_PEERCRED), + #define XLAT_VAL_36 ((unsigned) (SO_PEERCRED)) + #define XLAT_STR_36 STRINGIFY(SO_PEERCRED) #elif defined __sparc__ XLAT(SO_PEERCRED), + #define XLAT_VAL_37 ((unsigned) (SO_PEERCRED)) + #define XLAT_STR_37 STRINGIFY(SO_PEERCRED) #elif defined __hppa__ XLAT(SO_PEERCRED), + #define XLAT_VAL_38 ((unsigned) (SO_PEERCRED)) + #define XLAT_STR_38 STRINGIFY(SO_PEERCRED) #else XLAT(SO_PEERCRED), + #define XLAT_VAL_39 ((unsigned) (SO_PEERCRED)) + #define XLAT_STR_39 STRINGIFY(SO_PEERCRED) #endif #if defined __powerpc__ XLAT(SO_RCVLOWAT), + #define XLAT_VAL_40 ((unsigned) (SO_RCVLOWAT)) + #define XLAT_STR_40 STRINGIFY(SO_RCVLOWAT) #elif defined __sparc__ XLAT(SO_RCVLOWAT), + #define XLAT_VAL_41 ((unsigned) (SO_RCVLOWAT)) + #define XLAT_STR_41 STRINGIFY(SO_RCVLOWAT) #elif defined __hppa__ || defined __mips__ XLAT(SO_RCVLOWAT), + #define XLAT_VAL_42 ((unsigned) (SO_RCVLOWAT)) + #define XLAT_STR_42 STRINGIFY(SO_RCVLOWAT) #elif defined __alpha__ XLAT(SO_RCVLOWAT), + #define XLAT_VAL_43 ((unsigned) (SO_RCVLOWAT)) + #define XLAT_STR_43 STRINGIFY(SO_RCVLOWAT) #else XLAT(SO_RCVLOWAT), + #define XLAT_VAL_44 ((unsigned) (SO_RCVLOWAT)) + #define XLAT_STR_44 STRINGIFY(SO_RCVLOWAT) #endif #if defined __powerpc__ XLAT(SO_SNDLOWAT), + #define XLAT_VAL_45 ((unsigned) (SO_SNDLOWAT)) + #define XLAT_STR_45 STRINGIFY(SO_SNDLOWAT) #elif defined __sparc__ XLAT(SO_SNDLOWAT), + #define XLAT_VAL_46 ((unsigned) (SO_SNDLOWAT)) + #define XLAT_STR_46 STRINGIFY(SO_SNDLOWAT) #elif defined __hppa__ || defined __mips__ XLAT(SO_SNDLOWAT), + #define XLAT_VAL_47 ((unsigned) (SO_SNDLOWAT)) + #define XLAT_STR_47 STRINGIFY(SO_SNDLOWAT) #elif defined __alpha__ XLAT(SO_SNDLOWAT), + #define XLAT_VAL_48 ((unsigned) (SO_SNDLOWAT)) + #define XLAT_STR_48 STRINGIFY(SO_SNDLOWAT) #else XLAT(SO_SNDLOWAT), + #define XLAT_VAL_49 ((unsigned) (SO_SNDLOWAT)) + #define XLAT_STR_49 STRINGIFY(SO_SNDLOWAT) #endif #if defined __powerpc__ XLAT(SO_RCVTIMEO_OLD), + #define XLAT_VAL_50 ((unsigned) (SO_RCVTIMEO_OLD)) + #define XLAT_STR_50 STRINGIFY(SO_RCVTIMEO_OLD) #elif defined __hppa__ || defined __mips__ XLAT(SO_RCVTIMEO_OLD), + #define XLAT_VAL_51 ((unsigned) (SO_RCVTIMEO_OLD)) + #define XLAT_STR_51 STRINGIFY(SO_RCVTIMEO_OLD) #elif defined __alpha__ XLAT(SO_RCVTIMEO_OLD), + #define XLAT_VAL_52 ((unsigned) (SO_RCVTIMEO_OLD)) + #define XLAT_STR_52 STRINGIFY(SO_RCVTIMEO_OLD) #elif defined __sparc__ XLAT(SO_RCVTIMEO_OLD), + #define XLAT_VAL_53 ((unsigned) (SO_RCVTIMEO_OLD)) + #define XLAT_STR_53 STRINGIFY(SO_RCVTIMEO_OLD) #else XLAT(SO_RCVTIMEO_OLD), + #define XLAT_VAL_54 ((unsigned) (SO_RCVTIMEO_OLD)) + #define XLAT_STR_54 STRINGIFY(SO_RCVTIMEO_OLD) #endif #if defined __powerpc__ XLAT(SO_SNDTIMEO_OLD), + #define XLAT_VAL_55 ((unsigned) (SO_SNDTIMEO_OLD)) + #define XLAT_STR_55 STRINGIFY(SO_SNDTIMEO_OLD) #elif defined __hppa__ || defined __mips__ XLAT(SO_SNDTIMEO_OLD), + #define XLAT_VAL_56 ((unsigned) (SO_SNDTIMEO_OLD)) + #define XLAT_STR_56 STRINGIFY(SO_SNDTIMEO_OLD) #elif defined __alpha__ XLAT(SO_SNDTIMEO_OLD), + #define XLAT_VAL_57 ((unsigned) (SO_SNDTIMEO_OLD)) + #define XLAT_STR_57 STRINGIFY(SO_SNDTIMEO_OLD) #elif defined __sparc__ XLAT(SO_SNDTIMEO_OLD), + #define XLAT_VAL_58 ((unsigned) (SO_SNDTIMEO_OLD)) + #define XLAT_STR_58 STRINGIFY(SO_SNDTIMEO_OLD) #else XLAT(SO_SNDTIMEO_OLD), + #define XLAT_VAL_59 ((unsigned) (SO_SNDTIMEO_OLD)) + #define XLAT_STR_59 STRINGIFY(SO_SNDTIMEO_OLD) #endif #if defined __alpha__ XLAT(SO_SECURITY_AUTHENTICATION), + #define XLAT_VAL_60 ((unsigned) (SO_SECURITY_AUTHENTICATION)) + #define XLAT_STR_60 STRINGIFY(SO_SECURITY_AUTHENTICATION) #elif defined __hppa__ XLAT(SO_SECURITY_AUTHENTICATION), + #define XLAT_VAL_61 ((unsigned) (SO_SECURITY_AUTHENTICATION)) + #define XLAT_STR_61 STRINGIFY(SO_SECURITY_AUTHENTICATION) #elif defined __sparc__ XLAT(SO_SECURITY_AUTHENTICATION), + #define XLAT_VAL_62 ((unsigned) (SO_SECURITY_AUTHENTICATION)) + #define XLAT_STR_62 STRINGIFY(SO_SECURITY_AUTHENTICATION) #else XLAT(SO_SECURITY_AUTHENTICATION), + #define XLAT_VAL_63 ((unsigned) (SO_SECURITY_AUTHENTICATION)) + #define XLAT_STR_63 STRINGIFY(SO_SECURITY_AUTHENTICATION) #endif #if defined __alpha__ XLAT(SO_SECURITY_ENCRYPTION_TRANSPORT), + #define XLAT_VAL_64 ((unsigned) (SO_SECURITY_ENCRYPTION_TRANSPORT)) + #define XLAT_STR_64 STRINGIFY(SO_SECURITY_ENCRYPTION_TRANSPORT) #elif defined __hppa__ XLAT(SO_SECURITY_ENCRYPTION_TRANSPORT), + #define XLAT_VAL_65 ((unsigned) (SO_SECURITY_ENCRYPTION_TRANSPORT)) + #define XLAT_STR_65 STRINGIFY(SO_SECURITY_ENCRYPTION_TRANSPORT) #elif defined __sparc__ XLAT(SO_SECURITY_ENCRYPTION_TRANSPORT), + #define XLAT_VAL_66 ((unsigned) (SO_SECURITY_ENCRYPTION_TRANSPORT)) + #define XLAT_STR_66 STRINGIFY(SO_SECURITY_ENCRYPTION_TRANSPORT) #else XLAT(SO_SECURITY_ENCRYPTION_TRANSPORT), + #define XLAT_VAL_67 ((unsigned) (SO_SECURITY_ENCRYPTION_TRANSPORT)) + #define XLAT_STR_67 STRINGIFY(SO_SECURITY_ENCRYPTION_TRANSPORT) #endif #if defined __alpha__ XLAT(SO_SECURITY_ENCRYPTION_NETWORK), + #define XLAT_VAL_68 ((unsigned) (SO_SECURITY_ENCRYPTION_NETWORK)) + #define XLAT_STR_68 STRINGIFY(SO_SECURITY_ENCRYPTION_NETWORK) #elif defined __hppa__ XLAT(SO_SECURITY_ENCRYPTION_NETWORK), + #define XLAT_VAL_69 ((unsigned) (SO_SECURITY_ENCRYPTION_NETWORK)) + #define XLAT_STR_69 STRINGIFY(SO_SECURITY_ENCRYPTION_NETWORK) #elif defined __sparc__ XLAT(SO_SECURITY_ENCRYPTION_NETWORK), + #define XLAT_VAL_70 ((unsigned) (SO_SECURITY_ENCRYPTION_NETWORK)) + #define XLAT_STR_70 STRINGIFY(SO_SECURITY_ENCRYPTION_NETWORK) #else XLAT(SO_SECURITY_ENCRYPTION_NETWORK), + #define XLAT_VAL_71 ((unsigned) (SO_SECURITY_ENCRYPTION_NETWORK)) + #define XLAT_STR_71 STRINGIFY(SO_SECURITY_ENCRYPTION_NETWORK) #endif #if defined __sparc__ XLAT(SO_BINDTODEVICE), + #define XLAT_VAL_72 ((unsigned) (SO_BINDTODEVICE)) + #define XLAT_STR_72 STRINGIFY(SO_BINDTODEVICE) #elif defined __hppa__ XLAT(SO_BINDTODEVICE), + #define XLAT_VAL_73 ((unsigned) (SO_BINDTODEVICE)) + #define XLAT_STR_73 STRINGIFY(SO_BINDTODEVICE) #else XLAT(SO_BINDTODEVICE), + #define XLAT_VAL_74 ((unsigned) (SO_BINDTODEVICE)) + #define XLAT_STR_74 STRINGIFY(SO_BINDTODEVICE) #endif + + #if defined __hppa__ XLAT(SO_DETACH_FILTER), + #define XLAT_VAL_75 ((unsigned) (SO_DETACH_FILTER)) + #define XLAT_STR_75 STRINGIFY(SO_DETACH_FILTER) #else XLAT(SO_DETACH_FILTER), + #define XLAT_VAL_76 ((unsigned) (SO_DETACH_FILTER)) + #define XLAT_STR_76 STRINGIFY(SO_DETACH_FILTER) #endif #if defined __hppa__ XLAT(SO_PEERNAME), + #define XLAT_VAL_77 ((unsigned) (SO_PEERNAME)) + #define XLAT_STR_77 STRINGIFY(SO_PEERNAME) #else XLAT(SO_PEERNAME), + #define XLAT_VAL_78 ((unsigned) (SO_PEERNAME)) + #define XLAT_STR_78 STRINGIFY(SO_PEERNAME) #endif #if defined __hppa__ XLAT(SO_TIMESTAMP_OLD), + #define XLAT_VAL_79 ((unsigned) (SO_TIMESTAMP_OLD)) + #define XLAT_STR_79 STRINGIFY(SO_TIMESTAMP_OLD) #else XLAT(SO_TIMESTAMP_OLD), + #define XLAT_VAL_80 ((unsigned) (SO_TIMESTAMP_OLD)) + #define XLAT_STR_80 STRINGIFY(SO_TIMESTAMP_OLD) #endif #if defined __mips__ XLAT(SO_ACCEPTCONN), + #define XLAT_VAL_81 ((unsigned) (SO_ACCEPTCONN)) + #define XLAT_STR_81 STRINGIFY(SO_ACCEPTCONN) #elif defined __alpha__ XLAT(SO_ACCEPTCONN), + #define XLAT_VAL_82 ((unsigned) (SO_ACCEPTCONN)) + #define XLAT_STR_82 STRINGIFY(SO_ACCEPTCONN) #elif defined __hppa__ XLAT(SO_ACCEPTCONN), + #define XLAT_VAL_83 ((unsigned) (SO_ACCEPTCONN)) + #define XLAT_STR_83 STRINGIFY(SO_ACCEPTCONN) #elif defined __sparc__ XLAT(SO_ACCEPTCONN), + #define XLAT_VAL_84 ((unsigned) (SO_ACCEPTCONN)) + #define XLAT_STR_84 STRINGIFY(SO_ACCEPTCONN) #else XLAT(SO_ACCEPTCONN), + #define XLAT_VAL_85 ((unsigned) (SO_ACCEPTCONN)) + #define XLAT_STR_85 STRINGIFY(SO_ACCEPTCONN) #endif #if defined __alpha__ || defined __mips__ || defined __sparc__ XLAT(SO_PEERSEC), + #define XLAT_VAL_86 ((unsigned) (SO_PEERSEC)) + #define XLAT_STR_86 STRINGIFY(SO_PEERSEC) #elif defined __hppa__ XLAT(SO_PEERSEC), + #define XLAT_VAL_87 ((unsigned) (SO_PEERSEC)) + #define XLAT_STR_87 STRINGIFY(SO_PEERSEC) #else XLAT(SO_PEERSEC), + #define XLAT_VAL_88 ((unsigned) (SO_PEERSEC)) + #define XLAT_STR_88 STRINGIFY(SO_PEERSEC) #endif #if defined __mips__ XLAT(SO_SNDBUFFORCE), + #define XLAT_VAL_89 ((unsigned) (SO_SNDBUFFORCE)) + #define XLAT_STR_89 STRINGIFY(SO_SNDBUFFORCE) #elif defined __alpha__ || defined __hppa__ || defined __sparc__ XLAT(SO_SNDBUFFORCE), + #define XLAT_VAL_90 ((unsigned) (SO_SNDBUFFORCE)) + #define XLAT_STR_90 STRINGIFY(SO_SNDBUFFORCE) #else XLAT(SO_SNDBUFFORCE), + #define XLAT_VAL_91 ((unsigned) (SO_SNDBUFFORCE)) + #define XLAT_STR_91 STRINGIFY(SO_SNDBUFFORCE) #endif #if defined __alpha__ || defined __hppa__ || defined __sparc__ XLAT(SO_RCVBUFFORCE), + #define XLAT_VAL_92 ((unsigned) (SO_RCVBUFFORCE)) + #define XLAT_STR_92 STRINGIFY(SO_RCVBUFFORCE) #else XLAT(SO_RCVBUFFORCE), + #define XLAT_VAL_93 ((unsigned) (SO_RCVBUFFORCE)) + #define XLAT_STR_93 STRINGIFY(SO_RCVBUFFORCE) #endif #if defined __sparc__ XLAT(SO_PASSSEC), + #define XLAT_VAL_94 ((unsigned) (SO_PASSSEC)) + #define XLAT_STR_94 STRINGIFY(SO_PASSSEC) #elif defined __hppa__ XLAT(SO_PASSSEC), + #define XLAT_VAL_95 ((unsigned) (SO_PASSSEC)) + #define XLAT_STR_95 STRINGIFY(SO_PASSSEC) #else XLAT(SO_PASSSEC), + #define XLAT_VAL_96 ((unsigned) (SO_PASSSEC)) + #define XLAT_STR_96 STRINGIFY(SO_PASSSEC) #endif #if defined __sparc__ XLAT(SO_TIMESTAMPNS_OLD), + #define XLAT_VAL_97 ((unsigned) (SO_TIMESTAMPNS_OLD)) + #define XLAT_STR_97 STRINGIFY(SO_TIMESTAMPNS_OLD) #elif defined __hppa__ XLAT(SO_TIMESTAMPNS_OLD), + #define XLAT_VAL_98 ((unsigned) (SO_TIMESTAMPNS_OLD)) + #define XLAT_STR_98 STRINGIFY(SO_TIMESTAMPNS_OLD) #else XLAT(SO_TIMESTAMPNS_OLD), + #define XLAT_VAL_99 ((unsigned) (SO_TIMESTAMPNS_OLD)) + #define XLAT_STR_99 STRINGIFY(SO_TIMESTAMPNS_OLD) #endif #if defined __sparc__ XLAT(SO_MARK), + #define XLAT_VAL_100 ((unsigned) (SO_MARK)) + #define XLAT_STR_100 STRINGIFY(SO_MARK) #elif defined __hppa__ XLAT(SO_MARK), + #define XLAT_VAL_101 ((unsigned) (SO_MARK)) + #define XLAT_STR_101 STRINGIFY(SO_MARK) #else XLAT(SO_MARK), + #define XLAT_VAL_102 ((unsigned) (SO_MARK)) + #define XLAT_STR_102 STRINGIFY(SO_MARK) #endif #if defined __sparc__ XLAT(SO_TIMESTAMPING_OLD), + #define XLAT_VAL_103 ((unsigned) (SO_TIMESTAMPING_OLD)) + #define XLAT_STR_103 STRINGIFY(SO_TIMESTAMPING_OLD) #elif defined __hppa__ XLAT(SO_TIMESTAMPING_OLD), + #define XLAT_VAL_104 ((unsigned) (SO_TIMESTAMPING_OLD)) + #define XLAT_STR_104 STRINGIFY(SO_TIMESTAMPING_OLD) #else XLAT(SO_TIMESTAMPING_OLD), + #define XLAT_VAL_105 ((unsigned) (SO_TIMESTAMPING_OLD)) + #define XLAT_STR_105 STRINGIFY(SO_TIMESTAMPING_OLD) #endif #if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__ XLAT(SO_PROTOCOL), + #define XLAT_VAL_106 ((unsigned) (SO_PROTOCOL)) + #define XLAT_STR_106 STRINGIFY(SO_PROTOCOL) #else XLAT(SO_PROTOCOL), + #define XLAT_VAL_107 ((unsigned) (SO_PROTOCOL)) + #define XLAT_STR_107 STRINGIFY(SO_PROTOCOL) #endif #if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__ XLAT(SO_DOMAIN), + #define XLAT_VAL_108 ((unsigned) (SO_DOMAIN)) + #define XLAT_STR_108 STRINGIFY(SO_DOMAIN) #else XLAT(SO_DOMAIN), + #define XLAT_VAL_109 ((unsigned) (SO_DOMAIN)) + #define XLAT_STR_109 STRINGIFY(SO_DOMAIN) #endif #if defined __sparc__ XLAT(SO_RXQ_OVFL), + #define XLAT_VAL_110 ((unsigned) (SO_RXQ_OVFL)) + #define XLAT_STR_110 STRINGIFY(SO_RXQ_OVFL) #elif defined __hppa__ XLAT(SO_RXQ_OVFL), + #define XLAT_VAL_111 ((unsigned) (SO_RXQ_OVFL)) + #define XLAT_STR_111 STRINGIFY(SO_RXQ_OVFL) #else XLAT(SO_RXQ_OVFL), + #define XLAT_VAL_112 ((unsigned) (SO_RXQ_OVFL)) + #define XLAT_STR_112 STRINGIFY(SO_RXQ_OVFL) #endif #if defined __sparc__ XLAT(SO_WIFI_STATUS), + #define XLAT_VAL_113 ((unsigned) (SO_WIFI_STATUS)) + #define XLAT_STR_113 STRINGIFY(SO_WIFI_STATUS) #elif defined __hppa__ XLAT(SO_WIFI_STATUS), + #define XLAT_VAL_114 ((unsigned) (SO_WIFI_STATUS)) + #define XLAT_STR_114 STRINGIFY(SO_WIFI_STATUS) #else XLAT(SO_WIFI_STATUS), + #define XLAT_VAL_115 ((unsigned) (SO_WIFI_STATUS)) + #define XLAT_STR_115 STRINGIFY(SO_WIFI_STATUS) #endif #if defined __sparc__ XLAT(SO_PEEK_OFF), + #define XLAT_VAL_116 ((unsigned) (SO_PEEK_OFF)) + #define XLAT_STR_116 STRINGIFY(SO_PEEK_OFF) #elif defined __hppa__ XLAT(SO_PEEK_OFF), + #define XLAT_VAL_117 ((unsigned) (SO_PEEK_OFF)) + #define XLAT_STR_117 STRINGIFY(SO_PEEK_OFF) #else XLAT(SO_PEEK_OFF), + #define XLAT_VAL_118 ((unsigned) (SO_PEEK_OFF)) + #define XLAT_STR_118 STRINGIFY(SO_PEEK_OFF) #endif #if defined __sparc__ XLAT(SO_NOFCS), + #define XLAT_VAL_119 ((unsigned) (SO_NOFCS)) + #define XLAT_STR_119 STRINGIFY(SO_NOFCS) #elif defined __hppa__ XLAT(SO_NOFCS), + #define XLAT_VAL_120 ((unsigned) (SO_NOFCS)) + #define XLAT_STR_120 STRINGIFY(SO_NOFCS) #else XLAT(SO_NOFCS), + #define XLAT_VAL_121 ((unsigned) (SO_NOFCS)) + #define XLAT_STR_121 STRINGIFY(SO_NOFCS) #endif #if defined __sparc__ XLAT(SO_LOCK_FILTER), + #define XLAT_VAL_122 ((unsigned) (SO_LOCK_FILTER)) + #define XLAT_STR_122 STRINGIFY(SO_LOCK_FILTER) #elif defined __hppa__ XLAT(SO_LOCK_FILTER), + #define XLAT_VAL_123 ((unsigned) (SO_LOCK_FILTER)) + #define XLAT_STR_123 STRINGIFY(SO_LOCK_FILTER) #else XLAT(SO_LOCK_FILTER), + #define XLAT_VAL_124 ((unsigned) (SO_LOCK_FILTER)) + #define XLAT_STR_124 STRINGIFY(SO_LOCK_FILTER) #endif #if defined __sparc__ XLAT(SO_SELECT_ERR_QUEUE), + #define XLAT_VAL_125 ((unsigned) (SO_SELECT_ERR_QUEUE)) + #define XLAT_STR_125 STRINGIFY(SO_SELECT_ERR_QUEUE) #elif defined __hppa__ XLAT(SO_SELECT_ERR_QUEUE), + #define XLAT_VAL_126 ((unsigned) (SO_SELECT_ERR_QUEUE)) + #define XLAT_STR_126 STRINGIFY(SO_SELECT_ERR_QUEUE) #else XLAT(SO_SELECT_ERR_QUEUE), + #define XLAT_VAL_127 ((unsigned) (SO_SELECT_ERR_QUEUE)) + #define XLAT_STR_127 STRINGIFY(SO_SELECT_ERR_QUEUE) #endif #if defined __sparc__ XLAT(SO_BUSY_POLL), + #define XLAT_VAL_128 ((unsigned) (SO_BUSY_POLL)) + #define XLAT_STR_128 STRINGIFY(SO_BUSY_POLL) #elif defined __hppa__ XLAT(SO_BUSY_POLL), + #define XLAT_VAL_129 ((unsigned) (SO_BUSY_POLL)) + #define XLAT_STR_129 STRINGIFY(SO_BUSY_POLL) #else XLAT(SO_BUSY_POLL), + #define XLAT_VAL_130 ((unsigned) (SO_BUSY_POLL)) + #define XLAT_STR_130 STRINGIFY(SO_BUSY_POLL) #endif #if defined __sparc__ XLAT(SO_MAX_PACING_RATE), + #define XLAT_VAL_131 ((unsigned) (SO_MAX_PACING_RATE)) + #define XLAT_STR_131 STRINGIFY(SO_MAX_PACING_RATE) #elif defined __hppa__ XLAT(SO_MAX_PACING_RATE), + #define XLAT_VAL_132 ((unsigned) (SO_MAX_PACING_RATE)) + #define XLAT_STR_132 STRINGIFY(SO_MAX_PACING_RATE) #else XLAT(SO_MAX_PACING_RATE), + #define XLAT_VAL_133 ((unsigned) (SO_MAX_PACING_RATE)) + #define XLAT_STR_133 STRINGIFY(SO_MAX_PACING_RATE) #endif #if defined __sparc__ XLAT(SO_BPF_EXTENSIONS), + #define XLAT_VAL_134 ((unsigned) (SO_BPF_EXTENSIONS)) + #define XLAT_STR_134 STRINGIFY(SO_BPF_EXTENSIONS) #elif defined __hppa__ XLAT(SO_BPF_EXTENSIONS), + #define XLAT_VAL_135 ((unsigned) (SO_BPF_EXTENSIONS)) + #define XLAT_STR_135 STRINGIFY(SO_BPF_EXTENSIONS) #else XLAT(SO_BPF_EXTENSIONS), + #define XLAT_VAL_136 ((unsigned) (SO_BPF_EXTENSIONS)) + #define XLAT_STR_136 STRINGIFY(SO_BPF_EXTENSIONS) #endif #if defined __sparc__ XLAT(SO_INCOMING_CPU), + #define XLAT_VAL_137 ((unsigned) (SO_INCOMING_CPU)) + #define XLAT_STR_137 STRINGIFY(SO_INCOMING_CPU) #elif defined __hppa__ XLAT(SO_INCOMING_CPU), + #define XLAT_VAL_138 ((unsigned) (SO_INCOMING_CPU)) + #define XLAT_STR_138 STRINGIFY(SO_INCOMING_CPU) #else XLAT(SO_INCOMING_CPU), + #define XLAT_VAL_139 ((unsigned) (SO_INCOMING_CPU)) + #define XLAT_STR_139 STRINGIFY(SO_INCOMING_CPU) #endif #if defined __sparc__ XLAT(SO_ATTACH_BPF), + #define XLAT_VAL_140 ((unsigned) (SO_ATTACH_BPF)) + #define XLAT_STR_140 STRINGIFY(SO_ATTACH_BPF) #elif defined __hppa__ XLAT(SO_ATTACH_BPF), + #define XLAT_VAL_141 ((unsigned) (SO_ATTACH_BPF)) + #define XLAT_STR_141 STRINGIFY(SO_ATTACH_BPF) #else XLAT(SO_ATTACH_BPF), + #define XLAT_VAL_142 ((unsigned) (SO_ATTACH_BPF)) + #define XLAT_STR_142 STRINGIFY(SO_ATTACH_BPF) #endif #if defined __sparc__ XLAT(SO_ATTACH_REUSEPORT_CBPF), + #define XLAT_VAL_143 ((unsigned) (SO_ATTACH_REUSEPORT_CBPF)) + #define XLAT_STR_143 STRINGIFY(SO_ATTACH_REUSEPORT_CBPF) #elif defined __hppa__ XLAT(SO_ATTACH_REUSEPORT_CBPF), + #define XLAT_VAL_144 ((unsigned) (SO_ATTACH_REUSEPORT_CBPF)) + #define XLAT_STR_144 STRINGIFY(SO_ATTACH_REUSEPORT_CBPF) #else XLAT(SO_ATTACH_REUSEPORT_CBPF), + #define XLAT_VAL_145 ((unsigned) (SO_ATTACH_REUSEPORT_CBPF)) + #define XLAT_STR_145 STRINGIFY(SO_ATTACH_REUSEPORT_CBPF) #endif #if defined __sparc__ XLAT(SO_ATTACH_REUSEPORT_EBPF), + #define XLAT_VAL_146 ((unsigned) (SO_ATTACH_REUSEPORT_EBPF)) + #define XLAT_STR_146 STRINGIFY(SO_ATTACH_REUSEPORT_EBPF) #elif defined __hppa__ XLAT(SO_ATTACH_REUSEPORT_EBPF), + #define XLAT_VAL_147 ((unsigned) (SO_ATTACH_REUSEPORT_EBPF)) + #define XLAT_STR_147 STRINGIFY(SO_ATTACH_REUSEPORT_EBPF) #else XLAT(SO_ATTACH_REUSEPORT_EBPF), + #define XLAT_VAL_148 ((unsigned) (SO_ATTACH_REUSEPORT_EBPF)) + #define XLAT_STR_148 STRINGIFY(SO_ATTACH_REUSEPORT_EBPF) #endif #if defined __sparc__ XLAT(SO_CNX_ADVICE), + #define XLAT_VAL_149 ((unsigned) (SO_CNX_ADVICE)) + #define XLAT_STR_149 STRINGIFY(SO_CNX_ADVICE) #elif defined __hppa__ XLAT(SO_CNX_ADVICE), + #define XLAT_VAL_150 ((unsigned) (SO_CNX_ADVICE)) + #define XLAT_STR_150 STRINGIFY(SO_CNX_ADVICE) #else XLAT(SO_CNX_ADVICE), + #define XLAT_VAL_151 ((unsigned) (SO_CNX_ADVICE)) + #define XLAT_STR_151 STRINGIFY(SO_CNX_ADVICE) #endif #if defined __sparc__ XLAT(SO_MEMINFO), + #define XLAT_VAL_152 ((unsigned) (SO_MEMINFO)) + #define XLAT_STR_152 STRINGIFY(SO_MEMINFO) #elif defined __hppa__ XLAT(SO_MEMINFO), + #define XLAT_VAL_153 ((unsigned) (SO_MEMINFO)) + #define XLAT_STR_153 STRINGIFY(SO_MEMINFO) #else XLAT(SO_MEMINFO), + #define XLAT_VAL_154 ((unsigned) (SO_MEMINFO)) + #define XLAT_STR_154 STRINGIFY(SO_MEMINFO) #endif #if defined __sparc__ XLAT(SO_INCOMING_NAPI_ID), + #define XLAT_VAL_155 ((unsigned) (SO_INCOMING_NAPI_ID)) + #define XLAT_STR_155 STRINGIFY(SO_INCOMING_NAPI_ID) #elif defined __hppa__ XLAT(SO_INCOMING_NAPI_ID), + #define XLAT_VAL_156 ((unsigned) (SO_INCOMING_NAPI_ID)) + #define XLAT_STR_156 STRINGIFY(SO_INCOMING_NAPI_ID) #else XLAT(SO_INCOMING_NAPI_ID), + #define XLAT_VAL_157 ((unsigned) (SO_INCOMING_NAPI_ID)) + #define XLAT_STR_157 STRINGIFY(SO_INCOMING_NAPI_ID) #endif #if defined __sparc__ XLAT(SO_COOKIE), + #define XLAT_VAL_158 ((unsigned) (SO_COOKIE)) + #define XLAT_STR_158 STRINGIFY(SO_COOKIE) #elif defined __hppa__ XLAT(SO_COOKIE), + #define XLAT_VAL_159 ((unsigned) (SO_COOKIE)) + #define XLAT_STR_159 STRINGIFY(SO_COOKIE) #else XLAT(SO_COOKIE), + #define XLAT_VAL_160 ((unsigned) (SO_COOKIE)) + #define XLAT_STR_160 STRINGIFY(SO_COOKIE) #endif #if defined __sparc__ XLAT(SO_PEERGROUPS), + #define XLAT_VAL_161 ((unsigned) (SO_PEERGROUPS)) + #define XLAT_STR_161 STRINGIFY(SO_PEERGROUPS) #elif defined __hppa__ XLAT(SO_PEERGROUPS), + #define XLAT_VAL_162 ((unsigned) (SO_PEERGROUPS)) + #define XLAT_STR_162 STRINGIFY(SO_PEERGROUPS) #else XLAT(SO_PEERGROUPS), + #define XLAT_VAL_163 ((unsigned) (SO_PEERGROUPS)) + #define XLAT_STR_163 STRINGIFY(SO_PEERGROUPS) #endif #if defined __sparc__ XLAT(SO_ZEROCOPY), + #define XLAT_VAL_164 ((unsigned) (SO_ZEROCOPY)) + #define XLAT_STR_164 STRINGIFY(SO_ZEROCOPY) #elif defined __hppa__ XLAT(SO_ZEROCOPY), + #define XLAT_VAL_165 ((unsigned) (SO_ZEROCOPY)) + #define XLAT_STR_165 STRINGIFY(SO_ZEROCOPY) #else XLAT(SO_ZEROCOPY), + #define XLAT_VAL_166 ((unsigned) (SO_ZEROCOPY)) + #define XLAT_STR_166 STRINGIFY(SO_ZEROCOPY) #endif #if defined __sparc__ XLAT(SO_TXTIME), + #define XLAT_VAL_167 ((unsigned) (SO_TXTIME)) + #define XLAT_STR_167 STRINGIFY(SO_TXTIME) #elif defined __hppa__ XLAT(SO_TXTIME), + #define XLAT_VAL_168 ((unsigned) (SO_TXTIME)) + #define XLAT_STR_168 STRINGIFY(SO_TXTIME) #else XLAT(SO_TXTIME), + #define XLAT_VAL_169 ((unsigned) (SO_TXTIME)) + #define XLAT_STR_169 STRINGIFY(SO_TXTIME) +#endif + +#if defined __sparc__ + XLAT(SO_BINDTOIFINDEX), + #define XLAT_VAL_170 ((unsigned) (SO_BINDTOIFINDEX)) + #define XLAT_STR_170 STRINGIFY(SO_BINDTOIFINDEX) +#elif defined __hppa__ + XLAT(SO_BINDTOIFINDEX), + #define XLAT_VAL_171 ((unsigned) (SO_BINDTOIFINDEX)) + #define XLAT_STR_171 STRINGIFY(SO_BINDTOIFINDEX) +#else + XLAT(SO_BINDTOIFINDEX), + #define XLAT_VAL_172 ((unsigned) (SO_BINDTOIFINDEX)) + #define XLAT_STR_172 STRINGIFY(SO_BINDTOIFINDEX) #endif #if defined __sparc__ XLAT(SO_TIMESTAMP_NEW), + #define XLAT_VAL_173 ((unsigned) (SO_TIMESTAMP_NEW)) + #define XLAT_STR_173 STRINGIFY(SO_TIMESTAMP_NEW) #elif defined __hppa__ XLAT(SO_TIMESTAMP_NEW), + #define XLAT_VAL_174 ((unsigned) (SO_TIMESTAMP_NEW)) + #define XLAT_STR_174 STRINGIFY(SO_TIMESTAMP_NEW) #else XLAT(SO_TIMESTAMP_NEW), + #define XLAT_VAL_175 ((unsigned) (SO_TIMESTAMP_NEW)) + #define XLAT_STR_175 STRINGIFY(SO_TIMESTAMP_NEW) #endif + #if defined __sparc__ XLAT(SO_TIMESTAMPNS_NEW), + #define XLAT_VAL_176 ((unsigned) (SO_TIMESTAMPNS_NEW)) + #define XLAT_STR_176 STRINGIFY(SO_TIMESTAMPNS_NEW) #elif defined __hppa__ XLAT(SO_TIMESTAMPNS_NEW), + #define XLAT_VAL_177 ((unsigned) (SO_TIMESTAMPNS_NEW)) + #define XLAT_STR_177 STRINGIFY(SO_TIMESTAMPNS_NEW) #else XLAT(SO_TIMESTAMPNS_NEW), + #define XLAT_VAL_178 ((unsigned) (SO_TIMESTAMPNS_NEW)) + #define XLAT_STR_178 STRINGIFY(SO_TIMESTAMPNS_NEW) #endif + #if defined __sparc__ XLAT(SO_TIMESTAMPING_NEW), + #define XLAT_VAL_179 ((unsigned) (SO_TIMESTAMPING_NEW)) + #define XLAT_STR_179 STRINGIFY(SO_TIMESTAMPING_NEW) #elif defined __hppa__ XLAT(SO_TIMESTAMPING_NEW), + #define XLAT_VAL_180 ((unsigned) (SO_TIMESTAMPING_NEW)) + #define XLAT_STR_180 STRINGIFY(SO_TIMESTAMPING_NEW) #else XLAT(SO_TIMESTAMPING_NEW), + #define XLAT_VAL_181 ((unsigned) (SO_TIMESTAMPING_NEW)) + #define XLAT_STR_181 STRINGIFY(SO_TIMESTAMPING_NEW) +#endif + +#if defined __sparc__ + XLAT(SO_RCVTIMEO_NEW), + #define XLAT_VAL_182 ((unsigned) (SO_RCVTIMEO_NEW)) + #define XLAT_STR_182 STRINGIFY(SO_RCVTIMEO_NEW) +#elif defined __hppa__ + XLAT(SO_RCVTIMEO_NEW), + #define XLAT_VAL_183 ((unsigned) (SO_RCVTIMEO_NEW)) + #define XLAT_STR_183 STRINGIFY(SO_RCVTIMEO_NEW) +#else + XLAT(SO_RCVTIMEO_NEW), + #define XLAT_VAL_184 ((unsigned) (SO_RCVTIMEO_NEW)) + #define XLAT_STR_184 STRINGIFY(SO_RCVTIMEO_NEW) #endif - XLAT_END -}; +#if defined __sparc__ + XLAT(SO_SNDTIMEO_NEW), + #define XLAT_VAL_185 ((unsigned) (SO_SNDTIMEO_NEW)) + #define XLAT_STR_185 STRINGIFY(SO_SNDTIMEO_NEW) +#elif defined __hppa__ + XLAT(SO_SNDTIMEO_NEW), + #define XLAT_VAL_186 ((unsigned) (SO_SNDTIMEO_NEW)) + #define XLAT_STR_186 STRINGIFY(SO_SNDTIMEO_NEW) +#else + XLAT(SO_SNDTIMEO_NEW), + #define XLAT_VAL_187 ((unsigned) (SO_SNDTIMEO_NEW)) + #define XLAT_STR_187 STRINGIFY(SO_SNDTIMEO_NEW) +#endif + +#if defined __sparc__ + XLAT(SO_DETACH_REUSEPORT_BPF), + #define XLAT_VAL_188 ((unsigned) (SO_DETACH_REUSEPORT_BPF)) + #define XLAT_STR_188 STRINGIFY(SO_DETACH_REUSEPORT_BPF) +#elif defined __hppa__ + XLAT(SO_DETACH_REUSEPORT_BPF), + #define XLAT_VAL_189 ((unsigned) (SO_DETACH_REUSEPORT_BPF)) + #define XLAT_STR_189 STRINGIFY(SO_DETACH_REUSEPORT_BPF) +#else + XLAT(SO_DETACH_REUSEPORT_BPF), + #define XLAT_VAL_190 ((unsigned) (SO_DETACH_REUSEPORT_BPF)) + #define XLAT_STR_190 STRINGIFY(SO_DETACH_REUSEPORT_BPF) +#endif +}; +static +const struct xlat sock_options[1] = { { + .data = sock_options_xdata, + .size = ARRAY_SIZE(sock_options_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif +# ifdef XLAT_VAL_41 + | XLAT_VAL_41 +# endif +# ifdef XLAT_VAL_42 + | XLAT_VAL_42 +# endif +# ifdef XLAT_VAL_43 + | XLAT_VAL_43 +# endif +# ifdef XLAT_VAL_44 + | XLAT_VAL_44 +# endif +# ifdef XLAT_VAL_45 + | XLAT_VAL_45 +# endif +# ifdef XLAT_VAL_46 + | XLAT_VAL_46 +# endif +# ifdef XLAT_VAL_47 + | XLAT_VAL_47 +# endif +# ifdef XLAT_VAL_48 + | XLAT_VAL_48 +# endif +# ifdef XLAT_VAL_49 + | XLAT_VAL_49 +# endif +# ifdef XLAT_VAL_50 + | XLAT_VAL_50 +# endif +# ifdef XLAT_VAL_51 + | XLAT_VAL_51 +# endif +# ifdef XLAT_VAL_52 + | XLAT_VAL_52 +# endif +# ifdef XLAT_VAL_53 + | XLAT_VAL_53 +# endif +# ifdef XLAT_VAL_54 + | XLAT_VAL_54 +# endif +# ifdef XLAT_VAL_55 + | XLAT_VAL_55 +# endif +# ifdef XLAT_VAL_56 + | XLAT_VAL_56 +# endif +# ifdef XLAT_VAL_57 + | XLAT_VAL_57 +# endif +# ifdef XLAT_VAL_58 + | XLAT_VAL_58 +# endif +# ifdef XLAT_VAL_59 + | XLAT_VAL_59 +# endif +# ifdef XLAT_VAL_60 + | XLAT_VAL_60 +# endif +# ifdef XLAT_VAL_61 + | XLAT_VAL_61 +# endif +# ifdef XLAT_VAL_62 + | XLAT_VAL_62 +# endif +# ifdef XLAT_VAL_63 + | XLAT_VAL_63 +# endif +# ifdef XLAT_VAL_64 + | XLAT_VAL_64 +# endif +# ifdef XLAT_VAL_65 + | XLAT_VAL_65 +# endif +# ifdef XLAT_VAL_66 + | XLAT_VAL_66 +# endif +# ifdef XLAT_VAL_67 + | XLAT_VAL_67 +# endif +# ifdef XLAT_VAL_68 + | XLAT_VAL_68 +# endif +# ifdef XLAT_VAL_69 + | XLAT_VAL_69 +# endif +# ifdef XLAT_VAL_70 + | XLAT_VAL_70 +# endif +# ifdef XLAT_VAL_71 + | XLAT_VAL_71 +# endif +# ifdef XLAT_VAL_72 + | XLAT_VAL_72 +# endif +# ifdef XLAT_VAL_73 + | XLAT_VAL_73 +# endif +# ifdef XLAT_VAL_74 + | XLAT_VAL_74 +# endif +# ifdef XLAT_VAL_75 + | XLAT_VAL_75 +# endif +# ifdef XLAT_VAL_76 + | XLAT_VAL_76 +# endif +# ifdef XLAT_VAL_77 + | XLAT_VAL_77 +# endif +# ifdef XLAT_VAL_78 + | XLAT_VAL_78 +# endif +# ifdef XLAT_VAL_79 + | XLAT_VAL_79 +# endif +# ifdef XLAT_VAL_80 + | XLAT_VAL_80 +# endif +# ifdef XLAT_VAL_81 + | XLAT_VAL_81 +# endif +# ifdef XLAT_VAL_82 + | XLAT_VAL_82 +# endif +# ifdef XLAT_VAL_83 + | XLAT_VAL_83 +# endif +# ifdef XLAT_VAL_84 + | XLAT_VAL_84 +# endif +# ifdef XLAT_VAL_85 + | XLAT_VAL_85 +# endif +# ifdef XLAT_VAL_86 + | XLAT_VAL_86 +# endif +# ifdef XLAT_VAL_87 + | XLAT_VAL_87 +# endif +# ifdef XLAT_VAL_88 + | XLAT_VAL_88 +# endif +# ifdef XLAT_VAL_89 + | XLAT_VAL_89 +# endif +# ifdef XLAT_VAL_90 + | XLAT_VAL_90 +# endif +# ifdef XLAT_VAL_91 + | XLAT_VAL_91 +# endif +# ifdef XLAT_VAL_92 + | XLAT_VAL_92 +# endif +# ifdef XLAT_VAL_93 + | XLAT_VAL_93 +# endif +# ifdef XLAT_VAL_94 + | XLAT_VAL_94 +# endif +# ifdef XLAT_VAL_95 + | XLAT_VAL_95 +# endif +# ifdef XLAT_VAL_96 + | XLAT_VAL_96 +# endif +# ifdef XLAT_VAL_97 + | XLAT_VAL_97 +# endif +# ifdef XLAT_VAL_98 + | XLAT_VAL_98 +# endif +# ifdef XLAT_VAL_99 + | XLAT_VAL_99 +# endif +# ifdef XLAT_VAL_100 + | XLAT_VAL_100 +# endif +# ifdef XLAT_VAL_101 + | XLAT_VAL_101 +# endif +# ifdef XLAT_VAL_102 + | XLAT_VAL_102 +# endif +# ifdef XLAT_VAL_103 + | XLAT_VAL_103 +# endif +# ifdef XLAT_VAL_104 + | XLAT_VAL_104 +# endif +# ifdef XLAT_VAL_105 + | XLAT_VAL_105 +# endif +# ifdef XLAT_VAL_106 + | XLAT_VAL_106 +# endif +# ifdef XLAT_VAL_107 + | XLAT_VAL_107 +# endif +# ifdef XLAT_VAL_108 + | XLAT_VAL_108 +# endif +# ifdef XLAT_VAL_109 + | XLAT_VAL_109 +# endif +# ifdef XLAT_VAL_110 + | XLAT_VAL_110 +# endif +# ifdef XLAT_VAL_111 + | XLAT_VAL_111 +# endif +# ifdef XLAT_VAL_112 + | XLAT_VAL_112 +# endif +# ifdef XLAT_VAL_113 + | XLAT_VAL_113 +# endif +# ifdef XLAT_VAL_114 + | XLAT_VAL_114 +# endif +# ifdef XLAT_VAL_115 + | XLAT_VAL_115 +# endif +# ifdef XLAT_VAL_116 + | XLAT_VAL_116 +# endif +# ifdef XLAT_VAL_117 + | XLAT_VAL_117 +# endif +# ifdef XLAT_VAL_118 + | XLAT_VAL_118 +# endif +# ifdef XLAT_VAL_119 + | XLAT_VAL_119 +# endif +# ifdef XLAT_VAL_120 + | XLAT_VAL_120 +# endif +# ifdef XLAT_VAL_121 + | XLAT_VAL_121 +# endif +# ifdef XLAT_VAL_122 + | XLAT_VAL_122 +# endif +# ifdef XLAT_VAL_123 + | XLAT_VAL_123 +# endif +# ifdef XLAT_VAL_124 + | XLAT_VAL_124 +# endif +# ifdef XLAT_VAL_125 + | XLAT_VAL_125 +# endif +# ifdef XLAT_VAL_126 + | XLAT_VAL_126 +# endif +# ifdef XLAT_VAL_127 + | XLAT_VAL_127 +# endif +# ifdef XLAT_VAL_128 + | XLAT_VAL_128 +# endif +# ifdef XLAT_VAL_129 + | XLAT_VAL_129 +# endif +# ifdef XLAT_VAL_130 + | XLAT_VAL_130 +# endif +# ifdef XLAT_VAL_131 + | XLAT_VAL_131 +# endif +# ifdef XLAT_VAL_132 + | XLAT_VAL_132 +# endif +# ifdef XLAT_VAL_133 + | XLAT_VAL_133 +# endif +# ifdef XLAT_VAL_134 + | XLAT_VAL_134 +# endif +# ifdef XLAT_VAL_135 + | XLAT_VAL_135 +# endif +# ifdef XLAT_VAL_136 + | XLAT_VAL_136 +# endif +# ifdef XLAT_VAL_137 + | XLAT_VAL_137 +# endif +# ifdef XLAT_VAL_138 + | XLAT_VAL_138 +# endif +# ifdef XLAT_VAL_139 + | XLAT_VAL_139 +# endif +# ifdef XLAT_VAL_140 + | XLAT_VAL_140 +# endif +# ifdef XLAT_VAL_141 + | XLAT_VAL_141 +# endif +# ifdef XLAT_VAL_142 + | XLAT_VAL_142 +# endif +# ifdef XLAT_VAL_143 + | XLAT_VAL_143 +# endif +# ifdef XLAT_VAL_144 + | XLAT_VAL_144 +# endif +# ifdef XLAT_VAL_145 + | XLAT_VAL_145 +# endif +# ifdef XLAT_VAL_146 + | XLAT_VAL_146 +# endif +# ifdef XLAT_VAL_147 + | XLAT_VAL_147 +# endif +# ifdef XLAT_VAL_148 + | XLAT_VAL_148 +# endif +# ifdef XLAT_VAL_149 + | XLAT_VAL_149 +# endif +# ifdef XLAT_VAL_150 + | XLAT_VAL_150 +# endif +# ifdef XLAT_VAL_151 + | XLAT_VAL_151 +# endif +# ifdef XLAT_VAL_152 + | XLAT_VAL_152 +# endif +# ifdef XLAT_VAL_153 + | XLAT_VAL_153 +# endif +# ifdef XLAT_VAL_154 + | XLAT_VAL_154 +# endif +# ifdef XLAT_VAL_155 + | XLAT_VAL_155 +# endif +# ifdef XLAT_VAL_156 + | XLAT_VAL_156 +# endif +# ifdef XLAT_VAL_157 + | XLAT_VAL_157 +# endif +# ifdef XLAT_VAL_158 + | XLAT_VAL_158 +# endif +# ifdef XLAT_VAL_159 + | XLAT_VAL_159 +# endif +# ifdef XLAT_VAL_160 + | XLAT_VAL_160 +# endif +# ifdef XLAT_VAL_161 + | XLAT_VAL_161 +# endif +# ifdef XLAT_VAL_162 + | XLAT_VAL_162 +# endif +# ifdef XLAT_VAL_163 + | XLAT_VAL_163 +# endif +# ifdef XLAT_VAL_164 + | XLAT_VAL_164 +# endif +# ifdef XLAT_VAL_165 + | XLAT_VAL_165 +# endif +# ifdef XLAT_VAL_166 + | XLAT_VAL_166 +# endif +# ifdef XLAT_VAL_167 + | XLAT_VAL_167 +# endif +# ifdef XLAT_VAL_168 + | XLAT_VAL_168 +# endif +# ifdef XLAT_VAL_169 + | XLAT_VAL_169 +# endif +# ifdef XLAT_VAL_170 + | XLAT_VAL_170 +# endif +# ifdef XLAT_VAL_171 + | XLAT_VAL_171 +# endif +# ifdef XLAT_VAL_172 + | XLAT_VAL_172 +# endif +# ifdef XLAT_VAL_173 + | XLAT_VAL_173 +# endif +# ifdef XLAT_VAL_174 + | XLAT_VAL_174 +# endif +# ifdef XLAT_VAL_175 + | XLAT_VAL_175 +# endif +# ifdef XLAT_VAL_176 + | XLAT_VAL_176 +# endif +# ifdef XLAT_VAL_177 + | XLAT_VAL_177 +# endif +# ifdef XLAT_VAL_178 + | XLAT_VAL_178 +# endif +# ifdef XLAT_VAL_179 + | XLAT_VAL_179 +# endif +# ifdef XLAT_VAL_180 + | XLAT_VAL_180 +# endif +# ifdef XLAT_VAL_181 + | XLAT_VAL_181 +# endif +# ifdef XLAT_VAL_182 + | XLAT_VAL_182 +# endif +# ifdef XLAT_VAL_183 + | XLAT_VAL_183 +# endif +# ifdef XLAT_VAL_184 + | XLAT_VAL_184 +# endif +# ifdef XLAT_VAL_185 + | XLAT_VAL_185 +# endif +# ifdef XLAT_VAL_186 + | XLAT_VAL_186 +# endif +# ifdef XLAT_VAL_187 + | XLAT_VAL_187 +# endif +# ifdef XLAT_VAL_188 + | XLAT_VAL_188 +# endif +# ifdef XLAT_VAL_189 + | XLAT_VAL_189 +# endif +# ifdef XLAT_VAL_190 + | XLAT_VAL_190 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif +# ifdef XLAT_STR_41 + + sizeof(XLAT_STR_41) +# endif +# ifdef XLAT_STR_42 + + sizeof(XLAT_STR_42) +# endif +# ifdef XLAT_STR_43 + + sizeof(XLAT_STR_43) +# endif +# ifdef XLAT_STR_44 + + sizeof(XLAT_STR_44) +# endif +# ifdef XLAT_STR_45 + + sizeof(XLAT_STR_45) +# endif +# ifdef XLAT_STR_46 + + sizeof(XLAT_STR_46) +# endif +# ifdef XLAT_STR_47 + + sizeof(XLAT_STR_47) +# endif +# ifdef XLAT_STR_48 + + sizeof(XLAT_STR_48) +# endif +# ifdef XLAT_STR_49 + + sizeof(XLAT_STR_49) +# endif +# ifdef XLAT_STR_50 + + sizeof(XLAT_STR_50) +# endif +# ifdef XLAT_STR_51 + + sizeof(XLAT_STR_51) +# endif +# ifdef XLAT_STR_52 + + sizeof(XLAT_STR_52) +# endif +# ifdef XLAT_STR_53 + + sizeof(XLAT_STR_53) +# endif +# ifdef XLAT_STR_54 + + sizeof(XLAT_STR_54) +# endif +# ifdef XLAT_STR_55 + + sizeof(XLAT_STR_55) +# endif +# ifdef XLAT_STR_56 + + sizeof(XLAT_STR_56) +# endif +# ifdef XLAT_STR_57 + + sizeof(XLAT_STR_57) +# endif +# ifdef XLAT_STR_58 + + sizeof(XLAT_STR_58) +# endif +# ifdef XLAT_STR_59 + + sizeof(XLAT_STR_59) +# endif +# ifdef XLAT_STR_60 + + sizeof(XLAT_STR_60) +# endif +# ifdef XLAT_STR_61 + + sizeof(XLAT_STR_61) +# endif +# ifdef XLAT_STR_62 + + sizeof(XLAT_STR_62) +# endif +# ifdef XLAT_STR_63 + + sizeof(XLAT_STR_63) +# endif +# ifdef XLAT_STR_64 + + sizeof(XLAT_STR_64) +# endif +# ifdef XLAT_STR_65 + + sizeof(XLAT_STR_65) +# endif +# ifdef XLAT_STR_66 + + sizeof(XLAT_STR_66) +# endif +# ifdef XLAT_STR_67 + + sizeof(XLAT_STR_67) +# endif +# ifdef XLAT_STR_68 + + sizeof(XLAT_STR_68) +# endif +# ifdef XLAT_STR_69 + + sizeof(XLAT_STR_69) +# endif +# ifdef XLAT_STR_70 + + sizeof(XLAT_STR_70) +# endif +# ifdef XLAT_STR_71 + + sizeof(XLAT_STR_71) +# endif +# ifdef XLAT_STR_72 + + sizeof(XLAT_STR_72) +# endif +# ifdef XLAT_STR_73 + + sizeof(XLAT_STR_73) +# endif +# ifdef XLAT_STR_74 + + sizeof(XLAT_STR_74) +# endif +# ifdef XLAT_STR_75 + + sizeof(XLAT_STR_75) +# endif +# ifdef XLAT_STR_76 + + sizeof(XLAT_STR_76) +# endif +# ifdef XLAT_STR_77 + + sizeof(XLAT_STR_77) +# endif +# ifdef XLAT_STR_78 + + sizeof(XLAT_STR_78) +# endif +# ifdef XLAT_STR_79 + + sizeof(XLAT_STR_79) +# endif +# ifdef XLAT_STR_80 + + sizeof(XLAT_STR_80) +# endif +# ifdef XLAT_STR_81 + + sizeof(XLAT_STR_81) +# endif +# ifdef XLAT_STR_82 + + sizeof(XLAT_STR_82) +# endif +# ifdef XLAT_STR_83 + + sizeof(XLAT_STR_83) +# endif +# ifdef XLAT_STR_84 + + sizeof(XLAT_STR_84) +# endif +# ifdef XLAT_STR_85 + + sizeof(XLAT_STR_85) +# endif +# ifdef XLAT_STR_86 + + sizeof(XLAT_STR_86) +# endif +# ifdef XLAT_STR_87 + + sizeof(XLAT_STR_87) +# endif +# ifdef XLAT_STR_88 + + sizeof(XLAT_STR_88) +# endif +# ifdef XLAT_STR_89 + + sizeof(XLAT_STR_89) +# endif +# ifdef XLAT_STR_90 + + sizeof(XLAT_STR_90) +# endif +# ifdef XLAT_STR_91 + + sizeof(XLAT_STR_91) +# endif +# ifdef XLAT_STR_92 + + sizeof(XLAT_STR_92) +# endif +# ifdef XLAT_STR_93 + + sizeof(XLAT_STR_93) +# endif +# ifdef XLAT_STR_94 + + sizeof(XLAT_STR_94) +# endif +# ifdef XLAT_STR_95 + + sizeof(XLAT_STR_95) +# endif +# ifdef XLAT_STR_96 + + sizeof(XLAT_STR_96) +# endif +# ifdef XLAT_STR_97 + + sizeof(XLAT_STR_97) +# endif +# ifdef XLAT_STR_98 + + sizeof(XLAT_STR_98) +# endif +# ifdef XLAT_STR_99 + + sizeof(XLAT_STR_99) +# endif +# ifdef XLAT_STR_100 + + sizeof(XLAT_STR_100) +# endif +# ifdef XLAT_STR_101 + + sizeof(XLAT_STR_101) +# endif +# ifdef XLAT_STR_102 + + sizeof(XLAT_STR_102) +# endif +# ifdef XLAT_STR_103 + + sizeof(XLAT_STR_103) +# endif +# ifdef XLAT_STR_104 + + sizeof(XLAT_STR_104) +# endif +# ifdef XLAT_STR_105 + + sizeof(XLAT_STR_105) +# endif +# ifdef XLAT_STR_106 + + sizeof(XLAT_STR_106) +# endif +# ifdef XLAT_STR_107 + + sizeof(XLAT_STR_107) +# endif +# ifdef XLAT_STR_108 + + sizeof(XLAT_STR_108) +# endif +# ifdef XLAT_STR_109 + + sizeof(XLAT_STR_109) +# endif +# ifdef XLAT_STR_110 + + sizeof(XLAT_STR_110) +# endif +# ifdef XLAT_STR_111 + + sizeof(XLAT_STR_111) +# endif +# ifdef XLAT_STR_112 + + sizeof(XLAT_STR_112) +# endif +# ifdef XLAT_STR_113 + + sizeof(XLAT_STR_113) +# endif +# ifdef XLAT_STR_114 + + sizeof(XLAT_STR_114) +# endif +# ifdef XLAT_STR_115 + + sizeof(XLAT_STR_115) +# endif +# ifdef XLAT_STR_116 + + sizeof(XLAT_STR_116) +# endif +# ifdef XLAT_STR_117 + + sizeof(XLAT_STR_117) +# endif +# ifdef XLAT_STR_118 + + sizeof(XLAT_STR_118) +# endif +# ifdef XLAT_STR_119 + + sizeof(XLAT_STR_119) +# endif +# ifdef XLAT_STR_120 + + sizeof(XLAT_STR_120) +# endif +# ifdef XLAT_STR_121 + + sizeof(XLAT_STR_121) +# endif +# ifdef XLAT_STR_122 + + sizeof(XLAT_STR_122) +# endif +# ifdef XLAT_STR_123 + + sizeof(XLAT_STR_123) +# endif +# ifdef XLAT_STR_124 + + sizeof(XLAT_STR_124) +# endif +# ifdef XLAT_STR_125 + + sizeof(XLAT_STR_125) +# endif +# ifdef XLAT_STR_126 + + sizeof(XLAT_STR_126) +# endif +# ifdef XLAT_STR_127 + + sizeof(XLAT_STR_127) +# endif +# ifdef XLAT_STR_128 + + sizeof(XLAT_STR_128) +# endif +# ifdef XLAT_STR_129 + + sizeof(XLAT_STR_129) +# endif +# ifdef XLAT_STR_130 + + sizeof(XLAT_STR_130) +# endif +# ifdef XLAT_STR_131 + + sizeof(XLAT_STR_131) +# endif +# ifdef XLAT_STR_132 + + sizeof(XLAT_STR_132) +# endif +# ifdef XLAT_STR_133 + + sizeof(XLAT_STR_133) +# endif +# ifdef XLAT_STR_134 + + sizeof(XLAT_STR_134) +# endif +# ifdef XLAT_STR_135 + + sizeof(XLAT_STR_135) +# endif +# ifdef XLAT_STR_136 + + sizeof(XLAT_STR_136) +# endif +# ifdef XLAT_STR_137 + + sizeof(XLAT_STR_137) +# endif +# ifdef XLAT_STR_138 + + sizeof(XLAT_STR_138) +# endif +# ifdef XLAT_STR_139 + + sizeof(XLAT_STR_139) +# endif +# ifdef XLAT_STR_140 + + sizeof(XLAT_STR_140) +# endif +# ifdef XLAT_STR_141 + + sizeof(XLAT_STR_141) +# endif +# ifdef XLAT_STR_142 + + sizeof(XLAT_STR_142) +# endif +# ifdef XLAT_STR_143 + + sizeof(XLAT_STR_143) +# endif +# ifdef XLAT_STR_144 + + sizeof(XLAT_STR_144) +# endif +# ifdef XLAT_STR_145 + + sizeof(XLAT_STR_145) +# endif +# ifdef XLAT_STR_146 + + sizeof(XLAT_STR_146) +# endif +# ifdef XLAT_STR_147 + + sizeof(XLAT_STR_147) +# endif +# ifdef XLAT_STR_148 + + sizeof(XLAT_STR_148) +# endif +# ifdef XLAT_STR_149 + + sizeof(XLAT_STR_149) +# endif +# ifdef XLAT_STR_150 + + sizeof(XLAT_STR_150) +# endif +# ifdef XLAT_STR_151 + + sizeof(XLAT_STR_151) +# endif +# ifdef XLAT_STR_152 + + sizeof(XLAT_STR_152) +# endif +# ifdef XLAT_STR_153 + + sizeof(XLAT_STR_153) +# endif +# ifdef XLAT_STR_154 + + sizeof(XLAT_STR_154) +# endif +# ifdef XLAT_STR_155 + + sizeof(XLAT_STR_155) +# endif +# ifdef XLAT_STR_156 + + sizeof(XLAT_STR_156) +# endif +# ifdef XLAT_STR_157 + + sizeof(XLAT_STR_157) +# endif +# ifdef XLAT_STR_158 + + sizeof(XLAT_STR_158) +# endif +# ifdef XLAT_STR_159 + + sizeof(XLAT_STR_159) +# endif +# ifdef XLAT_STR_160 + + sizeof(XLAT_STR_160) +# endif +# ifdef XLAT_STR_161 + + sizeof(XLAT_STR_161) +# endif +# ifdef XLAT_STR_162 + + sizeof(XLAT_STR_162) +# endif +# ifdef XLAT_STR_163 + + sizeof(XLAT_STR_163) +# endif +# ifdef XLAT_STR_164 + + sizeof(XLAT_STR_164) +# endif +# ifdef XLAT_STR_165 + + sizeof(XLAT_STR_165) +# endif +# ifdef XLAT_STR_166 + + sizeof(XLAT_STR_166) +# endif +# ifdef XLAT_STR_167 + + sizeof(XLAT_STR_167) +# endif +# ifdef XLAT_STR_168 + + sizeof(XLAT_STR_168) +# endif +# ifdef XLAT_STR_169 + + sizeof(XLAT_STR_169) +# endif +# ifdef XLAT_STR_170 + + sizeof(XLAT_STR_170) +# endif +# ifdef XLAT_STR_171 + + sizeof(XLAT_STR_171) +# endif +# ifdef XLAT_STR_172 + + sizeof(XLAT_STR_172) +# endif +# ifdef XLAT_STR_173 + + sizeof(XLAT_STR_173) +# endif +# ifdef XLAT_STR_174 + + sizeof(XLAT_STR_174) +# endif +# ifdef XLAT_STR_175 + + sizeof(XLAT_STR_175) +# endif +# ifdef XLAT_STR_176 + + sizeof(XLAT_STR_176) +# endif +# ifdef XLAT_STR_177 + + sizeof(XLAT_STR_177) +# endif +# ifdef XLAT_STR_178 + + sizeof(XLAT_STR_178) +# endif +# ifdef XLAT_STR_179 + + sizeof(XLAT_STR_179) +# endif +# ifdef XLAT_STR_180 + + sizeof(XLAT_STR_180) +# endif +# ifdef XLAT_STR_181 + + sizeof(XLAT_STR_181) +# endif +# ifdef XLAT_STR_182 + + sizeof(XLAT_STR_182) +# endif +# ifdef XLAT_STR_183 + + sizeof(XLAT_STR_183) +# endif +# ifdef XLAT_STR_184 + + sizeof(XLAT_STR_184) +# endif +# ifdef XLAT_STR_185 + + sizeof(XLAT_STR_185) +# endif +# ifdef XLAT_STR_186 + + sizeof(XLAT_STR_186) +# endif +# ifdef XLAT_STR_187 + + sizeof(XLAT_STR_187) +# endif +# ifdef XLAT_STR_188 + + sizeof(XLAT_STR_188) +# endif +# ifdef XLAT_STR_189 + + sizeof(XLAT_STR_189) +# endif +# ifdef XLAT_STR_190 + + sizeof(XLAT_STR_190) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 +# undef XLAT_STR_41 +# undef XLAT_VAL_41 +# undef XLAT_STR_42 +# undef XLAT_VAL_42 +# undef XLAT_STR_43 +# undef XLAT_VAL_43 +# undef XLAT_STR_44 +# undef XLAT_VAL_44 +# undef XLAT_STR_45 +# undef XLAT_VAL_45 +# undef XLAT_STR_46 +# undef XLAT_VAL_46 +# undef XLAT_STR_47 +# undef XLAT_VAL_47 +# undef XLAT_STR_48 +# undef XLAT_VAL_48 +# undef XLAT_STR_49 +# undef XLAT_VAL_49 +# undef XLAT_STR_50 +# undef XLAT_VAL_50 +# undef XLAT_STR_51 +# undef XLAT_VAL_51 +# undef XLAT_STR_52 +# undef XLAT_VAL_52 +# undef XLAT_STR_53 +# undef XLAT_VAL_53 +# undef XLAT_STR_54 +# undef XLAT_VAL_54 +# undef XLAT_STR_55 +# undef XLAT_VAL_55 +# undef XLAT_STR_56 +# undef XLAT_VAL_56 +# undef XLAT_STR_57 +# undef XLAT_VAL_57 +# undef XLAT_STR_58 +# undef XLAT_VAL_58 +# undef XLAT_STR_59 +# undef XLAT_VAL_59 +# undef XLAT_STR_60 +# undef XLAT_VAL_60 +# undef XLAT_STR_61 +# undef XLAT_VAL_61 +# undef XLAT_STR_62 +# undef XLAT_VAL_62 +# undef XLAT_STR_63 +# undef XLAT_VAL_63 +# undef XLAT_STR_64 +# undef XLAT_VAL_64 +# undef XLAT_STR_65 +# undef XLAT_VAL_65 +# undef XLAT_STR_66 +# undef XLAT_VAL_66 +# undef XLAT_STR_67 +# undef XLAT_VAL_67 +# undef XLAT_STR_68 +# undef XLAT_VAL_68 +# undef XLAT_STR_69 +# undef XLAT_VAL_69 +# undef XLAT_STR_70 +# undef XLAT_VAL_70 +# undef XLAT_STR_71 +# undef XLAT_VAL_71 +# undef XLAT_STR_72 +# undef XLAT_VAL_72 +# undef XLAT_STR_73 +# undef XLAT_VAL_73 +# undef XLAT_STR_74 +# undef XLAT_VAL_74 +# undef XLAT_STR_75 +# undef XLAT_VAL_75 +# undef XLAT_STR_76 +# undef XLAT_VAL_76 +# undef XLAT_STR_77 +# undef XLAT_VAL_77 +# undef XLAT_STR_78 +# undef XLAT_VAL_78 +# undef XLAT_STR_79 +# undef XLAT_VAL_79 +# undef XLAT_STR_80 +# undef XLAT_VAL_80 +# undef XLAT_STR_81 +# undef XLAT_VAL_81 +# undef XLAT_STR_82 +# undef XLAT_VAL_82 +# undef XLAT_STR_83 +# undef XLAT_VAL_83 +# undef XLAT_STR_84 +# undef XLAT_VAL_84 +# undef XLAT_STR_85 +# undef XLAT_VAL_85 +# undef XLAT_STR_86 +# undef XLAT_VAL_86 +# undef XLAT_STR_87 +# undef XLAT_VAL_87 +# undef XLAT_STR_88 +# undef XLAT_VAL_88 +# undef XLAT_STR_89 +# undef XLAT_VAL_89 +# undef XLAT_STR_90 +# undef XLAT_VAL_90 +# undef XLAT_STR_91 +# undef XLAT_VAL_91 +# undef XLAT_STR_92 +# undef XLAT_VAL_92 +# undef XLAT_STR_93 +# undef XLAT_VAL_93 +# undef XLAT_STR_94 +# undef XLAT_VAL_94 +# undef XLAT_STR_95 +# undef XLAT_VAL_95 +# undef XLAT_STR_96 +# undef XLAT_VAL_96 +# undef XLAT_STR_97 +# undef XLAT_VAL_97 +# undef XLAT_STR_98 +# undef XLAT_VAL_98 +# undef XLAT_STR_99 +# undef XLAT_VAL_99 +# undef XLAT_STR_100 +# undef XLAT_VAL_100 +# undef XLAT_STR_101 +# undef XLAT_VAL_101 +# undef XLAT_STR_102 +# undef XLAT_VAL_102 +# undef XLAT_STR_103 +# undef XLAT_VAL_103 +# undef XLAT_STR_104 +# undef XLAT_VAL_104 +# undef XLAT_STR_105 +# undef XLAT_VAL_105 +# undef XLAT_STR_106 +# undef XLAT_VAL_106 +# undef XLAT_STR_107 +# undef XLAT_VAL_107 +# undef XLAT_STR_108 +# undef XLAT_VAL_108 +# undef XLAT_STR_109 +# undef XLAT_VAL_109 +# undef XLAT_STR_110 +# undef XLAT_VAL_110 +# undef XLAT_STR_111 +# undef XLAT_VAL_111 +# undef XLAT_STR_112 +# undef XLAT_VAL_112 +# undef XLAT_STR_113 +# undef XLAT_VAL_113 +# undef XLAT_STR_114 +# undef XLAT_VAL_114 +# undef XLAT_STR_115 +# undef XLAT_VAL_115 +# undef XLAT_STR_116 +# undef XLAT_VAL_116 +# undef XLAT_STR_117 +# undef XLAT_VAL_117 +# undef XLAT_STR_118 +# undef XLAT_VAL_118 +# undef XLAT_STR_119 +# undef XLAT_VAL_119 +# undef XLAT_STR_120 +# undef XLAT_VAL_120 +# undef XLAT_STR_121 +# undef XLAT_VAL_121 +# undef XLAT_STR_122 +# undef XLAT_VAL_122 +# undef XLAT_STR_123 +# undef XLAT_VAL_123 +# undef XLAT_STR_124 +# undef XLAT_VAL_124 +# undef XLAT_STR_125 +# undef XLAT_VAL_125 +# undef XLAT_STR_126 +# undef XLAT_VAL_126 +# undef XLAT_STR_127 +# undef XLAT_VAL_127 +# undef XLAT_STR_128 +# undef XLAT_VAL_128 +# undef XLAT_STR_129 +# undef XLAT_VAL_129 +# undef XLAT_STR_130 +# undef XLAT_VAL_130 +# undef XLAT_STR_131 +# undef XLAT_VAL_131 +# undef XLAT_STR_132 +# undef XLAT_VAL_132 +# undef XLAT_STR_133 +# undef XLAT_VAL_133 +# undef XLAT_STR_134 +# undef XLAT_VAL_134 +# undef XLAT_STR_135 +# undef XLAT_VAL_135 +# undef XLAT_STR_136 +# undef XLAT_VAL_136 +# undef XLAT_STR_137 +# undef XLAT_VAL_137 +# undef XLAT_STR_138 +# undef XLAT_VAL_138 +# undef XLAT_STR_139 +# undef XLAT_VAL_139 +# undef XLAT_STR_140 +# undef XLAT_VAL_140 +# undef XLAT_STR_141 +# undef XLAT_VAL_141 +# undef XLAT_STR_142 +# undef XLAT_VAL_142 +# undef XLAT_STR_143 +# undef XLAT_VAL_143 +# undef XLAT_STR_144 +# undef XLAT_VAL_144 +# undef XLAT_STR_145 +# undef XLAT_VAL_145 +# undef XLAT_STR_146 +# undef XLAT_VAL_146 +# undef XLAT_STR_147 +# undef XLAT_VAL_147 +# undef XLAT_STR_148 +# undef XLAT_VAL_148 +# undef XLAT_STR_149 +# undef XLAT_VAL_149 +# undef XLAT_STR_150 +# undef XLAT_VAL_150 +# undef XLAT_STR_151 +# undef XLAT_VAL_151 +# undef XLAT_STR_152 +# undef XLAT_VAL_152 +# undef XLAT_STR_153 +# undef XLAT_VAL_153 +# undef XLAT_STR_154 +# undef XLAT_VAL_154 +# undef XLAT_STR_155 +# undef XLAT_VAL_155 +# undef XLAT_STR_156 +# undef XLAT_VAL_156 +# undef XLAT_STR_157 +# undef XLAT_VAL_157 +# undef XLAT_STR_158 +# undef XLAT_VAL_158 +# undef XLAT_STR_159 +# undef XLAT_VAL_159 +# undef XLAT_STR_160 +# undef XLAT_VAL_160 +# undef XLAT_STR_161 +# undef XLAT_VAL_161 +# undef XLAT_STR_162 +# undef XLAT_VAL_162 +# undef XLAT_STR_163 +# undef XLAT_VAL_163 +# undef XLAT_STR_164 +# undef XLAT_VAL_164 +# undef XLAT_STR_165 +# undef XLAT_VAL_165 +# undef XLAT_STR_166 +# undef XLAT_VAL_166 +# undef XLAT_STR_167 +# undef XLAT_VAL_167 +# undef XLAT_STR_168 +# undef XLAT_VAL_168 +# undef XLAT_STR_169 +# undef XLAT_VAL_169 +# undef XLAT_STR_170 +# undef XLAT_VAL_170 +# undef XLAT_STR_171 +# undef XLAT_VAL_171 +# undef XLAT_STR_172 +# undef XLAT_VAL_172 +# undef XLAT_STR_173 +# undef XLAT_VAL_173 +# undef XLAT_STR_174 +# undef XLAT_VAL_174 +# undef XLAT_STR_175 +# undef XLAT_VAL_175 +# undef XLAT_STR_176 +# undef XLAT_VAL_176 +# undef XLAT_STR_177 +# undef XLAT_VAL_177 +# undef XLAT_STR_178 +# undef XLAT_VAL_178 +# undef XLAT_STR_179 +# undef XLAT_VAL_179 +# undef XLAT_STR_180 +# undef XLAT_VAL_180 +# undef XLAT_STR_181 +# undef XLAT_VAL_181 +# undef XLAT_STR_182 +# undef XLAT_VAL_182 +# undef XLAT_STR_183 +# undef XLAT_VAL_183 +# undef XLAT_STR_184 +# undef XLAT_VAL_184 +# undef XLAT_STR_185 +# undef XLAT_VAL_185 +# undef XLAT_STR_186 +# undef XLAT_VAL_186 +# undef XLAT_STR_187 +# undef XLAT_VAL_187 +# undef XLAT_STR_188 +# undef XLAT_VAL_188 +# undef XLAT_STR_189 +# undef XLAT_VAL_189 +# undef XLAT_STR_190 +# undef XLAT_VAL_190 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_options.in b/xlat/sock_options.in index 619356e3..d6452a5d 100644 --- a/xlat/sock_options.in +++ b/xlat/sock_options.in @@ -198,6 +198,8 @@ SO_BINDTODEVICE 16409 SO_BINDTODEVICE 25 #endif +/* SO_ATTACH_FILTER is in setsock_options.h */ + #if defined __hppa__ SO_DETACH_FILTER 16411 #else @@ -454,6 +456,14 @@ SO_TXTIME 16438 SO_TXTIME 61 #endif +#if defined __sparc__ +SO_BINDTOIFINDEX 65 +#elif defined __hppa__ +SO_BINDTOIFINDEX 16439 +#else +SO_BINDTOIFINDEX 62 +#endif + #if defined __sparc__ SO_TIMESTAMP_NEW 70 #elif defined __hppa__ @@ -461,6 +471,7 @@ SO_TIMESTAMP_NEW 16440 #else SO_TIMESTAMP_NEW 63 #endif + #if defined __sparc__ SO_TIMESTAMPNS_NEW 66 #elif defined __hppa__ @@ -468,6 +479,7 @@ SO_TIMESTAMPNS_NEW 16441 #else SO_TIMESTAMPNS_NEW 64 #endif + #if defined __sparc__ SO_TIMESTAMPING_NEW 67 #elif defined __hppa__ @@ -475,3 +487,27 @@ SO_TIMESTAMPING_NEW 16442 #else SO_TIMESTAMPING_NEW 65 #endif + +#if defined __sparc__ +SO_RCVTIMEO_NEW 68 +#elif defined __hppa__ +SO_RCVTIMEO_NEW 16448 +#else +SO_RCVTIMEO_NEW 66 +#endif + +#if defined __sparc__ +SO_SNDTIMEO_NEW 69 +#elif defined __hppa__ +SO_SNDTIMEO_NEW 16449 +#else +SO_SNDTIMEO_NEW 67 +#endif + +#if defined __sparc__ +SO_DETACH_REUSEPORT_BPF 71 +#elif defined __hppa__ +SO_DETACH_REUSEPORT_BPF 16450 +#else +SO_DETACH_REUSEPORT_BPF 68 +#endif diff --git a/xlat/sock_packet_options.h b/xlat/sock_packet_options.h index 045fc591..165e493c 100644 --- a/xlat/sock_packet_options.h +++ b/xlat/sock_packet_options.h @@ -12,74 +12,292 @@ # else -static -const struct xlat sock_packet_options[] = { +static const struct xlat_data sock_packet_options_xdata[] = { #if defined(PACKET_ADD_MEMBERSHIP) || (defined(HAVE_DECL_PACKET_ADD_MEMBERSHIP) && HAVE_DECL_PACKET_ADD_MEMBERSHIP) XLAT(PACKET_ADD_MEMBERSHIP), + #define XLAT_VAL_0 ((unsigned) (PACKET_ADD_MEMBERSHIP)) + #define XLAT_STR_0 STRINGIFY(PACKET_ADD_MEMBERSHIP) #endif #if defined(PACKET_DROP_MEMBERSHIP) || (defined(HAVE_DECL_PACKET_DROP_MEMBERSHIP) && HAVE_DECL_PACKET_DROP_MEMBERSHIP) XLAT(PACKET_DROP_MEMBERSHIP), + #define XLAT_VAL_1 ((unsigned) (PACKET_DROP_MEMBERSHIP)) + #define XLAT_STR_1 STRINGIFY(PACKET_DROP_MEMBERSHIP) #endif #if defined(PACKET_RECV_OUTPUT) || (defined(HAVE_DECL_PACKET_RECV_OUTPUT) && HAVE_DECL_PACKET_RECV_OUTPUT) XLAT(PACKET_RECV_OUTPUT), + #define XLAT_VAL_2 ((unsigned) (PACKET_RECV_OUTPUT)) + #define XLAT_STR_2 STRINGIFY(PACKET_RECV_OUTPUT) #endif #if defined(PACKET_RX_RING) || (defined(HAVE_DECL_PACKET_RX_RING) && HAVE_DECL_PACKET_RX_RING) XLAT(PACKET_RX_RING), + #define XLAT_VAL_3 ((unsigned) (PACKET_RX_RING)) + #define XLAT_STR_3 STRINGIFY(PACKET_RX_RING) #endif #if defined(PACKET_STATISTICS) || (defined(HAVE_DECL_PACKET_STATISTICS) && HAVE_DECL_PACKET_STATISTICS) XLAT(PACKET_STATISTICS), + #define XLAT_VAL_4 ((unsigned) (PACKET_STATISTICS)) + #define XLAT_STR_4 STRINGIFY(PACKET_STATISTICS) #endif #if defined(PACKET_COPY_THRESH) || (defined(HAVE_DECL_PACKET_COPY_THRESH) && HAVE_DECL_PACKET_COPY_THRESH) XLAT(PACKET_COPY_THRESH), + #define XLAT_VAL_5 ((unsigned) (PACKET_COPY_THRESH)) + #define XLAT_STR_5 STRINGIFY(PACKET_COPY_THRESH) #endif #if defined(PACKET_AUXDATA) || (defined(HAVE_DECL_PACKET_AUXDATA) && HAVE_DECL_PACKET_AUXDATA) XLAT(PACKET_AUXDATA), + #define XLAT_VAL_6 ((unsigned) (PACKET_AUXDATA)) + #define XLAT_STR_6 STRINGIFY(PACKET_AUXDATA) #endif #if defined(PACKET_ORIGDEV) || (defined(HAVE_DECL_PACKET_ORIGDEV) && HAVE_DECL_PACKET_ORIGDEV) XLAT(PACKET_ORIGDEV), + #define XLAT_VAL_7 ((unsigned) (PACKET_ORIGDEV)) + #define XLAT_STR_7 STRINGIFY(PACKET_ORIGDEV) #endif #if defined(PACKET_VERSION) || (defined(HAVE_DECL_PACKET_VERSION) && HAVE_DECL_PACKET_VERSION) XLAT(PACKET_VERSION), + #define XLAT_VAL_8 ((unsigned) (PACKET_VERSION)) + #define XLAT_STR_8 STRINGIFY(PACKET_VERSION) #endif #if defined(PACKET_HDRLEN) || (defined(HAVE_DECL_PACKET_HDRLEN) && HAVE_DECL_PACKET_HDRLEN) XLAT(PACKET_HDRLEN), + #define XLAT_VAL_9 ((unsigned) (PACKET_HDRLEN)) + #define XLAT_STR_9 STRINGIFY(PACKET_HDRLEN) #endif #if defined(PACKET_RESERVE) || (defined(HAVE_DECL_PACKET_RESERVE) && HAVE_DECL_PACKET_RESERVE) XLAT(PACKET_RESERVE), + #define XLAT_VAL_10 ((unsigned) (PACKET_RESERVE)) + #define XLAT_STR_10 STRINGIFY(PACKET_RESERVE) #endif #if defined(PACKET_TX_RING) || (defined(HAVE_DECL_PACKET_TX_RING) && HAVE_DECL_PACKET_TX_RING) XLAT(PACKET_TX_RING), + #define XLAT_VAL_11 ((unsigned) (PACKET_TX_RING)) + #define XLAT_STR_11 STRINGIFY(PACKET_TX_RING) #endif #if defined(PACKET_LOSS) || (defined(HAVE_DECL_PACKET_LOSS) && HAVE_DECL_PACKET_LOSS) XLAT(PACKET_LOSS), + #define XLAT_VAL_12 ((unsigned) (PACKET_LOSS)) + #define XLAT_STR_12 STRINGIFY(PACKET_LOSS) #endif #if defined(PACKET_VNET_HDR) || (defined(HAVE_DECL_PACKET_VNET_HDR) && HAVE_DECL_PACKET_VNET_HDR) XLAT(PACKET_VNET_HDR), + #define XLAT_VAL_13 ((unsigned) (PACKET_VNET_HDR)) + #define XLAT_STR_13 STRINGIFY(PACKET_VNET_HDR) #endif #if defined(PACKET_TX_TIMESTAMP) || (defined(HAVE_DECL_PACKET_TX_TIMESTAMP) && HAVE_DECL_PACKET_TX_TIMESTAMP) XLAT(PACKET_TX_TIMESTAMP), + #define XLAT_VAL_14 ((unsigned) (PACKET_TX_TIMESTAMP)) + #define XLAT_STR_14 STRINGIFY(PACKET_TX_TIMESTAMP) #endif #if defined(PACKET_TIMESTAMP) || (defined(HAVE_DECL_PACKET_TIMESTAMP) && HAVE_DECL_PACKET_TIMESTAMP) XLAT(PACKET_TIMESTAMP), + #define XLAT_VAL_15 ((unsigned) (PACKET_TIMESTAMP)) + #define XLAT_STR_15 STRINGIFY(PACKET_TIMESTAMP) #endif #if defined(PACKET_FANOUT) || (defined(HAVE_DECL_PACKET_FANOUT) && HAVE_DECL_PACKET_FANOUT) XLAT(PACKET_FANOUT), + #define XLAT_VAL_16 ((unsigned) (PACKET_FANOUT)) + #define XLAT_STR_16 STRINGIFY(PACKET_FANOUT) #endif #if defined(PACKET_TX_HAS_OFF) || (defined(HAVE_DECL_PACKET_TX_HAS_OFF) && HAVE_DECL_PACKET_TX_HAS_OFF) XLAT(PACKET_TX_HAS_OFF), + #define XLAT_VAL_17 ((unsigned) (PACKET_TX_HAS_OFF)) + #define XLAT_STR_17 STRINGIFY(PACKET_TX_HAS_OFF) #endif #if defined(PACKET_QDISC_BYPASS) || (defined(HAVE_DECL_PACKET_QDISC_BYPASS) && HAVE_DECL_PACKET_QDISC_BYPASS) XLAT(PACKET_QDISC_BYPASS), + #define XLAT_VAL_18 ((unsigned) (PACKET_QDISC_BYPASS)) + #define XLAT_STR_18 STRINGIFY(PACKET_QDISC_BYPASS) #endif #if defined(PACKET_ROLLOVER_STATS) || (defined(HAVE_DECL_PACKET_ROLLOVER_STATS) && HAVE_DECL_PACKET_ROLLOVER_STATS) XLAT(PACKET_ROLLOVER_STATS), + #define XLAT_VAL_19 ((unsigned) (PACKET_ROLLOVER_STATS)) + #define XLAT_STR_19 STRINGIFY(PACKET_ROLLOVER_STATS) #endif #if defined(PACKET_FANOUT_DATA) || (defined(HAVE_DECL_PACKET_FANOUT_DATA) && HAVE_DECL_PACKET_FANOUT_DATA) XLAT(PACKET_FANOUT_DATA), + #define XLAT_VAL_20 ((unsigned) (PACKET_FANOUT_DATA)) + #define XLAT_STR_20 STRINGIFY(PACKET_FANOUT_DATA) #endif - XLAT_END }; +static +const struct xlat sock_packet_options[1] = { { + .data = sock_packet_options_xdata, + .size = ARRAY_SIZE(sock_packet_options_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_pnp_options.h b/xlat/sock_pnp_options.h index d9083b32..649df980 100644 --- a/xlat/sock_pnp_options.h +++ b/xlat/sock_pnp_options.h @@ -40,15 +40,63 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat sock_pnp_options[] = { - XLAT(PNPIPE_ENCAP), - XLAT(PNPIPE_IFINDEX), - XLAT(PNPIPE_HANDLE), - XLAT(PNPIPE_INITSTATE), - XLAT_END +static const struct xlat_data sock_pnp_options_xdata[] = { + [PNPIPE_ENCAP] = XLAT(PNPIPE_ENCAP), + #define XLAT_VAL_0 ((unsigned) (PNPIPE_ENCAP)) + #define XLAT_STR_0 STRINGIFY(PNPIPE_ENCAP) + [PNPIPE_IFINDEX] = XLAT(PNPIPE_IFINDEX), + #define XLAT_VAL_1 ((unsigned) (PNPIPE_IFINDEX)) + #define XLAT_STR_1 STRINGIFY(PNPIPE_IFINDEX) + [PNPIPE_HANDLE] = XLAT(PNPIPE_HANDLE), + #define XLAT_VAL_2 ((unsigned) (PNPIPE_HANDLE)) + #define XLAT_STR_2 STRINGIFY(PNPIPE_HANDLE) + [PNPIPE_INITSTATE] = XLAT(PNPIPE_INITSTATE), + #define XLAT_VAL_3 ((unsigned) (PNPIPE_INITSTATE)) + #define XLAT_STR_3 STRINGIFY(PNPIPE_INITSTATE) }; +static +const struct xlat sock_pnp_options[1] = { { + .data = sock_pnp_options_xdata, + .size = ARRAY_SIZE(sock_pnp_options_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_pnp_options.in b/xlat/sock_pnp_options.in index a8d939c2..03d251b3 100644 --- a/xlat/sock_pnp_options.in +++ b/xlat/sock_pnp_options.in @@ -1,3 +1,4 @@ +#value_indexed PNPIPE_ENCAP 1 PNPIPE_IFINDEX 2 PNPIPE_HANDLE 3 diff --git a/xlat/sock_pppol2tp_options.h b/xlat/sock_pppol2tp_options.h index 4f4064f9..25814657 100644 --- a/xlat/sock_pppol2tp_options.h +++ b/xlat/sock_pppol2tp_options.h @@ -47,16 +47,74 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat sock_pppol2tp_options[] = { +static const struct xlat_data sock_pppol2tp_options_xdata[] = { [PPPOL2TP_SO_DEBUG] = XLAT(PPPOL2TP_SO_DEBUG), + #define XLAT_VAL_0 ((unsigned) (PPPOL2TP_SO_DEBUG)) + #define XLAT_STR_0 STRINGIFY(PPPOL2TP_SO_DEBUG) [PPPOL2TP_SO_RECVSEQ] = XLAT(PPPOL2TP_SO_RECVSEQ), + #define XLAT_VAL_1 ((unsigned) (PPPOL2TP_SO_RECVSEQ)) + #define XLAT_STR_1 STRINGIFY(PPPOL2TP_SO_RECVSEQ) [PPPOL2TP_SO_SENDSEQ] = XLAT(PPPOL2TP_SO_SENDSEQ), + #define XLAT_VAL_2 ((unsigned) (PPPOL2TP_SO_SENDSEQ)) + #define XLAT_STR_2 STRINGIFY(PPPOL2TP_SO_SENDSEQ) [PPPOL2TP_SO_LNSMODE] = XLAT(PPPOL2TP_SO_LNSMODE), + #define XLAT_VAL_3 ((unsigned) (PPPOL2TP_SO_LNSMODE)) + #define XLAT_STR_3 STRINGIFY(PPPOL2TP_SO_LNSMODE) [PPPOL2TP_SO_REORDERTO] = XLAT(PPPOL2TP_SO_REORDERTO), - XLAT_END + #define XLAT_VAL_4 ((unsigned) (PPPOL2TP_SO_REORDERTO)) + #define XLAT_STR_4 STRINGIFY(PPPOL2TP_SO_REORDERTO) }; +static +const struct xlat sock_pppol2tp_options[1] = { { + .data = sock_pppol2tp_options_xdata, + .size = ARRAY_SIZE(sock_pppol2tp_options_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_raw_options.h b/xlat/sock_raw_options.h index e69998c7..afa0aeb3 100644 --- a/xlat/sock_raw_options.h +++ b/xlat/sock_raw_options.h @@ -12,14 +12,32 @@ # else -static -const struct xlat sock_raw_options[] = { +static const struct xlat_data sock_raw_options_xdata[] = { #if defined(ICMP_FILTER) || (defined(HAVE_DECL_ICMP_FILTER) && HAVE_DECL_ICMP_FILTER) XLAT(ICMP_FILTER), + #define XLAT_VAL_0 ((unsigned) (ICMP_FILTER)) + #define XLAT_STR_0 STRINGIFY(ICMP_FILTER) #endif - XLAT_END }; - +static +const struct xlat sock_raw_options[1] = { { + .data = sock_raw_options_xdata, + .size = ARRAY_SIZE(sock_raw_options_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_rds_options.h b/xlat/sock_rds_options.h index f76a56b2..3b2b926d 100644 --- a/xlat/sock_rds_options.h +++ b/xlat/sock_rds_options.h @@ -170,40 +170,268 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat sock_rds_options[] = { +static const struct xlat_data sock_rds_options_xdata[] = { XLAT(RDS_CANCEL_SENT_TO), + #define XLAT_VAL_0 ((unsigned) (RDS_CANCEL_SENT_TO)) + #define XLAT_STR_0 STRINGIFY(RDS_CANCEL_SENT_TO) XLAT(RDS_GET_MR), + #define XLAT_VAL_1 ((unsigned) (RDS_GET_MR)) + #define XLAT_STR_1 STRINGIFY(RDS_GET_MR) XLAT(RDS_FREE_MR), + #define XLAT_VAL_2 ((unsigned) (RDS_FREE_MR)) + #define XLAT_STR_2 STRINGIFY(RDS_FREE_MR) XLAT(RDS_BARRIER), + #define XLAT_VAL_3 ((unsigned) (RDS_BARRIER)) + #define XLAT_STR_3 STRINGIFY(RDS_BARRIER) XLAT(RDS_RECVERR), + #define XLAT_VAL_4 ((unsigned) (RDS_RECVERR)) + #define XLAT_STR_4 STRINGIFY(RDS_RECVERR) XLAT(RDS_CONG_MONITOR), + #define XLAT_VAL_5 ((unsigned) (RDS_CONG_MONITOR)) + #define XLAT_STR_5 STRINGIFY(RDS_CONG_MONITOR) XLAT(RDS_GET_MR_FOR_DEST), + #define XLAT_VAL_6 ((unsigned) (RDS_GET_MR_FOR_DEST)) + #define XLAT_STR_6 STRINGIFY(RDS_GET_MR_FOR_DEST) XLAT(SO_RDS_TRANSPORT), + #define XLAT_VAL_7 ((unsigned) (SO_RDS_TRANSPORT)) + #define XLAT_STR_7 STRINGIFY(SO_RDS_TRANSPORT) XLAT(SO_RDS_MSG_RXPATH_LATENCY), + #define XLAT_VAL_8 ((unsigned) (SO_RDS_MSG_RXPATH_LATENCY)) + #define XLAT_STR_8 STRINGIFY(SO_RDS_MSG_RXPATH_LATENCY) #ifndef __hppa__ XLAT(SO_TIMESTAMP_OLD), + #define XLAT_VAL_9 ((unsigned) (SO_TIMESTAMP_OLD)) + #define XLAT_STR_9 STRINGIFY(SO_TIMESTAMP_OLD) #endif XLAT(RDS_INFO_COUNTERS), + #define XLAT_VAL_10 ((unsigned) (RDS_INFO_COUNTERS)) + #define XLAT_STR_10 STRINGIFY(RDS_INFO_COUNTERS) XLAT(RDS_INFO_CONNECTIONS), + #define XLAT_VAL_11 ((unsigned) (RDS_INFO_CONNECTIONS)) + #define XLAT_STR_11 STRINGIFY(RDS_INFO_CONNECTIONS) XLAT(RDS_INFO_FLOWS), + #define XLAT_VAL_12 ((unsigned) (RDS_INFO_FLOWS)) + #define XLAT_STR_12 STRINGIFY(RDS_INFO_FLOWS) XLAT(RDS_INFO_SEND_MESSAGES), + #define XLAT_VAL_13 ((unsigned) (RDS_INFO_SEND_MESSAGES)) + #define XLAT_STR_13 STRINGIFY(RDS_INFO_SEND_MESSAGES) XLAT(RDS_INFO_RETRANS_MESSAGES), + #define XLAT_VAL_14 ((unsigned) (RDS_INFO_RETRANS_MESSAGES)) + #define XLAT_STR_14 STRINGIFY(RDS_INFO_RETRANS_MESSAGES) XLAT(RDS_INFO_RECV_MESSAGES), + #define XLAT_VAL_15 ((unsigned) (RDS_INFO_RECV_MESSAGES)) + #define XLAT_STR_15 STRINGIFY(RDS_INFO_RECV_MESSAGES) XLAT(RDS_INFO_SOCKETS), + #define XLAT_VAL_16 ((unsigned) (RDS_INFO_SOCKETS)) + #define XLAT_STR_16 STRINGIFY(RDS_INFO_SOCKETS) XLAT(RDS_INFO_TCP_SOCKETS), + #define XLAT_VAL_17 ((unsigned) (RDS_INFO_TCP_SOCKETS)) + #define XLAT_STR_17 STRINGIFY(RDS_INFO_TCP_SOCKETS) XLAT(RDS_INFO_IB_CONNECTIONS), + #define XLAT_VAL_18 ((unsigned) (RDS_INFO_IB_CONNECTIONS)) + #define XLAT_STR_18 STRINGIFY(RDS_INFO_IB_CONNECTIONS) XLAT(RDS_INFO_CONNECTION_STATS), + #define XLAT_VAL_19 ((unsigned) (RDS_INFO_CONNECTION_STATS)) + #define XLAT_STR_19 STRINGIFY(RDS_INFO_CONNECTION_STATS) XLAT(RDS_INFO_IWARP_CONNECTIONS), + #define XLAT_VAL_20 ((unsigned) (RDS_INFO_IWARP_CONNECTIONS)) + #define XLAT_STR_20 STRINGIFY(RDS_INFO_IWARP_CONNECTIONS) #ifdef __hppa__ XLAT(SO_TIMESTAMP_OLD), + #define XLAT_VAL_21 ((unsigned) (SO_TIMESTAMP_OLD)) + #define XLAT_STR_21 STRINGIFY(SO_TIMESTAMP_OLD) #endif - XLAT_END }; +static +const struct xlat sock_rds_options[1] = { { + .data = sock_rds_options_xdata, + .size = ARRAY_SIZE(sock_rds_options_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_rxrpc_options.h b/xlat/sock_rxrpc_options.h index a7ab59ac..5122882c 100644 --- a/xlat/sock_rxrpc_options.h +++ b/xlat/sock_rxrpc_options.h @@ -54,17 +54,85 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat sock_rxrpc_options[] = { +static const struct xlat_data sock_rxrpc_options_xdata[] = { [RXRPC_SECURITY_KEY] = XLAT(RXRPC_SECURITY_KEY), + #define XLAT_VAL_0 ((unsigned) (RXRPC_SECURITY_KEY)) + #define XLAT_STR_0 STRINGIFY(RXRPC_SECURITY_KEY) [RXRPC_SECURITY_KEYRING] = XLAT(RXRPC_SECURITY_KEYRING), + #define XLAT_VAL_1 ((unsigned) (RXRPC_SECURITY_KEYRING)) + #define XLAT_STR_1 STRINGIFY(RXRPC_SECURITY_KEYRING) [RXRPC_EXCLUSIVE_CONNECTION] = XLAT(RXRPC_EXCLUSIVE_CONNECTION), + #define XLAT_VAL_2 ((unsigned) (RXRPC_EXCLUSIVE_CONNECTION)) + #define XLAT_STR_2 STRINGIFY(RXRPC_EXCLUSIVE_CONNECTION) [RXRPC_MIN_SECURITY_LEVEL] = XLAT(RXRPC_MIN_SECURITY_LEVEL), + #define XLAT_VAL_3 ((unsigned) (RXRPC_MIN_SECURITY_LEVEL)) + #define XLAT_STR_3 STRINGIFY(RXRPC_MIN_SECURITY_LEVEL) [RXRPC_UPGRADEABLE_SERVICE] = XLAT(RXRPC_UPGRADEABLE_SERVICE), + #define XLAT_VAL_4 ((unsigned) (RXRPC_UPGRADEABLE_SERVICE)) + #define XLAT_STR_4 STRINGIFY(RXRPC_UPGRADEABLE_SERVICE) [RXRPC_SUPPORTED_CMSG] = XLAT(RXRPC_SUPPORTED_CMSG), - XLAT_END + #define XLAT_VAL_5 ((unsigned) (RXRPC_SUPPORTED_CMSG)) + #define XLAT_STR_5 STRINGIFY(RXRPC_SUPPORTED_CMSG) }; +static +const struct xlat sock_rxrpc_options[1] = { { + .data = sock_rxrpc_options_xdata, + .size = ARRAY_SIZE(sock_rxrpc_options_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_sctp_options.h b/xlat/sock_sctp_options.h index 766c2251..5c2fa99d 100644 --- a/xlat/sock_sctp_options.h +++ b/xlat/sock_sctp_options.h @@ -262,6 +262,13 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define SCTP_REUSE_PORT 36 #endif +#if defined(SCTP_PEER_ADDR_THLDS_V2) || (defined(HAVE_DECL_SCTP_PEER_ADDR_THLDS_V2) && HAVE_DECL_SCTP_PEER_ADDR_THLDS_V2) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SCTP_PEER_ADDR_THLDS_V2) == (37), "SCTP_PEER_ADDR_THLDS_V2 != 37"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SCTP_PEER_ADDR_THLDS_V2 37 +#endif #if defined(SCTP_SOCKOPT_BINDX_ADD) || (defined(HAVE_DECL_SCTP_SOCKOPT_BINDX_ADD) && HAVE_DECL_SCTP_SOCKOPT_BINDX_ADD) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((SCTP_SOCKOPT_BINDX_ADD) == (100), "SCTP_SOCKOPT_BINDX_ADD != 100"); @@ -458,6 +465,34 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define SCTP_EVENT 127 #endif +#if defined(SCTP_ASCONF_SUPPORTED) || (defined(HAVE_DECL_SCTP_ASCONF_SUPPORTED) && HAVE_DECL_SCTP_ASCONF_SUPPORTED) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SCTP_ASCONF_SUPPORTED) == (128), "SCTP_ASCONF_SUPPORTED != 128"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SCTP_ASCONF_SUPPORTED 128 +#endif +#if defined(SCTP_AUTH_SUPPORTED) || (defined(HAVE_DECL_SCTP_AUTH_SUPPORTED) && HAVE_DECL_SCTP_AUTH_SUPPORTED) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SCTP_AUTH_SUPPORTED) == (129), "SCTP_AUTH_SUPPORTED != 129"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SCTP_AUTH_SUPPORTED 129 +#endif +#if defined(SCTP_ECN_SUPPORTED) || (defined(HAVE_DECL_SCTP_ECN_SUPPORTED) && HAVE_DECL_SCTP_ECN_SUPPORTED) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SCTP_ECN_SUPPORTED) == (130), "SCTP_ECN_SUPPORTED != 130"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SCTP_ECN_SUPPORTED 130 +#endif +#if defined(SCTP_EXPOSE_POTENTIALLY_FAILED_STATE) || (defined(HAVE_DECL_SCTP_EXPOSE_POTENTIALLY_FAILED_STATE) && HAVE_DECL_SCTP_EXPOSE_POTENTIALLY_FAILED_STATE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((SCTP_EXPOSE_POTENTIALLY_FAILED_STATE) == (131), "SCTP_EXPOSE_POTENTIALLY_FAILED_STATE != 131"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define SCTP_EXPOSE_POTENTIALLY_FAILED_STATE 131 +#endif #ifndef XLAT_MACROS_ONLY @@ -467,77 +502,790 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat sock_sctp_options[] = { +static const struct xlat_data sock_sctp_options_xdata[] = { XLAT(SCTP_RTOINFO), + #define XLAT_VAL_0 ((unsigned) (SCTP_RTOINFO)) + #define XLAT_STR_0 STRINGIFY(SCTP_RTOINFO) XLAT(SCTP_ASSOCINFO), + #define XLAT_VAL_1 ((unsigned) (SCTP_ASSOCINFO)) + #define XLAT_STR_1 STRINGIFY(SCTP_ASSOCINFO) XLAT(SCTP_INITMSG), + #define XLAT_VAL_2 ((unsigned) (SCTP_INITMSG)) + #define XLAT_STR_2 STRINGIFY(SCTP_INITMSG) XLAT(SCTP_NODELAY), + #define XLAT_VAL_3 ((unsigned) (SCTP_NODELAY)) + #define XLAT_STR_3 STRINGIFY(SCTP_NODELAY) XLAT(SCTP_AUTOCLOSE), + #define XLAT_VAL_4 ((unsigned) (SCTP_AUTOCLOSE)) + #define XLAT_STR_4 STRINGIFY(SCTP_AUTOCLOSE) XLAT(SCTP_SET_PEER_PRIMARY_ADDR), + #define XLAT_VAL_5 ((unsigned) (SCTP_SET_PEER_PRIMARY_ADDR)) + #define XLAT_STR_5 STRINGIFY(SCTP_SET_PEER_PRIMARY_ADDR) XLAT(SCTP_PRIMARY_ADDR), + #define XLAT_VAL_6 ((unsigned) (SCTP_PRIMARY_ADDR)) + #define XLAT_STR_6 STRINGIFY(SCTP_PRIMARY_ADDR) XLAT(SCTP_ADAPTATION_LAYER), + #define XLAT_VAL_7 ((unsigned) (SCTP_ADAPTATION_LAYER)) + #define XLAT_STR_7 STRINGIFY(SCTP_ADAPTATION_LAYER) XLAT(SCTP_DISABLE_FRAGMENTS), + #define XLAT_VAL_8 ((unsigned) (SCTP_DISABLE_FRAGMENTS)) + #define XLAT_STR_8 STRINGIFY(SCTP_DISABLE_FRAGMENTS) XLAT(SCTP_PEER_ADDR_PARAMS), + #define XLAT_VAL_9 ((unsigned) (SCTP_PEER_ADDR_PARAMS)) + #define XLAT_STR_9 STRINGIFY(SCTP_PEER_ADDR_PARAMS) XLAT(SCTP_DEFAULT_SEND_PARAM), + #define XLAT_VAL_10 ((unsigned) (SCTP_DEFAULT_SEND_PARAM)) + #define XLAT_STR_10 STRINGIFY(SCTP_DEFAULT_SEND_PARAM) XLAT(SCTP_EVENTS), + #define XLAT_VAL_11 ((unsigned) (SCTP_EVENTS)) + #define XLAT_STR_11 STRINGIFY(SCTP_EVENTS) XLAT(SCTP_I_WANT_MAPPED_V4_ADDR), + #define XLAT_VAL_12 ((unsigned) (SCTP_I_WANT_MAPPED_V4_ADDR)) + #define XLAT_STR_12 STRINGIFY(SCTP_I_WANT_MAPPED_V4_ADDR) XLAT(SCTP_MAXSEG), + #define XLAT_VAL_13 ((unsigned) (SCTP_MAXSEG)) + #define XLAT_STR_13 STRINGIFY(SCTP_MAXSEG) XLAT(SCTP_STATUS), + #define XLAT_VAL_14 ((unsigned) (SCTP_STATUS)) + #define XLAT_STR_14 STRINGIFY(SCTP_STATUS) XLAT(SCTP_GET_PEER_ADDR_INFO), + #define XLAT_VAL_15 ((unsigned) (SCTP_GET_PEER_ADDR_INFO)) + #define XLAT_STR_15 STRINGIFY(SCTP_GET_PEER_ADDR_INFO) XLAT(SCTP_DELAYED_SACK), + #define XLAT_VAL_16 ((unsigned) (SCTP_DELAYED_SACK)) + #define XLAT_STR_16 STRINGIFY(SCTP_DELAYED_SACK) XLAT(SCTP_CONTEXT), + #define XLAT_VAL_17 ((unsigned) (SCTP_CONTEXT)) + #define XLAT_STR_17 STRINGIFY(SCTP_CONTEXT) XLAT(SCTP_FRAGMENT_INTERLEAVE), + #define XLAT_VAL_18 ((unsigned) (SCTP_FRAGMENT_INTERLEAVE)) + #define XLAT_STR_18 STRINGIFY(SCTP_FRAGMENT_INTERLEAVE) XLAT(SCTP_PARTIAL_DELIVERY_POINT), + #define XLAT_VAL_19 ((unsigned) (SCTP_PARTIAL_DELIVERY_POINT)) + #define XLAT_STR_19 STRINGIFY(SCTP_PARTIAL_DELIVERY_POINT) XLAT(SCTP_MAX_BURST), + #define XLAT_VAL_20 ((unsigned) (SCTP_MAX_BURST)) + #define XLAT_STR_20 STRINGIFY(SCTP_MAX_BURST) XLAT(SCTP_AUTH_CHUNK), + #define XLAT_VAL_21 ((unsigned) (SCTP_AUTH_CHUNK)) + #define XLAT_STR_21 STRINGIFY(SCTP_AUTH_CHUNK) XLAT(SCTP_HMAC_IDENT), + #define XLAT_VAL_22 ((unsigned) (SCTP_HMAC_IDENT)) + #define XLAT_STR_22 STRINGIFY(SCTP_HMAC_IDENT) XLAT(SCTP_AUTH_KEY), + #define XLAT_VAL_23 ((unsigned) (SCTP_AUTH_KEY)) + #define XLAT_STR_23 STRINGIFY(SCTP_AUTH_KEY) XLAT(SCTP_AUTH_ACTIVE_KEY), + #define XLAT_VAL_24 ((unsigned) (SCTP_AUTH_ACTIVE_KEY)) + #define XLAT_STR_24 STRINGIFY(SCTP_AUTH_ACTIVE_KEY) XLAT(SCTP_AUTH_DELETE_KEY), + #define XLAT_VAL_25 ((unsigned) (SCTP_AUTH_DELETE_KEY)) + #define XLAT_STR_25 STRINGIFY(SCTP_AUTH_DELETE_KEY) XLAT(SCTP_PEER_AUTH_CHUNKS), + #define XLAT_VAL_26 ((unsigned) (SCTP_PEER_AUTH_CHUNKS)) + #define XLAT_STR_26 STRINGIFY(SCTP_PEER_AUTH_CHUNKS) XLAT(SCTP_LOCAL_AUTH_CHUNKS), + #define XLAT_VAL_27 ((unsigned) (SCTP_LOCAL_AUTH_CHUNKS)) + #define XLAT_STR_27 STRINGIFY(SCTP_LOCAL_AUTH_CHUNKS) XLAT(SCTP_GET_ASSOC_NUMBER), + #define XLAT_VAL_28 ((unsigned) (SCTP_GET_ASSOC_NUMBER)) + #define XLAT_STR_28 STRINGIFY(SCTP_GET_ASSOC_NUMBER) XLAT(SCTP_GET_ASSOC_ID_LIST), + #define XLAT_VAL_29 ((unsigned) (SCTP_GET_ASSOC_ID_LIST)) + #define XLAT_STR_29 STRINGIFY(SCTP_GET_ASSOC_ID_LIST) XLAT(SCTP_AUTO_ASCONF), + #define XLAT_VAL_30 ((unsigned) (SCTP_AUTO_ASCONF)) + #define XLAT_STR_30 STRINGIFY(SCTP_AUTO_ASCONF) XLAT(SCTP_PEER_ADDR_THLDS), + #define XLAT_VAL_31 ((unsigned) (SCTP_PEER_ADDR_THLDS)) + #define XLAT_STR_31 STRINGIFY(SCTP_PEER_ADDR_THLDS) XLAT(SCTP_RECVRCVINFO), + #define XLAT_VAL_32 ((unsigned) (SCTP_RECVRCVINFO)) + #define XLAT_STR_32 STRINGIFY(SCTP_RECVRCVINFO) XLAT(SCTP_RECVNXTINFO), + #define XLAT_VAL_33 ((unsigned) (SCTP_RECVNXTINFO)) + #define XLAT_STR_33 STRINGIFY(SCTP_RECVNXTINFO) XLAT(SCTP_DEFAULT_SNDINFO), + #define XLAT_VAL_34 ((unsigned) (SCTP_DEFAULT_SNDINFO)) + #define XLAT_STR_34 STRINGIFY(SCTP_DEFAULT_SNDINFO) XLAT(SCTP_AUTH_DEACTIVATE_KEY), + #define XLAT_VAL_35 ((unsigned) (SCTP_AUTH_DEACTIVATE_KEY)) + #define XLAT_STR_35 STRINGIFY(SCTP_AUTH_DEACTIVATE_KEY) XLAT(SCTP_REUSE_PORT), + #define XLAT_VAL_36 ((unsigned) (SCTP_REUSE_PORT)) + #define XLAT_STR_36 STRINGIFY(SCTP_REUSE_PORT) + XLAT(SCTP_PEER_ADDR_THLDS_V2), + #define XLAT_VAL_37 ((unsigned) (SCTP_PEER_ADDR_THLDS_V2)) + #define XLAT_STR_37 STRINGIFY(SCTP_PEER_ADDR_THLDS_V2) XLAT(SCTP_SOCKOPT_BINDX_ADD), + #define XLAT_VAL_38 ((unsigned) (SCTP_SOCKOPT_BINDX_ADD)) + #define XLAT_STR_38 STRINGIFY(SCTP_SOCKOPT_BINDX_ADD) XLAT(SCTP_SOCKOPT_BINDX_REM), + #define XLAT_VAL_39 ((unsigned) (SCTP_SOCKOPT_BINDX_REM)) + #define XLAT_STR_39 STRINGIFY(SCTP_SOCKOPT_BINDX_REM) XLAT(SCTP_SOCKOPT_PEELOFF), + #define XLAT_VAL_40 ((unsigned) (SCTP_SOCKOPT_PEELOFF)) + #define XLAT_STR_40 STRINGIFY(SCTP_SOCKOPT_PEELOFF) XLAT(SCTP_GET_PEER_ADDRS_NUM_OLD), + #define XLAT_VAL_41 ((unsigned) (SCTP_GET_PEER_ADDRS_NUM_OLD)) + #define XLAT_STR_41 STRINGIFY(SCTP_GET_PEER_ADDRS_NUM_OLD) XLAT(SCTP_GET_PEER_ADDRS_OLD), + #define XLAT_VAL_42 ((unsigned) (SCTP_GET_PEER_ADDRS_OLD)) + #define XLAT_STR_42 STRINGIFY(SCTP_GET_PEER_ADDRS_OLD) XLAT(SCTP_GET_LOCAL_ADDRS_NUM_OLD), + #define XLAT_VAL_43 ((unsigned) (SCTP_GET_LOCAL_ADDRS_NUM_OLD)) + #define XLAT_STR_43 STRINGIFY(SCTP_GET_LOCAL_ADDRS_NUM_OLD) XLAT(SCTP_GET_LOCAL_ADDRS_OLD), + #define XLAT_VAL_44 ((unsigned) (SCTP_GET_LOCAL_ADDRS_OLD)) + #define XLAT_STR_44 STRINGIFY(SCTP_GET_LOCAL_ADDRS_OLD) XLAT(SCTP_SOCKOPT_CONNECTX_OLD), + #define XLAT_VAL_45 ((unsigned) (SCTP_SOCKOPT_CONNECTX_OLD)) + #define XLAT_STR_45 STRINGIFY(SCTP_SOCKOPT_CONNECTX_OLD) XLAT(SCTP_GET_PEER_ADDRS), + #define XLAT_VAL_46 ((unsigned) (SCTP_GET_PEER_ADDRS)) + #define XLAT_STR_46 STRINGIFY(SCTP_GET_PEER_ADDRS) XLAT(SCTP_GET_LOCAL_ADDRS), + #define XLAT_VAL_47 ((unsigned) (SCTP_GET_LOCAL_ADDRS)) + #define XLAT_STR_47 STRINGIFY(SCTP_GET_LOCAL_ADDRS) XLAT(SCTP_SOCKOPT_CONNECTX), + #define XLAT_VAL_48 ((unsigned) (SCTP_SOCKOPT_CONNECTX)) + #define XLAT_STR_48 STRINGIFY(SCTP_SOCKOPT_CONNECTX) XLAT(SCTP_SOCKOPT_CONNECTX3), + #define XLAT_VAL_49 ((unsigned) (SCTP_SOCKOPT_CONNECTX3)) + #define XLAT_STR_49 STRINGIFY(SCTP_SOCKOPT_CONNECTX3) XLAT(SCTP_GET_ASSOC_STATS), + #define XLAT_VAL_50 ((unsigned) (SCTP_GET_ASSOC_STATS)) + #define XLAT_STR_50 STRINGIFY(SCTP_GET_ASSOC_STATS) XLAT(SCTP_PR_SUPPORTED), + #define XLAT_VAL_51 ((unsigned) (SCTP_PR_SUPPORTED)) + #define XLAT_STR_51 STRINGIFY(SCTP_PR_SUPPORTED) XLAT(SCTP_DEFAULT_PRINFO), + #define XLAT_VAL_52 ((unsigned) (SCTP_DEFAULT_PRINFO)) + #define XLAT_STR_52 STRINGIFY(SCTP_DEFAULT_PRINFO) XLAT(SCTP_PR_ASSOC_STATUS), + #define XLAT_VAL_53 ((unsigned) (SCTP_PR_ASSOC_STATUS)) + #define XLAT_STR_53 STRINGIFY(SCTP_PR_ASSOC_STATUS) XLAT(SCTP_PR_STREAM_STATUS), + #define XLAT_VAL_54 ((unsigned) (SCTP_PR_STREAM_STATUS)) + #define XLAT_STR_54 STRINGIFY(SCTP_PR_STREAM_STATUS) XLAT(SCTP_RECONFIG_SUPPORTED), + #define XLAT_VAL_55 ((unsigned) (SCTP_RECONFIG_SUPPORTED)) + #define XLAT_STR_55 STRINGIFY(SCTP_RECONFIG_SUPPORTED) XLAT(SCTP_ENABLE_STREAM_RESET), + #define XLAT_VAL_56 ((unsigned) (SCTP_ENABLE_STREAM_RESET)) + #define XLAT_STR_56 STRINGIFY(SCTP_ENABLE_STREAM_RESET) XLAT(SCTP_RESET_STREAMS), + #define XLAT_VAL_57 ((unsigned) (SCTP_RESET_STREAMS)) + #define XLAT_STR_57 STRINGIFY(SCTP_RESET_STREAMS) XLAT(SCTP_RESET_ASSOC), + #define XLAT_VAL_58 ((unsigned) (SCTP_RESET_ASSOC)) + #define XLAT_STR_58 STRINGIFY(SCTP_RESET_ASSOC) XLAT(SCTP_ADD_STREAMS), + #define XLAT_VAL_59 ((unsigned) (SCTP_ADD_STREAMS)) + #define XLAT_STR_59 STRINGIFY(SCTP_ADD_STREAMS) XLAT(SCTP_SOCKOPT_PEELOFF_FLAGS), + #define XLAT_VAL_60 ((unsigned) (SCTP_SOCKOPT_PEELOFF_FLAGS)) + #define XLAT_STR_60 STRINGIFY(SCTP_SOCKOPT_PEELOFF_FLAGS) XLAT(SCTP_STREAM_SCHEDULER), + #define XLAT_VAL_61 ((unsigned) (SCTP_STREAM_SCHEDULER)) + #define XLAT_STR_61 STRINGIFY(SCTP_STREAM_SCHEDULER) XLAT(SCTP_STREAM_SCHEDULER_VALUE), + #define XLAT_VAL_62 ((unsigned) (SCTP_STREAM_SCHEDULER_VALUE)) + #define XLAT_STR_62 STRINGIFY(SCTP_STREAM_SCHEDULER_VALUE) XLAT(SCTP_INTERLEAVING_SUPPORTED), + #define XLAT_VAL_63 ((unsigned) (SCTP_INTERLEAVING_SUPPORTED)) + #define XLAT_STR_63 STRINGIFY(SCTP_INTERLEAVING_SUPPORTED) XLAT(SCTP_SENDMSG_CONNECT), + #define XLAT_VAL_64 ((unsigned) (SCTP_SENDMSG_CONNECT)) + #define XLAT_STR_64 STRINGIFY(SCTP_SENDMSG_CONNECT) XLAT(SCTP_EVENT), - XLAT_END + #define XLAT_VAL_65 ((unsigned) (SCTP_EVENT)) + #define XLAT_STR_65 STRINGIFY(SCTP_EVENT) + XLAT(SCTP_ASCONF_SUPPORTED), + #define XLAT_VAL_66 ((unsigned) (SCTP_ASCONF_SUPPORTED)) + #define XLAT_STR_66 STRINGIFY(SCTP_ASCONF_SUPPORTED) + XLAT(SCTP_AUTH_SUPPORTED), + #define XLAT_VAL_67 ((unsigned) (SCTP_AUTH_SUPPORTED)) + #define XLAT_STR_67 STRINGIFY(SCTP_AUTH_SUPPORTED) + XLAT(SCTP_ECN_SUPPORTED), + #define XLAT_VAL_68 ((unsigned) (SCTP_ECN_SUPPORTED)) + #define XLAT_STR_68 STRINGIFY(SCTP_ECN_SUPPORTED) + XLAT(SCTP_EXPOSE_POTENTIALLY_FAILED_STATE), + #define XLAT_VAL_69 ((unsigned) (SCTP_EXPOSE_POTENTIALLY_FAILED_STATE)) + #define XLAT_STR_69 STRINGIFY(SCTP_EXPOSE_POTENTIALLY_FAILED_STATE) }; +static +const struct xlat sock_sctp_options[1] = { { + .data = sock_sctp_options_xdata, + .size = ARRAY_SIZE(sock_sctp_options_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif +# ifdef XLAT_VAL_41 + | XLAT_VAL_41 +# endif +# ifdef XLAT_VAL_42 + | XLAT_VAL_42 +# endif +# ifdef XLAT_VAL_43 + | XLAT_VAL_43 +# endif +# ifdef XLAT_VAL_44 + | XLAT_VAL_44 +# endif +# ifdef XLAT_VAL_45 + | XLAT_VAL_45 +# endif +# ifdef XLAT_VAL_46 + | XLAT_VAL_46 +# endif +# ifdef XLAT_VAL_47 + | XLAT_VAL_47 +# endif +# ifdef XLAT_VAL_48 + | XLAT_VAL_48 +# endif +# ifdef XLAT_VAL_49 + | XLAT_VAL_49 +# endif +# ifdef XLAT_VAL_50 + | XLAT_VAL_50 +# endif +# ifdef XLAT_VAL_51 + | XLAT_VAL_51 +# endif +# ifdef XLAT_VAL_52 + | XLAT_VAL_52 +# endif +# ifdef XLAT_VAL_53 + | XLAT_VAL_53 +# endif +# ifdef XLAT_VAL_54 + | XLAT_VAL_54 +# endif +# ifdef XLAT_VAL_55 + | XLAT_VAL_55 +# endif +# ifdef XLAT_VAL_56 + | XLAT_VAL_56 +# endif +# ifdef XLAT_VAL_57 + | XLAT_VAL_57 +# endif +# ifdef XLAT_VAL_58 + | XLAT_VAL_58 +# endif +# ifdef XLAT_VAL_59 + | XLAT_VAL_59 +# endif +# ifdef XLAT_VAL_60 + | XLAT_VAL_60 +# endif +# ifdef XLAT_VAL_61 + | XLAT_VAL_61 +# endif +# ifdef XLAT_VAL_62 + | XLAT_VAL_62 +# endif +# ifdef XLAT_VAL_63 + | XLAT_VAL_63 +# endif +# ifdef XLAT_VAL_64 + | XLAT_VAL_64 +# endif +# ifdef XLAT_VAL_65 + | XLAT_VAL_65 +# endif +# ifdef XLAT_VAL_66 + | XLAT_VAL_66 +# endif +# ifdef XLAT_VAL_67 + | XLAT_VAL_67 +# endif +# ifdef XLAT_VAL_68 + | XLAT_VAL_68 +# endif +# ifdef XLAT_VAL_69 + | XLAT_VAL_69 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif +# ifdef XLAT_STR_41 + + sizeof(XLAT_STR_41) +# endif +# ifdef XLAT_STR_42 + + sizeof(XLAT_STR_42) +# endif +# ifdef XLAT_STR_43 + + sizeof(XLAT_STR_43) +# endif +# ifdef XLAT_STR_44 + + sizeof(XLAT_STR_44) +# endif +# ifdef XLAT_STR_45 + + sizeof(XLAT_STR_45) +# endif +# ifdef XLAT_STR_46 + + sizeof(XLAT_STR_46) +# endif +# ifdef XLAT_STR_47 + + sizeof(XLAT_STR_47) +# endif +# ifdef XLAT_STR_48 + + sizeof(XLAT_STR_48) +# endif +# ifdef XLAT_STR_49 + + sizeof(XLAT_STR_49) +# endif +# ifdef XLAT_STR_50 + + sizeof(XLAT_STR_50) +# endif +# ifdef XLAT_STR_51 + + sizeof(XLAT_STR_51) +# endif +# ifdef XLAT_STR_52 + + sizeof(XLAT_STR_52) +# endif +# ifdef XLAT_STR_53 + + sizeof(XLAT_STR_53) +# endif +# ifdef XLAT_STR_54 + + sizeof(XLAT_STR_54) +# endif +# ifdef XLAT_STR_55 + + sizeof(XLAT_STR_55) +# endif +# ifdef XLAT_STR_56 + + sizeof(XLAT_STR_56) +# endif +# ifdef XLAT_STR_57 + + sizeof(XLAT_STR_57) +# endif +# ifdef XLAT_STR_58 + + sizeof(XLAT_STR_58) +# endif +# ifdef XLAT_STR_59 + + sizeof(XLAT_STR_59) +# endif +# ifdef XLAT_STR_60 + + sizeof(XLAT_STR_60) +# endif +# ifdef XLAT_STR_61 + + sizeof(XLAT_STR_61) +# endif +# ifdef XLAT_STR_62 + + sizeof(XLAT_STR_62) +# endif +# ifdef XLAT_STR_63 + + sizeof(XLAT_STR_63) +# endif +# ifdef XLAT_STR_64 + + sizeof(XLAT_STR_64) +# endif +# ifdef XLAT_STR_65 + + sizeof(XLAT_STR_65) +# endif +# ifdef XLAT_STR_66 + + sizeof(XLAT_STR_66) +# endif +# ifdef XLAT_STR_67 + + sizeof(XLAT_STR_67) +# endif +# ifdef XLAT_STR_68 + + sizeof(XLAT_STR_68) +# endif +# ifdef XLAT_STR_69 + + sizeof(XLAT_STR_69) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 +# undef XLAT_STR_41 +# undef XLAT_VAL_41 +# undef XLAT_STR_42 +# undef XLAT_VAL_42 +# undef XLAT_STR_43 +# undef XLAT_VAL_43 +# undef XLAT_STR_44 +# undef XLAT_VAL_44 +# undef XLAT_STR_45 +# undef XLAT_VAL_45 +# undef XLAT_STR_46 +# undef XLAT_VAL_46 +# undef XLAT_STR_47 +# undef XLAT_VAL_47 +# undef XLAT_STR_48 +# undef XLAT_VAL_48 +# undef XLAT_STR_49 +# undef XLAT_VAL_49 +# undef XLAT_STR_50 +# undef XLAT_VAL_50 +# undef XLAT_STR_51 +# undef XLAT_VAL_51 +# undef XLAT_STR_52 +# undef XLAT_VAL_52 +# undef XLAT_STR_53 +# undef XLAT_VAL_53 +# undef XLAT_STR_54 +# undef XLAT_VAL_54 +# undef XLAT_STR_55 +# undef XLAT_VAL_55 +# undef XLAT_STR_56 +# undef XLAT_VAL_56 +# undef XLAT_STR_57 +# undef XLAT_VAL_57 +# undef XLAT_STR_58 +# undef XLAT_VAL_58 +# undef XLAT_STR_59 +# undef XLAT_VAL_59 +# undef XLAT_STR_60 +# undef XLAT_VAL_60 +# undef XLAT_STR_61 +# undef XLAT_VAL_61 +# undef XLAT_STR_62 +# undef XLAT_VAL_62 +# undef XLAT_STR_63 +# undef XLAT_VAL_63 +# undef XLAT_STR_64 +# undef XLAT_VAL_64 +# undef XLAT_STR_65 +# undef XLAT_VAL_65 +# undef XLAT_STR_66 +# undef XLAT_VAL_66 +# undef XLAT_STR_67 +# undef XLAT_VAL_67 +# undef XLAT_STR_68 +# undef XLAT_VAL_68 +# undef XLAT_STR_69 +# undef XLAT_VAL_69 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_sctp_options.in b/xlat/sock_sctp_options.in index 2227ef94..b7bec4a8 100644 --- a/xlat/sock_sctp_options.in +++ b/xlat/sock_sctp_options.in @@ -35,6 +35,7 @@ SCTP_RECVNXTINFO 33 SCTP_DEFAULT_SNDINFO 34 SCTP_AUTH_DEACTIVATE_KEY 35 SCTP_REUSE_PORT 36 +SCTP_PEER_ADDR_THLDS_V2 37 /* linux specific things */ SCTP_SOCKOPT_BINDX_ADD 100 SCTP_SOCKOPT_BINDX_REM 101 @@ -64,3 +65,7 @@ SCTP_STREAM_SCHEDULER_VALUE 124 SCTP_INTERLEAVING_SUPPORTED 125 SCTP_SENDMSG_CONNECT 126 SCTP_EVENT 127 +SCTP_ASCONF_SUPPORTED 128 +SCTP_AUTH_SUPPORTED 129 +SCTP_ECN_SUPPORTED 130 +SCTP_EXPOSE_POTENTIALLY_FAILED_STATE 131 diff --git a/xlat/sock_shutdown_flags.h b/xlat/sock_shutdown_flags.h index 8f6caa29..15b778b1 100644 --- a/xlat/sock_shutdown_flags.h +++ b/xlat/sock_shutdown_flags.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat sock_shutdown_flags[] = { +static const struct xlat_data sock_shutdown_flags_xdata[] = { XLAT(RCV_SHUTDOWN), + #define XLAT_VAL_0 ((unsigned) (RCV_SHUTDOWN)) + #define XLAT_STR_0 STRINGIFY(RCV_SHUTDOWN) XLAT(SEND_SHUTDOWN), - XLAT_END + #define XLAT_VAL_1 ((unsigned) (SEND_SHUTDOWN)) + #define XLAT_STR_1 STRINGIFY(SEND_SHUTDOWN) }; +static +const struct xlat sock_shutdown_flags[1] = { { + .data = sock_shutdown_flags_xdata, + .size = ARRAY_SIZE(sock_shutdown_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_tcp_options.h b/xlat/sock_tcp_options.h index 1778adcd..0ee7eab1 100644 --- a/xlat/sock_tcp_options.h +++ b/xlat/sock_tcp_options.h @@ -255,6 +255,13 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define TCP_INQ 36 #endif +#if defined(TCP_TX_DELAY) || (defined(HAVE_DECL_TCP_TX_DELAY) && HAVE_DECL_TCP_TX_DELAY) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((TCP_TX_DELAY) == (37), "TCP_TX_DELAY != 37"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define TCP_TX_DELAY 37 +#endif #ifndef XLAT_MACROS_ONLY @@ -264,47 +271,426 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat sock_tcp_options[] = { +static const struct xlat_data sock_tcp_options_xdata[] = { [TCP_NODELAY] = XLAT(TCP_NODELAY), + #define XLAT_VAL_0 ((unsigned) (TCP_NODELAY)) + #define XLAT_STR_0 STRINGIFY(TCP_NODELAY) [TCP_MAXSEG] = XLAT(TCP_MAXSEG), + #define XLAT_VAL_1 ((unsigned) (TCP_MAXSEG)) + #define XLAT_STR_1 STRINGIFY(TCP_MAXSEG) [TCP_CORK] = XLAT(TCP_CORK), + #define XLAT_VAL_2 ((unsigned) (TCP_CORK)) + #define XLAT_STR_2 STRINGIFY(TCP_CORK) [TCP_KEEPIDLE] = XLAT(TCP_KEEPIDLE), + #define XLAT_VAL_3 ((unsigned) (TCP_KEEPIDLE)) + #define XLAT_STR_3 STRINGIFY(TCP_KEEPIDLE) [TCP_KEEPINTVL] = XLAT(TCP_KEEPINTVL), + #define XLAT_VAL_4 ((unsigned) (TCP_KEEPINTVL)) + #define XLAT_STR_4 STRINGIFY(TCP_KEEPINTVL) [TCP_KEEPCNT] = XLAT(TCP_KEEPCNT), + #define XLAT_VAL_5 ((unsigned) (TCP_KEEPCNT)) + #define XLAT_STR_5 STRINGIFY(TCP_KEEPCNT) [TCP_SYNCNT] = XLAT(TCP_SYNCNT), + #define XLAT_VAL_6 ((unsigned) (TCP_SYNCNT)) + #define XLAT_STR_6 STRINGIFY(TCP_SYNCNT) [TCP_LINGER2] = XLAT(TCP_LINGER2), + #define XLAT_VAL_7 ((unsigned) (TCP_LINGER2)) + #define XLAT_STR_7 STRINGIFY(TCP_LINGER2) [TCP_DEFER_ACCEPT] = XLAT(TCP_DEFER_ACCEPT), + #define XLAT_VAL_8 ((unsigned) (TCP_DEFER_ACCEPT)) + #define XLAT_STR_8 STRINGIFY(TCP_DEFER_ACCEPT) [TCP_WINDOW_CLAMP] = XLAT(TCP_WINDOW_CLAMP), + #define XLAT_VAL_9 ((unsigned) (TCP_WINDOW_CLAMP)) + #define XLAT_STR_9 STRINGIFY(TCP_WINDOW_CLAMP) [TCP_INFO] = XLAT(TCP_INFO), + #define XLAT_VAL_10 ((unsigned) (TCP_INFO)) + #define XLAT_STR_10 STRINGIFY(TCP_INFO) [TCP_QUICKACK] = XLAT(TCP_QUICKACK), + #define XLAT_VAL_11 ((unsigned) (TCP_QUICKACK)) + #define XLAT_STR_11 STRINGIFY(TCP_QUICKACK) [TCP_CONGESTION] = XLAT(TCP_CONGESTION), + #define XLAT_VAL_12 ((unsigned) (TCP_CONGESTION)) + #define XLAT_STR_12 STRINGIFY(TCP_CONGESTION) [TCP_MD5SIG] = XLAT(TCP_MD5SIG), + #define XLAT_VAL_13 ((unsigned) (TCP_MD5SIG)) + #define XLAT_STR_13 STRINGIFY(TCP_MD5SIG) [TCP_COOKIE_TRANSACTIONS] = XLAT(TCP_COOKIE_TRANSACTIONS), + #define XLAT_VAL_14 ((unsigned) (TCP_COOKIE_TRANSACTIONS)) + #define XLAT_STR_14 STRINGIFY(TCP_COOKIE_TRANSACTIONS) [TCP_THIN_LINEAR_TIMEOUTS] = XLAT(TCP_THIN_LINEAR_TIMEOUTS), + #define XLAT_VAL_15 ((unsigned) (TCP_THIN_LINEAR_TIMEOUTS)) + #define XLAT_STR_15 STRINGIFY(TCP_THIN_LINEAR_TIMEOUTS) [TCP_THIN_DUPACK] = XLAT(TCP_THIN_DUPACK), + #define XLAT_VAL_16 ((unsigned) (TCP_THIN_DUPACK)) + #define XLAT_STR_16 STRINGIFY(TCP_THIN_DUPACK) [TCP_USER_TIMEOUT] = XLAT(TCP_USER_TIMEOUT), + #define XLAT_VAL_17 ((unsigned) (TCP_USER_TIMEOUT)) + #define XLAT_STR_17 STRINGIFY(TCP_USER_TIMEOUT) [TCP_REPAIR] = XLAT(TCP_REPAIR), + #define XLAT_VAL_18 ((unsigned) (TCP_REPAIR)) + #define XLAT_STR_18 STRINGIFY(TCP_REPAIR) [TCP_REPAIR_QUEUE] = XLAT(TCP_REPAIR_QUEUE), + #define XLAT_VAL_19 ((unsigned) (TCP_REPAIR_QUEUE)) + #define XLAT_STR_19 STRINGIFY(TCP_REPAIR_QUEUE) [TCP_QUEUE_SEQ] = XLAT(TCP_QUEUE_SEQ), + #define XLAT_VAL_20 ((unsigned) (TCP_QUEUE_SEQ)) + #define XLAT_STR_20 STRINGIFY(TCP_QUEUE_SEQ) [TCP_REPAIR_OPTIONS] = XLAT(TCP_REPAIR_OPTIONS), + #define XLAT_VAL_21 ((unsigned) (TCP_REPAIR_OPTIONS)) + #define XLAT_STR_21 STRINGIFY(TCP_REPAIR_OPTIONS) [TCP_FASTOPEN] = XLAT(TCP_FASTOPEN), + #define XLAT_VAL_22 ((unsigned) (TCP_FASTOPEN)) + #define XLAT_STR_22 STRINGIFY(TCP_FASTOPEN) [TCP_TIMESTAMP] = XLAT(TCP_TIMESTAMP), + #define XLAT_VAL_23 ((unsigned) (TCP_TIMESTAMP)) + #define XLAT_STR_23 STRINGIFY(TCP_TIMESTAMP) [TCP_NOTSENT_LOWAT] = XLAT(TCP_NOTSENT_LOWAT), + #define XLAT_VAL_24 ((unsigned) (TCP_NOTSENT_LOWAT)) + #define XLAT_STR_24 STRINGIFY(TCP_NOTSENT_LOWAT) [TCP_CC_INFO] = XLAT(TCP_CC_INFO), + #define XLAT_VAL_25 ((unsigned) (TCP_CC_INFO)) + #define XLAT_STR_25 STRINGIFY(TCP_CC_INFO) [TCP_SAVE_SYN] = XLAT(TCP_SAVE_SYN), + #define XLAT_VAL_26 ((unsigned) (TCP_SAVE_SYN)) + #define XLAT_STR_26 STRINGIFY(TCP_SAVE_SYN) [TCP_SAVED_SYN] = XLAT(TCP_SAVED_SYN), + #define XLAT_VAL_27 ((unsigned) (TCP_SAVED_SYN)) + #define XLAT_STR_27 STRINGIFY(TCP_SAVED_SYN) [TCP_REPAIR_WINDOW] = XLAT(TCP_REPAIR_WINDOW), + #define XLAT_VAL_28 ((unsigned) (TCP_REPAIR_WINDOW)) + #define XLAT_STR_28 STRINGIFY(TCP_REPAIR_WINDOW) [TCP_FASTOPEN_CONNECT] = XLAT(TCP_FASTOPEN_CONNECT), + #define XLAT_VAL_29 ((unsigned) (TCP_FASTOPEN_CONNECT)) + #define XLAT_STR_29 STRINGIFY(TCP_FASTOPEN_CONNECT) [TCP_ULP] = XLAT(TCP_ULP), + #define XLAT_VAL_30 ((unsigned) (TCP_ULP)) + #define XLAT_STR_30 STRINGIFY(TCP_ULP) [TCP_MD5SIG_EXT] = XLAT(TCP_MD5SIG_EXT), + #define XLAT_VAL_31 ((unsigned) (TCP_MD5SIG_EXT)) + #define XLAT_STR_31 STRINGIFY(TCP_MD5SIG_EXT) [TCP_FASTOPEN_KEY] = XLAT(TCP_FASTOPEN_KEY), + #define XLAT_VAL_32 ((unsigned) (TCP_FASTOPEN_KEY)) + #define XLAT_STR_32 STRINGIFY(TCP_FASTOPEN_KEY) [TCP_FASTOPEN_NO_COOKIE] = XLAT(TCP_FASTOPEN_NO_COOKIE), + #define XLAT_VAL_33 ((unsigned) (TCP_FASTOPEN_NO_COOKIE)) + #define XLAT_STR_33 STRINGIFY(TCP_FASTOPEN_NO_COOKIE) [TCP_ZEROCOPY_RECEIVE] = XLAT(TCP_ZEROCOPY_RECEIVE), + #define XLAT_VAL_34 ((unsigned) (TCP_ZEROCOPY_RECEIVE)) + #define XLAT_STR_34 STRINGIFY(TCP_ZEROCOPY_RECEIVE) [TCP_INQ] = XLAT(TCP_INQ), - XLAT_END + #define XLAT_VAL_35 ((unsigned) (TCP_INQ)) + #define XLAT_STR_35 STRINGIFY(TCP_INQ) + [TCP_TX_DELAY] = XLAT(TCP_TX_DELAY), + #define XLAT_VAL_36 ((unsigned) (TCP_TX_DELAY)) + #define XLAT_STR_36 STRINGIFY(TCP_TX_DELAY) }; +static +const struct xlat sock_tcp_options[1] = { { + .data = sock_tcp_options_xdata, + .size = ARRAY_SIZE(sock_tcp_options_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_tcp_options.in b/xlat/sock_tcp_options.in index 70543cce..cb1de24b 100644 --- a/xlat/sock_tcp_options.in +++ b/xlat/sock_tcp_options.in @@ -35,3 +35,4 @@ TCP_FASTOPEN_KEY 33 TCP_FASTOPEN_NO_COOKIE 34 TCP_ZEROCOPY_RECEIVE 35 TCP_INQ 36 +TCP_TX_DELAY 37 diff --git a/xlat/sock_tipc_options.h b/xlat/sock_tipc_options.h index c41a91cb..ec676e54 100644 --- a/xlat/sock_tipc_options.h +++ b/xlat/sock_tipc_options.h @@ -73,6 +73,20 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define TIPC_GROUP_LEAVE 136 #endif +#if defined(TIPC_SOCK_RECVQ_USED) || (defined(HAVE_DECL_TIPC_SOCK_RECVQ_USED) && HAVE_DECL_TIPC_SOCK_RECVQ_USED) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((TIPC_SOCK_RECVQ_USED) == (137), "TIPC_SOCK_RECVQ_USED != 137"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define TIPC_SOCK_RECVQ_USED 137 +#endif +#if defined(TIPC_NODELAY) || (defined(HAVE_DECL_TIPC_NODELAY) && HAVE_DECL_TIPC_NODELAY) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((TIPC_NODELAY) == (138), "TIPC_NODELAY != 138"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define TIPC_NODELAY 138 +#endif #ifndef XLAT_MACROS_ONLY @@ -82,22 +96,151 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat sock_tipc_options[] = { - +static const struct xlat_data sock_tipc_options_xdata[] = { XLAT(TIPC_IMPORTANCE), + #define XLAT_VAL_0 ((unsigned) (TIPC_IMPORTANCE)) + #define XLAT_STR_0 STRINGIFY(TIPC_IMPORTANCE) XLAT(TIPC_SRC_DROPPABLE), + #define XLAT_VAL_1 ((unsigned) (TIPC_SRC_DROPPABLE)) + #define XLAT_STR_1 STRINGIFY(TIPC_SRC_DROPPABLE) XLAT(TIPC_DEST_DROPPABLE), + #define XLAT_VAL_2 ((unsigned) (TIPC_DEST_DROPPABLE)) + #define XLAT_STR_2 STRINGIFY(TIPC_DEST_DROPPABLE) XLAT(TIPC_CONN_TIMEOUT), + #define XLAT_VAL_3 ((unsigned) (TIPC_CONN_TIMEOUT)) + #define XLAT_STR_3 STRINGIFY(TIPC_CONN_TIMEOUT) XLAT(TIPC_NODE_RECVQ_DEPTH), + #define XLAT_VAL_4 ((unsigned) (TIPC_NODE_RECVQ_DEPTH)) + #define XLAT_STR_4 STRINGIFY(TIPC_NODE_RECVQ_DEPTH) XLAT(TIPC_SOCK_RECVQ_DEPTH), + #define XLAT_VAL_5 ((unsigned) (TIPC_SOCK_RECVQ_DEPTH)) + #define XLAT_STR_5 STRINGIFY(TIPC_SOCK_RECVQ_DEPTH) XLAT(TIPC_MCAST_BROADCAST), + #define XLAT_VAL_6 ((unsigned) (TIPC_MCAST_BROADCAST)) + #define XLAT_STR_6 STRINGIFY(TIPC_MCAST_BROADCAST) XLAT(TIPC_MCAST_REPLICAST), + #define XLAT_VAL_7 ((unsigned) (TIPC_MCAST_REPLICAST)) + #define XLAT_STR_7 STRINGIFY(TIPC_MCAST_REPLICAST) XLAT(TIPC_GROUP_JOIN), + #define XLAT_VAL_8 ((unsigned) (TIPC_GROUP_JOIN)) + #define XLAT_STR_8 STRINGIFY(TIPC_GROUP_JOIN) XLAT(TIPC_GROUP_LEAVE), - XLAT_END + #define XLAT_VAL_9 ((unsigned) (TIPC_GROUP_LEAVE)) + #define XLAT_STR_9 STRINGIFY(TIPC_GROUP_LEAVE) + XLAT(TIPC_SOCK_RECVQ_USED), + #define XLAT_VAL_10 ((unsigned) (TIPC_SOCK_RECVQ_USED)) + #define XLAT_STR_10 STRINGIFY(TIPC_SOCK_RECVQ_USED) + XLAT(TIPC_NODELAY), + #define XLAT_VAL_11 ((unsigned) (TIPC_NODELAY)) + #define XLAT_STR_11 STRINGIFY(TIPC_NODELAY) }; +static +const struct xlat sock_tipc_options[1] = { { + .data = sock_tipc_options_xdata, + .size = ARRAY_SIZE(sock_tipc_options_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_tipc_options.in b/xlat/sock_tipc_options.in index 849e50d6..fbc70d64 100644 --- a/xlat/sock_tipc_options.in +++ b/xlat/sock_tipc_options.in @@ -1,4 +1,4 @@ -/* sort -k2,2n */ +#sorted sort -k2,2n TIPC_IMPORTANCE 127 TIPC_SRC_DROPPABLE 128 TIPC_DEST_DROPPABLE 129 @@ -9,3 +9,5 @@ TIPC_MCAST_BROADCAST 133 TIPC_MCAST_REPLICAST 134 TIPC_GROUP_JOIN 135 TIPC_GROUP_LEAVE 136 +TIPC_SOCK_RECVQ_USED 137 +TIPC_NODELAY 138 diff --git a/xlat/sock_tls_options.h b/xlat/sock_tls_options.h index 7e1f2533..f97fd2ef 100644 --- a/xlat/sock_tls_options.h +++ b/xlat/sock_tls_options.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat sock_tls_options[] = { - XLAT(TLS_TX), - XLAT(TLS_RX), - XLAT_END +static const struct xlat_data sock_tls_options_xdata[] = { + [TLS_TX] = XLAT(TLS_TX), + #define XLAT_VAL_0 ((unsigned) (TLS_TX)) + #define XLAT_STR_0 STRINGIFY(TLS_TX) + [TLS_RX] = XLAT(TLS_RX), + #define XLAT_VAL_1 ((unsigned) (TLS_RX)) + #define XLAT_STR_1 STRINGIFY(TLS_RX) }; +static +const struct xlat sock_tls_options[1] = { { + .data = sock_tls_options_xdata, + .size = ARRAY_SIZE(sock_tls_options_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_tls_options.in b/xlat/sock_tls_options.in index 5fcefd64..9a2ddb0a 100644 --- a/xlat/sock_tls_options.in +++ b/xlat/sock_tls_options.in @@ -1,2 +1,3 @@ +#value_indexed TLS_TX 1 TLS_RX 2 diff --git a/xlat/sock_type_flags.h b/xlat/sock_type_flags.h index d8755c4e..1570143f 100644 --- a/xlat/sock_type_flags.h +++ b/xlat/sock_type_flags.h @@ -12,17 +12,45 @@ # else -static -const struct xlat sock_type_flags[] = { +static const struct xlat_data sock_type_flags_xdata[] = { #if defined(SOCK_CLOEXEC) || (defined(HAVE_DECL_SOCK_CLOEXEC) && HAVE_DECL_SOCK_CLOEXEC) XLAT(SOCK_CLOEXEC), + #define XLAT_VAL_0 ((unsigned) (SOCK_CLOEXEC)) + #define XLAT_STR_0 STRINGIFY(SOCK_CLOEXEC) #endif #if defined(SOCK_NONBLOCK) || (defined(HAVE_DECL_SOCK_NONBLOCK) && HAVE_DECL_SOCK_NONBLOCK) XLAT(SOCK_NONBLOCK), + #define XLAT_VAL_1 ((unsigned) (SOCK_NONBLOCK)) + #define XLAT_STR_1 STRINGIFY(SOCK_NONBLOCK) #endif - XLAT_END }; - +static +const struct xlat sock_type_flags[1] = { { + .data = sock_type_flags_xdata, + .size = ARRAY_SIZE(sock_type_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_udp_options.h b/xlat/sock_udp_options.h index 37e199fa..ad136821 100644 --- a/xlat/sock_udp_options.h +++ b/xlat/sock_udp_options.h @@ -54,17 +54,85 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat sock_udp_options[] = { +static const struct xlat_data sock_udp_options_xdata[] = { XLAT(UDP_CORK), + #define XLAT_VAL_0 ((unsigned) (UDP_CORK)) + #define XLAT_STR_0 STRINGIFY(UDP_CORK) XLAT(UDP_ENCAP), + #define XLAT_VAL_1 ((unsigned) (UDP_ENCAP)) + #define XLAT_STR_1 STRINGIFY(UDP_ENCAP) XLAT(UDP_NO_CHECK6_TX), + #define XLAT_VAL_2 ((unsigned) (UDP_NO_CHECK6_TX)) + #define XLAT_STR_2 STRINGIFY(UDP_NO_CHECK6_TX) XLAT(UDP_NO_CHECK6_RX), + #define XLAT_VAL_3 ((unsigned) (UDP_NO_CHECK6_RX)) + #define XLAT_STR_3 STRINGIFY(UDP_NO_CHECK6_RX) XLAT(UDP_SEGMENT), + #define XLAT_VAL_4 ((unsigned) (UDP_SEGMENT)) + #define XLAT_STR_4 STRINGIFY(UDP_SEGMENT) XLAT(UDP_GRO), - XLAT_END + #define XLAT_VAL_5 ((unsigned) (UDP_GRO)) + #define XLAT_STR_5 STRINGIFY(UDP_GRO) }; +static +const struct xlat sock_udp_options[1] = { { + .data = sock_udp_options_xdata, + .size = ARRAY_SIZE(sock_udp_options_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_xdp_options.h b/xlat/sock_xdp_options.h index 8cd2ded1..e6a4e54d 100644 --- a/xlat/sock_xdp_options.h +++ b/xlat/sock_xdp_options.h @@ -52,6 +52,13 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define XDP_STATISTICS 7 #endif +#if defined(XDP_OPTIONS) || (defined(HAVE_DECL_XDP_OPTIONS) && HAVE_DECL_XDP_OPTIONS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((XDP_OPTIONS) == (8), "XDP_OPTIONS != 8"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define XDP_OPTIONS 8 +#endif #ifndef XLAT_MACROS_ONLY @@ -61,18 +68,107 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat sock_xdp_options[] = { +static const struct xlat_data sock_xdp_options_xdata[] = { [XDP_MMAP_OFFSETS] = XLAT(XDP_MMAP_OFFSETS), + #define XLAT_VAL_0 ((unsigned) (XDP_MMAP_OFFSETS)) + #define XLAT_STR_0 STRINGIFY(XDP_MMAP_OFFSETS) [XDP_RX_RING] = XLAT(XDP_RX_RING), + #define XLAT_VAL_1 ((unsigned) (XDP_RX_RING)) + #define XLAT_STR_1 STRINGIFY(XDP_RX_RING) [XDP_TX_RING] = XLAT(XDP_TX_RING), + #define XLAT_VAL_2 ((unsigned) (XDP_TX_RING)) + #define XLAT_STR_2 STRINGIFY(XDP_TX_RING) [XDP_UMEM_REG] = XLAT(XDP_UMEM_REG), + #define XLAT_VAL_3 ((unsigned) (XDP_UMEM_REG)) + #define XLAT_STR_3 STRINGIFY(XDP_UMEM_REG) [XDP_UMEM_FILL_RING] = XLAT(XDP_UMEM_FILL_RING), + #define XLAT_VAL_4 ((unsigned) (XDP_UMEM_FILL_RING)) + #define XLAT_STR_4 STRINGIFY(XDP_UMEM_FILL_RING) [XDP_UMEM_COMPLETION_RING] = XLAT(XDP_UMEM_COMPLETION_RING), + #define XLAT_VAL_5 ((unsigned) (XDP_UMEM_COMPLETION_RING)) + #define XLAT_STR_5 STRINGIFY(XDP_UMEM_COMPLETION_RING) [XDP_STATISTICS] = XLAT(XDP_STATISTICS), - XLAT_END + #define XLAT_VAL_6 ((unsigned) (XDP_STATISTICS)) + #define XLAT_STR_6 STRINGIFY(XDP_STATISTICS) + [XDP_OPTIONS] = XLAT(XDP_OPTIONS), + #define XLAT_VAL_7 ((unsigned) (XDP_OPTIONS)) + #define XLAT_STR_7 STRINGIFY(XDP_OPTIONS) }; +static +const struct xlat sock_xdp_options[1] = { { + .data = sock_xdp_options_xdata, + .size = ARRAY_SIZE(sock_xdp_options_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sock_xdp_options.in b/xlat/sock_xdp_options.in index f2b7a68b..b98f83c4 100644 --- a/xlat/sock_xdp_options.in +++ b/xlat/sock_xdp_options.in @@ -6,3 +6,4 @@ XDP_UMEM_REG 4 XDP_UMEM_FILL_RING 5 XDP_UMEM_COMPLETION_RING 6 XDP_STATISTICS 7 +XDP_OPTIONS 8 diff --git a/xlat/socketcalls.h b/xlat/socketcalls.h index a3ae1484..ff785d56 100644 --- a/xlat/socketcalls.h +++ b/xlat/socketcalls.h @@ -152,31 +152,239 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat socketcalls[] = { - XLAT(SYS_SOCKET), - XLAT(SYS_BIND), - XLAT(SYS_CONNECT), - XLAT(SYS_LISTEN), - XLAT(SYS_ACCEPT), - XLAT(SYS_GETSOCKNAME), - XLAT(SYS_GETPEERNAME), - XLAT(SYS_SOCKETPAIR), - XLAT(SYS_SEND), - XLAT(SYS_RECV), - XLAT(SYS_SENDTO), - XLAT(SYS_RECVFROM), - XLAT(SYS_SHUTDOWN), - XLAT(SYS_SETSOCKOPT), - XLAT(SYS_GETSOCKOPT), - XLAT(SYS_SENDMSG), - XLAT(SYS_RECVMSG), - XLAT(SYS_ACCEPT4), - XLAT(SYS_RECVMMSG), - XLAT(SYS_SENDMMSG), - XLAT_END +static const struct xlat_data socketcalls_xdata[] = { + [SYS_SOCKET] = XLAT(SYS_SOCKET), + #define XLAT_VAL_0 ((unsigned) (SYS_SOCKET)) + #define XLAT_STR_0 STRINGIFY(SYS_SOCKET) + [SYS_BIND] = XLAT(SYS_BIND), + #define XLAT_VAL_1 ((unsigned) (SYS_BIND)) + #define XLAT_STR_1 STRINGIFY(SYS_BIND) + [SYS_CONNECT] = XLAT(SYS_CONNECT), + #define XLAT_VAL_2 ((unsigned) (SYS_CONNECT)) + #define XLAT_STR_2 STRINGIFY(SYS_CONNECT) + [SYS_LISTEN] = XLAT(SYS_LISTEN), + #define XLAT_VAL_3 ((unsigned) (SYS_LISTEN)) + #define XLAT_STR_3 STRINGIFY(SYS_LISTEN) + [SYS_ACCEPT] = XLAT(SYS_ACCEPT), + #define XLAT_VAL_4 ((unsigned) (SYS_ACCEPT)) + #define XLAT_STR_4 STRINGIFY(SYS_ACCEPT) + [SYS_GETSOCKNAME] = XLAT(SYS_GETSOCKNAME), + #define XLAT_VAL_5 ((unsigned) (SYS_GETSOCKNAME)) + #define XLAT_STR_5 STRINGIFY(SYS_GETSOCKNAME) + [SYS_GETPEERNAME] = XLAT(SYS_GETPEERNAME), + #define XLAT_VAL_6 ((unsigned) (SYS_GETPEERNAME)) + #define XLAT_STR_6 STRINGIFY(SYS_GETPEERNAME) + [SYS_SOCKETPAIR] = XLAT(SYS_SOCKETPAIR), + #define XLAT_VAL_7 ((unsigned) (SYS_SOCKETPAIR)) + #define XLAT_STR_7 STRINGIFY(SYS_SOCKETPAIR) + [SYS_SEND] = XLAT(SYS_SEND), + #define XLAT_VAL_8 ((unsigned) (SYS_SEND)) + #define XLAT_STR_8 STRINGIFY(SYS_SEND) + [SYS_RECV] = XLAT(SYS_RECV), + #define XLAT_VAL_9 ((unsigned) (SYS_RECV)) + #define XLAT_STR_9 STRINGIFY(SYS_RECV) + [SYS_SENDTO] = XLAT(SYS_SENDTO), + #define XLAT_VAL_10 ((unsigned) (SYS_SENDTO)) + #define XLAT_STR_10 STRINGIFY(SYS_SENDTO) + [SYS_RECVFROM] = XLAT(SYS_RECVFROM), + #define XLAT_VAL_11 ((unsigned) (SYS_RECVFROM)) + #define XLAT_STR_11 STRINGIFY(SYS_RECVFROM) + [SYS_SHUTDOWN] = XLAT(SYS_SHUTDOWN), + #define XLAT_VAL_12 ((unsigned) (SYS_SHUTDOWN)) + #define XLAT_STR_12 STRINGIFY(SYS_SHUTDOWN) + [SYS_SETSOCKOPT] = XLAT(SYS_SETSOCKOPT), + #define XLAT_VAL_13 ((unsigned) (SYS_SETSOCKOPT)) + #define XLAT_STR_13 STRINGIFY(SYS_SETSOCKOPT) + [SYS_GETSOCKOPT] = XLAT(SYS_GETSOCKOPT), + #define XLAT_VAL_14 ((unsigned) (SYS_GETSOCKOPT)) + #define XLAT_STR_14 STRINGIFY(SYS_GETSOCKOPT) + [SYS_SENDMSG] = XLAT(SYS_SENDMSG), + #define XLAT_VAL_15 ((unsigned) (SYS_SENDMSG)) + #define XLAT_STR_15 STRINGIFY(SYS_SENDMSG) + [SYS_RECVMSG] = XLAT(SYS_RECVMSG), + #define XLAT_VAL_16 ((unsigned) (SYS_RECVMSG)) + #define XLAT_STR_16 STRINGIFY(SYS_RECVMSG) + [SYS_ACCEPT4] = XLAT(SYS_ACCEPT4), + #define XLAT_VAL_17 ((unsigned) (SYS_ACCEPT4)) + #define XLAT_STR_17 STRINGIFY(SYS_ACCEPT4) + [SYS_RECVMMSG] = XLAT(SYS_RECVMMSG), + #define XLAT_VAL_18 ((unsigned) (SYS_RECVMMSG)) + #define XLAT_STR_18 STRINGIFY(SYS_RECVMMSG) + [SYS_SENDMMSG] = XLAT(SYS_SENDMMSG), + #define XLAT_VAL_19 ((unsigned) (SYS_SENDMMSG)) + #define XLAT_STR_19 STRINGIFY(SYS_SENDMMSG) }; +static +const struct xlat socketcalls[1] = { { + .data = socketcalls_xdata, + .size = ARRAY_SIZE(socketcalls_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/socketcalls.in b/xlat/socketcalls.in index 3ffeb6f2..d31a9104 100644 --- a/xlat/socketcalls.in +++ b/xlat/socketcalls.in @@ -1,3 +1,4 @@ +#value_indexed SYS_SOCKET 1 SYS_BIND 2 SYS_CONNECT 3 diff --git a/xlat/socketlayers.h b/xlat/socketlayers.h index 2239cdc0..4ebe901f 100644 --- a/xlat/socketlayers.h +++ b/xlat/socketlayers.h @@ -292,55 +292,462 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # ifndef IN_MPERS -const struct xlat socketlayers[] = { - +static const struct xlat_data socketlayers_xdata[] = { XLAT(SOL_IP), + #define XLAT_VAL_0 ((unsigned) (SOL_IP)) + #define XLAT_STR_0 STRINGIFY(SOL_IP) #if !(defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__) XLAT(SOL_SOCKET), + #define XLAT_VAL_1 ((unsigned) (SOL_SOCKET)) + #define XLAT_STR_1 STRINGIFY(SOL_SOCKET) #endif XLAT(SOL_TCP), + #define XLAT_VAL_2 ((unsigned) (SOL_TCP)) + #define XLAT_STR_2 STRINGIFY(SOL_TCP) XLAT(SOL_UDP), + #define XLAT_VAL_3 ((unsigned) (SOL_UDP)) + #define XLAT_STR_3 STRINGIFY(SOL_UDP) XLAT(SOL_IPV6), + #define XLAT_VAL_4 ((unsigned) (SOL_IPV6)) + #define XLAT_STR_4 STRINGIFY(SOL_IPV6) XLAT(SOL_ICMPV6), + #define XLAT_VAL_5 ((unsigned) (SOL_ICMPV6)) + #define XLAT_STR_5 STRINGIFY(SOL_ICMPV6) XLAT(SOL_CAN_BASE), + #define XLAT_VAL_6 ((unsigned) (SOL_CAN_BASE)) + #define XLAT_STR_6 STRINGIFY(SOL_CAN_BASE) XLAT(SOL_CAN_RAW), + #define XLAT_VAL_7 ((unsigned) (SOL_CAN_RAW)) + #define XLAT_STR_7 STRINGIFY(SOL_CAN_RAW) XLAT(SOL_SCTP), + #define XLAT_VAL_8 ((unsigned) (SOL_SCTP)) + #define XLAT_STR_8 STRINGIFY(SOL_SCTP) XLAT(SOL_UDPLITE), + #define XLAT_VAL_9 ((unsigned) (SOL_UDPLITE)) + #define XLAT_STR_9 STRINGIFY(SOL_UDPLITE) XLAT(SOL_RAW), + #define XLAT_VAL_10 ((unsigned) (SOL_RAW)) + #define XLAT_STR_10 STRINGIFY(SOL_RAW) XLAT(SOL_IPX), + #define XLAT_VAL_11 ((unsigned) (SOL_IPX)) + #define XLAT_STR_11 STRINGIFY(SOL_IPX) XLAT(SOL_AX25), + #define XLAT_VAL_12 ((unsigned) (SOL_AX25)) + #define XLAT_STR_12 STRINGIFY(SOL_AX25) XLAT(SOL_ATALK), + #define XLAT_VAL_13 ((unsigned) (SOL_ATALK)) + #define XLAT_STR_13 STRINGIFY(SOL_ATALK) XLAT(SOL_NETROM), + #define XLAT_VAL_14 ((unsigned) (SOL_NETROM)) + #define XLAT_STR_14 STRINGIFY(SOL_NETROM) XLAT(SOL_ROSE), + #define XLAT_VAL_15 ((unsigned) (SOL_ROSE)) + #define XLAT_STR_15 STRINGIFY(SOL_ROSE) XLAT(SOL_DECNET), + #define XLAT_VAL_16 ((unsigned) (SOL_DECNET)) + #define XLAT_STR_16 STRINGIFY(SOL_DECNET) XLAT(SOL_X25), + #define XLAT_VAL_17 ((unsigned) (SOL_X25)) + #define XLAT_STR_17 STRINGIFY(SOL_X25) XLAT(SOL_PACKET), + #define XLAT_VAL_18 ((unsigned) (SOL_PACKET)) + #define XLAT_STR_18 STRINGIFY(SOL_PACKET) XLAT(SOL_ATM), + #define XLAT_VAL_19 ((unsigned) (SOL_ATM)) + #define XLAT_STR_19 STRINGIFY(SOL_ATM) XLAT(SOL_AAL), + #define XLAT_VAL_20 ((unsigned) (SOL_AAL)) + #define XLAT_STR_20 STRINGIFY(SOL_AAL) XLAT(SOL_IRDA), + #define XLAT_VAL_21 ((unsigned) (SOL_IRDA)) + #define XLAT_STR_21 STRINGIFY(SOL_IRDA) XLAT(SOL_NETBEUI), + #define XLAT_VAL_22 ((unsigned) (SOL_NETBEUI)) + #define XLAT_STR_22 STRINGIFY(SOL_NETBEUI) XLAT(SOL_LLC), + #define XLAT_VAL_23 ((unsigned) (SOL_LLC)) + #define XLAT_STR_23 STRINGIFY(SOL_LLC) XLAT(SOL_DCCP), + #define XLAT_VAL_24 ((unsigned) (SOL_DCCP)) + #define XLAT_STR_24 STRINGIFY(SOL_DCCP) XLAT(SOL_NETLINK), + #define XLAT_VAL_25 ((unsigned) (SOL_NETLINK)) + #define XLAT_STR_25 STRINGIFY(SOL_NETLINK) XLAT(SOL_TIPC), + #define XLAT_VAL_26 ((unsigned) (SOL_TIPC)) + #define XLAT_STR_26 STRINGIFY(SOL_TIPC) XLAT(SOL_RXRPC), + #define XLAT_VAL_27 ((unsigned) (SOL_RXRPC)) + #define XLAT_STR_27 STRINGIFY(SOL_RXRPC) XLAT(SOL_PPPOL2TP), + #define XLAT_VAL_28 ((unsigned) (SOL_PPPOL2TP)) + #define XLAT_STR_28 STRINGIFY(SOL_PPPOL2TP) XLAT(SOL_BLUETOOTH), + #define XLAT_VAL_29 ((unsigned) (SOL_BLUETOOTH)) + #define XLAT_STR_29 STRINGIFY(SOL_BLUETOOTH) XLAT(SOL_PNPIPE), + #define XLAT_VAL_30 ((unsigned) (SOL_PNPIPE)) + #define XLAT_STR_30 STRINGIFY(SOL_PNPIPE) XLAT(SOL_RDS), + #define XLAT_VAL_31 ((unsigned) (SOL_RDS)) + #define XLAT_STR_31 STRINGIFY(SOL_RDS) XLAT(SOL_IUCV), + #define XLAT_VAL_32 ((unsigned) (SOL_IUCV)) + #define XLAT_STR_32 STRINGIFY(SOL_IUCV) XLAT(SOL_CAIF), + #define XLAT_VAL_33 ((unsigned) (SOL_CAIF)) + #define XLAT_STR_33 STRINGIFY(SOL_CAIF) XLAT(SOL_ALG), + #define XLAT_VAL_34 ((unsigned) (SOL_ALG)) + #define XLAT_STR_34 STRINGIFY(SOL_ALG) XLAT(SOL_NFC), + #define XLAT_VAL_35 ((unsigned) (SOL_NFC)) + #define XLAT_STR_35 STRINGIFY(SOL_NFC) XLAT(SOL_KCM), + #define XLAT_VAL_36 ((unsigned) (SOL_KCM)) + #define XLAT_STR_36 STRINGIFY(SOL_KCM) XLAT(SOL_TLS), + #define XLAT_VAL_37 ((unsigned) (SOL_TLS)) + #define XLAT_STR_37 STRINGIFY(SOL_TLS) XLAT(SOL_XDP), + #define XLAT_VAL_38 ((unsigned) (SOL_XDP)) + #define XLAT_STR_38 STRINGIFY(SOL_XDP) #if defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__ XLAT(SOL_SOCKET), + #define XLAT_VAL_39 ((unsigned) (SOL_SOCKET)) + #define XLAT_STR_39 STRINGIFY(SOL_SOCKET) #endif - XLAT_END }; +const struct xlat socketlayers[1] = { { + .data = socketlayers_xdata, + .size = ARRAY_SIZE(socketlayers_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/socketlayers.in b/xlat/socketlayers.in index fd44dd19..e633cf5c 100644 --- a/xlat/socketlayers.in +++ b/xlat/socketlayers.in @@ -1,4 +1,4 @@ -/* sort -k2,2n */ +#sorted sort -k2,2n SOL_IP 0 #if !(defined __alpha__ || defined __hppa__ || defined __mips__ || defined __sparc__) SOL_SOCKET 1 diff --git a/xlat/socktypes.h b/xlat/socktypes.h index 113ccb09..8d3b1c77 100644 --- a/xlat/socktypes.h +++ b/xlat/socktypes.h @@ -74,22 +74,120 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # ifndef IN_MPERS -const struct xlat socktypes[] = { +static const struct xlat_data socktypes_xdata[] = { #ifdef __mips__ XLAT(SOCK_DGRAM), + #define XLAT_VAL_0 ((unsigned) (SOCK_DGRAM)) + #define XLAT_STR_0 STRINGIFY(SOCK_DGRAM) XLAT(SOCK_STREAM), + #define XLAT_VAL_1 ((unsigned) (SOCK_STREAM)) + #define XLAT_STR_1 STRINGIFY(SOCK_STREAM) #else XLAT(SOCK_STREAM), + #define XLAT_VAL_2 ((unsigned) (SOCK_STREAM)) + #define XLAT_STR_2 STRINGIFY(SOCK_STREAM) XLAT(SOCK_DGRAM), + #define XLAT_VAL_3 ((unsigned) (SOCK_DGRAM)) + #define XLAT_STR_3 STRINGIFY(SOCK_DGRAM) #endif XLAT(SOCK_RAW), + #define XLAT_VAL_4 ((unsigned) (SOCK_RAW)) + #define XLAT_STR_4 STRINGIFY(SOCK_RAW) XLAT(SOCK_RDM), + #define XLAT_VAL_5 ((unsigned) (SOCK_RDM)) + #define XLAT_STR_5 STRINGIFY(SOCK_RDM) XLAT(SOCK_SEQPACKET), + #define XLAT_VAL_6 ((unsigned) (SOCK_SEQPACKET)) + #define XLAT_STR_6 STRINGIFY(SOCK_SEQPACKET) XLAT(SOCK_DCCP), + #define XLAT_VAL_7 ((unsigned) (SOCK_DCCP)) + #define XLAT_STR_7 STRINGIFY(SOCK_DCCP) XLAT(SOCK_PACKET), - XLAT_END + #define XLAT_VAL_8 ((unsigned) (SOCK_PACKET)) + #define XLAT_STR_8 STRINGIFY(SOCK_PACKET) }; +const struct xlat socktypes[1] = { { + .data = socktypes_xdata, + .size = ARRAY_SIZE(socktypes_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sparc_kern_features.h b/xlat/sparc_kern_features.h index 0cc647c6..b654d5ee 100644 --- a/xlat/sparc_kern_features.h +++ b/xlat/sparc_kern_features.h @@ -19,12 +19,30 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat sparc_kern_features[] = { +static const struct xlat_data sparc_kern_features_xdata[] = { XLAT(KERN_FEATURE_MIXED_MODE_STACK), - XLAT_END + #define XLAT_VAL_0 ((unsigned) (KERN_FEATURE_MIXED_MODE_STACK)) + #define XLAT_STR_0 STRINGIFY(KERN_FEATURE_MIXED_MODE_STACK) }; - +static +const struct xlat sparc_kern_features[1] = { { + .data = sparc_kern_features_xdata, + .size = ARRAY_SIZE(sparc_kern_features_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/splice_flags.h b/xlat/splice_flags.h index e0118330..00e1b00f 100644 --- a/xlat/splice_flags.h +++ b/xlat/splice_flags.h @@ -12,23 +12,71 @@ # else -static -const struct xlat splice_flags[] = { +static const struct xlat_data splice_flags_xdata[] = { #if defined(SPLICE_F_MOVE) || (defined(HAVE_DECL_SPLICE_F_MOVE) && HAVE_DECL_SPLICE_F_MOVE) XLAT(SPLICE_F_MOVE), + #define XLAT_VAL_0 ((unsigned) (SPLICE_F_MOVE)) + #define XLAT_STR_0 STRINGIFY(SPLICE_F_MOVE) #endif #if defined(SPLICE_F_NONBLOCK) || (defined(HAVE_DECL_SPLICE_F_NONBLOCK) && HAVE_DECL_SPLICE_F_NONBLOCK) XLAT(SPLICE_F_NONBLOCK), + #define XLAT_VAL_1 ((unsigned) (SPLICE_F_NONBLOCK)) + #define XLAT_STR_1 STRINGIFY(SPLICE_F_NONBLOCK) #endif #if defined(SPLICE_F_MORE) || (defined(HAVE_DECL_SPLICE_F_MORE) && HAVE_DECL_SPLICE_F_MORE) XLAT(SPLICE_F_MORE), + #define XLAT_VAL_2 ((unsigned) (SPLICE_F_MORE)) + #define XLAT_STR_2 STRINGIFY(SPLICE_F_MORE) #endif #if defined(SPLICE_F_GIFT) || (defined(HAVE_DECL_SPLICE_F_GIFT) && HAVE_DECL_SPLICE_F_GIFT) XLAT(SPLICE_F_GIFT), + #define XLAT_VAL_3 ((unsigned) (SPLICE_F_GIFT)) + #define XLAT_STR_3 STRINGIFY(SPLICE_F_GIFT) #endif - XLAT_END }; +static +const struct xlat splice_flags[1] = { { + .data = splice_flags_xdata, + .size = ARRAY_SIZE(splice_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sram_alloc_flags.h b/xlat/sram_alloc_flags.h index 0c9a9c0e..f0bf2140 100644 --- a/xlat/sram_alloc_flags.h +++ b/xlat/sram_alloc_flags.h @@ -12,26 +12,84 @@ # else -static -const struct xlat sram_alloc_flags[] = { +static const struct xlat_data sram_alloc_flags_xdata[] = { #if defined(L1_INST_SRAM) || (defined(HAVE_DECL_L1_INST_SRAM) && HAVE_DECL_L1_INST_SRAM) XLAT(L1_INST_SRAM), + #define XLAT_VAL_0 ((unsigned) (L1_INST_SRAM)) + #define XLAT_STR_0 STRINGIFY(L1_INST_SRAM) #endif #if defined(L1_DATA_A_SRAM) || (defined(HAVE_DECL_L1_DATA_A_SRAM) && HAVE_DECL_L1_DATA_A_SRAM) XLAT(L1_DATA_A_SRAM), + #define XLAT_VAL_1 ((unsigned) (L1_DATA_A_SRAM)) + #define XLAT_STR_1 STRINGIFY(L1_DATA_A_SRAM) #endif #if defined(L1_DATA_B_SRAM) || (defined(HAVE_DECL_L1_DATA_B_SRAM) && HAVE_DECL_L1_DATA_B_SRAM) XLAT(L1_DATA_B_SRAM), + #define XLAT_VAL_2 ((unsigned) (L1_DATA_B_SRAM)) + #define XLAT_STR_2 STRINGIFY(L1_DATA_B_SRAM) #endif #if defined(L1_DATA_SRAM) || (defined(HAVE_DECL_L1_DATA_SRAM) && HAVE_DECL_L1_DATA_SRAM) XLAT(L1_DATA_SRAM), + #define XLAT_VAL_3 ((unsigned) (L1_DATA_SRAM)) + #define XLAT_STR_3 STRINGIFY(L1_DATA_SRAM) #endif #if defined(L2_SRAM) || (defined(HAVE_DECL_L2_SRAM) && HAVE_DECL_L2_SRAM) XLAT(L2_SRAM), + #define XLAT_VAL_4 ((unsigned) (L2_SRAM)) + #define XLAT_STR_4 STRINGIFY(L2_SRAM) #endif - XLAT_END }; +static +const struct xlat sram_alloc_flags[1] = { { + .data = sram_alloc_flags_xdata, + .size = ARRAY_SIZE(sram_alloc_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/st_check_enums.m4 b/xlat/st_check_enums.m4 new file mode 100644 index 00000000..448e07a2 --- /dev/null +++ b/xlat/st_check_enums.m4 @@ -0,0 +1,30 @@ +AC_DEFUN([st_CHECK_ENUMS],[ + st_CHECK_ENUMS_btrfs_compress_types + st_CHECK_ENUMS_close_range_flags + st_CHECK_ENUMS_loop_flags_options + st_CHECK_ENUMS_rtnl_ifla_xdp_attached_mode + st_CHECK_ENUMS_rtnl_ifla_xdp_attrs + st_CHECK_ENUMS_rtnl_link_attrs + st_CHECK_ENUMS_rtnl_tc_action_attrs + st_CHECK_ENUMS_rtnl_tca_stab_attrs + st_CHECK_ENUMS_rtnl_tca_stats_attrs + st_CHECK_ENUMS_sysctl_kern + st_CHECK_ENUMS_sysctl_net + st_CHECK_ENUMS_sysctl_net_core + st_CHECK_ENUMS_sysctl_net_ipv4 + st_CHECK_ENUMS_sysctl_net_ipv4_conf + st_CHECK_ENUMS_sysctl_net_ipv4_route + st_CHECK_ENUMS_sysctl_net_ipv6 + st_CHECK_ENUMS_sysctl_net_ipv6_route + st_CHECK_ENUMS_sysctl_net_unix + st_CHECK_ENUMS_sysctl_root + st_CHECK_ENUMS_sysctl_vm + st_CHECK_ENUMS_v4l2_buf_types + st_CHECK_ENUMS_v4l2_colorspaces + st_CHECK_ENUMS_v4l2_control_types + st_CHECK_ENUMS_v4l2_fields + st_CHECK_ENUMS_v4l2_framesize_types + st_CHECK_ENUMS_v4l2_memories + st_CHECK_ENUMS_v4l2_tuner_types + st_CHECK_ENUMS_waitid_types +]) diff --git a/xlat/statfs_flags.h b/xlat/statfs_flags.h index caf60635..aa5d48ad 100644 --- a/xlat/statfs_flags.h +++ b/xlat/statfs_flags.h @@ -82,21 +82,129 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat statfs_flags[] = { +static const struct xlat_data statfs_flags_xdata[] = { XLAT(ST_VALID), + #define XLAT_VAL_0 ((unsigned) (ST_VALID)) + #define XLAT_STR_0 STRINGIFY(ST_VALID) XLAT(ST_RDONLY), + #define XLAT_VAL_1 ((unsigned) (ST_RDONLY)) + #define XLAT_STR_1 STRINGIFY(ST_RDONLY) XLAT(ST_NOSUID), + #define XLAT_VAL_2 ((unsigned) (ST_NOSUID)) + #define XLAT_STR_2 STRINGIFY(ST_NOSUID) XLAT(ST_NODEV), + #define XLAT_VAL_3 ((unsigned) (ST_NODEV)) + #define XLAT_STR_3 STRINGIFY(ST_NODEV) XLAT(ST_NOEXEC), + #define XLAT_VAL_4 ((unsigned) (ST_NOEXEC)) + #define XLAT_STR_4 STRINGIFY(ST_NOEXEC) XLAT(ST_SYNCHRONOUS), + #define XLAT_VAL_5 ((unsigned) (ST_SYNCHRONOUS)) + #define XLAT_STR_5 STRINGIFY(ST_SYNCHRONOUS) XLAT(ST_MANDLOCK), + #define XLAT_VAL_6 ((unsigned) (ST_MANDLOCK)) + #define XLAT_STR_6 STRINGIFY(ST_MANDLOCK) XLAT(ST_NOATIME), + #define XLAT_VAL_7 ((unsigned) (ST_NOATIME)) + #define XLAT_STR_7 STRINGIFY(ST_NOATIME) XLAT(ST_NODIRATIME), + #define XLAT_VAL_8 ((unsigned) (ST_NODIRATIME)) + #define XLAT_STR_8 STRINGIFY(ST_NODIRATIME) XLAT(ST_RELATIME), - XLAT_END + #define XLAT_VAL_9 ((unsigned) (ST_RELATIME)) + #define XLAT_STR_9 STRINGIFY(ST_RELATIME) }; +static +const struct xlat statfs_flags[1] = { { + .data = statfs_flags_xdata, + .size = ARRAY_SIZE(statfs_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/statx_attrs.h b/xlat/statx_attrs.h index 849ec0ed..e8cad5f8 100644 --- a/xlat/statx_attrs.h +++ b/xlat/statx_attrs.h @@ -45,6 +45,20 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define STATX_ATTR_AUTOMOUNT 0x00001000 #endif +#if defined(STATX_ATTR_MOUNT_ROOT) || (defined(HAVE_DECL_STATX_ATTR_MOUNT_ROOT) && HAVE_DECL_STATX_ATTR_MOUNT_ROOT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((STATX_ATTR_MOUNT_ROOT) == (0x00002000), "STATX_ATTR_MOUNT_ROOT != 0x00002000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define STATX_ATTR_MOUNT_ROOT 0x00002000 +#endif +#if defined(STATX_ATTR_VERITY) || (defined(HAVE_DECL_STATX_ATTR_VERITY) && HAVE_DECL_STATX_ATTR_VERITY) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((STATX_ATTR_VERITY) == (0x00100000), "STATX_ATTR_VERITY != 0x00100000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define STATX_ATTR_VERITY 0x00100000 +#endif #ifndef XLAT_MACROS_ONLY @@ -54,17 +68,107 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat statx_attrs[] = { +static const struct xlat_data statx_attrs_xdata[] = { XLAT(STATX_ATTR_COMPRESSED), + #define XLAT_VAL_0 ((unsigned) (STATX_ATTR_COMPRESSED)) + #define XLAT_STR_0 STRINGIFY(STATX_ATTR_COMPRESSED) XLAT(STATX_ATTR_IMMUTABLE), + #define XLAT_VAL_1 ((unsigned) (STATX_ATTR_IMMUTABLE)) + #define XLAT_STR_1 STRINGIFY(STATX_ATTR_IMMUTABLE) XLAT(STATX_ATTR_APPEND), + #define XLAT_VAL_2 ((unsigned) (STATX_ATTR_APPEND)) + #define XLAT_STR_2 STRINGIFY(STATX_ATTR_APPEND) XLAT(STATX_ATTR_NODUMP), + #define XLAT_VAL_3 ((unsigned) (STATX_ATTR_NODUMP)) + #define XLAT_STR_3 STRINGIFY(STATX_ATTR_NODUMP) XLAT(STATX_ATTR_ENCRYPTED), + #define XLAT_VAL_4 ((unsigned) (STATX_ATTR_ENCRYPTED)) + #define XLAT_STR_4 STRINGIFY(STATX_ATTR_ENCRYPTED) XLAT(STATX_ATTR_AUTOMOUNT), - XLAT_END + #define XLAT_VAL_5 ((unsigned) (STATX_ATTR_AUTOMOUNT)) + #define XLAT_STR_5 STRINGIFY(STATX_ATTR_AUTOMOUNT) + XLAT(STATX_ATTR_MOUNT_ROOT), + #define XLAT_VAL_6 ((unsigned) (STATX_ATTR_MOUNT_ROOT)) + #define XLAT_STR_6 STRINGIFY(STATX_ATTR_MOUNT_ROOT) + XLAT(STATX_ATTR_VERITY), + #define XLAT_VAL_7 ((unsigned) (STATX_ATTR_VERITY)) + #define XLAT_STR_7 STRINGIFY(STATX_ATTR_VERITY) }; +static +const struct xlat statx_attrs[1] = { { + .data = statx_attrs_xdata, + .size = ARRAY_SIZE(statx_attrs_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/statx_attrs.in b/xlat/statx_attrs.in index f6e40786..3fc5e37e 100644 --- a/xlat/statx_attrs.in +++ b/xlat/statx_attrs.in @@ -4,3 +4,5 @@ STATX_ATTR_APPEND 0x00000020 STATX_ATTR_NODUMP 0x00000040 STATX_ATTR_ENCRYPTED 0x00000800 STATX_ATTR_AUTOMOUNT 0x00001000 +STATX_ATTR_MOUNT_ROOT 0x00002000 +STATX_ATTR_VERITY 0x00100000 diff --git a/xlat/statx_masks.h b/xlat/statx_masks.h index f94ee8a5..b5538ba2 100644 --- a/xlat/statx_masks.h +++ b/xlat/statx_masks.h @@ -101,6 +101,13 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define STATX_BTIME 0x00000800U #endif +#if defined(STATX_MNT_ID) || (defined(HAVE_DECL_STATX_MNT_ID) && HAVE_DECL_STATX_MNT_ID) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((STATX_MNT_ID) == (0x00001000U), "STATX_MNT_ID != 0x00001000U"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define STATX_MNT_ID 0x00001000U +#endif #ifndef XLAT_MACROS_ONLY @@ -110,26 +117,185 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat statx_masks[] = { +static const struct xlat_data statx_masks_xdata[] = { XLAT(STATX_ALL), + #define XLAT_VAL_0 ((unsigned) (STATX_ALL)) + #define XLAT_STR_0 STRINGIFY(STATX_ALL) XLAT(STATX_BASIC_STATS), + #define XLAT_VAL_1 ((unsigned) (STATX_BASIC_STATS)) + #define XLAT_STR_1 STRINGIFY(STATX_BASIC_STATS) XLAT(STATX_TYPE), + #define XLAT_VAL_2 ((unsigned) (STATX_TYPE)) + #define XLAT_STR_2 STRINGIFY(STATX_TYPE) XLAT(STATX_MODE), + #define XLAT_VAL_3 ((unsigned) (STATX_MODE)) + #define XLAT_STR_3 STRINGIFY(STATX_MODE) XLAT(STATX_NLINK), + #define XLAT_VAL_4 ((unsigned) (STATX_NLINK)) + #define XLAT_STR_4 STRINGIFY(STATX_NLINK) XLAT(STATX_UID), + #define XLAT_VAL_5 ((unsigned) (STATX_UID)) + #define XLAT_STR_5 STRINGIFY(STATX_UID) XLAT(STATX_GID), + #define XLAT_VAL_6 ((unsigned) (STATX_GID)) + #define XLAT_STR_6 STRINGIFY(STATX_GID) XLAT(STATX_ATIME), + #define XLAT_VAL_7 ((unsigned) (STATX_ATIME)) + #define XLAT_STR_7 STRINGIFY(STATX_ATIME) XLAT(STATX_MTIME), + #define XLAT_VAL_8 ((unsigned) (STATX_MTIME)) + #define XLAT_STR_8 STRINGIFY(STATX_MTIME) XLAT(STATX_CTIME), + #define XLAT_VAL_9 ((unsigned) (STATX_CTIME)) + #define XLAT_STR_9 STRINGIFY(STATX_CTIME) XLAT(STATX_INO), + #define XLAT_VAL_10 ((unsigned) (STATX_INO)) + #define XLAT_STR_10 STRINGIFY(STATX_INO) XLAT(STATX_SIZE), + #define XLAT_VAL_11 ((unsigned) (STATX_SIZE)) + #define XLAT_STR_11 STRINGIFY(STATX_SIZE) XLAT(STATX_BLOCKS), + #define XLAT_VAL_12 ((unsigned) (STATX_BLOCKS)) + #define XLAT_STR_12 STRINGIFY(STATX_BLOCKS) XLAT(STATX_BTIME), - XLAT_END + #define XLAT_VAL_13 ((unsigned) (STATX_BTIME)) + #define XLAT_STR_13 STRINGIFY(STATX_BTIME) + XLAT(STATX_MNT_ID), + #define XLAT_VAL_14 ((unsigned) (STATX_MNT_ID)) + #define XLAT_STR_14 STRINGIFY(STATX_MNT_ID) }; +static +const struct xlat statx_masks[1] = { { + .data = statx_masks_xdata, + .size = ARRAY_SIZE(statx_masks_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/statx_masks.in b/xlat/statx_masks.in index d18dd259..3438672b 100644 --- a/xlat/statx_masks.in +++ b/xlat/statx_masks.in @@ -13,3 +13,4 @@ STATX_INO 0x00000100U STATX_SIZE 0x00000200U STATX_BLOCKS 0x00000400U STATX_BTIME 0x00000800U +STATX_MNT_ID 0x00001000U diff --git a/xlat/swap_flags.h b/xlat/swap_flags.h index d03aa13f..cd93d4bb 100644 --- a/xlat/swap_flags.h +++ b/xlat/swap_flags.h @@ -40,15 +40,63 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat swap_flags[] = { +static const struct xlat_data swap_flags_xdata[] = { XLAT(SWAP_FLAG_PREFER), + #define XLAT_VAL_0 ((unsigned) (SWAP_FLAG_PREFER)) + #define XLAT_STR_0 STRINGIFY(SWAP_FLAG_PREFER) XLAT(SWAP_FLAG_DISCARD), + #define XLAT_VAL_1 ((unsigned) (SWAP_FLAG_DISCARD)) + #define XLAT_STR_1 STRINGIFY(SWAP_FLAG_DISCARD) XLAT(SWAP_FLAG_DISCARD_ONCE), + #define XLAT_VAL_2 ((unsigned) (SWAP_FLAG_DISCARD_ONCE)) + #define XLAT_STR_2 STRINGIFY(SWAP_FLAG_DISCARD_ONCE) XLAT(SWAP_FLAG_DISCARD_PAGES), - XLAT_END + #define XLAT_VAL_3 ((unsigned) (SWAP_FLAG_DISCARD_PAGES)) + #define XLAT_STR_3 STRINGIFY(SWAP_FLAG_DISCARD_PAGES) }; +static +const struct xlat swap_flags[1] = { { + .data = swap_flags_xdata, + .size = ARRAY_SIZE(swap_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sync_file_range_flags.h b/xlat/sync_file_range_flags.h index 2d7de908..73e43153 100644 --- a/xlat/sync_file_range_flags.h +++ b/xlat/sync_file_range_flags.h @@ -33,14 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat sync_file_range_flags[] = { +static const struct xlat_data sync_file_range_flags_xdata[] = { XLAT(SYNC_FILE_RANGE_WAIT_BEFORE), + #define XLAT_VAL_0 ((unsigned) (SYNC_FILE_RANGE_WAIT_BEFORE)) + #define XLAT_STR_0 STRINGIFY(SYNC_FILE_RANGE_WAIT_BEFORE) XLAT(SYNC_FILE_RANGE_WRITE), + #define XLAT_VAL_1 ((unsigned) (SYNC_FILE_RANGE_WRITE)) + #define XLAT_STR_1 STRINGIFY(SYNC_FILE_RANGE_WRITE) XLAT(SYNC_FILE_RANGE_WAIT_AFTER), - XLAT_END + #define XLAT_VAL_2 ((unsigned) (SYNC_FILE_RANGE_WAIT_AFTER)) + #define XLAT_STR_2 STRINGIFY(SYNC_FILE_RANGE_WAIT_AFTER) }; +static +const struct xlat sync_file_range_flags[1] = { { + .data = sync_file_range_flags_xdata, + .size = ARRAY_SIZE(sync_file_range_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sysctl_kern.h b/xlat/sysctl_kern.h index ea1acdb6..9e1b80c4 100644 --- a/xlat/sysctl_kern.h +++ b/xlat/sysctl_kern.h @@ -12,117 +12,805 @@ # else -static -const struct xlat sysctl_kern[] = { +static const struct xlat_data sysctl_kern_xdata[] = { XLAT(KERN_OSTYPE), + #define XLAT_VAL_0 ((unsigned) (KERN_OSTYPE)) + #define XLAT_STR_0 STRINGIFY(KERN_OSTYPE) XLAT(KERN_OSRELEASE), + #define XLAT_VAL_1 ((unsigned) (KERN_OSRELEASE)) + #define XLAT_STR_1 STRINGIFY(KERN_OSRELEASE) XLAT(KERN_OSREV), + #define XLAT_VAL_2 ((unsigned) (KERN_OSREV)) + #define XLAT_STR_2 STRINGIFY(KERN_OSREV) XLAT(KERN_VERSION), + #define XLAT_VAL_3 ((unsigned) (KERN_VERSION)) + #define XLAT_STR_3 STRINGIFY(KERN_VERSION) XLAT(KERN_SECUREMASK), + #define XLAT_VAL_4 ((unsigned) (KERN_SECUREMASK)) + #define XLAT_STR_4 STRINGIFY(KERN_SECUREMASK) XLAT(KERN_PROF), + #define XLAT_VAL_5 ((unsigned) (KERN_PROF)) + #define XLAT_STR_5 STRINGIFY(KERN_PROF) XLAT(KERN_NODENAME), + #define XLAT_VAL_6 ((unsigned) (KERN_NODENAME)) + #define XLAT_STR_6 STRINGIFY(KERN_NODENAME) XLAT(KERN_DOMAINNAME), + #define XLAT_VAL_7 ((unsigned) (KERN_DOMAINNAME)) + #define XLAT_STR_7 STRINGIFY(KERN_DOMAINNAME) XLAT(KERN_PANIC), + #define XLAT_VAL_8 ((unsigned) (KERN_PANIC)) + #define XLAT_STR_8 STRINGIFY(KERN_PANIC) XLAT(KERN_REALROOTDEV), + #define XLAT_VAL_9 ((unsigned) (KERN_REALROOTDEV)) + #define XLAT_STR_9 STRINGIFY(KERN_REALROOTDEV) XLAT(KERN_SPARC_REBOOT), + #define XLAT_VAL_10 ((unsigned) (KERN_SPARC_REBOOT)) + #define XLAT_STR_10 STRINGIFY(KERN_SPARC_REBOOT) XLAT(KERN_CTLALTDEL), + #define XLAT_VAL_11 ((unsigned) (KERN_CTLALTDEL)) + #define XLAT_STR_11 STRINGIFY(KERN_CTLALTDEL) XLAT(KERN_PRINTK), + #define XLAT_VAL_12 ((unsigned) (KERN_PRINTK)) + #define XLAT_STR_12 STRINGIFY(KERN_PRINTK) XLAT(KERN_NAMETRANS), + #define XLAT_VAL_13 ((unsigned) (KERN_NAMETRANS)) + #define XLAT_STR_13 STRINGIFY(KERN_NAMETRANS) XLAT(KERN_PPC_HTABRECLAIM), + #define XLAT_VAL_14 ((unsigned) (KERN_PPC_HTABRECLAIM)) + #define XLAT_STR_14 STRINGIFY(KERN_PPC_HTABRECLAIM) XLAT(KERN_PPC_ZEROPAGED), + #define XLAT_VAL_15 ((unsigned) (KERN_PPC_ZEROPAGED)) + #define XLAT_STR_15 STRINGIFY(KERN_PPC_ZEROPAGED) XLAT(KERN_PPC_POWERSAVE_NAP), + #define XLAT_VAL_16 ((unsigned) (KERN_PPC_POWERSAVE_NAP)) + #define XLAT_STR_16 STRINGIFY(KERN_PPC_POWERSAVE_NAP) XLAT(KERN_MODPROBE), + #define XLAT_VAL_17 ((unsigned) (KERN_MODPROBE)) + #define XLAT_STR_17 STRINGIFY(KERN_MODPROBE) XLAT(KERN_SG_BIG_BUFF), + #define XLAT_VAL_18 ((unsigned) (KERN_SG_BIG_BUFF)) + #define XLAT_STR_18 STRINGIFY(KERN_SG_BIG_BUFF) XLAT(KERN_ACCT), + #define XLAT_VAL_19 ((unsigned) (KERN_ACCT)) + #define XLAT_STR_19 STRINGIFY(KERN_ACCT) XLAT(KERN_PPC_L2CR), + #define XLAT_VAL_20 ((unsigned) (KERN_PPC_L2CR)) + #define XLAT_STR_20 STRINGIFY(KERN_PPC_L2CR) XLAT(KERN_RTSIGNR), + #define XLAT_VAL_21 ((unsigned) (KERN_RTSIGNR)) + #define XLAT_STR_21 STRINGIFY(KERN_RTSIGNR) XLAT(KERN_RTSIGMAX), + #define XLAT_VAL_22 ((unsigned) (KERN_RTSIGMAX)) + #define XLAT_STR_22 STRINGIFY(KERN_RTSIGMAX) XLAT(KERN_SHMMAX), + #define XLAT_VAL_23 ((unsigned) (KERN_SHMMAX)) + #define XLAT_STR_23 STRINGIFY(KERN_SHMMAX) XLAT(KERN_MSGMAX), + #define XLAT_VAL_24 ((unsigned) (KERN_MSGMAX)) + #define XLAT_STR_24 STRINGIFY(KERN_MSGMAX) XLAT(KERN_MSGMNB), + #define XLAT_VAL_25 ((unsigned) (KERN_MSGMNB)) + #define XLAT_STR_25 STRINGIFY(KERN_MSGMNB) XLAT(KERN_MSGPOOL), + #define XLAT_VAL_26 ((unsigned) (KERN_MSGPOOL)) + #define XLAT_STR_26 STRINGIFY(KERN_MSGPOOL) XLAT(KERN_SYSRQ), + #define XLAT_VAL_27 ((unsigned) (KERN_SYSRQ)) + #define XLAT_STR_27 STRINGIFY(KERN_SYSRQ) XLAT(KERN_MAX_THREADS), + #define XLAT_VAL_28 ((unsigned) (KERN_MAX_THREADS)) + #define XLAT_STR_28 STRINGIFY(KERN_MAX_THREADS) XLAT(KERN_RANDOM), + #define XLAT_VAL_29 ((unsigned) (KERN_RANDOM)) + #define XLAT_STR_29 STRINGIFY(KERN_RANDOM) XLAT(KERN_SHMALL), + #define XLAT_VAL_30 ((unsigned) (KERN_SHMALL)) + #define XLAT_STR_30 STRINGIFY(KERN_SHMALL) XLAT(KERN_MSGMNI), + #define XLAT_VAL_31 ((unsigned) (KERN_MSGMNI)) + #define XLAT_STR_31 STRINGIFY(KERN_MSGMNI) XLAT(KERN_SEM), + #define XLAT_VAL_32 ((unsigned) (KERN_SEM)) + #define XLAT_STR_32 STRINGIFY(KERN_SEM) XLAT(KERN_SPARC_STOP_A), + #define XLAT_VAL_33 ((unsigned) (KERN_SPARC_STOP_A)) + #define XLAT_STR_33 STRINGIFY(KERN_SPARC_STOP_A) XLAT(KERN_SHMMNI), + #define XLAT_VAL_34 ((unsigned) (KERN_SHMMNI)) + #define XLAT_STR_34 STRINGIFY(KERN_SHMMNI) XLAT(KERN_OVERFLOWUID), + #define XLAT_VAL_35 ((unsigned) (KERN_OVERFLOWUID)) + #define XLAT_STR_35 STRINGIFY(KERN_OVERFLOWUID) XLAT(KERN_OVERFLOWGID), + #define XLAT_VAL_36 ((unsigned) (KERN_OVERFLOWGID)) + #define XLAT_STR_36 STRINGIFY(KERN_OVERFLOWGID) XLAT(KERN_SHMPATH), + #define XLAT_VAL_37 ((unsigned) (KERN_SHMPATH)) + #define XLAT_STR_37 STRINGIFY(KERN_SHMPATH) XLAT(KERN_HOTPLUG), + #define XLAT_VAL_38 ((unsigned) (KERN_HOTPLUG)) + #define XLAT_STR_38 STRINGIFY(KERN_HOTPLUG) XLAT(KERN_IEEE_EMULATION_WARNINGS), + #define XLAT_VAL_39 ((unsigned) (KERN_IEEE_EMULATION_WARNINGS)) + #define XLAT_STR_39 STRINGIFY(KERN_IEEE_EMULATION_WARNINGS) XLAT(KERN_S390_USER_DEBUG_LOGGING), + #define XLAT_VAL_40 ((unsigned) (KERN_S390_USER_DEBUG_LOGGING)) + #define XLAT_STR_40 STRINGIFY(KERN_S390_USER_DEBUG_LOGGING) XLAT(KERN_CORE_USES_PID), + #define XLAT_VAL_41 ((unsigned) (KERN_CORE_USES_PID)) + #define XLAT_STR_41 STRINGIFY(KERN_CORE_USES_PID) XLAT(KERN_TAINTED), + #define XLAT_VAL_42 ((unsigned) (KERN_TAINTED)) + #define XLAT_STR_42 STRINGIFY(KERN_TAINTED) XLAT(KERN_CADPID), + #define XLAT_VAL_43 ((unsigned) (KERN_CADPID)) + #define XLAT_STR_43 STRINGIFY(KERN_CADPID) XLAT(KERN_PIDMAX), + #define XLAT_VAL_44 ((unsigned) (KERN_PIDMAX)) + #define XLAT_STR_44 STRINGIFY(KERN_PIDMAX) XLAT(KERN_CORE_PATTERN), + #define XLAT_VAL_45 ((unsigned) (KERN_CORE_PATTERN)) + #define XLAT_STR_45 STRINGIFY(KERN_CORE_PATTERN) XLAT(KERN_PANIC_ON_OOPS), + #define XLAT_VAL_46 ((unsigned) (KERN_PANIC_ON_OOPS)) + #define XLAT_STR_46 STRINGIFY(KERN_PANIC_ON_OOPS) XLAT(KERN_HPPA_PWRSW), + #define XLAT_VAL_47 ((unsigned) (KERN_HPPA_PWRSW)) + #define XLAT_STR_47 STRINGIFY(KERN_HPPA_PWRSW) XLAT(KERN_HPPA_UNALIGNED), + #define XLAT_VAL_48 ((unsigned) (KERN_HPPA_UNALIGNED)) + #define XLAT_STR_48 STRINGIFY(KERN_HPPA_UNALIGNED) #if defined(KERN_PRINTK_RATELIMIT) || (defined(HAVE_DECL_KERN_PRINTK_RATELIMIT) && HAVE_DECL_KERN_PRINTK_RATELIMIT) XLAT(KERN_PRINTK_RATELIMIT), + #define XLAT_VAL_49 ((unsigned) (KERN_PRINTK_RATELIMIT)) + #define XLAT_STR_49 STRINGIFY(KERN_PRINTK_RATELIMIT) #endif #if defined(KERN_PRINTK_RATELIMIT_BURST) || (defined(HAVE_DECL_KERN_PRINTK_RATELIMIT_BURST) && HAVE_DECL_KERN_PRINTK_RATELIMIT_BURST) XLAT(KERN_PRINTK_RATELIMIT_BURST), + #define XLAT_VAL_50 ((unsigned) (KERN_PRINTK_RATELIMIT_BURST)) + #define XLAT_STR_50 STRINGIFY(KERN_PRINTK_RATELIMIT_BURST) #endif #if defined(KERN_PTY) || (defined(HAVE_DECL_KERN_PTY) && HAVE_DECL_KERN_PTY) XLAT(KERN_PTY), + #define XLAT_VAL_51 ((unsigned) (KERN_PTY)) + #define XLAT_STR_51 STRINGIFY(KERN_PTY) #endif #if defined(KERN_NGROUPS_MAX) || (defined(HAVE_DECL_KERN_NGROUPS_MAX) && HAVE_DECL_KERN_NGROUPS_MAX) XLAT(KERN_NGROUPS_MAX), + #define XLAT_VAL_52 ((unsigned) (KERN_NGROUPS_MAX)) + #define XLAT_STR_52 STRINGIFY(KERN_NGROUPS_MAX) #endif #if defined(KERN_SPARC_SCONS_PWROFF) || (defined(HAVE_DECL_KERN_SPARC_SCONS_PWROFF) && HAVE_DECL_KERN_SPARC_SCONS_PWROFF) XLAT(KERN_SPARC_SCONS_PWROFF), + #define XLAT_VAL_53 ((unsigned) (KERN_SPARC_SCONS_PWROFF)) + #define XLAT_STR_53 STRINGIFY(KERN_SPARC_SCONS_PWROFF) #endif #if defined(KERN_HZ_TIMER) || (defined(HAVE_DECL_KERN_HZ_TIMER) && HAVE_DECL_KERN_HZ_TIMER) XLAT(KERN_HZ_TIMER), + #define XLAT_VAL_54 ((unsigned) (KERN_HZ_TIMER)) + #define XLAT_STR_54 STRINGIFY(KERN_HZ_TIMER) #endif #if defined(KERN_UNKNOWN_NMI_PANIC) || (defined(HAVE_DECL_KERN_UNKNOWN_NMI_PANIC) && HAVE_DECL_KERN_UNKNOWN_NMI_PANIC) XLAT(KERN_UNKNOWN_NMI_PANIC), + #define XLAT_VAL_55 ((unsigned) (KERN_UNKNOWN_NMI_PANIC)) + #define XLAT_STR_55 STRINGIFY(KERN_UNKNOWN_NMI_PANIC) #endif #if defined(KERN_BOOTLOADER_TYPE) || (defined(HAVE_DECL_KERN_BOOTLOADER_TYPE) && HAVE_DECL_KERN_BOOTLOADER_TYPE) XLAT(KERN_BOOTLOADER_TYPE), + #define XLAT_VAL_56 ((unsigned) (KERN_BOOTLOADER_TYPE)) + #define XLAT_STR_56 STRINGIFY(KERN_BOOTLOADER_TYPE) #endif #if defined(KERN_RANDOMIZE) || (defined(HAVE_DECL_KERN_RANDOMIZE) && HAVE_DECL_KERN_RANDOMIZE) XLAT(KERN_RANDOMIZE), + #define XLAT_VAL_57 ((unsigned) (KERN_RANDOMIZE)) + #define XLAT_STR_57 STRINGIFY(KERN_RANDOMIZE) #endif #if defined(KERN_SETUID_DUMPABLE) || (defined(HAVE_DECL_KERN_SETUID_DUMPABLE) && HAVE_DECL_KERN_SETUID_DUMPABLE) XLAT(KERN_SETUID_DUMPABLE), + #define XLAT_VAL_58 ((unsigned) (KERN_SETUID_DUMPABLE)) + #define XLAT_STR_58 STRINGIFY(KERN_SETUID_DUMPABLE) #endif #if defined(KERN_SPIN_RETRY) || (defined(HAVE_DECL_KERN_SPIN_RETRY) && HAVE_DECL_KERN_SPIN_RETRY) XLAT(KERN_SPIN_RETRY), + #define XLAT_VAL_59 ((unsigned) (KERN_SPIN_RETRY)) + #define XLAT_STR_59 STRINGIFY(KERN_SPIN_RETRY) #endif #if defined(KERN_ACPI_VIDEO_FLAGS) || (defined(HAVE_DECL_KERN_ACPI_VIDEO_FLAGS) && HAVE_DECL_KERN_ACPI_VIDEO_FLAGS) XLAT(KERN_ACPI_VIDEO_FLAGS), + #define XLAT_VAL_60 ((unsigned) (KERN_ACPI_VIDEO_FLAGS)) + #define XLAT_STR_60 STRINGIFY(KERN_ACPI_VIDEO_FLAGS) #endif #if defined(KERN_IA64_UNALIGNED) || (defined(HAVE_DECL_KERN_IA64_UNALIGNED) && HAVE_DECL_KERN_IA64_UNALIGNED) XLAT(KERN_IA64_UNALIGNED), + #define XLAT_VAL_61 ((unsigned) (KERN_IA64_UNALIGNED)) + #define XLAT_STR_61 STRINGIFY(KERN_IA64_UNALIGNED) #endif #if defined(KERN_COMPAT_LOG) || (defined(HAVE_DECL_KERN_COMPAT_LOG) && HAVE_DECL_KERN_COMPAT_LOG) XLAT(KERN_COMPAT_LOG), + #define XLAT_VAL_62 ((unsigned) (KERN_COMPAT_LOG)) + #define XLAT_STR_62 STRINGIFY(KERN_COMPAT_LOG) #endif #if defined(KERN_MAX_LOCK_DEPTH) || (defined(HAVE_DECL_KERN_MAX_LOCK_DEPTH) && HAVE_DECL_KERN_MAX_LOCK_DEPTH) XLAT(KERN_MAX_LOCK_DEPTH), + #define XLAT_VAL_63 ((unsigned) (KERN_MAX_LOCK_DEPTH)) + #define XLAT_STR_63 STRINGIFY(KERN_MAX_LOCK_DEPTH) #endif #if defined(KERN_NMI_WATCHDOG) || (defined(HAVE_DECL_KERN_NMI_WATCHDOG) && HAVE_DECL_KERN_NMI_WATCHDOG) XLAT(KERN_NMI_WATCHDOG), + #define XLAT_VAL_64 ((unsigned) (KERN_NMI_WATCHDOG)) + #define XLAT_STR_64 STRINGIFY(KERN_NMI_WATCHDOG) #endif #if defined(KERN_PANIC_ON_NMI) || (defined(HAVE_DECL_KERN_PANIC_ON_NMI) && HAVE_DECL_KERN_PANIC_ON_NMI) XLAT(KERN_PANIC_ON_NMI), + #define XLAT_VAL_65 ((unsigned) (KERN_PANIC_ON_NMI)) + #define XLAT_STR_65 STRINGIFY(KERN_PANIC_ON_NMI) #endif #if defined(KERN_PANIC_ON_WARN) || (defined(HAVE_DECL_KERN_PANIC_ON_WARN) && HAVE_DECL_KERN_PANIC_ON_WARN) XLAT(KERN_PANIC_ON_WARN), + #define XLAT_VAL_66 ((unsigned) (KERN_PANIC_ON_WARN)) + #define XLAT_STR_66 STRINGIFY(KERN_PANIC_ON_WARN) #endif #if defined(KERN_PANIC_PRINT) || (defined(HAVE_DECL_KERN_PANIC_PRINT) && HAVE_DECL_KERN_PANIC_PRINT) XLAT(KERN_PANIC_PRINT), + #define XLAT_VAL_67 ((unsigned) (KERN_PANIC_PRINT)) + #define XLAT_STR_67 STRINGIFY(KERN_PANIC_PRINT) #endif - XLAT_END }; +static +const struct xlat sysctl_kern[1] = { { + .data = sysctl_kern_xdata, + .size = ARRAY_SIZE(sysctl_kern_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif +# ifdef XLAT_VAL_41 + | XLAT_VAL_41 +# endif +# ifdef XLAT_VAL_42 + | XLAT_VAL_42 +# endif +# ifdef XLAT_VAL_43 + | XLAT_VAL_43 +# endif +# ifdef XLAT_VAL_44 + | XLAT_VAL_44 +# endif +# ifdef XLAT_VAL_45 + | XLAT_VAL_45 +# endif +# ifdef XLAT_VAL_46 + | XLAT_VAL_46 +# endif +# ifdef XLAT_VAL_47 + | XLAT_VAL_47 +# endif +# ifdef XLAT_VAL_48 + | XLAT_VAL_48 +# endif +# ifdef XLAT_VAL_49 + | XLAT_VAL_49 +# endif +# ifdef XLAT_VAL_50 + | XLAT_VAL_50 +# endif +# ifdef XLAT_VAL_51 + | XLAT_VAL_51 +# endif +# ifdef XLAT_VAL_52 + | XLAT_VAL_52 +# endif +# ifdef XLAT_VAL_53 + | XLAT_VAL_53 +# endif +# ifdef XLAT_VAL_54 + | XLAT_VAL_54 +# endif +# ifdef XLAT_VAL_55 + | XLAT_VAL_55 +# endif +# ifdef XLAT_VAL_56 + | XLAT_VAL_56 +# endif +# ifdef XLAT_VAL_57 + | XLAT_VAL_57 +# endif +# ifdef XLAT_VAL_58 + | XLAT_VAL_58 +# endif +# ifdef XLAT_VAL_59 + | XLAT_VAL_59 +# endif +# ifdef XLAT_VAL_60 + | XLAT_VAL_60 +# endif +# ifdef XLAT_VAL_61 + | XLAT_VAL_61 +# endif +# ifdef XLAT_VAL_62 + | XLAT_VAL_62 +# endif +# ifdef XLAT_VAL_63 + | XLAT_VAL_63 +# endif +# ifdef XLAT_VAL_64 + | XLAT_VAL_64 +# endif +# ifdef XLAT_VAL_65 + | XLAT_VAL_65 +# endif +# ifdef XLAT_VAL_66 + | XLAT_VAL_66 +# endif +# ifdef XLAT_VAL_67 + | XLAT_VAL_67 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif +# ifdef XLAT_STR_41 + + sizeof(XLAT_STR_41) +# endif +# ifdef XLAT_STR_42 + + sizeof(XLAT_STR_42) +# endif +# ifdef XLAT_STR_43 + + sizeof(XLAT_STR_43) +# endif +# ifdef XLAT_STR_44 + + sizeof(XLAT_STR_44) +# endif +# ifdef XLAT_STR_45 + + sizeof(XLAT_STR_45) +# endif +# ifdef XLAT_STR_46 + + sizeof(XLAT_STR_46) +# endif +# ifdef XLAT_STR_47 + + sizeof(XLAT_STR_47) +# endif +# ifdef XLAT_STR_48 + + sizeof(XLAT_STR_48) +# endif +# ifdef XLAT_STR_49 + + sizeof(XLAT_STR_49) +# endif +# ifdef XLAT_STR_50 + + sizeof(XLAT_STR_50) +# endif +# ifdef XLAT_STR_51 + + sizeof(XLAT_STR_51) +# endif +# ifdef XLAT_STR_52 + + sizeof(XLAT_STR_52) +# endif +# ifdef XLAT_STR_53 + + sizeof(XLAT_STR_53) +# endif +# ifdef XLAT_STR_54 + + sizeof(XLAT_STR_54) +# endif +# ifdef XLAT_STR_55 + + sizeof(XLAT_STR_55) +# endif +# ifdef XLAT_STR_56 + + sizeof(XLAT_STR_56) +# endif +# ifdef XLAT_STR_57 + + sizeof(XLAT_STR_57) +# endif +# ifdef XLAT_STR_58 + + sizeof(XLAT_STR_58) +# endif +# ifdef XLAT_STR_59 + + sizeof(XLAT_STR_59) +# endif +# ifdef XLAT_STR_60 + + sizeof(XLAT_STR_60) +# endif +# ifdef XLAT_STR_61 + + sizeof(XLAT_STR_61) +# endif +# ifdef XLAT_STR_62 + + sizeof(XLAT_STR_62) +# endif +# ifdef XLAT_STR_63 + + sizeof(XLAT_STR_63) +# endif +# ifdef XLAT_STR_64 + + sizeof(XLAT_STR_64) +# endif +# ifdef XLAT_STR_65 + + sizeof(XLAT_STR_65) +# endif +# ifdef XLAT_STR_66 + + sizeof(XLAT_STR_66) +# endif +# ifdef XLAT_STR_67 + + sizeof(XLAT_STR_67) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 +# undef XLAT_STR_41 +# undef XLAT_VAL_41 +# undef XLAT_STR_42 +# undef XLAT_VAL_42 +# undef XLAT_STR_43 +# undef XLAT_VAL_43 +# undef XLAT_STR_44 +# undef XLAT_VAL_44 +# undef XLAT_STR_45 +# undef XLAT_VAL_45 +# undef XLAT_STR_46 +# undef XLAT_VAL_46 +# undef XLAT_STR_47 +# undef XLAT_VAL_47 +# undef XLAT_STR_48 +# undef XLAT_VAL_48 +# undef XLAT_STR_49 +# undef XLAT_VAL_49 +# undef XLAT_STR_50 +# undef XLAT_VAL_50 +# undef XLAT_STR_51 +# undef XLAT_VAL_51 +# undef XLAT_STR_52 +# undef XLAT_VAL_52 +# undef XLAT_STR_53 +# undef XLAT_VAL_53 +# undef XLAT_STR_54 +# undef XLAT_VAL_54 +# undef XLAT_STR_55 +# undef XLAT_VAL_55 +# undef XLAT_STR_56 +# undef XLAT_VAL_56 +# undef XLAT_STR_57 +# undef XLAT_VAL_57 +# undef XLAT_STR_58 +# undef XLAT_VAL_58 +# undef XLAT_STR_59 +# undef XLAT_VAL_59 +# undef XLAT_STR_60 +# undef XLAT_VAL_60 +# undef XLAT_STR_61 +# undef XLAT_VAL_61 +# undef XLAT_STR_62 +# undef XLAT_VAL_62 +# undef XLAT_STR_63 +# undef XLAT_VAL_63 +# undef XLAT_STR_64 +# undef XLAT_VAL_64 +# undef XLAT_STR_65 +# undef XLAT_VAL_65 +# undef XLAT_STR_66 +# undef XLAT_VAL_66 +# undef XLAT_STR_67 +# undef XLAT_VAL_67 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sysctl_kern.in b/xlat/sysctl_kern.in index f920f1f4..150657bc 100644 --- a/xlat/sysctl_kern.in +++ b/xlat/sysctl_kern.in @@ -1,3 +1,6 @@ +#enum +#include +#include #unconditional KERN_OSTYPE KERN_OSRELEASE diff --git a/xlat/sysctl_kern.m4 b/xlat/sysctl_kern.m4 new file mode 100644 index 00000000..2ea68b1d --- /dev/null +++ b/xlat/sysctl_kern.m4 @@ -0,0 +1,75 @@ +dnl Generated by ./xlat/gen.sh from ./xlat/sysctl_kern.in; do not edit. +AC_DEFUN([st_CHECK_ENUMS_sysctl_kern],[ +AC_CHECK_DECLS(m4_normalize([ +KERN_OSTYPE, +KERN_OSRELEASE, +KERN_OSREV, +KERN_VERSION, +KERN_SECUREMASK, +KERN_PROF, +KERN_NODENAME, +KERN_DOMAINNAME, +KERN_PANIC, +KERN_REALROOTDEV, +KERN_SPARC_REBOOT, +KERN_CTLALTDEL, +KERN_PRINTK, +KERN_NAMETRANS, +KERN_PPC_HTABRECLAIM, +KERN_PPC_ZEROPAGED, +KERN_PPC_POWERSAVE_NAP, +KERN_MODPROBE, +KERN_SG_BIG_BUFF, +KERN_ACCT, +KERN_PPC_L2CR, +KERN_RTSIGNR, +KERN_RTSIGMAX, +KERN_SHMMAX, +KERN_MSGMAX, +KERN_MSGMNB, +KERN_MSGPOOL, +KERN_SYSRQ, +KERN_MAX_THREADS, +KERN_RANDOM, +KERN_SHMALL, +KERN_MSGMNI, +KERN_SEM, +KERN_SPARC_STOP_A, +KERN_SHMMNI, +KERN_OVERFLOWUID, +KERN_OVERFLOWGID, +KERN_SHMPATH, +KERN_HOTPLUG, +KERN_IEEE_EMULATION_WARNINGS, +KERN_S390_USER_DEBUG_LOGGING, +KERN_CORE_USES_PID, +KERN_TAINTED, +KERN_CADPID, +KERN_PIDMAX, +KERN_CORE_PATTERN, +KERN_PANIC_ON_OOPS, +KERN_HPPA_PWRSW, +KERN_HPPA_UNALIGNED, +KERN_PRINTK_RATELIMIT, +KERN_PRINTK_RATELIMIT_BURST, +KERN_PTY, +KERN_NGROUPS_MAX, +KERN_SPARC_SCONS_PWROFF, +KERN_HZ_TIMER, +KERN_UNKNOWN_NMI_PANIC, +KERN_BOOTLOADER_TYPE, +KERN_RANDOMIZE, +KERN_SETUID_DUMPABLE, +KERN_SPIN_RETRY, +KERN_ACPI_VIDEO_FLAGS, +KERN_IA64_UNALIGNED, +KERN_COMPAT_LOG, +KERN_MAX_LOCK_DEPTH, +KERN_NMI_WATCHDOG, +KERN_PANIC_ON_NMI, +KERN_PANIC_ON_WARN, +KERN_PANIC_PRINT +]),,, [ +#include +#include +])])]) diff --git a/xlat/sysctl_net.h b/xlat/sysctl_net.h index 1e2b0c7a..c9f96483 100644 --- a/xlat/sysctl_net.h +++ b/xlat/sysctl_net.h @@ -12,40 +12,258 @@ # else -static -const struct xlat sysctl_net[] = { +static const struct xlat_data sysctl_net_xdata[] = { XLAT(NET_CORE), + #define XLAT_VAL_0 ((unsigned) (NET_CORE)) + #define XLAT_STR_0 STRINGIFY(NET_CORE) XLAT(NET_ETHER), + #define XLAT_VAL_1 ((unsigned) (NET_ETHER)) + #define XLAT_STR_1 STRINGIFY(NET_ETHER) XLAT(NET_802), + #define XLAT_VAL_2 ((unsigned) (NET_802)) + #define XLAT_STR_2 STRINGIFY(NET_802) XLAT(NET_UNIX), + #define XLAT_VAL_3 ((unsigned) (NET_UNIX)) + #define XLAT_STR_3 STRINGIFY(NET_UNIX) XLAT(NET_IPV4), + #define XLAT_VAL_4 ((unsigned) (NET_IPV4)) + #define XLAT_STR_4 STRINGIFY(NET_IPV4) XLAT(NET_IPX), + #define XLAT_VAL_5 ((unsigned) (NET_IPX)) + #define XLAT_STR_5 STRINGIFY(NET_IPX) XLAT(NET_ATALK), + #define XLAT_VAL_6 ((unsigned) (NET_ATALK)) + #define XLAT_STR_6 STRINGIFY(NET_ATALK) XLAT(NET_NETROM), + #define XLAT_VAL_7 ((unsigned) (NET_NETROM)) + #define XLAT_STR_7 STRINGIFY(NET_NETROM) XLAT(NET_AX25), + #define XLAT_VAL_8 ((unsigned) (NET_AX25)) + #define XLAT_STR_8 STRINGIFY(NET_AX25) XLAT(NET_BRIDGE), + #define XLAT_VAL_9 ((unsigned) (NET_BRIDGE)) + #define XLAT_STR_9 STRINGIFY(NET_BRIDGE) XLAT(NET_ROSE), + #define XLAT_VAL_10 ((unsigned) (NET_ROSE)) + #define XLAT_STR_10 STRINGIFY(NET_ROSE) XLAT(NET_IPV6), + #define XLAT_VAL_11 ((unsigned) (NET_IPV6)) + #define XLAT_STR_11 STRINGIFY(NET_IPV6) XLAT(NET_X25), + #define XLAT_VAL_12 ((unsigned) (NET_X25)) + #define XLAT_STR_12 STRINGIFY(NET_X25) XLAT(NET_TR), + #define XLAT_VAL_13 ((unsigned) (NET_TR)) + #define XLAT_STR_13 STRINGIFY(NET_TR) XLAT(NET_DECNET), + #define XLAT_VAL_14 ((unsigned) (NET_DECNET)) + #define XLAT_STR_14 STRINGIFY(NET_DECNET) XLAT(NET_ECONET), + #define XLAT_VAL_15 ((unsigned) (NET_ECONET)) + #define XLAT_STR_15 STRINGIFY(NET_ECONET) XLAT(NET_SCTP), + #define XLAT_VAL_16 ((unsigned) (NET_SCTP)) + #define XLAT_STR_16 STRINGIFY(NET_SCTP) #if defined(NET_LLC) || (defined(HAVE_DECL_NET_LLC) && HAVE_DECL_NET_LLC) XLAT(NET_LLC), + #define XLAT_VAL_17 ((unsigned) (NET_LLC)) + #define XLAT_STR_17 STRINGIFY(NET_LLC) #endif #if defined(NET_NETFILTER) || (defined(HAVE_DECL_NET_NETFILTER) && HAVE_DECL_NET_NETFILTER) XLAT(NET_NETFILTER), + #define XLAT_VAL_18 ((unsigned) (NET_NETFILTER)) + #define XLAT_STR_18 STRINGIFY(NET_NETFILTER) #endif #if defined(NET_DCCP) || (defined(HAVE_DECL_NET_DCCP) && HAVE_DECL_NET_DCCP) XLAT(NET_DCCP), + #define XLAT_VAL_19 ((unsigned) (NET_DCCP)) + #define XLAT_STR_19 STRINGIFY(NET_DCCP) #endif #if defined(NET_IRDA) || (defined(HAVE_DECL_NET_IRDA) && HAVE_DECL_NET_IRDA) XLAT(NET_IRDA), + #define XLAT_VAL_20 ((unsigned) (NET_IRDA)) + #define XLAT_STR_20 STRINGIFY(NET_IRDA) #endif - XLAT_END }; +static +const struct xlat sysctl_net[1] = { { + .data = sysctl_net_xdata, + .size = ARRAY_SIZE(sysctl_net_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sysctl_net.in b/xlat/sysctl_net.in index cb08d919..d922bbfa 100644 --- a/xlat/sysctl_net.in +++ b/xlat/sysctl_net.in @@ -1,3 +1,6 @@ +#enum +#include +#include #unconditional NET_CORE NET_ETHER diff --git a/xlat/sysctl_net.m4 b/xlat/sysctl_net.m4 new file mode 100644 index 00000000..79999fbc --- /dev/null +++ b/xlat/sysctl_net.m4 @@ -0,0 +1,28 @@ +dnl Generated by ./xlat/gen.sh from ./xlat/sysctl_net.in; do not edit. +AC_DEFUN([st_CHECK_ENUMS_sysctl_net],[ +AC_CHECK_DECLS(m4_normalize([ +NET_CORE, +NET_ETHER, +NET_802, +NET_UNIX, +NET_IPV4, +NET_IPX, +NET_ATALK, +NET_NETROM, +NET_AX25, +NET_BRIDGE, +NET_ROSE, +NET_IPV6, +NET_X25, +NET_TR, +NET_DECNET, +NET_ECONET, +NET_SCTP, +NET_LLC, +NET_NETFILTER, +NET_DCCP, +NET_IRDA +]),,, [ +#include +#include +])])]) diff --git a/xlat/sysctl_net_core.h b/xlat/sysctl_net_core.h index 2cce965f..2129e9f0 100644 --- a/xlat/sysctl_net_core.h +++ b/xlat/sysctl_net_core.h @@ -12,43 +12,271 @@ # else -static -const struct xlat sysctl_net_core[] = { +static const struct xlat_data sysctl_net_core_xdata[] = { XLAT(NET_CORE_WMEM_MAX), + #define XLAT_VAL_0 ((unsigned) (NET_CORE_WMEM_MAX)) + #define XLAT_STR_0 STRINGIFY(NET_CORE_WMEM_MAX) XLAT(NET_CORE_RMEM_MAX), + #define XLAT_VAL_1 ((unsigned) (NET_CORE_RMEM_MAX)) + #define XLAT_STR_1 STRINGIFY(NET_CORE_RMEM_MAX) XLAT(NET_CORE_WMEM_DEFAULT), + #define XLAT_VAL_2 ((unsigned) (NET_CORE_WMEM_DEFAULT)) + #define XLAT_STR_2 STRINGIFY(NET_CORE_WMEM_DEFAULT) XLAT(NET_CORE_RMEM_DEFAULT), + #define XLAT_VAL_3 ((unsigned) (NET_CORE_RMEM_DEFAULT)) + #define XLAT_STR_3 STRINGIFY(NET_CORE_RMEM_DEFAULT) XLAT(NET_CORE_MAX_BACKLOG), + #define XLAT_VAL_4 ((unsigned) (NET_CORE_MAX_BACKLOG)) + #define XLAT_STR_4 STRINGIFY(NET_CORE_MAX_BACKLOG) XLAT(NET_CORE_FASTROUTE), + #define XLAT_VAL_5 ((unsigned) (NET_CORE_FASTROUTE)) + #define XLAT_STR_5 STRINGIFY(NET_CORE_FASTROUTE) XLAT(NET_CORE_MSG_COST), + #define XLAT_VAL_6 ((unsigned) (NET_CORE_MSG_COST)) + #define XLAT_STR_6 STRINGIFY(NET_CORE_MSG_COST) XLAT(NET_CORE_MSG_BURST), + #define XLAT_VAL_7 ((unsigned) (NET_CORE_MSG_BURST)) + #define XLAT_STR_7 STRINGIFY(NET_CORE_MSG_BURST) XLAT(NET_CORE_OPTMEM_MAX), + #define XLAT_VAL_8 ((unsigned) (NET_CORE_OPTMEM_MAX)) + #define XLAT_STR_8 STRINGIFY(NET_CORE_OPTMEM_MAX) XLAT(NET_CORE_HOT_LIST_LENGTH), + #define XLAT_VAL_9 ((unsigned) (NET_CORE_HOT_LIST_LENGTH)) + #define XLAT_STR_9 STRINGIFY(NET_CORE_HOT_LIST_LENGTH) XLAT(NET_CORE_DIVERT_VERSION), + #define XLAT_VAL_10 ((unsigned) (NET_CORE_DIVERT_VERSION)) + #define XLAT_STR_10 STRINGIFY(NET_CORE_DIVERT_VERSION) XLAT(NET_CORE_NO_CONG_THRESH), + #define XLAT_VAL_11 ((unsigned) (NET_CORE_NO_CONG_THRESH)) + #define XLAT_STR_11 STRINGIFY(NET_CORE_NO_CONG_THRESH) XLAT(NET_CORE_NO_CONG), + #define XLAT_VAL_12 ((unsigned) (NET_CORE_NO_CONG)) + #define XLAT_STR_12 STRINGIFY(NET_CORE_NO_CONG) XLAT(NET_CORE_LO_CONG), + #define XLAT_VAL_13 ((unsigned) (NET_CORE_LO_CONG)) + #define XLAT_STR_13 STRINGIFY(NET_CORE_LO_CONG) XLAT(NET_CORE_MOD_CONG), + #define XLAT_VAL_14 ((unsigned) (NET_CORE_MOD_CONG)) + #define XLAT_STR_14 STRINGIFY(NET_CORE_MOD_CONG) XLAT(NET_CORE_DEV_WEIGHT), + #define XLAT_VAL_15 ((unsigned) (NET_CORE_DEV_WEIGHT)) + #define XLAT_STR_15 STRINGIFY(NET_CORE_DEV_WEIGHT) XLAT(NET_CORE_SOMAXCONN), + #define XLAT_VAL_16 ((unsigned) (NET_CORE_SOMAXCONN)) + #define XLAT_STR_16 STRINGIFY(NET_CORE_SOMAXCONN) #if defined(NET_CORE_DESTROY_DELAY) || (defined(HAVE_DECL_NET_CORE_DESTROY_DELAY) && HAVE_DECL_NET_CORE_DESTROY_DELAY) XLAT(NET_CORE_DESTROY_DELAY), + #define XLAT_VAL_17 ((unsigned) (NET_CORE_DESTROY_DELAY)) + #define XLAT_STR_17 STRINGIFY(NET_CORE_DESTROY_DELAY) #endif #if defined(NET_CORE_BUDGET) || (defined(HAVE_DECL_NET_CORE_BUDGET) && HAVE_DECL_NET_CORE_BUDGET) XLAT(NET_CORE_BUDGET), + #define XLAT_VAL_18 ((unsigned) (NET_CORE_BUDGET)) + #define XLAT_STR_18 STRINGIFY(NET_CORE_BUDGET) #endif #if defined(NET_CORE_AEVENT_ETIME) || (defined(HAVE_DECL_NET_CORE_AEVENT_ETIME) && HAVE_DECL_NET_CORE_AEVENT_ETIME) XLAT(NET_CORE_AEVENT_ETIME), + #define XLAT_VAL_19 ((unsigned) (NET_CORE_AEVENT_ETIME)) + #define XLAT_STR_19 STRINGIFY(NET_CORE_AEVENT_ETIME) #endif #if defined(NET_CORE_AEVENT_RSEQTH) || (defined(HAVE_DECL_NET_CORE_AEVENT_RSEQTH) && HAVE_DECL_NET_CORE_AEVENT_RSEQTH) XLAT(NET_CORE_AEVENT_RSEQTH), + #define XLAT_VAL_20 ((unsigned) (NET_CORE_AEVENT_RSEQTH)) + #define XLAT_STR_20 STRINGIFY(NET_CORE_AEVENT_RSEQTH) #endif #if defined(NET_CORE_WARNINGS) || (defined(HAVE_DECL_NET_CORE_WARNINGS) && HAVE_DECL_NET_CORE_WARNINGS) XLAT(NET_CORE_WARNINGS), + #define XLAT_VAL_21 ((unsigned) (NET_CORE_WARNINGS)) + #define XLAT_STR_21 STRINGIFY(NET_CORE_WARNINGS) #endif - XLAT_END }; +static +const struct xlat sysctl_net_core[1] = { { + .data = sysctl_net_core_xdata, + .size = ARRAY_SIZE(sysctl_net_core_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sysctl_net_core.in b/xlat/sysctl_net_core.in index 054fd9fa..07719cf8 100644 --- a/xlat/sysctl_net_core.in +++ b/xlat/sysctl_net_core.in @@ -1,3 +1,6 @@ +#enum +#include +#include #unconditional NET_CORE_WMEM_MAX NET_CORE_RMEM_MAX diff --git a/xlat/sysctl_net_core.m4 b/xlat/sysctl_net_core.m4 new file mode 100644 index 00000000..2d6562dc --- /dev/null +++ b/xlat/sysctl_net_core.m4 @@ -0,0 +1,29 @@ +dnl Generated by ./xlat/gen.sh from ./xlat/sysctl_net_core.in; do not edit. +AC_DEFUN([st_CHECK_ENUMS_sysctl_net_core],[ +AC_CHECK_DECLS(m4_normalize([ +NET_CORE_WMEM_MAX, +NET_CORE_RMEM_MAX, +NET_CORE_WMEM_DEFAULT, +NET_CORE_RMEM_DEFAULT, +NET_CORE_MAX_BACKLOG, +NET_CORE_FASTROUTE, +NET_CORE_MSG_COST, +NET_CORE_MSG_BURST, +NET_CORE_OPTMEM_MAX, +NET_CORE_HOT_LIST_LENGTH, +NET_CORE_DIVERT_VERSION, +NET_CORE_NO_CONG_THRESH, +NET_CORE_NO_CONG, +NET_CORE_LO_CONG, +NET_CORE_MOD_CONG, +NET_CORE_DEV_WEIGHT, +NET_CORE_SOMAXCONN, +NET_CORE_DESTROY_DELAY, +NET_CORE_BUDGET, +NET_CORE_AEVENT_ETIME, +NET_CORE_AEVENT_RSEQTH, +NET_CORE_WARNINGS +]),,, [ +#include +#include +])])]) diff --git a/xlat/sysctl_net_ipv4.h b/xlat/sysctl_net_ipv4.h index fdf02041..a0f8a5be 100644 --- a/xlat/sysctl_net_ipv4.h +++ b/xlat/sysctl_net_ipv4.h @@ -12,149 +12,1077 @@ # else -static -const struct xlat sysctl_net_ipv4[] = { +static const struct xlat_data sysctl_net_ipv4_xdata[] = { XLAT(NET_IPV4_FORWARD), + #define XLAT_VAL_0 ((unsigned) (NET_IPV4_FORWARD)) + #define XLAT_STR_0 STRINGIFY(NET_IPV4_FORWARD) XLAT(NET_IPV4_DYNADDR), + #define XLAT_VAL_1 ((unsigned) (NET_IPV4_DYNADDR)) + #define XLAT_STR_1 STRINGIFY(NET_IPV4_DYNADDR) XLAT(NET_IPV4_CONF), + #define XLAT_VAL_2 ((unsigned) (NET_IPV4_CONF)) + #define XLAT_STR_2 STRINGIFY(NET_IPV4_CONF) XLAT(NET_IPV4_NEIGH), + #define XLAT_VAL_3 ((unsigned) (NET_IPV4_NEIGH)) + #define XLAT_STR_3 STRINGIFY(NET_IPV4_NEIGH) XLAT(NET_IPV4_ROUTE), + #define XLAT_VAL_4 ((unsigned) (NET_IPV4_ROUTE)) + #define XLAT_STR_4 STRINGIFY(NET_IPV4_ROUTE) XLAT(NET_IPV4_FIB_HASH), + #define XLAT_VAL_5 ((unsigned) (NET_IPV4_FIB_HASH)) + #define XLAT_STR_5 STRINGIFY(NET_IPV4_FIB_HASH) XLAT(NET_IPV4_NETFILTER), + #define XLAT_VAL_6 ((unsigned) (NET_IPV4_NETFILTER)) + #define XLAT_STR_6 STRINGIFY(NET_IPV4_NETFILTER) XLAT(NET_IPV4_TCP_TIMESTAMPS), + #define XLAT_VAL_7 ((unsigned) (NET_IPV4_TCP_TIMESTAMPS)) + #define XLAT_STR_7 STRINGIFY(NET_IPV4_TCP_TIMESTAMPS) XLAT(NET_IPV4_TCP_WINDOW_SCALING), + #define XLAT_VAL_8 ((unsigned) (NET_IPV4_TCP_WINDOW_SCALING)) + #define XLAT_STR_8 STRINGIFY(NET_IPV4_TCP_WINDOW_SCALING) XLAT(NET_IPV4_TCP_SACK), + #define XLAT_VAL_9 ((unsigned) (NET_IPV4_TCP_SACK)) + #define XLAT_STR_9 STRINGIFY(NET_IPV4_TCP_SACK) XLAT(NET_IPV4_TCP_RETRANS_COLLAPSE), + #define XLAT_VAL_10 ((unsigned) (NET_IPV4_TCP_RETRANS_COLLAPSE)) + #define XLAT_STR_10 STRINGIFY(NET_IPV4_TCP_RETRANS_COLLAPSE) XLAT(NET_IPV4_DEFAULT_TTL), + #define XLAT_VAL_11 ((unsigned) (NET_IPV4_DEFAULT_TTL)) + #define XLAT_STR_11 STRINGIFY(NET_IPV4_DEFAULT_TTL) XLAT(NET_IPV4_AUTOCONFIG), + #define XLAT_VAL_12 ((unsigned) (NET_IPV4_AUTOCONFIG)) + #define XLAT_STR_12 STRINGIFY(NET_IPV4_AUTOCONFIG) XLAT(NET_IPV4_NO_PMTU_DISC), + #define XLAT_VAL_13 ((unsigned) (NET_IPV4_NO_PMTU_DISC)) + #define XLAT_STR_13 STRINGIFY(NET_IPV4_NO_PMTU_DISC) XLAT(NET_IPV4_TCP_SYN_RETRIES), + #define XLAT_VAL_14 ((unsigned) (NET_IPV4_TCP_SYN_RETRIES)) + #define XLAT_STR_14 STRINGIFY(NET_IPV4_TCP_SYN_RETRIES) XLAT(NET_IPV4_IPFRAG_HIGH_THRESH), + #define XLAT_VAL_15 ((unsigned) (NET_IPV4_IPFRAG_HIGH_THRESH)) + #define XLAT_STR_15 STRINGIFY(NET_IPV4_IPFRAG_HIGH_THRESH) XLAT(NET_IPV4_IPFRAG_LOW_THRESH), + #define XLAT_VAL_16 ((unsigned) (NET_IPV4_IPFRAG_LOW_THRESH)) + #define XLAT_STR_16 STRINGIFY(NET_IPV4_IPFRAG_LOW_THRESH) XLAT(NET_IPV4_IPFRAG_TIME), + #define XLAT_VAL_17 ((unsigned) (NET_IPV4_IPFRAG_TIME)) + #define XLAT_STR_17 STRINGIFY(NET_IPV4_IPFRAG_TIME) XLAT(NET_IPV4_TCP_MAX_KA_PROBES), + #define XLAT_VAL_18 ((unsigned) (NET_IPV4_TCP_MAX_KA_PROBES)) + #define XLAT_STR_18 STRINGIFY(NET_IPV4_TCP_MAX_KA_PROBES) XLAT(NET_IPV4_TCP_KEEPALIVE_TIME), + #define XLAT_VAL_19 ((unsigned) (NET_IPV4_TCP_KEEPALIVE_TIME)) + #define XLAT_STR_19 STRINGIFY(NET_IPV4_TCP_KEEPALIVE_TIME) XLAT(NET_IPV4_TCP_KEEPALIVE_PROBES), + #define XLAT_VAL_20 ((unsigned) (NET_IPV4_TCP_KEEPALIVE_PROBES)) + #define XLAT_STR_20 STRINGIFY(NET_IPV4_TCP_KEEPALIVE_PROBES) XLAT(NET_IPV4_TCP_RETRIES1), + #define XLAT_VAL_21 ((unsigned) (NET_IPV4_TCP_RETRIES1)) + #define XLAT_STR_21 STRINGIFY(NET_IPV4_TCP_RETRIES1) XLAT(NET_IPV4_TCP_RETRIES2), + #define XLAT_VAL_22 ((unsigned) (NET_IPV4_TCP_RETRIES2)) + #define XLAT_STR_22 STRINGIFY(NET_IPV4_TCP_RETRIES2) XLAT(NET_IPV4_TCP_FIN_TIMEOUT), + #define XLAT_VAL_23 ((unsigned) (NET_IPV4_TCP_FIN_TIMEOUT)) + #define XLAT_STR_23 STRINGIFY(NET_IPV4_TCP_FIN_TIMEOUT) XLAT(NET_IPV4_IP_MASQ_DEBUG), + #define XLAT_VAL_24 ((unsigned) (NET_IPV4_IP_MASQ_DEBUG)) + #define XLAT_STR_24 STRINGIFY(NET_IPV4_IP_MASQ_DEBUG) XLAT(NET_TCP_SYNCOOKIES), + #define XLAT_VAL_25 ((unsigned) (NET_TCP_SYNCOOKIES)) + #define XLAT_STR_25 STRINGIFY(NET_TCP_SYNCOOKIES) XLAT(NET_TCP_STDURG), + #define XLAT_VAL_26 ((unsigned) (NET_TCP_STDURG)) + #define XLAT_STR_26 STRINGIFY(NET_TCP_STDURG) XLAT(NET_TCP_RFC1337), + #define XLAT_VAL_27 ((unsigned) (NET_TCP_RFC1337)) + #define XLAT_STR_27 STRINGIFY(NET_TCP_RFC1337) XLAT(NET_TCP_SYN_TAILDROP), + #define XLAT_VAL_28 ((unsigned) (NET_TCP_SYN_TAILDROP)) + #define XLAT_STR_28 STRINGIFY(NET_TCP_SYN_TAILDROP) XLAT(NET_TCP_MAX_SYN_BACKLOG), + #define XLAT_VAL_29 ((unsigned) (NET_TCP_MAX_SYN_BACKLOG)) + #define XLAT_STR_29 STRINGIFY(NET_TCP_MAX_SYN_BACKLOG) XLAT(NET_IPV4_LOCAL_PORT_RANGE), + #define XLAT_VAL_30 ((unsigned) (NET_IPV4_LOCAL_PORT_RANGE)) + #define XLAT_STR_30 STRINGIFY(NET_IPV4_LOCAL_PORT_RANGE) XLAT(NET_IPV4_ICMP_ECHO_IGNORE_ALL), + #define XLAT_VAL_31 ((unsigned) (NET_IPV4_ICMP_ECHO_IGNORE_ALL)) + #define XLAT_STR_31 STRINGIFY(NET_IPV4_ICMP_ECHO_IGNORE_ALL) XLAT(NET_IPV4_ICMP_ECHO_IGNORE_BROADCASTS), + #define XLAT_VAL_32 ((unsigned) (NET_IPV4_ICMP_ECHO_IGNORE_BROADCASTS)) + #define XLAT_STR_32 STRINGIFY(NET_IPV4_ICMP_ECHO_IGNORE_BROADCASTS) XLAT(NET_IPV4_ICMP_SOURCEQUENCH_RATE), + #define XLAT_VAL_33 ((unsigned) (NET_IPV4_ICMP_SOURCEQUENCH_RATE)) + #define XLAT_STR_33 STRINGIFY(NET_IPV4_ICMP_SOURCEQUENCH_RATE) XLAT(NET_IPV4_ICMP_DESTUNREACH_RATE), + #define XLAT_VAL_34 ((unsigned) (NET_IPV4_ICMP_DESTUNREACH_RATE)) + #define XLAT_STR_34 STRINGIFY(NET_IPV4_ICMP_DESTUNREACH_RATE) XLAT(NET_IPV4_ICMP_TIMEEXCEED_RATE), + #define XLAT_VAL_35 ((unsigned) (NET_IPV4_ICMP_TIMEEXCEED_RATE)) + #define XLAT_STR_35 STRINGIFY(NET_IPV4_ICMP_TIMEEXCEED_RATE) XLAT(NET_IPV4_ICMP_PARAMPROB_RATE), + #define XLAT_VAL_36 ((unsigned) (NET_IPV4_ICMP_PARAMPROB_RATE)) + #define XLAT_STR_36 STRINGIFY(NET_IPV4_ICMP_PARAMPROB_RATE) XLAT(NET_IPV4_ICMP_ECHOREPLY_RATE), + #define XLAT_VAL_37 ((unsigned) (NET_IPV4_ICMP_ECHOREPLY_RATE)) + #define XLAT_STR_37 STRINGIFY(NET_IPV4_ICMP_ECHOREPLY_RATE) XLAT(NET_IPV4_ICMP_IGNORE_BOGUS_ERROR_RESPONSES), + #define XLAT_VAL_38 ((unsigned) (NET_IPV4_ICMP_IGNORE_BOGUS_ERROR_RESPONSES)) + #define XLAT_STR_38 STRINGIFY(NET_IPV4_ICMP_IGNORE_BOGUS_ERROR_RESPONSES) XLAT(NET_IPV4_IGMP_MAX_MEMBERSHIPS), + #define XLAT_VAL_39 ((unsigned) (NET_IPV4_IGMP_MAX_MEMBERSHIPS)) + #define XLAT_STR_39 STRINGIFY(NET_IPV4_IGMP_MAX_MEMBERSHIPS) XLAT(NET_TCP_TW_RECYCLE), + #define XLAT_VAL_40 ((unsigned) (NET_TCP_TW_RECYCLE)) + #define XLAT_STR_40 STRINGIFY(NET_TCP_TW_RECYCLE) XLAT(NET_IPV4_ALWAYS_DEFRAG), + #define XLAT_VAL_41 ((unsigned) (NET_IPV4_ALWAYS_DEFRAG)) + #define XLAT_STR_41 STRINGIFY(NET_IPV4_ALWAYS_DEFRAG) XLAT(NET_IPV4_TCP_KEEPALIVE_INTVL), + #define XLAT_VAL_42 ((unsigned) (NET_IPV4_TCP_KEEPALIVE_INTVL)) + #define XLAT_STR_42 STRINGIFY(NET_IPV4_TCP_KEEPALIVE_INTVL) XLAT(NET_IPV4_INET_PEER_THRESHOLD), + #define XLAT_VAL_43 ((unsigned) (NET_IPV4_INET_PEER_THRESHOLD)) + #define XLAT_STR_43 STRINGIFY(NET_IPV4_INET_PEER_THRESHOLD) XLAT(NET_IPV4_INET_PEER_MINTTL), + #define XLAT_VAL_44 ((unsigned) (NET_IPV4_INET_PEER_MINTTL)) + #define XLAT_STR_44 STRINGIFY(NET_IPV4_INET_PEER_MINTTL) XLAT(NET_IPV4_INET_PEER_MAXTTL), + #define XLAT_VAL_45 ((unsigned) (NET_IPV4_INET_PEER_MAXTTL)) + #define XLAT_STR_45 STRINGIFY(NET_IPV4_INET_PEER_MAXTTL) XLAT(NET_IPV4_INET_PEER_GC_MINTIME), + #define XLAT_VAL_46 ((unsigned) (NET_IPV4_INET_PEER_GC_MINTIME)) + #define XLAT_STR_46 STRINGIFY(NET_IPV4_INET_PEER_GC_MINTIME) XLAT(NET_IPV4_INET_PEER_GC_MAXTIME), + #define XLAT_VAL_47 ((unsigned) (NET_IPV4_INET_PEER_GC_MAXTIME)) + #define XLAT_STR_47 STRINGIFY(NET_IPV4_INET_PEER_GC_MAXTIME) XLAT(NET_TCP_ORPHAN_RETRIES), + #define XLAT_VAL_48 ((unsigned) (NET_TCP_ORPHAN_RETRIES)) + #define XLAT_STR_48 STRINGIFY(NET_TCP_ORPHAN_RETRIES) XLAT(NET_TCP_ABORT_ON_OVERFLOW), + #define XLAT_VAL_49 ((unsigned) (NET_TCP_ABORT_ON_OVERFLOW)) + #define XLAT_STR_49 STRINGIFY(NET_TCP_ABORT_ON_OVERFLOW) XLAT(NET_TCP_SYNACK_RETRIES), + #define XLAT_VAL_50 ((unsigned) (NET_TCP_SYNACK_RETRIES)) + #define XLAT_STR_50 STRINGIFY(NET_TCP_SYNACK_RETRIES) XLAT(NET_TCP_MAX_ORPHANS), + #define XLAT_VAL_51 ((unsigned) (NET_TCP_MAX_ORPHANS)) + #define XLAT_STR_51 STRINGIFY(NET_TCP_MAX_ORPHANS) XLAT(NET_TCP_MAX_TW_BUCKETS), + #define XLAT_VAL_52 ((unsigned) (NET_TCP_MAX_TW_BUCKETS)) + #define XLAT_STR_52 STRINGIFY(NET_TCP_MAX_TW_BUCKETS) XLAT(NET_TCP_FACK), + #define XLAT_VAL_53 ((unsigned) (NET_TCP_FACK)) + #define XLAT_STR_53 STRINGIFY(NET_TCP_FACK) XLAT(NET_TCP_REORDERING), + #define XLAT_VAL_54 ((unsigned) (NET_TCP_REORDERING)) + #define XLAT_STR_54 STRINGIFY(NET_TCP_REORDERING) XLAT(NET_TCP_ECN), + #define XLAT_VAL_55 ((unsigned) (NET_TCP_ECN)) + #define XLAT_STR_55 STRINGIFY(NET_TCP_ECN) XLAT(NET_TCP_DSACK), + #define XLAT_VAL_56 ((unsigned) (NET_TCP_DSACK)) + #define XLAT_STR_56 STRINGIFY(NET_TCP_DSACK) XLAT(NET_TCP_MEM), + #define XLAT_VAL_57 ((unsigned) (NET_TCP_MEM)) + #define XLAT_STR_57 STRINGIFY(NET_TCP_MEM) XLAT(NET_TCP_WMEM), + #define XLAT_VAL_58 ((unsigned) (NET_TCP_WMEM)) + #define XLAT_STR_58 STRINGIFY(NET_TCP_WMEM) XLAT(NET_TCP_RMEM), + #define XLAT_VAL_59 ((unsigned) (NET_TCP_RMEM)) + #define XLAT_STR_59 STRINGIFY(NET_TCP_RMEM) XLAT(NET_TCP_APP_WIN), + #define XLAT_VAL_60 ((unsigned) (NET_TCP_APP_WIN)) + #define XLAT_STR_60 STRINGIFY(NET_TCP_APP_WIN) XLAT(NET_TCP_ADV_WIN_SCALE), + #define XLAT_VAL_61 ((unsigned) (NET_TCP_ADV_WIN_SCALE)) + #define XLAT_STR_61 STRINGIFY(NET_TCP_ADV_WIN_SCALE) XLAT(NET_IPV4_NONLOCAL_BIND), + #define XLAT_VAL_62 ((unsigned) (NET_IPV4_NONLOCAL_BIND)) + #define XLAT_STR_62 STRINGIFY(NET_IPV4_NONLOCAL_BIND) XLAT(NET_IPV4_ICMP_RATELIMIT), + #define XLAT_VAL_63 ((unsigned) (NET_IPV4_ICMP_RATELIMIT)) + #define XLAT_STR_63 STRINGIFY(NET_IPV4_ICMP_RATELIMIT) XLAT(NET_IPV4_ICMP_RATEMASK), + #define XLAT_VAL_64 ((unsigned) (NET_IPV4_ICMP_RATEMASK)) + #define XLAT_STR_64 STRINGIFY(NET_IPV4_ICMP_RATEMASK) XLAT(NET_TCP_TW_REUSE), + #define XLAT_VAL_65 ((unsigned) (NET_TCP_TW_REUSE)) + #define XLAT_STR_65 STRINGIFY(NET_TCP_TW_REUSE) XLAT(NET_TCP_FRTO), + #define XLAT_VAL_66 ((unsigned) (NET_TCP_FRTO)) + #define XLAT_STR_66 STRINGIFY(NET_TCP_FRTO) XLAT(NET_TCP_LOW_LATENCY), + #define XLAT_VAL_67 ((unsigned) (NET_TCP_LOW_LATENCY)) + #define XLAT_STR_67 STRINGIFY(NET_TCP_LOW_LATENCY) XLAT(NET_IPV4_IPFRAG_SECRET_INTERVAL), + #define XLAT_VAL_68 ((unsigned) (NET_IPV4_IPFRAG_SECRET_INTERVAL)) + #define XLAT_STR_68 STRINGIFY(NET_IPV4_IPFRAG_SECRET_INTERVAL) #if defined(NET_IPV4_IGMP_MAX_MSF) || (defined(HAVE_DECL_NET_IPV4_IGMP_MAX_MSF) && HAVE_DECL_NET_IPV4_IGMP_MAX_MSF) XLAT(NET_IPV4_IGMP_MAX_MSF), + #define XLAT_VAL_69 ((unsigned) (NET_IPV4_IGMP_MAX_MSF)) + #define XLAT_STR_69 STRINGIFY(NET_IPV4_IGMP_MAX_MSF) #endif #if defined(NET_TCP_NO_METRICS_SAVE) || (defined(HAVE_DECL_NET_TCP_NO_METRICS_SAVE) && HAVE_DECL_NET_TCP_NO_METRICS_SAVE) XLAT(NET_TCP_NO_METRICS_SAVE), + #define XLAT_VAL_70 ((unsigned) (NET_TCP_NO_METRICS_SAVE)) + #define XLAT_STR_70 STRINGIFY(NET_TCP_NO_METRICS_SAVE) #endif #if defined(NET_TCP_DEFAULT_WIN_SCALE) || (defined(HAVE_DECL_NET_TCP_DEFAULT_WIN_SCALE) && HAVE_DECL_NET_TCP_DEFAULT_WIN_SCALE) XLAT(NET_TCP_DEFAULT_WIN_SCALE), + #define XLAT_VAL_71 ((unsigned) (NET_TCP_DEFAULT_WIN_SCALE)) + #define XLAT_STR_71 STRINGIFY(NET_TCP_DEFAULT_WIN_SCALE) #endif #if defined(NET_TCP_MODERATE_RCVBUF) || (defined(HAVE_DECL_NET_TCP_MODERATE_RCVBUF) && HAVE_DECL_NET_TCP_MODERATE_RCVBUF) XLAT(NET_TCP_MODERATE_RCVBUF), + #define XLAT_VAL_72 ((unsigned) (NET_TCP_MODERATE_RCVBUF)) + #define XLAT_STR_72 STRINGIFY(NET_TCP_MODERATE_RCVBUF) #endif #if defined(NET_TCP_TSO_WIN_DIVISOR) || (defined(HAVE_DECL_NET_TCP_TSO_WIN_DIVISOR) && HAVE_DECL_NET_TCP_TSO_WIN_DIVISOR) XLAT(NET_TCP_TSO_WIN_DIVISOR), + #define XLAT_VAL_73 ((unsigned) (NET_TCP_TSO_WIN_DIVISOR)) + #define XLAT_STR_73 STRINGIFY(NET_TCP_TSO_WIN_DIVISOR) #endif #if defined(NET_TCP_BIC_BETA) || (defined(HAVE_DECL_NET_TCP_BIC_BETA) && HAVE_DECL_NET_TCP_BIC_BETA) XLAT(NET_TCP_BIC_BETA), + #define XLAT_VAL_74 ((unsigned) (NET_TCP_BIC_BETA)) + #define XLAT_STR_74 STRINGIFY(NET_TCP_BIC_BETA) #endif #if defined(NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR) || (defined(HAVE_DECL_NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR) && HAVE_DECL_NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR) XLAT(NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR), + #define XLAT_VAL_75 ((unsigned) (NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR)) + #define XLAT_STR_75 STRINGIFY(NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR) #endif #if defined(NET_TCP_CONG_CONTROL) || (defined(HAVE_DECL_NET_TCP_CONG_CONTROL) && HAVE_DECL_NET_TCP_CONG_CONTROL) XLAT(NET_TCP_CONG_CONTROL), + #define XLAT_VAL_76 ((unsigned) (NET_TCP_CONG_CONTROL)) + #define XLAT_STR_76 STRINGIFY(NET_TCP_CONG_CONTROL) #endif #if defined(NET_TCP_ABC) || (defined(HAVE_DECL_NET_TCP_ABC) && HAVE_DECL_NET_TCP_ABC) XLAT(NET_TCP_ABC), + #define XLAT_VAL_77 ((unsigned) (NET_TCP_ABC)) + #define XLAT_STR_77 STRINGIFY(NET_TCP_ABC) #endif #if defined(NET_IPV4_IPFRAG_MAX_DIST) || (defined(HAVE_DECL_NET_IPV4_IPFRAG_MAX_DIST) && HAVE_DECL_NET_IPV4_IPFRAG_MAX_DIST) XLAT(NET_IPV4_IPFRAG_MAX_DIST), + #define XLAT_VAL_78 ((unsigned) (NET_IPV4_IPFRAG_MAX_DIST)) + #define XLAT_STR_78 STRINGIFY(NET_IPV4_IPFRAG_MAX_DIST) #endif #if defined(NET_TCP_MTU_PROBING) || (defined(HAVE_DECL_NET_TCP_MTU_PROBING) && HAVE_DECL_NET_TCP_MTU_PROBING) XLAT(NET_TCP_MTU_PROBING), + #define XLAT_VAL_79 ((unsigned) (NET_TCP_MTU_PROBING)) + #define XLAT_STR_79 STRINGIFY(NET_TCP_MTU_PROBING) #endif #if defined(NET_TCP_BASE_MSS) || (defined(HAVE_DECL_NET_TCP_BASE_MSS) && HAVE_DECL_NET_TCP_BASE_MSS) XLAT(NET_TCP_BASE_MSS), + #define XLAT_VAL_80 ((unsigned) (NET_TCP_BASE_MSS)) + #define XLAT_STR_80 STRINGIFY(NET_TCP_BASE_MSS) #endif #if defined(NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS) || (defined(HAVE_DECL_NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS) && HAVE_DECL_NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS) XLAT(NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS), + #define XLAT_VAL_81 ((unsigned) (NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS)) + #define XLAT_STR_81 STRINGIFY(NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS) #endif #if defined(NET_TCP_DMA_COPYBREAK) || (defined(HAVE_DECL_NET_TCP_DMA_COPYBREAK) && HAVE_DECL_NET_TCP_DMA_COPYBREAK) XLAT(NET_TCP_DMA_COPYBREAK), + #define XLAT_VAL_82 ((unsigned) (NET_TCP_DMA_COPYBREAK)) + #define XLAT_STR_82 STRINGIFY(NET_TCP_DMA_COPYBREAK) #endif #if defined(NET_TCP_SLOW_START_AFTER_IDLE) || (defined(HAVE_DECL_NET_TCP_SLOW_START_AFTER_IDLE) && HAVE_DECL_NET_TCP_SLOW_START_AFTER_IDLE) XLAT(NET_TCP_SLOW_START_AFTER_IDLE), + #define XLAT_VAL_83 ((unsigned) (NET_TCP_SLOW_START_AFTER_IDLE)) + #define XLAT_STR_83 STRINGIFY(NET_TCP_SLOW_START_AFTER_IDLE) #endif #if defined(NET_CIPSOV4_CACHE_ENABLE) || (defined(HAVE_DECL_NET_CIPSOV4_CACHE_ENABLE) && HAVE_DECL_NET_CIPSOV4_CACHE_ENABLE) XLAT(NET_CIPSOV4_CACHE_ENABLE), + #define XLAT_VAL_84 ((unsigned) (NET_CIPSOV4_CACHE_ENABLE)) + #define XLAT_STR_84 STRINGIFY(NET_CIPSOV4_CACHE_ENABLE) #endif #if defined(NET_CIPSOV4_CACHE_BUCKET_SIZE) || (defined(HAVE_DECL_NET_CIPSOV4_CACHE_BUCKET_SIZE) && HAVE_DECL_NET_CIPSOV4_CACHE_BUCKET_SIZE) XLAT(NET_CIPSOV4_CACHE_BUCKET_SIZE), + #define XLAT_VAL_85 ((unsigned) (NET_CIPSOV4_CACHE_BUCKET_SIZE)) + #define XLAT_STR_85 STRINGIFY(NET_CIPSOV4_CACHE_BUCKET_SIZE) #endif #if defined(NET_CIPSOV4_RBM_OPTFMT) || (defined(HAVE_DECL_NET_CIPSOV4_RBM_OPTFMT) && HAVE_DECL_NET_CIPSOV4_RBM_OPTFMT) XLAT(NET_CIPSOV4_RBM_OPTFMT), + #define XLAT_VAL_86 ((unsigned) (NET_CIPSOV4_RBM_OPTFMT)) + #define XLAT_STR_86 STRINGIFY(NET_CIPSOV4_RBM_OPTFMT) #endif #if defined(NET_CIPSOV4_RBM_STRICTVALID) || (defined(HAVE_DECL_NET_CIPSOV4_RBM_STRICTVALID) && HAVE_DECL_NET_CIPSOV4_RBM_STRICTVALID) XLAT(NET_CIPSOV4_RBM_STRICTVALID), + #define XLAT_VAL_87 ((unsigned) (NET_CIPSOV4_RBM_STRICTVALID)) + #define XLAT_STR_87 STRINGIFY(NET_CIPSOV4_RBM_STRICTVALID) #endif #if defined(NET_TCP_AVAIL_CONG_CONTROL) || (defined(HAVE_DECL_NET_TCP_AVAIL_CONG_CONTROL) && HAVE_DECL_NET_TCP_AVAIL_CONG_CONTROL) XLAT(NET_TCP_AVAIL_CONG_CONTROL), + #define XLAT_VAL_88 ((unsigned) (NET_TCP_AVAIL_CONG_CONTROL)) + #define XLAT_STR_88 STRINGIFY(NET_TCP_AVAIL_CONG_CONTROL) #endif #if defined(NET_TCP_ALLOWED_CONG_CONTROL) || (defined(HAVE_DECL_NET_TCP_ALLOWED_CONG_CONTROL) && HAVE_DECL_NET_TCP_ALLOWED_CONG_CONTROL) XLAT(NET_TCP_ALLOWED_CONG_CONTROL), + #define XLAT_VAL_89 ((unsigned) (NET_TCP_ALLOWED_CONG_CONTROL)) + #define XLAT_STR_89 STRINGIFY(NET_TCP_ALLOWED_CONG_CONTROL) #endif #if defined(NET_TCP_MAX_SSTHRESH) || (defined(HAVE_DECL_NET_TCP_MAX_SSTHRESH) && HAVE_DECL_NET_TCP_MAX_SSTHRESH) XLAT(NET_TCP_MAX_SSTHRESH), + #define XLAT_VAL_90 ((unsigned) (NET_TCP_MAX_SSTHRESH)) + #define XLAT_STR_90 STRINGIFY(NET_TCP_MAX_SSTHRESH) #endif #if defined(NET_TCP_FRTO_RESPONSE) || (defined(HAVE_DECL_NET_TCP_FRTO_RESPONSE) && HAVE_DECL_NET_TCP_FRTO_RESPONSE) XLAT(NET_TCP_FRTO_RESPONSE), + #define XLAT_VAL_91 ((unsigned) (NET_TCP_FRTO_RESPONSE)) + #define XLAT_STR_91 STRINGIFY(NET_TCP_FRTO_RESPONSE) #endif - XLAT_END }; +static +const struct xlat sysctl_net_ipv4[1] = { { + .data = sysctl_net_ipv4_xdata, + .size = ARRAY_SIZE(sysctl_net_ipv4_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif +# ifdef XLAT_VAL_41 + | XLAT_VAL_41 +# endif +# ifdef XLAT_VAL_42 + | XLAT_VAL_42 +# endif +# ifdef XLAT_VAL_43 + | XLAT_VAL_43 +# endif +# ifdef XLAT_VAL_44 + | XLAT_VAL_44 +# endif +# ifdef XLAT_VAL_45 + | XLAT_VAL_45 +# endif +# ifdef XLAT_VAL_46 + | XLAT_VAL_46 +# endif +# ifdef XLAT_VAL_47 + | XLAT_VAL_47 +# endif +# ifdef XLAT_VAL_48 + | XLAT_VAL_48 +# endif +# ifdef XLAT_VAL_49 + | XLAT_VAL_49 +# endif +# ifdef XLAT_VAL_50 + | XLAT_VAL_50 +# endif +# ifdef XLAT_VAL_51 + | XLAT_VAL_51 +# endif +# ifdef XLAT_VAL_52 + | XLAT_VAL_52 +# endif +# ifdef XLAT_VAL_53 + | XLAT_VAL_53 +# endif +# ifdef XLAT_VAL_54 + | XLAT_VAL_54 +# endif +# ifdef XLAT_VAL_55 + | XLAT_VAL_55 +# endif +# ifdef XLAT_VAL_56 + | XLAT_VAL_56 +# endif +# ifdef XLAT_VAL_57 + | XLAT_VAL_57 +# endif +# ifdef XLAT_VAL_58 + | XLAT_VAL_58 +# endif +# ifdef XLAT_VAL_59 + | XLAT_VAL_59 +# endif +# ifdef XLAT_VAL_60 + | XLAT_VAL_60 +# endif +# ifdef XLAT_VAL_61 + | XLAT_VAL_61 +# endif +# ifdef XLAT_VAL_62 + | XLAT_VAL_62 +# endif +# ifdef XLAT_VAL_63 + | XLAT_VAL_63 +# endif +# ifdef XLAT_VAL_64 + | XLAT_VAL_64 +# endif +# ifdef XLAT_VAL_65 + | XLAT_VAL_65 +# endif +# ifdef XLAT_VAL_66 + | XLAT_VAL_66 +# endif +# ifdef XLAT_VAL_67 + | XLAT_VAL_67 +# endif +# ifdef XLAT_VAL_68 + | XLAT_VAL_68 +# endif +# ifdef XLAT_VAL_69 + | XLAT_VAL_69 +# endif +# ifdef XLAT_VAL_70 + | XLAT_VAL_70 +# endif +# ifdef XLAT_VAL_71 + | XLAT_VAL_71 +# endif +# ifdef XLAT_VAL_72 + | XLAT_VAL_72 +# endif +# ifdef XLAT_VAL_73 + | XLAT_VAL_73 +# endif +# ifdef XLAT_VAL_74 + | XLAT_VAL_74 +# endif +# ifdef XLAT_VAL_75 + | XLAT_VAL_75 +# endif +# ifdef XLAT_VAL_76 + | XLAT_VAL_76 +# endif +# ifdef XLAT_VAL_77 + | XLAT_VAL_77 +# endif +# ifdef XLAT_VAL_78 + | XLAT_VAL_78 +# endif +# ifdef XLAT_VAL_79 + | XLAT_VAL_79 +# endif +# ifdef XLAT_VAL_80 + | XLAT_VAL_80 +# endif +# ifdef XLAT_VAL_81 + | XLAT_VAL_81 +# endif +# ifdef XLAT_VAL_82 + | XLAT_VAL_82 +# endif +# ifdef XLAT_VAL_83 + | XLAT_VAL_83 +# endif +# ifdef XLAT_VAL_84 + | XLAT_VAL_84 +# endif +# ifdef XLAT_VAL_85 + | XLAT_VAL_85 +# endif +# ifdef XLAT_VAL_86 + | XLAT_VAL_86 +# endif +# ifdef XLAT_VAL_87 + | XLAT_VAL_87 +# endif +# ifdef XLAT_VAL_88 + | XLAT_VAL_88 +# endif +# ifdef XLAT_VAL_89 + | XLAT_VAL_89 +# endif +# ifdef XLAT_VAL_90 + | XLAT_VAL_90 +# endif +# ifdef XLAT_VAL_91 + | XLAT_VAL_91 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif +# ifdef XLAT_STR_41 + + sizeof(XLAT_STR_41) +# endif +# ifdef XLAT_STR_42 + + sizeof(XLAT_STR_42) +# endif +# ifdef XLAT_STR_43 + + sizeof(XLAT_STR_43) +# endif +# ifdef XLAT_STR_44 + + sizeof(XLAT_STR_44) +# endif +# ifdef XLAT_STR_45 + + sizeof(XLAT_STR_45) +# endif +# ifdef XLAT_STR_46 + + sizeof(XLAT_STR_46) +# endif +# ifdef XLAT_STR_47 + + sizeof(XLAT_STR_47) +# endif +# ifdef XLAT_STR_48 + + sizeof(XLAT_STR_48) +# endif +# ifdef XLAT_STR_49 + + sizeof(XLAT_STR_49) +# endif +# ifdef XLAT_STR_50 + + sizeof(XLAT_STR_50) +# endif +# ifdef XLAT_STR_51 + + sizeof(XLAT_STR_51) +# endif +# ifdef XLAT_STR_52 + + sizeof(XLAT_STR_52) +# endif +# ifdef XLAT_STR_53 + + sizeof(XLAT_STR_53) +# endif +# ifdef XLAT_STR_54 + + sizeof(XLAT_STR_54) +# endif +# ifdef XLAT_STR_55 + + sizeof(XLAT_STR_55) +# endif +# ifdef XLAT_STR_56 + + sizeof(XLAT_STR_56) +# endif +# ifdef XLAT_STR_57 + + sizeof(XLAT_STR_57) +# endif +# ifdef XLAT_STR_58 + + sizeof(XLAT_STR_58) +# endif +# ifdef XLAT_STR_59 + + sizeof(XLAT_STR_59) +# endif +# ifdef XLAT_STR_60 + + sizeof(XLAT_STR_60) +# endif +# ifdef XLAT_STR_61 + + sizeof(XLAT_STR_61) +# endif +# ifdef XLAT_STR_62 + + sizeof(XLAT_STR_62) +# endif +# ifdef XLAT_STR_63 + + sizeof(XLAT_STR_63) +# endif +# ifdef XLAT_STR_64 + + sizeof(XLAT_STR_64) +# endif +# ifdef XLAT_STR_65 + + sizeof(XLAT_STR_65) +# endif +# ifdef XLAT_STR_66 + + sizeof(XLAT_STR_66) +# endif +# ifdef XLAT_STR_67 + + sizeof(XLAT_STR_67) +# endif +# ifdef XLAT_STR_68 + + sizeof(XLAT_STR_68) +# endif +# ifdef XLAT_STR_69 + + sizeof(XLAT_STR_69) +# endif +# ifdef XLAT_STR_70 + + sizeof(XLAT_STR_70) +# endif +# ifdef XLAT_STR_71 + + sizeof(XLAT_STR_71) +# endif +# ifdef XLAT_STR_72 + + sizeof(XLAT_STR_72) +# endif +# ifdef XLAT_STR_73 + + sizeof(XLAT_STR_73) +# endif +# ifdef XLAT_STR_74 + + sizeof(XLAT_STR_74) +# endif +# ifdef XLAT_STR_75 + + sizeof(XLAT_STR_75) +# endif +# ifdef XLAT_STR_76 + + sizeof(XLAT_STR_76) +# endif +# ifdef XLAT_STR_77 + + sizeof(XLAT_STR_77) +# endif +# ifdef XLAT_STR_78 + + sizeof(XLAT_STR_78) +# endif +# ifdef XLAT_STR_79 + + sizeof(XLAT_STR_79) +# endif +# ifdef XLAT_STR_80 + + sizeof(XLAT_STR_80) +# endif +# ifdef XLAT_STR_81 + + sizeof(XLAT_STR_81) +# endif +# ifdef XLAT_STR_82 + + sizeof(XLAT_STR_82) +# endif +# ifdef XLAT_STR_83 + + sizeof(XLAT_STR_83) +# endif +# ifdef XLAT_STR_84 + + sizeof(XLAT_STR_84) +# endif +# ifdef XLAT_STR_85 + + sizeof(XLAT_STR_85) +# endif +# ifdef XLAT_STR_86 + + sizeof(XLAT_STR_86) +# endif +# ifdef XLAT_STR_87 + + sizeof(XLAT_STR_87) +# endif +# ifdef XLAT_STR_88 + + sizeof(XLAT_STR_88) +# endif +# ifdef XLAT_STR_89 + + sizeof(XLAT_STR_89) +# endif +# ifdef XLAT_STR_90 + + sizeof(XLAT_STR_90) +# endif +# ifdef XLAT_STR_91 + + sizeof(XLAT_STR_91) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 +# undef XLAT_STR_41 +# undef XLAT_VAL_41 +# undef XLAT_STR_42 +# undef XLAT_VAL_42 +# undef XLAT_STR_43 +# undef XLAT_VAL_43 +# undef XLAT_STR_44 +# undef XLAT_VAL_44 +# undef XLAT_STR_45 +# undef XLAT_VAL_45 +# undef XLAT_STR_46 +# undef XLAT_VAL_46 +# undef XLAT_STR_47 +# undef XLAT_VAL_47 +# undef XLAT_STR_48 +# undef XLAT_VAL_48 +# undef XLAT_STR_49 +# undef XLAT_VAL_49 +# undef XLAT_STR_50 +# undef XLAT_VAL_50 +# undef XLAT_STR_51 +# undef XLAT_VAL_51 +# undef XLAT_STR_52 +# undef XLAT_VAL_52 +# undef XLAT_STR_53 +# undef XLAT_VAL_53 +# undef XLAT_STR_54 +# undef XLAT_VAL_54 +# undef XLAT_STR_55 +# undef XLAT_VAL_55 +# undef XLAT_STR_56 +# undef XLAT_VAL_56 +# undef XLAT_STR_57 +# undef XLAT_VAL_57 +# undef XLAT_STR_58 +# undef XLAT_VAL_58 +# undef XLAT_STR_59 +# undef XLAT_VAL_59 +# undef XLAT_STR_60 +# undef XLAT_VAL_60 +# undef XLAT_STR_61 +# undef XLAT_VAL_61 +# undef XLAT_STR_62 +# undef XLAT_VAL_62 +# undef XLAT_STR_63 +# undef XLAT_VAL_63 +# undef XLAT_STR_64 +# undef XLAT_VAL_64 +# undef XLAT_STR_65 +# undef XLAT_VAL_65 +# undef XLAT_STR_66 +# undef XLAT_VAL_66 +# undef XLAT_STR_67 +# undef XLAT_VAL_67 +# undef XLAT_STR_68 +# undef XLAT_VAL_68 +# undef XLAT_STR_69 +# undef XLAT_VAL_69 +# undef XLAT_STR_70 +# undef XLAT_VAL_70 +# undef XLAT_STR_71 +# undef XLAT_VAL_71 +# undef XLAT_STR_72 +# undef XLAT_VAL_72 +# undef XLAT_STR_73 +# undef XLAT_VAL_73 +# undef XLAT_STR_74 +# undef XLAT_VAL_74 +# undef XLAT_STR_75 +# undef XLAT_VAL_75 +# undef XLAT_STR_76 +# undef XLAT_VAL_76 +# undef XLAT_STR_77 +# undef XLAT_VAL_77 +# undef XLAT_STR_78 +# undef XLAT_VAL_78 +# undef XLAT_STR_79 +# undef XLAT_VAL_79 +# undef XLAT_STR_80 +# undef XLAT_VAL_80 +# undef XLAT_STR_81 +# undef XLAT_VAL_81 +# undef XLAT_STR_82 +# undef XLAT_VAL_82 +# undef XLAT_STR_83 +# undef XLAT_VAL_83 +# undef XLAT_STR_84 +# undef XLAT_VAL_84 +# undef XLAT_STR_85 +# undef XLAT_VAL_85 +# undef XLAT_STR_86 +# undef XLAT_VAL_86 +# undef XLAT_STR_87 +# undef XLAT_VAL_87 +# undef XLAT_STR_88 +# undef XLAT_VAL_88 +# undef XLAT_STR_89 +# undef XLAT_VAL_89 +# undef XLAT_STR_90 +# undef XLAT_VAL_90 +# undef XLAT_STR_91 +# undef XLAT_VAL_91 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sysctl_net_ipv4.in b/xlat/sysctl_net_ipv4.in index 8f452e85..be0f5ed8 100644 --- a/xlat/sysctl_net_ipv4.in +++ b/xlat/sysctl_net_ipv4.in @@ -1,3 +1,6 @@ +#enum +#include +#include #unconditional NET_IPV4_FORWARD NET_IPV4_DYNADDR diff --git a/xlat/sysctl_net_ipv4.m4 b/xlat/sysctl_net_ipv4.m4 new file mode 100644 index 00000000..1ef7a6a0 --- /dev/null +++ b/xlat/sysctl_net_ipv4.m4 @@ -0,0 +1,99 @@ +dnl Generated by ./xlat/gen.sh from ./xlat/sysctl_net_ipv4.in; do not edit. +AC_DEFUN([st_CHECK_ENUMS_sysctl_net_ipv4],[ +AC_CHECK_DECLS(m4_normalize([ +NET_IPV4_FORWARD, +NET_IPV4_DYNADDR, +NET_IPV4_CONF, +NET_IPV4_NEIGH, +NET_IPV4_ROUTE, +NET_IPV4_FIB_HASH, +NET_IPV4_NETFILTER, +NET_IPV4_TCP_TIMESTAMPS, +NET_IPV4_TCP_WINDOW_SCALING, +NET_IPV4_TCP_SACK, +NET_IPV4_TCP_RETRANS_COLLAPSE, +NET_IPV4_DEFAULT_TTL, +NET_IPV4_AUTOCONFIG, +NET_IPV4_NO_PMTU_DISC, +NET_IPV4_TCP_SYN_RETRIES, +NET_IPV4_IPFRAG_HIGH_THRESH, +NET_IPV4_IPFRAG_LOW_THRESH, +NET_IPV4_IPFRAG_TIME, +NET_IPV4_TCP_MAX_KA_PROBES, +NET_IPV4_TCP_KEEPALIVE_TIME, +NET_IPV4_TCP_KEEPALIVE_PROBES, +NET_IPV4_TCP_RETRIES1, +NET_IPV4_TCP_RETRIES2, +NET_IPV4_TCP_FIN_TIMEOUT, +NET_IPV4_IP_MASQ_DEBUG, +NET_TCP_SYNCOOKIES, +NET_TCP_STDURG, +NET_TCP_RFC1337, +NET_TCP_SYN_TAILDROP, +NET_TCP_MAX_SYN_BACKLOG, +NET_IPV4_LOCAL_PORT_RANGE, +NET_IPV4_ICMP_ECHO_IGNORE_ALL, +NET_IPV4_ICMP_ECHO_IGNORE_BROADCASTS, +NET_IPV4_ICMP_SOURCEQUENCH_RATE, +NET_IPV4_ICMP_DESTUNREACH_RATE, +NET_IPV4_ICMP_TIMEEXCEED_RATE, +NET_IPV4_ICMP_PARAMPROB_RATE, +NET_IPV4_ICMP_ECHOREPLY_RATE, +NET_IPV4_ICMP_IGNORE_BOGUS_ERROR_RESPONSES, +NET_IPV4_IGMP_MAX_MEMBERSHIPS, +NET_TCP_TW_RECYCLE, +NET_IPV4_ALWAYS_DEFRAG, +NET_IPV4_TCP_KEEPALIVE_INTVL, +NET_IPV4_INET_PEER_THRESHOLD, +NET_IPV4_INET_PEER_MINTTL, +NET_IPV4_INET_PEER_MAXTTL, +NET_IPV4_INET_PEER_GC_MINTIME, +NET_IPV4_INET_PEER_GC_MAXTIME, +NET_TCP_ORPHAN_RETRIES, +NET_TCP_ABORT_ON_OVERFLOW, +NET_TCP_SYNACK_RETRIES, +NET_TCP_MAX_ORPHANS, +NET_TCP_MAX_TW_BUCKETS, +NET_TCP_FACK, +NET_TCP_REORDERING, +NET_TCP_ECN, +NET_TCP_DSACK, +NET_TCP_MEM, +NET_TCP_WMEM, +NET_TCP_RMEM, +NET_TCP_APP_WIN, +NET_TCP_ADV_WIN_SCALE, +NET_IPV4_NONLOCAL_BIND, +NET_IPV4_ICMP_RATELIMIT, +NET_IPV4_ICMP_RATEMASK, +NET_TCP_TW_REUSE, +NET_TCP_FRTO, +NET_TCP_LOW_LATENCY, +NET_IPV4_IPFRAG_SECRET_INTERVAL, +NET_IPV4_IGMP_MAX_MSF, +NET_TCP_NO_METRICS_SAVE, +NET_TCP_DEFAULT_WIN_SCALE, +NET_TCP_MODERATE_RCVBUF, +NET_TCP_TSO_WIN_DIVISOR, +NET_TCP_BIC_BETA, +NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR, +NET_TCP_CONG_CONTROL, +NET_TCP_ABC, +NET_IPV4_IPFRAG_MAX_DIST, +NET_TCP_MTU_PROBING, +NET_TCP_BASE_MSS, +NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS, +NET_TCP_DMA_COPYBREAK, +NET_TCP_SLOW_START_AFTER_IDLE, +NET_CIPSOV4_CACHE_ENABLE, +NET_CIPSOV4_CACHE_BUCKET_SIZE, +NET_CIPSOV4_RBM_OPTFMT, +NET_CIPSOV4_RBM_STRICTVALID, +NET_TCP_AVAIL_CONG_CONTROL, +NET_TCP_ALLOWED_CONG_CONTROL, +NET_TCP_MAX_SSTHRESH, +NET_TCP_FRTO_RESPONSE +]),,, [ +#include +#include +])])]) diff --git a/xlat/sysctl_net_ipv4_conf.h b/xlat/sysctl_net_ipv4_conf.h index 892df339..03bb811c 100644 --- a/xlat/sysctl_net_ipv4_conf.h +++ b/xlat/sysctl_net_ipv4_conf.h @@ -12,45 +12,273 @@ # else -static -const struct xlat sysctl_net_ipv4_conf[] = { +static const struct xlat_data sysctl_net_ipv4_conf_xdata[] = { XLAT(NET_IPV4_CONF_FORWARDING), + #define XLAT_VAL_0 ((unsigned) (NET_IPV4_CONF_FORWARDING)) + #define XLAT_STR_0 STRINGIFY(NET_IPV4_CONF_FORWARDING) XLAT(NET_IPV4_CONF_MC_FORWARDING), + #define XLAT_VAL_1 ((unsigned) (NET_IPV4_CONF_MC_FORWARDING)) + #define XLAT_STR_1 STRINGIFY(NET_IPV4_CONF_MC_FORWARDING) XLAT(NET_IPV4_CONF_PROXY_ARP), + #define XLAT_VAL_2 ((unsigned) (NET_IPV4_CONF_PROXY_ARP)) + #define XLAT_STR_2 STRINGIFY(NET_IPV4_CONF_PROXY_ARP) XLAT(NET_IPV4_CONF_ACCEPT_REDIRECTS), + #define XLAT_VAL_3 ((unsigned) (NET_IPV4_CONF_ACCEPT_REDIRECTS)) + #define XLAT_STR_3 STRINGIFY(NET_IPV4_CONF_ACCEPT_REDIRECTS) XLAT(NET_IPV4_CONF_SECURE_REDIRECTS), + #define XLAT_VAL_4 ((unsigned) (NET_IPV4_CONF_SECURE_REDIRECTS)) + #define XLAT_STR_4 STRINGIFY(NET_IPV4_CONF_SECURE_REDIRECTS) XLAT(NET_IPV4_CONF_SEND_REDIRECTS), + #define XLAT_VAL_5 ((unsigned) (NET_IPV4_CONF_SEND_REDIRECTS)) + #define XLAT_STR_5 STRINGIFY(NET_IPV4_CONF_SEND_REDIRECTS) XLAT(NET_IPV4_CONF_SHARED_MEDIA), + #define XLAT_VAL_6 ((unsigned) (NET_IPV4_CONF_SHARED_MEDIA)) + #define XLAT_STR_6 STRINGIFY(NET_IPV4_CONF_SHARED_MEDIA) XLAT(NET_IPV4_CONF_RP_FILTER), + #define XLAT_VAL_7 ((unsigned) (NET_IPV4_CONF_RP_FILTER)) + #define XLAT_STR_7 STRINGIFY(NET_IPV4_CONF_RP_FILTER) XLAT(NET_IPV4_CONF_ACCEPT_SOURCE_ROUTE), + #define XLAT_VAL_8 ((unsigned) (NET_IPV4_CONF_ACCEPT_SOURCE_ROUTE)) + #define XLAT_STR_8 STRINGIFY(NET_IPV4_CONF_ACCEPT_SOURCE_ROUTE) XLAT(NET_IPV4_CONF_BOOTP_RELAY), + #define XLAT_VAL_9 ((unsigned) (NET_IPV4_CONF_BOOTP_RELAY)) + #define XLAT_STR_9 STRINGIFY(NET_IPV4_CONF_BOOTP_RELAY) XLAT(NET_IPV4_CONF_LOG_MARTIANS), + #define XLAT_VAL_10 ((unsigned) (NET_IPV4_CONF_LOG_MARTIANS)) + #define XLAT_STR_10 STRINGIFY(NET_IPV4_CONF_LOG_MARTIANS) XLAT(NET_IPV4_CONF_TAG), + #define XLAT_VAL_11 ((unsigned) (NET_IPV4_CONF_TAG)) + #define XLAT_STR_11 STRINGIFY(NET_IPV4_CONF_TAG) XLAT(NET_IPV4_CONF_ARPFILTER), + #define XLAT_VAL_12 ((unsigned) (NET_IPV4_CONF_ARPFILTER)) + #define XLAT_STR_12 STRINGIFY(NET_IPV4_CONF_ARPFILTER) XLAT(NET_IPV4_CONF_MEDIUM_ID), + #define XLAT_VAL_13 ((unsigned) (NET_IPV4_CONF_MEDIUM_ID)) + #define XLAT_STR_13 STRINGIFY(NET_IPV4_CONF_MEDIUM_ID) XLAT(NET_IPV4_CONF_NOXFRM), + #define XLAT_VAL_14 ((unsigned) (NET_IPV4_CONF_NOXFRM)) + #define XLAT_STR_14 STRINGIFY(NET_IPV4_CONF_NOXFRM) XLAT(NET_IPV4_CONF_NOPOLICY), + #define XLAT_VAL_15 ((unsigned) (NET_IPV4_CONF_NOPOLICY)) + #define XLAT_STR_15 STRINGIFY(NET_IPV4_CONF_NOPOLICY) #if defined(NET_IPV4_CONF_FORCE_IGMP_VERSION) || (defined(HAVE_DECL_NET_IPV4_CONF_FORCE_IGMP_VERSION) && HAVE_DECL_NET_IPV4_CONF_FORCE_IGMP_VERSION) XLAT(NET_IPV4_CONF_FORCE_IGMP_VERSION), + #define XLAT_VAL_16 ((unsigned) (NET_IPV4_CONF_FORCE_IGMP_VERSION)) + #define XLAT_STR_16 STRINGIFY(NET_IPV4_CONF_FORCE_IGMP_VERSION) #endif #if defined(NET_IPV4_CONF_ARP_ANNOUNCE) || (defined(HAVE_DECL_NET_IPV4_CONF_ARP_ANNOUNCE) && HAVE_DECL_NET_IPV4_CONF_ARP_ANNOUNCE) XLAT(NET_IPV4_CONF_ARP_ANNOUNCE), + #define XLAT_VAL_17 ((unsigned) (NET_IPV4_CONF_ARP_ANNOUNCE)) + #define XLAT_STR_17 STRINGIFY(NET_IPV4_CONF_ARP_ANNOUNCE) #endif #if defined(NET_IPV4_CONF_ARP_IGNORE) || (defined(HAVE_DECL_NET_IPV4_CONF_ARP_IGNORE) && HAVE_DECL_NET_IPV4_CONF_ARP_IGNORE) XLAT(NET_IPV4_CONF_ARP_IGNORE), + #define XLAT_VAL_18 ((unsigned) (NET_IPV4_CONF_ARP_IGNORE)) + #define XLAT_STR_18 STRINGIFY(NET_IPV4_CONF_ARP_IGNORE) #endif #if defined(NET_IPV4_CONF_PROMOTE_SECONDARIES) || (defined(HAVE_DECL_NET_IPV4_CONF_PROMOTE_SECONDARIES) && HAVE_DECL_NET_IPV4_CONF_PROMOTE_SECONDARIES) XLAT(NET_IPV4_CONF_PROMOTE_SECONDARIES), + #define XLAT_VAL_19 ((unsigned) (NET_IPV4_CONF_PROMOTE_SECONDARIES)) + #define XLAT_STR_19 STRINGIFY(NET_IPV4_CONF_PROMOTE_SECONDARIES) #endif #if defined(NET_IPV4_CONF_ARP_ACCEPT) || (defined(HAVE_DECL_NET_IPV4_CONF_ARP_ACCEPT) && HAVE_DECL_NET_IPV4_CONF_ARP_ACCEPT) XLAT(NET_IPV4_CONF_ARP_ACCEPT), + #define XLAT_VAL_20 ((unsigned) (NET_IPV4_CONF_ARP_ACCEPT)) + #define XLAT_STR_20 STRINGIFY(NET_IPV4_CONF_ARP_ACCEPT) #endif #if defined(NET_IPV4_CONF_ARP_NOTIFY) || (defined(HAVE_DECL_NET_IPV4_CONF_ARP_NOTIFY) && HAVE_DECL_NET_IPV4_CONF_ARP_NOTIFY) XLAT(NET_IPV4_CONF_ARP_NOTIFY), + #define XLAT_VAL_21 ((unsigned) (NET_IPV4_CONF_ARP_NOTIFY)) + #define XLAT_STR_21 STRINGIFY(NET_IPV4_CONF_ARP_NOTIFY) #endif - XLAT_END }; +static +const struct xlat sysctl_net_ipv4_conf[1] = { { + .data = sysctl_net_ipv4_conf_xdata, + .size = ARRAY_SIZE(sysctl_net_ipv4_conf_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sysctl_net_ipv4_conf.in b/xlat/sysctl_net_ipv4_conf.in index be94bd22..9558be29 100644 --- a/xlat/sysctl_net_ipv4_conf.in +++ b/xlat/sysctl_net_ipv4_conf.in @@ -1,3 +1,6 @@ +#enum +#include +#include #unconditional NET_IPV4_CONF_FORWARDING NET_IPV4_CONF_MC_FORWARDING diff --git a/xlat/sysctl_net_ipv4_conf.m4 b/xlat/sysctl_net_ipv4_conf.m4 new file mode 100644 index 00000000..52429871 --- /dev/null +++ b/xlat/sysctl_net_ipv4_conf.m4 @@ -0,0 +1,29 @@ +dnl Generated by ./xlat/gen.sh from ./xlat/sysctl_net_ipv4_conf.in; do not edit. +AC_DEFUN([st_CHECK_ENUMS_sysctl_net_ipv4_conf],[ +AC_CHECK_DECLS(m4_normalize([ +NET_IPV4_CONF_FORWARDING, +NET_IPV4_CONF_MC_FORWARDING, +NET_IPV4_CONF_PROXY_ARP, +NET_IPV4_CONF_ACCEPT_REDIRECTS, +NET_IPV4_CONF_SECURE_REDIRECTS, +NET_IPV4_CONF_SEND_REDIRECTS, +NET_IPV4_CONF_SHARED_MEDIA, +NET_IPV4_CONF_RP_FILTER, +NET_IPV4_CONF_ACCEPT_SOURCE_ROUTE, +NET_IPV4_CONF_BOOTP_RELAY, +NET_IPV4_CONF_LOG_MARTIANS, +NET_IPV4_CONF_TAG, +NET_IPV4_CONF_ARPFILTER, +NET_IPV4_CONF_MEDIUM_ID, +NET_IPV4_CONF_NOXFRM, +NET_IPV4_CONF_NOPOLICY, +NET_IPV4_CONF_FORCE_IGMP_VERSION, +NET_IPV4_CONF_ARP_ANNOUNCE, +NET_IPV4_CONF_ARP_IGNORE, +NET_IPV4_CONF_PROMOTE_SECONDARIES, +NET_IPV4_CONF_ARP_ACCEPT, +NET_IPV4_CONF_ARP_NOTIFY +]),,, [ +#include +#include +])])]) diff --git a/xlat/sysctl_net_ipv4_route.h b/xlat/sysctl_net_ipv4_route.h index 4cb40adb..94cfab50 100644 --- a/xlat/sysctl_net_ipv4_route.h +++ b/xlat/sysctl_net_ipv4_route.h @@ -12,32 +12,230 @@ # else -static -const struct xlat sysctl_net_ipv4_route[] = { +static const struct xlat_data sysctl_net_ipv4_route_xdata[] = { XLAT(NET_IPV4_ROUTE_FLUSH), + #define XLAT_VAL_0 ((unsigned) (NET_IPV4_ROUTE_FLUSH)) + #define XLAT_STR_0 STRINGIFY(NET_IPV4_ROUTE_FLUSH) XLAT(NET_IPV4_ROUTE_MIN_DELAY), + #define XLAT_VAL_1 ((unsigned) (NET_IPV4_ROUTE_MIN_DELAY)) + #define XLAT_STR_1 STRINGIFY(NET_IPV4_ROUTE_MIN_DELAY) XLAT(NET_IPV4_ROUTE_MAX_DELAY), + #define XLAT_VAL_2 ((unsigned) (NET_IPV4_ROUTE_MAX_DELAY)) + #define XLAT_STR_2 STRINGIFY(NET_IPV4_ROUTE_MAX_DELAY) XLAT(NET_IPV4_ROUTE_GC_THRESH), + #define XLAT_VAL_3 ((unsigned) (NET_IPV4_ROUTE_GC_THRESH)) + #define XLAT_STR_3 STRINGIFY(NET_IPV4_ROUTE_GC_THRESH) XLAT(NET_IPV4_ROUTE_MAX_SIZE), + #define XLAT_VAL_4 ((unsigned) (NET_IPV4_ROUTE_MAX_SIZE)) + #define XLAT_STR_4 STRINGIFY(NET_IPV4_ROUTE_MAX_SIZE) XLAT(NET_IPV4_ROUTE_GC_MIN_INTERVAL), + #define XLAT_VAL_5 ((unsigned) (NET_IPV4_ROUTE_GC_MIN_INTERVAL)) + #define XLAT_STR_5 STRINGIFY(NET_IPV4_ROUTE_GC_MIN_INTERVAL) XLAT(NET_IPV4_ROUTE_GC_TIMEOUT), + #define XLAT_VAL_6 ((unsigned) (NET_IPV4_ROUTE_GC_TIMEOUT)) + #define XLAT_STR_6 STRINGIFY(NET_IPV4_ROUTE_GC_TIMEOUT) XLAT(NET_IPV4_ROUTE_GC_INTERVAL), + #define XLAT_VAL_7 ((unsigned) (NET_IPV4_ROUTE_GC_INTERVAL)) + #define XLAT_STR_7 STRINGIFY(NET_IPV4_ROUTE_GC_INTERVAL) XLAT(NET_IPV4_ROUTE_REDIRECT_LOAD), + #define XLAT_VAL_8 ((unsigned) (NET_IPV4_ROUTE_REDIRECT_LOAD)) + #define XLAT_STR_8 STRINGIFY(NET_IPV4_ROUTE_REDIRECT_LOAD) XLAT(NET_IPV4_ROUTE_REDIRECT_NUMBER), + #define XLAT_VAL_9 ((unsigned) (NET_IPV4_ROUTE_REDIRECT_NUMBER)) + #define XLAT_STR_9 STRINGIFY(NET_IPV4_ROUTE_REDIRECT_NUMBER) XLAT(NET_IPV4_ROUTE_REDIRECT_SILENCE), + #define XLAT_VAL_10 ((unsigned) (NET_IPV4_ROUTE_REDIRECT_SILENCE)) + #define XLAT_STR_10 STRINGIFY(NET_IPV4_ROUTE_REDIRECT_SILENCE) XLAT(NET_IPV4_ROUTE_ERROR_COST), + #define XLAT_VAL_11 ((unsigned) (NET_IPV4_ROUTE_ERROR_COST)) + #define XLAT_STR_11 STRINGIFY(NET_IPV4_ROUTE_ERROR_COST) XLAT(NET_IPV4_ROUTE_ERROR_BURST), + #define XLAT_VAL_12 ((unsigned) (NET_IPV4_ROUTE_ERROR_BURST)) + #define XLAT_STR_12 STRINGIFY(NET_IPV4_ROUTE_ERROR_BURST) XLAT(NET_IPV4_ROUTE_GC_ELASTICITY), + #define XLAT_VAL_13 ((unsigned) (NET_IPV4_ROUTE_GC_ELASTICITY)) + #define XLAT_STR_13 STRINGIFY(NET_IPV4_ROUTE_GC_ELASTICITY) XLAT(NET_IPV4_ROUTE_MTU_EXPIRES), + #define XLAT_VAL_14 ((unsigned) (NET_IPV4_ROUTE_MTU_EXPIRES)) + #define XLAT_STR_14 STRINGIFY(NET_IPV4_ROUTE_MTU_EXPIRES) XLAT(NET_IPV4_ROUTE_MIN_PMTU), + #define XLAT_VAL_15 ((unsigned) (NET_IPV4_ROUTE_MIN_PMTU)) + #define XLAT_STR_15 STRINGIFY(NET_IPV4_ROUTE_MIN_PMTU) XLAT(NET_IPV4_ROUTE_MIN_ADVMSS), + #define XLAT_VAL_16 ((unsigned) (NET_IPV4_ROUTE_MIN_ADVMSS)) + #define XLAT_STR_16 STRINGIFY(NET_IPV4_ROUTE_MIN_ADVMSS) XLAT(NET_IPV4_ROUTE_SECRET_INTERVAL), + #define XLAT_VAL_17 ((unsigned) (NET_IPV4_ROUTE_SECRET_INTERVAL)) + #define XLAT_STR_17 STRINGIFY(NET_IPV4_ROUTE_SECRET_INTERVAL) #if defined(NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS) || (defined(HAVE_DECL_NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS) && HAVE_DECL_NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS) XLAT(NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS), + #define XLAT_VAL_18 ((unsigned) (NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS)) + #define XLAT_STR_18 STRINGIFY(NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS) #endif - XLAT_END }; +static +const struct xlat sysctl_net_ipv4_route[1] = { { + .data = sysctl_net_ipv4_route_xdata, + .size = ARRAY_SIZE(sysctl_net_ipv4_route_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sysctl_net_ipv4_route.in b/xlat/sysctl_net_ipv4_route.in index a77cf417..d7b5bc65 100644 --- a/xlat/sysctl_net_ipv4_route.in +++ b/xlat/sysctl_net_ipv4_route.in @@ -1,3 +1,6 @@ +#enum +#include +#include #unconditional NET_IPV4_ROUTE_FLUSH NET_IPV4_ROUTE_MIN_DELAY diff --git a/xlat/sysctl_net_ipv4_route.m4 b/xlat/sysctl_net_ipv4_route.m4 new file mode 100644 index 00000000..4a49548b --- /dev/null +++ b/xlat/sysctl_net_ipv4_route.m4 @@ -0,0 +1,26 @@ +dnl Generated by ./xlat/gen.sh from ./xlat/sysctl_net_ipv4_route.in; do not edit. +AC_DEFUN([st_CHECK_ENUMS_sysctl_net_ipv4_route],[ +AC_CHECK_DECLS(m4_normalize([ +NET_IPV4_ROUTE_FLUSH, +NET_IPV4_ROUTE_MIN_DELAY, +NET_IPV4_ROUTE_MAX_DELAY, +NET_IPV4_ROUTE_GC_THRESH, +NET_IPV4_ROUTE_MAX_SIZE, +NET_IPV4_ROUTE_GC_MIN_INTERVAL, +NET_IPV4_ROUTE_GC_TIMEOUT, +NET_IPV4_ROUTE_GC_INTERVAL, +NET_IPV4_ROUTE_REDIRECT_LOAD, +NET_IPV4_ROUTE_REDIRECT_NUMBER, +NET_IPV4_ROUTE_REDIRECT_SILENCE, +NET_IPV4_ROUTE_ERROR_COST, +NET_IPV4_ROUTE_ERROR_BURST, +NET_IPV4_ROUTE_GC_ELASTICITY, +NET_IPV4_ROUTE_MTU_EXPIRES, +NET_IPV4_ROUTE_MIN_PMTU, +NET_IPV4_ROUTE_MIN_ADVMSS, +NET_IPV4_ROUTE_SECRET_INTERVAL, +NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS +]),,, [ +#include +#include +])])]) diff --git a/xlat/sysctl_net_ipv6.h b/xlat/sysctl_net_ipv6.h index 06b6c455..eabfc6ce 100644 --- a/xlat/sysctl_net_ipv6.h +++ b/xlat/sysctl_net_ipv6.h @@ -12,23 +12,131 @@ # else -static -const struct xlat sysctl_net_ipv6[] = { +static const struct xlat_data sysctl_net_ipv6_xdata[] = { XLAT(NET_IPV6_CONF), + #define XLAT_VAL_0 ((unsigned) (NET_IPV6_CONF)) + #define XLAT_STR_0 STRINGIFY(NET_IPV6_CONF) XLAT(NET_IPV6_NEIGH), + #define XLAT_VAL_1 ((unsigned) (NET_IPV6_NEIGH)) + #define XLAT_STR_1 STRINGIFY(NET_IPV6_NEIGH) XLAT(NET_IPV6_ROUTE), + #define XLAT_VAL_2 ((unsigned) (NET_IPV6_ROUTE)) + #define XLAT_STR_2 STRINGIFY(NET_IPV6_ROUTE) XLAT(NET_IPV6_ICMP), + #define XLAT_VAL_3 ((unsigned) (NET_IPV6_ICMP)) + #define XLAT_STR_3 STRINGIFY(NET_IPV6_ICMP) XLAT(NET_IPV6_BINDV6ONLY), + #define XLAT_VAL_4 ((unsigned) (NET_IPV6_BINDV6ONLY)) + #define XLAT_STR_4 STRINGIFY(NET_IPV6_BINDV6ONLY) XLAT(NET_IPV6_IP6FRAG_HIGH_THRESH), + #define XLAT_VAL_5 ((unsigned) (NET_IPV6_IP6FRAG_HIGH_THRESH)) + #define XLAT_STR_5 STRINGIFY(NET_IPV6_IP6FRAG_HIGH_THRESH) XLAT(NET_IPV6_IP6FRAG_LOW_THRESH), + #define XLAT_VAL_6 ((unsigned) (NET_IPV6_IP6FRAG_LOW_THRESH)) + #define XLAT_STR_6 STRINGIFY(NET_IPV6_IP6FRAG_LOW_THRESH) XLAT(NET_IPV6_IP6FRAG_TIME), + #define XLAT_VAL_7 ((unsigned) (NET_IPV6_IP6FRAG_TIME)) + #define XLAT_STR_7 STRINGIFY(NET_IPV6_IP6FRAG_TIME) XLAT(NET_IPV6_IP6FRAG_SECRET_INTERVAL), + #define XLAT_VAL_8 ((unsigned) (NET_IPV6_IP6FRAG_SECRET_INTERVAL)) + #define XLAT_STR_8 STRINGIFY(NET_IPV6_IP6FRAG_SECRET_INTERVAL) #if defined(NET_IPV6_MLD_MAX_MSF) || (defined(HAVE_DECL_NET_IPV6_MLD_MAX_MSF) && HAVE_DECL_NET_IPV6_MLD_MAX_MSF) XLAT(NET_IPV6_MLD_MAX_MSF), + #define XLAT_VAL_9 ((unsigned) (NET_IPV6_MLD_MAX_MSF)) + #define XLAT_STR_9 STRINGIFY(NET_IPV6_MLD_MAX_MSF) #endif - XLAT_END }; +static +const struct xlat sysctl_net_ipv6[1] = { { + .data = sysctl_net_ipv6_xdata, + .size = ARRAY_SIZE(sysctl_net_ipv6_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sysctl_net_ipv6.in b/xlat/sysctl_net_ipv6.in index 711dbb52..3cd48c52 100644 --- a/xlat/sysctl_net_ipv6.in +++ b/xlat/sysctl_net_ipv6.in @@ -1,3 +1,6 @@ +#enum +#include +#include #unconditional NET_IPV6_CONF NET_IPV6_NEIGH diff --git a/xlat/sysctl_net_ipv6.m4 b/xlat/sysctl_net_ipv6.m4 new file mode 100644 index 00000000..63a4ef1e --- /dev/null +++ b/xlat/sysctl_net_ipv6.m4 @@ -0,0 +1,17 @@ +dnl Generated by ./xlat/gen.sh from ./xlat/sysctl_net_ipv6.in; do not edit. +AC_DEFUN([st_CHECK_ENUMS_sysctl_net_ipv6],[ +AC_CHECK_DECLS(m4_normalize([ +NET_IPV6_CONF, +NET_IPV6_NEIGH, +NET_IPV6_ROUTE, +NET_IPV6_ICMP, +NET_IPV6_BINDV6ONLY, +NET_IPV6_IP6FRAG_HIGH_THRESH, +NET_IPV6_IP6FRAG_LOW_THRESH, +NET_IPV6_IP6FRAG_TIME, +NET_IPV6_IP6FRAG_SECRET_INTERVAL, +NET_IPV6_MLD_MAX_MSF +]),,, [ +#include +#include +])])]) diff --git a/xlat/sysctl_net_ipv6_route.h b/xlat/sysctl_net_ipv6_route.h index 7bcf4bc4..75cf9272 100644 --- a/xlat/sysctl_net_ipv6_route.h +++ b/xlat/sysctl_net_ipv6_route.h @@ -12,23 +12,131 @@ # else -static -const struct xlat sysctl_net_ipv6_route[] = { +static const struct xlat_data sysctl_net_ipv6_route_xdata[] = { XLAT(NET_IPV6_ROUTE_FLUSH), + #define XLAT_VAL_0 ((unsigned) (NET_IPV6_ROUTE_FLUSH)) + #define XLAT_STR_0 STRINGIFY(NET_IPV6_ROUTE_FLUSH) XLAT(NET_IPV6_ROUTE_GC_THRESH), + #define XLAT_VAL_1 ((unsigned) (NET_IPV6_ROUTE_GC_THRESH)) + #define XLAT_STR_1 STRINGIFY(NET_IPV6_ROUTE_GC_THRESH) XLAT(NET_IPV6_ROUTE_MAX_SIZE), + #define XLAT_VAL_2 ((unsigned) (NET_IPV6_ROUTE_MAX_SIZE)) + #define XLAT_STR_2 STRINGIFY(NET_IPV6_ROUTE_MAX_SIZE) XLAT(NET_IPV6_ROUTE_GC_MIN_INTERVAL), + #define XLAT_VAL_3 ((unsigned) (NET_IPV6_ROUTE_GC_MIN_INTERVAL)) + #define XLAT_STR_3 STRINGIFY(NET_IPV6_ROUTE_GC_MIN_INTERVAL) XLAT(NET_IPV6_ROUTE_GC_TIMEOUT), + #define XLAT_VAL_4 ((unsigned) (NET_IPV6_ROUTE_GC_TIMEOUT)) + #define XLAT_STR_4 STRINGIFY(NET_IPV6_ROUTE_GC_TIMEOUT) XLAT(NET_IPV6_ROUTE_GC_INTERVAL), + #define XLAT_VAL_5 ((unsigned) (NET_IPV6_ROUTE_GC_INTERVAL)) + #define XLAT_STR_5 STRINGIFY(NET_IPV6_ROUTE_GC_INTERVAL) XLAT(NET_IPV6_ROUTE_GC_ELASTICITY), + #define XLAT_VAL_6 ((unsigned) (NET_IPV6_ROUTE_GC_ELASTICITY)) + #define XLAT_STR_6 STRINGIFY(NET_IPV6_ROUTE_GC_ELASTICITY) XLAT(NET_IPV6_ROUTE_MTU_EXPIRES), + #define XLAT_VAL_7 ((unsigned) (NET_IPV6_ROUTE_MTU_EXPIRES)) + #define XLAT_STR_7 STRINGIFY(NET_IPV6_ROUTE_MTU_EXPIRES) XLAT(NET_IPV6_ROUTE_MIN_ADVMSS), + #define XLAT_VAL_8 ((unsigned) (NET_IPV6_ROUTE_MIN_ADVMSS)) + #define XLAT_STR_8 STRINGIFY(NET_IPV6_ROUTE_MIN_ADVMSS) #if defined(NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS) || (defined(HAVE_DECL_NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS) && HAVE_DECL_NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS) XLAT(NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS), + #define XLAT_VAL_9 ((unsigned) (NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS)) + #define XLAT_STR_9 STRINGIFY(NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS) #endif - XLAT_END }; +static +const struct xlat sysctl_net_ipv6_route[1] = { { + .data = sysctl_net_ipv6_route_xdata, + .size = ARRAY_SIZE(sysctl_net_ipv6_route_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sysctl_net_ipv6_route.in b/xlat/sysctl_net_ipv6_route.in index 53e3800c..ec3f958f 100644 --- a/xlat/sysctl_net_ipv6_route.in +++ b/xlat/sysctl_net_ipv6_route.in @@ -1,3 +1,6 @@ +#enum +#include +#include #unconditional NET_IPV6_ROUTE_FLUSH NET_IPV6_ROUTE_GC_THRESH diff --git a/xlat/sysctl_net_ipv6_route.m4 b/xlat/sysctl_net_ipv6_route.m4 new file mode 100644 index 00000000..4f4e8376 --- /dev/null +++ b/xlat/sysctl_net_ipv6_route.m4 @@ -0,0 +1,17 @@ +dnl Generated by ./xlat/gen.sh from ./xlat/sysctl_net_ipv6_route.in; do not edit. +AC_DEFUN([st_CHECK_ENUMS_sysctl_net_ipv6_route],[ +AC_CHECK_DECLS(m4_normalize([ +NET_IPV6_ROUTE_FLUSH, +NET_IPV6_ROUTE_GC_THRESH, +NET_IPV6_ROUTE_MAX_SIZE, +NET_IPV6_ROUTE_GC_MIN_INTERVAL, +NET_IPV6_ROUTE_GC_TIMEOUT, +NET_IPV6_ROUTE_GC_INTERVAL, +NET_IPV6_ROUTE_GC_ELASTICITY, +NET_IPV6_ROUTE_MTU_EXPIRES, +NET_IPV6_ROUTE_MIN_ADVMSS, +NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS +]),,, [ +#include +#include +])])]) diff --git a/xlat/sysctl_net_unix.h b/xlat/sysctl_net_unix.h index ea0043cd..757aab3c 100644 --- a/xlat/sysctl_net_unix.h +++ b/xlat/sysctl_net_unix.h @@ -12,14 +12,52 @@ # else -static -const struct xlat sysctl_net_unix[] = { +static const struct xlat_data sysctl_net_unix_xdata[] = { XLAT(NET_UNIX_DESTROY_DELAY), + #define XLAT_VAL_0 ((unsigned) (NET_UNIX_DESTROY_DELAY)) + #define XLAT_STR_0 STRINGIFY(NET_UNIX_DESTROY_DELAY) XLAT(NET_UNIX_DELETE_DELAY), + #define XLAT_VAL_1 ((unsigned) (NET_UNIX_DELETE_DELAY)) + #define XLAT_STR_1 STRINGIFY(NET_UNIX_DELETE_DELAY) XLAT(NET_UNIX_MAX_DGRAM_QLEN), - XLAT_END + #define XLAT_VAL_2 ((unsigned) (NET_UNIX_MAX_DGRAM_QLEN)) + #define XLAT_STR_2 STRINGIFY(NET_UNIX_MAX_DGRAM_QLEN) }; - +static +const struct xlat sysctl_net_unix[1] = { { + .data = sysctl_net_unix_xdata, + .size = ARRAY_SIZE(sysctl_net_unix_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sysctl_net_unix.in b/xlat/sysctl_net_unix.in index 7440a928..c20eb0cd 100644 --- a/xlat/sysctl_net_unix.in +++ b/xlat/sysctl_net_unix.in @@ -1,3 +1,6 @@ +#enum +#include +#include #unconditional NET_UNIX_DESTROY_DELAY NET_UNIX_DELETE_DELAY diff --git a/xlat/sysctl_net_unix.m4 b/xlat/sysctl_net_unix.m4 new file mode 100644 index 00000000..da756c2e --- /dev/null +++ b/xlat/sysctl_net_unix.m4 @@ -0,0 +1,10 @@ +dnl Generated by ./xlat/gen.sh from ./xlat/sysctl_net_unix.in; do not edit. +AC_DEFUN([st_CHECK_ENUMS_sysctl_net_unix],[ +AC_CHECK_DECLS(m4_normalize([ +NET_UNIX_DESTROY_DELAY, +NET_UNIX_DELETE_DELAY, +NET_UNIX_MAX_DGRAM_QLEN +]),,, [ +#include +#include +])])]) diff --git a/xlat/sysctl_root.h b/xlat/sysctl_root.h index ddb7a2dd..44b11ae4 100644 --- a/xlat/sysctl_root.h +++ b/xlat/sysctl_root.h @@ -12,38 +12,196 @@ # else -static -const struct xlat sysctl_root[] = { +static const struct xlat_data sysctl_root_xdata[] = { XLAT(CTL_KERN), + #define XLAT_VAL_0 ((unsigned) (CTL_KERN)) + #define XLAT_STR_0 STRINGIFY(CTL_KERN) XLAT(CTL_VM), + #define XLAT_VAL_1 ((unsigned) (CTL_VM)) + #define XLAT_STR_1 STRINGIFY(CTL_VM) XLAT(CTL_NET), + #define XLAT_VAL_2 ((unsigned) (CTL_NET)) + #define XLAT_STR_2 STRINGIFY(CTL_NET) XLAT(CTL_FS), + #define XLAT_VAL_3 ((unsigned) (CTL_FS)) + #define XLAT_STR_3 STRINGIFY(CTL_FS) XLAT(CTL_DEBUG), + #define XLAT_VAL_4 ((unsigned) (CTL_DEBUG)) + #define XLAT_STR_4 STRINGIFY(CTL_DEBUG) XLAT(CTL_DEV), + #define XLAT_VAL_5 ((unsigned) (CTL_DEV)) + #define XLAT_STR_5 STRINGIFY(CTL_DEV) XLAT(CTL_BUS), + #define XLAT_VAL_6 ((unsigned) (CTL_BUS)) + #define XLAT_STR_6 STRINGIFY(CTL_BUS) XLAT(CTL_ABI), + #define XLAT_VAL_7 ((unsigned) (CTL_ABI)) + #define XLAT_STR_7 STRINGIFY(CTL_ABI) XLAT(CTL_CPU), + #define XLAT_VAL_8 ((unsigned) (CTL_CPU)) + #define XLAT_STR_8 STRINGIFY(CTL_CPU) #if defined(CTL_PROC) || (defined(HAVE_DECL_CTL_PROC) && HAVE_DECL_CTL_PROC) XLAT(CTL_PROC), + #define XLAT_VAL_9 ((unsigned) (CTL_PROC)) + #define XLAT_STR_9 STRINGIFY(CTL_PROC) #endif #if defined(CTL_ARLAN) || (defined(HAVE_DECL_CTL_ARLAN) && HAVE_DECL_CTL_ARLAN) XLAT(CTL_ARLAN), + #define XLAT_VAL_10 ((unsigned) (CTL_ARLAN)) + #define XLAT_STR_10 STRINGIFY(CTL_ARLAN) #endif #if defined(CTL_S390DBF) || (defined(HAVE_DECL_CTL_S390DBF) && HAVE_DECL_CTL_S390DBF) XLAT(CTL_S390DBF), + #define XLAT_VAL_11 ((unsigned) (CTL_S390DBF)) + #define XLAT_STR_11 STRINGIFY(CTL_S390DBF) #endif #if defined(CTL_SUNRPC) || (defined(HAVE_DECL_CTL_SUNRPC) && HAVE_DECL_CTL_SUNRPC) XLAT(CTL_SUNRPC), + #define XLAT_VAL_12 ((unsigned) (CTL_SUNRPC)) + #define XLAT_STR_12 STRINGIFY(CTL_SUNRPC) #endif #if defined(CTL_PM) || (defined(HAVE_DECL_CTL_PM) && HAVE_DECL_CTL_PM) XLAT(CTL_PM), + #define XLAT_VAL_13 ((unsigned) (CTL_PM)) + #define XLAT_STR_13 STRINGIFY(CTL_PM) #endif #if defined(CTL_FRV) || (defined(HAVE_DECL_CTL_FRV) && HAVE_DECL_CTL_FRV) XLAT(CTL_FRV), + #define XLAT_VAL_14 ((unsigned) (CTL_FRV)) + #define XLAT_STR_14 STRINGIFY(CTL_FRV) #endif - XLAT_END }; +static +const struct xlat sysctl_root[1] = { { + .data = sysctl_root_xdata, + .size = ARRAY_SIZE(sysctl_root_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sysctl_root.in b/xlat/sysctl_root.in index 670670cc..f8d18485 100644 --- a/xlat/sysctl_root.in +++ b/xlat/sysctl_root.in @@ -1,3 +1,6 @@ +#enum +#include +#include #unconditional CTL_KERN CTL_VM diff --git a/xlat/sysctl_root.m4 b/xlat/sysctl_root.m4 new file mode 100644 index 00000000..30212b0f --- /dev/null +++ b/xlat/sysctl_root.m4 @@ -0,0 +1,22 @@ +dnl Generated by ./xlat/gen.sh from ./xlat/sysctl_root.in; do not edit. +AC_DEFUN([st_CHECK_ENUMS_sysctl_root],[ +AC_CHECK_DECLS(m4_normalize([ +CTL_KERN, +CTL_VM, +CTL_NET, +CTL_FS, +CTL_DEBUG, +CTL_DEV, +CTL_BUS, +CTL_ABI, +CTL_CPU, +CTL_PROC, +CTL_ARLAN, +CTL_S390DBF, +CTL_SUNRPC, +CTL_PM, +CTL_FRV +]),,, [ +#include +#include +])])]) diff --git a/xlat/sysctl_vm.h b/xlat/sysctl_vm.h index bb86bd8d..7a11d777 100644 --- a/xlat/sysctl_vm.h +++ b/xlat/sysctl_vm.h @@ -12,45 +12,253 @@ # else -static -const struct xlat sysctl_vm[] = { +static const struct xlat_data sysctl_vm_xdata[] = { XLAT(VM_OVERCOMMIT_MEMORY), + #define XLAT_VAL_0 ((unsigned) (VM_OVERCOMMIT_MEMORY)) + #define XLAT_STR_0 STRINGIFY(VM_OVERCOMMIT_MEMORY) XLAT(VM_PAGE_CLUSTER), + #define XLAT_VAL_1 ((unsigned) (VM_PAGE_CLUSTER)) + #define XLAT_STR_1 STRINGIFY(VM_PAGE_CLUSTER) XLAT(VM_DIRTY_BACKGROUND), + #define XLAT_VAL_2 ((unsigned) (VM_DIRTY_BACKGROUND)) + #define XLAT_STR_2 STRINGIFY(VM_DIRTY_BACKGROUND) XLAT(VM_DIRTY_RATIO), + #define XLAT_VAL_3 ((unsigned) (VM_DIRTY_RATIO)) + #define XLAT_STR_3 STRINGIFY(VM_DIRTY_RATIO) XLAT(VM_DIRTY_WB_CS), + #define XLAT_VAL_4 ((unsigned) (VM_DIRTY_WB_CS)) + #define XLAT_STR_4 STRINGIFY(VM_DIRTY_WB_CS) XLAT(VM_DIRTY_EXPIRE_CS), + #define XLAT_VAL_5 ((unsigned) (VM_DIRTY_EXPIRE_CS)) + #define XLAT_STR_5 STRINGIFY(VM_DIRTY_EXPIRE_CS) XLAT(VM_NR_PDFLUSH_THREADS), + #define XLAT_VAL_6 ((unsigned) (VM_NR_PDFLUSH_THREADS)) + #define XLAT_STR_6 STRINGIFY(VM_NR_PDFLUSH_THREADS) XLAT(VM_OVERCOMMIT_RATIO), + #define XLAT_VAL_7 ((unsigned) (VM_OVERCOMMIT_RATIO)) + #define XLAT_STR_7 STRINGIFY(VM_OVERCOMMIT_RATIO) XLAT(VM_PAGEBUF), + #define XLAT_VAL_8 ((unsigned) (VM_PAGEBUF)) + #define XLAT_STR_8 STRINGIFY(VM_PAGEBUF) XLAT(VM_HUGETLB_PAGES), + #define XLAT_VAL_9 ((unsigned) (VM_HUGETLB_PAGES)) + #define XLAT_STR_9 STRINGIFY(VM_HUGETLB_PAGES) XLAT(VM_SWAPPINESS), + #define XLAT_VAL_10 ((unsigned) (VM_SWAPPINESS)) + #define XLAT_STR_10 STRINGIFY(VM_SWAPPINESS) XLAT(VM_LOWMEM_RESERVE_RATIO), + #define XLAT_VAL_11 ((unsigned) (VM_LOWMEM_RESERVE_RATIO)) + #define XLAT_STR_11 STRINGIFY(VM_LOWMEM_RESERVE_RATIO) XLAT(VM_MIN_FREE_KBYTES), + #define XLAT_VAL_12 ((unsigned) (VM_MIN_FREE_KBYTES)) + #define XLAT_STR_12 STRINGIFY(VM_MIN_FREE_KBYTES) #if defined(VM_MAX_MAP_COUNT) || (defined(HAVE_DECL_VM_MAX_MAP_COUNT) && HAVE_DECL_VM_MAX_MAP_COUNT) XLAT(VM_MAX_MAP_COUNT), + #define XLAT_VAL_13 ((unsigned) (VM_MAX_MAP_COUNT)) + #define XLAT_STR_13 STRINGIFY(VM_MAX_MAP_COUNT) #endif #if defined(VM_LAPTOP_MODE) || (defined(HAVE_DECL_VM_LAPTOP_MODE) && HAVE_DECL_VM_LAPTOP_MODE) XLAT(VM_LAPTOP_MODE), + #define XLAT_VAL_14 ((unsigned) (VM_LAPTOP_MODE)) + #define XLAT_STR_14 STRINGIFY(VM_LAPTOP_MODE) #endif #if defined(VM_BLOCK_DUMP) || (defined(HAVE_DECL_VM_BLOCK_DUMP) && HAVE_DECL_VM_BLOCK_DUMP) XLAT(VM_BLOCK_DUMP), + #define XLAT_VAL_15 ((unsigned) (VM_BLOCK_DUMP)) + #define XLAT_STR_15 STRINGIFY(VM_BLOCK_DUMP) #endif #if defined(VM_HUGETLB_GROUP) || (defined(HAVE_DECL_VM_HUGETLB_GROUP) && HAVE_DECL_VM_HUGETLB_GROUP) XLAT(VM_HUGETLB_GROUP), + #define XLAT_VAL_16 ((unsigned) (VM_HUGETLB_GROUP)) + #define XLAT_STR_16 STRINGIFY(VM_HUGETLB_GROUP) #endif #if defined(VM_VFS_CACHE_PRESSURE) || (defined(HAVE_DECL_VM_VFS_CACHE_PRESSURE) && HAVE_DECL_VM_VFS_CACHE_PRESSURE) XLAT(VM_VFS_CACHE_PRESSURE), + #define XLAT_VAL_17 ((unsigned) (VM_VFS_CACHE_PRESSURE)) + #define XLAT_STR_17 STRINGIFY(VM_VFS_CACHE_PRESSURE) #endif #if defined(VM_LEGACY_VA_LAYOUT) || (defined(HAVE_DECL_VM_LEGACY_VA_LAYOUT) && HAVE_DECL_VM_LEGACY_VA_LAYOUT) XLAT(VM_LEGACY_VA_LAYOUT), + #define XLAT_VAL_18 ((unsigned) (VM_LEGACY_VA_LAYOUT)) + #define XLAT_STR_18 STRINGIFY(VM_LEGACY_VA_LAYOUT) #endif #if defined(VM_SWAP_TOKEN_TIMEOUT) || (defined(HAVE_DECL_VM_SWAP_TOKEN_TIMEOUT) && HAVE_DECL_VM_SWAP_TOKEN_TIMEOUT) XLAT(VM_SWAP_TOKEN_TIMEOUT), + #define XLAT_VAL_19 ((unsigned) (VM_SWAP_TOKEN_TIMEOUT)) + #define XLAT_STR_19 STRINGIFY(VM_SWAP_TOKEN_TIMEOUT) #endif - XLAT_END }; +static +const struct xlat sysctl_vm[1] = { { + .data = sysctl_vm_xdata, + .size = ARRAY_SIZE(sysctl_vm_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/sysctl_vm.in b/xlat/sysctl_vm.in index 3c2b4739..71c41727 100644 --- a/xlat/sysctl_vm.in +++ b/xlat/sysctl_vm.in @@ -1,3 +1,6 @@ +#enum +#include +#include #unconditional VM_OVERCOMMIT_MEMORY VM_PAGE_CLUSTER diff --git a/xlat/sysctl_vm.m4 b/xlat/sysctl_vm.m4 new file mode 100644 index 00000000..1bf5b2bb --- /dev/null +++ b/xlat/sysctl_vm.m4 @@ -0,0 +1,27 @@ +dnl Generated by ./xlat/gen.sh from ./xlat/sysctl_vm.in; do not edit. +AC_DEFUN([st_CHECK_ENUMS_sysctl_vm],[ +AC_CHECK_DECLS(m4_normalize([ +VM_OVERCOMMIT_MEMORY, +VM_PAGE_CLUSTER, +VM_DIRTY_BACKGROUND, +VM_DIRTY_RATIO, +VM_DIRTY_WB_CS, +VM_DIRTY_EXPIRE_CS, +VM_NR_PDFLUSH_THREADS, +VM_OVERCOMMIT_RATIO, +VM_PAGEBUF, +VM_HUGETLB_PAGES, +VM_SWAPPINESS, +VM_LOWMEM_RESERVE_RATIO, +VM_MIN_FREE_KBYTES, +VM_MAX_MAP_COUNT, +VM_LAPTOP_MODE, +VM_BLOCK_DUMP, +VM_HUGETLB_GROUP, +VM_VFS_CACHE_PRESSURE, +VM_LEGACY_VA_LAYOUT, +VM_SWAP_TOKEN_TIMEOUT +]),,, [ +#include +#include +])])]) diff --git a/xlat/syslog_action_type.h b/xlat/syslog_action_type.h index b81b336e..f91768b0 100644 --- a/xlat/syslog_action_type.h +++ b/xlat/syslog_action_type.h @@ -89,22 +89,140 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat syslog_action_type[] = { +static const struct xlat_data syslog_action_type_xdata[] = { [SYSLOG_ACTION_CLOSE] = XLAT(SYSLOG_ACTION_CLOSE), + #define XLAT_VAL_0 ((unsigned) (SYSLOG_ACTION_CLOSE)) + #define XLAT_STR_0 STRINGIFY(SYSLOG_ACTION_CLOSE) [SYSLOG_ACTION_OPEN] = XLAT(SYSLOG_ACTION_OPEN), + #define XLAT_VAL_1 ((unsigned) (SYSLOG_ACTION_OPEN)) + #define XLAT_STR_1 STRINGIFY(SYSLOG_ACTION_OPEN) [SYSLOG_ACTION_READ] = XLAT(SYSLOG_ACTION_READ), + #define XLAT_VAL_2 ((unsigned) (SYSLOG_ACTION_READ)) + #define XLAT_STR_2 STRINGIFY(SYSLOG_ACTION_READ) [SYSLOG_ACTION_READ_ALL] = XLAT(SYSLOG_ACTION_READ_ALL), + #define XLAT_VAL_3 ((unsigned) (SYSLOG_ACTION_READ_ALL)) + #define XLAT_STR_3 STRINGIFY(SYSLOG_ACTION_READ_ALL) [SYSLOG_ACTION_READ_CLEAR] = XLAT(SYSLOG_ACTION_READ_CLEAR), + #define XLAT_VAL_4 ((unsigned) (SYSLOG_ACTION_READ_CLEAR)) + #define XLAT_STR_4 STRINGIFY(SYSLOG_ACTION_READ_CLEAR) [SYSLOG_ACTION_CLEAR] = XLAT(SYSLOG_ACTION_CLEAR), + #define XLAT_VAL_5 ((unsigned) (SYSLOG_ACTION_CLEAR)) + #define XLAT_STR_5 STRINGIFY(SYSLOG_ACTION_CLEAR) [SYSLOG_ACTION_CONSOLE_OFF] = XLAT(SYSLOG_ACTION_CONSOLE_OFF), + #define XLAT_VAL_6 ((unsigned) (SYSLOG_ACTION_CONSOLE_OFF)) + #define XLAT_STR_6 STRINGIFY(SYSLOG_ACTION_CONSOLE_OFF) [SYSLOG_ACTION_CONSOLE_ON] = XLAT(SYSLOG_ACTION_CONSOLE_ON), + #define XLAT_VAL_7 ((unsigned) (SYSLOG_ACTION_CONSOLE_ON)) + #define XLAT_STR_7 STRINGIFY(SYSLOG_ACTION_CONSOLE_ON) [SYSLOG_ACTION_CONSOLE_LEVEL] = XLAT(SYSLOG_ACTION_CONSOLE_LEVEL), + #define XLAT_VAL_8 ((unsigned) (SYSLOG_ACTION_CONSOLE_LEVEL)) + #define XLAT_STR_8 STRINGIFY(SYSLOG_ACTION_CONSOLE_LEVEL) [SYSLOG_ACTION_SIZE_UNREAD] = XLAT(SYSLOG_ACTION_SIZE_UNREAD), + #define XLAT_VAL_9 ((unsigned) (SYSLOG_ACTION_SIZE_UNREAD)) + #define XLAT_STR_9 STRINGIFY(SYSLOG_ACTION_SIZE_UNREAD) [SYSLOG_ACTION_SIZE_BUFFER] = XLAT(SYSLOG_ACTION_SIZE_BUFFER), - XLAT_END + #define XLAT_VAL_10 ((unsigned) (SYSLOG_ACTION_SIZE_BUFFER)) + #define XLAT_STR_10 STRINGIFY(SYSLOG_ACTION_SIZE_BUFFER) }; +static +const struct xlat syslog_action_type[1] = { { + .data = syslog_action_type_xdata, + .size = ARRAY_SIZE(syslog_action_type_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/syslog_console_levels.h b/xlat/syslog_console_levels.h new file mode 100644 index 00000000..fef19186 --- /dev/null +++ b/xlat/syslog_console_levels.h @@ -0,0 +1,193 @@ +/* Generated by ./xlat/gen.sh from ./xlat/syslog_console_levels.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined(LOGLEVEL_EMERG) || (defined(HAVE_DECL_LOGLEVEL_EMERG) && HAVE_DECL_LOGLEVEL_EMERG) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((LOGLEVEL_EMERG) == (0), "LOGLEVEL_EMERG != 0"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define LOGLEVEL_EMERG 0 +#endif +#if defined(LOGLEVEL_ALERT) || (defined(HAVE_DECL_LOGLEVEL_ALERT) && HAVE_DECL_LOGLEVEL_ALERT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((LOGLEVEL_ALERT) == (1), "LOGLEVEL_ALERT != 1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define LOGLEVEL_ALERT 1 +#endif +#if defined(LOGLEVEL_CRIT) || (defined(HAVE_DECL_LOGLEVEL_CRIT) && HAVE_DECL_LOGLEVEL_CRIT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((LOGLEVEL_CRIT) == (2), "LOGLEVEL_CRIT != 2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define LOGLEVEL_CRIT 2 +#endif +#if defined(LOGLEVEL_ERR) || (defined(HAVE_DECL_LOGLEVEL_ERR) && HAVE_DECL_LOGLEVEL_ERR) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((LOGLEVEL_ERR) == (3), "LOGLEVEL_ERR != 3"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define LOGLEVEL_ERR 3 +#endif +#if defined(LOGLEVEL_WARNING) || (defined(HAVE_DECL_LOGLEVEL_WARNING) && HAVE_DECL_LOGLEVEL_WARNING) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((LOGLEVEL_WARNING) == (4), "LOGLEVEL_WARNING != 4"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define LOGLEVEL_WARNING 4 +#endif +#if defined(LOGLEVEL_NOTICE) || (defined(HAVE_DECL_LOGLEVEL_NOTICE) && HAVE_DECL_LOGLEVEL_NOTICE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((LOGLEVEL_NOTICE) == (5), "LOGLEVEL_NOTICE != 5"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define LOGLEVEL_NOTICE 5 +#endif +#if defined(LOGLEVEL_INFO) || (defined(HAVE_DECL_LOGLEVEL_INFO) && HAVE_DECL_LOGLEVEL_INFO) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((LOGLEVEL_INFO) == (6), "LOGLEVEL_INFO != 6"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define LOGLEVEL_INFO 6 +#endif +#if defined(LOGLEVEL_DEBUG) || (defined(HAVE_DECL_LOGLEVEL_DEBUG) && HAVE_DECL_LOGLEVEL_DEBUG) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((LOGLEVEL_DEBUG) == (7), "LOGLEVEL_DEBUG != 7"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define LOGLEVEL_DEBUG 7 +#endif +#if defined(LOGLEVEL_DEBUG) || (defined(HAVE_DECL_LOGLEVEL_DEBUG) && HAVE_DECL_LOGLEVEL_DEBUG) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((LOGLEVEL_DEBUG) == (7), "LOGLEVEL_DEBUG != 7"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define LOGLEVEL_DEBUG 7 +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat syslog_console_levels in mpers mode + +# else + +static const struct xlat_data syslog_console_levels_xdata[] = { + + [LOGLEVEL_EMERG] = XLAT(LOGLEVEL_EMERG), + #define XLAT_VAL_0 ((unsigned) (LOGLEVEL_EMERG)) + #define XLAT_STR_0 STRINGIFY(LOGLEVEL_EMERG) + [LOGLEVEL_ALERT] = XLAT(LOGLEVEL_ALERT), + #define XLAT_VAL_1 ((unsigned) (LOGLEVEL_ALERT)) + #define XLAT_STR_1 STRINGIFY(LOGLEVEL_ALERT) + [LOGLEVEL_CRIT] = XLAT(LOGLEVEL_CRIT), + #define XLAT_VAL_2 ((unsigned) (LOGLEVEL_CRIT)) + #define XLAT_STR_2 STRINGIFY(LOGLEVEL_CRIT) + [LOGLEVEL_ERR] = XLAT(LOGLEVEL_ERR), + #define XLAT_VAL_3 ((unsigned) (LOGLEVEL_ERR)) + #define XLAT_STR_3 STRINGIFY(LOGLEVEL_ERR) + [LOGLEVEL_WARNING] = XLAT(LOGLEVEL_WARNING), + #define XLAT_VAL_4 ((unsigned) (LOGLEVEL_WARNING)) + #define XLAT_STR_4 STRINGIFY(LOGLEVEL_WARNING) + [LOGLEVEL_NOTICE] = XLAT(LOGLEVEL_NOTICE), + #define XLAT_VAL_5 ((unsigned) (LOGLEVEL_NOTICE)) + #define XLAT_STR_5 STRINGIFY(LOGLEVEL_NOTICE) + [LOGLEVEL_INFO] = XLAT(LOGLEVEL_INFO), + #define XLAT_VAL_6 ((unsigned) (LOGLEVEL_INFO)) + #define XLAT_STR_6 STRINGIFY(LOGLEVEL_INFO) + [LOGLEVEL_DEBUG] = XLAT(LOGLEVEL_DEBUG), + #define XLAT_VAL_7 ((unsigned) (LOGLEVEL_DEBUG)) + #define XLAT_STR_7 STRINGIFY(LOGLEVEL_DEBUG) + [LOGLEVEL_DEBUG+1] = XLAT(LOGLEVEL_DEBUG+1), + #define XLAT_VAL_8 ((unsigned) (LOGLEVEL_DEBUG+1)) + #define XLAT_STR_8 STRINGIFY(LOGLEVEL_DEBUG+1) +}; +static +const struct xlat syslog_console_levels[1] = { { + .data = syslog_console_levels_xdata, + .size = ARRAY_SIZE(syslog_console_levels_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/syslog_console_levels.in b/xlat/syslog_console_levels.in new file mode 100644 index 00000000..9309658e --- /dev/null +++ b/xlat/syslog_console_levels.in @@ -0,0 +1,11 @@ +#value_indexed +/* from include/linux/kern_levels.h */ +LOGLEVEL_EMERG 0 +LOGLEVEL_ALERT 1 +LOGLEVEL_CRIT 2 +LOGLEVEL_ERR 3 +LOGLEVEL_WARNING 4 +LOGLEVEL_NOTICE 5 +LOGLEVEL_INFO 6 +LOGLEVEL_DEBUG 7 +LOGLEVEL_DEBUG+1 7 diff --git a/xlat/sysmips_operations.h b/xlat/sysmips_operations.h index 6e3b00c0..31427b84 100644 --- a/xlat/sysmips_operations.h +++ b/xlat/sysmips_operations.h @@ -12,26 +12,84 @@ # else -static -const struct xlat sysmips_operations[] = { +static const struct xlat_data sysmips_operations_xdata[] = { #if defined(SETNAME) || (defined(HAVE_DECL_SETNAME) && HAVE_DECL_SETNAME) XLAT(SETNAME), + #define XLAT_VAL_0 ((unsigned) (SETNAME)) + #define XLAT_STR_0 STRINGIFY(SETNAME) #endif #if defined(FLUSH_CACHE) || (defined(HAVE_DECL_FLUSH_CACHE) && HAVE_DECL_FLUSH_CACHE) XLAT(FLUSH_CACHE), + #define XLAT_VAL_1 ((unsigned) (FLUSH_CACHE)) + #define XLAT_STR_1 STRINGIFY(FLUSH_CACHE) #endif #if defined(MIPS_FIXADE) || (defined(HAVE_DECL_MIPS_FIXADE) && HAVE_DECL_MIPS_FIXADE) XLAT(MIPS_FIXADE), + #define XLAT_VAL_2 ((unsigned) (MIPS_FIXADE)) + #define XLAT_STR_2 STRINGIFY(MIPS_FIXADE) #endif #if defined(MIPS_RDNVRAM) || (defined(HAVE_DECL_MIPS_RDNVRAM) && HAVE_DECL_MIPS_RDNVRAM) XLAT(MIPS_RDNVRAM), + #define XLAT_VAL_3 ((unsigned) (MIPS_RDNVRAM)) + #define XLAT_STR_3 STRINGIFY(MIPS_RDNVRAM) #endif #if defined(MIPS_ATOMIC_SET) || (defined(HAVE_DECL_MIPS_ATOMIC_SET) && HAVE_DECL_MIPS_ATOMIC_SET) XLAT(MIPS_ATOMIC_SET), + #define XLAT_VAL_4 ((unsigned) (MIPS_ATOMIC_SET)) + #define XLAT_STR_4 STRINGIFY(MIPS_ATOMIC_SET) #endif - XLAT_END }; +static +const struct xlat sysmips_operations[1] = { { + .data = sysmips_operations_xdata, + .size = ARRAY_SIZE(sysmips_operations_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/tcflsh_options.h b/xlat/tcflsh_options.h index 97302639..e8f24a2d 100644 --- a/xlat/tcflsh_options.h +++ b/xlat/tcflsh_options.h @@ -12,20 +12,58 @@ # else -static -const struct xlat tcflsh_options[] = { +static const struct xlat_data tcflsh_options_xdata[] = { #if defined(TCIFLUSH) || (defined(HAVE_DECL_TCIFLUSH) && HAVE_DECL_TCIFLUSH) XLAT(TCIFLUSH), + #define XLAT_VAL_0 ((unsigned) (TCIFLUSH)) + #define XLAT_STR_0 STRINGIFY(TCIFLUSH) #endif #if defined(TCOFLUSH) || (defined(HAVE_DECL_TCOFLUSH) && HAVE_DECL_TCOFLUSH) XLAT(TCOFLUSH), + #define XLAT_VAL_1 ((unsigned) (TCOFLUSH)) + #define XLAT_STR_1 STRINGIFY(TCOFLUSH) #endif #if defined(TCIOFLUSH) || (defined(HAVE_DECL_TCIOFLUSH) && HAVE_DECL_TCIOFLUSH) XLAT(TCIOFLUSH), + #define XLAT_VAL_2 ((unsigned) (TCIOFLUSH)) + #define XLAT_STR_2 STRINGIFY(TCIOFLUSH) #endif - XLAT_END }; +static +const struct xlat tcflsh_options[1] = { { + .data = tcflsh_options_xdata, + .size = ARRAY_SIZE(tcflsh_options_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/tcp_state_flags.h b/xlat/tcp_state_flags.h index 3f0cb8c6..8cd43824 100644 --- a/xlat/tcp_state_flags.h +++ b/xlat/tcp_state_flags.h @@ -8,47 +8,175 @@ # ifndef IN_MPERS -const struct xlat tcp_state_flags[] = { +static const struct xlat_data tcp_state_flags_xdata[] = { #if defined(TCP_ESTABLISHED) || (defined(HAVE_DECL_TCP_ESTABLISHED) && HAVE_DECL_TCP_ESTABLISHED) XLAT_PAIR(1ULL< +#include +#include +#include +V4L2_BUF_TYPE_VIDEO_CAPTURE 1 +V4L2_BUF_TYPE_VIDEO_OUTPUT 2 +V4L2_BUF_TYPE_VIDEO_OVERLAY 3 +V4L2_BUF_TYPE_VBI_CAPTURE 4 +V4L2_BUF_TYPE_VBI_OUTPUT 5 +V4L2_BUF_TYPE_SLICED_VBI_CAPTURE 6 +V4L2_BUF_TYPE_SLICED_VBI_OUTPUT 7 +V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY 8 +V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE 9 +V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE 10 +V4L2_BUF_TYPE_SDR_CAPTURE 11 +V4L2_BUF_TYPE_SDR_OUTPUT 12 +V4L2_BUF_TYPE_META_CAPTURE 13 +V4L2_BUF_TYPE_META_OUTPUT 14 +/* V4L2_BUF_TYPE_PRIVATE 0x80 */ diff --git a/xlat/v4l2_buf_types.m4 b/xlat/v4l2_buf_types.m4 new file mode 100644 index 00000000..44e1f0de --- /dev/null +++ b/xlat/v4l2_buf_types.m4 @@ -0,0 +1,23 @@ +dnl Generated by ./xlat/gen.sh from ./xlat/v4l2_buf_types.in; do not edit. +AC_DEFUN([st_CHECK_ENUMS_v4l2_buf_types],[ +AC_CHECK_DECLS(m4_normalize([ +V4L2_BUF_TYPE_VIDEO_CAPTURE, +V4L2_BUF_TYPE_VIDEO_OUTPUT, +V4L2_BUF_TYPE_VIDEO_OVERLAY, +V4L2_BUF_TYPE_VBI_CAPTURE, +V4L2_BUF_TYPE_VBI_OUTPUT, +V4L2_BUF_TYPE_SLICED_VBI_CAPTURE, +V4L2_BUF_TYPE_SLICED_VBI_OUTPUT, +V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY, +V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE, +V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, +V4L2_BUF_TYPE_SDR_CAPTURE, +V4L2_BUF_TYPE_SDR_OUTPUT, +V4L2_BUF_TYPE_META_CAPTURE, +V4L2_BUF_TYPE_META_OUTPUT +]),,, [ +#include +#include +#include +#include +])])]) diff --git a/xlat/v4l2_capture_modes.h b/xlat/v4l2_capture_modes.h index 74e1a6cc..fa1f15e9 100644 --- a/xlat/v4l2_capture_modes.h +++ b/xlat/v4l2_capture_modes.h @@ -3,6 +3,13 @@ #include "gcc_compat.h" #include "static_assert.h" +#if defined(V4L2_MODE_HIGHQUALITY) || (defined(HAVE_DECL_V4L2_MODE_HIGHQUALITY) && HAVE_DECL_V4L2_MODE_HIGHQUALITY) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_MODE_HIGHQUALITY) == (0x0001), "V4L2_MODE_HIGHQUALITY != 0x0001"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_MODE_HIGHQUALITY 0x0001 +#endif #ifndef XLAT_MACROS_ONLY @@ -12,16 +19,32 @@ extern const struct xlat v4l2_capture_modes[]; # else +static const struct xlat_data v4l2_capture_modes_xdata[] = { + XLAT(V4L2_MODE_HIGHQUALITY), + #define XLAT_VAL_0 ((unsigned) (V4L2_MODE_HIGHQUALITY)) + #define XLAT_STR_0 STRINGIFY(V4L2_MODE_HIGHQUALITY) +}; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static # endif -const struct xlat v4l2_capture_modes[] = { -#if defined(V4L2_MODE_HIGHQUALITY) || (defined(HAVE_DECL_V4L2_MODE_HIGHQUALITY) && HAVE_DECL_V4L2_MODE_HIGHQUALITY) - XLAT(V4L2_MODE_HIGHQUALITY), -#endif - XLAT_END -}; +const struct xlat v4l2_capture_modes[1] = { { + .data = v4l2_capture_modes_xdata, + .size = ARRAY_SIZE(v4l2_capture_modes_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/v4l2_capture_modes.in b/xlat/v4l2_capture_modes.in index 47307640..2ef05374 100644 --- a/xlat/v4l2_capture_modes.in +++ b/xlat/v4l2_capture_modes.in @@ -1 +1 @@ -V4L2_MODE_HIGHQUALITY +V4L2_MODE_HIGHQUALITY 0x0001 diff --git a/xlat/v4l2_colorspaces.h b/xlat/v4l2_colorspaces.h index fad4dcd6..a366a46f 100644 --- a/xlat/v4l2_colorspaces.h +++ b/xlat/v4l2_colorspaces.h @@ -3,58 +3,264 @@ #include "gcc_compat.h" #include "static_assert.h" - -#ifndef XLAT_MACROS_ONLY - -# ifdef IN_MPERS - -extern const struct xlat v4l2_colorspaces[]; - -# else - -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat v4l2_colorspaces[] = { +#if defined(V4L2_COLORSPACE_DEFAULT) || (defined(HAVE_DECL_V4L2_COLORSPACE_DEFAULT) && HAVE_DECL_V4L2_COLORSPACE_DEFAULT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_COLORSPACE_DEFAULT) == (0), "V4L2_COLORSPACE_DEFAULT != 0"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_COLORSPACE_DEFAULT 0 +#endif #if defined(V4L2_COLORSPACE_SMPTE170M) || (defined(HAVE_DECL_V4L2_COLORSPACE_SMPTE170M) && HAVE_DECL_V4L2_COLORSPACE_SMPTE170M) - XLAT(V4L2_COLORSPACE_SMPTE170M), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_COLORSPACE_SMPTE170M) == (1), "V4L2_COLORSPACE_SMPTE170M != 1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_COLORSPACE_SMPTE170M 1 #endif #if defined(V4L2_COLORSPACE_SMPTE240M) || (defined(HAVE_DECL_V4L2_COLORSPACE_SMPTE240M) && HAVE_DECL_V4L2_COLORSPACE_SMPTE240M) - XLAT(V4L2_COLORSPACE_SMPTE240M), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_COLORSPACE_SMPTE240M) == (2), "V4L2_COLORSPACE_SMPTE240M != 2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_COLORSPACE_SMPTE240M 2 #endif #if defined(V4L2_COLORSPACE_REC709) || (defined(HAVE_DECL_V4L2_COLORSPACE_REC709) && HAVE_DECL_V4L2_COLORSPACE_REC709) - XLAT(V4L2_COLORSPACE_REC709), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_COLORSPACE_REC709) == (3), "V4L2_COLORSPACE_REC709 != 3"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_COLORSPACE_REC709 3 #endif #if defined(V4L2_COLORSPACE_BT878) || (defined(HAVE_DECL_V4L2_COLORSPACE_BT878) && HAVE_DECL_V4L2_COLORSPACE_BT878) - XLAT(V4L2_COLORSPACE_BT878), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_COLORSPACE_BT878) == (4), "V4L2_COLORSPACE_BT878 != 4"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_COLORSPACE_BT878 4 #endif #if defined(V4L2_COLORSPACE_470_SYSTEM_M) || (defined(HAVE_DECL_V4L2_COLORSPACE_470_SYSTEM_M) && HAVE_DECL_V4L2_COLORSPACE_470_SYSTEM_M) - XLAT(V4L2_COLORSPACE_470_SYSTEM_M), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_COLORSPACE_470_SYSTEM_M) == (5), "V4L2_COLORSPACE_470_SYSTEM_M != 5"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_COLORSPACE_470_SYSTEM_M 5 #endif #if defined(V4L2_COLORSPACE_470_SYSTEM_BG) || (defined(HAVE_DECL_V4L2_COLORSPACE_470_SYSTEM_BG) && HAVE_DECL_V4L2_COLORSPACE_470_SYSTEM_BG) - XLAT(V4L2_COLORSPACE_470_SYSTEM_BG), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_COLORSPACE_470_SYSTEM_BG) == (6), "V4L2_COLORSPACE_470_SYSTEM_BG != 6"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_COLORSPACE_470_SYSTEM_BG 6 #endif #if defined(V4L2_COLORSPACE_JPEG) || (defined(HAVE_DECL_V4L2_COLORSPACE_JPEG) && HAVE_DECL_V4L2_COLORSPACE_JPEG) - XLAT(V4L2_COLORSPACE_JPEG), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_COLORSPACE_JPEG) == (7), "V4L2_COLORSPACE_JPEG != 7"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_COLORSPACE_JPEG 7 #endif #if defined(V4L2_COLORSPACE_SRGB) || (defined(HAVE_DECL_V4L2_COLORSPACE_SRGB) && HAVE_DECL_V4L2_COLORSPACE_SRGB) - XLAT(V4L2_COLORSPACE_SRGB), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_COLORSPACE_SRGB) == (8), "V4L2_COLORSPACE_SRGB != 8"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_COLORSPACE_SRGB 8 #endif -#if defined(V4L2_COLORSPACE_ADOBERGB) || (defined(HAVE_DECL_V4L2_COLORSPACE_ADOBERGB) && HAVE_DECL_V4L2_COLORSPACE_ADOBERGB) - XLAT(V4L2_COLORSPACE_ADOBERGB), +#if defined(V4L2_COLORSPACE_OPRGB) || (defined(HAVE_DECL_V4L2_COLORSPACE_OPRGB) && HAVE_DECL_V4L2_COLORSPACE_OPRGB) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_COLORSPACE_OPRGB) == (9), "V4L2_COLORSPACE_OPRGB != 9"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_COLORSPACE_OPRGB 9 #endif #if defined(V4L2_COLORSPACE_BT2020) || (defined(HAVE_DECL_V4L2_COLORSPACE_BT2020) && HAVE_DECL_V4L2_COLORSPACE_BT2020) - XLAT(V4L2_COLORSPACE_BT2020), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_COLORSPACE_BT2020) == (10), "V4L2_COLORSPACE_BT2020 != 10"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_COLORSPACE_BT2020 10 #endif #if defined(V4L2_COLORSPACE_RAW) || (defined(HAVE_DECL_V4L2_COLORSPACE_RAW) && HAVE_DECL_V4L2_COLORSPACE_RAW) - XLAT(V4L2_COLORSPACE_RAW), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_COLORSPACE_RAW) == (11), "V4L2_COLORSPACE_RAW != 11"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_COLORSPACE_RAW 11 #endif #if defined(V4L2_COLORSPACE_DCI_P3) || (defined(HAVE_DECL_V4L2_COLORSPACE_DCI_P3) && HAVE_DECL_V4L2_COLORSPACE_DCI_P3) - XLAT(V4L2_COLORSPACE_DCI_P3), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_COLORSPACE_DCI_P3) == (12), "V4L2_COLORSPACE_DCI_P3 != 12"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_COLORSPACE_DCI_P3 12 #endif - XLAT_END + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +extern const struct xlat v4l2_colorspaces[]; + +# else + +static const struct xlat_data v4l2_colorspaces_xdata[] = { + [V4L2_COLORSPACE_DEFAULT] = XLAT(V4L2_COLORSPACE_DEFAULT), + #define XLAT_VAL_0 ((unsigned) (V4L2_COLORSPACE_DEFAULT)) + #define XLAT_STR_0 STRINGIFY(V4L2_COLORSPACE_DEFAULT) + [V4L2_COLORSPACE_SMPTE170M] = XLAT(V4L2_COLORSPACE_SMPTE170M), + #define XLAT_VAL_1 ((unsigned) (V4L2_COLORSPACE_SMPTE170M)) + #define XLAT_STR_1 STRINGIFY(V4L2_COLORSPACE_SMPTE170M) + [V4L2_COLORSPACE_SMPTE240M] = XLAT(V4L2_COLORSPACE_SMPTE240M), + #define XLAT_VAL_2 ((unsigned) (V4L2_COLORSPACE_SMPTE240M)) + #define XLAT_STR_2 STRINGIFY(V4L2_COLORSPACE_SMPTE240M) + [V4L2_COLORSPACE_REC709] = XLAT(V4L2_COLORSPACE_REC709), + #define XLAT_VAL_3 ((unsigned) (V4L2_COLORSPACE_REC709)) + #define XLAT_STR_3 STRINGIFY(V4L2_COLORSPACE_REC709) + [V4L2_COLORSPACE_BT878] = XLAT(V4L2_COLORSPACE_BT878), + #define XLAT_VAL_4 ((unsigned) (V4L2_COLORSPACE_BT878)) + #define XLAT_STR_4 STRINGIFY(V4L2_COLORSPACE_BT878) + [V4L2_COLORSPACE_470_SYSTEM_M] = XLAT(V4L2_COLORSPACE_470_SYSTEM_M), + #define XLAT_VAL_5 ((unsigned) (V4L2_COLORSPACE_470_SYSTEM_M)) + #define XLAT_STR_5 STRINGIFY(V4L2_COLORSPACE_470_SYSTEM_M) + [V4L2_COLORSPACE_470_SYSTEM_BG] = XLAT(V4L2_COLORSPACE_470_SYSTEM_BG), + #define XLAT_VAL_6 ((unsigned) (V4L2_COLORSPACE_470_SYSTEM_BG)) + #define XLAT_STR_6 STRINGIFY(V4L2_COLORSPACE_470_SYSTEM_BG) + [V4L2_COLORSPACE_JPEG] = XLAT(V4L2_COLORSPACE_JPEG), + #define XLAT_VAL_7 ((unsigned) (V4L2_COLORSPACE_JPEG)) + #define XLAT_STR_7 STRINGIFY(V4L2_COLORSPACE_JPEG) + [V4L2_COLORSPACE_SRGB] = XLAT(V4L2_COLORSPACE_SRGB), + #define XLAT_VAL_8 ((unsigned) (V4L2_COLORSPACE_SRGB)) + #define XLAT_STR_8 STRINGIFY(V4L2_COLORSPACE_SRGB) + [V4L2_COLORSPACE_OPRGB] = XLAT(V4L2_COLORSPACE_OPRGB), + #define XLAT_VAL_9 ((unsigned) (V4L2_COLORSPACE_OPRGB)) + #define XLAT_STR_9 STRINGIFY(V4L2_COLORSPACE_OPRGB) + [V4L2_COLORSPACE_BT2020] = XLAT(V4L2_COLORSPACE_BT2020), + #define XLAT_VAL_10 ((unsigned) (V4L2_COLORSPACE_BT2020)) + #define XLAT_STR_10 STRINGIFY(V4L2_COLORSPACE_BT2020) + [V4L2_COLORSPACE_RAW] = XLAT(V4L2_COLORSPACE_RAW), + #define XLAT_VAL_11 ((unsigned) (V4L2_COLORSPACE_RAW)) + #define XLAT_STR_11 STRINGIFY(V4L2_COLORSPACE_RAW) + [V4L2_COLORSPACE_DCI_P3] = XLAT(V4L2_COLORSPACE_DCI_P3), + #define XLAT_VAL_12 ((unsigned) (V4L2_COLORSPACE_DCI_P3)) + #define XLAT_STR_12 STRINGIFY(V4L2_COLORSPACE_DCI_P3) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat v4l2_colorspaces[1] = { { + .data = v4l2_colorspaces_xdata, + .size = ARRAY_SIZE(v4l2_colorspaces_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/v4l2_colorspaces.in b/xlat/v4l2_colorspaces.in index 1d227e49..4012d2d5 100644 --- a/xlat/v4l2_colorspaces.in +++ b/xlat/v4l2_colorspaces.in @@ -1,12 +1,19 @@ -V4L2_COLORSPACE_SMPTE170M -V4L2_COLORSPACE_SMPTE240M -V4L2_COLORSPACE_REC709 -V4L2_COLORSPACE_BT878 -V4L2_COLORSPACE_470_SYSTEM_M -V4L2_COLORSPACE_470_SYSTEM_BG -V4L2_COLORSPACE_JPEG -V4L2_COLORSPACE_SRGB -V4L2_COLORSPACE_ADOBERGB -V4L2_COLORSPACE_BT2020 -V4L2_COLORSPACE_RAW -V4L2_COLORSPACE_DCI_P3 +#value_indexed +#enum +#include +#include +#include +#include +V4L2_COLORSPACE_DEFAULT 0 +V4L2_COLORSPACE_SMPTE170M 1 +V4L2_COLORSPACE_SMPTE240M 2 +V4L2_COLORSPACE_REC709 3 +V4L2_COLORSPACE_BT878 4 +V4L2_COLORSPACE_470_SYSTEM_M 5 +V4L2_COLORSPACE_470_SYSTEM_BG 6 +V4L2_COLORSPACE_JPEG 7 +V4L2_COLORSPACE_SRGB 8 +V4L2_COLORSPACE_OPRGB 9 +V4L2_COLORSPACE_BT2020 10 +V4L2_COLORSPACE_RAW 11 +V4L2_COLORSPACE_DCI_P3 12 diff --git a/xlat/v4l2_colorspaces.m4 b/xlat/v4l2_colorspaces.m4 new file mode 100644 index 00000000..0076b062 --- /dev/null +++ b/xlat/v4l2_colorspaces.m4 @@ -0,0 +1,22 @@ +dnl Generated by ./xlat/gen.sh from ./xlat/v4l2_colorspaces.in; do not edit. +AC_DEFUN([st_CHECK_ENUMS_v4l2_colorspaces],[ +AC_CHECK_DECLS(m4_normalize([ +V4L2_COLORSPACE_DEFAULT, +V4L2_COLORSPACE_SMPTE170M, +V4L2_COLORSPACE_SMPTE240M, +V4L2_COLORSPACE_REC709, +V4L2_COLORSPACE_BT878, +V4L2_COLORSPACE_470_SYSTEM_M, +V4L2_COLORSPACE_470_SYSTEM_BG, +V4L2_COLORSPACE_JPEG, +V4L2_COLORSPACE_SRGB, +V4L2_COLORSPACE_OPRGB, +V4L2_COLORSPACE_BT2020, +V4L2_COLORSPACE_RAW, +V4L2_COLORSPACE_DCI_P3 +]),,, [ +#include +#include +#include +#include +])])]) diff --git a/xlat/v4l2_control_classes.h b/xlat/v4l2_control_classes.h index c1bb21de..59bc56f0 100644 --- a/xlat/v4l2_control_classes.h +++ b/xlat/v4l2_control_classes.h @@ -96,26 +96,153 @@ extern const struct xlat v4l2_control_classes[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat v4l2_control_classes[] = { - +static const struct xlat_data v4l2_control_classes_xdata[] = { XLAT(V4L2_CTRL_CLASS_USER), + #define XLAT_VAL_0 ((unsigned) (V4L2_CTRL_CLASS_USER)) + #define XLAT_STR_0 STRINGIFY(V4L2_CTRL_CLASS_USER) XLAT(V4L2_CTRL_CLASS_MPEG), + #define XLAT_VAL_1 ((unsigned) (V4L2_CTRL_CLASS_MPEG)) + #define XLAT_STR_1 STRINGIFY(V4L2_CTRL_CLASS_MPEG) XLAT(V4L2_CTRL_CLASS_CAMERA), + #define XLAT_VAL_2 ((unsigned) (V4L2_CTRL_CLASS_CAMERA)) + #define XLAT_STR_2 STRINGIFY(V4L2_CTRL_CLASS_CAMERA) XLAT(V4L2_CTRL_CLASS_FM_TX), + #define XLAT_VAL_3 ((unsigned) (V4L2_CTRL_CLASS_FM_TX)) + #define XLAT_STR_3 STRINGIFY(V4L2_CTRL_CLASS_FM_TX) XLAT(V4L2_CTRL_CLASS_FLASH), + #define XLAT_VAL_4 ((unsigned) (V4L2_CTRL_CLASS_FLASH)) + #define XLAT_STR_4 STRINGIFY(V4L2_CTRL_CLASS_FLASH) XLAT(V4L2_CTRL_CLASS_JPEG), + #define XLAT_VAL_5 ((unsigned) (V4L2_CTRL_CLASS_JPEG)) + #define XLAT_STR_5 STRINGIFY(V4L2_CTRL_CLASS_JPEG) XLAT(V4L2_CTRL_CLASS_IMAGE_SOURCE), + #define XLAT_VAL_6 ((unsigned) (V4L2_CTRL_CLASS_IMAGE_SOURCE)) + #define XLAT_STR_6 STRINGIFY(V4L2_CTRL_CLASS_IMAGE_SOURCE) XLAT(V4L2_CTRL_CLASS_IMAGE_PROC), + #define XLAT_VAL_7 ((unsigned) (V4L2_CTRL_CLASS_IMAGE_PROC)) + #define XLAT_STR_7 STRINGIFY(V4L2_CTRL_CLASS_IMAGE_PROC) XLAT(V4L2_CTRL_CLASS_DV), + #define XLAT_VAL_8 ((unsigned) (V4L2_CTRL_CLASS_DV)) + #define XLAT_STR_8 STRINGIFY(V4L2_CTRL_CLASS_DV) XLAT(V4L2_CTRL_CLASS_FM_RX), + #define XLAT_VAL_9 ((unsigned) (V4L2_CTRL_CLASS_FM_RX)) + #define XLAT_STR_9 STRINGIFY(V4L2_CTRL_CLASS_FM_RX) XLAT(V4L2_CTRL_CLASS_RF_TUNER), + #define XLAT_VAL_10 ((unsigned) (V4L2_CTRL_CLASS_RF_TUNER)) + #define XLAT_STR_10 STRINGIFY(V4L2_CTRL_CLASS_RF_TUNER) XLAT(V4L2_CTRL_CLASS_DETECT), - XLAT_END + #define XLAT_VAL_11 ((unsigned) (V4L2_CTRL_CLASS_DETECT)) + #define XLAT_STR_11 STRINGIFY(V4L2_CTRL_CLASS_DETECT) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat v4l2_control_classes[1] = { { + .data = v4l2_control_classes_xdata, + .size = ARRAY_SIZE(v4l2_control_classes_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/v4l2_control_classes.in b/xlat/v4l2_control_classes.in index adbf88e2..cc86e3b2 100644 --- a/xlat/v4l2_control_classes.in +++ b/xlat/v4l2_control_classes.in @@ -1,4 +1,4 @@ -/* sort -k2,2 */ +#sorted sort -k2,2 V4L2_CTRL_CLASS_USER 0x00980000 /* Old-style 'user' controls */ V4L2_CTRL_CLASS_MPEG 0x00990000 /* MPEG-compression controls */ V4L2_CTRL_CLASS_CAMERA 0x009a0000 /* Camera class controls */ diff --git a/xlat/v4l2_control_flags.h b/xlat/v4l2_control_flags.h index 00c6157a..0e3227fb 100644 --- a/xlat/v4l2_control_flags.h +++ b/xlat/v4l2_control_flags.h @@ -3,55 +3,228 @@ #include "gcc_compat.h" #include "static_assert.h" - -#ifndef XLAT_MACROS_ONLY - -# ifdef IN_MPERS - -extern const struct xlat v4l2_control_flags[]; - -# else - -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat v4l2_control_flags[] = { #if defined(V4L2_CTRL_FLAG_DISABLED) || (defined(HAVE_DECL_V4L2_CTRL_FLAG_DISABLED) && HAVE_DECL_V4L2_CTRL_FLAG_DISABLED) - XLAT(V4L2_CTRL_FLAG_DISABLED), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CTRL_FLAG_DISABLED) == (0x0001), "V4L2_CTRL_FLAG_DISABLED != 0x0001"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CTRL_FLAG_DISABLED 0x0001 #endif #if defined(V4L2_CTRL_FLAG_GRABBED) || (defined(HAVE_DECL_V4L2_CTRL_FLAG_GRABBED) && HAVE_DECL_V4L2_CTRL_FLAG_GRABBED) - XLAT(V4L2_CTRL_FLAG_GRABBED), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CTRL_FLAG_GRABBED) == (0x0002), "V4L2_CTRL_FLAG_GRABBED != 0x0002"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CTRL_FLAG_GRABBED 0x0002 #endif #if defined(V4L2_CTRL_FLAG_READ_ONLY) || (defined(HAVE_DECL_V4L2_CTRL_FLAG_READ_ONLY) && HAVE_DECL_V4L2_CTRL_FLAG_READ_ONLY) - XLAT(V4L2_CTRL_FLAG_READ_ONLY), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CTRL_FLAG_READ_ONLY) == (0x0004), "V4L2_CTRL_FLAG_READ_ONLY != 0x0004"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CTRL_FLAG_READ_ONLY 0x0004 #endif #if defined(V4L2_CTRL_FLAG_UPDATE) || (defined(HAVE_DECL_V4L2_CTRL_FLAG_UPDATE) && HAVE_DECL_V4L2_CTRL_FLAG_UPDATE) - XLAT(V4L2_CTRL_FLAG_UPDATE), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CTRL_FLAG_UPDATE) == (0x0008), "V4L2_CTRL_FLAG_UPDATE != 0x0008"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CTRL_FLAG_UPDATE 0x0008 #endif #if defined(V4L2_CTRL_FLAG_INACTIVE) || (defined(HAVE_DECL_V4L2_CTRL_FLAG_INACTIVE) && HAVE_DECL_V4L2_CTRL_FLAG_INACTIVE) - XLAT(V4L2_CTRL_FLAG_INACTIVE), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CTRL_FLAG_INACTIVE) == (0x0010), "V4L2_CTRL_FLAG_INACTIVE != 0x0010"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CTRL_FLAG_INACTIVE 0x0010 #endif #if defined(V4L2_CTRL_FLAG_SLIDER) || (defined(HAVE_DECL_V4L2_CTRL_FLAG_SLIDER) && HAVE_DECL_V4L2_CTRL_FLAG_SLIDER) - XLAT(V4L2_CTRL_FLAG_SLIDER), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CTRL_FLAG_SLIDER) == (0x0020), "V4L2_CTRL_FLAG_SLIDER != 0x0020"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CTRL_FLAG_SLIDER 0x0020 #endif #if defined(V4L2_CTRL_FLAG_WRITE_ONLY) || (defined(HAVE_DECL_V4L2_CTRL_FLAG_WRITE_ONLY) && HAVE_DECL_V4L2_CTRL_FLAG_WRITE_ONLY) - XLAT(V4L2_CTRL_FLAG_WRITE_ONLY), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CTRL_FLAG_WRITE_ONLY) == (0x0040), "V4L2_CTRL_FLAG_WRITE_ONLY != 0x0040"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CTRL_FLAG_WRITE_ONLY 0x0040 #endif #if defined(V4L2_CTRL_FLAG_VOLATILE) || (defined(HAVE_DECL_V4L2_CTRL_FLAG_VOLATILE) && HAVE_DECL_V4L2_CTRL_FLAG_VOLATILE) - XLAT(V4L2_CTRL_FLAG_VOLATILE), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CTRL_FLAG_VOLATILE) == (0x0080), "V4L2_CTRL_FLAG_VOLATILE != 0x0080"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CTRL_FLAG_VOLATILE 0x0080 #endif #if defined(V4L2_CTRL_FLAG_HAS_PAYLOAD) || (defined(HAVE_DECL_V4L2_CTRL_FLAG_HAS_PAYLOAD) && HAVE_DECL_V4L2_CTRL_FLAG_HAS_PAYLOAD) - XLAT(V4L2_CTRL_FLAG_HAS_PAYLOAD), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CTRL_FLAG_HAS_PAYLOAD) == (0x0100), "V4L2_CTRL_FLAG_HAS_PAYLOAD != 0x0100"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CTRL_FLAG_HAS_PAYLOAD 0x0100 #endif #if defined(V4L2_CTRL_FLAG_EXECUTE_ON_WRITE) || (defined(HAVE_DECL_V4L2_CTRL_FLAG_EXECUTE_ON_WRITE) && HAVE_DECL_V4L2_CTRL_FLAG_EXECUTE_ON_WRITE) - XLAT(V4L2_CTRL_FLAG_EXECUTE_ON_WRITE), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CTRL_FLAG_EXECUTE_ON_WRITE) == (0x0200), "V4L2_CTRL_FLAG_EXECUTE_ON_WRITE != 0x0200"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CTRL_FLAG_EXECUTE_ON_WRITE 0x0200 #endif #if defined(V4L2_CTRL_FLAG_MODIFY_LAYOUT) || (defined(HAVE_DECL_V4L2_CTRL_FLAG_MODIFY_LAYOUT) && HAVE_DECL_V4L2_CTRL_FLAG_MODIFY_LAYOUT) - XLAT(V4L2_CTRL_FLAG_MODIFY_LAYOUT), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CTRL_FLAG_MODIFY_LAYOUT) == (0x0400), "V4L2_CTRL_FLAG_MODIFY_LAYOUT != 0x0400"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CTRL_FLAG_MODIFY_LAYOUT 0x0400 #endif - XLAT_END + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +extern const struct xlat v4l2_control_flags[]; + +# else + +static const struct xlat_data v4l2_control_flags_xdata[] = { + XLAT(V4L2_CTRL_FLAG_DISABLED), + #define XLAT_VAL_0 ((unsigned) (V4L2_CTRL_FLAG_DISABLED)) + #define XLAT_STR_0 STRINGIFY(V4L2_CTRL_FLAG_DISABLED) + XLAT(V4L2_CTRL_FLAG_GRABBED), + #define XLAT_VAL_1 ((unsigned) (V4L2_CTRL_FLAG_GRABBED)) + #define XLAT_STR_1 STRINGIFY(V4L2_CTRL_FLAG_GRABBED) + XLAT(V4L2_CTRL_FLAG_READ_ONLY), + #define XLAT_VAL_2 ((unsigned) (V4L2_CTRL_FLAG_READ_ONLY)) + #define XLAT_STR_2 STRINGIFY(V4L2_CTRL_FLAG_READ_ONLY) + XLAT(V4L2_CTRL_FLAG_UPDATE), + #define XLAT_VAL_3 ((unsigned) (V4L2_CTRL_FLAG_UPDATE)) + #define XLAT_STR_3 STRINGIFY(V4L2_CTRL_FLAG_UPDATE) + XLAT(V4L2_CTRL_FLAG_INACTIVE), + #define XLAT_VAL_4 ((unsigned) (V4L2_CTRL_FLAG_INACTIVE)) + #define XLAT_STR_4 STRINGIFY(V4L2_CTRL_FLAG_INACTIVE) + XLAT(V4L2_CTRL_FLAG_SLIDER), + #define XLAT_VAL_5 ((unsigned) (V4L2_CTRL_FLAG_SLIDER)) + #define XLAT_STR_5 STRINGIFY(V4L2_CTRL_FLAG_SLIDER) + XLAT(V4L2_CTRL_FLAG_WRITE_ONLY), + #define XLAT_VAL_6 ((unsigned) (V4L2_CTRL_FLAG_WRITE_ONLY)) + #define XLAT_STR_6 STRINGIFY(V4L2_CTRL_FLAG_WRITE_ONLY) + XLAT(V4L2_CTRL_FLAG_VOLATILE), + #define XLAT_VAL_7 ((unsigned) (V4L2_CTRL_FLAG_VOLATILE)) + #define XLAT_STR_7 STRINGIFY(V4L2_CTRL_FLAG_VOLATILE) + XLAT(V4L2_CTRL_FLAG_HAS_PAYLOAD), + #define XLAT_VAL_8 ((unsigned) (V4L2_CTRL_FLAG_HAS_PAYLOAD)) + #define XLAT_STR_8 STRINGIFY(V4L2_CTRL_FLAG_HAS_PAYLOAD) + XLAT(V4L2_CTRL_FLAG_EXECUTE_ON_WRITE), + #define XLAT_VAL_9 ((unsigned) (V4L2_CTRL_FLAG_EXECUTE_ON_WRITE)) + #define XLAT_STR_9 STRINGIFY(V4L2_CTRL_FLAG_EXECUTE_ON_WRITE) + XLAT(V4L2_CTRL_FLAG_MODIFY_LAYOUT), + #define XLAT_VAL_10 ((unsigned) (V4L2_CTRL_FLAG_MODIFY_LAYOUT)) + #define XLAT_STR_10 STRINGIFY(V4L2_CTRL_FLAG_MODIFY_LAYOUT) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat v4l2_control_flags[1] = { { + .data = v4l2_control_flags_xdata, + .size = ARRAY_SIZE(v4l2_control_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/v4l2_control_flags.in b/xlat/v4l2_control_flags.in index 154d7b0e..025b2b1b 100644 --- a/xlat/v4l2_control_flags.in +++ b/xlat/v4l2_control_flags.in @@ -1,11 +1,11 @@ -V4L2_CTRL_FLAG_DISABLED -V4L2_CTRL_FLAG_GRABBED -V4L2_CTRL_FLAG_READ_ONLY -V4L2_CTRL_FLAG_UPDATE -V4L2_CTRL_FLAG_INACTIVE -V4L2_CTRL_FLAG_SLIDER -V4L2_CTRL_FLAG_WRITE_ONLY -V4L2_CTRL_FLAG_VOLATILE -V4L2_CTRL_FLAG_HAS_PAYLOAD -V4L2_CTRL_FLAG_EXECUTE_ON_WRITE -V4L2_CTRL_FLAG_MODIFY_LAYOUT +V4L2_CTRL_FLAG_DISABLED 0x0001 +V4L2_CTRL_FLAG_GRABBED 0x0002 +V4L2_CTRL_FLAG_READ_ONLY 0x0004 +V4L2_CTRL_FLAG_UPDATE 0x0008 +V4L2_CTRL_FLAG_INACTIVE 0x0010 +V4L2_CTRL_FLAG_SLIDER 0x0020 +V4L2_CTRL_FLAG_WRITE_ONLY 0x0040 +V4L2_CTRL_FLAG_VOLATILE 0x0080 +V4L2_CTRL_FLAG_HAS_PAYLOAD 0x0100 +V4L2_CTRL_FLAG_EXECUTE_ON_WRITE 0x0200 +V4L2_CTRL_FLAG_MODIFY_LAYOUT 0x0400 diff --git a/xlat/v4l2_control_id_bases.h b/xlat/v4l2_control_id_bases.h index 7f492b37..533af7b2 100644 --- a/xlat/v4l2_control_id_bases.h +++ b/xlat/v4l2_control_id_bases.h @@ -84,6 +84,13 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define V4L2_CID_USER_IMX_BASE (V4L2_CID_BASE | 0x10b0) #endif +#if defined(V4L2_CID_USER_ATMEL_ISC_BASE) || (defined(HAVE_DECL_V4L2_CID_USER_ATMEL_ISC_BASE) && HAVE_DECL_V4L2_CID_USER_ATMEL_ISC_BASE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CID_USER_ATMEL_ISC_BASE) == ((V4L2_CID_BASE | 0x10c0)), "V4L2_CID_USER_ATMEL_ISC_BASE != (V4L2_CID_BASE | 0x10c0)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CID_USER_ATMEL_ISC_BASE (V4L2_CID_BASE | 0x10c0) +#endif #if defined(V4L2_CID_MPEG_BASE) || (defined(HAVE_DECL_V4L2_CID_MPEG_BASE) && HAVE_DECL_V4L2_CID_MPEG_BASE) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((V4L2_CID_MPEG_BASE) == ((V4L2_CTRL_CLASS_MPEG | 0x900)), "V4L2_CID_MPEG_BASE != (V4L2_CTRL_CLASS_MPEG | 0x900)"); @@ -184,20 +191,37 @@ extern const struct xlat v4l2_control_id_bases[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat v4l2_control_id_bases[] = { +static const struct xlat_data v4l2_control_id_bases_xdata[] = { XLAT(V4L2_CID_BASE), + #define XLAT_VAL_0 ((unsigned) (V4L2_CID_BASE)) + #define XLAT_STR_0 STRINGIFY(V4L2_CID_BASE) XLAT(V4L2_CID_USER_MEYE_BASE), + #define XLAT_VAL_1 ((unsigned) (V4L2_CID_USER_MEYE_BASE)) + #define XLAT_STR_1 STRINGIFY(V4L2_CID_USER_MEYE_BASE) XLAT(V4L2_CID_USER_BTTV_BASE), + #define XLAT_VAL_2 ((unsigned) (V4L2_CID_USER_BTTV_BASE)) + #define XLAT_STR_2 STRINGIFY(V4L2_CID_USER_BTTV_BASE) XLAT(V4L2_CID_USER_S2255_BASE), + #define XLAT_VAL_3 ((unsigned) (V4L2_CID_USER_S2255_BASE)) + #define XLAT_STR_3 STRINGIFY(V4L2_CID_USER_S2255_BASE) XLAT(V4L2_CID_USER_SI476X_BASE), + #define XLAT_VAL_4 ((unsigned) (V4L2_CID_USER_SI476X_BASE)) + #define XLAT_STR_4 STRINGIFY(V4L2_CID_USER_SI476X_BASE) XLAT(V4L2_CID_USER_TI_VPE_BASE), + #define XLAT_VAL_5 ((unsigned) (V4L2_CID_USER_TI_VPE_BASE)) + #define XLAT_STR_5 STRINGIFY(V4L2_CID_USER_TI_VPE_BASE) XLAT(V4L2_CID_USER_SAA7134_BASE), + #define XLAT_VAL_6 ((unsigned) (V4L2_CID_USER_SAA7134_BASE)) + #define XLAT_STR_6 STRINGIFY(V4L2_CID_USER_SAA7134_BASE) XLAT(V4L2_CID_USER_ADV7180_BASE), + #define XLAT_VAL_7 ((unsigned) (V4L2_CID_USER_ADV7180_BASE)) + #define XLAT_STR_7 STRINGIFY(V4L2_CID_USER_ADV7180_BASE) XLAT(V4L2_CID_USER_TC358743_BASE), + #define XLAT_VAL_8 ((unsigned) (V4L2_CID_USER_TC358743_BASE)) + #define XLAT_STR_8 STRINGIFY(V4L2_CID_USER_TC358743_BASE) XLAT(V4L2_CID_USER_MAX217X_BASE), + #define XLAT_VAL_9 ((unsigned) (V4L2_CID_USER_MAX217X_BASE)) + #define XLAT_STR_9 STRINGIFY(V4L2_CID_USER_MAX217X_BASE) #ifndef STRACE_WORKAROUND_FOR_V4L2_CID_USER_IMX_BASE # define STRACE_WORKAROUND_FOR_V4L2_CID_USER_IMX_BASE /* @@ -214,22 +238,264 @@ const struct xlat v4l2_control_id_bases[] = { # undef V4L2_CID_USER_IMX_BASE #endif XLAT(V4L2_CID_USER_IMX_BASE), + #define XLAT_VAL_10 ((unsigned) (V4L2_CID_USER_IMX_BASE)) + #define XLAT_STR_10 STRINGIFY(V4L2_CID_USER_IMX_BASE) + XLAT(V4L2_CID_USER_ATMEL_ISC_BASE), + #define XLAT_VAL_11 ((unsigned) (V4L2_CID_USER_ATMEL_ISC_BASE)) + #define XLAT_STR_11 STRINGIFY(V4L2_CID_USER_ATMEL_ISC_BASE) XLAT(V4L2_CID_MPEG_BASE), + #define XLAT_VAL_12 ((unsigned) (V4L2_CID_MPEG_BASE)) + #define XLAT_STR_12 STRINGIFY(V4L2_CID_MPEG_BASE) XLAT(V4L2_CID_MPEG_CX2341X_BASE), + #define XLAT_VAL_13 ((unsigned) (V4L2_CID_MPEG_CX2341X_BASE)) + #define XLAT_STR_13 STRINGIFY(V4L2_CID_MPEG_CX2341X_BASE) XLAT(V4L2_CID_MPEG_MFC51_BASE), + #define XLAT_VAL_14 ((unsigned) (V4L2_CID_MPEG_MFC51_BASE)) + #define XLAT_STR_14 STRINGIFY(V4L2_CID_MPEG_MFC51_BASE) XLAT(V4L2_CID_CAMERA_CLASS_BASE), + #define XLAT_VAL_15 ((unsigned) (V4L2_CID_CAMERA_CLASS_BASE)) + #define XLAT_STR_15 STRINGIFY(V4L2_CID_CAMERA_CLASS_BASE) XLAT(V4L2_CID_FM_TX_CLASS_BASE), + #define XLAT_VAL_16 ((unsigned) (V4L2_CID_FM_TX_CLASS_BASE)) + #define XLAT_STR_16 STRINGIFY(V4L2_CID_FM_TX_CLASS_BASE) XLAT(V4L2_CID_FLASH_CLASS_BASE), + #define XLAT_VAL_17 ((unsigned) (V4L2_CID_FLASH_CLASS_BASE)) + #define XLAT_STR_17 STRINGIFY(V4L2_CID_FLASH_CLASS_BASE) XLAT(V4L2_CID_JPEG_CLASS_BASE), + #define XLAT_VAL_18 ((unsigned) (V4L2_CID_JPEG_CLASS_BASE)) + #define XLAT_STR_18 STRINGIFY(V4L2_CID_JPEG_CLASS_BASE) XLAT(V4L2_CID_IMAGE_SOURCE_CLASS_BASE), + #define XLAT_VAL_19 ((unsigned) (V4L2_CID_IMAGE_SOURCE_CLASS_BASE)) + #define XLAT_STR_19 STRINGIFY(V4L2_CID_IMAGE_SOURCE_CLASS_BASE) XLAT(V4L2_CID_IMAGE_PROC_CLASS_BASE), + #define XLAT_VAL_20 ((unsigned) (V4L2_CID_IMAGE_PROC_CLASS_BASE)) + #define XLAT_STR_20 STRINGIFY(V4L2_CID_IMAGE_PROC_CLASS_BASE) XLAT(V4L2_CID_DV_CLASS_BASE), + #define XLAT_VAL_21 ((unsigned) (V4L2_CID_DV_CLASS_BASE)) + #define XLAT_STR_21 STRINGIFY(V4L2_CID_DV_CLASS_BASE) XLAT(V4L2_CID_FM_RX_CLASS_BASE), + #define XLAT_VAL_22 ((unsigned) (V4L2_CID_FM_RX_CLASS_BASE)) + #define XLAT_STR_22 STRINGIFY(V4L2_CID_FM_RX_CLASS_BASE) XLAT(V4L2_CID_RF_TUNER_CLASS_BASE), + #define XLAT_VAL_23 ((unsigned) (V4L2_CID_RF_TUNER_CLASS_BASE)) + #define XLAT_STR_23 STRINGIFY(V4L2_CID_RF_TUNER_CLASS_BASE) XLAT(V4L2_CID_DETECT_CLASS_BASE), - XLAT_END + #define XLAT_VAL_24 ((unsigned) (V4L2_CID_DETECT_CLASS_BASE)) + #define XLAT_STR_24 STRINGIFY(V4L2_CID_DETECT_CLASS_BASE) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat v4l2_control_id_bases[1] = { { + .data = v4l2_control_id_bases_xdata, + .size = ARRAY_SIZE(v4l2_control_id_bases_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/v4l2_control_id_bases.in b/xlat/v4l2_control_id_bases.in index a0f9ccae..e2e68073 100644 --- a/xlat/v4l2_control_id_bases.in +++ b/xlat/v4l2_control_id_bases.in @@ -24,6 +24,7 @@ V4L2_CID_USER_MAX217X_BASE (V4L2_CID_BASE | 0x1090) # undef V4L2_CID_USER_IMX_BASE #endif V4L2_CID_USER_IMX_BASE (V4L2_CID_BASE | 0x10b0) +V4L2_CID_USER_ATMEL_ISC_BASE (V4L2_CID_BASE | 0x10c0) V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900) V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000) V4L2_CID_MPEG_MFC51_BASE (V4L2_CTRL_CLASS_MPEG | 0x1100) diff --git a/xlat/v4l2_control_ids.h b/xlat/v4l2_control_ids.h index 7962edf1..f5cf7346 100644 --- a/xlat/v4l2_control_ids.h +++ b/xlat/v4l2_control_ids.h @@ -675,6 +675,20 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define V4L2_CID_MPEG_VIDEO_MPEG2_QUANTIZATION (V4L2_CID_MPEG_BASE+251) #endif +#if defined(V4L2_CID_FWHT_I_FRAME_QP) || (defined(HAVE_DECL_V4L2_CID_FWHT_I_FRAME_QP) && HAVE_DECL_V4L2_CID_FWHT_I_FRAME_QP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CID_FWHT_I_FRAME_QP) == ((V4L2_CID_MPEG_BASE+290)), "V4L2_CID_FWHT_I_FRAME_QP != (V4L2_CID_MPEG_BASE+290)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CID_FWHT_I_FRAME_QP (V4L2_CID_MPEG_BASE+290) +#endif +#if defined(V4L2_CID_FWHT_P_FRAME_QP) || (defined(HAVE_DECL_V4L2_CID_FWHT_P_FRAME_QP) && HAVE_DECL_V4L2_CID_FWHT_P_FRAME_QP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CID_FWHT_P_FRAME_QP) == ((V4L2_CID_MPEG_BASE+291)), "V4L2_CID_FWHT_P_FRAME_QP != (V4L2_CID_MPEG_BASE+291)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CID_FWHT_P_FRAME_QP (V4L2_CID_MPEG_BASE+291) +#endif #if defined(V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP) == ((V4L2_CID_MPEG_BASE+300)), "V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP != (V4L2_CID_MPEG_BASE+300)"); @@ -955,6 +969,34 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET (V4L2_CID_MPEG_BASE+384) #endif +#if defined(V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP) == ((V4L2_CID_MPEG_BASE+385)), "V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP != (V4L2_CID_MPEG_BASE+385)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP (V4L2_CID_MPEG_BASE+385) +#endif +#if defined(V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP) == ((V4L2_CID_MPEG_BASE+386)), "V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP != (V4L2_CID_MPEG_BASE+386)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP (V4L2_CID_MPEG_BASE+386) +#endif +#if defined(V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP) == ((V4L2_CID_MPEG_BASE+387)), "V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP != (V4L2_CID_MPEG_BASE+387)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP (V4L2_CID_MPEG_BASE+387) +#endif +#if defined(V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP) == ((V4L2_CID_MPEG_BASE+388)), "V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP != (V4L2_CID_MPEG_BASE+388)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP (V4L2_CID_MPEG_BASE+388) +#endif #if defined(V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP) || (defined(HAVE_DECL_V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP) && HAVE_DECL_V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP) == ((V4L2_CID_MPEG_BASE+400)), "V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP != (V4L2_CID_MPEG_BASE+400)"); @@ -2152,6 +2194,13 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define V4L2_CID_TEST_PATTERN_GREENB (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 7) #endif +#if defined(V4L2_CID_UNIT_CELL_SIZE) || (defined(HAVE_DECL_V4L2_CID_UNIT_CELL_SIZE) && HAVE_DECL_V4L2_CID_UNIT_CELL_SIZE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CID_UNIT_CELL_SIZE) == ((V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 8)), "V4L2_CID_UNIT_CELL_SIZE != (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 8)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CID_UNIT_CELL_SIZE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 8) +#endif #if defined(V4L2_CID_LINK_FREQ) || (defined(HAVE_DECL_V4L2_CID_LINK_FREQ) && HAVE_DECL_V4L2_CID_LINK_FREQ) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((V4L2_CID_LINK_FREQ) == ((V4L2_CID_IMAGE_PROC_CLASS_BASE + 1)), "V4L2_CID_LINK_FREQ != (V4L2_CID_IMAGE_PROC_CLASS_BASE + 1)"); @@ -2378,367 +2427,3832 @@ extern const struct xlat v4l2_control_ids[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat v4l2_control_ids[] = { +static const struct xlat_data v4l2_control_ids_xdata[] = { XLAT(V4L2_CID_BRIGHTNESS), + #define XLAT_VAL_0 ((unsigned) (V4L2_CID_BRIGHTNESS)) + #define XLAT_STR_0 STRINGIFY(V4L2_CID_BRIGHTNESS) XLAT(V4L2_CID_CONTRAST), + #define XLAT_VAL_1 ((unsigned) (V4L2_CID_CONTRAST)) + #define XLAT_STR_1 STRINGIFY(V4L2_CID_CONTRAST) XLAT(V4L2_CID_SATURATION), + #define XLAT_VAL_2 ((unsigned) (V4L2_CID_SATURATION)) + #define XLAT_STR_2 STRINGIFY(V4L2_CID_SATURATION) XLAT(V4L2_CID_HUE), + #define XLAT_VAL_3 ((unsigned) (V4L2_CID_HUE)) + #define XLAT_STR_3 STRINGIFY(V4L2_CID_HUE) XLAT(V4L2_CID_AUDIO_VOLUME), + #define XLAT_VAL_4 ((unsigned) (V4L2_CID_AUDIO_VOLUME)) + #define XLAT_STR_4 STRINGIFY(V4L2_CID_AUDIO_VOLUME) XLAT(V4L2_CID_AUDIO_BALANCE), + #define XLAT_VAL_5 ((unsigned) (V4L2_CID_AUDIO_BALANCE)) + #define XLAT_STR_5 STRINGIFY(V4L2_CID_AUDIO_BALANCE) XLAT(V4L2_CID_AUDIO_BASS), + #define XLAT_VAL_6 ((unsigned) (V4L2_CID_AUDIO_BASS)) + #define XLAT_STR_6 STRINGIFY(V4L2_CID_AUDIO_BASS) XLAT(V4L2_CID_AUDIO_TREBLE), + #define XLAT_VAL_7 ((unsigned) (V4L2_CID_AUDIO_TREBLE)) + #define XLAT_STR_7 STRINGIFY(V4L2_CID_AUDIO_TREBLE) XLAT(V4L2_CID_AUDIO_MUTE), + #define XLAT_VAL_8 ((unsigned) (V4L2_CID_AUDIO_MUTE)) + #define XLAT_STR_8 STRINGIFY(V4L2_CID_AUDIO_MUTE) XLAT(V4L2_CID_AUDIO_LOUDNESS), + #define XLAT_VAL_9 ((unsigned) (V4L2_CID_AUDIO_LOUDNESS)) + #define XLAT_STR_9 STRINGIFY(V4L2_CID_AUDIO_LOUDNESS) XLAT(V4L2_CID_BLACK_LEVEL), + #define XLAT_VAL_10 ((unsigned) (V4L2_CID_BLACK_LEVEL)) + #define XLAT_STR_10 STRINGIFY(V4L2_CID_BLACK_LEVEL) XLAT(V4L2_CID_AUTO_WHITE_BALANCE), + #define XLAT_VAL_11 ((unsigned) (V4L2_CID_AUTO_WHITE_BALANCE)) + #define XLAT_STR_11 STRINGIFY(V4L2_CID_AUTO_WHITE_BALANCE) XLAT(V4L2_CID_DO_WHITE_BALANCE), + #define XLAT_VAL_12 ((unsigned) (V4L2_CID_DO_WHITE_BALANCE)) + #define XLAT_STR_12 STRINGIFY(V4L2_CID_DO_WHITE_BALANCE) XLAT(V4L2_CID_RED_BALANCE), + #define XLAT_VAL_13 ((unsigned) (V4L2_CID_RED_BALANCE)) + #define XLAT_STR_13 STRINGIFY(V4L2_CID_RED_BALANCE) XLAT(V4L2_CID_BLUE_BALANCE), + #define XLAT_VAL_14 ((unsigned) (V4L2_CID_BLUE_BALANCE)) + #define XLAT_STR_14 STRINGIFY(V4L2_CID_BLUE_BALANCE) XLAT(V4L2_CID_GAMMA), + #define XLAT_VAL_15 ((unsigned) (V4L2_CID_GAMMA)) + #define XLAT_STR_15 STRINGIFY(V4L2_CID_GAMMA) XLAT(V4L2_CID_EXPOSURE), + #define XLAT_VAL_16 ((unsigned) (V4L2_CID_EXPOSURE)) + #define XLAT_STR_16 STRINGIFY(V4L2_CID_EXPOSURE) XLAT(V4L2_CID_AUTOGAIN), + #define XLAT_VAL_17 ((unsigned) (V4L2_CID_AUTOGAIN)) + #define XLAT_STR_17 STRINGIFY(V4L2_CID_AUTOGAIN) XLAT(V4L2_CID_GAIN), + #define XLAT_VAL_18 ((unsigned) (V4L2_CID_GAIN)) + #define XLAT_STR_18 STRINGIFY(V4L2_CID_GAIN) XLAT(V4L2_CID_HFLIP), + #define XLAT_VAL_19 ((unsigned) (V4L2_CID_HFLIP)) + #define XLAT_STR_19 STRINGIFY(V4L2_CID_HFLIP) XLAT(V4L2_CID_VFLIP), + #define XLAT_VAL_20 ((unsigned) (V4L2_CID_VFLIP)) + #define XLAT_STR_20 STRINGIFY(V4L2_CID_VFLIP) XLAT(V4L2_CID_HCENTER), + #define XLAT_VAL_21 ((unsigned) (V4L2_CID_HCENTER)) + #define XLAT_STR_21 STRINGIFY(V4L2_CID_HCENTER) XLAT(V4L2_CID_VCENTER), + #define XLAT_VAL_22 ((unsigned) (V4L2_CID_VCENTER)) + #define XLAT_STR_22 STRINGIFY(V4L2_CID_VCENTER) XLAT(V4L2_CID_POWER_LINE_FREQUENCY), + #define XLAT_VAL_23 ((unsigned) (V4L2_CID_POWER_LINE_FREQUENCY)) + #define XLAT_STR_23 STRINGIFY(V4L2_CID_POWER_LINE_FREQUENCY) XLAT(V4L2_CID_HUE_AUTO), + #define XLAT_VAL_24 ((unsigned) (V4L2_CID_HUE_AUTO)) + #define XLAT_STR_24 STRINGIFY(V4L2_CID_HUE_AUTO) XLAT(V4L2_CID_WHITE_BALANCE_TEMPERATURE), + #define XLAT_VAL_25 ((unsigned) (V4L2_CID_WHITE_BALANCE_TEMPERATURE)) + #define XLAT_STR_25 STRINGIFY(V4L2_CID_WHITE_BALANCE_TEMPERATURE) XLAT(V4L2_CID_SHARPNESS), + #define XLAT_VAL_26 ((unsigned) (V4L2_CID_SHARPNESS)) + #define XLAT_STR_26 STRINGIFY(V4L2_CID_SHARPNESS) XLAT(V4L2_CID_BACKLIGHT_COMPENSATION), + #define XLAT_VAL_27 ((unsigned) (V4L2_CID_BACKLIGHT_COMPENSATION)) + #define XLAT_STR_27 STRINGIFY(V4L2_CID_BACKLIGHT_COMPENSATION) XLAT(V4L2_CID_CHROMA_AGC), + #define XLAT_VAL_28 ((unsigned) (V4L2_CID_CHROMA_AGC)) + #define XLAT_STR_28 STRINGIFY(V4L2_CID_CHROMA_AGC) XLAT(V4L2_CID_COLOR_KILLER), + #define XLAT_VAL_29 ((unsigned) (V4L2_CID_COLOR_KILLER)) + #define XLAT_STR_29 STRINGIFY(V4L2_CID_COLOR_KILLER) XLAT(V4L2_CID_COLORFX), + #define XLAT_VAL_30 ((unsigned) (V4L2_CID_COLORFX)) + #define XLAT_STR_30 STRINGIFY(V4L2_CID_COLORFX) XLAT(V4L2_CID_AUTOBRIGHTNESS), + #define XLAT_VAL_31 ((unsigned) (V4L2_CID_AUTOBRIGHTNESS)) + #define XLAT_STR_31 STRINGIFY(V4L2_CID_AUTOBRIGHTNESS) XLAT(V4L2_CID_BAND_STOP_FILTER), + #define XLAT_VAL_32 ((unsigned) (V4L2_CID_BAND_STOP_FILTER)) + #define XLAT_STR_32 STRINGIFY(V4L2_CID_BAND_STOP_FILTER) XLAT(V4L2_CID_ROTATE), + #define XLAT_VAL_33 ((unsigned) (V4L2_CID_ROTATE)) + #define XLAT_STR_33 STRINGIFY(V4L2_CID_ROTATE) XLAT(V4L2_CID_BG_COLOR), + #define XLAT_VAL_34 ((unsigned) (V4L2_CID_BG_COLOR)) + #define XLAT_STR_34 STRINGIFY(V4L2_CID_BG_COLOR) XLAT(V4L2_CID_CHROMA_GAIN), + #define XLAT_VAL_35 ((unsigned) (V4L2_CID_CHROMA_GAIN)) + #define XLAT_STR_35 STRINGIFY(V4L2_CID_CHROMA_GAIN) XLAT(V4L2_CID_ILLUMINATORS_1), + #define XLAT_VAL_36 ((unsigned) (V4L2_CID_ILLUMINATORS_1)) + #define XLAT_STR_36 STRINGIFY(V4L2_CID_ILLUMINATORS_1) XLAT(V4L2_CID_ILLUMINATORS_2), + #define XLAT_VAL_37 ((unsigned) (V4L2_CID_ILLUMINATORS_2)) + #define XLAT_STR_37 STRINGIFY(V4L2_CID_ILLUMINATORS_2) XLAT(V4L2_CID_MIN_BUFFERS_FOR_CAPTURE), + #define XLAT_VAL_38 ((unsigned) (V4L2_CID_MIN_BUFFERS_FOR_CAPTURE)) + #define XLAT_STR_38 STRINGIFY(V4L2_CID_MIN_BUFFERS_FOR_CAPTURE) XLAT(V4L2_CID_MIN_BUFFERS_FOR_OUTPUT), + #define XLAT_VAL_39 ((unsigned) (V4L2_CID_MIN_BUFFERS_FOR_OUTPUT)) + #define XLAT_STR_39 STRINGIFY(V4L2_CID_MIN_BUFFERS_FOR_OUTPUT) XLAT(V4L2_CID_ALPHA_COMPONENT), + #define XLAT_VAL_40 ((unsigned) (V4L2_CID_ALPHA_COMPONENT)) + #define XLAT_STR_40 STRINGIFY(V4L2_CID_ALPHA_COMPONENT) XLAT(V4L2_CID_COLORFX_CBCR), + #define XLAT_VAL_41 ((unsigned) (V4L2_CID_COLORFX_CBCR)) + #define XLAT_STR_41 STRINGIFY(V4L2_CID_COLORFX_CBCR) XLAT(V4L2_CID_MPEG_STREAM_TYPE), + #define XLAT_VAL_42 ((unsigned) (V4L2_CID_MPEG_STREAM_TYPE)) + #define XLAT_STR_42 STRINGIFY(V4L2_CID_MPEG_STREAM_TYPE) XLAT(V4L2_CID_MPEG_STREAM_PID_PMT), + #define XLAT_VAL_43 ((unsigned) (V4L2_CID_MPEG_STREAM_PID_PMT)) + #define XLAT_STR_43 STRINGIFY(V4L2_CID_MPEG_STREAM_PID_PMT) XLAT(V4L2_CID_MPEG_STREAM_PID_AUDIO), + #define XLAT_VAL_44 ((unsigned) (V4L2_CID_MPEG_STREAM_PID_AUDIO)) + #define XLAT_STR_44 STRINGIFY(V4L2_CID_MPEG_STREAM_PID_AUDIO) XLAT(V4L2_CID_MPEG_STREAM_PID_VIDEO), + #define XLAT_VAL_45 ((unsigned) (V4L2_CID_MPEG_STREAM_PID_VIDEO)) + #define XLAT_STR_45 STRINGIFY(V4L2_CID_MPEG_STREAM_PID_VIDEO) XLAT(V4L2_CID_MPEG_STREAM_PID_PCR), + #define XLAT_VAL_46 ((unsigned) (V4L2_CID_MPEG_STREAM_PID_PCR)) + #define XLAT_STR_46 STRINGIFY(V4L2_CID_MPEG_STREAM_PID_PCR) XLAT(V4L2_CID_MPEG_STREAM_PES_ID_AUDIO), + #define XLAT_VAL_47 ((unsigned) (V4L2_CID_MPEG_STREAM_PES_ID_AUDIO)) + #define XLAT_STR_47 STRINGIFY(V4L2_CID_MPEG_STREAM_PES_ID_AUDIO) XLAT(V4L2_CID_MPEG_STREAM_PES_ID_VIDEO), + #define XLAT_VAL_48 ((unsigned) (V4L2_CID_MPEG_STREAM_PES_ID_VIDEO)) + #define XLAT_STR_48 STRINGIFY(V4L2_CID_MPEG_STREAM_PES_ID_VIDEO) XLAT(V4L2_CID_MPEG_STREAM_VBI_FMT), + #define XLAT_VAL_49 ((unsigned) (V4L2_CID_MPEG_STREAM_VBI_FMT)) + #define XLAT_STR_49 STRINGIFY(V4L2_CID_MPEG_STREAM_VBI_FMT) XLAT(V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ), + #define XLAT_VAL_50 ((unsigned) (V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ)) + #define XLAT_STR_50 STRINGIFY(V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ) XLAT(V4L2_CID_MPEG_AUDIO_ENCODING), + #define XLAT_VAL_51 ((unsigned) (V4L2_CID_MPEG_AUDIO_ENCODING)) + #define XLAT_STR_51 STRINGIFY(V4L2_CID_MPEG_AUDIO_ENCODING) XLAT(V4L2_CID_MPEG_AUDIO_L1_BITRATE), + #define XLAT_VAL_52 ((unsigned) (V4L2_CID_MPEG_AUDIO_L1_BITRATE)) + #define XLAT_STR_52 STRINGIFY(V4L2_CID_MPEG_AUDIO_L1_BITRATE) XLAT(V4L2_CID_MPEG_AUDIO_L2_BITRATE), + #define XLAT_VAL_53 ((unsigned) (V4L2_CID_MPEG_AUDIO_L2_BITRATE)) + #define XLAT_STR_53 STRINGIFY(V4L2_CID_MPEG_AUDIO_L2_BITRATE) XLAT(V4L2_CID_MPEG_AUDIO_L3_BITRATE), + #define XLAT_VAL_54 ((unsigned) (V4L2_CID_MPEG_AUDIO_L3_BITRATE)) + #define XLAT_STR_54 STRINGIFY(V4L2_CID_MPEG_AUDIO_L3_BITRATE) XLAT(V4L2_CID_MPEG_AUDIO_MODE), + #define XLAT_VAL_55 ((unsigned) (V4L2_CID_MPEG_AUDIO_MODE)) + #define XLAT_STR_55 STRINGIFY(V4L2_CID_MPEG_AUDIO_MODE) XLAT(V4L2_CID_MPEG_AUDIO_MODE_EXTENSION), + #define XLAT_VAL_56 ((unsigned) (V4L2_CID_MPEG_AUDIO_MODE_EXTENSION)) + #define XLAT_STR_56 STRINGIFY(V4L2_CID_MPEG_AUDIO_MODE_EXTENSION) XLAT(V4L2_CID_MPEG_AUDIO_EMPHASIS), + #define XLAT_VAL_57 ((unsigned) (V4L2_CID_MPEG_AUDIO_EMPHASIS)) + #define XLAT_STR_57 STRINGIFY(V4L2_CID_MPEG_AUDIO_EMPHASIS) XLAT(V4L2_CID_MPEG_AUDIO_CRC), + #define XLAT_VAL_58 ((unsigned) (V4L2_CID_MPEG_AUDIO_CRC)) + #define XLAT_STR_58 STRINGIFY(V4L2_CID_MPEG_AUDIO_CRC) XLAT(V4L2_CID_MPEG_AUDIO_MUTE), + #define XLAT_VAL_59 ((unsigned) (V4L2_CID_MPEG_AUDIO_MUTE)) + #define XLAT_STR_59 STRINGIFY(V4L2_CID_MPEG_AUDIO_MUTE) XLAT(V4L2_CID_MPEG_AUDIO_AAC_BITRATE), + #define XLAT_VAL_60 ((unsigned) (V4L2_CID_MPEG_AUDIO_AAC_BITRATE)) + #define XLAT_STR_60 STRINGIFY(V4L2_CID_MPEG_AUDIO_AAC_BITRATE) XLAT(V4L2_CID_MPEG_AUDIO_AC3_BITRATE), + #define XLAT_VAL_61 ((unsigned) (V4L2_CID_MPEG_AUDIO_AC3_BITRATE)) + #define XLAT_STR_61 STRINGIFY(V4L2_CID_MPEG_AUDIO_AC3_BITRATE) XLAT(V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK), + #define XLAT_VAL_62 ((unsigned) (V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK)) + #define XLAT_STR_62 STRINGIFY(V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK) XLAT(V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK), + #define XLAT_VAL_63 ((unsigned) (V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK)) + #define XLAT_STR_63 STRINGIFY(V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK) XLAT(V4L2_CID_MPEG_VIDEO_ENCODING), + #define XLAT_VAL_64 ((unsigned) (V4L2_CID_MPEG_VIDEO_ENCODING)) + #define XLAT_STR_64 STRINGIFY(V4L2_CID_MPEG_VIDEO_ENCODING) XLAT(V4L2_CID_MPEG_VIDEO_ASPECT), + #define XLAT_VAL_65 ((unsigned) (V4L2_CID_MPEG_VIDEO_ASPECT)) + #define XLAT_STR_65 STRINGIFY(V4L2_CID_MPEG_VIDEO_ASPECT) XLAT(V4L2_CID_MPEG_VIDEO_B_FRAMES), + #define XLAT_VAL_66 ((unsigned) (V4L2_CID_MPEG_VIDEO_B_FRAMES)) + #define XLAT_STR_66 STRINGIFY(V4L2_CID_MPEG_VIDEO_B_FRAMES) XLAT(V4L2_CID_MPEG_VIDEO_GOP_SIZE), + #define XLAT_VAL_67 ((unsigned) (V4L2_CID_MPEG_VIDEO_GOP_SIZE)) + #define XLAT_STR_67 STRINGIFY(V4L2_CID_MPEG_VIDEO_GOP_SIZE) XLAT(V4L2_CID_MPEG_VIDEO_GOP_CLOSURE), + #define XLAT_VAL_68 ((unsigned) (V4L2_CID_MPEG_VIDEO_GOP_CLOSURE)) + #define XLAT_STR_68 STRINGIFY(V4L2_CID_MPEG_VIDEO_GOP_CLOSURE) XLAT(V4L2_CID_MPEG_VIDEO_PULLDOWN), + #define XLAT_VAL_69 ((unsigned) (V4L2_CID_MPEG_VIDEO_PULLDOWN)) + #define XLAT_STR_69 STRINGIFY(V4L2_CID_MPEG_VIDEO_PULLDOWN) XLAT(V4L2_CID_MPEG_VIDEO_BITRATE_MODE), + #define XLAT_VAL_70 ((unsigned) (V4L2_CID_MPEG_VIDEO_BITRATE_MODE)) + #define XLAT_STR_70 STRINGIFY(V4L2_CID_MPEG_VIDEO_BITRATE_MODE) XLAT(V4L2_CID_MPEG_VIDEO_BITRATE), + #define XLAT_VAL_71 ((unsigned) (V4L2_CID_MPEG_VIDEO_BITRATE)) + #define XLAT_STR_71 STRINGIFY(V4L2_CID_MPEG_VIDEO_BITRATE) XLAT(V4L2_CID_MPEG_VIDEO_BITRATE_PEAK), + #define XLAT_VAL_72 ((unsigned) (V4L2_CID_MPEG_VIDEO_BITRATE_PEAK)) + #define XLAT_STR_72 STRINGIFY(V4L2_CID_MPEG_VIDEO_BITRATE_PEAK) XLAT(V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION), + #define XLAT_VAL_73 ((unsigned) (V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION)) + #define XLAT_STR_73 STRINGIFY(V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION) XLAT(V4L2_CID_MPEG_VIDEO_MUTE), + #define XLAT_VAL_74 ((unsigned) (V4L2_CID_MPEG_VIDEO_MUTE)) + #define XLAT_STR_74 STRINGIFY(V4L2_CID_MPEG_VIDEO_MUTE) XLAT(V4L2_CID_MPEG_VIDEO_MUTE_YUV), + #define XLAT_VAL_75 ((unsigned) (V4L2_CID_MPEG_VIDEO_MUTE_YUV)) + #define XLAT_STR_75 STRINGIFY(V4L2_CID_MPEG_VIDEO_MUTE_YUV) XLAT(V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE), + #define XLAT_VAL_76 ((unsigned) (V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE)) + #define XLAT_STR_76 STRINGIFY(V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE) XLAT(V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER), + #define XLAT_VAL_77 ((unsigned) (V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER)) + #define XLAT_STR_77 STRINGIFY(V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER) XLAT(V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB), + #define XLAT_VAL_78 ((unsigned) (V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB)) + #define XLAT_STR_78 STRINGIFY(V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB) XLAT(V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE), + #define XLAT_VAL_79 ((unsigned) (V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE)) + #define XLAT_STR_79 STRINGIFY(V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE) XLAT(V4L2_CID_MPEG_VIDEO_HEADER_MODE), + #define XLAT_VAL_80 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEADER_MODE)) + #define XLAT_STR_80 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEADER_MODE) XLAT(V4L2_CID_MPEG_VIDEO_MAX_REF_PIC), + #define XLAT_VAL_81 ((unsigned) (V4L2_CID_MPEG_VIDEO_MAX_REF_PIC)) + #define XLAT_STR_81 STRINGIFY(V4L2_CID_MPEG_VIDEO_MAX_REF_PIC) XLAT(V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE), + #define XLAT_VAL_82 ((unsigned) (V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE)) + #define XLAT_STR_82 STRINGIFY(V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE) XLAT(V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES), + #define XLAT_VAL_83 ((unsigned) (V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES)) + #define XLAT_STR_83 STRINGIFY(V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES) XLAT(V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB), + #define XLAT_VAL_84 ((unsigned) (V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB)) + #define XLAT_STR_84 STRINGIFY(V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB) XLAT(V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE), + #define XLAT_VAL_85 ((unsigned) (V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE)) + #define XLAT_STR_85 STRINGIFY(V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE) XLAT(V4L2_CID_MPEG_VIDEO_VBV_SIZE), + #define XLAT_VAL_86 ((unsigned) (V4L2_CID_MPEG_VIDEO_VBV_SIZE)) + #define XLAT_STR_86 STRINGIFY(V4L2_CID_MPEG_VIDEO_VBV_SIZE) XLAT(V4L2_CID_MPEG_VIDEO_DEC_PTS), + #define XLAT_VAL_87 ((unsigned) (V4L2_CID_MPEG_VIDEO_DEC_PTS)) + #define XLAT_STR_87 STRINGIFY(V4L2_CID_MPEG_VIDEO_DEC_PTS) XLAT(V4L2_CID_MPEG_VIDEO_DEC_FRAME), + #define XLAT_VAL_88 ((unsigned) (V4L2_CID_MPEG_VIDEO_DEC_FRAME)) + #define XLAT_STR_88 STRINGIFY(V4L2_CID_MPEG_VIDEO_DEC_FRAME) XLAT(V4L2_CID_MPEG_VIDEO_VBV_DELAY), + #define XLAT_VAL_89 ((unsigned) (V4L2_CID_MPEG_VIDEO_VBV_DELAY)) + #define XLAT_STR_89 STRINGIFY(V4L2_CID_MPEG_VIDEO_VBV_DELAY) XLAT(V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER), + #define XLAT_VAL_90 ((unsigned) (V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER)) + #define XLAT_STR_90 STRINGIFY(V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER) XLAT(V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE), + #define XLAT_VAL_91 ((unsigned) (V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE)) + #define XLAT_STR_91 STRINGIFY(V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE) XLAT(V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE), + #define XLAT_VAL_92 ((unsigned) (V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE)) + #define XLAT_STR_92 STRINGIFY(V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE) XLAT(V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME), + #define XLAT_VAL_93 ((unsigned) (V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME)) + #define XLAT_STR_93 STRINGIFY(V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME) XLAT(V4L2_CID_MPEG_VIDEO_MPEG2_SLICE_PARAMS), + #define XLAT_VAL_94 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG2_SLICE_PARAMS)) + #define XLAT_STR_94 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG2_SLICE_PARAMS) XLAT(V4L2_CID_MPEG_VIDEO_MPEG2_QUANTIZATION), + #define XLAT_VAL_95 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG2_QUANTIZATION)) + #define XLAT_STR_95 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG2_QUANTIZATION) + XLAT(V4L2_CID_FWHT_I_FRAME_QP), + #define XLAT_VAL_96 ((unsigned) (V4L2_CID_FWHT_I_FRAME_QP)) + #define XLAT_STR_96 STRINGIFY(V4L2_CID_FWHT_I_FRAME_QP) + XLAT(V4L2_CID_FWHT_P_FRAME_QP), + #define XLAT_VAL_97 ((unsigned) (V4L2_CID_FWHT_P_FRAME_QP)) + #define XLAT_STR_97 STRINGIFY(V4L2_CID_FWHT_P_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP), + #define XLAT_VAL_98 ((unsigned) (V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP)) + #define XLAT_STR_98 STRINGIFY(V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP), + #define XLAT_VAL_99 ((unsigned) (V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP)) + #define XLAT_STR_99 STRINGIFY(V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP), + #define XLAT_VAL_100 ((unsigned) (V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP)) + #define XLAT_STR_100 STRINGIFY(V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_H263_MIN_QP), + #define XLAT_VAL_101 ((unsigned) (V4L2_CID_MPEG_VIDEO_H263_MIN_QP)) + #define XLAT_STR_101 STRINGIFY(V4L2_CID_MPEG_VIDEO_H263_MIN_QP) XLAT(V4L2_CID_MPEG_VIDEO_H263_MAX_QP), + #define XLAT_VAL_102 ((unsigned) (V4L2_CID_MPEG_VIDEO_H263_MAX_QP)) + #define XLAT_STR_102 STRINGIFY(V4L2_CID_MPEG_VIDEO_H263_MAX_QP) XLAT(V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP), + #define XLAT_VAL_103 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP)) + #define XLAT_STR_103 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP), + #define XLAT_VAL_104 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP)) + #define XLAT_STR_104 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP), + #define XLAT_VAL_105 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP)) + #define XLAT_STR_105 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_H264_MIN_QP), + #define XLAT_VAL_106 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_MIN_QP)) + #define XLAT_STR_106 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_MIN_QP) XLAT(V4L2_CID_MPEG_VIDEO_H264_MAX_QP), + #define XLAT_VAL_107 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_MAX_QP)) + #define XLAT_STR_107 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_MAX_QP) XLAT(V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM), + #define XLAT_VAL_108 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM)) + #define XLAT_STR_108 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM) XLAT(V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE), + #define XLAT_VAL_109 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE)) + #define XLAT_STR_109 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE) XLAT(V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE), + #define XLAT_VAL_110 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE)) + #define XLAT_STR_110 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE) XLAT(V4L2_CID_MPEG_VIDEO_H264_I_PERIOD), + #define XLAT_VAL_111 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_I_PERIOD)) + #define XLAT_STR_111 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_I_PERIOD) XLAT(V4L2_CID_MPEG_VIDEO_H264_LEVEL), + #define XLAT_VAL_112 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_LEVEL)) + #define XLAT_STR_112 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_LEVEL) XLAT(V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA), + #define XLAT_VAL_113 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA)) + #define XLAT_STR_113 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA) XLAT(V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA), + #define XLAT_VAL_114 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA)) + #define XLAT_STR_114 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA) XLAT(V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE), + #define XLAT_VAL_115 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE)) + #define XLAT_STR_115 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE) XLAT(V4L2_CID_MPEG_VIDEO_H264_PROFILE), + #define XLAT_VAL_116 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_PROFILE)) + #define XLAT_STR_116 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_PROFILE) XLAT(V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT), + #define XLAT_VAL_117 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT)) + #define XLAT_STR_117 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT) XLAT(V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH), + #define XLAT_VAL_118 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH)) + #define XLAT_STR_118 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH) XLAT(V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE), + #define XLAT_VAL_119 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE)) + #define XLAT_STR_119 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE) XLAT(V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC), + #define XLAT_VAL_120 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC)) + #define XLAT_STR_120 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC) XLAT(V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING), + #define XLAT_VAL_121 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING)) + #define XLAT_STR_121 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING) XLAT(V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0), + #define XLAT_VAL_122 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0)) + #define XLAT_STR_122 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0) XLAT(V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE), + #define XLAT_VAL_123 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE)) + #define XLAT_STR_123 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE) XLAT(V4L2_CID_MPEG_VIDEO_H264_FMO), + #define XLAT_VAL_124 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_FMO)) + #define XLAT_STR_124 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_FMO) XLAT(V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE), + #define XLAT_VAL_125 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE)) + #define XLAT_STR_125 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE) XLAT(V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP), + #define XLAT_VAL_126 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP)) + #define XLAT_STR_126 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP) XLAT(V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION), + #define XLAT_VAL_127 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION)) + #define XLAT_STR_127 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION) XLAT(V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE), + #define XLAT_VAL_128 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE)) + #define XLAT_STR_128 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE) XLAT(V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH), + #define XLAT_VAL_129 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH)) + #define XLAT_STR_129 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH) XLAT(V4L2_CID_MPEG_VIDEO_H264_ASO), + #define XLAT_VAL_130 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_ASO)) + #define XLAT_STR_130 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_ASO) XLAT(V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER), + #define XLAT_VAL_131 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER)) + #define XLAT_STR_131 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER) XLAT(V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING), + #define XLAT_VAL_132 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING)) + #define XLAT_STR_132 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING) XLAT(V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE), + #define XLAT_VAL_133 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE)) + #define XLAT_STR_133 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE) XLAT(V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER), + #define XLAT_VAL_134 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER)) + #define XLAT_STR_134 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER) XLAT(V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP), + #define XLAT_VAL_135 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP)) + #define XLAT_STR_135 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP) XLAT(V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION), + #define XLAT_VAL_136 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION)) + #define XLAT_STR_136 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION) XLAT(V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET), + #define XLAT_VAL_137 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET)) + #define XLAT_STR_137 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET) + XLAT(V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP), + #define XLAT_VAL_138 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP)) + #define XLAT_STR_138 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP) + XLAT(V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP), + #define XLAT_VAL_139 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP)) + #define XLAT_STR_139 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP) + XLAT(V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP), + #define XLAT_VAL_140 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP)) + #define XLAT_STR_140 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP) + XLAT(V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP), + #define XLAT_VAL_141 ((unsigned) (V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP)) + #define XLAT_STR_141 STRINGIFY(V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP) XLAT(V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP), + #define XLAT_VAL_142 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP)) + #define XLAT_STR_142 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP), + #define XLAT_VAL_143 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP)) + #define XLAT_STR_143 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP), + #define XLAT_VAL_144 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP)) + #define XLAT_STR_144 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP), + #define XLAT_VAL_145 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP)) + #define XLAT_STR_145 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP) XLAT(V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP), + #define XLAT_VAL_146 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP)) + #define XLAT_STR_146 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP) XLAT(V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL), + #define XLAT_VAL_147 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL)) + #define XLAT_STR_147 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL) XLAT(V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE), + #define XLAT_VAL_148 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE)) + #define XLAT_STR_148 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE) XLAT(V4L2_CID_MPEG_VIDEO_MPEG4_QPEL), + #define XLAT_VAL_149 ((unsigned) (V4L2_CID_MPEG_VIDEO_MPEG4_QPEL)) + #define XLAT_STR_149 STRINGIFY(V4L2_CID_MPEG_VIDEO_MPEG4_QPEL) XLAT(V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS), + #define XLAT_VAL_150 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS)) + #define XLAT_STR_150 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS) XLAT(V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4), + #define XLAT_VAL_151 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4)) + #define XLAT_STR_151 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4) XLAT(V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES), + #define XLAT_VAL_152 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES)) + #define XLAT_STR_152 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES) XLAT(V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL), + #define XLAT_VAL_153 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL)) + #define XLAT_STR_153 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL) XLAT(V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS), + #define XLAT_VAL_154 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS)) + #define XLAT_STR_154 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS) XLAT(V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD), + #define XLAT_VAL_155 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD)) + #define XLAT_STR_155 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD) XLAT(V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL), + #define XLAT_VAL_156 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL)) + #define XLAT_STR_156 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL) XLAT(V4L2_CID_MPEG_VIDEO_VPX_MIN_QP), + #define XLAT_VAL_157 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_MIN_QP)) + #define XLAT_STR_157 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_MIN_QP) XLAT(V4L2_CID_MPEG_VIDEO_VPX_MAX_QP), + #define XLAT_VAL_158 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_MAX_QP)) + #define XLAT_STR_158 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_MAX_QP) XLAT(V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP), + #define XLAT_VAL_159 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP)) + #define XLAT_STR_159 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP), + #define XLAT_VAL_160 ((unsigned) (V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP)) + #define XLAT_STR_160 STRINGIFY(V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_VP8_PROFILE), + #define XLAT_VAL_161 ((unsigned) (V4L2_CID_MPEG_VIDEO_VP8_PROFILE)) + #define XLAT_STR_161 STRINGIFY(V4L2_CID_MPEG_VIDEO_VP8_PROFILE) XLAT(V4L2_CID_MPEG_VIDEO_VP9_PROFILE), + #define XLAT_VAL_162 ((unsigned) (V4L2_CID_MPEG_VIDEO_VP9_PROFILE)) + #define XLAT_STR_162 STRINGIFY(V4L2_CID_MPEG_VIDEO_VP9_PROFILE) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP), + #define XLAT_VAL_163 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP)) + #define XLAT_STR_163 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP), + #define XLAT_VAL_164 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP)) + #define XLAT_STR_164 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP), + #define XLAT_VAL_165 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP)) + #define XLAT_STR_165 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP), + #define XLAT_VAL_166 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP)) + #define XLAT_STR_166 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP), + #define XLAT_VAL_167 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP)) + #define XLAT_STR_167 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP), + #define XLAT_VAL_168 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP)) + #define XLAT_STR_168 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE), + #define XLAT_VAL_169 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE)) + #define XLAT_STR_169 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER), + #define XLAT_VAL_170 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER)) + #define XLAT_STR_170 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP), + #define XLAT_VAL_171 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP)) + #define XLAT_STR_171 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP), + #define XLAT_VAL_172 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP)) + #define XLAT_STR_172 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP), + #define XLAT_VAL_173 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP)) + #define XLAT_STR_173 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP), + #define XLAT_VAL_174 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP)) + #define XLAT_STR_174 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP), + #define XLAT_VAL_175 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP)) + #define XLAT_STR_175 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP), + #define XLAT_VAL_176 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP)) + #define XLAT_STR_176 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP), + #define XLAT_VAL_177 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP)) + #define XLAT_STR_177 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_PROFILE), + #define XLAT_VAL_178 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_PROFILE)) + #define XLAT_STR_178 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_PROFILE) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_LEVEL), + #define XLAT_VAL_179 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_LEVEL)) + #define XLAT_STR_179 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_LEVEL) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION), + #define XLAT_VAL_180 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION)) + #define XLAT_STR_180 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_TIER), + #define XLAT_VAL_181 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_TIER)) + #define XLAT_STR_181 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_TIER) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH), + #define XLAT_VAL_182 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH)) + #define XLAT_STR_182 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE), + #define XLAT_VAL_183 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE)) + #define XLAT_STR_183 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2), + #define XLAT_VAL_184 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2)) + #define XLAT_STR_184 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2), + #define XLAT_VAL_185 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2)) + #define XLAT_STR_185 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE), + #define XLAT_VAL_186 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE)) + #define XLAT_STR_186 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD), + #define XLAT_VAL_187 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD)) + #define XLAT_STR_187 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU), + #define XLAT_VAL_188 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU)) + #define XLAT_STR_188 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED), + #define XLAT_VAL_189 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED)) + #define XLAT_STR_189 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT), + #define XLAT_VAL_190 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT)) + #define XLAT_STR_190 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB), + #define XLAT_VAL_191 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB)) + #define XLAT_STR_191 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID), + #define XLAT_VAL_192 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID)) + #define XLAT_STR_192 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING), + #define XLAT_VAL_193 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING)) + #define XLAT_STR_193 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1), + #define XLAT_VAL_194 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1)) + #define XLAT_STR_194 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT), + #define XLAT_VAL_195 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT)) + #define XLAT_STR_195 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION), + #define XLAT_VAL_196 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION)) + #define XLAT_STR_196 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE), + #define XLAT_VAL_197 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE)) + #define XLAT_STR_197 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD), + #define XLAT_VAL_198 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD)) + #define XLAT_STR_198 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR), + #define XLAT_VAL_199 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR)) + #define XLAT_STR_199 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR), + #define XLAT_VAL_200 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR)) + #define XLAT_STR_200 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR), + #define XLAT_VAL_201 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR)) + #define XLAT_STR_201 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR), + #define XLAT_VAL_202 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR)) + #define XLAT_STR_202 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR), + #define XLAT_VAL_203 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR)) + #define XLAT_STR_203 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR), + #define XLAT_VAL_204 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR)) + #define XLAT_STR_204 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR) XLAT(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR), + #define XLAT_VAL_205 ((unsigned) (V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR)) + #define XLAT_STR_205 STRINGIFY(V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR) XLAT(V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES), + #define XLAT_VAL_206 ((unsigned) (V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES)) + #define XLAT_STR_206 STRINGIFY(V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES) XLAT(V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR), + #define XLAT_VAL_207 ((unsigned) (V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR)) + #define XLAT_STR_207 STRINGIFY(V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR) XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE), + #define XLAT_VAL_208 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE)) + #define XLAT_STR_208 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE) XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER), + #define XLAT_VAL_209 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER)) + #define XLAT_STR_209 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER) XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE), + #define XLAT_VAL_210 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE)) + #define XLAT_STR_210 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE) XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE), + #define XLAT_VAL_211 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE)) + #define XLAT_STR_211 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE) XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE), + #define XLAT_VAL_212 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE)) + #define XLAT_STR_212 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE) XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER), + #define XLAT_VAL_213 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER)) + #define XLAT_STR_213 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER) XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE), + #define XLAT_VAL_214 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE)) + #define XLAT_STR_214 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE) XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM), + #define XLAT_VAL_215 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM)) + #define XLAT_STR_215 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM) XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP), + #define XLAT_VAL_216 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP)) + #define XLAT_STR_216 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP) XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM), + #define XLAT_VAL_217 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM)) + #define XLAT_STR_217 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM) XLAT(V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP), + #define XLAT_VAL_218 ((unsigned) (V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP)) + #define XLAT_STR_218 STRINGIFY(V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP) XLAT(V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS), + #define XLAT_VAL_219 ((unsigned) (V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS)) + #define XLAT_STR_219 STRINGIFY(V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS) XLAT(V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY), + #define XLAT_VAL_220 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY)) + #define XLAT_STR_220 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY) XLAT(V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE), + #define XLAT_VAL_221 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE)) + #define XLAT_STR_221 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE) XLAT(V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE), + #define XLAT_VAL_222 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE)) + #define XLAT_STR_222 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE) XLAT(V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE), + #define XLAT_VAL_223 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE)) + #define XLAT_STR_223 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE) XLAT(V4L2_CID_MPEG_MFC51_VIDEO_PADDING), + #define XLAT_VAL_224 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_PADDING)) + #define XLAT_STR_224 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_PADDING) XLAT(V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV), + #define XLAT_VAL_225 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV)) + #define XLAT_STR_225 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV) XLAT(V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT), + #define XLAT_VAL_226 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT)) + #define XLAT_STR_226 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT) XLAT(V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF), + #define XLAT_VAL_227 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF)) + #define XLAT_STR_227 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF) XLAT(V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY), + #define XLAT_VAL_228 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY)) + #define XLAT_STR_228 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY) XLAT(V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK), + #define XLAT_VAL_229 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK)) + #define XLAT_STR_229 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK) XLAT(V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH), + #define XLAT_VAL_230 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH)) + #define XLAT_STR_230 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH) XLAT(V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC), + #define XLAT_VAL_231 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC)) + #define XLAT_STR_231 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC) XLAT(V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P), + #define XLAT_VAL_232 ((unsigned) (V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P)) + #define XLAT_STR_232 STRINGIFY(V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P) XLAT(V4L2_CID_EXPOSURE_AUTO), + #define XLAT_VAL_233 ((unsigned) (V4L2_CID_EXPOSURE_AUTO)) + #define XLAT_STR_233 STRINGIFY(V4L2_CID_EXPOSURE_AUTO) XLAT(V4L2_CID_EXPOSURE_ABSOLUTE), + #define XLAT_VAL_234 ((unsigned) (V4L2_CID_EXPOSURE_ABSOLUTE)) + #define XLAT_STR_234 STRINGIFY(V4L2_CID_EXPOSURE_ABSOLUTE) XLAT(V4L2_CID_EXPOSURE_AUTO_PRIORITY), + #define XLAT_VAL_235 ((unsigned) (V4L2_CID_EXPOSURE_AUTO_PRIORITY)) + #define XLAT_STR_235 STRINGIFY(V4L2_CID_EXPOSURE_AUTO_PRIORITY) XLAT(V4L2_CID_PAN_RELATIVE), + #define XLAT_VAL_236 ((unsigned) (V4L2_CID_PAN_RELATIVE)) + #define XLAT_STR_236 STRINGIFY(V4L2_CID_PAN_RELATIVE) XLAT(V4L2_CID_TILT_RELATIVE), + #define XLAT_VAL_237 ((unsigned) (V4L2_CID_TILT_RELATIVE)) + #define XLAT_STR_237 STRINGIFY(V4L2_CID_TILT_RELATIVE) XLAT(V4L2_CID_PAN_RESET), + #define XLAT_VAL_238 ((unsigned) (V4L2_CID_PAN_RESET)) + #define XLAT_STR_238 STRINGIFY(V4L2_CID_PAN_RESET) XLAT(V4L2_CID_TILT_RESET), + #define XLAT_VAL_239 ((unsigned) (V4L2_CID_TILT_RESET)) + #define XLAT_STR_239 STRINGIFY(V4L2_CID_TILT_RESET) XLAT(V4L2_CID_PAN_ABSOLUTE), + #define XLAT_VAL_240 ((unsigned) (V4L2_CID_PAN_ABSOLUTE)) + #define XLAT_STR_240 STRINGIFY(V4L2_CID_PAN_ABSOLUTE) XLAT(V4L2_CID_TILT_ABSOLUTE), + #define XLAT_VAL_241 ((unsigned) (V4L2_CID_TILT_ABSOLUTE)) + #define XLAT_STR_241 STRINGIFY(V4L2_CID_TILT_ABSOLUTE) XLAT(V4L2_CID_FOCUS_ABSOLUTE), + #define XLAT_VAL_242 ((unsigned) (V4L2_CID_FOCUS_ABSOLUTE)) + #define XLAT_STR_242 STRINGIFY(V4L2_CID_FOCUS_ABSOLUTE) XLAT(V4L2_CID_FOCUS_RELATIVE), + #define XLAT_VAL_243 ((unsigned) (V4L2_CID_FOCUS_RELATIVE)) + #define XLAT_STR_243 STRINGIFY(V4L2_CID_FOCUS_RELATIVE) XLAT(V4L2_CID_FOCUS_AUTO), + #define XLAT_VAL_244 ((unsigned) (V4L2_CID_FOCUS_AUTO)) + #define XLAT_STR_244 STRINGIFY(V4L2_CID_FOCUS_AUTO) XLAT(V4L2_CID_ZOOM_ABSOLUTE), + #define XLAT_VAL_245 ((unsigned) (V4L2_CID_ZOOM_ABSOLUTE)) + #define XLAT_STR_245 STRINGIFY(V4L2_CID_ZOOM_ABSOLUTE) XLAT(V4L2_CID_ZOOM_RELATIVE), + #define XLAT_VAL_246 ((unsigned) (V4L2_CID_ZOOM_RELATIVE)) + #define XLAT_STR_246 STRINGIFY(V4L2_CID_ZOOM_RELATIVE) XLAT(V4L2_CID_ZOOM_CONTINUOUS), + #define XLAT_VAL_247 ((unsigned) (V4L2_CID_ZOOM_CONTINUOUS)) + #define XLAT_STR_247 STRINGIFY(V4L2_CID_ZOOM_CONTINUOUS) XLAT(V4L2_CID_PRIVACY), + #define XLAT_VAL_248 ((unsigned) (V4L2_CID_PRIVACY)) + #define XLAT_STR_248 STRINGIFY(V4L2_CID_PRIVACY) XLAT(V4L2_CID_IRIS_ABSOLUTE), + #define XLAT_VAL_249 ((unsigned) (V4L2_CID_IRIS_ABSOLUTE)) + #define XLAT_STR_249 STRINGIFY(V4L2_CID_IRIS_ABSOLUTE) XLAT(V4L2_CID_IRIS_RELATIVE), + #define XLAT_VAL_250 ((unsigned) (V4L2_CID_IRIS_RELATIVE)) + #define XLAT_STR_250 STRINGIFY(V4L2_CID_IRIS_RELATIVE) XLAT(V4L2_CID_AUTO_EXPOSURE_BIAS), + #define XLAT_VAL_251 ((unsigned) (V4L2_CID_AUTO_EXPOSURE_BIAS)) + #define XLAT_STR_251 STRINGIFY(V4L2_CID_AUTO_EXPOSURE_BIAS) XLAT(V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE), + #define XLAT_VAL_252 ((unsigned) (V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE)) + #define XLAT_STR_252 STRINGIFY(V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE) XLAT(V4L2_CID_WIDE_DYNAMIC_RANGE), + #define XLAT_VAL_253 ((unsigned) (V4L2_CID_WIDE_DYNAMIC_RANGE)) + #define XLAT_STR_253 STRINGIFY(V4L2_CID_WIDE_DYNAMIC_RANGE) XLAT(V4L2_CID_IMAGE_STABILIZATION), + #define XLAT_VAL_254 ((unsigned) (V4L2_CID_IMAGE_STABILIZATION)) + #define XLAT_STR_254 STRINGIFY(V4L2_CID_IMAGE_STABILIZATION) XLAT(V4L2_CID_ISO_SENSITIVITY), + #define XLAT_VAL_255 ((unsigned) (V4L2_CID_ISO_SENSITIVITY)) + #define XLAT_STR_255 STRINGIFY(V4L2_CID_ISO_SENSITIVITY) XLAT(V4L2_CID_ISO_SENSITIVITY_AUTO), + #define XLAT_VAL_256 ((unsigned) (V4L2_CID_ISO_SENSITIVITY_AUTO)) + #define XLAT_STR_256 STRINGIFY(V4L2_CID_ISO_SENSITIVITY_AUTO) XLAT(V4L2_CID_EXPOSURE_METERING), + #define XLAT_VAL_257 ((unsigned) (V4L2_CID_EXPOSURE_METERING)) + #define XLAT_STR_257 STRINGIFY(V4L2_CID_EXPOSURE_METERING) XLAT(V4L2_CID_SCENE_MODE), + #define XLAT_VAL_258 ((unsigned) (V4L2_CID_SCENE_MODE)) + #define XLAT_STR_258 STRINGIFY(V4L2_CID_SCENE_MODE) XLAT(V4L2_CID_3A_LOCK), + #define XLAT_VAL_259 ((unsigned) (V4L2_CID_3A_LOCK)) + #define XLAT_STR_259 STRINGIFY(V4L2_CID_3A_LOCK) XLAT(V4L2_CID_AUTO_FOCUS_START), + #define XLAT_VAL_260 ((unsigned) (V4L2_CID_AUTO_FOCUS_START)) + #define XLAT_STR_260 STRINGIFY(V4L2_CID_AUTO_FOCUS_START) XLAT(V4L2_CID_AUTO_FOCUS_STOP), + #define XLAT_VAL_261 ((unsigned) (V4L2_CID_AUTO_FOCUS_STOP)) + #define XLAT_STR_261 STRINGIFY(V4L2_CID_AUTO_FOCUS_STOP) XLAT(V4L2_CID_AUTO_FOCUS_STATUS), + #define XLAT_VAL_262 ((unsigned) (V4L2_CID_AUTO_FOCUS_STATUS)) + #define XLAT_STR_262 STRINGIFY(V4L2_CID_AUTO_FOCUS_STATUS) XLAT(V4L2_CID_AUTO_FOCUS_RANGE), + #define XLAT_VAL_263 ((unsigned) (V4L2_CID_AUTO_FOCUS_RANGE)) + #define XLAT_STR_263 STRINGIFY(V4L2_CID_AUTO_FOCUS_RANGE) XLAT(V4L2_CID_PAN_SPEED), + #define XLAT_VAL_264 ((unsigned) (V4L2_CID_PAN_SPEED)) + #define XLAT_STR_264 STRINGIFY(V4L2_CID_PAN_SPEED) XLAT(V4L2_CID_TILT_SPEED), + #define XLAT_VAL_265 ((unsigned) (V4L2_CID_TILT_SPEED)) + #define XLAT_STR_265 STRINGIFY(V4L2_CID_TILT_SPEED) XLAT(V4L2_CID_RDS_TX_DEVIATION), + #define XLAT_VAL_266 ((unsigned) (V4L2_CID_RDS_TX_DEVIATION)) + #define XLAT_STR_266 STRINGIFY(V4L2_CID_RDS_TX_DEVIATION) XLAT(V4L2_CID_RDS_TX_PI), + #define XLAT_VAL_267 ((unsigned) (V4L2_CID_RDS_TX_PI)) + #define XLAT_STR_267 STRINGIFY(V4L2_CID_RDS_TX_PI) XLAT(V4L2_CID_RDS_TX_PTY), + #define XLAT_VAL_268 ((unsigned) (V4L2_CID_RDS_TX_PTY)) + #define XLAT_STR_268 STRINGIFY(V4L2_CID_RDS_TX_PTY) XLAT(V4L2_CID_RDS_TX_PS_NAME), + #define XLAT_VAL_269 ((unsigned) (V4L2_CID_RDS_TX_PS_NAME)) + #define XLAT_STR_269 STRINGIFY(V4L2_CID_RDS_TX_PS_NAME) XLAT(V4L2_CID_RDS_TX_RADIO_TEXT), + #define XLAT_VAL_270 ((unsigned) (V4L2_CID_RDS_TX_RADIO_TEXT)) + #define XLAT_STR_270 STRINGIFY(V4L2_CID_RDS_TX_RADIO_TEXT) XLAT(V4L2_CID_RDS_TX_MONO_STEREO), + #define XLAT_VAL_271 ((unsigned) (V4L2_CID_RDS_TX_MONO_STEREO)) + #define XLAT_STR_271 STRINGIFY(V4L2_CID_RDS_TX_MONO_STEREO) XLAT(V4L2_CID_RDS_TX_ARTIFICIAL_HEAD), + #define XLAT_VAL_272 ((unsigned) (V4L2_CID_RDS_TX_ARTIFICIAL_HEAD)) + #define XLAT_STR_272 STRINGIFY(V4L2_CID_RDS_TX_ARTIFICIAL_HEAD) XLAT(V4L2_CID_RDS_TX_COMPRESSED), + #define XLAT_VAL_273 ((unsigned) (V4L2_CID_RDS_TX_COMPRESSED)) + #define XLAT_STR_273 STRINGIFY(V4L2_CID_RDS_TX_COMPRESSED) XLAT(V4L2_CID_RDS_TX_DYNAMIC_PTY), + #define XLAT_VAL_274 ((unsigned) (V4L2_CID_RDS_TX_DYNAMIC_PTY)) + #define XLAT_STR_274 STRINGIFY(V4L2_CID_RDS_TX_DYNAMIC_PTY) XLAT(V4L2_CID_RDS_TX_TRAFFIC_ANNOUNCEMENT), + #define XLAT_VAL_275 ((unsigned) (V4L2_CID_RDS_TX_TRAFFIC_ANNOUNCEMENT)) + #define XLAT_STR_275 STRINGIFY(V4L2_CID_RDS_TX_TRAFFIC_ANNOUNCEMENT) XLAT(V4L2_CID_RDS_TX_TRAFFIC_PROGRAM), + #define XLAT_VAL_276 ((unsigned) (V4L2_CID_RDS_TX_TRAFFIC_PROGRAM)) + #define XLAT_STR_276 STRINGIFY(V4L2_CID_RDS_TX_TRAFFIC_PROGRAM) XLAT(V4L2_CID_RDS_TX_MUSIC_SPEECH), + #define XLAT_VAL_277 ((unsigned) (V4L2_CID_RDS_TX_MUSIC_SPEECH)) + #define XLAT_STR_277 STRINGIFY(V4L2_CID_RDS_TX_MUSIC_SPEECH) XLAT(V4L2_CID_RDS_TX_ALT_FREQS_ENABLE), + #define XLAT_VAL_278 ((unsigned) (V4L2_CID_RDS_TX_ALT_FREQS_ENABLE)) + #define XLAT_STR_278 STRINGIFY(V4L2_CID_RDS_TX_ALT_FREQS_ENABLE) XLAT(V4L2_CID_RDS_TX_ALT_FREQS), + #define XLAT_VAL_279 ((unsigned) (V4L2_CID_RDS_TX_ALT_FREQS)) + #define XLAT_STR_279 STRINGIFY(V4L2_CID_RDS_TX_ALT_FREQS) XLAT(V4L2_CID_AUDIO_LIMITER_ENABLED), + #define XLAT_VAL_280 ((unsigned) (V4L2_CID_AUDIO_LIMITER_ENABLED)) + #define XLAT_STR_280 STRINGIFY(V4L2_CID_AUDIO_LIMITER_ENABLED) XLAT(V4L2_CID_AUDIO_LIMITER_RELEASE_TIME), + #define XLAT_VAL_281 ((unsigned) (V4L2_CID_AUDIO_LIMITER_RELEASE_TIME)) + #define XLAT_STR_281 STRINGIFY(V4L2_CID_AUDIO_LIMITER_RELEASE_TIME) XLAT(V4L2_CID_AUDIO_LIMITER_DEVIATION), + #define XLAT_VAL_282 ((unsigned) (V4L2_CID_AUDIO_LIMITER_DEVIATION)) + #define XLAT_STR_282 STRINGIFY(V4L2_CID_AUDIO_LIMITER_DEVIATION) XLAT(V4L2_CID_AUDIO_COMPRESSION_ENABLED), + #define XLAT_VAL_283 ((unsigned) (V4L2_CID_AUDIO_COMPRESSION_ENABLED)) + #define XLAT_STR_283 STRINGIFY(V4L2_CID_AUDIO_COMPRESSION_ENABLED) XLAT(V4L2_CID_AUDIO_COMPRESSION_GAIN), + #define XLAT_VAL_284 ((unsigned) (V4L2_CID_AUDIO_COMPRESSION_GAIN)) + #define XLAT_STR_284 STRINGIFY(V4L2_CID_AUDIO_COMPRESSION_GAIN) XLAT(V4L2_CID_AUDIO_COMPRESSION_THRESHOLD), + #define XLAT_VAL_285 ((unsigned) (V4L2_CID_AUDIO_COMPRESSION_THRESHOLD)) + #define XLAT_STR_285 STRINGIFY(V4L2_CID_AUDIO_COMPRESSION_THRESHOLD) XLAT(V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME), + #define XLAT_VAL_286 ((unsigned) (V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME)) + #define XLAT_STR_286 STRINGIFY(V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME) XLAT(V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME), + #define XLAT_VAL_287 ((unsigned) (V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME)) + #define XLAT_STR_287 STRINGIFY(V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME) XLAT(V4L2_CID_PILOT_TONE_ENABLED), + #define XLAT_VAL_288 ((unsigned) (V4L2_CID_PILOT_TONE_ENABLED)) + #define XLAT_STR_288 STRINGIFY(V4L2_CID_PILOT_TONE_ENABLED) XLAT(V4L2_CID_PILOT_TONE_DEVIATION), + #define XLAT_VAL_289 ((unsigned) (V4L2_CID_PILOT_TONE_DEVIATION)) + #define XLAT_STR_289 STRINGIFY(V4L2_CID_PILOT_TONE_DEVIATION) XLAT(V4L2_CID_PILOT_TONE_FREQUENCY), + #define XLAT_VAL_290 ((unsigned) (V4L2_CID_PILOT_TONE_FREQUENCY)) + #define XLAT_STR_290 STRINGIFY(V4L2_CID_PILOT_TONE_FREQUENCY) XLAT(V4L2_CID_TUNE_PREEMPHASIS), + #define XLAT_VAL_291 ((unsigned) (V4L2_CID_TUNE_PREEMPHASIS)) + #define XLAT_STR_291 STRINGIFY(V4L2_CID_TUNE_PREEMPHASIS) XLAT(V4L2_CID_TUNE_POWER_LEVEL), + #define XLAT_VAL_292 ((unsigned) (V4L2_CID_TUNE_POWER_LEVEL)) + #define XLAT_STR_292 STRINGIFY(V4L2_CID_TUNE_POWER_LEVEL) XLAT(V4L2_CID_TUNE_ANTENNA_CAPACITOR), + #define XLAT_VAL_293 ((unsigned) (V4L2_CID_TUNE_ANTENNA_CAPACITOR)) + #define XLAT_STR_293 STRINGIFY(V4L2_CID_TUNE_ANTENNA_CAPACITOR) XLAT(V4L2_CID_FLASH_LED_MODE), + #define XLAT_VAL_294 ((unsigned) (V4L2_CID_FLASH_LED_MODE)) + #define XLAT_STR_294 STRINGIFY(V4L2_CID_FLASH_LED_MODE) XLAT(V4L2_CID_FLASH_STROBE_SOURCE), + #define XLAT_VAL_295 ((unsigned) (V4L2_CID_FLASH_STROBE_SOURCE)) + #define XLAT_STR_295 STRINGIFY(V4L2_CID_FLASH_STROBE_SOURCE) XLAT(V4L2_CID_FLASH_STROBE), + #define XLAT_VAL_296 ((unsigned) (V4L2_CID_FLASH_STROBE)) + #define XLAT_STR_296 STRINGIFY(V4L2_CID_FLASH_STROBE) XLAT(V4L2_CID_FLASH_STROBE_STOP), + #define XLAT_VAL_297 ((unsigned) (V4L2_CID_FLASH_STROBE_STOP)) + #define XLAT_STR_297 STRINGIFY(V4L2_CID_FLASH_STROBE_STOP) XLAT(V4L2_CID_FLASH_STROBE_STATUS), + #define XLAT_VAL_298 ((unsigned) (V4L2_CID_FLASH_STROBE_STATUS)) + #define XLAT_STR_298 STRINGIFY(V4L2_CID_FLASH_STROBE_STATUS) XLAT(V4L2_CID_FLASH_TIMEOUT), + #define XLAT_VAL_299 ((unsigned) (V4L2_CID_FLASH_TIMEOUT)) + #define XLAT_STR_299 STRINGIFY(V4L2_CID_FLASH_TIMEOUT) XLAT(V4L2_CID_FLASH_INTENSITY), + #define XLAT_VAL_300 ((unsigned) (V4L2_CID_FLASH_INTENSITY)) + #define XLAT_STR_300 STRINGIFY(V4L2_CID_FLASH_INTENSITY) XLAT(V4L2_CID_FLASH_TORCH_INTENSITY), + #define XLAT_VAL_301 ((unsigned) (V4L2_CID_FLASH_TORCH_INTENSITY)) + #define XLAT_STR_301 STRINGIFY(V4L2_CID_FLASH_TORCH_INTENSITY) XLAT(V4L2_CID_FLASH_INDICATOR_INTENSITY), + #define XLAT_VAL_302 ((unsigned) (V4L2_CID_FLASH_INDICATOR_INTENSITY)) + #define XLAT_STR_302 STRINGIFY(V4L2_CID_FLASH_INDICATOR_INTENSITY) XLAT(V4L2_CID_FLASH_FAULT), + #define XLAT_VAL_303 ((unsigned) (V4L2_CID_FLASH_FAULT)) + #define XLAT_STR_303 STRINGIFY(V4L2_CID_FLASH_FAULT) XLAT(V4L2_CID_FLASH_CHARGE), + #define XLAT_VAL_304 ((unsigned) (V4L2_CID_FLASH_CHARGE)) + #define XLAT_STR_304 STRINGIFY(V4L2_CID_FLASH_CHARGE) XLAT(V4L2_CID_FLASH_READY), + #define XLAT_VAL_305 ((unsigned) (V4L2_CID_FLASH_READY)) + #define XLAT_STR_305 STRINGIFY(V4L2_CID_FLASH_READY) XLAT(V4L2_CID_VBLANK), + #define XLAT_VAL_306 ((unsigned) (V4L2_CID_VBLANK)) + #define XLAT_STR_306 STRINGIFY(V4L2_CID_VBLANK) XLAT(V4L2_CID_HBLANK), + #define XLAT_VAL_307 ((unsigned) (V4L2_CID_HBLANK)) + #define XLAT_STR_307 STRINGIFY(V4L2_CID_HBLANK) XLAT(V4L2_CID_ANALOGUE_GAIN), + #define XLAT_VAL_308 ((unsigned) (V4L2_CID_ANALOGUE_GAIN)) + #define XLAT_STR_308 STRINGIFY(V4L2_CID_ANALOGUE_GAIN) XLAT(V4L2_CID_TEST_PATTERN_RED), + #define XLAT_VAL_309 ((unsigned) (V4L2_CID_TEST_PATTERN_RED)) + #define XLAT_STR_309 STRINGIFY(V4L2_CID_TEST_PATTERN_RED) XLAT(V4L2_CID_TEST_PATTERN_GREENR), + #define XLAT_VAL_310 ((unsigned) (V4L2_CID_TEST_PATTERN_GREENR)) + #define XLAT_STR_310 STRINGIFY(V4L2_CID_TEST_PATTERN_GREENR) XLAT(V4L2_CID_TEST_PATTERN_BLUE), + #define XLAT_VAL_311 ((unsigned) (V4L2_CID_TEST_PATTERN_BLUE)) + #define XLAT_STR_311 STRINGIFY(V4L2_CID_TEST_PATTERN_BLUE) XLAT(V4L2_CID_TEST_PATTERN_GREENB), + #define XLAT_VAL_312 ((unsigned) (V4L2_CID_TEST_PATTERN_GREENB)) + #define XLAT_STR_312 STRINGIFY(V4L2_CID_TEST_PATTERN_GREENB) + XLAT(V4L2_CID_UNIT_CELL_SIZE), + #define XLAT_VAL_313 ((unsigned) (V4L2_CID_UNIT_CELL_SIZE)) + #define XLAT_STR_313 STRINGIFY(V4L2_CID_UNIT_CELL_SIZE) XLAT(V4L2_CID_LINK_FREQ), + #define XLAT_VAL_314 ((unsigned) (V4L2_CID_LINK_FREQ)) + #define XLAT_STR_314 STRINGIFY(V4L2_CID_LINK_FREQ) XLAT(V4L2_CID_PIXEL_RATE), + #define XLAT_VAL_315 ((unsigned) (V4L2_CID_PIXEL_RATE)) + #define XLAT_STR_315 STRINGIFY(V4L2_CID_PIXEL_RATE) XLAT(V4L2_CID_TEST_PATTERN), + #define XLAT_VAL_316 ((unsigned) (V4L2_CID_TEST_PATTERN)) + #define XLAT_STR_316 STRINGIFY(V4L2_CID_TEST_PATTERN) XLAT(V4L2_CID_DEINTERLACING_MODE), + #define XLAT_VAL_317 ((unsigned) (V4L2_CID_DEINTERLACING_MODE)) + #define XLAT_STR_317 STRINGIFY(V4L2_CID_DEINTERLACING_MODE) XLAT(V4L2_CID_DIGITAL_GAIN), + #define XLAT_VAL_318 ((unsigned) (V4L2_CID_DIGITAL_GAIN)) + #define XLAT_STR_318 STRINGIFY(V4L2_CID_DIGITAL_GAIN) XLAT(V4L2_CID_DV_TX_RGB_RANGE), + #define XLAT_VAL_319 ((unsigned) (V4L2_CID_DV_TX_RGB_RANGE)) + #define XLAT_STR_319 STRINGIFY(V4L2_CID_DV_TX_RGB_RANGE) XLAT(V4L2_CID_DV_TX_IT_CONTENT_TYPE), + #define XLAT_VAL_320 ((unsigned) (V4L2_CID_DV_TX_IT_CONTENT_TYPE)) + #define XLAT_STR_320 STRINGIFY(V4L2_CID_DV_TX_IT_CONTENT_TYPE) XLAT(V4L2_CID_DV_RX_RGB_RANGE), + #define XLAT_VAL_321 ((unsigned) (V4L2_CID_DV_RX_RGB_RANGE)) + #define XLAT_STR_321 STRINGIFY(V4L2_CID_DV_RX_RGB_RANGE) XLAT(V4L2_CID_DV_RX_IT_CONTENT_TYPE), + #define XLAT_VAL_322 ((unsigned) (V4L2_CID_DV_RX_IT_CONTENT_TYPE)) + #define XLAT_STR_322 STRINGIFY(V4L2_CID_DV_RX_IT_CONTENT_TYPE) XLAT(V4L2_CID_TUNE_DEEMPHASIS), + #define XLAT_VAL_323 ((unsigned) (V4L2_CID_TUNE_DEEMPHASIS)) + #define XLAT_STR_323 STRINGIFY(V4L2_CID_TUNE_DEEMPHASIS) XLAT(V4L2_CID_RDS_RECEPTION), + #define XLAT_VAL_324 ((unsigned) (V4L2_CID_RDS_RECEPTION)) + #define XLAT_STR_324 STRINGIFY(V4L2_CID_RDS_RECEPTION) XLAT(V4L2_CID_RDS_RX_PTY), + #define XLAT_VAL_325 ((unsigned) (V4L2_CID_RDS_RX_PTY)) + #define XLAT_STR_325 STRINGIFY(V4L2_CID_RDS_RX_PTY) XLAT(V4L2_CID_RDS_RX_PS_NAME), + #define XLAT_VAL_326 ((unsigned) (V4L2_CID_RDS_RX_PS_NAME)) + #define XLAT_STR_326 STRINGIFY(V4L2_CID_RDS_RX_PS_NAME) XLAT(V4L2_CID_RDS_RX_RADIO_TEXT), + #define XLAT_VAL_327 ((unsigned) (V4L2_CID_RDS_RX_RADIO_TEXT)) + #define XLAT_STR_327 STRINGIFY(V4L2_CID_RDS_RX_RADIO_TEXT) XLAT(V4L2_CID_RDS_RX_TRAFFIC_ANNOUNCEMENT), + #define XLAT_VAL_328 ((unsigned) (V4L2_CID_RDS_RX_TRAFFIC_ANNOUNCEMENT)) + #define XLAT_STR_328 STRINGIFY(V4L2_CID_RDS_RX_TRAFFIC_ANNOUNCEMENT) XLAT(V4L2_CID_RDS_RX_TRAFFIC_PROGRAM), + #define XLAT_VAL_329 ((unsigned) (V4L2_CID_RDS_RX_TRAFFIC_PROGRAM)) + #define XLAT_STR_329 STRINGIFY(V4L2_CID_RDS_RX_TRAFFIC_PROGRAM) XLAT(V4L2_CID_RDS_RX_MUSIC_SPEECH), + #define XLAT_VAL_330 ((unsigned) (V4L2_CID_RDS_RX_MUSIC_SPEECH)) + #define XLAT_STR_330 STRINGIFY(V4L2_CID_RDS_RX_MUSIC_SPEECH) XLAT(V4L2_CID_RF_TUNER_BANDWIDTH_AUTO), + #define XLAT_VAL_331 ((unsigned) (V4L2_CID_RF_TUNER_BANDWIDTH_AUTO)) + #define XLAT_STR_331 STRINGIFY(V4L2_CID_RF_TUNER_BANDWIDTH_AUTO) XLAT(V4L2_CID_RF_TUNER_BANDWIDTH), + #define XLAT_VAL_332 ((unsigned) (V4L2_CID_RF_TUNER_BANDWIDTH)) + #define XLAT_STR_332 STRINGIFY(V4L2_CID_RF_TUNER_BANDWIDTH) XLAT(V4L2_CID_RF_TUNER_RF_GAIN), + #define XLAT_VAL_333 ((unsigned) (V4L2_CID_RF_TUNER_RF_GAIN)) + #define XLAT_STR_333 STRINGIFY(V4L2_CID_RF_TUNER_RF_GAIN) XLAT(V4L2_CID_RF_TUNER_LNA_GAIN_AUTO), + #define XLAT_VAL_334 ((unsigned) (V4L2_CID_RF_TUNER_LNA_GAIN_AUTO)) + #define XLAT_STR_334 STRINGIFY(V4L2_CID_RF_TUNER_LNA_GAIN_AUTO) XLAT(V4L2_CID_RF_TUNER_LNA_GAIN), + #define XLAT_VAL_335 ((unsigned) (V4L2_CID_RF_TUNER_LNA_GAIN)) + #define XLAT_STR_335 STRINGIFY(V4L2_CID_RF_TUNER_LNA_GAIN) XLAT(V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO), + #define XLAT_VAL_336 ((unsigned) (V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO)) + #define XLAT_STR_336 STRINGIFY(V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO) XLAT(V4L2_CID_RF_TUNER_MIXER_GAIN), + #define XLAT_VAL_337 ((unsigned) (V4L2_CID_RF_TUNER_MIXER_GAIN)) + #define XLAT_STR_337 STRINGIFY(V4L2_CID_RF_TUNER_MIXER_GAIN) XLAT(V4L2_CID_RF_TUNER_IF_GAIN_AUTO), + #define XLAT_VAL_338 ((unsigned) (V4L2_CID_RF_TUNER_IF_GAIN_AUTO)) + #define XLAT_STR_338 STRINGIFY(V4L2_CID_RF_TUNER_IF_GAIN_AUTO) XLAT(V4L2_CID_RF_TUNER_IF_GAIN), + #define XLAT_VAL_339 ((unsigned) (V4L2_CID_RF_TUNER_IF_GAIN)) + #define XLAT_STR_339 STRINGIFY(V4L2_CID_RF_TUNER_IF_GAIN) XLAT(V4L2_CID_RF_TUNER_PLL_LOCK), + #define XLAT_VAL_340 ((unsigned) (V4L2_CID_RF_TUNER_PLL_LOCK)) + #define XLAT_STR_340 STRINGIFY(V4L2_CID_RF_TUNER_PLL_LOCK) XLAT(V4L2_CID_DETECT_MD_MODE), + #define XLAT_VAL_341 ((unsigned) (V4L2_CID_DETECT_MD_MODE)) + #define XLAT_STR_341 STRINGIFY(V4L2_CID_DETECT_MD_MODE) XLAT(V4L2_CID_DETECT_MD_GLOBAL_THRESHOLD), + #define XLAT_VAL_342 ((unsigned) (V4L2_CID_DETECT_MD_GLOBAL_THRESHOLD)) + #define XLAT_STR_342 STRINGIFY(V4L2_CID_DETECT_MD_GLOBAL_THRESHOLD) XLAT(V4L2_CID_DETECT_MD_THRESHOLD_GRID), + #define XLAT_VAL_343 ((unsigned) (V4L2_CID_DETECT_MD_THRESHOLD_GRID)) + #define XLAT_STR_343 STRINGIFY(V4L2_CID_DETECT_MD_THRESHOLD_GRID) XLAT(V4L2_CID_DETECT_MD_REGION_GRID), - XLAT_END + #define XLAT_VAL_344 ((unsigned) (V4L2_CID_DETECT_MD_REGION_GRID)) + #define XLAT_STR_344 STRINGIFY(V4L2_CID_DETECT_MD_REGION_GRID) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat v4l2_control_ids[1] = { { + .data = v4l2_control_ids_xdata, + .size = ARRAY_SIZE(v4l2_control_ids_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif +# ifdef XLAT_VAL_41 + | XLAT_VAL_41 +# endif +# ifdef XLAT_VAL_42 + | XLAT_VAL_42 +# endif +# ifdef XLAT_VAL_43 + | XLAT_VAL_43 +# endif +# ifdef XLAT_VAL_44 + | XLAT_VAL_44 +# endif +# ifdef XLAT_VAL_45 + | XLAT_VAL_45 +# endif +# ifdef XLAT_VAL_46 + | XLAT_VAL_46 +# endif +# ifdef XLAT_VAL_47 + | XLAT_VAL_47 +# endif +# ifdef XLAT_VAL_48 + | XLAT_VAL_48 +# endif +# ifdef XLAT_VAL_49 + | XLAT_VAL_49 +# endif +# ifdef XLAT_VAL_50 + | XLAT_VAL_50 +# endif +# ifdef XLAT_VAL_51 + | XLAT_VAL_51 +# endif +# ifdef XLAT_VAL_52 + | XLAT_VAL_52 +# endif +# ifdef XLAT_VAL_53 + | XLAT_VAL_53 +# endif +# ifdef XLAT_VAL_54 + | XLAT_VAL_54 +# endif +# ifdef XLAT_VAL_55 + | XLAT_VAL_55 +# endif +# ifdef XLAT_VAL_56 + | XLAT_VAL_56 +# endif +# ifdef XLAT_VAL_57 + | XLAT_VAL_57 +# endif +# ifdef XLAT_VAL_58 + | XLAT_VAL_58 +# endif +# ifdef XLAT_VAL_59 + | XLAT_VAL_59 +# endif +# ifdef XLAT_VAL_60 + | XLAT_VAL_60 +# endif +# ifdef XLAT_VAL_61 + | XLAT_VAL_61 +# endif +# ifdef XLAT_VAL_62 + | XLAT_VAL_62 +# endif +# ifdef XLAT_VAL_63 + | XLAT_VAL_63 +# endif +# ifdef XLAT_VAL_64 + | XLAT_VAL_64 +# endif +# ifdef XLAT_VAL_65 + | XLAT_VAL_65 +# endif +# ifdef XLAT_VAL_66 + | XLAT_VAL_66 +# endif +# ifdef XLAT_VAL_67 + | XLAT_VAL_67 +# endif +# ifdef XLAT_VAL_68 + | XLAT_VAL_68 +# endif +# ifdef XLAT_VAL_69 + | XLAT_VAL_69 +# endif +# ifdef XLAT_VAL_70 + | XLAT_VAL_70 +# endif +# ifdef XLAT_VAL_71 + | XLAT_VAL_71 +# endif +# ifdef XLAT_VAL_72 + | XLAT_VAL_72 +# endif +# ifdef XLAT_VAL_73 + | XLAT_VAL_73 +# endif +# ifdef XLAT_VAL_74 + | XLAT_VAL_74 +# endif +# ifdef XLAT_VAL_75 + | XLAT_VAL_75 +# endif +# ifdef XLAT_VAL_76 + | XLAT_VAL_76 +# endif +# ifdef XLAT_VAL_77 + | XLAT_VAL_77 +# endif +# ifdef XLAT_VAL_78 + | XLAT_VAL_78 +# endif +# ifdef XLAT_VAL_79 + | XLAT_VAL_79 +# endif +# ifdef XLAT_VAL_80 + | XLAT_VAL_80 +# endif +# ifdef XLAT_VAL_81 + | XLAT_VAL_81 +# endif +# ifdef XLAT_VAL_82 + | XLAT_VAL_82 +# endif +# ifdef XLAT_VAL_83 + | XLAT_VAL_83 +# endif +# ifdef XLAT_VAL_84 + | XLAT_VAL_84 +# endif +# ifdef XLAT_VAL_85 + | XLAT_VAL_85 +# endif +# ifdef XLAT_VAL_86 + | XLAT_VAL_86 +# endif +# ifdef XLAT_VAL_87 + | XLAT_VAL_87 +# endif +# ifdef XLAT_VAL_88 + | XLAT_VAL_88 +# endif +# ifdef XLAT_VAL_89 + | XLAT_VAL_89 +# endif +# ifdef XLAT_VAL_90 + | XLAT_VAL_90 +# endif +# ifdef XLAT_VAL_91 + | XLAT_VAL_91 +# endif +# ifdef XLAT_VAL_92 + | XLAT_VAL_92 +# endif +# ifdef XLAT_VAL_93 + | XLAT_VAL_93 +# endif +# ifdef XLAT_VAL_94 + | XLAT_VAL_94 +# endif +# ifdef XLAT_VAL_95 + | XLAT_VAL_95 +# endif +# ifdef XLAT_VAL_96 + | XLAT_VAL_96 +# endif +# ifdef XLAT_VAL_97 + | XLAT_VAL_97 +# endif +# ifdef XLAT_VAL_98 + | XLAT_VAL_98 +# endif +# ifdef XLAT_VAL_99 + | XLAT_VAL_99 +# endif +# ifdef XLAT_VAL_100 + | XLAT_VAL_100 +# endif +# ifdef XLAT_VAL_101 + | XLAT_VAL_101 +# endif +# ifdef XLAT_VAL_102 + | XLAT_VAL_102 +# endif +# ifdef XLAT_VAL_103 + | XLAT_VAL_103 +# endif +# ifdef XLAT_VAL_104 + | XLAT_VAL_104 +# endif +# ifdef XLAT_VAL_105 + | XLAT_VAL_105 +# endif +# ifdef XLAT_VAL_106 + | XLAT_VAL_106 +# endif +# ifdef XLAT_VAL_107 + | XLAT_VAL_107 +# endif +# ifdef XLAT_VAL_108 + | XLAT_VAL_108 +# endif +# ifdef XLAT_VAL_109 + | XLAT_VAL_109 +# endif +# ifdef XLAT_VAL_110 + | XLAT_VAL_110 +# endif +# ifdef XLAT_VAL_111 + | XLAT_VAL_111 +# endif +# ifdef XLAT_VAL_112 + | XLAT_VAL_112 +# endif +# ifdef XLAT_VAL_113 + | XLAT_VAL_113 +# endif +# ifdef XLAT_VAL_114 + | XLAT_VAL_114 +# endif +# ifdef XLAT_VAL_115 + | XLAT_VAL_115 +# endif +# ifdef XLAT_VAL_116 + | XLAT_VAL_116 +# endif +# ifdef XLAT_VAL_117 + | XLAT_VAL_117 +# endif +# ifdef XLAT_VAL_118 + | XLAT_VAL_118 +# endif +# ifdef XLAT_VAL_119 + | XLAT_VAL_119 +# endif +# ifdef XLAT_VAL_120 + | XLAT_VAL_120 +# endif +# ifdef XLAT_VAL_121 + | XLAT_VAL_121 +# endif +# ifdef XLAT_VAL_122 + | XLAT_VAL_122 +# endif +# ifdef XLAT_VAL_123 + | XLAT_VAL_123 +# endif +# ifdef XLAT_VAL_124 + | XLAT_VAL_124 +# endif +# ifdef XLAT_VAL_125 + | XLAT_VAL_125 +# endif +# ifdef XLAT_VAL_126 + | XLAT_VAL_126 +# endif +# ifdef XLAT_VAL_127 + | XLAT_VAL_127 +# endif +# ifdef XLAT_VAL_128 + | XLAT_VAL_128 +# endif +# ifdef XLAT_VAL_129 + | XLAT_VAL_129 +# endif +# ifdef XLAT_VAL_130 + | XLAT_VAL_130 +# endif +# ifdef XLAT_VAL_131 + | XLAT_VAL_131 +# endif +# ifdef XLAT_VAL_132 + | XLAT_VAL_132 +# endif +# ifdef XLAT_VAL_133 + | XLAT_VAL_133 +# endif +# ifdef XLAT_VAL_134 + | XLAT_VAL_134 +# endif +# ifdef XLAT_VAL_135 + | XLAT_VAL_135 +# endif +# ifdef XLAT_VAL_136 + | XLAT_VAL_136 +# endif +# ifdef XLAT_VAL_137 + | XLAT_VAL_137 +# endif +# ifdef XLAT_VAL_138 + | XLAT_VAL_138 +# endif +# ifdef XLAT_VAL_139 + | XLAT_VAL_139 +# endif +# ifdef XLAT_VAL_140 + | XLAT_VAL_140 +# endif +# ifdef XLAT_VAL_141 + | XLAT_VAL_141 +# endif +# ifdef XLAT_VAL_142 + | XLAT_VAL_142 +# endif +# ifdef XLAT_VAL_143 + | XLAT_VAL_143 +# endif +# ifdef XLAT_VAL_144 + | XLAT_VAL_144 +# endif +# ifdef XLAT_VAL_145 + | XLAT_VAL_145 +# endif +# ifdef XLAT_VAL_146 + | XLAT_VAL_146 +# endif +# ifdef XLAT_VAL_147 + | XLAT_VAL_147 +# endif +# ifdef XLAT_VAL_148 + | XLAT_VAL_148 +# endif +# ifdef XLAT_VAL_149 + | XLAT_VAL_149 +# endif +# ifdef XLAT_VAL_150 + | XLAT_VAL_150 +# endif +# ifdef XLAT_VAL_151 + | XLAT_VAL_151 +# endif +# ifdef XLAT_VAL_152 + | XLAT_VAL_152 +# endif +# ifdef XLAT_VAL_153 + | XLAT_VAL_153 +# endif +# ifdef XLAT_VAL_154 + | XLAT_VAL_154 +# endif +# ifdef XLAT_VAL_155 + | XLAT_VAL_155 +# endif +# ifdef XLAT_VAL_156 + | XLAT_VAL_156 +# endif +# ifdef XLAT_VAL_157 + | XLAT_VAL_157 +# endif +# ifdef XLAT_VAL_158 + | XLAT_VAL_158 +# endif +# ifdef XLAT_VAL_159 + | XLAT_VAL_159 +# endif +# ifdef XLAT_VAL_160 + | XLAT_VAL_160 +# endif +# ifdef XLAT_VAL_161 + | XLAT_VAL_161 +# endif +# ifdef XLAT_VAL_162 + | XLAT_VAL_162 +# endif +# ifdef XLAT_VAL_163 + | XLAT_VAL_163 +# endif +# ifdef XLAT_VAL_164 + | XLAT_VAL_164 +# endif +# ifdef XLAT_VAL_165 + | XLAT_VAL_165 +# endif +# ifdef XLAT_VAL_166 + | XLAT_VAL_166 +# endif +# ifdef XLAT_VAL_167 + | XLAT_VAL_167 +# endif +# ifdef XLAT_VAL_168 + | XLAT_VAL_168 +# endif +# ifdef XLAT_VAL_169 + | XLAT_VAL_169 +# endif +# ifdef XLAT_VAL_170 + | XLAT_VAL_170 +# endif +# ifdef XLAT_VAL_171 + | XLAT_VAL_171 +# endif +# ifdef XLAT_VAL_172 + | XLAT_VAL_172 +# endif +# ifdef XLAT_VAL_173 + | XLAT_VAL_173 +# endif +# ifdef XLAT_VAL_174 + | XLAT_VAL_174 +# endif +# ifdef XLAT_VAL_175 + | XLAT_VAL_175 +# endif +# ifdef XLAT_VAL_176 + | XLAT_VAL_176 +# endif +# ifdef XLAT_VAL_177 + | XLAT_VAL_177 +# endif +# ifdef XLAT_VAL_178 + | XLAT_VAL_178 +# endif +# ifdef XLAT_VAL_179 + | XLAT_VAL_179 +# endif +# ifdef XLAT_VAL_180 + | XLAT_VAL_180 +# endif +# ifdef XLAT_VAL_181 + | XLAT_VAL_181 +# endif +# ifdef XLAT_VAL_182 + | XLAT_VAL_182 +# endif +# ifdef XLAT_VAL_183 + | XLAT_VAL_183 +# endif +# ifdef XLAT_VAL_184 + | XLAT_VAL_184 +# endif +# ifdef XLAT_VAL_185 + | XLAT_VAL_185 +# endif +# ifdef XLAT_VAL_186 + | XLAT_VAL_186 +# endif +# ifdef XLAT_VAL_187 + | XLAT_VAL_187 +# endif +# ifdef XLAT_VAL_188 + | XLAT_VAL_188 +# endif +# ifdef XLAT_VAL_189 + | XLAT_VAL_189 +# endif +# ifdef XLAT_VAL_190 + | XLAT_VAL_190 +# endif +# ifdef XLAT_VAL_191 + | XLAT_VAL_191 +# endif +# ifdef XLAT_VAL_192 + | XLAT_VAL_192 +# endif +# ifdef XLAT_VAL_193 + | XLAT_VAL_193 +# endif +# ifdef XLAT_VAL_194 + | XLAT_VAL_194 +# endif +# ifdef XLAT_VAL_195 + | XLAT_VAL_195 +# endif +# ifdef XLAT_VAL_196 + | XLAT_VAL_196 +# endif +# ifdef XLAT_VAL_197 + | XLAT_VAL_197 +# endif +# ifdef XLAT_VAL_198 + | XLAT_VAL_198 +# endif +# ifdef XLAT_VAL_199 + | XLAT_VAL_199 +# endif +# ifdef XLAT_VAL_200 + | XLAT_VAL_200 +# endif +# ifdef XLAT_VAL_201 + | XLAT_VAL_201 +# endif +# ifdef XLAT_VAL_202 + | XLAT_VAL_202 +# endif +# ifdef XLAT_VAL_203 + | XLAT_VAL_203 +# endif +# ifdef XLAT_VAL_204 + | XLAT_VAL_204 +# endif +# ifdef XLAT_VAL_205 + | XLAT_VAL_205 +# endif +# ifdef XLAT_VAL_206 + | XLAT_VAL_206 +# endif +# ifdef XLAT_VAL_207 + | XLAT_VAL_207 +# endif +# ifdef XLAT_VAL_208 + | XLAT_VAL_208 +# endif +# ifdef XLAT_VAL_209 + | XLAT_VAL_209 +# endif +# ifdef XLAT_VAL_210 + | XLAT_VAL_210 +# endif +# ifdef XLAT_VAL_211 + | XLAT_VAL_211 +# endif +# ifdef XLAT_VAL_212 + | XLAT_VAL_212 +# endif +# ifdef XLAT_VAL_213 + | XLAT_VAL_213 +# endif +# ifdef XLAT_VAL_214 + | XLAT_VAL_214 +# endif +# ifdef XLAT_VAL_215 + | XLAT_VAL_215 +# endif +# ifdef XLAT_VAL_216 + | XLAT_VAL_216 +# endif +# ifdef XLAT_VAL_217 + | XLAT_VAL_217 +# endif +# ifdef XLAT_VAL_218 + | XLAT_VAL_218 +# endif +# ifdef XLAT_VAL_219 + | XLAT_VAL_219 +# endif +# ifdef XLAT_VAL_220 + | XLAT_VAL_220 +# endif +# ifdef XLAT_VAL_221 + | XLAT_VAL_221 +# endif +# ifdef XLAT_VAL_222 + | XLAT_VAL_222 +# endif +# ifdef XLAT_VAL_223 + | XLAT_VAL_223 +# endif +# ifdef XLAT_VAL_224 + | XLAT_VAL_224 +# endif +# ifdef XLAT_VAL_225 + | XLAT_VAL_225 +# endif +# ifdef XLAT_VAL_226 + | XLAT_VAL_226 +# endif +# ifdef XLAT_VAL_227 + | XLAT_VAL_227 +# endif +# ifdef XLAT_VAL_228 + | XLAT_VAL_228 +# endif +# ifdef XLAT_VAL_229 + | XLAT_VAL_229 +# endif +# ifdef XLAT_VAL_230 + | XLAT_VAL_230 +# endif +# ifdef XLAT_VAL_231 + | XLAT_VAL_231 +# endif +# ifdef XLAT_VAL_232 + | XLAT_VAL_232 +# endif +# ifdef XLAT_VAL_233 + | XLAT_VAL_233 +# endif +# ifdef XLAT_VAL_234 + | XLAT_VAL_234 +# endif +# ifdef XLAT_VAL_235 + | XLAT_VAL_235 +# endif +# ifdef XLAT_VAL_236 + | XLAT_VAL_236 +# endif +# ifdef XLAT_VAL_237 + | XLAT_VAL_237 +# endif +# ifdef XLAT_VAL_238 + | XLAT_VAL_238 +# endif +# ifdef XLAT_VAL_239 + | XLAT_VAL_239 +# endif +# ifdef XLAT_VAL_240 + | XLAT_VAL_240 +# endif +# ifdef XLAT_VAL_241 + | XLAT_VAL_241 +# endif +# ifdef XLAT_VAL_242 + | XLAT_VAL_242 +# endif +# ifdef XLAT_VAL_243 + | XLAT_VAL_243 +# endif +# ifdef XLAT_VAL_244 + | XLAT_VAL_244 +# endif +# ifdef XLAT_VAL_245 + | XLAT_VAL_245 +# endif +# ifdef XLAT_VAL_246 + | XLAT_VAL_246 +# endif +# ifdef XLAT_VAL_247 + | XLAT_VAL_247 +# endif +# ifdef XLAT_VAL_248 + | XLAT_VAL_248 +# endif +# ifdef XLAT_VAL_249 + | XLAT_VAL_249 +# endif +# ifdef XLAT_VAL_250 + | XLAT_VAL_250 +# endif +# ifdef XLAT_VAL_251 + | XLAT_VAL_251 +# endif +# ifdef XLAT_VAL_252 + | XLAT_VAL_252 +# endif +# ifdef XLAT_VAL_253 + | XLAT_VAL_253 +# endif +# ifdef XLAT_VAL_254 + | XLAT_VAL_254 +# endif +# ifdef XLAT_VAL_255 + | XLAT_VAL_255 +# endif +# ifdef XLAT_VAL_256 + | XLAT_VAL_256 +# endif +# ifdef XLAT_VAL_257 + | XLAT_VAL_257 +# endif +# ifdef XLAT_VAL_258 + | XLAT_VAL_258 +# endif +# ifdef XLAT_VAL_259 + | XLAT_VAL_259 +# endif +# ifdef XLAT_VAL_260 + | XLAT_VAL_260 +# endif +# ifdef XLAT_VAL_261 + | XLAT_VAL_261 +# endif +# ifdef XLAT_VAL_262 + | XLAT_VAL_262 +# endif +# ifdef XLAT_VAL_263 + | XLAT_VAL_263 +# endif +# ifdef XLAT_VAL_264 + | XLAT_VAL_264 +# endif +# ifdef XLAT_VAL_265 + | XLAT_VAL_265 +# endif +# ifdef XLAT_VAL_266 + | XLAT_VAL_266 +# endif +# ifdef XLAT_VAL_267 + | XLAT_VAL_267 +# endif +# ifdef XLAT_VAL_268 + | XLAT_VAL_268 +# endif +# ifdef XLAT_VAL_269 + | XLAT_VAL_269 +# endif +# ifdef XLAT_VAL_270 + | XLAT_VAL_270 +# endif +# ifdef XLAT_VAL_271 + | XLAT_VAL_271 +# endif +# ifdef XLAT_VAL_272 + | XLAT_VAL_272 +# endif +# ifdef XLAT_VAL_273 + | XLAT_VAL_273 +# endif +# ifdef XLAT_VAL_274 + | XLAT_VAL_274 +# endif +# ifdef XLAT_VAL_275 + | XLAT_VAL_275 +# endif +# ifdef XLAT_VAL_276 + | XLAT_VAL_276 +# endif +# ifdef XLAT_VAL_277 + | XLAT_VAL_277 +# endif +# ifdef XLAT_VAL_278 + | XLAT_VAL_278 +# endif +# ifdef XLAT_VAL_279 + | XLAT_VAL_279 +# endif +# ifdef XLAT_VAL_280 + | XLAT_VAL_280 +# endif +# ifdef XLAT_VAL_281 + | XLAT_VAL_281 +# endif +# ifdef XLAT_VAL_282 + | XLAT_VAL_282 +# endif +# ifdef XLAT_VAL_283 + | XLAT_VAL_283 +# endif +# ifdef XLAT_VAL_284 + | XLAT_VAL_284 +# endif +# ifdef XLAT_VAL_285 + | XLAT_VAL_285 +# endif +# ifdef XLAT_VAL_286 + | XLAT_VAL_286 +# endif +# ifdef XLAT_VAL_287 + | XLAT_VAL_287 +# endif +# ifdef XLAT_VAL_288 + | XLAT_VAL_288 +# endif +# ifdef XLAT_VAL_289 + | XLAT_VAL_289 +# endif +# ifdef XLAT_VAL_290 + | XLAT_VAL_290 +# endif +# ifdef XLAT_VAL_291 + | XLAT_VAL_291 +# endif +# ifdef XLAT_VAL_292 + | XLAT_VAL_292 +# endif +# ifdef XLAT_VAL_293 + | XLAT_VAL_293 +# endif +# ifdef XLAT_VAL_294 + | XLAT_VAL_294 +# endif +# ifdef XLAT_VAL_295 + | XLAT_VAL_295 +# endif +# ifdef XLAT_VAL_296 + | XLAT_VAL_296 +# endif +# ifdef XLAT_VAL_297 + | XLAT_VAL_297 +# endif +# ifdef XLAT_VAL_298 + | XLAT_VAL_298 +# endif +# ifdef XLAT_VAL_299 + | XLAT_VAL_299 +# endif +# ifdef XLAT_VAL_300 + | XLAT_VAL_300 +# endif +# ifdef XLAT_VAL_301 + | XLAT_VAL_301 +# endif +# ifdef XLAT_VAL_302 + | XLAT_VAL_302 +# endif +# ifdef XLAT_VAL_303 + | XLAT_VAL_303 +# endif +# ifdef XLAT_VAL_304 + | XLAT_VAL_304 +# endif +# ifdef XLAT_VAL_305 + | XLAT_VAL_305 +# endif +# ifdef XLAT_VAL_306 + | XLAT_VAL_306 +# endif +# ifdef XLAT_VAL_307 + | XLAT_VAL_307 +# endif +# ifdef XLAT_VAL_308 + | XLAT_VAL_308 +# endif +# ifdef XLAT_VAL_309 + | XLAT_VAL_309 +# endif +# ifdef XLAT_VAL_310 + | XLAT_VAL_310 +# endif +# ifdef XLAT_VAL_311 + | XLAT_VAL_311 +# endif +# ifdef XLAT_VAL_312 + | XLAT_VAL_312 +# endif +# ifdef XLAT_VAL_313 + | XLAT_VAL_313 +# endif +# ifdef XLAT_VAL_314 + | XLAT_VAL_314 +# endif +# ifdef XLAT_VAL_315 + | XLAT_VAL_315 +# endif +# ifdef XLAT_VAL_316 + | XLAT_VAL_316 +# endif +# ifdef XLAT_VAL_317 + | XLAT_VAL_317 +# endif +# ifdef XLAT_VAL_318 + | XLAT_VAL_318 +# endif +# ifdef XLAT_VAL_319 + | XLAT_VAL_319 +# endif +# ifdef XLAT_VAL_320 + | XLAT_VAL_320 +# endif +# ifdef XLAT_VAL_321 + | XLAT_VAL_321 +# endif +# ifdef XLAT_VAL_322 + | XLAT_VAL_322 +# endif +# ifdef XLAT_VAL_323 + | XLAT_VAL_323 +# endif +# ifdef XLAT_VAL_324 + | XLAT_VAL_324 +# endif +# ifdef XLAT_VAL_325 + | XLAT_VAL_325 +# endif +# ifdef XLAT_VAL_326 + | XLAT_VAL_326 +# endif +# ifdef XLAT_VAL_327 + | XLAT_VAL_327 +# endif +# ifdef XLAT_VAL_328 + | XLAT_VAL_328 +# endif +# ifdef XLAT_VAL_329 + | XLAT_VAL_329 +# endif +# ifdef XLAT_VAL_330 + | XLAT_VAL_330 +# endif +# ifdef XLAT_VAL_331 + | XLAT_VAL_331 +# endif +# ifdef XLAT_VAL_332 + | XLAT_VAL_332 +# endif +# ifdef XLAT_VAL_333 + | XLAT_VAL_333 +# endif +# ifdef XLAT_VAL_334 + | XLAT_VAL_334 +# endif +# ifdef XLAT_VAL_335 + | XLAT_VAL_335 +# endif +# ifdef XLAT_VAL_336 + | XLAT_VAL_336 +# endif +# ifdef XLAT_VAL_337 + | XLAT_VAL_337 +# endif +# ifdef XLAT_VAL_338 + | XLAT_VAL_338 +# endif +# ifdef XLAT_VAL_339 + | XLAT_VAL_339 +# endif +# ifdef XLAT_VAL_340 + | XLAT_VAL_340 +# endif +# ifdef XLAT_VAL_341 + | XLAT_VAL_341 +# endif +# ifdef XLAT_VAL_342 + | XLAT_VAL_342 +# endif +# ifdef XLAT_VAL_343 + | XLAT_VAL_343 +# endif +# ifdef XLAT_VAL_344 + | XLAT_VAL_344 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif +# ifdef XLAT_STR_41 + + sizeof(XLAT_STR_41) +# endif +# ifdef XLAT_STR_42 + + sizeof(XLAT_STR_42) +# endif +# ifdef XLAT_STR_43 + + sizeof(XLAT_STR_43) +# endif +# ifdef XLAT_STR_44 + + sizeof(XLAT_STR_44) +# endif +# ifdef XLAT_STR_45 + + sizeof(XLAT_STR_45) +# endif +# ifdef XLAT_STR_46 + + sizeof(XLAT_STR_46) +# endif +# ifdef XLAT_STR_47 + + sizeof(XLAT_STR_47) +# endif +# ifdef XLAT_STR_48 + + sizeof(XLAT_STR_48) +# endif +# ifdef XLAT_STR_49 + + sizeof(XLAT_STR_49) +# endif +# ifdef XLAT_STR_50 + + sizeof(XLAT_STR_50) +# endif +# ifdef XLAT_STR_51 + + sizeof(XLAT_STR_51) +# endif +# ifdef XLAT_STR_52 + + sizeof(XLAT_STR_52) +# endif +# ifdef XLAT_STR_53 + + sizeof(XLAT_STR_53) +# endif +# ifdef XLAT_STR_54 + + sizeof(XLAT_STR_54) +# endif +# ifdef XLAT_STR_55 + + sizeof(XLAT_STR_55) +# endif +# ifdef XLAT_STR_56 + + sizeof(XLAT_STR_56) +# endif +# ifdef XLAT_STR_57 + + sizeof(XLAT_STR_57) +# endif +# ifdef XLAT_STR_58 + + sizeof(XLAT_STR_58) +# endif +# ifdef XLAT_STR_59 + + sizeof(XLAT_STR_59) +# endif +# ifdef XLAT_STR_60 + + sizeof(XLAT_STR_60) +# endif +# ifdef XLAT_STR_61 + + sizeof(XLAT_STR_61) +# endif +# ifdef XLAT_STR_62 + + sizeof(XLAT_STR_62) +# endif +# ifdef XLAT_STR_63 + + sizeof(XLAT_STR_63) +# endif +# ifdef XLAT_STR_64 + + sizeof(XLAT_STR_64) +# endif +# ifdef XLAT_STR_65 + + sizeof(XLAT_STR_65) +# endif +# ifdef XLAT_STR_66 + + sizeof(XLAT_STR_66) +# endif +# ifdef XLAT_STR_67 + + sizeof(XLAT_STR_67) +# endif +# ifdef XLAT_STR_68 + + sizeof(XLAT_STR_68) +# endif +# ifdef XLAT_STR_69 + + sizeof(XLAT_STR_69) +# endif +# ifdef XLAT_STR_70 + + sizeof(XLAT_STR_70) +# endif +# ifdef XLAT_STR_71 + + sizeof(XLAT_STR_71) +# endif +# ifdef XLAT_STR_72 + + sizeof(XLAT_STR_72) +# endif +# ifdef XLAT_STR_73 + + sizeof(XLAT_STR_73) +# endif +# ifdef XLAT_STR_74 + + sizeof(XLAT_STR_74) +# endif +# ifdef XLAT_STR_75 + + sizeof(XLAT_STR_75) +# endif +# ifdef XLAT_STR_76 + + sizeof(XLAT_STR_76) +# endif +# ifdef XLAT_STR_77 + + sizeof(XLAT_STR_77) +# endif +# ifdef XLAT_STR_78 + + sizeof(XLAT_STR_78) +# endif +# ifdef XLAT_STR_79 + + sizeof(XLAT_STR_79) +# endif +# ifdef XLAT_STR_80 + + sizeof(XLAT_STR_80) +# endif +# ifdef XLAT_STR_81 + + sizeof(XLAT_STR_81) +# endif +# ifdef XLAT_STR_82 + + sizeof(XLAT_STR_82) +# endif +# ifdef XLAT_STR_83 + + sizeof(XLAT_STR_83) +# endif +# ifdef XLAT_STR_84 + + sizeof(XLAT_STR_84) +# endif +# ifdef XLAT_STR_85 + + sizeof(XLAT_STR_85) +# endif +# ifdef XLAT_STR_86 + + sizeof(XLAT_STR_86) +# endif +# ifdef XLAT_STR_87 + + sizeof(XLAT_STR_87) +# endif +# ifdef XLAT_STR_88 + + sizeof(XLAT_STR_88) +# endif +# ifdef XLAT_STR_89 + + sizeof(XLAT_STR_89) +# endif +# ifdef XLAT_STR_90 + + sizeof(XLAT_STR_90) +# endif +# ifdef XLAT_STR_91 + + sizeof(XLAT_STR_91) +# endif +# ifdef XLAT_STR_92 + + sizeof(XLAT_STR_92) +# endif +# ifdef XLAT_STR_93 + + sizeof(XLAT_STR_93) +# endif +# ifdef XLAT_STR_94 + + sizeof(XLAT_STR_94) +# endif +# ifdef XLAT_STR_95 + + sizeof(XLAT_STR_95) +# endif +# ifdef XLAT_STR_96 + + sizeof(XLAT_STR_96) +# endif +# ifdef XLAT_STR_97 + + sizeof(XLAT_STR_97) +# endif +# ifdef XLAT_STR_98 + + sizeof(XLAT_STR_98) +# endif +# ifdef XLAT_STR_99 + + sizeof(XLAT_STR_99) +# endif +# ifdef XLAT_STR_100 + + sizeof(XLAT_STR_100) +# endif +# ifdef XLAT_STR_101 + + sizeof(XLAT_STR_101) +# endif +# ifdef XLAT_STR_102 + + sizeof(XLAT_STR_102) +# endif +# ifdef XLAT_STR_103 + + sizeof(XLAT_STR_103) +# endif +# ifdef XLAT_STR_104 + + sizeof(XLAT_STR_104) +# endif +# ifdef XLAT_STR_105 + + sizeof(XLAT_STR_105) +# endif +# ifdef XLAT_STR_106 + + sizeof(XLAT_STR_106) +# endif +# ifdef XLAT_STR_107 + + sizeof(XLAT_STR_107) +# endif +# ifdef XLAT_STR_108 + + sizeof(XLAT_STR_108) +# endif +# ifdef XLAT_STR_109 + + sizeof(XLAT_STR_109) +# endif +# ifdef XLAT_STR_110 + + sizeof(XLAT_STR_110) +# endif +# ifdef XLAT_STR_111 + + sizeof(XLAT_STR_111) +# endif +# ifdef XLAT_STR_112 + + sizeof(XLAT_STR_112) +# endif +# ifdef XLAT_STR_113 + + sizeof(XLAT_STR_113) +# endif +# ifdef XLAT_STR_114 + + sizeof(XLAT_STR_114) +# endif +# ifdef XLAT_STR_115 + + sizeof(XLAT_STR_115) +# endif +# ifdef XLAT_STR_116 + + sizeof(XLAT_STR_116) +# endif +# ifdef XLAT_STR_117 + + sizeof(XLAT_STR_117) +# endif +# ifdef XLAT_STR_118 + + sizeof(XLAT_STR_118) +# endif +# ifdef XLAT_STR_119 + + sizeof(XLAT_STR_119) +# endif +# ifdef XLAT_STR_120 + + sizeof(XLAT_STR_120) +# endif +# ifdef XLAT_STR_121 + + sizeof(XLAT_STR_121) +# endif +# ifdef XLAT_STR_122 + + sizeof(XLAT_STR_122) +# endif +# ifdef XLAT_STR_123 + + sizeof(XLAT_STR_123) +# endif +# ifdef XLAT_STR_124 + + sizeof(XLAT_STR_124) +# endif +# ifdef XLAT_STR_125 + + sizeof(XLAT_STR_125) +# endif +# ifdef XLAT_STR_126 + + sizeof(XLAT_STR_126) +# endif +# ifdef XLAT_STR_127 + + sizeof(XLAT_STR_127) +# endif +# ifdef XLAT_STR_128 + + sizeof(XLAT_STR_128) +# endif +# ifdef XLAT_STR_129 + + sizeof(XLAT_STR_129) +# endif +# ifdef XLAT_STR_130 + + sizeof(XLAT_STR_130) +# endif +# ifdef XLAT_STR_131 + + sizeof(XLAT_STR_131) +# endif +# ifdef XLAT_STR_132 + + sizeof(XLAT_STR_132) +# endif +# ifdef XLAT_STR_133 + + sizeof(XLAT_STR_133) +# endif +# ifdef XLAT_STR_134 + + sizeof(XLAT_STR_134) +# endif +# ifdef XLAT_STR_135 + + sizeof(XLAT_STR_135) +# endif +# ifdef XLAT_STR_136 + + sizeof(XLAT_STR_136) +# endif +# ifdef XLAT_STR_137 + + sizeof(XLAT_STR_137) +# endif +# ifdef XLAT_STR_138 + + sizeof(XLAT_STR_138) +# endif +# ifdef XLAT_STR_139 + + sizeof(XLAT_STR_139) +# endif +# ifdef XLAT_STR_140 + + sizeof(XLAT_STR_140) +# endif +# ifdef XLAT_STR_141 + + sizeof(XLAT_STR_141) +# endif +# ifdef XLAT_STR_142 + + sizeof(XLAT_STR_142) +# endif +# ifdef XLAT_STR_143 + + sizeof(XLAT_STR_143) +# endif +# ifdef XLAT_STR_144 + + sizeof(XLAT_STR_144) +# endif +# ifdef XLAT_STR_145 + + sizeof(XLAT_STR_145) +# endif +# ifdef XLAT_STR_146 + + sizeof(XLAT_STR_146) +# endif +# ifdef XLAT_STR_147 + + sizeof(XLAT_STR_147) +# endif +# ifdef XLAT_STR_148 + + sizeof(XLAT_STR_148) +# endif +# ifdef XLAT_STR_149 + + sizeof(XLAT_STR_149) +# endif +# ifdef XLAT_STR_150 + + sizeof(XLAT_STR_150) +# endif +# ifdef XLAT_STR_151 + + sizeof(XLAT_STR_151) +# endif +# ifdef XLAT_STR_152 + + sizeof(XLAT_STR_152) +# endif +# ifdef XLAT_STR_153 + + sizeof(XLAT_STR_153) +# endif +# ifdef XLAT_STR_154 + + sizeof(XLAT_STR_154) +# endif +# ifdef XLAT_STR_155 + + sizeof(XLAT_STR_155) +# endif +# ifdef XLAT_STR_156 + + sizeof(XLAT_STR_156) +# endif +# ifdef XLAT_STR_157 + + sizeof(XLAT_STR_157) +# endif +# ifdef XLAT_STR_158 + + sizeof(XLAT_STR_158) +# endif +# ifdef XLAT_STR_159 + + sizeof(XLAT_STR_159) +# endif +# ifdef XLAT_STR_160 + + sizeof(XLAT_STR_160) +# endif +# ifdef XLAT_STR_161 + + sizeof(XLAT_STR_161) +# endif +# ifdef XLAT_STR_162 + + sizeof(XLAT_STR_162) +# endif +# ifdef XLAT_STR_163 + + sizeof(XLAT_STR_163) +# endif +# ifdef XLAT_STR_164 + + sizeof(XLAT_STR_164) +# endif +# ifdef XLAT_STR_165 + + sizeof(XLAT_STR_165) +# endif +# ifdef XLAT_STR_166 + + sizeof(XLAT_STR_166) +# endif +# ifdef XLAT_STR_167 + + sizeof(XLAT_STR_167) +# endif +# ifdef XLAT_STR_168 + + sizeof(XLAT_STR_168) +# endif +# ifdef XLAT_STR_169 + + sizeof(XLAT_STR_169) +# endif +# ifdef XLAT_STR_170 + + sizeof(XLAT_STR_170) +# endif +# ifdef XLAT_STR_171 + + sizeof(XLAT_STR_171) +# endif +# ifdef XLAT_STR_172 + + sizeof(XLAT_STR_172) +# endif +# ifdef XLAT_STR_173 + + sizeof(XLAT_STR_173) +# endif +# ifdef XLAT_STR_174 + + sizeof(XLAT_STR_174) +# endif +# ifdef XLAT_STR_175 + + sizeof(XLAT_STR_175) +# endif +# ifdef XLAT_STR_176 + + sizeof(XLAT_STR_176) +# endif +# ifdef XLAT_STR_177 + + sizeof(XLAT_STR_177) +# endif +# ifdef XLAT_STR_178 + + sizeof(XLAT_STR_178) +# endif +# ifdef XLAT_STR_179 + + sizeof(XLAT_STR_179) +# endif +# ifdef XLAT_STR_180 + + sizeof(XLAT_STR_180) +# endif +# ifdef XLAT_STR_181 + + sizeof(XLAT_STR_181) +# endif +# ifdef XLAT_STR_182 + + sizeof(XLAT_STR_182) +# endif +# ifdef XLAT_STR_183 + + sizeof(XLAT_STR_183) +# endif +# ifdef XLAT_STR_184 + + sizeof(XLAT_STR_184) +# endif +# ifdef XLAT_STR_185 + + sizeof(XLAT_STR_185) +# endif +# ifdef XLAT_STR_186 + + sizeof(XLAT_STR_186) +# endif +# ifdef XLAT_STR_187 + + sizeof(XLAT_STR_187) +# endif +# ifdef XLAT_STR_188 + + sizeof(XLAT_STR_188) +# endif +# ifdef XLAT_STR_189 + + sizeof(XLAT_STR_189) +# endif +# ifdef XLAT_STR_190 + + sizeof(XLAT_STR_190) +# endif +# ifdef XLAT_STR_191 + + sizeof(XLAT_STR_191) +# endif +# ifdef XLAT_STR_192 + + sizeof(XLAT_STR_192) +# endif +# ifdef XLAT_STR_193 + + sizeof(XLAT_STR_193) +# endif +# ifdef XLAT_STR_194 + + sizeof(XLAT_STR_194) +# endif +# ifdef XLAT_STR_195 + + sizeof(XLAT_STR_195) +# endif +# ifdef XLAT_STR_196 + + sizeof(XLAT_STR_196) +# endif +# ifdef XLAT_STR_197 + + sizeof(XLAT_STR_197) +# endif +# ifdef XLAT_STR_198 + + sizeof(XLAT_STR_198) +# endif +# ifdef XLAT_STR_199 + + sizeof(XLAT_STR_199) +# endif +# ifdef XLAT_STR_200 + + sizeof(XLAT_STR_200) +# endif +# ifdef XLAT_STR_201 + + sizeof(XLAT_STR_201) +# endif +# ifdef XLAT_STR_202 + + sizeof(XLAT_STR_202) +# endif +# ifdef XLAT_STR_203 + + sizeof(XLAT_STR_203) +# endif +# ifdef XLAT_STR_204 + + sizeof(XLAT_STR_204) +# endif +# ifdef XLAT_STR_205 + + sizeof(XLAT_STR_205) +# endif +# ifdef XLAT_STR_206 + + sizeof(XLAT_STR_206) +# endif +# ifdef XLAT_STR_207 + + sizeof(XLAT_STR_207) +# endif +# ifdef XLAT_STR_208 + + sizeof(XLAT_STR_208) +# endif +# ifdef XLAT_STR_209 + + sizeof(XLAT_STR_209) +# endif +# ifdef XLAT_STR_210 + + sizeof(XLAT_STR_210) +# endif +# ifdef XLAT_STR_211 + + sizeof(XLAT_STR_211) +# endif +# ifdef XLAT_STR_212 + + sizeof(XLAT_STR_212) +# endif +# ifdef XLAT_STR_213 + + sizeof(XLAT_STR_213) +# endif +# ifdef XLAT_STR_214 + + sizeof(XLAT_STR_214) +# endif +# ifdef XLAT_STR_215 + + sizeof(XLAT_STR_215) +# endif +# ifdef XLAT_STR_216 + + sizeof(XLAT_STR_216) +# endif +# ifdef XLAT_STR_217 + + sizeof(XLAT_STR_217) +# endif +# ifdef XLAT_STR_218 + + sizeof(XLAT_STR_218) +# endif +# ifdef XLAT_STR_219 + + sizeof(XLAT_STR_219) +# endif +# ifdef XLAT_STR_220 + + sizeof(XLAT_STR_220) +# endif +# ifdef XLAT_STR_221 + + sizeof(XLAT_STR_221) +# endif +# ifdef XLAT_STR_222 + + sizeof(XLAT_STR_222) +# endif +# ifdef XLAT_STR_223 + + sizeof(XLAT_STR_223) +# endif +# ifdef XLAT_STR_224 + + sizeof(XLAT_STR_224) +# endif +# ifdef XLAT_STR_225 + + sizeof(XLAT_STR_225) +# endif +# ifdef XLAT_STR_226 + + sizeof(XLAT_STR_226) +# endif +# ifdef XLAT_STR_227 + + sizeof(XLAT_STR_227) +# endif +# ifdef XLAT_STR_228 + + sizeof(XLAT_STR_228) +# endif +# ifdef XLAT_STR_229 + + sizeof(XLAT_STR_229) +# endif +# ifdef XLAT_STR_230 + + sizeof(XLAT_STR_230) +# endif +# ifdef XLAT_STR_231 + + sizeof(XLAT_STR_231) +# endif +# ifdef XLAT_STR_232 + + sizeof(XLAT_STR_232) +# endif +# ifdef XLAT_STR_233 + + sizeof(XLAT_STR_233) +# endif +# ifdef XLAT_STR_234 + + sizeof(XLAT_STR_234) +# endif +# ifdef XLAT_STR_235 + + sizeof(XLAT_STR_235) +# endif +# ifdef XLAT_STR_236 + + sizeof(XLAT_STR_236) +# endif +# ifdef XLAT_STR_237 + + sizeof(XLAT_STR_237) +# endif +# ifdef XLAT_STR_238 + + sizeof(XLAT_STR_238) +# endif +# ifdef XLAT_STR_239 + + sizeof(XLAT_STR_239) +# endif +# ifdef XLAT_STR_240 + + sizeof(XLAT_STR_240) +# endif +# ifdef XLAT_STR_241 + + sizeof(XLAT_STR_241) +# endif +# ifdef XLAT_STR_242 + + sizeof(XLAT_STR_242) +# endif +# ifdef XLAT_STR_243 + + sizeof(XLAT_STR_243) +# endif +# ifdef XLAT_STR_244 + + sizeof(XLAT_STR_244) +# endif +# ifdef XLAT_STR_245 + + sizeof(XLAT_STR_245) +# endif +# ifdef XLAT_STR_246 + + sizeof(XLAT_STR_246) +# endif +# ifdef XLAT_STR_247 + + sizeof(XLAT_STR_247) +# endif +# ifdef XLAT_STR_248 + + sizeof(XLAT_STR_248) +# endif +# ifdef XLAT_STR_249 + + sizeof(XLAT_STR_249) +# endif +# ifdef XLAT_STR_250 + + sizeof(XLAT_STR_250) +# endif +# ifdef XLAT_STR_251 + + sizeof(XLAT_STR_251) +# endif +# ifdef XLAT_STR_252 + + sizeof(XLAT_STR_252) +# endif +# ifdef XLAT_STR_253 + + sizeof(XLAT_STR_253) +# endif +# ifdef XLAT_STR_254 + + sizeof(XLAT_STR_254) +# endif +# ifdef XLAT_STR_255 + + sizeof(XLAT_STR_255) +# endif +# ifdef XLAT_STR_256 + + sizeof(XLAT_STR_256) +# endif +# ifdef XLAT_STR_257 + + sizeof(XLAT_STR_257) +# endif +# ifdef XLAT_STR_258 + + sizeof(XLAT_STR_258) +# endif +# ifdef XLAT_STR_259 + + sizeof(XLAT_STR_259) +# endif +# ifdef XLAT_STR_260 + + sizeof(XLAT_STR_260) +# endif +# ifdef XLAT_STR_261 + + sizeof(XLAT_STR_261) +# endif +# ifdef XLAT_STR_262 + + sizeof(XLAT_STR_262) +# endif +# ifdef XLAT_STR_263 + + sizeof(XLAT_STR_263) +# endif +# ifdef XLAT_STR_264 + + sizeof(XLAT_STR_264) +# endif +# ifdef XLAT_STR_265 + + sizeof(XLAT_STR_265) +# endif +# ifdef XLAT_STR_266 + + sizeof(XLAT_STR_266) +# endif +# ifdef XLAT_STR_267 + + sizeof(XLAT_STR_267) +# endif +# ifdef XLAT_STR_268 + + sizeof(XLAT_STR_268) +# endif +# ifdef XLAT_STR_269 + + sizeof(XLAT_STR_269) +# endif +# ifdef XLAT_STR_270 + + sizeof(XLAT_STR_270) +# endif +# ifdef XLAT_STR_271 + + sizeof(XLAT_STR_271) +# endif +# ifdef XLAT_STR_272 + + sizeof(XLAT_STR_272) +# endif +# ifdef XLAT_STR_273 + + sizeof(XLAT_STR_273) +# endif +# ifdef XLAT_STR_274 + + sizeof(XLAT_STR_274) +# endif +# ifdef XLAT_STR_275 + + sizeof(XLAT_STR_275) +# endif +# ifdef XLAT_STR_276 + + sizeof(XLAT_STR_276) +# endif +# ifdef XLAT_STR_277 + + sizeof(XLAT_STR_277) +# endif +# ifdef XLAT_STR_278 + + sizeof(XLAT_STR_278) +# endif +# ifdef XLAT_STR_279 + + sizeof(XLAT_STR_279) +# endif +# ifdef XLAT_STR_280 + + sizeof(XLAT_STR_280) +# endif +# ifdef XLAT_STR_281 + + sizeof(XLAT_STR_281) +# endif +# ifdef XLAT_STR_282 + + sizeof(XLAT_STR_282) +# endif +# ifdef XLAT_STR_283 + + sizeof(XLAT_STR_283) +# endif +# ifdef XLAT_STR_284 + + sizeof(XLAT_STR_284) +# endif +# ifdef XLAT_STR_285 + + sizeof(XLAT_STR_285) +# endif +# ifdef XLAT_STR_286 + + sizeof(XLAT_STR_286) +# endif +# ifdef XLAT_STR_287 + + sizeof(XLAT_STR_287) +# endif +# ifdef XLAT_STR_288 + + sizeof(XLAT_STR_288) +# endif +# ifdef XLAT_STR_289 + + sizeof(XLAT_STR_289) +# endif +# ifdef XLAT_STR_290 + + sizeof(XLAT_STR_290) +# endif +# ifdef XLAT_STR_291 + + sizeof(XLAT_STR_291) +# endif +# ifdef XLAT_STR_292 + + sizeof(XLAT_STR_292) +# endif +# ifdef XLAT_STR_293 + + sizeof(XLAT_STR_293) +# endif +# ifdef XLAT_STR_294 + + sizeof(XLAT_STR_294) +# endif +# ifdef XLAT_STR_295 + + sizeof(XLAT_STR_295) +# endif +# ifdef XLAT_STR_296 + + sizeof(XLAT_STR_296) +# endif +# ifdef XLAT_STR_297 + + sizeof(XLAT_STR_297) +# endif +# ifdef XLAT_STR_298 + + sizeof(XLAT_STR_298) +# endif +# ifdef XLAT_STR_299 + + sizeof(XLAT_STR_299) +# endif +# ifdef XLAT_STR_300 + + sizeof(XLAT_STR_300) +# endif +# ifdef XLAT_STR_301 + + sizeof(XLAT_STR_301) +# endif +# ifdef XLAT_STR_302 + + sizeof(XLAT_STR_302) +# endif +# ifdef XLAT_STR_303 + + sizeof(XLAT_STR_303) +# endif +# ifdef XLAT_STR_304 + + sizeof(XLAT_STR_304) +# endif +# ifdef XLAT_STR_305 + + sizeof(XLAT_STR_305) +# endif +# ifdef XLAT_STR_306 + + sizeof(XLAT_STR_306) +# endif +# ifdef XLAT_STR_307 + + sizeof(XLAT_STR_307) +# endif +# ifdef XLAT_STR_308 + + sizeof(XLAT_STR_308) +# endif +# ifdef XLAT_STR_309 + + sizeof(XLAT_STR_309) +# endif +# ifdef XLAT_STR_310 + + sizeof(XLAT_STR_310) +# endif +# ifdef XLAT_STR_311 + + sizeof(XLAT_STR_311) +# endif +# ifdef XLAT_STR_312 + + sizeof(XLAT_STR_312) +# endif +# ifdef XLAT_STR_313 + + sizeof(XLAT_STR_313) +# endif +# ifdef XLAT_STR_314 + + sizeof(XLAT_STR_314) +# endif +# ifdef XLAT_STR_315 + + sizeof(XLAT_STR_315) +# endif +# ifdef XLAT_STR_316 + + sizeof(XLAT_STR_316) +# endif +# ifdef XLAT_STR_317 + + sizeof(XLAT_STR_317) +# endif +# ifdef XLAT_STR_318 + + sizeof(XLAT_STR_318) +# endif +# ifdef XLAT_STR_319 + + sizeof(XLAT_STR_319) +# endif +# ifdef XLAT_STR_320 + + sizeof(XLAT_STR_320) +# endif +# ifdef XLAT_STR_321 + + sizeof(XLAT_STR_321) +# endif +# ifdef XLAT_STR_322 + + sizeof(XLAT_STR_322) +# endif +# ifdef XLAT_STR_323 + + sizeof(XLAT_STR_323) +# endif +# ifdef XLAT_STR_324 + + sizeof(XLAT_STR_324) +# endif +# ifdef XLAT_STR_325 + + sizeof(XLAT_STR_325) +# endif +# ifdef XLAT_STR_326 + + sizeof(XLAT_STR_326) +# endif +# ifdef XLAT_STR_327 + + sizeof(XLAT_STR_327) +# endif +# ifdef XLAT_STR_328 + + sizeof(XLAT_STR_328) +# endif +# ifdef XLAT_STR_329 + + sizeof(XLAT_STR_329) +# endif +# ifdef XLAT_STR_330 + + sizeof(XLAT_STR_330) +# endif +# ifdef XLAT_STR_331 + + sizeof(XLAT_STR_331) +# endif +# ifdef XLAT_STR_332 + + sizeof(XLAT_STR_332) +# endif +# ifdef XLAT_STR_333 + + sizeof(XLAT_STR_333) +# endif +# ifdef XLAT_STR_334 + + sizeof(XLAT_STR_334) +# endif +# ifdef XLAT_STR_335 + + sizeof(XLAT_STR_335) +# endif +# ifdef XLAT_STR_336 + + sizeof(XLAT_STR_336) +# endif +# ifdef XLAT_STR_337 + + sizeof(XLAT_STR_337) +# endif +# ifdef XLAT_STR_338 + + sizeof(XLAT_STR_338) +# endif +# ifdef XLAT_STR_339 + + sizeof(XLAT_STR_339) +# endif +# ifdef XLAT_STR_340 + + sizeof(XLAT_STR_340) +# endif +# ifdef XLAT_STR_341 + + sizeof(XLAT_STR_341) +# endif +# ifdef XLAT_STR_342 + + sizeof(XLAT_STR_342) +# endif +# ifdef XLAT_STR_343 + + sizeof(XLAT_STR_343) +# endif +# ifdef XLAT_STR_344 + + sizeof(XLAT_STR_344) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 +# undef XLAT_STR_41 +# undef XLAT_VAL_41 +# undef XLAT_STR_42 +# undef XLAT_VAL_42 +# undef XLAT_STR_43 +# undef XLAT_VAL_43 +# undef XLAT_STR_44 +# undef XLAT_VAL_44 +# undef XLAT_STR_45 +# undef XLAT_VAL_45 +# undef XLAT_STR_46 +# undef XLAT_VAL_46 +# undef XLAT_STR_47 +# undef XLAT_VAL_47 +# undef XLAT_STR_48 +# undef XLAT_VAL_48 +# undef XLAT_STR_49 +# undef XLAT_VAL_49 +# undef XLAT_STR_50 +# undef XLAT_VAL_50 +# undef XLAT_STR_51 +# undef XLAT_VAL_51 +# undef XLAT_STR_52 +# undef XLAT_VAL_52 +# undef XLAT_STR_53 +# undef XLAT_VAL_53 +# undef XLAT_STR_54 +# undef XLAT_VAL_54 +# undef XLAT_STR_55 +# undef XLAT_VAL_55 +# undef XLAT_STR_56 +# undef XLAT_VAL_56 +# undef XLAT_STR_57 +# undef XLAT_VAL_57 +# undef XLAT_STR_58 +# undef XLAT_VAL_58 +# undef XLAT_STR_59 +# undef XLAT_VAL_59 +# undef XLAT_STR_60 +# undef XLAT_VAL_60 +# undef XLAT_STR_61 +# undef XLAT_VAL_61 +# undef XLAT_STR_62 +# undef XLAT_VAL_62 +# undef XLAT_STR_63 +# undef XLAT_VAL_63 +# undef XLAT_STR_64 +# undef XLAT_VAL_64 +# undef XLAT_STR_65 +# undef XLAT_VAL_65 +# undef XLAT_STR_66 +# undef XLAT_VAL_66 +# undef XLAT_STR_67 +# undef XLAT_VAL_67 +# undef XLAT_STR_68 +# undef XLAT_VAL_68 +# undef XLAT_STR_69 +# undef XLAT_VAL_69 +# undef XLAT_STR_70 +# undef XLAT_VAL_70 +# undef XLAT_STR_71 +# undef XLAT_VAL_71 +# undef XLAT_STR_72 +# undef XLAT_VAL_72 +# undef XLAT_STR_73 +# undef XLAT_VAL_73 +# undef XLAT_STR_74 +# undef XLAT_VAL_74 +# undef XLAT_STR_75 +# undef XLAT_VAL_75 +# undef XLAT_STR_76 +# undef XLAT_VAL_76 +# undef XLAT_STR_77 +# undef XLAT_VAL_77 +# undef XLAT_STR_78 +# undef XLAT_VAL_78 +# undef XLAT_STR_79 +# undef XLAT_VAL_79 +# undef XLAT_STR_80 +# undef XLAT_VAL_80 +# undef XLAT_STR_81 +# undef XLAT_VAL_81 +# undef XLAT_STR_82 +# undef XLAT_VAL_82 +# undef XLAT_STR_83 +# undef XLAT_VAL_83 +# undef XLAT_STR_84 +# undef XLAT_VAL_84 +# undef XLAT_STR_85 +# undef XLAT_VAL_85 +# undef XLAT_STR_86 +# undef XLAT_VAL_86 +# undef XLAT_STR_87 +# undef XLAT_VAL_87 +# undef XLAT_STR_88 +# undef XLAT_VAL_88 +# undef XLAT_STR_89 +# undef XLAT_VAL_89 +# undef XLAT_STR_90 +# undef XLAT_VAL_90 +# undef XLAT_STR_91 +# undef XLAT_VAL_91 +# undef XLAT_STR_92 +# undef XLAT_VAL_92 +# undef XLAT_STR_93 +# undef XLAT_VAL_93 +# undef XLAT_STR_94 +# undef XLAT_VAL_94 +# undef XLAT_STR_95 +# undef XLAT_VAL_95 +# undef XLAT_STR_96 +# undef XLAT_VAL_96 +# undef XLAT_STR_97 +# undef XLAT_VAL_97 +# undef XLAT_STR_98 +# undef XLAT_VAL_98 +# undef XLAT_STR_99 +# undef XLAT_VAL_99 +# undef XLAT_STR_100 +# undef XLAT_VAL_100 +# undef XLAT_STR_101 +# undef XLAT_VAL_101 +# undef XLAT_STR_102 +# undef XLAT_VAL_102 +# undef XLAT_STR_103 +# undef XLAT_VAL_103 +# undef XLAT_STR_104 +# undef XLAT_VAL_104 +# undef XLAT_STR_105 +# undef XLAT_VAL_105 +# undef XLAT_STR_106 +# undef XLAT_VAL_106 +# undef XLAT_STR_107 +# undef XLAT_VAL_107 +# undef XLAT_STR_108 +# undef XLAT_VAL_108 +# undef XLAT_STR_109 +# undef XLAT_VAL_109 +# undef XLAT_STR_110 +# undef XLAT_VAL_110 +# undef XLAT_STR_111 +# undef XLAT_VAL_111 +# undef XLAT_STR_112 +# undef XLAT_VAL_112 +# undef XLAT_STR_113 +# undef XLAT_VAL_113 +# undef XLAT_STR_114 +# undef XLAT_VAL_114 +# undef XLAT_STR_115 +# undef XLAT_VAL_115 +# undef XLAT_STR_116 +# undef XLAT_VAL_116 +# undef XLAT_STR_117 +# undef XLAT_VAL_117 +# undef XLAT_STR_118 +# undef XLAT_VAL_118 +# undef XLAT_STR_119 +# undef XLAT_VAL_119 +# undef XLAT_STR_120 +# undef XLAT_VAL_120 +# undef XLAT_STR_121 +# undef XLAT_VAL_121 +# undef XLAT_STR_122 +# undef XLAT_VAL_122 +# undef XLAT_STR_123 +# undef XLAT_VAL_123 +# undef XLAT_STR_124 +# undef XLAT_VAL_124 +# undef XLAT_STR_125 +# undef XLAT_VAL_125 +# undef XLAT_STR_126 +# undef XLAT_VAL_126 +# undef XLAT_STR_127 +# undef XLAT_VAL_127 +# undef XLAT_STR_128 +# undef XLAT_VAL_128 +# undef XLAT_STR_129 +# undef XLAT_VAL_129 +# undef XLAT_STR_130 +# undef XLAT_VAL_130 +# undef XLAT_STR_131 +# undef XLAT_VAL_131 +# undef XLAT_STR_132 +# undef XLAT_VAL_132 +# undef XLAT_STR_133 +# undef XLAT_VAL_133 +# undef XLAT_STR_134 +# undef XLAT_VAL_134 +# undef XLAT_STR_135 +# undef XLAT_VAL_135 +# undef XLAT_STR_136 +# undef XLAT_VAL_136 +# undef XLAT_STR_137 +# undef XLAT_VAL_137 +# undef XLAT_STR_138 +# undef XLAT_VAL_138 +# undef XLAT_STR_139 +# undef XLAT_VAL_139 +# undef XLAT_STR_140 +# undef XLAT_VAL_140 +# undef XLAT_STR_141 +# undef XLAT_VAL_141 +# undef XLAT_STR_142 +# undef XLAT_VAL_142 +# undef XLAT_STR_143 +# undef XLAT_VAL_143 +# undef XLAT_STR_144 +# undef XLAT_VAL_144 +# undef XLAT_STR_145 +# undef XLAT_VAL_145 +# undef XLAT_STR_146 +# undef XLAT_VAL_146 +# undef XLAT_STR_147 +# undef XLAT_VAL_147 +# undef XLAT_STR_148 +# undef XLAT_VAL_148 +# undef XLAT_STR_149 +# undef XLAT_VAL_149 +# undef XLAT_STR_150 +# undef XLAT_VAL_150 +# undef XLAT_STR_151 +# undef XLAT_VAL_151 +# undef XLAT_STR_152 +# undef XLAT_VAL_152 +# undef XLAT_STR_153 +# undef XLAT_VAL_153 +# undef XLAT_STR_154 +# undef XLAT_VAL_154 +# undef XLAT_STR_155 +# undef XLAT_VAL_155 +# undef XLAT_STR_156 +# undef XLAT_VAL_156 +# undef XLAT_STR_157 +# undef XLAT_VAL_157 +# undef XLAT_STR_158 +# undef XLAT_VAL_158 +# undef XLAT_STR_159 +# undef XLAT_VAL_159 +# undef XLAT_STR_160 +# undef XLAT_VAL_160 +# undef XLAT_STR_161 +# undef XLAT_VAL_161 +# undef XLAT_STR_162 +# undef XLAT_VAL_162 +# undef XLAT_STR_163 +# undef XLAT_VAL_163 +# undef XLAT_STR_164 +# undef XLAT_VAL_164 +# undef XLAT_STR_165 +# undef XLAT_VAL_165 +# undef XLAT_STR_166 +# undef XLAT_VAL_166 +# undef XLAT_STR_167 +# undef XLAT_VAL_167 +# undef XLAT_STR_168 +# undef XLAT_VAL_168 +# undef XLAT_STR_169 +# undef XLAT_VAL_169 +# undef XLAT_STR_170 +# undef XLAT_VAL_170 +# undef XLAT_STR_171 +# undef XLAT_VAL_171 +# undef XLAT_STR_172 +# undef XLAT_VAL_172 +# undef XLAT_STR_173 +# undef XLAT_VAL_173 +# undef XLAT_STR_174 +# undef XLAT_VAL_174 +# undef XLAT_STR_175 +# undef XLAT_VAL_175 +# undef XLAT_STR_176 +# undef XLAT_VAL_176 +# undef XLAT_STR_177 +# undef XLAT_VAL_177 +# undef XLAT_STR_178 +# undef XLAT_VAL_178 +# undef XLAT_STR_179 +# undef XLAT_VAL_179 +# undef XLAT_STR_180 +# undef XLAT_VAL_180 +# undef XLAT_STR_181 +# undef XLAT_VAL_181 +# undef XLAT_STR_182 +# undef XLAT_VAL_182 +# undef XLAT_STR_183 +# undef XLAT_VAL_183 +# undef XLAT_STR_184 +# undef XLAT_VAL_184 +# undef XLAT_STR_185 +# undef XLAT_VAL_185 +# undef XLAT_STR_186 +# undef XLAT_VAL_186 +# undef XLAT_STR_187 +# undef XLAT_VAL_187 +# undef XLAT_STR_188 +# undef XLAT_VAL_188 +# undef XLAT_STR_189 +# undef XLAT_VAL_189 +# undef XLAT_STR_190 +# undef XLAT_VAL_190 +# undef XLAT_STR_191 +# undef XLAT_VAL_191 +# undef XLAT_STR_192 +# undef XLAT_VAL_192 +# undef XLAT_STR_193 +# undef XLAT_VAL_193 +# undef XLAT_STR_194 +# undef XLAT_VAL_194 +# undef XLAT_STR_195 +# undef XLAT_VAL_195 +# undef XLAT_STR_196 +# undef XLAT_VAL_196 +# undef XLAT_STR_197 +# undef XLAT_VAL_197 +# undef XLAT_STR_198 +# undef XLAT_VAL_198 +# undef XLAT_STR_199 +# undef XLAT_VAL_199 +# undef XLAT_STR_200 +# undef XLAT_VAL_200 +# undef XLAT_STR_201 +# undef XLAT_VAL_201 +# undef XLAT_STR_202 +# undef XLAT_VAL_202 +# undef XLAT_STR_203 +# undef XLAT_VAL_203 +# undef XLAT_STR_204 +# undef XLAT_VAL_204 +# undef XLAT_STR_205 +# undef XLAT_VAL_205 +# undef XLAT_STR_206 +# undef XLAT_VAL_206 +# undef XLAT_STR_207 +# undef XLAT_VAL_207 +# undef XLAT_STR_208 +# undef XLAT_VAL_208 +# undef XLAT_STR_209 +# undef XLAT_VAL_209 +# undef XLAT_STR_210 +# undef XLAT_VAL_210 +# undef XLAT_STR_211 +# undef XLAT_VAL_211 +# undef XLAT_STR_212 +# undef XLAT_VAL_212 +# undef XLAT_STR_213 +# undef XLAT_VAL_213 +# undef XLAT_STR_214 +# undef XLAT_VAL_214 +# undef XLAT_STR_215 +# undef XLAT_VAL_215 +# undef XLAT_STR_216 +# undef XLAT_VAL_216 +# undef XLAT_STR_217 +# undef XLAT_VAL_217 +# undef XLAT_STR_218 +# undef XLAT_VAL_218 +# undef XLAT_STR_219 +# undef XLAT_VAL_219 +# undef XLAT_STR_220 +# undef XLAT_VAL_220 +# undef XLAT_STR_221 +# undef XLAT_VAL_221 +# undef XLAT_STR_222 +# undef XLAT_VAL_222 +# undef XLAT_STR_223 +# undef XLAT_VAL_223 +# undef XLAT_STR_224 +# undef XLAT_VAL_224 +# undef XLAT_STR_225 +# undef XLAT_VAL_225 +# undef XLAT_STR_226 +# undef XLAT_VAL_226 +# undef XLAT_STR_227 +# undef XLAT_VAL_227 +# undef XLAT_STR_228 +# undef XLAT_VAL_228 +# undef XLAT_STR_229 +# undef XLAT_VAL_229 +# undef XLAT_STR_230 +# undef XLAT_VAL_230 +# undef XLAT_STR_231 +# undef XLAT_VAL_231 +# undef XLAT_STR_232 +# undef XLAT_VAL_232 +# undef XLAT_STR_233 +# undef XLAT_VAL_233 +# undef XLAT_STR_234 +# undef XLAT_VAL_234 +# undef XLAT_STR_235 +# undef XLAT_VAL_235 +# undef XLAT_STR_236 +# undef XLAT_VAL_236 +# undef XLAT_STR_237 +# undef XLAT_VAL_237 +# undef XLAT_STR_238 +# undef XLAT_VAL_238 +# undef XLAT_STR_239 +# undef XLAT_VAL_239 +# undef XLAT_STR_240 +# undef XLAT_VAL_240 +# undef XLAT_STR_241 +# undef XLAT_VAL_241 +# undef XLAT_STR_242 +# undef XLAT_VAL_242 +# undef XLAT_STR_243 +# undef XLAT_VAL_243 +# undef XLAT_STR_244 +# undef XLAT_VAL_244 +# undef XLAT_STR_245 +# undef XLAT_VAL_245 +# undef XLAT_STR_246 +# undef XLAT_VAL_246 +# undef XLAT_STR_247 +# undef XLAT_VAL_247 +# undef XLAT_STR_248 +# undef XLAT_VAL_248 +# undef XLAT_STR_249 +# undef XLAT_VAL_249 +# undef XLAT_STR_250 +# undef XLAT_VAL_250 +# undef XLAT_STR_251 +# undef XLAT_VAL_251 +# undef XLAT_STR_252 +# undef XLAT_VAL_252 +# undef XLAT_STR_253 +# undef XLAT_VAL_253 +# undef XLAT_STR_254 +# undef XLAT_VAL_254 +# undef XLAT_STR_255 +# undef XLAT_VAL_255 +# undef XLAT_STR_256 +# undef XLAT_VAL_256 +# undef XLAT_STR_257 +# undef XLAT_VAL_257 +# undef XLAT_STR_258 +# undef XLAT_VAL_258 +# undef XLAT_STR_259 +# undef XLAT_VAL_259 +# undef XLAT_STR_260 +# undef XLAT_VAL_260 +# undef XLAT_STR_261 +# undef XLAT_VAL_261 +# undef XLAT_STR_262 +# undef XLAT_VAL_262 +# undef XLAT_STR_263 +# undef XLAT_VAL_263 +# undef XLAT_STR_264 +# undef XLAT_VAL_264 +# undef XLAT_STR_265 +# undef XLAT_VAL_265 +# undef XLAT_STR_266 +# undef XLAT_VAL_266 +# undef XLAT_STR_267 +# undef XLAT_VAL_267 +# undef XLAT_STR_268 +# undef XLAT_VAL_268 +# undef XLAT_STR_269 +# undef XLAT_VAL_269 +# undef XLAT_STR_270 +# undef XLAT_VAL_270 +# undef XLAT_STR_271 +# undef XLAT_VAL_271 +# undef XLAT_STR_272 +# undef XLAT_VAL_272 +# undef XLAT_STR_273 +# undef XLAT_VAL_273 +# undef XLAT_STR_274 +# undef XLAT_VAL_274 +# undef XLAT_STR_275 +# undef XLAT_VAL_275 +# undef XLAT_STR_276 +# undef XLAT_VAL_276 +# undef XLAT_STR_277 +# undef XLAT_VAL_277 +# undef XLAT_STR_278 +# undef XLAT_VAL_278 +# undef XLAT_STR_279 +# undef XLAT_VAL_279 +# undef XLAT_STR_280 +# undef XLAT_VAL_280 +# undef XLAT_STR_281 +# undef XLAT_VAL_281 +# undef XLAT_STR_282 +# undef XLAT_VAL_282 +# undef XLAT_STR_283 +# undef XLAT_VAL_283 +# undef XLAT_STR_284 +# undef XLAT_VAL_284 +# undef XLAT_STR_285 +# undef XLAT_VAL_285 +# undef XLAT_STR_286 +# undef XLAT_VAL_286 +# undef XLAT_STR_287 +# undef XLAT_VAL_287 +# undef XLAT_STR_288 +# undef XLAT_VAL_288 +# undef XLAT_STR_289 +# undef XLAT_VAL_289 +# undef XLAT_STR_290 +# undef XLAT_VAL_290 +# undef XLAT_STR_291 +# undef XLAT_VAL_291 +# undef XLAT_STR_292 +# undef XLAT_VAL_292 +# undef XLAT_STR_293 +# undef XLAT_VAL_293 +# undef XLAT_STR_294 +# undef XLAT_VAL_294 +# undef XLAT_STR_295 +# undef XLAT_VAL_295 +# undef XLAT_STR_296 +# undef XLAT_VAL_296 +# undef XLAT_STR_297 +# undef XLAT_VAL_297 +# undef XLAT_STR_298 +# undef XLAT_VAL_298 +# undef XLAT_STR_299 +# undef XLAT_VAL_299 +# undef XLAT_STR_300 +# undef XLAT_VAL_300 +# undef XLAT_STR_301 +# undef XLAT_VAL_301 +# undef XLAT_STR_302 +# undef XLAT_VAL_302 +# undef XLAT_STR_303 +# undef XLAT_VAL_303 +# undef XLAT_STR_304 +# undef XLAT_VAL_304 +# undef XLAT_STR_305 +# undef XLAT_VAL_305 +# undef XLAT_STR_306 +# undef XLAT_VAL_306 +# undef XLAT_STR_307 +# undef XLAT_VAL_307 +# undef XLAT_STR_308 +# undef XLAT_VAL_308 +# undef XLAT_STR_309 +# undef XLAT_VAL_309 +# undef XLAT_STR_310 +# undef XLAT_VAL_310 +# undef XLAT_STR_311 +# undef XLAT_VAL_311 +# undef XLAT_STR_312 +# undef XLAT_VAL_312 +# undef XLAT_STR_313 +# undef XLAT_VAL_313 +# undef XLAT_STR_314 +# undef XLAT_VAL_314 +# undef XLAT_STR_315 +# undef XLAT_VAL_315 +# undef XLAT_STR_316 +# undef XLAT_VAL_316 +# undef XLAT_STR_317 +# undef XLAT_VAL_317 +# undef XLAT_STR_318 +# undef XLAT_VAL_318 +# undef XLAT_STR_319 +# undef XLAT_VAL_319 +# undef XLAT_STR_320 +# undef XLAT_VAL_320 +# undef XLAT_STR_321 +# undef XLAT_VAL_321 +# undef XLAT_STR_322 +# undef XLAT_VAL_322 +# undef XLAT_STR_323 +# undef XLAT_VAL_323 +# undef XLAT_STR_324 +# undef XLAT_VAL_324 +# undef XLAT_STR_325 +# undef XLAT_VAL_325 +# undef XLAT_STR_326 +# undef XLAT_VAL_326 +# undef XLAT_STR_327 +# undef XLAT_VAL_327 +# undef XLAT_STR_328 +# undef XLAT_VAL_328 +# undef XLAT_STR_329 +# undef XLAT_VAL_329 +# undef XLAT_STR_330 +# undef XLAT_VAL_330 +# undef XLAT_STR_331 +# undef XLAT_VAL_331 +# undef XLAT_STR_332 +# undef XLAT_VAL_332 +# undef XLAT_STR_333 +# undef XLAT_VAL_333 +# undef XLAT_STR_334 +# undef XLAT_VAL_334 +# undef XLAT_STR_335 +# undef XLAT_VAL_335 +# undef XLAT_STR_336 +# undef XLAT_VAL_336 +# undef XLAT_STR_337 +# undef XLAT_VAL_337 +# undef XLAT_STR_338 +# undef XLAT_VAL_338 +# undef XLAT_STR_339 +# undef XLAT_VAL_339 +# undef XLAT_STR_340 +# undef XLAT_VAL_340 +# undef XLAT_STR_341 +# undef XLAT_VAL_341 +# undef XLAT_STR_342 +# undef XLAT_VAL_342 +# undef XLAT_STR_343 +# undef XLAT_VAL_343 +# undef XLAT_STR_344 +# undef XLAT_VAL_344 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/v4l2_control_ids.in b/xlat/v4l2_control_ids.in index 3ea51732..eeb495f4 100644 --- a/xlat/v4l2_control_ids.in +++ b/xlat/v4l2_control_ids.in @@ -99,6 +99,8 @@ V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_MPEG_BASE+228) V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (V4L2_CID_MPEG_BASE+229) V4L2_CID_MPEG_VIDEO_MPEG2_SLICE_PARAMS (V4L2_CID_MPEG_BASE+250) V4L2_CID_MPEG_VIDEO_MPEG2_QUANTIZATION (V4L2_CID_MPEG_BASE+251) +V4L2_CID_FWHT_I_FRAME_QP (V4L2_CID_MPEG_BASE+290) +V4L2_CID_FWHT_P_FRAME_QP (V4L2_CID_MPEG_BASE+291) V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_MPEG_BASE+300) V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (V4L2_CID_MPEG_BASE+301) V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP (V4L2_CID_MPEG_BASE+302) @@ -139,6 +141,10 @@ V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER (V4L2_CID_MPEG_BASE+381) V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP (V4L2_CID_MPEG_BASE+382) V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION (V4L2_CID_MPEG_BASE+383) V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET (V4L2_CID_MPEG_BASE+384) +V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP (V4L2_CID_MPEG_BASE+385) +V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP (V4L2_CID_MPEG_BASE+386) +V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP (V4L2_CID_MPEG_BASE+387) +V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP (V4L2_CID_MPEG_BASE+388) V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (V4L2_CID_MPEG_BASE+400) V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (V4L2_CID_MPEG_BASE+401) V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (V4L2_CID_MPEG_BASE+402) @@ -318,6 +324,7 @@ V4L2_CID_TEST_PATTERN_RED (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 4) V4L2_CID_TEST_PATTERN_GREENR (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 5) V4L2_CID_TEST_PATTERN_BLUE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 6) V4L2_CID_TEST_PATTERN_GREENB (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 7) +V4L2_CID_UNIT_CELL_SIZE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 8) /* Image processing controls */ V4L2_CID_LINK_FREQ (V4L2_CID_IMAGE_PROC_CLASS_BASE + 1) V4L2_CID_PIXEL_RATE (V4L2_CID_IMAGE_PROC_CLASS_BASE + 2) diff --git a/xlat/v4l2_control_query_flags.h b/xlat/v4l2_control_query_flags.h new file mode 100644 index 00000000..c00db429 --- /dev/null +++ b/xlat/v4l2_control_query_flags.h @@ -0,0 +1,68 @@ +/* Generated by ./xlat/gen.sh from ./xlat/v4l2_control_query_flags.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined(V4L2_CTRL_FLAG_NEXT_CTRL) || (defined(HAVE_DECL_V4L2_CTRL_FLAG_NEXT_CTRL) && HAVE_DECL_V4L2_CTRL_FLAG_NEXT_CTRL) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CTRL_FLAG_NEXT_CTRL) == (0x80000000), "V4L2_CTRL_FLAG_NEXT_CTRL != 0x80000000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000 +#endif +#if defined(V4L2_CTRL_FLAG_NEXT_COMPOUND) || (defined(HAVE_DECL_V4L2_CTRL_FLAG_NEXT_COMPOUND) && HAVE_DECL_V4L2_CTRL_FLAG_NEXT_COMPOUND) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CTRL_FLAG_NEXT_COMPOUND) == (0x40000000), "V4L2_CTRL_FLAG_NEXT_COMPOUND != 0x40000000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CTRL_FLAG_NEXT_COMPOUND 0x40000000 +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +extern const struct xlat v4l2_control_query_flags[]; + +# else + +static const struct xlat_data v4l2_control_query_flags_xdata[] = { + XLAT(V4L2_CTRL_FLAG_NEXT_CTRL), + #define XLAT_VAL_0 ((unsigned) (V4L2_CTRL_FLAG_NEXT_CTRL)) + #define XLAT_STR_0 STRINGIFY(V4L2_CTRL_FLAG_NEXT_CTRL) + XLAT(V4L2_CTRL_FLAG_NEXT_COMPOUND), + #define XLAT_VAL_1 ((unsigned) (V4L2_CTRL_FLAG_NEXT_COMPOUND)) + #define XLAT_STR_1 STRINGIFY(V4L2_CTRL_FLAG_NEXT_COMPOUND) +}; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat v4l2_control_query_flags[1] = { { + .data = v4l2_control_query_flags_xdata, + .size = ARRAY_SIZE(v4l2_control_query_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/v4l2_control_query_flags.in b/xlat/v4l2_control_query_flags.in new file mode 100644 index 00000000..3d32bf5d --- /dev/null +++ b/xlat/v4l2_control_query_flags.in @@ -0,0 +1,2 @@ +V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000 +V4L2_CTRL_FLAG_NEXT_COMPOUND 0x40000000 diff --git a/xlat/v4l2_control_types.h b/xlat/v4l2_control_types.h index 3f5a03a0..a1bd4db4 100644 --- a/xlat/v4l2_control_types.h +++ b/xlat/v4l2_control_types.h @@ -3,58 +3,264 @@ #include "gcc_compat.h" #include "static_assert.h" - -#ifndef XLAT_MACROS_ONLY - -# ifdef IN_MPERS - -extern const struct xlat v4l2_control_types[]; - -# else - -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat v4l2_control_types[] = { #if defined(V4L2_CTRL_TYPE_INTEGER) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_INTEGER) && HAVE_DECL_V4L2_CTRL_TYPE_INTEGER) - XLAT(V4L2_CTRL_TYPE_INTEGER), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CTRL_TYPE_INTEGER) == (1), "V4L2_CTRL_TYPE_INTEGER != 1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CTRL_TYPE_INTEGER 1 #endif #if defined(V4L2_CTRL_TYPE_BOOLEAN) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_BOOLEAN) && HAVE_DECL_V4L2_CTRL_TYPE_BOOLEAN) - XLAT(V4L2_CTRL_TYPE_BOOLEAN), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CTRL_TYPE_BOOLEAN) == (2), "V4L2_CTRL_TYPE_BOOLEAN != 2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CTRL_TYPE_BOOLEAN 2 #endif #if defined(V4L2_CTRL_TYPE_MENU) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_MENU) && HAVE_DECL_V4L2_CTRL_TYPE_MENU) - XLAT(V4L2_CTRL_TYPE_MENU), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CTRL_TYPE_MENU) == (3), "V4L2_CTRL_TYPE_MENU != 3"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CTRL_TYPE_MENU 3 #endif #if defined(V4L2_CTRL_TYPE_BUTTON) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_BUTTON) && HAVE_DECL_V4L2_CTRL_TYPE_BUTTON) - XLAT(V4L2_CTRL_TYPE_BUTTON), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CTRL_TYPE_BUTTON) == (4), "V4L2_CTRL_TYPE_BUTTON != 4"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CTRL_TYPE_BUTTON 4 #endif #if defined(V4L2_CTRL_TYPE_INTEGER64) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_INTEGER64) && HAVE_DECL_V4L2_CTRL_TYPE_INTEGER64) - XLAT(V4L2_CTRL_TYPE_INTEGER64), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CTRL_TYPE_INTEGER64) == (5), "V4L2_CTRL_TYPE_INTEGER64 != 5"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CTRL_TYPE_INTEGER64 5 #endif #if defined(V4L2_CTRL_TYPE_CTRL_CLASS) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_CTRL_CLASS) && HAVE_DECL_V4L2_CTRL_TYPE_CTRL_CLASS) - XLAT(V4L2_CTRL_TYPE_CTRL_CLASS), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CTRL_TYPE_CTRL_CLASS) == (6), "V4L2_CTRL_TYPE_CTRL_CLASS != 6"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CTRL_TYPE_CTRL_CLASS 6 #endif #if defined(V4L2_CTRL_TYPE_STRING) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_STRING) && HAVE_DECL_V4L2_CTRL_TYPE_STRING) - XLAT(V4L2_CTRL_TYPE_STRING), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CTRL_TYPE_STRING) == (7), "V4L2_CTRL_TYPE_STRING != 7"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CTRL_TYPE_STRING 7 #endif #if defined(V4L2_CTRL_TYPE_BITMASK) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_BITMASK) && HAVE_DECL_V4L2_CTRL_TYPE_BITMASK) - XLAT(V4L2_CTRL_TYPE_BITMASK), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CTRL_TYPE_BITMASK) == (8), "V4L2_CTRL_TYPE_BITMASK != 8"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CTRL_TYPE_BITMASK 8 #endif #if defined(V4L2_CTRL_TYPE_INTEGER_MENU) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_INTEGER_MENU) && HAVE_DECL_V4L2_CTRL_TYPE_INTEGER_MENU) - XLAT(V4L2_CTRL_TYPE_INTEGER_MENU), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CTRL_TYPE_INTEGER_MENU) == (9), "V4L2_CTRL_TYPE_INTEGER_MENU != 9"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CTRL_TYPE_INTEGER_MENU 9 #endif #if defined(V4L2_CTRL_TYPE_U8) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_U8) && HAVE_DECL_V4L2_CTRL_TYPE_U8) - XLAT(V4L2_CTRL_TYPE_U8), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CTRL_TYPE_U8) == (0x100), "V4L2_CTRL_TYPE_U8 != 0x100"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CTRL_TYPE_U8 0x100 #endif #if defined(V4L2_CTRL_TYPE_U16) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_U16) && HAVE_DECL_V4L2_CTRL_TYPE_U16) - XLAT(V4L2_CTRL_TYPE_U16), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CTRL_TYPE_U16) == (0x101), "V4L2_CTRL_TYPE_U16 != 0x101"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CTRL_TYPE_U16 0x101 #endif #if defined(V4L2_CTRL_TYPE_U32) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_U32) && HAVE_DECL_V4L2_CTRL_TYPE_U32) - XLAT(V4L2_CTRL_TYPE_U32), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CTRL_TYPE_U32) == (0x102), "V4L2_CTRL_TYPE_U32 != 0x102"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CTRL_TYPE_U32 0x102 +#endif +#if defined(V4L2_CTRL_TYPE_AREA) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_AREA) && HAVE_DECL_V4L2_CTRL_TYPE_AREA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CTRL_TYPE_AREA) == (0x106), "V4L2_CTRL_TYPE_AREA != 0x106"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CTRL_TYPE_AREA 0x106 #endif - XLAT_END + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +extern const struct xlat v4l2_control_types[]; + +# else + +static const struct xlat_data v4l2_control_types_xdata[] = { + XLAT(V4L2_CTRL_TYPE_INTEGER), + #define XLAT_VAL_0 ((unsigned) (V4L2_CTRL_TYPE_INTEGER)) + #define XLAT_STR_0 STRINGIFY(V4L2_CTRL_TYPE_INTEGER) + XLAT(V4L2_CTRL_TYPE_BOOLEAN), + #define XLAT_VAL_1 ((unsigned) (V4L2_CTRL_TYPE_BOOLEAN)) + #define XLAT_STR_1 STRINGIFY(V4L2_CTRL_TYPE_BOOLEAN) + XLAT(V4L2_CTRL_TYPE_MENU), + #define XLAT_VAL_2 ((unsigned) (V4L2_CTRL_TYPE_MENU)) + #define XLAT_STR_2 STRINGIFY(V4L2_CTRL_TYPE_MENU) + XLAT(V4L2_CTRL_TYPE_BUTTON), + #define XLAT_VAL_3 ((unsigned) (V4L2_CTRL_TYPE_BUTTON)) + #define XLAT_STR_3 STRINGIFY(V4L2_CTRL_TYPE_BUTTON) + XLAT(V4L2_CTRL_TYPE_INTEGER64), + #define XLAT_VAL_4 ((unsigned) (V4L2_CTRL_TYPE_INTEGER64)) + #define XLAT_STR_4 STRINGIFY(V4L2_CTRL_TYPE_INTEGER64) + XLAT(V4L2_CTRL_TYPE_CTRL_CLASS), + #define XLAT_VAL_5 ((unsigned) (V4L2_CTRL_TYPE_CTRL_CLASS)) + #define XLAT_STR_5 STRINGIFY(V4L2_CTRL_TYPE_CTRL_CLASS) + XLAT(V4L2_CTRL_TYPE_STRING), + #define XLAT_VAL_6 ((unsigned) (V4L2_CTRL_TYPE_STRING)) + #define XLAT_STR_6 STRINGIFY(V4L2_CTRL_TYPE_STRING) + XLAT(V4L2_CTRL_TYPE_BITMASK), + #define XLAT_VAL_7 ((unsigned) (V4L2_CTRL_TYPE_BITMASK)) + #define XLAT_STR_7 STRINGIFY(V4L2_CTRL_TYPE_BITMASK) + XLAT(V4L2_CTRL_TYPE_INTEGER_MENU), + #define XLAT_VAL_8 ((unsigned) (V4L2_CTRL_TYPE_INTEGER_MENU)) + #define XLAT_STR_8 STRINGIFY(V4L2_CTRL_TYPE_INTEGER_MENU) + XLAT(V4L2_CTRL_TYPE_U8), + #define XLAT_VAL_9 ((unsigned) (V4L2_CTRL_TYPE_U8)) + #define XLAT_STR_9 STRINGIFY(V4L2_CTRL_TYPE_U8) + XLAT(V4L2_CTRL_TYPE_U16), + #define XLAT_VAL_10 ((unsigned) (V4L2_CTRL_TYPE_U16)) + #define XLAT_STR_10 STRINGIFY(V4L2_CTRL_TYPE_U16) + XLAT(V4L2_CTRL_TYPE_U32), + #define XLAT_VAL_11 ((unsigned) (V4L2_CTRL_TYPE_U32)) + #define XLAT_STR_11 STRINGIFY(V4L2_CTRL_TYPE_U32) + XLAT(V4L2_CTRL_TYPE_AREA), + #define XLAT_VAL_12 ((unsigned) (V4L2_CTRL_TYPE_AREA)) + #define XLAT_STR_12 STRINGIFY(V4L2_CTRL_TYPE_AREA) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat v4l2_control_types[1] = { { + .data = v4l2_control_types_xdata, + .size = ARRAY_SIZE(v4l2_control_types_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/v4l2_control_types.in b/xlat/v4l2_control_types.in index 62cba6d3..eb8966d7 100644 --- a/xlat/v4l2_control_types.in +++ b/xlat/v4l2_control_types.in @@ -1,12 +1,19 @@ -V4L2_CTRL_TYPE_INTEGER -V4L2_CTRL_TYPE_BOOLEAN -V4L2_CTRL_TYPE_MENU -V4L2_CTRL_TYPE_BUTTON -V4L2_CTRL_TYPE_INTEGER64 -V4L2_CTRL_TYPE_CTRL_CLASS -V4L2_CTRL_TYPE_STRING -V4L2_CTRL_TYPE_BITMASK -V4L2_CTRL_TYPE_INTEGER_MENU -V4L2_CTRL_TYPE_U8 -V4L2_CTRL_TYPE_U16 -V4L2_CTRL_TYPE_U32 +#sorted +#enum +#include +#include +#include +#include +V4L2_CTRL_TYPE_INTEGER 1 +V4L2_CTRL_TYPE_BOOLEAN 2 +V4L2_CTRL_TYPE_MENU 3 +V4L2_CTRL_TYPE_BUTTON 4 +V4L2_CTRL_TYPE_INTEGER64 5 +V4L2_CTRL_TYPE_CTRL_CLASS 6 +V4L2_CTRL_TYPE_STRING 7 +V4L2_CTRL_TYPE_BITMASK 8 +V4L2_CTRL_TYPE_INTEGER_MENU 9 +V4L2_CTRL_TYPE_U8 0x100 +V4L2_CTRL_TYPE_U16 0x101 +V4L2_CTRL_TYPE_U32 0x102 +V4L2_CTRL_TYPE_AREA 0x106 diff --git a/xlat/v4l2_control_types.m4 b/xlat/v4l2_control_types.m4 new file mode 100644 index 00000000..9c7670bd --- /dev/null +++ b/xlat/v4l2_control_types.m4 @@ -0,0 +1,22 @@ +dnl Generated by ./xlat/gen.sh from ./xlat/v4l2_control_types.in; do not edit. +AC_DEFUN([st_CHECK_ENUMS_v4l2_control_types],[ +AC_CHECK_DECLS(m4_normalize([ +V4L2_CTRL_TYPE_INTEGER, +V4L2_CTRL_TYPE_BOOLEAN, +V4L2_CTRL_TYPE_MENU, +V4L2_CTRL_TYPE_BUTTON, +V4L2_CTRL_TYPE_INTEGER64, +V4L2_CTRL_TYPE_CTRL_CLASS, +V4L2_CTRL_TYPE_STRING, +V4L2_CTRL_TYPE_BITMASK, +V4L2_CTRL_TYPE_INTEGER_MENU, +V4L2_CTRL_TYPE_U8, +V4L2_CTRL_TYPE_U16, +V4L2_CTRL_TYPE_U32, +V4L2_CTRL_TYPE_AREA +]),,, [ +#include +#include +#include +#include +])])]) diff --git a/xlat/v4l2_device_capabilities_flags.h b/xlat/v4l2_device_capabilities_flags.h index 59123b02..d1f59bef 100644 --- a/xlat/v4l2_device_capabilities_flags.h +++ b/xlat/v4l2_device_capabilities_flags.h @@ -3,109 +3,552 @@ #include "gcc_compat.h" #include "static_assert.h" - -#ifndef XLAT_MACROS_ONLY - -# ifdef IN_MPERS - -extern const struct xlat v4l2_device_capabilities_flags[]; - -# else - -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat v4l2_device_capabilities_flags[] = { #if defined(V4L2_CAP_VIDEO_CAPTURE) || (defined(HAVE_DECL_V4L2_CAP_VIDEO_CAPTURE) && HAVE_DECL_V4L2_CAP_VIDEO_CAPTURE) - XLAT(V4L2_CAP_VIDEO_CAPTURE), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_VIDEO_CAPTURE) == (0x00000001), "V4L2_CAP_VIDEO_CAPTURE != 0x00000001"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_VIDEO_CAPTURE 0x00000001 #endif #if defined(V4L2_CAP_VIDEO_OUTPUT) || (defined(HAVE_DECL_V4L2_CAP_VIDEO_OUTPUT) && HAVE_DECL_V4L2_CAP_VIDEO_OUTPUT) - XLAT(V4L2_CAP_VIDEO_OUTPUT), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_VIDEO_OUTPUT) == (0x00000002), "V4L2_CAP_VIDEO_OUTPUT != 0x00000002"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_VIDEO_OUTPUT 0x00000002 #endif #if defined(V4L2_CAP_VIDEO_OVERLAY) || (defined(HAVE_DECL_V4L2_CAP_VIDEO_OVERLAY) && HAVE_DECL_V4L2_CAP_VIDEO_OVERLAY) - XLAT(V4L2_CAP_VIDEO_OVERLAY), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_VIDEO_OVERLAY) == (0x00000004), "V4L2_CAP_VIDEO_OVERLAY != 0x00000004"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_VIDEO_OVERLAY 0x00000004 #endif #if defined(V4L2_CAP_VBI_CAPTURE) || (defined(HAVE_DECL_V4L2_CAP_VBI_CAPTURE) && HAVE_DECL_V4L2_CAP_VBI_CAPTURE) - XLAT(V4L2_CAP_VBI_CAPTURE), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_VBI_CAPTURE) == (0x00000010), "V4L2_CAP_VBI_CAPTURE != 0x00000010"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_VBI_CAPTURE 0x00000010 #endif #if defined(V4L2_CAP_VBI_OUTPUT) || (defined(HAVE_DECL_V4L2_CAP_VBI_OUTPUT) && HAVE_DECL_V4L2_CAP_VBI_OUTPUT) - XLAT(V4L2_CAP_VBI_OUTPUT), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_VBI_OUTPUT) == (0x00000020), "V4L2_CAP_VBI_OUTPUT != 0x00000020"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_VBI_OUTPUT 0x00000020 #endif #if defined(V4L2_CAP_SLICED_VBI_CAPTURE) || (defined(HAVE_DECL_V4L2_CAP_SLICED_VBI_CAPTURE) && HAVE_DECL_V4L2_CAP_SLICED_VBI_CAPTURE) - XLAT(V4L2_CAP_SLICED_VBI_CAPTURE), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_SLICED_VBI_CAPTURE) == (0x00000040), "V4L2_CAP_SLICED_VBI_CAPTURE != 0x00000040"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_SLICED_VBI_CAPTURE 0x00000040 #endif #if defined(V4L2_CAP_SLICED_VBI_OUTPUT) || (defined(HAVE_DECL_V4L2_CAP_SLICED_VBI_OUTPUT) && HAVE_DECL_V4L2_CAP_SLICED_VBI_OUTPUT) - XLAT(V4L2_CAP_SLICED_VBI_OUTPUT), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_SLICED_VBI_OUTPUT) == (0x00000080), "V4L2_CAP_SLICED_VBI_OUTPUT != 0x00000080"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_SLICED_VBI_OUTPUT 0x00000080 #endif #if defined(V4L2_CAP_RDS_CAPTURE) || (defined(HAVE_DECL_V4L2_CAP_RDS_CAPTURE) && HAVE_DECL_V4L2_CAP_RDS_CAPTURE) - XLAT(V4L2_CAP_RDS_CAPTURE), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_RDS_CAPTURE) == (0x00000100), "V4L2_CAP_RDS_CAPTURE != 0x00000100"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_RDS_CAPTURE 0x00000100 #endif #if defined(V4L2_CAP_VIDEO_OUTPUT_OVERLAY) || (defined(HAVE_DECL_V4L2_CAP_VIDEO_OUTPUT_OVERLAY) && HAVE_DECL_V4L2_CAP_VIDEO_OUTPUT_OVERLAY) - XLAT(V4L2_CAP_VIDEO_OUTPUT_OVERLAY), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_VIDEO_OUTPUT_OVERLAY) == (0x00000200), "V4L2_CAP_VIDEO_OUTPUT_OVERLAY != 0x00000200"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_VIDEO_OUTPUT_OVERLAY 0x00000200 #endif #if defined(V4L2_CAP_HW_FREQ_SEEK) || (defined(HAVE_DECL_V4L2_CAP_HW_FREQ_SEEK) && HAVE_DECL_V4L2_CAP_HW_FREQ_SEEK) - XLAT(V4L2_CAP_HW_FREQ_SEEK), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_HW_FREQ_SEEK) == (0x00000400), "V4L2_CAP_HW_FREQ_SEEK != 0x00000400"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_HW_FREQ_SEEK 0x00000400 #endif #if defined(V4L2_CAP_RDS_OUTPUT) || (defined(HAVE_DECL_V4L2_CAP_RDS_OUTPUT) && HAVE_DECL_V4L2_CAP_RDS_OUTPUT) - XLAT(V4L2_CAP_RDS_OUTPUT), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_RDS_OUTPUT) == (0x00000800), "V4L2_CAP_RDS_OUTPUT != 0x00000800"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_RDS_OUTPUT 0x00000800 #endif #if defined(V4L2_CAP_VIDEO_CAPTURE_MPLANE) || (defined(HAVE_DECL_V4L2_CAP_VIDEO_CAPTURE_MPLANE) && HAVE_DECL_V4L2_CAP_VIDEO_CAPTURE_MPLANE) - XLAT(V4L2_CAP_VIDEO_CAPTURE_MPLANE), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_VIDEO_CAPTURE_MPLANE) == (0x00001000), "V4L2_CAP_VIDEO_CAPTURE_MPLANE != 0x00001000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_VIDEO_CAPTURE_MPLANE 0x00001000 #endif #if defined(V4L2_CAP_VIDEO_OUTPUT_MPLANE) || (defined(HAVE_DECL_V4L2_CAP_VIDEO_OUTPUT_MPLANE) && HAVE_DECL_V4L2_CAP_VIDEO_OUTPUT_MPLANE) - XLAT(V4L2_CAP_VIDEO_OUTPUT_MPLANE), -#endif -#if defined(V4L2_CAP_VIDEO_M2M) || (defined(HAVE_DECL_V4L2_CAP_VIDEO_M2M) && HAVE_DECL_V4L2_CAP_VIDEO_M2M) - XLAT(V4L2_CAP_VIDEO_M2M), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_VIDEO_OUTPUT_MPLANE) == (0x00002000), "V4L2_CAP_VIDEO_OUTPUT_MPLANE != 0x00002000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_VIDEO_OUTPUT_MPLANE 0x00002000 #endif #if defined(V4L2_CAP_VIDEO_M2M_MPLANE) || (defined(HAVE_DECL_V4L2_CAP_VIDEO_M2M_MPLANE) && HAVE_DECL_V4L2_CAP_VIDEO_M2M_MPLANE) - XLAT(V4L2_CAP_VIDEO_M2M_MPLANE), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_VIDEO_M2M_MPLANE) == (0x00004000), "V4L2_CAP_VIDEO_M2M_MPLANE != 0x00004000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_VIDEO_M2M_MPLANE 0x00004000 +#endif +#if defined(V4L2_CAP_VIDEO_M2M) || (defined(HAVE_DECL_V4L2_CAP_VIDEO_M2M) && HAVE_DECL_V4L2_CAP_VIDEO_M2M) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_VIDEO_M2M) == (0x00008000), "V4L2_CAP_VIDEO_M2M != 0x00008000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_VIDEO_M2M 0x00008000 #endif #if defined(V4L2_CAP_TUNER) || (defined(HAVE_DECL_V4L2_CAP_TUNER) && HAVE_DECL_V4L2_CAP_TUNER) - XLAT(V4L2_CAP_TUNER), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_TUNER) == (0x00010000), "V4L2_CAP_TUNER != 0x00010000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_TUNER 0x00010000 #endif #if defined(V4L2_CAP_AUDIO) || (defined(HAVE_DECL_V4L2_CAP_AUDIO) && HAVE_DECL_V4L2_CAP_AUDIO) - XLAT(V4L2_CAP_AUDIO), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_AUDIO) == (0x00020000), "V4L2_CAP_AUDIO != 0x00020000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_AUDIO 0x00020000 #endif #if defined(V4L2_CAP_RADIO) || (defined(HAVE_DECL_V4L2_CAP_RADIO) && HAVE_DECL_V4L2_CAP_RADIO) - XLAT(V4L2_CAP_RADIO), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_RADIO) == (0x00040000), "V4L2_CAP_RADIO != 0x00040000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_RADIO 0x00040000 #endif #if defined(V4L2_CAP_MODULATOR) || (defined(HAVE_DECL_V4L2_CAP_MODULATOR) && HAVE_DECL_V4L2_CAP_MODULATOR) - XLAT(V4L2_CAP_MODULATOR), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_MODULATOR) == (0x00080000), "V4L2_CAP_MODULATOR != 0x00080000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_MODULATOR 0x00080000 +#endif +#if defined(V4L2_CAP_SDR_CAPTURE) || (defined(HAVE_DECL_V4L2_CAP_SDR_CAPTURE) && HAVE_DECL_V4L2_CAP_SDR_CAPTURE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_SDR_CAPTURE) == (0x00100000), "V4L2_CAP_SDR_CAPTURE != 0x00100000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_SDR_CAPTURE 0x00100000 +#endif +#if defined(V4L2_CAP_EXT_PIX_FORMAT) || (defined(HAVE_DECL_V4L2_CAP_EXT_PIX_FORMAT) && HAVE_DECL_V4L2_CAP_EXT_PIX_FORMAT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_EXT_PIX_FORMAT) == (0x00200000), "V4L2_CAP_EXT_PIX_FORMAT != 0x00200000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_EXT_PIX_FORMAT 0x00200000 +#endif +#if defined(V4L2_CAP_SDR_OUTPUT) || (defined(HAVE_DECL_V4L2_CAP_SDR_OUTPUT) && HAVE_DECL_V4L2_CAP_SDR_OUTPUT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_SDR_OUTPUT) == (0x00400000), "V4L2_CAP_SDR_OUTPUT != 0x00400000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_SDR_OUTPUT 0x00400000 +#endif +#if defined(V4L2_CAP_META_CAPTURE) || (defined(HAVE_DECL_V4L2_CAP_META_CAPTURE) && HAVE_DECL_V4L2_CAP_META_CAPTURE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_META_CAPTURE) == (0x00800000), "V4L2_CAP_META_CAPTURE != 0x00800000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_META_CAPTURE 0x00800000 #endif #if defined(V4L2_CAP_READWRITE) || (defined(HAVE_DECL_V4L2_CAP_READWRITE) && HAVE_DECL_V4L2_CAP_READWRITE) - XLAT(V4L2_CAP_READWRITE), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_READWRITE) == (0x01000000), "V4L2_CAP_READWRITE != 0x01000000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_READWRITE 0x01000000 #endif #if defined(V4L2_CAP_ASYNCIO) || (defined(HAVE_DECL_V4L2_CAP_ASYNCIO) && HAVE_DECL_V4L2_CAP_ASYNCIO) - XLAT(V4L2_CAP_ASYNCIO), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_ASYNCIO) == (0x02000000), "V4L2_CAP_ASYNCIO != 0x02000000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_ASYNCIO 0x02000000 #endif #if defined(V4L2_CAP_STREAMING) || (defined(HAVE_DECL_V4L2_CAP_STREAMING) && HAVE_DECL_V4L2_CAP_STREAMING) - XLAT(V4L2_CAP_STREAMING), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_STREAMING) == (0x04000000), "V4L2_CAP_STREAMING != 0x04000000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_STREAMING 0x04000000 #endif #if defined(V4L2_CAP_META_OUTPUT) || (defined(HAVE_DECL_V4L2_CAP_META_OUTPUT) && HAVE_DECL_V4L2_CAP_META_OUTPUT) - XLAT(V4L2_CAP_META_OUTPUT), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_META_OUTPUT) == (0x08000000), "V4L2_CAP_META_OUTPUT != 0x08000000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_META_OUTPUT 0x08000000 #endif #if defined(V4L2_CAP_TOUCH) || (defined(HAVE_DECL_V4L2_CAP_TOUCH) && HAVE_DECL_V4L2_CAP_TOUCH) - XLAT(V4L2_CAP_TOUCH), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_TOUCH) == (0x10000000), "V4L2_CAP_TOUCH != 0x10000000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_TOUCH 0x10000000 #endif #if defined(V4L2_CAP_DEVICE_CAPS) || (defined(HAVE_DECL_V4L2_CAP_DEVICE_CAPS) && HAVE_DECL_V4L2_CAP_DEVICE_CAPS) - XLAT(V4L2_CAP_DEVICE_CAPS), -#endif -#if defined(V4L2_CAP_SDR_CAPTURE) || (defined(HAVE_DECL_V4L2_CAP_SDR_CAPTURE) && HAVE_DECL_V4L2_CAP_SDR_CAPTURE) - XLAT(V4L2_CAP_SDR_CAPTURE), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_DEVICE_CAPS) == (0x80000000), "V4L2_CAP_DEVICE_CAPS != 0x80000000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_DEVICE_CAPS 0x80000000 #endif -#if defined(V4L2_CAP_EXT_PIX_FORMAT) || (defined(HAVE_DECL_V4L2_CAP_EXT_PIX_FORMAT) && HAVE_DECL_V4L2_CAP_EXT_PIX_FORMAT) - XLAT(V4L2_CAP_EXT_PIX_FORMAT), -#endif -#if defined(V4L2_CAP_SDR_OUTPUT) || (defined(HAVE_DECL_V4L2_CAP_SDR_OUTPUT) && HAVE_DECL_V4L2_CAP_SDR_OUTPUT) - XLAT(V4L2_CAP_SDR_OUTPUT), -#endif -#if defined(V4L2_CAP_META_CAPTURE) || (defined(HAVE_DECL_V4L2_CAP_META_CAPTURE) && HAVE_DECL_V4L2_CAP_META_CAPTURE) - XLAT(V4L2_CAP_META_CAPTURE), -#endif - XLAT_END + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +extern const struct xlat v4l2_device_capabilities_flags[]; + +# else + +static const struct xlat_data v4l2_device_capabilities_flags_xdata[] = { + XLAT(V4L2_CAP_VIDEO_CAPTURE), + #define XLAT_VAL_0 ((unsigned) (V4L2_CAP_VIDEO_CAPTURE)) + #define XLAT_STR_0 STRINGIFY(V4L2_CAP_VIDEO_CAPTURE) + XLAT(V4L2_CAP_VIDEO_OUTPUT), + #define XLAT_VAL_1 ((unsigned) (V4L2_CAP_VIDEO_OUTPUT)) + #define XLAT_STR_1 STRINGIFY(V4L2_CAP_VIDEO_OUTPUT) + XLAT(V4L2_CAP_VIDEO_OVERLAY), + #define XLAT_VAL_2 ((unsigned) (V4L2_CAP_VIDEO_OVERLAY)) + #define XLAT_STR_2 STRINGIFY(V4L2_CAP_VIDEO_OVERLAY) + XLAT(V4L2_CAP_VBI_CAPTURE), + #define XLAT_VAL_3 ((unsigned) (V4L2_CAP_VBI_CAPTURE)) + #define XLAT_STR_3 STRINGIFY(V4L2_CAP_VBI_CAPTURE) + XLAT(V4L2_CAP_VBI_OUTPUT), + #define XLAT_VAL_4 ((unsigned) (V4L2_CAP_VBI_OUTPUT)) + #define XLAT_STR_4 STRINGIFY(V4L2_CAP_VBI_OUTPUT) + XLAT(V4L2_CAP_SLICED_VBI_CAPTURE), + #define XLAT_VAL_5 ((unsigned) (V4L2_CAP_SLICED_VBI_CAPTURE)) + #define XLAT_STR_5 STRINGIFY(V4L2_CAP_SLICED_VBI_CAPTURE) + XLAT(V4L2_CAP_SLICED_VBI_OUTPUT), + #define XLAT_VAL_6 ((unsigned) (V4L2_CAP_SLICED_VBI_OUTPUT)) + #define XLAT_STR_6 STRINGIFY(V4L2_CAP_SLICED_VBI_OUTPUT) + XLAT(V4L2_CAP_RDS_CAPTURE), + #define XLAT_VAL_7 ((unsigned) (V4L2_CAP_RDS_CAPTURE)) + #define XLAT_STR_7 STRINGIFY(V4L2_CAP_RDS_CAPTURE) + XLAT(V4L2_CAP_VIDEO_OUTPUT_OVERLAY), + #define XLAT_VAL_8 ((unsigned) (V4L2_CAP_VIDEO_OUTPUT_OVERLAY)) + #define XLAT_STR_8 STRINGIFY(V4L2_CAP_VIDEO_OUTPUT_OVERLAY) + XLAT(V4L2_CAP_HW_FREQ_SEEK), + #define XLAT_VAL_9 ((unsigned) (V4L2_CAP_HW_FREQ_SEEK)) + #define XLAT_STR_9 STRINGIFY(V4L2_CAP_HW_FREQ_SEEK) + XLAT(V4L2_CAP_RDS_OUTPUT), + #define XLAT_VAL_10 ((unsigned) (V4L2_CAP_RDS_OUTPUT)) + #define XLAT_STR_10 STRINGIFY(V4L2_CAP_RDS_OUTPUT) + XLAT(V4L2_CAP_VIDEO_CAPTURE_MPLANE), + #define XLAT_VAL_11 ((unsigned) (V4L2_CAP_VIDEO_CAPTURE_MPLANE)) + #define XLAT_STR_11 STRINGIFY(V4L2_CAP_VIDEO_CAPTURE_MPLANE) + XLAT(V4L2_CAP_VIDEO_OUTPUT_MPLANE), + #define XLAT_VAL_12 ((unsigned) (V4L2_CAP_VIDEO_OUTPUT_MPLANE)) + #define XLAT_STR_12 STRINGIFY(V4L2_CAP_VIDEO_OUTPUT_MPLANE) + XLAT(V4L2_CAP_VIDEO_M2M_MPLANE), + #define XLAT_VAL_13 ((unsigned) (V4L2_CAP_VIDEO_M2M_MPLANE)) + #define XLAT_STR_13 STRINGIFY(V4L2_CAP_VIDEO_M2M_MPLANE) + XLAT(V4L2_CAP_VIDEO_M2M), + #define XLAT_VAL_14 ((unsigned) (V4L2_CAP_VIDEO_M2M)) + #define XLAT_STR_14 STRINGIFY(V4L2_CAP_VIDEO_M2M) + XLAT(V4L2_CAP_TUNER), + #define XLAT_VAL_15 ((unsigned) (V4L2_CAP_TUNER)) + #define XLAT_STR_15 STRINGIFY(V4L2_CAP_TUNER) + XLAT(V4L2_CAP_AUDIO), + #define XLAT_VAL_16 ((unsigned) (V4L2_CAP_AUDIO)) + #define XLAT_STR_16 STRINGIFY(V4L2_CAP_AUDIO) + XLAT(V4L2_CAP_RADIO), + #define XLAT_VAL_17 ((unsigned) (V4L2_CAP_RADIO)) + #define XLAT_STR_17 STRINGIFY(V4L2_CAP_RADIO) + XLAT(V4L2_CAP_MODULATOR), + #define XLAT_VAL_18 ((unsigned) (V4L2_CAP_MODULATOR)) + #define XLAT_STR_18 STRINGIFY(V4L2_CAP_MODULATOR) + XLAT(V4L2_CAP_SDR_CAPTURE), + #define XLAT_VAL_19 ((unsigned) (V4L2_CAP_SDR_CAPTURE)) + #define XLAT_STR_19 STRINGIFY(V4L2_CAP_SDR_CAPTURE) + XLAT(V4L2_CAP_EXT_PIX_FORMAT), + #define XLAT_VAL_20 ((unsigned) (V4L2_CAP_EXT_PIX_FORMAT)) + #define XLAT_STR_20 STRINGIFY(V4L2_CAP_EXT_PIX_FORMAT) + XLAT(V4L2_CAP_SDR_OUTPUT), + #define XLAT_VAL_21 ((unsigned) (V4L2_CAP_SDR_OUTPUT)) + #define XLAT_STR_21 STRINGIFY(V4L2_CAP_SDR_OUTPUT) + XLAT(V4L2_CAP_META_CAPTURE), + #define XLAT_VAL_22 ((unsigned) (V4L2_CAP_META_CAPTURE)) + #define XLAT_STR_22 STRINGIFY(V4L2_CAP_META_CAPTURE) + XLAT(V4L2_CAP_READWRITE), + #define XLAT_VAL_23 ((unsigned) (V4L2_CAP_READWRITE)) + #define XLAT_STR_23 STRINGIFY(V4L2_CAP_READWRITE) + XLAT(V4L2_CAP_ASYNCIO), + #define XLAT_VAL_24 ((unsigned) (V4L2_CAP_ASYNCIO)) + #define XLAT_STR_24 STRINGIFY(V4L2_CAP_ASYNCIO) + XLAT(V4L2_CAP_STREAMING), + #define XLAT_VAL_25 ((unsigned) (V4L2_CAP_STREAMING)) + #define XLAT_STR_25 STRINGIFY(V4L2_CAP_STREAMING) + XLAT(V4L2_CAP_META_OUTPUT), + #define XLAT_VAL_26 ((unsigned) (V4L2_CAP_META_OUTPUT)) + #define XLAT_STR_26 STRINGIFY(V4L2_CAP_META_OUTPUT) + XLAT(V4L2_CAP_TOUCH), + #define XLAT_VAL_27 ((unsigned) (V4L2_CAP_TOUCH)) + #define XLAT_STR_27 STRINGIFY(V4L2_CAP_TOUCH) + XLAT(V4L2_CAP_DEVICE_CAPS), + #define XLAT_VAL_28 ((unsigned) (V4L2_CAP_DEVICE_CAPS)) + #define XLAT_STR_28 STRINGIFY(V4L2_CAP_DEVICE_CAPS) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat v4l2_device_capabilities_flags[1] = { { + .data = v4l2_device_capabilities_flags_xdata, + .size = ARRAY_SIZE(v4l2_device_capabilities_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/v4l2_device_capabilities_flags.in b/xlat/v4l2_device_capabilities_flags.in index 8b74edbe..fa65c105 100644 --- a/xlat/v4l2_device_capabilities_flags.in +++ b/xlat/v4l2_device_capabilities_flags.in @@ -1,29 +1,29 @@ -V4L2_CAP_VIDEO_CAPTURE -V4L2_CAP_VIDEO_OUTPUT -V4L2_CAP_VIDEO_OVERLAY -V4L2_CAP_VBI_CAPTURE -V4L2_CAP_VBI_OUTPUT -V4L2_CAP_SLICED_VBI_CAPTURE -V4L2_CAP_SLICED_VBI_OUTPUT -V4L2_CAP_RDS_CAPTURE -V4L2_CAP_VIDEO_OUTPUT_OVERLAY -V4L2_CAP_HW_FREQ_SEEK -V4L2_CAP_RDS_OUTPUT -V4L2_CAP_VIDEO_CAPTURE_MPLANE -V4L2_CAP_VIDEO_OUTPUT_MPLANE -V4L2_CAP_VIDEO_M2M -V4L2_CAP_VIDEO_M2M_MPLANE -V4L2_CAP_TUNER -V4L2_CAP_AUDIO -V4L2_CAP_RADIO -V4L2_CAP_MODULATOR -V4L2_CAP_READWRITE -V4L2_CAP_ASYNCIO -V4L2_CAP_STREAMING -V4L2_CAP_META_OUTPUT -V4L2_CAP_TOUCH -V4L2_CAP_DEVICE_CAPS -V4L2_CAP_SDR_CAPTURE -V4L2_CAP_EXT_PIX_FORMAT -V4L2_CAP_SDR_OUTPUT -V4L2_CAP_META_CAPTURE +V4L2_CAP_VIDEO_CAPTURE 0x00000001 +V4L2_CAP_VIDEO_OUTPUT 0x00000002 +V4L2_CAP_VIDEO_OVERLAY 0x00000004 +V4L2_CAP_VBI_CAPTURE 0x00000010 +V4L2_CAP_VBI_OUTPUT 0x00000020 +V4L2_CAP_SLICED_VBI_CAPTURE 0x00000040 +V4L2_CAP_SLICED_VBI_OUTPUT 0x00000080 +V4L2_CAP_RDS_CAPTURE 0x00000100 +V4L2_CAP_VIDEO_OUTPUT_OVERLAY 0x00000200 +V4L2_CAP_HW_FREQ_SEEK 0x00000400 +V4L2_CAP_RDS_OUTPUT 0x00000800 +V4L2_CAP_VIDEO_CAPTURE_MPLANE 0x00001000 +V4L2_CAP_VIDEO_OUTPUT_MPLANE 0x00002000 +V4L2_CAP_VIDEO_M2M_MPLANE 0x00004000 +V4L2_CAP_VIDEO_M2M 0x00008000 +V4L2_CAP_TUNER 0x00010000 +V4L2_CAP_AUDIO 0x00020000 +V4L2_CAP_RADIO 0x00040000 +V4L2_CAP_MODULATOR 0x00080000 +V4L2_CAP_SDR_CAPTURE 0x00100000 +V4L2_CAP_EXT_PIX_FORMAT 0x00200000 +V4L2_CAP_SDR_OUTPUT 0x00400000 +V4L2_CAP_META_CAPTURE 0x00800000 +V4L2_CAP_READWRITE 0x01000000 +V4L2_CAP_ASYNCIO 0x02000000 +V4L2_CAP_STREAMING 0x04000000 +V4L2_CAP_META_OUTPUT 0x08000000 +V4L2_CAP_TOUCH 0x10000000 +V4L2_CAP_DEVICE_CAPS 0x80000000 diff --git a/xlat/v4l2_fields.h b/xlat/v4l2_fields.h index e065a73f..82cc7412 100644 --- a/xlat/v4l2_fields.h +++ b/xlat/v4l2_fields.h @@ -3,52 +3,210 @@ #include "gcc_compat.h" #include "static_assert.h" - -#ifndef XLAT_MACROS_ONLY - -# ifdef IN_MPERS - -extern const struct xlat v4l2_fields[]; - -# else - -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat v4l2_fields[] = { #if defined(V4L2_FIELD_ANY) || (defined(HAVE_DECL_V4L2_FIELD_ANY) && HAVE_DECL_V4L2_FIELD_ANY) - XLAT(V4L2_FIELD_ANY), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_FIELD_ANY) == (0), "V4L2_FIELD_ANY != 0"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_FIELD_ANY 0 #endif #if defined(V4L2_FIELD_NONE) || (defined(HAVE_DECL_V4L2_FIELD_NONE) && HAVE_DECL_V4L2_FIELD_NONE) - XLAT(V4L2_FIELD_NONE), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_FIELD_NONE) == (1), "V4L2_FIELD_NONE != 1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_FIELD_NONE 1 #endif #if defined(V4L2_FIELD_TOP) || (defined(HAVE_DECL_V4L2_FIELD_TOP) && HAVE_DECL_V4L2_FIELD_TOP) - XLAT(V4L2_FIELD_TOP), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_FIELD_TOP) == (2), "V4L2_FIELD_TOP != 2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_FIELD_TOP 2 #endif #if defined(V4L2_FIELD_BOTTOM) || (defined(HAVE_DECL_V4L2_FIELD_BOTTOM) && HAVE_DECL_V4L2_FIELD_BOTTOM) - XLAT(V4L2_FIELD_BOTTOM), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_FIELD_BOTTOM) == (3), "V4L2_FIELD_BOTTOM != 3"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_FIELD_BOTTOM 3 #endif #if defined(V4L2_FIELD_INTERLACED) || (defined(HAVE_DECL_V4L2_FIELD_INTERLACED) && HAVE_DECL_V4L2_FIELD_INTERLACED) - XLAT(V4L2_FIELD_INTERLACED), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_FIELD_INTERLACED) == (4), "V4L2_FIELD_INTERLACED != 4"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_FIELD_INTERLACED 4 #endif #if defined(V4L2_FIELD_SEQ_TB) || (defined(HAVE_DECL_V4L2_FIELD_SEQ_TB) && HAVE_DECL_V4L2_FIELD_SEQ_TB) - XLAT(V4L2_FIELD_SEQ_TB), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_FIELD_SEQ_TB) == (5), "V4L2_FIELD_SEQ_TB != 5"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_FIELD_SEQ_TB 5 #endif #if defined(V4L2_FIELD_SEQ_BT) || (defined(HAVE_DECL_V4L2_FIELD_SEQ_BT) && HAVE_DECL_V4L2_FIELD_SEQ_BT) - XLAT(V4L2_FIELD_SEQ_BT), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_FIELD_SEQ_BT) == (6), "V4L2_FIELD_SEQ_BT != 6"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_FIELD_SEQ_BT 6 #endif #if defined(V4L2_FIELD_ALTERNATE) || (defined(HAVE_DECL_V4L2_FIELD_ALTERNATE) && HAVE_DECL_V4L2_FIELD_ALTERNATE) - XLAT(V4L2_FIELD_ALTERNATE), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_FIELD_ALTERNATE) == (7), "V4L2_FIELD_ALTERNATE != 7"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_FIELD_ALTERNATE 7 #endif #if defined(V4L2_FIELD_INTERLACED_TB) || (defined(HAVE_DECL_V4L2_FIELD_INTERLACED_TB) && HAVE_DECL_V4L2_FIELD_INTERLACED_TB) - XLAT(V4L2_FIELD_INTERLACED_TB), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_FIELD_INTERLACED_TB) == (8), "V4L2_FIELD_INTERLACED_TB != 8"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_FIELD_INTERLACED_TB 8 #endif #if defined(V4L2_FIELD_INTERLACED_BT) || (defined(HAVE_DECL_V4L2_FIELD_INTERLACED_BT) && HAVE_DECL_V4L2_FIELD_INTERLACED_BT) - XLAT(V4L2_FIELD_INTERLACED_BT), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_FIELD_INTERLACED_BT) == (9), "V4L2_FIELD_INTERLACED_BT != 9"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_FIELD_INTERLACED_BT 9 #endif - XLAT_END + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +extern const struct xlat v4l2_fields[]; + +# else + +static const struct xlat_data v4l2_fields_xdata[] = { + [V4L2_FIELD_ANY] = XLAT(V4L2_FIELD_ANY), + #define XLAT_VAL_0 ((unsigned) (V4L2_FIELD_ANY)) + #define XLAT_STR_0 STRINGIFY(V4L2_FIELD_ANY) + [V4L2_FIELD_NONE] = XLAT(V4L2_FIELD_NONE), + #define XLAT_VAL_1 ((unsigned) (V4L2_FIELD_NONE)) + #define XLAT_STR_1 STRINGIFY(V4L2_FIELD_NONE) + [V4L2_FIELD_TOP] = XLAT(V4L2_FIELD_TOP), + #define XLAT_VAL_2 ((unsigned) (V4L2_FIELD_TOP)) + #define XLAT_STR_2 STRINGIFY(V4L2_FIELD_TOP) + [V4L2_FIELD_BOTTOM] = XLAT(V4L2_FIELD_BOTTOM), + #define XLAT_VAL_3 ((unsigned) (V4L2_FIELD_BOTTOM)) + #define XLAT_STR_3 STRINGIFY(V4L2_FIELD_BOTTOM) + [V4L2_FIELD_INTERLACED] = XLAT(V4L2_FIELD_INTERLACED), + #define XLAT_VAL_4 ((unsigned) (V4L2_FIELD_INTERLACED)) + #define XLAT_STR_4 STRINGIFY(V4L2_FIELD_INTERLACED) + [V4L2_FIELD_SEQ_TB] = XLAT(V4L2_FIELD_SEQ_TB), + #define XLAT_VAL_5 ((unsigned) (V4L2_FIELD_SEQ_TB)) + #define XLAT_STR_5 STRINGIFY(V4L2_FIELD_SEQ_TB) + [V4L2_FIELD_SEQ_BT] = XLAT(V4L2_FIELD_SEQ_BT), + #define XLAT_VAL_6 ((unsigned) (V4L2_FIELD_SEQ_BT)) + #define XLAT_STR_6 STRINGIFY(V4L2_FIELD_SEQ_BT) + [V4L2_FIELD_ALTERNATE] = XLAT(V4L2_FIELD_ALTERNATE), + #define XLAT_VAL_7 ((unsigned) (V4L2_FIELD_ALTERNATE)) + #define XLAT_STR_7 STRINGIFY(V4L2_FIELD_ALTERNATE) + [V4L2_FIELD_INTERLACED_TB] = XLAT(V4L2_FIELD_INTERLACED_TB), + #define XLAT_VAL_8 ((unsigned) (V4L2_FIELD_INTERLACED_TB)) + #define XLAT_STR_8 STRINGIFY(V4L2_FIELD_INTERLACED_TB) + [V4L2_FIELD_INTERLACED_BT] = XLAT(V4L2_FIELD_INTERLACED_BT), + #define XLAT_VAL_9 ((unsigned) (V4L2_FIELD_INTERLACED_BT)) + #define XLAT_STR_9 STRINGIFY(V4L2_FIELD_INTERLACED_BT) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat v4l2_fields[1] = { { + .data = v4l2_fields_xdata, + .size = ARRAY_SIZE(v4l2_fields_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/v4l2_fields.in b/xlat/v4l2_fields.in index 60d00e11..5a8dcf83 100644 --- a/xlat/v4l2_fields.in +++ b/xlat/v4l2_fields.in @@ -1,10 +1,16 @@ -V4L2_FIELD_ANY -V4L2_FIELD_NONE -V4L2_FIELD_TOP -V4L2_FIELD_BOTTOM -V4L2_FIELD_INTERLACED -V4L2_FIELD_SEQ_TB -V4L2_FIELD_SEQ_BT -V4L2_FIELD_ALTERNATE -V4L2_FIELD_INTERLACED_TB -V4L2_FIELD_INTERLACED_BT +#value_indexed +#enum +#include +#include +#include +#include +V4L2_FIELD_ANY 0 +V4L2_FIELD_NONE 1 +V4L2_FIELD_TOP 2 +V4L2_FIELD_BOTTOM 3 +V4L2_FIELD_INTERLACED 4 +V4L2_FIELD_SEQ_TB 5 +V4L2_FIELD_SEQ_BT 6 +V4L2_FIELD_ALTERNATE 7 +V4L2_FIELD_INTERLACED_TB 8 +V4L2_FIELD_INTERLACED_BT 9 diff --git a/xlat/v4l2_fields.m4 b/xlat/v4l2_fields.m4 new file mode 100644 index 00000000..725597be --- /dev/null +++ b/xlat/v4l2_fields.m4 @@ -0,0 +1,19 @@ +dnl Generated by ./xlat/gen.sh from ./xlat/v4l2_fields.in; do not edit. +AC_DEFUN([st_CHECK_ENUMS_v4l2_fields],[ +AC_CHECK_DECLS(m4_normalize([ +V4L2_FIELD_ANY, +V4L2_FIELD_NONE, +V4L2_FIELD_TOP, +V4L2_FIELD_BOTTOM, +V4L2_FIELD_INTERLACED, +V4L2_FIELD_SEQ_TB, +V4L2_FIELD_SEQ_BT, +V4L2_FIELD_ALTERNATE, +V4L2_FIELD_INTERLACED_TB, +V4L2_FIELD_INTERLACED_BT +]),,, [ +#include +#include +#include +#include +])])]) diff --git a/xlat/v4l2_format_description_flags.h b/xlat/v4l2_format_description_flags.h index 9bf39a14..a55d37f2 100644 --- a/xlat/v4l2_format_description_flags.h +++ b/xlat/v4l2_format_description_flags.h @@ -3,6 +3,41 @@ #include "gcc_compat.h" #include "static_assert.h" +#if defined(V4L2_FMT_FLAG_COMPRESSED) || (defined(HAVE_DECL_V4L2_FMT_FLAG_COMPRESSED) && HAVE_DECL_V4L2_FMT_FLAG_COMPRESSED) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_FMT_FLAG_COMPRESSED) == (0x0001), "V4L2_FMT_FLAG_COMPRESSED != 0x0001"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_FMT_FLAG_COMPRESSED 0x0001 +#endif +#if defined(V4L2_FMT_FLAG_EMULATED) || (defined(HAVE_DECL_V4L2_FMT_FLAG_EMULATED) && HAVE_DECL_V4L2_FMT_FLAG_EMULATED) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_FMT_FLAG_EMULATED) == (0x0002), "V4L2_FMT_FLAG_EMULATED != 0x0002"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_FMT_FLAG_EMULATED 0x0002 +#endif +#if defined(V4L2_FMT_FLAG_CONTINUOUS_BYTESTREAM) || (defined(HAVE_DECL_V4L2_FMT_FLAG_CONTINUOUS_BYTESTREAM) && HAVE_DECL_V4L2_FMT_FLAG_CONTINUOUS_BYTESTREAM) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_FMT_FLAG_CONTINUOUS_BYTESTREAM) == (0x0004), "V4L2_FMT_FLAG_CONTINUOUS_BYTESTREAM != 0x0004"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_FMT_FLAG_CONTINUOUS_BYTESTREAM 0x0004 +#endif +#if defined(V4L2_FMT_FLAG_DYN_RESOLUTION) || (defined(HAVE_DECL_V4L2_FMT_FLAG_DYN_RESOLUTION) && HAVE_DECL_V4L2_FMT_FLAG_DYN_RESOLUTION) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_FMT_FLAG_DYN_RESOLUTION) == (0x0008), "V4L2_FMT_FLAG_DYN_RESOLUTION != 0x0008"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_FMT_FLAG_DYN_RESOLUTION 0x0008 +#endif +#if defined(V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL) || (defined(HAVE_DECL_V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL) && HAVE_DECL_V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL) == (0x0010), "V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL != 0x0010"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL 0x0010 +#endif #ifndef XLAT_MACROS_ONLY @@ -12,19 +47,76 @@ extern const struct xlat v4l2_format_description_flags[]; # else +static const struct xlat_data v4l2_format_description_flags_xdata[] = { + XLAT(V4L2_FMT_FLAG_COMPRESSED), + #define XLAT_VAL_0 ((unsigned) (V4L2_FMT_FLAG_COMPRESSED)) + #define XLAT_STR_0 STRINGIFY(V4L2_FMT_FLAG_COMPRESSED) + XLAT(V4L2_FMT_FLAG_EMULATED), + #define XLAT_VAL_1 ((unsigned) (V4L2_FMT_FLAG_EMULATED)) + #define XLAT_STR_1 STRINGIFY(V4L2_FMT_FLAG_EMULATED) + XLAT(V4L2_FMT_FLAG_CONTINUOUS_BYTESTREAM), + #define XLAT_VAL_2 ((unsigned) (V4L2_FMT_FLAG_CONTINUOUS_BYTESTREAM)) + #define XLAT_STR_2 STRINGIFY(V4L2_FMT_FLAG_CONTINUOUS_BYTESTREAM) + XLAT(V4L2_FMT_FLAG_DYN_RESOLUTION), + #define XLAT_VAL_3 ((unsigned) (V4L2_FMT_FLAG_DYN_RESOLUTION)) + #define XLAT_STR_3 STRINGIFY(V4L2_FMT_FLAG_DYN_RESOLUTION) + XLAT(V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL), + #define XLAT_VAL_4 ((unsigned) (V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL)) + #define XLAT_STR_4 STRINGIFY(V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL) +}; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static # endif -const struct xlat v4l2_format_description_flags[] = { -#if defined(V4L2_FMT_FLAG_COMPRESSED) || (defined(HAVE_DECL_V4L2_FMT_FLAG_COMPRESSED) && HAVE_DECL_V4L2_FMT_FLAG_COMPRESSED) - XLAT(V4L2_FMT_FLAG_COMPRESSED), -#endif -#if defined(V4L2_FMT_FLAG_EMULATED) || (defined(HAVE_DECL_V4L2_FMT_FLAG_EMULATED) && HAVE_DECL_V4L2_FMT_FLAG_EMULATED) - XLAT(V4L2_FMT_FLAG_EMULATED), -#endif - XLAT_END -}; +const struct xlat v4l2_format_description_flags[1] = { { + .data = v4l2_format_description_flags_xdata, + .size = ARRAY_SIZE(v4l2_format_description_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/v4l2_format_description_flags.in b/xlat/v4l2_format_description_flags.in index ed5a3d38..7835afb1 100644 --- a/xlat/v4l2_format_description_flags.in +++ b/xlat/v4l2_format_description_flags.in @@ -1,2 +1,5 @@ -V4L2_FMT_FLAG_COMPRESSED -V4L2_FMT_FLAG_EMULATED +V4L2_FMT_FLAG_COMPRESSED 0x0001 +V4L2_FMT_FLAG_EMULATED 0x0002 +V4L2_FMT_FLAG_CONTINUOUS_BYTESTREAM 0x0004 +V4L2_FMT_FLAG_DYN_RESOLUTION 0x0008 +V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL 0x0010 diff --git a/xlat/v4l2_frameinterval_types.h b/xlat/v4l2_frameinterval_types.h index 6b7b9427..96802f28 100644 --- a/xlat/v4l2_frameinterval_types.h +++ b/xlat/v4l2_frameinterval_types.h @@ -3,6 +3,27 @@ #include "gcc_compat.h" #include "static_assert.h" +#if defined(V4L2_FRMIVAL_TYPE_DISCRETE) || (defined(HAVE_DECL_V4L2_FRMIVAL_TYPE_DISCRETE) && HAVE_DECL_V4L2_FRMIVAL_TYPE_DISCRETE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_FRMIVAL_TYPE_DISCRETE) == (1), "V4L2_FRMIVAL_TYPE_DISCRETE != 1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_FRMIVAL_TYPE_DISCRETE 1 +#endif +#if defined(V4L2_FRMIVAL_TYPE_CONTINUOUS) || (defined(HAVE_DECL_V4L2_FRMIVAL_TYPE_CONTINUOUS) && HAVE_DECL_V4L2_FRMIVAL_TYPE_CONTINUOUS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_FRMIVAL_TYPE_CONTINUOUS) == (2), "V4L2_FRMIVAL_TYPE_CONTINUOUS != 2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_FRMIVAL_TYPE_CONTINUOUS 2 +#endif +#if defined(V4L2_FRMIVAL_TYPE_STEPWISE) || (defined(HAVE_DECL_V4L2_FRMIVAL_TYPE_STEPWISE) && HAVE_DECL_V4L2_FRMIVAL_TYPE_STEPWISE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_FRMIVAL_TYPE_STEPWISE) == (3), "V4L2_FRMIVAL_TYPE_STEPWISE != 3"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_FRMIVAL_TYPE_STEPWISE 3 +#endif #ifndef XLAT_MACROS_ONLY @@ -12,22 +33,54 @@ extern const struct xlat v4l2_frameinterval_types[]; # else +static const struct xlat_data v4l2_frameinterval_types_xdata[] = { + [V4L2_FRMIVAL_TYPE_DISCRETE] = XLAT(V4L2_FRMIVAL_TYPE_DISCRETE), + #define XLAT_VAL_0 ((unsigned) (V4L2_FRMIVAL_TYPE_DISCRETE)) + #define XLAT_STR_0 STRINGIFY(V4L2_FRMIVAL_TYPE_DISCRETE) + [V4L2_FRMIVAL_TYPE_CONTINUOUS] = XLAT(V4L2_FRMIVAL_TYPE_CONTINUOUS), + #define XLAT_VAL_1 ((unsigned) (V4L2_FRMIVAL_TYPE_CONTINUOUS)) + #define XLAT_STR_1 STRINGIFY(V4L2_FRMIVAL_TYPE_CONTINUOUS) + [V4L2_FRMIVAL_TYPE_STEPWISE] = XLAT(V4L2_FRMIVAL_TYPE_STEPWISE), + #define XLAT_VAL_2 ((unsigned) (V4L2_FRMIVAL_TYPE_STEPWISE)) + #define XLAT_STR_2 STRINGIFY(V4L2_FRMIVAL_TYPE_STEPWISE) +}; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static # endif -const struct xlat v4l2_frameinterval_types[] = { -#if defined(V4L2_FRMIVAL_TYPE_DISCRETE) || (defined(HAVE_DECL_V4L2_FRMIVAL_TYPE_DISCRETE) && HAVE_DECL_V4L2_FRMIVAL_TYPE_DISCRETE) - XLAT(V4L2_FRMIVAL_TYPE_DISCRETE), -#endif -#if defined(V4L2_FRMIVAL_TYPE_CONTINUOUS) || (defined(HAVE_DECL_V4L2_FRMIVAL_TYPE_CONTINUOUS) && HAVE_DECL_V4L2_FRMIVAL_TYPE_CONTINUOUS) - XLAT(V4L2_FRMIVAL_TYPE_CONTINUOUS), -#endif -#if defined(V4L2_FRMIVAL_TYPE_STEPWISE) || (defined(HAVE_DECL_V4L2_FRMIVAL_TYPE_STEPWISE) && HAVE_DECL_V4L2_FRMIVAL_TYPE_STEPWISE) - XLAT(V4L2_FRMIVAL_TYPE_STEPWISE), -#endif - XLAT_END -}; +const struct xlat v4l2_frameinterval_types[1] = { { + .data = v4l2_frameinterval_types_xdata, + .size = ARRAY_SIZE(v4l2_frameinterval_types_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/v4l2_frameinterval_types.in b/xlat/v4l2_frameinterval_types.in index 30d46d6e..8cd22563 100644 --- a/xlat/v4l2_frameinterval_types.in +++ b/xlat/v4l2_frameinterval_types.in @@ -1,3 +1,4 @@ -V4L2_FRMIVAL_TYPE_DISCRETE -V4L2_FRMIVAL_TYPE_CONTINUOUS -V4L2_FRMIVAL_TYPE_STEPWISE +#value_indexed +V4L2_FRMIVAL_TYPE_DISCRETE 1 +V4L2_FRMIVAL_TYPE_CONTINUOUS 2 +V4L2_FRMIVAL_TYPE_STEPWISE 3 diff --git a/xlat/v4l2_framesize_types.h b/xlat/v4l2_framesize_types.h index 9f5dbfa0..18c66f7c 100644 --- a/xlat/v4l2_framesize_types.h +++ b/xlat/v4l2_framesize_types.h @@ -3,6 +3,27 @@ #include "gcc_compat.h" #include "static_assert.h" +#if defined(V4L2_FRMSIZE_TYPE_DISCRETE) || (defined(HAVE_DECL_V4L2_FRMSIZE_TYPE_DISCRETE) && HAVE_DECL_V4L2_FRMSIZE_TYPE_DISCRETE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_FRMSIZE_TYPE_DISCRETE) == (1), "V4L2_FRMSIZE_TYPE_DISCRETE != 1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_FRMSIZE_TYPE_DISCRETE 1 +#endif +#if defined(V4L2_FRMSIZE_TYPE_CONTINUOUS) || (defined(HAVE_DECL_V4L2_FRMSIZE_TYPE_CONTINUOUS) && HAVE_DECL_V4L2_FRMSIZE_TYPE_CONTINUOUS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_FRMSIZE_TYPE_CONTINUOUS) == (2), "V4L2_FRMSIZE_TYPE_CONTINUOUS != 2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_FRMSIZE_TYPE_CONTINUOUS 2 +#endif +#if defined(V4L2_FRMSIZE_TYPE_STEPWISE) || (defined(HAVE_DECL_V4L2_FRMSIZE_TYPE_STEPWISE) && HAVE_DECL_V4L2_FRMSIZE_TYPE_STEPWISE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_FRMSIZE_TYPE_STEPWISE) == (3), "V4L2_FRMSIZE_TYPE_STEPWISE != 3"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_FRMSIZE_TYPE_STEPWISE 3 +#endif #ifndef XLAT_MACROS_ONLY @@ -12,22 +33,54 @@ extern const struct xlat v4l2_framesize_types[]; # else +static const struct xlat_data v4l2_framesize_types_xdata[] = { + [V4L2_FRMSIZE_TYPE_DISCRETE] = XLAT(V4L2_FRMSIZE_TYPE_DISCRETE), + #define XLAT_VAL_0 ((unsigned) (V4L2_FRMSIZE_TYPE_DISCRETE)) + #define XLAT_STR_0 STRINGIFY(V4L2_FRMSIZE_TYPE_DISCRETE) + [V4L2_FRMSIZE_TYPE_CONTINUOUS] = XLAT(V4L2_FRMSIZE_TYPE_CONTINUOUS), + #define XLAT_VAL_1 ((unsigned) (V4L2_FRMSIZE_TYPE_CONTINUOUS)) + #define XLAT_STR_1 STRINGIFY(V4L2_FRMSIZE_TYPE_CONTINUOUS) + [V4L2_FRMSIZE_TYPE_STEPWISE] = XLAT(V4L2_FRMSIZE_TYPE_STEPWISE), + #define XLAT_VAL_2 ((unsigned) (V4L2_FRMSIZE_TYPE_STEPWISE)) + #define XLAT_STR_2 STRINGIFY(V4L2_FRMSIZE_TYPE_STEPWISE) +}; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static # endif -const struct xlat v4l2_framesize_types[] = { -#if defined(V4L2_FRMSIZE_TYPE_DISCRETE) || (defined(HAVE_DECL_V4L2_FRMSIZE_TYPE_DISCRETE) && HAVE_DECL_V4L2_FRMSIZE_TYPE_DISCRETE) - XLAT(V4L2_FRMSIZE_TYPE_DISCRETE), -#endif -#if defined(V4L2_FRMSIZE_TYPE_CONTINUOUS) || (defined(HAVE_DECL_V4L2_FRMSIZE_TYPE_CONTINUOUS) && HAVE_DECL_V4L2_FRMSIZE_TYPE_CONTINUOUS) - XLAT(V4L2_FRMSIZE_TYPE_CONTINUOUS), -#endif -#if defined(V4L2_FRMSIZE_TYPE_STEPWISE) || (defined(HAVE_DECL_V4L2_FRMSIZE_TYPE_STEPWISE) && HAVE_DECL_V4L2_FRMSIZE_TYPE_STEPWISE) - XLAT(V4L2_FRMSIZE_TYPE_STEPWISE), -#endif - XLAT_END -}; +const struct xlat v4l2_framesize_types[1] = { { + .data = v4l2_framesize_types_xdata, + .size = ARRAY_SIZE(v4l2_framesize_types_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/v4l2_framesize_types.in b/xlat/v4l2_framesize_types.in index 5eb2b83e..49ae6a2d 100644 --- a/xlat/v4l2_framesize_types.in +++ b/xlat/v4l2_framesize_types.in @@ -1,3 +1,9 @@ -V4L2_FRMSIZE_TYPE_DISCRETE -V4L2_FRMSIZE_TYPE_CONTINUOUS -V4L2_FRMSIZE_TYPE_STEPWISE +#value_indexed +#enum +#include +#include +#include +#include +V4L2_FRMSIZE_TYPE_DISCRETE 1 +V4L2_FRMSIZE_TYPE_CONTINUOUS 2 +V4L2_FRMSIZE_TYPE_STEPWISE 3 diff --git a/xlat/v4l2_framesize_types.m4 b/xlat/v4l2_framesize_types.m4 new file mode 100644 index 00000000..75a5676d --- /dev/null +++ b/xlat/v4l2_framesize_types.m4 @@ -0,0 +1,12 @@ +dnl Generated by ./xlat/gen.sh from ./xlat/v4l2_framesize_types.in; do not edit. +AC_DEFUN([st_CHECK_ENUMS_v4l2_framesize_types],[ +AC_CHECK_DECLS(m4_normalize([ +V4L2_FRMSIZE_TYPE_DISCRETE, +V4L2_FRMSIZE_TYPE_CONTINUOUS, +V4L2_FRMSIZE_TYPE_STEPWISE +]),,, [ +#include +#include +#include +#include +])])]) diff --git a/xlat/v4l2_input_types.h b/xlat/v4l2_input_types.h index 9c023f27..73dbf16e 100644 --- a/xlat/v4l2_input_types.h +++ b/xlat/v4l2_input_types.h @@ -3,6 +3,27 @@ #include "gcc_compat.h" #include "static_assert.h" +#if defined(V4L2_INPUT_TYPE_TUNER) || (defined(HAVE_DECL_V4L2_INPUT_TYPE_TUNER) && HAVE_DECL_V4L2_INPUT_TYPE_TUNER) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_INPUT_TYPE_TUNER) == (1), "V4L2_INPUT_TYPE_TUNER != 1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_INPUT_TYPE_TUNER 1 +#endif +#if defined(V4L2_INPUT_TYPE_CAMERA) || (defined(HAVE_DECL_V4L2_INPUT_TYPE_CAMERA) && HAVE_DECL_V4L2_INPUT_TYPE_CAMERA) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_INPUT_TYPE_CAMERA) == (2), "V4L2_INPUT_TYPE_CAMERA != 2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_INPUT_TYPE_CAMERA 2 +#endif +#if defined(V4L2_INPUT_TYPE_TOUCH) || (defined(HAVE_DECL_V4L2_INPUT_TYPE_TOUCH) && HAVE_DECL_V4L2_INPUT_TYPE_TOUCH) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_INPUT_TYPE_TOUCH) == (3), "V4L2_INPUT_TYPE_TOUCH != 3"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_INPUT_TYPE_TOUCH 3 +#endif #ifndef XLAT_MACROS_ONLY @@ -12,22 +33,54 @@ extern const struct xlat v4l2_input_types[]; # else +static const struct xlat_data v4l2_input_types_xdata[] = { + [V4L2_INPUT_TYPE_TUNER] = XLAT(V4L2_INPUT_TYPE_TUNER), + #define XLAT_VAL_0 ((unsigned) (V4L2_INPUT_TYPE_TUNER)) + #define XLAT_STR_0 STRINGIFY(V4L2_INPUT_TYPE_TUNER) + [V4L2_INPUT_TYPE_CAMERA] = XLAT(V4L2_INPUT_TYPE_CAMERA), + #define XLAT_VAL_1 ((unsigned) (V4L2_INPUT_TYPE_CAMERA)) + #define XLAT_STR_1 STRINGIFY(V4L2_INPUT_TYPE_CAMERA) + [V4L2_INPUT_TYPE_TOUCH] = XLAT(V4L2_INPUT_TYPE_TOUCH), + #define XLAT_VAL_2 ((unsigned) (V4L2_INPUT_TYPE_TOUCH)) + #define XLAT_STR_2 STRINGIFY(V4L2_INPUT_TYPE_TOUCH) +}; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static # endif -const struct xlat v4l2_input_types[] = { -#if defined(V4L2_INPUT_TYPE_TUNER) || (defined(HAVE_DECL_V4L2_INPUT_TYPE_TUNER) && HAVE_DECL_V4L2_INPUT_TYPE_TUNER) - XLAT(V4L2_INPUT_TYPE_TUNER), -#endif -#if defined(V4L2_INPUT_TYPE_CAMERA) || (defined(HAVE_DECL_V4L2_INPUT_TYPE_CAMERA) && HAVE_DECL_V4L2_INPUT_TYPE_CAMERA) - XLAT(V4L2_INPUT_TYPE_CAMERA), -#endif -#if defined(V4L2_INPUT_TYPE_TOUCH) || (defined(HAVE_DECL_V4L2_INPUT_TYPE_TOUCH) && HAVE_DECL_V4L2_INPUT_TYPE_TOUCH) - XLAT(V4L2_INPUT_TYPE_TOUCH), -#endif - XLAT_END -}; +const struct xlat v4l2_input_types[1] = { { + .data = v4l2_input_types_xdata, + .size = ARRAY_SIZE(v4l2_input_types_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/v4l2_input_types.in b/xlat/v4l2_input_types.in index 1991d502..1a8ec1be 100644 --- a/xlat/v4l2_input_types.in +++ b/xlat/v4l2_input_types.in @@ -1,3 +1,4 @@ -V4L2_INPUT_TYPE_TUNER -V4L2_INPUT_TYPE_CAMERA -V4L2_INPUT_TYPE_TOUCH +#value_indexed +V4L2_INPUT_TYPE_TUNER 1 +V4L2_INPUT_TYPE_CAMERA 2 +V4L2_INPUT_TYPE_TOUCH 3 diff --git a/xlat/v4l2_ioctl_cmds.h b/xlat/v4l2_ioctl_cmds.h new file mode 100644 index 00000000..d0883e0c --- /dev/null +++ b/xlat/v4l2_ioctl_cmds.h @@ -0,0 +1,783 @@ +/* Generated by ./xlat/gen.sh from ./xlat/v4l2_ioctl_cmds.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#ifndef STRACE_WORKAROUND_V4L2_TIME64 +# define STRACE_WORKAROUND_V4L2_TIME64 +# undef VIDIOC_QUERYBUF +# undef VIDIOC_QBUF +# undef VIDIOC_DQBUF +# undef VIDIOC_PREPARE_BUF +# undef VIDIOC_DQEVENT +#endif +#if defined(VIDIOC_QUERYCAP) || (defined(HAVE_DECL_VIDIOC_QUERYCAP) && HAVE_DECL_VIDIOC_QUERYCAP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_QUERYCAP) == (_IOR ('V', 0, struct_v4l2_capability)), "VIDIOC_QUERYCAP != _IOR ('V', 0, struct_v4l2_capability)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_QUERYCAP _IOR ('V', 0, struct_v4l2_capability) +#endif +#if defined(VIDIOC_ENUM_FMT) || (defined(HAVE_DECL_VIDIOC_ENUM_FMT) && HAVE_DECL_VIDIOC_ENUM_FMT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_ENUM_FMT) == (_IOWR('V', 2, struct v4l2_fmtdesc)), "VIDIOC_ENUM_FMT != _IOWR('V', 2, struct v4l2_fmtdesc)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_ENUM_FMT _IOWR('V', 2, struct v4l2_fmtdesc) +#endif +#if defined(VIDIOC_G_FMT) || (defined(HAVE_DECL_VIDIOC_G_FMT) && HAVE_DECL_VIDIOC_G_FMT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_G_FMT) == (_IOWR('V', 4, struct_v4l2_format)), "VIDIOC_G_FMT != _IOWR('V', 4, struct_v4l2_format)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_G_FMT _IOWR('V', 4, struct_v4l2_format) +#endif +#if defined(VIDIOC_S_FMT) || (defined(HAVE_DECL_VIDIOC_S_FMT) && HAVE_DECL_VIDIOC_S_FMT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_S_FMT) == (_IOWR('V', 5, struct_v4l2_format)), "VIDIOC_S_FMT != _IOWR('V', 5, struct_v4l2_format)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_S_FMT _IOWR('V', 5, struct_v4l2_format) +#endif +#if defined(VIDIOC_REQBUFS) || (defined(HAVE_DECL_VIDIOC_REQBUFS) && HAVE_DECL_VIDIOC_REQBUFS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_REQBUFS) == (_IOWR('V', 8, struct v4l2_requestbuffers)), "VIDIOC_REQBUFS != _IOWR('V', 8, struct v4l2_requestbuffers)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_REQBUFS _IOWR('V', 8, struct v4l2_requestbuffers) +#endif +#if defined(VIDIOC_QUERYBUF) || (defined(HAVE_DECL_VIDIOC_QUERYBUF) && HAVE_DECL_VIDIOC_QUERYBUF) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_QUERYBUF) == (_IOWR('V', 9, kernel_v4l2_buffer_t)), "VIDIOC_QUERYBUF != _IOWR('V', 9, kernel_v4l2_buffer_t)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_QUERYBUF _IOWR('V', 9, kernel_v4l2_buffer_t) +#endif +#if defined(VIDIOC_G_FBUF) || (defined(HAVE_DECL_VIDIOC_G_FBUF) && HAVE_DECL_VIDIOC_G_FBUF) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_G_FBUF) == (_IOR ('V', 10, struct_v4l2_framebuffer)), "VIDIOC_G_FBUF != _IOR ('V', 10, struct_v4l2_framebuffer)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_G_FBUF _IOR ('V', 10, struct_v4l2_framebuffer) +#endif +#if defined(VIDIOC_S_FBUF) || (defined(HAVE_DECL_VIDIOC_S_FBUF) && HAVE_DECL_VIDIOC_S_FBUF) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_S_FBUF) == (_IOW ('V', 11, struct_v4l2_framebuffer)), "VIDIOC_S_FBUF != _IOW ('V', 11, struct_v4l2_framebuffer)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_S_FBUF _IOW ('V', 11, struct_v4l2_framebuffer) +#endif +#if defined(VIDIOC_QBUF) || (defined(HAVE_DECL_VIDIOC_QBUF) && HAVE_DECL_VIDIOC_QBUF) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_QBUF) == (_IOWR('V', 15, kernel_v4l2_buffer_t)), "VIDIOC_QBUF != _IOWR('V', 15, kernel_v4l2_buffer_t)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_QBUF _IOWR('V', 15, kernel_v4l2_buffer_t) +#endif +#if defined(VIDIOC_DQBUF) || (defined(HAVE_DECL_VIDIOC_DQBUF) && HAVE_DECL_VIDIOC_DQBUF) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_DQBUF) == (_IOWR('V', 17, kernel_v4l2_buffer_t)), "VIDIOC_DQBUF != _IOWR('V', 17, kernel_v4l2_buffer_t)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_DQBUF _IOWR('V', 17, kernel_v4l2_buffer_t) +#endif +#if defined(VIDIOC_STREAMON) || (defined(HAVE_DECL_VIDIOC_STREAMON) && HAVE_DECL_VIDIOC_STREAMON) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_STREAMON) == (_IOW ('V', 18, int)), "VIDIOC_STREAMON != _IOW ('V', 18, int)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_STREAMON _IOW ('V', 18, int) +#endif +#if defined(VIDIOC_STREAMOFF) || (defined(HAVE_DECL_VIDIOC_STREAMOFF) && HAVE_DECL_VIDIOC_STREAMOFF) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_STREAMOFF) == (_IOW ('V', 19, int)), "VIDIOC_STREAMOFF != _IOW ('V', 19, int)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_STREAMOFF _IOW ('V', 19, int) +#endif +#if defined(VIDIOC_G_PARM) || (defined(HAVE_DECL_VIDIOC_G_PARM) && HAVE_DECL_VIDIOC_G_PARM) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_G_PARM) == (_IOWR('V', 21, struct v4l2_streamparm)), "VIDIOC_G_PARM != _IOWR('V', 21, struct v4l2_streamparm)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_G_PARM _IOWR('V', 21, struct v4l2_streamparm) +#endif +#if defined(VIDIOC_S_PARM) || (defined(HAVE_DECL_VIDIOC_S_PARM) && HAVE_DECL_VIDIOC_S_PARM) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_S_PARM) == (_IOWR('V', 22, struct v4l2_streamparm)), "VIDIOC_S_PARM != _IOWR('V', 22, struct v4l2_streamparm)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_S_PARM _IOWR('V', 22, struct v4l2_streamparm) +#endif +#if defined(VIDIOC_G_STD) || (defined(HAVE_DECL_VIDIOC_G_STD) && HAVE_DECL_VIDIOC_G_STD) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_G_STD) == (_IOR ('V', 23, uint64_t)), "VIDIOC_G_STD != _IOR ('V', 23, uint64_t)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_G_STD _IOR ('V', 23, uint64_t) +#endif +#if defined(VIDIOC_S_STD) || (defined(HAVE_DECL_VIDIOC_S_STD) && HAVE_DECL_VIDIOC_S_STD) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_S_STD) == (_IOW ('V', 24, uint64_t)), "VIDIOC_S_STD != _IOW ('V', 24, uint64_t)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_S_STD _IOW ('V', 24, uint64_t) +#endif +#if defined(VIDIOC_ENUMSTD) || (defined(HAVE_DECL_VIDIOC_ENUMSTD) && HAVE_DECL_VIDIOC_ENUMSTD) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_ENUMSTD) == (_IOWR('V', 25, struct_v4l2_standard)), "VIDIOC_ENUMSTD != _IOWR('V', 25, struct_v4l2_standard)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_ENUMSTD _IOWR('V', 25, struct_v4l2_standard) +#endif +#if defined(VIDIOC_ENUMINPUT) || (defined(HAVE_DECL_VIDIOC_ENUMINPUT) && HAVE_DECL_VIDIOC_ENUMINPUT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_ENUMINPUT) == (_IOWR('V', 26, struct_v4l2_input)), "VIDIOC_ENUMINPUT != _IOWR('V', 26, struct_v4l2_input)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_ENUMINPUT _IOWR('V', 26, struct_v4l2_input) +#endif +#if defined(VIDIOC_G_CTRL) || (defined(HAVE_DECL_VIDIOC_G_CTRL) && HAVE_DECL_VIDIOC_G_CTRL) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_G_CTRL) == (_IOWR('V', 27, struct v4l2_control)), "VIDIOC_G_CTRL != _IOWR('V', 27, struct v4l2_control)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_G_CTRL _IOWR('V', 27, struct v4l2_control) +#endif +#if defined(VIDIOC_S_CTRL) || (defined(HAVE_DECL_VIDIOC_S_CTRL) && HAVE_DECL_VIDIOC_S_CTRL) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_S_CTRL) == (_IOWR('V', 28, struct v4l2_control)), "VIDIOC_S_CTRL != _IOWR('V', 28, struct v4l2_control)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_S_CTRL _IOWR('V', 28, struct v4l2_control) +#endif +#if defined(VIDIOC_G_TUNER) || (defined(HAVE_DECL_VIDIOC_G_TUNER) && HAVE_DECL_VIDIOC_G_TUNER) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_G_TUNER) == (_IOWR('V', 29, struct v4l2_tuner)), "VIDIOC_G_TUNER != _IOWR('V', 29, struct v4l2_tuner)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_G_TUNER _IOWR('V', 29, struct v4l2_tuner) +#endif +#if defined(VIDIOC_S_TUNER) || (defined(HAVE_DECL_VIDIOC_S_TUNER) && HAVE_DECL_VIDIOC_S_TUNER) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_S_TUNER) == (_IOW ('V', 30, struct v4l2_tuner)), "VIDIOC_S_TUNER != _IOW ('V', 30, struct v4l2_tuner)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_S_TUNER _IOW ('V', 30, struct v4l2_tuner) +#endif +#if defined(VIDIOC_QUERYCTRL) || (defined(HAVE_DECL_VIDIOC_QUERYCTRL) && HAVE_DECL_VIDIOC_QUERYCTRL) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_QUERYCTRL) == (_IOWR('V', 36, struct v4l2_queryctrl)), "VIDIOC_QUERYCTRL != _IOWR('V', 36, struct v4l2_queryctrl)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_QUERYCTRL _IOWR('V', 36, struct v4l2_queryctrl) +#endif +#if defined(VIDIOC_G_INPUT) || (defined(HAVE_DECL_VIDIOC_G_INPUT) && HAVE_DECL_VIDIOC_G_INPUT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_G_INPUT) == (_IOR ('V', 38, int)), "VIDIOC_G_INPUT != _IOR ('V', 38, int)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_G_INPUT _IOR ('V', 38, int) +#endif +#if defined(VIDIOC_S_INPUT) || (defined(HAVE_DECL_VIDIOC_S_INPUT) && HAVE_DECL_VIDIOC_S_INPUT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_S_INPUT) == (_IOWR('V', 39, int)), "VIDIOC_S_INPUT != _IOWR('V', 39, int)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_S_INPUT _IOWR('V', 39, int) +#endif +#if defined(VIDIOC_CROPCAP) || (defined(HAVE_DECL_VIDIOC_CROPCAP) && HAVE_DECL_VIDIOC_CROPCAP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_CROPCAP) == (_IOWR('V', 58, struct v4l2_cropcap)), "VIDIOC_CROPCAP != _IOWR('V', 58, struct v4l2_cropcap)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_CROPCAP _IOWR('V', 58, struct v4l2_cropcap) +#endif +#if defined(VIDIOC_G_CROP) || (defined(HAVE_DECL_VIDIOC_G_CROP) && HAVE_DECL_VIDIOC_G_CROP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_G_CROP) == (_IOWR('V', 59, struct v4l2_crop)), "VIDIOC_G_CROP != _IOWR('V', 59, struct v4l2_crop)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_G_CROP _IOWR('V', 59, struct v4l2_crop) +#endif +#if defined(VIDIOC_S_CROP) || (defined(HAVE_DECL_VIDIOC_S_CROP) && HAVE_DECL_VIDIOC_S_CROP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_S_CROP) == (_IOW ('V', 60, struct v4l2_crop)), "VIDIOC_S_CROP != _IOW ('V', 60, struct v4l2_crop)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_S_CROP _IOW ('V', 60, struct v4l2_crop) +#endif +#if defined(VIDIOC_TRY_FMT) || (defined(HAVE_DECL_VIDIOC_TRY_FMT) && HAVE_DECL_VIDIOC_TRY_FMT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_TRY_FMT) == (_IOWR('V', 64, struct_v4l2_format)), "VIDIOC_TRY_FMT != _IOWR('V', 64, struct_v4l2_format)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_TRY_FMT _IOWR('V', 64, struct_v4l2_format) +#endif +#if defined(VIDIOC_G_EXT_CTRLS) || (defined(HAVE_DECL_VIDIOC_G_EXT_CTRLS) && HAVE_DECL_VIDIOC_G_EXT_CTRLS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_G_EXT_CTRLS) == (_IOWR('V', 71, struct_v4l2_ext_controls)), "VIDIOC_G_EXT_CTRLS != _IOWR('V', 71, struct_v4l2_ext_controls)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_G_EXT_CTRLS _IOWR('V', 71, struct_v4l2_ext_controls) +#endif +#if defined(VIDIOC_S_EXT_CTRLS) || (defined(HAVE_DECL_VIDIOC_S_EXT_CTRLS) && HAVE_DECL_VIDIOC_S_EXT_CTRLS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_S_EXT_CTRLS) == (_IOWR('V', 72, struct_v4l2_ext_controls)), "VIDIOC_S_EXT_CTRLS != _IOWR('V', 72, struct_v4l2_ext_controls)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_S_EXT_CTRLS _IOWR('V', 72, struct_v4l2_ext_controls) +#endif +#if defined(VIDIOC_TRY_EXT_CTRLS) || (defined(HAVE_DECL_VIDIOC_TRY_EXT_CTRLS) && HAVE_DECL_VIDIOC_TRY_EXT_CTRLS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_TRY_EXT_CTRLS) == (_IOWR('V', 73, struct_v4l2_ext_controls)), "VIDIOC_TRY_EXT_CTRLS != _IOWR('V', 73, struct_v4l2_ext_controls)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_TRY_EXT_CTRLS _IOWR('V', 73, struct_v4l2_ext_controls) +#endif +#if defined(VIDIOC_ENUM_FRAMESIZES) || (defined(HAVE_DECL_VIDIOC_ENUM_FRAMESIZES) && HAVE_DECL_VIDIOC_ENUM_FRAMESIZES) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_ENUM_FRAMESIZES) == (_IOWR('V', 74, struct_v4l2_frmsizeenum)), "VIDIOC_ENUM_FRAMESIZES != _IOWR('V', 74, struct_v4l2_frmsizeenum)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_ENUM_FRAMESIZES _IOWR('V', 74, struct_v4l2_frmsizeenum) +#endif +#if defined(VIDIOC_ENUM_FRAMEINTERVALS) || (defined(HAVE_DECL_VIDIOC_ENUM_FRAMEINTERVALS) && HAVE_DECL_VIDIOC_ENUM_FRAMEINTERVALS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_ENUM_FRAMEINTERVALS) == (_IOWR('V', 75, struct_v4l2_frmivalenum)), "VIDIOC_ENUM_FRAMEINTERVALS != _IOWR('V', 75, struct_v4l2_frmivalenum)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_ENUM_FRAMEINTERVALS _IOWR('V', 75, struct_v4l2_frmivalenum) +#endif +#if defined(VIDIOC_DQEVENT) || (defined(HAVE_DECL_VIDIOC_DQEVENT) && HAVE_DECL_VIDIOC_DQEVENT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_DQEVENT) == (_IOR ('V', 89, kernel_v4l2_event_t)), "VIDIOC_DQEVENT != _IOR ('V', 89, kernel_v4l2_event_t)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_DQEVENT _IOR ('V', 89, kernel_v4l2_event_t) +#endif +#if defined(VIDIOC_CREATE_BUFS) || (defined(HAVE_DECL_VIDIOC_CREATE_BUFS) && HAVE_DECL_VIDIOC_CREATE_BUFS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_CREATE_BUFS) == (_IOWR('V', 92, struct_v4l2_create_buffers)), "VIDIOC_CREATE_BUFS != _IOWR('V', 92, struct_v4l2_create_buffers)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_CREATE_BUFS _IOWR('V', 92, struct_v4l2_create_buffers) +#endif +#if defined(VIDIOC_PREPARE_BUF) || (defined(HAVE_DECL_VIDIOC_PREPARE_BUF) && HAVE_DECL_VIDIOC_PREPARE_BUF) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((VIDIOC_PREPARE_BUF) == (_IOWR('V', 93, kernel_v4l2_buffer_t)), "VIDIOC_PREPARE_BUF != _IOWR('V', 93, kernel_v4l2_buffer_t)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define VIDIOC_PREPARE_BUF _IOWR('V', 93, kernel_v4l2_buffer_t) +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +extern const struct xlat v4l2_ioctl_cmds[]; + +# else + +static const struct xlat_data v4l2_ioctl_cmds_xdata[] = { +#ifndef STRACE_WORKAROUND_V4L2_TIME64 +# define STRACE_WORKAROUND_V4L2_TIME64 + +# undef VIDIOC_QUERYBUF +# undef VIDIOC_QBUF +# undef VIDIOC_DQBUF +# undef VIDIOC_PREPARE_BUF + +# undef VIDIOC_DQEVENT +#endif + + XLAT(VIDIOC_QUERYCAP), + #define XLAT_VAL_0 ((unsigned) (VIDIOC_QUERYCAP)) + #define XLAT_STR_0 STRINGIFY(VIDIOC_QUERYCAP) + XLAT(VIDIOC_ENUM_FMT), + #define XLAT_VAL_1 ((unsigned) (VIDIOC_ENUM_FMT)) + #define XLAT_STR_1 STRINGIFY(VIDIOC_ENUM_FMT) + XLAT(VIDIOC_G_FMT), + #define XLAT_VAL_2 ((unsigned) (VIDIOC_G_FMT)) + #define XLAT_STR_2 STRINGIFY(VIDIOC_G_FMT) + XLAT(VIDIOC_S_FMT), + #define XLAT_VAL_3 ((unsigned) (VIDIOC_S_FMT)) + #define XLAT_STR_3 STRINGIFY(VIDIOC_S_FMT) + + + XLAT(VIDIOC_REQBUFS), + #define XLAT_VAL_4 ((unsigned) (VIDIOC_REQBUFS)) + #define XLAT_STR_4 STRINGIFY(VIDIOC_REQBUFS) + XLAT(VIDIOC_QUERYBUF), + #define XLAT_VAL_5 ((unsigned) (VIDIOC_QUERYBUF)) + #define XLAT_STR_5 STRINGIFY(VIDIOC_QUERYBUF) + XLAT(VIDIOC_G_FBUF), + #define XLAT_VAL_6 ((unsigned) (VIDIOC_G_FBUF)) + #define XLAT_STR_6 STRINGIFY(VIDIOC_G_FBUF) + XLAT(VIDIOC_S_FBUF), + #define XLAT_VAL_7 ((unsigned) (VIDIOC_S_FBUF)) + #define XLAT_STR_7 STRINGIFY(VIDIOC_S_FBUF) + + XLAT(VIDIOC_QBUF), + #define XLAT_VAL_8 ((unsigned) (VIDIOC_QBUF)) + #define XLAT_STR_8 STRINGIFY(VIDIOC_QBUF) + + XLAT(VIDIOC_DQBUF), + #define XLAT_VAL_9 ((unsigned) (VIDIOC_DQBUF)) + #define XLAT_STR_9 STRINGIFY(VIDIOC_DQBUF) + XLAT(VIDIOC_STREAMON), + #define XLAT_VAL_10 ((unsigned) (VIDIOC_STREAMON)) + #define XLAT_STR_10 STRINGIFY(VIDIOC_STREAMON) + XLAT(VIDIOC_STREAMOFF), + #define XLAT_VAL_11 ((unsigned) (VIDIOC_STREAMOFF)) + #define XLAT_STR_11 STRINGIFY(VIDIOC_STREAMOFF) + XLAT(VIDIOC_G_PARM), + #define XLAT_VAL_12 ((unsigned) (VIDIOC_G_PARM)) + #define XLAT_STR_12 STRINGIFY(VIDIOC_G_PARM) + XLAT(VIDIOC_S_PARM), + #define XLAT_VAL_13 ((unsigned) (VIDIOC_S_PARM)) + #define XLAT_STR_13 STRINGIFY(VIDIOC_S_PARM) + XLAT(VIDIOC_G_STD), + #define XLAT_VAL_14 ((unsigned) (VIDIOC_G_STD)) + #define XLAT_STR_14 STRINGIFY(VIDIOC_G_STD) + XLAT(VIDIOC_S_STD), + #define XLAT_VAL_15 ((unsigned) (VIDIOC_S_STD)) + #define XLAT_STR_15 STRINGIFY(VIDIOC_S_STD) + XLAT(VIDIOC_ENUMSTD), + #define XLAT_VAL_16 ((unsigned) (VIDIOC_ENUMSTD)) + #define XLAT_STR_16 STRINGIFY(VIDIOC_ENUMSTD) + XLAT(VIDIOC_ENUMINPUT), + #define XLAT_VAL_17 ((unsigned) (VIDIOC_ENUMINPUT)) + #define XLAT_STR_17 STRINGIFY(VIDIOC_ENUMINPUT) + XLAT(VIDIOC_G_CTRL), + #define XLAT_VAL_18 ((unsigned) (VIDIOC_G_CTRL)) + #define XLAT_STR_18 STRINGIFY(VIDIOC_G_CTRL) + XLAT(VIDIOC_S_CTRL), + #define XLAT_VAL_19 ((unsigned) (VIDIOC_S_CTRL)) + #define XLAT_STR_19 STRINGIFY(VIDIOC_S_CTRL) + XLAT(VIDIOC_G_TUNER), + #define XLAT_VAL_20 ((unsigned) (VIDIOC_G_TUNER)) + #define XLAT_STR_20 STRINGIFY(VIDIOC_G_TUNER) + XLAT(VIDIOC_S_TUNER), + #define XLAT_VAL_21 ((unsigned) (VIDIOC_S_TUNER)) + #define XLAT_STR_21 STRINGIFY(VIDIOC_S_TUNER) + + + XLAT(VIDIOC_QUERYCTRL), + #define XLAT_VAL_22 ((unsigned) (VIDIOC_QUERYCTRL)) + #define XLAT_STR_22 STRINGIFY(VIDIOC_QUERYCTRL) + + XLAT(VIDIOC_G_INPUT), + #define XLAT_VAL_23 ((unsigned) (VIDIOC_G_INPUT)) + #define XLAT_STR_23 STRINGIFY(VIDIOC_G_INPUT) + XLAT(VIDIOC_S_INPUT), + #define XLAT_VAL_24 ((unsigned) (VIDIOC_S_INPUT)) + #define XLAT_STR_24 STRINGIFY(VIDIOC_S_INPUT) + + + + + + + + + + + + XLAT(VIDIOC_CROPCAP), + #define XLAT_VAL_25 ((unsigned) (VIDIOC_CROPCAP)) + #define XLAT_STR_25 STRINGIFY(VIDIOC_CROPCAP) + XLAT(VIDIOC_G_CROP), + #define XLAT_VAL_26 ((unsigned) (VIDIOC_G_CROP)) + #define XLAT_STR_26 STRINGIFY(VIDIOC_G_CROP) + XLAT(VIDIOC_S_CROP), + #define XLAT_VAL_27 ((unsigned) (VIDIOC_S_CROP)) + #define XLAT_STR_27 STRINGIFY(VIDIOC_S_CROP) + + + + XLAT(VIDIOC_TRY_FMT), + #define XLAT_VAL_28 ((unsigned) (VIDIOC_TRY_FMT)) + #define XLAT_STR_28 STRINGIFY(VIDIOC_TRY_FMT) + + + + + + + XLAT(VIDIOC_G_EXT_CTRLS), + #define XLAT_VAL_29 ((unsigned) (VIDIOC_G_EXT_CTRLS)) + #define XLAT_STR_29 STRINGIFY(VIDIOC_G_EXT_CTRLS) + XLAT(VIDIOC_S_EXT_CTRLS), + #define XLAT_VAL_30 ((unsigned) (VIDIOC_S_EXT_CTRLS)) + #define XLAT_STR_30 STRINGIFY(VIDIOC_S_EXT_CTRLS) + XLAT(VIDIOC_TRY_EXT_CTRLS), + #define XLAT_VAL_31 ((unsigned) (VIDIOC_TRY_EXT_CTRLS)) + #define XLAT_STR_31 STRINGIFY(VIDIOC_TRY_EXT_CTRLS) + XLAT(VIDIOC_ENUM_FRAMESIZES), + #define XLAT_VAL_32 ((unsigned) (VIDIOC_ENUM_FRAMESIZES)) + #define XLAT_STR_32 STRINGIFY(VIDIOC_ENUM_FRAMESIZES) + XLAT(VIDIOC_ENUM_FRAMEINTERVALS), + #define XLAT_VAL_33 ((unsigned) (VIDIOC_ENUM_FRAMEINTERVALS)) + #define XLAT_STR_33 STRINGIFY(VIDIOC_ENUM_FRAMEINTERVALS) + + + + + + + + + + + + + + + XLAT(VIDIOC_DQEVENT), + #define XLAT_VAL_34 ((unsigned) (VIDIOC_DQEVENT)) + #define XLAT_STR_34 STRINGIFY(VIDIOC_DQEVENT) + + + XLAT(VIDIOC_CREATE_BUFS), + #define XLAT_VAL_35 ((unsigned) (VIDIOC_CREATE_BUFS)) + #define XLAT_STR_35 STRINGIFY(VIDIOC_CREATE_BUFS) + XLAT(VIDIOC_PREPARE_BUF), + #define XLAT_VAL_36 ((unsigned) (VIDIOC_PREPARE_BUF)) + #define XLAT_STR_36 STRINGIFY(VIDIOC_PREPARE_BUF) + + + + + + + + + + + + + + + + + + + + + + + +}; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat v4l2_ioctl_cmds[1] = { { + .data = v4l2_ioctl_cmds_xdata, + .size = ARRAY_SIZE(v4l2_ioctl_cmds_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/v4l2_ioctl_cmds.in b/xlat/v4l2_ioctl_cmds.in new file mode 100644 index 00000000..4e234ed5 --- /dev/null +++ b/xlat/v4l2_ioctl_cmds.in @@ -0,0 +1,114 @@ +#ifndef STRACE_WORKAROUND_V4L2_TIME64 +# define STRACE_WORKAROUND_V4L2_TIME64 +/* Constants based on struct v4l2_buffer are unreliable as the latter uses struct timeval. */ +# undef VIDIOC_QUERYBUF +# undef VIDIOC_QBUF +# undef VIDIOC_DQBUF +# undef VIDIOC_PREPARE_BUF +/* Constants based on struct v4l2_event are unreliable as the latter uses struct timespec. */ +# undef VIDIOC_DQEVENT +#endif + +VIDIOC_QUERYCAP _IOR ('V', 0, struct_v4l2_capability) +VIDIOC_ENUM_FMT _IOWR('V', 2, struct v4l2_fmtdesc) +VIDIOC_G_FMT _IOWR('V', 4, struct_v4l2_format) +VIDIOC_S_FMT _IOWR('V', 5, struct_v4l2_format) +/* VIDIOC_G_MPEGCOMP _IOR ('V', 6, struct v4l2_mpeg_compression) - removed in v2.6.24-rc1~66^2~32 */ +/* VIDIOC_S_MPEGCOMP _IOW ('V', 7, struct v4l2_mpeg_compression) - removed in v2.6.24-rc1~66^2~32 */ +VIDIOC_REQBUFS _IOWR('V', 8, struct v4l2_requestbuffers) +VIDIOC_QUERYBUF _IOWR('V', 9, kernel_v4l2_buffer_t) +VIDIOC_G_FBUF _IOR ('V', 10, struct_v4l2_framebuffer) +VIDIOC_S_FBUF _IOW ('V', 11, struct_v4l2_framebuffer) +/* VIDIOC_OVERLAY _IOW ('V', 14, int) */ +VIDIOC_QBUF _IOWR('V', 15, kernel_v4l2_buffer_t) +/* VIDIOC_EXPBUF _IOWR('V', 16, struct v4l2_exportbuffer) - added in v3.8-rc1~115^2^2~34 */ +VIDIOC_DQBUF _IOWR('V', 17, kernel_v4l2_buffer_t) +VIDIOC_STREAMON _IOW ('V', 18, int) +VIDIOC_STREAMOFF _IOW ('V', 19, int) +VIDIOC_G_PARM _IOWR('V', 21, struct v4l2_streamparm) +VIDIOC_S_PARM _IOWR('V', 22, struct v4l2_streamparm) +VIDIOC_G_STD _IOR ('V', 23, uint64_t) /* v4l2_std_id */ +VIDIOC_S_STD _IOW ('V', 24, uint64_t) /* v4l2_std_id */ +VIDIOC_ENUMSTD _IOWR('V', 25, struct_v4l2_standard) +VIDIOC_ENUMINPUT _IOWR('V', 26, struct_v4l2_input) +VIDIOC_G_CTRL _IOWR('V', 27, struct v4l2_control) +VIDIOC_S_CTRL _IOWR('V', 28, struct v4l2_control) +VIDIOC_G_TUNER _IOWR('V', 29, struct v4l2_tuner) +VIDIOC_S_TUNER _IOW ('V', 30, struct v4l2_tuner) +/* VIDIOC_G_AUDIO _IOR ('V', 33, struct v4l2_audio) */ +/* VIDIOC_S_AUDIO _IOW ('V', 34, struct v4l2_audio) */ +VIDIOC_QUERYCTRL _IOWR('V', 36, struct v4l2_queryctrl) +/* VIDIOC_QUERYMENU _IOWR('V', 37, struct_v4l2_querymenu) */ +VIDIOC_G_INPUT _IOR ('V', 38, int) +VIDIOC_S_INPUT _IOWR('V', 39, int) +/* VIDIOC_G_EDID _IOWR('V', 40, struct v4l2_edid) - renamed from VIDIOC_SUBDEV_G_EDID in v3.15-rc1~85^2~113 */ +/* VIDIOC_S_EDID _IOWR('V', 41, struct v4l2_edid) - renamed from VIDIOC_SUBDEV_G_EDID in v3.15-rc1~85^2~113 */ +/* VIDIOC_G_OUTPUT _IOR ('V', 46, int) */ +/* VIDIOC_S_OUTPUT _IOWR('V', 47, int) */ +/* VIDIOC_ENUMOUTPUT _IOWR('V', 48, struct_v4l2_output) */ +/* VIDIOC_G_AUDOUT _IOR ('V', 49, struct v4l2_audioout) */ +/* VIDIOC_S_AUDOUT _IOW ('V', 50, struct v4l2_audioout) */ +/* VIDIOC_G_MODULATOR _IOWR('V', 54, struct_v4l2_modulator) */ +/* VIDIOC_S_MODULATOR _IOW ('V', 55, struct_v4l2_modulator) */ +/* VIDIOC_G_FREQUENCY _IOWR('V', 56, struct v4l2_frequency) */ +/* VIDIOC_S_FREQUENCY _IOW ('V', 57, struct v4l2_frequency) */ +VIDIOC_CROPCAP _IOWR('V', 58, struct v4l2_cropcap) +VIDIOC_G_CROP _IOWR('V', 59, struct v4l2_crop) +VIDIOC_S_CROP _IOW ('V', 60, struct v4l2_crop) +/* VIDIOC_G_JPEGCOMP _IOR ('V', 61, struct v4l2_jpegcompression) */ +/* VIDIOC_S_JPEGCOMP _IOW ('V', 62, struct v4l2_jpegcompression) */ +/* VIDIOC_QUERYSTD _IOR ('V', 63, uint64_t) */ /* v4l2_std_id */ +VIDIOC_TRY_FMT _IOWR('V', 64, struct_v4l2_format) +/* VIDIOC_ENUMAUDIO _IOWR('V', 65, struct v4l2_audio) */ +/* VIDIOC_ENUMAUDOUT _IOWR('V', 66, struct v4l2_audioout) */ +/* VIDIOC_G_PRIORITY _IOR ('V', 67, uint32_t) */ /* enum v4l2_priority */ +/* VIDIOC_S_PRIORITY _IOW ('V', 68, uint32_t) */ /* enum v4l2_priority */ +/* VIDIOC_G_SLICED_VBI_CAP _IOWR('V', 69, struct_v4l2_sliced_vbi_cap) - added in v2.6.16.28-rc1~3732 */ +/* VIDIOC_LOG_STATUS _IO ('V', 70) - added in v2.6.16.28-rc1~2961 */ +VIDIOC_G_EXT_CTRLS _IOWR('V', 71, struct_v4l2_ext_controls) /* added in v2.6.18-rc1~862^2~18 */ +VIDIOC_S_EXT_CTRLS _IOWR('V', 72, struct_v4l2_ext_controls) /* added in v2.6.18-rc1~862^2~18 */ +VIDIOC_TRY_EXT_CTRLS _IOWR('V', 73, struct_v4l2_ext_controls) /* added in v2.6.18-rc1~862^2~18 */ +VIDIOC_ENUM_FRAMESIZES _IOWR('V', 74, struct_v4l2_frmsizeenum) /* added in v2.6.19-rc1~183 */ +VIDIOC_ENUM_FRAMEINTERVALS _IOWR('V', 75, struct_v4l2_frmivalenum) /* added in v2.6.19-rc1~183 */ +/* VIDIOC_G_ENC_INDEX _IOR ('V', 76, struct v4l2_enc_idx) - added in v2.6.21-rc3~150^2~2*/ +/* VIDIOC_ENCODER_CMD _IOWR('V', 77, struct v4l2_encoder_cmd) - added in v2.6.21-rc3~150^2~1 */ +/* VIDIOC_TRY_ENCODER_CMD _IOWR('V', 78, struct v4l2_encoder_cmd) - added in v2.6.21-rc3~150^2~1 */ +/* VIDIOC_DBG_S_REGISTER _IOW ('V', 79, struct v4l2_dbg_register) - added in v2.6.29-rc1~523^2~24 */ +/* VIDIOC_DBG_G_REGISTER _IOWR('V', 80, struct v4l2_dbg_register) - added in v2.6.29-rc1~523^2~24 */ +/* VIDIOC_G_CHIP_IDENT_OLD _IOWR('V', 81, struct v4l2_chip_ident_old) - added in v2.6.22-rc1~1118^2~172, renamed in v2.6.29-rc1~523^2~24, removed in v2.6.30-rc1~621^2~278 */ +/* VIDIOC_DBG_G_CHIP_IDENT _IOWR('V', 81, struct v4l2_dbg_chip_ident) - added in v2.6.29-rc1~523^2~24, removed in v3.11-rc1~17^2~99 */ +/* VIDIOC_S_HW_FREQ_SEEK _IOW ('V', 82, struct v4l2_hw_freq_seek) - added in v2.6.27-rc1~966^2~258 */ +/* VIDIOC_ENUM_DV_PRESETS _IOWR('V', 83, struct v4l2_dv_enum_preset) - added in v2.6.33-rc1~70^2~91, removed in v3.10-rc1~136^2~239 */ +/* VIDIOC_S_DV_PRESET _IOWR('V', 84, struct v4l2_dv_preset) - added in v2.6.33-rc1~70^2~91, removed in v3.10-rc1~136^2~239 */ +/* VIDIOC_G_DV_PRESET _IOWR('V', 85, struct v4l2_dv_preset) - added in v2.6.33-rc1~70^2~91, removed in v3.10-rc1~136^2~239 */ +/* VIDIOC_QUERY_DV_PRESET _IOR('V', 86, struct v4l2_dv_preset) - added in v2.6.33-rc1~70^2~91, removed in v3.10-rc1~136^2~239 */ +/* VIDIOC_S_DV_TIMINGS _IOWR('V', 87, struct v4l2_dv_timings) - added in v2.6.33-rc1~70^2~91 */ +/* VIDIOC_G_DV_TIMINGS _IOWR('V', 88, struct v4l2_dv_timings) - added in v2.6.33-rc1~70^2~91 */ +VIDIOC_DQEVENT _IOR ('V', 89, kernel_v4l2_event_t) /* added in v2.6.35-rc1~480^2~121 */ +/* VIDIOC_SUBSCRIBE_EVENT _IOW ('V', 90, struct v4l2_event_subscription) - added in v2.6.35-rc1~480^2~121 */ +/* VIDIOC_UNSUBSCRIBE_EVENT _IOW ('V', 91, struct v4l2_event_subscription) - added in v2.6.35-rc1~480^2~121 */ +VIDIOC_CREATE_BUFS _IOWR('V', 92, struct_v4l2_create_buffers) /* added in v3.2-rc1~63^2~55 */ +VIDIOC_PREPARE_BUF _IOWR('V', 93, kernel_v4l2_buffer_t) /* added in v3.2-rc1~63^2~55 */ +/* VIDIOC_G_SELECTION _IOWR('V', 94, struct v4l2_selection) - added in v3.3-rc1~48^2~18 */ +/* VIDIOC_S_SELECTION _IOWR('V', 95, struct v4l2_selection) - added in v3.3-rc1~48^2~18 */ +/* VIDIOC_DECODER_CMD _IOWR('V', 96, struct v4l2_decoder_cmd) - added in v3.4-rc1~110^2^2~239 */ +/* VIDIOC_TRY_DECODER_CMD _IOWR('V', 97, struct v4l2_decoder_cmd) - added in v3.4-rc1~110^2^2~239 */ +/* VIDIOC_ENUM_DV_TIMINGS _IOWR('V', 98, struct v4l2_enum_dv_timings) - added in v3.5-rc1~104^2~100, changed in v3.5-rc5~26^2~41 */ +/* VIDIOC_QUERY_DV_TIMINGS _IOR ('V', 99, struct v4l2_dv_timings) - added in v3.5-rc1~104^2~100, changed in v3.5-rc5~26^2~41 */ +/* VIDIOC_DV_TIMINGS_CAP _IOWR('V', 100, struct v4l2_dv_timings_cap) - added in v3.5-rc1~104^2~100, changed in v3.5-rc5~26^2~41 */ +/* VIDIOC_ENUM_FREQ_BANDS _IOWR('V', 101, struct v4l2_frequency_band) - added in v3.6-rc1~28^2~46 */ +/* VIDIOC_DBG_G_CHIP_INFO _IOWR('V', 102, struct v4l2_dbg_chip_info) - added in v3.10-rc1~136^2~200 as VIDIOC_DBG_G_CHIP_NAME, renamed in v3.10-rc1~136^2~42 */ +/* VIDIOC_QUERY_EXT_CTRL _IOWR('V', 103, struct v4l2_query_ext_ctrl) - added in v3.17-rc1~112^2~362 */ + +/* subdev ioctls */ +/* VIDIOC_SUBDEV_ENUM_MBUS_CODE _IOWR('V', 2, struct v4l2_subdev_mbus_code_enum) */ +/* VIDIOC_SUBDEV_G_FMT _IOWR('V', 4, struct v4l2_subdev_format) */ +/* VIDIOC_SUBDEV_S_FMT _IOWR('V', 5, struct v4l2_subdev_format) */ +/* VIDIOC_SUBDEV_G_FRAME_INTERVAL _IOWR('V', 21, struct v4l2_subdev_frame_interval) - added in v2.6.39-rc1~86^2~163 */ +/* VIDIOC_SUBDEV_S_FRAME_INTERVAL _IOWR('V', 22, struct v4l2_subdev_frame_interval) - added in v2.6.39-rc1~86^2~163 */ +/* VIDIOC_SUBDEV_G_CROP _IOWR('V', 59, struct v4l2_subdev_crop) - added in v2.6.39-rc1~86^2~162 */ +/* VIDIOC_SUBDEV_S_CROP _IOWR('V', 60, struct v4l2_subdev_crop) - added in v2.6.39-rc1~86^2~162 */ +/* VIDIOC_SUBDEV_G_SELECTION _IOWR('V', 61, struct v4l2_subdev_selection) - added in v3.5-rc1~104^2~443 */ +/* VIDIOC_SUBDEV_S_SELECTION _IOWR('V', 62, struct v4l2_subdev_selection) - added in v3.5-rc1~104^2~443 */ +/* VIDIOC_SUBDEV_ENUM_FRAME_SIZE _IOWR('V', 74, struct v4l2_subdev_frame_size_enum) */ +/* VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL _IOWR('V', 75, struct v4l2_subdev_frame_interval_enum) - added in v2.6.39-rc1~86^2~163 */ diff --git a/xlat/v4l2_memories.h b/xlat/v4l2_memories.h index e13190d9..62357ba2 100644 --- a/xlat/v4l2_memories.h +++ b/xlat/v4l2_memories.h @@ -3,6 +3,34 @@ #include "gcc_compat.h" #include "static_assert.h" +#if defined(V4L2_MEMORY_MMAP) || (defined(HAVE_DECL_V4L2_MEMORY_MMAP) && HAVE_DECL_V4L2_MEMORY_MMAP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_MEMORY_MMAP) == (1), "V4L2_MEMORY_MMAP != 1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_MEMORY_MMAP 1 +#endif +#if defined(V4L2_MEMORY_USERPTR) || (defined(HAVE_DECL_V4L2_MEMORY_USERPTR) && HAVE_DECL_V4L2_MEMORY_USERPTR) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_MEMORY_USERPTR) == (2), "V4L2_MEMORY_USERPTR != 2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_MEMORY_USERPTR 2 +#endif +#if defined(V4L2_MEMORY_OVERLAY) || (defined(HAVE_DECL_V4L2_MEMORY_OVERLAY) && HAVE_DECL_V4L2_MEMORY_OVERLAY) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_MEMORY_OVERLAY) == (3), "V4L2_MEMORY_OVERLAY != 3"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_MEMORY_OVERLAY 3 +#endif +#if defined(V4L2_MEMORY_DMABUF) || (defined(HAVE_DECL_V4L2_MEMORY_DMABUF) && HAVE_DECL_V4L2_MEMORY_DMABUF) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_MEMORY_DMABUF) == (4), "V4L2_MEMORY_DMABUF != 4"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_MEMORY_DMABUF 4 +#endif #ifndef XLAT_MACROS_ONLY @@ -12,25 +40,65 @@ extern const struct xlat v4l2_memories[]; # else +static const struct xlat_data v4l2_memories_xdata[] = { + [V4L2_MEMORY_MMAP] = XLAT(V4L2_MEMORY_MMAP), + #define XLAT_VAL_0 ((unsigned) (V4L2_MEMORY_MMAP)) + #define XLAT_STR_0 STRINGIFY(V4L2_MEMORY_MMAP) + [V4L2_MEMORY_USERPTR] = XLAT(V4L2_MEMORY_USERPTR), + #define XLAT_VAL_1 ((unsigned) (V4L2_MEMORY_USERPTR)) + #define XLAT_STR_1 STRINGIFY(V4L2_MEMORY_USERPTR) + [V4L2_MEMORY_OVERLAY] = XLAT(V4L2_MEMORY_OVERLAY), + #define XLAT_VAL_2 ((unsigned) (V4L2_MEMORY_OVERLAY)) + #define XLAT_STR_2 STRINGIFY(V4L2_MEMORY_OVERLAY) + [V4L2_MEMORY_DMABUF] = XLAT(V4L2_MEMORY_DMABUF), + #define XLAT_VAL_3 ((unsigned) (V4L2_MEMORY_DMABUF)) + #define XLAT_STR_3 STRINGIFY(V4L2_MEMORY_DMABUF) +}; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static # endif -const struct xlat v4l2_memories[] = { -#if defined(V4L2_MEMORY_MMAP) || (defined(HAVE_DECL_V4L2_MEMORY_MMAP) && HAVE_DECL_V4L2_MEMORY_MMAP) - XLAT(V4L2_MEMORY_MMAP), -#endif -#if defined(V4L2_MEMORY_USERPTR) || (defined(HAVE_DECL_V4L2_MEMORY_USERPTR) && HAVE_DECL_V4L2_MEMORY_USERPTR) - XLAT(V4L2_MEMORY_USERPTR), -#endif -#if defined(V4L2_MEMORY_OVERLAY) || (defined(HAVE_DECL_V4L2_MEMORY_OVERLAY) && HAVE_DECL_V4L2_MEMORY_OVERLAY) - XLAT(V4L2_MEMORY_OVERLAY), -#endif -#if defined(V4L2_MEMORY_DMABUF) || (defined(HAVE_DECL_V4L2_MEMORY_DMABUF) && HAVE_DECL_V4L2_MEMORY_DMABUF) - XLAT(V4L2_MEMORY_DMABUF), -#endif - XLAT_END -}; +const struct xlat v4l2_memories[1] = { { + .data = v4l2_memories_xdata, + .size = ARRAY_SIZE(v4l2_memories_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/v4l2_memories.in b/xlat/v4l2_memories.in index 2acd47b8..6e9df190 100644 --- a/xlat/v4l2_memories.in +++ b/xlat/v4l2_memories.in @@ -1,4 +1,10 @@ -V4L2_MEMORY_MMAP -V4L2_MEMORY_USERPTR -V4L2_MEMORY_OVERLAY -V4L2_MEMORY_DMABUF +#value_indexed +#enum +#include +#include +#include +#include +V4L2_MEMORY_MMAP 1 +V4L2_MEMORY_USERPTR 2 +V4L2_MEMORY_OVERLAY 3 +V4L2_MEMORY_DMABUF 4 diff --git a/xlat/v4l2_memories.m4 b/xlat/v4l2_memories.m4 new file mode 100644 index 00000000..067a347a --- /dev/null +++ b/xlat/v4l2_memories.m4 @@ -0,0 +1,13 @@ +dnl Generated by ./xlat/gen.sh from ./xlat/v4l2_memories.in; do not edit. +AC_DEFUN([st_CHECK_ENUMS_v4l2_memories],[ +AC_CHECK_DECLS(m4_normalize([ +V4L2_MEMORY_MMAP, +V4L2_MEMORY_USERPTR, +V4L2_MEMORY_OVERLAY, +V4L2_MEMORY_DMABUF +]),,, [ +#include +#include +#include +#include +])])]) diff --git a/xlat/v4l2_pix_fmts.h b/xlat/v4l2_pix_fmts.h index 7d5a1876..f1dc9fe7 100644 --- a/xlat/v4l2_pix_fmts.h +++ b/xlat/v4l2_pix_fmts.h @@ -24,6 +24,13 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define V4L2_PIX_FMT_Y4 v4l2_fourcc('Y', '0', '4', ' ') #endif +#if defined(V4L2_PIX_FMT_Y14) || (defined(HAVE_DECL_V4L2_PIX_FMT_Y14) && HAVE_DECL_V4L2_PIX_FMT_Y14) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_PIX_FMT_Y14) == (v4l2_fourcc('Y', '1', '4', ' ')), "V4L2_PIX_FMT_Y14 != v4l2_fourcc('Y', '1', '4', ' ')"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_PIX_FMT_Y14 v4l2_fourcc('Y', '1', '4', ' ') +#endif #if defined(V4L2_PIX_FMT_Y6) || (defined(HAVE_DECL_V4L2_PIX_FMT_Y6) && HAVE_DECL_V4L2_PIX_FMT_Y6) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((V4L2_PIX_FMT_Y6) == (v4l2_fourcc('Y', '0', '6', ' ')), "V4L2_PIX_FMT_Y6 != v4l2_fourcc('Y', '0', '6', ' ')"); @@ -276,6 +283,31 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A', '1', '2') #endif +#ifndef STRACE_WORKAROUND_FOR_V4L2_PIX_FMT_BGRA444 +# define STRACE_WORKAROUND_FOR_V4L2_PIX_FMT_BGRA444 +# undef V4L2_PIX_FMT_BGRA444 +#endif +#if defined(V4L2_PIX_FMT_BGRA444) || (defined(HAVE_DECL_V4L2_PIX_FMT_BGRA444) && HAVE_DECL_V4L2_PIX_FMT_BGRA444) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_PIX_FMT_BGRA444) == (v4l2_fourcc('G', 'A', '1', '2')), "V4L2_PIX_FMT_BGRA444 != v4l2_fourcc('G', 'A', '1', '2')"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_PIX_FMT_BGRA444 v4l2_fourcc('G', 'A', '1', '2') +#endif +#if defined(V4L2_PIX_FMT_RGBA444) || (defined(HAVE_DECL_V4L2_PIX_FMT_RGBA444) && HAVE_DECL_V4L2_PIX_FMT_RGBA444) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_PIX_FMT_RGBA444) == (v4l2_fourcc('R', 'A', '1', '2')), "V4L2_PIX_FMT_RGBA444 != v4l2_fourcc('R', 'A', '1', '2')"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_PIX_FMT_RGBA444 v4l2_fourcc('R', 'A', '1', '2') +#endif +#if defined(V4L2_PIX_FMT_ABGR444) || (defined(HAVE_DECL_V4L2_PIX_FMT_ABGR444) && HAVE_DECL_V4L2_PIX_FMT_ABGR444) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_PIX_FMT_ABGR444) == (v4l2_fourcc('A', 'B', '1', '2')), "V4L2_PIX_FMT_ABGR444 != v4l2_fourcc('A', 'B', '1', '2')"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_PIX_FMT_ABGR444 v4l2_fourcc('A', 'B', '1', '2') +#endif #if defined(V4L2_PIX_FMT_SGBRG12) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGBRG12) && HAVE_DECL_V4L2_PIX_FMT_SGBRG12) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((V4L2_PIX_FMT_SGBRG12) == (v4l2_fourcc('G', 'B', '1', '2')), "V4L2_PIX_FMT_SGBRG12 != v4l2_fourcc('G', 'B', '1', '2')"); @@ -283,6 +315,13 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define V4L2_PIX_FMT_SGBRG12 v4l2_fourcc('G', 'B', '1', '2') #endif +#if defined(V4L2_PIX_FMT_XBGR444) || (defined(HAVE_DECL_V4L2_PIX_FMT_XBGR444) && HAVE_DECL_V4L2_PIX_FMT_XBGR444) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_PIX_FMT_XBGR444) == (v4l2_fourcc('X', 'B', '1', '2')), "V4L2_PIX_FMT_XBGR444 != v4l2_fourcc('X', 'B', '1', '2')"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_PIX_FMT_XBGR444 v4l2_fourcc('X', 'B', '1', '2') +#endif #if defined(V4L2_PIX_FMT_SBGGR12) || (defined(HAVE_DECL_V4L2_PIX_FMT_SBGGR12) && HAVE_DECL_V4L2_PIX_FMT_SBGGR12) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((V4L2_PIX_FMT_SBGGR12) == (v4l2_fourcc('B', 'G', '1', '2')), "V4L2_PIX_FMT_SBGGR12 != v4l2_fourcc('B', 'G', '1', '2')"); @@ -353,13 +392,6 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define V4L2_PIX_FMT_SUNXI_TILED_NV12 v4l2_fourcc('S', 'T', '1', '2') #endif -#if defined(V4L2_PIX_FMT_CNF4) || (defined(HAVE_DECL_V4L2_PIX_FMT_CNF4) && HAVE_DECL_V4L2_PIX_FMT_CNF4) -DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((V4L2_PIX_FMT_CNF4) == (v4l2_fourcc('C', 'N', 'F', '4')), "V4L2_PIX_FMT_CNF4 != v4l2_fourcc('C', 'N', 'F', '4')"); -DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE -#else -# define V4L2_PIX_FMT_CNF4 v4l2_fourcc('C', 'N', 'F', '4') -#endif #if defined(V4L2_PIX_FMT_YUV420) || (defined(HAVE_DECL_V4L2_PIX_FMT_YUV420) && HAVE_DECL_V4L2_PIX_FMT_YUV420) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((V4L2_PIX_FMT_YUV420) == (v4l2_fourcc('Y', 'U', '1', '2')), "V4L2_PIX_FMT_YUV420 != v4l2_fourcc('Y', 'U', '1', '2')"); @@ -381,6 +413,20 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y', 'V', '1', '2') #endif +#if defined(V4L2_PIX_FMT_BGRX444) || (defined(HAVE_DECL_V4L2_PIX_FMT_BGRX444) && HAVE_DECL_V4L2_PIX_FMT_BGRX444) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_PIX_FMT_BGRX444) == (v4l2_fourcc('B', 'X', '1', '2')), "V4L2_PIX_FMT_BGRX444 != v4l2_fourcc('B', 'X', '1', '2')"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_PIX_FMT_BGRX444 v4l2_fourcc('B', 'X', '1', '2') +#endif +#if defined(V4L2_PIX_FMT_RGBX444) || (defined(HAVE_DECL_V4L2_PIX_FMT_RGBX444) && HAVE_DECL_V4L2_PIX_FMT_RGBX444) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_PIX_FMT_RGBX444) == (v4l2_fourcc('R', 'X', '1', '2')), "V4L2_PIX_FMT_RGBX444 != v4l2_fourcc('R', 'X', '1', '2')"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_PIX_FMT_RGBX444 v4l2_fourcc('R', 'X', '1', '2') +#endif #if defined(V4L2_PIX_FMT_YVU444M) || (defined(HAVE_DECL_V4L2_PIX_FMT_YVU444M) && HAVE_DECL_V4L2_PIX_FMT_YVU444M) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((V4L2_PIX_FMT_YVU444M) == (v4l2_fourcc('Y', 'M', '4', '2')), "V4L2_PIX_FMT_YVU444M != v4l2_fourcc('Y', 'M', '4', '2')"); @@ -444,6 +490,34 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define V4L2_PIX_FMT_HSV24 v4l2_fourcc('H', 'S', 'V', '3') #endif +#if defined(V4L2_PIX_FMT_SGBRG14) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGBRG14) && HAVE_DECL_V4L2_PIX_FMT_SGBRG14) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_PIX_FMT_SGBRG14) == (v4l2_fourcc('G', 'B', '1', '4')), "V4L2_PIX_FMT_SGBRG14 != v4l2_fourcc('G', 'B', '1', '4')"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_PIX_FMT_SGBRG14 v4l2_fourcc('G', 'B', '1', '4') +#endif +#if defined(V4L2_PIX_FMT_SBGGR14) || (defined(HAVE_DECL_V4L2_PIX_FMT_SBGGR14) && HAVE_DECL_V4L2_PIX_FMT_SBGGR14) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_PIX_FMT_SBGGR14) == (v4l2_fourcc('B', 'G', '1', '4')), "V4L2_PIX_FMT_SBGGR14 != v4l2_fourcc('B', 'G', '1', '4')"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_PIX_FMT_SBGGR14 v4l2_fourcc('B', 'G', '1', '4') +#endif +#if defined(V4L2_PIX_FMT_SRGGB14) || (defined(HAVE_DECL_V4L2_PIX_FMT_SRGGB14) && HAVE_DECL_V4L2_PIX_FMT_SRGGB14) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_PIX_FMT_SRGGB14) == (v4l2_fourcc('R', 'G', '1', '4')), "V4L2_PIX_FMT_SRGGB14 != v4l2_fourcc('R', 'G', '1', '4')"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_PIX_FMT_SRGGB14 v4l2_fourcc('R', 'G', '1', '4') +#endif +#if defined(V4L2_PIX_FMT_SGRBG14) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGRBG14) && HAVE_DECL_V4L2_PIX_FMT_SGRBG14) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_PIX_FMT_SGRBG14) == (v4l2_fourcc('G', 'R', '1', '4')), "V4L2_PIX_FMT_SGRBG14 != v4l2_fourcc('G', 'R', '1', '4')"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_PIX_FMT_SGRBG14 v4l2_fourcc('G', 'R', '1', '4') +#endif #if defined(V4L2_PIX_FMT_ARGB32) || (defined(HAVE_DECL_V4L2_PIX_FMT_ARGB32) && HAVE_DECL_V4L2_PIX_FMT_ARGB32) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((V4L2_PIX_FMT_ARGB32) == (v4l2_fourcc('B', 'A', '2', '4')), "V4L2_PIX_FMT_ARGB32 != v4l2_fourcc('B', 'A', '2', '4')"); @@ -451,6 +525,27 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define V4L2_PIX_FMT_ARGB32 v4l2_fourcc('B', 'A', '2', '4') #endif +#if defined(V4L2_PIX_FMT_BGRA32) || (defined(HAVE_DECL_V4L2_PIX_FMT_BGRA32) && HAVE_DECL_V4L2_PIX_FMT_BGRA32) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_PIX_FMT_BGRA32) == (v4l2_fourcc('R', 'A', '2', '4')), "V4L2_PIX_FMT_BGRA32 != v4l2_fourcc('R', 'A', '2', '4')"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_PIX_FMT_BGRA32 v4l2_fourcc('R', 'A', '2', '4') +#endif +#if defined(V4L2_PIX_FMT_RGBA32) || (defined(HAVE_DECL_V4L2_PIX_FMT_RGBA32) && HAVE_DECL_V4L2_PIX_FMT_RGBA32) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_PIX_FMT_RGBA32) == (v4l2_fourcc('A', 'B', '2', '4')), "V4L2_PIX_FMT_RGBA32 != v4l2_fourcc('A', 'B', '2', '4')"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_PIX_FMT_RGBA32 v4l2_fourcc('A', 'B', '2', '4') +#endif +#if defined(V4L2_PIX_FMT_RGBX32) || (defined(HAVE_DECL_V4L2_PIX_FMT_RGBX32) && HAVE_DECL_V4L2_PIX_FMT_RGBX32) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_PIX_FMT_RGBX32) == (v4l2_fourcc('X', 'B', '2', '4')), "V4L2_PIX_FMT_RGBX32 != v4l2_fourcc('X', 'B', '2', '4')"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_PIX_FMT_RGBX32 v4l2_fourcc('X', 'B', '2', '4') +#endif #if defined(V4L2_PIX_FMT_HI240) || (defined(HAVE_DECL_V4L2_PIX_FMT_HI240) && HAVE_DECL_V4L2_PIX_FMT_HI240) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((V4L2_PIX_FMT_HI240) == (v4l2_fourcc('H', 'I', '2', '4')), "V4L2_PIX_FMT_HI240 != v4l2_fourcc('H', 'I', '2', '4')"); @@ -493,6 +588,13 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define V4L2_PIX_FMT_XRGB32 v4l2_fourcc('B', 'X', '2', '4') #endif +#if defined(V4L2_PIX_FMT_BGRX32) || (defined(HAVE_DECL_V4L2_PIX_FMT_BGRX32) && HAVE_DECL_V4L2_PIX_FMT_BGRX32) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_PIX_FMT_BGRX32) == (v4l2_fourcc('R', 'X', '2', '4')), "V4L2_PIX_FMT_BGRX32 != v4l2_fourcc('R', 'X', '2', '4')"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_PIX_FMT_BGRX32 v4l2_fourcc('R', 'X', '2', '4') +#endif #if defined(V4L2_PIX_FMT_RGB444) || (defined(HAVE_DECL_V4L2_PIX_FMT_RGB444) && HAVE_DECL_V4L2_PIX_FMT_RGB444) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((V4L2_PIX_FMT_RGB444) == (v4l2_fourcc('R', '4', '4', '4')), "V4L2_PIX_FMT_RGB444 != v4l2_fourcc('R', '4', '4', '4')"); @@ -528,6 +630,13 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define V4L2_PIX_FMT_RGB32 v4l2_fourcc('R', 'G', 'B', '4') #endif +#if defined(V4L2_PIX_FMT_CNF4) || (defined(HAVE_DECL_V4L2_PIX_FMT_CNF4) && HAVE_DECL_V4L2_PIX_FMT_CNF4) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_PIX_FMT_CNF4) == (v4l2_fourcc('C', 'N', 'F', '4')), "V4L2_PIX_FMT_CNF4 != v4l2_fourcc('C', 'N', 'F', '4')"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_PIX_FMT_CNF4 v4l2_fourcc('C', 'N', 'F', '4') +#endif #if defined(V4L2_PIX_FMT_MPEG4) || (defined(HAVE_DECL_V4L2_PIX_FMT_MPEG4) && HAVE_DECL_V4L2_PIX_FMT_MPEG4) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((V4L2_PIX_FMT_MPEG4) == (v4l2_fourcc('M', 'P', 'G', '4')), "V4L2_PIX_FMT_MPEG4 != v4l2_fourcc('M', 'P', 'G', '4')"); @@ -556,40 +665,40 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define V4L2_PIX_FMT_YUV32 v4l2_fourcc('Y', 'U', 'V', '4') #endif -#if defined(V4L2_PIX_FMT_AYUV32) || (defined(HAVE_DECL_V4L2_PIX_FMT_AYUV32) && HAVE_DECL_V4L2_PIX_FMT_AYUV32) +#if defined(V4L2_PIX_FMT_SPCA505) || (defined(HAVE_DECL_V4L2_PIX_FMT_SPCA505) && HAVE_DECL_V4L2_PIX_FMT_SPCA505) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((V4L2_PIX_FMT_AYUV32) == (v4l2_fourcc('A', 'Y', 'U', 'V')), "V4L2_PIX_FMT_AYUV32 != v4l2_fourcc('A', 'Y', 'U', 'V')"); +static_assert((V4L2_PIX_FMT_SPCA505) == (v4l2_fourcc('S', '5', '0', '5')), "V4L2_PIX_FMT_SPCA505 != v4l2_fourcc('S', '5', '0', '5')"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define V4L2_PIX_FMT_AYUV32 v4l2_fourcc('A', 'Y', 'U', 'V') +# define V4L2_PIX_FMT_SPCA505 v4l2_fourcc('S', '5', '0', '5') #endif -#if defined(V4L2_PIX_FMT_XYUV32) || (defined(HAVE_DECL_V4L2_PIX_FMT_XYUV32) && HAVE_DECL_V4L2_PIX_FMT_XYUV32) +#if defined(V4L2_PIX_FMT_BGRA555) || (defined(HAVE_DECL_V4L2_PIX_FMT_BGRA555) && HAVE_DECL_V4L2_PIX_FMT_BGRA555) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((V4L2_PIX_FMT_XYUV32) == (v4l2_fourcc('X', 'Y', 'U', 'V')), "V4L2_PIX_FMT_XYUV32 != v4l2_fourcc('X', 'Y', 'U', 'V')"); +static_assert((V4L2_PIX_FMT_BGRA555) == (v4l2_fourcc('B', 'A', '1', '5')), "V4L2_PIX_FMT_BGRA555 != v4l2_fourcc('B', 'A', '1', '5')"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define V4L2_PIX_FMT_XYUV32 v4l2_fourcc('X', 'Y', 'U', 'V') +# define V4L2_PIX_FMT_BGRA555 v4l2_fourcc('B', 'A', '1', '5') #endif -#if defined(V4L2_PIX_FMT_VUYA32) || (defined(HAVE_DECL_V4L2_PIX_FMT_VUYA32) && HAVE_DECL_V4L2_PIX_FMT_VUYA32) +#if defined(V4L2_PIX_FMT_RGBA555) || (defined(HAVE_DECL_V4L2_PIX_FMT_RGBA555) && HAVE_DECL_V4L2_PIX_FMT_RGBA555) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((V4L2_PIX_FMT_VUYA32) == (v4l2_fourcc('V', 'U', 'Y', 'A')), "V4L2_PIX_FMT_VUYA32 != v4l2_fourcc('V', 'U', 'Y', 'A')"); +static_assert((V4L2_PIX_FMT_RGBA555) == (v4l2_fourcc('R', 'A', '1', '5')), "V4L2_PIX_FMT_RGBA555 != v4l2_fourcc('R', 'A', '1', '5')"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define V4L2_PIX_FMT_VUYA32 v4l2_fourcc('V', 'U', 'Y', 'A') +# define V4L2_PIX_FMT_RGBA555 v4l2_fourcc('R', 'A', '1', '5') #endif -#if defined(V4L2_PIX_FMT_VUYX32) || (defined(HAVE_DECL_V4L2_PIX_FMT_VUYX32) && HAVE_DECL_V4L2_PIX_FMT_VUYX32) +#if defined(V4L2_PIX_FMT_ABGR555) || (defined(HAVE_DECL_V4L2_PIX_FMT_ABGR555) && HAVE_DECL_V4L2_PIX_FMT_ABGR555) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((V4L2_PIX_FMT_VUYX32) == (v4l2_fourcc('V', 'U', 'Y', 'X')), "V4L2_PIX_FMT_VUYX32 != v4l2_fourcc('V', 'U', 'Y', 'X')"); +static_assert((V4L2_PIX_FMT_ABGR555) == (v4l2_fourcc('A', 'B', '1', '5')), "V4L2_PIX_FMT_ABGR555 != v4l2_fourcc('A', 'B', '1', '5')"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define V4L2_PIX_FMT_VUYX32 v4l2_fourcc('V', 'U', 'Y', 'X') +# define V4L2_PIX_FMT_ABGR555 v4l2_fourcc('A', 'B', '1', '5') #endif -#if defined(V4L2_PIX_FMT_SPCA505) || (defined(HAVE_DECL_V4L2_PIX_FMT_SPCA505) && HAVE_DECL_V4L2_PIX_FMT_SPCA505) +#if defined(V4L2_PIX_FMT_XBGR555) || (defined(HAVE_DECL_V4L2_PIX_FMT_XBGR555) && HAVE_DECL_V4L2_PIX_FMT_XBGR555) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((V4L2_PIX_FMT_SPCA505) == (v4l2_fourcc('S', '5', '0', '5')), "V4L2_PIX_FMT_SPCA505 != v4l2_fourcc('S', '5', '0', '5')"); +static_assert((V4L2_PIX_FMT_XBGR555) == (v4l2_fourcc('X', 'B', '1', '5')), "V4L2_PIX_FMT_XBGR555 != v4l2_fourcc('X', 'B', '1', '5')"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define V4L2_PIX_FMT_SPCA505 v4l2_fourcc('S', '5', '0', '5') +# define V4L2_PIX_FMT_XBGR555 v4l2_fourcc('X', 'B', '1', '5') #endif #if defined(V4L2_PIX_FMT_ARGB555) || (defined(HAVE_DECL_V4L2_PIX_FMT_ARGB555) && HAVE_DECL_V4L2_PIX_FMT_ARGB555) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE @@ -605,6 +714,20 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define V4L2_PIX_FMT_XRGB555 v4l2_fourcc('X', 'R', '1', '5') #endif +#if defined(V4L2_PIX_FMT_BGRX555) || (defined(HAVE_DECL_V4L2_PIX_FMT_BGRX555) && HAVE_DECL_V4L2_PIX_FMT_BGRX555) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_PIX_FMT_BGRX555) == (v4l2_fourcc('B', 'X', '1', '5')), "V4L2_PIX_FMT_BGRX555 != v4l2_fourcc('B', 'X', '1', '5')"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_PIX_FMT_BGRX555 v4l2_fourcc('B', 'X', '1', '5') +#endif +#if defined(V4L2_PIX_FMT_RGBX555) || (defined(HAVE_DECL_V4L2_PIX_FMT_RGBX555) && HAVE_DECL_V4L2_PIX_FMT_RGBX555) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_PIX_FMT_RGBX555) == (v4l2_fourcc('R', 'X', '1', '5')), "V4L2_PIX_FMT_RGBX555 != v4l2_fourcc('R', 'X', '1', '5')"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_PIX_FMT_RGBX555 v4l2_fourcc('R', 'X', '1', '5') +#endif #if defined(V4L2_PIX_FMT_ET61X251) || (defined(HAVE_DECL_V4L2_PIX_FMT_ET61X251) && HAVE_DECL_V4L2_PIX_FMT_ET61X251) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((V4L2_PIX_FMT_ET61X251) == (v4l2_fourcc('E', '6', '2', '5')), "V4L2_PIX_FMT_ET61X251 != v4l2_fourcc('E', '6', '2', '5')"); @@ -787,6 +910,13 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define V4L2_PIX_FMT_WNVA v4l2_fourcc('W', 'N', 'V', 'A') #endif +#if defined(V4L2_PIX_FMT_VUYA32) || (defined(HAVE_DECL_V4L2_PIX_FMT_VUYA32) && HAVE_DECL_V4L2_PIX_FMT_VUYA32) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_PIX_FMT_VUYA32) == (v4l2_fourcc('V', 'U', 'Y', 'A')), "V4L2_PIX_FMT_VUYA32 != v4l2_fourcc('V', 'U', 'Y', 'A')"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_PIX_FMT_VUYA32 v4l2_fourcc('V', 'U', 'Y', 'A') +#endif #if defined(V4L2_PIX_FMT_Y10BPACK) || (defined(HAVE_DECL_V4L2_PIX_FMT_Y10BPACK) && HAVE_DECL_V4L2_PIX_FMT_Y10BPACK) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((V4L2_PIX_FMT_Y10BPACK) == (v4l2_fourcc('Y', '1', '0', 'B')), "V4L2_PIX_FMT_Y10BPACK != v4l2_fourcc('Y', '1', '0', 'B')"); @@ -864,19 +994,19 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define V4L2_PIX_FMT_SGBRG14P v4l2_fourcc('p', 'G', 'E', 'E') #endif -#if defined(V4L2_PIX_FMT_SGRBG14P) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGRBG14P) && HAVE_DECL_V4L2_PIX_FMT_SGRBG14P) +#if defined(V4L2_PIX_FMT_SRGGB14P) || (defined(HAVE_DECL_V4L2_PIX_FMT_SRGGB14P) && HAVE_DECL_V4L2_PIX_FMT_SRGGB14P) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((V4L2_PIX_FMT_SGRBG14P) == (v4l2_fourcc('p', 'g', 'E', 'E')), "V4L2_PIX_FMT_SGRBG14P != v4l2_fourcc('p', 'g', 'E', 'E')"); +static_assert((V4L2_PIX_FMT_SRGGB14P) == (v4l2_fourcc('p', 'R', 'E', 'E')), "V4L2_PIX_FMT_SRGGB14P != v4l2_fourcc('p', 'R', 'E', 'E')"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define V4L2_PIX_FMT_SGRBG14P v4l2_fourcc('p', 'g', 'E', 'E') +# define V4L2_PIX_FMT_SRGGB14P v4l2_fourcc('p', 'R', 'E', 'E') #endif -#if defined(V4L2_PIX_FMT_SRGGB14P) || (defined(HAVE_DECL_V4L2_PIX_FMT_SRGGB14P) && HAVE_DECL_V4L2_PIX_FMT_SRGGB14P) +#if defined(V4L2_PIX_FMT_SGRBG14P) || (defined(HAVE_DECL_V4L2_PIX_FMT_SGRBG14P) && HAVE_DECL_V4L2_PIX_FMT_SGRBG14P) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE -static_assert((V4L2_PIX_FMT_SRGGB14P) == (v4l2_fourcc('p', 'R', 'E', 'E')), "V4L2_PIX_FMT_SRGGB14P != v4l2_fourcc('p', 'R', 'E', 'E')"); +static_assert((V4L2_PIX_FMT_SGRBG14P) == (v4l2_fourcc('p', 'g', 'E', 'E')), "V4L2_PIX_FMT_SGRBG14P != v4l2_fourcc('p', 'g', 'E', 'E')"); DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else -# define V4L2_PIX_FMT_SRGGB14P v4l2_fourcc('p', 'R', 'E', 'E') +# define V4L2_PIX_FMT_SGRBG14P v4l2_fourcc('p', 'g', 'E', 'E') #endif #if defined(V4L2_PIX_FMT_VC1_ANNEX_G) || (defined(HAVE_DECL_V4L2_PIX_FMT_VC1_ANNEX_G) && HAVE_DECL_V4L2_PIX_FMT_VC1_ANNEX_G) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE @@ -941,6 +1071,13 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define V4L2_PIX_FMT_BGR666 v4l2_fourcc('B', 'G', 'R', 'H') #endif +#if defined(V4L2_PIX_FMT_FWHT_STATELESS) || (defined(HAVE_DECL_V4L2_PIX_FMT_FWHT_STATELESS) && HAVE_DECL_V4L2_PIX_FMT_FWHT_STATELESS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_PIX_FMT_FWHT_STATELESS) == (v4l2_fourcc('S', 'F', 'W', 'H')), "V4L2_PIX_FMT_FWHT_STATELESS != v4l2_fourcc('S', 'F', 'W', 'H')"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_PIX_FMT_FWHT_STATELESS v4l2_fourcc('S', 'F', 'W', 'H') +#endif #if defined(V4L2_PIX_FMT_Y12I) || (defined(HAVE_DECL_V4L2_PIX_FMT_Y12I) && HAVE_DECL_V4L2_PIX_FMT_Y12I) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((V4L2_PIX_FMT_Y12I) == (v4l2_fourcc('Y', '1', '2', 'I')), "V4L2_PIX_FMT_Y12I != v4l2_fourcc('Y', '1', '2', 'I')"); @@ -1081,6 +1218,20 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define V4L2_PIX_FMT_CIT_YYVYUY v4l2_fourcc('C', 'I', 'T', 'V') #endif +#if defined(V4L2_PIX_FMT_AYUV32) || (defined(HAVE_DECL_V4L2_PIX_FMT_AYUV32) && HAVE_DECL_V4L2_PIX_FMT_AYUV32) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_PIX_FMT_AYUV32) == (v4l2_fourcc('A', 'Y', 'U', 'V')), "V4L2_PIX_FMT_AYUV32 != v4l2_fourcc('A', 'Y', 'U', 'V')"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_PIX_FMT_AYUV32 v4l2_fourcc('A', 'Y', 'U', 'V') +#endif +#if defined(V4L2_PIX_FMT_XYUV32) || (defined(HAVE_DECL_V4L2_PIX_FMT_XYUV32) && HAVE_DECL_V4L2_PIX_FMT_XYUV32) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_PIX_FMT_XYUV32) == (v4l2_fourcc('X', 'Y', 'U', 'V')), "V4L2_PIX_FMT_XYUV32 != v4l2_fourcc('X', 'Y', 'U', 'V')"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_PIX_FMT_XYUV32 v4l2_fourcc('X', 'Y', 'U', 'V') +#endif #if defined(V4L2_PIX_FMT_YYUV) || (defined(HAVE_DECL_V4L2_PIX_FMT_YYUV) && HAVE_DECL_V4L2_PIX_FMT_YYUV) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((V4L2_PIX_FMT_YYUV) == (v4l2_fourcc('Y', 'Y', 'U', 'V')), "V4L2_PIX_FMT_YYUV != v4l2_fourcc('Y', 'Y', 'U', 'V')"); @@ -1102,6 +1253,13 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE #else # define V4L2_PIX_FMT_SN9C2028 v4l2_fourcc('S', 'O', 'N', 'X') #endif +#if defined(V4L2_PIX_FMT_VUYX32) || (defined(HAVE_DECL_V4L2_PIX_FMT_VUYX32) && HAVE_DECL_V4L2_PIX_FMT_VUYX32) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_PIX_FMT_VUYX32) == (v4l2_fourcc('V', 'U', 'Y', 'X')), "V4L2_PIX_FMT_VUYX32 != v4l2_fourcc('V', 'U', 'Y', 'X')"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_PIX_FMT_VUYX32 v4l2_fourcc('V', 'U', 'Y', 'X') +#endif #if defined(V4L2_PIX_FMT_GREY) || (defined(HAVE_DECL_V4L2_PIX_FMT_GREY) && HAVE_DECL_V4L2_PIX_FMT_GREY) DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE static_assert((V4L2_PIX_FMT_GREY) == (v4l2_fourcc('G', 'R', 'E', 'Y')), "V4L2_PIX_FMT_GREY != v4l2_fourcc('G', 'R', 'E', 'Y')"); @@ -1181,181 +1339,2109 @@ extern const struct xlat v4l2_pix_fmts[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat v4l2_pix_fmts[] = { - +static const struct xlat_data v4l2_pix_fmts_xdata[] = { XLAT(V4L2_PIX_FMT_Y10), + #define XLAT_VAL_0 ((unsigned) (V4L2_PIX_FMT_Y10)) + #define XLAT_STR_0 STRINGIFY(V4L2_PIX_FMT_Y10) XLAT(V4L2_PIX_FMT_Y12), + #define XLAT_VAL_1 ((unsigned) (V4L2_PIX_FMT_Y12)) + #define XLAT_STR_1 STRINGIFY(V4L2_PIX_FMT_Y12) XLAT(V4L2_PIX_FMT_Y4), + #define XLAT_VAL_2 ((unsigned) (V4L2_PIX_FMT_Y4)) + #define XLAT_STR_2 STRINGIFY(V4L2_PIX_FMT_Y4) + XLAT(V4L2_PIX_FMT_Y14), + #define XLAT_VAL_3 ((unsigned) (V4L2_PIX_FMT_Y14)) + #define XLAT_STR_3 STRINGIFY(V4L2_PIX_FMT_Y14) XLAT(V4L2_PIX_FMT_Y6), + #define XLAT_VAL_4 ((unsigned) (V4L2_PIX_FMT_Y6)) + #define XLAT_STR_4 STRINGIFY(V4L2_PIX_FMT_Y6) XLAT(V4L2_PIX_FMT_Y16), + #define XLAT_VAL_5 ((unsigned) (V4L2_PIX_FMT_Y16)) + #define XLAT_STR_5 STRINGIFY(V4L2_PIX_FMT_Y16) XLAT(V4L2_PIX_FMT_Z16), + #define XLAT_VAL_6 ((unsigned) (V4L2_PIX_FMT_Z16)) + #define XLAT_STR_6 STRINGIFY(V4L2_PIX_FMT_Z16) XLAT(V4L2_PIX_FMT_UV8), + #define XLAT_VAL_7 ((unsigned) (V4L2_PIX_FMT_UV8)) + #define XLAT_STR_7 STRINGIFY(V4L2_PIX_FMT_UV8) XLAT(V4L2_PIX_FMT_Y8I), + #define XLAT_VAL_8 ((unsigned) (V4L2_PIX_FMT_Y8I)) + #define XLAT_STR_8 STRINGIFY(V4L2_PIX_FMT_Y8I) XLAT(V4L2_PIX_FMT_MR97310A), + #define XLAT_VAL_9 ((unsigned) (V4L2_PIX_FMT_MR97310A)) + #define XLAT_STR_9 STRINGIFY(V4L2_PIX_FMT_MR97310A) XLAT(V4L2_PIX_FMT_SN9C10X), + #define XLAT_VAL_10 ((unsigned) (V4L2_PIX_FMT_SN9C10X)) + #define XLAT_STR_10 STRINGIFY(V4L2_PIX_FMT_SN9C10X) XLAT(V4L2_PIX_FMT_SGRBG10), + #define XLAT_VAL_11 ((unsigned) (V4L2_PIX_FMT_SGRBG10)) + #define XLAT_STR_11 STRINGIFY(V4L2_PIX_FMT_SGRBG10) XLAT(V4L2_PIX_FMT_SGBRG10), + #define XLAT_VAL_12 ((unsigned) (V4L2_PIX_FMT_SGBRG10)) + #define XLAT_STR_12 STRINGIFY(V4L2_PIX_FMT_SGBRG10) XLAT(V4L2_PIX_FMT_SGRBG10DPCM8), + #define XLAT_VAL_13 ((unsigned) (V4L2_PIX_FMT_SGRBG10DPCM8)) + #define XLAT_STR_13 STRINGIFY(V4L2_PIX_FMT_SGRBG10DPCM8) XLAT(V4L2_PIX_FMT_SBGGR10), + #define XLAT_VAL_14 ((unsigned) (V4L2_PIX_FMT_SBGGR10)) + #define XLAT_STR_14 STRINGIFY(V4L2_PIX_FMT_SBGGR10) XLAT(V4L2_PIX_FMT_SRGGB10), + #define XLAT_VAL_15 ((unsigned) (V4L2_PIX_FMT_SRGGB10)) + #define XLAT_STR_15 STRINGIFY(V4L2_PIX_FMT_SRGGB10) XLAT(V4L2_PIX_FMT_M420), + #define XLAT_VAL_16 ((unsigned) (V4L2_PIX_FMT_M420)) + #define XLAT_STR_16 STRINGIFY(V4L2_PIX_FMT_M420) XLAT(V4L2_PIX_FMT_SN9C20X_I420), + #define XLAT_VAL_17 ((unsigned) (V4L2_PIX_FMT_SN9C20X_I420)) + #define XLAT_STR_17 STRINGIFY(V4L2_PIX_FMT_SN9C20X_I420) XLAT(V4L2_PIX_FMT_JL2005BCD), + #define XLAT_VAL_18 ((unsigned) (V4L2_PIX_FMT_JL2005BCD)) + #define XLAT_STR_18 STRINGIFY(V4L2_PIX_FMT_JL2005BCD) XLAT(V4L2_PIX_FMT_TM6000), + #define XLAT_VAL_19 ((unsigned) (V4L2_PIX_FMT_TM6000)) + #define XLAT_STR_19 STRINGIFY(V4L2_PIX_FMT_TM6000) XLAT(V4L2_PIX_FMT_STV0680), + #define XLAT_VAL_20 ((unsigned) (V4L2_PIX_FMT_STV0680)) + #define XLAT_STR_20 STRINGIFY(V4L2_PIX_FMT_STV0680) XLAT(V4L2_PIX_FMT_VP8), + #define XLAT_VAL_21 ((unsigned) (V4L2_PIX_FMT_VP8)) + #define XLAT_STR_21 STRINGIFY(V4L2_PIX_FMT_VP8) XLAT(V4L2_PIX_FMT_VP9), + #define XLAT_VAL_22 ((unsigned) (V4L2_PIX_FMT_VP9)) + #define XLAT_STR_22 STRINGIFY(V4L2_PIX_FMT_VP9) XLAT(V4L2_PIX_FMT_SE401), + #define XLAT_VAL_23 ((unsigned) (V4L2_PIX_FMT_SE401)) + #define XLAT_STR_23 STRINGIFY(V4L2_PIX_FMT_SE401) XLAT(V4L2_PIX_FMT_SPCA501), + #define XLAT_VAL_24 ((unsigned) (V4L2_PIX_FMT_SPCA501)) + #define XLAT_STR_24 STRINGIFY(V4L2_PIX_FMT_SPCA501) XLAT(V4L2_PIX_FMT_OV511), + #define XLAT_VAL_25 ((unsigned) (V4L2_PIX_FMT_OV511)) + #define XLAT_STR_25 STRINGIFY(V4L2_PIX_FMT_OV511) XLAT(V4L2_PIX_FMT_NV21M), + #define XLAT_VAL_26 ((unsigned) (V4L2_PIX_FMT_NV21M)) + #define XLAT_STR_26 STRINGIFY(V4L2_PIX_FMT_NV21M) XLAT(V4L2_PIX_FMT_YVU420M), + #define XLAT_VAL_27 ((unsigned) (V4L2_PIX_FMT_YVU420M)) + #define XLAT_STR_27 STRINGIFY(V4L2_PIX_FMT_YVU420M) XLAT(V4L2_PIX_FMT_MT21C), + #define XLAT_VAL_28 ((unsigned) (V4L2_PIX_FMT_MT21C)) + #define XLAT_STR_28 STRINGIFY(V4L2_PIX_FMT_MT21C) XLAT(V4L2_PIX_FMT_NV21), + #define XLAT_VAL_29 ((unsigned) (V4L2_PIX_FMT_NV21)) + #define XLAT_STR_29 STRINGIFY(V4L2_PIX_FMT_NV21) XLAT(V4L2_PIX_FMT_SPCA561), + #define XLAT_VAL_30 ((unsigned) (V4L2_PIX_FMT_SPCA561)) + #define XLAT_STR_30 STRINGIFY(V4L2_PIX_FMT_SPCA561) XLAT(V4L2_PIX_FMT_NV61M), + #define XLAT_VAL_31 ((unsigned) (V4L2_PIX_FMT_NV61M)) + #define XLAT_STR_31 STRINGIFY(V4L2_PIX_FMT_NV61M) XLAT(V4L2_PIX_FMT_YVU422M), + #define XLAT_VAL_32 ((unsigned) (V4L2_PIX_FMT_YVU422M)) + #define XLAT_STR_32 STRINGIFY(V4L2_PIX_FMT_YVU422M) XLAT(V4L2_PIX_FMT_NV61), + #define XLAT_VAL_33 ((unsigned) (V4L2_PIX_FMT_NV61)) + #define XLAT_STR_33 STRINGIFY(V4L2_PIX_FMT_NV61) XLAT(V4L2_PIX_FMT_SBGGR8), + #define XLAT_VAL_34 ((unsigned) (V4L2_PIX_FMT_SBGGR8)) + #define XLAT_STR_34 STRINGIFY(V4L2_PIX_FMT_SBGGR8) XLAT(V4L2_PIX_FMT_RGB332), + #define XLAT_VAL_35 ((unsigned) (V4L2_PIX_FMT_RGB332)) + #define XLAT_STR_35 STRINGIFY(V4L2_PIX_FMT_RGB332) XLAT(V4L2_PIX_FMT_H264_NO_SC), + #define XLAT_VAL_36 ((unsigned) (V4L2_PIX_FMT_H264_NO_SC)) + #define XLAT_STR_36 STRINGIFY(V4L2_PIX_FMT_H264_NO_SC) XLAT(V4L2_PIX_FMT_PWC1), + #define XLAT_VAL_37 ((unsigned) (V4L2_PIX_FMT_PWC1)) + #define XLAT_STR_37 STRINGIFY(V4L2_PIX_FMT_PWC1) XLAT(V4L2_PIX_FMT_MPEG1), + #define XLAT_VAL_38 ((unsigned) (V4L2_PIX_FMT_MPEG1)) + #define XLAT_STR_38 STRINGIFY(V4L2_PIX_FMT_MPEG1) XLAT(V4L2_PIX_FMT_SGRBG12), + #define XLAT_VAL_39 ((unsigned) (V4L2_PIX_FMT_SGRBG12)) + #define XLAT_STR_39 STRINGIFY(V4L2_PIX_FMT_SGRBG12) +#ifndef STRACE_WORKAROUND_FOR_V4L2_PIX_FMT_BGRA444 +# define STRACE_WORKAROUND_FOR_V4L2_PIX_FMT_BGRA444 +/* +* V4L2_PIX_FMT_BGRA444 was introduced in Linux commit v5.2-rc1~33^2~24 with +* the value of v4l2_fourcc('B', 'A', '1', '2') and changed in commit +* v5.2-rc5-403-g22be8233b34f as it clashed with V4L2_PIX_FMT_SGRBG12. +*/ +# undef V4L2_PIX_FMT_BGRA444 +#endif + XLAT(V4L2_PIX_FMT_BGRA444), + #define XLAT_VAL_40 ((unsigned) (V4L2_PIX_FMT_BGRA444)) + #define XLAT_STR_40 STRINGIFY(V4L2_PIX_FMT_BGRA444) + XLAT(V4L2_PIX_FMT_RGBA444), + #define XLAT_VAL_41 ((unsigned) (V4L2_PIX_FMT_RGBA444)) + #define XLAT_STR_41 STRINGIFY(V4L2_PIX_FMT_RGBA444) + XLAT(V4L2_PIX_FMT_ABGR444), + #define XLAT_VAL_42 ((unsigned) (V4L2_PIX_FMT_ABGR444)) + #define XLAT_STR_42 STRINGIFY(V4L2_PIX_FMT_ABGR444) XLAT(V4L2_PIX_FMT_SGBRG12), + #define XLAT_VAL_43 ((unsigned) (V4L2_PIX_FMT_SGBRG12)) + #define XLAT_STR_43 STRINGIFY(V4L2_PIX_FMT_SGBRG12) + XLAT(V4L2_PIX_FMT_XBGR444), + #define XLAT_VAL_44 ((unsigned) (V4L2_PIX_FMT_XBGR444)) + #define XLAT_STR_44 STRINGIFY(V4L2_PIX_FMT_XBGR444) XLAT(V4L2_PIX_FMT_SBGGR12), + #define XLAT_VAL_45 ((unsigned) (V4L2_PIX_FMT_SBGGR12)) + #define XLAT_STR_45 STRINGIFY(V4L2_PIX_FMT_SBGGR12) XLAT(V4L2_PIX_FMT_SRGGB12), + #define XLAT_VAL_46 ((unsigned) (V4L2_PIX_FMT_SRGGB12)) + #define XLAT_STR_46 STRINGIFY(V4L2_PIX_FMT_SRGGB12) XLAT(V4L2_PIX_FMT_HM12), + #define XLAT_VAL_47 ((unsigned) (V4L2_PIX_FMT_HM12)) + #define XLAT_STR_47 STRINGIFY(V4L2_PIX_FMT_HM12) XLAT(V4L2_PIX_FMT_NV12M), + #define XLAT_VAL_48 ((unsigned) (V4L2_PIX_FMT_NV12M)) + #define XLAT_STR_48 STRINGIFY(V4L2_PIX_FMT_NV12M) XLAT(V4L2_PIX_FMT_NV12MT), + #define XLAT_VAL_49 ((unsigned) (V4L2_PIX_FMT_NV12MT)) + #define XLAT_STR_49 STRINGIFY(V4L2_PIX_FMT_NV12MT) XLAT(V4L2_PIX_FMT_NV12MT_16X16), + #define XLAT_VAL_50 ((unsigned) (V4L2_PIX_FMT_NV12MT_16X16)) + #define XLAT_STR_50 STRINGIFY(V4L2_PIX_FMT_NV12MT_16X16) XLAT(V4L2_PIX_FMT_YUV420M), + #define XLAT_VAL_51 ((unsigned) (V4L2_PIX_FMT_YUV420M)) + #define XLAT_STR_51 STRINGIFY(V4L2_PIX_FMT_YUV420M) XLAT(V4L2_PIX_FMT_ARGB444), + #define XLAT_VAL_52 ((unsigned) (V4L2_PIX_FMT_ARGB444)) + #define XLAT_STR_52 STRINGIFY(V4L2_PIX_FMT_ARGB444) XLAT(V4L2_PIX_FMT_XRGB444), + #define XLAT_VAL_53 ((unsigned) (V4L2_PIX_FMT_XRGB444)) + #define XLAT_STR_53 STRINGIFY(V4L2_PIX_FMT_XRGB444) XLAT(V4L2_PIX_FMT_SUNXI_TILED_NV12), - XLAT(V4L2_PIX_FMT_CNF4), + #define XLAT_VAL_54 ((unsigned) (V4L2_PIX_FMT_SUNXI_TILED_NV12)) + #define XLAT_STR_54 STRINGIFY(V4L2_PIX_FMT_SUNXI_TILED_NV12) XLAT(V4L2_PIX_FMT_YUV420), + #define XLAT_VAL_55 ((unsigned) (V4L2_PIX_FMT_YUV420)) + #define XLAT_STR_55 STRINGIFY(V4L2_PIX_FMT_YUV420) XLAT(V4L2_PIX_FMT_NV12), + #define XLAT_VAL_56 ((unsigned) (V4L2_PIX_FMT_NV12)) + #define XLAT_STR_56 STRINGIFY(V4L2_PIX_FMT_NV12) XLAT(V4L2_PIX_FMT_YVU420), + #define XLAT_VAL_57 ((unsigned) (V4L2_PIX_FMT_YVU420)) + #define XLAT_STR_57 STRINGIFY(V4L2_PIX_FMT_YVU420) + XLAT(V4L2_PIX_FMT_BGRX444), + #define XLAT_VAL_58 ((unsigned) (V4L2_PIX_FMT_BGRX444)) + #define XLAT_STR_58 STRINGIFY(V4L2_PIX_FMT_BGRX444) + XLAT(V4L2_PIX_FMT_RGBX444), + #define XLAT_VAL_59 ((unsigned) (V4L2_PIX_FMT_RGBX444)) + #define XLAT_STR_59 STRINGIFY(V4L2_PIX_FMT_RGBX444) XLAT(V4L2_PIX_FMT_YVU444M), + #define XLAT_VAL_60 ((unsigned) (V4L2_PIX_FMT_YVU444M)) + #define XLAT_STR_60 STRINGIFY(V4L2_PIX_FMT_YVU444M) XLAT(V4L2_PIX_FMT_NV42), + #define XLAT_VAL_61 ((unsigned) (V4L2_PIX_FMT_NV42)) + #define XLAT_STR_61 STRINGIFY(V4L2_PIX_FMT_NV42) XLAT(V4L2_PIX_FMT_PWC2), + #define XLAT_VAL_62 ((unsigned) (V4L2_PIX_FMT_PWC2)) + #define XLAT_STR_62 STRINGIFY(V4L2_PIX_FMT_PWC2) XLAT(V4L2_PIX_FMT_MPEG2), + #define XLAT_VAL_63 ((unsigned) (V4L2_PIX_FMT_MPEG2)) + #define XLAT_STR_63 STRINGIFY(V4L2_PIX_FMT_MPEG2) XLAT(V4L2_PIX_FMT_SBGGR16), + #define XLAT_VAL_64 ((unsigned) (V4L2_PIX_FMT_SBGGR16)) + #define XLAT_STR_64 STRINGIFY(V4L2_PIX_FMT_SBGGR16) XLAT(V4L2_PIX_FMT_H263), + #define XLAT_VAL_65 ((unsigned) (V4L2_PIX_FMT_H263)) + #define XLAT_STR_65 STRINGIFY(V4L2_PIX_FMT_H263) XLAT(V4L2_PIX_FMT_RGB24), + #define XLAT_VAL_66 ((unsigned) (V4L2_PIX_FMT_RGB24)) + #define XLAT_STR_66 STRINGIFY(V4L2_PIX_FMT_RGB24) XLAT(V4L2_PIX_FMT_BGR24), + #define XLAT_VAL_67 ((unsigned) (V4L2_PIX_FMT_BGR24)) + #define XLAT_STR_67 STRINGIFY(V4L2_PIX_FMT_BGR24) XLAT(V4L2_PIX_FMT_HSV24), + #define XLAT_VAL_68 ((unsigned) (V4L2_PIX_FMT_HSV24)) + #define XLAT_STR_68 STRINGIFY(V4L2_PIX_FMT_HSV24) + XLAT(V4L2_PIX_FMT_SGBRG14), + #define XLAT_VAL_69 ((unsigned) (V4L2_PIX_FMT_SGBRG14)) + #define XLAT_STR_69 STRINGIFY(V4L2_PIX_FMT_SGBRG14) + XLAT(V4L2_PIX_FMT_SBGGR14), + #define XLAT_VAL_70 ((unsigned) (V4L2_PIX_FMT_SBGGR14)) + #define XLAT_STR_70 STRINGIFY(V4L2_PIX_FMT_SBGGR14) + XLAT(V4L2_PIX_FMT_SRGGB14), + #define XLAT_VAL_71 ((unsigned) (V4L2_PIX_FMT_SRGGB14)) + #define XLAT_STR_71 STRINGIFY(V4L2_PIX_FMT_SRGGB14) + XLAT(V4L2_PIX_FMT_SGRBG14), + #define XLAT_VAL_72 ((unsigned) (V4L2_PIX_FMT_SGRBG14)) + #define XLAT_STR_72 STRINGIFY(V4L2_PIX_FMT_SGRBG14) XLAT(V4L2_PIX_FMT_ARGB32), + #define XLAT_VAL_73 ((unsigned) (V4L2_PIX_FMT_ARGB32)) + #define XLAT_STR_73 STRINGIFY(V4L2_PIX_FMT_ARGB32) + XLAT(V4L2_PIX_FMT_BGRA32), + #define XLAT_VAL_74 ((unsigned) (V4L2_PIX_FMT_BGRA32)) + #define XLAT_STR_74 STRINGIFY(V4L2_PIX_FMT_BGRA32) + XLAT(V4L2_PIX_FMT_RGBA32), + #define XLAT_VAL_75 ((unsigned) (V4L2_PIX_FMT_RGBA32)) + #define XLAT_STR_75 STRINGIFY(V4L2_PIX_FMT_RGBA32) + XLAT(V4L2_PIX_FMT_RGBX32), + #define XLAT_VAL_76 ((unsigned) (V4L2_PIX_FMT_RGBX32)) + #define XLAT_STR_76 STRINGIFY(V4L2_PIX_FMT_RGBX32) XLAT(V4L2_PIX_FMT_HI240), + #define XLAT_VAL_77 ((unsigned) (V4L2_PIX_FMT_HI240)) + #define XLAT_STR_77 STRINGIFY(V4L2_PIX_FMT_HI240) XLAT(V4L2_PIX_FMT_YUV444M), + #define XLAT_VAL_78 ((unsigned) (V4L2_PIX_FMT_YUV444M)) + #define XLAT_STR_78 STRINGIFY(V4L2_PIX_FMT_YUV444M) XLAT(V4L2_PIX_FMT_ABGR32), + #define XLAT_VAL_79 ((unsigned) (V4L2_PIX_FMT_ABGR32)) + #define XLAT_STR_79 STRINGIFY(V4L2_PIX_FMT_ABGR32) XLAT(V4L2_PIX_FMT_XBGR32), + #define XLAT_VAL_80 ((unsigned) (V4L2_PIX_FMT_XBGR32)) + #define XLAT_STR_80 STRINGIFY(V4L2_PIX_FMT_XBGR32) XLAT(V4L2_PIX_FMT_NV24), + #define XLAT_VAL_81 ((unsigned) (V4L2_PIX_FMT_NV24)) + #define XLAT_STR_81 STRINGIFY(V4L2_PIX_FMT_NV24) XLAT(V4L2_PIX_FMT_XRGB32), + #define XLAT_VAL_82 ((unsigned) (V4L2_PIX_FMT_XRGB32)) + #define XLAT_STR_82 STRINGIFY(V4L2_PIX_FMT_XRGB32) + XLAT(V4L2_PIX_FMT_BGRX32), + #define XLAT_VAL_83 ((unsigned) (V4L2_PIX_FMT_BGRX32)) + #define XLAT_STR_83 STRINGIFY(V4L2_PIX_FMT_BGRX32) XLAT(V4L2_PIX_FMT_RGB444), + #define XLAT_VAL_84 ((unsigned) (V4L2_PIX_FMT_RGB444)) + #define XLAT_STR_84 STRINGIFY(V4L2_PIX_FMT_RGB444) XLAT(V4L2_PIX_FMT_YUV444), + #define XLAT_VAL_85 ((unsigned) (V4L2_PIX_FMT_YUV444)) + #define XLAT_STR_85 STRINGIFY(V4L2_PIX_FMT_YUV444) XLAT(V4L2_PIX_FMT_H264), + #define XLAT_VAL_86 ((unsigned) (V4L2_PIX_FMT_H264)) + #define XLAT_STR_86 STRINGIFY(V4L2_PIX_FMT_H264) XLAT(V4L2_PIX_FMT_H264_MVC), + #define XLAT_VAL_87 ((unsigned) (V4L2_PIX_FMT_H264_MVC)) + #define XLAT_STR_87 STRINGIFY(V4L2_PIX_FMT_H264_MVC) XLAT(V4L2_PIX_FMT_RGB32), + #define XLAT_VAL_88 ((unsigned) (V4L2_PIX_FMT_RGB32)) + #define XLAT_STR_88 STRINGIFY(V4L2_PIX_FMT_RGB32) + XLAT(V4L2_PIX_FMT_CNF4), + #define XLAT_VAL_89 ((unsigned) (V4L2_PIX_FMT_CNF4)) + #define XLAT_STR_89 STRINGIFY(V4L2_PIX_FMT_CNF4) XLAT(V4L2_PIX_FMT_MPEG4), + #define XLAT_VAL_90 ((unsigned) (V4L2_PIX_FMT_MPEG4)) + #define XLAT_STR_90 STRINGIFY(V4L2_PIX_FMT_MPEG4) XLAT(V4L2_PIX_FMT_BGR32), + #define XLAT_VAL_91 ((unsigned) (V4L2_PIX_FMT_BGR32)) + #define XLAT_STR_91 STRINGIFY(V4L2_PIX_FMT_BGR32) XLAT(V4L2_PIX_FMT_HSV32), + #define XLAT_VAL_92 ((unsigned) (V4L2_PIX_FMT_HSV32)) + #define XLAT_STR_92 STRINGIFY(V4L2_PIX_FMT_HSV32) XLAT(V4L2_PIX_FMT_YUV32), - XLAT(V4L2_PIX_FMT_AYUV32), - XLAT(V4L2_PIX_FMT_XYUV32), - XLAT(V4L2_PIX_FMT_VUYA32), - XLAT(V4L2_PIX_FMT_VUYX32), + #define XLAT_VAL_93 ((unsigned) (V4L2_PIX_FMT_YUV32)) + #define XLAT_STR_93 STRINGIFY(V4L2_PIX_FMT_YUV32) XLAT(V4L2_PIX_FMT_SPCA505), + #define XLAT_VAL_94 ((unsigned) (V4L2_PIX_FMT_SPCA505)) + #define XLAT_STR_94 STRINGIFY(V4L2_PIX_FMT_SPCA505) + XLAT(V4L2_PIX_FMT_BGRA555), + #define XLAT_VAL_95 ((unsigned) (V4L2_PIX_FMT_BGRA555)) + #define XLAT_STR_95 STRINGIFY(V4L2_PIX_FMT_BGRA555) + XLAT(V4L2_PIX_FMT_RGBA555), + #define XLAT_VAL_96 ((unsigned) (V4L2_PIX_FMT_RGBA555)) + #define XLAT_STR_96 STRINGIFY(V4L2_PIX_FMT_RGBA555) + XLAT(V4L2_PIX_FMT_ABGR555), + #define XLAT_VAL_97 ((unsigned) (V4L2_PIX_FMT_ABGR555)) + #define XLAT_STR_97 STRINGIFY(V4L2_PIX_FMT_ABGR555) + XLAT(V4L2_PIX_FMT_XBGR555), + #define XLAT_VAL_98 ((unsigned) (V4L2_PIX_FMT_XBGR555)) + #define XLAT_STR_98 STRINGIFY(V4L2_PIX_FMT_XBGR555) XLAT(V4L2_PIX_FMT_ARGB555), + #define XLAT_VAL_99 ((unsigned) (V4L2_PIX_FMT_ARGB555)) + #define XLAT_STR_99 STRINGIFY(V4L2_PIX_FMT_ARGB555) XLAT(V4L2_PIX_FMT_XRGB555), + #define XLAT_VAL_100 ((unsigned) (V4L2_PIX_FMT_XRGB555)) + #define XLAT_STR_100 STRINGIFY(V4L2_PIX_FMT_XRGB555) + XLAT(V4L2_PIX_FMT_BGRX555), + #define XLAT_VAL_101 ((unsigned) (V4L2_PIX_FMT_BGRX555)) + #define XLAT_STR_101 STRINGIFY(V4L2_PIX_FMT_BGRX555) + XLAT(V4L2_PIX_FMT_RGBX555), + #define XLAT_VAL_102 ((unsigned) (V4L2_PIX_FMT_RGBX555)) + #define XLAT_STR_102 STRINGIFY(V4L2_PIX_FMT_RGBX555) XLAT(V4L2_PIX_FMT_ET61X251), + #define XLAT_VAL_103 ((unsigned) (V4L2_PIX_FMT_ET61X251)) + #define XLAT_STR_103 STRINGIFY(V4L2_PIX_FMT_ET61X251) XLAT(V4L2_PIX_FMT_SGBRG16), + #define XLAT_VAL_104 ((unsigned) (V4L2_PIX_FMT_SGBRG16)) + #define XLAT_STR_104 STRINGIFY(V4L2_PIX_FMT_SGBRG16) XLAT(V4L2_PIX_FMT_SRGGB16), + #define XLAT_VAL_105 ((unsigned) (V4L2_PIX_FMT_SRGGB16)) + #define XLAT_STR_105 STRINGIFY(V4L2_PIX_FMT_SRGGB16) XLAT(V4L2_PIX_FMT_NV16M), + #define XLAT_VAL_106 ((unsigned) (V4L2_PIX_FMT_NV16M)) + #define XLAT_STR_106 STRINGIFY(V4L2_PIX_FMT_NV16M) XLAT(V4L2_PIX_FMT_YUV422M), + #define XLAT_VAL_107 ((unsigned) (V4L2_PIX_FMT_YUV422M)) + #define XLAT_STR_107 STRINGIFY(V4L2_PIX_FMT_YUV422M) XLAT(V4L2_PIX_FMT_SGRBG16), + #define XLAT_VAL_108 ((unsigned) (V4L2_PIX_FMT_SGRBG16)) + #define XLAT_STR_108 STRINGIFY(V4L2_PIX_FMT_SGRBG16) XLAT(V4L2_PIX_FMT_NV16), + #define XLAT_VAL_109 ((unsigned) (V4L2_PIX_FMT_NV16)) + #define XLAT_STR_109 STRINGIFY(V4L2_PIX_FMT_NV16) XLAT(V4L2_PIX_FMT_PAC207), + #define XLAT_VAL_110 ((unsigned) (V4L2_PIX_FMT_PAC207)) + #define XLAT_STR_110 STRINGIFY(V4L2_PIX_FMT_PAC207) XLAT(V4L2_PIX_FMT_SPCA508), + #define XLAT_VAL_111 ((unsigned) (V4L2_PIX_FMT_SPCA508)) + #define XLAT_STR_111 STRINGIFY(V4L2_PIX_FMT_SPCA508) XLAT(V4L2_PIX_FMT_OV518), + #define XLAT_VAL_112 ((unsigned) (V4L2_PIX_FMT_OV518)) + #define XLAT_STR_112 STRINGIFY(V4L2_PIX_FMT_OV518) XLAT(V4L2_PIX_FMT_SBGGR10ALAW8), + #define XLAT_VAL_113 ((unsigned) (V4L2_PIX_FMT_SBGGR10ALAW8)) + #define XLAT_STR_113 STRINGIFY(V4L2_PIX_FMT_SBGGR10ALAW8) XLAT(V4L2_PIX_FMT_SBGGR10DPCM8), + #define XLAT_VAL_114 ((unsigned) (V4L2_PIX_FMT_SBGGR10DPCM8)) + #define XLAT_STR_114 STRINGIFY(V4L2_PIX_FMT_SBGGR10DPCM8) XLAT(V4L2_PIX_FMT_SGBRG10ALAW8), + #define XLAT_VAL_115 ((unsigned) (V4L2_PIX_FMT_SGBRG10ALAW8)) + #define XLAT_STR_115 STRINGIFY(V4L2_PIX_FMT_SGBRG10ALAW8) XLAT(V4L2_PIX_FMT_SGBRG10DPCM8), + #define XLAT_VAL_116 ((unsigned) (V4L2_PIX_FMT_SGBRG10DPCM8)) + #define XLAT_STR_116 STRINGIFY(V4L2_PIX_FMT_SGBRG10DPCM8) XLAT(V4L2_PIX_FMT_SRGGB10ALAW8), + #define XLAT_VAL_117 ((unsigned) (V4L2_PIX_FMT_SRGGB10ALAW8)) + #define XLAT_STR_117 STRINGIFY(V4L2_PIX_FMT_SRGGB10ALAW8) XLAT(V4L2_PIX_FMT_SRGGB10DPCM8), + #define XLAT_VAL_118 ((unsigned) (V4L2_PIX_FMT_SRGGB10DPCM8)) + #define XLAT_STR_118 STRINGIFY(V4L2_PIX_FMT_SRGGB10DPCM8) XLAT(V4L2_PIX_FMT_SGRBG10ALAW8), + #define XLAT_VAL_119 ((unsigned) (V4L2_PIX_FMT_SGRBG10ALAW8)) + #define XLAT_STR_119 STRINGIFY(V4L2_PIX_FMT_SGRBG10ALAW8) XLAT(V4L2_PIX_FMT_PAL8), + #define XLAT_VAL_120 ((unsigned) (V4L2_PIX_FMT_PAL8)) + #define XLAT_STR_120 STRINGIFY(V4L2_PIX_FMT_PAL8) XLAT(V4L2_PIX_FMT_YVU410), + #define XLAT_VAL_121 ((unsigned) (V4L2_PIX_FMT_YVU410)) + #define XLAT_STR_121 STRINGIFY(V4L2_PIX_FMT_YVU410) XLAT(V4L2_PIX_FMT_YUV410), + #define XLAT_VAL_122 ((unsigned) (V4L2_PIX_FMT_YUV410)) + #define XLAT_STR_122 STRINGIFY(V4L2_PIX_FMT_YUV410) XLAT(V4L2_PIX_FMT_SBGGR10P), + #define XLAT_VAL_123 ((unsigned) (V4L2_PIX_FMT_SBGGR10P)) + #define XLAT_STR_123 STRINGIFY(V4L2_PIX_FMT_SBGGR10P) XLAT(V4L2_PIX_FMT_SGBRG10P), + #define XLAT_VAL_124 ((unsigned) (V4L2_PIX_FMT_SGBRG10P)) + #define XLAT_STR_124 STRINGIFY(V4L2_PIX_FMT_SGBRG10P) XLAT(V4L2_PIX_FMT_SRGGB10P), + #define XLAT_VAL_125 ((unsigned) (V4L2_PIX_FMT_SRGGB10P)) + #define XLAT_STR_125 STRINGIFY(V4L2_PIX_FMT_SRGGB10P) XLAT(V4L2_PIX_FMT_SGRBG10P), + #define XLAT_VAL_126 ((unsigned) (V4L2_PIX_FMT_SGRBG10P)) + #define XLAT_STR_126 STRINGIFY(V4L2_PIX_FMT_SGRBG10P) XLAT(V4L2_PIX_FMT_CPIA1), + #define XLAT_VAL_127 ((unsigned) (V4L2_PIX_FMT_CPIA1)) + #define XLAT_STR_127 STRINGIFY(V4L2_PIX_FMT_CPIA1) XLAT(V4L2_PIX_FMT_WNVA), + #define XLAT_VAL_128 ((unsigned) (V4L2_PIX_FMT_WNVA)) + #define XLAT_STR_128 STRINGIFY(V4L2_PIX_FMT_WNVA) + XLAT(V4L2_PIX_FMT_VUYA32), + #define XLAT_VAL_129 ((unsigned) (V4L2_PIX_FMT_VUYA32)) + #define XLAT_STR_129 STRINGIFY(V4L2_PIX_FMT_VUYA32) XLAT(V4L2_PIX_FMT_Y10BPACK), + #define XLAT_VAL_130 ((unsigned) (V4L2_PIX_FMT_Y10BPACK)) + #define XLAT_STR_130 STRINGIFY(V4L2_PIX_FMT_Y10BPACK) XLAT(V4L2_PIX_FMT_SRGGB8), + #define XLAT_VAL_131 ((unsigned) (V4L2_PIX_FMT_SRGGB8)) + #define XLAT_STR_131 STRINGIFY(V4L2_PIX_FMT_SRGGB8) XLAT(V4L2_PIX_FMT_SQ905C), + #define XLAT_VAL_132 ((unsigned) (V4L2_PIX_FMT_SQ905C)) + #define XLAT_STR_132 STRINGIFY(V4L2_PIX_FMT_SQ905C) XLAT(V4L2_PIX_FMT_SBGGR12P), + #define XLAT_VAL_133 ((unsigned) (V4L2_PIX_FMT_SBGGR12P)) + #define XLAT_STR_133 STRINGIFY(V4L2_PIX_FMT_SBGGR12P) XLAT(V4L2_PIX_FMT_SGBRG12P), + #define XLAT_VAL_134 ((unsigned) (V4L2_PIX_FMT_SGBRG12P)) + #define XLAT_STR_134 STRINGIFY(V4L2_PIX_FMT_SGBRG12P) XLAT(V4L2_PIX_FMT_SRGGB12P), + #define XLAT_VAL_135 ((unsigned) (V4L2_PIX_FMT_SRGGB12P)) + #define XLAT_STR_135 STRINGIFY(V4L2_PIX_FMT_SRGGB12P) XLAT(V4L2_PIX_FMT_SGRBG12P), + #define XLAT_VAL_136 ((unsigned) (V4L2_PIX_FMT_SGRBG12P)) + #define XLAT_STR_136 STRINGIFY(V4L2_PIX_FMT_SGRBG12P) XLAT(V4L2_PIX_FMT_HEVC), + #define XLAT_VAL_137 ((unsigned) (V4L2_PIX_FMT_HEVC)) + #define XLAT_STR_137 STRINGIFY(V4L2_PIX_FMT_HEVC) XLAT(V4L2_PIX_FMT_XVID), + #define XLAT_VAL_138 ((unsigned) (V4L2_PIX_FMT_XVID)) + #define XLAT_STR_138 STRINGIFY(V4L2_PIX_FMT_XVID) XLAT(V4L2_PIX_FMT_SBGGR14P), + #define XLAT_VAL_139 ((unsigned) (V4L2_PIX_FMT_SBGGR14P)) + #define XLAT_STR_139 STRINGIFY(V4L2_PIX_FMT_SBGGR14P) XLAT(V4L2_PIX_FMT_SGBRG14P), - XLAT(V4L2_PIX_FMT_SGRBG14P), + #define XLAT_VAL_140 ((unsigned) (V4L2_PIX_FMT_SGBRG14P)) + #define XLAT_STR_140 STRINGIFY(V4L2_PIX_FMT_SGBRG14P) XLAT(V4L2_PIX_FMT_SRGGB14P), + #define XLAT_VAL_141 ((unsigned) (V4L2_PIX_FMT_SRGGB14P)) + #define XLAT_STR_141 STRINGIFY(V4L2_PIX_FMT_SRGGB14P) + XLAT(V4L2_PIX_FMT_SGRBG14P), + #define XLAT_VAL_142 ((unsigned) (V4L2_PIX_FMT_SGRBG14P)) + #define XLAT_STR_142 STRINGIFY(V4L2_PIX_FMT_SGRBG14P) XLAT(V4L2_PIX_FMT_VC1_ANNEX_G), + #define XLAT_VAL_143 ((unsigned) (V4L2_PIX_FMT_VC1_ANNEX_G)) + #define XLAT_STR_143 STRINGIFY(V4L2_PIX_FMT_VC1_ANNEX_G) XLAT(V4L2_PIX_FMT_IPU3_SGRBG10), + #define XLAT_VAL_144 ((unsigned) (V4L2_PIX_FMT_IPU3_SGRBG10)) + #define XLAT_STR_144 STRINGIFY(V4L2_PIX_FMT_IPU3_SGRBG10) XLAT(V4L2_PIX_FMT_SGRBG8), + #define XLAT_VAL_145 ((unsigned) (V4L2_PIX_FMT_SGRBG8)) + #define XLAT_STR_145 STRINGIFY(V4L2_PIX_FMT_SGRBG8) XLAT(V4L2_PIX_FMT_JPEG), + #define XLAT_VAL_146 ((unsigned) (V4L2_PIX_FMT_JPEG)) + #define XLAT_STR_146 STRINGIFY(V4L2_PIX_FMT_JPEG) XLAT(V4L2_PIX_FMT_MPEG), + #define XLAT_VAL_147 ((unsigned) (V4L2_PIX_FMT_MPEG)) + #define XLAT_STR_147 STRINGIFY(V4L2_PIX_FMT_MPEG) XLAT(V4L2_PIX_FMT_MJPEG), + #define XLAT_VAL_148 ((unsigned) (V4L2_PIX_FMT_MJPEG)) + #define XLAT_STR_148 STRINGIFY(V4L2_PIX_FMT_MJPEG) XLAT(V4L2_PIX_FMT_PJPG), + #define XLAT_VAL_149 ((unsigned) (V4L2_PIX_FMT_PJPG)) + #define XLAT_STR_149 STRINGIFY(V4L2_PIX_FMT_PJPG) XLAT(V4L2_PIX_FMT_SGBRG8), + #define XLAT_VAL_150 ((unsigned) (V4L2_PIX_FMT_SGBRG8)) + #define XLAT_STR_150 STRINGIFY(V4L2_PIX_FMT_SGBRG8) XLAT(V4L2_PIX_FMT_BGR666), + #define XLAT_VAL_151 ((unsigned) (V4L2_PIX_FMT_BGR666)) + #define XLAT_STR_151 STRINGIFY(V4L2_PIX_FMT_BGR666) + XLAT(V4L2_PIX_FMT_FWHT_STATELESS), + #define XLAT_VAL_152 ((unsigned) (V4L2_PIX_FMT_FWHT_STATELESS)) + #define XLAT_STR_152 STRINGIFY(V4L2_PIX_FMT_FWHT_STATELESS) XLAT(V4L2_PIX_FMT_Y12I), + #define XLAT_VAL_153 ((unsigned) (V4L2_PIX_FMT_Y12I)) + #define XLAT_STR_153 STRINGIFY(V4L2_PIX_FMT_Y12I) XLAT(V4L2_PIX_FMT_S5C_UYVY_JPG), + #define XLAT_VAL_154 ((unsigned) (V4L2_PIX_FMT_S5C_UYVY_JPG)) + #define XLAT_STR_154 STRINGIFY(V4L2_PIX_FMT_S5C_UYVY_JPG) XLAT(V4L2_PIX_FMT_KONICA420), + #define XLAT_VAL_155 ((unsigned) (V4L2_PIX_FMT_KONICA420)) + #define XLAT_STR_155 STRINGIFY(V4L2_PIX_FMT_KONICA420) XLAT(V4L2_PIX_FMT_INZI), + #define XLAT_VAL_156 ((unsigned) (V4L2_PIX_FMT_INZI)) + #define XLAT_STR_156 STRINGIFY(V4L2_PIX_FMT_INZI) XLAT(V4L2_PIX_FMT_VC1_ANNEX_L), + #define XLAT_VAL_157 ((unsigned) (V4L2_PIX_FMT_VC1_ANNEX_L)) + #define XLAT_STR_157 STRINGIFY(V4L2_PIX_FMT_VC1_ANNEX_L) XLAT(V4L2_PIX_FMT_JPGL), + #define XLAT_VAL_158 ((unsigned) (V4L2_PIX_FMT_JPGL)) + #define XLAT_STR_158 STRINGIFY(V4L2_PIX_FMT_JPGL) XLAT(V4L2_PIX_FMT_RGB555), + #define XLAT_VAL_159 ((unsigned) (V4L2_PIX_FMT_RGB555)) + #define XLAT_STR_159 STRINGIFY(V4L2_PIX_FMT_RGB555) XLAT(V4L2_PIX_FMT_YUV555), + #define XLAT_VAL_160 ((unsigned) (V4L2_PIX_FMT_YUV555)) + #define XLAT_STR_160 STRINGIFY(V4L2_PIX_FMT_YUV555) XLAT(V4L2_PIX_FMT_Y10P), + #define XLAT_VAL_161 ((unsigned) (V4L2_PIX_FMT_Y10P)) + #define XLAT_STR_161 STRINGIFY(V4L2_PIX_FMT_Y10P) XLAT(V4L2_PIX_FMT_YUV411P), + #define XLAT_VAL_162 ((unsigned) (V4L2_PIX_FMT_YUV411P)) + #define XLAT_STR_162 STRINGIFY(V4L2_PIX_FMT_YUV411P) XLAT(V4L2_PIX_FMT_Y41P), + #define XLAT_VAL_163 ((unsigned) (V4L2_PIX_FMT_Y41P)) + #define XLAT_STR_163 STRINGIFY(V4L2_PIX_FMT_Y41P) XLAT(V4L2_PIX_FMT_YUV422P), + #define XLAT_VAL_164 ((unsigned) (V4L2_PIX_FMT_YUV422P)) + #define XLAT_STR_164 STRINGIFY(V4L2_PIX_FMT_YUV422P) XLAT(V4L2_PIX_FMT_RGB565), + #define XLAT_VAL_165 ((unsigned) (V4L2_PIX_FMT_RGB565)) + #define XLAT_STR_165 STRINGIFY(V4L2_PIX_FMT_RGB565) XLAT(V4L2_PIX_FMT_YUV565), + #define XLAT_VAL_166 ((unsigned) (V4L2_PIX_FMT_YUV565)) + #define XLAT_STR_166 STRINGIFY(V4L2_PIX_FMT_YUV565) XLAT(V4L2_PIX_FMT_RGB555X), + #define XLAT_VAL_167 ((unsigned) (V4L2_PIX_FMT_RGB555X)) + #define XLAT_STR_167 STRINGIFY(V4L2_PIX_FMT_RGB555X) XLAT(V4L2_PIX_FMT_RGB565X), + #define XLAT_VAL_168 ((unsigned) (V4L2_PIX_FMT_RGB565X)) + #define XLAT_STR_168 STRINGIFY(V4L2_PIX_FMT_RGB565X) XLAT(V4L2_PIX_FMT_MPEG2_SLICE), + #define XLAT_VAL_169 ((unsigned) (V4L2_PIX_FMT_MPEG2_SLICE)) + #define XLAT_STR_169 STRINGIFY(V4L2_PIX_FMT_MPEG2_SLICE) XLAT(V4L2_PIX_FMT_FWHT), + #define XLAT_VAL_170 ((unsigned) (V4L2_PIX_FMT_FWHT)) + #define XLAT_STR_170 STRINGIFY(V4L2_PIX_FMT_FWHT) XLAT(V4L2_PIX_FMT_YVYU), + #define XLAT_VAL_171 ((unsigned) (V4L2_PIX_FMT_YVYU)) + #define XLAT_STR_171 STRINGIFY(V4L2_PIX_FMT_YVYU) XLAT(V4L2_PIX_FMT_CIT_YYVYUY), + #define XLAT_VAL_172 ((unsigned) (V4L2_PIX_FMT_CIT_YYVYUY)) + #define XLAT_STR_172 STRINGIFY(V4L2_PIX_FMT_CIT_YYVYUY) + XLAT(V4L2_PIX_FMT_AYUV32), + #define XLAT_VAL_173 ((unsigned) (V4L2_PIX_FMT_AYUV32)) + #define XLAT_STR_173 STRINGIFY(V4L2_PIX_FMT_AYUV32) + XLAT(V4L2_PIX_FMT_XYUV32), + #define XLAT_VAL_174 ((unsigned) (V4L2_PIX_FMT_XYUV32)) + #define XLAT_STR_174 STRINGIFY(V4L2_PIX_FMT_XYUV32) XLAT(V4L2_PIX_FMT_YYUV), + #define XLAT_VAL_175 ((unsigned) (V4L2_PIX_FMT_YYUV)) + #define XLAT_STR_175 STRINGIFY(V4L2_PIX_FMT_YYUV) XLAT(V4L2_PIX_FMT_YUYV), + #define XLAT_VAL_176 ((unsigned) (V4L2_PIX_FMT_YUYV)) + #define XLAT_STR_176 STRINGIFY(V4L2_PIX_FMT_YUYV) XLAT(V4L2_PIX_FMT_SN9C2028), + #define XLAT_VAL_177 ((unsigned) (V4L2_PIX_FMT_SN9C2028)) + #define XLAT_STR_177 STRINGIFY(V4L2_PIX_FMT_SN9C2028) + XLAT(V4L2_PIX_FMT_VUYX32), + #define XLAT_VAL_178 ((unsigned) (V4L2_PIX_FMT_VUYX32)) + #define XLAT_STR_178 STRINGIFY(V4L2_PIX_FMT_VUYX32) XLAT(V4L2_PIX_FMT_GREY), + #define XLAT_VAL_179 ((unsigned) (V4L2_PIX_FMT_GREY)) + #define XLAT_STR_179 STRINGIFY(V4L2_PIX_FMT_GREY) XLAT(V4L2_PIX_FMT_VYUY), + #define XLAT_VAL_180 ((unsigned) (V4L2_PIX_FMT_VYUY)) + #define XLAT_STR_180 STRINGIFY(V4L2_PIX_FMT_VYUY) XLAT(V4L2_PIX_FMT_UYVY), + #define XLAT_VAL_181 ((unsigned) (V4L2_PIX_FMT_UYVY)) + #define XLAT_STR_181 STRINGIFY(V4L2_PIX_FMT_UYVY) XLAT(V4L2_PIX_FMT_IPU3_SBGGR10), + #define XLAT_VAL_182 ((unsigned) (V4L2_PIX_FMT_IPU3_SBGGR10)) + #define XLAT_STR_182 STRINGIFY(V4L2_PIX_FMT_IPU3_SBGGR10) XLAT(V4L2_PIX_FMT_DV), + #define XLAT_VAL_183 ((unsigned) (V4L2_PIX_FMT_DV)) + #define XLAT_STR_183 STRINGIFY(V4L2_PIX_FMT_DV) XLAT(V4L2_PIX_FMT_IPU3_SGBRG10), + #define XLAT_VAL_184 ((unsigned) (V4L2_PIX_FMT_IPU3_SGBRG10)) + #define XLAT_STR_184 STRINGIFY(V4L2_PIX_FMT_IPU3_SGBRG10) XLAT(V4L2_PIX_FMT_IPU3_SRGGB10), + #define XLAT_VAL_185 ((unsigned) (V4L2_PIX_FMT_IPU3_SRGGB10)) + #define XLAT_STR_185 STRINGIFY(V4L2_PIX_FMT_IPU3_SRGGB10) XLAT(V4L2_PIX_FMT_Y16_BE), + #define XLAT_VAL_186 ((unsigned) (V4L2_PIX_FMT_Y16_BE)) + #define XLAT_STR_186 STRINGIFY(V4L2_PIX_FMT_Y16_BE) XLAT(V4L2_PIX_FMT_ARGB555X), + #define XLAT_VAL_187 ((unsigned) (V4L2_PIX_FMT_ARGB555X)) + #define XLAT_STR_187 STRINGIFY(V4L2_PIX_FMT_ARGB555X) XLAT(V4L2_PIX_FMT_XRGB555X), - XLAT_END + #define XLAT_VAL_188 ((unsigned) (V4L2_PIX_FMT_XRGB555X)) + #define XLAT_STR_188 STRINGIFY(V4L2_PIX_FMT_XRGB555X) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat v4l2_pix_fmts[1] = { { + .data = v4l2_pix_fmts_xdata, + .size = ARRAY_SIZE(v4l2_pix_fmts_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif +# ifdef XLAT_VAL_13 + | XLAT_VAL_13 +# endif +# ifdef XLAT_VAL_14 + | XLAT_VAL_14 +# endif +# ifdef XLAT_VAL_15 + | XLAT_VAL_15 +# endif +# ifdef XLAT_VAL_16 + | XLAT_VAL_16 +# endif +# ifdef XLAT_VAL_17 + | XLAT_VAL_17 +# endif +# ifdef XLAT_VAL_18 + | XLAT_VAL_18 +# endif +# ifdef XLAT_VAL_19 + | XLAT_VAL_19 +# endif +# ifdef XLAT_VAL_20 + | XLAT_VAL_20 +# endif +# ifdef XLAT_VAL_21 + | XLAT_VAL_21 +# endif +# ifdef XLAT_VAL_22 + | XLAT_VAL_22 +# endif +# ifdef XLAT_VAL_23 + | XLAT_VAL_23 +# endif +# ifdef XLAT_VAL_24 + | XLAT_VAL_24 +# endif +# ifdef XLAT_VAL_25 + | XLAT_VAL_25 +# endif +# ifdef XLAT_VAL_26 + | XLAT_VAL_26 +# endif +# ifdef XLAT_VAL_27 + | XLAT_VAL_27 +# endif +# ifdef XLAT_VAL_28 + | XLAT_VAL_28 +# endif +# ifdef XLAT_VAL_29 + | XLAT_VAL_29 +# endif +# ifdef XLAT_VAL_30 + | XLAT_VAL_30 +# endif +# ifdef XLAT_VAL_31 + | XLAT_VAL_31 +# endif +# ifdef XLAT_VAL_32 + | XLAT_VAL_32 +# endif +# ifdef XLAT_VAL_33 + | XLAT_VAL_33 +# endif +# ifdef XLAT_VAL_34 + | XLAT_VAL_34 +# endif +# ifdef XLAT_VAL_35 + | XLAT_VAL_35 +# endif +# ifdef XLAT_VAL_36 + | XLAT_VAL_36 +# endif +# ifdef XLAT_VAL_37 + | XLAT_VAL_37 +# endif +# ifdef XLAT_VAL_38 + | XLAT_VAL_38 +# endif +# ifdef XLAT_VAL_39 + | XLAT_VAL_39 +# endif +# ifdef XLAT_VAL_40 + | XLAT_VAL_40 +# endif +# ifdef XLAT_VAL_41 + | XLAT_VAL_41 +# endif +# ifdef XLAT_VAL_42 + | XLAT_VAL_42 +# endif +# ifdef XLAT_VAL_43 + | XLAT_VAL_43 +# endif +# ifdef XLAT_VAL_44 + | XLAT_VAL_44 +# endif +# ifdef XLAT_VAL_45 + | XLAT_VAL_45 +# endif +# ifdef XLAT_VAL_46 + | XLAT_VAL_46 +# endif +# ifdef XLAT_VAL_47 + | XLAT_VAL_47 +# endif +# ifdef XLAT_VAL_48 + | XLAT_VAL_48 +# endif +# ifdef XLAT_VAL_49 + | XLAT_VAL_49 +# endif +# ifdef XLAT_VAL_50 + | XLAT_VAL_50 +# endif +# ifdef XLAT_VAL_51 + | XLAT_VAL_51 +# endif +# ifdef XLAT_VAL_52 + | XLAT_VAL_52 +# endif +# ifdef XLAT_VAL_53 + | XLAT_VAL_53 +# endif +# ifdef XLAT_VAL_54 + | XLAT_VAL_54 +# endif +# ifdef XLAT_VAL_55 + | XLAT_VAL_55 +# endif +# ifdef XLAT_VAL_56 + | XLAT_VAL_56 +# endif +# ifdef XLAT_VAL_57 + | XLAT_VAL_57 +# endif +# ifdef XLAT_VAL_58 + | XLAT_VAL_58 +# endif +# ifdef XLAT_VAL_59 + | XLAT_VAL_59 +# endif +# ifdef XLAT_VAL_60 + | XLAT_VAL_60 +# endif +# ifdef XLAT_VAL_61 + | XLAT_VAL_61 +# endif +# ifdef XLAT_VAL_62 + | XLAT_VAL_62 +# endif +# ifdef XLAT_VAL_63 + | XLAT_VAL_63 +# endif +# ifdef XLAT_VAL_64 + | XLAT_VAL_64 +# endif +# ifdef XLAT_VAL_65 + | XLAT_VAL_65 +# endif +# ifdef XLAT_VAL_66 + | XLAT_VAL_66 +# endif +# ifdef XLAT_VAL_67 + | XLAT_VAL_67 +# endif +# ifdef XLAT_VAL_68 + | XLAT_VAL_68 +# endif +# ifdef XLAT_VAL_69 + | XLAT_VAL_69 +# endif +# ifdef XLAT_VAL_70 + | XLAT_VAL_70 +# endif +# ifdef XLAT_VAL_71 + | XLAT_VAL_71 +# endif +# ifdef XLAT_VAL_72 + | XLAT_VAL_72 +# endif +# ifdef XLAT_VAL_73 + | XLAT_VAL_73 +# endif +# ifdef XLAT_VAL_74 + | XLAT_VAL_74 +# endif +# ifdef XLAT_VAL_75 + | XLAT_VAL_75 +# endif +# ifdef XLAT_VAL_76 + | XLAT_VAL_76 +# endif +# ifdef XLAT_VAL_77 + | XLAT_VAL_77 +# endif +# ifdef XLAT_VAL_78 + | XLAT_VAL_78 +# endif +# ifdef XLAT_VAL_79 + | XLAT_VAL_79 +# endif +# ifdef XLAT_VAL_80 + | XLAT_VAL_80 +# endif +# ifdef XLAT_VAL_81 + | XLAT_VAL_81 +# endif +# ifdef XLAT_VAL_82 + | XLAT_VAL_82 +# endif +# ifdef XLAT_VAL_83 + | XLAT_VAL_83 +# endif +# ifdef XLAT_VAL_84 + | XLAT_VAL_84 +# endif +# ifdef XLAT_VAL_85 + | XLAT_VAL_85 +# endif +# ifdef XLAT_VAL_86 + | XLAT_VAL_86 +# endif +# ifdef XLAT_VAL_87 + | XLAT_VAL_87 +# endif +# ifdef XLAT_VAL_88 + | XLAT_VAL_88 +# endif +# ifdef XLAT_VAL_89 + | XLAT_VAL_89 +# endif +# ifdef XLAT_VAL_90 + | XLAT_VAL_90 +# endif +# ifdef XLAT_VAL_91 + | XLAT_VAL_91 +# endif +# ifdef XLAT_VAL_92 + | XLAT_VAL_92 +# endif +# ifdef XLAT_VAL_93 + | XLAT_VAL_93 +# endif +# ifdef XLAT_VAL_94 + | XLAT_VAL_94 +# endif +# ifdef XLAT_VAL_95 + | XLAT_VAL_95 +# endif +# ifdef XLAT_VAL_96 + | XLAT_VAL_96 +# endif +# ifdef XLAT_VAL_97 + | XLAT_VAL_97 +# endif +# ifdef XLAT_VAL_98 + | XLAT_VAL_98 +# endif +# ifdef XLAT_VAL_99 + | XLAT_VAL_99 +# endif +# ifdef XLAT_VAL_100 + | XLAT_VAL_100 +# endif +# ifdef XLAT_VAL_101 + | XLAT_VAL_101 +# endif +# ifdef XLAT_VAL_102 + | XLAT_VAL_102 +# endif +# ifdef XLAT_VAL_103 + | XLAT_VAL_103 +# endif +# ifdef XLAT_VAL_104 + | XLAT_VAL_104 +# endif +# ifdef XLAT_VAL_105 + | XLAT_VAL_105 +# endif +# ifdef XLAT_VAL_106 + | XLAT_VAL_106 +# endif +# ifdef XLAT_VAL_107 + | XLAT_VAL_107 +# endif +# ifdef XLAT_VAL_108 + | XLAT_VAL_108 +# endif +# ifdef XLAT_VAL_109 + | XLAT_VAL_109 +# endif +# ifdef XLAT_VAL_110 + | XLAT_VAL_110 +# endif +# ifdef XLAT_VAL_111 + | XLAT_VAL_111 +# endif +# ifdef XLAT_VAL_112 + | XLAT_VAL_112 +# endif +# ifdef XLAT_VAL_113 + | XLAT_VAL_113 +# endif +# ifdef XLAT_VAL_114 + | XLAT_VAL_114 +# endif +# ifdef XLAT_VAL_115 + | XLAT_VAL_115 +# endif +# ifdef XLAT_VAL_116 + | XLAT_VAL_116 +# endif +# ifdef XLAT_VAL_117 + | XLAT_VAL_117 +# endif +# ifdef XLAT_VAL_118 + | XLAT_VAL_118 +# endif +# ifdef XLAT_VAL_119 + | XLAT_VAL_119 +# endif +# ifdef XLAT_VAL_120 + | XLAT_VAL_120 +# endif +# ifdef XLAT_VAL_121 + | XLAT_VAL_121 +# endif +# ifdef XLAT_VAL_122 + | XLAT_VAL_122 +# endif +# ifdef XLAT_VAL_123 + | XLAT_VAL_123 +# endif +# ifdef XLAT_VAL_124 + | XLAT_VAL_124 +# endif +# ifdef XLAT_VAL_125 + | XLAT_VAL_125 +# endif +# ifdef XLAT_VAL_126 + | XLAT_VAL_126 +# endif +# ifdef XLAT_VAL_127 + | XLAT_VAL_127 +# endif +# ifdef XLAT_VAL_128 + | XLAT_VAL_128 +# endif +# ifdef XLAT_VAL_129 + | XLAT_VAL_129 +# endif +# ifdef XLAT_VAL_130 + | XLAT_VAL_130 +# endif +# ifdef XLAT_VAL_131 + | XLAT_VAL_131 +# endif +# ifdef XLAT_VAL_132 + | XLAT_VAL_132 +# endif +# ifdef XLAT_VAL_133 + | XLAT_VAL_133 +# endif +# ifdef XLAT_VAL_134 + | XLAT_VAL_134 +# endif +# ifdef XLAT_VAL_135 + | XLAT_VAL_135 +# endif +# ifdef XLAT_VAL_136 + | XLAT_VAL_136 +# endif +# ifdef XLAT_VAL_137 + | XLAT_VAL_137 +# endif +# ifdef XLAT_VAL_138 + | XLAT_VAL_138 +# endif +# ifdef XLAT_VAL_139 + | XLAT_VAL_139 +# endif +# ifdef XLAT_VAL_140 + | XLAT_VAL_140 +# endif +# ifdef XLAT_VAL_141 + | XLAT_VAL_141 +# endif +# ifdef XLAT_VAL_142 + | XLAT_VAL_142 +# endif +# ifdef XLAT_VAL_143 + | XLAT_VAL_143 +# endif +# ifdef XLAT_VAL_144 + | XLAT_VAL_144 +# endif +# ifdef XLAT_VAL_145 + | XLAT_VAL_145 +# endif +# ifdef XLAT_VAL_146 + | XLAT_VAL_146 +# endif +# ifdef XLAT_VAL_147 + | XLAT_VAL_147 +# endif +# ifdef XLAT_VAL_148 + | XLAT_VAL_148 +# endif +# ifdef XLAT_VAL_149 + | XLAT_VAL_149 +# endif +# ifdef XLAT_VAL_150 + | XLAT_VAL_150 +# endif +# ifdef XLAT_VAL_151 + | XLAT_VAL_151 +# endif +# ifdef XLAT_VAL_152 + | XLAT_VAL_152 +# endif +# ifdef XLAT_VAL_153 + | XLAT_VAL_153 +# endif +# ifdef XLAT_VAL_154 + | XLAT_VAL_154 +# endif +# ifdef XLAT_VAL_155 + | XLAT_VAL_155 +# endif +# ifdef XLAT_VAL_156 + | XLAT_VAL_156 +# endif +# ifdef XLAT_VAL_157 + | XLAT_VAL_157 +# endif +# ifdef XLAT_VAL_158 + | XLAT_VAL_158 +# endif +# ifdef XLAT_VAL_159 + | XLAT_VAL_159 +# endif +# ifdef XLAT_VAL_160 + | XLAT_VAL_160 +# endif +# ifdef XLAT_VAL_161 + | XLAT_VAL_161 +# endif +# ifdef XLAT_VAL_162 + | XLAT_VAL_162 +# endif +# ifdef XLAT_VAL_163 + | XLAT_VAL_163 +# endif +# ifdef XLAT_VAL_164 + | XLAT_VAL_164 +# endif +# ifdef XLAT_VAL_165 + | XLAT_VAL_165 +# endif +# ifdef XLAT_VAL_166 + | XLAT_VAL_166 +# endif +# ifdef XLAT_VAL_167 + | XLAT_VAL_167 +# endif +# ifdef XLAT_VAL_168 + | XLAT_VAL_168 +# endif +# ifdef XLAT_VAL_169 + | XLAT_VAL_169 +# endif +# ifdef XLAT_VAL_170 + | XLAT_VAL_170 +# endif +# ifdef XLAT_VAL_171 + | XLAT_VAL_171 +# endif +# ifdef XLAT_VAL_172 + | XLAT_VAL_172 +# endif +# ifdef XLAT_VAL_173 + | XLAT_VAL_173 +# endif +# ifdef XLAT_VAL_174 + | XLAT_VAL_174 +# endif +# ifdef XLAT_VAL_175 + | XLAT_VAL_175 +# endif +# ifdef XLAT_VAL_176 + | XLAT_VAL_176 +# endif +# ifdef XLAT_VAL_177 + | XLAT_VAL_177 +# endif +# ifdef XLAT_VAL_178 + | XLAT_VAL_178 +# endif +# ifdef XLAT_VAL_179 + | XLAT_VAL_179 +# endif +# ifdef XLAT_VAL_180 + | XLAT_VAL_180 +# endif +# ifdef XLAT_VAL_181 + | XLAT_VAL_181 +# endif +# ifdef XLAT_VAL_182 + | XLAT_VAL_182 +# endif +# ifdef XLAT_VAL_183 + | XLAT_VAL_183 +# endif +# ifdef XLAT_VAL_184 + | XLAT_VAL_184 +# endif +# ifdef XLAT_VAL_185 + | XLAT_VAL_185 +# endif +# ifdef XLAT_VAL_186 + | XLAT_VAL_186 +# endif +# ifdef XLAT_VAL_187 + | XLAT_VAL_187 +# endif +# ifdef XLAT_VAL_188 + | XLAT_VAL_188 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif +# ifdef XLAT_STR_13 + + sizeof(XLAT_STR_13) +# endif +# ifdef XLAT_STR_14 + + sizeof(XLAT_STR_14) +# endif +# ifdef XLAT_STR_15 + + sizeof(XLAT_STR_15) +# endif +# ifdef XLAT_STR_16 + + sizeof(XLAT_STR_16) +# endif +# ifdef XLAT_STR_17 + + sizeof(XLAT_STR_17) +# endif +# ifdef XLAT_STR_18 + + sizeof(XLAT_STR_18) +# endif +# ifdef XLAT_STR_19 + + sizeof(XLAT_STR_19) +# endif +# ifdef XLAT_STR_20 + + sizeof(XLAT_STR_20) +# endif +# ifdef XLAT_STR_21 + + sizeof(XLAT_STR_21) +# endif +# ifdef XLAT_STR_22 + + sizeof(XLAT_STR_22) +# endif +# ifdef XLAT_STR_23 + + sizeof(XLAT_STR_23) +# endif +# ifdef XLAT_STR_24 + + sizeof(XLAT_STR_24) +# endif +# ifdef XLAT_STR_25 + + sizeof(XLAT_STR_25) +# endif +# ifdef XLAT_STR_26 + + sizeof(XLAT_STR_26) +# endif +# ifdef XLAT_STR_27 + + sizeof(XLAT_STR_27) +# endif +# ifdef XLAT_STR_28 + + sizeof(XLAT_STR_28) +# endif +# ifdef XLAT_STR_29 + + sizeof(XLAT_STR_29) +# endif +# ifdef XLAT_STR_30 + + sizeof(XLAT_STR_30) +# endif +# ifdef XLAT_STR_31 + + sizeof(XLAT_STR_31) +# endif +# ifdef XLAT_STR_32 + + sizeof(XLAT_STR_32) +# endif +# ifdef XLAT_STR_33 + + sizeof(XLAT_STR_33) +# endif +# ifdef XLAT_STR_34 + + sizeof(XLAT_STR_34) +# endif +# ifdef XLAT_STR_35 + + sizeof(XLAT_STR_35) +# endif +# ifdef XLAT_STR_36 + + sizeof(XLAT_STR_36) +# endif +# ifdef XLAT_STR_37 + + sizeof(XLAT_STR_37) +# endif +# ifdef XLAT_STR_38 + + sizeof(XLAT_STR_38) +# endif +# ifdef XLAT_STR_39 + + sizeof(XLAT_STR_39) +# endif +# ifdef XLAT_STR_40 + + sizeof(XLAT_STR_40) +# endif +# ifdef XLAT_STR_41 + + sizeof(XLAT_STR_41) +# endif +# ifdef XLAT_STR_42 + + sizeof(XLAT_STR_42) +# endif +# ifdef XLAT_STR_43 + + sizeof(XLAT_STR_43) +# endif +# ifdef XLAT_STR_44 + + sizeof(XLAT_STR_44) +# endif +# ifdef XLAT_STR_45 + + sizeof(XLAT_STR_45) +# endif +# ifdef XLAT_STR_46 + + sizeof(XLAT_STR_46) +# endif +# ifdef XLAT_STR_47 + + sizeof(XLAT_STR_47) +# endif +# ifdef XLAT_STR_48 + + sizeof(XLAT_STR_48) +# endif +# ifdef XLAT_STR_49 + + sizeof(XLAT_STR_49) +# endif +# ifdef XLAT_STR_50 + + sizeof(XLAT_STR_50) +# endif +# ifdef XLAT_STR_51 + + sizeof(XLAT_STR_51) +# endif +# ifdef XLAT_STR_52 + + sizeof(XLAT_STR_52) +# endif +# ifdef XLAT_STR_53 + + sizeof(XLAT_STR_53) +# endif +# ifdef XLAT_STR_54 + + sizeof(XLAT_STR_54) +# endif +# ifdef XLAT_STR_55 + + sizeof(XLAT_STR_55) +# endif +# ifdef XLAT_STR_56 + + sizeof(XLAT_STR_56) +# endif +# ifdef XLAT_STR_57 + + sizeof(XLAT_STR_57) +# endif +# ifdef XLAT_STR_58 + + sizeof(XLAT_STR_58) +# endif +# ifdef XLAT_STR_59 + + sizeof(XLAT_STR_59) +# endif +# ifdef XLAT_STR_60 + + sizeof(XLAT_STR_60) +# endif +# ifdef XLAT_STR_61 + + sizeof(XLAT_STR_61) +# endif +# ifdef XLAT_STR_62 + + sizeof(XLAT_STR_62) +# endif +# ifdef XLAT_STR_63 + + sizeof(XLAT_STR_63) +# endif +# ifdef XLAT_STR_64 + + sizeof(XLAT_STR_64) +# endif +# ifdef XLAT_STR_65 + + sizeof(XLAT_STR_65) +# endif +# ifdef XLAT_STR_66 + + sizeof(XLAT_STR_66) +# endif +# ifdef XLAT_STR_67 + + sizeof(XLAT_STR_67) +# endif +# ifdef XLAT_STR_68 + + sizeof(XLAT_STR_68) +# endif +# ifdef XLAT_STR_69 + + sizeof(XLAT_STR_69) +# endif +# ifdef XLAT_STR_70 + + sizeof(XLAT_STR_70) +# endif +# ifdef XLAT_STR_71 + + sizeof(XLAT_STR_71) +# endif +# ifdef XLAT_STR_72 + + sizeof(XLAT_STR_72) +# endif +# ifdef XLAT_STR_73 + + sizeof(XLAT_STR_73) +# endif +# ifdef XLAT_STR_74 + + sizeof(XLAT_STR_74) +# endif +# ifdef XLAT_STR_75 + + sizeof(XLAT_STR_75) +# endif +# ifdef XLAT_STR_76 + + sizeof(XLAT_STR_76) +# endif +# ifdef XLAT_STR_77 + + sizeof(XLAT_STR_77) +# endif +# ifdef XLAT_STR_78 + + sizeof(XLAT_STR_78) +# endif +# ifdef XLAT_STR_79 + + sizeof(XLAT_STR_79) +# endif +# ifdef XLAT_STR_80 + + sizeof(XLAT_STR_80) +# endif +# ifdef XLAT_STR_81 + + sizeof(XLAT_STR_81) +# endif +# ifdef XLAT_STR_82 + + sizeof(XLAT_STR_82) +# endif +# ifdef XLAT_STR_83 + + sizeof(XLAT_STR_83) +# endif +# ifdef XLAT_STR_84 + + sizeof(XLAT_STR_84) +# endif +# ifdef XLAT_STR_85 + + sizeof(XLAT_STR_85) +# endif +# ifdef XLAT_STR_86 + + sizeof(XLAT_STR_86) +# endif +# ifdef XLAT_STR_87 + + sizeof(XLAT_STR_87) +# endif +# ifdef XLAT_STR_88 + + sizeof(XLAT_STR_88) +# endif +# ifdef XLAT_STR_89 + + sizeof(XLAT_STR_89) +# endif +# ifdef XLAT_STR_90 + + sizeof(XLAT_STR_90) +# endif +# ifdef XLAT_STR_91 + + sizeof(XLAT_STR_91) +# endif +# ifdef XLAT_STR_92 + + sizeof(XLAT_STR_92) +# endif +# ifdef XLAT_STR_93 + + sizeof(XLAT_STR_93) +# endif +# ifdef XLAT_STR_94 + + sizeof(XLAT_STR_94) +# endif +# ifdef XLAT_STR_95 + + sizeof(XLAT_STR_95) +# endif +# ifdef XLAT_STR_96 + + sizeof(XLAT_STR_96) +# endif +# ifdef XLAT_STR_97 + + sizeof(XLAT_STR_97) +# endif +# ifdef XLAT_STR_98 + + sizeof(XLAT_STR_98) +# endif +# ifdef XLAT_STR_99 + + sizeof(XLAT_STR_99) +# endif +# ifdef XLAT_STR_100 + + sizeof(XLAT_STR_100) +# endif +# ifdef XLAT_STR_101 + + sizeof(XLAT_STR_101) +# endif +# ifdef XLAT_STR_102 + + sizeof(XLAT_STR_102) +# endif +# ifdef XLAT_STR_103 + + sizeof(XLAT_STR_103) +# endif +# ifdef XLAT_STR_104 + + sizeof(XLAT_STR_104) +# endif +# ifdef XLAT_STR_105 + + sizeof(XLAT_STR_105) +# endif +# ifdef XLAT_STR_106 + + sizeof(XLAT_STR_106) +# endif +# ifdef XLAT_STR_107 + + sizeof(XLAT_STR_107) +# endif +# ifdef XLAT_STR_108 + + sizeof(XLAT_STR_108) +# endif +# ifdef XLAT_STR_109 + + sizeof(XLAT_STR_109) +# endif +# ifdef XLAT_STR_110 + + sizeof(XLAT_STR_110) +# endif +# ifdef XLAT_STR_111 + + sizeof(XLAT_STR_111) +# endif +# ifdef XLAT_STR_112 + + sizeof(XLAT_STR_112) +# endif +# ifdef XLAT_STR_113 + + sizeof(XLAT_STR_113) +# endif +# ifdef XLAT_STR_114 + + sizeof(XLAT_STR_114) +# endif +# ifdef XLAT_STR_115 + + sizeof(XLAT_STR_115) +# endif +# ifdef XLAT_STR_116 + + sizeof(XLAT_STR_116) +# endif +# ifdef XLAT_STR_117 + + sizeof(XLAT_STR_117) +# endif +# ifdef XLAT_STR_118 + + sizeof(XLAT_STR_118) +# endif +# ifdef XLAT_STR_119 + + sizeof(XLAT_STR_119) +# endif +# ifdef XLAT_STR_120 + + sizeof(XLAT_STR_120) +# endif +# ifdef XLAT_STR_121 + + sizeof(XLAT_STR_121) +# endif +# ifdef XLAT_STR_122 + + sizeof(XLAT_STR_122) +# endif +# ifdef XLAT_STR_123 + + sizeof(XLAT_STR_123) +# endif +# ifdef XLAT_STR_124 + + sizeof(XLAT_STR_124) +# endif +# ifdef XLAT_STR_125 + + sizeof(XLAT_STR_125) +# endif +# ifdef XLAT_STR_126 + + sizeof(XLAT_STR_126) +# endif +# ifdef XLAT_STR_127 + + sizeof(XLAT_STR_127) +# endif +# ifdef XLAT_STR_128 + + sizeof(XLAT_STR_128) +# endif +# ifdef XLAT_STR_129 + + sizeof(XLAT_STR_129) +# endif +# ifdef XLAT_STR_130 + + sizeof(XLAT_STR_130) +# endif +# ifdef XLAT_STR_131 + + sizeof(XLAT_STR_131) +# endif +# ifdef XLAT_STR_132 + + sizeof(XLAT_STR_132) +# endif +# ifdef XLAT_STR_133 + + sizeof(XLAT_STR_133) +# endif +# ifdef XLAT_STR_134 + + sizeof(XLAT_STR_134) +# endif +# ifdef XLAT_STR_135 + + sizeof(XLAT_STR_135) +# endif +# ifdef XLAT_STR_136 + + sizeof(XLAT_STR_136) +# endif +# ifdef XLAT_STR_137 + + sizeof(XLAT_STR_137) +# endif +# ifdef XLAT_STR_138 + + sizeof(XLAT_STR_138) +# endif +# ifdef XLAT_STR_139 + + sizeof(XLAT_STR_139) +# endif +# ifdef XLAT_STR_140 + + sizeof(XLAT_STR_140) +# endif +# ifdef XLAT_STR_141 + + sizeof(XLAT_STR_141) +# endif +# ifdef XLAT_STR_142 + + sizeof(XLAT_STR_142) +# endif +# ifdef XLAT_STR_143 + + sizeof(XLAT_STR_143) +# endif +# ifdef XLAT_STR_144 + + sizeof(XLAT_STR_144) +# endif +# ifdef XLAT_STR_145 + + sizeof(XLAT_STR_145) +# endif +# ifdef XLAT_STR_146 + + sizeof(XLAT_STR_146) +# endif +# ifdef XLAT_STR_147 + + sizeof(XLAT_STR_147) +# endif +# ifdef XLAT_STR_148 + + sizeof(XLAT_STR_148) +# endif +# ifdef XLAT_STR_149 + + sizeof(XLAT_STR_149) +# endif +# ifdef XLAT_STR_150 + + sizeof(XLAT_STR_150) +# endif +# ifdef XLAT_STR_151 + + sizeof(XLAT_STR_151) +# endif +# ifdef XLAT_STR_152 + + sizeof(XLAT_STR_152) +# endif +# ifdef XLAT_STR_153 + + sizeof(XLAT_STR_153) +# endif +# ifdef XLAT_STR_154 + + sizeof(XLAT_STR_154) +# endif +# ifdef XLAT_STR_155 + + sizeof(XLAT_STR_155) +# endif +# ifdef XLAT_STR_156 + + sizeof(XLAT_STR_156) +# endif +# ifdef XLAT_STR_157 + + sizeof(XLAT_STR_157) +# endif +# ifdef XLAT_STR_158 + + sizeof(XLAT_STR_158) +# endif +# ifdef XLAT_STR_159 + + sizeof(XLAT_STR_159) +# endif +# ifdef XLAT_STR_160 + + sizeof(XLAT_STR_160) +# endif +# ifdef XLAT_STR_161 + + sizeof(XLAT_STR_161) +# endif +# ifdef XLAT_STR_162 + + sizeof(XLAT_STR_162) +# endif +# ifdef XLAT_STR_163 + + sizeof(XLAT_STR_163) +# endif +# ifdef XLAT_STR_164 + + sizeof(XLAT_STR_164) +# endif +# ifdef XLAT_STR_165 + + sizeof(XLAT_STR_165) +# endif +# ifdef XLAT_STR_166 + + sizeof(XLAT_STR_166) +# endif +# ifdef XLAT_STR_167 + + sizeof(XLAT_STR_167) +# endif +# ifdef XLAT_STR_168 + + sizeof(XLAT_STR_168) +# endif +# ifdef XLAT_STR_169 + + sizeof(XLAT_STR_169) +# endif +# ifdef XLAT_STR_170 + + sizeof(XLAT_STR_170) +# endif +# ifdef XLAT_STR_171 + + sizeof(XLAT_STR_171) +# endif +# ifdef XLAT_STR_172 + + sizeof(XLAT_STR_172) +# endif +# ifdef XLAT_STR_173 + + sizeof(XLAT_STR_173) +# endif +# ifdef XLAT_STR_174 + + sizeof(XLAT_STR_174) +# endif +# ifdef XLAT_STR_175 + + sizeof(XLAT_STR_175) +# endif +# ifdef XLAT_STR_176 + + sizeof(XLAT_STR_176) +# endif +# ifdef XLAT_STR_177 + + sizeof(XLAT_STR_177) +# endif +# ifdef XLAT_STR_178 + + sizeof(XLAT_STR_178) +# endif +# ifdef XLAT_STR_179 + + sizeof(XLAT_STR_179) +# endif +# ifdef XLAT_STR_180 + + sizeof(XLAT_STR_180) +# endif +# ifdef XLAT_STR_181 + + sizeof(XLAT_STR_181) +# endif +# ifdef XLAT_STR_182 + + sizeof(XLAT_STR_182) +# endif +# ifdef XLAT_STR_183 + + sizeof(XLAT_STR_183) +# endif +# ifdef XLAT_STR_184 + + sizeof(XLAT_STR_184) +# endif +# ifdef XLAT_STR_185 + + sizeof(XLAT_STR_185) +# endif +# ifdef XLAT_STR_186 + + sizeof(XLAT_STR_186) +# endif +# ifdef XLAT_STR_187 + + sizeof(XLAT_STR_187) +# endif +# ifdef XLAT_STR_188 + + sizeof(XLAT_STR_188) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 +# undef XLAT_STR_13 +# undef XLAT_VAL_13 +# undef XLAT_STR_14 +# undef XLAT_VAL_14 +# undef XLAT_STR_15 +# undef XLAT_VAL_15 +# undef XLAT_STR_16 +# undef XLAT_VAL_16 +# undef XLAT_STR_17 +# undef XLAT_VAL_17 +# undef XLAT_STR_18 +# undef XLAT_VAL_18 +# undef XLAT_STR_19 +# undef XLAT_VAL_19 +# undef XLAT_STR_20 +# undef XLAT_VAL_20 +# undef XLAT_STR_21 +# undef XLAT_VAL_21 +# undef XLAT_STR_22 +# undef XLAT_VAL_22 +# undef XLAT_STR_23 +# undef XLAT_VAL_23 +# undef XLAT_STR_24 +# undef XLAT_VAL_24 +# undef XLAT_STR_25 +# undef XLAT_VAL_25 +# undef XLAT_STR_26 +# undef XLAT_VAL_26 +# undef XLAT_STR_27 +# undef XLAT_VAL_27 +# undef XLAT_STR_28 +# undef XLAT_VAL_28 +# undef XLAT_STR_29 +# undef XLAT_VAL_29 +# undef XLAT_STR_30 +# undef XLAT_VAL_30 +# undef XLAT_STR_31 +# undef XLAT_VAL_31 +# undef XLAT_STR_32 +# undef XLAT_VAL_32 +# undef XLAT_STR_33 +# undef XLAT_VAL_33 +# undef XLAT_STR_34 +# undef XLAT_VAL_34 +# undef XLAT_STR_35 +# undef XLAT_VAL_35 +# undef XLAT_STR_36 +# undef XLAT_VAL_36 +# undef XLAT_STR_37 +# undef XLAT_VAL_37 +# undef XLAT_STR_38 +# undef XLAT_VAL_38 +# undef XLAT_STR_39 +# undef XLAT_VAL_39 +# undef XLAT_STR_40 +# undef XLAT_VAL_40 +# undef XLAT_STR_41 +# undef XLAT_VAL_41 +# undef XLAT_STR_42 +# undef XLAT_VAL_42 +# undef XLAT_STR_43 +# undef XLAT_VAL_43 +# undef XLAT_STR_44 +# undef XLAT_VAL_44 +# undef XLAT_STR_45 +# undef XLAT_VAL_45 +# undef XLAT_STR_46 +# undef XLAT_VAL_46 +# undef XLAT_STR_47 +# undef XLAT_VAL_47 +# undef XLAT_STR_48 +# undef XLAT_VAL_48 +# undef XLAT_STR_49 +# undef XLAT_VAL_49 +# undef XLAT_STR_50 +# undef XLAT_VAL_50 +# undef XLAT_STR_51 +# undef XLAT_VAL_51 +# undef XLAT_STR_52 +# undef XLAT_VAL_52 +# undef XLAT_STR_53 +# undef XLAT_VAL_53 +# undef XLAT_STR_54 +# undef XLAT_VAL_54 +# undef XLAT_STR_55 +# undef XLAT_VAL_55 +# undef XLAT_STR_56 +# undef XLAT_VAL_56 +# undef XLAT_STR_57 +# undef XLAT_VAL_57 +# undef XLAT_STR_58 +# undef XLAT_VAL_58 +# undef XLAT_STR_59 +# undef XLAT_VAL_59 +# undef XLAT_STR_60 +# undef XLAT_VAL_60 +# undef XLAT_STR_61 +# undef XLAT_VAL_61 +# undef XLAT_STR_62 +# undef XLAT_VAL_62 +# undef XLAT_STR_63 +# undef XLAT_VAL_63 +# undef XLAT_STR_64 +# undef XLAT_VAL_64 +# undef XLAT_STR_65 +# undef XLAT_VAL_65 +# undef XLAT_STR_66 +# undef XLAT_VAL_66 +# undef XLAT_STR_67 +# undef XLAT_VAL_67 +# undef XLAT_STR_68 +# undef XLAT_VAL_68 +# undef XLAT_STR_69 +# undef XLAT_VAL_69 +# undef XLAT_STR_70 +# undef XLAT_VAL_70 +# undef XLAT_STR_71 +# undef XLAT_VAL_71 +# undef XLAT_STR_72 +# undef XLAT_VAL_72 +# undef XLAT_STR_73 +# undef XLAT_VAL_73 +# undef XLAT_STR_74 +# undef XLAT_VAL_74 +# undef XLAT_STR_75 +# undef XLAT_VAL_75 +# undef XLAT_STR_76 +# undef XLAT_VAL_76 +# undef XLAT_STR_77 +# undef XLAT_VAL_77 +# undef XLAT_STR_78 +# undef XLAT_VAL_78 +# undef XLAT_STR_79 +# undef XLAT_VAL_79 +# undef XLAT_STR_80 +# undef XLAT_VAL_80 +# undef XLAT_STR_81 +# undef XLAT_VAL_81 +# undef XLAT_STR_82 +# undef XLAT_VAL_82 +# undef XLAT_STR_83 +# undef XLAT_VAL_83 +# undef XLAT_STR_84 +# undef XLAT_VAL_84 +# undef XLAT_STR_85 +# undef XLAT_VAL_85 +# undef XLAT_STR_86 +# undef XLAT_VAL_86 +# undef XLAT_STR_87 +# undef XLAT_VAL_87 +# undef XLAT_STR_88 +# undef XLAT_VAL_88 +# undef XLAT_STR_89 +# undef XLAT_VAL_89 +# undef XLAT_STR_90 +# undef XLAT_VAL_90 +# undef XLAT_STR_91 +# undef XLAT_VAL_91 +# undef XLAT_STR_92 +# undef XLAT_VAL_92 +# undef XLAT_STR_93 +# undef XLAT_VAL_93 +# undef XLAT_STR_94 +# undef XLAT_VAL_94 +# undef XLAT_STR_95 +# undef XLAT_VAL_95 +# undef XLAT_STR_96 +# undef XLAT_VAL_96 +# undef XLAT_STR_97 +# undef XLAT_VAL_97 +# undef XLAT_STR_98 +# undef XLAT_VAL_98 +# undef XLAT_STR_99 +# undef XLAT_VAL_99 +# undef XLAT_STR_100 +# undef XLAT_VAL_100 +# undef XLAT_STR_101 +# undef XLAT_VAL_101 +# undef XLAT_STR_102 +# undef XLAT_VAL_102 +# undef XLAT_STR_103 +# undef XLAT_VAL_103 +# undef XLAT_STR_104 +# undef XLAT_VAL_104 +# undef XLAT_STR_105 +# undef XLAT_VAL_105 +# undef XLAT_STR_106 +# undef XLAT_VAL_106 +# undef XLAT_STR_107 +# undef XLAT_VAL_107 +# undef XLAT_STR_108 +# undef XLAT_VAL_108 +# undef XLAT_STR_109 +# undef XLAT_VAL_109 +# undef XLAT_STR_110 +# undef XLAT_VAL_110 +# undef XLAT_STR_111 +# undef XLAT_VAL_111 +# undef XLAT_STR_112 +# undef XLAT_VAL_112 +# undef XLAT_STR_113 +# undef XLAT_VAL_113 +# undef XLAT_STR_114 +# undef XLAT_VAL_114 +# undef XLAT_STR_115 +# undef XLAT_VAL_115 +# undef XLAT_STR_116 +# undef XLAT_VAL_116 +# undef XLAT_STR_117 +# undef XLAT_VAL_117 +# undef XLAT_STR_118 +# undef XLAT_VAL_118 +# undef XLAT_STR_119 +# undef XLAT_VAL_119 +# undef XLAT_STR_120 +# undef XLAT_VAL_120 +# undef XLAT_STR_121 +# undef XLAT_VAL_121 +# undef XLAT_STR_122 +# undef XLAT_VAL_122 +# undef XLAT_STR_123 +# undef XLAT_VAL_123 +# undef XLAT_STR_124 +# undef XLAT_VAL_124 +# undef XLAT_STR_125 +# undef XLAT_VAL_125 +# undef XLAT_STR_126 +# undef XLAT_VAL_126 +# undef XLAT_STR_127 +# undef XLAT_VAL_127 +# undef XLAT_STR_128 +# undef XLAT_VAL_128 +# undef XLAT_STR_129 +# undef XLAT_VAL_129 +# undef XLAT_STR_130 +# undef XLAT_VAL_130 +# undef XLAT_STR_131 +# undef XLAT_VAL_131 +# undef XLAT_STR_132 +# undef XLAT_VAL_132 +# undef XLAT_STR_133 +# undef XLAT_VAL_133 +# undef XLAT_STR_134 +# undef XLAT_VAL_134 +# undef XLAT_STR_135 +# undef XLAT_VAL_135 +# undef XLAT_STR_136 +# undef XLAT_VAL_136 +# undef XLAT_STR_137 +# undef XLAT_VAL_137 +# undef XLAT_STR_138 +# undef XLAT_VAL_138 +# undef XLAT_STR_139 +# undef XLAT_VAL_139 +# undef XLAT_STR_140 +# undef XLAT_VAL_140 +# undef XLAT_STR_141 +# undef XLAT_VAL_141 +# undef XLAT_STR_142 +# undef XLAT_VAL_142 +# undef XLAT_STR_143 +# undef XLAT_VAL_143 +# undef XLAT_STR_144 +# undef XLAT_VAL_144 +# undef XLAT_STR_145 +# undef XLAT_VAL_145 +# undef XLAT_STR_146 +# undef XLAT_VAL_146 +# undef XLAT_STR_147 +# undef XLAT_VAL_147 +# undef XLAT_STR_148 +# undef XLAT_VAL_148 +# undef XLAT_STR_149 +# undef XLAT_VAL_149 +# undef XLAT_STR_150 +# undef XLAT_VAL_150 +# undef XLAT_STR_151 +# undef XLAT_VAL_151 +# undef XLAT_STR_152 +# undef XLAT_VAL_152 +# undef XLAT_STR_153 +# undef XLAT_VAL_153 +# undef XLAT_STR_154 +# undef XLAT_VAL_154 +# undef XLAT_STR_155 +# undef XLAT_VAL_155 +# undef XLAT_STR_156 +# undef XLAT_VAL_156 +# undef XLAT_STR_157 +# undef XLAT_VAL_157 +# undef XLAT_STR_158 +# undef XLAT_VAL_158 +# undef XLAT_STR_159 +# undef XLAT_VAL_159 +# undef XLAT_STR_160 +# undef XLAT_VAL_160 +# undef XLAT_STR_161 +# undef XLAT_VAL_161 +# undef XLAT_STR_162 +# undef XLAT_VAL_162 +# undef XLAT_STR_163 +# undef XLAT_VAL_163 +# undef XLAT_STR_164 +# undef XLAT_VAL_164 +# undef XLAT_STR_165 +# undef XLAT_VAL_165 +# undef XLAT_STR_166 +# undef XLAT_VAL_166 +# undef XLAT_STR_167 +# undef XLAT_VAL_167 +# undef XLAT_STR_168 +# undef XLAT_VAL_168 +# undef XLAT_STR_169 +# undef XLAT_VAL_169 +# undef XLAT_STR_170 +# undef XLAT_VAL_170 +# undef XLAT_STR_171 +# undef XLAT_VAL_171 +# undef XLAT_STR_172 +# undef XLAT_VAL_172 +# undef XLAT_STR_173 +# undef XLAT_VAL_173 +# undef XLAT_STR_174 +# undef XLAT_VAL_174 +# undef XLAT_STR_175 +# undef XLAT_VAL_175 +# undef XLAT_STR_176 +# undef XLAT_VAL_176 +# undef XLAT_STR_177 +# undef XLAT_VAL_177 +# undef XLAT_STR_178 +# undef XLAT_VAL_178 +# undef XLAT_STR_179 +# undef XLAT_VAL_179 +# undef XLAT_STR_180 +# undef XLAT_VAL_180 +# undef XLAT_STR_181 +# undef XLAT_VAL_181 +# undef XLAT_STR_182 +# undef XLAT_VAL_182 +# undef XLAT_STR_183 +# undef XLAT_VAL_183 +# undef XLAT_STR_184 +# undef XLAT_VAL_184 +# undef XLAT_STR_185 +# undef XLAT_VAL_185 +# undef XLAT_STR_186 +# undef XLAT_VAL_186 +# undef XLAT_STR_187 +# undef XLAT_VAL_187 +# undef XLAT_STR_188 +# undef XLAT_VAL_188 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/v4l2_pix_fmts.in b/xlat/v4l2_pix_fmts.in index 5ba8b4d0..006564c2 100644 --- a/xlat/v4l2_pix_fmts.in +++ b/xlat/v4l2_pix_fmts.in @@ -1,7 +1,8 @@ -/* sed -rn 's/.*v4l2_fourcc(_be)?\('"'(.)', '(.)', '(.)', '(.)'"'\).*/\10\5\4\3\2\t\0/p' |LC_COLLATE=C sort -k1,1 -t' ' |cut -f2- */ +#sorted sed -rn 's/.*v4l2_fourcc(_be)?\('"'(.)', '(.)', '(.)', '(.)'"'\).*/\10\5\4\3\2\t\0/p' |LC_COLLATE=C sort -k1,1 -t' ' |cut -f2- V4L2_PIX_FMT_Y10 v4l2_fourcc('Y', '1', '0', ' ') /* 10 Greyscale */ V4L2_PIX_FMT_Y12 v4l2_fourcc('Y', '1', '2', ' ') /* 12 Greyscale */ V4L2_PIX_FMT_Y4 v4l2_fourcc('Y', '0', '4', ' ') /* 4 Greyscale */ +V4L2_PIX_FMT_Y14 v4l2_fourcc('Y', '1', '4', ' ') /* 14 Greyscale */ V4L2_PIX_FMT_Y6 v4l2_fourcc('Y', '0', '6', ' ') /* 6 Greyscale */ V4L2_PIX_FMT_Y16 v4l2_fourcc('Y', '1', '6', ' ') /* 16 Greyscale */ V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ') /* Depth data 16-bit */ @@ -38,7 +39,20 @@ V4L2_PIX_FMT_H264_NO_SC v4l2_fourcc('A', 'V', 'C', '1') /* H264 without start co V4L2_PIX_FMT_PWC1 v4l2_fourcc('P', 'W', 'C', '1') /* pwc older webcam */ V4L2_PIX_FMT_MPEG1 v4l2_fourcc('M', 'P', 'G', '1') /* MPEG-1 ES */ V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A', '1', '2') /* 12 GRGR.. BGBG.. */ +#ifndef STRACE_WORKAROUND_FOR_V4L2_PIX_FMT_BGRA444 +# define STRACE_WORKAROUND_FOR_V4L2_PIX_FMT_BGRA444 +/* + * V4L2_PIX_FMT_BGRA444 was introduced in Linux commit v5.2-rc1~33^2~24 with + * the value of v4l2_fourcc('B', 'A', '1', '2') and changed in commit + * v5.2-rc5-403-g22be8233b34f as it clashed with V4L2_PIX_FMT_SGRBG12. + */ +# undef V4L2_PIX_FMT_BGRA444 +#endif +V4L2_PIX_FMT_BGRA444 v4l2_fourcc('G', 'A', '1', '2') /* 16 bbbbgggg rrrraaaa */ +V4L2_PIX_FMT_RGBA444 v4l2_fourcc('R', 'A', '1', '2') /* 16 rrrrgggg bbbbaaaa */ +V4L2_PIX_FMT_ABGR444 v4l2_fourcc('A', 'B', '1', '2') /* 16 aaaabbbb ggggrrrr */ V4L2_PIX_FMT_SGBRG12 v4l2_fourcc('G', 'B', '1', '2') /* 12 GBGB.. RGRG.. */ +V4L2_PIX_FMT_XBGR444 v4l2_fourcc('X', 'B', '1', '2') /* 16 xxxxbbbb ggggrrrr */ V4L2_PIX_FMT_SBGGR12 v4l2_fourcc('B', 'G', '1', '2') /* 12 BGBG.. GRGR.. */ V4L2_PIX_FMT_SRGGB12 v4l2_fourcc('R', 'G', '1', '2') /* 12 RGRG.. GBGB.. */ V4L2_PIX_FMT_HM12 v4l2_fourcc('H', 'M', '1', '2') /* 8 YUV 4:2:0 16x16 macroblocks */ @@ -49,10 +63,11 @@ V4L2_PIX_FMT_YUV420M v4l2_fourcc('Y', 'M', '1', '2') /* 12 YUV420 planar */ V4L2_PIX_FMT_ARGB444 v4l2_fourcc('A', 'R', '1', '2') /* 16 aaaarrrr ggggbbbb */ V4L2_PIX_FMT_XRGB444 v4l2_fourcc('X', 'R', '1', '2') /* 16 xxxxrrrr ggggbbbb */ V4L2_PIX_FMT_SUNXI_TILED_NV12 v4l2_fourcc('S', 'T', '1', '2') /* Sunxi Tiled NV12 Format */ -V4L2_PIX_FMT_CNF4 v4l2_fourcc('C', 'N', 'F', '4') /* Intel 4-bit packed depth confidence information */ V4L2_PIX_FMT_YUV420 v4l2_fourcc('Y', 'U', '1', '2') /* 12 YUV 4:2:0 */ V4L2_PIX_FMT_NV12 v4l2_fourcc('N', 'V', '1', '2') /* 12 Y/CbCr 4:2:0 */ V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y', 'V', '1', '2') /* 12 YVU 4:2:0 */ +V4L2_PIX_FMT_BGRX444 v4l2_fourcc('B', 'X', '1', '2') /* 16 bbbbgggg rrrrxxxx */ +V4L2_PIX_FMT_RGBX444 v4l2_fourcc('R', 'X', '1', '2') /* 16 rrrrgggg bbbbxxxx */ V4L2_PIX_FMT_YVU444M v4l2_fourcc('Y', 'M', '4', '2') /* 24 YVU444 planar */ V4L2_PIX_FMT_NV42 v4l2_fourcc('N', 'V', '4', '2') /* 24 Y/CrCb 4:4:4 */ V4L2_PIX_FMT_PWC2 v4l2_fourcc('P', 'W', 'C', '2') /* pwc newer webcam */ @@ -62,29 +77,40 @@ V4L2_PIX_FMT_H263 v4l2_fourcc('H', '2', '6', '3') /* H263 */ V4L2_PIX_FMT_RGB24 v4l2_fourcc('R', 'G', 'B', '3') /* 24 RGB-8-8-8 */ V4L2_PIX_FMT_BGR24 v4l2_fourcc('B', 'G', 'R', '3') /* 24 BGR-8-8-8 */ V4L2_PIX_FMT_HSV24 v4l2_fourcc('H', 'S', 'V', '3') +V4L2_PIX_FMT_SGBRG14 v4l2_fourcc('G', 'B', '1', '4') /* 14 GBGB.. RGRG.. */ +V4L2_PIX_FMT_SBGGR14 v4l2_fourcc('B', 'G', '1', '4') /* 14 BGBG.. GRGR.. */ +V4L2_PIX_FMT_SRGGB14 v4l2_fourcc('R', 'G', '1', '4') /* 14 RGRG.. GBGB.. */ +V4L2_PIX_FMT_SGRBG14 v4l2_fourcc('G', 'R', '1', '4') /* 14 GRGR.. BGBG.. */ V4L2_PIX_FMT_ARGB32 v4l2_fourcc('B', 'A', '2', '4') /* 32 ARGB-8-8-8-8 */ +V4L2_PIX_FMT_BGRA32 v4l2_fourcc('R', 'A', '2', '4') /* 32 ABGR-8-8-8-8 */ +V4L2_PIX_FMT_RGBA32 v4l2_fourcc('A', 'B', '2', '4') /* 32 RGBA-8-8-8-8 */ +V4L2_PIX_FMT_RGBX32 v4l2_fourcc('X', 'B', '2', '4') /* 32 RGBX-8-8-8-8 */ V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4') /* 8 8-bit color */ V4L2_PIX_FMT_YUV444M v4l2_fourcc('Y', 'M', '2', '4') /* 24 YUV444 planar */ V4L2_PIX_FMT_ABGR32 v4l2_fourcc('A', 'R', '2', '4') /* 32 BGRA-8-8-8-8 */ V4L2_PIX_FMT_XBGR32 v4l2_fourcc('X', 'R', '2', '4') /* 32 BGRX-8-8-8-8 */ V4L2_PIX_FMT_NV24 v4l2_fourcc('N', 'V', '2', '4') /* 24 Y/CbCr 4:4:4 */ V4L2_PIX_FMT_XRGB32 v4l2_fourcc('B', 'X', '2', '4') /* 32 XRGB-8-8-8-8 */ +V4L2_PIX_FMT_BGRX32 v4l2_fourcc('R', 'X', '2', '4') /* 32 XBGR-8-8-8-8 */ V4L2_PIX_FMT_RGB444 v4l2_fourcc('R', '4', '4', '4') /* 16 xxxxrrrr ggggbbbb */ V4L2_PIX_FMT_YUV444 v4l2_fourcc('Y', '4', '4', '4') /* 16 xxxxyyyy uuuuvvvv */ V4L2_PIX_FMT_H264 v4l2_fourcc('H', '2', '6', '4') /* H264 with start codes */ V4L2_PIX_FMT_H264_MVC v4l2_fourcc('M', '2', '6', '4') /* H264 MVC */ V4L2_PIX_FMT_RGB32 v4l2_fourcc('R', 'G', 'B', '4') /* 32 RGB-8-8-8-8 */ +V4L2_PIX_FMT_CNF4 v4l2_fourcc('C', 'N', 'F', '4') /* Intel 4-bit packed depth confidence information */ V4L2_PIX_FMT_MPEG4 v4l2_fourcc('M', 'P', 'G', '4') /* MPEG-4 part 2 ES */ V4L2_PIX_FMT_BGR32 v4l2_fourcc('B', 'G', 'R', '4') /* 32 BGR-8-8-8-8 */ V4L2_PIX_FMT_HSV32 v4l2_fourcc('H', 'S', 'V', '4') V4L2_PIX_FMT_YUV32 v4l2_fourcc('Y', 'U', 'V', '4') /* 32 YUV-8-8-8-8 */ -V4L2_PIX_FMT_AYUV32 v4l2_fourcc('A', 'Y', 'U', 'V') /* 32 AYUV-8-8-8-8 */ -V4L2_PIX_FMT_XYUV32 v4l2_fourcc('X', 'Y', 'U', 'V') /* 32 XYUV-8-8-8-8 */ -V4L2_PIX_FMT_VUYA32 v4l2_fourcc('V', 'U', 'Y', 'A') /* 32 VUYA-8-8-8-8 */ -V4L2_PIX_FMT_VUYX32 v4l2_fourcc('V', 'U', 'Y', 'X') /* 32 VUYX-8-8-8-8 */ V4L2_PIX_FMT_SPCA505 v4l2_fourcc('S', '5', '0', '5') /* YYUV per line */ +V4L2_PIX_FMT_BGRA555 v4l2_fourcc('B', 'A', '1', '5') /* 16 BGRA-5-5-5-1 */ +V4L2_PIX_FMT_RGBA555 v4l2_fourcc('R', 'A', '1', '5') /* 16 RGBA-5-5-5-1 */ +V4L2_PIX_FMT_ABGR555 v4l2_fourcc('A', 'B', '1', '5') /* 16 ABGR-1-5-5-5 */ +V4L2_PIX_FMT_XBGR555 v4l2_fourcc('X', 'B', '1', '5') /* 16 XBGR-1-5-5-5 */ V4L2_PIX_FMT_ARGB555 v4l2_fourcc('A', 'R', '1', '5') /* 16 ARGB-1-5-5-5 */ V4L2_PIX_FMT_XRGB555 v4l2_fourcc('X', 'R', '1', '5') /* 16 XRGB-1-5-5-5 */ +V4L2_PIX_FMT_BGRX555 v4l2_fourcc('B', 'X', '1', '5') /* 16 BGRX-5-5-5-1 */ +V4L2_PIX_FMT_RGBX555 v4l2_fourcc('R', 'X', '1', '5') /* 16 RGBX-5-5-5-1 */ V4L2_PIX_FMT_ET61X251 v4l2_fourcc('E', '6', '2', '5') /* ET61X251 compression */ V4L2_PIX_FMT_SGBRG16 v4l2_fourcc('G', 'B', '1', '6') /* 16 GBGB.. RGRG.. */ V4L2_PIX_FMT_SRGGB16 v4l2_fourcc('R', 'G', '1', '6') /* 16 RGRG.. GBGB.. */ @@ -111,6 +137,7 @@ V4L2_PIX_FMT_SRGGB10P v4l2_fourcc('p', 'R', 'A', 'A') V4L2_PIX_FMT_SGRBG10P v4l2_fourcc('p', 'g', 'A', 'A') V4L2_PIX_FMT_CPIA1 v4l2_fourcc('C', 'P', 'I', 'A') /* cpia1 YUV */ V4L2_PIX_FMT_WNVA v4l2_fourcc('W', 'N', 'V', 'A') /* Winnov hw compress */ +V4L2_PIX_FMT_VUYA32 v4l2_fourcc('V', 'U', 'Y', 'A') /* 32 VUYA-8-8-8-8 */ V4L2_PIX_FMT_Y10BPACK v4l2_fourcc('Y', '1', '0', 'B') /* 10 Greyscale bit-packed */ V4L2_PIX_FMT_SRGGB8 v4l2_fourcc('R', 'G', 'G', 'B') /* 8 RGRG.. GBGB.. */ V4L2_PIX_FMT_SQ905C v4l2_fourcc('9', '0', '5', 'C') /* compressed RGGB bayer */ @@ -118,12 +145,12 @@ V4L2_PIX_FMT_SBGGR12P v4l2_fourcc('p', 'B', 'C', 'C') V4L2_PIX_FMT_SGBRG12P v4l2_fourcc('p', 'G', 'C', 'C') V4L2_PIX_FMT_SRGGB12P v4l2_fourcc('p', 'R', 'C', 'C') V4L2_PIX_FMT_SGRBG12P v4l2_fourcc('p', 'g', 'C', 'C') -V4L2_PIX_FMT_HEVC v4l2_fourcc('H', 'E', 'V', 'C') +V4L2_PIX_FMT_HEVC v4l2_fourcc('H', 'E', 'V', 'C') /* HEVC aka H.265 */ V4L2_PIX_FMT_XVID v4l2_fourcc('X', 'V', 'I', 'D') /* Xvid */ V4L2_PIX_FMT_SBGGR14P v4l2_fourcc('p', 'B', 'E', 'E') V4L2_PIX_FMT_SGBRG14P v4l2_fourcc('p', 'G', 'E', 'E') -V4L2_PIX_FMT_SGRBG14P v4l2_fourcc('p', 'g', 'E', 'E') V4L2_PIX_FMT_SRGGB14P v4l2_fourcc('p', 'R', 'E', 'E') +V4L2_PIX_FMT_SGRBG14P v4l2_fourcc('p', 'g', 'E', 'E') V4L2_PIX_FMT_VC1_ANNEX_G v4l2_fourcc('V', 'C', '1', 'G') /* SMPTE 421M Annex G compliant stream */ V4L2_PIX_FMT_IPU3_SGRBG10 v4l2_fourcc('i', 'p', '3', 'G') /* IPU3 packed 10-bit GRBG bayer */ V4L2_PIX_FMT_SGRBG8 v4l2_fourcc('G', 'R', 'B', 'G') /* 8 GRGR.. BGBG.. */ @@ -133,6 +160,7 @@ V4L2_PIX_FMT_MJPEG v4l2_fourcc('M', 'J', 'P', 'G') /* Motion-JPEG */ V4L2_PIX_FMT_PJPG v4l2_fourcc('P', 'J', 'P', 'G') /* Pixart 73xx JPEG */ V4L2_PIX_FMT_SGBRG8 v4l2_fourcc('G', 'B', 'R', 'G') /* 8 GBGB.. RGRG.. */ V4L2_PIX_FMT_BGR666 v4l2_fourcc('B', 'G', 'R', 'H') /* 18 BGR-6-6-6 */ +V4L2_PIX_FMT_FWHT_STATELESS v4l2_fourcc('S', 'F', 'W', 'H') /* Stateless FWHT (vicodec) */ V4L2_PIX_FMT_Y12I v4l2_fourcc('Y', '1', '2', 'I') /* Greyscale 12-bit L/R interleaved */ V4L2_PIX_FMT_S5C_UYVY_JPG v4l2_fourcc('S', '5', 'C', 'I') /* S5C73M3 interleaved UYVY/JPEG */ V4L2_PIX_FMT_KONICA420 v4l2_fourcc('K', 'O', 'N', 'I') /* YUV420 planar in blocks of 256 pixels */ @@ -153,9 +181,12 @@ V4L2_PIX_FMT_MPEG2_SLICE v4l2_fourcc('M', 'G', '2', 'S') /* MPEG-2 parsed slice V4L2_PIX_FMT_FWHT v4l2_fourcc('F', 'W', 'H', 'T') /* Fast Walsh Hadamard Transform (vicodec) */ V4L2_PIX_FMT_YVYU v4l2_fourcc('Y', 'V', 'Y', 'U') /* 16 YVU 4:2:2 */ V4L2_PIX_FMT_CIT_YYVYUY v4l2_fourcc('C', 'I', 'T', 'V') /* one line of Y then 1 line of VYUY */ +V4L2_PIX_FMT_AYUV32 v4l2_fourcc('A', 'Y', 'U', 'V') /* 32 AYUV-8-8-8-8 */ +V4L2_PIX_FMT_XYUV32 v4l2_fourcc('X', 'Y', 'U', 'V') /* 32 XYUV-8-8-8-8 */ V4L2_PIX_FMT_YYUV v4l2_fourcc('Y', 'Y', 'U', 'V') /* 16 YUV 4:2:2 */ V4L2_PIX_FMT_YUYV v4l2_fourcc('Y', 'U', 'Y', 'V') /* 16 YUV 4:2:2 */ V4L2_PIX_FMT_SN9C2028 v4l2_fourcc('S', 'O', 'N', 'X') /* compressed GBRG bayer */ +V4L2_PIX_FMT_VUYX32 v4l2_fourcc('V', 'U', 'Y', 'X') /* 32 VUYX-8-8-8-8 */ V4L2_PIX_FMT_GREY v4l2_fourcc('G', 'R', 'E', 'Y') /* 8 Greyscale */ V4L2_PIX_FMT_VYUY v4l2_fourcc('V', 'Y', 'U', 'Y') /* 16 YUV 4:2:2 */ V4L2_PIX_FMT_UYVY v4l2_fourcc('U', 'Y', 'V', 'Y') /* 16 YUV 4:2:2 */ diff --git a/xlat/v4l2_sdr_fmts.h b/xlat/v4l2_sdr_fmts.h index a0269092..f2a276f9 100644 --- a/xlat/v4l2_sdr_fmts.h +++ b/xlat/v4l2_sdr_fmts.h @@ -68,22 +68,109 @@ extern const struct xlat v4l2_sdr_fmts[]; # else -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat v4l2_sdr_fmts[] = { - +static const struct xlat_data v4l2_sdr_fmts_xdata[] = { XLAT(V4L2_SDR_FMT_PCU20BE), + #define XLAT_VAL_0 ((unsigned) (V4L2_SDR_FMT_PCU20BE)) + #define XLAT_STR_0 STRINGIFY(V4L2_SDR_FMT_PCU20BE) XLAT(V4L2_SDR_FMT_RU12LE), + #define XLAT_VAL_1 ((unsigned) (V4L2_SDR_FMT_RU12LE)) + #define XLAT_STR_1 STRINGIFY(V4L2_SDR_FMT_RU12LE) XLAT(V4L2_SDR_FMT_CS14LE), + #define XLAT_VAL_2 ((unsigned) (V4L2_SDR_FMT_CS14LE)) + #define XLAT_STR_2 STRINGIFY(V4L2_SDR_FMT_CS14LE) XLAT(V4L2_SDR_FMT_PCU16BE), + #define XLAT_VAL_3 ((unsigned) (V4L2_SDR_FMT_PCU16BE)) + #define XLAT_STR_3 STRINGIFY(V4L2_SDR_FMT_PCU16BE) XLAT(V4L2_SDR_FMT_CU16LE), + #define XLAT_VAL_4 ((unsigned) (V4L2_SDR_FMT_CU16LE)) + #define XLAT_STR_4 STRINGIFY(V4L2_SDR_FMT_CU16LE) XLAT(V4L2_SDR_FMT_CS8), + #define XLAT_VAL_5 ((unsigned) (V4L2_SDR_FMT_CS8)) + #define XLAT_STR_5 STRINGIFY(V4L2_SDR_FMT_CS8) XLAT(V4L2_SDR_FMT_CU8), + #define XLAT_VAL_6 ((unsigned) (V4L2_SDR_FMT_CU8)) + #define XLAT_STR_6 STRINGIFY(V4L2_SDR_FMT_CU8) XLAT(V4L2_SDR_FMT_PCU18BE), - XLAT_END + #define XLAT_VAL_7 ((unsigned) (V4L2_SDR_FMT_PCU18BE)) + #define XLAT_STR_7 STRINGIFY(V4L2_SDR_FMT_PCU18BE) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat v4l2_sdr_fmts[1] = { { + .data = v4l2_sdr_fmts_xdata, + .size = ARRAY_SIZE(v4l2_sdr_fmts_xdata), + .type = XT_SORTED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/v4l2_sdr_fmts.in b/xlat/v4l2_sdr_fmts.in index e462561d..bd5a2482 100644 --- a/xlat/v4l2_sdr_fmts.in +++ b/xlat/v4l2_sdr_fmts.in @@ -1,4 +1,4 @@ -/* sed -rn 's/.*v4l2_fourcc(_be)?\('"'(.)', '(.)', '(.)', '(.)'"'\).*/\10\5\4\3\2\t\0/p' |LC_COLLATE=C sort -k1,1 -t' ' |cut -f2- */ +#sorted sed -rn 's/.*v4l2_fourcc(_be)?\('"'(.)', '(.)', '(.)', '(.)'"'\).*/\10\5\4\3\2\t\0/p' |LC_COLLATE=C sort -k1,1 -t' ' |cut -f2- V4L2_SDR_FMT_PCU20BE v4l2_fourcc('P', 'C', '2', '0') /* planar complex u20be */ V4L2_SDR_FMT_RU12LE v4l2_fourcc('R', 'U', '1', '2') /* real u12le */ V4L2_SDR_FMT_CS14LE v4l2_fourcc('C', 'S', '1', '4') /* complex s14le */ diff --git a/xlat/v4l2_sliced_flags.h b/xlat/v4l2_sliced_flags.h index 44358594..62c29d79 100644 --- a/xlat/v4l2_sliced_flags.h +++ b/xlat/v4l2_sliced_flags.h @@ -3,6 +3,41 @@ #include "gcc_compat.h" #include "static_assert.h" +#if defined(V4L2_SLICED_VBI_625) || (defined(HAVE_DECL_V4L2_SLICED_VBI_625) && HAVE_DECL_V4L2_SLICED_VBI_625) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_SLICED_VBI_625) == ((V4L2_SLICED_TELETEXT_B | V4L2_SLICED_VPS | V4L2_SLICED_WSS_625)), "V4L2_SLICED_VBI_625 != (V4L2_SLICED_TELETEXT_B | V4L2_SLICED_VPS | V4L2_SLICED_WSS_625)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_SLICED_VBI_625 (V4L2_SLICED_TELETEXT_B | V4L2_SLICED_VPS | V4L2_SLICED_WSS_625) +#endif +#if defined(V4L2_SLICED_TELETEXT_B) || (defined(HAVE_DECL_V4L2_SLICED_TELETEXT_B) && HAVE_DECL_V4L2_SLICED_TELETEXT_B) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_SLICED_TELETEXT_B) == (0x0001), "V4L2_SLICED_TELETEXT_B != 0x0001"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_SLICED_TELETEXT_B 0x0001 +#endif +#if defined(V4L2_SLICED_VPS) || (defined(HAVE_DECL_V4L2_SLICED_VPS) && HAVE_DECL_V4L2_SLICED_VPS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_SLICED_VPS) == (0x0400), "V4L2_SLICED_VPS != 0x0400"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_SLICED_VPS 0x0400 +#endif +#if defined(V4L2_SLICED_CAPTION_525) || (defined(HAVE_DECL_V4L2_SLICED_CAPTION_525) && HAVE_DECL_V4L2_SLICED_CAPTION_525) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_SLICED_CAPTION_525) == (0x1000), "V4L2_SLICED_CAPTION_525 != 0x1000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_SLICED_CAPTION_525 0x1000 +#endif +#if defined(V4L2_SLICED_WSS_625) || (defined(HAVE_DECL_V4L2_SLICED_WSS_625) && HAVE_DECL_V4L2_SLICED_WSS_625) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_SLICED_WSS_625) == (0x4000), "V4L2_SLICED_WSS_625 != 0x4000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_SLICED_WSS_625 0x4000 +#endif #ifndef XLAT_MACROS_ONLY @@ -12,31 +47,77 @@ extern const struct xlat v4l2_sliced_flags[]; # else +static const struct xlat_data v4l2_sliced_flags_xdata[] = { + XLAT(V4L2_SLICED_VBI_625), + #define XLAT_VAL_0 ((unsigned) (V4L2_SLICED_VBI_625)) + #define XLAT_STR_0 STRINGIFY(V4L2_SLICED_VBI_625) + XLAT(V4L2_SLICED_TELETEXT_B), + #define XLAT_VAL_1 ((unsigned) (V4L2_SLICED_TELETEXT_B)) + #define XLAT_STR_1 STRINGIFY(V4L2_SLICED_TELETEXT_B) + XLAT(V4L2_SLICED_VPS), + #define XLAT_VAL_2 ((unsigned) (V4L2_SLICED_VPS)) + #define XLAT_STR_2 STRINGIFY(V4L2_SLICED_VPS) + XLAT(V4L2_SLICED_CAPTION_525), + #define XLAT_VAL_3 ((unsigned) (V4L2_SLICED_CAPTION_525)) + #define XLAT_STR_3 STRINGIFY(V4L2_SLICED_CAPTION_525) + XLAT(V4L2_SLICED_WSS_625), + #define XLAT_VAL_4 ((unsigned) (V4L2_SLICED_WSS_625)) + #define XLAT_STR_4 STRINGIFY(V4L2_SLICED_WSS_625) + +}; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static # endif -const struct xlat v4l2_sliced_flags[] = { -#if defined(V4L2_SLICED_TELETEXT_B) || (defined(HAVE_DECL_V4L2_SLICED_TELETEXT_B) && HAVE_DECL_V4L2_SLICED_TELETEXT_B) - XLAT(V4L2_SLICED_TELETEXT_B), -#endif -#if defined(V4L2_SLICED_VPS) || (defined(HAVE_DECL_V4L2_SLICED_VPS) && HAVE_DECL_V4L2_SLICED_VPS) - XLAT(V4L2_SLICED_VPS), -#endif -#if defined(V4L2_SLICED_CAPTION_525) || (defined(HAVE_DECL_V4L2_SLICED_CAPTION_525) && HAVE_DECL_V4L2_SLICED_CAPTION_525) - XLAT(V4L2_SLICED_CAPTION_525), -#endif -#if defined(V4L2_SLICED_WSS_625) || (defined(HAVE_DECL_V4L2_SLICED_WSS_625) && HAVE_DECL_V4L2_SLICED_WSS_625) - XLAT(V4L2_SLICED_WSS_625), -#endif -#if defined(V4L2_SLICED_VBI_525) || (defined(HAVE_DECL_V4L2_SLICED_VBI_525) && HAVE_DECL_V4L2_SLICED_VBI_525) - XLAT(V4L2_SLICED_VBI_525), -#endif -#if defined(V4L2_SLICED_VBI_625) || (defined(HAVE_DECL_V4L2_SLICED_VBI_625) && HAVE_DECL_V4L2_SLICED_VBI_625) - XLAT(V4L2_SLICED_VBI_625), -#endif - XLAT_END -}; +const struct xlat v4l2_sliced_flags[1] = { { + .data = v4l2_sliced_flags_xdata, + .size = ARRAY_SIZE(v4l2_sliced_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/v4l2_sliced_flags.in b/xlat/v4l2_sliced_flags.in index baff2e26..6c509fa1 100644 --- a/xlat/v4l2_sliced_flags.in +++ b/xlat/v4l2_sliced_flags.in @@ -1,6 +1,6 @@ -V4L2_SLICED_TELETEXT_B -V4L2_SLICED_VPS -V4L2_SLICED_CAPTION_525 -V4L2_SLICED_WSS_625 -V4L2_SLICED_VBI_525 -V4L2_SLICED_VBI_625 +V4L2_SLICED_VBI_625 (V4L2_SLICED_TELETEXT_B | V4L2_SLICED_VPS | V4L2_SLICED_WSS_625) +V4L2_SLICED_TELETEXT_B 0x0001 +V4L2_SLICED_VPS 0x0400 +V4L2_SLICED_CAPTION_525 0x1000 +V4L2_SLICED_WSS_625 0x4000 +/* V4L2_SLICED_VBI_525 V4L2_SLICED_CAPTION_525 */ diff --git a/xlat/v4l2_streaming_capabilities.h b/xlat/v4l2_streaming_capabilities.h index 479b7e24..44a6c73f 100644 --- a/xlat/v4l2_streaming_capabilities.h +++ b/xlat/v4l2_streaming_capabilities.h @@ -3,6 +3,13 @@ #include "gcc_compat.h" #include "static_assert.h" +#if defined(V4L2_CAP_TIMEPERFRAME) || (defined(HAVE_DECL_V4L2_CAP_TIMEPERFRAME) && HAVE_DECL_V4L2_CAP_TIMEPERFRAME) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_CAP_TIMEPERFRAME) == (0x1000), "V4L2_CAP_TIMEPERFRAME != 0x1000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_CAP_TIMEPERFRAME 0x1000 +#endif #ifndef XLAT_MACROS_ONLY @@ -12,16 +19,32 @@ extern const struct xlat v4l2_streaming_capabilities[]; # else +static const struct xlat_data v4l2_streaming_capabilities_xdata[] = { + XLAT(V4L2_CAP_TIMEPERFRAME), + #define XLAT_VAL_0 ((unsigned) (V4L2_CAP_TIMEPERFRAME)) + #define XLAT_STR_0 STRINGIFY(V4L2_CAP_TIMEPERFRAME) +}; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static # endif -const struct xlat v4l2_streaming_capabilities[] = { -#if defined(V4L2_CAP_TIMEPERFRAME) || (defined(HAVE_DECL_V4L2_CAP_TIMEPERFRAME) && HAVE_DECL_V4L2_CAP_TIMEPERFRAME) - XLAT(V4L2_CAP_TIMEPERFRAME), -#endif - XLAT_END -}; +const struct xlat v4l2_streaming_capabilities[1] = { { + .data = v4l2_streaming_capabilities_xdata, + .size = ARRAY_SIZE(v4l2_streaming_capabilities_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/v4l2_streaming_capabilities.in b/xlat/v4l2_streaming_capabilities.in index 1ae5e155..a9d8508a 100644 --- a/xlat/v4l2_streaming_capabilities.in +++ b/xlat/v4l2_streaming_capabilities.in @@ -1 +1 @@ -V4L2_CAP_TIMEPERFRAME +V4L2_CAP_TIMEPERFRAME 0x1000 diff --git a/xlat/v4l2_tuner_audmodes.h b/xlat/v4l2_tuner_audmodes.h index 22f4b025..b80144f7 100644 --- a/xlat/v4l2_tuner_audmodes.h +++ b/xlat/v4l2_tuner_audmodes.h @@ -3,6 +3,41 @@ #include "gcc_compat.h" #include "static_assert.h" +#if defined(V4L2_TUNER_MODE_MONO) || (defined(HAVE_DECL_V4L2_TUNER_MODE_MONO) && HAVE_DECL_V4L2_TUNER_MODE_MONO) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_TUNER_MODE_MONO) == (0x0000), "V4L2_TUNER_MODE_MONO != 0x0000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_TUNER_MODE_MONO 0x0000 +#endif +#if defined(V4L2_TUNER_MODE_STEREO) || (defined(HAVE_DECL_V4L2_TUNER_MODE_STEREO) && HAVE_DECL_V4L2_TUNER_MODE_STEREO) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_TUNER_MODE_STEREO) == (0x0001), "V4L2_TUNER_MODE_STEREO != 0x0001"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_TUNER_MODE_STEREO 0x0001 +#endif +#if defined(V4L2_TUNER_MODE_LANG2) || (defined(HAVE_DECL_V4L2_TUNER_MODE_LANG2) && HAVE_DECL_V4L2_TUNER_MODE_LANG2) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_TUNER_MODE_LANG2) == (0x0002), "V4L2_TUNER_MODE_LANG2 != 0x0002"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_TUNER_MODE_LANG2 0x0002 +#endif +#if defined(V4L2_TUNER_MODE_LANG1) || (defined(HAVE_DECL_V4L2_TUNER_MODE_LANG1) && HAVE_DECL_V4L2_TUNER_MODE_LANG1) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_TUNER_MODE_LANG1) == (0x0003), "V4L2_TUNER_MODE_LANG1 != 0x0003"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_TUNER_MODE_LANG1 0x0003 +#endif +#if defined(V4L2_TUNER_MODE_LANG1_LANG2) || (defined(HAVE_DECL_V4L2_TUNER_MODE_LANG1_LANG2) && HAVE_DECL_V4L2_TUNER_MODE_LANG1_LANG2) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_TUNER_MODE_LANG1_LANG2) == (0x0004), "V4L2_TUNER_MODE_LANG1_LANG2 != 0x0004"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_TUNER_MODE_LANG1_LANG2 0x0004 +#endif #ifndef XLAT_MACROS_ONLY @@ -12,31 +47,77 @@ extern const struct xlat v4l2_tuner_audmodes[]; # else +static const struct xlat_data v4l2_tuner_audmodes_xdata[] = { + [V4L2_TUNER_MODE_MONO] = XLAT(V4L2_TUNER_MODE_MONO), + #define XLAT_VAL_0 ((unsigned) (V4L2_TUNER_MODE_MONO)) + #define XLAT_STR_0 STRINGIFY(V4L2_TUNER_MODE_MONO) + [V4L2_TUNER_MODE_STEREO] = XLAT(V4L2_TUNER_MODE_STEREO), + #define XLAT_VAL_1 ((unsigned) (V4L2_TUNER_MODE_STEREO)) + #define XLAT_STR_1 STRINGIFY(V4L2_TUNER_MODE_STEREO) + [V4L2_TUNER_MODE_LANG2] = XLAT(V4L2_TUNER_MODE_LANG2), + #define XLAT_VAL_2 ((unsigned) (V4L2_TUNER_MODE_LANG2)) + #define XLAT_STR_2 STRINGIFY(V4L2_TUNER_MODE_LANG2) + + [V4L2_TUNER_MODE_LANG1] = XLAT(V4L2_TUNER_MODE_LANG1), + #define XLAT_VAL_3 ((unsigned) (V4L2_TUNER_MODE_LANG1)) + #define XLAT_STR_3 STRINGIFY(V4L2_TUNER_MODE_LANG1) + [V4L2_TUNER_MODE_LANG1_LANG2] = XLAT(V4L2_TUNER_MODE_LANG1_LANG2), + #define XLAT_VAL_4 ((unsigned) (V4L2_TUNER_MODE_LANG1_LANG2)) + #define XLAT_STR_4 STRINGIFY(V4L2_TUNER_MODE_LANG1_LANG2) +}; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static # endif -const struct xlat v4l2_tuner_audmodes[] = { -#if defined(V4L2_TUNER_MODE_MONO) || (defined(HAVE_DECL_V4L2_TUNER_MODE_MONO) && HAVE_DECL_V4L2_TUNER_MODE_MONO) - XLAT(V4L2_TUNER_MODE_MONO), -#endif -#if defined(V4L2_TUNER_MODE_STEREO) || (defined(HAVE_DECL_V4L2_TUNER_MODE_STEREO) && HAVE_DECL_V4L2_TUNER_MODE_STEREO) - XLAT(V4L2_TUNER_MODE_STEREO), -#endif -#if defined(V4L2_TUNER_MODE_LANG2) || (defined(HAVE_DECL_V4L2_TUNER_MODE_LANG2) && HAVE_DECL_V4L2_TUNER_MODE_LANG2) - XLAT(V4L2_TUNER_MODE_LANG2), -#endif -#if defined(V4L2_TUNER_MODE_SAP) || (defined(HAVE_DECL_V4L2_TUNER_MODE_SAP) && HAVE_DECL_V4L2_TUNER_MODE_SAP) - XLAT(V4L2_TUNER_MODE_SAP), -#endif -#if defined(V4L2_TUNER_MODE_LANG1) || (defined(HAVE_DECL_V4L2_TUNER_MODE_LANG1) && HAVE_DECL_V4L2_TUNER_MODE_LANG1) - XLAT(V4L2_TUNER_MODE_LANG1), -#endif -#if defined(V4L2_TUNER_MODE_LANG1_LANG2) || (defined(HAVE_DECL_V4L2_TUNER_MODE_LANG1_LANG2) && HAVE_DECL_V4L2_TUNER_MODE_LANG1_LANG2) - XLAT(V4L2_TUNER_MODE_LANG1_LANG2), -#endif - XLAT_END -}; +const struct xlat v4l2_tuner_audmodes[1] = { { + .data = v4l2_tuner_audmodes_xdata, + .size = ARRAY_SIZE(v4l2_tuner_audmodes_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/v4l2_tuner_audmodes.in b/xlat/v4l2_tuner_audmodes.in index 82decabf..cfa308e7 100644 --- a/xlat/v4l2_tuner_audmodes.in +++ b/xlat/v4l2_tuner_audmodes.in @@ -1,6 +1,7 @@ -V4L2_TUNER_MODE_MONO -V4L2_TUNER_MODE_STEREO -V4L2_TUNER_MODE_LANG2 -V4L2_TUNER_MODE_SAP -V4L2_TUNER_MODE_LANG1 -V4L2_TUNER_MODE_LANG1_LANG2 +#value_indexed +V4L2_TUNER_MODE_MONO 0x0000 +V4L2_TUNER_MODE_STEREO 0x0001 +V4L2_TUNER_MODE_LANG2 0x0002 +/* V4L2_TUNER_MODE_SAP 0x0002 */ +V4L2_TUNER_MODE_LANG1 0x0003 +V4L2_TUNER_MODE_LANG1_LANG2 0x0004 diff --git a/xlat/v4l2_tuner_capabilities.h b/xlat/v4l2_tuner_capabilities.h index 2471bd11..d2f399e7 100644 --- a/xlat/v4l2_tuner_capabilities.h +++ b/xlat/v4l2_tuner_capabilities.h @@ -3,64 +3,265 @@ #include "gcc_compat.h" #include "static_assert.h" - -#ifndef XLAT_MACROS_ONLY - -# ifdef IN_MPERS - -extern const struct xlat v4l2_tuner_capabilities[]; - -# else - -# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) -static -# endif -const struct xlat v4l2_tuner_capabilities[] = { #if defined(V4L2_TUNER_CAP_LOW) || (defined(HAVE_DECL_V4L2_TUNER_CAP_LOW) && HAVE_DECL_V4L2_TUNER_CAP_LOW) - XLAT(V4L2_TUNER_CAP_LOW), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_TUNER_CAP_LOW) == (0x0001), "V4L2_TUNER_CAP_LOW != 0x0001"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_TUNER_CAP_LOW 0x0001 #endif #if defined(V4L2_TUNER_CAP_NORM) || (defined(HAVE_DECL_V4L2_TUNER_CAP_NORM) && HAVE_DECL_V4L2_TUNER_CAP_NORM) - XLAT(V4L2_TUNER_CAP_NORM), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_TUNER_CAP_NORM) == (0x0002), "V4L2_TUNER_CAP_NORM != 0x0002"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_TUNER_CAP_NORM 0x0002 #endif #if defined(V4L2_TUNER_CAP_HWSEEK_BOUNDED) || (defined(HAVE_DECL_V4L2_TUNER_CAP_HWSEEK_BOUNDED) && HAVE_DECL_V4L2_TUNER_CAP_HWSEEK_BOUNDED) - XLAT(V4L2_TUNER_CAP_HWSEEK_BOUNDED), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_TUNER_CAP_HWSEEK_BOUNDED) == (0x0004), "V4L2_TUNER_CAP_HWSEEK_BOUNDED != 0x0004"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_TUNER_CAP_HWSEEK_BOUNDED 0x0004 #endif #if defined(V4L2_TUNER_CAP_HWSEEK_WRAP) || (defined(HAVE_DECL_V4L2_TUNER_CAP_HWSEEK_WRAP) && HAVE_DECL_V4L2_TUNER_CAP_HWSEEK_WRAP) - XLAT(V4L2_TUNER_CAP_HWSEEK_WRAP), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_TUNER_CAP_HWSEEK_WRAP) == (0x0008), "V4L2_TUNER_CAP_HWSEEK_WRAP != 0x0008"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_TUNER_CAP_HWSEEK_WRAP 0x0008 #endif #if defined(V4L2_TUNER_CAP_STEREO) || (defined(HAVE_DECL_V4L2_TUNER_CAP_STEREO) && HAVE_DECL_V4L2_TUNER_CAP_STEREO) - XLAT(V4L2_TUNER_CAP_STEREO), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_TUNER_CAP_STEREO) == (0x0010), "V4L2_TUNER_CAP_STEREO != 0x0010"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_TUNER_CAP_STEREO 0x0010 #endif #if defined(V4L2_TUNER_CAP_LANG2) || (defined(HAVE_DECL_V4L2_TUNER_CAP_LANG2) && HAVE_DECL_V4L2_TUNER_CAP_LANG2) - XLAT(V4L2_TUNER_CAP_LANG2), -#endif -#if defined(V4L2_TUNER_CAP_SAP) || (defined(HAVE_DECL_V4L2_TUNER_CAP_SAP) && HAVE_DECL_V4L2_TUNER_CAP_SAP) - XLAT(V4L2_TUNER_CAP_SAP), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_TUNER_CAP_LANG2) == (0x0020), "V4L2_TUNER_CAP_LANG2 != 0x0020"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_TUNER_CAP_LANG2 0x0020 #endif #if defined(V4L2_TUNER_CAP_LANG1) || (defined(HAVE_DECL_V4L2_TUNER_CAP_LANG1) && HAVE_DECL_V4L2_TUNER_CAP_LANG1) - XLAT(V4L2_TUNER_CAP_LANG1), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_TUNER_CAP_LANG1) == (0x0040), "V4L2_TUNER_CAP_LANG1 != 0x0040"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_TUNER_CAP_LANG1 0x0040 #endif #if defined(V4L2_TUNER_CAP_RDS) || (defined(HAVE_DECL_V4L2_TUNER_CAP_RDS) && HAVE_DECL_V4L2_TUNER_CAP_RDS) - XLAT(V4L2_TUNER_CAP_RDS), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_TUNER_CAP_RDS) == (0x0080), "V4L2_TUNER_CAP_RDS != 0x0080"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_TUNER_CAP_RDS 0x0080 #endif #if defined(V4L2_TUNER_CAP_RDS_BLOCK_IO) || (defined(HAVE_DECL_V4L2_TUNER_CAP_RDS_BLOCK_IO) && HAVE_DECL_V4L2_TUNER_CAP_RDS_BLOCK_IO) - XLAT(V4L2_TUNER_CAP_RDS_BLOCK_IO), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_TUNER_CAP_RDS_BLOCK_IO) == (0x0100), "V4L2_TUNER_CAP_RDS_BLOCK_IO != 0x0100"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_TUNER_CAP_RDS_BLOCK_IO 0x0100 #endif #if defined(V4L2_TUNER_CAP_RDS_CONTROLS) || (defined(HAVE_DECL_V4L2_TUNER_CAP_RDS_CONTROLS) && HAVE_DECL_V4L2_TUNER_CAP_RDS_CONTROLS) - XLAT(V4L2_TUNER_CAP_RDS_CONTROLS), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_TUNER_CAP_RDS_CONTROLS) == (0x0200), "V4L2_TUNER_CAP_RDS_CONTROLS != 0x0200"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_TUNER_CAP_RDS_CONTROLS 0x0200 #endif #if defined(V4L2_TUNER_CAP_FREQ_BANDS) || (defined(HAVE_DECL_V4L2_TUNER_CAP_FREQ_BANDS) && HAVE_DECL_V4L2_TUNER_CAP_FREQ_BANDS) - XLAT(V4L2_TUNER_CAP_FREQ_BANDS), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_TUNER_CAP_FREQ_BANDS) == (0x0400), "V4L2_TUNER_CAP_FREQ_BANDS != 0x0400"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_TUNER_CAP_FREQ_BANDS 0x0400 #endif #if defined(V4L2_TUNER_CAP_HWSEEK_PROG_LIM) || (defined(HAVE_DECL_V4L2_TUNER_CAP_HWSEEK_PROG_LIM) && HAVE_DECL_V4L2_TUNER_CAP_HWSEEK_PROG_LIM) - XLAT(V4L2_TUNER_CAP_HWSEEK_PROG_LIM), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_TUNER_CAP_HWSEEK_PROG_LIM) == (0x0800), "V4L2_TUNER_CAP_HWSEEK_PROG_LIM != 0x0800"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_TUNER_CAP_HWSEEK_PROG_LIM 0x0800 #endif #if defined(V4L2_TUNER_CAP_1HZ) || (defined(HAVE_DECL_V4L2_TUNER_CAP_1HZ) && HAVE_DECL_V4L2_TUNER_CAP_1HZ) - XLAT(V4L2_TUNER_CAP_1HZ), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_TUNER_CAP_1HZ) == (0x1000), "V4L2_TUNER_CAP_1HZ != 0x1000"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_TUNER_CAP_1HZ 0x1000 #endif - XLAT_END + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +extern const struct xlat v4l2_tuner_capabilities[]; + +# else + +static const struct xlat_data v4l2_tuner_capabilities_xdata[] = { + XLAT(V4L2_TUNER_CAP_LOW), + #define XLAT_VAL_0 ((unsigned) (V4L2_TUNER_CAP_LOW)) + #define XLAT_STR_0 STRINGIFY(V4L2_TUNER_CAP_LOW) + XLAT(V4L2_TUNER_CAP_NORM), + #define XLAT_VAL_1 ((unsigned) (V4L2_TUNER_CAP_NORM)) + #define XLAT_STR_1 STRINGIFY(V4L2_TUNER_CAP_NORM) + XLAT(V4L2_TUNER_CAP_HWSEEK_BOUNDED), + #define XLAT_VAL_2 ((unsigned) (V4L2_TUNER_CAP_HWSEEK_BOUNDED)) + #define XLAT_STR_2 STRINGIFY(V4L2_TUNER_CAP_HWSEEK_BOUNDED) + XLAT(V4L2_TUNER_CAP_HWSEEK_WRAP), + #define XLAT_VAL_3 ((unsigned) (V4L2_TUNER_CAP_HWSEEK_WRAP)) + #define XLAT_STR_3 STRINGIFY(V4L2_TUNER_CAP_HWSEEK_WRAP) + XLAT(V4L2_TUNER_CAP_STEREO), + #define XLAT_VAL_4 ((unsigned) (V4L2_TUNER_CAP_STEREO)) + #define XLAT_STR_4 STRINGIFY(V4L2_TUNER_CAP_STEREO) + XLAT(V4L2_TUNER_CAP_LANG2), + #define XLAT_VAL_5 ((unsigned) (V4L2_TUNER_CAP_LANG2)) + #define XLAT_STR_5 STRINGIFY(V4L2_TUNER_CAP_LANG2) + + XLAT(V4L2_TUNER_CAP_LANG1), + #define XLAT_VAL_6 ((unsigned) (V4L2_TUNER_CAP_LANG1)) + #define XLAT_STR_6 STRINGIFY(V4L2_TUNER_CAP_LANG1) + XLAT(V4L2_TUNER_CAP_RDS), + #define XLAT_VAL_7 ((unsigned) (V4L2_TUNER_CAP_RDS)) + #define XLAT_STR_7 STRINGIFY(V4L2_TUNER_CAP_RDS) + XLAT(V4L2_TUNER_CAP_RDS_BLOCK_IO), + #define XLAT_VAL_8 ((unsigned) (V4L2_TUNER_CAP_RDS_BLOCK_IO)) + #define XLAT_STR_8 STRINGIFY(V4L2_TUNER_CAP_RDS_BLOCK_IO) + XLAT(V4L2_TUNER_CAP_RDS_CONTROLS), + #define XLAT_VAL_9 ((unsigned) (V4L2_TUNER_CAP_RDS_CONTROLS)) + #define XLAT_STR_9 STRINGIFY(V4L2_TUNER_CAP_RDS_CONTROLS) + XLAT(V4L2_TUNER_CAP_FREQ_BANDS), + #define XLAT_VAL_10 ((unsigned) (V4L2_TUNER_CAP_FREQ_BANDS)) + #define XLAT_STR_10 STRINGIFY(V4L2_TUNER_CAP_FREQ_BANDS) + XLAT(V4L2_TUNER_CAP_HWSEEK_PROG_LIM), + #define XLAT_VAL_11 ((unsigned) (V4L2_TUNER_CAP_HWSEEK_PROG_LIM)) + #define XLAT_STR_11 STRINGIFY(V4L2_TUNER_CAP_HWSEEK_PROG_LIM) + XLAT(V4L2_TUNER_CAP_1HZ), + #define XLAT_VAL_12 ((unsigned) (V4L2_TUNER_CAP_1HZ)) + #define XLAT_STR_12 STRINGIFY(V4L2_TUNER_CAP_1HZ) }; +# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) +static +# endif +const struct xlat v4l2_tuner_capabilities[1] = { { + .data = v4l2_tuner_capabilities_xdata, + .size = ARRAY_SIZE(v4l2_tuner_capabilities_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif +# ifdef XLAT_VAL_10 + | XLAT_VAL_10 +# endif +# ifdef XLAT_VAL_11 + | XLAT_VAL_11 +# endif +# ifdef XLAT_VAL_12 + | XLAT_VAL_12 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif +# ifdef XLAT_STR_10 + + sizeof(XLAT_STR_10) +# endif +# ifdef XLAT_STR_11 + + sizeof(XLAT_STR_11) +# endif +# ifdef XLAT_STR_12 + + sizeof(XLAT_STR_12) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# undef XLAT_STR_10 +# undef XLAT_VAL_10 +# undef XLAT_STR_11 +# undef XLAT_VAL_11 +# undef XLAT_STR_12 +# undef XLAT_VAL_12 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/v4l2_tuner_capabilities.in b/xlat/v4l2_tuner_capabilities.in index 4aec41eb..60ed20a0 100644 --- a/xlat/v4l2_tuner_capabilities.in +++ b/xlat/v4l2_tuner_capabilities.in @@ -1,14 +1,14 @@ -V4L2_TUNER_CAP_LOW -V4L2_TUNER_CAP_NORM -V4L2_TUNER_CAP_HWSEEK_BOUNDED -V4L2_TUNER_CAP_HWSEEK_WRAP -V4L2_TUNER_CAP_STEREO -V4L2_TUNER_CAP_LANG2 -V4L2_TUNER_CAP_SAP -V4L2_TUNER_CAP_LANG1 -V4L2_TUNER_CAP_RDS -V4L2_TUNER_CAP_RDS_BLOCK_IO -V4L2_TUNER_CAP_RDS_CONTROLS -V4L2_TUNER_CAP_FREQ_BANDS -V4L2_TUNER_CAP_HWSEEK_PROG_LIM -V4L2_TUNER_CAP_1HZ +V4L2_TUNER_CAP_LOW 0x0001 +V4L2_TUNER_CAP_NORM 0x0002 +V4L2_TUNER_CAP_HWSEEK_BOUNDED 0x0004 +V4L2_TUNER_CAP_HWSEEK_WRAP 0x0008 +V4L2_TUNER_CAP_STEREO 0x0010 +V4L2_TUNER_CAP_LANG2 0x0020 +/* V4L2_TUNER_CAP_SAP 0x0020 */ +V4L2_TUNER_CAP_LANG1 0x0040 +V4L2_TUNER_CAP_RDS 0x0080 +V4L2_TUNER_CAP_RDS_BLOCK_IO 0x0100 +V4L2_TUNER_CAP_RDS_CONTROLS 0x0200 +V4L2_TUNER_CAP_FREQ_BANDS 0x0400 +V4L2_TUNER_CAP_HWSEEK_PROG_LIM 0x0800 +V4L2_TUNER_CAP_1HZ 0x1000 diff --git a/xlat/v4l2_tuner_rxsubchanses.h b/xlat/v4l2_tuner_rxsubchanses.h index 5be87805..06622006 100644 --- a/xlat/v4l2_tuner_rxsubchanses.h +++ b/xlat/v4l2_tuner_rxsubchanses.h @@ -3,6 +3,41 @@ #include "gcc_compat.h" #include "static_assert.h" +#if defined(V4L2_TUNER_SUB_MONO) || (defined(HAVE_DECL_V4L2_TUNER_SUB_MONO) && HAVE_DECL_V4L2_TUNER_SUB_MONO) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_TUNER_SUB_MONO) == (0x0001), "V4L2_TUNER_SUB_MONO != 0x0001"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_TUNER_SUB_MONO 0x0001 +#endif +#if defined(V4L2_TUNER_SUB_STEREO) || (defined(HAVE_DECL_V4L2_TUNER_SUB_STEREO) && HAVE_DECL_V4L2_TUNER_SUB_STEREO) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_TUNER_SUB_STEREO) == (0x0002), "V4L2_TUNER_SUB_STEREO != 0x0002"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_TUNER_SUB_STEREO 0x0002 +#endif +#if defined(V4L2_TUNER_SUB_LANG2) || (defined(HAVE_DECL_V4L2_TUNER_SUB_LANG2) && HAVE_DECL_V4L2_TUNER_SUB_LANG2) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_TUNER_SUB_LANG2) == (0x0004), "V4L2_TUNER_SUB_LANG2 != 0x0004"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_TUNER_SUB_LANG2 0x0004 +#endif +#if defined(V4L2_TUNER_SUB_LANG1) || (defined(HAVE_DECL_V4L2_TUNER_SUB_LANG1) && HAVE_DECL_V4L2_TUNER_SUB_LANG1) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_TUNER_SUB_LANG1) == (0x0008), "V4L2_TUNER_SUB_LANG1 != 0x0008"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_TUNER_SUB_LANG1 0x0008 +#endif +#if defined(V4L2_TUNER_SUB_RDS) || (defined(HAVE_DECL_V4L2_TUNER_SUB_RDS) && HAVE_DECL_V4L2_TUNER_SUB_RDS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_TUNER_SUB_RDS) == (0x0010), "V4L2_TUNER_SUB_RDS != 0x0010"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_TUNER_SUB_RDS 0x0010 +#endif #ifndef XLAT_MACROS_ONLY @@ -12,31 +47,77 @@ extern const struct xlat v4l2_tuner_rxsubchanses[]; # else +static const struct xlat_data v4l2_tuner_rxsubchanses_xdata[] = { + XLAT(V4L2_TUNER_SUB_MONO), + #define XLAT_VAL_0 ((unsigned) (V4L2_TUNER_SUB_MONO)) + #define XLAT_STR_0 STRINGIFY(V4L2_TUNER_SUB_MONO) + XLAT(V4L2_TUNER_SUB_STEREO), + #define XLAT_VAL_1 ((unsigned) (V4L2_TUNER_SUB_STEREO)) + #define XLAT_STR_1 STRINGIFY(V4L2_TUNER_SUB_STEREO) + XLAT(V4L2_TUNER_SUB_LANG2), + #define XLAT_VAL_2 ((unsigned) (V4L2_TUNER_SUB_LANG2)) + #define XLAT_STR_2 STRINGIFY(V4L2_TUNER_SUB_LANG2) + + XLAT(V4L2_TUNER_SUB_LANG1), + #define XLAT_VAL_3 ((unsigned) (V4L2_TUNER_SUB_LANG1)) + #define XLAT_STR_3 STRINGIFY(V4L2_TUNER_SUB_LANG1) + XLAT(V4L2_TUNER_SUB_RDS), + #define XLAT_VAL_4 ((unsigned) (V4L2_TUNER_SUB_RDS)) + #define XLAT_STR_4 STRINGIFY(V4L2_TUNER_SUB_RDS) +}; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static # endif -const struct xlat v4l2_tuner_rxsubchanses[] = { -#if defined(V4L2_TUNER_SUB_MONO) || (defined(HAVE_DECL_V4L2_TUNER_SUB_MONO) && HAVE_DECL_V4L2_TUNER_SUB_MONO) - XLAT(V4L2_TUNER_SUB_MONO), -#endif -#if defined(V4L2_TUNER_SUB_STEREO) || (defined(HAVE_DECL_V4L2_TUNER_SUB_STEREO) && HAVE_DECL_V4L2_TUNER_SUB_STEREO) - XLAT(V4L2_TUNER_SUB_STEREO), -#endif -#if defined(V4L2_TUNER_SUB_LANG2) || (defined(HAVE_DECL_V4L2_TUNER_SUB_LANG2) && HAVE_DECL_V4L2_TUNER_SUB_LANG2) - XLAT(V4L2_TUNER_SUB_LANG2), -#endif -#if defined(V4L2_TUNER_SUB_SAP) || (defined(HAVE_DECL_V4L2_TUNER_SUB_SAP) && HAVE_DECL_V4L2_TUNER_SUB_SAP) - XLAT(V4L2_TUNER_SUB_SAP), -#endif -#if defined(V4L2_TUNER_SUB_LANG1) || (defined(HAVE_DECL_V4L2_TUNER_SUB_LANG1) && HAVE_DECL_V4L2_TUNER_SUB_LANG1) - XLAT(V4L2_TUNER_SUB_LANG1), -#endif -#if defined(V4L2_TUNER_SUB_RDS) || (defined(HAVE_DECL_V4L2_TUNER_SUB_RDS) && HAVE_DECL_V4L2_TUNER_SUB_RDS) - XLAT(V4L2_TUNER_SUB_RDS), -#endif - XLAT_END -}; +const struct xlat v4l2_tuner_rxsubchanses[1] = { { + .data = v4l2_tuner_rxsubchanses_xdata, + .size = ARRAY_SIZE(v4l2_tuner_rxsubchanses_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/v4l2_tuner_rxsubchanses.in b/xlat/v4l2_tuner_rxsubchanses.in index c6d59e95..578309ca 100644 --- a/xlat/v4l2_tuner_rxsubchanses.in +++ b/xlat/v4l2_tuner_rxsubchanses.in @@ -1,6 +1,6 @@ -V4L2_TUNER_SUB_MONO -V4L2_TUNER_SUB_STEREO -V4L2_TUNER_SUB_LANG2 -V4L2_TUNER_SUB_SAP -V4L2_TUNER_SUB_LANG1 -V4L2_TUNER_SUB_RDS +V4L2_TUNER_SUB_MONO 0x0001 +V4L2_TUNER_SUB_STEREO 0x0002 +V4L2_TUNER_SUB_LANG2 0x0004 +/* V4L2_TUNER_SUB_SAP 0x0004 */ +V4L2_TUNER_SUB_LANG1 0x0008 +V4L2_TUNER_SUB_RDS 0x0010 diff --git a/xlat/v4l2_tuner_types.h b/xlat/v4l2_tuner_types.h index 73f66892..d1a71794 100644 --- a/xlat/v4l2_tuner_types.h +++ b/xlat/v4l2_tuner_types.h @@ -3,6 +3,41 @@ #include "gcc_compat.h" #include "static_assert.h" +#if defined(V4L2_TUNER_RADIO) || (defined(HAVE_DECL_V4L2_TUNER_RADIO) && HAVE_DECL_V4L2_TUNER_RADIO) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_TUNER_RADIO) == (1), "V4L2_TUNER_RADIO != 1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_TUNER_RADIO 1 +#endif +#if defined(V4L2_TUNER_ANALOG_TV) || (defined(HAVE_DECL_V4L2_TUNER_ANALOG_TV) && HAVE_DECL_V4L2_TUNER_ANALOG_TV) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_TUNER_ANALOG_TV) == (2), "V4L2_TUNER_ANALOG_TV != 2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_TUNER_ANALOG_TV 2 +#endif +#if defined(V4L2_TUNER_DIGITAL_TV) || (defined(HAVE_DECL_V4L2_TUNER_DIGITAL_TV) && HAVE_DECL_V4L2_TUNER_DIGITAL_TV) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_TUNER_DIGITAL_TV) == (3), "V4L2_TUNER_DIGITAL_TV != 3"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_TUNER_DIGITAL_TV 3 +#endif +#if defined(V4L2_TUNER_SDR) || (defined(HAVE_DECL_V4L2_TUNER_SDR) && HAVE_DECL_V4L2_TUNER_SDR) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_TUNER_SDR) == (4), "V4L2_TUNER_SDR != 4"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_TUNER_SDR 4 +#endif +#if defined(V4L2_TUNER_RF) || (defined(HAVE_DECL_V4L2_TUNER_RF) && HAVE_DECL_V4L2_TUNER_RF) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_TUNER_RF) == (5), "V4L2_TUNER_RF != 5"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_TUNER_RF 5 +#endif #ifndef XLAT_MACROS_ONLY @@ -12,31 +47,76 @@ extern const struct xlat v4l2_tuner_types[]; # else +static const struct xlat_data v4l2_tuner_types_xdata[] = { + [V4L2_TUNER_RADIO] = XLAT(V4L2_TUNER_RADIO), + #define XLAT_VAL_0 ((unsigned) (V4L2_TUNER_RADIO)) + #define XLAT_STR_0 STRINGIFY(V4L2_TUNER_RADIO) + [V4L2_TUNER_ANALOG_TV] = XLAT(V4L2_TUNER_ANALOG_TV), + #define XLAT_VAL_1 ((unsigned) (V4L2_TUNER_ANALOG_TV)) + #define XLAT_STR_1 STRINGIFY(V4L2_TUNER_ANALOG_TV) + [V4L2_TUNER_DIGITAL_TV] = XLAT(V4L2_TUNER_DIGITAL_TV), + #define XLAT_VAL_2 ((unsigned) (V4L2_TUNER_DIGITAL_TV)) + #define XLAT_STR_2 STRINGIFY(V4L2_TUNER_DIGITAL_TV) + [V4L2_TUNER_SDR] = XLAT(V4L2_TUNER_SDR), + #define XLAT_VAL_3 ((unsigned) (V4L2_TUNER_SDR)) + #define XLAT_STR_3 STRINGIFY(V4L2_TUNER_SDR) + [V4L2_TUNER_RF] = XLAT(V4L2_TUNER_RF), + #define XLAT_VAL_4 ((unsigned) (V4L2_TUNER_RF)) + #define XLAT_STR_4 STRINGIFY(V4L2_TUNER_RF) +}; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static # endif -const struct xlat v4l2_tuner_types[] = { -#if defined(V4L2_TUNER_RADIO) || (defined(HAVE_DECL_V4L2_TUNER_RADIO) && HAVE_DECL_V4L2_TUNER_RADIO) - XLAT(V4L2_TUNER_RADIO), -#endif -#if defined(V4L2_TUNER_ANALOG_TV) || (defined(HAVE_DECL_V4L2_TUNER_ANALOG_TV) && HAVE_DECL_V4L2_TUNER_ANALOG_TV) - XLAT(V4L2_TUNER_ANALOG_TV), -#endif -#if defined(V4L2_TUNER_DIGITAL_TV) || (defined(HAVE_DECL_V4L2_TUNER_DIGITAL_TV) && HAVE_DECL_V4L2_TUNER_DIGITAL_TV) - XLAT(V4L2_TUNER_DIGITAL_TV), -#endif -#if defined(V4L2_TUNER_ADC) || (defined(HAVE_DECL_V4L2_TUNER_ADC) && HAVE_DECL_V4L2_TUNER_ADC) - XLAT(V4L2_TUNER_ADC), -#endif -#if defined(V4L2_TUNER_SDR) || (defined(HAVE_DECL_V4L2_TUNER_SDR) && HAVE_DECL_V4L2_TUNER_SDR) - XLAT(V4L2_TUNER_SDR), -#endif -#if defined(V4L2_TUNER_RF) || (defined(HAVE_DECL_V4L2_TUNER_RF) && HAVE_DECL_V4L2_TUNER_RF) - XLAT(V4L2_TUNER_RF), -#endif - XLAT_END -}; +const struct xlat v4l2_tuner_types[1] = { { + .data = v4l2_tuner_types_xdata, + .size = ARRAY_SIZE(v4l2_tuner_types_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/v4l2_tuner_types.in b/xlat/v4l2_tuner_types.in index 59a9f3a3..22e1b231 100644 --- a/xlat/v4l2_tuner_types.in +++ b/xlat/v4l2_tuner_types.in @@ -1,6 +1,11 @@ -V4L2_TUNER_RADIO -V4L2_TUNER_ANALOG_TV -V4L2_TUNER_DIGITAL_TV -V4L2_TUNER_ADC -V4L2_TUNER_SDR -V4L2_TUNER_RF +#value_indexed +#enum +#include +#include +#include +#include +V4L2_TUNER_RADIO 1 +V4L2_TUNER_ANALOG_TV 2 +V4L2_TUNER_DIGITAL_TV 3 +V4L2_TUNER_SDR 4 +V4L2_TUNER_RF 5 diff --git a/xlat/v4l2_tuner_types.m4 b/xlat/v4l2_tuner_types.m4 new file mode 100644 index 00000000..f728900f --- /dev/null +++ b/xlat/v4l2_tuner_types.m4 @@ -0,0 +1,14 @@ +dnl Generated by ./xlat/gen.sh from ./xlat/v4l2_tuner_types.in; do not edit. +AC_DEFUN([st_CHECK_ENUMS_v4l2_tuner_types],[ +AC_CHECK_DECLS(m4_normalize([ +V4L2_TUNER_RADIO, +V4L2_TUNER_ANALOG_TV, +V4L2_TUNER_DIGITAL_TV, +V4L2_TUNER_SDR, +V4L2_TUNER_RF +]),,, [ +#include +#include +#include +#include +])])]) diff --git a/xlat/v4l2_vbi_flags.h b/xlat/v4l2_vbi_flags.h index bba758de..400c19d6 100644 --- a/xlat/v4l2_vbi_flags.h +++ b/xlat/v4l2_vbi_flags.h @@ -3,6 +3,20 @@ #include "gcc_compat.h" #include "static_assert.h" +#if defined(V4L2_VBI_UNSYNC) || (defined(HAVE_DECL_V4L2_VBI_UNSYNC) && HAVE_DECL_V4L2_VBI_UNSYNC) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_VBI_UNSYNC) == ((1 << 0)), "V4L2_VBI_UNSYNC != (1 << 0)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_VBI_UNSYNC (1 << 0) +#endif +#if defined(V4L2_VBI_INTERLACED) || (defined(HAVE_DECL_V4L2_VBI_INTERLACED) && HAVE_DECL_V4L2_VBI_INTERLACED) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((V4L2_VBI_INTERLACED) == ((1 << 1)), "V4L2_VBI_INTERLACED != (1 << 1)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define V4L2_VBI_INTERLACED (1 << 1) +#endif #ifndef XLAT_MACROS_ONLY @@ -12,31 +26,43 @@ extern const struct xlat v4l2_vbi_flags[]; # else +static const struct xlat_data v4l2_vbi_flags_xdata[] = { + XLAT(V4L2_VBI_UNSYNC), + #define XLAT_VAL_0 ((unsigned) (V4L2_VBI_UNSYNC)) + #define XLAT_STR_0 STRINGIFY(V4L2_VBI_UNSYNC) + XLAT(V4L2_VBI_INTERLACED), + #define XLAT_VAL_1 ((unsigned) (V4L2_VBI_INTERLACED)) + #define XLAT_STR_1 STRINGIFY(V4L2_VBI_INTERLACED) +}; # if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS) static # endif -const struct xlat v4l2_vbi_flags[] = { -#if defined(V4L2_VBI_UNSYNC) || (defined(HAVE_DECL_V4L2_VBI_UNSYNC) && HAVE_DECL_V4L2_VBI_UNSYNC) - XLAT(V4L2_VBI_UNSYNC), -#endif -#if defined(V4L2_VBI_INTERLACED) || (defined(HAVE_DECL_V4L2_VBI_INTERLACED) && HAVE_DECL_V4L2_VBI_INTERLACED) - XLAT(V4L2_VBI_INTERLACED), -#endif -#if defined(V4L2_VBI_ITU_525_F1_START) || (defined(HAVE_DECL_V4L2_VBI_ITU_525_F1_START) && HAVE_DECL_V4L2_VBI_ITU_525_F1_START) - XLAT(V4L2_VBI_ITU_525_F1_START), -#endif -#if defined(V4L2_VBI_ITU_525_F2_START) || (defined(HAVE_DECL_V4L2_VBI_ITU_525_F2_START) && HAVE_DECL_V4L2_VBI_ITU_525_F2_START) - XLAT(V4L2_VBI_ITU_525_F2_START), -#endif -#if defined(V4L2_VBI_ITU_625_F1_START) || (defined(HAVE_DECL_V4L2_VBI_ITU_625_F1_START) && HAVE_DECL_V4L2_VBI_ITU_625_F1_START) - XLAT(V4L2_VBI_ITU_625_F1_START), -#endif -#if defined(V4L2_VBI_ITU_625_F2_START) || (defined(HAVE_DECL_V4L2_VBI_ITU_625_F2_START) && HAVE_DECL_V4L2_VBI_ITU_625_F2_START) - XLAT(V4L2_VBI_ITU_625_F2_START), -#endif - XLAT_END -}; +const struct xlat v4l2_vbi_flags[1] = { { + .data = v4l2_vbi_flags_xdata, + .size = ARRAY_SIZE(v4l2_vbi_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/v4l2_vbi_flags.in b/xlat/v4l2_vbi_flags.in index b367e606..1bd6ef53 100644 --- a/xlat/v4l2_vbi_flags.in +++ b/xlat/v4l2_vbi_flags.in @@ -1,6 +1,2 @@ -V4L2_VBI_UNSYNC -V4L2_VBI_INTERLACED -V4L2_VBI_ITU_525_F1_START -V4L2_VBI_ITU_525_F2_START -V4L2_VBI_ITU_625_F1_START -V4L2_VBI_ITU_625_F2_START +V4L2_VBI_UNSYNC (1 << 0) +V4L2_VBI_INTERLACED (1 << 1) diff --git a/xlat/wait4_options.h b/xlat/wait4_options.h index 2e288b59..773baf61 100644 --- a/xlat/wait4_options.h +++ b/xlat/wait4_options.h @@ -35,37 +35,145 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat wait4_options[] = { +static const struct xlat_data wait4_options_xdata[] = { #if defined(WNOHANG) || (defined(HAVE_DECL_WNOHANG) && HAVE_DECL_WNOHANG) XLAT(WNOHANG), + #define XLAT_VAL_0 ((unsigned) (WNOHANG)) + #define XLAT_STR_0 STRINGIFY(WNOHANG) #endif #ifndef WSTOPPED #if defined(WUNTRACED) || (defined(HAVE_DECL_WUNTRACED) && HAVE_DECL_WUNTRACED) XLAT(WUNTRACED), + #define XLAT_VAL_1 ((unsigned) (WUNTRACED)) + #define XLAT_STR_1 STRINGIFY(WUNTRACED) #endif #endif #if defined(WEXITED) || (defined(HAVE_DECL_WEXITED) && HAVE_DECL_WEXITED) XLAT(WEXITED), + #define XLAT_VAL_2 ((unsigned) (WEXITED)) + #define XLAT_STR_2 STRINGIFY(WEXITED) #endif #if defined(WTRAPPED) || (defined(HAVE_DECL_WTRAPPED) && HAVE_DECL_WTRAPPED) XLAT(WTRAPPED), + #define XLAT_VAL_3 ((unsigned) (WTRAPPED)) + #define XLAT_STR_3 STRINGIFY(WTRAPPED) #endif #if defined(WSTOPPED) || (defined(HAVE_DECL_WSTOPPED) && HAVE_DECL_WSTOPPED) XLAT(WSTOPPED), + #define XLAT_VAL_4 ((unsigned) (WSTOPPED)) + #define XLAT_STR_4 STRINGIFY(WSTOPPED) #endif #if defined(WCONTINUED) || (defined(HAVE_DECL_WCONTINUED) && HAVE_DECL_WCONTINUED) XLAT(WCONTINUED), + #define XLAT_VAL_5 ((unsigned) (WCONTINUED)) + #define XLAT_STR_5 STRINGIFY(WCONTINUED) #endif #if defined(WNOWAIT) || (defined(HAVE_DECL_WNOWAIT) && HAVE_DECL_WNOWAIT) XLAT(WNOWAIT), + #define XLAT_VAL_6 ((unsigned) (WNOWAIT)) + #define XLAT_STR_6 STRINGIFY(WNOWAIT) #endif XLAT(__WCLONE), + #define XLAT_VAL_7 ((unsigned) (__WCLONE)) + #define XLAT_STR_7 STRINGIFY(__WCLONE) XLAT(__WALL), + #define XLAT_VAL_8 ((unsigned) (__WALL)) + #define XLAT_STR_8 STRINGIFY(__WALL) XLAT(__WNOTHREAD), - XLAT_END + #define XLAT_VAL_9 ((unsigned) (__WNOTHREAD)) + #define XLAT_STR_9 STRINGIFY(__WNOTHREAD) }; +static +const struct xlat wait4_options[1] = { { + .data = wait4_options_xdata, + .size = ARRAY_SIZE(wait4_options_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/waitid_types.h b/xlat/waitid_types.h index 9261908d..6f4d6e9a 100644 --- a/xlat/waitid_types.h +++ b/xlat/waitid_types.h @@ -3,6 +3,34 @@ #include "gcc_compat.h" #include "static_assert.h" +#if defined(P_ALL) || (defined(HAVE_DECL_P_ALL) && HAVE_DECL_P_ALL) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((P_ALL) == (0), "P_ALL != 0"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define P_ALL 0 +#endif +#if defined(P_PID) || (defined(HAVE_DECL_P_PID) && HAVE_DECL_P_PID) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((P_PID) == (1), "P_PID != 1"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define P_PID 1 +#endif +#if defined(P_PGID) || (defined(HAVE_DECL_P_PGID) && HAVE_DECL_P_PGID) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((P_PGID) == (2), "P_PGID != 2"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define P_PGID 2 +#endif +#if defined(P_PIDFD) || (defined(HAVE_DECL_P_PIDFD) && HAVE_DECL_P_PIDFD) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((P_PIDFD) == (3), "P_PIDFD != 3"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define P_PIDFD 3 +#endif #ifndef XLAT_MACROS_ONLY @@ -12,38 +40,63 @@ # else -static -const struct xlat waitid_types[] = { -#if defined(P_PID) || (defined(HAVE_DECL_P_PID) && HAVE_DECL_P_PID) - XLAT(P_PID), -#endif -#if defined(P_PPID) || (defined(HAVE_DECL_P_PPID) && HAVE_DECL_P_PPID) - XLAT(P_PPID), -#endif -#if defined(P_PGID) || (defined(HAVE_DECL_P_PGID) && HAVE_DECL_P_PGID) - XLAT(P_PGID), -#endif -#if defined(P_SID) || (defined(HAVE_DECL_P_SID) && HAVE_DECL_P_SID) - XLAT(P_SID), -#endif -#if defined(P_CID) || (defined(HAVE_DECL_P_CID) && HAVE_DECL_P_CID) - XLAT(P_CID), -#endif -#if defined(P_UID) || (defined(HAVE_DECL_P_UID) && HAVE_DECL_P_UID) - XLAT(P_UID), -#endif -#if defined(P_GID) || (defined(HAVE_DECL_P_GID) && HAVE_DECL_P_GID) - XLAT(P_GID), -#endif -#if defined(P_ALL) || (defined(HAVE_DECL_P_ALL) && HAVE_DECL_P_ALL) - XLAT(P_ALL), -#endif -#if defined(P_LWPID) || (defined(HAVE_DECL_P_LWPID) && HAVE_DECL_P_LWPID) - XLAT(P_LWPID), -#endif - XLAT_END +static const struct xlat_data waitid_types_xdata[] = { + [P_ALL] = XLAT(P_ALL), + #define XLAT_VAL_0 ((unsigned) (P_ALL)) + #define XLAT_STR_0 STRINGIFY(P_ALL) + [P_PID] = XLAT(P_PID), + #define XLAT_VAL_1 ((unsigned) (P_PID)) + #define XLAT_STR_1 STRINGIFY(P_PID) + [P_PGID] = XLAT(P_PGID), + #define XLAT_VAL_2 ((unsigned) (P_PGID)) + #define XLAT_STR_2 STRINGIFY(P_PGID) + [P_PIDFD] = XLAT(P_PIDFD), + #define XLAT_VAL_3 ((unsigned) (P_PIDFD)) + #define XLAT_STR_3 STRINGIFY(P_PIDFD) }; +static +const struct xlat waitid_types[1] = { { + .data = waitid_types_xdata, + .size = ARRAY_SIZE(waitid_types_xdata), + .type = XT_INDEXED, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/waitid_types.in b/xlat/waitid_types.in index 99a3560d..cec9a7c0 100644 --- a/xlat/waitid_types.in +++ b/xlat/waitid_types.in @@ -1,9 +1,8 @@ -P_PID -P_PPID -P_PGID -P_SID -P_CID -P_UID -P_GID -P_ALL -P_LWPID +#value_indexed +#enum +#include +#include +P_ALL 0 +P_PID 1 +P_PGID 2 +P_PIDFD 3 diff --git a/xlat/waitid_types.m4 b/xlat/waitid_types.m4 new file mode 100644 index 00000000..2413fe78 --- /dev/null +++ b/xlat/waitid_types.m4 @@ -0,0 +1,11 @@ +dnl Generated by ./xlat/gen.sh from ./xlat/waitid_types.in; do not edit. +AC_DEFUN([st_CHECK_ENUMS_waitid_types],[ +AC_CHECK_DECLS(m4_normalize([ +P_ALL, +P_PID, +P_PGID, +P_PIDFD +]),,, [ +#include +#include +])])]) diff --git a/xlat/watchdog_ioctl_cmds.h b/xlat/watchdog_ioctl_cmds.h new file mode 100644 index 00000000..f8f4e264 --- /dev/null +++ b/xlat/watchdog_ioctl_cmds.h @@ -0,0 +1,210 @@ +/* Generated by ./xlat/gen.sh from ./xlat/watchdog_ioctl_cmds.in; do not edit. */ + +#include "gcc_compat.h" +#include "static_assert.h" + +#if defined(WDIOC_GETSTATUS) || (defined(HAVE_DECL_WDIOC_GETSTATUS) && HAVE_DECL_WDIOC_GETSTATUS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((WDIOC_GETSTATUS) == (_IOR('W', 1, int)), "WDIOC_GETSTATUS != _IOR('W', 1, int)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define WDIOC_GETSTATUS _IOR('W', 1, int) +#endif +#if defined(WDIOC_GETBOOTSTATUS) || (defined(HAVE_DECL_WDIOC_GETBOOTSTATUS) && HAVE_DECL_WDIOC_GETBOOTSTATUS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((WDIOC_GETBOOTSTATUS) == (_IOR('W', 2, int)), "WDIOC_GETBOOTSTATUS != _IOR('W', 2, int)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define WDIOC_GETBOOTSTATUS _IOR('W', 2, int) +#endif +#if defined(WDIOC_GETTEMP) || (defined(HAVE_DECL_WDIOC_GETTEMP) && HAVE_DECL_WDIOC_GETTEMP) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((WDIOC_GETTEMP) == (_IOR('W', 3, int)), "WDIOC_GETTEMP != _IOR('W', 3, int)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define WDIOC_GETTEMP _IOR('W', 3, int) +#endif +#if defined(WDIOC_GETTIMEOUT) || (defined(HAVE_DECL_WDIOC_GETTIMEOUT) && HAVE_DECL_WDIOC_GETTIMEOUT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((WDIOC_GETTIMEOUT) == (_IOR('W', 7, int)), "WDIOC_GETTIMEOUT != _IOR('W', 7, int)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define WDIOC_GETTIMEOUT _IOR('W', 7, int) +#endif +#if defined(WDIOC_GETPRETIMEOUT) || (defined(HAVE_DECL_WDIOC_GETPRETIMEOUT) && HAVE_DECL_WDIOC_GETPRETIMEOUT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((WDIOC_GETPRETIMEOUT) == (_IOR('W', 9, int)), "WDIOC_GETPRETIMEOUT != _IOR('W', 9, int)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define WDIOC_GETPRETIMEOUT _IOR('W', 9, int) +#endif +#if defined(WDIOC_GETTIMELEFT) || (defined(HAVE_DECL_WDIOC_GETTIMELEFT) && HAVE_DECL_WDIOC_GETTIMELEFT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((WDIOC_GETTIMELEFT) == (_IOR('W', 10, int)), "WDIOC_GETTIMELEFT != _IOR('W', 10, int)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define WDIOC_GETTIMELEFT _IOR('W', 10, int) +#endif +#if defined(WDIOC_SETOPTIONS) || (defined(HAVE_DECL_WDIOC_SETOPTIONS) && HAVE_DECL_WDIOC_SETOPTIONS) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((WDIOC_SETOPTIONS) == (_IOR('W', 4, int)), "WDIOC_SETOPTIONS != _IOR('W', 4, int)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define WDIOC_SETOPTIONS _IOR('W', 4, int) +#endif +#if defined(WDIOC_KEEPALIVE) || (defined(HAVE_DECL_WDIOC_KEEPALIVE) && HAVE_DECL_WDIOC_KEEPALIVE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((WDIOC_KEEPALIVE) == (_IOR('W', 5, int)), "WDIOC_KEEPALIVE != _IOR('W', 5, int)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define WDIOC_KEEPALIVE _IOR('W', 5, int) +#endif +#if defined(WDIOC_SETTIMEOUT) || (defined(HAVE_DECL_WDIOC_SETTIMEOUT) && HAVE_DECL_WDIOC_SETTIMEOUT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((WDIOC_SETTIMEOUT) == (_IOWR('W', 6, int)), "WDIOC_SETTIMEOUT != _IOWR('W', 6, int)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define WDIOC_SETTIMEOUT _IOWR('W', 6, int) +#endif +#if defined(WDIOC_SETPRETIMEOUT) || (defined(HAVE_DECL_WDIOC_SETPRETIMEOUT) && HAVE_DECL_WDIOC_SETPRETIMEOUT) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((WDIOC_SETPRETIMEOUT) == (_IOWR('W', 8, int)), "WDIOC_SETPRETIMEOUT != _IOWR('W', 8, int)"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define WDIOC_SETPRETIMEOUT _IOWR('W', 8, int) +#endif + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat watchdog_ioctl_cmds in mpers mode + +# else + +static const struct xlat_data watchdog_ioctl_cmds_xdata[] = { + XLAT(WDIOC_GETSTATUS), + #define XLAT_VAL_0 ((unsigned) (WDIOC_GETSTATUS)) + #define XLAT_STR_0 STRINGIFY(WDIOC_GETSTATUS) + XLAT(WDIOC_GETBOOTSTATUS), + #define XLAT_VAL_1 ((unsigned) (WDIOC_GETBOOTSTATUS)) + #define XLAT_STR_1 STRINGIFY(WDIOC_GETBOOTSTATUS) + XLAT(WDIOC_GETTEMP), + #define XLAT_VAL_2 ((unsigned) (WDIOC_GETTEMP)) + #define XLAT_STR_2 STRINGIFY(WDIOC_GETTEMP) + XLAT(WDIOC_GETTIMEOUT), + #define XLAT_VAL_3 ((unsigned) (WDIOC_GETTIMEOUT)) + #define XLAT_STR_3 STRINGIFY(WDIOC_GETTIMEOUT) + XLAT(WDIOC_GETPRETIMEOUT), + #define XLAT_VAL_4 ((unsigned) (WDIOC_GETPRETIMEOUT)) + #define XLAT_STR_4 STRINGIFY(WDIOC_GETPRETIMEOUT) + XLAT(WDIOC_GETTIMELEFT), + #define XLAT_VAL_5 ((unsigned) (WDIOC_GETTIMELEFT)) + #define XLAT_STR_5 STRINGIFY(WDIOC_GETTIMELEFT) + XLAT(WDIOC_SETOPTIONS), + #define XLAT_VAL_6 ((unsigned) (WDIOC_SETOPTIONS)) + #define XLAT_STR_6 STRINGIFY(WDIOC_SETOPTIONS) + XLAT(WDIOC_KEEPALIVE), + #define XLAT_VAL_7 ((unsigned) (WDIOC_KEEPALIVE)) + #define XLAT_STR_7 STRINGIFY(WDIOC_KEEPALIVE) + XLAT(WDIOC_SETTIMEOUT), + #define XLAT_VAL_8 ((unsigned) (WDIOC_SETTIMEOUT)) + #define XLAT_STR_8 STRINGIFY(WDIOC_SETTIMEOUT) + XLAT(WDIOC_SETPRETIMEOUT), + #define XLAT_VAL_9 ((unsigned) (WDIOC_SETPRETIMEOUT)) + #define XLAT_STR_9 STRINGIFY(WDIOC_SETPRETIMEOUT) +}; +static +const struct xlat watchdog_ioctl_cmds[1] = { { + .data = watchdog_ioctl_cmds_xdata, + .size = ARRAY_SIZE(watchdog_ioctl_cmds_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif +# ifdef XLAT_VAL_6 + | XLAT_VAL_6 +# endif +# ifdef XLAT_VAL_7 + | XLAT_VAL_7 +# endif +# ifdef XLAT_VAL_8 + | XLAT_VAL_8 +# endif +# ifdef XLAT_VAL_9 + | XLAT_VAL_9 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif +# ifdef XLAT_STR_6 + + sizeof(XLAT_STR_6) +# endif +# ifdef XLAT_STR_7 + + sizeof(XLAT_STR_7) +# endif +# ifdef XLAT_STR_8 + + sizeof(XLAT_STR_8) +# endif +# ifdef XLAT_STR_9 + + sizeof(XLAT_STR_9) +# endif + , +} }; + +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 +# undef XLAT_STR_6 +# undef XLAT_VAL_6 +# undef XLAT_STR_7 +# undef XLAT_VAL_7 +# undef XLAT_STR_8 +# undef XLAT_VAL_8 +# undef XLAT_STR_9 +# undef XLAT_VAL_9 +# endif /* !IN_MPERS */ + +#endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/watchdog_ioctl_cmds.in b/xlat/watchdog_ioctl_cmds.in new file mode 100644 index 00000000..b871cbd1 --- /dev/null +++ b/xlat/watchdog_ioctl_cmds.in @@ -0,0 +1,10 @@ +WDIOC_GETSTATUS _IOR('W', 1, int) +WDIOC_GETBOOTSTATUS _IOR('W', 2, int) +WDIOC_GETTEMP _IOR('W', 3, int) +WDIOC_GETTIMEOUT _IOR('W', 7, int) +WDIOC_GETPRETIMEOUT _IOR('W', 9, int) +WDIOC_GETTIMELEFT _IOR('W', 10, int) +WDIOC_SETOPTIONS _IOR('W', 4, int) +WDIOC_KEEPALIVE _IOR('W', 5, int) +WDIOC_SETTIMEOUT _IOWR('W', 6, int) +WDIOC_SETPRETIMEOUT _IOWR('W', 8, int) diff --git a/xlat/whence_codes.h b/xlat/whence_codes.h index a97a3455..b2e08463 100644 --- a/xlat/whence_codes.h +++ b/xlat/whence_codes.h @@ -8,25 +8,83 @@ # ifndef IN_MPERS -const struct xlat whence_codes[] = { +static const struct xlat_data whence_codes_xdata[] = { #if defined(SEEK_SET) || (defined(HAVE_DECL_SEEK_SET) && HAVE_DECL_SEEK_SET) XLAT(SEEK_SET), + #define XLAT_VAL_0 ((unsigned) (SEEK_SET)) + #define XLAT_STR_0 STRINGIFY(SEEK_SET) #endif #if defined(SEEK_CUR) || (defined(HAVE_DECL_SEEK_CUR) && HAVE_DECL_SEEK_CUR) XLAT(SEEK_CUR), + #define XLAT_VAL_1 ((unsigned) (SEEK_CUR)) + #define XLAT_STR_1 STRINGIFY(SEEK_CUR) #endif #if defined(SEEK_END) || (defined(HAVE_DECL_SEEK_END) && HAVE_DECL_SEEK_END) XLAT(SEEK_END), + #define XLAT_VAL_2 ((unsigned) (SEEK_END)) + #define XLAT_STR_2 STRINGIFY(SEEK_END) #endif #if defined(SEEK_DATA) || (defined(HAVE_DECL_SEEK_DATA) && HAVE_DECL_SEEK_DATA) XLAT(SEEK_DATA), + #define XLAT_VAL_3 ((unsigned) (SEEK_DATA)) + #define XLAT_STR_3 STRINGIFY(SEEK_DATA) #endif #if defined(SEEK_HOLE) || (defined(HAVE_DECL_SEEK_HOLE) && HAVE_DECL_SEEK_HOLE) XLAT(SEEK_HOLE), + #define XLAT_VAL_4 ((unsigned) (SEEK_HOLE)) + #define XLAT_STR_4 STRINGIFY(SEEK_HOLE) #endif - XLAT_END }; +const struct xlat whence_codes[1] = { { + .data = whence_codes_xdata, + .size = ARRAY_SIZE(whence_codes_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/xattrflags.h b/xlat/xattrflags.h index 57bc1d23..37dbacd5 100644 --- a/xlat/xattrflags.h +++ b/xlat/xattrflags.h @@ -26,13 +26,41 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat xattrflags[] = { +static const struct xlat_data xattrflags_xdata[] = { XLAT(XATTR_CREATE), + #define XLAT_VAL_0 ((unsigned) (XATTR_CREATE)) + #define XLAT_STR_0 STRINGIFY(XATTR_CREATE) XLAT(XATTR_REPLACE), - XLAT_END + #define XLAT_VAL_1 ((unsigned) (XATTR_REPLACE)) + #define XLAT_STR_1 STRINGIFY(XATTR_REPLACE) }; +static +const struct xlat xattrflags[1] = { { + .data = xattrflags_xdata, + .size = ARRAY_SIZE(xattrflags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/xdp_flags.h b/xlat/xdp_flags.h index d1e9613c..6e443829 100644 --- a/xlat/xdp_flags.h +++ b/xlat/xdp_flags.h @@ -3,35 +3,136 @@ #include "gcc_compat.h" #include "static_assert.h" - -#ifndef XLAT_MACROS_ONLY - -# ifdef IN_MPERS - -# error static const struct xlat xdp_flags in mpers mode - -# else - -static -const struct xlat xdp_flags[] = { #if defined(XDP_FLAGS_MODES) || (defined(HAVE_DECL_XDP_FLAGS_MODES) && HAVE_DECL_XDP_FLAGS_MODES) - XLAT(XDP_FLAGS_MODES), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((XDP_FLAGS_MODES) == (0x0e), "XDP_FLAGS_MODES != 0x0e"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define XDP_FLAGS_MODES 0x0e #endif #if defined(XDP_FLAGS_UPDATE_IF_NOEXIST) || (defined(HAVE_DECL_XDP_FLAGS_UPDATE_IF_NOEXIST) && HAVE_DECL_XDP_FLAGS_UPDATE_IF_NOEXIST) - XLAT(XDP_FLAGS_UPDATE_IF_NOEXIST), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((XDP_FLAGS_UPDATE_IF_NOEXIST) == (0x01), "XDP_FLAGS_UPDATE_IF_NOEXIST != 0x01"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define XDP_FLAGS_UPDATE_IF_NOEXIST 0x01 #endif #if defined(XDP_FLAGS_SKB_MODE) || (defined(HAVE_DECL_XDP_FLAGS_SKB_MODE) && HAVE_DECL_XDP_FLAGS_SKB_MODE) - XLAT(XDP_FLAGS_SKB_MODE), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((XDP_FLAGS_SKB_MODE) == (0x02), "XDP_FLAGS_SKB_MODE != 0x02"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define XDP_FLAGS_SKB_MODE 0x02 #endif #if defined(XDP_FLAGS_DRV_MODE) || (defined(HAVE_DECL_XDP_FLAGS_DRV_MODE) && HAVE_DECL_XDP_FLAGS_DRV_MODE) - XLAT(XDP_FLAGS_DRV_MODE), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((XDP_FLAGS_DRV_MODE) == (0x04), "XDP_FLAGS_DRV_MODE != 0x04"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define XDP_FLAGS_DRV_MODE 0x04 #endif #if defined(XDP_FLAGS_HW_MODE) || (defined(HAVE_DECL_XDP_FLAGS_HW_MODE) && HAVE_DECL_XDP_FLAGS_HW_MODE) - XLAT(XDP_FLAGS_HW_MODE), +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((XDP_FLAGS_HW_MODE) == (0x08), "XDP_FLAGS_HW_MODE != 0x08"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define XDP_FLAGS_HW_MODE 0x08 +#endif +#if defined(XDP_FLAGS_REPLACE) || (defined(HAVE_DECL_XDP_FLAGS_REPLACE) && HAVE_DECL_XDP_FLAGS_REPLACE) +DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE +static_assert((XDP_FLAGS_REPLACE) == (0x10), "XDP_FLAGS_REPLACE != 0x10"); +DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE +#else +# define XDP_FLAGS_REPLACE 0x10 #endif - XLAT_END + +#ifndef XLAT_MACROS_ONLY + +# ifdef IN_MPERS + +# error static const struct xlat xdp_flags in mpers mode + +# else + +static const struct xlat_data xdp_flags_xdata[] = { + XLAT(XDP_FLAGS_MODES), + #define XLAT_VAL_0 ((unsigned) (XDP_FLAGS_MODES)) + #define XLAT_STR_0 STRINGIFY(XDP_FLAGS_MODES) + XLAT(XDP_FLAGS_UPDATE_IF_NOEXIST), + #define XLAT_VAL_1 ((unsigned) (XDP_FLAGS_UPDATE_IF_NOEXIST)) + #define XLAT_STR_1 STRINGIFY(XDP_FLAGS_UPDATE_IF_NOEXIST) + XLAT(XDP_FLAGS_SKB_MODE), + #define XLAT_VAL_2 ((unsigned) (XDP_FLAGS_SKB_MODE)) + #define XLAT_STR_2 STRINGIFY(XDP_FLAGS_SKB_MODE) + XLAT(XDP_FLAGS_DRV_MODE), + #define XLAT_VAL_3 ((unsigned) (XDP_FLAGS_DRV_MODE)) + #define XLAT_STR_3 STRINGIFY(XDP_FLAGS_DRV_MODE) + XLAT(XDP_FLAGS_HW_MODE), + #define XLAT_VAL_4 ((unsigned) (XDP_FLAGS_HW_MODE)) + #define XLAT_STR_4 STRINGIFY(XDP_FLAGS_HW_MODE) + XLAT(XDP_FLAGS_REPLACE), + #define XLAT_VAL_5 ((unsigned) (XDP_FLAGS_REPLACE)) + #define XLAT_STR_5 STRINGIFY(XDP_FLAGS_REPLACE) }; +static +const struct xlat xdp_flags[1] = { { + .data = xdp_flags_xdata, + .size = ARRAY_SIZE(xdp_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/xdp_flags.in b/xlat/xdp_flags.in index b804de21..b6a1787c 100644 --- a/xlat/xdp_flags.in +++ b/xlat/xdp_flags.in @@ -1,5 +1,6 @@ -XDP_FLAGS_MODES -XDP_FLAGS_UPDATE_IF_NOEXIST -XDP_FLAGS_SKB_MODE -XDP_FLAGS_DRV_MODE -XDP_FLAGS_HW_MODE +XDP_FLAGS_MODES 0x0e +XDP_FLAGS_UPDATE_IF_NOEXIST 0x01 +XDP_FLAGS_SKB_MODE 0x02 +XDP_FLAGS_DRV_MODE 0x04 +XDP_FLAGS_HW_MODE 0x08 +XDP_FLAGS_REPLACE 0x10 diff --git a/xlat/xfs_dqblk_flags.h b/xlat/xfs_dqblk_flags.h index 2b2e874f..7dcc7526 100644 --- a/xlat/xfs_dqblk_flags.h +++ b/xlat/xfs_dqblk_flags.h @@ -33,14 +33,52 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat xfs_dqblk_flags[] = { +static const struct xlat_data xfs_dqblk_flags_xdata[] = { XLAT(XFS_USER_QUOTA), + #define XLAT_VAL_0 ((unsigned) (XFS_USER_QUOTA)) + #define XLAT_STR_0 STRINGIFY(XFS_USER_QUOTA) XLAT(XFS_PROJ_QUOTA), + #define XLAT_VAL_1 ((unsigned) (XFS_PROJ_QUOTA)) + #define XLAT_STR_1 STRINGIFY(XFS_PROJ_QUOTA) XLAT(XFS_GROUP_QUOTA), - XLAT_END + #define XLAT_VAL_2 ((unsigned) (XFS_GROUP_QUOTA)) + #define XLAT_STR_2 STRINGIFY(XFS_GROUP_QUOTA) }; +static +const struct xlat xfs_dqblk_flags[1] = { { + .data = xfs_dqblk_flags_xdata, + .size = ARRAY_SIZE(xfs_dqblk_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xlat/xfs_quota_flags.h b/xlat/xfs_quota_flags.h index 96f0aab6..43e15647 100644 --- a/xlat/xfs_quota_flags.h +++ b/xlat/xfs_quota_flags.h @@ -54,17 +54,85 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE # else -static -const struct xlat xfs_quota_flags[] = { +static const struct xlat_data xfs_quota_flags_xdata[] = { XLAT(XFS_QUOTA_UDQ_ACCT), + #define XLAT_VAL_0 ((unsigned) (XFS_QUOTA_UDQ_ACCT)) + #define XLAT_STR_0 STRINGIFY(XFS_QUOTA_UDQ_ACCT) XLAT(XFS_QUOTA_UDQ_ENFD), + #define XLAT_VAL_1 ((unsigned) (XFS_QUOTA_UDQ_ENFD)) + #define XLAT_STR_1 STRINGIFY(XFS_QUOTA_UDQ_ENFD) XLAT(XFS_QUOTA_GDQ_ACCT), + #define XLAT_VAL_2 ((unsigned) (XFS_QUOTA_GDQ_ACCT)) + #define XLAT_STR_2 STRINGIFY(XFS_QUOTA_GDQ_ACCT) XLAT(XFS_QUOTA_GDQ_ENFD), + #define XLAT_VAL_3 ((unsigned) (XFS_QUOTA_GDQ_ENFD)) + #define XLAT_STR_3 STRINGIFY(XFS_QUOTA_GDQ_ENFD) XLAT(XFS_QUOTA_PDQ_ACCT), + #define XLAT_VAL_4 ((unsigned) (XFS_QUOTA_PDQ_ACCT)) + #define XLAT_STR_4 STRINGIFY(XFS_QUOTA_PDQ_ACCT) XLAT(XFS_QUOTA_PDQ_ENFD), - XLAT_END + #define XLAT_VAL_5 ((unsigned) (XFS_QUOTA_PDQ_ENFD)) + #define XLAT_STR_5 STRINGIFY(XFS_QUOTA_PDQ_ENFD) }; +static +const struct xlat xfs_quota_flags[1] = { { + .data = xfs_quota_flags_xdata, + .size = ARRAY_SIZE(xfs_quota_flags_xdata), + .type = XT_NORMAL, + .flags_mask = 0 +# ifdef XLAT_VAL_0 + | XLAT_VAL_0 +# endif +# ifdef XLAT_VAL_1 + | XLAT_VAL_1 +# endif +# ifdef XLAT_VAL_2 + | XLAT_VAL_2 +# endif +# ifdef XLAT_VAL_3 + | XLAT_VAL_3 +# endif +# ifdef XLAT_VAL_4 + | XLAT_VAL_4 +# endif +# ifdef XLAT_VAL_5 + | XLAT_VAL_5 +# endif + , + .flags_strsz = 0 +# ifdef XLAT_STR_0 + + sizeof(XLAT_STR_0) +# endif +# ifdef XLAT_STR_1 + + sizeof(XLAT_STR_1) +# endif +# ifdef XLAT_STR_2 + + sizeof(XLAT_STR_2) +# endif +# ifdef XLAT_STR_3 + + sizeof(XLAT_STR_3) +# endif +# ifdef XLAT_STR_4 + + sizeof(XLAT_STR_4) +# endif +# ifdef XLAT_STR_5 + + sizeof(XLAT_STR_5) +# endif + , +} }; +# undef XLAT_STR_0 +# undef XLAT_VAL_0 +# undef XLAT_STR_1 +# undef XLAT_VAL_1 +# undef XLAT_STR_2 +# undef XLAT_VAL_2 +# undef XLAT_STR_3 +# undef XLAT_VAL_3 +# undef XLAT_STR_4 +# undef XLAT_VAL_4 +# undef XLAT_STR_5 +# undef XLAT_VAL_5 # endif /* !IN_MPERS */ #endif /* !XLAT_MACROS_ONLY */ diff --git a/xmalloc.c b/xmalloc.c index af075e76..8688f914 100644 --- a/xmalloc.c +++ b/xmalloc.c @@ -52,6 +52,23 @@ xcalloc(size_t nmemb, size_t size) #define HALF_SIZE_T (((size_t) 1) << (sizeof(size_t) * 4)) +void * +xallocarray(size_t nmemb, size_t size) +{ + size_t bytes = nmemb * size; + + if ((nmemb | size) >= HALF_SIZE_T && + size && bytes / size != nmemb) + die_out_of_memory(); + + void *p = malloc(bytes); + + if (!p) + die_out_of_memory(); + + return p; +} + void * xreallocarray(void *ptr, size_t nmemb, size_t size) { diff --git a/xmalloc.h b/xmalloc.h index 6212ac3b..4bf1e2ce 100644 --- a/xmalloc.h +++ b/xmalloc.h @@ -37,6 +37,13 @@ xzalloc(size_t size) return xcalloc(1, size); } +/** + * Allocate an array, but do not zero it out, die if the allocation + * has failed or if the product of nmemb and size is too big. + */ +void *xallocarray(size_t nmemb, size_t size) + ATTRIBUTE_MALLOC ATTRIBUTE_ALLOC_SIZE((1, 2)); + /** * Reallocate memory for the array, die if the allocation has failed or * if the product of nmemb and size is too big.